CN111638852A - 将数据写入固态硬盘的方法及固态硬盘 - Google Patents

将数据写入固态硬盘的方法及固态硬盘 Download PDF

Info

Publication number
CN111638852A
CN111638852A CN202010311530.3A CN202010311530A CN111638852A CN 111638852 A CN111638852 A CN 111638852A CN 202010311530 A CN202010311530 A CN 202010311530A CN 111638852 A CN111638852 A CN 111638852A
Authority
CN
China
Prior art keywords
data
nvm
write
ssd
written data
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.)
Pending
Application number
CN202010311530.3A
Other languages
English (en)
Inventor
吴黎明
黄斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010311530.3A priority Critical patent/CN111638852A/zh
Publication of CN111638852A publication Critical patent/CN111638852A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

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)

Abstract

本发明实施例提供一种将数据写入固态硬盘的方法及固态硬盘。该SSD包括控制器和存储器,存储器的存储介质包括NAND Flash和NVM,NVM包括写区域。该方法包括:接收写操作请求,写操作请求包括预写入数据;确定预写入数据未存储在写区域;将预写入数据写入写区域。本发明实施例将预写入数据写入NVM的写区域,可以减少对NAND Flash访问,即降低SSD中NAND Flash的被访问频率,从而减少对NAND Flash的磨损;且,由于NVM的非易失特性,存储于NVM的数据掉电不丢失,因此,在供电中断时,SSD无需电容提供备电。基于上述原因,本发明实施例SSD的使用寿命增长。

Description

