64비트 4-way 수퍼스칼라 마이크로프로세서의 효율적인 분기 예측을 수행하는 프리페치 구조

A Prefetch Architecture with Efficient Branch Prediction for a 64-bit 4-way Superscalar Microprocessor

  • 문상국 (연세대학교 전기전자공학과) ;
  • 문병인 (연세대학교 전기전자공학과) ;
  • 이용환 (현대전자산업 RAMBUS 설계팀) ;
  • 이용석 (연세대학교 전기전자공학과)
  • 발행 : 2000.11.01

초록

본 논문에서는 명령어의 효율적인 페치를 위해 분기 타겟 주소 전체를 사용하지 않고 캐쉬 메모리(cache memory) 내의 적은 비트 수로 인덱싱 하여 한 클럭 사이클 안에 최대 4개의 명령어를 다음 파이프라인으로 보내줄 수 있는 방법을 제시한다. 본 프리페치 유닛은 크게 나누어 3개의 영역으로 나눌 수 있는데, 분기에 관련하여 미리 부분적으로 명령어를 디코드 하는 프리디코드(predecode) 블록, 타겟 주소(NTA : Next Target Address) 테이블 영역을 추가시킨 명령어 캐쉬(instruction cache) 블록, 전체 유닛을 제어하고 가상 주소를 관리하는 프리페치(prefetch) 블록으로 나누어진다. 사용된 명령어들은 SPARC(Scalable Processor ARChitecture) V9에 기준 하였고 구현은 Verilog-HDL(Hardwave Description Language)을 사용하여 기능 수준으로 기술되고 검증되었다. 구현된 프리페치 유닛은 명령어 흐름에 분기가 존재하더라도 단일 사이클 안에 4개까지의 명령어들을 정확한 예측 하에 다음 파이프라인으로 보내줄 수 있다. 또한 NTA를 사용한 방법은 같은 수의 레지스터 비트를 사용하였을 때 BTB(Branch Target Buffer)를 사용하는 방법과 비교하여 2배정도 많은 개수의 분기 명령 주소를 저장할 수 있는 장점이 있다.

키워드

참고문헌

  1. Computer Organization and Design:The Hardware/Software Interface John L. Hennessy;David A. Patterson
  2. Superscalar Microprocessor Design Mike Johnson
  3. Proc. 22nd Ann. Int'l. Symp. Computer Architecture Next Cache Line and Set Prediction B.Calder;D.Grunwald
  4. IEEE Computer Branch Prediction Strategies and Branch Target Buffer Design Johnny,K.F.;Lee Alan Jay Smith
  5. IEEE Computer Reducing the Cost of Branches Scott McFarling;John Hennessy
  6. 연세대학교 대학원 전자공학과 석사학위 논문 수퍼스칼라 마이크로프로세서용 프리페치 유닛에 관한 연구 안상준
  7. IEEE Micro UltraSPARC Ⅰ: A Four-Issue Processor Supporting Multimedia Marc Tremblay;J. Michael O'Connor
  8. UltraSPARC : The Next Generation Superscalar 64-bit SPARC Greenley(et al.)
  9. IEEE Journal of Solid-State Circuits v.27 no.8 A Secondary Cache Controller Design for a High-End Microprocessor Yong S. Lee