Multiple instruction execution mode resource-constrained device
First Claim
1. A computer-based method comprising:
- receiving an instruction stream comprising a plurality of program units;
determining a frequency of use of program units in said instruction stream;
ordering said program units within said instruction stream by said frequency of use;
recoding said instruction stream to generate a modified instruction stream for execution on a resource-constrained device, wherein the modified instruction stream comprisesa plurality of short program unit call instructions,a program unit reference table wherein said program unit reference table includes a plurality of addresses of a first plurality of program units in said modified instruction stream, andwherein the program unit reference table is collocated in said modified instruction stream adjacent said first plurality of program units referenced by said plurality of addresses and between said first plurality of program units and a second plurality of program units in the modified instruction stream;
wherein each of said short program unit call instructions comprises an opcode and zero or more operands, said opcode comprising,a static portion which determines an instruction implementation, anda dynamic portion wherein content of the dynamic portion of the short program unit call instruction is used to obtain one of said plurality of addresses in said program unit reference table in order to jump to a called program unit of said first plurality of program units for execution of said called program unit; and
storing said modified instruction stream on a storage medium.
1 Assignment
0 Petitions
Accused Products
Abstract
A resource-constrained device comprises a processor configured to execute multiple instruction streams comprising multiple instructions having an opcode and zero or more operands. Each of the multiple instruction streams is associated with one of multiple instruction execution modes having an instruction set comprising multiple instruction implementations. At least one of the multiple instruction implementations is configured to change the processor from a first instruction execution mode to a second instruction execution mode. The processor comprises an instruction fetcher configured to fetch an instruction from one of the multiple instruction streams based at least in part upon a current instruction execution mode.
46 Citations
30 Claims
-
1. A computer-based method comprising:
-
receiving an instruction stream comprising a plurality of program units; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream by said frequency of use; recoding said instruction stream to generate a modified instruction stream for execution on a resource-constrained device, wherein the modified instruction stream comprises a plurality of short program unit call instructions, a program unit reference table wherein said program unit reference table includes a plurality of addresses of a first plurality of program units in said modified instruction stream, and wherein the program unit reference table is collocated in said modified instruction stream adjacent said first plurality of program units referenced by said plurality of addresses and between said first plurality of program units and a second plurality of program units in the modified instruction stream; wherein each of said short program unit call instructions comprises an opcode and zero or more operands, said opcode comprising, a static portion which determines an instruction implementation, and a dynamic portion wherein content of the dynamic portion of the short program unit call instruction is used to obtain one of said plurality of addresses in said program unit reference table in order to jump to a called program unit of said first plurality of program units for execution of said called program unit; and storing said modified instruction stream on a storage medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-based method for transforming an instruction stream to a modified instruction stream for execution on a resource-constrained device comprising:
-
receiving an instruction stream comprising a plurality of program units; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream by said frequency of use; recoding said instruction stream to generate a modified instruction stream for execution on a resource-constrained device, wherein the modified instruction stream comprises a plurality of short program unit call instructions, a program unit reference table wherein said program unit reference table includes a plurality of addresses of a first plurality of program units in said modified instruction stream, and wherein the program unit reference table is collocated in said modified instruction stream adjacent said first plurality of program units referenced by said plurality of addresses and between said first plurality of program units and a second plurality of program units in said modified instruction stream; wherein each of said short program unit call instructions comprises an opcode and zero or more operands, said opcode comprising a static portion which determines an instruction implementation, and a dynamic portion for use in accessing said addresses in said program unit reference table, wherein content of the dynamic portion of the short program unit call instruction is decoded during execution and an address is obtained from said program unit reference table, to jump to a called program unit of said first plurality of program units for execution of said called program unit, based at least in part on the dynamic portion; and storing said modified instruction stream on a storage medium for execution by said resource-constrained device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium, including instructions stored thereon for transforming an instruction stream to a modified instruction stream for execution on a resource-constrained device, said instructions, when read and executed by one or more processors, cause the one or more processors to perform steps comprising:
-
receiving an instruction stream comprising a plurality of program units; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream by said frequency of use; recoding said instruction stream to generate a modified instruction stream for execution on a resource-constrained device, wherein the modified instruction stream comprises a plurality of short program unit call instructions, a program unit reference table wherein said program unit reference table includes a plurality of addresses of a first plurality of program units in said modified instruction stream, and wherein the program unit reference table is collocated in said modified instruction stream adjacent said first plurality of program units referenced by said plurality of addresses and between said first plurality of program units and a second plurality of program units in said modified instruction stream; wherein each of said short program unit call instructions comprises an opcode and zero or more operands, said opcode comprising a static portion which determines an instruction implementation, and a dynamic portion for use in accessing said addresses in said program unit reference table, wherein content of the dynamic portion of the short program unit call instruction is decoded during execution and an address is obtained from said program unit reference table, to jump to a called program unit of said first plurality of program units for execution of said called program unit, based at least in part on the dynamic portion; and storing said modified instruction stream on a storage medium for execution by said resource-constrained device. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer-based method comprising:
-
receiving an instruction stream comprising a plurality of program units; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream by said frequency of use; recoding said instruction stream to generate a modified instruction stream for execution on a resource-constrained device, wherein the modified instruction stream comprises a plurality of short program unit call instructions, a plurality of program unit reference tables wherein each said program unit reference table includes a corresponding plurality of addresses of a corresponding plurality of program units in said modified instruction stream, and wherein each said program unit reference table is collocated in said modified instruction stream adjacent the corresponding plurality of program units referenced by said corresponding plurality of addresses in said each program unit reference table and between said corresponding plurality of program units and another plurality of program units in the modified instruction stream; wherein each of said short program unit call instructions comprises an opcode and zero or more operands, said opcode comprising, a static portion which determines an instruction implementation, and a dynamic portion wherein content of the dynamic portion of the short program unit call instruction is used to obtain one of said corresponding plurality of addresses in order to jump to a called program unit of said corresponding plurality of program units for execution of said called program unit; and storing said modified instruction stream on a storage medium. - View Dependent Claims (29, 30)
-
Specification