基于PCIe的智能处理系统研究

news2024/11/15 20:54:49

引言

人工智能是集合众多方向的综合性学科,在诸多应用领域均取得了显著成果。随着航空领域人工智能技术研究的不断深入,面向开放式机载智能交互场景,人工智能的应用可解决诸多问题。例如智能感知、辅助决策等,可利用人工智能算法对多源传感器捕获的海量信息进行快速处理,仅将处理后的感知结果反馈给飞行员,从而降低飞行员的任务负荷;利用人工智能算法开展航路规划、应激决策等多种智能辅助任务,帮助飞行员做出最优决策。基于飞行决策的及时性、实时性要求,大带宽、高性能和高效率特性已经成为智能处理模块的高速数据传输总线的基本要求。

PCIe是第三代高性能串行互联高速总线,它具有传输速度快、节点独享带宽、可灵活扩展等诸多优点,同时支持PCIe协议交换芯片多端口的特性使其在数据传输上打破了以往单一的传输方式,将多个具有PCIe接口的设备相互连接,即实现网状的拓扑结构,使得各挂载的设备可以自由通信。

本文介绍了一种智能处理系统及其硬件设计,该设计以PCIe为主要通信总线,连接处理板卡、智能板卡、FC板卡,PCIe交换芯片作为通信的桥梁,能够可靠地执行各主从设备间数据互通工作,稳定高效地完成信息收发、通用处理、智能运算等工作,已在航空领域得到了验证及应用。

1 PCIe总线介绍

PCIe总线是目前主流的高速数据传输总线,采用由Intel于1997年提出的第3代I/o互联标准,是一种已得到广泛应用的成熟总线技术。

PCIe由分层的体系结构组成,由下至上依次为物理层(Physical Layer,PHY)、数据链路层(Data Link Layer,DL)、事务层(Transaction Layer,TL)。PCIe总线通过数据包传送的形式实现数据收发。TLP(Transaction Layer Packet)的包头用于区分事务种类及确定当前TLP的路由信息等一系列信息。传输过程中的信息都需以该数据包的格式进行封装,但其中只有TLP头与有效数据载荷是由用户层进行添加的,其余内容由数据链路层以及PCIe物理层额外添加至TLP上。PCIe统一的TLP传输模式保证了数据传输的稳定性和完整性。

PCIe总线采用差分LVDS串行方式进行数据传输,由两对LVDS差分信号线完成一条链路的接收和发送。

PCIe通信采用点—点的传输技术,能够为系统内设备安排独立的通道,充分保障通信带宽,提高传输速率。

同时,PCIe通信可以实现设备的并行工作,数据通道可以根据具体需要配置成×1、×2、×4等线宽,具备很好的灵活性,满足不同设备不同线宽的通信要求。

2系统结构

智能处理模块应用于航空领域的方向可分为感知类智能算法和决策类智能算法,模块主要根据具体软硬件需求开展智能处理工作。基于上述两类应用,智能处理模块可提供神经网络类算法的专用智能处理能力、多线程并行运行的通用处理能力、数据传输能力等基础能力,支撑两类算法的应用要求。

智能处理模块提供通信节点、通用计算节点和智能计算节点。通信节点由FPGA和光电器件组成,负责模块和整机中其他模块之间的通信互联;通用计算节点由多核CPU组成,完成复杂通用计算任务;智能计算节点由大规模FPGA组成,提供足够的计算能力及存储容量,能够满足智能计算处理能力要求。智能处理模块架构如图1所示。

模块内部采用PCIe网络交换结构,各关键节点均连接在PCIe交换网络上,通过PCIe交换网络进行模块间的数据通信。典型应用数据处理流程如下:数据经通信板卡处理后,由PCIe将数据发送给智能板卡的处理内核,处理内核进行响应和资源管理,并将数据转发给智能板卡的逻辑资源进行智能计算,计算结果返回给通用处理器芯片进行处理,最后结果经通信板卡发出。

3硬件设计

