❶ 如何解决存储器和CPU之间的时序配合问题,述说其详细过程
http://blog.21ic.com/user1/3794/archives/2007/40244.html
分享】存储器与CPU的连接2007-7-19 16:46:00
存储器与CPU的连接
存储器与CPU或系统总线的连接,这个题目很大。注意到以字节为单位组织的存储器是16位宽度、乃至32位宽度的存储器的基础,本着由易到难、由浅入深的原则,这里先考虑以字节为单位组织的存储器与8位CPU的连接,在下一节介绍16位宽度的存储器与16位CPU(以8086为例)的连接,在后面的章节再讨论32位CPU(以80386为例)的存储器组织。
在考虑存储芯片类型时,也是先考虑与CPU连接较为方便的SRAM和ROM,然后再指出DRAM与CPU连接时要特别考虑的地方。
在存储器与CPU连接时一般要考虑以下几个问题:
·CPU总线的负载能力。
·CPU与存储器速度的配合问题。
·存储器的地址空间分配。
·读/写控制信号的连接。
·数据线的连接。
·地址线的连接与存储芯片片选信号的产生。
1.CPU总线的负载能力
CPU总线的驱动能力有限,通常为一到数个,TTL负载,因此,在较大的系统中需要考虑总线驱动。一般做法是,对单向传送的地址和控制总线,可采用三态锁存器(如74LS373、8282等)和三态单向驱动器(如74LS244)等来加以锁存和驱动;对双向传送的数据总线,可采用三态双向驱动器(如74LS245、8286等)来加以驱动。三态双向驱动器也称总线收发器或数据收发器。
2.CPU与存储器速度的配合问题
每一种存储芯片都有自己固有的时序特性,这在前面已多次讲到。在和cPu相连时必须处理好时序的配合问题。处理这个问题应以CPU的时序为基准,从CPU的角度提要求。
例如,存储芯片读取时间应小于CPU从发出地址到要求数据稳定的时间间隔;存储芯片从片选有效到输出稳定的时间应小于系统自片选有效到cPu要求数据稳定的时间间隔。如果没有满足要求的存储芯片,或者出于价格因素而选用速度较慢的存储芯片时,则应提供外部电路,以产生READY信号,迫使CPU插入等待时钟Tw。看一个具体的例子,2114-2的读取时间最大为200 ns,而cPu要求的从地址有效到数据稳定的时间间隔为150 ns,则不能使用2114—2,可选用比它快的芯片。如果出于价格因素,一定要用2114—2,则需要设计READY产生电路,以便插入Tw。
3.存储器的地址空间分配
内存通常分为RAM和ROM两大部分,而RAM又分为操作系统占用区和用户区。另外,目前生产的存储器芯片,单片的容量仍然是有限的,即它的寻址空间是有限的,一般要由若干芯片组成一个存储器。所以,在和CPU连接时需进行存储器的地址空间分配,即需要事先确定每个芯片(或由“×l位”或“×4位”芯片组成的芯片组)所占用的地址空间。
4.读/写控制信号的连接
总的原则是CPU的读/写控制信号分别和存储器芯片的读/写信号输入端相连。实际上,一般存储器芯片没有读输入端,是用写无效时的片选信号兼作读信号。有的存储器芯片设有输出允许()引脚,一般将该引脚和CPU的读信号相连,以便该片被选中且读信号有效时将片内数据输出三态门打开。对于不需要在线编程的ROM芯片,不存在写信号的连接。
5.数据线的连接
这个问题与存储器的读/写宽度有关,而存储器读/写的最大宽度一般为CPU对外数据总线的位数。在考虑存储器与CPU的数据线连接时,总的原则是:如果选用芯片的芯片字和所要设计的存储器的读/写宽度相同,则直接将它的数据线分别和CPU的数据线相连;如果芯片字的位数小于所要设计的存储器的读/写宽度,则需进行“位扩展”,即用几片组合在一起,使它们的芯片字位数的总和等于存储器的读/写宽度,将它们的数据线分别和CPU的数据线按对应关系相连。
这里以8位CPU配8位宽度的存储器为例。若选用“×8位”存储芯片,则将它的8根数据线分别和CPU的8根数据线相连即可;而选用芯片字不足8位的存储芯片,则需要用几片(“×1位”芯片需8片,“×4位”位芯片需2片)才能构成一个8位宽度的存储器,这时,需将这些芯片的数据线按位的对应关系分别和CPU的8根数据线相连。
有些存储芯片,数据的输入和输出分别缓冲,一位数据设置DIN和DOUT两个数据线引脚。对于这种芯片,需将一位的DIN和DOUT引脚连起来,再和CPU的一根数据线相连。
6.地址线的连接及存储芯片片选信号的产生
一个存储器系统通常需要若干个存储芯片。为了能正确实现寻址,一般的做法是,将cPu或系统的一部分地址线(通常是低位地址线,位数取决于存储芯片的容量)连到所有存储芯片,以进行片内寻址(存储芯片内均设有地址译码器);而用另一部分地址线(高位地址线)进行芯片选择。存储器系统设计的关键在于如何进行芯片选择,即如何对高位地址译码以产生芯片的片选信号,常用以下三种方法:
(1)线选法
用一根地址线直接作一个存储芯片的片选信号。例如,一台8位微机,有16根地址线,现要配2 KB RAM和2 KB ROM,均选用2 K×8位的芯片,则各需一片。这时可采用一种最简单的地址选择方法,如图3.24所示。将CPU的地址线的低11位(A10~A0)和两个芯片的地址线分别相连,芯片的片选直接和其他的高位地址线中的一根相连,图中A15反相后接RAM的,A14反相后接ROM的。这样,A15、A14为1 0时选中RAM片,为0 1时选中ROM片。
这里分析一下RAM芯片占用地址空间的情况。未用的地址位(这里是A13~A11)通常取0,即RAM芯片的设计地址空间为8000H~87FFH。将A15、A14固定为1 0,A10一AO作片内寻址,当A13~A11取不同的组合时,可形成包括上述设计空间在内的8个区域。除去设计空间外,其他区域是:8800H~8FFFH,9000H~97FFH,…,B800H~BFFFH。由于A13~A11没有参加译码,访问这7个区域中的任何一个单元都会影响到设计空间中相应的单元,因此,这7个区域不得他用。可以认为这些区域也被该RAM芯片所占用着,称这些区域为设计空间的重叠区。对于该例中的ROM芯片,同样也存在7个重叠区,读者可自行分析。
线选法的优点是简单、无需外加选择电路;缺点是不能有效地利用地址空间,也不便于系统的扩充。该方法可用在存储容量需求小,且不要求扩充的场合,例如单片机应用系统。
(2)全译码
全部地址线参加译码,除去进行片内寻址的低位地址线外,其余地址线均参加译码,以进行片选。例如,一台8位微机,现要求配8 KB RAM,选用2 K×8位的芯片,安排在64 KB地址空间低端的8 KB位置。图3.25所示为该8 KB RAM与CPU(或系统总线)的连接。图中74Lsl38是3线一8线译码器。它有3个代码输入端c、B、A(A为低位)和8个译码输出端Y0~Y7。74LSl38还有3个使能端(或叫允许端)G1、和,第一个为高电平有效,后两个为低电平有效。只有当它们为l 0 0时,译码器才进行正常译码;否则,译码器不工作,所有的输出均无效(为高)。表3.5是74LSl38的真值表。此外,常用的3线一8线译码器还有8205,其输入/输出特性和74LS138完全一样,只是使用了另一组信号名称。
从图3.25中可以看到,除片内寻址的低位地址线外,高位地址都参与了译码。根据图中的接法,当A15~A1l为00000时,YO有效,选中左起第一片;为00001时,Y1有效,选中左起第二片,其他依此类推。
全译码的优点是可利用全部地址空间,可扩充性好;缺点是译码电路开销大。
(3)部分译码
它是前两种方法的综合,即除进行片内寻址的低位地址线外,其余地址线有一部分参加译码以进行片选。以图3.26所示为例,这里最高位A15没有参加译码。因为A15没有参加译码,所以也存在重叠区问题。
部分译码是界于线选法和全译码之间的一种方法,其性能也界于二者之间:可寻址空间比线选法大,比全译码小;而译码电路比线选法复杂,比全译码简单。
上面围绕存储芯片片选信号的产生,说明了三种译码方法。这些方法也适用于后面要介绍的I/O端口的寻址。
❷ cpu存储器和io设备是通过什么连接起来的
子系统。CPU存储器io设备通过子系统连接起来。CPU存储器是微处理器中存放数据和各种程序的装置。CPU存储器是微处理器的一个重要的组成部分,由存储单元集合体,地址寄存器,译码驱动电路。读出放大器以及时序控制电路等几部分组成。
中央处理器存储器又叫CPU存储器,CPU存储器是微处理器中存放数据和各种程序的装置。CPU存储器是微处理器的一个重要的组成部分,由存储单元集合体,地址寄存器,译码驱动电路,读出放大器以及时序控制电路等几部分组成。
❸ 存储芯片通过什么与外部连接
存储器芯片与CPU的连接方式。是指与CPU总线相关的信号线的连接。控制总线由芯片类型决定,只能随芯片一块讨论。
(1)根据CPU外部数据总线的位数确定主存结构。
(2)根据CPU外部地址总线的位数与存储器的容量确定主存储器芯片连接原则。
(3) 8位数据总线CPU与存储器接口。
❹ 计算机组成原理,CPU与存储器的连接
因为有16根地址线,8根数据线对应8位。所以内存地址是从0000 0000 0000 0000开始,8K就是2的13次方。所以A(12)对应就是1。所以最小系统程序区就是0000 0000 0000 0000~0001 1111 1111 1111。取到A(14)是因为用了两片RAM。这里最重要要理解一点:二进制
加1的情况。例如:0011 1111的下一个内存地址是0100 0000。
最大4K位是先取16根地址线的最后一位。用二进制表示就是1111 1111 1111 1111,然后向前4K
❺ 8086cpu与存储器连接时要考虑哪几方面的因素
-数据锁存:指令周期译码和数据周期数据分别处理
-片选:如何避免与其他外设冲突
-读写信号:如何译码才能在正确的时刻给正确的地址送数
-数据线和地址线:实际需要连多少根线
以上信号还要规划好时序,配合好速率,看需不需要做信号间搭电平转换
❻ cpu与存储器连接的步骤是什么
1)CPU可访问的最大存储空间看地址位数地址总线18条故2^18
2)CPU可提供数据总线8条存储空间为16KB故要拼凑一个16K*8--->(16K*8)/(4K×4
)=8
3)要求用138译码器实现地址译码应该就是3-8译码器那么有3根地址线做译码输入。
全部用4K×4位的RAM芯片构成,那么4K=2^12需要12根地址线A11-A0,之前3根就是A14-A12---这里的推算的没考虑要求其地址范围为08000H——0BFFFH的。
这里是从低位考虑的。
考虑地址空间必须先把地址从16进制转成2进制观察他们“1”最高位的位置然后设计。