CN113190469A - 一种存储器、数据写入方法及存储系统 - Google Patents

一种存储器、数据写入方法及存储系统 Download PDF

Info

Publication number
CN113190469A
CN113190469A CN202110522834.9A CN202110522834A CN113190469A CN 113190469 A CN113190469 A CN 113190469A CN 202110522834 A CN202110522834 A CN 202110522834A CN 113190469 A CN113190469 A CN 113190469A
Authority
CN
China
Prior art keywords
data
memory
pages
garbage collection
blocks
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.)
Granted
Application number
CN202110522834.9A
Other languages
English (en)
Other versions
CN113190469B (zh
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.)
Hefei Kangxinwei Storage Technology Co Ltd
Original Assignee
Hefei Kangxinwei Storage Technology 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 Hefei Kangxinwei Storage Technology Co Ltd filed Critical Hefei Kangxinwei Storage Technology Co Ltd
Priority to CN202110522834.9A priority Critical patent/CN113190469B/zh
Publication of CN113190469A publication Critical patent/CN113190469A/zh
Application granted granted Critical
Publication of CN113190469B publication Critical patent/CN113190469B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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

本发明提出一种存储器、数据写入方法及存储系统,包括:存储阵列,包括多个存储块;控制单元,用于获得垃圾回收强度及单次连续写入数据的页数;垃圾回收单元,用于对所述存储阵列进行垃圾回收步骤;其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。本发明提出的存储器可以提高整体写入性能。

Description

