Methods and apparatus for indirect VLIW memory allocation
First Claim
Patent Images
1. A computer implemented method of indirect very long instruction word (VLIW) instruction memory (VIM) allocation comprising the steps of:
- identifying a plurality of VLIW instructions in an input source program;
determining a lifetime of each of said plurality of VLIW instructions, the lifetime of a VLIW instruction including the interval of time between loading the VLIW instruction to VIM and the last time the VLIW instruction is executed; and
allocating at least some of the plurality of VLIW instructions to VIM based on the lifetime of said plurality of VLIW instructions.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques and a set of heuristics are described to perform allocation of the special instruction memory where indirect very long instruction words (VLIW'"'"'s) are stored for the ManArray family of multiprocessor digital signal processors (DSP). This approach substantially reduces the cost of pre-initializing the contents of VLIWs.
-
Citations
36 Claims
-
1. A computer implemented method of indirect very long instruction word (VLIW) instruction memory (VIM) allocation comprising the steps of:
-
identifying a plurality of VLIW instructions in an input source program; determining a lifetime of each of said plurality of VLIW instructions, the lifetime of a VLIW instruction including the interval of time between loading the VLIW instruction to VIM and the last time the VLIW instruction is executed; and allocating at least some of the plurality of VLIW instructions to VIM based on the lifetime of said plurality of VLIW instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer implemented method of optimizing the execution time of a user program by reducing redundant loads of very long instruction word (VLIW) instruction memory (VIM) comprising the steps of:
-
selecting a load VLIW (LV) instruction in a current node; and placing the LV instruction in a new node which is closer to a program start node if an execution frequency of the new node is lower than an execution frequency of the current node, and if a maximum number of VIM lines is not exceeded.
-
-
16. A computer implemented method to statically determine liveness of indirect very long instruction word (VLIW) instructions comprising the steps of:
-
determining a control flow graph which includes nodes representing basic program blocks, and edges connecting the nodes which represent jumps and calls from one block to another block; determining a live-in set and a live-out set of VLIW instructions for each node in the control graph to define a VLIW flow graph, a live-in set for a node comprises the VLIW instructions that are used in the node, a live-out set for a node comprises a union of live-in sets of successor nodes, the determining step further including solving VLIW flow equations for the live-in set and the live-out set; and allocating at least some of the VLIW instructions to VLIW instruction memory based on said VLIW flow equation. - View Dependent Claims (17)
-
-
18. A computer implemented method to statically determine interference between indirect very long instruction word (VLIW) instructions from a control graph of having a plurality of nodes, the computer implemented method comprising the steps of:
-
determining live-out sets for the plurality of nodes, the live-out sets and the control graph defining a VLIW flow graph; determining an interference graph from the VLIW flow graph, the interference graph comprising VLIW nodes in which every VLIW node of the interference graph corresponds to one VLIW instruction; inserting an undirected edge into the interference graph between two VLIW nodes if the two VLIW instructions belong to a live-out set of the same node of the VLIW flow graph; and coloring the VLIW graph nodes such that adjacent VLIW nodes are colored in different colors and each color corresponds to a different VIM line.
-
-
19. An apparatus for allocating indirect very long instruction word (VLIW) instruction memory (VIM) comprising:
-
means for identifying a plurality of VLIW instructions in an input source program; means for determining a lifetime of each of said plurality of VLIW instructions, the lifetime of a VLIW instruction including the interval of time between loading the VLIW instruction to VIM and the last time the VLIW instruction is executed; and means for allocating at least some of the plurality of VLIW instructions to VIM based on the lifetime of said plurality of VLIW instructions. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. An apparatus for optimizing the execution time of a user program by reducing redundant loads of very long instruction word (VLIW) instruction memory (VIM) comprising:
-
means for selecting a load VIM (LV) instruction in a current node; and means for placing the LV instruction in a new node which is closer to a program start node if an execution frequency of the new node is lower than an execution frequency of the current node, and if a maximum number of VIM lines is not exceeded.
-
-
34. An apparatus for statically determining liveness of indirect very long instruction word (VLIW) instructions comprising:
-
means for determining a control flow graph which includes nodes representing basic program blocks containing VLIW instructions, and edges connecting the nodes which represent jumps and calls from one block to another block; means for determining a live-in set and a live-out set of VLIW instructions for each node in the control graph to define a VLIW flow graph, a live-in set for a node comprises the VLIW instructions that are used in the node, a live-out set for a node comprises a union of live-in sets of successor nodes, the determining step further including solving VLIW flow equations for the live-in set and the live-out set; and means for allocating at least some of the VLIW instructions to VLIW instruction memory based on said VLIW flow equation. - View Dependent Claims (35)
-
-
36. An apparatus statically determining interference between indirect very long instruction word (VLIW) instructions from a control graph having a plurality of nodes, the apparatus comprising:
-
means for determining live-out sets for the plurality of nodes, the live-out sets and the control graph defining a VLIW flow graph; means for determining an interference graph from the VLIW flow graph, the interference graph comprising VLIW nodes in which every VLIW node of the interference graph corresponds to one VLIW instruction; means for inserting an undirected edge into the interference graph between two VLIW nodes if the two VLIW instructions belong to a live-out set of the same node of the VLIW flow graph; and means for coloring the VLIW graph nodes such that adjacent VLIW nodes are colored in different colors and each color corresponds to a different VIM line.
-
Specification