AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation ....

18
2009 Altera Corporation ᓩ㿔 PCI Express催ᗻ㛑খ㗗䆒䅵Џ㽕ҟ㒡Altera ® PCI Express MegaCore ® 㛑⹀ḌIPᅲ⦄ⱘᗻ㛑DŽ䆒䅵ᣀ催 ᗻ㛑䫒Ⳉᄬټ䆓䯂(DMA)㛑ˈᅗStratix ® IV GX FPGAArria ® II GXݙ䚼ᄬټ㋏㒳ᄬټ П䯈ᅲ⦄᭄Ӵ䗕DŽখ㗗䆒䅵ᣀѢWindows XPⱘᑨ⫼䕃ӊˈ⫼ѢᓎゟDMAӴ䗕DŽᑨ⫼䕃ӊ䖬⌟䞣ᑊ ᰒ⼎Ӵ䗕ᗻ㛑DŽᙼҹ߽⫼䆹খ㗗䆒䅵ᴹ䆘ԄPCI Expressण䆂Stratix IV GXArria II GXӊЁ䞛⫼ ⹀ḌIPᅲ⦄ⱘᗻ㛑DŽ Alteraৠᯊҹ⹀ḌIP䕃ḌIPⱘᔶᓣᦤկPCI Express MegaCore㛑DŽҹḍッষ㗙ッ⚍ⱘᔶᓣᅲ⦄⹀Ḍ IPDŽ⹀ḌIPヺড়PCI Expressᴀ㾘㣗1.12.0DŽ䕃ḌIP㛑ҹッ⚍ⱘᔶᓣᅲ⦄DŽᅗヺড়PCI Expressᴀ㾘 1.0a1.1DŽ ᴀᑨ⫼ヨ䆄䖬ᣀ䅵ㅫPCI Express MegaCore㛑৲䞣ⱘᬭˈҹঞ䖤㸠䫒DMA䆒䅵ᅲ՟ⱘ䇈ᯢDŽ䖭ϔ খ㗗䆒䅵ⱘ䫒DMAᰃ⬅PCI Express㓪䆥⫳៤ⱘ䫒DMAᅲ՟DŽ PCI Express㓪䆥⫼ᣛफ䆺㒚㾷䞞њ䖭 ϔᅲ՟DŽ ᴀᑨ⫼ヨ䆄ᣀҹϟ䚼 ˖ߚŶ 1义ⱘ⧚㾷PCI ExpressЁⱘ৲䞣Ŷ 6义ⱘখ㗗䆒䅵Џ㽕㒘៤Ŷ 6义ⱘখ㗗䆒䅵㛑䇈ᯢŶ 10义ⱘޚ䖯㸠䆒䅵Ŷ 17义ⱘᗻ㛑⌟ޚ䆩㒧ᵰ⧚㾷PCI ExpressЁⱘ৲䞣 PCI Express㋏㒳ⱘ৲䞣পއѢ⾡㋴ˈᣀण䆂ᓔ䫔ǃ䋳䕑ᇣǃᅠ៤ᓊᯊ⌕ᮄᓊᯊㄝDŽ ৲䞣䖬Ϣᵘ៤䫒䏃ⱘӊ⡍ᗻDŽ䖭ϔ䚼ߚ䅼䆎ᙼߚᵤ৲䞣ᯊᖙ乏㗗㰥ⱘ⾡㋴DŽ䖭ϔᅲ՟ ؛䆒Ꮉ2.5 Gbps×1䫒䏃DŽⳌৠⱘ⧚䆎г䗖⫼Ѣ5.0 GbpsGen2䫒䏃DŽ ण䆂ᓔ䫔 PCI ExpressՓ⫼8b/10b㓪ⷕˈ↣ϔᄫ㡖᭄䕀ᤶЎ10ԡ᭄㓪ⷕˈᇐ㟈25%ⱘᓔ䫔DŽℸˈᬜ᭄䗳⥛ 2 Gbpsˈ㗙↣䗮䏃250 MBpsDŽ Ꮉ䫒䏃Ӵ䗕᭄䫒䏃ሖ᭄(DLLP)⠽⧚ሖ᭄(PLP)DŽPLP䭓ᑺЎಯᄫ㡖ˈ㗙ϔϾঠᄫˈ SKPᑣ䲚DŽDLLP䭓ᑺЎϸϾঠᄫˈACK/NAKDLLPDŽACKDLLPӴ䗕ᮍ ϢӮ䆱ሖ᭄(TLP)ⳌডDŽᔧ䫒䏃থ䗕ᬊᆑᏺ᭄ᯊˈӮ໘⧚䞣ⱘDLLPˈ㑺↣ϾTLPϔϾDLLPDŽ DLLPPLP䰡ԢњTLPᬜᏺᆑDŽTLPḐᓣབ1᠔⼎DŽ AN 456: PCI Express 催ᗻ㛑 খ㗗䆒䅵

