仅对英特尔可见 — GUID: nik1412473912735
Ixiasoft
1.1.3. 用于读的吞吐量
完成数据包的数量 = 512/256 = 2
无ECRC的3 dword TLP头( Header)消耗= 2*20 = 40字节
最大吞吐量% = 512/(512 + 40) = 92%。
这些计算中不考虑任何DLLP和PLP。PCI Express基础规范定义读完成边界(RCB)参数。RCB参数决定自然对齐的地址边界,在这些边界上读请求由多个完成处理。对于根复合,RCB不是64字节就是128字节。但对于所有其他PCI Express器件,RCB为128字节。
读吞吐量取决于以下时间之间的双程延迟:
- 应用逻辑发布一个读请求的时间
- 全部完成数据被归还的时间
为了最大化吞吐量,应用必须发布足够的读请求和处理足够的数据完成。或者,应用必须发布足够的非后置头信用(non-posted header credits)以覆盖该延迟。
下图显示的是存储器读请求(MRd)和完成(CplD)的时序框图。请求器会等待一个完成后才在做出后续读请求,于是造成较少吞吐量。
以下时序框图消除了除首个读以外的完成延迟。此策略维持了高吞吐量。
请求器通过在RX缓冲中为完成选择适当的设置以确保维持完成数据包的最大吞吐量。所有版本的Altera PCIe IP内核提供5种RX Buffer credit allocation performance for requests参数的设置。此参数指定RX缓冲中流程控制头,数据,和完成信用的分配。应该使用此参数分配信用以优化预期工作量。
吞吐量中最后的约束是所支持的剩余读请求数。剩余请求受制于头标签(header tag)数和最大读请求大小。最大读请求的大小由PCIe配置空间device control寄存器(bits 14:12)控制。应用层将头标签分配到非后置请求以识别完成数据。Number of tags supported参数指定可用的标签数。要维持持续的读吞吐量有一个最低标签数要求。该数目取决于系统。Windows系统中,8个标签通常足够确保维持无间歇4字节读请求持续的读完成。High Performance Request Timing Diagram使用4个标签。首个标签复用为第五个读。