본문 바로가기

Computer Science/Computer Architecture 52

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.
4. Single Cycle, Multi Cycle, Pipeline Performance Delay는 무시하고, 각 access time이 다음과 같다고 해보자. Memory access : 200ps Instruction fetch, lw, sw 실제 memory access에 걸리는 시간은 훨씬 더 오래걸리지만, 속도를 높이기 위해서 cache memory를 사용한다. ALU and Adders : 200ps Register file access : 100ps register는 32개 밖에 없기 때문에 memory access 보다 속도가 훨씬 빠르다. 절반의 속도를 가지는 것은 의도된 현상이다. 각 instruction 실행에 걸리는 시간은 다음과 같이 된다. 이 중 가장 긴 것(critical path)을 기준으로 하나의 clock(cct)를 결정한다. CPU P.. 2021. 5. 23.