《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(11)

news2024/11/19 9:40:41

接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(10)

2.3 PCI桥与PCI设备的配置空间

PCI设备都有独立的配置空间HOST主桥通过配置读写总线事务访问这段空间。PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,PCI桥使用的配置空间和Cardbus桥片使用的配置空间。

本节重点介绍PCI Agent和PCI桥使用的配置空间,而并不介绍Cardbus桥片使用的配置空间。值得注意的是,在PCI设备配置空间中出现的地址都是PCI总线地址,属于PCI总线。

2.3.1 PCI桥

PCI桥的引入使PCI总线极具扩展性,也极大地增加了PCI总线的复杂度。PCI总线的电气特性决定了在一条PCI总线上挂接的负载有限,当PCI总线需要连接多个PCI设备时,需要使用PCI桥进行总线扩展,扩展出的PCI总线可以连接其它PCI设备,包括PCI桥。在一棵PCI总线树上,最多可以挂接256个PCI设备,包括PCI桥。PCI桥在PCI总线树中的位置如图2-8所示。

PCI桥作为一个特殊的PCI设备,具有独立的配置空间(又来一遍)。但是PCI桥配置空间的定义与PCI Agent设备有所不同。PCI桥的配置空间可以管理其下PCI总线子树的PCI设备,并可以优化这些PCI设备通过PCI桥的数据访问。PCI桥的配置空间在系统软件遍历PCI总线树时配置系统软件不需要专门的驱动程序设置PCI桥的使用方法,这也是PCI桥被称为透明桥的主要原因。

在某些处理器系统中,还有一类PCI桥,叫做非透明桥。非透明桥不是PCI总线定义的标准桥片,但是在使用PCI总线挂接另外一个处理器系统时非常有用,非透明桥片的主要作用是连接两个不同的PCI总线域,进而连接两个处理器系统

使用PCI桥可以扩展出新的PCI总线,在这条PCI总线上还可以继续挂接多个PCI设备。PCI桥跨接在两个PCI总线之间,其中距离HOST主桥较近的PCI总线被称为该桥片上游总线(Primary Bus)距离HOST主桥较远的PCI总线被称为该桥片的下游总线(Secondary Bus)。上图中,PCI桥1的上游总线为PCI总线x0,而PCI桥1的下游总线为PCI总线x1。这两条总线间的数据通信需要通过PCI桥1。

通过PCI桥连接的PCI总线属于同一个PCI总线域。如上图中,PCI桥1、2和3连接的PCI总线都属于PCI总线x域。在这些PCI总线域上的设备可以通过PCI桥直接进行数据交换而不需要进行地址转换;而分属不同PCI总线域的设备间的通信需要进行地址转换,如与PCI非透明桥两端连接的设备之间的通信。

仍如图2-8所示,每一个PCI总线的下方都可以挂接一个到多个PCI桥每一个PCI桥都可以推出一条新的PCI总线。在同一条PCI总线上的设备之间的数据交换不会影响其它PCI总线。如PCI设备21与PCI设备22之间的数据通信仅占用PCI总线x2的带宽,而不会影响PCI总线x0、x1与x3,这也是引入PCI桥的一个重要原因

由图2-8还可以发现,PCI总线可以通过PCI桥组成一个胖树结构,其下每一个桥片都是父节点,而PCI Agent设备只能是子节点。当PCI桥出现故障时,其下的设备不能将数据传递给上游总线,但是并不影响PCI桥下游设备间的通信。如当PCI桥1出现故障时,PCI设备11、PCI设备21和PCI设备22将不能与PCI设备01和存储器进行通信,但是PCI设备21和PCI设备22之间的通信可以正常进行。

使用PCI桥可以扩展一条新的PCI总线,但是不能扩展新的PCI总线域。如果当前系统使用32位的PCI总线地址,那么这个系统的PCI总线域的地址空间为4GB大小,在这个总线域上的所有设备将共享这个4GB大小的空间。如在PCI总线x域上的PCI桥1、PCI设备01、PCI设备11、PCI桥2、PCI设备21和PCI设备22等都将共享一个4GB大小的空间。再次强调这个4GB空间是PCI总线x域的“PCI总线地址空间”,和存储器域地址空间PCI总线y域没有直接联系

