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

笔记内容及图片整理自XJTUSE "计算机组成原理与系统结构" 课程ppt,仅供学习交流使用,谢谢。

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

性能问题

增加并行性和复杂性

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

1)流水线------单个指令通过功能段流水线执行以便一条指令在流水线的一个段中执行时,另一条指令在该流水线的另一个段中执行

2)超标量------通过复制执行资源构成多条流水线,这避免了冒险,使得可以在并行流水线中并行执行指令

3)同步多线程SMT------扩展了寄存器组,保证多个线程可以共享使用流水线资源

能耗

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

下图是特征尺寸在逻辑/存储方面功率密度的变化情况:

常规多线程架构

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

下图左表是细粒度多线程,右表是粗粒度多线程:

多核软件

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

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)使用共享高级缓存把高速缓存一致性问题限制在较低的缓存级,提升性能。

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

相关推荐
吴梓穆13 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
V---scwantop---信14 小时前
英文字体:大胆都市街头Y2Y涂鸦风格品牌海报专辑封面服装字体 Chrome TM – Graffiti Font
笔记·字体
Moonnnn.14 小时前
运算放大器(四)滤波电路(滤波器)
笔记·学习·硬件工程
吴梓穆15 小时前
UE5学习笔记 FPS游戏制作37 蓝图函数库 自己定义公共方法
笔记·学习·ue5
吴梓穆15 小时前
UE5学习笔记 FPS游戏制作41 世界模式显示UI
笔记·学习·ue5
s_little_monster16 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
RedMery16 小时前
论文阅读笔记:Denoising Diffusion Implicit Models (4)
论文阅读·笔记
go_bai17 小时前
Linux环境基础开发工具——(2)vim
linux·开发语言·经验分享·笔记·vim·学习方法
吴梓穆17 小时前
UE5学习笔记 FPS游戏制作35 使用.csv配置文件
笔记·学习·ue5
100分题库小程序17 小时前
2025年机动车授权签字人考试判断题分享
经验分享·笔记