本發(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ù)運算和查找表的組合來實現(xiàn)。實現(xiàn)內(nèi)置函數(shù)的例子很多,例如:美國專利us5,954,787(發(fā)明人:eun;授權(quán)日:1999年9月21日)披露了一種利用查找表實現(xiàn)正弦/余弦(sine/cosine)函數(shù)的方法;美國專利us9,207,910(發(fā)明人:azadet;授權(quán)日:2015年12月8日)披露了一種利用查找表實現(xiàn)冪函數(shù)的方法。圖1a具體描述了內(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è)的人士都知道,存儲晶體管和邏輯晶體管的性能指標(biāo)有很大不同。比如說,存儲晶體管更注重降低漏電流,而邏輯晶體管更注重增加導(dǎo)通電流。在同一襯底上00s的同一表面上同時形成高性能的存儲晶體管和邏輯晶體管對于制造工藝來說是一種挑戰(zhàn)。二維集成還會限制計算密度和計算復(fù)雜度的進一步發(fā)展。計算正向更高的計算密度和更大的計算復(fù)雜度發(fā)展。計算密度是指單位芯片面積的計算能力(如每秒的浮點數(shù)運算次數(shù)),它是平行計算的一個重要指標(biāo)。計算復(fù)雜度是指內(nèi)置函數(shù)的種類和數(shù)量,它是科學(xué)計算的一個重要指標(biāo)。由于采用二維集成,lut200x的存在將增加傳統(tǒng)處理器00x的芯片面積,降低其計算密度,這對平行計算不利。同時,在傳統(tǒng)處理器00x的設(shè)計過程中,由于alu100x是傳統(tǒng)處理器00x的核心部件并占用了大部分芯片面積,故lut200x能利用的芯片面積有限。因此,傳統(tǒng)處理器00x僅支持少量內(nèi)置函數(shù)。圖1b列出英特爾公司的itanium處理器(ia-64)能實現(xiàn)的所有內(nèi)置超越函數(shù)(參考harrison等所著《thecomputationoftranscendentalfunctionsontheia-64architecture》,inteltechnicaljournal,q4,1999年)。ia-64處理器共支持7種超越函數(shù),每種超越函數(shù)使用了相對較小的查找表(從0到24kb),并需要進行相對較多的泰勒級數(shù)(5階到22階)計算?;趌bc的處理器00x有一個缺陷。由于實現(xiàn)不同內(nèi)置函數(shù)使用的邏輯電路完全不同,處理器00x是完全定制的,不能通用。換句話說,一旦處理器00x的設(shè)計完成,它只能實現(xiàn)一套預(yù)先定義的內(nèi)置函數(shù)。很明顯,用戶希望用同一硬件實現(xiàn)不同計算,即實現(xiàn)計算的編程。這可以從現(xiàn)場可編程門陣列(fpga)中得到啟發(fā)。fpga能實現(xiàn)邏輯的編程。美國專利4,870,302(發(fā)明人:freeman;授權(quán)日:1989年9月26日)披露了一種fpga。它含有多個可編程邏輯單元(configurablelogicelement)和可編程連接(configurableinterconnect)。目前,fpga只能實現(xiàn)邏輯的編程,即同一硬件在設(shè)置信號控制下選擇性地實現(xiàn)不同的邏輯。遺憾的是,fpga尚無法實現(xiàn)計算的編程,即同一硬件在設(shè)置信號控制下選擇性地實現(xiàn)不同的計算(即實現(xiàn)不同的函數(shù))。技術(shù)實現(xiàn)要素:本發(fā)明的主要目的是實現(xiàn)計算的編程。本發(fā)明的另一目的是實現(xiàn)計算的現(xiàn)場編程。本發(fā)明的另一目的是實現(xiàn)可重構(gòu)計算。本發(fā)明的主要目的是實現(xiàn)多變量函數(shù)的編程。本發(fā)明的另一目的是提供一種能實現(xiàn)更高計算復(fù)雜度的可編程處理器。本發(fā)明的另一目的是提供一種能實現(xiàn)更高計算密度的可編程處理器。本發(fā)明的另一目的是提供一種計算能力更靈活、更強大的現(xiàn)場可編程門陣列。為了實現(xiàn)這些以及別的目的,本發(fā)明提出一種基于背面查找表(backsidelut,簡稱為bs-lut)的可編程處理器(bs-lut可編程處理器)。bs-lut可編程處理器含有至少一邏輯電路和一可編程存儲電路。其中,邏輯電路含有至少一算術(shù)邏輯電路(arithmeticlogiccircuit,簡稱為alc);可編程存儲電路含有至少一查找表電路(look-uptablecircuit,簡稱為lut)。lut存儲一函數(shù)的相關(guān)數(shù)據(jù)(如該函數(shù)的一查找表),alc對該函數(shù)相關(guān)數(shù)據(jù)進行算術(shù)運算。alc和lut分別形成在處理器襯底的正反兩面,它們之間通過穿透硅片通道(tsv)進行電耦合。由于位于襯底背面,lut又被稱為背面查找表電路(bs-lut)。此外,由于bs-lut是可編程的,因此可根據(jù)用戶需求在bs-lut中寫入所需函數(shù)的相關(guān)數(shù)據(jù),以實現(xiàn)計算的編程。bs-lut可編程處理器采用“基于存儲的計算”(memory-basedcomputation,簡稱為mbc),它主要通過查表來實現(xiàn)計算。bs-lut可編程處理器中bs-lut的存儲容量遠高于傳統(tǒng)處理器的lut。雖然大多數(shù)mbc仍需要進行算術(shù)運算,通過使用較大的bs-lut作為計算的出發(fā)點,mbc僅需使用較少的多項式展開(如泰勒級數(shù)展開)。在mbc中,大部分計算通過bs-lut完成,少部分計算通過alc實現(xiàn)。bs-lut可編程處理器的使用分兩個階段:設(shè)置階段和計算階段。在設(shè)置階段,在bs-lut中寫入所需函數(shù)的相關(guān)數(shù)據(jù);在計算階段,通過在bs-lut中查找函數(shù)相關(guān)數(shù)據(jù)來實現(xiàn)計算。bs-lut可編程處理器能實現(xiàn)現(xiàn)場編程和可重構(gòu)計算。對于現(xiàn)場編程,可在使用現(xiàn)場將所需函數(shù)的相關(guān)數(shù)據(jù)寫入bs-lut,則bs-lut可編程處理器可在使用現(xiàn)場實現(xiàn)所需的函數(shù)。對于可重構(gòu)計算,不同時段在bs-lut中寫入不同函數(shù)的不同相關(guān)數(shù)據(jù)(如不同函數(shù)的查找表),則bs-lut可編程處理器可實現(xiàn)不同函數(shù)。例如,在第一時段,bs-lut存儲第一函數(shù)的相關(guān)數(shù)據(jù);在第二時段,bs-lut存儲第二函數(shù)的相關(guān)數(shù)據(jù)。這種將alc和lut形成襯底正反兩面的集成方式被稱為雙面集成。雙面集成能提高計算密度和計算復(fù)雜度。采用傳統(tǒng)的二維集成,傳統(tǒng)處理器00x的面積是alu100x和lut200x之和。采用雙面集成后,lut從邊上移到襯底背面,bs-lut處理器變小,計算密度加強。此外,傳統(tǒng)處理器00x中l(wèi)ut200x的總?cè)萘啃∮?00kb,而bs-lut處理器中bs-lut的總?cè)萘靠蛇_到100gb;單個bs-lut處理器就可支持上萬個內(nèi)置函數(shù)(包括多種復(fù)雜數(shù)學(xué)函數(shù)),遠多于傳統(tǒng)處理器00x。此外,由于構(gòu)成alc的邏輯晶體管和構(gòu)成lut的存儲晶體管分別形成在襯底的不同表面上,它們的制造工藝可分別優(yōu)化。為了進一步提高可編程度,本發(fā)明還提出一種基于bs-lut的可編程門陣列(bs-lut可編程門陣列)。它含有多個可編程計算單元、多個可編程邏輯單元和多個可編程連接。可編程計算單元含有一bs-lut,該bs-lut含有至少一可編程存儲陣列,它存儲一函數(shù)的相關(guān)數(shù)據(jù)。由于bs-lut是可編程的,因此可以根據(jù)用戶需求,在bs-lut中寫入所需函數(shù)的相關(guān)數(shù)據(jù),以實現(xiàn)計算的編程。bs-lut可編程門陣列中的可編程邏輯單元和可編程連接與傳統(tǒng)fpga中的可編程邏輯單元和可編程連接類似。在計算過程中,非算術(shù)函數(shù)首先被分解為基本非算術(shù)函數(shù)的組合。然后針對每個基本非算術(shù)函數(shù)設(shè)置相應(yīng)的可編程計算單元,使其實現(xiàn)相應(yīng)的基本非算術(shù)函數(shù)。最后,設(shè)置可編程邏輯單元和可編程連接,以實現(xiàn)所需的非算術(shù)函數(shù)。相應(yīng)地,本發(fā)明提出一種可編程處理器(300),其特征在于含有:一半導(dǎo)體襯底(0s),該半導(dǎo)體襯底(0s)含有一正面(0f)和一背面(0b);一位于該襯底背面(0b)的查找表電路(170),可根據(jù)用戶需求在該查找表電路(170)中寫入一函數(shù)的相關(guān)數(shù)據(jù);一位于該襯底正面(0f)的算術(shù)邏輯電路(180),該算術(shù)邏輯電路(180)對該查找表(170)中讀出的數(shù)據(jù)進行算術(shù)運算;多個穿透該半導(dǎo)體襯底(0s)、并將該查找表(170)和該算術(shù)邏輯電路(180)電耦合的穿透硅片通道(tsv)(160)。附圖說明圖1a是一傳統(tǒng)處理器的透視圖(現(xiàn)有技術(shù));圖1b列出英特爾itanium(ia-64)處理器支持的所有超越函數(shù)(現(xiàn)有技術(shù))。圖2a是一種典型bs-lut可編程處理器的簡要電路框圖;圖2b是其正面透視圖;圖2c是其背面透視圖。圖3a是一種bs-lut可編程處理器的截面圖;圖3b是其正面電路布局圖;圖3c是其背面電路布局圖。圖4a是一種典型可編程計算單元之簡要電路框圖;圖4b是一種實現(xiàn)一單精度函數(shù)的可編程計算單元之電路框圖;圖4c列出實現(xiàn)各種精度函數(shù)所需的查找表容量和泰勒級數(shù)展開項。圖5是一種bs-lut可編程門陣列的布局圖。圖6是圖5中bs-lut可編程門陣列實現(xiàn)一多變量函數(shù)e=a.sin(b)+c.cos(d)的設(shè)置。注意到,這些附圖僅是概要圖,它們不按比例繪圖。為了顯眼和方便起見,圖中的部分尺寸和結(jié)構(gòu)可能做了放大或縮小。在不同實施例中,數(shù)字后面的字母后綴表示同一類結(jié)構(gòu)的不同實例;相同的數(shù)字前綴表示相同或類似的結(jié)構(gòu)?!?”表示“和”或“或”的關(guān)系。在本發(fā)明中,“查找表”和“查找表電路”均被縮寫為lut。根據(jù)上下文,lut代表查找表或查找表電路。具體實施方式圖2a是一種典型的、基于背面查找表(backsidelut,簡稱為bs-lut)的可編程處理器(bs-lut可編程處理器)300的簡要電路框圖;圖2b是該bs-lut可編程處理器300的透視圖。bs-lut可編程處理器300有一個或多個輸入150、以及一個或多個輸出190。bs-lut可編程處理器300含有至少一邏輯電路100和一可編程存儲電路200。其中,邏輯電路100含有至少一算術(shù)邏輯電路(alc)170;可編程存儲電路含有至少一查找表電路(lut)170。lut170存儲一函數(shù)的相關(guān)數(shù)據(jù)(如該函數(shù)的一查找表),alc180對該函數(shù)相關(guān)數(shù)據(jù)進行算術(shù)運算。alc180和lut170分別形成在處理器襯底0s的正反兩面0f、0b,它們之間通過穿透硅片通道(tsv)160進行電耦合。由于位于襯底背面0b,lut又被稱為背面查找表電路(bs-lut)170。此外,由于bs-lut170是可編程的,因此可根據(jù)用戶需求在bs-lut170中寫入所需函數(shù)的相關(guān)數(shù)據(jù),以實現(xiàn)計算的編程。在說明書附圖中,由于它們處于襯底0s的不同表面0f、0b上,bs-lut170用虛線表示,alc180用實線表示。圖3a是bs-lut可編程處理器300的截面圖;圖3b是其正面電路布局圖;圖3c是其背面電路布局圖。bs-lut可編程處理器300含有多個穿透襯底0s的tsv160a-160f…(圖3a)。bs-lut可編程處理器300的正面0f含有alc180,包括alc構(gòu)件180a-180d…(圖3b)。這些alc構(gòu)件180a-180d分別與tsv160a-160d耦合。bs-lut可編程處理器300的背面0b含有bs-lut170,包括可編程存儲陣列170a-170f…(圖3c)。在本說明書中,存儲陣列是所有共享了至少一條地址線的存儲元之集合(包括其周邊電路)??删幊檀鎯﹃嚵?70a-170f分別與tsv160a-160d耦合。alc180通過tsv160a-160f從bs-lut170中讀取數(shù)據(jù),并進行算術(shù)運算。bs-lut可編程處理器300采用“基于存儲的計算”(mbc),它主要通過查表來實現(xiàn)計算。bs-lut可編程處理器300中bs-lut170的存儲容量遠高于傳統(tǒng)處理器00的lut200x。雖然大多數(shù)mbc仍需要進行算術(shù)運算,通過使用較大的bs-lut170作為計算的出發(fā)點,mbc僅需使用較少的多項式展開(如泰勒級數(shù)展開)。在mbc中,大部分計算通過bs-lut170完成,少部分計算通過alc180實現(xiàn)。bs-lut可編程處理器300的使用分兩個階段:設(shè)置階段和計算階段。在設(shè)置階段,在bs-lut170中寫入所需函數(shù)的相關(guān)數(shù)據(jù);在計算階段,通過在bs-lut170中查找函數(shù)相關(guān)數(shù)據(jù)來實現(xiàn)計算。bs-lut可編程處理器300能實現(xiàn)現(xiàn)場編程和可重構(gòu)計算。對于現(xiàn)場編程,可在使用現(xiàn)場將所需函數(shù)的相關(guān)數(shù)據(jù)寫入bs-lut170,則bs-lut可編程處理器300可在使用現(xiàn)場實現(xiàn)所需的函數(shù)。對于可重構(gòu)計算,不同時段在bs-lut170中寫入不同函數(shù)的不同相關(guān)數(shù)據(jù)(如不同函數(shù)的查找表),則bs-lut可編程處理器300可實現(xiàn)不同函數(shù)。例如,在第一時段,bs-lut170存儲第一函數(shù)的相關(guān)數(shù)據(jù);在第二時段,bs-lut170存儲第二函數(shù)的相關(guān)數(shù)據(jù)。bs-lut170可用ram和/或rom。ram包括sram和dram等。rom包括otp、eprom、eeprom和閃存等。閃存可以分為nor或nand,還可以分為橫向閃存和縱向閃存(verticalnand)。對于可重構(gòu)計算,bs-lut170采用可重復(fù)編程存儲器。對于現(xiàn)場編程,除了可重復(fù)編程存儲器以外,bs-lut170還可以采用otp。另一方面,alc180可以含有加法器、乘法器、和/或乘加器,它可以用于實現(xiàn)整數(shù)運算、定點數(shù)運算、或浮點數(shù)運算。這種將alc180和lut170形成襯底0s正反兩面0f、0b的集成方式被稱為雙面集成。雙面集成能提高計算密度和計算復(fù)雜度。采用傳統(tǒng)的二維集成,傳統(tǒng)處理器00x的面積是lut200x和alu100x之和。采用雙面集成后,lut從邊上移到襯底背面0b,bs-lut處理器300的面積變小,計算密度加強。此外,傳統(tǒng)處理器00x中l(wèi)ut的總?cè)萘啃∮?00kb,而bs-lut處理器300中l(wèi)ut的總?cè)萘靠蛇_到100gb;單個bs-lut處理器300就可支持上萬個內(nèi)置函數(shù)(包括多種復(fù)雜數(shù)學(xué)函數(shù)),遠多于傳統(tǒng)處理器00x。此外,雙面集成還能提高bs-lut170和alc180之間的數(shù)據(jù)傳輸帶寬。由于bs-lut170和alc180距離較近且tsv160數(shù)量較多,它們之間的數(shù)據(jù)傳輸帶寬遠高于傳統(tǒng)處理器00x中l(wèi)ut200x和alu100x之間的帶寬。最后,雙面集成對制造工藝角度也有益處。由于構(gòu)成alc180的邏輯晶體管和構(gòu)成lut170的存儲晶體管分別形成在襯底0s的不同表面0f、0b上,它們的制造工藝可分別優(yōu)化。為了進一步提高可編程度,本發(fā)明還提出一種基于bs-lut的可編程門陣列(bs-lut可編程門陣列)700(圖4a-圖6),它含有多個可編程計算單元400aa…、多個可編程邏輯單元500aa…和多個可編程連接610-650…。圖4a表示一種典型的可編程計算單元400,它含有一預(yù)處理電路180r、一后處理電路180t和至少一bs-lut170。bs-lut170含有至少一可編程存儲陣列,它存儲一函數(shù)的相關(guān)數(shù)據(jù)(如該函數(shù)的查找表)。由于bs-lut170是可編程的,因此可根據(jù)用戶需求在bs-lut170中寫入所需函數(shù)的相關(guān)數(shù)據(jù),以實現(xiàn)計算的編程。預(yù)處理電路180r將函數(shù)的自變量x150轉(zhuǎn)換為bs-lut170的地址a160a;后處理器180t將從bs-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表示一種實現(xiàn)一單精度函數(shù)y=f(x)的可編程計算單元400。bs-lut170含有兩個lut170q、170r,其容量均為2mb(16位輸入、32位輸出),并分別存儲函數(shù)值d1=f(a)和函數(shù)的一階導(dǎo)數(shù)值d2=f’(a)。alc180含有預(yù)處理電路180r(主要含有一地址緩沖區(qū))和后處理電路180t(含有一加法器180a和一乘法器180m)。tsv160在bs-lut170和alc180之間傳輸數(shù)據(jù)。在計算函數(shù)時,該bs-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ù)所需的查找表容量和泰勒級數(shù)展開項。該實施例采用定義域縮小法并將查找表的容量限制在mb級(參考harrison等所著《thecomputationoftranscendentalfunctionsontheia-64architecture》,inteltechnicaljournal,q4,1999年)。半精度(16位)計算使用的bs-lut170容量為216×16=1mb,這時不需要計算任何泰勒級數(shù);單精度(32位)計算使用的bs-lut170容量為216×32×2=4mb,這時需要計算1階泰勒級數(shù);雙精度(64位)計算使用的bs-lut170容量為216×64×3=12mb,這時需要計算2階泰勒級數(shù);擴展雙精度(80位)計算使用的bs-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ù)、菲涅耳積分等。可編程計算單元400的出現(xiàn)將簡化特殊函數(shù)的計算,助推其在科學(xué)計算中的應(yīng)用。圖5表示一種bs-lut可編程門陣列700。它含有規(guī)則排列的可編程模塊700a和可編程模塊700b等。每個可編程模塊(如700a)含有多個可編程計算單元(如400aa-400ad)和可編程邏輯單元(如500aa-500ad)。在可編程計算單元(如400aa-400ad)和可編程邏輯單元(如500aa-500ad)之間含有可編程信道620、640;在可編程模塊700a和可編程模塊700b之間,也含有可編程信道610、630、650。可編程信道610-650含有多個可編程連接。對于熟悉本領(lǐng)域的專業(yè)人士來說,除了可編程信道以外,還可以采用門海(sea-of-gates)等設(shè)計??删幊踢壿媶卧涂删幊踢B接類似傳統(tǒng)fpga中的可編程邏輯單元和可編程連接(參見美國專利4,870,302)。比如說,可編程邏輯單元可以選擇性地實現(xiàn)移位、邏輯非、and(邏輯與)、or(邏輯和)、nor(和非)、nand(與非)、xor(異或)、+(加法)、-(減法)等邏輯操作;可編程連接可以選擇性地實現(xiàn)互連線的連接、斷開等功能。在一些實施例中,部分可編程邏輯單元甚至可以實現(xiàn)×(乘法)。圖6表示該bs-lut可編程門陣列700的一種具體實現(xiàn),它用于實現(xiàn)一多變量非算術(shù)函數(shù):e=a.sin(b)+c.cos(d)。在可編程信道610-650中可編程連接采用與美國專利4,870,302一致的表達方式:交叉點有圓點的可編程連接表示交叉線相連,交叉點無圓點的可編程連接表示交叉線不相連,斷開的可編程連接表示斷開的互連線被分為兩個互不相連的互連線段。在該實施例中,可編程計算單元400aa被設(shè)置為log(),其計算結(jié)果log(a)被送到可編程邏輯單元500aa的第一輸入。可編程計算單元400ab被設(shè)置為log[sin()],其計算結(jié)果log[sin(b)]被送到可編程邏輯單元500aa的第二輸入??删幊踢壿媶卧?00aa被設(shè)置為“加法”,其計算結(jié)果log(a)+log[sin(b)]被送到可編程計算單元400ba??删幊逃嬎銌卧?00ba被設(shè)置為exp(),其計算結(jié)果exp{log(a)+log[sin(b)]}=a.sin(b)被送到可編程邏輯單元500ba的第一輸入。類似地,通過適當(dāng)?shù)脑O(shè)置,可編程計算單元400ac、400ad,可編程邏輯單元500ac,可編程計算單元400bc的結(jié)果c.cos(d)被送到可編程邏輯單元500ba的第二輸入。可編程邏輯單元500ba被設(shè)置為“加法”,a.sin(b)和c.cos(d)在此相加,最終結(jié)果送到輸出e。很明顯,通過改變設(shè)置,bs-lut可編程門陣列700還可以實現(xiàn)其它非算術(shù)函數(shù)。bs-lut可編程門陣列700尤其適合實現(xiàn)對多變量函數(shù)的編程。如果僅采用lut,則上述4變量函數(shù)e=a.sin(b)+c.cos(d)需要的極大lut:即使僅采用半精度,就需要216×216×216×216×16=256eb的lut。很明顯,用這么多l(xiāng)ut來實現(xiàn)一4變量函數(shù)是不現(xiàn)實的。采用bs-lut可編程門陣列700后,僅需要8mb的lut(8個可編程計算單元,每個計算單元含1mb的lut)就可實現(xiàn)該4變量函數(shù)。對于熟悉本專業(yè)的人士來說,bs-lut可編程門陣列700可以推廣到其它多變量函數(shù)中。應(yīng)該了解,在不遠離本發(fā)明的精神和范圍的前提下,可以對本發(fā)明的形式和細節(jié)進行改動,這并不妨礙它們應(yīng)用本發(fā)明的精神。例如說,處理器可以是中央處理器(cpu)、數(shù)字信號處理器(dsp)、圖像處理器(gpu)、網(wǎng)絡(luò)安全處理器、加密/解密處理器、編碼/解碼處理器、神經(jīng)網(wǎng)絡(luò)處理器、人工智能(ai)處理器等。因此,除了根據(jù)附加的權(quán)利要求書的精神,本發(fā)明不應(yīng)受到任何限制。當(dāng)前第1頁12當(dāng)前第1頁12