计算机组成原理——中央处理器-多处理器(课程笔记)

说明

  1. 博客作为笔记备份,不定时更新
  2. 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
  3. 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理

文章目录

  • 多处理器
    • 1. SISD、SIMD、MIMD的基本概念
      • 1.1 单指令流单数据流(SISD)结构
      • 1.2 单指令流多数据流(SIMD)结构
      • 1.3 多指令流单数据流(MISD)结构
      • 1.4 多指令流多数据流(MIMD)结构
      • 1.5 向量处理器
    • 2. 硬件多线程的基本概念
      • 2.1 细粒度多线程
      • 2.2 粗粒度多线程
      • 2.3 同时多线程
    • 3. 多核处理器的基本概念
    • 4. 共享内存处理器的基本概念

多处理器

参考资料书 P 266 P_{266} P266和《计算机系统结构》Chapter 8 P 280 P_{280} P280

1. SISD、SIMD、MIMD的基本概念

1.1 单指令流单数据流(SISD)结构

  • SISD 是传统的串行计算机结构,这种计算机通常仅包含一个处理器和一个存储器
  • 处理器在一段时间内仅执行一条指令,按指令流规定的顺序串行执行指令流中的若干条指令
  • 为了提高速度,有些SISD计算机采用流水线的方式,因此SISD处理器有时会设置多个功能部件,并采用多模块交叉方式组织存储器。前面介绍的内容多属于SISD结构

1.2 单指令流多数据流(SIMD)结构

  • SIMD是指一个指令流同时对多个数据流进行处理,一般称为数据级并行技术
  • 这种结构的计算机通常由一个指令控制部件、多个处理单元组成
  • 每个处理单元虽然执行的都是同一条指令,但每个单元都有自己的地址寄存器,这样每个单元就都有不同的数据地址,因此不同处理单元执行的同一条指令所处理的数据是不同的
  • 一个顺序应用程序被编译后,可能按SIMD组织并运行于串行硬件上,也可能按SIMD组织并运行于并行硬件上
  • SIMD在使用for循环处理数组时最有效,比如,一条分别对16对数据进行运算的SIMD指令若在16个ALU中同时运算,则只需要一次运行时间就能完成运算
  • SIMD在使用case或switch语句时效率最低,此时每个执行单元必须根据不同的数据执行不同的操作

1.3 多指令流单数据流(MISD)结构

  • MISD是指同时执行多条指令,处理同一个数据,实际上不存在这样的计算机

1.4 多指令流多数据流(MIMD)结构

  • MIMD是指同时执行多条指令分别处理不同的数据,MIMD分为多计算机系统和多处理器系统
  • 多计算机系统中的每个计算机节点都具有各自的私有存储器,并具有独立的主存地址空间,不能通过存取指令来访问不同节点的私有存储器,而要通过消息传递进行数据传送,也称消息传递MIMD
  • 多处理器系统是共享存储多处理器(SMP)系统的简称,它具有共享的单一地址空间,通过存取指令来访问系统中的多有存储器。也称共享存储MIMD
  • 补充:SIMD和MIMD是两种并行计算模式,其中SIMD是一种数据级并行模式,而MIMD是一种并行程度更高的线程级并行或线程级以上并行计算模式

1.5 向量处理器

  • 向量处理器是SIMD的变体,是一种实现了直接操作一维数据(向量)指令集的CPU,而串行处理器只能处理单一数据集
  • 其基本理念是将从存储器中收集的一组数据按顺序放到一组向量寄存器中,然后以流水化的方式对它们依次操作,最后将结果写回寄存器
  • 向量处理器在特定工作环境中极大地提高了性能,尤其是在数值模拟或者相似的领域中

2. 硬件多线程的基本概念

  • 在传统CPU中,线程的切换包含一系列开销,为减少线程切换过程中的开销,诞生了硬件多线程
  • 在支持硬件多线程的CPU中,必须为每个线程提供单独的通用寄存器组、单独的程序计数器等,线程的切换只需激活选中的寄存器,从而省略了与存储器数据交换的环节,大大减少了线程切换的开销

2.1 细粒度多线程

  • 多个线程之间轮流交叉执行指令,多个线程之间的指令是不相关的,可以乱序并行执行
  • 在这种方式下,处理器能在每个时钟周期切换线程。例如在时钟周期i,将线程A中的多条指令发射执行;在时钟周期i+1,将线程B中多条指令发射执行

2.2 粗粒度多线程

  • 仅在一个线程出现了较大开销的阻塞时,才切换线程,如Cache缺失,
  • 在这种方式下,当发生流水线阻塞时,必须清除被阻塞的流水线,新线程的指令开始执行前需要重载流水线,因此线程切换的开销比细粒度多线程更大

2.3 同时多线程

  • 同时多线程(SMT)是上述两种多线程技术的变体
  • 它在实现指令级并行的同时,实现线程级并行,即在同一个时钟周期中,发射多个不同线程中的多条指令执行
  • Intel处理器中的超线程(Hyper-threading)就是同时多线程SMT,即在一个单处理器或单个核中设置了两套线程状态部件,共享高速缓存和功能部件

3. 多核处理器的基本概念

  • 多核处理器是指将多个处理单元集成到单个CPU中,每个处理单元称为一个核core
  • 每个核可以有自己的Cache,也可以共享同一个Cache
  • 所有核一般都是对称的,并且共享主存储器,因此多核属于共享存储的对称多处理器
  • 在多核计算机中,如要充分发挥硬件的性能,必须采用多线程(或多进程)执行,使得每个核在同一时刻都有线程在执行
  • 与单核上的多线程不同,多核上的多个线程是在物理上并行执行的,是真正意义上的并行执行,在同一时刻有多个线程在并行执行。而单核上的多线程是一种多线程交错执行,而在同一时刻实际上只有一个线程在执行

4. 共享内存处理器的基本概念

  • 具有共享的单一物理地址空间的多处理器被称为共享内存多处理器(SMP)
  • 处理器通过存储器中的共享变量互相通信,所有处理器都能通过存取指令访问任何存储器的位置。注意,即使这些系统共享同一个物理地址空间,它们仍然可在自己的虚拟地址空间中单独的运行程序
  • 单一地址空间的多处理器由两种类型
    • 第一类:每个处理器对所有存储单元的访问时间是大致相同的,即访问时间与哪个处理器提出访存请求及访问哪个字无关,这类机器统称为统一存储访问(UMA)
      • UMA多处理器:根据处理器与共享存储器之间的连接方式,分为基于总线、基于交叉开关网络和基于多级交换网络连接等几种处理器
    • 第二类:某些访存请求要比其他的快,具体取决于哪个处理器提出了访存请求以及访问哪个字,这是由于主存被分割并分配给了同一个机器上的不同处理器或内存控制器,这类机器被称为**非统一存储访问(NUMA)**多处理器
      • NUMA多处理器:处理器不带高速缓存时,被称为NC-NUMA,处理器中带有一致性高速缓存时,被称为CC-NUMA

你可能感兴趣的:(课程笔记,计算机组成原理,多处理器)