TWI471801B - 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術 - Google Patents

降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術 Download PDF

Info

Publication number
TWI471801B
TWI471801B TW101143247A TW101143247A TWI471801B TW I471801 B TWI471801 B TW I471801B TW 101143247 A TW101143247 A TW 101143247A TW 101143247 A TW101143247 A TW 101143247A TW I471801 B TWI471801 B TW I471801B
Authority
TW
Taiwan
Prior art keywords
instruction
adder
segment
fma
segments
Prior art date
Application number
TW101143247A
Other languages
English (en)
Other versions
TW201331828A (zh
Inventor
Chad D Hancock
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201331828A publication Critical patent/TW201331828A/zh
Application granted granted Critical
Publication of TWI471801B publication Critical patent/TWI471801B/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
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Description

降低於一處理器之積和熔加運算(FMA)單元中之功率消耗的技術
本發明係有關於降低於一處理器之積和熔加運算(FMA)單元中之功率消耗的技術。
發明背景
現代處理器包括用於對資料執行操作之各種電路。通常,處理器係根據給定指令集架構(ISA)來設計。許多處理器皆具有管線式設計,該管線式設計可實行為循序或亂序處理器。
在任一情況下,指令皆係經由前端單元獲得,該等前端單元處理該等指令且以將要由管線之其他組件辨識之形式置放該等指令。通常,所謂巨集指令被分解為一或多個微指令或uop。然後此等uop可於處理器之不同執行單元中被執行。亦即,許多處理器包括多個執行單元,該等執行單元包括算術邏輯單元、位址產生單元、浮點單元等。
一種常見執行單元為乘加運算單元,該乘加運算單元可呈積和熔加運算(FMA)單元之形式。一般而言,FMA單元可對三個輸入運算元執行操作,以首先使運算元中的兩個運算元相乘,然後將乘積與第三運算元累加。一些處理器藉由第三運算元之適當選擇或運算元及結果經由選擇電路之路由而使用此單元來執行更多簡單的算術運算,諸如加法、減法及乘法。因此,在許多處理器中,FMA單元可形成執行單元之基幹,且可為決定處理器之頻率、功率 及面積之關鍵電路。另外,FMA單元可被大量地使用於諸如圖形之某些應用中及許多科學及工程應用中。因此,應使此等單元在面積、功率消耗及處理速度方面盡可能有效。
依據本發明之一實施例,係特地提出一種設備,其包括:一核心,其包括多個執行單元以執行指令,該多個執行單元包括一積和熔加運算(FMA)單元以執行FMA指令及加運算類指令,該FMA單元包括:一乘法器及一加法器,該加法器耦合至該乘法器之一輸出,該加法器具有多個區段,各區段可獨立控制為通電或斷電的;及一追蹤器,該追蹤器耦合至該加法器,以使該加法器之所有區段在一FMA指令之後在一第一指令於該FMA單元中執行期間通電,且否則只有在該區段將要於一指令執行期間使用之情況下,才將一對應區段通電。
A‧‧‧係數
B‧‧‧第三源運算元
X‧‧‧變數
100‧‧‧FMA單元
110‧‧‧乘法器
120‧‧‧加法器/加法器區段/區段
1200 ‧‧‧四分部/區段
1201 ‧‧‧四分部/區段/加法器區段
1202 ‧‧‧四分部/區段/獨立高資料路徑區段
1203 ‧‧‧四分部/區段/加法器區段/獨立高資料路徑區段
1220 -1223 ‧‧‧功率管理狀態機
1240 -1243 ‧‧‧時鐘驅動器
130‧‧‧捨位器
200‧‧‧方法
210、230、240‧‧‧菱形
220、250‧‧‧方塊
300‧‧‧處理器核心/核心
301‧‧‧擷取單元
303‧‧‧記憶體/指令快取記憶體
305‧‧‧指令解碼器
310‧‧‧前端單元
315‧‧‧亂序引擎/OOO引擎
320‧‧‧執行單元
322‧‧‧算術邏輯單元
324‧‧‧FMA單元
330‧‧‧暫存器檔案
335‧‧‧擴充暫存器檔案
340‧‧‧重新排序緩衝器/ROB
350‧‧‧快取記憶體
355‧‧‧TLB
400‧‧‧處理器
410‧‧‧核心域/域
4100 、410n ‧‧‧核心
420‧‧‧圖形域/域
430‧‧‧環形互連體
4400 、440n ‧‧‧末級快取記憶體
450‧‧‧系統代理電路/系統代理域
452‧‧‧顯示器控制器
455‧‧‧電力控制單元
470‧‧‧整合型記憶體控制器
4800 、480n ‧‧‧介面
500‧‧‧多處理器系統
514‧‧‧輸入/輸出裝置
516‧‧‧第一匯流排
518‧‧‧匯流排橋接器
520‧‧‧第二匯流排
522‧‧‧鍵盤/滑鼠
524‧‧‧音訊I/O
526‧‧‧通訊裝置
528‧‧‧資料儲存單元
530‧‧‧碼
532、534‧‧‧記憶體
538‧‧‧高效能圖形引擎
539、552、554‧‧‧P-P互連體
550‧‧‧點對點互連體
570‧‧‧第一處理器/處理器
572‧‧‧記憶體控制器集線器/MCH
574a、574b、584a、584b‧‧‧處理器核心
576、578‧‧‧點對點介面
580‧‧‧第二處理器/處理器
582‧‧‧MCH
586、588、594、598‧‧‧P-P介面
590‧‧‧晶片組
592、596‧‧‧介面
圖1為根據本發明之一實施例之乘加運算單元的方塊圖。
圖2為根據本發明之一實施例之加法器分割的方塊圖。
圖3為根據本發明之一實施例之加法器分割的進一步細節之方塊圖。
圖4為根據本發明之一實施例之多個加法器區段及其對於不同指令類型的對應活動狀態之說明。
圖5為根據本發明之一實施例之狀態機的執行流程圖。
圖6為根據本發明之一實施例之處理器核心的方塊圖。
圖7為根據本發明之一實施例之多域處理器的方塊圖。
圖8為根據本發明之一實施例之系統的方塊圖。
詳細說明
為提供增加的計算能力,實施例可將數個功能單元合併成一積和熔加運算(FMA)單元。一般而言,此FMA單元包括乘法器及加法器,且進一步包括單一捨位器(rounder)。以此方式,可更有效地執行計算操作,包括積和熔加運算操作,即Ax+B操作。此FMA單元可具有相對寬的資料寬度以適應較寬寬度(諸如向量大小的值)之運算元。例如,在一實施例中,此FMA單元可接收64位元運算元且對其等執行FMA操作。
在一些實行方案中,此FMA單元可取代獨立的乘法單元及加法單元。因此,FMA單元可進一步執行乘法操作及加法類操作。如本文中所使用,術語「加法類」及「加運算類」操作除了加法操作之外還包括減法操作、最小函式、最大函式及其他操作,諸如整數至浮點變換及浮點至整數變換,及雙倍至單倍精度變換及單倍至雙倍精度變換,以及浮點比較指令。因為實施例提供在此FMA單元中處置較小寬度操作之能力,所以控制器或其他邏輯可進一步提供控制機構以降低對較小寬度資料執行此等操作過程中之功率消耗。以此方式,諸如單倍精度加法、雙倍精度加法等的所謂舊式(legacy)指令可使用不大於較小寬度之獨立加法器單元中消耗之功率的功率於FMA單元中被執 行。
雖然本發明之範疇並不限於此方面,但是在許多實行方案中,FMA單元可適用於給定格式之運算元,該給定格式例如給定的美國電機暨電子工程師學會(IEEE)標準,諸如用於執行浮點乘運算累加操作之浮點(FP)表示。此外,給定實行方案可被使用以處置各種類型之輸入資料,包括可具有單倍及雙倍精度浮點格式之運算元。
在各種實施例中,ISA可提供多個使用者級別FMA指令。此等FMA指令可被使用以對指令運算元之緊縮(例如,向量)及/或純量資料元件執行積和熔加運算操作(包括積和熔減運算及其他變化)。不同FMA指令可提供獨立指令以處置三個源運算元的不同類型算術運算。
在一實施例中,FMA指令語法可使用三個源運算元來定義,其中第一源運算元係基於資料元件之算術運算之結果來更新。如此,第一源運算元亦可為目的運算元。例如,可存在以下指令格式:運算碼(opcode)、x1、x2、x3,其中運算碼對應於多個使用者級別FMA指令之一以執行給定算術運算,且x1-x3對應於操作中將被處理之運算元。
在FMA指令中所執行之算術FMA操作可採取若干形式之一,例如:r=(x*y)+z;r=(x*y)-z;r=-(x*y)+z;或r=-(x*y)-z。
在一實施例中,緊縮FMA指令可使用256位元向量執行八次單倍精度FMA操作或四次雙倍精度FMA操作。純量FMA指令可在使用向量暫存器實行時僅對低次資料元件執行一次算術運算。保留目的運算元之較低128位元中其餘資料元件之內容,而目的運算元之較高128位元可以零填入。
在一實施例中,r=(x*y)+z形式之算術FMA操作取兩個IEEE-754-2008單倍(雙倍)精度值,且使其相乘以獲得中間值。此中間值加至第三單倍(雙倍)精度值且經捨位以得出單倍(雙倍)精度結果。當然,可在不同實施例中實行不同捨位模式及精度。
處理器之執行單元可包括邏輯以執行整數及浮點操作。微碼(ucode)唯讀記憶體(ROM)可儲存用於某些巨集指令(包括向量乘加運算指令)之微碼,該等巨集指令可為緊縮指令集之部分。藉由在通用處理器之指令集中包括緊縮指令,連同執行該等指令之關聯電路,由許多多媒體應用程式使用之操作可使用在通用處理器中之緊縮資料而被執行。因此,許多多媒體應用程式可藉由使用處理器之資料匯流排之全寬度來對緊縮資料執行操作而更有效地加速且執行。此舉可消除如下的需要:對越過處理器之資料匯流排傳輸資料之較小單元以每次一個資料元件執行一或多次操作。在一些實施例中,可實行乘加運算指令以對資料元件進行操作,該等資料元件具有位元組、字、雙字、四倍字等之大小以及諸如單倍及雙倍精度整數及浮點資料型 式之資料型式。
一些單指令多資料(SIMD)及其他多媒體類型之指令被視為複雜指令。大多數浮點相關之指令亦為複雜指令。如此,當指令解碼器遇到複雜巨集指令時,在適當位置處存取微碼ROM以擷取用於該巨集指令之微碼序列。用於執行該巨集指令之各種μop係傳達至例如亂序執行邏輯,該亂序執行邏輯可具有緩衝器以平滑並重新排序微指令流,以在該等微指令流過管線且經排程以用於執行時最佳化效能。分配器邏輯分配每一uop需要的緩衝器及資源以便執行。重新命名邏輯可將邏輯暫存器重新命名至暫存器檔案(例如,實體暫存器)中之項目上。
在一實施例中,向量指令可被執行在各種緊縮資料型式表示上。此等資料型式可包括用於128個位元寬的運算元之緊縮位元組、緊縮字及緊縮雙字(dword)。例如,緊縮位元組格式可為128個位元長且含有十六個緊縮位元組資料元件。位元組在此係定義為8個位元之資料。用於每一位元組資料元件之資訊係儲存於位元7至位元0中供位元組0用、儲存於位元15至位元8中供位元組1用、儲存於位元23至位元16中供位元組2用,以及最後儲存於位元120至位元127中供位元組15用。
大體而言,資料元件為單獨資料件,其與具有相同長度之其他資料元件一起儲存於單個暫存器或記憶體位置中。在一些緊縮資料序列中,儲存於暫存器中之資料元件之數目可為128個位元除以獨立資料元件之位元的長 度。儘管資料型式可為128位元長,但是本發明之實施例亦可使用64位元寬或其他大小的運算元來進行運算。
將瞭解到,緊縮資料格式可進一步擴充至其他暫存器長度,例如,擴充至96位元、160位元、192位元、224位元、256位元或更長。另外,根據本發明之一實施例可於多媒體暫存器中處置各種帶正負號緊縮資料型式表示及無符號緊縮資料型式表示。
現參閱圖1,展示根據本發明之一實施例之乘加運算單元的方塊圖。如圖1中所示,FMA單元100包括乘法器110、加法器120及捨位器130。在圖1中所示之實施例中,FMA單元100可組配來在乘法器110中接收多個源運算元。在所示之實施例中,可接收兩個例如各自具有64位元寬度之源運算元,然而本發明之範疇並不限於此方面。例如,在其他實施例中,源運算元可為32個位元或128個位元。
因此,乘法器110可生成具有例如106個位元之寬度的乘積,假定用於源運算元之輸入為具有雙倍精度值之53位元尾數。因此,加法器120係組配來具有108個位元之寬度,以適應此輸入乘積。另外,加法器120係進一步組配來接收另一源運算元,該另一源運算元在一些實施例中亦可為64個位元。加法器120因此生成可為106個位元組之和,該和可被提供至捨位器130,捨位器130又生成例如53個位元之經捨位輸出。
為在此硬體上執行積和熔加運算操作,可將兩個源運算元提供至乘法器110,該兩個源運算元對應於係數A 及變數x。又,可使此等值之乘積與第三源運算元(B)於加法器120中相加以因此獲得和,該和可於捨位器130中進行捨位。結果可因此對應於Ax+B之值。除了執行此等積和熔加運算之外,此硬體係進一步組配來於乘法器110中執行乘法,且進一步於加法器120中執行加運算類操作。
不同類型之指令因此可於FMA單元100中執行。然而本發明之範疇並不限於此方面,在一實施例中此等指令可包括雙倍精度FMA指令、單倍精度FMA指令、雙倍精度加運算類指令及單倍精度加運算類指令。在一些實施例中,硬體可組配來每次執行一個雙倍精度FMA指令或並行地執行兩個單倍精度FMA指令。類似地,硬體可組配來執行一個雙倍精度加運算類指令或並行地執行兩個單倍精度加運算類指令。
就加運算類指令而言,為降低功率消耗以使得即使較寬資料路徑存在,亦無相較於較小寬度加法器之更大功率消耗發生,實施例提供技術以在無需特定加運算類指令執行時,時鐘閘控FMA單元之至少部分。為此,可分割FMA單元100內之至少某些子結構,以使得基於將要執行之指令類型僅致能某些分割。在特定實施例中,可將加法器120分割為多個部分。然而本發明之範疇並不限於此方面,在加法器為108個位元寬之實施例中,可將加法器分割為四分部(quadrant)。注意,此等四分部不需為相等大小,且四分部中之兩者的大小可較大,以使雙倍精度加運算類指令於此兩個四分部中能夠執行。
儘管在圖1之實施例中以此詳盡程度(high level)示出,但是將理解可存在額外電路。例如,可提供各種多工器以使源運算元能夠傳輸至適當位置,並且經由FMA單元100路由局部結果以因此生成最終輸出。
現參閱圖2,展示根據本發明之一實施例之加法器分割的方塊圖。具體而言,圖2中之加法器120係分割為四個分部或區段1200 -1203 。如所見,不同量之位元可存在於此等分割中。具體而言,區段1200 可包括24個位元,即位元[23:0]。類似地,區段1201 可包括位元[24:50]。此外,區段1202 又包括位元[51:79],且區段1203 包括位元[80:106]。
儘管加法器區段之細節未示出,但是將理解,該等加法器區段可形成浮點加法器,該浮點加法器包括諸如鎖存器(latch)、浮點運算器(flop)、移位結構、加法器及邏輯電路之順序。藉由將加法器分為區段,每一區段可經耦合以接收由獨立賦能信號控制之獨立時鐘。又,用於時鐘之此等賦能信號可由追蹤機構來控制,如以下進一步論述。儘管在圖2之實施例中以此特定分段示出,但是將理解本發明之範疇並不限於此方面。
為提供功率管理以在執行使用小於FMA單元100之硬體全寬度之指令中實現降低的功率消耗,實施例可提供一或多個追蹤器或狀態機,其各自與硬體之不同分割相關聯,以判定是否有可能時鐘閘控或以其他方式降低至對應分割之功率消耗。具體地就圖2之分割而言,每一區段可與給定追蹤器或狀態機相關聯,該給定追蹤器或狀態機 使時鐘信號能夠提供至對應區段。更具體而言,為防止動態功率增大以支援舊式加運算類指令,此等狀態機在對硬體部分所執行之先前指令亦為加運算類指令時,可組配來僅雙態觸變(toggle)支援加運算類指令所需之部分。
現參閱圖3,展示根據本發明之一實施例之加法器分割的進一步細節之方塊圖。如圖3中所見,每一加法器區段120可接收時鐘信號以因此雙態觸變其順序及其他邏輯。更具體而言,每一區段120可接收來自給定時鐘驅動器1240 -1243 之對應時鐘信號。又,此等時鐘驅動器中每一者接收來自對應功率管理狀態機1220 -1223 之時鐘賦能信號。此等狀態機中每一者可組配來接收輸入指令流,該輸入指令流在一實施例中可對應於將要於FMA單元內執行之uop,且此等狀態機中每一者可組配來執行對輸入指令流響應之狀態機或其他邏輯,以因此在如本文中所述之執行FMA指令之後,在需要對應加法器區段來執行指令時使該區段通電或使對應加法器區段通電以清除潛在之錯資料。否則,時鐘賦能信號並非有效的且取而代之,對應加法器部分可受時鐘閘控,因此降低動態功率消耗。應注意,儘管圖3之實施例展示四個獨立狀態機,但是將理解本發明之範疇並不限於此方面,且在一些實施例中可提供單個全域狀態機。此外,應注意,FMA邏輯之額外部分可視情況受時鐘閘控。例如,可使另一追蹤器與乘法器相關聯,以因此在執行加運算類指令期間時鐘閘控該乘法器。類似地,對於消耗多個時鐘週期以執行FMA或加運算類指令之實行 方案而言,實施例可時鐘閘控捨位器,直至需要該捨位器來執行捨位操作為止。儘管在圖3之實施例中以此詳盡程度示出,但是將理解本發明之範疇並不限於此方面。
因此,狀態機可追蹤先前執行之操作以判定四個順序時鐘中哪些部分將被使用於現行指令。若時鐘未經雙態觸變,則存在來自先前執行操作之資料毀壞正閘控此等區域中一些區域之操作的結果之風險。因此,加運算類操作之第一執行雙態觸變用於所有區段之所有時鐘,在此之後狀態機則可時鐘閘控斷開用於連序加運算類操作之區域,從而節約動態功率,否則較小寬度加法器之動態功率將由於加寬資料路徑而展示增加。此狀態機因此判定當執行加運算類操作時何時時鐘閘控資料路徑之區域為安全的。如此,可實現類舊式動態功率以用於浮點加運算類操作,同時增加浮點尾數資料路徑之寬度以支援FMA單元中之FMA指令。
圖4為多個加法器區段及其對於不同指令類型之對應活動狀態之說明。具體而言,如圖4中所示,加法器120包括多個區段1200 -1203 。圖4進一步展示可在FMA單元中執行之一系列指令,該FMA單元包括根據本發明之一實施例之分割加法器。圖4中第1至4列之每一指令或多個指令可取決於給定設計而於一或多個時鐘週期中執行。當執行如第1列中所示之雙倍精度FMA指令時,將使用所有區段,且因此致能所有區段。類似地,為並行執行如第2列中所示之多個獨立單倍精度FMA指令,可致能所有區段。
取而代之,為執行第3列中所示之雙倍精度加指令,在圖4中所示之實施例中,可僅致能區段1202 及1203 。在一實施例中,若此雙倍精度加法指令係接在圖4中所示之FMA指令之後,則在一實施例中可致能全部區段1200 -1203 ,以因此雙態觸變或清除資料路徑之全部寬度內之任何錯位元。然而,亦有可能不致能區段1200 及1201 ,如在圖4之實施例中,防止資料路徑之下半部與上半部之間的串擾(cross talk)。此操作可藉由限定所有與適當賦能信號一起扇入獨立高資料路徑區段1202 及1203 中之信號來進行。因此,在此等實施例中,對於雙倍精度加運算指令而言,無需致能資料路徑之下半部(例如,區段1200 及區段1201 )以清除該資料路徑。當然,亦可執行介於資料路徑每一半中之兩個區段之間的類似操作。
就此點而言,對繼FMA指令之後之加運算類指令致能加法器之所有區段。因此,狀態機可組配來僅致能對應區段,若其對於執行指令係為需要的。因此,對於加法器區段1201 及1203 中第4列之並行單倍精度加運算指令之執行,僅可時鐘致能該等區段且可時鐘閘控區段1200 及1202 ,因此降低功率消耗。應注意,就圖4而言,儘管展示加法器之特定區段以處置小於加法器全寬度之某些指令,但是應理解在不同實行方案中,可致能其他區段以執行此等指令。
因此,一般而言,追蹤器或狀態機可組配來在需要加法器之給定分割或區段來執行指令時,雙態觸變或計 時加法器之該給定分割或區段。此外,狀態機可組配來在FMA操作之後再計時區段,以使得該區段內之任何錯資料得以清除,以便隨後操作不會變成受毀壞的。現參閱圖5,展示根據本發明之一實施例之狀態機的執行流程圖。如圖5中所示,可在與加法器區段中不同區段相關聯之每一狀態機中獨立地執行方法200。在菱形210處,可判定上一指令是否為FMA指令。為此,每一狀態機可經耦合以接收輸入指令流供分析。
在一實施例中,上一指令是否為FMA指令之判定可以不同方式調節。例如,當前一指令為FMA指令時,可設定上一最後FMA旗標。此旗標可因此於收到非FMA指令之後重設。或,可使狀態機與諸如暫存器或緩衝器之上一指令儲存體相關聯以儲存最後指令,以便可判定指令類型。
若在菱形210處判定上一指令為FMA指令,則控制傳遞至方塊220,在方塊220處,可致能用於四分部之時鐘。因此,使給定四分部通電,且經由使此四分部通電,可清除存在於加法器之四分部中之任何錯值。仍參閱圖5,若取而代之判定上一指令並非FMA指令,則控制傳遞至菱形230以判定現行指令是否將於對應加法器區段中執行。然而本發明之範疇並不限於此方面,在一實施例中,此判定可基於與諸如給定uop之指令相關聯之資訊或其他指令資訊。應注意,此判定對於狀態機中每一者而言可不同,就諸如舊式指令之某些較小寬度指令而言,指令可不需要使 用所有四分部。若指令將於給定四分部中執行,則控制傳遞至方塊220以致能時鐘信號。否則,控制傳遞至菱形240。
在菱形240處,可判定自上一FMA指令起至少一非FMA指令是否已在加法器四分部中執行。然而本發明之範疇並不限於此方面,在一實施例中,狀態機可包括安全旗標,以指示前一非FMA指令已執行。當設定時,該旗標指示先前之執行,且因此控制傳遞至方塊250,在方塊250處,可對給定加法器四分部停用時鐘信號。否則,若自上一FMA指令起,前一非FMA指令尚未於加法器中執行,則控制傳遞至方塊220用於致能時鐘信號,以因此雙態觸變加法器四分部內之順序及其他電路從而清除該前一非FMA指令。自此點之後,四分部不必通電,除非需要該四分部來執行指令。因此,在此處所述之實施例中,可因此設定安全旗標以指示在四分部未使用時允許其斷電係安全的。
可在許多不同系統中實行實施例。例如,可在諸如多核心處理器之處理器中實現實施例。現參閱圖6,展示根據本發明之一實施例之處理器核心的方塊圖。如圖6中所示,處理器核心300可為多級管線式亂序處理器。在圖6中以相對簡化之視圖展示處理器核心300,以說明結合根據本發明之一實施例之FMA單元使用的各種特徵。
如圖6中所示,核心300包括前端單元310,該前端單元可用以擷取將要執行之指令且使該等指令預備於稍後用於處理器中。例如,前端單元310可包括擷取單元301、指令快取記憶體303及指令解碼器305。在一些實行方案 中,前端單元310可進一步包括追蹤快取記憶體,連同微碼儲存體以及微操作儲存體。擷取單元301可例如自記憶體或指令快取記憶體303擷取巨集指令,且將該等巨集指令饋送至指令解碼器305,以將該等巨集指令解碼為原語(primitives),諸如用於由處理器執行之微操作。
耦合於前端單元310與執行單元320之間的為亂序(OOO)引擎315,該亂序引擎可用以接收微指令且使該等微指令預備用於執行。更具體而言,OOO引擎315可包括各種緩衝器以重新排序微指令流並分配執行所需之各種資源,以及提供邏輯暫存器之重新命名至諸如暫存器檔案330及擴充暫存器檔案335之各種暫存器檔案內之儲存位置上。暫存器檔案330可包括用於整數及浮點操作之獨立暫存器檔案。擴充暫存器檔案335可提供用於向量大小單元(例如每暫存器256個位元或512個位元)之儲存體。
各種資源可存在於執行單元320中,該執行單元包括例如各種整數、浮點及單指令多資料(SIMD)邏輯單元,及其他專用硬體。例如,此等執行單元可包括一或多個算術邏輯單元(ALU)322。另外,可存在FMA單元324以生成FMA或排程至該單元之其他指令的最終結果。在各種實施例中,該單元可如上所述包括追蹤器以時鐘閘控加法器之部分。
當對執行單元內之資料執行操作時,可將結果提供至收回邏輯(retirement logic),即重新排序緩衝器(ROB)340。更具體而言,ROB 340可包括各種陣列及邏輯 以接收與被執行之指令相關聯之資訊。此資訊然後由ROB 340檢查,以判定是否可有效地收回指令及結果資料是否提交至處理器之架構狀態,或防止指令適當收回之一或多個異常是否發生。當然,ROB 340可處理與收回相關聯之其他操作。
如圖6中所示,ROB 340係耦合至快取記憶體350,在一實施例中,該快取記憶體可為低階快取記憶體(例如,L1快取記憶體)且其亦可包括TLB 355,然而本發明之範疇並不限於此方面。此外,執行單元320可直接耦合至快取記憶體350。自快取記憶體350,資料通訊可與較高階快取記憶體、系統記憶體等發生。應注意,雖然圖6之處理器之實行方案係關於亂序機,諸如所謂的x86 ISA架構,但是本發明之範疇並不限於此方面。亦即,其他實施例可實行於循序處理器、諸如基於ARM之處理器之簡化指令集計算(RISC)處理器,或可經由仿真引擎及相關聯邏輯電路來仿真不同ISA之指令及操作的另一類型ISA之處理器中。
現參閱圖7,展示根據本發明之一實施例的多域處理器之方塊圖。如圖7之實施例中所示,處理器400包括多個域。具體而言,核心域410可包括多個核心4100 -410n ,圖形域420可包括一或多個圖形引擎,且可進一步存在系統代理域450。在各種實施例中,系統代理域450可在固定頻率下執行且可保持始終通電以處置電力控制事件及功率管理,以使得域410及域420可經控制以動態地進入及離開低電力狀態。應注意,雖然僅展示具有三個域,但是將理解 本發明之範疇並不限於此方面,且在其他實施例中可存在額外域。例如,可存在各自包括至少一核心之多個核心域。
一般而言,除了諸如根據本發明之一實施例之FMA單元的各種執行單元及額外處理元件之外,每一核心410可進一步包括低階快取記憶體。又,各種核心可彼此耦合且耦合至共享快取記憶體,該共享快取記憶體由具有末級快取記憶體(LLC)4400 -440n 之多個單元形成。在各種實施例中,LLC 450可在該等核心及圖形引擎,以及各種媒體處理電路之間共享。如所見,環形互連體430因此將該等核心耦合在一起,且提供在該等核心、圖形域420與系統代理電路450之間的相互連接。
在圖7之實施例中,系統代理域450可包括顯示器控制器452,該顯示器控制器可提供相關聯顯示器之控制及至相關聯顯示器之介面。如進一步所見,系統代理域450可包括電力控制單元455,該電力控制單元可執行對處理器所在系統之功率管理。
如圖7中進一步所見,處理器400可進一步包括整合型記憶體控制器(IMC)470,該整合型記憶體控制器可提供至系統記憶體(諸如動態隨機存取記憶體(DRAM))之介面。可存在多個介面4800 -480n ,以致能在處理器與其他電路之間的相互連接。例如,在一實施例中,可提供至少一直接媒體介面(DMI)介面以及一或多個快速週邊組件互連(PCI ExpressTM (PCIeTM ))介面。更進一步,為提供在諸如額外處理器或其他電路之其他代理者之間的通訊,亦可提供 根據Intel®快速路徑互連(QPI)協定之一或多個介面。儘管在圖7之實施例中以此高階示出,但是將理解本發明之範疇並不限於此方面。
實施例可實行於許多不同系統類型中。現參閱圖8,展示根據本發明之一實施例之系統的方塊圖。如圖8中所示,多處理器系統500為點對點互連體系統,且包括經由點對點互連體550耦合之第一處理器570及第二處理器580。如圖8中所示,處理器570及處理器580中每一者皆可為多核心處理器,包括第一及第二處理器核心(亦即,處理器核心574a及574b以及處理器核心584a及584b),然而可於處理器中潛在地存在更多核心。核心中每一者皆可包括FMA單元,該FMA單元包括獨立可控加法器部分,如本文中所述。
仍參閱圖8,第一處理器570進一步包括記憶體控制器集線器(MCH)572及點對點(P-P)介面576及578。類似地,第二處理器580包括MCH 582及P-P介面586及588。如圖8中所示,MCH 572及582將處理器耦合至個別記憶體,即記憶體532及記憶體534,該等記憶體可為以局部附接至各別處理器之系統記憶體(例如,DRAM)之部分。第一處理器570及第二處理器580可分別經由P-P互連體552及554耦合至晶片組590。如圖8中所示,晶片組590包括P-P介面594及598。
此外,晶片組590包括介面592以藉由P-P互連體539使晶片組590與高效能圖形引擎538耦合。又,晶片組590 可經由介面596耦合至第一匯流排516。如圖8中所示,各種輸入/輸出(I/O)裝置514可與匯流排橋接器518一起耦合至第一匯流排516,該匯流排橋接器將第一匯流排516耦合至第二匯流排520。各種裝置可耦合至第二匯流排520,該等裝置包括例如鍵盤/滑鼠522、通訊裝置526及諸如磁碟驅動器或其他大容量儲存裝置之資料儲存單元528,在一實施例中該資料儲存單元可包括碼530。另外,音訊I/O 524可耦合至第二匯流排520。實施例可併入至其他類型之系統中,該等系統包括行動裝置,諸如智慧型行動電話、平板電腦、隨身型易網機(netbook)等。
實施例可以碼來實行,且可儲存於非暫時儲存媒體上,該非暫時儲存媒體上儲存有指令,該等指令可被使用以規劃系統以執行指令。儲存媒體可包括但不限於:任何類型之磁碟,包括軟碟、光碟、固態驅動機(SSD)、壓縮碟唯讀記憶體(CD-ROM)、可重寫壓縮碟(CD-RW)及磁光碟;半導體元件,諸如唯讀記憶體(ROM)、隨機存取記憶體(RAM),諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可規劃唯讀記憶體(EPROM)、快閃記憶體、電氣可抹除可規劃唯讀記憶體(EEPROM);磁卡或光卡,或適合於儲存電子指令之任何其他類型之媒體。
雖然已就有限數目之實施例描述本發明,但是熟習此項技術者將瞭解基於該等實施例之許多修改及變化。隨附申請專利範圍意欲涵蓋如屬於本發明之真實精神及範疇內之所有此等修改及變化。
200‧‧‧方法
210、230、240‧‧‧菱形
220、250‧‧‧方塊

Claims (20)

  1. 一種設備,其包括:一核心,其包括多個執行單元以執行指令,該等多個執行單元包括一積和熔加運算(FMA)單元以進行FMA指令及加運算類指令,該FMA單元包括:一乘法器及一加法器,該加法器耦合至該乘法器之一輸出,該加法器具有多個區段,各區段可獨立控制為通電或斷電的;及一追蹤器,該追蹤器耦合至該加法器,以使該加法器之所有區段在一FMA指令之後在一第一指令於該FMA單元中執行期間通電,且否則只有在該區段將要於一指令執行期間使用之情況下,才將一對應區段通電。
  2. 如申請專利範圍第1項之設備,其中該追蹤器包括多個追蹤器區段,各區段與該等多個加法器區段中之一相關聯。
  3. 如申請專利範圍第2項之設備,其中一第一追蹤器區段將致能一第一加法器區段以執行一第一加運算類指令,且一第二追蹤器區段將致能一第二加法器區段以並行執行該第一加運算類指令。
  4. 如申請專利範圍第3項之設備,其中該第一加法器區段及該第二加法器區段之一寬度係至少等於該第一加運算類指令之一寬度。
  5. 如申請專利範圍第1項之設備,其中該FMA單元具有N位元寬度,且該加法器係由四個區段形成,該等區段中至少兩者各自具有大於N/4之一位元寬度。
  6. 如申請專利範圍第5項之設備,其中具有大於N/4之該位元寬度之該兩個區段將執行一雙倍精度加運算類指令,且其他兩個區段將斷電。
  7. 如申請專利範圍第1項之設備,其中一第一加法器區段將執行一第一單倍精度加運算類指令且一第二加法器區段將並行執行一第二單倍精度加運算類指令,且一第三加法器區段及一第四加法器區段將受時鐘閘控。
  8. 一種方法,其包括:在一處理器之一積和熔加運算(FMA)單元中執行一FMA指令之後,於該FMA單元中執行一第一指令期間,對該FMA單元中之一加法器的一第一區段供電,儘管該第一指令不欲使用該加法器之該第一區段;以及若一下一指令不欲使用該加法器之該第一區段,則在繼該第一指令之後執行該下一指令期間,將該加法器之該第一區段斷電。
  9. 如申請專利範圍第8項之方法,其進一步包括在該下一指令執行期間將該加法器之該第一區段斷電,同時將該加法器之一第二區段通電,其中該下一指令欲使用該加法器之該第二區段。
  10. 如申請專利範圍第8項之方法,其中該第一指令及該下一指令包括加運算類指令。
  11. 如申請專利範圍第8項之方法,其進一步包括在一第一加運算類指令及一第二加運算類指令於該FMA單元中並行執行期間,對該加法器之該第一區段及該加法器之 一第三區段供電,其中該加法器之至少一第二區段在該並行執行期間被斷電。
  12. 如申請專利範圍第8項之方法,其進一步包括:在一追蹤器中接收與該加法器之該第一區段相關聯的該第一指令;以及生成一賦能信號以致能將要於該第一指令執行期間提供至該第一區段之一時鐘信號,其中該第一指令不使用該第一區段。
  13. 如申請專利範圍第12項之方法,其進一步包括:在該追蹤器中接收該下一指令;以及不生成該賦能信號以防止該時鐘信號在該下一指令執行期間被提供至該第一區段。
  14. 一種系統,其包括:一處理器,其包括一積和熔加運算(FMA)單元以執行FMA指令及加運算類指令,其中該FMA單元之一加法器包括多個區段,各區段獨立地由一邏輯控制,其中該邏輯欲在一加運算類指令於該加法器之另一區段中執行期間時鐘閘控該加法器之至少一區段,該加運算類指令具有一寬度小於該FMA單元之一寬度。
  15. 如申請專利範圍第14項之系統,其中若在繼一FMA指令之後執行至少一加運算類指令期間第一區段及第二區段被通電,則該邏輯將時鐘閘控該加法器之該第一區段及該第二區段。
  16. 如申請專利範圍第14項之系統,其中若在繼一FMA指令 之後執行至少一加運算類指令期間還未將第一區段及第二區段通電,則該邏輯將通電該加法器之該第一區段及該第二區段。
  17. 如申請專利範圍第14項之系統,其中該邏輯包括多個追蹤器區段,各區段與該等多個加法器區段中之一相關聯。
  18. 如申請專利範圍第14項之系統,其中該加法器包括四個區段,該等區段中的兩者各自具有大於N/4之一位元寬度,具有大於N/4之該位元寬度之該兩個區段將執行一雙倍精度加運算類指令,同時其他兩個區段將被斷電。
  19. 如申請專利範圍第18項之系統,其中在執行該雙倍精度加運算類指令後,只有在一指令將使用一對應區段之情況下,才將該等區段中的每一者通電,直到執行一下一FMA指令。
  20. 如申請專利範圍第14項之系統,其中該加法器包括N個位元,且在用於執行具有N/2個位元之一加運算類指令的該加法器中之功率消耗不大於用於執行具有N/2個位元之一加運算類指令的具有N/2個位元之一加法器之功率消耗。
TW101143247A 2011-11-21 2012-11-20 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術 TWI471801B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/061716 WO2013077845A1 (en) 2011-11-21 2011-11-21 Reducing power consumption in a fused multiply-add (fma) unit of a processor

Publications (2)

Publication Number Publication Date
TW201331828A TW201331828A (zh) 2013-08-01
TWI471801B true TWI471801B (zh) 2015-02-01

Family

ID=48470155

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101143247A TWI471801B (zh) 2011-11-21 2012-11-20 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術

Country Status (3)

Country Link
US (2) US9360920B2 (zh)
TW (1) TWI471801B (zh)
WO (1) WO2013077845A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9360920B2 (en) * 2011-11-21 2016-06-07 Intel Corporation Reducing power consumption in a fused multiply-add (FMA) unit of a processor
US9389871B2 (en) * 2013-03-15 2016-07-12 Intel Corporation Combined floating point multiplier adder with intermediate rounding logic
US10175981B2 (en) * 2013-07-09 2019-01-08 Texas Instruments Incorporated Method to control the number of active vector lanes for power efficiency
US10732689B2 (en) 2013-07-09 2020-08-04 Texas Instruments Incorporated Controlling the number of powered vector lanes via a register field
US9389863B2 (en) * 2014-02-10 2016-07-12 Via Alliance Semiconductor Co., Ltd. Processor that performs approximate computing instructions
US9645792B2 (en) 2014-08-18 2017-05-09 Qualcomm Incorporated Emulation of fused multiply-add operations
US9977680B2 (en) 2016-09-30 2018-05-22 International Business Machines Corporation Clock-gating for multicycle instructions
US10146535B2 (en) 2016-10-20 2018-12-04 Intel Corporatoin Systems, apparatuses, and methods for chained fused multiply add
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10802826B2 (en) 2017-09-29 2020-10-13 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US10514924B2 (en) * 2017-09-29 2019-12-24 Intel Corporation Apparatus and method for performing dual signed and unsigned multiplication of packed data elements
US11216312B2 (en) * 2018-08-03 2022-01-04 Virtustream Ip Holding Company Llc Management of unit-based virtual accelerator resources
US11693657B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems
US11934824B2 (en) * 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11829729B2 (en) 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
US11223575B2 (en) * 2019-12-23 2022-01-11 Advanced Micro Devices, Inc. Re-purposing byte enables as clock enables for power savings
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230774A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Multifunction hexadecimal instructions
TW200622877A (en) * 2004-09-30 2006-07-01 Intel Corp Method and apparatus to provide a source operand for an instruction in a processor
US20100017635A1 (en) * 2008-07-18 2010-01-21 Barowski Harry S Zero indication forwarding for floating point unit power reduction
US8037118B2 (en) * 2007-04-10 2011-10-11 Eric Quinnell Three-path fused multiply-adder circuit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7137021B2 (en) * 2003-05-15 2006-11-14 International Business Machines Corporation Power saving in FPU with gated power based on opcodes and data
US20080071851A1 (en) 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US8577948B2 (en) 2010-09-20 2013-11-05 Intel Corporation Split path multiply accumulate unit
US9360920B2 (en) * 2011-11-21 2016-06-07 Intel Corporation Reducing power consumption in a fused multiply-add (FMA) unit of a processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230774A1 (en) * 2003-05-12 2004-11-18 International Business Machines Corporation Multifunction hexadecimal instructions
TW200622877A (en) * 2004-09-30 2006-07-01 Intel Corp Method and apparatus to provide a source operand for an instruction in a processor
TWI334099B (en) * 2004-09-30 2010-12-01 Intel Corp Method and apparatus to provide a source operand for an instruction by a scheduler in a processor
US8037118B2 (en) * 2007-04-10 2011-10-11 Eric Quinnell Three-path fused multiply-adder circuit
US20100017635A1 (en) * 2008-07-18 2010-01-21 Barowski Harry S Zero indication forwarding for floating point unit power reduction

Also Published As

Publication number Publication date
US20160321031A1 (en) 2016-11-03
US9360920B2 (en) 2016-06-07
WO2013077845A1 (en) 2013-05-30
TW201331828A (zh) 2013-08-01
US9778911B2 (en) 2017-10-03
US20130268794A1 (en) 2013-10-10

Similar Documents

Publication Publication Date Title
TWI471801B (zh) 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術
TWI515649B (zh) 響應於輸入資料値以降低在積和熔加運算(fma)單元中的功率消耗之技術
US20200334038A1 (en) Variable format, variable sparsity matrix multiplication instruction
US10209989B2 (en) Accelerated interlane vector reduction instructions
TWI470543B (zh) 用於多精度算術之單一指令多重資料(simd)整數乘法累加指令
US9104474B2 (en) Variable precision floating point multiply-add circuit
KR101020430B1 (ko) 동적 범위 조정 부동 소수점 실행 유닛
US8577948B2 (en) Split path multiply accumulate unit
US9122475B2 (en) Instruction for shifting bits left with pulling ones into less significant bits
US20180121386A1 (en) Super single instruction multiple data (super-simd) for graphics processing unit (gpu) computing
JP2009140491A (ja) 融合型積和演算機能ユニット
US9965276B2 (en) Vector operations with operand base system conversion and re-conversion
CN111767516A (zh) 用于利用所选择的舍入来执行浮点加法的系统和方法
JP5607832B2 (ja) 汎用論理演算の方法および装置
US20140189288A1 (en) Instruction to reduce elements in a vector register with strided access pattern
US20170177361A1 (en) Apparatus and method for accelerating graph analytics
JP2018506094A (ja) 多倍長整数(big integer)の算術演算を実行するための方法および装置
JP2014182796A (ja) 書き込みマスク・レジスタの末尾の最下位マスキング・ビットを判定するためのシステム、装置、および方法
US20190163476A1 (en) Systems, methods, and apparatuses handling half-precision operands
US10289386B2 (en) Iterative division with reduced latency
KR101635856B1 (ko) 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법
US11544065B2 (en) Bit width reconfiguration using a shadow-latch configured register file
CN116339826A (zh) 用于四字特定部分的向量紧缩串接和移位的装置和方法

Legal Events

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