统一压缩缓存层次结构与嵌入式系统函数内联优化
统一压缩缓存层次结构
在缓存系统中,压缩缓存技术是提高性能的重要手段。下面详细介绍一种统一压缩缓存层次结构的设计与实验结果。
缓存访问与替换策略
在L2缓存中,若预取的附属行已存在于缓存中(此时它必定处于其主位置),则会将其丢弃。而在丢弃被替换的缓存行之前,会检查是否可将该行放入其附属位置。若脏位被设置,仍会写回其内容,并在附属位置保留一个干净的部分副本。这样的缓存访问和替换策略确保了在任何时候,缓存中最多只保留一个缓存行的副本。
对于与读取指令相关的编码字,快速解压缩至关重要。解压缩编码字时,需要确定主位置或附属位置,并从四种模式中选择一种。解码编码字的关键路径总延迟相当于一个8选1多路复用器的延迟。不过,这个延迟可以隐藏在处理器流水线的写回阶段,因此在L1访问延迟中不会产生解压缩开销。
与传统缓存相比,这种压缩缓存为每32位字增加了4位,约使缓存大小增加12.5%。但它支持下一行部分预取,完全移除了预取缓冲区,且不会增加L1 D - 缓存和L2缓存之间的缓存污染和内存流量(主编码缓存行和附属编码缓存行的行大小之和等于一个物理缓存行大小),从而能显著降低缓存缺失率,提高压缩缓存层次结构的性能。
L2缓存组织
L2压缩缓存采用S - FPC压缩算法,以缓存行为基础进行压缩和解压缩。L2缓存行大小为64字节,压缩后的编码前缀有32位(4字节)。每个组是8路组相联的,每个地址标签都存储有一个压缩信息标签。数据数组被分成4字节的段,每个缓存组静态分配64个段。因此,每个组最多可容纳4个未压缩的64字节行,或最多8个压缩缓存行,压缩最多可使有效容量翻倍。
超级会员免费看
订阅专栏 解锁全文
55

被折叠的 条评论
为什么被折叠?



