多核架构中的高速缓存一致性协议与任务级流水线技术
立即解锁
发布时间: 2025-10-21 00:26:55 阅读量: 17 订阅数: 56 AIGC 

面向未来的并行计算研究
# 多核架构中的高速缓存一致性协议与任务级流水线技术
在多核心架构中,缓存一致性协议和任务级流水线技术是提升系统性能的关键要素。缓存一致性协议保证了多核心系统中各个缓存间数据的一致性,而任务级流水线技术则能加速由生产者/消费者任务构成的应用程序执行。下面将详细探讨基于链表的目录缓存一致性协议的特性,以及FPGA多核架构中粗/细粒度的任务级流水线方法。
## 1. 系统参数
| 参数类型 | 具体参数 | 详情 |
| ---- | ---- | ---- |
| 内存参数 | 块大小 | 64字节 |
| | L1缓存(数据与指令) | 32 KiB,4路组相联 |
| | L1访问延迟 | 1周期 |
| | L2缓存(共享) | 512 KiB/片,16路组相联 |
| | L2访问延迟 | 12周期 |
| | 缓存组织方式 | 包含式 |
| | 目录信息 | 包含在L2中 |
| | 内存访问时间 | 160周期 |
| 网络参数 | 拓扑结构 | 二维网格(4×4或8×8) |
| | 路由方法 | X - Y确定性路由 |
| | 消息大小 | 数据:5片;控制:1片 |
| | 链路时间 | 1周期 |
| | 带宽 | 每周期1片 |
## 2. 基于链表的目录缓存一致性协议评估
### 2.1 L1缓存缺失延迟
缓存缺失延迟是多处理器性能的关键指标,一致性协议使用的共享代码会显著影响它。L1缓存缺失延迟分为四个部分:到达L2的时间(Reach L2)、在L2等待处理缺失的时间(At L2)、等待从主存接收数据的时间(Main memory)以及L2发送数据或转发请求后到请求者收到内存块的时间(To L1)。
对于16核配置,缺失延迟受共享代码的影响较小。1 - 指针协议和链表协议仅使To L1时间略有增加,这是由于写缺失延迟的增加。1 - 指针协议是因为使共享者失效所需的消息数量增多(每次广播),而链表协议是由于失效过程的串行性质。
对于64核配置,To L1延迟因需要接收失效消息的核心数量增加而更高。更严重的是,许多基准测试中在L2缓存等待处理缺失的时间(At L2)急剧增加。链表协议会加剧这种影响,因为更新共享列表的时间增长更快,且为避免列表不一致,更新过程需互斥进行,导致L2缓存长时间阻塞,无法响应同一内存块的其他请求。
### 2.2 网络流量
网络流量分为以下几类:因缓存缺失产生的数据消息(Data)、因替换产生的数据消息(WBData)、因缓存缺失产生的控制消息(Control)、因私有数据替换产生的控制消息(WBControl)和因共享数据替换产生的控制消息(WBSharedControl)。
在16核配置中,1 - 指针协议的共享代码会增加控制消息流量,因为只要有多个共享者就需广播失效消息。链表协议的控制消息流量与基础协议相同,但替换产生的流量显著增加,尤其是共享数据的替换,这会加剧L2缓存的竞争。
在64核配置中,1 - 指针协议的平均流量超过链表协议,因为失效所需的广播通信成本随核心数
0
0
复制全文


