在低电压下稳定运行的cache(二)

本文深入分析了两种容错机制——Cacheword-disable和Cachebit-fix,详细介绍了它们的工作原理和实现方式。Cacheword-disable通过在缓存条目的tag中保存缺陷映射表来检测和隔离故障内存位;Cachebit-fix则采用更精细的粒度,以pair为单位检测缺陷,并使用补丁进行修正。通过这两种机制,系统能够在一定程度上增强自身的容错能力,确保数据的一致性和可靠性。

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

接下来介绍论文中提出的两种容错机制:

Cache word-disable


上图是一条cache entry。word-disable机制的要点有两点:

1)每一条cache line的tag中保存了一个缺陷映射表(defect map),一条line(64 B)中有16个word(32 bit),则map中存有16个bit,分别对应这16个word,若word产生缺陷,则map中相应bit为1,若word有效则相应bit为0。


2)在每一个cache set中每连续两个cache line形成一条logical line。第一条physical line存logical line的前8个有效字(32 bit word),第二条physical line存logical line的后8个有效字。



我们将一条cache line两等分,这样每份是8个字的容量,但每一份只存4个字(每条cache line只存8个字),每一份最多允许4个字有缺陷,超过4个字则整个cache有缺陷。我们通过两个四阶段shifter去除有缺陷的字并收集有效字,利用defect-map对缺陷字进行定位,具体图示如下(来自论文):



Cache bit-fix:

它的粒度更细,2个bit为一组(成为pair),当至少有一个bit有缺陷时该pair视为有缺陷。用2-bit的patch(补丁)就可纠正一个有缺陷的pair。对一条cache line读写,先要取出这条cache line对应的repair patterns,repair patterns包括repair pointer和patch,repair pointer可以避免读和写broken bit,而patch可以修正cache line(读cache line时),当写cache时,需要将新的patch写入到repair patterns。我们将一个8-way cache分成两个bank ,这样当cache hit时,我们可以同时将data line和fix-line(存有data line对应的repair patterns)取出:


如上图,我们从Bank A中取出data line,从Bank B中取出fix-line。data line要经过n个shift阶段,n代表缺陷对的数目,每一个阶段去除一个缺陷对(缺陷对要靠defect pointer去识别),同时替换为一个fixed pair(patch进行修正)。fix-line也会出现错误,我们用SECDED ECC进行纠正,当确保没问题时,我们再用repair patterns去纠正data line。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值