博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4778|回复: 7

识别“真假”多核网络产品

[复制链接]
发表于 2010-12-10 15:51:59 | 显示全部楼层 |阅读模式
识别“真假”多核网络产品


当前在网络界的多核如同03、04年时的NP一样炒得很热,一些公司也推出了相关产品,但这些产品是否真的发挥了多核的能力了么?

说多核前先说说NP,当初NP是作为穷人的ASIC而受到追捧,毕竟国内硬件能力弱,财力有限,做ASIC基本做不起,只能靠软件,而NP靠所宣称的只需软件就能达到的千兆线速吸引了国内大多数厂商的投入,做了几年下来,才发现NP也不是那么神的,弱点太多,拿Intel的IXP2400来说,虽然下层有8个微引擎,但只擅长查表操作,没法进行复杂点的计算,必须靠上层Xscale,而是只能用微码编程,是类似汇编的语言,开发的费劲度就别提了。

正因为NP的诸多缺点,多核孕育而生,实际是将2400中的Xscale和ME不进行区分了,都是core,地位是相同的,可以用高级语言编码,而不再是那种让人头痛的微码,而且最重要的是,各个core运行什么样的代码是可以自己控制的,而不是像Intel的多核那样只是SMP的,这样多核就可以像NP那样进行控制平面和数据平面的划分,比如一个core跑控制平面,只接受用户输入,将配置发送给其他core,其他core作为数据平面,实现快速的数据的转发。

目前做多核CPU的主要是两家,RMI和Cavium,都是MIPS架构的,RMI最大的是8个core,每个core有4个thread,所以操作系统可认为是有32个CPU;Cavium的最大是16个core。这些多核CPU和Intel的CPU是不同的,Intel的是通用CPU,在所有地方都可以用;而R和C的是面向网络计算的,在网络中使用性能很好,但要用于其他计算就不尽人意了,所以这也是R和C存活的基础,和Intel不是同一市场的,否则正面交锋,怎么可能拼得过Intel,前两年cpu出来后就没见新品了,而这两年Intel可是不断出新,把AMD远远甩在后面。

正是多核CPU的灵活分配处理能力,最简单的实现就是让所有core跑相同的东西,就是说将原来X86下的代码直接弄过来重新编译一下就能跑了,但这样的效率也是最低的,比X86平台其实高不了多少,小包都到不了千兆线速,所以这种使用多核的方法就是“假”多核;要使用“真”多核,就是要把控制平面和数据平面分开,让大多数core只参与底层的数据转发而不参与上层的操作系统计算,这样才能真正发挥多核的能力。要识别是否是“假”多核也很简单,在Linux下看/proc/cpuinfo文件,如果把所有core都列出来了说明所有core都在跑Linux,是“假”多核;如果只有少数几个,说明是“真”多核。当然“真”多核的编程难度远大于“假”多核,很能考验一个公司的实力,这就是为什么多核CPU从05年就有了,但相关产品近期才有的原因。
 楼主| 发表于 2010-12-10 15:52:34 | 显示全部楼层
"比如一个core跑控制平面,只接受用户输入,将配置发送给其他core,其他core作为数据平面,实现快速的数据的转发"
不太赞同你的说法.
如果一个core专门用来接收用户输入,则这个core基本上是处于闲置状态.无法充分发挥性能.
实际上,如果多个核都能跑同样的东西,才是更好的多核.这样不仅可以降低(网络代码)开发和维护的难度(不需要注意哪个核跑什么样的任务),而且可以提高各个核的利用率.
关键的问题,是各个核要有好的调度方法,不能直接把linux的SMP搬过来使用.特别地,如果能针对网络处理的特点做特殊优化,对性能的提升将有很大帮助.
网友: 本站网友 时间:2008-10-30 10:22:32 IP地址:61.232.9.★
同意楼上的看法。最近也在考虑公司的网络产品的性能问题,考虑过NP,也考虑过多核。实际上的情况是包处理代码的并行性问题。如果解决了这个问题,一个并不是很高配置的服务器,配置两块Intel e1000的网卡,也能处理千兆线速(小包)。
网友: 本站网友 时间:2008-12-17 21:34:50 IP地址:123.108.220.★
我们公司H3C就做的多核,RMI处理器,我参与的一个预研产品用的16核Cavium,虽然我们公司数据平面是自己写的,但我觉得用Linux实时线程也不会损失多少效率,实时线程不参与调度,效率和裸奔的数据面应该差不多,但有了Linux的支持,功能性和易用性会提高很多,比如kernel dump的功能。
网友: cyliu 时间:2009-01-02 18:46:27 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:30 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:40 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:41 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:41 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:42 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:42 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:42 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:43 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:43 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: cyliu 时间:2009-01-02 18:46:44 IP地址:116.76.34.★
支持楼主.

