存储器层次结构

存储器层次结构

一、存储器概述

1.存储器的分类

1.按存储元件分类

  • 半导体存储器
  • 磁表面存储器
  • 光盘存储器

2.按存取方式分类

  • 随机存取存储器
  • 顺序存取存储器
  • 直接存取存储器

3.按信息的可更改性分类

  • 读写存储器
  • 只读存储器

4.按断电后信息的可保存性分类

  • 非易失(不挥发)性存储器
  • 易失(挥发)性存储器

2.主存储器的组成和基本操作

1.存储器的组成:
存储元(或位元):存储一位二进制代码。(椅子)
存储单元(编址单元):由多个存储元构成,可存储多位二进制代码。(教室)
存储芯片:由多个存储单元组成的存储阵列构成。(楼层)
存储器:由多个存储芯片构成。(教学楼)
存储容量:存储单元的位数与存储单元的个数的乘积。

2.存储器的读写:
写操作,CPU同时将要写的信息送主存数据寄存器MDR中,在读写控制电路的控制下,经数据线将信息写入选中的单元。
读操作,则主存读出选中单元的内容送数据线,然后被送到MDR中。
最大可寻址范围:地址线的位数决定了主存地址空间的最大可寻址范围。
n位地址数:空间大小为2^n

2KB的存储器至少需要的地址线数:11条
地址线的位数决定了主存地址空间的最大可寻址范围,2KB=2^11B,所以至少需要11根地址线。

3.存储器的主要性能指标

存储器容量:指它能存放的二进制位数或字(字节)数。

存取时间:一般用读出时间TA及写入时间TW来描述:

  • TA是指从存储器接到读命令开始至信息被送到数据线上所需的时间;
  • TW是指存储器接到写命令开始至信息被写入存储器所需的时间。

存储周期:是指存储器进行一次读写操作所需要的全部时间,也就是存储器进行连续读写操作所允许的最短间隔时间。

存储器带宽B:表示存储器被连续访问时,可以提供的数据传送速率,通常用每秒钟传送信息的位数(或字节数)来衡量。

存储器的价格:可用总价格C或每位价格c来表示,若存储器按位计算的容量为S,则c=C/S。总价C中应包括存储单元本身的价格以及完成存储器操作所必需的外围电路的价格。

存储器速度:可用存取(访问)时间、存储周期或带宽来表示。

4.存储器的层次化结构

存储器的层次化结构.png

二、半导体随机存取存储器

1.基本存储元件

1.六管静态MOS管存储元件
T1和T2构成触发器,
T5、T6是触发器的负载管,
T3、T4为门控管。
使用这6个MOS管即可组成存储一位二进制信息的基本存储元。

六管静态存储元件.png

2.单管动态MOS管存储元件
动态RAM利用MOS管的栅极电容Cs来保存信息。
由于MOS管栅极上存储的电荷会缓慢放电,超过了一定时间,就会丢失信息。因此必须定时给栅极电容充电,这一过程称为刷新。
只能存储一位二进制信息

单管动态存储元件.png

3.静态存储元件和动态存储元件的比较
SRAM存储元件所用MOS管多,占硅片面积大,功耗大,集成度低;但无需刷新,也无需读后再生,特别是它的读写速度快。因而它适合做高速小容量的半导体存储器。
DRAM存储元件所用MOS管少,占硅片面积小,功耗小,集成度很高;但必须定时刷新和读后再生,特别是它的读写速度相对SRAM元件要慢得多。因而适合做慢速大容量的主存。

2.半导体RAM芯片

半导体RAM芯片由存储体、I/O读写电路、地址译码和控制电路等部分组成。

RAM的阵列结构.png

①存储体(存储矩阵):存储体是存储单元的集合
②地址译码器:用来将地址转换为译码输出线上的高电平,以便驱动相应的读写电路。
译码方式有单译码和双译码两种,容量较大的存储芯片,一般采用双译码方式。
位片式芯片:采用二维双译码结构的存储器芯片被称为位片式芯片。
存储字:有些芯片的存储阵列采用三维结构,用多个位平面构成存储阵列,不用位平面在相同行和列的交叉点上的多位构成一个存储字,被同时读出或写入。
单译码方式:


单译码方式.png

选通线4096

双译码方式:


双译码方式.png

6条线经过行译码,6条线经过列译码,选通线只有26+26=128

