计算机系统结构论文--数据流计算机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机系统结构论文--数据流计算机
数据流计算机
班级:学号:姓名:
摘要:数据流计算机体系结构的性能优于传统的冯·诺依曼式体系结构,其应用前景更加广泛。本文主要介绍了数据流计算机体系结构的分类,工作原理,性能分析,系统的优缺点介绍以及DDMP处理器的结构与特点。
关键词:数据流计算机;数据驱动;需求驱动;数据驱动处理器DDMP;操作码;运算顺序;数据流图;
中图分类号:TP302.1 文献标识码:A
1 引言
1.1计算机体系结构分类
计算机体系结构可以分为控制流计算机和数据流计算机。控制流计算机又称为冯·诺依曼计算机,其程序的运算执行顺序是预先设置好的,按照编程者的控制(程序指针)逐条执行。现在实际应用的计算机都使用控制流机制,而数据流计算机运算的执行顺序取决于数据间的互相依赖关系和操作数的有效性,指令间没有固定的顺序,不需预先设定,更符合人们的思维习惯。
1.2数据流计算机分类
数据流计算机又可以分为两类:数据驱动和需求驱动。数据驱动计算机运算执行的顺序由输入数据的有效性决定,需求驱动计算机运算执行的顺序依赖于数据的需求。目前绝大多数数据流计算机都采用数据驱动计算技术。数据驱动是一种不同于传统冯·诺依曼结构的先进计算结构,可以简单方便地挖掘出运算的时间并行性和空间并行性,不需要程序指针和进程调度机制。使用这种非传统的计算结构将有助于提高系统的安全性和处理能力。
2数据流计算机工作原理
2.1基本工作原理
在数据流计算机结构中以“数据驱动”方式启动指令的执行。按照这种方式,程序中任一条指令只要其所需的操作数已经全部齐备,且有可使用的计算资源就可立即启动执行(称为点火)。指令的运算结果又可作为下一条指令的操作数来驱动该指令的点火执行。这就是“数据驱动”的含义。
在数据流计算机模型中不存在共享数据,一条指令执行后不送存储器保存,以供其他指令共享,而是直接流向需要该结果的指令,作为新的操作数供下一条指令使用,每个操作数经过指令的一次使用后便消失。如果若干条指令要求使用相同的数据,那么就需要事先复制该数据的若干个副本,分别供多条指令使用。
数据流计算机中也不存在指令计数器。指令得以启动执行的时机取决于操作数具备与否。程序中各条指令的执行顺序仅仅由指令间的数据依赖关系决定。因此,数据流计算机中指令的执行是异步并发地进行的。在数据流程序中,由于“数据驱动”要求每条指令标明其运算结果的流向,也就是指向将本指令的运算结果作为操作数的那条目标指令。因此数据流程序中只有一条链路,即各条指令中指向目标指令的指针。
在数据流计算机中,没有变量的概念,也不设置状态,在指令间直接传送数据,操作数直接以“令牌”(Token)或“数值”的记号传递而不是作为“地
址”变量加以访问。因此操作结果不产生副作用,也不改变机器状态,从而具有纯函数的特点。所有数据流计算机通常与函数语言有密切的关系。
2.2数据流计算机指令结构及指令的执行
先来分析一下数据流计算机的指令系统:
在数据流计算机中,一条指令主要有操作包(Operation Packet)和数据令牌(Data Token)两部分组成,如图1(a)所示。
其中,操作包由操作码(Operation Code),一个或几个源操作数(Source Data)及后继指令地址(Next Address)等等组成,如图1(b)所示。这里的后继指令地址用来组成新的数据令牌,以便把本指令的运算结果送往需要它的目标指令中去。
数据令牌通常有结果数值和目标地址等组成。其中的结果值是上条指令的运算结果,而目标地址直接取自上条指令的后继指令地址,如图1(c)所示。如果一条指令的运算结果要送往几个目的地,则分别形成几个数据令牌。由图1所示指令结构可以看出,在数据流计算机中允许有多个操作,包括多个数据令牌同时在各个操作部件之间传送,允许有多条指令并行执行。
图1 数据流计算机中指令的主要组成
数据流计算机中指令的执行过程
在数据流计算机中,用数据令牌传送数据并激活指令,用一种有向图表示数据流程序。一条指令主要由一个操作符、一个或几个操作数及后继指令地址组成,后继指令地址也可能有几个,它的作用是把本命令的执行结果送往需要它的指令中。图2表示函数x=(a+b)×(a-b)在数据流计算机中的计算过程。图中用符号( )表示数据令牌所携带的操作数。
图2 在数据流计算机中计算函数x=(a+b)*(a-b)时指令的执行过程
图3表示数据令牌在指令间传送的过程,图中用“.”表示数据令牌。
图3 数据流计算机工作时的瞬时状态图
图3中,第一步,数据令牌()=a,()=b;第二步,指令k、k+1被激活并行执行,产生结果数据送下一条指令、第三步,指令k+2被激活,进行乘法运算产生结果x。
3 数据驱动处理器DDMP
数据驱动处理器是基于数据驱动计算模型设计的、内部包含多个处理单元、使用超长自定时流水线和异步电路结构的并行处理器,具有超强的计算能力和极低的功耗。
3.1 DDMP内部结构
DDMP是Sharp公司开发的一款数据驱动处理器,内部结构如图4所示,包含10个并行处理单元nPE#0~nPE#9,这些处理单元通过一个高速路由器连接起来,每个处理单元内部具有40~60级异步流水线,该流水线全部采用自定时时钟机制,该芯片是一个真正的多处理器系统。
图4
DDMP是一款可以商用的处理器,采用0.25μm工艺,性能为8600MOPS,供电电压为2.5V。在DDMP芯片中,10个基本数据驱动处理单元以线性结构排列,组成多处理单元系统,基本处理单元通过数据包交换网络互连。
DDMP中一个处理单元Nano PE的基本结构图中,数据首先从处理器的输入端口进入处理器,接着发往合并模块(M)。到达匹配存储器(MM)后被暂时储存起来,直到另外一个操作数到达。如果匹配(另一个操作数到达),这两部分会结合成一个操作数据包(包括操作码、目的地、颜色标志和一对操作数),被分发到适当的功能处理单元(FP)或者算数逻辑单元(ALU)进行运算。指定的操作完成后,产生一个操作结果并送往缓冲存储器(CPS)。最后,分发单元(D)按目的地将操作结果分发到相应的处理器或输出,并将旧目的地址换成新目的地址。
DDMP一个处理单元的内部各个模块(例如MM、FP和CPS)都采用自定时时钟机制,进行独立工作。在数据处理过程中,不需要任何控制,只需进行数据匹配即可。需强调的是在上述实现中,主要功能(例如MM、FP和CPS)完成的任务是相互独立的。所以,在这样的处理器中,不需要使用集中控制机制来实现运算的协调,不需要定时器来保证运算的顺序,唯一需要的是各功能模块中适当的匹配数据速率。
3.2 DDMP的特点
首先,DDMP数据驱动处理器内部具有10个并行的处理单元,具有强大的处理能力,适合图像处理、网络协议处理等复杂的应用。
其次,DDMP采用异步电路实现,功耗极低。现在大部分处理器都使用同步电路实现,同步系统拥有同一个时钟驱动,在电路运行过程中,即使是暂时不工作的部分也会随着时钟的翻转一起消耗能量。而数据驱动处理器使用异步电路实现,没有统一的时钟,其中的超长流水线使用自定时机制,即保证了高性能,又降低了功耗。
另外,DDMP为非冯·诺依曼结构的处理器,其实现原理与目前广泛使用的冯·诺依曼结构完全不同,使用专用的指令集、具有独特的专用开发环境和图形化编程语言。其开发方法和过程与传统的计算机有本质的区别。因此,使用传统技术的黑客很难对数据驱动计算系统进行有效攻击,从而提高了系统的安全性。
3.3 开发环境
1) 软件开发环境
对于数据驱动计算来说,使用图形化的编程语言更直观、自然,能够充分体现出运算中的并行性和数据依赖性。DDMP处理器的程序设计就使用专用的图形化编程语言,用来编制各种算法的数据流图。软件开发界面如图3所示,不仅能够进行数据流图的编制,还可以进行程序的编译、调试和仿真。
2) 硬件开发环境
为了将编制好的数据流图真正在硬件上调试和实现,需要有相应的硬件开发平台。目前,DDMP的硬件开发平台有两种,分别基于PCI总线和基于USB 接口。DDMP通过PCI接口或USB接口与计算机通信;可以从计算机给