Pipeline MIPS #2

charrrming·2022년 5월 28일

Computer Architecture

목록 보기
13/17
* Flip-Flop (=pipeline register)
  : 새 clk에 이전 state를 저장해두었다가 다음 스테이지로 넘겨줌
    IF/ID, ID/EX, EX/MEM, MEM/WB
    
    
* Pipleline Control (주된 목적: mux의 시그널)
    - RegWrite: WB에서 사용, 레지스터에 쓸거냐
    - ALUSrc: 두번째 피연산자로 rt, imm 중에 뭐 쓸거냐
    - ALUOp: ALU control에서 생성, ALU에서 어떤 연산할지 알려줌
    - Zero: beq, bne 조건 체크
    - RegDst: R, I-format의 목적지 필드가 다름 -> rt[16-20], rd[15-11] 중에 뭐 쓸거냐
    		  rt(I-type) 쓸거면 0, rd(R-type) 쓸거면 1
    - Branch: 분기 명령어냐, Branch랑 Zero가 모두 1이면 PCSrc가 1이다!!
    - PCSrc: 1이면 pc에 분기하는 주소 집어넣음
    - MemWrite: 메모리에 쓸거냐
    - MemRead: 메모리 읽을거냐
    - MemtoReg: 레지스터에 메모리에서 읽은 값 넣을거냐(1), 
    아니면 그냥 ALU 계산 값 넣을거냐(0)
    
    
* 각 스테이지에 어떤 컨트롤이 필요하냐?
- IF
- ID
- EX: RegDst, ALUSrc, ALUop[1:0]
- MEM: Branch, MemRead, MemWrite
- WB: MemtoReg, RegWrite (여기서 필요한데 위치는 ID)

*Pipeline Control은 ID에서 생성됨. 하지만 사용은 나중에 하므로 FF에 저장해둔다!
    
    

0개의 댓글