统一编址和独立编址

来源:互联网 发布:编程资源网itresource 编辑:程序博客网 时间:2024/04/28 03:43
编址方式
1)外设都是通过读写设备上的寄存器来进行的,外设寄存器也称为“I/O端口”,而IO端口有两种编址方式:独立编 址和统一编制。

        统一编址:外设接口中的IO寄存器(即IO端口)与主存单元一样看待,每个端口占用一个存储单元的地址,将主存的一部分划出来用作IO地址空间,如,在 PDP-11中,把最高的4K主存作为IO设备寄存器地址。端口占用了存储器的地址空间,使存储量容量减小。
统一编址也称为“I/O内存”方式,外设寄存器位于“内存空间”(很多外设有自己的内存、缓冲区,外设的寄存器和内存统称“I/O空间”)。
如,Samsung的S3C2440,是32位ARM处理器,它的4GB地址空间被外设、RAM等瓜分:
0x8000 1000    LED 8*8点阵的地址
0x4800 0000 ~ 0x6000 0000  SFR(特殊暂存器)地址空间
0x3800 1002   键盘地址
0x3000 0000 ~ 0x3400 0000  SDRAM空间 
0x2000 0020 ~ 0x2000 002e  IDE
0x1900 0300   CS8900

        注:ARM,POWERPC,MIPS都是统一编址的体系结构;

        独立编址(单独编址):IO地址与存储地址分开独立编址,I/0端口地址不占用存储空间的地址范围,这样,在系统中就存在了另一种与存储地址无关的IO地 址,CPU也必须具有专用与输入输出操作的IO指令(IN、OUT等)和控制逻辑。独立编址下,地址总线上过来一个地址,设备不知道是给IO端口的、还是 给存储器的,于是处理器通过MEMR/MEMW和IOR/IOW两组控制信号来实现对I/O端口和存储器的不同寻址。如,intel 80x86就采用单独编址,CPU内存和I/O是一起(‘’一起“ 应该用“各自”这个词好一点)编址的,就是说内存一部分的地址和I/O地址是重叠的。
独立编址也称为“I/O端口”方式,外设寄存器位于“I/O(地址)空间”。

        注:x86是独立编址的体系结构,特点是它有访问IO空间的指令;

 

 

存储器统一编址,即从存储空间中划出一部分地址给I/O端口。CPU访问端口和访问存储器的指令在形式上完全相同,只能从地址范围来区分两种操作。

优点

对端口操作的指令类型多,功能全,不仅能对端口进行数据传送,还可以对端口内容进行算术逻辑运算和移位运算;其次是有较大的编址空间;

缺点

端口占用存储器的地址空间,使存储器的可用地址空间变小;端口指令的长度增加,执行时间变长;由于访问I/O与访问内存的指令一样,在程序中不易分清楚是访问I/O端口还是访问内存,使得阅读困难;端口地址译码器较复杂
 
I/O 接口独立编址:
这种编址方式是将存储器地址空间和I/O 接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O 操作。

I/O 接口独立编址

 

优点

是内存地址空间与I/O 接口地址空间分开,互不影响,译码电路较简单,并设有专门的I/O 指令,所以编程序易于区分,且执行时间短,快速性好。

其缺点

是只用I/O 指令访问I/O 端口,功能有限且要采用专用I/O周期和专用I/O 控制线,使微处理器复杂化

0 0