闪存设备中数据写入的方法及设备与流程

文档序号:16626939发布日期:2019-01-16 06:11阅读:276来源:国知局
闪存设备中数据写入的方法及设备与流程

本发明涉及信息技术领域,尤其涉及闪存设备中数据写入的方法及设备。



背景技术:

闪存设备是一种在断电情况下仍能保持所存储的数据信息的存储器,其应用包括但不限于固态硬盘、安全数字(securedigital,sd)卡等。由于闪存设备的物理特性的限制,闪存设备中数据写入的比特位只能由0变至1,而不能从1变至0。因此,闪存写过之后,在第二次写之前必须对其进行擦除操作。但是,闪存设备的擦除次数有上限,达到上限时,闪存设备无法继续使用。

现有技术中闪存设备收到写请求,将待写入数据直接编码到物理页中,从而避免进行数据擦除。由于该种编码需要用使用大量的比特位来表示待写入数据,编码效果差。



技术实现要素:

一方面,本发明实施例提供一种闪存设备中数据写入方案,其中该闪存设备包括控制器和存储介质,该存储介质包含多个物理页;该案具体包括:

该控制器接收数据写请求;该数据写请求携带逻辑地址及第一数据;其中,该闪存设备存储有该逻辑地址与第一物理页地址的映射关系;该控制器根据该逻辑地址与该第一物理页地址的映射关系从该第一物理页地址指向的存储空间读取第二数据,将该第一数据与该第二数据进行逻辑运算得到第三数据,压缩该第三数据得到第四数据,将该第四数据编码到无效数据物理页的存储空间得到第五数据;该无效数据物理页的存储空间的地址为第二物理页地址,该控制器记录存储被编码数据的第二物理页地址。其中,该逻辑运算可以为异或运算或同或运算。本方案通过将写入逻辑地址的第一数据与已经写入同一个逻辑地址的第二数据进行逻辑运算,因为写入相同逻辑地址中的第一数据相对已经写入相同逻辑地址的第二数据只有部分发生变化,因此通过逻辑运算,如异或逻辑运算得到的第三数据会包含大量的0,少量的1,将减少了需要编码到无效数据物理页中的数据量,因此可以充分利用无效数据物理页的存储空间中的无效数据,提高了编码效果,进而减少了数据擦除次数,延长了闪存设备的使用寿命。

结合第一方面,在第一方面的第一种可能实现方式中,该控制器记录该第二物理页地址,具体包括:该控制器将该第二物理页地址存储到该第一物理页地址指向的存储空间所在的物理页的额外空间。

结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,该方案还包括:该控制器计算该第五数据的校验数据,该控制器将该校验数据存储在该第二物理页地址指向的存储空间所在的物理页的额外空间。校验数据可以用于在在读取第五数据时通过该校验数据验证该第五数据的准确性,如第五数据发生错误,可以通过该校验数据进行恢复,提高了数据的可靠性。

结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能实现方式中,所述方案还包括:该控制器接收数据读请求;该数据读请求携带所述逻辑地址;该控制器根据该逻辑地址与该第一物理页地址的映射关系从该第一物理页地址指向的存储空间读取该第二数据,从该第一物理页地址指向的存储空间所在的物理页的额外空间读取存储该被编码数据的该第二物理页地址,根据该第二物理页地址从该第二物理页地址指向的存储空间读取该第五数据,解码该第五数据得到该第四数据,解压缩该第四数据得到该第三数据,将该第三数据与该第二数据进行该逻辑运算得到该第一数据。

结合第一方面,在第一方面的第四种可能实现方式中,该控制器记录第二物理页的地址,具体包括:该控制器建立所述逻辑地址与该物理页地址的映射关系,并生成标识;其中该物理页地址包含该第一物理页地址和该第二物理页地址,该标识用于指示该第二物理页地址指向的存储空间中的数据为被编码数据。进一步的,控制器生成标识具体可以为生成标识位来指示第二物理页地址中指向的存储空间中的数据类型。例如用0指示为非被编码的数据,1指示为被编码的数据。控制器也可以维护一个物理页地址表作为标识,用于指示物理页地址指向的存储空间中存储的数据类型。

结合第一方面的第四种可能实现方式,在第一方面的第五种可能实现方式中,该方案还包括:该接收数据读请求;该数据读请求携带该逻辑地址;该控制器根据该逻辑地址与该物理页地址的映射关系从该第一物理页地址指向的存储空间中读取该第二数据,从该第二物理页地址指向的存储空间读取该第五数据,根据该标识,确定该第五数据为被编码数据;该控制器解码该第五数据得到该第四数据,解压缩该第四数据得到该第三数据,将该第三数据与该第二数据进行该逻辑运算得到该第一数据。结合第一方面,在第一方面的第六种可能实现方式中,该方案还包括:所述控制器压缩该第三数据得到第四数据之前,确定该第三数据中0的位数小于阈值。

