Multiple instruction execution mode resource-constrained device
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.
-
Citations
35 Claims
-
1-20. -20. (canceled)
-
21. A computer-based method for transforming an instruction stream to a transformed instruction stream for execution on a resource-constrained device comprising:
-
receiving an instruction stream comprising executable code; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream based at least in part on said frequency of use; recoding program unit call instructions in said instruction stream to use an optimized program unit call instruction to call program units used more frequently, said optimized program unit call instruction comprising an opcode and zero or more operands, coding of said opcode comprising a static portion and a dynamic portion, said dynamic portion for use in accessing an entry within a program unit reference table, said entry for storing a reference of one of said program units, wherein said ordering and recoding results in said transformed instruction stream; and storing said transformed instruction stream on a, storage medium for execution by said resource-constrained device. - View Dependent Claims (22, 23, 24)
-
-
25. A method for executing an instruction on a resource-constrained device comprising:
-
receiving a program unit call instruction, on said resource-constrained device, said instruction comprising an opcode and zero or more operands, said opcode comprising a dynamic portion and a static portion; decoding, on said resource constrained device, said dynamic portion of said instruction; obtaining, on said resource-constrained device, an address from a program unit reference table based at least in part on said dynamic portion; and jumping, on said resource-constrained to device, to said address for continuing execution.
-
-
26. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for transforming an instruction stream to a transformed instruction stream for execution on a resource-constrained device, said method comprising:
-
receiving an instruction stream comprising executable code; determining a frequency of use of program units in said instruction stream; ordering said program units within said instruction stream based at least in part on said frequency of use; recoding program unit call instructions in said instruction stream to use an optimized program unit call instruction to call program units used more frequently, said optimized program unit call instruction comprising an opcode and zero or more operands, coding of said opcode comprising a static portion and a dynamic portion, said dynamic portion for use in accessing an entry within a program unit reference table, said entry for storing a reference of one of said program units, wherein said ordering and recoding results in said transformed instruction stream; and storing said transformed instruction stream on a storage medium for execution by said resource-constrained device.
-
-
27. A method of executing instructions on a resource-constrained device comprising:
-
fetching a first instruction comprising a first opcode and zero or more operands, an opcode coding of said first opcode comprising a first static portion and a first dynamic portion, said first dynamic portion for use in referencing an unrestricted entry points table entry in an unrestricted entry points table stored in a memory of said resource-constrained device, wherein said unrestricted entry points table entry references a start of an unrestricted program unit in an unrestricted instruction stream stored in a memory of said resource-constrained device; executing said first dynamic portion to reference said unrestricted entry points table entry; and executing said unrestricted program unit referenced by said unrestricted entry points table entry. - View Dependent Claims (28, 29, 30)
-
-
31. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method comprising:
-
generating a first instruction comprising a first opcode and zero or more operands, an opcode coding of said first opcode comprising a first static portion and a first dynamic portion, said first dynamic portion for use in referencing an unrestricted entry points table entry in an unrestricted entry points table stored in a memory, wherein said unrestricted entry points table entry references a start of an unrestricted program unit in an unrestricted instruction stream; and storing said opcode coding of said first opcode, said unrestricted entry points table including said unrestricted entry points table entry, and said unrestricted instruction stream in a memory for execution on a resource-constrained device, wherein said first dynamic portion is used in referencing said unrestricted entry points table entry upon execution of said first instruction on said resource-constrained device. - View Dependent Claims (32)
-
-
33. A resource-constrained device comprising:
-
an application program; a processor for executing said application program; and a memory storing data for access by said application program, said memory including; an unrestricted entry points table; a restricted instruction stream; an unrestricted instruction stream; and an instruction dispatch table having one or more entries for a first dynamic instruction of said application program and one or more entries for a second dynamic instruction of said application program wherein, a static portion of an opcode coding determining an association between an opcode and an instruction; a dynamic portion of said opcode coding for said first dynamic instruction referencing an entry in said unrestricted entry points table wherein said entry references a start of a program unit in said unrestricted instruction stream; a dynamic portion of said opcode coding for said second dynamic instruction referencing a start of a program unit in said restricted instruction stream; and
further wherein,each of said instruction streams comprises a plurality of instructions, each of said instruction streams associated with one of a plurality of instruction execution modes having an instruction set comprising a plurality of instruction implementations; said first dynamic portion for said first dynamic instruction is used in referencing said unrestricted entry points table entry upon execution of said first dynamic instruction on said processor; and said first dynamic portion for said second dynamic instruction is used in referencing a start of the restricted program unit upon execution of said second dynamic instruction on said processor. - View Dependent Claims (34, 35)
-
Specification