分布式内存多核系统与硬件并行性及缓存技术解析
1. 分布式内存多核系统概述
当 CPU 核心数量接近或超过 100 个时,采用分布式内存系统是一种明智的选择,即让每个 CPU 拥有自己的独立内存。在这个平台中,每个缓存由本地缓存控制器(通常称为 MSI 控制器,基于修改、共享和无效三种状态)控制,而每个分布式内存由目录控制器管理。
1.1 目录系统特性
- 对于本地内存中的每个数据块,目录中都有一个对应的共享者 ID 条目。
- 该条目列出了数据传输后的所有可能结果:
- 数据块被其他 CPU 核心共享(共享状态)。
- 数据块仅存在于本地内存中(修改状态)。
- 数据块不存在于本地内存中(未缓存状态)。
- 当缓存未命中时,目录控制器会搜索并定位所需的数据块,并在每次读写操作后更新共享者 ID。
1.2 数据事务中的 CPU 节点
在每个数据事务中,主要涉及三个 CPU 核心,每个核心在事务中有不同的名称,称为“节点”:
- 请求节点 :发出地址并向其他 CPU 核心请求数据的 CPU 核心。
- 主节点 :其内存中包含所发出地址的 CPU 核心。
- 拥有节点 :其内存中实际拥有所请求数据的 CPU 核心。
数据传输过程如下:
1. 请求节点生成地址和读写请求。
2. 主节点从拥有节