Transcript of AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation ....

Page 1: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

2009 Altera Corporation

引言 PCI Express高性能参考设计主要介绍Altera

® PCI Express MegaCore

®功能硬核IP实现的性能。设计包括高

性能链直接存储器访问(DMA)功能,它在Stratix®

IV GX FPGA或者Arria®

II GX内部存储器和系统存储器

之间实现数据传送。参考设计包括基于Windows XP的应用软件,用于建立DMA传送。应用软件还测量并

显示传送性能。您可以利用该参考设计来评估PCI Express协议在Stratix IV GX或者Arria II GX器件中采用

硬核IP实现的性能。 Altera同时以硬核IP和软核IP的形式提供PCI Express MegaCore功能。以根端口或者端点的形式实现硬核

IP。硬核IP符合PCI Express基本规范1.1和2.0。软核IP只能以端点的形式实现。它符合PCI Express基本规范1.0a和1.1。 本应用笔记还包括计算PCI Express MegaCore功能吞吐量的教程,以及运行链DMA设计实例的说明。这一

参考设计的链DMA是由PCI Express编译器生成的链DMA实例。PCI Express编译器用户指南详细解释了这

一实例。 本应用笔记包括以下部分: ■ 第1页的“理解PCI Express中的吞吐量” ■ 第6页的“参考设计主要组成” ■ 第6页的“参考设计功能说明” ■ 第10页的“准备进行设计” ■ 第17页的“性能基准测试结果” 理解PCI Express中的吞吐量 PCI Express系统的吞吐量取决于多种因素,包括协议开销、负载大小、完成延时和流控制更新延时等。

吞吐量还与构成链路的器件特性有关。这一部分讨论您在分析吞吐量时必须考虑的各种因素。这一实例

假设工作在2.5 Gbps的×1链路。相同的理论也适用于5.0 Gbps的Gen2链路。 协议开销 PCI Express使用8b/10b编码,每一字节数据转换为10位数据编码,导致25%的开销。因此,有效数据速率

只有2 Gbps,或者每通路250 MBps。 工作链路传送数据链路层数据包(DLLP)和物理层数据包(PLP)。PLP长度为四字节,或者一个双字,含有

SKP有序集。DLLP长度为两个双字,含有ACK/NAK和流控制DLLP。ACK和流控制更新DLLP传送方向

与会话层数据包(TLP)相反。当链路发送和接收宽带数据时,会处理大量的DLLP,大约每个TLP一个DLLP。DLLP和PLP降低了TLP有效带宽。TLP格式如图1所示。

AN 456: PCI Express 高性能

参考设计

Page 2: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

图1.TLP格式

如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

序列ID、三个或者四个双字字长的TLP帧头,以及链路循环冗余校验(LCRC)。TLP帧头长度取决于TLP类型,不同的TLP有不同的帧头长度。TLP的其他部分含有0–1024双字数据负载。 后写入吞吐量 采用下面的公式来计算理论最大吞吐量:吞吐量% = 负载大小/ (负载大小+开销) 图2显示了不同TLP帧头长度,并忽略DLLP和PLP的最大吞吐量。对于256字节最大负载长度,以及三个

