目录

文章目录

  • 目录
  • CPU 缓存
  • CPU Cache 的运行原理
  • 三级缓存(L1、L2、L3)
    • L1 Cache
    • L2 Cache
    • L3 Cache

CPU 缓存

CPU Cache(CPU 缓存)就是数据交换的缓冲区,往往都是 RAM(断电即掉的非永久储存),它们的作用就是帮助硬件更快地响应。CPU 内部集成了计算机系统中速度最快的 Cache(L1、L2、L3 Cache)。

CPU Cache 定义为 CPU 与 Main Memory(主存)之间的临时数据交换器,它的出现是为了解决 CPU 运行处理速度与 Main Memory 读写速度不匹配的矛盾 —— CPU 访问 CPU Cache 的速度比 Main Memory 的速度快得多。

CPU Cache 一般直接集成在 CPU 芯片上,要求尽可能地靠近 CPU,所以它的成本异常昂贵,更大的 CPU Cache 意味着更高的缓存命中率,也意味着更快的速度。

CPU Cache 的运行原理

根据局部性访问原理,CPU 往往需要重复处理相同的数据、重复执行相同的指令,如果这部分数据、指令 CPU 能在 CPU Cache 中找到,那么 CPU 就不需要从 Main Memory 或 Hardware Disk 中再读取数据、指令,从而减少了整机的响应时间。

有了 CPU Cache 之后,CPU 可以直接在 CPU Cache 里读取到想要的数据,称之为命中(hit)。如果 CPU 在 L1 Cache 中找到所需要的资料要用的时间为 3 个周期左右,那么在 L2 Cache 找到资料的时间就要 10 个周期左右,L3 Cache 所需时间为 50 个周期左右;而如果要到内存上去找,则可能需要几百个周期的时间。

L1 的运行速度很快,但是它的数据容量很小,CPU 能在 L1 里命中的概率大概在 80% 左右(日常使用的情况下),L2、L3 也类似如此。这样一来,CPU 需要在 Main Memory 中读取的数据大概为 5%-10%,其余数据命中全部可以在 L1、L2、L3 中做到,大大减少了系统的响应时间,总的来说,所有 CPU 读取数据的顺序都是先查 CPU Cache 再查 Main Memory。

三级缓存(L1、L2、L3)

以近代 CPU 的视角来说,三级缓存都是集成在 CPU 内的缓存,它们的作用都是作为 CPU 与主内存之间的高速数据缓冲区,L1 最靠近 CPU 核心;L2 其次;L3 再次。运行速度方面:L1 最快、L2 次快、L3 最慢;容量大小方面:L1 最小、L2 较大、L3 最大。

CPU 会先在最快的 L1 中寻找需要的数据,找不到再去找次快的 L2,还找不到再去找 L3,L3 都没有那就只能去内存找了。

L1、L2、L3 可以说是各有特点,下面我们就分开来讲一下。

L1 Cache

L1 Cache 这个名词出现应该是在 Intel 公司 Pentium 处理器时代把缓存开始分类的时候,当时在 CPU 内部集成的 CPU Cache 已经不能满足整机的性能需求,而制造工艺上的限制不能在 CPU 内部大幅提高缓存的数量,所以出现了集成在主板上的缓存,当时人们把 CPU 内部集成的 CPU Cache 称为 L1 Cache。

L1 Cache 还可以细分为:

  1. 一级数据缓存(Data Cache,D-Cache,L1d):用于存放数据。
  2. 一级指令缓存(Instruction Cache,I-Cache,L1i):执行数据的指令解码。

两者可同时被 CPU 访问,减少了 CPU 多核心、多线程争用缓存造成的冲突,提高了处理器的效能。一般 CPU 的 L1i 和 L1d 具备相同的容量,例如 I7-8700K 的 L1 即为 32KB+32KB。

L2 Cache

L2 Cache 的主要作用是当 CPU 在 L1 Cache 中没读取到所需要的数据时再把数据展示给 CPU 作筛选。

