第八章数据流计算机结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第八章数据流计算机结构

为了设计高性能的计算机系统结构,其中一个方法是突破冯·诺依曼型的结构,采用数

据流执行方式而形成的数据流计算机。冯·诺依曼型计算机的基本特点是在程序计数器的集中控制下顺序地执行指令,因此是以控制流(control flow)方式工作的.美国MIT实验室的Jack Dennis 及其助手于1972年首先提出了数据流模型,并证明由此而设计的数据流计算机,其性能价格比高,较好的跟踪工艺技术进步的速度,能较方便地在应用领域中进行可编程应用.

第一节数据流计算机的基本原理

传统的冯·诺依曼计算机与数据流计算机的工作原理根本不同,它是在中央控制器控制下顺序执行的,而数据流计算机是在数据的可用性控制下并行执行的.数据流计算机里没有指令计数器,其指令执行靠数据记号(数据令牌data token)的可用性来进行,也就是指令的执行由数据来驱动,把控制流变为数据流,数据流计算机里没有常规的变量概念,也就不存在共享数据单元的问题,程序顺序性仅是指令部内部数据相关性控制,也就是只要当操作所需要的数据可用时,即启动指令执行(异步性)和所有操作都具有函数性,即所有指令都可以任何次序并发执行.正是这些特性,数据流计算机可以使许多指令同时异步执行,预计隐含的并行度是很高的.

总之,数据流计算机当指令所需数据可用时,该指令即可执行.这说明指令的操作不受其他控制的约束.任何一条指令只要它所需要的数据齐全,且可用时都可以执行.数据流计算中没有变量的概念,也不设置状态,在指令间直接传送数据,因此操作结果不产生副作用,不改变机器的状态.从而具有纯函数的特点.由此可见数据流计算机,第一,对指令来说,摆脱了外界强加于它的控制,多条指令在数据可用性驱动下同时并行;第二,它可以直接支持函数语言,不仅有利于开发程序中各级的并发性,而且也有利于改善软件环境,提高软件的生产力.

第二节数据流计算机的指令

一、数据流计算机的指令

在数据流计算机中,一条指令包含操作包(operation packet )和数据令牌(data token)两部分,如图8-1所示.

操作包(或指令包─instruction cell)通常由操作码、源操作数、后继指令地址组成,又可以看成是由操作型和受处理单元影响的部分则包括已经接收到的操作数值、数据令牌已到的标志、正在等待的数据令牌等信息.数据包在存储器中将占据一定大小的空间.

数据令牌通常由结果值和目标地址等组成.数据令牌的实质是一种表示某一操作数或参数已准备就绪的标志.一旦执行某一操作的所有操作数令牌到齐,则标志这一操作是什么操作,以及操作结果所得出的数据令牌,将发送到哪一些等待此数据令牌的操作的第几个操作数部位等有关信息,都将作为一个消息包(message packet),传送到处理单元或操作部分予以执行.这样的消息包也称为操作包.

二、数据流计算机指令的执行

在数据流计算机中,用数据令牌传送并激活指令,用一种有向图表示数据流程序.一条指令由一个操作符、一个或几个操作数及后继指令地址组成,后继指令地址也可以有几个,它的作用是把本指令的执行结果送往需要它的地指令中,例如X=(a+ b)*(a-b)这个函数中,其数据流程图如图8-2所示,为了表示数据在程序图中的流动状态,利用图中实心的圆点代表

令牌沿弧移动.假设a=8,b=12,则图8-2通过令牌沿弧移动的先后过程反映出数据流程序图的执行过程.实际上,实心里圆点代表该输入数据已准备就绪,旁边的数字代表此数据值.

(a) 表示初始数据就绪,激发(驱动)复制结点以复制多操作数;

(b) 表示复制结点驱动结束,激发数据已准备就绪的+,-结点;

(c) 表示+,-结点驱动结束,激发数据已准备就绪的*结点;

(d) 表示*结点驱动结束,输出计算结果.

总之,数据流驱动的结果,具有十分明显的四个特性.:

(1) 异步性(asynchrony).只要本调治领所需要的数据令牌都到达,指令即可独立执行,而不关心其他指令及数据的情况如何.

(2) 并行性(parallelism).可同时地并行执行多条指令,而且这种并行性通常是隐含的.

(3) 函数性(functionalism).由于不使用共享的数据存储单元,所以数据流程序不会产生诸如改变存储字这样的副作用(side effect),也可以说数据流运算是函数性的.

(4)局部性(locality).操作数不是作为地址变量,而是作为数据令牌直接传送,因此数据流

运算没有产生长远影响的后果,运算效果具有局部性.

综上所述数据流运算具有异步性、并行性、函数性、局部性,所以它很适合采用分布方式的计算实现,从而可以把数据流计算机看作是一种分布或多处理机系统.

第三节数据流计算机结构

数据流计算机根据对数据令牌方式的不同,通常把数据流计算机的结构分为静态和动态两类。

一、静态数据流计算机模型及其结构

静态数据流计算机的最主要特点是数据令牌没有标号.为了保证正确无误的工作,.在任意给定时刻里,当数据流程序图中的结点操作时,其任何一条输入弧上就只能允许存在一个数据令牌,.在静态数据流机中,数据令牌是沿数据流程序的弧流向操作结点.当所有操作数据都出现在输入弧上时,开始执行结点操作,任何时候只允许一个操作数呈现在一条弧上,否则后继指令不能被区分.

操作过程是数据令牌出于更新部件的输入池中,它将数据传递到存储部件里的目标指令.凡已接收到全部所需数据令牌的指令都被“取指令部件”取出,加入到多条可执行指令的队列中,等待分派程序把他们按先进先出方式分配给处理部件中相应的空闲处理机并发执行.各处理器产生的新的数据令牌形成结果的数据包(也称信息包),送到“更新部件”的输入池中,再由“更新部件”将这些数据令牌按它们的目的地址,送入存储部件指令池内相应指令有关部位.同时,“更新部件”将已收到全部必需的数据令牌的指令地址又“传送”给“取指令部件”,实际上它是以控制令牌的方式把这些已具备激活条件的指令地址送到“取指令部件”.典型的静态数据流计算机结构如图8-4所示.

MIT和J.B.Dennis等人是数据流计算机研究的开拓者,他们所提出的数据流计算机系统的主体结构如图8-5所示.

(1) 存储部件(Memory Section 简称MS)由若干个指令单元组成.每个指令单元保存数据流程序中的一条指令,它与数据流程序图中的结点对应且由唯一的地址所指明.

(2) 处理部件(Processing Section 简称PS),由对数据值进行基本运算的多个处理单元组成,可以并发执行已被激活的指令所要求地操作.

(3) 分配网络(Distribution Network简称DN),它将处理部件产生的多个结果数据令牌依据其各自的目的地址分别传送到存储部件相应的指令单元中去.

(4) 控制网络(Control Network 简称CN)它将控制令牌由处理部件发送到存储部件相应的指令单元中.

(5) 仲裁网络(Arbitration Network简称AN),它将可执行的操作包由存储部件发送到处理部件,可以同时允许有多个操作包在多个通路上传送.

二、动态数据流计算的模型及其结构

相关文档
最新文档