TW201732577A - 浮點加法低指令函數單元 - Google Patents

浮點加法低指令函數單元 Download PDF

Info

Publication number
TW201732577A
TW201732577A TW105138126A TW105138126A TW201732577A TW 201732577 A TW201732577 A TW 201732577A TW 105138126 A TW105138126 A TW 105138126A TW 105138126 A TW105138126 A TW 105138126A TW 201732577 A TW201732577 A TW 201732577A
Authority
TW
Taiwan
Prior art keywords
value
add
processor
add low
sum
Prior art date
Application number
TW105138126A
Other languages
English (en)
Other versions
TWI731896B (zh
Inventor
克里斯汀納 安德森
馬瑞斯 柯尼亞哈斯根
尼琪塔 阿斯塔
艾蒙斯特阿法 歐德亞麥德維爾
羅柏 瓦倫泰
密林德 吉卡
吉瑟斯 柯柏
馬克 查尼
亞米特 葛雷斯坦
西蒙 路邦諾維奇
澤夫 史博柏
Original Assignee
英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201732577A publication Critical patent/TW201732577A/zh
Application granted granted Critical
Publication of TWI731896B publication Critical patent/TWI731896B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)

Abstract

一例示處理器包含暫存器及加法(ADD)函數單元。該暫存器儲存第一、第二、與第三浮點(FP)值。該ADD低函數單元接收執行ADD低運算的請求,並回應於該請求:將第一FP值與第二FP值相加,以取得第一總和值;捨入該第一總和值,以產生ADD值;將該第一FP值與該第二FP值相加,以取得第二總和值;將該第二總和值減去該ADD值,以產生一差值;正規化該差值,以取得正規化差值;捨入該正規化差值,以產生ADD低值;及將該ADD低值送至一應用程式。

Description

