一种双模式检错内存及双模式检错方法与流程

文档序号:17943450发布日期:2019-06-18 23:20阅读:237来源:国知局
一种双模式检错内存及双模式检错方法与流程

本发明涉及存储技术,尤其涉及一种双模式检错内存的方法。



背景技术:

缓存装置和内存装置作为数据的缓冲区,是一些复杂硬件系统的正常工作的基础条件之一。其承担着缓冲数据的职能,与任何存储器一样,必须确保存储是可靠的并且不会变得不稳定(例如sram上由于电压突波或存储单元损坏导致的数据错误)。因此,存储必须与检错(和纠错)机制相关联。

一般的纠错机制包括奇偶校验和扩展汉明码,其中奇偶校验较为简单,且省电,可以满存储设备的一般检错需求,扩展汉明码由扩展汉明编码机制生成编码表,其具有检错和纠错双功能,但其较为复杂,且耗电大。

目前存储设备上都采用的是一种纠错机制,但是存储设备在使用初期出错的概率很低,若采用较为复杂的纠错机制会导致资源浪费,而在寿命尾期,其出错的概率大大增加,较为简单的纠错机制无法及时检错,导致设备频繁重启而出现崩溃的情况。



技术实现要素:

本发明的目的在于克服现有技术的缺陷,提供一种双模式检错内存,同时引入奇偶校验和扩展汉明码,采用纠错码切换标志来实现两种模式的切换,满足使用需求同时提升纠错率,避免设备频繁重启。

为实现上述目的,本发明提出如下技术方案:一种双模式检错内存,包括:

一指令处理模块,与外部电路进行通信,接收外部电路发送过来的新指令,其内部设有纠错码切换标志switch_flag,所述纠错码切换标志具有0和1两种状态,0表示选择奇偶校验码,1表示选择扩展汉明码:

一存储模块,存储有物理字;

一控制信号模块,分别与指令处理模块及存储模块连接,根据指令处理模块发送的控制信号,控制存储模块进行存储或读取操作,同时反馈完成信号给指令处理模块;

一编码模块,分别与指令处理模块及存储模块连接,对指令处理模块输入的逻辑字编码,生成对应的纠错码与逻辑字组成物理字送入存储模块;

一译码模块,分别与指令处理模块及存储模块连接,从存储模块中读取物理字进行查错或纠错生成纠错码,将解码后的逻辑字和纠错码传送给指令处理模块。

优选的,所述物理字包括逻辑字和纠错码。

优选的,所述纠错码为奇偶校验位和扩展汉明码。

一种双模式检错方法,包括如下内容:

a、指令处理模块中检测纠错码切换标志switch_flag的值,若纠错码切换标志为0,采用奇偶校验码作为纠错码,指令处理模块进行正常读写操作,运行步骤b,若纠错码切换标志为1,采用扩展汉明码作为纠错码,指令处理模块进行读写操作,运行步骤g;

b、若指令处理模块接收到写指令,将写指令中的控制信号发送给控制信号模块控制存储模块,而写指令中的逻辑字送入编码模块中;

c、编码模块对逻辑字进行编码生成对应的奇偶校验位,然后将原始逻辑字和对应的奇偶校验位组合成物理字写入存储模块;

d、若指令处理模块接收到读指令,将读指令中的控制信号送给控制信号模块控制存储模块,同时译码模块读取存储模块中相应的物理字;

e、译码模块对读取的物理字进行译码,输出检错结果及数据字给指令处理模块;

f、指令处理模块根据检错结果判断是否存在错误,若不存在错误就将读取的数据字送出,若存在错误,则将纠错码标志位switch_flag设为1,返回步骤a;

g、若指令处理模块接收到写指令,将写指令中的控制信号发送给控制信号模块控制存储模块,而写指令中的逻辑字送入编码模块中;

h、编码模块对逻辑字进行编码生成对应的奇偶校验位,然后将原始逻辑字和对应的奇偶校验位组合成物理字写入存储模块;

i、若指令处理模块接收到读指令,将读指令中的控制信号送给控制信号模块控制存储模块,同时译码模块读取存储模块中相应的物理字;

j、译码模块对读取的物理字进行译码,同时利用扩展汉明码进行纠错,输出检错结果及纠错后的数据字给指令处理模块;

k、指令处理模块将读取的数据字送出,返回步骤a。

优选的,所述步骤b、g中控制信号包括写信号及地址信号,而步骤d、i中控制信号包括读信号及地址信号。

与现有技术相比,本发明所揭示的一种双模式检错内存,具有如下有益效果:

同时引入奇偶校验位和扩展汉明码两种纠错机制,配合纠错码切换标志,在存储器寿命前期不易出错的阶段,通过奇偶校验这种简单的检错机制来满足数据安全性要求,同时可以达到省电和降低周期内存储器的延迟,而在寿命后期出现错误后,就切换至扩展汉明码机制,实现对存储器同步检错和纠错,有效避免存储错误扩散导致系统崩溃。