区分开数据平面和控制平面,效率还是不同的.

我是做rmi下的多核研发的,对这个做过测试.主要是充分利用一些如流水线等概念,而且rmi硬件有些特别处理.区分开数据和控制平面,效率很大的不同.
网友: 本站网友 时间:2009-12-26 21:31:39 IP地址:220.112.135.★
x86做转发?  笑死人。     X86的I/O就不适合弄来做转发。
对于楼主的几个观点我有一些看法:
1.NP不是用来取代ASIC的。ASIC成本高昂功能固定不灵活,NP灵活,就连现在CISCO等一线厂商都不断地在更新NP。
2.NP微码编程并不神秘,一般的中等规模设备厂商不选NP,是怕商业风险不是怕技术难度。

RMI有SMP多线程技术,单位时间内能够完成的指令条数比cavium要多得多。而且面向报文转发的multicore不仅仅这两家。 tile64 你听过没有?freescale同样有。

washion0058@qq.com
 楼主| 发表于 2010-12-29 08:57:20 | 显示全部楼层
多核处理器的影响与挑战(转)
  多核程序设计在计算机世界中是个广泛而动态的领域。MCCB对于多数程序设计者而言都是一个好的开端,还将继续提供多核革命的资源,案例,基准和背景资料。
  计算机领域正在发生着悄无声息的革命。英特尔,AMD及其他芯片制造商不断推出在单晶片上集成多重处理单元的新型芯片。取代过去的单一中央处理器,计算机目前正在步入多核时代。尽管这项技术对我们而言并不是新鲜事物,但这是这种类型的体系架构首次大规模运用于商用个人电脑和服务器市场。这场变革将影响到每位计算机用户。多核技术的触角已经深入到服务器,笔记本电脑甚至游戏机控制台领域。从最终用户的角度来看,这种变革的影响是潜移默化的。然而根据过去二十年的经验要获取相应的性能所付出的价格预期还是个未知数。程序设计者们会发现要实现多核设计的性能也是一项充满挑战的艰巨任务,特别是现在还没有一劳永逸的办法和自动化技术能适应多核系统上运行的现行软件。
  指路多核
  计算机市场长期以来一直在处理器速度上稳步前进。处理器的速度很大程度上取决于时钟频率传递给处理器执行指令的速度有多快。时钟频率越快,处理器在指定时帧内执行的指令数目就越多。半导体的物理特性对处理器时钟频率速度的提升会有限制。这种趋势可以从图示一中清楚的显示,从中可以看到英特尔和 AMD处理器随着时间推移平均时钟频率和热量消耗的情况。
  从这张能量消耗曲线图上看,能量消耗的持续攀升要求更多的冷却和电力服务来维持处理器的运行。解决方案就是要增加处理器内核的比例来取代单纯提升时钟频率。这张图中时钟频率的下降是指AMD公司和英特尔公司的首款双核处理器的面世。这些处理器的设计考虑到热量的问题,相对单核处理器设计的时钟频率要低。双核芯片从过往经验来看,能达到单核芯片两倍的性能,从而能帮助处理器的性能不断进步。
  多核发展之路
  目前英特尔公司和AMD公司都推出了自己的多核处理器。双核和四核处理器目前已经投入市场。从公司的市场导向来看,他们还计划在2009年到2010年陆续推出八核处理器。大致时间表如下:
  2005年 双核处理器
  2007年 四核处理器
  2009年+ 八核处理器
  服务器和工作站传统上都是使用双路处理器。这就意味着到2010年底每个母板上核心的总数量能轻易的达到16个。另外,AMD和英特尔处理器都提供四路甚至八路插槽设计。从八路核心由此类推就意味着在不久的将来六十个四核服务器也并非不能实现的预期。
  多核面临的挑战
  多核处理器的革命给整个计算机领域带来了前所未有的挑战和机遇。一方面,多核意味着在同样的空间内实现更多的计算功效。另一方面,处理器体系架构的根本性变化要想充分利用这些处理器,比起之前的设计就更具挑战性。
  面临的挑战之一就是软件,概述如下:
  现有的软件如果不做改变,就无法利用目前不断进步的处理器所提供的多核性能。
  为了充分利用多核,程序需要同时做很多事情。这种行为通常被称为并行计算。并行程序如果编译正确,执行指令的速度将比传统的串行程序要快很多,因为它能将工作负载按照不同需求分配给处理器的不同核心。而传统的串行程序只能利用一个核心。确实这种程序编译方式也只能识别一个核心!
  多核带来的影响
  从最终用户的角度来看多核对工作负载的影响更为直接。举例来说,你的工作负载要同时执行不同的任务,此时多核系统就能马上发挥它的优势所在。比如,你在网络上观看视频的同时,你的计算机正在准备打印一份大型文档作业。多核系统就能协助你同时完成这些作业。如果他们不是采用并行设计的话,独立的应用程序将不可能超越单核的速度。
  应用程序的设计者们为了满足多核的需求需要花费时间对代码进行升级和测试。在并行程序设计上没有简单或者自动化的捷径可循,因此多核菜单(MCCB)的设计就需要付出更多的努力。除了研发多核应用软件需要花费额外的心血外,还要适应不断涌现的全新概念。
  内存之争
  从定义上说,所有的多核系统都必须共享内存。设计内存子系统能让核心之间的争夺最小化,但是仍然会出现内存空间为两个或者更多内核所用的时候。这种情况在很多时候就会导致性能问题或者性能衰减。
  资源之争
  与传统的单核处理器不同,多核系统的每个核心都必须共享本地资源。除了内存之外,这些资源还包括硬盘,网络连接,PCI总线和个人电脑,工作站或者服务器的其他组件。
  Program Locality
  在多核系统中,应用程序在那个核心上运行取决于操作系统。操作系统会尽可能的让所有的核心的工作负载均等。通过在核心间对程序进行迁移来实现分配。如果万一程序迁移所在的核心无法使用同样的高速缓存或者本地内存资源,那么程序就会丧失高速缓存数据的优势所在,性能也会因此衰减。
  新的错误类型
  多核也会引发程序设计中新的错误类型。这种情况的出现是因为在核心间新的时间动态分配出现了问题。当核心都在互相等待和冻结或者他们不能保持同步时,这种情况就会发生从而报错。程序设计者们必须在编译应用程序时对这一点有清醒的认识。
  程序模式
  最后一个问题就是程序模式。在多核系统中,核心是通过内存共享数据和通讯。程序设计者们实现的途径是取决于他们惯常编写代码的程序模式。对于所有的多核程序设计来说,没有单一的标准方式(程序语言或者API)是可以通行无阻的。处于多核菜单的设计目的,我们将程序设计方法分成两类:
  主流方法:这种设计方法就是公开/标准API(应用编程接口),从过往经验看API已经在并行程序设计上取得了成功,具有丰富的编程经验基础来向程序设计者提供支持。采用API的编程方法在灵活性和将来的升级支持方面都是风险较低的选择。但对于特别问题处理方面却并非最佳的编程方式。
  新生力量:这些编程方法是新生力量,在将来也颇具潜力。但是并非所有的方法都具备这样的实力,成为大型项目程序的选择(比如说有些尚处于试验阶段)。虽然他们在实现并行程序方面更为出色,但作为一项新兴的技术要进行推广还有一定风险。
  当然,我们试图向软件研发人员提供指南的意图颇有些班门弄斧。毕竟只有程序设计者们最清楚项目的规模和需求,这些分析是要协助设计者们把握选择的方向。我们的愿望是编程方法的新生力量能逐渐成为设计的主流,随着多核系统的逐步普及这些编程方法也能得到更广泛的使用。
  这些新兴的编程模式数量太多而无法一一罗列,甄选出的主要方法由三种组成:Threads(线程技术),OpenMP和MPI并行算法。Threads(线程技术)使用的是均衡共用存储器或者共享内存,在传统多核系统中已经有多年的使用历史。
  另外一种正在发展之中并能相对容易的利用线程的方法就是OpenMP。OpenMP使用一组指令设计来允许程序设计者更为简便的实现对称多处理机的并行要求。MPI(消息传递接口)是实现高性能计算代码并行设计的标准方式。MPI的并行设计能在独立的计算机上对进程间的信息进行传递,对于对称多处理计算机也同样适用。
  未来之路
  多核程序设计在计算机世界中是个广泛而动态的领域。MCCB对于多数程序设计者而言都是一个好的开端,还将继续提供多核革命的资源,案例,基准和背景资料。
 楼主| 发表于 2010-12-29 08:57:36 | 显示全部楼层
