导图社区 计算机组成 第三章-存储系统
计算机组成 第三章-存储系统知识梳理,包括存储器概述、主存储器、主存储器与CPU的连接、外部存储器等等。
编辑于2022-11-23 21:10:20 上海存储系统
存储器概述
存储器分类
作用/层次
主存储器(内存)
存放计算机运行期间所需的程序和数据
CPU可以直接访问,也可以和Cache及辅存交换数据
特点:容量较小、存取速度快、单位价格较高
辅助存储器(外存)
存放当前暂时不用的程序和数据,以及需要永久保存的信息
辅存的内容需调入主存后才能被CPU访问
特点:容量大、存取速度慢、单位成本低
高速缓冲存储器(Cache)
位于主存和CPU间,用于存放CPU经常使用的指令和数据,以便CPU的高速访问
特点:速度最快(与CPU匹配),存储容量小、价格高
存储介质
磁表面存储器(磁盘、磁带)
磁芯存储器
半导体存储器(MOS型存储器、双极型存储器)
光存储器(光盘)
存取方式
随机存取
随机存储器(RAM)
存储器的任何一个存储单位都可以随机存取,且存取时间与物理位置无关
读写方便、使用灵活,主要用作主存或Cache
分为静态RAM和动态RAM
只读存储器(ROM)
存储器内容只能随机读出而不能写入;信息一旦写入,即使断电,内容也不会丢失
顺序存取
顺序存取存储器SAM(如磁带)
只能按某种顺序存取,存取时间的长短与信息在存储体上的物理位置有关
存取速度慢
直接存取
直接存取存储器DAM(如磁盘、光盘CO-ROM)
介于顺序和随机之间,存取信息时通常先寻找整个存储器中的某个小区域(如磁盘上的磁道),再在小区域内顺序查找
串行访问存储器
信息的可保存性
易失性存储器
断电后,存储信息即消失的存储器(如RAM)
非易失性存储器
如ROM、磁表面存储器和光存储器
破坏性读出
某个存储单元锁存储的信息被读出时,原存储信息被破坏
非破坏性读出
存储器的性能指标
目标:大容量、低成本、高速度
存储容量
存储容量=存储字数×字长
存储字数:存储器的地址空间大小
字长:一次存取操作的数据量
单位成本
每位价格=总成本/总容量
存储速度
存取时间TA
从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间
存取周期TM
又称读写周期或访问周期,指存储器进行一次完整读写操作所需的全部时间,即两次独立访问存储器操作之间所需的最小时间间隔
一般TM>TA,因为读写操作后需要恢复内部状态
主存带宽BM
又称数据传输率,表示每秒从主存进出信息的最大数量
提高BM的方法
增加存储单元位数
减少TM
采用多个存储体
可靠性
规定时间内,存储器无故障读写的概率
通常用平均无故障间隔时间MTBF衡量,MTBF越长,可靠性越高
多级层次的存储系统
目的:解决容量、速度、价格三者之间的矛盾
Cache-主存层
解决CPU和主存速度不匹配的问题
主存和Cache之间的数据调动由硬件自动完成,对所有程序员透明
主存-辅存层
解决存储系统的容量问题
主存和辅存间的数据调动由硬件和操作系统共同完成,对应用程序员透明
主存储器
随机存储器RAM
随机存取与随机存取存储器不是绑定的,只读存储器(ROM)也是随机存取的
静态随机存储器(SRAM)
 
存储元:存放一个二进制位的物理器件;地址码相同的多个存储元构成一个存储单元,若干存储单元的集合构成存储体
SRAM的存储元是用双稳态触发器(六晶体管MOS)来记忆信息的,即便读出信息后,仍保持原状态不需要再生(非破坏性读出)
存取速度快,但集成度低、功耗较大、价格昂贵、一般用于Cache
动态随机存储器(DRAM)
 
利用存储元电路中栅极电容上的电荷来存储信息
基本存储元通常只使用一个晶体管,比SRAM密度更高;具有容易集成、位价低、容量大和功耗低等优点,但存取速度慢于SRAM,一般用于大容量的主存系统
刷新:DRAM电容上的电荷一般只能维持1~2ms,为此需要定期(2ms)刷新,称为刷新周期,一次刷新需要占用一个存储周期

