基于fpga开发板的板间光互连网络拓扑结构性能的检测方法
【专利摘要】本发明公开了一种基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法。基于FPGA检测板间光互连的性能。FPGA构成片上的互连结构,每一片的FPGA芯片上都设有与其它板块进行信息交换的接受和发送端口,包括了数据打包模块、数据发送模块、数据接收模块、数据检测模块以及控制模块,这些模块由一个顶层模块进行连接架构,可以在不同的平台上进行模拟。本发明可以检测数据发送的时延、数据发送的误码率以及整个网络拓扑结构的数据吞吐量三项性能指标。适应性较好,可对不同的数量的互连端、不同形式的网络拓扑结构以及不同规格的光器件都能够适用。
【专利说明】基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法
【技术领域】
[0001]本发明涉及计算机领域,集成电路技术,尤其是涉及一种基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法。
【背景技术】
[0002]随着计算机技术的迅速发展,计算机系统的运算速度大规模增加,存储容量大幅度提升,大规模并行技术也得到了极大的发展。而此时制约计算机整体性能的关键因素在于互连网络。集成电路芯片上传统的电互连技术存在难以突破的难题,而相比之下基于新的物理机制的光互连技术则具有很多潜在的优点,包括时空带宽积极高、受到电磁干扰极小、互连密度远大、互连功耗较低等巨大优势。因此采用光互连是解决此瓶颈难题的最可能选择,光互连技术为传输速度快速增长提供了新的技术手段。
[0003]然而,不同的光互连拓扑结构会对光通信的传输性能产生很大影响,选择最优的互连方式才能够为光通信带来福音,如今的拓扑方式多种多样,在软件领域上,更甚的硬件领域上测试其能够达到的性能就变得迫切。目前FPGA芯片作为承载和研究片上互连的硬件设计的途径,已经成为研究热点。
【发明内容】
[0004]本发明的目的在于提供一种基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法。
[0005]本发明采的技术方案的步骤如下:
步骤I)对需要进行性能检测的光互连网络的拓扑结构进行硬件平台的建构,利用性能相同的N块集成有光学收发模块和功能模块的FPGA开发板与和拓扑结构相应的光器件构成待检测性能的网络拓扑结构;
步骤2)用户根据所需要测试的环境选择相应的testbench,包括控制模块中已给定供用户选择的all to all, random两种基本测试平台,控制模块的缺省设置为random,用户还能自行编写testbench进行测试;
步骤3)每一块FPGA开发板上都装有一个控制模块用于控制同一块FPGA开发板的信号收发,而只有其中一块FPGA开发板上有总控模块,负责处理各个FPGA开发板发出的数据发送请求;总控模块所处的FPGA开发板由用户所决定,应选取优先级最高的开发板作为总控模块的所处位置;用户根据所需要的测试环境确定总控模块的仲裁方案,包括各FPGA开发板的优先级顺序、开发板发送请求的应答方式;总控模块的缺省设置为无优先级的请求FIFO应答方式;
步骤4)当任意一块FPGA开发板发出的数据发送请求被总控模块应答后,该FPGA开发板的数据发送状态置为“开启”;在数据发送状态为“开启”的FPGA开发板内,数据打包模块先用任意一种伪随机码的产生方式计算出一个16bit的RAM存储地址,并用该RAM存储地址从存有既定数据的RAM中读出一段需要发送的数据流,然后将其加上包头标志、包尾标志、目标FPGA开发板地址、RAM地址、数据包发送时间点组成一个完整的数据包,并传送到数据发送模块;
步骤5)在数据发送模块内,把从数据打包模块发送过来的数据包以每个时钟周期16bits位宽的速率打包,转送给Aurora协议进行编码,由SFP接口器件进行光电转换并发送;
步骤6)由数据发送状态为“开启”的开发板发送的光信号进入目标开发板后,由光学收发模块进行光电转换,由Aurora协议进行解码,以每个时钟周期16bits位宽的速率发送到数据接收与检测模块;数据接收与检测模块将以既定的包头标志为首,包尾标志为末,重新组成数据包;
步骤7)根据重新组成的数据包中的RAM地址,读取RAM中的数据,并与重新组成的数据包中的数据流进行对比,计算出数据发送的误码率;将检测时当前的时间与重新组成的数据包中储存的数据包发送时间点相减,计算出传输时延;通过统计总控模块在单位时间内所应答的发送请求的数目,计算出整个拓扑结构的数据吞吐量;
步骤8)通过在顶层模块中添加ICON IP核和VIO IP核,将所要观察的任意信号连接到VIO IP核上;将PC机依次与每一块FPGA开发板相连接,用Xilinx公司的ChipScope软件通过调用ICON IP核来观察连接到VIO IP核上的信号进行监测并读取到在该种光互连网络拓扑结构的性能;
步骤9)用户通过调节步骤2)中设置的testbench,调节步骤3)中的仲裁方式,观察步骤8)中所读取的性能值,可测量网络在不同测试环境下的性能;通过切换到另一种待测的光互连网络的拓扑结构,重复步骤I)?步骤8),测量不同光互连网络拓扑结构的性能。
[0006]所述RAM在N块FPGA开发板中都会预先作为一个IP内核导入,且每块FPGA开发板的RAM内部储存的数据是完全相同的。
[0007]所述顶层模块是用于将数据打包模块、数据发送模块、数据接收与检测模块、控制模块、Aurora协议模块以及RAM IP核、ICON IP核和VIO IP核进行连接,使数据能够在各模块间传输。
[0008]本发明具有的有益效果是:
I)本发明大大减少了开发光互连器件时对光互连网络拓扑结构进行选择前,判断与对比不同拓扑结构性能的成本。
[0009]2)本发明可以检测数据发送的时延、数据发送的误码率以及整个网络拓扑结构的数据吞吐量三项性能指标。
[0010]3)本发明适应性较好,可对不同的数量的互连端、不同形式的网络拓扑结构以及不同规格的光器件都能够适用。
[0011]4)本发明运用了面向对象的设计思想,各个模块的独立性较强,调整与修改模块的灵活度强,调试难度小,监控更简单。
[0012]5)用FPGA芯片承载和验证光互连网络,设计更加灵活,通用性更加强,随时可以更换器件,实现的成本更低。
【专利附图】
【附图说明】[0013]图1是本发明实施中单个FPGA开发板的模块结构示意图。
[0014]图2是本发明数据包的完整格式示意图。
[0015]图3是本发明实现实例的网络拓扑图。
【具体实施方式】
[0016]下面结合附图和实施例对本发明作进一步说明。
[0017]1.对需要进行性能检测的光互连网络的拓扑结构进行硬件平台的建构。此处,利用性能相同将四片Xilinx XUPV5-110T型号FPGA开发板,用光纤组成一个环状结构,并把四块开发板地址依次标记为00、01、10、11 ( 一般情况下,选择优先级最高的FPGA开发板标记为00)。如此一来,每一个光收发模块(SFP模块)的发送端均能够将光信号传输到下一个光收发模块(SFP模块)的接收端,四块FPGA开发板构成了环状网络拓扑结构,如图3所示。将PC机依次与每一块FPGA开发板连接,利用Xilinx ISE 13.4软件为每一块FPGA开发板添加Aurora IP核,添加RAM的IP核并导入相同的RAM数据,添加在生成Aurora IP过程中产生时钟模块、时钟补偿模块和按键消抖模块。为每一块FPGA开发板添加本发明所涉及的模块,包括数据打包模块、数据发送模块、数据接收与检测模块、控制模块以及顶层模块,并在顶层模块中添加ICON IP核和VIO IP核,将所要观察的信号连接到VIO IP核上。此时每一块FPGA板上的各模块的连接架构如图1所示。
[0018]2.根据所需要测试的环境选择相应的testbench,包括控制模块中已给定供用户选择的all to all,random两种基本测试平台,也能自行编写testbench进行测试。根据环状网络拓扑结构的特征,由于该种光互连网络拓扑结构不存在阻塞现象,因此这里选择allto all 这种 testbench。
[0019]3.四块FPGA开发板中只有其中一块FPGA开发板添加总控模块,负责处理各个FPGA开发板发出的数据发送请求;总控模块所处的FPGA开发板应选取优先级最高的开发板作为总控模块的所处位置,此处选取编号为00的FPGA开发板,为它添加总控模块;根据所需要的测试环境确定总控模块的仲裁方案,包括各FPGA开发板的优先级顺序、开发板发送请求的应答方式,此处直接选用缺省的仲裁方式,即无优先级的FIFO请求应答方式。在完成上述步骤后,地址标记为00的FPGA开发板与电脑的连接线不断开。
[0020]4.在上述准备工作完全就绪后,将每块FPGA开发板同时进行复位,使开发板开始正常运行,并执行数据收发工作。当任意一块FPGA开发板发出的数据发送请求被总控模块应答后,该FPGA开发板中的数据打包模块开始产生数据包,所产生的数据包由包括了包头标志Start、包尾标志End、目标FPGA开发板地址Addr、RAM地址RAM_Addr、数据包发送时间点Sys_CLK以及数据流Data,其结构如图2所示。其中,将包头标志Start设置为16’ hABCD,包尾标志End设置为16’ hDCBA, RAM地址RAM_Addr为由任意一种伪随机码产生式产生的16bit随机数,数据流Data为RAM_Addr从RAM中读取出来的1024bit的数据,数据包发送时间点Sys_CLK是一个计时器所记录的当前的时间点,它在每个时钟周期会自行加1,每一块FPGA的Sys_CLK是同步的。数据打包模块完成数据包的的产生后,将数据包传输给数据发送模块。
[0021]5.在数据发送模块内,把从数据打包模块发送过来的数据包以每个时钟周期16bits位宽的速率打包,转送给Aurora协议进行编码,由SFP接口器件进行光电转换并发送。
[0022]6. 由数据发送状态为“开启”的开发板发送的光信号进入目标开发板后,由光学收发模块进行光电转换,由Aurora协议进行解码,以每个时钟周期16bits位宽的速率发送到数据接收与检测模块;数据接收与检测模块在将接收到的数据以包头标志Start为开始,包尾标志End位结束,重新组成数据包。
[0023]7.数据包重组完成后,数据接收与检测模块首先检查数据包中储存的目标FPGA开发板地址与接收到数据的开发板的地址是否一致,若不一致,重新传递给发送模块发给下一个FPGA开发板;若一致,则开始进行性能检测。将Sys_CLK(即接收到数据包包并开始检测的时间)与数据包内存储的Sys_CLK(即发送包的时间)相减,将差值乘以FPGA开发板的时钟周期,计算出单个数据包收发的时延;将所有接收到的数据包的时延取平均数即所需要求的时延。读取数据包中的RAM_Addr并用该地址读取RAM中的数据流,与数据包中的数据流Data按位进行对比,通过计算误码总位数与数据流总位数的比值,获取数据传输的误码率。(此处值得注意的是,这种检测方案适用于实际误码率很低的情况。数据流的数据长度远大于其他所有部分,因此才能忽略其他部分的误码;而实验结果也表明,FPGA之间用光纤传输数据产生的误码率确实是极小的。如果遇到了误码率较大的情况,如光信号传输过程中使用了多级的低性能光器件,在编码方面又没有纠错与检错机制,那么一旦数据流Data以外的部分产生误码,将造成严重的后果,此时本发明中所提到的误码率检测方式将不适用)。通过统计总控模块在单位时间内所应答的发送请求的数目,计算出整个拓扑结构的数据吞吐量。
[0024]8.将编号的00的FPGA开发板所连接的电脑的的ChipScope软件打开,通过ICONIP核和VIO IP核,将所要观察的任意信号连接到VIO IP核上^fPC机依次与每一块FPGA开发板相连接,观察连接到VIO IP核上的信号,进行监测并读取到在该种光互连网络拓扑结构的性能参数。之后,依此再将另外三块FPGA开发板连接PC机,分别读取该种光互连网络拓扑结构的性能参数。在测量数据的时候,应选择每块FPGA开发板同时复位并运行I分钟后再读取,使得取样本数量足够多,求得的平均值更有参考性。
[0025]9.通过调节步骤2中设置的testbench,调节步骤3中的仲裁方式,观察步骤8中所读取的性能值,可测量网络在不同测试环境下的性能;通过切换到另一种待测的光互连网络的拓扑结构,重复步骤I~8,测量不同光互连网络拓扑结构的性能。
[0026]上述【具体实施方式】用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
【权利要求】
1.基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法,其特征在于,该方法的步骤如下: 步骤I)对需要进行性能检测 的光互连网络的拓扑结构进行硬件平台的建构,利用性能相同的N块集成有光学收发模块和功能模块的FPGA开发板与和拓扑结构相应的光器件构成待检测性能的网络拓扑结构; 步骤2)用户根据所需要测试的环境选择相应的testbench,包括控制模块中已给定供用户选择的all to all, random两种基本测试平台,控制模块的缺省设置为random,用户还能自行编写testbench进行测试; 步骤3)每一块FPGA开发板上都装有一个控制模块用于控制同一块FPGA开发板的信号收发,而只有其中一块FPGA开发板上有总控模块,负责处理各个FPGA开发板发出的数据发送请求;总控模块所处的FPGA开发板由用户所决定,应选取优先级最高的开发板作为总控模块的所处位置;用户根据所需要的测试环境确定总控模块的仲裁方案,包括各FPGA开发板的优先级顺序、开发板发送请求的应答方式;总控模块的缺省设置为无优先级的请求FIFO应答方式; 步骤4)当任意一块FPGA开发板发出的数据发送请求被总控模块应答后,该FPGA开发板的数据发送状态置为“开启”;在数据发送状态为“开启”的FPGA开发板内,数据打包模块先用任意一种伪随机码的产生方式计算出一个16bit的RAM存储地址,并用该RAM存储地址从存有既定数据的RAM中读出一段需要发送的数据流,然后将其加上包头标志、包尾标志、目标FPGA开发板地址、RAM地址、数据包发送时间点组成一个完整的数据包,并传送到数据发送模块; 步骤5)在数据发送模块内,把从数据打包模块发送过来的数据包以每个时钟周期16bits位宽的速率打包,转送给Aurora协议进行编码,由SFP接口器件进行光电转换并发送; 步骤6)由数据发送状态为“开启”的开发板发送的光信号进入目标开发板后,由光学收发模块进行光电转换,由Aurora协议进行解码,以每个时钟周期16bits位宽的速率发送到数据接收与检测模块;数据接收与检测模块将以既定的包头标志为首,包尾标志为末,重新组成数据包; 步骤7)根据重新组成的数据包中的RAM地址,读取RAM中的数据,并与重新组成的数据包中的数据流进行对比,计算出数据发送的误码率;将检测时当前的时间与重新组成的数据包中储存的数据包发送时间点相减,计算出传输时延;通过统计总控模块在单位时间内所应答的发送请求的数目,计算出整个拓扑结构的数据吞吐量; 步骤8)通过在顶层模块中添加ICON IP核和VIO IP核,将所要观察的任意信号连接到VIO IP核上;将PC机依次与每一块FPGA开发板相连接,用Xilinx公司的ChipScope软件通过调用ICON IP核来观察连接到VIO IP核上的信号进行监测并读取到在该种光互连网络拓扑结构的性能; 步骤9)用户通过调节步骤2)中设置的testbench,调节步骤3)中的仲裁方式,观察步骤8)中所读取的性能值,可测量网络在不同测试环境下的性能;通过切换到另一种待测的光互连网络的拓扑结构,重复步骤I)~步骤8),测量不同光互连网络拓扑结构的性能。
2.根据权利要求1所述的基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法,其特征在于:所述RAM在N块FPGA开发板中都会预先作为一个IP内核导入,且每块FPGA开发板的RAM内部储存的数据是完全相同的。
3.根据权利要求1所述的基于FPGA开发板的板间光互连网络拓扑结构性能的检测方法,其特征在于:所述顶层模块是用于将数据打包模块、数据发送模块、数据接收与检测模块、控制模块、Aurora协议模块以及RAM IP核、ICON IP核和VIO IP核进行连接,使数据能够在各模块间传输。
【文档编号】G06F15/173GK103902501SQ201410130163
【公开日】2014年7月2日 申请日期:2014年4月2日 优先权日:2014年4月2日
【发明者】杨建义, 王晓雪, 曹凌霄, 张涵, 江晓清, 周强, 李宇波, 郝寅雷 申请人:浙江大学