본문 바로가기

분류 전체보기188

[컴퓨터구조 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.
[컴퓨터구조]프로세서(5) pipeline은 장점이 많지만 hazards라는 문제를 가져오기도 한다.Hazards란 다음 cycle 시작을 방해하는 상황종류로는 다음 세 가지가 있다.​Structure hazards : 하나의 단계(리소스)를 두 개의 명령어가 동시에 사용하려고 할 때 충돌: structure hazards가 발생하면 bubble(단계를 아무 의미 없이 지나치기만 하는 경우) 발생​예를 들어 IF 단계와 MEM 단계 모두 메모리 영역 접근이 필요한데 아래 그림처럼 4번째 cycle에서 충돌하게 된다.4번째 IF 이후에 bubble 발생​해결책 : IF와 MEM 단계를 위한 cache memory를 나눠서 두면 4번째 cycle에서 두 명령어 모두 메모리 접근이 가능하다.(하드웨어 추가)​Data hazards: 이.. 2025. 7. 18.