首页> 中国专利> 一种考虑防护措施的缓存可靠性分析方法

一种考虑防护措施的缓存可靠性分析方法

摘要

本发明公开了一种考虑防护措施的缓存可靠性评估方法,结合单粒子时空单比特翻转和多比特翻转的概率特性,提出了一种基于马尔科夫状态迁移的缓存可靠性计算方法。本方法将单粒子翻转的时空累积效应和检错纠错防护措施带来的可靠性改变融入评估方法中,为存储单元容单粒子软错误及纠错措施的设计提供依据。

著录项

  • 公开/公告号CN104035834A

    专利类型发明专利

  • 公开/公告日2014-09-10

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN201410311754.9

  • 发明设计人 汪芸;王辉;

    申请日2014-07-02

  • 分类号G06F11/10(20060101);

  • 代理机构32250 江苏永衡昭辉律师事务所;

  • 代理人王斌

  • 地址 210096 江苏省南京市四牌楼2号

  • 入库时间 2023-12-17 01:39:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-10-15

    实质审查的生效 IPC(主分类):G06F11/10 申请日:20140702

    实质审查的生效

  • 2014-09-10

    公开

    公开

说明书

技术领域

本发明涉及计算机领域的处理器存储单元中的抗单粒子软错误,特别是能够 对采用了单位检错(Single Error Correction,SEC)、双位检错(Double Error  Correction,DEC)等检错纠错码ECC(Error Correction Code)及交错布局防护措 施的缓存单元的可靠性进行分析,可以对处理器抗单粒子软错误均衡容错设计提 供理论依据。

背景技术

随着半导体技术的飞速发展,集成电路制造工艺不断向超深亚微米发展,芯 片印刷电路板的组装密度不断增大、供电电压不断降低以及时钟频率的提高等原 因导致微处理器发生单粒子翻转(Single Event Upset,SEU)的概率大大提升。特 别是处于太空环境下的卫星系统更容易遭受高能带电粒子的撞击,使卫星系统的 存储位或逻辑位发生单位翻转(Single Bit Upset,SBU)或多位翻转(Multi Bit  Upset,MBU)。由于单粒子软错误主要发生在数据存储或指令相关器件中,并不 会影响器件的物理特性,因此可以通过系统复位、重新加电或重新写入等措施使 系统恢复到正常状态。微处理器抗单粒子效应设计的主要途径是通过软硬件冗余 或者采用软件、硬件层的检错纠错码技术,发现并纠正单粒子翻转错误,从而减 少软错误对系统可靠性的影响。

Mukherjee等开创性的提出了架构脆弱性因子AVF分析方法来评估系统部件 在遭受单粒子翻转后发生故障的概率,系统部件发生故障的概率由单粒子翻转原 生错误率、电路和进程的处理过程以及AVF共同决定。研究发现不同应用程序 或者不同体系结构的AVF相差很大,在AVF分析方法的基础上,研究人员提出 了很多可靠性评估方法。Li等提出一种基于概率的软错误生成和传播模型 SoftArch,相对于以前的方法,SoftArch能够更快速且更全面的评估处理器架构 级的软错误行为,而且能够识别不同微架构级部件以及应用程序不同阶段对系统 AVF的贡献率,但是没有考虑防护措施后软错误对系统的影响。Suh等提出一种 针对单位和多位翻转情况下的状态转换可靠性评估方法,但是没有考虑应用程序 AVF的影响。Alessandro等提出了一种基于微处理器的统计可靠性评估方法,该 方法主要从程序执行的角度分析微处理器的软错误率,并通过模拟软错误,快速 静态地分析目标软件的控制流和数据流,以此计算程序成功运行的概率,得到了 和统计错误注入相一致的实验结果,且大大降低了统计错误注入方法所需要的评 估时间,但是该方法还是依赖于统计信息,针对性较差。

微处理器中的存储单元对软错误最为敏感。随着技术的进步,缓存已占据微 处理器空间的一半以上,由于缓存中存放着大量运算所需要的地址和数据,且随 着亚阈值(sub-threshold)电压操作和昏沉电源(drowsy supply)电压等技术的 使用,在降低了缓存的静态功耗的同时,也使得缓存单元对单粒子软错误越加敏 感。同时,诸如奇偶校验(Parity)、单位纠错双位检错(SECDED)等ECC防 护措施的使用,又增强了处理器存储单元抗单粒子效应的能力。如何评估采用 ECC防护措施、具有累积时空单位或多位单粒子效应的处理器缓存可靠性逐渐 成为目前研究的热点。因此研究单粒子软错误缓解及防护技术主要从以下两个方 面进行研究:1)开发更好的框架、分析技术和软件工具以便更好的理解和度量 软错误是如何影响系统的行为;2)扩展现有的软错误屏蔽、检测和恢复技术, 以便在可行的性能、能量、空间和复杂度约束条件下提高系统的可靠性。

