[發(fā)明專利]在分支預(yù)測(cè)失敗時(shí)使用ROB恢復(fù)RAT內(nèi)容的系統(tǒng)和方法有效
| 申請(qǐng)?zhí)枺?/td> | 201010607215.1 | 申請(qǐng)日: | 2010-12-27 |
| 公開(公告)號(hào): | CN102567137A | 公開(公告)日: | 2012-07-11 |
| 發(fā)明(設(shè)計(jì))人: | 楊思博 | 申請(qǐng)(專利權(quán))人: | 北京國(guó)睿中數(shù)科技股份有限公司 |
| 主分類號(hào): | G06F11/14 | 分類號(hào): | G06F11/14 |
| 代理公司: | 中國(guó)專利代理(香港)有限公司 72001 | 代理人: | 王小衡;盧江 |
| 地址: | 100088 北京市海*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 分支 預(yù)測(cè) 失敗 使用 rob 恢復(fù) rat 內(nèi)容 系統(tǒng) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及一種在分支預(yù)測(cè)失敗時(shí)使用重排序緩沖器(ReOrder?Buffer,?簡(jiǎn)稱為ROB)恢復(fù)寄存器別名表(Register?Alias?Table,簡(jiǎn)稱為RAT)內(nèi)容的系統(tǒng)。
背景技術(shù)
現(xiàn)代的微處理器體系結(jié)構(gòu),大多采用了超標(biāo)量(Super?Scale)技術(shù),通過在一個(gè)周期同時(shí)執(zhí)行多條指令的方法來提高程序執(zhí)行性能。要想在一個(gè)周期內(nèi)能執(zhí)行多條指令,就需要解決指令間的相關(guān)性問題。指令的相關(guān)性分為控制相關(guān)和數(shù)據(jù)相關(guān)。其中數(shù)據(jù)相關(guān)又分為寫后讀(RAW)相關(guān)(又稱真數(shù)據(jù)相關(guān)),讀后寫(WAR)相關(guān)(又稱偽相關(guān))和寫后寫(WAW)相關(guān)(又稱結(jié)構(gòu)相關(guān))三種。寄存器重命名(Register?Renaming)技術(shù)通過將同一個(gè)邏輯寄存器映射到多個(gè)物理寄存器的方式,解決了程序運(yùn)行中的讀后寫(WAR)和寫寫(WAW)數(shù)據(jù)相關(guān),大大提高了指令的并行性。
一般來說,為邏輯寄存器分配用于重命名的物理寄存器是通過寄存器別名表RAT(Register?Alias?Table)來實(shí)現(xiàn)。RAT中保留了當(dāng)前時(shí)刻邏輯寄存器和物理寄存器的最新映射關(guān)系,RAT用邏輯寄存器地址來尋址,它存儲(chǔ)的數(shù)據(jù)(即,RAT表項(xiàng)的內(nèi)容)是邏輯寄存器對(duì)應(yīng)的物理寄存器地址。就是說,在微處理器運(yùn)行的任意時(shí)刻,都有一個(gè)邏輯寄存器到物理寄存器的映射關(guān)系,而RAT就是保存這個(gè)映射關(guān)系的模塊。通過使用邏輯寄存器地址查找RAT就可以知道當(dāng)前是哪個(gè)物理寄存器代表這個(gè)邏輯寄存器,使用這個(gè)邏輯寄存器為源操作數(shù)的指令就要從這個(gè)物理寄存器中讀取數(shù)據(jù);而使用這個(gè)邏輯寄存器為目標(biāo)操作數(shù)的指令會(huì)獲得一個(gè)空閑的物理寄存器用來保存這個(gè)目標(biāo)操作數(shù),同時(shí)要修改這個(gè)邏輯寄存器在RAT中的對(duì)應(yīng)表項(xiàng),將它對(duì)應(yīng)的物理寄存器地址改為該指令獲得的空閑物理寄存器地址,在該指令之后的指令如果要讀取這個(gè)邏輯寄存器,就會(huì)從修改后的物理寄存器地址中讀取。
為了保證微處理器可以進(jìn)行精確的異常返回,采用亂序執(zhí)行技術(shù)的微處理器使用重排序緩沖器ROB(ReOrder?Buffer)按照指令執(zhí)行的順序保存正在執(zhí)行的指令的信息,并對(duì)執(zhí)行完成的指令按照指令執(zhí)行的順序進(jìn)行提交。所謂的提交是表示確認(rèn)指令和該指令之前的指令都已經(jīng)執(zhí)行完成,亂序執(zhí)行的微處理器與順序執(zhí)行的編程模型的執(zhí)行結(jié)果在提交階段達(dá)成了一致。重排序緩沖器ROB是用于亂序執(zhí)行后恢復(fù)指令原來順序的一種硬件結(jié)構(gòu),以達(dá)到指令結(jié)果順序提交的目的。可以把重排序緩沖器看作是一個(gè)包含頭指針和尾指針的堆棧FIFO。每條指令進(jìn)入流水線的時(shí)候,按照程序的最先順序都在重排序緩沖器中依次占據(jù)了一列條目,等指令執(zhí)行完畢,按照先入先出的順序依次提交指令。當(dāng)發(fā)生中斷或者異常行為時(shí),也能恢復(fù)原來的執(zhí)行順序。
寄存器重命名有兩種主要的實(shí)現(xiàn)方式,一種是把物理寄存器分為體系結(jié)構(gòu)寄存器和重命名寄存器兩種。其中體系結(jié)構(gòu)寄存器與邏輯寄存器是一一對(duì)應(yīng)的,表示的是指令提交后邏輯寄存器的狀態(tài);重命名寄存器與邏輯寄存器可以是多對(duì)一的映射關(guān)系,在指令提交前臨時(shí)保存指令的執(zhí)行結(jié)果。指令的目標(biāo)邏輯寄存器在寄存器重命名時(shí)被分配一個(gè)重命名寄存器,而執(zhí)行完成后目標(biāo)操作數(shù)會(huì)被從重命名寄存器中寫回到體系結(jié)構(gòu)寄存器中,而重命名寄存器會(huì)被釋放。在這種方式下,每個(gè)邏輯寄存器和它所對(duì)應(yīng)的RAT表項(xiàng)雖然可以對(duì)應(yīng)多個(gè)重命名寄存器,但是只有一個(gè)體系結(jié)構(gòu)寄存器與它對(duì)應(yīng),當(dāng)微處理器復(fù)位時(shí),各個(gè)RAT表項(xiàng)的內(nèi)容就被復(fù)位成與其對(duì)應(yīng)的體系結(jié)構(gòu)寄存器的地址。另一種實(shí)現(xiàn)方式是不將物理寄存器固定地劃分為體系結(jié)構(gòu)寄存器和重命名寄存器,而在RAT之外再加入一個(gè)體系結(jié)構(gòu)寄存器映射表保存物理寄存器與體系結(jié)構(gòu)寄存器的映射關(guān)系。指令在寄存器重命名時(shí)被分配一個(gè)空閑的物理寄存器用來保存目標(biāo)操作數(shù),而在提交時(shí)這個(gè)物理寄存器地址會(huì)被寫入體系結(jié)構(gòu)寄存器映射表而被確認(rèn)為體系結(jié)構(gòu)寄存器。被認(rèn)為是體系結(jié)構(gòu)寄存器的物理寄存器不能用于寄存器重命名直到它被別的物理寄存器替換出體系結(jié)構(gòu)寄存器映射表,此時(shí)該物理寄存器又成了一個(gè)空閑的重命名寄存器。在這種方式下,每個(gè)邏輯寄存器在微處理器運(yùn)行時(shí)可以和任何一個(gè)物理寄存器建立對(duì)應(yīng)關(guān)系,但是每個(gè)邏輯寄存器還是有一個(gè)對(duì)應(yīng)的物理寄存器作為它的默認(rèn)體系結(jié)構(gòu)寄存器,當(dāng)微處理器復(fù)位時(shí),各個(gè)RAT表項(xiàng)的內(nèi)容就被復(fù)位成與邏輯寄存器相對(duì)應(yīng)的默認(rèn)體系結(jié)構(gòu)寄存器的地址。
這兩種實(shí)現(xiàn)方式下文還會(huì)提到,為了表述簡(jiǎn)化,把上述第一種方式稱為重命名實(shí)現(xiàn)方式A,而把上述第2種方式稱為重命名實(shí)現(xiàn)方式B。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京國(guó)睿中數(shù)科技股份有限公司,未經(jīng)北京國(guó)睿中數(shù)科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010607215.1/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法、程序以及記錄介質(zhì)
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 基于時(shí)間序列預(yù)測(cè)模型適用性量化的預(yù)測(cè)模型選擇方法
- 圖像編碼裝置、圖像編碼方法、圖像譯碼裝置、圖像譯碼方法
- 分類預(yù)測(cè)方法及裝置、預(yù)測(cè)模型訓(xùn)練方法及裝置
- 幀內(nèi)預(yù)測(cè)的方法及裝置
- 圖像預(yù)測(cè)方法及裝置、電子設(shè)備和存儲(chǔ)介質(zhì)
- 文本預(yù)測(cè)方法、裝置以及電子設(shè)備
- 模型融合方法、預(yù)測(cè)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種失敗原因數(shù)據(jù)的統(tǒng)計(jì)方法及系統(tǒng)
- 禁止針對(duì)輔小區(qū)組失敗的失敗指示
- 應(yīng)用程序的安裝方法及裝置
- 失敗位計(jì)數(shù)器和具有其的半導(dǎo)體存儲(chǔ)器裝置
- 轉(zhuǎn)角軌跡失敗的判斷方法、電子設(shè)備和計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 在醫(yī)學(xué)云基礎(chǔ)架構(gòu)中提供失敗參數(shù)
- 一種波束失敗恢復(fù)方法、終端及基站
- 禁止針對(duì)輔小區(qū)組失敗的失敗指示
- 打線失敗檢查系統(tǒng)、打線失敗檢測(cè)裝置以及打線失敗檢測(cè)方法
- 結(jié)果分析方法和裝置、電子設(shè)備及存儲(chǔ)介質(zhì)