③驱动器:在双译码结构中,一条X方向的选择线要控制在其上的各个存储单元的字选择线,负载较大,因此需要在地址译码器后加驱动电路。

④I/O控制电路。用以控制被选中的单元的读出或写入,具有放大信息的作用。

⑤读/写控制信号。根据CPU给出的是读命令还是写命令,控制被选中存储单元进行读或写。

3.SDRAM芯片技术

SDRAM是一种与当年Intel推出的芯片组中北桥芯片的前端总线同步运行的DRAM芯片,因此,称为同步DRAM。
①SDRAM芯片技术
SDRAM的工作方式与传统的DRAM有很大不同。传统DRAM与CPU之间采用异步交换数据,而SDRAM芯片则不同,其读写受系统时钟(即前端总线时钟CLK)控制,因此与CPU之间采用异步方式交换数据。
SDRAM的每一步操作都在外部系统时钟CLK的控制下进行,支持突发(burst)传送方式。只要第一次存取时给出首地址,以后按地址顺序读写即可,而不再需要地址建立时间和行、列预充电时间,就能连续快速地从行缓冲器(row buffer)中输出一连串数据。内部的工作方式寄存器(也称为模式寄存器)可用来设置传送数据的长度以及收到读命令(与CAS信号同时发出)到开始传送数据的延迟时间等,前者称为突发长度(burst lengths,简称BL),后者称为CAS潜伏期(CAS latency ,简称CL)。

②DDR SDRAM芯片技术
DDR(Double Data Rate)SDRAM是对标准SDRAM的改进设计,通过芯片内部I/O缓冲中数据的两位预取功能,并利用存储器总线上时钟信号的上升沿与下降沿进行两次传送,以实现一个时钟内传送两次数据的功能。

③DDR2 SDRAM芯片技术
DDRA SDRAM内存条采用与DDR类似的技术,利用芯片内部的I/O缓冲可以进行4位预取。

④DDR3 SDRAM芯片技术
DDR3 SDRAM芯片内部I/O缓冲可以进行8位预取。

半导体存储器可分为哪两类?
它们分别以什么方式存储信息“0”和“1”?
半导体存储器分为静态RAM(简称SRAM)和动态RAM(简称DRAM)。
静态RAM利用六管静态MOS管组成的双静态电路来保存信息,
动态RAM利用MOS管的栅极电容Cs来保存信息。

三、存储器的扩展及其与CPU的连接

1.内存条和内存条插槽

CPU通过其芯片内的总线接口部件(即总线控制逻辑)与系统总线相连,然后再通过总线之间的I/O桥接器、存储器总线连接到主存。


1.png

内存条与内存条插槽:


内存条与内存条插槽.png

内存条插槽就是存储器总线,内存条中的信息通过内存条的引脚,再通过插槽内的引线连接到主板上,通过主板上的导线连接到北桥芯片或CPU芯片。

2.存储器芯片的扩展

1.扩展的方法

扩展的方法.png

2.扩展的步骤

  • 确定需要的芯片数
  • 确定组织方式
  • 画出地址分配图及写出片选逻辑值(位扩展没有这一步)
  • 画出存储器逻辑图或存储器与CPU的连接图
设计题.png

8k1位--->8k8位:位扩展

答案.png

SARM.jpg
8片SARM.jpg
3.png
设计题2.png
答案2.png
f7ace332690eb90f99d82a735089df8.png

总结:(此处仅仅为了做题)
计算芯片:(存储器的字数/芯片的字数)*(存储器的位数/芯片的位数)
计算几位地址,即计算字数 转为以2为底的指数,指数即是几位地址。
片选信号地址线就是片外寻址。片外地址就是看字扩展了多少,然后用那个转换为2为底的指数,指数就是地址线。

问题3.png
答案3.png
bd3d158376df6e241140a6c378979ec.png

(1)有8*4=32片,8组,每一组4片。
(4)片选信号地址线都是用靠后的。

3.连续编址和交叉编址

多模块存储器:通常把由多个独立并行工作的多个存储模块构成的存储器称之。
根据不同的编址方式,多模块存储器分为2种结构:

  • 连续编址
  • 交叉编制

1.连续编址方式
连续编址的多模块主存储器中,主存地址的高位表示模块号(或体号),低位表示模块内地址(或体内地址),因此,也称为按高位地址划分模块方式,地址在模块内连续。
假定存储器有4个模块M0~M3,每个模块有n个单元,
则M0的地址范围为0~n-1;
M1的地址范围为n~2n-1;
M2的地址范围为2n~3n-1;
M3的地址范围为3n~4n-1;

