首页 百科知识 存储器系统控制

存储器系统控制

时间:2022-10-17 百科知识 版权反馈
【摘要】:存储器与CPU或系统总线的连接,在微机中是非常重要的。作为基础内容,本小节主要以字节为单位组织的存储器与8位CPU的连接,对于16位、32位的存储器连接读者可参见其他相关教材。存储芯片有自己固有的时序,在与CPU相连时必须处理时序的配合。内存通常分为RAM和ROM两大部分,而RAM又分为操作系统占用区和用户区。一个存储器系统通常需要若干个存储芯片。该方法可用在存储容量需求小,且不要求扩充的场合,如单片机应用系统。

4.6/存储器系统控制

存储器与CPU或系统总线的连接,在微机中是非常重要的。作为基础内容,本小节主要以字节为单位组织的存储器与8位CPU的连接,对于16位、32位的存储器连接读者可参见其他相关教材。

1.CPU总线的负载能力

CPU总线的驱动能力有限,通常为多个TTL负载,若系统存储器较大需要考虑总线驱动。一般方法是,对单向传送的地址和控制总线,可采用三态锁存器(如74LS373等)和三态单向驱动器(如74LS244)等来加以锁存和驱动;对双向传送的数据总线,可采用三态双向驱动器(如74LS245等)来加以驱动。

2.CPU与存储器速度的配合问题

存储芯片有自己固有的时序,在与CPU相连时必须处理时序的配合。这个问题应以CPU的时序为基准,从CPU的角度提要求。例如,存储芯片读取时间应小于CPU从发出地址到要求数据稳定的时间间隔;存储芯片从片选有效到输出稳定的时间应小于系统自片选有效到CPU要求数据稳定的时间间隔。如果没有满足要求的存储芯片,或出于价格因素而选用速度较慢的存储芯片时,则应提供外部电路,以产生READY信号,迫使CPU插入等待时钟Tw

3.存储器的地址空间分配

内存通常分为RAM和ROM两大部分,而RAM又分为操作系统占用区和用户区。目前存储器芯片的容量有限,即它的寻址空间是有限的,一般要由若干芯片组成一个存储器。所以,在与CPU连接时需进行存储器的地址空间分配,即需要事先确定每个芯片(或由“×l位”或“×4位”芯片组成的芯片组)所占用的地址空间。

4.读/写控制信号的连接

CPU读/写控制信号分别和存储器芯片的读/写信号输入端相连。实际上,许多存储器芯片没有读输入端,而用写无效时的片选信号兼作读信号。有的存储器芯片设有输出允许引脚,将该引脚和CPU的读信号相连,以便该片被选中且读信号有效时将片内数据输出三态门打开。对于不需要在线编程的ROM芯片,不存在写信号的连接。

5.数据线的连接

存储器读/写的最大宽度为CPU对外数据总线的位数。在存储器与CPU的数据线连接时,如果选用芯片的芯片字和所要设计的存储器的读/写宽度相同,则直接将它的数据线分别和CPU的数据线相连;如果芯片字的位数小于所要设计的存储器的读/写宽度,则需进行“位扩展”,即用几片组合在一起,使芯片字位数的总和等于存储器的读/写宽度,将它们的数据线分别和CPU的数据线按对应关系相连。

若选用“×8位”存储芯片,则将它的8根数据线分别和CPU的8根数据线相连即可;而选用芯片字不足8位的存储芯片,则需要用几片(“×1位”芯片需8片,“×4位”位芯片需2片)才能构成一个8位宽度的存储器,这时,需将这些芯片的数据线按位的对应关系分别和CPU的8根数据线相连。

有些存储芯片,数据的输入和输出分别缓冲,一位数据设置DIN和DOUT两个数据线引脚。对于这种芯片,需将一位的DIN和DOUT引脚连起来,再与CPU的某一数据线相连。

6.地址线的连接及存储芯片片选信号的产生

一个存储器系统通常需要若干个存储芯片。为了能正确实现寻址,一般的方法是,将CPU或系统的一部分地址线(通常是低位地址线,位数取决于存储芯片的容量)连到所有存储芯片,以进行片内寻址(存储芯片内均设有地址译码器);而用另一部分地址线(高位地址线)进行芯片选择。存储器系统设计的关键在于如何对高位地址译码以产生芯片的片选信号,常用以下三种方法:

