Retirement serialisation of status register access operations
First Claim
1. Apparatus for executing a stream of program instructions, said apparatus comprising:
- plurality of processing pipelines including a special register pipeline configured to respond to a status access instruction to perform a status register access operation to a status register configured to store at least one state variable;
dispatch queue circuitry configured to store a dispatch queue of undispatched program instructions awaiting dispatch to one of said plurality of pipelines;
commit queue circuitry configured to store a commit queue of uncommitted program instructions awaiting a determination to be permitted to complete processing;
result queue circuitry configured to store a result queue of unretired program instructions yet to update architectural state variables; and
access timing control circuitry coupled to said special purpose pipeline, said commit queue circuitry and said result queue circuitry, said access timing control circuitry being configured such that, when said status access instruction is issued to said special register pipeline and while program instructions continue to be dispatched from said dispatch queue, said access timing control circuitry;
(i) controls said commit queue circuitry such that no program instruction succeeding in program order said status access instruction within said stream of program instructions is permitted to complete processing;
(ii) detects from said result queue circuitry a trigger state when all program instruction preceding in program order said status access instruction within said stream of program instructions have performed any updates to architectural state variables of said apparatus; and
(iii) upon detection of said trigger state, triggers said special register pipeline to perform said status register access operation.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor 2 for performing out-of-order execution of a stream of program instructions includes a special register access pipeline for performing status access instructions accessing a status register 20. In order to serialise these status access instructions relative to other instructions within the system access timing control circuitry 32 permits dispatch of other instructions to proceed but controls the commit queue and the result queue such that no program instructions in program order succeeding the status access instruction are permitted to complete until after a trigger state has been detected in which all program instructions preceding in program order the status access instruction have been performed and made any updates to the architectural state. This is followed by the performance of the status access instruction itself.
-
Citations
20 Claims
-
1. Apparatus for executing a stream of program instructions, said apparatus comprising:
-
plurality of processing pipelines including a special register pipeline configured to respond to a status access instruction to perform a status register access operation to a status register configured to store at least one state variable; dispatch queue circuitry configured to store a dispatch queue of undispatched program instructions awaiting dispatch to one of said plurality of pipelines; commit queue circuitry configured to store a commit queue of uncommitted program instructions awaiting a determination to be permitted to complete processing; result queue circuitry configured to store a result queue of unretired program instructions yet to update architectural state variables; and access timing control circuitry coupled to said special purpose pipeline, said commit queue circuitry and said result queue circuitry, said access timing control circuitry being configured such that, when said status access instruction is issued to said special register pipeline and while program instructions continue to be dispatched from said dispatch queue, said access timing control circuitry; (i) controls said commit queue circuitry such that no program instruction succeeding in program order said status access instruction within said stream of program instructions is permitted to complete processing; (ii) detects from said result queue circuitry a trigger state when all program instruction preceding in program order said status access instruction within said stream of program instructions have performed any updates to architectural state variables of said apparatus; and (iii) upon detection of said trigger state, triggers said special register pipeline to perform said status register access operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. Apparatus for executing a stream of program instructions, said apparatus comprising:
-
plurality of processing pipelines means for performing processing operations, said plurality of processing pipeline means including a special register pipeline means for performing a status register access operation to a status register means for storing at least one state variable, said status register access operation being performed in response to a status access instruction; dispatch queue means for storing a dispatch queue of undispatched program instructions awaiting dispatch to one of said plurality of pipelines means; commit queue means for storing a commit queue of uncommitted program instructions awaiting a determination to be permitted to complete processing; result queue means for storing a result queue of unretired program instructions yet to update architectural state variables; and access timing control means for controlling access timing, said access timing control means being coupled to said special purpose pipeline means, said commit queue means and said result queue means, and said access timing control means being configured such that, when said status access instruction is issued to said special register pipeline means and while program instructions continue to be dispatched from said dispatch queue means, said access timing control means; (i) controls said commit queue means such that no program instruction succeeding in program order said status access instruction within said stream of program instructions is permitted to complete processing; (ii) detects from said result queue means a trigger state when all program instruction preceding in program order said status access instruction within said stream of program instructions have performed any updates to architectural state variables of said apparatus; and (iii) upon detection of said trigger state, triggers said special register pipeline means to perform said status register access operation.
-
-
12. A method of executing a stream of program instructions, said method comprising the steps of:
-
performing processing operations using a plurality of processing pipelines, said plurality of processing pipelines including a special register pipeline configured to performing a status register access operation to a status register configured to store at least one state variable, said status register access operation being performed in response to a status access instruction; storing a dispatch queue of undispatched program instructions awaiting dispatch to one of said plurality of pipelines means; storing a commit queue of uncommitted program instructions awaiting a determination to be permitted to complete processing; storing a result queue of unretired program instructions yet to update architectural state variables; and controlling access timing, when said status access instruction is issued to said special register pipeline and while program instructions continue to be dispatched from said dispatch queue, by; (i) controlling said commit queue such that no program instruction succeeding in program order said status access instruction within said stream of program instructions is permitted to complete processing; (ii) detecting from said result queue a trigger state when all program instruction preceding in program order said status access instruction within said stream of program instructions have performed any updates to architectural state variable; and (iii) upon detection of said trigger state, triggering said special register pipeline to perform said status register access operation. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification