说到缓存,从大的方向上,我们分为硬件和软件。我们在平时的Java开发中用到的,redis、H2等内存数据库做缓存是在软件编程层面。另一方面,我们从存储器的层次结构来看计算机。
CPU还存在一种缓存行的概念,多CPU存在的情况下,L3级缓存到L1或者L2缓存时,会出现数据不一致的情况。所以,以前存在一种总线锁,去解决该问题。读取缓存以cache line 为基本单位,目前是64bytes,位于同一缓存行的两个不同数据,被两个不同CPU锁定,产生互相影响,产生伪共享问题。
常见的电脑的品牌因特尔CPU是通过MESI缓存一致性协议来实现数据一致性的。
所以现代计算机CPU的数据一致性通过缓存锁+总线锁(L3到L2之间可能出现不一致采用的锁)来实现的
PS:以上文章,仅用于学习笔记,分享知识,非商业用途,如有侵权,请联系我删除。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!