【408笔记】计算机组成原理 第三章 存储系统
文章目录
- 3.1 存储器概述
- 3.1.1 存储器分类
- 按照在计算机中的作用(层次)分类
- 按照存储介质分类
- 按照存取方式分类
- 按照信息的可保存性分类
- 3.1.2 存储器性能指标
- 3.1.3 多级层次的存储系统
- 3.2 主存储器
- 3.2.1 SRAM芯片和DRAM芯片
- SRAM的工作原理
- DRAM的工作原理
- DRAM刷新
- DRAM的读写周期(待补
- SRAM和DRAM的比较
- 存储器芯片的内部结构(待补充
- 3.2.2 只读存储器ROM
- ROM的特点
- ROM的类型
- 重要ROM
- 3.2.3 主存储器的基本组成
- 3.2.4 多模块存储器
- 多体并行存储器
- 单体多字存储器
- 多体并行存储器
- 3.3 主存与CPU连接
- 3.3.1 连接原理
- 3.3.2 主存容量的扩展
- 位扩展法
- 字扩展法
- 线选法
- 译码片选法
- 字位同时扩展法
- 存储芯片的地址分配和片选
- 3.4 外部存储器
- 3.4.1 磁盘存储器
- 1.磁盘存储器
- 磁盘设备的组成
- 存储区域
- 磁记录原理
- 磁盘性能指标
- 磁盘地址
- 硬盘的工作过程
- 2.磁盘阵列
- 3.4.2 固态硬盘SSD
- 补充 光盘
- 3.5 高速缓冲存储器Cache
- 3.5.1 程序访问的局部性原理
- 3.5.2 Cache的基本工作原理
- 3.5.3 Cache和主存的映射方式
- 直接映射
- 全相联映射
- 组相联映射
- 3.5.4 Cache中主存块的替换算法
- LRU算法实现
- 最不经常使用算法的实现
- 3.5.5 Cache写策略
- 写命中:全写法、回写法
- 全写法
- 回写法
- 写未命中:写分配法、非写分配法
- 写分配法
- 非写分配法
- 3.5.- 分离的Cache结构
- 3.5.- 多级Cache结构
- 3.6 虚拟存储器
- 3.6.1 虚拟存储器的基本概念
- 3.6.2 页式虚拟存储器
- 1. 页表
- 2. 快表(TLB)(TODO
- 3.6.3 段式虚拟存储器
- 3.6.4 段页式存储器
- 408 真题
3.1 存储器概述
3.1.1 存储器分类
按照在计算机中的作用(层次)分类
- 主存储器。简称主存、内存。用来存放计算机运行期间所需的程序和数据。CPU可以直接随机对其进行访问,也可以和高速缓冲存储器(Cache)及辅助存储器交换数据。容量小,存取速度快,每位价格高。
- 辅助存储器。简称辅存,外存。存放当前暂时不用的程序和数据,以及需要永久保存的信息。辅存的内容需要调入主存才能被CPU访问。容量大,存取速度慢,单位成本低
- 高速缓冲存储器。简称Cache,位于主存和CPU之间,存放当前CPU经常使用的指令和数据,以便CPU快速访问。现代计算机通常集成在CPU中
按照存储介质分类
可分为:磁表面存储器(磁盘、磁带)、磁芯存储器、半导体存储器(MOS、双极型)、光存储器(光盘)
按照存取方式分类
- 随机存储器(RAM):存储器的任何一个单元都可以随机存取。常用作主存和高速缓存。又分SRAM和DRAM
- 只读存储器(ROM):只能随机读出而不能写入,即使断电,也不会丢失信息
- 串行访问存储器:读写时需要按照物理地址先后进行,包括顺序存取存储器(SAM)(例如磁带)和直接存取存储器(DAM)(例如磁盘、光盘(CD-ROM))
- 磁盘属于 直接存取存储器(DAM)
- 相联存储器是按照 内容指定方式和地址指定方式相结合 进行寻址的存储器
- CD-ROM,即光盘,不属于只读存储器ROM
按照信息的可保存性分类
易失性存储器:断电后失去存储信息,例如RAM
非易失性存储器:断电后不会失去存储信息,例如ROM、磁表面存储器、光盘
破坏性读出:读出信息时,原信息丢失,必须再生
非破坏性读出:读出信息时原信息不丢失
3.1.2 存储器性能指标
- 存储容量 = 存储字长*字数(例如1M*8位)。存储字数表示存储器的地址空间大小,字长表示一次存取操作的数据量
- 单位成本
- 存储速度:数据传输率(主存带宽)=数据宽度/存储周期。存储周期包括存取时间和恢复时间。对于破坏性读出的存储器,存取周期往往比存取时间大的多,可以达到2倍
3.1.3 多级层次的存储系统
CPU-寄存器-Cache-主存-磁盘-磁带、光盘。从左向右,速度越来越慢,容量越来越大,价格越来越低。
存储系统层次结构主要体现在Cache-主存层(解决CPU和主存速度不匹配的问题)和主存-辅存层(解决存储系统容量问题)
主要思想:上一层存储器作为低一层存储器的高速缓存。
从CPU角度看,Cache-主存层速度接近Cache,容量和价格却接近主存;从主存-辅存层分析,其速度接近主存,价格和容量却接近辅存。这就解决了速度、容量和成本之间的矛盾
主存和Cache之间的数据调用是硬件自动完成的,对所有程序员都是透明的。主存和辅存的数据调用由硬件和操作系统完成,对于应用程序员是透明的
虚拟存储系统:编程的地址范围与虚拟存储器的地址空间相对应
3.2 主存储器
主存储器由DRAM实现,Cache由SRAM实现,都属于易失性存储器,断电丢失信息。
ROM属于非易失性存储器
逻辑上主存由ROM和RAM组成,且二者常统一编址
3.2.1 SRAM芯片和DRAM芯片
存储元:存放一个二进制位的物理器件。是存储器最基本的构建
存储单元:地址码相同的多个存储元组成一个存储单元。若干存储单元的集合构成存储体
SRAM的工作原理
静态随机存储器SRAM采用双稳态触发器来存储信息,属于是非破坏性读出
SRAM存取速度快,集成度低,功耗大,价格高,一般用作Cache
DRAM的工作原理
动态随机存储器DRAM采用栅极电容电荷来存储信息,属于是破坏性读出
DRAM存取速度慢,一般用作主存
DRAM刷新
DRAM电容上的电荷一般只能维持1-2ms,即使不断电也会丢失信息,为此必须隔一段时间刷新,通常取2ms。
常见的刷新方式有以下三种
- 集中刷新:利用一段固定的时间,依次对存储器的所有行进行逐一再生。此时停止对存储器的读写操作,称为死时间,又称访存死区
- 分散刷新:对每行的刷新分散到各个工作周期中。一个存储器的系统工作周期分为两部分,前一半用来正常读写,后一半用来刷新。分散刷新增加了系统的存取周期,但没有死区
- 异步刷新:利用最大刷新间隔为2ms的特性。刷新周期除以行数,得到两次刷新操作之间的最大间隔
t
,每t
秒进行一次刷新
DRAM的刷新需要注意:
- 刷新对于CPU是透明的,不依赖外部访问
- DRAM刷新以行为单位,芯片内部自己生成行地址
- 刷新类似读操作,占一个读写周期,但有所不同。刷新不需要选片,即存储器中所有芯片同时被刷新
- DRAM采用分散刷新时,不存在死区时间
DRAM的读写周期(待补
SRAM和DRAM的比较
核心在于存储介质的不同
SRAM | DRAM | |
---|---|---|
存储信息 | 触发器 | 电容 |
读出是否破坏 | 非破坏性读出 | 破坏性读出 |
是否需要刷新 | 不需要刷新 | 需要刷新 |
送行列地址 | 同时送 | 分两次(地址线复用) |
运行速度 | 快 | 慢 |
集成度 | 低 | 高 |
存储成本 | 高 | 低 |
主要用途 | Cache | 主存 |
补充DRAM地址线复用技术
- SDRAM表示同步动态随机存储器,属于DRAM
存储器芯片的内部结构(待补充
3.2.2 只读存储器ROM
ROM的特点
ROM和RAM都支持随机存取,而RAM易丢失存储信息,ROM一旦有信息,就难以改变,掉电也不会丢失。
- 结构简单,位密度比RAM的高
- 具有非易失性,可靠性高
ROM的类型
根据制造工艺的不同,ROM可以分为:掩模式只读存储器(MROM)、一次可编程只读存储器(PROM)、可擦除可编程存储器(EPROM)、Flash存储器以及固态硬盘(SSD)
- 掩模式只读存储器(MROM):生产时写入,之后无法更改
- 一次可编程只读存储器(PROM):允许用户一次写入,之后就无法再修改
- EPROM:可紫外线擦除(UVEPROM),电擦除( E 2 E^2 E2PROM)
- Flash:U盘、SD卡。断电后可保存信息,可多次重写。由于闪存需要先擦除再写入,因此写操作比读操作慢。存储元位密度比RAM高
- SSD:固态硬盘
重要ROM
主板上的BIOS芯片(ROM)存储“自举装入程序”,负责引导装入操作系统(开机)
3.2.3 主存储器的基本组成
考点:
- 芯片的大小描述,引脚数(注意读写控制线是否集成一条
- 某一DRAM芯片,采用地址复用技术,容量为1024*8位,除了电源和接地线,该芯片引脚数最少为(读写为2条):1(片选)+1(行/列选择)+10/2(地址线)+8(数据线)+2(读写控制线)=17
- (14统考)某容量256MB的存储器由若干4M*8位的DRAM芯片组成,该DRAM芯片的地址引脚数为:22/2=11位(注意DRAM地址复用)、数据引脚数为:8位
3.2.4 多模块存储器
多体并行存储器
单体多字存储器
- 存储器中只有一个存储体,每个存储单元存储
m
个字,总线宽度也为m
个字,一次并行读出m
个字,地址必须顺序排列处于同一个单元 - 缺点是:指令和数据在主存内必须顺序存放,遇到转移指令或者操作数不能连续存放,效果就不理想
多体并行存储器
多体并行存储器由多体模块组成,每个模块都有相同的容量和存取速度,各个模块都有独立的读写控制电路、地址寄存器和数据寄存器。
多体并行存储器分为高位交叉编址和低位交叉编址两种
- 高位交叉编址:高位地址表示体号,低位地址表示体内地址。这种方式无法提高存储器吞吐率,属于是顺序存储器
- 低位交叉编址:假设 T T T为存取一个字的存取周期,总线传送周期为 r r r,则交叉模块数量应该大于等于 m = T / r m=T/r m=T/r,才能实现流水。连续存取 m m m个字所需的时间是 t 1 = T + ( m − 1 ) r t_1=T+(m-1)r t1=T+(m−1)r
3.3 主存与CPU连接
3.3.1 连接原理
- 主存储器通过数据总线、地址总线、控制总线和CPU连接
- 数据总线位数与工作频率乘积正比于数据传输率
- 地址总线位数决定了可寻址的最大内存空间
- 控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻
单个芯片内存不会很大,一般通过存储器芯片扩展技术,多个芯片集成在一个内存条上,再由多个内存条及主板上的ROM组成计算机所需内存空间,再通过总线和CPU相连
3.3.2 主存容量的扩展
单个存储芯片容量有限,在字数或字长上与实际要求有区别,因此需要在字和位两方面扩充才能满足需求。
位扩展法
- 用于增加存储字长。例如8片8K*1位的芯片连接成8K*8位的存储器
- 地址端、片选端、读写控制端相应并联,数据端分别引出
字扩展法
- 增加字数,位数不变
- 地址线、数据线、读写控制线相应并联,片选信号区分各个芯片的地址范围
线选法
n n n条线对应 n n n个片选信号,效率不高
地址不连续
译码片选法
n n n条线对应 2 n 2^n 2n个片选信号
地址连续
字位同时扩展法
上述两种方法结合
存储芯片的地址分配和片选
3.4 外部存储器
3.4.1 磁盘存储器
磁盘存储器的优点:
- 存储容量大,位价格低
- 记录介质可以重复使用
- 记录信息可长久保存,不丢失
- 非破坏性读出。不需要再生
缺点:存取速度慢,机械结构复杂,对工作环境要求高
1.磁盘存储器
磁盘设备的组成
- 磁盘驱动器。核心部件是磁头组件和盘片组件。温彻斯特盘是一种可移动磁头固定盘片的硬盘存储器
- 磁盘控制器。硬盘存储器和主机的借口,主流的标准有IDE,SCSI,SATA等
存储区域
一块硬盘含有若干个记录面,每个记录面划分为若干磁道,每条磁道划分为若干扇区。
扇区(块)是磁盘读写的最小单位,磁盘按块存取
- 磁头数(
Heads
):即记录面数,表示硬盘有多少个磁头。磁头用于读取/写入盘片上记录的信息,一个磁头对应一个记录面 - 柱面数(
Cylinders
):表示硬盘每个盘面上有多少条磁道。在一个盘组中,不同记录面的相同编号(位置)的磁道构成一个圆柱面 - 扇区数(
Sectors
):表示每条磁道上有多少个扇区
磁记录原理
磁头和磁性记录介质相对运动时,通过电磁转换完成读/写操作
磁盘性能指标
- 磁盘容量:磁盘能存储的字节总数成为磁盘容量
- 非格式化容量:磁记录表面可以利用的磁化单元总数
- 格式化容量:按照某种特定记录格式能存储的信息总量。(比前者小
- 记录密度:盘片单位面积上记录二进制信息量
- 道密度:沿半径方向单位长度的磁道数
- 位密度:磁道单位长度记录的二进制代码位数
- 面密度:位密度和道密度的乘积
需要注意的是磁盘所有磁道记录的信息量一定是相等的,并不是圆越大信息越多。因此内圈的位密度更高
- 平均存取时间:由三部分构成
- 寻道时间:磁头移动到目的磁道的时间(一般取平均值
- 旋转延迟时间:磁头定位到要读写扇区的时间(一般取平均值。题目没说就按转半圈的时间算
- 传输时间:传输数据所需要花费的时间
- 数据传输率:单位时间内向主机传输数据的字节数。
假设磁盘转速 r r r转/ s s s,每条磁道容量 N N N字节,那么数据传输率为 D r = r N D_r=rN Dr=rN
磁盘地址
主机需要向磁盘控制器发送寻址信息。
通常磁盘地址组成为:
驱动器号 | 柱面号(磁道号) | 盘面号 | 扇区号 |
---|
假设系统有4个驱动器,每个驱动器带动一个磁盘,每个磁盘256个磁道,16个盘面,每个盘面划分为16个扇区,则地址构成如下
驱动器号(2) | 柱面号(磁道号)(8) | 盘面号(4) | 扇区号(4) |
---|
硬盘的工作过程
硬盘的主要操作是:寻址、读盘、写盘。
每一个操作都对应一个控制字,硬盘工作时,先取控制字,然后执行
硬盘属于机械式部件,读写操作是串行的,同一时刻不可能既读又写,也不可能同时读写多组数据
2.磁盘阵列
RAID:独立冗余磁盘阵列,多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性
- RAID0没有纠错能力
- RAID1容量减少一半
- RAID1~RAID5中,无论何时有磁盘损坏,都可以随时拔出出错的磁盘,更换好的磁盘,而不会损坏数据
3.4.2 固态硬盘SSD
补充 光盘
3.5 高速缓冲存储器Cache
3.5.1 程序访问的局部性原理
包括时间局部性和空间局部性
- 时间局部性:在最近的未来要用到的信息,很可能是现在正在使用的信息,因为程序中存在循环
- 空间局部性:在最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是临近的,因为指令通常顺序存放,顺序执行。数据一般也是以向量、数组等形式簇聚地存储在一起的
高速缓冲技术就是利用局部性原理,将程序中正在使用的部分数据放在一个高速的Cache中,使CPU的访存操作大多数针对Cache进行,从而提高程序的执行速度
3.5.2 Cache的基本工作原理
Cache位于存储器层次结构的顶层,通常由SRAM构成
为了方便Cache和主存交换数据,Cache和主存通常都被划分为相等的块。Cache块又称Cache行,每行由若干字节构成,块的长度称为块长。
Cache容量远小于主存的容量,因此块的数量也远少于。Cache仅保存主存中最活跃的若干块的副本,需要按照某种策略,预测CPU未来一段时间内欲访存的数据,将其装入Cache
- CPU发出读请求
- 若访存地址在Cache中命中,则将该地址转换为Cache地址,直接对Cache进行读操作
- 若访存地址未在Cache命中,则仍需要访问主存,并把此字所在的块一次性调入Cache。若Cache已满,则需要根据某种替换算法,替换掉某一块。整个过程由硬件实现。
- CPU和Cache数据交换以字为单位,Cache和主存之间数据交换以Cache块为单位
3.5.3 Cache和主存的映射方式
Cache行的信息是主存中某个块的副本,地址映射是将主存地址空间映射到Cache地址空间,即把存放在主存中的信息按照某种规则装入Cache
1.(16 408) 有如下C语言程序段:for(k0;k<1000;k++) {a[k]=a[k]+32;}
若数组a及变量k都是int型,占4B,数据Cache采用直接映射,数据去大小1KB,块大小16B,程序执行前Cache空,则执行该程序段过程中访问数组a的Cache缺失率?
一个Cache块可以存4个相邻的a的元素。对一个元素,要访问两次,那么8次里面只有第一次Cache未命中,缺失率1/8=12.5%
直接映射
C a c h e 行号 = (主存块号) m o d ( C a h c e 总行数) Cache行号=(主存块号)mod(Cahce总行数) Cache行号=(主存块号)mod(Cahce总行数)
主存中的每一块只能装入Cache中的唯一位置,如果这个位置已经存在内容,那么会被无条件地替换出去
直接映射的块冲突概率最高,空间利用率最低
直接映射的地址结构:
标记 | Cache行号 | 块内地址 |
---|
- 标记位进行了优化,末尾几位可以通过Cache块号得到
- 某32位计算机按字节编址,Cache容量为16KB。Cache行大小为16B。主存和Cache采用直接映射,则0x1234E8F8的单元装入Cache的地址为:
解:Cache块地址空间大小=16KB/1B=16K=2^14,因此低14位地址即为Cache内地址- 某存储系统中,主存容量为Cache容量的4096倍,Cache分为64个块,主存地址和Cache地址采用直接映像方式时,地址映射表的大小应该为(不考虑一致性唯一位和替换算法位):64*13bit
解:64块,4096=2^12,12bit再加上1bit有效位(表示是否装入Cache)- 主存容量1MB,Cache容量16KB,每块8个字,每个字32位,采用直接地址映像方式,Cache起始字块为第0块,主存地址35301H存入Cache的第几个字块?(十进制)
解:直接映射的地址结构:Tag、行号、块内地址
每块8个字,每个字32bit=4B,因此每块2^5B,块内地址5位
主存容量220B,Cache容量214B,因此Tag有6位
(0011,01)(01,0011,000)(0,0001) 中间转换为十进制:8+16+128=152- (15 408)假设主存地址32位,按字节编址,主存和Cache采用直接映射方式,主存块大小为4个字,每个字32位,采用回写法,则能存放4K字数据的Cache的总容量至少是?
按照字节编址,主存块432bit = 16B,块内地址4bit,Cache块大小和主存块大小相同,也是16B
Cache存储4K字 = 4K32bit = 16KB 数据,那么有1K个Cache块,块号10bit
那么标记位 32-10-4 = 18bit
加上1位有效位,1位回写脏位,标记要20bit
存储标记:1K*20bit = 20Kb
存储主存数据:16KB = 128Kb
则Cache总容量位数至少148K
全相联映射
主存中的每一块可以装入Cache中的任何位置,每一行包含标记,指出该行取自主存中的哪一块,所以CPU访存需要和所有Cache行的标记进行比较。
- 优点:灵活,Cache块的冲突概率低,空间利用率高
- 缺点:比较速度慢,实现成本高,需要采用昂贵的按内容寻址的相联映射存储器进行地址映射
全相联映射的地址结构:
标记 | 块内地址 |
---|
组相联映射
将Cache块分为大小相等的Q个组,每个主存块可以装入固定组中的任意一行。组间采用直接映射,组内采用全相联映射
C a c h e 组号 = (主存块号) m o d ( C a c h e 组数 Q ) Cache组号=(主存块号)mod(Cache组数 Q) Cache组号=(主存块号)mod(Cache组数Q)
组相联映射的地址结构:
标记 | Cache组号 | 块内地址 |
---|
- 有效容量128KB的Cache,每块16B,8路组相联,字节地址为1234567H的单元调入Cache,其Tag应该为:
解:首先要熟记祖相联映射的地址结构:Tag、组号、块内地址
每块16B=2^4B,因此块内地址4位;组数=128KB/(16B*8)=17-7=10bit;高位剩余部分即为Tag
1234567H=(0001,0010,0011,01)(00,0101,0110),(0111)
3.5.4 Cache中主存块的替换算法
采用直接映射时,一个给定的主存块只能放到唯一固定的Cache行中,无需考虑替换算法
常用的替换算法有:随机算法、先进先出算法(FIFO)、近期最少使用算法(LRU)和最不经常使用算法(LFU)。最常考察LRU算法
- 随机算法:随机确定替换的Cache块。实现简单,但不遵循局部性原理,因此命中率可能比较低
- 先进先出算法:选择最早调入的行进行替换,实现简单,但不遵循局部性原理,因为早调入的行也可能经常使用
- 近期最少使用算法(LRU):选择近期内最久未使用的Cache行作为替换的行。依据程序局部性原理
- 最不经常使用算法:一段时间内访问次数最少的块被替换出
LRU算法实现
最不经常使用算法的实现
- 每一行设置一个计数器,从0开始计数
- 每访问一次,该行所在计数器+1
- 替换时,将计数器值最小的一行替换出
3.5.5 Cache写策略
Cache中的内容是主存的副本,当对Cache中的内容进行更新时,需要选用写策略使Cache内容和主存内容保持一致
分为两种情况:写命中和写不命中
写命中:全写法、回写法
全写法
- 当CPU对Cache写命中时,将数据同时写入主存和Cache
- 某一块主存需要替换时,无需将这一块写回主存。用新调入的块直接覆盖即可
- 优点:实现方式简单,保持主存和Cache数据的一致性;缺点:增加了访存次数
写缓冲:在Cache和主存之间加一个写缓冲队列,FIFO,减少全写法直接写入内存的时间损耗,解决速度不匹配的问题。频繁写时会导致写缓冲饱和溢出
回写法
- CPU对Cache写命中时,只把数据写入Cache,不立即写回内存;当这块被替换时,才写入内存
- 减少了访存次数,但存在不一致的隐患
每个Cache行设置一个修改位(脏位),修改位为1, 说明内容修改过,替换时需要写回内存;反之未修改,不需要写回内存
- 假设主存地址位数为32位,按字节编址,主存和Cache之间采用全相联映射,主存块大小为1个字,每个字32位,采用回写法和随机替换策略。则能存放32K字数据的Cache总容量至少有多少位?
解:全相联映射地址结构:Tag、块内地址
Cache块大小和主存块大小一样,为1个字=32bit=4B,块内地址占2位,因此Tag占30位
回写法需要一位修改位,此外Cache需要一位有效位
数据需要32位
总共32K*(30+1+1+32)bit = 215*26bit=221bit=2048K bit
写未命中:写分配法、非写分配法
写分配法
加载主存的块到Cache中,然后更新这个Cache块。
试图利用程序的空间局部性,缺点是每次不命中都要从主存中读取一块
非写分配法
只写入主存,不进行调块
写分配法通常和回写法一起用
非写分配法通常和全写法结合使用
3.5.- 分离的Cache结构
随着新技术的发展(例如指令预取),需要将数据Cache和指令Cache分开设计,产生分离的Cache结构
统一Cache的优点:设计和实现相对简单;缺点:可能引发冲突
3.5.- 多级Cache结构
3.6 虚拟存储器
主存和辅存共同构成虚拟存储器,二者在硬件和系统软件的共同管理下工作。
对于应用程序员,虚拟存储器是透明的。
虚拟存储器具有主存的速度和辅存的容量
3.6.1 虚拟存储器的基本概念
虚拟存储器将主存或辅存的地址空间统一编址,形成庞大的地址空间。
用户编程允许涉及的地址称为虚地址或逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间
实际的主存单元地址称为实地址或物理地址,实地址对应的是主存地址空间,实地址空间
- CPU使用虚地址时,由硬件辅助找出虚地址和实地址之间的关系,判断这个虚地址对应的存储单元内容是否已经装入主存。
- 若已在主存中,则通过地址变换,CPU可以直接访问主存中的对应内容
- 若不在主存中,则把包含这个字的一页或一段调入主存后,再由CPU访问。若主存已满,则采用替换算法置换主存中的交换块
3.6.2 页式虚拟存储器
虚拟页式存储器以页为基本单位。虚拟空间和主存空间被划分为大小相同的页。
主存的页称为实页、页框;虚存的页称为虚页
虚拟地址分为两个字段:虚页号和页内地址。
虚拟地址到物理地址的转换由页表实现。页表存放在主存中,,是虚页号和实页号的对照表,他记录程序的虚页调入主存时被安排在主存中的位置。
1. 页表
页表的地址结构(虚页号
有效位 | 脏位/修改位 | 引用位 | 物理页/磁盘地址 |
---|---|---|---|
表示页面是否在主存中 | 表明页面是否被修改过 | 配合替换策略进行设置,例如是否实现LRU算法 | 虚页放在哪个地址 |
CPU执行指令时,需要先将虚拟地址转换为主存物理地址
- 页表基址寄存器存放进程的页表首地址,根据虚拟地址高位部分的虚拟页号找到对应的页表项。
- 若装入位为1,则取出物理页号,和虚拟地址的低地址(页内地址)拼接,形成实际的物理地址
- 若装入位为0,则需要进行缺页处理
页式虚拟存储器的优点:页面长度固定,页表简单,调入方便
缺点:程序不可能全是页面的整数倍,最后一页的零头无法利用,造成浪费;页不是逻辑独立的实体,处理、保护和共享都不及段式虚拟存储器优秀
2. 快表(TLB)(TODO
地址转换过程中,需要先访问一次主存查询页表(页表存放在主存中),再访问主存才能取得数据,如果缺页,还要进行页面替换等…访问主存的次数增加了
按照程序的局部性原理,可以将经常访问的页对应的页表项放在Cache组成的快表中,可以明显提升效率
相应地,放在主存中的页表称为慢表
地址转换时,先查询快表,命中则无须访问慢表
快表通常采用全相联或组相联方式。
3.6.3 段式虚拟存储器
3.6.4 段页式存储器
408 真题
(10 408)
- Cache容量计算:包括tag位、有效位、脏位(本题不要求)、存储数据大小
- Cache 和主存映射:直接映射,计算Cache行号。(地址结构:tag|块号|块内地址
- Cache命中率计算
(11 408)
- 地址结构
- 组相连映射
(12 408)
- 计算
- DMA请求
- 多体并行存储器
(14 408)
地址计算
访问cache、主存、磁盘
(18 408)页式存储管理
cache容量:数据+标记
TLB映射
缓存用SRAM,主存用DRAM
【408笔记】计算机组成原理 第三章 存储系统相关推荐
- (计算机组成原理)第三章存储系统-第六节4:Cache的写策略(写回法和全写法,写分配法和非写分配法)
文章目录 一:写命中 (1)写回法(write-back) (2)全写法(write-through) 二:写不命中 (1)写分配法(write-allocate) (2)非写分配法(not-writ ...
- 计算机组成原理三种译码方式,计算机组成原理第三章存储系统
第三章存储系统 3.1存储器的构成 二.六管静态MOS存储单元线路 存储机理:利用双稳态触发器保存信息 T1通.T2止,存0 T1止.T2通.存1 分析:1保持信息:不打扰,不送地址选通信号:2读出: ...
- 计算机组成原理 第三章 存储系统
第三章属于考察重点,涉及到存储器的扩展分类与cache的连接等知识点,不仅复杂而且很容易出错,属于重点内容. 3.1 存储器概述 存储器种类非常多,可以根据不同的角度进行分类. 按照在计算机中的作用分 ...
- (计算机组成原理)第三章存储系统-第三节1:主存储器和CPU的连接
专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:单块存储芯片与CPU的连接 二:多块存储芯片与CPU的连接 (1 ...
- (王道计算机组成原理)第三章存储系统-第二节2:SRAM和DRAM芯片以及DRAM的属性和地址线复用技术
王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:存储器元件不同导致的特性差异 ...
- 计算机组成原理 第三章存储系统 知识点
第三章. 存储器层次机构 基础概念 存储元件:用一个具有两种稳定状态,并且在一定条件下状态可相互转换的物理器件来表示二进制数码0和1,这种器件称为存储元件. 存储单元:由若干个存储元组成一个存储单元. ...
- 计算机组成原理——第三章存储系统(上)
提示:吾与春风皆过客,君携秋水揽星河 文章目录 前言 3.1 存储系统基本概念 3.2.1 主存储器的基本组成 3.2.2 SRAM DRAM\ 3.2.3 只读存储器ROM 3.3.1 主存储器与C ...
- 3 计算机组成原理第三章 存储系统 主存简单模型及寻址 半导体寄存器 存储器分类 主存与CPU连接 双口RAM和多模块寄存器
文章目录 1 主存简单模型及寻址的概念 1.1 主存储器 1.1.1 存储器芯片的基本结构 1.1.2 寻址 2 半导体存储器 2.1 半导体随机存取存储器 2.1.1 DRAM的刷新 2.1.2 S ...
- (计算机组成原理)第三章存储系统-第七节2:页式/段式虚拟存储器
文章目录 一:页式虚拟存储器 二:段式虚拟存储器 三:段页式虚拟存储器 四:虚拟存储器与Cache比较 (1)相同 (2)不同 一:页式虚拟存储器 我们知道,运行一个程序时,需要将该程序调入主存,然后 ...
最新文章
- linux shell脚本字符串连接符,学习Linux shell脚本中连接字符串的方法
- 新晋图灵奖得主Jeff Ullman受质疑,反对者:他享受了不该享受的荣誉
- STM32那点事(3)_中断(下)
- 关于CSS中定位的个人理解
- 【英语学习】【医学】有机化学系统 (1)
- 必看干货!五个步骤帮您成功实施IT SLA
- java dbaResult_资深DBA经验总结 Oracle数据库最佳实践 PDF 下载
- 金蝶K3cloud 7.6注册教程
- 云计算基础设施的定义与介绍
- 【反欺诈场景剖析】虚假账号的产生和流转
- 打开SharePoint时遇到“Server error: http://go.microsoft.com/fwlink?LinkID=96177”
- 基于信用卡业务测试数据支持解决方案
- 【中科院信工所】-2021考研经验-记录一段每天都在思考如何学习的日子
- 【实战技能】软件工程师与AI工程师的区别是什么?
- 追寻红色记忆、晋国文明之思考毕业季研学营
- fer2013的csv文件转换为ImageNet格式(以图片格式保存在各自类别的文件夹中)
- java 使用sourceforge.pinyin4j查询汉字拼音
- numpy 对矩阵,数组的操作
- Three.js快速入门
- js IP地址正则校验
热门文章
- 熊大UWB系列教程二:KEIL软件环境搭建以及程序下载
- python中func自定义函数_Python函数之自定义函数作用域闭包
- 什么是VLAN?如何配置?VLAN间路由又是怎样的?
- Android Killer没有检测到Java SDK安装环境(已解决)
- MAGIX Video Pro X12中文版
- 无许可的开源软件可以使用吗?
- 【Java秒杀方案】11.功能开发-【商品秒杀及优化】防止超卖 接口优化(redis预减库存,内存标记减少redis访问,RabbitMQ异步下单) 安全优化(隐藏秒杀接口,验证码,接口防刷)
- 马斯克宣布将卸任推特CEO:转战技术岗位 ;王坚正式回归阿里云;科大讯飞否认星火大模型套壳ChatGPT|极客头条...
- Element UI 分页问题 this.pageSizes.map is not a function
- 数据管理技术发展的三个阶段