第六章-存储器系统(2)译码与8086的存储器系统幻灯片.ppt
34页1,6.2.3 存储器地址译码,存储器芯片与处理器的连接 存储器芯片有数据、地址、读写控制引脚 处理器总线有数据、地址、读写控制信号 功能上多数可以直接相连 但是,地址信号需要译码 处理器地址总线个数多于存储器地址引脚个数 多个存储器芯片组成一定容量的存储系统 需要利用地址总线控制存储器片选信号,2,1. 地址译码,译码(Decode) 将某个特定的编码输入翻译为有效输出的过程 存储器译码电路 可编程逻辑器件PLD 译码器 门电路组合 举例:多输入或门实现译码 64K8结构的SRAM,地址引脚16个A15A0,构成8086系统的16位字长存储器系统2片,一片接高8位,一片接低8位 8086处理器: 20个地址总线A19A0 16位数据总线 低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译码器:138译码器 3个控制输入引脚: G1,G2A*和G2B* 有些资料上 E3, E2* E1* (我们的教材这样表示) 都有效,才能实现译码功能 3个编码输入引脚:C,B和A 8种编码各对应一个译码输出引脚 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, src MOV src, mem 时,存储器的地址译码器才有效 在执行 端口访问指令IN OUT 时,M/IO*=0,存储器译码器输出Y7*Y0*全部无效(为1),这样就将存储器地址与I/O端口地址区分开来 一个例子如下:,11,,12,地址:,,地址空间范围:00000H1FFFFFH 只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000 选中图中的两片存储器 而地址A16A0选中芯片中的具体一个存储单元。
13,,这种将高位地址全部送译码器进行译码的方式全译码方式 译码方式 全译码全部高位地址进行译码 部分译码部分高位地址进行译码 线选方式直接用高位地址信号做片选信号,14,部分译码电路,例如:上述存储器电路使用24译码器时,A17不参与译码时,15,A17不参与译码,00000H1FFFFH 20000H3FFFFH,16,地址:00000H1FFFFH,在A17=0时,地址空间范围:00000H1FFFFFH 只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000 选中图中的两片存储器 而地址A16A0选中芯片中的具体一个存储单元17,地址:20000H3FFFFH,在A17=1时,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或001 选中图中的两片存储器 而地址A16A0选中芯片中的具体一个存储单元 部分译码,一个存储器芯片占据不止一个地址空间,存储器地址空间不连续 如果A19不参与译码,地址如何变化?,18,A19不参与译码的部分译码电路,00000H1FFFFH 80000H9FFFFH,19,地址:00000H1FFFFH,在A19=0时,执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000 选中图中的两片存储器 而地址A16A0选中芯片中的具体一个存储单元。
20,地址:80000H9FFFFH,在A19=1时,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或100 选中图中的两片存储器 而地址A16A0选中芯片中的具体一个存储单元21,译码方式,全译码方式 使用全部微处理器地址总线 片内寻址:低位地址与存储器芯片地址引脚相连 片选寻址:高位地址经译码与存储器芯片片选引脚相连 部分译码方式 只使用部分微处理器地址总线进行译码 没有使用的地址信号对存储器芯片的工作不产生影响,部分译码 地址重复 译码简单,全译码 地址唯一 空间连续,22,,线选方式 将存储器芯片没有用到的高位地址信号中的某一根直接作为存储器芯片的片选控制信号 当该地址信号=0时,选中该存储器芯片 注意:连接到其他存储器芯片的用于片选信号的高位地址应该都处于高电平(无效片选信号)状态23,,24,,应当注意: 当使用线选方式时,只要用于作为片选信号的地址信号=0,就选中存储器, 例如上图,A19=0, A18,A17为任意值都可以选中图中的存储器芯片这样,他的地址空间范围: A18=0,A17=0: 00000H1FFFFH A18=0,A17=1:20000H3FFFFH A18=1,A17=0:40000H5FFFFH A18=1,A17=1:60000H7FFFFH 在程序设计中,应该避免使A18 =0,A 17=0的情况出现原因是线选方式,A18,A17一般用于选择其他的存储器芯片,这样会造成多个芯片同时被选中的错误。
故编写程序,应该使用60000H7FFFFH地址空间25,3. 8086的16位存储结构,对称的两个存储体(Bank)所构成 偶存储体(A00) 对应所有的偶地址单元 (0、2、4、FFFEH) 接处理器低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位访问可以一次完成 奇地址开始的16位访问需要两次操作 地址对齐:16位数据以偶地址开始,28,作业,1. 某个使用8086的微机系统,现需要使用128K*8位的SRAM芯片组成从00000地址开始的512KB存储器系统,要求可以进行字访问也可以字节访问。
(1)需要多少片存储器芯片? (2)请选择地址译码方式; (3)画出存储器系统电路原理图 注:除下图给出的芯片外,所需要的其它逻辑器件可自由选择29,4. Pentium的64位存储结构,Pentium采用64位数据总线和32位地址总线 没有地址A2,A1和A0 8个字节允许信号区别8个8位存储体 支持64/32/16/8位数据读写 多字节数据若地址对齐能够一次完成读写 2字节、16位数据是被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,扩展主存和扩充主存,扩展主存XMS 1MB后的RAM主存空间 只能在保护方式使用 遵循扩展主存使用规范XMS 驱动程序HIMEM.SYS 扩充主存EMS 遵循扩充主存使用规范EMS 扩充主存不是直接访问的存储空间 体交换技术,不需要保护方式支持 IA-32支持扩展主存XMS,不需扩充主存EMS EMM386.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在F0000HFFFFFH 80286在FF0000HFFFFFFH IA-32微处理器在FFFFFFF0HFFFFFFFFH 影子主存 用作ROM-BIOS的只读的RAM区域 启动后ROM-BIOS映射到RAM 因为ROM芯片的读写速度比RAM芯片慢,。





