阅读:1767回复:12
pci映射问题
如果系统中存在多块同样的pci卡,每块卡至少要映射32M空间,不知道在win2k下能够映射的内存地址空间是否有上限?
|
|
沙发#
发布于:2004-12-01 14:49
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-12-01 17:08
我们实验室的说他们原来在NT上开发不能将所有的板卡都映射到系统上,因为NT有限制。
不知道他们说得对不对。 |
|
地板#
发布于:2004-12-01 17:59
刚Tom.Cat大侠不是说了,
总和不超过四个G就可以了 你们实验室的说的NT的限制应该就是这种限制吧! (总和不超过四个G) 要不怎么限制的, 你能说说吗? 呵呵 |
|
|
地下室#
发布于:2004-12-02 10:23
一下子映射4G可能不太现实,可以通过某种方法把PCI卡上的空间分成小的空间块,然后分别把这些小的块映射到PC机上
|
|
5楼#
发布于:2004-12-02 13:30
4G?
应该是2G吧,还有两G是留给用户进程的 |
|
6楼#
发布于:2004-12-02 14:28
根据《inside microsoft windows2k》上面地址空间布局,是不是应该只能映射到c0800000-ffffffff这段系统地址空间,下面这个图是s书里面的figure 7-7
[编辑 - 12/2/04 by jiangjh] |
|
7楼#
发布于:2004-12-02 19:10
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2004-12-02 19:12
用户被禁言,该主题自动屏蔽! |
|
9楼#
发布于:2004-12-02 19:14
用户被禁言,该主题自动屏蔽! |
|
10楼#
发布于:2004-12-03 10:38
[quote]4G? 呵呵,搞错了你。那是虚拟内存的分配。PCI总线的地址都是不在这里头。 [/quote] 我搞糊涂了,PCI总线的地址不是被映射到虚拟内存的吗?可是在系统中看一个设备的资源情况时看到的内存范围都是在虚拟内村的范围内? |
|
11楼#
发布于:2004-12-03 14:43
上面我说错了,我又看了点资料,不知道下面的理解对不对,请大家指点
1 在系统启动时,由bios为设备分配内存资源,这个内存地址是物 理地址。系统中总的物理内存总数不能超过4G。 2 驱动程序对设备的操作访问的是虚拟内存,由虚拟内存到物理内 存的映射是由操作系统做的。 如果以上两点是对的话,那么操作系统是把哪一段虚拟内存映射到 设备的物理内存呢? 能够映射的虚拟内存的范围有多大? |
|
12楼#
发布于:2004-12-03 16:43
具体的说,驱动使用的是内核模式虚拟地址,(对应的还有用户模式的虚拟地址)
虚拟地址到物理地址的映射应该是由操作系统完成的, (通过分段机制,与分页机制) 当然并不是所有的虚拟地址都能映射到内存的物理地址, (还有一部分映射到硬盘的交换文件,也有以上两者都不映射的部分) 我觉得每个驱动可用的虚拟地址范围是2G,但具体映射多少的物理内存应该不是固定的值吧, 我的理解啊,可能不对。 抛砖引玉吧。希望各位大侠们发表看法! |
|
|