【PCIe 总线及设备入门学习专栏 1.1 -- PCIe 基础知识 lane和link介绍】

news2024/12/25 22:55:00

文章目录

  • Overivew
    • Lane 和 Link
    • RC 和 RP
      • PCIe controller
        • PCIE Controller
        • PHY模块
    • Inbound 和 Outbound
    • PCIe transaction model
      • PIO
      • DMA
      • P2P

Overivew

PCIe,即PCI-Express总线(Peripheral Component Interconnect Express),是一种高速串行总线。

PCIe最早由英特尔在2001年提出,旨在替代旧的PCI/PCI-X和AGP总线标准。但是,PCIe在软件层面上是兼容PCI的。

PCIe使用双向连接的方式,可以在同一时间进行收发操作。这种模型称为双单工连接,因为每个接口都有一个单工发送和单工接收的路径,如下图所示。因为数据流可以同时双向传输,因此两个设备间的通信是全双工的。

在这里插入图片描述

Lane 和 Link

PCIe 的一条 lane由 两对差分线(TX和RX)组成,一个 link由多条 lane组成。PCIe的 link 宽度支持x1, x2, x4, x8, x12, x16, x32。

在这里插入图片描述

RC 和 RP

Root Complex 简称 RC,类似于 PCI 的 host 主桥,对于 RC 没有明确的规范要求,在不同的处理器中有着不同的实现方式,但总体上与PCI一样具备HOST主桥的功能。

在这里插入图片描述

例如上图所示,在X86平台下,处理器通过 FSB 链接到了 RC。FSB 是 Front-Side Bus 的缩写,是一种传统的系统总线,它连接了计算机的主要组件,如 CPU、内存和北桥芯片。

上图的 RC由一个 存储器控制器 和两个 PCI桥 组成,这个PCI 桥链接着 Switch。总的来说,RC 是 PCIE 体系结构的一个重要组成部件,是PCIE 树的根,是整个 PCIE 树的控制者。但这个部件具体是什么样子的,可以根据实际需求来定,但唯一可以确定的,必须包含PCIE的总控制器的功能,所以 RC 的总线编号为0,挂在RC下的设备总线编号也都是 0,并依次向下延伸。

一个 RC 可以包括多个 RP(Root Port),例如一个16 条 lane的PCIe RC 可以包括4个RP(4个x4的),或者8个RP(8个x2的)等等。
在这里插入图片描述
在 ARM 平台下,CPU 通常是通过 AMBA 总线与RC 进行连接,比如 ARM CPU 可以控制挂载在 CMN-650 的 RC。

在这里插入图片描述
在这里插入图片描述

PCIe controller

首先,PCIe分为 控制器(controller)PHY两部分,控制器是数字电路,PHY 包含 PCSPMA 两部分,PMA 是模拟电路。

  • 控制器主要负责 pcie 协议包处理;
  • phy 主要负责数据编码串行化高速传输

国内应该有公司做出相应的phy芯片(例如芯动科技、牛芯半导体),毕竟常见的pcie 3.0才8 Gbps的速率,最新的6.0才64Gbps。整体设计较为复杂,一般可向IP厂商定制设计。’

在这里插入图片描述

PCIE Controller

控制器逻辑包含了 IP 的 host 设计,以及 PCIe 协议中所规定的事务层、数据链路层、物理层实现逻辑,通常包含如下模块:

  • reset 逻辑:通常会设置复位逻辑,通过总复位控制子复位;
  • debug 逻辑:监测IP状态,供设计人员debug用;
  • msg 处理逻辑:IP的某些信号由message处理,有CPU内核来处理;
  • 子系统配置处理逻辑;
  • 错误处理逻辑:查找寄存器,并记录,产生中断;
  • MSI 逻辑:对地址,数据通道进行监测;
  • 中断逻辑:IP中某些中断可以合并;
PHY模块

PHY 模块用于连接协议层和链路,包含了驱动锁相环串转并、并转串等所有与接口操作相关的所有电路。

  • PHY控制逻辑:直通PHY模块的寄存器配置和控制;
  • DFT:IP中会提供专门用于DFT的引脚。

从PCIe协议来讲,物理层分为逻辑子模块物理子模块。其中:
逻辑子模块又分为媒介访问层(MAC)和物理编码子层(PCS);PMA层包含串行器/解串器(SerDes)和其他模拟电路;

  • PCIE Serdes
    SerDes(Serializer-Deserializer)是串行器和解串器的简称,串行器(Serializer)也称为SerDes发送端(Tx),(Deserializer)也称为接收端Rx。SerDes 的主要构成可以分为三部分,PLL模块,发送模块Tx,接收模块Rx。

Inbound 和 Outbound

PCIe的inbound和outbound是对CPU而言的,outbound指从CPU到设备方向,inbound指从设备到CPU方向。

PCIe transaction model

PCIe有三种transaction model,分别是PIO、DMA和P2P。

PIO

PIO即Programmed I/O,可编程输入输出。在该模式下,数据传送由CPU执行I/O端口指令来按照字节或更大的数据单位来处理,占用大量的CPU资源,数据传输速度也大大低于DMA模式。

在这里插入图片描述

DMA

DMA即Direct Memory Access,直接内存访问。在该模式下,数据传送不是由CPU负责处理,而是由一个特殊的处理器DMA控制器来完成,因此占用极少的CPU资源。

在这里插入图片描述

P2P

P2P即Peer-to-Peer,是指一个endpoint发送packet给另一个endpoint。P2P路由在Switch中是必需的,但对于RC来说是可选的。