现有的缓存可靠性设计中加入了诸如奇偶校验、单位纠错双位检错(SECDED) 和交错布局(Interleaving)等防护措施,而AVF(Architectural Vulnerability Factors) 和生命周期分析方法都没有考虑应用这些防护措施后系统的可靠性。

发明内容

发明目的:现有技术都是在没有考虑防护措施的前提下,通过分析应用程序 特性及缓存的布局等来分析其可靠性,这些分析技术会使缓存的防护代价过高, 例如防护措施的重叠等,进而影响整个系统的性能(如时延、功耗等),针对现 有缓存可靠性性分析方法的不足,本发明目的是提出一种考虑单粒子翻转的时空 累积效应和检错纠错防护措施后缓存的可靠性评估方法。

技术方案:为了实现上述发明目的,本发明采用的技术方案为一种考虑防护 措施的缓存可靠性评估方法,下面首先介绍该方法使用的基本符号:

AVFstructure:表示分析对象的脆弱性因子;

VCC(Vulnerability Clock Cycle):脆弱性时钟周期,所有在ACE生命周期 内的时间段都为脆弱性时钟周期;

PD(Protection Domain):保护区域,如奇偶校验、SECDED、DECTED等 汉明码所保护的区域;

L(Scrubbing Interval):刷新间隔,ECC防护策略运算的时间间隔定义为刷 新间隔;

PSEU_PD:保护单元PD在一个处理器时钟周期内发生单粒子翻转的概率;

dm,n:表示发生m×n型空间多位翻转的概率;

MS(Markov State):马尔科夫状态,在某个处理器时钟周期内,保护区域PD 内所发生单粒子翻转的比特位个数;

λ:软错误发生率;

m:保护区域内可以防护软错误位个数的上界;

mac:系统失效时,保护区域内已经发生软错误位的个数;

每次单粒子效应所产生软错误位的平均个数;

在软错误率为λ的情况下,发生单粒子时空多位翻转后,系统的平 均无故障时间;

在软错误率为λ′的情况下,发生单粒子单位位翻转后,系统的平均 无故障时间。

一种考虑防护措施的缓存可靠性分析方法,其特征在于,包括以下步骤: 第一步,进行体系结构脆弱性因子(AVF,Architectural Vulnerability Factor)计算: 首先根据缓存进行的读写操作将缓存划分为软错误敏感位ACE(Architecturally  Correct Execution)、软错误非敏感位UnACE和未知位Unknown三种类型,确定 指令生命周期内哪些位的软错误是敏感的;之后,计算体系结构脆弱性因子AVF

AVFstructure=Σi=0N(bitwiseAVF)iN=Σi=0NACEcycleiN×totlecycles

其中AVFstructure表示分析对象的脆弱性因子;ACE cyclei表示比特位i在程序执行 过程中处于ACE状态总的时间周期数;N表示测试对象总的比特位个数; totle cycles表示程序执行总的时间周期;

所述的体系结构脆弱性因子AVF是指存储单元在特定时钟周期内所包含软错误 敏感位ACE位的百分比;针对逻辑结构,体系结构脆弱性因子AVF是在特定时 钟周期内处理ACE位或者指令集的百分比,对于拥有N个子系统的总系统而言, 总的体系结构脆弱性因子AVF是各个子系统体系结构脆弱性因子AVF’综合的结 果。

第二步,进行粒子翻转软错误效应分析:通过马尔科夫状态转换关系来分析存储 系统的可靠性,具体为:MSx表示保护区域内发生的软错误位个数为X,在只考 虑单位翻转的情况下,各状态之间转换的步距只能为1即MSk只能转换为 MSk-1(翻转位重叠,状态减一)或MSk+1(翻转位未重叠,状态加一);当最多考虑 m位空间多位翻转PmBU的情况下,MSk在发生一次单粒子效应后,可以转换为 2m+1种状态(即MSk-m,MSk-m+1,…,MSk+m);

为不同的单位翻转、多位翻转建立不同的马尔科夫状态之间的转换矩阵,形成马 尔科夫链,缓存固有的平均无故障时间MTTFintri就为从状态MS0到状态MSk转换 所需要次数与处理器时钟周期cycle之积: 而整个运行程序的平均无故障时间则为: MTTF=MTTFintriAVF

第三步,考虑交错布局的时空多位翻转分析:在交错布局的防护措施下,通过单 位翻转无故障时间来对多位翻转平均无故障时间的下界的情况进行预 估分析,将软错误发生率λ转化为单位翻转软错误发生率其中 为每次单粒子效应所产生软错误位的平均个数, Qeventper=E[qi]=Σj=1j·p(j)=1+Σj=2(j-1)·p(j),p(j)表示发生j位翻转的概 率,将单位翻转无故障时间带入第二步,代替缓存固有的平均无故障 时间MTTFintri,得到缓存在交错布局策略下的可靠性

