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

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

4.2 PCIe体系结构的组成部件

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

4.2.1 基于PCIe架构的处理器系统

在不同的处理器系统中,PCIe体系结构的实现方式不尽相同。PCIe体系结构以Intel的x86处理器为蓝本实现,已被深深地烙下x86处理器的印记。在PCIe总线规范中,有许多内容是x86处理器独有的,也仅在x86处理器的Chipset中存在。在PCIe总线规范中,一些最新的功能也在Intel的Chipset中率先实现。本节将以一个虚拟的处理器系统A和PowerPC处理器为例简要介绍RC的实现,并简单归纳RC的通用实现机制。

1. 处理器系统A

在有些处理器系统中,没有直接提供PCI总线,此时需要使用PCIe桥,将PCIe链路转换为PCI总线之后,才能连接PCI设备。在PCIe体系结构中,也存在PCI总线号的概念,其编号方式与PCI总线兼容。

2. PowerPC处理器

PowerPC处理器挂接外部设备使用的拓扑结构与x86处理器不同。在PowerPC处理器中,虽然也含有PCI/PCIe总线,但是仍然有许多外部设备并不是连接在PCI总线上的。在PowerPC处理器中,PCI/PCIe总线并没有在x86处理器中的地位。在PowerPC处理器中,还含有许多内部设备,如TSEC(Three Speed Ethenet Controller)和一些内部集成的快速设备,与SoC平台总线直接相连,而不与PCI/PCIe总线相连。在PowerPC处理器中,PCI/PCIe总线控制器连接在SoC平台总线的下方。

3. 基于PCIe总线的通用处理器结构

在不同的处理器系统中,RC的实现有较大差异。PCIe总线规范并没有规定RC的实现细则。在有些处理器系统中,RC相当于PCIe主桥,也有的处理器系统也将PCIe主桥称为PCIe总线控制器。而在x86处理器系统中,RC除了包含PCIe总线控制器之外,还包含一些其它组成部件,因此RC并不等同于PCIe总线控制器

如果一个RC中可以提供多个PCIe端口,这种RC也被称为多端口RC。如MPC8572处理器的RC可以直接提供3条PCIe链路,因此可以直接连接3个EP。如果MPC8572处理器需要连接更多EP时,需要使用Switch进行链路扩展。

在x86处理器系统中,RC并不是存在于一个芯片中,如在Montevina平台中,RC由MCH和ICH两个芯片组成。本节并不对x86和PowerPC处理器使用的PCIe总线结构做进一步讨论,而只介绍这两种结构的相同之处。一个通用的,基于PCIe总线的处理器系统如图4-9所示:

上图所示的结构将PCIe总线端口、存储器控制器等一系列与外部设备有关的接口都集成在一起,并统称为RCRC具有一个或者多个PCIe端口,可以连接各类PCIe设备。PCIe设备包括EP(如网卡、显卡等设备)、Switch和PCIe桥。

PCIe总线采用端到端的连接方式,每一个PCIe端口只能连接一个EP,当然PCIe端口也可以连接Switch进行链路扩展。通过Switch扩展出的PCIe链路可以继续挂接EP或者其它Switch。

更多内容请看下回。

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

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

相关文章

Python 小白的 Leetcode Daily Challenge 刷题计划 - 20240209(除夕)

368. Largest Divisible Subset 难度:Medium 动态规划 方案还原 Yesterdays Daily Challenge can be reduced to the problem of shortest path in an unweighted graph while todays daily challenge can be reduced to the problem of longest path in an unwe…

你了解内联函数吗?

内联函数 概念 以inline修饰的函数叫做内联函数,编译时C编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数能提升程序运行的效率。对比于传统的函数调用,内联函数更像宏。告诉编译器在调用函数时将函数的代…

C++初阶:适合新手的手撕vector(模拟实现vector)

上次讲了常用的接口:C初阶:容器(Containers)vector常用接口详解 今天就来进行模拟实现啦 文章目录 1.基本结构与文件规划2.空参构造函数(constructor)4.基本函数(size(),capacity(),resize(),reserve())4.增…

软件文档测试

1 文档测试的范围 软件产品由可运行的程序、数据和文档组成。文档是软件的一个重要组成部分。 在软件的整人生命周期中,会用到许多文档,在各个阶段中以文档作为前阶段工作成果的体现和后阶段工作的依据。 软件文档的分类结构图如下图所示: …

fast.ai 深度学习笔记(七)

深度学习 2:第 2 部分第 14 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-2-lesson-14-e0d23c7a0add 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,…

InternLM大模型实战-1.书生浦语大模型全链路开源体系

文章目录 前言笔记正文大模型成为热门关键词书生浦语开源历程从模型到应用书生浦语全链条开源开放体系数据预训练微调评测部署部署智能体LagentAgentLego 总结 前言 本系列文章是参与书生浦语全链路开源体系学习的笔记文章。B站视频教程地址: 笔记正文 大模型成为…

【算法训练营】数字盒子,重编码,成绩排序(python实现)

数字盒子 问题描述 你有一个盒子,你可以往里面放数,也可以从里面取出数。 初始时,盒子是空的,你会依次做 Q 个操作,操作分为两类: 插入操作:询问盒子中是否存在数 x,如果不存在则把数…

Java图形化界面编程——菜单组件 笔记

2.7 菜单组件 ​ 前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了。在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用…

KAJIMA CORPORATION CONTEST 2024(AtCoder Beginner Contest 340)ABCDEF 视频讲解

这场比较郁闷,C题短路,连续4次WA,导致罚时太多 A - Arithmetic Progression Problem Statement Print an arithmetic sequence with first term A A A, last term B B B, and common difference D D D. You are only given inputs for w…

算法学习——LeetCode力扣栈与队列篇2

算法学习——LeetCode力扣栈与队列篇2 150. 逆波兰表达式求值 150. 逆波兰表达式求值 - 力扣(LeetCode) 描述 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。…

《Python 网络爬虫简易速速上手小册》第9章:爬虫项目的部署与运维(2024 最新版)

文章目录 9.1 爬虫的部署策略9.1.1 重点基础知识讲解9.1.2 重点案例:使用 Docker 部署爬虫到云服务平台9.1.3 拓展案例 1:使用 Kubernetes 管理爬虫的部署和扩展9.1.4 拓展案例 2:利用 GitHub Actions 实现 CI/CD 9.2 日志管理与错误处理9.2.…

“深度解析Java虚拟机:运行时数据区域、垃圾收集、内存分配与回收策略、类加载机制“

"深度解析Java虚拟机:运行时数据区域、垃圾收集、内存分配与回收策略、类加载机制" Java 虚拟机一、运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存 二、垃圾收集判断一个对象是否可被回收1. 引用计数算法2. 可达性分析算…

fast.ai 深度学习笔记(一)

深度学习 2:第 1 部分第 1 课 原文:medium.com/hiromi_suenaga/deep-learning-2-part-1-lesson-1-602f73869197 译者:飞龙 协议:CC BY-NC-SA 4.0 来自 fast.ai 课程的个人笔记。随着我继续复习课程以“真正”理解它,这…

使用vue-client-only 解决组件不兼容SSR问题

目录 前言 一、解决方案 1.基于Nuxt 框架的SSR应用 2.基于vue2框架的应用 3.基于vue3框架的应用 二、总结 往期回顾 前言 最近在我的单页面SSR应用上开发JSON编辑器功能,在引入组件后直接客户端跳转OK,但是在直接加载服务端渲染的时候一直报这…

解密输入输出迷局:蓝桥杯与ACM中C++/C语言常见问题揭秘

关于C中的常见输入输出汇总 带空格的字符串: ​ 对于这种输入方式我们选择使用gets() 函数来进行输入,gets用于从标准输入(通常是键盘)读取一行文本并将其存储为字符串,直到遇到换行符(‘\n’&#xff09…

javaEE - 22( 5000 字 Tomcat 和 HTTP 协议入门 -3)

一:Tomcat 1.1 Tomcat 是什么 谈到 “汤姆猫”, 大家可能更多想到的是大名鼎鼎的这个: 事实上, Java 世界中的 “汤姆猫” 完全不是一回事, 但是同样大名鼎鼎. Tomcat 是一个 HTTP 服务器. 前面我们已经学习了 HTTP 协议, 知道了 HTTP 协议就是 HTTP 客户端和…

基于FPGA的图像最近邻插值算法verilog实现,包括tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 将FPGA数据导入matlab显示图片,效果如下: 2.算法运行软件版本 vivado2019.2,matlab2022a 3.部分核心程序 ti…

python高校实验室管理系统的django设计与实现81txp

技术栈 后端:python 前端:vue.jselementui 框架:django Python版本:python3.7 数据库:mysql5.7 数据库工具:Navicat 开发软件:PyCharm .本高校实验室管理系统采用python语言、MySQL数据库&…

Flink基础篇|002_Flink前世今生

📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者 🔥 三连支持:欢迎 ❤️关注、&#x…

【计算机网络】协议层次及其服务模型

协议栈(protocol stack) 物理层链路层网络层运输层应用层我们自顶向下,所以从应用层开始探究应用层 协议 HTTP 提供了WEB文档的请求和传送SMTP 提供电子邮件报文的传输FTP 提供两个端系统之间的文件传输报文(message)是…