新四季網

管理處理器的寄存器的方法和系統的製作方法

2023-05-30 13:22:56

專利名稱:管理處理器的寄存器的方法和系統的製作方法
技術領域:
本發明一般地涉及管理處理器中的寄存器,更具體地說,涉及面向單指令多數據(SIMD)的管理寄存器映射以便基於映射的間接訪問寄存器文件的方法、系統和程序產品。
背景技術:
處理器或執行單元使用寄存器來存儲旨在用於進行操縱的各種數據。在許多方面,寄存器在數據操縱上要優於例如系統存儲器。例如,通常可以在指令中由比需要尋址的系統存儲器中的位置更少的位來指定寄存器。此外,寄存器比大多數系統存儲器具有更高的帶寬和更短的訪問時間。另外,寄存器的設計和測試相對直接。因此,現代處理器架構傾向於具有相對多的寄存器。
儘管一般可以通過增加處理器內寄存器的數量來提高處理器/執行單元的性能,但是大量寄存器也會帶來問題。其中一個問題是寄存器可尋址性。如果處理器包括大量可尋址的寄存器,則每個具有一個或多個寄存器指定的指令將要求單獨為了尋址寄存器而分配許多位。例如,如果處理器具有32個寄存器,則需要總的20位來指定指令中的4個寄存器,因為需要5個位來尋址所有32個寄存器。因此,有效限制了處理器架構中可以直接訪問的寄存器的最大數量。
間接尋址是一種已用於訪問大型寄存器文件的技術。假如適合非常大的寄存器文件並滿足以下目標的話,間接尋址機制對於擴展諸如由國際商業機器公司出售的PowerPCTM處理器之類的架構是有用的·兼容標準PowerPCTM指令格式;·支持現有代碼,無需重新編譯;
·足夠靈活以支持循環展開、軟體流水線操作,以及用於減輕長流水線等待時間的影響的相關軟體技術;以及·足夠靈活以支持用於適當地維護內部循環中的寄存器文件內的工作數據集的大型子集的軟體技術。
用於訪問大型寄存器文件的現有技術間接尋址機制無法滿足一個或多個上述目標。這些現有技術間接尋址機制包括ItaniumTM-使用稱為「旋轉寄存器」的技術來提供對來自具有128個寄存器的寄存器文件中的較高的96個寄存器的相鄰寄存器組的間接訪問。ItaniumTM對於循環展開而非以更通用的方式利用大型寄存器文件來說是有用的。(「Intel ItaniumTMArchitecture Software Developer’sManual」,2002年10月。)「寄存器隊列」-在某些方面類似於旋轉寄存器,在定義和建立對相鄰寄存器組的訪問方面具有明顯增加的靈活性。由於間接訪問仍限於相鄰寄存器組,所以靈活性不足。(Tyson等人,IEEE Trans.Computers,2001年8月。)「寄存器連接」-表現得更為通用,因此對於大型寄存器文件的間接訪問來說,是一種比旋轉寄存器和寄存器隊列更靈活的機制。但是,其限制在於,如果與PowerPCTM架構一起使用,則因為用於將指令中編碼的寄存器名稱映射到寄存器文件中的實際物理寄存器的機制,任何特定循環中發出的指令只能訪問32個寄存器。(Kiyohara等人,ISCA的會議記錄,1993年。)因此,希望提供一種增加處理器尋址寄存器的能力的改進的裝置。

發明內容
在以上結合的標題為「Apparatus for Increasing Addressability ofRegisters within a Processor(用於增加處理器中寄存器的可尋址性的裝置)」的專利申請中,描述了一種滿足以上列出的四個目標的新穎的間接尋址機制。該機制使用基本寄存器名稱組和擴展寄存器名稱組之間的映射。在PowerPCTM架構的情況下,基本名稱組是在現有架構中的一組名稱,即,0-31,而擴展名稱組由可在擴展版本的架構中實際實現的寄存器數來確定。所述映射具有以下屬性·映射包含在寄存器中。
·由軟體管理映射,即,可以由是支持間接尋址機制的擴展架構一部分的指令寫入和讀取包含映射的寄存器。
·映射可以是任意的,根據軟體如何選擇對其進行管理。
·映射與機器指令中出現的寄存器操作數具有位置關聯。
對於具有這些特性的基於映射的間接尋址機制,就如何管理映射而言應滿足一組目標,包括1.映射管理機制應支持一定程度的如何使用映射的靈活性,適於滿足以上列出的間接尋址機制的基本目標。
2.映射管理應是高效的,例如,就需要管理映射的內部循環中執行的指令數的部分而言。
3.與映射管理關聯的流水線等待時間不應負面地影響其靈活性或效率。
在此提供了滿足這些目標的面向SIMD的管理寄存器映射的方法、系統和程序產品。
根據本發明的一個方面,提供了一種管理處理器的寄存器的方法。所述方法包括提供包括一組映射的寄存器映射,所述映射組中的每個映射都包括多個映射寄存器;提供由所述處理器通過所述寄存器映射的所述映射組的映射表項來間接引用/訪問的一組實際寄存器,其中所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且其中所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的子集;以及通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述寄存器映射的所述映射組的映射表項的更新。
在其他方面,所述管理映射表項更新與所述處理器使用所述映射組的至少一些其他映射表項來間接訪問所述實際寄存器組以便處理數據同時發生。此外,所述管理映射更新可以與所述處理器使用至少一個通過所述單個更新指令更新多個映射表項的映射的至少一些其他映射表項同時發生,其中所述單個更新指令是單指令多數據指令(SIMD)指令。公開和要求保護了多種實現映射表項更新的方法。例如,所述單個更新指令可以包括「將數據從SIMD寄存器移動到映射寄存器」指令。備選地,可以採用使用關聯遞增寄存器的遞增值的「遞增映射寄存器」或採用與多個映射寄存器關聯的預遞增映射寄存器來更新映射表項。此外,可以使用「立即設置映射寄存器」指令來更新映射表項,其中所述指令本身中提供了開始所述多個映射表項的遞增初始化的初始化值。
在其他方面,提供了一種用於管理處理器的寄存器的系統。所述系統包括包含一組映射的寄存器映射,其中所述映射組中的每個映射包括多個映射寄存器;以及由所述處理器通過所述寄存器映射的所述映射組的映射表項來間接訪問的一組實際寄存器。所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且其中所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的寄存器的子集。所述系統還包括用於通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述寄存器映射的所述映射組的映射表項的更新的裝置。
在其他方面,提供了至少一個計算機可讀的、有形地包含至少一個指令程序的程序存儲設備,所述指令可由所述計算機執行以執行管理處理器的寄存器的方法,其中所述寄存器包括一組實際寄存器。所述方法包括提供一組映射,所述映射組中的每個映射包括多個映射寄存器;允許所述處理器通過所述映射組的映射表項來間接訪問所述多個實際寄存器,其中所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且其中所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的子集;以及通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述映射組的映射表項的更新。
此外,通過本發明的技術實現了其他功能和優點。在本文中詳細說明了本發明的其他實施例和方面,並且它們被看作所要求保護的發明的一部分。