AVF分析的目的是对模块内的元素进行软错误敏感性排名,以此来选择和保 护最脆弱的单元。ACE分析的优势是可以在设计阶段进行可靠性评价,且性能 较快;劣势是缺少真实微处理器结构的细节信息,并且需要手工对ACE位和 un-ACE位进行分类,这就导致AVF分析的精度及完备性等方面会有所降低。

单粒子翻转中绝大多数的软错误都是单位翻转(SBU),但是随着集成电路技 术的不断发展,缓存占据了片上芯片一半以上的空间。特别是在太空应用环境中, 微处理器缓存更容易遭受高能带电粒子的撞击,此时发生时间多位翻转(即某块 区域在多个离散的时间段内,分别遭受到高能粒子撞击而发生单位或多位翻转) 和空间多位翻转(即某块区域在一次高能粒子撞击下发生多位翻转)的概率也越 来越高,最新的研究和实验表明绝大多数的空间多位翻转都具有聚集效应 [14-15],即软错误的形式会限定在一个连续的矩阵范围内,因此空间多位翻转的 模式可以表示为:

MUB=Rbits×Cbits

其中Rbits和Cbits分别表示空间多位翻转的水平字线(word lines)方向和垂直 位线(bit lines)方向上翻转位的个数。单位翻转SBU可以认为是多位翻转MBU 的特例,即1×1的矩阵。为简化模型的建立,本文只考虑 1×1,1×2,1×3,1×4,2×1,2×2,2×3,2×4等八种软错误模式,这些单粒 子翻转形式已经占据了所有翻转可能性的99.668%。

使用矩阵D=d1,1d1,2d1,3d1,4d2,1d2,2d2,3d2,4=0.8900.0590.0150.0020.0090.0130.0070.001来表示 在每个时钟周期内发生单粒子效应后,不同单粒子翻转模式发生的概率,其中 dm,n表示发生m×n型空间多位翻转的概率。检错纠错防护措施所保护的区域: 保护单元(Protection Domain,PD)在一个处理器时钟周期内发生单粒子翻转的 概率定义为PSEU_PD,并且所有时钟周期内是否发生单粒子效应是完全独立的,通 过辐射实验,得到相关数据显示1M bits的SRAM型缓存在109小时内发生单粒 子效应的次数为1150次,因此我们可以获得在3GHZ的处理器中,64位的保护 区域在一个处理器时钟周期内发生一次单粒子效应的概率是 PSEU_PD=6.4992×10-24

具有重叠效应的时空多位翻转如图2所示,1)如果存在单粒子翻转重叠效应, 那么错误位会在偶数次翻转后恢复为正确的状态;2)如果单粒子多位翻转发生 在垂直方向上的多个保护区域内,那么会导致该方向多个保护区域都发生软错 误;3)如果单粒子翻转发生在水平方向上相邻保护区域交界处,那么也会导致 这两个相邻保护区域都发生单粒子翻转效应。在考虑空间多位翻转重叠效应的情 况下,在一次单粒子效应作用下,每个保护单元PD发生1~4位翻转的概率分别 如下所示:

P=P1BUP2BUP3BUP4BU=PSEU_PD×(d1,1+2d2,1)PSEU_PD×(d1,2+2d2,2)PSEU_PD×(d1,3+2d2,3)PSEU_PD×(d1,4+2d2,4)

其中P1BU表示发生一位翻转的概率,P2BU表示发生二位翻转的概率,P3BU表 示发生三位翻转的概率,P4BU表示发生四位翻转的概率。因为在垂直方向(bit lines) 上两个邻接的保护区域发生跨行的多位翻转是相互作用的,因此1~4位的空间多 位翻转在跨行的情况下都要乘以一个系数2。进一步,这种假设可以推广到发生 k位空间多位翻转的情形下。由于发生2×4范围内空间多位翻转的概率为 99.668%,因此本文在64位保护区域内只考虑上式所列举的4种类型的空间多位 翻转是合理的,且简化了模型建立的复杂度。

由于缓存的目的是均衡处理器和内存之间速度不匹配问题,当某个保护区域 PD长时间未被访问的时候,我们认为它可能被其他数据所填充,因此我们假设 每个64位的保护区域PD在每个脆弱性时间周期VCC内发生单粒子翻转的次数 最多为两次,因为针对64位的保护字在109小时内发生三次单粒子翻转的概率为 PSEU_PD3=(64×11501Mbits)3=(64×11501024×1024)3=3.377×10-7,因此最多发生两次翻转的假 设也是合理的。由于空间多位翻转具有聚集效应,在发生一次单粒子效应后,缓 存保护区域内所出现的k位翻转都是连续的,那么如果该保护区域出现第二次q 位的单粒子效应,只有可能存在以下三种情况:重叠位等于翻转位,如图3(b) 所示;重叠位小于翻转位,如图3(c)所示;没有重叠位,如图3(d)所示。其中o 表示重叠位,q表示翻转位。

1)重叠位等于翻转位:0<o=q,如图3(b)所示,那么这种情况发生的概 率为:

P(o|q)=P(q|q)=k-q+1N-q+1