64a8affa8ee44743d6dfcf8c5e853bf.png

对于连续编址的多模块主存储器,当访问一个连续主存块时,总是先在一个模块内访问,等到该模块全部单元访问完才转到下一个模块访问,存储模块之间不能被并行访问,因而,这种情况下,连续编址的多模块存储器不能提高存取速度。

2.交叉编址方式
交叉编址存储器中,主存地址的低位表示模块号,高位表示模块内地址,因此,也称按低位地址划分模块方式。若有m个存储模块,则每个模块按“模m”交叉方式编址,称为m体交叉编址方式。
例如,对于4体交叉编址存储器,共有4个模块,若每个模块有n个单元,则第0,4,...,4i,...,4n-4单元位于第0模块;
....;
第3,7,...,4i+3,...,4n-1单元位于第3模块;

f34952bd763a47ae3e08e412fea6874.png

交叉编址多模块存储器可以采用轮流启动或同时启动两种方式。
①轮流启动
按每隔1/m个存储器周期轮流启动各模块进行读写。如果每个存储模块一次读写的位数(称为一个存储字)正好等于系统总线中数据线条数(即总线传输单位),则采用轮流启动方式。
②同时启动
如果所有存储模块一次并行读写的总位数正好等于系统总线中数据线数,则可采用同时启动方式。

四、半导体只读存储器与Flash存储器

1.半导体只读存储器

根据只读存储器的工艺,可分为MROM、PROM、EPROM和EEPROM(E^2PROM)等类型。
①掩膜只读存储器(Mask ROM,MROM)中存储的信息由生产厂家在掩膜工艺过程中“写入”,用户不能修改。MROM存储内容固定,所以可靠性高,但灵活性差,生产周期长,只适合定型批量生产。
②可编程只读存储器(Programmable ROM,PROM)芯片出厂时内容全部为0(半成品),用户可用专门的PROM写入器将信息写入,但写入不可逆,因此称为一次编程型只读存储器。
③可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)允许用户通过某种编程器向ROM芯片中写入信息,并可擦除所有信息后重新写入。可反复擦除-写入多次。
④电擦除电改写只读存储器(Electrically Erasable Programmable ROM,E^2PROM)。这种存储器在读数据的方式上与EPROM完全一样,但它有一个明显优点,即可用电来擦除和重编程,因此,可以选择只删除个别字,而不像EPROM那样,每次都要抹除芯片上的全部信息,这给现场重编程带来了极大的方便。

2.半导体Flash存储器

Flash存储器也称为闪存,是高密度非易失性读写存储器,它兼有RAM和ROM的优点,而且功耗低、集成度高,不需后备电源。这种器件沿用了EPROM的简单结构和浮栅/热电子注入的编程写入方式,又兼备E^2PROM的可擦除特点,可在计算机内进行擦除和编程写入。因此又称为快擦型电可擦除重编程ROM。

闪存有三种基本操作:编程(充电)、擦除(放电)、读取。
①编程操作:最初所有存储元都是“1”状态,通过“编程”,在需要改写为“0”的存储元的控制栅加上一个正电压VP。一旦某存储元被编程,则存储的数据可保持100年而无需外电源。
②擦除操作:采用电擦除。即在所有存储元的源极S加正电压VE,使浮空栅中的电子被吸收掉,从而使所有存储元都变成“1”状态。因此,写的过程实际上是先全部擦除,使全部变成“1”状态后再在需要的地方改写为“0”。也即,先全部放电,再在写0的地方充电。
③读取操作:在控制栅加上正电压VR,
若原存为“0”,则读出电路检测不到电流;
若原存为"1",则浮空栅不带负电荷,
控制栅上的正电压足以开启晶体管,电源Vd提供从漏极D到源极S的电流,读出电路检测到电流。
Flash存储器的读操作速度和写操作速度相差很大,其读取速度与半导体RAM芯片相当,而写数据(快擦-编程)的速度则与硬磁盘存储器相当。
(读:快;写:慢)

总结:

  • MROM中存储的信息由生产厂家在掩膜工艺过程中“写入”,用户不能修改;
  • PROM是用户可用专门的PROM写入器将信息写入,只能写一次;
  • EPROM允许用户通过某种编程器向RMO芯片中写入信息,并可擦除所有信息后重新写入;
  • E^2PROM可用电来擦除和重编程。