浮點加法低指令函數單元
本案關係於浮點加法低指令函數單元。
對於電子裝置,電力保留與處理效率已經愈來愈成為焦點。為了降低電力損耗與增加效率,處理器可以使用浮點運算作各種處理與應用。處理器可以具有一或更多函數單元,以浮點運算執行指令。函數單元可以為硬體單元,例如浮點單元(FPU)或數學共處理器,這些在處理器上消耗相當大量的電力。更作用率的FPU與數學共處理器可以降低電力消耗並增加處理器的效率。
100‧‧‧方法
110‧‧‧第一數
114‧‧‧第二數
116‧‧‧相加
118‧‧‧正規化
120‧‧‧捨入
122‧‧‧ADD結果
124‧‧‧方法
126‧‧‧相加
128‧‧‧相減
130‧‧‧正規化
132‧‧‧捨入
134‧‧‧ADD低結果
200‧‧‧位元串
210‧‧‧第一尾數
220‧‧‧第二尾數
300‧‧‧處理器
302‧‧‧擷取
304‧‧‧長度解碼
306‧‧‧解碼
308‧‧‧配置
310‧‧‧重命名
312‧‧‧排程
314‧‧‧暫存器讀取/記憶體讀取
316‧‧‧執行級
318‧‧‧寫回/記憶體寫入
320‧‧‧異常處置
322‧‧‧確定
330‧‧‧前端單元
332‧‧‧分支預測單元
334‧‧‧指令快取單元
336‧‧‧指令TLB單元
338‧‧‧指令擷取
340‧‧‧解碼單元
350‧‧‧執行引擎單元
352‧‧‧重命名/配置器單元
354‧‧‧退役單元
356‧‧‧排程器單元
358‧‧‧實體暫存器檔案單元
360‧‧‧執行叢集
362‧‧‧執行單元
364‧‧‧記憶體存取單元
370‧‧‧記憶體單元
372‧‧‧資料TLB單元
374‧‧‧資料快取單元
376‧‧‧L2快取單元
390‧‧‧核心
400‧‧‧處理器
401‧‧‧前端
402‧‧‧快排程器
403‧‧‧亂序引擎
404‧‧‧慢/通用FP排程器
406‧‧‧簡單FP排程器
408‧‧‧整數暫存器檔案/旁路網路
410‧‧‧FP暫存器檔案/旁路網路
411‧‧‧執行方塊
412‧‧‧AGU
414‧‧‧AGU
416‧‧‧快ALU
418‧‧‧快ALU
420‧‧‧慢ALU
422‧‧‧FP
426‧‧‧指令預取器
428‧‧‧指令解碼器
430‧‧‧軌跡快取
432‧‧‧微碼ROM
434‧‧‧微運算佇列
500‧‧‧多處理器系統
514‧‧‧I/O裝置
516‧‧‧第一匯流排
518‧‧‧匯流排橋接器
520‧‧‧第二匯流排
522‧‧‧鍵盤/滑鼠
524‧‧‧音訊I/O
527‧‧‧通訊裝置
528‧‧‧儲存單元
530‧‧‧碼與資料
532‧‧‧記憶體
534‧‧‧記憶體
538‧‧‧高效圖形電路
539‧‧‧高效圖形介面
550‧‧‧P-P介面
552‧‧‧P-P介面
554‧‧‧P-P介面
570‧‧‧處理器
572‧‧‧整合記憶體控制器單元
574a,b‧‧‧處理器核心
576‧‧‧P-P介面
578‧‧‧P-P介面
580‧‧‧處理器
582‧‧‧整合記憶體控制器單元
584a,b‧‧‧處理器核心
586‧‧‧P-P介面
588‧‧‧P-P介面
590‧‧‧晶片組
594‧‧‧P-P介面
596‧‧‧介面
598‧‧‧P-P介面
600‧‧‧系統
614‧‧‧I/O裝置
615‧‧‧傳統I/O裝置
632‧‧‧記憶體
634‧‧‧記憶體
670‧‧‧處理器
672‧‧‧控制邏輯
680‧‧‧處理器
682‧‧‧控制邏輯
690‧‧‧晶片組
700‧‧‧系統晶片
702‧‧‧互連單元
702A-N‧‧‧核心
706‧‧‧共享快取單元
708‧‧‧整合圖形邏輯
710‧‧‧系統代理單元
714‧‧‧整合記憶體控制器單元
716‧‧‧匯流排控制器單元
717‧‧‧應用處理器
720‧‧‧媒體處理器
724‧‧‧影像處理器
726‧‧‧音訊處理器
728‧‧‧視訊處理器
730‧‧‧SRAM單元
732‧‧‧DMA單元
740‧‧‧顯示單元
800‧‧‧系統晶片
806‧‧‧核心
807‧‧‧核心
808‧‧‧快取控制
809‧‧‧匯流排介面單元
810‧‧‧L2快取
811‧‧‧互連
815‧‧‧GPU
820‧‧‧視訊編解碼器
825‧‧‧視訊介面
830‧‧‧用戶身份模組
835‧‧‧開機ROM
840‧‧‧SDRAM控制器
845‧‧‧快閃控制器
850‧‧‧週邊控制
860‧‧‧DRAM
865‧‧‧快閃
870‧‧‧藍芽模組
875‧‧‧3G數據機
880‧‧‧GPS
885‧‧‧Wi-Fi
900‧‧‧計算系統
902‧‧‧處理裝置
904‧‧‧主記憶體
906‧‧‧靜態記憶體
908‧‧‧視訊顯示單元
910‧‧‧文數輸入裝置
914‧‧‧游標控制裝置
916‧‧‧信號產生裝置
918‧‧‧資料儲存裝置
920‧‧‧網路
922‧‧‧圖形處理單元
924‧‧‧電腦可讀取儲存媒體
926‧‧‧軟體
928‧‧‧視訊處理單元
930‧‧‧匯流排
932‧‧‧音訊處理單元
本發明的各種實施例將由以下詳細說明與本發明之各種實施例的附圖加以更完整的了解。
圖1A例示依據一實施例之執行ADD運算的方法的圖。
圖1B例示依據一實施例之執行ADD低運算 的方法的圖。
圖2例示依據一實施例之用於ADD低運算的位元串的圖。
圖3A為依據一實施例例示循序管線及暫存器重命名級,亂序派發/執行管線的方塊圖。
圖3B為依據一實施例例示執行浮點(FP)加法低運算的處理器的微架構的方塊圖。
圖4例示依據一實施例之包含用以執行FP加法低運算的邏輯電路的處理器的微架構的方塊圖。
圖5為依據一實施法的電腦系統的方塊圖。
圖6為依據另一實施法的電腦系統的方塊圖。
圖7為依據一實施法的系統晶片的方塊圖。
圖8例示依據一實施法的計算系統的方塊圖的另一實施法。
圖9例示依據一實施法的計算系統的方塊圖的另一實施法。
【發明內容及實施方式】
傳統中央處理單元(CPU)與圖形處理單元(GPU)設計包含FPU或數學共處理器。FPU可以對浮點數執行數學運算。例如,在FPU內的乘法-加法器可以執行熔合加法運算,以執行方程式(a×b)+c的單指令執行。FPU或數學共處理器可以為特殊硬體,例如算術邏輯單元 (ALU),其可以為電腦處理器(CPU)或圖形處理單元(GPU)的一部份,以執行某些浮點函數。CPU與GPU可以使用該FPU或數學共處理器,以用於範圍由多媒體處理與3D圖形處理到科學與工程應用的應用程式。傳統CPU與GPU可以加入整合乘法-累積運算,例如熔合加法運算。熔合加法運算可以較乘法後有加法者有較低潛候期與較高精度。
為了改良浮點算術處理,傳統處理器使用浮點加法(ADD)運算,以用以執行ADD指令,例如,a+b。傳統ADD運算可以利用具有單與雙倍精度(例如本機浮點精度)的硬體作加法運算。例如,很多傳統電子裝置具有於硬體中執行IEEE®雙倍精度算術標準之CPU或GPU,提供用於加、減、乘與除的基本運算的正確捨入結果。這些傳統電子裝置使用雙倍精度浮點表示法,以維持電子裝置的效能程度。然而,本機浮點精度可能對於某些應用並不適當。
在另一例子中,點積運算可以執行長串的浮點計算。當點積運算使用本機浮點精度時,本機浮點精度的不足精度產生在長串浮點計算的結果與數學結果間的捨入上的失配(即,不定精度)。本機浮點精度對於例如需要較高程度精度作微積分、線性代數函數、複數算術函數、某些數學庫函數、及使用長總和或需要多精度的點積之應用的科學應用的應用係不夠的。
當本機浮點精度不足時,多精度計算可以被 使用以符合適當的準確度要求。傳統ADD使用軟體仿真以執行多精度運算或擴充精度運算,以符合增加之準確度要求。然而,ADD運算的軟體仿真可以耗用好幾個浮點運算來執行。例如,為了對低部份或尾數執行ADD運算,當|a|、|b|的階為已知時,ADD運算可以採用於3個浮點(FP)運算間的ADD運算的軟體仿真,及當|a|、|b|的階為未知,例如一般實施法時,則ADD運算可以採用於5個FP運算間的ADD運算的軟體仿真。另外,3到5個FP運算來執行軟體仿真並不包含檢查特殊狀態,例如,無限大/NaN輸入或溢出,這些可能更進一步縮減ADD運算軟體仿真的效能。對於3至5個FP運算的軟體仿真也並不包含範圍檢查,這可能更進一步縮減ADD運算軟體仿真的效能。
於此所述之實施例可以藉由使用硬體運算單元來計算ADD的低部份或尾數(ADD低),來針對上述缺失。在一例子中,完整ADD運算的結果為高FP值、低FP值及最低FP值的總和,例如,高FP+低FP+最低FP。ADD低運算產生使用低FP值的結果。ADD低運算的優點為ADD低運算維持與計算完整ADD結果的ADD硬體類似的準確程度同時增加了ADD硬體的效率與效能。例如,當ADD(a,b)被捨入至最近整數時,ADD低運算可以具有準確ADD低結果(無捨入誤差)。例如,ADD低運算可以藉由降低用以計算該結果的FP運算的數目,而增加ADD硬體的效率與效能。例如,傳統上, (a_high+a_low)+(b_high+b_low)的雙倍-雙倍精度加法(其中,a、b、c及d可以為變數)被計算為高FP+低FP。在一例子中,傳統使用ADD演算法的雙倍-雙倍加法運算可能耗用7個FP運算,一分支,及3個邏輯運算與1FP運算的潛候期、一分支、及3個邏輯運算,而使用ADD低演算法計算的雙倍-雙倍加法運算可能耗用4個FP運算,具有3個FP運算的潛候期。在另一例子中,傳統擴充準確度總和運算(凱漢(Kahan)總和運算)可以耗用4個FP運算,具有4ADD的潛候期,而使用ADD低演算法的擴充準確度總和運算可以耗用2個FP運算,具有1個ADD與1個ADD低的潛候期。
圖1A例示用以依據一實施例執行ADD運算的方法100的圖。方法100可以為由邏輯單元或處理裝置的ALU或處理邏輯所至少部份執行,這些可以包含硬體(例如,電路、專用邏輯、可程式邏輯、微碼等)、軟體(例如,為處理裝置所執行之指令)、韌體或其組合。
參考圖1A,方法100開始為使用加法器,將第一數110與第二數112相加(116),以取得總和值。在一實施例中,第一數110與第二數112可以為浮點數,其可以以二進制格式表示。
在另一實施例中,第一數110可以包含第一尾數及第一指數及第二數112可以包含第二尾數及第二指數。這些指數可以為浮點數表示法(編碼)的一部份,這可以包含符號、指數及尾數欄。因此,在一實施例中,浮點 值可以等於{(-1)符號*2指數-偏項*尾數}。在一實施例中,當第一數110與第二數112相加時,第一尾數與第二尾數相加,以產生總和值。
在另一實施例中,移位器可以移位第一尾數與第二尾數的位元向左或向右。移位器可以移位第一尾數與第二尾數的位元,使得第一尾數與第二尾數的位元被適當地對準作相加或相減運算。
該方法可以包含使用正規器以正規化該總和值,以產生正規化(118)總和值。在一實施例中,正規化(118)可以包含使用編碼器編碼該總和值。該編碼可以包含分析該總和值的位元串的編碼器。該編碼器可以決定是否在該位元串中的位元要被移位。例如,編碼器可以分析位元串並識別最左(例如最高效)“0”位元的位置。如果最左“0”位元為由該位元數的左邊的5位元,則編碼器可以決定該位元串要被向左移位5個位置。在另一實施例中,正規化(118)可以包含使用移位器將位元串右移或左移。如果位元串被左移,則移位器可以將“0”值加至位元串的右側,以及,如果位元串被右移,則移位器可以將“0”值加至位元串的左側。
在一例子中,(在正規化前)結果包含在前導尾數位元中之1(“1”)。前導位元的位置可以為固定並取決於該實施法。當在前導位元位置之上有任一非零結果位元時,則正規化可以包含一次將結果向右移一位元,直到前導位元為1(“1”)及所有在其以上的位元位置都是零為止。 指數也可以隨著每次右移增量。否則,當前導位元為0(“0”)但在其較低位置有非零位元時,結果尾數可以一次左移一位元,直到前導位元為1(“1”)為止。類似地,結果指數可以每次左移都增量。
該方法可以更包含使用捨入器捨入該正規化總和值,以產生捨入(120)正規化總和值。該方法可以更包含使用捨入正規化總和值產生ADD結果(122)。在一實施例中,ADD結果值為ADD(a,b)=a+b的計算,其中a為第一數110及b為第二數112,及a+b被捨入。加法器、正規化器及捨入器可以為邏輯單元或ALU。
圖1B例示依據一實施例之執行ADD低運算的方法124的圖。方法124可以至少部份為由處理裝置或處理邏輯之邏輯單元或ALU所執行,其可以包含硬體(例如,電路、專用邏輯、可程式邏輯、微碼等)、軟體(例如為處理裝置所執行之指令)、韌體或其組合。
參考圖1B,方法124開始以使用加法器將第一數110與第二數112相加(126),以取得總和值。圖1B的方法124的一些數與結果係類似於圖1A的方法100的一些數與結果,並且除非特別說明之外,係以類似元件符號加以表示。該方法可以包含使用減法器以將總和值與ADD結果122相減(128),以產生差值。該方法可以包含使用正規化器來正規化該差值,以產生正規化(130)差值。在一實施例中,正規化(130)可以包含使用編碼器編碼該差值。編碼可以包含分析該差值的位元串的編碼器。 該編碼器可以決定是否在該位元串中的位元應被移位。在另一實施例中,正規化(130)可以包含使用移位器將一位元串向右或向左移。該方法可以包含使用捨入器捨入該正規化差值,以產生捨入(132)正規化差值。該方法可以包含使用捨入正規化差值產生該ADD低結果值,其在一實施例中,可以包含使用在捨入方塊132期間被丟棄的一或更多位元(134)。加法器、減法器、正規化器及捨入器可以為邏輯單元或ALU。
圖2例示依據一實施例之用於圖1B的ADD低運算的位元串200的圖。圖1B的ADD低運算可以使用以下ADD low(a,b)=round((a+b)-ADD(a,b))的演算法產生ADD低結果。位元串200可以包含第一尾數210及第二尾數220。
在一實施例中,第一尾數210為在方法100(圖1A)中之ADD運算的ADD結果值。第一尾數210可以為用於ADD結果122的正規化尾數。第一尾數210可以包含多數位元,包含b,b1,b2,...,bp-2,bp-1,其中b代表在位元串200中之該位元的位置。P代表第一尾數210或第二尾數220的位元格式。例如,當P等於24時,位元格式為單精度格式。在另一例子中,當P等於53時,位元格式為雙倍精度格式。
在另一實施例中,第二尾數220為在方法124(圖1B)中的ADD低運算的ADD低結果值。第二尾數220可以為用於ADD低結果值的正規化尾數。第二尾數 220可以包含多數位元bp,bp+1,...b2p-1,其中b代表在位元串200中之該位元的位置。在一例子中,假設|a|>=|b|而不失普通性,當指數(a)-指數(b)>p,則在捨入至最接近模式中,ADD(a,b)=a及ADD_low(a,b)=b。使用用於ADD低結果值的單精度格式的優點可以對於單指令多資料(SIMD)指令,降低平行計算的元件的數量。雙倍精度格式的優點為增加ADD結果126或ADD低結果值的準確度。例如,雙倍精度ADD低結果值可以被使用用於雙倍精度SIMD計算或純量計算。
在一實施例中,如同在前面段落所述,對於ADD結果值(圖1A)及/或ADD低結果值(圖1B)可以捨入。在一例子中,正規化ADD低結果值為預捨入尾數及ADD低結果值可以由R*2-p+1+bp*2-p+bp+1*2-p-1+...+b2p-1*2-2p+1+...捨入,其中,當ADD(a,b)被捨入離開零(朝向+/-無限大)時,R=-1,及當ADD(a,b)被捨入向零時,R=0。在另一例子中,ADD低結果值的指數可以使用正規化(例如藉由如在前述段落所述之移位)加以調整且可施加適當符號。
在一實施例中,ADD結果值或ADD低結果值可以被捨入,因為用於ADD結果值或ADD低結果值的位元長度超出位元串200的界定長度。例如,ADD低結果值可以使用以下ADD low(a,b)=(a+b)-ADD(a,b)的演算法加以產生,其中a為第一數110及b為第二數112(圖1A及1B)。
在另一例子中,當ADD低結果值超出位元串200的界定長度時,ADD低結果值可以使用以下演算法加以產生:ADD low(a,b)=round((a+b)-ADD(a,b))。在此例子中,ADD low(a,b)=(a+b)-ADD(a,b)為雙倍精度或單精度浮點格式,其超出位元串200的界定長度。在另一例子中,雙倍精度格式可以使用與正常浮點數兩倍一樣多的位元並超出位元串200的界定長度。
在一實施例中,ADD結果值或ADD低結果值可以使用捨入至最近整數演算法加以捨入。在另一實施例中,ADD結果值或ADD低結果值可以使用捨入向零演算法加以捨入。在另一實施例中,ADD結果值與ADD低結果值可以使用其他捨入演算法加以捨入。在另一實施例中,用以計算該ADD低結果值的尾位元的數目可以被限制,例如,限制尾位元為bp,bp+1,...,b2p-1。這可以如同將精準結果截尾至指定位元數(例如,直到位元b2p-1);在此情況中,所有較低位元(例如,從b2p開始)可以被丟棄。
圖3A為一方塊圖,例示依據本案的一些實施例之為處理器300所執行之循序管線以及暫存器重命名級亂序派發/執行管線的方塊圖。在圖3A中之實線方塊例示循序管線,而虛線方塊例示暫存器重命名亂序派發/執行管線。明確地說,處理器300描繪依據本案至少一實施例之予以包含在處理器中之循序架構核心與暫存器重命名邏輯亂序派發/執行邏輯。
在圖3A中,管線包含擷取級302、長度解碼級304、解碼級306、配置級308、重命名級310、排程(也稱為分派或派發)級312、暫存器讀取/記憶體讀取級314、執行級316、寫回/記憶體寫入級318、異常處置級322、及確定級324。在一些實施例中,級302-324的順序可以與所例示者不同並且不限於圖3A中所示之特定順序。
圖3B例示處理器300的微架構方塊圖,其實施依據一實施例之浮點(FP)加法低運算。處理器300包含耦接至執行引擎單元350的前端單元330,且兩者均耦接至記憶體單元370。處理器300可以包含精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、很長指令字元(VLIW)核心、或混合或替代核心類型。在另一選項中,處理器300可以包含特殊目的核心,例如網路或通訊核心、壓縮引擎、圖形核心或類似物。在一實施例中,處理器300可以為多核心處理器或多處理器系統的一部份。頁面相加及內容拷貝的實施例可以實施於處理器300內。
前端單元330包含分支預測單元332耦接至指令快取單元334,其係耦接至一指令轉譯後備緩衝器(TLB)336,其係耦接至一指令擷取單元338,其係耦接至解碼單元340。解碼單元340(也稱為解碼器)可以解碼指令並產生一或更多微運算、微碼登錄點、微指令、其他指令或其他控制信號作為輸出,這些係由原始指令所解碼、或以其他方式反映或所導出。解碼器340可以使用各種不 同機制實施。適當機制的例子包含但並不限於查看表、硬體實施法、可程式邏輯陣列(PLA)、微碼唯讀記憶體(ROM)等等。指令快取單元334進一步耦接至記憶體單元370。解碼單元340被耦接至在執行引擎單元350中的重命名/配置器單元352。
執行引擎單元350包含重命名/配置器單元352,耦接至退役單元354及一組一或更多排程器單元356。排程器單元356代表任意數量的不同排程器,包含保留站(RS)、中央指令窗等。排程器單元356被耦接至實體暫存器檔案單元358。各個實體暫存器檔案358代表一或更多實體暫存器檔案,不同的實體暫存器檔案儲存一或更多不同資料類型,例如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點等等,狀態(例如,指令指標,其係將被執行之下一指令的位址)等等。實體暫存器檔案單元358係為退役單元354所重疊,以例示暫存器重命名及亂序執行可以被實施的各種方式(例如,使用重排序緩衝器與退役暫存器檔案、使用未來檔案、歷史緩衝器、及退役暫存器檔案;使用暫存器圖及一池暫存器等等)。
通常,架構暫存器可以由處理器的外部或由程式設計師的觀點看到。暫存器並不限於任何已知特定類型的電路。只要暫存器能如同於此所述地儲存與提供資料,各種不同類型暫存器均可適用。適當暫存器的例子包含但並不限於專用實體暫存器、使用暫存器重命名的動態 配置實體暫存器、專用與動態配置實體暫存器的組合等等。退役單元354與實體暫存器檔案單元358係被耦接至執行叢集360。執行叢集360包含一組一或更多執行單元362及一組一或更多記憶體存取單元364。執行單元362可以執行各種運算(例如,移位、相加、相減、乘法)並對各種類型的資料(例如純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)進行運算。
雖然一些實施例可以包含專用於特定功能或功能組的若干執行單元,但其他實施例也可以包含僅一執行單元或多數執行單元,其全部執行所有的功能。排程器單元356、實體暫存器檔案單元358、及執行叢集360係被顯示為可能係複數個,因為某些實施例對於某些類型資料/運算建立分開管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線、及/或記憶體存取管線,其各個具有其各自的排程器單元、實體暫存器檔案單元、及/或執行叢集-及當為分開記憶體存取管線時,其中只有此管線的執行叢集具有記憶體存取單元364之某些實施例被實施)。也應了解,當使用分開的多數管線時,這些管線之一或更多者可以為亂序派發/執行及其他則為循序。
該組記憶體存取單元364被耦接至記憶體單元370,其舉幾個為例可以包含資料預取器380、資料TLB單元372、資料快取單元(DCU)374、及第二階(L2)快取單元376。在一些實施例中,DCU374也被稱為第一階 資料快取(L1快取)。DCU374可以處置多個未處理快取未中並持續服務進入的儲存與負載。其同時也支援維持住快取一致性。資料TLB單元372為可以藉由映射虛擬及實體位址空間而改良虛擬位址轉譯速度的快取。在一例示實施例中,記憶體存取單元364可以包含負載單元、儲存位址單元、及儲存資料單元,其各個係耦接至記憶體單元370中的資料TLB單元372。L2快取單元376可以耦接至一或更多其他階的快取並最後至主記憶體。
在一實施例中,資料預取器380藉由自動預測程式將消耗哪一資料而臆測負載/預取資料至DCU374。預取可以表示在資料實際為處理器所需求之前,將儲存在一記憶體階層的一記憶體位置(例如,位置)(例如較低階快取或記憶體)中的資料轉移至較接近該處理器的較高階記憶體位置(例如,得到較低存取潛候期)。更明確地說,預取可以表示在處理器發出需要特定資料轉回之前,資料由一較低階快取/記憶體的早先檢索至資料快取及/或預取緩衝器。
處理器300可以支援一或更多指令集(例如,x86指令集(具有一些以較新版本所加入之擴充);英國哈特佛蕭的金蘭利的影像科技的MIPS指令集;美國加州的Sunnyvale的ARM控股的ARM指令集(具有例如NEON的選用額外擴充))。
應了解,核心可以支援多線程(執行兩或更多並列組之運算或線程),並且可以以包含時間切割多線 程、同時多線程(其中,單一實體核心提供邏輯核心給實體核心為同時多線程的各個線程),或其組合(例如,時間切割擷取及解碼並且隨後同時多線程,例如於英特爾®的Hyperthreading技術中)。
雖然暫存器重命名係以亂序執行的情況下加以說明,但應了解的是,暫存器重命名也可以用於循序架構中。雖然處理器的例示實施例也包含分開的指令與資料快取單元與共享L2快取單元,但替代實施例也可以具有單一內部快取,用於指令與資料兩者,例如,第一階(L1)內部快取、或多個階之內部快取。在一些實施例中,系統可以包含內部快取與外部快取的組合,該外部快取係在核心及/或處理器的外部。或者,所有的快取可以在核心及/或處理器的外部。
圖4例示處理器400的微架構的方塊圖,其包含邏輯電路,以依據一實施例執行浮點(FP)加低運算。在一些實施例中,依據一實施例的指令可以被實施以對具有位元組、字元、雙字元、四字元等大小以及例如單及雙精度整數與浮點資料類型的資料類型之資料元件進行運算。在一實施例中,循序前端401係為處理器400的一部份,其擷取予以執行的指令並準備它們以在處理器管線中作後續使用。頁面相加與內容拷貝的實施例可以被實行於處理器400中。
前端401可以包含幾個單元。在一實施例中,指令預取器416由記憶體擷取指令並將其饋送至指令 解碼器418,其隨後將其解碼或解譯。例如,在一實施例中,解碼器解碼所接收指令為一或更多該機器可以執行之稱為“微指令”或“微運算”(也稱為微op或uop)的運算。在其他實施例中,解碼器將該指令剖析為運算碼與對應資料與為微架構所使用以依據一實施例執行運算的控制欄。在一實施例中,軌跡快取430取用已解碼微運算並將其組合為在微運算佇列434中的程式排序順序或軌跡以作執行。當軌跡快取430遭遇複雜指令時,微碼ROM 432提供完成該運算所需的微運算。
一些指令係被轉換為單一微運算,而其他則需要幾個微運算以完成整個運算。在一實施例中,如果需要超過四個微運算來完成指令,則解碼器418存取微碼ROM 432以完成該指令。對於一實施例,一指令可以被解碼為若干小數量微運算,用以在指令解碼器418處作處理。在另一實施例中,萬一需要一數量的微運算以完成該運算,則一指令可以被儲存在微碼ROM 432內。軌跡快取430表示決定正確微指令指標的登錄點可程式邏輯陣列(PLA),用以自該微碼ROM 432讀取微碼指令以完成依據一實施例的一或更多指令。在微碼ROM 432完成用於一指令的順序微運算後,機器的前端401回復從軌跡快取430擷取微運算。
亂序執行引擎403為準備指令作執行之處。亂序執行邏輯具有若干緩衝器,以平順與重排指令流,以當它們經過管線時最佳化其效能並完成排程以供執行。配 置器邏輯配置各個微運算所需的機器緩衝器與資源,以供執行。暫存器重命名邏輯重命名邏輯暫存器至暫存器檔案中的登錄項。配置器同時也配置登錄項,以用於在兩微運算佇列之一中的各個微運算,兩微運算佇列中,在指令排程器之前,一個用於記憶體操作及另一個用於非記憶體操作,指令排程器有:記憶體排程器、快速排程器402、慢/一般浮點排程器404、及簡單浮點排程器406。微運算排程器402、404、406根據其附屬輸入暫存器運算元源的就緒與微運算完成其運算所需的執行資源的可用性,決定何時微運算準備好供執行。一實施例之快排程器402可以在主時脈週期的各個一半處排程,而其他排程器也可以只在每一主處理器時脈週期排程一次。排程器仲裁調度埠,以排程微運算供執行。
暫存器檔案408、410位於執行方塊411內的排程器402、404、406及執行單元412、414、416、418、420、422、424之間。有分開的暫存器檔案408、410分別用於整數與浮點運算。一實施例的各個暫存器檔案408、410也包含旁路網路,其可以將未被寫入暫存器檔案的剛完成結果旁路或轉送至新的附屬微運算。整數暫存器檔案408與浮點暫存器檔案410也能彼此傳遞資料。在一實施例中,整數暫存器檔案408被分割成兩個分開暫存器檔案,一個暫存器檔案用於資料的低階32位元,第二暫存器檔案用於資料的高階32位元。一實施例的浮點暫存器檔案410具有128位元寬登錄項,因為浮點指令典 型具有寬度64至128位元的運算元。
執行方塊411包含執行單元412、414、416、418、420、422、424,其中指令被實際執行。此部份包含暫存器檔案408、410,其儲存微指令需要執行的整數與浮點資料運算元值。一實施例的處理器400包含若干執行單元:位址產生單元(AGU)412、AGU 414、快ALU 416、快ALU 418、慢ALU 420、浮點ALU422、浮點移動單元424。對於一實施例,浮點執行方塊412、414、執行浮點、MMX、SIMD及SSE、或其他運算。一實施例的浮點ALU 412包含64位元×64位元浮點除法器,以執行除法、平方根、及餘數微運算。本案的實施例中,涉及浮點值的指令可以以浮點硬體處置。
在一實施例中,ALU運算被轉到高速ALU執行單元416、418。一實施例的快ALU416、418可以以一半時脈週期的作用潛候期執行快速運算。對於一實施例,多數複數整數運算被傳送至慢ALU 410,因為慢ALU 410包含用於例如,乘法器、移位、旗標邏輯、及分支處理的長潛候期類型運算的整數執行硬體。記憶體載入/儲存運算係為AGU 412、414所執行。對於一實施例,整數ALU 416、418、420係以對64位元資料運算元執行整數運算的情況下加以描述。在其他實施例中,ALU 416、418、420也可以被實施以支援各種資料位元,包含16、32、128、256位元等。類似地,浮點單元412、414可以被實施以支援一範圍的具有各種寬度之位元的運算元。對於一 實施例,浮點單元412、414可以結合SIMD與多媒體指令,對128位元寬緊縮資料運算元運算。
在一實施例中,微運算排程器402、404、406在母負載完成執行之前調度附屬運算。因為微運算在處理器400內被臆測地排程與執行,所以處理器400亦包含用以處置記憶體未中之邏輯。如果資料負載在資料快取中未中,則在管線中可能有附屬運算在運行中,這可能留給排程器暫時不正確的資料。重播機制追蹤與重新執行使用該不正確資料的指令。只有附屬運算需要被重播及獨立的運算被允許完成。處理器的一實施例之排程器與重播機制也被設計以捕捉用以文字串比較運算的指令順序。
處理器400亦包含用以執行依據一實施例之浮點(FP)加法低運算之邏輯。在一實施例中,處理器400的執行方塊411可以包含微控制器(MCU),以執行依據於此發明說明所述之FP加法低運算。
用語“暫存器”可以表示板上處理器儲存位置,其係被使用作為指令的一部份以指明運算元。換句話說,暫存器可為由處理器的外側(由程式設計者觀點)所可使用之暫存器。然而,實施例的暫存器不應被限定為一特定類型的電路。反而,實施例的暫存器能儲存及提供資料,並執行於此所述之功能。於此所述之暫存器可以使用任意數量的不同技術在處理器內以電路實施,例如專用實體暫存器、使用暫存器重命名的動態配置實體暫存器、專用與動態配置實體暫存器的組合等等。在一實施例中,整 數暫存器儲存三十二位元整數資料。一實施例的暫存器檔案也包含八個多媒體SIMD暫存器用於緊縮資料。
為了於此討論,暫存器被理解為設計以保有緊縮資料的資料暫存器,例如,在微處理器中之64位元寬MMXTM暫存器(在一些實例中,也稱為“mm”暫存器),其被賦予來自美國加州聖塔卡拉的英特爾公司之MMX技術。可以以整數與浮點形式取得的這些MMX暫存器可以與跟隨著SIMD與SSE指令的緊縮資料元件一起運算。類似地,有關於SSE2、SSE3、SSE4或之後的(以上位方式稱為“SSEx”)技術的128位元寬XMM暫存器也可以被用以保有此等緊縮資料運算元。在一實施例中,於儲存緊縮資料與整數資料時,這些暫存器並不需要於兩資料類型間作區分。在一實施例中,整數與浮點係被包含在相同暫存器檔案中或被包含在不同暫存器檔案中。再者,在一實施例中,浮點與整數資料可以儲存在不同暫存器或相同暫存器中。
實施例可以實施在很多不同系統類型中。現參考圖5,顯示依據一實施法的多處理器系統500的方塊圖。如於圖5所示,多處理器系統500為點對點互連系統,並包含第一處理器570及第二處理器580,經由點對點互連550耦接在一起。如於圖5所示,各個處理器570與580可以為多核心處理器,包含第一與第二處理器核心(即處理器核心574a及574b與處理器核心584a及584b),但也有可能更多核心出現在處理器中。各個處理 器可以包含依據本案實施例之混合寫入模式邏輯。頁面相加與內容拷貝的實施例可以實施在處理器570、或處理器580中、或者兩者中。
雖然顯示有兩處理器570、580,但應了解的是,本案的範圍並不作此限定。在其他實施法中,一或更多額外處理器可以出現在給定處理器中。
處理器570與580係被顯示分別包含整合記憶體控制器單元572及582。處理器570也包含點對點(P-P)介面576及578作為其匯流排控制器單元的一部份;類似地,第二處理器580包含P-P介面586及588。處理器570、580可以經由點對點(P-P)介面550使用P-P介面電路578、588交換資訊。如於圖5所示,IMC 572及582將處理器耦接至各別記憶體,即記憶體532及記憶體534,其可以為本地附接至個別處理器的主記憶體的部份。
處理器570、580可以各個經由個別P-P介面552、554使用點對點介面電路576、594、586、598與晶片組590交換資訊。晶片組590也可以經由高效圖形介面539與高效圖形電路538交換資訊。
共享快取(未示出)可以包含在任一處理器內或者兩處理器之外,但仍經由P-P互連與該等處理器連接,使得如果處理器被置入於低電力模式時,則任一處理器或兩處理器的本地快取資訊可以被儲存在共享快取中。
晶片組590可以經由介面596耦接至第一匯 流排516。在一實施例中,第一匯流排516可以為週邊元件互連(PCI)匯流排,或例如PCI加速匯流排的匯流排或另一第三代I/O互連匯流排,雖然本案的範圍並不作此限定。
如於圖5所示,各種I/O裝置514可以耦接至第一匯流排516,其具有匯流排橋接器518,其耦接第一匯流排516至第二匯流排520。在一實施例中,第二匯流排520可以為低接腳數(LPC)匯流排。在一實施例中,各種裝置可以耦接至第二匯流排520,包含例如鍵盤及/或滑鼠522、通訊裝置527及儲存單元528,例如硬碟機或其他大量儲存裝置,其可以包含指令/碼及資料530。再者,音訊I/O 524可以耦接至第二匯流排520。注意其他架構也是有可能。例如,不同於圖5的點對點架構,系統也可以實施多點匯流排或其他此架構。
現參考圖6,所示為依據本案實施例之第三系統600的方塊圖。在圖5及圖6中的類似元件符號具有類似元件符號,及圖5的某些態樣已經由圖5中省略,以避免模糊圖6的其他態樣。
圖6例示處理器670、680可以分別包括整合記憶體與I/O控制邏輯(CL)672及682。針對至少一實施例,CL 672、682可以包含例如於此所述之整合記憶體控制器單元。另外,CL 672、682也可以包括I/O控制邏輯。圖6例示記憶體632、634係耦接至CL 672、682,及I/O裝置614也耦接至控制邏輯672、682。傳統I/O裝 置615被耦接至晶片組690。頁面相加與內容拷貝的實施例可以實施在處理器670中、或處理器680中、或兩者中。
圖7為例示系統晶片(SoC)700,其包含一或更多核心702。用於膝上型、桌上型、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、開關、嵌式處理器、數位信號處理器(DSP)、圖形裝置、視訊遊戲裝置、機上盒、微控制器、手機、攜帶式媒體播放器、手持裝置及各種其他電子裝置的技藝中已知的其他系統設計與組態也是適用的。通常,能加入於此所揭露的處理器及/或其他執行邏輯的多種類系統或電子裝置也大致係適用的。
圖7為依據本案實施例之SoC 700的方塊圖。虛線方塊為在更先進SoC上的特性。在圖7中,互連單元702係耦接至:應用處理器717,其包含一組一或更多核心702A-N及共享快取單元706;系統代理單元710;匯流排控制器單元716;整合記憶體控制器單元714;一組或一或更多媒體處理器720,其可以包含整合圖形邏輯708、影像處理器724,用以提供靜態及/或視訊攝影功能、音訊處理器726,用以提供硬體音訊加速、及視訊處理器728,用以提供視訊編碼/解碼加速;靜態隨機存取記憶體(SRAM)單元730;直接記憶體存取(DMA)單元732;及顯示單元740,用以耦接至一或更多外部顯示器。頁面相加與內容拷貝的實施例可以實施於SoC 700 中。
接著參考圖8,描繪依據本案實施例的系統晶片(SoC)設計之實施例。作為例示例子,SoC800被包含在使用者設備(UE)中。在一實施例中,UE表示任何予以為末端使用者所用以通訊的裝置,例如手持電話、智慧手機、平板電腦、超薄筆記型電腦、具有寬頻轉接器的筆電、或任何其他類似通訊裝置。UE可以連接至基地台或節點,其可以在本質上對應於在GSM網路中的行動台(MS)。頁面相加與內容拷貝的實施例可以實施在SoC 800中。
於此,SoC 800包含兩核心-806與807。類似如上的討論,核心806與807可以符合指令集架構,例如具有英特爾®架構核心TM的處理器、先進微裝置公司(AMD)處理器、MIPS為主處理器、ARM為主處理器設計、或其顧客、及其授權或採用者。核心806與807係耦接至相關於匯流排介面單元809與L2快取810的快取控制808,以與系統800的其他部份相通訊。互連811包含晶載互連,例如IOSF、AMBA或以上討論的其他互連,其可以實施所述揭露的一或更多態樣者。
互連811提供通訊通道給其他元件,例如:用戶身份模組(SIM)830以與SIM卡作成介面;開機ROM835,以保有為核心806與807所執行之開機碼,以初始化並開機SoC 800;SDRAM控制器840,以與外部記憶體(例如,DRAM 860)作成介面;快閃控制器845,以與 非揮發記憶體(例如,快閃865)作成介面;週邊控制850(例如,串列週邊介面),以與週邊作成介面;視訊編解碼器820與視訊介面825,以顯示與接收輸入(例如,觸控致能輸入);GPU 815以執行圖形相關計算等等。這些介面之任一者可以加入於此所述之實施例的態樣。
另外,系統例示用以通訊的週邊,例如藍芽模組870、3G數據機875、GPS 880、及Wi-Fi 885。注意如上所述,UE包含用於通訊的無線電。結果,這些週邊通訊模組可能不是都有被包含。然而,在UE中應包含一些形式之用於外部通訊的無線電。
圖9例示以計算系統900的例示形式表示的機器的示意代表圖,其中可以執行使得該機器執行於此所討論的任一或更多方法的一組指令。在替代實施例中,機器可以被連接(例如,接網路)至LAN、網內網路、網外網路或網際網路中的其他機器。該機器可以操作伺服器的容量或客戶-伺服器網路環境中的客戶裝置,或成為在同級間(或分散式)網路環境中的同級機器。該機器可以為個人電腦(PC)、平板PC、機上盒(STB)、個人數位助理(PDA)、蜂巢式電話、網路設備、伺服器、網路路由器、開關或橋接器、或任何能執行指明予以為該機器所採取動作的一組指令(序向或以其他方式)的任何機器。再者,雖然只例示單一機器,但用語“機器”應也考量包括機器的任意集合,其個別或一起執行一組(或多組)指令,以實施於此所討論的任一或更多方法。頁面相加與內容拷貝的實施 例也可以實施於計算系統900中。
計算系統900包含處理裝置902、主記憶體904(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM)(例如,同步DRAM(SDRAM)或DRAM(RDRAM)等)、靜態記憶體906(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等)、及資料儲存裝置918,其經由匯流排930與彼此通訊)。
處理裝置902表示一或更多通用處理裝置,例如微處理器、中央處理單元或類似物。更明確地說,處理裝置可以為複雜指令集計算(CISC)微處理器、精簡指令集計算(RISC)微處理器、很長指令字元(VLIW)微處理器或實施其他指令集的處理器、或實施指令集組合的處理器。處理裝置902也可以為一或更多特殊目的處理裝置,例如特定應用積體電路(ASIC)、場可程式閘陣列(FPGA)、數位信號處理器(DSP)、網路處理器或類似物。在一實施例中,處理裝置902可以包含一或更多處理器核心。處理裝置902被建構以執行處理邏輯926,用以執行於此所討論的運算。在一實施例中,處理裝置902可以為計算系統的一部份。或者,計算系統900可以包含於此所述之其他元件。應了解的是,該核心可以支援多線程(執行兩或更多並列組的運算或線程),並可以以各種方式來如此作,包含時間切割多線程、同時多線程(其中單一實體核心提供邏輯核心給各個線程,該等線程正被實體核心同時多線程),或其組合(例如,時間切割擷取及解碼以及隨後同時 多線程,例如於英特爾®超線程技術)。
計算系統900可以更包含網路介面裝置908,其可通訊地耦接至網路920。計算系統900也可以包含視訊顯示單元908(例如液晶顯示器(LCD)或陰極射線管(CRT)、文數輸入裝置910(例如鍵盤)、游標控制裝置914(例如滑鼠)、信號產生裝置916(例如喇叭)、或其他週邊裝置。再者,計算系統900可以包含圖形處理單元922、視訊處理單元928及音訊處理單元932。在另一實施例中,計算系統900可以包含晶片組(未示出),其表示一群積體電路或晶片,其被設計以與處理裝置902一起運作並控制於處理裝置902與外部裝置間的通訊。例如,晶片組可以為在主機板上的一組晶片,其鏈結處理裝置902至很高速裝置,例如主記憶體904及圖形控制器,及鏈結處理裝置902至週邊的較低速週邊匯流排,例如USB、PCI或ISA匯流排。
資料儲存裝置918可以包含電腦可讀取儲存媒體924,其上可以儲存實施於此所述之功能的任一或更多方法的軟體926。軟體926也可以完整或至少部份內佇在主記憶體904內作為指令926及/或在處理裝置902內作為處理邏輯926,在執行期間為計算系統900所執行;主記憶體904與處理裝置902也構成電腦可讀取儲存媒體。
電腦可讀取儲存媒體924也可以用以儲存利用處理裝置902的指令926,例如參考圖1所述者,及/或 包含可以呼叫上述應用程式的方法的軟體庫。雖然電腦可讀取儲存媒體924係在例示實施例中被顯示為單一媒體,但用語“電腦可讀取儲存媒體”應被視為包含單一媒體或多重媒體(例如,集中式或分散式資料庫、及/或相關快取及伺服器),其儲存一或更多組指令者。用語“電腦可讀取儲存媒體”也被視為包含任一媒體,其能儲存、編碼或承載一組指令,用以為該機器所執行並使得該機器執行本案實施例之任一或更多方法。用語“電腦可讀取儲存媒體”因此應被視為包含但並不限於固態記憶體、及光學或磁性媒體。
以下例子屬於其他實施例。
例子1為處理器,包含:1)暫存器,其中該暫存器係用以儲存第一浮點(FP)值與第二FP值;及2)解碼器,用以:a)接收來自應用程式的請求,以執行ADD低運算;及b)解碼該請求;3)ADD低函數單元,用以回應於該請求:a)將該第一FP值與該第二FP值相加,以取得第一總和值;b)捨入該第一總和值,以產生ADD值;c)將該第一FP值與該第二FP值相加,以取得第二總和值;及d)將該第二總和值減去該ADD值,以產生ADD低值。
在例子2中,例子1的處理器,其中:a)該第一FP值包含第一尾數及第一指數,及b)該第二FP值包含第二尾數及第二指數。
在例子3中,例子2的處理器,其中:a)將該 第一FP值與該第二FP值相加以取得該第一總和值更包含:將該第一尾數與該第二尾數相加,以取得用於該第一總和值的第四尾數;及b)將該第一FP值與該第二FP值相加以取得該第二總和值更包含:將該第一尾數與該第二尾數相加,以取得用於該第二總和值的第五尾數。
在例子4中,例子2的處理器,其中該ADD低函數單元更將該第一尾數或該第二尾數移位一或更多位元,以對準該第一尾數或該第二尾數,用以相加取得該第一總和值、用以相加取得該第二總和值、或用以相減以產生該ADD低值。
在例子5中,例子1的處理器,其中該ADD低函數單元包含:1)加法器算術邏輯單元(ALU),用以相加取得該第一總和值及用以相加取得該第二總和值;2)捨入器ALU,以執行該ADD值的捨入;及3)減法器ALU,以執行該ADD低值的減法。
在例子6中,例子1的處理器,其中該ADD低函數單元包含一或更多浮點單元(FPU),用以相加以取得該第一總和值、用以捨入以產生該ADD值、用以相加以取得該第二總和值、或用以相減以產生該ADD低值。
在例子7中,例子1的處理器,其中該ADD低函數單元更進一步用以相加以取得該第二總和值並用以相減以產生該ADD低值作為單一指令多資料(SIMD)運算。
在例子8中,例子1的處理器,其中該ADD 低函數單元更進一步用以相加以取得該第二總和值及用以相減以產生該ADD低值作為純量計算。
在例子9中,例子1的處理器,其中該ADD低值為單精度格式值。
在例子10中,例子1的處理器,其中該ADD低值為雙倍精度格式值。
在例子11中,例子1的處理器,其中該ADD低函數單元更進一步用以:a)正規化該ADD低值,以取得正規化ADD低值;及b)捨入該正規化ADD低值,以取得捨入ADD低值。
各種實施例可以具有如上所述之結構特性的不同組合。例如,如上所述之處理與方法的所有特性也可以相關於此所述之系統加以實施,以及,在例子中的特點也可以用於一或更多實施例中的任何地方。
例子12為一種方法,包含:1)以ADD低函數單元,將第一浮點(FP)值相加至第二FP值,以取得第一總和值;2)以該ADD低函數單元,捨入該第一總和值,以產生ADD值;3)以該ADD低函數單元,將該第一FP值相加至該第二FP值,以取得第二總和值;及3)以該ADD低函數單元,將該第二總和值減去該ADD值,以產生ADD低值。
在例子13中,請求項12的例子,其中該ADD值為位元串的第一部份及該ADD低值為該位元串的第二部份。
在例子14中,請求項12的例子,更包含限制用以產生該ADD低值的尾位元的數目。
在例子15中,請求項12的例子,更包含:以該ADD低函數單元正規化該ADD低值,以取得正規化ADD低值;以該ADD低函數單元捨入該正規化ADD低值,以取得捨入ADD低值。
在例子16中,請求項15的例子,其中該第一總和值與該正規化ADD低值使用捨入至最接近整數演算法或捨入向零演算法加以捨入。
各種實施例可以具有如上所述的結構特性的不同組合。例如,如上所述之處理器與方法的所有選用特性也可以相關於此所述之系統加以實施,在例子中的細節可以用在一或更多實施例中之任何處。
例子17為一種處理器,包含:1)暫存器,其中該暫存器用以儲存第一浮點(FP)值與第二FP值;及2)ADD低函數單元,用以自應用程式接收執行ADD低運算的請求並回應於該請求用以執行如下:a)將該第一FP值與該第二FP值相加,以取得第一總和值;b)捨入該第一總和值,以產生ADD值;c)將該第一FP值與該第二FP值相加,以取得第二總和值;d)將該第二總和值減去該ADD值,以產生差值;e)正規化該差值,以取得正規化差值;f)捨入該正規化差值,以產生ADD低值;及g)將該ADD低值送至該應用程式。
在例子18中,例子17之處理器,其中:a)該 第一FP值包含第一尾數及第一指數,b)該第二FP值包含第二尾數及第二指數,及c)該ADD低函數單元更用以將該第一尾數或該第二尾數移位一或更多位元,用以相加以取得該第一總和值、用以相加以取得該第二總和值、或用以相減以產生該差值。
在例子19中,例子18之處理器,其中該ADD低函數單元更使用編碼器以決定在位元串中之用以移位的該一或更多位元。
在例子20中,例子17之處理器,其中該ADD低函數單元包含一或更多算術邏輯單元(ALU),用以相加以取得該第一總和值、用以捨入以產生該ADD值、用以相加以取得該第二總和值、用以相減以產生該差值、用以正規化以取得該正規化差值、或用以捨入以產生該ADD低值。
雖然本發明已經針對有限數量的實施例加以描述,但熟習於本技藝者將了解各種由之導出的修改與變化。目的在於使隨附申請專利範圍涵蓋所有落在本發明精神與範圍內的此等修改與變化。
於此說明中,加以說明各種特定細節,例如特定類型的處理器與系統架構、特定硬體結構、特定架構與微架構細節、特定暫存器組態、特定指令類型、特定系統元件、特定量測/高度、特定處理器管線級與運算等等的例子,以為了提供對本發明之全盤了解。然而,對於熟習於本技藝者明顯的,這些特定細節並不必被用以實現本 發明。在其他實例中,例如特定或替代處理器架構、用於所述演算法的特定邏輯電路/碼、特定韌體碼、特定互連運算、特定邏輯架構、特定製造技術及材料、特定編譯器實施法、特定碼表示的演算法、特定降電與閘控技術/邏輯與電腦系統的其他特定操作細節的已知元件或方法並未加以詳述,以避免不必要地模糊本發明。
實施例係參考在特定積體電路中,例如,在計算平台或微處理器中的浮點(FP)加低運算加以描述。實施例也可以應用至其他類型積體電路與可程式邏輯裝置。例如,所揭露實施例並不限於桌上型電腦系統或攜帶式電腦,例如,英特爾®UltrabooksTM電腦,並也可以用於其他裝置,例如手持裝置、平板、其他薄型筆電、系統晶片(SoC)裝置與嵌式應用中。一些手持裝置的例子包含行動電話、網際網路協定裝置、數位相機、個人數位助理(PDA)、及手持PC。嵌式應用典型包含微控制器、數位信號處理器(DSP)、系統晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)開關、或任何其他可以執行如下所教示功能與運算的系統。已經描述的系統可以為任意類型電腦或嵌入式系統。所揭露實施例可以特別有用於低端裝置,例如,穿載式裝置(例如手錶)、電子植入物、感應與控制基礎結構裝置、控制器、監視控制與資料取得(SCADA)系統或類似物。再者,於此所述之設備、方法與系統並不限於實體計算裝置,但也可以有關於用於能量保持與效能最佳化的軟體。可以在以下說明所迅速了解,於 此所述之方法、設備與系統的實施例(無論參考硬體、韌體、軟體或其組合)對於以效能考量平衡的“綠能技術”是重要的。
雖然於此實施例係參考處理器加以描述,但其他實施例也可以應用至其他類型的積體電路與邏輯裝置。本發明之實施例的類似技術與教示可以應用至其他類型的電路或半導體裝置,其可受益於較高管線流通量與改良效能。本發明之實施例的教示可以應用至執行資料操縱的任何處理器或機器。然而,本發明並不限於執行512位元、256位元、128位元、64位元、32位元或16位元資料運算的處理器或機器,也可以應用至任何處理器與機器,其中可以執行資料的操縱與管理。另外,於此之說明提供例子,及附圖顯示用於作為例示目的各種例子。然而,這些例子不應被解釋為限制意思,因為它們僅只想要提供對本發明的實施例的例子,而不是提供對本發明實施例的所有可能實施法的竭盡列表。
雖然以下的例子描述以執行單元與邏輯電路來說描述指令處理與分配,但本發明之其他實施例也可以以儲存在機器可讀取有形媒體中的資料或指令的方式加以完成,當指令被機器所執行時,使得該機器執行配合本發明至少一實施例的功能。在一實施例中,有關於本發明實施例的功能係被實現於機器可執行指令中。這些指令可以被用以使得被程式化為有指令的通用或特殊目的處理器執行本發明的步驟。本發明之實施例可以被提供為電腦程式 產品或軟體,其可以包括機器或電腦可讀取媒體,其上儲存有指令,其可以用以程式化一電腦(或其他電子裝置),以依據本發明實施例執行一或更多運算。或者,本發明之實施例的操作可以由特定硬體元件所執行,或者,藉由經程式化之電腦元件或固定功能硬體元件的組合所執行,這些特定硬體元件包含固定功能邏輯,用以執行運算。
用以將邏輯程式化以執行本發明實施例的指令可以被儲存在系統的記憶體中,例如,DRAM、快取、快閃記憶體或其他儲存器中。再者,指令可以經由網路或使用其他電腦可讀取媒體加以分配。因此,機器可讀取媒體可以包含任何機制,用以儲存或傳送為由機器(例如,電腦)可讀取形式的資訊,但並不限於軟碟、光碟、微碟唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)、磁或光卡、快閃記憶體或有形機器可讀取儲存器,用以經由電、光、聲或其他傳遞信號形式(例如,載波、紅外線信號、數位信號等)在網際網路上傳送資訊。因此,電腦可讀取媒體包含任何類型的有形機器可讀取媒體,其適用以儲存或傳送為由機器(例如,電腦)可讀取形式的電子指令或資訊。
一種設計可以由建立到模擬到製造,經歷各種階段。代表一設計的資料可以以若干方式表示該設計。首先,如同在模擬中有用的,硬體可以使用硬體描述語言 或另一功能描述語言加以代表。另外,具有邏輯及/或電晶體閘的電路級模型可以在設計程序的一些階段中產生。再者,在一些階段中,多數設計到達表示在硬體模型中之各種裝置的實體配置的資料級。當使用傳統半導體製程技術時,代表硬體模型的資料可以為指明出現在用以產生積體電路的遮罩的不同遮罩層上的各種特性的有或無。在設計的任一表示法中,資料可以儲存在任一形式的機器可讀取媒體中。記憶體或例如碟片的磁或光儲存器可為用以儲存資訊的該機器可讀取媒體,所儲存之資訊係經由調變或以其他方式產生以傳送此等資訊的光或電波傳送。當表示或承載該碼或設計的電載波被傳送時,到了執行該電信號的拷貝、緩衝或重新傳送的程度時,完成新的拷貝。因此,通訊提供者或網路提供者可以例如將實施本發明技術實施例的編碼入載波的資訊,至少暫時地儲存在有形機器可讀取媒體的物件上。
於此所用之模組表示硬體、軟體及/或韌體的任意組合。譬如,模組可以包含例如有關於非暫時媒體的微控制器的硬體,用以儲存適用以為該微控制器所執行的碼。因此,在一實施例中,參考模組表示硬體,其特別組態以識別及/或執行予以被保持在非暫態媒體上的碼。再者,在另一實施例,模組的使用表示包含碼的非暫態媒體,其特別地適用以為該微控制器所執行以執行預定運算。可以推論出,在仍另一實施例中,用語模組(在此例子中)可以表示微控制器與非暫態媒體的組合。經常所示 為分開的模組邊界係經常改變並可能重疊。例如,第一與第二模組可能共享硬體、軟體、韌體或其組合,而可能保留一些獨立硬體、軟體或韌體。在一實施例中,用語“邏輯”的使用包含硬體,例如,電晶體、暫存器或其他硬體,例如可程式邏輯裝置。
在一實施例中,片語“被組態以”的使用表示安排、組合、製造、提供販賣、進口及/或設計一設備、硬體、邏輯、或元件以執行指定或預定工作。在此例中,如果設備或元件被設計、耦接及/或互連以執行一指定工作,則未操作的設備或元件仍“被組態以”執行該指定工作。作為純例示例子,邏輯閘可以在運算時提供0或1。但“被組態以”對時脈提供致能信號的邏輯閘並不包含每一種可提供1或0的可能邏輯閘。代替地,邏輯閘為一種元件,其在運算時以一些方式加以耦接,其1或0輸出致能該時脈。再次注意,用語“被組態以”的使用並不需要運算,而是針對於設備、硬體及/或元件的潛候狀態,其中,在潛候狀態中,當該設備、硬體及/或元件正操作時,該設備、硬體及/或元件係被設計以執行特定工作。
再者,在一實施例中,用語“用以”、“能夠用以”及/或“可操作用以”表示一些設備、邏輯、硬體及/或元件被設計成一種方式,使得設備、邏輯、硬體及/或元件以特定方式使用。如上注意,在一實施例中,用以、能夠用以、或可操作用以的使用表示一設備、邏輯、硬體及/或元件的潛候狀態,其中,該設備、邏輯、硬體及/或元 件並未操作,而是被設計以此一方式以使得設備以一特定方式加以使用。
如於此所用,值包含數目、狀態、邏輯狀態、或二進制邏輯狀態的任何已知表示法。通常,邏輯位準、邏輯值或多數邏輯值的使用也表示為1與0,這簡單表示二進制邏輯狀態。例如,1表示高邏輯位準及0表示低邏輯位準。在一實施例中,例如電晶體或快閃胞元的儲存胞元可以能保持單一邏輯值或多個邏輯值。然而,已經使用在電腦系統中值的其他表示法。例如,十進制數的十也可以表示為二進制值的1010及十六進制的字母A。因此,一值可以以任何資訊的表示法保持在電腦系統中。
再者,狀態也可以為值或值的部份所代表。譬如,例如邏輯一的第一值可以表示為預設或初始值,而例如邏輯零的第二值可以表示為非預設狀態。另外,在一實施例中,用語重設與設定分別表示為預設及更新值或狀態。例如,預設值可能包含高邏輯值,即重設,而更新值可能包含邏輯低值,即設定。注意值的任意組合可以被利用來代表任何數量的狀態。
以上所述之方法、硬體、軟體、韌體或碼的實施例可以藉由儲存在機器可存取、機器可讀取、電腦可存取或電腦可讀取媒體上的指令或碼當為處理元件可執行時來加以實施。非暫態機器可存取/可讀取媒體包含以例如電腦或電子系統的機器可讀取的形式提供(即儲存及/或傳送)資訊的任何機制。例如,非暫態機器可存取媒體包 含隨機存取記憶體(RAM),例如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁或光儲存媒體;快閃記憶體裝置;電子儲存裝置;光學儲存裝置;聲音儲存裝置;其他形式的儲存裝置,用以保持由暫時(傳遞)信號(例如,載波、紅外線信號、數位信號)所接收的資訊等等,這些係與由該處接收資訊的非暫態媒體不同者。
用以程式化邏輯以執行本發明實施例之指令可以儲存在系統的記憶體內,例如DRAM、快取、快閃記憶體或其他儲存器內。再者,指令可以透過網路或以其他電腦可讀取媒體加以分佈。因此,機器可讀取媒體可以包含用以為機器(例如電腦)可讀取形式來儲存或傳輸資訊的任何機制,但並不限於軟碟、光碟、微型碟片唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)、磁或光卡、快閃記憶體或有形機器可讀取儲存器,用以經由電、光、聲或其他形式的傳遞信號(例如載波、紅外線信號、數位信號等)透過網際網路傳輸資訊。因此,電腦可讀取媒體包含任意類型的有形機器可讀取媒體,其適用以儲存或傳送為由機器(例如電腦)可讀取形式的電子指令與資訊。
在整個說明書中表示“一個實施例”或“一實施例”表示有關於該實施例所述之特定特性、結構或特徵係包含在本發明的至少一實施例中。因此,在本案說明書各處所出現的用語“在一實施例中”或“在實施例中”並不必然 表示相同實施例。再者,特定特性、結構或特徵可以在一或更多實施例中以任何適當方式加以組合。
在前述說明書中,詳細發明說明已經參考特定例示實施例加以描述。然而,明顯地,各種修改與變化可以在不脫離隨附申請專利範圍所述之本發明的較廣精神與範圍下加以完成。因此,說明書與附圖係用以視為例示性而非限定性。再者,實施例的前述用途與其他例示語言並不必然表示相同實施例或相同例子,而可能表示不同與分開的實施例,及也有可能表示相同實施例。
詳細發明說明的一些部份係以演算法與對電腦記憶體內的資料位元的運算的符號表示法加以表示。這些演算法說明與表示法係為熟習於資料處理者所用的手段,以對其他熟習於本技藝者的最作用表達其工作的實質的方法。演算法在此通常被想出為造成想要結果的自行符合順序的運算。這些運算係為需要物理量的實體操縱者。通常,但不是必然,這些量採用能夠被儲存、轉換、組合、比較與其他方式操縱的電或磁信號的形式。經常,可以證明這作用,主要為了共同使用的原因,這些信號被稱為位元、值、元件、符號、字元、項、數或類似物。於此所述之方塊可以為硬體、軟體、韌體或其組合。
然而,應記住所有這些及類似用語係有關於適當實體量及僅只應用這些量的方便標示。除非另外明確地說明,否則由以上討論明顯的,可瞭解在整個發明說明中,利用例如“定義”、“接收”、“決定”、“發出”、“鏈 結”、“相關”、“取得”、“驗證”、“禁止”、“執行”、“要求”、“通訊”或類似的用語的討論表示計算系統或類似電子計算裝置的動作與處理,其操縱與轉換在計算系統暫存器與記憶體內的實體(例如電子)量的資料成為在計算系統記憶體或暫存器或其他此資訊儲存器、傳輸或顯示裝置內的其他類似表示為實體量的資料。
用語“例子”或“例示”在此被使用以表示作為一例子、實例或示範。於此所述之任何態樣或設計為“例子”或“例示”並不必然被解釋為較佳或優於其他態樣與設計。而是,用語“例子”或“例示”的使用係想要以具體方式加以呈現概念。如在本案中所用,用語“或”係想要表示包含性的“或”而不是排它性的“或”。即,除非另外特別指出,或由文中可明顯看出,否則“X包含A或B”係想要表示任意的本質包含替換。即,如果X包含A;X包含B;或X包含A與B,則“X包含A或B”滿足以上任一前述實例。另外,在本案中與隨附申請專利範圍中的冠詞“a”應通常被解釋為表示“一或更多”,除非另外特別指出或由文中特別表示為單數形式。再者,全篇中之“一實施例”或“一個實施例”或“一實施法”或“一個實施法”並不是想要表示相同實施例或實施法,除非特別指明之外。同時,於此所用的用語“第一”、“第二”、“第三”、“第四”係表示在不同元件間作區分並且依據其數值指定並不必然有順序上的意義。
110‧‧‧第一數
112‧‧‧第二數
122‧‧‧ADD結果
126‧‧‧相加
128‧‧‧相減
130‧‧‧正規化
132‧‧‧捨入
134‧‧‧ADD低結果

