A multiprocessor data processing system comprising, in addition to a first
and second processor having an respective first and second cache and a
main cache directory affiliated with the first processor's cache, a
secondary cache directory of the first cache, which contains a subset of
cache line addresses from the main cache directory corresponding to cache
lines that are in a first or second coherency state, where the second
coherency state indicates to the first processor that requests issued from
the first processor for a cache line whose address is within the secondary
directory should utilize super-coherent data currently available in the
first cache and should not be issued on the system interconnect.
Additionally, the cache controller logic includes a clear on barrier flag
(COBF) associated with the secondary directory, which is set whenever an
operation of the first processor is issued to said system interconnect. If
a barrier instruction is received by the first processor while the COBF is
set, the contents of the secondary directory are immediately flushed and
the cache lines are tagged with an invalid state.
Um sistema de processo de dados do multiprocessor que compreende, além a um primeiro e segundo processador que tem um primeiro e segundo esconderijo respectivo e um diretório principal affiliated com o esconderijo do primeiro processador, um diretório secundário do esconderijo do esconderijo do primeiro esconderijo, que contem um subconjunto da linha endereços do esconderijo do diretório principal do esconderijo que corresponde às linhas do esconderijo que estão em um primeiro ou segundo estado da coerência, onde o segundo estado da coerência indique ao primeiro processador que os pedidos emitiram do primeiro processador para uma linha do esconderijo cujo o endereço esteja dentro do diretório secundário deve utilizar os dados super-super-coherent atualmente disponíveis no primeiro esconderijo e não deve ser emitido no interconnect do sistema. Adicionalmente, a lógica do controlador do esconderijo inclui um espaço livre na bandeira da barreira (COBF) associada com o diretório secundário, que é ajustado sempre que uma operação do primeiro processador é emitida a interconnect dito do sistema. Se uma instrução da barreira estiver recebida pelo primeiro processador quando o COBF estiver ajustado, os índices do diretório secundário estão nivelados imediatamente e as linhas do esconderijo são etiquetadas com um estado inválido.