其中N表示保护区域PD的位数,由于后一次单粒子翻转的q位都落在前一 次翻转的k个连续位内,因此在这种情况下会使保护区域内软错误位的个数减少 q位。

2)重叠位小于翻转位:0<o<q,如图3(c)所示,这种情况只有两种可能, 即发生在前一次k位翻转的两端,而且无论重叠位的个数o为多少,都会使错误 位的个数变为(k-o)+(q-o)=k+q-2o,这种情况发生的概率均为:

P(o|q)=2N-q+1

3)没有重叠位:o=0,即第二次翻转发生在未翻转的区域内,如图3(d)所 示。这种情况发生的概率为前两种情况之外的剩余结果:

P(o|q)=P(0|q)=1-Σi=1qP(i|q)

其中k表示第一次单粒子效应后翻转位的个数,如图3(a)中双斜线所示,q 表示第二次单粒子效应后翻转位的个数,如图3(b)、3(c)和3(d)单斜线所示,o 表示两次单粒子翻转重叠位的个数。

至此,本文在空间多位翻转软错误类型假设的基础上,给出了各种软错误类 型出现的概率,以及存在重叠效应情况下,各种重叠效应出现的概率以及对保护 区域内软错误位个数的影响情况。不同马尔科夫状态之间的转换可以通过马尔科 夫状态转换矩阵的形式给出。在只考虑单位翻转的情况下,各状态之间转换的步 距只能为1,即MS0只能转换为MS1,更一般的形式为MSk只能转换为MSk-1(翻转 位重叠,状态减一)或MSk+1(翻转位未重叠,状态加一);当最多考虑m位空间多 位翻转PmBU的情况下,MSk在发生一次单粒子效应后,可以转换为2m+1种状态 (即MSk-m,MSk-m+1,…,MSk+m)。

根据单粒子软错误空间多位翻转的重叠效应,可以建立不同马氏状态之间的 转移矩阵。m表示在考虑空间多位翻转情况下,发生一次单粒子效应后,翻转位 个数的最大值。Tk,k+d表示一次单粒子翻转后,保护区域增加d位(d为正整数) 或减少d位(d为负整数)软错误位的概率。Tk,k表示在某个脆弱性时钟周期内 没有发生单粒子效应,或者即使发生了单粒子效应,软错误比特位的个数没有发 生变化,仍然为k位。

当缓存的保护策略含有刷新功能时,那么针对不同的刷新间隔L,MSk转变 为MS0的概率会增加1/L,其中k为防护策略能够纠正错误位的最大个数,例如 SEC最多能纠正一位软错误,而DEC,TEC分别最多能纠正2比特位和3比特 位软错误,即增加刷新策略后,转换矩阵的内容需要更新为:

同时需要更新所有的

当建立了不同马尔科夫状态之间的转换矩阵之后形成的马尔科夫链,则在某 个给定保护区域内出现d位翻转,那么从MSk到MSk+d转换所持续的时间等于这 两个状态之间转换的次数乘以处理器时钟周期,即可以得到不同状态之间转换所 需要的时间,则缓存固有的平均无故障时间MTTFintri就为从状态MS0到状态MSk转换所需要次数与处理器时钟周期之积:而整个 运行程序的平均无故障时间则为:

由模型的假设可以得出马尔科夫转换矩阵T的形式为:

T=S2m+100IN-2m

其中子矩阵S2m+1为带状矩阵,表示在两次单粒子效应下,不同状态之间可以 相互转换;IN-2m为单位矩阵,即为马氏链的吸收状态(即不可修复状态,当保 护区域处于这种状态时,只能通过重新写入数据才能进行恢复)。具有如T类型的 转换矩阵的马氏链具有N-2m个吸收状态和2m+1个非吸收状态的吸收链,由上 式可以得出:

Tn=S2m+1n00IN-2mn

其中子矩阵表示保护区域PD以任意非吸收状态作为初始状态,经过n 步转移后,仍处于非吸收状态的概率,当某一时刻马氏状态进入吸收状态,则表 明除重新载入数据以外,现有的缓存检错纠错等防护措施都将失效,即认为该缓 存区域已经处于失效状态。

考虑SEC型ECC防护措施后的缓存可靠性问题时,只要从无翻转状态MS0到 达MSk,其中k≥2就说明缓存已经处于失效状态(因为超过了SEC防护措施只能 检测单个位错误条件,因此成为不可恢复状态),即不能通过ECC防护措施来纠 正软错误。同理可以得出针对DEC和TEC到达失效状态MSk时,k分别满足k≥3 和k≥4。通过移除所有吸收状态,可以得到不同防护措施(SEC、DEC、TEC)所 对应的子矩阵T′分别为:

SEC:T=T0,0T0,1T1,0T1,1

DEC:T=T0,0T0,1T0,2T1,0T1,1T1,2T2,0T2,1T2,2

