IP Library Granted Patent US 9,003,165
Granted Patent B2
US 9,003,165 · App. 12/331,337 · Granted Apr 7, 2015

Address generation unit using end point patterns to scan multi-dimensional data structures

Inventors: Shlomo Selim Rakib (Cupertino, CA); Marc Schaub (Sunnyvale, CA)
G06F17/30949G06F9/345G06F9/3885G06F9/3891Y10S707/957
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 9,003,165
App. No.
12/331,337
Granted
Apr 7, 2015
Kind
B2
Abstract

A system in accordance with the invention may include a data memory storing a multi-dimensional (e.g., a two-dimensional) data structure. An address generation unit is provided to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern. The address generation unit may be configured to calculate real addresses by moving across the multi-dimensional data structure between pairs of end points. The pairs of end points (as well as parameters such as the step size between the end points) may be pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure. A processor, such as a vector processor, may be configured to access (e.g., read or write data to) the data structure at the real addresses calculated by the address generation unit.

Claims (32)

1. A method for operating a data system component comprising:

a data memory providing a multi-dimensional data structure;

providing an address generation unit configured to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern;

configuring the address generation unit to calculate the real addresses by moving across the multi-dimensional data structure between pairs of end points, wherein the pairs of end points are pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure, and using a vector processor unit to access the data structure at the real addresses calculated by the address generation unit;

wherein said address generation unit comprises a buffer descriptor memory and a port descriptor memory; and

using said address generation unit to generate real addresses in response to read/write requests from either a vector processor unit controller or a connection manager communicating with a bus whose primary responsibility is to transfer data;

wherein said vector processor unit controller makes read or write requests to a connection as opposed to specifying the real address in said data memory where the read or write is to occur;

and wherein said connection is identified by a connection identification composed of a buffer identification and a port identification.

2. The method of claim 1 , wherein accessing the multi-dimensional data structure includes at least one of reading from and writing to the multi-dimensional data structure.

3. The method of claim 1 , wherein the multi-dimensional data structure is a two-dimensional data structure.

4. The method of claim 1 , wherein providing a multi-dimensional data structure comprises storing the multi-dimensional data structure in a buffer in data memory.

5. The method of claim 1 , further comprising pre-programming a step size into the address generation unit for each pair of end points.

6. The method of claim 1 , wherein said address generation unit is programmed by management processors.

7. The method of claim 1 , wherein said port descriptor memory stores a port descriptor table containing port records indexed by port identification and port type.

8. The method of claim 7 , wherein said data memory has a buffer capable of storing vectors;

said port records additionally comprise attributes of the ports they describe, and wherein said attributes include the end points to move between when scanning the vectors in a buffer, and the step size between the end points.

9. The method of claim 8 , wherein the number of elements in said vector is equal to the number of processing elements in a vector processing unit array (VPU array) that operates on the multi-dimensional data structure.

10. The method of claim 1 , further moving said pairs of end points to new locations, or modifying said pairs of endpoints.

11. A method for operating a data system component comprising:

a data memory providing a multi-dimensional data structure;

providing an address generation unit configured to calculate real addresses in order to access the multi-dimensional data structure in a desired pattern;

configuring the address generation unit to calculate the real addresses by moving across the multi-dimensional data structure between pairs of end points, wherein the pairs of end points are pre-programmed into the address generation unit prior to accessing the multi-dimensional data structure, and accessing the data structure at the real addresses calculated by the address generation unit;

wherein said address generation unit comprises a buffer descriptor memory and a port descriptor memory;

programming said address generation unit by management processors;

using said address generation unit to generate real addresses in response to read/write requests from either a vector processor unit controller or a connection manager communicating with a bus whose primary responsibility is to transfer data;

wherein said vector processor unit controller makes read or write requests to a connection as opposed to specifying the real address in said data memory where the read or write is to occur;

wherein said connection is identified by a connection identification composed of a buffer identification and a port identification;

wherein said port descriptor memory stores a port descriptor table containing port records indexed by port identification and port type;

wherein said data memory has a buffer capable of storing vectors, said port records additionally comprise attributes of the ports they describe;

wherein said attributes include the end points to move between when scanning the vectors in a buffer, and the step size between the end points; and

wherein the number of elements in said vector is equal to the number of processing elements in a vector processing unit array (VPU array) that operates on the multi-dimensional data structure.

12. The method of claim 11 , further moving said pairs of end points to new locations, or modifying said pairs of endpoints.

Assignments (5)
NUNC PRO TUNC ASSIGNMENT Recorded Jul 18, 2011
From: NFI (AN ABC), LLC, ASSIGNEE FOR THE BENEFIT OF CREDITORS OF NOVAFORA
To: COHERE LABS, INC., A DELAWARE CORPORATION
Reel/Frame 026609/0166 →
NUNC PRO TUNC ASSIGNMENT Recorded Jul 18, 2011
From: SILICON VALLEY BANK
To: NOVAFORA, INC.
Reel/Frame 026605/0968 →
SECURITY AGREEMENT Recorded Jul 7, 2009
From: NOVAFORA, INC.
To: SILICON VALLEY BANK
Reel/Frame 022917/0465 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: RAKIB, SHLOMO SELIM
To: NOVAFORA INC.
Reel/Frame 021954/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: SCHAUB, MARC; RAKIB, SHLOMO SELIM
To: NOVAFORA INC.
Reel/Frame 021955/0080 →
Continuity (1)
Related Publication 20100145993A1 · Jun 10, 2010