RU2006124547A - Замещение регистров обработки данных - Google Patents

Замещение регистров обработки данных Download PDF

Info

Publication number
RU2006124547A
RU2006124547A RU2006124547/09A RU2006124547A RU2006124547A RU 2006124547 A RU2006124547 A RU 2006124547A RU 2006124547/09 A RU2006124547/09 A RU 2006124547/09A RU 2006124547 A RU2006124547 A RU 2006124547A RU 2006124547 A RU2006124547 A RU 2006124547A
Authority
RU
Russia
Prior art keywords
register
data
size
storage device
registers
Prior art date
Application number
RU2006124547/09A
Other languages
English (en)
Inventor
Саймон ФОРД (GB)
Саймон ФОРД
Дэвид Джеймс СИЛ (GB)
Дэвид Джеймс СИЛ
Original Assignee
Арм Лимитед (Gb)
Арм Лимитед
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 Арм Лимитед (Gb), Арм Лимитед filed Critical Арм Лимитед (Gb)
Publication of RU2006124547A publication Critical patent/RU2006124547A/ru

Links

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/82Architectures of general purpose stored program computers data or demand driven

Claims (57)

1. Устройство для обработки данных, содержащее устройство хранения данных регистров, выполненное с возможностью хранить множество элементов данных; и логическую схему обработки, способную в ответ на инструкцию обработки данных выполнять операцию обработки данных параллельно над выбранным множеством элементов данных, доступ к которым осуществляют как к регистру устройства хранения данных регистров; причем элементы данных из упомянутого выбранного множества элементов данных совместно используют один из множества различных размеров элементов данных, упомянутый регистр имеет один из множества различных размеров регистров, и упомянутая инструкция обработки данных задает для операции обработки данных размер элементов данных, совместно используемый упомянутым выбранным множеством элементов данных, и размер упомянутого регистра; и дополнительно содержащее логическую схему доступа к регистрам, выполненную с возможностью отображать упомянутый регистр на часть устройства хранения данных регистров в зависимости от размера упомянутого регистра таким образом, что элемент данных, хранящийся в упомянутой части устройства хранения данных регистров, доступен как часть соответствующих различных регистров отличающегося размера.
2. Устройство по п.1, в котором упомянутая инструкция обработки данных задает один или более исходных регистров, каждый с соответствующим размером исходного регистра и размером исходного элемента данных, заданным упомянутой инструкцией обработки данных.
3. Устройство по любому из пп.1 и 2, в котором упомянутая инструкция обработки данных задает один или более регистров назначения с размером регистра назначения и размером элемента данных назначения, заданным упомянутой инструкцией обработки данных.
4. Устройство по п.2, в котором размер элемента данных назначения отличается от, по меньшей мере, одного из упомянутых одного или более размеров исходных элементов данных.
5. Устройство по п.1, в котором набор элементов данных, записанный в устройство хранения данных регистров с двумя различными регистрами, может быть весь считан из упомянутого устройства хранения данных регистров в пределах одного дополнительного регистра.
6. Устройство по п.5, в котором упомянутые два различных регистра записывают в соседние части устройства хранения данных регистров.
7. Устройство по п.6, в котором упомянутый один дополнительный регистр имеет размер равный сумме размеров упомянутых двух различных регистров.
8. Устройство по п.1, в котором группа элементов данных, записанных вместе в устройство хранения данных регистров из одного регистра, может быть считана из устройства хранения данных регистров в пределах двух различных дополнительных регистров.
9. Устройство по п.8, в котором упомянутые два различных дополнительных регистра считываются из соседних частей устройства хранения данных регистров.
10. Устройство по п.9, в котором упомянутый один регистр имеет размер регистра, равный сумме размеров упомянутых двух различных дополнительных регистров.
11. Устройство по п.1, в котором группа элементов данных, записанных вместе в устройство хранения данных регистров из первого регистра первого размера, может быть считана из устройства хранения данных регистров в пределах второго регистра второго размера, упомянутый первый размер регистра является отличным от упомянутого второго размера регистра.
12. Устройство по п.1, в котором упомянутая инструкция обработки данных задает два исходных регистра с соответствующими размерами S1 и S2 регистров и регистр назначения с размером D регистра.
13. Устройство по п.12, в котором S1= S2= D.
14. Устройство по п.12, в котором 2·S1= 2·S2= D.
15. Устройство по п.12, в котором 2·S1= S2= D.
16. Устройство по п.12, в котором S1= S2= 2·D.
17. Устройство по п.1, в котором упомянутая инструкция обработки данных задает исходный регистр с размером S регистра и регистр назначения с размером D регистра.
18. Устройство по п.17, в котором S= D.
19. Устройство по п.17, в котором 2·S= D.
20. Устройство по п.17, в котором S=2·D.
21. Устройство по п.1, в котором упомянутая инструкция обработки данных включает в себя поле, задающее регистр, способное задавать регистр в пределах устройства хранения данных регистров, упомянутый регистр для данного поля, задающего регистр, соответствует различной части устройства хранения данных регистров в зависимости от упомянутого размера элемента данных и упомянутого размера регистра.
22. Устройство по п.21, в котором множество регистров, соответствующих диапазону упомянутого поля, задающего регистр, для данного размера элемента данных и размера регистра отображают на непрерывную часть устройства хранения данных регистров при доступе с регистрами, использующими, по меньшей мере, одно из отличного размера регистра и отличного размера элемента данных.
23. Устройство по п.1, в котором упомянутые различные регистры различного размера включают в себя, по меньшей мере, один регистр с размером элемента данных, отличающимся от упомянутого элемента данных, хранящегося в упомянутой части.
24. Устройство по п.1, в котором упомянутая инструкция обработки данных включает в себя множество бит, кодирующих номер упомянутого регистра, упомянутое множество бит отображаемо на непрерывное поле бит, которое вращаемо посредством ряда позиций бит, в зависимости от упомянутого размера регистра, для формирования упомянутого номера регистра.
25. Устройство по п.24, в котором упомянутая логическая схема доступа к регистрам также выполнена с возможностью доступа к устройству хранения данных регистров как к скалярному регистру, хранящему один элемент данных, считываемый из устройства хранения данных регистров.
26. Устройство по п.24, в котором упомянутая логическая схема доступа к регистрам также выполнена с возможностью доступа к устройству хранения данных регистров как к регистру, хранящему множество копий одного элемента данных, считываемого из устройства хранения данных регистров.
27. Устройство по п.25, в котором упомянутая логическая схема доступа к регистрам выполнена с возможностью генерирования адреса строки и адреса столбца для доступа к устройству хранения данных регистров, первая часть упомянутого непрерывного поля бит соответствует упомянутому адресу строки, а вторая часть упомянутого непрерывного поля бит соответствует упомянутому адресу столбца.
28. Устройство по п.27, в котором одна или более границ между упомянутой первой частью и упомянутой второй частью изменяется в положении в зависимости от упомянутого размера элемента данных.
29. Способ обработки данных, содержащий этапы: сохраняют множество элементов данных в устройстве хранения данных регистров; и в ответ на инструкцию обработки данных выполняют операцию обработки данных параллельно над выбранным множеством элементов данных, доступ к которым осуществляют как к регистру устройства хранения данных регистров; причем элементы данных из упомянутого выбранного множества элементов данных совместно используют один из множества различных размеров элементов данных, упомянутый регистр имеет один из множества различных размеров регистров, и упомянутая инструкция обработки данных задает для операции обработки данных размер элемента данных, совместно используемый упомянутым выбранным множеством элементов данных, и размер упомянутого регистра; и дополнительно содержащий отображают упомянутый регистр на часть устройства хранения данных регистров в зависимости от размера упомянутого регистра таким образом, что элемент данных, хранящийся в упомянутой части устройства хранения данных регистров, доступен как часть соответствующих различных регистров отличающегося размера.
30. Способ по п.29, в котором упомянутая инструкция обработки данных задает один или более исходных регистров, каждый с соответствующим размером исходного регистра и размером исходного элемента данных, заданным упомянутой инструкцией обработки данных.
31. Способ по любому из пп.29 и 30, в котором упомянутая инструкция обработки данных задает один или более регистров назначения с размером регистра назначения и размером элемента данных назначения, заданным упомянутой инструкцией обработки данных.
32. Способ по п.30, в котором размер элемента данных назначения отличается от, по меньшей мере, одного из упомянутых одного или более размеров исходных элементов данных.
33. Способ по п.29, в котором набор элементов данных, записанных в устройство хранения данных регистров с двумя различными регистрами, может быть весь считан из упомянутого устройства хранения данных регистров в пределах одного дополнительного регистра.
34. Способ по п.33, в котором упомянутые два различных регистра записывают в соседние части устройства хранения данных регистров.
35. Способ по п.34, в котором упомянутый один дополнительный регистр имеет размер равный сумме размеров упомянутых двух различных регистров.
36. Способ по п.29, в котором группа элементов данных, записанных вместе в устройство хранения данных регистров из одного регистра, может быть считана из устройства хранения данных регистров в пределах двух различных дополнительных регистров.
37. Способ по п.36, в котором упомянутые два различных дополнительных регистра считываются из соседних частей устройства хранения данных регистров.
38. Способ по п.37, в котором упомянутый один регистр имеет размер регистра, равный сумме размеров упомянутых двух различных дополнительных регистров.
39. Способ по п.29, в котором группа элементов данных, записанных вместе в устройство хранения данных регистров из первого регистра первого размера, может быть считана из устройства хранения данных регистров в пределах второго регистра второго размера, упомянутый первый размер регистра является отличным от упомянутого второго размера регистра.
40. Способ по п.29, в котором упомянутая инструкция обработки данных задает два исходных регистра с соответствующими размерами S1 и S2 регистров и регистр назначения с размером D регистра.
41. Способ по п.40, в котором S1= S2= D.
42. Способ по п.40, в котором 2·S1= 2·S2= D.
43. Способ по п.40, в котором 2·S1= S2= D.
44. Способ по п.40, в котором S1= S2= 2·D.
45. Способ по п.29, в котором упомянутая инструкция обработки данных задает исходный регистр с размером S регистра и регистр назначения с размером D регистра.
46. Способ по п.45, в котором S= D.
47. Способ по п.45, в котором 2·S= D.
48. Способ по п.45, в котором S=2·D.
49. Способ по п.29, в котором упомянутая инструкция обработки данных включает в себя поле, задающее регистр, способное задавать регистр в пределах устройства хранения данных регистров, упомянутый регистр для данного поля, задающего регистр, соответствует различной части устройства хранения данных регистров в зависимости от упомянутого размера элемента данных и упомянутого размера регистра.
50. Способ по п.49, в котором множество регистров, соответствующих диапазону упомянутого поля, задающего регистр, для данного размера элемента данных и размера регистра отображают на непрерывную часть устройства хранения данных регистров при доступе с регистрами, использующими, по меньшей мере, один из отличного размера регистра и отличного размера элемента данных.
51. Способ по п.29, в котором упомянутые различные регистры различного размера включают в себя, по меньшей мере, один регистр с размером элемента данных, отличающимся от упомянутого элемента данных, хранящегося в упомянутой части.
52. Способ по п.29, в котором упомянутая инструкция обработки данных включает в себя множество бит, кодирующих номер упомянутого регистра, упомянутое множество бит отображаемо на непрерывное поле бит, которое вращаемо посредством ряда позиций бит, в зависимости от упомянутого размера регистра, для формирования упомянутого номера регистра.
53. Способ по п.52, в котором упомянутая логическая схема доступа к регистрам также выполнена с возможностью доступа к устройству хранения данных регистров как к скалярному регистру, хранящему один элемент данных, считываемый из устройства хранения данных регистров.
54. Способ по п.52, в котором упомянутая логическая схема доступа к регистрам также выполнена с возможностью доступа к устройству хранения данных регистров как к регистру, хранящему множество копий одного элемента данных, считываемого из устройства хранения данных регистров.
55. Способ по п.53, в котором упомянутая логическая схема доступа к регистрам выполнена с возможностью генерировать адрес строки и адрес столбца для доступа к устройству хранения данных регистров, первая часть упомянутого непрерывного поля бит соответствует упомянутому адресу строки, а вторая часть упомянутого непрерывного поля бит соответствует упомянутому адресу столбца.
56. Способ по п.55, в котором одна или более границ между упомянутой первой частью и упомянутой второй частью изменяется в положении в зависимости от упомянутого размера элемента данных.
57. Компьютерный программный продукт, содержащий компьютерную программу, включающую в себя, по меньшей мере, одну инструкцию обработки данных, выполненную с возможностью управления логической схемой обработки для выполнения способа по п.29.
RU2006124547/09A 2003-12-09 2004-07-01 Замещение регистров обработки данных RU2006124547A (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0328513.7 2003-12-09
GB0328513A GB2409062C (en) 2003-12-09 2003-12-09 Aliasing data processing registers

Publications (1)

Publication Number Publication Date
RU2006124547A true RU2006124547A (ru) 2008-01-20

Family

ID=30129894

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006124547/09A RU2006124547A (ru) 2003-12-09 2004-07-01 Замещение регистров обработки данных

Country Status (11)

Country Link
US (1) US7822947B2 (ru)
EP (1) EP1692611B1 (ru)
JP (1) JP4727589B2 (ru)
KR (1) KR100996888B1 (ru)
CN (1) CN1914592B (ru)
GB (1) GB2409062C (ru)
IL (1) IL175901A (ru)
MY (1) MY137496A (ru)
RU (1) RU2006124547A (ru)
TW (1) TWI322958B (ru)
WO (1) WO2005057417A2 (ru)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483595B2 (en) * 2004-09-16 2009-01-27 Marvell International Technology Ltd. Image processing method and device
US20060218377A1 (en) * 2005-03-24 2006-09-28 Stexar Corporation Instruction with dual-use source providing both an operand value and a control value
US20070226469A1 (en) * 2006-03-06 2007-09-27 James Wilson Permutable address processor and method
US9069547B2 (en) * 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
GB2474522B (en) * 2009-10-19 2014-09-03 Advanced Risc Mach Ltd Register state saving and restoring
JP5760532B2 (ja) * 2011-03-14 2015-08-12 株式会社リコー プロセッサ装置及びその演算方法
US8933954B2 (en) * 2011-03-23 2015-01-13 Qualcomm Incorporated Register allocation for graphics processing
US20130185540A1 (en) * 2011-07-14 2013-07-18 Texas Instruments Incorporated Processor with multi-level looping vector coprocessor
JP5988222B2 (ja) * 2011-10-18 2016-09-07 パナソニックIpマネジメント株式会社 シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令
WO2013095578A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Systems, apparatuses, and methods for mapping a source operand to a different range
US10223111B2 (en) 2011-12-22 2019-03-05 Intel Corporation Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset
WO2013095554A1 (en) 2011-12-22 2013-06-27 Intel Corporation Processors, methods, systems, and instructions to generate sequences of consecutive integers in numerical order
CN108681465B (zh) * 2011-12-22 2022-08-02 英特尔公司 用于产生整数序列的处理器、处理器核及系统
CN104011644B (zh) 2011-12-22 2017-12-08 英特尔公司 用于产生按照数值顺序的相差恒定跨度的整数的序列的处理器、方法、系统和指令
US9588764B2 (en) 2011-12-23 2017-03-07 Intel Corporation Apparatus and method of improved extract instructions
WO2013095620A1 (en) 2011-12-23 2013-06-27 Intel Corporation Apparatus and method of improved insert instructions
US9658850B2 (en) 2011-12-23 2017-05-23 Intel Corporation Apparatus and method of improved permute instructions
CN104094182B (zh) 2011-12-23 2017-06-27 英特尔公司 掩码置换指令的装置和方法
US9946540B2 (en) 2011-12-23 2018-04-17 Intel Corporation Apparatus and method of improved permute instructions with multiple granularities
US9400650B2 (en) * 2012-09-28 2016-07-26 Intel Corporation Read and write masks update instruction for vectorization of recursive computations over interdependent data
US9324128B2 (en) * 2013-03-14 2016-04-26 Intel Corporation Techniques for improving rendering efficiency
US9639356B2 (en) 2013-03-15 2017-05-02 Qualcomm Incorporated Arbitrary size table lookup and permutes with crossbar
CN103235762B (zh) * 2013-04-19 2016-06-22 中国科学院自动化研究所 一种自索引寄存器文件堆装置
US9424034B2 (en) * 2013-06-28 2016-08-23 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
EP3048577A4 (en) * 2013-09-17 2016-11-09 Fujitsu Ltd COLONIAL INVESTIGATION PROGRAM, COLONIAL INSPECTION DEVICE AND COLONIAL INVESTIGATION PROCEDURE
CN103606129B (zh) * 2013-11-29 2016-08-24 广东威创视讯科技股份有限公司 图像处理系统中控制器与图像处理芯片的寻址方法和系统
DE202015009870U1 (de) * 2014-01-27 2020-12-01 Tong Shao Vorrichtung und System zur Auswahl der Zweikanal-Identitätsauthentifizierung
US9772848B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772849B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US20170046156A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Table lookup using simd instructions
US9852080B2 (en) 2015-08-17 2017-12-26 Qualcomm Incorporated Efficiently generating selection masks for row selections within indexed address spaces
US20170177350A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Set-Multiple-Vector-Elements Operations
US10275243B2 (en) 2016-07-02 2019-04-30 Intel Corporation Interruptible and restartable matrix multiplication instructions, processors, methods, and systems
JP7148526B2 (ja) * 2017-02-23 2022-10-05 アーム・リミテッド データ処理装置におけるベクトルによる要素演算
US10409592B2 (en) * 2017-04-24 2019-09-10 Arm Limited Multiply-and-accumulate-products instructions
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11409692B2 (en) * 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
CN109298886A (zh) * 2017-07-25 2019-02-01 合肥君正科技有限公司 Simd指令执行方法、装置及处理器
US10795677B2 (en) 2017-09-29 2020-10-06 Intel Corporation Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values
US10534838B2 (en) 2017-09-29 2020-01-14 Intel Corporation Bit matrix 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
US11256504B2 (en) 2017-09-29 2022-02-22 Intel Corporation Apparatus and method for complex by complex conjugate multiplication
US10795676B2 (en) 2017-09-29 2020-10-06 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US10552154B2 (en) 2017-09-29 2020-02-04 Intel Corporation Apparatus and method for multiplication and accumulation of complex and real packed data elements
US11074073B2 (en) 2017-09-29 2021-07-27 Intel Corporation Apparatus and method for multiply, add/subtract, and accumulate 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
US10664277B2 (en) 2017-09-29 2020-05-26 Intel Corporation Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words
US11243765B2 (en) 2017-09-29 2022-02-08 Intel Corporation Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11449336B2 (en) * 2019-05-24 2022-09-20 Texas Instmments Incorporated Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof
CN112859377B (zh) * 2019-11-28 2023-03-14 京东方科技集团股份有限公司 一种复用寄存器、三维显示装置及其控制方法

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4876660A (en) 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
JPH0778735B2 (ja) 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
US5771368A (en) * 1990-10-29 1998-06-23 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
JPH05233281A (ja) 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
EP0640912B1 (en) * 1993-08-31 2000-05-10 Sun Microsystems, Inc. Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers
US5481743A (en) 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US5881302A (en) 1994-05-31 1999-03-09 Nec Corporation Vector processing unit with reconfigurable data buffer
GB9412434D0 (en) 1994-06-21 1994-08-10 Inmos Ltd Computer instruction compression
US6009508A (en) 1994-06-21 1999-12-28 Sgs-Thomson Microelectronics Limited System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis
GB9412487D0 (en) 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch 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
EP1302848B1 (en) * 1994-12-01 2006-11-02 Intel Corporation A microprocessor having a multiply operation
US5761103A (en) 1995-03-08 1998-06-02 Texas Instruments Incorporated Left and right justification of single precision mantissa in a double precision rounding unit
GB9509988D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
GB9509989D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509983D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Replication of data
GB9513515D0 (en) 1995-07-03 1995-09-06 Sgs Thomson Microelectronics Expansion of data
GB9514695D0 (en) 1995-07-18 1995-09-13 Sgs Thomson Microelectronics Combining data values
GB9514684D0 (en) 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
JP3526976B2 (ja) 1995-08-03 2004-05-17 株式会社日立製作所 プロセッサおよびデータ処理装置
US6295599B1 (en) 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5907865A (en) 1995-08-28 1999-05-25 Motorola, Inc. Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes
EP0789870B1 (en) 1995-09-01 2003-01-15 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US6088783A (en) 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5937178A (en) * 1996-02-13 1999-08-10 National Semiconductor Corporation Register file for registers with multiple addressable sizes using read-modify-write for register file update
US5808875A (en) 1996-03-29 1998-09-15 Intel Corporation Integrated circuit solder-rack interconnect module
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
TW364976B (en) * 1996-09-23 1999-07-21 Arm Corp Input operand control in data processing systems
GB2317467B (en) 1996-09-23 2000-11-01 Advanced Risc Mach Ltd Input operand control in data processing systems
TW380237B (en) 1996-09-23 2000-01-21 Advanced Risc Mach Ltd Data processing system register control
US5996066A (en) 1996-10-10 1999-11-30 Sun Microsystems, Inc. Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions
US5893145A (en) 1996-12-02 1999-04-06 Compaq Computer Corp. System and method for routing operands within partitions of a source register to partitions within a destination register
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US6173366B1 (en) 1996-12-02 2001-01-09 Compaq Computer Corp. Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage
US5991531A (en) * 1997-02-24 1999-11-23 Samsung Electronics Co., Ltd. Scalable width vector processor architecture for efficient emulation
US5898896A (en) 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US5973705A (en) 1997-04-24 1999-10-26 International Business Machines Corporation Geometry pipeline implemented on a SIMD machine
US6047304A (en) 1997-07-29 2000-04-04 Nortel Networks Corporation Method and apparatus for performing lane arithmetic to perform network processing
GB2330226B (en) 1997-08-30 2000-12-27 Lg Electronics Inc Digital signal processor
GB2329810B (en) 1997-09-29 2002-02-27 Science Res Foundation Generation and use of compressed image data
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6223198B1 (en) 1998-08-14 2001-04-24 Advanced Micro Devices, Inc. Method and apparatus for multi-function arithmetic
US6269384B1 (en) 1998-03-27 2001-07-31 Advanced Micro Devices, Inc. Method and apparatus for rounding and normalizing results within a multiplier
US6144980A (en) 1998-01-28 2000-11-07 Advanced Micro Devices, Inc. Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication
US6038583A (en) 1997-10-23 2000-03-14 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products
US6085213A (en) 1997-10-23 2000-07-04 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products
US6223277B1 (en) 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6223320B1 (en) 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
US6334176B1 (en) 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
JP2000020486A (ja) * 1998-06-29 2000-01-21 Ricoh Co Ltd Simd型演算器
US6292888B1 (en) 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
GB2352065B (en) 1999-07-14 2004-03-03 Element 14 Ltd A memory access system
US6408345B1 (en) 1999-07-15 2002-06-18 Texas Instruments Incorporated Superscalar memory transfer controller in multilevel memory organization
CA2383526A1 (en) 1999-09-01 2001-03-15 Intel Corporation Branch instruction for multithreaded processor
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6748521B1 (en) 2000-02-18 2004-06-08 Texas Instruments Incorporated Microprocessor with instruction for saturating and packing data
TW538335B (en) 2001-12-24 2003-06-21 Winbond Electronics Corp Method and device for speeding up reading and writing the register for the processor
US7761683B2 (en) * 2002-03-05 2010-07-20 Hewlett-Packard Development Company, L.P. Variable width memory system and method

Also Published As

Publication number Publication date
TWI322958B (en) 2010-04-01
CN1914592B (zh) 2010-05-12
IL175901A (en) 2011-11-30
JP4727589B2 (ja) 2011-07-20
GB2409062C (en) 2007-12-11
EP1692611B1 (en) 2018-08-22
MY137496A (en) 2009-02-27
WO2005057417A2 (en) 2005-06-23
US7822947B2 (en) 2010-10-26
TW200525417A (en) 2005-08-01
CN1914592A (zh) 2007-02-14
JP2007514226A (ja) 2007-05-31
KR20070001903A (ko) 2007-01-04
GB0328513D0 (en) 2004-01-14
KR100996888B1 (ko) 2010-11-29
US20050172106A1 (en) 2005-08-04
EP1692611A2 (en) 2006-08-23
WO2005057417A3 (en) 2006-03-23
GB2409062B (en) 2006-08-16
IL175901A0 (en) 2006-10-05
GB2409062A (en) 2005-06-15

Similar Documents

Publication Publication Date Title
RU2006124547A (ru) Замещение регистров обработки данных
US7386703B2 (en) Two dimensional addressing of a matrix-vector register array
US10783942B2 (en) Modified decode for corner turn
US7257695B2 (en) Register file regions for a processing system
US9542307B2 (en) Shiftable memory defragmentation
US11416170B2 (en) Technologies for efficiently accessing data columns and rows in a memory
CN108541313A (zh) 虚拟寄存器堆
US11392488B2 (en) Optimizing storage of application data in memory
KR100648293B1 (ko) 그래픽 시스템 및 그것의 그래픽 처리 방법
US20100164972A1 (en) System, method and apparatus for memory with embedded associative section for computations
EP0293701A2 (en) Parallel neighborhood processing system and method
US8775722B2 (en) Storing data in parallel in a flash storage device using on chip page shifting between planes
KR930006541A (ko) 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치
JPH0361228B2 (ru)
US11392494B2 (en) Technologies for performant column read operations on clustered data in a dimm architecture
ATE505763T1 (de) Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten
CN111459543B (zh) 一种管理寄存器文件单元的方法
JP2003084751A5 (ru)
US20190278520A1 (en) Data processing method and system for 2r1w memory
US20180188973A1 (en) Processor in non-volatile storage memory
US8364897B2 (en) Cache organization with an adjustable number of ways
KR20230025891A (ko) 공간 캐시
GB2617190A (en) Memory architecture
US7996619B2 (en) K-way direct mapped cache
US11593263B2 (en) Technologies to address individual bits in memory

Legal Events

Date Code Title Description
FA93 Acknowledgement of application withdrawn (no request for examination)

Effective date: 20100721