为工作负载优化系统重构HTM及共享缓存增强自适应插入策略
立即解锁
发布时间: 2025-08-22 01:53:01 阅读量: 2 订阅数: 4 

### 为工作负载优化系统重构 HTM 及共享缓存增强自适应插入策略
在计算机系统设计中,为了实现工作负载优化,需要对硬件事务内存(HTM)进行重构,同时在缓存管理方面采用更高效的插入策略。下面将详细介绍相关内容。
#### 基于摘要签名的 HTM 设计
基于摘要签名的设计使用较少的硬件资源,通过软件处理操作系统(OS)事件来进行补偿。例如,有一种设计采用了名为“懒方案”的巧妙技术,以减少软件处理过程中的有效开销。实验结果表明,与两种 htm - e - tat2 设计变体相比,这种设计的开销较低。因此,结合巧妙软件处理的基于摘要签名的设计,为具有大量并发事务线程的工作负载优化系统提供了最佳解决方案。
#### 实验设置
开发了事务缓存(transact cache)和基于扇区缓存的 TAT1 的 RTL 设计。相关参数如下表所示:
| 类型 | TAG 字段 | 有效位 | 读写位 | 条目数量 |
| ---- | ---- | ---- | ---- | ---- |
| 1 - 路事务缓存 | 18 位 | 1 位 | 1 位 | 1024 |
| 扇区缓存 | 18 位 | 1 位 | 一对 64 位 | 64 |
使用 Synopsys Design Compiler 从 RTL 设计获取网表,Synopsys Prime Power 计算功耗,Cadence Encounter 计算面积。内存单元的规格从 Faraday 的 Memaker 内存编译器获取。具体设置如下:
- Primer Power:电压 1.8 V,典型温度 25°C,时钟频率 33 MHz。
- Memaker:TMSC 的 180 nm CMOS 工艺,同步高速单端口 RAM。
由于某些限制,仅获取了 180 nm 技术的工具,但预计更低纳米技术的结果也会呈现类似趋势。
#### 扇区缓存与事务缓存的比较
通过面积和功耗分析,结果如下表所示:
| 类型 | 总功耗 | 每瓦性能(PPW) | 总面积 | 每单位面积性能(PPA) |
| ---- | ---- | ---- | ---- | ---- |
| 事务缓存 | 22.78 mW | 22.24 µW | 0.52 mm² | 507.8 µm² |
| 扇区缓存(最佳局部性) | 32.71 mW | 8.02 µW | 0.45 mm² | 109.86 µm² |
| 扇区缓存(最差局部性) | 32.71 mW | 511.09 µW | 0.45 mm² | 7031.25 µm² |
从结果可以看出,扇区缓存能够在给定单位面积内存储更多的事务条目,有效面积可减少 4.6 倍。然而,扇区缓存仅适用于具有高空间引用局部性的事务。如果事务的局部性较差,其优势将大幅降低。此外,虽然理论上扇区缓存可实现很高的面积缩减率,但实际中并未达到,这可能是由于实现扇区所需的大宽度内存块所致。同时,扇区缓存的功耗最多可降低 2.77 倍,但同样局限于高局部性事务,对于低局部性事务会有较大的性能损失。
事务结构的功耗 - 面积图以及工作负载的特性在决定合适的每核事务结构中起着核心作用。例如,n 路事务缓存在低线程数时具有特定的持续时间限制优势,但简单的单路事务缓存的功耗 - 面积成本较高。
#### 缓存替换策略背景
在多处理器的末级缓存中,常用的是最近最少使用(LRU)替换策略。但对于工作集大于可用缓存大小的内存密集型工作负载,LRU 策略效果不佳。当新的缓存块插入到最常使用(MRU)位置时,可能在被逐出缓存之前都不会被重用,却长时间占用缓存空间。若直接将新缓存块插入到最近最少使用(LRU)位置,则可通过保留部分工作集在缓存中来提高缓存性能。
为了改进 LRU 策略,提出了多种技术:
- **动态插入策略(DIP)**:通过动态改变插入策略,在私有缓存中以较小的硬件和设计开销实现高性能。
- **双峰插入策略(BIP)**:将大部分传入缓存块插入到 LRU 位置,只有少数插入到 MRU 位置,具有抗抖动能力。
- **线程感知动态插入策略(TADIP)**:针对多线程工作负载,通过多集对决根据每个并发执行应用的内存需求选择插入策略。
然而,固定概率的 BIP 策略并不足以适应所有应用的行为。因此,提出了增强动态插入策略(EDIP)和线程感知增强动态插入策略(TAEDIP)。
#### EDIP 设计
将原始的 BIP 策略细化为 8 个级别,每个级别对应一个不同的将传入缓存块插入到 MRU 位置的概率,如下表所示:
| 级别 | 插入到 MRU 位置的概率 |
| ---- | ---- |
| 0(LIP) | 0% |
| 1 - 6 | 不同固定概率 |
| 7(LRU) | 100% |
使用集对决机制(SDM)收集当前 BIP 级别相邻两个级别的运行时失效率。例如,当前 BIP 级别为 4 时,需要监控的前一级别和下一级别分别为 3 和 5。所有八个级别组织成一个环。
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([开始]):::startend --> B(当前 BIP 级别为 4):::process
B --> C(监控级别 3 和级别 5):::process
C --> D(比较失效率):::process
D --> E(选择最佳级别):::process
E --> F([结束]):::startend
```
通过这种方式,EDIP 可以更准确地从 LRU 到 LIP 改变插入策略,适应更复杂的访问模式。
在单核心配置的 1MB 16 路 LLC 中,EDIP 相比 LRU 和 DIP 平均分别降低 11.4% 和 1.8% 的 CPI。
综上所述,在 HTM 设计和缓存插入策略方面,不同的设计和策略适用于不同的工作负载特性。在选择时,需要综合考虑事务结构的功耗 - 面积特性以及工作负载的访问模式等因素,以实现系统性能的优化。
#### TAEDIP 设计
对于共享缓存,提出了线程感知增强动态插入策略(TAEDIP),它可以利用 TADIP 中的集对决机制。TAEDIP 提出了一种新的多线程策略选择方法,通过比较三个 BIP 级别来做出选择。
具体来说,TAEDIP 在多线程环境下,会针对每个线程的工作负载特性,通过集对决机制收集不同 BIP 级别的运行时信息。例如,对于某个线程,会同时监控当前 BIP 级别以及其相邻的两个 BIP 级别(前一级别和后一级别)的失效率。然后比较这三个级别的失效率,选择失效率最低的 BIP 级别作为该线程的插入策略。
在四核配置的 4MB 16 路 LLC 中,TAEDIP 在加权加速比指标上相比 LRU 和 TADIP 平均分别提高 11.2% 和 3.7%。在公平性指标上,TAEDIP 相比 LRU 和 TADIP 平均分别提高 11.2% 和 2.6%。
#### 不同结构和策略的适用场景总结
不同的 HTM 结构和缓存插入策略适用于不同的工作负载特性,具体总结如下表:
| 结构/策略 | 适用工作负载特性 |
| ---- | ---- |
| 基于摘要签名的结构 | 系统受功耗 - 面积限制,且工作负载仅包含小尺寸事务 |
| 摘要签名 | 具有高操作系统活动和许多事务线程的工作负载 |
| n 路事务缓存(带 TID 位) | 每个核心事务线程较少(避免溢出)、读操作多于写操作且具有重叠访问模式的工作负载 |
| 基于扇区缓存的 TAT | 包含大尺寸事务但具有高引用局部性的工作负载 |
| EDIP | 工作集较大的工作负载,能降低失效率 |
| TAEDIP | 多线程共享缓存场景,在性能和公平性上有提升 |
```mermaid
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([开始]):::startend --> B(分析工作负载特性):::process
B --> C{工作负载类型?}:::process
C -->|小尺寸事务、功耗 - 面积受限| D(基于摘要签名的结构):::process
C -->|高 OS 活动、多事务线程| E(摘要签名):::process
C -->|低线程数、读多写少、重叠访问| F(n 路事务缓存):::process
C -->|大尺寸事务、高局部性| G(扇区缓存 TAT):::process
C -->|大工作集| H(EDIP):::process
C -->|多线程共享缓存| I(TAEDIP):::process
D --> J([结束]):::startend
E --> J
F --> J
G --> J
H --> J
I --> J
```
#### 总结
在计算机系统设计中,为了实现工作负载优化,需要综合考虑 HTM 结构和缓存插入策略。基于摘要签名的 HTM 设计在处理大量并发事务线程时具有优势,而不同的缓存插入策略则针对不同的工作负载特性进行了优化。
EDIP 和 TAEDIP 通过细化 BIP 级别和利用集对决机制,能够更好地适应复杂的访问模式和多线程环境,从而提高缓存性能。在选择合适的事务结构和缓存策略时,需要充分考虑事务结构的功耗 - 面积特性以及工作负载的特性,以实现系统性能的最大化。未来,随着计算机系统的不断发展,可能会出现更多适应不同工作负载的创新设计和策略。
0
0
复制全文
相关推荐