双字TLP帧头(或者5个双字开销),最大吞吐量为(256/(256+20)),即92%。 图2.存储器写操作最大吞吐量

PCI Express配置空间中的器件控制寄存器(7:5比特)控制最大TLP负载长度。MegaCore功能参数最大负载

长度设置了器件性能寄存器(2:0比特)所支持的只读最大负载长度值,针对这一负载长度优化了MegaCore功能。您可以将MegaCore功能配置为最大负载长度,然后,根据系统所支持的最大负载长度,由系统来

减小它。这一MegaCore功能参数影响资源利用率,因此,对于采用MegaCore功能的系统,设置参数应不

大于系统所支持的最大负载长度。

Page 3: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

PCI Express使用流控制功能,除非接收器有足够的自由缓冲空间来接收TLP,否则不会发送TLP。在发送

TLP之前,器件应该有足够的帧头和数据信用(credit)。接收端的应用逻辑接收TLP时,它释放接收端会话

层的Rx缓冲空间。接收端发送一个流控制更新(FC更新DLLP)信号,返回源端TLP占用的信用。当器件用

尽所有的最初信用时,它接收信用更新的速度决定了链路带宽。流控制更新取决于发送和接收器件的最

大负载长度和延时。 关于流控制更新环的详细信息,请参考PCI Express编译器用户指南。用户指南详细介绍了流控制更新环

以及相关延时。 读吞吐量 PCI Express使用分割处理方式进行读操作。请求器首先发送一个存储器读请求。然后,接收端发送一个

ACK DLLP,应答存储器读请求。随后,返回能够分割成多个完成包的完成数据。读吞吐量比写吞吐量

低一些,这是因为读完成数据可以分割成多个数据包,而不是返回一个数据包。下面的例子对此进行了

解释。假设512字节的一个读请求,完成包大小为256字节,最大吞吐量计算如下: 完成包数量 = 512/256 = 2 3个双字TLP帧头开销,没有ECRC = 2*20 = 40字节 最大吞吐量% = 512/(512 + 40) = 92%. 这些计算并没有考虑任何DLLP和PLP。PCI Express基本规范设定的读完成边界(RCB)参数确定了自然对

齐地址边界,可以通过多个完成包响应读请求。对于根复合模块,RCB是64字节或者128字节。对于所有

其他PCI Express器件,RCB是128字节。 未对齐读请求会进一步降低吞吐量。 读吞吐量取决于应用逻辑发出读请求直至返回所有完成数据的往返延时。为提高吞吐量,应用层必须发

出足够的读请求,处理足够的读完成包,或者,提供足够的非滞后帧头信用,以覆盖这一延时。 图3显示了存储器读请求(MRd)和完成(CplD)时序图。图中上部的时序图显示了请求器发出连续读请求之

前在等待完成,导致较低的吞吐量。底部的时序图显示,请求器发出足够的存储器读请求,除了第一次

读操作,避免了完成延时,从而保持了较高的吞吐量。

Page 4: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

图3.读请求时序

此外,请求器必须为完成数据包维持较大的吞吐量,这通过在Rx缓冲中选择合适的完成设置,管理应用

逻辑发出读请求和处理完成数据的速率来实现。 关于Rx缓冲设置的建议,请参考PCI Express编译器用户指南。 最大吞吐量受限于一次能够承受的读请求数据量。帧头标签数量以及能够发出的最大读请求长度决定了

这一数据量。PCI Express配置空间中的器件控制寄存器(14:12比特)控制最大读请求长度。帧头标签是应

用层分配给非滞后请求的数字,用于区分该请求与其他请求的完成。MegaCore功能跟踪读请求和完成包,

进行错误检查,因此,在MegaCore功能配置中设置了应用层使用的最大标签数。对于软核IP实现的

MegaCore功能,设定较大的标签会使用较多的资源,因此,降低了性能(fMAX)以及MegaCore功能的吞吐

量。需要一定的标签数来维持持续的读吞吐量。这一数字与系统有关。在Windows系统上,采用8个标签