没有很好的多和控制机制其实单纯的多核程序员会很累而且效率很低下

关于多核处理器我还是欣赏IBM的CELL
 楼主| 发表于 2010-12-29 08:58:04 | 显示全部楼层
FPGA简介
  FPGA是英文Field-Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
[编辑本段]【FPGA工作原理】
  FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
  1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
  2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
  3)FPGA内部有丰富的触发器和I/O引脚。
  4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
  5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
  可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
  FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
  加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
[编辑本段]【FPGA配置模式】
  FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
  如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
  例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。
  幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度帮助地系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。
  最近FPGA的配置方式已经多元化!
[编辑本段]【FPGA主要生产厂商介绍】
  1、Altera
  2、Xilinx
  3、Actel
  4、Lattice
  其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。
  FPGA设计的注意事项
  不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。
  I/O信号分配
  可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:
  1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。
  2. 检查制造商的块/区域兼容性准则。
  3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。
  4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。
  5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。
  6. 在合适的地方分配剩余的信号。
  在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。
  这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。
  你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。
  -------------------
  基于CMOS的设计主要消耗三类切率:内部的(短路)、漏电的(静态的)以及开关的(电容)。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗则是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。
  降低静态功耗
  虽然静态电流与动态电流相比可以忽略不计,然而对电池供电的手持设备就显得十分重要,在设备通电而不工作时更是如此。静态电流的因素众多,包括处于没有完全关断或接通的状态下的I/O以及内部晶体管的工作电流、内部连线的电阻、输入与三态电驱动器上的拉或下拉电阻。在易失性技术中,保持编程信息也需一定的静态功率。抗熔断是一种非易失性技术,因此信息存储不消耗静态电流。
  下面介绍几种降低静态功耗的设计方法:
  •驱动输入应有充分的电压电平,因而所有晶体管都是完全通导或关闭的。
  •由于I/O线上的上拉或下拉电阻要消耗一定的电流,因此尽量避免使用这些电阻。
  •少用驱动电阻或双极晶体管,这些器件需维持一个恒定电流,从而增加了静态电流。
  •将时钟引脚按参数表推荐条件连接至低电平。悬空的时钟输入会大大增加静态电流。
  •在将设计划分为多个器件时,减少器件间I/O的使用。
  eX器件LP方式引脚的使用
  Actel eX系列设计了特殊的低功率“休眠”模式。在该引脚驱动至高电平800ns后,器件进入极低功率待机模式,待机电流小于100μA。在低功率模式下,所有I/O(除时钟输入外)都处于三态,而内核全部断电。由于内核被断电,触发器中存储的信息会丢失,在进入工作模式(在引脚驱动至低平200ms后)时,用户需再次对器件初始化。同样,用户也应关闭所有通过CLKA、CLKB以及HCLK输入的时钟。然而这些时钟并不处于三态,时钟就可进入器件,从而增加功耗,因此在低功率模式下,时钟输入必须处于逻辑0或逻辑1。
  有时用户很难阻止时钟进入器件。在此场合,用户可使用与CLKA或CLKA相邻的正常输入引脚并在设计中加进CLKINT。这样,时钟将通过靠近时钟引脚的正常输入进入器件,再通过CLKINT向器件提供时钟资源。
  采用这种输入电路后,由于常规I/O是三态的,因此用户不必担心时钟进入器件。当然,增加一级门电路会产生0.6ns的较大时钟延时,幸好这在多数低功率设计中是可以接受的。注意应将与CLKINT缓冲器相关的CLKA或CLKB引脚接地。
  此外还要注意,CLKINT只可用作连线时钟,HCLK并不具备将内部走线网连接到HCLK的能力,因而HCLK资源不能被常规输入驱动。换句话说,如果使用LP引脚就不能使用HCLK;使用HCLK时就应在外部截断时钟信号。
  降低动态功耗
  动态功耗是在时钟工作且输入正在开关时的功耗。对CMOS电路,动态功耗基本上确定了总功耗。动态功耗包括几个成分,主要是电容负载充电与放电(内部与I/O)以及短路电流。多数动态功率是内部或外部电容向器件充、放电消耗的。如果器件驱动多个I/O负载,大量的动态电流构成总功耗的主要部分。
  对设计中给定的驱动器,动态功耗由下式计算
  p=CL×V 2 DD×f
  式中,CL是电容负载,VDD是电源电压,f则是开关频率。总功耗是每个驱动器功耗之总和。
  由于VDD是固定的,降低内部功耗就要降低平均逻辑开关频率,减少每个时钟沿处的逻辑开关总数、减少连线网络,特别是高频信号连线网络中的电容值。对低功率设计,需要从系统至工艺的每个设计级别中采取相应预防措施,级别越高,效果越好。
