CPC G06F 9/3834 (2013.01) [G06F 9/30043 (2013.01); G06F 9/30101 (2013.01); G06F 9/3826 (2013.01); G06F 9/3836 (2013.01); G06F 9/3861 (2013.01); G06F 11/0793 (2013.01); G06F 12/0864 (2013.01); G06F 12/0891 (2013.01)] | 42 Claims |
1. A system comprising:
a circular ordering ring configured to store entries corresponding to in-flight memory instructions associated with a program order;
scanning logic configured to scan the circular ordering ring to detect an ordering violation based on:
a) an age for a load instruction derived by combining a first portion of first sequence information with a second portion of the first sequence information, the first portion of the first sequence information stored in a first entry of the circular ordering ring that corresponds to the load instruction, the second portion of the first sequence information implied based on a respective location of the first entry in the circular ordering ring, and
b) an age for an other load instruction derived by combining a first portion of second sequence information with a second portion of the second sequence information, the first portion of the second sequence information stored in a second entry of the circular ordering ring that corresponds to the other load instruction, the second portion of the second sequence information implied based on a respective location of the second entry in the circular ordering ring; and
recovery logic configured, in response to the ordering violation detected, to cause data returned by the load instruction and the other load instruction to be returned consistent with execution according to the program order to satisfy strong load ordering.
|