Background memory allocation for multi-dimensional signal processing
First Claim
1. A method of generating a data-flow graph representative of data to be stored in a data-dominated processing system, comprising the steps of:
- partitioning a plurality of linearly bounded lattices representative of data into partitioned linearly bounded lattices comprising basic sets and disjoint linearly bounded lattices;
deriving a plurality of dependency relations between the partitioned linearly bounded lattices; and
constructing a data-flow graph having a plurality of nodes, each node representing one of the partitioned linearly bounded lattices, and a plurality of arcs, each arc representing one of the dependency relations.
1 Assignment
0 Petitions
Accused Products
Abstract
Data storage and transfer cost is responsible for a large amount of the VLSI system realization cost in terms of area and power consumption for real-time multi-dimensional signal processing applications. Applications or this type are data-dominated because they handle a large amount of indexed data which are produced and consumed in the context of nested loops. This important application domain includes the majority of speech, video, image, and graphic processing (multi-media in general) and end-user telecom applications. The present invention relates to the automated allocation of the background memory units, necessary to store the large multi-dimensional signals. In order to handle both procedural and nonprocedural specification, the novel memory allocation methodology is based on an optimization process driven by data-flow analysis. This steering mechanism allows more exploration freedom than the more restricted scheduling-based investigation in the existent synthesis systems. Moreover, by means of an original polyhedral model of data-flow analysis, the novel allocation methodology can accurately deal with complex specifications, containing large multi-dimensional signals. The class of specifications handled by this polyhedral model covers a larger range than the conventional ones, i.e. the entire class of affine representations. Employing estimated silicon area or power consumption costs yielded by recent models for on-chip memories, the novel allocation methodology produces one, or optionally, several distributed multi-port memory architecture(s) with fully-determined characteristics, complying with a given clock cycle budget for memory operations.
106 Citations
46 Claims
-
1. A method of generating a data-flow graph representative of data to be stored in a data-dominated processing system, comprising the steps of:
-
partitioning a plurality of linearly bounded lattices representative of data into partitioned linearly bounded lattices comprising basic sets and disjoint linearly bounded lattices; deriving a plurality of dependency relations between the partitioned linearly bounded lattices; and constructing a data-flow graph having a plurality of nodes, each node representing one of the partitioned linearly bounded lattices, and a plurality of arcs, each arc representing one of the dependency relations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method of analyzing the data-flow in a behavioral specification for a data-dominated processing system, wherein the system is specified with manifest iterator bounds and indices, comprising the steps of:
-
representing the index space of the domains as a plurality of linearly bounded lattices; partitioning the linearly bounded lattices into a plurality of basic sets, the partitioning step comprising the steps of constructing inclusion graphs based on the presence of intersections between the lattices, and deriving the basic sets based on the inclusion graphs and the size computation of linearly bounded lattices; deriving the number of dependencies between the basic sets based on the dependence relations between the lattices; and constructing a weighted directed graph, representing the data-flow, each node in the graph representing one of the basic sets, each node weight in the graph representing the size of the one basic set, each arc of the graph representing a dependence relation between two of the basic sets, each arc weight of the graph representing the number of dependence relations between the two basic sets. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method of estimating the storage and port requirements of memory for a nonprocedural behavioral specification in single assignment form, based on a data-flow graph of signals, comprising the steps of:
-
determining a partial computation ordering of the nodes in the data-flow graph based on storage cost and port cost, each node indicative of a group of signals; estimating the storage requirements of the memory compatible with the partial computation ordering; and estimating the port requirements of the memory based on the behavioral specification and the partial computation ordering and a cycle budget for memory accesses. - View Dependent Claims (29, 30, 31, 32)
-
-
33. A method of memory allocation for a data-dominated signal processing system represented as a partial computation ordering of the nodes in a data-flow graph based on storage cost and port cost each node indicative of a group of signals, the method comprising the steps of:
-
deriving a cost function based on memory area and a plurality of read-write memories, each memory indicative of a maximum number of simultaneous read-write operations of signals having a specified number of bits, the memories determined from the partial computation ordering; deriving a set of port constraints for the read-write memories; deriving a set of storage constraints for the read-write memories; and generating one or more port configurations, each port configuration matching the port constraints. - View Dependent Claims (34, 35, 36, 37)
-
-
38. A method of signal to memory assignment for a data-dominated signal processing system represented as a partial computation ordering of the nodes in a data-flow graph based on storage cost and port cost, each node indicative of a group of signals partition, comprising the steps of:
-
allocating memory units according to minimization of a criteria; and constructing an initial assignment of the partitions to the memory units without any port conflicts. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
-
Specification