五、高速缓冲存储器

1.程序访问的局部性

程序访问的局部性:
在较短时间间隔内,程序产生的地址往往集中在存储空间的一个很小范围,这种现象称之。
时间局部性是指被访问的某个存储单元在一个较短的时间间隔内很可能又被访问。
空间局部性是指被访问的某个存储单元的邻近单元在一个较短的时间间隔内很可能也被访问。

2.cache的基本工作原理

cache由快速的SRAM组成,直接制作在CPU芯片内,也可在CPU和主存之间,在CPU和主存之间设置cache,总是把主存中被频繁访问的活跃程度块和数据块复制到cache中。由于程序访问的局部性,大多数情况下,CPU能直接从cache中取得指令和数据,而不必访问主存。
cache和主存空间都被划分为相等的区域。主存中的区域称为块(block),也称为主存块,它是cache和主存之间的信息交换单位;cache中存放一个主存块的区域称为cache行(line)或槽(slot)。
在系统启动或复位时,每个cache行都为空,其中的信息无效,只有装入了主存块后信息才有效。每个cache行需要一个有效位(valid bit),可通过将有效位清0来淘汰某cache行中的主存块,称为冲刷(flush),装入一个新主存块时,再使有效位置1。

cache的基本工作原理.png

CPU在cache-主存层次的平均访问时间为:

Ta=p*Tc+(1-p)*(Tm+Tc)=Tc+(1-p)*Tm。

其中p是命中率;
Tc是cache访问时间;
Tm是把从主存读入一个主存块到cache的时间,称为缺失损失。

f3eb9cb180557e208f4121f19181f31.png
96ad76874ffc9a4f72e0e400d4442f9.png

3.cache行和主存块之间的映射方式

根据不同的映射规则,主存块和cache行之间有以下三种映射方式:
①直接映射(direct map):每个主存块映射到cache的固定行中。
②全相联映射(full associate map):每个主存块映射到cache的任意行中。
③组相联映射(set associate map):每个主存块映射到cache的固定组的任意行中。

1.直接映射
直接映射的基本思想是把主存的每一块映射到固定的一个cache行中,也称模映射,其映射关系如下:
cache行号=主存块号 mod cache行数

13bbd966d02a94957c962d861f52746.png
主存地址17位,分为了三部分
每块大小为512B,512=2^9,所以块内地址为9位
分为32块群(区),32=2^5,所以群号为5位
每个群有8块,8=2^3,块号为3位
主存容量为128KB,128KB=2^7*2^10=2^17B
9+5+3=17;
群里的块号恰好是cache的块号
4a30a3e4693e86b403880056acf6032.png

主存结构地址:


主存结构地址.png

主存块内地址=cache行内地址
主存的块号=cache行号
区号(群号)

9f71e3c443320c2c00260e1ff010a0c.png
c1197b0b7ece0b711b5821316741c3f.png
0fb22196e8ace70d3b62aae86e92892.png
1.计算主存块:主存的容量/每块大小;计算cache的行数:cache的容量/每块大小
2.块内地址:256B = 2^8 ,所以有8位,
块号:块号=cache行号,第一问中cache有16行,16=2^4,所以有4位;
区号(群号):
方式一:用总的主存容量减去块号和块内地址的
总的主存容量512KB=2^9*2^10=2^19
19-8-4=7位
方式二:直接计算:主存分为了2K=2^11块,
再用2^11/cache的行数=2^11/16=2^7群 所以为7位。
3.方式一:使用取模方式,用12345H mod 16
方式二:把12345这个十六进制的数转为二进制:
00010010001101000101
按照第二问分析的,从第9位到第12位这四位为块号0011,即为3

2.全相联映射
全相联映射的基本思想是一个主存块可装入cache任意一行中。全相联映射cache中,每行的标记用于指出该行取自主存的哪个块。

全相联映射.jpg
60b7afc4719d8af40f891ab2782f42e.png
f1eb011f05dbffb8f39c592ce110b49.png

3.组相联映射
组相联映射的主要思想是,

将cache所有行分成2^q个大小相等的组,每组有2^s行。

每个主存块被映射到cache固定组中的任意一行,映射关系如下:
cache组号=主存块号 mod cache组数(余数)
说明:主存组群内块号=主存块号/cache组数(商)

