RU2006124538A - DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY - Google Patents

DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY Download PDF

Info

Publication number
RU2006124538A
RU2006124538A RU2006124538/09A RU2006124538A RU2006124538A RU 2006124538 A RU2006124538 A RU 2006124538A RU 2006124538/09 A RU2006124538/09 A RU 2006124538/09A RU 2006124538 A RU2006124538 A RU 2006124538A RU 2006124538 A RU2006124538 A RU 2006124538A
Authority
RU
Russia
Prior art keywords
data
registers
data elements
processing device
single access
Prior art date
Application number
RU2006124538/09A
Other languages
Russian (ru)
Inventor
Саймон Эндрю ФОРД (GB)
Саймон Эндрю ФОРД
Доминик Хьюго САЙМЗ (GB)
Доминик Хьюго САЙМЗ
Эндрю Кристофер РОУЗ (GB)
Эндрю Кристофер РОУЗ
Дэвид Реймонд ЛУТЦ (US)
Дэвид Реймонд ЛУТЦ
Кристофер Нил ХИНДЗ (US)
Кристофер Нил ХИНДЗ
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 RU2006124538A publication Critical patent/RU2006124538A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Claims (33)

1. Устройство обработки данных, содержащее устройство хранения данных регистров, имеющее множество регистров, способных хранить элементы данных, количество элементов данных, хранимых в каждом регистре, зависит от типа данных элементов данных; процессор, способный выполнять параллельно операцию обработки данных над множеством элементов данных, занимающих различные линии параллельной обработки в, по меньшей мере, одном из упомянутых регистров; логическую схему доступа, способную в ответ на единичную инструкцию доступа переместить множество элементов данных между выбранной одной из упомянутых линий обработки в заданных регистрах и структурой в памяти, имеющей формат структуры, формат структуры имеет множество компонент; единичную инструкцию доступа, включающую в себя информацию о типе данных, идентифицирующую тип данных, связанный с перемещаемым элементом данных, и идентифицирующую количество компонент в формате структуры; и логическую схему доступа, способную выполнить упорядочивание множества элементов данных при их перемещении так, чтобы элементы данных различных компонент сохранялись в разных заданных регистрах в выбранной линии обработки, причем в памяти элементы данных хранятся в виде структуры, упорядочивание выполняется логической схемой доступа в зависимости от типа данных.1. A data processing device comprising a register data storage device having a plurality of registers capable of storing data elements, the number of data elements stored in each register depends on the data type of the data elements; a processor capable of performing in parallel a data processing operation on a plurality of data elements occupying different parallel processing lines in at least one of said registers; an access logic capable of responding to a single access instruction to move a plurality of data elements between a selected one of said processing lines in predetermined registers and a structure in memory having a structure format, the structure format has many components; a single access instruction including data type information identifying a data type associated with a data item being moved and identifying the number of components in a structure format; and an access logic capable of arranging a plurality of data elements when moving them so that data elements of various components are stored in different predetermined registers in a selected processing line, wherein data elements are stored in memory as a structure, ordering is performed by an access logic depending on the type data. 2. Устройство обработки данных по п.1, в котором единичная инструкция доступа задает выбранную линию обработки.2. The data processing device according to claim 1, in which a single access instruction sets the selected processing line. 3. Устройство обработки данных по п.1 или 2, в котором логическая схема доступа в ответ на последовательность упомянутых единичных инструкций доступа перемещает элементы данных между множеством выбранных линий обработки в заданных регистрах и соответствующим множеством структур в памяти.3. The data processing device according to claim 1 or 2, in which the access logic in response to a sequence of said single access instructions moves data elements between a plurality of selected processing lines in predetermined registers and a corresponding plurality of structures in memory. 4. Устройство обработки данных по п.1, в котором структура содержит одну компоненту, а заданные регистры содержат один регистр.4. The data processing device according to claim 1, in which the structure contains one component, and the specified registers contain one register. 5. Устройство обработки данных по п.1, в котором единичная инструкция доступа идентифицирует заданные регистры, количество заданных регистров кратно количеству компонент.5. The data processing device according to claim 1, in which a single access instruction identifies the given registers, the number of specified registers is a multiple of the number of components. 6. Устройство обработки данных по п.1, в котором каждый перемещаемый элемент данных принадлежит к одному и тому же типу данных.6. The data processing device according to claim 1, in which each roaming data item belongs to the same data type. 7. Устройство обработки данных по п.1, в котором заданные регистры имеют фиксированную связь между собой.7. The data processing device according to claim 1, in which the given registers have a fixed connection with each other. 8. Устройство обработки данных по п.7, в котором в соответствии с фиксированной связью заданные регистры разделены посредством n вспомогательных регистров, где n=2m-1, где m является целым числом, большим либо равным нулю.8. The data processing device according to claim 7, in which, in accordance with a fixed connection, the given registers are divided by n auxiliary registers, where n = 2 m -1, where m is an integer greater than or equal to zero. 9. Устройство обработки данных по п.7 или 8, в котором заданные регистры являются группами соседних регистров в упомянутом устройстве хранения данных регистров.9. The data processing device according to claim 7 or 8, wherein the predetermined registers are groups of neighboring registers in said register data storage device. 10. Устройство обработки данных по п.1, в котором упомянутая единичная инструкция доступа является единичной инструкцией загрузки, упомянутая логическая схема доступа способна в ответ на упомянутую единичную инструкцию доступа загрузить множество элементов данных из упомянутой структуры в памяти в выбранную линию обработки упомянутых заданных регистров, и перед сохранением элементов данных в выбранную линию обработки упомянутых заданных регистров, упорядочить упомянутые элементы данных так, что элементы данных различных компонент сохраняются в различные регистры упомянутых заданных регистров.10. The data processing device according to claim 1, wherein said single access instruction is a single download instruction, said access logic is capable, in response to said single access instruction, from loading a plurality of data elements from said structure in memory into a selected processing line of said predetermined registers, and before storing the data elements in the selected processing line of said predetermined registers, arrange said data elements so that the data elements of the various components stored in various registers of said specified registers. 11. Устройство обработки данных по п.1, в котором упомянутая единичная инструкция доступа является единичной инструкцией сохранения, упомянутая логическая схема доступа способна в ответ на упомянутую единичную инструкцию сохранения сохранить множество элементов данных из выбранной линии обработки упомянутых заданных регистров в упомянутую структуру в памяти, и перед сохранением элементов данных в упомянутую структуру в памяти, упорядочить упомянутые элементы данных так, чтобы элементы данных сохранялись в упомянутом формате структуры.11. The data processing device according to claim 1, wherein said unit access instruction is a unit save instruction, said access logic is capable of in response to said unit save instruction, to store a plurality of data elements from a selected processing line of said predetermined registers into said structure in memory, and before storing the data elements in said structure in memory, arrange said data elements so that the data elements are stored in said structure format s. 12. Устройство обработки данных по п.10, в котором логическая схема доступа способна вызывать заполнение незаполненных частей заданных регистров одним или более предопределенными значениями.12. The data processing device of claim 10, wherein the access logic is capable of causing the unfilled parts of the given registers to be filled with one or more predetermined values. 13. Устройство обработки данных по п.1, в котором единичная инструкция доступа идентифицирует режим адресации, используемый для идентификации перемещаемых элементов данных.13. The data processing device according to claim 1, in which a single access instruction identifies the addressing mode used to identify roaming data elements. 14. Устройство обработки данных по п.13, в котором режим адресации идентифицирует начальный адрес для структуры в памяти.14. The data processing device according to item 13, in which the addressing mode identifies the starting address for the structure in memory. 15. Устройство обработки данных по п.1, в котором заданные регистры имеют одинаковый размер.15. The data processing device according to claim 1, in which the specified registers are of the same size. 16. Устройство обработки данных по п.1, в котором единичная инструкция доступа идентифицирует преобразование, которое будет применено к элементам данных, и логическая схема доступа способна применить упомянутое преобразование к элементам данных при их перемещении.16. The data processing device according to claim 1, in which a single access instruction identifies the transformation that will be applied to the data elements, and the access logic is able to apply the transformation to the data elements when moving them. 17. Способ управления устройством обработки данных, содержащим устройство хранения данных регистров, имеющее множество регистров, способных хранить элементы данных, количество элементов данных, хранимых в каждом регистре зависит от типа данных элементов данных, и процессор, способный выполнять параллельно операцию обработки данных над множеством элементов данных, занимающих различные линии параллельной обработки в, по меньшей мере, одном из упомянутых регистров, причем способ включает в себя этапы, на которых17. A method of controlling a data processing device comprising a register data storage device having a plurality of registers capable of storing data elements, the number of data elements stored in each register depends on the data element data type, and a processor capable of performing a data processing operation on a plurality of elements in parallel data occupying various parallel processing lines in at least one of said registers, the method including the steps of (a) в ответ на единичную инструкцию доступа перемещают множество элементов данных между выбранной одной из упомянутых линий обработки в заданных регистрах и структурой в памяти, имеющей формат структуры, формат структуры имеет множество компонент;(a) in response to a single access instruction, a plurality of data elements are moved between a selected one of said processing lines in predetermined registers and a structure in memory having a structure format, the structure format has many components; единичная инструкция доступа включает в себя информацию о типе данных, идентифицирующую тип данных, связанный с перемещаемыми элементами данных, и идентифицирующую количество компонент в формате структуры, и способ включает в себя дополнительный этап, на которомa single access instruction includes data type information identifying a data type associated with movable data items and identifying the number of components in a structure format, and the method includes an additional step in which (b) упорядочивают множество элементов данных при их перемещении так, чтобы элементы данных различных компонент сохранялись в разных заданных регистрах в выбранной линии обработки, причем в памяти элементы данных хранятся в виде структуры, выполняемое упорядочивание зависит от типа данных.(b) arrange a plurality of data elements when moving them so that the data elements of various components are stored in different predetermined registers in the selected processing line, the data elements being stored in memory as a structure, the ordering performed depends on the data type. 18. Способ по п.17, в котором единичная инструкция доступа задает выбранную линию обработки.18. The method according to 17, in which a single access instruction sets the selected processing line. 19. Способ по п.17 или 18, в котором упомянутые этапы (a) и (b) повторяются для последовательности упомянутых единичных инструкций доступа, для того чтобы переместить элементы данных между множеством выбранных линий обработки в заданных регистрах и соответствующим множеством структур в памяти.19. The method according to 17 or 18, wherein said steps (a) and (b) are repeated for a sequence of said single access instructions in order to move data elements between a plurality of selected processing lines in predetermined registers and a corresponding plurality of structures in memory. 20. Способ по п.17, в котором упомянутая структура содержит одну компоненту, и заданные регистры содержат один регистр.20. The method according to 17, in which said structure contains one component, and the specified registers contain one register. 21. Способ по п.17, в котором единичная инструкция доступа идентифицирует заданные регистры, количество заданных регистров кратно количеству компонент.21. The method according to 17, in which a single access instruction identifies the given registers, the number of specified registers is a multiple of the number of components. 22. Способ по п.17, в котором каждый перемещаемый элемент данных принадлежит к одному и тому же типу данных.22. The method according to 17, in which each roaming data item belongs to the same data type. 23. Способ по п.17, в котором заданные регистры имеют фиксированную связь между собой.23. The method according to 17, in which the given registers have a fixed connection with each other. 24. Способ по п.23, в котором в соответствии с фиксированной связью заданные регистры разделены посредством n вспомогательных регистров, где n=2m-1, где m является целым числом, большим либо равным нулю.24. The method according to item 23, in which in accordance with a fixed connection specified registers are separated by n auxiliary registers, where n = 2 m -1, where m is an integer greater than or equal to zero. 25. Способ по п.23 или 24, в котором заданные регистры являются группами соседних регистров в упомянутом устройстве хранения данных регистров.25. The method according to item 23 or 24, in which the specified registers are groups of neighboring registers in said register data storage device. 26. Способ по п.17, в котором упомянутая единичная инструкция доступа является единичной инструкцией загрузки, и где упомянутый этап (а) содержит этап загрузки множества элементов данных из упомянутой структуры в памяти в выбранную линию обработки упомянутых заданных регистров; и упомянутый этап (b) содержит этап перед сохранением элементов данных в выбранную линию обработки упомянутых заданных регистров, упорядочивания упомянутых элементов данных так, что элементы данных различных компонент сохраняются в различные регистры упомянутых заданных регистров.26. The method according to 17, in which said single access instruction is a single download instruction, and where said step (a) comprises the step of loading a plurality of data elements from said structure in memory into a selected processing line of said predetermined registers; and said step (b) comprises a step before storing the data elements into the selected processing line of said predetermined registers, arranging said data elements so that the data elements of various components are stored in different registers of said predetermined registers. 27. Способ по п.17, в котором упомянутая единичная инструкция доступа является единичной инструкцией сохранения, и где упомянутый этап (а) содержит этап сохранения множества элементов данных из выбранной линии обработки упомянутых заданных регистров в упомянутую структуру в памяти; и упомянутый этап (b) содержит этап перед сохранением элементов данных в упомянутую структуру, упорядочивания упомянутых элементов данных так, чтобы элементы данных сохранялись в упомянутом формате структуры.27. The method according to 17, in which said single access instruction is a single save instruction, and where said step (a) comprises a step of storing a plurality of data elements from a selected processing line of said predetermined registers into said structure in memory; and said step (b) comprises a step before storing the data elements into said structure, arranging said data elements so that the data elements are stored in said structure format. 28. Способ по п.26, включающий в себя дополнительный этап, на котором заполняют незаполненные части заданных регистров одним или более предопределенными значениями.28. The method according to p. 26, including the additional step of filling in the unfilled parts of the given registers with one or more predetermined values. 29. Способ по п.17, в котором единичная инструкция доступа идентифицирует режим адресации, используемый для идентификации перемещаемых элементов данных.29. The method of claim 17, wherein the single access instruction identifies an addressing mode used to identify roaming data items. 30. Способ по п.29, в котором режим адресации идентифицирует начальный адрес для структуры в памяти.30. The method according to clause 29, in which the addressing mode identifies the starting address for the structure in memory. 31. Способ по п.17, в котором заданные регистры имеют одинаковый размер.31. The method according to 17, in which the specified registers have the same size. 32. Способ по п.17, в котором единичная инструкция доступа идентифицирует преобразование, которое будет применено к элементам данных, и способ включает в себя дополнительный этап, на котором применяют упомянутое преобразование к элементам данных при их перемещении.32. The method according to 17, in which a single access instruction identifies the transformation that will be applied to the data elements, and the method includes an additional step in which the said transformation is applied to the data elements when moving them. 33. Компьютерный программный продукт, содержащий компьютерную программу, включающую в себя, по меньшей мере, одну единичную инструкцию доступа, которая при выполнении обуславливает функционирование устройства обработки данных в соответствии со способом по любому из пп.17-32.33. A computer program product containing a computer program including at least one single access instruction, which, when executed, determines the operation of the data processing device in accordance with the method according to any one of claims 17-32.
RU2006124538/09A 2003-12-09 2004-07-01 DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY RU2006124538A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0328538A GB2409066B (en) 2003-12-09 2003-12-09 A data processing apparatus and method for moving data between registers and memory
GB0328538.4 2003-12-09

