本發(fā)明涉及集成電路領(lǐng)域,更確切地說,涉及處理器。
背景技術(shù):
::傳統(tǒng)處理器采用基于邏輯的計(jì)算(logic-basedcomputation,簡(jiǎn)稱為lbc),它主要通過邏輯電路(如與非門等)來計(jì)算。邏輯電路適合實(shí)現(xiàn)算術(shù)運(yùn)算(如加法、減法和乘法),但對(duì)于非算術(shù)函數(shù)(如初等函數(shù)、特殊函數(shù)等)無能為力。非算術(shù)函數(shù)的高速高效實(shí)現(xiàn)面臨巨大的挑戰(zhàn)。在傳統(tǒng)處理器中,僅少量基本非算術(shù)函數(shù)(如基本代數(shù)函數(shù)、基本超越函數(shù))能通過硬件直接實(shí)現(xiàn),這些函數(shù)被稱為內(nèi)置函數(shù)(built-infunctions)。內(nèi)置函數(shù)一般通過算術(shù)運(yùn)算和查找表(lut)的組合來實(shí)現(xiàn)。實(shí)現(xiàn)內(nèi)置函數(shù)的例子很多,例如:美國(guó)專利us5,954,787(發(fā)明人:eun;授權(quán)日:1999年9月21日)披露了一種利用lut實(shí)現(xiàn)正弦/余弦(sine/cosine)函數(shù)的方法;美國(guó)專利us9,207,910(發(fā)明人:azadet;授權(quán)日:2015年12月8日)披露了一種利用lut實(shí)現(xiàn)冪函數(shù)的方法。圖1a具體描述了內(nèi)置函數(shù)的一種實(shí)現(xiàn)方法。傳統(tǒng)處理器00x通常含有邏輯電路100x和存儲(chǔ)電路200x。邏輯電路100x含有算術(shù)邏輯單元(alu),它用于實(shí)現(xiàn)算術(shù)運(yùn)算。存儲(chǔ)電路200x含有查找表電路(lut)。為了達(dá)到足夠的計(jì)算精度,需將代表內(nèi)置函數(shù)的多項(xiàng)式展開到足夠高的階數(shù)。這時(shí),lut200x存儲(chǔ)多項(xiàng)式系數(shù),alu100x計(jì)算相應(yīng)的多項(xiàng)式。由于alu100x和lut200x并肩排列在同一平面上(均形成在襯底00s中),這種集成是一種二維集成。二維集成對(duì)處理器的制造工藝要求較高。存儲(chǔ)電路200x由存儲(chǔ)晶體管構(gòu)成,邏輯電路100x由邏輯晶體管構(gòu)成。熟悉本專業(yè)的人士都知道,存儲(chǔ)晶體管和邏輯晶體管的性能指標(biāo)有很大不同。比如說,存儲(chǔ)晶體管更注重降低漏電流,而邏輯晶體管更注重增加導(dǎo)通電流。在同一襯底上00s的同一表面上同時(shí)形成高性能的存儲(chǔ)晶體管和邏輯晶體管對(duì)于制造工藝來說是一種挑戰(zhàn)。二維集成還會(huì)限制計(jì)算密度和計(jì)算復(fù)雜度的進(jìn)一步發(fā)展。計(jì)算正向更高的計(jì)算密度和更大的計(jì)算復(fù)雜度發(fā)展。計(jì)算密度是指單位芯片面積的計(jì)算能力(如每秒的浮點(diǎn)數(shù)運(yùn)算次數(shù)),它是平行計(jì)算的一個(gè)重要指標(biāo)。計(jì)算復(fù)雜度是指內(nèi)置函數(shù)的種類和數(shù)量,它是科學(xué)計(jì)算的一個(gè)重要指標(biāo)。由于采用二維集成,lut200x的存在將增加傳統(tǒng)處理器00x的芯片面積,降低其計(jì)算密度,這對(duì)平行計(jì)算不利。同時(shí),在傳統(tǒng)處理器00x的設(shè)計(jì)過程中,由于alu100x是傳統(tǒng)處理器00x的核心部件并占用了大部分芯片面積,故lut200x能利用的芯片面積有限。因此,傳統(tǒng)處理器00x僅支持少量?jī)?nèi)置函數(shù)。圖1b列出英特爾公司的itanium處理器(ia-64)能實(shí)現(xiàn)的所有內(nèi)置超越函數(shù)(參考harrison等所著《thecomputationoftranscendentalfunctionsontheia-64architecture》,inteltechnicaljournal,q4,1999年)。ia-64處理器共支持7種超越函數(shù),每種超越函數(shù)使用了相對(duì)較小的lut(從0到24kb),并需要進(jìn)行相對(duì)較多的泰勒級(jí)數(shù)(5階到22階)計(jì)算。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的是推動(dòng)科學(xué)計(jì)算的變革。本發(fā)明的另一目的是提供一種能實(shí)現(xiàn)更高計(jì)算復(fù)雜度的處理器。本發(fā)明的另一目的是提供一種能實(shí)現(xiàn)更高計(jì)算密度的處理器。本發(fā)明的另一目的是提供一種具有更多內(nèi)置函數(shù)的處理器。本發(fā)明的另一目的是高速高效地計(jì)算非算術(shù)函數(shù)。為了實(shí)現(xiàn)這些以及別的目的,本發(fā)明提出一種基于封裝內(nèi)查找表(in-packagelut,簡(jiǎn)稱為ip-lut)的處理器(ip-lut處理器)。ip-lut處理器含有至少一邏輯芯片和一存儲(chǔ)芯片。其中,邏輯芯片含有至少一算術(shù)邏輯電路(arithmeticlogiccircuit,簡(jiǎn)稱為alc),故邏輯芯片又被稱為alc芯片;存儲(chǔ)芯片含有至少一查找表電路(look-uptable,簡(jiǎn)稱為lut),故存儲(chǔ)芯片又被稱為lut芯片。alc芯片和lut芯片位于同一封裝中,它們之間通過芯片間連接進(jìn)行電耦合。由于與alc位于同一封裝中,lut又被稱為封裝內(nèi)查找表電路(ip-lut)。ip-lut存儲(chǔ)與一函數(shù)相關(guān)的數(shù)據(jù),alc對(duì)該函數(shù)相關(guān)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。ip-lut處理器采用“基于存儲(chǔ)的計(jì)算”(memory-basedcomputation,簡(jiǎn)稱為mbc),它主要通過查表來實(shí)現(xiàn)計(jì)算。ip-lut處理器中ip-lut的存儲(chǔ)容量遠(yuǎn)高于傳統(tǒng)處理器的lut。雖然大多數(shù)mbc仍需要進(jìn)行算術(shù)運(yùn)算,通過使用較大的ip-lut作為計(jì)算的出發(fā)點(diǎn),mbc僅需使用較少的多項(xiàng)式展開(如泰勒級(jí)數(shù)展開)。在mbc中,大部分計(jì)算通過ip-lut完成,少部分計(jì)算通過alc實(shí)現(xiàn)。這種將alc芯片和lut芯片相互堆疊在同一封裝的集成方式被稱為2.5維集成。2.5維集成能提高計(jì)算密度和計(jì)算復(fù)雜度。采用傳統(tǒng)的二維集成,傳統(tǒng)處理器00x的面積是alu100x和lut200x之和。采用2.5維集成后,lut從邊上移到頂上,ip-lut處理器變小,計(jì)算密度加強(qiáng)。此外,傳統(tǒng)處理器00x中l(wèi)ut200x的總?cè)萘啃∮?00kb,而ip-lut處理器中ip-lut的總?cè)萘靠蛇_(dá)到100gb;單個(gè)ip-lut處理器就可支持上萬個(gè)內(nèi)置函數(shù)(包括多種復(fù)雜數(shù)學(xué)函數(shù)),遠(yuǎn)多于傳統(tǒng)處理器00x。此外,由于alc芯片和lut芯片為不同芯片,構(gòu)成alc的邏輯晶體管和構(gòu)成lut的存儲(chǔ)晶體管分別在不同半導(dǎo)體襯底上形成,它們的制造工藝可分別優(yōu)化。相應(yīng)地,本發(fā)明提出一種基于封裝內(nèi)查找表(ip-lut)的處理器(300),其特征在于含有:一存儲(chǔ)芯片(200),該存儲(chǔ)芯片(200)含有至少一查找表電路(170),該查找表電路(170)存儲(chǔ)的數(shù)據(jù)與一數(shù)學(xué)函數(shù)相關(guān);一邏輯芯片(100),該邏輯芯片(100)含有至少一算術(shù)邏輯電路(180),該算術(shù)邏輯電路(180)對(duì)該查找表電路(170)存儲(chǔ)的數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算;多個(gè)將該存儲(chǔ)芯片(200)和該邏輯芯片(100)耦合的芯片間連接(160);該存儲(chǔ)芯片(200)和該邏輯芯片(100)位于同一封裝(130)內(nèi)。附圖說明圖1a是一傳統(tǒng)處理器的透視圖(現(xiàn)有技術(shù));圖1b列出英特爾itanium(ia-64)處理器支持的所有超越函數(shù)(現(xiàn)有技術(shù))。圖2a是一種典型ip-lut處理器的簡(jiǎn)要電路框圖;圖2b是該ip-lut處理器的透視圖。圖3a-圖3c是三種ip-lut處理器的截面圖。圖4a是一種實(shí)現(xiàn)一數(shù)學(xué)函數(shù)的ip-lut處理器之簡(jiǎn)要電路框圖;圖4b是一種實(shí)現(xiàn)一單精度數(shù)學(xué)函數(shù)的ip-lut處理器之電路框圖;圖4c列出實(shí)現(xiàn)各種精度數(shù)學(xué)函數(shù)所需的查找表容量和泰勒級(jí)數(shù)展開項(xiàng)。圖5是一種實(shí)現(xiàn)復(fù)合函數(shù)的ip-lut處理器之電路框圖。注意到,這些附圖僅是概要圖,它們不按比例繪圖。為了顯眼和方便起見,圖中的部分尺寸和結(jié)構(gòu)可能做了放大或縮小。在不同實(shí)施例中,數(shù)字后面的字母后綴表示同一類結(jié)構(gòu)的不同實(shí)例;相同的數(shù)字前綴表示相同或類似的結(jié)構(gòu)?!?”表示“和”或“或”的關(guān)系。在本發(fā)明中,“查找表”和“查找表電路”均被縮寫為lut。根據(jù)上下文,lut代表查找表或查找表電路。具體實(shí)施方式圖2a是一種典型的、基于封裝內(nèi)查找表(in-packagelut,簡(jiǎn)稱為ip-lut)的處理器(ip-lut處理器)300的簡(jiǎn)要電路框圖;圖2b是該ip-lut處理器300的透視圖。ip-lut處理器300有一個(gè)或多個(gè)輸入150、以及一個(gè)或多個(gè)輸出190。ip-lut處理器300含有一邏輯芯片100和一存儲(chǔ)芯片200。邏輯芯片100形成在第一襯底100s上,它含有至少一算術(shù)邏輯電路(alc)180,故邏輯芯片100又被稱為alc芯片。存儲(chǔ)芯片200形成在第二襯底200s上,它含有至少一查找表電路(lut)170,故存儲(chǔ)芯片200又被稱為lut芯片。alc芯片100和lut芯片200位于同一封裝中,它們之間通過芯片間連接160電耦合。由于與alc180位于同一封裝中,lut170又被稱為封裝內(nèi)查找表電路(ip-lut)。ip-lut170用于存儲(chǔ)函數(shù)相關(guān)數(shù)據(jù),alc180對(duì)函數(shù)相關(guān)數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。在本實(shí)施例中,lut芯片200堆疊在alc芯片100上方,ip-lut170與alc180至少部分重疊。由于它們處于不同芯片中,在說明書附圖中,ip-lut170用虛線表示,alc180用實(shí)線表示。ip-lut170可采用ram和/或rom。ram包括sram和dram等。rom包括maskrom、otp、eprom、eeprom和閃存等。閃存可以分為nor或nand,nand還可以分為橫向nand和縱向nand(verticalnand)。另一方面,alc180可以含有加法器、乘法器、和/或乘加器,它可以用于實(shí)現(xiàn)整數(shù)運(yùn)算、定點(diǎn)數(shù)運(yùn)算、或浮點(diǎn)數(shù)運(yùn)算。ip-lut處理器300采用“基于存儲(chǔ)的計(jì)算”(mbc),它主要通過查表來實(shí)現(xiàn)計(jì)算。ip-lut處理器300中ip-lut170的存儲(chǔ)容量遠(yuǎn)高于傳統(tǒng)處理器00x的lut200x。雖然大多數(shù)mbc仍需要進(jìn)行算術(shù)運(yùn)算,通過使用較大的ip-lut170作為計(jì)算的出發(fā)點(diǎn),mbc僅需使用較少的多項(xiàng)式展開(如泰勒級(jí)數(shù)展開)。在mbc中,大部分計(jì)算通過ip-lut170完成,少部分計(jì)算通過alc180實(shí)現(xiàn)。圖3a-圖3c是三種ip-lut處理器300的截面圖。它們均為一種多芯片封裝(multi-chippackage,簡(jiǎn)稱為mcp)。其中,圖3a中的ip-lut處理器300含有兩個(gè)分離芯片:alc芯片100和lut芯片200。芯片100、200堆疊在封裝襯底110上并位于同一封裝130中。微焊點(diǎn)(micro-bump)116為芯片100、200提供電耦合,它起芯片間連接160的作用。在本實(shí)施例中,lut芯片200堆疊在alc芯片100上;同時(shí),lut芯片200被翻轉(zhuǎn),它與alc芯片100面對(duì)面地堆疊在一起。在其它實(shí)施例中,alc芯片100也可堆疊在lut芯片200上,同時(shí)也可不被翻轉(zhuǎn)。圖3b中的ip-lut處理器300含有alc芯片100、lut芯片200和硅插板(interposer)120。硅插板120含有多個(gè)穿透硅片通道(tsv)118,它使alc芯片100和lut芯片200之間的電耦合更為容易,設(shè)計(jì)時(shí)有更多自由度,同時(shí)散熱更為良好。此實(shí)施例還含有多個(gè)微焊點(diǎn)116,它與tsv118構(gòu)成芯片間連接160。圖3c中的ip-lut處理器300含有一alc芯片100和至少兩個(gè)lut芯片200a、200b。這些芯片100、200a和200b是分離的,并位于同一封裝130中。其中,lut芯片200b堆疊在lut芯片200a之上,lut芯片200a又堆疊在alc芯片100之上。芯片100、200a、200b之間通過tsv118和微焊點(diǎn)116耦合。很明顯,圖3c比圖3a具有更大的ip-lut170。類似地,在此實(shí)施例中,tsv118和微焊點(diǎn)116構(gòu)成芯片間連接160。這種將alc芯片100和lut芯片200相互堆疊在同一封裝的集成方式被稱為2.5維集成。2.5維集成能提高計(jì)算密度和計(jì)算復(fù)雜度。采用傳統(tǒng)的二維集成,傳統(tǒng)處理器00x的面積是lut200x和alu100x之和。采用2.5維集成后,lut從邊上移到頂上,ip-lut處理器300的面積變小,計(jì)算密度加強(qiáng)。此外,傳統(tǒng)處理器00x中l(wèi)ut的總?cè)萘啃∮?00kb,而ip-lut處理器300中l(wèi)ut的總?cè)萘靠蛇_(dá)到100gb;單個(gè)ip-lut處理器300就可支持上萬個(gè)內(nèi)置函數(shù)(包括多種復(fù)雜數(shù)學(xué)函數(shù)),遠(yuǎn)多于傳統(tǒng)處理器00x。此外,2.5維集成還能提高ip-lut170和alc180之間的數(shù)據(jù)傳輸帶寬。由于ip-lut170和alc180距離較近且芯片間連接160數(shù)量較多,它們之間的數(shù)據(jù)傳輸帶寬遠(yuǎn)高于傳統(tǒng)處理器00x中l(wèi)ut200x和alu100x之間的帶寬。最后,2.5維集成對(duì)制造工藝角度也有益處。由于alc芯片100和lut芯片200為不同芯片,構(gòu)成alc芯片100的邏輯晶體管和構(gòu)成lut芯片200的存儲(chǔ)晶體管分別形成在不同襯底(100s、200s)上,它們的制造工藝可分別優(yōu)化。圖4a表示一種實(shí)現(xiàn)一數(shù)學(xué)函數(shù)y=f(x)的典型ip-lut處理器300。其邏輯芯片100含有一預(yù)處理電路180r和至少一后處理電路180t,其存儲(chǔ)芯片200含有至少一ip-lut170,它存儲(chǔ)該數(shù)學(xué)函數(shù)的相關(guān)數(shù)據(jù)。預(yù)處理電路180r將函數(shù)的自變量x150轉(zhuǎn)換為ip-lut170的地址a160a;后處理器180t將從ip-lut170中讀出的數(shù)據(jù)d160d轉(zhuǎn)換為函數(shù)值y的輸出190。在該實(shí)施例中,預(yù)處理電路180r和后處理電路180t形成在邏輯芯片100中。在其他實(shí)施例中,至少一部分預(yù)處理電路180r和/或后處理電路180t也可以形成在存儲(chǔ)芯片200中。自變量x的一部分r可以在被預(yù)處理電路180r處理之前送至后處理電路180t作為后端處理的一個(gè)輸入,也可以在被預(yù)處理電路180r處理之后(即地址a的一部分)送至后處理器180t。圖4b表示一種采用function-by-lut法實(shí)現(xiàn)單精度數(shù)學(xué)函數(shù)y=f(x)的ip-lut處理器300。ip-lut170含有兩個(gè)lut170q、170r,其容量均為2mb(16位輸入、32位輸出),并分別存儲(chǔ)函數(shù)值d1=f(a)和函數(shù)的一階導(dǎo)數(shù)值d2=f’(a)。alc180含有預(yù)處理電路180r(主要含有一地址緩沖區(qū))和后處理電路180t(含有一加法器180a和一乘法器180m)。芯片間連接160在ip-lut170和alc180之間傳輸數(shù)據(jù)。在計(jì)算函數(shù)時(shí),該ip-lut處理器300的輸入為32位自變量x150(x31…x0);預(yù)處理電路180r將其前16位(x31…x16)提取出來作為lut170q、170r的16位地址輸入a,再將其后16位(x15…x0)提取出來作為16位地址余量r送到后處理電路180t;后處理電路180t通過多項(xiàng)式插值計(jì)算32位輸出值y190。在本實(shí)施例中,多項(xiàng)式插值是一階泰勒級(jí)數(shù):y(x)=d1+d2*r=f(a)+f’(a)*r。很明顯,采用更高階的多項(xiàng)式插值(如更高階的泰勒級(jí)數(shù))能進(jìn)一步提高計(jì)算精度。在實(shí)現(xiàn)內(nèi)置函數(shù)時(shí),將lut和多項(xiàng)式插值結(jié)合起來可以用較小的lut實(shí)現(xiàn)較高的計(jì)算精度。假如僅用lut(無多項(xiàng)式插值)來實(shí)現(xiàn)上述的單精度函數(shù)(32位輸入、32位輸出),lut的容量需要達(dá)到232*32=128gb。用這么大的lut來實(shí)現(xiàn)一個(gè)函數(shù)是不現(xiàn)實(shí)的。通過多項(xiàng)式插值,lut的容量可極大地降低。在上述實(shí)施例中,在采用一階泰勒級(jí)數(shù)后,lut只需4mb(函數(shù)值lut需要2mb、一階導(dǎo)數(shù)值lut需要2mb)。這比僅用lut的方式(128gb)少很多。圖4c列出實(shí)現(xiàn)各種精度數(shù)學(xué)函數(shù)所需的查找表容量和泰勒級(jí)數(shù)展開項(xiàng)。該實(shí)施例采用定義域縮小法并將查找表的容量限制在mb級(jí)(參考harrison等所著《thecomputationoftranscendentalfunctionsontheia-64architecture》,inteltechnicaljournal,q4,1999年)。半精度(16位)計(jì)算使用的ip-lut170容量為216×16=1mb,這時(shí)不需要計(jì)算任何泰勒級(jí)數(shù);單精度(32位)計(jì)算使用的ip-lut170容量為216×32×2=4mb,這時(shí)需要計(jì)算1階泰勒級(jí)數(shù);雙精度(64位)計(jì)算使用的ip-lut170容量為216×64×3=12mb,這時(shí)需要計(jì)算2階泰勒級(jí)數(shù);擴(kuò)展雙精度(80位)計(jì)算使用的ip-lut170的容量為216×80×4=20mb,這時(shí)需要計(jì)算3階泰勒級(jí)數(shù)。作為一個(gè)比較,為實(shí)現(xiàn)同樣的雙精度(64位)計(jì)算,英特爾的itanium處理器需要計(jì)算多達(dá)22階泰勒級(jí)數(shù)。除了初等函數(shù)以外,圖4a-圖4b中的實(shí)施例還能實(shí)現(xiàn)各種高等函數(shù),如特殊函數(shù)等。特殊函數(shù)在數(shù)學(xué)分析、泛函分析、物理研究、工程應(yīng)用中有著舉足輕重的地位。許多特殊函數(shù)是微分方程的解或基本函數(shù)的積分。特殊函數(shù)的例子包括伽瑪函數(shù)、貝塔函數(shù)、貝塞爾函數(shù)、勒讓德函數(shù)、橢圓函數(shù)、lame函數(shù)、mathieu函數(shù)、黎曼澤塔函數(shù)、菲涅耳積分等。ip-lut處理器300的出現(xiàn)將簡(jiǎn)化特殊函數(shù)的計(jì)算,助推其在科學(xué)計(jì)算中的應(yīng)用。圖5表示一種采用function-by-lut法實(shí)現(xiàn)一復(fù)合函數(shù)的ip-lut處理器300,它用于實(shí)現(xiàn)復(fù)合函數(shù)y=exp[k*log(x)]=xk。其ip-lut170含有兩個(gè)lut170s、170t,它們分別存儲(chǔ)log()和exp()的函數(shù)值。其alc180含有一乘法器180m。其芯片間連接包括160s和160t等。在運(yùn)算過程中,輸入變量x被用作lut170s的地址150;lut170s的輸出log(x)160s在乘法器180m處與冪參數(shù)k相乘;乘積160t作為地址送到lut170t中;lut170t的輸出190為y=xk。應(yīng)該了解,在不遠(yuǎn)離本發(fā)明的精神和范圍的前提下,可以對(duì)本發(fā)明的形式和細(xì)節(jié)進(jìn)行改動(dòng),這并不妨礙它們應(yīng)用本發(fā)明的精神。例如說,處理器可以是中央處理器(cpu)、數(shù)字信號(hào)處理器(dsp)、圖像處理器(gpu)、網(wǎng)絡(luò)安全處理器、加密/解密處理器、編碼/解碼處理器、神經(jīng)網(wǎng)絡(luò)處理器、人工智能(ai)處理器等。這些處理器可以用在消費(fèi)電子產(chǎn)品(如個(gè)人電腦、游戲機(jī)、智能手機(jī)等)中,也能用在工作站和服務(wù)器中。因此,除了根據(jù)附加的權(quán)利要求書的精神,本發(fā)明不應(yīng)受到任何限制。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12