用于執(zhí)行寄存器重命名的寄存器重命名數(shù)據(jù)處理裝置和方法【專利摘要】本發(fā)明提供了一種用于數(shù)據(jù)處理的裝置和方法。處理器響應于引用邏輯寄存器的數(shù)據(jù)處理指令而執(zhí)行數(shù)據(jù)處理操作。一組物理寄存器存儲數(shù)據(jù)值,該數(shù)據(jù)值受到數(shù)據(jù)處理操作。標簽存儲器為每個物理寄存器存儲指示邏輯寄存器之一的標簽值。處理器引用標簽存儲器以執(zhí)行數(shù)據(jù)處理操作。當處理器執(zhí)行引用兩個邏輯寄存器的預定指令時,標簽值交換機執(zhí)行標簽交換以交換在標簽存儲器中的兩個標簽值,并且對于哪兩個物理寄存器被映射至兩個邏輯寄存器中的哪一個寄存器的選擇將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。標簽值交換機對于指示兩個邏輯寄存器的標簽值執(zhí)行標簽交換?!緦@f明】用于執(zhí)行寄存器重命名的寄存器重命名數(shù)據(jù)處理裝置和方法【
技術領域:
】[0001]本發(fā)明涉及執(zhí)行寄存器重命名的數(shù)據(jù)處理裝置?!?br>背景技術:
】[0002]已知的技術提供執(zhí)行數(shù)據(jù)處理指令的數(shù)據(jù)處理裝置,其中數(shù)據(jù)處理指令引用程序模型(例如,邏輯)寄存器,同時數(shù)據(jù)處理裝置本身存儲數(shù)據(jù)值,該數(shù)據(jù)值受到那些在一組物理寄存器中的數(shù)據(jù)處理操作。已知的實現(xiàn)被稱為寄存器重命名的技術,其中在程序模型寄存器和物理寄存器之間的映射是變化的和被更新的,而不是保持程序模型寄存器和物理寄存器之間的固定映射。[0003]寄存器重命名可能主要是出于與性能有關的原因而被執(zhí)行的,諸如允許并行執(zhí)行數(shù)據(jù)處理指令,例如當序列中的數(shù)據(jù)處理指令被并行執(zhí)行或至少被亂序執(zhí)行,其后寄存器重命名技術被用于維護給定程序模型寄存器的不同版本,這樣那些數(shù)據(jù)處理指令可被以這種并行或亂序的方式執(zhí)行而不發(fā)生數(shù)據(jù)冒險。盡管從寄存器重命名能夠帶來的性能收益方面來看,寄存器重命名是有利的,但在數(shù)據(jù)處理裝置中必須提供額外的硬件以允許此類寄存器重命名發(fā)生則是不利條件,這是由于其引入的成本和復雜度。這個缺點使得在相對低成本、低功率的設備中使用寄存器重命名的機會尤其被限制。[0004]寄存器重命名在安全性敏感設備的背景下也被認為是有價值的技術,這是因為此技術的方式使得攻擊者更難從外部導出關于此類數(shù)據(jù)處理裝置的內(nèi)部操作的信息(例如,通過設備功率消耗的細粒度觀察或通過侵入技術,這些技術試圖向特定寄存器引入值以觀察其對設備的操作產(chǎn)生的影響)。盡管所希望的是允許寄存器重命名的益處被應用于此類安全性敏感設備,但此類設備通常被構造為小型、低成本、低功率的設備,因此與典型的寄存器重命名技術相關聯(lián)的額外的結(jié)構需求傳統(tǒng)上限制了在此背景下應用寄存器重命名技術的機會。例如,許多已知的寄存器重命名技術需要物理寄存器的數(shù)量超過程序模型寄存器的數(shù)量以使那些寄存器重命名技術能夠運行,因此對于設備的任何特殊的設計,相比于未使用寄存器重命名所需的物理寄存器的數(shù)量,將需要更多的物理寄存器以支持寄存器重命名。在小型設備中,諸如小型安全微處理器,包含物理寄存器的寄存器文件的大小是值得注意的,并且所結(jié)果的寄存器文件大小的增加經(jīng)常阻礙許多寄存器重命名技術使用在此類設備中。[0005]文章“InstructionStreamMutationforNon-DeterministicProcessor,,,Irwin,PageandSmart,ProceedingoftheIEEEInternationalConferenceonApplication-SpecificSystem,Architectures,andProcessors(ASAP’02),2002,描述了能夠被用于防止差分功率分析(DPA)安全性攻擊的各種技術,其中所述技術之一涉及一種寄存器重命名技術(參考寄存器重新映射的文章),該技術使用“活性表”(Iivenesstable)以控制寄存器重命名。根據(jù)此技術,物理寄存器的數(shù)量不需要超過程序模型寄存器的數(shù)量,但額外指令需要被添加進指令流以產(chǎn)生維持活性表所需的信息。因此,此方法將需要對在設備上執(zhí)行的代碼進行修改,并且由于對執(zhí)行那些額外指令的需要,此類方法將對性能產(chǎn)生重大影響。[0006]因此,非常希望提供一種改進方法以允許寄存器重命名的益處被應用于數(shù)據(jù)操作裝置,特別是在小型、低成本、低功率的設備的背景下,其減少了對與許多寄存器重命名技術相關聯(lián)的額外硬件的需求?!?br/>發(fā)明內(nèi)容】[0007]從第一方面看,本發(fā)明提供了數(shù)據(jù)處理裝置,該數(shù)據(jù)處理裝置包括:[0008]處理器單元,該處理器單元被配置成響應于數(shù)據(jù)處理指令,執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理指令引用程序模型寄存器;[0009]一組物理寄存器,該一組物理寄存器被配置成存儲受到所述數(shù)據(jù)處理操作的數(shù)據(jù)值;[0010]標簽存儲單元,該標簽存儲單元被配置成對每一個物理寄存器存儲指示所述程序模型寄存器之一的標簽值,所述處理器單元被配置成引用所述標簽存儲單元以執(zhí)行所述數(shù)據(jù)處理操作,并且所述標簽存儲單元在所述程序模型寄存器和所述物理寄存器之間提供一對一映射;以及[0011]標簽值交換機,該標簽值交換機被配置成執(zhí)行標簽交換以交換在所述標簽存儲單元中的兩個標簽值,[0012]其中所述標簽值交換機被配置成當所述處理器單元執(zhí)行預定數(shù)據(jù)處理指令時,所述標簽值交換機進行所述標簽交換,[0013]其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個寄存器的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。[0014]并且所述標簽值交換機被配置成對于指示所述兩個程序模型寄存器的標簽值執(zhí)行所述標簽交換。[0015]數(shù)據(jù)處理裝置具有處理單元,該處理單元響應于數(shù)據(jù)處理指令而執(zhí)行數(shù)據(jù)操作。在這些數(shù)據(jù)處理指令引用寄存器的情況下,指令依據(jù)程序模型寄存器寫入,例如,邏輯上的或虛擬的一組寄存器。數(shù)據(jù)處理裝置具有一組物理寄存器,其中由數(shù)據(jù)處理操作進行操作的數(shù)據(jù)值在物理上被存儲。與該組物理寄存器相關聯(lián)的標簽存儲單元為每一個物理寄存器存儲標簽值,該標簽值指示哪一個程序模型寄存器映射至該物理寄存器(同樣指示了哪一個物理寄存器映射至哪一個程序模型寄存器)。在模型寄存器和物理寄存器之間存在一對一的映射。[0016]數(shù)據(jù)處理裝置還包括標簽值交換機,其被配置成交換在標簽存儲單元中的兩個標簽值,即,交換在兩個程序模型寄存器/物理模型寄存器對之間的映射。當處理器單元執(zhí)行特定類型的數(shù)據(jù)處理指令時,標簽值交換機執(zhí)行此標簽交換,此數(shù)據(jù)處理指令是組成數(shù)據(jù)處理裝置能夠執(zhí)行的數(shù)據(jù)處理指令全集的子集的一個(或更多)數(shù)據(jù)處理指令。特別地,使標簽值交換機執(zhí)行此標簽交換的預定數(shù)據(jù)處理指令是這樣的指令:對于該指令,能夠確定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于從兩個物理寄存器至那兩個程序模型寄存器的映射選擇是任意的,這是就該選擇將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響的意義而言的。舉例來說,如果數(shù)據(jù)處理指令引用程序模型寄存器A和B,這兩個寄存器將被映射至物理寄存器X和Y,數(shù)據(jù)處理指令是“預定數(shù)據(jù)處理指令”,即,如果被確定為使用映射A-X/B-Y或映射A-Y/B-X將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,則當該指令被執(zhí)行時,標簽值交換機將執(zhí)行標簽交換。在這種情況下,對于由該預定數(shù)據(jù)處理指令引用的這兩個程序模型寄存器執(zhí)行標簽交換。[0017]由于在程序模型寄存器和物理寄存器之間提供了一對一映射,與物理寄存器相關聯(lián)的標簽交換單元特別簡單。因此,與追蹤寄存器的狀態(tài)相關聯(lián)的復雜度(諸如通過對“活性表”或“自由表”的使用)在此處被避免了。此外,在程序模型寄存器和物理寄存器之間的一對一映射意味著這組物理寄存器的數(shù)量比物理寄存器的數(shù)量超過程序模型寄存器的數(shù)量的情況(該情況經(jīng)常與現(xiàn)有技術寄存器重新映射技術相關聯(lián))更小。這在小型安全微處理器的背景下尤其具有優(yōu)勢。[0018]然而,已經(jīng)通過對特定類型的數(shù)據(jù)處理指令的識別而實現(xiàn)了能夠執(zhí)行某種寄存器重命名的優(yōu)點(特別是由于在安全性敏感設備的背景下其帶來的增強的防御),,對于這些指令能夠執(zhí)行各種寄存器重命名,即上述的“標簽交換”,其中在標簽存儲單元中的兩個標簽值被簡單地交換。本發(fā)明的發(fā)明人意識到這種操作能夠被針對引用兩個程序模型寄存器的數(shù)據(jù)處理指令來執(zhí)行,并且其中哪些物理寄存器被映射至那兩個程序模型寄存器中的哪一個寄存器的選擇將不會對由數(shù)據(jù)處理操作實現(xiàn)的數(shù)據(jù)處理操作結(jié)果產(chǎn)生影響。因此,對于此類數(shù)據(jù)處理指令,標簽值交換機執(zhí)行此標簽交換,從而執(zhí)行某種寄存器重命名,并因而改進了由此數(shù)據(jù)處理裝置實現(xiàn)的數(shù)據(jù)處理操作的模糊程度。[0019]在一個實施例中,所述預定數(shù)據(jù)處理指令的執(zhí)行包括對于所述兩個程序模型寄存器中的一者的寫操作,[0020]所述處理器單元被配置成在與所述標簽值交換機執(zhí)行所述標簽交換相同的處理周期中執(zhí)行所述寫操作,[0021]并且所述處理器單元被配置成對于目標物理寄存器執(zhí)行所述寫操作,其中該目標物理寄存器將在所述標簽交換之后被映射至所述兩個程序模型寄存器中的所述一者。[0022]因此,在這個實施例中,處理器單元在發(fā)生標簽交換的同一處理周期中執(zhí)行預定數(shù)據(jù)處理指令的寫操作。認識到標簽交換將同時發(fā)生,處理器單元執(zhí)行寫操作,寫操作組成該預定數(shù)據(jù)處理操作的一部分,該預定數(shù)據(jù)處理操作關于程序模型寄存器至物理寄存器的映射,該映射將在標簽交換之后產(chǎn)生。對于實現(xiàn)預定數(shù)據(jù)處理操作的寫操作的方式的這種修改使得:盡管標簽交換被執(zhí)行,但程序模型寄存器和物理寄存器的內(nèi)容之間的對應關系能夠被保持。這對于實現(xiàn)標簽交換的所有預定數(shù)據(jù)處理指令而言可能不是必需的,但對于一些指令,例如加載多個指令(該指令將一系列存儲地址加載到與一系列程序模型寄存器相關聯(lián)的一系列物理寄存器中),這是所希望的,因為它使得這一系列操作能夠以協(xié)調(diào)的順序來執(zhí)行,其中用于第一操作的標簽交換不會對下一操作的標簽交換造成不利干擾。[0023]可能有很多原因來解釋為什么哪兩個物理寄存器被映射至兩個程序模型寄存器的選擇將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,但在一個實施例中所述預定數(shù)據(jù)處理指令的執(zhí)行導致相同的值被存儲在被映射至所述兩個程序模型寄存器的所述兩個物理寄存器中。因此,由于相同的值已被存儲在兩個物理寄存器中,所以哪一個程序模型寄存器指向哪個物理寄存器并不重要??赡苡泻芏嘣蚪忉尀槭裁聪嗤闹底罱K被存儲在兩個物理寄存器中,但在一個實施例中,所述預定數(shù)據(jù)處理指令被配置成將存儲在所述兩個物理寄存器中的第一物理寄存器中的值復制在所述兩個物理寄存器中的第二物理寄存器中,其自然導致相同的值被存儲在兩個物理寄存器中。[0024]在一個實施例中,所述預定數(shù)據(jù)處理指令的執(zhí)行導致新值被存儲在被映射至所述兩個程序模型寄存器的所述兩個物理寄存器中的每一者中,所述新值獨立于存儲在所述兩個物理寄存器中的每一者中的先前的值。新值被存儲在兩個物理寄存器中的每一者中意味著能夠自由地作出對于在兩個程序模型寄存器和兩個物理寄存器之間的映射的選擇,這是因為兩個物理寄存器的舊的內(nèi)容被簡單地覆蓋。[0025]新值被存儲在兩個物理寄存器中的每一個寄存器中,其可能會因為很多原因發(fā)生,但在一個實施例中,所述預定數(shù)據(jù)處理指令被配置成將存儲在存儲器中的至少一個值復制在所述兩個物理寄存器中。在一個實施例中,所述預定數(shù)據(jù)處理指令被配置成將存儲在存儲器中的兩個值復制在所述兩個物理寄存器中。不論是來自于存儲器的一個值被存儲在兩個物理寄存器中還是兩個值被存儲在兩個物理寄存器中,新值被存儲在兩個物理寄存器的事實意味著映射的選擇是不受約束的。[0026]應當理解的是本技術不限于通過預定數(shù)據(jù)處理指令僅僅引用兩個程序模型寄存器的例子,并且在一些實施例中,所述預定數(shù)據(jù)處理引用多個程序模型寄存器,其中哪些物理寄存器被映射至所述多個程序模型寄存器中的哪一個程序模型寄存器的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,其中所述的多個大于兩個。[0027]預定數(shù)據(jù)處理指令可能在其能夠被執(zhí)行于單一數(shù)據(jù)處理周期時相對簡單,但一些預定數(shù)據(jù)處理指令可能更加復雜并且在多個數(shù)據(jù)處理周期中執(zhí)行。在一個此類的實施例中,所述處理器單元被配置成在連續(xù)數(shù)據(jù)處理周期中執(zhí)行所述預定數(shù)據(jù)處理指令,并且所述標簽值交換機被配置成對于為所述兩個物理寄存器存儲的標簽值執(zhí)行所述標簽交換,其中所述兩個物理寄存器分別在當前數(shù)據(jù)處理周期和下一數(shù)據(jù)處理周期中運行。因此,數(shù)據(jù)處理裝置能夠利用已知這兩個物理寄存器將在這個數(shù)據(jù)處理周期和下一數(shù)據(jù)處理周期中運行的事實,并因而能夠?qū)Υ鎯Φ呐c那兩個物理寄存器相關聯(lián)的標簽值執(zhí)行標簽交換,而沒有發(fā)生數(shù)據(jù)冒險的風險。因此,在連續(xù)數(shù)據(jù)處理周期中執(zhí)行的操作能夠從執(zhí)行標簽交換的角度被聯(lián)系起來。這是有利的,例如當在任意給定數(shù)據(jù)處理周期中只能執(zhí)行一個寫操作和標簽交換的時候。[0028]在一些實施例中,所述標簽值交換機被配置成在所述標簽存儲單元中對所述兩個標簽值執(zhí)行所述標簽交換,其中所述兩個標簽值是針對相同的物理寄存器存儲的。換言之,雖然在標簽值和物理寄存器之間存在一對一映射,但這意味著被交換的這“兩個”標簽值實際上是一個并且是相同的。盡管可以看到,以這種方式對針對相同物理寄存器存儲的標簽值(即同一標簽值)應用標簽交換,將不會具有凈效果,但這種額外的“啞”寄存器重命名操作可能是有利的,這是由于其對數(shù)據(jù)處理裝置帶來更大的模糊程度。[0029]盡管標簽值交換機能夠被配置成每一次遇到此類預定數(shù)據(jù)處理指令時都執(zhí)行標簽交換,但在一些實施例中,所述數(shù)據(jù)處理裝置被配置成通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。在安全性敏感設備的背景下,選擇性抑制標簽交換(換言之,寄存器重命名操作)的能力是有利的,這是因為其帶來的對于與重命名過程相關聯(lián)的模糊程度的額外控制。[0030]對于標簽交換的選擇性抑制可以通過許多方式被控制,不論是基于內(nèi)部的還是外部的激勵;但在一個實施例中,所述數(shù)據(jù)處理裝置被配置成動態(tài)地通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。例如,標簽交換能夠簡單地在某些操作條件下被關閉,對于某些時段被關閉,在某些操作模式下被關閉,等等。因此,在數(shù)據(jù)處理裝置執(zhí)行其自身的數(shù)據(jù)處理操作的同時,在正在進行的基礎上通過允許對執(zhí)行標簽交換進行選擇性的抑制,能夠針對攻擊有更高水平的防御,其中這些攻擊試圖監(jiān)視設備隨著時間的功耗。[0031]在一個實施例中,所述數(shù)據(jù)處理裝置被配置成隨機(例如,偽隨機)地通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。對抑制引入此類隨機性對于在安全環(huán)境中采用本技術的情況尤其有利,這是由于針對攻擊有更高水平的防御,其中,這些攻擊試圖在統(tǒng)計觀察的基礎上獲得與已執(zhí)行的數(shù)據(jù)處理操作有關的信息。抑制的隨機性破壞了這種統(tǒng)計觀察。[0032]當特定類型的寄存器被預定數(shù)據(jù)處理指令引用時,抑制標簽交換的執(zhí)行可能也是有利的。例如在一個實施例中,所述數(shù)據(jù)處理裝置被配置成對所述標簽值交換機執(zhí)行涉及程序計數(shù)器寄存器的所述標簽交換進行選擇性的抑制。在另一實施例中,所述數(shù)據(jù)處理裝置被配置成對所述標簽值交換機執(zhí)行涉及堆棧指針寄存器的所述標簽交換進行選擇性的抑制。盡管一些實施例可以允許對于程序計數(shù)器寄存器或堆棧指針寄存器發(fā)生標簽交換,但對于這些類型的寄存器的標簽交換的抑制能夠為數(shù)據(jù)處理裝置帶來結(jié)構的簡單性。[0033]從第二方面看,本發(fā)明提供了數(shù)據(jù)處理裝置,數(shù)據(jù)處理裝置包括:[0034]處理器裝置,該處理器裝置響應于數(shù)據(jù)處理指令執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理指令引用程序模型寄存器裝置;[0035]物理寄存器裝置,該物理寄存器裝置用于存儲受到所述數(shù)據(jù)處理操作的標簽值;[0036]標簽存儲裝置,該標簽存儲裝置用于為每一個物理寄存器裝置存儲指示所述程序模型寄存器裝置之一的標簽值,所述處理器裝置引用所述標簽存儲裝置以執(zhí)行所述數(shù)據(jù)處理操作,并且所述標簽存儲裝置在所述程序模型寄存器裝置和所述物理寄存器裝置之間提供一對一映射;以及[0037]標簽值交換裝置,該標簽值裝置用于執(zhí)行標簽交換以在所述標簽存儲裝置中交換兩個標簽值,[0038]所述標簽值交換裝置用于在所述處理器裝置執(zhí)行預定數(shù)據(jù)處理指令時執(zhí)行所述標簽父換,[0039]其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,[0040]并且所述標簽值交換裝置用于對指示所述兩個程序模型寄存器的標簽值執(zhí)行所述標簽交換。[0041]從第三方面看,本發(fā)明提供了數(shù)據(jù)處理方法,數(shù)據(jù)處理方法包括:[0042]響應于數(shù)據(jù)處理指令,執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理指令引用程序模型寄存器;[0043]在一組物理寄存器中存儲數(shù)據(jù)值,其中該數(shù)據(jù)值受到所述數(shù)據(jù)處理操作;[0044]在標簽存儲單元中,為每一個物理寄存器存儲指示所述程序模型寄存器之一的標簽值,并且引用所述標簽存儲單元以執(zhí)行所述數(shù)據(jù)處理操作,并且在所述標簽存儲單元中在所述程序模型寄存器和所述物理寄存器之間提供一對一映射;并且[0045]執(zhí)行標簽交換以交換在所述標簽存儲單元中兩個標簽值,[0046]其中當預定數(shù)據(jù)處理指令被執(zhí)行時,所述標簽交換被執(zhí)行,[0047]其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生任何影響,[0048]并且對指示所述兩個程序模型寄存器的標簽值執(zhí)行所述標簽交換?!緦@綀D】【附圖說明】[0049]本發(fā)明將僅通過示例的方式,參考實施例而被進一步描述,其中實施例在附圖中被示出,其中:[0050]圖1示意性地示出了根據(jù)一個實施例的數(shù)據(jù)處理裝置和存儲器;[0051]圖2A通過硬件描述語言示出了在一個實施例中的標簽存儲單元的內(nèi)容的初始化可怎樣被實現(xiàn);[0052]圖2B示意性地通過硬件描述語言示出了在一個實施例中在標簽存儲單元中的查找過程可怎樣被實現(xiàn);[0053]圖3A和圖3B示意性地通過硬件描述語言示出了在一個實施例中ADD和MOV指令可怎樣分別被執(zhí)行;[0054]圖4示意性地示出了在一個實施例中的一些結(jié)構組件,該結(jié)構組件可被提供以實現(xiàn)MOV指令;[0055]圖5示意性地示出了在一個實施例中示例MOV指令的實現(xiàn)的更多細節(jié);[0056]圖6A示意性地通過硬件描述語言示出了在一個實施例中兩個具體類型的寄存器的示例,其中標簽交換被抑制;[0057]圖6B示意性地通過硬件描述語言示出了在一個實施例中LDM指令可以是如何被執(zhí)行的;[0058]圖7A、圖7B和圖7C示意性地示出了在一個實施例中可被用于實現(xiàn)某些特征的示例硬件描述語言;以及[0059]圖8示意性地示出了在一個實施例中可被執(zhí)行的一系列步驟?!揪唧w實施方式】[0060]圖1示意性地示出了根據(jù)一個實施例的數(shù)據(jù)處理裝置。將認識到,數(shù)據(jù)處理裝置10在此僅從較高層次的示意圖的角度出于討論本文所提出的技術的目的被示出,并且本領域技術人員將熟悉此類被典型實施的數(shù)據(jù)處理裝置的許多其他組件,但本文為了圖示和討論的清晰予以省略。數(shù)據(jù)處理裝置10包括處理器單元12,該處理器單元12被配置成響應于一系列的數(shù)據(jù)處理指令而執(zhí)行數(shù)據(jù)處理操作。這些數(shù)據(jù)處理指令通常將被存儲于存儲器14中,其中數(shù)據(jù)處理裝置10通過加載存儲單元(LSU)16訪問存儲器14。處理器單元12響應于數(shù)據(jù)處理指令通過訪問(讀取和存儲)保存在一組物理寄存器18中的數(shù)據(jù)值來執(zhí)行數(shù)據(jù)處理操作。處理器單元I2不直接引用物理寄存器,而是引用一組虛擬程序模型寄存器。數(shù)據(jù)處理指令被編寫引用這些程序模型寄存器。物理寄存器和程序模型寄存器之間的對應由標簽存儲單元20的內(nèi)容定義,其中標簽存儲單元20保存與指示了程序模型寄存器之一的每一個物理寄存器相關聯(lián)的標簽值。物理寄存器和程序模型寄存器之間的映射是一對一的,即,每一個物理寄存器僅由一個程序模型寄存器引用,并且每一個程序模型寄存器僅引用一個物理寄存器。程序模型寄存器和物理寄存器之間的翻譯由處理器單元12通過查找單元22來管理,其中查找單元22被配置成在標簽存儲單元20中執(zhí)行查找操作以確定哪一個物理寄存器與給定程序模型寄存器相關聯(lián)。因此,處理器單元12能夠向查找單元22傳遞指示程序模型寄存器的值,查找單元22其后能夠指示(例如通過索引的方式)哪一個物理寄存器對應于該程序模型寄存器。這個查找過程將在下文中參照圖2B被詳細描述。其后處理器單元12能夠向適當?shù)奈锢砑拇嫫髯x取或者寫入,其中該適當?shù)奈锢砑拇嫫鲗谄洚斍跋ML問的程序模型寄存器。[0061]數(shù)據(jù)處理裝置10還包括標簽交換單元24(“標簽值交換機”),其被配置成執(zhí)行標簽交換以交換在標簽存儲單兀20中的兩個標簽值。標簽交換機24在控制單兀26的控制下運行,其中控制單元26確定該標簽交換何時應當發(fā)生以及對于哪兩個標簽值發(fā)生。特別地,當處理器單元12執(zhí)行特定類型的數(shù)據(jù)處理指令時,控制單元26指示標簽交換單元24執(zhí)行標簽交換??刂茊卧?6對這種特定類型的數(shù)據(jù)處理指令的識別在圖1中示意性地通過從LSU16到控制單元26的路徑被示出,但是需要認識到該信息可有許多來源,例如來自解碼單元,該解碼單元接收來自于LSU的加載指令,并且將這些指令解碼為合適的控制信號以用于數(shù)據(jù)處理裝置中。執(zhí)行標簽交換所針對的數(shù)據(jù)處理指令是那些引用兩個程序模型寄存器的指令,并且應當理解,對于哪兩個物理寄存器被映射至這兩個程序模型寄存器中的哪一個程序模型寄存器的選擇將不會對數(shù)據(jù)處理裝置的數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。這類指令的示例將在下文中被詳細討論。[0062]此外,即使特定類型的數(shù)據(jù)處理指令之一正通過處理器單元12被執(zhí)行,控制單元26也能夠通過標簽值交換機24抑制標簽交換的執(zhí)行。這種對標簽交換的執(zhí)行的控制在安全性敏感數(shù)據(jù)處理裝置的情況下尤其具有益處,這是因為它給予了數(shù)據(jù)處理裝置額外的控制參數(shù),通過該參數(shù),自身的功率簽名能夠被改變,并且物理寄存器18的使用能夠被進一步隱藏。控制單元26能夠通過很多方式抑制標簽交換的執(zhí)行,例如當數(shù)據(jù)處理裝置在特定的操作模式下,不需要通過本技術提供的增強的安全性。數(shù)據(jù)處理裝置10還可以包括偽隨機數(shù)發(fā)生器28,其被配置成向標簽交換單元24提供使能信號以使標簽交換將僅當使能信號被提供時才被執(zhí)行。因此,當應用此技術的預定類型的數(shù)據(jù)處理指令由處理器單元12執(zhí)行時,標簽交換可被偽隨機地應用于標簽單元20。這將進一步幫助隱藏由數(shù)據(jù)處理裝置執(zhí)行的數(shù)據(jù)處理操作。[0063]在程序模型寄存器和物理寄存器之間的映射是一對一的。為了初始化該設置,可執(zhí)行諸如在圖2A中從硬件描述語言的角度示出的初始化函數(shù)INITIALIZE的過程。該函數(shù)造成標簽單元20的內(nèi)容直接對應于每一個條目的索引(從O到物理寄存器的數(shù)目NUM_REGS)。[0064]由查找單元22執(zhí)行的查找過程通過在圖2B中從硬件描述語言的角度示出的查找函數(shù)LOOKUP被示例性闡明。程序模型寄存器的名稱(即,編號)RegName被傳遞給該函數(shù),該名稱是所映射的物理寄存器查找的名稱。函數(shù)通過標簽單元20的索引循環(huán),并且返回RegName被找到處的索引。因此,處理器單元12能夠通過查找函數(shù),通過引用程序模型寄存器來對物理寄存器18的內(nèi)容執(zhí)行數(shù)據(jù)處理操作。[0065]圖3A示出了查找函數(shù)如何合并到數(shù)據(jù)處理指令的實現(xiàn)中,其中該數(shù)據(jù)處理指令并非那些執(zhí)行標簽交換所針對的指令。在此示例中,考慮ADD指令。在這份說明書中,給定的示例指令構成了ARM指令集的一部分,該ARM指令集由ARMLimited,Cambridge,UK提供,但本發(fā)明并不限于這些指令。在這個程序模型語法中,引用了寄存器RcURn和Rm,該語法使得寄存器Rn和Rm的“內(nèi)容”被加在一起并存儲在寄存器Rd中。因此,查找函數(shù)被用來將Rn和Rm翻譯成通過引用標簽單元20給定的物理寄存器中的相應的索引,其后這些索引被用于函數(shù)REG[index]中,該函數(shù)訪問物理寄存器18。因此,對應于程序模型寄存器Rn的物理寄存器的內(nèi)容被加至對應于程序模型寄存器Rm的物理寄存器的內(nèi)容,并且該總和被存儲在對應于程序模型寄存器Rd的物理寄存器中。此ADD指令的實現(xiàn)方式中在程序模型寄存器和物理模型寄存器之間的分配沒有靈活性,并因此其不構成應用本技術的標簽交換的預定的數(shù)據(jù)處理指令之一。注意,對此指令不執(zhí)行任何寄存器重命名是與傳統(tǒng)重命名方案相反的,在傳統(tǒng)重命名方案中,對Rd的寫入通常將在標記方案中引起Rd通過新的分配而被分配至新的物理寄存器處。然而新物理寄存器的分配需要額外的硬件和復雜度,而這里并未執(zhí)行(目的在于提供低成本、低功率的數(shù)據(jù)處理裝置)。[0066]相比之下,標簽交換能被用于如圖3B中的硬件描述語言所示出的MOV指令的情況中。在此示例中,與程序模型寄存器Rn相關聯(lián)的物理寄存器的內(nèi)容被復制在與程序模型寄存器Rd相關聯(lián)的物理寄存器中。由于Rd和Rn(或更精確地,它們對應的物理寄存器)在完成了該操作之后將包含相同數(shù)值,此指令被認為是應用本標簽交換技術的預定數(shù)據(jù)處理指令。因此,圖3B中所示的MOV指令的實現(xiàn)方式(其全部三行指令在一個周期中完成)將通過查找程序模型寄存器Rn找到的物理寄存器的內(nèi)容分別復制在通過查找程序模型寄存器Rd找到的物理寄存器中。同時在標簽單元20中的對應于Rn和Rd的條目通過標簽交換單元24被交換。這將不會對由已執(zhí)行該指令的數(shù)據(jù)處理裝置執(zhí)行的數(shù)據(jù)處理操作的結(jié)果產(chǎn)生可察覺的影響,但交換標簽對于試圖向外部攻擊者隱藏數(shù)據(jù)處理裝置正在執(zhí)行什么樣的數(shù)據(jù)處理操作是有利的。[0067]圖4示意性地示出了關于圖3B中討論的MOV指令的簡單“電路式”實現(xiàn)。為了圖示的簡單起見,僅將兩個物理寄存器40和42分別與它們相關聯(lián)的標簽單元條目44和46一起示出。因此,在此簡化示例中,僅有兩個可能的物理寄存器,也被稱為“I”和“2”,能夠被程序模型寄存器引用。源寄存器Rn通過比較器48和50與標簽條目44和46的內(nèi)容進行比較,其中比較器48和50確定通過此程序模型寄存器映射至第一寄存器還是第二寄存器(即,寄存器40還是寄存器42)。比較器48和50的輸出向復用器54提供操縱輸入(可能通過某種類型的翻譯邏輯52,其能夠適當?shù)馗袷交盘?。因此選擇的存儲于寄存器40和42之一的值通過復用器54傳遞至處理邏輯56。在這個MOV指令的簡單示例中,內(nèi)容值被簡單地復制并且實際上在處理邏輯56中不需要對此數(shù)值執(zhí)行處理。其后該數(shù)值被傳送回物理寄存器40和42。去往寄存器40和42的寫入使能信號選擇通過此操作所要寫入的寄存器之一。程序模型目的寄存器Rd通過比較器58和60與標簽條目44和46的內(nèi)容進行比較以確定物理寄存器40和42中的哪一個對應于程序模型寄存器Rd。因此,從物理寄存器40和42之一讀出的內(nèi)容值從而被寫入物理寄存器40和42之一。盡管在邏輯上內(nèi)容值可被寫入與其讀出的寄存器相同的寄存器(即,Rd=Rn),但在MOV指令更加常見的用途中,一個物理寄存器(例如,40)的內(nèi)容被寫入另一個物理寄存器(例如,42)中。然而,在安全性敏感的數(shù)據(jù)處理裝置的情況下,使用諸如將物理寄存器的內(nèi)容移動回其自身的啞指令(du_yinstruction)的確可能發(fā)生,作為各種技術的一部分,隱藏正在被執(zhí)行的數(shù)據(jù)處理操作。[0068]圖5示例性地示出了將本技術應用于MOV指令的具體示例。此處由程序模型寄存器R6映射至物理寄存器的內(nèi)容應使其數(shù)值等于存儲在由程序模型寄存器R4映射的物理寄存器中的內(nèi)容。因此,所示的硬件描述語言直接對應于圖3B中所示出的,其中Rd=R6并且Rn=R4。圖5的下半部分示出了示例性的一組標簽和寄存器條目在該MOV指令執(zhí)行前后的內(nèi)容。因此,在示出的示例中,MOVR6,R4引起REG[O]的內(nèi)容被復制在REG[2]中。因此0x1234被OxBEEF覆蓋。此外,由于該MOV指令引用兩個程序模型寄存器(S卩,R6和R4),對這些程序模型寄存器中的哪一個映射至兩個物理寄存器中的哪一個(即,REG[O]還是REG[2])的選擇將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。標簽值交換機交換對應于R6和R4的標簽條目。因此,在REG[O]中的值保持不變,但從與R4相關聯(lián)重命名為與R6相關聯(lián),并且所寫的原本以R6為目標的值實際上已經(jīng)被放置在當前被映射至R4的寄存器中。因此,隨后的操作將對R6使用索引O并且對R4使用索引2。[0069]上述寄存器重命名(即,標簽交換)原則上能夠被應用于任何引用兩個程序模型寄存器的指令,并且對此兩個物理寄存器中的哪一個被映射至兩個程序模型寄存器中的哪一個的選擇是自由的,而圖6A示出了一種實現(xiàn)方式,其中,當保存程序計數(shù)器的寄存器或保持堆棧指針的寄存器被引用時,標簽交換被抑制。因此,在圖6A中的第一個示例中,被映射至Rn的物理寄存器的內(nèi)容被復制在程序計數(shù)器寄存器中,沒有任何標簽交換發(fā)生;并且在圖6A中的第二個示例中,堆棧指針被復制在映射至程序模型寄存器Rd的物理寄存器中,沒有任何標簽交換發(fā)生。對于這些特定的寄存器抑制標簽交換簡化了數(shù)據(jù)處理裝置的結(jié)構,因為程序計數(shù)器和堆棧指針在數(shù)據(jù)處理裝置的整個操作中實際上具有固定的映射,并且因此可以更加容易地被硬連接到數(shù)據(jù)處理裝置的結(jié)構特征中。[0070]除了寄存器被復制的例子(如上述關于圖3B、圖4和圖5的MOV指令的討論)之外,其他例子也存在,其中數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至那兩個程序模型寄存器中的哪一個的選擇將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。一個此類的例子是圖6B中示出的加載多個(LDM)指令。圖6B中的LDM指令使用映射至程序模型寄存器Rn的物理寄存器的內(nèi)容作為起始存儲器地址,存儲器值參考該起始存儲器地址而被復制在目標寄存器Rtl、Rt2和Rt3中。通常,其實現(xiàn)方式為:存儲器地址Rn處的值被復制在RtI中,存儲器地址Rn+4處的值被復制在Rt2中以及存儲器地址Rn+8處的值被復制在Rt3中。由于所有三個目標寄存器Rt1、Rt2和Rt3將具有從存儲器存儲在其中的新值,所對應的三個物理寄存器怎樣被映射至這三個程序模型寄存器的選擇就其將不對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響而言是任意的。因此,在本申請中想到了被引用的、還未被加載的任意兩個寄存器的標簽可被交換。標簽交換機被配置成每一個周期執(zhí)行一個標簽交換,并且因此,被引用的、還未被加載的任意兩個寄存器的標簽可在每一個周期的基礎上被交換。在圖6B中示出的實現(xiàn)方式對當前在給定周期中被加載的寄存器和在下一周期中要被加載的寄存器交換標簽。因此,如圖6B中所示出的,不是在相繼的周期中先加載RtI,其后加載Rt2,然后加載Rt3,而是Rt2首先被加載,其后Rt2和RtI的標簽被交換。然后在下一周期中Rt3被加載,并且Rt2和Rt3的標簽被交換。在最后的周期中,Rt3被加載。凈效果是Rt3的新標簽(和存儲)是RtI的舊標簽(和存儲);Rt2的新標簽(和存儲)是Rt3的舊標簽(和存儲),RtI的新標簽(和存儲)是Rt2的舊標簽(和存儲)。[0071]在若干周期中執(zhí)行的并且可應用本技術的指令的另一示例是長乘法指令。與上文針對LDM指令討論的情形類似的每周期進行標簽交換的分階段實現(xiàn)方式能夠被應用于長乘法指令。[0072]如上文所述,在每一個周期中,僅需要一個標簽交換,并且該標簽交換能夠被簡單地通過如圖7A中所示的硬件描述語言所說明的來實現(xiàn),其中alpha和beta是兩個要被交換的結(jié)構寄存器的LOOKUP。[0073]對物理寄存器寫入能夠通過諸如圖7B中所述的硬件被實現(xiàn),其中將被寫入的值(“值”)被寫入具有與標簽條目相同的索引的物理寄存器REG中,該標簽條目與引用的程序模型寄存器Rd相匹配。相反地,對于物理寄存器實現(xiàn)的讀取操作能夠通過如圖7C中所述的硬件實現(xiàn),其中那些語句“TAG[x]==Rn”中的僅一個語句將評估為真,這將生成32位選擇掩碼(例如,32個連續(xù)的I),以生成物理寄存器REG[x](對于該寄存器,TAG[x]條目與Rn相匹配)的內(nèi)容作為輸出“值”。[0074]圖8示例性地示出了在一個實施例中可以采用的一系列步驟。在步驟100中,將被執(zhí)行的一系列數(shù)據(jù)處理指令中的下一指令在數(shù)據(jù)處理裝置中被解碼。在步驟102中,判定此指令是否是下述指令的子集中的一項:所述指令允許對其自身的兩個物理寄存器的標簽映射的自由選擇;例如本申請中在程序模型寄存器和物理寄存器之間具有一對一映射的背景下,指令引用兩個程序模型寄存器,但在該兩個物理寄存器和該兩個程序模型寄存器之間的標簽映射將不會對數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響。如果該指令不是此類指令,則其后流程進行到步驟104,其中指令被正常執(zhí)行而不執(zhí)行任何重新映射,并且其后流程返回至步驟100以使得下一指令被解碼。然而,如果被解碼的指令在步驟102中被確定為預定的一組數(shù)據(jù)處理指令(其允許該標簽映射的自由選擇)之一,則流程進行至步驟106。此處參考在數(shù)據(jù)處理裝置中的偽隨機源,該偽隨機源在偽隨機基礎上生成肯定的響應或否定的響應。如果在此例中的此偽隨機源的結(jié)果是否定的,則流程返回至步驟104,并且指令被正常執(zhí)行而不經(jīng)過任何重新映射。然而,如果偽隨機測試的結(jié)果是肯定的,則流程進行至步驟108,其中指令被執(zhí)行,但寫入當前程序模型寄存器將來的物理寄存器映射目標中,然后在步驟110中映射這兩個物理寄存器的標簽值在標簽單元中被交換。其后,流程返回至步驟100以解碼下一指令。應該注意的是,盡管此處步驟108和110被描述成分開的步驟,但是這些步驟是在單一處理周期(例如)中發(fā)生的,即實際上是同時的。[0075]應該注意的是,向當前程序寄存器的未來物理寄存器映射目標進行的寫入(在步驟108中)是在一些指令的優(yōu)化實現(xiàn)中能夠被放棄的動作。例如在上述討論的關于圖5的實現(xiàn)MOV指令的情況下,該“向當前程序寄存器的未來物理寄存器映射目標寫入”能夠通過向REG[O](B卩,R6的未來物理寄存器映射目標)寫入OxBEEF實現(xiàn)。然而,由于了解該物理寄存器已提供了MOV的源內(nèi)容,此步驟能夠被放棄以作為優(yōu)化。在那種情況下,僅有的被執(zhí)行的寫操作是向REG[2]寫入0xBEEF(以實現(xiàn)REG[LOOKUP(6)]<=REG[LOOKUP(4)])?[0076]盡管本文描述了本發(fā)明的特定實施例,顯而易見的是本發(fā)明不被限制于此,并且在本發(fā)明的范圍內(nèi)可做出許多修改和添加。例如,在不背離本發(fā)明的范圍的情況下,可以用獨立權利要求的特征組成下列從屬權利要求中的特征的各種組合?!緳嗬蟆?.一種數(shù)據(jù)處理裝置,包括:處理器單元,該處理器單元被配置成響應于數(shù)據(jù)處理指令執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理指令引用程序模型寄存器;一組物理寄存器,該一組物理寄存器被配置成存儲受到所述數(shù)據(jù)處理操作的數(shù)據(jù)值;標簽存儲單元,該標簽存儲單元被配置成對每一個物理寄存器存儲指示所述程序模型寄存器之一的標簽值,所述處理器單元被配置成引用所述標簽存儲單元以執(zhí)行所述數(shù)據(jù)處理操作,并且所述標簽存儲單元在所述程序模型寄存器和所述物理寄存器之間提供一對一映射;以及標簽值交換機,該標簽值交換機被配置成執(zhí)行標簽交換以交換在所述標簽存儲單元中的兩個標簽值,其中所述標簽值交換機被配置成:當所述處理器單元執(zhí)行預定數(shù)據(jù)處理指令時,則執(zhí)行所述標簽交換,其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,并且所述標簽值交換機被配置成對于指示所述兩個程序模型寄存器的所述標簽值執(zhí)行所述標簽交換。2.根據(jù)權利要求1所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令的執(zhí)行包括對于所述兩個程序模型寄存器中的一者的寫操作,其中所述處理器單元被配置成在與所述標簽值交換機執(zhí)行所述標簽交換相同的處理周期中執(zhí)行所述寫操作,并且其中所述處理器單元被配置成對于目標物理寄存器執(zhí)行所述寫操作,其中所述目標物理寄存器在所述標簽交換之后將被映射至所述兩個程序模型寄存器中的所述一者。3.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令的執(zhí)行導致相同的值被存儲在被映射至所述兩個程序模型寄存器的所述兩個物理寄存器中。4.根據(jù)權利要求3所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令被配置成將存儲在所述兩個物理寄存器中的第一物理寄存器中的值復制在所述兩個物理寄存器中的第二物理寄存器中。5.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令的執(zhí)行導致新值被存儲在被映射至所述兩個程序模型寄存器的所述兩個物理寄存器中的每一個物理寄存器中,所述新值獨立于存儲在所述兩個物理寄存器中的每一個物理寄存器中的先前的值。6.根據(jù)權利要求5所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令被配置成將存儲在存儲器中的至少一個值復制在所述兩個物理寄存器中。7.根據(jù)權利要求5所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令被配置成將存儲在存儲器中的兩個值復制在所述兩個物理寄存器中。8.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述預定數(shù)據(jù)處理指令引用多個程序模型寄存器,并且對于哪些物理寄存器被映射至所述多個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,其中所述多個大于兩個。9.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述處理器單元被配置成在連續(xù)的數(shù)據(jù)處理周期內(nèi)執(zhí)行所述預定數(shù)據(jù)處理指令,并且所述標簽值交換機被配置成對于為所述兩個物理寄存器存儲的標簽值執(zhí)行所述標簽交換,其中所述兩個物理寄存器分別在當前數(shù)據(jù)處理周期和下一數(shù)據(jù)處理周期中被運行。10.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述標簽值交換機被配置成對在所述標簽存儲單元中的所述兩個標簽值執(zhí)行所述標簽交換,其中所述兩個標簽值被存儲用于相同的物理寄存器。11.根據(jù)任意前述權利要求所述的數(shù)據(jù)處理裝置,其中所述數(shù)據(jù)處理裝置被配置成通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。12.根據(jù)權利要求10所述的數(shù)據(jù)處理裝置,其中所述數(shù)據(jù)處理裝置被配置成在動態(tài)的基礎上通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。13.根據(jù)權利要求10所述的數(shù)據(jù)處理裝置,其中所述數(shù)據(jù)處理裝置被配置成在偽隨機的基礎上通過所述標簽值交換機選擇性地抑制所述標簽交換的執(zhí)行。14.根據(jù)權利要求10所述的數(shù)據(jù)處理裝置,其中所述數(shù)據(jù)處理裝置被配置成對所述標簽值交換機執(zhí)行涉及程序計數(shù)器寄存器的所述標簽交換進行選擇性的抑制。15.根據(jù)權利要求10所述的數(shù)據(jù)處理裝置,其中所述數(shù)據(jù)處理裝置被配置成對所述標簽值交換機執(zhí)行涉及堆棧指針寄存器的所述標簽交換進行選擇性的抑制。16.一種數(shù)據(jù)處理裝置,包括:物理寄存器裝置,該物理寄存器裝置用于存儲受到所述數(shù)據(jù)處理操作的數(shù)據(jù)值;標簽存儲裝置,該標簽存儲裝置用于為每一個物理寄存器裝置存儲指示所述程序模型寄存器裝置之一的標簽值,所述處理器裝置引用所述標簽存儲裝置以執(zhí)行所述數(shù)據(jù)處理操作,并且所述標簽存儲裝置在所述程序模型寄存器裝置和所述物理寄存器裝置之間提供一對一映射;以及標簽值交換裝置,該標簽值交換裝置用于執(zhí)行標簽交換以交換在所述標簽存儲裝置中的兩個標簽值,所述標簽值交換裝置用于在所述處理器裝置執(zhí)行預定數(shù)據(jù)處理指令時執(zhí)行所述標簽交換,其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,并且所述標簽值交換裝置用于對于指示所述兩個程序模型寄存器的所述標簽值執(zhí)行所述標簽交換。17.一種數(shù)據(jù)處理的方法,包括:響應于數(shù)據(jù)處理指令,執(zhí)行數(shù)據(jù)處理操作,所述數(shù)據(jù)處理指令引用程序模型寄存器;在一組物理寄存器中存儲受到所述數(shù)據(jù)處理操作的數(shù)據(jù)值;在標簽存儲單元中為每一個物理寄存器存儲指示所述程序模型寄存器之一的標簽值,并且引用所述標簽存儲單元以執(zhí)行所述數(shù)據(jù)處理操作,并且在所述標簽存儲單元中在所述程序模型寄存器和所述物理寄存器之間提供一對一映射;以及執(zhí)行標簽交換以交換在所述標簽存儲單元中的兩個標簽值,其中當預定數(shù)據(jù)處理指令被執(zhí)行時,所述標簽交換被執(zhí)行,其中所述預定數(shù)據(jù)處理指令引用兩個程序模型寄存器,并且對于哪兩個物理寄存器被映射至所述兩個程序模型寄存器中的哪一個的選擇將不會對所述數(shù)據(jù)處理操作的結(jié)果產(chǎn)生影響,并且對指示所述兩個程序模型寄存器的所述標簽值執(zhí)行所述標簽交換?!疚臋n編號】G06F9/38GK103988462SQ201280059375【公開日】2014年8月13日申請日期:2012年10月4日優(yōu)先權日:2011年12月2日【發(fā)明者】西蒙·約翰·克拉斯克申請人:Arm有限公司