《微机原理与接口技术(第2版)》第03章存储管理_第1页
《微机原理与接口技术(第2版)》第03章存储管理_第2页
《微机原理与接口技术(第2版)》第03章存储管理_第3页
《微机原理与接口技术(第2版)》第03章存储管理_第4页
《微机原理与接口技术(第2版)》第03章存储管理_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章存储管理本章知识要点:

本章从存储器系统的构成以及在微机系统中的重要作用入手,从科学发展的视角,逐步地、由浅入深地引导读者认识微处理器的存储器管理功能,以及存储器管理技术的发展。以16位的8086和32位的Pentium为平台,以新-旧对比的方法介绍存储器管理技术,以及各功能部件的结构、功能、操作原理等。对所采用的虚拟存储技术(分段、分页存储管理技术)等先进技术,进行了说明和剖析。

本章也是微机知识的核心之一、是重点、难点所在。通过本章,读者得到是系统的先进的存储管理技术知识。

3.1存储器系统

计算机的存储器管理体系采用的是一种层次结构,它的最顶层的、与CPU联系最密切的存储部件是微处理器内部的寄存器。然后,就是一级高速缓冲存储器L1,二级高速缓冲存储器L2。接下来的就是微处理器必须配置的主存储器,它们都是微机系统的内部存储器。再下一个层次的存储器就是外部存储器,通常是硬盘、光盘等,如图

CPU

寄存器组

一级

Cache

二级

Cache

主存储器

外部存储器

所谓存储管理,其实是一个硬件机制,由于它的存在可以让操作系统为众多运行的程序创造一个便于管理的和谐的存储环境。通过微处理器的总线访问的存储器叫做物理存储器。它是由一系列的(由8位二进制的)字节组成的,而且给每一个字节都分配了一个惟一地址,把这种地址称之为物理地址。像Pentium可访问的物理存储器的范围为4GB(232–1)。

Pentium微处理器片内存储管理部件负责对物理存储器实施安全可靠且行之有效的存储管理操作。

3.2半导体存储器1.内存储器内存储器是指微机系统中存放程序和数据的部件,是CPU能直接进行存取操作的部件,它是由一组或多组具有数据存储功能、以及能进行读写操作的大规模集成电路组成。内存储器条。2.随机存取存储器RAMRAM是一种既能读出也能写入的存储器,它适合于存放用户程序和数据,因为这类信息是经常变化的RAM有3个特点

①可以读出,也可以写入。读出时并不损坏所存储的内容。只有在写入时才修改原来所存储的内容。

②所谓随机存取,意味着存取任一单元所需的时间相同。因为存储单元排成二维阵列。就象通过X、Y两个坐标就能确定一个点那样。

③当断电后,存储的内容立即消失,又称为NOVRAM(NonvolatileRAM)或NVRAM。RAM的分类在RAM中,又被分为双极性RAM、和MOSRAM这样两大类。(1)双极性RAM

(2)MOSRAM①SRAM(StaticRAM,静态随机存储器)

SRAM的运行速度非常快,像CPU内的一级、二级缓冲存储器就使用了SRAM,其运行频率与CPU的时钟同步。SRAM高速度的特点,对提高系统性能非常有利,但价格较贵。

②DRAM(DynamicRAM,动态随机存储器)3.只读存储器(ReadOnlyMemory)

常用的只读存储器又分成以下几类:

(1)ROM:一般由生产厂家把编好的程序固化在ROM中。

(2)PROM:是可编程只读存储器(ProgrammableReadOnlyMemory),它与ROM的性能一样。存储的程序在处理过程不会丢失,也不会被替换。

(3)EPROM:可擦除的ROM。这是一种可由用户编程并可擦除的ROM。存放在EPROM中的信息可以擦除,然后再写入,且能多次改写其中的内容,只是写入速度较慢。