Claims (20)

  1. 一種處理器,包含:暫存器,其中該暫存器用以儲存第一浮點(FP)值與第二FP值;及解碼器,用以:自應用程式接收執行加法(ADD)低運算的請求;及解碼該請求;ADD低函數單元,回應於該請求,用以:將該第一FP值與該第二FP值相加,以取得第一總和值;捨入該第一總和值,以產生ADD值;將該第一FP值與該第二FP值相加,以取得第二總和值;及將該第二總和值減去該ADD值,以產生ADD低值。
  2. 如申請專利範圍第1項之處理器,其中:該第一FP值包含第一尾數及第一指數,及該第二FP值包含第二尾數及第二指數。
  3. 如申請專利範圍第2項之處理器,其中:將該第一FP值與該第二FP值相加以取得該第一總和值更包含:將該第一尾數與該第二尾數相加,以取得用於該第一總和值的第四尾數;及將該第一FP值與該第二FP值相加以取得該第二總和值更包含:將該第一尾數與該第二尾數相加,以取得用於該第二總和值的第五尾數。
  4. 如申請專利範圍第2項之處理器,其中該ADD低函數單元更將該第一尾數或該第二尾數移位一或更多位元,以對準該第一尾數或該第二尾數,用以相加取得該第一總和值、用以相加取得該第二總和值、或用以相減以產生該ADD低值。
  5. 如申請專利範圍第1項之處理器,其中該ADD低函數單元包含:加法器算術邏輯單元(ALU),用以相加取得該第一總和值及用以相加取得該第二總和值;捨入器ALU,以執行該ADD值的捨入;及減法器ALU,以執行該ADD低值的減法。
  6. 如申請專利範圍第1項之處理器,其中該ADD低函數單元包含一或更多浮點單元(FPU),用以相加以取得該第一總和值、用以捨入以產生該ADD值、用以相加以取得該第二總和值、或用以相減以產生該ADD低值。
  7. 如申請專利範圍第1項之處理器,其中該ADD低函數單元更進一步用以相加以取得該第二總和值並用以相減以產生該ADD低值作為單一指令多資料(SIMD)運算。
  8. 如申請專利範圍第1項之處理器,其中該ADD低函數單元更進一步用以相加以取得該第二總和值及用以相減以產生該ADD低值作為純量計算。
  9. 如申請專利範圍第1項之處理器,其中該ADD低值為單精度格式值。
  10. 如申請專利範圍第1項之處理器,其中該ADD 低值為雙倍精度格式值。
  11. 如申請專利範圍第1項之處理器,其中該ADD低函數單元更進一步用以:正規化該ADD低值,以取得正規化ADD低值;及捨入該正規化ADD低值,以取得捨入ADD低值。
  12. 一種方法,包含:以ADD低函數單元,將第一浮點(FP)值相加至第二FP值,以取得第一總和值;以該ADD低函數單元,捨入該第一總和值,以產生ADD值;以該ADD低函數單元,將該第一FP值相加至該第二FP值,以取得第二總和值;及以該ADD低函數單元,將該第二總和值減去該ADD值,以產生ADD低值。
  13. 如申請專利範圍第12項之方法,其中該ADD值為位元串的第一部份及該ADD低值為該位元串的第二部份。
  14. 如申請專利範圍第12項之方法,更包含限制用以產生該ADD低值的尾位元的數目。
  15. 如申請專利範圍第12項之方法,更包含:以該ADD低函數單元,正規化該ADD低值,以取得正規化ADD低值;及以該ADD低函數單元,捨入該正規化ADD低值,以取得捨入ADD低值。
  16. 如申請專利範圍第15項之方法,其中該第一總和值與該正規化ADD低值使用捨入至最接近整數演算法或捨入向零演算法加以捨入。
  17. 一種處理器,包含:暫存器,其中該暫存器用以儲存第一浮點(FP)值與第二FP值;及ADD低函數單元,用以自應用程式接收執行ADD低運算的請求並回應於該請求用以執行如下:將該第一FP值與該第二FP值相加,以取得第一總和值;捨入該第一總和值,以產生ADD值;將該第一FP值與該第二FP值相加,以取得第二總和值;將該第二總和值減去該ADD值,以產生差值;正規化該差值,以取得正規化差值;捨入該正規化差值,以產生ADD低值;及將該ADD低值送至該應用程式。
  18. 如申請專利範圍第17項之處理器,其中:該第一FP值包含第一尾數及第一指數,該第二FP值包含第二尾數及第二指數,及該ADD低函數單元更用以將該第一尾數或該第二尾數移位一或更多位元,用以相加以取得該第一總和值、用以相加以取得該第二總和值、或用以相減以產生該差值。
  19. 如申請專利範圍第18項之處理器,其中該ADD 低函數單元更使用編碼器以決定在位元串中之用以移位的該一或更多位元。
  20. 如申請專利範圍第17項之處理器,其中該ADD低函數單元包含一或更多算術邏輯單元(ALU),用以相加以取得該第一總和值、用以捨入以產生該ADD值、用以相加以取得該第二總和值、用以相減以產生該差值、用以正規化以取得該正規化差值、或用以捨入以產生該ADD低值。
