milkyway的窝

最初想法的诞生地

 

存储器,I/O端口,寄存器

        分析这几个容易混淆的概念.
        引用一段资料: 几乎每一种外设都是通过读写设备上的
寄存器来进行操作的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。CPU对外设IO端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。具体采用哪一种则取决于CPU的体系结构。

  有些体系结构的CPU(如PowerPC、m68k等)通常只实现一个物理地址空间(RAM)。在这种情况下,外设I/O端口的物理地址就被映射到CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。这就是所谓的“内存映射方式”(Memory-mapped)。主要缺点是是存储器空间变小.

  而另外一些体系结构的CPU(如X86)则为外设专门实现了一个单独地地址空间,称为“I/O地址空间”或者“I/O端口空间”。这是一个与CPU的RAM物理地址空间不同的地址空间,所有外设的I/O端口均在这一空间中进行编址。CPU通过设立专门I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元(也即I/O端口)。这就是所谓的“I/O映射方式”(I/O-mapped)。与RAM物理地址空间相比,I/O地址空间通常都比较小,如x86 CPU的I/O空间就只有64KB(0-0xffff)。这是“I/O映射方式”的一个主要缺点。

         在张凡的<微机原理与接口技术>一书中提到的I/O端口的两种编址方式:(1)I/O与存储器统一编址(如单片机);(2)单独编址(X86系统).这和上述的内存映射方式,I/O映射方式分别对应.
        我的理解是:寄存器就是I/O端口;而采用内存映射方式的I/O是存储器的一个子集,采用I/O单独映射方式的I/O是和存储器平级的存储空间.

posted on 2007-01-02 14:28 milkyway 阅读(2852) 评论(1)  编辑 收藏 引用 所属分类: 基础知识

评论

# re: 存储器,I/O端口,寄存器 2007-01-24 15:49 相思酸中有甜

1.寄存器和一些控制逻辑称为I/O端口
2.ARM架构的系统采用内存映射方式对I/O编址  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

统计

公告

随笔皆原创,文章乃转载. 欢迎留言!

常用链接

留言簿(37)

随笔分类(104)

随笔档案(101)

文章分类(51)

文章档案(53)

wince牛人

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