微机原理与接口技术学习笔记 存储器接口的基本
在微机系统中,存储器系统是必不可少的,下面以一个8位微机系统中的存储器子系统为例,说明半导体存储器芯片与CPU的连接方法,以及在连接时必须注意的问题。
图3-15是一个8位微机系统中的存储器子系统。该子系统中有4片2732 EPROM组成16KB的 ROM区,4片6116 SRAM组成8KB的RAM区。该存储器子系统共占有24KB的内存空间(图中CPU为8088,8088的存储器/IO控制信号为IO/M)。
从图3-15可见,在内存芯片选定后,内存芯片同CPU的连接是构筑存储器子系统的主要工作,有三部分内容:
(1)地址线的连接——可以根据所选用的半导体存储器芯片地址线的多少,把CPU的地址线分为芯片外(指存储器芯片)地址和芯片内的地址,片外地址经地址译码器译码后输出,作为存储器芯片的片选信号,用来选中CPU所要访问的存储器芯片。片内地址线直接接到所要访问的存储器芯片的地址引脚,用来直接选中该芯片中的一个存储单元。图3-15中,对2732而言,片外地址线为A19~A12。片内地址线为All~AO;对6116而言,片外地址线为A19~A11,片内地址线为A1O~AO。
(2)数据线的连接——图3-15中,2732为4K*8位芯片,6116为2K*8位芯片,两者都有8条数据线,可直接同8088 CPCPU的8位数据线相连。如果采用Intel2164芯片,因该
芯片为64K*1位芯片,内部只有一位数据线,必须由8片2164芯片才能构成64K字节的内存,因此8片2164的数据线必须分别同8088CPU的8条数据线相连。
(3)控制线的连接——即如何用CPU的存储器读写信号同存储器芯片的控制信号线连接,以实现对存储器的读写操作。
3.3.1 集成译码器及其应用
CPU要对存储单元进行读写,首先要选择存储器芯片,即进行“片选”,然后在被选中的芯片中选择所要读写的存储单元,即进行“字选”——选择存储字。片选是通过地址译码方法来实现的。
1.74LS138译码器
在微机系统中,常采用中规模集成电路芯片74LS138作为地址译码器,其引脚及逻辑电路如图3-16所示。
74LS138是3-8线译码器/分配器,有三个“选择输入端” C、B、A,三个“使能输入端”(又称为“允许端”或“控制端”)G1、G2a、G2b,以及8个输出端Y0~Y7。其功能表见表3-3。
2.74LS138的应用
以图3-15的存储器子系统为例,地址译码器74LS138的“使能输入端”G2a经与非门同系统的地址总线A15、A16、A17和A18相连,G2b同IO/M相连,G1与 A19相连,而三个选择输入端C、B、A分别与A14、A13、A12相连。这样,74LS138译码器能工作的必要条件是:(1)存储器操作——包括存储器读或写;(2)A19A18A17A16A15为‘11111’。而A14A13A12的8种不同的地址组合(从‘000’到’ill’),分别对应于与Y0~Y7 8个输出端相连的8
表3-3 74LS138的功能表
个半导体存储器芯片的地址范围。
据此分析,4片2732芯片的编号为EPROM1、EPROM2、EPROM3和EPROM4,4片6116芯片的编号为SRAM1、SRAM2、SRAM3和SRAM4,其地址范围的计算如下:
可得8片存储器芯片的地址范围为:
EPROM1:F8000H~F8FFFH
EPROM2:F9000H~F9FFFH
EPROM3:FA000H~FAFFFH
EPROM4:FB000H~FBFFFH
SRAM1:FC000H~FC7FFH
SRAM2:FC800H~FCFFFH
SRAM3:FD000H~FD7FFH
SRAM4:FD800H~FDFFFH
在上述计算中,注意片内地址与片外地址的划分。对2732EPROM而言,其存储容量为4K*8位,有12条地址线,因此CPU的20条地址线中低12位All~AO作为存储器芯片的片内地址,直接与2732芯片的12条地址线相连,而高8位A19~A12为片外地址,同译码器的选择输入端C、B、A以及使能输入端相连。对6116SRAM而言,其存储容量为2K*8位,有11条地址线,则片内地址为11位,同CPU的A10~AO相连,而A19~A11为片内地址,参与译码器译码。在图3-15中,Y4和Y5两个译码输出端同地址线A11或A11(A11取反)经或门后作为6116的片选信号。
3.3.2 采用基本门电路实现内存储器的片选
在一些内存芯片较少的存储系统中,内存芯片的片选可以采用一些基本的逻辑门电路——逻辑与门、逻辑或门和逻辑非门来实现。
仍以图3-15所示的存储系统为例,如果该系统是采用基本逻辑门电路作为各内存芯片的片选电路,则EPROM1和EPROM2的片选电路可如图3-17或图3-18所示。
从图3-17和3-18可见,当高位地址A19~A12为11111000,且IO/M=“L”时,门电路1,输出“L”,选中EPROM1(即CE=L,有效),而当A19~A12=11111001;且IO/M=“L”时,门电路2输出“L”,选中EPROM2(即CE=L,有效)。由此实现了内存芯片的片选。
若在图3-15所示的存储系统中,全部采用基本的逻辑门电路作为各内存芯片的片选电路,则需要6个这样的门电路组合。
3.3.3 实现片选控制的三种方法
在存储器系统中,实现片选控制的方法有三种,即全译码、部分译码和线选。
1.全译码法
图3-15所示的存储器译码电路中,CPU的全部地址总线A19~AO都参与地址译码,因此对应于存储器芯片中的任意单元都有惟一的确定的地址,这种片选控制方法称为“全译码”。
2.部分译码法
如果在图3-15的存储器译码电路中,A19不参加译码,即74LS138的G1端接+5V,则A19不论是“0”还是“1”。只要A18~A12满足1111000都能选中FPROM1,则EPROM1的地址范围为78000H~78FFFH和F8000H~F8FFFH,那么一个存储单元可以由两个地址码来选中,这种片选控制方式称为“部分译码”。
3.线选法
如果在一个微机应用系统中,所要求的存储器容量较小,而且以后也不要求扩充系统的存储容量,例如,只要求4KB的EPROM区和4KB的SRAM区,则可不采用译码器芯片74LS138,而采用如图3-19所示的片选控制电路。
图3-19 片选控制电路
该电路中采用1片2732EPROM、2片6116SRAM构成总计8KB的存储器系统。图中A11~AO直接同2732的地址线相连,A1O~AO直接同6116的地址线相连、片选控制电路由几片小规模集成控制电路芯片组成,系统的地址总线中的A11用来区分两片6116芯片的地址范围,地址总线的最高位A19用来划分4KB EPROM区和4KB SRAM区的地址范围,这样,凡是A19为“0”的地址信号都选中SRAM区,A19为“1”的地址信号都选中EPROM。4KB的EPROM区和4KB的SRAM区分别对应于512K个地址,这样一个存储单元可以有128个地址来选中,凡是A19,A11~A0这13位地址固定,A18~A12这7位地址为任意值的128种地址码都能选中同一存储单元,称为“地址重叠”。
显然,部分译码也存在地址重叠的问题。
3.3.4 控制信号的连接
在存储器系统中,SRAM通常有三条控制信号线——片选信号CE、写允许信号WE和输出允许信号OE,这些控制信号的连接如图3-15所示,CE接地址译码器输出,OE接读信号线RD,WE接写信号线WR。EPROM芯片常采用双线控制,片选信号CE用来选择芯片、输出允许信号OE用来允许数据输出。只有这两条控制线同时有效时,才能从输出端得到要读出的数据。当CE为高电平时,EPROM处于待用状态(静止等待状态),输出呈现高阻抗,芯片处于低功耗状态且不受OE的影响。建议在同地址译码器输出相连,以控制对各器件的选择,而OE同系统控制总线中的读信号RD相连,这样可以保证所有未被选中的器件处于低功耗状态。
最后还要特别指出的是,在存储器芯片同CPU连接时要注意:(1)CPU总线的负载能力问题。通常CPU的总线负载能力为一个TTL器件或20个MOS器件,当总线上挂接的器件超过上述负载时,应考虑总线的驱动问题。在总线上加接缓冲器和驱动器,以增加CPU的负载能力。常用的驱动器和缓冲器有单向的74LS244、74LS367以及Intel的8282等,用于单向传输的地址总线和控制总线的驱动;对双向传输的数据总线通常采用数据收发器74LS245或Intel的8286、8287等。(2)CPU的时序同存储器芯片的存取速度的配合问题。存储器芯片同CPU连接时,要保证CPU对存储器的正确、可靠的存取,必须考虑存储器的工作速度是否能同CPU速度的匹配问题。如果存储器的速度跟不上CPU的速度,就必须在正常的CPU总线周期中插入等待周期Tw。
3.3.5 动态存储器的连接
根据DRAM芯片的特点,在DRAM芯片与CPU的连接中着重注意下由几个问题。
1.行地址和列地址的形成
以IBM——PC/XT机的RAM子系统为例,其RAM芯片的行地址和列地址形成电路如图3-20所示。
PC/XT机中RAM子系统采用4164DRAM芯片,有4组芯片,每组9片,其中8片构成64KB容量的存储器,1片用于奇偶校验位,4组DRAM芯片构成XT机系统板上256KB容量的内存。送到每个组中的行、列地址由两片74LS158(二选一选择器)组成的地址多路器提供。74LS158的真值表如表3-4所示。
表3-4 74LS158真值表
控制 |
输入 |
输出 |
S |
1A—4A,1B—4B |
1Y—4Y |
L |
X |
Y=A |
H |
X |
Y=B |
在PC/XT机中控制端S接信号ADDRSEL,当XMEMR或XMEMW有效时(存储器读或写),ADDRSEL信号先为低电平,过60ns为高电平;则74LS158先输出A路信号——XA0~XA7,即行地址;后输出B路信号——XA8—XA15,即列地址,先后在RAS(行地址选通)和CAS(列地址选通)的有效信号作用下,送到DRAM芯片组的8条地址线。
2.RAS和CAS的产生
PC/XT机的RAS和CAS信号产生电路如图3-21所示。
该电路产生4组DRAM存储器的RAS0~RAS3和CAS0~CAS3,由两级地址译码器组成。第二级译码器有两片74LS138组成,U56产生行地址选通信号RAS0~RAS3;U42产生列地址选通信号CAS0~CAS3。第二级译码器工作的条件有三:(1)第一级译码器的输出QO=“H”;(2)非刷新操作,DACK0BRD=“H”(无效电平);(3)有存储器读或写信号XMEMR、XMEMW。CAS译码器工作条件还需加上满足下面三个条件中的一个:(1)AEN=“L”(有效),即DMA操作;(2)MEMR=“L”(有效)即存储器读;(3)MWTC=“L”(有效),即存储器写。图中延迟线TD1使U42滞后U56工作,以满足CAS比RAS滞后有效。
第一级译码器由24S10(U44)组成,这是一个256*4位的ROM,在256个4位存储单元中,预先写入适当数值,地址线A7~A0用来选中其中一个存储字(4位数据
Q3Q2Q1Q0),S2,S1为输出控制端,当S2S1=“LL”时,24S10的端Q3~Q0有输出。Q3~Q0的输出值随A7~AO的地址信号而异。AO~A3接系统地址线高4位A16~A19;A4、A5接系统板上配置开关位3和位4--SW3、SW4(SW3和SW4的状态,反映系统板上RAM的配置情况,见注①);A6、A7恒为“H”,根据第二级译码要求,24S10芯片中有关单元应写入数据如表3-5所示。
表3-5 第一级译码器24S10中有关存储字内写入微据
从表3-5可见,在系统板上RAM容量固定的情况下(即SW4、SW3固定),A19~A16为0000、0001、0010、0011时,Q2Q1分别对应为00、01、10、11,同时加到第二级译码器的选择输入端B和A,经译码后,分别输出RAS0/CAS0、RAS1/CAS1、RAS2/CAS2和RAS3/CAS3,用以选中4组RAM中的一组。在分析第一级译码时还需注意的是,第二级译码要求 24S10的Q0必须输出“H”才能正常工作,在表3-5中也应满足这一要求。例如,当系统板上只配置有128KB RAM,则SW4、SW3=01。当A19~16=0000时,Q2Q1Q0=001,Q0=1满足第二级译码要求,Q2Q1=00,使第二级译码输出RAS0=L,CAS0=L,选中第1组RAM;当A19~A16=0001时,Q2Q1Q0=011,Q0=1,Q2Q1=01输出RAS1=L,CAS1=L,选中第2组RAM;而当A19~A16=0010和0011时,Q2Q1Q0=000、000,Q0=0,第二级译码不工作,无RAS,CAS的有效信号输出,第3、4组RAM不被选中,这是符合实际情况的,因为此时系统板上根本未装上这二组RAM。
当DRAM芯片组进行动态刷新时,图3-21中DACK0BRD=“L”,经U24与非门后输出“H”使U42的G2a无效,同时又使U56的G2b亦无效,则第二级译码器不工作,无RAS、CAS有效信号输出。而DACK0BRD又经与非门U71反向为“H”,送到与非门U69,U69的另一输入端来自延迟线TD1的输入端,当XMEMW或XMEMR有效时,TD1输入为“H”,经U69与非后输出低电平信号加到U55的4个负或门,同时输出4组RAM芯片的RAS0~RAS3,这正是DRAM芯片刷新所要求的。
3.刷新电路
PC/XT机中刷新逻辑的原理图如图3-22所示。
这是一个以DMA(直接存储器存取)控制方式进行DRAM刷新的例子。
4164DRAM容量为64K*1位,有64K个存储单元,分成4个128*128的存储矩阵,每当RAS=“L”(有效)时,将根据地址线A6~AO的值对每个矩阵中相应的行进行一次刷
新,共刷新4*128个存储单元。要求2ms内对全部存储单元刷新一遍,则每一行刷新的时间间隔为2ms/128=15625us。在PC/XT机中采用15us。
在图3-22中,15us的时间间隔由定时器(采用8253可编程间隔定时器芯片)发出,作为DMA(DMA控制器采用8237芯片)的请求信号DREQO,DMAC向CPU发出HOLD(总线请求信号),经CPU允许(发出总线响应信号HLDA)开始一次刷新操作,送出DACK0(即图3-21中的DACK0BRD)经非门1、与非门2、与门3后产生4组DRAM芯片所需的RAS0~RAS3有效信号,同时;DMAC发出刷新地址A6~AO送到DRAM各组芯片。在RAS有效信号作用下,对指定行(4*128个存储单元)进行刷新。完成一次刷新后,DMA内部将地址自动加1,等待下一次刷新请求。DMA完成一行刷新的时间为4T=840ns。占整个刷新周期15us的1/18。
安徽自考网声明:
1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。
2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:952056566@qq.com