识别引擎

译文原题】:Recognition Engines

【原文作者】:Gary Stix

【译文出处】:《Scientific AmericanJanuary.2006

识别引擎

——为了更好的进行基于垃圾邮件和病毒扫描的数据流分析所做的处理器研究

由于每隔几年就出现的更快的处理器弥补了大量失效和冗余的应用软件造成的悲剧,计算机工业才得以在逆境中幸存至今。如今,这种奢侈的处理器运行速度面临着减慢的现实,由于能源消费火箭般的增长和作为微处理器基础的电子板的设计瓶颈。英特尔(神圣的摩尔定理的支配者)和其他的硬件制造商作为回应,开始着手研究在低速度情况下运行的大量多处理器技术。

但是,多处理器的诞生也伴随着他们自己特有的问题,首先,编写将计算任务分配到不同的计算器上面的软件对许多程序员而言是一件不可想象的艰巨任务。而且,大量的快速发展的网络应用——从病毒扫描到基于XML语言下的Web文档的阅读,并不能轻易的在并行处理的基础上实现。

决定一个信息中是否包含如 "lottery","Viagra"这样的指示垃圾邮件的关键字,需要对一系列不同的参数进行评估,比如是否 "lottery" 在文档中紧跟在 "payout" 这个词后面?同时将这个任务分配在一组并行的处理器上面也存在着问题。取而代之,工程师们已经开始关注协处理器在这种问题上面的一种特殊的角色,即主处理器仍旧保持着它的作为核心系统功能的首席调度的职能,同时设计专门进行垃圾邮件扫描和病毒捕捉或者XML计算的,拥有自己独立的处理单元的处理器的研究,这种设计方案得益于对图形处理器中的学习和模仿。在近几年,这种被称为指令侦查加速引擎的技术已经为不断增加计算负担的CPU承担了大量的工作。一些学术和企业研究室已经将这种观点更进一步的发展了,得以适用于所有的网络中的数据流。实际上,他们已经创造出了一种通用的可以简易重新编程的并且支持多种应用的数据流处理器,无论这种应用是防火墙还是压缩文件。

模式匹配计算机

IBM 苏黎世研究实验室由于设计出了用于隧道扫描用的微显微镜和高温超导体得到了诺贝尔奖。但是这个实验室同时也在进行发展中的网络硬件和软件的研究。在Hot Chips会议上(一个由IEEE20058月在斯坦福大学举行的一个会议),IBM 苏黎世 研究院的Jan van Lunteren展现了一种由他和其同事Ton Engbersen一起设计的新型的流处理器,一种能够抓捕病毒,关键字和其他不良因素的“模式匹配机器“。

IBM的处理器起源于早先的一项研究,关于如何将数据通过网络在计算机中传播的研究,也就是所谓的路由器研究项目。挪威籍的科研人员Van Lunteren,,在九十年代后期在IBM 苏黎世实验室工作时,主要的工作就是研究如何有效的在路由器的数据表中寻找数据包在网络中传输方向的信息。路由器需要在一秒种之内检测成千上万的数据包,并且将它与自己的数据库进行成千上万次的比对,由此在将数据包在其众多的端口抛出之前决定数据包在网络中的下一条链路。Van Lunteren为了研究路由器表发明了一种哈希表,这种数学公式经过运算后能得出一个称之为哈希索引得特殊的数字,用来指示,在处理器硬件上的日志表中,哪一个相关的输出端口是联系到将数据包传输到下个路由的链路。

Van Lunteren研究出了一套基于哈希表的算法——路由平衡表或者称之为(BaRT),研究的结果是可以引人注目的压缩在内存中需要存放的路由表的数据量的大小。BaRT,这个在大量的IBM产品中得到使用的技术,能同时处理25百万数据包并且同时上减少了四倍的数据事故的发生。

路由表研究者仅仅需要看一看数据包开头的一小段字符数据,就能知道这个数据包要走到哪里。但是由于不可想象数量的垃圾邮件和病毒之类网络不良元素的泛滥成灾,现在的网络处理器不得不要深入研究数据包里面的数据而不是浅尝辄止的看看开头的一小段数据了,只有这样才能找到表明数据的发送者有不良的企图的证据。相似的原因,阅读基于XMLWeb文档也对网络硬件提出了相当高的要求。为了处理这种急剧膨胀的数据计算量,由Van Lunteren为了路由器而设计的这种哈希表现在变成了IBM流处理器的基础。

超越冯·诺依曼

传统的处理器需要大量的指令去完成处理XML代码或者查找病毒和垃圾邮件的工作,从而创造了一个用上万个时钟周期仅仅来处理一个单独的字母的效率瓶颈。尽管有了许多改良,现代的CPU仍旧依靠着在二十世纪四十年代的伟大的数学家冯·诺依曼和计算机先锋J.Presper John Mauchly等人提出的架构。冯·诺依曼架构,正如众所周知的,从内存的地址中取指令然后执行,当下一条指令被执行的时候更新程序计数器。这个周期不断重复,除非它明确的被另一个指令告知要中断跳转到程序的另一个地方执行。假如处理器遇到一个比较复杂的任务,比如评估是否一个特殊的字符在XML编码中是合法的,那它就必须通过大量的指令和时钟周期的积累来完成此次任务。

