CISC, RISC, X86
-->RISC 중 가장 인기많은 : ARM
핸드폰 ARM A시리즈
CISC VS RISC
Complex Instruction Set Computer VS Reduced Instruction Set Computer
Instruction Set : 명령어 모음. 어셈블리어. (머신코드를 사람이 이해할 수 있는 언어로)
윈도우 어플리케이션 : C#
옛날 어플리케이션: MFC
애플 CPU : M1 M2 ==> ARM CPU
CISC : 어셈블리어가 많다.
RISC : CISC에서 중복된다고 생각되는 명령어들을 하나로 통합.
RISC : 컴파일을 해보면 좀 길긴 하다. CISC 성능이 더 좋았지만 지금은 서로 비슷비슷하다. 그리고 RICS가 슬슬 역전하고 있다. 애플 M시리즈 : 저전력, 열 덜나고, 성능은 좋아졌다.
명령어 자주쓰는거만 묶어서 만든게 RISC (CISC 20%의 명령어가 80% 이상의 일을 처리하더라)
RISC의 장점 : 적은 수의 명령어로 동작. --> 저전력인데 가격이 저렴하다.
RISC의 단점 : 명령어 한개로 끝날게 그 명령어가 없기 때문에 그 명령어를 조합하여 기능을 만든다. 그래서 소프트웨어가 복잡해진다.
애니악. 첫 컴퓨터
폰 노이만 구조
폰 노이만 구조: INPUT, OUTPUT 분리하고 MEMORY에 동작 프로그램을 돌리자 = RAM
폰노이만 : 동작하는 RAM 이 한개 ( 범용 컴퓨터 )
하버드 : 동작하는 RAM 이 두개. 동작 RAM과 데이터 RAM 두가지.
프로그램 메모리 --> Instruction momory = program memory
임베디드용, TV, 냉장고 등등 하버드구조인 이유 :
범용컴퓨터는 온갖기능을 다 쓰지만 임베디드는 특정한 기능만을 수행한다. --> 업데이트가 많이 힘들다.
범용컴퓨터는 어떠한 프로그램을 올리는지에 따라 기능이 달라진다.
보조기억장치. 하드웨어, 하드디스크가 필요하다. --> 범용.
임베디드제품들은 하드웨어가 거의 없다. 가끔 있다면 데이터베이스를 위한 하드디스크. 하드디스크가 있더라도 제품의 기능 전용으로 나온거다.
하드디스크 : FDD, HDD, SSD
폰 노이만 구조는 RAM 하나로 돌려서 외부메모리가 필요하다. HDD, SSD Hard-disk drive Solid-state drive
외장메모리에 있는 코드를 RAM에 올리는 과정 : LOADING
LOADING : 프로그램과 리소스를 보조기억장치에서 주기억장치로 불러들이는 과정.
주기억장치에서 DATA와 INSTRUCTION을 수행한다.
하버드구조는 임베디드에서 많이 사용하다보니 ROM, Flash Memory : Program memory. --> 외장메모리처럼 사용.
RAM : Random Access Memory.
어떠한 공간에 랜덤으로 접근이 가능함.
천공카드와 자기테이프는 Random access가 불가능하다.
만약 RAM 없이 프로그램을 돌릴 수 있을까??? 엄청 느려진다.
시간이 이만큼 느려진다.
- 접근 시간 증가: 특정 데이터를 얻기 위해서는 모든 이전 데이터를 거쳐야 하므로, 접근 시간이 선형적으로 증가합니다. 예를 들어, 1000번째 데이터에 접근하려면 999개의 데이터를 읽어야 합니다.
- 병목 현상: 순차 접근은 병목 현상을 유발하여 CPU가 메모리 데이터를 기다리는 시간이 크게 증가합니다.
- 캐시 효율 저하: 캐시 메모리는 데이터의 지역성을 활용해 성능을 향상시키는데, 순차 접근은 이러한 최적화를 방해합니다.
결국,
- RAM이 랜덤 액세스인 경우: 1000번 위치의 데이터를 읽는 데 20ns가 걸린다면,
- 순차 접근인 경우: 1000번 위치의 데이터를 읽는 데 1000×20𝑛𝑠=20,000𝑛𝑠가 걸립니다.
수업시간에서 구현할 구조 : 하버드 , RISC-V 구현.
<<RISC-V>>
OPEN SOURCE, The Free and Open RISC Instruction set Architecture. --> ISA
Instrucion Memory (ROM) -- Cotril unit, Data path --Data Memory ( RAM )
차근차근 만들어보자.
A변수에 0~9까지 카운트 하는 시스템 설계.
AsrcMuxSel 에 어떤신호를 주느냐에 따라서 동작시킬 수 있다.
STATE에 따른 ASrcMuxSel, Aload, OutBufSel 에 따라 어떠한 값이 출력되는지 확인.
동작하게 하는 애들은 ASrcMuxSel, Aload, OutBufSel 이므로 이에 따른 ASM을 확인한다. Alt 10 이 참 or 거짓 될 때 까지.
En(Load) 가 1일 때 CLK 올 때 까지 Regester 에서 1 이 대기한다.
특정 기능만 되는 프로세서 Dedicated Processor
'공부방 > Verilog_노진호교수님_서울기술교육센터_필기' 카테고리의 다른 글
240530_ CPU 첫 발자국 RISC-V 기능 추가중 (0) | 2024.05.30 |
---|---|
240529 counter_ cpu 걸음마시작 (0) | 2024.05.29 |
240524 FIFO+UART (0) | 2024.05.24 |
240523 FIFO (0) | 2024.05.23 |
240522_ BRAM (0) | 2024.05.22 |