前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CPU Cache学习

CPU Cache学习

作者头像
用户4700054
发布于 2022-08-11 09:53:43
发布于 2022-08-11 09:53:43
6810
举报

CPU Cache学习

为什么需要Cache?
  • CPU要从内存中直接读取数据都要花费几百个时间周期,在这几百个时间周期内,处理器除了等待什么都做不了,为了解决这个问题才提出Cache这个概念
Cache种类
  • Cache是有三级组成,L1 Cache、L2 Cache、L3 Cache。L1 Cache最快,但是容量最小,一般都在几十KB。L2 Cache性能其次,容量也是其次,一般都在上百KB几MM左右;L3 Cache最慢,容量最大,一般都在几M几十M左右
  • Cache 系统架构图
  • L1 Cache,一般分为数据和指令Cache.数据 Cache用于存储数据,而指令Cache用于存储指令。L1 Cache一般处理器值需要3~5个指令周期就能访问到数据。在多核处理器内部,每个处理器核心都拥有属于自己的L1 Cache
  • L2 Cache,和L1 Cache一样分为指令和数据,但是L2 Cache的数据和指令都无差别的放在一起,速度相比L1 Cache要慢一些,处理器大约需要十几个处理器周期才能访问到数据,容量也相对L1 Cache大一些,一般是几百KB到几MB左右,在多核处理器内部,每个处理器核心都有属于自己的L2 Cache
  • L3 Cache,速度更慢,处理器需要需要几十个CPU周期才能访问到数据,容量更大,一般都在几MB到几十MB左右。在多核处理器中,L3 Cache是所有处理器核心共享所有。
  • 各级Cache的访问时间,在英特尔处理器上一直保持比较稳定,L1 Cache访问是4个指令周期,L2 Cache是12个指令周期,L3 Cache则是26~31个指令周期。