足以保证连续的读完成,4 Kbyte读请求不会出现断续。图3中显示的高性能系统使用了4个标签。重复使

用第一个标签进行第五次读。

Page 5: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

参考设计主要组成 参考设计包括以下组成: ■ 应用软件和windows驱动程序(32位,Windows XP) ■ Stratix IV GX FPGA开发套件×1、×4和×8工作的FPGA编程文件 ■ Arria II GX FPGA开发套件×1、×4和×8工作的FPGA编程文件 ■ 用于开发板和配置的Quartus

® II档案文件(.qar),包括SRAM目标文件(.sof)、编程器目标文件(.pof)

和SignalTap®

II文件(.stp)。 参考设计功能说明 参考设计包括: ■ 含有链DMA实例的应用层,该实例由MegaCore功能生成。 ■ MegaCore功能变量 ■ 应用软件和Windows XP驱动程序 这些组成如图4所示。 图4.参考设计组成

关于这一参考设计的详细信息,请参考PCI Express编译器用户指南的测试台和设计实例一章。 链DMA实例包括应用逻辑中的两个DMA模块以及一个内部存储器(称为端点存储器)。设计能够支持同时

DMA读和DMA写会话。DMA写模块实现了写操作,数据通过PCI Express链路,从端点存储器传送至根

复合模块(系统存储器)。DMA读模块实现了读操作,数据通过PCI Express链路,从根复合模块(系统存储

器)传送至端点存储器。

Page 6: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

参考设计完全在FPGA中实现,除PCI Express链路外,不需要任何其他硬件接口。在系统存储器和端点存

储器之间传送大量不连续存储数据时,相对于简单的DMA,链DMA的性能更好。在简单的DMA中,应

用软件每一次传送都要设置DMA寄存器。链DMA针对每一存储器页面使用描述符表。这些描述符表含有

以下信息: ■ 传送长度 ■ 传送源和目的地址 ■ 设置应用软件和DMA模块之间握手信号的控制信息 每一描述符含有四个双字。描述符分开放置在连续存储器页面中。 根据GUI中的属性设置,应用软件在系统存储器中建立所需要的描述符表。应用软件还建立一个描述符索

引表,包括描述符总数量以及第一个描述符表的地址等信息。传送开始时,应用软件采用描述符索引表

来设置DMA寄存器。每一次DMA读和DMA写操作时,DMA模块连续采集这些描述符表,每一描述符进

行一次传送。 DMA模块还包括一个性能计数器。当软件将一个描述符索引表写入DMA寄存器时,计数器启动计数,并

连续计数,直到DMA模块传送完最后的数据。传送完成后,应用软件使用计数器值来计算传送吞吐量,

并进行报告。计数器值包括第一次描述符读操作延时,因此,应用软件报告的吞吐量小于实际值。 关于链DMA实例体系结构和编程指令的详细信息,请参考PCI Express编译器用户指南。 MegaCore功能设置 参考设计中使用的MegaCore功能支持的最大负载长度为512字节。将接收完成和请求所需要的性能设置为

Maximum。 表1到表10列出了参考设计中使用的参数,在MegaWizard界面中进行设置。表格列出了×4工作的参数。×1和x8工作设置相同,只是通路数设置为1或者8。表1显示了MegaWizard界面中System Settings页面的参数。

Page 7: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表1. PCI Express MegaCore功能的系统设置

表2列出了PCI Registers页面的设置。 表2. PCI寄存器设置

Page 8: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表3列出了Capabilities页面的设置。 表3. 性能参数

表4列出了Buffer Setup页面的设置。 表4. 缓冲设置参数(2之1)

Page 9: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表4. 缓冲设置参数(2之2)

表5列出了Power Management页面的设置。 表5. 功耗管理参数

关于MegaCore功能参数的详细信息,请参考PCI Express编译器用户指南第3章:参数。 Quartus II设置 参考设计中的.qar文件提供了该参考设计变量参数综合、适配器和时序分析设置的建议。 准备进行设计 这一部分介绍怎样安装参考设计,并为运行应用软件提供指南。包括以下信息: ■“硬件要求” ■“软件要求” ■“软件安装” ■“硬件安装” ■“运行应用软件”

