IP Library Granted Patent US 8,392,487
Granted Patent B1
US 8,392,487 · App. 12/058,783 · Granted Mar 5, 2013

Programmable matrix processor

Inventors: Michael Mesh (Kfar Saba, IL); Michael Laor (Zichron Yaakov, IL); Alexander Zeltser (Netanya, IL)
Assignee: Compass Electro-Optical Systems Ltd
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,392,487
App. No.
12/058,783
Granted
Mar 5, 2013
Kind
B1
Abstract

A matrix processor and processing method, the processor including a data encoder for receiving an input data stream; a data controller coupled to the data encoder for arranging the input data in an operand matrix, at least one processing unit for processing the data in matrix form by Boolean matrix-matrix multiplication with a selected operator matrix, and an output control module coupled to the processing unit for outputting desired results therefrom.

Claims (571)

1. A matrix processor comprising:

a data encoder for receiving an input data stream;

a data controller coupled to said data encoder for arranging said input data in binary operand matrix and for replicating the binary operand matrix;

at least one processing unit for processing said replicated binary operand matrix by Boolean matrix-matrix multiplication with a selected binary operator matrix, wherein the at least one processing unit includes:

a first module configured to perform element-wise Boolean AND operations on corresponding elements of the binary operand matrix and of the binary operator matrix; and

a second module configured to perform column-wise Boolean OR operations on results of said Boolean AND operations; and

an output control module coupled to said at least one processing unit configured to output results of the Boolean matrix-matrix multiplication.

2. The matrix processor according to claim 1 , wherein the at least one processing unit further includes a programmable logical element for performing Boolean OR/NOR operations on results of said column-wise Boolean OR operations and outputting results of the at least one processing unit.

3. The matrix processor according to claim 2 , wherein said programmable logical element includes control circuits for performing configurations of said Boolean OR/NOR operations.

4. The matrix processor according to claim 1 , wherein:

said data encoder is an input signal processing device; and

said at least one processing unit includes:

a Spatial Light Modulator (“SLM”) coupled to a memory;

integrating elements coupled to said SLM; and

an output signal processing device.

5. The matrix processor according to claim 4 , wherein

said input signal processing device includes a passive optical multiplier;

said memory is coupled to a memory control unit for selecting appropriate values from said memory to upload onto said SLM;

said integrating elements include a lens array; and

said output signal processing device includes a photo diode matrix.

6. A matrix processor comprising:

a data encoder for generating a binary operand matrix from an input data stream;

at least one processing unit, associated with a corresponding local memory, for generating a binary operator matrix from values stored in said corresponding local memory and performing Boolean operations between said binary operand matrix and said binary operator matrix, wherein the at least one processing unit includes:

a first module configured to perform element-wise Boolean AND operations on corresponding elements of the binary operand matrix and of the binary operator matrix; and

a second module configured to perform column-wise Boolean OR operations on results of said Boolean AND operations;

a controller for controlling the Boolean operations of said at least one processing unit, so as to perform a selected matrix processing operation; and

an output control module coupled to said at least one processing unit configured to output results of the Boolean operations.

7. The matrix processor according to claim 6 , wherein:

said data encoder is an input signal processing device; and

said at least one processing unit includes:

an SLM coupled to a memory;

integrating elements coupled to said SLM; and

an output signal processing device.

8. The matrix processor according to claim 7 , wherein

said input signal processing device includes a passive optical multiplier;

said memory is coupled to a memory control unit for selecting appropriate values from said memory to upload onto said SLM;

said integrating elements include a lens array; and

said output signal processing device includes a photo diode matrix.

9. A method for matrix processing comprising:

forming by a matrix processor a binary operand matrix from an input data stream;

forming by the matrix processor a binary operator matrix from values stored in at least one local memory, wherein the at least one local memory is electrically coupled to the matrix processor; and

performing by the matrix processor selected Boolean operations between said binary operand matrix and said binary operator matrix, wherein the Boolean operations include:

element-wise Boolean AND operations between the operand matrix and the operator matrix; and

group-wise Boolean OR operations between the results of said Boolean AND operations.

10. A method for matrix processing comprising:

encoding by a matrix processor an incoming bit stream according to a desired operation to be performed;

