《第六章 存储器系统(2)译码与8086的存储器系统ppt课件.ppt》由会员分享,可在线阅读,更多相关《第六章 存储器系统(2)译码与8086的存储器系统ppt课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、1,6.2.3 存储器地址译码,存储器芯片与处理器的连接存储器芯片有数据、地址、读写控制引脚处理器总线有数据、地址、读写控制信号功能上多数可以直接相连但是,地址信号需要译码处理器地址总线个数多于存储器地址引脚个数多个存储器芯片组成一定容量的存储系统需要利用地址总线控制存储器片选信号,2,1.地址译码,译码(Decode)将某个特定的编码输入翻译为有效输出的过程存储器译码电路可编程逻辑器件PLD译码器门电路组合举例:多输入或门实现译码64K8结构的SRAM,地址引脚16个A15A0,构成8086系统的16位字长存储器系统2片,一片接高8位,一片接低8位。8086处理器:20个地址总线A19A01
2、6位数据总线低8位数据总线A0=0访问高8位数据总线BHE=0访问,3,8086执行不同操作指令时的A0和BHE信号,4,简单的门电路译码,5,地址:,地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,6,7,地址:,地址空间范围:80000H9FFFFFH只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=100选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,8,2.译码器,3-8译码器:1
3、38译码器3个控制输入引脚:G1,G2A*和G2B*有些资料上 E3,E2*E1*(我们的教材这样表示)都有效,才能实现译码功能3个编码输入引脚:C,B和A8种编码各对应一个译码输出引脚C B A000编码使Y0*低有效,其他高电平无效C B A001编码使Y1*低有效,其他高电平无效C B A111编码使Y7*低有效,其它高电平无效E3,9,译码器74LS138,10,译码器译码,对于存储器访问,M/IO*=1,将该信号接到3-8译码器的G1(E3)引脚,则只有执行存储器访问指令(存储器读或写指令)MOV mem,srcMOV src,mem时,存储器的地址译码器才有效。在执行 端口访问指令
4、INOUT时,M/IO*=0,存储器译码器输出Y7*Y0*全部无效(为1),这样就将存储器地址与I/O端口地址区分开来。一个例子如下:,11,12,地址:,地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,13,这种将高位地址全部送译码器进行译码的方式全译码方式。译码方式全译码全部高位地址进行译码部分译码部分高位地址进行译码线选方式直接用高位地址信号做片选信号,14,部分译码电路,例如:上述存储器电路使用24译码器时,A17不参与译码时,15,A
5、17不参与译码,00000H1FFFFH20000H3FFFFH,16,地址:00000H1FFFFH,在A17=0时,地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,17,地址:20000H3FFFFH,在A17=1时,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或001选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。部分译码,一个存储器芯片占据不止一个地址空间,存储器地址空间
6、不连续。如果A19不参与译码,地址如何变化?,18,A19不参与译码的部分译码电路,00000H1FFFFH80000H9FFFFH,19,地址:00000H1FFFFH,在A19=0时,执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,20,地址:80000H9FFFFH,在A19=1时,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或100选中图中的两片存储器而地址A16A0选中芯片中的具体一个存储单元。,21,译码方式,全译码方式使用全部
7、微处理器地址总线片内寻址:低位地址与存储器芯片地址引脚相连片选寻址:高位地址经译码与存储器芯片片选引脚相连部分译码方式只使用部分微处理器地址总线进行译码没有使用的地址信号对存储器芯片的工作不产生影响,部分译码 地址重复 译码简单,全译码 地址唯一 空间连续,22,线选方式将存储器芯片没有用到的高位地址信号中的某一根直接作为存储器芯片的片选控制信号。当该地址信号=0时,选中该存储器芯片。注意:连接到其他存储器芯片的用于片选信号的高位地址应该都处于高电平(无效片选信号)状态。,23,24,应当注意:当使用线选方式时,只要用于作为片选信号的地址信号=0,就选中存储器,例如上图,A19=0,A18,A
8、17为任意值都可以选中图中的存储器芯片。这样,他的地址空间范围:A18=0,A17=0:00000H1FFFFHA18=0,A17=1:20000H3FFFFHA18=1,A17=0:40000H5FFFFHA18=1,A17=1:60000H7FFFFH在程序设计中,应该避免使A18=0,A 17=0的情况出现原因是线选方式,A18,A17一般用于选择其他的存储器芯片,这样会造成多个芯片同时被选中的错误。故编写程序,应该使用60000H7FFFFH地址空间。,25,3.8086的16位存储结构,对称的两个存储体(Bank)所构成偶存储体(A00)对应所有的偶地址单元(0、2、4、FFFEH)
9、接处理器低8位数据总线D7D0奇存储体(BHE*0)对应所有的奇地址单元(1、3、5、FFFFH)接处理器高8位数据总线D15D8两个存储器芯片的片选端连接在一起,26,8086的16位存储结构,27,地址对齐(Align),高位地址A19A17111,片选信号有效低位地址A16A10.0,那么:A00(地址E0000H),BHE*0,访问16位数据A00(地址E0000H),BHE*1,访问低8位数据A01(地址E0001H),BHE*0,访问高8位数据A01,BHE*1,无效的数据访问组合8086存储器按16位数据宽度组织支持8位和16位数据访问偶地址开始的16位访问可以一次完成奇地址开始
10、的16位访问需要两次操作地址对齐:16位数据以偶地址开始,28,作业,1.某个使用8086的微机系统,现需要使用128K*8位的SRAM芯片组成从00000地址开始的512KB存储器系统,要求可以进行字访问也可以字节访问。(1)需要多少片存储器芯片?(2)请选择地址译码方式;(3)画出存储器系统电路原理图。注:除下图给出的芯片外,所需要的其它逻辑器件可自由选择。,29,4.Pentium的64位存储结构,Pentium采用64位数据总线和32位地址总线没有地址A2,A1和A08个字节允许信号区别8个8位存储体支持64/32/16/8位数据读写多字节数据若地址对齐能够一次完成读写2字节、16位数
11、据是被2整除的地址(偶地址)4字节、32位数据是被4整除的地址(模4地址)8字节、64位数据是被8整除的地址(模8地址),示意图,地址A对齐s字节边界A mod s0(能够被s整除的地址),Pentium的64位存储结构,返回,31,6.2.4 主存空间分配,32,最低1MB主存,系统RAM区地址最低端的640KB空间由DOS进行管理显示RAM区128KB主存空间保留给显示缓冲存储区显示RAM区并没有被完全使用扩展ROM区I/O接口电路卡上的ROM系统ROM区ROM-BIOS程序,640K ought to be enough for everybody Bill Gates 1981,33,
12、扩展主存和扩充主存,扩展主存XMS1MB后的RAM主存空间只能在保护方式使用遵循扩展主存使用规范XMS驱动程序HIMEM.SYS扩充主存EMS遵循扩充主存使用规范EMS扩充主存不是直接访问的存储空间体交换技术,不需要保护方式支持IA-32支持扩展主存XMS,不需扩充主存EMSEMM386.EXE驱动程序,34,高端主存区HMA和上位主存块UMB,高端主存区HMA实方式下,地址A20开放,从100000H到10FFEFH之间约64KB的存储区域8088/8086:地址自动回绕80286和80386:地址不自动回绕80486及以后有A20M引脚A20M0,地址自动回绕A20M1,地址不自动回绕上位主存块UMB上位主存区UMA中未使用的区域,EMM386.EXE驱动DOS应用,35,ROM复制和影子主存,ROM复制系统ROM区的BIOS等程序8086/8088在F0000HFFFFFH80286在FF0000HFFFFFFHIA-32微处理器在FFFFFFF0HFFFFFFFFH影子主存用作ROM-BIOS的只读的RAM区域启动后ROM-BIOS映射到RAM因为ROM芯片的读写速度比RAM芯片慢,