Flynn分类法是指美国学者Michael J. Flynn于1966年提出的一种计算机指令的分类方法,它主要依据指令流中并行度的不同,将指令分为四种类型。在计算机体系结构的领域中,Flynn分类法经常被用来描述计算机系统中的并行性。
一、Flynn分类法的案例
在日常生活中,我们常常使用计算器来进行计算。在计算器上,我们可以将进行的计算分为两种类型:单步计算和连续计算。对于单步计算,我们需要手动的输入每一个数字,进行运算后再输入下一个数字;而对于连续计算,则不需要手动输入每一个数字,只需要按下“=”按钮,就可以一次性的计算出多个数字的结果。那么,这两种计算方式在Flynn分类法中属于哪种类型呢?
单步计算与连续计算均属于SISD(单指令流单数据流)类型。这是因为,在这两种计算中仅有一个指令流和一个数据流,因此无法进行并行计算。
二、Flynn分类法与冯氏分类法
Flynn分类法与冯氏分类法都是用来分类计算机指令的方法,那么它们有何不同呢?
冯氏分类法是由计算机科学家John von Neumann于1945年提出的,它主要将计算机指令分为三种类型:数据传输、算术逻辑和控制。冯氏分类法主要依据指令类型的不同进行分类,而并未考虑指令流中的并行性。
相比之下,Flynn分类法则侧重于指令流中的并行性,它将指令流中的并行度与数据流的并行度相结合,将指令分为四种类型:
SISD:单指令流单数据流
SIMD:单指令流多数据流
MISD:多指令流单数据流
MIMD:多指令流多数据流
在飞行控制、天气预报、医学量化等诸多领域中,MIMD并行架构已成为研究的焦点。
三、Flynn分类法中被淘汰的是
在Flynn分类法的发展过程中,曾经提出过一种名为SIMD-1的分类,它是SIMD的变体形式,主要是通过微程序方式实现指令级的并行,然而这种分类法并没有被广泛使用,在Flynn分类法中已经被淘汰。
四、Flynn分类法与冯氏分类法的区别
为了更加清晰的了解Flynn分类法与冯氏分类法的区别,下面将对两者进行的详细对比分析:
1.分类标准不同
冯氏分类法主要按照指令类型的不同进行分类,而Flynn分类法主要按照指令流中的并行性进行分类。
2.适用范围不同
冯氏分类法较为适用于序列计算的计算机体系结构,而Flynn分类法则较为适用于并行计算的计算机体系结构。
3.表述方式不同
冯氏分类法将指令分为数据传输、算术逻辑和控制三类,而Flynn分类法将指令分为四种类型:SISD、SIMD、MISD和MIMD。
五、示例代码
#include <stdio.h> void main() { int a = 2, b = 3, c = 1; c = a + b; printf("c = %d\n", c); }
以上示例代码是一个简单的计算机指令,其中包含了两个数字的加法运算。根据Flynn分类法的分类标准,这个指令属于SISD类型,因为这个指令只包含一个指令流和一个数据流,无法进行并行计算。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198254.html