본문 바로가기
기타

[MIPS] Pipeline Hazard 종류 / Structure / Data / Control

by 서상혁 2019. 12. 1.

Hazard 란

pipeline 형식에서 어떠한 문제가 발생해서 다음 사이클의 다음 명령을 실행할 수 없는 경우를 뜻한다.
 


Structure Hazard
 
물리적인 원인에 의하여 발생하는 hazard 로, 메모리를 1개만 쓴다던지 포트가 하나라던지 하는 이유로 발생한다. 1개의 메모리로 읽고 쓰는 게 동시에 진행되려할 때 발생한다.
 
해결방법 :
1. 메모리 수를 늘린다. (물리적으로 하드웨어를 추가해준다.) 
2. 해당 기능 사용 가능한 시점까지 지연시킨다.
 
 
Data Hazard
 
Instruction 의 식 실행을 위해 필요한 데이터가 아직 만들어지지 않은 경우!

출처 : 고려대학교 컴퓨터구조 이숙윤 교수님 ppt

해결방법 :
1. 계산되자마자 MEM 과 WB를 거지 않고 바로 결과값을 넘겨준다. (Forwarding or Bypassing)

출처 : 고려대학교 컴퓨터구조 이숙윤 교수님 ppt

2. 소프트웨어적으로 코드순서를 재배열해준다. code scheduling

출처 : 고려대학교 컴퓨터구조 이숙윤 교수님 ppt

Control Hazard
 
다음 instruction 의 부정확함에 의해 발생한다. 주로 branch outcome 이 나오지 않은 상황으로 인해 발생한다.
beq 조건 에서 True 인경우 beq 바로 밑에 나오는 명령들과 beq 로 인해 branch 되는 명령과 겹친다.
 
해결방법 :
 
 

728x90

댓글