IEEE 1394串行总线标准为消费类电子设备及个人计算机提供了一种网络化的数字接口解决方案,不过该系统实际上并不需要上述两种设备就可正常工作。该总线可用于传输实时音频流与视频流,进行数据传输,或发送命令和控制信息至总线上的任何其他设备。系统设计工程师在将IEEE1394添加至消费类电子设备时,应当了解总线带宽是在总线上的所有设备之间共享的。对于同步流量,因为带宽可以保证,所以几乎不会产生什么带宽问题。系统设计人员在设计系统时必须密切关注影响异步带宽的因素。
实现必要的异步带宽主要面临两大瓶颈,即1394芯片组和系统存储器之间接口的吞吐量,以及优化1394的总线性能。
1394芯片组与系统存储器之间的接口吞吐量
系统处理进入与发出1394数据的带宽如何影响着异步性能。比如,到达和发自1394芯片组缓冲的访问时间是多少?1394总线上的数据理论上的传输速度为每46微秒约2048字节。系统处理器或DMA必须处理此数据吞吐量而不会造成缓冲下溢或溢出。
通过1394接口发送数据要求系统处理器除了在系统中控制的功能外,还要执行其它若干功能。1394协议层软件可能要求来自系统处理器的中断与服务。系统处理器必须及时提供上述中断服务并执行协议功能。
由于许多异步处理要求回复,因此性能也取决于接收器件。举例来说,SBP2(串行总线协议2)系统的数据处理速率取决于硬盘驱动器的速度。
各个不同的系统还具备许多其他因素,这也会影响异步性能。系统设计人员应当在系统设计中考虑到这些因素。
优化的1394总线性能
1394串行总线进行两种类型的数据处理:异步的和同步的。就同步处理而言,发送设备将在开始传输前为同步数据分配带宽。由于带宽已经分配,因此可以保证同步数据的带宽。诸如实时音频和视频等到达时间比已确定传送的更为重要的数据,应当采用同步处理。
异步处理已能够保证传送。接收节点硬件将发送确认信息,表示数据包正确接收。但是,其带宽却不能保证。完成所有分配的同步通信后,1394总线将允许进行基于仲裁的异步处理,直到125
微秒的周期结束。不能保证每个节点在每个周期中都可以传输异步数据包。
命令和控制处理是随机的,基本不要求带宽,但需要确认其已获得接收。这些要求使得异步处理相当完美。文件传输中,数据必须正确交付,不过交付中的延迟并不重要,因此也适用于采用异步传输。一般的串行总线协议2
(SBP2) 采用异步事务处理,其也是1394磁盘驱动器用于文件传输的标准方法。近期,某些业内人士倡导采用异步处理进行更多类型的数据传输。例如,EIA775(电子工业协会)和HAVi(家庭音频视频互用性)标准都要求采用异步处理传输时间敏感性强的数据块。SBP2
PVR(个人视频录像机)设备也要求采用异步处理发送数据块进出硬盘驱动器。实施IP over 1394既可以采用异步处理,又可采用异步流处理,都使用异步带宽。使用异步处理来移动时间敏感性强的数据必须优化总线上现有带宽的使用,这是相当重要的,这样才能保证数据在需要时到达需要的地方。
为所有这些应用实现所需异步带宽的一种方法就是优化1394总线性能。如下几种因素会影响1394总线性能,其中包括:
总线配置
总线速度
间隙计数
拓扑中跳跃点 (hop) 的数量
使用1394a异步加速
异步数据包的大小与速度
总线上的其他同步操作
1394b作为总线性能增强
总线配置
总线上最慢的节点会限制整个总线的速度和最大的数据包大小。例如,在图1中,机顶盒只能向DVHS发送最大为1024字节的异步数据包,因为它们是通过较慢的节点-200Mbps数字电视进行连接的。如果数字电视具备400Mbps的功能,那么机顶盒就可以发送最大为2048字节的数据包。表1给出了最大数据包和总线速度之间的相互关系。图1显示了未经过精心优化的拓扑,较好的拓扑应当将STB置于DTV的位置,这样两个S400节点就可以直接相连,而不必通过像S200
DTV这样的低速"速度瓶颈"进行连接了。一条普遍的规则是,应当将相似的速度节点汇集在一起以避免速度瓶颈。
图1 总线速度(略)
表1 总线速度与最大异步数据包大小(略)
图2 带有调节间隙的1394总线周期(略)
请注意,表1中列出的所有数据包大小如果以其相对应的速度在总线上进行传输,那么其所用时间都是相等的。例如,1024字节以200Mbps的速度传输所用的时间与以800Mbps
的速度传输4096字节相同。为了在1394总线上成为"好邻居",所有数据包应当以尽可能快的速度进行传输,从而占用最小的带宽。
间隙计数也会影响1394总线性能。异步总线仲裁取决于数据包间的空闲时间,特别是子行动间隙和仲裁重置间隙。图2给出了1394总线的周期描述。空闲时间的长度取决于间隙计数。如果设计没有优化间隙计数,那么总线可能发生不必要的延迟,从而降低总带宽。我们可用"查验数据包"(参见IEEE
1394a-2000标准的8.5.4.1节)或使用IEEE 1394a-2000标准的表E-1来优化间隙计数。
拓扑中跳跃点的数量也影响异步性能。"菊花链"是指将1394器件进行端到端连接,这是一种低效的总线配置。在图3中,每个异步数据包之间最小的延迟为~2.82微秒。
图4显示了效率高得多的一种"分支"总线拓扑。异步数据包间的最小时间为~1.84微秒。在该例中,通过采用更高效的拓扑在每个异步事务处理间节约了一微秒的带宽。一般来说,由于低效拓扑而使每个异步数据包浪费的带宽会在网络中每个不必要的额外跳跃点增加约1微秒。
需要考虑的另一因素是异步加速。IEEE 1394a-2000为软件添加了选项,可以允许节点在某些情况下不必等待间隙甚或调节即发送异步数据包,从而实现异步数据包加速。异步加速可用于任意其他节点组合,如1394-1995、1394a-2000或1394b-2002等。
1394a中添加的另一种形式的加速是就异步处理采用优先预算。通常说来,单独节点在发送另一个数据包前必须等待调节重置间隙。调节重置间隙的长度几乎是子行动间隙的两倍,是异步开销中的重要部分。优先预算使节点可在等待调节重置间隙前发送固定数量的异步数据包。该性能使节点在每个1394公平性间歇
(fairness interval) 中可以发送超过其"正常值"的数据,从而改善了总线的吞吐量 。其还特别改善了多个器件同时在总线上发送异步数据的系统的性能。
异步数据包大小和速度
每个异步数据包的大小都影响异步数据可用带宽的数量。根据1394标准的描述,每个异步数据包要求最大24字节的开销。发送较大数据包可以节省几个小数据包造成的额外开销。比如,⑺鸵桓?048字节大小的数据包所用的开销比发送4个512字节大小的数据包少72字节,而其调节重置间隙则少三个。
其他同步操作
1394同步处理可以保证带宽。一旦所有被分配的同步通道都获得传输机会,异步处理就可以进行仲裁。如图5所示,较少的同步通信流量意味着异步处理可以获得更多带宽。系统设计人员假定可用的异步带宽时,必须考虑到所需的同步带宽大小。为了增加异步性能,系统设计人员不应传输多于必需的同步数据包。
图3 菊花链总线拓扑(略)
图4 分支拓扑(略)
图5 同步带宽(略)
1394b作为总线性能增强
将来,设计人员可使用1394b来加速数据传输。1394b-2002总线所有者监视器和选择器 (BOSS) 调节为异步传输提供了最终优化。1394b利用双单向通信,使得调节可与数据传输并行进行。一组双绞线连接传输数据,而另一组则传输总线请求。传输节点拥有总线,赋予总线最高的优先请求权,作为特别代码附加在其传输数据包末尾。这就消除了总线上的闲置时段,实现了总线的效率和带宽利用最大化。但是,以上最大效率只适用于仅包括1394b网络。只要总线上还存在1394a节点,总线就会返回到1394a节点要求的调节,这是总线所必需的。
各种因素结合优化总线性能
1394同步服务为传输保证带宽、延迟确定的音频和视频流提供了理想的机制。如果在1394上用保证传送的异步机制实施延迟敏感性强的传输,设计人员必须努力优化可以控制的因素,并就控制之外的因素做出计划。
|