问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

多处理器系统的基本概念

创作时间:
作者:
@小白创作中心

多处理器系统的基本概念

引用
CSDN
1.
https://blog.csdn.net/swu_Alice/article/details/139788016

多处理器系统是现代计算机体系结构的重要组成部分,它通过多个处理器协同工作来提高计算性能。本文将介绍多处理器系统的基本概念,包括计算机体系结构的四种类型、硬件多线程技术、多核处理器以及共享内存多处理器的两种类型。

计算机体系结构

所有的处理器或者说所有的计算机体系都是这四种类型之一:

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

  • 在任意时刻,计算机执行单一指令操作单一数据
  • 传统的桌面计算机在处理文本编辑或简单图形操作时通常采用SISD架构

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

  • 一条指令同时操作多个数据,非常适合于执行重复的相同操作,如图像处理中的像素操作
  • 现代图形处理单元(GPU)在渲染3D图形时,会用SIMD处理成千上万个顶点和像素的相同操作

向量处理器是一种实现了SIMD指令集的高性能计算机处理器,它可以同时处理一组数据(向量)上的同一操作,这样的处理器专为执行复杂数学运算而设计的。

想象一个厨师(向量处理器)在一个非常大的厨房里(计算环境)里,有一个巨大的炒锅(向量寄存器),可以同时烹饪大量的食材(数据),这位厨师可以一次性把锅里的所有食材进行相同的烹饪步骤,比如同时翻炒所有的食材,而不是一个接一个翻炒。

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

  • 多条指令流同时操作同一数据
  • 难以实现,实际上不存在

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

  • 多个处理器同时执行不同的指令序列,处理不同的数据
  • 大型服务器在处理多用户的不同请求时会使用MIMD,例如Web服务器或数据库服务器

硬件多线程

线程是操作系统里引入的一个概念,在主存中去运行的某一个程序,我们这个单元会把它叫做进程,其实进程内部又可以分成一个一个的小线程,一个小线程里面是可以执行很多很多条指令的

2.1 细粒度多线程

  • 细粒度多线程允许处理器在每个时钟周期中轮换不同的线程,去执行不同的指令
  • 这种切换通常发生在一个线程执行指令时遇到长时间等待的情况下

2.2 粗粒度多线程

在当前执行的线程被阻塞或完成之后才切换到另一个线程,切换的原因通常是等待I/O操作、长时间的计算或其他资源的延迟

2.3 同时多线程

允许多个线程在同一时间内在多核处理器并行执行,通过在处理器内部共享和复用资源(如算术逻辑单元和寄存器文件)实现

多核处理器

  • 将多个处理单元集成到单个CPU中,每个处理单元称为一个

共享内存多处理器SMP(对称多处理器)

  • 两个或多个相同的处理器(CPU)共享主内存、I/O设备等资源,并具有相同的访问内存的能力
  • 处理器之间通过⾼速总线或其他数据连接方式相连,可以有效地协作处理任务
  • 在SMP系统中,所有处理器共享⼀个操作系统,可以运行在任何处理器上,并共同访问所有资源

4.1 统一存储访问多处理器UMA(对主存是共享的概念)

每个处理器对所有存储单元的访问时间大致相同

对于统一存储访问来说,它对待主存实际上是一个共享的概念,也就是每一个处理器,它可以访问这个主存里面的每一个存储单元,并且访问的时间都是一样的

4.2 非统一存储访问多处理器NUMA(主存划分给不同处理器)

主存被分割给不同的处理器,处理器访问自身附近的内存(本地内存),比访问与远程处理器的内存(远程内存)更快、更便宜

UMA的所有处理器共享同⼀内存空间因此每个处理器中的cache都是共享内存的副本,尤其需要注意个处理器中的cache一致性问题

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号