附图说明

图1是本发明实施例中内存的模块图;

图2是本发明实施例中组织物理字的框图;

图3是本发明实施例中检错流程。

具体实施方式

下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。

如图1所示,本发明所揭示的一种双模式检错内存,包括指令处理模块,存储模块,控制信号模块,编码模块及译码模块,其中:

指令处理模块,与外部电路进行通信,接收外部电路发送过来的读写指令,该指令处理模块中设置了纠错码切换标志switch_flag来选择采用何种纠错机制,该纠错码切换标志具有0和1两个状态,0表示选择奇偶校验位,而1表示选择扩展汉明码。

所述存储模块用于存储电路中的相关指令信息。

所述控制信号模块分别与指令处理模块及存储模块连接,根据指令处理模块发送的控制信号(包括读/写,地址),控制存储模块进行存储或读取操作,同时反馈完成信号(包括读完成和地址)给指令处理模块。

所述编码模块分别与指令处理模块及存储模块连接,对指令处理模块输入的逻辑字进行编码,生成对应的奇偶校验位与逻辑字组成物理字送入存储模块;

所述译码模块分别与指令处理模块及存储模块连接,从存储模块中读取物理字进行译码,输出经过检错或纠错的数据字及其检错结果(有0/1/2比特出错),若当前内存的纠错机制为奇偶校验码,译码模块仅仅对物理字进行检错,而若当前内存的纠错机制为扩展汉明码,则译码模块除了对物理字进行检错,同时还进行纠错处理,生成纠错码连同逻辑字送入指令处理模块。

如图2所示,存储模块中物理字总共13位,包括8位数据位(d0~d7),4位纠错码(h0~h3)及1位奇偶校验位(p)。

当纠错机制为奇偶校验位时,13位物理字中位b0~b7为逻辑字的位d0~d7,位b8~b11保持为零;位b12为奇偶校验位p。

当纠错机制为扩展汉明码,在这种情况下:

13位物理字中位b0~b7为逻辑字的位d0~d7,位b8~b11为纠错码的位h0~h3;位b12为奇偶校验位p。

在上面的13位物理字和8位逻辑字的示例中,编码效率仅为0.615,然而,汉明码的特点是随逻辑字长度增加,编码效率亦随之提高,同时维持检错与纠错能力不变。例如64位逻辑字对应72位物理字时,编码效率达到0.889。而纠错码的选择取决于指令处理模块内部存储的纠错码切换标志,事实上,取决于存储模块的健康状况。

如图3所示,本发明揭示一种双模式检错方法,包括如下内容:

a、指令处理模块中检测纠错码切换标志switch_flag的值,若纠错码切换标志为0,采用奇偶校验码作为纠错码,指令处理模块进行正常读写操作,运行步骤b,若纠错码切换标志为1,采用扩展汉明码作为纠错码,指令处理模块进行读写操作,运行步骤g;

b、若指令处理模块接收到写指令,将写指令中的控制信号发送给控制信号模块控制存储模块,而写指令中的逻辑字送入编码模块中;

c、编码模块对逻辑字进行编码生成对应的奇偶校验位,然后将原始逻辑字和对应的奇偶校验位组合成物理字写入存储模块;

d、若指令处理模块接收到读指令,将读指令中的控制信号送给控制信号模块控制存储模块,同时译码模块读取存储模块中相应的物理字;

e、译码模块对读取的物理字进行译码,输出检错结果及数据字给指令处理模块;

f、指令处理模块根据检错结果判断是否存在错误,若不存在错误就将读取的数据字送出,若存在错误,则将纠错码标志位switch_flag设为1,返回步骤a;

g、若指令处理模块接收到写指令,将写指令中的控制信号发送给控制信号模块控制存储模块,而写指令中的逻辑字送入编码模块中;

h、编码模块对逻辑字进行编码生成对应的奇偶校验位,然后将原始逻辑字和对应的奇偶校验位组合成物理字写入存储模块;

i、若指令处理模块接收到读指令,将读指令中的控制信号送给控制信号模块控制存储模块,同时译码模块读取存储模块中相应的物理字;

j、译码模块对读取的物理字进行译码,同时利用扩展汉明码进行纠错,输出检错结果及纠错后的数据字给指令处理模块;

k、指令处理模块将读取的数据字送出,返回步骤a。

所述步骤b、g中控制信号包括写信号及地址信号,而步骤d、i中控制信号包括读信号及地址信号。

本发明改进了ecc存储器中纠错码的方式,使其在存储设备的正常使用周期,用更省电并且低延迟的奇偶校验纠错机制满足存储设备的检错需求;对于存储设备误码率大大提高的寿命尾期,使用具有单错校正双错检测能力的扩展汉明码纠错方法来保护数据。

本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1