Page 10: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

硬件要求 参考设计需要以下硬件: ■ Stratix IV GX FPGA开发套件或者Arria II GX FPGA开发套件 ■ 运行32位Windows XP的计算机,带有×8/x4/×1 PCI Express插槽,用于Stratix IV GX FPGA或者Arria

II GX开发板。计算机上安装了应用软件和硬件,本文档称其为1#计算机。 ■ 安装了Quartus II软件的计算机,将FPGA编程文件下载至Stratix IV GX FPGA或者Arria II GX开发

板,本文档称其为2#计算机。 ■ USB电缆或者其他Altera下载电缆 ■ 用于×1工作的PCI Express ×4至x1通路转换器 本参考设计使用4个通路。如果母板上的PCI Express插槽少于4个通路,则必须使用通路转换器,将数据

从路数较多的通路传送至路数较少的通路。 软件要求 运行参考设计应用程序时,需要安装以下软件: ■ 1#计算机上安装参考设计软件 ■ PCI Express高性能参考设计包,以可下载压缩文件的形式提供。 了解详细信息,请参考PCI Express高性能参考设计产品页面。 ■ 在2#计算机上运行的Quartus II软件9.0 SP2 软件安装 您必须以管理员身份来安装应用软件。 应用软件只能在32位Windows XP上运行,包括Jungo的WinDriver软件。 按照以下步骤来安装应用软件和Windows驱动: 1. 将PCI Express高性能参考设计包下载到1#计算机上,解压缩文件。图5显示了路径结构。 图5.路径结构

2. 在插入PCI Express卡之前,将altpcie_demo_90路径复制到1#计算机上。 3. 在JungoDrivers路径中,双击install.bat,为应用程序安装Windows XP驱动。 4. 从altpcie_demo_90路径中执行altpcie_demo.exe,运行应用软件。

Page 11: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

硬件安装 如果您使用Stratix IV GX卡,那么,必须检查8位拨位开关的设置,这一开关控制PCI Express工作模式。

图6中显示了该元件。拨位开关的最右侧位置用于切换正常工作和PCI Express兼容基本板(CBB)测试。如

果要运行本应用笔记中提供的软件,该开关必须位于off位置。当它处于on位置时,您可以使用标有PB1的复位开关,在CBB测试需要的各种模式之间循环。(在拨位开关上标出了on位置) 修改了顶层RTL文件,以使能CBB测试。如果您重新生成MegaCore功能,那么可以覆写这一顶层文件,

禁止CBB测试功能。 图6.控制PCI Express工作模式的元件位置

按照以下步骤来安装硬件。 1. 关掉1#计算机,将开发板插到PCI Express插槽中。对于×1工作,使用PCI Express通路转换器。 2. Stratix IV GX FPGA和Arria II GX开发套件含有FPGA编程使用的集成USB-Blaster电路。然而,为

实现主机和开发板之间的通信,您必须在主机上安装USB-Blaster。 如果需要下载USB-Blaster驱动程序,请访问Altera支持网站 www.altera.com/support/software/drivers/dri-index.html。关于安装说明,请访问 www.altera.com/support/software/drivers/usb-blaster/dri-usb-blaster-xp.html。 3. 2#计算机和1#计算机开发板之间连接Altera USB-Blaster电缆(或者其他下载电缆),在2#计算机

上使用Quartus II软件,通过参考设计对FPGA编程。 连接USB-Blaster电缆 按照以下步骤连接USB-Blaster电缆: 1. USB电缆的一端连接开发板上的USB端口(J7)。 2. 电缆的另一端连接运行Quartus II软件的2#计算机的USB端口。

Page 12: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

采用.sof文件进行编程 采用所提供的.sof文件对电路板编程时,中断1#计算机的启动过程,进入BIOS系统设置界面。(在很多

