地址寄存器

地址寄存器

用于存储CPU访问地址
地址寄存器(Address Register,AR)是用来保存当前CPU所访问的内存单元的地址。[1]由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。地址寄存器可用LPM库中的元件lpm_latch锁存器来完成。地址寄存器的数据宽度应当与程序计数器的数据宽度一致。总线接口单元(Bus Interface Unit)通过6字节预存(prefetch)的贮列(queue)将指令送给运行单元(Execution Unit),所以取指令和运行是同步的-一种流水线的原始形式(8086指令长度变化从1到6字节)。
    中文名:地址寄存器 外文名:Address Register 别名: 缩写:AR 定义:保存当前CPU所访问内存单元地址

结构

地址寄存器采用单纯的寄存器结构。在对主存或I/O端口进行访问时,地址寄存器存放当前访问的地址,数据缓冲器实现数据的缓冲。CPU通过修改地址寄存器中的值,就可访问不同的存储器单元及不同的I/O端口。

地址寄存器可用LPM库中的元件lpm_latch锁存器来完成。图是地址寄存器的结构图。地址寄存器的数据宽度应当与程序计数器的数据宽度一致。data[7…0]是地址寄存器的数据输入端,q[7…0]是地址寄存器的数据输出端,gate是地址锁存器的控制端。gate的作用是当锁存控制脉冲到来时,高电平时数据进入锁存器,低电平时锁存数据,保持输出数据稳定不变。

086地址寄存器

8086有8个16比特的寄存器,包括栈寄存器SP与BP,但不包括指令寄存器IP、控制寄存器FLAGS以及四个段寄存器。AX,BX,CX,DX,这四个寄存器可以按照字节访问;但BP,SI,DI,SP,这四个地址寄存器只能按照16位宽访问。

8086以8080和8085(它与8080有汇编语言上的源代码兼容性)的设计为基础,拥有类似的暂存器集合,但是扩充为16位。总线接口单元(Bus Interface Unit)通过6字节预存(prefetch)的贮列(queue)将指令送给运行单元(Execution Unit),所以取指令和运行是同步的-一种流水线的原始形式(8086指令长度变化从1到6字节)。

8086有四个完全一样的16位暂存器,但也能够当作八个8位暂存器来访问;以及四个16位变址寄存器(包含堆栈索引)。数据暂存器通常由指令隐含地使用,针对暂存值需要复杂的暂存器配置。它提供64K8位的输出输入(或32K16位)端口,以及固定的矢量中断。大部分的指令只能够访问一个存储器地址,所以其中一个运算符必须是一个暂存器。运算结果会存储在运算符中的一个。

64-bit地址寄存器可存储2个地址,存储器的基本单位是Byte,换言之最大支持16EiB存储器,1EiB则相等于1024GiB。但是,现在的64-bitCPU并没有64位地址总线。

相关词条

相关搜索

其它词条