欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于解決有害孿生問題的方法和結構的制作方法

文檔序號:6348534閱讀:137來源:國知局
專利名稱:用于解決有害孿生問題的方法和結構的制作方法
技術領域
本發(fā)明大體上涉及微處理器的寄存器堆,且更明確地說,涉及同時支持多個寄存器大小的寄存器堆。
背景技術
隨著處理器已變得更強大,此類處理器所處理的數(shù)據(jù)單元的大小已連續(xù)增加。舉例來說,較早的處理器中的一些處理器包含若干個寄存器堆,其中每一寄存器條目存儲一數(shù)據(jù)字節(jié)。一些處理器中的寄存器堆中的寄存器大小是每一寄存器六十四位。通常,當引入新的處理器時,所述處理器經(jīng)配置以處理針對具有較小寄存器大小的較早處理器而寫入的計算機代碼以及針對在新的處理器中可用的最大寄存器大小而寫入的計算機代碼,即,在新的處理器中維持了計算機程序的向后兼容性。圖1是寄存器堆 100的實例,其中寄存器的大小從一代處理器到下一代所述處理器已翻倍。舉例來說,較舊的處理器利用三十二個三十二位的寄存器,f0到f31。新的處理器利用三十二個六十四位的寄存器d0到d31。如圖1中所示,寄存器d0的最低有效三十二個位是寄存器f0,且寄存器d0的最高有效三十二個位是寄存器fl。因此,寄存器do包含寄存器f0和寄存器fl。本文中,將寄存器fl稱為寄存器f0的雙生物。寄存器d0到dl5中的每一者包含兩個三十二位的寄存器,且因此寄存器d0到dl5中的每一者包含雙生寄存器(twin registers) 0在六十四位寄存器的最高有效位中的三十二位寄存器被稱為所述六十四位寄存器的最低有效位中的三十二位寄存器的有害孿生(evil twin) 0使用寄存器堆100來用于執(zhí)行使用三十二位和六十四位寄存器兩者的指令可能產(chǎn)生問題,所述問題被稱為“有害孿生”問題。如果兩個指令通過六十四位寄存器的最高有效位中的三十二位寄存器而耦合, 即,通過有害孿生寄存器而耦合,那么處理器通常不會檢測到所述耦合。因此,由于有害孿生問題的緣故,可能會獲得不正確的結果。舉例來說,用于使用六十四位操作數(shù)的指令的比較器沒有將使用所述六十四位寄存器的三十二個最高有效位的指令檢測為目的地。圖IB是計算機程序150的片段,所述片段包含耦合的指令,但比較器并未檢測到所述耦合,且因此計算機程序150遭受有害孿生問題。在圖IB中,加載指令Id加載寄存器fl中的值,寄存器f 1是寄存器do的三十二個最高有效位,且為有害孿生寄存器。在下一行中,浮點雙精度加法指令(floating pointing double precision add instruction) fdadd使寄存器dO中的值與寄存器d4中的值相加, 并將所得的值放置在寄存器d8中。如圖IA中所指示,寄存器d0是六十四位寄存器,且因
4此包含寄存器fl中的任何值。然而,用于確定浮點雙精度加法指令fdadd所依賴的指令的比較器沒有檢測到浮點雙精度加法指令fdadd對有害孿生寄存器fl中的加載指令Id的結果的相依性。因此, 可在加載指令Id完成之前執(zhí)行浮點雙精度加法指令fdadd。在此情況下,浮點雙精度加法指令fdadd的結果的準確性是未知的,且很有可能是不正確的,因為指令Id的結果不在有害孿生寄存器fl中。類似地,也如圖IA中所示,六十四位寄存器d8包含三十二位的寄存器fl7。浮點加法指令fadd使寄存器fl5中的值與有害孿生寄存器fl7中的值相加,并將所得的值放置在寄存器f23中。然而,寄存器Π7直到在浮點雙精度加法指令fdadd完成之后才包含正確的值。比較器沒有檢測到浮點加法指令fadd對浮點雙精度加法指令fdadd的結果的相依性。因此,可在浮點雙精度加法指令fdadd完成之前執(zhí)行浮點加法指令fadd。在此情況下,浮點加法指令fadd的結果的準確性是未知的,且很有可能是不正確的,因為指令fdadd 的結果不在有害孿生寄存器f 17中。在這些例子中的每一者中,問題在于處理器不能夠檢測到指令對有害孿生寄存器中的值的相依性。如所注意,此問題被稱為有害孿生問題。在此實例中,寄存器fl、f3……中的每一者分別被稱為寄存器f0、f2的有害孿生。 此有害孿生問題已經(jīng)是公認的,因為不同大小的寄存器到同一寄存器堆的映射使寄存器堆所需要的面積最小化,同時允許在處理器上執(zhí)行不同代的計算機代碼。此外,為了避免有害孿生問題,舉例來說,一些處理器直到已完成所有單精度指令之后才允許發(fā)起雙精度指令, 且直到已完成所有雙精度指令之后才允許發(fā)起單精度指令。發(fā)起的延遲使管線停止,直到完成對一個指令集的執(zhí)行為止。

