午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

算術(shù)單元的制作方法

文檔序號:6554617閱讀:301來源:國知局
專利名稱:算術(shù)單元的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于進(jìn)行諸如定點數(shù)的乘法運算、乘加運算和乘減運算的算術(shù)運算的算術(shù)單元。
背景技術(shù)
在用于音頻數(shù)據(jù)、多媒體數(shù)據(jù)等數(shù)字處理的大規(guī)模集成電路(LSI)中,提供作為片上元件的算術(shù)單元,例如乘法單元,乘加單元等,已經(jīng)變得普通。對于需要高精度運算的處理,這類算術(shù)單元利用二進(jìn)制補碼代表的定點數(shù)進(jìn)行運算。在這種定點數(shù)運算中,當(dāng)乘法結(jié)果溢出時需要進(jìn)行飽和運算。具體地,一個n位定點數(shù)可以在是-2n到+2n-1(二進(jìn)制表示為100...00到011...11)的范圍內(nèi)取值,如果被乘數(shù)和乘數(shù)都是最小值(具有最大絕對值的負(fù)值),乘法結(jié)果就會溢出(也就是,超出能夠正確表示的正值的范圍)。因此,進(jìn)行飽和運算以將乘法結(jié)果校正為最大的可表示的正值。
如圖17所示,例如,能夠完成上面提到的飽和運算的常規(guī)單元包括用于產(chǎn)生被乘數(shù)A和乘數(shù)B的多個部分積的部分積產(chǎn)生器901,用于將產(chǎn)生的部分積加起來的加法器902,用于檢測出現(xiàn)/不出現(xiàn)溢出的溢出檢測單元903和一個可按照出現(xiàn)/不出現(xiàn)溢出選擇性地輸出來自加法器902的加法結(jié)果或者輸出飽和值(最大正值)的選擇器904。因此,如果出現(xiàn)溢出(也就是說,如果被乘數(shù)A和乘數(shù)B都是具有最大絕對值的負(fù)值),則選擇飽和值,由此校正乘法結(jié)果。
然而,在加法器902的輸出與飽和值之間的選擇是由選擇器904決定的情況下,只有當(dāng)乘法結(jié)果從加法器902輸出并在通過選擇器904的延時以后才能夠知道不溢出的乘法結(jié)果。
考慮到這一點,已經(jīng)提出應(yīng)用布斯(Booth)算法的算術(shù)單元,在布斯算法中,如果出現(xiàn)溢出,布斯編碼器輸出預(yù)定值,對其進(jìn)行乘法運算以給出飽和值(參見例如,日本未決公開專利NO1-267728)。
然而,那樣的方法僅能應(yīng)用于包括布斯編碼器的算術(shù)單元。此外,即使帶有這種布斯編碼器,實際中提高運算速度也并不總是那么容易。即,布斯編碼器是以出現(xiàn)/不出現(xiàn)溢出為基礎(chǔ)控制的,溢出檢測運算所需的時間量被加到總的運算時間中。因此,即使沒有由于選擇器的延時,總運算時間也增加了由于溢出檢測運算所需的時間量,由此運算速度未必總是能夠提高。

發(fā)明內(nèi)容
因此,本發(fā)明的目的是提高算術(shù)運算的速度,該算術(shù)運算包括乘法運算同時正確地校正乘法結(jié)果的溢出。
為了達(dá)到前面提出的目標(biāo),本發(fā)明的算術(shù)單元是用于進(jìn)行包括被乘數(shù)A和乘數(shù)B的乘法運算的算術(shù)運算的算術(shù)單元,A和B均為表達(dá)為二進(jìn)制補碼的定點數(shù),該算術(shù)單元包括溢出檢測單元,用于檢測被乘數(shù)A和乘數(shù)B的乘積出現(xiàn)/不出現(xiàn)溢出;中間乘積產(chǎn)生器,通過將被乘數(shù)A和乘數(shù)B的多個部分積與預(yù)定的第一校正值(例如,-1)在進(jìn)位保留加法中相加在一起以得到中間和與中間進(jìn)位;以及進(jìn)位傳遞加法器,通過將中間和與中間進(jìn)位在進(jìn)位傳遞加法中相加在一起以得到運算結(jié)果,其中,根據(jù)溢出檢測單元的檢測結(jié)果的預(yù)定的第二校正值(例如,出現(xiàn)溢出時為0,不出現(xiàn)溢出時為1),或者在中間乘積產(chǎn)生器中加入,或者在進(jìn)位傳遞加法器中加入。
當(dāng)被乘數(shù)A和乘數(shù)B均為具有最大絕對值的負(fù)值時,溢出檢測單元檢測到溢出。
中間乘積產(chǎn)生器被配置為使多個部分積與第一校正值以并行的樹結(jié)構(gòu)在進(jìn)位保留加法中相加在一起。
由此,例如,不管溢出出現(xiàn)或者不出現(xiàn),都可以將所有位都為1的第一校正值作為校正溢出的校正值在進(jìn)位保留加法中加入,由此有可能避免由溢出檢測定時的限制引起的延時以及由于進(jìn)位傳遞引起的延時。而且,例如可以根據(jù)溢出的出現(xiàn)或者不出現(xiàn),加入或者為1或者為0的1位的第二校正值,這樣就有可能以很少的延時或者無延時地來抵償或者不抵償?shù)谝恍U档男U?。此外,第二校正值的加入可以在算術(shù)運算的后級完成,由此增加了溢出檢測定時的裕度。因此,有可能容易地提高包括乘法的算術(shù)運算的運算速度,同時正確地校正溢出。
上面描述的配置可用于算術(shù)單元以在除得到乘積之外,還得到與加數(shù)X的乘加結(jié)果。具體地,部分積,第一校正值與加數(shù)可以在進(jìn)位保留加法中加在一起,或者中間和,中間進(jìn)位與加數(shù)可以在進(jìn)位保留加法中加在一起,其中中間和與中間進(jìn)位是將部分積與第一校正值加在一起得到的。在這種情況下,可以對中間和與中間進(jìn)位進(jìn)行移位(位擴展)使得運算結(jié)果的位數(shù)等于被乘數(shù)的位數(shù)與乘數(shù)的位數(shù)的和,其中例如最低有效位可以用1填充,由此正確地進(jìn)行等效于加/減預(yù)定的校正值的運算。
而且,可以提供用于根據(jù)運算選擇信號等可選擇地得到與加數(shù)X的乘加結(jié)果或者乘減結(jié)果的算術(shù)單元。具體地,可以將部分積與第一校正值在進(jìn)位保留加法中相加得到的中間和與中間進(jìn)位進(jìn)行二進(jìn)制補碼變換或者按位取反,并且與一個預(yù)定校正值相加,然后與加數(shù)相加,由此得到乘減結(jié)果。在這種情況下,按位取反可以根據(jù)運算為乘加運算或者乘減運算進(jìn)行控制,并且第一校正值也可以變換或者可以在第一校正值固定的同時將第三校正值變換,以便得到從加數(shù)減去中間和與中間進(jìn)位得到的值。
并且,前面描述的配置可用于使用布斯算法的算術(shù)單元。具體地,取決于運算是一個乘加運算或者一個乘減運算,乘數(shù)編碼單元可以用來編碼乘數(shù)或編碼被乘以-1的乘數(shù),由此,有可能得到乘加結(jié)果或者乘減結(jié)果,并且,有可能很快得到溢出校正的運算結(jié)果。