[编辑本段]FPGA与CPLD的辨别和分类
  FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:
  将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。
  将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。
 楼主| 发表于 2010-12-29 08:58:21 | 显示全部楼层
ASIC简介
  ASIC(Application Specific Integrated Circuit)是专用集成电路。
  目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
  ASIC分为全定制和半定制。全定制设计需要设计者完成所有电路的设计,因此需要大量人力物力,灵活性好但开发效率低下。如果设计较为理想,全定制能够比半定制的ASIC芯片运行速度更快。半定制使用库里的标准逻辑单元(Standard Cell),设计时可以从标准逻辑单元库中选择SSI(门电路)、MSI(如加法器、比较器等)、数据通路(如ALU、存储器、总线等)、存储器甚至系统级模块(如乘法器、微控制器等)和IP核,这些逻辑单元已经布局完毕,而且设计得较为可靠,设计者可以较方便地完成系统设计。
  现代ASIC常包含整个32-bit处理器,类似ROM、RAM、EEPROM、Flash的存储单元和其他模块. 这样的ASIC常被称为SoC(片上系统)。
  FPGA是ASIC的近亲,一般通过原理图、VHDL对数字系统建模,运用EDA软件仿真、综合,生成基于一些标准库的网络表,配置到芯片即可使用。它与ASIC的区别是用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。在目前的电子设计中,常使用硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,烧录至 FPGA 上进行测试。当测试完成后,在制作ASIC。
 楼主| 发表于 2010-12-29 08:58:39 | 显示全部楼层
