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

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

相关文章

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据