在說明書結尾處的權利要求書中特別指出並明確要求保護被認為是本發明的主題。從以下結合附圖的詳細說明中,本發明的上述和其他目標、特性和優點是顯而易見的,這些附圖是圖1示出了根據本發明的一個方面的使用基於映射的間接寄存器文件訪問的處理器的方塊圖;圖2示出了根據本發明的一個方面的基於映射的間接寄存器文件訪問以便增加圖1的處理器中的寄存器可尋址性的機制的一個實施例;圖3是根據本發明的一個方面的使用基於映射的間接寄存器文件訪問的映射管理工具的處理器的另一個實施例的方塊圖;圖4是根據本發明的各方面的表示寄存器映射單元的一個實施例、示出管理映射表項的各方面,以及間接訪問目標單元中的實際寄存器組的方塊圖;圖5是根據本發明的一個方面的由寄存器映射單元使用的一組映射的圖示;圖6A示出了與例如PowerPCTM處理器的VMX單元關聯的常規128位VMX寄存器;圖6B示出了根據本發明的一個方面的包括分成8個16位半字的128位並示出了映射寄存器和VMX寄存器的通常大小的映射寄存器的一個實施例;圖7示出了根據本發明的一個方面的基於映射的間接寄存器文件訪問的其他實例;
圖8是根據本發明的一個方面的映射管理指令處理的總體流程圖;圖9是根據本發明的一個方面的「立即設置映射寄存器」指令處理的一個實施例的流程圖;圖10是根據本發明的一個方面的「從VMX移動到映射寄存器」指令處理的一個實施例的流程圖;圖11是根據本發明的一個方面的「從映射寄存器移動到VMX寄存器」指令處理的一個實施例的流程圖;圖12是根據本發明的一個方面的「遞增映射寄存器」指令處理的一個實施例的流程圖;圖13是根據本發明的一個方面的「遞增映射寄存器」指令處理的其他實施例的流程圖;以及圖14是根據本發明的一個方面的自動更新預遞增映射寄存器的預遞增映射表項的過程的一個實施例的流程圖。
具體實施例方式
本發明可以在精簡指令集計算(RISC)處理器或複雜指令集計算(CISC)處理器中實現。出於說明目的,如下所述的本發明的一個實施例在RISC處理器(例如,由紐約阿蒙克的國際商業機器公司製造的PowerPCTM系列處理器)中實現。
圖1示出了根據本發明的一個方面的實現間接寄存器文件訪問的處理器100的方塊圖。處理器100包括數據高速緩存111和指令高速緩存112,二者都連接到總線接口單元120。通過總線接口單元120將指令從存儲器(未示出)檢索到處理器100,並存儲到指令高速緩存112。通過總線接口單元120檢索的數據存儲在數據高速緩存111中。由指令單元115從指令高速緩存112根據需要取回指令,指令單元115包括指令取回器、分支預測模塊、指令排隊和調度單元。
指令單元115將適當的指令分派到執行單元,如整數單元116、加載/存儲單元117和/或浮點單元118。整數單元116對整數執行加、減、乘、除、移位或旋轉運算,從通用寄存器113檢索操作數並將結果存儲到通用寄存器113。浮點單元118執行單精度和/或雙精度乘/加運算,從浮點寄存器114檢索操作數並將結果存儲到浮點寄存器114。加載/存儲單元117根據需要將指令操作數從數據高速緩存111加載到通用寄存器113或浮點寄存器114中,並將指令結果(當可從通用寄存器113或浮點寄存器114提供時)存儲到數據高速緩存111中。
完成單元119(其包括多個重排序緩衝器)結合指令單元115操作以支持亂序指令處理。完成單元119還結合通用寄存器113和浮點寄存器114中的重命名緩衝器操作以避免特定寄存器中的指令結果的任何衝突。
根據本發明的一個方面,使用一組視在寄存器(apparent register)來增加處理器中實際寄存器組的可尋址性。在稱為視在寄存器名稱空間的空間中尋址視在寄存器,在稱為實際寄存器名稱空間的更大的空間中尋址實際寄存器。視在寄存器中的表項引用實際寄存器名稱空間中的寄存器所名稱。可由指令中使用的寄存器號直接尋址視在寄存器名稱空間。另一方面,可以通過視在寄存器中存儲的值直接(從一些指令)或間接尋址實際寄存器名稱空間。
圖2示出了根據本發明的一個方面的一組視在寄存器和一組實際寄存器。如圖所示,視在寄存器221包括多個寄存器表項。視在寄存器221中的寄存器表項的總數可以等於2到保留用於尋址寄存器的指令223內視在寄存器欄位中的位數的冪。例如,如果指令223中寄存器欄位內的位數為3,則視在寄存器221中的寄存器表項數為8;如果指令223中視在寄存器欄位內的位數為4,則視在寄存器221中的寄存器表項數為16。在圖2的實施例中,指令223中視在寄存器欄位(例如,vA欄位、vB欄位、vC欄位和vD欄位)中的位數為5,視在寄存器221中的寄存器表項數為32。在PowerPCTM處理器的上下文中,vA、vB、vC和vD欄位為向量(或VMX或Altivec)寄存器的名稱,並且本發明的一個實施例引用PowerPCTM向量寄存器。
實際寄存器222也包括多個寄存器表項。每個視在寄存器表項中的位數大到足以尋址提供的實際寄存器的數量,可能為該數字的未來增長留出空間。實際寄存器222中的寄存器總數至少等於2到視在寄存器221的寄存器表項中的位數的冪。例如,如果視在寄存器221的每個寄存器表項中的位數為5,則實際寄存器222中的寄存器總數為32;如果視在寄存器221的每個寄存器表項中的位數為6,則實際寄存器222中的寄存器總數為64。在圖2的實施例中,視在寄存器221的每個寄存器表項中的位數為7,則實際寄存器222中的寄存器總數為128。
在運算過程中,由視在寄存器221的寄存器表項中的位來選擇實際寄存器222中的寄存器,由指令(如指令223)的視在寄存器欄位中的位來選擇視在寄存器221。例如,如圖2所示,由視在寄存器221的寄存器表項23中的位來選擇實際寄存器222中的寄存器123,由指令223的視在寄存器欄位vD中的位來選擇視在寄存器221。同樣,由視在寄存器221的寄存器表項19中的位來選擇實際寄存器222中的寄存器125,由指令223的視在寄存器欄位vA中的位來選擇視在寄存器221。
指令可以包括兩種不同類型的寄存器欄位。如圖2所示,指令224包括如上所述在視在寄存器221中索引的視在寄存器vD欄位。指令224還包括標準寄存器欄位,例如rA欄位和rB欄位,用於在一組通用寄存器225中進行索引。通用寄存器225中的寄存器總數遠少於實際寄存器222中的寄存器總數。由於rA欄位和rB欄位中的位數都是5,所以通用寄存器組中的最大寄存器數限制在32。
可以以適合其中結合本發明的處理器架構的方式來設計對視在寄存器221的控制。在PowerPCTM架構中,例如,適合通過兩個或更多個寄存器來控制映射,這在以下結合圖3-14詳細說明。
本發明的寄存器重新映射可以獨立地應用於不同的寄存器組。例如,在PowerPCTM架構的上下文中,寄存器重新映射可以應用到向量寄存器和浮點寄存器,而非通用寄存器。因此,本發明提供了一種用於增加處理器中的寄存器的可尋址性的靈活裝置,並可以以兼容的方式在現有處理器架構中實現。
在上述教導的基礎上,在此還提出了面向單指令多數據(SIMD)管理映射表項以便基於映射間接引用實際寄存器文件的方法、系統和程序產品。許多現有的處理器架構都結合了單指令多數據(SIMD)擴展;例如,PowerPCTM具有VMX,Intel IA-32結合了SSE3等。因此,在此公開了一種利用特定處理器的SIMD功能以靈活高效的方式提供映射表項更新的映射管理工具。
圖3示出了根據本發明的一個方面的使用面向SIMD管理寄存器映射以便基於映射進行間接寄存器文件訪問的處理器的一個實施例。處理器仍包括數據高速緩存111、指令高速緩存112、通用寄存器113、浮點寄存器114、指令單元115、整數單元116、加載/存儲單元117、浮點單元118和完成單元119,它們連同圖1的處理器分別如上所述地工作。圖3的處理器還包括VMX單元300和關聯的VMX寄存器(VMXR)310。眾所周知,VMX單元和關聯的寄存器提供採用SIMD處理的計算能力並例如對多個數據元素並行執行公共運算。在一種實施方式中,數據元素可以是半字,每個VMX寄存器可以包括解釋為8個16位半字的128位(參見圖6A和6B)。因此,作為一個實例,在VMX中執行單個SIMD指令會導致一次執行8個運算。
在圖3的處理器中還提供了寄存器映射單元320,其示為連接到VMX寄存器310和浮點寄存器114。此實例假設包含要間接引用的實際寄存器組的大型寄存器文件是由浮點單元使用的浮點寄存器文件114。注意,如以下描述的,寄存器映射單元320和VMXR 310之間的右側箭頭代表將VMX寄存器的內容移動到映射寄存器的能力,並且反之亦然。
通過實例的方式,典型的浮點寄存器可以包括32個寄存器,而本發明的一個方面所設想的大型寄存器文件可以包括1024個寄存器。在浮點寄存器中定位大型寄存器文件只是一個實例。備選地或附加地,要間接訪問的大型寄存器文件可以是VMX寄存器文件310。但是作為一種考慮,大型寄存器文件優選地與處理器中的執行單元關聯,在所述處理器中,流水線等待時間是一個問題,其中大型寄存器文件的使用通過例如循環展開和軟體流水線操作之類的技術減輕了流水線等待時間的影響。
圖4更詳細地示出了根據本發明的一個方面的寄存器映射單元320的一個實施例。所述寄存器映射單元包括一組映射,該映射組中的每個映射都包括多個映射寄存器,所有這些映射寄存器都總的表示為映射寄存器(MR)400。在一個實例中,所述映射寄存器包含以與SIMD執行單元的寄存器(即,圖3和4的實例中的VMX寄存器310)相同的格式構造的映射表項。例如,參考圖6A,假定VMX寄存器為128位寬,每個位擁有16個單字節數據元素,8個半字數據元素,或4個全字數據元素。包含映射表項的寄存器也被選為128位寬。還假定根據擴展寄存器組的大小,編碼映射表項所需的位數大於8並小於17。然後,每個128位的映射寄存器都包含8個映射表項,每個映射表項佔據寄存器的一個半字,如圖6B所示。在該討論中,包含這些映射表項的寄存器被稱為映射寄存器400。
因此,要指出的一點是,映射寄存器的物理結構與SIMD寄存器(例如,VMX寄存器)的物理結構完全相同,即,每個映射寄存器都如圖6A所示為128位寬。第二個相關點是,映射寄存器的邏輯結構與SIMD寄存器(例如,VMX寄存器)的邏輯結構完全相同,且內容解釋為16位半字(在圖6B中示出了每個映射寄存器的邏輯結構)。映射寄存器中的每個半字都是映射表項。每個映射寄存器中包含8個映射表項。由於每個映射具有32個表項,所以每個映射有4個映射寄存器。由於有4個映射,所以總共有16個映射寄存器。維護映射寄存器與SIMD寄存器之間的物理和邏輯結構的對應的一個顯著好處是,可以使用SIMD執行單元對SIMD寄存器的內容進行算術和邏輯運算以及將SIMD寄存器的內容從存儲器往返移動的現有能力,以有效地構建與基本上任意的表項的映射。在SIMD寄存器中可以構建具有8個映射表項的組,然後將SIMD寄存器的內容移動到映射寄存器,而無需作為移動操作一部分的任何數據變換。因此,從硬體的角度,寄存器映射單元(RMU)可以相對簡單。可以使用RMU中的基本硬體執行映射表項的簡單設置(例如,在映射寄存器中設置8個連續值,或將映射寄存器中的所有8個表項遞增相同的常數)。可以使用SIMD執行單元在SIMD寄存器中設置更為複雜的映射表項組並將其移動到映射寄存器中。
圖4中示出了寄存器映射單元(RMU)中的兩個其他寄存器組。這些寄存器組包括遞增寄存器(IR)420和預遞增映射寄存器(PIMR)430,如下所述,兩者都可以用於管理映射表項。
圖4中的目標單元410是通過基於映射的間接尋址來間接訪問其寄存器文件的單元;即,圖3的實例中的浮點寄存器114。標為「T」、「A」、「B」和「C」的箭頭指示寄存器操作數的索引映射表項可從映射寄存器400提供給目標單元410。RMU 320和VMXR 310之間的箭頭指示將VMX寄存器的內容移動到映射寄存器(反之亦然)的能力,如以下進一步描述的。
如上所述,在一個實施例中,寄存器映射單元中有4組映射,每組映射有32個表項。這些映射在圖5中示出,並與在目標單元中執行的指令的指令格式中出現的寄存器操作數關聯,它們是·T映射T映射與目標操作數關聯。
·A映射A映射與指令格式中指定為「A」操作數的輸入寄存器操作數關聯。
·B映射B映射與指令格式中指定為「B」操作數的輸入寄存器操作數關聯。
·C映射C映射與指令格式中指定為「C」操作數的輸入寄存器操作數關聯。
此外,這些映射之一(例如C映射)可以與加載和存儲指令中指示目標單元的寄存器文件中的源或目標寄存器的寄存器操作數關聯。
在圖5的實例中,仍有四組映射,每組映射有32個映射表項。因為每個映射寄存器有8個半字(HW),即8個映射表項,所以有16個映射寄存器,標為m0-m15。這16個映射寄存器中的每個寄存器都是128位寄存器(如圖6A和6B所示)。另外,映射寄存器中的8個空位中的每個空位都是半字並包含一個映射表項。
將映射與寄存器操作數關聯表示可以將為操作數編碼的值(在0到31的範圍內)用作映射的索引;即,如此引用的映射表項中包含的值是要訪問的大型寄存器文件中的寄存器的索引。例如,考慮目標單元是浮點單元且浮點寄存器文件是使用間接尋址訪問的大型寄存器文件(如圖3所示),並考慮圖7中示出的指令『fadd fT,fA,fB』。在現有的PowerPCTM架構中,這執行將浮點寄存器fA中的數據元素與浮點寄存器fB中的數據元素進行浮點相加並將結果置於浮點寄存器fT中。如果將指令編碼為『fadd 1,2,3』,即,「1」編碼為用於fT操作數,「2」編碼為用於fA操作數,以及「3」編碼為用於fB操作數,則根據現有架構,從浮點寄存器文件的寄存器2和3獲得輸入值,並將結果寫入浮點寄存器文件中的寄存器1。使用間接尋址,編碼的值「1」、「2」和「3」分別用作T映射、A映射和B映射的索引。例如,假定A映射中的表項「2」包含值「17」,B映射中的表項「3」包含值「95」,T映射中的表項「1」包含值「1」,則編碼為『fadd 1,2,3』的指令從寄存器17和95獲得輸入操作數並將結果置於大型寄存器文件的寄存器6中。圖7中形象化地示出了此過程。
關於圖7應注意以下方面·在所述實例中,大型寄存器文件(例如,布置在浮點寄存器或VMX寄存器中)具有1024個寄存器。因此,擴展的寄存器名稱組至少包含0到1023,並且最少需要10個位來編碼每個映射表項。
·因為所述實例中的指令只有3個寄存器操作數,所以未使用C映射。
·映射表項是可以使用其配置映射的任意性的實例。在T映射中,大多數表項指向同一物理寄存器(可能不是現實情況)。在A映射中,表項沒有模式。B映射具有8個連續的實際寄存器索引(名稱)的組。
C映射為恆等映射。
鑑於以上所述,根據本發明的一個方面,映射管理工具的某些特性包括1.包含映射表項的寄存器的結構優選地與SIMD執行單元中的寄存器(例如,VMX寄存器)具有相同的格式。例如,假定SIMD單元的寄存器為128位寬,每個寄存器包括16個單字節數據元素,8個半字數據元素,或4個全字數據元素。包含映射表項的寄存器也是128位寬。根據擴展寄存器組的大小,假定編碼映射表項所需的位數大於8並且小於17。然後,每個128位的「映射寄存器」包含8個映射表項,每個映射表項佔據寄存器中的一個半字。
2.設置、修改或讀取映射表項的操作以類似SIMD的方式進行,因為單個指令引用單個映射寄存器的內容,例如128位寄存器的寄存器中的所有8個映射表項,每個映射表項佔據半字。
3.可以使用簡單的硬體對映射寄存器的內容執行簡單的操作,包括(a)將映射表項設置為連續值(例如,將映射寄存器中的8個映射表項設置為8個以某個指定的初始化值開始的連續值);以及(b)將寄存器中的所有映射表項遞增相同的常數值。將布置所述硬體以便以最小的等待時間來執行這些操作。
4.假定映射寄存器的格式匹配SIMD寄存器(例如,VMX寄存器)的格式,則可以直接將數據從SIMD單元寄存器移動到映射寄存器中,並且反之亦然。通過這種方式,可以使用已在SIMD執行單元(例如,VMX單元)中可用的算術和邏輯功能來構建映射表項的任意組並將其移動到寄存器映射單元內的映射寄存器。備選地,可以將映射表項組從存儲器加載到SIMD單元寄存器(即,VMX寄存器)中,然後將其移動到映射寄存器。因此,專門為映射管理提供的硬體可以相對簡單。
5.通過使用「恆等映射」,可以提供對現有代碼的支持而無需重新編譯,其中映射內的每個表項包含其在映射中的索引(例如,恆等映射中的表項k包含值k)。可以提供將每個映射設置為恆等映射的指令,以便作為應用二進位接口(ABI)的一部分,高效且與現有代碼兼容地初始化映射。
圖8-14示出了根據本發明的各方面的映射管理指令處理的各種實例。映射管理指令使用處理器的通用指令格式。這種格式通常包括操作碼欄位,該欄位標識將由指令執行的功能(如浮點相加、從存儲單元加載等),還包括n個標識源數據或源數據位置的操作數,以及目標位置。在PowerPCTM的情況下,所有指令都佔據32位。操作碼至少有6位,多數情況多於6位。操作數欄位的數量和每個欄位的大小取決於指令。
圖8示出了通過從映射管理指令的適當指令欄位解碼值810來處理一般映射管理指令800。一旦獲取了操作數值,就可以使用解碼的操作數值執行指令(即,操作碼)820。如果必要,還自動遞增圖4的預遞增映射寄存器(PIMR)組中的預遞增映射表項。如上所述,映射管理指令中的指令欄位定義了指令的功能並為上述的間接寄存器文件訪問提供了映射表項引用。通常,處理器的指令單元理解(根據功能)處理器中的哪些執行單元將執行所需的功能,並且將指令傳遞到該指令單元。因此,就映射表項管理而言,將映射管理指令傳遞到映射寄存器單元以便執行。
在一個實例中,只要出現映射寄存器更改或關聯的遞增寄存器值的更改,就可以更新預遞增存儲器寄存器。通過預先計算映射表項值,遞增的映射表項將可用於未來的映射管理遞增指令。注意,在此說明的預遞增映射寄存器僅為一個映射表項管理選項。在一個實例中,在映射寄存器與預遞增映射寄存器之間存在一對一的對應關係,使得根據所接收的映射管理指令,可以簡單地將預遞增映射表項的值換入映射寄存器。以下參考圖13和14更詳細地說明了該過程。
圖9示出了「立即設置映射寄存器」指令的處理實例900。初始解析指令以從指令的適當指令欄位獲取映射寄存器ID 900,並且將變量k設置為該映射寄存器ID。通過「立即設置映射寄存器」指令,在指令本身中提供了映射表項更新的初始化值。因此,處理接著從適當的指令欄位獲取立即初始化值920,並將變量i設置為此初始化值。假定指令將標識的映射寄存器(例如,參見圖6B)的8個半字初始化為8個連續的值。因此,將第一個半字(j=0,其中j=0到7)設置為來自指令的立即初始化值,而將每個後續半字依次增加值1,如等式HWj[Mk]=i+j所示。再次地,本領域中的技術人員將理解,此設置映射寄存器立即指令僅代表更新映射表項的一種方法。
圖10中描述了另一種方法,並且該方法基於上述的映射寄存器與VMX寄存器之間的物理和邏輯格式的相似性。此指令標為「從VMX寄存器移動到映射寄存器」指令1000,其被初始地處理以從指令獲取映射寄存器ID 1010。將變量k再次設置為該映射寄存器ID。接下來,從所述指令的適當指令欄位獲取VMX寄存器ID,並將該VMX寄存器ID設置為變量i 1020。然後,對於映射寄存器的每個連續半字,將該映射表項的值(HWj[Mk])設置為VMX寄存器i(HWj[Vi])中的對應半字1030。備選地,所述處理可以只是實現將標識的VMX寄存器的全部內容塊複製到標識的映射寄存器中。
圖11示出了與圖10相反的指令,其中將映射表項內容從映射寄存器移動到標識的VMX寄存器。處理該「從映射寄存器移動到VMX寄存器」指令1100始於從指令的適當指令欄位獲取映射寄存器ID 1110,並將該映射寄存器ID設置為變量k。接下來,從指令的適當指令欄位獲取VMX寄存器ID 1120,並將該值設置為變量i。然後,對於映射寄存器的每個半字(HWj[Mk]),將對應VMX寄存器半字(HWj[Vi])的內容設置為映射表項的內容。
圖12和13示出了簡單的「遞增映射寄存器」指令的備選實施例。始於圖12,初始地解析「遞增映射寄存器」指令1200以從指令的適當指令欄位獲取映射寄存器ID 1210,將其設置為變量k。此外,從關聯遞增寄存器(IR)獲取映射寄存器k的遞增值1220,並且將該遞增值設置為變量i。然後處理將標識的映射寄存器的每個連續半字(HWj[Mk])增加遞增值i1230。
在圖13的備選實施方式中,再次解析「遞增映射寄存器」指令1300以從指令的適當指令欄位獲取映射寄存器ID 1310。將該映射寄存器ID設置為變量k。然後,使用對應的預遞增映射寄存器k(PIMk),並只是將相應的半字映射表項從預遞增映射寄存器(HWj[PIMk])複製到標識的映射寄存器的對應半字(HWj[Mk])1320。
圖14示出了用於自動更新預遞增映射表項的過程的一個實施例。此更新預遞增映射表項(如果必要)過程1400始於查詢是否出現了映射寄存器的指令更新1410。如果「是」,則假定映射寄存器k已更新1420,並且變量i設置為等於映射寄存器k的當前遞增值1430。如果「否」,則過程查詢是否出現了遞增寄存器的指令更新1460。如果「是」,則假定映射寄存器k的遞增已更新1470,並且變量i設置為等於映射寄存器k的當前遞增值1430。仍如圖4所示,映射寄存器k的當前遞增值保存在遞增寄存器(IR)420中。然後,對於每個半字j=0到7,將映射寄存器k的當前表項(HWj[Mk])遞增值i(HWj[Mk]+i),並且將結果置於預遞增映射寄存器k的半字j中1440。注意此處(及上文)中,HWj[PIMk]指預遞增映射寄存器k中的第j個半字。一旦更新了預遞增映射寄存器,或如果對兩個查詢的回答都是「否」,則過程結束1450。
假定剛執行的指令未更新寄存器1410,則過程判定之前執行的指令是否更新了遞增寄存器1460。如果「否」,過程結束1450。否則,過程確定更新的遞增寄存器是針對映射寄存器k 1470,並繼續如上所述地更新對應的預遞增映射表項。
從上述討論中,本領域的技術人員將認識到,在此提供了一種用於管理映射寄存器的映射表項以便進行基於映射的間接寄存器引用的靈活工具。該映射表項管理工具和本文所述的寄存器映射單元支持(在一個實施例中)以下映射管理功能·使用「設置映射寄存器」指令將映射寄存器初始化為一系列連續的值。由於如上所示每個映射寄存器具有8個映射表項,所以該操作可以將這8個映射表項初始化為一系列的8個連續值。在一個實施例中,可以在「立即設置映射寄存器」指令的立即欄位中提供起始值,以便將指令的等待時間保持在一個周期(即,初始化的映射寄存器可用於緊接其中發出「立即設置映射寄存器」指令的周期之後的周期中發出的指令)。
·使用「遞增映射寄存器」指令將映射寄存器中的表項遞增一個常數。從與映射寄存器關聯的對應遞增寄存器(IR)獲取遞增,且將映射寄存器中的每個表項遞增相同的遞增值。注意,每個映射寄存器有一個遞增寄存器。還注意的是,在一個實施例中,與操作關聯的等待時間可以保持在一個周期(即,遞增的映射寄存器可用於緊接其中發出「遞增映射寄存器」指令的周期之後的周期中發出的指令)。為此,將預遞增映射寄存器(PIMR)包括在寄存器映射單元中,每個映射寄存器有一個預遞增映射寄存器。預遞增映射寄存器中的每個表項的值等於對應映射寄存器中的對應表項的當前值,所述每個表項的值遞增對應遞增寄存器中的當前值。執行「遞增映射寄存器」指令導致從對應的預遞增映射寄存器加載目標映射寄存器(即,在圖4中的RMU底部處的箭頭);同時,它導致將目標映射寄存器中的新值遞增對應遞增寄存器中的當前值,並將其加載到對應的預遞增映射寄存器(即,在圖4中的RMU頂部處的箭頭)。任何對映射寄存器內容的更改(例如,通過「立即設置映射寄存器」指令或「移動到映射寄存器」指令)都會導致將來自新映射寄存器內容的遞增值放置到對應的預遞增映射寄存器中。
·使用「往返移動到映射寄存器」指令(通過例如圖4中的寄存器之間的「移動」路線)將VMX寄存器的內容移動到映射寄存器或反之亦然。可以使用具有C映射的間接尋址來訪問是指令的源或目標的VMX寄存器。就如何間接訪問目標單元中的寄存器而言,「移動到映射寄存器」操作提供了完全的靈活性。可以使用VMX單元的算術、邏輯和變換功能在VMX寄存器中創建映射,或者可以從存儲器將它們加載到VMX寄存器;並且可以根據需要將它們移動到映射寄存器。由於寄存器文件到寄存器文件的移動對這些指令來說是必要的,所以希望其等待時間大於一個周期。對這些指令來說,大概4個周期的等待時間被看作是可接受的。
此外,在一種實施方式中,在立即欄位中編碼的掩碼可用於防止映射管理指令更改由所述掩碼確定的映射寄存器中的一個或多個表項。還可以容易地提供設置遞增寄存器中的值的指令。
從上述說明中,本領域的技術人員將注意到,在此提供了一種用於管理寄存器映射以便進行大型寄存器文件的基於映射的間接寄存器文件訪問的面向SIMD的管理工具。
所述管理工具包括具有一組映射的寄存器映射單元,所述映射組的每個映射都包括多個映射寄存器。此外,提供了由處理器通過寄存器映射單元的映射組的映射表項間接訪問的一組實際寄存器。實際寄存器組中的實際寄存器的數量大於映射組中的映射表項的數量,並且映射組中的映射表項在任意給定時刻僅引用實際寄存器的子集。所述工具通過響應於執行單個更新指令而更新映射組中的至少一個映射的多個映射表項來管理對寄存器映射單元的映射組的映射表項的更新。此管理可以與處理器使用映射組的至少一些其他映射表項來間接訪問實際寄存器組以便處理數據同時發生。根據本發明的各方面,無需停止處理器或執行單元以便實現映射表項更新。此外,本發明無需強制修改給定映射中的所有表項,但仍允許從執行單個更新指令來修改多個映射表項。所述單個更新指令可以包括單指令多數據(SIMD)指令。執行SIMD指令會導致更新多個映射表項,但是少於映射組的至少一個映射的所有映射表項。
說明了各種用於指示寄存器映射單元更新映射表項的技術。例如,可以使用基於SIMD的執行單元和關聯的SIMD寄存器(例如,VMX執行單元和VMX寄存器)來在至少一個SIMD寄存器中建立多個映射表項,使用「移動」指令來將至少一個SIMD寄存器的內容傳送到至少一個映射寄存器。同樣,可以將至少一個映射寄存器的內容傳送到至少一個SIMD寄存器,因為映射寄存器和SIMD寄存器優選地具有通用的物理和邏輯格式。將映射表項從映射寄存器傳送到SIMD寄存器在捕獲處理器狀態或上下文切換期間可以是有利的。其他用於更新映射表項的技術包括使用簡單的「遞增映射寄存器」指令,該指令導致將多個連續的映射表項遞增更新期望的值,所述值例如存儲在與要更新的映射寄存器關聯的遞增寄存器中。作為一種擴展,可以使用預遞增映射寄存器來自動預先計算對現有映射寄存器值的遞增更新,並且可以使用單個更新指令來將預遞增映射表項換入對應的映射寄存器。此外,可以使用「立即設置映射寄存器」指令以使用在指令本身的欄位內提供的值對一系列映射表項進行初始化更新。通過提供多種方法來更新寄存器映射單元的映射組中的映射表項,本發明的管理工具是一種非常靈活的映射管理機制並且例如就管理映射所需的內部循環中執行的指令數的部分而言,該工具是高效的。此外,與映射管理關聯的流水線等待時間對其靈活性或效率沒有負面影響。
根據在計算機或計算機網絡上執行的程序過程討論了以上提供的詳細說明。本領域的技術人員使用這些過程說明來將其工作的實質最有效地傳達給本領域的其他技術人員。它們可以在硬體或軟體或兩者的組合中實現。
過程在此通常被認為是導致期望結果的一系列步驟。這些步驟是需要對物理量進行物理操縱的步驟。通常,儘管並非一定如此,這些量採取能夠被存儲、傳輸、組合、比較以及以其他方式操縱的電或磁信號的形式。有時,主要是出於經常使用的原因,將這些信號稱為位、值、元素、符號、字符、術語、數字、對象、屬性等是方便的。但是應指出,所有這些術語和類似術語都與適當的物理量關聯,並只是應用於這些物理量的方便的標記。
此外,執行的操縱通常涉及術語(例如加或比較),這些術語一般與人工操作員進行的智力運算關聯。在形成本發明一部分的在此描述的任何操作中,這種人工操作員的能力是不必要的,或在多數情況下不需要;這些操作為機器運算。執行本發明的運算的有用的機器包括通用數字計算機或類似設備。
所述方法的每個步驟可以在任何通用計算機(例如大型機、個人計算機等)上執行,並與從任何程式語言(例如,C++、Java、Fortran等)生成的一個或多個程序模塊或對象或其一部分相一致。此外,每個步驟,或實現每個步驟的文件或對象等,可以由專用硬體或專用電路模塊來執行。
本發明優選地以高級過程或面向對象的程式語言實現以便與計算機通信。但是,如果需要,可以以彙編或機器語言來實現本發明。在任何情況下,語言可以是編譯的或解釋的語言。
本發明可以實現為包括記錄介質的機構或電腦程式產品。此類機構或電腦程式產品可以包括,但不限於,CD-ROM、軟盤、磁帶、硬碟驅動器、計算機RAM或ROM和/或電、磁、光、生物或程序的其他類似體現。實際上,所述機構或電腦程式產品可以包括任何固體或液體傳輸介質、磁或光等,用於存儲或傳送可由機器讀取的信號,以便根據本發明的方法控制通用或專用可編程計算機的操作和/或根據本發明的系統構造其組件。
本發明也可以以系統實現。系統可以包括計算機,所述計算機包括處理器和存儲器設備並可選地包括存儲設備、諸如視頻顯示的輸出設備和/或諸如鍵盤或計算機滑鼠的輸入設備。此外,系統可以包括計算機的網際網路。計算機可以是獨立的形式(例如傳統的臺式個人計算機)或集成到其他裝置(例如,電子測試裝置)。可以出於所需目的特別構建所述系統以執行例如本發明的方法步驟,或所述系統可以包括一個或多個通用計算機,由根據存儲在計算機(多個)中的此處教導的電腦程式有選擇地激活或重新配置所述通用計算機。此處提出的過程並不內在地與特定計算機系統或其他裝置相關。從給出的說明可以產生這些系統中的多種系統所需的結構。
再次地,本發明的一個或多個方面的功能可以在軟體、固件、硬體或它們的某些組合中實現。
本發明的一個或多個方面可以包括在一件製品(例如,一個或多個電腦程式產品)中,所述製品具有例如計算機可用介質。所述介質其中具有例如計算機可讀程序代碼裝置或邏輯(例如,指令、代碼、命令等)來提供和促進本發明的功能。所述製品可以包括為計算機系統的一部分或單獨出售。
此外,可以提供至少一個機器可讀的程序存儲設備,所述程序存儲設備包含至少一個可由機器執行的指令程序以便執行本發明的功能。
本文描述的流程圖只是實例。在不偏離本發明的精神的情況下,其中說明的這些程序或步驟(或操作)存在許多變型。例如,可以以不同的順序執行這些步驟,或添加、刪除或修改步驟。所有這些變型都被看作要求保護的發明的一部分。
儘管在此詳細示出和說明了優選實施例,但是對本領域的技術人員顯而易見的是,在不偏離本發明的精神的情況下,可以做出各種修改、添加、替換等,因此,這些被認為是在如以下權利要求限定的本發明的範圍之內。
權利要求
1.一種管理處理器的寄存器的方法,所述方法包括提供包括一組映射的寄存器映射,所述映射組中的每個映射都包括多個映射寄存器;提供由所述處理器通過所述寄存器映射的所述映射組的映射表項來間接訪問的一組實際寄存器,其中所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且其中所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的子集;以及通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述寄存器映射的所述映射組的映射表項的更新。
2.如權利要求1中所述的方法,其中所述管理與所述處理器使用所述映射組的至少一些其他映射表項來間接訪問所述實際寄存器組以便處理數據同時發生。
3.如權利要求2中所述的方法,其中所述管理還與所述處理器使用至少一個通過所述單個更新指令更新多個映射表項的映射的至少一些其他映射表項同時發生,並且其中所述單個更新指令包括單指令多數據指令。
4.如權利要求1中所述的方法,其中通過所述單個更新指令更新的所述多個映射表項少於所述映射組的所述至少一個映射的所有映射表項。
5.如權利要求1中所述的方法,其中所述處理器還包括基於單指令多數據的執行單元和關聯的單指令多數據寄存器,並且其中所述管理還包括使用所述處理器的所述基於單指令多數據的執行單元和關聯的單指令多數據寄存器來在至少一個單指令多數據寄存器中建立多個映射表項更新,並且其中所述管理還包括使用所述單個更新指令來將所述多個映射表項更新從所述至少一個單指令多數據寄存器移動到所述至少一個映射的至少一個映射寄存器,其中所述多個映射寄存器與所述單指令多數據寄存器具有相同的位大小和邏輯結構,並且所述單個更新指令是「將數據從單指令多數據寄存器移動到映射寄存器」指令。
6.如權利要求5中所述的方法,其中將所述多個映射表項更新從所述至少一個單指令多數據寄存器移動到所述至少一個映射寄存器是從所述至少一個單指令多數據寄存器到所述寄存器映射的所述至少一個映射寄存器直接發生,而不使用所述處理器的加載/存儲單元。
7.如權利要求5中所述的方法,其中所述管理還包括響應於單獨的單個移動指令,將所述寄存器映射的所述映射組的至少一個映射的多個映射表項移動到與所述單指令多數據執行單元關聯的單指令多數據寄存器中的至少一個單指令多數據寄存器,其中所述單獨的單個移動指令是「將數據從映射寄存器移動到單指令多數據寄存器」指令。
8.如權利要求1中所述的方法,其中提供所述寄存器映射還包括為所述寄存器映射提供多個遞增寄存器,每個遞增寄存器與所述多個映射寄存器中的相應映射寄存器關聯,並且其中所述管理包括響應於所述單個更新指令,使用所述多個遞增寄存器中的至少一個遞增寄存器來更新所述映射組的所述至少一個映射的多個映射表項,其中所述單個更新指令包括「遞增映射寄存器」指令。
9.如權利要求8中所述的方法,其中提供所述寄存器映射還包括為所述寄存器映射提供多個預遞增映射寄存器,每個預遞增映射寄存器與所述多個映射寄存器中的相應映射寄存器關聯,並且其中所述管理還包括使用所述單個更新指令,將預遞增映射表項從至少一個預遞增映射寄存器移動到所述至少一個映射的至少一個映射寄存器。
10.如權利要求9中所述的方法,還包括響應於更新所述多個映射寄存器的關聯映射寄存器或所述多個遞增寄存器的關聯遞增寄存器的映射表項,自動地確定所述多個預遞增映射寄存器中的預遞增映射寄存器的映射表項。
11.如權利要求1中所述的方法,其中所述單個更新指令包括「立即設置映射寄存器」指令,並且其中所述管理還包括從所述「立即設置映射寄存器」指令的欄位獲取初始化值並使用從所述「立即設置映射寄存器」指令獲取的所述初始化值來對所述多個映射表項進行初始化遞增更新。
12.如權利要求11中所述的方法,其中被更新的所述多個映射表項在至少一個映射寄存器中,所述至少一個映射寄存器包括多個半字,並且其中所述管理還包括使用從所述「立即設置映射寄存器」指令獲取的所述初始化值來初始化所述至少一個映射寄存器的第一半字,並分別通過將所述至少一個映射寄存器的至少一個關聯的遞增寄存器遞增1或遞增值i來更新所述映射寄存器的每個連續的半字。
13.如權利要求1中所述的方法,其中所述映射組包括目標映射和三個源映射,並且其中所述目標映射和所述三個源映射中的每個映射都包括四個映射寄存器,每個映射寄存器包括八個半字表項,且所述映射組的每個映射具有三十二個映射表項,並且其中所述單個更新指令包括四個操作數,一個操作數是目標映射標識符,並且其餘三個操作數中的至少兩個操作數是源映射標識符。
14.一種用於管理處理器的寄存器的系統,所述系統包括包含一組映射的寄存器映射,所述映射組中的每個映射包括多個映射寄存器;由所述處理器通過所述寄存器映射的所述映射組的映射表項來間接訪問的一組實際寄存器,其中所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且其中所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的子集;以及用於通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述寄存器映射的所述映射組的映射表項的更新的裝置。
15.如權利要求14中所述的系統,其中所述用於管理的裝置的操作與所述處理器使用所述映射組的至少一些其他映射表項來間接訪問所述實際寄存器組以便處理數據同時進行。
16.如權利要求15中所述的系統,其中所述用於管理的裝置的操作還與所述處理器使用至少一個通過所述單個更新指令更新多個映射表項的映射的至少一些其他映射表項同時進行,並且其中所述單個更新指令包括單指令多數據指令。
17.如權利要求14中所述的系統,其中通過所述單個更新指令更新的所述多個映射表項少於所述映射組的所述至少一個映射的所有映射表項。
18.如權利要求14中所述的系統,其中所述處理器還包括基於單指令多數據的執行單元和關聯的單指令多數據寄存器,並且其中所述用於管理的裝置還包括用於使用所述處理器的所述基於單指令多數據的執行單元和關聯的單指令多數據寄存器來在至少一個單指令多數據寄存器中建立多個映射表項更新的裝置,並且其中所述用於管理的裝置還包括用於使用所述單個更新指令來將所述多個映射表項更新從所述至少一個單指令多數據寄存器移動到所述至少一個映射的至少一個映射寄存器的裝置,其中所述多個映射寄存器與所述單指令多數據寄存器具有相同的位大小和邏輯結構,並且所述單個更新指令是「將數據從單指令多數據寄存器移動到映射寄存器」指令。
19.如權利要求18中所述的系統,其中使用所述寄存器映射來直接執行所述用於將所述多個映射表項更新從所述至少一個單指令多數據寄存器移動到所述至少一個映射寄存器的裝置,而不使用所述處理器的加載/存儲單元。
20.如權利要求18中所述的系統,其中所述用於管理的裝置還包括用於響應於單獨的單個移動指令,將所述寄存器映射的所述映射組的至少一個映射的多個映射表項移動到與所述單指令多數據執行單元關聯的單指令多數據寄存器中的至少一個單指令多數據寄存器的裝置,其中所述單獨的單個移動指令是「將數據從映射寄存器移動到單指令多數據寄存器」指令。
21.如權利要求14中所述的系統,其中所述寄存器映射還包括多個遞增寄存器,每個遞增寄存器與所述多個映射寄存器中的相應映射寄存器關聯,並且其中所述用於管理的裝置包括用於響應於所述單個更新指令,使用所述多個遞增寄存器中的至少一個遞增寄存器來更新所述映射組的所述至少一個映射的多個映射表項的裝置,其中所述單個更新指令包括「遞增映射寄存器」指令。
22.如權利要求21中所述的系統,其中所述寄存器映射還包括多個預遞增映射寄存器,每個預遞增映射寄存器與所述多個映射寄存器中的相應映射寄存器關聯,並且其中所述用於管理的裝置還包括用於使用所述單個更新指令,將預遞增映射表項從至少一個預遞增映射寄存器移動到所述至少一個映射的至少一個映射寄存器的裝置。
23.如權利要求22中所述的系統,還包括用於響應於更新所述多個映射寄存器的關聯映射寄存器或所述多個遞增寄存器的關聯遞增寄存器的映射表項,自動地確定所述多個預遞增映射寄存器中的預遞增映射寄存器的映射表項的裝置。
24.如權利要求14中所述的系統,其中所述單個更新指令包括「立即設置映射寄存器」指令,並且其中所述用於管理的裝置還包括用於從所述「立即設置映射寄存器」指令的欄位獲取初始化值並使用從所述「立即設置映射寄存器」指令獲取的所述初始化值來對所述多個映射表項進行初始化遞增更新的裝置。
25.如權利要求24中所述的系統,其中被更新的所述多個映射表項在至少一個映射寄存器中,所述至少一個映射寄存器包括多個半字,並且其中所述用於管理的裝置還包括用於使用從所述「立即設置映射寄存器」指令獲取的所述初始化值來初始化所述至少一個映射寄存器的第一半字,並分別通過將所述至少一個映射寄存器的至少一個關聯的遞增寄存器遞增1或遞增值i來更新所述映射寄存器的每個連續的半字的裝置。
26.如權利要求14中所述的系統,其中所述映射組包括目標映射和三個源映射,並且其中所述目標映射和所述三個源映射中的每個映射都包括四個映射寄存器,每個映射寄存器包括八個半字表項,且所述映射組的每個映射具有三十二個映射表項,並且其中所述單個更新指令包括四個操作數,一個操作數是目標映射標識符,並且其餘三個操作數中的至少兩個操作數是源映射標識符。
27.至少一個計算機可讀的、有形地包含至少一個指令程序的程序存儲設備,所述指令可由所述計算機執行以執行如權利要求1-13中的任一權利要求所述的方法。
全文摘要
本發明提供了一種用於管理處理器中基於映射的間接寄存器文件訪問的寄存器映射的工具。所述管理工具包括包含一組映射的寄存器映射,所述映射組中的每個映射都具有多個映射寄存器。所述處理器通過所述映射組的映射表項來間接訪問一組實際寄存器。所述實際寄存器組中的實際寄存器的數量大於所述映射組中的映射表項的數量,並且所述映射組的所述映射表項在任意給定時刻僅引用所述實際寄存器組的子集。所述工具包括通過響應於執行單個更新指令而更新所述映射組中的至少一個映射的多個映射表項來管理對所述寄存器映射的所述映射組的映射表項的更新。
文檔編號G06F15/78GK101030192SQ20071008612
公開日2007年9月5日 申請日期2007年3月1日 優先權日2006年3月2日
發明者J·H·德比, P·G·卡佩克, R·K·蒙託耶 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