IP Library Granted Patent US 7,809,931
Granted Patent B2
US 7,809,931 · App. 10/531,756 · Granted Oct 5, 2010

Arrangement, system and method for vector permutation in single-instruction multiple-data mircoprocessors

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 7,809,931
App. No.
10/531,756
Granted
Oct 5, 2010
Kind
B2
Abstract

A vector permutation system ( 100 ) for a single-instruction multiple-data microprocessor has a set of vector registers ( 110 ) which feed vectors to permutation logic ( 120 ) and then to a negate block ( 130 ) where they are permuted and selectively negated according to control parameters received from a selected one of a set of control registers ( 140 ). A control arrangement ( 145, 150 ) selects which control register is to provide the control parameters. In this way no separate permutation instructions are necessary or need to be executed, and no permutation parameters need to be stored in the vector registers ( 10 ). This leads to higher performance, a smaller vector registers file and hence a smaller size of the microprocessor and better program code density.

Claims (42)

1. An arrangement for vector permutation in a single-instruction multiple-data microprocessor, the arrangement comprising:

a vector register file;

a permutation logic block coupled to receive and permutate vectors from at least one vector register of the vector register file according to control parameters, the permutation of the vectors being a side operation of an instruction;

a plurality of control registers separate from the vector register file, each of the plurality of control registers being coupled to selectively provide control parameters to the permutation logic block; and

a controller coupled between the plurality of control registers and the permutation logic block and arranged for selecting by an order one of the plurality of control registers and for providing the control parameters from the selected one of the plurality of control registers to the permutation logic block.

2. A single-instruction multiple-data microprocessor vector permutation system comprising:

at least one vector register;

a vector register file;

a permutation logic block coupled to receive and permutate vectors from the at least one vector register of the vector register file according to control parameters, the permutation of the vectors being a side operation of an instruction;

a plurality of control registers separate from the vector register file, each of the plurality of control registers being coupled to selectively provide control parameters to the permutation logic block; and

a controller coupled between the plurality of control registers and the permutation logic block and arranged for selecting by an order one of the plurality of control registers and for providing the control parameters from the selected one of the plurality of control registers to the permutation logic block.

3. The arrangement of claim 1 further comprising a negate block coupled to the controller and coupled to receive and selectively negate vectors from the permutation logic block according to the control parameters received from the controller, wherein the control parameters include permutation parameters and negate parameters.

4. The arrangement of claim 1 wherein the controller control means includes at least one counter arranged to provide the order as a sequential order for selecting one of the plurality of control registers.

5. A method for vector permutation in a single-instruction multiple-data microprocessor, the method comprising the steps of:

providing vectors to be permutated in a vector register file; providing a plurality of control registers separate from the vector register file;

providing a controller coupled between the plurality of control registers and the permutation logic block;

selecting by an order one of a plurality of control registers, each control register containing parameters for determining permutation characteristics; and

permutating the vectors as a side operation of an instruction according to the parameters of the selected control register.

6. The method of claim 5 wherein the control register parameters are also used for determining negate characteristics and the step of permutating further includes the step of selectively negating the vectors according to the parameters of the selected control register.

7. The method of claim 5 wherein the step of selecting by an order further includes the following of a sequential order of the plurality of control registers.

8. The arrangement of claim 4 , wherein the sequential order includes automatic sequencing through a set of fixed control parameters.

9. The arrangement of claim 4 , wherein the sequential order includes automatic sequencing through a set of programmable control parameters.

10. The arrangement of claim 4 , wherein the sequential order is cyclical.

11. The system of claim 2 further comprising a negate block coupled to the controller and coupled to receive and selectively negate vectors from the permutation logic block according to the control parameters received from the controller, wherein the control parameters include permutation parameters and negate parameters.

12. The system of claim 2 wherein the controller means includes at least one counter arranged to provide the order as a sequential order for selecting one of the plurality of control registers.

13. The system of claim 12 wherein the sequential order includes automatic sequencing through a set of fixed control parameters.

14. The system of claim 12 wherein the sequential order includes automatic sequencing through a set of programmable control parameters.

15. The system of claim 12 wherein the sequential order is cyclical.

16. The method of claim 7 , wherein the sequential order includes automatic sequencing through a set of fixed control parameters.

17. The method of claim 7 wherein the sequential order includes automatic sequencing through a set of programmable control parameters.

18. The method of claim 7 wherein the sequential order is cyclical.

19. The system of claim 1 wherein the plurality of control registers is external to the vector register file.

20. The system of claim 1 wherein the vector register file is free of the plurality of control registers.

21. The system of claim 2 wherein the plurality of control registers is external to the vector register file.

22. The system of claim 2 wherein the vector register file is free of the plurality of control registers.

23. The method of claim 5 wherein the plurality of control registers is provided external to the vector register file.

24. The method of claim 5 wherein the vector register file is provided free of the plurality of control registers.

25. An arrangement for vector permutation in a single-instruction multiple-data microprocessor, the arrangement comprising:

a vector register file;

a permutation logic block coupled to receive and permutate vectors from at least one vector register of the vector register file according to control parameters, the permutation of the vectors being a side operation of an instruction;

a plurality of control registers separate from the vector register file, each of the plurality of control registers being coupled to selectively provide control parameters to the permutation logic block; and

a controller coupled between the plurality of control registers and the permutation logic block and arranged for selecting by an order one of the plurality of control registers and for providing the control parameters from the selected one of the plurality of control registers to the permutation logic block wherein the controller includes at least one counter arranged to provide the order as a sequential order for cyclically sequencing through the plurality of control registers.

Assignments (21)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
RELEASE OF SECURITY INTEREST Recorded Jun 7, 2012
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
Reel/Frame 028331/0948 →
RELEASE OF SECURITY INTEREST Recorded Jun 7, 2012
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 028331/0933 →
RELEASE OF SECURITY INTEREST Recorded Jun 7, 2012
From: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 028331/0957 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2012
From: FREESCALE SEMICONDUCTOR, INC
To: RYO HOLDINGS, LLC
Reel/Frame 028139/0475 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 15, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 024085/0001 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2005
From: RAUBUCH, MARTIN
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 017013/0301 →