关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 计算机系统中数据驱动的计算及其应用

计算机系统中数据驱动的计算及其应用

作者:时间:2008-08-05来源:网络收藏

  数据驱动计算概述

  计算机体系结构可以分为控制流计算机和。控制流计算机又称为冯o诺依曼计算机,其程序的运算执行顺序是预先设置好的,按照编程者的控制(程序指针)逐条执行。现在实际应用的计算机都使用控制流机制,而运算的执行顺序取决于数据间的互相依赖关系和操作数的有效性,指令间没有固定的顺序,不需预先设定,更符合人们的思维习惯。

  又可以分为两类:数据驱动和需求驱动。数据驱动计算机运算执行的顺序由输入数据的有效性决定,需求驱动计算机运算执行的顺序依赖于数据的需求。目前绝大多数数据流计算机都采用数据驱动计算技术。

  数据驱动是一种不同于传统冯o诺依曼结构的先进计算结构,可以简单方便地挖掘出运算的时间并行性和空间并行性,不需要程序指针和进程调度机制。使用这种非传统的计算结构将有助于提高系统的安全性和处理能力。

  如图1所示,分别用冯o诺依曼计算模型和数据驱动计算模型实现下式的运算:

  R=frac{AB-CD}{AC+BD}

  具体实现如图1所示:

  

  在数据驱动概念中,运算单元(如加减乘除等运算)称为节点,连接节点之间的通道称为弧。从图1可以看出,传统的冯o诺依曼计算结构使用程序指针控制程序的顺序执行;而数据驱动计算结构的计算顺序只由数据的依赖关系决定,只要数据到达就可以进行计算,有效地挖掘了程序的时间并行性和空间并行性,非常适合于并行处理。

  数据流计算的不是预先确定的,而是在程序运行时动态确定,采用运行时的数据依赖性作为的判定机制。所以,数据流计算机没有程序指针,而是直接编译和运行。编译器产生一组操作数;每个操作的结果有一个或多个目的地;只要操作数有效,操作将会被安排尽快进行。

  数据驱动处理器

  数据驱动处理器是基于数据驱动计算模型设计的、内部包含多个处理单元、使用超长自定时流水线和结构的并行处理器,具有超强的计算能力和极低的功耗。

  内部结构

  是Sharp公司开发的一款数据驱动处理器,内部结构如图2所示,包含10个并行处理单元nPE#0~nPE#9,这些处理单元通过一个高速路由器连接起来,每个处理单元内部具有40~60级异步流水线,该流水线全部采用自定时时钟机制,该芯片是一个真正的多处理器系统。

  

  DDMP是一款可以商用的处理器,采用0.25μm工艺,性能为8600MOPS,供电电压为2.5V。在DDMP芯片中,10个基本数据驱动处理单元以线性结构排列,组成多处理单元系统,基本处理单元通过网络互连。

  DDMP中一个处理单元Nano PE的基本结构图中,数据首先从处理器的输入端口进入处理器,接着发往合并模块(M)。到达匹配存储器(MM)后被暂时储存起来,直到另外一个操作数到达。如果匹配(另一个操作数到达),这两部分会结合成一个操作数据包(包括、目的地、颜色标志和一对操作数),被分发到适当的功能处理单元(FP)或者算数逻辑单元()进行运算。指定的操作完成后,产生一个操作结果并送往缓冲存储器(CPS)。最后,分发单元(D)按目的地将操作结果分发到相应的处理器或输出,并将旧目的地址换成新目的地址。

  DDMP一个处理单元的内部各个模块(例如MM、FP和CPS)都采用自定时时钟机制,进行独立工作。在数据处理过程中,不需要任何控制,只需进行数据匹配即可。需强调的是在上述实现中,主要功能(例如MM、FP和CPS)完成的任务是相互独立的。所以,在这样的处理器中,不需要使用集中控制机制来实现运算的协调,不需要定时器来保证运算的顺序,唯一需要的是各功能模块中适当的匹配数据速率。

  DDMP的特点

  首先,DDMP数据驱动处理器内部具有10个并行的处理单元,具有强大的处理能力,适合图像处理、网络协议处理等复杂的应用。

  其次,DDMP采用实现,功耗极低。现在大部分处理器都使用实现,同步系统拥有同一个时钟驱动,在电路运行过程中,即使是暂时不工作的部分也会随着时钟的翻转一起消耗能量。而数据驱动处理器使用实现,没有统一的时钟,其中的超长流水线使用自定时机制,即保证了高性能,又降低了功耗。

  另外,DDMP为非冯o诺依曼结构的处理器,其实现原理与目前广泛使用的冯·诺依曼结构完全不同,使用专用的指令集、具有独特的专用开发环境和语言。其开发方法和过程与传统的计算机有本质的区别。因此,使用传统技术的黑客很难对数据驱动计算系统进行有效攻击,从而提高了系统的安全性。

  开发环境

  软件开发环境

  对于数据驱动计算来说,使用图形化的编程语言更直观、自然,能够充分体现出运算中的并行性和数据依赖性。DDMP处理器的程序设计就使用专用的语言,用来编制各种算法的。软件开发界面如图3所示,不仅能够进行的编制,还可以进行程序的编译、调试和仿真。

  

  硬件开发环境

  为了将编制好的数据流图真正在硬件上调试和实现,需要有相应的硬件开发平台。目前,DDMP的硬件开发平台有两种,分别基于PCI总线和基于USB接口。DDMP通过PCI接口或USB接口与计算机通信;可以从计算机给DDMP和FPGA进行初始化、下载程序和输入数据,初始化外部存储器,并得到硬件输出的计算结果。

  在基于PCI总线的开发平台中,DDMP和两个FPGA组成一个单向的通信环路,DDMP可以给FPGA1发送数据,FPGA1可以给FPGA2发送数据,FPGA2可以给DDMP发送数据。DDMP、FPGA1和FPGA2分别带有外部SDRAM;为了提高外部存储器的访问速度,FPGA配有外部SRAM。

  基于数据驱动计算的防火墙设计

  数据驱动处理器的并行处理能力强、功耗低、安全性高,适用于图像和视频等多媒体处理、网络安全与协议处理等运算复杂度和并发性较高的应用。

  嵌入式防火墙用于保护主机安全,要求自身安全性高、体积小、功耗低。DDMP可满足这些要求。

  嵌入式防火墙的基本结构如图4所示。首先,进入主机的数据包被储存在缓冲区中;同时,该数据包的IP头和TCP/UDP头被传送到动态包过滤功能模块中处理。在动态包过滤模块中,使用TCP头来确定该数据包是否属于一个新的连接。如果属于,则在数据表中建立一个新的连接表项;包分类模块(分类器)使用过滤规则库检查该数据包。如果该数据包属于已有连接,则数据包状态检测器(SPI)检测该数据包是否为非法状态转移。UDP是一种无连接协议,可以使用IP地址和端口号来建立一个虚拟连接。因此,对于UDP数据包,SPI会使主机更安全。对第四层数据包头部的状态检测之后,只有安全合法的数据包进入应用层过滤器(AF)中,AF检查数据包的内容,包括URL或者E-mail附件等等。最后,合法的数据包从缓冲区中提取并通过防火墙。

  

  嵌入式防火墙中各模块的数据依赖关系如图5所示,包括进程创建、执行和删除、分类器、数据包状态监测器SPI和应用层过滤器APF、高速数据包缓冲等等。把这些数据流变成数据流图,装入DDMP处理器,就是数据驱动防火墙系统的设计要点。

  通过软件仿真和硬件测试比较,基于DDMP数据驱动处理器的嵌入式防火墙的SPI模块超过千兆的包处理能力,可满足千兆以太网的需求。

  总结

  数据驱动计算以及数据驱动处理器,具有并行性高、处理能力强、功耗低、安全性能好的优点,虽然目前还未广泛使用,但相关的研究和开发工作一直在进行和发展。本文介绍的DDMP处理器就是基于数据驱动原理、采用异步电路和自定时流水线技术的多核心处理器,已经在图像处理、网络安全等方面取得了较好的研究成果。



评论


相关推荐

技术专区

关闭