發(fā)明內容
在一個實施例中,一種處理器消除有害孿生問題。對有害孿生問題的解決方案(i) 使芯片上支持所述解決方案所需要的面積最小化;(ii)可在具有單個端口的內容可尋址存儲器中實施;且(iii)不需要使管線停止。因此,與現(xiàn)有技術形成對比的是,具有不同大小的操作數(shù)和不同大小的結果的計算機程序中的指令可相互混合。在沒有現(xiàn)有技術的用以避免有害孿生問題的特殊預防措施的情況下,恰當?shù)貓?zhí)行相互混合的指令。在一個實施例中,在一種處理器中解決有害孿生問題,所述處理器支持(i)第一指令集,其具有具第一大小(η個位)的源和目的地的第一指令,其中η為整數(shù),以及(ii) 第二指令集,其具有具第二大小(m個位)的源和目的地的第二指令,其中m為整數(shù)。第二大小(m個位)是第一大小(η個位)的偶整數(shù)倍。處理器中的寄存器堆包含第一多個具有第一大小的寄存器。解碼器使用映射,所述映射將寄存器堆劃分為第二多個(Μ個)具有第二大小的寄存器。所述第二大小是寄存器堆中用于存儲數(shù)據(jù)的最大大小的寄存器。在所述映射中,在連續(xù)名稱空間中向具有第二大小(m個位)的寄存器中的每一者指派不同的名稱。具有所述第二大小的每一寄存器包含第三多個(N個)具有所述第一大小(η個位)的寄存器,其中N為偶整數(shù)。如上文所指示,整數(shù)m是整數(shù)η的偶數(shù)(N)倍。第一大小是寄存器堆中用于存儲數(shù)據(jù)的最小大小的寄存器。所述映射向第三多個(N個)寄存器中的每一寄存器指派與包含所述多個寄存器的具有第二大小的寄存器相同的名稱。因此,寄存器堆映射到(M*N)個η位寄存器中,使得所述第一多個寄存器為(Μ*Ν) 個寄存器。為每一η位寄存器將狀態(tài)信息維持在所述寄存器堆中。在一個實施例中,通過有效位來提供所述狀態(tài)信息??纱嬖谝唤M大于第一大小但小于第二大小的中間大小寄存器,所述中間大小寄存器也映射到與含有所述中間大小寄存器的m位寄存器的名稱相同的名稱。較大的中間大小寄存器也是最小大小寄存器的偶整數(shù)倍。當向特定寄存器寫入時,與所述寄存器大小相關聯(lián)的所有有效位得以斷言。由于具有第二大小的寄存器和包含在所述寄存器中的所有具有第一大小的寄存器具有共用名稱,所以易于查明利用不同大小的寄存器的指令之間的寄存器相依性。而且, 由于將狀態(tài)信息維持在用于具有第一大小的每一寄存器的寄存器堆中,所以處理器可確定利用具有第二大小的寄存器的全部或一部分的指令何時就緒,且因此可在不使管線停止的情況下在適當?shù)臅r間發(fā)出指令以供執(zhí)行。與狀態(tài)信息組合的唯一映射消除了處理器的有害孿生問題。在一個實施例中,一種處理器包含寄存器堆,其包括多個具有第一大小的寄存器;以及解碼單元。所述解碼單元對來自具有具第一大小的源和目的地的第一指令集的指令以及來自具有具第二大小的源和目的地的第二指令集的指令進行解碼。第二大小是第一大小的η倍,其中η是偶整數(shù)。解碼單元還包含映射單元,所述映射單元用于將用于第一指令集中的指令的寄存器名稱和用于第二指令集中的指令的寄存器名稱映射到共用名稱空間中。所述共用名稱空間中的寄存器名稱是(i)用于所述多個寄存器中的一組η個寄存器中的每一寄存器以及 ( )用于包含所述組η個寄存器的具有第二大小的寄存器的同一名稱。所述共用名稱空間是用于寄存器堆的連續(xù)名稱空間。具有第一大小的每一寄存器具有對應的有效位,以為所述寄存器提供狀態(tài)信息。所述處理器還包含記分板,其具有用于具有第一大小的每一寄存器的條目;以及執(zhí)行管,其耦合到寄存器堆。在執(zhí)行管將結果寫入到一組η個寄存器中的僅一個寄存器后,即刻僅為所述一個寄存器斷言有效位。在執(zhí)行管將結果寫入到一組η個寄存器中的所有寄存器后,即刻為所述η個寄存器中的每一者斷言有效位。寄存器堆包含在具有僅單個端口的內容可尋址存儲器中。所述寄存器堆可為(例如)工作寄存器堆、架構寄存器堆或前述兩者?!N用于解決處理器中的有害孿生問題的方法,所述處理器支持具有具第一大小的源和目的地的第一指令的第一指令集,以及具有具第二大小的源和目的地的第二指令的第二指令集,所述方法包含通過處理器的解碼管對第一指令和第二指令進行解碼。第二大小是第一大小的η倍,其中η是偶整數(shù)。所述解碼進一步包含將用于第一指令的寄存器名稱和用于第二指令的寄存器名稱映射到用于包括多個具有第一大小的寄存器的寄存器堆的共用名稱空間中。所述共用名稱空間中的寄存器名稱是(i)用于所述多個寄存器中的一組η個寄存器中的每一寄存器以及(ii)用于包含所述組η個寄存器的具有第二大小的寄存器的同一名稱。所述共用名稱空間是用于寄存器堆的連續(xù)名稱空間。所述方法還包含在寄存器堆中為寄存器堆中具有第一大小的每一寄存器維持單獨的狀態(tài)信息。