一种存储器、数据写入方法及存储系统
技术领域
本发明涉及存储技术领域,特别涉及一种存储器、数据写入方法及存储系统。
背景技术
NAND Flash作为一种非易失性存储器件,具有体积小、访问速度快、功率小及抗震等优良特性,因此,基于NAND Flash技术的固态硬盘(Solid State Drives,SSD)具有读写速度快,低功耗,无噪音,抗震动,低热量,体积小,工作范围大,广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
闪存是以区块(Block)为单位进行擦除,以页(Page)为单位进行读写的装置。在闪存进行反复读写操作过程会导致每个区块内部产生无效数据和有效数据夹杂在同一个区块中,为了重新使用区块,需要进行垃圾回收操作(garbage collection--GC)将有效的数据集中收集到一个区块中来释放可用区块。在闪存的写入的同时还需要进行垃圾回收,如果一直进行垃圾回收操作,则影响写入速度,如果很长时间下才进行垃圾回收操作,则导致区块不够用。
发明内容
鉴于上述现有技术的缺陷,本发明提出一种存储器、数据写入方法及存储系统,该存储器可以保证在进行垃圾回收的同时,提高单次写入速度,避免单次垃圾回收时间过长导致写入操作暂停,从而实现在保证安全的情况下使边写边垃圾回收的速度下降最小。
为实现上述目的及其他目的,本发明提出一种存储器,包括:
存储阵列,包括多个存储块;
控制单元,用于获得垃圾回收强度及单次连续写入数据的页数;
垃圾回收单元,用于对所述存储阵列进行垃圾回收步骤;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
进一步地,所述释放出一个所述存储块搬迁的总数据量
CI=(Cx/Cinv)*(Cx-Cinv)
其中,CI表示所述释放出一个所述存储块搬迁的总数据量,Cx表示写满一个所述存储块的总数据量,Cinv表示所述存储阵列中平均无效数据量。
进一步地,所述存储阵列中平均无效数据量
Cinv=Cx-Cz/Nb
其中,Cz表示所述存储阵列中的有效数据总量,Nb表示所述存储阵列中除去预留区块之后的数量。
进一步地,所述总数据量表示所述存储块中的有效数据总量。
进一步地,所述单次连续写入数据的页数
N=T/(V*Tu)
其中,N表示单次连续写入数据的页数,T表示主机写入数据的安全时间,V表示垃圾回收强度,Tu表示在进行垃圾回收过程中搬迁一个页的数据的最大时间。
进一步地,在进行写入操作中,数据占据的页数等于单次连续写入数据的页数,所述数据占据的页属于一个或多个所述存储块中。
进一步地,在进行垃圾回收过程中,所述垃圾回收单元搬迁的页数等于所述垃圾回收强度与所述单次连续写入数据的页数的乘积。
进一步地,所述有效数据总量等于多个所述存储块中有效数据的总和。
进一步地,本发明还提出一种存储器的数据写入方法,包括:
通过主机向存储阵列发送写入命令,所述存储阵列包括多个存储块;
获取所述存储阵列中的有效数据总量;
通过控制单元获得垃圾回收强度及单次连续写入数据的页数;
将数据存储在所述存储块中的页内,所述数据占据的页数等于单次连续写入数据的页数;
判断是否进行垃圾回收步骤;
若是,则进行垃圾回收步骤;
若否,则再次获取所述存储阵列中的有效数据总量;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
进一步地,本发明还提出一种存储系统,包括:
主机;
存储器,连接所述主机,其中所述存储器包括:
存储阵列,包括多个存储块;
控制单元,用于获得垃圾回收强度及单次连续写入数据的页数;
垃圾回收单元,用于对所述存储阵列进行垃圾回收步骤;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
综上所述,本发明提出一种存储器、数据写入方法及存储系统,在进行数据写入操作中,首先获得当前存储阵列的有效数据量,然后根据控制单元获得垃圾回收强度和单次连续写入数据的页数,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值,然后在将数据存储在存储块内,也就是将数据存储在存储块的页内,然后数据占据的页数等于单次连续写入数据的页数,且单次连续写入数据的页数与垃圾回收强度成反比,因此可以通过控制垃圾回收强度,从而调整单次连续写入数据的页数,从而可以保证整体写入性能,减少边写边回收垃圾的速度下降;然后在进行垃圾回收,也就是在连续写入多页数据之后,然后进行垃圾回收操作,如此循环,从而减少边写边垃圾回收的速度下降,保证整体写入性能,并且还可以避免出现存储块不够用或者写入操作超时限情况的发生。
附图说明
图1:本实施例中存储系统的框图。
图2:本实施例中NAND型闪速存储器的系统方块图。
图3:NAND存储芯片的系统方块图。
图4:存储单元阵列的方框图。
图5:本实施例中存储系统的组成图。
图6:本实施例中系统控制器的结构示意图。
图7:本实施例中存储器的结构示意图。
图8:本实施例中存储器的另一示意图。
图9:本实施例中存储阵列的示意图。
图10:本实施例中数据块的示意图。
图11:本实施例中预留存储块的示意图。
图12:本实施例中存储器的数据写入方法的流程图。
图13:本实施例中存储系统的示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图1所示,本实施例提出一种存储系统,该存储系统包括非易失性半导体存储装置。非易失性半导体存储装置是即使切断电源也不会丢失数据的非易失性存储器(非暂时的存储器),本实施例中,作为非易失性半导体存储装置,举例说明NAND型闪速存储器120。另外,作为存储系统,举例说明具备NAND型闪速存储器的固态硬盘设备(Solid StateDrive,SSD)。
如图1所示,固态硬盘100经由接口171及电源线172与主机装置170(例如信息处理装置)连接。主机装置170例如由个人计算机、CPU核或者与网络连接的服务器等构成。主机装置170对固态硬盘100执行数据存取控制,例如,通过向固态硬盘100发送写入请求、读出请求及删除请求,对固态硬盘100执行数据的写入、读出及删除。
如图1所示,固态硬盘100具备SSD控制器(存储装置控制部)110、NAND型闪速存储器120、接口控制器(接口部)130及电源供给部140。SSD控制器110、接口控制器130及NAND型闪速存储器120通过总线150相互连接。
如图1所示,电源供给部140通过电源线172与主机装置170连接,接受从主机装置170供给的外部电源。电源供给部140和NAND型闪速存储器120通过电源线161连接,电源供给部140和SSD控制器110通过电源线162连接,电源供给部140和接口控制器130通过电源线163连接。电源供给部140对外部电源进行升压及降压,生成各种电压,向SSD控制器110、NAND型闪速存储器120及接口控制器130供给各种电压。
如图1所示,接口控制器130通过接口171与主机装置170连接。接口控制器130执行与主机装置170的接口处理。作为接口171,可以采用SATA(Serial Advanced TechnologyAtt achment:串行高级技术附件)、PCI Express(Peripheral Component InterconnectExpress:高速外设部件互连)、SAS(Serial Attached SCSI:串行连接SCSI)、USB(Universal Serial Bus:通用串行总线)等。在一实施例中,作为接口171,以采用SATA场合的例子进行说明。
如图1所示,NAND型闪速存储器120非易失地存储数据。在NAND型闪速存储器120的物理地址空间,确保存储固件(Firmware,FW)的FW区域121、存储管理信息的管理信息区域122、存储用户数据的用户区域123、存储例如测试步骤时的各种日志的筛选日志区域125。
如图1所示,SSD控制器110控制固态硬盘100的各种工作。SSD控制器110可以通过执行在NAND型闪速存储器120的FW区域121存储的固件的处理器和各种硬件电路等来实现其功能,执行针对来自主机装置170的写请求、缓存刷新请求、读请求等的各种指令的主机装置170-NAND型闪速存储器120间的数据转送控制、在RAM111及NAND型闪速存储器120存储的各种管理表的更新·管理、筛选处理等。SSD控制器110从电源线172接受电源后,从FW区域121读出固件,然后,根据读出固件进行处理。SSD控制器110具备作为缓存区及操作区的RAM111和ECC(Error Checking and Correcting:错误检测和校正)电路112。
如图1所示,RAM111由DRAM(Dynamic Random Access Memory:动态随机存取存储器)、SRAM(Static Random Access Memory:静态随机存取存储器)等的易失性RAM,或MR AM(Magnetoresistive Random Access Memory:磁阻随机存取存储器)、FeRAM(Ferroelectric Random Access Memory:铁电随机存取存储器)、ReRAM(ResistanceRandom Access Memory:电阻随机存取存储器)、PRAM(Phase-change Random AccessMemory:相变随机存取存储器)等的非易失性RAM构成。
如图1所示,ECC电路112在数据写入时,对写入数据生成纠错码,将该纠错码附加到写入数据,发送到NAND型闪速存储器120。另外,ECC电路112在数据读出时,对读出数据,采用读出数据所包含的纠错码进行检错(错误位检测)及纠错。ECC电路112的ECC编码、ECC解密采用例如Bose-Chaudhuri-Hocquenghem(BCH)码、Reed-Solomon(RS)码、Low-Densi tyParity-Check(LDPC)码。电路112也可以是采用Cyclic Redundancy Check(CRC)码进行检错的CRC电路112。
如图2-3所示,图2显示为NAND型闪速存储器120的系统方块图,图3显示为NAND存储芯片200的系统方块图,NAND型闪速存储器120具备一个以上的NAND存储芯片200。
如图3所示,存储单元阵列202由可电改写数据的存储单元矩阵状配置而成。在存储单元阵列202配设了多个位线、多个字线及共用源极线。在位线和字线的交差区域,配置存储单元。
如图3所示,作为行解码器的字线控制电路205与多个字线连接,在数据的读出、写入及删除时,进行字线的选择及驱动。位线控制电路203与多个位线连接,在数据的读出、写入及删除时,控制位线的电压。另外,位线控制电路203在数据读出时检知位线的数据,在数据写入时向位线施加与写入数据相应的电压。列解码器204根据地址,生成用于选择位线的列选择信号,向位线控制电路203发送该列选择信号。
如图3所示,从存储单元阵列202读出的读出数据经由位线控制电路203、数据输入输出缓冲器209从数据输入输出端子208向外部输出。另外,从外部向数据输入输出端子208输入的写入数据经由数据输入输出缓冲器209,向位线控制电路203输入。
如图3所示,存储单元阵列202、位线控制电路203、列解码器204、数据输入输出缓冲器209及字线控制电路205与控制电路206连接。控制电路206根据从外部向控制信号输入端子207输入的控制信号,生成用于控制存储单元阵列202、位线控制电路203、列解码器204、数据输入输出缓冲器209及字线控制电路205的控制信号及控制电压。NAND存储芯片200中,与存储单元阵列202以外的部分一起称为存储单元阵列控制部(NAND控制器)201。
如图4所示,图4显示为存储单元阵列202的构成方框图。存储单元阵列202具备一个或多个平面(plane)(或District)。图4中的存储单元阵列202例如具备2个平面(平面0及平面1)的情况。各平面具备多个块(BLOCK),各块(BLOCK)由多个存储单元构成,以该块(BLOCK)为单位,删除数据。
如图5所示,本实施例给出另一存储系统30的框图,该存储系统300包括至少一个控制器310和多个存储器320。控制器310通过存储区域网络(storage area network,SAN)与主机(图中未示出)连接。控制器310可以是一种计算设备,如服务器、台式计算机等等。在控制器310上安装有操作系统以及应用程序。控制器310可以接收来自主机的输入输出(I/O)请求。控制器310还可以存储I/O请求中携带的数据(如果有的话),并且将该数据写入存储器320中。存储器320可以为固态硬盘。固态硬盘(Solid State Disk,SSD)是以闪存(flash memory)芯片为介质的存储器,又名固态驱动器(Solid State Drive,SSD)。
图5仅是示例性说明,在实际应用中存储系统可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器310类似,并且本实施例并不限定控制器之间,以及任意一个控制器与存储器320之间的连接方式。只要各个控制器之间,以及各个控制器和存储器320之间能够相互通信。
如图6所示,图6显示为控制器310的结构示例图,控制器310包括接口卡311、处理器313和接口卡314。接口卡311用于和主机通信,控制器310可以通过接口卡311接收主机的操作指令。处理器313可能是一个中央处理器(central processing unit,CPU)。在本发明实施例中,处理器313可以用于接收来自主机的I/O请求、处理所述I/O请求。所述I/O请求可以是写数据请求或者读数据请求,处理器313还可以将写数据请求中的数据发送给存储器320。此外,处理器313还可以用于执行系统垃圾回收操作。接口卡314用于和存储器320通信,控制器310可以通过接口卡314将写数据请求(包括数据以及所述数据的生命周期级别)发送给存储器320存储。
如图6所示,在本实施例中,控制器310还可以包括存储器312。存储器312用于临时存储从主机接收的数据或从存储器320读取的数据。控制器310接收主机发送的多个写数据请求时,可以将所述多个写数据请求中的数据暂时保存在存储器312中。当存储器312的容量达到一定阈值时,将存储器312存储的数据以及为所述数据分配的逻辑地址发送给存储器320。存储器320存储所述数据。存储器312包括易失性存储器,闪存芯片或其组合。易失性存储器例如为随机访问存储器(random-access memory,RAM)。闪存芯片例如软盘、硬盘、固态硬盘(solid state disk,SSD)、光盘等各种可以存储程序代码的机器可读介质。存储器312具有保电功能,保电功能是指系统发生掉电又重新上电时,存储器312中存储的数据也不会丢失。
如图6所示,在本实施例中,控制器310负责对数据的生命周期进行识别,并且把不同生命周期的数据划分为若干等级。本实施例中数据的生命周期和该数据的修改频率有关,修改频率越高的数据生命周期越短,修改频率越低的数据生命周期越长。例如日志写入量大但很快会被删除(在固态硬盘中的保存时间可能只有几分钟),这类数据被划分为第一等级的生命周期。元数据相对于日志来说,它在固态硬盘中的保存时间略长,可以被划分为第二等级的生命周期。而业务数据中的热数据可以被划分为第三等级的生命周期,业务数据中的冷数据可以被划分为第四等级的生命周期。当然,本发明实施例并不限定生命周期级别的数量,可以只包含两个等级的生命周期,也可以包含三个或三个以上等级的生命周期。具体的,控制器310可以预先设置一个或多个生命周期阈值,将数据的生命周期与生命周期阈值进行比较从而确定该数据所属的生命周期级别。举例来说,预先设置第一生命周期阈值、第二生命周期阈值和第三生命周期阈值,其中第二生命周期阈值高于第一生命周期阈值,第三生命周期阈值高于第二生命周期阈值。当数据的生命周期等于或低于第一生命周期阈值时,它属于第一等级的生命周期,当数据的生命周期位于第一生命周期阈值与第二生命周期阈值之间时,该数据属于第二等级的生命周期,当数据的生命周期位于第二生命周期阈值和第三生命周期阈值之间时,该数据属于第三等级的生命周期,当数据的生命周期高于第三生命周期阈值时,该数据属于第四等级的生命周期。
如图6所示,控制器310在识别出数据的生命周期级别之后,将所述识别出的生命周期级别以参数的形式携带在NVMe协议中传递给存储器320,以便存储器320根据生命周期的参数判断生命周期级别,并且为不同生命周期级别的数据分配不同的数据存储模式的闪存块。
如图6所示,需要说明的是,控制器310属于系统控制器,系统控制器是独立的设备,不同于固态硬盘中的控制芯片。本实施例将固态硬盘的控制芯片称为闪存控制器。
如图7所示,图7显示为存储器320的结构示意图。存储器320包括控制单元321和多个闪存阵列322。其中,控制单元321用于执行控制器310发送的写数据请求或者读数据请求等操作。
如图7所示,控制单元321中包含闪存翻译层(flash translation layer,FTL)。闪存翻译层用于保存有数据的逻辑地址与实际地址之间的对应关系。因此,闪存翻译层用于将系统控制器发送的写数据请求或者读数据请求中的逻辑地址转化为固态硬盘中数据的实际地址。数据的逻辑地址是由系统控制器分配的,一个段的逻辑地址区间的子集。数据的逻辑地址包括起始逻辑地址和长度,起始逻辑地址指示所述数据位于的所述段的位置,长度代表所述数据的大小。数据的实际地址可以是固态硬盘中该数据的物理地址,也可以是在所述物理地址的基础上经过虚拟化,只对闪存控制器可见的地址。该经过虚拟化的实际地址对系统控制器不可见。
如图7所示,存储器320通常包括一个或多个闪存阵列322。每个闪存阵列322包括若干个闪存块。存储器320在读取或写入时是以一个页(page)为基础的,但擦除操作只能以一个闪存块为基础,擦除操作是指将这个块的所有位都设置为“1”。在擦除之前,闪存控制器需要先将这个闪存块中的有效数据复制到另一个块的空白页中去。闪存块中的有效数据是指该块中保存的没有被修改过的数据,这部分数据可能会被读取。闪存块中的无效数据是指该块中保存的已经被修改过的数据,这部分数据不可能会被读取。
如图7所示,每个闪存块包含多个页(page)。存储器320在执行写数据请求时,是以页为单位来写数据的。举例来说,控制器310向控制单元321发送一个写数据请求。所述写数据请求包括数据的逻辑地址。控制单元321在接收所述写数据请求之后,按照接收的时间顺序将所述数据连续写入一个或多个闪存块中。连续写入一个或多个闪存块是指,控制单元321查找一个空白的闪存块,将数据写入所述空白的闪存块,直至将所述空白的闪存块填满,当所述数据的大小超过闪存块的容量时,控制单元321再查找下一个空白的闪存块,继续写入。闪存翻译层建立并保存所述逻辑地址与写入所述数据的页的实际地址之间的对应关系。当控制器310向控制单元321发送读数据请求,要求读取所述数据时,所述读数据请求中包括所述逻辑地址。控制单元321根据所述逻辑地址,以及所述逻辑地址与实际地址之间的对应关系读取所述数据,并将该数据发送给控制器310。
如图7所示,存储单元(cell)是页的最小操作单元,一个存储单元对应一个浮栅晶体管,它可以存储1比特(bit)或多比特的数据,这取决于闪存的类型。一个页上的存储单元共享一根字符线。存储单元包括控制栅极和浮置栅极,浮置栅极是真正存储数据的单元。数据在存储单元中是以电荷(electrical charge)形式存储的。存储电荷的多少取决于控制栅极所被施加的电压,其控制了向浮置栅极中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值来表示。往浮置栅极中写入数据就是对控制栅极施加电压,使得浮置栅极中存储的电荷够多,超过阈值,就表示0。对闪存进行擦除操作就是对浮置栅极放电,使得浮置栅极中存储的电荷低于阈值,就表示1。
如图8-图9所示,本实施例还提出另一种存储器400,该存储器400可以包括控制单元321,存储阵列401和垃圾回收单元402。控制单元321可以进行数据的读取,擦除或者写入等其他操作。该存储阵列401可以包括大量的存储块(BLOCK),例如图9中显示出一个存储阵列401内包括了7个存储块,即存储块0至存储块6。当进行数据写入操作时,可以将数据存储在存储阵列401内,也就是将数据存储在存储块内。存储块内包括大量的页,也就是说数据存储在每个存储块的页内。垃圾回收单元402用于对存储阵列401进行垃圾回收操作,因此及时空出有用的存储块。需要说明的是,在存储阵列401内还保留一些预留存储块,当一直进行数据写入操作时,存储块会被使用掉,当将要使用预留存储块时,垃圾回收单元402则对存储块进行垃圾回收操作,从而保证该存储阵列401内一直存在空白的存储块,从而保证写入操作的连续性。
如图7-图10所示,在本实施例中,该存储阵列401也就是闪存阵列322,存储块也就是闪存块,因此每个存储块内包括大量的页(Page),每个存储块内包括大量的存储单元,也就是数据块403,也就是说数据存储在数据块403内。例如图10中显示出存储块0内包括100个数据块403,其中在这100个数据块403内存储着2个无效数据,存储着98个有效数据,即数据块0和数据块1中存储着无效数据,数据块2至数据块99内存储着有效数据。在对存储块0进行垃圾回收操作时,需要将98个有效数据搬迁至另一个存储块内,然后擦除2个无效数据,从而可以得到空白的存储块。
如图11所示,本实施例中数据均匀存储在存储块内,即每个存储块内的有效数据数量相同或基本相同,存储块0至存储块99中均包括100个数据块。例如存储块0至存储块97中的有效数据数量为98,无效数据数量为2。存储块98和存储块99例如为预留存储块,也就是说当数据需要写入预留存储块内时,即可进行垃圾回收操作。在本实施例中,该预留存储块的数量可以小于10,例如为5个或8个或10个。
如图12所示,本实施例还提出一种存储器的数据写入方法,包括:
S1:通过主机向存储阵列发送写入命令;
S2:获取所述存储阵列中的有效数据总量;
S3:通过控制单元获得垃圾回收强度及单次写入数据的页数;
S4:将数据存储在所述存储块中的页内,所述数据占据的页数等于单次连续写入数据的页数;
S5:判断是否进行垃圾回收;
S6:若是,则进行垃圾回收,
S7:判断数据写入完成。
如图8和图11所示,在步骤S1-S2中,当主机接收到写入命令后,则将写入命令发送至存储阵列401,然后计算存储阵列401中的有效数据总量。本实施例假设该存储阵列401包括100个存储块,每个存储块内的有效数据数量相同。假设当前存储阵列401内包括两个预留存储块,即存储块98和存储块99为预留存储块,存储块0至存储块97中的有效数据数量为98,无效数据数量为2;因此当前存储阵列401中的有效数据总量等于98*98=9604。
如图8和图11所示,在步骤S3中,根据控制单元321来计算垃圾回收强度V和单次写入数据的页数N。其中,V=CI/Cx;CI表示释放出一个存储块时搬迁的总数据量,Cx表示写满一个存储块的总数据量。CI=(Cx/Cinv)*(Cx-Cinv),Cinv表示存储阵列中的平均无效数据量。Cinv=Cx-Cz/Nb,Cz表示该存储阵列401中的有效数据总量,Nb表示存储阵列401中除去预留存储块之后的存储块的数量。
如图11所示,Cx=100,Cz=98*98=9604,Nb=100-2=98,Cinv=100-9604/98=2。CI=(100/2)*(100-2)=4900,V=4900/100=49。因此当前垃圾回收强度V等于49。本实施例还假设当主机写入1页的数据,垃圾回收单元402则回收V页的数据,因此本实施例采用单次连续写入N页数据,从而单次垃圾回收N*V页的数据,从而可以提高单次写入速度。同时在垃圾回收N*V页的数据时,还需要保证不能出现写超时限(time out),也就是避免写入操作暂停的情况出现。因此本实施例中,假设垃圾回收搬迁一个页的数据的最大时间为Tu,主机写入数据的安全时间为T,则N*V*Tu≤T,则N≤/T/(V*Tu)。因此,本实施例采用N=T/(V*Tu),也就是说为了减小写入速度的下降,单次连续写入的页数要尽量大。也就是垃圾回收搬迁一个页的数据的最大时间为Tu和主机写入数据的安全时间为T有存储器本身的决定,因此也就是说单次连续写入的页数N与垃圾回收强度V成反比,因此可以通过控制垃圾回收强度V,从而调整单次连续写入的页数N,从而可以减少边写边垃圾回收的速度下降,提高整体写入性能,同时还可以避免存储块不够用和写超时限的情况发生。
如图11所示,在步骤S4-S7中,当确定好单次连续写入的页数N之后,则将数据存储在连续的页中,数据占据的页数等于单次连续写入的页数。单次连续写入的页可以属于一个或多个存储块内,也就是说数据可以存储在一个或多个存储块内。当数据将要存储在预留存储块内时,则需要进行垃圾回收操作,也就是通过垃圾回收单元对存储阵列进行垃圾回收操作,否则再次获取存储阵列中的有效数据总量,然后再次垃圾回收强度和单次连续写入数据的页数,如此循环,直至数据写入完成。
如图13所示,本实施例还提出一种存储系统500,该存储系统500可以包括主机410和通过接口411与主机410传送命令和/或数据的数据存储设备420。存储系统500可以被实现为个人计算机(PC)、工作站、数据中心、互联网数据中心、存储区域网络、网络附属存储器(NAS)或移动计算设备,但是本发明构思不限于这些示例。移动计算设备可以被实现为膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静止相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、物联网(IoE)设备、无人机或电子书,但是本发明构思不限于这些示例。
如图13所示,接口411可以是串行高级技术附件(SATA)接口,SATA快速(SATAe)接口、SAS(串行附件小型计算机系统接口(SCSI))、外围组件互连高速(PCIe)接口、非易失性存储器快速(NVMe)接口、高级主机控制器接口(AHCI)或多媒体卡(MMC)接口,但不限于此。接口411可以传输电信号或光信号。主机410可以经由接口411控制数据存储设备420的数据处理操作(例如,写操作或读操作)。主机410可以指主机控制器。
如图13所示,数据存储设备420可以是基于闪存的存储器设备,但不限于此。数据存储设备420可以被实现为SSD、嵌入式SSD(eSSD)、通用闪速存储器(UFS)、MMC、嵌入式MMC(eMMC)或受管理的NAND,但是本发明构思不限于这些示例。基于闪存的存储器设备可以包括存储器单元阵列。存储器单元阵列可以包括多个存储器单元。存储器单元阵列可以包括二维存储器单元阵列或三维存储器单元阵列。三维存储器单元阵列可以单片地形成在具有设置在硅衬底上或上方的有源区的存储器单元阵列中的一个或多个物理层级处,并且可以包括存储器单元的操作所涉及的电路。所述电路可以形成在硅衬底中、硅衬底上或上方。术语“单片”意指阵列中的每一层级的层直接沉积在阵列中的下层级的层上。三维存储器单元阵列可以包括竖直取向的竖直NAND串,使得至少一个存储器单元置于另一存储器单元上或上方。所述至少一个存储器单元可以包括电荷俘获层。
如图13所示,数据存储设备420可以包括控制单元321和闪存阵列322,控制单元321可以控制主机410。控制单元321与闪存阵列322之间可以进行命令和/或数据的传输或处理。
如图13所示,在本实施例中,数据存储设备420可以为上述的存储器,数据存储设备420的数据写入方法请参考上述描述。
综上所述,本发明提出一种存储器、数据写入方法及存储系统,在进行数据写入操作中,首先获得当前存储阵列的有效数据量,然后根据控制单元获得垃圾回收强度和单次连续写入数据的页数,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值,然后在将数据存储在存储块内,也就是将数据存储在存储块的页内,然后数据占据的页数等于单次连续写入数据的页数,且单次连续写入数据的页数与垃圾回收强度成反比,因此可以通过控制垃圾回收强度,从而调整单次连续写入数据的页数,从而可以保证整体写入性能,减少边写边回收垃圾的速度下降;然后在进行垃圾回收,也就是在连续写入多页数据之后,然后进行垃圾回收操作,如此循环,从而减少边写边垃圾回收的速度下降,保证整体写入性能,并且还可以避免出现存储块不够用或者写入操作超时限情况的发生。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明,本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案,例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
除说明书所述的技术特征外,其余技术特征为本领域技术人员的已知技术,为突出本发明的创新特点,其余技术特征在此不再赘述。

