资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,单击此处编辑母版标题样式,*,6.2.3,存储器地址译码,存储器芯片与处理器的连接,存储器芯片有数据、地址、读写控制引脚,处理器总线有数据、地址、读写控制信号,功能上多数可以直接相连,但是,地址信号需要译码,处理器地址总线个数多于存储器地址引脚个数,多个存储器芯片组成一定容量的存储系统,需要利用地址总线控制存储器片选信号,1,1.,地址译码,译码(,Decode,),将某个特定的编码输入翻译为有效输出的过程,存储器译码电路,可编程逻辑器件,PLD,译码器,门电路组合,举例:多输入或门实现译码,64,K8,结构的,SRAM,,,地址引脚,1,6,个,A1,5,A0,,,构成8086系统的16位字长存储器系统2片,一片接高8位,一片接低8位。,808,6,处理器:,20,个地址总线,A19,A0,16,位数据总线,低8位数据总线A0=0访问,高8位数据总线BHE=0访问,2,8086执行不同操作指令时的A0和BHE信号,操作指令,控制信号,使用的数据引脚,BHE,A0,读写偶数地址一个字,0,0,AD15AD0,读写偶数地址一个字节,1,0,AD7AD0,读写奇数地址一个字节,0,1,AD15AD8,读写奇数地址一个字,(需要2个总线周期才能读取一个存放在奇数地址的字数据),0,1,1,0,AD15AD0,第一个总线周期保存低字节数据,AD15AD0,第二个总线周期存放高字节数据,3,简单的门电路译码,4,地址:,A19 A17 A0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,地址空间范围:00000H1FFFFFH,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,5,6,地址:,A19 A17 A0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,地址空间范围:80000H9FFFFFH,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=100,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,7,2.,译码器,3,-,8,译码器:,138,译码器,3,个控制输入引脚:,G1,,,G,2,A,*,和,G2B,*,有些资料上 E3, E2* E1* (我们的教材这样表示),都有效,才能实现译码功能,3,个编码输入引脚:,C,,,B,和,A,8,种编码各对应一个译码输出引脚,C,B,A,000,编码使,Y0*,低有效,其他高电平无效,C,B,A,001,编码使,Y1*,低有效,其他高电平无效,C,B,A,111,编码使,Y7*,低有效,其它高电平无效,E3,8,译码器,74LS138,9,译码器译码,对于存储器访问,M/IO* =1,将该信号接到3-8译码器的G1(E3)引脚,则只有执行存储器访问指令(存储器读或写指令),MOV mem, src,MOV src, mem,时,存储器的地址译码器才有效。,在执行 端口访问指令,IN,OUT,时,M/IO*=0,存储器译码器输出Y7*Y0*全部无效(为1),这样就将存储器地址与I/O端口地址区分开来。,一个例子如下:,10,11,地址:,A19 A17 A0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,地址空间范围:00000H1FFFFFH,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,12,这种将高位地址全部送译码器进行译码的方式全译码方式。,译码方式,全译码全部高位地址进行译码,部分译码部分高位地址进行译码,线选方式直接用高位地址信号做片选信号,13,部分译码电路,例如:上述存储器电路使用24译码器时,A17不参与译码时,14,A17不参与译码,00000H1FFFFH,20000H3FFFFH,15,地址:00000H1FFFFH,在A17=0时,A19 A17 A0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,地址空间范围:00000H1FFFFFH,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,16,地址:20000H3FFFFH,在A17=1时,A19 A17 A0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或001,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,部分译码,一个存储器芯片占据不止一个地址空间,存储器地址空间不连续。,如果A19不参与译码,地址如何变化?,17,A19不参与译码的部分译码电路,00000H1FFFFH,80000H9FFFFH,18,地址:00000H1FFFFH,在A19=0时,A19 A17 A0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,19,地址:80000H9FFFFH,在A19=1时,A19 A17 A0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,只要执行存储器访问指令,且指令给出的地址在该范围类,则(A19)(A18)(A17)=000或100,选中图中的两片存储器,而地址A16A0选中芯片中的具体一个存储单元。,20,译码方式,全译码方式,使用全部微处理器地址总线,片内寻址:低位地址与存储器芯片地址引脚相连,片选寻址:高位地址经译码与存储器芯片片选引脚相连,部分译码方式,只使用部分微处理器地址总线进行译码,没有使用的地址信号对存储器芯片的工作不产生影响,部分译码,地址重复,译码简单,全译码,地址唯一,空间连续,21,线选方式,将存储器芯片没有用到的高位地址信号中的某一根直接作为存储器芯片的片选控制信号。,当该地址信号=0时,选中该存储器芯片。,注意:连接到其他存储器芯片的用于片选信号的高位地址应该都处于高电平(无效片选信号)状态。,22,23,应当注意:,当使用线选方式时,只要用于作为片选信号的地址信号=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地址空间。,24,3. 8086,的,16,位存储结构,对称的两个存储体(,Bank,)所构成,偶存储体,(,A0,0,),对应所有的偶地址单元,(,0,、,2,、,4,、,FFFEH,),接处理器低,8,位数据总线,D7,D0,奇存储体,(,BHE*,0,),对应所有的奇地址单元,(,1,、,3,、,5,、,FFFFH,),接处理器高,8,位数据总线,D15,D8,两个存储器芯片的片选端连接在一起,25,8086,的,16,位存储结构,26,地址对齐,(,Align,),高位地址,A19,A17,111,,片选信号有效,低位地址,A16,A1,0.0,,那么:,A0,0(,地址,E0000H),,,BHE*,0,,访问,16,位数据,A0,0(,地址,E0000H),,,BHE*,1,,访问低,8,位数据,A0,1(,地址,E0001H),,,BHE*,0,,访问高,8,位数据,A0,1,,,BHE*,1,,无效的数据访问组合,8086,存储器按,16,位数据宽度组织,支持,8,位和,16,位数据访问,偶地址开始的,16,位访问可以一次完成,奇地址开始的,16,位访问需要两次操作,地址对齐,:,16,位数据以偶地址开始,27,作业,1. 某个使用8086的微机系统,现需要使用128K*8位的SRAM芯片组成从00000地址开始的512KB存储器系统,要求可以进行字访问也可以字节访问。,(1)需要多少片存储器芯片?,(2)请选择地址译码方式;,(3)画出存储器系统电路原理图。,注:除下图给出的芯片外,所需要的其它逻辑器件可自由选择。,28,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 s,0,(,能够被,s,整除的地址,),29,Pentium,的,64,位存储结构,返回,30,6.2.4,主存空间分配,31,最低,1MB,主存,系统,RAM,区,地址最低端的,640KB,空间,由,DOS,进行管理,显示,RAM,区,128KB,主存空间保留给显示缓冲存储区,显示,RAM,区并没有被完全使用,扩展,ROM,区,I/O,接口电路卡上的,ROM,系统,ROM,区,ROM-BIOS,程序,640K ought to be enough,for everybody, Bill Gates 1981,32,扩展主存和扩充主存,扩展主存,XMS,1MB,后的,RAM,主存空间,只能在保护方式使用,遵循扩展主存使用规范,XMS,驱动程序,HIMEM.SYS,扩充主存,EMS,遵循扩充主存使用规范,EMS,扩充主存不是直接访问的存储空间,体交换技术,不需要保护方式支持,IA-32,支持扩展主存,XMS,,不需扩充主存,EMS,EMM386.EXE,驱动程序,33,高端主存区,HMA,和上位主存块,UMB,高端主存区,HMA,实方式下,地址,A20,开放,从,100000H,到,10FFEFH,之间约,64KB,的存储区域,8088/8086,:地址自动回绕,80286,和,80386,:地址不自动回绕,80486,及以后有,A20M,引脚,A20M,0,,地址自动回绕,A20M,1,,地址不自动回绕,上位主存块,UMB,上位主存区,UMA,中未使用的区域,EMM386.EXE驱动,DOS,应用,34,ROM,复制和影子主存,ROM复制,系统,ROM,区的,BIOS,等程序,8086/8088,在,F0000H,FFFFFH,80286,在,FF0000H,FFFFFFH,IA-32,微处理器在,FFFFFFF0H,FFFFFFFFH,影子主存,用作,ROM-BIOS,的只读的,RAM,区域,启动后,ROM-BIOS,映射到,RAM,因为,ROM,芯片的读写速度比,RAM,芯片慢,35,
展开阅读全文