在这里插入图片描述

推荐阅读
https://mp.weixin.qq.com/s/1bGESIN3q8ZcqqGRiRVgvg
https://www.zhihu.com/question/525350571/answer/2598101335
https://blog.csdn.net/qq_39815222/article/details/128728334

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

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

相关文章

golang LeetCode 热题 100(动态规划)-更新中

爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1:输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&…

分布式专题(10)之ShardingSphere分库分表实战指南

一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…

Vue 3.5 编写 ref 时,自动插入.Value

如果是 Vue 3.2 ,那么可能用的是Volar

深度学习中的并行策略概述:2 Data Parallelism

深度学习中的并行策略概述:2 Data Parallelism 数据并行(Data Parallelism)的核心在于将模型的数据处理过程并行化。具体来说,面对大规模数据批次时,将其拆分为较小的子批次,并在多个计算设备上同时进行处…

OneCode:开启高效编程新时代——企业定制出码手册

一、概述 OneCode 的 DSM(领域特定建模)出码模块是一个强大的工具,它支持多种建模方式,并具有强大的模型转换与集成能力,能够提升开发效率和代码质量,同时方便团队协作与知识传承,还具备方便的仿…

《Web 应用项目开发:从构思到上线的全过程》

目录 一、引言 二、项目启动与需求分析 三、设计阶段 四、技术选型 五、开发阶段 六、测试阶段 七、部署与上线 八、维护与更新 九、总结 一、引言 在数字化浪潮席卷全球的当下,Web 应用如繁星般在互联网的苍穹中闪烁,它们形态各异&#xff0c…

中小学教室多媒体电脑安全登录解决方案

中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司(OSCG) 概述 在本文中,我们将深入研讨如何于 Odoo 18 中构建 JavaScript(JS)对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

OOP面向对象编程:类与类之间的关系

OOP面向对象编程:类与类之间的关系 三大关系:复合(适配器设计模式)、委托(桥接设计模式)、继承 8、1复合Composition has-a -> 适配器模式 一个类里面含有另一个类的对象 —> 复合关系 has-a 适配器设…

集成 jacoco 插件,查看单元测试覆盖率

文章目录 前言集成 jacoco 插件,查看单元测试覆盖率1. 添加pom2. 配置完成、执行扫描3. 执行结果4. 单元测试报告 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞…

下载运行Vue开源项目vue-pure-admin

git地址:GitHub - pure-admin/vue-pure-admin: 全面ESMVue3ViteElement-PlusTypeScript编写的一款后台管理系统(兼容移动端) 安装pnpm npm install -g pnpm # 国内 淘宝 镜像源 pnpm config set registry https://registry.npmmirror.com/…

创建用于预测序列的人工智能模型,设计模型架构。

上一篇:《创建用于预测序列的人工智能模型,设计数据集》 序言:在前一篇中,我们创建了用于训练人工智能模型的数据集。接下来,就要设计模型的架构了。其实,人工智能模型的开发关键并不在于代码量&#xff0…

ubuntu22.04安装PPOCRLabel

可使用的模型参考模型列表,ppocr版本这里PPOCR版本作为预训练模型: (经常用放在这里) 基础电脑配置: cunda12.4 ubuntu22.04系统 pytorch2.5.0 (python3.10不能运行,python3.8我之前可以正…

Linux网络——TCP的运用

系列文章目录 文章目录 系列文章目录一、服务端实现1.1 创建套接字socket1.2 指定网络接口并bind2.3 设置监听状态listen2.4 获取新链接accept2.5 接收数据并处理(服务)2.6 整体代码 二、客户端实现2.1 创建套接字socket2.2 指定网络接口2.3 发起链接con…

江苏捷科云:可视化平台助力制造企业智能化管理

公司简介 江苏捷科云信息科技有限公司(以下简称“捷科”)是一家专注于云平台、云储存、云管理等产品领域的创新型企业,集研发、生产和销售于一体,致力于在网络技术领域打造尖端品牌。在推动制造业企业数字化转型的进程中&#xf…

消息队列(一)消息队列的工作流程

什么是消息队列 首先,代入一个场景,我现在做一个多系统的集成,分别有系统A、B、C、D四个系统,A系统因为使用产生了业务数据,B、C、D需要使用这些数据做相关的业务处理和运算,最基本的做法就是通过接口通信…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域,追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证,成为能够帮助企业降低安装成本,提高设备性能的创新解决方案。 【全球认证,品质保障】ATV320 系列秉持施耐德…

WEB入门——文件上传漏洞

文件上传漏洞 一、文件上传漏洞 1.1常见的WebShell有哪些?1.2 一句话木马演示1.2 文件上传漏洞可以利用需满足三个条件1.3 文件上传导致的危害 二、常用工具 2.1 搭建upload-labs环境2.2 工具准备 三、文件上传绕过 3.1 客户端绕过 3.1.1 实战练习 :upl…

Android 蓝牙开发-传输数据

概述 传统蓝牙是通过建立REFCCOM sockect来进行通信的,类似于socket通信,一台设备需要开放服务器套接字并处于listen状态,而另一台设备使用服务器的MAC地址发起连接。连接建立后,服务器和客户端就都通过对BluetoothSocket进行读写…

红米Note 9 Pro5G刷小米官方系统

前言 刷机有2种方式:线刷 和 卡刷。 线刷 线刷:需要用电脑刷机工具,例如:XiaoMiFlash.exe,通过电脑和数据线对设备进行刷机。 适用场景: 系统损坏无法开机。恢复官方出厂固件。刷机失败导致软砖、硬砖的…