第三章 存储器
3.1主存储器概述
3.1.1存储器的分类
存储器是计算机系统中的记忆设备,用来存放程序和数据。
按照在计算机系统中的作用分类
1.内部存储器
内部存储器是一种可以直接和CPU交换信息的存储器,主要包括高速缓冲存储器(cache)和主存储器。主存储器存放CPU当前正在执行的程序和数据;cache位于主存储器和CPU之间,用于解决CPU和主存储器之间的速度差异。由于cache中是主存储器的副本,因此内存的容量只与主存储器的容量有关。
2.外部存储器
外存也被称为辅助存储器,一般用来存储大量的、暂时不运行的程序和数据,以及一些需要永久保存的信息。
3.离线存储器
又称为备份存储器,用于对在线数据进行备份。
4.控制存储器
又称为微程序存储器,用于微程序控制的计算机系统中存放微程序,位于CPU内部,是控制单元CU的核心。
按存储介质分类
1.半导体存储器
以半导体电路作为存储介质的存储器,按照工艺分为MOS(金属氧化物)型存储器和TTL双极型存储器两大类
MOS型存储器:集成度高,功耗低,价格便宜,但存取速度较慢。
TTL双极型存储器:存取速度快、集成度低、功耗较大、成本较高。
半导体存储器主要用做内部存储器。
2.磁表面存储器
磁性材料作为记录介质,非电易失。特点为:容量大、价格低、存取速度慢。磁盘被用作辅助存储器,磁带被作为离线存储器。
3.光盘存储器
磁光材料作为存储介质,利用激光进行信息存取。(非电易失)
光盘具有存储容量大、存取方便、位价格低和易于保存等特点。
按是否可以写入分为:只读式、一次写入式、可改写式。
按照激光类型不同分为:CD光盘、DVD光盘、BD光盘等。
按存取方式分类
1.随机存储器RAM(Random Access Memory)
内部存储单元的内容可以随机存取,且存取时间与存储单元的物理位置无关。
RAM可分为动态(DRAM)和静态(SRAM)。
DRAM需要刷新,SRAM在加电情况下可以保持稳定。
2.只读存储器ROM(Read Only Memory)
存取方式也是随机存取,正常工作时只读不写,写入操作需要通过特殊手段完成。
ROM的特点:非电易失,可靠性高,常用于存放系统程序和各种固件。
3.顺序存取存储器SAM(Sequential Access Memory)
存取时间与信息所在物理位置有关,读/写操作时只能顺序地对数据所在物理地址进行查找。平均存取速度较慢,典型设备为磁带。
4.直接存取存储器DAM(Direct Access Memory)
存取特性及速度介于RAM和SAM之间,也称为半顺序存取存储器,典型设备如磁盘存储器等
读/写操作时,其寻址操作分两步进行
⑴ 快速定位到信息所在位置的一个小区域,这一操作可看成是随机寻址或直接寻址过程
⑵ 在此小区域内通过顺序寻址对信息的确切地址进行定位
5.相联存储器AM(Associative Memory)
按照存储单元中存放的全部或部分内容进行访问的存储器,也称为按内容存取存储器(CAM——Content
Addressed Memory),主要应用于快速检索的场合。
按制造工艺分类
1.TTL双极型存储器
速度高,功耗大,集成度低,容量小,价格贵。适于作高速小容量存储器,如cache。
2.MOS型存储器
与双极型比速度低功耗小,集成度高,容量大,价格低。
按信息的可保存性分类
1.电易失型半导体存储器
断电后数据会丢失,大多数RAM
2.非电易失型半导体存储器
断电后数据不会丢失,ROM和少数RAM
RAM存储器的分类
静态随机存取存储器(Static Random Access Memory,SRAM)
速度快,信息稳定,不需要刷新电路,使用方便灵活。集成度低、功耗较大、成本也高。常用做小容量主存及高速缓冲存储器Cache。
动态随机存取存储器(Dynamic Random Access Memory,DRAM)
集成度高,功耗低,价格便宜,但必须定时进行刷新。常用作大容量主存储器。
新型DRAM:快速页模式DRAM(FPM DRAM)、扩充数据输出RAM(EDORAM)、同步DRAM(SDRAM)、双倍速率同步DRAM(DDR SDRAM)
非易失性随机存取存储器( Non-Volatile Random Access Memory ,NVRAM)
由SRAM和EEPROM共同构成,正常工作时与SRAM功能相同,但在掉电的瞬间,它可以立即自动把信息保存到EEPROM中,多用于系统中重要信息的掉电保护。
3.1.2 存储系统的层次结构
存储器的重要性
在存储程序计算机中,存储器处于一个重要的核心地位,随着软、硬件技术的飞速发展,其重要性越来越突出。因此,对存储器的性能要求也越来越高。
系统对存储器的要求
尽可能快的读写速度,尽可能大的存储容量,尽可能低的成本费用。
实际情况
速度、容量、价格三种指标是相互矛盾的,没有任何一种存储器能满足上述要求。
为了解决容量、速度和价格三者之间的矛盾,通常把各种不同存储容量、不同存取速度和位价格的存储器,按一定的结构组织起来,形成一个多层次的存储系统。
这些存储器越靠近CPU速度越快、容量越小、位价格越 高。存储系统管理的目标:这n个存储器对CPU呈现一个逻辑整体,整个存储系统在速度上接近M1,容量上接近Mn,位价格上也接近Mn。
层次间应满足的原则
包含性原则
处在内层的信息一定被包含在其外层的存储器中,反之则不成立。即内层存储器中的全部信息,是其相邻外层存储器中一部分信息的副本 。
一致性原则
在不同层次存储器中的同一个信息应保持相同的值。
现代存储系统的层次结构
通用寄存器组:在CPU内部
主存:存储系统核心部件
高速缓冲存储器cache:平滑主存与CPU之间的速度差异
虚拟存储器(联机辅助存储器):提高存储器的容量
离线辅助存储器:备份
存储系统工作原理
存储系统的工作主要体现在两个层间
Cache—主存层间(硬件实现,对所有程序员透明)
计算机在运行程序访存时,有一段时间内集中访问一小片区域的倾向,即具有“程序运行的局部性”;
1.指令顺序执行比转移执行的可能性大 (大约 5:1 );
2.最近被访问过的程序和数据很可能再次被访问;
3.这些被访问的程序和数据往往集中在一小片存储区。
运行程序时,通过合理地调度将当前使用最多的一小段程序和数据放在cache中,使 CPU大部分时间访问cache,只有个别的指令或数据从cache中读不到时,才访问主存;
整体运行效果上 ,CPU访存速度接近于cache速度,寻址空间仍为主存空间,位价却接近于主存。
主存—辅存层间
为了更好地对主存、辅存统一调度,目前广泛采用虚拟存储技术,即将主存与辅存的一部份通过软硬结合的技术组成虚拟存储器。
程序员可使用比主存实际空间大得多的虚拟地址空间编程,当程序运行时,再由软、硬件自动完成虚拟地址空间与主存实际物理空间的转换。这个转换操作对应用程序员透明。
从应用程序员的角度看,所使用的存储器容量和位价接近于辅存,而速度接近于主存。
综合存储系统层次结构的作用,从整个存储系统来看,就达到了速度快、容量大、位价低的优化效果。
多层存储系统需要解决的问题
外层存储器中的哪些信息(指令和数据)的副本需要保存在内层存储器?放在内层存储器的位置?
即地址映射问题。
如何保证不同层次存储器中存放数据的一致性?
即数据的一致性问题。
PU访存时给出的是主存单元的地址,这个地址如何转换为在不同层次存储器中的地址?
即地址变换问题。
当某层存储器已经存满信息,又有新信息要装入时,应将哪些信息替换出去?
即替换策略问题。
3.2 主存储器
3.2.1 主存储器的基本组成
主存的功能部件
1.存储体(存储矩阵或存储阵列):
存储单元的集合,采用并行传输方式,每个存储单元有独立的地址。通常存储单元的位数(存储字长)等于字节的整数倍。
2.寻址系统:
由驱动器、译码器和MAR组成。驱动器是为了提高译码线驱动负载能力增加的。
3.读/写系统:
读写电路和MDR组成。
4.控制电路:
根据CPU发来的读写命令产生存储器各部件的时序控制信号。
主存储器与CPU的连接
存储器地址寄存器( MAR):用来暂存CPU正在访问的存储单元的地址
存储器数据寄存器(MDR):用来暂存CPU和主存间交互的数据
半导体芯片的地址译码方式
线选法:(单译码结构)
地址译码后直接选中一个存储单元的所有位。
特点:N根译码线需N套驱动器,译码结构简单、速度快,但器材用量大,当容量较大时,导致成本太高,仅适合于高速小容量存储器。
例:n位地址,采用线选法译码,需:地址译码线数 = 2n根 —— 2n套驱动器
当 n = 16位时,需64K根译码线,64K套驱动器
重合法:(双译码结构)
将地址分成行、列两组(x,y),分别用两套译码器译码,行、列译码的重合点即为所选存储元。
特点:与线选法相比大大减少了译码输出线根数,则器材用量也大大减少,有效地降低了存储器的成本,得到了广泛采用。
例:n位地址,采用重合法译码,需:地址译码线数 = 2n/2 +2n/2根
当 n = 16位时,重合法需 28 + 28 = 512根译码线,512套驱动器
3.2.2 主存的性能指标
存储容量
存储容量 = 存储单元个数 × 存储字长(按字)(单位是位b)= 字节数(按字节编址)(单位是字节B)
某机可达存储容量上限由地址总线位数界定。
1KB=2^10B,1MB=2^20B,1GB=2^30B,1TB=2^40B
存取速度
存取时间(Memory Access Time)指启动一次存储器操作到操作完成所需时间。
存取周期(Memory Cycle Time):指存储器连续两次独立操作所需最小时间间隔。
通常,存取周期 〉存取时间;
即存取周期 = 存取时间 + 恢复时间
存储器带宽
指单位时间内存储器存取的信息量,单位为字/秒、字节/秒或位/秒。
此指标决定了一台计算机可以获得的最快信息传输速度。
存储器带宽 = 存取周期的倒数
例:存取周期500ns,字长16位,则:存储器带宽 = 1字/500ns = 2M字/秒= 4M字节/秒 = 32M位/秒
(注:M = 10^6,时间单位的转换,同一般公制单位。)
3.2.3 SRAM存储器
SRAM中的静态是指只要保持电源供电,就能稳定的保存数据。SRAM实质上是一个双稳态触发器。
1.SRAM存储元
SRAM的基本特征是使用一个双稳态触发器作为存储元,读出不影响所存储的信息。
六管SRAM存储元
六管SRAM的三种状态—保持
未访问时,行、列地址选择线上无信号(或者仅其一有信号),T5~T8断开,存储元与外界隔离,保持现存状态不变(0或1)。
六管SRAM的三种状态—读出
行、列地址选择信号有效(高),T5~T8导通,存储元所存信息经T6、位线A、T8、读放大器输出(0低1高)。
六管SRAM的三种状态—写入
行、列地址选择信号有效(高),T5~T8导通,写入信息经DIN、写放大器、T7/T8、位线、T5/T6到达A’/A点,迫使T1/T2状态按输入信息变化。
2.SRAM芯片举例
Intel 2114 SRAM芯片:容量1K×4位,存储矩阵64×64
地址译码采用重合法:
A8~A3:行地址
A9、A2~A0:列地址
3.SRAM的外特性
常用逻辑符号方框图表示
方框内:标明芯片的型号、片容量、引端名等
方框外:标明芯片的引脚线、信号名等
注:引端名是芯片引脚的逻辑定义,由厂家给出信号名为引脚上所加信号的名称;两者不一定一样
引脚线的表示方法
电气引脚:电源线、地线等,逻辑符号中可省
逻辑引脚:SRAM通常有三类四种
数据线、地址线、控制线(读/写控制、片选控制)
3.2.4 DRAM存储器
1.DRAM存储元
DRAM存储元是由MOS晶体管和电容组成的基本电路,常见的有三管式和单管式。
由于电荷会逐渐泄露,必须定时补充电荷,这个过程叫做刷新(读操作是破坏性操作,需要对信息进行再生)。
三管DRAM存储元
读出信息与原信息相反,写入与输入信息相同。
单管DRAM存储元
通过电容CS有无存储电荷来区分信号0、1
单管DRAM存储元的写“1”
写1:
当字线来高电平后,T导通;使位线为高电平若CS 上无电荷,则 CS 通过 T 充电;把 1 信号写入了电容CS 中。
若CS 上有电荷,则 CS 无充放电动作,保持原记忆的 1 信号不变。
单管DRAM存储元的写‘0
写 0:
当字线来高电平后,T导通;使位线为低电平,若CS 上有电荷,则 CS 通过T放电;把 0 信号写入了电容 CS 中。
若CS 上无电荷,则 CS 无放电动作,保持原记忆的 0 信号不变。
单管DRAM存储元的读
读操作:
当字线加高电平后,T导通;
① 若 CS 上无电荷,则位线上无电流,读出为 0 ;
② 若 CS 上有电荷,则会放电,位线上有电流,接在位线上的读出放大器会感知这种变化,读出为 1。
2.DRAM的再生
破坏性读出:
读操作后,被读单元的内容一定被清为零,必须把刚读出的内容立即写回去,通常称其为再生。它影
响存储器的工作频率,在再生结束前不能开始下一次读。
再生:
读放大器同时又是再生放大器,利用双稳态结构,在读出过程中建立起稳态,然后该稳态再自动写回存储元。
保持:
当存储元未选中时,CS电容与外界隔离,功耗近似为0,保持原电荷状态不变。
3.DRAM的定期刷新
在不进行读/写操作时,DRAM 存储器的各单元虽然处于断路状态,但由于漏电的存在,保存在电容CS 上的电荷会慢慢地泄漏掉,为此必须定时予以补充,通常称其为刷新操作。刷新最大时间间隔一般为2 - 8ms。
常用的刷新方式:
1)集中式刷新
在最大刷新时间间隔内,集中安排一段时间对芯片内全部存储元逐行刷新一遍,刷新期间停止内存正常读/写操作。
缺点:存在死时间或访问死区,极大影响系统的执行效率,很少使用。
2)分散式刷新
每一个主存读/写周期后,紧接着一个刷新周期,对存储矩阵中的一行进行刷新。各行轮流进行刷新。
缺点:消除了死时间,但是每个存取周期都扩大了一倍,造成了时间上的浪费,也很少使用。:
3)异步式刷新
在最大刷新时间间隔内,对芯片内的全部存储元逐行轮流刷新一遍。刷新周期平均分散在最大刷新间隔中。
以1Kx1芯片为例,异步刷新周期间隔 = 2ms/32行= 62.5µs(125个存储周期)
特点:既克服了死时间,又充分利用了最大刷新间隔。
还有一些其他的策略来安排刷新的时机,如安排在CPU的译码阶段这个阶段CPU不访问存储器,这种方案既不会有死时间,也不会加长存取周期,从而可以提高系统的工作效率。
三种刷新方式比较
集中式刷新:正常工作期间DRAM可达全效率,但刷新期间CPU不能访存(上例中为16µs),形成访存“死时间”。
分散式刷新:消除了访存死时间,但使CPU访存周期延长一倍(上例中为1µs)。另外,存在多余的刷新操作(上例中2ms时间中平均每行多刷了61.5次)。
异步式刷新:结合集中、分散式的优点,既克服了死时间,又没有多余的刷新操作,DRAM工作效率达到最高,是一种理想的刷新方式,得到广泛应用。但这种方式控制较复杂,需要较多的存储器外围电路支持(刷新地址计数器、刷新定时器、访存仲裁逻辑等)。
4.DRAM存储器举例
Intel 2164A DRAM(64Kx1位)芯片
5.DRAM存储器结构特点
1) 由于DRAM芯片容量较大, 导致地址引脚数大幅度增加,造成制作困难。为此将地址分为行、列地址两部分,分时使用同一组地址引脚输入(输入时间分别由 RAS、CAS 信号控制),因此DRAM芯片地址引脚数将减少一半。
这同样意味着:DRAM芯片每增加一根地址引脚,相当于行、列地址各增加一位(共增加了两位地址),将允许片容量扩大4倍。
(2) 为节省引脚,DRAM芯片通常无 CS 引脚,此时片选功能由 RAS 引脚兼任(即 RAS 信号与片选译码信号复用)。
6.DRAM读/写时序
3.2.5新型DRAM存储器
DRAM比SRAM应用广泛,原因如下:
1.同样大小下,DRAM比SRAM集成度高
2.DRAM行列地址引脚分时复用,减少了引脚数量,封装尺寸也减少了。
3.DRAM芯片功耗比SRAM小。
4.相同容量的DRAM芯片比SRAM便宜。
缺点:
1.速度比SRAM低。
再生和刷新需配置再生电路,功率消耗比SRAM高。
如何对这些过程进行优化以提高DRAM的存取速度是新型DRAM的最主要目标。
主要通过提高时钟频率和带宽等方法。
FPM DRAM(FAST PAGE MODE DRAM)快速页面模式DRAM
FPM DRAM以多个字节为单位进行突发式数据读写,但要求数据必须位于同一行,后续无需输出行地址,只需输入列地址。(基于局部性原理)可以提高访存效率。
EDO DRAM(Extended Data Out DRAM) 扩展数据输出DRA
在FPM的基础上,存储器在数据输出的同时CPU可以在地址线发送下次的访问地址,即当前数据还有效时下个数据的列地址已经发送到地址总线上。
在存取速度较高情况下存在的问题:
- 有限的时钟周期利用率
EDO DRAM需要多个时钟周期来完成一次完整的读取操作(通常为5个时钟周期)。因此,当存取速度进一步提高时,EDO DRAM的时钟周期利用率仍然不够理想,无法充分利用更快的处理器时钟或总线时钟。 - 存取时间受限
EDO DRAM依赖于行和列地址的选择来访问特定的内存单元。内存的存取时间包括RAS时间(行地址选通时间)和CAS时间(列地址选通时间)。在提高存取速度时,这些时间成为瓶颈,因为内存单元的充电和放电需要一定的物理时间,无法在极短的时钟周期内完成。 - 数据冲突与数据相关性
如果连续的存取操作针对的是同一行或邻近行,可能会导致数据相关性冲突或行冲突,从而引发等待时间和延迟。这在较高速度下尤为明显,因为时钟周期缩短使得内存访问的相对延迟更大。 - 信号完整性与噪声问题
EDO DRAM在设计上并未考虑到更高频率操作所带来的信号衰减、反射和噪声问题。因此,在高存取速度下,信号的准确传输可能受到影响,导致数据错误或传输失败。 - 同步问题
EDO DRAM是异步存取的,它的操作与系统总线时钟不同步。在较低存取速度下,这种异步操作的影响相对较小,但在较高存取速度下,异步设计带来的不同步问题会导致系统整体效率下降。
SDRAM(Synchronous DRAM)同步DRAM
DRAM依据CLK上升沿在数据总线加载数据,在高速存取过程中防止错误的出现。
CPU访问SDRAM时只需对时钟进行计数,不需要精准控制每步操作的时间长度,可以极大简化硬件设计,并且CPU在发送行地址和列地址后,可以读取或写入连续四个单元的数据,称为猝发式(Burst)读写,可以有效提高CPU访存效率。
DDR SDRAM(Double Data Rate SDRAM)双数据传输率同步DRAM,简称为DDR
采用更先进的同步电路,由时钟上升沿同步,也由时钟下降沿同步。
DDR存储器存储体位宽是存储器外部位宽的二倍,称为二倍预存取。
DDR2(Double Data Rate 2)
四倍预存取
DDR3(Double Data Rate 3)
八倍预存取
DDR4(Double Data Rate 4)
十六倍预存取
3.2.6 只读存储器和闪速存储器
1.只读存储器
MROM(Mask ROM,掩膜式ROM)
采用掩膜工艺,信息一次性直接写入,无法改写,只适合储存永久保存的程序和数据。
特点:‘1’、‘0’ 存储元结构不一样。
PROM(可编程ROM)
使用专门的PROM写入器写入,只能写入一次,称为一次编程型ROM。
主要有两种工艺
熔丝式:通入大电流熔断。
反向二极管式:反向二极管击穿。
EPROM(可擦除可编程ROM)
基本结构:浮动栅雪崩注入型MOS管(FAMOS)电路。
特点:出厂时为通用形式,用户使用时可多次擦除原存内容,并重新写入新内容。但擦除、写入操作需脱机通过特殊手段进行。
EEPROM(电可擦除可编程ROM)
基本结构:在浮栅上又增加了一个控制栅。
工作方式:
只读不写:为正常工作方式;
写入:加高压,用专用写入器在线写入;
以上两种工作方式与EPROM类似。
擦除:控制栅接地,源极加正高压,浮栅上的自由电子越过绝缘层进入源极释放。
特点:读写操作与SRAM类似,可随机读写;在掉电时不丢失所存信息;可按字或数据块擦除和改写。
2.闪速存储器
闪速存储器
结构:与E2PROM类似,但浮栅的绝缘层更薄。因此,操作速度更快,但耐损耗性稍差。
特点:擦除和写入速度快。成本低、容量大、功耗低、可在联机状态下进行电擦除和改写。被广泛应用于U盘、存储卡等移动存储设备中。
3.2.7存储容量扩展及与CPU连接
SRAM存储器容量扩展技术
如何用多片存储芯片组成完整的存储器。
位扩展
特点: 总字数=片字数
适用场合: 在设计存储器时,所用芯片字数够,位数不够,需位向多片组成。
组成方法:
1.芯片用量
片数 = 总容量/片容量 =(总字数 x 总字长)/(片字数 x 片字长)= 总字长 / 片字长
2.芯片排列
为清楚起见,一般采用平面构图。既芯片沿行向、列向排列成方阵,无重叠部分。位扩展时,芯片按水平方向一维排列。
3.片间连线
以SRAM为例,需要对四种引脚线进行连接。
位扩展时,Ai(地址)、WE(反)(读/写控制)、CS(反)(片选控制)线同名端并连;
Di(数据)线各片按位引出。
例. 多位片的位扩展:用2114 1K×4 SRAM芯片组成1K×16位存储器。
解:片数 = 16位 / 4位 = 4片
字扩展
特点:总字长=片字长
适用场合:在设计存储器时,所用芯片位数够,字数不够,需字向多片组成。
组成方法:
1.芯片用量
片数 = 总容量 / 片容量 = 总字数 / 片字数
2.芯片排列
平面构图,无重叠部分。字扩展时,芯片按水平(垂直)方向一维排列。
3.片间连线
以SRAM为例,对四种引脚线进行连接。
字扩展时,WE(反)(读/写控制线)、 Di(数据)线同名端并连;
Ai(地址)线分两部分:
低位地址部分与各芯片同名端并连;设片选地址译码器;高位地址部分接片选地址译码器输入端;
CS(反)(片选控制)线:各片的片选线分别接片选地址译码器的各输出端。
例. 用 1K×8 SRAM芯片组成4K×8位存储器。
解:片数 = 4K / 1K = 4片
字位扩展
适用场合:在设计存储器时,所用芯片字、位数都不够,需字、位向同时多片组成。
组成方法:
1.芯片用量
片数 = 总容量 / 片容量
2.芯片排列
平面构图,无重叠部分。字、位扩展时,芯片为二维矩阵排列。
3.片间连线
以SRAM为例,对四种引脚线进行连接。
WE(反)(读/写控制)线同名端并连;
Di(数据)线沿位向同名端并连引出;
Ai(地址)线仍分两部分:
低位地址部分与各芯片同名端并连;
设片选地址译码器;
高位地址部分接片选地址译码器输入端;
CS(反)(片选控制)线沿字向同名端并连引出,分别接片选地址译码器的各输出端。
注:Di、-CS线引出方向垂直。
例. 用 1K×4 SRAM芯片组成4K×16位存储器。
解:片数 = 4K×16 / 1K×4 = 4×4 = 16片
DRAM存储容量扩展
DRAM存储容量
DRAM存储器的字、位扩展基本思想与SRAM一样,但地址线和片选信号的连接需要作特殊处理。
1.Ai(地址)线需分行、列两组经地址多路选择器分时送到各芯片地址端;
2.片选译码器输入需加 RAS 信号,以使片选译码输出的时间与 RAS 一致;
3.为节省刷新时间,片选译码器输入还需加刷新定时信号(REF),以便在刷新时,强制使译码输出全部有效(即同时对所有芯片内部存储矩阵的同一行进行刷新);
4.采用唯 RAS 有效刷新时,CAS 可简单地按片并联。
例. 用 1K×4 DRAM芯片组成4K×16位存储器,设芯片内部为64×64存储矩阵。
解:片数 = 4K×16 / 1K×4 = 4×4 = 16片
注:该芯片内部为64×64存储矩阵,意味着行、列地址位数不相等,即行地址6位,列地址4位。
ROM容量扩展
ROM的逻辑引脚大部分和SRAM一样,只是少一根WE(反)引脚,因此扩展方法也基本和SRAM一样,只要少连一根线即可,很容易与SRAM一起组成主存储器。
例. 用 1K×4 ROM 芯片组成 4K×16 位存储器。
解:片数 = 4K×16 / 1K×4 = 4×4 = 16片
存储器与CPU连接
存储器与CPU一般通过总线相连。
SRAM连接方法
地址线:CPU通过地址总线向存储器发送地址,理论上地址总线的低位可直接与各存储芯片的地址引脚相
连,高位与片选译码器输入端相连。
数据线:CPU通过数据总线与存储器交换数据,因此存储器的数据引出线与数据总线按位连通即可;
读/写控制线:CPU通过控制总线中的相应信号线向存储器发读/写令,则存储器的 WE (反)线与控制总线中的读/写命令线连通即可。
片选时间控制:CPU控制总线中的 MREQ(反)(访存请求)信号与片选译码器使能输入端相连即可。
ROM连接方法
与SRAM基本相同,但读/写控制线不连。(普通ROM无WE端)
DRAM连接方法
DRAM需要一些特殊的外围控制电路和特殊的控制信号。
DRAM芯片通常不直接和CPU总线相连,而是通过DRAM控制器芯片(DRAMC)与CPU总线连接。
DRAMC简介
基本的DRAMC内部由五大部分组成:
刷新地址计数器:刷新时向 DRAM 提供刷新行地址,并自动顺序计数到下一行地址;
地址多路选择器:在行、列、刷新地址三者间选一路送给DRAM;
刷新定时器:根据所选用的刷新定时方式控制刷新时间,当需要刷新时及时发出刷新请求信号;
仲裁电路:在 CPU(I/O)访存请求、刷新请求中裁决出一种执行访存操作;
定时发生器:产生一系列 DRAM 工作时所需的时间制信号( RAS(反)、CAS(反)、WE (反)等)。
DRAMC内部结构
DRAM容量扩展时还需要片选译码器,可以独立在DRAMC之外。
存储器与CPU连接举例
例. 设CPU有16根地址线,8根数据线,并用 MREQ作访存控制信号,用R / W作读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片:ROM(2K×8位, 4K×4位,8K×8位),RAM(1K×4位, 2K×8位,4K×8位);及74LS138译码器和其它门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPU与存储器的连接图,要求:
(1)最小4K地址为系统程序区,4096~16383地址范围为用户程序区和数据区;
(2)指出选用的存储芯片类型及数量;
(3)详细画出片选逻辑。
在进行芯片选择时,应注意以下问题:
当采用字扩展和位扩展所用芯片一样多时,选位扩展。因为字扩展需设计片选译码,较麻烦,而位扩展只需将数据线按位引出即可。
例如,本题如果选用2K×8 ROM,片选要采用二级译码,实现比较麻烦。
当需要RAM、ROM等多种芯片混用时,应尽量选容量等外特性较为一致的芯片,以便于简化连线。
应尽可能避免使用二级译码,以使设计简练。但要注意在需要二级译码时如果不使用,会使选片产生二义性。
基于以上原则,芯片选择如下:
ROM:4K×4位:2片
RAM:4K×8位:3片
3.2.8 微处理器与存储器连接举例
16位微处理器8086
地址总线20位,数据总线16位
主存按字节编址,1MB空间分成2个512KB的存储体
在8086中,主存采用小端方式编址,可以按字节、字访问。具体访问方式由 BHE(反) 和 A0 两个信号决定。
8086对存储器的读取
在8086中,主存采用小端方式编址,可以按字节、字及双字访问,最小的字节地址是该字或者双字的地址。
(c)采用边界对齐的存储方式,需要一次存储器读操作和一次总线转送操作
(d)采用边界不对齐的存储方式,需要二次存储器读操作和二次总线转送操作
8086微机系统的小型存储器
3.3高速主存储器
1.双端口存储器
双端口存储器是指同一个存储器具有两组相互独立的读写线路,这两组线路可以并行操作,允许两个独立的CPU或I/O控制器同时进行存储单元的读写,以提高存储器的存取效率。
双端口存储器IDT7133(2K×16位)
双端口存储器的访问冲突
如果两个端口同时访问同一存储单元时,便发生读写冲突。为解决此问题,设置了-BUSY标志。由判断逻辑决定对哪个端口优先进行读写操作,而暂时关闭另一个被延迟的端口(-BUSY(反) 低电平)。
判断的方式:
2.多体交叉存储器
目的是为了扩充容量,减少CPU访存等待时间
编址方法:顺序编址和交叉编址
顺序编址(高地址交叉)
无法实现多存储体的并行访问,主要应用于扩充容量或者通过冗余提高可靠性。
交叉编址(低地址交叉)
由于每个存储体地址不连续,根据局部性原理,程序和数据的存取可以并行进行,可以提高CPU的访存速度。
对于该存储的访问主要有两种方式:
1.在一个存取周期内,同时访问多个存储体,由存储器控制部件控制这些存储体分时使用总线进行数据传输。
2.在一个存取周期内分时访问每个存储体,对于有n个存储体的存储器,每隔1/n个周期访问一个存储体,各个存储体的读写过程重叠进行。
8体交叉存储器访存的时间关系
低地址交叉多体存储器与CPU连接
CPU和各体的连接图:
由于存储器单体的工作速率和总线速率不一致,因此各体之间存在总线分配问题,存储器不能简单地和CPU直接相连,要在存储管理部件的控制下连接。
低地址交叉多体存储体结构
3.相联存储器
相联联存储器(Associative Memory,AM)按照存储单元中存放的全部或部分内容进行访问,也称为按内容访问存储器(Content Addressed Memory,CAM)。
读操作时,除了可以按地址进行访问外,还可以按内容访问,即将CPU给出的关键字(存储单元信息的全部或部分内容)和存储器中所有单元中的相应信息进行比较,定位到与关键字相匹配的存储单元后,将此单元中的所有信息读出。
写操作时,采用按地址访问的方式。
相联存储器由存储体、检索寄存器、屏蔽寄存器、匹配寄存器、数据寄存器、地址寄存器、比较电路和译码电路等组成。
相联存储器的存储元主要由一个D触发器组成。
当存储元未被屏蔽(M=1)时,检索位与存储位进行同或操作后经三态门输出到P端。当P=1时表示检索位与存储位相同。
当存储元被屏蔽(M=0)时,P端输出为高阻。
字选线S来自优先排队电路或地址译码器。S=1,该存储元数据经Q端输出到数据寄存器的对应位(或将寄存器对应位写入存储元);S=0,不能读也不能写。
CAM主要应用于cache中存放目录表和块表,在虚拟存储器中存放分段表、页表和快表。
现在广泛应用的一种CAM叫做TCAM三态内容访问存储器,除了0和1还有do not care状态,既可以精准查找,又可以模糊查找在高端网络路由器中广泛使用。
3.4高速缓冲存储器Cache
3.4.1 Cache的工作原理
Cache的存取速度快、容量小、位价格高。
Cache位于CPU与主存之间,能高速地向CPU提供指令和数据(读写),以加快程序的执行速度。
Cache中保存的是主存内容的一个子集。cache的命中率越高,CPU的访存速度越接近于cache的存取速度。
基于程序运行的局部性原理,cache和主存都按块进行逻辑组织,它们之间以相同大小的块为单位进行交换。
一个块由若干个字(或字节)组成,一般是定长的。
块的大小通常以在主存储器的一个存储周期中能访问到的数据长度为限。
增加cache后CPU的访存流程
CPU发出的主存地址同时送给cache和主存。首先进行地址变换,将主存地址变换成cache地址。同时,通过地址变换机制判断cache是否命中。
评价cache性能的指标
例CPU执行一段程序过程中,共有1000次访存操作,其中在cache命中950次。已知主存的存取时间为100ns,cache的存取时间为10ns。问cache的命中率是多少?CPU平均访存时间以及访存加速比各为多少?
3.4.2 cache的设计要素
地址的映射与变换
地址映射机制就是解决如何将主存的地址空间映射到cache的地址空间。
在执行程序时,应首先将主存地址变换成cache地址,即执行地址变换。
地址映射和地址变换是密切相关的两个过程,采用什么样的地址映射方法,就必然采用与这种映射方法相对应的地址变换方法。
地址映射和地址变换
主存与cache间的映射关系
主存与cache间的三种映射关系
全相联映射
主存的每一块可映射到cache的任意一块中。
直接相联映射
主存的每一块只与一个cache块有对应关系。
组相联映射
主存和cache的块都先进行分组,并且主存和cache每组包含的块数相同。组间采用直接相联映射,组内采用全相联映射。
全相联映射方式
全相联地址映射指主存中的每一块都可以映射到cache中的任意块。这种映射方法是最灵活的,也是cache利用率最高的一种方式,但同时也是成本最高的一种方式。
全相联映射的地址变换
主存地址分为:块号B和块内地址W
Cache的地址分为:块号b和块内地址w
目录表(相联存储器)用来保存主存块与cache块的映射关系
直接相联映射
直接地址映射指主存中的块只能映射到cache中某个固定的块中
直接相联映射的地址变换
主存地址分为:区号E、区内块号B和块内地址W
Cache的地址分为:块号b和块内地址w
区表(按地址访问)用来保存主存块与cache块的映射关系
组相联映射
组相联地址映射主存和cache的块都先进行分组,并且主存和cache每组包含的块数相同 。
在地址映射时,组间采用直接相联映射,组内采用全相联映射。
组相联映射的地址变换
主存地址分为:区号E,组号G,组内块号B和块内地址W
Cache的地址分为:组号g,组内块号b和块内地址w
块表(按地址和按内容访问)用来保存主存块与cache块的映射关系
替换算法
随机算法(RAND)
不考虑cache中各块的使用情况,随机地选择一个块作为替换对象。
先进先出算法(FIFO)
不考虑各块的使用情况,根据每块调入cache的时间,将最先调入cache的主存块替换出去。
实现方法:每块设置一个计数器。被装入或替换时(和命中与否无关),其计数器清0,其他块计数器加1。计数值最大的块被替换。
最近最少使用算法(LRU)
以cache中每块的历史使用情况为依据,将近期最少使用的块替换出去。
实现方法:每块设置一个计数器(长),各计数器采用一个固定频率的时钟进行计数。被装入、替换或
命中时,其计数器清0。计数值最大块被替换。
最不经常使用算法(LFU)
以cache中每块的历史使用情况为依据,将访问次数最少的块替换出去。
实现方法:每块设置一个计数器(短)。被装入或替换时,所有计数器清0;命中时,其计数器加1。计数值最小的块被替换。
Cache写操作及一致性
写直达法(write through)
CPU在执行写操作时,将数据同时写入主存和cache 。
写回法(write back)
CPU在执行写操作时,数据只写入cache。只有当cache中的某个字块需要替换出cache时,才把修改
过的cache块写回主存。
写回法又可细分为以下两种方法:
简单写回法:不管字块是否被更新,都进行写回操作。
采用标志位写回法:只在块被更新过时,才进行写回操作。
Cache写操作的实现
若命中
可直接对cache块进行写操作,然后根据所采用的更新主存的算法,决定何时对主存块的内容进行更新。
若不命中
无论是写回法还是写直达法都存在“写时是否取”的问题。主要有以下两种方法:
不按写分配法:当cache写不命中时,只执行对主存的写入操作。
按写分配法:当cache写不命中时,首先执行写主存操作,然后将该主存中的块从主存调入cache。
写回法一般采用按写分配法,写直达法一般采用不按写分配法。
多级cache
片内和片外cache
随着大规模集成电路技术的发展,cache通常被集成在CPU芯片中,称为片内cache。
由于成本和制造工艺等的限制,片内cache的容量通常不会很大。为了增加系统中cache的容量,通常在CPU芯片外再增加一个容量较大的cache,称为片外cache。
数据和指令cache
根据程序的局部性原理,指令存放呈现较强的局部性特性,而数据的访问则呈现较强的随机性。
为提高cache的命中率,很多计算机系统在cache设计时采用了数据和指令相分离的策略,即同时设置指令cache和数据cache 。
3.5 辅助存储器
3.5.1 概述
大多采用磁表面存储器,具有非电易失性、低速大容量、信息沿磁道分布等特点,常见的有磁盘、磁带等。
1.磁表面存储器工作原理
磁表面存储器的存储介质:
某种涂有磁性材料的载体,载体形状各异。例如,磁盘采用圆盘状载体,磁带则采用带状载体。
通过磁头进行数据读写。磁头由一个带间隙的磁环绕上线圈组成,间隙中加磁绝缘物质,磁头能实现电磁信号的转换。按照读写时磁头是否与磁记录介质接触,可将磁头分为:接触式磁头、浮动式磁头。
浮动式磁头工作原理
磁材料分类
1个二进制位的写入过程
2.磁表面存储器的记录方式
磁记录方式是指磁表面存储器在写入一串二进制信息时,磁头线圈所通电脉冲串的编码方法,不同的电脉冲编码将导致磁层介质中不同的磁化翻转序列。
编码方式的主要目标
编码方式设计的主要目标:更高的编码效率、更高的自同步能力更高的读写可靠性。
归零制(RZ)
不归零制(NRZ)
不归零1制(NRZ1)
调相制(PM)
调频制(FM)
改进调频制(MFM)
编码效率
位密度与磁化翻转次数之比。编码效率高有利于提高记录密度。
FM、PM:一个位周期磁化翻转2次,则编码效率为50%。
MFM、NRZ、NRZ1:一个位周期磁化翻转1次,则编码效率为100%。
自同步能力
单个磁道读出信息提取同步脉冲的难易程度。
外同步
专门设置用来记录同步信息的磁道(同步磁道)。
这种同步方式读出时,同步磁道与被访磁道一起读出,读出信息经放大整形后和同步信号相“与”,产生读出
数据代码。
此方式影响记录密度的提高。
自同步
不设同步磁道,同步信息从读出信息中提取,然后反过来再对读出信息进行同步,并选通出读出数据(自己同
步自己)。
自同步要求读出信息在一个位周期时间内至少有一个感应信号,因此,NRZ和NRZ1制均无自同步能力,而RZ
、PM、FM和MFM制均有自同步能力。
自同步能力可以用位周期内平均磁化反转次数来衡量。
NRZ、NRZ1:最大磁化翻转间隔 = 无穷大, 故没有自同步能力。
PM、FM和MFM具有自同步能力。
3.5.2 硬磁盘存储器
1.硬盘结构和工作原理
简称硬盘,具有存储容量大、数据传输率高、存储数据可长期保存等特点。
将磁头和盘片、驱动部分、读写电路密封在一个盒子内,称为“头盘组合体”。更换时要对整个头盘组合体进行整体更换。头盘组合体内部结构属可移动头固定盘片组结构,是目前使用最广,可靠性最好,最方便实用的一种。
分类
按磁头结构分:固定头、活动头
按盘片结构分:固定盘片、可换盘片
组合类型:固定头磁盘存储器、可移动头可换盘片磁盘存储器、可移动头固定盘片磁盘存储器
硬盘结构示意图
硬磁盘存储器的结构
以可移动头固定盘片组结构为例
硬盘由磁盘控制器、驱动器、盘片组三大部分组成。
磁盘驱动器
磁盘设备主体,由主轴系统、定位驱动系统、读/写系统三部分组成。
主轴系统
带动盘组旋转,由主轴、电机和有关控制电路组成。
定位驱动系统
起驱动磁头沿径向运动,以寻找目标磁道的作用。由梳式读写臂、磁头小车、定位驱动部件组成。
读/写控制系统
起控制数据读写过程的作用。由磁头、磁头选择(译码)电路、读写电路等部分组成。
写入
选定磁头——接受写令——数据代码——记录方式电流——磁头写线圈——位单元被磁化
读出
选定磁头——接受读令——位单元状态——读线圈——放大整形——数据、同步信号分离(自同步)——同步选通——数据代码输出
磁盘控制器
磁盘控制器是主机和磁盘驱动器间的接口部件,其作用是对主机与磁盘间的数据交换方式进行控制,通常以接口板(芯片)的形式插在主机板总线插槽上(主板上)。
它有两个界面:
系统级接口:与主机相连的连接面,由系统总线界定,结构较清楚。
设备级接口:与盘驱相连的连接面,划分方法有多种。
盘片
盘片为磁盘存储器的记录载体,常见尺寸有5吋、3吋等。
每张盘片具有上、下两面,均可用来记录信息,称为记录面。对于多片盘片组成的盘组,通常最上面、最下面不用,作为保护面。
记录区
盘片中间有一个圆孔,穿在主轴上。为保证信息的可靠性,通常靠近主轴孔和盘边的部分不用,因此信息记录在盘面上一个环状的有效记录区内。
2.信息记录方式
磁道
磁头在盘面上记录信息的轨迹为许多由内向外排列的同心圆,称为“磁道”。二进制信息沿磁道串行分布。
圆柱面
记录信息时为了节省磁头移动时间,通常在一个磁道存满后,继续存放在另一盘面的同一磁道上,不同盘面的同一磁道可看成是一个圆柱面,存取操作沿柱面进行。
扇区
一个磁道通常分成若干段,称为扇区(或扇段,指一个磁道上的一段弧线,而不是整个扇形区)。一个扇区可存放一个数据块(512B~4KB),磁盘以块为单位成批存取。因此,磁盘寻址的最小单位为扇区(记录块)而不是字节。
盘片上信息分布及地址格式
硬盘的分区
硬分区
在盘面上两个扇区的交界处打孔或缺口,通过光电检测等手段对这些孔进行检测。硬件上设扇区计数器,每检测到一个孔,就发一个脉冲(扇标脉冲),对计数器进行计数,则计数器中从0开始的计数值即为扇区号。
软分区
不设扇标脉冲,扇区的划分通过软件将格式信息写入磁道进行。
0索引
不论是软分区还是硬分区,为标识一个磁道信息的起始,在磁道的起始处打一个索引孔,通过光电检测的方法获得一个脉冲,称为“0索引”。随着磁盘的旋转,0索引脉冲的到来标志着0扇区的开始。
硬盘的记录格式
定长记录格式
扇区中存放的数据块大小固定。这种格式较适合硬分区的结构,简单但记录区的空间利用率不高。
不定长记录格式
扇区中存放的数据块大小可变。这种格式较适合软分区的情况,灵活性和空间利用率较高。
3.硬盘的主要技术参数
容量
一台硬盘的总容量是指所有盘面上全部磁道中存储信息的总和,硬盘容量与其记录密度密切相关。
记录密度是指单位面积或单位长度上可以存储的二进制位数,通常使用道密度和位密度来衡量。
道密度指沿着盘面径向上单位长度内的磁道数量,常用单位为 tpi。
磁道总数 = 道密度 × 盘片有效半径
位密度是指盘面磁道上单位长度所能记录的二进制位数,常用单位为 bpi。
磁道的总容量 = 位密度 × 磁道的周长
非格式化容量
硬盘上可利用的磁化单元总数,包括间隙等非有效单元。
容量 = 硬盘个数 × 磁盘记录面数 × 磁道数 × 磁道容量
= 硬盘个数 × 磁盘记录面数 × 道密度 × 盘片有效半径 × 位密度 × 磁道的周长
格式化容量
按照某种特定记录格式所能存储的信息总量。一般为非格式化容量的60%~70%,是用户可用的有效容量。
格式化磁盘容量 = 硬盘个数 × 磁盘记录面数 × 磁道数 × 每道扇区数 × 扇区容量
传输速率
硬盘的传输速率主要取决于以下因素:磁头定位到磁道的时间、需要访问的扇区旋转到磁头下(上)的时间以及磁头进行读写操作所需的时间。
平均寻址时间
平均寻址时间 = 平均寻道时间 + 平均等待时间
平均寻道时间:磁头到达目标数据所在磁道的平均时间。
平均等待时间:磁头到达目标磁道后,等待所要访问的扇区旋转至磁头下(上)方所需的平均时间。
转速:单位时间内硬盘盘片旋转的圈数,单位rpm。
平均等待时间 = 1/转速/2
数据传输速率
读写数据时单位时间内的数据传输量,通常单位用字节/秒(B/s,Bps)。
内部数据传输率:主要取决于硬盘的转速。
内部数据传输率 = 磁道容量 × 转速
外部数据传输率:系统总线与硬盘数据缓冲区之间的数据传输率。
硬盘参数计算例
某磁盘存储器转速为3000转/分,共有4个有效记录面,每道记录信息为12 288B。最小磁道直径为230mm,每毫米5道,共有275道,扇区大小为512B。
问:
⑴ 磁盘存储器的存储容量是多少?
磁盘存储容量 = 总盘面数 × 总柱面数 × 道容量 = 4面×275道×12288B = 13516800B ≈12.89 MB
⑵ 最高位密度与最低位密度是多少?
⑵ 最高位密度即最内道的位密度,因此,
最高位密度 = 道容量/最内道周长 = 12 288B/ 230mm×π ≈ 17B/mm ≈ 136位/mm
最低位密度即最外道的位密度,由于磁盘的外直径未知,因此,需先算出外径。即
最大磁道直径 = 最内径 + 有效记录区宽度×2 = 230mm + 275道/5道×2 = 230+110 = 340mm
最低位密度 = 道容量/最外道周长 = 12 288B/ 340mm×π ≈ 11B/mm ≈ 92位/mm
⑶ 磁盘数据传输率是多少?
数据传输率 = 道容量×转速= 12 288B×3000/60 = 614 400B/s = 614.4KB/s
⑷ 平均等待时间是多少?
平均等待时间既磁盘转半圈的时间,因此,平均等待时间 = 1/转速/2 = 60/3000/2 = 10ms
⑸ 给出一个磁盘地址格式方案。
磁盘地址格式与信息在盘面上的分布方式有关,由于数据是按柱面、盘面、扇区划分的,因此地址中应含有这些编号。
首先确定未知的扇区个数:扇区数 = 12 288B/512B = 24区,则扇区号取5位地址。
同理,4个有效记录面需2位地址,275道需9位地址,则共需9+2+5 = 16位地址。
3.5.3 磁盘阵列
独立冗余磁盘阵列RAID的基本思想是把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),这些硬盘在RAID控制器的统一控制下协同工作,从而提供比单个硬盘更高的存储性能和提供数据备份技术。
磁盘阵列中针对不同的应用设计了不同的技术标准,被称为RAID 级别。常用的级别包括RAID 0到RAID 7等。
级别的高低并不代表性能的好坏,只是反映了关键参数的不同组合。
RAID级别可以相互组合或通过扩展形成诸如RAID10、50和60等组合RAID级别。
常用的RAID级别中的磁盘的组织
磁带
常用的一种备份级的离线存储器
磁带属于顺序存的存储器。
磁带由磁带机及其控制器组成的存储设备
磁带机的磁头是固定不动的,通过磁带在磁头下的移动来完成定位操作。
按磁带的记录格式不同可将磁带分为启停式和数据流式两种。
光盘
盘基(衬底):采用透明的聚碳酸酯(PC)材料
记录层:通过在盘基上涂抹有机染料而构成,不同光盘最本质的区别就是染料层所涂覆的有机染料是不同的。
反射层:由喷镀的金属膜构成,在光驱进行数据读写时用来反射激光光束。
保护层:用来保护光盘中的反射层和记录层。
印刷层(标签):一方面可以用于用户标识盘片内容等信息,另一方面也可以起到对光盘的保护作用。
U盘
U盘也被称为闪存盘,采用闪速存储器作为存储介质。U盘是目前最常使用的移动存储器。U盘主要包括以下几个部分:
闪存芯片:用以存储数据。
USB存储设备控制器:提供 USB 设备控制器及与闪存的接口。
石英振荡器:用于提供U盘工作所需的时序信号。
USB插头:提供连接到主机的接口。
固态硬盘
固态硬盘(Solid State Drives),简称固盘。用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、DRAM芯片)组成,可随机访问。
固态硬盘的存储介质分为两种,一种是采用闪存(FLASH芯片)作为存储介质,另外一种是采用DRAM作为存储介质。
优点:低功耗、无噪声、抗振动、低热量、体积小。
缺点:成本高、容量小、寿命短、可靠性低、写入速度慢。
3.6虚拟存储器
3.6.1 虚拟存储器的基本原理
虚拟存储器技术就是将一部分硬磁盘空间作为主存来使用,使得计算机的存储系统在容量上接近辅存的容量。
虚拟存储层次的工作原理与高速缓存层次非常类似。
内存管理单元MMU
虚拟存储器的管理主要是由操作系统(软件)来进行的。
CPU通过内存管理单元(Memory Management Unit,MMU)来支持操作系统进行存储管理相关工作。
MMU是一个用来管理CPU发出的访存请求的控制部件,它负责虚拟地址到物理地址的映射及转换、存储器保护、cache控制、总线仲裁等。
3.6.2 虚拟存储器的地址映射及变换
页式虚拟存储器的基本思想是用固定大小的页(page)来描述逻辑地址空间,用相同大小的页(也被称为页框)来描述物理内存空间。
页的大小通常取2的n次方字节。
主存中的页被称为物理页或实页,虚存中的页被称为逻辑页或虚页。当程序运行时,以页为单位进行调入调出。
存储单元的物理地址和逻辑地址都由页号和页内地址两部分组成,物理地址(逻辑地址)的计算方法如下:
物理(逻辑)地址=页的大小×页面号+页内地址
变换后援缓冲器 TLB
页表中最常用的部分保存在高速缓存的快表中,而用于缓存快表的高速存储部件被称为变换后援缓冲器(TLB)
段式虚拟存储器
段式虚拟存储器的基本思想是:按照程序的逻辑结构划分段,主存以段为单位进行分配。
由于段是按照程序的自然边界划分的,因此每个段的长度各不相同,并且程序员通常还会把不同类型的数据划分到不同的段中。
段页式虚拟存储器
段页式虚拟器的基本思想是将页式和段式结合起来。主存的物理空间被等分成页,程序则先按逻辑结构分段,每段再分成与物理空间页同样小的页面,程序以页为单位进行调入和调出操作,但以段为单位进行编程、保护和共享。
3.6.3 存储保护
通过一些限制方式保护内存中程序的技术被称为存
储保护。
存储保护主要包括:
存储区域保护:基于页表或段表的保护、键保护方式、环保护方式;
访问方式保护。
3.7Pentium 存储器
Pentium的三种工作模式
实地址模式
虚拟8086模式
保护模式
在保护模式下,Pentium 4在硬件上可同时支持对虚拟存储器进行分段和分页管理。
允许操作系统选择以下四种模式中的一种:
不分段不分页模式
段式模式
页式模式
段页式模式