TW105138126A 2015-12-23 2016-11-21 執行浮點加法低運算的方法及其處理器 TWI731896B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/998,366 US9996319B2 (en) 2015-12-23 2015-12-23 Floating point (FP) add low instructions functional unit
US14/998,366 2015-12-23

Publications (2)

Publication Number Publication Date
TW201732577A true TW201732577A (zh) 2017-09-16
TWI731896B TWI731896B (zh) 2021-07-01

Family

ID=59087849

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105138126A TWI731896B (zh) 2015-12-23 2016-11-21 執行浮點加法低運算的方法及其處理器

Country Status (5)

Country Link
US (1) US9996319B2 (zh)
EP (1) EP3394730B1 (zh)
CN (1) CN108292219B (zh)
TW (1) TWI731896B (zh)
WO (1) WO2017112308A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835551B (zh) * 2021-03-09 2022-06-28 上海壁仞智能科技有限公司 用于处理单元的数据处理方法、电子设备和计算机可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
US4922446A (en) 1988-04-01 1990-05-01 Digital Equipment Corporation Apparatus and method for floating point normalization prediction
US5027308A (en) * 1989-02-14 1991-06-25 Intel Corporation Circuit for adding/subtracting two floating point operands
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
US5341321A (en) * 1993-05-05 1994-08-23 Hewlett-Packard Company Floating point arithmetic unit using modified Newton-Raphson technique for division and square root
ATE467171T1 (de) * 1998-08-24 2010-05-15 Microunity Systems Eng System mit breiter operandenarchitektur und verfahren
US20030055859A1 (en) 2001-05-04 2003-03-20 Southern Methodist University Fast IEEE floating-point adder
US7433911B2 (en) 2004-12-21 2008-10-07 Arm Limited Data processing apparatus and method for performing floating point addition
US9223751B2 (en) * 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
TW201007558A (en) * 2008-08-13 2010-02-16 Magima Digital Information Co Ltd An instruction encoding method and a processor thereof
GB201111035D0 (en) 2011-06-29 2011-08-10 Advanced Risc Mach Ltd Floating point adder
DE112011105666T5 (de) * 2011-09-26 2014-07-10 Intel Corp. Befehl und Logik zum Bereitstellen von Vektor-Lade-OP/Speicher-OP mit Schritt-Funktionalität
US9513871B2 (en) * 2011-12-30 2016-12-06 Intel Corporation Floating point round-off amount determination processors, methods, systems, and instructions
US9274752B2 (en) * 2012-12-28 2016-03-01 Intel Corporation Leading change anticipator logic
US9542154B2 (en) * 2013-06-25 2017-01-10 Intel Corporation Fused multiply add operations using bit masks
US9405728B2 (en) 2013-09-05 2016-08-02 Altera Corporation Floating-point adder circuitry