TEC:T=T0,0T0,1T0,2T0,3T1,0T1,1T1,2T1,3T2,0T2,1T2,2T2,3T3,0T3,1T3,2T3,3

具有吸收状态的马尔科夫链中,存在基矩阵F=(I-T′)-1,对于具有标准形 式T类型的转移矩阵的吸收链,已知存在以下定理:

定理1吸收链的基矩阵F中的每个元素,表示从一个非吸收状态出发,过程 到达每个非吸收状态的平均转移次数。

定理2设N=FC,F为吸收链的基矩阵,C=[1 1…1]T,则N的每个 元素表示从非吸收状态出发,到达某个吸收状态被吸收之前的平均转移次数。

根据算法1所建立起来的转换矩阵T以及定理1和定理2,可以通过非吸收 状态保持时间来计算保护区域PD的固有平均无故障时间MTTFintri,再结合不同 应用程序的AVF,可以得出不同应用程序在检错纠错防护策略和刷新策略下的 平均无故障时间MTTF。

假设随机变量m为保护区域内可以防护软错误位个数的上界;mac为系统失效 时,保护区域内已经发生软错误位的个数。当只存在单位翻转(SBU)时,mac=m; 当存在多位翻转(MBU)时,mac≥m,即多位翻转情况下,系统失效时软错误位 的个数不小于防护措施的有效检测位数。如果定义g为系统失效时,保护区域内 发生单粒子翻转的次数,则其中qi表示第i次翻转所产生的软错误 位数。那么mac的数学期望为:

E[mac]=E[Σi=1gqi]=E[g]·E[qi]

其中E[qi]表示时空多位翻转下,每次单粒子效应所产生软错误位的平均个 数,用表示,则Qeventper=E[qi]=Σj=1j·p(j)=1+Σj=2(j-1)·p(j),其中p(j) 表示发生j位翻转的概率。那么在发生单粒子软错误并使得系统失效的前提下, 存在以下关系式:E[m]E[mac]=E[g]·E[qi]=E[g]·Qeventper,即:E[g]E[m]Qeventper,由于在泊松分布下,MTTF与METF之间存在关系式:

MTTF=METFλ

其中METF=E[g],λ为软错误发生率,则:

MTTF|MBUλE[m]|MBUλ·QeventperE[m]|SBUλ·Qeventper=METF|SBUλ=MTTF|SBUλ

其中即在交错布局的防护措施下,缓存的平均无故障时间 MTTF在单位翻转和多位翻转之间存在以下关系:

MTTF|MBUλMTTF|SBUλ

由以上关系式可知,当存储单元采用了交错布局技术防护单粒子软错误时, 通过改变软错误发生率λ,就可以使用单位翻转来预估时空多位翻转下系统的平 均无故障时间MTTF下界,从而得到缓存在交错布局策略下的可靠性分析方法。

有益效果:

针对已有软错误防护措施的缓存单元,研究分析单比特位或时空多比特位单 粒子翻转后的缓存可靠性,首先对现有的AVF评估方法加以改进,以便更准确 地反映缓存单粒子效应模型.

对采用ECC以及交错布局等防护措施的缓存单元在发生软错误后的可靠性 进行综合分析.主要利用马尔科夫状态转换模型(Markov State Transition Model, MSTM)对缓存的平均无故障时间(MTTF)进行动态预测.

在对处理器缓存单元可靠性分析时,不仅考虑目前发生最多的单位翻转型软 错误(SBU),同时考虑时间多位翻转(TMBU:Temporal MBU)和空间多位翻 转(SMBU:Spatial MBU)的组合效应,也可以分析不同SPEC2000标准测试程 序的AVF差异性及其对存储单元可靠性的影响程度。

附图说明

图1为分析方法流程图;

图2为空间多位翻转重叠效应示意图;

图3为两次翻转重叠效应示意图;

图4L2Cache AVF改进值对比。

具体实施方式

针对存储单元,AVF是该存储单元在特定时钟周期内所包含ACE位的百分 比;针对逻辑结构,AVF是在特定时钟周期内处理ACE位或者指令集的百分比, 具有N位系统的AVF是各个子系统AVF的综合结果,即

AVFstructure=Σi=0N(bitwiseAVF)iN=Σi=0NACEcycleiN×totlecycles

其中AVFstructure表示分析对象的脆弱性因子;ACE cyclei表示比特位i在程序 执行过程中处于ACE状态总的时间周期数;N表示测试对象总的比特位个数; totle cycles表示程序执行总的时间周期。AVF分析的目的是对模块内的元素进行 软错误敏感性排名,以此来选择和保护最脆弱的单元。ACE分析的优势是可以 在设计阶段进行可靠性评价,且性能较快;劣势是缺少真实微处理器结构的细节 信息,并且需要手工对ACE位和un-ACE位进行分类,这就导致AVF分析的精 度及完备性等方面会有所降低。

表1回写式缓存生命周期分类

