Data processing device, method of executing a program and method of compiling
First Claim
1. A data processing device having an instruction set with memory access instructions, the device comprising a circuit for correcting an effect of executing the memory access instructions out of order with respect to one another, the device comprising a pipeline for instruction execution, the device comprising:
- a detector for detecting whether a same memory location is addressed by a first and second memory address used to access memory for a first and second memory access instruction that are processing at a predetermined relative distance in the pipeline respectively;
a correction circuit for modifying data handling in a pipeline stage processing the first memory access instruction when the detector signals said addressing of the same memory location and for causing the first and/or second memory access instruction programs a command to compensate said effect of out of order execution of the first memory access instruction with respect to said second memory access instruction.
5 Assignments
0 Petitions
Accused Products
Abstract
A data processing device has a circuit for correcting an effect of executing memory access instructions out of order with respect to one another in a pipeline. A detector detects whether a same memory location is addressed by a first and second memory address used to access memory for a first and second memory access instruction that are processing at a predetermined relative distance in the pipeline respectively. A correction circuit modifies data handling in a pipeline stage processing the first memory access instruction when the detector signals the addressing of the same memory location and the first and/or second memory access instruction programs a command to compensate said effect of out of order execution of the first memory access instruction with respect to said second memory access instruction.
113 Citations
12 Claims
-
1. A data processing device having an instruction set with memory access instructions, the device comprising a circuit for correcting an effect of executing the memory access instructions out of order with respect to one another, the device comprising a pipeline for instruction execution, the device comprising:
-
a detector for detecting whether a same memory location is addressed by a first and second memory address used to access memory for a first and second memory access instruction that are processing at a predetermined relative distance in the pipeline respectively;
a correction circuit for modifying data handling in a pipeline stage processing the first memory access instruction when the detector signals said addressing of the same memory location and for causing the first and/or second memory access instruction programs a command to compensate said effect of out of order execution of the first memory access instruction with respect to said second memory access instruction. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of executing a program in a data processing device, the method comprising
pipeline execution of instructions from the program in an instruction execution pipeline; -
detection whether a first and second memory access instruction in a first and a second predetermined stage of the pipeline address a same memory location;
modifying data handling by the first memory access instruction in the pipeline if said addressing the same memory location is detected by causing the first and/or second memory access instruction programs a command to compensate an effect of out of order execution of the first memory access instruction with respect to said second memory access instruction. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method of compiling a program for a pipelined processor, wherein the processor has an instruction set with a normal version and an out of order version of a first memory access instruction, the out of order version commanding modified execution of the first memory access instruction or a second memory access instruction, so as to compensate an effect of out of order execution of the first and second memory access instruction, in case the first and second memory access instruction are at a predetermined position relative to one another in the pipeline and address a same memory location, the method comprising
receiving a program with memory access instructions and information specifying an order of execution of the memory access instructions; -
scheduling an instruction execution sequence, wherein pairs of memory access instructions are scheduled out of order with respect to one another, at a distance of a number of instruction cycles that is smaller than a length of the pipeline;
selecting a version among the versions of the memory access instructions, depending on whether the memory access instructions are part of such pairs. - View Dependent Claims (12)
-
Specification