US 11,748,109 B2
System and method for implementing strong load ordering in a processor using a circular ordering ring
David A. Carlson, Haslet, TX (US); Shubhendu S. Mukherjee, Southborough, MA (US); and Wilson P. Snyder, II, Holliston, MA (US)
Assigned to Marvell Asia Pte, Ltd., Singapore (SG)
Filed by Marvell Asia Pte, Ltd., Singapore (SG)
Filed on Dec. 2, 2022, as Appl. No. 18/61,164.
Application 18/061,164 is a continuation of application No. 17/587,719, filed on Jan. 28, 2022, granted, now 11,550,590.
Application 17/587,719 is a continuation of application No. 16/525,519, filed on Jul. 29, 2019, granted, now 11,269,644, issued on Mar. 8, 2022.
Prior Publication US 2023/0099730 A1, Mar. 30, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/38 (2018.01); G06F 12/0891 (2016.01); G06F 9/30 (2018.01); G06F 11/07 (2006.01); G06F 12/0864 (2016.01)
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
OG exemplary drawing
 
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.