Patent ID: 8621187
Filing Date: 2013-12-31
Classification: G06F

Abstract:
1. A method of converting a program of instructions for a programmable processor, the method comprising reordering a sequence of the instructions, whereby original instruction addresses are mapped to respective target addresses, the sequence comprising successive sub-sequences, the method comprising: mapping each sub-sequence of the sequence to addresses in a respective set of mutually disjoint ranges, separated by further ranges to which other ones of the sub-sequences are mapped, filling at least half of each of the disjoint ranges in the respective set of mutually disjoint ranges with instructions from the sub-sequence, providing address steps between the target addresses to which successive ones of the original instruction addresses are mapped for each sub-sequence, the address steps for the sub-sequence comprising first address steps within at least a first one of the mutually disjoint ranges and, between said first address steps, second address steps within at least a second one of the mutually disjoint ranges; and wherein the target addresses are computed based on a hierarchy with successive levels of cells, each cell corresponding to a respective set of ranges, cells at successively lower levels corresponding to sub-sets of ranges that are sub-sets of the sets of cells at higher levels, the cells in the hierarchy being associated with indices, the method comprising: providing sub-division information that defines the sets of ranges as a function of values of the indices; providing path information that defines respective ones of target addresses to which respective values of the indices map within the set of ranges of a lowest level cell; deriving a set of values of the indices for at least one of the original instruction addresses; accessing the sub-division information using the set of values of the indices to index the sub-division information; combining the accessed sub-division information from different levels to define the set of ranges of the lowest level cell for said at least one of the original instruction addresses, accessing the path information using the set of values of the indices to index the path information; using the accessed path information to select the target address for the at least one original instruction address within the set of ranges defined by combining the accessed sub-division information.