KR920020314A - 브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치 - Google Patents

브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치 Download PDF

Info

Publication number
KR920020314A
KR920020314A KR1019920005633A KR920005633A KR920020314A KR 920020314 A KR920020314 A KR 920020314A KR 1019920005633 A KR1019920005633 A KR 1019920005633A KR 920005633 A KR920005633 A KR 920005633A KR 920020314 A KR920020314 A KR 920020314A
Authority
KR
South Korea
Prior art keywords
branch
instruction
instructions
currently
prediction
Prior art date
Application number
KR1019920005633A
Other languages
English (en)
Other versions
KR950012119B1 (ko
Inventor
미츠오 사이토
다케시 아이카와
둔지 모리
Original Assignee
아오이 죠이치
가부시기가이샤 도시바
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아오이 죠이치, 가부시기가이샤 도시바 filed Critical 아오이 죠이치
Publication of KR920020314A publication Critical patent/KR920020314A/ko
Application granted granted Critical
Publication of KR950012119B1 publication Critical patent/KR950012119B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

내용 없음

Description

브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 브랜치 예측 장치의 제1실시예를 도시한 블록도,
제2도는 명령 폐취시에 제1도의 브랜치 예측 장치의 수행을 도시한 순서도,
제6도는 제4도의 장치에 있어서 그 수행을 설명하기 위한 처리 흐름도.

Claims (40)

  1. 명령어들의 그룹을 동시에 실행하기 위한 프로세서 수단과; 예측 브랜치 명령을 가진 명령어 그룹을 지시하는 브랜치 어드레스, 상기 예측 부랜치 명령의 브랜치 타켓 어드레스, 및 상기 브랜치 어드레스에 의해 지시된 상기 명령어 그룹에서 성기 예측 브랜치 명령의 위치를 지시하는 명령 위치를 각기 포함하는 엔트리들을 기록하기 위한 브랜치 예측 테이블 수단과; 상기 프로세서 수단에 의해 동시에 실행될 명령어 그룹을 폐취하기 위해, 후속처리 시간내에 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령의 브랜치 타겟 어드레스에 의해 지시된 명령어 그룹을 폐취하고, 상기 폐취된 명령어 그룹에 대한 상기 예측 브랜치 명령이 상기 현재 폐취된 명령어 그룹의 어드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블 수단내 엔트리에 기록되는 명령 폐취 수단과; 상기 예측 브랜치 명령이 상기 현재 폐취돈 명령어 그룹에 실제 실행시에 실제로 인카운터 되었을때 상기 현재 폐취된 명령 그룹에 대한 상기 예측 브랜치 명령을 올바르게 판정하기 위한 예측 판정 수단과; 상기 예측 판정 수단이 상기 예측 브랜치 명령을 올바르게 판정하기 않았을때, 후속 처리시간에서 상기 명령 폐취 수단에 의해 쳬취되는 명령어들의 현재 폐취된 그룹에 대해 상기 예측 브랜치 명령의 상기 브랜치 타겟 어드레스에 의해 지시된 명령어 그룹을 무효로 하기 위한 예측 명령 무효 수단을 구비하는 것을 특징으로 하는 브랜치 예측 장치.
  2. 제1항에 있어서, 상기 예측 판정 수단은 현재 폐취된 명령어 그룹의 에드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블 수단의 엔트리에 기록된 상기 명령 위치와, 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 실제 브랜치 명령의 실제 명령 위치를 비교하기 위한 비교기 수단을 포함하는 것을 특징으로 하는 장치.
  3. 제2항에 있어서, 상기 브랜치 예측 테이블 수단에 상기 엔트리를 재기록하기 위한 테이블 기록 수단을 추가로 구비하는 것을 특징으로 하는 장치.
  4. 제3항에 있어서, 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 상기 실제 브랜치 명령의 상기 실제 명령 위치가 상기 현재 폐취된 명령어 그룹에 대한 상기 예측 브랜치 명령의 상기 명령 위치와는 상이하고 상기 실제 브랜치 명령이 실제로 받아들여지지 않았을때, 다른 브랜치 명령이 상기 실제 브랜치 명령후 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터되지 않고 상기 테이블 기록 수단이 상기 현재 폐취된 명령어 그룹의 모든 실행이 완료될때까지 상기 브랜치 예측 테이블 수단내 상기 엔트리들을 기록하지 않는 것을 특징으로 하는 장치.
  5. 제3항에 있어서, 상기 테이블 기록 수단은 또한 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 상기 실제 브랜치 예측이 상기 브랜치 예측 테이블 수단에 기록되지 않았을때, 상기 현재 폐취된 명령어 그룹에 대한 실제 브랜치 명령을 기록하는 새로운 엔트리를 상기 브랜치 예측 테이블 수단에 기록하는 것을 특징으로 하는 장치.
  6. 제1항에 있어서, 상기 현재 폐취된 명령어 그룹의 실제 실행전에 상기 현재 폐취된 명령어 그룹에 대한 상기 예측 브랜치 명령의 명령 위치뒤에 위치되는 현재 폐취된 명령어 그룹에서 명령들을 무효로하기 위한 현재 무효수단을 추가로 구비하는 것을 특징으로 하는 장치.
  7. 제6항에 있어서, 상기 명령 폐취 수단은 상기 현재 폐취된 명령어 그룹의 실제 실행후에 인카운터된 모든 브랜치 명령들이 실제로 받아들여지지 않고, 상기 현재 폐취된 명령어 그룹의 실행시에 인카운터되는 브랜치 명령이 없는 경우에, 후속 처리 시간에서 상기 현재 명령 무효 수단에 의해 무효로된 명령들을 폐취하는 것을 특징으로 하는 장치.
  8. 제6항에 있어서, 상기 명령 폐취 수단에 의해 폐취된 명령어 그룹은 상기 현재 폐취된 명령어 그룹에 대해 상기 예측 브랜치 명령의 명령 위치뒤에 위치되었을때도 상기 현재 명령 무효 수단에 의해 무효로 될수없는 지연명령을 포함하고, 상기 지연 명령들중 하나는 실제로 브랜치 명령이며, 상기 명령 폐취 수단은 후속 처리 시간에서 실제의 브랜치 명령인 상기 지연 명령들중 하나의 뒤에 위치되는 현재 폐취된 명령어 그룹의 모든 명령과 실제 브랜치 명령인 상기 지연 명령들중 하나를 폐취하는 것을 특징으로 하는 장치.
  9. 제1항에 있어서, 상기 명령 폐취 수단은 상기 현재 폐취된 명령어 그룹의 어드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블 수단내 엔트리에 기록되는 상기 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령이 있고, 상기 현재 폐취된 명령어 그룹에 대한 상기 예측 브랜치 명령의 브랜치 타겟 어드레스의 의해 지시된 명령어 그룹이 상기 현재 페취된 명령어 그룹에 대한 상기 예측 브랜치 명령의 브랜치 타겟 어드레스의 명령 위치에 앞선 브랜치 어드레스의 명령위치를 갖는 상기 브랜치 예측 테이블 수단내 다른 엔트리에 기록된 다른 예측 브랜치 명령을 포함하지 않는 경우를 제외하고는, 명령의 어드레스에 따라 순차적으로 명령어 그룹을 폐취하는 것을 특징으로 하는 장치.
  10. 제1항에 있어서, 상기 브랜치 예측 테이블 수단은 연관 메모리를 구비하는 것을 특징으로 하는 장치.
  11. 명령들을 실행하기 위한 프로세서 수단과; 엔트리들을 기록하기 위한 연관 메모리로 형성되며, 상기 각 엔트리가 예측 브랜치 명령을 가진 동시에 실행될 명령들을 브랜치 어드레서, 상기 예측 브랜치 명령의 브랜치 타겟 어드레스 및 상기 연관 메모리내 각 엔트리의 위치를 지시하는 엔트리 어드레스를 포함하는 브랜치 예측 테이블 수단과; 상기 프로세서 수단에 의해 동시에 실행될 명령들을 폐취하기 위해, 후속 처리시간에서 현재 폐취된 명령들에 대한 예측 브랜치 명령의 브랜치 타겟 어드레스에 의해 지시된 명령들을 폐취하고, 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령이 상기 현재 폐취된 명령들의 어드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블 수단내 엔트리에 기록되는 명령 폐취 수단과; 상기 예측 브랜치 명령이 상기 현재 폐취된 명령들의 실제 실행시에 실제로 인카운터되었을때 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 올바르게 판정하기 위한 예측 판정 수단과; 상기 예측 판정 수단이 상기 예측 브랜치 명령을 올바르게 판정하지 않았을때, 후속 처리시간에서 상기 명령 폐취 수단에 의해 폐취되는 현재 폐취된 명령들에 대해 상기 예측 브랜치 명령의 브랜치 타겟 어드레스에 의해 지시된 명령들을 무효로하기 위한 예측 명령 무효 수단과; 상기 현재 폐취된 명령들에 대해 예측 브랜치 명령을 기록하는 엔트리의 엔트리 어드레스를 사용함으로써, 상기 예측 판정 수단이 상기 예측 브랜치 명령들을 올바르게 판정하지 않았을때 상기 브랜치 예측 테이블 수단내에 상기 현재 폐취된 명령들에 대한 상기 예측 브랜치 명령을 기록하는 엔트리를 재기록하기 위한 테이블 기록 수단을 구비하는 것을 특징으로 하는 브랜치 예측 장치.
  12. 제11항에 있어서, 상기 테이블 기록 수단은 상기 현재 폐취된 명령들의 실제 실행시에 인카운터된 실제 브랜치 예측이 상기 브랜치 예측 테이블 수단내에 기록되지 않았을때 상기 브랜치 예측 테이블 수단내에 상기 현재 폐취된 명령들에 대한 실제 브랜치 명령을 기록하는 새로운 엔트리를 기록하고, 상기 테이블 기록 수단이 상기 브랜치 예측 테이블 수단에서 현재 사용되지 않은 새로운 엔트리 어드레스를 사용함으로써 상기 새로운 엔트리를 기록하는 것을 특징으로 하는 장치.
  13. 제11항에 있어서, 상기 현재 페취된 명령들에 대한 상기 예측 브랜치 명령을 기록하는 엔트리의 엔트리 어드레스를 공급하기 위해, 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리의 재기록이 상기 테이블 기록 수단에 의해 수행될때까지 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리의 엔트리 어드레스를 적재하는 수단을 추가로 구비하는 것을 특징으로 하는 장치.
  14. 제11항에 있어서, 상기 테이블 기록 수단은 상기 현재 폐취된 명령들의 실제 실행시에 인카운터된 실제 브랜치 명령이 상기 테이블 기록 수단에 의해 기록이 수행되는 동일한 처리 시간에서 폐취되고 있는 동안은 상기 예측 판정 수단이 상기 예측 브랜치 명령을 올바르게 판정하지 않았을때에도 상기 브랜치 예측 테이블 수단내에 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리를 재기록하지 않는 것을 특징으로 하는 장치.
  15. 제11항에 있어서, 상기 브랜치 예측 테이블내 각 엔트리는 상기 브랜치 예측 테이블 수단내 상기 각 엔트리의 유효성을 지시하는 유효 비트를 추가로 포함하는 것을 특징으로 하는 장치.
  16. 제15항에 있어서, 상기 브랜치 예측 테이블 수단내 각 엔트리의 상기 유효 비트는 상기 각 엔트리의 예측 브랜치 명령이 상기 예측 브랜치 명령의 실행시에 실제로 받아들여지지 않았을때 상기각 엔트리를 무효로 지시하는 것을 특징으로하는 장치.
  17. 제15항에 있어서, 상기 명령 폐취 수단에 의해 폐취될 명령들을 적재하기 위한 캐쉬 메모리 수단을 추가로 구비하며, 상기 브랜치 예측 테이블 수단내 각 엔트리의 상기 유효 비트는 상기 각 엔트리의 브랜치 어드레스와 일치하는 어드레스를 가진 명령이 상기 캐쉬 메모리 수단내에 존재하지 않을때 상기 각 엔트리를 무효로 지시하는 것을 특징으로 하는 장치.
  18. 제15항에 있어서, 상기 테이블 기록 수단은 상기 현재 폐취된 명령들의 실제 실행시에 인카운터된 실제 브랜치 에측이 상기 브랜치 예측 테이블 수단내에 기록되지 않았을때 상기 브랜치 예측 테이블 수단내에 상기 현재 폐취된 명령들에 대한 실제 브랜치 명령을 기록하는 새로운 엔트리를 기록하며, 상기 테이블 기록 수단이 무효로된 상기 엔트리를 지시하는 무효 비트를 가진 엔트리를 위해 기록함으로써 새로운 엔트리를 기록하는 것을 특징으로 하는 장치.
  19. 제11항에 있어서, 상기 플로세서 수단은 명령어 그룹을 동시에 실행하며, 상기 명령 폐취 수단은 각 처리 시간에 명령어 그룹을 폐취하고, 상기 브랜치 예측 테이블 수단내 각 엔트리는 상기 브랜치 어드레스에 의해 지시된 명령어 그룹에서 예측 브랜치 명령의 위치를 지시하는 명령 위치를 또한 포함하는 것을 특징으로 하는 장치.
  20. 제19항에 있어서, 상기 명령 폐취 수단은 상기 현재 폐취된 명령들의 어드레스와 일치하는 브랜치 어드레스를 가진 상기 브랜치 예측 테이블 수단내 엔트리에 기록되는 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령이 있으며, 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령의 브랜치 타겟 어드레스에 의해 지시된 명령들이 현재 폐취된 명령들에 예측 브랜치 명령의 브랜치 타겟 어드레스에 앞선 브랜치 어드레스를 가진 상기 브랜치 예측 테이블 수단내 다른 엔트리에 기록된 다른 예측 브랜치 명령을 포함하지 않는 경우를 제외하고는 명령들의 어드레스에 따라 순차적으로 명령을 폐취하는 것을 특징으로 하는 장치.
  21. 명령어들의 그룹을 동시에 실행할 수 있는 프로세서에 대한 브랜치 예측 방법에 있어서, 예측 브랜치 명령을 갖는 명령어 그룹을 지시하는 브랜치 어드레스, 상기 예측 브랜치 명령의 브랜치 어드레스, 및 상기 브랜치 어드레스에 의해 지시된 명령어 그룹에서 예측 브랜치 명령의 위치를 지시하는 명령 위치를 각기 포함하는 엔트리를 기록하기 위해 브랜치 예측 테이블을 제공하는 단계와; 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령이 상기 현재 폐취된 명령어 그룹의 어드레스와 일치하는 브랜치 어드레스를 가진 상기 브랜치 예측 테이블 수단내 엔트리에 기록되어 있으며, 후속 처리시간에서 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령의 브랜치 타켓 어드레스에 의해 지시되는 상기 프로세서에 의해 동시에 실행될 명령어 그룹을 폐취하는 단계와; 상기 프로세서에 의해 동시에 폐취하는 상기 단게에서 폐취된 명령어 그룹을 실제로 실행하는 단계와; 상기 예측 브랜치 명령이 상기 실제 실행 단계에서 현재 폐취된 명령어 그룹의 실제 실행시에 실제로 인카운터될때 상기 폐취된 명령어 그룹에 대한 예측 브랜치 명령을 올바르게 판정하는 단계와; 상기 예측 브랜치 명령이 상기 판정 단계에서 올바르게 판정되지 않았을 때, 상기 후곡 처리시간에 상기 폐취 단계에서 폐취되는 현재 폐취된 명령어 그룹에 대하여 상기 예측 브랜치 명령의 브랜치 타켓 어드레스에 의해 지시된 명령어 그룹을 무효로 하는 단계를 포함하는 것을 특징으로 하는 브랜치 예측 방법.
  22. 제21항에 있어서, 상기 판정 단계에서, 현재 폐취된 명령어 그룹의 어드레스와 일치하는 브랜치 어드레스를 가진 상기 브랜치 예측 테이블의 엔트리에 기록된 상기 명령 위치가 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 실제 브랜치 명령의 실제 명령 위치와 비교되는 것을 특징으로 하는 방법.
  23. 제22항에 있어서, 상기 브랜치 예측 테이블내에 엔트리들을 재기록하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  24. 제23항에 있어서, 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 실제 브랜치 명령의 상기 실제 명령 위치가 상기 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령의 상기 명령 위치와는 상이하며, 상기 실제 브랜치 명령이 실제로 받아들여지지 않았을때, 다른 브랜치 명령이 상기 실제 브랜치 명령후 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터되지 않고 상기 현재 폐취된 명령어 그룹의 모든 실행이 완료될때까지 상기 재기록 단계에서의 상기 브랜치 예측 테이블내 엔트리들의 재기록을 수행하지 않는 것을 특징으로 하는 방법.
  25. 제23항에 있어서, 상기 재기록 단계에서, 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 상기 실제 브랜치 예측이 상기 브랜치 예측 테이블내에 기록되지 않았을때 상기 현재 폐취된 명령어 그룹에 대한 실제 브랜치 명령을 재기록하는 새로운 엔트리가 상기 브랜치 예측 테이블내에 기록되는 것을 특징으로 하는 방법.
  26. 제21항에 있어서, 상기 현재 폐취된 명령어 그룹의 실제 실행전에 상기 현재 폐취된 명령어 그룹에 대한 예측 브랜치 명령의 명령 위치뒤에 위치되는 현재 폐취된 명령어 그룹에서 명령들을 일시적으로 무효로 하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  27. 제26항에 있어서, 상기 폐취 단계에서, 상기 현재 폐취된 명령어 그룹의 실제 실행시에 인카운터된 브랜치 명령 모두가 실제로 받아들여지지 않았고, 상기 현재 폐취된 명령어 그룹의 실행시에 인카운터되는 브랜치 명령이 없는 경우에, 상기 일시적 무효 단계에서 무효로된 명령들이 후속의 처리 시간에서 폐취되는 것을 특징으로 하는 방법.
  28. 제26항에 있어서, 상기 폐취 단게에서 폐취된 명령어 그룹은 상기 현재 폐취된 명령어 그룹에 대해 예측 명령의 명령 위치뒤에 위치되었을때도 상기 일시적 무효 단계에서 무효로 될 수 없는 지연 명령을 포함하며, 상기 지연 명령들중 하나는 실제의 브랜치 명령이며, 실제 브랜치 명령인 상기 지연 명령들중 하나와 실제 브랜치 명령인 상기지연 명령들중 한 명령뒤에 위치된 현재 폐취 명령어 그룹의 모든 명령들이 후속 처리 시간에 상기 폐취 단계에서 폐취되는 것을 특징으로 하는 방법.
  29. 제21항에 있어서, 상기 폐취 단계에서, 상기 현재 폐취된 명령어 그룹의 어드레스와 일치하는 브랜치 어드레스를 가진 상기 브랜치 예측 테이블내 엔트리에 기록되는 현재 폐취된 명령어 그룹에 대한 예측 브랜칭 명령이 있으며, 상기 현재 폐취된 명령어 그룹에 대한 상기 예측 브랜치 명령의 브랜치 타켓 어드레스에 의해 지시된 명령어 그룹에 상기 현재 폐취된 명령어 그룹에 대한 상기 예측 그룹에 대한 상기 브랜치 명령의 브랜치 타겟 어드레의 명령 위치에 앞선 브랜치 어드레스의 명령 위치를 가진 상기 브랜치 예측 테이블내 다른 엔트리에 기록된 다른 예측 브랜치 명령을 포함하지 않는 경우를 제외하고는, 명령의 어드레스에 따라 상기 명령어 그룹이 순차적으로 폐취되는 것을 특징으로 하는 방법.
  30. 제21항에 있어서, 상기 브랜치 에측 테이블은 연관 메모리에 의해 형성되는 것을 특징으로 하는 방법.
  31. 에측 브랜치 명령을 가진 동시에 실행될 명령들을 지시하는 브랜치 어드레스와, 상기 예측 브랜치 명령의 브랜이 타켓 어드레스와, 각 엔트리의 위치를 지시하는 엔트리 어드레스를 각기 포함하는 엔트리들을 기록하기 위해 연관 메모리에 의해 형성된 브랜치 예측 테이블을 제공하는 단계와; 상기 현재 폐취된 명령에 대한 상기 예측 브랜치 명령이 상기 현재 폐취된 명령의 어드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블내 엔트리에 기록되며, 후속 처리 시간에 현재 폐취된 명령에 대한 예측 브랜치 명령의 브랜체 타겟 어드레스에 의해 지시되는 프로세서에 의해 동시에 실행될 명령들을 폐취하는 단계와; 상기 프로세서에 의해 상기 폐취단계에서 동시에 폐취된 명령들을 실제로 실행하는 단계와; 상기 예측 브랜치 명령이 상기 실제 실행 단계에서 현재 폐취된 명령들의 실제 실행시에 실제로 인카운터될때 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 옳은 것으로 판정하는 단계와; 상기 판정 단계에서 상기 예측 브랜치 명령이 옳은 것으로 판정되지 않았을때, 후속 처리 시간에 상기 폐취 단계에서 페취되는 현재 폐취된 명령들에 대한 예측 브랜치 명령의 브랜치 타겟 어드레스에 의해 지시된 명령들을 무효로 하는 단계와; 상기 현재 폐취된 명령들에 대해 예측 브랜치 명령을 기록하는 엔트리의 엔트리 어드레스를 사용하므로써, 상기 예측 브랜치 명령이 상기 판정 단계에서 옳은 것으로 판정되지 않을때 상기 브랜치 예측 테이블내 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리를 재기록하는 단계를 포함하는 것을 특징으로 하는 브랜치 예측 방법.
  32. 제31항에 있어서, 상기 재기록 단계에서, 상기 브랜치 예측 테이블에서 현재 사용되지 않은 새로운 에트리 어드레스를 사용함으로써, 현재 폐취된 명령들의 실제 실행시에 인카운터될 실제 브랜치 예측이 상기 브랜치 예측 테이블내에 기록되지 않았을때 상기 현재 폐취된 명령들에 대한 실제 브랜치 명령을 기록하는 새로운 엔트리가 상기 브랜치 예측 테이블내에 기록되는 것을 특징으로 하는 방법.
  33. 제31항에 있어서, 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리의 재기록이 상기 재기록 단계에서 수행될때까지, 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령을 기록하는 엔트리의 엔트리 어드레스를 적재하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  34. 제31항에 있어서, 상기 재기록 단계에서, 상기 현재 폐취된 명령들의 실제 실행시에 인카운터된 실제 브랜치 명령이 상기 지기록 단계에서의 기록이 수행되는 동일한 처리 시간에서 폐취되는 동안은 상기 예측 브랜치 명령이 상기 판정 단계에서 옳은 것으로 판정되지 않았을때도 상기 브랜치 예측 테이블내에 상기 현재 폐취된 명령들에 대한 상기 예측 브랜치 명령을 기록하는 엔트리의 재기록이 금지되는 것을 특징으로 하는 방법.
  35. 제31항에 있어서, 상기 브랜치 에측 테이블내의 각 엔트리는 상기 브랜치 예측 테이블내 각 엔트리의 유효성을 지시하는 유효 비트를 추가로 포함하는 것을 특징으로 하는 방법.
  36. 제35항에 있어서, 상기 브랜치 예측 테이블내 각 엔트리의 상기 유효 비트는 상기 각 엔트리의 상기 예측 브랜치 명령이 상기 예측 브랜치 명령의 실행시에 실제로 받아들여지지 않았을때 상기 각 엔트리를 무효로 지시하는 것을 특징으로 하는 방법.
  37. 제35항에 있어서, 상기 브랜치 예측 테이블 내 각 엔트리의 상기 유효 비트는 상기 각 엔트리의 브랜치 어드레스와 일치하는 어드레스를 가진 명령이 상기 폐취 단게에서 폐취될 명령들을 적재하는 캐쉬 메모리내에 존재하지 않을때 상기 각 엔트리를 무효로 지시하는 것을 특징으로 하는 방법.
  38. 제35항에 있어서, 상기 재기록 단계에서, 상기 현재 폐취된 명령들의 실제 실행시에 인카운터된 실제 브랜치 예측 테이블내에 기록되어 있지 않을때, 상기 엔트리가 무효임을 지시하는 상기 무효 비트를 갖는 엔트리를 위에 기록함으로써 상기 현재 폐취된 명령들에 대한 실제 브랜치 명령을 기록하는 새로운 엔트리가 상기 브랜치 에측 테이블내에 기록되는 것을 특징으로 하는 방법.
  39. 제31항에 있어서, 상기 실제 실행 단계에서, 상기 프로세서는 명령어 그룹을 동시에 실행하고, 상기 폐취단계에서 상기 명령어 그룹은 각 처리 시간에 폐취되며, 상기 브랜치 예측 테이블내 각 엔트리는 상기 브랜치 어드레스에 의해 지시된 명령어 그룹에서 상기 예측 브랜치 명령의 위치를 지시하는 명령 위치를 또한 포함하는 것을 특징으로 하는 방법.
  40. 제39항에 있어서, 상기 폐취 단계에서, 상기 현재 폐취된 명령들의 어드레스와 일치하는 브랜치 어드레스를 갖는 상기 브랜치 예측 테이블내 엔트리에 기록되는 현재 폐취 명령들에 대한 예측 브랜치 명령이 있으며 상기 현재 폐취된 명령들에 대한 예측 브랜치 명령이 브랜치 타겟 어드레스에 의해 지시된 명령들이 상기 현재 폐취된 명령들에 대한 상기 예측 브랜치 명령의 브랜치 예측 테이블내 다른 엔트리에 기록된 다른 예측 브랜치 명령을 포함하지 않는 경우를 제외하고는, 상기 명령이 명령의 어드레스에 따라 순차적으로 폐취되는 것을 특징으로 하는 방법.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019920005633A 1991-04-05 1992-04-04 브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치 KR950012119B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7332991 1991-04-05
JP91-073329 1991-04-05

Publications (2)

Publication Number Publication Date
KR920020314A true KR920020314A (ko) 1992-11-21
KR950012119B1 KR950012119B1 (ko) 1995-10-14

Family

ID=13515022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920005633A KR950012119B1 (ko) 1991-04-05 1992-04-04 브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치

Country Status (3)

Country Link
US (1) US5414822A (ko)
KR (1) KR950012119B1 (ko)
DE (1) DE4211222B4 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100498425B1 (ko) * 1998-02-04 2005-09-08 삼성전자주식회사 분기 예측 장치
KR101493019B1 (ko) * 2008-09-05 2015-02-12 어드밴스드 마이크로 디바이시즈, 인코포레이티드 희소 및 조밀 예측 캐쉬들을 갖는 하이브리드 브랜치 예측 장치

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623614A (en) * 1993-09-17 1997-04-22 Advanced Micro Devices, Inc. Branch prediction cache with multiple entries for returns having multiple callers
US5604909A (en) * 1993-12-15 1997-02-18 Silicon Graphics Computer Systems, Inc. Apparatus for processing instructions in a computing system
ES2138051T3 (es) * 1994-01-03 2000-01-01 Intel Corp Metodo y aparato para la realizacion de un sistema de resolucion de bifurcaciones en cuatro etapas en un procesador informatico.
US5574871A (en) * 1994-01-04 1996-11-12 Intel Corporation Method and apparatus for implementing a set-associative branch target buffer
TW253946B (en) * 1994-02-04 1995-08-11 Ibm Data processor with branch prediction and method of operation
JP3590427B2 (ja) * 1994-08-30 2004-11-17 株式会社ルネサステクノロジ 先行読出機能付命令キャッシュメモリ
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
JP3494736B2 (ja) * 1995-02-27 2004-02-09 株式会社ルネサステクノロジ 分岐先バッファを用いた分岐予測システム
US6151090A (en) * 1995-05-31 2000-11-21 Casio Computer Co., Ltd. LCD using liquid crystal of ferroelectric and/or antiferroelectric phase having pretilt angle of 1 degree or less
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
GB9521977D0 (en) * 1995-10-26 1996-01-03 Sgs Thomson Microelectronics Cache memory
GB9521978D0 (en) * 1995-10-26 1996-01-03 Sgs Thomson Microelectronics Computer instruction supply
US5734881A (en) * 1995-12-15 1998-03-31 Cyrix Corporation Detecting short branches in a prefetch buffer using target location information in a branch target cache
US5742805A (en) * 1996-02-15 1998-04-21 Fujitsu Ltd. Method and apparatus for a single history register based branch predictor in a superscalar microprocessor
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
AU3666697A (en) * 1996-08-20 1998-03-06 Idea Corporation A method for identifying hard-to-predict branches to enhance processor performance
US5758143A (en) * 1996-10-07 1998-05-26 International Business Machines Corporation Method for updating a branch history table in a processor which resolves multiple branches in a single cycle
JPH10133874A (ja) * 1996-11-01 1998-05-22 Mitsubishi Electric Corp スーパスカラプロセッサ用分岐予測機構
US6088793A (en) * 1996-12-30 2000-07-11 Intel Corporation Method and apparatus for branch execution on a multiple-instruction-set-architecture microprocessor
TW357318B (en) * 1997-03-18 1999-05-01 Ind Tech Res Inst Branching forecast and reading device for unspecified command length extra-purity pipeline processor
US6237077B1 (en) * 1997-10-13 2001-05-22 Idea Corporation Instruction template for efficient processing clustered branch instructions
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6240510B1 (en) 1998-08-06 2001-05-29 Intel Corporation System for processing a cluster of instructions where the instructions are issued to the execution units having a priority order according to a template associated with the cluster of instructions
US6304960B1 (en) 1998-08-06 2001-10-16 Intel Corporation Validating prediction for branches in a cluster via comparison of predicted and condition selected tentative target addresses and validation of branch conditions
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6957327B1 (en) * 1998-12-31 2005-10-18 Stmicroelectronics, Inc. Block-based branch target buffer
US6976157B1 (en) * 1999-11-04 2005-12-13 International Business Machines Corporation Circuits, systems and methods for performing branch predictions by selectively accessing bimodal and fetch-based history tables
DE60141807D1 (de) 2000-02-28 2010-05-27 Nxp Bv Datenprozessor mit meherern befehlen umfassende befehlswörtern
CN1265286C (zh) * 2001-06-29 2006-07-19 皇家菲利浦电子有限公司 预测间接分支目标地址的方法、装置和编译器
JP3798998B2 (ja) * 2002-06-28 2006-07-19 富士通株式会社 分岐予測装置および分岐予測方法
US7426631B2 (en) * 2005-02-02 2008-09-16 International Business Machines Corporation Methods and systems for storing branch information in an address table of a processor
EP1990713B1 (en) * 2006-02-28 2013-04-10 Fujitsu Ltd. Branch predicting device for computer
US7827392B2 (en) * 2006-06-05 2010-11-02 Qualcomm Incorporated Sliding-window, block-based branch target address cache
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US7877586B2 (en) * 2008-02-01 2011-01-25 International Business Machines Corporation Branch target address cache selectively applying a delayed hit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5226130A (en) * 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
US5276882A (en) * 1990-07-27 1994-01-04 International Business Machines Corp. Subroutine return through branch history table

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100498425B1 (ko) * 1998-02-04 2005-09-08 삼성전자주식회사 분기 예측 장치
KR101493019B1 (ko) * 2008-09-05 2015-02-12 어드밴스드 마이크로 디바이시즈, 인코포레이티드 희소 및 조밀 예측 캐쉬들을 갖는 하이브리드 브랜치 예측 장치

Also Published As

Publication number Publication date
US5414822A (en) 1995-05-09
KR950012119B1 (ko) 1995-10-14
DE4211222B4 (de) 2009-05-28
DE4211222A1 (de) 1992-10-22

Similar Documents

Publication Publication Date Title
KR920020314A (ko) 브랜치 예측 테이블을 사용하는 브랜치 예측 방법 및 장치
US10956163B2 (en) Processor support for hardware transactional memory
EP0118828B1 (en) Instruction fetch apparatus and method of operating same
US5603004A (en) Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
JP3587591B2 (ja) キャッシュ・ミスを制御する方法およびその計算機システム
US5845103A (en) Computer with dynamic instruction reuse
US5210831A (en) Methods and apparatus for insulating a branch prediction mechanism from data dependent branch table updates that result from variable test operand locations
US9892051B1 (en) Method and apparatus for use of a preload instruction to improve efficiency of cache
US8984264B2 (en) Precise data return handling in speculative processors
WO2019193314A1 (en) An apparatus and method for controlling allocation of data into a cache storage
JP3184552B2 (ja) 並列処理システムにおけるプロセッサのデータキャッシュ同期方法、及び、この方法を実現する並列処理システム
WO2002054230A2 (en) System and method for prefetching data into a cache based on miss distance
US8601240B2 (en) Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution
US5412786A (en) Data pre-fetch control device
US6381691B1 (en) Method and apparatus for reordering memory operations along multiple execution paths in a processor
US6581138B2 (en) Branch-prediction driven instruction prefetch
KR880011674A (ko) 캐쉬 메모리 장치
US20080162907A1 (en) Structure for self prefetching l2 cache mechanism for instruction lines
US10169233B2 (en) Translation lookaside buffer purging with concurrent cache updates
US7664942B1 (en) Recovering a subordinate strand from a branch misprediction using state information from a primary strand
US11379152B2 (en) Epoch-based determination of completion of barrier termination command
US8645670B2 (en) Specialized store queue and buffer design for silent store implementation
CN114450668A (zh) 电路和方法
JP2534662B2 (ja) 命令キヤツシユ制御方法
JP2542565B2 (ja) 分岐予測制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110920

Year of fee payment: 17

EXPY Expiration of term