刷新方式
集中刷新
指在一个刷新周期内,利用一段固定的时间,依次对存储器的所有行进行逐一再生,在此期间停止对存储器的读写操作,称为“死时间”,又称访存“死区"。优点是读写操作时不受刷新工作的影响;缺点是在集中刷新期间(死区)不能访问存储器。
分散刷新
把对每行的刷新分散到各个工作周期中,这样,一个存储器的系统工作周期分为两部分:前半部分用于正常读、写或保持;后半部分用于刷新。这种刷新方式增加了系统的存取周期,如存储芯片的存取周期为0.5us,则系统的存取周期为1us。优点是没有死区;缺点是加长了系统的存取周期,降低了整机的速度。
异步刷新
异步刷新是前两种方法的结合,它既可缩短死时间,又能充分利用最大刷新间隔为2ms 的特点。具体做法是将刷新周期除以行数,得到两次刷新操作之间的时间间隔t,利用逻辑电路每隔时间t产生一次刷新请求。这样可以避免使CPU连续等待过长的时间,而且减少了刷新次数,从根本上提高了整机的工作效率。
DRAM芯片的读写周期
SRAM和DRAM的比较
芯片引脚数
SRAM
地址线+数据线+片选先+读/写控制线(1或2根)
DRAM
地址线(复用,减小一半)+数据线+行通选(代替片选线)+列通选+读/写控制线
存储器芯片的内部结构
存储体(存储矩阵)
存储体是存储单元的集合,它由行选择线(X)和列选择线(Y)来选择所访问单元,存储体的相同行、列上的位同时被读出或写入
地址译码器
用来将地址转换为译码输出线上的高电平,以便驱动相应的读写电路
I/O控制电路
用以控制被选中的单元的读出或写入,具有放大信息的作用
片选控制信号
单个芯片容量太小,往往满足不了计算机对存储器容量的要求,因此需用一定数量的芯片进行存储器的扩展。在访问某个字时,必须“选中”该存储字所在的芯片,而其他芯片不被“选中”,因此需要有片选控制信号
读/写控制信号
根据CPU给出的读命令或写命令,控制被选中单元进行读或写
只读存储器ROM
特点
结构简单,位密度比可读写存储器高
具有非易失性,可靠性高
RAM是易失性的,一旦掉电,则所有信息全部丢失 ROM是非易失性的,其信息可以长期保存
主存的系统程序区用ROM,用户程序区用RAM
类型
掩模式只读存储器MROM
生产过程中直接写入内容,之后不可变
可靠性高,集成度高,价格便宜;灵活性差
一次可编程只读存储器PROM
可实现一次性编程的只读存储器;允许用户利用编程器写入自己的程序,一旦写入不可改变
可擦除可编程只读存储器EPROM
用户可多次读写,但相比于RAM,编程次数有限,且写入时间过长
Flash存储器
基于EPROM,既可在不加点的情况下长期保存信息,又能在线快速读写,如U盘
固态硬盘SSD
由控制单元和存储单元(Flash芯片)组成,保留了Flash存储器长期保存信息、快速擦除与重写的特性
相比传统硬盘,读写速度快、低功耗;但价格较高
注意,CD-ROM是一种光盘存储器,而非ROM
主存储器的基本组成
存储体
编制单元:具有相同地址的那些存储元件构成的一个单位,可以按字节或字编址
记忆单元(存储元件):具有两种稳态的能表示二进制0和1的物理器件
容量
数据线数=MDR宽度
地址线数=MAR宽度
设地址线32位,数据线64位,则容量=2^32*64 位
指令执行过程
CPU将被访问单元的地址送到MAR中
通过地址线将主存送到主存中的地址寄存器
地址译码器进行译码选中相应单元
CPU将读写信号通过控制线送到主存的读写控制电路
读操作
主存读出选中单元的内容送到数据线,然后送到MDR中
写操作
CPU同时将写的信息送到MDR中,在读写控制电路的控制下,经数据线将信号写入选中的单元
地址引脚复用技术
  