(4)EEPROM:电可擦除可重写只读存储器(或E2PROM)。也叫“电擦除可编程只读存储器EEPROM”、或被称之为EAROM,是电可擦除PROM、或电可改写ROM。。

(5)闪速存储器(FlashMemory)

闪速存储器是一种特殊类型的EEPROM类的存储器,是目前较理想的一类存储器,具有密度高、读/写速度快、成本低和不易丢失的特点。Flash的主要优点是:

①不易丢失性:相比于SRAM,Flash不需后备电源来保持信息。

②易更新性:与EEPROM相比,Flash的成本更低,密度和可靠性更高。4.内存储器条

内存储器条是微机系统用来存放程序和数据的实际存储器,主要有两种类型:(1)第一种是单边直插式存储器模块SIMM(SingleInlineMemoryModule),早期的30线、72线的内存储器条属于这种类型。

72线内存储器条多用在80486、早期的Pentium微处理器上,其容量有4MB、8MB、16MB和32MB等,可提供32位有效数据位。(2)第二种是双边直插式存储器模块DIMM(DoubleInlineMemoryModule),像168线的SDRAM和184线的DDRSDRAM内存储器条属于这种类型。5.内存储器的主要性能指标

内存储器容量:即内存储器所能容纳的字节总数;

②存取速度:即从内存储单元中将二进制信息读出到存储器数据寄存器中(或反之)所需的时间;③存储器的可靠性:用平均无故障时间的长短来表征,即两次故障之间的平均时间间隔;④性能价格比。3.316位微处理器的存储管理

3.3.1.分段存储管理由于8086与地址相关的寄存器是16位(内部寄存器都是16位),算术逻辑单元ALU也只能进行16位计算,因此只能存放16位地址,即只能寻址达到64KB(216=64KB)。为了形成20位地址,以便寻址1MB存储空间。8086采用分段办法管理1MB存储空间,即将1MB存储空间分成若干个逻辑段,每个逻辑段最大为64KB。

8086把内存分成4种逻辑段,即代码段、数据段、堆栈段和附加段。FFFFFH00000H可重叠代码段数据段附加段堆栈段存放代码存放数据存放数据存放临时数据

1MB存储空间

图3-4内存分段示意图3.3.2存储管理中的术语

4个技术术语:物理地址、偏移地址、段基地址和逻辑地址。物理地址

8086/8088的1MB存储器以字节地址为单位,即存储器是按“字节寻址”。存储器中的每个字节中可以存放一个字节数,每个字节拥有一个惟一的地址编号。存储单元的地址码由8086芯片提供,去进行存储器的地址译码。由于8086最大内存容量为1MB,把每一个内存单元的20位地址叫做物理地址。偏移地址是指段内某内存单元的物理地址,相对于段起始地址的位移量,称为段内偏移地址。也就是说,是段内的某个存储单元与该段段首地址的差值,称为段内偏移地址或称为偏移量或相对地址,用16位二进制代码表示。由于一个段最大为64KB,故偏移地址用16位二进制表示就可以了。段基地址是放置在段寄存器上的地址信息。由于8086对内存储器采用分段存储管理的办法,8086将大小为1MB的存储空间分为若干段,而段的大小可以根据需要决定,其最大值可为64KB。存储器分段后,每一段都要有一个段号,且要用16位二进制数表示。其实,每个段首地址的高端16位二进制代码就是该段的段号,也叫段基地址

8086/8088对存储器分段时,各段的起始位置通常是地址编号是能被16整除的内存单元。逻辑地址是在程序中对存储器地址的一种表示方法,一般是将段基址和偏移地址称为逻辑地址。3.432位微处理器存储管理

为要认识32位微处理器的存储管理技术,下面将以32位的Pentium微处理器为例,对其采用的存储管理技术进行分析。一是与8086的存储管理技术进行比较,认识到存储管理技术与时俱进是历史的必然。二是认识到先进的存储管理技术,是计算机技术发展的基础和需要。

3.4.1虚拟存储技术

