1、1基于多 FPGA 的片上网络模拟平台设计和实现摘要:针对片上网络的设计和优化问题,提出了一种基于多 FPGA的片上网络模拟平台结构,用于加速片上网络的功能验证和性能评估.通过层次化设计和分布式流量管理器等技术,有效地提高了系统的灵活性,加速了片上网络的设计空间搜索.实验结果表明,多 FPGA模拟平台不仅相对于传统的软件仿真具有 50010 000倍的加速比,与其他片上网络模拟平台相比也具有明显的速度优势. 关键词:现场可编程门阵列(FPGA) ;模拟平台;片上网络;软硬件 中图分类号:TN402 文献标识码:A 随着应用的发展和芯片制造水平的提高,片上系统单位面积上计算核心的数量呈现出近似指
2、数的增长趋势1.进入 65 nm工艺后,片上连线延时的比重迅速上升,甚至超过逻辑延时,这导致基于总线的传统互连结构无法满足复杂系统芯片的设计需求2.高性能的系统级芯片强调良好的逻辑和物理局部性,以降低芯片的全局连线延时.片上网络(NetworksonChip)相对于总线具有良好的伸缩性和能量效率,能够有效地缓解全局连线在深亚微米工艺条件下所引入的延时和功耗等问题,因而被认为是一种适合未来多核系统芯片大规模扩展的片上互连和通信结构3. 片上网络拥有庞大的设计空间,其研发周期覆盖拓扑结构、路由算法、交换策略、流控制机制、服务质量、通信协议和网络接口等多个方2面的设计和实现问题4.因此如何快速地验证
3、片上网络硬件结构的功能,并准确地评估其性能和实现开销成为设计者面临的严峻挑战.基于 FPGA的硬件模拟技术5-7相对于典型的软件仿真技术8-9具有明显的速度优势,尤其适合大规模片上网络设计空间的深度搜索. 现有的片上网络 FPGA模拟平台大多采用片上微处理器,配合专用的硬件功能单元,为目标网络产生模拟环境中所需要的各种流量模型5.这种方法实现复杂,硬件资源开销较大,且模拟平台的性能往往受到流量模型的制约6,缺乏设计和移植的灵活性.针对这一点,本文提出并实现了一种基于多 FPGA的高性能片上网络模拟平台结构,采用了层次化设计和软件可重构的分布式流量管理器等技术,降低了系统硬件设计的复杂度,减小了
4、流量管理系统与片上网络内核的耦合度,大大提高了片上网络功能验证和性能评估的灵活性. 湖南大学学报(自然科学版)2013 年 第 6期赵淳等:基于多 FPGA的片上网络模拟平台设计和实现 1 片上网络模拟平台 片上网络模拟平台的系统结构框架如图 1所示,包括上位机和基于多 FPGA的原型验证引擎两大部分,两者之间可以通过 PCIe,Ethernet等接口实现高速的数据交换.模拟平台自顶向下可以划分为系统软件层、软/硬件接口层和硬件结构层 3个抽象层次,为结构设计者提供一套完整的多目标、自动化片上网络功能验证和性能评估环境. 硬件结构层主要包括多片多种形式互连(普通单端、LVDS 和千兆级高速串行
5、总线等)的大容量 FPGA芯片,为系统中的硬件功能单元提供充3足的实现空间.完整的片上网络硬件原型包括网络内核、片间网络接口、分布式片上流量管理器和中央控制器等模块.用户可以通过每颗 FPGA芯片上实现的中央控制器,利用系统应用层的软件服务,直接对流量管理器进行读/写操作,完成对其功能的软重构.软/硬件接口层由设备(PCIe、Ethernet)驱动程序构成,为上层软件提供了一组可扩展的专用 API,将上层的软件服务映射为对底层硬件的访问操作,保证系统软件层和硬件结构层之间的正确交互.系统应用层包括在上位机运行的基于高级语言(SystemC)的仿真引擎10和基于脚本语言的控制引擎.其中仿真引擎用
6、于产生下载到流量管理器的模型信息,以及分析处理由流量管理器读回的统计信息;控制引擎则用于控制整个模拟流程,协调和管理各部分系统应用软件功能,以及发起和终止用户对底层硬件的访问操作等. 2 流量管理器软/硬件实现 在片上网络的功能验证和性能评估过程中,流量的产生、收集和分析处理一直都是设计者所面临的最棘手的问题.如何设计结构简单,灵活度高的片上流量管理器,以实现对片上网络全面的功能覆盖和大范围的设计空间搜索,成为整个模拟平台的设计重点和难点.为了提高平台的效率和灵活性,避免网表文件的反复生成和下载,本文设计了软件可重构的分布式片上流量管理器,通过软件配置和控制指令解析的方式为片上网络提供丰富的流
7、量模型. 2.1 流量管理器和中央控制器 流量管理器作为片上网络的终端功能单元,模拟实际系统中的计算4资源节点,按照一定的时间和空间分布规律产生并向网络注入数据,同时接收并校验由其他终端发往本地的数据.流量管理器包括两组单向的总线接口.其中用户接口用于连接片上网络中央控制器,为用户提供“控制指令”的下载和“状态数据”回传服务,接口满足简单的存储器读写规范.系统接口用于连接路由节点,接口满足片上网络物理链路的通信规范.每个路由节点可以根据其空闲物理链路的数量连接一个或多个流量管理器.流量管理器内部用于存储控制指令和状态数据的存储空间被线性地映射到 64位地址所覆盖的空间范围内,允许系统软件层以直
8、接映射的方式对其进行访问.整个硬件系统结构如图 2所示. 流量管理器发送和接收通道的结构如图 3所示,其结构划分为发送通道和接收通道,分别处理网络通信事务的发送和接收.其中发送通道由一块用户只写、网络只读的指令存储器和一个发送控制状态机构成.指令存储器的每一项存储一条流量控制指令,对应一项网络发送事务,其内容由目标地址、事务类型、负载长度、事务编号、发送时间等字段构成.发送控制状态机每次从指令存储器中读出一条流量控制指令,对其进行解析并完成一个完整网络数据包的重建,同时在其结尾添加校验信息,在流控机制的约束下,将数据包有序地注入到片上网络中.接收通道由一块用户只读、网络只写的数据存储器和一个接收控制状态机构成.当流量管理器接收到一个来自其他终端的网络数据包时,接收控制状态机首先对整个数据包的内容进行解析和校验,从中还原出其基本控制信息如源地址、事务类型、负载长度和事务编号等,并记录下其到达时间,然后将这些信息合并为一项状态数据存储到接收通道内的数据存储器中,供5系统软件层读取.