欢迎来到天天文库
浏览记录
ID:43804248
大小:591.50 KB
页数:38页
时间:2019-10-14
《第11章 并行计算机体系结构简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第11章并行计算机体系结构简介并行技术是针对大型机和巨型机的:第一种:多处理器(一个处理器指一个单片CPU芯片)第二种:多机组成目前通常把后者并行技术称为并行计算机体系结构。11.1并行计算机结构分类并行计算机系统可以分成两大类:SIMD系统和MIMD系统。SIMD(SingleInstructionMultipleData)计算机可以同时在多个数据集上并行执行同一条指令。这种类型计算机包括阵列处理系统和向量处理机。MIMD(MultipleInstructionMultipleData)计算机可以同时执行多条指令并同时处理多数据集,它是
2、目前并行技术的主流。MIMD计算机又分成多处理器系统和多计算机系统两大类。如图11-1所示。图11-1并行计算机分类11.2SIMD并行计算机SIMD计算机:用于解决使用向量和阵列这样比较规整的数据结构的复杂的科学计算和工程计算问题。这种计算机特点:只有一个控制单元,每次只能执行一条指令,但是每一条指令可同时对多个数据进行操作。SIMD分为:阵列处理机和向量处理机。1.阵列处理机(arrayprocessor)特点:一个单一的控制单元提供信号驱动多个处理单元同时运行,如图11-2所示。组成:PU由1个处理单元PE同它的局部存储器组成。控制
3、部件方式:向全体PE“播送”控制信号,所有PE在同一个总的时钟信号下同步工作。PE组成:可以简单到每个PE由1位ALU组成,也可大到32位ALU,或者带浮点计算能力的ALU。图11-2阵列处理机组成图2.向量处理机SIMD计算机中另一类是向量处理机(vectorprocessor)。70年代前后,为了处理向量计算研发两种类型的巨型计算机系统:流水线处理机和并行处理机。两者比较优缺点:并行处理机的结构复杂,成本高,因而流水线处理机发展很快。它是处理向量计算的主要手段,因此已把它称为向量处理机。向量运算举例假定有一个向量运算:D=A×(B+C
4、)式中A,B,C,D都是长度为N的向量。若按常规处理,则流水线不能连续流动。D1=A1×(B1+C1)D2=A2×(B2+C2)DN=AN×(BN+CN)计算这个向量流水线要反复进行加法和乘法的切换,即流水线功能切换。如改变处理顺序,先对所有元素执行加法运算(N个加法),然后对所有元素执行乘法运算(N个乘法),其顺序如下:Bi+Ci→Di(i从1到N)Di×Ai→Di(i从1到N)这样就能保证流水线畅通。Cray-1的体系结构与后来的RISC体系结构类似,它成为了很好的研究范例,许多现代的向量超级计算机都受到它的影响。图11-3Cray-
5、1体系结构Cray-1机采用多功能部件结构,一共有12个功能部件,分为4组:3个向量整数单元部件(加、逻辑、移位),3个浮点标量/向量浮点单元部件(加、乘、求倒数),4个标量整数单元部件(加、逻辑、移位、“1”个数计数),2个地址功能部件(加、乘)。这些功能部件本身都采取流水线结构,只要不发生寄存器冲突,这些功能部件都能并行工作。11.3MIMD并行计算机MIMD系统可以分为多处理器系统和多计算机系统两大类。多处理器系统特点:所有CPU共享同一个物理内存,每个CPU不带自己的内存或少量带有,由统一操作系统管理,整个物理内存空间由许多内存模
6、块组成。多计算机系统特点:每个CPU都有自己的内存,即自己独立的物理地址空间;执行自己的操作系统,再加上对外通信的通信处理器。图11-4a和图11-4b分别说明了多处理器系统与多计算机系统的区别。多处理器系统特点:软件设计简单,易实现,硬件设计比较复杂。多计算机系统特点:正好相反。图11-4a多处理器系统图11-4b多计算机系统MIMD并行计算机设计中的互连网络问题MIMD并行计算机设计中面临的问题之一:互连网络。多计算机系统中用互连网络把多个计算机连接是显而易见的,多处理器系统同样存在这个问题。11.3.1多处理器系统根据共享内存的实现
7、方式可以把多处理器系统分成三类:分别是一致性内存访问(UniformMemoryAccess,UMA)非一致性内存访问(NonUniformMemoryAccess,NUMA)基于cache的内存访问(CacheOnlyMemoryAccess,COMA)1.UMA多处理器系统UMA计算机的特点是CPU访问所有的内存模块的时间都相同,即读取每个内存字的时间是相等的。访问速度按最慢内存模块为准。程序员不会感觉有速度问题存在,这就是一致的含义。这种一致性可以保证系统的性能可以预测,也有利于程序员编写高效率代码。如图11-5所示图11-5基于总
8、线的多处理器系统每个CPU都带有Cache,当同时操作内存中某一块数据时,会出现Cache一致性问题。例如,CPU1与CPU2同时读取内存中一块数据到自己的Cache中,CPU1先对Cache
此文档下载收益归作者所有