1.虚拟存储技术

(1)虚拟存储器

虚拟存储器技术是使程序所用的存储容量,不取决于实际随机存储器RAM容量,程序可以运行在比实际存储器大得多的存储器上的一种方法。

在虚拟存储系统中,磁盘成了事实上的主存储器,而实际随机存储器RAM则是变成了用来暂时存放微处理器当前正在使用的指令代码和数据的一个区域,在主存储器内存放的是,微处理器正在执行的或将要执行的保存在磁盘上的部分程序的拷贝。虚拟存储系统为了能把虚拟地址(也称其为逻辑地址)转换成实地址(称物理地址),在硬件上提供了关键性的技术支持。

(2)虚拟存储方案

就目前的虚拟存储技术,虚拟存储方案有如下三种:

①分段存储方案,即把虚拟存储器分成大小可以变化的若干个段;

②分页存储方案,这种方案是把虚拟存储器分成大小固定的若干个页;

③混合方案,是在大小可以变化的段的基础上,再把段细分成大小固定的若干个页。

2.分段存储管理技术

(1)Pentium实施的分段存储管理技术存储管理是由分段存储管理和分页存储管理组成,分段存储管理模式是建立在可靠性和高性能的基础之上的一项管理技术。所谓分段,就是将Pentium的4GB的存储空间分成若干个各自独立的被保护的地址空间。每一个应用程序都可以使用若干个大小不等的段。分段部件是一种可以提供多个各自独立地址空间的机构。所以段实际上就是一个独立的被保护的地址空间。(2)段信息的流程

分段需要的操作步骤、分段操作过程、及几个需要知道的基本概念和技术术语。分段所需要的操作过程,是由Pentium的存储管理(即分段部件和分页部件)负责控制执行。

Pentium器配备有6个16位的段寄存器,与80386的6个16位的段寄存器同宗、同名、同功能。段寄存器的另一种称呼叫段选择符。在段寄存器内存放的信息表示的就是段选择符的信息,用这个段选择符的信息,可以从两个段描述符表中的其中一个之中,找出这个段的描述符信息。从段寄存器上的信息,到得到段描述符的信息的过程,可用一个如下的流程图表示之。段寄存器段选择符段描述符表段描述符①段寄存器

段寄存器上的信息是用来说明本次指示的是6种段中的哪一类段(是代码段、数据段、堆栈段)。②段选择符由于存放在段寄存器上的内容,实际上是段的选择符信息,它指明了本次段选择符上的内容所指示着的段描述符,是在两个段描述符表中的哪一个之中。为更清楚说明问题起见,图中展示出段寄存器(段选择符)的结构。

图中符号说明:1.位0位1(RPL);请求特权级字段

RPL=00表示最高特权级

RPL=11表示最低特权级

2.位2(Ti);字段是指示符字段

Ti=0指向全局描述符表

Ti=1指向局部描述符表

3.位15~位3;索引字段索引字段012315RPLTi③段描述符表

段描述符表,是用来保存段描述符的地方。也就是说,段描述符表是由各种段(代码段、数据段、堆栈段、附加数据段)的描述符组成。

Pentium配备的段描述表为两个表,其一叫全局描述符表GDT,另一个则叫局部描述符表LDT,如图所示。全局描述符表是供系统中所有程序使用的。而局部描述符表是供各自运行程序使用的。

TiRPL段界限基地址段界限基地址访问控制局部描述符表全局描述符表Ti=1Ti=0段选择符01215局部描述符表寄存器LDTR全局描述符表寄存器GDTR④段描述符

图展示出了一个Pentium使用的段描述符,它是由8个字节(64位)组成。

07811109121314151619202122232431段界限15~00基地址15~00段界限19~16基地址23~16基地址31~24DPL类型AVLD/B0GPS段描述符符号说明:

AVL通过系统软件可以使用

DPL描述符特权级

