本发明涉及计算机容错技术领域,具体公开了一种用于新型存储芯片的容错装置,具体涉及一种基于ldpc码的存储芯片容错装置及容错纠错方法。
背景技术:
近年来,随着云计算、大数据、物联网、移动互联网等新兴信息技术产业的蓬勃发展,数据的存储、传输和处理无论在速度上还是在规模上都是空前的。据统计,全球新产生的信息量每三年翻一番。如何将这些数据安全可靠地持久存储,其现实意义毋庸置疑。以新型固态硬盘(ssd,solidstatedrive)为代表的集成电路存储设备由于具有耐久性、低功耗、低成本、抗震动等优点而得到了工业界和学术界的密切关注,将来很有可能取代现有的磁存储系统而成为主流存储媒体。
随着存储芯片集成电路技术的不断改进和提高,单位面积或体积上分布的晶体管等元器件越来越多,电路之间的间隙越来越小,集成电路在抗辐射和抗电磁干扰等方面都会面临着严峻的考验。为了节省能源、降低功耗,存储芯片电路中往往采用低电压或动态低阶电压供应方式,当信号电平接近或低于噪声时,电路中的这些白噪声、热噪声都会导致其性能急剧下降,电路故障屡屡发生。此外,为了节约成本,片面追求利润最大化,一些芯片生产商采用不可靠的元器件(如逻辑门或存储单元),这往往会导致存储数据失效,造成不可挽回的损失。数据安全性、可靠性和耐久性是存储芯片的灵魂,而容错机制正是保障这些性能的强有力支柱。目前,国内外就集成电路的可靠性研究进入白热化阶段,各种容错技术层出不穷。在工业领域已经广泛应用的容错技术大都基于硬件电路冗余技术,然而硬件冗余的缺点在于降低了芯片单位面积上的有效利用率。为了折中冗余度和可靠性,采用传统的纠错编码(hamming码、polar码和ldpc码等)来提高芯片可靠性是一种应用前景可观的技术选择。
针对三维堆叠式立体存储结构,目前主流方法是将容错控制器嵌入到一块独立的晶圆体上,并与数据存储晶圆体集成于一体,借助晶圆体穿孔技术(tsv,through-silicon-via)访问存储单元中数据实现校验容错检测。用于纠错的校验信息存储在数据存储体中,降低了实际存储设备的利用率和吞吐量,由于每次访存数据存储单元均需要进行编译码工作,也降低了存取速度。
技术实现要素:
本发明要提供一种基于ldpc码的存储芯片容错装置及容错纠错方法,以克服现有装置存储芯片纠错性能低、延时长、空间利用率低、功耗高的问题,同时克服现有方法每次访存数据存储单元均需要进行编译码工作,也降低了存取速度的问题。
为了达到本发明的目的,本发明提供了一种基于ldpc码的存储芯片容错装置,包括构建的数据存储体和存储容错装置,所述数据存储体采用纵向垂直集成法,以数片存储晶圆为单元,堆叠在一起构成一组三维堆叠式存储体,将多组存储体分区并排种植在存储晶圆表面,连接独立的地址总线和数据总线;所述存储容错装置集成在一个独立的容错/纠错晶圆上,容错/纠错晶圆置于多组三维堆叠式存储体之上,容错/纠错晶圆与三维堆叠式存储体之间由tsv控制通道和tsv读写通道相连;所述存储容错装置包括存储单元和容错单元,地址总线一路接存储单元内的数据阵列,另一路经存储单元的控制器后分别接存储单元内的数据阵列和容错单元的检测器,数据总线接存储单元内的数据阵列;容错单元中的检测器分别接期内的校验阵列和纠错控制器,存储单元内的数据阵列和容错单元中的纠错控制器双向连接。
上述装置的容错纠错方法,包括以下步骤:
步骤一、生成ldpc码校验信息:
当某个bank中有写入数据时,纠错控制器会读取到更新后的数据,并根据ldpc码编码器生成对应的校验信息存入到容错单元中;
步骤二、接收译码数据:
ldpc码纠错控制器周期性地分批从bank中读取d位数据,从容错单元中读取相应的k位数据,构造长度为n=d+k位硬判决信息,并初始化ldpc码tanner图中变量节点。
步骤三、two-bit比特翻转译码:
针对每个变量节点,若不满足校验方程的数目达到或翻转映射函数值时,该节点的值被翻转,否则保持不变。直至所有的校验节点都满足约束或达到最大迭代次数(iter≥itermax);
步骤四、译码结果判决:
输出two-bit比特翻转译码结果,如果所有变量节点均满足校验方程,则译码成功,并转向3e)步;否则译码失败,结束本轮纠错任务;
步骤五、数据写回:
如果译码后的数据与初始化读入的数据不一致,说明存储体内保存的数据需要纠错。通过纠错单元中检测控制器识别当前bank是否有外埠系统或用户进行正常数据读写操作,采用随机避让策略等待;如果当前bank处于读写空闲状态,则将纠错后的正常数据和校验数据进行写回。
本发明采用具有超强纠错能力的低密度奇偶校验码(ldpccodes,low-densityparity-checkcodes)two-bit比特翻转译码方法,设计了一种新颖的高效实用的片上存储容错装置,以提高存储芯片的可靠性。将校验数据和纠错控制器集成到容错单元中,数据存储单元只存放系统或用户有用的信息,将存储体抽象为bsc信道(binarysymmetricchannel),每个基于ldpc码的纠错控制器周期性地从bsc信道读取信息进行译码纠错。由于two-bit比特翻转较传统硬判决方法多了一位软判决信息,能够有效地突围小陷阱集,从而降低错误平台,获得极佳的纠错性能。
本发明与现有技术相比,具有以下优点:
第一,本发明提出将实际使用的正常数据与校验数据存储分离的方法,纠错控制器通过tsv控制通道和tsv读写通道直接访存数据存储体,检测/纠错操作时尽量不影响正常数据的读写,从而提高了数据吞吐率和访问速度,特别适合cache等读频繁的存储体。
第二,本发明提出的读写检测冲突策略可以有效地避免写写冲突、读后写冲突,确保正常数据的写入后纠错电路不会对新数据造成二次污染。
第三,本发明提出的ldpc码two-bit比特翻转译码方法采用两位信息分别表示数据位的硬判决结果和译码翻转强弱,硬判决和软信息结合后可以将存储体中大多数错误达到纠正,并且将译码规则预制为表格,通过查表法快速实现译码,所保存的中间值和终值信息位简短,占用存储空间小,无需进行量化处理,便于硬件实现。
第四、本发明设计的存储容错装置具有超强纠错能力,延时短、空间利用率高、功耗低,便于电子封装,易于硬件实现,可用于高速cache、闪速内存、ssd等新型存储容错领域。
附图说明
图1为本发明提出的存储容错原理框图;
图2为本发明提出的数据存储体的结构示意图;
图3为本发明方法的流程图;
图4为本发明中使用的译码方法与其他译码方法的性能比较图。
具体实施方式
下面将结合附图和实施例对本发明进行详细地说明。
本发明给出的技术思路是:(1)装置是采用tsv纵向垂直集成技术将正常数据存储载体晶圆和纠错控制载体晶圆构成三维堆叠式存储单位,纠错控制晶圆承载容错校验数据和纠错控制单元,并且共享正常数据存储体的地址、数据和控制总线;(2)方法是纠错控制器定时读取正常数据和容错数据,进行基于ldpc码的two-bit比特翻转译码,若译码成功,则进行纠错数据回写操作,否则结束译码;(3)进行读写冲突检测,若无冲突,立即将纠错后的正确数据分别回写到存储单元和校验单元中,否则启用避让策略,继续等待,直至数据成功回写或冲突检测失败。
参见图1和图2,一种基于ldpc码的存储芯片容错装置,包括构建的数据存储体和存储容错装置。
所述数据存储体采用纵向垂直集成法,以数片存储晶圆为单元,堆叠在一起构成一组三维堆叠式存储体,每片存储晶圆的存储容量为1024位,称之为一个bank,将多组存储体分区并排种植在存储晶圆表面,连接独立的地址总线和数据总线;
所述存储容错装置包括存储单元和容错单元,集成到一个独立的容错/纠错晶圆上,容错/纠错晶圆置于多组三维堆叠式存储体之上,容错/纠错晶圆与三维堆叠式存储体之间由tsv控制通道和tsv读写通道相连,所述存储容错装置中,地址总线一路接存储单元内的数据阵列,另一路经存储单元的控制器后分别接存储单元内的数据阵列和容错单元的检测器,数据总线接存储单元内的数据阵列;容错单元中的检测器分别接期内的校验阵列和纠错控制器,存储单元内的数据阵列和容错单元中的纠错控制器双向连接。外埠系统或用户、纠错控制器可以并行读取存储体中数据。
参见图3,本发明提供的容错/纠错方法,具体实现步骤如下:
步骤一、生成ldpc码校验信息:
当某个bank中有写入数据时,纠错控制器会读取到更新后的数据,并根据ldpc码编码器生成对应的校验信息存入到容错单元中;
步骤二、接收译码数据:
每次从数据阵列读取d位信息,从读取k为信息,构成长度为n=d+k的硬判决向量
ldpc码纠错控制器周期性地分批从bank中读取d位数据,从容错单元的校验阵列中读取相应的k位数据,构造长度为n=d+k位硬判决信息,r=(r1,r2,…,rn),则对应ldpc码two-bit比特译码器输入向量为y=(y1,y2,…,yn),
初始化ldpc码tanner图中变量节点:每个变量节点信息由两位组成,如果硬判决信息为0,则该变量节点初始化为01,否则初始化为11;
步骤三,two-bit比特翻转译码:
令two-bit比特翻转译码状态集b={00,01,10,11},对于每个变量节点i,不满足校验节点方程数设为
若节点i初始化信息为00,不满足校验方程数为2,则通过查上表可知,当前译码结果为11,即该节点信息比特以较强的可靠性进行翻转。
步骤四,译码结果判决:
输出two-bit比特翻转译码结果x=(x1,x2,…,xn),如果所有变量节点均满足校验方程,则译码成功,并转向步骤五;如果任一节点不满足校验节点数量
步骤五,纠错数据写回:
4a)数据回写判断
使用异或比较器计算
4b)读写冲突检测
如果正常读取占用总线,纠错控制器随机推迟0.5~1个读时钟周期后继续等待,如遇正常数据写入操作,则纠错结束;
4c)通过反向读写控制机构将x=(x1,x2,…,xn)对应比特信息分别写入到数据阵列和校验阵列之中。
纠错结束。
本发明的效果可通过对具体实施例的仿真进一步说明:
1.仿真条件
将存储阵列抽象为二元对称信道bsc,译码器输入信息使用硬判决结果,未进行调制,仿真采用的码是(1280,256)规则ldpc码,码率为0.8,其变量节点度为3。
仿真设置译码器的最大迭代次数itermax为15。
2.仿真内容
在bsc信道下,分别用未经任何编码处理的原始结果、多组64bit数据+8bit校验位的海明纠错以及本发明提出的ldpc码纠错方法的纠错性能进行了仿真,结果如图4所示。
图4中给出了4条曲线,其中:
带圆点的曲线表示未经任何编码处理的误码曲线;
带三角形的曲线表示采用海明纠错译码方法得到的误码性能仿真曲线;
带方框的曲线表示在bsc信道下,基于ldpc码传统比特译码方法的纠错性能仿真曲线。
带短线的曲线表示在bsc信道下,采用two-bit比特译码方法的纠错性能仿真曲线。
从图4中可以看出,本发明与其他译码方法相比,采用传统ldpc码比特译码和改进的two-bit比特译码方法在低交错概率区域具有较好的误码性能,错误平台较低。在交错概率小于10-3时,本发明译码方法的误码率达到10-4,比传统比特翻转译码的误码率至少低1个数量级。
以上仿真仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的思想和原则之内,所做的等同替换和更新改进等,均应包含在本发明的范围之内。