计算机组成原理 第18讲_虚拟存储器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
盛建伦 jlsheng@qtech.edu.cn
段式虚拟存储器 (Segmentation) Using segmentation, an application's virtual address space is divided into variable-length segments. A virtual address consists of a segment number and an offset within the segment. 段式虚拟存储器是把一个程序分成多个在逻辑上形成整体、 相互独立或基本独立,而且可清楚定义的模块。 如:子程序,过程,数据表,等。这些模块的大小可以是不同 的,甚至预先不知道。
虚存空间划分成 2 NV 个页面,每个页面容量为 2 Nr个存储单元。 实存只有 2 nV 个页面。 2 nV << 2 NV
页面大小一般为1k字~ 8K字。
页的划分是机械的,与程序结构和大小无关。
程序员按虚存空间编制程序。虚地址是逻辑地址,由虚页 号及页内地址组成,必须经过地址变换得到主存/辅存实地址。
nv
相等
N v中的 nd 比较。
页面失效
比较
页表 0 1
如果相符,表示该虚页已在实存中。 将虚地址中的 nv 和 N r 作为实地址。 否则,页面失效。 地址
2 nV 个
单元
实页冲突概率高,实存利用率低。
组相联映象的页式虚拟存储器 将实存空间和虚存空间都分成组,每组K=2S页。
q Q 2 实存共 2 个页,分成 组,整个实存是一区。 nd 虚存分成与实存同样大小的 2 区。
一、主要元件设计 1.程序计数器 功能要求: 8 位二进制计数器,同步并行置数,同步复位(清 零),三态输出。 提示:注意程序计数器的“加一”功能。 2.数据寄存器 功能要求:8位,同步并行置数,双向三态输出。 3.地址寄存器 功能要求:8位,同步并行置数,三态输出。
实验课题3
实验内容:
控制器部件设计
盛建伦 jlsheng@qtech.edu.cn
在实存的RAM中有一个页表,页表共有2 NV 行,每行对应一个虚页。 页表中有每个虚页是否装入主存的标志(装入位)和主存实页号。
CPU访存时,首先做虚地址到主存实地址的地址变换—查页表。 用Nv在页表中选中一行。 若该行的装入位为1, 则该页在实存中,对 应的实页面地址nv 在 该行中。 将 nv 与 N r拼接, 得 到实存地址 n p 。 若该行的装入位为 0 , 则需从辅存调入。 (页故障)
S
nr
S
目录表 如果查到,则 将表中相应的 S与q`拼接,就 是实地址nv 。
Systems can have one page table for the whole system or a separate page table for each application. 页表也构成表层次。 因为整个页表是连续存储的。当一个页表的大小超过一个 页面的大小时,页表就可能分成若干页,分存于几个不连续的 页面中。 这些页表的起始地址又放在一个新的页表(页表的表)中, 形成二级页表层次。通常把第一级页表驻留在主存中。第二级 页表只有一部分在主存中,大部分可保存在辅存,需要时再调 入。
盛建伦 jlsheng@qtech.edu.cn
当CPU访问主存不命中时,必须从辅存把包含这个字的1个 数据块传送到主存,然后,CPU才能在主存中访问到这个字。若 传送该数据块的时间为TB, TA2= TB + TM 则 “主存-辅存”层次的平均访问时间
TA= H· TA1 +(1—H)· TA2 = H· TM +(1—H)· (TB + TM) = TM +(1—H)· TB
整个实存是一区。 nd 虚存分成与实存同样大小的 2 区。
实存
0 1 2 3 0 1 2 3 0 1 2 3 4 5 6 7
0组
第0组
第 0 区
1组
第1组
0组 第 1 区
组相联的目录表有2q组,每组2S行。 表的总容量 2 nv 2 q 2 S 行。
1组
组相联映象的页式虚拟存储器 地址变换过程: 先用虚地址中 nd q` 的q`按地址访 问,在2q组中 选出一组。 q 对该组再用 不等 相联比较 nd S ( ` Tag) 相等 在2S行中进行 相联查找。 nd S` S 如果在2 行中 查不到相符 的,则表示 该虚页不在 实存中。 S` Nr
nv 为 14 位。
页表有 1M
每行 2
nr
实存地址
np
行,
字节,
1
nv
……
命中
页表的容量为 2MB
。
页表
全相联映象的优点是实页冲突概率最小。
直接映象的页式虚拟存储器 每个虚页只能映射到实存一个特定页面。 页表中存放的是 nd 。 用 nv 做地址去查表。 将页表中对应的 nd 读出与 nd nv nr Nr np Ns
令每个模块是一个段Segment,都从该段的起点开始编址。
如;代码段、堆栈段、数据段、等。
盛建伦 jlsheng@qtech.edu.cn
在调入该段时,由操作系统赋予该段一个基址。由基址和 原来在段内的地址相加形成该段每个单元在主存的实地址。 用段表指明各段在主存的位置。每段有自己的名称、段起 点、段长等。段表本身也是一个段,一般在主存中。
由于各段是按其逻辑特点组合的,容易以段为单位实现存 储保护。段的分界与程序的自然分界相对应。
段的逻辑独立性使它易于编译、管理、修改和保护,便于 多道程序共享已经在主存中的程序和数据。
盛建伦 jlsheng@qtech.edu.cn
一、主要元件设计 4.指令寄存器 功能要求:8位,同步并行置数。 5.指令译码器 功能要求:3-8译码器。 二、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中 必须清楚说明仿真波形数据是怎样设计的。
盛建伦 jlsheng@qtech.edu.cn
第 7 章 存储系统
Chaptewenku.baidu.com 7 Storage System
nV
Nv Ns 区号nd 组号q` 组内页号S` nv np 组号q 组内页号S 页内地址nr 页内地址Nr
K值越大,实页冲突概率越低。
当K= 2
nV
时是全相联。
当K=1时是直接映象。
组相联映象的页式虚拟存储器
q Q 2 实存共 2 个页,分成 组,
nV
虚存 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
盛建伦 jlsheng@qtech.edu.cn
虚拟存储器和Cache-主存层次的管理原则基本相同。把程 序中常用的页(块)驻留在较高速的存储器中。一旦某页变的 不常用了,则把它替换出去。 虚拟存储器的地址映象(或称定位算法)是指每个虚页按 什么规则(算法)装入(定位于)实存,地址变换是指程序按 照映象关系装入实存后,在程序运行时虚地址如何变换成对应 的实存地址。 当处理机发出访存地址时,首先进行虚地址到主存实地址 的映象变换,如果出现页故障,再进行虚地址到辅存实地址的 映象变换。 虚地址到主存实地址的地址映射变换有:直接映射,相联 映射,组相联映射,段相联映射等。
计算机组成原理
Principles of Computer Organization
广义双语教学课程
青岛理工大学 校级精品课程
http://211.64.192.109/skyclass25/ http://jx.qtech.edu.cn/ec/C84/
实验课题3
控制器部件设计
(2学时)
按照题目要求设计计算机控制器各主要部件的逻辑,决定外 部的端口(名称、有效电平)和内部各元件的连接,画出系统框 图和逻辑图,设计仿真数据,用VHDL编程和仿真。 实验内容:
(3) Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory, while in fact it may be physically fragmented and may even overflow on to disk storage. Systems that use this technique make programming of large applications easier and use real physical memory (e.g. RAM) more efficiently than those without virtual memory.
盛建伦 jlsheng@qtech.edu.cn
程序在装入主存前由操作系统分配页面。如果分配的页面比 程序需要的少,就先装入一部分,其他部分在需要的时候再装入。
虚存地址到主存实地址的映象变换是由页表实现的。页表应该 在主存中,这样每次访存都要加上一次访存查页表Page Table。 Almost all implementations use page tables to translate the virtual addresses seen by the application program into physical addresses (also referred to as "real addresses") used by the hardware to process instructions. Each entry in a page table contains the starting virtual address of the page--either the real memory address at which the page is actually stored, or an indicator that the page is currently held in a disk file. 若采用全相联映象,任何虚页能映射到实存任何页面位置。
Embedded systems and other special-purpose computer systems which require very fast, very consistent response time do not generally use virtual memory.
盛建伦 jlsheng@qtech.edu.cn
页式虚拟存储器 ( Paged virtual memory ) Almost all implementations of virtual memory divide the virtual address space of an application program into pages; A page is a block of contiguous virtual memory addresses. 页式虚拟存储器把虚存空间分成页,实存空间也分成同样大 小的页,称为实页和物理页,虚存的页面称为虚页或逻辑页。
盛建伦 jlsheng@qtech.edu.cn
§7.3 虚拟存储器 (Virtual Memory)
虚拟存储器指的是“主存-辅存”层次。它能使该层次具有 辅存的容量,接近于主存的等效速度和辅存的每位成本。它使得 程序员可以按比主存大得多的虚存空间编制程序。 对于大的程序,可以先分配少数几个页面,将该程序的一部 分装入主存。在运行中间,发生缺页时再按需陆续调入。只要主 存容量大于某个最小值,不论机器配备多大容量的主存,程序可 不必作任何修改照样能运行。 主存实际容量的大小会影响系统工作的效率和解题速度。 虚拟存储系统的设计目标是:设法获得主存储器的最佳使 用,形成一个高性能、低价格的大容量存储器。 虚拟存储器的管理方法有:页式、段式和段页式。
虚地址
虚页号
Nv
nv
页内地址 N
r
Ns
np
装入位 实页号 0 1 2 3 4 0
nr
实存地址
1
nv
……
命中
页表
例如, 实存容量16MB ,按字节编址,虚存空间1024M,页容量1KB。 虚存 1M 页面,
虚地址 装入位 实页号 0 1 2 3 4 0 虚页号
Nv
nv
页内地址
Nr Ns
实存 16K 页面。
段式虚拟存储器 (Segmentation) Using segmentation, an application's virtual address space is divided into variable-length segments. A virtual address consists of a segment number and an offset within the segment. 段式虚拟存储器是把一个程序分成多个在逻辑上形成整体、 相互独立或基本独立,而且可清楚定义的模块。 如:子程序,过程,数据表,等。这些模块的大小可以是不同 的,甚至预先不知道。
虚存空间划分成 2 NV 个页面,每个页面容量为 2 Nr个存储单元。 实存只有 2 nV 个页面。 2 nV << 2 NV
页面大小一般为1k字~ 8K字。
页的划分是机械的,与程序结构和大小无关。
程序员按虚存空间编制程序。虚地址是逻辑地址,由虚页 号及页内地址组成,必须经过地址变换得到主存/辅存实地址。
nv
相等
N v中的 nd 比较。
页面失效
比较
页表 0 1
如果相符,表示该虚页已在实存中。 将虚地址中的 nv 和 N r 作为实地址。 否则,页面失效。 地址
2 nV 个
单元
实页冲突概率高,实存利用率低。
组相联映象的页式虚拟存储器 将实存空间和虚存空间都分成组,每组K=2S页。
q Q 2 实存共 2 个页,分成 组,整个实存是一区。 nd 虚存分成与实存同样大小的 2 区。
一、主要元件设计 1.程序计数器 功能要求: 8 位二进制计数器,同步并行置数,同步复位(清 零),三态输出。 提示:注意程序计数器的“加一”功能。 2.数据寄存器 功能要求:8位,同步并行置数,双向三态输出。 3.地址寄存器 功能要求:8位,同步并行置数,三态输出。
实验课题3
实验内容:
控制器部件设计
盛建伦 jlsheng@qtech.edu.cn
在实存的RAM中有一个页表,页表共有2 NV 行,每行对应一个虚页。 页表中有每个虚页是否装入主存的标志(装入位)和主存实页号。
CPU访存时,首先做虚地址到主存实地址的地址变换—查页表。 用Nv在页表中选中一行。 若该行的装入位为1, 则该页在实存中,对 应的实页面地址nv 在 该行中。 将 nv 与 N r拼接, 得 到实存地址 n p 。 若该行的装入位为 0 , 则需从辅存调入。 (页故障)
S
nr
S
目录表 如果查到,则 将表中相应的 S与q`拼接,就 是实地址nv 。
Systems can have one page table for the whole system or a separate page table for each application. 页表也构成表层次。 因为整个页表是连续存储的。当一个页表的大小超过一个 页面的大小时,页表就可能分成若干页,分存于几个不连续的 页面中。 这些页表的起始地址又放在一个新的页表(页表的表)中, 形成二级页表层次。通常把第一级页表驻留在主存中。第二级 页表只有一部分在主存中,大部分可保存在辅存,需要时再调 入。
盛建伦 jlsheng@qtech.edu.cn
当CPU访问主存不命中时,必须从辅存把包含这个字的1个 数据块传送到主存,然后,CPU才能在主存中访问到这个字。若 传送该数据块的时间为TB, TA2= TB + TM 则 “主存-辅存”层次的平均访问时间
TA= H· TA1 +(1—H)· TA2 = H· TM +(1—H)· (TB + TM) = TM +(1—H)· TB
整个实存是一区。 nd 虚存分成与实存同样大小的 2 区。
实存
0 1 2 3 0 1 2 3 0 1 2 3 4 5 6 7
0组
第0组
第 0 区
1组
第1组
0组 第 1 区
组相联的目录表有2q组,每组2S行。 表的总容量 2 nv 2 q 2 S 行。
1组
组相联映象的页式虚拟存储器 地址变换过程: 先用虚地址中 nd q` 的q`按地址访 问,在2q组中 选出一组。 q 对该组再用 不等 相联比较 nd S ( ` Tag) 相等 在2S行中进行 相联查找。 nd S` S 如果在2 行中 查不到相符 的,则表示 该虚页不在 实存中。 S` Nr
nv 为 14 位。
页表有 1M
每行 2
nr
实存地址
np
行,
字节,
1
nv
……
命中
页表的容量为 2MB
。
页表
全相联映象的优点是实页冲突概率最小。
直接映象的页式虚拟存储器 每个虚页只能映射到实存一个特定页面。 页表中存放的是 nd 。 用 nv 做地址去查表。 将页表中对应的 nd 读出与 nd nv nr Nr np Ns
令每个模块是一个段Segment,都从该段的起点开始编址。
如;代码段、堆栈段、数据段、等。
盛建伦 jlsheng@qtech.edu.cn
在调入该段时,由操作系统赋予该段一个基址。由基址和 原来在段内的地址相加形成该段每个单元在主存的实地址。 用段表指明各段在主存的位置。每段有自己的名称、段起 点、段长等。段表本身也是一个段,一般在主存中。
由于各段是按其逻辑特点组合的,容易以段为单位实现存 储保护。段的分界与程序的自然分界相对应。
段的逻辑独立性使它易于编译、管理、修改和保护,便于 多道程序共享已经在主存中的程序和数据。
盛建伦 jlsheng@qtech.edu.cn
一、主要元件设计 4.指令寄存器 功能要求:8位,同步并行置数。 5.指令译码器 功能要求:3-8译码器。 二、仿真 设计仿真波形数据,要考虑到所有可能的情况。在实验报告中 必须清楚说明仿真波形数据是怎样设计的。
盛建伦 jlsheng@qtech.edu.cn
第 7 章 存储系统
Chaptewenku.baidu.com 7 Storage System
nV
Nv Ns 区号nd 组号q` 组内页号S` nv np 组号q 组内页号S 页内地址nr 页内地址Nr
K值越大,实页冲突概率越低。
当K= 2
nV
时是全相联。
当K=1时是直接映象。
组相联映象的页式虚拟存储器
q Q 2 实存共 2 个页,分成 组,
nV
虚存 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
盛建伦 jlsheng@qtech.edu.cn
虚拟存储器和Cache-主存层次的管理原则基本相同。把程 序中常用的页(块)驻留在较高速的存储器中。一旦某页变的 不常用了,则把它替换出去。 虚拟存储器的地址映象(或称定位算法)是指每个虚页按 什么规则(算法)装入(定位于)实存,地址变换是指程序按 照映象关系装入实存后,在程序运行时虚地址如何变换成对应 的实存地址。 当处理机发出访存地址时,首先进行虚地址到主存实地址 的映象变换,如果出现页故障,再进行虚地址到辅存实地址的 映象变换。 虚地址到主存实地址的地址映射变换有:直接映射,相联 映射,组相联映射,段相联映射等。
计算机组成原理
Principles of Computer Organization
广义双语教学课程
青岛理工大学 校级精品课程
http://211.64.192.109/skyclass25/ http://jx.qtech.edu.cn/ec/C84/
实验课题3
控制器部件设计
(2学时)
按照题目要求设计计算机控制器各主要部件的逻辑,决定外 部的端口(名称、有效电平)和内部各元件的连接,画出系统框 图和逻辑图,设计仿真数据,用VHDL编程和仿真。 实验内容:
(3) Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory, while in fact it may be physically fragmented and may even overflow on to disk storage. Systems that use this technique make programming of large applications easier and use real physical memory (e.g. RAM) more efficiently than those without virtual memory.
盛建伦 jlsheng@qtech.edu.cn
程序在装入主存前由操作系统分配页面。如果分配的页面比 程序需要的少,就先装入一部分,其他部分在需要的时候再装入。
虚存地址到主存实地址的映象变换是由页表实现的。页表应该 在主存中,这样每次访存都要加上一次访存查页表Page Table。 Almost all implementations use page tables to translate the virtual addresses seen by the application program into physical addresses (also referred to as "real addresses") used by the hardware to process instructions. Each entry in a page table contains the starting virtual address of the page--either the real memory address at which the page is actually stored, or an indicator that the page is currently held in a disk file. 若采用全相联映象,任何虚页能映射到实存任何页面位置。
Embedded systems and other special-purpose computer systems which require very fast, very consistent response time do not generally use virtual memory.
盛建伦 jlsheng@qtech.edu.cn
页式虚拟存储器 ( Paged virtual memory ) Almost all implementations of virtual memory divide the virtual address space of an application program into pages; A page is a block of contiguous virtual memory addresses. 页式虚拟存储器把虚存空间分成页,实存空间也分成同样大 小的页,称为实页和物理页,虚存的页面称为虚页或逻辑页。
盛建伦 jlsheng@qtech.edu.cn
§7.3 虚拟存储器 (Virtual Memory)
虚拟存储器指的是“主存-辅存”层次。它能使该层次具有 辅存的容量,接近于主存的等效速度和辅存的每位成本。它使得 程序员可以按比主存大得多的虚存空间编制程序。 对于大的程序,可以先分配少数几个页面,将该程序的一部 分装入主存。在运行中间,发生缺页时再按需陆续调入。只要主 存容量大于某个最小值,不论机器配备多大容量的主存,程序可 不必作任何修改照样能运行。 主存实际容量的大小会影响系统工作的效率和解题速度。 虚拟存储系统的设计目标是:设法获得主存储器的最佳使 用,形成一个高性能、低价格的大容量存储器。 虚拟存储器的管理方法有:页式、段式和段页式。
虚地址
虚页号
Nv
nv
页内地址 N
r
Ns
np
装入位 实页号 0 1 2 3 4 0
nr
实存地址
1
nv
……
命中
页表
例如, 实存容量16MB ,按字节编址,虚存空间1024M,页容量1KB。 虚存 1M 页面,
虚地址 装入位 实页号 0 1 2 3 4 0 虚页号
Nv
nv
页内地址
Nr Ns
实存 16K 页面。