Security of program executables and microprocessors based on compiler-architecture interaction
First Claim
Patent Images
1. A processor comprising:
- memory storing instructions for an instruction stream of a program executable, the instruction stream comprising blocks of instructions, a first block of instructions among the blocks of instructions having been encoded in a first instruction set architecture using a first technique, and a second block of instructions among the blocks of instructions having been encoded in a second instruction set architecture using a second technique, the first instruction set architecture being different from the second instruction set architecture, the instruction stream further comprising a first control instruction and a second control instruction, the first control instruction preceding the first block of instructions in the instruction stream, the first control instruction providing first information about the first technique, and the second control instruction preceding the second block of instructions in the instruction stream, the second control instruction providing second information about the second technique; and
a decoder to receive the instruction stream and to perform operations comprising;
receiving the first control instruction in the instruction stream;
obtaining, from the first control instruction, the first information about the first technique;
receiving the first block of instructions in the instruction stream;
using the first information to decode the first block of instructions to produce first decoded instructions;
outputting, in a pipeline of the processor, the first decoded instructions;
receiving the second control instruction in the instruction stream;
obtaining, from the second control instruction, the second information about the second technique;
receiving the second block of instructions in the instruction stream;
using the second information to decode the second block of instructions to produce second decoded instructions; and
outputting, in the pipeline of the processor, the second decoded instructions.
2 Assignments
0 Petitions
Accused Products
Abstract
A method, for use in a processor context, wherein instructions in a program executable are encoded with plural instruction set encodings. A method wherein a control instruction encoded with an instruction set encoding contains information about decoding of an instruction that is encoded with another instruction set encoding scheme. A method wherein instruction set encodings are randomly generated at compile time. A processor framework wherein an instruction is decoded during execution with the help of information provided by a previously decoded control instruction.
268 Citations
11 Claims
-
1. A processor comprising:
-
memory storing instructions for an instruction stream of a program executable, the instruction stream comprising blocks of instructions, a first block of instructions among the blocks of instructions having been encoded in a first instruction set architecture using a first technique, and a second block of instructions among the blocks of instructions having been encoded in a second instruction set architecture using a second technique, the first instruction set architecture being different from the second instruction set architecture, the instruction stream further comprising a first control instruction and a second control instruction, the first control instruction preceding the first block of instructions in the instruction stream, the first control instruction providing first information about the first technique, and the second control instruction preceding the second block of instructions in the instruction stream, the second control instruction providing second information about the second technique; and a decoder to receive the instruction stream and to perform operations comprising; receiving the first control instruction in the instruction stream; obtaining, from the first control instruction, the first information about the first technique; receiving the first block of instructions in the instruction stream; using the first information to decode the first block of instructions to produce first decoded instructions; outputting, in a pipeline of the processor, the first decoded instructions; receiving the second control instruction in the instruction stream; obtaining, from the second control instruction, the second information about the second technique; receiving the second block of instructions in the instruction stream; using the second information to decode the second block of instructions to produce second decoded instructions; and outputting, in the pipeline of the processor, the second decoded instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
Specification