3fd26522eff0c51e1fdb4fb26159235.png

cache组号=主存块号 mod cache组数(余数)
主存块号为100,cache组数为2^3组 100 mod 8 = 4

如此设置的2^q组*2^s行/组的cache映射方式称为2^s路组相联映射,

即s=1为2-路组相联;
s=2为4-路组相联;
以此类推。

e19f3e9dfc6b8fbf951e6f65de84f52.png

主存地址结构:标记+cache组号+块内地址
标记:主存的组群数,比如256组,256=2^8,则有8个标记
cache:如果有8组,则是2^3,为3位
块内地址:块大小,512位,512=2^9,所以有9位

bd0f032f5415f8225b47ac08bebbf53.png

采用2路:s=1,每一组有两行cache。

86e853bf3694c652ba6fe6a9cdc8057.png
0ebcd1d59e165a8da3109326dc1cc05.png
d90400b70da7dd67e0abf37b647007a.png
组相联.png

第0块只能映射到第0组,而具体到第0组的某一块则随意。

组相联映射方式结合了直接映射和全相联映射的优点。当cache的组数为1时,变为全相联映射;当每组只有一个cache行时,则变为直接映射。

4.cache中主存块的替换算法

常用的替换算法:

  • 先进先出(first-in-first-out,简称FIFO)
  • 最近最少用(least-recently used,简称LRU)
  • 最不经常用(least-frequently used,LFU)
  • 随机替换算法等

①先进先出算法(FIFO)的基本思想是:总是选择最早装入cache的主存块被替换掉。
②最近最少用算法(LRU)的基本思想:总是选择近期最少使用的主存块被替换掉。
③最不经常用算法:总是替换掉cache中引用次数最少的块;
④随机替换算法:从候选行的主存块中随机选取一个淘汰掉,与使用情况无关。
LRU算法用计数值来记录主存块的使用情况,通过硬件修改计数值,并根据计数值选择淘汰某个cache行中的主存块。这个计数值称为LRU位,其位数与cache组大小有关。2路时有一位LRU位,4路时有两位LRU位。

5.cache的一致性问题

因为cache中的内容是主存块副本,当对cache中的内容进行更新时,就存在cache和主存如何保持一致的问题。
解决cache一致性问题的关键是处理好写操作。通常有全写法和会写法两种方式。
1.全写法
全写法(write through)的基本做法是:若写命中,则同时写cache和主存;若写不命中,则有以下两种处理方式:
①写分配法(write allocate)。先在主存块中更新相应存储单元,然后分配一个cache行,将更新后的主存块装入分配的cache行中。
②非写分配法(not write allocate)。仅更新主存单元而不装入主存块到cache中。

2.回写法
回写法(write back)的基本做法是:
若写命中,则信息只被写入cache中而不被写入主存;
若写不命中,则在cache中分配一行,将主存块调入该cache行中并更新相应单元的内容。
因此,该方式下载写不命中时,通常采用写分配法进行写操作。
由此可见,该方式实际上采用的是回头再写或最后一次性写的做法,因此,该方式通常被称为回写法或一次性写方式,也有教材称之为写回法。

六、虚拟存储器

1.程序与进程的概念

虚拟存储器:借用外存为程序提供的很大的虚拟存储空间。
程序(program):是代码和数据的集合,程序的代码是一个机器指令序列,因而的概念。它可以作为目标模块存放在磁盘中。
进程(process):就是程序的一次运行过程。
程序是静态的,进程是动态的。
进程是操作系统对处理器中程序运行过程的一种抽象。进程有自己的生命周期,它由于任务的启动而创建,随着任务的完成(或终止)而消亡,它所占用的资源也随着进程的终止而释放。
一个可执行目标文件可以被多次加载执行,也就是说,一个程序可能对应多个不同的进程。

2.虚拟地址空间

虚拟存储器管理方式采用“请求分页”思想,每次访问仅将当前需要的页面调入主存,而将不活跃的页面放在磁盘上。当访问某个信息所在页不在主存时发生缺页,此时,从磁盘将缺失的页面调入主存。
虚拟存储器机制为程序员提供了一个极大的虚拟地址空间(逻辑地址空间)。
未分配页:没有和任何内容相关联的页。
已分配页:对于代码和数据等有内容的区域所关联的页面。
已分配页中又有两类:缓存页和未缓存页
缓存页:已调入主存而被缓存在DRAM中的页面
未缓存页:未调入主存而存在磁盘上的页
任何时刻一个进程中的所有页面都被划分成三个不相交的页面集合:未分配页集合、缓存页集合和未缓存页集合。