TLB Cache
  • 现代计算机使用的是虚拟内存地址和分段分页的技术来保护脆弱的软件系统,软件使用虚拟地址访问内存,而处理器负责将虚拟内存地址到物理地址的映射工作,为了完成映射工作,处理器采用多级页表来进行多次查找最终找到物理内存,当处理器发现页面中找不到真正对应的物理地址时,就会发出一个异常,挂起寻址错误的进程,但是其他进程依然可以正常工作。
  • 页表是存储在内存中,处理器虽然可以利用L3 Cache系统来缓存页表内容,但是基于如下两点原因不能这样么做。第一,处理器每当进行寻址操作都要进行一次映射工作,这使得处理器访问页表的频率非常高,有可能一秒钟需要访问几万次,因此即使Cache命中率都能达到99以上,不命中率达到1%,不命中的访问频率每秒也有几百次,这会导致处理器在单位时间内访问内存的次数多,降低了系统的性能
  • TLB Cache是专门用来存储内存中的页表项。TLB一般采用相连存储器或者按内容访问存储器。相连存储器使用虚拟地址进行搜索,直接返回对应物理地址,相对内存中的多级页表需要多次访问才得到最终的物理地址,TLB查找无疑大大减少了处理器的开销,这也是上面提到的第二个原因。
  • 如果需要的地址在TLB Cache中,相连存储器迅速返回结果,然后处理器用该物理地址访问内存,这样的查找操作叫TLB Cache 命中;如果需要的地址不在TLB Cache中,那叫命中,处理器就需要到内存中访问多级页表,才能得到最终的物理地址
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CPU如何与内存交互?
点个关注👆跟腾讯工程师学技术 导语 | 本文主要整理了计算机中的内存结构,以及CPU是如何读写内存中的数据的,如何维护CPU缓存中的数据一致性。什么是虚拟内存,以及它存在的必要性。如有不当之处请多多指教。 概述 目前在计算机中,主要有两大存储器SRAM和DRAM。主存储器是由DRAM 实现的,也就是我们常说的内存,在CPU里通常会有L1、L2、L3这样三层高速缓存是用SRAM实现的。 SRAM被称为“静态”存储器,是因为只要处在通电状态,里面的数据就可以保持存在。而一旦断电,里面的数据就会丢失了。 目
腾讯云开发者
2022/11/02
1.9K0
CPU如何与内存交互?
存储器体系结构学习笔记
存储器的性能直接影响到CPU的性能评价,定义存储器停顿周期数为CPU等待存储器访问而停顿的时钟周期数,由此有CPU执行时间有:
月见樽
2020/01/15
2K0
存储器体系结构学习笔记
深入剖析虚拟内存工作原理
作者:allanpan,腾讯 IEG 后台开发工程师 导言 虚拟内存是当今计算机系统中最重要的抽象概念之一,它的提出是为了更加有效地管理内存并且降低内存出错的概率。虚拟内存影响着计算机的方方面面,包括硬件设计、文件系统、共享对象和进程/线程调度等等,每一个致力于编写高效且出错概率低的程序的程序员都应该深入学习虚拟内存。 本文全面而深入地剖析了虚拟内存的工作原理,帮助读者快速而深刻地理解这个重要的概念。 计算机存储器 存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要同时具备以下三种特性:
腾讯技术工程官方号
2021/05/08
3.3K0
你也许还不知道的 CPU Cache
Gallery of Processor Cache Effects 用 7 个源码示例生动的介绍 cache 原理,深入浅出!但是可能因操作系统的差异、编译器是否优化,以及近些年 cache 性能的提升,第 3 个样例在 Mac 的效果与原文相差较大。另外 Berkeley 公开课 CS162 图文并茂,非常推荐。本文充当搬运工的角色,集二者之精华科普 CPU cache 知识。
架构师修行之路
2020/06/04
1.2K0
The art of multipropcessor programming 读书笔记-硬件基础2
多处理器(multiprocessor)包括多个硬件处理器,每个都能执行一个顺序程序。当讨论多处理器架构的时候,基本的时间单位是指令周期(cycle):即处理器提取和执行一条指令需要的时间。
干货满满张哈希
2021/12/30
2820
The art of multipropcessor programming 读书笔记-硬件基础2
内存系列学习(一):万字长文带你搞定MMU&TLB&TWU
最近一直在学习内存管理,也知道MMU是管理内存的映射的逻辑IP,还知道里面有个TLB。
刘盼
2023/08/22
2.4K0
内存系列学习(一):万字长文带你搞定MMU&TLB&TWU
廖威雄: 学习Linux必备的硬件基础一网打尽
廖威雄,目前就职于珠海全志科技股份有限公司从事linux嵌入式系统(Tina Linux)的开发,主要负责文件系统和存储的开发和维护,兼顾linux测试系统的设计和持续集成的维护。
Linux阅码场
2019/07/31
1.1K0
廖威雄: 学习Linux必备的硬件基础一网打尽
cpu架构知识
存取速度比较:L1缓分成两种,一种是指令缓存,一种是数据缓存。L2缓存和L3缓存不分指令和数据。L1和L2缓存在第一个CPU核中,L3则是所有CPU核心共享的内存。L1、L2、L3的越离CPU近就越小,速度也越快,越离CPU远,速度也越慢。再往后面就是内存,内存的后面就是硬盘。我们来看一些他们的速度:
没有故事的陈师傅
2021/07/21
7520
天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍
大家如果想自己组装电脑的话,肯定需要购买一个 CPU,但是存储器方面的设备,分类比较多,那我们肯定不能只买一种存储器,比如你除了要买内存,还要买硬盘,而针对硬盘我们还可以选择是固态硬盘还是机械硬盘。
小林coding
2020/10/30
8860
天啦噜!知道硬盘很慢,但没想到比 CPU Cache 慢 10000000 倍
【底层原理】深入理解Cache (上)
存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。
233333
2018/10/15
1K0
打开操作系统的大门,这篇就够了
图灵机主要由数据存储单元,控制单元,运算单元和一个可读写外部数据的读写头几部分构成。
会玩code
2022/04/24
7380
打开操作系统的大门,这篇就够了
甄建勇:五分钟搞定Cache(下)
甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。
Linux阅码场
2021/11/23
1.1K0
深度解析:cache的基本概念原理扫盲
本文转自 周贺贺,baron,代码改变世界ctw,Arm精选, armv8/armv9,trustzone/tee,secureboot,资深安全架构专家,11年手机安全/SOC底层安全开发经验。擅长trustzone/tee安全产品的设计和开发。
鸽芷咕
2024/05/26
9010
深度解析:cache的基本概念原理扫盲
(笔记)CPU & Memory, Part 2: CPU caches
原文:What every programmer should know about memory, Part 2: CPU caches
颇忒脱
2019/04/19
1.9K0
(笔记)CPU & Memory, Part 2: CPU caches
CPU高速缓存与内存屏障
最后,关于写作内存相关的原因是为了更好地理解同步关键字synchronized的内存语义(下一篇哈)
keithl
2020/03/10
1.8K0
CPU高速缓存与内存屏障
【旧文重发 | 03】IC基础知识
局域性原理:程序常常重复使用它们最近用过的数据和指令。一条广泛适用的经验规律是:一个程序90%的执行时间花费在仅10%的代码中。局域性意味着我们可以根据一个程序最近访问的指令和数据,比较准确地预测它近期会使用哪些内容。局域性的原理也适应于数据访问,不过不像代码访问那样明显。
空白的贝塔
2022/04/07
1.1K0
【旧文重发 | 03】IC基础知识
Linux内核页表管理-那些鲜为人知的秘密
通用操作系统,通常都会开启mmu来支持虚拟内存管理,而页表管理是在虚拟内存管理中尤为重要,本文主要以回答几个页表管理中关键性问题来解析Linux内核页表管理,看一看页表管理中那些鲜为人知的秘密。
用户7244416
2021/08/06
2K0
MIPS架构深入理解4-Cache机制
现代CPU中,为了提高CPU的执行效率,高速缓存必不可少。关于Cache工作原理可以参考我之前的文章
Tupelo
2022/08/15
2.7K1
MIPS架构深入理解4-Cache机制
计算机系统 Lecture 1:虚拟内存详解
因此,现代计算机系统通常把各种不同存储容量、存取速度和价格的存储器按照一定的体系组成多层结构,以解决存储器容量、存取速度和价格之间的矛盾。
Flowlet
2023/08/11
5030
计算机系统 Lecture 1:虚拟内存详解
Memory Consistency and Cache Coherence—— cache一致性协议(MESI)
    cache监听一致性主要是获得cache的总线访问权,比如core1和core2同时写入相同的地址,会交由总线进行仲裁,确定哪个核先写入,在获得写入权限后,会通过总线广播使地址失效。一般的smp架构cpu cache结构如下图:
用户4415180
2022/06/23
8420
Memory Consistency and Cache Coherence—— cache一致性协议(MESI)
相关推荐
CPU如何与内存交互?
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档