存储器寻址的问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“存储器可以按字节寻址,也可按字寻址。”这种说法是正确的。

有些型号的计算机是按字节寻址(按字节编址,按字节访问)的,硬件实现比较简单,有多少位的地址,系统就有多少位的地址总线,CPU就有多少位的地址引脚。按字节寻址数据传输能力小(一次一个字节)。

有些型号的计算机是按字来寻址(按字编址,按字访问)的,硬件实现也比较简单。一个字为若干字节,按字单元编址,地址位数少,同时按字单元访问,数据位数(数据线位数)多,数据传输能力大。

也有些型号的计算机即可按字节寻址,又可按字寻址(按字节编址,按字节或字访问),硬件实现较复杂。我们现在所用的微机就属这一类型。

在你以下所举例子中:

例如:一个1M*32位(4MB)的存储器,可以得到,该存储器有2^20个字存储单元,数据线宽度为32,地址线宽度为20。当按字寻址时,需要20位的地址来表示一个地址编号;当按字节寻址时,则需要22位的地址来表示一个地址编号。而地址线只有20位,如果按字节寻址的话,貌似不够。

如果用20位的地址按字节寻址4MB的内存,肯定是不够的。若该存储器只有20位地址线既能按字寻址,又能按字节寻址,则必有控制对一个字内的四个字节的单独寻址的信号线。

下以微机系统为例加以说明。

在8086CPU中,字长为16位(2字节),CPU有20位的地址引脚(A19—A16,AD15—AD0),16位数据引脚(AD15—AD0,注意8086CPU的数据引脚和低16位地址引脚是共有的,采用分时复用的办法分别传送地址和数据)。可以按字节或字访问1MB的的内存单元。另外CPU 还有一个BHE引脚,它与地址引脚A0一块决定对内存的访问。

BHE A0内存访问状态

00偶地址访问内存字单元,16位数据通过16位数据引脚(AD15—AD0)传送

01奇地址访问内存字节单元,8位数据通过高8位数据引脚(AD15—AD8)传送10偶地址访问内存字节单元,8位数据通过低8位数据引脚(AD7—AD0)传送

11无操作

在80286CPU中,字长也为16位,CPU有24位地址引脚(A23—A0),16位的数据引脚(D15—D0),地址引脚和数据引脚分离,可以按字节或字访问16MB的内存。CPU也设有

一个BHE引脚,它与地址引脚A0一块决定对内存的访问,实现方法与8086相同。

在80386CPU中,字长增加到了32位(4字节),CPU有30位地址引脚(A31—A2,而没有A1和A0噢),32位的数据引脚(D31—D0),可以按字节(8位)、半字(16位)或字(32位)访问最多为4GB的内存。这里就出现了问题,怎样用30位地址字节访问4GB的内存呢?解决办法是80386CPU又设置了BE3—BE0四个引脚,称为是字节允许引脚(低电平有效),它们和30位的地址引脚一块儿决定对内存的访问方式(按字节、半字、字访问)。因此80386CPU由A31—A2和BE3—BE0共同决定了对4GB内存访问的32位地址。

相关文档
最新文档