Improving direct-mapped cache performance by the addition of a small fully-associative cache and pre

Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers 阅读笔记

    • 摘要
    • 总结

摘要

计算机预测技术在不久的将来峰值将达到1000MIPS。如果这些处理器的层次结构基于传统的缓存技术,很容易损失一半甚至更多的性能。本文介绍了提高缓存性能的硬件技术。
Miss Caching:在cache及其缓存路径之间放置一个小型全相联cache。命中miss cache但未命中cache将有一个周期的失效惩罚,但是如果没有miss cache将会有多个周期的失效惩罚。在L1直接映射cache中,2-5个条目的小型miss cache对于消除映射冲突非常有效。
Victim Caching:是对miss cache的改进,L1中被替换掉的line放在Victim中,并非miss cache中的复制,存储备份。因为victim存储的数据是不一样的。它加载小的完全关联的cache,而不是请求行。1-5个条目的小型victim cache在消除映射冲突中比miss cache更有效。
流缓冲区:从告诉缓存未命中的地址开始预期缓存行。预取的数据存放在缓冲区中而不是cache中。流缓冲区技术在消除容量和强制cache失效方面非常有用,同时也能消除一些指令cache未命中。本文引入了对基本流缓冲区的扩展,多路流缓冲区。多路流缓冲区对于沿着流的多路交织数据非常有效。
在六大benchmark中,使用victim cache 技术和流缓冲区技术可以共同将cache层次结构中的L1失效率降低2-3倍。

总结

小型miss cache(2-5个条目)已经证明在减少冲突失效方面是有效的。victim cache 通过对miss cache的改进,保存了victim行而不是直接复制,性能更优。流缓冲区在失效的miss line之后进行预取,可以避免不必要的cache污染也能容忍更长时间的内存系统延迟因为他比其他预取技术提前了很多时间开始预取数据。多路流缓冲区是一组流缓冲区,由于预取的是连续的行,所以只有单位步长或者接近单位步长的才会受益,适合用于包含几个不同的大数据结构(比如数组操作)交叉数据访问。
victim cache和流缓冲区带来的性能的改进相对而言是正交的。当引用映射到缓存中同一位置并进行交替操作时,victim cache可以很好的工作,它不预取数据,流缓冲区通过预取数据来实现性能改进。在六组基准测试程序中,平均只有2.5%的4KB直接映射数据缓存没有命中4条目的victim cache中的数据没有命中流缓冲区。而对linpack的顺序访问模式而言,victim cache 的50%的命中也在一个思路流缓冲区中命中。总之,victim cache和流缓冲区之间的引用仍然不是很大。
图5-1展示了添加了4条目的victim cache,一个指令流缓冲区和一个4路数据缓冲区的baseline系统的性能(片内4KB数据和指令cache拥有24个周期的惩罚,16B的行大小。一个三级流水线的1MB 缓存,320个周期的惩罚和128B行大小。)实现给出了原始性能,组合技术使得六个基准程序测试的系统性能平均提高了143%,从而,添加少量硬件可以显著降低cache失效率,提高系统性能。

Improving direct-mapped cache performance by the addition of a small fully-associative cache and pre_第1张图片

你可能感兴趣的:(我的心得,计算机系统,硬件编程语言,算法,嵌入式学习,cache,pre,fully,associative)