One embodiment of the present invention provides a system that enforces
dependencies between memory references within a load store unit (LSU) in a
processor. When a write request is received in the load store unit, the
write request is loaded into a store buffer in the LSU. The write request
may include a "watch address" specifying that a subsequent load from the
watch address cannot occur before the write request completes. Note that
the watch address is not necessarily the same as the destination address
of the write operation. When a read request is received in the load store
unit, the read request is loaded into a load buffer of the LSU. The system
determines if the read request is directed to the same address as a
matching watch address in the store buffer. If so, the system waits for
the write request associated with the matching watch address to complete
before completing the read request. In one embodiment of the present
invention, if the read request is directed to the same address as a
matching write request in the store buffer, the system completes the read
request by returning a data value contained in the matching write request
without going out to memory. In one embodiment of the present invention,
the system provides an executable code write instruction that specifies
the watch address.
Één belichaming van de onderhavige uitvinding verstrekt een systeem dat gebiedsdelen tussen geheugenverwijzingen binnen een eenheid van de ladingsopslag (LSU) in een bewerker afdwingt. Wanneer schrijf wordt het verzoek ontvangen in de eenheid van de ladingsopslag, schrijf het verzoek in een opslagbuffer in LSU wordt geladen. Schrijf het verzoek een "horlogeadres" kan omvatten specificerend dat een verdere lading van het horlogeadres niet kan voorkomen alvorens schrijf het verzoek voltooit. Merk op dat het horlogeadres niet noodzakelijk het zelfde is als het bestemmingsadres van verrichting schrijft. Wanneer een gelezen verzoek in de eenheid van de ladingsopslag wordt ontvangen, wordt het gelezen verzoek geladen in een ladingsbuffer van LSU. Het systeem bepaalt als het gelezen verzoek aan het zelfde adres zoals een passend horlogeadres in de opslagbuffer wordt geleid. Als zo, wacht het systeem op schrijft verzoek verbonden aan het passende te voltooien horlogeadres alvorens het gelezen verzoek te voltooien. In één belichaming van de onderhavige uitvinding, als het gelezen verzoek aan het zelfde adres wordt geleid dat een aanpassing verzoek in de opslagbuffer schrijft, voltooit het systeem het gelezen verzoek door een gegevenswaarde terug te keren in de aanpassing schrijft verzoek zonder het uitgaan aan geheugen. In één belichaming van de onderhavige uitvinding, verstrekt het systeem een uitvoerbare code instructie schrijft die het horlogeadres specificeert.