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 MESI, MOSI and MOESI. https://en.wikipedia.org/wiki/Memory_coherence
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 MESI, MOSI and MOESI. https://en.wikipedia.org/wiki/Memory_coherence
相关文章推荐
- 识设计大师(Logo Design Studio) v3.1.0.0 零售版 下载
- 【MaterialEditText】 Material Design 的 EditText 3ff8
- 开源硬件的价值评估
- 《Design patterns》读书笔记
- Eclipse中批量改变文件的默认打开方式
- CPU显卡内存与3DMAX渲染的关系
- Design Pattern 新解
- FPGA/IC设计入门
- 39_03_Linux集群系列之十三——高可用集群之corosync基础概念及安装配置(笔记)
- hyperv下安装centos
- 转 C ++书单
- 单例分享(循环引用及内存占用解决)
- 。「设计营商周」每年均吸引来自设计、商界、中小企及教育界等全球优秀的设计精英汇聚香港
- 「设计营商周论坛」,非常荣幸邀请到多位国际知名大师级讲者出席
- 命令模式--设计模式(一)
- 装饰模式-设计模式(三)
- Modular AngularJS App Design
- ITIL V3 角色的定义
- ITIL V3 角色的定义
- 设计模式-----Simple Factory(简单工厂模式)