可供选择的体系结构

RISC设备

Reduced Instruction Set Computer,精简指令集计算机:提供可支持所有基本操作的最小指令集

计算机性能计算公式:

image-20220604205717196.png

缩短时钟周期:RISC、CISC性能都提升

减少程序中指令数:CISC提升

最小化每条指令的时钟周期数:RISC提升

RISCCISC
多个寄存器组一个寄存器组
每条指令最多3个寄存器操作数每条指令可以1或2个寄存器操作数
寄存器窗口传参内存栈传参
硬连线电路实现微代码控制
单周期指令多周期指令
流水线程度高流水线程度低
简单指令且指令数少复杂指令
定长指令变长指令
编译器设计复杂微代码设计复杂
仅load和store指令可以访存许多指令都可以访存
较少的寻址方式许多寻址方式

Flynn's Taxonomy费林分类法

根据处理器数量和数据流数量进行分类

  • SISD:单指令流单数据流,经典单处理器系统
  • SIMD:单指令流多数据流,包含阵列处理器、向量处理器和脉动阵列
  • MIMD:多指令流多数据流,并行架构
  • MISD:多指令流单数据流

分类法的不足

  • 很少有符合MISD架构特性的应用
  • Flynn假设所有的并行性都是同构的,但多处理器可能是同构也可能是异构的
  • MIMD分类没有考虑多个处理器间如何互连以及如何使用主存

Symmetric multiprocessor(SMP,对称多处理器)和Massively parallel processor(MPP,大规模并行处理器)均属于MIMD

SMP共享存储器,MPP不共享

SMP -> fewer processors + shared memory + communication via memory

MPP -> many processors + distributed memory + communication via network

分布式计算是另一种MIMD体系结构

  • 工作站网络(NOW,network of workstations):一组并行工作的分布式工作站的集合
  • 工作站集群(COW,collection of workstations):与NOW相比需要一个公司或组织负责管理
  • 专用集群并行计算机(DCPC,dedicated cluster parallel computer):一组专门用于某个特定并行计算任务的工作站集合

费林分类法新加了个SPMD(单程序多数据) 体系结构:多个处理器,每个处理器运行相同的程序,有自己的数据集和程序存储器;虽然每个处理器加载相同的程序,但运行的指令可能不同

最终体系结构的分类如下

image-20220604212749992.png

并行和多处理器体系结构

超流水线(superpipelining):流水线中某些阶段的执行时间小于时钟周期的一半时引入,一个频率为外部时钟频率的两倍的内部时钟加入到处理器中,这样就可以在一个外部时钟周期内完成两个任务

矢量计算机(vector computers):一次对整个矢量或者矩阵操作(超级计算机),高度流水线

可以根据指令如何获取操作数分为寄存器-寄存器向量处理器(源操作数和目的操作数都保存在寄存器中)和存储器-存储器向量处理器(允许将操作数从存储器中取出直接送到算术单元)

共享存储器的MIMD机器根据如何同步访存操作可分为:

  • 均匀存储器访问(UMA,uniform memory access)
  • 非均匀存储器访问(NUMA,nonuniform memory access)

NUMA机器容易出现缓存一致性问题(cache coherence problem):主存数据变了而缓存影响未变,解决方法:增加监听高速缓存控制器(snoopy cache controllers)——CC-NUMA,高速缓存一致的NUMA

更改同时更新:写直通高速缓存更新协议(write-through cache update protocol)

  • 写直通更新策略:广播新值并更新
  • 写直通无效(invalidate)策略:广播删除旧值

数据变化时仅改变缓存中的值,主存中的副本知道其所对应的缓存块被替换并写回主存时才改变:写回协议(write-back protocol)

分布式计算:另一种形式的多处理器,主要指松耦合的多计算机系统(very loosely-coupled processing units);包含了云计算(cloud computing)

其他并行处理方法

数据流计算(dataflow computing)

Von Neumannn计算机采用顺序控制流,程序计数器决定下一条要执行的指令

但在数据流计算中,程序的控制流直接与数据绑定,指令的实际顺序与他们最终的执行顺序无关,数据持续流出,可以在同一时刻被多条指令所用

神经网络(neural network)

可以处理不精确、具有随机性的信息、允许自适应

最简单的神经网络处理元件是感知器(perceptron),是可训练的神经元:阈值(threshold)和输入权值(input weight)可以调整

脉动阵列(systolic array)

SIMD计算机的变种,可以维持很高的吞吐量,一般用来计算重复性任务

量子计算(quantum computing)

计算机都是基于晶体管(transistor-based)技术

量子计算使用量子位(quantum bits)来同时表示多种状态

最后修改:2022 年 06 月 17 日
如果觉得我的文章对你有用,请随意赞赏