專利名稱:組合微處理器內(nèi)的多個寄存器單元的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及微處理器,且更具體來說,涉及組合微處理器(例如數(shù)字信號處 理器)內(nèi)的多個寄存器單元的方法和系統(tǒng)。
背景技術(shù):
通常,計算機系統(tǒng)包括一個或一個以上微處理器裝置,每一微處理器裝置經(jīng)配置以 對存儲在計算機系統(tǒng)的存儲器內(nèi)的值執(zhí)行運算并管理計算機系統(tǒng)的總運算。這些計算機 系統(tǒng)也可包括各種多媒體裝置(例如聲卡和/或視頻卡),每一多媒體裝置進一步包括一 個或一個以上處理器(例如數(shù)字信號處理器(DSP)),所述一個或一個以上處理器執(zhí)行 每一各自多媒體裝置內(nèi)的復(fù)雜數(shù)學(xué)計算。
數(shù)字信號處理器(DSP)通常包括經(jīng)特定配置以執(zhí)行此類數(shù)學(xué)計算的硬件執(zhí)行單元, 例如一個或一個以上算術(shù)邏輯單元(ALU)、 一個或一個以上乘法和累加單元(MAC), 以及經(jīng)配置以執(zhí)行通過DSP內(nèi)的指令集所指定的運算的其它功能單元。此類運算可包括 (例如)算術(shù)運算、邏輯運算和其它數(shù)據(jù)處理運算,每一者由相關(guān)聯(lián)的指令集界定。
通常,DSP內(nèi)的執(zhí)行單元從耦合到存儲器和執(zhí)行單元的寄存器堆讀取數(shù)據(jù)和操作 數(shù)、執(zhí)行指令運算,且將結(jié)果存儲在寄存器堆中。寄存器堆包括多個寄存器單元,每一 寄存器單元作為單一寄存器或作為兩個相鄰寄存器單元的經(jīng)對準(zhǔn)對而為可存取的。然
而,某些特定運算(例如加或減數(shù)據(jù)的運算)需要來自寄存器堆內(nèi)的獨立寄存器單元的 數(shù)據(jù)經(jīng)正確地對準(zhǔn)以用于執(zhí)行指令。因此,需要一種在執(zhí)行單一指令期間組合DSP內(nèi)的 多個非相鄰的寄存器單元以使得能夠正確對準(zhǔn)存儲在此類寄存器單元內(nèi)的數(shù)據(jù)的方法
和系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明描述一種組合微處理器(例如數(shù)字信號處理器)內(nèi)的多個寄存器單元的方法 和系統(tǒng)。在一實施例中,從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存 器單元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于寄存器堆結(jié)構(gòu)內(nèi)。在 執(zhí)行單一指令期間進一步組合所述第一寄存器單元和所述第二寄存器單元以形成所得寄存器單元。最后,所得寄存器單元存儲在寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
在一替代實施例中,在檢索第一寄存器單元和第二寄存器單元之后,從第一寄存器 單元檢索第一半字單元且從第二寄存器單元檢索第二半字單元。在執(zhí)行單一指令期間將 第一半字單元和第二半字單元進一步輸入到所得寄存器單元的對應(yīng)高部分和低部分以
形成所得寄存器單元。最后,所得寄存器單元存儲在寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
圖1為在其內(nèi)可執(zhí)行指令集的數(shù)字信號處理系統(tǒng)的方框圖; 圖2為說明數(shù)字信號處理系統(tǒng)內(nèi)的通用寄存器結(jié)構(gòu)的一實施例的方框圖; 圖3為說明超長指令字 (VLIW)數(shù)字信號處理系統(tǒng)架構(gòu)的一實施例的方框圖; 圖4為說明組合數(shù)字信號處理系統(tǒng)內(nèi)的寄存器單元的方法的一實施例的流程圖; 圖5為說明結(jié)合圖4所描述的用以組合寄存器單元的方法的方框圖; 圖6為說明組合數(shù)字信號處理系統(tǒng)內(nèi)的寄存器單元的方法的一替代實施例的流程
圖7為說明結(jié)合圖6所描述的用以組合寄存器單元的方法的方框圖。
具體實施例方式
本發(fā)明描述一種組合微處理器(例如數(shù)字信號處理器)內(nèi)的多個寄存器單元的方法 和系統(tǒng)。盡管以下所描述的系統(tǒng)使得數(shù)字信號處理器(DSP)能夠組合寄存器單元,但
應(yīng)了解可使用微處理器裝置,或能在執(zhí)行單一指令期間將多個寄存器單元組合為所得較 大寄存器單元的任何其它處理單元來實施所述系統(tǒng)。
通常,DSP內(nèi)的執(zhí)行單元從寄存器堆讀取數(shù)據(jù)和操作數(shù),執(zhí)行指令運算,且將結(jié)果 存儲在寄存器堆中。寄存器堆包括多個寄存器單元,每一寄存器單元作為單一寄存器或 作為兩個相鄰寄存器單元的經(jīng)對準(zhǔn)對而為可存取的。然而,某些特定運算(例如加或減
數(shù)據(jù)的運算)需要來自寄存器堆內(nèi)的單獨寄存器單元的數(shù)據(jù)經(jīng)正確地對準(zhǔn)以用于執(zhí)行指 令。以下詳述的實施例有助于在執(zhí)行單一指令期間組合/串聯(lián)DSP內(nèi)的多個非相鄰寄存 器單元,以使得能夠正確對準(zhǔn)存儲在此些寄存器單元內(nèi)的數(shù)據(jù)以備用于后續(xù)的向量運 算。
在一實施例中,從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單
元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于寄存器堆結(jié)構(gòu)內(nèi)。在執(zhí)行
單一指令期間進一步組合所述第一寄存器單元和所述第二寄存器單元以形成所得較大
9寄存器單元。最后,所得寄存器單元存儲在寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
在一替代實施例中,在檢索第一寄存器單元和第二寄存器單元之后,檢索來自第一 寄存器單元的第一半字單元和來自第二寄存器單元的第二半字單元。在執(zhí)行單一指令期
間將第一半字單元和第二半字單元進一步輸入到所得寄存器單元的對應(yīng)高部分和低部 分以形成所得寄存器單元。最后,所得寄存器單元存儲在寄存器堆結(jié)構(gòu)內(nèi)以用于進一步 處理。
圖1為在其內(nèi)執(zhí)行指令集的數(shù)字信號處理系統(tǒng)的方框圖。如圖1中所說明,數(shù)字信 號處理系統(tǒng)100包括處理單元110、存儲器150和一個或一個以上總線160,所述一個 或一個以上總線160將處理單元IIO耦合到存儲器150。
存儲器150以(例如)由VLIW編譯器產(chǎn)生的超長指令字(VLIW)包的形式存儲 數(shù)據(jù)和指令,每一 VLIW包包含一個或一個以上指令。包的每一指令通常具有預(yù)定寬度 且具有在存儲器150中的特定地址,使得包中的第一指令通常具有比包的最后一指令低 的存儲器地址。存儲器的尋址機制是此項技術(shù)中眾所周知的且此處未加以詳細(xì)論述。經(jīng) 由總線160將存儲器150中的指令加載到處理單元110中。
處理單元IIO進一步包含經(jīng)由一個或一個以上管線140耦合到一個或一個以上寄存 器堆結(jié)構(gòu)120的中央處理單元核心130。處理單元110可進一步包含一個或一個以上微 處理器,數(shù)字信號處理器等。
寄存器堆120進一步包含 一組通用寄存器單元,其支持通用計算,且在下文結(jié)合 圖2進一步詳細(xì)描述其;和一組控制寄存器單元,其支持特殊目的功能性,例如硬件回 路、聲明和其它特殊操作數(shù)。
圖2為說明數(shù)字信號處理系統(tǒng)內(nèi)的通用寄存器結(jié)構(gòu)的一實施例的方框圖。如圖2中 所說明,在一實施例中,寄存器堆120內(nèi)的通用寄存器堆結(jié)構(gòu)200包括多個寄存器單元, 例如三十二 (32)位寬寄存器單元210,每一寄存器單元作為單一寄存器或作為兩個相 鄰寄存器單元210的經(jīng)對準(zhǔn)對220而為可存取的。
可基于合適的指令通過多個名稱來指代通用寄存器單元210。舉例來說,寄存器單
元210可個別地被稱為R0、 R!、 ....... R30ff]R31。此外,寄存器單元R。和R,可形成被
稱為R,:o的64位寄存器對220。類似地,寄存器單元112和113可形成被稱為R3:2的64
位寄存器對220,寄存器單元R28和R29可形成被稱為R29:28的64位寄存器對220,且寄
存器單元R鄧和R3可形成被稱為R化3o的64位寄存器對220。
在一實施例中,通用寄存器單元210用于通用計算目的,例如地址產(chǎn)生、標(biāo)量算術(shù)
和向量算術(shù);且提供用于指令的所有操作數(shù),包括用于加載/存儲指令的地址、用于數(shù)值指令的數(shù)據(jù)操作數(shù)和用于向量指令的向量操作數(shù)。
圖3為說明超長指令字(VLIW)數(shù)字信號處理系統(tǒng)架構(gòu)的一實施例的方框圖。VLIW 系統(tǒng)架構(gòu)300包括經(jīng)由指令加載總線320、數(shù)據(jù)加載總線322和數(shù)據(jù)加載/存儲總線324 耦合到數(shù)字信號處理器(DSP) 330的存儲器310。
在一實施例中,存儲器310以(例如)具有一到四個指令的VLIW包的形式存儲數(shù) 據(jù)和指令。經(jīng)由指令加載總線320將存儲器310內(nèi)所存儲的指令加載到DSP 330。在一 實施例中,每一指令具有32位字寬,其經(jīng)由具有四字寬的128位指令加載總線320加 載到DSP 330。在一實施例中,存儲器310為統(tǒng)一字節(jié)可尋址存儲器,具有存儲指令和 數(shù)據(jù)的32位地址空間,且在小端模式(little-endian mode)中操作。
在一實施例中,DSP 330包含定序器335、用于四個處理或執(zhí)行單元345的四個管 線340、通用寄存器堆結(jié)構(gòu)350 ((包含多個通用寄存器單元(例如結(jié)合圖2詳細(xì)描述的 通用寄存器堆結(jié)構(gòu)200))和控制寄存器堆結(jié)構(gòu)360。定序器335從存儲器310接收指令 的包且使用指令內(nèi)所含有的信息為每一所接收的包的每一指令確定適當(dāng)?shù)墓芫€340和各 自執(zhí)行單元345。在為包的每一指令作出此確定之后,定序器335將指令輸入到適當(dāng)?shù)?管線340中以由適當(dāng)?shù)膱?zhí)行單元345處理。
在一實施例中,所述執(zhí)行單元345進一步包含向量移位單元、向量MAC單元、加 載單元和加載/存儲單元。向量移位單元345執(zhí)行(例如)S型(移位單元)指令,例如 移位和加/減運算、移位和邏輯運算、排列運算(Permute operation)、聲明運算、位操縱 和向量半字/字移位;A64型(64位算術(shù))指令,例如64位算術(shù)和邏輯運算、32位邏輯 運算、排列運算;A32型(32位算術(shù))指令,例如32位算術(shù)運算;J型(跳躍)指令, 例如跳躍/調(diào)用PC相關(guān)運算;和CR型(控制寄存器)指令,例如控制寄存器轉(zhuǎn)移、硬 件回路設(shè)置。向量MAC單元345執(zhí)行(例如)M型(乘法單元)指令,例如單精度、 雙精度、復(fù)雜和向量字節(jié)/半字指令;A64型指令;A32型指令;J型指令和JR型(跳 躍寄存器)指令,例如跳躍/調(diào)用寄存器運算。加載單元345將數(shù)據(jù)從存儲器310加載到 通用寄存器堆結(jié)構(gòu)350且執(zhí)行(例如)加載型和A32型指令。加載/存儲單元345將來 自通用寄存器堆結(jié)構(gòu)350的數(shù)據(jù)加載并存儲回到存儲器310,且執(zhí)行(例如)加載型、 存儲型和A32型指令。
接收指令的每一執(zhí)行單元345使用通過四個執(zhí)行單元345所共享的通用寄存器堆結(jié) 構(gòu)350來執(zhí)行指令。將指令所需的數(shù)據(jù)經(jīng)由64位數(shù)據(jù)加載總線322加載到通用寄存器 堆結(jié)構(gòu)350。在通過執(zhí)行單元345執(zhí)行包的指令之后,將所得數(shù)據(jù)存儲到通用寄存器堆 結(jié)構(gòu)350且隨后經(jīng)由64位數(shù)據(jù)加載/存儲總線324加載并存儲到存儲器310。通常,包的一到四個指令由四個執(zhí)行單元345在一個時鐘循環(huán)中并行執(zhí)行,其中對于每一時鐘循 環(huán)來說,管線340接收并處理最多一個指令。
在一實施例中,執(zhí)行單元345也可使用控制寄存器堆結(jié)構(gòu)360來執(zhí)行對應(yīng)的指令。 控制寄存器堆結(jié)構(gòu)360包含一組特殊寄存器單元,例如修改量寄存器單元、狀態(tài)寄存器 單元和聲明寄存器單元。
圖4為說明組合數(shù)字信號處理系統(tǒng)100內(nèi)的寄存器單元的方法的一實施例的流程 圖。如圖4的實施例中所說明,在處理方框410處,接收用以組合/串聯(lián)數(shù)字信號處理系 統(tǒng)300內(nèi)的寄存器單元的指令。在一實施例中,如以下所描述,DSP 330內(nèi)的執(zhí)行單元 345接收指令且執(zhí)行所述指令以組合存儲在通用寄存器堆結(jié)構(gòu)350中的預(yù)定寄存器單元。 在一實施例中,預(yù)定寄存器單元非相鄰地位于通用寄存器堆結(jié)構(gòu)內(nèi)。
在處理方框420處,識別預(yù)定寄存器單元(例如第一 32位寬寄存器單元和第二 32 位寬寄存器單元)。在一實施例中,執(zhí)行單元345與通用寄存器堆結(jié)構(gòu)350通信且識別 請求組合的寄存器單元。在一實施例中,存儲器310隨后經(jīng)由64位數(shù)據(jù)加載總線322 將指令所需的數(shù)據(jù)加載到通用寄存器堆結(jié)構(gòu)350。或者,數(shù)據(jù)可能已存儲在所識別的第 一和第二寄存器單元內(nèi)。
在處理方框430處,檢索所識別的寄存器單元和相關(guān)聯(lián)的數(shù)據(jù)。在一實施例中,執(zhí) 行單元345從通用寄存器堆結(jié)構(gòu)350檢索所識別的寄存器單元和相關(guān)聯(lián)的數(shù)據(jù)。
在處理方框440處,將所檢索的寄存器單元組合/串聯(lián)在所得較大寄存器對內(nèi)。在一 實施例中,執(zhí)行單元345將所檢索的寄存器單元(例如第一和第二32位寬寄存器單元) 以及其相關(guān)聯(lián)的數(shù)據(jù)組合為所得64位寬寄存器對單元,使得第一寄存器單元和其相關(guān) 聯(lián)的數(shù)據(jù)輸入到所得寄存器單元的高部分且第二寄存器單元和其相關(guān)聯(lián)的數(shù)據(jù)輸入到 所得寄存器單元的低部分。
最后,在處理方框450處,存儲所得寄存器對以用于進一步處理。在一實施例中, 執(zhí)行單元345將所得寄存器單元輸出到通用寄存器堆結(jié)構(gòu)350且存儲所得寄存器單元以 用于額外指令的進一步處理。
圖5為說明結(jié)合圖4所描述的用以組合寄存器單元的方法的方框圖。如圖5中所說 明,識別源寄存器單元Rs 510和RT 520且進一步從通用寄存器堆結(jié)構(gòu)350檢索所述源 寄存器單元Rs510和RT 520。
在一實施例中,將源寄存器單元Rs 510和RT 520組合/串聯(lián)為所得較大目的地寄存
器單元RD530的指令為
Rd-組合(Rs, Rt)一旦執(zhí)行所述指令,便將寄存器單元RS 510和RT 520組合/串聯(lián)為所得較大冃的地 寄存器單元RD 530,使得將駐留于寄存器單元Rs 510中的數(shù)據(jù)輸入到寄存器單元RD 530 的高部分中且將駐留于寄存器單元RT 520中的數(shù)據(jù)輸入到寄存器單元RD 530的低部分 中。如果(例如)Rs510和RT 520均為32位寬寄存器單元,則所得目的地寄存器單元 RD 530為64位寬寄存器。
圖6為說明用以組合數(shù)字信號處理系統(tǒng)300內(nèi)的寄存器單元的方法的一替代實施例 的流程圖。如圖6的實施例中所說明,在處理方框610處,接收用以組合/串聯(lián)數(shù)字信號 處理系統(tǒng)300內(nèi)的寄存器單元的指令。在一實施例中,DSP 330內(nèi)的執(zhí)行單元345接收 指令且執(zhí)行所述指令以組合存儲在通用寄存器堆結(jié)構(gòu)350中的預(yù)定寄存器單元。在一實 施例中,預(yù)定寄存器單元非相鄰地位于通用寄存器堆結(jié)構(gòu)內(nèi)。
在處理方框620處,識別預(yù)定寄存器單元(例如第一 32位寬寄存器單元和第二 32 位寬寄存器單元)。在一實施例中,執(zhí)行單元345與通用寄存器堆結(jié)構(gòu)350通信且識別 被請求組合的寄存器單元。在一實施例中,存儲器310隨后經(jīng)由64位數(shù)據(jù)加載總線322 將指令所需的數(shù)據(jù)加載到通用寄存器堆結(jié)構(gòu)350?;蛘撸瑪?shù)據(jù)可能己存儲在所識別的第 一和第二寄存器單元內(nèi)。
在處理方框630處,檢索所識別的寄存器單元和相關(guān)聯(lián)的數(shù)據(jù)。在一實施例中,執(zhí) 行單元345從通用寄存器堆結(jié)構(gòu)350檢索所識別的寄存器單元和相關(guān)聯(lián)的數(shù)據(jù)。
在處理方框640處,從第一寄存器單元檢索第一半字單元且將其輸入到所得寄存器 單元中。在一實施例中,執(zhí)行單元345進一步從第一寄存器單元檢索第一 16位寬半字 單元(其在一實施例中可為第一寄存器單元的高半字單元,或作為替代,可為第一寄存 器單元的低半字單元),且將第一半字單元輸入到所得寄存器單元的高部分中。
在處理方框650處,從第二寄存器單元檢索第二半字單元且將其輸入到所得寄存器 單元中。在一實施例中,執(zhí)行單元345進一步從第二寄存器單元檢索第二 16位寬半字 單元(其在一實施例中可為第二寄存器單元的高半字單元,或作為替代,可為第二寄存 器單元的低半字單元),且將第二半字單元輸入到所得寄存器單元的低部分中,因此獲 得32位寬所得寄存器單元。
最后,在處理方框660處,存儲所得寄存器單元以用于進一步處理。在一實施例中, 執(zhí)行單元345將所得寄存器單元輸出到通用寄存器堆結(jié)構(gòu)350且存儲所得寄存器單元以 用于額外指令的進一步處理。
圖7為說明結(jié)合圖6所描述的用以組合寄存器單元的方法的方框圖。如圖7中所說
明,識別源寄存器單元Rs 540和RT 550且從通用寄存器堆結(jié)構(gòu)200檢索所述源寄存器單元Rs 540和RT550。
在一實施例中,將源寄存器單元Rs 540和RT 550組合/串聯(lián)為所得目的地寄存器單 元RD 560的指令為
Rd"且合(Rt.[HL], Rs.[HL])
其中RT.[HL]為具有高半字H和低半字L的源寄存器單元RT,且其中Rs為具有高 半字H和低半字L的源寄存器單元Rs。
如圖7中所示, 一旦執(zhí)行指令,將源寄存器單元RT 550的高半字RT1或(作為替代) 源寄存器單元RT 550的低半字RT2經(jīng)由多路復(fù)用器555輸入到寄存器單元RD 560的高 部分中,且將源寄存器單元Rs 540的高半字Rs,或(作為替代)源寄存器單元Rs 540 的低半字Rs2經(jīng)由多路復(fù)用器545輸入到寄存器單元RD560的低部分中。如果(例如) Rs 540和R"r550均為32位寬寄存器單元,則在一實施例中,源寄存器單元RT 550的高 半字RTM為16位寬,源寄存器單元Rs 540的低半字Rs2也為16位寬,且因此所得目的 地寄存器單元RD 560為32位寬寄存器。
所屬領(lǐng)域的技術(shù)人員將了解,可使用多種不同技術(shù)和技藝中的任一者來表示信息和 信號。舉例來說,在以上描述中可參考的數(shù)據(jù)、指令、命令、信息、信號位、符號和 碼片可由電壓、電流、電磁波、磁場或磁性粒子、光場或光學(xué)粒子或其任何組合來表示。
所屬領(lǐng)域的技術(shù)人員將進一步了解,可將結(jié)合本文中所揭示的實施例而描述的各種 說明性邏輯區(qū)塊、模塊、電路和算法步驟實施為電子硬件、計算機軟件或兩者的組合。 為清楚地說明硬件和軟件的此互換性,已根據(jù)其功能性在上文中大體上描述了各種說明 性組件、區(qū)塊、模塊、電路和步驟。將此功能性實施為硬件還是軟件取決于特定應(yīng)用和 強加于整個系統(tǒng)的設(shè)計約束。所屬領(lǐng)域的技術(shù)人員可針對每一特定應(yīng)用以變化的方式實 施所描述的功能性,但不應(yīng)將此些實施方案解釋為導(dǎo)致脫離本發(fā)明的范圍。
可使用經(jīng)設(shè)計以執(zhí)行本文所描述的功能的通用處理器、數(shù)字信號處理器(DSP)、專 用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶 體管邏輯、離散硬件組件或其任何組合來實施或執(zhí)行結(jié)合本文中所揭示的實施例而描述 的各種說明性邏輯區(qū)塊、模塊和電路。通用處理器可為微處理器,但作為替代,所述處 理器可為任何常規(guī)的處理器、控制器、微控制器或狀態(tài)機。處理器也可實施為計算裝置 的組合,例如DSP和微處理器的組合、多個微處理器的組合、 一個或一個以上微處理器 結(jié)合DSP核心的組合,或任何其它此類配置。
結(jié)合本文所揭示的實施例而描述的方法或算法的步驟可直接包含在硬件中、由處理
器執(zhí)行的軟件中,或兩者的組合中。應(yīng)了解,這些實施例可用作軟件程序或用以支持軟件程序,這些軟件程序在某一形式的處理器或處理核心(例如計算機的CPU)上執(zhí)行, 或另外實施或?qū)崿F(xiàn)于機器或計算機可讀媒體上或內(nèi)。機器可讀媒體包括用于存儲或傳輸 具有可由機器(例如,計算機)讀取的形式的信息的任何機構(gòu)。舉例來說,機器可讀媒 體包括RAM存儲器、快閃存儲器、ROM存儲器、EPROM存儲器、EEPROM存儲器、 寄存器、硬盤、可移除盤、CD-ROM,或此項技術(shù)中已知的任何其它形式的存儲媒體。 將示范性存儲媒體耦合到處理器,使得處理器可從存儲媒體讀取信息或?qū)⑿畔懭氲酱?儲媒體。作為替代,可將存儲媒體整合到處理器。處理器和存儲媒體可駐留于ASIC中。 ASIC可駐留于使用者終端中?;蛘撸幚砥骱痛鎯γ襟w可作為離散組件駐留于使用者 終端中。
提供所揭示實施例的先前描述以使得任何所屬領(lǐng)域的技術(shù)人員能夠制造或使用本 發(fā)明。所屬領(lǐng)域的技術(shù)人員將易于了解對這些實施例的各種修改,且在不脫離本發(fā)明的 精神或范圍的情況下本文中所界定的一般原理可應(yīng)用于其它實施例。因此,并不希望將 本發(fā)明限于本文中所示的實施例,而是將賦予其與本文中所揭示的原理和新穎特征一致 的最廣泛范圍。
權(quán)利要求
1.一種計算機可讀媒體,其包含所述媒體內(nèi)所含有的多個可執(zhí)行指令中的一指令,所述指令當(dāng)在處理系統(tǒng)中執(zhí)行時促使所述處理系統(tǒng)選擇性地組合來自寄存器堆結(jié)構(gòu)的第一寄存器單元和第二寄存器單元以形成所得寄存器單元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu)內(nèi)。
2. 根據(jù)權(quán)利要求1所述的計算機可讀媒體,其中駐留于所述第一寄存器單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù)被存儲在所述所得寄存器單元的對應(yīng)部分中。
3. 根據(jù)權(quán)利要求2所述的計算機可讀媒體,其中所述第一寄存器單元和所述第二寄存器單元為32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
4. 根據(jù)權(quán)利要求1所述的計算機可讀媒體,其中所述第一寄存器單元的第一半字單元和所述第二寄存器單元的第二半字單元被存儲在所述所得寄存器單元的對應(yīng)部分中。
5. 根據(jù)權(quán)利要求4所述的計算機可讀媒體,其中所述第一半字單元和所述第二半字單元為16位寬單元,且所述所得寄存器單元為32位寬寄存器單元。
6. —種方法,其包含接收可執(zhí)行指令;以及執(zhí)行所述指令以選擇性地組合來自寄存器堆結(jié)構(gòu)的第一寄存器單元和第二寄存器單元以形成所得寄存器單元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu)內(nèi)。
7. 根據(jù)權(quán)利要求6所述的方法,其中所述執(zhí)行進一步包含將駐留于所述第一寄存器單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù)存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
8. 根據(jù)權(quán)利要求7所述的方法,其中所述第一寄存器單元和所述第二寄存器單元為32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
9. 根據(jù)權(quán)利要求6所述的方法,其中所述執(zhí)行進一步包含將所述第一寄存器單元的第一半字單元和所述第二寄存器單元的第二半字單元存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
10. 根據(jù)權(quán)利要求9所述的方法,其中所述第一半字單元和所述第二半字單元為16位寬單元,且所述所得寄存器單元為32位寬寄存器單元。
11. 根據(jù)權(quán)利要求6所述的方法,其中所述執(zhí)行進一步包含從存儲器檢索與所述第一寄存器單元和所述第二寄存器單元相關(guān)聯(lián)的數(shù)據(jù);將所述數(shù)據(jù)存儲在所述各自第一和第二寄存器單元內(nèi);以及將所述數(shù)據(jù)選擇性地組合到所述所得寄存器單元中。
12. —種方法,其包含從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu)內(nèi);在執(zhí)行單一指令期間選擇性地組合所述第一寄存器單元和所述第二寄存器單元以形成所得寄存器單元;以及將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
13. 根據(jù)權(quán)利要求12所述的方法,其中所述組合進一步包含接收用以組合所述第一寄存器單元和所述第二寄存器單元的所述指令;以及在所述處理單元內(nèi)執(zhí)行所述指令。
14. 根據(jù)權(quán)利要求12所述的方法,其中所述組合進一步包含將駐留于所述第一寄存器單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù)存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
15. 根據(jù)權(quán)利要求14所述的方法,其中所述第一寄存器單元和所述第二寄存器單元為32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
16. 根據(jù)權(quán)利要求12所述的方法,其中所述組合進一步包含將所述第一寄存器單元的第一半字單元和所述第二寄存器單元的第二半字單元 存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
17. 根據(jù)權(quán)利要求16所述的方法,其中所述第一半字單元和所述第二半字單元為16位 寬單元,且所述所得寄存器單元為32位寬寄存器單元。
18. 根據(jù)權(quán)利要求12所述的方法,其進一步包含從存儲器檢索與所述第一寄存器單元和所述第二寄存器單元相關(guān)聯(lián)的數(shù)據(jù); 將所述數(shù)據(jù)存儲在所述各自第一和第二寄存器單元內(nèi);以及 將所述數(shù)據(jù)選擇性地組合到所述所得寄存器單元中。
19. 一種含有可執(zhí)行指令的計算機可讀媒體,所述可執(zhí)行指令當(dāng)在處理系統(tǒng)中執(zhí)行時促 使所述處理系統(tǒng)執(zhí)行包含以下步驟的方法從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單元,所述第一 寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu)內(nèi);在執(zhí)行單一指令期間選擇性地組合所述第一寄存器單元和所述第二寄存器單元 以形成所得寄存器單元;以及將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
20. 根據(jù)權(quán)利要求19所述的計算機可讀媒體,其中所述組合進一步包含接收用以組合所述第一寄存器單元和所述第二寄存器單元的所述指令;以及 在所述處理單元內(nèi)執(zhí)行所述指令。
21. 根據(jù)權(quán)利要求19所述的計算機可讀媒體,其中所述組合進一步包含將駐留于所述第一寄存器單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù) 存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
22. 根據(jù)權(quán)利要求21所述的計算機可讀媒體,其中所述第一寄存器單元和所述第二寄存器單元為32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
23. 根據(jù)權(quán)利要求19所述的計算機可讀媒體,其中所述組合進一步包含將所述第一寄存器單元的第一半字單元和所述第二寄存器單元的第二半字單元 存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
24. 根據(jù)權(quán)利要求23所述的計算機可讀媒體,其中所述第一半字單元和所述第二半字 單元為16位寬單元,且所述所得寄存器單元為32位寬寄存器單元。
25. 根據(jù)權(quán)利要求19所述的計算機可讀媒體,其中所述方法進一步包含從存儲器檢索與所述第一寄存器單元和所述第二寄存器單元相關(guān)聯(lián)的數(shù)據(jù); 將所述數(shù)據(jù)存儲在所述各自第一和第二寄存器單元內(nèi);以及 將所述數(shù)據(jù)選擇性地組合到所述所得寄存器單元中。
26. —種集成電路,其包含存儲器,其用以存儲包含一個或一個以上指令的包;以及處理器,其耦合到所述存儲器,所述處理器進一步包含處理單元和耦合到所述處 理單元的寄存器堆結(jié)構(gòu);所述處理單元用以從所述寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單 元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu) 內(nèi);在執(zhí)行單一指令期間選擇性地組合所述第一寄存器單元和所述第二寄存器單元 以形成所得寄存器單元;以及將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以 用于進一步處理。
27. 根據(jù)權(quán)利要求26所述的電路,其中所述處理單元進一步從所述存儲器接收用以組 合所述第一寄存器單元和所述第二寄存器單元的所述指令且執(zhí)行所述指令。
28. 根據(jù)權(quán)利要求26所述的電路,其中所述處理單元進一步將駐留于所述第一寄存器 單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù)存儲在所述所得寄存器單元 內(nèi)的具有相同寬度的對應(yīng)部分中。
29. 根據(jù)權(quán)利要求28所述的電路,其中所述第一寄存器單元和所述第二寄存器單元為 32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
30. 根據(jù)權(quán)利要求26所述的電路,其中所述處理單元進一步將所述第一寄存器單元的 第一半字單元和所述第二寄存器單元的第二半字單元存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中。
31. 根據(jù)權(quán)利要求30所述的電路,其中所述第一半字單元和所述第二半字單元為16位 寬單元,且所述所得寄存器單元為32位寬寄存器單元。
32. 根據(jù)權(quán)利要求26所述的電路,其中所述存儲器進一步存儲與所述第一寄存器單元 和所述第二寄存器單元相關(guān)聯(lián)的數(shù)據(jù),所述寄存器堆結(jié)構(gòu)進一步檢索所述數(shù)據(jù)且將 所述數(shù)據(jù)存儲在所述各自第一和第二寄存器單元內(nèi),且所述處理單元進一步將所述 數(shù)據(jù)選擇性地組合到所述所得寄存器單元中。
33. —種設(shè)備,其包含用于從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單元的裝 置,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu) 內(nèi);用于在執(zhí)行單一指令期間選擇性地組合所述第一寄存器單元和所述第二寄存器 單元以形成所得寄存器單元的裝置;以及用于將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理的裝 置。
34. 根據(jù)權(quán)利要求33所述的設(shè)備,其進一步包含用于接收用以組合所述第一寄存器單元和所述第二寄存器單元的所述指令的裝 置;以及用于在所述處理單元內(nèi)執(zhí)行所述指令的裝置。
35. 根據(jù)權(quán)利要求33所述的設(shè)備,其進一步包含用于將駐留于所述第一寄存器單元內(nèi)的數(shù)據(jù)和駐留于所述第二寄存器單元內(nèi)的數(shù)據(jù)存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中的裝置。
36. 根據(jù)權(quán)利要求35所述的設(shè)備,其中所述第一寄存器單元和所述第二寄存器單元為 32位寬寄存器單元,且所述所得寄存器單元為64位寬寄存器單元。
37. 根據(jù)權(quán)利要求33所述的設(shè)備,其進一步包含用于將所述第一寄存器單元的第一半字單元和所述第二寄存器單元的第二半字 單元存儲在所述所得寄存器單元內(nèi)的具有相同寬度的對應(yīng)部分中的裝置。
38. 根據(jù)權(quán)利要求37所述的設(shè)備,其中所述第一半字單元和所述第二半字單元為16位 寬單元,且所述所得寄存器單元為32位寬寄存器單元。
39. 根據(jù)權(quán)利要求33所述的設(shè)備,其進一步包含用于從存儲器檢索與所述第一寄存器單元和所述第二寄存器單元相關(guān)聯(lián)的數(shù)據(jù) 的裝置;用于將所述數(shù)據(jù)存儲在所述各自第一和第二寄存器單元內(nèi)的裝置;以及 用于將所述數(shù)據(jù)選擇性地組合到所述所得寄存器單元中的裝置。
全文摘要
本發(fā)明描述一種用以組合微處理器(例如數(shù)字信號處理器)內(nèi)的多個寄存器單元的方法和系統(tǒng)。從處理單元內(nèi)的寄存器堆結(jié)構(gòu)檢索第一寄存器單元和第二寄存器單元,所述第一寄存器單元和所述第二寄存器單元非相鄰地位于所述寄存器堆結(jié)構(gòu)內(nèi)。在執(zhí)行單一指令期間進一步組合所述第一寄存器單元和所述第二寄存器單元以形成所得寄存器單元。最后,將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理?;蛘?,檢索來自所述第一寄存器單元的第一半字單元和來自所述第二寄存器單元的第二半字單元。在執(zhí)行單一指令期間將所述第一半字單元和所述第二半字單元進一步輸入到所得寄存器單元的對應(yīng)高部分和低部分中以形成所述所得寄存器單元。最后,將所述所得寄存器單元存儲在所述寄存器堆結(jié)構(gòu)內(nèi)以用于進一步處理。
文檔編號G06F9/315GK101495959SQ200780028268
公開日2009年7月29日 申請日期2007年7月31日 優(yōu)先權(quán)日2006年8月2日
發(fā)明者盧奇安·科德雷斯庫, 埃里克·普隆德克, 貿(mào) 曾 申請人:高通股份有限公司