《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(12)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(11)

4.2 PCIe体系结构的组成部件

PCIe总线作为处理器系统的局部总线,其作用与PCI总线类似,主要目的是为了连接处理器系统中的外部设备,当然PCIe总线也可以连接其它处理器系统。在不同的处理器系统中,PCIe体系结构的实现方法略有不同。但是在大多数处理器系统中,都使用了RC、Switch和PCIe-to-PCI桥这些基本模块连接PCIe和PCI设备。在PCIe总线中,基于PCIe总线的设备,也被称为EP(Endpoint)。

4.2.2 RC的组成结构

RC是PCIe体系结构的一个重要组成部件,也是一个较为混乱的概念。RC的提出与x86处理器系统密切相关。事实上,只有x86处理器才存在PCIe总线规范定义的“标准RC”而在多数处理器系统,并不含有在PCIe总线规范中涉及的与RC相关的全部概念

不同处理器系统的RC设计并不相同,在图4-7中的处理器系统中,RC包括存储器控制器、两个FSB-to-PCIe桥。

而在图4-8中的PowerPC处理器系统中,RC的概念并不明晰。在PowerPC处理器中并不存在真正意义上的RC,而仅包含PCIe总线控制器。

在x86处理器系统中,RC内部集成了一些PCI设备、RCRB(RC Register Block)和Event Collector等组成部件。其中:RCRB由一系列“管理存储器系统”的寄存器组成,而仅存在于x86处理器中;而Event Collector用来处理来自PCIe设备的错误消息报文和PME消息报文RCRB寄存器组属于PCI总线域地址空间,x86处理器访问RCRB的方法与访问PCI设备的配置寄存器相同。在有些x86处理器系统中,RCRB在PCI总线0的设备0中。

RCRB是x86处理器所独有的,PowerPC处理器也含有一组“管理存储器系统”的寄存器,这组寄存器与RCRB所实现的功能类似。但是在PowerPC处理器中,该组寄存器以CCSRBAR寄存器为基地址,处理器采用存储器映像方式访问这组寄存器。

如果将RC中的RCRB、内置的PCI设备和Event Collector去除,该RC的主要功能与PCI总线中的HOST主桥类似,其主要作用是完成存储器域到PCI总线域的地址转换。但是随着虚拟化技术的引入,尤其是引入MR-IOV技术之后,RC的实现变得异常复杂。

但是RC与HOST主桥并不相同,RC除了完成地址空间的转换之外,还需要完成物理信号的转换在PowerPC处理器的RC中,来自OCeaN或者FSB的信号协议与PCIe总线信号使用的电气特性并不兼容,使用的总线事务也并不相同,因此必须进行信号协议和总线事务的转换

在P4080处理器中,RC的下游端口可以挂接Switch扩展更多的PCIe端口,也可以只挂接一个EP。在P4080处理器的RC中,设置了一组Inbound和Outbound寄存器组,用于存储器域与PCI总线域之间地址空间的转换;而P4080处理器的RC还可以使用Outbound寄存器组将PCI设备的配置空间直接映射到存储器域中。PowerPC处理器在处理PCI/PCIe接口时,都使用这组Inbound和Outbound寄存器组。

在P4080处理器中,RC可以使用PEX_CONFIG_ADDRPEX_CONFIG_DATA寄存器对EP进行配置读写,这两个寄存器与MPC8548处理器HOST主桥的PCI_CONFIG_ADDR和PCI_CONFIG_DATA寄存器类似,本章不再详细介绍这组寄存器。

x86处理器的RC设计与PowerPC处理器有较大的不同,实际上和大多数处理器系统都不相同。x86处理器赋予了RC新的含义,PCIe总线规范中涉及的RC也以x86处理器为例进行说明,而且一些在PCIe总线规范中出现的最新功能也在Intel的x86处理器系统中率先实现在x86处理器系统中的RC实现也比其它处理器系统复杂得多深入理解x86处理器系统的RC对于理解PCIe体系结构非常重要

更多内容请看下回。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前后端分离nodejs+vue流浪狗宠物领养公益网站

1.发现公益:主要是根据社会上的调研,来收集的社会上有关流浪狗的公益活动,发布在公益网站上能被更多人发现,主要让更多人能参与到公益活动中来,并调动群众的同情心和爱心,借此希望在养宠物的主人能避免自己…

直播app开发,技术驱动的实时互动新纪元

随着互联网技术的快速发展,直播已成为我们日常生活的重要组成部分。从娱乐、教育到商业活动,直播的广泛应用正在改变着我们的生活和工作方式。在这一变革中,直播开发扮演着至关重要的角色。本文将探讨直播开发的核心理念、技术挑战以及未来的…

【EAI 017】Interactive Language: Talking to Robots in Real Time

论文标题:Interactive Language: Talking to Robots in Real Time 论文作者:Corey Lynch, Ayzaan Wahid, Jonathan Tompson Tianli Ding, James Betker, Robert Baruch, Travis Armstrong, Pete Florence 作者单位:Robotics at Google 论文原…

林浩然与杨凌云的Java世界奇遇记:垃圾回收大冒险

林浩然与杨凌云的Java世界奇遇记:垃圾回收大冒险 The Java Adventure Chronicles of Lin Haoran and Yang Lingyun: Garbage Collection Odyssey 在一个充满0和1代码森林的世界里,住着两位勇敢的程序员侠侣——林浩然和杨凌云。林浩然是个身怀Java绝技的…

