Method and system for generating object code to facilitate predictive memory retrieval
AssigneeMicron Technology, Inc.
InventorDean A. Klein
Life of this patent
Estimating the term…
Abstract
A method and system are described for generating reference tables in object code which specify the addresses of branches, routines called, and data references used by routines in the code. In a suitably equipped processing system, the reference tables can be passed to a memory management processor which can open the appropriate memory pages to expedite the retrieval of data referenced in the execution pipeline. The disclosed method and system create such reference tables at the beginning of each routine so that the table can be passed to the memory management processor in a suitably equipped processor. Resulting object code also allows processors lacking a suitable memory management processor to skip the reference table, preserving upward compatibility.
Claims65
A method for providing an address reference table for a segment of computer executed programming instructions, the method comprising:
- parsing instructions in the segment of programming instructions;
- identifying at least one address reference in at least one of the parsed instructions;
- reserving an entry in the reference table for the identified address reference;
- and
- inserting in the reference table a corresponding memory address for the address reference so that the reference table lists the corresponding address for each address reference invoked by the segment of programming instructions during execution by a computer.
A method for providing an address reference table for a segment of computer executed programming instructions, the method comprising:
- parsing instructions in the segment of programming instructions;
- identifying at least one address reference in at least one of the parsed instructions;
- reserving an entry in the reference table for the identified address reference;
- isolating the reference table from the segment of programming instructions;
- and
- adding a reference table identifier to the reference table, the reference table identifier signifying that the reference table is not comprised of programming instructions;
- and
- inserting in the reference table a corresponding memory address for the address reference so that the reference table lists the corresponding address for each address reference invoked by the segment of programming instructions during execution by a computer.
A method for translating object code from source code, the method comprising:
- separating individual segments of computer executed programming instructions, identifying at least one segment of programming instructions;
- providing an address reference table, comprising:
- parsing instructions in the segment of programming instructions;
- identifying at least one address reference in at least one of the parsed instructions;
- reserving an entry in the reference table for the identified address reference;
- and
- inserting in the reference table a corresponding memory address for the address reference;
- and
- translating source code instructions into object code instructions so that the reference table lists the corresponding address for an address reference invoked by the segment of programming instructions during execution by a computer.
A system for providing an address reference table for a segment of programming instructions, the segment of programming instructions for execution by a computer having a processor, the system comprising:
- a parser, the parser parsing instructions for an address reference in at least one segment of programming instructions;
- a reference table generator coupled with the parser, the reference table generator creating a reference table including an entry for the address reference;
- and
- an address reference provider coupled with the reference table generator, the address reference provider inserting in the address reference table a corresponding memory address for the address reference so that the reference table lists the corresponding address for an address reference invoked by the segment of programming instructions when executed by the computer.
A system for generating object code from source code, the source code having at least one segment of programming instructions for execution by a computer having a processor, the system comprising:
- a segment separator, the segment separator identifying at least one segment of programming instructions from the source code;
- an address reference table generator operable to create a table including the address reference, the reference table generator comprising:
- a parser, the parser parsing instructions for an address reference in at least one programming segment of a source code;
- a reference table generator coupled with the parser, the reference table generator creating a reference table including an entry for the address reference;
- and
- an address reference provider coupled with the reference table generator, the address reference provider inserting in the address reference table a corresponding memory address for the address reference, the reference table listing the corresponding address for an address reference invoked by the segment of programming instructions when executed by the computer;
- an external reference identifier coupled with the address reference table generator, the external reference identifier receiving the segment of programming instructions from the source code and identifying in the segment of programming instructions any references to targets outside the segment of programming instructions;
- a translator coupled with the external reference identifier, the translator converting lines of respective lines of source code into respective lines of object code;
- and
- an external reference resolver coupled with the translator, the external reference resolver resolving any references to targets outside the segment of programming instructions that the reference table provides a listing of a memory address for the address reference.
Dependencies are inferred from the claim text.