数据流体系结构

编辑
本词条由“匿名用户” 建档。

数据流体系结构是一种计算机体系结构,直接与传统的冯·诺依曼体系结构或控制流体系结构进行了对比。数据流体系结构没有概念上的程序计数器:指令的可执行性和执行仅基于指令输入参数的可用性来确定,因此,指令执行的顺序是不可预测的,即行为是不确定的。 (adsbygoogle=window.adsbygoogle||[]).push({}); 尽管没有商业上成功的通用计算机硬件使用数据流体系结构,但已在专用硬...

什么是数据流体系结构

编辑

数据体系结构是一种计算机体系结构,直接与传统的冯·诺依曼体系结构或控制流体系结构进行了对比。数据流体系结构没有概念上的程序计数器:指令的可执行性和执行仅基于指令输入参数的可用性来确定,因此,指令执行的顺序是不可预测的,即行为是不确定的。

(adsbygoogle = window.adsbygoogle || []).push({});

尽管没有商业上成功的通用计算机硬件使用数据流体系结构,但已在专用硬件中成功实现了该硬件,例如数字信号处理网络路由、图形处理、遥测、以及最近在数据仓库中。这也是许多软件架构包括今天非常相关的数据库引擎设计和并行计算框架。

同步数据流体系结构可进行调整以匹配实时数据路径应用程序(例如线速数据包转发)所提供的工作量。本质上是确定性的数据流体系结构使程序员能够管理复杂的任务,例如处理器负载平衡,同步和对公共资源的访问。

数据流体系结构

数据流架构主题

编辑

静态和动态数据流机器

使用常规内存地址作为数据依赖项标签的设计称为静态数据流计算机。这些机器不允许同时执行同一例程的多个实例,因为简单标记无法区分它们。

使用内容可寻址内存(CAM)的设计称为动态数据流计算机。他们在内存中使用标签来促进并行性。

编译器

通常,在控制流体系结构中,编译器会分析程序源代码中指令之间的数据依存关系,以便更好地组织二进制输出文件中的指令序列。指令是按顺序组织的,但是相关性信息本身未记录在二进制文件中。为数据流计算机编译的二进制文件包含此依赖项信息。

数据流编译器通过为每个依赖项创建xxx的标签而不是使用变量名来记录这些依赖项。通过为每个依赖项赋予xxx的标记,它允许二进制文件中的非依赖性代码段无序且并行地执行。编译器检测循环,break语句和各种编程控制语法以获取数据流。

程序

程序被加载到动态数据流计算机的CAM中。当指令的所有加标签的操作数可用时(即,从先前指令的输出和/或用户输入),该指令被标记为准备好由执行单元执行。

这称为激活或触发指令。一旦执行单元完成了一条指令,其输出数据(及其标签)就会发送到CAM。然后,将任何依赖于此特定基准面(由其标记值标识)的指令标记为可以执行。这样,后续指令将以正确的顺序执行,从而避免出现竞争状况。该顺序可能不同于人类程序员所设想的顺序顺序,即编程顺序。

说明

指令及其所需的数据操作数将作为数据包(也称为指令令牌)传输到执行单元。类似地,输出数据作为数据令牌被发送回CAM 。指令和结果的分组化允许大规模并行执行就绪指令。

数据流网络将指令令牌传递给执行单元,并将数据令牌返回给CAM。与常规的von Neumann体系结构相比,数据令牌不是xxx存储在内存中,而是暂时性消息,仅在传输到指令存储时才存在。

内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/108086/

(3)
词条目录
  1. 什么是数据流体系结构
  2. 数据流架构主题
  3. 静态和动态数据流机器
  4. 编译器
  5. 程序
  6. 说明

轻触这里

关闭目录

目录