电力电子技术
直播中

杨娟

7年用户 268经验值
私信 关注
[问答]

如何实现通信系统的设计

NPU的运行速度有待提高
网络处理单元(NPU)的结构问题
网络处理器的实现方式
衡量NPU性能的指标

回帖(8)

陈连香

2021-1-12 11:44:34
  使用网络处理器来设计通信系统,所设计的系统结构,和设计时所采用的设计方法,与传统的方法相比都很不相同。影响的是设计工作的重点,设计人员的注意力将从硬件线路和通信协议的细节的考虑中,转向软件、服务以及终用户的技术要求方面。也就是说,设计将是以软件为中心,以通信服务为中心,和以终用户的技术要求为注意的集中点。设计公司将一改过去集中注意于硬件设计的传统,转而将注意力集中于用户所需要的服务方面,并考虑如何使用软件来实现用户所需要的服务。
  这些变化与进展在相当大程度上应该归功于网络处理单元(NPU, network processing unit)的推动。在这种情况下,系统设计人员如果对于网络处理器能够运用自如,那么就可以充分了解网络处理器的作用,并且能够感觉到,与使用网络处理器随之而来的潜在自由空间。系统设计人员也才有可能限度地发挥网络处理器的潜能。
  附图是系统原理图,它显示出网络处理器在系统设计中所处的重要位置。NPU一般位于物理层(MAC或帧调节器)线路和交换结构之间。在图中并串行/串并行转换器(SERDES)在NPU和交换结构造之间起接口作用
举报

张鑫

2021-1-12 11:44:48
  NPU的运行速度有待提高
  表1给出了在不同的数据传输速率条件下,网络处理器处理一个40字节的分组(的通信分组)所需要的时间。例如,在数据传输速率为1G位/秒时,网络处理器可以有360 ns 的时间来处理此分组。在这段时间内,NPU必须对分组进行检查,语法分析,以及必要的编辑和查表(有时对于分组的内容需要按照不同的策略采取不同的处理措施,有的继续向前传送,有的要送去排队,有的需要作标记;一般说来,对于一个分组可能要进行2到3种数据库的查表处理)。对于即使是比较低的传输速率1G位/秒,网络处理器也只有360 ns 来完成上述作业;如果传输速率为100G位/秒,对于每个分组就只有3.6 ns 的时间来进行处理了。
  从目前情况来看,价格适中的SRAM,存取时间为10 nsec,有望提高到5 nsec。如果将一个10 nsec的SRAM用于1G/秒的数据流,在留给处理分组的360 nsec 时间窗口内,只能对存储器进行36次的存取。如果用于10 G位/秒的数据流,存取次数将减少到只能进行3次了;即使是采用5 nsec的SRAM,也只能进行7次存取。
  从表1所给出的数据可以看出,为了有效地提高数据处理速率,只能将处理步骤分段,并采用流水线的方式来进行处理,或者采用多个处理机来并行处理(即多个处理机同时对不同分组进行处理)。这种解决办法,对于策略查表存储器,和内容寻址存储器(CAM)都适用。例如,对于40 G位/秒的数据流,采用10 nsec 的存储器,在允许的时间内存取也进行不了。这时,设计人员必须采用许多并行的存储器陈列。
  网络处理器可以按照它们对于数据处理的速率来进行分类。在表1的中间部分列出了对于一定的数据速率,需要采用的网络处理器种类和数量。例如,对于2.5 G位/秒的数据流,需要使用3个1G位/秒的处理器来进行处理。而对于100 G位/秒的数据流,则需要144个这样的处理器。对于这样的数据流,也许改为采用12个OC-192处理器,或两个OC-768处理器更合适一些。
  表1 对网络处理器处理速率的要求(以每分组40字节为例)
  
  除了实际处理分组需要时间以外,将分组从网络一方转移进来,和将数据转移到交换结构一方去也去要花费时间。表2给出的分摊时间是总时间的25%。以上数字对于MAC接口是很符合实际的假设,但是对于交换结构接口,由于分段(segmentation)的效率一般只有50%,因此在计算时需要留下100%的速度余度,才能跟得上通信线路的速度。
  
  表2 对于网络媒体/交换结构接口的要求
  从表2可以看出,对于10G位/秒的传输速率,如果采用32位单数据速率(SDR)总线,则总线必须工作在391MHz。而对于40G位/秒的传输速率,假定采用64位SDR总线,总线必须工作在781MHz。表3总结了对分组缓冲存储器的要求。分组缓冲存储器至少必须具有3倍用通信线路的速度的传输速率(300%的速度余度)。表3中分门别类地给出了这一要求。例如,对于10G位/秒的传输速率,如果采用的是64位的双倍数据速率(DDR)缓冲存储器,则需要工作在313MHz以上的频率。
  
  表3 对分组缓冲存储器的要求
