본문 바로가기

RISC-V CPU 설계

(16)
[RISC-V ] single-cycle CPU 설계 ** CPU 내부 하드웨어 설계 구조  = 마이크로 아키텍쳐 (microarchitecture)  >> Instruction Fetch  (F)  Decoding (D) Execution (E)  F = 메모리에서 명령어를 읽어 CPU 내부로 가져오는 단계  D = 읽어온 명령어를 해석하는 단계  E = 해석한 명령어를 실제로 실행하는 단계    그림 (a) 에서 보면 모든 과정이 '하나의 clock-cycle동안 이루어진다 >> single-cycle CPU는 명령어를 하나를 처리하는데 한 클럭이 걸리는 CPU이다.   그림 (b) 에서 보면 F, D, E 각 단계를 처리하는데 한 클럭 이 걸린다. 따라 서 하나의 명령어를실행하는데 3개의 clock cycle이 필요하다.  다시 말하면 각단계를 ..
[RISC-V] CPU Architecture : Harvard Architecture 하버드 아키텍쳐 / von Neumann 폰노이만 아키텍쳐 * CPU 마이크로 아키텍처  >> datapath  / control   datapath : 데이터가 지나가는 길  control : datapath를 제어하는 신호 예를들어 그림에 ‘ALUSrc’는2:lmux로들어오는두 개의 입력 중하나를 선택하는contr이 신호 이다. ALU 또한 control 신호가 필요하다. ALU는 여 러 가지 연산을 할수 있는 모듈로, ‘ALUcontrol’ 에 따라 덧셈, 뺄셈, AND, OR, XOR 등의 연산 중 하나를 한다. 또 예를들어 datapath = 기찻길 , control = 선택 이라고 비유할 수 도 있다. 경부선과 호남선 기찻길(datapath)가 대전에서 갈라져야하는데 그때 선택(control)을 해야한다 그 선택에 따라 약속된 길(datapath)로 ..
[RISC-V ] single-cycle CPU 설계 / pipeline 소개 ** CPU 내부 하드웨어 설계 구조  = 마이크로 아키텍쳐 (microarchitecture)  >> Instruction Fetch  (F)  Decoding (D) Execution (E)  F = 메모리에서 명령어를 읽어 CPU 내부로 가져오는 단계  D = 읽어온 명령어를 해석하는 단계  E = 해석한 명령어를 실제로 실행하는 단계    그림 (a) 에서 보면 모든 과정이 '하나의 clock-cycle동안 이루어진다 >> single-cycle CPU는 명령어를 하나를 처리하는데 한 클럭이 걸리는 CPU이다.   그림 (b) 에서 보면 F, D, E 각 단계를 처리하는데 한 클럭 이 걸린다. 따라 서 하나의 명령어를실행하는데 3개의 clock cycle이 필요하다.  다시 말하면 각단계를 ..
[RISC-V] 4.2 순차회로 : Enable D flip-flop , set/reset D flip-flop (1) enable D flip-flop  >> enable 입력이 '1'일 때만 일반적인  D flip-flop으로 동작한다. 1 , 5에서는 enable == 1이기 때문에 입력 D가 출력 Q에 저장된다.  하지만  2 ~ 4 에서는 enable == 0 으로 입력 D가 출력 Q에 새롭게 저장되지 않는데,  그렇기 때문에 1번에서 저장한 값을 그대로 갖고 있다 !!     Verilog 해석 >>  enalbe == TRUE(=1)이면 입력 D가 출력 Q에 저장되고 , 그렇지 않으면 아무것도 하지 않는다. cf) 아무것도 하지 않는다 >> 마지막으로 저장한 출력 Q를 그대로 갖고 있다는 말이다.   (2) set / reset  D flip-flop >> 기존 D flip-flop과 비교하면 추가로 ..
[RISC-V] 4.2 순차회로 : flip-flop ?? -  순차회로 :  출력이 ‘현재 입력’과 ‘과거 입력’에 의해 결정되는 회로이다.  현재 입력 > 지금 인가하는 입력   ,, '과거 입력'은 어떻게 사용하는 걸까 ?? 하드웨어에서는 입력된 데이터를 저장할 수 있는 모듈   >> 플립플롭  ( flip - flop )  >> 과거의 입력을 가공해 형태를 바꿔 flip-flop에 저장하면  state ( 상태 ) 라고도 부른다. 따라서, 순차회로를 다시 표현하면 출력이 '현재 입력'과 '현재 상태'에 의해 결정되는 회로 ex) 300원짜리 콜라를 빼 먹는 자동판매기  >>  지금까지 200원을 넣은 '현재 상태'에서 , 여기에 추가로 100원 ('현재 입력') 을 넣으면 출력으로 콜라를  뺄 수 있다.    Clock  , 클럭  = 오실레이터 , 크리..
[RISC-V] 4.1 조합회로 조합회로는 출력이 ‘현재 입력’에 의해서만 결정되는 회로이다. Concatenation , Replication (1) concatenation은 두 개 이상의 입력을 묶어 하나의 출력을 만든다.  다시 말하면 ‘여러 개의 다른 이름으로 이루어진 입력’을 ‘하나의 이름을 가진 출력’으로 바꾸는 것과다름이 없다. >> 예를들어, RISC-V에서 B-type분기 명령어 destination을 계산하는데,   명령어에 포함된 12-bit imm[12:l] 뒤에 0을 붙여 13-bit imm[12:0] 만들 때 사용한다.   Replication은 말 그대로 신호를 반복적으로 복제하는 것이다. >>  예를 들어, 2-bit 데이터 ‘01’을 3번 복제하면 ‘010101’이 된다. Verilog를 이용한설계에서 ..
교과블록 4주차 개념정리(3장-4~ 3.5) 3.4] RV32I 분기 명령어 (Branch Instruction) >> 분기 명령어 (function와 같은 기능)     (1)  조건에 따른 분기 명렁어      (2)  무조건 분기    (1) 조건에 따른 분기 명령어 >> Conditional branch 명령어는고급언어의 if, while, for, case를사용한조건문에서 ‘==, != , 드, 느’ 와같은조 건의 만족 여부를 판단할 때 사용한다. 조건의 만족 여부에 따라 다음 실행할 명 령 어가 결정 되는 것이 다. 예를 들어, ‘beq x5, x6, L1’ 명 령어는, ‘x5  == x6’이면  CPU는 LI 레이블 에 있는 명령 어를 실행 하고. x5 != x6’이면 CPU는beq바로 다음에 있는 명령어를실행한다. L1 레이블에 있는..
교과블록 3주차 공부 참고 링크 https://0o0deng.tistory.com/entry/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-CH4-RISC-V-RISC-V-Instruction-1 [컴퓨터구조] CH4. RISC-V & RISC-V Instruction #1 CISC VS RISC - CISC (Complex Instruction Set Computer) 하나의 instruction이 여러가지 복잡한 작업을 함 ex. move in x86 instruction의 길이가 가변적 ex. x86(Intel, AMD), Motorola 68k - RISC (Reduced Instruction Set Computer) 각 instruct 0o0deng.tistory.com