오늘은 맑음

Reservation station 본문

Processor

Reservation station

자전거 타는 구구 2019. 2. 27. 20:05
반응형

Reservation station


data hazard를 피할 수 있는 방법중에 scoreboardingreservation station이 있다.

scoreboarding은 이전 포스팅에서 알아보았으므로 이번엔 reservation station에 대해서 알아보자.


Reservation Station

: reservation station은 CPU가 사용한 레지스터를 연산이 종료된 즉시 가져와 저장하는 버퍼다. 결과값을 register에 write하지 않고 reservation station에 저장함으로써 WAR, WAW hazard를 방지할 수 있다.


명령어가 발행되어 operand와 함께 실행되어 나온 결과는 reservation station에 저장된다.

 이 후 같은 register에 대한 write 명령어가 수행되어도 결과값은 reservation station에 저장되며 프로그램의 순서상 가장 마지막에 발행된 명령어의 결과만이 실제 register에 저장되어 WAW hazard를 피할 수있다.

 역시 실행한 결과값이 바로 register에 저장되지 않고 reservation station에 저장되기 때문에 명령어는 필요한 값을 register 또는 reservation station에서 사용할 수 있다. 이로 인해 WAR hazard 또한 방지할 수 있다.


 reservation station에서 WAR hazard를 방지하는 또 다른 방법으로는 register renaming이다.


MULTD   F4, F2, F2

ADDD     F2, F0, F6


 위와 같은 명령어가 실행된다고 하자. F2 register의 경우 ADDD명령어가 먼저 종료되면 MULTD의 결과값이 달라지는 문제가 발생한다. 따라서 다음과 같이 수정한다.


MULTD    F4, F2, F2

ADDD      F8, F0, F6


 위와 같이 ADDD명령어의 결과값을 사용하지 않을 F8에 write하게 되면 의존성(dependency)가 사라져 역시 WAR hazard를 예방할 수 있다.(F8은 사용하지 않았다고 가정한다)


반응형

'Processor' 카테고리의 다른 글

Clock Gating(클럭 게이팅)  (0) 2019.04.25
single precision/half precision  (0) 2019.03.28
MSHRs(Miss Status Holding Registers)  (0) 2019.02.27
Data Prefetch  (1) 2019.02.21
multi-thread processor에서의 scoreboard  (0) 2019.02.20
Comments