`
weigang.gao
  • 浏览: 488347 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

CPU高速缓存行

 
阅读更多

       CPU为了更快的执行代码。于是当从内存中读取数据时,并不是只读自己想要的部分。而是读取足够的字节来填入高速缓存行。根据不同的CPU,高速缓存行大小不同。如X86是32 BYTES ,而 ALPHA 是64 BYTES。并且始终在第32个字节或64个字节处对齐。这样,当CPU访问相邻的数据时,就不必每次都从内存中读取,提高了速度。因为访问内存要比访问高速缓存用的时间多得多。

 

但是,多核发达的年代。情况就不那么简单了。试想下面这样一个情况。

1,CPU1读取了一个字节,以及它和它相邻的字节被读入CPU1的高速缓存。

2,CPU2做了上面同样的工作。这样CUP1,CPU2的高速缓存拥有同样的数据。

3,CPU1修改了那个字节,被修改后,那个字节被放回CPU1的高速缓存行。但是该信息并没有被写入RAM。

4,CPU2访问该字节,但由于CPU1并未将数据写入RAM,导致了数据不同步。

 

为了解决这个问题,芯片设计者制定了一个规则。当一个CPU修改高速缓存行中的字节时,计算机中的其它CPU会被通知,它们的高速缓存将被视为无效。于是,在上面的情况下,CPU2发现自己的高速缓存中的数据已无效,CPU1将立即把自己的数据写回RAM,然后CPU2重新读取改数据。可以看出,高速缓存行在多处理器上会导致一些不一致。

 

从上面的情况可以看出,在设计数据结构的时候,应该尽量将只读数据与读写数据分开,并尽量将同一时间访问的数据组合在一起。这样CPU能一次将需要数据读入。

 

参考:http://blog.csdn.net/boyuejiang/article/details/8908335

分享到:
评论

相关推荐

    每个程序员都应该了解的_CPU_高速缓存

    **CPU高速缓存详解** 在计算机系统中,CPU(中央处理器)是执行程序指令和处理数据的核心部件。为了提高计算效率,现代CPU引入了高速缓存(Cache),它是一种存储技术,用来暂时存储CPU频繁访问的数据,从而减少主...

    cpu-cache-line-demo:使用Golang原语的CPU缓存行无效

    解决上述问题的常用方法是,将频繁更新的数据块(变量/结构)与64字节边界的CPU高速缓存行对齐并对齐。 这将迫使一个变量单独占据内核的高速缓存行,因此,当其他内核更新单个变量时,其他变量将不会使该内核从内存...

    高速缓存实现源码

    高速缓存是计算机科学中的一个重要概念,特别是在优化应用程序性能方面起着关键作用。在Java编程环境中,高速缓存的实现可以极大地提升系统响应速度,尤其是在处理高并发场景时。本项目通过源码实现了一个简单的高速...

    从底层数据结构和CPU缓存两方面剖析LinkedList的查询效率为什么比ArrayList低.docx

    其次,从 CPU 缓存方面,CPU 缓存对数组友好,因为数组结构是连续的内存, CPU 缓存可以读入一整片连续的内存空间,提高查询效率,而 LinkedList 结构是非连续的内存,不利于 CPU 缓存的使用。 知识点1:ArrayList ...

    内存数据库的CPU和缓存之高效管理

    总的来说,内存数据库的CPU和缓存高效管理是通过优化存储模型和查询处理机制,以及高效的数据结构和缓存管理策略来实现的。这些优化措施旨在减少内存数据库系统的资源消耗,提高数据处理速度,从而更好地满足OLTP和...

    HP 服务器高速缓存的设置

    高速缓存(Cache)是一种存储技术,它位于主存与CPU之间的小容量存储器,其目的是提高数据访问速度。在服务器环境中,高速缓存可以显著加快数据读取速度,尤其是在数据库频繁读写的场景下,高速缓存的作用尤为明显。...

    3.2.2 DEC5502_CACHE_DSP高速缓存_cpu内部存储器_

    为了提高运算效率,现代CPU设计引入了一种技术,即高速缓存(Cache),它扮演着连接CPU与主内存的关键角色。标题“3.2.2 DEC5502_CACHE_DSP高速缓存_cpu内部存储器_”暗示我们讨论的是关于DEC5502处理器中的高速缓存...

    高速缓存知识

    ### 高速缓存知识详解 #### 基本概念 **高速缓存**(Cache)是一种特殊类型的存储器子系统,它通过复制频繁使用的数据来实现快速访问的目的。Cache通常采用比主内存(RAM)更快但成本更高的静态随机存取存储器...

    高速缓存仿真软件

    高速缓存(Cache)是计算机系统中的一个关键组成部分,它位于CPU与主内存之间,用于减少数据访问延迟,提升计算性能。"高速缓存仿真软件"是一个专门用于模拟和研究Cache工作原理的工具,它可以帮助用户理解不同类型...

    cpu二级缓存设置

    一级缓存是位于CPU内部的高速缓存,分为指令缓存和数据缓存两部分。它主要用来存储当前运行程序中的频繁使用的指令和数据,以便CPU能够快速地获取这些信息,从而提高处理器的执行效率。由于一级缓存容量较小,通常...

    05.高级计算机系统结构_高速缓存.ppt

    高速缓存的命中率是指 CPU 访问高速缓存的次数中,高速缓存中真正包含要访问的数据或指令的次数。命中率越高,系统性能越好。 高速缓存的淘汰算法 -------------- 高速缓存的淘汰算法是指当高速缓存中的数据或指令...

    高速缓存(Cache)的Verilog代码

    该工程包含数据缓存D_Cache和指令缓存I_Cache的Verilog代码和仿真文件,Cache的详细技术参数包含在.v文件的注释中。 直接相连16KB D_Cache Cache写策略: 写回法+写分配 (二路)组相连16KB I_Cache Cache替换策略: ...

    ARM高速缓存(Cache)Verilog代码 包含ISE工程

    该工程包含数据缓存D_Cache和指令缓存I_Cache的Verilog代码和仿真文件,附带可运行的ISE工程文件,Cache的详细技术参数包含在.v文件的注释中。 直接相连16KB D_Cache Cache写策略: 写回法+写分配 (二路)组相连16KB ...

    PIC32系列参考手册 第4章 预取高速缓存.pdf

    而当CPU请求的数据不在高速缓存中时,称为高速缓存未命中,这时CPU需要等待数据从PFM加载到高速缓存中。 4.5节是关于高速缓存配置的详细说明,包括如何配置预取高速缓存模块以满足特定的性能要求。 在4.6节中,...

    体系结构实习-高速缓存模拟

    高速缓存是一种小容量、高速度的存储设备,它位于主存和CPU之间,用于存储CPU频繁访问的数据。通过减少CPU等待数据的时间,提高了计算机的运行效率。高速缓存的工作基于局部性原理,即程序执行时,短时间内访问的...

    存储体系实验-利用高速缓存(Cache)的局部性优化矩阵乘法

    高速缓存(Cache)是现代计算机架构中的一个重要组件,它用于缓解主内存与CPU之间速度不匹配的问题。本实验“存储体系实验-利用高速缓存(Cache)的局部性优化矩阵乘法”旨在深入理解Cache的工作原理及其对程序性能的...

    并发研究之CPU缓存一致性协议(MESI)1

    CPU高速缓存的存在是为了缓解CPU运算速度与内存访问速度之间存在的差距,因为CPU的发展速度远超内存和硬盘。高速缓存利用了程序执行的局部性原理,包括时间局部性和空间局部性,来提高性能。 时间局部性指的是如果...

    计算机CPU一级二级三级缓存介绍.pdf

    计算机 CPU 中的缓存是一种高速缓存器,负责存储 CPU 经常访问的数据,以便 CPU 可以快速地访问这些数据。缓存的大小和类型对 CPU 的性能有着很大的影响。 一、缓存的分类 缓存可以分为一级缓存、 二级缓存和三级...

Global site tag (gtag.js) - Google Analytics