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