维普资讯
设计应用 Design & Applicαtions
数据驱动计算及其应用
Data-Driven Calculation and Its Applications
至?如回if算概注
计算机体系结构可以分为控制
流计算机和数据流计算机。控制流
计算机又称为冯·诺依曼计算机,
其程序的运算执行顺序是预先设置
好的,按照编程者的控制(程序指
针)逐条执行。现在实际应用的计
算机都使用控制流机制,而数据流
计算机运算的执行顺序取决于数据
间的互相依赖关系和操作数的有效
性,指令间没有固定的顺序,不需预
先设定,更符合人们的思维习惯。
数据流计算机又可以分为两类 z
数据驱动和需求驱动。数据驱动计
算机运算执行的顺序由输入数据的
有效性决定,需求驱动计算机运算
执行的顺序依赖于数据的需求。目
前绝大多数数据流计算机都采用数
据驱动计算技术。
数据驱动是一种不同于传统冯·
诺依曼结构的先进计算结构,可以
简单方便地挖掘出运算的时间并行
性和空间并行性,不需要程序指针
和进程调度机制。使用这种非传统
的计算结构将有助于提高系统的安
全性和处理能力。
如图 1 所示,分别用冯·诺依曼
计算模型和数据驱动计算模型实现
F式的运算 z
R AB-CD
AC十BD
具体实现如图 1 所示:
圄 町…浦册册中户…f件M……牛刊山山约m则……Oω川川…Bω川……3 9叫巾9伊怀卢……e眈………C臼叩…e配町C∞C
• 中国铁通集团有限公司网络运行部苏晓华
在数据驱动概念中,运算单元
(如加减乘除等运算)称为节点,连
接节点之间的通道称为弧。从图
1 可以看出,传统的冯·诺依量计
算结构使用程序指针控制程序的
顺序执行:而数据驱动计算结构的
计算顺序只由数据的依赖关系决
定,只要数据到达就可以进行计
算,有效地挖掘了程序的时间并行
性和空间并行性,非常适合于并行
处理。
数据流计算的运算顺序不是预
先确定的,而是在程序运行时动态
确定,采用运行时的数据依赖性作
为运算顺序的判定机制。所以,数
据流计算机没有程序指针,而是直
接编译和运行数据流图。编译器产
生一组操作数:每个操作的结果有
一个或多个目的地;只要操作数有
效,操作将会被安排尽快进行。
tm
序执行
方
11|
理
BDQCDWX
是
xx-xx+÷
'A\CPABTS 刷
PFhp
非PP
M引
1234667
棚
DDDDDDD
使用程序指针控制
毅挥驱动必埋葬DDMP
数据驱动处理器是基于数据驱
动计算模型设计的、内部包含多个
处理单元、使用超长自定时流水线
和异步电路结构的并行处理器,具
有超强的计算能力和极低的功耗。
DDMP 内部结构
DDMP 是Shorp公司开发的一款
数据驱动处理器,内部结构如图 2所
示,包含 10个并行处理单元nPE#O~
叫王#9,这些处理单元通过一个高速
路由器连接起来,每个处理单元内
部具有 40~60 级异步流水线,该流
水线全部采用自定时时钟机制,该
芯片是二个真正的多处理器系统。
DDMP 是一款可以商用的处理
器,采用 μm 工艺,性能为
8600MOPS,供电电压为 。在
DDMP芯片中, 10个基本数据驱动处
数锺驱动方式
忡图马·诺侬
曼计算模
型与数据
驱动计算
模型的比
较
时间并行性
计算仅自数据相关性决定
Design& AppIications -:X I J ,乃
理单元 以线性结构排列 ,组成 多处
理单元系统 ,基本 处理单元通过 数
据包交换 网络互连 。
DDMP中一个处理单元 NanoPE
的基本 结构 图中,数据首先从处 理
器 的输入端 口进入 处理器,接着 发
往合并模块 (M)。到达匹配存储器
(MM)后被暂时储存起来,直到另外
一 个操作数到达 。如 果匹配 (另一
个操作数到达),这两部分会结合成
一 个操作数据包(包括操作码 、目的
地 、颜色标志和一对操 作数),被分
发到适 当的功能处理单元 (FP)或者
算数逻辑单元 (ALU)进行运算 。指
定的操作完成后 ,产生一个操作 结
果并送 往缓冲存储器 (CPS)。最 后,
分发单元 (D)按 目的地将 操作结果
分发到相应的处理器或输出,并将
旧 目的地址换成新 目的地址 。
DDMP一个处理单元 的内部各
个模块 (例 如MM、FP和 CPS)都采用
自定时时钟机制 ,进行独 立工作 。
在数据 处理过程中 ,不需 要任何 控
制,只需进行数据 匹配 即可。需强
调的是在上述实现 中,主要功能(例
如 MM、FP和 CPS)完成 的任 务是相
互独立 的。所 以,在这样 的处 理器
中,不需要使用集 中控制机制来 实
现运算 的协调 ,不需要定 时器来保
证运算 的顺序 ,唯一需要 的是各功
能模块 中适 当的匹配 数据速率 。
DDMP的特点
首先 ,DDMP数据驱动 处理器 内
部具有 10个并行 的处理单元,具有
强大 的处理能力,适合图像处理 、网
络协议 处理等复杂 的应用 。
其次,DDMP采用异步电路实现 ,
功耗极低 。现在大 部分处理器都使
用 同步 电路实现 ,同步系统拥有 同
一 个时钟驱 动,在电路运行过程中 ,
即使是暂时不工作 的部分也会随着
时钟 的翻转 一起消耗能量 。而数据
驱动处理器使 用异步 电路实现 ,没
有统一 的时钟 ,其 中的超 长流水线
使用 白定时机制 ,即保证 了高性 能,
又降低 了功耗 。
另外 ,DDMP为非冯 ·诺依曼 结
图 3 基 于图形
化编程的
数据驱动
处理嚣开
发软件
” 图 2 数据驱动处
理器 DDMP
内部结构
构的处理器 ,其实现原理与 目前广
泛使用的冯 ·诺依曼结构完全不同,
使用专 用的指令集 、具有独特 的专
用开发环境和 图形化编程语言。其
开发方 法和过程与传统的计算机有
本质 的区别 。因此 ,使用传统技术
的黑客很难对数据驱动计算系统进
行有效攻击 ,从而提高 了系统的安
全 性 。
开发环境
软件开发环境
对于数据驱动计算来说,使用
图形化的编程语言更直观、自然,能
够充分体现出运算中的并行性和数
据依赖 性。DDMP处理器 的程序 设
计就使 用专用 的图形化编程 语言 ,
用来编制各种 算法的数据流 图。软
件开发界面如 图 3所示 ,不仅 能够
进 行数据流 图的编 制,还可 以进 行
程序 的编译 、调试和仿真 。
硬件开发环境
为 了将编制好 的数据流 图真正
在硬 件上调试和实现 ,需要有相应
的硬件 开发平 台。目前 ,DDMP的硬
件开发平台有两种 ,分别基于PCl总
线和基 于 USB接 口。DDMP通过 PCI
接 口或 USB接 口与计 算机通 信;可
世界电子元器件 2008.3 gec.eccn.com
维普资讯
设计应用Design & Applicαtions
>>图 2 数据驱动处
理器。DMP
内部结构
n租loPE
s 匹配存储嚣
z 计算单元
a 常数存储嚣
2 合并单元
2 分支单元
'数据锁存
s 控制单元
Wi: 11才 iÆè ;Jç.r立
画刷
Rd…MD
阻C
构的处理器,其实现原理与日前广
泛使用的冯·诺依曼结构完全不同,
使用专用的指令集、具有独特的专
用开发环境和图形化编程语言。其
开发方法和过程与传统的计算机有
本质的区别。因此,使用传统技术
的黑客很难对数据驱动计算系统进
行有效攻击,从而提高了系统的安
全性。
软件开发环境
对于数据驱动计算来说,使用
图形化的编程语言更直观、自然,能
够充分体现出运算中的并行性和数
据依赖性。 DDMP 处理器的程序设
计就使用专用的图形化编程语言,
用来编制各种算法的数据流图。软
件开发界面如图 3 所示,不仅能够
进行数据流图的编制,还可以进行
程序的编译、调试和仿真。
开发环搓
NanoPE
DDMP 的特点
首先, DDMP数据驱动处理器内
部具有 10 个并行的处理单元,具有
强大的处理能力,适合图像处理、网
络协议处理等复杂的应用。
其次, DDMP采用异步电路实现,
功耗极低。现在大部分处理器都使
用同步电路实现,同步系统拥有同
一个时钟驱动,在电路运行过程中,
即使是暂时不工作的部分也会随着
时钟的翻转一起消耗能量。而数据
驱动处理器使用异步电路实现,没
有统一的时钟,其中的超长流水线
使用臼定时机制,即保证了高性能,
又降低了功耗。
另外, DDMP 为非冯·诺依曼结
理单元以线性结构排列,组成多处
理单元系统,基本处理单元通过数
据包交换网络互连。
DDMP中一个处理单元NanoPE
的基本结构图中,数据首先从处理
器的输入端口进入处理器,接着发
往合并模块 (M) 。到达匹配存储器
(MM)后被暂时储存起来,直到另外
一个操作数到达。如果匹配(另一
个操作数到达) ,这两部分会结合成
一个操作数据包(包括操作码、日的
地、颜色标志和一对操作数) ,被分
发到适当的功能处理单元 (FP) 或者
算数逻辑单元 (ALU) 进行运算 o 指
定的操作完成后,产生一个操作结
果并送往缓冲存储器 (CPS) 0 最后,
分发单元(0)按目的地将操作结果
分发到相应的处理器或输出,并将
旧日的地址换成新目的地址。
DDMP 一个处理单元的内部各
个模块(例如 MM 、 FP和 CPS) 都采用
自定时时钟机制,进行独立工作。
在数据处理过程中,不需要任何控
制,只需进行数据匹配即可 o 需强
调的是在上述实现中,主要功能(例
如 MM、 FP 和 CPS) 完成的任务是相
互独立的。所以,在这样的处理器
中,不需要使用集中控制机制来实
现运算的协调,不需要走时器来保
证运算的顺序,唯一需要的是各功
能模块中适当的匹配数据速率。
为了将编制好的数据流图真正
在硬件上调试和实现,需要有相应
的硬件开发平台。目前, DDMP 的硬
件开发平台有两种,分别基于PCI 总
线和基于 USB 接口。DDMP通过 PCI
接口或 USB 接口与计算机通信;可
硬件开发环境
基于图形
化编程的
数据驱动
处理器开
发软件
>> l!l 3
世界电子元器件
1汉 -IT腿 H'I Design&Applications
以从计算机给 DDMP和 FPGA进行
初始化、下载程序和输入数据,初始
化外部存储器 ,并得 到硬件输 出的
计算结果 。
在基于PCI总线 的开发平台中,
DDMP和两个 FPGA组成一个单 向
的通信环 路,DDMP可以给 FPGA1
发送数据 ,FPGA1可 以给 FPGA2发
送数据 ,FPGA2可 以给 DDMP发送
数据 。DDMP、FPGA1和 FPGA2分别
带有外部 SDRAM;为 了提高外部存
储器 的访 问速度,FPGA 配有 外部
SRAM。
基于数据驱动计算的
防火墙设计
数据驱动处理器 的并行处理能
力强、功耗低 、安全性高 ,适用于 图
像和视频等多媒体处理、网络安全
与协议处理等运算复杂度和 并发性
较高的应用 。
嵌入式防火墙用于保护主机安
全,要求 自身安全性高、体积小、功
耗低 。DDMP可满足这些 要求 。
嵌入式防火墙 的基本结构如 图
4所示 。首先 ,进 入主机的数据包
Packet 8u竹;er、
SPI:Statefull Packet Inspectlon APF:Applic~lon Filtering
¨·圈 4 嵌入式防火墙的基本结构
却 护芦幽
L ⋯一 ⋯ m
被储存在缓冲 区中;同时,该数据包
的IP头 和TCP/UDP头被传送到动态
包过滤 功能模 块中处理 。在动态包
过滤模块 中,使用 TCP头来确定该
数据包 是否属于一个新 的连接 。如
果属 于,则在数据表 中建立一个新
的连接表项;包分类模块(分类器)
使用过 滤规则库检查该数据包 。如
果 该数 据包属于 已有连接 ,则数据
包状态 检测器 (SPI)检测 该数据包
是否为非法状态转移 。UDP是 一种
无连接 协议 ,可 以使用 IP地址和 端
口号来建立 一个虚拟连 接 。因此 ,
对 于UDP数据包 ,SPI会使 主机更安
全。对第四层数据包头部 的状态 检
测之后,只有安全合法 的数据包 进
入应用层过滤 器(AF)中 ,AF检查数
据包的 内容 ,包括 URL或者 E—moil
附件等等 。最后 ,合法 的数据包从
缓冲区中提取并 通过防火墙 。
嵌入式防火墙 中各模块 的数据
依赖关系如 图 5所示 ,包括进程创
建、执行和删除、分类器、数据包状
态监测器 SPI和应用层过滤器 APF、
高速数据包缓 冲等等 。把这些数据
流变成数据流图,装入DDMP处理器 ,
就是数据驱动防火墙系统的设计要点。
通过软件仿真和硬件测试 比较 ,
基 于DDMP数据驱动处理器 的嵌入
式防火墙的SPI模块超过干兆的包
处理能力,可满足干兆以太网的需求。
总结
数据驱动计算 以及数据驱动处
理器 ,具有并行性 高、处理 能力强、
功耗低 、安全性 能好的优 点,虽然 目
前还未广泛使用,但相关的研究和
开发工作一直在进行和发展。本文
介绍 的DDMP处理器 就是基于数据
驱动原理、采用异步电路和自定时
流水线技术的多核心处理器,已经
在图像处理、网络安全等方面取得
了较好 的研 究成果 。圃
维普资讯
设计应用 Design & App阳
以从计算机给 DDMP 和 FPGA 进行
初始化、下载程序和输入数据,初始
化外部存储器,并得到硬件输出的
计算结果。
在基于PCI 总线的开发平台中,
DDMP 和两个 FPGA 组成一个单向
的通信环路, DDMP 可以给 FPGA1
发送数据, FPGA1 可以给 FPGA2 发
送数据, FPGA2 可以给 DDMP 发送
数据。 DDMP、 FPGA1 和 FPGA2 分别
带有外部 SDRAM; 为了提高外部存
储器的访问速度, FPGA 配有外部
SRAM 。
基于巳毅好驱动#算M
E步二在椅-Njf
数据驱动处理器的并行处理能
力强、功耗低、安全性高,适用于图
像和视频等多媒体处理、网络安全
与协议处理等运算复杂度和并发性
较高的应用。
嵌入式防火墙用于保护主机安
全,要求自身安全性高、体积小、功
耗低。 DDMP 可满足这些要求。
嵌入式防火墙的基本结构如图
4所示。首先,进入主机的数据包
Inωming
packets
to the host
DIynamícpacket fllterlng
ï一-寸
CI槌翩er
Forwardl
APF l_..;'íScaro
contentl 丰阳闹剧的9
一一一一....L/ • oac惚恕
。o 0+。←+
/阳cket Buffl町、
SPI:S倒向11 Packet Inspectlon APF: Appllc硝。nFI嗣同ng
忡囹 4 嵌入式防火境的基本结构
忡图 5 嵌入式防火墙系统的基本数据流
•• 组~JI
---- 世界电子元器件
被储存在缓冲区中:同时,该数据包
的 IP头和TCP/UDP头被传送到动态
包过滤功能模块中处理。在动态包
过滤模块中,使用 TCP 头来确定该
数据包是否属于一个新的连接。如
果属于,则在数据表中建立一个新
的连接表项:包分类模块(分类器)
使用过滤规则库检查该数据包。如
果该数据包属于己有连接,则数据
包状态检测器 CSPI) 检测该数据包
是否为非法状态转移。 UDP 是一种
无连接协议,可以使用 IP 地址和端
口号来建立一个虚拟连接。因此,
对于UDP数据包, SPI 会使主机更安
全。对第四层数据包头部的状态检
测之后,只有安全合法的数据包进
入应用层过滤器 CAF) 中, AF检查数
据包的内容,包括 URL 或者 E-mail
附件等等。最后,合法的数据包从
缓冲区中提取并通过防火墙。
嵌入式防火墙中各模块的数据
依赖关系如图 5 所示,包括进程创
建、执行和删除、分类器、数据包状
态监测器 SPI 和应用层过滤器 APF、
高速数据包缓冲等等。把这些数据
流变成数据流图,装入DDMP处理器,
就是数据驱动防火墙系统的设计要点。
通过软件仿真和硬件测试比较,
基于 DDMP数据驱动处理器的嵌入
式防火墙的 SPI 模块超过千兆的包
处理能力,可满足千兆以太网的需求。
SZ结
数据驱动计算以及数据驱动处
理器,具有并行性高、处理能力强、
功耗低、安全性能好的优点,虽然目
前还未广泛使用,但相关的研究和
开发工作一直在进行和发展。本文
介绍的 DDMP处理器就是基于数据
驱动原理、采用异步电路和自定时
流水线技术的多核心处理器,己经
在图像处理、网络安全等方面取得
了较好的研究成果。回国