资源描述
单击此处编辑母版标题样式,第三章 存储器及其接口,存储器就是计算机中存储计算程序、原始数据及中间结果的设备。计算机系统要求存储器容量大、速度快和成本低,但往往这三者在同一个存储器中不能同时取得。,为了解决这一矛盾,采用了,分级,存储器结构,通常把存储器分为高速缓冲存储器、主存储器和外存储器三级。其中高速缓存和主存统称为,内存,。,本章只讨论处理器与内存之间的接口。,广义而言,所谓微机接口是指微机系统中各部分之间的联系,但对接口的研究常常是以处理器为核心的,所以一般地将接口理解为处理器与外界的联系。,从,CPU,的角度看,,存储器,类似于外设,是一种必不可少、占用地址最多、被,CPU,访问最为频繁的外部设备。,因此在,CPU,与存储器之间同样存在接口的问题,只不过两者关系十分密切而其接口相对比较简单。,习惯上把,CPU,和内存储器合称为,主机,。微机中,内存储器由半导体存储器组成。,3.1 概述,3.1.1 对存储设备的要求,根据存储器应用场合的不同,对存储器的要求也会有所差异,但总的来说,有以下几方面需要考虑。,1 存取速度要快,存储器存取速度的快慢直接关系到整个系统的工作效率,尤其是作为直接运行程序场所的主存储器,更是希望其存取速度快;否则,处理速度再快的,CPU,也无法充分发挥其性能。因此,存取速度的快慢,应是首先要考虑的因素。,2 存储容量要大,存储器的存储容量越大,可以存储的信息越丰富。存储容量的大小是选用存储器的重要因素之一。,3 可靠性要好,对于易失性存储器,在供电期间数据在未修改的情况下存储要稳定;对于非易失性存储器,非易失性要好,非易失性是指当断开电源后,存储器存储的数据仍然保持完好而不丢失的性能。只要对存储的内容不进行修改就可以一直保存,能完整保存的时间越久越好,这有利于信息资料的保护。,4 存取操作要方便,对存储器中信息的存取通常都是根据需要,有选择地进行,因此,希望存储器的存取操作越方便越好,想要读取或修改哪一部分的存储内容,很快就能找到选中的位置。,5 体积小和重量轻,通常都希望存储设备尽量少占物理空间,易于移动,这对于便携式的微机(笔记本电脑)来说,却是一个重要因素。存储器必须要尽量体积小、重量轻。,6 性价比要好,任何产品,在性能相同的情况下,其价格越低,就越受用户的欢迎,产品就越有竞争力,存储器也不例外,当然应考虑选择性能价格比高的产品。,以上对存储器的要求,可能不会各方面都能同时满足,但应根据需要综合考虑,选择适当的存储器产品。,3.1.2 存储设备的分类,存储设备的种类很多,按不同的考虑,可以有不同的分类。,例如,按应用场合的不同,可分为内存储器与外存储器:按存储器的工作原理,可分为半导体存储器、磁介质存储器和光碟存储器等:按存储特性,又可分为易失性存储器和非易失性存储器;按寻址特性,还可以分为随机寻址存储器、顺序寻址存储器和直接寻址存储器等。,在下一节中再具体介绍。,3.2 半导体存储器,半导体存储器具有体积小、速度快、耗电少、价格低的优点,在微机中得到了广泛的应用。,半导体器件种类繁多,性能各异,在进行存储器及其接口设计时,必须首先了解各类存储器件的性能及结构特征。,半导体存储器根据其存储信息的功能,分为易失性存储器和非易失性存储器。,易失性,存储器指的是随机存储器(随意存取记忆),又称为读写存储器,是指一种在机器运行期间可读也可写的存储器,其在关闭电源后所存的信息将会全部丢失,通常被用于暂存运行的程序和数据。,非易失性,存储器则是一种在机器运行期间,只能读出信息而不能随时写入信息的存储器,其在掉电后所存的信息不会丢失,通常用来存放固定不变的程序和数据,如引导程序与基本输入输出系统程序等。,3.2.1 易失性存储器,易失性存储器主要是指,随机访问存储器,RAM,(Random Access Memory)。RAM,是计算机中用来存放数据、程序及运算结果,直接与,CPU,进行信息交换的场所。易失性存储器按存储电路的性质或者存储元件在运行中能否长时间保存信息,可分为,静态,随机存取储存器和,动态,随机存取储存器。,1 静态随机存取储存器(,SRAM),(1)SRAM,的主要特点,所谓静态随机存取储存器,是用双稳态触发器来作存储元件的,不存在电容的刷新问题,只要电源正常供电,触发器就能稳定地存储数据,因此称为静态随机存取储存器。其存储单元的每一位都是由双稳触发器和选通门电路组成的;而整个存储器由存储单元组成的阵列和控制电路组成。,单个存储器芯片的存储容量,因型号不同而异。,SRAM,的主要特点是:连接使用方便(不需要刷新电路),工作稳定,存取速度快(约为动态随机存取储存器,DRAM,的 3 5 倍),使用简单;,但由于每一位的存储,都用好几个晶体管,因此功耗较大,单片的存储容量不易做得很高,集成度较低,价格较贵。近些年来,,SRAM,在降低功耗、提高集成度和存取速度方面,都得到了很大改进。,由于价格相对较高,计算机主存用得很少,主要用作高速缓冲存储器(,Cache)。,(2)双端口,SRAM,双端口,SRAM,具有两个可以独立访问存储器任意存储单元的端口。,在某些系统中有时存在着两个或两个以上的主控模块(如,CPU,与,DMA,控制器等),这些主控模块之间有时需要相互通信或共享存储器,双端口,SRAM,对此提供了方便,从而可以简化控制逻辑电路。,双端口,SRAM,有下列,基本特点,:,两个端口有各自独立的地址线,数据输入/输出线以及口选信号,读/写控制,输出使能等信号线。,两个端口共同使用存储单元,统一供电。,允许两个端口同时访问不同的地址单元,但不允许两个端口同时访问同一地址单元。片内有裁决逻辑,任何一个单元,在某一时刻只许一个端口访问。当一个端口被访问时,另一端口则被封锁,前者访问操作完成后,才允许后者访问。为此,两个端口各有一个输出标志信号,作为联络信号。,(3),FIFO,存储器,FIFO(First-In First-Out),存储器即先进先出存储器,也是,SRAM,的一种。,FIFO,存储器可以看成为另一种形式的,双端口,SRAM,,但两个端口中,一个端口只能写入数据,而另一端口只能输出数据。写入的数据是存放在指定的单元中,若不断电可以一直保持不变,除非被新写入的数据所更改。这些存储单元的内容可以反复被读出。,通过,FIFO,算法进行内部寻址,读/写操作会自动访问存储器中的连续存储单元,读出的数据顺序与写入的顺序相同。操作时,不需要外部地址,,先写入的先读出。,FIFO,存储器可以被看成是具有两个独立同步时钟的数字子系统之间的“通道窗口”。当两个子系统传输数据的速率不同时,,FIFO,存储器可以为它们提供并行输入/输出的有弹性的缓冲,弹性的大小取决于,FIFO,存储器的容量深度(即容量大小)。,2,动态存储器,DRAM,(1)DRAM,的基本特点,DRAM,的存储原理是基于,电容,能存储电荷的特性。存储单元的每一位可用一个晶体管和一个与之相连的小电容来实现。若写入位为“,1”,,则电容被充电:若写入位为“,0”,,则电容不被充电。读出时,用晶体管来读与之相连的电容的电荷状态。若电容被充电,则该位为“,1”,;若电容没有被充电,则该位为“,0”,。,由于用来存储数据的电容极其微小及电容漏电阻的存在,会使电容存储的电荷逐渐泄放掉,从而造成存储数据的丢失。,因此,这种存储器的每个位单元,每隔一定时间(如若干毫秒)就要重新,充电,一次,以维持原来的数据不丢失,称之为,刷新,。为了保持存储器中的数据,必须不断地、周期性地对所有存储单元中的所有位进行刷新,这也正是动态存储器的含义。,刷新按行进行,不需要列地址,在同一行的所有位同时被刷新。,DRAM,由于每一个存储位仅用一个晶体管和一个小电容,因此,集成度比较高,。就单个芯片的存储容量而言,,DRAM,可以远远超过,SRAM。,就相同容量的芯片而言,,DRAM,的,价格,也大大,低,于,SRAM。,这两个优点使,DRAM,成为计算机内存的主要角色。,DRAM,的各存储单元通常按方阵排列。为减少芯片的引脚数,,地址,引脚采用了,分时复用,,寻址时除了要交叉地输入行地址和列地址以外,还要使,行地址选通,和,列地址选通,分别有效。先锁存行地址,后输入列地址,它们的建立和保持有严格的定时要求。,由于,DRAM,需要,刷新控制,和,行列地址分时复用,控制,使得它比,SRAM,的接口要复杂一些。另外,,DRAM,的存取速度,一般比,SRAM,要慢,通常都要几十纳秒(,ns),,这样的存取速度已远远不能满足高速系统的需要,使之成为系统的“瓶须”。,DRAM,的主要,特点,:集成度较高,地址引脚信号分时复用,数据输入和输出信号分离,需要刷新电路,接口电路复杂,存取速度比,SRAM,慢。在,PC,中主要作为内存(主存)。,(2),DRAM,的改进技术,为提高,DRAM,的存取速度,人们采用了多种方法,近几年来,使存取速度有了很大提高,取得了突破性进展。,DRAM,的存取过程包括初选的行地址、随后的列地址以及接下来的数据传送。选择行地址和列地址需要一定的等待时间,是一种必要的系统开销,但都延缓了数据存取的时间。存取时间是数据传送的周期时间加上选择行地址和列地址的等待时间。随着提高存取速度技术的发展,相继出现了几种类型的,DRAM。,快页式,FPM,DRAM(Fast Page Mode DRAM),扩展数据输出动态随机存储器,EDO DRAM,突发式(,Bust)EDO DRAM,同步动态存储器(,SDRAM),和,DDR SDRAM,SLDRAM,RDRAM,带有高速缓存的动态存储器,CDRAM,(3)内存条及其接口,各种各样的动态存储器,无论如何,当作为,PC,机的内存使用时,都必须按一定的接口方法与,PC,机的主板连接。,内存储器不是以单个的存储器芯片的形式,而是以,模块,的形式与主板连接。按照类型和存储器容量的要求,首先将若干片,DRAM,芯片焊接在一小块条形印制电路板上,将印制电路板以插件板的形式,插入到,PC,机主板的内存标准插座上。该内存储器的电路板就是一个存储器模块,通常称为,内存条,。,按内存条的引脚线数分为30线、72线和168线3种,前两种内存条为,单列直插,内存模块,SIMM,(Single Inline Memory Module),,其中30线的,SIMM,只能提供8位有效数据,现在已基本淘汰了。72线的,SIMM,提供32位的有效数据。,168线的内存条为,双列直插,内存模块,DIMM,(Double Inline Memory Module),,提供64位有效数据。,(4)内存条存储器芯片的识别,内存芯片一般标记了生产厂家、芯片的容量、存取速度、类型和数据宽度等指标。每个厂家的标记方式都不太一样。,3 伪静态随机存储器,PSRAM,伪静态,随机存储器,PSRAM,是一种在片内集成了,刷新控制电路,的,DRAM,。,这种存储器芯片既集中了,DRAM,存储密度高、功耗低与价格低等优点,又同时避免了刷新控制接口的设计,用较低的成本提供了一些,SRAM,的特性,引脚与用法可以像,SRAM,一样。,这类芯片有些具有同步和异步两种工作方式,特别适用于地址与数据总线复用的微处理器和微控制器系统。,3.2.2 非易失性存储器,前面介绍的,DRAM,和,SRAM,均为可任意读写的随机存储器,当掉电时,所存储的内容会立即消失,所以是易失性存储器。,下面介绍的非易失性存储器,即使停电,所存储的内容也不会丢失。根据半导体制作工艺的不同,可分为,ROM、OTPROM、EPROM、EEPROM,和,Flash,存储器等。,1 只读存储器,ROM,ROM,由芯片制造商在制造时写入内容,以后,只能读而不能再写入,。其基本存储原理是以元件的“有/无”来表示该存储单元的信息(“1”或“0”),可以用二极管或晶体管作为元件,显而易见,其存储内容是不会改变的。,现在计算机中现已很少使用。,2 一次性编程的,OTPROM,OTPR0M(One Time Programmable ROM),即可以一次性编程写入的,ROM,,只能,一次性编程写入,。,过去多采用双极性熔丝式。用每位熔丝是否断开表示“,l”,或“0”。由于编程写入后各位熔丝状态就无法再改变,因此只能读出,不能再写入。,这种,ROM,因只能被编程一次,在测试阶段不能对产品进行编程性能检测,所以可靠性和可信度不高,也是逐渐淘汰的产品。,后来不少厂家采用了,EPROM,技术来生产,OTPROM,,即将所有芯片在生产过程中都进行,编程检验,,同时进行,性能测试,,合格芯片在封装前再将程序擦除,这样就保证了产品都有合格的性能。用户使用时可以重新编程写入,但写入后就不能再被擦除了。,3 可多次编程写入的只读存储器,为了便于对,ROM,的内容进行修改,人们推出了可以,多次编程写入,的只读存储器。,(1)用紫外线擦除的可编程的,UV-EPROM,通常简称,EPROM。,以,NMOS,工艺的,MOS,器件为例,未写入时,各单元的每一位都呈“1”状态。编程写入时,根据编程需要,使相关位的浮栅注入电子,使其呈“0”状态,这可通过在该位的源漏极之间加高压并在漏极上加一定宽度的正脉冲,造成雪崩击穿来实现。当电压撤除后,注入浮栅的电荷就驻留在浮栅上,从而保持了写入的“0”。擦除时,是用,紫外线,通过芯片顶部的石英窗口对芯片进行照射(约20分钟),就可以使浮栅上注人的电子释放掉,使有关的位从“0”变为“1”,使各单元变为写入前的全“1”状态。,EPROM,芯片的可靠性和使用寿命都与使用方法有关。不同厂家的产品对编程写入时所加电压的要求可能不同,一定要按厂家的要求来使用,否则会缩短芯片的使用寿命,甚至报废。可用,专门的编程,器对,EPROM,进行编程写入,写入完成后,应将芯片上的石英窗口遮盖起来,以防止被紫外线照射后丢失数据或程序。,EPROM,擦除时,必须,脱机,进行紫外线照射,而且一次擦除必须将整个芯片存储的,全部内容都擦掉,,因此要修改程序很不方便。,(2)电可擦除的可编程存储器,EEPROM,称为,E,2,PROM。,不,像,EPROM,那样必须,脱机,用紫外线来擦除,而是用,电,来擦除,可以直接由计算机联机进行编程和修改。它既可以整片擦除,也可以,按字节进行擦除,和再编程,从而克服了一般,EPROM,的缺点。,4,Flash,存储器,由,Intel,公司于1988年首先推出的。所谓,Flash,可译为,快闪,或,闪存,,,实际上,Flash,存储器就是,可用电快速擦写,的,非易失性,存储器,简称,Flash。,快速是相对于,E,2,PROM,而言的。,从原理上看,,Flash,存储器属于,ROM,型存储器,但它可以随时改写所存信息;从功能上看,它又相当于,RAM,,使以前对,RAM,与,ROM,的划分变得模糊起来。但从存取速度和擦写的寿命两方面来衡量,它还赶不上,DRAM,,因此,在计算机中,目前它还是作为,ROM,的一种来应用。在工业控制与办公设备等领域,,Flash,可用来作为在线改写的,ROM。,近几年,Flash Memory,发展迅速。,5 铁电存储器,FRAM,是一种非易失性存储器新技术。它克服了,Flash,存储器的擦写速度慢,以及可写次数寿命不太长等缺点而倍受人们的关注。,1992年美国,Ramtron,公司首先推出了高位数的产品。,FRAM,有可能成为一种理想的存储器。,FRAM,的结构与,DRAM,有些相像,但其对数据的存储不是利用电容对电荷的存储,而是利用,铁电电容,被电场极化后的双稳特性,来表示数据为“1”或为“0”。,FRAM,有如下主要,优点,。,(1)写入数据的速度快:数据写入时间比前面所介绍的几种非易失性存储器快若干数量级。,(2)擦写次数寿命长:可重写次数也远远高于前面几种非易失性存储器,读写次数可以高达1亿次。,(3)功耗低,(4),体积小:与其他非易失性存储器相比,,FRAM,的体积更小。,总之,,FRAM,是一种正在大力开发的新型非易失性存储器,它优越的特性,使其独具魅力,虽然目前产品的品种还不多,单个芯片的存储容量也还不够大,但它有着广阔的发展前景。随着制造工艺的不断改进,一定会有性能更好的,FRAM,产品占领市场。,3.3 内存的管理,80,X86,系列,CPU,有两种内存管理模式,即实地址模式和保护虚地址模式。下面分别进行介绍。,1 实地址模式,实地址方式是为了,与8086兼容,而设置的工作方式。在实地址方式下,具有32位地址线的80,X86,只有低20位地址线起作用,能寻址1,MB,的物理地址。在此工作方式下,80,X86,只相当于一个快速的8086。,在此方式下,内存被分成段来进行管理,每段的长度被限定为64,KB。,在8086中,物理地址的计算方法为:,物理地址段寄存器的内容16(左移4位)+偏移量,具有32位地址线的80,X86,的最大逻辑地址为,FFFFH:FFFFH,,,因而相应的最大物理地址为:,FFFF0H+FFFFH=10FFEFH,,即内存实空间10,FFF0H,个字节,这只比1088,KB,只少16个字节,一般算作,1088,KB,。,对于8086/8088,由于其没有,A20,地址线,最大物理地址限定为,FFFFFH,,相应于最大物理地址的逻辑地址只是,F000:FFFFH,(,或,FFFF:000FH,等,实模式允许多个逻辑地址映射成同一物理地址),即内存实空间只有,1024,KB,(1MB)。,可以看出,当工作在实模式下,80,X86,因为有,A20,地址线,其内存(1088,KB),比8086(1,MB),多64,KB,。,在实地址方式下,处理器的物理地址实质上也是这样产生的。在实地址方式下,段寄存器的内容会自动乘16,并放在段描述符寄存器的基地址中。段界限也固定为0,FFFFH,,即64,KB。80 x86,处理器其他属性也是固定的。,这种物理地址的形成与8086,在本质上没有区别,。在实地址方式下,,Pentium、486、386,和286提供的内存空间只有1,MB,,段界限为64,KB,,当偏移量超出此界限时,会发生异常。,因此,可以说在实地址方式下,,Pentium、486、386,和286是一个高速的8086,他们的许多优秀性能,如多任务与多级保护等,均无法实现。,2 保护虚地址模式,只有当,CPU,工作于保护虚地址模式下时,80,X86,才能充分发挥其功能。,存储单元地址仍然由段基址:偏移地址构成。与实模式相比,根本的区别在于如何确定段基址。,P107。,在保护方式下,内存中的每个逻辑段对应一个8个字节的,段描述符,,多个描述符构成一张,段描述符表,。由描述符表中的段基址结合偏移地址才能得到线性地址和物理地址。,由段基址和偏移地址转换得到的地址称为,线性地址,。当启用,分页机制,时,线性地址转换为物理地址;不启用时,线性地址就是物理地址。,为了加快寻址速度,每个段寄存器增加了一个,段描述符高速缓冲器,。段寄存器中的值是该段的描述符在表中的索引值,所以段寄存器又称为,段选择符,。,地址转换,以80286为例。逻辑地址的表达式是“段选择符:段内偏移量”,两部分仍各为16位长。在具体访问内存前,选段符也是装入四个16位的段寄存器,CS、DS、ES,和,SS,中的某一个。,选段符的高13位是,描述符表,的索引值(这也是每个描述符表最多有8192个表项的原因),实际上就是所说的段号。将此索引值扩大8倍,则此16位的值就是被选中描述符项在全局描述符表(,GDT),或当前局部描述符表(,LDT),中的表内字节偏移量,并判断它是否超出表限。然后由,GDTR,或,LDTR,给出的描述符表的基址(24位)加上合法的16位的表内偏移量,为访问内存的24位物理地址,读取由此位置开始的8个字节。实际上只是把被选中描述符的未保留的6个字节读入,CPU。,这是地址转换的,第一步,,即访问,段表,。,为寄存读取的描述符的6字节,80286为四个段寄存器的每个都扩展了48位的段描述符高速缓冲寄存器。在保护模式下,段寄存器及其扩展部分的结构如图3.3所示。,地址转换的,第二步,,是将取来的描述符给出的24位段基址与逻辑地址中给出的16位段内偏移量(当然,要与段限比较后是合法值),相加,,最终得到由“选段符:段内偏移量”逻辑地址转换来的24位物理地址。,3.3.2,PC,系列微机的存储器空间,在当前,PC,机中多使用80286,CPU,以上的芯片,与8086不同的是,80,X86CPU,至少有24根地址线,可访问的地址空间至少可达到16,MB。,在,PC,机中可以专门对80,X86CPU,的,A20,地址线进行控制。,当,A20=1,时,允许访问1,MB,以上的64,K,地址空间,这个地址空间称为,高位存储区(,HMA),这是在,实模式,下可以访问的保护模式的存储器区域。,在保护模式下80,X86CPU,可以访问至少16,MB,地址空间,1,MB,以上的地址空间称作,扩展存储区(,XMS),,,图3.4给出了其存储空间分配情况.,(1)基本内存,基本内存(,Conventional Memory),是指地址范围在00000-,A0000,内的这一连续区域内的内存(共640,KB),也称为,常规内存,在这一内存地址空间内,DOS,不需要任何内存管理程序即可直接访问.,一般情况下,如果没有其他内存管理程序,在,DOS,下的各种程序和数据,包括,DOS,本身,都是在此范围内运行,在基本内存中的各种程序都是以实模式方式运行。,由于常规内存只有640,KB,而系统在运行某个,DOS,应用程序时一般都要将该程序调入到常规内存中,因此这一内存就显得格外紧张.直到现在,为保持向下兼容性,一般,DOS,应用程序直接使用的也是这部分内存,因而这是,最宝贵,也是,最紧张,的内存资源.,对常规存储器进行管理的目标是在满足系统需求的基础上尽可能少的利用常规存储器,使这段存储器能剩余更多的空间为用户运行程序而使用。在这640,KB,中,分为中断向量区,BIOS,数据区,DOS,核心部分(,IO.SYS,MSDOS.SYS),COMMAND.COM,程序区和用户可利用空间,其中系统程序就已占用了110,KB,以上的空间,留给用户的不足600,KB.,DOS,运行在实模式下,而实模式的地址空间是1,MB,那么是什么,限制,了常规内存只有640,KB?,是,DOS,自己,确切地说,是,系统的硬件结构,。系统硬件把,A0000,以上的地址留给了接口板的数据区和,ROM BIOS,等.,(2)上位内存(,Upper Memory),从640,K,到1024,K,的这384,K,的内存叫做,上位内存,,又称为,保留内存,。上位内存具体又可分为以下一些区域:,A0000-AFFFF(640K-704K),是,VGA/EGA,的,ROM,和数据区,共64,K;,B0000-B7FFF(704K-736K),是,MDA,数据区,共32,K;,B8000-C3FFF(736K-812K),由,CGA/EGA,使用,共76,K,,其中736,K-752K,是,CGA,数据区,768,K-784K,为,EGA,的,ROM,区;,C4000-DFFFF(812K-896K),没有使用,共84,KB;,E0000-EFFFF(896K-960K),供其他,ROM,使用,共64,K;,F0000-FFFFF(960K-1024K),为系统,ROM BIOS,使用,共64,K。,在上位内存已占用的块中,总有一些没用的块,对于这些没用的区域不能直接用来存取数据,要利用一些专门软件(如,EMM386,.EXE),来使这个区域再生,将未用的那些区域变成所谓的,上位内存块,(,Upper Memory Block)。,上位内存块有两个特点:,UMB,的位置和大小随系统配置不同而不同;,不宜用,RAM,芯片来填充,UMB,,主要是实现比较困难,(3)扩展内存(,Extended Memory),DOS,所能直接管理和使用的内存共计1,MB,,扩展内存就是指超过这1,MB,以上的内存区。扩展内存的大小与,CPU,的寻址能力有关,或者说取决于,CPU,地址总线的宽度,。如8086可管理1,MB,的物理内存,而80386/486则可管理4,GB,的物理内存。因此,扩展内存数量就是在上述内存上限的基础上减去1,MB。,其中,位于1024,K1088K,的这64,K,存储区被称为,高位内存区(,HMA),,,HMA,的特殊性,在于可以用实模式方式来访问这一段扩展内存。,在,DOS,下有一个扩展内存管理与控制程序:,HIMEM.SYS,,只要运行该程序,就可以把物理的扩展内存纳入到,XMS,规范的管理和扩展之下,并实现对,HMA,的访问。,(4)扩充内存,扩充内存,(,Expanded Memory),是早期为了系统内存的不足(当时只有640,KB),,而在系统中增加的内存,并且是满足,EMS,规范的一种,非线性,内存,就是说,它是一种在,CPU,寻址之外,的物理存储器,也称为,EMS,内存,。它是利用,内存换页,(,Banking Paging),的方式来处理,DOS,基本内存1,MB,之外的内存。,实际中,需要加载一个“扩充内存管理程序,EMM,(Expanded Memory Manager)”,,它会在,DOS,的保护模式下在,上位内存中,开一个64,KB,的空间,来记录要“换页”的位置。,早期是用专门制作的扩充内存卡作,EMS,内存,现在多数是用扩展内存来仿真,EMS,内存。扩充内存的重要意义在于,CPU,不必切换到保护模式就能访问多于1,MB,的,RAM,。,3.3.3 常规内存的管理,DOS,实现内存管理的重要数据结构是,内存控制块,MCB,(Memory Control Block)。,通过,MCB,把全部内存块(已分配和空闲的)按位置顺序连成链,使,DOS,能掌握常规内存的分配使用情况。,但是,,DOS,对,MCB,链的保护几乎没有采取任何措施,不少类型的病毒就是通过非法修改,MCB,链而把自己藏匿于内存之中的。,3.3.4 扩展内存的管理,扩展内存是地址高于1,MB,的,线形地址,存储空间,只能被运行在,保护模式,的80,X86,所访问。对于运行于实地址模式下的,DOS,及它控制下的程序通常不能在扩展内存上运行,甚至也不能为存取数据而访问这部分内存。,为了对实模式程序提供某种访问扩展内存的途径,产生了,XMM,(XMS,内存管理程序)。,XMS,最基本的功能,是使两个或多个应用程序,以及设备驱动程序能够互不干扰地访问扩展内存(含,HMA),和上位内存。,程序存放数据到延伸内存之前,先要访问,XMS,内存管理程序(如,HIMEM.SYS),,请求留出一块空间。如果有可用内存,,XMS,内存管理程序就返回一个句柄给请求程序,供它访问扩展内存使用。,一旦某程序已拥有一块内存区,那么在它未释放之前,,XMS,内存管理程序将禁止任何别的程序使用这块内存。,3.4 存储器接口技术,存储器接口也和其他接口一样,主要完成三大总线的连接任务,即实现与地址总线、控制总线和数据总线的连接。,下面对存储器接口设计中应考虑的几个主要问题以及总线连接的具体方法进行讨论。,3.4.1 存储器接口中应考虑的几个问题,1.与,CPU,之间的时序配合,存储器与,CPU,之间的时序配合问题是整个微型计算机系统可靠和高效地工作的关键。,CPU,访问存储器是有固定时序的,由此确定了对存储器存取速度的要求。,在早期的计算机中,,CPU,和存储器是作为一个整体统一设计的,所以时序匹配问题已在设计时协调解决。但随着大规模集成电路的发展,现有的,CPU,和存储器一般都是分别设计和制造的,因而时序配合问题便成为接口设计中应考虑的问题之一。,为了使,CPU,能与不同速度的存储器相连,一种常用的方法是使用“,等待申请,”信号。当,CPU,不能在正常的读写周期内完成对慢速存储器的操作时,等待信号发生器向,CPU,发出等待申请信号,使,CPU,在正常的读写周期外插入一个或者几个等待周期,以便通过改变指令的时钟周期数使系统速度变慢,从而达到与慢速存储器匹配的目的。,例如,8086,CPU,中的,READY(,准备就绪)输入线就是为协调,CPU,与存储器或,I/O,端口之间的速度而设计的一条等待状态请求线。,8086的,系统总线周期,由4个时钟周期,T1T4(,又称为,T,状态)组成。正常情况下,CPU,要求存储器读/写操作在4个,T,周期内完成,并规定在,T1,周期发送地址,,T2,周期发送读/写命令,,T3,周期将数据送数据总线,,T4,周期结束读/写操作。,当存储器不能满足,CPU,速度要求时,则在,T3,周期开始时通过,READY,向,CPU,发出等待请求信号,,CPU,在,T3,周期前沿采样该信号,若有等待请求(,READY,为低),则在,T3,和,T4,之间插入一个或多个,等待周期,Tw,(,又称为,等待状态,)。在,Tw,周期内总线上的活动与,T3,周期相同,所有控制信息、状态信息、地址信息和数据信息均保持不变。,因此,在进行8086与存储器接口设计时,应分析所选存储器的读/写速度能否满足,CPU,的时序要求。若需要插入等待周期,TW,,则应该设计一个,等待信号发生器,,使之按规定向,CPU,发出,READY,信号。,设计等待信号发生器的注意事项:,(1)产生等待申请的条件。每当有存储器操作时即发生等待申请。该条件可以是存储器访问信号,、,存储器读写控制信号或者地址译码信号。,(2),CPU,检测时刻的要求。,CPU,检测有无等待申请的时刻是固定的(如8086,CPU,是在,T3,周期的前沿),所以发出的等待申请信号必须保证在相应时刻有效。,(3)等待周期长度的控制,插入等待周期。插入等待周期的个数取决于等待申请信号的宽度,当需要插入多个等待周期时,可以增加触发器的级数。,2.,CPU,总线负载能力,任何系统总线的负载能力总是有限的。在,CPU,设计时,一般输出线的直流负载能力为一个,TTL,负载。,当采用,MOS,存储器时,由于直流负载很小,主要的负载是电容负载,故在小型系统中,,CPU,可以直接与存储器相连。,但对于较大的系统,当,CPU,的总线不能直接带动所有存储器芯片时,就要加上,缓冲器,或,驱动器,,以提高总线负载能力。,采用不同的存储芯片组织一个存储器,就会有不同的结构,总线上也就有不同的负载。一般当总线负载数超过限定时应当加接驱动器。,3.存储芯片的选用,存储芯片的选用不仅和,存储器结构,相关,而且和,存储器接口,设计直接相关。采用不同类型和不同型号的芯片构造的存储器,其接口的方法和复杂程度不同。一般应根据存储器的存放对象、总体性能、芯片的类型和特征等方面综合考虑。,(1)对芯片类型的选用。存储芯片类型的选择与对存储器总体性能的要求以及用来存放的具体内容相关。,高速缓冲存储器,是为了提高,CPU,访问存储器速度而设置的,存放的内容是当前,CPU,访问最多的程序和数据,要求既能读出又能随时更新,所以是一种可读可写的高速小容量存储器。一般选用双极型,RAM,或者高速,MOS,静态,RAM,芯片构成。,主存储器,要兼顾速度和容量两方面性能,存放的内容一般既有永久性的程序和数据,又有需要随时修改的程序和数据,故通常由,ROM,和,RAM,两类芯片构成。其中,对,RAM,芯片类型的选择又与容量要求相关,当容量要求不太大(如64,K,字节以内)时用,静态,RAM,组成较好,因为静态,RAM,状态稳定,不需要动态刷新,接口简单。相反,当容量要求很大时适合于用,动态,RAM,组成,因为动态,RAM,比静态,RAM,集成度高、功耗小和价格低。对,ROM,芯片,的选择则一般从灵活性考虑选,EPROM,和,EEPROM,的较多。,(2)对芯片型号的选用,芯片类型确定以后,在进行具体芯片型号选择时,一般应考虑存取速度、存储容量、结构和价格等因素。,存取速度最好选用与,CPU,时序相匹配的芯片。否则,若速度慢了,则需增加时序匹配电路;若速度太快,又将使成本增加,造成不必要的浪费。,存储芯片的容量和结构直接关系到系统的组成形式、负载大小和成本高低。一般在满足存储系统总容量的前提下,应尽可能选用,集成度高和存储容量大,的芯片。这样不仅可降低成本,而且有利于减轻系统负载,缩小存储模块的几何尺寸。,存储芯片容量越大,总线负载越小。,总线上芯片接得很多时,不但系统中要加接更多的总线驱动器,而且可能由于负载电容变得很大而使信号产生畸变。,存储芯片的构成,地址译码器:,读写控制逻辑电路:,数据缓冲器:,存储体:存储芯片的主体,由,基本存储元,按照一定的排列规律构成。,存储元的排列方式分为字结构方式、位结构方式。,字结构方式,是指将芯片上所有存储元排列成不同的存储单元,每个单元一个字,每个字的各位在同一个芯片内。例如1,K*8,位的芯片。,位结构方式,是指将芯片上所有存储元排列成不同的存储单元,每个单元一位,即将所有存储元排列成不同字的同一位。例如8,K*1,位的芯片。,大量芯片采用两种方式相结合,例如2,K*4,位的芯片。,显然,存储单元的数量与地址线多少有关,每个单元的位数与数据线多少有关。,3.4.2 存储器地址译码方法,存储器的,地址译码,是任何存储器设计的核心,目的是保证,CPU,能对所有存储单元实现正确寻址。,由于目前每一片存储芯片的容量是有限的,所以一个存储器总是由若干存储芯片构成。,地址译码分为,片选控制,译码和,片内地址,译码。其中,片选控制译码电路对高位地址进行译码后产生存储芯片的片选信号;片内地址译码电路对低位地址译码实现片内存储单元的寻址。,接口电路中主要完成,片选控制,译码以及,低位,地址总线的连接。,1.片选控制的译码方法,常用的片选控制译码方法有线选法、全译码法、部分译码法和混合译码法等。,片选译码时应该考虑,CPU,能够寻址的物理地址空间大小与实际配置的主存储器容量大小的关系。,(1)线选法,当存储器容量不大,所使用的存储芯片数量不多,而,CPU,寻址空间远大于存储器容量时,可用,高位地址线直接作为存储芯片的片选信号,,每一根地址线选通一块芯片,这种方法称为,线选法,。,例如,假定某微机系统的存储容量为4,KB,CPU,寻址空间为64,KB(,即地址总线为16位),所用芯片容量为1,KB(,即片内地址为10位)。那么,可用线选法从高6位地址中任选4位作为4块存储芯片的片选控制信号。图3.5所示为选用,A,10,A,13,作为片选控制的结构示意图。,图中,存储器地址分布如表3.1所示。,图中,存储器地址分布如表3.1所示。,芯片,地址空间,A,13,A,12,A,11,A,10,A,9,A,8,A,7,A,6,A,5,A,4,A,3,A,2,A,1,A,0,十六进制 地 址 码,(1),0 0 0 1 0 0 0 0 0 0 0 0 0 0,0 0 0 1 1 1 1 1 1 1 1 1 1 1,0400,H,07FFH,(2),0 0 1 0 0 0 0 0 0 0 0 0 0 0,0 0 1 0 1 1 1 1 1 1 1 1 1 1,0800,H,0BFFH,(3),0 1 0 0 0 0 0 0 0 0 0 0 0 0,0 1 0 0 1 1 1 1 1 1 1 1 1 1,1000,H,13FFH,(4),1 0 0 0 0 0 0 0 0 0 0 0 0 0,1 0 0 0 1 1 1 1 1 1 1 1 1 1,2000,H,23FFH,优点是,连线简单,,片选控制无需专门的译码电路。,但该方法有两个缺点,一是当存在空闲地址线时,由于空闲地址线可随意取值0或1,故将可能导致,地址重叠,(同一个存储单元对应多个不同地址)。,例如,上例中,,当地址线,A,15,、A,14,取不同值时,各芯片将对应不同的地址编码,;二是整个存储器地址分布,不连续,,使可寻址范围减小。,(2)全译码法,全译码法除了将低位地址总线直接与各芯片的地址线相连接之外,其余,高位地址总线,全部,译码,后作
展开阅读全文