4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (5)基于TLB、cache的访存流程(无字幕版)
合集 · 计算机组成原理微课堂(无字幕版) (154)
-
0 课程介绍
5:36
-
1-1 计算机系统的组成(无字幕版)
2:59
-
1-2 计算机的发展(无字幕版)
14:24
-
1-3 计算机硬件(无字幕版)
13:07
-
1-4 计算机软件(无字幕版)
11:13
-
1-5 计算机系统的层次结构(无字幕版)
10:22
-
1-6 计算机的基本工作原理(无字幕版)
33:29
-
1-7 计算机系统的性能指标——(1)基本性能指标(无字幕版)
10:43
-
1-7 计算机系统的性能指标——(2)与运算速度相关的性能指标(无字幕版)
29:03
-
2-1 数据表示的相关基本概念(无字幕版)
8:37
-
2-2 进位计数制及其数据之间的相互转换(无字幕版)
32:47
-
2-3-1 定点数的编码——原码(无字幕版)
10:42
-
2-3-2 定点数的编码—补码(无字幕版)
23:15
-
2-3-3 定点数的编码——反码(无字幕版)
13:11
-
2-3-4 定点数的编码——移码(无字幕版)
6:45
-
2-3-5 定点数的编码——原码、补码、反码、移码之间的转换(无字幕版)
7:41
-
2-3-6 定点数的编码——习题课(无字幕版)
25:24
-
2-4-1 浮点数的表示——浮点数的表示形式和表示范围(无字幕版)
27:53
-
2-4-2 浮点数的表示——浮点数的规格化(无字幕版)
17:58
-
2-4-3 浮点数的表示——IEEE 754 浮点数标准(无字幕版)
34:48
-
2-5 C语言中的数据类型及转换(无字幕版)
35:29
-
3-1-1 移位运算 — 逻辑移位(无字幕版)
6:38
-
3-1-2 移位运算 —— 算术移位(无字幕版)
20:58
-
3-1-3 移位运算 — 循环移位(无字幕版)
9:36
-
3-2-1 定点数的加法和减法运算 — 补码加减法运算公式(无字幕版)
15:59
-
3-2-2 定点数的加法和减法运算 — 补码加减法运算的溢出检测(无字幕版)
25:05
-
3-2-3 定点数的加法和减法运算 — 逻辑代数和逻辑门(无字幕版)
18:12
-
3-2-4 定点数的加法和减法运算 —— 一位全加器的硬件逻辑实现(无字幕版)
13:39
-
3-2-5 定点数的加法和减法运算 — 串行进位加法器的硬件逻辑实现(无字幕版)
17:37
-
3-2-6 定点数的加法和减法运算 —— 先行进位加法器的硬件逻辑实现(无字幕版)
24:41
-
3-3-1 无符号数乘法运算的硬件逻辑实现(无字幕版)
18:34
-
3-3-2 定点数的乘法运算 —— 原码乘法运算的硬件逻辑实现(无字幕版)
6:42
-
3-3-3 定点数的乘法运算 —— 补码乘法运算的硬件逻辑实现(无字幕版)
34:52
-
3-3-4 定点数的乘法运算 —— 无符号阵列乘法器(无字幕版)
11:46
-
3-3-5 定点数的乘法运算 — 补码阵列乘法器(无字幕版)
15:35
-
3-4-1 定点数的除法运算 —— 原码除法运算 —— 恢复余数法(无字幕版)
19:08
-
3-4-2 定点数的除法运算 —— 原码除法运算 —— 不恢复余数法(无字幕版)
9:55
-
3-4-3 定点数的除法运算 —— 补码除法运算 —— 不恢复余数法(无字幕版)
14:56
-
3-5-1 浮点运算 —— 浮点加减法运算(无字幕版)
17:34
-
3-5-2 浮点运算 —— IEEE 754 浮点加减法运算(无字幕版)
7:12
-
3-5-3 浮点运算 ——浮点乘法运算(无字幕版)
2:38
-
3-5-4 浮点运算 ——浮点除法运算(无字幕版)
3:34
-
3-6 运算器(无字幕版)
6:08
-
4-1 存储器概述(无字幕版)
4:23
-
4-1-1 存储器概述 —— 存储器分类(无字幕版)
15:23
-
4-1-2 存储器概述 —— 存储器性能指标和存储系统层次结构(无字幕版)
5:58
-
4-1-3 存储器概述 —— 主存的基本结构(无字幕版)
10:13
-
4-1-4 存储器概述 —— 用于地址译码的译码结构(无字幕版)
6:35
-
4-1-5 存储器概述 —— 主存中数据的存放(无字幕版)
22:39
-
4-2-1 静态随机存取存储器SRAM —— 存储元(无字幕版)
12:10
-
4-2-2 静态随机存取存储器SRAM —— 存储元扩展和存储阵列扩展(无字幕版)
6:55
-
4-2-3 静态随机存取存储器SRAM —— 存储器结构及其芯片实例(无字幕版)
13:42
-
4-3-1 动态随机存取存储器DRAM —— 存储元及其扩展(无字幕版)
12:14
-
4-3-2 动态随机存取存储器DRAM —— 存储器的动态刷新(无字幕版)
9:19
-
4-3-3 动态随机存取存储器DRAM —— 存储器芯片实例和DRAM发展(无字幕版)
15:35
-
4-4 只读存储器ROM简介(无字幕版)
9:43
-
4-5-1 主存的扩展及其与CPU的连接 —— 位扩展(无字幕版)
7:27
-
4-5-2 主存的扩展及其与CPU的连接 —— 字扩展(无字幕版)
11:29
-
4-5-3 主存的扩展及其与CPU的连接 —— 字位同时扩展(无字幕版)
4:01
-
4-5-4 主存的扩展及其与CPU的连接 —— 习题课(无字幕版)
14:50
-
4-6-1 主存系统的优化 —— 双端口存储器(无字幕版)
3:44
-
4-6-2 主存系统的优化 —— 单体多字存储器(无字幕版)
3:39
-
4-6-3 主存系统的优化 —— 多体交叉存储器 ——(1) 高位多体交叉(无字幕版)
4:22
-
4-6-3 主存系统的优化 —— 多体交叉存储器 ——(2) 低位多体交叉(无字幕版)
13:47
-
4-7-1 高速缓冲存储器cache——cache的相关基本概念(无字幕版)
11:14
-
4-7-2 高速缓冲存储器cache——cache的读、写流程(无字幕版)
8:04
-
4-7-3 高速缓冲存储器cache — 地址映射 — (1)直接映射(无字幕版)
26:20
-
4-7-3 高速缓冲存储器cache — 地址映射 — (2)直接映射 (习题课)(无字幕版)
29:43
-
4-7-3 高速缓冲存储器cache —— 地址映射 —— (3)全相联映射(无字幕版)
21:51
-
4-7-3 高速缓冲存储器cache —— 地址映射 —— (4)组相联映射(无字幕版)
22:51
-
4-7-3 高速缓冲存储器cache —— 地址映射 —— (5)习题课(无字幕版)
18:41
-
4-7-4 高速缓冲存储器cache —— 替换算法(1)(无字幕版)
19:23
-
4-7-4 高速缓冲存储器cache —— 替换算法(2)习题课1(无字幕版)
17:30
-
4-7-4 高速缓冲存储器cache —— 替换算法(3)习题课2(无字幕版)
20:43
-
4-7-5 高速缓冲存储器cache —— 写入策略(无字幕版)
8:54
-
4-7-6 高速缓冲存储器cache —— cache的分类和应用(无字幕版)
7:23
-
4-8-1 虚拟存储器 —— 相关概念和基本工作原理(无字幕版)
5:42
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (1)概述(无字幕版)
5:30
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (2)地址映射和页表(无字幕版)
20:52
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (3)访问流程(无字幕版)
8:52
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (4)使用快表TLB加速地址转换(无字幕版)
12:31
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (5)基于TLB、cache的访存流程(无字幕版)
10:53
-
4-8-2 虚拟存储器 —— 页式虚拟存储器 —— (6)习题课(无字幕版)
20:02
-
5-1 指令系统概述(无字幕版)
4:25
-
5-2-1 指令格式 —— 指令的一般格式和指令字长(无字幕版)
5:28
-
5-2-1 指令格式 ——(2)指令中的地址码字段(无字幕版)
7:57
-
5-2-1 指令格式 ——(3)指令中的操作码字段(无字幕版)
16:07
-
5-3-1 寻址方式 ——(1)概述(无字幕版)
3:22
-
5-3-1 寻址方式 ——(2)指令寻址方式(无字幕版)
7:47
-
5-3-3 寻址方式 —— 操作数寻址方式(1)
13:59
-
5-3-3 寻址方式 —— 操作数寻址方式(2)
16:22
-
5-3-4 寻址方式 —— 习题课(无字幕版)
23:28
-
5-4 指令的操作类型(无字幕版)
21:42
-
5-5 复杂指令集计算机和精简指令集计算机(无字幕版)
7:18
-
5-6 本章综合习题课(1)
21:44
-
5-6 本章综合习题课(2)(无字幕版)
24:14
-
5-6 本章综合习题课(3)(无字幕版)
24:16
-
6-1 中央处理器概述(无字幕版)
17:31
-
6-2-1 指令的执行过程 — 指令执行的一般流程(无字幕版)
3:30
-
6-2-2 指令的执行过程 — 指令周期(无字幕版)
10:00
-
6-2-3 指令的执行过程 — 指令周期各阶段的数据流(无字幕版)
5:22
-
6-3-1 数据通路 —— CPU内部单总线结构(无字幕版)
31:43
-
6-3-2 数据通路 —— 习题课(1)(无字幕版)
17:54
-
6-3-2 数据通路 —— 习题课(2)(无字幕版)
30:22
-
6-3-2 数据通路 —— 习题课(3)(无字幕版)
17:45
-
6-4-1 控制器 —— CPU的时序及其控制方式(无字幕版)
13:54
-
6-4-2 控制器 —— 时序发生器(无字幕版)
19:49
-
6-4-3 控制器 —— 三级时序硬布线控制器(1)—— 概述(无字幕版)
4:42
-
6-4-3 控制器 —— 三级时序硬布线控制器(2)—— 设计(无字幕版)
7:50
-
6-4-4 控制器 —— 现代时序硬布线控制器(无字幕版)
14:44
-
6-4-5 控制器 —— 微程序控制器(1)—— 相关基本概念(无字幕版)
12:49
-
6-4-5 控制器 —— 微程序控制器(2)—— 微程序控制器的组成(无字幕版)
8:22
-
6-4-5 控制器 —— 微程序控制器(3)—— 下一个微地址的形成(无字幕版)
13:16
-
6-4-5 控制器 —— 微程序控制器(4)—— 微指令设计(无字幕版)
6:27
-
6-4-5 控制器 —— 微程序控制器(5)—— 微程序设计(无字幕版)
12:31
-
6-4-5 控制器 —— 微程序控制器(6)—— 微指令中操作控制字段的表示方法(无字幕版)
11:40
-
6-4-5 控制器 —— 微程序控制器(7)—— 水平型微指令和垂直型微指令(无字幕版)
5:27
-
6-4-5 控制器 —— 微程序控制器(8)—— 微程序控制器的设计流程(无字幕版)
5:34
-
6-5-1 异常与中断— 相关基本概念(无字幕版)
7:00
-
6-5-2 异常与中断— 异常与中断的处理过程(无字幕版)
5:05
-
6-5-3 异常与中断— 为CPU增加中断处理功能(1)—数据通路部分(无字幕版)
5:10
-
6-5-3 异常与中断— 为CPU增加中断处理功能(2)—硬布线控制器的改造(无字幕版)
10:24
-
6-5-3 异常与中断— 为CPU增加中断处理功能(3)—微程序控制器的改造(无字幕版)
4:18
-
6-5-4 异常与中断— 中断服务程序(无字幕版)
4:53
-
6-6-1 指令流水线概述(无字幕版)
13:46
-
6-6-2 流水线数据通路(无字幕版)
20:34
-
6-6-3 流水线冲突与处理(1)—— 结构冲突与解决方案,控制冲突与解决方案(无字幕版)
15:36
-
6-6-3 流水线冲突与处理(2)— 数据冲突(无字幕版)
10:42
-
6-6-3 流水线冲突与处理(3)— 数据冲突的解决方案—插入气泡(无字幕版)
18:33
-
6-6-3 流水线冲突与处理(4)—— 数据冲突的解决方案——数据旁路(无字幕版)
21:35
-
6-6-3 流水线冲突与处理(5)—— 进一步提升指令执行的并行性——超流水线技术和多发射技术(无字幕版)
8:17
-
6-6-4 指令流水线——习题课(无字幕版)
10:24
-
7-1 总线概述(1) — 作用和特点、主从设备、标准规定的四个特性(无字幕版)
10:16
-
7-1 总线概述(2) — 分类(无字幕版)
14:18
-
7-1 总线概述(3) — 性能指标(无字幕版)
18:05
-
7-2 总线传输的相关基本原理(1) — 总线传输过程和总线事务(无字幕版)
9:41
-
7-2 总线传输的相关基本原理(2) — 总线仲裁(1)(无字幕版)
11:57
-
7-2 总线传输的相关基本原理(3) — 总线仲裁(2)(无字幕版)
9:21
-
7-2 总线传输的相关基本原理(4) — 总线定时(无字幕版)
15:08
-
7-3 总线上信息的传送方式(无字幕版)
10:50
-
7-4 系统总线的结构(无字幕版)
19:57
-
7-5 常用总线(无字幕版)
5:43
-
8-1 输入输出系统概述(无字幕版)
1:34
-
8-2 I/O设备及其特性(无字幕版)
5:10
-
8-3 I/O接口(无字幕版)
18:51
-
8-4 I/O控制方式(1)— 概述(无字幕版)
3:04
-
8-4 I/O控制方式(2)— 程序直接控制(查询)方式(无字幕版)
13:10
-
8-4 I/O控制方式(3)— 中断驱动方式(无字幕版)
10:14
-
8-4 I/O控制方式(4)— 中断驱动方式 — 中断的基本概念(1)(作用,分类)(无字幕版)
12:50
-
8-4 I/O控制方式(5)— 中断驱动方式 — 中断的基本概念(2)(中断优先级与中断屏蔽)(无字幕版)
11:26
-
8-4 I/O控制方式(6)— 中断驱动方式 — 中断请求(无字幕版)
17:10
-
8-4 I/O控制方式(7)— 中断驱动方式 — 单级中断的处理流程(无字幕版)
19:03
-
8-4 I/O控制方式(8)— 中断驱动方式 — 多重中断的处理流程(无字幕版)
7:20
-
8-4 I/O控制方式(9)—— DMA方式(无字幕版)
20:20
Description
计算机组成原理微课堂字幕版 https://www.bilibili.com/video/BV1qG41197E4
Comments
说一下个人对TLB缺失但页面命中且Cache命中时仍需访问一次主存的理解: 在王道书上给出的那个流程图和老师ppt上的不一样,王道书上对于TLB缺失的情况是:会先访问主存中的页表,取出页表中的页表项,能在主存的页表中找到此页表项才能判断是页面命中,接着是将页表项的存储位置的物理页号与虚拟地址中的页内偏移组合起来成为物理地址,再根据这个物理地址去访问Cache,看这个物理地址对应的主存块是否已经缓存到Cache,如果在Cache中,才能判断是Cache命中,如果不在Cache中,才能判断是Cache缺失。 老师ppt上给的流程图相当于是,TLB缺失时,下一步就直接去访问Cache,如果Cache中能找到相应的页表项,就能判断是Cache命中了,这种情况下只有可能是页面命中(感觉PPT上的有误,Cache命中了不会再出现页面缺失然后启动缺页异常处理的情况),直接从Cache读出页表项,不用再访问主存了,这种流程和后面老师ppt上说的还需要访问一次主存的情况是矛盾的。 但是这个流程也没有错,我问了deepseek,说是王道书上那种设计是假设页表项始终存储在主存中,将“地址翻译”(获取页表项)和“数据访问”视为两个独立步骤,且地址翻译必须访问主存。默认Cache只能将数据缓存到里面,不会将页表项缓存到里面 但真实CPU的设计就是会将页表项和其他数据一起缓存到Cache中的,当TLB缺失时,先访问Cache,若页表项在Cache中命中,就直接读出不用再访问主存了。 王道教材这种设计是一种简化设计,是早期CPU的设计,我们做题还是得按王道书的那种方式来,我们学的东西还是太落后了[doge]
♥ 7 ↩ 4
总结为:页不命中则tlb和cache都不可能命中,没有其他的不可能情况[OK]
♥ 6
谢谢爸爸的课,讲得太好了
♥ 4 ↩ 5
第一部分 地址转换阶段 在TLB中检查虚拟地址是否命中,如果命中,则直接获得页表项,得到物理地址,进入第二部分 数据访问阶段; 如果未命中,则去cache中找页表项,如果命中,则获得页表项,如果仍然未命中,则去内存中的慢表找到页表项,此时如果发生缺页,先将外存页面调入内存,再更新慢表和cache和快表中的页表项,并重新执行地址转换操作在快表中找页表项,此时页表项一定有效,如果没有缺页,则直接更新快表和cache中的页表项 两者最终都获得了实际页号,MMU计算得到实际地址。进入第二阶段 此时我们已经获得了实际地址,在cache中找实际地址对应的块号,一般是组相联映射,我们根据组号找到对应的cache组,根据分区号比对目标组中的标记,如果命中,则直接返回数据,皆大欢喜,如果未命中,则在主存中找到对应的数据块,将数据块调入cache并将cpu想要的目标字调入cpu。
♥ 4 ↩ 3
老师 2020年那道题目 TLB缺失一定要访问主存吗 访问cache 不行吗
♥ 2 ↩ 1
🐮
♥ 2
高产啊,老师辛苦了[打call]
♥ 2
cpu给出虚拟地址,TLB是一个硬件存储器,所有进程的表项混在一起存入,通过ASID(地址空间ID确定当前进程)+虚拟页号和TLB中所有表项进行比较,判断是否在其中。如果不在TLB中,CPU内部的MMU可以通过【页表基址寄存器地址+虚拟页号*页表项大小】获得该页表项的物理地址,因为页表实际上是虚拟的,通过计算得到某项地址。ppt里cache找到页表项不能说明命中,也没有再去主存查找页表项,只是判断了有效位是否为1,确定页面在主存中。与cache找不到页表项,要去获取主存页表中的页表项,然后根据有效位判断页面在主存中的作用一致:都是只有确定了页面在主存中,才说明命中。
♥ 1
CPU里面的mmu有个ptw部件,tlb没命中会去启用twu遍历内存的页表,而不是去找cache里面有没有页表项@湖科大教书匠
♥ 1 ↩ 3
太通透了高老师,深入浅出的教学,跟您学计组越学越有兴趣
♥ 1
老师,TLB缺失,页和cache都命中的情况下为什么还至少需要访问一次主存呢?直接从cache中取数据不就可以了吗?我指的是您那张表,它是没有考虑写回的吧。
♥ 1 ↩ 1
老师,对于那个框图,TLB未命中,但是后续在cache中找到了相应的页表项。Q:cache中找到了相应的页表项不能确保主存中页面存在吗,咋还要确认页面是否在主存中嘞?[黑眼圈_金箍][黑眼圈_金箍][黑眼圈_金箍]
♥ 1 ↩ 4
TLB命中什么都说明不了,只能说明最近访问过这个虚拟地址,但是TLB 不会存“invalid 的页表项”。TLB 里的一定是有效页(valid=1),所以TLB可以保证页一定存在于内存。
为什么是去cache找页表项,数据访问阶段如果是用物理地址直接从cache取出数据了,如果你说的是虚实转换页表存储在cache里的话,那这种说法也有点不伦不类的,因为TLB缓存未命中的时候,会走MMU通道转换虚实地址,第一步是在基址寄存器中取出页表的起始物理地址,然后CPU去对应物理地址+虚拟页号*页表项大小取出页框号(假设是只有一层页表),实际上这一步确实先会去cache查找出这个页框号,而且是大概率,因为虚拟内存计算机里页表访问肯定非常的频繁,如果不存在会去内存找,然后再把这个主存块调入cache中(根据cache映射规则),然后用页框号拼接虚拟地址的页内偏移地址得到这个数据在内存中实际的物理地址,CPU再通过这个物理地址进行访存,这时候还会先去cache里查找看主存块是否已经被缓存,如果缓存了直接从cache中取出数据,如果没有缓存,则去内存里取回内存块到cache,并且得到数据,然后还会把这个虚实转换的地址放到TLB里
老师,根据您在4-8-4-(4)中PPT给出例子和408的题目,TLB中页表项即使存在也还要比较有效位,为什么这个框图默认 【 若页表项在TLB中则页表项一定有效(页已调入内存) 】 ,而在cache中查到页表项后则要判断其是否有效呢[大哭]
页表项不在tlb里不是直接访问主存看页表吗,怎么还要看在不在cache,cache会存储页表吗,感觉和王道书有点不一样
↩ 2
老师,假如出现缺页异常,下一次访问tlb必定命中吗?即最多只能访问一次慢表?
不知道对不对, 对于页,cache没有页,tlb肯定没有。 对于数据,没有页才不会有数据。
实名羡慕up这溢出屏幕的才华[点赞][点赞][点赞],YYDS!快来一键三连吧[热词系列_优雅] 一、基于TLB和TSH的仿存流程,包括TLB命中和态势命中的情况,以及在虚拟存储器技术下的访存流程。 00:24 - 介绍TLB的基本工作原理 01:13 - 操作系统引导完成后,CPU使用虚拟地址访问主存 01:31 - 在具有cache的计算机中,CPU的一次完整访存流程 二、在具有态势并采用虚拟存储器技术的计算机中 CPU的一次完整缓存流程,包括TLB命中、页面命中等情况的可能性及其后续流程。 03:01 - 通过页表项地址从常驻于储存的页表中获取相应的页表项 03:24 - 若虚拟页面还未掉入主存,则会产生缺页异常,由操作系统调用缺页异常处理程序进行处理 05:50 - 根据TLB命中则夜一定命中的规则,可以推出这两种情况是不可能的 三、本节课的内容,包括访问流程、判断开始是否命中的步骤、PLD缺失处理等,并提供了相关考研真题供同学们练习。 06:00 - 可能出现的情况和访问流程的判断 07:18 - 最糟糕的情况需要访问储存两次,其他情况不可能出现 08:43 - 挑战2010年和2015年的考研真题,提供答案和解题思路 四、两道虚拟存储题的解题思路和答案,其中第二道题目还涉及到了写穿方式和TLB态势访问主存等知识点。 09:00 - 本题的答案是选项B,大家选对了吗? 09:26 - 题目要求访问储存的次数最少,TLB命中页命中是最好情况。 10:09 - 本题的答案是选项D,相信同学们都能正确完成。 --以上内容由模型基于视频内容生成,仅供参考。视频总结、高能空降欢迎召唤热心市民@AI视频小助理