CS(Computer Science)45 10. 파이프라인 (3) Pipeline Performace -> 100ps for register read or write (ID, WB) -> 200ps for other stages (IF, EX, MEM) Instruction IF ID EX MEM WB Total time lw 200ps 100ps 200ps 200ps 100ps 800ps sw 200ps 100ps 200ps 200ps 700ps R-format 200ps 100ps 200ps 100ps 600ps beq 200ps 100ps 200ps 500ps Pipeline SpeedUp 만약 모든 stage의 시간이 똑같다라면 -> Time between instrunctions(pipelined) = Time between instructions(non-pi.. 2023. 6. 4. 10. 파이프라인 (2) Hazard -> 바로 다음 cycle에서 insturction을 이어서 실행 할 수 없는 상황 1) Structural hazards => 여러개의 instruction이 같은 장치를 같은 cycle에 사용하려고 할때 발생 2) Data hazards => 이전의 instruction에서 만들어줘야 할 data가 아직 준비되어 있지 않을 때 3) Control hazards => Data hazard와 비슷하지만 beq와 같이 PC 값에 영향을 주는 경우 Structural hazards -> resource의 사용 conflict -> 장치를 더 추가하여 해결함 ex) single ALU 사용 시 문제가 되는 사례 beq는 두개의 ALU 연산을 필요로 함 1) 두 Register의 value 비교 2.. 2023. 6. 4. 10. 파이프라인 (1) Clock period를 결정하는 것 -> 가장 오래 걸리는 명령어의 연산 기준 Critical path: 가장 긴 시간을 요구하는 datapath (load instruction) Instruction Memory => Register file => ALU => Data Memory => Register file 성능 개선을 위해서 Pipelining을 사용 Pipelining 과정 IF => ID => EX => MEM => WB 1) IF : Memory로부터 Instruction을 Fetch 2) ID : Instruction을 decode & Register 읽음 3) EX : Execute operation or address Calculate 4) MEM : memory operand에 접근.. 2023. 6. 4. 9. 프로세서 (3) Load : MEMREAD 1 MEMWRITE 0 REGWRITE 1 Store : MEMREAD 0 MEMWRITE 1 REGWRITE 0 R-type과 Load/Store 연결 목적지 Register ID (Write Register) 1) R-type의 [15:11] 비트와 Load의 [20:16] 비트를 MUX로 연결 2) RegDst control값 이용 목적지 Register에 들어가는 값 1) R-type : ALU 연산 값 2) Load : Data memory로 부터 읽은 data 값 ALU연산은 - R-type instruction의 operation수행 - Load/Store instruction의 address calculation수행 R-type RegDst : 1 MemRead .. 2023. 6. 4. 이전 1 2 3 4 5 ··· 12 다음 728x90