Data processing system having an external instruction set and an internal instruction set
AssigneeArm Limited
InventorsAndrew Christopher Rose, Krisztian Flautner
Life of this patent
Estimating the term…
Abstract
There is provided a system having an execution core operable to execute internal instructions. A translation buffer is operable to store a plurality of internal instruction blocks of one or more internal instructions where the internal instruction blocks are a dynamic translation of respective external instruction blocks of one or more external instructions. A remapper is responsive to an execution request for an external instruction that is within one of said external instruction blocks to identify a corresponding internal instruction block stored within said translation buffer. Thus one or more internal instructions from said corresponding internal instruction block can be supplied to execution core.
Claims58
Apparatus for processing data, said apparatus comprising:
- (i) an execution core for executing internal instructions;
- (ii) a translation buffer for storing a plurality of internal instruction blocks of one or more internal instructions, said internal instruction blocks comprising a dynamic translation of respective external instruction blocks of one or more external instructions;
- (iii) a remapper, responsive to an execution request for an external instruction that is within one of said external instruction blocks, for identifying a corresponding internal instruction block stored within said translation buffer and for supplying one or more internal instructions from said corresponding internal instruction block to said execution core, said remapper for storing in a remapper memory mapping data identifying a mapping between an address of an external instruction block and an address of a corresponding internal instruction block within said translation buffer;
- and said remapper memory is divided into a plurality of remapper memory portions each memory portion associated with a respective translation buffer portion within said translation buffer and at least one of said remapper memory portions stores a plurality of mappings comprising at least one mapping for an external instruction block comprising a plurality of external instructions, only one of said remapper memory portions receives newly generated mapping data until said associated translation buffer portion no longer has free space to accept newly generated internal instruction blocks whereupon another of said remapper memory portions is selected and cleared and newly generated mapping data is stored therein with newly generated internal instruction blocks being stored in an associated translation buffer portion.
A method of processing data, said method comprising:
- (i) storing within a translation buffer a plurality of internal instruction blocks of one or more internal instructions, said internal instruction blocks being a dynamic translation of respective external instruction blocks of one or more external instructions;
- (ii) in response to an execution request for an external instruction that is within one of said external instruction blocks, identifying a corresponding internal instruction block stored within said translation buffer;
- (iii) supplying one or more internal instructions from said corresponding internal instruction block to an execution core operable to execute internal instructions;
- and
- (iv) storing in a remapper memory, mapping data identifying a mapping between an address of an external instruction block and an address of a corresponding internal instruction block within said translation buffer, wherein said remapper memory is divided into a plurality of remapper memory portions each associated with a respective translation buffer portion within said translation buffer and at least one of said remapper memory portions stores a plurality of mappings comprising at least one mapping for an external instruction block comprising a plurality of external instructions, and wherein only one of said remapper memory portions serves to receive newly generated mapping data until said associated translation buffer portion no longer has free space to accept newly generated internal instruction blocks whereupon another of said remapper memory portions is selected and cleared and newly generated mapping data is stored therein with newly generated internal instruction blocks being stored in an associated translation buffer portion.
Dependencies are inferred from the claim text.