본문 바로가기

학교 강의/컴퓨터 구조15

[컴퓨터구조 4.10]Parrallelism via Instructions 우리가 봤던 pipelining은 명령어를 병렬적으로 실행하는 방법이다.명령어 수준의 병렬성을 향상시키기 위해서 pipeline의 단계를 늘려 한 단계에 할 일을 줄이거나한 cycle에 여러 개의 instruction을 수행하도록(multiple issue) => pipeline의 개수를 늘림 2번 방법의 경우 CPI와 역수 관계인 IPC가 늘어나고IPC가 성능의 척도로 쓰인다.​하지만 이렇게 pipeline을 많이 두면 hazard 또한 늘어날 수밖에 없다.이럴때 static multiple issue와 dynamic multiple issue를 사용할 수 있다.​static multiple issue: complier가 hazard를 찾고 방지​dynamic multiple issue: CPU가 ha.. 2025. 7. 18.
[컴퓨터구조 4.9]Control Hazards control hazards(branch hazards)는 이전 단계의 결과값이 다음 단계에 작업을 수행할지 말지를 결정할 때 발생하는 hazard다.따라서 특히 branch 명령어와 관련이 깊다.beq명령어에서는 branch할지말지가 MEM 단계에서 결정된다.그리고 그 결과에 따라 branch하여 instruction fetch 단계가 진행된다.그렇기 때문에 branch 여부가 결정되기 전에 진행되고 있던 작업들은 모두 flush될 수밖에 없다.control hazard 해결책​추가적 하드웨어(Target address adder/Register comparator)control hazard는 branch 여부가 너무 늦게 도출되기 때문에 발생하므로추가적인 하드웨어를 두어 ID단계로 branch 여부 .. 2025. 7. 18.
[컴퓨터구조 4.8]Data Hazards: Forwarding vs Stalling sub $2, $1, $3and $12, $2, $5or $13, $6, $5add $14, $2, $2sw $15, 100($2)​위와 같은 MIPS코드에서는 $2가 5줄 모두에서 나오는데만약 첫줄에서 $2의 값이 10에서 -20으로 바뀐다면다음 4줄 모두에서 $2는 -20으로 사용되도록 할 수 있을까?multi-cycle pipelining diagram을 보면 sub 다음에 add가 나올 때부터 -20이라는 변경된 숫자가 반영된다.이렇게 이전의 명령어 처리가 완전히 끝나지 않아서 발생하는 hazard가 data hazards다.Data dependencies 에는 RAR/WAR/RAW/WAW가 있는데data hazards는 RAW 즉, Read After Write 인 경우에 발생한다.​그럼 구체적.. 2025. 7. 18.
[컴퓨터구조]프로세서(6) 데이터가 이동할 때 단계 사이사이에 register을 두어 저장할 필요가 있는데각 단계 사이에 있다는 이유로register 이름은 각각 IF/ID, ID/EX, EX/MEM, MEM/WB이다.​​lw의 datapath에서 사용되는 부분들IFIDEXMEMWBstore의 datapath에서 사용되는 부분들​IF/ID는 동일EXMEMstore은 쓰기가 필요 없기 때문에 MEM/WB 레지스터로 데이터 옮기는 작업을 안해도 됨WBstore에서 쓰기 작업은 진행되지 않는다.​이러한 single-cycle pipeline diagram은 multi-cycle pipeline diagram의 일부가 된다.multi-cycle pipelining diagramcontrol unit까지 포함된 datapath제어 정보도 .. 2025. 7. 18.