智能处理模块主要由智能、处理、通信三个板卡组成。智能板卡包括两个智能处理器+FPGA,主要实现深度神经网络加速处理以及通信板卡的配置和管理;处理板卡设计两个CPU处理器,主要实现复杂通用计算任务;设计一个PCIe交换芯片,用于模块内部各节点之间高速通信;通信板卡采用FPGA实现通信逻辑,实现对外通信。

智能处理模块的内部通信主要由PCIe总线完成,通过PCIe交换电路实现专用智能节点挂接通信节点,以及智能计算节点和通用计算节点之间互联。PCIe交换功能电路可采用PEX8748芯片实现,PEX8748是一个12端口、48线PCI Express 3.0的总线交换机,单通道最高可支持8.0 GT/s的通信速率。

PEX8748可实现多种配置模式,能够根据具体需求自由设置为上下行模式及多种端口组合,如图2所示。

PEX8748会检测STRAP-TESTMODE0[0:2]来确定运行模式,其中[0,0,0]为BASE MODE,具体设置为BASEMODE,即一主多从的模式;PEX含有3个station,每个station含16lane,由STRAP-STN[0:2]-PORTCFG[0:1]进行端口数目与宽度配置。

智能处理模块中PEX8748配置多个4X通道,用于连接通用处理节点、智能计算节点和通信节点,如图3所示。

其中智能计算节点接PEX8748的RC上行端口,另一个智能计算节点、通用处理节点和通信节点接PEX8748的EP下行端口。通用计算节点和智能计算节点接口线速率配置为5 Gb/s,通信节点线速率配置为2.5 Gb/s。

4系统测试

在实际应用中,重点测试系统内部的6个PCIe节点的通信功能,对各个节点之间是否能够传输及传输的正确性进行验证。

具体测试方法为:

1)测试设备向CPU发送“PCIe配置测试”指令,随后测试设备接收各节点发送的PCIe链路状态及线宽寄存器结果,各寄存器参数读取与预期一致,说明节点配置正常。

2)CPU通过PCIe接口将数据发送至另一个CPU的BAR空间,然后从BAR空间中将数据读回,对比发送数据和读回数据是否一致,如一致则测试通过。

3)CPU针对通用计算节点及智能计算节点“PCIe接收通信测试”指令,进行PCIe的Direct IO包的读写测试,在1 s时间内连续进行读访问,测试PCIe的读访问带宽,并将带宽发送给测试设备判断读访问带宽是否合格。

4)CPU针对通用计算节点及智能计算节点“PCIe接收通信测试”指令,进行PCIe的Direct IO包的读写测试,在1 s时间内连续进行写访问,测试PCIe的写访问带宽,并将带宽发送给测试设备判断写访问带宽是否合格。

5结束语

本文提出了一种基于PCIe接口的智能处理系统,该系统基于CPU十FPGA的异构融合结构设计,通用处理节点基于高性能多核CPU设计,提供两个通用处理节点和两个智能处理节点,并通过对外通信接口实现外部交互。系统通过PCIe交换电路完成内部数据通信,通用计算节点和智能计算节点接口线速率配置为5 Gb/s。该系统为应用于航空领域的人工智能系统,可实现飞行过程中的智能感知、辅助决策等任务。

文中对该智能处理系统的整体架构进行了详细描述,介绍了系统中PCIe总线的工作模式及其内部信号的数据流,并从硬件角度阐述了系统核心电路的设计思路,重点分析了PCIe总线的使用及其优越性。

该架构适用于高性能和高效率的智能处理系统,已成功应用于某机载智能处理模块,对相关领域应用具有一定的参考价值和借鉴意义。

PCIe插槽的光纤网卡推荐

家用光纤网卡:连接未来的高速通道

在这个数字化飞速发展的时代,一个稳定且高速的网络连接已经成为每个家庭必不可少的一部分。今天,我想向大家推荐一款来自我们家的光纤网卡——intel X520,它不仅具备卓越的性能,更以其用户友好的设计,成为家庭网络的理想选择。

高效的性能

ADOPintel X520光纤网卡支持最新的网络标准,能够提供高达10Gbps的传输速度,让高清视频流、大型文件下载和在线游戏变得更加流畅。它采用了先进的芯片组和高质量的光模块,确保了信号的稳定传输和最小的延迟。

易于安装

我们深知,复杂的安装过程会让很多用户望而却步。因此,ADOPintel X520光纤网卡设计了简便的安装流程。即使是没有技术背景的用户,也能够轻松地将网卡安装到主板上的PCIe插槽,并快速开始使用。

兼容性强

无论您的家庭网络环境如何,ADOPintel X520光纤网卡都能够提供兼容性支持。它不仅适用于多种类型的光纤网络,还能够与多数现代主板上的PCIe插槽无缝对接。

性价比高

我们相信,高质量的产品并不意味着高昂的价格。ADOPintel X520光纤网卡以其合理的价格和卓越的性能,提供了非常高的性价比。它是家庭网络升级的理想选择,也是对未来投资的明智决策。

结语

选择ADOPintel X520光纤网卡,意味着选择了一个高速、稳定、易于使用且价格合理的网络解决方案。它将为您的家庭网络带来前所未有的体验,让您在享受数字化生活的同时,也能感受到技术带来的便捷。

 前沿驱动创新,光学创造未来,ADOP与您精彩前行!🚀

 ADOP - 前沿光学科技有限公司

 

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

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

相关文章

4、XTuner微调个人小助手(homework)

基础作业(结营必做) 训练自己的小助手认知(记录复现过程并截图) 1,环境安装 # 如果你是在 InternStudio 平台,则从本地 clone 一个已有 pytorch 的环境: # pytorch 2.0.1 py3.10_cuda11…

Grok-1.5 Vision:X AI发布突破性的多模态AI模型,超越GPT 4V

在人工智能领域,多模态模型的发展一直是科技巨头们竞争的焦点。 近日,马斯克旗下的X AI公司发布了其最新的多模态模型——Grok-1.5 Vision(简称Grok-1.5V),这一模型在处理文本和视觉信息方面展现出了卓越的能力&#x…

李沐36_数据增广——自学笔记

数据增强 增强一个已有的数据集,使得有更多的多样性 1.在语言里面加入各种不同的背景噪音 2.改变图片的颜色和形状 一般是在线生成、随机增强 常见数据增强 1.左右翻转 2.上下翻转(不总可行) 3.切割:从图片中切割一块&…

OpenCV4.9图像金字塔

目标 在本教程中,您将学习如何: 使用 OpenCV 函数 pyrUp()和 pyrDown()对给定图像进行下采样或上采样。 理论 注意 下面的解释属于 Bradski 和 Kaehler 的 Learning OpenCV 一书。 通常,我们需要将图像转换为与原始图像不同的大小。为此…

函数的参数命名和默认参数

在Kotlin中,函数可以有多个参数,记住参数的顺序或者仅靠位置理解他们的作用可能会很具有挑战性,特别是对于接受多个参数或者有相同类型参数的函数。命名参数通过允许开发者指定传递给函数的每个参数的名称来解决这个问题。 有一个用来展示用户…

了解 Vue 工程化开发中的组件通信

目录 1. 组件通信语法 1.1. 什么是组件通信? 1.2. 为什么要使用组件通信? 1.3. 组件之间有哪些关系(组件关系分类)? 1.4. 组件通信方案有哪几类 ? 2. 父子通信流程图 3. 父传子 3.1. 父传子核心流程…

【C++成长记】C++入门 | 类和对象(中) |类的6个默认成员函数、构造函数、析构函数

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:C❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、类的6个默认成员函数 二、构造函数 1、概念 2、特性 三、析构函数 1、概念 2、特性 一、…

LabVIEW专栏六、LabVIEW项目

一、梗概 项目:后缀是.lvproj,在实际开发的过程中,一般是要用LabVIEW中的项目来管理代码,也就是说相关的VI或者外部文件,都要放在项目中来管理。 在LabVIEW项目中,是一个互相依赖的整体,可以包…