结合第一方面,在第一方面的第七种可能实现方式中,该方案还包括:该控制器将该第四数据编码到无效数据物理页的存储空间得到第五数据之前,确定该第三数据压缩成功。

第二方面,本发明实施例提供了一种闪存设备,该闪存设备包括控制器和存储介质,该存储介质包含多个物理页,其中,该控制器用于执行本发明实施例第一方面中的各种方案。

第三方面,本发明实施例提供了一种控制器,该控制器用于闪存设备,该闪存设备还包括存储介质,该存储介质包含多个物理页;其中,该控制器包含各种单元,分别用于执行本发明实施例第一方面中的各种方案。

第四方面,本发明实施例还提供了计算机程序产品和非易失性计算机可读存储介质,其中计算机程序产品和非易失性计算机可读存储介质中包含计算机指令,计算机指令的非易失性存储介质和计算机程序产品,闪存设备的控制器执行计算机指令用于实现本发明实施例第一方面中的各种方案。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作以简单地介绍。

图1为闪存设备结构图;

图2为数据二次写入的流程图;

图3为编码过程示意图;

图4为本发明实施例中一种控制器结构图。

具体实施方式

现有闪存设备结构如图1所示,闪存设备100包含控制器110和存储介质120。存储介质由存储单元(cell)构成,如存储单元1、存储单元2、存储单元n。存储单元为闪存设备的最小的存储结构。一个存储单元存储1比特数据的闪存设备称为单级存储单元(singlelevelcell,slc),一个存储单元存储2比特数据的闪存设备称为多级存储单元(multiplelevelcell,mlc),一个存储单元存储3比特数据的闪存设备称为为三级存储单元(triplelevelcell,tlc)。若干个存储单元组成物理页,若干个物理页组成块。其中物理页是闪存设备最小的读写单位。

闪存设备100作为常用电子存储设备,其中存储的数据会经常被修改或删除。由于闪存设备的自身的特性,存储单元中的数据只能从0变为1。如果从存储单元中的数据要从1变为0,只能先将数据擦除,再写入新数据。闪存设备100的擦除操作的基本单元不是存储单元,也不是物理页,而是块。解决频繁数据块擦除的一种方式为将写入数据编码到无效数据物理页中,减少数据擦除次数,为此,本发明实施例提供了一种闪存设备中数据写入的方法。

本发明实施例中,闪存设备100的控制器110接收数据写请求;数据写请求携带逻辑地址和数据1。控制器110查询逻辑地址没有对应的物理页地址时,为数据1分配物理页地址1。逻辑地址没有物理页地址1表明该逻辑地址是首次写入数据。控制器将数据1写入物理页地址1指向的存储空间,建立逻辑地址与物理页地址1的映射关系。当闪存设备100的控制器110再次接收携带上述逻辑地址和数据2的写请求,则执行图2中所示的如下流程:

201:根据该逻辑地址与物理页地址1的映射关系从该物理页地址1指向的存储空间读取数据1。

202:将数据1与数据2进行逻辑运算得到数据3。

当控制器110再次接收携带该逻辑地址的写请求,此次写请求用于修改物理页地址1中的数据。在闪存设备中,新写入的修改数据,即数据2,并不覆盖物理页地址1中的数据,而是将数据2写到新的物理页地址中。在实际应用中,修改后的数据与修改前的数据相比,大部分数据相同,只有部分数据发生改变。因此,将修改前的数据与修改后的数据进行逻辑运算,以异或操作为例,结果中会包含大量的“0”,少量的“1”。当然本发明实施例中的逻辑运算也可以为同或操作,本发明实施例对此不作限定。

控制器110还可以判断数据3中“0”的位数是否在于阈值。当“0”的位数大于阈值,则表明数据2与数据1中差异较小,可经过压缩编码到无效数据物理页,则执行步骤203;当数据3不大于阈值,则表明数据2与数据1中差异较大,则为数据2分配空闲的物理页地址3指向的存储空间,并物理页地址1指向的存储空间中存储的数据1标为无效数据,将逻辑地址与物理页地址1的映射关系更新为逻辑地址与物理页地址3的映射关系。本发明实施例中的无效物理页是指存储无效数据的物理页。

203:压缩数据3得到数据4。

本发明实施例在步骤202的操作中得到包含大量的“0”,少量的“1”的数据3,对这种类型的数据进行压缩会进一步提高压缩率。具体实现中,压缩算法可以为流程长度编码(runlengthencoding,rle)或哈夫曼压缩等,本发明实施例对此不作限定。