处理器系统可以通过HOST主桥扩展出新的PCI总线域,如MPC8548处理器的HOST主桥x和y可以扩展出两个PCI总线域x和y。这两个总线域x和y之间的PCI空间在正常情况下不能直接进行数据交换,但是PowerPC处理器可以通过设置PIWARn寄存器的TGI字段使得不同PCI总线域的设备直接通信(详见《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(9))。

许多处理器系统使用的PCI设备较少,因而并不需要使用PCI桥。因此在这些处理器系统中,PCI设备都是直接挂接在HOST主桥上,而不需要使用PCI主桥扩展新的PCI总线。即便如此,读者也需要深入理解PCI桥的知识。

理解PCI桥对于理解PCI和PCIe总线都非常重要。在PCIe总线中,虽然在物理结构上并不含有PCI桥,但是与PCI桥相关的知识在PCIe总线中无处不在。比如在PCIe总线的Switch中,每一个端口都与一个虚拟PCI桥对应,Switch使用这个虚拟PCI桥管理其下PCI总线子树的地址空间。

更对内容请看下回。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1367723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在当前bash(sh)中执行脚本和注册函数

在研究《管理Python虚拟环境的脚本》时,我们使用了source指令而没有使用sh或者bash来执行脚本,就是因为source指令可以让脚本在当前bash(sh)中执行;而sh或者bash则会新启动一个bash来执行。 我们可以通过下面这个脚本做测试 # test.sh # 用…

上海亚商投顾:沪指再度失守2900点 全市场超4800只个股下跌

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日继续调整,沪指跌超1%再度失守2900点,深成指、创业板指均创出调整新低&…

图文详解:CRM系统的功能有哪些?

在如今多数行业市场充分竞争的情况下,同质化产品层出不穷,什么样的企业可以在市场中屹立不倒?必然是拥有广泛稳定的客户群体的企业,所以强大的客户关系管理能力就成为了企业的核心竞争力。 在SaaS发展到今日,基于云服…

MySQL之子查询、连接查询(内外)以及分页查询(实操)

