一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据存储系统及方法与流程

2022-05-18 00:12:37 来源:中国专利 TAG:

1.本发明涉及存储器技术领域,具体涉及一种数据存储系统及方法。


背景技术:

2.目前的数据存储系统在使用过程中或多或少都会发生故障,并不能完全保障存储数据的可靠性,可能会发生数据的读写错误,对系统的可靠运行产生影响。为了提高数据存储系统在使用过程中存储数据的可靠性,提出通过纠错码(error correcting code,ecc)方案在存储数据传输过程中发生错误后自动法线和纠正。
3.现有技术中的ecc方案包括两种,一种是边带ecc,一种是内联ecc,边带ecc方案中ecc作为边带数据与实际数据一起发送到内存。例如,对于32位数据宽度,将7个附加位用于ecc存储。因此32位数据ecc需要39位存储器位宽。内联ecc方案具有固定的通道宽度,内联ecc方案是将ecc代码存储在存储实际数据空间中。因此,需要对存储器的存储空间进行分区,以便将内存的专用部分分配给ecc值存储。
4.现有技术中存在以下问题:边带ecc方案需要扩展存储器位宽,需要特定的存储器,在一些低成本和普通工艺下常常没有对应的存储器,使得开发难度变大。内联ecc方案需要为ecc代码生成单独的读命令和写命令,降低了存储器的读写效率。


技术实现要素:

