RU2006124547A - Замещение регистров обработки данных - Google Patents
Замещение регистров обработки данных Download PDFInfo
- 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
Links
- 238000013500 data storage Methods 0.000 claims 37
- 238000000034 method Methods 0.000 claims 28
- 238000004590 computer program Methods 0.000 claims 2
- 238000013507 mapping Methods 0.000 claims 1
- 238000003672 processing method Methods 0.000 claims 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures 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.
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)
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)
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 |
-
2003
- 2003-12-09 GB GB0328513A patent/GB2409062C/en not_active Expired - Lifetime
-
2004
- 2004-07-01 WO PCT/GB2004/002836 patent/WO2005057417A2/en active Application Filing
- 2004-07-01 RU RU2006124547/09A patent/RU2006124547A/ru not_active Application Discontinuation
- 2004-07-01 KR KR1020067011129A patent/KR100996888B1/ko active IP Right Grant
- 2004-07-01 EP EP04743183.8A patent/EP1692611B1/en active Active
- 2004-07-01 CN CN2004800412896A patent/CN1914592B/zh active Active
- 2004-07-01 JP JP2006543598A patent/JP4727589B2/ja active Active
- 2004-07-13 US US10/889,314 patent/US7822947B2/en active Active
- 2004-08-10 MY MYPI20043244A patent/MY137496A/en unknown
- 2004-08-11 TW TW093124099A patent/TWI322958B/zh active
-
2006
- 2006-05-24 IL IL175901A patent/IL175901A/en active IP Right Grant
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 |