CN103761988A - 固态硬盘及数据移动方法 - Google Patents
固态硬盘及数据移动方法 Download PDFInfo
- Publication number
- CN103761988A CN103761988A CN201310740030.1A CN201310740030A CN103761988A CN 103761988 A CN103761988 A CN 103761988A CN 201310740030 A CN201310740030 A CN 201310740030A CN 103761988 A CN103761988 A CN 103761988A
- Authority
- CN
- China
- Prior art keywords
- data
- verification
- ecu
- piece
- valid 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.)
- Granted
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2236—Copy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及固态硬盘及数据移动方法,其中,该固态硬盘包括:存储介质和控制芯片;存储介质的存储空间划分为至少两个用于存储数据的块,控制芯片包括:业务处理模块,用于向移动模块发送移动命令,移动命令用于指示移动模块将数据从源块移动到目的块;移动模块,用于接收业务处理模块发送的移动命令;根据移动命令,从源块读出有效数据,对有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。本发明实施例固态硬盘通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,降低数据移动过程对SSD性能的影响。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种固态硬盘及数据移动方法。
背景技术
固态硬盘(英文:Solid State Disk,缩写:SSD)可以使用与非门闪存(英文:NAND Flash)来实现。与非门闪存是一种非易失性随机访问存储介质,其特点是断电后数据不消失。与非门闪存执行重新写入操作之前需要先执行擦除操作,由于写入操作以页为单位,擦除操作以块为单位,需要擦除的块可能包含写入有效数据的页,因此,SSD可以预留部分冗余区用于数据搬移。
有效数据的搬移需要经过读控制过程和写控制过程。在读控制过程中,控制芯片将源块中的有效页中的有效数据读取到读缓存(英文:read buffer)中。由错误检查纠正编解码单元(英文:Error Correcting Code unit,缩写:ECU)中对有效数据进行错误检查纠正(英文:Error Correcting Code,缩写:ECC)校验,ECC校验过程中会对有效数据进行解码,将校验成功且已经解码的数据通过直接内存存取(英文:Direct Memory Access,缩写:DMA)数据通路写入双倍速率同步动态随机存储器(英文:Double Data Rate,缩写:DDR)。在写控制过程中,控制芯片从DDR中将已经解码的数据读出,通过DMA数据通路,发送到ECU中进行ECC编码,将编码之后的有效数据写入写缓存(英文:write buffer),然后再由写缓存写入SSD的空白块。
综上所述,现有SSD的数据移动的处理过程中,需要与主机抢占后端的ECU资源、DDR资源、DMA数据通路资源和CPU资源等,降低了SSD性能。
发明内容
有鉴于此,本发明要解决的技术问题是,如何在在数据移动过程中提升SSD数据的处理效率并降低对SSD性能的影响。
为了解决上述技术问题,第一方面,本发明提供了一种固态硬盘,包括:
存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括:
业务处理模块,用于向移动模块发送移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
移动模块,用于接收所述业务处理模块发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
结合第一方面,在第一种可能的实现方式中,所述移动模块包括:控制单元和错误检查纠正编解码单元ECU;
所述控制单元,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述ECU;
所述ECU,用于对所述有效数据进行错误检查纠正ECC校验;
所述控制单元,还用于将所述ECU校验后的数据写入所述目的块的空白页中。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述移动模块还包括:
读缓存,用于缓存所述控制单元从所述源块中读取的有效数据;
所述控制单元,还用于从所述读缓存中读取所述有效数据并发送至所述ECU。
结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述移动模块还包括:
写缓存,用于缓存所述ECU校验后的数据;
所述控制单元,还用于从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
结合第一方面的第一、第二或第三种可能的实现方式,在第四种可能的实现方式中,所述ECU,具体用于若所述ECU对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU校验后的数据;若所述ECU对所述有效数据校验的结果为错误,则对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
为了解决上述技术问题,第二方面,本发明提供了一种数据移动方法,包括:所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括:
所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
结合第二方面,在第一种可能的实现方式中,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括:
所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的ECU;
所述ECU对所述有效数据进行ECC校验;
所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述ECU,包括:
所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中;
所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
结合第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括:
所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
结合第二方面的第一、第二或第三种可能的实现方式,在第四种可能的实现方式中,所述ECU对所述有效数据进行ECC校验,包括:
若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据;
若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
本发明实施例在需要移动数据时,固态硬盘的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高固态硬盘的数据移动效率,并且可以减少数据移动所占用的后端资源,降低数据移动过程对固态硬盘性能的影响。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1为本发明实施例一的固态硬盘的结构示意图;
图2为本发明实施例一的固态硬盘的控制芯片的工作原理示意图;
图3a为本发明实施例二的固态硬盘的结构示意图;
图3b和图3c为本发明实施例二的固态硬盘的数据移动的示意图;
图4为本发明实施例三的数据移动方法的流程图;
图5为本发明实施例四的数据移动方法的流程图;
图6为本发明实施例四的数据移动方法的另一流程图;
图7为本发明实施例五的固态硬盘的结构框图。
具体实施方式
实施例1
图1为本发明实施例一的固态硬盘的结构示意图,如图1所示,该固态硬盘(SSD)包括:存储介质11和控制芯片13;所述存储介质11的存储空间划分为至少两个用于存储数据的块,所述控制芯片13包括:
业务处理模块131,用于向移动模块发送移动(MOVE)命令,所述移动命令用于指示将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质11中需要移出数据的块,所述目的块为所述存储介质11中需要写入数据的块。
移动模块133,用于接收所述业务处理模块131发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
具体地,固态硬盘中的存储介质11可以采用与非门闪存(NAND Flash)等非易失性存储器实现。其中,与非门闪存可以由内部寄存器和存储矩阵组成,该存储矩阵可以包括若干个块(英文:Block),每个块包括若干个页(英文:Page),每个页包括若干个字节(英文:Byte)。每种NAND Flash的存储矩阵的大小可以不同。例如:NAND Flash的存储矩阵可以由4224个字节组成一个页,128个页组成一个块,由8192个块组成整个NAND Flash的存储矩阵。在每页中前4096字节可以用于存储数据;而后128字节可以用于存放ECC数据校验码,称为带外数据(英文:Out of Bank,缩写:OOB)区。每个页的状态可能为有效或者无效,其中,状态为有效的页中的数据为有效数据,状态为无效的页中的数据为无效数据。
SSD的控制芯片13中,可以包括多种业务处理模块131,例如:用于处理垃圾回收(英文:Garbage Collection,缩写:GC)业务的模块可以为GC模块,用于处理巡检业务的模块可以为巡检模块,用于处理均衡业务的模块可以为均衡模块。其中,在GC、巡检、均衡等业务处理的过程中,可能需要对有效数据进行移动,这时相关的业务处理模块131可以向移动模块133下发移动命令,指示移动模块133将数据从源块移动到目的块。图2为本发明实施例一的固态硬盘的控制芯片13的工作原理示意图,如图2所示,控制芯片13可以划分为业务处理层21和闪存(Flash)相关的命令操作层23,其中,各个业务处理模块131如GC模块211、巡检模块213、均衡模块215等属于业务处理层21,命令操作层23可以包括NAND flash的读模块231、NAND flash的写模块233和移动模块133等。其中,在业务处理模块131仅需要进行读数据操作时,可以由读模块231控制;在业务处理模块131仅需要进行写数据的操作时,可以由写模块233控制;而在业务处理模块131需要移动数据的操作时,可以将需要移出数据的源块的地址和需要写入数据的目的块的地址封装生成移动命令,由GC模块211、巡检模块213、均衡模块215等业务处理模块发送给移动模块133,以控制NAND flash中的数据移动。
以GC过程中的数据移动为例:在GC过程中,需要将GC链上的某源块中所有的有效数据搬移到空白块,再将该源块擦除,以达到释放空间的目的。其中,将某源块中所有的有效数据搬移到空白块的过程,就是数据移动的过程。这种情况下,GC模块211可以向移动模块133发送移动命令,将需要移出数据的源块的地址和需要写入数据的目的块的地址带给移动模块133,然后移动模块133可以将有效数据从NAND Flash中的源块读出,进行ECC校验后,将校验后的数据写入目的块的空白页。在源块中的所有的有效数据全部移动完成后,可以将源块擦除,从而达到对源块的存储空间进行回收的目的。
本实施例中,在需要移动数据时,固态硬盘的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。
实施例2
图3a为本发明实施例二的固态硬盘的结构示意图,如图3a所示,在上一实施例的基础上,该固态硬盘的移动模块133可以包括:控制单元31和错误检查纠正编解码单元ECU33;
所述控制单元31,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述ECU33;
所述ECU33,用于对所述有效数据进行错误检查纠正ECC校验;
所述控制单元31,还用于将所述ECU33校验后的数据写入所述目的块的空白页中。
具体地,图3b和图3c为本发明实施例二的固态硬盘的数据移动的示意图,如图3b所示,移动模块133通过控制单元31和ECU33可以形成独立的数据移动通道,不需要占用系统的其他资源。
在一种可能的实现方式中,如图3c所示,所述移动模块133还可以包括:
读缓存35,用于缓存所述控制单元31从所述源块中读取的有效数据;
所述控制单元31还用于从所述读缓存35中读取所述有效数据并发送至所述ECU33。
具体地,ECU33进行ECC校验的速度,通常比控制单元31读取有效数据的速度快。因此,通过读缓存35可以先缓存控制单元31从源块预先读取一部分有效数据。然后再有ECU33进行ECC校验,可以减少ECU33等待读取数据的时间,从而加快数据移动的速度。
在一种可能的实现方式中,如图3c所示,所述移动模块还133可以包括:
写缓存37,用于缓存所述ECU33校验后的数据;
所述控制单元31还用于从所述写缓存37中读取所述ECU33校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
具体地,由于ECU33进行ECC校验的速度快,ECU33校验后的数据也可以先缓存到写缓存37,可以减少ECU33等待写入数据的时间,从而加快数据移动的速度。
其中,读缓存、写缓存可以采用缓冲器、FIFO、RAM等形式来实现。
在一种可能的实现方式中,所述ECU33具体可以用于若所述ECU33对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU33校验后的数据;若所述ECU33对所述有效数据校验的结果为错误,则所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU33校验后的数据。
具体地,由于数据写入SSD之后,随着时间的偏移,可能发生比特(英文:bit)跳变,且通常情况下,时间越长,跳变的bit数越多。因此,需要进行ECC校验。虽然ECU33对有效数据进行ECC校验的过程中,需要对有效数据进行解码,但是,由于移动模块133的控制单元31能够直接获取有效数据,因此,不需要将解码后的数据重新编码,而可以将校验后的数据直接写入目的块的空白页。其中,如果ECU33对有效数据的ECC校验结果为正确,控制单元31可以将有效数据直接作为校验后的数据写入目的块的空白页;如果ECU33对有效数据的ECC校验结果为有错,控制单元31可以将有效数据纠错后的数据作为校验后的数据写入目的块的空白页。
举例而言:若SSD中Block N的Page2的有效数据为“01010111”,但控制单元31读取到ECU33中进入ECC校验的数据为“01010111”,则经过ECC校验,可以得知该有效数据未发生跳变,校验结果为正确。但是,如果控制单元31读取到ECU33中进入ECC校验的数据为“01010110”,可以得知有1位(bit)发生跳变,需要进行ECC纠错,将“01010110”纠正为“01010111”。
本实施例中,在需要移动数据时,SSD的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。并且,由于移动模块可以直接将有效数据(或纠错后的有效数据)写入目的块的空白页,不需要进行重新编码,可以减少数据移动的流程,进一步提高SSD的数据移动效率以及降低数据移动过程对SSD性能的影响。
实施例3
图4为本发明实施例三的数据移动方法的流程图,该数据移动方法可以应用于上述实施例中的任意一种结构的固态硬盘。其中,参见图1,固态硬盘可以包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块。其中,固态硬盘中的存储介质可以采用与非门闪存(NAND Flash)等非易失性存储器实现。NAND Flash的具体结构可以参见上述固态硬盘实施例中的相关描述。
如图4所示,该数据移动方法可以包括:
步骤410、移动模块接收业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块。
步骤420、移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
具体地,参见图2,SSD的控制芯片可以划分为业务处理层21和闪存(Flash)相关的命令操作层23,其中,各个业务处理模块如GC模块211、巡检模块213、均衡模块215等属于业务处理层21,命令操作层23可以包括NAND flash的读模块231、NAND flash的写模块233和移动模块133等。其中,在业务处理模块仅需要进行读数据操作时,可以由读模块231控制;在业务处理模块仅需要进行写数据的操作时,可以由写模块233控制;而在业务处理模块需要移动数据的操作时,可以将需要移出数据的源块的地址和需要写入数据的目的块的地址封装生成移动命令,由移动模块133控制数据移动。
本实施例的数据移动方法中,在需要移动数据时,业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。
实施例4
图5为本发明实施例四的数据移动方法的流程图。图5中与图4标号相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
如图5所示,与图4所示的方法的区别在于,步骤420具体可以包括:
步骤510、所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的ECU;
步骤520、所述ECU对所述有效数据进行ECC校验;
步骤530、所述控制单元将所述ECU校验后的数据写入所述目的块的空白页中。
参见图3,所述移动模块还可以包括读缓存。这种情况下,如图6所示,步骤510具体可以包括:
步骤600、所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据。
步骤610、所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中。
步骤620、所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
具体地,ECU进行ECC校验的速度,通常比控制单元读取有效数据的速度快。因此,通过读缓存可以先缓存控制单元从源块预先读取一部分有效数据。然后再有ECU进行ECC校验,可以减少ECU等待读取数据的时间。
进一步地,如图6所示,步骤520具体可以包括:
步骤700、ECU对有效数据进行ECC校验,若所述ECU对所述有效数据校验的结果为正确,则执行步骤710;若所述ECU对所述有效数据校验的结果为错误,则则执行步骤720。
步骤710、ECU将所述有效数据确定为所述ECU校验后的数据;
步骤720、ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
具体地,由于数据写入SSD之后,随着时间的偏移,可能发生比特(英文:bit)跳变,且通常情况下,时间越长,跳变的bit数越多。因此,需要进行ECC校验。虽然ECU33对有效数据进行ECC校验的过程中,需要对有效数据进行解码,但是,由于移动模块的控制单元能够直接获取有效数据,因此,不需要将解码后的数据重新编码,而可以将校验后的数据直接写入目的块的空白页。其中,如果ECU对有效数据的ECC校验结果为正确,控制单元可以将有效数据直接作为校验后的数据写入目的块的空白页;如果ECU对有效数据的ECC校验结果为有错,控制单元可以将有效数据纠错后的数据作为校验后的数据写入目的块的空白页。ECU对有效数据进行ECC校验的示例可以参见上述SSD实施例中的相关描述。
进一步地,参见图3,所述移动模块还可以包括写缓存。这种情况下,如图6所示,步骤530具体可以包括:
步骤810、所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
步骤820、所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
具体地,由于相比ECC校验的速度,写入到SSD中目的块的空白页的速度较慢。可以将ECC校验完的有效数据,先缓存到写缓存中,等待写入目的块,以减少ECU等待写入数据的时间,从而加快数据移动的速度
本实施例的数据移动方法中,在需要移动数据时,SSD的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。并且,由于移动模块可以直接将有效数据(或纠错后的有效数据)写入目的块的空白页,不需要进行重新编码,可以减少数据移动的流程,进一步提高SSD的数据移动效率以及降低数据移动过程对SSD性能的影响。
实施例5
图7为本发明实施例五的固态硬盘的结构框图。所述固态硬盘可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述固态硬盘包括处理器(processor)910、通信接口(CommunicationsInterface)920、存储器(memory array)930和总线940。其中,处理器910、通信接口920、以及存储器930通过总线940完成相互间的通信。
通信接口920用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
处理器910用于执行程序。处理器910可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器930用于存放文件。存储器930可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器930也可以是存储器阵列。存储器930还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括:
所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
在一种可能的实施方式中,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括:
所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的ECU;
所述ECU对所述有效数据进行ECC校验;
所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
在一种可能的实施方式中,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述ECU,包括:
所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中;
所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
在一种可能的实施方式中,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括:
所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
在一种可能的实施方式中,所述ECU对所述有效数据进行ECC校验,包括:
若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据;
若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种固态硬盘,其特征在于,包括:存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括:
业务处理模块,用于向移动模块发送移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
移动模块,用于接收所述业务处理模块发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
2.根据权利要求1所述固态硬盘,其特征在于,所述移动模块包括:控制单元和错误检查纠正编解码单元ECU;
所述控制单元,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述ECU;
所述ECU,用于对所述有效数据进行错误检查纠正ECC校验;
所述控制单元,还用于将所述ECU校验后的数据写入所述目的块的空白页中。
3.根据权利要求2所述固态硬盘,其特征在于,所述移动模块还包括:
读缓存,用于缓存所述控制单元从所述源块中读取的有效数据;
所述控制单元,还用于从所述读缓存中读取所述有效数据并发送至所述ECU。
4.根据权利要求2或3所述固态硬盘,其特征在于,所述移动模块还包括:
写缓存,用于缓存所述ECU校验后的数据;
所述控制单元,还用于从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
5.根据权利要求2-4中任一项所述的固态硬盘,其特征在于:
所述ECU,具体用于若所述ECU对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU校验后的数据;若所述ECU对所述有效数据校验的结果为错误,则对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
6.一种数据移动方法,其特征在于,所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括:
所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
7.根据权利要求6所述的数据移动方法,其特征在于,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括:
所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的ECU;
所述ECU对所述有效数据进行ECC校验;
所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
8.根据权利要求7所述的数据移动方法,其特征在于,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述ECU,包括:
所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中;
所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
9.根据权利要求7或8所述的数据移动方法,其特征在于,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括:
所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
10.根据权利要求7-9中任一项所述的数据移动方法,其特征在于,所述ECU对所述有效数据进行ECC校验,包括:
若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据;
若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740030.1A CN103761988B (zh) | 2013-12-27 | 2013-12-27 | 固态硬盘及数据移动方法 |
EP14873236.5A EP3070715A4 (en) | 2013-12-27 | 2014-08-18 | Fixed body and data transfer method |
PCT/CN2014/084583 WO2015096494A1 (zh) | 2013-12-27 | 2014-08-18 | 固态硬盘及数据移动方法 |
US15/192,614 US10114578B2 (en) | 2013-12-27 | 2016-06-24 | Solid state disk and data moving method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310740030.1A CN103761988B (zh) | 2013-12-27 | 2013-12-27 | 固态硬盘及数据移动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103761988A true CN103761988A (zh) | 2014-04-30 |
CN103761988B CN103761988B (zh) | 2018-01-16 |
Family
ID=50529212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310740030.1A Active CN103761988B (zh) | 2013-12-27 | 2013-12-27 | 固态硬盘及数据移动方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10114578B2 (zh) |
EP (1) | EP3070715A4 (zh) |
CN (1) | CN103761988B (zh) |
WO (1) | WO2015096494A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015096494A1 (zh) * | 2013-12-27 | 2015-07-02 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN108829613A (zh) * | 2018-05-24 | 2018-11-16 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN109614048A (zh) * | 2018-12-10 | 2019-04-12 | 深圳市硅格半导体有限公司 | 基于闪存的数据读写方法、装置及计算机可读存储介质 |
TWI679535B (zh) * | 2017-09-22 | 2019-12-11 | 慧榮科技股份有限公司 | 快閃記憶體的資料內部搬移方法以及使用該方法的裝置 |
CN111512293A (zh) * | 2018-08-14 | 2020-08-07 | 深圳鲲云信息科技有限公司 | 一种基于dma的数据处理方法及相关产品 |
US10782910B2 (en) | 2017-09-22 | 2020-09-22 | Silicon Motion, Inc. | Methods for internal data movements of a flash memory device and apparatuses using the same |
CN112783424A (zh) * | 2019-04-09 | 2021-05-11 | 爱思开海力士有限公司 | 存储装置及其控制方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307180B2 (en) | 2008-02-28 | 2012-11-06 | Nokia Corporation | Extended utilization area for a memory device |
US8874824B2 (en) | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US9417998B2 (en) | 2012-01-26 | 2016-08-16 | Memory Technologies Llc | Apparatus and method to provide cache move with non-volatile mass memory system |
US9311226B2 (en) | 2012-04-20 | 2016-04-12 | Memory Technologies Llc | Managing operational state data of a memory module using host memory in association with state change |
US10387046B2 (en) * | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US11422726B1 (en) * | 2018-05-01 | 2022-08-23 | Amazon Technologies, Inc. | Efficient storage device data move operation based on priority of garbage collection command |
CN113742253B (zh) * | 2020-05-29 | 2023-09-01 | 超聚变数字技术有限公司 | 存储介质管理方法、装置、设备以及计算机可读存储介质 |
CN111881211B (zh) * | 2020-07-24 | 2022-06-10 | 北京浪潮数据技术有限公司 | 一种存储数据同步方法、系统、设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354906A (zh) * | 2008-08-11 | 2009-01-28 | 湖南源科创新科技股份有限公司 | 应用于固态硬盘的闪存控制器 |
CN101436152A (zh) * | 2008-12-02 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种数据备份的方法和装置 |
US20110252177A1 (en) * | 2010-04-13 | 2011-10-13 | Byungcheol Cho | Semiconductor storage device memory disk unit with programmable host interface |
US20130086315A1 (en) * | 2011-10-04 | 2013-04-04 | Moon J. Kim | Direct memory access without main memory in a semiconductor storage device-based system |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6915359B2 (en) * | 2000-11-22 | 2005-07-05 | Matsushita Electric Industrial Co., Ltd. | Data transfer device, data transfer method, data transfer program and computer readable storage medium thereof |
JP2002312232A (ja) * | 2001-04-10 | 2002-10-25 | Mitsubishi Electric Corp | 半導体記憶装置 |
US6683817B2 (en) * | 2002-02-21 | 2004-01-27 | Qualcomm, Incorporated | Direct memory swapping between NAND flash and SRAM with error correction coding |
JP4504138B2 (ja) * | 2004-09-03 | 2010-07-14 | 株式会社東芝 | 記憶システム及びそのデータコピー方法 |
US7409473B2 (en) * | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7958430B1 (en) * | 2005-06-20 | 2011-06-07 | Cypress Semiconductor Corporation | Flash memory device and method |
JPWO2008068937A1 (ja) * | 2006-12-01 | 2010-03-18 | 三菱電機株式会社 | データ転送制御装置およびコンピュータシステム |
US8595593B2 (en) | 2008-12-24 | 2013-11-26 | Hynix Semiconductor Inc. | Nonvolatile memory device having a copy back operation and method of operating the same |
US8595572B2 (en) * | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US8166233B2 (en) | 2009-07-24 | 2012-04-24 | Lsi Corporation | Garbage collection for solid state disks |
KR101678407B1 (ko) * | 2010-05-10 | 2016-11-23 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 프로그램 방법 |
TWI455144B (zh) * | 2010-07-22 | 2014-10-01 | Silicon Motion Inc | 使用於快閃記憶體的控制方法與控制器 |
KR101732030B1 (ko) * | 2010-12-22 | 2017-05-04 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US8612719B2 (en) * | 2011-07-21 | 2013-12-17 | Stec, Inc. | Methods for optimizing data movement in solid state devices |
CN102521138B (zh) * | 2011-11-28 | 2015-11-25 | 华为技术有限公司 | 数据迁移触发方法和装置 |
CN103761988B (zh) | 2013-12-27 | 2018-01-16 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
-
2013
- 2013-12-27 CN CN201310740030.1A patent/CN103761988B/zh active Active
-
2014
- 2014-08-18 EP EP14873236.5A patent/EP3070715A4/en not_active Ceased
- 2014-08-18 WO PCT/CN2014/084583 patent/WO2015096494A1/zh active Application Filing
-
2016
- 2016-06-24 US US15/192,614 patent/US10114578B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354906A (zh) * | 2008-08-11 | 2009-01-28 | 湖南源科创新科技股份有限公司 | 应用于固态硬盘的闪存控制器 |
CN101436152A (zh) * | 2008-12-02 | 2009-05-20 | 成都市华为赛门铁克科技有限公司 | 一种数据备份的方法和装置 |
US20110252177A1 (en) * | 2010-04-13 | 2011-10-13 | Byungcheol Cho | Semiconductor storage device memory disk unit with programmable host interface |
US20130086315A1 (en) * | 2011-10-04 | 2013-04-04 | Moon J. Kim | Direct memory access without main memory in a semiconductor storage device-based system |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015096494A1 (zh) * | 2013-12-27 | 2015-07-02 | 华为技术有限公司 | 固态硬盘及数据移动方法 |
US10114578B2 (en) | 2013-12-27 | 2018-10-30 | Huawei Technologies Co., Ltd. | Solid state disk and data moving method |
TWI679535B (zh) * | 2017-09-22 | 2019-12-11 | 慧榮科技股份有限公司 | 快閃記憶體的資料內部搬移方法以及使用該方法的裝置 |
US10782910B2 (en) | 2017-09-22 | 2020-09-22 | Silicon Motion, Inc. | Methods for internal data movements of a flash memory device and apparatuses using the same |
TWI726475B (zh) * | 2017-09-22 | 2021-05-01 | 慧榮科技股份有限公司 | 快閃記憶體的資料內部搬移方法以及使用該方法的裝置 |
CN107967125A (zh) * | 2017-12-20 | 2018-04-27 | 北京京存技术有限公司 | 闪存转换层的管理方法、装置及计算机可读存储介质 |
CN108829613A (zh) * | 2018-05-24 | 2018-11-16 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN108829613B (zh) * | 2018-05-24 | 2020-12-29 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN111512293A (zh) * | 2018-08-14 | 2020-08-07 | 深圳鲲云信息科技有限公司 | 一种基于dma的数据处理方法及相关产品 |
CN109614048A (zh) * | 2018-12-10 | 2019-04-12 | 深圳市硅格半导体有限公司 | 基于闪存的数据读写方法、装置及计算机可读存储介质 |
CN112783424A (zh) * | 2019-04-09 | 2021-05-11 | 爱思开海力士有限公司 | 存储装置及其控制方法 |
CN112783424B (zh) * | 2019-04-09 | 2024-01-16 | 爱思开海力士有限公司 | 存储装置及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015096494A1 (zh) | 2015-07-02 |
US10114578B2 (en) | 2018-10-30 |
US20160306588A1 (en) | 2016-10-20 |
CN103761988B (zh) | 2018-01-16 |
EP3070715A1 (en) | 2016-09-21 |
EP3070715A4 (en) | 2016-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761988A (zh) | 固态硬盘及数据移动方法 | |
US9910786B2 (en) | Efficient redundant array of independent disks (RAID) write hole solutions | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US10423508B2 (en) | Method and system for a high-priority read based on an in-place suspend/resume write | |
US9141537B2 (en) | Magnetic random access memory journal | |
KR101623119B1 (ko) | 솔리드 스테이트 드라이브의 에러 제어 방법 | |
CN105786411B (zh) | 非易失性存储器装置的操作方法 | |
US9921914B2 (en) | Redundant array of independent disks (RAID) write hole solutions | |
US20140351526A1 (en) | Data storage controller with multiple pipelines | |
US20120144152A1 (en) | Transaction log recovery | |
EP3196767B1 (en) | Method for writing data into flash memory device, flash memory device and storage system | |
US10754785B2 (en) | Checkpointing for DRAM-less SSD | |
US10318165B2 (en) | Data operating method, device, and system | |
US11442634B2 (en) | Replay protected memory block command queue | |
CN105373338A (zh) | 一种flash的控制方法和控制器 | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
KR20210041158A (ko) | 기입 오류가 발생한 데이터를 복구하는 메모리 시스템 및 호스트의 동작 방법 | |
US20240086113A1 (en) | Synchronous write method and device, storage system and electronic device | |
CN103092771A (zh) | 固态储存装置及其高速缓存的控制方法 | |
CN103645995A (zh) | 写数据的方法及装置 | |
CN114968849B (zh) | 提高编程缓存利用率的方法及其设备 | |
US9009389B2 (en) | Memory management table processing method, memory controller, and memory storage apparatus | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
US11797183B1 (en) | Host assisted application grouping for efficient utilization of device resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |