浅谈华为Solar 2.0 PFE2A

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




华为NS5000E的100G解决方案宣布以后,技术爱好者都非常希望知道其技术内幕。但华为一向对技术细节保密的非常严格,很难找到比较细的细节。本文一定有许多错误之处。但试图抛砖引玉,引起技术爱好者的讨论。

华为的100G的转发芯片在其网站上有一些简单介绍。下面是从华为数通下载的图片。

从芯片的“Hi”标记,应该是海思公司的意思。这可真是比思科和Juniper等都牛叉。一个100G的,看得见,但摸不着的芯片。华为网站上是如此评价这个业界首款100G芯片的“业务灵活性,高性能和低功耗的完美融合:Solar 2.0 PFE2A采用了华为独创的宏指令包处理(MIP,Macro Instruction for Packet Processing)技术。它专为IP/MPLS/ETH应用设计,结合了网络处理器业务灵活和ASIC性能高,功耗低的优点,同时规避了网络处理器处理性能低,功耗大以及ASIC无法支持新业务的缺点,加上其独特的外围器件低功耗一体化设计,实现了业务灵活性,高性能和低功耗的完美结合。

另外,华为给出了一个100G线卡的逻辑图。

华为100GE线卡采用两片Solar 2.0 PFE2A作为转发引擎,一片处理100G上行流量,另一片处理100G下行流量。这种设计理念将Solar 2.0 PFE2A的能力发挥至极致,保证了100G流量的线速转发(如图五所示)。PIC(Physical Interface Card)模块基于自研的可编程100GE MAC芯片,支持IEEE 802.3ba、S-Eth、IEEE 1588v2以及ODU4标准。内置的oTM(output Traffic Management)引擎,完美实现下行流量的5级H-QoS(Hierarchical QoS)调度。1×100GE线卡具备4M海量FIB(Forwarding Information Base),充分满足IP网络持续扩展的需要,并且100GE接口支持CFP MSA(Compact Form Factor Pluggable Multi-Source Agreement)封装,实现光模块的即插即用。

从上述逻辑图中,可以看出PFE2A与思科CRS-1线卡结构类似,都采纳2颗转发引擎 (PFE:Packet Forwarding Engine)。一个做Ingress(位于上面的那个PFE2A);一个做Engress(位于下面的那个PFE2A)。思科CRS-1的SPP和ASR1000的QuantumFlow里面采用的都是Tensilica的Xtensa的CPU核。SPP为180多个核;QuantumFlow是40个核。华为的PFE2A里面是什么没有任何透露的消息。从各方面分析,应该是其40G线卡解决方案中的588芯片的升级版。换言之,Solar2.0就是588+–SD5822 ASIC处理器,具备上下行各40G的处理能力。与Solar 2.0挂在一起的MEM就是大量的DRAM和包括TCAM,这都是为了做Routing Lookup FIB的东东。

PFE2A里的TM(Traffic Manager)为5级的H-QoS,思科的ASR1000的QuantumFlow里面也是把TM集成在一起的。QuantumFlow是支持3级的 QoS。一共是128个队列。而思科的CRS-1的SPP内部没有TM部件。CRS-1的线卡是通过另外两个ASIC(Ingress Queuing和Engress Queuing)来实现QoS和TM的。线卡上的两个SPP与相应的Queuing芯片互联。

有兴趣思科CRS-1和ASR-1000体系结构的读者可参阅:《思科核心路由器CRS-1的研究(上)》和《思科QuantumFlow处理器及其战略研究》。

通常而言,在Solar2.0里面应该会集成一些On-Chip Packet Memory,例如,报文进来之后,不是被DMA到DRAM中,而是直接被PIC中的DMA引擎打到PFE2A的On-chip Packet Memory里。但目前无法知道华为芯片的细节。其实这也是华为应该改进的地方。不要什么都藏着,捏着,过分的刻意低调。适当的公开一些技术文档是一种智慧,也是一种社会责任。

为什么说在这个PFE2A里一定应该有CPU核呢?这是大势所趋。许多层2,层3的业务只靠ASIC是没法做的,必须要有可编程引擎阵列来做处理,例如思科的SPP和QuantunFlow的结构就是这样。

CP应该是Control Processor,例如是一款PowerPC 之类的控制CPU。从图中那条从CP引出来的暗红色的线,我们可以看到,这就是100G线卡的Local Bus。或者我们有时说叫做控制总线(Control Bus)。图中的暗红色的线通常应该是PCI Bus或者PCI-E。PCI天生是一个最好的Local Bus。只要PCI总线上一挂,对于主控CPU而言,任何一个设备或芯片,例如PFE2A,CFP,PIC/Mac,都只不过是一个Memrory Mapping Based的一个地址空间。任何一个芯片的控制寄存器,数据寄存器都可以被CPU的监控程序READ和WRITE。100G线卡的一切其实都是这个CP点亮,把驱动也好,微码也好,宏代码也好,从NS5000E的控制平面拿下来,并且安装在线卡的各个环节。然后系统开始接受数据报文。