Van LunterenEngbersen从早期计算机设计那里吸取了一种设计概念,这是一种根植于伟大的计算机先锋图灵的有限自动机思想。有限自动机定义了所有计算机器的运行基本法则:诸如如何在一系列离散的步骤中表现计算行为,如何确定任何时刻的内部的有限的状态列表之类问题。在某种抽象级别上说,冯·诺依曼的机器也就是一台有限自动机。但是,由于忽略了程序计数器的存在,Van LunterenEngbersen设计的这种自动机将它和基于冯·诺依曼模型的CPU区分开了。

不像冯·诺依曼机器的模式,Van LunterenEngbersen的自动机可以在一个时钟周期内同时对多个数据进行评估计算,而不是如同那些被程序计数器控制着的处理器那样,每个时钟周期只处理一个数据。这就是有限自动机能够在图像处理和声音识别的系统的硬件设计中被大量应用的原因之一。但是传统的有限自动机,并不能实现轻松的可重新编程,因而牺牲了冯·诺依曼模式CPU的柔韧性和通用型的优点。

然而,这种状况已经得到了巨大的改变。 IBM有限自动机架构下的硬件,现在已经能够实现可重新编程能力,当软件出现更新时,比如一种新的病毒传播或者XML的标准的改变,原有的有限自动机架构的硬件可以轻松的重新编写程序,实现对新问题的无缝连接。

Van LunterenEngbersen的处理器的研究基于一种包括圆形结点(或者称之为状态),和在结点之间代表传递的链接线的状态图。比方说,一个地铁的入口处的栅栏实际上就可以看成是一种有限自动机,它的初始状态称之为锁定,当你投入一个硬币后,打开了入口处的栅栏,就好比在当前的状态图中从当前锁定结点到开锁结点之间画出一条链接线,然后沿着链接来到开锁结点。穿过地铁的入口后,入口栅栏自动关上,就好像从开锁结点又回到了锁定结点。

IBM有效自动机中间,一个给定的结点可以同时和多于两个的结点相连。在一个实际的流处理应用程序中,一个结点可以和很多个不同其他的结点相连,在状态图中决定走向下一个结点状态之前,每一个不同的链接都会被在同时被评估。对于在一个数据流中查找垃圾邮件这个实际问题,处理器从内存中读取词语“lottery“。然后不仅能够判断在达到的字符串中是否‘o’是否紧跟在‘l’后面,同时也可以去寻找垃圾邮件中是否有如”l_o“之类的下划线字符,这种下划线是垃圾邮件用来蒙骗垃圾邮件隔离器常用的方法。作为研究的一部分成果,在一个时钟周期内机器能够同时在自己的内存中进行比如’lottery’中的’l’’viagra’中的’v’之类的很多字符的寻找比对。在传统的处理器中,诸如如此类问题的每一步都需要序列的执行。(参看下图)

 

至少在实验室里面,有限自动机的应用已经能够显著的改进流处理的效果了。Van LunterenHot Chips会议上面报告,IBM的有限自动机在病毒,垃圾邮件扫描和其他的应用中处理字符的速度已经达到了十亿次每秒了,这要比传统处理器快上10100倍。在这其中发挥着核心作用的工具就是BaRT算法。因为在许多有限自动机中间,在状态图中存储执行运算和审核的规则将会消耗大量的内存。但是由于BaRT算法的使用,IBM的有限自动机能在少于100千字节的内存中存储25000个字符,所需的空间仅仅是其他一些自动机所需的五百分之一。这个一开始为了处理路由表而设计的效果优良的算法,能够实现内存需求的线性增长:假如处理规则的数目从 1 10,内存需求将会按照一个可以接受的数量级上升。然而在许多其他种类的有限自动机中,同样一个小小的增长就能导致需求100倍以上的内存空间。

IBM已经同意在经过它的工程师和技术服务部门的授权之后(用来评估产品所需要的处理器数目),在它的客户产品中提供这种有限自动机技术。IBM并不是唯一有这种创意和技术的公司。许多大学和公司都开发了一系列可重新编程的自动机,John Lockwood,一个华盛顿大学的教授,和一家叫Global Velocity的公司合作开发并且商业化了一种类似的处理器。但是,Van Lunteren声称IBM的设计是独一无二的,因为这种机器有着能够处理大量不同应用领域的能力,使它变成了一种通用的流处理器。

这些不同的数据流处理引擎将会在实际工作中更紧密的配合使用。这使我们坚信图灵和冯·诺依曼的宝贵遗产将还会在同一块电路板上面共存很多年。

关于本文更多的探索:

有限自动机的字母表,词汇和语言,关于有限自动机如何工作的解释,都能在www.c3.lanl.gov/mega-math/workbk/machine/mabkgd.html中看到。

Global Velocity 是一个开发与IBM团队思路相似的流处理器的公司,它的网站是:www.globalvelocity.com/index.html

XML加速引擎是成立于 2004 3 18 ,第一个专门研究更加高效的XML处理方法的国际工作组,它的成员有Jan van Lunteren,Ton Engbersen,Joe Bostian, Bill CarayChris Larsson.。您可以通过一下网址了解更多信息:www.research.ibm.com/XML/IBM__Zurich_XML_Accelerator_Engine_paper_2004May04.pgf

 

 

 

 

【译者简介】:蒋彪,男,汉族,84年生人,南京信息工程大学计算数学本科毕业,软件世界里面小小一无名鼠辈!联系方式:QQ258737400

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值