圖1為表示根據(jù)實施例1的算術(shù)單元配置的框圖。
圖2表示根據(jù)實施例1出現(xiàn)溢出時的示例性乘法運算。
圖3為表示根據(jù)實施例2的算術(shù)單元的配置的框圖。
圖4表示了根據(jù)實施例2出現(xiàn)溢出時的示例性乘加運算。
圖5為表示根據(jù)實施例3的算術(shù)單元配置的框圖。
圖6表示了根據(jù)實施例3出現(xiàn)溢出時的示例性乘加運算。
圖7表示了根據(jù)實施例3出現(xiàn)溢出時的示例性乘減運算。
圖8為表示根據(jù)實施例4的算術(shù)單元配置的框圖。
圖9表示了根據(jù)實施例4出現(xiàn)溢出時的示例性乘加運算。
圖10表示了根據(jù)實施例4出現(xiàn)溢出時的示例性乘減運算。
圖11為表示根據(jù)實施例5的算術(shù)單元配置的框圖。
圖12表示了根據(jù)實施例5出現(xiàn)溢出時的示例性乘加運算。
圖13表示了根據(jù)實施例5出現(xiàn)溢出時的示例性乘減運算。
圖14為表示根據(jù)實施例6的算術(shù)單元配置的框圖。
圖15表示了根據(jù)實施例6出現(xiàn)溢出時的示例性乘加運算。
圖16表示了根據(jù)實施例6出現(xiàn)溢出時的示例性乘減運算。
圖17為常規(guī)算術(shù)單元配置的框圖。
具體實施例方式
現(xiàn)在將參照

