專利名稱:使用縮減寬度數(shù)據(jù)進行計算的方法和裝置的制作方法
公開領(lǐng)域本公開一般地涉及處理器系統(tǒng),并且更具體地,涉及使用縮減寬度數(shù)據(jù)(reduced-widthdata)進行計算(calculation)的方法、裝置和制品。
背景在很多應(yīng)用領(lǐng)域中代數(shù)和超越函數(shù)是基礎(chǔ)的。例如,三角函數(shù)(例如正弦和余弦函數(shù))的估算(evaluation)對于許多圖形應(yīng)用的性能是至關(guān)重要的。傳統(tǒng)的代數(shù)和/或超越函數(shù)估算算法通常提供具有從7位有效小數(shù)(例如IEEE單精度浮點)到16位有效小數(shù)(例如IEEE雙精度浮點)范圍的相對高精度和準(zhǔn)確度的結(jié)果。
由于精度(precision)和準(zhǔn)確度(accuracy)的要求,傳統(tǒng)的代數(shù)和/或超越函數(shù)估算算法通常嚴(yán)重依賴于數(shù)據(jù)存儲器訪問。實現(xiàn)這些傳統(tǒng)的算法常常涉及在數(shù)據(jù)存儲器中儲存包含預(yù)定值(例如預(yù)定多項式系數(shù)值)的值表。在運行時(runtime)期間,執(zhí)行傳統(tǒng)算法常常需要多次訪問數(shù)據(jù)存儲器以從值表取回預(yù)定值。多次訪問數(shù)據(jù)存儲器將相對大的負擔(dān)施加于數(shù)據(jù)總線。此外頻繁訪問數(shù)據(jù)存儲器常常導(dǎo)致反復(fù)訪問(thrash)數(shù)據(jù)緩存,因為每個從數(shù)據(jù)存儲器取回的新的數(shù)據(jù)元素(data element)可能被儲存在數(shù)據(jù)緩存中,并由此覆寫在將來的取回操作中可能需要的其他數(shù)據(jù)元素。
用于估算代數(shù)和超越函數(shù)的傳統(tǒng)算法被典型地配置為在桌面(例如PC)和工作站平臺上執(zhí)行。通常,在桌面和工作站平臺上執(zhí)行傳統(tǒng)算法是不成問題的,因為這些平臺被典型地配置為包括相對大的主存儲器、數(shù)據(jù)通路寬度和數(shù)據(jù)緩存大小。因此,與這些傳統(tǒng)算法相關(guān)聯(lián)的數(shù)據(jù)存儲器訪問施加在一條數(shù)據(jù)總線或多條數(shù)據(jù)總線上的負擔(dān)典型地對整個系統(tǒng)性能有相對低的影響。
對代數(shù)和超越函數(shù)的精確的和準(zhǔn)確的估算的需求存在于桌面和工作站平臺之外。例如,估算代數(shù)和超越函數(shù)的需求也存在于移動平臺,例如那些使用移動處理器(例如IntelXScale微處理器系列)的平臺。但是,上述的傳統(tǒng)代數(shù)和/或超越函數(shù)估算算法通常不適于在許多移動平臺上執(zhí)行。由于典型的移動平臺處理器特性,例如縮減的數(shù)據(jù)通路寬度和數(shù)據(jù)緩存大小,從值表中取回預(yù)定值所需的數(shù)據(jù)存儲器訪問常常導(dǎo)致低下的和不可預(yù)知的性能??s減的數(shù)據(jù)通路寬度可能需要多次訪問來取回單個具有的數(shù)據(jù)寬度比可用數(shù)據(jù)通路寬度寬的預(yù)定值。此外,縮減的數(shù)據(jù)緩存大小導(dǎo)致數(shù)據(jù)緩存幾乎整個被新取回的數(shù)據(jù)所覆寫和/或填滿,由此導(dǎo)致需要更加頻繁地從數(shù)據(jù)存儲器取回數(shù)據(jù)。
包含預(yù)定值的值表可能導(dǎo)致對于移動平臺的進一步缺點。例如值表可能相對大并且需要存儲器的大量空間,由此限制了移動平臺上的應(yīng)用和/或其他處理可用的存儲器空間。此外,值表可能將對于大的存儲器占用面積(footprint)的要求強加于移動平臺,所述要求可能增大整個基于移動平臺的系統(tǒng)設(shè)計的尺寸和成本。
附圖簡要說明
圖1是可用于使用縮減寬度數(shù)據(jù)來估算函數(shù)的示例性方法或處理的流程圖。
圖2是可用于最小化目標(biāo)函數(shù)與近似多項式之間的最大偏差的示例性近似比較(approximation comparison)的圖。
圖3是可用于產(chǎn)生與多項式相關(guān)聯(lián)的短寬度系數(shù)值的示例性短寬度近似方法或處理的流程圖。
圖4是可用于產(chǎn)生與多項式相關(guān)聯(lián)的長寬度系數(shù)值的示例性長寬度近似方法或處理的流程圖。
圖5是可用于估算多項式的示例性分割(split)輸入?yún)?shù)方法或處理的流程圖。
圖6是可用于實現(xiàn)此處描述的方法的示例性系統(tǒng)的功能框圖。
圖7是可用于實現(xiàn)此處描述的裝置、方法和制品的示例性處理器系統(tǒng)的框圖。
詳細描述圖1是可用于使用縮減寬度數(shù)據(jù)來估算函數(shù)的示例性方法或處理100的流程圖。示例性過程100可以用硬件(例如圖6的示例性系統(tǒng)600)和/或儲存于機器可訪問介質(zhì)上并且執(zhí)行于處理器系統(tǒng)(例如圖7的處理器系統(tǒng)710)上的軟件來實現(xiàn)??商鎿Q地,可以另外使用硬件和/或軟件的任何所期望的組合。
通常,下面描述的方法可以用于估算函數(shù),所述函數(shù)包括超越函數(shù)(transcendentalfunction)、代數(shù)函數(shù)、和包括近似例如超越函數(shù)和/或代數(shù)函數(shù)的近似多項式的多項式。超越函數(shù)和代數(shù)函數(shù)在本領(lǐng)域內(nèi)是眾所周知的,并且包括例如sin(x)、cos(x)、平方根函數(shù)等。
正如此處描述的一樣,縮減寬度數(shù)據(jù)通常與使用縮減數(shù)據(jù)量來表示的數(shù)值相關(guān)聯(lián)。例如,可以舍入(round)和截尾32位值以產(chǎn)生16位的縮減寬度值。附加地或可替換地,可以將32位值分割為多個較短的縮減寬度值,例如兩個16位值。相對于傳統(tǒng)的函數(shù)估算,使用縮減寬度數(shù)據(jù)來估算函數(shù)具有實質(zhì)的益處。例如,在編譯階段縮減寬度數(shù)據(jù)值可以被儲存在指令存儲器中的指令內(nèi),從而減少運行時階段訪問數(shù)據(jù)存儲器的次數(shù)。通過減少數(shù)據(jù)緩存被覆寫的次數(shù),減少數(shù)據(jù)存儲器訪問次數(shù)提高處理器系統(tǒng)(例如圖7的處理器系統(tǒng)710)的性能。因此,更頻繁地被使用的數(shù)據(jù)值保留在數(shù)據(jù)緩存中,無需耗費處理周期來刷新或恢復(fù)所述數(shù)據(jù)值。
通常,數(shù)據(jù)值作為立即數(shù)據(jù)值被儲存在指令存儲器而不是數(shù)據(jù)存儲器中。例如,如果在運行時階段加法指令求兩個操作數(shù)或數(shù)據(jù)值之和,那么至少一個操作數(shù)可以作為立即數(shù)據(jù)值儲存在加法指令中,只要該操作數(shù)具有足夠小的值(也就是表示該操作數(shù)的數(shù)據(jù)位數(shù)足夠小)。現(xiàn)今可獲得的幾種處理器,例如IntelXSale處理器,使得立即數(shù)據(jù)值能夠被儲存到指令中。立即數(shù)據(jù)值常常限于短寬度數(shù)據(jù)值,例如8位值或16位值??梢詫⒕哂辛⒓磾?shù)據(jù)值的指令寫成例如如下所述的匯編指令的形式。
ADD U,X,#166在編譯階段,立即數(shù)據(jù)值166被儲存在與指令存儲器中的加法指令相關(guān)聯(lián)的位字段(bitfield)中。在運行時階段,取回加法指令還導(dǎo)致立即數(shù)值166被取回。
縮減寬度數(shù)據(jù)值也可以使能(enable)對耗費相對少的處理周期數(shù)的指令(例如短指令)的使用。一些處理器可以被配置執(zhí)行短指令和長指令,所述短指令被配置為執(zhí)行例如8位或16位操作,所述長指令被配置為執(zhí)行例如32位操作。典型地,短指令比長指令耗費更少的處理周期。相比于至少使用一些短指令而獲得的性能,只使用長指令來求數(shù)學(xué)函數(shù)的值可能導(dǎo)致差的性能。
縮減寬度數(shù)據(jù)值可以使采用更多(或只采用)短指令成為可能,所述短指令可以導(dǎo)致更快和更有效的數(shù)據(jù)處理。但是,縮減用于估算數(shù)學(xué)函數(shù)的值的數(shù)據(jù)寬度可以導(dǎo)致精度和準(zhǔn)確度的損失。可以使用此處描述的方法,利用縮減寬度數(shù)據(jù)值來獲取基本準(zhǔn)確和精確的結(jié)果。
現(xiàn)詳見圖1,示例性的處理100包括設(shè)計階段102、編譯階段104和運行時階段106。設(shè)計階段102先于編譯階段104發(fā)生,并且與程序員或軟件開發(fā)者產(chǎn)生(例如編寫)軟件和/或固件(例如機器可訪問并且可執(zhí)行代碼或指令)的時間相關(guān)聯(lián)。程序員和軟件開發(fā)者可以是人??商鎿Q地或附加地,軟件和/或固件可以由在處理器系統(tǒng)710(圖7)上執(zhí)行的應(yīng)用產(chǎn)生??梢砸匀魏尉幊陶Z言,例如C/C++、Basic、Java、匯編程序等,來編寫機器可訪問代碼或指令。此外,可以編寫代碼來實現(xiàn)導(dǎo)致處理器(例如圖7中的處理器712)估算數(shù)學(xué)函數(shù)的機器可執(zhí)行例程(routine),如以下更加詳細描述的那樣。具體來說,利用此處描述的示例性方法,代碼可以使得處理器系統(tǒng)710能夠利用縮減寬度數(shù)據(jù)值來估算函數(shù)。正如下面詳細描述的,設(shè)計階段102包括短寬度近似處理108和長寬度近似處理110。
可以在設(shè)計階段以組合的形式使用短寬度近似處理108和長寬度近似處理110,以產(chǎn)生包括近似多項式的混合寬度多項式。正如結(jié)合圖2更詳細描述的,使用近似多項式來近似更復(fù)雜的數(shù)學(xué)函數(shù),例如超越和/或代數(shù)函數(shù)。以下等式1中示出了示例性的近似多項式pa(x)。
等式1 pa(x)=p0+p1·x+p2·x2+…+pN-1·xN-1+pN·xN如等式1所示,近似多項式pa(x)包括輸入自變量(argument)x和多個系數(shù)值p0,p1,p2,pN-1和pN,其中N與最高次項(highest-degree term)相關(guān)聯(lián)并且“0”與第0項或常數(shù)項相關(guān)聯(lián)。眾所周知,近似多項式可以包括任意數(shù)量的項,并且可以用極小極大(minimax)近似方法和/或優(yōu)化方法,例如Remez算法,來產(chǎn)生近似多項式。
通常,混合寬度多項式包括縮減寬度系數(shù)值,所述系數(shù)值包括至少一些短寬度系數(shù)值(例如8位或16位值)和至少一些長寬度系數(shù)值(例如32位值)。正如結(jié)合下面圖3和圖4更詳細地描述的,可以通過確定一組與多項式相關(guān)聯(lián)的系數(shù)值和縮減至少一些系數(shù)值的數(shù)據(jù)寬度(例如舍入、截尾等)來產(chǎn)生縮減寬度系數(shù)值。
編譯階段104與這樣的時間相關(guān)聯(lián),即在設(shè)計階段102產(chǎn)生的代碼由執(zhí)行于處理器系統(tǒng)(例如圖7的處理器系統(tǒng)710)的編譯器應(yīng)用格式化為特定處理器的機器代碼的時間。由編譯器產(chǎn)生的機器代碼是特定處理器的語言,所述語言包括表示特定處理器操作的代碼或二進制字符串(string)的元素(elemental)組。所述代碼或二進制字符串的元素組由特定類型(例如品牌,型號等)的機器或處理器(例如圖7的處理器712)來解釋。
眾所周知,編譯器通過把編程語言指令和相關(guān)聯(lián)的數(shù)據(jù)(例如立即數(shù)據(jù)值)轉(zhuǎn)換成機器代碼并且將經(jīng)轉(zhuǎn)換的機器代碼存入存儲器中來將編程語言代碼轉(zhuǎn)換為特定處理器的機器代碼。以這種方式,在運行時階段106,處理器712可以基于經(jīng)轉(zhuǎn)換的機器代碼實現(xiàn)或執(zhí)行由程序員或軟件開發(fā)者指定的操作。
儲存系數(shù)值處理112通常在編譯階段104被執(zhí)行,并且可以被用來在與處理器710(圖7)相關(guān)聯(lián)的存儲器中儲存系數(shù)值(例如在設(shè)計階段102產(chǎn)生的縮減寬度系數(shù)值)。更具體地,正如下面結(jié)合圖4更詳細描述的,縮減寬度系數(shù)值可以被存入指令存儲器。
在運行時階段106,處理器712(圖7)執(zhí)行在編譯階段104編譯過的機器代碼。如圖1所示,運行時階段106與設(shè)計階段102和編譯階段104是分開的。但是,運行時階段106可以包括設(shè)計階段102和編譯階段104。例如,設(shè)計階段102的處理(例如短寬度近似處理108和長寬度近似處理110)、編譯階段104的處理(例如儲存系數(shù)值處理112)和運行階段106的任何處理可以被配置為由處理器系統(tǒng)710(圖7)在相同的運行時環(huán)境(例如運行階段106)中執(zhí)行。
示例性的運行階段106包括分割估算處理114。正如下面結(jié)合圖4更詳細描述的,分割估算處理114可以用于估算函數(shù),例如多項式。更具體地,分割估算處理114可以用于將輸入自變量值分割或解析成多個更短的自變量值或縮減寬度自變量值,并且基于所述多個縮減寬度自變量值和短指令來估算函數(shù)。此外,函數(shù)可以作為使用短指令的多個估算(evaluation)來進行估算,導(dǎo)致更快和更有效的估算處理。此外,雖然分割估算處理114可以與結(jié)合處理108和110標(biāo)識的縮減寬度系數(shù)值一起實現(xiàn),如圖1所示,但是可替換地,分割估算處理114可以獨立于示例性的處理108和110來實現(xiàn)。
圖2是可用于最小化目標(biāo)函數(shù)與近似目標(biāo)函數(shù)的近似多項式之間的最大偏差的示例性近似比較200的圖(plot)。目標(biāo)函數(shù)可以包括超越函數(shù)和/或代數(shù)函數(shù),并且可以使用近似多項式來估算。典型地,處理器系統(tǒng),例如圖7的處理器系統(tǒng)710,使用近似多項式來估算超越和/或代數(shù)目標(biāo)函數(shù),所述近似多項式能夠比目標(biāo)函數(shù)更快和更有效地被處理。通常,在輸入自變量值的特定區(qū)間內(nèi),近似多項式典型地提供基本上體現(xiàn)了目標(biāo)函數(shù)的特征并且表示了目標(biāo)函數(shù)的數(shù)學(xué)估算。例如在輸入自變量值區(qū)間x=[a,b],可以用具有上面等式1所示的近似多項式pa(x)形式的近似多項式來近似超越函數(shù)sin(x)。
示例性近似值比較200包括目標(biāo)函數(shù)ft(x)202和估算的目標(biāo)近似多項式pt(x)204在估算區(qū)間x=
]]>內(nèi)相對于輸入自變量x的圖。目標(biāo)近似多項式pt(x)204被產(chǎn)生以便在估算區(qū)間內(nèi)最小化目標(biāo)函數(shù)ft(x)的估算與目標(biāo)近似多項式pt(x)的估算之間的最大偏差210。通常,最大偏差210的值基于近似多項式的近似系數(shù)值(例如等式1所示的系數(shù)值p0,p1,p2等)的選擇。可接受的最大偏差可以基于對特定應(yīng)用的準(zhǔn)確度要求,并且可以例如在設(shè)計階段102(圖1)被選擇。此外,近似多項式可以實現(xiàn)的準(zhǔn)確度通?;谟糜趫?zhí)行近似計算的多項式系數(shù)值的數(shù)量。
選擇適當(dāng)?shù)慕贫囗検较禂?shù)值可以包括產(chǎn)生近似多項式的操作和在給定輸入自變量估算區(qū)間內(nèi)將近似多項式的估算與目標(biāo)函數(shù)的估算進行比較的操作的多次迭代,所述比較操作如圖2中目標(biāo)函數(shù)ft(x)202和目標(biāo)近似多項式pt(x)204的圖所示。
目標(biāo)近似多項式pt(x)204的準(zhǔn)確度也與用于近似目標(biāo)函數(shù)ft(x)202的位數(shù)相關(guān)聯(lián)。例如,可能需要以16位的準(zhǔn)確度來近似目標(biāo)函數(shù)ft(x)202。如果那樣的話,選擇近似系數(shù)值來使能16位準(zhǔn)確度的近似。
圖3是示例性的短寬度近似方法或處理300的流程圖,所述方法或處理可用于產(chǎn)生與多項式相關(guān)聯(lián)的短寬度系數(shù)值。示例性的短寬度近似處理300基本上與圖1的短寬度近似處理108類似或相同,并且可以利用硬件(例如圖6的示例性系統(tǒng)600)和/或儲存于機器可訪問介質(zhì)(例如計算機可訪問介質(zhì))并且執(zhí)行于處理器系統(tǒng)(例如圖7的處理器系統(tǒng)710)的軟件來實現(xiàn)。通常,可以使用示例性的短寬度近似處理300來標(biāo)識多個與多項式相關(guān)聯(lián)的系數(shù)值并且基于所述多個系數(shù)值的至少一個來確定至少一個短寬度系數(shù)值。多項式可以是具有結(jié)合上面圖2描述的近似系數(shù)值的近似多項式。如下更詳細描述的,通過縮減近似系數(shù)值的數(shù)據(jù)寬度來產(chǎn)生短寬度系數(shù)值,以便短寬度系數(shù)值可以作為立即數(shù)值被存入指令存儲器和/或使能運行時階段(例如圖1的運行時階段106)中短指令的使用。
現(xiàn)參見圖3,系數(shù)計數(shù)器Cm被初始化(框302)。系數(shù)計數(shù)器Cm被置為等于最高次值m,所述最高次值m指定要產(chǎn)生的初始近似多項式psi(x)的最高次近似系數(shù)值。例如,如果系數(shù)計數(shù)器Cm被置為等于5,可以產(chǎn)生具有最高次系數(shù)值是5次項中的系數(shù)值的5次近似多項式(例如p5·x5)。
近似初始目標(biāo)函數(shù)fi(x)的初始近似多項式psi(x)被產(chǎn)生(框304)。初始目標(biāo)函數(shù)fi(x)根據(jù)輸入自變量x來定義并且可以是超越或代數(shù)函數(shù),例如sin(x)。具有上文中等式1的近似多項式pa(x)形式的初始近似多項式psi(x)如下面的等式2所示。
等式2 psi(x)=p0+p1·x+p2·x2+…+pm-1·xm-1+pm·xm如等式2所示,初始近似多項式psi(x)是具有由最高次值m指定的最高次近似系數(shù)的m次多項式。
系數(shù)計數(shù)器Cm指定的近似系數(shù)值的數(shù)據(jù)寬度被縮減(框306)。例如,如果系數(shù)計數(shù)器Cm等于最高次值m,通過縮減近似系數(shù)值pm的數(shù)據(jù)寬度來產(chǎn)生短寬度系數(shù)值p′m。任何縮減值的數(shù)據(jù)寬度的操作可以用于產(chǎn)生短寬度系數(shù)p′m,例如舍入、截尾等。
隨后,基于初始目標(biāo)函數(shù)ft(x)和短寬度系數(shù)項(例如p′m·xm)產(chǎn)生更新的目標(biāo)函數(shù)fsu(x)(框308)。具體來說,通過將輸入自變量x提高到系數(shù)計數(shù)器Cm的值的冪(也就是xm)并且將該結(jié)果乘以短寬度系數(shù)值p′m來產(chǎn)生短寬度系數(shù)項p′m·xm。隨后,通過從初始目標(biāo)函數(shù)fi(x)中減去短寬度系數(shù)項p′m·xm來產(chǎn)生更新的目標(biāo)函數(shù)fsu(x),如下面的等式3所示。
等式3 fsu(x)=fi(x)-p′m·xm=sin(x)-p′m·xm如等式3所示,函數(shù)sin(x)表示初始目標(biāo)函數(shù)fi(s),并且更新的目標(biāo)函數(shù)fsu(x)等于超越函數(shù)sin(x)減去短寬度系數(shù)項p′m·xm。
系數(shù)計數(shù)器Cm減1(也就是m-1)來指示下一個最高次近似系數(shù)值(例如pm-1)的次數(shù)(框310)?;谙禂?shù)計數(shù)器Cm、更新的目標(biāo)函數(shù)fsu(x)和已經(jīng)產(chǎn)生的任何短寬度系數(shù)值(例如短寬度系數(shù)值p′m)隨后產(chǎn)生更新的近似多項式psu(x)(框312)。通過產(chǎn)生近似更新的目標(biāo)函數(shù)fsu(x)的當(dāng)前近似多項式和將短寬度系數(shù)項p′m·xm加到當(dāng)前近似多項式來產(chǎn)生更新的近似多項式psu(x)。當(dāng)前近似多項式的次數(shù)由系數(shù)計數(shù)器的值來指定(例如pm-1)。例如,如果先前確定的近似多項式是5次多項式,則當(dāng)前近似多項式將是4次多項式。更新的近似多項式psu(x)包括當(dāng)前近似多項式加上短寬度系數(shù)項p′m·xm,如下面等式4所示。
等式4 psu(x)=p0+p1·x+p2·x2+…+pm-1·xm-1+p′m·xm基于更新的目標(biāo)函數(shù)fsu(x)產(chǎn)生更新的近似多項式psu(x),因為更新的目標(biāo)函數(shù)fsu(x)的估算被初始目標(biāo)函數(shù)fi(x)減去短寬度系數(shù)項的差來補償。因此,基于初始目標(biāo)函數(shù)fi(x)和由短寬度系數(shù)項的差引入的補償因子來產(chǎn)生更新的近似多項式psu(x)的近似系數(shù)值,以便通過更新的近似多項式psu(x)和初始目標(biāo)函數(shù)fi(x)來實現(xiàn)初始目標(biāo)函數(shù)fi(x)的準(zhǔn)確近似。
更新的近似多項式psu(x)與初始目標(biāo)函數(shù)fi(x)進行比較(框314)。通常,進行比較來確定相對于初始目標(biāo)函數(shù)fi(x)的估算更新的近似多項式psu(x)的估算是否相對準(zhǔn)確。更新的近似多項式psu(x)和初始目標(biāo)函數(shù)fi(x)的比較可以基本上與上面結(jié)合圖2描述的目標(biāo)函數(shù)ft(x)和目標(biāo)近似多項式pt(x)的比較類似。
對更新的近似多項式psu(x)和初始目標(biāo)函數(shù)fi(x)的比較進行分析以確定更新的近似多項式psu(x)的準(zhǔn)確度是否可以接受(框316)。如果該準(zhǔn)確度可以接受,則系數(shù)計數(shù)器Cm的值和任何短寬度系數(shù)值(例如p′m)被存入儲存區(qū)(框318)??刂齐S后傳遞到框306,其中下一個最高次近似系數(shù)值的寬度隨后被縮減(例如p′m-1=RND(pm-1))(框306)。
如果在框316中準(zhǔn)確度不可接受,那么先前產(chǎn)生的短寬度系數(shù)值被丟棄,并且系數(shù)計數(shù)器Cm的值和存入存儲器中的任何短寬度系數(shù)值被傳到長寬度近似處理(框320)。例如,如果經(jīng)過幾次短寬度近似處理300的迭代之后,初始近似多項式psi(x)的近似系數(shù)值中的3個(例如pm-2,pm-1,pm)被縮減到短寬度系數(shù)值(例如p′m-2,p′m-1,p′m)并且將下一個最高次近似系數(shù)值(例如pm-3)縮減到短寬度表示形式會導(dǎo)致框316中不可接受的最大偏差(例如圖2的最大偏差210),那么短寬度系數(shù)值被傳到長寬度近似處理(框320)。
因此,可以重復(fù)框306、308、310、312、314、316和318的處理直到更新的近似多項式的準(zhǔn)確度不可被接受。因此,在短寬度近似處理300期間可以產(chǎn)生多個更新的目標(biāo)函數(shù)fsu(x)和更新的近似多項式psu(x)。例如,可以根據(jù)下面等式5產(chǎn)生多個更新的目標(biāo)函數(shù)fsu(x)直到更新的近似多項式的準(zhǔn)確度不可被接受。
等式5 fsu(x)=fi(x)-…-p′m-2·xm-2-p′m-1·xm-1-p′m·xm圖4是示例性的長寬度近似方法或處理400的流程圖,所述方法或處理可用于產(chǎn)生與多項式相關(guān)聯(lián)的長寬度系數(shù)。示例性的長寬度近似處理400可以基本上與圖1的長寬度近似110和圖3的長寬度近似320類似或相同。此外,示例性的長寬度近似處理400可以使用硬件(例如圖6的示例性系統(tǒng)600)和/或儲存于機器可訪問介質(zhì)并執(zhí)行于例如圖7的處理器系統(tǒng)的處理器上的軟件來實現(xiàn)。此外,示例性的長寬度近似處理400可以與圖3的示例性的短寬度近似處理300一起使用以產(chǎn)生具有短寬度系數(shù)值和長寬度系數(shù)值的混合寬度近似多項式。
可以基于例如近似系數(shù)值來產(chǎn)生長寬度系數(shù)值。近似系數(shù)值可以用任何數(shù)量的位(例如56位、64位等)來表示。因此,近似系數(shù)值被轉(zhuǎn)換為長寬度系數(shù)值(例如32位值),以減少儲存它們所需的存儲器空間并且減少運行時階段(例如圖1的運行時階段106)使用長寬度系數(shù)值計算(calculation)的復(fù)雜性。
可以基于系數(shù)計數(shù)器Cw和初始目標(biāo)函數(shù)(例如結(jié)合上面圖3描述的初始目標(biāo)函數(shù)fi(x))來產(chǎn)生長寬度系數(shù)值。系數(shù)計數(shù)器Cw基本上與結(jié)合上面圖3描述的系數(shù)計數(shù)器Cm類似或相同。
通過將系數(shù)計數(shù)器Cw置為等于最高次值w來將其初始化(框402)。最高次值w指定要為初始近似多項式pli(x)產(chǎn)生的最高次近似系數(shù)值的次數(shù)。此外,如果示例性的長寬度近似處理400與示例性的短寬度近似處理300(圖3)一起使用,則可以通過取回在圖3的框318中存入存儲器的系數(shù)計數(shù)器Cm的最后一個值,將系數(shù)計數(shù)器Cm的值減1,并且將最高次值w置為等于所得結(jié)果來初始化系數(shù)計數(shù)器Cw。
初始近似多項式pli(x)被產(chǎn)生來近似初始目標(biāo)函數(shù)fi(x)。初始近似多項式pli(x)中的近似系數(shù)值的數(shù)量由下面等式6所示的系數(shù)計數(shù)器Cw的值來定義。
等式6 pli(x)=p0+p1·x+…+pw-1·xw-1+pw·xw由系數(shù)計數(shù)器Cw的值指定的最高次近似系數(shù)值的數(shù)據(jù)寬度被縮減以產(chǎn)生長寬度系數(shù)值(框406)。例如,如果系數(shù)計數(shù)器Cw的值等于最高次值w,那么基于近似系數(shù)值pw產(chǎn)生長寬度系數(shù)值p′w。可以使用例如舍入、截尾等的任何操作來產(chǎn)生長寬度系數(shù)值。
執(zhí)行比較操作來確定是否任何近似系數(shù)值仍需要被轉(zhuǎn)換為長寬度系數(shù)值(框408)。具體來說,系數(shù)計數(shù)器Cw的值可以與初始近似多項式pli(x)的最低次項的次數(shù)進行比較。如果系數(shù)計數(shù)器Cw的值大于初始近似多項式pli(x)的最低次項的次數(shù),則產(chǎn)生更新的目標(biāo)函數(shù)flu(x)(框410)。
基于初始目標(biāo)函數(shù)fi(x)和任何已經(jīng)產(chǎn)生的長寬度系數(shù)值來產(chǎn)生更新的目標(biāo)函數(shù)flu(x)(框410)。例如更新的目標(biāo)函數(shù)flu(x)包括具有長寬度系數(shù)值p′w的長寬度系數(shù)項(例如p′w·xw)。通過將輸入自變量x提高到系數(shù)計數(shù)器Cw的值的冪(例如xw)并且將該結(jié)果乘以長寬度系數(shù)值p′w來產(chǎn)生長寬度系數(shù)項p′w·xw。隨后根據(jù)下面的等式7通過從初始目標(biāo)函數(shù)fi(x)減去長寬度系數(shù)項p′w·xw來產(chǎn)生更新的目標(biāo)函數(shù)flu(x)。
等式7 flu(x)=fi(x)-p′w·xw=sin(x)-p′w·xw如等式7所示,函數(shù)sin(x)表示初始目標(biāo)函數(shù)fi(x)并且更新的目標(biāo)函數(shù)等于函數(shù)sin(x)減去長寬度系數(shù)項p′w·xw的乘積。
隨后,系數(shù)計數(shù)器Cw減1(例如w-1)來表示下一個最高次近似系數(shù)值的次數(shù)(例如pw-1)(框412)。隨后,產(chǎn)生更新的近似多項式plu(x)來近似更新的目標(biāo)函數(shù)flu(x)(框414)。更新的近似多項式plu(x)基于系數(shù)計數(shù)器Cw和更新的目標(biāo)函數(shù)flu(x)來產(chǎn)生。如下面等式8所示,更新的近似多項式plu(x)被產(chǎn)生來近似更新的目標(biāo)函數(shù)flu(x)并且包括如系數(shù)計數(shù)器Cw的值所指示的最高次項(例如pw-1·xw-1)。
等式8 plu(x)=p0+p1·x+…+pw-1·xw-1根據(jù)上面的等式8產(chǎn)生更新的近似多項式plu(x)之后,控制回到框406并且如系數(shù)計數(shù)器Cw所指示的最高次近似系數(shù)值(例如pw-1)被轉(zhuǎn)換成長寬度系數(shù)(例如p′w-1)(框406)。如果在框408中確定其他近似系數(shù)值仍要被轉(zhuǎn)換為長寬度系數(shù)值,那么產(chǎn)生另一個更新的目標(biāo)函數(shù)flu(x)(框410)??梢砸赃@種方式重復(fù)框406、408、410、412和414的處理直到初始近似多項式pli(x)的最低次系數(shù)值(例如p0)被轉(zhuǎn)換為長寬度系數(shù)值。
如果在框408中確定了最后一個近似系數(shù)值已被轉(zhuǎn)換為長寬度系數(shù)值,那么縮減寬度系數(shù)值(也就是與長寬度近似處理400相關(guān)聯(lián)的產(chǎn)生的長寬度系數(shù)值和與短寬度近似處理300相關(guān)聯(lián)的產(chǎn)生的短寬度系數(shù)值)被存入指令存儲器的指令中(框416)。具體來說,在設(shè)計階段(例如圖1的設(shè)計階段102)可以使用縮減寬度系數(shù)值作為立即數(shù)值來編寫代碼。在這種方式下,立即數(shù)值在編譯階段(例如圖1的編譯階段104)可以存入指令存儲器的指令中。隨后,在運行時階段(例如圖1的運行時階段106)縮減寬度系數(shù)值可以被多次使用來表示和估算混合寬度多項式。
圖5是示例性的分割估算方法或處理500的流程圖,所述方法或處理可用于通過分割輸入自變量來估算多項式。示例性的分割估算處理500基本上與圖1的分割估算處理114類似或相同,并且可以在運行時階段(例如圖1的運行時階段106)使用硬件(例如圖6的示例性系統(tǒng)600)或儲存于機器可訪問介質(zhì)并且執(zhí)行于例如圖7的處理器系統(tǒng)710的系統(tǒng)上的軟件來實現(xiàn)。此外,示例性的分割估算處理500可以結(jié)合在圖3的短寬度近似處理300和/或圖4的長寬度近似處理400期間產(chǎn)生的混合寬度系數(shù)值來使用。
多項式可以是近似多項式和/或可以包括結(jié)合圖3的短寬度估算處理300和圖4的長寬度估算處理產(chǎn)生的混合寬度系數(shù)值。但是,可以使用分割估算處理來估算任何多項式。
可以基于多個縮減寬度參數(shù)使用分割估算處理500來估算多項式。具體來說,縮減寬度輸入?yún)?shù)可以通過為給定多項式p(x)中取回或接收輸入自變量值x來產(chǎn)生。輸入自變量值x可以是長值(例如32位值),所述長值需要使用長指令來估算多項式p(x)。例如,在IntelXSale處理器上,如果多項式p(x)的輸入自變量值x和系數(shù)值是大于16位值,對多項式p(x)進行估算可能需要長乘法指令。但是,通過將輸入自變量值x分割或解析成多個縮減寬度參數(shù),例如包括8位或16位值的短寬度參數(shù),可以使得短指令的使用能夠進行,從而導(dǎo)致更快和更有效的多項式估算。例如,如下詳細所述,如果輸入自變量值x被分割成兩個縮減寬度參數(shù),多項式可以作為兩個并行的估算實例來估算。一個估算實例可以基于縮減寬度參數(shù)中的一個來估算多項式而另一個估算實例基于另一個縮減寬度參數(shù)來估算多項式。
通過首先接收或取回輸入自變量值x并且將該自變量值分割或解析成高位部分(high-portion)的自變量值xHI和低位部分(low-portion)的自變量值xLO來估算多項式p(x)(框520)。可以分割輸入自變量值x以便至少高位部分自變量值xHI小于16位值以確保高位部分自變量值xHI和多項式p(x)的任何系數(shù)的相乘都小于或等于32位值。基于高位部分自變量值xHI和低位部分自變量值xLO,多項式p(x)可以隨后作為兩個并行的估算實例(即高位部分估算和低位部分估算)來進行估算。
基于高位部分自變量值xHI的高位部分估算從初始化系數(shù)計數(shù)器Ch開始(框504)。系數(shù)計數(shù)器Ch設(shè)置為等于多項式的次數(shù)值h,所述值h指定多項式p(x)的最高次項的次數(shù)。例如,如果多項式是5次多項式,那么多項式的次數(shù)值h就等于5。隨后高位臨時變量P被初始化并被置為等于多項式p(x)的最高次的系數(shù)值(例如P=ph)(框506)??梢曰谙禂?shù)計數(shù)器Ch的值標(biāo)識最高次系數(shù)值。
系數(shù)計數(shù)器Ch減1(例如h-1)(框508)。在下面的框512中,系數(shù)計數(shù)器Ch的值可用于標(biāo)識要被加到高位臨時變量P的值的下一個系數(shù)。高位部分自變量值xHI與高位臨時變量P的值相乘(框510)。在框510中的乘法可以使用短乘法指令來實現(xiàn)以產(chǎn)生乘積值P=ph·xHI。此外,通過覆寫先前的內(nèi)容,框510的乘法的結(jié)果被存入高位臨時變量P。
基于系數(shù)計數(shù)器Ch,下一個最高次多項式系數(shù)被標(biāo)識并且被加到高位臨時變量P的值上(框512)。加法(框512)的結(jié)果可以如值P=ph·xHI+ph-1所示并且被存入高位臨時變量P。執(zhí)行測試以確定是否已到達最后的多項式系數(shù)(框514)。該測試可以包括基于系數(shù)計數(shù)器Ch和多項式p(x)的最低次項的次數(shù)的比較。例如,常數(shù)項(例如p0)指示最低次數(shù)等于0。如果框514中系數(shù)計數(shù)器Ch的值不等于多項式p(x)的最低次項的次數(shù),控制傳回框508??梢砸赃@種方式重復(fù)框508、510、512和514的處理直到多項式p(x)的最后的系數(shù)值被加到高位臨時變量P的值上,以產(chǎn)生高位部分估算結(jié)果p(xHI)。另一方面,如果在框514處系數(shù)計數(shù)器Ch的值等于多項式p(x)的最低次數(shù),基于高位臨時變量P(例如高位部分估算結(jié)果p(xHI))和低位臨時變量Q的值可以確定多項式p(x)的最終估算結(jié)果,所述臨時變量Q由結(jié)合下面描述的低位部分估算處理來確定。
基于低位部分自變量值xLO、高位部分自變量值xHI、多項式p(x)和系數(shù)計數(shù)器Cq,低位臨時變量Q的值可以使用低位部分估算處理來確定。系數(shù)計數(shù)器Cq基本上與結(jié)合上面高位部分估算處理描述的系數(shù)計數(shù)器Ch類似或相同。此外,低位部分估算處理可以與高位部分估算處理并行執(zhí)行。
關(guān)于自變量x對多項式p(x)求微分產(chǎn)生微分多項式 (框518)。系數(shù)計數(shù)器Cq隨后通過設(shè)置其等于微分多項式次數(shù)值q來初始化(框520),所述值q指定微分多項式 的最高次項的次數(shù)。低位臨時變量Q隨后被初始化并且被設(shè)置為等于微分多項式 的最高次系數(shù)值(例如Q=pq)(框522)。最高次微分系數(shù)值可以基于系數(shù)計數(shù)器Cq的值來確定。
系數(shù)計數(shù)器Cq減一(例如q-1)(框524)并且在下面框528中標(biāo)識下一個要加到低位臨時變量Q的微分系數(shù)值。高位部分自變量值xHI與低位臨時變量Q的值相乘(框526)??梢允褂枚坛朔ㄖ噶顏韺崿F(xiàn)框526中的乘法以產(chǎn)生乘積值Q=pq·xHT。此外,通過覆寫先前的內(nèi)容將乘法(框526)的結(jié)果寫入低位臨時變量Q中。
基于系數(shù)計數(shù)器Cq確定微分多項式 的下一個微分系數(shù)值并且將該值加到低位臨時變量Q的值上(框528)???28的加法的結(jié)果可以如值Q=pq·xHI+pq-1所示并且該結(jié)果可以存入低位臨時變量Q中。執(zhí)行測試來確定是否已經(jīng)到達了最后的微分系數(shù)值(框530)。該測試可以包括基于系數(shù)計數(shù)器Cq和微分多項式 的最低次項的次數(shù)的比較。例如,常數(shù)項(例如p0)指示最低次數(shù)等于0。如果框530中系數(shù)計數(shù)器Cq的值不等于微分多項式 的最低次項的次數(shù),控制回到框524。可以以這種方式重復(fù)框524、526、528和530的處理直到微分多項式 的最后的微分系數(shù)值已經(jīng)被加到低位臨時變量Q的值上。
另一方面,如果框530中系數(shù)計數(shù)器Cq的值等于微分多項式 的最低次項的次數(shù),低位部分自變量值xLO乘以低位臨時變量Q以產(chǎn)生低位部分估算結(jié)果 (框532)。低位部分的估算結(jié)果 被存入低位臨時變量Q中并且是對框516中確定的最終結(jié)果的修正項(correction term)。此外,框532中的乘法可以使用短乘法指令來實現(xiàn)。
隨后,通過把高位臨時變量P的值加到低位臨時變量Q的值來確定多項式p(x)的最終估算結(jié)果,如下面等式9和10所述。
等式9 p(x)=p(xHI+xLO)等式10p(x)=p(xHI)+xLO·ddxp(xHI)+O(xLO2)]]>等式9表示基于輸入自變量值x的多項式p(x)的估算,所述輸入自變量值x包括高位部分自變量值xHI和低位部分自變量值xLO的和。等式10將多項式p(x)的估算表示為高位部分估算結(jié)果p(xHI)、低位部分估算結(jié)果或修正項 和數(shù)量級項(order of magnitudeterm)O(xLO2)的和。
數(shù)量級項O(xLO2)指明引入到關(guān)于xHI和xLO的多項式p(x)的近似值的誤差量。更具體地說,數(shù)量級項O(xLO2)與忽略超出最高近似項(例如 的項引起的誤差量相關(guān)聯(lián)。例如用于根據(jù)x=xHI+xLO來表示多項式p(x)的精確泰勒展開可以表示為如下面所述等式11。
等式11p(x)=p(xHI)+xLO·ddxp(xHI)+xLO22·ddxp(xHI)+xLO36·d2dx2p(xHI)+···]]>截尾項 等上面等式11所示的項的誤差由與xLO2成比例的值來確定并且可以被表示為數(shù)量級項O(xLO2)。
在結(jié)果中的誤差量,如數(shù)量級項O(xLO2)所表示的一樣,是相對小的。因此,數(shù)量級項O(xLO2)可以在估算中被刪去以產(chǎn)生如下面等式12所述的多項式p(x)的近似值。
等式12p(x)≈p(xHI)+xLO·ddxp(xHI)]]>圖6是可用于實現(xiàn)在此描述的處理的示例性系統(tǒng)的功能框圖。圖6所示的結(jié)構(gòu)可以使用硬件和/或軟件的任何期望的組合來實現(xiàn)。例如可以使用一個或更多個集成電路、分立的半導(dǎo)體組件或無源電子組件。附加地或可替換地,可以使用儲存于機器可訪問介質(zhì)的指令、代碼或其他軟件和/或固件等來實現(xiàn)圖6的結(jié)構(gòu)中的一些或所有或幾部分,當(dāng)所述指令、代碼或其他軟件和/或固件等被例如處理器系統(tǒng)(例如圖7的處理器系統(tǒng)710)執(zhí)行時實現(xiàn)在此公開的方法(例如結(jié)合圖1到圖5描述的方法)。
通常,在設(shè)計階段(例如圖1的設(shè)計階段102)、運行時階段(例如圖1的運行時階段106)或示例性系統(tǒng)600或處理器系統(tǒng)710(圖7)的任何其他階段或操作狀態(tài)期間,示例性系統(tǒng)600使用函數(shù)發(fā)生器或選擇器來產(chǎn)生多個函數(shù)。因此,示例性系統(tǒng)600可以用于例如產(chǎn)生目標(biāo)函數(shù)(例如超越函數(shù)、代數(shù)函數(shù)等)和可以包括近似多項式的多項式。
在一些情況下,示例性系統(tǒng)600產(chǎn)生近似目標(biāo)函數(shù)的近似多項式(例如pi(x)≈ft(x)=sin(x))。隨后,示例性系統(tǒng)600可以基于近似多項式和目標(biāo)函數(shù)進行比較以確定近似多項式的準(zhǔn)確度。此外,示例性系統(tǒng)600產(chǎn)生可以在編譯階段(例如圖1的編譯階段104)與指令一起被存入指令存儲器中的縮減寬度數(shù)據(jù)值??s減寬度數(shù)據(jù)值可以包括結(jié)合上面圖3描述的短寬度系數(shù)值、結(jié)合上面圖4描述的長寬度系數(shù)值以及結(jié)合上面圖5描述的分割輸入自變量值。此外,例如在運行時階段106(圖1),縮減寬度數(shù)據(jù)值可以使能(enable)使用短指令來估算函數(shù)。示例性系統(tǒng)600也可以被配置為通過例如結(jié)合上面圖5描述的解析或分割輸入自變量值和使用并行的估算處理來估算函數(shù)。
現(xiàn)詳見圖6,示例性系統(tǒng)600包括函數(shù)選擇器602、縮減寬度數(shù)據(jù)發(fā)生器604、乘法器606、加法器608、減法器610、比較器612、微分器614和數(shù)據(jù)接口616,其中它們中的所有可以以可通信的方式如圖所示地耦合。函數(shù)選擇器602可以被配置為通過例如從存儲器位置取回或接收目標(biāo)函數(shù)和/或多項式或者通過產(chǎn)生目標(biāo)函數(shù)和/或多項式來選擇它們。例如,函數(shù)選擇器602可以取回目標(biāo)函數(shù),例如在圖3和圖4的示例性方法中所用的目標(biāo)函數(shù)ft(x)=sin(x)。此外,函數(shù)選擇器602可以產(chǎn)生具有任何需要數(shù)量的近似系數(shù)值的近似多項式。此外,函數(shù)選擇器602可以被配置為取回、接收和/或產(chǎn)生結(jié)合圖3、4和5描述的任何數(shù)學(xué)函數(shù)。函數(shù)選擇器602以可通信的方式耦合到縮減寬度數(shù)據(jù)發(fā)生器604,并且給縮減寬度數(shù)據(jù)發(fā)生器604提供系數(shù)值。此外,函數(shù)選擇器602以可通信的方式耦合到乘法器606、加法器608、減法器610、比較器612和微分器614,并且因此可以被配置為向它們提供函數(shù)。
如圖6所示,縮減寬度數(shù)據(jù)發(fā)生器604以可通信的方式耦合到函數(shù)選擇器602、乘法器606、加法器608、減法器610和數(shù)據(jù)接口616??s減寬度數(shù)據(jù)發(fā)生器604從函數(shù)選擇器602中取得系數(shù)值并且從數(shù)據(jù)接口616中取得輸入自變量值??s減寬度數(shù)據(jù)發(fā)生器604可以被配置為基于所述系數(shù)值和所述輸入自變量值產(chǎn)生縮減寬度數(shù)據(jù)。例如縮減寬度數(shù)據(jù)發(fā)生器604可以基于從函數(shù)選擇器602中獲得的系數(shù)值通過例如舍入或截尾系數(shù)值來產(chǎn)生縮減寬度數(shù)據(jù)(例如結(jié)合上面圖3和圖4描述的短寬度和長寬度系數(shù)值)。此外縮減寬度數(shù)據(jù)發(fā)生器604可以基于從數(shù)據(jù)接口616中獲得的輸入自變量值通過例如分割或解析輸入自變量值來產(chǎn)生多個輸入自變量值。
縮減寬度數(shù)據(jù)發(fā)生器604也可以被配置為給函數(shù)選擇器602、乘法器606、加法器608、減法器610和數(shù)據(jù)接口616提供縮減寬度數(shù)據(jù)值。具體來說,函數(shù)選擇器602可以被配置為基于縮減寬度數(shù)據(jù)值中的至少一些(例如縮減寬度系數(shù)值)來產(chǎn)生目標(biāo)函數(shù),例如結(jié)合圖3和圖4詳細描述的更新的目標(biāo)函數(shù)fsu(x)、flu(x)和更新的近似多項式psu(x)、plu(x)。
乘法器606、加法器608和減法器610可以被配置為從函數(shù)選擇器602獲得函數(shù),從縮減寬度數(shù)據(jù)發(fā)生器604中獲得縮減寬度數(shù)據(jù)值并且從數(shù)據(jù)接口616中獲得輸入自變量值。更具體地說,乘法器606、加法器608和減法器610可以被配置為基于從縮減寬度數(shù)據(jù)發(fā)生器604中獲得的縮減寬度數(shù)據(jù)值和從數(shù)據(jù)接口616中獲得的輸入?yún)?shù)來估算從函數(shù)選擇器602中獲得的函數(shù)。在一個實施例中,如結(jié)合圖3和圖4更詳細描述的,乘法器606、加法器608和減法器602可以被配置為基于輸入自變量x的值或值的區(qū)間(range)來估算更新的近似多項式psu(x)和plu(x)。
乘法器606、加法器608和減法器610可以向比較器612提供函數(shù)估算值(evaluationvalue)。比較器612可以被配置為比較一個函數(shù)與另一個函數(shù)的估算值。例如,結(jié)合圖2更詳細的描述,比較器612可以被配置為通過在輸入自變量值的區(qū)間上比較近似多項式的估算值和目標(biāo)函數(shù)并確定最大偏差(例如圖2的最大偏差210)來比較近似目標(biāo)函數(shù)的近似多項式的近似準(zhǔn)確度。
微分器614可以從函數(shù)選擇器602中取得函數(shù),例如,所述多項式可以包括近似多項式,并且計算(calculate)函數(shù)的導(dǎo)數(shù)以產(chǎn)生微分函數(shù)(例如微分多項式)。此外,微分器614可以給函數(shù)選擇器602提供微分函數(shù)以便進一步處理。
例如在編譯階段104(圖1),數(shù)據(jù)接口616可以從縮減寬度發(fā)生器604中獲得縮減寬度系數(shù)值并且將縮減寬度系數(shù)值存入存儲器中。例如在運行時階段106(圖1)數(shù)據(jù)接口616可以隨后從存儲器中取回縮減寬度系數(shù)值。此外,在運行時階段106,數(shù)據(jù)接口616可以給乘法器606、加法器608、減法器610和比較器612提供輸入自變量值。
圖7是可用于實現(xiàn)在此描述的裝置和方法的示例性處理器系統(tǒng)710的框圖。如圖7所示,處理器系統(tǒng)710包括耦合到互連總線或網(wǎng)絡(luò)714的處理器712。處理器712包括寄存器組或寄存器空間716,在圖7中所述寄存器組或寄存器空間716被描繪為整個是芯片上的(on-chip),但是可替換地,所述寄存器組或寄存器空間716可全部或部分位于芯片之外,并且通過專用電氣連接和/或通過互聯(lián)網(wǎng)絡(luò)或總線714直接耦合到處理器712。處理器712可以是任何適當(dāng)?shù)奶幚砥?、處理單元或微處理器,例如Intel X-ScaleTM、Intel PentiumTM系列的處理器等。在下面詳細描述的實施例中,處理器712是通常被稱為IA-32處理器的32位Intel處理器。雖然未在圖7中示出,但是處理器710可以是多處理器系統(tǒng),并且因此可以包括一個或更多個附加的處理器,所述附加的處理器等同于或類似于處理器712并且被耦合到互連總線或網(wǎng)絡(luò)714。
圖7的處理器712被耦合到包括存儲器控制器720和輸入/輸出(I/O)控制器722的芯片組718。眾所周知,芯片組通常提供I/O和存儲器管理功能以及多個通用和/或?qū)S眉拇嫫?、定時器等,所述寄存器、定時器等可以被耦合到芯片組的一個或更多個處理器訪問或使用。存儲器控制器720執(zhí)行這樣的功能,它使得處理器712(或多個處理器,如果有多個處理器)能夠訪問系統(tǒng)存儲器724和非易失性存儲器725。
系統(tǒng)存儲器724可以包括任何需要類型的易失性存儲器,例如靜態(tài)隨機訪問存儲器(SRAM)、動態(tài)隨機訪問存儲器(DRAM)等。非易失性存儲器725可以包括任何非需要類型的易失性存儲器,例如閃存存儲器和只讀存儲器(ROM)。
I/O控制器722執(zhí)行這樣的功能,它使得處理器712能夠通過I/O總線730與外部輸入/輸出(I/O)設(shè)備726和728通信。I/O設(shè)備726和728可以是任何需要類型的I/O設(shè)備,例如鍵盤、視頻顯示器或監(jiān)視器、鼠標(biāo)等。盡管在圖7中存儲器控制器720和I/O控制器722被描繪被芯片組718內(nèi)的分離的功能模塊,但是由這些模塊執(zhí)行的功能可以被集成到單個半導(dǎo)體電路中,或者可以使用兩個或更多個分離的集成電路來實現(xiàn)。
在此所述方法可以用儲存于機器可訪問介質(zhì)(例如計算機可訪問介質(zhì))被處理器712執(zhí)行的指令來實現(xiàn)。機器可訪問介質(zhì)可以包括固態(tài)、磁和/或光介質(zhì)的任何需要的組合,所述固態(tài)、磁和/或光介質(zhì)的任何需要的組合使用大存儲量儲存設(shè)備(例如盤片驅(qū)動器)、可移動儲存設(shè)備(例如軟盤、儲存卡或儲存棒等)和/或集成存儲器設(shè)備(例如隨機訪問存儲器、閃存存儲器等)的任何需要組合來實現(xiàn)。
雖然這里已描述了某些方法、裝置和制品,但是本發(fā)明的范圍不限于此。相反,本發(fā)明覆蓋按字面意義或等同原則落入所附權(quán)利要求書的范圍內(nèi)的所有方法、裝置和制品。
權(quán)利要求
1.一種執(zhí)行函數(shù)計算的方法,所述方法包括標(biāo)識與函數(shù)相關(guān)聯(lián)的系數(shù)值組;通過減少所述系數(shù)值中至少一個的數(shù)據(jù)寬度以擁有小于第二數(shù)據(jù)寬度的第一數(shù)據(jù)寬度來產(chǎn)生縮減寬度系數(shù)值;將所述縮減寬度系數(shù)值存入機器可執(zhí)行指令。
2.如權(quán)利要求1所述的方法,其中所述函數(shù)是多項式。
3.如權(quán)利要求2所述的方法,其中所述多項式是近似超越函數(shù)和代數(shù)函數(shù)中至少一種的近似多項式。
4.如權(quán)利要求2所述的方法,其中所述縮減寬度系數(shù)值與所述多項式的最高次項相關(guān)聯(lián)。
5.如權(quán)利要求1所述的方法,其中將所述縮減寬度系數(shù)值存入所述機器可執(zhí)行指令的操作包括將所述縮減寬度系數(shù)值作為立即值儲存。
6.如權(quán)利要求1所述的方法,其中將所述縮減寬度系數(shù)值存入所述機器可執(zhí)行指令的操作包括在指令存儲器中儲存所述縮減寬度系數(shù)值。
7.一種用于執(zhí)行函數(shù)計算的裝置,所述裝置包括包括存儲器的處理器系統(tǒng);以及儲存于所述存儲器的指令,所述指令使所述處理器系統(tǒng)能夠標(biāo)識與函數(shù)相關(guān)聯(lián)的系數(shù)值組;通過減少所述系數(shù)值中至少一個的數(shù)據(jù)寬度以擁有小于第二數(shù)據(jù)寬度的第一數(shù)據(jù)寬度來產(chǎn)生縮減寬度系數(shù)值;以及將所述縮減寬度系數(shù)值存入機器可執(zhí)行指令。
8.如權(quán)利要求7所述的裝置,其中所述函數(shù)是多項式。
9.如權(quán)利要求8所述的裝置,其中所述多項式是近似超越函數(shù)和代數(shù)函數(shù)中至少一種的近似多項式。
10.如權(quán)利要求8所述的裝置,其中所述縮減寬度系數(shù)值與所述多項式的最高次項相關(guān)聯(lián)。
11.如權(quán)利要求7所述的裝置,其中儲存于所述存儲器的所述指令使得所述處理器系統(tǒng)能夠?qū)⑺隹s減寬度系數(shù)值作為立即值存入所述機器可執(zhí)行指令。
12.如權(quán)利要求7所述的裝置,其中儲存于所述存儲器的所述指令使得所述處理器系統(tǒng)能夠?qū)⑺鰴C器可執(zhí)行指令存入指令存儲器中。
13.一種其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致機器標(biāo)識與函數(shù)相關(guān)聯(lián)的系數(shù)值組;通過減少所述系數(shù)值中至少一個的數(shù)據(jù)寬度以擁有小于第二數(shù)據(jù)寬度的第一數(shù)據(jù)寬度來產(chǎn)生縮減寬度系數(shù)值;以及將所述縮減寬度系數(shù)值存入機器可執(zhí)行指令。
14.如權(quán)利要求13所述的機器可訪問介質(zhì),其中所述函數(shù)是多項式。
15.如權(quán)利要求14所述的機器可訪問介質(zhì),其中所述系數(shù)值組與近似超越函數(shù)和代數(shù)函數(shù)中至少一種的近似多項式相關(guān)聯(lián)。
16.如權(quán)利要求14所述的其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器基于所述多項式的最高次項產(chǎn)生所述縮減寬度系數(shù)值。
17.如權(quán)利要求13所述的其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器將所述縮減寬度系數(shù)值作為立即值存入所述機器可執(zhí)行指令中。
18.如權(quán)利要求13所述其上存儲有指令的的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器將所述機器可執(zhí)行指令存入指令存儲器中。
19.一種執(zhí)行函數(shù)計算的裝置,所述裝置包括包括閃存存儲器的處理器系統(tǒng);以及儲存于所述閃存存儲器的指令,所述指令使所述處理器系統(tǒng)能夠標(biāo)識與函數(shù)相關(guān)聯(lián)的系數(shù)值組;通過減少所述系數(shù)值中至少一個的數(shù)據(jù)寬度以擁有小于第二數(shù)據(jù)寬度的第一數(shù)據(jù)寬度來產(chǎn)生縮減寬度系數(shù)值;以及將所述縮減寬度系數(shù)值存入機器可執(zhí)行指令。
20.如權(quán)利要求19所述的裝置,其中所述函數(shù)是近似超越函數(shù)和代數(shù)函數(shù)中至少一種的近似多項式。
21.一種確定多項式的估算值的方法,所述方法包括將輸入自變量值分成多個縮減寬度值;基于所述多個縮減寬度值確定與所述多項式相關(guān)聯(lián)的多個估算值;基于所述多個估算值確定所述多項式的所述估算值。
22.如權(quán)利要求21所述的方法,其中所述多個縮減寬度值的和等于所述輸入自變量值。
23.如權(quán)利要求21所述的方法,其中確定所述多個估算值的操作包括使用短乘法指令確定所述多個縮減寬度值的至少一個和所述多項式的至少一個系數(shù)的乘積。
24.如權(quán)利要求21所述的方法,其中確定所述多個估算值的操作包括微分所述多項式。
25.如權(quán)利要求21所述的方法,其中確定所述多項式的所述估算值的操作包括確定所述多個估算值的和。
26.如權(quán)利要求21所述的方法,其中確定所述多個估算值的操作包括確定修正項值。
27.一種用于確定多項式的估算值的裝置,所述裝置包括包括存儲器的處理器系統(tǒng);以及儲存于所述存儲器的指令,所述指令使所述處理器系統(tǒng)能夠?qū)⑤斎胱宰兞恐捣殖啥鄠€縮減寬度值;基于所述多個縮減寬度值確定與所述多項式相關(guān)聯(lián)的多個估算值;以及基于所述多個估算值確定所述多項式的所述估算值。
28.如權(quán)利要求27所述的裝置,其中所述多個縮減寬度值的和等于所述輸入自變量值。
29.如權(quán)利要求27所述的裝置,其中儲存于所述存儲器的所述指令使得所述處理器系統(tǒng)能夠使用短乘法指令通過確定所述多個縮減寬度值的至少一個和所述多項式的至少一個系數(shù)的乘積來確定所述多個估算值。
30.如權(quán)利要求27所述的裝置,其中儲存于所述存儲器的所述指令使得所述處理器系統(tǒng)能夠通過微分所述多項式確定所述多個估算值。
31.如權(quán)利要求27所述的裝置,其中儲存于所述存儲器的所述指令使得所述處理器系統(tǒng)能夠基于確定所述多個估算值的和來確定所述多項式的所述估算值。
32.如權(quán)利要求27所述的裝置,其中修正項值與所述多個估算值相關(guān)聯(lián)。
33.一種其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致機器將輸入自變量值分成多個縮減寬度值;基于所述多個縮減寬度值確定與所述多項式相關(guān)聯(lián)的多個估算值;以及基于所述多個估算值確定所述多項式的所述估算值。
34.如權(quán)利要求33所述的其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器使用短乘法指令通過確定所述多個縮減寬度值的至少一個和所述多項式的至少一個系數(shù)的乘積來確定所述多個估算值。
35.如權(quán)利要求33所述的其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器通過微分所述多項式來確定所述多個估算值。
36.如權(quán)利要求33所述的其上存儲有指令的機器可訪問介質(zhì),所述指令在被執(zhí)行時導(dǎo)致所述機器基于所述多個估算值的和來確定所述多項式的所述估算值。
37.一種用于確定多項式的估算值的裝置,所述裝置包括包括閃存存儲器的處理器系統(tǒng);以及儲存于所述閃存存儲器的指令,所述指令使所述處理器系統(tǒng)能夠?qū)⑤斎胱宰兞恐捣殖啥鄠€縮減寬度值;基于所述多個縮減寬度值確定與所述多項式相關(guān)聯(lián)的多個估算值;以及基于所述多個估算值確定所述多項式的所述估算值。
38.如權(quán)利要求0所述的裝置,其中儲存于所述閃存存儲器的所述指令使得所述處理器系統(tǒng)能夠使用短乘法指令通過確定所述多個縮減寬度值的至少一個和所述多項式的至少一個系數(shù)的乘積來確定所述多個估算值。
39.一種用于確定多項式的估算值的裝置,所述裝置包括被配置為產(chǎn)生至少一個縮減寬度數(shù)據(jù)值的縮減寬度數(shù)據(jù)發(fā)生器;以可通信的方式耦合到所述縮減寬度數(shù)據(jù)發(fā)生器并且被配置為基于所述至少一個縮減寬度數(shù)據(jù)值選擇至少一個函數(shù)的函數(shù)選擇器;以及以可通信的方式耦合到所述縮減寬度數(shù)據(jù)發(fā)生器和所述函數(shù)選擇器的比較器,其中所述比較器被配置為基于所述至少一個函數(shù)執(zhí)行至少一個比較。
40.如權(quán)利要求39所述的裝置,其中所述至少一個函數(shù)包括近似多項式。
41.如權(quán)利要求40所述的裝置,其中所述近似多項式與混合寬度多項式相關(guān)聯(lián)。
42.如權(quán)利要求39所述的裝置,其中所述至少一個縮減寬度數(shù)據(jù)值是短寬度系數(shù)值。
43.如權(quán)利要求39所述的裝置,其中所述至少一個縮減寬度數(shù)據(jù)值是長寬度系數(shù)值。
44.如權(quán)利要求39所述的裝置,還包括以可通信的方式耦合到所述函數(shù)選擇器的微分器,所述微分器可以被配置為微分所述至少一個函數(shù)。
全文摘要
公開了使用縮減寬度數(shù)據(jù)來進行計算的方法、裝置和制品。具體來說,示例性的方法確定與生成和估算函數(shù)相關(guān)聯(lián)的縮減寬度數(shù)據(jù)值。縮減寬度數(shù)據(jù)值中的一些在編譯階段被存入指令存儲器中的指令中,并且在運行時階段從指令存儲器中取回。
文檔編號G06F7/00GK1890628SQ200480036215
公開日2007年1月3日 申請日期2004年11月17日 優(yōu)先權(quán)日2003年12月3日
發(fā)明者T·唐, 高派·科里 申請人:英特爾公司