§6.1引言现代计算机自问世以来已历经50余年的历史,基本结构形式始终是冯·诺依曼机结构。冯·诺依曼机的基本特征:“程序存储、顺序执行、二进制、五大部件组成、共享数据”第六章数据流计算机相关性是并行处理的关键问题并行处理计算的发展,两条路线:对冯·诺依曼机结构改进,适应并行处理,解决相关性问题提出非冯·诺依曼结构四种驱动方式计算机模型按控制机制对计算机模型分类,Treleaven教授提出划分为四种驱动方式:控制驱动数据驱动需求驱动模式匹配驱动控制驱动模型这是传统的冯·诺依曼型结构基本特征:命令式语言程序顺序执行,指令的执行次序受指令计数器的控制,即由程序员指定序列操作影响并行性主要因素:“共享数据,顺序执行”控制驱动发展并行控制流模型如Fork和Join结构,允许在同一时刻有几个控制流同时活动。并行控制流模型关键技术之一是采用同步手段(如Join操作符)来处理数据的相关性。存在问题:用程序计数器(PC)确定程序中指令执行的顺序,程序流由程序员显式控制控制流计算机用共享存储器来保存指令和数据对象,共享存储器中的变量可被多条指令修改。由于存储器是共享的,所以一条指令执行后可能会对其它指令产生副作用。副作用会妨碍并行处理。数据驱动模型程序中任意一条指令中所需的操作数(数据令牌)到齐,立即启动执行(称为“点火”)。一条指令的运算结果又流向下一条指令,作为下一条指令的操作数来驱动此指令的启动执行能充分地利用程序中指令级并行性不存在共享数据,也不存在指令计数器,指令启动执行的时机仅取决于操作数具备与否。只要有足够多的处理单元,凡是相互间不存在数据相关的指令都可以并行执行数据驱动模型需求驱动模型一个操作仅在需要用到其输出结果时才开始启动。如果这时该操作由于操作数未到而不能得到输出结果,则该操作再去启动能得到它的各个输入数的操作,也可能那些操作还要去启动另外一些操作,这样就把需求链一直延伸下去,直至遇到常数或外部输入的数据已经到达为止,然后再反方向地去执行运算。需求驱动模型需求驱动的系统结构也取消了共享数据和指令计数器,但其执行操作的次序与数据驱动方式不同。由于需求驱动方式只对需要用到其结果的操作进行求值,也即只执行最低限度的求值,免除了许多冗余的计算,从总体而言,它比数据驱动执行的计算量小。归约机就是基于需求驱动的计算机计算的运行是由谓词模式匹配加以驱动的,程序的执行主要适合于求解非数值的符号演算。面向智能的计算机就是基于“模式匹配驱动”的计算机。模式匹配驱动§6.2数据流计算机1.基本工作思路由数据驱动程序的执行;一条指令执行后不送存储器保存,以供其他指令共享,而是直接流向需要该结果的指令,作为新的操作数供下一条指令使用。每个操作数经过指令的一次使用后便消失。如果若干条指令要求使用相同的数据,那么就需要事先复制该数据的若干个副本,分别供多条指令使用。数据流驱动的特点1.指令的执行是由数据可用性来驱动,而不是由程序计数器来控制。2.任何指令只要操作数可用,应该说是做好了执行的准备。3.数据驱动程序中的指令不用任何方式来排定次序。4.数据直接保存在指令内,不是存在共享存储器中。6.计算结果(数据令牌)直接在指令间传递。一条指令产生的数据可被复制成多份副本直接送给所有缺乏数据的指令。数据令牌一旦被一条指令使用后,它就不能再被其它指令重复使用。7.不需要共享存储器,不需要程序计数器,不需要控制定序器。7.需要专门的机构来检测数据可用性,将数据令牌和缺乏数据的指令进行匹配,同时使指令执行的异步链结作用得以实现。8.没有存储共享就不会产生副作用。9.异步性意味着需要握手信息或令牌匹配操作。10.纯数据流计算机可开发指令级细粒度并行性。可重入结构、可重入程序要求可以被多个任务所调用,需要:程序模块本身在执行过程中不能被修改调用它的各程序应自带参数工作区数据流计算机指令结构指令主要由操作包(OperationPacket)和数据令牌(DataToken)两部分组成操作包由操作码(OperationCode),一个或几个源操作数(...