A coherency technique for multiprocessor systems in which threads perform
atomic read or atomic write transactions pursuant to memory-to-memory copy
instructions or memory-to-memory compare-and-exchange instructions.
Although the source reads and target writes are each atomic, the
instruction is not required to be atomic from the read through the write
operation. Accordingly, once a first thread reads source data pursuant to
a read, for example, it may allow other threads to access that data prior
to completing its own target write. The data may include a version stamp.
After the first thread operates on the data, software may read in the
version stamp a second time. If the two version stamps agree, the results
of the thread's operation may be considered valid for lookup operations.
For a compare and exchange operation, a thread may read data from a source
location. Subsequently, the thread may read atomically a current copy of a
version stamp from a target address, compare it to a version of the same
version stamp obtained earlier, and, if the two version stamps agree,
write the source data to the target address.
Una tecnica di coerenza per i sistemi del multiprocessore in cui i filetti realizzano colta atomica o un atomico scrive le transazioni conforme alle istruzioni della copia di memoria-$$$-MEMORIA o la memoria-$$$-MEMORIA confront-e-scambia le istruzioni. Anche se la fonte legge e l'obiettivo scrive è ciascuno atomico, l'istruzione non è richiesta per essere atomica dal colto con il funzionamento di scrittura. Di conseguenza, una volta che un primo filetto legge i dati di fonte conforme ad una colta a, per esempio, può permettere che altri filetti accedano a che i dati prima del completare il relativo proprio obiettivo scrivano. I dati possono includere un bollo di versione. Dopo che il primo filetto funzioni sopra i dati, il software può leggere dentro il bollo di versione una seconda volta. Se i due bolli di versione accosentono, i risultati del funzionamento del filetto possono essere considerati validi per i funzionamenti di occhiata. Per un funzionamento di scambio e di confront, un filetto può dati protetti da una posizione di fonte. Successivamente, il filetto può leggere atomico una copia corrente di un bollo di versione da un indirizzo dell'obiettivo, lo confronta ad una versione dello stesso bollo di versione ottenuto più presto e, se i due bolli di versione accosentono, redige i dati di fonte all'indirizzo dell'obiettivo.