引言
在微處理器芯片中,乘法器是進(jìn)行數(shù)字信號(hào)處理的核心,同時(shí)也是微處理器中進(jìn)行數(shù)據(jù)處理的關(guān)鍵部件。乘法器完成一次操作的周期基本上決定了微處理器的主頻。乘法器的速度和面積優(yōu)化對(duì)于整個(gè)CPU的性能來(lái)說(shuō)是非常重要的。為了加快乘法器的執(zhí)行速度,減少乘法器的面積,有必要對(duì)乘法器的算法、結(jié)構(gòu)及電路的具體實(shí)現(xiàn)做深入的研究。
基4Booth算法與乘法器的一般結(jié)構(gòu)
乘法器工作的基本原理是首先生成部分積,再將這些部分積相加得到乘積。在差模電感器目前的乘法器設(shè)計(jì)中,基4Booth算法是部分積生成過(guò)程中普遍采用的算法。對(duì)于N位有符號(hào)數(shù)乘法A×B來(lái)說(shuō),常規(guī)的乘法運(yùn)算會(huì)產(chǎn)生N個(gè)部分積。如果對(duì)乘數(shù)B進(jìn)行基4Booth編碼,每次需考慮3位:相鄰高位、本位和相鄰低位,編碼后產(chǎn)生部分積的個(gè)數(shù)可以減少到[(N+1)/2] ([X]取值為不大于X的整數(shù)),確定運(yùn)算量0、±1A、±2A。對(duì)于2A的實(shí)現(xiàn),只需要將A左移一位。因此,對(duì)于符號(hào)數(shù)乘法而言,基4 Booth算法既方便又快捷。而對(duì)于無(wú)符號(hào)數(shù)來(lái)說(shuō),只需對(duì)其高位作0擴(kuò)展,而其他處理方法相同。雖然擴(kuò)展后可能導(dǎo)致部分積的個(gè)數(shù)比有符號(hào)數(shù)乘法多1,但是這種算法很好地保證了硬件上的一致性,有利于實(shí)現(xiàn)。對(duì)于32位乘法來(lái)說(shuō),結(jié)合指令集的設(shè)計(jì),通常情況下需要相加的部分積不超過(guò)18個(gè)。
對(duì)部分積相加,可以采用不同的加法器陣列結(jié)構(gòu)。而不同的陣列結(jié)構(gòu)將直接影響完成一次乘法所需要的時(shí)間,因此,加法器陣列結(jié)構(gòu)是決定乘法器性能的重要因素。重復(fù)陣列(Iterative Array,簡(jiǎn)稱(chēng)IA)和Wal繞行電感l(wèi)ace樹(shù)型結(jié)構(gòu)是最為典型的兩種加法器陣列結(jié)構(gòu)。IA結(jié)構(gòu)規(guī)整,易于版圖實(shí)現(xiàn),但速度最慢且面積大;理論上,Wallace樹(shù)型結(jié)構(gòu)是進(jìn)行乘法操作最快的加法器陣列結(jié)構(gòu),但傳統(tǒng)的Wallace樹(shù)型結(jié)構(gòu)電路互連復(fù)雜,版圖實(shí)現(xiàn)困難。為了解決這個(gè)問(wèn)題,人們推出了一些連接關(guān)系較為簡(jiǎn)單的樹(shù)型結(jié)構(gòu),例如ZM樹(shù)和OS樹(shù)。它們都是將IA樹(shù)分為幾段,每段稱(chēng)之為子樹(shù),大功率電感貼片電感器子樹(shù)內(nèi)部連接采用IA結(jié)構(gòu),而子樹(shù)間采用樹(shù)型連接,以此來(lái)降低連接復(fù)雜度,但是這種方法降低了部分積相加的速度。
在對(duì)樹(shù)型結(jié)構(gòu)進(jìn)行改進(jìn)的同時(shí),設(shè)計(jì)者們也嘗試了對(duì)加法陣列中基本加法單元的改進(jìn)。Wallace最早提出的方案中,是以CSA(進(jìn)位保留加法器)作為基本單元構(gòu)建加法陣列的。其基本方法是:通過(guò)CSA部件,以3∶2的壓縮比對(duì)部分積進(jìn)行逐級(jí)壓縮,直到最后只產(chǎn)生兩個(gè)輸出為止,再通過(guò)進(jìn)位傳遞加法器對(duì)產(chǎn)生的這兩個(gè)偽和與局部進(jìn)位相加得出真正的結(jié)果。此后,Dadda提出了一種新的加法單元,稱(chēng)為“(j,k)計(jì)數(shù)器”,它有j個(gè)輸入和k個(gè)輸出,其中j≦2k。經(jīng)過(guò)研究和實(shí)踐,人們發(fā)現(xiàn)4-2壓縮器(實(shí)際上是5-3計(jì)數(shù)器)具有較好的平衡性和對(duì)稱(chēng)性,用其作為基本加法單元構(gòu)成的乘法器在總體性能上具有一定的優(yōu)勢(shì),因此4-2壓縮器也就成為了目前乘法器中較多采用的加法單元。
圖1中列舉了乘法器中幾種加法器陣列的結(jié)構(gòu),它們都采用4-2壓縮器作為基本加法單元來(lái)完成對(duì)18個(gè)部分積的加和。圖中每個(gè)矩形代表一組4-2壓縮器,帶箭頭的線段表示部分積與中間結(jié)果。
(a)IA陣列(b)Wallace樹(shù)
(c)一階OS樹(shù)(d)參考文獻(xiàn)[5]中的樹(shù)型結(jié)構(gòu)
圖1 對(duì)18個(gè)部分積相加所采用的加法陣列結(jié)構(gòu)
如前所述,圖1(a)中的IA陣列,結(jié)構(gòu)最為規(guī)整,但很明顯,其延時(shí)級(jí)數(shù)大大多于其他結(jié)構(gòu)。(b)是Wallace樹(shù)結(jié)構(gòu),由于采用4-2壓縮器作為唯一的加法單元,而18不能被4整除,因此在對(duì)18個(gè)部分積的求和過(guò)程中,必然要對(duì)其中的兩個(gè)部分積深圳電感做額外處理。Wallace樹(shù)采取的方法是:先將16個(gè)部分積通過(guò)三級(jí)4-2壓縮器后產(chǎn)生兩個(gè)結(jié)果,然后與剩下的兩個(gè)部分積一起再進(jìn)行一級(jí)4-2壓縮。(c)中的一階OS樹(shù)結(jié)構(gòu)也采用了類(lèi)似的方法,只是在處理的先后順序上有所改變。這兩種結(jié)構(gòu),都破壞了樹(shù)的對(duì)稱(chēng)性,造成路徑的不等長(zhǎng),因此浪費(fèi)了硬件資源,且增加了布局布線的復(fù)雜度。(d)是參考文獻(xiàn)[5]中提出的一種經(jīng)過(guò)改進(jìn)的樹(shù)型結(jié)構(gòu),其求和過(guò)程是:將18個(gè)部分積分為3組,先對(duì)每組中的6個(gè)部分積求和,各產(chǎn)生兩個(gè)中間結(jié)果,再把這6個(gè)中間結(jié)果相加。由于對(duì)每組中的6個(gè)部分積求和,可以采用相同結(jié)構(gòu)的兩組4-2壓縮器,這樣就很好地降低了布局布線的復(fù)雜度。其缺點(diǎn)在于:用4-2壓縮器對(duì)6個(gè)中間結(jié)果進(jìn)行相加的過(guò)程中,仍不能避免路徑不平衡的問(wèn)題,因此,還是使關(guān)鍵路徑的延時(shí)有不必要的增加。 大功率電感廠家 |大電流電感工廠