Publications (1)

Publication Number Publication Date
RU2006124538A true RU2006124538A (en) 2008-01-20

Family

ID=30129914

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2006124538/09A RU2006124538A (en) 2003-12-09 2004-07-01 DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY

Country Status (11)

Country Link
US (1) US7219214B2 (en)
EP (1) EP1692612B1 (en)
JP (1) JP4689621B2 (en)
KR (1) KR101099467B1 (en)
CN (1) CN1894659B (en)
GB (1) GB2409066B (en)
IL (1) IL175588A (en)
MY (1) MY137354A (en)
RU (1) RU2006124538A (en)
TW (1) TWI315034B (en)
WO (1) WO2005057405A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2522314C1 (en) * 2010-06-23 2014-07-10 Интернэшнл Бизнес Машинз Корпорейшн Data unit storage/storage instructions for communication with adapters
RU2554546C2 (en) * 2010-02-18 2015-06-27 Интернэшнл Бизнес Машинз Корпорейшн Separate loading/storage means and command therefor
RU2565496C2 (en) * 2012-03-15 2015-10-20 Интернэшнл Бизнес Машинз Корпорейшн Instruction to load data up to specified memory boundary indicated by said instruction

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
US8776049B2 (en) * 2004-10-20 2014-07-08 Seagate Technology Llc Address aligned resource set allocation in a memory space
US8127117B2 (en) * 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor
US8392674B1 (en) * 2006-07-20 2013-03-05 Altera Corporation Embedded memory data transformation circuitry
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
US7493475B2 (en) * 2006-11-15 2009-02-17 Stmicroelectronics, Inc. Instruction vector-mode processing in multi-lane processor by multiplex switch replicating instruction in one lane to select others along with updated operand address
GB2444744B (en) * 2006-12-12 2011-05-25 Advanced Risc Mach Ltd Apparatus and method for performing re-arrangement operations on data
US7627743B2 (en) * 2007-01-12 2009-12-01 Andes Technology Corporation Method and circuit implementation for multiple-word transfer into/from memory subsystems
US20090259672A1 (en) * 2008-04-15 2009-10-15 Qualcomm Incorporated Synchronizing timing mismatch by data deletion
US7996647B2 (en) * 2008-07-23 2011-08-09 Microchip Technology Incorporated Enhanced microprocessor or microcontroller
US8484276B2 (en) * 2009-03-18 2013-07-09 International Business Machines Corporation Processing array data on SIMD multi-core processor architectures
US20110082999A1 (en) * 2009-10-07 2011-04-07 Andes Technology Corporation Data processing engine with integrated data endianness control mechanism
JP5760532B2 (en) * 2011-03-14 2015-08-12 株式会社リコー PROCESSOR DEVICE AND ITS OPERATION METHOD
US9766887B2 (en) 2011-12-23 2017-09-19 Intel Corporation Multi-register gather instruction
KR20150064197A (en) 2012-12-26 2015-06-10 인텔 코포레이션 Coalescing adjacent gather/scatter operations
US9632781B2 (en) * 2013-02-26 2017-04-25 Qualcomm Incorporated Vector register addressing and functions based on a scalar register data value
US20140281418A1 (en) * 2013-03-14 2014-09-18 Shihjong J. Kuo Multiple Data Element-To-Multiple Data Element Comparison Processors, Methods, Systems, and Instructions
US9424034B2 (en) 2013-06-28 2016-08-23 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US9292298B2 (en) * 2013-07-08 2016-03-22 Arm Limited Data processing apparatus having SIMD processing circuitry
US9880845B2 (en) 2013-11-15 2018-01-30 Qualcomm Incorporated Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
JP6253514B2 (en) * 2014-05-27 2017-12-27 ルネサスエレクトロニクス株式会社 Processor
EP3001307B1 (en) * 2014-09-25 2019-11-13 Intel Corporation Bit shuffle processors, methods, systems, and instructions
CN104991758B (en) * 2015-07-27 2017-11-21 中国科学院自动化研究所 A kind of bit field cladding system and operating method
US9875214B2 (en) 2015-07-31 2018-01-23 Arm Limited Apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers
US20170192783A1 (en) * 2015-12-30 2017-07-06 Elmoustapha Ould-Ahmed-Vall Systems, Apparatuses, and Methods for Stride Load
US20170192781A1 (en) * 2015-12-30 2017-07-06 Robert Valentine Systems, Apparatuses, and Methods for Strided Loads
CN105892993B (en) * 2016-03-28 2019-02-15 龙芯中科技术有限公司 Based on recombination method, device and the microprocessor for extracting insertion operation
US10169040B2 (en) * 2016-11-16 2019-01-01 Ceva D.S.P. Ltd. System and method for sample rate conversion
WO2018154273A1 (en) * 2017-02-23 2018-08-30 Arm Limited Element by vector operations in a data processing apparatus
KR102235803B1 (en) 2017-03-31 2021-04-06 삼성전자주식회사 Semiconductor device
US10649771B2 (en) 2017-03-31 2020-05-12 Samsung Electronics Co., Ltd. Semiconductor device
US10915319B2 (en) 2017-05-15 2021-02-09 Google Llc Two dimensional masked shift instruction
US11269638B2 (en) * 2017-06-28 2022-03-08 Texas Instruments Incorporated Exposing valid byte lanes as vector predicates to CPU
US20190004878A1 (en) * 2017-07-01 2019-01-03 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
GB2564696B (en) * 2017-07-20 2020-02-05 Advanced Risc Mach Ltd Register-based complex number processing
US10474600B2 (en) 2017-09-14 2019-11-12 Samsung Electronics Co., Ltd. Heterogeneous accelerator for highly efficient learning systems
CN109614362A (en) * 2019-03-07 2019-04-12 深兰人工智能芯片研究院(江苏)有限公司 A kind of method for interchanging data and electronic equipment
US11269631B2 (en) 2020-07-29 2022-03-08 Ghost Locomotion Inc. Extending fused multiply-add instructions
US11928472B2 (en) 2020-09-26 2024-03-12 Intel Corporation Branch prefetch mechanisms for mitigating frontend branch resteers
US11442729B2 (en) 2020-10-26 2022-09-13 Google Llc Bit-packed array processing using SIMD
US12182317B2 (en) 2021-02-13 2024-12-31 Intel Corporation Region-based deterministic memory safety
US12504891B2 (en) 2021-06-24 2025-12-23 Intel Corporation Zero-redundancy tag storage for bucketed allocators
US12235791B2 (en) 2021-08-23 2025-02-25 Intel Corporation Loop driven region based frontend translation control for performant and secure data-space guided micro-sequencing
CN113918883B (en) * 2021-11-03 2022-05-27 海光信息技术股份有限公司 Data processing method, device and equipment and computer readable storage medium
CN115665335B (en) * 2022-11-14 2023-03-21 合肥奔图智造有限公司 Image processing method, image processing apparatus, image forming apparatus, and medium
CN115880134B (en) * 2023-01-31 2024-04-16 南京砺算科技有限公司 Constant data processing method using vector register, graphics processor, and medium
CN115826910B (en) * 2023-02-07 2023-05-02 成都申威科技有限责任公司 Vector fixed point ALU processing system
US20240320005A1 (en) * 2023-03-23 2024-09-26 Arm Limited Matrix multiplication in a dynamically spatially and dynamically temporally dividable architecture
US12321744B1 (en) * 2023-06-27 2025-06-03 Advanced Micro Devices, Inc. Systems and methods for hardware gather optimization

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5615535B2 (en) * 1974-12-03 1981-04-10
JPS59184944A (en) * 1983-04-06 1984-10-20 Hitachi Ltd Rounding operation method
CN1007462B (en) * 1985-04-01 1990-04-04 坦德姆计算机有限公司 Central Processing Unit (CPU) structure with multiple data channels
US4876660A (en) 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
JPH0778735B2 (en) 1988-12-05 1995-08-23 松下電器産業株式会社 Cache device and instruction read device
CA2045773A1 (en) * 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
JPH05233281A (en) 1992-02-21 1993-09-10 Toshiba Corp Electronic computer
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
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
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
GB9412434D0 (en) 1994-06-21 1994-08-10 Inmos Ltd Computer instruction compression
GB9412487D0 (en) 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5887183A (en) * 1995-01-04 1999-03-23 International Business Machines Corporation Method and system in a data processing system for loading and storing vectors in a plurality of modes
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
GB9509983D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Replication of data
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
GB9509988D0 (en) * 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
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 (en) 1995-08-03 2004-05-17 株式会社日立製作所 Processor and data processing device
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
KR100445542B1 (en) 1995-09-01 2004-11-20 필립스 일렉트로닉스 노쓰 아메리카 코포레이션 Method and apparatus for custom operations of processor
KR0177985B1 (en) * 1995-11-17 1999-05-15 김광호 Vector data regulator of the 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
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
TW364976B (en) * 1996-09-23 1999-07-21 Arm Corp Input operand control in data processing systems
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
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
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
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
US6209017B1 (en) 1997-08-30 2001-03-27 Lg Electronics Inc. High speed digital signal processor
GB2329810B (en) 1997-09-29 2002-02-27 Science Res Foundation Generation and use of compressed image data
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6223198B1 (en) 1998-08-14 2001-04-24 Advanced Micro Devices, Inc. Method and apparatus for multi-function arithmetic
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
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
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
US6173393B1 (en) * 1998-03-31 2001-01-09 Intel Corporation System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data
US6334176B1 (en) 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
US6247116B1 (en) * 1998-04-30 2001-06-12 Intel Corporation Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
JP2000020486A (en) * 1998-06-29 2000-01-21 Ricoh Co Ltd SIMD type computing unit
US6839728B2 (en) * 1998-10-09 2005-01-04 Pts Corporation Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture
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
GB2352536A (en) 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6629115B1 (en) * 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6748521B1 (en) 2000-02-18 2004-06-08 Texas Instruments Incorporated Microprocessor with instruction for saturating and packing data
US6816961B2 (en) * 2000-03-08 2004-11-09 Sun Microsystems, Inc. Processing architecture having field swapping capability
JP2002073325A (en) * 2000-08-25 2002-03-12 Sanyo Electric Co Ltd Data processing device and method
US7155601B2 (en) * 2001-02-14 2006-12-26 Intel Corporation Multi-element operand sub-portion shuffle instruction execution
US7127593B2 (en) * 2001-06-11 2006-10-24 Broadcom Corporation Conditional execution with multiple destination stores
GB2417111B (en) * 2002-04-22 2006-08-16 Micron Technology Inc Providing a register file memory with local addressing in a SIMD parallel processor
GB2402759B (en) * 2003-06-12 2005-12-21 Advanced Risc Mach Ltd Data processing apparatus and method for transferring data values between a register file and a memory
US7315932B2 (en) * 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands and method thereof
GB2409059B (en) * 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2409065B (en) * 2003-12-09 2006-10-25 Advanced Risc Mach Ltd Multiplexing operations in SIMD processing
GB2409060B (en) * 2003-12-09 2006-08-09 Advanced Risc Mach Ltd Moving data between registers of different register data stores

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2554546C2 (en) * 2010-02-18 2015-06-27 Интернэшнл Бизнес Машинз Корпорейшн Separate loading/storage means and command therefor
RU2522314C1 (en) * 2010-06-23 2014-07-10 Интернэшнл Бизнес Машинз Корпорейшн Data unit storage/storage instructions for communication with adapters
RU2565496C2 (en) * 2012-03-15 2015-10-20 Интернэшнл Бизнес Машинз Корпорейшн Instruction to load data up to specified memory boundary indicated by said instruction