ASIC简介
  ASIC(Application Specific Integrated Circuit)是专用集成电路。
  目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
  ASIC分为全定制和半定制。全定制设计需要设计者完成所有电路的设计,因此需要大量人力物力,灵活性好但开发效率低下。如果设计较为理想,全定制能够比半定制的ASIC芯片运行速度更快。半定制使用库里的标准逻辑单元(Standard Cell),设计时可以从标准逻辑单元库中选择SSI(门电路)、MSI(如加法器、比较器等)、数据通路(如ALU、存储器、总线等)、存储器甚至系统级模块(如乘法器、微控制器等)和IP核,这些逻辑单元已经布局完毕,而且设计得较为可靠,设计者可以较方便地完成系统设计。
  现代ASIC常包含整个32-bit处理器,类似ROM、RAM、EEPROM、Flash的存储单元和其他模块. 这样的ASIC常被称为SoC(片上系统)。
  FPGA是ASIC的近亲,一般通过原理图、VHDL对数字系统建模,运用EDA软件仿真、综合,生成基于一些标准库的网络表,配置到芯片即可使用。它与ASIC的区别是用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。在目前的电子设计中,常使用硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,烧录至 FPGA 上进行测试。当测试完成后,在制作ASIC。
 楼主| 发表于 2010-12-29 08:59:12 | 显示全部楼层
1. Cavium
    Cavium使用的是MIPS64 R2核,目前最高版本为16核,每个核可以 跑道1Ghz。Cavium不光是一个多核系统,而且在IO方面做了大量的工作。话说到这里,我想强调一点的是,
    比较多核时需要从以下几个方面考虑:
   (1)指令集
   (2)核之间的通信方式
   (3)IO部件
   (4)其它部件,如加密,Pattern Matching等
   Cavium核之间采用共享总线和二级CACHE的方式的方式通信(有些类似于X86,但是其总线速度很高)。更重要的是,Cavium针对网络类应用,特别在CPU上集成了一个硬件
  单元SSO,这个硬件单元负责将数据包分派到不同的核上处理,并保证同一个流之间的数据包的ORDER和处理原子性。

2. RMI
   同Cavium一样,RMI也是采取MIPS64 R2核。目前最高版本是8核,但是每个核上最多可以有4个硬线程,因此最多可以有32个线程。每个核最高频率为1.5Ghz。硬线程之间通过一个高速的RING(称之为FMN,Fast Message Network)通信,RING是一种交叉式的,不是共享式的,因此可扩展性会很好。
   同样的RMI也提供了很多硬件单元来处理Packet。

我们的方向是:
(1)开发最专业,最高效的协议识别引擎(我们的协议识别引擎效率很高,因为我们有一个很efficent的特征库)
(2)针对多核,开发一个高效Framework,这个Framework是借鉴RMI的RING结构。
目前在x86单CPU上,可以做到1Mpps。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-24 01:37 , Processed in 0.095304 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表