进一步的,控制器执行步骤204之前,可以判断数据3判断是否压缩成功。判断压缩是否成功的方式包括但不限于压缩率是否大于压缩阈值。其中一种实现方式,压缩率为数据4的位数(如长度、大小等)与数据3的位数的比值。压缩成功则执行步骤204;压缩失败,则为数据2分配空闲的物理页地址3指向的存储空间,并物理页地址1指向的存储空间中存储的数据1标为无效数据,将逻辑地址与物理页地址1的映射关系更新为逻辑地址与物理页地址3的映射关系。

204:将数据4编码到无效数据物理页的存储空间得到数据5,其中,无效数据物理页的存储空间的地址为物理页地址2。

控制器110进行步骤201-204操作,减少了需要编码到无效数据物理页中的数据量,充分利用了无效数据物理页的存储空间中的无效数据,提高了编码效果,进而减少了数据擦除次数,延长了闪存设备的使用寿命。

将数据4编码到无效数据物理页的存储空间得到数据5,一种实现方式如下所示:图3为一段8位的数据4编码到无效数据物理页的存储空间的过程,其中数据4为数据3经哈夫曼压缩得到。图中,数据4为“00111011”,物理页地址2指向的无效数据物理页上存储的无效的数据7为“001100100001000000”。

301:“01”代替数据4中的“0”,“10”代替数据4中的“1”,得到数据6。

302:将数据6中的数据以两位为一组数据写入数据7中的0位,不可写位标记为“11”,得到数据5;除去不可写位,数据5与数据6完全相同。写入过程为:如图3中302-1所示,若数据7中有两位“0”,则在两位“0”中写入数据6的一组数据,并继续写入下一组数据;如图3中302-2所示,若数据7中有两位“1”,则跳过两位“1”,验证两位“1”之后的数据位是否可写;如图3中302-3所示,若数据7中的两位数据与待写入的一组数据6相同,保持这两位不变,并继续在其后两位写入下一组数据;如图3中302-4所示,若数据7中两位与数据6中待写入的一组数据不同,且不为“11”,将这两位写为“11”,并继续在其后两位写入数据6的下一组数据。

步骤301中得到数据6还可以有多种实施例。例如,可以“01”代替数据4中的“1”,“10”代替数据4中的“0”。同时,可采用较长的编码长度,例如用4位编码表示数据4中的3位数据,来实现将数据4编码到无效数据物理页的存储空间得到数据5。本发明实施例对此不做限制。

步骤205:记录存储被编码数据的物理页地址2。

具体实现中,控制器110记录物理页地址2的方式在不同类型的闪存设备中的实现方式不同。如与非(nand)闪存设备出现存储单元损坏的概率较大,nand闪存设备在存储数据时,会增加数据校验机制。具有校验机制的闪存设备的物理页,包括存储空间和额外空间(sparespace或sparearea)。额外空间,指的是物理页上分配出的用于存储校验数据的一段地址空间。额外空间大小一般大于校验数据的大小,因此额外空间中通常会存在有可写位。因此,在nand闪存设备中,控制器110会将存储被编码数据的物理页地址2存储到物理页地址1指向的存储空间所在的物理页的额外空间1。因此,当控制器110从物理页地址1指向的存储空间所在的物理页的额外空间读取物理页地址2,则确定物理页地址2中存储的为被编码的数据。

根据上述nand闪存设备中物理页地址2的存储方式,控制器110接收数据读请求,数据读请求携带逻辑地址。控制器根据逻辑地址与物理页地址1的映射关系,从物理页地址1中指向的存储空间读取数据1。控制器从物理页地址1所在的物理页的额外空间中读取存储被编码数据的物理页地址2,后读取物理页地址2指向的存储空间存储的数据5,解码数据5得到数据4,解压缩数据4得到数据3,将数据3与数据1进行逻辑运算得到数据2,数据2即为数据读请求所请求的数据。

