在数据流结构中没有指令计数器的存在,指令的执行是以“数据驱动”的方式进行的,当程序中的任意一条指令所需的操作数已经全部齐全且有可用的计算资源时,指令就可以启动执行(称为点火)。数据流结构中,一条指令计算的结果不会被送到存储器中保存,而是直接流向需要这个结果的后续的指令中,作为新的操作数供下一条指令使用。
数据流结构中,所有指令的执行顺序是随机、不确定的,仅由指令间的数据依赖关系决定。所以,数据流结构中的指令是异步并发执行的。
数据流结构又可分为静态数据流结构和动态数据流结构。静态数据流结构规定,在任何一个时钟节拍内,数据流程序图的任何一条分支线上只允许传送一个数据令牌,使得这种结构设计实现起来比较简单。动态数据流结构允许数据流程序图的一条有向分支线上同时有多个数据令牌传送,有利于最大限度地开发程序中的并行性。
虽然商业领域没有通用计算机硬件采用数据流结构的成功案例,但是在很多专用硬件中(如数字信号处理、网络路由选择、图像处理、遥感勘测和数据仓库),数据流结构得到了有效的运用。同时,数据流结构也和很多当今的软件架构,包括数据库引擎和并行计算架构等,有着密不可分的联系。
联系客服