采用生命周期的方法对回写式缓存中的数据访问特性进行AVF分析时,进 一步将读操作分解为read和read*两种形式,read表示读取未被写过的数据,read*表示读取已被写过的数据;将写操作分解为write和write*两种形式,write表示 动态死指令的写操作,write*表示非动态死指令的写操作.根据读写操作的定义及 对数据的访问特性,read-to-evict判定为un-ACE,而read*-to-evict为ACE.回写 式缓存的数据阵列内某一存储位的生命周期始于空闲(idle)状态,然后被调用的 值所填充(fill),处理器后续可能对该存储位进行读操作(read/read*)或者写操作 (write/write*),最终该存储位的值退出(evict)缓存并写回到下一级存储器,之后缓 存将被新的数据重新填充(fill),缓存生命周期分类举例如图1所示.该存储位的生 命周期可以划分为以下几个不重叠的阶段:idle,fill-to-read,read-to-write, write-to-read*,read*-to-read*,read*-to-evict,evict-to-fill.针对不同缓存数据的读 写类型,可以对回写式缓存的生命周期分析进一步细化,得出更为准确的AVF 值,为单粒子软错误评估和采用何种防护措施提供更为准确的依据.

单粒子翻转中绝大多数的软错误都是单位翻转(SBU),但是随着集成电路技 术的不断发展,缓存占据了片上芯片一半以上的空间。特别是在太空应用环境中, 微处理器缓存更容易遭受高能带电粒子的撞击,此时发生时间多位翻转(即某块 区域在多个离散的时间段内,分别遭受到高能粒子撞击而发生单位或多位翻转) 和空间多位翻转(即某块区域在一次高能粒子撞击下发生多位翻转)的概率也越 来越高,最新的研究和实验表明绝大多数的空间多位翻转都具有聚集效应 [14-15],即软错误的形式会限定在一个连续的矩阵范围内,因此空间多位翻转的 模式可以表示为:

MUB=Rbits×Cbits

其中Rbits和Cbits分别表示空间多位翻转的水平字线(word lines)方向和垂直 位线(bit lines)方向上翻转位的个数。单位翻转SBU可以认为是多位翻转MBU 的特例,即1×1的矩阵。为简化模型的建立,本文只考虑 1×1,1×2,1×3,1×4,2×1,2×2,2×3,2×4等八种软错误模式,这些单粒 子翻转形式已经占据了所有翻转可能性的99.668%。

使用矩阵D=d1,1d1,2d1,3d1,4d2,1d2,2d2,3d2,4=0.8900.0590.0150.0020.0090.0130.0070.001来表示 在每个时钟周期内发生单粒子效应后,不同单粒子翻转模式发生的概率,其中 dm,n表示发生m×n型空间多位翻转的概率。检错纠错防护措施所保护的区域: 保护单元(Protection Domain,PD)在一个处理器时钟周期内发生单粒子翻转的 概率定义为PSEU_PD,并且所有时钟周期内是否发生单粒子效应是完全独立的,通 过辐射实验,得到相关数据显示1M bits的SRAM型缓存在109小时内发生单粒 子效应的次数为1150次,因此我们可以获得在3GHZ的处理器中,64位的保护 区域在一个处理器时钟周期内发生一次单粒子效应的概率是 PSEU_PD=6.4992×10-24

具有重叠效应的时空多位翻转如图2所示,1)如果存在单粒子翻转重叠效应, 那么错误位会在偶数次翻转后恢复为正确的状态;2)如果单粒子多位翻转发生 在垂直方向上的多个保护区域内,那么会导致该方向多个保护区域都发生软错 误;3)如果单粒子翻转发生在水平方向上相邻保护区域交界处,那么也会导致 这两个相邻保护区域都发生单粒子翻转效应。在考虑空间多位翻转重叠效应的情 况下,在一次单粒子效应作用下,每个保护单元PD发生1~4位翻转的概率分别 如下所示:

P=P1BUP2BUP3BUP4BU=PSEU_PD×(d1,1+2d2,1)PSEU_PD×(d1,2+2d2,2)PSEU_PD×(d1,3+2d2,3)PSEU_PD×(d1,4+2d2,4)

其中P1BU表示发生一位翻转的概率,P2BU表示发生二位翻转的概率,P3BU表 示发生三位翻转的概率,P4BU表示发生四位翻转的概率。因为在垂直方向(bit lines) 上两个邻接的保护区域发生跨行的多位翻转是相互作用的,因此1~4位的空间多 位翻转在跨行的情况下都要乘以一个系数2。进一步,这种假设可以推广到发生 k位空间多位翻转的情形下。由于发生2×4范围内空间多位翻转的概率为 99.668%,因此本文在64位保护区域内只考虑上式所列举的4种类型的空间多位 翻转是合理的,且简化了模型建立的复杂度。

