阅读:1982回复:7
为什么在windows中会有内存空间和IO空间之区别,既然都是做读写寄存器的操作何不统一成一种?
rt
|
|
沙发#
发布于:2005-05-12 16:07
这跟CPU架构有关
x86的是内存与I/O独立编址的,有I/O读写指令 而有些内存与I/O是一起编址的,只有内存读写指令 |
|
|
板凳#
发布于:2005-05-12 17:09
这跟CPU架构有关 对,和WINDOWS无关...... |
|
|
地板#
发布于:2005-05-12 19:33
楼上的两位大侠,
我有几点不明白 1. 为什么要出现两套系统? 2. 有些寄存作用两种操作都可以吧? 3. 这种映射关系在硬件上是如何实现的,讲个大概过程吧 我觉得奇怪为什么系统就知道该把它们映射到哪一个空间呢? |
|
地下室#
发布于:2005-05-13 09:00
这种映射关系在硬件上是如何实现的,讲个大概过程吧 我觉得这是主板的问题吧 |
|
|
5楼#
发布于:2005-05-13 09:35
1. 为什么要出现两套系统?
因为本身他们就不同,I/O对应外设寄存器,内存对应RAM 2. 有些寄存作用两种操作都可以吧? 这句话看不懂,不知道你要问什么 3. 这种映射关系在硬件上是如何实现的,讲个大概过程吧 I/O与访存分开的,不用说吧 联合编址的是指定一段内存空间作为I/O映射空间的,不是随便找哪里就可以的,类似X86的MMU部件虚拟地址到物理地址的转换 我觉得奇怪为什么系统就知道该把它们映射到哪一个空间呢? 系统看CPU是什么架构的,然后装入不同的HAL对付它 |
|
|
6楼#
发布于:2005-05-13 09:58
To bmyyyud:
有些问题不解: 1. \"因为本身他们就不同,I/O对应外设寄存器,内存对应RAM\" 我看过一个外设PCI卡的驱动,它的寄存器被Mmeory mapped到内存空间,这不是和你说的矛盾么? 2.我说的两种操作是指: 对同一个外设可以同时把的寄存器映射的两种空间, 即可以用 Read/Write_Reigiser_XXX 或 用 Read/Write_Port_XXX 可能存在这种情况么? 3.看了你的解答,我感觉内存这个设备有一套访问方式[内存访问方式], 其它的设备有一套访问方式[端口访问方式]. 但是这里有一个矛盾,系统也可以把我的PCI卡映射到内存空间啊? 按你说的应该只能用端口方式访问这个PCI外设 4.关于资源的分配和映射过程,你能描述的再详细些么? 例如设备被映射到哪个空间? 是什么让系统决定为这个设备分配多大的地址空间. |
|
7楼#
发布于:2005-05-13 10:20
To bmyyyud: |
|
|