图中的宽的,橙色的线,就是所谓的数据路径(Data Path) 。就是一个Packet从进来到出去的一个梦幻人生。。。

在橙色的路径中,一定要牢记一点:每个局部都是>=100G。否则就不能线速。

图的最右边的FIC模块就是华为NS5000E中的Fabric Interface Card,或交换接口卡。

在图的最左边的100G的CFP是一个非常重要的部件和芯片。 CFP MSA(Compact Form Factor Pluggable Multi-Source Agreement)就是一个光网数据收发器100G的另外一个含义其实就是100G的CFP设计成功了。以前是40G的CFP。这也是Solar2.0线卡中的一个重要技术突破。从而NS5000E可以实现100G的互联对接。

(5个打分, 平均:5.00 / 5)

雁过留声

“浅谈华为Solar 2.0 PFE2A”有34个回复

  1. Eleven 于 2009-10-24 5:55 下午

    Figure 5 不太清楚。最右边好像不是PIC,而是是FIC,fabirc interface card?

  2. Eleven 于 2009-10-24 6:06 下午

    fabric interface controller吧

  3. 陈怀临 于 2009-10-24 7:16 下午

    是,你说的对。我立刻改过来。

  4. 阿来 于 2009-10-24 7:28 下午

    例如是一款IXP2800之类的控制CPU
    —–
    陈首席,IX2800是用作NP吧,CP一般都用的powerpc

  5. 陈怀临 于 2009-10-24 7:31 下午

    是。按理说是PowerPC之类的。但,。。。。这不是不知道华为如何整的嘛。。。

    难道这PFE2A里面除了其他逻辑,埋了一个IXP2800?

    天哪!!!!太有可能了!!!

    思科: xtensa
    华为: xscale

    苍天哪!!!!!

  6. 阿来 于 2009-10-24 7:33 下午

    读者要注意的是PFE2A本身没有TM(Traffic Manager),而是通过这个PIC里面的一个oTM来实现的。当然思科的SPP里面也没有TM。思科的ASR1000的QuantumFlow里面是把TM集成在一起的。在华为100G线卡里,TM就是PFE2A左
    ————-
    陈首席这句话可是大错特错了,高端路由器怎么可能用PIC做TM呢?

  7. 陈怀临 于 2009-10-24 7:49 下午

    你看华为是这样说的呀:“PIC(Physical Interface Card)模块基于自研的可编程100GE MAC芯片,支持IEEE 802.3ba、S-Eth、IEEE 1588v2以及ODU4标准。内置的oTM(output Traffic Management)引擎,完美实现下行流量的5级H-QoS(Hierarchical QoS)调度。”

  8. 陈怀临 于 2009-10-24 8:01 下午

    阿来,你是对的。我从新去华为网站上读了一篇那段中文。我被华为的革命同志忽悠了。PIC那句话之后是个句话(。)。然后说的TM应该是PFE2A内部逻辑:-(。

    我现在就改。是,我最开始写完,也觉得华为的哥们可真牛呀。。。:–)

  9. 帅云霓 于 2009-10-24 10:18 下午

    华为跟定了ARM(xScale)软核

    是不是因为可以复用IXP的NP微码,那个NP的控制平面就是个XScale。
    再进一步,会不会干脆山寨一个IXP的NP到这块芯片里面,微码什么的都可以沿用,就是把转发能力大大提高,这一点可以靠增加并发数或者工作频率来实现。

  10. lhmj 于 2009-10-24 11:49 下午

    华为跟定了ARM(xScale)软核

    是不是因为可以复用IXP的NP微码,那个NP的控制平面就是个XScale。
    再进一步,会不会干脆山寨一个IXP的NP到这块芯片里面,微码什么的都可以沿用,就是把转发能力大大提高,这一点可以靠增加并发数或者工作频率来实现。

    —不太可能靠增加并发数等走IXP微码路线,因为华为没有与IXP的技术合作,应该是延续588路线吧,不过588是硬转发,从硬转发到一个可编程引擎就是一个飞跃了,所以内部再埋一个xscale不太可能,总的先走了才能跑吧?而且可以选一个多核的CP,搞一个core通过PCIE也是能对付过去的

  11. 阳光 于 2009-10-25 12:50 上午

    估计是926的内核吧

  12. 路过。。。 于 2009-10-25 9:58 上午

    您还是不要猜了。。。这篇文章是我上弯曲来写的最惨不忍睹的。。。

    细节就不谈了。。。一个PCI LOCAL BUS竟然也成了亮点。。。

  13. 陈怀临 于 2009-10-25 10:41 上午

    Heeee。我什么时候说PCI Bus成了亮点了?:-)。你这不是冤枉人嘛。我说通过PCI类似的Local Bus,CP来初始化和驱动所有其他线卡上的芯片。这,这,这不会有错吧?:-)

  14. jiyif 于 2009-10-25 6:05 下午

    这篇文章写的不够好,相对于业内人士可能更关注芯片内部,而线卡的构建,整个地球上的实现都差不多,相对于上一代线卡,陈首席应重点主要关注ingress/egress TM的实现和solar芯片特性.

  15. 陈怀临 于 2009-10-25 6:07 下午

    是。但现在确实一点资料都没有。。。:–(。从网上查588,什么也没有。华为太让人失望了。。。:-)。我其实目的很tricky。这里华为的弟兄不少。这帮小样其实都知道,但being a professional,不能乱说,可以理解。但他们这样暗示暗示,我们基本上就好办了。。。:-)。许多东西就是一张纸:-)

  16. droplet 于 2009-10-25 7:08 下午

    NP微码没有标准吧,难道IXP系列是类ARM的指令?
    ASIC是怎么设计的,能不能给介绍一下,ASIC如果也做成多核,我的意思是逻辑是写死的,有可能吗?我听说FPGA可以模拟多核,那ASIC应该也可以做成多核了。不说多核,就是可以做成多条并行路径。那么里面的锁之类的怎么处理?至少数据应该是共享的吧。

  17. 陈怀临 于 2009-10-25 7:50 下午

    小drop,IXP::=xScale core + MicroEngine.
    在xScale方面,你可以认为就是ARM的ISA。ME其实就是IXP所谓的data path。例如处理数据报文。。。while xScale做Control。ARM的体系结构比较简单。与MIPS,PPC等要注意的就是其中Supervisor or Kernel Mode下一些Shadow Register File等东西。没接触过的同学很容易迷糊掉。另外,Virtual Cache要特别注意。在做通信系统时,要善于把握cache的系统的影响。

    但IXP ME的最大坏处就是编程用微码。当然,Intel有一些什么并行C++编译器等等(原来在上海的一帮人)。但,除非脑残,谁也不会去用那些高级编译器。。。

    总的来说,IXP ME带来的好处不如坏处多。当然,对一个公司的工程师而言,是好处多。Why?工作比较安全。。。。。。

  18. 理客 于 2009-10-25 8:47 下午

    ASIC可以做一些智能化的编程设计,H所说的宏指令就是一种形式,这方面,JUNIPER最强。当然无论如何智能,也赶不上NP的灵活,IBM的ranier,还可以支持一定程度的自定义指令,但NP如何灵活,也不如多核CPU,但是在这个灵活过程中,性能是在走下坡路的。
    一般NP都支持C编程,但是不会用,因为如此小到K级的代码空间,用C编程,再怎么优化,也优化不过直接汇编,连直接汇编都要再优化,还能用C吗?
    IXP2800的ME间的故障检测和隔离、重激活等HA设计,还是不错的

  19. 帅云霓 于 2009-10-25 8:56 下午

    NP微码是没有标准,但H内部显然是IXP的成了事实标准。

  20. Simon 于 2009-11-04 8:35 上午

    这个芯片可是老早就在做了。华为在数通一直投入不多,但是这些硬件上的东西还是有持续投入的。。。现在徐文伟业在提像做3G一样做数通,但是在研发上的投入实际跟C,J比还是太少了。。。

  21. 删吧 于 2009-11-04 2:16 下午

    徐老现在主管什么了?

  22. Simon 于 2009-11-05 7:29 上午

    销服副总裁,MKT总裁

  23. ALL IP? 于 2009-11-10 6:35 上午

    说实话,没有什么资料能攒出这篇文章还是不错的,里面猜测的东东还是比较多的。。。

    挑一个小错,是NE5000E,不是NS…

    其实,在PIC下行上作TM,确实是一个折中方案,毕竟有些接口或应用对HQOS的要求低一些。对于基板来说,如果所有的HQOS都在基板做,代价是很高的,部分放到PIC上可以有效的降低基板的复杂度,当然架构也更复杂一些。

    看来HW的宣传确实做的不够,IXP2800的使命已经结束了,如果现在还在依赖IXP2800,HW欲与C、J、A竞争也就是一个口号而已。

  24. 路过 于 2009-11-10 4:12 下午

    据传VRP V8是一帮搞PC的老外开发的,不知道真假?

  25. 知情人 于 2009-11-14 2:59 上午

    宣传的夸张了点

  26. 无意中发现的回贴 于 2009-11-15 5:58 下午

    偶曾在华为HS待过几年,HS确实有一些大牛在美研所和深圳,我知道的有中科大少年班出身在HW干了近10年的技术专家**,从Broadcom邀请过来搞90nm/65nm/45nm和高速接口技术的美籍华人**以及从MIT和Stanford邀请过来搞预研标准的终身教授**,还有一些在那边正在带头做高速高精度模拟和NP等关键技术的专家。
      各位天涯人,你们要知道美国对中国技术封锁,很多核心技术花钱是买不回来的,只能花血本请这些专家指导我们中国人来实现和完成。
      目前HS 1600多人(07年的人数)对HW的技术贡献是很难用收入利润等财务指标衡量的,HW的OTN/PTN/WDM/GPON终端局端/NE5000E集群路由器/HSPA+基带及上下行/LTE控制器,基站和终端/服务器/数据卡/手机终端等无不运行着HS的芯。

  27. 理客 于 2009-11-16 2:26 下午

    GCD是很清楚美元不值钱,要用于收购资源和技术,西方人也很清楚, 不能让中国轻易得手,这涉及为了地球的领导权问题,涉及都人才,就更复杂了,更不是钱可以直接搞定的,你没有相应的环境,给再多的钱,技术大佬们也经常不愿意去,有H这类的厂商做类似的事,国家应该在背后给一定的补助,支持此类公司对技术大佬的收购,不必在意这些大佬能待多久,关键是和国内的人一起工作,我们学到一些核心的东西,他们走了无所谓,不和高手合作,完全靠自己,那会慢很多的,不是所有的人都是钱学森,所以如果有机会和顶尖高手一起工作,一定要做,这钱花得太值了

  28. 帅云霓 于 2009-11-16 6:48 下午

    谈论gcd莫在tektalk,请去politics talk

  29. 理客 于 2009-11-16 11:00 下午

    很帅很帅的同学:你懂中文吗?搞技术很纯很牛吗?不要以为搞个“功耗同电压的平方成正比”,再搞个“负距离”深度黄色笑话就把自己当成这个地盘的owner了,记得你以前是个聪明谦虚的好孩子,很看好你,被夸几句怎么就这么快变得拽起来了,还知道自己几斤几两吗,能沉得住气的年轻人越来越少了,不知道是好事还是坏事

  30. 帅云霓 于 2009-11-17 5:19 下午

    *&^%$#@不知您是在国内还是海外,如果在海外可能未必了解,遥远的东方有一条龙,它的名字叫防火长城。龙身上生活着一种奇异的生物叫河蟹,专门夹那些从海外流进来的谈论politics的数据包。
    因此,如果在tektalk谈论politics,会导致相关数据包被河蟹夹住,我们国内读者可就苦啦。
    不过嘛,当然了,咱们相信理客大哥您老既有修养又有学识,风度与人品俱佳,理性与激情并重,是一定不会做这样自私的事情的,就算做了也是为大局和长远考虑,不是为一己之私,比我这样编“负距离”黄色小笑话的人高尚多了。是吧?大家说呢?

  31. 过客 于 2009-11-17 5:48 下午

    明眼人都能看出理客的观点明明和政治无关,到是上面有影射.
    这点很不好,修养礼貌都不够,毕竟是开放论坛,言论自由,又没说伤天害理的事情,谁也不能捂住别人的嘴巴.管理员都没有吱声,你们就别吵了,冷嘲热讽热讽的,气度哪里去了

  32. Joe 于 2009-11-18 3:15 上午

    消消气。理客其实提了些战略性问题的看法,帅帅只是怕遇到关键字tektalk被河蟹,过客更关注论坛民主气氛,……,出发点相同,角度不同,目的都是为了tektalk越来越好。莫要伤了和气。抱一下。

  33. 理客 于 2009-11-18 4:38 下午

    帅同学,我说话尖刻,对不起了,唉,人老了,没进取心了,技术不咋地,事业也不成,偶尔没事瞎扯几句,我在外面出差,你聪明好学,希望将来事业有成

  34. BO 于 2009-12-20 6:09 上午

    整个系统这么多芯片,这个方案的成本好像有点高。
    Ingress,Egress,TM都可以做到一块芯片里的,很多资源也是可以share的,不过这样的芯片设计起来难度比较高。
    不知他们用的哪家公司的什么工艺生产的?