当前位置: 首页 > news >正文

【PCIe 总线及设备入门学习专栏 4.1 -- PCI 总线的地址空间分配】

文章目录

  • Overview

本文转自:https://blog.chinaaet.com/justlxy/p/5100053219

Overview

PCI 总线具有32位数据/地址复用总线,所以其存储地址空间为 232=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。

如下图所示
在这里插入图片描述

注:需要注意的是PCI的地址空间和x86系统中的FSB并不是对等的,而是具有一定的映射关系。

PCI 体系结构中,一共支持三种地址空间:

  • Memory Address Space
  • I/O Address Space
  • Configuration Address Space。

其中x86处理器可以直接访问的只有 Memory Address Space 和 I/O Address Space。而访问 Configuration Address Space 则需要通过索引 IO 寄存器来完成。

注:在PCIe中,则引入了一种新的 Configuration Address Space 访问方式:将其直接映射到了 Memory Address Space 当中。

在这里插入图片描述
如上图所示:

  • 最左边的即为 Memory Address Space,其中包括了多个 PCI Memory、AGP Video(显卡)Memory以及Extended Memory、Boot ROM等。
  • 中间的为 I/O Address Space,需要注意的是,虽然PCI支持32位的地址,但是由于x86的CPU只支持16位的I/O空间,这就限制了PCI的I/O Address Space最大只有64KB。
  • 最右边的则为Configuration Address Space,由于每一个PCI设备最多支持8种功能(Function),每一条PCI总线最多支持32个设备,而每一个PCI总线系统最多又支持 256 个子总线(通过PCI桥)。因此,总的 Configuration Address Space 的大小为:256 Bytes/function x 8 functions/device x 32 devices/bus x 256 buses/system = 16MB

如图中所示,Configuration Address Space 所使用的 IO 寄存器范围为 0xCF8-0xCFF 。其中 0xCF8-0xCFB 为端口地址,0xCFC-0xCFF 为配置数据。

http://www.lryc.cn/news/513651.html

相关文章:

  • 华为配置 之 RIP
  • 探寻AI Agent:开启知识图谱自动生成新篇章(17/30)
  • 卸载wps后word图标没有变成白纸恢复
  • LeetCode 热题 100_二叉树的直径(40_543_简单_C++)(二叉树;递归)
  • 【数据结构】线性数据结构——链表
  • 开源存储详解-分布式存储与ceph
  • [算法] [leetcode-509] 斐波那契数
  • 运维人员的Go语言学习路线
  • [创业之路-222]:波士顿矩阵与GE矩阵在业务组合选中作用、优缺点比较
  • 安卓入门十一 常用网络协议四
  • 《机器学习》——利用OpenCV库中的KNN算法进行图像识别
  • StarRocks 存算分离在得物的降本增效实践
  • Tube Qualify弯管测量系统在汽车管路三维检测中的应用
  • udp分片报文发送和接收
  • 【从零开始入门unity游戏开发之——C#篇39】C#反射使用——Type 类、Assembly 类、Activator 类操作程序集
  • 安卓触摸事件的传递
  • idea项目导入gitee 码云
  • 典型常见的基于知识蒸馏的目标检测方法总结三
  • 端口被占用
  • Javascript知识框架图(待完善)
  • 清华大学Python包镜像站点
  • 逆境清醒文章总目录表
  • LeetCode算法题——移除元素
  • 常见的中间件漏洞
  • IPv6的过度技术
  • Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...
  • WebRTC的三大线程
  • Spring SpEL表达式由浅入深
  • 数据设计规范
  • 基于SpringBoot的宠物寄养系统的设计与实现(源码+SQL+LW+部署讲解)