專利名稱:執(zhí)行算術(shù),邏輯與有關(guān)運(yùn)算的方法及數(shù)值算術(shù)單元的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種對數(shù)值元素執(zhí)行算術(shù),邏輯與有關(guān)運(yùn)算的方法以及在一臺處理器中的一個數(shù)值算術(shù)單元(ALU)。
一臺計(jì)算機(jī)中的算術(shù)邏輯單元是在其中對信息元素進(jìn)行算術(shù),邏輯,與有關(guān)運(yùn)算的部件。這些操作是根據(jù)提交給該ALU的算術(shù)指令規(guī)定的。在多數(shù)傳統(tǒng)的ALU與累加器與/或緩沖寄存器或其他種類的寄存器合作用來暫存數(shù)值。
本發(fā)明的主要目的是提供一種能以一種簡易的方法化簡數(shù)值表達(dá)式的方法或ALU。
本發(fā)明的另一目的是提供一種在其運(yùn)算中不需要與一個暫時存儲器合作便能進(jìn)行工作的ALU。
本發(fā)明的又一目的是提供一種使用為其運(yùn)算而提交給它的信息中的算術(shù)指令的ALU。
本發(fā)明的又另一目的是提供一種能夠處理具有可控制地可變劃分?jǐn)?shù)值部分與冪指數(shù)部分的作為運(yùn)算數(shù)的浮點(diǎn)數(shù)值的ALU。
本發(fā)明的又另一目的是提供一種能夠處理具有浮點(diǎn)數(shù)值作為運(yùn)算數(shù)及一個給現(xiàn)劃分?jǐn)?shù)值部分與同指數(shù)部分的信息的碼段的總線上的比特(bit)信息的ALU。
本發(fā)明的又國一目的是提供一種能夠處理為其在總線上的運(yùn)算數(shù)給出的算術(shù)指令的ALU,這些指令是在可變碼長的碼段中提供的。
本發(fā)明的又一個目的是提供一種具有作為浮點(diǎn)數(shù)解釋與作為整數(shù)解釋之間進(jìn)行改變的ALU。碼的密度也是所需要的。
為了至少實(shí)現(xiàn)上述主要目的,本發(fā)明一般性地構(gòu)思了一種在數(shù)值元素上執(zhí)行算術(shù),邏輯與有關(guān)運(yùn)算的方法,它包括下述步驟a)提供一張包括要處理的數(shù)值元素與指令信息的輸入表,b)使用指令信息直接控制與執(zhí)行輸入表上的數(shù)值元素的一個運(yùn)算,c)每一數(shù)值元素提供一個具有予定比特長度的字,最大字?jǐn)?shù)等于輸入表所能夠提供的最大元素?cái)?shù),d)處理設(shè)備以改寫輸入表中的元素執(zhí)行一個計(jì)算,e)從處理設(shè)備提交結(jié)果輸出表。
輸入表與輸出表中的元素的最大數(shù)目最好是四個。這樣,便可用一個指令字表示來提供一個表元素,用兩個數(shù)值表示中的各個來提供兩個表元素,而用一個中間計(jì)算結(jié)果來提供另一個表元素,該中間計(jì)算結(jié)果是在重復(fù)循環(huán)改寫輸入元素若干次所作的計(jì)算中得到的。
該表最好包含一個函數(shù)應(yīng)用,其中其元素之一是一個指令碼而其余的則為該指令的變元。一條指令碼到輸入表中來執(zhí)行的直到達(dá)到一個最后的結(jié)果,在每一次改寫時,如果對實(shí)際計(jì)算適合,在表的改寫中可包括一個改變了的指令碼字,后面跟著適當(dāng)?shù)闹底帧?br>
在實(shí)際處理以前,將數(shù)值字以一種編碼的形式提供是適當(dāng)?shù)?。最好,表示?shù)值字的字是用一種將該數(shù)值設(shè)定為一種稠密表示的編碼來提供,即一個值的每一個編碼表示只對應(yīng)于一個解釋后的值??梢詾楸硎疽粋€整數(shù)值的二進(jìn)制字規(guī)定一種第一編碼??梢詾楸硎疽粋€浮點(diǎn)值的二進(jìn)制字規(guī)定一種第二編碼。這些編碼最好是這樣的,經(jīng)過編碼浮點(diǎn)值后的表示是以與整型值表示相同的次序提供的。在這一方法中,兩種表示中任何一種都無須是二進(jìn)制數(shù)字形式的。這樣,便可提供一種硬件按照給定的規(guī)則只須隱含地在變形后的位模式上進(jìn)行計(jì)算即可,即無須了解所作出的解釋。
一種簡易地實(shí)現(xiàn)具有可變冪指數(shù)寬度的浮點(diǎn)值表示方法是使該二進(jìn)制編碼的浮點(diǎn)值表示包含一個代碼段,一個冪指數(shù)段,及一個數(shù)值段,代碼段中有一個關(guān)于冪指數(shù)段與數(shù)值段之間的分界位置的指示,使得冪指數(shù)段與數(shù)值段能具有可變的長度。該稠客表示中可規(guī)定包含一個虛擬的“1”,即在表示中并不實(shí)際地提供一個“1”,它位于該字中浮點(diǎn)值表示的數(shù)值部分的段的前面。
下面是一張?jiān)诒菊f明書中使用的詞及它們的保留含義的表閉包(closure)定義一個過程的一個分層結(jié)構(gòu)的實(shí)體。所有閉包都有唯一地定義該閉包的一個根。一臺歸約機(jī)器的歸約工作是在閉包上進(jìn)行的。機(jī)器的整體狀態(tài)是由歸約變換的。
目標(biāo)(goal)要執(zhí)行(即歸約)的一個閉包。
半字節(jié)(group)半字節(jié)由四個二進(jìn)制位組成。每一個字由若干半字節(jié)組成。
片(slice)一個或若干個字。一片包含諸如兩個字的最低位組成的二個比特(bit)。
對準(zhǔn)(align)保證要使用的比特在一個字中是正確地定位的。
冗余(redundancy)為了檢測錯誤的目的而附加的數(shù)據(jù)或比特。
規(guī)范碼(normalizcd code)一種用下述方法表示的浮點(diǎn)值,對于正值,其數(shù)值部分的最高位為一個虛擬的“1”,而對于負(fù)值,則為一個虛擬的“0”。
二進(jìn)制表示(binary represenfation)在任何數(shù)字系統(tǒng)或編碼中表示一個數(shù)的“0”與/或“1”的一個組合。
二進(jìn)制數(shù)字形式(binary digit form)基數(shù)為2的數(shù)字系統(tǒng)。
H碼(H-code)根據(jù)本發(fā)明的ALU中所使用的一種特定碼,用于表示數(shù)字。也稱作H值。
整型H值用于表示整型值的一種特定的碼。
浮點(diǎn)H值用于表示浮點(diǎn)值的一種特定的碼。
稠密表示每一個二進(jìn)制組合(位模式)對應(yīng)于一個唯一的數(shù)值。
為了對本發(fā)明的更全面了解以及為了其進(jìn)一步的目的與優(yōu)點(diǎn),現(xiàn)在對結(jié)合附圖所作的下述說明進(jìn)行參照,其中
圖1A為根據(jù)本發(fā)明的ALU的一個示意圖;
圖1B為圖1A中所示的ALU的時鐘信號及某些基本控制信號的示圖;
圖2為根據(jù)本發(fā)明的ALU的一個實(shí)施例的示意性框圖;
圖3為算術(shù)表示中的比特段劃分的示意表示;
圖4A為整數(shù)的代碼的圖形表示;
圖4B為浮點(diǎn)值的代碼的圖形表示;
圖4C為用于說明提供在一條7比特總線上的一個算術(shù)表示的建立的一個示意表示;
圖5A-5B示出根據(jù)圖4提供的一張數(shù)據(jù)表;
圖6為根據(jù)本發(fā)明的ALU的一個實(shí)施例的電路圖;
圖7A至C示出在不同定時序列中根據(jù)本發(fā)明的數(shù)值A(chǔ)LU的一個輸入/輸出緩沖器的一個實(shí)施例;
圖8示出圖6中所示的電路中所包含的一個運(yùn)算數(shù)單元的輸出組合連同為提供不同的輸出組合而用于控制包含在該運(yùn)算數(shù)單元中的一個元件的助記碼的一個示例圖;
圖9作為一個例子示出圖6中所示的電路中所包含的一個精度譯碼器在輸入總線之一上的一個字的輸出;
圖10示出了作為例子的一個二進(jìn)制數(shù)值部分比特組合的不同解釋的一個例子;
圖11與12示出支持兩個浮點(diǎn)數(shù)相加的一個例子的說明的示圖;
圖13為圖6中所示的電路中所包含的一個精度譯碼器的實(shí)施例的電路圖;
圖14A示出了圖4中所示的電路中的整字加法器的一個實(shí)施例的框圖;
圖14B示出了圖14A中的加法器的一個精度片的框圖;
圖14C圖14B中的精度片的一個比特片的框圖;
圖15示出了圖6中所示電路中的一個加1器中一個精度片的一個實(shí)施例,以及圖16示出了圖6中所示的電路中的運(yùn)算數(shù)電路中的選擇器所包含的一個基本選擇器比特片的一個實(shí)施例的電路圖。
圖1A圖1A中示意性地示出的數(shù)值算術(shù)邏輯單元ALU包括一個控制驅(qū)動單元1a與在特定的輸入/輸出V0,V1,V2,及V3上執(zhí)行算術(shù)運(yùn)算的一個算術(shù)單元陣列2a,各輸入/輸出是具有多條(M條)傳輸線的傳輸一個M比特的值的一條總線,M例如為32。該ALU最好是一臺中央處理單元(CPU)的一部分并且是由一個控制單元CU從外部控制的。該ALU與該外部控制單元CU以下術(shù)信號進(jìn)行通信一個時鐘信號輸入CALU,一個占用輸出ABUSY,一個控制輸入ACNTL,一個狀態(tài)輸出ASTATE,以及一個譯碼后的指令輸出A1NS。
總線輸入/輸出V0,V1,V2,V3可以連接到結(jié)構(gòu)算術(shù)單元(未示出,以后稱作核心處理器)中的特定寄存器上,稱作目標(biāo)寄存器或CT寄存器,在其中處理歸約類指令。然而,總線輸入/輸出信號也能由與一臺計(jì)算設(shè)備(最好是歸約類型的)協(xié)作的其它類型的配置來提供,除了歸約類型的計(jì)算設(shè)備以外其它類型的計(jì)算設(shè)備也是十分可能的。同樣,雖然在圖1A中所示選擇了4條輸入/輸出總線V0,V1,V2,V3,但總線的數(shù)目可任意選擇。然而,隨著輸入/輸出總線V0,V1,V2,V3的數(shù)目的增加,ALU的復(fù)雜性可觀地增加。
輸入/輸出總線V0,V1,V2,V3傳輸一張字表。一個字是一個數(shù)值或一條指令。并不是每次都使用所有總線的。未使用的一條總線上的一個字可以被忽視。輸入與/或輸出表具有一個最大長度,即包含一個最大數(shù)目的字?jǐn)?shù),例如4,即每條輸入/輸出總線一個表元素。一個數(shù)值是一個字,它是在若干條線上傳輸?shù)摹M瑯?,在一條總線上的一條指令也是一個字。輸入/輸出V0,V1,V2,V3上的輸入表是用于控制與執(zhí)行一次計(jì)算的,即該表包含一條有關(guān)所規(guī)定的計(jì)算的種類以及要計(jì)算的值的特性的信息,并且控制驅(qū)動器1a在控制陣列2a中的不同部件時導(dǎo)出這一信息。一個計(jì)算是以改寫輸入表中的內(nèi)容的一個經(jīng)特或半字節(jié)的方式提供的,即對一個字中分另具有相同位置的比特或?qū)σ粋€字中以“片方式”提供的由比特組成的半字節(jié),并作為一張輸出表提供結(jié)果。應(yīng)注意的是,在輸出上提交最終的輸出表以前,有可能通過內(nèi)部電路進(jìn)行若干次值的重復(fù)循環(huán)。在重復(fù)循環(huán)中在輸出上出現(xiàn)一張瞬時輸出表但它只是作為一張瞬時輸入表插入的。
該表可以包括一個函數(shù)應(yīng)用連同要處理的值或者其它類型的表,諸如只包括至少一個整型值或浮點(diǎn)值的一張表。當(dāng)它包括一個函數(shù)應(yīng)用時,在輸入/輸出V0上提供的第一表元素包含該指令碼,即要求進(jìn)行的處理類型的信息,而其它表元素則為該指令的變元,這一點(diǎn)將在下面更詳細(xì)地說明。
一條指令是以在一步或若干步中改寫該指令而執(zhí)行的,使之最終得到其結(jié)果。在ALU內(nèi)部使用了微指令與狀態(tài)信號。這些是ALU內(nèi)部的獨(dú)立的控制驅(qū)動器1a用來控制陣列2a的。當(dāng)一次改寫直接引導(dǎo)出結(jié)果時,該值便被放入輸出表中。當(dāng)所進(jìn)行的是逐步改寫時,在改寫該表時保持同一指令碼,或者改寫成一個新的或稍加改變的指令碼,而在大多數(shù)情況下在該指令碼的后面跟隨著一個或多個值。需要指出的是,在若干周期中進(jìn)行改寫操作的最佳方式是在整個操作中保持指令碼原封不動,因?yàn)樵谶@種情況下,控制單元將較為簡單。然而,在一個多周戎操作開始時具有一種指令碼而在其余周期中稍為改變這一指令碼之類的情況也是方便的。
返回至圖1A,時鐘信號CALU是用于向算術(shù)邏輯單元ALU提供時鐘脈沖的,而ALU在準(zhǔn)備就緒接受時鐘脈沖時在輸出ABUSY上給定一個就緒信號。
總線輸入/輸出V0,V1,V2,V3是連接到一個目標(biāo)寄存器中的主寄存器單元上的,該輸入/輸出具有指令或數(shù)值內(nèi)容。數(shù)值內(nèi)容最好以編碼的格式提供給ALU,這種格式取決于該數(shù)值內(nèi)容表示一個浮點(diǎn)值或一個整數(shù)而有所不同。每一個目標(biāo)寄存器單元包含和數(shù)值的每一個輸入/輸出同樣多的比特(即,在所示的全子中為32),但還有若干比特,例如6,用于設(shè)置標(biāo)記位。這些標(biāo)記位并未包含在認(rèn)為是本發(fā)明的最佳方式的實(shí)施例中在總線輸入/輸出上所提供的信息中。反之,標(biāo)記位信息是饋給外部控制單元CL的,而單元CU本身又控制ALU控制單元1a。
然而,將標(biāo)記位包括在輸入/輸出上所提供的信息中使得該標(biāo)記位信息直接饋送給控制驅(qū)動單元或ALU控制也屬于本發(fā)明的范圍之內(nèi)。當(dāng)該ALU是用作一個與傳統(tǒng)型式的處理器協(xié)作的單元時,這也是驅(qū)動根據(jù)本發(fā)明的ALU的最佳方式。
控制輸入ACNTL是用于控制ALU的數(shù)值運(yùn)算的。這一運(yùn)算可使用若干時鐘周期。
在每次運(yùn)算以后,一個輸出ASTATE返回到控制單元CU。在輸出AINS上的指令碼是總線V0所連接的目標(biāo)核心單元中的指令碼的壓縮。
圖1B參見圖1B,控制單元CU為處理器提供的基本時鐘為C1-0,例如具有10ns(毫微秒)的周期。一個ALU運(yùn)算是在一個或多個這樣的時鐘周期中執(zhí)行的。連接到ALU的核心處理器可能以比ALU的周期長(例如兩倍)的周期來控制,即如果C10的周期為10ns則以具有20ns周期的時仲信號C2然而,相反地,它也可能以一個較短的周期來進(jìn)行控制。用于具有較短周期有設(shè)備(即所示實(shí)施例中的ALU,或者在另一情況中的核心處理器)的基本控制信號CALU因此而在每條指令結(jié)束時延長,使之能與具有較長周期的時鐘信號C20同步。只要ALU需要更多的C10型時鐘周期來執(zhí)行一條指令,它便返回一個高電平信號ABUSY。上述延長是在信號ABUSY變?yōu)榈碗娖胶筇峁┑?,這在圖1B中看得很清楚。
圖2中所示的本發(fā)明的實(shí)施例包括一個ALU控制電路10,作為一個對其輸入上的信號進(jìn)行變換與組合使之適用于電路提供輸出表元素的中央部件。ALU控制電路10包含一種布爾門陣列。圖2對應(yīng)于圖1A的右側(cè)部分。
每一條輸入/輸出總線V0,V1,V2,V3都是具有諸如32根線的多線總線,它們是連接到一個輸入緩沖器電路11的輸入上的。緩沖器電路11是由其時鐘輸入上的時鐘信號定時來將其輸入信號傳輸?shù)絻?nèi)部輸入總線V0,V1,V2,V3的。一個輸出緩沖器16由在其時鐘輸入上的一個反相時鐘信號定時來將在輸出總線V000T,V100T,V200T,V300T上的信息傳輸?shù)捷斎?輸出總線V0,V1,V2,V3的。雖然在圖2中所示的緩沖器配置11與16是包括兩個獨(dú)立的肝沖器的,但緩沖器配置11與16最好是一個組合的輸入/輸出緩沖器電路。
若干計(jì)算電路12A至12N(N為電路的數(shù)目)連到內(nèi)部輸入總線V0,V1,V2,V3中的至少兩條上,每一計(jì)算電路對它們所連接的內(nèi)部輸入總線V0,V1,V2,V3上的信息進(jìn)行單獨(dú)的一種簡單計(jì)算,例如在不同群集中的加法或減法。計(jì)算電路12A至12N是十分省時的,因?yàn)樵诟鶕?jù)本發(fā)明的ALU作為其一部分的應(yīng)用中,它們可以是這樣選定的,使得每一個可能要求進(jìn)行的簡單計(jì)算可以隨時立即提供。然后,ALU控制電路10只經(jīng)從這些用于特定類型運(yùn)算的計(jì)算電路中選擇適當(dāng)?shù)囊粋€或多個直接取其輸出用于進(jìn)一步的處理目的即可。每一個計(jì)算電路的尺寸都是小的并且不是特別消耗電能的。從而,即使在某一時刻只使用它們中的一個的輸出,也不在乎若干電路進(jìn)行并行計(jì)算。,計(jì)算電路的輸出饋送到運(yùn)算數(shù)單元OP1與OP2,這將在下面說明。
同樣,來自單元12A至12N的信號在某些情況下也可用于控制。每一個計(jì)算電路12A至12N有一第二輸出,在其上提供的一個進(jìn)位信號用指示溢出。這一第二輸出饋送給ALU控制電路10的一個單獨(dú)的輸入。單元12A至12N是受ALU控制電路10以及ALU中給出在其輸入上所表示的字的類型信息的其它電路控制的,即例如是否該字表示一個數(shù),如果是一個數(shù),則該數(shù)是一個整數(shù)還是一個浮點(diǎn)數(shù),并且,如果它是一個浮點(diǎn)值,則給出有關(guān)這一數(shù)的性質(zhì)的信息,下面將進(jìn)一步說明。
若干監(jiān)視電路13A至13M(M為電路的數(shù)目)各自連接到輸入總線V0i,V1i,V2i,V3i中至少單獨(dú)的一個上。這些監(jiān)視電路能夠,例如,監(jiān)視總線的信息的意義,或者比較總線的信息。某些監(jiān)視電路可以被提供與電路12A至12N相同的控制信息,如僅為電路13A示出的那樣。監(jiān)視電路13A至13M的輸出饋送給ALU控制電路10的輸入。
三至四個性質(zhì)供給電路14A至14D連接到至少總線V1i,V2i與V3i并且從一部分總線供給的關(guān)于總線上其他信息的性質(zhì)的信息中取得信息。連接到總線V3i的性質(zhì)供給電路14D在乘法情況中取得至少在總線V3i上的最低二進(jìn)制位。這一點(diǎn)下面將進(jìn)一步說明。一個性質(zhì)供給電路14A可同時連接到總線V0i,擋在一條外部控制總線EXT至ALU控制驅(qū)動電路上的一個信息指示在總線V0i上的信息表示一個數(shù)時,它得到某些預(yù)定的信息。
例如,如果在一條總線上的信息是一個浮點(diǎn)值,連接到該總線的性質(zhì)供給電路給出有關(guān)該值的符號,冪指數(shù)的符號以及某些數(shù)值比特(例如最高位)的信息。應(yīng)當(dāng)指出的是,當(dāng)提供了一個性質(zhì)供給電路14D時,從V3i供給而饋送到ALU控制電路10的一個電路輸入的性質(zhì)類型沒有必要和來自V0i與V2i的一樣,它可以例如,較為簡單。同樣的推論也適用于用于總線V0i的性質(zhì)供給電路14A。
ALU控制電路10向外部控制單元CU提供一個輸出A-STATE(見圖1A),主要是來自單元12A至12N與13A至13M的輸入。
為了向ALU控制驅(qū)動電路10提供了一個指令電路15來監(jiān)視總線V0i上的全部信息。
如圖2所示,總線V0i上的信息可以直接饋送給連接到輸出緩沖器16上的一條輸出總線V000T,如上所述,最好是以一個結(jié)合在一起的反相地由時鐘信號定時的輸入/輸出緩沖器11,16的總線連接方式。使這一總線具有指令表元素并保持這一指令表元素不變是方便的。來自ALU的其它輸出總線V100T,V200T,V300T也連接到緩沖器16,并且所有輸出總線上的信息是同時由時鐘脈沖輸出到輸入/輸出總線V0,V1,V2,V3上的上的。ALU控制電路10向ALU中的其它電路提供控制信號C1,C2,C3,C5。
然而,它可依賴于一個多周期運(yùn)算中的實(shí)際周期作出某些改變并將改變后的指令表元素饋送給總線V000T(未示出)。
具有基本上相同類型的兩個運(yùn)算數(shù)單元OP1與OP2分別提供輸出V100T與V200T。如圖2所示的實(shí)施例中那樣具有兩個運(yùn)算數(shù)單元雖非必要但卻是實(shí)用的。從只有一個到若干個不同數(shù)目的運(yùn)算數(shù)單元可用于根據(jù)本發(fā)明有不同應(yīng)用中,然而,為了進(jìn)行一次加法或一次減法只需要一個運(yùn)算數(shù)單元,因?yàn)檫@種運(yùn)算是在電路12A至12N之一上進(jìn)行并且是在該運(yùn)算數(shù)單元的輸入之一上提供并且可以在ALU控制電路10控制的運(yùn)算數(shù)單元的輸出上提供的。為了同時進(jìn)行若干不同種類的加法與減法運(yùn)算,可使用若干運(yùn)算數(shù)單元。需要指出的是,每一運(yùn)算數(shù)單元有一條輸出總線VOUTi,其中i表示一個任意的數(shù),因此,輸入/輸出,輸入與輸出總線的數(shù)目取決于ALU中運(yùn)算數(shù)單元的數(shù)目。
具有另一類型的一個運(yùn)算數(shù)單元OP3可提供來用于乘法或除法運(yùn)算方面并將其輸出饋送到輸出總線V300T上。乘法與除法運(yùn)算是在若干循環(huán)步驟中執(zhí)行的。運(yùn)算數(shù)單元OP3的輸出是V300T。應(yīng)當(dāng)指出的是,同樣可以有不是一個而是不同數(shù)目的運(yùn)算數(shù)單元OP3。
關(guān)于浮點(diǎn)算術(shù)如上所述并將在下面進(jìn)一步討論的,至少在一些步驟中,至少在本發(fā)明的一個實(shí)施例中,冪指數(shù)的長度是可以選擇的。所以,為每一運(yùn)算數(shù)單元OP1與OP2分別提供了一個精度譯碼器PD1與PD2。精度譯碼器向其所隸屬的運(yùn)算數(shù)單元提供有關(guān)冪指數(shù)部分的長度的控制信號。忱可以從二進(jìn)制字中的一個特定的代碼段中得到,如下面將進(jìn)一步說明的。如上所述,它也可向ALU電路的其它部分提供控制信號。
有關(guān)一個值是一個整數(shù)或一個浮點(diǎn)值的傳送給ALU的信息最好由外部控制單元CU(見圖1A)在ALU控制電路10的一個控制輸入EXT上提供,但也可從總線V0i至V3i上得到。
從上面可以清楚地看到,令輸入總線具有不同的但意義明確的算術(shù)運(yùn)算任務(wù)是方便的。所以,或者直接從饋入裝置(例如較好的是上述目標(biāo)寄存器)向輸入總線提供具有所述定義的任務(wù)的信息,或者ALU本身將輸入總線上的信息改變成適用于一個內(nèi)部周期,然后使用總線V0i上有關(guān)其它總線上的信息的信息??偩€V0i可一數(shù)據(jù)段,該段具有關(guān)于在輸入/輸出總線V0,V1,V2,V3上提供的表上的信息的類型的信息。然而,這一信息也可由外部控制單元CU提供。
從上面可知,根據(jù)本發(fā)明的ALU沒有內(nèi)部存儲器。這便導(dǎo)致一個多周期運(yùn)算的每一個周期的結(jié)果只受緊接著的前一個周期的結(jié)果的輸出的影響,這便是適用于進(jìn)行處理的輸入。
如上所述,根據(jù)本發(fā)明的ALU所期望的一個目的是在一個浮點(diǎn)表示系統(tǒng)中的冪指數(shù)與數(shù)值部分之間有一條可變的界限。這樣,在第一方面,對于小的數(shù),其數(shù)值部分中可能有許多比特,這提供了具有高精度的優(yōu)點(diǎn)。在另一方面,極大的數(shù)可以得到處理。
為了簡要地給出對根據(jù)本發(fā)明的ALU的理解,在這里給出了關(guān)于兩個整數(shù)的乘法的一個例子。進(jìn)一步將給出關(guān)于在計(jì)算浮點(diǎn)值時的ALU的運(yùn)算的例子。
整數(shù)乘法例如可以用下述方法提供。在第一周期中,要相乘的兩個數(shù)被提供,一個在輸入總線V2上另一個在總線V3上??偩€V0上有信息“0”。第一類型的運(yùn)算數(shù)單元之一,例如OP1,被控制來將V2上的信息直接傳送到其輸出上。另一個運(yùn)算數(shù)單元OP2被控制來將V2上的信息向左移位一步并將位移后的結(jié)果提交在其輸出上。在下一個周期中,首先提到的運(yùn)算數(shù)單元OP1被控制來將該信息從其連接的輸入之一傳送給電路12A至12N之一作出對總線V1i與V2i上的數(shù)字的一次加法運(yùn)算。另一個運(yùn)算數(shù)單元OP2則衩控制來取得V2i上的信息并將它向左移位一步與將它提交在其輸出上。
在此后的各周期中,第一個所述運(yùn)算單元OP1,如果在總線V3i上的信息的最后二進(jìn)制位為“1”則被控制來傳送對總線V1與V2上的信息進(jìn)行加法運(yùn)算的電路的輸出,否則取總線V1i上的信息。這一給ALU控制電路10的信息是提供在電路14P的輸出上的。在運(yùn)算數(shù)單元OP3時輸入上提供的總線V3i上的上的數(shù)字信息被控制來將其向右移位一步,使得最低二進(jìn)制位被取走。
至少運(yùn)算數(shù)電路OP1與OP2可具有向ALU控制電路10提供一個指示內(nèi)部移件已導(dǎo)致一個進(jìn)位的返回信號(未示出在圖2中)的能力。每一周期是在兩步中執(zhí)行,其中第一步是在時鐘信號的前半周期中進(jìn)行而另一步則是在第二半周期中進(jìn)行的。
圖3如圖3中示意地所示,在具有一個數(shù)值的一條總線上的各比特模式是因此最好以在比特串的最高位幾個比特的一個短的比特段提供的,在這一比特段中具有該值的符號的信息,冪指數(shù)的符號的信息,以及一個關(guān)于該數(shù)值的冪指數(shù)與數(shù)值部分之間的分界位置(見圖3中右方箭頭)的代碼。需要指出的是,該比特段的代碼部分的長度也是可變的,而代碼段與冪指數(shù)段之間的分界位置的所在也是由該代碼段確定的,如圖3中左方箭頭所示。
下面將討論三種表示十進(jìn)制數(shù)的方法Ⅰ二進(jìn)制數(shù)字格式基數(shù)為2的數(shù)值系統(tǒng)。
Ⅱ整型H值用于表示整數(shù)的一種二進(jìn)制碼。
Ⅲ浮點(diǎn)H值用于表示浮點(diǎn)值的一種二進(jìn)制碼。
根據(jù)本發(fā)明的ALU另一個所期望的目的是以與同一個數(shù)的整數(shù)解釋相同的次序來提供該數(shù)有浮點(diǎn)值。從而具有同一比特模式的浮點(diǎn)值與整數(shù)值是完全不同的。
然而,這一目的可以這樣來達(dá)到,即如果該表示是作為一個浮點(diǎn)值來解釋則有一個用于該比特串的第一解釋公式,而如果該表示是作為一個整數(shù)值來解釋則有一個用于該比特串的第二解釋公式。從而,兩種表示都不必要是二進(jìn)制位格式的,至少兩者之一,最好兩者都是以編碼格式的。比特模式變換是自動進(jìn)行的,而機(jī)器中的硬件只是隱含地依照給定的規(guī)則在變換后的比特模式上進(jìn)行計(jì)算,即無需了解這種解釋是如何進(jìn)行的。
根據(jù)本發(fā)明的一個較佳實(shí)施例,為浮點(diǎn)值提供一種稠密表示作出了努力,即不應(yīng)當(dāng)有兩種比特模式可以解釋為同一個數(shù)。名詞“稠密表示”表示每一個十進(jìn)制數(shù)對應(yīng)于一個唯一的二進(jìn)制組合。
圖4A,整數(shù)表示圖4A示出了根據(jù)本發(fā)明的整型值的代碼的圖形表示,稱作整型H值。二進(jìn)制表示是沿水平軸給出的,而H值則沿垂直軸。最高位比特表示該值的符號,它是正的還是負(fù)的。從圖4A中可知,當(dāng)二進(jìn)制表示為全“0”時,H值為最大的負(fù)值,而在其二進(jìn)制表示的中點(diǎn)具有零值,即,當(dāng)最高位比特從“0”變到“1”,而當(dāng)二進(jìn)制表示為全“1”時為其最大正值。從而,H碼中的一個二進(jìn)制組合的值以與其二進(jìn)制位格式相同的方式增加。當(dāng)一個二進(jìn)制位格式的一個字的二進(jìn)制組合為“1”時,它也具有其最大值。整型碼是一條直線。
圖4B,浮點(diǎn)值表示圖4B示出根據(jù)本發(fā)明的浮點(diǎn)值的代碼的一個圖形表示,稱為浮點(diǎn)H值。二進(jìn)制表示是沿水平軸給出的,而H值則是沿垂直軸的,這里該軸是畫在通過浮點(diǎn)H值改變符號的點(diǎn)上。在這一表示中最高位比特同樣表示該值的符號。浮點(diǎn)值表示必須滿足通用的要求。對于一定的精度,該值的量級必須是任意變化的。從而極小與極大的值應(yīng)都能表示。浮點(diǎn)H值的標(biāo)度是對數(shù)的。對數(shù)H值可在每一個因子2和直線近似來簡化。結(jié)果是一種典型的浮點(diǎn)碼。如圖4B所示,用于表示在-1與+1之間的H值的二進(jìn)制表示是在二進(jìn)制表示段的中央給出的并且包含該段的一半。
在整個值域內(nèi),一個值的相對精度是恒定的。對數(shù)值具有一定的精度與值域。如果量級應(yīng)為任意大,則必須有可能調(diào)整對數(shù)的值域。
對數(shù)值可再一次或者甚至更多次地作用于對數(shù)函數(shù)。從而,有可能表示極大的數(shù)。然而,在大量級上精度降低,但在低量級上精度得以保持甚至稍為提高。
由于兩種表示的兩種比特模式以同一方式出現(xiàn),一個整數(shù)大小比較器同樣可用于浮點(diǎn)值表示。這意味著可以免去一個特殊的浮點(diǎn)值比較器。這進(jìn)而意味著,在僅僅一個周期中進(jìn)行比較運(yùn)算的整數(shù)大小比較器可用于浮點(diǎn)值,這是一個大優(yōu)點(diǎn)。傳統(tǒng)類型的浮點(diǎn)值比較器必須用許多周期來進(jìn)行運(yùn)算。
在傳統(tǒng)的算術(shù)邏輯單元中若干種比特模式可能解釋為同一個數(shù),并且要進(jìn)行一次規(guī)范化來選擇這些比特模式中的一個。根據(jù)本發(fā)明,不需要進(jìn)行規(guī)范化,至少在實(shí)際計(jì)算中是這樣。規(guī)范化可在一次計(jì)算操作的前后進(jìn)行。由于在浮點(diǎn)值之間具有稠密表示相似性,一次浮點(diǎn)值計(jì)算,例如比較,可以在僅僅一個周期中確定。具有稠密表示的一個優(yōu)點(diǎn)是可獲得最大數(shù)目的浮點(diǎn)值,即在一個系列的值中沒有受排斥的與不可用的值。
為什么在傳統(tǒng)的應(yīng)用中若干個比特模式可能解釋為同一個數(shù)的原因是為了產(chǎn)生一個值是將該值的冪數(shù)部分與數(shù)值部分相乘而得出的。例如值1.0可以是211/2,即其冪指數(shù)比特模式01與數(shù)值部分比特模式100,或者22×1/4,即具有冪數(shù)比特模式10與數(shù)值部分比特模式010,冪指數(shù)比特模式與數(shù)值部分比特模式互相跟隨。
根據(jù)本發(fā)明的一個實(shí)施例,稠密表示是在正值的數(shù)值部分的比特模式前面隱含地(即不實(shí)際存在)提供一個“1”,而在負(fù)值隱含地提供一個“0”。傳統(tǒng)上,數(shù)質(zhì)部分是規(guī)定為一個-1與+1之間的一個值。根據(jù)本發(fā)明,取決于其符號,二進(jìn)制編碼的數(shù)值部分是規(guī)定為在值域(1.0至2.0)或(-2.0至-1)中的一個值。
整數(shù)模式是明確地確定的,而浮點(diǎn)表示必須與整數(shù)解釋具有相同的連接順序,這是一種非常困難的限制。
圖4C,5A與5B,浮點(diǎn)值表示的進(jìn)一步信息對這一問題的一個有利解法示意性地示出出在圖4C中。圖5A與5B示出了根據(jù)圖4C所示的原理提供一張字的數(shù)據(jù)表。圖5A與5B中最右邊列表示對應(yīng)于最左邊一列中的二進(jìn)制組合的十進(jìn)制浮點(diǎn)值。圖4C示出了浮點(diǎn)碼的一個示意性圖形闡述,在垂分界線LIN的左側(cè)示出二進(jìn)制表示,而在其右側(cè)則示出浮點(diǎn)H值。直線LIN示出為指向較高值的一根軸。對于二進(jìn)制表示與H值表示兩者都是適應(yīng)的。從線LIN兩側(cè)向外延伸示出了表示與H值。最靠近線LIN是圖4B中的圖中的軸的展示。H值軸在右而二進(jìn)制表示軸在左。
在軸的表示的外側(cè)第一個段中,右邊是sh左邊是s,表示最高位比特。對于負(fù)值為“0”,對于正值為“1”。
在這外側(cè)的第二段,分別為seh與se表示次最高比特。這是冪指數(shù)的符號位。“0”表示負(fù)號,“1”表示正號。
第三段至少一個比特具有比次最高位低的位次,如果該二進(jìn)制段是低的則只有一個比特,如在所示的只有七個比特的情況中,而如果該二進(jìn)制段是高的則含有多于一個比特,如在下面將要說明的具有32比特的情況中。
在圖4C,5A與5B所示的例子中,示出了用于七比特字的編碼,而不是在實(shí)際中更常用的32比特字。緊靠在圖4C中的中線左側(cè)的二進(jìn)制表示將被解釋為具有H值-1024至+768。需要指出的是,H值-1與+1是分別放在值0與極端值-1024與768的中點(diǎn)上的。第一二進(jìn)制位分別是s與sh,對于表示與H值還是一個負(fù)值。
第二個二進(jìn)制位是冪指數(shù)的符號,即絕對值是大于1還是小于1。從而,H值冪指數(shù)符號位在-1024與-1之間是正的,在-1與+1之間是負(fù)的,然后在+1與+768之間又是正的。從圖4C中左側(cè)可明顯地看出二進(jìn)制表示的冪指數(shù)符號位在二進(jìn)制序列的第一個四分之一中是負(fù)的,在第二個四分之一中是正的,在第三個中是負(fù)的,而在第四個中是正的。seh位可表示為,如果s=1則seh=se,否則seh=1-se。
因此,在二進(jìn)制表示中表示字符符號的最高位比特變化最慢,表示冪指數(shù)符號的次最高位比特具有次最低變化,即字符符號位變化速度的兩倍。下一位置上的比特是代碼比特C其變化速度是冪指數(shù)比特的兩倍。在圖4C與5A,5B的例子中這一代碼只包含一個經(jīng)特。在其它例子中該代碼段可包含多個比特。該代碼控制冪指數(shù)的長度并且是考慮進(jìn)前面的符號比特來對待的。
要實(shí)現(xiàn)的浮點(diǎn)H值,即浮點(diǎn)記數(shù)法以一種更特別的方法提供代碼段ch。從圖4C中的eh部分可見,eh部分是直接給出冪指數(shù)H值的,值eh從一個大的正值下降到0,那里H值是-1,從那里再到一個大的負(fù)值,這時H值為0,從那里再到值0,這時H值為+1,再從那里到一個大的正值,這時H值為768。ehabs部分示出了冪指數(shù)的絕對H值并且是以兩條曲線表示的,它們互相并排在一起,每一條曲線的兩端都在一個大的正值上而其中點(diǎn)則置于0上。H值的代碼段ch是設(shè)計(jì)成反映值ehabs的,所以示出為具有以虛線表示的相同的形狀,并且示出了如果該代碼段只包含一個比特時它將具有的以連續(xù)的線表示的形狀。因而,當(dāng)代碼ch只包含一比特時,若se=1則ch=c,否則ch=1-c。
到目前為止,對圖5A與5B中所提供的表的百列是容易觀察的,因?yàn)楦鞅忍囟蝧,sh,se,seh,c,與ch都只包含一個比特,因而圖4中與圖5A與5B中的表示之間的對照是顯而易見的,圖5A與5B中的第一列是一個順序的從0000000至1111111的表面其在十進(jìn)制記的數(shù)系統(tǒng)中的直接對應(yīng)物則提供在第二列中。箭頭列的右側(cè)示出了表示的變換后的數(shù)字以及H值。為了便于與圖4C中的展示進(jìn)行對照,在該表中為表示代碼段的每一次轉(zhuǎn)換提供了連續(xù)的水平線。在ch右側(cè)的列中包含表示的冪指數(shù)值e的十進(jìn)制表示,這后面是H值的冪指數(shù)值eh的十進(jìn)制表示。后面兩列分別示出值e與eh的二進(jìn)制表示。再后面的兩列分別示出表示的數(shù)值部分m的十進(jìn)制與二進(jìn)制表示。在這后面示出的是H值的數(shù)值部分mh的十進(jìn)制表示。需要指出的是,在圖5A中,值sh為“0”,數(shù)值部分在-1與-2之間變化,而在圖5B中,值sh為“1”,數(shù)值部分在+1與+2之間變化,最右邊的列中示出了由最左邊的列中的二進(jìn)制組合經(jīng)過變換后提供的十進(jìn)制H值。
從圖5B的上部可看到,具有“1”作為其最高位比特而隨后各位均為“0”的表示表示特殊的浮點(diǎn)值“0”。
從圖4C中的二進(jìn)制數(shù)序列可知,在中線在左側(cè),七個二進(jìn)制位中的四個最低位比特是留給冪指數(shù)與數(shù)值部分共用的,因?yàn)槿齻€最高位比特是保留給符號比特與代碼比特的。從數(shù)字到e與m可見,在冪指數(shù)符號se為負(fù)(即“0”)及代碼值c為“1”的最上面部分中,值e包括3個比特,從而值m為一個比特(該列中前面兩個“0”可以省略),而數(shù)值部分可包含3比特。這是在圖4C中以在這一部分中具有少數(shù)梯級一個e表示來示出的。在下一部分中,值e只包含一個比特而數(shù)值部分3個比特,等等。
如表示部分中所示,在c=0與se=0這一部分中冪指數(shù)e有許多梯級,而在c=1與se=1的部分中則只有少數(shù)梯級。在e部分左側(cè)的e+bias(e+偏置)部分中,在整個部分的每一個四分之一中在一條線上提供的e值是以連續(xù)的線示出的而以在e+bias中以倒轉(zhuǎn)一個部分中每隔一個四分之一來以虛線示出如何構(gòu)成ehabs值。(eh表示帶有冪指數(shù)符號的e的值。)因而,代碼比特(一個或多個)是取決于前面的符號件的,因此,可以說事實(shí)上代碼是包含符號位的,因此是只能有非常有限的長度,即它比取決于只在代碼段中所提供的冪指數(shù)的長與短。
數(shù)值部分的長度取決于冪指數(shù)的值,當(dāng)冪指數(shù)長時,數(shù)值部分便短,反之亦然。所以,在圖4C中并未示出數(shù)值部分,而是在圖5A與5B中的表的m,m列中清晰可見,其中第一個m示出十進(jìn)制記數(shù)的值而第二個m示出其數(shù)字的對應(yīng)物。如果s=1,則mh=1.0+m,否則mh=-2+m,如上所述。
為了直觀,上面的例子是對一個七比特字長描述的。如已提到過的,可以選擇相當(dāng)長的字長,例如32比特。這樣,具有可變的代碼長度是現(xiàn)實(shí)的。同樣現(xiàn)實(shí)的是,為了使電路系統(tǒng)較為簡單,將從冪批數(shù)與數(shù)值部分的一個分界點(diǎn)上的過渡為比特的半字節(jié)的步長,例如4個比特為一個半字節(jié)。這樣做的優(yōu)點(diǎn)是不需要像以一個比特一個經(jīng)特過渡那樣多的代碼。在下面將說明這樣一種精度譯碼器的一個例子。
圖6圖6中示出了圖2中的電路的一個詳細(xì)實(shí)施例。輸入/輸出總線V0,V1,V2,與V3是連接到一個輸入/輸出緩沖器20上的,該緩沖器20在它的時鐘控制輸入上所提供的外部時鐘信號CLOCK的每一個反相定時周期中分別將輸入上的信息傳輸給內(nèi)部總線V0i,V1i,V2i,與V3i,并在每時鐘周期中將內(nèi)部輸出總線V000T,V100T,V200T,V300T上的輸出傳輸給輸入/輸出總線V0,V1,V2,V3。
圖7A,7B與7C電路20的一個實(shí)施例及其定時示出在圖7A,7B與7C中。輸入/輸出緩沖器20本身又包含輸入緩沖器,每條輸入/輸出總線V0,V1,V2,V3一個,以及相同數(shù)目的輸出緩沖器。為了不出現(xiàn)競態(tài)問題,時鐘信號不得重疊。這是以稍為世掉它們的前沿來安排的。
在圖7A中所示的時鐘信號CLOCK的第一相位中(在左方以一個括號標(biāo)記的反相的),從一個外部源來的輸入通過被控制到一個傳輸狀態(tài)的輸入緩沖器提供給ALU中的內(nèi)部的數(shù)據(jù)通路。該數(shù)據(jù)通過轉(zhuǎn)換成在輸出總線上提供的下一狀態(tài)的ALU中的內(nèi)部數(shù)據(jù)通路傳播。輸出緩沖器是設(shè)置為阻塞狀態(tài)的。
如圖7B所示,在時鐘信號CLOCK的時鐘周期的相位1中,(在圖7B左方以括號標(biāo)記的)電路20中的輸入緩沖器被控制到一個阻塞狀態(tài),且ALU中的內(nèi)部電路作為一個穩(wěn)定的多路復(fù)用器工作來控制這些信號將它們提供在輸入/輸出總線V0,V1,V2,V3上。電路20中的輸出緩沖器是設(shè)置在傳輸狀態(tài)中的。
圖7C中示出了在相位0時的一條多周期指令的狀態(tài)。在前面的相位1中ALU饋送給輸入/輸出總線V0,V1,V2,V3的內(nèi)容在相位0中由于電容效應(yīng)保持在它們上面,并從而得以通過輸入緩沖傳輸?shù)捷斎肟偩€V0i,V1i,V2i,V3i,這時輸入緩沖器是被控制到傳輸狀態(tài)而輸出緩沖器則被控制到阻塞狀態(tài),并且從那里通過轉(zhuǎn)換成下一狀態(tài)的ALU中的內(nèi)部數(shù)據(jù)通路進(jìn)行傳播。
根據(jù)一個較佳應(yīng)用,只用輸入表來控制及執(zhí)行一次計(jì)算,它是以改寫輸入表中的內(nèi)容并將結(jié)果饋送給輸出來進(jìn)行的。該表可包括一個存儲的函數(shù)應(yīng)用或另一類型的表。在一個函數(shù)應(yīng)用中的第一個元素是一條指令碼,其余元素為該指令的變元。這一較佳應(yīng)用取決于提供了依賴于輸入數(shù)據(jù)的一個功能硬件。然而,有關(guān)提交在總線V0i,V1i,V2i,V3i上的信息的類型的信息最好是在來自控制電路CU的一個輸入EXT上給定的。
控制單元CU最好有關(guān)于輸入總線V0i,V1i,V2i,V3i上的字是不是表示指令和/或數(shù)字的信息,以及這些數(shù)字是浮點(diǎn)值還是整數(shù)的信息,并通過叫線EXT將這一信息交給ALU控制電路27。
然而,事實(shí)上可能正在進(jìn)行有用的應(yīng)用而其中的功能性表現(xiàn)并不需要,那時給予ALU控制驅(qū)動電路的外部信息,例如來自控制電路CU而在輸入EXT上的,便可用于提供對一個計(jì)算的控制與操作。
一條指令是以在一步中改寫指令到最終結(jié)果來執(zhí)行的,或者為了最終達(dá)到結(jié)果而在若干步中改寫表的值。
當(dāng)進(jìn)行逐步改寫時,同一指令碼可能用于每一小中或者該表可能改寫成一條新的指令碼,該表后面是跟隨著值的。
圖6圖6中示出的實(shí)施例中設(shè)置有下述處理單元來執(zhí)行不同的指令;
連接到總線V0i與V1i的一個第一比較器21,用于比較這兩條總線上的所有信息,即V0i>V1i,V0i=V1i,并在其連接到一個ALU控制驅(qū)動器27的輸出cmp01上提供比較結(jié)果,即一個兩比特的值。連接到總線V0i與V1i上的一個第二比較器22,用于比較這兩條總線上的整個信息,即V0i>V1i,V0i=V1i,并在其連接到ALU控制驅(qū)動器27的輸出cmp12上提供比較結(jié)果。連接到總線V2i與V3i上的一個第三比較器221,用于比較這兩條總線上的整個信息,即V0i>V1i,V0i=V1i,并在其連接到ALU控制驅(qū)動器27的輸出cmp23上提供比較結(jié)果。連接到總線V1i與V2i上的一個第四冪指數(shù)比較器222,(每一條總線都是32比特的)比較在這兩條總線上的字的最高位部分,即se,c,e等部分,即除外數(shù)值部分與符號的所有其它信息。該比較器注意到se,c,e的上面描述的編碼。所以來自一個清度譯碼器PD的信號B1sb1是饋送給比較器222的一個獨(dú)立的輸入的。
一個第五比較器223對來自精度譯碼器的信號Besb1與Besb2進(jìn)行比較。結(jié)果信號指示Besb1與Besb2是否相等。
ALU控制電路27將來自這些比較器的比較結(jié)果饋送到其連接到控制單元CU(見圖1A)的輸出ASTATE上。這一結(jié)果也可用于控制下面要說明的某些單元,因而如果適當(dāng),在輸出總線V100T,V200T,與V300T上提供有預(yù)先選定的字。
一個無意義譯碼器23連接到線V1i上并且檢測到V1\-i上的字表示一個整數(shù)),并且,如果在總線V1i上的字表示一個浮點(diǎn)值,則分別檢測是否在冪指數(shù)部分中的比特及數(shù)值部分中的比特是否是全“0”或“1”。關(guān)于這一點(diǎn)的信息是從指示輸入V1i的最低比特半字節(jié)的一個信號B1sb1得出的。這一信號提供在輸入總線上的字是表示整數(shù)還是表示浮點(diǎn)值的信息,及在浮點(diǎn)值的情況中提供冪指數(shù)與數(shù)值部分的分界的信息。這些檢測的結(jié)果是提供在連接到ALU控制電路27的一個輸入的車出insigi上的。
一個無意義譯碼器24連接到總線V2i上并檢測是否在V2i上的比特為全“0”或“1”(如果在總線V2i上的字表示一個整數(shù)),以及,如果在總線V2i上的字表示一個浮點(diǎn)值,則分另檢測在冪指數(shù)部分中的比特及在數(shù)值部分中的比特是否是全“0”或“1”。關(guān)于這一點(diǎn)的信息是從揭示輸入V2i的最代位比特組并提供與信號B1sb1相同類型的信息的一個信號B1sb2中得出的。這些檢測的結(jié)果提供在連接到ALU控制電路27的一個輸入上的輸出insig2上。
一個無意義譯碼器25連接到線V3i上并且檢測是否在V3i上的比特為全“0”或“1”,(如果在總線V3i上上的字表示一個整數(shù)),以及如果在總線V3i上的字表示一個浮點(diǎn)值,則分別檢測在冪指數(shù)部分中的比特及在數(shù)值的比特是否為全“0”或“1”。關(guān)于這的信息是從信號B1sb1中得出的。這些檢測的結(jié)果是提供在連接到ALU控制電路27的一個輸入的輸出insig3上的。
每一個無意義譯碼器也是由來自ALU控制電路27的一個控制C5控制的,信號C5將在下面進(jìn)行說明。
設(shè)置無意義譯碼器的目的是為了探測在參加要進(jìn)行的計(jì)算的輸入中的一個上的信息是否是無意義的。這一信息也在總線As\-TATE上提供給控制單元CU。一個來自無意義單元的至少一個輸入(例如指示全零)的最終狀態(tài)可被AKU控制電路27用來進(jìn)行某些類型的運(yùn)算,這些運(yùn)算中包括若干次迭代。
一個指令譯碼器26連接到總線V0i上。當(dāng)ALU要執(zhí)行一個算術(shù)運(yùn)算時,總線V0i上帶有指令。如果V0i上帶有指令或數(shù)據(jù)值,則V0i的譯碼結(jié)果通過輸出ins傳輸?shù)紸LU控制驅(qū)動器27.單元23至27也分別由電路PD1,PD2與27中所生成的其它信號B1sb1,B1sb2與C5所控制的,這將在下面說明。
加法器與減法器連接到總線V1i與V2i上的一個第一加法器28執(zhí)行加法V1i+V2i并將結(jié)果饋送給一個獨(dú)立輸出a1。結(jié)果的一個可能出現(xiàn)的進(jìn)位信號將饋送給連接到ALU控制驅(qū)動器27的一個輸出gra1上。一個連接到總線V1i與V2i上上的減法器29執(zhí)行減法V1i-V2i并將結(jié)果饋送給一個獨(dú)立的輸出a2。結(jié)果的一個可能出現(xiàn)的進(jìn)位(錯位)信號將饋送到連接到ALU控制驅(qū)動器的一個輸出gra2上。連接到V1i與V2i上的一個第二加法器30執(zhí)行加法V1i與V2i并將結(jié)果饋送給一個獨(dú)立輸出a3。結(jié)果的一個可能出現(xiàn)的進(jìn)位信號將饋送到連接到ALU控制驅(qū)動器27的一個輸出gra3上。
值部分OPm具有一個輸出n1而冪指數(shù)部分具有一個輸出n2。輸出n1與n2是連接到一個輸出總線選擇器的輸主上的,該選擇器也稱作比特組獨(dú)立單位選擇器M1。一個在控制信號C211控制下提供可隨意選擇的四個“0”或四個“1”的精度組的0/1發(fā)生器40也連接到選擇器M1的一個附加輸入上。
冪指數(shù)部分OPe有該運(yùn)算數(shù)單元的輸入中的四個作為輸入,即V2i、與來自精度譯碼器PD2
的Bbias2、B\-coincr2、Bcoder2,以及還有一個來自電數(shù)值部分OPm的一個輸入n8。輸入V2i連接到一個加1器INC的輸入、一個減1器DEC的輸入及一個字選擇器M2的五個輸入之一。部件INC與DEC的輸出n6與n6分別連接到字選擇器M2的兩個輸入上。Bcoincr2、Bcoder2連接到字選擇器M2的其它兩個輸入。
運(yùn)算數(shù)單元r2中的部件INC及DEC各有一個進(jìn)位輸出gri2與grd2連接到ALU控制驅(qū)動電路27。(運(yùn)算數(shù)單元r1同樣有一個加1部件進(jìn)位輸出gri1與一個減1部件進(jìn)位輸出grd1連接到ALU控制驅(qū)動電路27)。進(jìn)位輸出是在時鐘周期的前一半中較早提供的。選擇器是在時鐘周期的前一半中較晚受到控制的,然后這一選擇器信號被提供去關(guān)心是否在某些加1或減1電路中有進(jìn)位這樣的事實(shí)。
到達(dá)第一選擇器的正常最大傳播延時大于半個周期。從而,這一配置不會引起額外的延時。然而,典型的傳播延時一般是小于半個周期的。所有信號在過渡到后半周期時受到判斷。在選擇器中沒有不必要的過渡。
每一個加法器也受來自ALU控制電路27的一個控制信號C5(下面要更詳細(xì)地說明)以及信號B1sb1控制。這一信號提供有關(guān)在輸入總線上的字表示的是整數(shù)還是浮點(diǎn)值的信息,并且在浮點(diǎn)值的情況中用冪指數(shù)與數(shù)值部分之間的分界對準(zhǔn)在總線V1i與V2i上的值。這一信息是重要的,因?yàn)殡x散值,即整數(shù),是作為一個實(shí)體來計(jì)算的,但對于連續(xù)值,即浮點(diǎn)值,數(shù)值部分與冪指數(shù)部分是分別計(jì)算的。
一個第一符號與冪指數(shù)符號電路35分離出在總線V1i上的字的符號,冪指數(shù)符號,數(shù)值部分的最高位比特,以及數(shù)值部分的兩個最低位比特,并將其輸出sign,饋送到ALU控制驅(qū)動電路27的一個輸入上,一個第二符號與冪指數(shù)符號電路36分離出總線V2i上的字的符號,冪指數(shù)符號,數(shù)值部分的最高位比特以及數(shù)值部分的兩個最低位比特部分并將其輸出sign2饋送到ALU控制驅(qū)動電路27的一個輸入上。同樣,一個第三符號與冪指數(shù)符號電路37可連接到總線V3i上并將其輸出sign3饋送給ALU控制驅(qū)動電路27的一個輸入。需要指出的是,當(dāng)符號,冪指數(shù)符號與數(shù)值部分是作為在總線V1i與V2i上的提供的字的一部分提供時,電路35與36是絕對需要的。在輸入總線上是浮點(diǎn)值字的情況中,它們是被ALU控制電路所利用的。在根據(jù)本發(fā)明的ALU的某些應(yīng)用中,電路37是可以省略的。在根據(jù)本發(fā)明的ALU的某些應(yīng)用中也可為總線V0\-i設(shè)置一個符號與冪指數(shù)符號電路(未示出)。
ALU控制驅(qū)動器27以處理其輸入信號在輸出總線C1,C2,C3,C4,C5上提供數(shù)字輸出信號。ALU控制驅(qū)動器27最好是布爾門陣列。輸出信號所提供的控制的例子將在下面進(jìn)一步說明。
運(yùn)算數(shù)單元兩個運(yùn)算數(shù)單元r1與r2,各用于總線V1i與V2i上一個運(yùn)算數(shù),包含一個元素所獨(dú)具的所有算術(shù)性質(zhì)。每一個運(yùn)算數(shù)單元有若干信息輸入。其中三個是分別連接到三個單元28、29與30的三個獨(dú)立輸出a1、a2、與a3上的,其中兩個是分別連接到輸入總線V1i與V2i的,以及其中三個是分別連接到下面將進(jìn)一步說明的一個獨(dú)立的精度譯碼器PD1或PD2的某些輸同上的。原則上,每個個信息輸入是一條包含與各輸入總線V0i,V1i,V2i,V3i相同數(shù)目的導(dǎo)線的總線。
運(yùn)算數(shù)單元r1的輸出是輸出總線V100T而運(yùn)算數(shù)單元r2的輸出是輸出總線V20T。
ALU控制單元27的一個第一輸出C1是一個控制運(yùn)算數(shù)單元r1中的內(nèi)部元件的合成控制信號。對單元r1的其它控制信號是由精度譯碼器PD1提供的。ALU控制單元27的一個第二輸出C2是一個控制運(yùn)算數(shù)單元r2中的內(nèi)部元件的合成控制信號。對單元r2的其它控制信號是由精度譯碼器PD2提供的。一個第三輸出C3是一個提供給第三運(yùn)算數(shù)單元r3的合成信號,一個第四輸出C4是提供來控制一個多項(xiàng)式供應(yīng)電路31的(下面將進(jìn)一步說明),一個第五輸出C5是提供來控制精度譯碼器PD1與PD2友及無意義電路23至25、加法器28、29與減法器29、及符號與冪指數(shù)符號電路35至37。
各運(yùn)算數(shù)單元r1或r2基本上具有相同的配置,所以只對其中一個r2進(jìn)行詳細(xì)說明。在單元r1與r2中的對應(yīng)元件使用同一參照標(biāo)志。運(yùn)算數(shù)單元分成兩個組,冪數(shù)部分OP與數(shù)值部分OPm。數(shù)運(yùn)算數(shù)單元中的字選擇器M2的輸出n4直接連接到具有四個輸入的一個字選擇器M3的一個第一輸入上并且通過一個反相器INV連接到它的一個第二輸入上。輸出n2是冪指數(shù)部分OPe的輸出。輸入Bbias2連接到字選擇器M3的一個第三輸入。
數(shù)值部分OPm有五個輸入,即V2i、V1i、a1、a2與a3。所有這些輸入分別連接到一個具有五個輸入及一個輸出n8的字選擇器的各輸入上。輸出n8連接到冪指數(shù)部分OPe中的字選擇器M3的第四輸入上。輸出n8同時直接連接到一個字選擇器M5的三個輸入中的一個上。通過一個負(fù)移位器SH1連接到該字選擇器M5的一個第二輸入,(負(fù)移位器SH1將其輸入上的二進(jìn)制信息而較低位方向移位四步,即將該二進(jìn)制信息除以16),并通過一個正移位器SK2連接到一個第三輸入上,正移位器SH2將其輸入上的二進(jìn)制信息向較高位方向移位四步,即將其輸入上的二進(jìn)制信息乘以16。
字選擇器M5的輸出n7直接連接到一個字選擇器M6的六個輸入中的第一個上;通過一個負(fù)移位器SH3(將其輸入上的二進(jìn)制信息向較低位方向移位一步)連接到一個第二輸入;通過一個第二負(fù)移位器SH4(將其輸入上的二進(jìn)制信息向較低方向移位一步)連接到一個第三輸入;通過一個正移位器SH5(將其輸入上的二進(jìn)制信息向較高位方向移位一小)連接到一個第四輸入;并通過一個第二正移位器SH6(將其輸入上的二進(jìn)制信息向較高件方向移位一步)連接到一個第五輸入。一個內(nèi)部常數(shù)字發(fā)生器41在其控制輸入C210的控制下生成一個常數(shù)字Cword2并以其輸出連接到字選擇器M6的一個獨(dú)立輸入上。常數(shù)字發(fā)生器41能夠提供一組預(yù)先確定的零或一的組合,例如全“0”或全“1”或一個指示某一特定信息的字,該發(fā)生器是由向它發(fā)出的一個控制信號C210控制的。發(fā)生器只能存儲有限數(shù)量的字組合,供控制信號C10在它們中間選擇。字選擇器M6的車出便是數(shù)值部分OPm的輸出n1。
數(shù)值部分OPm實(shí)現(xiàn)下述功能。n8上的基本數(shù)值部分的值被字選擇器M4選下,結(jié)果在V2i、V1i、a1、a2、或a-3中之一。它可以用它本身的值或者向左移位(正移位)1、2、3、4、5、6比特或者向右移位(負(fù)移位)1、2、3、4、5、6比特或者可以用常數(shù)字發(fā)生器41所提供的字Cword2代替。
冪指數(shù)部分OPe實(shí)現(xiàn)下述功能。它的輸出可以是n8上的未稱位的數(shù)值部分的值、V2i+1、反相V2i+1、V2i-1、反相V2i-1、Bco-incr2、反相Bco-incr2、Bco-decr2、反相Bco-decr2、或Bbias2之一。
在運(yùn)算數(shù)單元r2中,字選擇器M2至M6是獨(dú)立地由ALU控制驅(qū)動電路27的輸出C2上的控制字C2控制的。從而,字選擇器M2是由控制字C2的部分C23控制的,字選擇器M3由控制字C2的部分C22,字選擇器M4由控制字的部分C26,字選擇器M5帽控制字的部分C25,以及字選擇器M6由控制字的部分C24。同樣,連接到選擇器M4的輸出n8的移位器SH1與SH2是由部分信號C28控制的,移位器SH3至SH6由部分信號C27,加1器INC與減1器DEC由部分信號C29,提供輸出Cword2的常數(shù)字發(fā)生器41由部分信號C210,以及0/1發(fā)生器40由部分信號C21\-1。
比特半字節(jié)獨(dú)立單位選擇器M1由一個包含控制字的部分C21、來自一個精度譯碼器PD2的一個輸出碼信號Bcde2、一個輸出最低位比特信號B1sbadj2、以及一個輸出冪指數(shù)信號Bexpadj2的組合多比特信號控制,最后提到的兩個信號是在處理電路42A與42B中分別從來自精度譯碼器PD2的輸出B1sb2與Bexp2中導(dǎo)出的。這些信號將在下面說明與示出。處理電路42A與42B由來自ALU控制驅(qū)動電路27的輸出C2的一部分的信號C25控制。精度譯碼器PD2具有作為一個輸入的總線V2i上的信息的exp符號與代碼部分,連同來自ALU控制驅(qū)動器電路27的一個指示在總線V2i上的字表示一個整數(shù)還是一個浮點(diǎn)值的二進(jìn)制控制信號C53??刂菩盘朇53是來自ALU控制電路27的輸出C5的一部分。
運(yùn)算數(shù)單元r1的精度譯碼器PD1以一種等價的方式工作。來自精度譯碼器PD1的信號B1sb2與Bexp1是在分別提供輸出B1sbadj1與Bexpadj1的處理電路43A與43B中處理的。處理電路42A、42B與43A、43B通常提供與來自它所隸屬于的譯碼器的輸入相同的輸出。然而,在某些時候,當(dāng)從加1器INC或減1器DEC提供了一個進(jìn)位時,輸出信號將被移件,如下面將要進(jìn)一步說明。這一移位將由分別來自ALU控制電路27的輸出C2或C1的部分信號C25或C15分別控制。
如果字V2i表示一個整數(shù),則精度譯碼器PD2(或PD1)提供完全無意義的輸出,例如這是以輸出到處理電路42A、42B(或43A、43B)的輸郵為全零來表示,如果字V2i(或V1i)表示一個浮點(diǎn)值,則提供下面作為Bexp2、B1sb2與Bexp1說明的類型的輸出(或者B1sb1、Bexp1與Bcde2)。
圖8
比特半字節(jié)獨(dú)立單位選擇器M1受控去分別選擇提供在輸出n1與n2并來自發(fā)生器40的部分信息。圖3中所示的類型的一個字,即表示一個浮點(diǎn)值,示出在圖8的上部,但這是用一種分開的矩形格式來表示比特組是如何形成的。參照標(biāo)志s、se、c、e、m、msb與1sb分別表示符號、冪指數(shù)符號、代碼、冪指數(shù)、數(shù)值部分、最高位比特與最低位比特。選擇器M1的輸入信息的分開的拼合組合的例子示出在矩形形式的字的下方??刂频念愋拖駭?shù)據(jù)領(lǐng)域中所常用的那樣用助記碼表示,而這種助記碼的例子則示出在圖8中的左側(cè)。
每一個助記碼是自然地以包含諸如5或6比特的一個比特模式表示。比特模式最好是提供在到選擇器M1的控制總線C21上(以及在到M1的控制總線C11上)。如果適當(dāng),處理電路42A與42B對來自精度譯碼器的信號B1sb2與Bexp2進(jìn)行移位從而選擇器M1的控制輸入分別提供信號B1sbadj1與Bexpadj2。因此,選擇器M1是受提供在其輸入上的若干信號控制的,但只對通過一個布爾門陣列的輸入組合控制信號中的一定比特組合作出反應(yīng),每一種組合提供一種來自輸入n1、n2并從I/O電路40輸出的組合輸郵的一個特定的組合,如在圖8中明顯地看到的。
運(yùn)算數(shù)單元r1與r2之間的差別如上所述,運(yùn)算數(shù)單元r1的配置基本上與運(yùn)算數(shù)單元r2相同。下面是兩個運(yùn)算數(shù)單元r1與r2之間有差別輸入V1與V2的位置互換。常數(shù)Cword1與常數(shù)Cword2無關(guān)。電路r1是由ALU控制驅(qū)動電路的分成獨(dú)立的控制字部分Cl2至Cl11的控制輸出C1控制的(而不是由控制輸出C2),并且是由具有V1isecli,即V1i的冪指數(shù)符號與代碼部分,作為一個輸入的精度譯碼器PD1控制的(而不是具有Vlisecli,即V1i的冪指數(shù)符號與代碼部分,作為一個輸入的精度譯碼器PD2)。
精度譯碼器PD1向運(yùn)算數(shù)單元r1提供輸出信號Bco-decr1、Bco-incr1、Bbia\-s1、Bexp1、B1sb1、Bmsb1、與Bcde1、并向ALU控制驅(qū)動電路27提供一個指示是否代碼表示冪指數(shù)的最大長度的信號Bcomax1,及一個指示是否代碼表示冪指數(shù)的一個最小長度的信號Bcomin1。精度譯碼器PD2向運(yùn)算數(shù)單元r2提供輸出信號Bco-decr1、Bco-incr1、Bbias1、Bexp1、B1sb1、Bms\-b1、與Bcde1,并向ALU控制驅(qū)動電路27提供一個指示代碼是否表示冪指數(shù)的最大長度的信號Bcomax\-1與一個指示代碼是否表示冪數(shù)的最小長度的信號Bcomin1。為了在輸出上與在正常的移件中使新的精度得到反映,分別來自精度譯碼器PD1或PD2的輸出B1sb、Bexp必須與數(shù)值部分同樣地移位,這是分別在信號C25或C15的一部分的控制下由電路42A與42B或43A與43B控制進(jìn)行的,如上所述。
每一個精度譯碼器在其輸入上被饋送一個信號C53,分別指示在總線V1i或V2i上的字表示一個整數(shù)還是一個浮點(diǎn)值。信號C53是來自ALU控制驅(qū)動電路27控制電路23至30的輸出C5的信號的一部分。
來自精度譯碼器的輸出信號將在下面進(jìn)一步詳細(xì)說明。
乘法與除法,運(yùn)算數(shù)單元r3第三運(yùn)算數(shù)單元r3,被乘數(shù)/商功能單元,是具有與單元r1與r2不同的類型的并且是在大多數(shù)情況下為乘法與除法運(yùn)算提供的。制字C4的控制下被控成切斷狀態(tài)。從而,電路26′的輸出V000T通常具有與總線V0i相同的信息。
數(shù)值A(chǔ)LU的自檢可以設(shè)置一個所謂的多項(xiàng)式發(fā)生器31。該我項(xiàng)式發(fā)生器生成用于ALU自檢目的測試碼。發(fā)生器31使用包括總線V0i,V1i,V2i,V3i上的所有信息的整個閉包作為目變量并向到總線V000T′、V100T′、V200T′、V300T′、的目標(biāo)寄存器提供數(shù)值。
當(dāng)進(jìn)行一次自檢時,ALU控制單元27以信號C4控制緩沖器電路26′,以及以信號C11控制運(yùn)算數(shù)單元r1中的選擇器M1;以信號C21控制運(yùn)算數(shù)單元r2中的選擇器M1,從信號C3 -1控制運(yùn)算數(shù)單元r3中的選擇器M12以斷開在總線(分別為V000T、V100T、V200T、V300T、)上的輸出,并接通多項(xiàng)式發(fā)生器輸出(它們通常是斷開的)。以這一方法,是多項(xiàng)式發(fā)生器輸出V000T′、V100T′、V200T′、V300T′而不是來自單元26′、r1、r2與r3的總線V000T、V100T、V200T、V300T上的輸出接通提供給輸入/輸出總線V0、V1、V2與V3的信息。
三態(tài)驅(qū)動器39來自內(nèi)部電路26′、r1、r2與r3的輸出總線以及多項(xiàng)式電路31的輸出總線V000T′、V100T′、V200T′、V300T′連接到一個輸出三態(tài)驅(qū)動器39的不同輸入上。三態(tài)驅(qū)動器39具有與圖7A至7C中所示的緩沖器幾乎相同的配置并且是由ALU控制驅(qū)動電路的輸出C4控制或者將來自內(nèi)部電路的內(nèi)部緩沖器接通,即傳導(dǎo)的,而將多項(xiàng)式電路31的輸出總線的內(nèi)部緩沖器切斷,即阻塞,這是正常狀態(tài),或者在儉測周期情況中的其它方式。
圖9與精度譯碼器PD1與PD2圖9示出了在一條輸入總線V1i或V2i上一個表示浮點(diǎn)值的字的例子中來自一個精度譯碼器的輸出信號的一個實(shí)施例。用于浮點(diǎn)值的精度譯碼器的輸出將結(jié)合這一例子說明。
下面要進(jìn)一步說明的精度譯碼器的變元是浮點(diǎn)值說明的冪指數(shù)符號與代碼部分,并提供了指示該字表示一個浮點(diǎn)值的控制信號。它是1+4比特寬的。
代碼比特段中不同的代碼對應(yīng)于不同的精度(數(shù)值部分長度及冪指數(shù)長度0。冪指數(shù)的最低半字節(jié)1sb(見圖8)是隨精度變化的。這一半字節(jié)就是圖9中的示例性字中具有比特模式0100的那個半字節(jié)。二進(jìn)制信號B1sb中每一精度半字節(jié)有一個比特,即8個比特,并且除了最低精度半字節(jié)以外對所有半字節(jié)都為“0”。
一個代碼及其反碼格式表示相同的精度,其中對應(yīng)的冪指數(shù)符號是互補(bǔ)的,如下面以表格形式示出的。
1sb的半字節(jié) 代碼,包括前導(dǎo)的冪指數(shù)符號0(包括字的1sb) 不用 不用1 1 1111 +0 00002 1 1110 +0 00013 1 1101 +0 00104 1 1100 +0 00115 1 10- +0 01-6 1 0- +0 17(包括字的msb) i 不用 不用上表中所示代碼把冪指數(shù)的符號作為一個元素。當(dāng)這一元素為真時,所有其它比特以它們原樣使用,但當(dāng)它為偽時,則它們被反相。
如上所述,精度譯碼器提供布爾值序列,即若干輸出字,它們是饋送到ALU中不同單元的,諸如運(yùn)算數(shù)單元,ALU控制驅(qū)動電路等。對于表示浮點(diǎn)值的一個字,信號B1sb可能只為半字節(jié)1至6中的一個提供一個真比特而其余的比特都是偽比特。對半字節(jié)0與7提供的總是偽比特。
八個布爾值的一個序列(每一精度半字節(jié)一個)以一個真比特指示屬于代碼/冪指數(shù)部分的精度半字節(jié),如圖9中Bexp一邊所示。
在所示的例子中由于變化的代碼長度,最高位冪指數(shù)比特有三個可能的位置。
如圖9所示,這里Bmsb是三個布爾值指示那一個位置有一個真比特(其它為偽比特)。因此,在所示的例子中Bmsb為001指示代碼長度是最大的,例如1sb1至4的半字節(jié)(見上面的表)。010指示半字節(jié)5而100指示半字節(jié)6。
在圖9的例子中,Bcde是對應(yīng)于兩個最高位精度半字節(jié)中所有比特的8個布爾值。Bcde從最低位代碼比特到冪指數(shù)符號為真(“1””。
單元r3在乘與除功能中執(zhí)行必要的移件與置位。它是由提供在ALU控制單元27的輸出C3上的一個控制字控制的。
被乘數(shù)/商單元r3有若干輸入,在其中的第一個上提供總線V2i上的信息,第二個上提供總線V3i上的信息,及在第三個上提供來自常數(shù)字發(fā)生器44的一個輸出,該輸出是在來自電路27的輸出C3的一個部分信號C33的控制下從存儲在發(fā)一器中的若干比特模式中提供一個選中的比特模式。
單元r3是用于在復(fù)雜的數(shù)值計(jì)算中計(jì)算一個變元。其輸出連接到總線V300T。
輸入V2i被饋送到一個字選擇器M11的一個第一輸入上。輸入V3i是直接饋送到該字選擇器M11的一個第二輸入上,通過一個由信號部分C35控制控制的正一比特移位器SH11饋送到一個第三輸入,通過一個第一負(fù)一比特移位器SH12到一個第四輸入,以及通過一個第二負(fù)一比特移位器SH13到一個第五輸入,最后提到的兩個比特移位器是由信號C33、Bmsb1、N1sb1控制的。發(fā)生器44的輸出是連接到字選擇器M11的一個第六輸入上的。要提供給一個第二字選擇器M12的一個輸入的字選擇器M11的輸出是由來自ALU控制單元27的控制字C3的一個控制字部分C32選定的。
M12是將選擇器11販輸出提供給輸出總線V3oUT的一個總線連接,但它能在一個控制字部分C31的控制下被控成切斷狀態(tài),如下面將說明的。
一個緩沖器電路26′連接到總線V0i上。電路26′是將V0i提供到其輸出的一個總線連接,但它能在來自ALU控制電路27的一個控這里Bbias是一個用于調(diào)整浮點(diǎn)值表示的32比特字。除了最低位冪指數(shù)比特以外,所有比特均為偽(“0”)。
精度譯碼器也分別提供加1與減1后的碼Bcoincr與Bcodecr,它們是在精度變動后用在某些運(yùn)算中的。對于信號Bcoincr與Bcodecr只示出了延伸在字中的只指數(shù)符號與代碼部分上的前面幾個比特。然而,字是最好32比特長的。其余的比特最好全為“0”。
兩個布爾值Bcomax與Bcomin指示代碼是否表示一個最大或最小的冪指數(shù)長度。在圖9中所示的例子中,在半字節(jié)4中提供了最低位指數(shù)比特。從而布爾值Bcomax與Bcomin均為“0”。如果在半字節(jié)1中提供了最低位指數(shù)比特,則Bcomin為“1”,而如果半字節(jié)6中提供了最低位冪指數(shù)經(jīng)特,則Bcomax為“1”。
圖9中示例的信號是在浮點(diǎn)值的情況中所提供的信號。對于一個整數(shù),信號B1sb、Bexp、及Bcde全都為偽,即只有“0”。需要指出的是,當(dāng)然有可能用另外的比特組合的集來指示一個整數(shù);其條件是這些信號的一個十分特別的比特組合表示一個整數(shù)。
精度譯碼器的一個實(shí)施例將結(jié)合圖13進(jìn)行說明。
浮點(diǎn)值加法的例子上面結(jié)合圖2的說明給出了一個整數(shù)乘法運(yùn)算的例子。為了展示根據(jù)本發(fā)明的ALU的功能,這里給出了兩個浮點(diǎn)值的一個加法運(yùn)算的例子。
如上所述,連續(xù)編碼方案沒有冗余,即沒有為檢測目的增加數(shù)據(jù)。所以,諸如對齊與精度調(diào)整這樣的正常操作不可能以直接的方法進(jìn)行。為了解決這一問題,在V0i上的信息中包括了一種狀態(tài)。它們定義了在總線V1i或V2i上的運(yùn)算數(shù),下面稱作a運(yùn)算數(shù)與b運(yùn)算數(shù),是怎樣編碼的。這三種狀態(tài)是Na或b運(yùn)算數(shù)中沒有一個具有一個改變的代碼,它們都是規(guī)范化的。
Aa運(yùn)算數(shù)具有改變了的代碼,它不是規(guī)范化的。
Bb運(yùn)算數(shù)具有改變了的代碼,它不是規(guī)范化的。
數(shù)值部分的解釋,圖10圖10示出了對數(shù)值部分的一個比特序列1010的一個規(guī)范化碼與一個改變的碼的解釋的例子。為規(guī)范化碼提供了一個虛擬的1,該碼給出結(jié)果1.625,而對于改變的碼則不提供虛擬的比特,該碼給同結(jié)果0.625。
圖11與12,對準(zhǔn)連續(xù)加法,即兩個浮點(diǎn)值的加法,的第一步是對準(zhǔn)在輸入總線上的運(yùn)算數(shù)(如果指數(shù)不相等)。如果值a與b要相加,而a=1.5 231與b=-1.125 233,值a的冪指數(shù)較值b的為小,所以在實(shí)際相加運(yùn)算前必須先對準(zhǔn),如圖11與12所示,示出了示例值a的一個第一與一個第二對準(zhǔn)周期。
示出的全子是選擇為使用三種情況來對準(zhǔn)兩個運(yùn)算數(shù)的。值a的冪指數(shù)增加1而其數(shù)值部分則除以29向較低位一步)。為了使a具有與b相同的冪指數(shù)(33),這一操作要進(jìn)行兩次。
這一例子是這樣選擇的,使得三種情況用于對準(zhǔn)兩個變元1.在一個對準(zhǔn)周期中的初始值是以一個二進(jìn)制組合表示的,其中的冪指數(shù)值是代碼c的最高可能值并且冪指數(shù)符號是負(fù)的。注意不論冪指數(shù)的符號是正還是負(fù),一個數(shù)的精度不變的。在步進(jìn)冪指數(shù)時,精度必定會增加。冪指數(shù)部分增加1,然后將數(shù)值部分左移適當(dāng)數(shù)目的步數(shù)。
2.在一個對準(zhǔn)周期中的初始值的冪指數(shù)是這一周期中的代碼c的最高可能值,并且冪指數(shù)符號是正的。在步進(jìn)冪指數(shù)時,精度必定會降低。冪指數(shù)部分增加1,然后將數(shù)值部分右移適當(dāng)數(shù)目的步數(shù)。
3.對準(zhǔn)周期中的初始值的冪指數(shù)值不是最高的可能值。冪指數(shù)被步進(jìn)而數(shù)值分則被除以2。
在本例中的值a的第一對準(zhǔn)周期中,即從圖11中上方的比特表示改變到其下方的比特表示,精度碼是向右增加一個比特,由于當(dāng)冪指數(shù)增加時它是最大值這一事實(shí),即包含全“1”,一個進(jìn)位被傳播到精度碼中,使之也加1。此后該代碼被解釋為增大了并加和節(jié)一個比特(見上表中半字節(jié)5中的代碼)。這實(shí)際上意味著冪指數(shù)長度在其左方減少了一個比特而在其右方增加了一個精度半字節(jié)(4比特)。冪指數(shù)值也增加了1。數(shù)值部分先右移四步(精度降低)然后右移一步(除以2)。當(dāng)數(shù)值部分半字節(jié)向較低位移位一步時,虛擬的“1”移進(jìn)數(shù)值部分中,因而在第一對準(zhǔn)周期以后在其最高位精度半字節(jié)中具有數(shù)字組合1100。
對準(zhǔn)的硬件執(zhí)行這一操作是在ALU中的一個周期中在運(yùn)算數(shù)單元r1中完成的(如果值a是在總線V1i上提供的)。冪指數(shù)值是原始值a的表示中的最高可能值。冪指數(shù)值符號為正,這意味著所有的冪指數(shù)比特都是1。當(dāng)該冪指數(shù)被加1器INC增加1時,所有的比特都變成0而加1器INC向ALU控制驅(qū)動電路27饋送一個進(jìn)位gri1,AKU控制驅(qū)動電路27改變二進(jìn)制輸出部分信號C15使之控制處理單元43A與43B將來自精度譯碼器PD1的信號向左移位。進(jìn)位信號gri1同時被傳送到代碼部分中,如上所述。
在進(jìn)行一次減1的情況中,同樣的討論也適用于減1器DEC,但如果提供了一個進(jìn)位(借位grdj,j為1或2,則部分信號Cj5分別控制處理單元43A與43B或42A與42B進(jìn)行一個向左移位(2)。需要指出的是,加1器與減1器是在時鐘信號的第一個半周期的第一部分中提供它們的輸出,從而在這一半周期中能夠較早地向處理單元提供控制信號。對所有運(yùn)算數(shù)單元的選擇器的控制是在時鐘周期的第一個半周期中的后一部分中提供的。在時鐘周期的后一部分中精度譯碼器的輸出是不變的。當(dāng)內(nèi)部輸入總線V0i,V1i,V2i與V3i一有穩(wěn)定的值便立即將它們穩(wěn)定化。如上所述,在時鐘周期的前一半中,在總線連接20中的輸入緩沖器分別讓來自外部總線V0i,V1i,V2i與V3i的數(shù)據(jù)通過,而輸出緩沖器則將來自運(yùn)算數(shù)單元的輸出數(shù)據(jù)與外部總線隔離。在時鐘周期的第二個半周期中,輸入緩沖器保持內(nèi)部輸入總線V0i,V1i,V2i與V3i上的值,而新的輸出數(shù)據(jù)則被傳送到外部總線。這意味著精度譯碼器只在下一個時鐘周期中受新的輸出數(shù)據(jù)的影響。
數(shù)值部分是被運(yùn)算數(shù)單元r1中的左移一個精度半字節(jié)單元SH2左移一個精度半字節(jié)的9即除以16)。最低位冪指數(shù)精度半字節(jié)是由精度譯碼器PD1提供的一個比特矢量信號B1sb1指示的。這一半字節(jié)的右移是由處理單元43A與43B執(zhí)行的。為了由移位一步單元SH5將數(shù)值部分從一個新的位置上再移位一步(除以2),單元43A與43B將B1sb1矢量向右調(diào)整。調(diào)整后的矢量信號B1sbadj1用于從數(shù)值部分OPm與冪指數(shù)部分OPe中選擇輸出。為了補(bǔ)充完整冪指數(shù)部分,將來自電路40的一個4個“0”組成和半字節(jié)插入r1作為冪指數(shù)部分中的新的最低位精度半字節(jié)(見圖8cef-m/cef-m)。
比特值“1”,在一個規(guī)范化代碼中的虛擬比特,被移位進(jìn)入新的最高位數(shù)值位置中,這相當(dāng)于一個規(guī)范化正數(shù)值部分的除法((1.0+m)/2)。新的數(shù)值部分不是規(guī)范化的。因此值a得到的是一個改變代碼(在冪指數(shù)與數(shù)值區(qū)域之間有一個“0”作為虛擬比特)。
在第二對準(zhǔn)周期中,示出在圖12中,沒有必要改變精度,即在冪指數(shù)中的比特?cái)?shù)不需要9改變。只是將冪指數(shù)部分增加1,而代碼c保持不變。因?yàn)閮缰笖?shù)在這一對準(zhǔn)周期的原始值的精度狀態(tài)中并不是最高可能值,所以沒有進(jìn)位信號被提供來改變該代碼。
數(shù)值部分右移一步(SH5)。由于現(xiàn)在的移位是從一個改變的代碼提供的,在冪指數(shù)與數(shù)值部分之間不存在虛擬的“1”,所以移主一個虛擬的“0”而在最高位精度半字節(jié)中的數(shù)字組合將是0110。從而,經(jīng)過對準(zhǔn)以后,值a具有一個改變的代碼并以0.375×233表示。
為了得到一個規(guī)范化的數(shù)值部分,連續(xù)加法的第二步是規(guī)范化變元而不是加法的結(jié)果。a+b的結(jié)果是0.375×233-1.125×233=0.750×233,這不是一個規(guī)范化的結(jié)果。因此,在加法以后將隨著進(jìn)行一個變元規(guī)范化,它給出規(guī)范化的和-1.5×232(=2(-0.750×233/2))。
浮點(diǎn)值的乘法是類似于繪畫科2的描述在上面說明的整數(shù)乘法執(zhí)行的。然而,為了減少時間延遲,使用的是二個比特而不只是一個比特。
在乘法循環(huán)中,用于數(shù)值部分的等式是sma smb=smv2ismv3i,其中sm表示由符號、一個虛擬比特與數(shù)值部分比特組成的真實(shí)的帶符號的數(shù)值部分的值。
V1i字在循環(huán)中沒有冪指數(shù)符號、精度代碼或冪指數(shù)值。反之,其數(shù)值部分比運(yùn)算的實(shí)際精度長。數(shù)值部分的前導(dǎo)比特是這樣編碼的使得整個字V1i是一個等于部分?jǐn)?shù)值部分的一個離散值。符號比特具有積的正確的值。
字V3i是被乘數(shù)。它是不改變的。
字V3i具有其原來的冪指數(shù)符號、精度、及冪指數(shù)值。然而,數(shù)值部分被附加在符號比特上構(gòu)成一個比該字的數(shù)值部分長一個比特的精度。在這一情況中的數(shù)值部分是編碼為一個不帶符號比特的離散的值。符號比特可從字V1i的符號中導(dǎo)出。
在乘法循環(huán)中字V1i是右移的。字V3i也是每次右移兩個比特的(SH13)。當(dāng)V3i中所有的經(jīng)特都用盡后,循環(huán)便結(jié)束了。然后規(guī)范化其結(jié)果。
我們深信從上面給出的ALU運(yùn)算的示例描述中,本領(lǐng)域的技術(shù)人員可以容易地推導(dǎo)出其它類型的運(yùn)算可以如何地由ALU處理。
圖13,精度譯碼器精度譯碼器的原理性結(jié)構(gòu)示出在圖13中。需要指出的是,可以對所示的結(jié)構(gòu)進(jìn)行修改,例如為了加快運(yùn)算速度。這些只是構(gòu)造性特性,對于本領(lǐng)域的技術(shù)人員是明顯的,所以將不在這里說明。這意味著實(shí)際的電路可以具有與圖13所示的配置十分有同的其它配置,但它將具有與該圖中所明白表示的同樣的原理性功能。
輸入信號Vji的冪指數(shù)符號與代碼部分,其中j是1或2兩者之一,被饋送到一個重編碼電路50,在精度譯碼器的這一原理型實(shí)施例中,電路50在其輸出上提供示出在上面的表中的包括前導(dǎo)的冪指數(shù)符號的代碼的變型之一,例如左邊的一個,諸如此類的變型被提供在其輸入上。另一方面,兩種變型可以提供在重編碼電路50的輸出上,但永遠(yuǎn)具有相同的次序,例如,上表中分配給它的線中的左邊的變型以及在分配給它的線上的右邊的下一個。輸出被饋送到一個比特序列比較器電路51,它監(jiān)視在其輸入上的比特組合并提供指示代碼的長度的數(shù)字信號Bmsb,見圖8,即在所選定的例子中是一比特還是二比特還是三比特長。它同樣提供信號Bcde。
六個比特序列比較器電路52至57同樣連接到重編碼電路50的輸出上,每一個適用于對其特定的編碼作出反應(yīng)在輸出上提供一個“1”,如果在來自重編碼電路50的輸出線上的比特模式是與它適配于作出反應(yīng)的模式相同則提供一個輸出“1”,即一個真信號,其它電路則正在提供輸出“0”,即一個偽信號。信號B1sb中的第一與最后一個經(jīng)特永遠(yuǎn)是“0”。所以,兩條線58與59直接連接到一條具有比特“0”的線上。
線58、電路52至57的輸出以及線59是提供總線B1sb的,對每一精度半字節(jié)它有一個比特,對每一精度半字節(jié),總線Bbias有中個比特。每一個半字節(jié)包括三個比特“0”以及對于該特定半字節(jié)的信號B1sb的比特。從而各半字節(jié)的線中的三條是連接到“0”的而第四條則連接到輸出B1sb的的適當(dāng)?shù)木€上。輸出Bco-min是連接到電路52的輸出上的而輸出Bco-max則連接到電路57的輸出上。
輸出Bexp的比特模式從最低位向上直到輸出B1s\-b中有一個“1”的位置為止全部為“0”,而從這一位置開始則所有比特都是“1”。在線59上的最低位比特將永遠(yuǎn)是一個“0”,但從次低位比特起有可能是一個比特“1”。所以,一個或門60有一個連接到電路57的輸出上的一個輸入而其余輸入則連接到電路56的輸出上。電路57珠輸出連接到信號Bexp的次低位置線上?;蜷T60的輸出連接到輸出Bexp的更次低位置的線上。因此,如果電路57的輸出碰上是一個“1”,則這將同樣在從或門60提供一個輸出比特“1”。只在電路567與56兩者的輸出均為“0”時,或門60的輸出才將是“0”?;蜷T60的輸出連接到另一或門61的一個第一輸入,而或門61的另一個輸入是連接到電路55的輸出上的?;蜷T61的輸出連接到輸出Bexp的第三最低位置的線上并連接到一個或門62的一個第一輸入上,或門62的另一個輸入連接到電路54的輸出,等等。或門的災(zāi)種級聯(lián)耦合在所有與輸出B1sb給出“1”的位置具有相同位次或較高位次的位置上提供“1”。
字Bcodecr的符號、冪指數(shù)符號與代碼部分具有第一條線連接到提供一個“1”的一個單元,其第二條線連接到連接在B1sb的第六條上的一個反相器161的輸入是連接到B1sb的第五與直接連接到B1sb的第二與第三條線上。字Bcodecr的符號、冪指數(shù)符號、與代碼部分的這些線是連接到為了在其輸出上提供一個32比特的字而向輸入的字上加“0”的一個比特補(bǔ)充電路66的輸入上的。
字Bcoinci的符號、冪指數(shù)符號與代碼部分具有其第一與第二條線連接到提供一個“1”的單元上,其第三條線連接連接到連接在B1sb的第七條線上的一個反相器163上,其第四條線連接到一個或門164該或門的輸入連接到B1sb的第三與條四條線上,以及其第五條線直接連接一個或門165,該或門的輸入是連接到B1sb的第三與第五條線上的。字Bcoincr的符號、冪指數(shù)符號及代碼部分的這些線是連接到為了在其輸出上提供一個32比特的字而向輸入的字上加“0”的一個經(jīng)特補(bǔ)充電路67的輸入上的。
圖14A至14C,加法器圖14A至14C示出了一個加法器的一個實(shí)施例,例如圖6中電路28至30中的一個。加法器有兩個變元a與b。變元a提供在總線V1i上而變元b在總線V2i上上。這些變元是編碼為一個浮點(diǎn)值或者一個整數(shù)的。來自圖6中的電路27與總線B1sb1與B1sb2的輸出C5的信號C51,對整數(shù)為“0”而對浮點(diǎn)值為“1”,指示這一事實(shí),C5對于整數(shù)為全“0”而對于浮點(diǎn)值則有一比特為“1”。如圖14A所示,該加法器是一個以8個級聯(lián)耦合部件G1、G1、…、Gi、…、G7構(gòu)成的二進(jìn)制加法器,即一個部件用于一個精度半字節(jié)。
從上面對加法運(yùn)算的說明可到,在a與b是浮點(diǎn)值的情況中在它們相加以前將變元a與b對準(zhǔn)是重要的。這意味著B1sb1與Blsb必須相等。B1sb1是作為控制加法器的信號B1sb饋入的。當(dāng)B1sb被連接到加法器、加1器、減1器等時,它是在向數(shù)值部分的方向上位移一步的,因?yàn)檫@樣它才能影響在最高位數(shù)值部分半字節(jié)上的進(jìn)位傳播(阻塞它)。所以,在這些情況中,信號B1sb中的最低位比特是不用的。
變元a與b,各包含32比特,是分成8個半字節(jié)的,每佧一個半字節(jié)包含4比特。a與b各4比特半字節(jié)是作為每一5中件Gi的一個獨(dú)立輸入提供的,i為0與7之間的一個整數(shù)。總線B-1sb的條條線是連接到除Go以外的部件Gi的一個獨(dú)立單位的。連接到部件C7的一條線Cm指示加法器將進(jìn)行一次加法還是減法。對于加法Cm為“0”而對于減法則為“1”。各部件提供一個饋送給下一個部件的進(jìn)位信號Cou+i,并接受來自上一個部件的進(jìn)位信號Cini,這將在下面更詳細(xì)地說明。
變元a與b的加法是獨(dú)立地在各部件G0至G7中進(jìn)行的,必要時以G7至G0的次序向下一個部件提供進(jìn)位信號。對于一個浮點(diǎn)值設(shè)置了一條數(shù)值部分向外進(jìn)位總線Cm,必要時向其提供一個數(shù)值部分進(jìn)位。這一總線連同具有符號比特的線Cs及具有冪指數(shù)符號比特的Cse構(gòu)成到圖6中的電路27的輸入grs2或grs3)。電路27將這一信息在總線ASTATE上提供給控制單元CU。
信號C51指示變元a與b是整數(shù)還是浮點(diǎn)值,信號C52指示變元a的代碼是正常的還是改變了的,而信號C53指示變元b的代碼是正常的還是改變了的。這些信號是饋送到部件GO的,它對應(yīng)于包含最高位比特片(符號片0)的最高位精度半字節(jié)。這是特別依賴于運(yùn)算數(shù)a與b的格式的(它們是否都是整數(shù)或浮點(diǎn)值)。
設(shè)置了一個三態(tài)門70將總線Cm設(shè)置成一個規(guī)定的值,例如當(dāng)運(yùn)算數(shù)為整數(shù)時設(shè)置成全“0”,這是因?yàn)檫@時在總線上不會激活數(shù)值部分的進(jìn)位。三態(tài)驅(qū)動器70是由信號C53控制的。
圖14B中示出了部件G1的一種配置的一個實(shí)施例。它是被“切”成四個加法器片AS1至AS4的。它還包括一個該部件的進(jìn)位發(fā)生器,它測定對下一部件的進(jìn)位Couti。考慮中的部件的Gi的各比特半字節(jié)ai與bi分別將比特aik與bik中的單獨(dú)的一個連接到各獨(dú)立加法器片ASK上,k是1與4之間的一個整數(shù)。每一個加法器片提供和輸出的一個比特sumk。
如將在說明圖14C時更詳細(xì)地說明的,進(jìn)位發(fā)生器被提供下述比特一個發(fā)生比特Gen,指示該部件的和是大于或等于16的;一個傳播比特Pr,指示該部部件的和是大于或等于15的;來自上一個部件的進(jìn)位比特Cini;來自加法器片AS4的一個進(jìn)位來的比特Cini4;以及比特Blsbi+1°比特Blsbi+1°是通過一個反相器75饋送到一個三態(tài)門的一個反相輸入上,并且直接饋到三態(tài)門76的控制輸入的。比特Cin-i4是連接到三態(tài)門76的一個第二反相輸入上的。這樣,當(dāng)比特B1sb-i+1這“0”時,三態(tài)門76的被控制來傳輸比特B1sb-i+1。然而,當(dāng)比特B1sb-i+1為“1”時,三態(tài)門76則衩控制來傳輸比特Cin-i4,如果它是“1”時指示數(shù)值部分有一個向外進(jìn)位。
只需要為變元的冪指數(shù)部分后面的精度半字節(jié)提供一個數(shù)值部分向外進(jìn)位,也只有這一個半字節(jié)具有比特B1sb-i+1為“1”。
部件與部件之間的進(jìn)位傳播對于冪指數(shù)部分后面的精度半字節(jié)是被阻塞的。因此,比特B1sb-i+1是連接到一個與門77的一個反相輸入上的,該與門77在其另一反相輸入上有反相的信號Gen,從而,只當(dāng)為B1sb-i+1“0”時,才傳輸信號Gen。比特B1sb-i+1還連接到一個與門78的一個反相輸入,該與門78在其一個第二么相輸入上具有反相的信號Pr及在其一個第三反相囹入上有比特Cin i,從而,只在B1sb-i+1為“0”及Cin i為“0”時才傳輸信號Pr。一個或門77將其輸入連接到與門77與78的輸出上,并當(dāng)兩個與門中的一個具有輸出“1”時提供一個輸出“1”。
圖14C示出了各加法器片ASK的一個實(shí)施例。輸入ak與bk饋送到一個異或門80的各輸入上,如果這兩個輸入互相不同則提供一個“1”,否則一個“0”。異或門80的輸出饋送到一個第二異或門81的一個第一輸入而比特Cin ik到其另一個輸入,只當(dāng)其輸入不同時,異或門81的輸出才是一個“1”,并提供處理來自上一個加法器片的進(jìn)位比特的輸出sumk,或者當(dāng)該加法器片是該部件中的第一個時,處理來自上一部件的進(jìn)位比特。
比特ak與bk被饋送到具有一個反相輸入的一個或門82的輸入上,其辦出本身又連接到三個與門83,84,85中每一個的一個第一反相輸入上。反向的比特Cin ik被饋送到與門83的一個第二反相輸入上,與門83當(dāng)ak與bk中任何一個為“1”時傳輸比特Cin ik來自上一個加法器片的反相比特Pin ik被饋送到與門84的一個第二反相輸入上,與門84當(dāng)比特ak與bk中任何一個為“1”是提供與Pin ik一樣的Poof ik。反相的比特Cin ik被饋送到與門85的一個第二反相輸入上,該與門85當(dāng)比特ak與bk中任何一個為“1”時傳輸比特Cin ik。對于在各精度部件中的各個第一加法器片AS1,比特Pin ik與比特Cin ik分別為“1”與“0”,如圖14B中所見。
為了實(shí)現(xiàn)行波傳送進(jìn)位,比特Pr與Gen是需要的,即使加法器更快。由于在進(jìn)位鏈的輸入上含有離散值這一事實(shí),所有的精度半字節(jié)是并行計(jì)算的,即對于所有精度半字節(jié)是同時的。來自加法的最后進(jìn)位Cs與沒有行濾傳送進(jìn)位的32個門延遲相比,它只有4+8個門的延遲。
比特aik與bik還饋送到具有一個反相輸出的與門88的輸入上,該與門88的反相輸出本身又連接到兩個或門86,87的各個的一個第一輸入上。與門83的輸出連接提供輸出Cout ik的或門86的一個第二輸入。與門85的輸出連接到提供輸出Cout ik的或門87的一個第二輸入。
為了提供非??斓倪M(jìn)位鏈,如果一個比特片反相行波傳送發(fā)生的極性并且傳播比特是反相的,有可能在它們中只有一個延遲。在這一情況中,每隔一個精度半字節(jié)有反相的輸入(未示出)。
從圖14A的左方可見,最高位精度部件GO與其他部件是稍有不同的。它不使用一個輸入變元B1sb-0。在該半字節(jié)中它被設(shè)定為“0”。反之,它有數(shù)值部分進(jìn)位輸入Cin m。它是用于生成給符號比特的進(jìn)位輸入的。輸出有一個指示從冪指數(shù)的向外進(jìn)位的附加的比特。除了B1sb-0是設(shè)定為“0”,即偽,以外,正常的向外進(jìn)位是同正常的半字節(jié)中一樣產(chǎn)生的。
一比特信號C51、C52、C53可能有下述比特模式(C51、C52、C53)=(偽、偽、偽)表示整數(shù);(C51、C52、C53)=(偽、偽、真)表示a與b兩者都具有規(guī)范化代碼;(C51、C52、C53)=(真、偽、偽)表示a為改變后的,b為規(guī)范化的代碼;(C51、C52、C53)=(真、真、真)表示a為規(guī)范化,b為改變后的代碼。
圖15
加1器的配置十分相似于加法器的配置。圖15示出了一個加1器中的一個精度部件的實(shí)施例。加1器只有一個輸入a′(未示出)。加1比特片AS1′至AS4′與加法器比特片的差別在于它們沒有從一個傳送到另一個的發(fā)生器比特Gen。來自片AS4′的反相輸出Pr與來自上一個部件的反相位Cin被饋送到帶有兩個反相輸入的一個與門90的兩個反相輸入上。給線上的第一倍件G7的Cin中的進(jìn)位是一個“1”指示要進(jìn)行一次加1。與門90的輸出及經(jīng)特Blsbi+i被饋送給高下一部件提供輸出進(jìn)位Cout的一個或門92的各輸入上。加1器的進(jìn)位輸出是以與加法器相同的方式提供的。行濾傳送進(jìn)位鏈Cin/Cout指示和是否大于或等于2。行波傳送進(jìn)位鏈Pe′指示和是否大于或等于1。
和加法器一樣,加1器有一條受信號B1sbi+i控制的數(shù)值部分向外進(jìn)位總線Cm??刂票忍谻1g或C2g指示表示是一個整數(shù)還是一個浮點(diǎn)值。控制比特C1g或C2g控制一個三態(tài)門,該三態(tài)門當(dāng)數(shù)值部分向外進(jìn)位總線不在使用時將其設(shè)置為一個規(guī)定的值(未示出)。
一個減1器具有與加1器相同的配置,但減1器有一個到它的減1器片的反相輸入a′in,這些減1器片相當(dāng)于加1器片AS1′至AS4′。
運(yùn)算數(shù)單元中的選擇器一般由一行傳輸門構(gòu)成。選擇器總有一個定義的輸出。它具有一張控制字與值輸入的表作為變元。除了一個其余的全部斷開。每個個輸入的控制為一個補(bǔ)碼信號。整個選擇器是由這種元素的一張表控制的。在不同狀態(tài)中它們被控制從一個予定的端口中取得輸入。圖16中示出了一個基本選擇器比特片的一個實(shí)施例。選擇器的各輸入端口Sina、Sinb、sinc與Sind的比特中一個分別連接到一個可控開關(guān)Sa、Sb、Sc、與Sd。一對控制線Sca、Scb、scc與Scd分別提供各開關(guān)。向它所隸屬于的開關(guān)提供一次輸入傳輸?shù)目刂茖ι暇哂行畔ⅰ?,0”,其余的具有信息“1,0”。
需要提出的是,ALU中的大多數(shù)電路是根據(jù)與加法器相關(guān)的上述原理構(gòu)造的,因?yàn)?,我們深信本領(lǐng)域內(nèi)的技術(shù)人員能夠應(yīng)用這些原埋容易地構(gòu)造其余的電路。因此,詳細(xì)地說明每一個單一的電路被認(rèn)為是沒有必要的。
圖6中所示的ALU驅(qū)動電路27是具有相當(dāng)復(fù)雜的種配置的一個布爾門陣列。無法展示它的一個實(shí)施,因?yàn)檫@是向一臺計(jì)算機(jī)提供了關(guān)于與信息信號相關(guān)的控制信號的配置的所有算法以后由計(jì)算機(jī)計(jì)算出其配置的。布爾門陣列是作為芯片掩膜圖形直接由計(jì)算機(jī)提供的,該計(jì)算機(jī)適知于對根據(jù)本發(fā)明的整個ALU進(jìn)行芯片掩膜圖形的配置。因此,這一電路是不可能詳細(xì)展示的。在整數(shù)乘法與浮點(diǎn)值加法的冪指數(shù)對準(zhǔn)的情況中,對ALU驅(qū)動電路27的輸入及其輸出之間的系統(tǒng)的一張表在附錄中給出。
附錄1示出在浮點(diǎn)值加法中用于對準(zhǔn)指數(shù)的輸入與輸出之間的系統(tǒng)。
附錄是分成不同的“控制情形”的。每一種控制情形對應(yīng)于一個輸出,即一條微指令。
在標(biāo)題“微指令線”下列出的ALU驅(qū)動電路27的輸出是在總線C1-C5上的信號電平??偩€C1、C2與C3被分成連接到ALU各點(diǎn)上的更小的總線C11、C12、C13等。不同的輸入集合可能導(dǎo)致相同的輸出。導(dǎo)致箱同輸出的可能輸入信號列出為條件1、條件2等等。因此,在標(biāo)題“控制情形1”下作為“狀態(tài)、感測線-條件4”列出的輸入導(dǎo)致下面在標(biāo)題“微指令線”下的輸出。作為條件1、2與3列出在上面的輸入導(dǎo)致與條件4相同的輸出。
每一個條件是以某些狀態(tài)線上的一個確定的信號電平(0/1)的組合定義的。而其它狀態(tài)則可具有不確定的值(χ=無關(guān))。
除了co-limit1與co-limit2以外,列出在附錄中的所有輸入信號也都標(biāo)示在圖6中。在圖6中,信號co-limit1是分成其兩個分量Bco-max1與Bco-min1的信號co-limit2也是分成它兩量Bco-max2與Bco-min2的。
輸出ASTATE只是所有對電路27的輸入的一個復(fù)制。輸出ASTATE是連接到控制CV的。
附錄2示出在執(zhí)行整數(shù)乘法時ALU驅(qū)動電路27的輸入與輸出之間的關(guān)系。
雖然本發(fā)明已經(jīng)參照特定的實(shí)施例進(jìn)行了說明,但對本領(lǐng)域的技術(shù)人員而言,應(yīng)當(dāng)理解,在不脫離本發(fā)明的真實(shí)精神與范圍的情況下可以作出各種改變并且可以使用等價部件來代替其部件。些外,可以不脫離本發(fā)明的主要技術(shù)而作出修改1。
一個可作為指令運(yùn)算數(shù)/mu′-puotient(積,商)或多項(xiàng)式由目標(biāo)寄存(未示出)或某些ALU內(nèi)部單無提供。有關(guān)總線上的其余比特串的表示類型的信息可由指令總線上的信息給出或者在代碼段中給出。
權(quán)利要求
1.一種對數(shù)值元素執(zhí)行算術(shù)的、邏輯的與相關(guān)運(yùn)算的方法,其特征在于包括下述步驟a)提供一張包含處理的所述數(shù)值元素及指令信息的輸入表,b)使用所述指令處處,對所述輸入表上的所述數(shù)值元素直接控制與執(zhí)行一個運(yùn)算,c)每一數(shù)值元素提供一個具有一個預(yù)定的比特(bit)長度的字,字的最大數(shù)目等于所述輸入表中的元素的最大可提供的數(shù)目,d)以改寫所述輸入表中的元素中的元素來執(zhí)行一個計(jì)算,e)作為一張輸出表提交結(jié)果。
2.根據(jù)權(quán)利要求1的一種方法,其特征在于所述輸入表是分成特定的表元素的,所述表元素中至少一個是一個指令字的一個表示,并且其余的所述表元素是數(shù)值字表示。
3.根據(jù)權(quán)利要求1或2的一種方法,其特征在于全部表元素是數(shù)值字表示。
4.根據(jù)前面的權(quán)利要求中任何一條的一種方法,其特征在于所述表包含一個函數(shù)應(yīng)用,其中,其元素之一是一個指令碼而其余的為所述指令的變元,并且一條指令是以改寫與重新循環(huán)來自所述結(jié)果輸入表的所述指令碼到所述輸入表直到達(dá)到一個最終結(jié)果來執(zhí)行的。
5.根據(jù)權(quán)利要求4的一種方法,其特征在于在每次改寫時,如果適合于該實(shí)際計(jì)算,所述是改寫為包含一個修改后的指令碼字并在后面跟隨著值字的。
6.根據(jù)權(quán)利要求4的一種方法,其特征在于在直接到結(jié)果的一個改寫時,其值是放置在沒有任何指令碼的輸出表上的。
7.根據(jù)前面的權(quán)利要求中任何一條的一種方法,其特征在于所述輸入表與輸出表中的元素的最大數(shù)目是4。
8.根據(jù)權(quán)利要求2至7中任何一條的一種方法,其特征在于在實(shí)際處理以前所述數(shù)值字是以一種編碼格式提供的。
9.根據(jù)權(quán)利要求2至8中任何一條的一種方法,其特征在于表示數(shù)值字的所述字是以達(dá)到所述數(shù)值的一種稠密表示的一種編碼提供的,即一個值的每一編碼的表示只對應(yīng)于一個數(shù)值。
10.根據(jù)權(quán)利要求2至9中任何一條的一種方法,其特征在于為表示一個整數(shù)值的一個二進(jìn)制字提供一種第一編碼。
11.根據(jù)權(quán)利要求2至10中任何一條的一種方法,其特征在于為表示一個浮點(diǎn)值的一個二進(jìn)制字提供一種第二編碼。
12.根據(jù)權(quán)利要求2至11中任何一條的一種方法,其特征在于為表示一個整數(shù)值的一個二進(jìn)制字提供一種第一編碼并為表示一個浮點(diǎn)值的一個二進(jìn)制字提供一種第二編碼,并且所述編碼是這樣的使得編碼以后浮點(diǎn)值表示的數(shù)值與整數(shù)值表示的數(shù)值以相同的次序增加。
13.根據(jù)權(quán)利要求2至12中任何一條的一種方法,其特征在于一個二進(jìn)制編碼的浮點(diǎn)值表示包含一個代碼段、一個冪指數(shù)段及一個數(shù)值部分段,所述代碼段具有一個所述冪指數(shù)段與所述數(shù)值部分段之間的分界位置的指示,使得冪批數(shù)與數(shù)值部分段具有可變長度。
14.根據(jù)權(quán)利要求9至13中任何一條的一種方法,其特征在于所述稠密表示是以在用于該浮點(diǎn)值表示的數(shù)值部分的該字的一個段的前面包含一個虛擬的“1”,即并不在該表示中物理地提供的一個“1”,來提供的。
15.根據(jù)權(quán)利要求9至14中任何一條的一種方法,其特征在于所述值是以下述方式編碼的a)該值的表示包含一個比特串,其中每一個比特是“0”或“1”中之一并且是從數(shù)值零開始的二進(jìn)制編碼的,b)在所述表示中的所有可能值只有一個值對應(yīng)于一個浮點(diǎn)值,c)具有較另一浮點(diǎn)值為高的一個表示的一個浮點(diǎn)值具有較所述另一值為高的一個值,d)一個浮點(diǎn)值的所述表示包含一個整個所述浮點(diǎn)值的符號比特,一個所述浮點(diǎn)值的冪指數(shù)的符號比特,一個說明所述冪指數(shù)的長度的代碼,所述冪指數(shù),該冪指數(shù)具有一個可變的長度,以及一個具有可變長度的數(shù)值部分,所述表示的組合長度是一個常數(shù)。
16.根據(jù)權(quán)利要求15的一種方法,其特征在于具有一個“1”作為其最高位比特隨后為“0”的所述表示表示一個特殊的浮點(diǎn)值“0”。
17.根據(jù)權(quán)利要求16的一種方法,其特征在于不表示該特殊浮點(diǎn)值“0”的所有表示具有一個對應(yīng)于2e+biasmantissa(數(shù)值部分)的值,其中,e對于高于或等于1.0的正浮點(diǎn)值,及對于低于-1.0的負(fù)浮點(diǎn)值的所述表示中為所述冪指數(shù)的值,并且其中用于在1.0與-1.0之間的浮點(diǎn)值的冪指數(shù)是反相的,以及其中,對于不表示該特殊浮點(diǎn)值“0”的表示,對于具有負(fù)符號的表示,即表示一個負(fù)數(shù),所述數(shù)值部分在-1與-2之間變化,以及對于個有正符號的表示,即表示一個正數(shù),在+1與+2之間變化。
18.根據(jù)以上權(quán)利要求中任何一條的一種方法,其特征在于一條指令是以對在最終計(jì)算值中作為中間階段使用的所述值的若干可能組合的一種并行計(jì)算來執(zhí)行的,如有必要,選擇所述計(jì)算出的中間階段進(jìn)行進(jìn)一步處理以提供一個最終結(jié)果。
19.根據(jù)權(quán)利要求9至18中任何一條的一種方法,其特征在于在對一個第一浮點(diǎn)值A(chǔ)與一個第二浮點(diǎn)值B作加法/減法時提供下述運(yùn)算如果所述值A(chǔ)的冪指數(shù)比所述值B的冪指數(shù)小,則將所述值A(chǔ)對準(zhǔn)所述值B,如果所述值B的冪指數(shù)比所述值A(chǔ)的冪指數(shù)小,則將所述值B對準(zhǔn)所述值A(chǔ),將互相對準(zhǔn)的所述值進(jìn)行加/減,規(guī)范化所述加法/減法的結(jié)果。
20.根據(jù)權(quán)利要求19的一種方法,其特征在于在加法/減法上的所述運(yùn)算是在各加法/減法運(yùn)算階段中并行計(jì)算的,并且該運(yùn)算是從適用于實(shí)際加法/減法運(yùn)算階段的所述并行計(jì)算運(yùn)算中選擇的。
21.根據(jù)權(quán)利要求15至20中任何一條的一種方法,其特征在于為一個第一浮點(diǎn)值A(chǔ)瑟一個第二浮點(diǎn)值B的加法/減法提供了下述運(yùn)算如果所述值A(chǔ)的冪指數(shù)較所述值B的冪指數(shù)小,將所述值A(chǔ)對準(zhǔn)所述值B并增/減其數(shù)值部分的一個精度,如果所述值B的冪指數(shù)較所述值A(chǔ)的冪指數(shù)小,則將所述值B對準(zhǔn)所述值A(chǔ)并增/減其數(shù)值部分的一個精度,加/減互相對準(zhǔn)的所述值,規(guī)范化所述加法/減法的結(jié)果。
22.根據(jù)權(quán)利要求21的一種方法,其特征在于在加/減時所述運(yùn)算是在各加/減運(yùn)算階段并行計(jì)算的,并且該運(yùn)算是從適合于實(shí)際加/減運(yùn)算階段的所述并行計(jì)算的運(yùn)算中選擇的。
23.根據(jù)權(quán)利要求9至22保任何一條的一種方法,其特征在于兩個浮點(diǎn)值B與C的乘法是以將乘法改寫為0.0+BC=V來進(jìn)行的,其中V是一個常數(shù)值,它是在具有中間值A(chǔ)+B1C1=V的若干階段中被改寫的,其中A是上一個值V,以及所述值G1的冪指數(shù)是用加法/減法進(jìn)行調(diào)整使得所述值B1的冪指數(shù)最終變成“0”,最終值中的冪指數(shù)將是值C1的最終冪指數(shù)。
24.一種對數(shù)值元素執(zhí)行算術(shù)的、邏輯的與有關(guān)運(yùn)算的數(shù)值算術(shù)單元,包括a)包含一組總線的一個輸入,各總線工作于接受一張表中的一個表元素,所述表包含關(guān)于所述表中的字的指令信息,b)連接所述總線組的一個處理設(shè)備以根據(jù)所述指令改寫所述字使用所述指令信息在所述表中的所述字上執(zhí)行一個運(yùn)算,以及c)在一個包括與所述輸入總線組相同數(shù)目與配置的一組總線珠一個輸出上提交改寫的結(jié)果。
25.根據(jù)權(quán)利要求24的一種數(shù)值算術(shù)單元,其特征在于所述表中至少一個表元素是保留來包含一個指令信息的一個表示并提供在所述輸入總線組的特定的一條上,以及要計(jì)算的數(shù)值表示是在所述輸入總線組的其它條上提供的,并且所述處理設(shè)備是適合于以改寫所述輸入表中的數(shù)值薄淶執(zhí)行一個計(jì)算的。
26.根據(jù)權(quán)利要求24或25的一種數(shù)值算術(shù)單元,其特征在于設(shè)置了若干電路(21、22、221、23、24、25、28、29、30、35、36、37),各適合于對所述輸入總線上的所述數(shù)值表示執(zhí)行一個特定的運(yùn)算,來提交所述并行運(yùn)算的它們的結(jié)果,以及提供以所述指令信息的控制驅(qū)動裝置(27)從所有執(zhí)行后的結(jié)果中選擇為執(zhí)行要執(zhí)行的實(shí)際指令所需要的數(shù)量的執(zhí)行結(jié)果。
27.根據(jù)權(quán)利要求26的一種數(shù)值算術(shù)單元,其特征在于所述表包含一個函數(shù)應(yīng)用,其中,它的元素之一是一個指令碼而其余的為所述指令的變元,所述處理設(shè)備以改寫并將所述指令碼從所述輸出到所述輸入重復(fù)循環(huán)下到達(dá)到最終結(jié)果來執(zhí)行一條指令,以及在每次改寫時,如果適用于實(shí)際計(jì)算,所述處理設(shè)備適用于改寫所述表使之包含一個經(jīng)修改的指令碼字,如果適當(dāng),后面跟隨有值字。
28.根據(jù)權(quán)利要求26或27的一種數(shù)值算術(shù)單元,其特征在于數(shù)值字的所述表示是在實(shí)際處理前以一種編碼格式提供給所述單元的,并且所述控制驅(qū)動裝置(27)是被提供以有關(guān)所述表示的實(shí)際編碼類型的信息的。
29.根據(jù)權(quán)利要求28的一種數(shù)值算術(shù)單元,其特征在于所述處理設(shè)備適用于使用將所述數(shù)值編碼為一種稠密表示的編碼,即一個值的每一個編碼表示只對應(yīng)于一個解釋值。
30.根據(jù)權(quán)利要求28或29的一種數(shù)值算術(shù)單元,其特征在于所述處理設(shè)備適合于使用表示一個整數(shù)表示和一個二進(jìn)制字的一種第一類型編碼。
31.根據(jù)權(quán)利要求29至30中任何一條的一種數(shù)值算術(shù)單元,其特征在于所述處理設(shè)備適合于使用表示一個浮點(diǎn)表示的一個二進(jìn)制字的一種第二類型的編碼。
32.根據(jù)權(quán)利要求29至31中任何一條的一種數(shù)值算術(shù)單元,其特征在于所述處理設(shè)備適用于使用表示一個整數(shù)表示的一個二進(jìn)制字的一種第一編碼以及表示一個浮點(diǎn)表示的一個二進(jìn)制字的一種第二編碼,以及所述編碼是這樣的使得編碼以后,浮點(diǎn)表示是與整數(shù)表示以相同的次序提供的。
33.根據(jù)權(quán)利要求31或32的一種數(shù)值算術(shù)單元,其特征在于一個二進(jìn)制編碼的浮點(diǎn)值表示包含一個符號、冪指數(shù)符號及代碼段、一個冪指數(shù)段及一個數(shù)值部分段,所述冪指數(shù)符號及代碼段具有所述冪指數(shù)段與所述數(shù)值部分段之間的分界位置的一個指示,使得冪指數(shù)及數(shù)值部分段具有可變長度。
34.根據(jù)權(quán)利要求32或33的一種數(shù)值算術(shù)單元,其特征在于表示數(shù)值字的所述字是以將所述數(shù)值提供在一種稠密表示中的一種編碼提供的,即一個值的每一個編碼表示只對應(yīng)于一個解釋值。
35.根據(jù)權(quán)利要求34的一種數(shù)值算術(shù)單元,其特征在于所述稠密表示是以在浮點(diǎn)值的數(shù)值部分的字的一個段的前面包含一個虛擬的“1”,即并不在表示中物理地提供的一個“1”,提供的。
36.根據(jù)權(quán)利要求33或34的一種數(shù)值算術(shù)單元,其特征在于數(shù)值的所述表示是分成比特半字節(jié)的,稱為精度半字節(jié),各半字節(jié)具有予定數(shù)目的比特,當(dāng)所述表示表示一個浮點(diǎn)值時,設(shè)置在兩個精度半字節(jié)之間的所述表示的一個冪指數(shù)部分及一個數(shù)值部分之間的一個劃分。
37.根據(jù)權(quán)利要求26至36中任何一條的一種數(shù)值算術(shù)單元,其特征在于設(shè)置了至少一個具有輸入的運(yùn)算數(shù)單元(r1、r2、r3),向運(yùn)算數(shù)單元的輸入提供所述數(shù)值字中的至少兩個以及從所述運(yùn)算執(zhí)行電路中具有適于進(jìn)一步執(zhí)珩到該單元的一個結(jié)果輸出的這些電路(35,36,37)中得出的數(shù)值,所述運(yùn)算數(shù)單元由所述控制驅(qū)動裝置控制進(jìn)一步處理在所述運(yùn)算數(shù)單元輸入上的數(shù)據(jù)來改寫所述數(shù)值字。
38.根據(jù)權(quán)利要求26到36中任何一條的一種數(shù)值算術(shù)單元其特征在于所述運(yùn)算執(zhí)行電路的輸出是饋送到所述控制驅(qū)動裝置(27)的輸入上供所術(shù)控制驅(qū)動裝置將這些輸出與所述指令信息一起處理以構(gòu)成用于控制至少一個運(yùn)算數(shù)單元的數(shù)字控制信號。
39.根據(jù)權(quán)利要求37或38的一種數(shù)值算術(shù)單元,其特征在于所述控制驅(qū)動裝置(27)在所述單元內(nèi)部從所述輸入到所述輸出的一個數(shù)據(jù)傳送中提供至少一個第一運(yùn)算相位時段與一個輸出相位時段,以及將來自在所述第一運(yùn)算相位時段中胺控制的所述運(yùn)算數(shù)電路中的元件的可能出現(xiàn)的進(jìn)位信號饋到所述控制驅(qū)動裝置(27),其控制輸出在所述輸出相位時段之前被所述可能出現(xiàn)的進(jìn)位信號所改變,在所述輸出相位進(jìn)段中所述運(yùn)算數(shù)電路中的內(nèi)部單元是被控制的,所述運(yùn)算數(shù)電路是能夠?qū)碜运鲈妮敵鲞M(jìn)行訪問的。
40.根據(jù)權(quán)利要求26至39中任何一條的一種數(shù)值算術(shù)單元,其特征在于所述控制驅(qū)動裝置(27)是一個布泉門陣列。
41.根據(jù)權(quán)利要求26至36中任何一條的一種數(shù)值算術(shù)單元,其特征在于所述輸入表與輸同表的最大長度是在每條總線上提供一個的四個元素。
42.根據(jù)權(quán)利要求26至41中任何一條的一種數(shù)值算術(shù)單元,其特征在于數(shù)值的所述表示是分成稱為精度半字節(jié)的半字節(jié)的,各有予定數(shù)目的比特,當(dāng)所述表示表示一個浮點(diǎn)值時設(shè)置在兩個精度半字節(jié)之間的所述表示的一個冪指數(shù)部分與一個數(shù)值部分之間的一個劃分;以及至少一個精度譯碼器,該精度譯碼器適于在其輸入上具有所述表示中提供所述冪指數(shù)/數(shù)值部分劃分信息的至少一部分,并向?qū)Ω↑c(diǎn)值進(jìn)行運(yùn)算的元件提供起因于所述劃分的控制輸出。
43.根據(jù)權(quán)利要求42的一種數(shù)值算術(shù)單元,其特征在于精度譯碼器的數(shù)目為兩個。
44.根據(jù)權(quán)利要求42或43的一種數(shù)值算術(shù)單元,其特征在于對于具有32比特的一個表示所述精度半字節(jié)的數(shù)目是8個。
45.根據(jù)權(quán)利要求33或44中任何一條的一種數(shù)值算術(shù)單元,其特征在于所述浮點(diǎn)值的所述表示的信息是在具有可變碼長的一個代碼段中給出的。
全文摘要
本發(fā)明涉及執(zhí)行數(shù)值元素的算術(shù)、邏輯及相關(guān)運(yùn)算的一種方法及設(shè)備。a)提供包括要處理的數(shù)值以及指令信息的一張輸入表。b)使用該指令信息直接控制與執(zhí)行輸入表上的數(shù)值元素的一個運(yùn)算。c)各數(shù)值元素提供具有預(yù)定比特長度的一個字。字的最大的數(shù)量等于輸入表中所能提供的元素的最大數(shù)量。d)以改寫輸入表中的元素來執(zhí)行一次計(jì)算。e)作為一張輸出表提交結(jié)果。
文檔編號G06F12/00GK1059413SQ9110527
公開日1992年3月11日 申請日期1991年8月2日 優(yōu)先權(quán)日1990年8月2日
發(fā)明者卡爾斯特·拉斯·岡納 申請人:卡爾斯特電子公司