A processor employing a post-cache (LS2) buffer. Loads are stored into the
LS2 buffer after probing the data cache. The load/store unit snoops the
loads in the LS2 buffer against snoop requests received from an external
bus. If a snoop invalidate request hits a load within the LS2 buffer and
that load hit in the data cache during its initial probe, the load/store
unit scans the LS2 buffer for older loads which are misses. If older load
misses are detected, a synchronization indication is set for the load
misses. Subsequently, one of the load misses completes and the load/store
unit transmits a synchronization signal with the status for the load miss.
The processor synchronizes to the instruction corresponding to the load
miss, thereby discarding load hit which was subsequently snoop hit. The
discarding instructions are refetched and reexecuted, thereby causing the
load hit to reexecute subsequent to an earlier load miss. Load hits may
generally proceed ahead of load misses and strong memory ordering rules
may still be enforced.
Um processador que emprega um amortecedor do borne-esconderijo (LS2). As cargas são armazenadas no amortecedor LS2 após ter sondado o esconderijo dos dados. Os snoops que da unidade de load/store as cargas no LS2 protegem de encontro aos pedidos do snoop receberam de uma barra-ônibus externa. Se um snoop invalidate batidas do pedido uma carga dentro do amortecedor LS2 e essa batida da carga nos dados cache durante sua ponta de prova inicial, a unidade de load/store faz a varredura do amortecedor LS2 para umas cargas mais velhas que sejam falta. Se uma falta mais velha da carga for detectada, uma indicação da sincronização está ajustada para a falta da carga. Subseqüentemente, uma da falta da carga termina e a unidade de load/store transmite um sinal de sincronização com o status para a falta da carga. O processador sincroniza à instrução que corresponde à falta da carga, rejeitando desse modo a carga batida que era subseqüentemente batida do snoop. As instruções rejeitando são refetched e executaram, desse modo fazendo com que a batida da carga execute subseqüente a uma falta mais adiantada da carga. As batidas da carga podem geralmente proseguir antes de a falta da carga e as réguas requisitando da memória forte podem ainda ser reforçadas.