推 imadog: 哦哦感謝回文解釋!!謝謝~~ 01/16 15:05
※ 引述《imadog (凹嗚)》之銘言:
突然想到一個問題
請問BHT跟BTB 是位於CPU裡面嗎?
還是是memory的一部分啊~
當然是放在 CPU 裡呀,先想清楚 BHT (Branch History Table)
跟 BTB (Branch Target Buffer) 是拿來幹嘛的吧?
如果你今天放在 Memory 裡,你預測 Branch 的 Target Address
還要過數百個 Cycles 才能拿到,那這種最佳化根本沒有用啊!
-
一個很容易搞混的觀念是,很多人誤以為 BTB 一定要跟 BHT 搭配在一起,
但不是的。
BHT 主要是拿來記錄 Branch 決定的 "結果",
(如果是 jump 就會是 always jump)
而 BTB 是拿來給 Instruction Fetch Unit 參考下一道指令要抓哪裡。
兩個通常都是用 PC Address 當作 index,也都是拿來盡量降低 Branch 造成的 Overhead。
--
◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
你這個茄子 ◤◥◤◥ 你有得茄嗎? ◢█ ◆ █◣ 【茄~】
◣ ◤ ˋ ˊ ◥ 你有得茄嗎?◢ ◤ ◥◥◤◤ ◥ ◤
◤ ㄧ ◣ ◤ (因為很重要 ▉ ⊙ ⊙ ▏
… ▍ 所以說兩次)▉ △ ◢ ▏
◣ ◤◤ ◣ ◤◢ ψJeans1020 ◢ ◣ ▁▂█▂▁◢茄你老木! ◥ ▁▂▁
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.16.173
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1547618056.A.545.html