计算机体系结构是指根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论的总称。并行性是指计算机系统具有可以同时进行多于两个运算或操作。并行体系结构是指许多指令能同时进行的体系结构,一般从时间和空间两方面考虑。
结构介绍
并行体系结构出现主要因为随着各个领域对高性能计算的要求越来越高,尤其是
多媒体领域大数据量高实时性的需求,使得传统的单处理器
体系结构已经很难适应大规模并行计算的需求,于是多处理器并行体系结构逐渐成为研究的热点。
多种级别的并行度现在已经成为计算机设计的推动力量,而能耗和成本则是主要约束条件。应用程序中主要有以下两种并行。
(1) 数据级并行(DLP),它的出现是因为可以同时操作许多数据项。
(2) 任务级并行(TLP),它的出现是因为创建了一些能够单独处理但大量采用并行方式执行的工作任务。
计算机硬件又以如下4种主要方式来开发这两种类型的应用并行。
(1) 指令级并行在编译器的帮助下,利用流水线之类的思想适度开发数据级并行,利用推理执行之类的思想以中等水平开发数据级并行。
(2) 向量体系结构和图形处理器(GPU)将单条指令并行应用于一个数据集,以开发数据级并行。
(3) 线程级并行在一种紧耦合硬件模型中开发数据级并行或任务级并行,这种模型允许在并行线程之间进行交互。
(4) 请求级并行在程序员或操作系统指定的大量去耦合任务之间开发并行。
并行体系结构有以下五种访存模型:均匀访存模型(UMA)、非均匀访存模型(NUMA)、全高速缓存访存模型(COMA)、一致性高速缓存非均匀存储访问模型(CC-NUMA)和非远程存储访问模型(NORMA)。
并行性
同时性:两个或两个以上的事件在同一时刻发生。
并发性:两个或两个以上的事件在同一时间间隔发生。
分类
⑴从处理数据的角度看,并行性等级从低到高可分为四类。
字串位串
同时只对一个字的一位进行处理。这是最基本的串行处理方式,不存在并行性。
字串位并
同时对一个字的全部位进行处理,不同字之间是串行的。这里已开始出现并行性。
字并位串
同时对许多字的同一位进行处理。这种方式有较高的并行性。
全并行
同时对许多字的全部位进行处理。这是最高一级的并行。
⑵从执行程序的角度看,并行性等级从低到高也可分为四类。
指令内部并行
一条指令执行时各微操作之间的并行。
指令级并行
并行执行两条或多条指令。
任务级或过程级并行
并行执行两个以上过程或任务(程序段)。
作业或程序级并行
并行执行两个以上作业或程序。
分类法
Flynn分类法
1966年,Michael J.Flynn提出根据指令流、数据流的并行度对计算机系统进行分类,定义如下。
·指令流:机器执行的指令序列
·数据流:由指令流调用的数据序列,包括输入数据和中间结果
·并行度:指令或数据并行执行的最大可能数目。
Flynn根据不同的指令流-数据流组织方式把计算机系统分为4类。
1·单指令流单数据流(Single Instruction Stream Single DataStream,SISD)
SISD其实就是传统的顺序执行的单处理器计算机,其指令部件每次只对一条指令进行译码,并只对一个操作部件分配数据。
2·单指令流多数据流(Single Instruction Stream Multiple Data Stream,SIMD)
SIMD以并行处理机为代表,并行处理机包括多个重复的处理单元PU1~PUn,由单一指令部件控制,按照同一指令流的要求为它们分配各自所需的不同的数据。
3·多指令流单数据流(Multiple Instruction Stream Single Data Stream,MISD)
MISD的结构,它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。一个处理单元的输出又作为另一个处理单元的输入。
4·多指令流多数据流(Multiple Instruction Stream Multiple Data Stream,MIMD)
MIMD的结构是指能实现作业、任务、指令等各级全面并行的多机系统,多处理机就属于MIMD。
冯式分类法
1972年冯泽云提出用最大并行度来对计算机体系结构进行分类。所谓最大并行度Pm是指计算机系统在单位时间内能够处理的最大的二进制位数。设每一个时钟周期△ti内能处理的二进制位数为Pi,则T个时钟周期内平均并行度为Pa=(∑Pi)/T(其中i为1,2,…,T)。平均并行度取决于系统的运行程度,与应用程序无关,所以,系统在周期T内的平均利用率为μ=Pa/Pm=(∑Pi)/(T*Pm)。用平面直角坐标系中的一点表示一个计算机系统,横坐标表示字宽(N位),即在一个字中同时处理的二进制位数;纵坐标表示位片宽度(M位),即在一个位片中能同时处理的字数,则最大并行度Pm=N*M。
由此得出四种不同的计算机结构:
①字串行、位串行(简称WSBS)。其中N=1,M=1。
②字并行、位串行(简称WPBS)。其中N=1,M>1。
③字串行、位并行(简称WSBP)。其中N>1,M=1。
④字并行、位并行(简称WPBP)。其中N>1,M>1。
MIMD分类
并行向量
向量处理器,又称数组处理器,是的一种实现了直接操作一维
数组(向量)指令集的
中央处理器(CPU)。这与一次只能处理一个数据的
标量处理器正相反。向量处理器可以在特定工作环境中极大地提升性能,尤其是在数值模拟或者相似领域。向量处理器最早出现于20世纪70年代早期,并在70年代到90年代期间成为
超级计算机设计的主导方向,尤其是多个克雷(Cray)平台。由于常规处理器设计性价比的快速下降,基于向量处理器的超级计算机在90年代末逐渐让出了主导地位。
现在,绝大多数商业化的CPU实现都能够提供某种形式的向量处理的指令,用来处理多个(向量化的)数据集,也就是所谓的SIMD(单一指令、多重数据)。常见的例子有
VIS,
MMX,
SSE,
AltiVec和
AVX。向量处理技术也能在游戏主机硬件和图形加速硬件上看到。在2000年,
IBM,
东芝和
索尼合作开发了Cell处理器,集成了一个标量处理器和八个向量处理器,应用在索尼的
PlayStation 3游戏机和其他一些产品中。
对称多重
对称多处理(英语:Symmetric multiprocessing,缩写为 SMP),也译为均衡多处理、对称性多重处理,是一种
多处理器的电脑硬件架构,在对称多处理架构下,每个处理器的地位都是平等的,对资源的使用权限相同。现代多数的
多处理器系统,都采用对称多处理架构,也被称为对称多处理系统(Symmetric multiprocessing system)。在这个系统中,拥有超过一个以上的处理器,这些处理器都连接到同一个共享的主存上,并由单一操作系统来控制。在多核心处理器的例子中,对称多处理架构,将每一个核心都当成是独立的处理器。
在对称多处理系统上,在操作系统的支持下,无论进程是处于用户空间,或是核心空间,都可以分配到任何一个处理器上运行。因此,进程可以在不同的处理器间移动,达到负载平衡,使系统的效率提升。
大规模并行
大规模并行处理机(Massively Parallel Processor)是由多个由
微处理器,
局部存储器及
网络接口电路构成的节点组成的并行计算体系;节点间以定制的高速网络互联。大规模并行处理机是一种异步的
多指令流多数据流,因为它的
程序有多个
进程,它们分布在各个微处理器上,每个进程有自己独立的地址空间,进程之间以消息传递进行相互通信。