CN107436726B - 数据写入方法、存储控制器、计算设备以及存储装置 - Google Patents
数据写入方法、存储控制器、计算设备以及存储装置 Download PDFInfo
- Publication number
- CN107436726B CN107436726B CN201610362315.XA CN201610362315A CN107436726B CN 107436726 B CN107436726 B CN 107436726B CN 201610362315 A CN201610362315 A CN 201610362315A CN 107436726 B CN107436726 B CN 107436726B
- Authority
- CN
- China
- Prior art keywords
- target data
- expected
- writing
- nvm
- time length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明实施例公开了一种数据写入方法,用于提升NVM的使用性能。本发明提供的方法包括:接收目标数据,若目标数据中携带有期望保持时长,则查找该期望保持时长对应的写入条件,并按照该对应的写入条件将目标数据写入NVM中,使得目标数据在NVM中的真实保持时长能够非常接近该期望保持时长。由于期望保持时长由主机系统在应用层面确定,因此更为贴近应用的实际需要。目标数据在NVM中保存达到了期望保持时长后可以直接删除,无需再进行刷新。这样就减少了存储控制器刷新NVM的次数,降低了存储控制器和NVM的能耗,提升了NVM的使用性能。本发明还提供了相关的存储控制器以及计算设备。
Description
技术领域
本发明涉及存储领域,尤其涉及一种数据写入方法、存储控制器、计算设备以及存储装置。
背景技术
以固态硬盘(英文:solid state disk,缩写:SSD)为代表的非易失性存储介质(英文:non-volatile memory,缩写:NVM)在断电之后,其中的数据仍可以长时间保持,具体可以保持数周、数月甚至数年。NVM的数据保持时长、使用寿命和编程速度三个指标之间存在一定的权衡。一般的,NVM的数据保持时长越短,NVM的使用寿命越长,编程速度也越快。
数据在NVM中的保持时长可以通过写数据的电流或电压来调节。例如SSD的数据保持时长可以通过数据写入SSD时的阈值电压以及步进编程电压来调节,一些新型的NVM的数据保持时长也可以通过写电流或写时间长度来调节。现阶段的技术一般使用小电压或小电流将数据写入NVM,以求通过缩短数据保持时长来加快NVM的编程速度,延长NVM的使用寿命。
但是现阶段的NVM的数据保持时长一般都设置得较短,故在达到数据保持时长后,NVM又不得不借助内部数据刷新等措施来防止数据丢失。频繁的数据刷新增加了NVM的负担和能耗,严重影响了NVM的使用性能。
发明内容
本发明提供了一种数据写入方法,用于提升存储控制器和NVM的使用性能。
本发明第一方面提供了一种数据写入方法,其中,存储控制器从主机系统处接收待写入的目标数据。若目标数据中携带有主机系统指定的期望保持时长,则存储控制器查找期望保持时长对应的写入条件,该写入条件可以包括将目标数据写入NVM介质的阈值电压、步进电压、写电流、写时间长度等参数中的一项或多项。存储控制器按照期望保持时长对应的写入条件,将目标数据写入NVM中,使得目标数据在NVM中的实际保持时长接近等于该期望保持时长。由于主机系统确定的期望保持时长能够贴近应用的真实需要,故则目标数据在NVM中的保持时长超过期望保持时长后,可以直接删除,而不对目标数据进行刷新。这样就能够减少存储控制器刷新NVM的操作,在尽可能地不减少NVM的使用寿命的前提下降低了存储控制器和NVM的能耗,提升了存储控制器和NVM的使用性能。
可选的,若目标数据中未携带期望保持时长,则存储控制器先预测得到目标数据的期望保持时长,再根据预测得到的期望保持时长,执行确定期望保持时长对应的写入条件的步骤。
可选的,若期望保持时间携带在目标数据中,则若目标数据在NVM中的实际保持时长已经达到了期望保持时长,存储控制器不刷新目标数据,而可以直接将目标数据删除。这样就能够减少存储控制器刷新NVM的操作,提升了存储控制器和NVM的使用性能。若期望保持时长由存储控制器预测得到,则待目标数据在NVM中的实际保持时长达到期望保持时长后,存储控制器刷新NVM中的目标数据,以避免目标数据在未失效之前就丢失。
本发明的第二方面提供了一种存储控制器,包括访问单元、选择单元以及查找单元。其中,访问单元可以为一种访问引擎,主要用于接收主机系统下发的目标数据,并按照查找单元查找到的写入条件将目标数据写入NVM中。选择单元主要用于在目标数据中携带有期望保持时长时,选择采用主机系统为目标数据指定的期望保持时长。查找单元可以由逻辑电路、专用集成电路(英文:application specific integrated circuit,缩写:ASIC)、现场可编程门阵列(英文:field-programmable gate array,缩写:FPGA)或其它具有数据计算处理能力的电子元器件来实现,主要用于:根据目标数据的期望保持时长,查找得到期望保持时长对应的写入条件。写入条件可以包括将目标数据写入NVM介质的阈值电压、步进电压、写电流、写时间长度等参数中的一项或多项。访问单元还用于按照查找单元查找到的写入条件将目标数据写入NVM中。
可选的,为了实现完整的数据写入功能,存储控制器还可以包括预测单元,用于预测目标数据的期望保持时长。选择单元还用于在在目标数据中未携带期望保持时长时,选择预测单元来预测得到目标数据的期望保持时长。
可选的,为了实现更为完整的数据写入功能,存储控制器还可以包括刷新单元,在目标数据的期望保持时长由预测单元确定的场景中,刷新单元用于在目标数据在NVM中的实际保持时长达到期望保持时长后,刷新目标数据。若期望保持时长携带在所述目标数据中,则刷新单元无需执行刷新目标数据的操作。
可选的,若期望保持时长携带在所述目标数据中,则预测单元与刷新单元均可以关闭。
可选的,选择单元具体可以由标记寄存器来控制。若主机系统为目标数据指定了期望保持时长,则主机系统将标记寄存器设置为第一状态(如将标记寄存器的标志位置为“1”),若主机系统没有为目标数据指定期望保持时长,则标记寄存器设置在第二状态(如将标志位置为“0”)。当标记寄存器处于第一状态时,选择单元选择目标数据携带的期望保持时长,预测单元和刷新单元均可以关闭;当标记寄存器处于第二状态时,选择单元选择预测单元预测得到目标数据的期望保持时长,刷新单元保持开启,并在目标数据的实际保持时长达到期望保持时长后刷新目标数据。
可选的,存储控制器中可以设置有时间寄存器来存储目标数据的期望保持时长。选择单元可以选择目标数据携带的期望保持时长写入时间寄存器中,或,选择单元可以选择预测单元预测目标数据的期望保持时长,然后预测单元将预测结果写入时间寄存器中。查找单元根据时间寄存器中保存的期望保持时长,查找得到目标数据的写入条件。
可选的,选择单元由多路选择器实现。
本发明的第三方面提供了一种计算设备,该计算设备可以是主机的一部分,也可以是独立在存储系统中的、用于替代存储控制器的物理设备。该计算设备主要包括处理器、存储器、通信接口以及总线。其中,通信接口用于确定待写入的目标数据,并按照期望保持时长对应的写入条件,将目标数据写入NVM中。处理器用于调用存储器中的程序代码,执行如下步骤:若目标数据中携带有主机系统指定的期望保持时长,则存储控制器查找期望保持时长对应的写入条件。
可选的,处理器还可以用于:先预测得到目标数据的期望保持时长,再根据预测得到的期望保持时长,执行确定期望保持时长对应的写入条件的步骤。
可选的,处理器还可以用于:若期望保持时间携带在目标数据中,且目标数据在NVM中的实际保持时长已经达到了期望保持时长,则可以直接将目标数据删除。若期望保持时长由预测得到,则待目标数据在NVM中的实际保持时长达到期望保持时长后,刷新NVM中的目标数据,以避免目标数据在未失效之前就丢失。
本发明的第四方面提供了一种存储装置,包括NVM,以及如本发明第二方面所述的存储控制器或本发明第三方面所述的计算设备。
附图说明
图1为现阶段的技术中基于NVM的存储系统的架构图;
图2为本发明提供的数据写入方法的一个实施例流程图;
图3为本发明提供的计算设备的一个实施例结构图;
图4为本发明提供的存储控制器的一个实施例结构图。
具体实施方式
本发明提供了一种数据写入方法,用于减少NVM的刷新次数。本发明还提供了相关的计算设备、存储控制器和存储装置,以下将分别进行描述。
非易失存储介质顾名思义,是一种非易失性的存储介质。保存在NVM中的数据在NVM掉电后仍然能够长时间保持而不丢失。闪存(英文:flash memory,简称:flash)是一种常见的NVM,现有的NVM存储装置,如SSD等大都是基于闪存实现的。随着科技的发展,现阶段又出现了很多新型的NVM,如相变存储介质(英文:phase change memory,缩写:PCM)、自旋转移力矩随机存取存储介质(英文:spin-transfer torque random access memory,缩写:STT-RAM)、阻性随机存取存储介质(英文:resistive random access memory,缩写:RRAM)等。
基于NVM的存储系统的基本架构请参阅图1,主要包括主机、存储控制器以及NVM存储介质。存储控制器通过主机接口从主机处接收待写入的数据,然后将数据通过存储接口发送给NVM以实现写入操作。一般地,存储控制器包括转换单元、预测单元、查找单元、访问单元、刷新单元。下面以目标数据的写流程为例对存储控制器各单元的功能进行介绍。
访问单元用于接收主机系统下发的数据,并将数据按照查找单元确定的写入条件写入NVM中。
转换单元用于维护一张物理地址与逻辑地址的映射表(为了便于描述,以下简称第一映射表),并根据第一映射表,将主机系统下发的数据的逻辑地址转换为物理地址以供其它单元使用。
预测单元是一种具有预测功能的处理元件,在实际中可以由逻辑电路、ASIC、FPGA或其它具有数据计算处理能力的电子元器件来实现。预测单元主要用于预测目标数据在NVM中保持多长时间后会失效,预测的结果称为期望保持时长。预测单元具体可以根据历史数据的生命周期来对目标数据的期望保持时长进行预测,或结合目标数据的写处理方式(如主机写方式、垃圾回收写方式、磨损均衡写方式等)来预测,也可以通过其它方式来预测,此处不做限定。
数据在NVM中的保持时长与数据写入NVM的条件有直接关联,例如数据写入NVM的电压越高、电流越大,数据在NVM中的保持时长就越长。现阶段一般将数据的保持时长与对应的写入条件记录在一张映射表(为了便于描述,以下简称第二映射表)中,并通过查找单元来对第二映射表进行维护。在预测单元预测得到目标数据的期望保持时长后,查找单元通过查找第二映射表得到目标数据的写入条件。其中写入条件可以包括将目标数据写入NVM的阈值电压、步进电压、写电流、写时间长度等参数中的一项或多项。其中,阈值电压用于表示使得目标数据能够成功写入所述NVM的最低电压;步进电压用于表示存储控制器在访问操作中单次调节电压的幅度;写电流用于表示存储控制器将目标数据写入NVM时使用的电流大小;写时间长度用于表示存储控制器将目标数据成功写入NVM所经历的时间。
表1为第二映射表的一个具体的实例,其中记载了在采用双比特闪存存储单元进行存储时,数据的期望保持时长与写入数据的阈值电压和步进电压的对应关系。
期望保持时长 | 阈值电压/V | 步进电压/V |
>0.5year | 1.40,2.85,3.55,4.25 | 0.3 |
≤0.5year | 1.35,2.75,3.43,4.11 | 0.29 |
≤3months | 1.31,2.66,3.31,3.97 | 0.28 |
≤1.5months | 1.26,2.56,3.19,3.82 | 0.27 |
≤22.5days | 1.21,2.47,3.08,3.68 | 0.26 |
≤11days | 1.17,2.37,2.96,3.54 | 0.25 |
≤5.6days | 1.12,2.28,2.84,3.40 | 0.24 |
≤2.8days | 1.07,2.18,2.82,3.26 | 0.23 |
≤16.8hours | 1.03,2.09,2.60,3.12 | 0.22 |
≤4.2hours | 0.98,1.99,2.48,2.97 | 0.21 |
≤0.5hours | 0.93,1.90,2.37,2.83 | 0.20 |
表1
刷新单元用于对NVM中已保存的数据进行刷新。具体地,刷新单元可以维护有计时单元,该计时单元在目标数据写入NVM时启动,且计时时长为目标数据的期望保持时长。当计时单元到时后,刷新单元对目标数据执行刷新操作,以确保目标数据不丢失。
从上面的介绍可以看出,现有的存储控制器主要通过预测单元来对目标数据所需要保持的时长进行预测,得到期望保持时长。但是仅仅根据历史数据或者是目标数据的写入类型,并不能准确地预测出目标数据需要保持多久后才失效。若预测得到的期望保持时长与实际需要相比偏长,则目标数据在失效后仍占用存储空间,浪费了存储资源,且数据保持时长过长缩短了NVM的使用寿命。因此,现阶段有些技术通过预先设置预测单元的参数,使得预测单元预测得到的期望保持时长与实际需要相比偏短。这就意味着目标数据在期望保持时长结束后很可能仍未失效,需要刷新单元执行刷新操作以目标数据避免丢失。频繁的刷新操作增加了NVM的负担和能耗,严重影响了NVM的使用性能。
为了解决上述问题,本发明提供了一种数据写入方法,适用于存储系统中的存储控制器,其基本流程请参阅图2,包括:
201、接收目标数据。
存储控制器从主机系统处接收待写入的目标数据。
由于目标数据来源于主机系统的应用层面,故主机系统可以基于应用的需要来确定数据的保持策略。以下是几种常见的保持策略。
(一)、基于时间的保持策略。
主机系统可以直接为数据指定一个明确的期望保持时长。数据在NVM中保存超过该时长后即被认为无效可以删除。主机系统还可以为数据指定一个明确的时间点,在超过该时间点后数据即被认为无效可以删除,根据该时间点与当前的时间点就可以换算得到数据的期望保持时长,故相当于主机系统为数据指定了期望保持时长。
本发明对主机系统指定数据期望保持时长的粒度不做限定。例如,数据库中的数据以键值对(英文:key-value,缩写:KV)的形式保存,则每个键值对中均可以带有过期时间戳(可以相当于期望保持时长),这样可以以键值对为粒度设置数据的期望保持时长。或者,主机系统可以为一个或多个文件指定一个期望保持时长,使得数据的期望保持时长以文件为粒度。
基于时间的保持策略在现阶段得到了非常广泛的应用,其中期望保持时长可以通过很多种方式携带在目标数据中。例如,KV型数据库(例如Redis数据库或Aerospike数据库)或文档型数据库(例如MongoDB)中的每条数据记录都可以携带一个过期时间戳,该过期时间戳即相当于主机系统指定的期望保持时长。又例如,卡夫卡(英文:Kafka)消息系统或其它分布式消息系统中使用配置文件来记录日志文件的属性参数,其中,配置文件中记录的log.retention.hours参数即相当于主机系统指定的期望保持时长。
此外,若NVM介质为闪存介质,则由于闪存的写入单位为“页”,则每个页中的数据应具有相同的期望保持时长。但是对于KV型数据库或其它小粒度的存储场景而言,一个页中可以写入多条数据记录,此时可以根据该多条记录中最晚的过期时间戳指定该页中的数据的期望保持时长。
此外,由于闪存的擦除单位为“块”,每个块包括有多个页,故可以通过将数据记录按照过期时间戳排序等方式,将期望保持时长相近的页组织成一个块,使得一个块中的数据的失效时刻相近,有利于闪存块的擦除。由于,闪存块的擦除时刻一般设置为该闪存块中最后一个页面失效的时刻,故本发明可以根据闪存块中各页面的期望保持时间,确定闪存块的擦除时刻。本发明还可以将闪存块的标记或地址信息与闪存块的擦除时刻记录在第三映射表中,以供后续擦除操作时使用。由于第一映射表中也记录有闪存块的地址信息,故第三映射表也可以与第一映射表合并,此处不做限定。
(二)基于时间和数据大小的保持策略
主机系统在指定数据的期望保持时长之外,还可以指定数据大小的第一阈值。在这种情况下,若数据在NVM中保存达到期望保持时长,和/或数据大小超过主机系统指定的第一阈值,数据即被认为无效可以删除。
(三)基于数据大小和数据访问次数的保持策略
主机系统指定数据大小的第二阈值,以及数据访问次数的第三阈值。在这种情况下,若数据大小超过主机系统指定的第二阈值,和/或数据被访问次数超过主机系统指定的第三阈值,数据即被认为无效可以删除。
(四)基于去重的保持策略
当新版本的数据写入NVM后,旧版本的数据被认为无效可以删除。
策略(一)~(四)仅为主机系统常用的四种数据保持策略,主机系统可以采用其中的任一种策略来控制目标数据何时失效,也可以采用其它的策略,本发明中不做限定。
可以看出,策略(一)、(二)中主机系统指定了数据的期望保持时长,该期望保持时长是在应用的层面确定,能够符合实际的业务应用对数据保持时长的需要。在这种场景下,存储控制器在接收到目标数据后直接执行步骤203;
若主机系统采用(三)、(四)或其它与时间无关的策略来确定目标数据的保持方式,则目标数据中不携带保持时长。在这种场景下,存储控制器在接收到目标数据后先执行步骤202,再执行步骤203。
202、预测目标数据的期望保持时长。
若目标数据中未携带期望保持时长,则存储控制器预测目标数据的期望保持时长。具体的预测方法与现有技术基本相同,此处不做赘述。
203、根据目标数据的期望保持时长,确定目标数据的写入条件。
目标数据在NVM中的实际保持时长可以由目标数据写入NVM的条件确定。本发明中,存储控制器根据目标数据的期望保持时长查找第二映射表(数据的保持时长与写入条件的映射表),得到期望保持时长对应的写入条件。写入条件可以包括将目标数据写入NVM介质的阈值电压、步进电压、写电流、写时间长度等参数中的一项或多项。具体的查表方法与现有技术基本相同,此处不做赘述。
204、按照查找到的写入条件,将目标数据写入NVM中。
存储控制器按照期望保持时长对应的写入条件,将目标数据写入NVM中。可以理解地,若按照期望保持时长对应的写入条件将目标数据写入NVM,则在理想状态下,目标数据在NVM中的实际保持时长等于该期望保持时长。
需要指出的是,主机系统确定的期望保持时长能够贴近应用的真实需要,因此若期望保持时长是由主机系统指定的,则目标数据在NVM中的保持时长超过期望保持时长后,可以直接删除,而不对目标数据进行刷新。若期望保持时长由存储控制器预测得到,则不能保证期望保持时长与应用的真实需要符合,在这种场景下,则目标数据在NVM中的保持时长超过期望保持时长后,存储控制器需要对目标数据进行刷新。
本发明实施例提供了一种数据写入方法,其中,若存储控制器接收到的目标数据中携带有期望保持时长,则查找该期望保持时长对应的写入条件,并按照该对应的写入条件将目标数据写入NVM中,使得目标数据在NVM中的真实保持时长能够非常接近该期望保持时长。由于期望保持时长由主机系统在应用层面确定,因此更为贴近应用的实际需要。目标数据在NVM中保存达到了期望保持时长后可以直接删除,无需再进行刷新。本发明实施例在现阶段大量采用基于时间的保持策略的情况下,能够减少存储控制器刷新NVM的操作,在尽可能地不减少NVM的使用寿命的前提下降低了存储控制器和NVM的能耗,提升了NVM的使用性能。
图2所示的数据写入方法还可以由图3所示的计算设备300来实现,该计算设备300可以是主机的一部分,也可以是独立在存储系统中的、用于替代存储控制器的物理设备。该计算设备主要包括处理器301、存储器302、通信接口303以及总线304。其中,处理器301、存储器302和通信接口303可以通过总线304实现彼此之间的通信连接,也可以通过无线传输等其他手段实现通信。
存储器302可以采用易失性存储介质(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM)等,也可以采用非易失性存储介质。第二映射表可以保存在存储器302中,通过软件来实现本发明提供的技术方案时,用于实现本发明提供的数据写入方法的程序代码也可以保存在存储器302中,并由处理器301来执行。
通信接口304用于确定目标数据,并将数据写入NVM存储介质中。
处理器301可以为CPU、图形处理器(英文:graphics processing unit,缩写:GPU)、数字信号处理(英文:digital signal processing,缩写:DSP)、ASIC、FPGA、硬件芯片等具有处理功能的硬件单元中的任意一种或几种的组合。处理器301主要用于执行预测目标数据的期望保持时长,以及确定目标数据的写入条件等操作。处理器执行的具体操作可以参考图2所示方法中的相关描述,此处不做限定。
图3提供的计算设备主要通过软件方法实现图2所示的流程。但是通过计算设备来运行软件的成本和功耗都较高,更适宜用于进行复杂的数据处理。而存储控制器在实际应用中执行的操作一般较为简单且重复度高,故也可以采用硬件电路来实现。硬件电路在电路规模上更为精简、成本更为低廉,且计算速度快,运行能耗低,能够很好的应用在本发明的存储控制器中。
为此,本发明又提供了一种硬件搭建的存储控制器,其结构请参阅图4,主要包括:选择单元401、预测单元402、查找单元403、访问单元404。
其中,访问单元404可以视为一种访问引擎,主要用于:接收主机系统下发的目标数据,并按照查找单元403查找到的写入条件将目标数据写入NVM中。
选择单元401可以视为一个多路选择器(英文Multiplexer,缩写MUX),主要用于:选择采用主机系统为目标数据指定的期望保持时长,或是选择由预测单元402来对目标数据的期望保持时长进行预测。
预测单元402主要用于:在目标数据中未携带期望保持时长时,预测目标数据的期望保持时长。本发明提供的预测单元402与现有技术中的预测单元基本相同,此处不做赘述。
查找单元403主要用于:根据目标数据的期望保持时长,查找第二映射表,得到期望保持时长对应的写入条件。该功能可以由逻辑电路、ASIC、FPGA或其它具有数据计算处理能力的电子元器件来实现。查找单元403还需要维护第二映射表,该第二映射表可以保存在查找单元403中。
该存储控制器在运行时,访问单元404从主机系统处接收待写入的目标数据。若目标数据中不携带期望保持时长,则选择单元401选择预测单元402预测目标数据的期望保持时长;若目标数据中携带期望保持时长,则选择单元401选择目标数据携带的期望保持时长。然后查找单元403根据选择单元401选择的期望保持时长,查找得到目标数据的写入条件。访问单元404按照查找单元403确定的写入条件,将目标数据写入NVM中。这样就实现了图2所示的数据写入方法。本实施例中的相关描述可以参阅图2所示的实施例,此处不做赘述。
为了实现完整的数据写入功能,本发明提供的存储控制器还可以包括转换单元405、刷新单元406。转换单元405用于维护第一映射表(即物理地址与逻辑地址的映射表),并根据第一映射表,将主机系统下发的数据的逻辑地址转换为物理地址以供其它单元使用。刷新单元406用于在目标数据的期望保持时长由预测单元402确定的场景中,当目标数据在NVM中的实际保持时长达到期望保持时长后,刷新目标数据。可选的,若目标数据的期望保持时长由主机系统指定,则刷新单元406可以关闭,无需刷新目标数据。
可选地,存储控制器中可以设置有时间寄存器来存储目标数据的期望保持时长。该时间寄存器可以设置在查找单元403上,也可以作为一个独立的单元设置在存储控制器中,此处不做限定。选择单元401可以选择目标数据携带的期望保持时长写入时间寄存器中,或,选择单元401可以选择预测单元402预测目标数据的期望保持时长,预测单元402将预测结果写入时间寄存器中。查找单元403根据时间寄存器中保存的期望保持时长,查找第二映射表,得到目标数据的写入条件。
可选地,选择单元401具体可以由标记寄存器来控制。该标记寄存器可以设置在选择单元401上,也可以作为一个独立的单元设置在存储控制器中。具体的,若主机系统为目标数据指定了期望保持时长,则主机系统将标记寄存器设置为第一状态(如将标记寄存器的标志位置为“1”),若主机系统没有为目标数据指定期望保持时长,则标记寄存器设置在第二状态(如将标志位置为“0”)。当标记寄存器处于第一状态时,选择单元401将目标数据携带的期望保持时长写入时间寄存器中,预测单元402和刷新单元406均可以关闭;当标记寄存器处于第二状态时,选择单元401选择预测单元402预测目标数据的期望保持时长,预测单元402将预测结果写入时间寄存器中,刷新单元保持开启,并在目标数据的实际保持时长达到期望保持时长后刷新目标数据。
存储控制器可以是独立的装置,也可以与NVM介质一同组成存储装置,例如现有的许多SSD就是将存储控制器与闪存介质封装为一体。为此,本发明还提供了一种存储装置,包括NVM介质,以及图3所示的计算设备或图4所示的存储控制器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明所述的“第一”、“第二”等表述仅仅用于区分不同的技术特征,并不用于对技术特征产生逻辑或时序上的限定。例如,本发明中的“第一映射表”与“第三映射表”,在实际应用中也可以为同一张表格的不同部分,本发明中的“第一阈值”,在实际应用中也可以等于“第二阈值”。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:read-onlymemory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据写入方法,适用于存储控制器,所述存储控制器用于将主机下发的数据写入非易失存储介质NVM中,其特征在于,所述方法包括:
从所述主机处接收待写入的目标数据;
若所述目标数据中携带有期望保持时长,则确定所述期望保持时长对应的写入条件,所述写入条件包括向所述NVM写入所述目标数据时所采用的阈值电压、步进电压、写电流、写时间长度中的一个或多个参数;
按照所述期望保持时长对应的写入条件,将所述目标数据写入所述NVM中;
若所述期望保持时长携带在所述目标数据中,则不对所述目标数据进行刷新。
2.根据权利要求1所述的数据写入方法,其特征在于,所述方法在所述确定所述期望保持时长对应的写入条件之前还包括:
若所述目标数据中没有携带所述期望保持时长,则预测得到所述目标数据的期望保持时长,再执行所述确定所述期望保持时长对应的写入条件的步骤。
3.根据权利要求1或2所述的数据写入方法,其特征在于,所述方法还包括:
若所述期望保持时长由所述存储控制器预测得到,则待所述目标数据在所述NVM中的实际保持时长达到所述期望保持时长后,刷新所述目标数据。
4.一种存储控制器,用于将主机下发的数据写入非易失存储介质NVM中,其特征在于,包括:
访问单元,用于从所述主机处接收待写入的目标数据;
选择单元,用于在所述目标数据中携带有期望保持时长时,选择所述目标数据中携带的期望保持时长;
查找单元,用于查找所述期望保持时长对应的写入条件,所述写入条件包括向所述NVM写入所述目标数据时所采用的阈值电压、步进电压、写电流、写时间长度中的一个或多个参数;
所述访问单元还用于:按照所述期望保持时长对应的写入条件,将所述目标数据写入所述NVM中;
刷新单元用于:若所述期望保持时长携带在所述目标数据中,则不对所述目标数据进行刷新。
5.根据权利要求4所述的存储控制器,其特征在于,所述存储控制器还包括:
预测单元,用于预测得到所述目标数据的期望保持时长;
所述选择单元,还用于在所述目标数据中没有携带所述期望保持时长时,选择所述预测单元预测得到所述目标数据的期望保持时长。
6.根据权利要求5所述的存储控制器,其特征在于,所述存储控制器还包括刷新单元,用于:
若所述期望保持时长由所述预测单元预测得到,则待所述目标数据在所述NVM中的实际保持时长达到所述期望保持时长后,刷新所述目标数据。
7.根据权利要求5至6中任一项所述的存储控制器,其特征在于,所述存储控制器还包括标记寄存器,其中,若所述目标数据中携带有所述期望保持时长,则所述标记寄存器置为第一状态,若所述目标数据中没有携带所述期望保持时长,则所述标记寄存器置为第二状态;
所述选择单元具体用于:
在所述标记寄存器处于第一状态时,选择所述目标数据中携带的期望保持时长;在所述标记寄存器处于第二状态时,选择所述预测单元预测得到所述目标数据的期望保持时长。
8.根据权利要求4至6中任一项所述的存储控制器,其特征在于,所述选择单元为多路选择器。
9.一种计算设备,其特征在于,包括处理器、存储器、通信接口以及总线;
所述通信接口,用于确定待写入的目标数据;
所述处理器用于通过调用所述存储器中的程序代码,执行:在所述目标数据中携带有期望保持时长时,确定所述期望保持时长对应的写入条件,所述写入条件包括向非易失存储介质NVM写入所述目标数据时所采用的阈值电压、步进电压、写电流、写时间长度中的一个或多个参数;
所述通信接口还用于:按照所述期望保持时长对应的写入条件,将所述目标数据写入所述NVM中;
所述处理器还用于若所述期望保持时长携带在所述目标数据中,则不对所述目标数据进行刷新。
10.一种存储装置,其特征在于,包括非易失存储介质NVM,还包括如权利要求4至8中任一项所述的存储控制器,或如权利要求9所述的计算设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610362315.XA CN107436726B (zh) | 2016-05-26 | 2016-05-26 | 数据写入方法、存储控制器、计算设备以及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610362315.XA CN107436726B (zh) | 2016-05-26 | 2016-05-26 | 数据写入方法、存储控制器、计算设备以及存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107436726A CN107436726A (zh) | 2017-12-05 |
CN107436726B true CN107436726B (zh) | 2020-09-08 |
Family
ID=60453699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610362315.XA Active CN107436726B (zh) | 2016-05-26 | 2016-05-26 | 数据写入方法、存储控制器、计算设备以及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107436726B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515938B (zh) * | 2019-05-09 | 2023-12-01 | 北京科东电力控制系统有限责任公司 | 基于kafka消息总线的数据汇聚存储方法、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498992A (zh) * | 2008-02-01 | 2009-08-05 | 普罗斯特系统公司 | 用于在可移动磁盘驱动存储系统上实现worm模式的方法 |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
CN105138472A (zh) * | 2014-06-06 | 2015-12-09 | 华为技术有限公司 | 闪存磨损优化方法及设备 |
CN105242871A (zh) * | 2014-06-06 | 2016-01-13 | 华为技术有限公司 | 一种数据写入方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10353598B2 (en) * | 2014-10-06 | 2019-07-16 | Sandisk Technologies Llc | System and method for refreshing data in a memory device |
-
2016
- 2016-05-26 CN CN201610362315.XA patent/CN107436726B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101498992A (zh) * | 2008-02-01 | 2009-08-05 | 普罗斯特系统公司 | 用于在可移动磁盘驱动存储系统上实现worm模式的方法 |
CN105138472A (zh) * | 2014-06-06 | 2015-12-09 | 华为技术有限公司 | 闪存磨损优化方法及设备 |
CN105242871A (zh) * | 2014-06-06 | 2016-01-13 | 华为技术有限公司 | 一种数据写入方法及装置 |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107436726A (zh) | 2017-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593259B2 (en) | Directed sanitization of memory | |
US11704239B2 (en) | Garbage collection method for storage medium, storage medium, and program product | |
US8417878B2 (en) | Selection of units for garbage collection in flash memory | |
US11681442B2 (en) | Performing hybrid wear leveling operations based on a sub-total write counter | |
US10360155B1 (en) | Multi-tier memory management | |
CN111752484B (zh) | 一种ssd控制器、固态硬盘及数据写入方法 | |
US20230097187A1 (en) | Hybrid wear leveling for in-place data replacement media | |
CN112506438B (zh) | 一种映射表管理方法及固态硬盘 | |
US11410734B1 (en) | Voltage bin selection for blocks of a memory device after power up of the memory device | |
US11704024B2 (en) | Multi-level wear leveling for non-volatile memory | |
US11443830B1 (en) | Error avoidance based on voltage distribution parameters of block families | |
CN109213421B (zh) | 一种存储记录方法及装置 | |
CN107436726B (zh) | 数据写入方法、存储控制器、计算设备以及存储装置 | |
CN113467713A (zh) | 数据分离方法及固态硬盘 | |
US11698742B2 (en) | Garbage collection in a memory component using an adjusted parameter | |
US20240036725A1 (en) | Temporal metric driven media management scheme | |
CN114510195A (zh) | 数据存储的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |