IP Library › Granted Patent US 8,856,197
Granted Patent B2
US 8,856,197 · App. 13/124,110 · Granted Oct 7, 2014

System and method for processing data using a matrix of processing units

Inventor: Xavier Chabot (Dublin, CA)
Assignee: NXP, B.V.
G06F15/7867
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,856,197
App. No.
13/124,110
Granted
Oct 7, 2014
Kind
B2
Abstract

A system and method for processing data utilizes a matrix of processing units using an array of commands stored in memory to process input data words to generate output data words, which can be used in various applications.

Claims (30)

1. A system for processing data, the system comprising:

a matrix of N rows and M columns of processing units, where N and M are integers greater than zero, wherein each processing unit includes at least one logic circuit and each logic circuit is configured to perform a bit operation;

memory configured to store an array of N rows and M columns of commands, wherein each command of the array of N rows and M columns of commands defines a configuration of the bit operation of one processing unit of the matrix of N rows and M columns of processing units;

a controller configured to control the matrix of N rows and M columns of processing units using the array of N rows and M columns of commands stored in the memory to process at least one input data word having N bits to generate at least one output data word having M bits; and

wherein the at least one logic circuit includes a first logic circuit configured to performs a bit copy operation to copy a value of one or more input data bits to one or more output data bits, a second logic circuit configured to perform a bit set operation to set values of the one or more output data bits to one, a third logic circuit configured to perform a bit reset operation to set the values of the one or more output data bits to zero, and a fourth logic circuit configured to perform of a bit inverse operation to set the values of one or more output data bits to complements of the values of the one or more input data bits.

2. The system of claim 1 , wherein the at least one logic circuit includes a logic circuit configured to perform a bit operation on a plurality of input data bits from a plurality of input data words.

3. The system of claim 1 , wherein the at least one logic circuit includes a logic circuit configured to perform a bit operation on only one input data bit of a selected input data word of a plurality of input data words.

4. The system of claim 1 , wherein each column of the matrix of N rows and M columns of processing units executes a corresponding column of commands of the array of N rows and M columns of commands on the at least one input data word to generate one bit of the at least one output data word.

5. The system of claim 1 , wherein each row of the matrix of N rows and M columns of processing units executes a corresponding row of commands of the array of N rows and M columns of commands on the at least one input data word.

6. The system of claim 1 , wherein the controller is configured to directly load the array of N rows and M columns of commands stored in the memory into the matrix of N rows and M columns of processing units.

7. The system of claim 1 , wherein the controller is configured to convert the array of N rows and M columns of commands stored in the memory into control signals and to load the control signals into the matrix of N rows and M columns of processing units.

8. The system of claim 1 , further comprising a Galois field multiplier configured to perform a Galois field multiplication on the at least one input data word to produce results that are applied to the matrix of processing units.

9. A method for processing data, the method comprising:

obtaining an array of N rows and M columns of commands, where N and M are integers greater than zero;

applying the array of N rows and M columns of commands to a matrix of N rows and M columns of processing units, wherein each processing unit includes at least one logic circuit and each logic circuit is configured to perform a bit operation, each command of the array of N rows and M columns of commands defining a configuration of the bit operation of one processing unit of the matrix of N rows and M columns of processing units;

at the matrix of N rows and M columns of processing units, performing bit operations on at least one input data word having N bits in response to the array of N rows and M columns of commands to generate at least one output data word having M bits; and

wherein the performing includes performing a bit copy operation to copy a value of one or more input data bits to one or more output data bits, performing a bit set operation to set values of the one or more output data bits to one, performing a bit reset operation to set the values of the one or more output data bits to zero, and performing a bit inverse operation to set the values of the one or more output data bits to complements of the values of the one or more input data bits at one processing unit of the matrix of N rows and M columns of processing units.

10. The method of claim 9 , wherein the performing includes performing a bit operation on a plurality of input data bits from a plurality of input data words at one processing unit of the matrix of N rows and M columns of processing units.

11. The method of claim 9 , wherein the performing includes performing a bit operation on only one input data bit of a selected input data word of a plurality of input data words at one processing unit of the matrix of N rows and M columns of processing units.

12. The method of claim 9 , wherein the performing includes executing a corresponding column of commands of the array of N rows and M columns of commands at each column of the matrix of N rows and M columns of processing units on the at least one input data word to generate one bit of the at least one output data word.

13. The method of claim 9 , wherein the performing includes executing a corresponding row of commands of the array of N rows and M columns of commands at each row of the matrix of N rows and M columns of processing units on the at least one input data word.

14. The method of claim 9 , wherein the applying the array of N rows and M columns of commands to a matrix of N rows and M columns of processing units includes directly loading the array of N rows and M columns of commands stored in the memory into the matrix of N rows and M columns of processing units.

15. The method of claim 9 , wherein the applying the array of N rows and M columns of commands to a matrix of N rows and M columns of processing units includes converting the array of N rows and M columns of commands stored in the memory into control signals and loading the control signals into the matrix of N rows and M columns of processing units.

16. The method of claim 9 , further comprising performing a Galois field multiplication on the at least one input data word to produce results and applying the results to the matrix of processing units.

17. A system for processing data, the system comprising:

a matrix of processing units including eight rows and eight columns of processing units, wherein each processing unit includes at least one logic circuit and each logic circuit is configured to perform a bit operation;

memory configured to store an array of eight rows and eight columns of commands, wherein each command of the array of eight rows and eight columns of commands defines a configuration of the bit operation of one processing unit of the matrix of processing units; and

a controller configured to control the matrix of processing units using the array of eight rows and eight columns of commands stored in the memory to process at least one input data word having eight bits to generate at least one output data word having eight bits; and

wherein the at least one logic circuit includes a first logic circuit configured to performs a bit copy operation to copy a value of one or more input data bits to one or more output data bits, a second logic circuit configured to perform a bit set operation to set values of the one or more output data bits to one, a third logic circuit configured to perform a bit reset operation to set the values of the one or more output data bits to zero, and a fourth logic circuit configured to perform of a bit inverse operation to set the values of one or more output data bits to complements of the values of the one or more input data bits.

18. The system of claim 17 , further comprising a Galois field multiplier configured to perform a Galois field multiplication on the at least one input data word to produce results that are applied to the matrix of processing units.

Assignments (10)
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 →
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2011
From: CHABOT, XAVIER
To: NXP B.V.
Reel/Frame 026122/0944 →
Continuity (2)
Provisional Application 61106022 · Oct 16, 2008
Related Publication 20110202587A1 · Aug 18, 2011