另外一种实现方式,控制器110建立逻辑地址与物理页地址的映射关系,并生成标识。其中,物理页地址物理页地址1和物理页地址2,标识用于指示物理页地址指向的存储空间中的数据为被编码数据。例如用0标识为非被编码数据,1标识被编码数据。该标识位可以位于逻辑地址与物理页地址的映射关系中。控制器110也可以维护一个物理页地址表作为标识,用于记录物理页地址指向的存储空间中存储的数据类型。控制器接收数据读请求,数据读请求携带逻辑地址。控制器110根据逻辑地址与物理页地址的映射关系,从物理页地址1中指向的存储空间读取数据1,从物理页地址2指向的存储空间中数据5。控制器110根据物理页地址2的标识确定物理页地址2指向的存储空间存储的数据5为被编码的数据,控制器110解码数据5得到数据4,解压缩数据4得到数据3,将数据3与数据1进行逻辑运算得到数据2,数据2即为数据读请求所请求的数据。具体实现中,可以分别用标识来标识物理页地址1和物理页地址2中存储的数据类型,本发明实施例对此不作限定。另一种实现,标识可以为映射表中的位置,如第一列记录逻辑地址,第二列记录存储被编码的数据的物理页地址1,第三列用于记录存储被编码的数据的物理页地址2,在这种实现方式中,生成逻辑地址与物理地址页地址的映射关系,并生成标识,是指生成记录逻辑地址与物理页地址的映射关系的表项。

与本发明实施例相对应,闪存设备中的控制器110具体结构如图4所示,包括接收单元410、读取单元420、逻辑运算单元430、压缩处理单元440、编码处理单元450和记录生成单元460。其中,接收单元410用于接收数据写请求,数据写请求携带逻辑地址及第一数据;闪存设备存储有逻辑地址与第一物理页地址的映射关系。读取单元420用于根据逻辑地址与第一物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据。逻辑运算430单元用于将第一数据与第二数据进行逻辑运算得到第三数据。压缩处理单元440用于压缩第三数据得到第四数据。编码处理单元350用于将第四数据编码到无效数据物理页的存储空间得到第五数据,该无效数据物理页的存储空间的地址为第二物理页地址。记录生成单元460用于记录存储被编码数据的第二物理页地址。

如图4所示的控制器110,一种实现方式,记录生成单元460具体用于将第二物理页地址存储到第一物理页地址指向的存储空间所在的物理页的额外空间。进一步的,所述控制器110还包括校验单元,用于计算第五数据的校验数据,将校验数据存储到第二物理页地址指向的存储空间所在的物理页的额外空间。进一步的,其中,接收单元410还用于接收数据读请求,数据读请求携带逻辑地址;读取单元420还用于根据逻辑地址与第一物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据,从第一物理页地址指向的存储空间所在的物理页的额外空间读取存储被编码数据的第二物理页地址,根据第二物理页地址从第二物理页地址指向的存储空间读取第五数据;编码处理单元350还用于解码第五数据得到第四数据;压缩处理440单元还用于解压缩第四数据得到第三数据;逻辑运算单元430还用于将述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。

如图4所示的控制器110,另一种实现方式,记录生成单元460具体用于建立逻辑地址与物理页地址的映射关系,并生成标识;其中物理页地址包含第一物理页地址和第二物理页地址,记录生成单元标记第一物理页地址和第二物理页地址,标识用于指示第二物理页地址指向的存储空间中的数据为被编码数据。进一步的,其中,接收单元410还用于接收数据读请求,数据读请求携带逻辑地址;读取单元420还用于根据逻辑地址与物理页地址的映射关系从第一物理页地址指向的存储空间读取第二数据,从第二物理页地址指向的存储空间读取所述第五数据;记录生成单元460用于根据标识,确定第五数据为被编码数据;编码处理单元350还用于解码第五数据得到第四数据;压缩处理单元440还用于解压缩第四数据得到第三数据;逻辑运算单元430还用于将述第三数据与所述第二数据进行所述逻辑运算得到所述第一数据。

如图4所示的控制器110,还包括确定单元用于压缩所述第三数据得到第四数据之前,确定第三数据中0的位数小于阈值。所述确定单元还用于将第四数据编码到第二物理页的存储空间得到第五数据之前,确定第三数据压缩成功。

图4中所示的控制器110的具体实现可参考前面实施例中描述,其中各单元可以分别由对应的硬件芯片实现,如接收单元对应接口卡芯片、读取单元、逻辑运算单元对应逻辑运算芯片、压缩处理单元对应压缩芯片、编码处理单元对应编码处理芯片,记录生成单元存储芯片。在另一种实现中,一个或多个单元可以集成在一个硬件芯片上。其中逻辑运算单元对输入的数据进行逻辑运算操作,压缩处理单元对输入的数据进行压缩或解压缩处理,编码处理芯片对输入的数据进行编码或解编码。在另一种实现中,控制器110中的各单元也可以由处理器执行计算机指令实现。本发明实施例对此不作限定。相应的,本发明实施例提供一种包含计算机指令的非易失性存储介质和计算机程序产品,闪存设备的处理器执行计算机指令用于实现本发明实施例所描述的方案。

本发明实施例中的闪存设备可以为固态硬盘、加速卡、sd卡等。闪存设备还可以为使用开放通道(openchannel)的固态硬盘组成的存储阵列等。

在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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