Counting events during the execution of one or more instructions in a
computer system may be accomplished by maintaining a non-speculative
counter for counting events occurring in non-speculative instructions, as
well as a separate speculative counter for counting events occurring in
speculative instructions. Event counters may be used to count individual
events occurring during the processing of instructions. When the
instruction has been completed, the amount in the event counter
corresponding to a particular event for that instruction is added to the
amount in the speculative counter corresponding to the event. Then, any
retirable instructions are retired. Once an instruction is retired, it is
no longer speculative, allowing the amount in the speculative counter to
be decremented and the amount in the non-speculative counter to be
incremented by the amount in any event counters corresponding to retirable
instructions. The speculative and non-speculative counters may then be
examined at any point in time to give a clear picture of the number of
times a specific event has occurred, even when instructions are executed
out-of-order.
De tellende gebeurtenissen tijdens de uitvoering van één of meerdere instructies in een computersysteem kunnen door het handhaven van een niet speculatieve teller voor het tellen van gebeurtenissen die in niet speculatieve instructies voorkomen, evenals een afzonderlijke speculatieve teller worden verwezenlijkt voor het tellen van gebeurtenissen die in speculatieve instructies voorkomen. De tellers van de gebeurtenis kunnen worden gebruikt om individuele gebeurtenissen te tellen die tijdens de verwerking van instructies voorkomen. Wanneer de instructie is voltooid, wordt het bedrag in de gebeurtenisteller die aan een bepaalde gebeurtenis voor die instructie beantwoordt aan het bedrag in de speculatieve teller toegevoegd die aan de gebeurtenis beantwoordt. Dan, worden om het even welke retirable instructies teruggetrokken. Zodra een instructie wordt teruggetrokken, is het niet meer speculatief, toestaand het bedrag in speculatief tegenovergesteld aan ben decremented en het bedrag in niet speculatief tegenovergesteld aan wordt verhoogd door het bedrag verzet zich in elk geval tegen het beantwoorden aan retirable instructies. De speculatieve en niet speculatieve tellers kunnen dan op om het even welk punt op tijd worden onderzocht om een duidelijk beeld van het aantal tijden te geven een specifieke gebeurtenis is voorgekomen, zelfs wanneer de instructies uitgevoerde uit-van-orde zijn.