sRIO 2.0中虚拟通道的优势和加速其采用的技术
扫描二维码
随时随地手机看文章
Serial RapidIO(sRIO)是一种高性能、基于包的技术,可以用于越来越多的应用,包括无线基础设施、存储、医学成像和军工领域。
利用sRIO 2.0标准,系统设计师能够选择从1.25Gbps到6.25Gbps的链路速率,以及1x到16x的端口宽度,提供高粒度来选择最适合具体应用的端口数据速率。在sRIO 2.0的物理层增强以外,还有一系列更高级别的功能,是专门为提供空前的交换器结构流量控制而设计的。
虚拟通道(Virtual channel,VC)可提供控制系统的不同类型流量的能力。VC通过将链路划分为几个独立的通道,将包分配给一个特定通道,有助于系统设计师控制包流量。第一个VC叫VC0,它是一个采用sRIO 2.0标准的向后兼容VC,与sRIO 1.3规范链路的运行一样。此外,sRIO 2.0还支持多达8个以上的VC(VC1-VC8)。
VC增强了对结构中的数据流量的控制。每个VC能保证占到链路带宽的一部分。系统设计师能控制多个流量类型的互动,事实上能通过分配带宽,将它们相互隔离。对延迟敏感的流量(如流视频)能够在整个交换器结构中保证分配到一部分带宽。
由于所有VC可用的带宽都比保证的要少,所以为了最大限度地利用链路,使sRIO 2.0可用于任何可用带宽。实质上,带宽的分配是智能的,同时可确保急需比其分配到的带宽更多的贪婪的VC不能从其他VC抢占带宽,同时确保只要有包发送的时候,没有任何带宽闲置。
图1显示VC带宽预约的优势。三个包流共享一个链路,带宽的10%分配给VC_A,60%分配给VC_B,30%分配给VC_C。在仿真的第一部分中,只有VC_A和VC_C有包要传送,因此它们的带宽增长超出了其各自的分配值,以利用分配给VC_B未使用的部分。如图所示,VC_C能够占据可用链路带宽的75%,而VC_A占有其余的25%。sRIO 2.0允许VC使用未被使用的链路,包分别按照其相应的带宽分配出现。在仿真的后半部分,VC_B出现通过共享链路传送的流量。sRIO 2.0允许交换器迅速响应流量的变化,并在需要匹配已编程分配时改变带宽利用率。在这种情况下,一个间断但对延迟敏感的流,如VC_B,可快速获得其60%的分配。一旦传送了来自VC_B的包,链路使用再一次重新分配给其余有包要传送的VC。
sRIO 2.0通过提供一个对VC0唯一的功能,可以提供一层额外的链路划分控制。VC0可以进行配置,以服从带宽预约,就像其他所有VC一样;或者可配置为能够自动获得任何所需的带宽,而所有剩下的带宽都分配给所有其他有包要传送的VC。这有助于控制通过VC0传送的平面流量,使操作完全独立于数据平面流量,而且只受sRIO 1.3规范的优先权规则的约束。
VC提供两种包传输模式——连续传输(CT)和可靠传输(RT)。RT操作与sRIO规范较早的版本相似,当包无法接收时重新发包,确保包传输无损。CT是为降低延迟流量而优化的,该流量可通过不重新发包而接受丢包。VC0支持所有定义的优先权,只以RT模式操作。
更高的VC(1~8)能够以CT和RT模式运行,有助于客户优化不同类型数据的传输方法。例如,鉴于控制平面流量可能需要RT提供的响应和保证的发送,数据平面流量(如来自音频流的)可能从减少的CT延迟获益,而且如果执行重发的话,就可能受到损失。
交换器供应商面临的挑战
在一项规范中增加功能的挑战之一是将新的功能集成到现有和下一代系统中。向后兼容性是sRIO规范开发流程的基石,但是新标准的推广过程也同样重要。系统开发商将在不久的未来看到越来越多的sRIO 2.0兼容的产品。
交换器供应商很有可能是第一批采用sRIO 2.0的对象。交换器是嵌入式结构生态系统的基础,实质上在于新规范的验证。如数字信号处理器和现场可编程门阵列等处理端点,可能会在生产符合最新修订规范的新器件方面滞后。因此,交换器供应商在生产下一代解决方案时面临一个严峻的挑战,最初至少是将这些解决方案推向基于现有端点的采用当前技术的系统当中。随着支持sRIO 2.0的端点的面市,在现有系统进化或新的系统推出时,设计师将向它们过渡。不可避免的是,会有一段sRIO 1.3和sRIO 2.0交迭的延长期。另外,许多系统可能将存在更长的一段时间,需要现有sRIO 1.3子系统与sRIO 2.0兼容子系统进行通信。
不过,不需要现有端点的支持,交换器供应商就能利用sRIO 2.0的很多优势,因为这些优点主要集中在交换结构。VC的优势非常具有竞争力,对逐渐采用该技术的支持可能证明对系统设计师有高度的吸引力。因此,交换器供应商的挑战是在可能由sRIO 1.3兼容端点主导的系统的sRIO结构中,实现对VC功能的过渡支持。此外,交换器供应商必须提供一种简单的过渡机制,这样随着系统进化到只容纳sRIO 2.0器件,结构及其VC的使用也将进化。
用于sRIO 1.3系统的虚拟通道
支持VC的交换器必须提供专门发送VC包并支持sRIO 2.0带宽分配需求的内部电路。如果交换器是智能的,能够将一个进来的sRIO 1.3包当作具有更高VC值的sRIO 2.0包发送的话,这些路径可被sRIO 1.3兼容包利用。交换器供应商可以为客户提供编程一个映射协议的能力,对进入的sRIO 1.3包在缓冲器利用、交换算法决定、负载平衡和带宽预约方面作为sRIO 2.0包进行处理。这样就可以为系统设计师提供对sRIO 2.0中定义的结构的控制,即使生成更高VC包的能力是不可用的。这种能力有助于系统设计师支配系统中不同数据流的处理,就像整个系统是在以sRIO 2.0器件运行。
图2描述的就是这个概念。尽管器件只生成sRIO 1.3兼容的流量,交换器可以进行配置来处理某些进来的流量,就像它有更高VC一样,主要是将sRIO 1.3包映射到编程VC值的sRIO 2.0包。一种可以用来向交换器传达如何处理一个特定包的方法是使用唯一的目标标识符。这种增强有助于交换器将包发送到正确的端点,同时基于给被映射的VC的带宽分配限制包的流出流量。如图所示,通过这种特点,交换器可以将三个不同的端点作为VC_A、VC_B和VC_C的发生器进行处理,到达目标的预期流量可以模仿图1中显示的灵活性和响应,这些都不需要使用sRIO 2.0端点。虽然可能限制基于发送器的流量控制的使用,这种VC映射能力的确有助于系统设计师更精确地接近系统中预期的流量,而不是限制用户只能遵循sRIO 1.3包排序规则。
sRIO 2.0中VC的另外一个关键因素是在CT模式运行的能力,这有助于在需要减少延迟的情况下丢下包。任何向采用VC过渡的努力,都要面对这个关键的特点。不像sRIO 2.0,如果没有缓冲空间的话,sRIO 1.3器件不会接受包。交换器供应商可以通过提供一种伪CT模式选项,用sRIO 1.3端点接近sRIO 2.0 CT模式操作,在这种模式中,要重新发送的包实际上是被一个新的包代替了。这种模式有助于客户在sRIO 1.3系统中利用在CT模式下运行的VC的延迟优势。
sRIO 1.3和sRIO 2.0系统间的通信
随着新的sRIO 2.0端点进入市场,很有必要提供一种能够将两种规范连接起来的解决方案,这样,为sRIO 2.0设计的子系统就能利用它们所有的优势,同时继续与现有sRIO 1.3子系统通信。
一个强大的功能就是提供一个作为sRIO 1.3现有流量和sRIO 2.0 VC流量之间的转换器运行的交换器。sRIO提供内置的向后VC值转换,因为规定VC值的包头部分重新使用了优先权和关键请求流量区域。虽然这确实有助于sRIO 1.3器件转送规定VC值的sRIO 2.0包,但这是静态的转换,可能满足不了必须在同一系统中同时支持两种sRIO版本的系统设计师的需求。
然而,交换器可以作为两个子系统间的智能互连运行,通过提供一个可编程的转换功能,每个子系统分别以不同的sRIO版本运行。假设一个系统包括一个现有sRIO 1.3系统板、一个sRIO 2.0系统板和一个具有转换功能的交换板,如图3所示,交换器就可以具有一个可编程的转换功能,在两个系统之间随意进行包转换。这有助于系统设计师在修改子系统时向新的规范过渡,推出新的子系统,使整个sRIO 2.0生态系统采用所有必要的元件。这个解决方案不是简单地将包映射到VC并改变交换器处理每个包的方式,而是改变进入包的包头,重新计算循环冗余码校验(CRC),并最终生成新的包。系统设计师能够以最小的影响和巨大的优势利用这种解决方案。
加速sRIO 2.0的成功
sRIO 2.0将是具有强大功能的嵌入式结构,支持各种数据流量。VC是将改变系统设计师能够定义和控制通过其结构的数据流的主要元件。交换器供应商的挑战是为他们的客户提供能够迅速利用VC卓越功能的强大sRIO 2.0解决方案,同时随着生态系统继续发展,提供一条简单的途径使其进化成完整的sRIO 2.0解决方案。