IP Library Granted Patent US 11,188,331
Granted Patent B2
US 11,188,331 · App. 16/576,505 · Granted Nov 30, 2021

Processor instruction specifying indexed storage region holding control data for swizzle operation

Inventors: Daren Croxford (Cambridge, GB); Michel Patrick Gabriel Emil Iwaniec (Cambridge, GB); Rune Holm (Cambridge, GB); Diego Lopez Recas (Cambridge, GB)
Assignees: Arm Limited; Apical Limited
G06F9/30101G06F9/30032G06F9/30036G06F9/3877
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,188,331
App. No.
16/576,505
Granted
Nov 30, 2021
Kind
B2
Abstract

A data processing system includes: a processor; a data interface for communication with a control unit, the processor being on one side of the data interface; internal storage accessible by the processor, the internal storage being on the same side of the data interface as the processor; and a register array accessible by the processor and comprising a plurality of registers, each register having a plurality of vector lanes. The storage is arranged to store control data indicating an ordered selection of vector lanes of one or more of the registers. The processor is arranged to, in response to receiving instruction data from a control unit, perform a swizzle operation in which data is selected from one or more source registers in the register array, and transferred to a destination register. The data is selected from vector lanes in accordance with control data stored in the internal storage.

Claims (36)

1. A data processing system comprising:

a processor;

a data interface for communication with a control unit, the processor being on one side of the data interface;

internal storage accessible by the processor, the internal storage being on the same side of the data interface as the processor; and

a register array accessible by the processor and comprising a plurality of vector registers, each vector register having a plurality of vector lanes, wherein:

the internal storage comprises a plurality of storage regions each indexed by a respective index of a series of indexes, a first storage region of the plurality of storage regions being indexed by a first index of the series of indexes,

each of the plurality of storage regions is arranged to store respective control data, the respective control data stored in each storage region specifying a respective ordered selection of vector lanes of one or more source registers in the register array, the respective ordered selection having an equal number of vector lanes to a destination register in the register array; and

the processor is arranged to, in response to receiving instruction data comprising the first index from the control unit via the data interface, transfer data to the destination register from the respective ordered selection of vector lanes indicated by the respective control data stored in the first storage region.

2. The data processing system of claim 1 , wherein the processor is arranged to, in response to receiving instruction data from the control unit indicating a subset of the plurality of registers, designate the indicated subset as the one or more source registers.

3. The data processing system of claim 1 , wherein the processor is arranged to, in response to receiving setup data from the control unit, write the respective control data to the first storage region.

4. The data processing system of claim 1 , wherein the processor is operable to perform a logical vector operation on data stored in one or more vector registers in the register array.

5. The data processing system of claim 1 , wherein the internal storage stores control data for performing a pooling operation on a feature map within a convolutional layer of a convolutional neural network (CNN).

6. The data processing system of claim 1 , comprising one or more multiply-accumulate (MAC) units, wherein:

each of the one or more MAC units is configured to perform a MAC operation to process input data as part of a convolution operation within a convolutional layer of a convolutional neural network (CNN); and

the data transferred to the destination register represents a portion of a feature map generated using the one of more MAC units.

7. The data processing system of claim 1 , wherein:

the data transferred to the destination register represents a portion of an image having a first colour format; and

the internal storage stores control data for converting the portion of the image from the first colour format to a second colour format.

8. The data processing system of claim 1 , wherein the processor is operable to, in response to receiving the instruction data, zero data in a further register.

9. The data processing system of claim 1 , wherein the processor is a coprocessor.

10. A computer-implemented method of processing data comprising a processor on one side of a data interface for communication with a control unit:

receiving, from the control unit, instruction data comprising a first index of a series of indexes respectively indexing a plurality of storage regions of internal storage accessible by the processor and on the same side of the data interface as the processor, a first storage region of the plurality of storage regions being indexed by the first index,

wherein each of the plurality of storage regions is arranged to store respective control data, the respective control data stored in each storage region specifying a respective ordered selection of vector lanes of;

one or more source registers in a register array accessible to the processor and comprising a plurality of vector registers, each vector register having a plurality of vector lanes, the respective ordered selection having an equal number of vector lanes to a destination register in the register array; and

responsive to receiving the instruction data comprising the first index, transferring data to the destination register from the respective ordered selection of vector lanes indicated by the respective control data stored in the first storage region.

11. The computer-implemented method of claim 10 , comprising the processor

writing, in response to receiving setup data from the control unit, the respective control data to the first storage region.

12. The computer-implemented method of claim 10 , comprising the processor performing a logical vector operation on data stored in one or more vector registers in the register array.

13. The computer-implemented method of claim 10 , wherein the transferring of the data is part of a pooling operation performed on a feature map within a convolutional layer of a convolutional neural network (CNN).

14. The computer-implemented method of claim 13 , wherein the transferring of the data takes account of edges of the feature map.

15. The computer-implemented method of claim 10 , comprising processing, by one or more multiply-accumulate (MAC) units, input data as part of a convolution operation within a convolutional neural network,

wherein the transferred data represents a portion of a feature map generated using the one or more MAC units.

16. The computer-implemented method of claim 10 , wherein:

the transferred data represents a portion of an image having a first colour format; and

the transferring of the data is for converting the portion of the image from the first colour format to a second colour format.

17. The computer-implemented method of claim 10 , comprising the processor zeroing, in response to receiving the instruction data, data in a further register.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2022
From: APICAL LIMITED
To: ARM LIMITED
Reel/Frame 061300/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2019
From: IWANIEC, MICHEL PATRICK GABRIEL EMIL; HOLM, RUNE; LOPEZ RECAS, DIEGO
To: ARM LIMITED
Reel/Frame 050449/0087 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2019
From: CROXFORD, DAREN
To: APICAL LIMITED
Reel/Frame 050449/0156 →
Priority Claims (1)
GB 1816402 · Oct 8, 2018 · national
Continuity (1)
Related Publication 20200110607A1 · Apr 9, 2020