【并发编程原理】一、缓存行以及MESI协议

本文介绍了缓存行的概念,包括CPU的多级缓存机制和缓存行的读写单位。接着详细讲解了MESI协议,用于解决多核CPU并发编程时的共享变量一致性问题,描述了其四种状态以及状态转换过程,揭示了CPU在实际实现中为何不能严格遵循强一致性原则。
摘要由CSDN通过智能技术生成

1. 缓存行的概念

1.1 CPU的缓存机制

我们都知道在现代计算机的架构中,CPU负责执行命令,主存负责存储运行时所需的数据。由于CPU执行命令的效率要远高于主存对数据的读写效率。所以如果让CPU直接从主存中读写数据,会造成CPU因为等待主存完成数据读写而大量空转。

为了解决这个问题,现代CPU引入了多级缓存机制(L1,L2,L3…)。我们以写数据举例,在此机制下,CPU不再直接往主存里写数据,而是往离它最近且读写性能最强的L1缓存里写数据。随后再由其他的控制单元负责将这些数据一级一级的转存,直到最后写进主存里。之所以缓存还要分多级,主要是CPU执行效率和主存的读写性能差距实在太大,而能匹配上CPU执行效率的存储介质又非常的贵,所以和CPU直接交互的L1缓存通常只有很小的存储空间。那为了降低存储介质的成本,同时又不对CPU执行命令的效率造成太大影响,所以只能加多几级空间较大但性能较差(相对与L1较差,但依然明显优于主存)的缓存,也就是常见的用空间换时间的做法。

在这里插入图片描述

如果对CPU的多级缓存机制感兴趣大家可以在网上检索一些相关资料,它并不是我们在这篇文档谈论的重点

1.2 缓存行

除了通过CPU的多级缓存机制来提高CPU执行效率外,现代CPU通常在读某一数据时,会将该数据附近相连的一块内存区域一并读入到缓存中,而不是仅仅读取某一变量,这样的一个内存区域被称为缓存行。既然读数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值