PCIE概述

PCIE概述

文章目录

  • PCIE概述
  • 前言
  • 一、应用场景
  • 二、PCIE理论
    • 2.1 硬件
    • 2.2 拓扑结构:处理器和设备之间的关系
    • 2.3 速率
    • 2.4 层次接口
    • 2.5 四种请求类型
    • 2.5.1 bar空间
    • 2.5.2 memory
    • 2.5.3 IO
    • 2.5.4 configuration
    • 2.5.5 message


前言

参考链接:
pcie总线知识点解析

一、应用场景

PC和外设之间需要高速数据大量传输,比如AD/DA数据传输,普通的PC是没有GT接口的,那么就需要用FPGA去实现一个数据获取和传输。

PCIE适合背板(CPU和显卡都插到主板上,这个主板相当于背板。网卡显卡都是通过PCIE进行通信的)通信,即短距离通信(cm级别)。为什么不用万兆网传输,因为应用场景不同,长距离适合光纤稳定数据传输。

二、PCIE理论

2.1 硬件

母座:
在这里插入图片描述
公口(金手指):
在这里插入图片描述
下面是一个X4的PCIE原理图
在这里插入图片描述

2.2 拓扑结构:处理器和设备之间的关系

在这里插入图片描述
RC:根节点(主机,发起操作

EP : 从节点(从机,被操作

注意要清楚,FPGA是作为从机的。在立交交互的时候,需要带入理解

PCIE BRIDGE 用于链接传统的PCI总线

LEGACY ENDPOINT:基本不用了

2.3 速率

GT:是实际发送线速率,如果是2.5GT/s, 实际速率为:2.5*8/10/8 = 250MB/s

多lane传输:就是多个gt口进行传输,其中PCIE会将数据进行分发到多lane,在接受是,再汇聚

效率:

  • XDMA的效率为60%
  • RIFFA:支持第三方,效率为75-80%

2.4 层次接口

在这里插入图片描述
包结构:
在这里插入图片描述
数据链路层:
在这里插入图片描述
物理层:
在这里插入图片描述

2.5 四种请求类型

先举个例子:
在这里插入图片描述

2.5.1 bar空间

在这里插入图片描述
type0:ep节点使用(一般为FPGA)
tpye1:switch和RC节点使用

type0上面的配置都是在建立IP时设置;

操作方式:
例如:base addr0写一个基地址,这个基地址对应一个内存,如AXI_FIFO,如果RC想操作这个内存,那么RC也会在自己的空间上建立一个同样大小的空间,RC去操作这个自己建立的空间,就等同于操作AXI_FIFO。(原理就是有了这个基地址,RC通过内存映射,就可以操作到这个基地址的空间)。
在这里插入图片描述

2.5.2 memory

数据量大,则使用批量的操作,类似axi-full,一次操作多个地址的数据

2.5.3 IO

数据量小,则使用IO操作,类似于axi-lite的操作方式,一次操作一个地址的数据。或者可以理解为用PCIE点亮fpga中的LED灯

2.5.4 configuration

2.5.5 message

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

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

相关文章

Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡

本示例使用设备:https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单,选择 要创建的项目模版,点击 Next 二、输入项目名称…

NX系列-使用 `nmcli` 命令创建 Wi-Fi 热点并设置固定 IP 地址

使用 nmcli 命令创建 Wi-Fi 热点并设置固定 IP 地址 一、前言 在一些场景下,我们需要将计算机或嵌入式设备(例如 NVIDIA Orin NX)转换为 Wi-Fi 热点,以便其他设备(如手机、笔记本等)能够连接并使用该设备…

AngularJS 与 SQL 的集成应用

AngularJS 与 SQL 的集成应用 引言 在当今的Web开发领域,AngularJS 和 SQL 是两种非常重要的技术。AngularJS,作为一个强大的前端框架,能够帮助开发者构建复杂且高性能的客户端应用。而SQL(Structured Query Language),作为一种广泛使用的数据库查询语言,是管理关系型…

用docker快速安装电子白板Excalidraw绘制流程图

注:本文操作以debian12.8 最小化安装环境为host系统。 一、彻底卸载原有的残留 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras 二、设置docker的安装源 # Add Dockers official G…

C++趟坑学习-new,delete,虚析构函数

#include <iostream> using namespace std;class Resource { public:Resource() { cout << "Resource constructed" << endl; }~Resource() { cout << "Resource destructed" << endl; } };int main() {// 动态分配一个包含…

Spring Mvc面试题(常见)

1 Spring MVC的执行流程 用户发起请求,请求先被Servlet拦截以后,转发给SpringMVC框架SpringMVC 里面的DispatcherServlet(核心控制器) 接收到请求,并转发给HandlerMappingHandlerMapping负责解析请求,根据请求信息和配置信息找到匹配的Controller类(当这里有配置拦截器,会…

mac 如何开启指定端口供外部访问?

前言 需要 mac 上开放指定端口&#xff0c;指定 ip 访问 解决 在 macOS 上开放一个端口&#xff0c;并指定只能特定的 IP 访问&#xff0c;可以使用 macOS 内置的 pfctl(Packet Filter)工具来实现。 1、 编辑 pf 配置文件&#xff1a; 打开 /etc/pf.conf 文件进行编辑。 可以使…

如何设置Jsoup解析京东商品详情?

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;尤其是在电商领域。通过爬虫技术&#xff0c;我们可以从网站中提取有价值的信息&#xff0c;用于市场分析、价格监控等。Java作为一种成熟且功能强大的编程语言&#xff0c;拥有丰富的库支持&#xff0c;使其成为编写爬…

STM32读写flash注意事项

STM32读写Flash时,需要注意以下事项以确保操作的正确性和可靠性: 一、写入操作注意事项 擦除操作: STM32内置Flash的写入操作必须遵循“先擦除,后写入”的原则。擦除操作以页(或扇区)为单位进行,这意味着在写入新数据之前,需要擦除整个页(或扇区)。写入单位: 写入操…

练习题:一维数组

练习题 第一题 键盘录入一组数列&#xff0c;利用冒泡排序将数据由大到小排序 代码 #include <stdio.h>int arr_home01() {int arr[10];int i,j,temp;printf("请输入10个测试整数&#xff1a;\n");int len sizeof(arr) / sizeof(arr[0]);for(i 0;i < …

手眼标定工具操作文档

1.手眼标定原理介绍 术语介绍 手眼标定&#xff1a;为了获取相机与机器人坐标系之间得位姿转换关系&#xff0c;需要对相机和机器人坐标系进行标定&#xff0c;该标定过程成为手眼标定&#xff0c;用于存储这一组转换关系的文件称为手眼标定文件。 ETH&#xff1a;即Eye To …

PyTorch中apex的安装方式

apex是NVIDIA开发的基于PyTorch的混合精度训练加速神器&#xff0c;能够增加运算速度&#xff0c;并且减少显存的占用。 Github地址&#xff1a;https://github.com/NVIDIA/apex官方教程&#xff1a;https://nvidia.github.io/apex/ 安装方式 需要注意的是apex的安装不能通过…

【YashanDB知识库】YCP单机部署离线升级-rpc升级方式详细步骤

前提&#xff1a;每个被纳管的主机必须开放9072端口 1、先执行备份操作 #ycm安装路径为默认/opt/ycmcd /opt/ycm/ycm/scripts[yashanecs-ba94-0001 scripts]$ sudo ./backup.sh -n ycm -i /opt/ycm/ycm -c yashandb -y /home/yashan/yasdb_home/yashandb/22.2.11.105 --cata-…

MyBatis一二级缓存的区别?

大家好&#xff0c;我是锋哥。今天分享关于【MyBatis一二级缓存的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; MyBatis一二级缓存的区别&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MyBatis 的缓存机制分为 一级缓存 和 二级缓存&…

mybatis 的动态sql 和缓存

动态SQL 可以根据具体的参数条件&#xff0c;来对SQL语句进行动态拼接。 比如在以前的开发中&#xff0c;由于不确定查询参数是否存在&#xff0c;许多人会使用类似于where 1 1 来作为前缀&#xff0c;然后后面用AND 拼接要查询的参数&#xff0c;这样&#xff0c;就算要查询…

某名校考研自命题C++程序设计——近10年真题汇总(下)

第二期&#xff0c;相比上一贴本帖的题目难度更高一些&#xff0c;我当然不会告诉你我先挑简单的写~ 某名校考研自命题C程序设计——近10年真题汇总&#xff08;上&#xff09;-CSDN博客文章浏览阅读651次&#xff0c;点赞9次&#xff0c;收藏13次。本帖更新一些某校的编程真题…

【网络】传输层协议UDP/TCP网络层IP数据链路层MACNAT详解

主页&#xff1a;醋溜马桶圈-CSDN博客 专栏&#xff1a;计算机网络原理_醋溜马桶圈的博客-CSDN博客 gitee&#xff1a;mnxcc (mnxcc) - Gitee.com 目录 1.传输层协议 UDP 1.1 传输层 1.2 端口号 1.3 UDP 协议 1.3.1 UDP 协议端格式 1.3.2 UDP 的特点 1.3.3 面向数据报 1…

Python与数据库Mysql连接及操作方法

Python与数据库Mysql连接及操作方法 目录 Python与数据库Mysql连接及操作方法配置pip连接使用IP地址连接配置后使用机名连接 执行操作 配置pip 连接需要第三方库—pymysql pip install mysql连接 使用IP地址连接 格式&#xff1a; pymysql.connect( user ’ 用户名root’ …

Day25 C++ 文件和流

2024.12.17 C 文件和流 到目前为止&#xff0c;我们已经使用了 iostream 标准库&#xff0c;它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。 本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C 中另一个标准库 fstream&#xff0c;它定义了…

C语言进阶(2) ---- 指针的进阶

前言&#xff1a;指针的主题&#xff0c;我们在初阶的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1.指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2.指针的大小是固定的4/8个字节(32位平台/64位平台)。 3.指针是…