CN104951278A - 用于执行多个乘法操作的方法和装置 - Google Patents

用于执行多个乘法操作的方法和装置 Download PDF

Info

Publication number
CN104951278A
CN104951278A CN201510090366.7A CN201510090366A CN104951278A CN 104951278 A CN104951278 A CN 104951278A CN 201510090366 A CN201510090366 A CN 201510090366A CN 104951278 A CN104951278 A CN 104951278A
Authority
CN
China
Prior art keywords
instruction
uop
processor
field
execution
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201510090366.7A
Other languages
English (en)
Chinese (zh)
Inventor
R·艾斯帕萨
G·索尔
M·费尔南德斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
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 CN104951278A publication Critical patent/CN104951278A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
CN201510090366.7A 2014-03-28 2015-02-28 用于执行多个乘法操作的方法和装置 Pending CN104951278A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/229,183 2014-03-28
US14/229,183 US20150277904A1 (en) 2014-03-28 2014-03-28 Method and apparatus for performing a plurality of multiplication operations

Publications (1)

Publication Number Publication Date
CN104951278A true CN104951278A (zh) 2015-09-30

Family

ID=53016263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510090366.7A Pending CN104951278A (zh) 2014-03-28 2015-02-28 用于执行多个乘法操作的方法和装置

Country Status (7)

Country Link
US (1) US20150277904A1 (enExample)
JP (2) JP6092904B2 (enExample)
KR (1) KR101729829B1 (enExample)
CN (1) CN104951278A (enExample)
DE (1) DE102015002253A1 (enExample)
GB (1) GB2526406B (enExample)
TW (1) TWI578230B (enExample)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN108292220A (zh) * 2015-12-22 2018-07-17 英特尔公司 用于加速图形分析的装置和方法
CN108805797A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于机器学习操作的经优化计算硬件
CN109313556A (zh) * 2016-07-02 2019-02-05 英特尔公司 可中断和可重启矩阵乘法指令、处理器、方法和系统
CN109328333A (zh) * 2016-07-02 2019-02-12 英特尔公司 用于累积式乘积的系统、装置和方法
CN109582365A (zh) * 2017-09-29 2019-04-05 英特尔公司 用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法
CN111539518A (zh) * 2017-04-24 2020-08-14 英特尔公司 用于深度神经网络的计算优化机制
CN113885833A (zh) * 2016-10-20 2022-01-04 英特尔公司 用于经融合的乘加的系统、装置和方法
CN114626973A (zh) * 2017-04-24 2022-06-14 英特尔公司 用于高效卷积的专用固定功能硬件

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
GB2548600B (en) * 2016-03-23 2018-05-09 Advanced Risc Mach Ltd Vector predication instruction
US11221849B2 (en) 2017-09-27 2022-01-11 Intel Corporation Instructions for vector multiplication of unsigned words with rounding
US11392379B2 (en) * 2017-09-27 2022-07-19 Intel Corporation Instructions for vector multiplication of signed words with rounding
US10572568B2 (en) * 2018-03-28 2020-02-25 Intel Corporation Accelerator for sparse-dense matrix multiplication
US10459688B1 (en) * 2019-02-06 2019-10-29 Arm Limited Encoding special value in anchored-data element

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606677A (en) * 1992-11-30 1997-02-25 Texas Instruments Incorporated Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
US20070300049A1 (en) * 2006-06-27 2007-12-27 Avinash Sodani Technique to perform three-source operations
CN102103486A (zh) * 2009-12-22 2011-06-22 英特尔公司 用于将三个源操作数相加的加法指令

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2580371B2 (ja) * 1990-07-18 1997-02-12 株式会社日立製作所 ベクトルデ―タ処理装置
US7254698B2 (en) * 2003-05-12 2007-08-07 International Business Machines Corporation Multifunction hexadecimal instructions
US7873815B2 (en) * 2004-03-04 2011-01-18 Qualcomm Incorporated Digital signal processors with configurable dual-MAC and dual-ALU
US8583902B2 (en) * 2010-05-07 2013-11-12 Oracle International Corporation Instruction support for performing montgomery multiplication
WO2013095619A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Super multiply add (super madd) instruction with three scalar terms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5606677A (en) * 1992-11-30 1997-02-25 Texas Instruments Incorporated Packed word pair multiply operation forming output including most significant bits of product and other bits of one input
US20070300049A1 (en) * 2006-06-27 2007-12-27 Avinash Sodani Technique to perform three-source operations
CN102103486A (zh) * 2009-12-22 2011-06-22 英特尔公司 用于将三个源操作数相加的加法指令
US20110153993A1 (en) * 2009-12-22 2011-06-23 Vinodh Gopal Add Instructions to Add Three Source Operands

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIDEAKI KOBAYASHI: "A Fast Multi-Operand Multiplication Scheme", 《COMPUTER ARITHMETIC (ARITH),1981 IEEE 5TH SYMPOSIUM ON》 *
INTEL: "IA-64 Application Developer’s Architecture Guide", 《IA-64 APPLICATION DEVELOPER’S ARCHITECTURE GUIDE》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108292220B (zh) * 2015-12-22 2024-05-28 英特尔公司 用于加速图形分析的装置和方法
CN108292220A (zh) * 2015-12-22 2018-07-17 英特尔公司 用于加速图形分析的装置和方法
CN109328333B (zh) * 2016-07-02 2023-12-19 英特尔公司 用于累积式乘积的系统、装置和方法
US11698787B2 (en) 2016-07-02 2023-07-11 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
CN109328333A (zh) * 2016-07-02 2019-02-12 英特尔公司 用于累积式乘积的系统、装置和方法
US12204898B2 (en) 2016-07-02 2025-01-21 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
US12050912B2 (en) 2016-07-02 2024-07-30 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
CN109313556B (zh) * 2016-07-02 2024-01-23 英特尔公司 可中断和可重启矩阵乘法指令、处理器、方法和系统
CN109313556A (zh) * 2016-07-02 2019-02-05 英特尔公司 可中断和可重启矩阵乘法指令、处理器、方法和系统
CN113885833A (zh) * 2016-10-20 2022-01-04 英特尔公司 用于经融合的乘加的系统、装置和方法
CN106951211A (zh) * 2017-03-27 2017-07-14 南京大学 一种可重构定浮点通用乘法器
CN106951211B (zh) * 2017-03-27 2019-10-18 南京大学 一种可重构定浮点通用乘法器
CN111539518B (zh) * 2017-04-24 2023-05-23 英特尔公司 用于深度神经网络的计算优化机制
CN114626973A (zh) * 2017-04-24 2022-06-14 英特尔公司 用于高效卷积的专用固定功能硬件
CN111539518A (zh) * 2017-04-24 2020-08-14 英特尔公司 用于深度神经网络的计算优化机制
CN108805797A (zh) * 2017-05-05 2018-11-13 英特尔公司 用于机器学习操作的经优化计算硬件
US12314727B2 (en) 2017-05-05 2025-05-27 Intel Corporation Optimized compute hardware for machine learning operations
CN109582365A (zh) * 2017-09-29 2019-04-05 英特尔公司 用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法