(1)线选法

用一条高位地址线直接作一个存储芯片的片选信号。例如,一台8位微机,有16条地址线,现要配2KB RAM和2KB ROM,均选用2K×8位的芯片,则各需一片。这时可采用一种最简单的地址选择方法,如图4.22所示。将CPU的地址线的低11位(A10~A0)和两个芯片的地址线分别相连,芯片的片选直接和其他的高位地址线中的一根相连,图中A15反相后接RAM,A14反相后接ROM。这样,A15、A14为10时选中RAM,为01时选中ROM。

img335

图4.22 线选法选择芯片

下面分析RAM芯片占用地址空间的情况。未用的地址位(A13~A11)通常取0,即RAM芯片的设计地址空间为8000H~87FFH。将A15、A14固定为10,A10~A0作片内寻址,当A13~A11取不同的组合时,可形成包括上述设计空间在内的8个区域。除去设计空间外,其他区域是:8800H~8FFFH,9000H~97FFH……B800H~BFFFH。由于A13~A11没有参加译码,访问这7个区域中的任何一个单元都会影响到设计空间中相应的单元,因此这7个区域不得他用。可以认为这些区域也被该RAM芯片占用,称这些区域为设计空间的重叠区。对于该例中的ROM芯片,同样也存在7个重叠区,读者可自行分析。

线选法的优点是简单、无需外加选择电路;缺点是不能有效地利用地址空间,也不便于系统的扩充。该方法可用在存储容量需求小,且不要求扩充的场合,如单片机应用系统。

(2)全译码

全部地址线参加译码,除去进行片内寻址的低位地址线外,其余地址线均参加译码,以进行片选。例如,一台8位微机,现要求配8KB RAM,选用2K×8位的芯片,安排在64KB地址空间低端的8KB位置。如图4.23所示为该8KB RAM与CPU(或系统总线)的连接。图中74LSl38是3-8线译码器。它有3个代码输入端C、B、A(A为低位)和8个译码输出端Y0~Y7。74LSl38还有3个使能端G1、G2A和G2B,只有当它们为l00时,译码器才进行正常译码;否则译码器不工作,所有的输出均无效(高阻)。

从图4.23中可见,除片内寻址的低位地址线外,高位地址都参与了译码。根据图4.23中的接法,当A15~A1l为00000时,img336有效,选中左起第一片;为00001时,img337有效,选中左起第二片,其他依此类推。全译码的优点是可利用全部地址空间,可扩充性好;缺点是译码电路开销大。

img338

图4.23 全译码选择芯片

(3)部分译码

部分译码是线选法和全译码的综合,即除进行片内寻址的低位地址线外,其余地址线有一部分参加译码以进行片选。以如图4.24所示为例,最高位A15没有参加译码。由于A15没有参加译码,所以也存在地址重叠区问题。

img339

图4.24 部分译码电路

部分译码是界于线选法和全译码之间的存储器与CPU的连接方法,其性能也介于二者之间:寻址空间比线选法大,比全译码小;而译码电路比线选法复杂,比全译码简单。

(4)微机中DRAM与CPU的连接

在PC机中,DRAM与CPU相连时还要考虑刷新和行、列地址分时传送。如图4.25所示是一个用16片Intel 2164(64 K×l位)构成128 KB DRAM的示例。

Intel 2164是“×l位”结构,每8片可组成64KB的存储空间。一组中每片的数据输入线和数据输出线应连在一起,再分别和CPU的D7~D0的相应数据线相连;8片的img340img341分别连在一起,用来同时对8片存储器芯片进行操作。

因为Intel 2164内部的行地址和列地址是分别锁存的,所以应将行地址和列地址分时送出,可采用行/列多路器来完成此功能。又由于Intel 2164是DRAM,需要刷新,所以用刷新多路器对CPU正常读/写的行地址和刷新用的行地址进行选择。刷新行地址是由刷新时钟对刷新计数器计数产生。

以上分析了CPU与动态RAM相连时需要外加的电路。实际上,这些电路已被集成到动态RAM控制器中。例如,Intel 8203就是用来支持8086/8088 CPU和Intel 2164等DRAM相连的控制器。在现代微型计算机中,动态RAM控制器被集成在控制芯片组中。

img342

图4.25 DRAM与CPU连接示例

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