计算机组成原理-存储系统(2)虚拟存储器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当要访问的程序地址为D道1段0页4单元时,
其地址变换过程如图7.12所示。
17
主存空间及D道程序示意图
(b)
18
(a)
图7.11 段页式存储举例
段页式虚拟存储器的地址变换
19
图7.12 段页式虚拟存储器地址变换
7.3.4 虚拟存储器的工作全过程
❖ 虚拟地址的结构----程序员看到的虚拟存储空间:
7.3 虚拟存储器
❖ 虚拟存储器指的是“主存-辅存”层次, 它能使计算机具有辅存的容量,接近于 主存的速度和辅存的每位成本。使程序 员可以按比主存大得多的空间来编制程 序,即按虚存空间编址。
1
两种存储层次的比较
❖ 区别:
主存/cache的访问“时间比”较小,典型 为10:1。每次传送的基本信息单元较小(字 块),几个至几十个字节。
内存中—慢表
14
段式虚拟存储器
❖ 主存和辅存的管理按程序段为单位进行管理。
程序空间 大小
段1 1K 段2 2K
段3 3K 段4 1K 段5 2K
主存空间
段1 段5
地址 0 1K
3K
5K 段3
8K-1
段表
1 0 1 1K
2
0
3 5K 1 3K
4
0
5 1K 1 2K
段段 装 段
号起 入 长
点位
15
段式虚拟存储器虚实地址转换
9
7.3.2 页式虚拟存储器
❖ 在页式虚拟存储系统中,把虚拟空间分成页,称
为虚页或逻辑页;主存空间也分成同样大小的页, 称为实页或物理页。
❖ 虚拟地址到主存实地址的变换由页表实现。
❖ 通常,在页表的表项中,还包括装入位、修改位、 替换控制位和保护位等组成控制字。
控制字
逻辑页号 实存页号 装入位 修改位 替换控制位 保护位
存在位
110 12 位偏移
实存(主存)地址 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
❖ 页表在主存中的地址由页表基址寄存器指出
12
快表和慢表
❖ 页表是保存在主存中的,在访问存储器时, 首先要查页表,即使页面命中,也要先访问 一次主存去查页表,然后再访问主存才能取 得数据,这就相当于主存速度降低了一倍 (访问了2次主存)。如果页面失效,要进行页 面替换、页面修改,访问主存的次数就更多 了。为了减少时间开销,把页表的最活动部 分存放在快速存储器中组成快表,快表由硬 件组成,称为转换旁路缓冲器(TLB)。它比 页表小得多,一般在16~128行之间,快表 只是慢表(主存中的页表)的小小副本。 13
虚地址: 虚拟页号Nv 页内地址Nr
• 实地址结构(以磁盘为例):
Nvd
Nd: 磁盘机号 磁头号 柱面号 块号
块内地址
20
虚拟存储器的工作全过程
❖ 外页表的概念:
把Nv Nvd(即把一个虚拟页号转换成一个辅 助存储器上的具体的物理地址)的表称为外页表。
辅存/主存的访问“时间比”达100:1至 1000:1。每次传送的基本信息单元较大(段或 页),几十至几千字节。 ❖ 相同:
它们采用的地址变换及映像方法和替换策 略,从原理上看是相同的。
2
7.3.1 主存-辅存信息传送单位和存储管理
❖ 主存-辅存层次的信息传送单位可采用几种不同的 方案:段、页和段页。
段表本身也是主存储器的一个可再定位段。
4
段式管理
❖ 把主存按段分配的存储管理方式成为段式 管理。
❖ 段式管理系统的优点:段的分界与程序的 自然分界对应;段的逻辑独立性使它易于 编译、管理、修改和保护,也便于多道程 序共享。
❖ 缺点:容易在段间留下许多空余的零碎存 储空间不好利用,造成浪费。
5
页式管理
转换旁路缓冲器(TLB)
❖ TLB:translation look-aside buffer, 也称页表Cache, 或快表。用快表和慢表实现的虚实地址的转换:
Logical p address
disp
page frame TLB中—快表
f
TLB
page table
p
f
f disp
physical address
0
2
1
1
2
3
4
1
0
1
1
0
0
1
0
…Leabharlann Baidu
…
…
…
…
…
…
…
10
页式虚拟存储器虚实地址转换
页表基址寄存器
页表基地址
+ 控制字 主存页面号
页号
页内地址 虚地址
…
…
…
…
页表(在主存中)
页面号 页内地址 实存地址
11
页式虚拟地址到物理地址的转换
虚拟地址 程序页表
0010 000000000100
0 010 1 1 001 1 2 110 1 3 000 1 4 100 1 5 000 0
❖ 段:按照程序的逻辑结构将程序划分成多个相对独立的部 分。段的大小是可变的。
1K
段1
2K
段2
3K
段3
1K
段4
2K
段5
段1
0K 1K
段5
3K
5K
段3
8K-1
主存用户空
间大小 8K
3
段的管理----段表
段号 1 2 3 4 5
主存中的起始地址 0
5K
1K
装入标记 1 0 1 0 1
段长 1K
3K
2K
❖ 主存的物理空间划分为等长的固定区域,称
为页面。页式管理以固定大小(通常为4KB) 的页面为单位。
程序按页面大小划分
主存用户空间的 页面数目
0页
第0页
1页
第1页
2页
第2页
3页
4页
第3页
5页
6页
6
页的管理----页表
程序的页号 0 1 2 3 4 5 6
主存的页号 0 2 3
1
装入位 1 1 1 0 0 0 1
7
页式管理
❖ 页式管理的优点:新页调入主存很容 易,只要有空白页就可;比段式管理 系统的空间浪费要小得多。
❖ 缺点:由于页不是逻辑上独立的实体, 所以处理、保护和共享都不及段方便。
8
段页式管理
❖ 段式和页式存储管理各有其优缺点, 可以采用段和页结合的段页式存储管 理系统。程序按模块分段,段内分页, 出入主存仍以页为信息传送单位,用 段表和页表进行两级管理。它可以按 段实现共享和保护,因此可以兼取页 式和段式系统的优点。它的缺点是在 地址映像过程中需要多次查表。
段表起始地址 段表长度
<
越界
段号2 位移量100
段号 段长
0 1000 1 600 2 500 3 200
基址
6000 4000 8000 9200
段表
+ 主存
8100
虚地址
物理地址
16
7.3.3 段页式虚拟存储器
❖ 段-页式虚拟地址的表示:
基号D 段号S 页号P 页内偏移d
• 举例说明段页式地址的变换过程:假设主存有32 个页面,有A、B、C三道程序已经占用主存,现 在又有D道程序要进入主存。D道程序有3个段如 图7.11(b)所示,段内页号分别为:0,1; 0,1; 0,1,2。 调入内存后位置如图7.11(a)所示。