3.虚拟存储器的实现

虚拟存储器分成三种不同类型:分页式、分段式和段页式。
1.分页式虚拟存储器
在分页式虚拟存储器系统中,主存储器和虚拟地址空间都被划分成大小相等的页面,磁盘和主存之间按页面为单位交换信息。通常把虚拟地址空间中的页面称为虚拟页、逻辑页或虚页。主存空间中的页面被称为页框(页帧)、物理页或实页。有时虚拟页简称为VP(virtual page),物理页简称为PF(page frame)或PP(physical page)。
①页表(Page Table)
操作系统在主存中给每个进程都生成了一个页表,每个虚拟页在页表中都有一个对应的页表项,其内容包括该虚拟页的存放位置、装入位(valid)、修改位(dirty)、使用位(替换控制位)、存取权限位和禁止缓存位等。
装入位也称为有效位或存在位,用来表示对应页面是否在主存,若为“1”,表示该虚拟页面已从外存调入主存,是一个“缓存页”,此时,存放位置字段指向主存页框号(即物理页号或实页号);若为“0”,则表示没有调入主存,此时,若存放位置字段为null,则说明是一个“未分配页”,否则是一个“未缓存页”,其位置字段给出该虚拟页在磁盘上的起始地址;
某进程有7个页面,其中
4个缓存页:VP1、VP2、VP5和VP7;
两个未分配页:VP0和VP4;
两个未缓存页:VP3和VP6,
其页表如下:

2cb33811847c3441d8bdb0423a48281.png

系统中每个进程都有一个页表,页表属于进程控制信息,存放在进程地址空间的内核区,页表在主存的首地址记录在页表基址寄存器中。页表的项数由虚拟地址空间大小决定,因虚拟地址空间可能是一个比主存大得多的地址空间。因此,页表项数会很多,会带来页表过大的问题。解决页表过大的方法有很多,可以采用限制大小的一级页表、二级或多级页表、倒置页表等方案,由操作系统解决此问题。

②地址转换(Address Translationg)
将虚拟地址转换为主存物理地址的转换工作由CPU中的存储器管理部件(Memory Management Unit,简称MMU)来完成。

75e9c5be14257c85c91b1357fd4d0ff.png
50443cb06e1c232bf2e46708f814b61.png

③快表(TLB)
采用虚拟存储器机制后,使得访存次数增加了。为了减少访存次数,往往把页表中最活跃的几个页表项复制到高速缓存中,这种在高速缓存中的页表项组成的页表称为后备转换缓冲器(Translation Lookaside Buffer),通常简称为TLB或快表,相应地称主存中的页表为慢表。
这样,在地址转换时,首先到快表中查页表项,如果命中,则无需访问主存中的页表。

1862f6e750c692eddf6ec22d8842a36.png

2.分段式虚拟存储器
根据程序的模块化性质,可按程序的逻辑结构划分为多个相对独立的部分,这些相对独立的部分被称为段(Segment),每个段的描述信息通常有段名、段起点、段长等。
分段方式下,将主存空间按实际程序中的段来划分,每个段在主存中的位置记录在段表中,段的长度可变,所以段表中需有长度指示,即段长。每个进程有一个段表,每个段在段表中有一个段表项,用来指明对应段在主存中的位置,段长、访问权限、使用和装入情况等。
虚拟地址由段号和段内地址组成。通过段表把虚拟地址变为主存物理地址。

a437c48e835c05286f495d2c4fe9036.png

3.段页式虚拟存储器
在段页式虚拟存储器中,程序按模块分段,段内再分页,用段表和页表(每段一个页表)进行两级定位管理。段表中每个表项对应一个段,每个段表项中包含一个指向该段页表起始位置的指针,以及该段其他的控制和存储保护信息,由页表指明该段各页在主存中的位置以及是否装入、修改等状态信息。程序的调入调出按页进行,但它又可以按段实现共享和保护。因此,它兼有页式和段式的优点。它的缺点是在地址转换过程中需要多次查表,即先查段表,再查页表。

08ca9f07753f24758b0ec109cd57b49.png

名词解释:虚拟存储器
借用外存为程序提供的很大的虚拟存储空间称为虚拟存储器。

你可能感兴趣的:(存储器层次结构)