Also Published As

Publication number Publication date
GB2526406B (en) 2017-01-04
TWI578230B (zh) 2017-04-11
JP6092904B2 (ja) 2017-03-08
US20150277904A1 (en) 2015-10-01
TW201602905A (zh) 2016-01-16
GB201504489D0 (en) 2015-04-29
GB2526406A (en) 2015-11-25
JP6498226B2 (ja) 2019-04-10
JP2015191661A (ja) 2015-11-02
KR101729829B1 (ko) 2017-04-24
KR20150112779A (ko) 2015-10-07
JP2017142799A (ja) 2017-08-17
DE102015002253A1 (de) 2015-10-01

Similar Documents

Publication Publication Date Title
CN104011657B (zh) 用于向量计算和累计的装置和方法
CN104025040B (zh) 用于混洗浮点或整数值的装置和方法
CN104011670B (zh) 用于基于向量写掩码的内容而在通用寄存器中存储两个标量常数之一的指令
CN104011649B (zh) 用于在simd/向量执行中传播有条件估算值的装置和方法
CN104011667B (zh) 用于滑动窗口数据访问的设备和方法
CN104951278A (zh) 用于执行多个乘法操作的方法和装置
CN104081336B (zh) 用于检测向量寄存器内的相同元素的装置和方法
CN104081340B (zh) 用于数据类型的下转换的装置和方法
CN104169867B (zh) 用于执行掩码寄存器至向量寄存器的转换的系统、装置和方法
CN104126167B (zh) 用于从通用寄存器向向量寄存器进行广播的装置和方法
CN104025022B (zh) 用于具有推测支持的向量化的装置和方法
CN104011650B (zh) 使用输入写掩码和立即数从源写掩码寄存器在目的地写掩码寄存器中设置输出掩码的系统、装置和方法
CN104126172B (zh) 用于掩码寄存器扩充操作的装置和方法
CN104025019B (zh) 用于执行双块绝对差求和的系统、装置和方法
CN104011671B (zh) 用于执行置换操作的设备和方法
CN104813277A (zh) 用于处理器的功率效率的向量掩码驱动时钟门控
CN104126166A (zh) 用于执行使用掩码的向量打包一元编码的系统、装置和方法
CN104040482A (zh) 用于在打包数据元素上执行增量解码的系统、装置和方法
CN107003846A (zh) 用于向量索引加载和存储的方法和装置
CN106030514B (zh) 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法
CN104350492A (zh) 在大寄存器空间中利用累加的向量乘法
CN104137054A (zh) 用于执行从索引值列表向掩码值的转换的系统、装置和方法
CN104335166A (zh) 用于执行混洗和操作(混洗-操作)的系统、装置和方法
CN104126171B (zh) 用于基于两个源写掩码寄存器生成依赖向量的系统、装置和方法
CN107003848A (zh) 用于融合乘法‑乘法指令的装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20190507

AD01 Patent right deemed abandoned