IP Library › Granted Patent US 8,423,752
Granted Patent B2
US 8,423,752 · App. 12/314,760 · Granted Apr 16, 2013

Apparatus and method for performing permutation operations in which the ordering of one of a first group and a second group of data elements is preserved and the ordering of the other group of data elements is changed

Inventors: Dominic Hugo Symes (Cambridge, GB); Mladen Wilder (Cambridge, GB)
Assignee: ARM Limited
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 8,423,752
App. No.
12/314,760
Granted
Apr 16, 2013
Kind
B2
Abstract

An apparatus for processing data is provided comprising processing circuitry having permutation circuitry for performing permutation operations, a register bank having a plurality of registers for storing data and control circuitry responsive to program instructions to control the processing circuitry to perform data processing operations. The control circuitry is arranged to be responsive to a control-generating instruction to generate in dependence upon a bit-mask control signals to configure permutation circuitry for performing permutation operation on an input operand. The bit-mask identifies within the input operand the first group of data elements having a first ordering and a second group of data elements having a second ordering and the permutation operation is such that it preserves one of the first ordering and the second ordering but changes the other of the first ordering and the second ordering.

Claims (34)

1. Apparatus for processing data, said apparatus comprising:

processing circuitry for performing data processing operations comprising permutation circuitry for performing permutation operations;

a register bank having a plurality of registers for storing data;

control circuitry, responsive to program instructions, configured to control said processing circuitry to perform said data processing operations;

wherein said control circuitry is configured to be responsive to a control-generating instruction to generate, in dependence upon a bit-mask, control signal's to configure said permutation circuitry for performing a permutation operation on an input operand comprising data stored in one or more registers of said register bank;

wherein said bit-mask identifies within said input operand a first group of data elements having a first ordering and a second group of data elements having a second ordering, said permutation operation preserves one but changes the other of said first ordering and said second ordering, and both of said first and second groups of data elements comprise data stored in said register bank.

2. Apparatus as claimed in claim 1 , wherein said changed ordering of one of said first ordering and second ordering comprises a reversed ordering.

3. Apparatus as claimed in claim 1 , wherein said permutation operation is one of an interleave operation and a de-interleave operation.

4. Apparatus as claimed in claim 1 , wherein said permutation operation is performed by a permutation instruction following configuration of said permutation circuitry by said control-generating instruction.

5. Apparatus as claimed in claim 1 , wherein said control circuitry is responsive to said control-generating instruction both to configure said permutation circuitry and to perform said permutation operation.

6. Apparatus as claimed in claim 1 , wherein said first group and said second group of data elements comprise multi-bit data elements.

7. Apparatus as claimed in claim 1 , wherein said input operand comprises a packed vector.

8. Apparatus as claimed in claim 1 , wherein said permutation operation is performed on an input vector of data comprising said first and second groups of data elements and generates an output vector of data comprising one of said first and second groups of data elements having preserved ordering and the other of said first and second groups of data elements having changed ordering.

9. Apparatus as claimed in claim 8 , wherein said input vector comprises a plurality of vector registers and said output vector comprises a respective plurality of vector registers.

10. Apparatus as claimed in claim 1 , comprising at least one mask register for storing said bit-mask.

11. Apparatus according to claim 10 , wherein said at least one mask register uses a zero bit to indicate one of and a one bit to indicate the other of said first group of data elements and said second group of data elements respectively.

12. Apparatus according to claim 10 , wherein said at least one mask register is a Boolean register.

13. Apparatus as claimed in claim 1 , wherein said permutation circuitry comprises a butterfly network arranged to rearrange a plurality of data elements in dependence upon butterfly connections between pairs of said data elements.

14. Apparatus according to claim 13 , wherein said butterfly network is a constant geometry network in which said butterfly connections remain fixed whilst said plurality of data elements are permitted to move.

15. Apparatus according to claim 13 , wherein said butterfly connections remain fixed whilst said plurality of data elements are permitted to move.

16. Apparatus as claimed in claim 1 , wherein said first group of data elements and said second group of data elements each have different numbers of constituent data elements.

17. Apparatus as claimed in claim 1 , wherein said two ordered data sets correspond respectively to two different communication channels.

18. Apparatus as claimed in claim 1 , wherein said data processing apparatus is a digital signal processor.

19. Apparatus as claimed in claim 1 , wherein said data processing apparatus is a co-processor.

20. A method of performing permutation operations using a data processing apparatus having processing circuitry for performing data processing operations, a register bank having a plurality of registers for storing data and control circuitry responsive to program instructions to control said processing circuitry to perform said data processing operations, said processing circuitry comprising permutation circuitry for performing permutation operations, said method comprising the step of:

(i) in response to a control-generating instruction, generating in dependence upon a bit-mask, control signals to configure said permutation circuitry for performing a permutation operation on an input operand comprising data stored in one or more registers of said register bank;

wherein said bit-mask identifies within said input operand a first group of data elements having a first ordering and a second group of data elements having a second ordering, said permutation operation preserves one but changes the other of said first ordering and said second ordering, and both of said first and second groups of data elements comprise data stored in said register bank.

21. A computer program product including a non-transitory computer readable storage medium including a computer program for controlling a computer to perform a method as claimed in claim 20 , said computer program comprising at least one control-generating instruction.

22. A non-transitory computer readable storage medium storing a virtual machine for providing an emulation of an apparatus for processing data, said apparatus comprising:

processing circuitry for performing data processing operations comprising permutation circuitry for performing permutation operations;

a register bank having a plurality of registers for storing data;

control circuitry responsive to program instructions to control said processing circuitry to perform said data processing operations;

wherein said control circuitry is arranged to be responsive to a control-generating instruction to generate in dependence upon a bit-mask, control signals to configure said permutation circuitry for performing a permutation operation on an input operand comprising data stored in one or more registers of said register bank;

wherein said bit-mask identifies within said input operand a first group of data elements having a first ordering and a second group of data elements having a second ordering, said permutation operation preserves one but changes the other of said first ordering and said second ordering, and both of said first and second groups of data elements comprise data stored in said register bank.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2013
From: ARM LIMITED
To: U-BLOX AG
Reel/Frame 031162/0919 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2008
From: SYMES, DOMINIC HUGO; WILDER, MLADEN
To: ARM LIMITED
Reel/Frame 022037/0151 →
Priority Claims (1)
GB 0801137.1 · Jan 22, 2008 · national
Continuity (1)
Related Publication 20090187746A1 · Jul 23, 2009