Branch Target Buffer

Branch Target Buffer 는 수행이 된(Taken) Branch 에 대해 instruction address + predicted PC 값을 가지고 있는 일종의 Cache 이다.
즉, instruction address (PC) 값을 이용하여 BTB Entry 검색한 결과로 predicted PC 값을 얻게 된다.
processor 는 Pipeline 의 Fetch 단계에서 Branch Target Buffer 를 먼저 검색한다.
BTB 는 coprocessor 에 의해 일반적인 cache 처럼 관리된다.
branch 가 발생하면 processor 는 아래의 3 가지의 작업이 필요하여 pipeline 의 flow 가 깨진다.
1. branch 로 튈지 안튈지를 결정
2. branch 의 target 주소를 계산
3. target 주소로부터 다음 수행할 명령어를 Fetch
이러한 pipe line 의 flow 를 최대한 깨지 않으면서 이전에 선택 수행된 PC 값을 가져오는 것이 목적이다.
다음은 Branch Target Buffer 를 이용하는 Flow 를 나타낸다.
일반적인 cache 의 동작방식과 유사함을 알 수 있다.
BTB Flow.png
추가 참고 자료

You may also like...

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x