380 likes | 498 Views
第 6 章. 存储器及 管理技术. 外部 存储器. 主存储器. CPU 寄存器组. 二级 Cache. 一级 Cache. 6.1 存储器系统. 计算机的存储器管理体系采用的是一种层次结构,它的最顶层的、与 CPU 联系最密切的存储部件是微处理器内部的寄存器。然后,就是一级高速缓冲存储器 L1 ,二级高速缓冲存储器 L2 。接下来的就是微处理器必须配置的主存储器,它们都是微机系统的内部存储器。再下一个层次的存储器就是外部存储器,通常是硬盘、光盘等 ,如图.
E N D
第6章 存储器及 管理技术
外部 存储器 主存储器 CPU 寄存器组 二级 Cache 一级 Cache 6.1 存储器系统 计算机的存储器管理体系采用的是一种层次结构,它的最顶层的、与CPU联系最密切的存储部件是微处理器内部的寄存器。然后,就是一级高速缓冲存储器L1,二级高速缓冲存储器L2。接下来的就是微处理器必须配置的主存储器,它们都是微机系统的内部存储器。再下一个层次的存储器就是外部存储器,通常是硬盘、光盘等,如图
所谓存储管理,其实是一个硬件机制,由于它的存在可以让操作系统为众多运行的程序创造一个便于管理的和谐的存储环境。所谓存储管理,其实是一个硬件机制,由于它的存在可以让操作系统为众多运行的程序创造一个便于管理的和谐的存储环境。 通过微处理器的总线访问的存储器叫做物理存储器。它是由一系列的(由8位二进制的)字节组成的,而且给每一个字节都分配了一个惟一地址,把这种地址称之为物理地址。像Pentium可访问的物理存储器的范围为4GB(232 –1)。 Pentium微处理器片内存储管理部件负责对物理存储器实施安全可靠且行之有效的存储管理操作。
6.2 半导体存储器 1. 内存储器 内存储器是指微机系统中存放程序和数据的部件,是CPU能直接进行存取操作的部件,它是由一组或多组具有数据存储功能、以及能进行读写操作的大规模集成电路组成。内存储器条。 2. 随机存取存储器RAM RAM是一种既能读出也能写入的存储器,它适合于存放用户程序和数据,因为这类信息是经常变化的
RAM有3个特点 ① 可以读出,也可以写入。读出时并不损坏所存储的内容。只有在写入时才修改原来所存储的内容。 ② 所谓随机存取,意味着存取任一单元所需的时间相同。因为存储单元排成二维阵列。就象通过X、Y两个坐标就能确定一个点那样。 ③ 当断电后,存储的内容立即消失,又称为NOVRAM( Nonvolatile RAM )或NVRAM。
RAM的分类 在RAM中,又被分为双极性RAM、和MOS RAM这样两大类。 (1)双极性RAM (2) MOS RAM ① SRAM (Static RAM,静态随机存储器) SRAM的运行速度非常快,像CPU内的一级、二级缓冲存储器就使用了SRAM,其运行频率与CPU的时钟同步。SRAM高速度的特点,对提高系统性能非常有利,但价格较贵。 ② DRAM(Dynamic RAM,动态随机存储器)
3.只读存储器(Read Only Memory) 常用的只读存储器又分成以下几类: (1) ROM:一般由生产厂家把编好的程序固化在ROM中。 (2) PROM:是可编程只读存储器(Programmable Read Only Memory), 它与ROM的性能一样。存储的程序在处理过程不会丢失,也不会被替换。 (3)EPROM:可擦除的ROM。这是一种可由用户编程并可擦除的ROM。存放在EPROM中的信息可以擦除,然后再写入,且能多次改写其中的内容,只是写入速度较慢。 (4)EEPROM:电可擦除可重写只读存储器(或E2PROM)。也叫“电擦除可编程只读存储器EEPROM” 、或被称之为EAROM,是电可擦除PROM、或电可改写ROM。。 (5)闪速存储器(Flash Memory) 闪速存储器是一种特殊类型的EEPROM类的存储器,是目前较理想的一类存储器,具有密度高、读/写速度快、成本低和不易丢失的特点。Flash的主要优点是: ① 不易丢失性: 相比于SRAM,Flash不需后备电源来保持信息。 ② 易更新性:与EEPROM相比,Flash的成本更低,密度和可靠性更高。
4.内存储器条 内存储器条是微机系统用来存放程序和数据的实际存储器,主要有两种类型: (1)第一种是单边直插式存储器模块SIMM(Single Inline Memory Module),早期的30线、72线的内存储器条属于这种类型。 72线内存储器条多用在80486、早期的Pentium微处理器上,其容量有4MB、8MB、16MB和32MB等,可提供32位有效数据位。 (2)第二种是双边直插式存储器模块DIMM(Double Inline Memory Module),像168线的SDRAM和184线的DDR SDRAM内存储器条属于这种类型。
5. 内存储器的主要性能指标 • 内存储器容量: 即内存储器所能容纳的字节总数; ② 存取速度: 即从内存储单元中将二进制信息读出到存储器数据寄存器中(或反之)所需的时间; ③ 存储器的可靠性: 用平均无故障时间的长短来表征,即两次故障之间的平均时间间隔; ④ 性能价格比。
5.3 虚拟存储技术 1. 虚拟存储技术 (1) 虚拟存储器 虚拟存储器技术是使程序所用的存储容量,不取决于实际随机存储器RAM容量,程序可以运行在比实际存储器大得多的存储器上的一种方法。 在虚拟存储系统中,磁盘成了事实上的主存储器,而实际随机存储器RAM则是变成了用来暂时存放微处理器当前正在使用的指令代码和数据的一个区域,在主存储器内存放的是,微处理器正在执行的或将要执行的保存在磁盘上的部分程序的拷贝。 虚拟存储系统为了能把虚拟地址(也称其为逻辑地址)转换成实地址(称物理地址),在硬件上提供了关键性的技术支持。
(2) 虚拟存储方案 就目前的虚拟存储技术,虚拟存储方案有如下三种: ① 分段存储方案,即把虚拟存储器分成大小可以变化的若干个段; ② 分页存储方案,这种方案是把虚拟存储器分成大小固定的若干个页; ③ 混合方案,是在大小可以变化的段的基础上,再把段细分成大小固定的若干个页。
2. 分段存储管理技术 (1) Pentium实施的分段存储管理技术 存储管理是由分段存储管理和分页存储管理组成,分段存储管理模式是建立在可靠性和高性能的基础之上的一项管理技术。所谓分段,就是将Pentium的4GB的存储空间分成若干个各自独立的被保护的地址空间。每一个应用程序都可以使用若干个大小不等的段。 分段部件是一种可以提供多个各自独立地址空间的机构。所以段实际上就是一个独立的被保护的地址空间。
段寄存器 段选择符 段描述符表 段描述符 (2) 段信息的流程 分段需要的操作步骤、分段操作过程、及几个需要知道的基本概念和技术术语。 分段所需要的操作过程,是由Pentium的存储管理(即分段部件和分页部件)负责控制执行。 Pentium器配备有6个16位的段寄存器,与80386的6个16位的段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符。 在段寄存器内存放的信息表示的就是段选择符的信息,用这个段选择符的信息,可以从两个段描述符表中的其中一个之中,找出这个段的描述符信息。从段寄存器上的信息,到得到段描述符的信息的过程,可用一个如下的流程图表示之。
索 引 字 段 15 3 2 1 0 RPL Ti ① 段寄存器 段寄存器上的信息是用来说明本次指示的是6种段中的哪一类段(是代码段、数据段、堆栈段)。 ② 段选择符 由于存放在段寄存器上的内容,实际上是段的选择符信息,它指明了本次段选择符上的内容所指示着的段描述符,是在两个段描述符表中的哪一个之中。为更清楚说明问题起见,图中展示出段寄存器(段选择符)的结构。 图中符号说明: 1. 位0位1 (RPL);请求特权级字段 RPL=00 表示最高特权级 RPL=11 表示最低特权级 2. 位2( Ti);字段是指示符字段 Ti=0 指向全局描述符表 Ti=1 指向局部描述符表 3. 位15~位3; 索引字段
Ti RPL 段选择符 15 2 1 0 Ti=1 Ti=0 局部描述符表 全局描述符表 访问控制 段界限 段界限 基地址 基地址 全局描述符表寄存器GDTR 局部描述符表寄存器LDTR ③ 段描述符表 段描述符表,是用来保存段描述符的地方。也就是说,段描述符表是由各种段(代码段、数据段、堆栈段、附加数据段)的描述符组成。 Pentium配备的段描述表为两个表,其一叫全局描述符表GDT,另一个则叫局部描述符表LDT,如图所示。全局描述符表是供系统中所有程序使用的。而局部描述符表是供各自运行程序使用的。
段描述符 9 8 7 0 31 24 23 22 21 20 19 16 15 14 13 12 11 10 AVL D/B 基地址31~24 段界限19 ~ 16 DPL 基地址23~16 类型 G 0 P S 基地址15 ~ 00 段界限 15 ~ 00 ④ 段描述符 图展示出了一个Pentium使用的段描述符,它是由8个字节(64位)组成。 符号说明: AVL 通过系统软件可以使用 DPL 描述符特权级 D/B 缺省操作数大小尺寸 (0=16位的段, 1=32位的段 G 粒位 P 段存在位 S 描述符类型(0=系统级, 1=应用级) 类型 段的类型 基地址 段的基地址
48位的逻辑地址 15 31 0 0 描述符表 页目录 偏移量 页表 32位基地址 段描述符 22 21 11 12 0 31 16位段选择符 32位的偏移量 线性地址 (3) 分段部件的转换操作 系统给出的地址以及程序给定的地址都是逻辑地址,段选择符内容再加上这个段的偏移量,被Pentium当成一个逻辑地址处理。 逻辑地址也称为虚拟地址。这是因为它是一个只有应用程序才能看到的地址。经过分段部件的操作之后,其结果是经由分段部件将逻辑地址转换成线性地址。
3. 分页存储管理技术 (1)分页存储管理 分页存储管理是Pentium的另一种形式的存储管理模式。是用一种规模、容量相对说来比较小的存储器空间和磁盘,去模拟一个大容量的不分段的存储空间。 Pentium的分页部件为访问比实际用存储空间还要大的数据结构提供了一种技术支持,具体做法就是,将这个大数据结构的一部分保存在存储器中,而将另一部分保存在磁盘存储器中。 Pentium是将4KB地址空间定义为一个页。分页部件可将线性地址空间分成若干大小为4KB的被称之为页的存储模块。逻辑地址空间首先经分段部件转换成线性地址空间,然后再将线性地址空间转换成一定数量的页。
0 31 22 21 12 11 页目录索引 页表索引 偏移量 (2) 分页步骤 48位的逻辑地址经分段部件之后,就被转换成了32位的线性地址。如果不分页,此时的线性地址就是物理地址。如果需要分页,则要经分页部件,再将32位的线性地址转换成物理地址,这是分页部件的职责。 ① 分页的基础 48位的逻辑地址经分段部件之后,要先被转换成32位的线性地址。 ② 允许分页 Pentium的控制寄存器CRO的位31(PG位)是允许分页控制位,若将控制寄存器CRO的位31置成1,才表示分页机构允许分页。 ③ 线性地址的结构 下图展示出线性地址的结构。32位的线性地址被进一步分成3个字段,其中高端10位(位31~位22)是页目录索引字段,中间的10位(位21~位12)是页表索引字段。而剩下的低端12位字段,所表示的则是一个存储器页内的4KB个地址。
④页目录 线性地址中的高端10位(位31~位22)是页目录索引字段,10位的页目录最多可以索引、定位1024个页目录项。也就是说,页目录是由1024个页目录项组成。 ⑤页表 线性地址的中间10位(位21~位12)是页表索引字段,10位的页表最多可以索引、定位1024个页表项。也就是说,页表是由1024个页表项组成。 由于10位的页目录最多可以索引、定位1024个页目录项,而10位的页表最多可以索引、定位1024个页表项。这样线性地址的高端20位,就可以索引、定位1M个页地址(即1024×1024=1M页)。 ⑥ 存储器页 Pentium约定,把4KB大小的存储器空间规定成一个页。所以,Pentium的4GB的存储器空间可以分成1M个页(即4GB/4KB=1M)。
(3) 分页部件的转换操作 系统给出的地址以及程序给定的地址都是逻辑地址,经过分段部件的操作之后是将逻辑地址转换成线性地址。分页部件的作用就是将线性地址转换成物理地址。 下面说明分页部件的转换操作的条件和步骤: ①允许分页位 Pentium的控制寄存器CRO的位31(PG位)是允许分页控制位,若将控制寄存器CRO的位31置成1,则表示分页机构允许分页。
32位线性地址 22 21 12 11 31 0 存储器页 页表 页目录 操作数 页表项 页目录项 ② 线性地址的转换 图中所展示出的是,Pentium怎样用两级页表,将线性地址字段中的页目录索引字段、页表索引字段以及偏移量字段转换成物理地址的。 页表索引 偏移量 页目录索引
③ 页表 所谓页表,实际上是由若干个大小为32位(4个字节)的页表项组成的一个阵列。页表本身也是一个页,其规模大小为4096个字节的存储空间,所以其内最多可保存1K个32位的页表项,如上图。 在这种4KB的页内当然也保存着页目录项、页表项。
31 12 9 8 7 6 5 4 3 2 1 0 11 PCD PWT 页框地址31~12 0 0 D A U W P AVAIL 系统设计人员可用 保留 脏位 存取操作 页Cache禁止 页透明写 用户 可写 存在 ④ 页表项 两级页表中,虽页表项和页目录项的内容不同,但页表项的格式却是一样的(页目录内缺少脏位这种情况除外)。图中展示出了页表项的格式。页目录中的脏位D(Dirty)位保留供将来用。
6.4 高速缓冲存储器Cache (1)存储器系统层次结构 计算机的存储器系统是由几种容量大小、存取速度、性能价格、在微机系统中所处的位置等均有所不同的存储器组成。计算机的存储器管理体系采用的是一种层次结构 1.它的最顶层的、与CPU联系最密切的存储部件是微处理器内部的寄存器。然后,就是配置在CPU芯片内一级Cache L1。 2.在Pentium II等高档的微处理器芯片内,增配了二级高速缓冲存储器Cache L2。 3. 而在Pentium 4等更高档的微处理器芯片内,甚至又新增配了三级高速缓冲存储器Cache L3。
CPU 寄存器组 一级 Cache L1 外部存储器 (虚拟存储器) 主存储器 (物理存储器) 三级 Cache L3 二级 Cache L2 4.接下来的就是微处理器必须配置的主存储器(也被称之为物理存储器),通常是由动态随机存储器DRAM组成。 5.再下一个层次的存储器就是外部存储器(也叫虚拟存储器),通常是硬盘、光盘等
(2) Cache 存储器 Cache存储器是一种高速的,但其规模大小相对于主存储器而言又是比较小的位于处理器和操作速度比较低的主存储器之间的一种存储设备,其内保存的是目前处理器正在使用的主存储器的副本,处理器使用Cache 可以快速地从其内取得所需的指令和数据。由于装备有Cache,相应地减少了访问主存储器的次数. (3)Cache 的作用和有效性 Cache存储器的作用和有效性表现在:微机系统内的Cache存储器,确实拥有保存微处理器当前经常使用的指令和数据的能力,而且还具有存取速度快、命中率高的特点,这些特征充分表现出Cache技术的有效性。 说明Cache 有效性的另一个重要标志是微机系统的性能。在正常情况下,由于访问Cache 的速度要比访问主存储器的速度快3~8倍。这样就明显地增强了整个系统性能。
(4)局部性原理 为使Cache 更加有效,要求程序有高度的暂时性和局部性。配备Cache的基础是基于程序访问的局部性原理,即要被访问的数据大多集中在存储器的某个局部区域。从程序执行的过程上来说,它不可能长时间地仅执行位于存储器内某个局部区域中的某一段程序,被执行的程序段有可能会随着程序的结构被更换,但在短时间内CPU访问的程序段还是固定的几个程序段。 研究表明,大部分程序都是串行的、顺序执行的,除分支转移指令和调用指令外,在大多数情况下,下一次要取的指令往往是紧跟着上一次刚取的那一条指令。
地址总线 loop 控制 控制 CPU 主 存 储 器 loop Cache 数据总线 图中展示出了Cache 中内容相对于主存储器来说是暂时的和局部的。
(5) Cache 存储器数目和容量 Pentium芯片内采用的是指令Cache和数据Cache各自独立、各为一体的分离式Cache。也就是说,Pentium配备有两个Cache,一个是指令Cache,另一个是数据Cache。在指令Cache内,只是存放目前CPU正在执行的程序指令。而在数据Cache内,则仅仅存放目前CPU正在执行的程序所需要的数据。 目前已经达到了三级Cache 。分别是一级Cache L1,二级Cache L2,三级Cache L3。
3.Cache 存储器性能 (1)命中率(Hit rate) Cache 存储器的性能主要表现在Cache命中率的高低、和不命中率频率上。当CPU欲访问存储器时,首先会到Cache内寻找本次操作所需的数据。若这时欲寻找的数据保存在Cache内,本次访问Cache的操作就叫作命中。否则,则称之为不命中。
(2)影响Cache 性能的因素 影响Cache 性能的因素有很多 ① Cache 规模大小 ② 缔合方式(Associaivity) ③ Cache 行大小 ④ 写回和记入式写 ⑤ 配置
(3) Cache 大小规模和性能 表中列出了各种配置的一级Cache 命中率。表中所列这些统计数字还是比较保守的数字,这是因为这些数字是通过分析大量的主机运行情况后统计出的最低命中率。而且这个命中率也不是绝对数,命中率与软件也是息息相关的。 本表的意义在于可以对各种不同配置的Cache 进行一番比较。通过这张表,可以说明欲使Cache 达到一定的效率,其硬件的复杂程度应如何。表中列出的一级Cache 的命中率分别是直接映像、二路相联以及四路相联Cache 结构下的命中率。
4. Cache 存储器映射 1.Cache缔合方式 Cache 内保存的内容是主存储器内容的映像,是通过把主存储器的地址映射到Cache 的存储单元的办法把数据和指令复制到Cache 中去的。 2.直接映像Cache 直接映像的Cache 是一项Cache交换技术,为存储器中每一存储器单元,对应分配Cache中惟一的一个存储单元。 3.二路相联Cache 二路相联Cache 是N路相联的Cache的一个特例,是全相联Cache 与直接映像Cache 之间的一种折衷方案,二路相联的Cache 配备两个Cache 体 4. 全相联的Cache 全相联的Cache系统在任何时候在决定将哪些存储块信息存放到Cache 时,都能够最大限度地提供灵活性和适应性。
微处理器 主存储器 Cache 5.Cache 存储器写策略 (1) 一致性 所谓一致性(Coherency) ,指的是Cache中信息与主存储器中的信息一致性,即Cache中每一地址上的数据与主存储器中相应存储单元中数据相一致。欲使主存储器信息与Cache内信息之间协调一致,通常有三种写方案可供选择。如图所示。 ① 写贯穿(Write Through) 这是在所有写操作时修改主存储器和Cache存储器的一种方法, 在向Cache写数据的同时,把相同的数据也写入主存储器中。以此来保证Cache与主存储器中信息的一致,保证主存储器中信息总是有效。
微处理器 Cache 主存储器 ② 写回(Write Back) 这种写方案是一种用来更新Cache的写方法,只有当Cache中某一存储块被刷新时,才会把这一存储块写回主存储器,这样就减少了写入存储器的信息量。当Cache中某一存储块中的信息被修改时,也只是在Cache中进行,但要设置与行有关的修改位。而当Cache中的一存储块欲刷新或被替换时,且修改位也被置位时,才会把它写回到主存储器。 当Cache行被刷新时 将其写回主存储器
微处理器 Cache 主存储器 缓冲存储器 ③记入式写(Posted Write ) 这种写方案实际上是一种带缓冲的写贯穿, 这种写方案是把欲写到Cache中的数据先复制到一个缓冲存储器中去。然后再把这个副本写回主存储器。 把Cache行写到缓 存储器
6.替换算法和替换规则 (1) Cache 替换算法 替换算法是基于这样的一种事实,即最近经常被使用过的信息具有更高的再使用概率。 (2) 替换规则 ① FIFO替换算法 ② LRU替换算法 ③ 随机替换算法