圖1是現(xiàn)有技術的寄存器堆的映射的框圖。圖2是根據(jù)本發(fā)明一個實施例的包含多個核心的處理器的高級框圖,其中至少一個核心包含連續(xù)名稱空間映射的寄存器堆。圖3是根據(jù)本發(fā)明一個實施例的圖2的處理器的代表性核心的更詳細的框圖。圖4是對根據(jù)本發(fā)明一個實施例的寄存器堆的新穎映射的說明。圖5是根據(jù)本發(fā)明實施例的包含處理器的系統(tǒng)的框圖,所述處理器包含并利用連續(xù)名稱空間映射的寄存器堆。在圖式中,具有相同參考標號的元件是相同或等效的元件。而且,參考標號的第一個數(shù)字是所述元件第一次出現(xiàn)在其中的圖的圖號。
具體實施例方式根據(jù)本發(fā)明的一個實施例,處理器200包含多個核心210-i,其中i的范圍從1到 S,其中S為整數(shù)。所述多個核心210-i可具有共用寄存器堆,或者,每一核心210-i可具有其自身的寄存器堆,或者全局寄存器堆與本地寄存器堆的某一組合。無論處理器200中的寄存器堆的特定配置如何,寄存器堆中的寄存器到連續(xù)名稱空間中的新穎映射都允許辨識和解決有害孿生問題。利用用于寄存器堆的連續(xù)名稱空間的解決方案允許在寄存器堆實施于CAM(內容可尋址存儲器)中時共享CAM端口,且因此不需要額外的CAM端口。因此,如在下文更完整地描述,裸片上實施對有害孿生問題的解決方案所需要的空間量限于在解碼器中實施映射所需要的空間和CAM中用于額外的有效位的少量額外空間。而且,與現(xiàn)有技術不同,所述解決方案不需要使管線停止直到使用特定大小的寄存器的指令已完成執(zhí)行為止。在更詳細地考慮對有害孿生問題的解決方案之前,考慮管線310(圖3)在核心 210-i中的正常操作。管線310執(zhí)行指令,并將結果寫入到工作寄存器堆320。當指令退出時,所述指令在工作寄存器堆320中的結果被寫入到架構寄存器堆330。如圖3A中所說明,管線310還包含具有一個或一個以上級的提取管(fetch pipe)311。提取管311耦合到指令存儲區(qū)318,例如,二級(U)高速緩存存儲器。將提取管 311的輸出提供給提取緩沖器312。在至少一個實施例中,提取緩沖器312經(jīng)配置以服務于多個線程。解碼管313包含用以對指令進行解碼的一個或一個以上級。所述指令至少可包含來自兩個不同指令集的指令。第一指令集中的指令將第一大小的寄存器用作源和目的地。 第二指令集中的指令將第二大小的寄存器用作源和目的地。用于存儲對指令的輸入(即, 操作數(shù))的寄存器被稱為源,而用于存儲經(jīng)執(zhí)行指令的結果的寄存器被稱為目的地。第二大小不同于第一大小。第二大小是第一大小的η倍,其中η是偶整數(shù)。如下文更完整地闡釋,解碼管313的一個級包含映射單元340,所述映射單元340
7映射到連續(xù)名稱空間中,以消除與至少兩個不同的寄存器大小相關聯(lián)的有害孿生問題。以類似的方式來映射架構寄存器堆330。解碼管313耦合到指令隊列314,所述指令隊列314用以使解碼管313從管線310的稍后級去耦。在此實例中,工作寄存器堆(WRF)320和架構寄存器堆(ARF) 330耦合到解碼管 313、執(zhí)行管316以及陷阱和提交單元317。分組單元315對存儲在指令隊列314中的指令進行分組,以供執(zhí)行管316來執(zhí)行。 執(zhí)行管316耦合到陷阱和提交單元317,陷阱和提交單元317將經(jīng)執(zhí)行的指令提交到架構寄存器堆330中的架構狀態(tài)。數(shù)據(jù)高速緩沖存儲器319耦合到執(zhí)行管316。數(shù)據(jù)高速緩沖存儲器319向執(zhí)行管316提供數(shù)據(jù)。因此,在此實例中,寄存器堆320和330支持至少兩個寄存器大小,其中一個大小是另一大小的偶數(shù)倍。解碼管313至少對包含來自第一指令集的指令和來自第二指令集的指令的計算機程序進行解碼。在以下實例中,第一大小取為三十二位,且偶整數(shù)η取為二。因此,第二大小為六十四位。對這些大小的使用僅是說明性的,且無意將本發(fā)明限于此特定實例。鑒于本發(fā)明,所屬領域的博學人士可將本申請案延伸到(例如)具有源和目的地的四個指令集,所述指令集是彼此的偶整數(shù)倍,例如,具有八位源和目的地的指令;具有十六位源和目的地的指令;具有三十二位源和目的地的指令;以及具有六十四位源和目的地的指令?;蛘?,可利用具有三十二位源和目的地的指令;具有六十四位源和目的地的指令;以及具有一百二十八位源和目的地的指令。圖4是說明映射單元340將工作寄存器堆320映射到連續(xù)名稱空間中的實例。在此實例中,工作寄存器堆320包含三十二個六十四位寄存器。將寄存器堆320映射到六十四個三十二位的寄存器,即多個具有第一大小的寄存器中。與執(zhí)行管316相關聯(lián)的記分板350維持六十四個三十二位寄存器中的每一者的狀態(tài)
fn息ο為了允許將單個CAM端口用于工作寄存器堆320,三十二個寄存器中的每一對和包含所述對的六十四位寄存器共享共用名稱。所述對中的一個寄存器是用于所述名稱的低寄存器,且所述對中的另一寄存器是用于所述名稱的高寄存器。在圖4的實例中,名稱的范圍從DO到D31,且用“低”來表示下部寄存器,而用“高”來表示上部寄存器。圖4中的名稱 DO到D31、高、低、以及有效是參考標號;且出于易于理解的目的而使用;且不應被解釋為要求將所述名稱存儲在工作寄存器堆320中。而且,本文中為了在寄存器Di (其中i的范圍從0到31)的高部分與低部分之間進行區(qū)分,將參考標號Di_H用于寄存器Di的高部分;將參考標號Di_L用于寄存器Di的低部分;且參考標號Di包含寄存器Di_L和Di_H兩者。在此實施方案中,寄存器Di包含一組雙生物寄存器Di_H和Di_L,且由共用寄存器名稱Di來表示所有三個寄存器。使用單獨的信號來指示寄存器Di的相應的高部分和低部分。而且,寄存器Di的每一部分均具有有效位,所述有效位如下文更完整地描述而使用。考慮圖IB中的代碼片段150和由用于將代碼片段150中的寄存器映射到圖4中的工作寄存器堆320的映射單元340獲得的結果。寄存器Π映射到寄存器DO的高部分, 且由參考標號D0_H表示。寄存器d0、d4以及d8分別映射到寄存器DO、D4以及D8。寄存器Π5映射到寄存器D7的高部分,且由參考標號D7_H表示;寄存器fl7映射到寄存器D8 的高部分,且由參考標號D8_H表示;且寄存器f23映射到寄存器D12的高部分,且由參考標號D12_H表示。在所述映射之后,指令在圖4B中展示為代碼片段450。由于比較器對寄存器名稱(S卩,DO到D31)進行比較,所以比較器檢測到各種指令的相依性。因此,直到指令Id完成才執(zhí)行指令fdadd,且直到指令fdadd完成才執(zhí)行指令 fadd。到連續(xù)名稱空間的映射允許對有害孿生問題的檢測和通過阻止執(zhí)行直到恰當?shù)臄?shù)據(jù)變得可用為止的解決方案。具體地說,當將值加載到寄存器D0_H時,用于寄存器D0_H的有效位被斷言,且用于寄存器D0_L的有效位的值不變。類似地,當將值加載或寫入到寄存器D0_L時,用于所述寄存器的有效位被斷言,且用于寄存器D0_H的有效位不變。如果將值加載或寫入到寄存器 Di (其中i的范圍從0到31),那么上部有效位和下部有效位兩者被斷言。當目的地寄存器變得可用于旁路時,從中間寄存器或從寄存器堆自身對有效位解除斷言。因此,不僅浮點雙精度加法指令fdadd可基于共用名稱來檢測指令對寄存器D0_H 中的值的相依性,而且當讀取用于寄存器D0_H的有效位時,所述指令可確定所讀取的值是否有效。類似地,如果指令需要寄存器Di中的值,那么寄存器Di中的值便直到上述兩個有效位被斷言為止才有效。因此,不僅通過連續(xù)名稱空間來檢測指令的相依性,而且有效位允許處理器確定寄存器Di的任一部分或所有部分中的信息何時有效。由于具有第二大小的寄存器和包含在所述寄存器中的所有具有第一大小的寄存器具有共用名稱,所以如上文所說明,易于查明利用不同大小的寄存器的指令之間的相依性。而且,由于在寄存器堆中為具有第一大小的每一寄存器維持狀態(tài)信息,所以處理器可確定利用具有第二大小的寄存器的全部或一部分的指令何時就緒,且因此可在不使管線停止的情況下在適當?shù)臅r間發(fā)出指令以供執(zhí)行。與狀態(tài)信息組合的唯一映射消除處理器的有害孿生問題。與有效位的使用結合的到連續(xù)名稱空間的映射不同于亂序處理器中的寄存器重命名。在寄存器重命名中,基于程序次序來為寄存器指派名稱,且寄存器通常是不連續(xù)的, 且因此寄存器重命名需要雙倍數(shù)目的CAM端口。更一般來說,解碼器中的映射將寄存器堆劃分為第二多個(M個)具有第二大小的寄存器,其中所述第二大小是第二數(shù)目(m)個位。第二大小是寄存器堆中用于存儲數(shù)據(jù)的最大大小的寄存器。在連續(xù)名稱空間中向具有第二大小(m個位)的寄存器中的每一者指派不同的名稱。如下文所界定,寄存器堆包含具有第一大小的第一多個寄存器。每一具有第二大小的寄存器包含第三多個(N個)具有第一大小的寄存器,其中所述第一大小是第一數(shù)目(η)個位,且整數(shù)m是整數(shù)η的偶數(shù)(N)倍。第一大小是寄存器堆中用于存儲數(shù)據(jù)的最小大小的寄存器。第三多個寄存器中的每一寄存器具有與包含所述多個寄存器的具有第二大小的寄存器相同的名稱。因此,寄存器堆映射到(Μ*Ν)個η位寄存器中。為每一 η位寄存器維持狀態(tài)信息。 可存在大于第一大小但小于第二大小的中間大小寄存器。較大的中間大小寄存器也是最小大小寄存器的偶整數(shù)倍。當向特定寄存器寫入時,與所述寄存器的大小相關聯(lián)的所有有效位均被斷言。圖5描繪根據(jù)本發(fā)明各種方面而構造的計算機系統(tǒng)500的實例。計算機系統(tǒng)500
9包含具有至少一個連續(xù)名稱空間映射的寄存器堆的處理器502。處理器502可包含多個核心、可為單線程處理器、可為多線程處理器等。在一個實施例中,計算機系統(tǒng)500是獨立系統(tǒng),而在另一實施例中,計算機系統(tǒng)500是聯(lián)網(wǎng)的服務器計算機,且是客戶端-服務器系統(tǒng)的一部分。計算機系統(tǒng)500還包含系統(tǒng)存儲器501,例如一個或一個以上高速緩存級、 SRAM(靜態(tài)隨機存取存儲器)、DRAM(動態(tài)隨機存取存儲器)、RDRAM(內存總線式DRAM)、 EDO RAM(擴展數(shù)據(jù)輸出隨機存取存儲器)、DDR RAM(雙數(shù)據(jù)速率隨機存取存儲器)和/或 EEPROM(電可擦除可編程只讀存儲器)等);系統(tǒng)總線505(例如,LDT(閃電數(shù)據(jù)輸送)、 PCI (外圍組件互連)、ISA(行業(yè)標準體系結構)等);網(wǎng)絡接口 503(例如,ATM(異步傳送模式)接口、以太網(wǎng)接口、幀中繼接口等);以及存儲裝置504,例如光學存儲裝置,磁性存儲
裝置等。本發(fā)明的計算機系統(tǒng)實現(xiàn)方案可包含圖5中未說明的更少的或額外的組件。舉例來說,計算機系統(tǒng)500還可包含視頻卡、音頻卡、額外的網(wǎng)絡接口、外圍裝置等。處理器502、 存儲裝置504、網(wǎng)絡接口 503以及系統(tǒng)存儲器501耦合到系統(tǒng)總線505,所述系統(tǒng)總線505 包含多個地址、數(shù)據(jù)和控制線。處理器502包含指令存儲區(qū)318和將指令存儲區(qū)318耦合到存儲器層級(即,系統(tǒng)存儲器501)的存儲器接口。應了解,本文所描述的計算設備可體現(xiàn)為包含在一個或一個以上計算機可讀媒體上編碼的機器可讀指令的設計文件表示。
權利要求
1.一種處理器,其包括寄存器堆,其包括多個第一大小的寄存器;以及解碼單元,其用于對具有所述第一大小的源和目的地的第一指令以及具有第二大小的源和目的地的第二指令進行解碼,其中所述第二大小是所述第一大小的偶整數(shù)η倍,所述解碼單元進一步包括映射單元,其用于將用于所述第一指令的寄存器名稱和用于所述第二指令的寄存器名稱映射到共用名稱空間中,其中所述共用名稱空間中的寄存器名稱是(i)用于所述多個寄存器中的一組η個寄存器中的每一寄存器以及(ii)用于包含所述組η個寄存器的所述第二大小的寄存器的同一寄存器名稱;且所述共用名稱空間是用于所述寄存器堆的連續(xù)名稱空間。
2.根據(jù)權利要求1所述的處理器,其中所述第一大小的每一寄存器具有對應的有效位。
3.根據(jù)權利要求1所述的處理器,其進一步包括記分板,其具有用于所述第一大小的每一寄存器的條目。
4.根據(jù)權利要求1所述的處理器,其進一步包括 執(zhí)行管,其耦合到所述寄存器堆,其中在所述執(zhí)行管將結果寫入到一組η個寄存器中的僅一個寄存器后,即刻僅為所述一個寄存器斷言有效位。
5.根據(jù)權利要求1所述的處理器,其進一步包括 執(zhí)行管,其耦合到所述寄存器堆,其中在所述執(zhí)行管將結果寫入到一組η個寄存器中的所有寄存器后,即刻為所述η個寄存器中的每一者斷言有效位。
6.根據(jù)權利要求4所述的處理器,另外其中在所述執(zhí)行管將結果寫入到所述組η個寄存器中的所有寄存器后,即刻為所述η個寄存器中的每一者斷言有效位。
7.根據(jù)權利要求1所述的處理器,其中η為二,且所述第一大小為三十二個位。
8.根據(jù)權利要求1所述的處理器,其進一步包括內容可尋址存儲器,其僅具有一共享端口,其中所述寄存器堆包含在所述內容可尋址存儲器中。
9.根據(jù)權利要求1所述的處理器,其中所述寄存器堆是工作寄存器堆。
10.一種用于解決處理器中的有害孿生問題的方法,所述處理器支持具有第一大小的源和目的地的第一指令以及具有第二大小的源和目的地的第二指令,其中所述第二大小是所述第一大小的偶整數(shù)η倍,所述方法包括通過所述處理器的解碼管來對具有所述第一大小的源和目的地的所述第一指令以及具有所述第二大小的源和目的地的所述第二指令進行解碼,其中所述解碼進一步包括將用于所述第一指令的寄存器名稱和用于所述第二指令的寄存器名稱映射到用于包括多個第一大小的寄存器的寄存器堆的共用名稱空間中,其中所述共用名稱空間中的寄存器名稱是(i)用于所述多個寄存器中的一組η個寄存器中的每一寄存器以及(ii)用于包含所述組η個寄存器的所述第二大小的寄存器的同一寄存器名稱;且所述共用名稱空間是用于所述寄存器堆的連續(xù)名稱空間。
11.根據(jù)權利要求10所述的方法,其進一步包括在所述寄存器堆中為所述第一大小的每一寄存器維持單獨的狀態(tài)信息。
12.根據(jù)權利要求10所述的方法,其進一步包括在記分板中為所述第一大小的所述寄存器中的每一者維持條目。
13.根據(jù)權利要求10所述的方法,其進一步包括在所述處理器中的執(zhí)行管將結果寫入到一組η個寄存器中的僅一個寄存器后,即刻僅為所述組η個寄存器中的所述一個寄存器斷言有效位。
14.根據(jù)權利要求10所述的方法,其進一步包括在執(zhí)行管將結果寫入到一組η個寄存器中的所有寄存器后,即刻為所述組η個寄存器中的每一寄存器斷言有效位。
15.根據(jù)權利要求13所述的方法,其進一步包括在所述執(zhí)行管將結果寫入到所述組η個寄存器中的所有寄存器后,即刻為所述組η個寄存器中的每一寄存器斷言有效位。
16.根據(jù)權利要求10所述的方法,其中η為二,且所述第一大小為三十二個位。
17.根據(jù)權利要求10所述的方法,其中所述寄存器堆包含在僅具有一共享端口的內容可尋址存儲器中。
18.根據(jù)權利要求10所述的方法,其中所述寄存器堆是工作寄存器堆。
19.一種系統(tǒng),其包括 存儲器;以及處理器,其耦合到所述存儲器,所述處理器包括 寄存器堆,其包括多個第一大小的寄存器;解碼單元,其用于對具有所述第一大小的源和目的地的第一指令以及具有第二大小的源和目的地的第二指令進行解碼,其中所述第二大小是所述第一大小的偶整數(shù)η倍,所述解碼單元進一步包括映射單元,其用于將用于所述第一指令的寄存器名稱和用于所述第二指令的寄存器名稱映射到共用名稱空間中,其中所述共用名稱空間中的寄存器名稱是(i)用于所述多個寄存器中的一組η個寄存器中的每一寄存器以及(ii)用于包含所述組η個寄存器的所述第二大小的寄存器的同一寄存器名稱;且所述共用名稱空間是用于寄存器堆的連續(xù)名稱空間。
20.根據(jù)權利要求18所述的系統(tǒng),另外其中所述處理器進一步包括 執(zhí)行管,其耦合到所述寄存器堆,其中在所述執(zhí)行管將結果寫入到一組η個寄存器中的僅一個寄存器后,即刻僅為所述一個寄存器斷言有效位;且在所述執(zhí)行管將結果寫入到所述組η個寄存器中的所有寄存器后,即刻為所述η個寄存器中的每一者斷言有效位。
全文摘要
本發(fā)明提供一種寄存器堆,其處于處理器中,所述寄存器堆包含第一多個第一大小n個位的寄存器。一種解碼器使用映射,所述映射將所述寄存器堆劃分為第二多個M個具有第二大小的寄存器。在連續(xù)名稱空間中向具有所述第二大小的寄存器中的每一者指派不同的名稱。所述第二大小的每一寄存器包含多個N個所述第一大小n個位的寄存器。向所述多個N個寄存器中的每一寄存器指派與包含所述多個N個寄存器的所述第二大小的所述寄存器相同的名稱。在所述寄存器堆中為每一n位寄存器維持狀態(tài)信息。通過所述連續(xù)名稱空間來檢測一指令對其它指令的相依性。所述狀態(tài)信息允許所述處理器確定寄存器的任一部分或全部中的所述信息何時有效。
文檔編號G06F9/30GK102356377SQ201080010412
公開日2012年2月15日 申請日期2010年4月13日 優(yōu)先權日2009年4月20日
發(fā)明者沙伊倫德爾·喬杜里, 馬克·特倫布萊 申請人:甲骨文股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
河北省| 永泰县| 辽阳市| 定结县| 遂溪县| 阿瓦提县| 垦利县| 汉寿县| 南汇区| 蚌埠市| 靖西县| 安远县| 庆元县| 连平县| 昌吉市| 郸城县| 梁河县| 开化县| 榕江县| 甘南县| 偃师市| 老河口市| 大足县| 中阳县| 济源市| 礼泉县| 乐清市| 凯里市| 襄樊市| 阿坝| 崇礼县| 旬邑县| 常德市| 舒城县| 盈江县| 观塘区| 湖北省| 酉阳| 和田市| 剑阁县| 昭通市|