本发明专利技术公开了一种用于固态硬盘主控缓存数据双重保护的系统,包括主机模块、控制器模块、闪存设备;所述控制器模块包括控制器缓存;主机模块,用于将原始数据存储于主机的内存的,并发消息通知控制器模块;控制器模块,与所述主机模块连接,用于接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;闪存设备,与所述控制器模块连接,用于存储控制器模块写入的数据。
【技术实现步骤摘要】
一种用于固态硬盘主控缓存数据双重保护的方法及系统
本专利技术涉及数据保护
,尤其涉及一种用于固态硬盘主控缓存数据双重保护的方法及系统。
技术介绍
对于固态硬盘的存储数据,最小的逻辑单元是512字节,通常还有8字节或者16字节的元数据,所以逻辑单元数据在512字节到528字节之间。在存入主控缓存的过程中,通常会把8个连续的逻辑单元合成一个4096字节为基础的硬盘存储单元,单元大小在4096字节到4224字节之间。对于传统的主控缓存的ECC保护,通常是采用一级ECC保护,也就是将数据切成小块(例如7字节或者8字节),然后在每个小块的数据后面加上1字节的ECC数据,然后同时写入缓存的介质中。但是在企业级固态硬盘中,对数据的错误率要求更高,所以单比特纠错的错误率并不能满足企业级要求,多比特纠错又会占用更多的编解码逻辑和更多的存储空间的开销,并不能达到最大的带宽利用率和存储空间的利用率。还有部分实现方法将数据存放两份,也大大增加了设计的复杂度和内部存储空间的浪费。
技术实现思路
本专利技术的目的是针对现有技术的缺陷,提供了一种用于固态硬盘主控缓存数据双重保护的方法及系统。为了实现以上目的,本专利技术采用以下技术方案:一种用于固态硬盘主控缓存数据双重保护的系统,包括主机模块、控制器模块、闪存设备;所述控制器模块包括控制器缓存;主机模块,用于将原始数据存储于主机的内存的,并发消息通知控制器模块;控制器模块,与所述主机模块连接,用于接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;闪存设备,与所述控制器模块连接,用于存储控制器模块写入的数据。进一步的,所述控制模块中经过顶层切片是采用多比特纠错的纠错码进行切片的。进一步的,所述控制模块中经过底层切片是采用单比特纠错、多比特检错的纠错码进行切片的。进一步的,所述控制器模块中读取主机内存中存储的原始数据中还包括:主机模块的一个消息对应多个逻辑块LB的数据或对应最小一个逻辑块LB的数据,控制器模块将主机模块的逻辑块LB的逻辑单元数据对应到控制器模块的数据单元控制器块CB中。进一步的,所述控制模块中经过顶层切片具体为按照大数据块进行切片,且切片的数据采用多比特纠错的顶层ECC编码器进行,并把顶层ECC编码器编码后的校验数据放在数据单元的最后面。进一步的,所述控制模块中经过底层切片具体为按照小数据块进行切片,且切片的数据使用底层ECC编码器进行编码。进一步的,所述控制器模块中顶层ECC编码器的编码逻辑为数据和编码矩阵的乘加逻辑。进一步的,所述编码矩阵存储于可编程的SRAM芯片中。进一步的,所述控制器模块中读取写入控制器缓存中的数据后还包括:将从控制器缓存中读取出的数据后经过底层ECC解码器纠正单比特数据错误和多比特数据错误;当读取到单比特数据错误时,底层ECC解码器对数据实时纠错;当读取到多比特数据错误时,底层ECC解码器对控制器块CB中的数据流标错,同时控制器模块的硬件会对传输失败进行标记,对出错的数据通过顶层ECC解码器进行纠错,并重新发送消息给控制器模块的硬件,重新发起控制器块CB中的数据传输。相应的,还提供一种用于固态硬盘主控缓存数据双重保护的方法,包括步骤:S1.主机模块将原始数据存储于主机的内存的,并发消息通知控制器模块;S2.控制器模块接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;S3.闪存设备存储控制器模块写入的数据。与现有技术相比,本专利技术在对固态硬盘主控数据进行双重ECC保护后,能在几乎不消耗硬件资源的情况下(增加逻辑仅为0.04%),降低3倍的错误率,例如如果DDR的单比特错误率为10e-9,而且假设DDR发生单比特错误的概率相同,那么采用顶层3比特纠错的方案后,可以有效把错误率降低到10e-27。而且由于多比特纠错的ECC编码的硬件实现逻辑简单,很容易使用寄存器控制顶层纠错的比特数。而解码是使用固件实现的,可以根据需要来改变解码逻辑。附图说明图1是实施例一提供的一种用于固态硬盘主控缓存数据双重保护的系统结构图;图2是实施例一提供的数据编解码过程示意图;图3是实施例一提供的数据进行BCH缓存时的格式示意图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。本专利技术的目的是针对现有技术的缺陷,提供了一种用于固态硬盘主控缓存数据双重保护的方法及系统。实施例一本实施例提供一种用于固态硬盘主控缓存数据双重保护的系统,如图1所示,包括主机模块11、控制器模块12、闪存设备13;控制器模块12分别与主机模块11、闪存设备14连接;控制器模块12包括控制器缓存(如缓存DDR)。主机模块11,用于将原始数据存储于主机的内存的,并发消息通知控制器模块;控制器模块12,与所述主机模块连接,用于接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;闪存设备13,用于存储控制器模块12写入的数据。在主机模块11中,将原始数据存储于主机的内存的,并发消息通知控制器模块。主机模块将数据准备在主机的内存中,通过NVMe协议规定,发消息通知控制器模块。通常主机模块的数据大小逻辑块LB(logicblock)为512字节,其对应的元数据meta为8或者16字节。或者主机模块的数据大小为4096字节,元数据meta为8或者16字节。在控制器模块12中,接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至本文档来自技高网...
【技术保护点】
1.一种用于固态硬盘主控缓存数据双重保护的系统,其特征在于,包括主机模块、控制器模块、闪存设备;所述控制器模块包括控制器缓存;/n主机模块,用于将原始数据存储于主机的内存的,并发消息通知控制器模块;/n控制器模块,与所述主机模块连接,用于接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;/n闪存设备,与所述控制器模块连接,用于存储控制器模块写入的数据。/n
【技术特征摘要】
1.一种用于固态硬盘主控缓存数据双重保护的系统,其特征在于,包括主机模块、控制器模块、闪存设备;所述控制器模块包括控制器缓存;
主机模块,用于将原始数据存储于主机的内存的,并发消息通知控制器模块;
控制器模块,与所述主机模块连接,用于接收主机模块发送的消息,读取主机内存中存储的原始数据,并通过顶层ECC编码器对读取的原始数据经过顶层切片,得到通过顶层ECC编码后的数据,将顶层ECC编码后的数据经过底层切片后输入至底层ECC编码器中,得到通过底层ECC编码后的数据,将得到的数据写入控制器缓存中;再读取写入控制器缓存中的数据,并将读取的数据写入闪存设备中;
闪存设备,与所述控制器模块连接,用于存储控制器模块写入的数据。
2.根据权利要求1所述的一种用于固态硬盘主控缓存数据双重保护的方法,其特征在于,所述控制模块中经过顶层切片是采用多比特纠错的纠错码进行切片的。
3.根据权利要求2所述的一种用于固态硬盘主控缓存数据双重保护的方法,其特征在于,所述控制模块中经过底层切片是采用单比特纠错、多比特检错的纠错码进行切片的。
4.根据权利要求3所述的一种用于固态硬盘主控缓存数据双重保护的方法,其特征在于,所述控制器模块中读取主机内存中存储的原始数据中还包括:
主机模块的一个消息对应多个逻辑块LB的数据或对应最小一个逻辑块LB的数据,控制器模块将主机模块的逻辑块LB的逻辑单元数据对应到控制器模块的数据单元控制器块CB中。
5.根据权利要求4所述的一种用于固态硬盘主控缓存数据双重保护的方法,其特征在于,所述控制模块中经过顶层切片具体为按照大数据块进行切片,且切片的数据采用多比特纠错的顶层ECC编码器进行,并把顶层ECC编码器编码后的校验数据放在数据单元的最后面。
【专利技术属性】
技术研发人员:李根岱,
申请(专利权)人:成都储迅科技有限责任公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。