1、16.2.3 6.2.3 存储器地址译码存储器地址译码存储器芯片与处理器的连接存储器芯片与处理器的连接存储器芯片有数据、地址、读写控制引脚存储器芯片有数据、地址、读写控制引脚处理器总线有数据、地址、读写控制信号处理器总线有数据、地址、读写控制信号功能上多数可以直接相连功能上多数可以直接相连但是,地址信号需要译码但是,地址信号需要译码处理器地址总线个数多于存储器地址引脚个数处理器地址总线个数多于存储器地址引脚个数多个存储器芯片组成一定容量的存储系统多个存储器芯片组成一定容量的存储系统需要利用地址总线控制存储器片选信号需要利用地址总线控制存储器片选信号21.1.地址译码地址译码译码(译码(Deco
2、deDecode)将某个特定的编码输入翻译为有效输出的过程将某个特定的编码输入翻译为有效输出的过程存储器译码电路存储器译码电路可编程逻辑器件可编程逻辑器件PLDPLD译码器译码器门电路组合门电路组合举例:多输入或门实现译码举例:多输入或门实现译码6464K K8 8结构的结构的SRAMSRAM,地址引脚地址引脚1 16 6个个A1A15 5A0A0,构成构成80868086系统的系统的1616位字长存储器系统位字长存储器系统22片,一片接高片,一片接高8 8位,一片接低位,一片接低8 8位。位。8088086 6处理器:处理器:2020个地址总线个地址总线A19A19A0A01616位数据总线
3、位数据总线l低低8 8位数据总线位数据总线A0=0A0=0访问访问l高高8 8位数据总线位数据总线BHE=0BHE=0访问访问380868086执行不同操作指令时的执行不同操作指令时的A0A0和和BHEBHE信号信号4简单的门电路译码简单的门电路译码5地址:地址:地址空间范围:地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)()(A17)=000选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。67
4、地址:地址:地址空间范围:地址空间范围:80000H9FFFFFH只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)()(A17)=100选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。82.2.译码器译码器3 3-8 8译码器:译码器:138138译码器译码器3 3个控制输入引脚:个控制输入引脚:G1 G1,G G2 2A A*和和G2BG2B*有些资料上有些资料上 E3,E2 E3,E2*E1 E1*(我们的教材这样表示)我们的教材这
5、样表示)都有效,才能实现译码功能都有效,才能实现译码功能3 3个编码输入引脚:个编码输入引脚:C C,B B和和A A8 8种编码各对应一个译码输出引脚种编码各对应一个译码输出引脚C C B B A A000000编码使编码使Y0Y0*低有效,其他高电平无效低有效,其他高电平无效C C B B A A001001编码使编码使Y1Y1*低有效,其他高电平无效低有效,其他高电平无效C C B B A A111111编码使编码使Y7Y7*低有效,其它高电平无效低有效,其它高电平无效E3E39译码器译码器74LS13874LS13810译码器译码译码器译码对于存储器访问,对于存储器访问,M/IOM/I
6、O*=1=1,将该信号接到,将该信号接到3-83-8译码器的译码器的G1G1(E3E3)引脚,则只有执行存储器访问指令(存储器读或写指令)引脚,则只有执行存储器访问指令(存储器读或写指令)MOV mem,srcMOV mem,srcMOV src,memMOV src,mem时,存储器的地址译码器才有效。时,存储器的地址译码器才有效。在执行在执行 端口访问指令端口访问指令ININOUTOUT时,时,M/IOM/IO*=0=0,存储器译码器输出,存储器译码器输出Y7Y7*Y0Y0*全部无效(为全部无效(为1 1),),这样就将存储器地址与这样就将存储器地址与I/OI/O端口地址区分开来。端口地址
7、区分开来。一个例子如下:一个例子如下:1112地址:地址:地址空间范围:地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)()(A17)=000选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。13这种将高位地址全部送译码器进行译码的方式这种将高位地址全部送译码器进行译码的方式全译码方式。全译码方式。译码方式译码方式全译码全译码全部高位地址进行译码全部高位地址进行译码部分译码部分译码部分高位地址进行译
8、码部分高位地址进行译码线选方式线选方式直接用高位地址信号做片选信号直接用高位地址信号做片选信号14部分译码电路部分译码电路例如:上述存储器电路使用例如:上述存储器电路使用2424译码器时,译码器时,A17A17不参与不参与译码时译码时15A17A17不参与译码不参与译码00000H1FFFFH20000H3FFFFH16地址:地址:00000H1FFFFH00000H1FFFFH在在A17=0A17=0时时地址空间范围:地址空间范围:00000H1FFFFFH只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)(
9、)(A17)=000选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。17地址:地址:20000H3FFFFH20000H3FFFFH在在A17=1A17=1时时只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)()(A17)=000或或001选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。部分译码,一个存储器芯片占据不止一个地址空间,部分译码,一个存储器芯片占据不止
10、一个地址空间,存储器地址空间不连续。存储器地址空间不连续。如果A19不参与译码,地址如何变化?18A19A19不参与译码的部分译码电路不参与译码的部分译码电路00000H1FFFFH80000H9FFFFH19地址:地址:00000H1FFFFH00000H1FFFFH在在A19=0A19=0时时执行存储器访问指令,且指令给出的地址在该范围类,执行存储器访问指令,且指令给出的地址在该范围类,则(则(A19)()(A18)()(A17)=000选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。20地址:地址:80000H9F
11、FFFH80000H9FFFFH在在A19=1A19=1时时只要执行存储器访问指令,且指令给出的地址在该范只要执行存储器访问指令,且指令给出的地址在该范围类,则(围类,则(A19)()(A18)()(A17)=000或或100选中图中的两片存储器选中图中的两片存储器而地址而地址A16A0选中芯片中的具体一个存储单元。选中芯片中的具体一个存储单元。21译码方式译码方式全译码方式全译码方式使用全部微处理器地址总线使用全部微处理器地址总线片内寻址:低位地址与存储器片内寻址:低位地址与存储器芯片地址引脚相连芯片地址引脚相连片选寻址:高位地址经译码与片选寻址:高位地址经译码与存储器芯片片选引脚相连存储器
12、芯片片选引脚相连部分译码方式部分译码方式只使用部分微处理器地址总线只使用部分微处理器地址总线进行译码进行译码没有使用的地址信号对存储器没有使用的地址信号对存储器芯片的工作不产生影响芯片的工作不产生影响部分译码部分译码 地址重复地址重复 译码简单译码简单全译码全译码 地址唯一地址唯一 空间连续空间连续22线选方式线选方式将存储器芯片没有用到的高位地址信号中的某一根直接作为将存储器芯片没有用到的高位地址信号中的某一根直接作为存储器芯片的片选控制信号。存储器芯片的片选控制信号。当该地址信号当该地址信号=0=0时,选中该存储器芯片。时,选中该存储器芯片。注意:连接到其他存储器芯片的用于片选信号的高位地
13、址应注意:连接到其他存储器芯片的用于片选信号的高位地址应该都处于高电平(无效片选信号)状态。该都处于高电平(无效片选信号)状态。2324应当注意:应当注意:当使用线选方式时,只要用于作为片选信号的地址信号当使用线选方式时,只要用于作为片选信号的地址信号=0=0,就,就选中存储器,选中存储器,例如上图,例如上图,A19=0A19=0,A18 A18,A17A17为任意值都可以选中图中的存为任意值都可以选中图中的存储器芯片。这样,他的地址空间范围:储器芯片。这样,他的地址空间范围:A18=0A18=0,A17=0A17=0:00000H1FFFFH 00000H1FFFFHA18=0A18=0,A
14、17=1A17=1:20000H3FFFFH20000H3FFFFHA18=1A18=1,A17=0A17=0:40000H5FFFFH40000H5FFFFHA18=1A18=1,A17=1A17=1:60000H7FFFFH60000H7FFFFH在程序设计中,应该避免使在程序设计中,应该避免使A18=0,A 17=0A18=0,A 17=0的情况出现的情况出现原原因是线选方式,因是线选方式,A18A18,A17A17一般用于选择其他的存储器芯片,一般用于选择其他的存储器芯片,这样会造成多个芯片同时被选中的错误。这样会造成多个芯片同时被选中的错误。故编写程序,应该使用故编写程序,应该使用6
15、0000H7FFFFH60000H7FFFFH地址空间。地址空间。253.80863.8086的的1616位存储结构位存储结构对称的两个存储体(对称的两个存储体(BankBank)所构成)所构成偶存储体偶存储体(A0A00 0)对应所有的偶地址单元对应所有的偶地址单元(0 0、2 2、4 4、FFFEHFFFEH)接处理器低接处理器低8 8位数据总线位数据总线D7D7D0D0奇存储体奇存储体(BHEBHE*0 0)对应所有的奇地址单元对应所有的奇地址单元(1 1、3 3、5 5、FFFFHFFFFH)接处理器高接处理器高8 8位数据总线位数据总线D15D15D8D8两个存储器芯片的片选端连接在
16、一起两个存储器芯片的片选端连接在一起2680868086的的1616位存储结构位存储结构27地址对齐(地址对齐(AlignAlign)高位地址高位地址A19A19A17A17111111,片选信号有效,片选信号有效低位地址低位地址A16A16A1A10.00.0,那么:,那么:A0A00(0(地址地址E0000H)E0000H),BHEBHE*0 0,访问,访问1616位数据位数据A0A00(0(地址地址E0000H)E0000H),BHEBHE*1 1,访问低,访问低8 8位数据位数据A0A01(1(地址地址E0001H)E0001H),BHEBHE*0 0,访问高,访问高8 8位数据位数据
17、A0A01 1,BHEBHE*1 1,无效的数据访问组合,无效的数据访问组合80868086存储器按存储器按1616位数据宽度组织位数据宽度组织支持支持8 8位和位和1616位数据访问位数据访问偶地址开始的偶地址开始的1616位访问可以一次完成位访问可以一次完成奇地址开始的奇地址开始的1616位访问需要两次操作位访问需要两次操作地址对齐地址对齐:1616位数据以偶地址开始位数据以偶地址开始28作业1.某个使用8086的微机系统,现需要使用128K*8位的SRAM芯片组成从00000地址开始的512KB存储器系统,要求可以进行字访问也可以字节访问。(1)需要多少片存储器芯片?(2)请选择地址译码
18、方式;(3)画出存储器系统电路原理图。注:除下图给出的芯片外,所需要的其它逻辑器件可自由选择。294.Pentium4.Pentium的的6464位存储结构位存储结构PentiumPentium采用采用6464位数据总线和位数据总线和3232位地址总线位地址总线没有地址没有地址A2A2,A1A1和和A0A08 8个字节允许信号区别个字节允许信号区别8 8个个8 8位存储体位存储体支持支持64/32/16/864/32/16/8位数据读写位数据读写多字节数据若地址对齐能够一次完成读写多字节数据若地址对齐能够一次完成读写2 2字节、字节、1616位数据是被位数据是被2 2整除的地址(偶地址)整除的
19、地址(偶地址)4 4字节、字节、3232位数据是被位数据是被4 4整除的地址(模整除的地址(模4 4地址)地址)8 8字节、字节、6464位数据是被位数据是被8 8整除的地址(模整除的地址(模8 8地址)地址)示意图示意图30PentiumPentium的的6464位存储结构位存储结构返回返回31 6.2.4 6.2.4 主存空间分配主存空间分配32最低最低1MB1MB主存主存系统系统RAMRAM区区地址最低端的地址最低端的640KB640KB空间空间由由DOSDOS进行管理进行管理显示显示RAMRAM区区128KB128KB主存空间保留给显示缓冲存储区主存空间保留给显示缓冲存储区显示显示RA
20、MRAM区并没有被完全使用区并没有被完全使用扩展扩展ROMROM区区I/OI/O接口电路卡上的接口电路卡上的ROMROM系统系统ROMROM区区ROM-BIOSROM-BIOS程序程序640K ought to be enough for everybody Bill Gates 198133扩展主存和扩充主存扩展主存和扩充主存扩展主存扩展主存XMSXMS1MB1MB后的后的RAMRAM主存空间主存空间只能在保护方式使用只能在保护方式使用遵循扩展主存使用规范遵循扩展主存使用规范XMSXMS驱动程序驱动程序HIMEM.SYSHIMEM.SYS扩充主存扩充主存EMSEMS遵循扩充主存使用规范遵循扩
21、充主存使用规范EMSEMS扩充主存不是直接访问的存储空间扩充主存不是直接访问的存储空间体交换技术,不需要保护方式支持体交换技术,不需要保护方式支持IA-32IA-32支持扩展主存支持扩展主存XMSXMS,不需扩充主存,不需扩充主存EMSEMSEMM386.EXEEMM386.EXE驱动程序驱动程序34高端主存区高端主存区HMAHMA和上位主存块和上位主存块UMBUMB高端主存区高端主存区HMAHMA实方式下,地址实方式下,地址A20A20开放,从开放,从100000H100000H到到10FFEFH10FFEFH之之间约间约64KB64KB的存储区域的存储区域8088/80868088/808
22、6:地址自动回绕:地址自动回绕8028680286和和8038680386:地址不自动回绕:地址不自动回绕8048680486及以后有及以后有A20MA20M引脚引脚nA20MA20M0 0,地址自动回绕,地址自动回绕nA20MA20M1 1,地址不自动回绕,地址不自动回绕上位主存块上位主存块UMBUMB上位主存区上位主存区UMAUMA中未使用的区域中未使用的区域35ROMROM复制和影子主存复制和影子主存ROMROM复制复制系统系统ROMROM区的区的BIOSBIOS等程序等程序8086/80888086/8088在在F0000HF0000HFFFFFHFFFFFH8028680286在在FF0000HFF0000HFFFFFFHFFFFFFHIA-32IA-32微处理器在微处理器在FFFFFFF0HFFFFFFF0HFFFFFFFFHFFFFFFFFH影子主存影子主存用作用作ROM-BIOSROM-BIOS的只读的的只读的RAMRAM区域区域启动后启动后ROM-BIOSROM-BIOS映射到映射到RAMRAM因为因为ROMROM芯片的读写速度比芯片的读写速度比RAMRAM芯片慢芯片慢