由于缓存的目的是均衡处理器和内存之间速度不匹配问题,当某个保护区域 PD长时间未被访问的时候,我们认为它可能被其他数据所填充,因此我们假设 每个64位的保护区域PD在每个脆弱性时间周期VCC内发生单粒子翻转的次数 最多为两次,因为针对64位的保护字在109小时内发生三次单粒子翻转的概率为 PSEU_PD3=(64×11501Mbits)3=(64×11501024×1024)3=3.377×10-7,因此最多发生两次翻转的假 设也是合理的。由于空间多位翻转具有聚集效应,在发生一次单粒子效应后,缓 存保护区域内所出现的k位翻转都是连续的,那么如果该保护区域出现第二次q 位的单粒子效应,只有可能存在以下三种情况:重叠位等于翻转位,如图3(b) 所示;重叠位小于翻转位,如图3(c)所示;没有重叠位,如图3(d)所示。其中o 表示重叠位,q表示翻转位。

1)重叠位等于翻转位:0<o=q,如图3(b)所示,那么这种情况发生的概 率为:

P(o|q)=P(q|q)=k-q+1N-q+1

其中N表示保护区域PD的位数,由于后一次单粒子翻转的q位都落在前一 次翻转的k个连续位内,因此在这种情况下会使保护区域内软错误位的个数减少 q位。

2)重叠位小于翻转位:0<o<q,如图3(c)所示,这种情况只有两种可能, 即发生在前一次k位翻转的两端,而且无论重叠位的个数o为多少,都会使错误 位的个数变为(k-o)+(q-o)=k+q-2o,这种情况发生的概率均为:

P(o|q)=2N-q+1

3)没有重叠位:o=0,即第二次翻转发生在未翻转的区域内,如图3(d)所 示。这种情况发生的概率为前两种情况之外的剩余结果:

P(o|q)=P(0|q)=1-Σi=1qP(i|q)

其中k表示第一次单粒子效应后翻转位的个数,如图3(a)中双斜线所示,q 表示第二次单粒子效应后翻转位的个数,如图3(b)、3(c)和3(d)单斜线所示,o 表示两次单粒子翻转重叠位的个数。

至此,本文在空间多位翻转软错误类型假设的基础上,给出了各种软错误类 型出现的概率,以及存在重叠效应情况下,各种重叠效应出现的概率以及对保护 区域内软错误位个数的影响情况。不同马尔科夫状态之间的转换可以通过马尔科 夫状态转换矩阵的形式给出。在只考虑单位翻转的情况下,各状态之间转换的步 距只能为1,即MS0只能转换为MS1,更一般的形式为MSk只能转换为MSk-1(翻转 位重叠,状态减一)或MSk+1(翻转位未重叠,状态加一);当最多考虑m位空间多 位翻转PmBU的情况下,MSk在发生一次单粒子效应后,可以转换为2m+1种状态 (即MSk-m,MSk-m+1,…,MSk+m)。

根据单粒子软错误空间多位翻转的重叠效应,可以建立不同马氏状态之间的 转移矩阵,具体算法如下:

其中m表示在考虑空间多位翻转情况下,发生一次单粒子效应后,翻转位个 数的最大值。Tk,k+d表示一次单粒子翻转后,保护区域增加d位(d为正整数) 或减少d位(d为负整数)软错误位的概率。Tk,k表示在某个脆弱性时钟周期内 没有发生单粒子效应,或者即使发生了单粒子效应,软错误比特位的个数没有发 生变化,仍然为k位。

当缓存的保护策略含有刷新功能时,那么针对不同的刷新间隔L,MSk转变 为MS0的概率会增加1/L,其中k为防护策略能够纠正错误位的最大个数,例如 SEC最多能纠正一位软错误,而DEC,TEC分别最多能纠正2比特位和3比特 位软错误,即增加刷新策略后,转换矩阵的内容需要更新为:

同时需要更新所有的

当建立了不同马尔科夫状态之间的转换矩阵之后形成的马尔科夫链,则在某 个给定保护区域内出现d位翻转,那么从MSk到MSk+d转换所持续的时间等于这 两个状态之间转换的次数乘以处理器时钟周期,即可以得到不同状态之间转换所 需要的时间,则缓存固有的平均无故障时间MTTFintri就为从状态MS0到状态MSk转换所需要次数与处理器时钟周期之积:而整个 运行程序的平均无故障时间则为:

由模型的假设可以得出马尔科夫转换矩阵T的形式为:

T=S2m+100IN-2m

其中子矩阵S2m+1为带状矩阵,表示在两次单粒子效应下,不同状态之间可以 相互转换;IN-2m为单位矩阵,即为马氏链的吸收状态(即不可修复状态,当保 护区域处于这种状态时,只能通过重新写入数据才能进行恢复)。具有如T类型的 转换矩阵的马氏链具有N-2m个吸收状态和2m+1个非吸收状态的吸收链,由上 式可以得出:

Tn=S2m+1n00IN-2mn

其中子矩阵表示保护区域PD以任意非吸收状态作为初始状态,经过n 步转移后,仍处于非吸收状态的概率,当某一时刻马氏状态进入吸收状态,则表 明除重新载入数据以外,现有的缓存检错纠错等防护措施都将失效,即认为该缓 存区域已经处于失效状态。