文章目录 前言一、SQL脚本二、实操以及实现思路 前言 续上篇博主MySQL之视图&索引&执行计划这篇给大家讲解MySQL之子查询、连接查询(内&外)以及分页查询 一、SQL脚本 /*Navicat Premium Data TransferSource Server : localhostSource Server Type :…

前端JS加密对抗由浅入深-2

前言: 本文主要讲解,针对前端非对称、多段加密数据传输站点,如何进行动态调试,如何进行安全测试。本次讲解不涉及任何漏洞方面,仅为学习探讨,该站点现已经更改加密方式,严禁非法测试&#xff0…

基于SSM的校园线上订餐系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:vue\html 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

振弦采集仪在桥梁结构监测中的应用研究

振弦采集仪在桥梁结构监测中的应用研究 振弦采集仪在桥梁结构监测中的应用研究是指利用振弦采集仪对桥梁结构进行监测和数据采集的研究。振弦采集仪是一种能够实时监测桥梁结构振动情况的设备,通过采集桥梁上的振弦传感器获取振动数据,并将数据传输到监…

ubuntu系统(9):ubuntu 20.02安装pydot

目录 警告信息 1、确保安装了Python和pip 2、安装Graphviz软件包 3、pip安装pydot 验证 在gem5中,pydot库用于生成图形化输出,特别是生成.dot文件和相关的图像文件,如PDF、PNG等。它与gem5结合使用的一个常见用途是生成系统结构图、内存…

Git命令+github仓库克隆

Git github Git常用命令 开始 git init #创建仓库 git status #查看仓库的状态 git status -s #简单的查看仓库的状态 git ls-files #查看暂存区的内容 git reflog #查看操作的历史记录 暂存区 git add git add <file&g…

1-05使用VS调式程序

一、概述 写代码总不是一帆风顺的&#xff0c;总会碰到一些问题&#xff0c;检查问题&#xff0c;排除错误&#xff08;也就是Debug程序&#xff09;&#xff0c;对于任何程序员而言都是基本功。 我们前面讲过&#xff0c;C语言是一门很容易出错&#xff0c;且自身不提供异常…

[DM8] 达梦8配置兼容Oracle

查看版本信息 select *&#xff0c;id_code from v$version; 查询解释&#xff1a; DM Database Server 64 V8 1-1-190-21.03.12-136419-ENT 64 版本位数标识&#xff0c;64表示为64位版本&#xff0c;无64则表示为32位版本 V8 大版本号&#xff0c;目前主要是V7、V8 1-1-190…

STL——stack,queue详解

目录 &#x1f4a1;stack &#x1f4a1;基本概念 常用接口 &#x1f4a1;queue &#x1f4a1;基本概念 &#x1f4a1;常用接口 &#x1f4a1;stack &#x1f4a1;基本概念 栈&#xff08;stack&#xff09;&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端…

vue3用户权限管理(路由控制等)

在前端开发的过程中&#xff0c;我们需要做前端的权限管理&#xff0c;我们需要根据后端提供的信息来控制权限&#xff0c;这时候就需要根据用户的操作来进行权限控制了。逻辑稍微有一点绕&#xff0c;多理解就好了。 用户路由权限管理 大致的实现原理&#xff1a; 一般将路由…

Java方法用法及解析

在 Java 中&#xff0c;方法&#xff08;Method&#xff09;是用于执行特定任务的代码块。它是一个函数&#xff0c;用于封装一段可重复执行的代码&#xff0c;并可以被其他代码调用。方法定义了一系列操作的步骤&#xff0c;并提供了一种结构化和可复用的方式来组织和执行这些…

机器学习原理到Python代码实现之NaiveBayes【朴素贝叶斯】

Naive Bayes 朴素贝叶斯算法 该文章作为机器学习的第二篇文章&#xff0c;主要介绍的是朴素贝叶斯算法的原理和应用。学习本章内容建议对概率论中的联合概率以及先验概率、后验概率有初步的学习和掌握。 难度系数&#xff1a;⭐⭐⭐ 更多相关工作请参考&#xff1a;Github 算法…

ELK的搭建—Elasticsearch-8.11.3的安装及集群的搭建

es的安装及其集群的搭建 一、Elasticsearch服务的安装部署1. Elasticsearch的rpm包下载2. 安装Elasticsearch服务3. 设置系统资源及内存大小分配4. Elasticsearch的配置修改 二、建立Elasticsearch集群1. 安装Elasticsearch主节点server12. 配置server1&#xff0c;及配置文件的…

Linux文件系统与日志服务管理

目录 一.Linux文件系统 1.inode表和block &#xff08;1&#xff09;inode &#xff08;2&#xff09;block 2.查看inode号命令 3.Linux系统文件三种主要时间属性 4.磁盘空间还剩余很多但无法继续创建文件 5.inode大小 二.日志 1.日志保存位置 2.日志文件的分类 &a…

Making Large Language Models Perform Better in Knowledge Graph Completion

Making Large Language Models Perform Better in Knowledge Graph Completion 基本信息 博客贡献人 鲁智深 作者 Yichi Zhang, Zhuo Chen, Wen Zhang, Huajun Chen 隶属于浙江大学计算机学院和软件学院 摘要 本文主要探讨了如何将有用的知识图谱结构信息融入大语言模型中…

使用Redhat操作系统下载MySQL

一、本地下载安装 方法一 ①在虚拟机火狐浏览器中搜索MySQL官网&#xff08;选择第一个下载&#xff09; ②下载完毕使用xshell远程连接解压及安装 [rootlocalhost ~]# cd /Downloads/ [rootlocalhost Downloads]# mkdir /mysql/ [rootlocalhost Downloads]# mv mysql-8.0.3…

12.字符串和正则表达式

使用正则表达式 正则表达式相关知识 在编写处理字符串的程序或网页时&#xff0c;经常会有查找符合某些复杂规则的字符串的需要&#xff0c;正则表达式就是用于描述这些规则的工具&#xff0c;换句话说正则表达式是一种工具&#xff0c;它定义了字符串的匹配模式&#xff08;…