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

通过引入小型全相联缓存和流缓冲区,显著降低L1缓存失效率,提高处理器性能。采用misscache和victimcache解决映射冲突,流缓冲区预取数据减少失效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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失效率,提高系统性能。

在这里插入图片描述

### 关于《通过生成式预训练提升语言理解》论文的中文翻译 #### 1. 论文背景介绍 本研究旨在探索如何利用大量的未标注数据来改进自然语言处理系统的性能。具体来说,这项工作展示了通过对大规模语料库进行无监督学习,可以显著提高多种下游NLP任务的表现。这种方法被称为“生成式预训练”,它允许模型在接触特定任务之前先获得广泛的语言知识[^1]。 #### 2. GPT 的定义及其工作机制 GPT 是指 "Generative Pre-trained Transformer"[^2],这是一种基于Transformer架构设计的语言模型。该模型能够根据给定的历史文本片段预测后续可能出现的内容,进而实现新文本的创建。这种能力源于其强大的统计特性,使得GPT可以从已有的输入模式中推断出合理的延续方式[^2]。 #### 3. 预训练的具体方法 为了使模型更好地捕捉到语言中的长期依赖关系,在最初的实验设置里选择了类似于成语接龙的任务作为主要的预训练目标之一。此过程中,系统会尝试依据前k个词语推测第k+1个词的身份;这里的k代表了一个固定的上下文长度窗口大小。通过最小化预测错误率的方式调整网络权重,以此完成整个训练流程[^3]。 #### 4. 模型结构细节 文中描述了一种由十二层解码器组成的独占版Transformers架构,每层包含了768维的状态向量以及十二组注意力机制单元。值得注意的是,这里采用了掩蔽技术以防止未来信息泄露至当前时间步长内的计算当中,确保了因果一致性[^4]。 ```python class DecoderOnlyTransformer(nn.Module): def __init__(self, vocab_size=50257, n_embd=768, n_head=12, n_layer=12): super().__init__() self.transformer = nn.TransformerDecoder( decoder_layer=nn.TransformerDecoderLayer(d_model=n_embd, nhead=n_head), num_layers=n_layer, norm=None ) def forward(self, src, tgt, mask=None): output = self.transformer(tgt=tgt, memory=src, tgt_mask=mask) return output ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值