D/B缺省操作数大小尺寸(0=16位的段,1=32位的段

G粒位

P段存在位

S描述符类型(0=系统级,1=应用级)类型段的类型基地址段的基地址(3)分段部件的转换操作

系统给出的地址以及程序给定的地址都是逻辑地址,段选择符内容再加上这个段的偏移量,被Pentium当成一个逻辑地址处理。逻辑地址也称为虚拟地址。这是因为它是一个只有应用程序才能看到的地址。经过分段部件的操作之后,其结果是经由分段部件将逻辑地址转换成线性地址。16位段选择符

32位的偏移量

3122211211048位的逻辑地址32位基地址

段描述符

描述符表311500线性地址偏移量页表页目录3.分页存储管理技术(1)分页存储管理分页存储管理是Pentium的另一种形式的存储管理模式。是用一种规模、容量相对说来比较小的存储器空间和磁盘,去模拟一个大容量的不分段的存储空间。

Pentium的分页部件为访问比实际用存储空间还要大的数据结构提供了一种技术支持,具体做法就是,将这个大数据结构的一部分保存在存储器中,而将另一部分保存在磁盘存储器中。

Pentium是将4KB地址空间定义为一个页。分页部件可将线性地址空间分成若干大小为4KB的被称之为页的存储模块。逻辑地址空间首先经分段部件转换成线性地址空间,然后再将线性地址空间转换成一定数量的页。(2)分页步骤

48位的逻辑地址经分段部件之后,就被转换成了32位的线性地址。如果不分页,此时的线性地址就是物理地址。如果需要分页,则要经分页部件,再将32位的线性地址转换成物理地址,这是分页部件的职责。

①分页的基础

48位的逻辑地址经分段部件之后,要先被转换成32位的线性地址。

②允许分页

Pentium的控制寄存器CRO的位31(PG位)是允许分页控制位,若将控制寄存器CRO的位31置成1,才表示分页机构允许分页。

③线性地址的结构下图展示出线性地址的结构。32位的线性地址被进一步分成3个字段,其中高端10位(位31~位22)是页目录索引字段,中间的10位(位21~位12)是页表索引字段。而剩下的低端12位字段,所表示的则是一个存储器页内的4KB个地址。

页目录索引页表索引偏移量01112213122④页目录线性地址中的高端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,则表示分页机构允许分页。②线性地址的转换

图中所展示出的是,Pentium怎样用两级页表,将线性地址字段中的页目录索引字段、页表索引字段以及偏移量字段转换成物理地址的。

32位线性地址存储器页页表页目录页目录项页表项操作数12112221310页目录索引页表索引偏移量③页表

所谓页表,实际上是由若干个大小为32位(4个字节)的页表项组成的一个阵列。页表本身也是一个页,其规模大小为4096个字节的存储空间,所以其内最多可保存1K个32位的页表项,如上图。在这种4KB的页内当然也保存着页目录项、页表项。

④页表项两级页表中,虽页表项和页目录项的内容不同,但页表项的格式却是一样的(页目录内缺少脏位这种情况除外)。图中展示出了页表项的格式。页目录中的脏位D(Dirty)位保留供将来用。0132456789113112页框地址31~12PWUAD00PWTPCDAVAIL系统设计人员可用可写存在用户页透明写页Cache禁止存取操作脏位保留

3.5高速缓冲存储器Cache

存储器系统层次结构

计算机的存储器系统是由几种容量大小、存取速度、性能价格、在微机系统中所处的位置等均有所不同的存储器组成。计算机的存储器管理体系采用的是一种层次结构

1.它的最顶层的、与CPU联系最密切的存储部件是微处理器内部的寄存器。然后,就是配置在CPU芯片内一级CacheL1。

2.在PentiumII等高档的微处理器芯片内,增配了二级高速缓冲存储器CacheL2。

3.而在Pentium4等更高档的微处理器芯片内,甚至又新增配了三级高速缓冲存储器CacheL3。

CPU

寄存器组一级

CacheL1

主存储器(物理存储器)外部存储器(虚拟存储器)三级CacheL3二级CacheL2

4.接下来的就是微处理器必须配置的主存储器(也被称之为物理存储器),通常是由动态随机存储器DRAM组成。

5.再下一个层次的存储器就是外部存储器(也叫虚拟存储器),通常是硬盘、光盘等1.Cache存储器

Cache存储器是一种高速的,但其规模大小相对于主存储器而言又是比较小的位于处理器和操作速度比较低的主存储器之间的一种存储设备,其内保存的是目前处理器正在使用的主存储器的副本,处理器使用Cache可以快速地从其内取得所需的指令和数据。由于装备有Cache,相应地减少了访问主存储器的次数.2.Cache的作用和有效性

Cache存储器的作用和有效性表现在:微机系统内的Cache存储器,确实拥有保存微处理器当前经常使用的指令和数据的能力,而且还具有存取速度快、命中率高的特点,这些特征充分表现出Cache技术的有效性。说明Cache有效性的另一个重要标志是微机系统的性能。在正常情况下,由于访问Cache的速度要比访问主存储器的速度快3~8倍。这样就明显地增强了整个系统性能。3.局部性原理

为使Cache更加有效,要求程序有高度的暂时性和局部性。配备Cache的基础是基于程序访问的局部性原理,即要被访问的数据大多集中在存储器的某个局部区域。从程序执行的过程上来说,它不可能长时间地仅执行位于存储器内某个局部区域中的某一段程序,被执行的程序段有可能会随着程序的结构被更换,但在短时间内CPU访问的程序段还是固定的几个程序段。研究表明,大部分程序都是串行的、顺序执行的,除分支转移指令和调用指令外,在大多数情况下,下一次要取的指令往往是紧跟着上一次刚取的那一条指令。

图中展示出了Cache中内容相对于主存储器来说是暂时的和局部的。CPUloop

主存储器地址总线Cache控制控制loop数据总线4.Cache存储器数目和容量

Pentium芯片内采用的是指令Cache和数据Cache各自独立、各为一体的分离式Cache。也就是说,Pentium配备有两个Cache,一个是指令Cache,另一个是数据Cache。在指令Cache内,只是存放目前CPU正在执行的程序指令。而在数据Cache内,则仅仅存放目前CPU正在执行的程序所需要的数据。目前已经达到了三级Cache。分别是一级CacheL1,二级CacheL2,三级CacheL3。5Pentium配备的Cache

Pentium的片内Cache,是由Cache控制器82496和Cache体84291组成,三者之间的逻辑关系如图3-17所示。它们都被集成在Pentium微处理器片内。82491CachePentium

微处理器82496Cache

控制器

存储器总线控制器/存储器总线6.Cache存储器性能

(1)命中率(Hitrate)

Cache存储器的性能主要表现在Cache命中率的高低、和不命中率频率上。当CPU欲访问存储器时,首先会到Cache内寻找本次操作所需的数据。若这时欲寻找的数据保存在Cache内,本次访问Cache的操作就叫作命中。否则,则称之为不命中。(2)影响Cache性能的因素

影响Cache性能的因素有很多

①Cache规模大小

②缔合方式(Associaivity)

③Cache行大小

④写回和记入式写

⑤配置(3)Cache大小规模和性能

表中列出了各种配置的一级Cache命中率。表中所列这些统计数字还是比较保守的数字,这是因为这些数字是通过分析大量的主机运行情况后统计出的最低命中率。而且这个命中率也不是绝对数,命中率与软件也是息息相关的。本表的意义在于可以对各种不同配置的Cache进行一番比较。通过这张表,可以说明欲使Cache达到一定的效率,其硬件的复杂程度应如何。表中列出的一级Cache的命中率分别是直接映像、二路相联以及四路相联Cache结构下的命中率。

7.Cache存储器映射1.Cache缔合方式

Cache

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论