DRAM芯片容量较大,地址位数较多,为了减少芯片的地址引脚数,通常采用地址引脚复用技术,行地址和列地址通过相同的引脚分先后两次输入,这样引脚数可减少一半
多模块存储器
定义
多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。常用的有单体多字存储器和多体低位交叉存储器。
注意:CPU的速度比存储器的快,若同时从存储器中取出n条指令,就可充分利用CPU资源,提高运行速度。多体交叉存储器就是基于这种思想提出的。
分类
单体多字存储器
特点
存储器中只有一个存储体,每个存储单元存储m个字,总线宽度为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元
优点
每隔1/m存取周期,CPU向主存取一条指令,显著提高了单体存储器的工作速度
缺点
指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或操作数不能连续存放,这种方法的效果就不明显。
多体并行存储器
特点
多体并行存储器由多体模块组成。每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交叉工作。
分类
高位交叉编制(顺序方式)
高位地址表示体号,地位地址为体内地址
模块内地址连续,故访问连续主存块时,仍是在一个模块中串行存取,不能提高吞吐率
低位交叉编制(交叉方式)
低位地址为体号,高位地址为体内地址;模块号=单元地址 % m
可采用流水线的方式并行存取,提高存储器的带宽
16. 某计算机主存按字节编址,由 4 个 64M×8 位的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 需要的存储周期数是( C )。 A. 1 B. 2 C. 3 D. 4 解:交叉存储器,又称低位交叉编址(低位地址为体号,高位地址为体内地址)。所以主存地址最低二位表示该字节存储的芯片编号。double型变量占64位,8个字节。 它的主存地址804 001AH 最低二位是10,说明它从编号为 2 的芯片开始存储(共 4 个芯片,编号从 0 开始)。一个存储周期可以对所有芯片各读取一个字节,根据公式,t=T+(m-1)× T / 4 = 2.75T 答案:B
 