L2 Cache 比 L1 Cache 的容量要更大,但是 L2 Cache 的速率要更慢。因为有 2 个:

  1. L2 比 L1 要更远离 CPU Core,L1 是最靠近 CPU 核心的缓存,CPU 需要读取 L2 的数据从物理距离上比 L1 要更远;
  2. L2 的容量比 L1 更大,打个简单的比喻,在小盒子里面找东西要比在大房间里面找要方便快捷。

这里也可以看出,缓存并非越大越好,越靠近 CPU 核心的缓存运行速率越快越好,非最后一级缓存的缓存容量自然是够用即可。

L2 Cache 实际上就是 L1 Cache 跟 Main Memory 之间的缓冲器。在 2006 年的时间点上,Intel 和 AMD 当家在售的几款处理器可以看出他们对最后一级缓存不同的见解:

  • Intel Core Duo 不同于它的前辈 Pentium D、EE,采用了双核心共享的 2M L2 二级缓存,是属于当时最先二级缓存架构,即 “Smart Cache” 共享缓存技术,这种技术沿用到以后的 Intel 推出的所有多核心处理器上;

  • AMD Athlon 64X2 处理器则是每个 CPU 核心都具备独立的二级缓存,Manchester 核心的处理器为每核心 512KB、Toledo 核心为每核心 1MB,两个核心之间的缓存的数据同步是通过 CPU 内置的 SRI(系统请求接口)控制,这样的数据延迟及占用资源情况都要比 Intel 的 Pentium D、EE 核心要好,但还是比不上 Core 为代表的 Smart Cache 缓存共享。

L3 Cache

最初出现 L3 Cache 的应该是 AMD 的 K6-III 处理器,当时受限于制造工艺,L3 Cache 只能集成在主板上。然后 Intel 首次出现 L3 Cache 的是 Itanium 安腾服务器处理器,接着就是 P4EE 和至强 MP。

L3 Cache 的出现其实对 CPU 性能提升呈一个爬坡曲线 —— L3 从 0 到 2M 的情况 CPU 性能提升非常明显,L3 从 2M 到 6M 提升可能就只有 10% 不到了,这是在近代 CPU 多核共享 L3 的情况下,当 L3 集成进 CPU 正式成为 CPU 内部缓存后,CPU 处理数据时只有 5% 需要在内存中调用数据,进一步地减少了内存延迟,使系统的响应更为快速。

同理,L3 Cache 作为 L2 Cache 与 Main Memory 之间的缓冲器,主要体现在提升处理器大数据处理方面的性能,对游戏表现方面有较大的帮助。

