專利名稱:用于單向旋轉器的基于寄存器的移位的制作方法
技術領域:
本發(fā)明通常涉及處理器,且更具體來說,涉及用于單向旋轉器的基于寄存器的移位。
背景技術:
當今,處理器被大量用于幾乎每一電子應用中。處理器控制對程序指令、算術函 數(shù)的執(zhí)行以及對存儲器和外圍裝置的存取。在最簡單的形式中,處理器提供對存儲在 存儲器中的數(shù)據(jù)執(zhí)行一個或一個以上算術函數(shù)來執(zhí)行程序指令。由處理器執(zhí)行的算術 函數(shù)可隨特定應用而變。通常由處理器執(zhí)行的一種類型的算術函數(shù)是移位或旋轉運算 移位或旋轉運算可由旋轉器及相關聯(lián)的邏輯來執(zhí)行。旋轉器是多路復用器元件的布置, 所述多路復用器元件的輸入和輸出以以下方式連接在一起響應于調(diào)用移位運算的程 序指令而沿線路向下移位數(shù)據(jù)。程序指令所調(diào)用的特定移位運算可變化。例如,程序指令可要求邏輯移位,其中 數(shù)據(jù)移動一離散數(shù)目的位位置,而超出的位被拋棄且對結果進行補零。除以下外算術 移位類似于邏輯移位在右移位運算中符號位向左擴展且在左移位運算中向較低階位 位置添加零。旋轉器還可用來執(zhí)行調(diào)用旋轉運算的程序指令。除旋轉運算是循環(huán)的以外,旋轉 運算類似于移位運算。當實施旋轉指令時,從旋轉器的一端移出的位返回另一端上。 與移位指令一樣,旋轉指令可以是向左或向右的。由于用于移位及旋轉運算的程序指令可以是單向的,因此某些處理器并入有離散 左旋轉器及右旋轉器。然而,并入所述兩個旋轉器可消耗額外功率且要求更多面積或 空間。因此,此項技術中需要一種可在左及右兩個方向上執(zhí)行移位及旋轉指令的基于 處理器的旋轉器。基于處理器的旋轉器應經(jīng)配置以最小化移位及旋轉運算的等待時間。發(fā)明內(nèi)容如下揭示一種處理器的一個方面。所述處理器包含單向旋轉器,其經(jīng)配置以在 一個方向上移位或旋轉數(shù)據(jù);及控制單元,其具有邏輯,所述邏輯經(jīng)配置以修改由相 反方向上的基于寄存器的移位或旋轉指令指定的移位值,所述經(jīng)修改的移位值可由所 述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且借此產(chǎn)生好似所述旋轉器中 的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了由基于寄存器的指令最初指定的所
述移位值一樣的結果。所述控制單元進一步經(jīng)配置以繞過所述邏輯且向所述旋轉器提 供由基于寄存器的指令指定的移位值以在所述一個方向上移位或旋轉所述數(shù)據(jù)。
如下揭示一種處理器的另一方面。所述處理器是n-位單向旋轉器,其經(jīng)配置以在 一個方向上移位或旋轉數(shù)據(jù),且一種控制單元具有邏輯,所述邏輯經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值m,所述經(jīng)修改的移位值可由 所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù)(n-m)。所述控制單元進一步經(jīng) 配置以繞過所述邏輯且向所述旋轉器提供由所述一個方向上的基于寄存器的移位或旋 轉指令指定的移位值。
揭示一種使用經(jīng)配置以在一個方向上移位或旋轉數(shù)據(jù)的單向旋轉器來執(zhí)行移位 或旋轉運算的方法。所述方法包含檢索由所述一個方向上的基于寄存器的移位或旋轉 指令指定的移位值,以及繞過邏輯且向所述旋轉器提供所述檢索的移位值。所述邏輯 經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值,所述經(jīng)修 改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且借此產(chǎn)生 好似所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了由所述基于寄存 器的指令最初指定的所述移位值一樣的結果,
揭示使用經(jīng)配置以在一個方向上移位或旋轉數(shù)據(jù)的n-位單向旋轉器來執(zhí)行移位 或旋轉運算的另一種方法。所述方法包含檢索由所述一個方向上的基于寄存器的移位 或旋轉指令指定的移位值,以及繞過邏輯且向所述旋轉器提供所述檢索的移位值,所 述邏輯經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值,所 述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù)(n-m)。
應了解,依據(jù)下文中以舉例說明方式顯示及描述的本發(fā)明各種實施例的詳細說 明,所屬領域的技術人員將易知本發(fā)明的其它實施例。如將認識到,其它及不同的實 施例是可能的且能夠在各種其它方面修改本文所包含的數(shù)個細節(jié),而所述修改并不背 離本發(fā)明的精神及范圍。因此,須將本文的圖式及詳細說明僅作為具舉例說明性質(zhì)而 非限制性質(zhì)。
通過審査以下對說明性實施例及附圖的詳細說明,本發(fā)明的這些以及其它特征將變得明了,附圖中圖1圖解說明處理器的實例的簡化框圖; 圖2A-2C是顯示處理器中旋轉器的操作的圖解;及 圖3是圖解說明處理器中控制單元的操作的流程圖。
具體實施例方式
下文結合附圖所陳述的詳細說明意在描述本發(fā)明的各種實施例,而非代表本發(fā)明 僅可實施為這些實施例。所述詳細說明包含特定細節(jié),以用于提供對本發(fā)明的透徹理 解的目的。然而,對所屬領域的技術人員而言,顯而易見,無需所述特定細節(jié)也可實 施本發(fā)明。在某些實例中,為避免模糊本發(fā)明的概念,以框圖形式顯示眾所習知的結 構及組件。圖1圖解說明能夠處理、檢索及存儲信息的處理器IOO或其它計算系統(tǒng)的實例的 簡化框圖。處理器100可以是獨立組件,或另一選擇是,嵌于例如計算機、無線電話、 個人數(shù)字助理(PDA)、數(shù)碼相機游戲控制臺的裝置中或任一其它計算裝置中。處理器 100可以是微處理器或其它處理實體。在一個實施例中,處理器100可以是嵌入式RISC 微處理器。處理器100的主要功能是通過對數(shù)據(jù)執(zhí)行許多運算來執(zhí)行程序指令。可在處理器 100內(nèi)部的通用存儲器中的寄存器堆102中檢索及存儲數(shù)據(jù)。寄存器堆102是用于臨 時存儲來自外部存儲器的數(shù)據(jù)的高速寄存器。所述寄存器提供處理器100所需的對數(shù) 據(jù)的低等待時間存取。寄存器102的數(shù)目(通常統(tǒng)稱為通用寄存器堆)由處理器架構來 指定。每一寄存器可由執(zhí)行單元104來存取以使處理器100能夠此一個或一個以上選 定的寄存器讀出數(shù)據(jù),對數(shù)據(jù)進行執(zhí)行,以及將結果寫入到選定的寄存器。執(zhí)行單元104使用ALU(算術/邏輯單元)或其它計算實體來執(zhí)行處理器100的所有 數(shù)學運算。所述執(zhí)行單元通常由執(zhí)行各種功能(包含加法、減法、乘法、除法及其它 計算)的復雜電路構成。執(zhí)行單元104還可用于移位或旋轉數(shù)據(jù)??捎脠?zhí)行單元104 中的單向旋轉器106及相關聯(lián)邏輯(未顯示)來執(zhí)行移位及旋轉功能。圖1中所示的旋轉器106將被描述為能夠?qū)?shù)據(jù)向右移位或旋轉任一數(shù)目位置的 單向旋轉器。所屬領域的技術人員將易于了解,本發(fā)明中所述的旋轉器106的功能性 擴展到向左移位或旋轉數(shù)據(jù)的單向旋轉器。將參照圖2A-2C來圖解說明旋轉器的運算,在圖2A中,顯示8位旋轉器202的 內(nèi)容??蓪?位旋轉器中的數(shù)據(jù)向右旋轉2個位,其結果顯示于圖2B中。參照圖2B 及2C,人們可容易地看到向右旋轉兩個位的運算與向左旋轉6個位的運算產(chǎn)生相同的 結果。換句話說,可使用能夠在一個方向上旋轉數(shù)據(jù)的旋轉器來仿效在相反方向上的 數(shù)據(jù)的旋轉。因此,可通過向右旋轉數(shù)據(jù)(n-m)個位來執(zhí)行n-位單向旋轉器中的向左旋 轉m個位的運算。可通過首先在旋轉器中旋轉數(shù)據(jù)適當?shù)牧壳医又鴴仐夁m當?shù)奈粊韴?zhí)行移位運算。 可對未占據(jù)的位位置進行補零,或在算術右移位運算的情況下,可將符號位向左擴展 到所述未占據(jù)位位置中。例如,可通過在旋轉器中向右旋轉數(shù)據(jù)(n-m)個位、拋棄m個 LSB且對m-LSB個位位置進行補零來執(zhí)行向左移位m個位的運算。可通過在旋轉器 中向右旋轉數(shù)據(jù)m個位,拋棄m個MSB且對m-MSB個位位置進行補零來執(zhí)行向右 移位m個位的運算。在算術向右移位運算的情況下,可將符號位向左擴展到旋轉器中 的m-MSB個位位置中?;氐綀D1,由存儲于指令高速緩存器中的程序指令來控制執(zhí)行單元104的運算。
所述指令高速緩存器是處理器ioo上的小型高速存儲器。其為從外部存儲器提取的程 序指令提供臨時高速存儲。所述程序指令被提供到解碼器110且經(jīng)解碼的指令用來啟 動執(zhí)行單元104以執(zhí)行數(shù)學運算。程序指令通常由兩個部分構成運算碼及運算數(shù)字段。運算碼指定待由執(zhí)行單元 104執(zhí)行的運算,例如加法、減法、存儲、旋轉、移位等。運算數(shù)字段提供關于所述運算碼所指定運算的更多詳細情況。例如,在移位運算的情況下,運算數(shù)字段指示通用寄存器堆102中的含有待移位數(shù)據(jù)的寄存器,移位的方向及移位數(shù)據(jù)的位位置的數(shù) 目。在此實例中,運算數(shù)字段可調(diào)用第一寄存器中待向右移位m個位的數(shù)據(jù)。另一選 擇是,運算數(shù)字段可調(diào)用第一寄存器中待移位第二寄存器中所指定量的數(shù)據(jù)。前一程 序指令通常稱為"基于指令的移位"且后一程序指令稱為"基于寄存器的移位"??刂茊卧?未顯示)負責引導處理器內(nèi)的程序指令及數(shù)據(jù)的流。所述控制單元的許 多功能中的一個功能是向執(zhí)行單元104提供算術指令的運算數(shù)字段中所指定的數(shù)據(jù)。 可從任一源提供數(shù)據(jù),此取決于處理器的架構。例如,數(shù)據(jù)可在通用寄存器堆102、 高速緩存器或其它存儲器中。在某些情況下,數(shù)據(jù)可在執(zhí)行單元104的管線122中, 且因此,必須由控制單元來檢索且反饋到執(zhí)行單元104的輸入。控制單元可采用允許 其盡早地從管線122中的任一級恢復數(shù)據(jù)的某一邏輯。控制單元通常用解碼器、多路 復用器及相關聯(lián)邏輯的復雜布置來實施。在圖1中,解碼器110、多路復用器112、 118、 鎖存器114及移位校正邏輯116形成控制單元的部分。除控制進入到執(zhí)行單元104的數(shù)據(jù)流以外,控制單元還負責向執(zhí)行單元104中的 多路復用器118提供指令高速緩存器中的程序指令的運算碼。多路復用器118用于在 控制單元將結果存儲于通用寄存器堆102中之前沿管線122向下切換旋轉器106的輸 出或某一其它計算功能120。在基于指令的移位或旋轉指令的情況下,通過多路復用 器112路由運算數(shù)字段并將其提供到旋轉器106以告知其將數(shù)據(jù)移位多少個位位置。 解碼器110或其它實體可用于通過將移位量修改(n-m)而將向左移位或旋轉轉換成 向右移位或旋轉指令。剛描述的解碼功能恰好適合于基于指令的移位或旋轉,因為在由處理器100執(zhí)行 之前,便可在指令高速緩存器108中得到指令。然而,在基于寄存器的移位或旋轉的 情況下,如果指定當前移位或旋轉指令的移位量的數(shù)據(jù)不在通用文件寄存器102中而 是在執(zhí)行單元104的管線122中的某一地方,那么可能會經(jīng)歷某些等待時間。在處理器100的至少一個實施例中,控制單元可經(jīng)配置以有效地處理基于寄存器 的移位或旋轉指令。例如,對于基于寄存器的移位或旋轉指令,可由控制單元而非解 碼器110來執(zhí)行修改移位或旋轉指令的移位值的功能。更具體來說,可向控制單元提 供基于寄存器的移位或旋轉指令的運算數(shù)字段??刂茊卧ㄎ煌ㄓ梦募拇嫫?02或 執(zhí)行單元的管線122中由運算數(shù)字段指定的移位值,并通過多路復用器112將移位值 遞送到鎖存器114的輸入。 一旦數(shù)據(jù)被遞送到鎖存器114的輸入,控制單元便確定是 在下一時鐘循環(huán)時將數(shù)據(jù)加載到執(zhí)行單元104中還是首先修改移位值。
將參照圖1及3來描述針對移位或旋轉指令將移位值遞送到執(zhí)行單元的過程。在步驟302中,控制單元確定指令是基于寄存器的還是基于指令的。如果控制單元確定 指令是基于指令的,那么在塊304中向執(zhí)行單元104提供移位值,且在塊305中執(zhí)行 單元104將旋轉器中的數(shù)據(jù)向右移位或旋轉由移位值指定的量。如果基于指令的移位 或旋轉指令是向左的,那么可能已由解碼器110提前修改了移位值。如果控制單元確定指令是基于寄存器的指令,那么在塊306中其確定基于寄存器 的指令是調(diào)用向右移位或旋轉運算還是調(diào)用向左移位或旋轉運算。如果控制單元確定 指令調(diào)用向右移位或旋轉、運算,那么在塊304中向執(zhí)行單元104提供移位值,且在 塊305中執(zhí)行單元104將旋轉器中的數(shù)據(jù)向右移位或旋轉由移位值指定的量。如果控制單元確定指令是基于向左的寄存器的指令那么在塊307中向移位校正邏 輯116提供移位值。在塊308中,將移位值修改(n-m),其中n是旋轉器106的大小 且m是移位值。在塊304中向執(zhí)行單元104提供經(jīng)修改的移位值,且在塊305中執(zhí)行 單元104將旋轉器中的數(shù)據(jù)向右移位或旋轉由移位值指定的量。結合本文所揭示實施例描述的各種說明性邏輯塊、模塊及電路可由以下裝置實施 或執(zhí)行通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編 程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件、或 其設計用于執(zhí)行上文所述諸功能的任一組合。通用處理器可以是微處理器,但另一選 擇是,處理器可以是任一常規(guī)處理器、控制器、微控制器或狀態(tài)機。處理器還可實施 為運算裝置的組合,例如,DSP與微處理器的組合、多個微處理器的組合、 一個或一 個以上微處理器與DSP核心的聯(lián)合,或任一其它此類配置。結合本文所揭示實施例描述的方法或算法可直接體現(xiàn)于硬件中、可由處理器執(zhí)行 的軟件模塊中,或兩者的組合中。軟件模塊可駐存于RAM存儲器、快閃存儲器、 ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬磁盤、可拆卸磁盤、 CD-ROM、或此項技術中已知的任何其它形式的存儲媒體中。存儲媒體可耦合到所述 處理器,以使得所述處理器可從所述存儲媒體讀取信息并將信息寫入到所述存儲媒體。 另一選擇是,存儲媒體可與處理器成一體。處理器和存儲媒體可駐存于ASIC中,ASIC 可駐存于終端中或別處。另一選擇是,處理器及存儲媒體可作為離散組件駐存于終端 中或別處。提供上文對所揭示實施例的說明以使所屬領域的技術人員能夠制作或使用本發(fā) 明。所屬領域的技術人員將易知對這些實施例的各種修改,且本文所界定的一般原理 還可應用于其它實施例,此并不背離本發(fā)明的精神或范圍。因此,本發(fā)明并非意在限 定于本文所示的實施例,而是要賦予其與權利要求書相一致的全部范圍,其中除非明 確標明,以單數(shù)形式提及一元件并非意在表示"一個且僅一個",而是"一個或一個 以上'之意。所有為所屬領域的技術人員己知或此后將知曉的本發(fā)明中所述各種實施 例的元件的結構及功能等效物均明確地以引用方式并入本文中并意在涵蓋于權利要求 書中。而且,無論是否于權利要求書中明確敘述此揭示內(nèi)容,本文所揭示的內(nèi)容并非
意在奉獻給公眾。權利要求書要素并不依據(jù)35 U.S.C. § 112第六段的規(guī)定加以解釋, 除非使用短語"用于…的裝置"明確敘述所述要素,或在方法項的情況下使用短語"用 于…的步驟"敘述所述要素。
權利要求
1、一種處理器,其包括單向旋轉器,其經(jīng)配置以在一個方向上移位或旋轉數(shù)據(jù);及控制單元,其具有邏輯,所述邏輯經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值,所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且借此產(chǎn)生猶如所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了所述基于寄存器的指令最初指定的所述移位值一樣的結果;其中所述控制單元進一步經(jīng)配置以繞過所述邏輯且向所述旋轉器提供由基于寄存器的指令所指定的移位值以在所述一個方向上移位或旋轉所述數(shù)據(jù)。
2、 如權利要求1所述的處理器,其進一步包括管線式執(zhí)行單元,所述控制單元 進一步經(jīng)配置以從所述管線中除輸出級以外的級來恢復由所述基于寄存器的指令所指 定的所述移位值。
3、 如權利要求2所述的處理器,其進一步包括通用寄存器堆,且其中所述控制 單元進一步包括多路復用器以響應于所述基于寄存器的指令從所述通用寄存器堆或所 述管線選擇所述移位值。
4、 如權利要求3所述的處理器,其中所述多路復用器進一步經(jīng)配置以響應于基 于寄存器的指令從所述通用寄存器堆選擇所述移位值、響應于所述基于寄存器的指令 從所述管線選擇所述移位值、或選擇由基于指令的移位或旋轉指令所指定的移位值。
5、 如權利要求4所述的處理器,其中如果所述基于指令的移位或旋轉指令是在 所述相反方向上,那么由所述基于指令的移位或旋轉指令指定的所述移位值在被提供 給所述多路復用器之前由所述控制單元進行修改,所述基于指令的移位或旋轉指令的 所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且 借此產(chǎn)生猶如所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了由所述 基于指令的移位或旋轉指令最初指定的所述移位值一樣的結果。
6、 如權利要求3所述的處理器,其中所述控制單元進一步經(jīng)配置以針對所述一 個方向上的所述基于寄存器的移位或旋轉指令向所述旋轉器提供由所述多路復用器選 擇的所述移位值,且針對所述相反方向上的所述基于寄存器的移位或旋轉指令向移位 校正邏輯提供由所述多路復用器選擇的所述移位值。
7、 如權利要求6所述的處理器,其中由所述邏輯產(chǎn)生的所述經(jīng)修改的移位值被 反饋到所述多路復用器,所述多路復用器經(jīng)配置以從所述通用文件寄存器或所述管線 選擇所述移位值,或向所述旋轉器提供所述經(jīng)修改的移位值。
8、 如權利要求7所述的處理器,其進一步包括鎖存器,所述鎖存器具有耦合到 所述多路復用器的輸入及耦合到所述邏輯和所述執(zhí)行單元的輸出。
9、 一種處理器,其包括 n-位單向旋轉器,其經(jīng)配置以在一個方向上移位或旋轉數(shù)據(jù);及控制單元,其具有邏輯,所述邏輯經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值m,所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù)(n-m);其中所述控制單元進一步經(jīng)配置以繞過所述邏輯且向所述旋轉器提供由所述一個方向上的基于寄存器的移位或旋轉指令指定的移位值。
10、 如權利要求9所述的處理器,其進一步包括管線式執(zhí)行單元,所述控制單元 進一步經(jīng)配置以從所述管線中除輸出級以外的級來恢復由所述基于寄存器的指令指定 的所述移位值。
11、 如權利要求10所述的處理器,其進一步包括通用寄存器堆,且其中所述控 制單元進一步包括多路復用器以響應于所述基于寄存器的指令從所述通用寄存器堆或 所述管線選擇所述移位值。
12、 如權利要求11所述的處理器,其中所述多路復用器進一步經(jīng)配置以響應于 所述基于寄存器的指令從所述通用寄存器堆選擇所述移位值、響應于所述基于寄存器 的指令從所述管線選擇所述移位值、或選擇由基于指令的移位或旋轉指令指定的移位 值。
13、 如權利要求12所述的處理器,其中如果所述基于指令的移位或旋轉指令在 所述相反方向上,那么由所述基于指令的移位或旋轉指令指定的所述移位值在被提供 給所述多路復用器之前由所述控制單元進行修改,所述基于指令的移位或旋轉指令的 所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且 借此產(chǎn)生猶如所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了由所述 基于指令的移位或旋轉指令最初指定的所述移位值一樣的結果。
14、 如權利要求11所述的處理器,其中所述控制單元進一步經(jīng)配置以針對所述 一個方向上的所述基于寄存器的移位或旋轉指令向所述旋轉器提供由所述多路復用器 選擇的所述移位值,且針對所述相反方向上的所述基于寄存器的移位或旋轉指令向移 位校正邏輯提供由所述多路復用器選擇的所述移位值。
15、 如權利要求14所述的處理器,其中由所述邏輯產(chǎn)生的所述經(jīng)修改的移位值 被反饋到所述多路復用器,所述多路復用器經(jīng)配置以從所述通用文件寄存器或所述管 線選擇所述移位值,且向所述旋轉器提供所述經(jīng)修改的移位值。
16、 如權利要求15所述的處理器,其進一步包括鎖存器,所述鎖存器具有耦合 到所述多路復用器的輸入及耦合到所述邏輯和所述執(zhí)行單元的輸出。
17、 一種執(zhí)行移位或旋轉運算的方法,所述方法使用經(jīng)配置以在一個方向上移位 或旋轉數(shù)據(jù)的單向旋轉器及經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指 令指定的移位值的邏輯,所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上 移位或旋轉所述數(shù)據(jù),且借此產(chǎn)生猶如所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方 向上移位或旋轉了由所述基于寄存器的指令最初指定的所述移位值一樣的結果,所述 方法包括檢索由所述一個方向上的基于寄存器的移位或旋轉指令指定的移位值;及 繞過所述邏輯且向所述旋轉器提供所述檢索的移位值。
18、 如權利要求17所述的方法,其中從執(zhí)行單元的管線中除輸出級以外的級檢 索針對所述一個方向上的所述基于寄存器的移位或旋轉指令的所述移位值,所述執(zhí)行 單元包含所述旋轉器。
19、 如權利要求17所述的方法,其中從通用文件寄存器檢索針對所述一個方向 上的所述基于寄存器的移位或旋轉指令的所述移位值。
20、 如權利要求17所述的方法,其進一步包括決定是從通用文件寄存器還是從執(zhí)行單元的管線中除輸出級以外的級檢索針對所述一個方向上的所述基于寄存器的移 位或旋轉指令的所述移位值,所述執(zhí)行單元包含所述旋轉器。
21、 如權利要求17所述的方法,其進一步包括響應于所述一個方向上的基于后 續(xù)寄存器的移位或旋轉指令來檢索移位值,且響應于先于所述基于后續(xù)寄存器的指令 的所述相反方向上的基于寄存器的移位或旋轉指令決定向所述旋轉器提供由所述邏輯 修改的移位值。
22、 一種執(zhí)行移位或旋轉運算的方法,所述方法使用經(jīng)配置以在一個方向上移位 或旋轉數(shù)據(jù)的n-位單向旋轉器及經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋 轉指令指定的移位值的邏輯,所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方 向上移位或旋轉所述數(shù)據(jù)(n-m),所述方法包括檢索由所述一個方向上的基于寄存器的移位或旋轉指令指定的移位值;及 繞過所述邏輯且向所述旋轉器提供所述檢索的移位值。
23、 如權利要求22所述的方法,其中從執(zhí)行單元的管線中除輸出級以外的級檢 索針對所述一個方向上的所述基于寄存器的移位或旋轉指令的所述移位值,所述執(zhí)行 單元包含所述旋轉器。
24、 如權利要求22所述的方法,其中從通用文件寄存器檢索針對所述一個方向 上的所述基于寄存器的移位或旋轉指令的所述移位值。
25、 如權利要求22所述的方法,其進一步包括決定是從通用文件寄存器還是從 執(zhí)行單元的管線中除輸出級以外的級來檢索針對所述一個方向上的所述基于寄存器的 移位或旋轉指令的所述移位值,所述執(zhí)行單元包含所述旋轉器。
26、 如權利要求22所述的方法,其進一步包括響應于所述一個方向上的基于后 續(xù)寄存器的移位或旋轉指令檢索移位值,且響應于先于所述基于后續(xù)寄存器的指令的 所述相反方向上的基于寄存器的移位或旋轉指令決定向所述旋轉器提供由所述邏輯修 改的移位值。
全文摘要
本發(fā)明揭示一種具有單向旋轉器的處理器,所述單向旋轉器經(jīng)配置以在一個方向上移位或旋轉數(shù)據(jù)。所述處理器還包含具有邏輯的控制單元,所述邏輯經(jīng)配置以修改由相反方向上的基于寄存器的移位或旋轉指令指定的移位值,所述經(jīng)修改的移位值可由所述旋轉器用來在所述一個方向上移位或旋轉所述數(shù)據(jù),且借此產(chǎn)生好似所述旋轉器中的所述數(shù)據(jù)不然已在所述相反方向上移位或旋轉了所述基于寄存器的指令最初指定的所述移位值一樣的結果。所述控制單元進一步經(jīng)配置以繞過所述邏輯且向所述旋轉器提供由基于寄存器的指令所指定的移位值以在所述一個方向上移位或旋轉所述數(shù)據(jù)。
文檔編號G06F9/315GK101401064SQ200780003985
公開日2009年4月1日 申請日期2007年1月31日 優(yōu)先權日2006年1月31日
發(fā)明者安東尼·D·克萊因, 邁克爾·斯科特·麥基爾文, 阿卜杜勒哈米德·A·馬納達斯 申請人:高通股份有限公司