RU2000132719A - Смешанный файл векторных/скалярных регистров - Google Patents

Смешанный файл векторных/скалярных регистров

Info

Publication number
RU2000132719A
RU2000132719A RU2000132719/09A RU2000132719A RU2000132719A RU 2000132719 A RU2000132719 A RU 2000132719A RU 2000132719/09 A RU2000132719/09 A RU 2000132719/09A RU 2000132719 A RU2000132719 A RU 2000132719A RU 2000132719 A RU2000132719 A RU 2000132719A
Authority
RU
Russia
Prior art keywords
register
vector
registers
scalar
data processing
Prior art date
Application number
RU2000132719/09A
Other languages
English (en)
Other versions
RU2212049C2 (ru
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
Priority claimed from US09/084,304 external-priority patent/US6282634B1/en
Application filed by Арм Лимитед filed Critical Арм Лимитед
Publication of RU2000132719A publication Critical patent/RU2000132719A/ru
Application granted granted Critical
Publication of RU2212049C2 publication Critical patent/RU2212049C2/ru

Links

Claims (25)

1. Устройство для обработки данных, содержащее банк (38) регистров, имеющий множество регистров, каждый из которых может быть использован как векторный или как скалярный регистр, и декодер (42, 48, 50) команд для декодирования команд обработки данных, причем по меньшей мере одна из команд обработки данных имеет по меньшей мере один код (ОР) определения операции, определяющий операцию для выполнения, и поле (R1) определения первого регистра, определяющее первый регистр в банке регистров, при этом декодер команд обеспечивает выполнение операции с использованием данного регистра (R1, R2, R3) в качестве скалярного регистра или векторного регистра, причем выполнение с использованием упомянутого данного регистра, являющегося скалярным регистром, включает выполнение упомянутой операции однократно над операндом, сохраненным в упомянутом данном регистре, и выполнение с использованием данного регистра, являющегося векторным регистром, включает выполнение упомянутой операции многократно над операндами, сохраненными в предварительно определенной последовательности регистров банка регистров, выбранных в зависимости от поля определения регистра для упомянутого данного регистра, и декодер команд реагирует на упомянутое поле (R1) определения первого регистра и является независимым от кода определения операции при определении того, следует ли упомянутую операцию выполнять с использованием первого регистра в качестве векторного регистра или скалярного регистра.
2. Устройство по п. 1, отличающееся тем, что упомянутая по меньшей мере одна из команд обработки данных имеет поле (R2) определения второго регистра, определяющее второй регистр, при этом декодер команд выполняет упомянутую операцию с использованием второго регистра в качестве скалярного регистра или векторного регистра, и декодер команд реагирует на упомянутое поле (R1) определения первого регистра для определения того, следует ли упомянутую операцию выполнять с использованием второго регистра в качестве векторного регистра или скалярного регистра.
3. Устройство по п. 2, отличающееся тем, что если упомянутый первый регистр является скалярным регистром, то упомянутый второй регистр является векторным регистром, а если упомянутый первый регистр является векторным регистром, то упомянутый второй регистр является векторным регистром.
4. Устройство по п. 2 или 3, отличающееся тем, что упомянутая по меньшей мере одна из команд обработки данных имеет поле (R3) определения третьего регистра, определяющее третий регистр, при этом декодер команд выполняет упомянутую операцию с использованием третьего регистра в качестве скалярного регистра или векторного регистра, и декодер команд реагирует на упомянутое поле определения второго регистра для определения того, следует ли упомянутую операцию выполнять с использованием третьего регистра в качестве векторного регистра или скалярного регистра.
5. Устройство по любому из пп. 1-4, отличающееся тем, что коды определения операции имеют не коммутативные значения кодов, соответствующие не коммутативным операциям, причем по меньшей мере некоторые из не коммутативных значений кодов обеспечены в парах соответственно одной и той же операции, но с противоположным порядком операндов.
6. Устройство по любому из пп. 1-5, отличающееся тем, что содержит регистр (46) управления вектором, сохраняющий значение длины, определяющее число регистров в упомянутой предварительно определенной последовательности регистров, для которого упомянутая операция повторяется, если упомянутый данный регистр является векторным регистром, причем упомянутое значение длины применяется для всех векторных регистров, используемых в упомянутых командах обработки данных.
7. Устройство по п. 6, отличающееся тем, что декодер команд обнаруживает, определяет ли упомянутое значение длины, что упомянутое число регистров в предварительно определенной последовательности равно одному, для обеспечения указания, что все регистры, используемые в командах обработки данных, являются скалярными регистрами.
8. Устройство по п. 6 или 7, отличающееся тем, что регистр (46) управления вектором сохраняет значение шага по индексу, определяющее приращение в номере регистра между регистрами предварительно определенной последовательности регистров, причем упомянутое значение шага по индексу применяется ко всем векторным регистрам, используемым в командах обработки данных.
9. Устройство по любому из пп. 1-8, отличающееся тем, что если поле определения первого регистра находится в первом диапазоне N значений, то первый регистр является векторным регистром, и если упомянутое значение первого регистра находится во втором диапазоне М значений, отличающемся от первого диапазона N значений, то первый регистр является векторным регистром.
10. Устройство по п. 9, отличающееся тем, что М > N.
11. Устройство по п. 10, отличающееся тем, что М = 3 * N.
12. Устройство по п. 4, отличающееся тем, что если поле определения второго регистра находится в первом диапазоне Р значений, то третий регистр является векторным регистром, и если упомянутое значение второго регистра находится во втором диапазоне Q значений, отличающемся от первого диапазона Р значений, то третий регистр является векторным регистром.
13. Устройство по п. 12, отличающееся тем, что Р > Q.
14. Устройство по п. 13, отличающееся тем, что Р = 3 * Q.
15. Устройство по любому из пп. 1-14, отличающееся тем, что содержит память и контроллер переноса для управления переносом значений данных между памятью и регистрами в банке регистров, причем контроллер переноса реагирует на множество команд переноса для переноса последовательности значений данных между памятью и последовательностью регистров в банке регистров.
16. Устройство по любому из пп. 1-15, отличающееся тем, что банк регистров и декодер команд являются частью модуля выполнения операций с плавающей точкой.
17. Устройство по п. 16, отличающееся тем, что модуль выполнения операций с плавающей точкой содержит модуль умножения-суммирования с накоплением для выполнения операций умножения-суммирования с накоплением.
18. Устройство по любому из пп. 1-17, отличающееся тем, что результат упомянутой операции записывается в первый регистр, который действует в качестве регистра адресата.
19. Устройство по п. 2, отличающееся тем, что второй регистр действует в качестве регистра первого операнда, сохраняющего первый входной операнд для упомянутой операции.
20. Устройство по п. 4, отличающееся тем, что третий регистр действует в качестве регистра второго операнда, сохраняющего второй входной операнд для упомянутой операции.
21. Устройство по любому из пп. 1-20, отличающееся тем, что банк регистров содержит 32 регистра.
22. Устройство по любому из пп. 1-21, отличающееся тем, что регистры могут действовать и могут быть использованы индивидуально для сохранения значения с одинарной точностью или могут действовать и могут быть использованы парами для сохранения значения двойной точности.
23. Устройство по любому из пп. 1-22, отличающееся тем, что поле определения данного регистра определяет начальный регистр в предварительно определенной последовательности регистров, если упомянутая операция должна быть выполнена с использованием данного регистра в качестве векторного регистра.
24. Устройство по любому из пп. 1-23, отличающееся тем, что декодер команд реагирует по меньшей мере на одну дополнительную команду обработки данных, в которой код операции определяет, является ли данный регистр, определенный в команде, векторным регистром или скалярным регистром независимо от любых полей определения регистров.
25. Способ обработки данных, включающий этапы сохранения значений данных в банке регистров, имеющем множество регистров, каждый из которых может быть использован как векторный или скалярный регистр, декодирования команд обработки данных с помощью декодера команд, причем по меньшей мере одна из команд обработки данных имеет по меньшей мере один код определения операции, определяющий операцию для выполнения, и поле определения первого регистра, определяющее первый регистр в банке регистров, при этом декодер команд обеспечивает выполнение операции с использованием данного регистра в качестве скалярного регистра или векторного регистра, причем выполнение с использованием упомянутого данного регистра, являющегося скалярным регистром, включает выполнение упомянутой операции однократно над операндом, сохраненным в упомянутом данном регистре, и выполнение с использованием данного регистра, являющегося векторным регистром, включает выполнение упомянутой операции многократно над операндами, сохраненными в предварительно определенной последовательности регистров банка регистров, выбранных в зависимости от поля определения регистра для упомянутого данного регистра, и декодер команд реагирует на упомянутое поле определения первого регистра и является независимым от кода определения операции при определении того, следует ли упомянутую операцию выполнять с использованием первого регистра в качестве векторного регистра или скалярного регистра.
RU2000132719/09A 1998-05-27 1999-03-09 Смешанный файл векторных/скалярных регистров RU2212049C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/084,304 1998-05-27
US09/084,304 US6282634B1 (en) 1998-05-27 1998-05-27 Apparatus and method for processing data having a mixed vector/scalar register file

Publications (2)

Publication Number Publication Date
RU2000132719A true RU2000132719A (ru) 2003-01-27
RU2212049C2 RU2212049C2 (ru) 2003-09-10

Family

ID=22184104

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000132719/09A RU2212049C2 (ru) 1998-05-27 1999-03-09 Смешанный файл векторных/скалярных регистров

Country Status (11)

Country Link
US (3) US6282634B1 (ru)
EP (1) EP1080420B1 (ru)
JP (1) JP2002517037A (ru)
KR (1) KR100563219B1 (ru)
CN (1) CN1191535C (ru)
DE (1) DE69901708T2 (ru)
IL (1) IL139250A0 (ru)
MY (1) MY125652A (ru)
RU (1) RU2212049C2 (ru)
TW (1) TW413766B (ru)
WO (1) WO1999061996A1 (ru)

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6687722B1 (en) * 2000-03-16 2004-02-03 Agere Systems, Inc. High-speed/low power finite impulse response filter
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6675376B2 (en) * 2000-12-29 2004-01-06 Intel Corporation System and method for fusing instructions
AU2002338616A1 (en) * 2001-02-06 2002-10-28 Victor Demjanenko Vector processor architecture and methods performed therein
US6842849B2 (en) * 2001-05-21 2005-01-11 Arm Limited Locking source registers in a data processing apparatus
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7228324B2 (en) * 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7395297B2 (en) 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US6970898B2 (en) * 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US7831652B2 (en) * 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US6961744B2 (en) * 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US7363337B2 (en) * 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US6976050B2 (en) * 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7080111B2 (en) * 2001-06-04 2006-07-18 Intel Corporation Floating point multiply accumulator
US6779013B2 (en) * 2001-06-04 2004-08-17 Intel Corporation Floating point overflow and sign detection
GB2382674B (en) * 2001-10-31 2005-11-16 Alphamosaic Ltd Data access in a processor
US7937559B1 (en) 2002-05-13 2011-05-03 Tensilica, Inc. System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US7376812B1 (en) * 2002-05-13 2008-05-20 Tensilica, Inc. Vector co-processor for configurable and extensible processor architecture
WO2004015563A1 (en) * 2002-08-09 2004-02-19 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
GB2424503B (en) * 2002-09-17 2007-06-20 Micron Technology Inc An active memory device
US7352817B2 (en) * 2002-09-27 2008-04-01 Ibiquity Digital Corporation Method and apparatus for interleaving signal bits in a digital audio broadcasting system
US6944747B2 (en) * 2002-12-09 2005-09-13 Gemtech Systems, Llc Apparatus and method for matrix data processing
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US20040193838A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney Vector instructions composed from scalar instructions
US7024544B2 (en) * 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7299170B2 (en) * 2003-06-28 2007-11-20 Transitive Limited Method and apparatus for the emulation of high precision floating point instructions
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores
GB2409068A (en) * 2003-12-09 2005-06-15 Advanced Risc Mach Ltd Data element size control within parallel lanes of processing
CN1306395C (zh) * 2004-02-13 2007-03-21 中国科学院计算技术研究所 Mips指令集的处理器扩展指令及其编码方法和部件
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8736623B1 (en) 2004-11-15 2014-05-27 Nvidia Corporation Programmable DMA engine for implementing memory transfers and video processing for a video processor
US20060179096A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation System and method for a fused multiply-add dataflow with early feedback prior to rounding
US8250348B2 (en) * 2005-05-19 2012-08-21 International Business Machines Corporation Methods and apparatus for dynamically switching processor mode
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
JP5096923B2 (ja) * 2005-11-25 2012-12-12 パナソニック株式会社 動的再構成論理回路を有するマルチスレッドプロセッサ
US20070186210A1 (en) * 2006-02-06 2007-08-09 Via Technologies, Inc. Instruction set encoding in a dual-mode computer processing environment
JP4934356B2 (ja) * 2006-06-20 2012-05-16 株式会社日立製作所 映像処理エンジンおよびそれを含む映像処理システム
US7865882B2 (en) * 2006-08-18 2011-01-04 International Business Machines Corporation Fast correctly rounding floating point conversion and identifying exceptional conversion
US9223751B2 (en) 2006-09-22 2015-12-29 Intel Corporation Performing rounding operations responsive to an instruction
US20080079712A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Dual Independent and Shared Resource Vector Execution Units With Shared Register File
US20080079713A1 (en) * 2006-09-28 2008-04-03 Eric Oliver Mejdrich Area Optimized Full Vector Width Vector Cross Product
US7694193B2 (en) * 2007-03-13 2010-04-06 Hewlett-Packard Development Company, L.P. Systems and methods for implementing a stride value for accessing memory
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
CN101216756B (zh) * 2007-12-28 2011-03-23 中国科学院计算技术研究所 一种risc处理器装置及其模拟浮点栈操作的方法
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US9690591B2 (en) 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
CN101819518B (zh) * 2009-02-26 2013-09-11 国际商业机器公司 在事务内存中快速保存上下文的方法和装置
US8341119B1 (en) * 2009-09-14 2012-12-25 Netapp, Inc. Flexible copies having different sub-types
CN101819516B (zh) * 2010-01-22 2014-04-16 龙芯中科技术有限公司 能够复用浮点操作用构件和向量操作用构件的处理器
US8606840B2 (en) * 2010-03-17 2013-12-10 Oracle International Corporation Apparatus and method for floating-point fused multiply add
US8495124B2 (en) * 2010-06-23 2013-07-23 International Business Machines Corporation Decimal floating point mechanism and process of multiplication without resultant leading zero detection
US8914430B2 (en) * 2010-09-24 2014-12-16 Intel Corporation Multiply add functional unit capable of executing scale, round, GETEXP, round, GETMANT, reduce, range and class instructions
US20120185670A1 (en) * 2011-01-14 2012-07-19 Toll Bret L Scalar integer instructions capable of execution with three registers
US20120216015A1 (en) * 2011-02-22 2012-08-23 Mitra Sumanranjan S System and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor
CN102200964B (zh) * 2011-06-17 2013-05-15 孙瑞琛 基于并行处理的fft装置及其方法
US9411585B2 (en) 2011-09-16 2016-08-09 International Business Machines Corporation Multi-addressable register files and format conversions associated therewith
US9727336B2 (en) 2011-09-16 2017-08-08 International Business Machines Corporation Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
CN104011616B (zh) * 2011-12-23 2017-08-29 英特尔公司 改进置换指令的装置和方法
US9619236B2 (en) * 2011-12-23 2017-04-11 Intel Corporation Apparatus and method of improved insert instructions
CN104126171B (zh) * 2011-12-27 2018-08-07 英特尔公司 用于基于两个源写掩码寄存器生成依赖向量的系统、装置和方法
US9575755B2 (en) 2012-08-03 2017-02-21 International Business Machines Corporation Vector processing in an active memory device
US9569211B2 (en) 2012-08-03 2017-02-14 International Business Machines Corporation Predication in a vector processor
US9632777B2 (en) 2012-08-03 2017-04-25 International Business Machines Corporation Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry
US9594724B2 (en) * 2012-08-09 2017-03-14 International Business Machines Corporation Vector register file
CN103281365B (zh) * 2013-05-20 2016-12-28 深圳市京华科讯科技有限公司 分布式虚拟化架构
US8626813B1 (en) * 2013-08-12 2014-01-07 Board Of Regents, The University Of Texas System Dual-path fused floating-point two-term dot product unit
US20150293767A1 (en) * 2014-04-11 2015-10-15 Fujitsu Limited Rotating register file with bit expansion support
GB2540943B (en) * 2015-07-31 2018-04-11 Advanced Risc Mach Ltd Vector arithmetic instruction
US10762164B2 (en) 2016-01-20 2020-09-01 Cambricon Technologies Corporation Limited Vector and matrix computing device
CN106991077A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 一种矩阵计算装置
US10331449B2 (en) * 2016-01-22 2019-06-25 Arm Limited Encoding instructions identifying first and second architectural register numbers
CN107315717B (zh) 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
CN111651201B (zh) * 2016-04-26 2023-06-13 中科寒武纪科技股份有限公司 一种用于执行向量合并运算的装置和方法
US10275243B2 (en) 2016-07-02 2019-04-30 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
EP4137941A1 (en) 2017-03-20 2023-02-22 Intel Corporation Systems, methods, and apparatuses for matrix add, subtract, and multiply
WO2019009870A1 (en) 2017-07-01 2019-01-10 Intel Corporation SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE
WO2019010183A1 (en) * 2017-07-05 2019-01-10 Deep Vision, Inc. PROCESSOR OF DEEP VISION
US10175912B1 (en) * 2017-07-05 2019-01-08 Google Llc Hardware double buffering using a special purpose computational unit
US11023235B2 (en) 2017-12-29 2021-06-01 Intel Corporation Systems and methods to zero a tile register pair
US11669326B2 (en) 2017-12-29 2023-06-06 Intel Corporation Systems, methods, and apparatuses for dot product operations
US11789729B2 (en) 2017-12-29 2023-10-17 Intel Corporation Systems and methods for computing dot products of nibbles in two tile operands
US11809869B2 (en) 2017-12-29 2023-11-07 Intel Corporation Systems and methods to store a tile register pair to memory
US11816483B2 (en) 2017-12-29 2023-11-14 Intel Corporation Systems, methods, and apparatuses for matrix operations
US11093247B2 (en) 2017-12-29 2021-08-17 Intel Corporation Systems and methods to load a tile register pair
US10664287B2 (en) 2018-03-30 2020-05-26 Intel Corporation Systems and methods for implementing chained tile operations
US11093579B2 (en) 2018-09-05 2021-08-17 Intel Corporation FP16-S7E8 mixed precision for deep learning and other algorithms
US10970076B2 (en) 2018-09-14 2021-04-06 Intel Corporation Systems and methods for performing instructions specifying ternary tile logic operations
US11579883B2 (en) 2018-09-14 2023-02-14 Intel Corporation Systems and methods for performing horizontal tile operations
US10866786B2 (en) 2018-09-27 2020-12-15 Intel Corporation Systems and methods for performing instructions to transpose rectangular tiles
US10990396B2 (en) 2018-09-27 2021-04-27 Intel Corporation Systems for performing instructions to quickly convert and use tiles as 1D vectors
US10719323B2 (en) 2018-09-27 2020-07-21 Intel Corporation Systems and methods for performing matrix compress and decompress instructions
US20210263993A1 (en) * 2018-09-27 2021-08-26 Intel Corporation Apparatuses and methods to accelerate matrix multiplication
US10963256B2 (en) 2018-09-28 2021-03-30 Intel Corporation Systems and methods for performing instructions to transform matrices into row-interleaved format
US10896043B2 (en) 2018-09-28 2021-01-19 Intel Corporation Systems for performing instructions for fast element unpacking into 2-dimensional registers
US10929143B2 (en) 2018-09-28 2021-02-23 Intel Corporation Method and apparatus for efficient matrix alignment in a systolic array
US10963246B2 (en) 2018-11-09 2021-03-30 Intel Corporation Systems and methods for performing 16-bit floating-point matrix dot product instructions
US10929503B2 (en) 2018-12-21 2021-02-23 Intel Corporation Apparatus and method for a masked multiply instruction to support neural network pruning operations
US11886875B2 (en) 2018-12-26 2024-01-30 Intel Corporation Systems and methods for performing nibble-sized operations on matrix elements
US11294671B2 (en) 2018-12-26 2022-04-05 Intel Corporation Systems and methods for performing duplicate detection instructions on 2D data
US20200210517A1 (en) 2018-12-27 2020-07-02 Intel Corporation Systems and methods to accelerate multiplication of sparse matrices
US10922077B2 (en) 2018-12-29 2021-02-16 Intel Corporation Apparatuses, methods, and systems for stencil configuration and computation instructions
US10942985B2 (en) 2018-12-29 2021-03-09 Intel Corporation Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
US11016731B2 (en) 2019-03-29 2021-05-25 Intel Corporation Using Fuzzy-Jbit location of floating-point multiply-accumulate results
US11269630B2 (en) 2019-03-29 2022-03-08 Intel Corporation Interleaved pipeline of floating-point adders
US11175891B2 (en) 2019-03-30 2021-11-16 Intel Corporation Systems and methods to perform floating-point addition with selected rounding
US10990397B2 (en) 2019-03-30 2021-04-27 Intel Corporation Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator
US11403097B2 (en) 2019-06-26 2022-08-02 Intel Corporation Systems and methods to skip inconsequential matrix operations
US11334647B2 (en) 2019-06-29 2022-05-17 Intel Corporation Apparatuses, methods, and systems for enhanced matrix multiplier architecture
CN110928577B (zh) * 2019-11-14 2021-11-05 中国人民解放军国防科技大学 一种带异常返回的向量存储指令的执行方法
US11714875B2 (en) 2019-12-28 2023-08-01 Intel Corporation Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US20200218508A1 (en) * 2020-03-13 2020-07-09 Intel Corporation Floating-point decomposition circuitry with dynamic precision
US11513847B2 (en) 2020-03-24 2022-11-29 Deep Vision Inc. System and method for queuing commands in a deep learning processor
CN111459546B (zh) * 2020-03-30 2023-04-18 芯来智融半导体科技(上海)有限公司 一种实现操作数位宽可变的装置及方法
US11972230B2 (en) 2020-06-27 2024-04-30 Intel Corporation Matrix transpose and multiply
US11941395B2 (en) 2020-09-26 2024-03-26 Intel Corporation Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions
US12001887B2 (en) 2020-12-24 2024-06-04 Intel Corporation Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator
US12001385B2 (en) 2020-12-24 2024-06-04 Intel Corporation Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator
CN112988236B (zh) * 2021-04-20 2023-04-14 浙江华忆芯科技有限公司 数据存储方法及装置、存储介质、电子装置
GB202112803D0 (en) 2021-09-08 2021-10-20 Graphcore Ltd Processing device using variable stride pattern
US11900116B1 (en) 2021-09-29 2024-02-13 International Business Machines Corporation Loosely-coupled slice target file data
US12001848B2 (en) * 2022-01-30 2024-06-04 Simplex Micro, Inc. Microprocessor with time counter for statically dispatching instructions with phantom registers
US11954491B2 (en) 2022-01-30 2024-04-09 Simplex Micro, Inc. Multi-threading microprocessor with a time counter for statically dispatching instructions
CN114816532B (zh) * 2022-04-20 2023-04-04 湖南卡姆派乐信息科技有限公司 一种提高risc-v二进制代码密度的寄存器分配方法
CN115951936B (zh) * 2023-01-17 2023-05-26 上海燧原科技有限公司 向量化编译程序的芯片适配方法、装置、设备及介质

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3535694A (en) 1968-01-15 1970-10-20 Ibm Information transposing system
JPS5725069A (en) 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
JPS61173345A (ja) 1985-01-29 1986-08-05 Hitachi Ltd 計算機システム
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
US5261113A (en) * 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
US5043886A (en) * 1988-09-16 1991-08-27 Digital Equipment Corporation Load/store with write-intent for write-back caches
US4969118A (en) * 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5544337A (en) * 1989-12-29 1996-08-06 Cray Research, Inc. Vector processor having registers for control by vector resisters
TW199927B (ru) * 1990-08-24 1993-02-11 Matsushita Electric Ind Co Ltd
JP2718254B2 (ja) * 1990-10-02 1998-02-25 日本電気株式会社 ベクトル処理装置
US5437043A (en) 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5669013A (en) * 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
US5632023A (en) * 1994-06-01 1997-05-20 Advanced Micro Devices, Inc. Superscalar microprocessor including flag operand renaming and forwarding apparatus
GB2291515B (en) 1994-07-14 1998-11-18 Advanced Risc Mach Ltd Data processing using multiply-accumulate instructions
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5550767A (en) * 1994-10-14 1996-08-27 Ibm Corporation Method and apparatus for detecting underflow and overflow
US5548544A (en) * 1994-10-14 1996-08-20 Ibm Corporation Method and apparatus for rounding the result of an arithmetic operation
US5537606A (en) 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US5867413A (en) * 1995-10-17 1999-02-02 Hitachi Micro Systems, Inc. Fast method of floating-point multiplication and accumulation
US5822606A (en) * 1996-01-11 1998-10-13 Morton; Steven G. DSP having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5892698A (en) * 1996-04-04 1999-04-06 Hewlett-Packard Company 2's complement floating-point multiply accumulate unit
US5838984A (en) * 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US5917741A (en) * 1996-08-29 1999-06-29 Intel Corporation Method and apparatus for performing floating-point rounding operations for multiple precisions using incrementers
US5805875A (en) * 1996-09-13 1998-09-08 International Computer Science Institute Vector processing system with multi-operation, run-time configurable pipelines
US6006315A (en) * 1996-10-18 1999-12-21 Samsung Electronics Co., Ltd. Computer methods for writing a scalar value to a vector
US5991531A (en) * 1997-02-24 1999-11-23 Samsung Electronics Co., Ltd. Scalable width vector processor architecture for efficient emulation
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6115729A (en) * 1998-08-20 2000-09-05 Arm Limited Floating point multiply-accumulate unit
US6148314A (en) * 1998-08-28 2000-11-14 Arm Limited Round increment in an adder circuit

Similar Documents

Publication Publication Date Title
RU2212049C2 (ru) Смешанный файл векторных/скалярных регистров
RU2000132719A (ru) Смешанный файл векторных/скалярных регистров
US7127593B2 (en) Conditional execution with multiple destination stores
JP5647859B2 (ja) 乗累算演算を実行するための装置および方法
CN100583027C (zh) 用于不对称双重路径处理的设备和方法
KR940015852A (ko) 긴 명령 워드를 갖는 처리기
DE69627807D1 (de) Datenprozessor zum gleichzeitigen Dataladen und Durchführung einer multiplizier-addier Operation
CN100437547C (zh) 具有级联simd结构的数字信号处理器及其信号处理方法
US7194734B2 (en) Method of executing an interpreter program
CN101438235A (zh) 将硬件结束循环信息编码到指令上
EP0144779B1 (en) Parallel processing computer
KR920018578A (ko) 데이타 처리 프로세서
GB2024475A (en) Memory access controller
US11830547B2 (en) Reduced instruction set processor based on memristor
KR960007831B1 (ko) 컴퓨터 아키텍쳐를 32비트에서 64비트로 확장하는 방법 및 장치
EP0240606A2 (en) Pipe-line processing system and microprocessor using the system
KR940006916B1 (ko) 선택적 캐쉬 메모리를 가진 마이크로프로세서
US4972342A (en) Programmable priority branch circuit
EP0012242B1 (en) Digital data processor for word and character oriented processing
US20070011440A1 (en) Processor and processing method
US20040205701A1 (en) Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus
KR100654477B1 (ko) 프로세서 동작 방법
US20040162965A1 (en) Information processing unit
US6996702B2 (en) Processing unit with cross-coupled ALUs/accumulators and input data feedback structure including constant generator and bypass to reduce memory contention
WO2022022195A1 (en) Risc processor having specialized datapath for specialized registers