專利名稱:數(shù)據(jù)處理系統(tǒng)中的算術(shù)運(yùn)算的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)。更具體來說,本發(fā)明涉及用于執(zhí)行適合執(zhí)行飽和算術(shù)運(yùn)算的算術(shù)運(yùn)算的數(shù)據(jù)處理系統(tǒng)。
許多DSP算法使用有時(shí)被稱作Q15算術(shù)和Q31算術(shù)的算術(shù)。Q15數(shù)是普通的16位的二進(jìn)制補(bǔ)碼整數(shù)(2’s complement integer),但被視為代表該整數(shù)除以215。因?yàn)橐粋€(gè)16位的二進(jìn)制補(bǔ)碼整數(shù)能表示范圍在-215至+215-1的數(shù),所以一個(gè)Q15能表示范圍在-1至+(1-2-15)的數(shù)。
類似地,Q31數(shù)是普通的32位二進(jìn)制補(bǔ)碼整數(shù),被視為代表該整數(shù)除以231,能表示范圍在-1至+(1-2-31)的數(shù)。對(duì)于任何其它值N可以類似地定義(N+1)位的QN數(shù)。
Q15和Q31算術(shù)的一個(gè)重要特點(diǎn)是,它們是“飽和的”。如果某運(yùn)算的數(shù)學(xué)運(yùn)算結(jié)果超過最大正值(+1-2-N),則該飽和結(jié)果就是該最大正值;類似地,如果數(shù)學(xué)結(jié)果小于-1,則該飽和結(jié)果就是-1。例如,在Q15算術(shù)中,如果A=0×8000(代表-1),B=0×C000(代表-0.5),則A與B相加生成的結(jié)果將是0×8000(代表-1),而不是正常的16位二進(jìn)制補(bǔ)碼結(jié)果0×4000。
在DSP算法中一個(gè)非常需要的并且經(jīng)常出現(xiàn)的運(yùn)算是“乘-累加”,即兩個(gè)操作數(shù)相乘后接著加上第三個(gè)操作數(shù)結(jié)果=(A*B)+C如果希望為飽和(有時(shí)稱為剪切)算術(shù)提供這種乘-累加指令,會(huì)產(chǎn)生嚴(yán)重問題。對(duì)QN數(shù)進(jìn)行運(yùn)算時(shí)尤其如此。
為了適應(yīng)飽和及非飽和形式的各種不同類型的指令,要求有相當(dāng)大的操作碼位空間。此外,在尋求提供單一周期乘法性能(singlecycle multiply performance)時(shí),不得不適應(yīng)對(duì)飽和及相關(guān)調(diào)整的要求,這額外的負(fù)擔(dān)使得時(shí)鐘速度受最壞情況飽和乘法指令的不利限制。
從一方面來看,本發(fā)明提供的數(shù)據(jù)處理裝置包含一個(gè)響應(yīng)數(shù)據(jù)處理指令字而生成處理控制信號(hào)的指令譯碼器;和由所述處理控制信號(hào)控制的、對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作的處理邏輯;其中所述指令譯碼器響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Fun(p)+Q),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
本發(fā)明認(rèn)識(shí)到,提供適于應(yīng)付飽和乘-累加運(yùn)算的需要的專用指令,具有顯著的優(yōu)點(diǎn)。更具體來說,對(duì)標(biāo)準(zhǔn)的所需單一周期乘法的定時(shí)要求,因處理在隨后執(zhí)行累加運(yùn)算的指令中使用的周期中更容易適應(yīng)的運(yùn)算的飽和性質(zhì)所需的調(diào)整而得到緩解。新指令也能取代對(duì)-定義若干乘法指令的飽和版本,由此節(jié)省操作碼位空間和支持飽和運(yùn)算所需其它開銷-的需要。最后,在系統(tǒng)內(nèi)已經(jīng)設(shè)置的硬件的基礎(chǔ)上,增加少量額外的硬件就可以實(shí)現(xiàn)新指令,以處理不飽和和飽和運(yùn)算的其它方面。
當(dāng)然,用來實(shí)現(xiàn)新指令的硬件可采取不同的形式??梢园旬a(chǎn)生最后結(jié)果N位數(shù)據(jù)字所需的不同指令以各種不同的方式分組,由不同的電路單元執(zhí)行。這些使用單一指令產(chǎn)生與以上給出的相同的最后值的結(jié)果N位數(shù)據(jù)字的各種不同選擇方案,都是本發(fā)明的實(shí)施例。
也可以用與上述的用于飽和乘-累加運(yùn)算的指令類似的方式,提供支持飽和乘-減運(yùn)算的類似指令。
由本發(fā)明的指令應(yīng)用的移位量可以具有各種不同的值。不過,使得被移位字是第一個(gè)N位數(shù)據(jù)操作數(shù)字P的兩倍的移位量特別有用。
如果對(duì)兩個(gè)Q15數(shù)進(jìn)行整數(shù)乘法,正常生成的結(jié)果是個(gè)32位的“類Q30的”數(shù)-對(duì)應(yīng)其的普通32位帶符號(hào)二進(jìn)制補(bǔ)碼值被視為被除以230,由此表示范圍在-2至+(2-2-30)的數(shù)。也可以把類Q30的數(shù)看作是有30個(gè)二進(jìn)制位置的32位帶符號(hào)定點(diǎn)數(shù)。不過,在這種情況中進(jìn)行進(jìn)一步處理所需的是一個(gè)Q31數(shù)。為了處理這個(gè)問題,可以在一個(gè)標(biāo)準(zhǔn)整數(shù)乘法之后執(zhí)行本發(fā)明的指令,先用移位量把整數(shù)乘法的結(jié)果加倍,將其從類Q30形式變成Q31形式,再把其飽和以及進(jìn)行累加或減少。
用于執(zhí)行飽和的邏輯電路能采取許多不同的形式。然而,在本發(fā)明的最佳實(shí)施例中,飽和所述移位字包含檢測(cè)所述第一個(gè)N位數(shù)據(jù)操作數(shù)字P的預(yù)定特征,如果檢測(cè)到,就把所述移位值替換為準(zhǔn)許值的范圍的一個(gè)相應(yīng)的端點(diǎn)值。
這個(gè)特點(diǎn)考慮到,在有些情況中,飽和能通過檢測(cè)第一個(gè)N位數(shù)據(jù)操作數(shù)字P的特征而提供,這是因?yàn)?,要?duì)其進(jìn)行的操作,是相對(duì)受限制的形式的,所以,可以具體地檢測(cè)能導(dǎo)致要求飽和的上溢或下溢的情況,使硬件要求有總體的降低。
特別是,如果所施加的移位量使第一個(gè)N位數(shù)據(jù)操作數(shù)字P加倍,則通過比較第一個(gè)N位數(shù)據(jù)操作數(shù)字P的兩個(gè)最高有效位,就能簡(jiǎn)單地檢測(cè)到對(duì)飽和的需要。
與比較受限制的能導(dǎo)致Fun(X)指令的上溢或下溢的情況的范圍相比,Sat(X)函數(shù)的上溢或下溢會(huì)更普遍地發(fā)生,所以本發(fā)明的最佳實(shí)施例要使得Sat(X)包含檢測(cè)X是否在準(zhǔn)許值的范圍之外,如果檢測(cè)到,則把X替換為準(zhǔn)許值的所述范圍的一個(gè)相應(yīng)的端點(diǎn)值,以生成所述N位結(jié)果數(shù)據(jù)字R。
盡管本發(fā)明的新指令本身是有益的,如上所述,它們特別適合于其中為執(zhí)行第二指令字而提供通過將第三個(gè)N/2位數(shù)據(jù)操作數(shù)字A與第四個(gè)N/2位數(shù)據(jù)操作數(shù)字B相乘生成一個(gè)生成第一個(gè)N位操作數(shù)數(shù)據(jù)字的乘法的實(shí)施例。
有可能將本發(fā)明的指令用于任何類型的操作數(shù)。然而,該指令特別適用的實(shí)施例中,所述第一個(gè)N位操作數(shù)數(shù)據(jù)字P、所述第二個(gè)N位操作數(shù)數(shù)據(jù)字Q和所述結(jié)果N為數(shù)據(jù)字R是有符號(hào)的定點(diǎn)數(shù)據(jù)字,該定點(diǎn)在最高有效位位置的右邊,使得-1<=P<+1,-1<=Q<+1,-1<=R<+1,且Sat(X)的變量范圍是-1<=X<+1。
如上所述,這種QN類型的操作數(shù)要求的調(diào)整和飽和,可以由本發(fā)明的指令有效地提供,而不過分地影響數(shù)據(jù)處理系統(tǒng)的其余部分。
第一個(gè)N位操作數(shù)數(shù)據(jù)字P的最通常的有用值是那些能由N/2位乘N/2位的符號(hào)乘法生成的值。然而,本發(fā)明的最佳實(shí)施例能擴(kuò)展Fun(X)的功能,使得它能移位和飽和所有N位可能值X。
可將本發(fā)明能用于其中N有各種不同值的系統(tǒng)。然而,本發(fā)明對(duì)其特別有用的類型的DSP操作通常要求N的值例如是N=32。
本發(fā)明當(dāng)然可以以包含分立的部件的系統(tǒng)的形式實(shí)現(xiàn),但數(shù)據(jù)處理裝置最好是以集成電路的形式實(shí)現(xiàn)。
從另一個(gè)方面來看,本發(fā)明提供一種處理數(shù)據(jù)的方法,所述方法包含以下步驟響應(yīng)數(shù)據(jù)處理指令字,生成處理控制信號(hào);在所述處理控制信號(hào)的控制下對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作;其中響應(yīng)第一個(gè)指令字,生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位操作數(shù)數(shù)據(jù)字P和第二個(gè)N位操作數(shù)數(shù)據(jù)字Q執(zhí)行數(shù)據(jù)處理操作,以生成結(jié)果N位數(shù)據(jù),后者由下述公式給出R=Sat(Fun(P)+Q),其中,Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
也提供了本發(fā)明的附加方法,其中,指令進(jìn)行減法而不是加法運(yùn)算。
現(xiàn)在將結(jié)合附圖來說明僅作為例子的本發(fā)明的一個(gè)實(shí)施例。
圖1是集成電路內(nèi)的指令譯碼器和處理邏輯;圖2、3和4是表示為支持飽和算術(shù)而提供的指令的操作的流程圖。
圖1表示集成電路2(類似于英國(guó)劍橋的ARM有限公司生成的ARM9TDMI微處理器的一部分)的一個(gè)局部,包含指令譯碼器4和處理邏輯6。處理邏輯6由許多不同、獨(dú)立的功能單元組成。寄存器組8存儲(chǔ)待處理的數(shù)據(jù)操作數(shù)字(P、Q)。這些字可以從寄存器組8讀出,通過多路轉(zhuǎn)換器10、12、14提供給處理邏輯6內(nèi)的其它各種處理單元。提供一個(gè)整數(shù)乘法器16,用于執(zhí)行帶符號(hào)整數(shù)乘法以及其它功能。提供一個(gè)加法器18,用于執(zhí)行不飽和乘-累加操作,并用于把乘法器的結(jié)果由進(jìn)位保留轉(zhuǎn)換成二進(jìn)制補(bǔ)碼格式。也提供一個(gè)移位器20和一個(gè)算術(shù)邏輯單元22。處理邏輯6的上述基本部件是普通已知的。指令譯碼器4發(fā)出的控制信號(hào)24被施加到處理邏輯6內(nèi)的各種單元,控制和協(xié)調(diào)它們的操作。更具體來說,當(dāng)指令被指令譯碼器解譯時(shí),控制信號(hào)24被輸出,去開關(guān)處理邏輯6內(nèi)部的各種多路轉(zhuǎn)換器,以選擇所需的數(shù)據(jù)路徑,啟動(dòng)和配置處理邏輯6內(nèi)的各種處理單元,以便執(zhí)行所譯碼指令規(guī)定的操作。為簡(jiǎn)潔起見,圖中省略了連接各個(gè)部件與指令譯碼器的信號(hào)線。
為了支持用于飽和算術(shù)(QDADD、QDSUB和QDRSB)的另外的指令,在算術(shù)邏輯單元22的上游設(shè)置一個(gè)移位和飽和單元26,在算術(shù)邏輯單元22運(yùn)行所在的流水線階段之后的下一個(gè)流水線階段的通往寄存器組8的反饋路徑上設(shè)置一個(gè)完全飽和單元28。操作中,移位和飽和單元26首先檢查、確定它的32位的數(shù)據(jù)字輸入的最高有效兩位是否不相等。如果檢測(cè)到這個(gè)條件,則當(dāng)該輸入數(shù)據(jù)字代表一個(gè)要通過左移轉(zhuǎn)換成Q31字的類Q30的字時(shí),左移一位將導(dǎo)致上溢或下溢。如果這兩個(gè)最高有效位是“01”,則移位和飽和單元26輸出代表準(zhǔn)許值的范圍的最大端點(diǎn)的0×7FFFFFFF。類似地,如果這兩個(gè)最高有效位是“10”,則移位和飽和單元26輸出代表準(zhǔn)許值的范圍的最小端點(diǎn)的0×80000000。如果這些條件哪一個(gè)都未檢測(cè)到,則移位和飽和單元26把輸入二進(jìn)制值數(shù)據(jù)值左移一位-相當(dāng)于將其值加倍,相應(yīng)地把通過Q15與Q15數(shù)的相乘所獲得的類Q30的表示轉(zhuǎn)換成進(jìn)一步處理(例如累加)和飽和所需的Q31表示。
移位和飽和單元26配有一個(gè)旁接通路,這樣,如果被解譯的特定指令不需要這種操作時(shí),就能響應(yīng)來自指令譯碼器4的相應(yīng)控制信號(hào)24而關(guān)閉移位和飽和單元26的操作。移位和飽和單元26位于A總線上,這個(gè)總線的定時(shí)約束條件一般比B總線的少,因?yàn)锽總線包含位移器20。相應(yīng)地,移位和飽和單元26不引起任何其它嚴(yán)重的定時(shí)問題。
在返回路徑上設(shè)置一個(gè)完全飽和單元28,供在算術(shù)邏輯單元22執(zhí)行了所需的加法或減法后使用。完全飽和單元28能按已知的原理操作,檢測(cè)由算術(shù)邏輯單元22產(chǎn)生的有符號(hào)結(jié)果的上溢和下溢并把它更正成準(zhǔn)許值的范圍的相應(yīng)的最大或最小端點(diǎn)值。同移位和飽和單元26一樣,完全飽和單元28也配有一個(gè)旁接通路,這樣,如果不需要這種飽和時(shí),就能響應(yīng)來自指令譯碼器4的相應(yīng)控制信號(hào)24而關(guān)閉其操作。因?yàn)橥耆柡蛦卧?8位于一個(gè)一般對(duì)加法和減法指令不起作用的流水線階段,所以該單元不增添任何定時(shí)問題。不過它要求,如果飽和指令的結(jié)果被緊接的指令使用,則處理器要聯(lián)動(dòng)一個(gè)周期。這個(gè)聯(lián)動(dòng)的處理方式,類似于許多處理器上在由加載指令加載的值被緊接的指令使用時(shí)所產(chǎn)生的聯(lián)動(dòng)。
在總體操作中,為了與一個(gè)Q31累加操作一起執(zhí)行一個(gè)Q15乘以Q15的乘法,處理如下地進(jìn)行。一開始把Q15值從寄存器組8讀出到總線A和總線B上,作為輸入發(fā)送到單周期整數(shù)乘法器16。將類Q30形式的結(jié)果,反饋到寄存器組8。在隨后一個(gè)處理周期,執(zhí)行新指令的其中一個(gè)(例如QDADD指令),把類Q30的乘法結(jié)果讀出到A總線上,把Q31累加值讀出到B總線上。然后把類Q30值左移一位,或者由移位和飽和單元26飽和,作為一個(gè)輸入提供給算術(shù)邏輯單元22。把B總線上的Q31值作為另一個(gè)輸入提供給算術(shù)邏輯單元22-通過用適當(dāng)?shù)目刂菩盘?hào)24使移位器20不移位其輸入值。移位和飽和單元26已經(jīng)把類Q30值更正成所需的飽和Q31值,然后由算術(shù)邏輯單元22將該值與B總線上的Q31值相加。然后將算術(shù)邏輯單元22的輸出提供到完全飽和單元28,在這里,通過檢測(cè)來自算術(shù)邏輯單元22的上溢和下溢標(biāo)志及其它標(biāo)準(zhǔn)條件,它必須得到一次Q31飽和,然后才能被存儲(chǔ)回寄存器組8中??梢圆挥脠?zhí)行加法的算術(shù)邏輯單元22,而由適當(dāng)?shù)目刂菩盘?hào)24控制,把QDRSB指令中的B總線值減去A總線值,或者把QDSUB指令中的A總線值減去B總線值。算術(shù)邏輯單元22根據(jù)指令譯碼器的適當(dāng)控制信號(hào)24執(zhí)行減法的配置,可以以各種標(biāo)準(zhǔn)方式實(shí)現(xiàn)。
根據(jù)以上敘述將看到,由QDADD、QDSUB和QDRSB指令執(zhí)行的操作,已經(jīng)以不同方式在處理邏輯內(nèi)的各種功能單元之間被劃分。本領(lǐng)域的熟練人員將認(rèn)識(shí)到,這些操作在各種單元之間的劃分,可以以不同的方式進(jìn)行,而仍然產(chǎn)生相同的最終結(jié)果。
圖2是表示在QDADD指令中執(zhí)行的處理步驟流程圖。在步驟40中,檢測(cè)第一個(gè)32位操作數(shù)數(shù)據(jù)字的兩個(gè)最高有效位是否等于“01”。如果是這樣,則左移一位將導(dǎo)致上溢,于是用步驟42來把該值設(shè)置成最大準(zhǔn)許正值(+1-231)。類似地,步驟44檢查兩個(gè)最高有效位是否等于表示左移一位將導(dǎo)致下溢的“10”。在這種情況下,如果檢測(cè)是,則把該值設(shè)置成最小準(zhǔn)許值-1。
如果既沒有檢測(cè)到上溢條件也沒有檢測(cè)到下溢條件,則把第一個(gè)32位操作數(shù)數(shù)據(jù)字左移一位,由此將其從類Q30的形式轉(zhuǎn)換成Q31的形式。步驟40至48的操作對(duì)應(yīng)于移位和飽和單元26所提供的功能和前文所述的Fun(X)功能。
在步驟50,執(zhí)行一個(gè)加法。該加法對(duì)應(yīng)于圖1中算術(shù)邏輯單元22所執(zhí)行的加法。
步驟52和54檢測(cè)并處理因加法步驟50而產(chǎn)生的飽和值中的上溢。類似地,步驟56和58處理下溢。如果既沒有檢測(cè)到上溢也沒有檢測(cè)到下溢,則不作更正。在步驟60將QDADD指令的結(jié)果R存儲(chǔ)回寄存器組8內(nèi)的寄存器中。
步驟52至58的操作對(duì)應(yīng)于圖1中完全飽和單元28所提供的功能和前文所述的Sat(X)功能。
圖3表示一個(gè)類似的、但是是表示QDSUB指令的流程圖。在這個(gè)指令中,圖2的步驟50被替換為步驟62,在該步驟中,把移位并飽和過的第一操作數(shù)數(shù)據(jù)字P減去第二32位操作數(shù)數(shù)據(jù)字Q。
圖4與圖3類似,但圖4的步驟64中掉換了圖3的步驟62中進(jìn)行的減法的順序。
權(quán)利要求
1.一種數(shù)據(jù)處理裝置,包含一個(gè)響應(yīng)數(shù)據(jù)處理指令字而生成處理控制信號(hào)的指令譯碼器;和由所述處理控制信號(hào)控制的、對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作的處理邏輯;其中所述指令譯碼器響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Fun(P)+Q),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
2.一種數(shù)據(jù)處理裝置,包含一個(gè)響應(yīng)數(shù)據(jù)處理指令字而生成處理控制信號(hào)的指令譯碼器;和由所述處理控制信號(hào)控制的、對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作的處理邏輯;其中所述指令譯碼器響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Fun(P)-Q),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
3.一種數(shù)據(jù)處理裝置,包含一個(gè)響應(yīng)數(shù)據(jù)處理指令字而生成處理控制信號(hào)的指令譯碼器;和由所述處理控制信號(hào)控制的、對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作的處理邏輯;其中所述指令譯碼器響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Q-Fun(P)),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
4.如權(quán)利要求1、2、3中任一項(xiàng)的數(shù)據(jù)處理裝置,其中,所述移位量使得所述移位字是所述第一個(gè)N位數(shù)據(jù)操作數(shù)字P的加倍。
5.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,飽和所述移位字包含檢測(cè)所述第一個(gè)N位數(shù)據(jù)操作數(shù)字P的預(yù)定特征,如果檢測(cè)到,就把所述移位值替換為準(zhǔn)許值的范圍的一個(gè)相應(yīng)的端點(diǎn)值。
6.如權(quán)利要求4和5的數(shù)據(jù)處理裝置,其中,所述第一個(gè)N位數(shù)據(jù)操作數(shù)字P是個(gè)有符號(hào)值,所述預(yù)定特征是所述第一個(gè)N位數(shù)據(jù)操作數(shù)字P的兩個(gè)最高有效位不相等。
7.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,Sat(X)包含檢測(cè)X是否在準(zhǔn)許值的范圍之外,如果檢測(cè)到,則把X替換為準(zhǔn)許值的所述范圍的一個(gè)相應(yīng)的端點(diǎn)值,以生成所述N位結(jié)果數(shù)據(jù)字R。
8.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,所述處理邏輯包含一個(gè)乘法器,所述第一個(gè)N位操作數(shù)數(shù)據(jù)字是根據(jù)第二指令字將第三個(gè)N/2位數(shù)據(jù)操作數(shù)字A與第四個(gè)N/2位數(shù)據(jù)操作數(shù)字B進(jìn)行有符號(hào)乘法而生成的乘法結(jié)果。
9.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,所述第一個(gè)N位操作數(shù)數(shù)據(jù)字P、所述第二個(gè)N位操作數(shù)數(shù)據(jù)字Q和所述結(jié)果N為數(shù)據(jù)字R是有符號(hào)的定點(diǎn)數(shù)據(jù)字,該定點(diǎn)在最高有效位位置的右邊,使得-1<=P<+1,-1<=Q<+1,-1<=R<+1,且Sat(X)的變量范圍是-1<=X<+1。
10.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,F(xiàn)un(X)是個(gè)對(duì)所有N位值X操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
11.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,N=32。
12.如前面任一項(xiàng)權(quán)利要求的數(shù)據(jù)處理裝置,其中,所述數(shù)據(jù)處理裝置包含一個(gè)集成電路。
13.一種數(shù)據(jù)處理方法,所述方法包含響應(yīng)數(shù)據(jù)處理指令字,生成處理控制信號(hào);和在所述處理控制信號(hào)控制下,對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作;其中響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Fun(P)+Q),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
14.一種數(shù)據(jù)處理方法,所述方法包含響應(yīng)數(shù)據(jù)處理指令字,生成處理控制信號(hào);和在所述處理控制信號(hào)控制下,對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作;其中響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Fun(P)-Q),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
15.一種數(shù)據(jù)處理方法,所述方法包含響應(yīng)數(shù)據(jù)處理指令字,生成處理控制信號(hào);和在所述處理控制信號(hào)控制下,對(duì)數(shù)據(jù)操作數(shù)字執(zhí)行數(shù)據(jù)處理操作;其中響應(yīng)一個(gè)第一指令字而生成控制信號(hào),以控制所述處理邏輯對(duì)第一個(gè)N位數(shù)據(jù)操作數(shù)字P和第二個(gè)N位數(shù)據(jù)操作數(shù)字Q執(zhí)行數(shù)據(jù)處理操作,生成如下式給出的結(jié)果N位數(shù)據(jù)字RR=Sat(Q-Fun(P)),其中Sat(X)是一個(gè)返回X的飽和值的函數(shù);Fun(X)是一個(gè)對(duì)至少那些可以由N/2位乘以N/2位的帶符號(hào)乘法生成的X值操作的函數(shù),用于返回一個(gè)通過把X移位某移位量而生成一個(gè)移位字并飽和所述移位字而獲得的值。
全文摘要
在總體操作中,為了與一個(gè)Q31累加操作一起執(zhí)行一個(gè)Q15乘法,處理如下進(jìn)行:一開始把Q15值從寄存器組(8)讀到總線A和總線B,作為輸入發(fā)送到單周期整數(shù)乘法器(16)。將類Q30形式的結(jié)果,反饋到寄存器組(8)。在隨后一個(gè)處理周期,執(zhí)行新指令的其中一個(gè)(例如QDADD指令),把類Q30的乘法結(jié)果讀到A總線,把Q31累加值讀到B總線。然后把類Q30值左移一位,或者由移位和飽和單元(26)進(jìn)行飽和,作為一個(gè)輸入提供給算術(shù)邏輯單元(22)。
文檔編號(hào)G06F7/544GK1326565SQ9981352
公開日2001年12月12日 申請(qǐng)日期1999年5月26日 優(yōu)先權(quán)日1998年11月20日
發(fā)明者D·J·西爾 申請(qǐng)人:Arm有限公司