Claims (10)

1.一种存储器,其特征在于,包括:
存储阵列,包括多个存储块;
控制单元,用于获得垃圾回收强度及单次连续写入数据的页数;
垃圾回收单元,用于对所述存储阵列进行垃圾回收步骤;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
2.根据权利要求1所述的存储器,其特征在于,所述释放出一个所述存储块搬迁的总数据量
CI=(Cx/Cinv)*(Cx-Cinv)
其中,CI表示所述释放出一个所述存储块搬迁的总数据量,Cx表示写满一个所述存储块的总数据量,Cinv表示所述存储阵列中平均无效数据量。
3.根据权利要求2所述的存储器,其特征在于,所述存储阵列中平均无效数据量
Cinv=Cx-Cz/Nb
其中,Cz表示所述存储阵列中的有效数据总量,Nb表示所述存储阵列中除去预留区块之后的数量。
4.根据权利要求1所述的存储器,其特征在于,所述总数据量表示所述存储块中的有效数据总量。
5.根据权利要求1所述的存储器,其特征在于,所述单次连续写入数据的页数
N=T/(V*Tu)
其中,N表示单次连续写入数据的页数,T表示主机写入数据的安全时间,V表示垃圾回收强度,Tu表示在进行垃圾回收过程中搬迁一个页的数据的最大时间。
6.根据权利要求1所述的存储器,其特征在于,在进行写入操作中,数据占据的页数等于单次连续写入数据的页数,所述数据占据的页属于一个或多个所述存储块中。
7.根据权利要求1所述的存储器,其特征在于,在进行垃圾回收过程中,所述垃圾回收单元搬迁的页数等于所述垃圾回收强度与所述单次连续写入数据的页数的乘积。
8.根据权利要求4所述的存储器,其特征在于,所述有效数据总量等于多个所述存储块中有效数据数量的总和。
9.一种存储器的数据写入方法,其特征在于,包括:
通过主机向存储阵列发送写入命令,所述存储阵列包括多个存储块;
获取所述存储阵列中的有效数据总量;
通过控制单元获得垃圾回收强度及单次连续写入数据的页数;
将数据存储在所述存储块中的页内,所述数据占据的页数等于单次连续写入数据的页数;
判断是否进行垃圾回收步骤;
若是,则进行垃圾回收步骤;
若否,则再次获取所述存储阵列中的有效数据总量;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
10.一种存储系统,其特征在于,包括:
主机;
存储器,连接所述主机,其中所述存储器包括:
存储阵列,包括多个存储块;
控制单元,用于获得垃圾回收强度及单次连续写入数据的页数;
垃圾回收单元,用于对所述存储阵列进行垃圾回收步骤;
其中,所述垃圾回收强度等于释放出一个所述存储块时搬迁的总数据量与写满一个所述存储块的总数据量的比值;
其中,所述单次连续写入数据的页数与所述垃圾回收强度成反比。
CN202110522834.9A 2021-05-13 2021-05-13 一种存储器、数据写入方法及存储系统 Active CN113190469B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110522834.9A CN113190469B (zh) 2021-05-13 2021-05-13 一种存储器、数据写入方法及存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110522834.9A CN113190469B (zh) 2021-05-13 2021-05-13 一种存储器、数据写入方法及存储系统