k8s -ingress

概念 Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由,ingress能代理集群为内部的网络,将集群外部的HTTP/HTTPS网络请求转发至不同的service,其本质就是创建一个NodePort类型的svc,和一个nginx 组成 k8s中的ingress 其实是指…

【万题详解】洛谷P1282 多米诺骨牌

题目 链接——题目在这里!!! 多米诺骨牌由上下 22 个方块组成,每个方块中有 1∼6 个点。现有排成行的上方块中点数之和记为 S1​,下方块中点数之和记为 S2​,它们的差为 ∣∣S1​−S2​。如图S161119&…

提升MySQL访问性能

1. 读写分离 设置多个从数据库,从数据库可能在多个机器中。写操作在主数据库进行主数据库提供数据的主要依据 缓解了MySQL的读压力。 主从复制原理图如下 如果对于读操作有一致性要求,那么读操作去主数据库即可。 2. 连接池 因为一个请求必须要…

SpringCloud-Nacos服务分级存储模型

Nacos 服务分级存储模型是 Nacos 存储服务注册信息和配置信息的核心模型之一。它通过将服务和配置信息按照不同级别进行存储,实现了信息的灵活管理和快速检索,为微服务架构下的服务发现和配置管理提供了高效、可靠的支持。本文将对 Nacos 服务分级存储模…

黄金交易策略(Nerve Nnife.mql4):三档移动止盈机制设计

和中国电费一样,一档档的上。 完整EA:Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 mql4代码节选如下: //第一张单上涨2500,开始SL跟踪300点if (count 1 && !follow_p_3){double ctp calcTotalProfit(0, "b…

vue-生命周期+工程化开发(三)

生命周期 Vue 生命周期 和 生命周期的四个阶段 思考: 什么时候可以发送初始化渲染请求?(越早越好)什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期:一个Vue实例从 创建…

在VSCode中创建Java项目

在VSCode中创建Java项目 首先,保证安装了Java的JDK. WinR -> 输入cmd -> 输入 java -version -> 然后可以看到安装的JDK版本,如果没安装可以去找教程。 JDK安装参考教程 打开VSCode,打开扩展(Ctrl Shift S&#xff…

车载自动化项目:Python

1. 自动化测试用的什么框架? 第一种:PythonSeleniumuittest框架 首先是拿到需求文档,基于这个需求去进行搭建。 用pytestrequestallure 这些第三方库进行编写自动化脚本。 举个例子一般的话整个的一个自动化的搭建是分为6层嘛&#xff1a…

火车可视化调车系统

列车在调车作业时,当机车头在尾部推动车厢时,司机室一人操控机车,车厢前端配备两名挂梯随车运行调车员,调车员人为分析行车方向是否有障碍、轨道行人等紧急情况,通过对讲机通知司机控制停车。由于司机无法直观观察列车…

java 执行方式和类加载过程

java默认属于混合执行: 编译和解释并存 java先进行解释执行,遇到多次重复的代码会把它编程成可执行文件,方便下次直接执行。 可以通过VM参数来修改执行方式。 类加载过程

centos7指定目录上传到google云盘

from datetime import datetime, timedelta from concurrent.futures import ThreadPoolExecutor import os,time,subprocess,tracebackdef run_cmd(command):"""运行命令并返回输出。"""shell Trueprint(command,command)result subprocess.r…

【软件测试大作业】京东系统的Selenium自动化测试报告

1访问地址 https://wwwjd.com 2 点击左侧导航 手机/运营商/数码 2点击左侧导航"影音娱乐"的子类"蓝牙/无线耳机 4商品筛选点击查询的第一个商品(选择默认类型款式颜色)一>6.设置商品数量,点击"加入去购物车结算" Selenium测试的数据驱动设置 请结…

C#,泰波拿契数(Tribonacci Number)的算法与源代码

1 泰波拿契数(Tribonacci Number) 泰波拿契数(Tribonacci Number)是斐波那契的拓展。 泰波拿契数 (Tribonacci Number) 即把费波拿契数 (Fibonacci Number) 的概念推广至三个数。 2 计算结果 3 源程序 using System; namespace…

Linux Shell编程系列--变量的定义与使用

一、目的 上一篇我们简单介绍了shell脚本的组成以及如何运行一个shell脚本,本篇将详解讲解shell中的变量。在Shell脚本中,变量是用来存储和处理数据的基本结构。 二、介绍 1、定义变量 变量名与等号()后跟值来定义一个变量&#…

antdpro框架npm install 报错,切换tyarn安装成功。

报错日志 有时间补 当前版本 解决办法 进入工作目录 安装官方推荐的tyarn工具:npm install yarn tyarn -g 进行依赖安装:tyarn 启动项目 :tyarn start 注意: 技术迭代较快,建议查询官网后实践,以上作为…

大模型实战营第二期——3. 基于 InternLM 和 LangChain 搭建你的知识库

github地址:InternLM/tutorial-书生浦语大模型实战营文档地址:基于 InternLM 和 LangChain 搭建你的知识库视频地址:基于 InternLM 和 LangChain 搭建你的知识库Intern Studio: https://studio.intern-ai.org.cn/console/instance动手学大模型…