US 12,073,220 B2
Store-to-load forwarding correctness checks at store instruction commit
John G. Favor, San Francisco, CA (US); and Srivatsan Srinivasan, Cedar Park, TX (US)
Assigned to Ventana Micro Systems Inc., Cupertino, CA (US)
Filed by Ventana Micro Systems Inc., Cupertino, CA (US)
Filed on May 18, 2022, as Appl. No. 17/747,670.
Application 17/747,670 is a continuation in part of application No. 17/370,009, filed on Jul. 8, 2021, granted, now 11,481,332.
Application 17/747,670 is a continuation in part of application No. 17/351,946, filed on Jun. 18, 2021, granted, now 11,397,686.
Application 17/370,009 is a continuation in part of application No. 17/351,927, filed on Jun. 18, 2021, granted, now 11,416,406.
Application 17/747,670 is a continuation in part of application No. 17/351,927, filed on Jun. 18, 2021, granted, now 11,416,406.
Application 17/370,009 is a continuation in part of application No. 17/351,946, filed on Jun. 18, 2021, granted, now 11,397,686.
Application 17/351,927 is a continuation in part of application No. 17/315,262, filed on May 7, 2021, granted, now 11,416,400.
Application 17/370,009 is a continuation in part of application No. 17/315,262, filed on May 7, 2021, granted, now 11,416,400.
Application 17/351,946 is a continuation in part of application No. 17/315,262, filed on May 7, 2021, granted, now 11,416,400.
Application 17/747,670 is a continuation in part of application No. 17/315,262, filed on May 7, 2021, granted, now 11,416,400.
Claims priority of provisional application 63/331,487, filed on Apr. 15, 2022.
Claims priority of provisional application 63/271,934, filed on Oct. 26, 2021.
Prior Publication US 2022/0357955 A1, Nov. 10, 2022
Int. Cl. G06F 9/38 (2018.01); G06F 9/30 (2018.01)
CPC G06F 9/3838 (2013.01) [G06F 9/30043 (2013.01)] 29 Claims
OG exemplary drawing
 
1. A microprocessor, comprising:
a load queue;
a store queue; and
a load/store unit configured to:
during execution of a store instruction:
record store information to an entry of the store queue allocated to the store instruction, wherein the store information comprises store address and store size information about store data to be stored by the store instruction;
during execution of a load instruction that is younger in program order than the store instruction:
perform forwarding behavior with respect to forwarding or not forwarding the store data from the store instruction to the load instruction;
record load information to an entry of the load queue allocated to the load instruction, wherein the load information comprises load address and load size information about load data to be loaded by the load instruction; and
record the forwarding behavior in the load queue entry; and
during commit of the store instruction:
use the recorded store information and the recorded load information and the recorded forwarding behavior to check correctness of the forwarding behavior.