Also Published As

Publication number Publication date
GB0328538D0 (en) 2004-01-14
TW200532452A (en) 2005-10-01
US7219214B2 (en) 2007-05-15
KR20070001902A (en) 2007-01-04
WO2005057405A9 (en) 2006-06-08
CN1894659B (en) 2010-05-26
KR101099467B1 (en) 2011-12-28
TWI315034B (en) 2009-09-21
GB2409066B (en) 2006-09-27
IL175588A (en) 2010-12-30
GB2409066A (en) 2005-06-15
CN1894659A (en) 2007-01-10
EP1692612B1 (en) 2012-12-12
WO2005057405A1 (en) 2005-06-23
EP1692612A1 (en) 2006-08-23
JP4689621B2 (en) 2011-05-25
US20050125640A1 (en) 2005-06-09
JP2007535020A (en) 2007-11-29
MY137354A (en) 2009-01-30
IL175588A0 (en) 2006-09-05

Similar Documents

Publication Publication Date Title
RU2006124538A (en) DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY
RU2006120158A (en) DATA PROCESSING DEVICE AND METHOD FOR MOVING DATA BETWEEN REGISTERS AND MEMORY
US11755474B2 (en) Tile based interleaving and de-interleaving for digital signal processing
KR102801627B1 (en) Optimized neural network input stride method and apparatus
EP3220274B1 (en) Method and apparatus for memory access
US11709911B2 (en) Energy-efficient memory systems and methods
RU2006124547A (en) REPLACING DATA PROCESSING REGISTERS
JPS6027964A (en) Memory access control circuit
US12412081B2 (en) Method for permuting dimensions of a multi-dimensional tensor
KR20230081697A (en) Method and apparatus for accelerating dilatational convolution calculation
CN111324294B (en) Methods and devices for accessing tensor data
JPS6126712B2 (en)
JP7748789B2 (en) Memory mapping of activations for convolutional neural network implementation
CN109324984B (en) Method and apparatus for using circular addressing in convolution operations
CN111368250A (en) Data processing system, method and device based on Fourier transform/inverse transform
CN114860169A (en) On-chip SRAM array storage device and AI neural network image data storage method
US6668285B1 (en) Object oriented processing with dedicated pointer memories
CN115221075B (en) Data storage devices, data storage methods, apparatuses, chips, circuit boards and equipment
WO2006120620A2 (en) Image processing circuit with block accessible buffer memory
CN112395009A (en) Operation method, operation device, computer equipment and storage medium
US7457937B1 (en) Method and system for implementing low overhead memory access in transpose operations
CN112396170B (en) Operation method, device, computer equipment and storage medium
JP2845746B2 (en) Micro program controller
CN120066982A (en) Method, device, equipment and medium for processing low-bit-width data by high-bit-width memory
CN119917031A (en) A computing matrix storage processing method based on multiple memory blocks and a memory controller

Legal Events

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

Effective date: 20100721