CN111625188B - 一种存储器及其数据写入方法与存储系统 - Google Patents
一种存储器及其数据写入方法与存储系统 Download PDFInfo
- Publication number
- CN111625188B CN111625188B CN202010423486.5A CN202010423486A CN111625188B CN 111625188 B CN111625188 B CN 111625188B CN 202010423486 A CN202010423486 A CN 202010423486A CN 111625188 B CN111625188 B CN 111625188B
- Authority
- CN
- China
- Prior art keywords
- data
- logical
- memory
- cache
- state
- 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
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/061—Improving I/O performance
-
- 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/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]
-
- 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/0656—Data buffering 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出一种存储器及其数据写入方法和存储系统,包括:控制单元,用于接收和/或发送写入命令;逻辑页阵列,包括多个逻辑页;缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;存储单元阵列,包括多个存储单元,用于存储数据;其中,所述多个逻辑页与所述缓存单元相对应,当主机发送写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。本发明提出的存储器可以提高数据写入效率。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种存储器及其数据写入方法与存储系统。
背景技术
固态硬盘(SolidStateDrives,简称SSD),是用固态电子存储芯片阵列而制成的硬盘。固态硬盘可以使用与非门闪存(NANDflash)来实现。与非门闪存是一种非易失性存储介质,其特点是断电后数据不消失。目前,企业级的固态硬盘大多采用这种固态硬盘。
在对固态硬盘进行数据写入时,通常以4KB作为一个计算单位,主机(host)写入命令是以512B为单元传输至固态硬盘,当主机写入的数据无法不够4KB时,需要将存储单元内读出之前写过的数据,以形成4KB,然后在将4KB写入存储单元内。由于从存储单元内读取数据需要耗费大量的时间,因此造成写入的效率降低,同时一直从存储单元内读取数据也会损耗固态硬盘的使用寿命。
发明内容
鉴于上述现有技术的缺陷,本发明提出一种存储器及其数据写入方法与存储系统,该存储器可以减少对存储单元的读取次数,有效提高数据写入效率和存储器的使用寿命。
为实现上述目的及其他目的,本发明提出一种存储器,包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当主机发送写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
进一步地,所述写入命令包括逻辑块地址和逻辑块的长度,所述逻辑块长度从所述逻辑块地址依次排列。
进一步地,所述存储器设置有第一索引值和第二索引值。
进一步地,当所述数据要占用新的所述逻辑页时,将新的所述逻辑页的编号定义为所述第一索引值。
进一步地,当所述数据写入所述逻辑页阵列内时,将所述逻辑页阵列内的第一个逻辑页的编号定义为第二索引值,当所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中后,重新定义所述第二索引值。
进一步地,还包括位图表,所述位图表用于记录处于第一状态的所述逻辑页的数量。
进一步地,当所述缓存单元内的部分所述多个缓存块存储所述数据时,则所述缓存单元对应的所述逻辑页处于第二状态。
进一步地,还包括计数器,所述计数器用于记录处于第二状态的所述逻辑页的数量。
进一步地,当所述计数器内的数值达到第一预设值时,所述控制单元将所述存储单元阵列内的数据转移至所述逻辑页阵列内,以使处于第二状态的所述逻辑页的数量达到第二预设值。
进一步地,本发明还提出一种存储器的数据写入方法,包括:
提供一种存储器;
通过主机向所述存储器发送写入命令;
其中,所述存储器包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当所述主机发送所述写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
进一步地,本发明还提出一种存储系统,包括:
主机;
存储器,连接所述主机,所述存储器包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当主机发送写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
综上所述,本发明提出一种存储器及其数据写入方法和存储系统,当向存储器写入数据时,先将数据存储在缓存单元的缓存块内,每个缓存单元对应每个逻辑页,当缓存单元内的缓存块均存储数据时,则表示该缓存单元单元对应的逻辑页被填满数据,并将填满数据的逻辑页定义为第一状态,当处于第一状态的逻辑页的数量达到阈值时,则将处于第一状态的逻辑页内的数据转移至存储单元中。本发明的存储器有效减少了对存储单元的读取次数,由此提高了存储器的数据写入效率。
附图说明
图1:本实施例中存储系统的框图。
图2:本实施例中NAND型闪速存储器的系统方块图。
图3:NAND存储芯片的系统方块图。
图4:存储单元阵列的方框图。
图5:本实施例中存储系统的组成图。
图6:本实施例中系统控制器的结构示意图。
图7:本实施例中存储器的结构示意图。
图8:本实施例中提出的存储器的结构示意图。
图9:图8中逻辑页阵列和缓存单元阵列的对应关系图。
图10-图20:图8中存储器的数据写入方法示意图。
图21:本实施例提出的存储器的数据写入方法流程图。
图22:本实施例提出的存储系统的框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
这里所描述的系统包括用于控制包括闪存芯片的大容量存储模块的新颖结构。在图1中以高度概述的形式示出了整个系统。与这里的其它框图一样,图1所示的元件本质上是概念性的,它们示出了这些功能块之间的互相关系的性质,而不意在表示实际的物理电路级实施。
如图1所示,本实施例提出一种存储系统,该存储系统包括非易失性半导体存储装置。非易失性半导体存储装置是即使切断电源也不会丢失数据的非易失性存储器(非暂时的存储器),本实施例中,作为非易失性半导体存储装置,举例说明NAND型闪速存储器120。另外,作为存储系统,举例说明具备NAND型闪速存储器的固态硬盘设备(SolidStateDrive,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(SerialAdvancedTechnologyAttachment:串行高级技术附件)、PCIExpress(PeripheralComponentInterconnectExpress:高速外设部件互连)、SAS(SerialAttachedSCSI:串行连接SCSI)、USB(UniversalSerialBus:通用串行总线)等。在一实施例中,作为接口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(ErrorCheckingandCorrecting:错误检测和校正)电路112。
如图1所示,RAM111由DRAM(DynamicRandomAccessMemory:动态随机存取存储器)、SRAM(StaticRandomAccessMemory:静态随机存取存储器)等的易失性RAM,或MR AM(MagnetoresistiveRandomAccessMemory:磁阻随机存取存储器)、FeRAM(FerroelectricRandomAccessMemory:铁电随机存取存储器)、ReRAM(ResistanceRandomAccessMemory:电阻随机存取存储器)、PRAM(Phase-changeRandomAccessMemory:相变随机存取存储器)等的非易失性RAM构成。
如图1所示,ECC电路112在数据写入时,对写入数据生成纠错码,将该纠错码附加到写入数据,发送到NAND型闪速存储器120。另外,ECC电路112在数据读出时,对读出数据,采用读出数据所包含的纠错码进行检错(错误位检测)及纠错。ECC电路112的ECC编码、ECC解密采用例如Bose-Chaudhuri-Hocquenghem(BCH)码、Reed-Solomon(RS)码、Low-DensityParity-Check(LDPC)码。电路112也可以是采用CyclicRedundancyCheck(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通过存储区域网络(storageareanetwork,SAN)与主机(图中未示出)连接。控制器310可以是一种计算设备,如服务器、台式计算机等等。在控制器310上安装有操作系统以及应用程序。控制器310可以接收来自主机的输入输出(I/O)请求。控制器310还可以存储I/O请求中携带的数据(如果有的话),并且将该数据写入固态硬盘320中。固态硬盘(SolidStateDisk,SSD)是以闪存(flashmemory)芯片为介质的存储器,又名固态驱动器(SolidStateDrive,SSD)。
图5仅是示例性说明,在实际应用中存储系统可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器310类似,并且本实施例并不限定控制器之间,以及任意一个控制器与固态硬盘320之间的连接方式。只要各个控制器之间,以及各个控制器和固态硬盘320之间能够相互通信。
如图6所示,图6显示为控制器310的结构示例图,控制器310包括接口卡311、处理器313和接口卡314。接口卡311用于和主机通信,控制器310可以通过接口卡311接收主机的操作指令。处理器313可能是一个中央处理器(centralprocessingunit,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-accessmemory,RAM)。闪存芯片例如软盘、硬盘、固态硬盘(solidstatedisk,SSD)、光盘等各种可以存储程序代码的机器可读介质。存储器312具有保电功能,保电功能是指系统发生掉电又重新上电时,存储器312中存储的数据也不会丢失。
如图6所示,控制器310在识别出数据的生命周期级别之后,将所述识别出的生命周期级别以参数的形式携带在NVMe协议中传递给固态硬盘320,以便固态硬盘320根据生命周期的参数判断生命周期级别,并且为不同生命周期级别的数据分配不同的数据存储模式的擦除块。
如图6所示,需要说明的是,控制器310属于系统控制器,系统控制器是独立的设备,不同于固态硬盘中的控制芯片。本实施例将固态硬盘的控制芯片称为闪存控制器。
如图7所示,图7显示为固态硬盘的结构示意图。固态硬盘320包括闪存控制器321和多个闪存芯片322。其中,闪存控制器321用于执行控制器310发送的写数据请求或者读数据请求等操作。
如图7所示,闪存控制器321中包含闪存翻译层(flashtranslationlayer,FTL)。闪存翻译层用于保存有数据的逻辑地址与实际地址之间的对应关系。因此,闪存翻译层用于将系统控制器发送的写数据请求或者读数据请求中的逻辑地址转化为固态硬盘中数据的实际地址。数据的逻辑地址是由系统控制器分配的,一个段的逻辑地址区间的子集。数据的逻辑地址包括起始逻辑地址和长度,起始逻辑地址指示所述数据位于的所述段的位置,长度代表所述数据的大小。数据的实际地址可以是固态硬盘中该数据的物理地址,也可以是在所述物理地址的基础上经过虚拟化,只对闪存控制器可见的地址。该经过虚拟化的实际地址对系统控制器不可见。
如图7所示,固态硬盘320通常包括一个或多个闪存芯片322。每个闪存芯片322包括若干个擦除块,擦除块也可以称为物理块或闪存块。固态硬盘320在读取或写入时是以一个页(page)为基础的,但擦除操作只能以一个擦除块为基础,擦除操作是指将这个块的所有位都设置为“1”。在擦除之前,闪存控制器需要先将这个擦除块中的有效数据复制到另一个块的空白页中去。擦除块中的有效数据是指该块中保存的没有被修改过的数据,这部分数据可能会被读取。擦除块中的无效数据是指该块中保存的已经被修改过的数据,这部分数据不可能会被读取。
如图7所示,每个擦除块包含多个页(page)。固态硬盘320在执行写数据请求时,是以页为单位来写数据的。举例来说,控制器310向闪存控制器321发送一个写数据请求。所述写数据请求包括数据的逻辑地址。闪存控制器321在接收所述写数据请求之后,按照接收的时间顺序将所述数据连续写入一个或多个擦除块中。连续写入一个或多个擦除块是指,闪存控制器321查找一个空白的擦除块,将数据写入所述空白的擦除块,直至将所述空白的擦除块填满,当所述数据的大小超过擦除块的容量时,闪存控制器321再查找下一个空白的擦除块,继续写入。闪存翻译层建立并保存所述逻辑地址与写入所述数据的页的实际地址之间的对应关系。当控制器310向闪存控制器321发送读数据请求,要求读取所述数据时,所述读数据请求中包括所述逻辑地址。闪存控制器321根据所述逻辑地址,以及所述逻辑地址与实际地址之间的对应关系读取所述数据,并将该数据发送给控制器310。
如图7所示,存储单元(cell)是页的最小操作单元,一个存储单元对应一个浮栅晶体管,它可以存储1比特(bit)或多比特的数据,这取决于闪存的类型。一个页上的存储单元共享一根字符线。存储单元包括控制栅极和浮置栅极,浮置栅极是真正存储数据的单元。数据在存储单元中是以电荷(electricalcharge)形式存储的。存储电荷的多少取决于控制栅极所被施加的电压,其控制了向浮置栅极中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值来表示。往浮置栅极中写入数据就是对控制栅极施加电压,使得浮置栅极中存储的电荷够多,超过阈值,就表示0。对闪存进行擦除操作就是对浮置栅极放电,使得浮置栅极中存储的电荷低于阈值,就表示1。
如图8所示,本实施例还提出另一种存储器400,该存储器400包括控制单元410,逻辑页阵列420,缓存单元阵列430和存储单元阵列440。该控制单元410可连接外部主机,通过外部主机向控制单元410发送写入命令或读取命令。主机可以通过控制单元410与存储单元阵列440通信和交互。
如图8所示,在本实施例中,控制单元410与逻辑页阵列420和缓存单元阵列430连接,缓存单元阵列430与逻辑页阵列420连接,且缓存单元阵列430与逻辑页阵列420向对应。在本实施例中,该逻辑页阵列420包括多个逻辑页,该缓存单元阵列430包括多个缓存单元,多个缓存单元与多个逻辑页一一对应,每个缓存单元还包括多个缓存块,在本实施例中,所述逻辑页也可以定义为逻辑页,所述缓存块也可以定义为逻辑块。控制单元410接受到写入命令时,可以先将数据存储在缓存单元阵列430内,也就是将数据存储在逻辑页阵列420内,然后在将数据存储在存储单元阵列440内。在本实施例中,该逻辑页阵列420连接存储单元阵列440,逻辑页阵列420内的数据可以转移至存储单元阵列440内,存储单元阵列440内的数据同样可以转移至逻辑页阵列420内。
如图9所示,在本实施例中,该逻辑页阵列420与缓存单元阵列430相对应,也就是逻辑页0(Hblock0:Hpage0)与缓存单元0(CurrentCacheBuffer0)相对应,逻辑页1(Hblock0:Hpage1)与缓存单元1(CurrentCacheBuffer1)相对应,逻辑页2(Hblock0:Hpage2)与缓存单元2(CurrentCacheBuffer2)相对应,逻辑页3(Hblock0:Hpage3)与缓存单元3(Current CacheBuffer3)相对应,以此类推。缓存单元0还可以包括八个缓存块,即缓存块0至缓存块7,缓存单元1包括八个缓存块,即缓存块8至缓存块15,以此类推。在未进行存储数据时,各个逻辑页的地址为0xffffffff,各个逻辑页的状态为0,也就是各个逻辑页为空白状态。
如图8-图10所示,当主机发送第一次写入命令时,主机发送的命令为(起始逻辑块地址=4,逻辑块的长度=12),也就是(StartLogicalPageAddress=4,Length=12),缩写为(SLBA=4,Len=12)。在本实施例中,当主机发送的命令为(SLBA=4,Len=12)时,控制单元410经过计算得知,将数据存储在逻辑页0(Hblock0:Hpage0)和逻辑页1(Hblock0:Hpage1)中,具体地,先将数据存储在逻辑页0对应的缓存单元0内,以及存储在逻辑页1对应的缓存单元1内,数据从缓存块4之后依序排列,也就是说缓存单元0内存储四个数据,缓存单元1内存储八个数据,也就是逻辑页0内存储四个数据,逻辑页1内存储八个数据。因此逻辑页0(Hblock0:Hpage0)的状态变成0xf0,逻辑页1(Hblock0:Hpage1)的状态变成0xff。同时存储器还定义出第一索引值和第二索引值。当要存储的数据要占用新的逻辑页时,将新的逻辑页的编号定义为第一索引值。当数据写入逻辑页阵列内时,将逻辑页阵列内的第一个逻辑页的编号定义为第二索引值。在本实施例中,第一索引值为2,第一索引值为0。在本实施例中,缓存单元0内的缓存块未完全存储数据,因此缓存单元0对应的逻辑页0处于第二状态,缓存单元1内的缓存块均存储数据,因此缓存单元1对应的逻辑页1处于第一状态。所述第一状态为对齐状态,所述第二状态为未对齐状态。在本实施例中,存储器400还设置有位图表(AwPageBitMap)和计数器(UawPageCount),所述位图表用于记录处于第一状态的逻辑页的数量,计数器用于记录处于第二状态的逻辑页的数量。在本实施例中,经过第一次写入命令后,位图表的数值为0x02,0x02转换成二进制表示处于第一状态的逻辑页的数量为1,计数器的数值为1,表示处于第二状态的逻辑页的数量为1。
如图8和图11所示,当主机发送第二次写入命令时,主机发送的命令为(SLBA=18,LEN=8)。控制单元410经过计算得知,将数据存储在逻辑页2(Hblock0:Hpage2)和逻辑页3(Hblock0:Hpage3)中,具体地,先将数据存储在逻辑页2对应的缓存单元2内,以及存储在逻辑页3对应的缓存单元3内,数据从缓存块18依序排列,也就是缓存单元2内存储六个数据,缓存单元3内存储两个数据,因此逻辑页2的状态变成0xfc,逻辑页3的状态变成0x03。同时由于数据占用了逻辑页3,因此当下一次写入数据时,需要占用新的逻辑页时,因此第一索引值变成逻辑页4,也就是说第一索引值变成4。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值为0。在本实施例中,缓存单元2和缓存单元3内的缓存块均未完全填满数据,因此缓存单元2对应的逻辑页2和缓存单元3对应的逻辑页3处于第二状态,也就是处于未对齐状态。因此当主机发送第二次写入命令时,计数器的值变成3,也就是处于第二状态的逻辑页的数量为3,位图表的值为0x02,0x02转换成二进制表示处于第一状态的逻辑页的数量为1。
如图8和图12所示,当主机发送第三次写入命令时,主机发送的命令为(SLBA=16,LEN=2)。控制单元410经过计算得知,将数据存储在逻辑页2(Hblock0:Hpage2)中,具体地,先将数据存储在逻辑页2对应的缓存单元2内,数据从缓存块16依序排列,也就是缓存单元2内存储两个数据,因此逻辑页2的状态变成0xff。第三次写入命令不需要占用新的逻辑页,因此第一索引值还是4。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,缓存单元2内的缓存块均填满数据,因此缓存单元2对应的逻辑页2处于第一状态,也就是说逻辑页2处于对齐状态。因此当主机发送第三次写入命令时,计数器的值变成2,也就是处于第二状态的逻辑页的数量为2,位图表的值为0x06,0x06转换成二进制表示处于第一状态的逻辑页的数量为2。
如图8和图13所示,当主机发送第四次写入命令时,主机发送的命令为(SLBA=28,LEN=3)。控制单元410经过计算得知,将数据存储在逻辑页3(Hblock0:Hpage3)中,具体地,先将数据存储在逻辑页3对应的缓存单元3内,数据从缓存块28依序排列,也就是缓存单元3内存储三个数据,因此逻辑页2的状态变成0x73。第三次写入命令不需要占用新的逻辑页,因此第一索引值还是4。在本实施例中,缓存单元2内的缓存块均填满数据,因此缓存单元2对应的逻辑页由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例在逻辑页3处于第二状态,也就是说逻辑页3处于未对齐状态。因此当主机发送第四次写入命令时,计数器的值变成2,也就是处于第二状态的逻辑页的数量为2,位图表的值为0x06,0x06转换成二进制表示处于第一状态的逻辑页的数量为2。
如图8和图14所示,当主机发送第五次写入命令时,主机发送的命令为(SLBA=32,LEN=9)。控制单元410经过计算得知,将数据存储在逻辑页4(Hblock0:Hpage4)和逻辑页5(Hblock0:Hpage5)中,具体地,先将数据存储在逻辑页4对应的缓存单元4内以及存储在逻辑页5对应的缓存单元5内,数据从缓存块32依序排列,也就是缓存单元4内存储八个数据,在缓存单元5内存储一个数据,因此逻辑页4的状态变成0xff,逻辑页5的状态变成0x01。由于第五次写入命令占用了逻辑页5,因此当写入数据需要占用新的逻辑页时,将第一索引值变成对应逻辑页6,也就是说第一索引值变成6。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,缓存单元4内的缓存块均填满数据,因此缓存单元4对应的逻辑页4处于第一状态,也就是说逻辑页4处于对齐状态,缓存单元5内的缓存块未完全填满数据,因此缓存单元5对应的逻辑页5处于第二状态,也就是说逻辑页5处于未对齐状态。由此经过第五次写入命令后,计数器的值变成3,也就是说处于第二状态的逻辑页的数量为3,位图表的值为0x16,0x16转换成二进制表示处于第一状态的逻辑页的数量为3。
如图8和图15所示,当主机发送第六次写入命令时,主机发送的命令为(SLBA=49,LEN=5)。控制单元410经过计算得知,将数据存储在逻辑页6(Hblock0:Hpage6)中,具体地,先将数据存储在逻辑页6对应的缓存单元6内,数据从缓存块49依序排列,也就是在缓存单元6内存储五个数据,因此逻辑页6的状态变成0x3e。由于第六次写入命令占用了逻辑页6,因此当写入数据需要占用新的逻辑页时,将第一索引值对应逻辑页7,也就是说第一索引值变成7。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,缓存单元6内的缓存块未完全存储数据,因此缓存单元6对应的逻辑页6处于第二状态,也就是说逻辑页6处于未对齐状态。由此经过第六次写入命令后,计数器的值变成4,也就是说处于第二状态的逻辑页的数量为4。经过第六次写入命令后,位图表的值0x16,0x16转换成二进制表示处于第一状态的逻辑页的数量为3。
如图8和图16所示,当主机发送第七次写入命令时,主机发送的命令为(SLBA=12,LEN=8),控制单元410经过计算得知,将数据存储在逻辑页2(Hblock0:Hpage2)和逻辑页3(Hblock0:Hpage3)中,具体地,先将数据存储在逻辑页2对应的缓存单元2内,以及存储在逻辑页3对应的缓存单元3内,数据从缓存块12依序排列,也就是在缓存单元2内存储四个数据,在缓存单元3内存储四个数据。需要说明的是,在主机发送第七次写入命令之前,缓存单元2和缓存单元3内缓存块均存储数据,因此主机发送的第七次写入命令可以直接替换掉缓存单元2和缓存单元3内的数据。因此经过第七次写入命令之后,第一索引值和第二索引值未发生变化,第一索引值为7,第二索引值为0。同时经过第七次写入命名之后,计数器的值为4,表示处于第二状态的逻辑页的数量为4,位图表的值0x16,0x16转换成二进制表示处于第一状态的逻辑页的数量为3。
如图8和图17所示,当主机发送第八次写入命令时,主机发送的命令为(SLBA=56,LEN=2),控制单元410经过计算得知,将数据存储在逻辑页7(Hblock0:Hpage7)中,具体地,先将数据存储在逻辑页7对应的缓存单元7中,数据从缓存块56依序排列,也就是缓存单元7内存储两个数据,因此逻辑页7的状态变成0x03。由于第八次写入命令占用了逻辑页7,因此当写入数据需要占用新的逻辑页时,将第一索引值对应逻辑页8,也就是说第一索引值变成8。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,缓存单元7内的缓存块未完全存储数据,因此缓存单元7对应的逻辑页7处于第二状态,也就是说逻辑页7处于未对齐状态。由此经过第八次写入命令后,计数器的值变成5,也就是说处于第二状态的逻辑页的数量为5。经过第八次写入命令后,位图表的值0x16,0x16转换成二进制表示处于第一状态的逻辑页的数量为3。
如图8和图18所示,当主机发送第九次写入命令和第十次写入命令时,主机发送的命令分别为(SLBA=64,LEN=1)和(SLBA=72,LEN=2),控制单元410经过计算得知,将数据存储在分别逻辑页8(Hblock0:Hpage8)和逻辑页9(Hblock0:Hpage9)中,具体地,先将数据存储在逻辑页8对应的缓存单元8中,以及存储在逻辑页9对应的缓存单元9中,具体地,数据从缓存块64,缓存块72依序排列,也就是缓存单元8内存储一个数据,缓存单元9内存储两个数据,因此逻辑页8的状态变成0x01,逻辑页9的状态变成0x03。由于第八次写入命令和第九次写入命令占用了逻辑页8和逻辑页9,因此当写入数据需要占用新的逻辑页时,将第一索引值对应逻辑页10,也就是说第一索引值变成10。由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,缓存单元8和缓存单元9内的缓存块未完全存储数据,因此缓存单元8对应的逻辑页8处于第二状态,缓存单元9对应的逻辑页9处于第二状态,也就是说逻辑页8和逻辑页9处于未对齐状态,因此,经过第九次写入命令和第十次写入命令后,计数器的值变成7,也就是说处于第二状态的逻辑页的数量为7。经过第九次写入命令和第十次写入命令后,位图表的值0x16,0x16转换成二进制表示处于第一状态的逻辑页的数量为3。
如图8和图19所示,当主机发送第十一次写入命令时,主机发送的命令为(SLBA=80,LEN=3),控制单元410经过计算得知,将数据存储在逻辑页10(Hblock0:Hpage10)中,具体地,先将数据存储在逻辑页10对应的缓存单元10中,数据从缓存块80依序排列,也就是在缓存单元3内存储三个数据,因此逻辑页10的状态变成0x07。由于第十一次写入命令占用了逻辑页10,因此当写入数据需要占用新的逻辑页时,将第一索引值对应逻辑页11,也就是说第一索引值变成11,由于逻辑页阵列中的数据未转移至存储单元阵列中,因此第二索引值还是0。在本实施例中,当由于缓存单元10内的缓存块未完全存储数据,因此缓存单元10对应的逻辑页10处于第二状态,也就是说逻辑页10处于未对齐状态,因此,经过第十一次写入命令后,计数器的值变成8,也就是说处于未对齐状态的逻辑页的数量为8,因此计数器的值达到了控制单元410设定的第一预设值,因此控制单元410将存储单元阵列440的数据转移至处于未对齐状态的逻辑页中,以使处于未对齐状态的逻辑页的数量达到第二预设值,由于计数器记录了处于未对齐状态的逻辑页的编号,因此可以将存储单元阵列440内的数据转移至处于未对齐状态的逻辑页中。举例说明,控制单元410将存储单元阵列440内的数据转移至逻辑页0和逻辑页3中,使得逻辑页0和逻辑页3处于第一状态,也就是使得逻辑页0和逻辑页3处于对齐状态。在本实施例中,第一预设值例如为8,第二预设值例如为6,第一预设值大于第二预设值,且第一预设值和第二预设值的差值不能超过4,如果第一预设值和第二预设值的差值大于4,例如第一预设值为8,第二预设值为2,第一预设值和第二预设值的差值为6,则表示需要从存储单元阵列440中读取六次数据,这样也会降低存储器的数据写入效率。
如图19所示,经过第十一次写入命令之后,逻辑页0至逻辑页4处于第一状态,也就是处于对齐状态,逻辑页5至逻辑页10处于第二状态,也就是处于第二状态。因此,位图表的值变成0x1f,0x1f转换成二进制表示处于第一状态的逻辑页的数量为5。计数器的值为6,也就是处于第二状态的逻辑页的数量为6。
如图8和图20所示,当主机发送第十二次写入命令时,主机发送的命令为(SLBA=40,LEN=24),控制单元410经过计算得知,将数据存储在逻辑页5,逻辑页6和逻辑页7中。具体地,先将数据存储在逻辑页5对应的缓存单元5,逻辑页6对应的缓存单元6以及逻辑页7中对应的缓存单元7中,也就是从缓存块40依序排列,也就是缓存单元5内存储八个数据,缓存单元6内存储八个数据,缓存单元7内存储八个数据。因此逻辑页5,逻辑页6和逻辑页7的状态变成0xff,也就是说逻辑页5,逻辑页6和逻辑页7处于第一状态,也就是处于对齐状态。
如图20所示,在本实施例中,逻辑页0至逻辑页7均处于对齐状态,因此可以将逻辑页0至逻辑页7内的数据依次转移至存储单元阵列440中,当逻辑页0至逻辑页7中的数据转移至存储单元阵列440后,逻辑页0至逻辑页7的状态也变成0,因此第二索引值将变成8,也就是说当逻辑页8至逻辑值15处于对齐状态时,可以将逻辑页8至逻辑页15中的数据依次转移至存储单元阵列440中。在本实施例中,由于第十二次写入命令未占用新的逻辑页,因此第一索引值还是11。经过第十二次写入命令后,处于第二状态的逻辑页的数量为3,因此计数器的值变成3。
如图8和图20所示,在本实施例中,当处于第一状态的逻辑页的数量达到八个(存储器设定的阈值)时,也就是处于对齐状态的逻辑页的数量达到八个时,控制单元410将处于对齐状态的逻辑页的数据转移至存储单元阵列440中,因此提高了数据写入效率。在本实施例中,每个逻辑页的存储容量为4KB,因此将八个逻辑页的数据转移至存储单元阵列440中时,也就是将32KB转移至存储单元阵列440中。当然,在一些实施例中,还可以将64KB转移至存储单元阵列440中。
如图20所示,逻辑页阵列420仅显示出逻辑页0至逻辑页11,缓存单元阵列430仅显示出缓存单元0至缓存单元11,当然,逻辑页阵列420包括逻辑页0至逻辑页N,缓存单元阵列430包括缓存单元0至缓存单元N。当逻辑页0至逻辑页7中的数据转移至存储单元阵列440后,然后将逻辑页8至逻辑页15的数据转移至存储单元阵列440中,以此类推,然后在循环使用逻辑页0至逻辑页7,逻辑页8至逻辑页15,以此类推。
如图20所示,如果经过第十二次写入命令后,假设逻辑页7处于未对齐状态,也就是需要进行第十三次写入命令或第十四次写入命令,以使得逻辑7处于对齐状态,从而将逻辑页0至逻辑页7的数据转移至存储单元阵列中。
如图21所示,本实施例还提出一种存储器的数据写入方法,包括:
S1:通过主机发送写入命令;
S2:通过控制单元接收所述写入命令,并将数据存储在缓存单元阵列中的缓存块内,其中,所述缓存单元阵列包括多个缓存单元,每一所述缓存单元包括多个所述缓存块,所述缓存单元与逻辑页相对应,当所述缓存单元内的多个缓存块均存储数据时,则表示所述缓存单元对应的所述逻辑页处于第一状态,当处于第一状态的所述逻辑页的数量达到阈值时,控制单元则将处于第一状态的所述逻辑页的数据转移至存储单元阵列中。
如图21所示,在本实施例中,步骤S1-S2的操作过程可以参阅图9-图20的阐述,本实施例不在进行阐述。
如图22所示,本实施例还提出一种存储系统,该存储系统存储系统可以包括主机101和通过接口402与主机401传送命令和/或数据的存储器400。存储系统可以被实现为个人计算机(PC)、工作站、数据中心、互联网数据中心、存储区域网络、网络附属存储器(NAS)或移动计算设备,但是本发明构思不限于这些示例。移动计算设备可以被实现为膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静止相机、数字视频相机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持式游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、物联网(IoE)设备、无人机或电子书,但是本发明构思不限于这些示例。
如图22所示,接口402可以是串行高级技术附件(SATA)接口,SATA快速(SATAe)接口、SAS(串行附件小型计算机系统接口(SCSI))、外围组件互连高速(PCIe)接口、非易失性存储器快速(NVMe)接口、高级主机控制器接口(AHCI)或多媒体卡(MMC)接口,但不限于此。接口402可以传输电信号或光信号。主机401可以经由接口402控制存储器400的数据处理操作(例如,写操作或读操作)。主机401可以指主机控制器。
如图22所示,在本实施例中,该存储器400的数据写入方法可以参阅图9-图20的描述,本实施例不在进行阐述。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明,本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案,例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
除说明书所述的技术特征外,其余技术特征为本领域技术人员的已知技术,为突出本发明的创新特点,其余技术特征在此不再赘述。
Claims (11)
1.一种存储器,其特征在于,包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当主机发送写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
2.根据权利要求1所述的存储器,其特征在于,所述写入命令包括逻辑块地址和逻辑块的长度,所述逻辑块长度从所述逻辑块地址依次排列。
3.根据权利要求1所述的存储器,其特征在于,所述存储器设置有第一索引值和第二索引值。
4.根据权利要求3所述的存储器,其特征在于,当所述数据要占用新的所述逻辑页时,将新的所述逻辑页的编号定义为所述第一索引值。
5.根据权利要求3所述的存储器,其特征在于,当所述数据写入所述逻辑页阵列内时,将所述逻辑页阵列内的第一个逻辑页的编号定义为第二索引值,当所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中后,重新定义所述第二索引值。
6.根据权利要求1所述的存储器,其特征在于,还包括位图表,所述位图表用于记录处于第一状态的所述逻辑页的数量。
7.根据权利要求1所述的存储器,其特征在于,当所述缓存单元内的部分所述多个缓存块存储所述数据时,则所述缓存单元对应的所述逻辑页处于第二状态。
8.根据权利要求7所述的存储器,其特征在于,还包括计数器,所述计数器用于记录处于第二状态的所述逻辑页的数量。
9.根据权利要求8所述的存储器,其特征在于,当所述计数器内的数值达到第一预设值时,所述控制单元将所述存储单元阵列内的数据转移至所述逻辑页阵列内,以使处于第二状态的所述逻辑页的数量达到第二预设值。
10.一种存储器的数据写入方法,其特征在于,包括:
提供一种存储器;
通过主机向所述存储器发送写入命令;
其中,所述存储器包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当所述主机发送所述写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
11.一种存储系统,其特征在于,包括:
主机;
存储器,连接所述主机,所述存储器包括:
控制单元,用于接收和/或发送写入命令;
逻辑页阵列,包括多个逻辑页;
缓存单元阵列,包括多个缓存单元,每一所述缓存单元包括多个缓存块;
存储单元阵列,包括多个存储单元,用于存储数据;
其中,所述多个逻辑页与所述多个缓存单元相对应,当主机发送写入命令时,所述控制单元将数据存储在缓存块内,当所述缓存单元内的多个缓存单元均存储数据时,则所述缓存单元对应的所述逻辑页处于第一状态;当处于第一状态的所述逻辑页的数量达到阈值时,所述控制单元将处于第一状态的所述逻辑页内的数据转移至所述存储单元阵列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423486.5A CN111625188B (zh) | 2020-05-19 | 2020-05-19 | 一种存储器及其数据写入方法与存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010423486.5A CN111625188B (zh) | 2020-05-19 | 2020-05-19 | 一种存储器及其数据写入方法与存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625188A CN111625188A (zh) | 2020-09-04 |
CN111625188B true CN111625188B (zh) | 2023-08-08 |
Family
ID=72259802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010423486.5A Active CN111625188B (zh) | 2020-05-19 | 2020-05-19 | 一种存储器及其数据写入方法与存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625188B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022193270A1 (en) * | 2021-03-19 | 2022-09-22 | Micron Technology, Inc. | Write booster buffer flush operation |
CN113190469B (zh) * | 2021-05-13 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种存储器、数据写入方法及存储系统 |
CN113223584A (zh) * | 2021-05-26 | 2021-08-06 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据读取方法 |
CN113986137A (zh) * | 2021-10-28 | 2022-01-28 | 英韧科技(上海)有限公司 | 存储装置和存储系统 |
CN114153649B (zh) * | 2021-12-09 | 2023-04-14 | 合肥康芯威存储技术有限公司 | 一种数据存储设备及其控制方法与电子设备 |
CN115469799B (zh) * | 2022-05-18 | 2023-12-15 | 上海江波龙数字技术有限公司 | 数据存储方法、存储装置及计算机可读存储装置 |
CN116909492B (zh) * | 2023-09-12 | 2023-12-08 | 合肥康芯威存储技术有限公司 | 一种存储设备及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN103034590A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 用于固态驱动器的直接存储器寻址的方法与系统 |
US8838937B1 (en) * | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
CN107832007A (zh) * | 2017-10-25 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高ssd综合性能的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105279108A (zh) * | 2014-07-25 | 2016-01-27 | 广明光电股份有限公司 | 固态硬盘写入数据的方法 |
-
2020
- 2020-05-19 CN CN202010423486.5A patent/CN111625188B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034590A (zh) * | 2011-09-30 | 2013-04-10 | 国际商业机器公司 | 用于固态驱动器的直接存储器寻址的方法与系统 |
US8838937B1 (en) * | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN107832007A (zh) * | 2017-10-25 | 2018-03-23 | 记忆科技(深圳)有限公司 | 一种提高ssd综合性能的方法 |
Non-Patent Citations (1)
Title |
---|
Gyu Sang Choi et al..Study of the performance impact of a cache buffer in solid-state disks.Microprocessors and Microsystems.2011,第35卷(第3期),359-369. * |
Also Published As
Publication number | Publication date |
---|---|
CN111625188A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625188B (zh) | 一种存储器及其数据写入方法与存储系统 | |
US10997039B2 (en) | Data storage device and operating method thereof | |
US20130013853A1 (en) | Command executing method, memory controller and memory storage apparatus | |
US8489805B2 (en) | Memory devices operated within a communication protocol standard timeout requirement | |
KR20170053278A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11086772B2 (en) | Memory system performing garbage collection operation and operating method of memory system | |
US11526439B2 (en) | Storage device and operating method thereof | |
KR102406449B1 (ko) | 스토리지 장치 및 그 동작 방법 | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102544162B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
CN111625187B (zh) | 一种存储器及其控制方法与存储系统 | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
US20210397364A1 (en) | Storage device and operating method thereof | |
CN112230849B (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
US10558562B2 (en) | Data storage device and operating method thereof | |
KR20190095825A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113190469B (zh) | 一种存储器、数据写入方法及存储系统 | |
CN111309642B (zh) | 一种存储器及其控制方法与存储系统 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
US20200310873A1 (en) | Controller and memory system including the same | |
CN112015339B (zh) | 一种存储器的数据保存系统,保存方法及存储系统 | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 |
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 |