분기 대상 예측 변수
Branch target predictor컴퓨터 아키텍처에서 분기 타깃 프레딕터는 프로세서의 실행 유닛에 의해 분기 명령의 타깃이 계산되기 전에 취해진 조건부 브랜치 또는 무조건 브랜치 명령의 타깃을 예측하는 프로세서의 부분이다.
분기 대상 예측은 조건부 분기(즉, 이진수)를 취할 것인지 여부를 추측하려는 분기 예측과 같지 않습니다.
병렬 프로세서 설계에서는 명령 캐시 레이텐시가 길어지고 페치 폭이 넓어짐에 따라 분기 타깃 추출이 병목현상이 됩니다.반복은 다음과 같습니다.
- 명령 캐시가 명령 블록을 가져옵니다.
- 블록 내 지시사항을 스캔하여 브랜치를 식별합니다.
- 첫 번째로 예상되는 취득 브랜치를 특정한다.
- 해당 분기의 대상이 계산됨
- 분기 대상에서 명령 가져오기가 다시 시작됩니다.
이 반복에 2주기가 걸리는 시스템에서는 분기별로 예측될 때마다 전체 가져오기 사이클이 1회 손실됩니다.예측 브런치가 10개 정도의 명령마다 발생하므로 이로 인해 가져오기 대역폭이 대폭 저하될 수 있습니다.명령 캐시 지연 시간이 긴 일부 기계에서는 손실이 더 클 수 있습니다.손실을 개선하기 위해 일부 기계에서는 분기 대상 예측을 구현합니다. 지점 주소가 지정되면 해당 지점의 대상을 예측합니다.아이디어의 개선은 명령의 이전 순차 실행의 시작 주소가 주어진 순차 실행의 시작을 예측한다.
이 프레딕터는 위의 반복을 다음과 같이 줄입니다.
- 실행 중 첫 번째 명령의 주소를 해시합니다.
- 해당 명령 실행에서 분기 대상 주소에 대한 예측을 가져옵니다.
- 취득된 예상 지점에 해당하는 주소를 선택합니다.
프레딕터 RAM은 명령 캐시 크기의 5~10%가 될 수 있기 때문에 명령 캐시 가져오기보다 페치가 훨씬 더 빨리 이루어지므로 이 반복이 훨씬 더 빠릅니다.속도가 충분하지 않은 경우 대상 지점의 대상 주소를 예측하여 병렬화할 수 있습니다.
「 」를 참조해 주세요.
추가 정보
- Driesen; Hölzle (1992), Accurate Indirect Branch Prediction
- Ertl; Gregg (2001), The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
외부 링크
- "Branch Target Buffers". (EE461)
- Fog, Agner. "The microarchitecture of Intel, AMD and VIA CPUs" (PDF). Retrieved 2017-08-09.