考虑SEC型ECC防护措施后的缓存可靠性问题时,只要从无翻转状态MS0到 达MSk,其中k≥2就说明缓存已经处于失效状态(因为超过了SEC防护措施只能 检测单个位错误条件,因此成为不可恢复状态),即不能通过ECC防护措施来纠 正软错误。同理可以得出针对DEC和TEC到达失效状态NSk时,k分别满足k≥3 和k≥4。通过移除所有吸收状态,可以得到不同防护措施(SEC、DEC、TEC)所 对应的子矩阵T′分别为:

SEC:T=T0,0T0,1T1,0T1,1

DEC:T=T0,0T0,1T0,2T1,0T1,1T1,2T2,0T2,1T2,2

TEC:T=T0,0T0,1T0,2T0,3T1,0T1,1T1,2T1,3T2,0T2,1T2,2T2,3T3,0T3,1T3,2T3,3

具有吸收状态的马尔科夫链中,存在基矩阵F=(1-T′)-1,对于具有标准形 式T类型的转移矩阵的吸收链,公知存在以下定理:

定理1吸收链的基矩阵F中的每个元素,表示从一个非吸收状态出发,过程 到达每个非吸收状态的平均转移次数。

定理2设N=FC,F为吸收链的基矩阵,C=[1 1…1]T,则N的每个 元素表示从非吸收状态出发,到达某个吸收状态被吸收之前的平均转移次数。

根据算法1所建立起来的转换矩阵T以及定理1和定理2,可以通过非吸收 状态保持时间来计算保护区域PD的固有平均无故障时间MTTFintri,再结合不同 应用程序的AVF,可以得出不同应用程序在检错纠错防护策略和刷新策略下的 平均无故障时间MTTF。

假设随机变量m为保护区域内可以防护软错误位个数的上界;mac为系统失效 时,保护区域内已经发生软错误位的个数。当只存在单位翻转(SBU)时,mac=m; 当存在多位翻转(MBU)时,mac≥m,即多位翻转情况下,系统失效时软错误位 的个数不小于防护措施的有效检测位数。如果定义g为系统失效时,保护区域内 发生单粒子翻转的次数,则其中qi表示第i次翻转所产生的软错误 位数。那么mac的数学期望为:

E[mac]=E[Σi=1gqi]=E[g]·E[qi]

其中E[qi]表示时空多位翻转下,每次单粒子效应所产生软错误位的平均个 数,用表示,则Qeventper=E[qi]=Σj=1j·p(j)=1+Σj=2(j-1)·p(j),其中p(j) 表示发生j位翻转的概率。那么在发生单粒子软错误并使得系统失效的前提下, 存在以下关系式:E[m]E[mac]=E[g]·E[qi]=E[g]·Qeventper,即:E[g]E[m]Qeventper,由于在泊松分布下,MTTF与METF之间存在关系式:

MTTF=METFλ

其中METF=E[g],λ为软错误发生率,则:

MTTF|MBUλE[m]|MBUλ·QeventperE[m]|SBUλ·Qeventper=METF|SBUλ=MTTF|SBUλ

其中即在交错布局的防护措施下,缓存的平均无故障时间 MTTF在单位翻转和多位翻转之间存在以下关系:

MTTF|MBUλMTTF|SBUλ

由以上关系式可知,当存储单元采用了交错布局技术防护单粒子软错误时, 通过改变软错误发生率λ,就可以使用单位翻转来预估时空多位翻转下系统的平 均无故障时间MTTF下界,从而得到缓存在交错布局策略下的可靠性分析方法。

这里,将改进的AVF评估方法应用到通用的Sim-Alpha处理器模拟环境中, 并采用标准的SPEC2000标准测试程序对缓存的可靠性进行评估,采用参考输入 集(reference inputs)并使用SimPoints间隔50M进行取样,由于数据在L2级缓存 内使用的时间相对较长且对软错误更敏感,因此评估的焦点为L2级缓存.仿真环 境配置如表2所示。

表2仿真环境配置

图4给出本发明所提出的AVF改进方法与开源软件Sim-SODA方法的对比数 据.利用本文提出的方法将读取操作分成read和read*两种.read*-to-evict使得AVF 平均增加了1.463%,read*-to-end-to-evict使得AVF平均提高0.004%,原因在于 Sim-SODA中有37.9%的read/read*-to-evict和read/read*-to–end-evict被误判为 un-ACE,同时考虑动态死指令对“write-to-evict”阶段判定的影响,该阶段可以分 为write*-to-evict和write-to-evict两种,write*表示非动态死指令的写操作,write 表示动态死指令的写操作.write-to-evict使得AVF平均降低了2.307%,即 Sim-SODA中有32.9%的write/write*-to-evict被误判为ACE.因此利用本发明提出 的生命周期分析方法,对L2级缓存的脆弱性进行了更精确的识别。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号