Also Published As

Publication number Publication date
EP3394730A1 (en) 2018-10-31
EP3394730A4 (en) 2019-08-07
CN108292219B (zh) 2023-05-26
US9996319B2 (en) 2018-06-12
EP3394730B1 (en) 2021-05-19
TWI731896B (zh) 2021-07-01
CN108292219A (zh) 2018-07-17
US20170185377A1 (en) 2017-06-29
WO2017112308A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
US11281965B2 (en) Reconfigurable processing unit
TWI550509B (zh) 提供向量混合與置換功能的指令與邏輯
US9542154B2 (en) Fused multiply add operations using bit masks
EP3394729B1 (en) Fused multiply add (fma) low functional unit
US20180232627A1 (en) Variable word length neural network accelerator circuit
TWI775105B (zh) 用於使用monitor及mwait架構之使用者層級執行緒同步的方法及裝置
TW201725509A (zh) 用於安全指令執行管線之指令及邏輯
US10216516B2 (en) Fused adjacent memory stores
TWI588740B (zh) 包括用於移位和(shift-sum)乘法器之指令及邏輯的處理器及系統,以及用於移位和乘法的方法
TW201339964A (zh) 使用控制操作來進行單一指令多重資料(simd)可變移位與旋轉之技術
TW201723817A (zh) 用於取得多重向量元素操作之指令及邏輯
US10445064B2 (en) Implementing logarithmic and antilogarithmic operations based on piecewise linear approximation
US20170185412A1 (en) Processing devices to perform a key value lookup instruction
TWI723075B (zh) 用於向量置換的方法和處理器以及向量置換單元
WO2017107124A1 (en) Scatter reduction instruction
TW201732556A (zh) 用於集合運算之加速的硬體內容關聯之資料結構
TW201723810A (zh) 用於部分縮減操作之指令及邏輯
TW201729079A (zh) 用於檢測浮點消除效應之指令及邏輯
US9588765B2 (en) Instruction and logic for multiplier selectors for merging math functions
CN108475242B (zh) 冲突掩码生成
TWI731896B (zh) 執行浮點加法低運算的方法及其處理器
US20210303309A1 (en) Reconstruction of flags and data for immediate folding
TWI724066B (zh) 分散縮減指令
TWI751990B (zh) 衝突罩生成
TW201729081A (zh) 用於以向量為基礎的位元操控之指令及邏輯

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees