聊聊计算机之Intel CPU的MESI协议
1.on-chip概念
on-chip:每个CPU有好几个物理核,它们分布在CPU上,称为on-chip
on-chip first cache:每个核内的一级缓存
on chip branch table:每个核内都有一个分支预测表
2.当CPU没有缓存的时候
chip没有缓存的时候,直接读写内存数据,不存在数据不一致的情况
3.当CPU加了一级缓存
i486处理器增加了L1缓存,往L1写入的同时,会写入内存,即“双写”,称为Write-through(直写)技术
4.使用MESI保证数据一致性
奔腾处理器增加了MESI技术。core1把数据写入了自己的L1缓存中,还未写入内存。此时core2读取此数据发现数据状态无效,那要怎么办?此时有2种机制可以保证数据一致性:
1.core2发现数据无效后,通知core1把数据写回(write-back)内存,当core1写回成功之后,再通知core2去内存获取最新数据。
2.core2发现数据无效后,通知core1,core1把数据写回内存的同时,把数据给到core2。通过内部总线RingBus实现,作用在L1上,类似于MQ
以上内容的总结来自Intel手册
聊聊计算机之Intel CPU的MESI协议的更多相关文章
- 多线程之:MESI-CPU缓存一致性协议
MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用 ...
- MESI-CPU缓存一致性协议
转http://blog.csdn.net/realxie/article/details/7317630 http://en.wikipedia.org/wiki/MESI_protocol MES ...
- CPU缓存一致性协议—MESI详解
MESI(也称伊利诺斯协议)是一种广泛使用的支持写回策略的缓存一致性协议,该协议被应用在Intel奔腾系列的CPU中. MESI协议中的状态 CPU中每个缓存行使用的4种状态进行标记(使用额外的两位b ...
- CPU高速缓存行与内存关系 及并发MESI 协议
先来一个整体图 一. 大致关系: CPU Cache --> 前端总线 FSB (下图中的Bus) --> Memory 内存 CPU 为了更快的执行代码.于是当从内存中读取数据时,并不是 ...
- C和C++中的volatile、内存屏障和CPU缓存一致性协议MESI
目录 1. 前言2 2. 结论2 3. volatile应用场景3 4. 内存屏障(Memory Barrier)4 5. setjmp和longjmp4 1) 结果1(非优化编译:g++ -g -o ...
- CPU高速缓存行与内存关系 及并发MESI 协议(转载)
原文链接 http://www.cnblogs.com/jokerjason/p/9584402.html 先来一个整体图 一. 大致关系: CPU Cache --> 前端总线 FSB (下图 ...
- 并发编程二、CPU多级缓存架构与MESI协议的诞生
前言: 文章内容:线程与进程.线程生命周期.线程中断.线程常见问题总结 本文章内容来源于笔者学习笔记,内容可能与相关书籍内容重合 偏向于知识核心总结,非零基础学习文章,可用于知识的体系建立,核心内容 ...
- 并发研究之CPU缓存一致性协议(MESI)
CPU缓存一致性协议MESI CPU高速缓存(Cache Memory) CPU为何要有高速缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU.这就造 ...
- 一篇文章让你明白CPU缓存一致性协议MESI
CPU高速缓存(Cache Memory) CPU为何要有高速缓存 CPU在摩尔定律的指导下以每18个月翻一番的速度在发展,然而内存和硬盘的发展速度远远不及CPU.这就造成了高性能能的内存和硬盘价格及 ...
随机推荐
- Collection集合和Collection集合常用功能
Collection集合常用功能 方法: boolean add(E e); 向集合中添加元素 boolean remove(E e); 删除集合中的某个元素 void clear(); 清空集合所有 ...
- Unbuntu VS Code启动时闪退暂时的解决方法
背景: 刚刚试着更新了操作系统,没更新成功,在下载系统更新的时候brave浏览器消失了,wps消失了,搜狗拼音输入法消失了.更新时,卡在Kernal Offset上,然后长按电源键再重启就好了.但是v ...
- 攻防世界MISC—进阶区21-30
21.easycap 得到一个pcap文件,协议分级统计,发现都是TCP协议 直接追踪tcp流,得到FLAG 22.reverseMe 得到一张镜面翻转的flag,放入PS中,图像-图像旋转-水平翻转 ...
- 常用类-Instant、DateTimeFormatter类的使用
一.Instant 我们所处的时间点是在东八区,Java中Instant所计算出来的时间是按本初子午线的时间来算的,与我们的时间相差8个小时,也就是说当我的北京时间是上午九点时,本初子午线的时间是凌晨 ...
- Java 浅做计算器
package www.nihao; import java.util.Scanner; public class counter { public static void main(String[] ...
- Active Backup for Business激活
依次执行 https://IP地址:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=1&account= ...
- [原创]树莓派CM4配置GPIO复用为i2c
1.简介 项目中需要控制各种外设的电源,正常应该是通过GPIO进行控制,但是树莓派CM4的GPIO管脚有限,因此需要使用i2c扩展IO 查阅CM4-datesheet发现GPIO22和GPIO23可以 ...
- Cube Stacking 来源:洛谷
题目 题目oj(洛谷) Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes ...
- js 设置滚动条位置为底部
if (document.getElementById("")) { document.getElementById("").scro ...
- git 生成key并添加key(Windows)
简介 一般来说,在项目代码拉取或者提交前都需要添加项目权限,除此之外也需要将对应设备的public key添加至对应的git上,因此需要生成public key 步骤 1.安装git插件(Window ...