本發(fā)明的優(yōu)選的實施例。需要注意,以下的每個實施例中,任何前述實施例中的相同元件會用相同的參考標(biāo)號表示,并且不會重復(fù)地說明。
實施例1本發(fā)明的實施例1是針對用于得到被乘數(shù)A和乘數(shù)B乘積的算術(shù)單元。參照圖1,這個算術(shù)單元包括中間乘積產(chǎn)生器101,溢出檢測單元102,選擇器103和進(jìn)位傳遞加法器104。
中間乘積產(chǎn)生器101包括用于產(chǎn)生多個部分積的部分積產(chǎn)生器101a,以及用于將多個部分積以及作為第一校正值的-1(所有位均為1的值)作進(jìn)位保留加法的進(jìn)位保留加法器101b。這樣,中間乘積產(chǎn)生器101為A×B-1輸出中間和與中間進(jìn)位。應(yīng)當(dāng)注意的是,中間乘積產(chǎn)生器101可以是應(yīng)用布斯算法的單元,或者是將乘數(shù)每一位的部分積加在一起的單元。雖然本發(fā)明不局限于此,但如果通過進(jìn)位保留加法器樹將多個部分積和第一校正值并行地相加,則在許多情況下,通過避免增加用于加上第一校正值的邏輯門的數(shù)量有可能更加容易地提高運算速度。
溢出檢測單元102檢測溢出,由此如果被乘數(shù)A和乘數(shù)B都是具有最大絕對值的負(fù)值,則溢出檢測單元斷定溢出檢測信號OD。
選擇器103有選擇地輸出,作為第二校正值,當(dāng)斷定溢出檢測信號OD時,選擇器輸出0,當(dāng)沒有斷定溢出檢測信號OD時,選擇器輸出1,并且第二校正值作為進(jìn)位被輸入到進(jìn)位傳遞加法器104的最低有效位(LSB)。
進(jìn)位傳遞加法器104在進(jìn)位傳遞加法中將中間和,中間進(jìn)位以及第二校正值相加以輸出乘法結(jié)果。
在具有這種結(jié)構(gòu)的算術(shù)單元中,中間乘積產(chǎn)生器101不管溢出出現(xiàn)還是沒出現(xiàn),都將第一校正值,-1,加到部分積上。當(dāng)不出現(xiàn)溢出時,進(jìn)位傳遞加法器104將1作為第二校正值加入,而當(dāng)出現(xiàn)溢出時,將0作為第二校正值加入。
因此,當(dāng)溢出不出現(xiàn)時,計算A×B-1+1,其中已加上的第一校正值被第二校正值抵償,由此正確地得到A×B的值作為運算結(jié)果。
當(dāng)溢出出現(xiàn)時,得到A×B-1的運算結(jié)果,其中校正了溢出。具體地,進(jìn)行了例如圖2所示的運算。(參照圖2,小數(shù)點指出了最高有效位(MSB),小數(shù)點的左面是定點數(shù)的符號。注意除非另外說明,以下描述用二進(jìn)制表示。)由此,如果被乘數(shù)A和乘數(shù)B都是具有最大絕對值的負(fù)值(1.000000),則最高有效數(shù)字的部分積為1000000,而其他數(shù)字的部分積為0000000。如果簡單地將這些部分積加在一起就會溢出,并且得到的結(jié)果是只有符號位為1的值,當(dāng)這些部分積以及第一校正值,-1(=1.111111111111),通過進(jìn)位保留加法器101b加在一起時,得到中間和0.111111111111與中間進(jìn)位0.00000000000。因此,得到了對應(yīng)最大正值的中間和以及中間進(jìn)位。當(dāng)中間和,中間進(jìn)位以及第二校正值(當(dāng)溢出被溢出檢測單元102檢測到時,其值為0)通過進(jìn)位傳遞加法器104相加時,得到乘法結(jié)果0.111111111111,也就是校正為可表示的最大正值的結(jié)果。
如前面所描述的,固定的第一校正值(例如,出現(xiàn)溢出的情況的校正值)不管溢出出現(xiàn)還是不出現(xiàn)都在進(jìn)位保留加法中與部分積相加,并且第二校正值(例如,這個值或者抵償?shù)谝恍U档男U?,或者不影響校?根據(jù)是否實際出現(xiàn)溢出在進(jìn)位傳遞加法等中被加上。因此,在進(jìn)位傳遞加法中相加時,會增加延時時間的校正值,作為第一校正值在進(jìn)位保留加法中被預(yù)先加入,其后,根據(jù)溢出出現(xiàn)或者不出現(xiàn),第二校正值可以抵償?shù)谝恍U?。因此,有可能正確地校正溢出同時保持短的總運算時間。而且,由于溢出檢測可以在任何定時進(jìn)行,使得可以控制第二校正值,而檢測時間就會有大的裕度,由此,有可能容易地抑制總運算時間的增加。
特別地,如前所述,第一校正值在進(jìn)位保留加法中加入的情況中,沒有進(jìn)位傳遞中將出現(xiàn)的這種延時。在多個部分積以及第一校正值由進(jìn)位保留加法器樹并行相加的情況中,通過避免增加用于加入第一校正值的邏輯級的數(shù)量,有可能容易地保持短的總運算時間。第二校正值被控制為1或者0的情況中,僅需進(jìn)行中間和以及LSB的兩位加法,由此關(guān)于不加入第二校正值的情況,有可能容易地抑制電路單元延時的增加。而且,由于第一校正值是常數(shù),與不加入第一校正值的情況相比,電路規(guī)模沒有明顯的增加。
在前面描述的示例中,為了說明的目的,提供了選擇器103以便根據(jù)溢出檢測信號OD,選擇地輸出0或者1作為第二校正值。然而實際上,溢出檢測信號OD的電平被指定為0或1的第二校正值,其中溢出檢測信號OD(它本身或者它的反碼)被直接輸入到進(jìn)位傳遞加法器104。
由于第二校正值的加法在后級進(jìn)行,所以為溢出檢測定時提供了更大的裕度。然而如果檢測可以及時進(jìn)行,則可選地第二校正值也可以作為進(jìn)位在進(jìn)位保留加法器101b中加入。而且,第一校正值也可以可選地根據(jù)出現(xiàn)/不出現(xiàn)溢出控制為-1或0。
實施例2本發(fā)明的實施例2是針對用于得到被乘數(shù)A和乘數(shù)B的乘積與加數(shù)X的和(也就是乘加運算)的算術(shù)單元。如圖2所示,與實施例1中的算術(shù)單元相比,本實施例的算術(shù)單元包括中間乘積產(chǎn)生器201以代替中間乘積產(chǎn)生器101。中間乘積產(chǎn)生器201除了部分積產(chǎn)生器101a和進(jìn)位保留加法器101b外,還有移位單元201c和進(jìn)位保留加法器201d。
移位單元201c進(jìn)行第一中間和與第一中間進(jìn)位的一位左移,以分別輸出移位的中間和與移位的中間進(jìn)位,第一中間和與第一中間進(jìn)位是將所有的部分積以及第一校正值(-1)通過進(jìn)位保留加法器101b相加在一起得到的。在一位左移運算中,以1填充移位的中間和的LSB,以0填充移位的中間進(jìn)位的LSB。
進(jìn)位保留加法器201d將移位的中間和,移位的中間進(jìn)位以及加數(shù)X(將三個數(shù)減少為兩個)相加在一起,以輸出第二中間和與第二中間進(jìn)位。
移位單元201c并不一定是諸如移位寄存器的能夠存儲和移位數(shù)據(jù)的單元,其只需要能夠?qū)碜赃M(jìn)位保留加法器101b的輸出的LSB移一位到更高的位置并輸入到進(jìn)位保留加法器201d,并且加數(shù)X的LSB與1相加。利用上面描述的移位運算,例如表示為二進(jìn)制補碼的7位定點數(shù)的乘法產(chǎn)生14位的乘積。然而,只要達(dá)到必要的精度,例如加數(shù)X有13位時,上面描述的移位運算(按位擴展)并不一定要進(jìn)行。在加數(shù)的位數(shù)大于乘積的位數(shù)時,例如加數(shù)X有24位,則第一中間和與第一中間進(jìn)位可以左移幾位使得乘積的小數(shù)點的位置與加數(shù)X的小數(shù)點對齊,按照移位的數(shù)量第一中間和的一部分要從LSB開始以1填充。
利用具有這樣配置的算術(shù)單元,第一中間和被左移并且以1填充LSB,這等效于將-1加到按位擴展的乘積上面。
具體地,例如如圖4所示,當(dāng)出現(xiàn)溢出時,進(jìn)行移位和填充運算將-1加到14位的乘積上面,由此得到與溢出校正乘法結(jié)果A×B-1對應(yīng)的移位的中間和與移位的中間進(jìn)位(0.1111111111111和0.000000000000)。移位的中間和與移位的中間進(jìn)位,通過進(jìn)位保留加法器201d與加數(shù)X相加,以產(chǎn)生第二中間和(y.y...)以及第二中間進(jìn)位(z.z...),它們通過進(jìn)位傳遞加法器104與第二校正值(因為檢測到溢出其值為0)相加,由此得到加數(shù)X與校正的乘法結(jié)果0.1111111111111(最大的正值)的乘加結(jié)果X+A×B-1。
當(dāng)不出現(xiàn)溢出時,如上實施例1中描述的第二校正值為1,從而抵償?shù)谝恍U档男U?,由此得到X+A×B-1+1,也就是普通的乘加結(jié)果X+A×B。
同樣在實施例2中,第二校正值的加法不一定由進(jìn)位傳遞加法器104進(jìn)行,它可以作為進(jìn)位保留加法器201d或者任何其它合適的地方的進(jìn)位加入,以及時進(jìn)行溢出檢測并且得到校正運算結(jié)果。并且,本發(fā)明不局限于每個校正值在加法器中被加/減的情況,校正值的加/減可以利用在移位單元中的填充運算所使用的數(shù)值來實現(xiàn)或者結(jié)合使用如上數(shù)值以及加/減運算來實現(xiàn)。無論如何,為了獲得更短的延時和更小的電路規(guī)模,加法器并行的樹的級數(shù)和對每個數(shù)字進(jìn)行加法的數(shù)目優(yōu)選為小的。
而且,加數(shù)X不一定要在進(jìn)位保留加法器201d中加入,而是可選地在進(jìn)位保留加法器101b中加入,同時省掉移位單元201c和進(jìn)位保留加法器201d。在這種情況下(如實施例1中描述的,其中能夠及時進(jìn)行溢出檢測),第二校正值也可以在進(jìn)位保留加法器101b中加入。
雖然上面介紹了用于得到乘加結(jié)果的算術(shù)單元,但也可以通過例如輸入0作為乘數(shù)X得到乘積A×B或者A×B-1。
實施例3本發(fā)明的實施例3是針對用于按照作為運算選擇信號給出的指示,可選擇地獲得被乘數(shù)A和乘數(shù)B的乘積與加數(shù)X的和(乘加結(jié)果)或差(乘減結(jié)果)的算術(shù)單元。如圖5所示,與實施例2中的算術(shù)單元相比,本實施例的算術(shù)單元包括一個選擇器305,還包括分別代替中間乘積產(chǎn)生器201和選擇器103的中間乘積產(chǎn)生器301和選擇器303。中間乘積產(chǎn)生器301具有與實施例1和實施例2中類似的部分積產(chǎn)生器101a和進(jìn)位保留加法器101b,與實施例2中類似的進(jìn)位保留加法器201d,移位單元301c和二進(jìn)制補碼轉(zhuǎn)換單元301e。
選擇器305,移位單元301c,二進(jìn)制補碼轉(zhuǎn)換單元301e和選擇器303按如下方式輸出數(shù)值。選擇器305作為第一校正值的輸出當(dāng)執(zhí)行乘加運算時為-1;或者當(dāng)執(zhí)行乘減運算時為0。
移位單元301c執(zhí)行在從進(jìn)位保留加法器101b輸出的第一中間和與第一中間進(jìn)位的一位左移運算,并且對乘加運算,用1填充中間和的LSB、對乘減運算,用0填充中間和的LSB;并且總是用0填充中間進(jìn)位的LSB。
二進(jìn)制補碼轉(zhuǎn)換單元301e在當(dāng)其用于乘加運算時,輸出移位的中間和與移位的中間進(jìn)位;以及在用于乘減運算時,輸出它們的二進(jìn)制補碼。
選擇器303作為第二校正值的輸出對乘加運算,在出現(xiàn)溢出時為0,在不出現(xiàn)溢出時為1;以及對乘減運算,在出現(xiàn)溢出時為1,在不出現(xiàn)溢出時為0。
在進(jìn)行乘加運算的情況下,本算術(shù)單元具有進(jìn)行與實施例2中的算術(shù)單元所進(jìn)行的相同運算的配置。具體地,如圖6所示,當(dāng)出現(xiàn)溢出時,算術(shù)單元得到溢出校正的適當(dāng)?shù)某思咏Y(jié)果X+A×B-1。當(dāng)沒有溢出時,第一校正值的校正被第二校正值抵償,由此得到普通的乘加結(jié)果X+A×B-1+1=X+A×B。
當(dāng)進(jìn)行乘減運算時,如上所述,第一校正值為0,當(dāng)溢出不出現(xiàn)時,第二校正值為0,而當(dāng)出現(xiàn)溢出時為1。
考慮到這點,當(dāng)溢出不出現(xiàn)時,進(jìn)位保留加法器101b通過將所有的部分積以及作為第一校正值的0在進(jìn)位保留加法中相加在一起來輸出第一中間和與第一中間進(jìn)位,并且第一中間和與第一中間進(jìn)位由移位單元301c左移且將LSB填充為0,并且然后通過二進(jìn)制補碼轉(zhuǎn)換單元301e將其轉(zhuǎn)換為二進(jìn)制補碼,然后此補碼與加數(shù)X由進(jìn)位保留加法器201d在進(jìn)位保留加法中相加。因此,得到與乘減結(jié)果X-A×B對應(yīng)的第二中間和與第二中間進(jìn)位,然后它們由進(jìn)位傳遞加法器104在進(jìn)位傳遞加法中相加在一起。如果沒有溢出,第一中間和,第一中間進(jìn)位以及通過將這些值移位和轉(zhuǎn)換為二進(jìn)制補碼得到的值都是正確表達(dá)的值。因此,當(dāng)?shù)诙虚g和,第二中間進(jìn)位以及0(第二校正值)由進(jìn)位傳遞加法器104在進(jìn)位傳遞加法中相加在一起時,就能得到適當(dāng)?shù)某藴p結(jié)果X-A×B。
如圖7所示,當(dāng)進(jìn)行乘減運算并且出現(xiàn)溢出時,第一中間和為只有符號位為1的值(1.000000000000),也就是說,比最大可表示的值大1的值,并且左移這個值并將LSB填充為0得到的值也是如此(1.0000000000000(S))。當(dāng)出現(xiàn)溢出時,第一中間進(jìn)位為0.00000000000,并且移位這個值得到的值為0.000000000000(C)。因此,-A×B((S)和(C)的二進(jìn)制補碼的和)是1.0000000000000。這是一個比最大正值大1的值的二進(jìn)制補碼(即沒有被溢出校正的乘積A×B)。因此,即使乘積A×B溢出,將乘積乘以-1(二進(jìn)制補碼轉(zhuǎn)換)得到的值也是可表示的值。然而在乘以-1之前已經(jīng)進(jìn)行溢出校正是必要的(即在那時,乘法結(jié)果已是可表示的A×B-1是必要的)。因此,當(dāng)?shù)诙虚g和與第二中間進(jìn)位由進(jìn)位傳遞加法器104相加在一起時,1作為第二校正值被加上,由此得到乘減結(jié)果X-A×B+1=X-(A×B-1),它是加數(shù)X與溢出校正的乘法結(jié)果乘以-1(1.0000000000001)得到的值的和,也就是適當(dāng)?shù)囊绯鲂U某藴p結(jié)果。
對于第一中間和,即使在算術(shù)運算過程的中間點,值不是邏輯的合法地可表達(dá)的形式,最終也可以得到適當(dāng)?shù)倪\算結(jié)果。
應(yīng)當(dāng)注意為了進(jìn)行二進(jìn)制補碼轉(zhuǎn)換而進(jìn)行的校正值的加法可以在進(jìn)位保留加法器201d中進(jìn)行,以便省去或減少由于進(jìn)位傳遞造成的總運算時間的增加,由此有可能更可靠地減少總運算時間。
而且,正如上述實施例2中介紹的,第二校正值可以由進(jìn)位保留加法器201d來加入。
而且,只要用于二進(jìn)制補碼轉(zhuǎn)換以及溢出校正的加法能夠進(jìn)行,任何將在各種單元中相加的加數(shù)與在移位運算中用于填充的值的適當(dāng)?shù)慕M合都是可以的。
實施例4本發(fā)明的實施例4是針對用于進(jìn)行乘加運算或者乘減運算的算術(shù)單元的可選擇的示例。如圖8所示,與實施例3中的算術(shù)單元相比,本實施例的算術(shù)單元包括代替中間乘積產(chǎn)生器301的中間乘積產(chǎn)生器401。中間乘積產(chǎn)生器401具有與實施例1和實施例2中類似的部分積產(chǎn)生器101a與進(jìn)位保留加法器101b,與實施例3中類似的移位單元301c,進(jìn)位保留加法器401d以及邏輯取反單元401e。
沒有提供選擇器305,以及-1總是輸入到中間乘積產(chǎn)生器401的進(jìn)位保留加法器101b中。提供了選擇器406,并根據(jù)運算選擇信號將第三校正值輸入到進(jìn)位保留加法器401d中。
更具體的,邏輯取反單元401e在進(jìn)行乘加運算時,從移位單元301c輸出移位的中間和與移位的中間進(jìn)位,以及在進(jìn)行乘減運算時,輸出通過對位值邏輯地取反的得到的值。
在進(jìn)位保留加法器401d中,從邏輯取反單元401e輸出的中間和與中間進(jìn)位,加數(shù)X以及從選擇器406輸出的第三校正值(當(dāng)進(jìn)行乘加運算時為0,當(dāng)進(jìn)行乘減運算時為1)在進(jìn)位保留加法中相加在一起,從而將它們減少為兩個數(shù),也就是第二中間和與第二中間進(jìn)位。
在進(jìn)行乘加運算的情況下,本算術(shù)單元具有進(jìn)行與實施例2和實施例3中的算術(shù)單元所進(jìn)行的相同運算的配置。具體地,如圖9所示,當(dāng)出現(xiàn)溢出時,溢出被校正從而得到適當(dāng)?shù)某思咏Y(jié)果X+A×B-1。當(dāng)不出現(xiàn)溢出時,第一校正值的校正被第二校正值抵償,由此得到普通的乘加結(jié)果X+A×B-1+1=X+A×B。
參照圖10,進(jìn)行乘減運算中當(dāng)出現(xiàn)溢出時,與進(jìn)行乘加運算一樣第一校正值為-1。然而,當(dāng)?shù)谝恢虚g和與第一中間進(jìn)位在移位單元301c中移位時,LSB(用于中間進(jìn)位的與中間和的LSB相鄰的較高數(shù)字)填充為0,并且位值被邏輯取反,之后當(dāng)加數(shù)X由進(jìn)位保留加法器401d加入時,1作為第三校正值被加上。(注意例如,可以把1直接加到進(jìn)位保留加法器401d中,而不是將中間和的LSB填充為0和對位值取反。)由此,考慮到接下來的移位和填充0的運算,加入第一校正值(-1)等效于加入-10。因此,移位的中間和(S)與移位的中間進(jìn)位(C)就是與A×B-10相對應(yīng)的中間和與中間進(jìn)位。
S+C=A×B-10在邏輯取反單元401e中,通過邏輯取反移位的中間和的所有的位以及邏輯取反移位的中間進(jìn)位的直到與移位的中間和的LSB相鄰的較高數(shù)字的位,得到邏輯取反值S′以及邏輯取反值C′。
S′=-S-1C′=-C-10進(jìn)位保留加法器401d將邏輯取反的值S′和C′,加數(shù)X以及作為第三校正值的1相加在一起,以輸出第二中間和與第二中間進(jìn)位。由此,X+S′+C′+1=X+(-S-1)+(-C-10)+1=X-(S+C)-10=X-(A×B-10)-10=X-A×B因此,與實施例3中一樣,第二中間和與第二中間進(jìn)位是與乘減結(jié)果X-A×B相應(yīng)的值。
由此,當(dāng)出現(xiàn)溢出時,第二中間和,第二中間進(jìn)位以及作為第二校正值的1由進(jìn)位傳遞加法器104在進(jìn)位傳遞加法中相加在一起,從而得到適當(dāng)?shù)囊绯鲂U某藴p結(jié)果X-A×B+1=X-(A×B-1)。而且,既然對于二進(jìn)制補碼的轉(zhuǎn)換沒有必要進(jìn)行進(jìn)位傳遞加法,運算速度有可能容易地提高。
當(dāng)不出現(xiàn)溢出時,第二校正值為0,因此得到普通的乘減結(jié)果X-A×B。
如前所述,在使用0或者1的第三校正值,并且不管該運算是乘加運算還是乘減運算,第一校正值固定為-1的情況下,通過控制1位值有可能控制是否加入-1(所有位都是1),由此有可能容易地降低電路的規(guī)模。
注意正如前面實施例2中所述,第二校正值可以由進(jìn)位保留加法器101b或者進(jìn)位保留加法器401d加入,并且第三校正值可以由進(jìn)位保留加法器101b或者進(jìn)位傳遞加法器104加入。
實施例5本發(fā)明的實施例5是針對用于使用布斯算法進(jìn)行乘加運算或者乘減運算的算術(shù)單元。如圖11所示,與實施例3的算術(shù)單元相比(圖5),本實施例的算術(shù)單元具有包括乘數(shù)編碼單元511的中間乘積產(chǎn)生器501,代替了包括二進(jìn)制補碼轉(zhuǎn)換單元301e的中間乘積產(chǎn)生器301。其它結(jié)構(gòu)以及第一校正值,第二校正值與實施例3中的相同。
根據(jù)以4為基數(shù)的布斯算法,例如乘數(shù)編碼單元511在得到乘加結(jié)果時,輸出與乘數(shù)B對應(yīng)的編碼結(jié)果以及部分積的二進(jìn)制補碼校正項,而乘數(shù)編碼單元511在獲得乘減結(jié)果時,輸出與乘數(shù)B乘以-1對應(yīng)的編碼結(jié)果以及部分積的二進(jìn)制補碼校正項。具體地,在獲得乘減結(jié)果時,乘數(shù)編碼單元511得到被乘數(shù)A與乘以了-1的乘數(shù)B的乘積,也就是,A×(-B),其代替了實施例3中通過將乘法結(jié)果轉(zhuǎn)換為二進(jìn)制補碼而將其乘以-1的操作。
利用具有這樣的配置的算術(shù)單元進(jìn)行乘加運算時,如圖12所示,對乘數(shù)B(1000000)進(jìn)行以4為基數(shù)的布斯編碼產(chǎn)生編碼結(jié)果-1,0,0,0,與其對應(yīng)的二進(jìn)制補碼校正項為1,0,0,0。因此,從進(jìn)位保留加法器101b輸出的第一中間和與第一中間進(jìn)位與實施例3(圖6)中的一樣,并且根據(jù)出現(xiàn)或者不出現(xiàn)溢出來決定是否進(jìn)行校正也類似的進(jìn)行,由此得到適當(dāng)?shù)某思咏Y(jié)果X+A×B-1或者X+A×B。因此,通過加入作為第一校正值的-1來校正溢出,當(dāng)不出現(xiàn)溢出時,作為第二校正值的1也被加入以抵償校正,因此得到適當(dāng)?shù)某思咏Y(jié)果。
如圖13所示,在進(jìn)行乘減運算時,編碼結(jié)果為1,0,0,0(進(jìn)行乘加運算時為編碼結(jié)果的二進(jìn)制補碼),二進(jìn)制補碼校正項為0,0,0,0。當(dāng)不出現(xiàn)溢出時,第一校正值和第二校正值都是0,因此進(jìn)行了合理的運算以得到普通的乘減結(jié)果X-A×B。此外,當(dāng)出現(xiàn)溢出時,正如以上在實施例3中描述的一樣,在乘以-1之前已經(jīng)完成溢出校正是必要的(即在那時,可表達(dá)的乘法結(jié)果已經(jīng)為A×B-1是必要的)。因此,當(dāng)?shù)诙虚g和與第二中間進(jìn)位由進(jìn)位傳遞加法器104相加時,加入作為第二校正值的1,由此得到乘數(shù)X與溢出校正的乘法結(jié)果乘以-1(1.0000000000001)的乘減結(jié)果X-A×B+1=X-(A×B-1),也就是,適當(dāng)?shù)囊绯鲂U某藴p結(jié)果。
實施例6本發(fā)明的實施例6是針對利用布斯算法的算術(shù)單元的可選的示例。如圖14所示,與實施例5中的算術(shù)單元相比,本實施例的算術(shù)單元具有中間乘積產(chǎn)生器601,其代替了中間乘積產(chǎn)生器501。沒有提供選擇器305,并且而-1總是輸入到中間乘積產(chǎn)生器601中,以作為第一校正值。提供了有類似于實施例4(圖8)中的選擇器406,以及與運算是否為乘加運算或者乘減運算相對應(yīng)的第三校正值被輸入到中間乘積產(chǎn)生器601的進(jìn)位保留加法器401d中。
中間乘積產(chǎn)生器601包括移位單元201c和進(jìn)位保留加法器401d,以代替實施例5中的中間乘積產(chǎn)生器501的移位單元301c和移位保留加法器201d。在一位左移運算中,不管運算為乘加運算還是乘減運算,移位單元201c總是用1填充中間和,用0填充中間進(jìn)位。進(jìn)位保留加法器401d與實施例4中的相同,以及在進(jìn)位保留加法中將由移位單元201c移位的移位的中間和與移位的中間進(jìn)位,加數(shù)X以及第三校正值加在一起。
如圖15所示,對于乘加運算,該算術(shù)單元具有進(jìn)行與實施例5中算術(shù)單元相同運算的配置。具體地,第一校正值為-1,在左移運算中所要填充的一位或者幾位的值,對于中間和為1而對于中間進(jìn)位為0,第三校正值為0,以及第二校正值按照出現(xiàn)或者不出現(xiàn)溢出為0或者1,由此得到適當(dāng)?shù)某思咏Y(jié)果X+A×B-1或者X+A×B。
對于乘減運算,進(jìn)行如圖16所示的運算。在實施例5中,對于乘減運算,第一校正值被置為0。相反,在實施例6中,不管運算是乘加運算還是乘減運算,-1作為第一校正值被加入,并且中間和被左移并填充為1。在進(jìn)行乘減運算時,作為第三校正值的1由進(jìn)位保留加法器401d在加法運算中加入,由此抵償了第一校正值。因此,從進(jìn)位保留加法器401d輸出的第二中間和與第二中間進(jìn)位與實施例5中的一樣,并且根據(jù)出現(xiàn)或者不出現(xiàn)溢出的第二校正值的加法也類似地進(jìn)行,從而得到適當(dāng)?shù)某藴p結(jié)果X-A×B或者X-(A×B-1)。
如前所述,通過使用其值為0或者1的第三校正值,以及不管運算是乘加運算還是乘減運算都固定為-1的第一校正值,與實施例4中一樣,只需要控制1位值,由此有可能容易地降低電路規(guī)模。
即使乘積溢出,乘積乘以-1也可以利用二進(jìn)制補碼正常地表達(dá),但是如前所述,當(dāng)-1作為第一校正值被加入時,與圖16中的第一中間和一樣,其值仍落在可表示的范圍之外。然而,當(dāng)左移這個值并填充它的LSB為1,然后向其加入作為第三校正值的1時,這個值又變成為可表示的值,由此有可能得到適當(dāng)?shù)某藴p結(jié)果。因此,正如前面實施例3中描述的,即使在算術(shù)運算過程中的中間點,值不是邏輯的合法地可表達(dá)的形式都沒有問題,只要最終能夠得到適當(dāng)?shù)倪\算結(jié)果。
注意只要應(yīng)用合乎邏輯,上面實施例中介紹的示例或可選擇的示例中的每個元件都可以應(yīng)用在其它實施例中。例如,如前所述,對實施例1中的選擇器103,溢出檢測信號OD,運算選擇信號,或者其修改的信號(例如,其邏輯取反的信號或者經(jīng)過異或的信號)可以,作為進(jìn)位或者作為在左移運算中用于填充1位或者幾位的值,輸入到進(jìn)位傳遞加法器104等中。此外,在實施例3等中,除了得到乘加或者乘減結(jié)果外,0可以輸入作為如上面實施例2所述的加數(shù)X,因此通過省掉與加數(shù)X的加法,有可能得到乘積(A×B或者A×B-1)。
如前所述,本發(fā)明的算術(shù)單元能夠正確校正乘法結(jié)果的溢出,并有可能容易和可靠地提高包括乘法在內(nèi)的算術(shù)運算的速度,其可用于例如進(jìn)行諸如定點數(shù)的乘法運算、乘加運算和乘減運算的算術(shù)運算的算術(shù)單元。
權(quán)利要求
1.一種用于進(jìn)行包括被乘數(shù)A和乘數(shù)B的乘法運算的算術(shù)運算的算術(shù)單元,A和B均為表達(dá)為二進(jìn)制補碼的定點數(shù),該算術(shù)單元包括溢出檢測單元,用于檢測該被乘數(shù)A和該乘數(shù)B的乘積溢出的出現(xiàn);中間乘積產(chǎn)生器,用于通過該被乘數(shù)A和該乘數(shù)B的多個部分積與預(yù)定的第一校正值的進(jìn)位保留加法,得到中間和與中間進(jìn)位;以及進(jìn)位傳遞加法器,用于通過該中間和與該中間進(jìn)位的進(jìn)位傳遞加法,得到運算結(jié)果,其中將根據(jù)該溢出檢測單元的檢測結(jié)果的預(yù)定的第二校正值,或者在該中間乘積產(chǎn)生器中加入,或者在該進(jìn)位傳遞加法器中加入。
2.如權(quán)利要求1中所述的算術(shù)單元,其中在該被乘數(shù)A和該乘數(shù)B均為具有最大絕對值的負(fù)值時,該溢出檢測單元檢測到溢出。
3.如權(quán)利要求1中所述的算術(shù)單元,其中該第一校正值是-1;以及當(dāng)出現(xiàn)溢出時,該第二校正值為0,當(dāng)不出現(xiàn)溢出時,該第二校正值為1。
4.如權(quán)利要求1中所述的算術(shù)單元,其中該中間乘積產(chǎn)生器被配置為可以通過進(jìn)位保留加法樹并行地將該多個部分積與該第一校正值相加。
5.如權(quán)利要求1中所述的算術(shù)單元,其中該中間乘積產(chǎn)生器通過用二進(jìn)制補碼表示的該被乘數(shù)A和該乘數(shù)B的多個部分積、該第一校正值與加數(shù)X的進(jìn)位保留加法得到中間和與中間進(jìn)位;該進(jìn)位傳遞加法器獲得該加數(shù)X與該被乘數(shù)A與該乘數(shù)B的乘積的和,即X+A×B。
6.如權(quán)利要求5中所述的算術(shù)單元,其中該第一校正值為-1;以及當(dāng)出現(xiàn)溢出時,該第二校正值為0,而當(dāng)不出現(xiàn)溢出時,該第二校正值為1
7.如權(quán)利要求6中所述的算術(shù)單元,其中該中間乘積產(chǎn)生器得到中間和與中間進(jìn)位,這是通過將初步的中間和左移一位并在其最低有效位插入1得到的值、將初步的中間進(jìn)位左移一位并在其最低有效位插入0得到的值、與加數(shù)X的進(jìn)位保留加法而得到的,其中該初步的中間和與該初步的中間進(jìn)位是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的;或者中間和與中間進(jìn)位,這是通過該被乘數(shù)A和該乘數(shù)B的多個部分積、該第一校正值、與該加數(shù)X的進(jìn)位保留加法而得到的。
8.如權(quán)利要求1中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該中間乘積產(chǎn)生器通過表示為二進(jìn)制補碼的該被乘數(shù)A和該乘數(shù)B的多個部分積、該第一校正值、與加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位;當(dāng)要得到乘減結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和轉(zhuǎn)換為二進(jìn)制補碼得到的值、將初步的中間進(jìn)位轉(zhuǎn)換為二進(jìn)制補碼得到的值、與加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的;以及該進(jìn)位傳遞加法器得到該加數(shù)X與該被乘數(shù)A與該乘數(shù)B的乘積的和或者差,即X+A×B或者X-A×B。
9.如權(quán)利要求8中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該第一校正值為-1,并且該第二校正值在出現(xiàn)溢出時為0,在不出現(xiàn)溢出時為1;以及當(dāng)要得到乘減結(jié)果時,該第一校正值為0,并且該第二校正值在出現(xiàn)溢出時為1,在不出現(xiàn)溢出時為0;
10.如權(quán)利要求9中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位并在其最低有效位插入1得到的值、將初步的中間進(jìn)位左移一位并在其最低有效位插入0得到的值、與該加數(shù)X的進(jìn)位保留加法得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的;以及當(dāng)要得到乘減結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位然后在其最低有效位插入0并將該移位后的初步的中間和轉(zhuǎn)換為二進(jìn)制補碼得到的值、將初步的中間進(jìn)位左移一位然后在其最低有效位插入0并將該移位后的初步的中間進(jìn)位為轉(zhuǎn)換二進(jìn)制補碼得到的值、與該加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的。
11.如權(quán)利要求1中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該中間乘積產(chǎn)生器通過表示為二進(jìn)制補碼的該被乘數(shù)A和該乘數(shù)B的多個部分積、該第一校正值和加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位。當(dāng)要得到乘減結(jié)果時,該中間乘積產(chǎn)生器通過表示為二進(jìn)制補碼的初步的中間和的位值取反得到的值、初步的中間進(jìn)位的位值取反得到的值、與加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位是通過將該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的;預(yù)定的第三校正值,或者在該中間乘積產(chǎn)生器中加入,或者在該進(jìn)位傳遞加法器中加入;以及該進(jìn)位傳遞加法器得到該加數(shù)X與該被乘數(shù)A與該乘數(shù)B的乘積的和或者差,即X+A×B或者X-A×B。
12.如權(quán)利要求11中所述的算術(shù)單元,其中該第一校正值為-1;當(dāng)要得到乘加結(jié)果時,當(dāng)出現(xiàn)溢出時,該第二校正值為0,而當(dāng)不出現(xiàn)溢出時,該第二校正值為1;當(dāng)要得到乘減結(jié)果時,當(dāng)出現(xiàn)溢出時,該第二校正值為1,而當(dāng)不出現(xiàn)溢出時,該第二校正值為0;當(dāng)要得到乘加結(jié)果時,該第三校正值為0;以及當(dāng)要得到乘減結(jié)果時,該第三校正值為1。
13.如權(quán)利要求12中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位并在其最低有效位插入1得到的值、將初步的中間進(jìn)位左移一位并在其最低有效位插入0得到的值、與該加數(shù)X在進(jìn)位保留加法中相加在一起,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的;當(dāng)要得到乘減結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位然后在其最低有效位插入0并對其位值取反得到的值、將初步的中間進(jìn)位左移一位然后在其最低有效位插入0并對其位值取反得到的值、與該加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)B的多個部分積與該第一校正值的進(jìn)位保留加法得到的。
14.如權(quán)利要求1中所述的算術(shù)單元,進(jìn)一步包括用于輸出乘數(shù)D以及對該乘數(shù)D的二進(jìn)制補碼校正項E的乘數(shù)編碼單元,其中在要得到乘加結(jié)果時,該乘數(shù)D為根據(jù)布斯算法對該乘數(shù)B進(jìn)行編碼得到的結(jié)果,以及在要得到乘減結(jié)果時,為該乘數(shù)B乘以-1所得的值根據(jù)布斯進(jìn)行編碼得到的結(jié)果,其中該中間乘積產(chǎn)生器通過該被乘數(shù)A和該乘數(shù)D的多個部分積、該二進(jìn)制補碼校正項E、與該第一校正值的進(jìn)位保留加法,得到中間和與中間進(jìn)位;以及該進(jìn)位傳遞加法器得到該加數(shù)X與該被乘數(shù)A與該乘數(shù)B的乘積的和或者差,即X+A×B或者X-A×B。
15.如權(quán)利要求14中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該第一校正值為-1,并且當(dāng)出現(xiàn)溢出時,該第二校正值為0,當(dāng)不出現(xiàn)溢出時,該第二校正值為1;以及當(dāng)要得到乘減結(jié)果時,該第一校正值為0,并且當(dāng)出現(xiàn)溢出時,該第二校正值為1,當(dāng)不出現(xiàn)溢出時,該第二校正值為0;
16.如權(quán)利要求15中所述的算術(shù)單元,其中當(dāng)要得到乘加結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位并在其最低有效位插入1得到的值、將初步的中間進(jìn)位左移一位并在其最低有效位插入0得到的值、與該加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A與該乘數(shù)D的多個部分積、該二進(jìn)制補碼校正項E與該第一校正值的進(jìn)位保留加法得到的;當(dāng)要得到乘減結(jié)果時,該中間乘積產(chǎn)生器通過將初步的中間和左移一位然后在其最低有效位插入0得到的值、將初步的中間進(jìn)位左移一位并在其最低有效位插入0得到的值、與該加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與初步的中間進(jìn)位,是通過該被乘數(shù)A和該乘數(shù)D的多個部分積、該二進(jìn)制補碼校正項E、與該第一校正值的進(jìn)位保留加法得到的。
17.如權(quán)利要求14中所述的算術(shù)單元,其中預(yù)定的第三校正值,或者在該中間乘積產(chǎn)生器中加入,或者在該進(jìn)位傳遞加法器中加入;該第一校正值為-1;當(dāng)要得到乘加結(jié)果時,當(dāng)出現(xiàn)溢出時,該第二校正值為0,以及當(dāng)不出現(xiàn)溢出時,該第二校正值為1;當(dāng)要得到乘減結(jié)果時,當(dāng)出現(xiàn)溢出時,該第二校正值為1,以及當(dāng)不出現(xiàn)溢出時,該第二校正值為0;當(dāng)要得到乘加結(jié)果時,該第三校正值為0;以及當(dāng)要得到乘減結(jié)果時,該第三校正值為1。
18.如權(quán)利要求17中所述的算術(shù)單元,其中該中間乘積產(chǎn)生器通過將初步的中間和左移一位然后在其最低有效位插入1得到的第一值、將初步的中間進(jìn)位左移一位然后在其最低有效位插入0得到的第二值、與該加數(shù)X的進(jìn)位保留加法,得到中間和與中間進(jìn)位,或者通過該第一值、該第二值、該加數(shù)X與該第三校正值的進(jìn)位保留加法,得到中間和與中間進(jìn)位,其中該初步的中間和與該初步的中間進(jìn)位,是通過該被乘數(shù)A與該乘數(shù)D的多個部分積、該二進(jìn)制補碼校正項E、與該第一校正值的進(jìn)位保留加法得到的。
全文摘要
為了校正乘法結(jié)果中的溢出同時提高運算速度,一個溢出檢測單元以被乘數(shù)A和乘數(shù)B是否均為具有最大絕對值的負(fù)值為基礎(chǔ)檢測溢出。一個進(jìn)位保留加法器通過將部分積和作為第一校正值的-1(所有位都為1)在進(jìn)位保留加法中相加在一起,來輸出與A×B-1對應(yīng)的中間和與中間進(jìn)位。一個進(jìn)位傳遞加法器通過將中間和,中間進(jìn)位與第二校正值在進(jìn)位傳遞加法中相加在一起,來輸出乘法結(jié)果。如果沒有溢出,第二校正值變?yōu)?以抵償?shù)谝恍U担纱?,運算結(jié)果為A×B。如果存在溢出,該第二校正值變?yōu)?,由此,該運算結(jié)果為A×B-1,其中溢出由第一校正值校正。
文檔編號G06F7/48GK1821951SQ20061000832
公開日2006年8月23日 申請日期2006年2月17日 優(yōu)先權(quán)日2005年2月17日
發(fā)明者武內(nèi)大輔 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1