forming by the matrix processor a binary operand matrix from said encoded bit stream;

replicating by the matrix processor said binary operand matrix;

performing by the matrix processor bit-wise Boolean AND operations between the replicated binary operand matrix and a preloaded binary operator matrix of bigger size; and

performing by the matrix processor group-wise Boolean OR operations between the results of said Boolean AND operations.

11. The method according to claim 10 , further comprising performing Boolean OR/NOR operations on results of said Boolean OR operations.

12. The method according to claim 10 , further comprising:

organizing bits of a bit stream in the binary operand matrix of n columns with m bits in each columns; and

transmitting said binary operand matrix in parallel to N×M processing units, thereby replicating said binary operand matrix N×M times.

13. The method according to claim 10 , further comprising:

loading pre-selected elements of the binary operator matrix on an SLM in accordance with the desired operation to be performed; and

processing opto-electronically optically integrated output signals, wherein:

the step of forming includes forming an optical source matrix;

the step of replicating includes multiplying by a passive optical multiplier;

the step of performing bit-wise Boolean AND operations includes illuminating said SLM by an output of said passive optical multiplier; and

the step of performing group-wise Boolean OR operations includes optically integrating output signals from said illuminated SLM.

14. The method according to claim 13 , wherein

said step of loading includes loading, from a memory, data selected by a memory control unit;

said step of integrating includes integrating via a lens array; and

said step of processing includes processing on a photo diode matrix.

15. The method according to claim 10 , wherein the sequence of operation of the matrix processor can be depicted as

R

b

c

,

d

=

i

=

1

m

(

C

i

,

b

c

,

d

&

V

i

,

b

)

;

-

bitwise

logical

OR

{

i

=

1

÷

m

b

=

1

÷

n

c

=

1

÷

M

d

=

1

÷

N

v

=

[

]

n

m

C

c

,

d

=

[

]

n

m

C

=

[

m

{

C

1

,

1

n

m

{

C

1

,

2

n

m

{

C

1

,

N

-

1

n

m

{

C

1

,

N

n

m

{

C

2

,

1

n

m

{

C

2

,

2

n

m

{

C

2

,

N

-

1

n

m

{

C

2

,

N

n

m

{

C

M

-

1

,

1

n

m

{

C

M

-

1

,

2

n

m

{

C

M

-

1

,

N

-

1

n

m

{

C

M

-

1

,

N

n

m

{

C

M

,

1

n

m

{

C

M

,

2

n

m

{

C

M

,

N

-

1

n

m

{

C

M

,

N

n

]

N

M

R

=

[

1

{

R

1

,

1

n

1

{

R

1

,

2

n

1

{

R

1

,

N

-

1

n

1

{

R

1

,

N

n

1

{

R

2

,

1

n

1

{

R

2

,

2

n

1

{

R

2

,

N

-

1

n

1

{

R

2

,

N

n

1

{

R

M

-

1

,

1

n

1

{

R

M

-

1

,

2

n

1

{

R

M

-

1

,

N

-

1

n

1

{

R

M

-

1

,

N

n

1

{

R

M

,

1

n

1

{

R

M

,

2

n

1

{

R

M

,

N

-

1

n

1

{

R

M

,

N

n

]

N

M

R

c

,

d

=

[

]

n

where v is the binary operand matrix and C c,d are multiple data matrices, wherein each data matrix is derived from the binary operator matrix.

16. The method according to claim 15 , wherein each data matrix is uploaded on a corresponding processing unit from a corresponding local memory.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: COMPASS NETWORKS LTD.
To: RUSNANO JOINT STOCK COMPANY
Reel/Frame 048527/0502 →
CHANGE OF NAME Recorded Mar 4, 2019
From: COMPASS ELECTRO-OPTICAL SYSTEMS LTD.
To: COMPASS NETWORKS LTD.
Reel/Frame 048498/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2009
From: MESH, MICHAEL; LAOR, MICHAEL; ZELTSER, ALEXANDER
To: COMPASS ELECTRO-OPTICAL SYSTEMS LTD
Reel/Frame 023199/0029 →
Continuity (1)
Provisional Application 60908703 · Mar 29, 2007