Patent ID: 7761691
Filing Date: 2010-07-20
Classification: G06F

Abstract:
1. A method for allocating registers for clustered digital signal processors that have a plurality of clusters, each of the plurality of clusters having at least two functional units, a first register file, a second register file and a third register file, the first register file having a first unit, a second unit and one single set of access ports shared by the functional units, the method comprising: generating a plurality of instructions for programming codes; assigning a plurality of virtual registers to each of the first register file and the second register file and the third register file so as to build an initial register file assignment map; performing a simulated annealing process to the register file assignment map, the step of performing comprising: making at least one change in the register file assignment map; performing a schedule process to calculate a temporary schedule with a temporary length for the plurality instructions, wherein the schedule process comprises determining whether an execution of the instruction requires data to be read from the first and second units of the first register file is true, generating at least one additional virtual register assigned to the second unit of the first register file so as to receive data transferred from the first unit of the first register file, generating a copying instruction so as to transfer data from the first unit to the second unit of the first register file, determining when a prior operation cycle is available to perform the step of generating the copying instruction, scheduling the copying instruction in the prior operation cycle, and scheduling the instruction after the generated copying instruction; and allocating the plurality of virtual registers to the first, second and third register files according to the register assignment map.