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

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

Info

Publication number
CN104035834A
CN104035834A CN201410311754.9A CN201410311754A CN104035834A CN 104035834 A CN104035834 A CN 104035834A CN 201410311754 A CN201410311754 A CN 201410311754A CN 104035834 A CN104035834 A CN 104035834A
Authority
CN
China
Prior art keywords
time
upset
error
bit
soft error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410311754.9A
Other languages
English (en)
Other versions
CN104035834B (zh
Inventor
汪芸
王辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201410311754.9A priority Critical patent/CN104035834B/zh
Publication of CN104035834A publication Critical patent/CN104035834A/zh
Application granted granted Critical
Publication of CN104035834B publication Critical patent/CN104035834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

一种考虑防护措施的缓存可靠性分析方法
技术领域
本发明涉及计算机领域的处理器存储单元中的抗单粒子软错误,特别是能够对采用了单位检错(Single Error Correction,SEC)、双位检错(Double ErrorCorrection,DEC)等检错纠错码ECC(Error Correction Code)及交错布局防护措施的缓存单元的可靠性进行分析,可以对处理器抗单粒子软错误均衡容错设计提供理论依据。
背景技术
随着半导体技术的飞速发展,集成电路制造工艺不断向超深亚微米发展,芯片印刷电路板的组装密度不断增大、供电电压不断降低以及时钟频率的提高等原因导致微处理器发生单粒子翻转(Single Event Upset,SEU)的概率大大提升。特别是处于太空环境下的卫星系统更容易遭受高能带电粒子的撞击,使卫星系统的存储位或逻辑位发生单位翻转(Single Bit Upset,SBU)或多位翻转(Multi BitUpset,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(ArchitecturallyCorrect Execution)、软错误非敏感位UnACE和未知位Unknown三种类型,确定指令生命周期内哪些位的软错误是敏感的;之后,计算体系结构脆弱性因子AVF
AVF structure = Σ i = 0 N ( bitwiseAVF ) i N = Σ i = 0 N ACE cycle i N × 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 = MTTF intri AVF
第三步,考虑交错布局的时空多位翻转分析:在交错布局的防护措施下,通过单位翻转无故障时间来对多位翻转平均无故障时间的下界的情况进行预估分析,将软错误发生率λ转化为单位翻转软错误发生率其中为每次单粒子效应所产生软错误位的平均个数, Q event per = E [ q i ] = Σ j = 1 ∞ j · 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 = d 1,1 d 1,2 d 1,3 d 1,4 d 2,1 d 2,2 d 2,3 d 2,4 = 0.890 0.059 0.015 0.002 0.009 0.013 0.007 0.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 = P 1 BU P 2 BU P 3 BU P 4 BU = P SEU _ PD × ( d 1,1 + 2 d 2,1 ) P SEU _ PD × ( d 1,2 + 2 d 2,2 ) P SEU _ PD × ( d 1,3 + 2 d 2,3 ) P SEU _ PD × ( d 1,4 + 2 d 2,4 )
其中P1BU表示发生一位翻转的概率,P2BU表示发生二位翻转的概率,P3BU表示发生三位翻转的概率,P4BU表示发生四位翻转的概率。因为在垂直方向(bit lines)上两个邻接的保护区域发生跨行的多位翻转是相互作用的,因此1~4位的空间多位翻转在跨行的情况下都要乘以一个系数2。进一步,这种假设可以推广到发生k位空间多位翻转的情形下。由于发生2×4范围内空间多位翻转的概率为99.668%,因此本文在64位保护区域内只考虑上式所列举的4种类型的空间多位翻转是合理的,且简化了模型建立的复杂度。
由于缓存的目的是均衡处理器和内存之间速度不匹配问题,当某个保护区域PD长时间未被访问的时候,我们认为它可能被其他数据所填充,因此我们假设每个64位的保护区域PD在每个脆弱性时间周期VCC内发生单粒子翻转的次数最多为两次,因为针对64位的保护字在109小时内发生三次单粒子翻转的概率为 P SEU _ PD 3 = ( 64 × 1150 1 Mbits ) 3 = ( 64 × 1150 1024 × 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 + 1 N - 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 ) = 2 N - q + 1
3)没有重叠位:o=0,即第二次翻转发生在未翻转的区域内,如图3(d)所示。这种情况发生的概率为前两种情况之外的剩余结果:
P ( o | q ) = P ( 0 | q ) = 1 - Σ i = 1 q P ( 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 = S 2 m + 1 0 0 I N - 2 m
其中子矩阵S2m+1为带状矩阵,表示在两次单粒子效应下,不同状态之间可以相互转换;IN-2m为单位矩阵,即为马氏链的吸收状态(即不可修复状态,当保护区域处于这种状态时,只能通过重新写入数据才能进行恢复)。具有如T类型的转换矩阵的马氏链具有N-2m个吸收状态和2m+1个非吸收状态的吸收链,由上式可以得出:
T n = S 2 m + 1 n 0 0 I N - 2 m n
其中子矩阵表示保护区域PD以任意非吸收状态作为初始状态,经过n步转移后,仍处于非吸收状态的概率,当某一时刻马氏状态进入吸收状态,则表明除重新载入数据以外,现有的缓存检错纠错等防护措施都将失效,即认为该缓存区域已经处于失效状态。
考虑SEC型ECC防护措施后的缓存可靠性问题时,只要从无翻转状态MS0到达MSk,其中k≥2就说明缓存已经处于失效状态(因为超过了SEC防护措施只能检测单个位错误条件,因此成为不可恢复状态),即不能通过ECC防护措施来纠正软错误。同理可以得出针对DEC和TEC到达失效状态MSk时,k分别满足k≥3和k≥4。通过移除所有吸收状态,可以得到不同防护措施(SEC、DEC、TEC)所对应的子矩阵T′分别为:
SEC : T ′ = T 0,0 T 0,1 T 1,0 T 1,1
DEC : T ′ = T 0,0 T 0,1 T 0,2 T 1,0 T 1,1 T 1,2 T 2,0 T 2,1 T 2,2
TEC : T ′ = T 0,0 T 0,1 T 0,2 T 0,3 T 1,0 T 1,1 T 1,2 T 1,3 T 2,0 T 2,1 T 2,2 T 2,3 T 3,0 T 3,1 T 3,2 T 3,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 [ m ac ] = E [ Σ i = 1 g q i ] = E [ g ] · E [ q i ]
其中E[qi]表示时空多位翻转下,每次单粒子效应所产生软错误位的平均个数,用表示,则 Q event per = E [ q i ] = Σ j = 1 ∞ j · p ( j ) = 1 + Σ j = 2 ∞ ( j - 1 ) · p ( j ) , 其中p(j)表示发生j位翻转的概率。那么在发生单粒子软错误并使得系统失效的前提下,存在以下关系式: E [ m ] ≤ E [ m ac ] = E [ g ] · E [ q i ] = E [ g ] · Q event per , 即: E [ g ] ≥ E [ m ] Q event per , 由于在泊松分布下,MTTF与METF之间存在关系式:
MTTF = METF λ
其中METF=E[g],λ为软错误发生率,则:
MTTF | MBU λ ≥ E [ m ] | MBU λ · Q event per ≥ E [ m ] | SBU λ · Q event per = 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的综合结果,即
AVF structure = Σ i = 0 N ( bitwiseAVF ) i N = Σ i = 0 N ACEcycl e i N × 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 = d 1,1 d 1,2 d 1,3 d 1,4 d 2,1 d 2,2 d 2,3 d 2,4 = 0.890 0.059 0.015 0.002 0.009 0.013 0.007 0.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 = P 1 BU P 2 BU P 3 BU P 4 BU = P SEU _ PD × ( d 1,1 + 2 d 2,1 ) P SEU _ PD × ( d 1,2 + 2 d 2,2 ) P SEU _ PD × ( d 1,3 + 2 d 2,3 ) P SEU _ PD × ( d 1,4 + 2 d 2,4 )
其中P1BU表示发生一位翻转的概率,P2BU表示发生二位翻转的概率,P3BU表示发生三位翻转的概率,P4BU表示发生四位翻转的概率。因为在垂直方向(bit lines)上两个邻接的保护区域发生跨行的多位翻转是相互作用的,因此1~4位的空间多位翻转在跨行的情况下都要乘以一个系数2。进一步,这种假设可以推广到发生k位空间多位翻转的情形下。由于发生2×4范围内空间多位翻转的概率为99.668%,因此本文在64位保护区域内只考虑上式所列举的4种类型的空间多位翻转是合理的,且简化了模型建立的复杂度。
由于缓存的目的是均衡处理器和内存之间速度不匹配问题,当某个保护区域PD长时间未被访问的时候,我们认为它可能被其他数据所填充,因此我们假设每个64位的保护区域PD在每个脆弱性时间周期VCC内发生单粒子翻转的次数最多为两次,因为针对64位的保护字在109小时内发生三次单粒子翻转的概率为 P SEU _ PD 3 = ( 64 × 1150 1 Mbits ) 3 = ( 64 × 1150 1024 × 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 + 1 N - 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 ) = 2 N - q + 1
3)没有重叠位:o=0,即第二次翻转发生在未翻转的区域内,如图3(d)所示。这种情况发生的概率为前两种情况之外的剩余结果:
P ( o | q ) = P ( 0 | q ) = 1 - Σ i = 1 q P ( 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 = S 2 m + 1 0 0 I N - 2 m
其中子矩阵S2m+1为带状矩阵,表示在两次单粒子效应下,不同状态之间可以相互转换;IN-2m为单位矩阵,即为马氏链的吸收状态(即不可修复状态,当保护区域处于这种状态时,只能通过重新写入数据才能进行恢复)。具有如T类型的转换矩阵的马氏链具有N-2m个吸收状态和2m+1个非吸收状态的吸收链,由上式可以得出:
T n = S 2 m + 1 n 0 0 I N - 2 m n
其中子矩阵表示保护区域PD以任意非吸收状态作为初始状态,经过n步转移后,仍处于非吸收状态的概率,当某一时刻马氏状态进入吸收状态,则表明除重新载入数据以外,现有的缓存检错纠错等防护措施都将失效,即认为该缓存区域已经处于失效状态。
考虑SEC型ECC防护措施后的缓存可靠性问题时,只要从无翻转状态MS0到达MSk,其中k≥2就说明缓存已经处于失效状态(因为超过了SEC防护措施只能检测单个位错误条件,因此成为不可恢复状态),即不能通过ECC防护措施来纠正软错误。同理可以得出针对DEC和TEC到达失效状态NSk时,k分别满足k≥3和k≥4。通过移除所有吸收状态,可以得到不同防护措施(SEC、DEC、TEC)所对应的子矩阵T′分别为:
SEC : T ′ = T 0,0 T 0,1 T 1,0 T 1,1
DEC : T ′ = T 0,0 T 0,1 T 0,2 T 1,0 T 1,1 T 1,2 T 2,0 T 2,1 T 2,2
TEC : T ′ = T 0,0 T 0,1 T 0,2 T 0,3 T 1,0 T 1,1 T 1,2 T 1,3 T 2,0 T 2,1 T 2,2 T 2,3 T 3,0 T 3,1 T 3,2 T 3,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 [ m ac ] = E [ Σ i = 1 g q i ] = E [ g ] · E [ q i ]
其中E[qi]表示时空多位翻转下,每次单粒子效应所产生软错误位的平均个数,用表示,则 Q event per = E [ q i ] = Σ j = 1 ∞ j · p ( j ) = 1 + Σ j = 2 ∞ ( j - 1 ) · p ( j ) , 其中p(j)表示发生j位翻转的概率。那么在发生单粒子软错误并使得系统失效的前提下,存在以下关系式: E [ m ] ≤ E [ m ac ] = E [ g ] · E [ q i ] = E [ g ] · Q event per , 即: E [ g ] ≥ E [ m ] Q event per , 由于在泊松分布下,MTTF与METF之间存在关系式:
MTTF = METF λ
其中METF=E[g],λ为软错误发生率,则:
MTTF | MBU λ ≥ E [ m ] | MBU λ · Q event per ≥ E [ m ] | SBU λ · Q event per = 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级缓存的脆弱性进行了更精确的识别。

Claims (1)

1.一种考虑防护措施的缓存可靠性分析方法,其特征在于,包括以下步骤:
第一步,进行体系结构脆弱性因子AVF计算:首先根据缓存进行的读写操作将缓存划分为软错误敏感位ACE、软错误非敏感位UnACE和未知位Unknown三种类型,确定指令生命周期内哪些位的软错误是敏感的;之后,计算体系结构脆弱性因子AVF
AVF structure = Σ i = 0 N ( bitwiseAVF ) i N = Σ i = 0 N ACE cycle i N × totlecycles
其中AVFstructure表示分析对象的脆弱性因子;ACE cyclei表示比特位i在程序执行过程中处于ACE状态总的时间周期数;N表示测试对象总的比特位个数;totle cycles表示程序执行总的时间周期;
第二步,进行粒子翻转软错误效应分析:通过马尔科夫状态转换关系来分析存储系统的可靠性,具体方法如下:
为不同的单位翻转、多位翻转建立不同的马尔科夫状态之间的转换矩阵,形成马尔科夫链,缓存固有的平均无故障时间MTTFintri就为从状态MS0到状态MSk转换所需要次数与处理器时钟周期cycle之积:而整个运行程序的平均无故障时间则为: MTTF = MTTF intri AVF
第三步,考虑交错布局的时空多位翻转分析:在交错布局的防护措施下,通过单位翻转无故障时间来对多位翻转平均无故障时间的下界的情况进行预估分析,将软错误发生率λ转化为单位翻转软错误发生率其中为每次单粒子效应所产生软错误位的平均个数, Q event per = E [ q i ] = Σ j = 1 ∞ j · p ( j ) = 1 + Σ j = 2 ∞ ( j - 1 ) · p ( j ) , qi表示第i次翻转所产生的软错误位数,p(j)表示发生j位翻转的概率,将单位翻转无故障时间带入第二步,代替缓存固有的平均无故障时间MTTFintri,得到缓存在交错布局策略下的可靠性
CN201410311754.9A 2014-07-02 2014-07-02 一种考虑防护措施的缓存可靠性分析方法 Active CN104035834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410311754.9A CN104035834B (zh) 2014-07-02 2014-07-02 一种考虑防护措施的缓存可靠性分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410311754.9A CN104035834B (zh) 2014-07-02 2014-07-02 一种考虑防护措施的缓存可靠性分析方法

Publications (2)

Publication Number Publication Date
CN104035834A true CN104035834A (zh) 2014-09-10
CN104035834B CN104035834B (zh) 2017-02-15

Family

ID=51466608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410311754.9A Active CN104035834B (zh) 2014-07-02 2014-07-02 一种考虑防护措施的缓存可靠性分析方法

Country Status (1)

Country Link
CN (1) CN104035834B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068931A (zh) * 2015-08-21 2015-11-18 西安空间无线电技术研究所 一种分析dsp软件系统的单粒子软错误可靠性计算方法
CN105406940A (zh) * 2015-10-22 2016-03-16 西安电子科技大学 一种基于关键变量的冗余纠错码防护方法
CN107862111A (zh) * 2017-10-19 2018-03-30 湖南斯北图科技有限公司 一种评估系统单粒子功能失效率的传播分析方法
CN108234213A (zh) * 2018-01-03 2018-06-29 上海海事大学 一种片上网络结构级的软错误在线评估方法
CN108832990A (zh) * 2018-06-08 2018-11-16 上海微小卫星工程中心 一种针对实时通信设备的空间单粒子效应即时恢复方法
CN109815104A (zh) * 2019-02-02 2019-05-28 吉林大学 基于软错误感知的gpgpu程序近似分析系统及方法
CN115297071A (zh) * 2022-07-15 2022-11-04 中国航空无线电电子研究所 一种arinc664交换机交换引擎对seu和mbu容错设计方法
CN115421967A (zh) * 2022-11-04 2022-12-02 中国电力科学研究院有限公司 一种评估二次设备存储异常风险点的方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716211A (zh) * 2004-07-02 2006-01-04 中国科学院上海微系统与信息技术研究所 数据差错检测和纠正用的交叉正反编码结构和解码的方法
CN100452059C (zh) * 2005-12-14 2009-01-14 上海微小卫星工程中心 智能全自动单粒子事件故障注入器的注入方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105068931B (zh) * 2015-08-21 2020-07-14 西安空间无线电技术研究所 一种分析dsp软件系统的单粒子软错误可靠性计算方法
CN105068931A (zh) * 2015-08-21 2015-11-18 西安空间无线电技术研究所 一种分析dsp软件系统的单粒子软错误可靠性计算方法
CN105406940A (zh) * 2015-10-22 2016-03-16 西安电子科技大学 一种基于关键变量的冗余纠错码防护方法
CN105406940B (zh) * 2015-10-22 2018-09-28 西安电子科技大学 一种基于关键变量的冗余纠错码防护方法
CN107862111A (zh) * 2017-10-19 2018-03-30 湖南斯北图科技有限公司 一种评估系统单粒子功能失效率的传播分析方法
CN107862111B (zh) * 2017-10-19 2021-05-14 湖南斯北图科技有限公司 一种评估系统单粒子功能失效率的传播分析方法
CN108234213A (zh) * 2018-01-03 2018-06-29 上海海事大学 一种片上网络结构级的软错误在线评估方法
CN108234213B (zh) * 2018-01-03 2020-12-29 上海海事大学 一种片上网络结构级的软错误在线评估方法
CN108832990A (zh) * 2018-06-08 2018-11-16 上海微小卫星工程中心 一种针对实时通信设备的空间单粒子效应即时恢复方法
CN109815104A (zh) * 2019-02-02 2019-05-28 吉林大学 基于软错误感知的gpgpu程序近似分析系统及方法
CN115297071A (zh) * 2022-07-15 2022-11-04 中国航空无线电电子研究所 一种arinc664交换机交换引擎对seu和mbu容错设计方法
CN115297071B (zh) * 2022-07-15 2023-10-27 中国航空无线电电子研究所 一种arinc664交换机交换引擎对seu和mbu容错设计方法
CN115421967A (zh) * 2022-11-04 2022-12-02 中国电力科学研究院有限公司 一种评估二次设备存储异常风险点的方法及系统
CN115421967B (zh) * 2022-11-04 2022-12-30 中国电力科学研究院有限公司 一种评估二次设备存储异常风险点的方法及系统

Also Published As

Publication number Publication date
CN104035834B (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
Kim et al. Revisiting rowhammer: An experimental analysis of modern dram devices and mitigation techniques
CN104035834B (zh) 一种考虑防护措施的缓存可靠性分析方法
Hassan et al. Uncovering in-dram rowhammer protection mechanisms: A new methodology, custom rowhammer patterns, and implications
Lee et al. Design-induced latency variation in modern DRAM chips: Characterization, analysis, and latency reduction mechanisms
Mutlu The RowHammer problem and other issues we may face as memory becomes denser
Cha et al. Defect analysis and cost-effective resilience architecture for future DRAM devices
Patel et al. Bit-exact ECC recovery (BEER): Determining DRAM on-die ECC functions by exploiting DRAM data retention characteristics
Yağlıkçı et al. Understanding rowhammer under reduced wordline voltage: An experimental study using real dram devices
Mutlu et al. Fundamentally understanding and solving rowhammer
Wilkening et al. Calculating architectural vulnerability factors for spatial multi-bit transient faults
Ponzina et al. E 2 cnns: Ensembles of convolutional neural networks to improve robustness against memory errors in edge-computing devices
Farbeh et al. RAW-Tag: Replicating in altered cache ways for correcting multiple-bit errors in tag array
Ahilan et al. Design for built-in FPGA reliability via fine-grained 2-D error correction codes
Jeong et al. PAIR: Pin-aligned In-DRAM ECC architecture using expandability of Reed-Solomon code
Jian et al. Analyzing reliability of memory sub-systems with double-chipkill detect/correct
Gong et al. DRAM scaling error evaluation model using various retention time
Chen et al. CARE: Coordinated augmentation for elastic resilience on DRAM errors in data centers
Lee et al. ECMO: ECC Architecture Reusing Content-Addressable Memories for Obtaining High Reliability in DRAM
Gupta et al. Reliability and performance trade-off study of heterogeneous memories
Longofono et al. Predicting and mitigating single-event upsets in DRAM using HOTH
Farbeh et al. CLEAR: Cache lines error accumulation reduction by exploiting invisible accesses
Kim et al. Unity ECC: Unified Memory Protection Against Bit and Chip Errors
Jung et al. Predicting Future-System Reliability with a Component-Level DRAM Fault Model
Wang et al. Improving 3D DRAM fault tolerance through weak cell aware error correction
BanaiyanMofrad et al. Protecting caches against multi-bit errors using embedded erasure coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant