从通用计算到实时协同:基于飞腾D3000M+FPGA的国产VPX计算平台设计
一、前言
随着工业控制、实时数据采集、边缘计算等应用不断向高性能、高集成度方向发展,嵌入式计算平台所承担的任务也在发生变化。
过去,一块处理器板卡可能主要承担操作系统运行、设备管理以及常规的数据处理任务。但在一些实时性要求较高的应用中,除了需要CPU完成通用计算,还需要同时处理高速数据传输、实时接口以及并行数据处理等任务。单纯依靠CPU的传统架构,在部分应用场景下已经很难同时兼顾通用计算能力和实时处理能力。
基于这样的设计思路,我们近期做了一款以飞腾D3000M处理器+FPGA协处理器为核心的VPX计算平台。
整个系统采用CPU与FPGA异构协同架构:飞腾D3000M主要承担操作系统、应用程序及通用计算任务,FPGA侧则更多承担高速接口扩展和实时并行处理任务。同时通过VPX背板将PCIe、SRIO、串口、网络以及GPIO等资源向系统侧扩展。
本文主要从硬件架构和接口规划的角度,对这一平台的设计思路做一个简单整理。
二、整体硬件架构
整板的核心采用飞腾D3000M处理器。
D3000M采用8核架构,大核最高主频2.5GHz,小核主频1.8GHz。在实际应用中,相比单纯追求CPU峰值性能,我们更关注的是它与国产操作系统、存储、网络以及FPGA之间形成一个完整计算平台后的综合能力。
CPU侧配置16GB LPDDR5X内存,根据项目需求最高可扩展至64GB。
存储方面,板载1路M.2 NVMe 2280 SSD接口,可以直接安装NVMe固态硬盘,用于操作系统、应用程序以及本地数据存储。
BootLoader采用飞腾UEFI,操作系统目前支持银河麒麟V10/V11。
从整个架构来看,可以简单理解为:
D3000M负责“通用计算”,FPGA负责“实时与并行处理”,VPX负责“系统级互联与扩展”。
这也是这块板卡设计时比较核心的一个思路。
三、为什么采用“CPU+FPGA”异构架构?
如果只考虑运行桌面操作系统和普通应用程序,D3000M本身已经可以完成大量计算任务。
但VPX系统实际面对的应用往往不仅仅是运行一个操作系统。
例如实时数据采集、设备通信、多通道数据处理等场景,通常还会涉及不同类型的接口协议,以及对确定性和并行处理能力的要求。
因此在CPU之外,板上增加了一颗JFM7K325T FPGA协处理器,并配置2GB DDR3缓存。
CPU与FPGA之间通过一路PCIe x4进行连接。
FPGA侧提供:
- 2路SRIO x4;
- 多路GPIO;
- 2GB DDR3缓存;
- 高速接口及实时并行处理能力。
这样的架构可以将系统管理、操作系统及复杂应用交给CPU,而部分对时序、实时性或者并行处理要求较高的任务放到FPGA侧完成。
两部分之间通过PCIe进行数据交互,从而形成一个相对灵活的异构计算架构。
四、TSN也是这次设计中比较关注的一部分
除了普通千兆以太网之外,板上还设计了1路TSN网络接口。
因此网络部分由:
1路千兆以太网 + 1路TSN
组成。
普通以太网可以承担常规的数据通信任务,而TSN(Time-Sensitive Networking,时间敏感网络)则为一些对网络通信确定性、时间同步及实时传输要求较高的系统提供了进一步扩展的可能。
从硬件拓扑来看,TSN模块通过PCIe与D3000M连接。
对于一些实时数据采集、设备协同以及确定性通信场景,这种设计相比单一的普通以太网接口具有更大的系统配置空间。
五、接口资源如何分配?
在实际VPX系统中,接口数量并不是越多越好。
一个更现实的问题是:哪些接口应该放在前面板方便调试,哪些接口应该通过VPX背板进入整个系统?
这块板在设计时也做了相应区分。
前面板主要保留日常使用和调试频率较高的接口,包括:
2路USB 3.0 + 1路DP显示接口。
其余大量系统接口则通过VPX背板引出。
USB方面一共提供4路USB 3.0,其中2路位于前面板,另外2路通过背板输出。
串行通信接口包括:
1路RS232、2路RS485、2路RS422,均通过VPX背板引出。
显示部分除了前面板的DP之外,还通过背板提供1路HDMI和1路VGA,其中VGA与前面板DP采用复用设计。
此外还有多路GPIO资源供系统使用。
这种前后接口分配方式,一方面方便开发阶段进行调试,另一方面在板卡安装到VPX机箱后,可以通过背板完成系统级连接,减少前面板大量线缆带来的布线问题。
六、PCIe与高速数据通道
PCIe是整个系统内部比较重要的一条高速互联通道。
目前平台配置两路PCIe x4:
一路PCIe x4引出到VPX背板;另一路PCIe x4用于D3000M与FPGA之间连接。
第一路为系统后续扩展留下了空间,可以根据具体项目需要进一步连接其他功能模块;第二路则承担CPU与FPGA之间的数据交互。
FPGA侧进一步提供2路SRIO x4至VPX系统。
因此从整体拓扑上看,平台实际上形成了:
CPU → PCIe → FPGA → SRIO/IO
以及
CPU → PCIe → VPX背板
两条主要高速扩展路径。
这使平台既可以作为相对独立的计算节点使用,也可以放入多板卡VPX系统中承担计算、控制或者数据处理节点的角色。
七、主要硬件参数整理
为了方便查看,将主要参数汇总如下:
| 项目 | 配置 |
|---|---|
| 处理器 | 飞腾D3000M,8核,大核最高2.5GHz、小核1.8GHz |
| 内存 | 16GB LPDDR5X,最高支持64GB |
| 存储 | 板载M.2 NVMe 2280 SSD接口 |
| 普通网络 | 1路千兆以太网 |
| TSN | 1路TSN网络 |
| USB | 4路USB 3.0,前面板2路、背板2路 |
| 显示 | 前面板1路DP;背板1路HDMI、1路VGA |
| 串口 | 1×RS232、2×RS485、2×RS422 |
| PCIe | 1×PCIe x4至背板;1×PCIe x4连接FPGA |
| FPGA | JFM7K325T |
| FPGA缓存 | 2GB DDR3 |
| FPGA高速接口 | 2×SRIO x4、多路GPIO |
| BootLoader | 飞腾UEFI |
| 操作系统 | 银河麒麟V10/V11 |
| 系统供电 | DC 12V |
| 整板功耗 | <35W |
| 工作温度 | -20℃~50℃ / -40℃~65℃ |
| 存储温度 | -40℃~70℃ |
| 国产化 | 器件及系统可实现100%国产化 |
八、从系统角度看这套架构
如果把所有接口参数拆开来看,这块板似乎就是CPU、FPGA、PCIe、TSN、USB、显示和串口等模块的组合。
但从系统设计角度来看,更值得关注的其实是这些资源之间的关系。
D3000M负责操作系统和通用计算,FPGA承担实时并行处理和接口扩展;PCIe负责CPU与FPGA以及VPX系统之间的高速数据交互;TSN则为确定性网络通信提供硬件接口基础。
因此,这类平台比较适合需要同时完成**“采集—处理—传输—存储”**的嵌入式系统。
特别是在实时数据采集、工业控制、测试测量以及其他需要VPX系统级互联的应用中,CPU与FPGA异构协同相比单一CPU架构具有更大的设计灵活性。
与此同时,扩展接口、FPGA逻辑以及VPX背板资源也可以根据不同系统的实际接口需求进行调整。
九、结语
当前国产计算平台的发展已经逐渐从早期的“核心器件替代”,向处理器、操作系统、高速互联、实时通信以及异构计算协同等更完整的系统层面演进。
对于VPX这类面向嵌入式和专用计算领域的平台而言,国产化也不仅仅意味着将某一颗处理器更换为国产型号,更重要的是围绕国产CPU建立完整的软件、存储、网络、接口和协处理生态。
基于飞腾D3000M与FPGA构建异构计算架构,也是我们在这一方向上的一次硬件平台设计实践。
随着国产处理器性能、国产操作系统生态以及FPGA、高速互联等技术不断完善,未来国产VPX平台能够承担的任务也会越来越复杂。从通用计算到实时数据处理,再到多板卡之间的高速互联,国产化嵌入式计算平台正在逐步从“能够实现”向“系统化应用”发展。
本文主要记录这一平台目前的硬件架构和设计思路,后续有机会也可以继续整理一些D3000M、FPGA协同以及VPX背板接口设计方面的实际开发经验,与大家交流。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)