本发明涉及存储,尤其涉及一种实现多并发写入的方法、控制器和固态存储设备。
背景技术:
1、以固态存储设备(solid storage device,ssd)为例,ssd用nvm(non-volatilememory)存储器,即非易失性存储做为数据存储介质。nand 闪存、相变存储器、feram(ferroelectric ram,铁电存储器)、mram(magnetic random accessmemory,磁阻存储器)、rram(resistive random access memory,阻变存储器)等是常见的nvm。
2、存储器目标(target)是nand闪存封装内的共享芯片使能(ce, chip enable)信号的一个或多个逻辑单元(logic unit)。每个逻辑单元具有逻辑单元号(lun, logic unitnumber)。nand闪存封装内可包括一个或多个管芯(die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(plane)。逻辑单元内的多个平面可以并行存取,而nand闪存芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。
3、现有技术中对多平面(plane)nvm存储器的数据组织方式,nvm中存储的数据会在一定程度上出现损坏,为克服此类问题,通常在访问nvm时,通过错误校正码技术对nvm上存储的数据进行保护。常用的错误校正码包括bch码(由hocquenghem、bose和chandhari提出的能纠正多个随机错误的循环码)、ldpc码(lowdensity parity check code,低密度奇偶校验码)、rs码(reed-solomon,里德-索罗门码)等。
4、为提升存储容量,固态存储设备中包括多个nvm存储器,如nand型闪存,而nand有一定的失效率,为提升固态存储设备的可靠性,按跨多个逻辑单元(lun)的“块”条带来组织数据,也就是会将位于不同lun的相同物理索引块绑定, 组成一个大块(对应superblock,xblock作为写入和擦除单元)。
5、存储设备提供了raid数据保护技术,在将该条带的用户数据写入nand阵列时,同步将条带中的用户数据进行异或运算并在条带中的用户数据写完时将之前生成的xor异或结果同步写入nvm存储器中,当一个条带中的数据出现错误时,可以通过条带中其他位置的用户数据配合生成的xor校验数据恢复得到出错位置的数据。
6、但是xor计算器的内置缓存大小往往会成为存储系统的性能瓶颈,影响并发性能。
技术实现思路
1、本技术的目的在于提供一种实现多并发写入的方法、控制器和固态存储设备,解决当xor计算器的内置缓存大小成为存储系统性能瓶颈时,如何保证存储系统能够支持更多条带同时写入的并发性能要求的问题。
2、根据本发明的第一方面,提供一种实现多并发写入的方法,包括:
3、响应于写命令,xor引擎对写命令对应的用户数据进行xor计算,生成xor校验数据,写命令支持对多个页条带同时写入;
4、将生成的xor校验数据存储到片外缓存单元,并获取xor校验数据在片外缓存单元中的xor存储地址;
5、xor引擎计算完写命令所有的用户数据后,将页条带中的用户数据和xor存储地址中的xor校验数据存储到nvm存储器中。
6、如上所述的实现多并发写入的方法,其中,xor引擎对写命令对应的用户数据进行xor计算之前,还包括:
7、判断页条带中的用户数据是否满足预设条件,如果满足则对页条带中的用户数据进行xor计算;
8、其中预设条件为:页条带中的用户数据装满,或
9、页条带中的用户数据与xor引擎一次处理的最大数据量的占比超过预设比值。
10、如上所述的实现多并发写入的方法,其中,还包括:
11、当单个页条带中的用户数据大于xor引擎一次处理的最大数据量时,将页条带中的用户数据拆分成多个处理队列发送给xor引擎进行xor计算,生成多个xor校验数据;
12、根据多个xor校验数据生成写命令的用户数据对应的xor校验数据。
13、如上所述的实现多并发写入的方法,其中,还包括:
14、片外缓存单元根据生成的xor校验数据的大小划分多个存储资源,一个存储资源对应一个xor存储地址。
15、如上所述的实现多并发写入的方法,其中,还包括:
16、多个页条带同时写入时,如果发生掉电,备用电源提供的能量支持将多个页条带中的用户数据存储到nvm存储器中。
17、如上所述的实现多并发写入的方法,其中,将多个页条带中的用户数据和相应xor存储地址中的xor校验数据同时存储到nvm存储器中。
18、如上所述的实现多并发写入的方法,其中,还包括:
19、对写命令对应的用户数据进行判断,如果用户数据为性能敏感的热数据流,则响应于写命令,xor计算器对写命令对应的用户数据进行xor计算,生成xor校验数据,xor校验数据存储到xor计算器内置的xor缓存中;
20、如果用户数据为性能不敏感的冷数据流,则响应于写命令,xor引擎对写命令对应的用户数据进行xor计算,生成xor校验数据,xor校验数据存储到片外缓存单元中。
21、如上所述的实现多并发写入的方法,其中,还包括:
22、根据写命令将不同冷热数据分别同时写入不同的页条带中;或
23、根据写命令将来自主机端的不同数据流分别同时写入不同的页条带中;或
24、根据需求将来自不同区域的用户数据分别同时写入不同的页条带中。
25、根据本发明的第二方面,提供一种用于固态存储设备的控制器,包括:xor引擎,用于与片外缓存单元耦合;
26、响应于写命令,xor引擎对写命令对应的用户数据进行xor计算,生成xor校验数据,所述写命令支持对多个页条带同时写入;
27、响应于xor引擎进行xor计算,将生成的xor校验数据存储到片外缓存单元,并获取xor校验数据在片外缓存单元中的xor存储地址;
28、响应于xor引擎计算完写命令所有的用户数据后,将页条带中的用户数据和 xor存储地址中的xor校验数据发送并存储到nvm存储器中。
29、根据本发明的第三方面,提供一种固态存储设备,包括:设置有xor引擎的控制器、片外缓存单元和nvm存储器阵列;
30、控制器响应于写命令,xor引擎对写命令对应的用户数据进行xor计算,生成xor校验数据,所述写命令支持对多个页条带同时写入;
31、片外缓存单元用于xor引擎进行xor计算,将生成的xor校验数据存储到片外缓存单元,并获取xor校验数据在片外缓存单元中的xor存储地址;
32、nvm存储器阵列用于xor引擎计算完写命令所有的用户数据后,将页条带中的用户数据和xor存储地址中的xor校验数据存储到nvm存储器中。
33、相对上述背景技术,本技术实现的有益效果如下:
34、(1)本技术的实现多并发写入的方法具有当xor计算器的内置缓存大小成为存储系统性能瓶颈时,能保证存储系统能够支持更多页条带同时写入的并发性能要求的技术效果。
35、(2)本技术的实现多并发写入的方法能够支持任意多的页条带同时写入,以支持更多种类的数据分离,有益于固态存储设备内部冷热数据(如垃圾回收/主机写入数据)分离或者多流(multi-streams),需要顺序流写入的zns(zoned namespace,分区命名空间)等需要多种类数据隔离存储,实现降低写放大。