PCI总线地址空间与系统地址空间的关系
来源:互联网 发布:js attr prop 编辑:程序博客网 时间:2024/05/21 09:11
如果处理器具有32位的地址总线,其理论可寻址空间为2的32次方=4GB。但这并不意味着内存就可以4GB大小,其实XP系统最大内存大约为2GB,这与CPU访问系统中其它设备的存储器方式有关(比如CPU访问PCI总线上的存储器)。
计算机系统中在不同的物理位置上存在着不同设备,不同的设备又各自具有存储器,那么CPU如何访问这些存储器呢?CPU把系统中各个设备的存储空间映射到一个统一的存储空间上,称为系统存储空间共4GB,这样CPU就可以访问到所有的存储器。比如PCI存储器映射到从0xFFF80000开始的地址空间,显卡映射到0XFFF00000,再加上操作系统会占用一些空间,就只剩下不到2G能真正分配给物理内存了。(具体数值是为解释需要取的任意值,不代表真实情况)
系统地址空间对应于计算机系统结构中的前端总线(FSB)。
我们假设在一个32位处理器中,其存储器域的0xF000-0000~0xF7FF-FFFF(共128MB)这段物理地址空间与PCI总线的地址空间存在映射关系。
当处理器访问这段存储器地址空间时,HOST主桥将会认领这个存储器访问,并将这个存储器访问使用的物理地址空间转换为PCI总线地址空间,并与0x7000-0000~0x77FF-FFFF这段PCI总线地址空间对应。
为简化起见,我们假定在存储器域中只映射了PCI设备的存储器地址空间,而不映射PCI设备的I/O地址空间。而PCI设备的BAR空间使用0x7000-0000~0x77FF-FFFF这段PCI总线域的存储器地址空间。
在PCI设备的BAR寄存器中,包含该设备使用的PCI总线域的地址范围。在PCI设备的配置空间中共有6个BAR寄存器,因此一个PCI设备最多可以使用6组32位的PCI总线地址空间,或者3组64位的PCI总线地址空间。这些BAR空间可以保存PCI总线域的存储器地址空间或者I/O地址空间,目前多数PCI设备仅使用存储器地址空间。而在通常情况下,一个PCI设备使用2到3个BAR寄存器就足够了。
为简化起见,我们首先假定在图3‑2中所示的PCI总线树中,所有PCI Agent设备只使用了BAR0寄存器,其申请的数据空间大小为16M字节(即0x1000000字节)而且不可预读,而且PCI桥不占用PCI总线地址空间,即PCI桥不含有BAR空间。并且假定当前HOST主桥已经完成了对PCI总线树的编号。
根据以上假设,系统软件该PCI总线树的遍历过程如下所示。
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI总线地址空间与系统地址空间的关系
- PCI 总线及地址空间
- 系统地址空间,PCI地址空间
- 系统地址空间,PCI地址空间
- pci地址空间以及总线枚举
- PCI设备的地址空间
- PCI设备的地址空间
- PCI设备的地址空间
- PCI设备的地址空间
- PCI设备的地址空间
- PCI设备的地址空间
- 生成二维码
- 使用Jsoup获取天气
- Redis几个认识误区
- 非正常关机时,innodb故障导致mysql无法启动的解决方法
- Markdown 基本用法说明
- PCI总线地址空间与系统地址空间的关系
- mybatis学习笔记二 学前准备
- PCA主成分分析
- windows 64bits+VS2015+FFmpeg实践
- GET和POST提交乱码解决方案
- BZOJ 3295 [Cqoi2011] 动态逆序对 CDQ分治题解
- C#网络编程之利用Form表单上传文件
- 区分主存、辅存
- 将jar添加到本地仓库及上传Jar到远程marven仓库