您的位置:首页 > 其它

Memory coherence

2015-09-01 18:32 465 查看
Memory coherence is an issue that affects the design of computer
systems in which two or more processors or cores share
a common area of memory.[1][2][3][4]
In a uniprocessor system
(whereby, in today's terms, there exists only one core), there isonly one processing element doing all the work and therefore only oneprocessing element that can read or write from/to a given memory location. As aresult, when a value is changed, all subsequent
read operations of thecorresponding memory location will see the updated value, even if it is cached.
Conversely, in multiprocessor (or multicore)
systems, there are two or more processing elementsworking at the same time, and so it is possible that they simultaneously accessthe same memory location. Provided none of them changes the data in thislocation, they can share it indefinitely and cache it as
they please. But assoon as one updates the location, the others might work on an out-of-date copythat, e.g., resides in their local cache. Consequently, some scheme is requiredto notify all the processing elements of changes to shared values; such ascheme
is known as a "memory coherence protocol", and if such aprotocol is employed the system is said to have a "coherent memory".
The exact nature and meaning of the memory coherency is determined by the consistency
model that the coherence protocol implements. In order to write correctconcurrent programs, programmers must be aware of the exact consistency modelthat is employed by their systems.
When implemented in hardware, the coherency protocol can, e.g., be directory
based or employ snooping (a.k.a.
"sniffing"). Examples of specific protocols are the MSI protocol and
its derivatives MESIMOSI and MOESI. https://en.wikipedia.org/wiki/Memory_coherence
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IC design