【计算机系统结构】第八章:数据流计算机和规约机

2024-04-02 04:44

本文主要是介绍【计算机系统结构】第八章:数据流计算机和规约机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第一节:数据流计算机

知识点1:数据驱动的相关概念

(1)数据驱动的数据流方式指的是,只要一条或一组指令所要求的操作数全部准备就绪,就可以立即激发相应的指令或指令组执行。执行结果的输出将送往等待这一数据的下一条或下一组指令。

(2)控制流方式与数据流方式的比较如下:

控制驱动的控制流方式的特点是:通过访问共享存储单元让数据在指令之间传递;指令执行的顺序性隐含于控制流中,但却可以显式地使用专门的控制操作符来实现并行处理:指令执行的顺序受程序计数器控制,也就是受控制令牌所支配的。数据驱动的数据流方式则不同,它没有通常的共享变量的概念,即没有共享存储数据的概念;指令执行顺序只受指令中数据相关性的制约;数据是以数据令牌方式直接在指令之间传递的。

(3)数据流是基于异步性和函数性的一种计算模型。

(4)所谓异步性,是指一旦操作数到齐就开始操作,这是数据流计算机开拓并行性的基础。

(5)所谓函数性,是指每一数据流操作都是消耗一组输入值,产生一组输出值而不发生副作用,具有变量出现在赋值语句左边仅一次的单赋值特性,从而保证任何两个并发操作可以按任意次序执行,而不会相互干扰。

知识点2:数据流程序图和语言

为了满足数据流计算机程序设计的需要,还需进一步引入许多常用的其他结点。这些结点可分别表示如下:

(1)常数产生结点:没有输入端、只产生常数。激发后输出带常数的令牌。

(2)算逻运算操作结点,主要包括常用的十、一、*、/、乘方、开方等算术运算及非、与、或、异或、或非等布尔逻辑运算,激发后输出带相应操作结果的令牌。

(3)复制操作结点:可以是数据的多个复制,也可以是控制量的多个复制。

为了满足数据流计算机程序设计的需要,还需进一步引入许多常用的其他结点。这些结点可分别表示如下:

(4)判定操作结点:对输入数据按某种关系进行判断和比较,激发后在输出控制端给出带逻辑值真(T)或假(F)的控制令牌。

(5)控制类操作结点:控制类操作结点的激发条件需要加到布尔控制端,可以把控制类操作结点细分为常用的4种:T门控结点、F门控结点、开关门控结点和归并门控结点。

知识点3:数据流计算机结构

根据对数据令牌处理的方式不同,可以把数据流计算机的结构分成静态和动态两类。

(1)静态数据流计算机。

静态数据流计算机的数据令牌没加标号。为正确工作,任意给定时刻,当结点操作时,其任何一条输入弧上只能有一个数据令牌。只有当结点的所有输入弧上都有数据令牌时,该结点才被激活来执行相应的操作。

在静态数据流计算机中,为了满足迭代要求,除要多次重复激活同一操作结点外,还必须另设控制令牌,以识别数据令牌由一个结点传送到另一个结点的时间关系,从而区分属于不同迭代层次的各批数据,所以,静态数据流计算机不支持递归的并发激活,只支持一般的循环。

(2)动态数据流计算机。

动态数据流计算机最主要的特点是让令牌带上标记,使得在任意给定时刻,数据流程序图任何一条弧上允许出现多个带不同标记的令牌。

令牌的标记是令牌附带的一个能识别该令牌时间先后相对关系的标号,对于需要多组(次)数据令牌的指令,则是通过对令牌标记的配对来识别。为此,需要相应硬件将标记附加到数据令牌上,并完成对标记的匹配工作。

知识点4:数据流计算机存在的问题

数据流计算机在提高并行处理效能上有着非常显著的特点,但也存在一些问题:

(1)数据流计算机的主要目的是为了提高操作级并行的开发水平,但如果题目本身数据相关性很强,内涵并行性成分不多时,就会使效率反而比传统的Von Neumann型机的还要低。

(2)在数据流计算机中为给数据建立、识别、处理标记,需要花费较多的辅助开销和较大的存储空间,但如果不用标记,则无法递归并会降低并行能力。

知识点5:数据流计算机进展

随着数据流计算机研制的深人开展,已提出若干新的数据流计算机,它既继承了传统计算机采用的并行处理技术,又弥补了经典数据流计算机的一些缺陷。

(1)采用提高并行度等级的数据流计算机。

(2)采用同、异步结合的数据流计算机。

(3)采用控制流与数据流相结合的数据流计算机。

第二节:规约机

知识点1:规约机的结构

归约机和数据流计算机一样,都是基于数据流的计算模型,只是其采用的驱动方式不同。数据流计算机采用数据驱动,执行的操作序列取决于输入数据的可用性;归约机则是需求驱动,执行的操作序列取决于对数据的需求,对数据的需求又来源于函数式程序设计语言对表达式的归约。

知识点2:规约机的特点

归约机的特点如下:

(1)归约机应当是面向函数式语言,或以函数式语言为机器语言的非Neumann型机器,其内部结构应不同于Neumann型机器。

(2)具有大容量物理存储器并采用大虚存容量的虚拟存储器,具有高效的动态存储分配和管理的软、硬件支持,满足归约机对动态存储分配及所需存储空间大的要求。

(3)处理部分应当是一种有多个处理器或多个处理机并行的结构形式,以发挥函数式程序并行处理的特长。

(4)采用适合于函数式程序运行的多处理器(机)互连的结构,最好采用树形方式的互连结构或多层次复合的互连结构形式。

(5)为减少进程调度及进程间的通信开销,尽量把运行进程的结点机紧靠该进程所需用的数据安排,并使运行时需相互通信的进程所占用的处理机也靠近,让各处理机的负荷平衡。

知识点3:规约机的分类

根据计算机所用归约方式的不同,相应就有串归约机和图归约机两类:

(1)串归约机

可看成是一种特殊的符号串处理机,函数定义、表达式和目标都以字符串的形式存储于计算机中。函数式语言源程序可以不经翻译,直接在串归约机上进行处理。

(2)图归约

机采取将函数定义、表达式和目标以图的形式存储于计算机中,图是其处理对象。最常用的图是二叉树和N叉树。

这篇关于【计算机系统结构】第八章:数据流计算机和规约机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/869001

相关文章

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

Java集合中的链表与结构详解

《Java集合中的链表与结构详解》链表是一种物理存储结构上非连续的存储结构,数据元素的逻辑顺序的通过链表中的引用链接次序实现,文章对比ArrayList与LinkedList的结构差异,详细讲解了链表... 目录一、链表概念与结构二、当向单链表的实现2.1 准备工作2.2 初始化链表2.3 打印数据、链表长

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

Python+PyQt5实现文件夹结构映射工具

《Python+PyQt5实现文件夹结构映射工具》在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下... 目录概述功能亮点展示效果软件使用步骤代码解析1. 主窗口设计(FolderCopyApp)2. 拖拽路径