Publications (2)

Publication Number Publication Date
CN113190469A true CN113190469A (zh) 2021-07-30
CN113190469B CN113190469B (zh) 2023-04-14

Family

ID=76981627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110522834.9A Active CN113190469B (zh) 2021-05-13 2021-05-13 一种存储器、数据写入方法及存储系统

Country Status (1)

Country Link
CN (1) CN113190469B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114564147A (zh) * 2022-01-06 2022-05-31 浙江大华存储科技有限公司 一种数据流的自适应调整方法、系统、硬盘和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11129553A (ja) * 1997-10-28 1999-05-18 Canon Inc メモリ管理方法及びそれを用いた印刷装置と印刷システム
US20090064165A1 (en) * 2007-08-28 2009-03-05 Arimilli Lakshminarayana B Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
CN105204783A (zh) * 2015-10-13 2015-12-30 华中科技大学 一种基于数据生存期的固态盘垃圾回收方法
CN110825659A (zh) * 2018-08-14 2020-02-21 爱思开海力士有限公司 用于检查存储器系统中的块中的有效数据的设备和方法
CN111625188A (zh) * 2020-05-19 2020-09-04 合肥康芯威存储技术有限公司 一种存储器及其数据写入方法与存储系统
CN111949222A (zh) * 2020-09-18 2020-11-17 苏州浪潮智能科技有限公司 一种全闪磁盘阵列中垃圾回收中数据迁移的方法
CN112433958A (zh) * 2020-11-17 2021-03-02 合肥康芯威存储技术有限公司 一种固态硬盘的垃圾回收方法、系统、装置及其存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11129553A (ja) * 1997-10-28 1999-05-18 Canon Inc メモリ管理方法及びそれを用いた印刷装置と印刷システム
US20090064165A1 (en) * 2007-08-28 2009-03-05 Arimilli Lakshminarayana B Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
CN105204783A (zh) * 2015-10-13 2015-12-30 华中科技大学 一种基于数据生存期的固态盘垃圾回收方法
CN110825659A (zh) * 2018-08-14 2020-02-21 爱思开海力士有限公司 用于检查存储器系统中的块中的有效数据的设备和方法
CN111625188A (zh) * 2020-05-19 2020-09-04 合肥康芯威存储技术有限公司 一种存储器及其数据写入方法与存储系统
CN111949222A (zh) * 2020-09-18 2020-11-17 苏州浪潮智能科技有限公司 一种全闪磁盘阵列中垃圾回收中数据迁移的方法
CN112433958A (zh) * 2020-11-17 2021-03-02 合肥康芯威存储技术有限公司 一种固态硬盘的垃圾回收方法、系统、装置及其存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JUNQING GU等: "HOTIS: A Hot Data Identification Scheme to Optimize Garbage Collection of SSDs", 《2017 IEEE INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING WITH APPLICATIONS AND 2017 IEEE INTERNATIONAL CONFERENCE ON UBIQUITOUS COMPUTING AND COMMUNICATIONS (ISPA/IUCC)》 *
屠雪真等: "一种SSD存储系统中的先应式垃圾回收算法", 《电信科学》 *
李恒恒等: "一种基于预搜索的自适应闪存垃圾回收算法", 《小型微型计算机系统》 *
润冬: "高性能PCIe闪存固态盘驱动设计与数据布局研究", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114564147A (zh) * 2022-01-06 2022-05-31 浙江大华存储科技有限公司 一种数据流的自适应调整方法、系统、硬盘和存储介质

