1、计算机组织与结构第第4章章 计算机的存储系统计算机的存储系统学习要点:学习要点:存储器的基本知识和工作原理 主存储器与CPU的连接方法 速缓冲存储器工作原理与实现方法 虚拟存储器的工作原理与实现方法第第4章章 计算机的存储系统计算机的存储系统4.1 存储器概述存储器概述4.1.1 存储器的作用存储器的作用现代计算机都是以存储器为中心的计算机结构,图4-1给出了计算机硬件结构框图。从中可以看出存储器处于全机的中心地位。(1)存储程序和数据计算机在存储程序的控制下进行工作,程序在运行之前存放在存储器中,运行中需要的数据也存放在存储器中。存储器的作用可以概括如下存储器的作用可以概括如下(2)输入/输
2、出设备可以通过DAM方式与存储器直接交换数据现代计算机可以配置的外部设备越来越多,数据传送速度不断加快,并且多数采用直接存储器存取(DMA)方式和输入输出和通道技术,这些输入输出设备与存储器直接交换数据而不通过CPU。(3)存放共享数据共享存储器的多处理器计算机的出现,使得可利用存储器来存放共享数据,并实现各处理器之间的通信,更加强了存储器作为整个计算机系统中心的作用。4.1.2 存储器的分类存储器的分类(1)只读存储器ROM:ROM中所存储的内容是固定不变的,即只能读出不能写入。ROM一般用来存放微机的系统管理程序、监控程序等。(2)随机存取存储器RAM:RAM中的任意一个存储单元都可被随机
3、读写,且存取时间与存储单元的物理位置无关,读写速度较快。RAM主要用来存放输入、输出数据及中间结果并与外存储器交换信息。1、按存取方式、按存取方式 分类分类4.1.2 存储器的分类存储器的分类(3)顺序存取存储器(SAM):SAM只能按照某种次序存取,即存取时间与存储单元的物理位置有关。由于按顺序读写的特点以及工作速度较慢,常用作外存存储器,例如磁带就是一种典型的顺序存储器。(4)直接存取存储器(DAM):DAM在存取数据时不必对存储介质做完整的顺序搜索而可以直接存取。例如磁盘和光盘都是典型的直接存取存储器,磁盘的逻辑扇区在每个磁道内顺序排列,邻近磁道紧接排列,读取磁盘中某扇区的内容时先要寻道
4、定位,然后在磁道内顺序找到相应扇区。1、按存取方式、按存取方式 分类分类4.1.2 存储器的分类存储器的分类(5)相联存储器这是一个随机存取类的存储器,它允许对存储单元中的某些指定位进行检查比较,看是否与特定的样式相匹配,而且能在整个存储器的各个单元中同时进行查找。因此,可以按指定内容找到其所在的位置及其他相关内容,每个存储位置有自己的寻址机制,检索时间是固定的,而与所存放位置无关。例如,有的高速缓存采用相联存取方式。1、按存取方式、按存取方式 分类分类4.1.2 存储器的分类存储器的分类(1)用半导体器件做成的存储器称为半导体存储器,按制造工艺可把半导体存储器分为双极型、CMOS型、HMOS
5、型等类别。(2)用磁性材料做成的存储器称为磁表面存储器,如磁盘存储器和磁带存储器等。(3)用光学材料做成的存储器称为光表面存储器,如光盘存储器。2、按存储介质分类、按存储介质分类3、按作用分类、按作用分类(2)主存储器:用来存放当前正在运行的程序和数据,位于主机内部。CPU通过指令可以直接访问主存储器。现代微机大多采用半导体存储器。(3)辅助存储器:用来存储CPU当前操作暂时用不到的程序或数据,位于主机外部,CPU不能直接用指令对外存储器进行读写操作。辅助存储器主要有磁带、磁盘和光盘等。(1)高速缓冲存储器Cache:是计算机系统中的一个高速小容量的存储器,位于CPU和内存之间。高速缓存主要由
6、高速静态RAM组成。4、按信息的可保护性分类、按信息的可保护性分类 根据存储器信息的可保存性可将存储器分为易失性存储器和非易失性存储器。断电后信息将消失的存储器为易失性存储器,如半导体介质的RAM。断电后仍保持信息的存储器为非易失性存储器,如半导体介质的ROM、磁盘、光盘存储器等。4.1.3 存储器的层次结构存储器的层次结构 为了解决容量、速度和价格之间的矛盾,出现了多层次的存储系统,即把各种不同存储容量,不同存取速度的存储器,按一定的体系结构组织起来,使所存放的程序和数据按层次分布在各存储器中,形成个统整体的存储系统。这个存储系统主要由高速缓冲存储器、主存储器、辅助存储器构成的三级存储系统,
7、可以分为两个层次,其中高速缓冲存储器和主存之间称为Cache主存层次,主存和辅存称为主存辅存层次。三级存储系统的实现使得存取速度接近于Cache水平,存储容量非常大,整个价格也比较合理。1、Cache主存层次主存层次CPU和主存之间的速度大约相差一个数量级,这样就造成CPU有时为了等待主存送来的数据而处于空闲状态,造成资源浪费。为此,在CPU和主存之间设置了高速缓冲存储器。由于程序局部性,当访问某一个单元时,下一个时间段最大的可能是访问它相近的单元。因此CPU将这个单元所在块事先从主存中调入Cache中,当CPU需要这些程序和数据时,就直接去Cache中读取,这样将大大提高存取速度。Cache
8、和主存借助于辅助硬件构成一个整体.结构如图所示。2、主存主存辅存层次辅存层次 辅助存储器是主存的补充,用来存放暂时不用的程序和数据,当需要时,再调到主存中去。主存辅存层次通过附加的硬件及存储管理软件来控制,主存辅存形成一个整体,称之为虚拟存储器。虚拟空间可以比实际空间大得多,例如目前有些计算机的地址线可达36位,虚拟空间就是64GB,远比实际主存容量大。结构如图所示。4.2 半导体存储器半导体存储器(1)存储容量:是指存储器可以存储的二进制信息总量。目前使用的存储容量达MB(兆字节)、GB(千兆字节)、TB(兆兆字节)或更大的存储空间。存储容量通常以字节(Byte)为单位来表示,各层次之间的换
9、算关系为:1KB=210B=1024B;1MB=220B=1024KB;1GB=230B=1024MB;1TB=240B=1024GB 4.2.1 存储器的性能指标和分类方法存储器的性能指标和分类方法(2)存取速度:存取速度:存储器的存取速度可以用存取时间和存取周期来衡量。(1)存取时间:是指完成一次存储器读/写操作所需要的时间,故又称读写时间。具体是指从存储器接收到寻址地址开始,到取出或存入数据为止所需要的时间。(2)存取周期:是连续进行读/写操作的所需的最小时间间隔。1、半导体存储器性能指标半导体存储器性能指标(3)可靠性:可靠性是存储器对电磁场及温度等变化的抗干扰性。半导体存储器由于采用
10、大规模集成电路结构,因此可靠性高,平均无故障时间为几千小时以上。4.2.1 存储器的性能指标和分类方法存储器的性能指标和分类方法(4)功耗:功耗指每个存储单元所消耗的功率,单位为W/单元,也有用每块芯片总功率来表示功率,单位为mW/芯片。1、半导体存储器性能指标半导体存储器性能指标(5)价格:存储器的价格也是人们比较关心的指标。一般来说,主存储器的价格较高,辅助存储器的价格较低。存储器总价格正比于存储容量,反比于存取速度。速度较快的存储器,其价格也较高,容量也不可能太大。因此,容量、速度、价格三个指标之间是相互制约的。按器件原理来分,有双极型存储器和MOS型存储器;按存取方式来分,有随机存取存
11、储器RAM(Read Only Memory)和只读存储器ROM(Read Only Memory);按存储原理来分,有静态存储器(SRAM)和动态存储器(DRAM);按信息传送方式来分,有并行(字长的所有位同时存取)存储器和串行(一位一位存取)存储器。近年来由Intel公司推出一种被称为闪速存储器(flash memory)的新型半导体存储器。2半导体存储器的分类半导体存储器的分类4.2.2 随机存取存储器随机存取存储器SRAM和DRAM的存储原理不同,位电路的实现方法也不同。1、位电路、位电路(1)SRAM的位电路 如右图所示。T1、T2为工作管,T3、T4分别为Tl、T2的负载管,由T1
12、、T2、T3、T4构成的双稳态触发器,可以存储一位二进制信息0或1。该基本存储电路的工作过程是:当该存储基元被选中时,行地址选择线为高电平,门控管T5、T6导通,触发器与I/O线(位线)接通,即A点与I/O线接通,B点与接通。写入时:写入数据信号从I/O线和线进入。若要写入“1”,则使I/O线为1(高电平),为0(低电平),它们通过T5、T6管与A、B点相连,即A1,B0,从而使T1截止,T2导通。而当写入信号和地址译码信号消失后,T5、T6截止,该状态仍能保持。读出时:当要对写入内容进行读出时也要先通过地址译码使行选择线为高电平,于是T5、T6导通。A点的状态被送到I/O线上,B点的状态被送
13、到线上,这样,就读取了原来存储的信息。信息读出以后,原来存储内容仍然保持不变,所以,这种读出是一种非破坏性读出。4.2.2 随机存取存储器随机存取存储器1、位电路、位电路(1)DRAM的位电路 如右图所示。在动态RAM中,存储信息的基本电路可以采用四管电路、三管电路和单管电路。由图可见,动态RAM是依靠电容C存储电荷或不存储电荷这两个状态来记忆信息“1”和“0”的。当电容C存储有电荷时,为逻辑“1”,没有电荷时,为逻辑“0”。没有读写操作时,行选线处于低电平,MOS管T截止,电容C与外电路断开,不能进行充、放电,将保持原状态不变。在进行读操作时,根据行地址译码,使某一条行选择线为高电平,于是使
14、本行上所有的基本存储电路中的管子T导通,使连在每一列上的刷新放大器读取对应存储电容上的电压值。刷新放大器将此电压值转换为对应的逻辑电平“0”或“1”,又重写到存储电容上,而列地址译码产生列选择信号,所选中那一列的基本存储电路才受到驱动,从而可读取信息。在进行写操作时,行选择信号为“1时,选中了该行,电容上信息送到刷新放大器上,刷新放大器又对这些电容立即进行重写。由于刷新时,列选择信号总为“0”,因此电容上信息不可能被送到数据总线上。2、存储单元存储单元 一个基本位电路要工作时需要行选择信号和列选择信号同时有效。若将几个基本位电路同时选中,每个位电路分别和数据总线相连,则这几个基本位电路就构成了
15、一个存储单元。这种存储单元可以为4位可8位。3、存储器结构存储器结构 利用基本存储电路排成阵列,再加上地址译码电路和读写控制电路就可以构成读写存储器。为了选中某一个单元,往往利用矩阵式排列的地址译码电路。例如lK单元的内存,需10根地址线,其中5根用于行译码,另5根用于列译码,译码后在芯片内部排列成32条行选择线和32条列选择线,这样可选中1024个存储单元中的任何一个。而每一个单元的基本存储电路个数与数据线位数相同。一个半导体存储器芯片一般由地址译码器、存储矩阵、控制逻辑和输入输出控制电路等部分组成。如右图所示。3、存储器结构存储器结构(1)存储矩阵存储体是能够存储二进制信息的基本存储单元的
16、集合。为了便于信息的读写,这些基本的存储单元配置成一定的阵列并进行编址,所以也称存储体为存储矩阵。(2)译码电路 存储体中每个具有唯一地址的单元可存储一位或多位二进制数据。所以芯片的存储容量可以理解为芯片的存储单元数与每个单元存储位数之积。为了区分存储矩阵中的每一个单元,必须对CPU送来的地址信号进行译码。存储矩阵中基本存储电路的编址方式有两种:单译码与双译码。单译码双译码3、存储器结构存储器结构(3)读写控制逻辑存储芯片的读写控制,以RAM芯片的情况最为典型。该类芯片具有两个控制端,一般用OE(输出允许)和WE(写允许)来表示。当芯片被选中时,OE被用来控制读的操作。有效时,允许芯片将寻址单
17、元内的数据输出。该控制端一般与系统的读控制线MEMR(或RD)相连;WE被用来控制写的操作。有效时,引脚上的数据将被允许进入芯片,写入被寻址的单元。该控制端一般与系统的写控制线MEMW(或WR)相连。和存储器读写相关的还有片选信号CS。有效时可对存储芯片进行读写操作,无效时芯片脱离总线。存储芯片的片选端一般与系统高位地址相联系。在存储器和CPU连接时要特别注意CS信号的连接。3、存储器结构存储器结构(4)输入/输出控制电路半导体RAM的数据输入输出控制电路多为三态双向缓冲器结构,以便使系统中各存储器芯片的数据输入、输出端能方便地挂接到系统数据总线上。当对存储器芯片进行写入操作时,片选信号及写信
18、号有效,数据从系统总线经三态双向缓冲器传送至存储器中相应的基本存储单元。当存储芯片进行读出操作时,片选信号输出有效,写开放信号无效(读/写控制信号为读状态),数据从存储矩阵中相应基本存储单元中读出,经三态双向缓冲器传送至系统总线。4.2.3 DRAM的刷新的刷新动态RAM是利用电容存储电荷的原理来保存信息的,但由于任何电容都存在漏电。因此,当电容C存储有电荷时,过一段时间由于电容的放电过程会导致电荷流失,使保存信息丢失。解决的办法是“刷新”,即每隔一定时间(一般为2ms)就必须对动态RAM进行读出和再写入,使原来处于逻辑电平“l”的电容上所泄放的电荷又得到补充,而原来处于电平“0”的电容仍保持
19、“0”,这个过程叫动态RAM的刷新。1、DRAM的刷新的刷新 4.2.3 DRAM的刷新的刷新一种典型的动态RAM是Intel 2164A,该芯片的容量为64Kl位,即片内有65536个存储单元,每个单元只有1位数据,用8片2164A才能构成64KB的存储器。若想在芯片内寻址64K单元,通常必须用16条地址线。为减少地址线引脚数目,DRAM地址线采用行地址线和列地址线分时工作这样DRAM对外部只需引出8条地址线即可。芯片内部有地址锁存器,利用多路开关由行地址选通信号,把先送来的8位地址送至行地址锁存器;由随后出现的列地址选通信号把后送来的8位地址送至列地址锁存器。这8条地址线也用于刷新(刷新时
20、地址计数,实现逐行刷新,2ms内全部刷新一次)。2、DRAM芯片举例芯片举例 4.2.4 只读存储器只读存储器只读存储器(ROM)是一种工作时只能读出,不能写入信息的存储器。在使用ROM时,其内部信息是不能被改变的,故一般只能存放固定程序,如监控程序、BIOS程序等。只要一接通电源,这些程序就能自动地运行。ROM的特点是非易失性,即它所存储的信息一经写入,就可以长久保存,不受电源断电的影响,即使掉电后存储信息仍不会改变,十分可靠。ROM的电路结构包含存储矩阵、地址译码器和输出缓冲器三个组成部分,如右图所示。4.2.4 只读存储器只读存储器按存储单元的结构和生产工艺的不同,只读存储器ROM可分成
21、以下几种:掩膜只读存储器(ROM)、可编程只读存储器(PROM)、光可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(E2PROM)。4.2.4 只读存储器只读存储器掩膜只读存储器ROM中的信息是在制造过程中写入的。生产厂家在制造这种存储器时,采用光刻掩膜技术,将程序置入其中。掩膜ROM制成后,存储的信息就不能再改写了,用户在使用时,不能修改,只能进行读出操作,所以这种存储器称为掩膜只读存储器。1、掩膜只读存储器、掩膜只读存储器ROM 图为一个简单的44位MOS管ROM,采用单译码结构如果某位存储的信息为0,就在该位制作一个跨接管;如果某位存储的信息为1,则该位不制作跨接管。若地
22、址线A1A000,则选中0号单元,即字线0为高电平,若有 管 子 与 其 相 连(如 位 线 2 和 位 线0),其相应的MOS管导通,位线输出为0,而位线1和位线3没有管子与字线相连,则输出为1,故D3D2D1D0=1010。掩膜ROM制作完毕后,用户不能更改所存信息。至于存储矩阵的内部结构,除上面介绍的行列结构外,还有类似于RAM中的双译码结构或复合译码结构等。4.2.4 只读存储器只读存储器为了便于用户根据自己的需要来决定ROM中所存储的内容,出现了可以编程的只读存储器PROM。这种ROM一般由晶体管阵列组成,由用户在使用前一次性写入信息,写入后只能读出,不能修改。PROM常采用二极管或
23、三极管做基本存储电路,如右图所示。晶体管的集电极接VCC,基极连接行线(字选线),发射极通过一个熔丝与列线(位线)相连。2、可编程只读存储器、可编程只读存储器PROMPROM 4.2.4 只读存储器只读存储器在某些应用中,程序需要经常修改。PROM由于其信息只能写入一次而受到限制,因此能够重复擦写的EPROM被广泛应用。这种存储器利用编程器写入后,信息可长久保持。当其内容需要变更时,可利用擦除器(由紫外线灯照射)将其所存储信息擦除,使各单元内容复原为FFH,再根据需要利用EPROM编程器编程,因此这种芯片可反复使用。通常EPROM存储电路是利用浮栅MOS管构成的,又称FAMOS管(即浮栅雪崩注
24、入MOS管),其结构如右图所示。3、光可擦除可编程只读存储器、光可擦除可编程只读存储器EPROM EPROM 4.2.4 只读存储器只读存储器E2PROM是近年来被广泛应用的一种可用电擦除和编程的只读存储器,其主要特点是能在应用系统中进行在线读写,并在断电情况下保存的数据信息不会丢失,它既能像RAM那样随机地进行改写,又能像ROM那样在掉电的情况下非易失地保存数据,可作为系统中可靠保存数据的存储器。因为E2PROM兼有RAM和ROM的双重优点,所以在计算机系统中使用E2PROM后,可使整机的系统应用变得方便灵活。4 4、电可擦除可编程只读存储器、电可擦除可编程只读存储器E E2 2PROM P
25、ROM 4.3 4.3 主存储器与主存储器与CPUCPU的连接的连接4.3.1 主存容量扩展主存容量扩展1 1、位扩展、位扩展位扩展指只在位数方向扩展(加大字长),而芯片的字数和存储器的字数是一致的。位扩展的连接方式是将各存储芯片的地址线、片选线和读/写线相应地并联起来,而将各芯片的数据线单独列出。例如,现在要用芯片2114(1K4位)组成1K8位的存储器,则所需要芯片数量为:1K8/1K4=2片具体连接方式如右图所示 4.3.1 主存容量扩展主存容量扩展2 2、字扩展、字扩展字扩展是指仅在字数方向扩展,而位数不变。字扩展将芯片的地址线、数据线、读/写线并联,由片选信号来区分各个芯片。如用2片
26、1K8的芯片可组成2K8的芯片,即存储单元个数增加了一倍。具体连接情况如右图所示。A10用作片选信号。由于存储芯片的片选输入端要求低电平有效,故当A10为低时,CS0有效,选中左边的存储器芯片,当A10为高时,CS1有效,选中右边的存储器芯片。4.3.1 主存容量扩展主存容量扩展3 3、字位同时扩展、字位同时扩展当构成一个容量较大的存储器时,往往需要在字数方向和位数方向上同时扩展,这将是前两种扩展的组合,实现起来也是很容易的。不同的扩展方法可以得到不同容量的存储器。在选择存储芯片时,一般应尽可能使用集成度高的存储芯片来满足总的存储容量的要求,这样可减少成本,还可减轻系统负载,缩小存储器模块的尺
27、寸。4.3.2 存储器地址与片选信号存储器地址与片选信号1、线选法、线选法 线选法就是用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为“0”时,就选中与之对应的存储芯片。需要注意的是,这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片或芯片组。现在要用4K8位的存储器芯片组成16K8位的存储器空间,CPU提供16条地址线。连接图如右图所示。4.3.2 存储器地址与片选信号存储器地址与片选信号2、全译码法、全译码法 全译码法将片内寻址外的全部高位地址线作为地址译码器的输入,把经译码器译码后的输出作为各芯片的片选信
28、号、将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。如上例所述,用全译码法完成片选时,高端的4条地址线不是直接和芯片的片选端直接相连,而是通过一个译码器,将译码器的输出连到存储器芯片的片选端。4.3.2 存储器地址与片选信号存储器地址与片选信号3、局部译码法、局部译码法 如果不要求提供CPU可直接寻址的全部存储单元,而用线选法地址线又不够用时,虽然可用全译码法,但为了简化地址译码逻辑,可采用局部译码法。该方法只对部分高位地址总线进行译码,以产生片选信号,剩余高位线或空着,或直接用作其他存储芯片的片选控制信号。所以,它是介于全译码法和线选法之间的一种选址方法。例如,某存储体只需16KB存
29、储容量,若采用2KB存储芯片构成,则共需要8片。这时可采用局部译码法,即用A15A13作译码,通过38译码器译码输出作为8个存储芯片的片选信号,A11、A12空着,A10A0作为存储芯片的片内地址线。4.3.3 存储器与存储器与CPU的连接的连接1、需注意的问题、需注意的问题(1)地址线的连接存储芯片容量不同,其地址线数也不同,而CPU的地址线数往往比存储芯片的地址线数要多。通常总是将CPU地址线的低位与存储芯片的地址线相连。CPU地址线的高位或作存储芯片扩充时用,或作其他用法,如作片选信号等。例如,设CPU地址线为16位A15A0,1K4位的存储芯片仅有10根地址线A9A0,此时,可将CPU
30、的低位地址A9A0与存储芯片地址线A9A0相连。(2)数据线的连接同样,CPU的数据线数与存储芯片的数据线数也不一定相等。此时,必须对存储芯片进行位扩展,使其数据位数与CPU的数据线数相等。然后CPU相应的数据线连接到存储器芯片相应的数据线。4.3.3 存储器与存储器与CPU的连接的连接1、需注意的问题、需注意的问题(3)读/写命令线的连接CPU读/写命令线一股可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。有的CPU读/写控制线为两个信号,如8086CPU,读信号为RD,写信号为WR,都为低有效,这时应分别连到存储器芯片的读和写控制端。(4)片选线的连接片选信号的连接是CPU
31、与存储芯片正确工作的关键。由于存储器是由许多存储芯片叠加组成的,哪一片被选中完全取决于该存储芯片的片选控制端CS是否能接收到来自CPU的片选有效信号。4.3.3 存储器与存储器与CPU的连接的连接1、需注意的问题、需注意的问题(5)CPU总线的带负载能力在小型系统中,CPU总线的负载能力是可以驱动存储器系统的,故CPU可直接与存储器相连。而在较大的系统中,当CPU和大容量的标准ROM、RAM一起使用,或扩展成一个多插件系统时,就必须接入缓冲器或总线驱动器来增加CPU总线的驱动能力。(6)存储器与CPU之间的速度匹配CPU对存储器进行读操作时,CPU发出地址和读命令后,存储器必须在限定时间内给出
32、有效数据。而当CPU对存储器进行写操作时,存储器必须在写脉冲规定的时间内将数据写入指定存储单元,否则就无法保证迅速准确地传送数据。因此,当存储器速度跟不上CPU时序时,则系统应考虑插入等待周期TW,以解决存储器与CPU之间的速度匹配问题。4.3.3 存储器与存储器与CPU的连接的连接2、连接实例、连接实例 设CPU有16根地址线,8根数据线,并用作为访存控制信号(低电平有效),用作读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片:1K4位RAM;4K8位RAM;8K8位RAM;2K8位ROM;4K8位ROM;8K8位ROM及74LS138译码器和各种门电路。画出CPU与存储器的连接图
33、。要求:主存地址空间分配6000H67FFH为系统程序区;6800H6BFFH为用户程序区;合理选用上述芯片,说明各选几片?详细画出存储芯片的片选逻辑图。4.3.3 存储器与存储器与CPU的连接的连接2、连接实例、连接实例 要完成上述要求的存储器扩展,具体步骤如下:第一步:先将16进制地址写成二进制地址码,以确定每一种存储芯片的容量。A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 系统程序区 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0
34、1 0 0 0 0 0 0 0 0 0 0 0 用户程序区 0 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 4.3.3 存储器与存储器与CPU的连接的连接2、连接实例、连接实例 第二步:根据地址范围确定存储容量,根据在系统中的功能确定需选择的芯片类型。因为系统程序区的地址范围为6000H67FFH,所以容量为2K8位,应选择2K8的ROM芯片;用户程序区的地址范围为6800H6BFFH,所以容量为1K8,应选择2片1K4的RAM芯片。第三步:分配CPU的地址线。将CPU的低11位地址线A10A0与2K8位的ROM地址线相连;将CPU的低10位地址线A9A0与2片1K4位的RAM
35、地址线相连。剩下的高位地址线与访存控制信号共同产生存储器芯片的片选信号。4.3.3 存储器与存储器与CPU的连接的连接2、连接实例、连接实例 第四步:片选信号的形成由题目给出的74LS138译码器输入逻辑关系可知,当G1为高电平、为低电平时,74LS138处于工作状态。由于A15为低电平,A14为高电平,所以将A14与G1相连,A15与相连,低有效,所以与相连,这样满足了三个控制端的要求。A13、A12、A11分别与74LS138的C、B、A端相连,其中输出端有效时选中ROM芯片,与A10同时有效为低电平时,选中2片RAM芯片。ROM芯片的接地端为/progr,读出时低电平有效。RAM芯片的读
36、/写控制端与CPU的读/写命令信号相连。ROM芯片的8根数据线为单向的,分别与CPU的数据线D7D0相连,2片RAM芯片的数据线分别与数据总线的高4位和低4位双向相连。CPU与存储器的连接图如右图所示。4.4 4.4 双端口存储器和双端口存储器和并行存储器并行存储器4.4.1 双端口存储器双端口存储器常规存储器是单端口存储器,每次只接收一个地址,访问一个存储单元,从中读取或写入一个字节或一个字。主存储器是信息交换的中心,一方面CPU频繁地与主存交换信息,另一方面外设也较频繁地与主存交换信息,而单端口存储器每次只能接受一个访存者,或是读或是写,这就影响了工作速度。为此,在某些系统中使用双端口存储
37、器。另外,在多机系统中常采用双端口存储器甚至多端口存储器作为各CPU的共享存储器,实现多CPU之间的通信。双端口存储器 如右图所示:4.4.2 并行主存储器并行主存储器常规的主存储器是单体单字存储器,只包含一个存储体。在高速的计算机中,普通采用并行主存系统,即在一个主存周期内可以并行读出多个字,依靠整体信息吞吐率的提高,以解决CPU与主存之间的速度匹配问题。并行主存有单体多字方式和多体并行和多体交叉方式。1单体多字寻址方式单体多字寻址方式 单体多字寻址方式是指多个并行工作的存储器共有一套地址寄存器和译码电路,按同一地址并行地访问各自的对应单元。例如:CPU送出地址A,则个存储器中的所有A单元同
38、时被选中。假设每个存储器的字长为w位,则同时访问W位。也可以将这N个存储器看作一个大存储器一次访问N个字,故称为单体多字方式。如右图所示。2 2、多体存储器的寻址方式、多体存储器的寻址方式 N个并行的存储器具有各自的地址寄存器、读/写电路和数据寄存器,称为存储模块。它们能各自以同等的方式与CPU传递信息,每个存储体容量相等,它们既能同时工作又独立编址,这就是多体方式。如右图所示。3 3、多体交叉寻址方式、多体交叉寻址方式 多体交叉是多体存储器的另一种组成形式,各存储体的编址采用交叉编址方式,即同一存储体中的地址是不连续的。主存地址寄存器的低位部分经译码后选择不同的存储体,而高位部分则指向存储体
39、内的存储字。现在以一个四体交叉存储器的组织形式为例说明交叉编址方式,如右图所示。4.5 4.5 高速缓冲存储器高速缓冲存储器4.5.1 高速缓冲存储器的工作原理高速缓冲存储器的工作原理高速缓冲存储器可以提高CPU访问存储器时的存取速度,减少处理器的等待时间,使程序员能使用一个速度与CPU相当而容量与主存相当的存储器。所以,这种方法对提高整个处理器的性能将起到非常重要的作用,比使全部主存都达到与CPU同样的速度要经济的多。Cache的全部功能由硬件实现,并且对程序员来说是“透明”的,程序员不需要明确知道高速缓冲存储器的存在。Cache的存在,使得程序员面对一个既有Cache速度,又有主存容量的存
40、储系统。CPU不仅和与Cache相连,而且和主存之间也要保持通路。Cache和主存与CPU的关系 如右图所示。1、程序局部性原理 对大量典型程序运行情况的分析结果表明,在一个较短的时间内,由程序使用的地址往往集中在存储器逻辑地址空间的很小范围内。这种在一个较小时间间隔内,程序所要用到的指令或数据的地址往往集中在一个局部区域内,因而对局部范围内的存储器地址频繁访问,而对此范围外的地址则访问甚少的现象称为程序访问的局部性原理。如果把正在执行的指令地址附近的一小部分指令或数据,即当前最活跃的程序或数据从主存成批调入Cache,供CPU在一段时间内随时使用,就一定能大大减少CPU访问主存的次数,从而加
41、速程序的运行。2、Cache工作原理 在Cache存储系统中,把Cache和主存储器都划分成相同大小的块,因此,主存地址由块号B和块内地址W两部分组成。同样,Cache的地址也由块号b和块内地址w组成。Cache的基本工作原理如右图所示。4.5.2 地址映像与变换方法地址映像与变换方法全相联映像方式是指主存中的任意一块可以映像到Cache中的任意一块中,如右图所示。如果Cache的块数为Cb,图中相联映像方式主存的块数为Mb,则主存与Cache之间的映像关系共有CbMb种。采用全相联映像方式的地址变换过程如下图所示 1、全相联映像方式及地址变换、全相联映像方式及地址变换 4.5.2 地址映像与
42、变换方法地址映像与变换方法直接映像方式是一种最简单的方法。主存中的一块只能映像到Cache中的一个确定块中。假设主存的块号为B,Cache的块号为b,则它们之间的映像关系可以表示为:hB mod Cb其中,Cb是Cache的块数。直接映像方法的映像关系如右图所示。其中Mb是主存中的块数,Me是主存中的区数。直接映像方式的地址变换过程如下图所示 2、直接映像方式及地址变换、直接映像方式及地址变换 4.5.2 地址映像与变换方法地址映像与变换方法组相联方式是目前在Cache中用得比较多的一种地址映像和变换方式,实际上,它是介于全相联和直接相联之间的一种折中方案。首先将主存以Cache为单位划分若干
43、区,然后每一个区再划分为同样大小的若干组,例如,假设主存有64块,Cache有8块,2块为一组,则主存要划分8个区,每一个区划分为4组,而Cache划分为4组,组间采用直接映像方式,组内采用全相联映像。其映像方式如右图所示。组相联映像方式的地址变换过程如下图所示。3、组相联映像方式及地址变换、组相联映像方式及地址变换 4.5.3 替换策略替换策略Cache的工作原理要求它尽量保存最新数据。当一个新的主存块需要拷贝到Cache,而允许存放此块的位置都被其他主存块占满时,就要产生替换。替换问题与Cache的组织方式紧密相关。对直接映射的Cache来说,因一个主存块只有个特定的块可以存放,所以问题解
44、决起来很简单,只要把此特定位置上的原主存块换成此Cache块即可对全相联和组相联Cache来说,就要从允许存放新主存块的若干特定块中选取一块换出,如何选取就涉及到替换策略,也称替换算法。4.5.3 替换策略替换策略替换算法很多,一个好的算法首先要看访问cache的命中率如何,其次要看是否容易实现。替换算法的目标是使Cache获得最高的命中率,就是让Cache中总是保持着使用频率高的数据,从而使CPU访问Cache的成功率最高。替换算法主要有4个:(1)随机替换算法:这是一种最简单的替换算法。当需要找替换的信息块时它是用随机数发生器产生一个随机数,它就是被替换的块号。由于这种算法完全不反映程序的
45、局部性特点,没有考虑信息块的历史情况和使用情况,故其命中率很低,已无人使用。4.5.3 替换策略替换策略(2)先进先出算法(FIFO):这种算法是把最早进入Cache的信息块给替换掉。为了实现这种算法,需要在地址变换表中设置一个历史位,每当有一个新块调入Cache时,就将已进入Cache的所有信息块的历史位加1。于是当需要进行替换时,只要挑选历史位中数值最大的信息块作为被替换块即可。这种算法在一定程度上能反映程序的局部性特点,比随机算法好,但由于这种方法只考虑了历史情况,并没有反映出信息的使用情况,所以其命中率也并不高。原因很简单,最先进来的信息块,或许就是经常要用的块。(3)近期最少使用算法
46、(LRU):这种算法是把最近使用最少的信息块替换掉,这就要求随时记录Cache中各信息块的使用情况。为了反映每个信息块的使用情况,要为每个信息块设置一个计数器,以便确定哪个信息块是近期最少使用的。4.5.3 替换策略替换策略下面通过一个程序和的运行情况,来说明各种算法的工作过程及性能比较。假定该程序有5块信息块,Cache空间为3块,该程序的块地址流为:3种算法工作过程和命中情况,如下图所示。时间tit1t2t3t4t5t6t7t8t9t10t11t12使用块PiP2P3P2P1P5P2P4P5P3P2P5P2命中率:25%命中率:41.7%命中率:50%4.5.3 替换策略替换策略由于Cac
47、he的内容只是主存部分内容的拷贝,它应当与主存内容保持一致。而CPU对Cache的写入更改了Cache的内容,如何与主存内容保持一致,可选用如下两种写操作策略。(1)写回法写回法是指当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存中,只有当此块被换出时才写回主存。这种方法使Cache真正在Cache 主存之间读/写两方面都起到高速缓存作用;对一个Cache块的多次写命中都在Cache中快速完成,只是需要替换时才写回速度较慢的主存,减少了访问主存的次数。实现这种方法时,每个Cache块必须配置一个修改位,以反映此块是否被CPU修改过。当某块被换出时,根据此块的修改位是1还是0
48、,来决定将该块内容写回主存还是简单弃去。4.5.3 替换策略替换策略(2)写直达法当执行写操作时,将信息同时写入Cache和主存,称为写直达法。这种方法实现简单,而且能随时保持主存数据的正确性,但可能增加多次向主存不必要的写入,会降低存取速度。两种方法的优缺点比较如下:(1)可靠性:写直达法要优于写回法。这是因为写直达法能够始终保持Cache是主存的正确副本。如果Cache出现错误,可以从主存中得到纠正。(2)通信量:一般情况下,写回法少于写直达法。原因可以从两方面来分析。一方面,由于Cache的命中率一般很高,对于写回法,CPU的绝大多数写操作只需写Cache,不必写主存;另一方面,当写Ca
49、che发生块失效时,可能要写一个块到主存,而写直达法每次只写一个字到主存。而且,即使是读操作,当Cache不命中时,写回法也可能因为发生块替换而要写一块到主存。4.6 4.6 虚拟存储器虚拟存储器4.6.1 虚拟存储器的基本概念虚拟存储器的基本概念虚拟存储器(Virtual Memory)是以存储器访问的局部性为基础,建立在主存辅存物理体系结构上的存储管理技术。在存储系统中,由于主存容量不能满足用户的需要,因而引入辅存作为后援。在多道程序和多用户分时系统的运行情况下,往往会发生用户竞争存储空间的矛盾,编程时程序员必须熟悉机器硬件系统的组成。随着计算机系统规模的扩大和复杂程度的增加,为了使用户尽
50、量扩大可使用的存储空间,并能对其自动管理和调度,使在用户心目中,计算机系统好像只有一个大容量、高速度、使用方便的存储器,而没有主存、辅存之分,便产生了虚拟存储器的概念。4.6.1 虚拟存储器的基本概念虚拟存储器的基本概念主存辅存层次的虚拟存储和Cache主存层次有很多相似之处,但虚拟存储器和Cache仍有很重要的区别:(1)Cache用于弥补主存与CPU的速度差距,而虚拟存储器是用来弥补主存和辅存之间的容量差距;(2)Cache每次传送的信息块是定长的,只有几十字节,而虚拟存储器信息块划分方案有很多,有分页、分段等,长度可以很大,达几百或几百K字节;(3)CPU可以直接访问Cache,而CPU