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

计算机组成原理与系统结构——多核计算机

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

计算机组成原理与系统结构——多核计算机

引用
CSDN
1.
https://m.blog.csdn.net/2301_76289889/article/details/144476660

多核计算机是现代计算机体系结构的重要发展方向,通过在单个芯片上集成多个处理器内核,可以显著提升计算性能和能效。本文将详细介绍多核处理器的定义、性能优化策略、能耗管理以及多核软件应用等方面的内容。

多核处理器也称为芯片多处理器,将两个及以上处理器单元组合在一个芯片上。通常,每个内核都由独立处理器的全部组件构成,例如寄存器、ALU、流水线硬件、控制单元、L1指令和数据高速缓存。除了多内核之外,现代多核芯片还包括L2高速缓存和L3高速缓存。高度集成的多核处理器也包含了内存和外部控制器。

性能问题

增加并行性和复杂性

处理器设计中结构的改变主要侧重于利用ILP以便在每个时钟周期中完成更多工作,按时间顺序这些改变包括:

  1. 流水线——单个指令通过功能段流水线执行以便一条指令在流水线的一个段中执行时,另一条指令在该流水线的另一个段中执行
  2. 超标量——通过复制执行资源构成多条流水线,这避免了冒险,使得可以在并行流水线中并行执行指令
  3. 同步多线程SMT——扩展了寄存器组,保证多个线程可以共享使用流水线资源

能耗

随着单个芯片上晶体管数量和时钟频率的增加,功率需求呈指数级增长,随之而来的是用户成本增加和散热问题。Pollack经验法则:性能的提高大致与复杂性增加的平方根成正比,即若处理器内核的逻辑增加一倍,则它只能提供40%的性能提升。原则上随着内核数量增加,多核的使用可能提供近乎线性的性能改进(仅限于能够利用这一点的软件)。

常规多线程架构

多线程允许多个线程以重叠的方式共享CPU,CPU为每个线程维护一个独立的线程状态,常规多线程架构拥有单独的寄存器组、程序计数器和页表,还需要线程切换硬件。线程切换时间通常介于0.110个周期,过程切换时间通常介于100s1000s。多线程架构分为细粒度多线程(一个线程在一个循环中执行)、粗粒度多线程(一个线程在多个周期内执行,仅在高代价时切换)、混合式(综合单线程和细粒度多线程)。

多核软件

许多应用程序还直接受益于随内核数量调整吞吐量的能力,多核处理器有以下几种应用:

  1. 多线程本机应用程序——线程级并行,特点是具有少量高度线程化的进程
  2. 多进程应用程序——进程级并行,特点是存在许多单线程化的进程
  3. Java应用程序——Java虚拟机是一个多线程进程,为Java应用程序提供调度和存储管理
  4. 多实例应用程序——应用级并行,可通过并行运行多个实例从多核架构中获利,若多个应用程序实例需要某种程度的隔离,则可以使用虚拟化技术为每个应用程序实例提供它自己的独立且安全的区域。

多核组织结构

高速缓存的层级

(a)专用L1高速缓存组织结构,每个内核都有独立L1高速缓存,L1也是唯一片上缓存,其中L1区分为数据缓存和指令缓存。

(b)专用L2高速缓存组织结构,每个内核都有独立L1高速缓存和独立L2高速缓存,其中L1区分为数据缓存和指令缓存。

(c)共享L2高速缓存组织结构,每个内核都有独立L1高速缓存,内存共享L2高速缓存,其中L1区分为数据缓存和指令缓存。

(d)共享L3高速缓存组织结构,每个内核都有独立L1高速缓存和独立L2高速缓存,内存共享L3高速缓存,其中L1区分为数据缓存和指令缓存。

在芯片上使用共享的更高级高速缓存具有以下优点:

  1. 结构干涉可以降低整体缺失率,即若一个内核上线程访问一个主存位置,则将包含访问位置的数据行存入共享高速缓存,此时其他内核上的线程可以直接访问该数据行。
  2. 多核共享的数据不会在共享高速缓存级上复制。
  3. 通过适当的行替换算法,分配给每个内核的共享高速存量动态变化,因此局部性更少的线程可以使用更多的缓存。
  4. 通过共享内存位置,易于实现内核间通信。
  5. 使用共享内存位置,易于实现内核间通信。
  6. 使用共享内存位置,易于实现内核间通信。

其中,片上只有专用L2高速缓存的组织结构能保证每个内核更快访问其私有L2高速缓存,从而利于具有强局部性的线程。

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