Also Published As

Publication number Publication date
CN113190469B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
US11216362B2 (en) Data storage device and operating method thereof
CN111625188B (zh) 一种存储器及其数据写入方法与存储系统
US11487669B2 (en) Memory system for storing data of log-structured merge tree structure and data processing system including the same
US20200218653A1 (en) Controller, data storage device, and operating method thereof
US11681462B2 (en) Memory system, operating method thereof and computing system
US11526439B2 (en) Storage device and operating method thereof
CN112035060A (zh) 一种存储介质的错误检测方法、系统及存储系统
CN111752852A (zh) 数据存储装置及数据存储装置的操作方法
CN113590502B (zh) 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
US11875036B2 (en) Computing system including host and storage system and having increased write performance
CN113590503B (zh) 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统
CN111625187B (zh) 一种存储器及其控制方法与存储系统
US20220229775A1 (en) Data storage device and operating method thereof
CN115458013A (zh) 存储装置及其操作方法
KR102620727B1 (ko) 전자 장치
CN113190469B (zh) 一种存储器、数据写入方法及存储系统
CN106055488B (zh) 数据储存设备及其操作方法
US11709781B2 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
CN111309642B (zh) 一种存储器及其控制方法与存储系统
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts
US10515693B1 (en) Data storage apparatus and operating method thereof
CN112015339B (zh) 一种存储器的数据保存系统,保存方法及存储系统
KR20210079894A (ko) 데이터 저장 장치 및 그것의 동작 방법
US12026398B2 (en) Memory system performing flush operation for buffer region
CN111638993B (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