A methodology for designing a distributed shared-memory system, which can
incorporate adaptation or selection of cache protocols during operation,
guarantees semantically correct processing of memory instructions by the
multiple processors. A set of rules includes a first subset of "mandatory"
rules and a second subset of "voluntary" rules such that correct operation
of the memory system is provided by application of all of the mandatory
rules and selective application of the voluntary rules. A policy for
enabling voluntary rules specifies a particular coherent cache protocol.
The policy can include various types of adaptation and selection of
different operating modes for different addresses and at different caches.
A particular coherent cache protocol can make use of a limited capacity
directory in which some but not necessarily all caches that hold a
particular address are identified in the directory. In another coherent
cache protocol, various caches hold an address in different modes which,
for example, affect communication between a cache and a shared memory in
processing particular memory instructions.
Une méthodologie pour concevoir un système réparti de partager-mémoire, qui peut incorporer l'adaptation ou le choix des protocoles de cachette lors du fonctionnement, garantit sémantiquement le traitement correct des instructions de mémoire par les processeurs multiples. Un ensemble de règles inclut un premier sous-ensemble de règles "obligatoires" et un deuxième sous-ensemble de "volontaire" règne tels que l'opération correcte du système de mémoire est fournie par l'application de toutes les règles obligatoires et l'application sélective des règles volontaires. Une politique pour permettre des règles volontaires indique un protocole logique particulier de cachette. La politique peut inclure de divers types d'adaptation et de choix de différents modes de fonctionnement pour différentes adresses et à différentes cachettes. Un protocole logique particulier de cachette peut se servir d'un annuaire limité de capacité dans lequel une partie mais pas nécessairement toutes les cachettes qui tiennent une adresse particulière est identifiée dans l'annuaire. Dans un autre protocole logique de cachette, les diverses cachettes tiennent une adresse dans différents modes qui, par exemple, affectent la communication entre une cachette et une mémoire partagée dans des instructions particulières de traitement de mémoire.