计算机组成原理 — CPU — 缓存访问相关推荐

  1. 计算机组成原理 — CPU — 主存访问

    目录 文章目录 目录 片内布局 CPU 访问内存 片内布局 前端总线是 Intel 在 1990 年在芯片中使用的通信接口,AMD 在 CPU 中也引入了类似的接口,它们的作用都是在 CPU 和 Ma ...

  2. 计算机组成原理 控制器.ppt,计算机组成原理(CPU的控制器部件)课件.ppt

    <计算机组成原理(CPU的控制器部件)课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<计算机组成原理(CPU的控制器部件)课件.ppt>文档 ...

  3. 计算机组成原理单周期mips,计算机组成原理CPU单周期数据通路(MIPS)

    计算机组成原理CPU单周期数据通路(MIPS) [计算机组成原理]CPU:单周期数据通路(MIPS) 寄存器传送语言RTL 1)R(r)表示寄存器r的内容 2)M(address)表示主存储器地址ad ...

  4. 计算机组成原理CPU与译码器,计算机组成原理CPU的结构和功能.ppt

    计算机组成原理CPU的结构和功能 算术逻辑单元 状态条件寄存器 程序记数器PC 地址寄存器AR 地址总线ABUS 数据总线DBUS 累加器AC 缓冲寄存器DR CPU ALU 指令寄存器IR 指令译码 ...

  5. 计算机组成原理 — CPU — 流水线与执行周期

    目录 文章目录 目录 CPU 流水线 时钟周期.机器周期.指令周期和总线周期 CPU 流水线 不同的 CPU 指令集架构在执行指令的过程会有所差别,以经典的 RISC(精简指令集架构)为例,存在以下步 ...

  6. 简单了解计算机组成原理 -- CPU与操作系统

    本文主要是从程序运行来看计算机组成原理 我们平时常说的程序, 大多指的是一个可执行文件 .exe, 当双击 .exe文件运行时, 操作系统就会读取这个文件, 将其加载到内存中, 由CPU中的寄存器读取 ...

  7. 计算机组成原理cpu模型详解,计算机组成原理第九讲(CPU模型).ppt

    <计算机组成原理第九讲(CPU模型).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第九讲(CPU模型).ppt(29页珍藏版)>请在装配图网上搜索. 1.计算机组成 ...

  8. 概念模型计算机实验总结,计算机组成原理——cpu的简单模型实验报告

    #cpu与简单模型机 姓名:学号: 班级:计科班 实验名称:CPU与简单模型机实验性质:综合型实验时间:2018.12.1 一.实验目的 (1) 掌握一个简单 CPU 的组成原理. (2) 在掌握部件 ...

  9. 计算机组成原理 cpu图,计算机组成原理和结构图式(第三章 CPU子系统)(示例代码)...

    计算机组成原理和结构图式(第三章 CPU子系统) 1.运算部件 ?图3-39 M:存储部件(存储单元在存储部件中) R:通用寄存器组 ALU:逻辑运算部件 任务:输入/直送,加工,输出 运算器构成 输 ...

最新文章

  1. [转] vuewebpack多页面配置
  2. 【TAMU】最新《时间序列分析》课程笔记
  3. 哈希表哪家强?几大编程语言吵起来了!
  4. angr学习笔记(5)(栈符号化)
  5. 显示计算机程序的表格如何打开,电脑表格怎么小窗口显示不出来怎么办
  6. php 静态方法 call,php的 __callStatic 函数
  7. hadoop中mapreduce参数优化
  8. g++是什么_飞度车主开奔驰G级的一天,会是什么样的体验?
  9. ImportError: DLL load failed: %1 不是有效的 Win32 应用程序
  10. wampserver php 目录,小常识-WAMPServer自定义根目录
  11. 软考高级 真题 2015年上半年 信息系统项目管理师 综合知识
  12. .NET发送邮箱(验证码)
  13. javaweb做什么能赚钱_做一个完整的Java Web项目需要掌握的技能
  14. Python——第五天Beer
  15. android计算器设计步骤,Android Studio的简易计算器界面设计
  16. python文本格式上一日_一日一技:在 Python 中快速遍历文件
  17. 关于spring-mybatis整合出现的问题Error creating bean with name ‘sqlSessionFactory‘ defined in class path reso
  18. Vue源码之渲染watcher
  19. 戴尔R730远程管理卡配置
  20. 如何用firefox chrome chromium看只支持IE浏览器的视频 通过wine 安装IE

热门文章

  1. XamarinAndroid组件教程RecylerView适配器设置动画
  2. 计算机操作员中级操作试题,中级计算机操作员应知模拟考试试题(一)
  3. Mysql 修改 复杂的汇总_MySQL数据分析:复杂查询
  4. python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...
  5. Hololens Spatial Mapping功能实现
  6. 特斯拉「断网」致500名车主被锁车外,最长5小时,网友:有些东西就不该经过网络...
  7. 抖音出现大量“三岁用户”,马化腾李彦宏都被还童
  8. 百度景鲲:疫情居家让智能音箱经受了检验,下一步「破圈」
  9. AI模型走下高科技神坛、走进大规模量产、深入渗透产业界丨百度研究院2020十大预测...
  10. 拖着3个箱子,跨越太平洋,求学美帝 那一年我19岁