Windows PC上,按下F2键可以中断正常启动) 按照以下步骤,采用.sof文件对FPGA编程: 1. 启动2#计算机上的Quartus II编程器。 2. 点击Hardware Setup,选择USB Blaster。点击Close。 3. 在Quartus II编程器中,点击Auto Detect,列出开发板上JTAG链连接的器件。 4. 右键单击Stratix IV GX器件(EP4SGX230)或者Arria II GX (EP2AGX125),点击Change File。选择

路径,找到对应的.sof文件。 5. 为加入的文件打开Program/Configure选项。 6. 点击Start,将所选文件下载到Stratix IV GX或者Arria II GX器件中。当Progress进度条达到100%

时,器件配置完毕。 7. 1#计算机退出BIOS系统设置或者启动管理器界面。 8. 在1#计算机上,按下Ctl-Alt-Delete,进行软启动。 9. 操作系统探测到新硬件,出现“找到新硬件向导”。在向导中,选择Install the software automatically

(Recommended)。点击Next。 10. 点击Finish,关闭向导。 运行应用软件 按照以下步骤来运行应用软件: 1. 双击altpcie_demo_90路径中的altpcie_demo.exe应用程序。 2. 应用程序报告电路板类型,工作通路的数量以及最大读请求和最大负载长度。 软件GUI具有以下控制域: ■ Transfer length——设定传送长度,以字节表示。 ■ Sequence——控制数据传送或者寻址顺序。 ■ Number of iterations——控制数据传送重复次数。 ■ Board——为应用软件设置开发板。 ■ Continuous loop——打开该选项时,应用程序连续进行传送。 3. 将Transfer length设置为100,000字节,Sequence为Write only,点击Run。

设置为Write only时,软件将FPGA中的DMA寄存器设置为以100,000字节为一组,在FPGA和系统

存储器之间传送数据。性能条报告峰值、平均和最低吞吐量。在所有重复过程中都计算平均吞吐

量。 4. 您可以使用GUI来改变Transfer length和Sequence,重复进行测试。

Page 13: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

图7显示了使用Stratix IV GX器件进行Write only DMA测试的结果。 图7.Write-Only选项

除了参数设置来控制链DMA之外,GUI还提供其他5种命令,您可以利用这些命令来获得器件和电路板的

配置信息,进行根端口读写操作。表6列出了所有的命令。滑动控制位置能够改变命令。 表6.PCI Express性能演示GUI命令和选项(2之1) 命令 选项 说明 Run endpoint DMA (图7) Write only

Read only Read then write Write then read Read and write

将传送数据从FPGA写入系统存储器。将传送

数据从系统存储器读入FPGA。

Scan the endpoint configuration space registers (图8)

Type 0 Configuration PCI Express capability MSI capability Power management capability

报告字节地址偏移和数值,以及所选寄存器设

置说明。

Scan the current PCI Express board settings (图9) — 报告开发板配置设置。

Scan the motherboard PCI bus — 报告母板PCI总线上所有器件的供应商ID、器

件ID、插槽、总线和功能编号。

Page 14: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表6.PCI Express性能演示GUI命令和选项(2之2) 命令 选项 说明 Run root port memory read

At endpoint address From 0x0 to endpoint address

设置母板PCI Express芯片组的根端口为读取FPGA存储器,如下所示:

■如果您选择At endpoint address,可以在Endpoint address域中输入端点存储器起始读地址。

■如果您选择From 0x0 to endpoint address,Endpoint address域设定传送长度。

Run root port memory write

At endpoint address From 0x0 to endpoint address

设置母板PCI Express芯片组的根端口为写入FPGA存储器,如下所示:

■如果您选择At endpoint address,可以在Endpoint address域中输入端点存储器起始写地址。

■如果您选择From 0x0 to endpoint address,Endpoint address域设定传送长度。

图8显示了Scan the Endpoint Configuration Space Registers命令的输出。图9显示了使用Stratix IV GX器件

执行Scan the current PCI Express board settings命令的输出。

图8.扫描端点配置空间寄存器

Page 15: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

图9.扫描当前PCI Express电路板设置

