예측 실패 복구에 대한 레이턴시를 줄이기 위한 이차적 분기 예측 저장

분기 예측기는 제1 분기 인스트럭션들의 제1 결과를 예측한다. 페치 로직은 제1 결과에 의해 표시된 제1 경로를 따라 추론적 실행을 위한 인스트럭션들을 페치한다. 제1 예측 결과가 취득되는 것에 응답하여 제1 블록의 나머지를 나타내는 정보가 저장된다. 제1 분기 인스트럭션이 수행되지 않는 것에 응답하여, 분기 예측기는 나머지 블록에 기초하여 재시작된다. 일부 경우에, 제1 블록으로부터의 추론적 경로들을 따라 제2 블록들에 대응하는 엔트리들은 제1 블록의 주소를 분기 예측 구조에 대한 인덱스로 사용하여 액세스된다. 제2 블록들에서 분...

Full description

Saved in:
Bibliographic Details
Main Authors KALAISELVAN SUDHERSSEN, VENKATACHAR ASHOK T, WILLIAMS DOUGLAS, EVERS MARIUS
Format Patent
LanguageKorean
Published 17.02.2021
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:분기 예측기는 제1 분기 인스트럭션들의 제1 결과를 예측한다. 페치 로직은 제1 결과에 의해 표시된 제1 경로를 따라 추론적 실행을 위한 인스트럭션들을 페치한다. 제1 예측 결과가 취득되는 것에 응답하여 제1 블록의 나머지를 나타내는 정보가 저장된다. 제1 분기 인스트럭션이 수행되지 않는 것에 응답하여, 분기 예측기는 나머지 블록에 기초하여 재시작된다. 일부 경우에, 제1 블록으로부터의 추론적 경로들을 따라 제2 블록들에 대응하는 엔트리들은 제1 블록의 주소를 분기 예측 구조에 대한 인덱스로 사용하여 액세스된다. 제2 블록들에서 분기 명령들의 결과들은 분기 조건부 로직의 해당 인스턴스 세트를 사용하여 동시에 예측되며, 예측 결과들은 나머지 블록과 조합하여 사용되어 예측 실패에 대한 응답으로 분기 예측기를 재시작한다. A branch predictor predicts a first outcome of a first branch in a first block of instructions. Fetch logic fetches instructions for speculative execution along a first path indicated by the first outcome. Information representing a remainder of the first block is stored in response to the first predicted outcome being taken. In response to the first branch instruction being not taken, the branch predictor is restarted based on the remainder block. In some cases, entries corresponding to second blocks along speculative paths from the first block are accessed using an address of the first block as an index into a branch prediction structure. Outcomes of branch instructions in the second blocks are concurrently predicted using a corresponding set of instances of branch conditional logic and the predicted outcomes are used in combination with the remainder block to restart the branch predictor in response to mispredictions.
Bibliography:Application Number: KR20217000083