将数据写入固态硬盘的方法及固态硬盘
技术领域
本发明实施例涉及存储技术,尤其涉及一种将数据写入固态硬盘的方法及固态硬盘。
背景技术
固态硬盘(Solid State Drives,简称:SSD),简称固盘,广泛应用于服务器、台式机、笔记本、移动设备、游戏机等。
如图1所示,SSD 10多采用半导体NAND Flash14作为存储器的存储介质;并通过电容15来提供备电,以避免内存13中的数据在掉电时丢失;通过控制器12接收主机11的读写操作请求,并对内存13或NAND Flash14进行读写。
现有技术中,当读写操作请求是针对NAND Flash 14时,需通过内存13作为中介,从NAND Flash 14读取读操作请求对应的数据到内存13,然后再返回给主机11;或者,将写操作请求对应的数据先写入内存13,然后再转存至NAND Flash 14。这样,若缓存在内存13中的写操作请求对应的数据还未转存至NAND Flash 14时,供电中断,需要电容15提供备电,将内存13中的数据写到NAND Flash 14。
然而,基于历史数据统计,NAND Flash和电容是SSD的主要故障源。因此,SSD中,电容的存在及对NAND Flash过多的读写可能导致SSD的使用寿命较短。
发明内容
本发明实施例提供一种将数据写入固态硬盘的方法及固态硬盘,以增长SSD的使用寿命,提升SSD的可靠性。
第一方面,本发明实施例提供一种将数据写入固态硬盘SSD的方法,所述SSD包括控制器和存储器,所述存储器的存储介质包括NAND Flash和非易失性存储器NVM,所述NVM包括写区域,所述方法包括:
接收写操作请求,所述写操作请求包括预写入数据;
确定所述预写入数据未存储在所述写区域;
将所述预写入数据写入所述写区域。
根据第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
判断所述预写入数据是否已存储在所述NAND Flash;
若所述预写入数据已存储在所述NAND Flash,将NAND Flash中存储所述预写入数据的页置为无效。
根据第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述将所述预写入数据写入所述写区域之后,所述方法还包括:
保存映射关系,所述映射关系包括所述预写入数据的逻辑地址与所述预写入数据写入所述写区域的位置之间的对应关系。
根据第一方面、第一方面的第一种至第二种可能的实现方式中任意一种,在第一方面的第三种可能的实现方式中,所述方法还包括:
判断所述预写入数据的被访问频率是否达到预设阈值;
当所述预写入数据的被访问频率达到所述预设阈值时,迁移所述预写入数据至所述读区域。
根据第一方面、第一方面的第一种至第三种可能的实现方式中任意一种,在第一方面的第四种可能的实现方式中,所述方法还包括:
判断所述NAND Flash中页的被访问频率是否大于或等于所述预设阈值;
当所述NAND Flash中页的被访问频率大于或等于所述预设阈值时,迁移所述被访问频率大于或等于所述预设阈值的页中的数据至所述NVM的读区域。
第二方面,本发明实施例提供一种将数据写入固态硬盘SSD的方法,所述SSD包括控制器和存储器,所述存储器的存储介质包括NAND Flash和非易失性存储器NVM,所述NVM包括写区域和读区域,所述方法包括:
接收写操作请求,所述写操作请求包括预写入数据;
确定所述预写入数据已存储在所述读区域;
将所述读区域中的所述预写入数据迁移至所述写区域。
根据第二方面,在第二方面的第一种可能的实现方式中,所述将所述读区域中的所述预写入数据迁移至所述写区域之后,所述方法还包括:
更新第一映射关系为第二映射关系,所述第一映射关系包括所述预写入数据的逻辑地址与所述预写入数据在所述读区域的位置之间的对应关系,所述第二映射关系包括所述预写入数据的逻辑地址与所述预写入数据在所述写区域的位置之间的对应关系。
根据第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述方法还包括:
判断所述预写入数据的被访问频率是否达到预设阈值;
当所述预写入数据的被访问频率达到所述预设阈值时,迁移所述预写入数据至所述读区域。
根据第二方面、第二方面的第一种至第二种可能的实现方式中任意一种,在第二方面的第三种可能的实现方式中,所述方法还包括:
判断所述NAND Flash中页的被访问频率是否大于或等于所述预设阈值;
当所述NAND Flash中页的被访问频率大于或等于所述预设阈值时,迁移所述被访问频率大于或等于所述预设阈值的页中的数据至所述NVM的读区域。
根据第二方面、第二方面的第一种至第三种可能的实现方式中任意一种,在第二方面的第四种可能的实现方式中,所述NVM还包括空闲区域,所述将所述读区域中的所述预写入数据迁移至所述写区域之后,所述方法还包括:
在所述空闲区域中,从预留给所述写区域的页中调整N页给所述读区域,所述N为所述预写入数据对应的页数。
第三方面,本发明实施例提供一种固态硬盘SSD,所述SSD包括控制器和存储器,所述存储器的存储介质包括NAND Flash和非易失性存储器NVM,所述NVM包括写区域,其中,
所述控制器,用于接收写操作请求,所述写操作请求包括预写入数据;确定所述预写入数据未存储在所述写区域;及,将所述预写入数据写入所述写区域;
所述写区域用于存储所述预写入数据。
根据第三方面,在第三方面的第一种可能的实现方式中,所述控制器还用于:
判断所述预写入数据是否已存储在所述NAND Flash;
若所述预写入数据已存储在所述NAND Flash,将NAND Flash中存储所述预写入数据的页置为无效。
根据第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述控制器还用于:
保存映射关系,所述映射关系包括预写入数据的逻辑地址与所述预写入数据写入所述写区域的位置之间的对应关系。
根据第三方面、第三方面的第一种至第二种可能的实现方式中任意一种,在第三方面的第三种可能的实现方式中,所述控制器还用于:
判断所述预写入数据的被访问频率是否达到预设阈值;
当所述预写入数据的被访问频率达到所述预设阈值时,迁移所述预写入数据至所述读区域。
根据第三方面、第三方面的第一种至第三种可能的实现方式中任意一种,在第三方面的第四种可能的实现方式中,所述控制器还用于:
判断所述NAND Flash中页的被访问频率是否大于或等于所述预设阈值;
当所述NAND Flash中页的被访问频率大于或等于所述预设阈值时,迁移所述被访问频率大于或等于所述预设阈值的页中的数据至所述NVM的读区域。
第四方面,本发明实施例提供一种固态硬盘SSD,所述SSD包括控制器和存储器,所述存储器的存储介质包括NAND Flash和非易失性存储器NVM,所述NVM包括写区域和读区域,其中,
所述控制器,用于接收写操作请求,所述写操作请求包括预写入数据;确定所述预写入数据已存储在所述读区域;及,将所述读区域中的所述预写入数据迁移至所述写区域。
根据第四方面,在第四方面的第一种可能的实现方式中,所述控制器还用于:
更新第一映射关系为第二映射关系,所述第一映射关系包括所述预写入数据的逻辑地址与所述预写入数据在所述读区域的位置之间的对应关系,所述第二映射关系包括所述预写入数据的逻辑地址与所述预写入数据在所述写区域的位置之间的对应关系。
根据第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述控制器还用于:
判断所述预写入数据的被访问频率是否达到预设阈值;
当所述预写入数据的被访问频率达到所述预设阈值时,迁移所述预写入数据至所述读区域。
根据第四方面、第四方面的第一种至第二种可能的实现方式中任意一种,在第四方面的第三种可能的实现方式中,所述控制器还用于:
判断所述NAND Flash中页的被访问频率是否大于或等于所述预设阈值;
当所述NAND Flash中页的被访问频率大于或等于所述预设阈值时,迁移所述被访问频率大于或等于所述预设阈值的页中的数据至所述NVM的读区域。
根据第四方面、第四方面的第一种至第三种可能的实现方式中任意一种,在第四方面的第四种可能的实现方式中,所述NVM还包括空闲区域,所述控制器还用于:
在所述空闲区域中,从预留给所述写区域的页中调整N页给所述读区域,所述N为所述预写入数据对应的页数。
本发明实施例提供一种将数据写入固态硬盘的方法及固态硬盘,将预写入数据写入NVM的写区域,从而能减少对NAND Flash访问,即降低SSD中NAND Flash的被访问频率,减少对NAND Flash的磨损;且,由于NVM的非易失特性,存储于NVM的数据掉电不丢失,因此,在供电中断时,SSD无需电容提供备电。基于上述原因,本发明实施例SSD的使用寿命增长。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术SSD的应用场景示意图;
图2为SLC的存储单元中所存储数据的示意图;
图3为MLC的存储单元中所存储数据的示意图;
图4为本发明SSD的结构示意图;
图5为本发明SSD中NVM的结构示例图;
图6为本发明将数据写入SSD的方法实施例一的流程图;
图7为本发明将数据写入SSD的方法实施例二的流程图;
图8为本发明实施例中映射关系示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,NAND Flash是SSD实际存储数据的物理介质。其中,NAND Flash包括单层式单元储存(英文:Single Level Cell,简称:SLC)、多层式单元储存(英文:MultiLevel Cell,简称:MLC)、三层式单元储存(英文:Triple Level Cell,简称:TLC)几种。在企业级存储领域,主要用到SLC和MLC。TLC这种介质的擦写次数较低,目前主要用在消费级的电子产品上。
SLC技术特点是在浮置栅极与源极之中的氧化薄膜更薄,在写入数据时通过对浮置栅极的电荷加电压,然后通过源极,即可将所储存的电荷消除,通过这样的方式,便可储存1个信息单元,这种技术能提供快速的程序编程与读取。但该技术受限于硅效率(英文:Silicon efficiency),须用较先进的流程强化技术,才能向上提升SLC处理技术。
SLC在每个存储单元里存储1比特(英文:bit)的数据,存储的数据是“0”还是“1”是由基于电压阈值来判定。对于NAND Flash的写入,即编程,就是对其充电,使得NAND Flash的电压超过图2所示的电压判定点A,存储单元就表示“0”,也就是已写入;如果没有充电或者电压阈值低于电压判定点A,就表示“1”,也就是擦除,图2中横轴代表电压。
英特尔公司在1997年9月最先开发成功MLC,其作用是将两个单位的信息存入一个浮置栅极(英文:Floating Gate),然后利用不同电位的电荷,通过内存储存的电压控制精准读写。MLC通过使用大量的电压等级,每一个单元储存两位数据,数据密度比较大。SLC储存0和1两个值,而MLC可以一次储存4个以上的值。因此,MLC有比较高的储存密度。
如图3所示,MLC在每个存储单元里存储2bit的数据,存储的数据是“00”,或“01”,或“10”,或“11”也是基于电压阈值的判定。当电压小于电压判定点B时,代表”11”;当电压在电压判定点B和电压判定点C之间,则代表“10”;电压在电压判定点C和电压判定点D之间,则表示”01”;而电压达到电压判定点D以上,则表示”00”。
TLC的一个存储单元可以存储3bit,因此需要8个等级的电位进行编码解码才能实现。实质上,TLC属于MLC。
当前业界关于新的存储介质的研究方兴未艾,各种新的技术或新型的存储介质层出不穷。新的存储介质例如有相变内存(英文:Phase Change Random Access Memory,简称:PCRAM/PCM)、磁阻式随机存取内存(英文:Magnetoresistive Random Access Memory,简称:MRAM)、阻变式随机存取内存(英文:Resistive Random Access Memory,简称:RRAM/ReRAM)和自旋转移力矩随机存取内存(英文:spin transfer torque random accessmemory,简称:STT-RAM)等,本发明不予限制。
上面提到的这几种新型的存储介质,都属于非易失性存储介质(英文:non-volatile memory,简称:NVM)。在可预见的将来,基于保护现有投资和成本上的考虑,NANDFlash作为主要存储介质将长期存在。同时,新型的非易失的存储介质将逐步担当重要角色,直至逐步取代NAND Flash。在这个演变过程中,可能存在同一SSD上有多种介质共存的情况。
基于上述原因,本发明实施例提供一种SSD。
如图4所示,SSD 40包括控制器42和存储器,存储器的存储介质包括NAND Flash44和NVM 43。
其中,NVM与普通内存不同的是,NVM介质本身具备掉电不丢失数据的特性。基于此特性,NVM具备如下功能特性:缓存写,在NVM中凑成完整的页,再根据该页的被访问频率以及NVM的容量大小判断是否转写到NAND Flash上;加速读,将被访问频率高的数据迁移到NVM。
图5示出了NVM的区域划分。如图5所示,NVM 50可以包括4个逻辑区域:元数据区域51、读区域52、写区域53和空闲区域54,实现对NVM的分区管理。各区域的作用如下:
元数据区域51,用于存放SSD的元数据。例如,元数据可以为映射关系、写操作对应的先入先出(First Input First Output,简称:FIFO)双向链表等。
读区域52,用于读加速,SSD中被访问频率(即读次数)高于或等于预设阈值的页,会被迁移到读区域52。
写区域53,对SSD的所有写操作,都是先写入该写区域53。该区域写满后的淘汰,按最近最少被访问频率的策略淘汰。
空闲区域54,该区域由读区域52和写区域53共用,为读操作或写操作提供空闲的页,读操作和写操作按照读区域52和写区域53的比例进行空闲区域分享。
补充说明的是,NVM中写区域和读区域的比例可调。通常情况下,写区域远大于读区域,特别地,NVM中可以只有写区域,没有读区域。另外,不同的应用场景对SSD的性能要求和擦写次数要求是不一样的。因此,基于SSD的使用寿命、SSD的性能以及成本上的考量,可以按照用户的实际业务需求配备满足要求擦写次数的SSD,通过调配NVM和NAND的搭配比例,为用户提供性价比较高的产品,避免过度配置带来的额外开支,提高资源利用率。
具体地,控制器42用于执行以下方法实施例所保护的技术方案,例如,如图6所示的技术方案,以实现将数据写入NVM 43的写区域,该写区域用于存储预写入数据。其中,NVM具备按字节(Byte)寻址,将数据以位(bit)为单位写入及可按位改写的能力。
如图6所示,本发明实施例提供一种将数据写入SSD的方法,该方法可以由SSD中的控制器来执行。该方法包括:
S601、接收写操作请求,该写操作请求包括预写入数据。
S602、确定该预写入数据未存储在写区域。
S603、将预写入数据写入写区域。
具体地,对SSD 40的所有写操作,都是先写入写区域。
对于将要写入SSD 40的上述预写入数据,该预写入数据可能已存储在写区域中,因此,执行S602,首先确定该预写入数据未存储在写区域。
本发明实施例将预写入数据写入NVM的写区域,可以减少对NAND Flash访问,即降低SSD中NAND Flash的被访问频率,从而减少对NAND Flash的磨损;且,由于NVM的非易失特性,存储于NVM的数据掉电不丢失,因此,在供电中断时,SSD无需电容提供备电。基于上述原因,本发明实施例SSD的使用寿命增长。
在上述实施例中,将数据写入SSD的方法还可以包括:判断预写入数据是否已存储在NAND Flash;若预写入数据已存储在NAND Flash,将NAND Flash中存储预写入数据的页置为无效。该实施例可避免在SSD中保存两份相同的数据,进而造成存储空间的浪费。
进一步地,S603之后,该方法还可以包括:保存映射关系,该映射关系包括预写入数据的逻辑地址与预写入数据写入写区域的位置之间的对应关系。同时参考图4,根据该映射关系,控制器42可以方便地对NVM 43和NAND Flash 44进行读写。
由于NVM 43的读区域用于存储被访问频率(即读次数)高于或等于预设阈值的数据,NAND Flash 44用于存储被访问频率(即读次数)低于预设阈值的数据,因此,上述方法还可以包括:判断预写入数据的被访问频率是否达到预设阈值;当预写入数据的被访问频率达到预设阈值时,迁移预写入数据至读区域,以实现预写入数据从写区域迁移至读区域,加速对预写入数据的读取。
同理,该方法还可以包括:判断NAND Flash中页的被访问频率是否大于或等于预设阈值;当NAND Flash中页的被访问频率大于或等于预设阈值时,迁移被访问频率大于或等于预设阈值的页中的数据至NVM的读区域,以实现数据从NAND Flash迁移至读区域,加速对该数据的读取,利用数据的时间局部性和空间局部性,将频繁被修改的数据以及其它热点数据存储在NVM,减少对NAND Flash的磨损。
另外,控制器42还可以用于执行如图7所示的步骤。如图7所示,本发明实施例提供一种将数据写入SSD的方法,该方法包括:
S701、接收写操作请求,该写操作请求包括预写入数据。
S702、确定预写入数据已存储在读区域。
S703、将读区域中的预写入数据迁移至写区域。
具体地,可以将第二双向链表中预写入数据对应的结点更新至第一双向链表的尾部。其中,第一双向链表中各结点用于存储写区域中各页的逻辑地址;第二双向链表中各结点用于存储读区域中各页的逻辑地址。以实现NVM中读区域和写区域所存储数据的相互迁移。
若预写入数据已存储在NVM的读区域,则将其迁移至写区域,具体实现中仅迁移读区域中的节点至写区域即可。
本发明实施例将已存储在读区域的预写入数据迁移至写区域,该迁移仅涉及NVM中两个不同区域,与NAND Flash无关,因此,可以减少对NAND Flash访问,即降低SSD中NANDFlash的被访问频率,从而减少对NAND Flash的磨损;且,由于NVM的非易失特性,存储于NVM的数据掉电不丢失,因此,在供电中断时,SSD无需电容提供备电。基于上述原因,本发明实施例SSD的使用寿命增长。
上述实施例中,S703之后,该方法还可以包括:更新第一映射关系为第二映射关系。其中,第一映射关系包括预写入数据的逻辑地址与预写入数据在读区域的位置之间的对应关系;第二映射关系包括预写入数据的逻辑地址与预写入数据在写区域的位置之间的对应关系。同时参考图4,根据该映射关系,控制器42可以方便地对NVM 43和NAND Flash 44进行读写。
由于NVM 43的读区域用于存储被访问频率(即读次数)高于或等于预设阈值的数据,NAND Flash 44用于存储被访问频率(即读次数)低于预设阈值的数据,因此,上述方法还可以包括:判断预写入数据的被访问频率是否达到预设阈值;当预写入数据的被访问频率达到预设阈值时,迁移预写入数据至读区域,以实现预写入数据从写区域迁移至读区域,加速对预写入数据数据的读取。
同理,该方法还可以包括:判断NAND Flash中页的被访问频率是否大于或等于预设阈值;当NAND Flash中页的被访问频率大于或等于预设阈值时,迁移被访问频率大于或等于预设阈值的页中的数据至NVM的读区域,以实现数据从NAND Flash迁移至读区域,加速对该数据的读取,利用数据的时间局部性和空间局部性,将频繁被修改的数据以及其它热点数据存储在NVM,减少对NAND Flash的磨损。
进一步地,NVM 43还可以包括空闲区域,S703之后,该方法还可以包括:在空闲区域中,从预留给写区域的页中调整N页给读区域,其中,N为预写入数据对应的页数。
对于SSD中已存储上述预写入数据的情况,控制器42还需获取存储位置,以确定后续操作。具体地,分别从以下几种应用场景说明。
第一种应用场景中,预写入数据已存储在SSD中的NAND Flash。该应用场景至少包括两种实现方式。
第一种实现方式中,预写入数据在NAND Flash中占用完整的页。此时,更新映射关系,即将上述预写入数据的逻辑地址指向预写入数据写入写区域的位置。其中,映射关系包括SSD中所有页的逻辑地址与物理地址的对应关系。
第二种实现方式中,预写入数据在NAND Flash中占用非完整的页。此时,将NANDFlash中与预写入数据对应的页中除与预写入数据的逻辑地址的范围相同的部分之外的数据迁移至NVM的写区域;在写区域中,组合已写入的预写入数据和迁移至写区域的数据组成新的页;然后,更新映射关系中预写入数据的逻辑地址的指向,使其指向上述新的页的地址。
其中,上述两种实现方式的区别在于:第一种实现方式用于说明预写入数据的大小正好是NAND Flash中页的整数倍,此时,仅需更新映射关系中逻辑地址与物理地址的对应关系即可,在映射关系中,增加该预写入数据的逻辑地址及其在NVM中的物理地址的对应关系;第二种实现方式用于说明预写入数据的大小不是NAND Flash中页的整数倍时的处理。
例如,预写入数据的大小为4KB,且该预写入数据已存储在NAND Flash中第一页,NAND Flash中页的大小为8KB,第一页在映射关系中对应一逻辑地址和物理地址。在写入该预写入数据时,将第一页中除与预写入数据的逻辑地址的范围相同的部分之外的数据迁移至写区域;在写区域中,组合预写入数据和迁移至写区域的数据组成新的页;然后,更新映射关系预设映射关系中预写入数据的逻辑地址的指向,使其指向组合后新的页的地址。
可选地,将上述新的页的地址保存至第一双向链表的尾部,该第一双向链表中各结点用于存储写区域中各页的逻辑地址。
具体地,第一双向链表中每一个结点用于表示写区域中一页。结点有前驱指针和后继指针,前驱指针指向第一双向链表的前驱结点,后继指针指向第一双向链表的后继结点;另外,结点中还包括页的逻辑地址。写区域的大小决定了第一双向链表中包含的结点的个数。采用第一双向链表记录写区域中各个页的先后顺序,从而方便对写区域的管理。例如,在写入数据的时候,会将对应的页的信息插入第一双向链表的尾部;淘汰的时候,会从第一双向链表的首部选取页。
第二种应用场景中,预写入数据已存储在SSD中的NVM的写区域。该应用场景下,至少包括以下实现方式:接收请求方发送的写操作请求,该写操作请求包括预写入数据;确定上述预写入数据已存储在写区域;在写区域中存储预写入数据的位置重新写入预写入数据。
将第一双向链表中预写入数据对应的结点调整至第一双向链表的尾部。该应用场景中,实现写区域所存储数据的内部迁移。若预写入数据已存储在写区域,则将其在第一双向链表中对应的结点迁移至第一双向链表的尾部。
可选地,S603之后,该方法还可以包括:将预写入数据对应的页的地址保存至第一双向链表的尾部。
以及,根据预写入数据对应的页数,更新NVM中已写入页的计数;若判断计数大于或等于第一阈值,则从NVM迁移第一阈值个数的页至NAND Flash,以实现NVM有足够的空间供新数据的写入和/或SSD中其他区域所存储数据的迁移,实现SSD中存储数据的动态调整。
特别地,在预写入数据写入写区域之前,若判断写区域已满,自第一双向链表的首部开始,判断第一双向链表中结点对应的页的读次数大于或等于第二阈值,则迁移预写入数据对应的页数的页中的数据至读区域;将页中的数据在读区域中对应的页的地址保存至第二双向链表,该第二双向链表中各结点用于存储读区域中各页的逻辑地址。与写区域类似,读区域对应第二双向链表,该第二双向链表的结构与第一双向链表的结构相同,此处不再赘述。
迁移预写入数据对应的页数的页中的数据至读区域之前,若判断读区域已满,或,若判断写区域已满,自第一双向链表的首部开始,判断第一双向链表中结点对应的页的读次数小于第二阈值,则自第二双向链表的首部开始,迁移预写入数据对应的页数的页中的数据至NAND Flash,以实时更新读区域中数据,在存储空间不足时,及时将被访问频率低的数据迁移至NAND Flash,进一步保证SSD的性能。
同时,累加NAND Flash对应的迁移次数;若判断迁移次数大于或等于第三阈值,则从NVM选取该第三阈值个数的页迁移至NAND Flash,所选取的页为从写区域对应的第一双向链表的首部开始的该第三阈值个数的页,其中,该第三阈值由SSD中NVM与NAND Flash所占的比例确定。该实施例可平衡SSD中NAND Flash与NVM所存储的数据,避免数据全部存储在NVM中,造成NAND Flash的存储空间的浪费。
该第二种应用场景中,预写入数据已存储在写区域,此时,在覆盖写的同时,考虑NVM中各区域及NAND Flash中存储空间是否充足,并根据上述说明进行其中所存储数据的调整,从而保证SSD中各存储介质有足够的空间以满足上述需求。
综上,存储在SSD中的数据,实质上是存储在NVM或NAND Flash。具体地,NVM保存被访问频率高的数据,NAND Flash保存被访问频率较低的数据。被访问频率的高低可以通过多种方式判断,例如,设定一预设阈值,根据固定时间内数据被访问频率与该预设阈值的对比,获得数据的存储位置,此时,数据所在页的被访问频率保存在上述映射关系之中;或者,数据所在页在上述映射关系中的位置反应数据的被访问频率,等等,本发明不予限制。下面以几个具体的实施例对本发明SSD中已存储数据的读取。
在上述实施例的基础上,该方法还可以包括:累加预读取数据所在的页的读次数,其中,上述映射关系包括SSD中所有页的读次数。该实施例中,数据的被访问频率可以通过读次数体现,该读次数包含在预设映射关系中。可选地,数据的被访问频率还可以通过其它形式实现,此处不再赘述。
其中,映射关系可以表示为如图8所示的映射表的形式。在图8中,每一个方框代表一个基本的映射单元,其大小例如为4KB或者8KB。对应地,还可以使用一个结构体来表示与预设映射关系对应的字段。其中,单个映射关系对应的字段包括NVM或NAND的物理地址;用于指示该方框对应的页位于NVM或NAND的指示位,例如,该指示位可以用一个比特(bit)位来表示;及该方框对应的页的读计数。需说明的是,页的大小随NAND中页的大小的变化而变化。现有技术中页的大小通常为4KB/8KB,但本发明不以此为限制。
一种实施例中,预读取数据的物理地址位于NAND Flash。累加预读取数据所在的页的读次数之后,该方法还可以包括:对预读取数据所在的每一页,若判断预读取数据所在的页的读次数大于或等于第二阈值,且NVM中有空闲页,则将读次数大于或等于第二阈值的页中的数据迁移至NVM中空闲页。本发明实施例将原存储在NAND Flash中的、被访问频率高于第二阈值的数据迁移至NVM,以实现SSD中存储数据的动态调整,避免NAND Flash被过多访问。将被读取次数大于或等于第二阈值的数据,保存至NVM,相对于存储在NAND Flash,可以提高数据读取的速度,利用数据的时间局部性和空间局部性,将频繁被修改的数据以及其它热点数据存储在NVM,减少对NAND Flash的磨损。
可选地,将NAND Flash中数据迁移至NVM之后,还可以累加NAND Flash对应的迁移次数。这样,即可获取从NAND Flash迁移至NVM的页数,从而合理调整SSD中NAND Flash及NVM所占用空间的比例,或,将NVM中同等页数的数据迁移至NAND Flash。
进一步地,当NVM中包括读区域时,若确定预读取数据所在的页的读次数大于或等于第二阈值,且NVM中有空闲页,则将读次数大于或等于第二阈值的页中的数据迁移至NVM,可以包括:若判断预读取数据所在的页的读次数大于或等于第二阈值,且读区域中包括空闲页,则将读次数大于或等于第二阈值的页中的数据迁移至读区域的空闲页。
在上述基础上,若确定上述迁移次数大于或等于第三阈值,则从NVM选取第三阈值个数的页迁移至NAND Flash,其中,第三阈值由SSD中NVM与NAND Flash所占的比例确定。在SSD中,若NVM占用的空间大于NAND Flash占用的空间,第三阈值较小;对应地,若NVM占用的空间小于NAND Flash占用的空间,第三阈值较大。
另一种实施例中,NVM包括写区域。若预读取数据的物理地址位于NVM的写区域,上述累加预读取数据所在的页的读次数之后,该方法还可以包括:更新预读取数据所在的页的地址至第一双向链表的尾部,其中,第一双向链表中各结点用于存储写区域中各页的逻辑地址。
通过上述实施例可知,元数据区域可以存储有上述第一双向链表、第二双向链表及预设映射关系等。
综合上述实施例,本发明实施例在NVM中存储被访问频率高的数据,从而能减少对NAND Flash访问,即降低SSD中NAND Flash的被访问频率,减少对NAND Flash的磨损;且,由于NVM的非易失特性,存储于NVM的数据掉电不丢失,因此,在供电中断时,SSD无需电容提供备电。基于上述原因,本发明实施例SSD的使用寿命增长。
在实际应用中,本发明实施例对读取和写入的大小是不做任何限制的,可以是任何大小的读取或写入。但SSD的预设映射关系,例如映射表,存在一个基本的管理粒度,比如4KB,或者8KB,甚至16KB。这个管理粒度一般跟NAND Flash的页(page)的大小一样,也可以不一样。另外,SDD读写的基本管理单位是页。
主机下发到SSD上的读写操作请求的大小可能是任意的。以页的大小为8KB为例说明:如果要读取的数据比较大,为32KB,那么需要读取4个页,并把相关的数据凑到一起反馈给主机;如果读取的数据比较小,为2KB,则只把对应的这2KB的数据返回给主机。
本发明实施例中SSD采用NAND Flash和NVM对数据进行分级存储,即,数据存储在NAND Flash或NVM中,因NVM的非易失特性,从而在SSD中不包含电容的情况下,也不会产生数据掉电丢失的问题,且SSD中不包含电容还会增长SSD的使用寿命,极大提升SSD的可靠性。
在本申请所提供的几个实施例中,应该理解到,所揭示的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种数据写入方法,由固态硬盘SSD的控制器执行,所述SSD包括Flash和非易失性存储器NVM,所述方法包括:
接收写操作请求,所述写操作请求包括预写入数据及预写入数据的逻辑地址;
将所述预写入数据写入所述NVM;
根据所述预写入数据的逻辑地址判断所述Flash是否存储有所述逻辑地址对应的数据;
若所述Flash中存储有所述逻辑地址对应的数据,将所述Flash中存储的所述逻辑地址对应数据置为无效。
2.根据权利要求1所述的方法,其特征在于,在所述将所述预写入数据写入所述NVM之后,所述方法还包括:
保存映射关系,所述映射关系包括所述预写入数据的逻辑地址与所述预写入数据写入所述NVM的位置之间的对应关系。
3.根据权利要求1或2所述的方法,其特征在于,所述NVM包括读区域及写区域,所述将所述预写入数据写入所述NVM包括:
将所述预写入数据写入所述NVM的写区域;
所述方法还包括:
判断所述预写入数据的逻辑地址被访问频率是否达到第一预设阈值;
当所述预写入数据的逻辑地址被访问频率达到所述第一预设阈值时,迁移所述预写入数据至所述读区域。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
判断所述Flash中页的被访问频率是否大于或等于第二预设阈值;
当所述Flash中页的被访问频率大于或等于所述第二预设阈值时,迁移所述被访问频率大于或等于所述第二预设阈值的页中的数据至所述NVM的读区域。
5.一种数据写入方法,由固态硬盘SSD的控制器执行,所述SSD包括Flash和非易失性存储器NVM,所述方法包括:
接收写操作请求,将所述写操作请求中的预写入数据写入所述NVM;
在所述NVM中的数据凑成完整的页,且所述页满足预设的淘汰算法时,将所述页写入所述Flash中。
6.根据权利要求5所述的方法,其特征在于,所述淘汰算法为所述页的访问频率小于预设值,且所述NVM的空闲容量小于预设值。
7.一种固态硬盘SSD,所述固态硬盘包括控制器、Flash、及非易失性存储器NVM,所述控制器用于:
接收写操作请求,所述写操作请求包括预写入数据及预写入数据的逻辑地址;
将所述预写入数据写入所述NVM;
根据所述预写入数据的逻辑地址判断所述Flash是否存储有所述逻辑地址对应的数据;
若所述Flash中存储有所述逻辑地址对应的数据,将所述Flash中存储的所述逻辑地址对应数据置为无效。
8.根据权利要求7所述的SSD,其特征在于,在所述将所述预写入数据写入所述NVM之后,所述控制器还用于:
保存映射关系,所述映射关系包括所述预写入数据的逻辑地址与所述预写入数据写入所述NVM的位置之间的对应关系。
9.根据权利要求7或8所述的SSD,其特征在于,所述NVM包括读区域及写区域,在将所述预写入数据写入所述NVM时,所述控制器用于将所述预写入数据写入所述NVM的写区域;
所述控制器还用于:
判断所述预写入数据的逻辑地址被访问频率是否达到第一预设阈值;
当所述预写入数据的逻辑地址被访问频率达到所述第一预设阈值时,迁移所述预写入数据至所述读区域。
10.根据权利要求9所述的SSD,其特征在于,所述控制器还用于:
判断所述Flash中页的被访问频率是否大于或等于第二预设阈值;
当所述Flash中页的被访问频率大于或等于所述第二预设阈值时,迁移所述被访问频率大于或等于所述第二预设阈值的页中的数据至所述NVM的读区域。
11.一种固态硬盘SSD,所述SSD包括控制器、Flash、及非易失性存储器NVM,所述控制器用于:
接收写操作请求,将所述写操作请求中的预写入数据写入所述NVM;
在所述NVM中的数据凑成完整的页,且所述页满足预设的淘汰算法时,将所述页写入所述Flash中。
12.根据权利要求11所述的SSD,其特征在于,所述淘汰算法为所述页的访问频率小于预设值,且所述NVM的空闲容量小于预设值。
CN202010311530.3A 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘 Pending CN111638852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010311530.3A CN111638852A (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010311530.3A CN111638852A (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘
CN201410852946.0A CN105808156B (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201410852946.0A Division CN105808156B (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘

Publications (1)

Publication Number Publication Date
CN111638852A true CN111638852A (zh) 2020-09-08

Family

ID=56284227

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201410852946.0A Active CN105808156B (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘
CN202010311530.3A Pending CN111638852A (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201410852946.0A Active CN105808156B (zh) 2014-12-31 2014-12-31 将数据写入固态硬盘的方法及固态硬盘

Country Status (2)

Country Link
CN (2) CN105808156B (zh)
WO (1) WO2016107442A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760782A (zh) * 2021-08-23 2021-12-07 南京森根科技股份有限公司 一种可动态调节的环形缓存系统及其控制方法
CN113835639A (zh) * 2021-09-26 2021-12-24 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质
CN115657972A (zh) * 2022-12-27 2023-01-31 北京特纳飞电子技术有限公司 固态硬盘写入控制方法、装置与固态硬盘

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI607448B (zh) * 2016-09-07 2017-12-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN109119106B (zh) * 2017-06-26 2022-08-02 中兴通讯股份有限公司 数据存储方法、设备及计算机可读存储介质
CN110109915B (zh) * 2018-01-18 2024-01-05 伊姆西Ip控股有限责任公司 用于管理哈希表的方法、设备和计算机程序产品
CN110286995B (zh) * 2018-03-19 2022-02-25 北京兆易创新科技股份有限公司 一种数据读写方法和装置
CN110389712B (zh) * 2018-04-20 2022-12-23 杭州海康存储科技有限公司 数据写入方法及其装置、固态硬盘和计算机可读存储介质
CN108984124B (zh) * 2018-07-13 2022-03-25 深圳忆联信息系统有限公司 减少写放大的方法、装置、计算机设备及存储介质
CN109144422A (zh) * 2018-08-31 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘的写数据方法、装置、设备及存储介质
CN110908926B (zh) * 2018-09-14 2022-03-22 慧荣科技股份有限公司 数据储存装置及逻辑至物理地址映射表的写入方法
CN111367463B (zh) * 2018-12-25 2023-05-09 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置
KR20200091199A (ko) * 2019-01-22 2020-07-30 에스케이하이닉스 주식회사 저장 장치, 저장 장치를 포함하는 컴퓨팅 시스템 및 그 동작 방법
CN111581117A (zh) * 2019-02-19 2020-08-25 睿宽智能科技有限公司 固态硬盘的未映像地址的重导向方法
CN111897744A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种数据写入方法、装置、电子设备及存储介质
CN110515549B (zh) * 2019-08-16 2022-03-22 浪潮电子信息产业股份有限公司 一种数据迁移方法及装置
CN110795045B (zh) * 2019-10-30 2024-04-09 中国科学院微电子研究所 混合内存的数据迁移方法、系统及电子设备
CN110989924B (zh) * 2019-10-30 2022-10-18 烽火通信科技股份有限公司 一种元数据存储性能优化方法及存储服务器
CN111208940A (zh) * 2019-12-24 2020-05-29 华东师范大学 一种基于多通道闪存的读写分离方法
CN111143279B (zh) * 2019-12-29 2022-04-22 浪潮电子信息产业股份有限公司 一种数据迁移方法、装置、设备及可读存储介质
WO2021232427A1 (en) * 2020-05-22 2021-11-25 Yangtze Memory Technologies Co., Ltd. Flush method for mapping table of ssd
CN115605838A (zh) * 2020-07-31 2023-01-13 华为技术有限公司(Cn) 存储控制器、存储控制方法、固态硬盘及存储系统
CN112435706B (zh) * 2020-11-05 2023-06-30 北京中电华大电子设计有限责任公司 一种非易失性存储器应用级擦写寿命评价方法
CN112717419A (zh) * 2021-01-04 2021-04-30 厦门梦加网络科技股份有限公司 一种游戏数据的保存方法
CN113254364B (zh) * 2021-05-24 2022-07-19 山东创恒科技发展有限公司 一种嵌入式系统用信息存储装置
CN114328281B (zh) * 2021-11-30 2023-11-14 苏州浪潮智能科技有限公司 固态硬盘异常掉电处理方法、装置、电子设备及介质
CN115904255B (zh) * 2023-01-19 2023-05-16 苏州浪潮智能科技有限公司 一种数据请求方法、装置、设备及存储介质
CN116627354B (zh) * 2023-07-20 2023-09-15 湖南博匠信息科技有限公司 一种固态硬盘的高性能数据写入方法和数据记录设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856423B1 (en) * 2007-04-10 2014-10-07 Marvell International Ltd. Dual-purpose nonvolatile memory for code and data storage
JP2009205335A (ja) * 2008-02-27 2009-09-10 Hitachi Ltd 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
CN101673188B (zh) * 2008-09-09 2011-06-01 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN102955787A (zh) * 2011-08-22 2013-03-06 陈思达 一种文件目录表的使用方法、文件写入方法及应用的主电路板、cpu和外部存储器
CN102360273A (zh) * 2011-09-26 2012-02-22 北京邦诺存储科技有限公司 控制存储器与非易失性缓存装置协同存储的设备和方法
CN102591748A (zh) * 2011-12-29 2012-07-18 记忆科技(深圳)有限公司 固态硬盘及其掉电保护方法、系统
CN102646069B (zh) * 2012-02-23 2014-12-10 华中科技大学 一种延长固态盘使用寿命的方法
CN103377152A (zh) * 2012-04-26 2013-10-30 深圳市朗科科技股份有限公司 固态硬盘的写操作控制方法及写操作装置
CN103473186A (zh) * 2012-06-07 2013-12-25 鸿富锦精密工业(深圳)有限公司 固态硬盘数据保护电路
CN103885728B (zh) * 2014-04-04 2016-08-17 华中科技大学 一种基于固态盘的磁盘缓存系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760782A (zh) * 2021-08-23 2021-12-07 南京森根科技股份有限公司 一种可动态调节的环形缓存系统及其控制方法
CN113835639A (zh) * 2021-09-26 2021-12-24 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质
CN113835639B (zh) * 2021-09-26 2024-03-19 深圳大普微电子科技有限公司 一种i/o请求处理方法、装置、设备及可读存储介质
CN115657972A (zh) * 2022-12-27 2023-01-31 北京特纳飞电子技术有限公司 固态硬盘写入控制方法、装置与固态硬盘

Also Published As

Publication number Publication date
WO2016107442A1 (zh) 2016-07-07
CN105808156B (zh) 2020-04-28
CN105808156A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN105808156B (zh) 将数据写入固态硬盘的方法及固态硬盘
US10387243B2 (en) Managing data arrangement in a super block
US10761780B2 (en) Memory system
JP7366795B2 (ja) メモリシステムおよび制御方法
US10503411B2 (en) Data storage device and method for operating non-volatile memory
KR102147359B1 (ko) 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US10282286B2 (en) Address mapping using a data unit type that is variable
US10310766B2 (en) Memory system and data relocating method
US10360155B1 (en) Multi-tier memory management
JP6166476B2 (ja) メモリモジュールおよび情報処理システム
US9268681B2 (en) Heterogeneous data paths for systems having tiered memories
US20190095100A1 (en) Block Clearing Method
US20230176965A1 (en) Media management based on data access metrics
US11645006B2 (en) Read performance of memory devices
US11782847B2 (en) Performing a media management operation based on a sequence identifier for a block
US11734189B2 (en) Caching of logical-to-physical mapping information in a memory sub-system
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
US20190012260A1 (en) Flash memory package and storage system including flash memory package
JP2019148913A (ja) メモリシステム
CN115458013A (zh) 存储装置及其操作方法
US11829650B2 (en) Memory sub-system data migration
JP2023510764A (ja) キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施
US11972130B2 (en) Media management operations based on a ratio of valid data
US11036414B2 (en) Data storage device and control method for non-volatile memory with high-efficiency garbage collection

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