SignalTap II文件 参考设计还包括.stp文件。SignalTap II文件提供了设计性能信息。SignalTap II文件包括来自应用逻辑的关

键信号。DMA读写模块中的init信号在传送开始时变为零。您可以在SignalTap II文件中使用init信号作为

触发来采集数据。 tx_st_ready0和rx_st_valid0指示链路利用率和吞吐量。在传送方向上,tx_st_ready0信号解除置位通常表示,

MegaCore功能没有收到来自PCI Express链路远端器件足够的信用。它还可以提示,×4链路变为×1。在接

收方向,rx_st_valid0解除置位表示,MegaCore功能没有收到足够的数据。 性能基准测试结果 表7列出了使用该参考设计时,Stratix IV GX FPGA开发板×8、×4和×1工作性能,采用了Intel X58芯片组。

表格显示了平均吞吐量,它使用时钟乘法器单元(CMU)时钟,100 Kbytes传送长度和20次重复,256字节

最大写负载长度,512字节最大读请求长度。

Page 16: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表7.Stratix IV GX性能——Intel X58芯片组

表8列出了使用该参考设计时,Arria II GX FPGA开发板×1、×4和×8工作性能,采用了Intel X58芯片组。

表格显示了平均吞吐量,它采用时钟乘法器单元(CMU)时钟Avalon-ST接口,100 Kbytes传送长度和20次重复,256字节最大写负载长度,512字节最大读请求长度。 表8.Arria II GX性能——Intel X58芯片组

Page 17: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表9列出了使用该参考设计时,Arria II GX FPGA开发板×4和×1工作性能,采用了Intel x58芯片组。表格显

示了平均吞吐量,它采用时钟乘法器单元(CMU)时钟Avalon-ST接口,100 Kbytes传送长度和20次重复,

256字节最大写负载长度,512字节最大读请求长度。 表9.Arria II GX性能(软核IP实现)——Intel X58芯片组

表10列出了使用该参考设计时,Stratix II GX版PCI Express开发套件×8、×4和×1工作性能,采用了Intel、Dell和NVIDIA三种芯片组。表格显示了平均吞吐量,采用100 Kbytes传送长度和20次重复。Intel使用了256字节最大负载长度,Avalon-ST接口为512字节最大读请求长度。Dell 490测试使用了256字节最大写负载

长度,64字节读完成。NVIDIA测试使用了128字节最大写负载长度,64字节读完成。 表10. Stratix II GX性能(软核IP实现)

表10注释: (1) 同时DMA读/写操作与系统(PC)存储控制器密切相关。使用四个DIMM获得测量结果。

Page 18: AN 456: PCI Express 高性能 参考设计 - intel.cn · AN 456 2009 Altera Corporation . 图1.TLP格式. 如果不包括可选ECRC,与一个TLP相关的开销在5个双字和7个双字之间。开销包括起始和结束帧符号、

AN 456

2009 Altera Corporation

表11对比了采用Lecroy PCI Express分析器和应用软件,Stratix II GX器件(×8工作)和Dell 490上100 Kbytes传送测得的吞吐量。应用软件和Lecroy PCI Express分析器报告的数据非常接近。 表11. 采用Lecroy PCI Express分析器进行对比

参考

PCI Express编译器用户指南 PCI Express高性能参考设计 PCI Express规范 WinDriver信息

文档修订历史记录 表12列出了本应用笔记的修订历史记录。 表12.文档修订历史 日期和文档版本 进行的修改 修改总结

2009年8月,1.2版 ■更新展示Arria II GX FPGA开发套件上Arria II GX (EP2AGX125)器件的性能。

更新展示Arria II GX器件的

性能。 2009年5月,1.1版 ■更新展示Stratix IV GX FPGA开发套件上Stratix

IV GX (EP4SGX230)器件的性能。■在PCI Express性能演示GUI上增加了新命令。

更新为Stratix IV GX器件和

Arria GX。更新Stratix II GX器件和Intel X58芯片组。

2007年5月,1.0版 初次发布 —