Address generation unit using end point patterns to scan multi-dimensional data structures
View Patent ↗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.
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.