来认识寄存器,内存,IO空间,IO端口,IO内存
2010-10-17 00:39
267 查看
整天说内存,寄存器,端口,他们有什么联系,有什么不同之处,你了解他们么?
第一、寄存器和内存的区别
寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)
读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零
第二、IO空间和内存空间
并不是所有的体系结构都有IO空间这个定义的,我所了解的只有X86体系上有,而ARM体系结构就没有这种区别,
在X86上,IO空间和内存是独立的,他们各自有各自的总线,并且IO空间一般是64K,即16位,内存空间为4G
可见他们的差别是很大
第三、IO 端口和IO内存
在有了IO空间的概念后,就有IO端口和IO内存
当一个寄存器或内存位于IO空间时候,称之为IO端口
当一个寄存器或内存位于内存空间时候,称之为IO内存
这种映射是通过OS的MMU来把虚拟地址映射为物理地址的
可能单纯的这样解释会不明白,看下面这个图或许会好些
当你还在疑惑为什么指针可以想减而不可以相加的时候,了解了页表映射会或许就明白了!
在Linux驱动程序开发中,关于二者的不同,可以参看下这篇文章
http://www.360doc.com/content/10/1011/07/1317564_60018145.shtml
第一、寄存器和内存的区别
寄存器和内存都是可以用来读写的,但寄存器的操作时有副作用,称之为(side effect 边际效果)
读取一个寄存器可能导致寄存器中的内容发生变化,比如在一些设备的中断状态寄存器中,读取了寄存器后会自动清零
第二、IO空间和内存空间
并不是所有的体系结构都有IO空间这个定义的,我所了解的只有X86体系上有,而ARM体系结构就没有这种区别,
在X86上,IO空间和内存是独立的,他们各自有各自的总线,并且IO空间一般是64K,即16位,内存空间为4G
可见他们的差别是很大
第三、IO 端口和IO内存
在有了IO空间的概念后,就有IO端口和IO内存
当一个寄存器或内存位于IO空间时候,称之为IO端口
当一个寄存器或内存位于内存空间时候,称之为IO内存
这种映射是通过OS的MMU来把虚拟地址映射为物理地址的
可能单纯的这样解释会不明白,看下面这个图或许会好些
当你还在疑惑为什么指针可以想减而不可以相加的时候,了解了页表映射会或许就明白了!
在Linux驱动程序开发中,关于二者的不同,可以参看下这篇文章
http://www.360doc.com/content/10/1011/07/1317564_60018145.shtml
相关文章推荐
- 来认识寄存器,内存,IO空间,IO端口,IO内存
- 来认识寄存器,内存,IO空间,IO端口,IO内存
- 认识寄存器,内存,IO空间,IO端口,IO内存
- 来认识寄存器,内存,IO空间,IO端口,IO内存
- [转载]来认识寄存器,内存,IO空间,IO端口,IO内存
- 来认识寄存器,内存,IO空间,IO端口,IO内存
- IO端口、IO内存、IO空间、内存空间的含义和联系
- 区分:内存空间、物理内存、IO空间、IO端口、IO内存
- IO端口、IO内存、IO空间、内存空间的含义和联系
- IO端口、IO内存、IO空间、内存空间的含义和联系
- linux下对IO端口和IO内存的访问
- IO端口和IO内存
- IO端口和IO内存
- IO端口和IO内存
- Linux系统对IO内存和IO端口的管理
- 自动检查磁盘空间,内存和IO使用情况脚本
- IO端口和IO内存的区别及分别使用的函数接口
- 内存映射-IO空间-ioremap-iounremap
- IO / Linux系统对IO端口和IO内存的管理
- io端口和io内存