国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法

      文檔序號(hào):6572398閱讀:270來源:國知局
      專利名稱:一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種采用多映射表架構(gòu)的寄存器文件,特別涉及一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法。
      背景技術(shù)
      目前,處理器流水線設(shè)計(jì)的最終性能目標(biāo)是得到最大的指令吞吐率,處理器的處理過程也可以看作三種指令或者數(shù)據(jù)的流動(dòng)過程,即指令流、寄存器數(shù)據(jù)流和存儲(chǔ)器數(shù)據(jù)流。處理器的總的性能目標(biāo)是使這三條流通路的容量最大。寄存器文件是體現(xiàn)寄存器數(shù)據(jù)流技術(shù)在最重要的載體,因此在任何處理器中,寄存器文件都是一個(gè)至關(guān)重要的部件,它的結(jié)構(gòu)和性能直接影響到處理器的總體性能。
      特別是在目前的超標(biāo)量處理器中,為了解決假數(shù)據(jù)相關(guān)引起的流水線停頓,基本上都采用了寄存器的重命名技術(shù),重命名技術(shù)實(shí)現(xiàn)要靠寄存器文件來具體實(shí)現(xiàn)。
      寄存器重命名是指為同一體系結(jié)構(gòu)寄存器中的多個(gè)定義動(dòng)態(tài)分配不同的名字。通過寄存器重命名可以消除反相關(guān)和輸出相關(guān),使得流水線減少停頓。寄存器重命名需要硬件的支持并可以執(zhí)行時(shí)撤銷寄存器重用,恢復(fù)當(dāng)前指令的值與寄存器之間的一一對應(yīng)關(guān)系。
      實(shí)現(xiàn)寄存器重命名技術(shù)的一般方法是在體系結(jié)構(gòu)寄存器文件(ARF)之外配置一個(gè)獨(dú)立的重命名寄存器文件(RRF)。RRF可以通過直接復(fù)制ARF加以實(shí)現(xiàn),RRF指示ARF的一個(gè)副本,一個(gè)寄存器文件可以重命名一次,但是這種實(shí)現(xiàn)方法RRF的使用效率不高,同時(shí)硬件的花費(fèi)大。
      還有一種方法是通過將RRF和再定序緩沖結(jié)合實(shí)現(xiàn),RRF作為再定序緩沖的一部分實(shí)現(xiàn),再定序緩沖的每條記錄相都包含一個(gè)域作為重命名寄存器,由于一些超標(biāo)量處理器一條指令修改的寄存器會(huì)較多,因此這種結(jié)構(gòu)實(shí)現(xiàn)也十分的浪費(fèi)。
      上述兩種解決方案在對實(shí)際硬件的要求比較高,不僅造成資源浪費(fèi),而且在效率與效果上也存在一定的局限。所以,目前還沒有相關(guān)的技術(shù)方案能解決上述技術(shù)問題。

      發(fā)明內(nèi)容
      本發(fā)明的目的是提供一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法。該方法提出了一種新型的寄存器文件結(jié)構(gòu),可以用較少的資源實(shí)現(xiàn)寄存器的重命名,解決假數(shù)據(jù)相關(guān)。上述方案中所涉及到的寄存器文件包含4個(gè)映射表和一個(gè)物理寄存器陣列,利用4個(gè)映射表合理、高效的實(shí)現(xiàn)寄存器的修改、讀取和恢復(fù)操作。這種靈活、方便、高效的寄存器文件結(jié)構(gòu)策略不僅可以用在超標(biāo)量處理器中也可以用在超流水處理器中。
      上述技術(shù)方案具體內(nèi)容如下本發(fā)明所述的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述方法中的寄存器文件包含空閑表、未來表、提交表和當(dāng)前表4個(gè)映射表和一個(gè)物理寄存器陣列;其中,所述空閑表分別與未來表和當(dāng)前表通信聯(lián)接;所述未來表分別與提交表、當(dāng)前表、空閑表以及寄存器陣列通信聯(lián)接;所述提交表分別與當(dāng)前表、未來表以及寄存器陣列通信聯(lián)接;所述當(dāng)前表非別與提交表、未來表以及空閑表通信聯(lián)接;所述寄存器陣列分別與提交表和未來表通信聯(lián)接。
      所述空閑表記錄了當(dāng)前指令之前空閑的物理寄存器的數(shù)目和空閑的物理寄存器的地址索引(虛擬號(hào));每個(gè)物理寄存器通過在空閑表中獨(dú)立的1位標(biāo)記來判斷是否已經(jīng)被使用;當(dāng)流水線申請修改時(shí),空閑表從標(biāo)記為空閑的寄存器中選出需要的寄存器,如果數(shù)目不夠時(shí),則給出一個(gè)空閑表空信號(hào)迫使流水線不再繼續(xù)發(fā)射指令,等待流水線中已發(fā)射指令提交,直至等到空閑寄存器數(shù)目滿足當(dāng)前指令需求;如果數(shù)目允許,則給出相應(yīng)的虛擬號(hào)并將該寄存器標(biāo)記為忙,并使得空閑物理寄存器的數(shù)目也相應(yīng)減少。
      所述未來表記錄了體系結(jié)構(gòu)寄存器到物理寄存器的映射關(guān)系,它記錄了最后一條修改指令后每個(gè)體系結(jié)構(gòu)寄存器對應(yīng)的物理寄存器的虛擬號(hào);而后續(xù)指令都根據(jù)這個(gè)虛擬號(hào)去讀取數(shù)據(jù);當(dāng)發(fā)生寄存器修改時(shí),未來表將需修改的寄存器取得的虛擬號(hào)寫入未來表;當(dāng)發(fā)生恢復(fù)時(shí),將當(dāng)前表中體系結(jié)構(gòu)寄存器對應(yīng)的虛擬號(hào)復(fù)制到未來表中對應(yīng)位置。
      所述提交表記錄了對應(yīng)每條已經(jīng)發(fā)射但是還沒提交的指令應(yīng)該提交的寄存器和其申請的虛擬號(hào);如果提交表中這條指令對應(yīng)的所有物理寄存器內(nèi)數(shù)據(jù)都準(zhǔn)備就緒,那么就表明該條指令已經(jīng)完成指令的所有操作,允許提交;所述提交表還能反映還未提交的與寄存器文件相關(guān)指令的數(shù)目,即每寫入一條指令數(shù)目加1而每提交一條指令數(shù)目減1;以及提交時(shí)將提交表中的內(nèi)容替代當(dāng)前表中的寄存器映射關(guān)系。
      所述當(dāng)前表記錄了已經(jīng)提交的指令確定的映射關(guān)系;當(dāng)發(fā)生提交時(shí),將其對應(yīng)的虛擬號(hào)釋放回空閑表。
      所述寄存器陣列包含M+N個(gè)物理寄存器,其中M是體系結(jié)構(gòu)寄存器的數(shù)目,N是同一時(shí)間內(nèi)可以重命名的寄存器的總數(shù);N也是同一寄存器在同時(shí)時(shí)間段內(nèi)可以重命名的次數(shù);當(dāng)發(fā)生修改時(shí),流水線所取得的虛擬號(hào)對應(yīng)的物理寄存器標(biāo)記為數(shù)據(jù)未就緒,直到從數(shù)據(jù)廣播總線上得到數(shù)據(jù)后再標(biāo)記為數(shù)據(jù)就緒。
      本發(fā)明與現(xiàn)有的實(shí)現(xiàn)寄存器重命名的技術(shù)方案相比有較大的優(yōu)越性,首先背景技術(shù)中所提到的技術(shù)方法都是采用兩個(gè)寄存器陣列(體系結(jié)構(gòu)寄存器ARF,重命名寄存器RRF)來實(shí)現(xiàn),而本發(fā)明用一個(gè)寄存器陣列加以實(shí)現(xiàn),并且也不固定區(qū)分那些是體系結(jié)構(gòu)寄存器那些是重命名寄存器,每個(gè)寄存器既可以指定為體系結(jié)構(gòu)寄存器,又可以指定為重命名寄存器使用。
      其次,整個(gè)技術(shù)方案在實(shí)現(xiàn)過程中也不需要在指令完成時(shí)必須將RRF中的結(jié)果復(fù)制到ARF,而只需將寄存器名稱改為體系架構(gòu)寄存器即可。這樣就節(jié)約了ARF和RRF間的相互傳輸。
      另外,采用本發(fā)明后,任何物理寄存器都可以用來對任何的體系結(jié)構(gòu)寄存器進(jìn)行再定義,空閑的寄存器可以被任意寄存器重命名,甚至所有N個(gè)重命名寄存器可以對同一體系結(jié)構(gòu)寄存器進(jìn)行重命名??梢猿浞痔岣呒拇嫫髻Y源的有效利用率。


      圖1為本發(fā)明所述方法中寄存器文件的結(jié)構(gòu)示意圖。
      圖2為本發(fā)明所述方法中寄存器修改的流程圖。
      圖3為本發(fā)明所述方法中寄存器讀取的流程圖。
      具體實(shí)施例方式如圖1所示,本發(fā)明方法涉及寄存器重命名技術(shù),其所述的寄存器文件采用包含空閑表、未來表、提交表和當(dāng)前表4個(gè)映射表和一個(gè)物理寄存器陣列的多映射表構(gòu)架能幫助支持指令動(dòng)態(tài)預(yù)測流水線技術(shù)的寄存器文件完成三項(xiàng)任務(wù)寄存器讀取、寄存器修改、寄存器恢復(fù)。具體內(nèi)容如下(1)寄存器的修改如圖2所示,首先向寄存器文件申請需要修改的寄存器,寄存器文件中的空閑表記錄了當(dāng)前空閑的寄存器的個(gè)數(shù)和空閑的物理寄存器號(hào)即虛擬號(hào)。寄存器文件在收到修改申請后,判斷空閑的寄存器數(shù)目是否大于申請修改的寄存器數(shù)目,如果不能滿足要求那么就先停止流水線,直到空閑的寄存器數(shù)目滿足要求后繼續(xù)執(zhí)行。滿足要求后,空閑表輸出物理寄存器地址索引(虛擬號(hào)),根據(jù)獲得的虛擬號(hào)修改未來表,寄存器陣列中對應(yīng)的物理寄存器也標(biāo)記為數(shù)據(jù)未就緒,同時(shí)在提交表中注冊。提交表的注冊內(nèi)容包括邏輯寄存器號(hào)和寄存器的虛擬號(hào)。
      在這條指令發(fā)射后,后續(xù)指令的數(shù)據(jù)根據(jù)未來表的虛擬號(hào)讀取。從未來表輸出的虛擬號(hào)同時(shí)也送給執(zhí)行單元,執(zhí)行單元的運(yùn)算結(jié)果伴隨虛擬號(hào)在寫回總線上廣播,當(dāng)寄存器在廣播總線上檢測到虛擬號(hào)時(shí)從總線獲得數(shù)據(jù),并標(biāo)記為數(shù)據(jù)就緒。當(dāng)流水線指令請求提交時(shí),根據(jù)提交表的內(nèi)容判斷要提交的寄存器數(shù)據(jù)是否就緒,如果未就緒就等待數(shù)據(jù)就緒。數(shù)據(jù)就緒后允許提交,提交時(shí)將原來當(dāng)前表中的虛擬號(hào)釋放回空閑表,用提交表中的虛擬號(hào)修改當(dāng)前表中對應(yīng)邏輯寄存器的虛擬號(hào)。
      (2)寄存器讀取如圖3所示,首先譯碼單元向寄存器文件申請讀寄存器并給出寄存器號(hào),未來表從表中查找除寄存器對應(yīng)的虛擬號(hào),并向寄存器陣列發(fā)出讀請求。
      此時(shí)可能出現(xiàn)兩種情況,一是判斷申請讀取的寄存器的數(shù)據(jù)已經(jīng)就緒,即沒有未完成的寫操作要更新該寄存器,那么其中的數(shù)據(jù)是最新的,寄存器文件輸出該數(shù)據(jù);另一種情況是寄存器內(nèi)容未就緒,那么表示還存在一條指令在執(zhí)行單元中要修改該寄存器未完成寫回操作,此時(shí)寄存器文件將未來表中的虛擬號(hào)在讀總線上給出。虛擬號(hào)或者數(shù)據(jù)被送入執(zhí)行單元,如果執(zhí)行單元得到的是虛擬號(hào),那么執(zhí)行單元檢測廣播總線,如果發(fā)現(xiàn)虛擬號(hào)匹配,從總線獲取數(shù)據(jù)。
      (3)寄存器恢復(fù)由于現(xiàn)在的處理器基本都支持指令預(yù)測,因此為了保證指令執(zhí)行的正確性,在指令預(yù)測出錯(cuò)和指令異常的情況下,要求提前指令的指令寫回的結(jié)果能夠恢復(fù)到當(dāng)前指令狀態(tài)。
      當(dāng)前表指示的是當(dāng)前指令執(zhí)行前邏輯寄存器和物理寄存器的映射關(guān)系,因此引入當(dāng)前表的作用就是用以恢復(fù)未來表的內(nèi)容,達(dá)到恢復(fù)寄存器內(nèi)容的目的。
      在發(fā)生恢復(fù)事件時(shí),除用當(dāng)前表恢復(fù)未來表外,空閑表的所有指針和占用標(biāo)記都要清除??臻e表中存儲(chǔ)的物理寄存器虛擬號(hào)也恰好是當(dāng)前表未占用的空閑寄存器耗。
      以上是本發(fā)明的實(shí)施方式之一,對于本領(lǐng)域內(nèi)的一般技術(shù)人員,不花費(fèi)創(chuàng)造性的勞動(dòng),在上述實(shí)施例的基礎(chǔ)上可以做多種變化,同樣能夠?qū)崿F(xiàn)本發(fā)明的目的。但是,這種變化顯然應(yīng)該在本發(fā)明的權(quán)利要求書的保護(hù)范圍內(nèi)。
      權(quán)利要求
      1.一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述方法中的寄存器文件包含空閑表、未來表、提交表和當(dāng)前表4個(gè)映射表和一個(gè)物理寄存器陣列;其中,所述空閑表分別與未來表和當(dāng)前表通信聯(lián)接;所述未來表分別與提交表、當(dāng)前表、空閑表以及寄存器陣列通信聯(lián)接;所述提交表分別與當(dāng)前表、未來表以及寄存器陣列通信聯(lián)接;所述當(dāng)前表非別與提交表、未來表以及空閑表通信聯(lián)接;所述寄存器陣列分別與提交表和未來表通信聯(lián)接。
      2.根據(jù)權(quán)利要求1的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述空閑表記錄了當(dāng)前指令之前空閑的物理寄存器的數(shù)目和空閑的物理寄存器的地址索引(虛擬號(hào));每個(gè)物理寄存器通過在空閑表中獨(dú)立的1位標(biāo)記來判斷是否已經(jīng)被使用;當(dāng)流水線申請修改時(shí),空閑表從標(biāo)記為空閑的寄存器中選出需要的寄存器,如果數(shù)目不夠時(shí),則給出一個(gè)空閑表空信號(hào)迫使流水線不再繼續(xù)發(fā)射指令,等待流水線中已發(fā)射指令提交,直至等到空閑寄存器數(shù)目滿足當(dāng)前指令需求;如果數(shù)目允許,則給出相應(yīng)的虛擬號(hào)并將該寄存器標(biāo)記為忙,并使得空閑物理寄存器的數(shù)目也相應(yīng)減少。
      3.根據(jù)權(quán)利要求1的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述未來表記錄了體系結(jié)構(gòu)寄存器到物理寄存器的映射關(guān)系,它記錄了最后一條修改指令后每個(gè)體系結(jié)構(gòu)寄存器對應(yīng)的物理寄存器的虛擬號(hào);而后續(xù)指令都根據(jù)這個(gè)虛擬號(hào)去讀取數(shù)據(jù);當(dāng)發(fā)生寄存器修改時(shí),未來表將需修改的寄存器取得的虛擬號(hào)寫入未來表;當(dāng)發(fā)生恢復(fù)時(shí),將當(dāng)前表中體系結(jié)構(gòu)寄存器對應(yīng)的虛擬號(hào)復(fù)制到未來表中對應(yīng)位置。
      4.根據(jù)權(quán)利要求1的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述提交表記錄了對應(yīng)每條已經(jīng)發(fā)射但是還沒提交的指令應(yīng)該提交的寄存器和其申請的虛擬號(hào);如果提交表中這條指令對應(yīng)的所有物理寄存器內(nèi)數(shù)據(jù)都準(zhǔn)備就緒,那么就表明該條指令已經(jīng)完成指令的所有操作,允許提交;所述提交表還能反映還未提交的與寄存器文件相關(guān)指令的數(shù)目,即每寫入一條指令數(shù)目加1而每提交一條指令數(shù)目減1;以及提交時(shí)將提交表中的內(nèi)容替代當(dāng)前表中的寄存器映射關(guān)系。
      5.根據(jù)權(quán)利要求1的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述當(dāng)前表記錄了已經(jīng)提交的指令確定的映射關(guān)系;當(dāng)發(fā)生提交時(shí),將其對應(yīng)的虛擬號(hào)釋放回空閑表。
      6.根據(jù)權(quán)利要求1的基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法,其特征在于,所述寄存器陣列包含M+N個(gè)物理寄存器,其中M是體系結(jié)構(gòu)寄存器的數(shù)目,N是同一時(shí)間內(nèi)可以重命名的寄存器的總數(shù);N也是同一寄存器在同時(shí)時(shí)間段內(nèi)可以重命名的次數(shù);當(dāng)發(fā)生修改時(shí),流水線所取得的虛擬號(hào)對應(yīng)的物理寄存器標(biāo)記為數(shù)據(jù)未就緒,直到從數(shù)據(jù)廣播總線上得到數(shù)據(jù)后再標(biāo)記為數(shù)據(jù)就緒。
      全文摘要
      本發(fā)明公開了一種基于新的寄存器文件結(jié)構(gòu)的實(shí)現(xiàn)方法。該方法提出了一種新型的寄存器文件結(jié)構(gòu),可以用較少的資源實(shí)現(xiàn)寄存器的重命名,解決假數(shù)據(jù)相關(guān)。上述方案中所涉及到的寄存器文件包含4個(gè)映射表和一個(gè)物理寄存器陣列,利用4個(gè)映射表合理、高效的實(shí)現(xiàn)寄存器的修改、讀取和恢復(fù)操作。這樣使得任何物理寄存器都可以用來對任何的體系結(jié)構(gòu)寄存器進(jìn)行再定義,空閑的寄存器可以被任意寄存器重命名,甚至所有N個(gè)重命名寄存器可以對同一體系結(jié)構(gòu)寄存器進(jìn)行重命名??梢猿浞痔岣呒拇嫫髻Y源的有效利用率。另外,這種靈活、方便、高效的寄存器文件結(jié)構(gòu)策略不僅可以用在超標(biāo)量處理器中也可以用在超流水處理器中。
      文檔編號(hào)G06F17/30GK101042687SQ20071003986
      公開日2007年9月26日 申請日期2007年4月24日 優(yōu)先權(quán)日2007年4月24日
      發(fā)明者金榮偉, 李興仁, 林錦麟, 劉春暉, 張達(dá)文, 楊一茜 申請人:上海華龍信息技術(shù)開發(fā)中心
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1