TW526451B

Apparatus and method for densely packing a branch instruction predicted by a branch target address cache and associated target instructions into a byte-wide instruction buffer

Abstract

A branch control apparatus in a microprocessor. Aregister receives a first cache line containing a branchinstruction from an instruction cache in response to afetch address. The fetch address hits in a BTAC thatprovides a target address of the branch instruction. TheBTAC also provides an offset of the instruction followingthe branch instruction. The instructions following thebranch instruction are invalidated based on the offset.Muxing logic packs only the valid instructions into a byte-wide instruction buffer that is directly coupled toinstruction format logic. The instruction cache provides asecond cache line containing the target instructions to theregister in response to the target address. Theinstructions preceding the target instructions areinvalidated based on the lower bits of the target address.The muxing logic packs only the valid target instructionsinto the instruction buffer immediately adjacent to thebranch instruction bytes.

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

46 claims: 13 independent, 33 dependent

  1. 1
    經濟部智慧財產局員工消費合作社印製 526451 A8 B8 B414twf.doc/006 Qg 六、申請專利範圍 1. 一種位於微處理器中之分支控制裝置,包括: 一指令快取區,用以輸出藉由一擷取位址所選擇之指 令位元組群中之一線; 一指令緩衝區,耦接該指令快取區且用以緩衝指令位 元組群中之該線; 一分支目標位址快取區(BTAC),耦接該擷取位址且 用以提供與位於指令位元組中之該線中之一分支指令之一 位置相關之一偏移資訊;以及 一選擇邏輯,耦接該分支目標位址快取區且用以根據 該偏移資訊使得一部份指令位元組不被提供至該指令緩衝 區。 2. 如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該偏移資訊明確說明緊接著指令位元組 中之該線中之該分支指令之一指令之位置。 3. 如申請專利範圍第2項所述之位於微處理器中之分 支控制裝置,其中不被提供至該指令緩衝區之該部份指令 位元組,包括在該偏移資訊被特定時,緊接於指令位元組 群中之該線之分支指令後的指令位元組群。 4. 如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該選擇邏輯包括: 一暫存器,耦接於該指令快取區與該指令緩衝區間且 用以儲存指令位元組群中之該線。 5. 如申請專利範圍第4項所述之位於微處理器中之分 支控制裝置,其中該選擇邏輯更包括: -----------裝--------訂-----— I — (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 526451 A8 B8 C8 8414twf.doc/006 D8 六、申請專利範圍 複數個有效位元,耦接於該暫存器,其中該些有效位 元中之每一個爲與該暫存器中之指令位元組群中之一個相 關連。 6. 如申請專利範圍第5項所述之位於微處理器中之分 支控制裝置,其中該選擇邏輯根據由該分支目標位址快取 區所接收之該偏移資訊植入該些有效位元。 7. 如申請專利範圍第6項所述之位於微處理器中之分 支控制裝置,其中該選擇邏輯使得該暫存器中之指令位元 組群中之每一個具有一對應有效位元以指示該暫存器中之 指令位元組群中之一個爲無效而不被提供至該指令緩衝 區。 8. 如申請專利範圍第7項所述之位於微處理器中之分 支控制裝置,其中該分支目標位址快取區提供一命中信號 給該選擇邏輯以指示該擷取位址是否命中於該分支目標位 址快取區。 9. 如申請專利範圍第8項所述之位於微處理器中之分 支控制裝置,其中如果該命中信號指示該擷取位址命中於 該分支目標位址快取區時,該選擇邏輯根據由該分支目標 位址快取區所接收之該偏移資訊植入該些有效位元。 10. 如申請專利範圍第5項所述之位於微處理器中之分 支控制裝置,其中該選擇邏輯包括: 多工邏輯,耦接於該指令快取區與指令緩衝區之間’ 且用以藉由該些有效位元中之一個指示相關連之該暫存器 中之指令位元組群中之一個爲有效以被提供至該指令緩衝 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------1 I I I I ^ in —--I — — — — — — (請先閱讀背面之注意事項再填寫本頁) 526451 A8 B8 C8 D8 8414twf.doc/006 六、申請專利範圍 區。 Π.如申請專利範圍第10項所述之位於微處理器中之 分支控制裝置,其中該多工邏輯包括一組多工器以捨棄被 相關連之該些有效位元指示爲無效之指令位元組群。 12. 如申請專利範圍第10項所述之位於微處理器中之 分支控制裝置,其中該多工邏輯包括一組多工器將被相關 連之該有效位元指示爲有效之指令位元組排整於該指令緩 衝區中之一第一空位置。 13. 如申請專利範圍第10項所述之位於微處理器中之 分支控制裝置,其中該多工邏輯包括一組多工器以藉由移 出該指令緩衝區中之一些位元組之方式,將被相關連之該 有效位元指示爲有效之指令位元組移位被相關連之。 14. 如申請專利範圍第13項所述之位於微處理器中之 分支控制裝置,其中該選擇邏輯被配置去接收由一指令格 式化邏輯而來之一移位計數,以指示該些指令位元組由該 指令緩衝區被移出之一數量。 15. 如申請專利範圍第14項所述之位於微處理器中之 分支控制裝置,其中該多工邏輯藉由該移位計數將被相關 連之該有效位元指示爲有效之指令位元組移位。 16. 如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該指令緩衝區包括一移位暫存器。 17. 如申請專利範圍第16項所述之位於微處理器中之 分支控制裝置,其中該移位暫存器爲一位元組寬度。 18. 如申請專利範圍第1項所述之位於微處理器中之分 -----------裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐〉 經濟部智慧財產局員工消費合作社印製 526451 A8 B8 pQ 8414twf. doc/ 006 D8 六、申請專利範圍 支控制裝置,其中該指令緩衝區直接耦接用以格式化指令 位元組群之一指令格式化邏輯。 19. 如申請專利範圍第18項所述之位於微處理器中之 分支控制裝置,其中該指令緩衝區中之一底部位元組直接 被提供至被配置爲用以格式化之一指令之第一位元組之一 部份該指令格式化邏輯。 20. 如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該分支指令包括一 x86分支指令。 21. 如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該分支目標位址快取區被配置爲回應於 該擷取位址以提供該分支指令之一目摞位址。 22·如申請專利範圍第1項所述之位於微處理器中之分 支控制裝置,其中該目標位址作爲一接下來擷取位址並選 擇性地被提供至該指令快取區,以選擇指令位元組群中之 一第二線,且該第二線包含該指令快取區中之該分支指令 之一目標指令。 23·如申請專利範圍第22項之位於微處理器中之分支 控制裝置,其中該選擇邏輯使得該目標指令被提供至該指 令緩衝區中,且與該指令緩衝區中之該分支指令相鄰。 24·如申請專利範圍第23項之位於微處理器中之分支 控制裝置,其中該選擇邏輯使得在該第二線中之該目標指 令之前之指令位元組群被捨棄且不被提供至該指令緩衝 區° 25·如申請專利範圍第1項之位於微處理器中之分支控 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----------^^裝--------訂-丨丨II丨丨丨-*^1^ (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 526451 A8 B8 Q4l4twf.doc/006 t、申請專利範圍 制裝置,其中該指令快取區儲存由該微處理器所執行之可 變長度之指令群。 26. —種位於微處理器中之預先解碼階層,包括: 一指令緩衝區,用以緩衝指令資料以供應給一指令格 式化邏輯; 一選擇邏輯,耦接該指令緩衝區且用以接收藉由來自 於一指令快取區中之一擷取位址所選擇之一第一指令資 料,其中該第一指令資料包括一分支指令;以及 一分支目摞位址快取區(BTAC),耦接該選擇邏輯且用 以提供該分支指令之一目標位址作爲一下一個擷取位址給 該指令快取區; 其中該選擇邏輯被配置爲接收藉由來自於該指令快取 區之該目標位址所選擇之一第二指令資料,且該第二指令 資料包括該分支指令之一目標指令;以及 其中該選擇邏輯被配置爲將該分支指令以及該目標指 令以相互緊鄰之方式寫入該指令緩衝區中。 27. 如申請專利範圍第26項所述之位於微處理器中之 預先解碼階層,其中該分支目摞位址快取區被配置爲回應 於該擷取位址以提供該目標位址。 28·如申請專利範圍第26項所述之位於微處理器中之 預先解碼階層,其中該分支目摞位址快取區被配置爲提供 緊隨於該分支指令之該第一指令資料中之一位置之一指示 給該選擇邏輯。 29·如申請專利範圍第28項所述之位於微處理器中之 39 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----------裝--------訂---------AW (請先閱讀背面之注意事項再填寫本頁) 526451 A8 B8 C8 D8 8 4 14 twf . do c/Ο Ο 6 六、申請專利範圍 預先解碼階層,其中該選擇邏輯根據該位置之該指示將該 分支指令以及該目標指令以相互緊鄰之方式寫入該指令緩 衝區中。 30. 如申請專利範圍第29項所述之位於微處理器中之 預先解碼階層,其中該選擇邏輯被配置爲接收該目標位 址。 31. 如申請專利範圍第30項所述之位於微處理器中之 預先解碼階層,其中該選擇邏輯根據該目標位址以及該位 置之該指示將該分支指令以及該目標指令以相互緊鄰之方 式寫入該指令緩衝區中。 32. 如申請專利範圍第28項所述之位於微處理器中之 預先解碼階層,其中該分支目標位址快取區被配置爲回應 該擷取位址以提供該指示。 33. 如申請專利範圍第26項所述之位於微處理器中之 預先解碼階層,其中該指令緩衝區包括一移位暫存器。 34. 如申請專利範圍第33項所述之位於微處理器中之 預先解碼階層,其中該移位暫存器爲一位元組寬度。 35. 如申請專利範圍第33項所述之位於微處理器中之 預先解碼階層,其中該選擇邏輯將在該指令緩衝區中之一 最後有效資料位元組之該分支指令以及該目標指令以相互 緊鄰之方式寫入該指令緩衝區中。 36·如申請專利範圍第33項所述之位於微處理器中之 預先解碼階層,其中該選擇邏輯將該分支指令以及該目標 指令寫入該指令緩衝區中之一下一個空位置。 40 -----------·裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本’、'氏張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐 526451 A8 B8 C8 D8 84l4twf.doc/006 六、申請專利範圍 37.如申請專利範圍第33項所述之位於微處理器中之 預先解碼階層,其中該指令緩衝區直接耦接於該指令格式 化邏輯。 3 8. —^種提供分支指令與分支指令之目標指令至指令緩 衝區之方法,其方法包括·· 接收來自於一指令快取區之包括該分支指令之一第一 快取線; 緊隨於該分支指令後,接收來自於一分支目標位址快 取區(BTAC)之該第一^快取線中之一^指令之一^偏移資, 快取線,且該第二快取線爲藉由該分支目標位址快取區所 提供之該分支指令之一目標位址所選擇; 捨棄在該第一快取線中之該分支指令之後之指令群; 捨棄在該第二快取線中之該目標指令之前之指令群; 以及 維持在每個捨棄步驟後提供該第一以及該第二快取線 之一部分給該指令緩衝區。 39. 如申請專利範圍第38項所述之提供分支指令與分 支指令之目標指令至指令緩衝區之方法,其中根據該偏移 資訊捨棄在該第一快取線中之該分支指令之後之指令群。 40. 如申請專利範圍第38項所述之提供分支指令與分 支指令之目摞指令至指令緩衝區之方法,其中根據該目標 位址捨棄在該第二快取線中之該目標指令之前之指令群。 41. 如申請專利範圍第38項所述之提供分支指令與分 -----------裝--------訂--------- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員Η消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐〉 526451 A8 B8 C8 D8 B414twf·doc/006 六、申請專利範圍 支指令之目標指令至指令緩衝區之方法,其方法更包括: 在接收來自於該指令快取區之該第一快取線之前,提 供一擷取位址給該指令快取區; 其中該指令快取區回應該擷取位址以提供該第一快取 線。 42. 如申請專利範圍第41項所述之提供分支指令與分 支指令之目標指令至指令緩衝區之方法,更包括: 在接收來自於該分支目標位址快取區之該偏移資訊之 前,提供該擷取位址給該分支目標位址快取區; 其中該分支目標位址快取區回應該擷取位址以提供該 偏移資訊。 43. 如申請專利範圍第38項所述之提供分支指令與分 支指令之目標指令至指令緩衝區之方法,其方法更包括: 在捨棄位於該第一快取線中之該分支指令之後之指令群之 前,儲存該第一快取線至一暫存器中。 44. 如申請專利範圍第43項所述之提供分支指令與分 支指令之目摞指令至指令緩衝區之方法,其中捨棄在該第 一快取線中之分支指令後面之指令群,包括將在該暫存器 中之分支指令之後之指令群標記爲無效且不提供在該暫存 器中被標記爲無效之指令群給該指令緩衝區。 45. 如申請專利範圍第38項所述之提供分支指令與分 支指令之目標指令至指令緩衝區之方法’其方法更包括: 在捨棄位於該第二快取線中之該目標指令之前之指令 群之前,儲存該第二快取線至一暫存器中。 -------------裝·-------訂·--I I (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 526451 A8 B8 8414twf.doc/006 六、申請專利範圍 46.如申請專利範圍第45項所述之提供分支指令與分 支指令之目標指令至指令緩衝區之方法,其中捨棄在該第 二快取線中之該目標指令之前之指令群,包括將在該暫存 器中之該目標指令之前指令群標記爲無效且不提供在該暫 存區中被標記爲無效之指令群給該指令緩衝區。 (請先閱讀背面之注意事項再填寫本頁) .裂--------訂---I 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)