Computer Science 254 4. Control Hazard (Branch Hazard) Branch Hazard Conditional jump(beq, bne)에서 branch의 여부는 4번째 cycle(MEM stage)에서 판단이 완료된다. 따라서 3 cycle 동안 nop을 수행해야 한다. 성능 Conditional jump instruction은 약 15% 확률로 나타나기 때문에 CPI는 1.45 (= 1 + 0.15*3)가 된다. 이는 성능에 있어서 큰 감소를 일으킨다. 해결 beq/bne를 ID stage에서 끝냄으로써 손실을 최대한 줄일 필요가 있다. ID stage에서 끝낸다면 1cycle로 줄일 수 있다. 이를 위해서 ID stage에서 adder와 comparator가 필요하다. adder ID stage에서 target address를 계산한다. comparator 두 .. 2021. 5. 30. 4. Data Hazard Data Hazards 뒤의 instruction이 앞의 instruction의 결과를 사용할 때 발생한다. EX hazard : 바로 앞의 instruction의 결과를 사용할 때 MEM hazard : 2번째 앞의 instruction의 결과를 사용할 때 Load-use data hazard : 바로 앞의 instruction이 lw인 경우 EX Hazard and MEM Hazard 원인 Forwarding이 없을 경우 instruction의 결과는 WB가 끝나야 update된다. 그렇기 때문에 앞의 instruction의 연산 결과를 바로 뒤의 instruction에서 사용할 수는 없다. Data hazard에서는 값을 write 한 후 read해야 하는 RAW(read after write) d.. 2021. 5. 30. 4. Structural Hazard Structure Hazards 하나의 functional unit을 두고 서로 다른 stage(instruction)에서 사용하려고 하는 경우에 발생한다. 서로 다른 stage가 같은 functional unit을 사용하는지는 datapath의 strucutre만 보면 판단할 수 있다. 이 때문에 "structural" hazard라고 한다. 다음과 같은 structure hazards가 존재한다. 그러나 5-stage MIPS에서는 하드웨어적으로 해결하기 때문에 structure hazard가 없다. Memory instruction과 data가 single memory에 들어있는 경우 IF와 MEM stage에서 동시에 memory에 접근하는 경우 instruction memory와 data mem.. 2021. 5. 30. 4. Pipeline Hazards Hazards pipeline에서는 매 사이클마다 instruction 하나가 수행되는 것이 중요하다. 즉 다음 사이클에서는 다음 instruction이 시작되는 것이 중요하다. 이를 방해하는 요인(상황)들을 hazard라고 한다. Hazard들은 먼저 실행된 instruction들이 끝날 때 까지 현재 instruction을 wait하게 한다. 따라서 CPU 성능에 큰 감소를 주기 때문에 해결해야 한다. 크게 3가지의 hazard가 존재한다. Structural hazards 필요한 resource가 다른 instruction에서 사용 중인 경우 Data hazards 이전 instruction의 수행 결과가 필요해서 wait 해야하는 경우 특히 lw/sw한 data를 사용하는 경우는 Load-use .. 2021. 5. 30. 4. Pipelining Pipeline 여러 instruction들의 실행을 overlap시켜서 CPI를 1로 만들고, 성능을 향상시킨다. 더 많은 하드웨어를 써서 더 많은 stage로 나눈다면 더 빠른 속도를 얻을 수 있다. Pipeline을 overlapped execution, instruction-level parallelism이라 한다. MIPS는 5개의 stage로 나눠서 pipelining을 한다. IF instruction fetch ID instruction decode, register read control signal을 만들면서, 동시에 register을 읽어서 속도를 향상시킨다. EX execute operation or calculate address MEM memory access WB write r.. 2021. 5. 23. 이전 1 ··· 37 38 39 40 41 42 43 ··· 51 다음