레저베이션 스테이션

레저베이션 스테이션(reservation station) 또는 통합 스케줄러(unified scheduler)는 CPU의 마이크로아키텍처의 분산 기능으로, 레지스터 이름 변경을 허용하고, 토마술로 알고리즘에 의해 동적 명령어 스케줄링에 사용된다.

레저베이션 스테이션을 통해 CPU는 데이터 값이 계산되는 즉시 이를 가져와 다시 사용할 수 있으며, 레지스터에 저장되고 다시 읽힐 때까지 기다릴 필요가 없다. 명령이 발행될 때, 그들은 입력을 읽고 싶은 레저베이션 스테이션을 지정할 수 있다. 여러 명령이 동일한 레지스터에 기록해야 할 경우, 모든 명령이 진행될 수 있으며 논리적으로 마지막 명령만 실제로 기록되어야 한다. 명령 실행 전에 피연산자 사용 가능 여부(RAW) 및 실행 장치 사용 가능 여부(구조 해저드)를 확인한다.

명령어는 사용 가능한 매개변수와 함께 저장되며, 준비가 되면 실행된다. 결과는 해당 명령어를 실행할 유닛에 의해 식별된다. 암묵적으로 레지스터 이름 변경은 WAR 및 WAW 해저드를 해결한다. 이는 완전 연관 구조이기 때문에 비교기 비용이 매우 높다(처리 장치에서 반환된 모든 결과와 저장된 모든 주소를 비교해야 함).

토마술로의 알고리즘에서 명령어는 레저베이션 스테이션에 순서대로 발행되며, 레저베이션 스테이션은 명령어와 명령어의 피연산자를 버퍼링한다. 피연산자가 사용 가능하지 않으면, 레저베이션 스테이션은 공통 데이터 버스에서 피연산자가 사용 가능해질 때까지 기다린다. 피연산자가 사용 가능해지면 레저베이션 스테이션은 이를 버퍼링하고, 명령어의 실행이 시작될 수 있다.

기능 유닛(가산기 또는 곱셈기와 같은)은 각각 고유한 해당 레저베이션 스테이션을 가진다. 기능 유닛의 출력은 공통 데이터 버스에 연결되며, 레저베이션 스테이션은 필요한 피연산자를 기다린다.

 참고 문헌 
 Computer Architecture: A Quantitative Approach, John L. Hennessy, David A. Patterson, 2012 () "3.4 Overcoming Data Hazards with Dynamic Scheduling", p 172-180

 각주 

 외부 링크 
 레저베이션 스테이션, HASE 프로젝트, 에든버러 대학교 정보학부 컴퓨터 시스템 아키텍처 연구소, 2003
 CS6290 토마술로의 알고리즘 , 조지아 공과대학교

분류:명령어 처리