5.有鉴于此,有必要提供一种数据存储系统和方法,用以解决现有技术中存在的无法在确保数据存储系统的读写效率的同时避免对存储器位宽进行拓展,以降低数据存储系统开发难度的技术问题。
6.为了解决上述技术问题,本发明提供了一种数据存储系统,包括:第一存储器、第二存储器以及控制器;所述第一存储器用于存储第一数据或第二数据;所述第一数据为第一存储数据,所述第二数据包括所述第一存储数据和与第二存储数据对应的第二纠错码;所述第二存储器用于存储第三数据或第四数据;所述第三数据为第二存储数据,所述第四数据包括所述第二存储数据和与所述第一存储数据对应的第一纠错码;所述控制器还用于控制所述第一存储器和/或所述第二存储器的数据写入和数据读出。
7.在一些可能的实现方式中,所述数据存储系统还包括使能判断模块,所述使能判断模块用于根据配置信息判断纠错码是否使能;当所述纠错码使能时,所述控制器用于根据所述第一存储数据生成第一纠错码,和/或,根据所述第二存储数据生成第二纠错码,所述第一存储器用于存储所述第一存储数据和所述第二纠错码,所述第二存储器用于存储所述第二存储数据和所述第一纠错码;当所述纠错码不使能时,所述第一存储器用于存储所述第一存储数据,所述第二存储器用于存储所述第二存储数据。
8.在一些可能的实现方式中,所述第一存储器包括第一数据存储区域和第一纠错码存储区域,所述第二存储器包括第二数据存储区域和第二纠错码存储区域;当所述纠错码使能时,所述第一数据存储区域用于存储所述第一存储数据,所述第一纠错码存储区域用于存储所述第二纠错码;所述第二数据存储区域用于存储所述第二存储数据,所述第二纠错码存储区域用于存储所述第一纠错码;当所述纠错码不使能时,所述第一数据存储区域以及所述第一纠错码存储区域用于存储所述第一存储数据;所述第二存储区域以及所述第二纠错码存储区域用于存储所述第二存储数据。
9.在一些可能的实现方式中,所述控制器包括读写时序子控制器以及编码子控制器;所述读写时序子控制器用于确定所述第一存储器和所述第二存储器的数据处理状态,所述数据处理状态包括数据写入状态和数据读出状态;所述编码子控制器用于当所述纠错码使能,且所述第一存储器和所述第二存储器为写入状态时,将所述第一存储数据存储至所述第一数据存储区域,并在同一指令周期内将所述第一纠错码存储至所述第二纠错码存储区域,或将所述第二存储数据存储至所述第二数据存储区域,并在同一指令周期内将所述第二纠错码存储至所述第一纠错码存储区域。
10.在一些可能的实现的方式中,所述控制器还包括解码子控制器;所述解码子控制器用于当所述纠错码使能,且所述第一存储器和所述第二存储器为读取状态时,从所述第一数据存储区域读取所述第一存储数据,并在同一指令周期内从所述第二纠错码存储区域读取所述第一纠错码,或从所述第二数据存储区域读取所述第二存储数据,并在同一指令周期内从所述第一纠错码存储区域读取所述第二纠错码。
11.在一些可能的实现方式中,所述第一数据存储区域的存储空间大于或等于所述第一纠错码存储区域的存储空间;所述第二数据存储区域的存储空间大于或等于所述第二纠错码存储区域的存储空间。
12.在一些可能的实现方式中,所述第一存储器和所述第二存储器的空间地址连续。
13.在一些可能的实现方式中,所述数据存储系统还包括第三存储器和第四存储器;所述第三存储器用于存储第五数据或第六数据;所述第五数据为第三存储数据,所述第六数据包括所述第三存储数据和与第四存储数据对应的第四纠错码;所述第四存储器用于存储第七数据或第八数据;所述第七数据为第四存储数据,所述第八数据包括所述第四存储数据和与所述第三存储数据对应的第三纠错码。
14.在一些可能的实现方式中,所述第一存储器、所述第二存储器、所述第三存储器和所述第四存储器的空间地址依次连续;或,所述第一存储器、所述第三存储器、所述第二存储器和所述第四存储器的空间地址依次连续。
15.另一方面,本发明还提供了一种数据存储方法,包括:控制所述第一存储器存储所述第一存储数据或存储所述第一存储数据和与第二存储数据对应的第二纠错码;
控制所述第二存储器存储所述第二存储数据或存储所述第二存储数据和与所述第二存储数据对应的第一纠错码。
16.采用上述实施例的有益效果是:本发明提供的数据存储系统,通过设置数据存储系统包括第一存储器和第二存储器,且设置第一存储器可存储第一存储数据和第二纠错码,第二存储器可存储第二存储数据和第一纠错码,实现仅需要使用两个通用的存储器即可在不降低存储器读写效率的前提下,确保数据存储系统的中数据读写的纠错,无需对通用的存储器位宽进行拓展,降低了数据存储系统的纠错功能的实现成本,并在实现纠错功能的同时确保数据存储系统的读写效率。
附图说明
17.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明提供的数据存储系统的第一个实施例结构示意图;图2为本发明提供的数据存储系统的第二个实施例结构示意图;图3为本发明提供的数据存储系统的第三个实施例结构示意图;图4为本发明提供的数据存储方法的一个实施例流程示意图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
21.附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器系统和/或微控制器系统中实现这些功能实体。
22.本发明实施例中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
23.在本发明实施例中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即
可。
24.在本发明中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本发明所描述的实施例可以与其它实施例相结合。
25.本发明提供了一种数据存储系统及方法,以下分别进行说明。
26.图1为本发明提供的数据存储系统的一个实施例结构示意图,如图1所示,数据存储系统100包括:第一存储器200、第二存储器300以及控制器400;第一存储器200用于存储第一数据或第二数据;第一数据为第一存储数据,第二数据包括第一存储数据和与第二存储数据对应的第二纠错码;第二存储器300用于存储第三数据或第四数据;第三数据为第二存储数据,第四数据包括第二存储数据和与第一存储数据对应的第一纠错码;控制器400还用于控制第一存储器200和/或第二存储器300的数据写入和数据读出。
27.与现有技术相比,本发明实施例提供的数据存储系统100,通过设置数据存储系统包括第一存储器200和第二存储器300,且设置第一存储器200可存储第一存储数据和第二纠错码,第二存储器300可存储第二存储数据和第一纠错码,实现仅需要使用两个通用的存储器即可在不降低存储器读写效率的前提下,确保数据存储系统100的中数据读写的纠错,无需对通用的存储器位宽进行拓展,降低了数据存储系统100的纠错功能的实现成本,并在实现纠错功能的同时确保数据存储系统的读写效率。
28.在本发明的一些实施例中,第一存储器200和第二存储器300的规格相同,其中,第一存储器200和第二存储器300可为静态随机存取存储器(static random access memory,sram)、动态随机存取存储器(dynamic random access memory,dram)、铁电随机存取存储器(ferromagnetic random access memory,fram)中的任意一种。
29.在本发明的具体实施例中,第一存储器200和第二存储器300为sram。
30.在本发明的一些实施例中,如图1所示,数据存储系统100还包括使能判断模块500,使能判断模块500用于根据配置信息判断纠错码是否使能;当纠错码使能时,控制器400用于根据第一存储数据生成第一纠错码,和/或,根据第二存储数据生成第二纠错码,第一存储器200用于存储第一存储数据和第二纠错码,第二存储器300用于存储第二存储数据和第一纠错码;当纠错码不使能时,第一存储器200用于存储第一存储数据,第二存储器300用于存储第二存储数据。
31.需要说明的是:配置信息在数据存储系统100在进行数据写入或读取前已确定,配置信息存储在非易失性存储器(non-volatile memory, nvm)中,确保配置信息不会随着数据存储系统100的断电而消失,并且,数据存储系统100在进行数据的写入和读取过程中配置信息不可修改。
32.在本发明的一些实施例中,如图1所示,第一存储器200包括第一数据存储区域210和第一纠错码存储区域220,第二存储器300包括第二数据存储区域310和第二纠错码存储区域320;
当纠错码使能时,第一数据存储区域210用于存储第一存储数据,第一纠错码存储区域220用于存储第二纠错码;第二数据存储区域310用于存储第二存储数据,所述第二纠错码存储区域320用于存储第一纠错码。
33.具体地,当纠错码使能时,第一存储数据可包括sram0 data0、sram0 data1、sram0 data2,则第一纠错码包括分别与sram0 data0、sram0 data1、sram0 data2对应的ecc0_00、ecc0_01、ecc0_02,sram0 data0、sram0 data1、sram0 data2存储在第一数据存储区域210中, ecc1_00、ecc1_01、ecc1_02存储在第二纠错码存储区域320中。
34.同样地,当纠错码使能时,第二存储数据可包括sram1 data0、sram1 data1、sram1 data2,则第二纠错码包括分别与sram1 data0、sram1 data1、sram1 data2对应的ecc1_00、ecc1_01、ecc1_02,sram1 data0、sram1 data1、sram1 data2存储在第二数据存储区域310中, ecc1_00、ecc1_01、ecc1_02存储在第一纠错码存储区域220中。
35.为了避免当纠错码不使能时,第一纠错码存储区域220和第二纠错码存储区域320的浪费,在本发明的一些实施例中,当纠错码不使能时,第一数据存储区域210以及第一纠错码存储区域220均用于存储第一存储数据;第二数据存储区域310以及第二纠错码存储区域320均用于存储第二存储数据。
36.通过上述设置,当纠错码不使能时,避免了第一存储器200和第二存储器300的内存浪费。
37.在本发明的一些实施例中,如图1所示,控制器400包括读写时序子控制器410以及编码子控制器420;读写时序子控制器410用于确定第一存储器200和第二存储器300的数据处理状态,数据处理状态包括数据写入状态和数据读出状态;编码子控制器420用于当纠错码使能,且第一存储器200和第二存储器300为写入状态时,将第一存储数据存储至第一数据存储区域210,并在同一指令周期内将第一纠错码存储至第二纠错码存储区域320,或将第二存储数据存储至第二数据存储区域310,并在同一指令周期内将第二纠错码存储至第一纠错码存储区域220。
38.在本发明的一些实施例中,如图1所示,控制器400还包括解码子控制器430,解码子控制器430用于当纠错码使能,且第一存储器200和第二存储器300为读取状态时,从第一数据存储区域210读取第一存储数据,并在同一指令周期内从第二纠错码存储区域320读取第一纠错码,或从第二数据存储区域310读取第二存储数据,并在同一指令周期内从第一纠错码存储区域220读取第二纠错码。
39.为了确保读取出的第一存储数据和/或第二存储数据的准确性,在本发明的一些实施例中,解码子控制器430还用于校验读取的第一纠错码和第二纠错码。
40.具体地:解码子控制器430用于校验读取出的第一纠错码与编码子控制器420存储至第二纠错码存储区域320中的第一纠错码是否一致,若一致,则表示第一存储数据准确,若不一致,则读取出的第一存储数据发生异常,生成提示信息提示操作用户。同样地:解码子控制器430还用于校验读取出的第二纠错码与编码子控制器420存储至第一纠错码存储区域220中的第二纠错码是否一致,若一致,则表示第二存储数据准确,若不一致,则读取出的第二存储数据发生异常,生成提示信息提示操作用户。
41.在本发明的一些实施例中,第一数据存储区域210的存储空间大于或等于第一纠
错码存储区域220的存储空间;第二数据存储区域310的存储空间大于或等于第二纠错码存储区域320的存储空间。
42.应当理解的是:第一数据存储区域210的存储空间与第一纠错码存储区域220的存储空间之比应当根据第一存储数据的比特位数和第二纠错码的比特位数进行调整,第二数据存储区域310的存储空间与第二纠错码存储区域320的存储空间之比应当根据第二存储数据的比特位数和第一纠错码的比特位数进行调整,在此不做一一赘述。
43.在本发明的一些实施例中,当第一存储数据和第二存储数据为32比特位时,第一数据存储区域210的存储空间与第一纠错码存储区域220的存储空间之比为4;第二数据存储区域310的存储空间与第二纠错码存储区域320的存储空间之比为4。
44.这是由于:当第一存储数据和第二存储数据为32比特位时,第一纠错码和第二纠错码分别为7比特位,则第一数据存储区域210的存储空间与第一纠错码存储区域220的存储空间之比为4,第二数据存储区域310的存储空间与第二纠错码存储区域320的存储空间之比为4。
45.需要说明的是:第一纠错码写入第二纠错码存储区域320或从第二纠错码存储区域320中读取以及第二纠错码写入第一纠错码存储区域220或从第一纠错码存储区域220中读取的方式均为字节访问方式。
46.在本发明的一些实施例中,第一存储器200和第二存储器300的空间地址连续。
47.本发明实施例通过设置第一存储器200和第二存储器300的空间地址连续,可进一步避免内存的浪费。
48.为了提高数据存储系统100的内存,从而提高数据存储系统100的数据存储能力,在本发明的一些实施例中,如图2所示,数据存储系统100还包括第三存储器600和第四存储器700;控制器400用于接收存储至第三存储器600中的第三存储数据,和/或,存储至第四存储器700中的第四存储数据;控制器400还用于根据第三存储数据生成第三纠错码,和/或,根据第四存储数据生成第四纠错码;第三存储器600用于存储第五数据或第六数据;第五数据为第三存储数据,第六数据包括第三存储数据和第四纠错码;第四存储器700用于存储第七数据或第八数据;第七数据为第四存储数据,第八数据包括第四存储数据和第三纠错码。
49.本发明实施例通过增加数据存储系统100中用于存储数据的第三存储器600和第四存储器700,可提高数据存储系统100的内存,进而提高数据存储系统的数据存储能力。
50.应当理解的是:数据存储系统100中包括的存储器的个数可根据实际内存需求进行调整,并不限于四个,在此不做一一赘述。
51.在本发明的一些实施例中,第一存储器200、第二存储器300、第三存储器600和第四存储器700的空间地址依次连续。
52.在本发明的另一些实施例中,第一存储器200、第三存储器600、第二存储器300和第四存储器700的空间地址依次连续。
53.本发明实施例通过设置上述两种第一存储器200、第二存储器300、第三存储器600
和第四存储器700的空间地址排布方式,可提高数据存储系统100的灵活性。
54.需要说明的是:如图3所示,在本发明的一些实施例中,当数据存储系统100包括第一存储器200、第二存储器300、第三存储器600和第四存储器700,也可设置第二存储器300存储第一存储数据对应的第一纠错码(ecc0_00
‑ꢀ
ecc0_07),第三存储器600存储第二存储数据对应的第二纠错码(ecc1_00
‑ꢀ
ecc1_07),第四存储器700存储第三存储数据对应的第三纠错码(ecc2_00
‑ꢀ
ecc2_07),第一存储器200存储第四存储数据对应的第四纠错码(ecc3_00
‑ꢀ
ecc3_07)。
55.应当理解的是:数据存储系统100中各存储器存储的存储数据和纠错码还可以是其他方式,在此不做一一赘述。
56.本发明实施例还提供了一种数据存储方法,如图4所示,数据存储方法包括:s401、控制第一存储器存储第一存储数据或存储第一存储数据和与第二存储数据对应的第二纠错码;s402、控制第二存储器存储第二存储数据或存储第二存储数据和与第一存储数据对应的第一纠错码。
57.上述实施例提供的数据存储方法可实现上述数据存储系统实施例中描述的技术方案,上述各步骤具体实现的原理可参见上述数据存储系统实施例中的相应内容,此处不再赘述。
58.本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于计算机可读存储介质中。其中,计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
59.以上对本发明所提供的数据存储系统及方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献