本技术涉及数据存储领域,特别涉及一种数据写入方法、系统、装置、介质及四级单元闪存。
背景技术:
1、随着nand技术的不断发展,qlc nand(quad-level cell nand,四级单元闪存)相较当前主流的tlc nand(triple level cell nand,三级单元闪存)具有更低的成本和更高的存储容量。qlc nand的每个存储单元可以存储4比特的数据。
2、然而,使用qlc nand进行写入操作的过程中存在一些特殊的要求和挑战。具体来说,为了保证数据的完整性和正确性,每个字线的写入需要分两次进行。此外,在两次写入的过程中,还需要严格遵守字线之间的写入顺序。具体的顺序要求是:先按照层级的顺序对每个层级中的各个字线依次进行第一次数据的写入,待该层级的所有字线都完成了第一次数据的写入之后,才能继续进行第二次数据的写入。
3、具体地,在第一次数据写入时需要调用计算模块,计算模块中包括用于计算的处理器和用于存储数据的ram(random access memory,随机存取存储器),处理器根据写入的数据计算校验块,ram用于存储计算过程中的中间数据和最终数据,在完成计算后将数据和校验块写入nand,然后释放ram。在第二次数据写入时,再次调用计算模块再次执行上述的计算步骤。可见,每个字线上数据的写入需要调用两次计算模块以及占用两次ram资源,但是ram资源非常有限,因此,提供一种数据写入方法以减少对ram资源的占用是十分必要的。
技术实现思路
1、本技术的目的是提供一种数据写入方法、系统、装置、介质及四级单元闪存,将数据存储从第一从存储模块转移到了独立于第一从存储模块的第二存储模块中,避免了两次写入操作同时占用第一存储模块的资源,可以提高系统的性能和扩展能力,并保证了数据的完整性和正确性。此外在第二次写入操作中,不再计算校验块,而是直接使用第一次写入操作存储至第二存储模块中的校验块,节约了对处理器和存储模块的占用。
2、为解决上述技术问题,本技术提供了一种数据写入方法,应用于四级单元闪存中的处理器,所述四级单元闪存还包括与所述处理器连接的第一存储模块和第二存储模块,所述方法包括:
3、在所述四级单元闪存上电时,从所述第二存储模块中申请目标存储空间,所述第二存储模块为独立于所述第一存储模块的存储模块;
4、在第一次向目标字线写入时,根据第一次写入的数据块计算第一校验块,将所述第一校验块和所述数据块传输至所述目标字线,并将所述第一校验块存储至所述目标存储空间;
5、在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线。
6、在一种实施例中,所述处理器可并行处理n个写入操作时,n为大于2的整数,还包括:
7、将所述处理器的计算资源划分为n份,为每份所述计算资源设置对应的序号标识;
8、在所述四级单元闪存上电时,从所述第二存储模块中申请目标存储空间,包括:
9、在所述四级单元闪存上电时,从所述第二存储模块中申请n个所述目标存储空间;
10、将n个所述目标存储空间与n份所述计算资源一一对应绑定。
11、在一种实施例中,还包括:
12、获取写入指令,根据所述写入指令确定是第一次向所述目标字线写入还是第二次向所述目标字线写入;
13、若是第一次向所述目标字线写入,则进入在第一次向目标字线写入时,根据第一次写入的数据块计算第一校验块,将所述第一校验块和所述数据块传输至所述目标字线,并将所述第一校验块存储至所述目标存储空间的步骤;
14、若是第二次向所述目标字线写入,则进入在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线的步骤。
15、在一种实施例中,在第一次向目标字线写入时,根据第一次写入的数据块计算第一校验块,将所述第一校验块和所述数据块传输至所述目标字线,并将所述第一校验块存储至所述目标存储空间,包括:
16、根据所述写入指令确定目标序号标识和与所述目标序号标识对应的目标存储空间;
17、申请与所述目标序号标识对应的目标计算资源,并将所述校验计算标志位设置为使能状态;
18、使用所述目标计算资源根据所述第一次写入的数据块计算所述第一校验块;
19、将所述第一校验块存储至与所述目标序号标识对应的目标存储空间中。
20、在一种实施例中,在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线,包括:
21、根据所述写入指令确定目标序号标识和与所述目标序号标识对应的目标存储空间,将校验计算标志位设为未使能状态;
22、从与所述目标序号标识对应的目标存储空间中读取所述第一校验块;
23、将所述第一校验块和所述第二次写入的数据块传输至所述目标字线。
24、在一种实施例中,还包括:
25、在第一次向所述目标字线写入时,判断将所述第一校验块存储至与所述目标序号标识对应的目标存储空间的过程是否完成;
26、若完成,则释放所述目标序号标识。
27、在一种实施例中,释放所述目标序号标识,包括:
28、将所述目标序号标识标记为未分配状态。
29、在一种实施例中,根据所述写入指令确定目标序号标识和与所述目标序号标识对应的目标存储空间,包括:
30、根据所述写入指令确定未被占用的目标序号标识和与所述目标序号标识对应的目标存储空间的目标地址。
31、在一种实施例中,在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线,包括:
32、根据所述写入指令确定目标序号标识和与所述目标序号标识对应的目标存储空间;
33、申请与所述目标序号标识对应的目标计算资源,并将校验计算标志位设为使能状态;
34、使用目标计算资源根据所述第二次写入的数据块计算第二校验块;
35、从与所述目标序号标识对应的目标存储空间中读取所述第一校验块;
36、将所述第一校验块或第二校验块、所述第二次写入的数据块传输至所述目标字线。
37、在一种实施例中,将所述第一校验块或第二校验块、所述第二次写入的数据块传输至所述目标字线,包括:
38、根据所述第一校验块和所述第二校验块使用预设方式确定目标校验块,将所述第二次写入的数据块和所述目标校验块传输至所述目标字线。
39、在一种实施例中,根据所述第一校验块和所述第二校验块使用预设方式确定目标校验块,将所述第二次写入的数据块和所述目标校验块传输至所述目标字线,包括:
40、根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位的比较结果确定所述目标校验块,并将所述第二次写入的数据块和所述目标校验块传输至所述目标字线。
41、在一种实施例中,根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位的比较结果确定所述目标校验块,并将所述第二次写入的数据块和所述目标校验块传输至所述目标字线,包括:
42、根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位确定计算结果为正确的校验块,将计算结果为正确的校验块与所述第二次写入的数据块传输至所述目标字线。
43、在一种实施例中,根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位确定计算结果为正确的校验块,将计算结果为正确的校验块与所述第二次写入的数据块传输至所述目标字线之前,还包括:
44、判断所述第一校验块和所述第二校验块是否相同;
45、若相同,则将所述第一校验块和所述第二校验块中的任意一个校验块与所述第二次写入的数据块传输至所述目标字线;
46、若不相同,则进入根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位确定计算结果为正确的校验块,将计算结果为正确的校验块与所述第二次写入的数据块传输至所述目标字线的步骤。
47、在一种实施例中,根据所述第一校验块中各个数据比特位和所述第二校验块中各个数据比特位确定计算结果为正确的校验块之后,还包括:
48、若所述第一校验块和所述第二校验块均为错误的校验块,则反馈计算错误信息。
49、在一种实施例中,反馈计算错误信息之后,还包括:
50、将所述目标存储空间中存储的第一校验块的空间标记为无效并清零。
51、在一种实施例中,反馈计算错误信息之后,还包括:
52、在满足预设条件时,重新向所述目标字线写入所述数据块,以根据当前写入的数据块计算第三校验块,将所述第三校验块和所述数据块传输至所述目标字线。
53、在一种实施例中,在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线之后,还包括:
54、释放所述目标存储空间中用于存储所述第一校验块的空间。
55、在一种实施例中,释放所述目标存储空间中用于存储所述第一校验块的空间,包括:
56、将所述目标存储空间中用于存储所述第一校验块的空间中的数据标记为无效并清零。
57、在一种实施例中,释放所述目标存储空间中用于存储所述第一校验块的空间之前,还包括:
58、判断是否接收到所述目标字线反馈的传输完成信息;
59、若接收到所述传输完成信息,则进入释放所述目标存储空间中用于存储所述第一校验块的空间的步骤。
60、为解决上述技术问题,本技术还提供了一种数据写入系统,应用于四级单元闪存中的处理器,所述四级单元闪存还包括与所述处理器连接的第一存储模块和第二存储模块,所述系统包括:
61、空间申请单元,用于在所述四级单元闪存上电时,从所述第二存储模块中申请目标存储空间,所述第二存储模块为独立于所述第一存储模块的存储模块;
62、第一写入单元,用于在第一次向目标字线写入时,根据第一次写入的数据块计算第一校验块,将所述第一校验块和所述数据块传输至所述目标字线,并将所述第一校验块存储至所述目标存储空间;
63、第二写入单元,用于在第二次向所述目标字线写入时,调用所述目标存储空间中的所述第一校验块,并将所述第一校验块和第二次写入的数据块传输至所述目标字线。
64、为解决上述技术问题,本技术还提供了一种数据写入装置,包括:
65、存储器,用于存储计算机程序;
66、处理器,用于在执行计算机程序时,实现如上述所述的数据写入方法的步骤。
67、为解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据写入方法的步骤。
68、为解决上述技术问题,本技术还提供了一种四级单元闪存,包括第一存储模块及如上述所述的数据写入装置,所述数据写入装置中的处理器与所述第一存储模块连接。
69、本技术提供了一种数据写入方法、系统、装置、介质及四级单元闪存,涉及数据处理领域,用于解决资源占用较多的问题。设置独立于第一存储模块的第二存储模块,将第一次向目标字线写入时得到的第一校验块存储至目标存储空间,在第二次写入时,调用此第一校验块并将其和第二次写入的数据块传输至目标字线即可。本技术将数据存储从第一从存储模块转移到了独立于第一从存储模块的第二存储模块中,避免了两次写入操作同时占用第一存储模块的资源,可以提高系统的性能和扩展能力,并保证了数据的完整性和正确性。此外在第二次写入操作中,不再计算校验块,而是直接使用第一次写入操作存储至第二存储模块中的校验块,节约了对处理器和存储模块的占用。