软考
APP下载

软件评测师考试考点:指令流、数据流和计算机的分类

我们先学习两个定义。

(1)指令流:机器执行的指令序列。

(2)数据流:由指令流调用的数据序列,包括输入数据和中间结果。

1.根据多倍性的分类

按照计算机同时处于一个执行阶段的指令或数据的最大可能个数,人们把计算机分成4种,如表1-4所示。

表1-4 指令流的分类

(1)SISD(单指令流单数据流):这是最简单的方式,计算机每次处理一条指令,并只对一个操作部件分配数据。一般认为流水线技术的计算机仍然属于SISD。

(2)SIMD(单指令流多数据流):具备SIMD的常常是并行处理机,这种处理机具备多个处理单元,每次都执行同样的指令,对不同的数据单元进行处理。这种计算机非常适合处理矩阵计算等。

(3)MISD(多指令流单数据流):这种处理方式比较难以想象,有多个处理单元,同时执行不同的指令,针对的是单一数据。但有资料认为,流水线处理机中每个数据由不同操作部件对之进行处理。

(4)MIMD(多指令流多数据流):这是一种全面的并行处理机,典型的机型是多处理机。这种计算机的设计和控制都很复杂。

2.按照程序流程机制的分类

具体的介绍如下。

1)控制流计算机

这是通常见到的计算机,使用程序计数器来确定下一条指令的地址。指令程序流由程序员直接控制,其主存是共享的,存储区可以被多指令修改,容易产生数据相关性,对并行性不利。

2)数据流计算机

在冯•诺依曼体系中,计算机是指令流驱动的,而数据流则是处于被动地位的,这看起来合理,但在某些时候也不尽然。与指令流相对的是数据流驱动,即一旦数据准备好,则立即开始执行相关的指令。非冯•诺依曼体系仍然在探索中,但对冯•诺依曼体系的改良也有相当好的成果,即流水线技术和并行计算机。

在数据流计算机中,数据不在共享的存储器中,而是在指令间传送,成为令牌。当需要使用该数据的指令收到令牌,开始执行之后,该令牌即消失,执行的指令将执行的结果数据当做新的令牌发送。这种方式不再需要程序计数器、共享的存储器,但是需要检测数据可用性的专门部件,建立、识别、处理数据令牌标记,需要时间和空间开销。

在其他方面,数据流计算机还有一些困难需要克服:在数据流计算机中由于没有程序计数器,使得程序的调试和诊断变得困难;没有共享的存储器,也就无法控制其分配,无法支持数组、递归等操作。

3)归约机

归约机(Reductions Machine)又称为需求驱动,是由对一个操作结果的需求而启动的。归约机采用一种“惰性计算”的方式,操作只有在另一条指令需要这个操作的结果时才执行。比如在计算5+(6×2–10)时,归约机并非先去计算6×2.而是先计算整个算式,碰到(6×2–10)再启动一个过程去计算它,最后需要计算6×2.计算后一层层退回,得到整个算术式的值。由于需求驱动可减少那些不必要的求值操作,可以提高系统效率。

归约机是一种面向函数式的语言,或以函数式语言为机器语言的机器,要有函数定义存储器和表达式存储;操作和数据合并存储。它需要大容量物理存储器并采用大虚拟存储容量的虚拟存储器,来满足对动态存储分配和大容量的存储空间的需求。

备考资料 免费领取:软件评测师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件评测师题库