51-40 Align your Latents,基于LDM的高分辨率视频生成

由于数据工程、仿真测试工程,咱们不得不进入AIGC图片视频生成领域。兜兜转转,这一篇与智驾场景特别密切。23年4月,英伟达Nvidia联合几所大学发布了带文本条件融合、时空注意力的Video Latent Diffusion Models。提出一种基于LDM的高分辨率视…

【简单讲解如何安装与配置Composer】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

深入探索:Zookeeper+消息队列(kafka)集群

目录 前言 一、Zookeeper概述 1、Zookeeper概念 2、Zookeeper 特点 3、Zookeeper工作机制 4、Zookeeper 选举机制 4.1 第一次启动选举机制 4.2 非第一次启动选举机制 5、Zookeeper 数据结构 6、Zookeeper 应用场景 二、部署 Zookeeper 集群 1、环境部署 2、安装 z…

构建鸿蒙ACE静态库

搭建开发环境 根据说明文档下载鸿蒙全部代码,一般采取第四种方式获取最新代码(请保证代码为最新) 源码获取Windows下载编译环境 MinGW GCC 7.3.0版本 请添加环境变量IDE 可以使用两种 CLion和Qt,CLion不带有环境需要安装MinGW才可以开发,Qt自带MinGW环境&#xff0…

【Canvas与艺术】绘制磨砂黄铜材质Premium Quality徽章

【关键点】 渐变色的使用、斜纹的实现、底图的寻觅 【成果图】 ​​​​​​​ 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><tit…

跑腿平台隐藏服务用法,搭建平台这些跑腿服务也能做!

跑腿场景竞争愈发激烈激烈 事实上&#xff0c;跑腿行业早已群狼环伺&#xff0c;尽管跑腿领域仍有很大的发展空间&#xff0c;但新晋玩家都普遍把目光投向了外卖配送这个细分领域&#xff0c;难免会增加后来者的市场拓展和发展难度。那么&#xff0c;在跑腿服务行业中还有哪些…

springboot上传模块到私服,再用pom引用下来

有时候要做一个公司的公共服务模块。不能说大家都直接把代码粘贴进去&#xff0c;因为会需要维护很多份&#xff1b;这样就剩下两个方式了。 方式一&#xff1a;自己独立部署一个公共服务的服务&#xff0c;全公司都调用&#xff0c;通过http、rpc或者grpc的方式&#xff0c;这…

Http响应报文介绍

所有HTTP消息(请求与响应)中都包含&#xff1a; 一个或几个单行显示的消息头(header)&#xff0c; 在消息头部分主要包含&#xff1a;响应行信息和响应头信息 一个强制空白行&#xff1b; 最后是响应消息主体&#xff1b; 以下是一个典型的HTTP响应: HTTP/1.1 200 OK -- 响…

【MATLAB源码-第15期】基于matlab的MSK的理论误码率与实际误码率BER对比仿真,采用差分编码IQ调制解调。

1、算法描述 在数字调制中&#xff0c;最小频移键控&#xff08;Minimum-Shift Keying&#xff0c;缩写&#xff1a;MSK&#xff09;是一种连续相位调制的频移键控方式&#xff0c;在1950年代末和1960年代产生。[1] 与偏移四相相移键控&#xff08;OQPSK&#xff09;类似&…

nodejs解析url参数

需要引入 url 模块&#xff1b; var http require(http); var url require(url);http.createServer(function (req, res) {res.writeHead(200, {Content-Type: text/plain});// 解析 url 参数var params url.parse(req.url, true).query;res.write("name: " par…

解决Git 不相关的分支合并

可以直接调到解决方案,接下来是原因分析和每步的解决方式 问题原因: 我之前在自己本机创建了一个初始化了Git仓库,后来有在另一个电脑初始化仓库,并没有clone自己在本机Git远程仓库地址,导致Git历史版本不相关 错误信息 From https://gitee.com/to-uphold-justice-for-other…