举报

李雯婷

2021-1-12 11:44:58
  网络处理单元(NPU)的结构问题
  网络处理器和中央处理单元(CPU)不同。网络处理器需要对它所需要进行处理自行抽象提取。它必须能够识别字段(field),分组(packet),和数据流(flow)。它必须对于它所需要进行的处理功能,例如:语法分析,编辑,搜寻,和调度等,具有特殊的运算能力。
  在程序编制模型方面,网络处理器和CPU并没有根本的不同:它也是一个可以储存程序的微编码机。但是在数据的模型方面则有很大的区别。NPU处理的是一种恒定的连续数据流(一种数据流结构),因此不需要将数据从一个大容量存储器中移进移出。如上所述,网络处理器为了满足一定的数据速率,地需要并行处理,或流水线(pipelined)结构,或者两种方式同时都需要采用。
  另一个问题是网络处理器的可编程性能。一个极端是使它具有的可编程性,因而使它具有的灵活性,也可以在上适应未来的发展变化(即使它可以通过新开发的软件使系统改变或升级,而不是当要求改变系统时就更新硬件)。这种方式的缺点是,为了完成一项作业需要执行许多个指令,因而可能导致缺乏净空(headroom)。
  另一种折衷方式,称为“适当程度的可编程性”。这种方式提供一定程度的可编程性以适应变化的需要,或者说使处理器具有一定的灵活性。但是它不能适应完全的重新编程的需要。和RISC型的CPU类似(RISC采用简约的有效指令集,以提高CPU速度);而NPU则通过提供适当的可编程性,使得系统设计人员能够牺牲某些灵活性,去提高运行速度,换取更多的性能净空。
  对于运行在载体网络的交换机和路由器,速度的要求高于一切。这些在网际间工作的装置,不需要进行复杂的分组处理功能,只是要求将分组以的线速度向前传送。与此相反,在企业网的边沿,线速度明显地比较低,而交换机对分组的处理能力却要求相当的高。例如,对于多协议标记交换机,它处于网络的边沿,需要对某些数据流进行识别并相应地对某些分组予以标记。
  交换机的设计人员可以根据这些不同的要求,以及交换机所处的位置,为预计在企业网边沿使用的交换机选择可以充分编程的NPU。而对于将应用在网络部位的交换机,则应该选择编程能力有限,但是具有较高速度的NPU。
举报

丁浩

2021-1-12 11:45:09
  网络处理器的实现方式
  网络处理器的实现方式大体上可以分为三种。一种是采用专用的ASIC或FPGA(后者往往功能不够完整,或者性能不够理想)。这种方式就是依靠“硬件”的方式,它具有的性能,但是灵活性也差(因为设计决策是熔制在硅的体内)。此外,ASIC的开发过程比较长,性的、不可重复使用的投入的费用也比较高。
  另一种方式是将许多个RISC CPU做在一块芯片上,采用对称多重处理的运行方式(使用微编码将通用CPU转变成为专用的网络处理器)。这种实现方式,由于NPU的一切行为几乎都是通过软件实现的,因此灵活性。这种方式所需要的开发时间比较短,它展现在设计人员面前的形象是设计人员十分熟悉的编程模型。然而,随着软件复杂性的增加,这种方式的费用也在增长。由于严重地依赖软件,这种方式实现的系统,与采用专用ASIC实现的系统相比性能较差,所消耗的功率也较多。
  介乎上述二者之间的一种实现方式是流水线方式,它采用一些具有不同功能的专用处理器,组成“装配线”型式的数据流构造。采用流水线方式实现的系统,性能接近用ASIC实现的系统,而在编程的灵活性方面又和多处理器实现的系统相差不多。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分