m——交叉存取度(存储器交叉模块数)
T——单字的存取周期
r——总线传送周期
该公式保证了流水线不间断(即启动某个模块后m×r的时间,再启动该模块时,上次的存取操作已结束)
连续存取m个字所需时间:t1=T+(m-1)r
顺序存取m个字所需时间:t2=mT
主存储器与CPU的连接
连接原理
主存储器通过数据总线、地址总线和控制总结与CPU连接
数据总线的位数与工作频率的乘积正比于数据传输率
地址总线的位数决定了可寻址的最大内存空间
控制总线(读/写)指出总线周期的类型和本次输入/输出操作完成的时刻。
存储器芯片扩展技术
将多个芯片集成在一个内存条上,由多个内存条及主板上的ROM芯片组成计算机所需的主存空间,再提高总线与CPU相连
主存容量的扩展
定义
由于单个存储芯片的容量是有限的,它在字数或字长方面与实际存储器的要求都有差距,因此需要在字和位两方面进行扩充才能满足实际存储器的容量要求。通常采用位扩展法、字扩展法和字位同时扩展法来扩展主存容量。
分类
位扩展法
注意:仅采用位扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,在某一时刻选中所有的芯片,所以片选信号CS要连接到所有芯片.
基本思想
对存储芯片进行扩位(即进行位扩展,用多个存储器件对字长进行扩充,增加存储字长),使其数据位数与CPU的数据线数相等
方法
将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出
字扩展法
基本思想
增加存储器中字的数量,而位数不变。字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围
地址分配
注意:仅采用字扩展时,各芯片连接地址线的方式相同,连接数据线的方式也相同,但在某一时刻只需选中部分芯片,所以通过片选信号CS或采用译码器设计连接到相应的芯片。
第1片
最低地址:0000000000000000
最高地址:0011111111111111(16位)
第2片
最低地址:0100000000000000
最高地址:0111111111111111
第3片
最低地址:1000000000000000
最高地址:1011111111111111
第4片
最低地址:1100000000000000
最高地址:1111111111111111
字位同时扩展法
注意:采用字位同时扩展时,各芯片连接地址线的方式相同;但连接数据线的方式不同,而且需要通过片选信号CS或采用译码器设计连接到相应的芯片。
字位同时扩展是指既增加存储字的数量,又增加存储字长
如图所示,用8片16K×4位的RAM芯片组成64K×8位的存储器
位扩展:每两片构成一组16K×8位的存储器
字扩展:4组便构成64K×8位的存储器
存储芯片的地址分配和片选
定义
片选
CPU访问存储单元时,首先选择存储芯片
片选信号的产生分为线选法和译码片选法
字选
为选中的芯片依地址码选择相应的存储单元,以进行数据的存取
片内的字选通常是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端(N由片内存储容量2^N决定)
线选法
用除片内寻址外的高位地址线(或经过反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片
假设4片2K×8位存储芯片用线选法构成8K×8位存储器,其中A10~A0作为字选线
优点
不需要地址译码器,线路简单
缺点
地址空间不连续,选片的地址线必须分时为低电平(否则不能工作),不能充分利用系统的存储器空间,造成地址资源的浪费
译码片选法
用除片内寻址外的高位地址线(或经过反相器)通过地址译码器芯片产生片选芯片
假设8片8K×8位存储芯片构成64K×8位存储器
A15A14A13=000时选中第一片
A15A14A13=001时选中第二片
.......
存储器与CPU的连接
合理选择存储芯片
选用ROM存放系统程序(如操作系统)、标准子程序和各类常数
选用RAM用于用户编程
地址线的连接
字选
将CPU地址线的低位与存储芯片的地址线相连,以选择芯片中的某一单元,这部分的译码是由芯片的片内逻辑完成的
片选
CPU的高位在扩充存储芯片时使用,用来选择存储芯片,这部分译码由外界译码器逻辑完成
数据线的连接
CPU的数据线数与存储芯片的数据线数不一定相等,在相等时可直接相连;在不等时必须对存储芯片扩位,使其数据位数与CPU的数据线数相等。
读/写命令线的连接
CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。有些CPU的读/写命令线是分开的(读为RD,写为WE,均为低电平有效),此时CPU的读命令线应与存储芯片的允许读控制端相连,而CPU的写命令线则应与存储芯片的允许写控制端相连。
片选线的连接
片选有效信号与CPU的访存控制信号MREQ(低电平有效)有关,因为只有当CPU要求访存时,才要求选中存储芯片。若CPU访问I/O,则MREQ为高,表示不要求存储器工作。
外部存储器
磁盘存储器
优点
①存储容量大,位价格低
②记录介质可重复使用
③记录信息可长期保存而不丢失,甚至可脱机存档
④非破坏性读出,读出时不需要再生
缺点
存取速度慢,机械结构复杂,对工作环境要求较高
磁盘设备的组成
硬盘存储器的组成
磁盘驱动器
核心部件是磁头组件和盘头组件,温彻斯特盘是一种可移动磁头固定盘片的硬盘存储器
磁盘控制器
硬盘存储器和主机的接口,主流标准由IDE、SCSI、SATA等
盘片
存储区域
硬盘
记录面
磁头数:即记录面数 ,表示硬盘共有多少个磁头,磁头用于读取/写入盘片上记录面的信息,一个记录面对应一个磁头
磁道
柱面数:表示硬盘每面盘片上有多少条磁道
在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个圆柱面
扇区(块)
扇区数表示每条磁道上有多少个扇区
磁记录原理
原理
磁头和磁性记录介质相对运动时,通过电磁转换完成读/写操作
编码方法
按某种方案(规律),把一连串的二进制信息变换成存储介质磁层中一个磁化翻转状态的序列,并使读/写控制电路容易、可靠地实现转换
磁记录方式
通常采用调频制(FM)和改进型调频制(MFM)的记录方式
磁盘的性能指标
记录密度
定义:盘片单位面积上记录的二进制信息量
表示方式
道密度
沿磁盘半径方向单位长度上的磁道数
位密度
磁道单位长度上能记录的二进制代码位数
面密度
位密度×道密度
磁盘的容量
非格式化容量
定义:磁记录表面可利用的磁化单元总数
由道密度和位密度计算而来
格式化容量
定义:指按照某种特定的记录格式所能存储信息的总量
格式化后容量<非格式化容量
平均存取时间
寻道时间
磁头移动到目的磁道的时间
题干给出
旋转延迟时间
磁头定位到要读写扇区的时间
=旋转半周时间
传输时间
传输数据所花费的时间
=旋转过一个扇区的时间
数据传输率
   
磁盘存储器在单位时间内向主机传送数据的字节数
公式
磁盘转数:r转/秒
每条磁道容量为N字节
磁盘地址
系统中有4个驱动器,每个驱动器带一个磁盘,每个磁盘256个磁道、16个盘面,每个盘面划分为16个扇区,则每个扇区地址要18位二进制代码
工作过程
硬盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字;硬盘工作时,第一步是取控制字,第二步是执行控制字。 硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。
寻址
读盘
写盘
磁盘阵列
RAID通过同时使用多个磁盘,提高了传输率; 通过在多个磁盘上并行存取来大幅提高存储系统的数据吞吐量; 通过镜像功能,提高安全可靠性; 通过数据校验,提供容错能力。
定义
RAID(独立冗余磁盘阵列)是指将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性。
分类
RAID0: 无冗余和无校验的磁盘阵列
RAID1: 镜像磁盘阵列
RAID2: 采用纠错的海明码的磁盘阵列
RAID3: 位交叉奇偶校验的磁盘阵列
RAID4: 块交叉奇偶校验的磁盘阵列
RAID5: 无独立校验的奇偶校验磁盘阵列
固态硬盘
定义
固态硬盘(SSD)是一种基于闪存技术的存储器,一个SSD由若干个闪存芯片和闪存翻译层组成
闪存芯片:替代传统旋转磁盘中的机械驱动器
闪存翻译层:类似磁盘控制器,将CPU的读写请求翻译成对底层设备的读写控制信号
组成
B块(16~512KB)
P页(512B~4KB)
特点
由半导体存储器构成,随机访问时间较快,能耗更低,抗震性号,安全性高
闪存块易磨损
高速缓冲存储器
程序访问的局部性原理
时间局部性
空间局部性
Cache的基本工作原理
Cache组成
为便于Cache与主存交换信息,Cache和主存都划分为相等的块,每个Cache块(行)都有若干字节组成,其长度称为块长(行长)
Cache与主存间的数据交换以块为单位;Cache与CPU间的数据交换以字为单位
Cache中的块数远少于主存,为此需预测未来一段时间内会被CPU访问的数据,将其装入Cache
Cache完全由硬件实现,对程序员透明,而虚拟存储器则是由硬件和OS共同完成,对系统程序员不透明,但对应用程序员透明
工作过程
性能指标
命中率
Nc:Cache的总命中次数
Nm:访问主存的总次数
访问时间
tc:命中Cache时的访问时间
tm:未命中时的访问时间
主要问题
数据查找
数据是否在Cache中
地址映射
主存地址→Cache地址
替换策略
Cache块的淘汰策略
写入策略
主存块和Cache的数据一致性
Cache和主存的映射方式
1. Cache容量 = 行数 ×行长 行长 = 有效位 + 标记位Tag + 一致性维护位(如脏位) + 替换算法控制位 + 数据位 其中,有效位、tag和数据位一般都要考虑,剩下的看情况
地址映射
把主存地址空间映射到Cache地址空间,即把存放在主存中的信息按照某种规则装入Cache
标记:Cache中记录主存的编号
有效位
直接映射
 答:每块可以放4个数据。读取的时候4次未命中一次,存入结果的时候4次均命中。故答案为1/8
基本思想
主存中的每一块只能装入Cache中的唯一位置,若产生块冲突,则直接淘汰旧数据(故无须替换算法)
Cache行号 = 主存块号 mod Cache总行数
设Cache共有2^c行,主存有2^m块
主存地址低位是偏移量(=Cache行长),主存块号(即主存地址去除偏移量)的低c位是其对应的Cache行号,每个Cache行有长为(m-c)的标记,表示其存储的主存块号
主存地址结构
访存过程
首先找到访存地址对应的Cache行
比较高t位标记
标记相等且有效位=1
访问命中
否则
不命中,进行Cache替换
优点
实现简单
缺点
不够灵活,空间利用率低,块冲突概率最高
全相联映射
基本思想
主存中的每一块的可装入Cache中的任何位置,每行的标记唯一标识一个主存块
地址结构
优点
比较灵活,块冲突概率低,空间利用率高,命中率高
缺点
标记比较的速度较慢(但性能仍是最高的),实现成本较高
组相联映射
基本思想
结合上述两种方法,将Cache分成Q个大小相等的组,每个主存块可以装入固定组的任意一行,设每组有r行,记为r路组相联
组间直接映射
组内全相联映射
Cache组号 = 主存块号 mod Cache组数(Q)
地址结构
比较
Cache中主存块的替换算法
随机算法(RAND)
随机地确定替换的Cache块
实现简单,但未利用局部性原理,命中率较低
先进先出算法(FIFO)
选择最早调入的行进行替换
实现简单,但同样未依据局部性原理
近期最少使用算法(LRU)
依据程序访问的局部性原理,选择近期长久未访问的Cache行进行替换。平均命中率高于FIFO,是堆栈类算法
实现
为每个Cache行设置一个计数器,用来记录主存块的使用情况,其位数为log2(n)(n路组相联)
命中时
所命中的行的计数器清零,比其低的计效器加1,其余不变
未命中
有空闲行
新装入的行的计数器置0,其余全加1
无空闲行
计数值为3的行的信息块被淘汰,新装行的块的计数器置0,其余全加1
最不经常使用算法(LFU)
将一段时间内被访问次数最少的存储行换出
每行设置计数器,被访问时+1,替换时选择计数最小的Cache行
Cache写策略
Cache写命中
全写法(写直通法)
定义:把数据同时写入Cache和主存,当某块被替换时,无需写回
优点
实现简单,能随时保持主存数据的正确性
缺点
增加了访存次数,降低了Cache效率
写缓冲:一个FIFO队列,用来减少全写法直接写入主存的时间损耗
CPU同时写数据到Cache和写缓冲,写缓冲再控制将内容写入主存
写缓冲可以解决速度不匹配的问题,但频繁写时可能会发生饱和溢出
回写法
 
定义:只把数据写入Cache,当此块被换出时才写回主存
特点
减少了访存次数,但存在不一致的问题
修改位(脏位)
修改位=1说明该块修改过,替换时需写回主存
修改位=0无需写回主存
Cache写不命中
写分配法
加载主存中的块到Cache中,然后再更新这个Cache块
尝试利用空间局部性,但每次不命中都需从主存中读取一块
非写分配法
只写入内存,不进行调块
分离Cache
将指令Cache和数据Cache分开设计,以减少指令预取和数据存取的冲突;且可利用指令和数据的不同局部性来优化性能
多级Cache
L1Cache对L2Cache使用全写法
L2Cache对主存使用回写法
虚拟存储器
《操作系统》第三章-内存管理
概念
页式存储器
页表
快表(TLB):页表的高速缓冲器
组成
页表表项
TLB标记字段
全相联下等于该页表项对应的虚页号
组相联下对应虚页号的高位部分;虚页号的低位部分用于选择TLB组的组索引
具有TLB和Cache的多级存储系统
TLB采用全相联方式
Cache采用二路组相联方式
两级页表方式
访存过程
访存缺失
①TLB缺失: 要访问的页面的页表项不在 TLB中
②Cache缺失: 要访问的主存块不在Cache中
③Page缺失: 要访问的页面不在主存中
段式虚拟存储器
段页式虚拟存储器
虚存和Cache的比较
相同
最终目标都是为了提高系统性能,两者都有容量、速度、价格的梯度
都把数据划分为小信息块,并作为基本的传递单位,虚存系统的信息块更大
都有地址的映射、替换算法、更新策略等问题
依据程序的局部性原理应用“快速缓存的思想",将活跃的数据放在相对高速的部件中
不同
Cache主要解决系统速度,而虚拟存储器却是为了解决主存容量
Cache全由硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,但对应用程序员透明
对于不命中性能影响,因为CPU的速度约为Cache的10倍,主存的速度为硬盘的100倍以上,因此虚拟存储器系统不命中时对系统性能影响更大
CPU与Cache和主存都建立了直接访问的通路,而辅存与CPU没有直接通路。也就是说在Cache不命中时主存能和CPU直接通信,同时将数据调入Cache;而虚拟存储器系统不命中时,只能先由硬盘调入主存,而不能直接和CPU通信
1)地址结构
虚拟地址
①分页角度
虚拟页号
一级页表
二级页表
页内偏移
②TLB角度
直接映射
标记
块内地址
行号
全相联映射
标记
块内地址
组相联映射
标记
组号
块内地址
物理地址
①分页角度
物理页号+页内偏移
②Cache角度
直接映射
标记+行号+块内地址
全相联映射
标记+块内地址
组相联映射
标记+组号+块内地址
Cache块号+块内地址
2)Cache组成
标记阵列
标记
有效位
脏位(用于回写策略)
LRU位(用于替换策略,logn位)
存储容量
2^(块内地址)B(以字节编址)
13题解析: 用若干2K×4位芯片组成一个8K×8位的存储器: 位扩展,用两个芯片组成一个2K×8位芯片 字扩展,用4组2K×8位芯片组成一个8K×8位存储器 假定按字节编址,则8K的地址空间需要2^13,即13位长的地址来表示,其中,后11位为片内地址,对于每一组2K×8位芯片的片内偏移量;前2位地址作为2-4译码器的扩展地址线,分别用00、01、10、11四种状态表示选中四组芯片。 已知地址为0B1FH,即0000 1011 0001 1111,取低13位0 1011 0001 1111,其中前两位为01,故所在芯片为第二组,其地址范围是0 1000 0000 0000~0 1111 1111 1111,即0800H~0FFFH
16.【解析】根据 DRAM的结构和原理可知,在分时复用的情况下,芯片引脚个数取决于行地址线和列地址线中的较大值,对于一个2K×1位的DRAM芯片,总共需要11条地址线,只有当一个取5,一个取6时可使管脚数最小,而DRAM的刷新开销取决于行数,因此行地址线应该为5、列地址线为6,即行数2^5=32,列数为2^6=64。