用于估算超越函數(shù)的數(shù)學(xué)電路的制作方法
【專利摘要】描述了用于計(jì)算超越函數(shù)的估算的數(shù)學(xué)電路。查找表存儲(chǔ)電路在其中存儲(chǔ)若干組二進(jìn)制值,其中每組值表示將函數(shù)估算至高精度的第一多項(xiàng)式的相應(yīng)系數(shù)。第一計(jì)算電路使用來自每組值的二進(jìn)制值求值第一多項(xiàng)式。第二計(jì)算電路使用也從多組值之一提取的二進(jìn)制值的部分,求值將函數(shù)估算至低精度的第二多項(xiàng)式。也描述和要求保護(hù)了其它實(shí)施例。
【專利說明】用于估算超越函數(shù)的數(shù)學(xué)電路
[0001]本公開涉及微處理器和其它處理設(shè)備,尤其涉及它們對非算術(shù)或超越函數(shù)的計(jì)算。還描述了其它實(shí)施例。
【背景技術(shù)】
[0002]處理設(shè)備一般具有內(nèi)建硬件邏輯電路,該內(nèi)建硬件邏輯電路不僅能計(jì)算基本算術(shù)函數(shù)(比如加、減和乘),又能計(jì)算非算術(shù)函數(shù),例如倒數(shù)、平方根和冪。后者也被稱為超越函數(shù)。由于它們固有的性質(zhì),超越函數(shù)無法以高精度直接計(jì)算出,而是必須被估算至要求的精度,這通常是通過計(jì)算足夠高階的多項(xiàng)式來實(shí)現(xiàn)的。計(jì)算超越函數(shù)所要求的電路復(fù)雜性與所需的精度(位數(shù))成比例,并在大量生產(chǎn)的微處理器的總成本中可扮演重要角色,例如在消費(fèi)者電子設(shè)備(例如個(gè)人計(jì)算機(jī)、視頻游戲機(jī)、智能電話)以及工程和科學(xué)工作站和服務(wù)器機(jī)器中找到的那些微處理器。結(jié)果,旨在不同應(yīng)用的微處理器設(shè)計(jì)(以及它們關(guān)聯(lián)的指令集)對于同一超越函數(shù)可支持不同的精度。
[0003]包含針對第一微處理器族定義的第一超越函數(shù)指令的應(yīng)用軟件可能無法在另一、第二微處理器族上正確地運(yùn)行。甚至就足夠數(shù)量的位而言,當(dāng)最低精度可在同一超越函數(shù)(其針對第二族定義)的指令中獲得時(shí),也是如此。這可能是由于軟件不僅需要指令結(jié)果中的最低精度,而且要求結(jié)果的足夠數(shù)量位也相同。使軟件兼容的一種可能解決方案是將硬件電路增加到第二微處理器族中,該硬件電路是計(jì)算第一超越函數(shù)指令所需的。
[0004]附圖簡述
[0005]本發(fā)明的實(shí)施方式在各附圖中是作為實(shí)施例而非作為限制而示出的,在附圖中類似的附圖標(biāo)記指代類似的元素。應(yīng)當(dāng)注意,本公開中對本發(fā)明的“一”或“一個(gè)”實(shí)施例的引用不一定指同一實(shí)施例,并且它們表不至少一個(gè)。
[0006]圖1是能夠使用查找表來計(jì)算超越函數(shù)的低精度估算的數(shù)學(xué)電路的框圖,它也可用于函數(shù)的聞精度估算。
[0007]圖2示出產(chǎn)生低精度估算的多項(xiàng)式計(jì)算電路。
[0008]圖3是能夠使用同一查找表計(jì)算低精度估算和高精度估算的數(shù)學(xué)電路的框圖。
[0009]圖4是計(jì)算倒數(shù)函數(shù)和平方根倒數(shù)函數(shù)的低精度估算的數(shù)學(xué)電路的詳細(xì)框圖。
[0010]圖5示出其中可實(shí)現(xiàn)數(shù)學(xué)電路的處理器設(shè)備的部分。
[0011]圖6是其中可實(shí)現(xiàn)數(shù)學(xué)電路的示例性計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0012]現(xiàn)在參照附圖描述本發(fā)明的若干實(shí)施例。盡管闡述了許多細(xì)節(jié),但要理解,本發(fā)明的一些實(shí)施例沒有這些細(xì)節(jié)也可投入實(shí)踐。在其它實(shí)例中,未詳細(xì)示出眾所周知的電路、結(jié)構(gòu)以及技術(shù),以免混淆對本描述的理解。
[0013]如同在前面的【背景技術(shù)】章節(jié)描述的,存在如下情形,其中較新的微處理器族期望對被定義為較舊微處理器族的指令集架構(gòu)一部分的處理器指令提供硬件級(jí)兼容性。呈現(xiàn)給定的數(shù)學(xué)指令兼容的強(qiáng)力技術(shù)是向新處理器族中增加硬件電路,該硬件電路是計(jì)算“舊有指令”所必需的。然而,通過這種技術(shù),由于由增加的舊有功能消耗明顯更多的芯片資源,可望實(shí)現(xiàn)特定數(shù)學(xué)函數(shù)的多種精度的新處理器族被迫承擔(dān)增加的制造成本。這可能是一種擔(dān)憂,尤其對于非算術(shù)或超越函數(shù)的基于硬件的計(jì)算。
[0014]對超越函數(shù)求近似涉及下列三種操作:自變量縮減至預(yù)定輸入?yún)^(qū)間;對縮減自變量的函數(shù)近似;以及對最終結(jié)果的重構(gòu)、歸一化和舍入。典型地,在諸如微處理器、中央處理單元、圖形處理單元和數(shù)字信號(hào)處理器之類的處理設(shè)備中的函數(shù)近似操作的基于硬件的方法使用所謂的基于非迭代表查找或表驅(qū)動(dòng)的技術(shù)。存在不同類型的基于表的方法。在譜的一端,存在與高階多項(xiàng)式近似相結(jié)合使用相對小的查找表以估算特定超越函數(shù)的方法。高階多項(xiàng)式近似需要大量加法和乘法以產(chǎn)生估算。相反,在譜的另一端,直接表查找技術(shù)使用與非常少的計(jì)算(例如最多就幾次整數(shù)加法)組合的非常大的初始查找表。作為這些極端之間的平衡,如今使用基于線性近似(一階多項(xiàng)式)和二次近似(二階多項(xiàng)式)的表輔助方法。這些方法可用于近似超越函數(shù),例如倒數(shù)、倒數(shù)平方根、對數(shù)、冪和三角函數(shù)。
[0015]這里描述的數(shù)學(xué)電路可通過“再使用”查找表的一部分執(zhí)行函數(shù)近似操作以獲得低精度估算(這是舊有指令所需要的),查找表用于求值高精度估算(它是較新的指令所需要的)。生成查找表中的值以產(chǎn)生較高階多項(xiàng)式的系數(shù),這是計(jì)算高精度估算所需的。這種查找表的共孚或再使用(以廣生低精度估算和聞精度估算)可對芯片資源進(jìn)行更有效使用。另外,可使所產(chǎn)生的低精度估算(在每個(gè)位的基礎(chǔ)上)基本等于由較舊處理器上執(zhí)行的舊有指令產(chǎn)生的結(jié)果。為了獲得這種相等,描述了一種調(diào)整電路,該調(diào)整電路調(diào)整從共享查找表取的值,該值表示較高階多項(xiàng)式的系數(shù)。隨后使用經(jīng)調(diào)整的值來求值較低階多項(xiàng)式??色@得這些益處而不一定要復(fù)制舊有處理器的低精度超越函數(shù)硬件的全部。
[0016]圖1是使用查找表計(jì)算低精度估算的數(shù)學(xué)電路的框圖,該查找表被設(shè)計(jì)成提供超越函數(shù)的高精度估算。這里,可假設(shè)超越函數(shù)的輸入自變量已被縮減至適當(dāng)?shù)膮^(qū)間,這依賴于要被估算的函數(shù)。f(u)代表超越函數(shù),而自變量范圍縮減將提供g(x),其中X現(xiàn)在被約束在預(yù)定和有限的區(qū)間,例如(1,2)??墒褂萌魏芜m當(dāng)?shù)淖宰兞靠s減技術(shù),并可在預(yù)執(zhí)行軟件編譯期間或者在硬件或處理器設(shè)備中(尤其是指令執(zhí)行單元中)的運(yùn)行時(shí)期間執(zhí)行該技術(shù)。圖1的框圖由此假設(shè)輸入操作數(shù)x[N:l]是具有N個(gè)整數(shù)位(例如二進(jìn)制位)的縮減自變量。另外,執(zhí)行對超越函數(shù)f (U)的最終結(jié)果的重構(gòu)、歸一化和舍入的電路或技術(shù)在這里未給出。
[0017]圖1的框圖示出表查找存儲(chǔ)電路3用于檢索表征較高階多項(xiàng)式的系數(shù)X的值;隨后可通過計(jì)算電路2針對輸入自變量X的給定實(shí)例求值多項(xiàng)式。如下面例子中解釋的那樣,較高階多項(xiàng)式可以是需要系數(shù)CtlX1和C2的二次或二階多項(xiàng)式。對于該多項(xiàng)式的計(jì)算產(chǎn)生對超越函數(shù)的高精度估算,如通過自變量縮減的函數(shù)g(x)表示的那樣,該函數(shù)在多數(shù)情形下與超越函數(shù)f (U)是相同的形式。查找表存儲(chǔ)電路3 (也稱查找表3)可通過任何適當(dāng)技術(shù)來實(shí)現(xiàn),例如現(xiàn)場可編程只讀存儲(chǔ)器。該例中的查找表3已在其中存儲(chǔ)了三組值,每組值對應(yīng)于較高階多項(xiàng)式的每個(gè)系數(shù)Q、C1和C2。每個(gè)組代表已被預(yù)定并存儲(chǔ)在查找表存儲(chǔ)電路中的相應(yīng)系數(shù)的數(shù)個(gè)實(shí)例,以根據(jù)由表3接收的輸入值通過表來輸出。對于至少一個(gè)超越函數(shù),表3的內(nèi)容可使用已知技術(shù)來確定。對于輸入操作數(shù)X的給定實(shí)例,輸入操作數(shù)的若干最高有效位,在這里表示為x(g:h),被用來咨詢查找表3,查找表3隨后在該例中返回表示系數(shù)(^仏和^的三個(gè)值。這些值然后由多項(xiàng)式計(jì)算電路2使用以求值較高階多項(xiàng)式的實(shí)例,這將超越函數(shù)估算至高精度。這里,術(shù)語“高階”(或“較高階”)表示至少二階。
[0018]現(xiàn)在,圖1中的安排也可使用多項(xiàng)式計(jì)算電路5計(jì)算g(x)的低精度估算,以評(píng)估X的第二多項(xiàng)式,該第二多項(xiàng)式是較低階多項(xiàng)式并將超越函數(shù)估算至較低精度。術(shù)語“較低階”在這里表示低于通過多項(xiàng)式計(jì)算電路2求值的較高階多項(xiàng)式(當(dāng)要執(zhí)行高精度指令時(shí))。兩個(gè)計(jì)算電路2、5在某種意義上“再使用”或共享查找表3 ;因而,不再需要包含較低階多項(xiàng)式(在這種情形下,該例子是需要系數(shù)Cc^P C1的線性或一階多項(xiàng)式)所需的一個(gè)或多個(gè)系數(shù)的全集的另一查找表。這種共享在這里可通過調(diào)整從查找表存儲(chǔ)3提取的部分值來達(dá)成,該值實(shí)際上表示較高階多項(xiàng)式的系數(shù)。例如,如果值是具有M個(gè)二進(jìn)制位的C0[M:1],則要被調(diào)整的部分可以是K = m-n+1位,即C0[m:n],其中當(dāng)然K〈M(K和M是正整數(shù))。換句話說,要被調(diào)整的部分可以是存儲(chǔ)在查找表中的二進(jìn)制值的刪節(jié)版本。這種調(diào)整能力隱含在圖1所示的多項(xiàng)式計(jì)算電路2中,并可如圖2所示地實(shí)現(xiàn)。
[0019]圖2示出產(chǎn)生低精度估算的多項(xiàng)式計(jì)算電路5的例子。調(diào)整電路6響應(yīng)于低精度指令,該低精度指令在這種情形下通過調(diào)整其輸入值而被解碼成微操作(UOP)。后者是可由查找表3輸出的值C0[M:1]的一部分。調(diào)整電路6由此產(chǎn)生經(jīng)調(diào)整的值CO’,它是低階多項(xiàng)式的系數(shù)的實(shí)例。在一個(gè)例子中,調(diào)整 簡單地將偏移值加至輸入值,其中偏移值可根據(jù)輸入操作數(shù)X改變。經(jīng)調(diào)整的值隨后被送至乘加電路7,該乘加電路7被設(shè)計(jì)成求值較低階多項(xiàng)式,在該例中是Clx+CO’形式的線性多項(xiàng)式。注意在這種情形下,較低階多項(xiàng)式的其它系數(shù)Cl可直接從查找表3獲得,作為表示Cl [L:1]的值的一部分(例如其刪節(jié)和舍入版本)。然而,作為替代,另一系數(shù)也可以是C1[L:1]的一部分的經(jīng)調(diào)整版本。記住,C1[L:1]已被預(yù)先確定以求值較高多項(xiàng)式(見圖1)。
[0020]應(yīng)當(dāng)理解,盡管圖1將多項(xiàng)式計(jì)算電路2、5描繪成單獨(dú)模塊,然而它們實(shí)際上也可以實(shí)現(xiàn)(在處理器設(shè)備的同一執(zhí)行單元中)為共享某些部分。第一和第二計(jì)算電路能共享乘加電路,以求值不同的多項(xiàng)式。例如,相同的乘加模塊可用來求值較低和較高多項(xiàng)式兩者的線性部分。在那種情形下,計(jì)算電路2、5也可包括必需的選擇邏輯以向共用乘加器提供正確的輸入以及例如進(jìn)位和保存(save)配置,這依賴于接收到的是低精度指令還是高精度指令。這是數(shù)學(xué)電路可被視為具有高精度操作模式和低精度操作模式的情形,其中超越函數(shù)的估算分別是在高精度和低精度下計(jì)算的。
[0021]此外,盡管圖1示出有兩個(gè)計(jì)算電路2、5的數(shù)學(xué)電路,當(dāng)處理器設(shè)備僅需要支持較低精度超越函數(shù)指令時(shí),前一電路(較高階多項(xiàng)式)可(從執(zhí)行單元)省去一例如參見下面的圖4,它并未示出產(chǎn)生高精度估算的算術(shù)電路。
[0022]另外,盡管查找表3被標(biāo)記為在其輸出提供系數(shù)Ctl或C1或C2,然而這不應(yīng)當(dāng)被認(rèn)為要求查找表3對于該系數(shù)的每單個(gè)位都具有存儲(chǔ)條目。相反,可以如下:對于一些超越函數(shù),其多項(xiàng)式近似的特定系數(shù)的一個(gè)或多個(gè)位可以是隱含的,例如該位對于二進(jìn)制輸入操作數(shù)x[g:h]的所有預(yù)期組合可以是恒定的,或者它可預(yù)測地變化(根據(jù)輸入自變量X),由此相比對查找表3中的那些位分配存儲(chǔ)條目,組合式布爾邏輯電路足以更有效地提供所需的位。
[0023]圖3是能夠使用針對高精度求值設(shè)計(jì)的相同一組系數(shù)查找表10,對于一個(gè)以上的超越函數(shù)計(jì)算低精度估算和高精度估算的數(shù)學(xué)電路的框圖。根據(jù)超越函數(shù)的類型,表10由輸入操作數(shù)X的不同部分咨詢。函數(shù)標(biāo)識(shí)符(FID)指示要被估算的函數(shù)的類型,并可以是通過解碼處理器指令產(chǎn)生的微操作。例如,F(xiàn)ID可在倒數(shù)和平方根的倒數(shù)之間作出指示或區(qū)別(對于這種數(shù)學(xué)電路的詳細(xì)框圖,請參見圖4)。多項(xiàng)式的求值可通過算術(shù)單元11、12達(dá)成,該算術(shù)單元11、12可通過傳統(tǒng)乘加邏輯電路來實(shí)現(xiàn)。算術(shù)單元11、12通過FID被配置以進(jìn)行操作并且當(dāng)然接收輸入操作數(shù)X的一部分作為輸入,如傳統(tǒng)方法指示的那樣。對于通過算術(shù)單元11執(zhí)行的低精度求值,作為存儲(chǔ)在系數(shù)查找表10中的值CO的一部分的值C0[a:b]被加至偏移值,即調(diào)整[o:p] (adjustment [ο:p]),該偏移值是從偏移查找表9獲得的。在這種情形下,同一輸入值——在這種情形下是x[e:f]或者x[g:h],其每一個(gè)是輸入操作數(shù)X的一部分——被用來同時(shí)咨詢系數(shù)表10以及偏移表9。偏移值可以是預(yù)先確定的并被存儲(chǔ)在查找表9中。
[0024]確定用于調(diào)整系數(shù)(例如CO)的偏移值adjustment [O:P]的方法如下。對于輸入操作數(shù)X的給定實(shí)例,通過在舊有處理器上運(yùn)行的舊有指令來估算超越函數(shù)。問題如今變成如何確定CO’和Cl以使在輸入操作數(shù)X的相同實(shí)例下求值的較低階多項(xiàng)式(使用高精度估算的共享系數(shù)表10求值的低精度估算——見圖3)基本等于(在每位的基礎(chǔ)上)舊有結(jié)果。系數(shù)表的檢查可揭露,通過將Cl[c:d](用于較低階多項(xiàng)式)約束為在系數(shù)表10(用于較高階多項(xiàng)式)中可供使用的Cl刪節(jié)版本,有可能獲得舊有結(jié)果和新結(jié)果之間的小差異(在輸入操作數(shù)X的所需范圍內(nèi))。如在下面討論的例子中看到的,這種差異被證實(shí)相對于系數(shù)表10中的值尺寸(位數(shù))較小,并可容易地對絕大多數(shù)相應(yīng)索引實(shí)例(對系數(shù)表的輸入,它是輸入操作數(shù)X的一部分)進(jìn)行計(jì)算。這些計(jì)算出的差異中的每一個(gè)則可作為偏移值被存儲(chǔ)在偏移查找表9中,并關(guān)聯(lián)于索引的每個(gè)相應(yīng)實(shí)例。
[0025]圖4是計(jì)算倒數(shù)函數(shù)和平方根倒數(shù)函數(shù)的低精度估算(結(jié)果中的14位二進(jìn)制尾數(shù))的數(shù)學(xué)電路的詳細(xì)框圖。在該例中,系數(shù)表具有128個(gè)條目并且它們的索引是輸入操作數(shù)X的高7位。在這種情形下,系數(shù)表被設(shè)計(jì)成使用二次多項(xiàng)式計(jì)算倒數(shù)函數(shù)的高精度估算(23位二進(jìn)制尾數(shù))。基于用來確定偏移表的前面給出的準(zhǔn)則,發(fā)現(xiàn)遵循一些分析,即需要系數(shù)表中CO值的16個(gè)位連同Cl值的9個(gè)位(當(dāng)然沒有C2值中的任何位),用于求值線性多項(xiàng)式以得出相對于舊有結(jié)果的小差異。在這種情形下,小差異意味著僅需要4個(gè)二進(jìn)制位的64個(gè)條目來表不倒數(shù)函數(shù)的偏移值。關(guān)于對偏移表和系數(shù)表的索引,在本例中輸入操作數(shù)X的相同一組位被用來索引系數(shù)表和偏移表,尤其是6個(gè)位,即X [22:17]或X [23:18](依賴于函數(shù)是倒數(shù)還是平方根的倒數(shù))。然而,可以如下:分析揭示(輸入操作數(shù)X的)不同組位應(yīng)當(dāng)被用來索引兩個(gè)表。至于數(shù)學(xué)電路的算術(shù)單元部分,可使用如圖所示的乘加器配置,該乘加器配置可以是典型的融合累加器樹,隨后是進(jìn)位傳送加法器,它產(chǎn)生所求值的多項(xiàng)式(在這種情形下在18位加法器的輸出處)。也可如圖所示地使用Booth (布思)編碼以加快乘法方面。
[0026]圖5示出其中可實(shí)現(xiàn)如前所述的數(shù)學(xué)電路的處理器設(shè)備的部分。處理器設(shè)備具有可以是寄存器、主存儲(chǔ)器、高速緩存或其任意組合的存儲(chǔ)19,其中可存儲(chǔ)通過處理器設(shè)備執(zhí)行的指令以及那些指令的執(zhí)行結(jié)果。存儲(chǔ)19可以與具有指令提取單元14、指令解碼器16和執(zhí)行單元18共同位于芯片上。在一些情形下,存儲(chǔ)19可以在芯片外。指令提取單元14——也被稱為指令單元——負(fù)責(zé)組織程序指令,這些程序指令從存儲(chǔ)19提取或發(fā)布并隨后以適當(dāng)?shù)捻樞驁?zhí)行。被提取或發(fā)布的指令(例如低精度超越函數(shù)指令或高精度超越函數(shù)指令)被提交給指令解碼器16,指令解碼器16解釋指令以產(chǎn)生較低級(jí)的控制信號(hào),一般在這里被稱為微操作或UOP,該較低級(jí)的控制信號(hào)將配置和/或觸發(fā)執(zhí)行單元18的適當(dāng)邏輯電路模塊以處理指令的輸入自變量(也被稱為操作數(shù))。在這種情形下,執(zhí)行單元18 (從指令中的操作碼)檢測超越函數(shù)要被計(jì)算。執(zhí)行單元18包含數(shù)學(xué)電路,該數(shù)學(xué)電路將隨后被信號(hào)通知以執(zhí)行至少函數(shù)近似操作(例如這里描述的),該函數(shù)近似操作估算所檢測或標(biāo)識(shí)的超越函數(shù)。執(zhí)行指令的最終或最后結(jié)果可隨后被寫入存儲(chǔ)19 (例如作為典型回寫操作的一部分)。
[0027]處理器設(shè)備可以能夠通過提取低精度指令執(zhí)行機(jī)器實(shí)現(xiàn)方法以計(jì)算超越函數(shù)的估算,該低精度指令用來以低精度求值超越函數(shù)。它解碼指令并作為響應(yīng)訪問查找表(例如圖3的系數(shù)表10或圖1的查找表存儲(chǔ)電路3)以輸出表示較高階多項(xiàng)式的系數(shù)的值,該較高階多項(xiàng)式將超越函數(shù)估算至高精度。例如,查找表可包含求值較高階多項(xiàng)式所需的全部系數(shù),以產(chǎn)生高精度結(jié)果。由查找表輸出的值的一部分隨后被調(diào)整(例如通過單獨(dú)的偏移表和算術(shù)邏輯的組合)并隨后(使用該調(diào)整值)求值將超越函數(shù)估算至低精度的較低階多項(xiàng)式。例如,調(diào)整通過查找表輸出值的部分可涉及響應(yīng)于低精度指令的解碼訪問另一查找表以獲得偏移值。隨后使用偏移值以及表示較高階多項(xiàng)式的系數(shù)的值(由查找表輸出),求值較低階多項(xiàng)式。
[0028]處理器設(shè)備可以是指令集架構(gòu)(ISA)A設(shè)備,相反低精度指令可以對ISA B設(shè)備定義,而在ISA A和ISA B設(shè)備上的低精度指令執(zhí)行將較為有利地產(chǎn)生相同的結(jié)果(當(dāng)再使用已被設(shè)計(jì)成產(chǎn)生高精度結(jié)果的查找表時(shí))。ISA A也可包含高精度指令,該高精度指令在呈現(xiàn)高精度結(jié)果時(shí)基本使用同一查找表。在那種情形下,處理器設(shè)備也可執(zhí)行下列動(dòng)作:提取高精度指令(用以估算超越函數(shù)至高精度);解碼高精度指令并作為響應(yīng)訪問同一查找表以獲得表示較高階多項(xiàng)式的系數(shù)的若干值;并隨后使用由查找表輸出的若干值來求值較高階多項(xiàng)式。
[0029]現(xiàn)在參見圖6,其示出計(jì)算機(jī)系統(tǒng)20的框圖,在該計(jì)算機(jī)系統(tǒng)20中可實(shí)現(xiàn)數(shù)學(xué)電路或超越函數(shù)執(zhí)行進(jìn)程。計(jì)算機(jī)系統(tǒng)20包括處理器21以及具有I/O控制器中樞(ICH) 28的芯片集12。計(jì)算機(jī)系統(tǒng)20也包括:與芯片集12耦合的第一組件互連23、與ICH耦合的第二組件互連25、與ICH耦合的串行擴(kuò)展端口 27、與ICH耦合的網(wǎng)絡(luò)控制器22以及與ICH耦合的數(shù)據(jù)存儲(chǔ)24。
[0030]處理器21是多核處理器并包括處理器核26-1至26-M,其中M可以是大于或等于2的整數(shù)(例如2、4、7或更多)。每個(gè)核可包括至少一個(gè)執(zhí)行單元,該執(zhí)行單元包含數(shù)學(xué)電路或可執(zhí)行用于執(zhí)行如本文披露的超越函數(shù)的進(jìn)程。如圖所示,核I包括高速緩存33 (例如LI高速緩存)。其它核中的每一個(gè)可類似地包括專用高速緩存。處理器核可實(shí)現(xiàn)在單個(gè)集成電路(IC)芯片上。
[0031]處理器21也包括至少一個(gè)共享高速緩存30。共享高速緩存可存儲(chǔ)數(shù)據(jù)(例如指令),該數(shù)據(jù)由處理器的一個(gè)或多個(gè)組件(例如核)使用。例如,共享高速緩存可本地高速緩沖存儲(chǔ)在存儲(chǔ)器32中的數(shù)據(jù)以供處理器組件快速訪問。在一個(gè)或多個(gè)實(shí)施例中,共享的高速緩存可包括一個(gè)或多個(gè)中級(jí)高速緩存,例如2級(jí)(L2)、3級(jí)(L3)、4級(jí)(L4)或其它級(jí)的高速緩存、末級(jí)高速緩存(LLC)和/或它們的組合。
[0032]處理器核26和共享高速緩存30各自與總線或其它互連34耦合??偩€或其它互連可耦合核和共享高速緩存并允許在它們和存儲(chǔ)器32之間通信[0033]處理器21也包括存儲(chǔ)器控制器中樞(MCH) 36。如該示例性實(shí)施例中所示,MCH與處理器21集成。例如,MCH可與處理器核一起在管芯上。處理器通過MCH與存儲(chǔ)器32耦合。在一個(gè)或多個(gè)實(shí)施例中,存儲(chǔ)器32可包括DRAM,盡管這不是必需的。
[0034]芯片集包括輸入/輸出(I/O)中樞37。該I/O中樞通過總線(例如快速通道互連(QPI))或其它互連40與處理器耦合。第一組件互連23與I/O中樞38耦合。
[0035]這只是適合的系統(tǒng)的一個(gè)特例。用于膝上計(jì)算機(jī)、臺(tái)式機(jī)、手持PC、個(gè)人數(shù)字助理、工程設(shè)計(jì)工作站、服務(wù)器、網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)集線器、交換機(jī)、嵌入式處理器、數(shù)字信號(hào)處理器(DSP)、圖形設(shè)備、視頻游戲設(shè)備、機(jī)頂盒、微控制器、蜂窩電話、便攜式媒體播放器、手持設(shè)備和多種其它電子設(shè)備的業(yè)內(nèi)已知的其它系統(tǒng)設(shè)計(jì)和配置也可適用。一般來說,能夠納入本文披露的處理器和/或執(zhí)行單元的大量系統(tǒng)或電子設(shè)備通常是適用的。
[0036]在上面的描述中,出于說明目的闡述了眾多具體細(xì)節(jié)以便提供對實(shí)施例的全面理解。然而,對本領(lǐng)域技術(shù)人員將顯而易見的是,沒有這些具體細(xì)節(jié)也可實(shí)施一個(gè)或多個(gè)其它實(shí)施例。所描述的特定實(shí)施例不是為了限制本發(fā)明而是為了解說本發(fā)明的實(shí)施例而提供的。本發(fā)明的范圍并非由上面提供的特定示例確定,而是僅由下面的權(quán)利要求書確定。在其它實(shí)例中,為了避免混淆說明書的理解,公知的電路、結(jié)構(gòu)、設(shè)備和操作已在框圖中示出并且不涉及細(xì)節(jié)。在認(rèn)為適當(dāng)?shù)牡胤?,附圖標(biāo)記或附圖標(biāo)記的結(jié)尾部分在各附圖中被重復(fù)以只是相應(yīng)或相似的要素,這些要素可選擇地具有相似的特征。
[0037]然而,某些操作可通過硬件組件來執(zhí)行,作為替代,這些操作可體現(xiàn)在計(jì)算機(jī)可執(zhí)行指令中,所述計(jì)算機(jī)可執(zhí)行指令可用來造成或至少導(dǎo)致以指令變成以執(zhí)行操作的電路或硬件。電路可包括通用或?qū)S锰幚砥骰蜻壿嬰娐?例如二進(jìn)制邏輯、多級(jí)或非二進(jìn)制邏輯),這里僅示出一些例子?;蛘?,這些操作可通過硬件和軟件的組合來選擇地執(zhí)行。執(zhí)行單元和/或處理器可包括對機(jī)器指令作出響應(yīng)的專門或特定的電路或其它邏輯、或者從機(jī)器指令衍生出的一個(gè)或多個(gè)控制信號(hào),以計(jì)算和存儲(chǔ)指令特定的結(jié)果操作數(shù)。
[0038]應(yīng)當(dāng)理解,在前面的描述中,在單個(gè)實(shí)施例、附圖或其描述中,各特征有時(shí)被編組到一起,這是為了使本公開變得流暢并有助于理解各種創(chuàng)新性方面。然而,這種公開方法不應(yīng)被解釋為反映本發(fā)明相比各個(gè)權(quán)利要求中明確陳述的特征而言需要更多特征的意圖。相反,如下面的權(quán)利要求書反映出來的那樣,各創(chuàng)新性方面可少于以上公開的單個(gè)實(shí)施例的所有特征。因此,詳細(xì)說明之后的權(quán)利要求書在此明確地被包括到本說明書中,其中各個(gè)權(quán)利要求獨(dú)立作為本發(fā)明的單個(gè)實(shí)施例。
[0039]盡管附圖中已描述和示出了某些實(shí)施例,然而要理解,這些實(shí)施例僅是解說性的而非對本發(fā)明的范圍構(gòu)成限制,并且本發(fā)明不僅限于所示和所描述的具體結(jié)構(gòu)和配置,因?yàn)楸绢I(lǐng)域內(nèi)技術(shù)人員可以想到多種其它修改形式。例如,盡管上述例子中用到的較高階多項(xiàng)式是二次多項(xiàng)式,而較低階多項(xiàng)式是線性多項(xiàng)式,然而本發(fā)明的理念也適用于高精度函數(shù)近似和低精度函數(shù)近似的其它組合。另外,盡管圖4中的例子示出產(chǎn)生倒數(shù)和平方根倒數(shù)的函數(shù)近似的數(shù)學(xué)電路的細(xì)節(jié),然而前述理念也可適用于設(shè)計(jì)產(chǎn)生其它超越函數(shù)(例如冪、對數(shù)和三角函數(shù))的函數(shù)近似的數(shù)學(xué)電路。說明書因此應(yīng)當(dāng)被視為解說性的而非限定性的。
【權(quán)利要求】
1.一種用于計(jì)算超越函數(shù)的估算的數(shù)學(xué)電路,包括: 查找表存儲(chǔ)電路,在其中存儲(chǔ)多組值,每組值表示將函數(shù)估算至高精度的第一多項(xiàng)式的相應(yīng)系數(shù);以及 第一計(jì)算電路,耦合至所述查找表存儲(chǔ)電路以使用從所述多組值中的一組取得的值的部分,求值將函數(shù)估算至低精度的第二多項(xiàng)式。
2.如權(quán)利要求1所述的數(shù)學(xué)電路,其特征在于,還包括第二計(jì)算電路,所述第二計(jì)算電路耦合至所述查找表存儲(chǔ)電路以使用從所述多組值中的每組取得的值來求值所述第一多項(xiàng)式。
3.如權(quán)利要求1所述的數(shù)學(xué)電路,其特征在于,所述第一計(jì)算電路包括: 調(diào)整電路,將從所述查找表存儲(chǔ)電路取得的值的部分調(diào)整為所述第二多項(xiàng)式的系數(shù)實(shí)例;以及 乘加電路,使用所述第二多項(xiàng)式的系數(shù)實(shí)例來求值所述第二多項(xiàng)式。
4.如權(quán)利要求3所述的數(shù)學(xué)電路,其特征在于,所述調(diào)整電路包括其中存儲(chǔ)有多個(gè)偏移值的另一查找表存儲(chǔ)電路,并且當(dāng)求值所述第二多項(xiàng)式時(shí),所述乘加電路將所述多個(gè)偏移值中的一個(gè)加至從所述查找表存儲(chǔ)電路取得的值的部分。
5.如權(quán)利要求4所述的數(shù)學(xué)電路,其特征在于,均響應(yīng)于所述函數(shù)的輸入操作數(shù)的實(shí)例,所述查找表存儲(chǔ)電路從每個(gè)組輸出值并且所述另一查找表電路輸出偏移值, 其中所述輸入操作數(shù)的第一組位被用作所述查找表存儲(chǔ)電路的輸入,而所述輸入操作數(shù)的第二組位被用作所述另一查找表存儲(chǔ)電路的輸入。
6.如權(quán)利要求5所述的數(shù)學(xué)電路,其特征在于,所述第一組位和第二組位是相同的。
7.如權(quán)利要求1所述的數(shù)學(xué)電路,其特征在于,所述第二多項(xiàng)式具有比所述第一多項(xiàng)式低的階次。
8.如權(quán)利要求7所述的數(shù)學(xué)電路,其特征在于,所述第二多項(xiàng)式是線性的并且所述第一多項(xiàng)式是二次的。
9.一種處理器設(shè)備,包括: 指令解碼器,用于接收對超越函數(shù)進(jìn)行求值的第一指令;以及 執(zhí)行單元,所述執(zhí)行單元具有包含表示第一多項(xiàng)式的系數(shù)的多個(gè)值的第一查找表電路,所述第一多項(xiàng)式將所述超越函數(shù)估算至高精度, 執(zhí)行單元,具有調(diào)整電路,所述調(diào)整電路響應(yīng)于所述第一指令的解碼調(diào)整值的部分,所述值表示所述第一多項(xiàng)式的系數(shù)并由所述第一查找表電路輸出,并且所述執(zhí)行單元使用所述值的經(jīng)調(diào)整部分來求值第二多項(xiàng)式,所述第二多項(xiàng)式將所述超越函數(shù)估算至低精度。
10.如權(quán)利要求9所述的處理器設(shè)備,其特征在于,所述指令解碼器接收第二指令,所述第二指令以比所述第一指令高的精度求值所述超越函數(shù),并且所述第一查找表電路響應(yīng)于對所述第二指令的解碼,輸出表示所述第一多項(xiàng)式的系數(shù)的多個(gè)值,并且所述執(zhí)行單元使用由所述第一查找表電路輸出的多個(gè)值來求值所述第一多項(xiàng)式。
11.如權(quán)利要求10所述的處理器設(shè)備,其特征在于,所述執(zhí)行單元包括:第一乘加邏輯,用于使用來自以下的輸入:(a)表示所述第一多項(xiàng)式的系數(shù)的多個(gè)值以及(b)所述第二指令的輸入操作數(shù)的實(shí)例,求值所述第一多項(xiàng)式;以及 第二乘加邏輯,用于使用來自以下的輸入:(a)表示所述第一多項(xiàng)式的系數(shù)的值的經(jīng)調(diào)整部分以及(b)所述第一指令的輸入操作數(shù)的實(shí)例,求值所述第二多項(xiàng)式。
12.如權(quán)利要求9所述的處理器設(shè)備,其特征在于,所述調(diào)整電路包括其中存儲(chǔ)有多個(gè)偏移值的第二查找表電路,,并且所述執(zhí)行單元包括乘加邏輯,所述乘加邏輯用于通過將所述多個(gè)偏移值中的一個(gè)加至從所述第一查找表電路取得的值的部分,求值所述第二多項(xiàng)式。
13.如權(quán)利要求12所述的處理器設(shè)備,其特征在于,所述第一指令的輸入操作數(shù)的第一組位被用作所述第一查找表電路的輸入,而所述輸入操作數(shù)的第二組位被用作所述第二查找表電路的輸入。
14.如權(quán)利要求13所述的處理器設(shè)備,其特征在于,所述第一組位和第二組位是相同的。
15.一種在處理器設(shè)備中計(jì)算超越函數(shù)的估算的機(jī)器實(shí)現(xiàn)方法,包括: 提取指令,所述指令將超越函數(shù)估算至低精度; 對所述指令進(jìn)行解碼并作為響應(yīng)訪問查找表以獲得值,其中由所述查找表輸出的所述值表示較高階多項(xiàng)式的系數(shù),所述較高階多項(xiàng)式能將所述超越函數(shù)估算至高精度; 調(diào)整由所述查找表輸出的值的部分;以及 使用經(jīng)調(diào)整的值 求值較低階多項(xiàng)式,所述較低階多項(xiàng)式將所述超越函數(shù)估算至低精度。
16.如權(quán)利要求15所述的方法,其特征在于,調(diào)整由所述查找表輸出的值的部分包括: 響應(yīng)于所述低精度指令的解碼,訪問另一查找表以獲得偏移值,并且所述較低階多項(xiàng)式是使用所述偏移值求值的。
17.如權(quán)利要求16所述的方法,其特征在于,訪問另一查找表包括使用指令的輸入操作數(shù)的一組位咨詢所述另一查找表,所述一組位與用于訪問查找表以獲得所述值所使用的相同。
18.一種計(jì)算機(jī)系統(tǒng),包括: 包含軟件的存儲(chǔ);以及 耦合至所述存儲(chǔ)的處理器設(shè)備,所述處理器設(shè)備具有包括指令的指令集架構(gòu),所述指令用于求值超越函數(shù),所述處理器設(shè)備具有多個(gè)核,其中每個(gè)核具有能計(jì)算所述超越函數(shù)的估算的數(shù)學(xué)電路,所述數(shù)學(xué)電路包括:(a)其中存儲(chǔ)有多組值的查找表存儲(chǔ)電路,每組值表示第一多項(xiàng)式的相應(yīng)系數(shù),所述第一多項(xiàng)式能將所述函數(shù)估算至高精度,以及(b)耦合至所述查找表存儲(chǔ)電路的計(jì)算電路,用于使用來自所述多組值的值來求值第二多項(xiàng)式,所述第二多項(xiàng)式將所述函數(shù)估算至低精度。
19.如權(quán)利要求18所述的計(jì)算機(jī)系統(tǒng),其特征在于,對于所述指令,所述數(shù)學(xué)電路產(chǎn)生所述超越函數(shù)的求值結(jié)果,所述結(jié)果在每位基礎(chǔ)上基本等于由執(zhí)行相同指令的舊有處理器設(shè)備產(chǎn)生的結(jié)果。
20.如權(quán)利要求18所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述計(jì)算電路包括: 調(diào)整電路,將從所述查找表存儲(chǔ)電路取得的值的部分調(diào)整為所述第二多項(xiàng)式的系數(shù)的實(shí)例;以及 乘加電路,使用所述第二多項(xiàng)式的系數(shù)實(shí)例求值所述第二多項(xiàng)式。
21.如權(quán)利要求20所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述調(diào)整電路包括其中存儲(chǔ)有多個(gè)偏移值的另一查找表存儲(chǔ)電路,并且當(dāng)求值所述第二多項(xiàng)式時(shí),所述乘加電路將所述多個(gè)偏移值中的一個(gè)加至從所述查找表 取得的值的部分。
【文檔編號(hào)】G06F1/02GK103959192SQ201180075241
【公開日】2014年7月30日 申請日期:2011年12月21日 優(yōu)先權(quán)日:2011年12月21日
【發(fā)明者】J-A·派伊洛, S·盧巴諾維奇, B·艾坦, A·格雷德斯廷, T·D·弗萊切 申請人:英特爾公司