首页 理论教育PCIExpress延时与带宽分析

PCIExpress延时与带宽分析

【摘要】:总线的延时与带宽是一个巨大的话题,即便本节将其局限到PCIe总线,局限到Capric卡,也并不能改变这个话题的沉重。在许多处理器系统中,如Freescale的P4080处理器,RMI的XLP832、Cavium的CN6335处理器,网络设备与FSB直接相连,并在追求最大带宽的同时,尽量减少访问延时。但是目前在PC领域中,高性能网卡依然使用PCIe总线进行连接。本章讲述在PCIe总线中,延时与带宽间的关系,以及存在的问题。PCIe总线基于TLP进行数据传递,因此本节所强调的带宽与延时与TLP直接相关。

总线的延时与带宽是一个巨大的话题,即便本节将其局限到PCIe总线,局限到Capric卡,也并不能改变这个话题的沉重。总线的带宽和延时之间有一定的制约关系,任何一个处理器系统都希望在获得巨大总线带宽的同时,尽量缩小访问延时。

在处理器系统的设计中,必须权衡“提高带宽”与“缩小延时”之间的关系,以组建一个合理的应用系统。在处理器领域,带宽是指数据的传送速率,即1秒钟传送的数据大小。而延时指传送处理一个数据单元所需要的时间。

片面地追求带宽显然并不合理,过大的带宽对某些应用并不合适。我们无法忽视一个满载光盘的火车所能提供的数据带宽,这辆火车至少能传递几十万Pebibyte大小的数据,而且十个小时左右就能从北京抵达上海。显然多辆火车所能提供的带宽非常巨大,但是我们仍然无法使用火车传送网络报文,因为十个小时的延时是许多系统应用无法容忍的。

延时与带宽之间存在某种联系,而不是直接对立关系,并不是带宽越大延时也越大,带宽越小延时也越小。处理器系统设计所追求的目标是提高带宽的前提下,尽可能掩盖传送延时,组成一个可实现的处理器系统。

PCIe总线作为处理器的通用局部总线,需要权衡带宽和延时之间的关系,满足在处理器系统中多数应用的需求,而非包罗万象。PCIe总线能够满足,绝大多数处理器系统,特别是PC系统中的显卡、硬盘,声卡和一些慢速设备与处理器之间的数据传送,但是对于一些延时要求较高的应用并不适用。

当一个网络设备需要以1Gb/10Gb的速率“线速传送”64B大小的网络数据报文时,PCIe总线显得力不从心,通常这种网络设备需要直接与处理器的FSB相连,以尽量缩短传送延时。在许多处理器系统中,如Freescale的P4080处理器,RMI的XLP832、Cavium的CN6335处理器,网络设备与FSB直接相连,并在追求最大带宽的同时,尽量减少访问延时。(www.chuimin.cn)

在x86处理器系统中,可以使用QPI(Quic kPath Interconnect)连接这样的高性能网卡。但是目前在PC领域中,高性能网卡依然使用PCIe总线进行连接。

在一个处理器系统中,为掩盖传送延时,通常使用“流水线”技术,当数据传送的延时增加时,“流水线”所使用的资源也随之增加,并很容易到达处理器系统所不能忍受的范围。本章讲述在PCIe总线中,延时与带宽间的关系,以及存在的问题。PCIe总线基于TLP进行数据传递,因此本节所强调的带宽与延时与TLP直接相关。

在本节中,PCIe总线的带宽指每秒钟传送的“TLP中有效数据“的大小,即PCIe总线的有效带宽。该定义与PCIe总线的链路带宽不同。如PCIe V2.1总线规范链路带宽为5GT/s,而这个带宽需要去掉物理层8/10b转换,以及PCIe总线的协议开销后才能得到PCIe总线的有效带宽。PCIe总线的有效带宽与许多因素相关,包括协议开销、TLP Payload的大小、传送延时、流量控制等因素相关,当然最重要的因素依然是PCIe总线的链路宽度。

PCIe总线的延时指一个存储器请求从产生到结束的时间。值得注意的是存储器读与存储器写TLP的延时计算有所不同,存储器写TLP产生于发送端而结束于接收端,仅计算单向延时;而存储器读请求TLP产生于发送端,接收端将存储器读请求TLP转换为存储器读完成TLP,再发送给发送端,需要计算双向延时。