CN110895513A - 一种***垃圾回收方法和固态硬盘中的垃圾回收方法 - Google Patents
一种***垃圾回收方法和固态硬盘中的垃圾回收方法 Download PDFInfo
- Publication number
- CN110895513A CN110895513A CN201811233512.7A CN201811233512A CN110895513A CN 110895513 A CN110895513 A CN 110895513A CN 201811233512 A CN201811233512 A CN 201811233512A CN 110895513 A CN110895513 A CN 110895513A
- Authority
- CN
- China
- Prior art keywords
- data
- logic
- solid state
- address
- state disk
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 252
- 239000010813 municipal solid waste Substances 0.000 title claims abstract description 70
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004064 recycling Methods 0.000 title claims abstract description 19
- 238000013507 mapping Methods 0.000 claims description 46
- 238000011084 recovery Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 230000003321 amplification Effects 0.000 abstract description 11
- 238000003199 nucleic acid amplification method Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000013519 translation Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种***垃圾回收方法和固态硬盘中的垃圾回收方法。***控制器确定待回收的第一逻辑块组,所述第一逻辑块组包括第一数据逻辑块,所述第一数据逻辑块位于所述多个固态硬盘的第一固态硬盘中,所述第一逻辑块组中的第一逻辑地址存储有有效数据,所述第一逻辑地址与所述有效数据保存在所述多个固态硬盘中的实际地址具有对应关系。所述***控制器创建第二逻辑块组,所述第二逻辑块组中至少有一个第二数据逻辑块分布在存储有效数据的第一数据逻辑块所在的固态硬盘,从而保证所述有效数据从第一逻辑块组迁移至第二逻辑块组,但其实际地址保持不变,以减少写放大。
Description
技术领域
本申请涉及存储领域,并且更具体地,涉及一种***垃圾回收方法和固态硬盘垃圾回收方法。
背景技术
闪存阵列是指包含固态硬盘和***控制器的存储***。其中,***控制器以逻辑块组(chunk group,CKG)为单位为固态硬盘分配逻辑地址,当***中可用空间不足时***控制器会进行***垃圾回收。在***垃圾回收操作中,***控制器指令固态硬盘将逻辑块组中所有的有效数据搬移到新的逻辑块组,这就导致有效数据在固态硬盘内部发生搬移。因此增加了写放大的次数。
发明内容
本申请提出了一种***垃圾回收方法和固态硬盘中的垃圾回收方法,可以减少写放大的次数。
第一方面提供了一种***垃圾回收方法,该方法应用于闪存阵列中,所述闪存阵列包括***控制器和多个固态硬盘。***控制器确定待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据位于所述第一逻辑块中的地址为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系。所述***控制器创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,所述第二逻辑块组包括第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中。所述***控制器在所述至少一个所述第二数据逻辑块中为所述有效数据分配第二逻辑地址,然后,指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。
在第一方面提供的***垃圾回收方法中,待回收的第一逻辑块组包括多个第一数据逻辑块,至少有一个第一数据逻辑块存储的数据是有效数据,由于创建的第二逻辑块组至少有一个数据逻辑块分布在存储有效数据的第一数据逻辑块所在的固态硬盘中,因此所述有效数据并不需要实际移动,只需要指示保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系就可以将待回收的第一逻辑块组中的至少一个数据逻辑块中的有效数据迁移至所述创建的第二逻辑块组中。由于所述有效数据并没有实际移动,所以能够减小写放大。
在所述第一逻辑块组所包含的多个数据逻辑块中,可能只有部分数据逻辑块(甚至只有一个数据逻辑块)存储有效数据,那么在创建第二逻辑块组时,只需要保证所述第二逻辑块组中有部分数据逻辑块或者一个数据逻辑块分布在所述第一数据逻辑块组中存储有有效数据的数据逻辑块所在的固态硬盘,就可以实现将第一逻辑块组中的有效数据迁移至第二逻辑块组而并没有真实地移动所述有效数据。另外,可以理解的是,即使所述第一逻辑块组中有部分或者全部数据逻辑块存储有有效数据,只要保证创建的第二逻辑块组中至少有一个数据逻辑块分布在所述第一数据逻辑块组中存储有有效数据的数据逻辑块所在的固态硬盘中,也可以在一定程度上减小写放大。
可选的,在另一种实现中,第二逻辑块组所包含的每个数据逻辑块都分布在第一逻辑块组所包含的其中一个数据逻辑块所在的固态硬盘中。这样,可以最大程度地减小写放大。
在第一方面的第一种实现中,所述存储有效数据的第一数据逻辑块的数量和所述至少一个所述第二数据逻辑块的数量相同。例如,如果所述第一逻辑块组中有一个第一数据逻辑块存储有有效数据,那么第二逻辑块组中也有一个第二数据逻辑块分布在所述存储所述有效数据的第一数据逻辑块所在的固态硬盘中。如果所述第一逻辑块组中有两个第一数据逻辑块存储有有效数据,那么第二逻辑块组中也有两个第二数据逻辑块分别分布在两个存储所述有效数据的第一数据逻辑块所在的固态硬盘中。如果所述第一逻辑块组中每个第一数据逻辑块都存储有有效数据,那么第二逻辑块组中的所有第二数据逻辑块也要分布在所有第一数据逻辑块所在的固态硬盘中。
结合第一方面的第一种实现,在第一方面的第二种实现中,所述创建第二逻辑块组具体可以是根据多个第一数据逻辑块在多个固态硬盘中的分布情况创建所述第二逻辑块组,所述创建的第二逻辑块组中的所有第二数据逻辑块分布在所有第一数据逻辑块所在的固态硬盘中。按照这种方式创建的第二逻辑块组,可以最大程度地减小写放大。
结合以上任意一种实现,在第一方面的第三种实现中,所述第一逻辑块组还包括第一校验逻辑块,所述第一校验逻辑块分布在与所述多个第一数据逻辑块不同的固态硬盘中,所述第二逻辑块组还包括第二校验逻辑块,所述第二校验逻辑块分布在与所述多个第二数据逻辑块不同的固态硬盘中。第一校验逻辑块的数量和第二校验逻辑块的数量相同,都是根据RAID类型来确定的。所述第二校验逻辑块所在的固态硬盘可以和所述第一校验逻辑块所在的固态硬盘相同,也可以不同。通常情况下,有效数据从第一逻辑块组迁移至第二逻辑块组之后都需要重新计算并存储校验数据,因此本申请并不限定第二校验逻辑块的分布。
结合以上任意一种实现,在第一方面的第四种实现中,所述待回收的第一逻辑块组可以根据一定条件来选择,例如,当闪存阵列中的某一个逻辑块组所包含的有效数据的数据量低于设定阈值时,可以将其作为待回收的第一逻辑块组。或者,当闪存阵列中的某一个逻辑块组所包含的无效数据的数据量高于所述设定阈值时,可以将其作为待回收的第一逻辑块组。或者,选择闪存阵列中无效数据最多或者有效数据最少的逻辑块组作为待回收的第一逻辑块组。这样可以提高***垃圾回收的效率。
第二方面提供了一种固态硬盘中垃圾回收方法,该方法应用于固态硬盘中,所述固态硬盘与***控制器连接。所述固态硬盘从待回收的第一物理块中读取有效数据以及所述有效数据的反向映射信息,向所述***控制器发送所述有效数据的反向映射信息,从而获得所述反向映射信息对应的源逻辑地址。然后,所述固态硬盘为所述有效数据分配目标逻辑地址,并且将有效数据复制到第二物理块。再删除所述源逻辑地址与所述有效数据保存在第一物理块中的实际地址之间的对应关系,创建所述目标逻辑地址与所述有效数据信息保存在第二物理块中的实际地址之间的对应关系。最后,所述固态硬盘擦除所述第一物理块中的数据。
第二方面中的反向映射信息可以是所述有效数据的虚拟地址,也可以是所述有效数据的指纹,还可以是所述有效数据在文件内的偏移地址,只要是能够通过正向索引找到所述有效数据的实际地址的信息都在本申请的保护范围以内。
数据的反向映射信息通常是和数据一起作为一个整体写入固态硬盘的,这是为了在执行固态硬盘内部的垃圾回收时方便查找该数据的逻辑地址以修改闪存翻译层中的逻辑地址与实际地址的对应关系。按照传统的方式,反向映射信息是指数据的逻辑地址。然而,在本申请中,为了保持有效数据的实际地址不变化,也需要同时保证该有效数据的反向映射信息的实际地址不变化,而当有效数据从第一逻辑块组迁移至第二逻辑块组时,其逻辑地址是会发生变化的,所以在本申请中,所述有效数据的反向映射信息不能是该数据的逻辑地址,可以是该数据的虚拟地址,或者该数据的指纹等信息。
由此,按照本申请第二方面的实现,可以根据有效数据的反向映射信息向***控制器查询该有效数据的逻辑地址,从而完成固态硬盘内部的垃圾回收。
本申请第三方面提供了一种***控制器,该***控制器包括接口和处理器。其中,接口用于和多个固态硬盘连接,处理器用于执行第一方面任意一种方法。
本申请第四方面提供了一种***垃圾回收装置,该装置位于闪存阵列的***控制器中,用于执行第一方面任意一种方法。
本申请第五方面提供了一种固态硬盘,该固态硬盘包括闪存控制器、第一物理块和第二物理块。所述闪存控制器用于执行第二方面的方法。
本申请第六方面提供了一种固态硬盘中的垃圾回收装置,用于执行第二方面的方法。
本申请第七方面提供了一种闪存阵列,该闪存阵列包括***控制器和固态硬盘,其中,所述***控制器用于执行第一方面任意一种方法,固态硬盘用于执行第二方面的方法。
本申请第八方面提供了一种***垃圾回收的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行第一方面所描述的方法。
本申请第九方面提供了一种固态硬盘中的垃圾回收的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令用于执行第二方面所描述的方法。
附图说明
图1是本发明实施例提供的应用场景图;
图2是本发明实施例提供的控制器的结构图;
图3是本发明实施例提供的逻辑块组的示意图;
图4是本发明实施例提供的写数据的流程示意图;
图5是本发明实施例提供的***垃圾回收方法的流程示意图;
图6是本发明实施例提供的***垃圾回收方法的示意图;
图7是本发明实施例提供的固态硬盘中的垃圾回收方法的流程示意图;
图8是本发明实施例提供的***垃圾回收装置的结构示意图;
图9是本发明实施例提供的固态硬盘中的垃圾回收装置的结构示意图。
具体实施方式
本发明实施例提出了一种***垃圾回收的方法以及存储***,可以减小写放大,从而提升固态硬盘的使用寿命。
图1描绘了本发明实施例提供的闪存阵列的组成图,图1所示的闪存阵列包括至少一个控制器(如图1所示的控制器11)和多个固态硬盘22(如图1中的固态硬盘22A、固态硬盘22B、固态硬盘22C、固态硬盘22G)。控制器11通过存储区域网络(英文:storage areanetwork,SAN)与主机(图中未示出)连接。控制器11可以是一种计算设备,如服务器、台式计算机等等。在控制器11上安装有操作***以及应用程序。控制器11可以接收来自主机的输入输出(I/O)请求。控制器11还可以存储I/O请求中携带的数据(如果有的话),并且将该数据写入固态硬盘22中。固态硬盘(英文:Solid State Disk,SSD)是以闪存(英文:flashmemory)芯片为介质的存储器,又名固态驱动器(Solid State Drive,SSD)。
图1仅是示例性说明,在实际应用中存储***可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器11类似,并且本实施例并不限定控制器之间,以及任意一个控制器与固态硬盘22之间的连接方式。只要各个控制器之间,以及各个控制器和固态硬盘22之间能够相互通信。另外,在本实施例中,控制器11在向固态硬盘发指令时往往是向多个固态硬盘发送,为了方便描述,将包含多个固态硬盘22的集合称为固态硬盘组。
图2是控制器11的结构示例图,如图2所示,控制器11包括接口卡110、处理器112和接口卡113。
接口卡110用于和主机通信,控制器11可以通过接口卡110接收主机的操作指令。处理器112可能是一个中央处理器(英文:central processing unit,CPU)。在本发明实施例中,处理器112可以用于接收来自主机的I/O请求、处理所述I/O请求。所述I/O请求可以是写数据请求或者读数据请求,处理器112还可以将写数据请求中的数据发送给固态硬盘22。此外,处理器112还可以用于执行***垃圾回收操作。接口卡113,用于和固态硬盘22通信,控制器11可以通过接口卡113将写数据请求(包括数据、所述数据的逻辑地址以及所述数据的虚拟地址)发送给固态硬盘22存储。
可选地,控制器11还可以包括存储器111。存储器111用于临时存储从主机接收的数据或从固态硬盘22读取的数据。控制器11接收主机发送的多个写数据请求时,可以将所述多个写数据请求中的数据暂时保存在存储器111中。当存储器111的容量达到一定阈值时,将存储器111存储的数据、所述数据的虚拟地址以及为所述数据分配的逻辑地址发送给固态硬盘22。固态硬盘22存储所述数据。存储器111包括易失性存储器,闪存芯片或其组合。易失性存储器例如为随机访问存储器(英文:random-access memory,RAM)。闪存芯片例如软盘、硬盘、固态硬盘(solid state disk,SSD)、光盘等各种可以存储程序代码的机器可读介质。存储器111具有保电功能,保电功能是指***发生掉电又重新上电时,存储器111中存储的数据也不会丢失。
当数据写入闪存阵列之后,控制器11需要记录该数据的有效性。数据的有效性是以所述数据是否被修改来确定的。如果所述数据是第一次写入,可以将所述数据记录为有效(称为有效数据)。如果所述数据被修改,则将所述修改前的数据记录为无效(称为无效数据)。具体的,可以用位图记录数据的有效性。例如,位图的每个“位”对应大小为1KB的数据的逻辑地址,当“位”为1时,代表所述逻辑地址中存储的数据有效,当“位”为0时,代表所述逻辑地址中存储的数据无效。所述位图可以保存在存储器111中,也可以保存在固态硬盘中。
需要说明的是,控制器11属于***控制器,***控制器是独立的设备,不同于固态硬盘中的控制芯片。本实施例将固态硬盘的控制芯片称为闪存控制器。
固态硬盘22包括闪存控制器和多个闪存芯片。其中,闪存控制器用于执行控制器11发送的写数据请求或者读数据请求等操作。所述闪存控制器可以是位于固态硬盘22内部的处理器,也可以是位于固态硬盘22外部的现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)。
闪存控制器中包含闪存翻译层(英文:flash translation layer,FTL)。闪存翻译层用于保存有数据的逻辑地址与实际地址之间的对应关系。因此,闪存翻译层用于将***控制器发送的写数据请求或者读数据请求中的逻辑地址转化为固态硬盘中数据的实际地址。数据的逻辑地址是由***控制器分配的,固态硬盘提供给***控制器的逻辑地址区间的子集。数据的逻辑地址包括起始逻辑地址和长度,起始逻辑地址指示所述数据位于的逻辑块组的位置,长度代表所述数据的大小。数据的实际地址可以是固态硬盘中该数据的物理地址,也可以是在所述物理地址的基础上经过虚拟化,只对闪存控制器可见的地址。该经过虚拟化的实际地址对***控制器不可见。通常情况下,物理地址包括数据所位于的物理块的编号以及页的编号。
固态硬盘通常包括一个或多个闪存芯片。每个闪存芯片包括若干个物理块(可以简称“块”)。固态硬盘在读取或写入时是以一个页(英文:page)为基础的,但擦除操作只能以一个物理块为基础,擦除操作是指将这个块的所有位都设置为“1”。在擦除之前,闪存控制器需要先将这个物理块中的有效数据复制到另一个块的空白页中去。
每个物理块包含多个页(英文:page)。固态硬盘在执行写数据请求时,是以页为单位来写数据的。举例来说,控制器11向闪存控制器发送一个写数据请求。所述写数据请求包括数据的逻辑地址。闪存控制器在接收所述写数据请求之后,按照接收的时间顺序将所述数据连续写入一个或多个物理块中。连续写入一个或多个物理块是指,闪存控制器查找一个空白的物理块,将数据写入所述空白的物理块,直至将所述空白的物理块填满,当所述数据的大小超过物理块的容量时,闪存控制器再查找下一个空白的物理块,继续写入。闪存翻译层建立并保存所述逻辑地址与写入所述数据的页的实际地址之间的对应关系。当控制器11向闪存控制器发送读数据请求,要求读取所述数据时,所述读数据请求中包括所述逻辑地址。闪存控制器根据所述逻辑地址、以及所述逻辑地址与实际地址之间的对应关系读取所述数据,并将该数据发送给控制器11。
在闪存阵列中,单个固态硬盘都有可能发生故障,从而导致数据丢失。本实施例采用廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks,RAID)技术保障数据的可能性。下面介绍一下在对固态硬盘中的数据进行冗余保护的机制。
首先,控制器11以逻辑块(英文:chunk,简称:CK)的形式对固态硬盘进行空间管理。逻辑块是一个空间概念,其大小以4MB为例,但不限定为4MB。来自不同固态硬盘的逻辑块可以构成一个逻辑块集合,控制器11再根据设定的RAID类型将这个逻辑块集合中的逻辑块划分为数据逻辑块组和校验逻辑块组。数据逻辑块组中包括至少两个逻辑块,用于存储数据,校验逻辑块组中包括至少一个校验逻辑块,用于存储所述数据的校验数据。本实施例中,将包含数据逻辑块组和校验逻辑块组的逻辑块集合称为逻辑块组。当控制器11在存储器111中凑满一定大小的数据时,可以根据所述设定的RAID类型切分为多个数据单元,并计算获得校验单元,将所述数据单元以及校验单元发送给固态硬盘,以保存在所述逻辑块组中。数据组中的每个逻辑块用于存储数据单元,校验组中的每个逻辑块用于存储校验单元。存储之后,这些数据单元和对应的校验单元就构成一个分条。逻辑块组包括多个分条。
分条所包含的数据单元和校验单元都可以称作分条单元。本实施例中,以分条单元的大小为8KB为例,但不限定为8KB。如图3所示,假设从5个固态硬盘中各取出一个逻辑块构成逻辑块集合,然后控制器11根据RAID类型(以RAID6为例)对该逻辑块集合中的逻辑块进行分组,例如逻辑块1、逻辑块2和逻辑块3为数据逻辑块组,逻辑块4和逻辑块5为校验逻辑块组。当存储器111中存储的数据达到24KB(8KB*3)时,将所述数据划分为3个数据单元,每个数据单元为8KB,然后计算获得2个校验单元,每个校验单元也为8KB。控制器11将这些数据单元和校验单元发送给固态硬盘,存储在所述逻辑块组中(如图3中阴影部分所示)。可以理解的是,按照RAID6的冗余保护机制,任意两个数据单元或者校验单元失效时,可以根据剩下的数据单元或者校验单元重构出失效的单元。
下面结合图4描述本发明实施例提供的写数据方法,该方法可以应用在图1所示的闪存阵列中,并可以由图2所示的控制器11中的处理器112执行或固态硬盘22执行。如图4所示,该方法包含如下步骤:
401:控制器11接收主机发送的写数据请求,所述写数据请求包括待写入数据和所述待写入数据的虚拟地址。控制器11将其存储空间以逻辑单元(Logical Unit,LU)的形式提供给主机,主机与一个或多个逻辑单元之间具有绑定关系。当用户通过主机向控制器11发送待写入数据时,通常需要指定存储该数据的虚拟地址。具体的,所述虚拟地址是逻辑单元的标识以及所述数据位于所述逻辑单元的偏移地址。
402:控制器11将所述待写入数据写入存储器111中。
403:当存储器111中的数据凑满一个分条大小时,控制器11确定目标分条用于接收这些数据。分条是图3所示的逻辑块组的子集,所述目标分条的逻辑地址是它所在的逻辑块组的逻辑地址的子集。这里所指的分条大小实际上是指分条中所有数据单元的大小。然后,控制器11计算这些数据的校验数据。所述数据和所述校验数据共同组成了一个分条。
404:控制器11为所述目标分条分配逻辑地址。应理解,这里的逻辑地址不同于401中的虚拟地址,所述虚拟地址是对控制器11和主机可见,但对固态硬盘22不可见的地址,而404中的逻辑地址是对控制器11和固态硬盘22可见,但对主机不可见的地址。
控制器11需判断是否存在一个已经分配的逻辑块组,如果存在已分配的逻辑块组并且该逻辑块组仍然有足够的空间容纳该数据,那么控制器11可以指令所述多个固态硬盘将该数据写入已经分配的逻辑块组中。具体的,控制器11从所述已经分配的逻辑块组的逻辑地址区间中获取一段未使用的逻辑地址,在405中将所述逻辑地址携带在所述写数据请求中发送给固态硬盘22。控制器11确定***中并不存在已经分配的逻辑块组,或者已分配的逻辑块组均已写满数据,那么控制器11就需要创建一个新的逻辑块组。其创建过程可以是,控制器11根据自己对每个固态硬盘所拥有的可用空间的记录,确定***剩余空间足以创建一个新的逻辑块组。接下来,控制器11分别从不同的固态硬盘22中获取一个逻辑块,将根据设定的RAID类型将这些逻辑块构建成一个新的逻辑块组(可参考图3关于逻辑块组的描述)。然后,控制器11为每个逻辑块分配一段逻辑地址,这些逻辑地址集合就是所述新的逻辑块组的逻辑地址。在所述新的逻辑块组的逻辑地址中,控制器11可获取其中一段作为所述目标分条的逻辑地址。
405:控制器11分别向多个固态硬盘22发送写数据指令。由于所述目标分条中的数据应分布在多个固态硬盘中,因此,需要向所述多个固态硬盘中的每个固态硬盘22发送写数据指令。接收所述写数据指令的固态硬盘22的数量视RAID类型而定,以RAID类型为3+2(3个数据单元和2个校验单元)为例,那么所述目标分条中的数据将分布在5个固态硬盘中,因此,控制器11需要生成5个写数据指令,每个写数据指令发送给所述5个固态硬盘的其中一个硬盘。其中每个写数据指令携带所述部分数据或者部分校验数据,以及所述部分数据或部分校验数据的逻辑地址,以及所述部分数据或部分校验数据的虚拟地址。应理解,每个写数据指令中的逻辑地址均是控制器11为所述目标分条分配的逻辑地址的子集,每个写数据指令中的虚拟地址来自主机发送的写数据请求。
406:对于每个接收到所述写数据指令的固态硬盘22来说,所述固态硬盘22将所述写数据指令中的数据和该数据的虚拟地址写入一个物理块中。可选的,所述写数据指令可以是一个定制命令以保证所述数据和所述虚拟地址被写入同一个物理块中。所述数据位于所述块的地址称为实际地址(包括所述数据所位于的物理块的编号以及页的编号),在写入之后,固态硬盘22在闪存翻译层中保存所述数据的逻辑地址与所述实际地址之间的对应关系。
所述和数据一同写入物理块中的虚拟地址也被称为反向映射信息,它可以使得固态硬盘22在执行盘内垃圾回收时可以根据该数据的虚拟地址获取该数据的逻辑地址,并且从闪存翻译层中找到该数据的逻辑地址,将其修改为新的逻辑地址。
407:在固态硬盘22将所述数据成功写入块之后,控制器11创建所述数据的虚拟地址与所述逻辑地址之间的对应关系。后续,如果主机发送读数据请求,要求读取所述虚拟地址中的数据,控制器11可以根据所述虚拟地址与所述逻辑地址之间的对应关系,从固态硬盘22中读取所述数据。
在现有技术中,和数据一起写入物理块的反向映射信息是所述数据的逻辑地址。由于数据的逻辑地址描述的是该数据位于逻辑块组中的位置,因此当数据从一个逻辑块组迁移至另一个逻辑块组时,其逻辑地址会发生变化。那么,这也意味着,包含数据和数据的逻辑地址的数据信息会发生变化。在本实施例中,为了在***垃圾回收的过程中只改变数据信息所归属的逻辑块组,而并不实际移动数据,***控制器在写数据时将数据和该数据的虚拟地址,而不是逻辑地址,一起写入物理块中。这是因为在此过程中数据的虚拟地址并不会发生改变。
在图4所示的实施方式中,所述反向映射信息是指数据的虚拟地址,因为当数据在逻辑块组之间迁移时,该数据的虚拟地址并不会发生变化。可选的,在另一种实施方式中,所述反向映射信息是指数据的指纹,所谓指纹是指对数据进行哈希运算获得的结果。或者,所述反向映射信息是数据在文件内的偏移地址。可选的,在关键字-数值(key-value,KV)接口的闪存阵列中,主机给控制器11发送的写数据请求中包含待写入数据的关键字,而不是虚拟地址,所述关键字是通过所述虚拟地址计算获得的。在这种情况下,所述反向映射信息是指所述待写入数据的关键字,相应的,在407中控制器11创建的是所述数据信息的关键字与所述逻辑地址的对应关系。可选的,在日志(log)接口的闪存阵列中,主机给控制器11发送的写数据请求中包含待写入数据的日志地址,而不是虚拟地址,此时,所述反向映射信息是指所述待写入数据的日志地址,相应的,在407中控制器11创建的是所述数据信息的日志地址与所述逻辑地址的对应关系。总体而言,本发明实施例中的反向映射信息是指任何可以通过正向索引找到数据的实际地址的信息,并不局限于以上列举的各种情况,当数据在逻辑块组之间迁移时,该信息并不会发生变化。在后面的描述中,本实施例仍然以虚拟地址作为示例。如果所述反向映射信息是指其他通过正向索引找到所述数据的实际地址的信息,其操作方式类似。
为了保证闪存阵列中始终有足够的可用空间用于创建逻辑块组,控制器11可以实时地或者定期地对每个固态硬盘22的可用空间进行监控,从而获知整个***的可用空间。当***的可用空间低于设定的空间阈值时,启动***垃圾回收。例如,一个固态硬盘22的容量是128G,图1所示的闪存阵列所包含的所有固态硬盘(假设该闪存阵列包含10个固态硬盘)的总容量是1280G,所述空间阈值可以设置为640G。也就是说,当该闪存阵列存储的数据达到所述总容量的一半时,剩余的可用空间也达到了所述空间阈值,此时控制器11可以执行***垃圾回收。可以理解的是,640G只是空间阈值的一个示例,所述空间阈值也可以设置为其他数值。另外,当***的已使用空间达到设定的空间阈值时,也可以触发***垃圾回收。***垃圾回收有别于固态硬盘内部的垃圾回收。固态硬盘内部的垃圾回收是由固态硬盘自己完成的。
通常情况下,控制器11以逻辑块组为单位执行***垃圾回收。举例来说,控制器11根据位图获取一个逻辑块组中有效数据的逻辑地址,将所述有效数据的逻辑地址发送给固态硬盘组,使得各个固态硬盘22可以根据所述有效数据的逻辑地址读取数据并发送给控制器11。控制器11为所述有效数据分配新的逻辑地址,该新的逻辑地址属于新的逻辑块组,并将该分配的新的逻辑地址发送给固态硬盘组,各个固态硬盘22将所述有效数据写入新的物理块之后,再保存实际地址与所述新的逻辑地址之间的映射关系。然后,控制器11再给固态硬盘组发送去映射(英文:unmap)命令或者trim命令,所述去映射命令包括所述待回收的逻辑块组的逻辑地址区间,各个固态硬盘22接收所述去映射命令之后,删除闪存翻译层中保存的所述逻辑地址区间的逻辑地址与实际地址之间的对应关系。固态硬盘22还可以将所述搬移前的有效数据的实际地址对应的块标记为不包含有效数据的块或者直接将不包含有效数据的块擦除掉。随后,控制器11可以释放所述待回收的逻辑块组的逻辑地址区间以及所述逻辑块组占用的实际物理空间(也可以理解为实际地址)。
可见,***垃圾回收会导致数据在物理块之间进行搬移,从而增加写放大。本发明实施例提供一种***垃圾回收方法,可以在***垃圾回收的过程中完成有效数据在逻辑块组之间的迁移,却不实际移动数据,从而减小写放大。
下面结合图5和图6描述本发明实施例提供的***垃圾回收方法,该方法可以应用在图1所示的闪存阵列中,并可以由图2所示的控制器11中的处理器112执行。其中,图5是本实施例提供的***垃圾回收方法的流程示意图,图6是在两个逻辑块组之间实现数据迁移的示意图。如图5所示,该方法包含如下步骤:
501:当存储***中的空闲空间不足时,控制器11从多个逻辑块组中选择至少一个逻辑块组作为垃圾回收的对象。所述选择出的逻辑块组需要满足一定条件,例如该逻辑块组包含的无效数据到达第一设定阈值,或者该逻辑块组是所述多个逻辑块组中包含无效数据最多的逻辑块组,或者该逻辑块组包含的有效数据低于第二设定阈值,或者该逻辑块组是所述多个逻辑块组中包含有效数据最少的逻辑块组。无效数据或者有效数据的数据量可以根据前面描述的位图来统计。该为了方便描述,本实施例将所述选择出的进行垃圾回收的逻辑块组称为第一逻辑块组。
根据图3和图6对逻辑块组的描述可知,第一逻辑块组包括第一数据逻辑块组和第一校验逻辑块组,第一数据逻辑块组包括至少两个数据逻辑块,用于存储数据。第一校验逻辑块组包括至少一个逻辑块,用于存储校验数据。所述第一数据逻辑块组包含的每个数据逻辑块以第一校验逻辑块组包含的校验逻辑块均来自不同的固态硬盘。
所述第一逻辑块组中包含有效数据以及无效数据,通常情况下,在***垃圾回收的过程中,需要将第一逻辑块组中的有效数据迁移至新的逻辑块组,再释放所述第一逻辑块组。在本实施例中,所述第一逻辑块组中的有效数据所位于所述第一逻辑块组中的位置为第一逻辑地址。所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址之间具有对应关系。
502:控制器11根据所述第一数据逻辑块组在所述多个固态硬盘中的分布情况,创建第二逻辑块组。第二逻辑块组是接收第一逻辑块组中的有效数据的逻辑块组。所述创建的第二逻辑块组的RAID类型和第一逻辑块组的RAID类型相同,因此,第二逻辑块组包括第二数据逻辑块组和第二校验逻辑块组,其中,第二数据逻辑块组所包含的数据逻辑块的数量与第一数据逻辑块组所包含的数据逻辑块的数量相同,第二校验逻辑块组所包含的校验逻辑块的数量与第一校验逻辑块组所包含的校验逻辑块的数量相同。并且,第二数据逻辑块组在所述多个固态硬盘中的分布情况与第一数据逻辑块组在所述多个固态硬盘中的分布情况相同。例如,第一数据逻辑块组所包含的逻辑块1、逻辑块2和逻辑块3分别位于固态硬盘22A、固态硬盘22B和固态硬盘22C中。根据逻辑块1、逻辑块2和逻辑块3在这些固态硬盘中的分布,控制器11从固态硬盘22A、固态硬盘22B和固态硬盘22C中分别获取一个数据逻辑块,创建第二逻辑块组。也就是说,所述第二逻辑块组中的逻辑块1’、逻辑块2’和逻辑块3’也分别位于固态硬盘22A、固态硬盘22B和固态硬盘22C中。如图6所示,第一逻辑块组所包含的逻辑块1分布在固态硬盘22A中,为了创建第二逻辑块组,控制器11从固态硬盘22A中获取逻辑块1’。同理,对于第一逻辑块组包含的数据逻辑块2和数据逻辑块3,控制器11也根据他们在固态硬盘中的分布从相应的固态硬盘中获取数据逻辑块2’和数据逻辑块3’。
然而,本实施例并不要求控制器11根据第一校验块组在所述多个固态硬盘中的分布情况创建第二校验逻辑块组。事实上,控制器11可以在所述多个固态硬盘中自由选择提供校验逻辑块的固态硬盘,只要不和提供数据逻辑块的固态硬盘重复即可。这是因为,通常情况下,第二校验逻辑块中存储的校验数据需要重新计算获得,而非直接从第一校验逻辑块中迁移获得。
在502中,第二逻辑块组所包含的每个数据逻辑块都分布在第一逻辑块组所包含的其中一个数据逻辑块所在的固态硬盘中。然而,在另一种实施方式中,只要保证所述第二逻辑块组中至少有一个数据逻辑块分布在第一逻辑块组中的存储有有效数据的数据逻辑块所在的固态硬盘中即可,也可以在一定程度上减小写放大。并且,可以理解的是,第一数据逻辑块组所包含的数据逻辑块存储的数据可能是有效数据,也可能是无效数据。也就是说,在所述多个数据逻辑块中,可能只有部分数据逻辑块(甚至只有一个数据逻辑块)存储有效数据。那么在创建第二逻辑块组时,只需要保证所述第二逻辑块组中有部分数据逻辑块或者一个数据逻辑块分布在所述第一数据逻辑块组中存储有有效数据的数据逻辑块所在的固态硬盘,就可以执行第一逻辑块组的垃圾回收了。
503:控制器11为所述第一逻辑块组中的有效数据分配第二逻辑地址。例如,有效数据可以参考图6所示的逻辑块1中的阴影小方块,需要说明的是,图6所示的阴影小方块只是所述第一逻辑块组中有效数据的一部分,所述有效数据可能还分布在数据逻辑块2和数据逻辑块3中。所述分配的第二逻辑地址是所述第二逻辑块组的逻辑地址的子集。502中创建的第二逻辑块组可以不仅仅用于存储一个逻辑块组中的有效数据,还可以用于存储多个逻辑块组中的有效数据。
504:控制器11将存储器111中保存的所述有效数据的第一逻辑地址修改为第二逻辑地址。在传统的***垃圾回收中,控制器11需要将有效数据从第一逻辑块组读出,并重新写入第二逻辑块组。这意味着,所述有效数据将在固态硬盘的物理块之间发生移动,相应地,所述有效数据的逻辑地址和实际地址都会发生改变。而在本实施例中,将所述有效数据从第一逻辑块组迁移至第二逻辑块组,只需要修改所述有效数据的逻辑地址(将归属于第一逻辑块组的第一逻辑地址修改为归属于第二逻辑块组的第二逻辑地址),而所述有效数据实际存储在固态硬盘中的位置并没有发生改变。也就是说,本实施例中只需要改变所述有效数据的逻辑地址,不改变所述有效数据的实际地址。示例性的,在对第一逻辑块组执行***垃圾回收之前,控制器11中保存有所述有效数据的虚拟地址与第一逻辑地址之间的对应关系。在504中,控制器11可以将所述有效数据的虚拟地址与第一逻辑地址之间的对应关系,修改为所述虚拟地址与分配的第二逻辑地址之间的对应关系。
505:控制器11向所述多个固态硬盘发送映射关系修改指令,所述映射关系修改指令用于指示所述多个固态硬盘将所述有效数据的第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。在504中控制器11改变了所述有效数据的逻辑地址,所述逻辑地址的改变还需要通知固态硬盘,以保证控制器11和固态硬盘22中存储的所述有效数据的逻辑地址是一致,方便将来读取所述有效数据。可以理解的是,由于所述多个固态硬盘中每个固态硬盘均保存有部分有效数据,所以控制器11需要向每个固态硬盘发送映射关系修改指令,以指示该固态硬盘修改自己存储的那部分有效数据的对应关系。
可以理解的是,如果所述第一逻辑块组中只有一个第一数据逻辑块包含有效数据,并且创建的第二逻辑块组也只有一个第二数据逻辑块所在的固态硬盘与所述保存有效数据的第一数据逻辑块所在的固态硬盘相同,那么控制器11只需要向所述包含有效数据的第一数据逻辑块所在的固态硬盘发送映射关系修改指令。同理,如果所述第一逻辑块组中有一定数量(大于或等于2)的第一数据逻辑块包含有效数据,并且创建的第二逻辑块组也有同样数量的第二数据逻辑块所在的固态硬盘与所述保存有效数据的第一数据逻辑块所在的固态硬盘相同,那么控制器11只需要向所述保存有效数据的固态硬盘发送映射关系修改指令。
另一种情况下,所述第一逻辑块组中有N(N为大于或等于2的整数)个第一数据逻辑块包含有效数据,创建的第二逻辑块组有M(M为大于或等于1的整数)个第二数据逻辑块所在的固态硬盘与所述N个第一数据逻辑块中的部分第一数据逻辑块所在的固态硬盘相同,M小于N。此时,控制器11只需要向M个第一数据逻辑块所在的固态硬盘发送映射关系修改指令。
图5所示的***垃圾回收方法可以实施于整个闪存阵列,也可以适用于所述闪存阵列的部分区域。例如,可以将多个固态硬盘22提供给控制器11的逻辑地址划分为两个集合,其中,针对第一集合中的***垃圾回收采用本发明实施例提供的方式,针对第二集合中的***垃圾回收采用传统的方式。
当第一逻辑块组中所有的有效数据迁移至第二逻辑块组之后,所述第一逻辑块组中所有的数据都变成无效数据,此时,控制器11可以将所述第一逻辑块组的数据变成无效数据的信息(例如第一逻辑块组的逻辑地址)传递给所述第一逻辑块组所分布的各个固态硬盘22,固态硬盘22根据该信息在物理块中标记所述无效数据,等到固态硬盘22执行内部的垃圾回收可直接回收包含无效数据的物理块,不用再进行有效数据的复制。
图5所示的实施方式介绍了***垃圾回收的过程,由上面的描述可知,***垃圾回收是由控制器11触发并完成的。然而,固态硬盘22还可以执行自己的垃圾回收,姑且将固态硬盘内部的垃圾回收称为盘内垃圾回收。盘内垃圾回收的大部分操作都由闪存控制器完成,少数情况下需要控制器11配合。图7是本实施例提供的盘内垃圾回收的方法流程示意图,如图7所示,该方法包括如下步骤。
701:当固态硬盘22中的空闲块不足时,所述固态硬盘22的闪存控制器从多个物理块中选择至少一个待回收的物理块。所述固态硬盘22是图1所示的任意一个固态硬盘。所述选择出的物理块需要满足一定条件,例如该物理块包含的无效数据到达第三设定阈值,或者该物理块是所述多个物理块中包含无效数据最多的物理块,或者该物理块包含的有效数据低于第四设定阈值,或者该物理块是所述多个物理块中包含有效数据最少的物理块。该为了方便描述,本实施例将所述选择出的进行垃圾回收的物理块称为第一物理块。
无效数据或者有效数据的数据量可以根据固态硬盘22内部的位图来统计。固态硬盘22中保存有位图,所述位图,如表1所示,用于描述实际地址中存储的数据的有效性。
实际地址 | 有效性 | 实际地址 | 有效性 |
Block0,page0 | 0 | Block1,page0 | 0 |
Block0,page1 | 0 | Block1,page1 | 1 |
Block0,page2 | 1 | Block1,page2 | 1 |
…… | …… | …… | …… |
Block0,pageN | 0 | Block1,pageN | 0 |
其中,“0”代表该地址中存储的数据是无效数据,“1”代表该地址中的存储的数据是有效数据。根据所述位图,固态硬盘22可以获取各个物理块的有效数据或者无效数据的数据量,从而选择出待回收的第一物理块。
702:所述闪存控制器从所述第一物理块中读取有效数据以及所述有效数据的虚拟地址。从表1中可获知存储有效数据的实际地址,例如block0,page2。然而,固态硬盘22从该实际地址中读取出存储的有效数据。由于数据的虚拟地址和数据是作为一个整体存储的,因此在读取所述有效数据时可以读取所述有效数据的虚拟地址。
703:所述闪存控制器将所述虚拟地址发送给控制器11。如果按照传统的方式,所述有效数据的逻辑地址和所述有效数据是一并存储的,因此固态硬盘22可以直接获取所述有效数据的逻辑地址。然而,在本实施例中,固态硬盘22中存储的是所述有效数据的虚拟地址,而不是逻辑地址,因此固态硬盘22需要将所述虚拟地址发送给控制器11以查询所述有效数据的逻辑地址。
703:所述闪存控制器接收控制器11发送的所述虚拟地址对应的逻辑地址。控制器11中保存有虚拟地址与逻辑地址之间的对应关系。示例性的,这里的逻辑地址可以是图5所示的实施例中的第二逻辑地址,也可以称为源逻辑地址。
704:所述闪存控制器分配目标逻辑地址。
705:所述闪存控制器将所述有效数据复制到第二物理块,所述第二物理块是一个空白的物理块。由于有效数据和所述有效数据的虚拟地址是作为一个整体存储的,因此闪存控制器在将所述有效数据复制到所述第二物理块时,也会将所述有效数据的虚拟地址复制到所述第二物理块。
706:在复制完成之后,所述闪存控制器对所述闪存翻译层中保存的对应关系进行修改。具体的,所述闪存控制器删除所述源逻辑地址与所述有效数据保存在所述第一物理块中的实际地址之间的对应关系,并且创建所述目标逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系。
707:擦除所述第一物理块中的数据。
按照同样的方式,固态硬盘22可以选择其他物理块作为垃圾回收的对象,重复执行701至707,从而完成了整个固态硬盘22内部的垃圾回收。
在图7所示的描述中,本实施例以虚拟地址作为示例性。然而,可以理解的是,所述虚拟地址可以替换为其他形式的反向映射信息,此时盘内垃圾回收的操作方式与图7所描述的方式类似,这里不再赘述。
另外,本实施例还适用于另一种存储***,该存储***包括***控制器和多个叠瓦式磁记录技术(Shingled Magnetic Recording,SMR)硬盘。该存储***也可以执行图4、图5以及图7所示的方法流程,只需要将固态硬盘替换为叠瓦式磁记录技术硬盘即可,这里不再赘述。
图8是本发明实施例提供的***垃圾回收装置的结构示意图,该装置位于闪存阵列的控制器11中,如图8所示,该装置包括确定模块801,创建模块802,分配模块803和指示模块804。
其中,确定模块801,用于确定出待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在所述闪存阵列包含的不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据在所述第一逻辑块中的位置为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系。该模块的功能可由处理器112单独执行或者处理器112调用存储器111中的程序执行,具体可参考图5所示的步骤501及相关描述,这里不再赘述。
创建模块802,用于创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中。该模块的功能可由处理器112单独执行或者处理器112调用存储器111中的程序执行,具体可参考图5所示的步骤502及相关描述,这里不再赘述。
分配模块803,用于在所述分布在存储所述有效数据的第一逻辑块所在的固态硬盘中的第二逻辑块中为所述有效数据分配第二逻辑地址。该模块的功能可由处理器112单独执行或者处理器112调用存储器111中的程序执行,具体可参考图5所示的步骤503及相关描述,这里不再赘述。
指示模块804,用于指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。该模块的功能可由处理器112单独执行或者处理器112调用存储器111中的程序执行,具体可参考图5所示的步骤505及相关描述,这里不再赘述。
图9是本发明实施例提供的固态硬盘中的垃圾回收装置的结构示意图,如图9所示,该装置包括处理模块901和回收模块902。
处理模块901,用于从待回收的第一物理块中读取有效数据以及所述有效数据的反向映射信息;向所述***控制器发送所述反向映射信息;接收所述***控制器发送的所述反向映射信息对应的源逻辑地址;为所述有效数据分配目标逻辑地址,并且将所述有效数据复制到第二物理块。该模块的功能可固态硬盘22内部的控制器执行,具体可参考图7所示的步骤701至705及相关描述,这里不再赘述。
回收模块902,用于删除所述源逻辑地址与所述有效数据保存在所述第一物理块中的实际地址之间的对应关系,创建所述目标逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系;擦除所述第一物理块中的数据。该模块的功能可固态硬盘22内部的控制器执行,具体可参考图7所示的步骤706至707及相关描述,这里不再赘述。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为***、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“***”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质包含但不限于电子、磁性、光学、电磁、红外或半导体***、设备或者装置,或者前述的任意适当组合,如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、光盘。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,本领域普通技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (31)
1.一种***垃圾回收方法,其特征在于,所述方法应用于闪存阵列中,所述闪存阵列包括***控制器和多个固态硬盘,所述方法由所述***控制器执行,包括以下步骤:
确定出待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据在所述第一逻辑块中的位置为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系;
创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中;
在所述至少一个第二逻辑块中为所述有效数据分配第二逻辑地址;
指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述存储有有效数据的第一数据逻辑块的数量和所述至少一个第二数据逻辑块的数量相同。
3.根据权利要求2所述的方法,其特征在于,
所述创建第二逻辑块组包括:根据所述多个第一数据逻辑块在所述多个固态硬盘中的分布情况创建第二逻辑块组,所述第二逻辑块组所包含的多个第二数据逻辑块分布在与所述多个第一数据逻辑块相同的固态硬盘中。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一逻辑块组还包括第一校验逻辑块,所述第一校验逻辑块分布在与所述多个第一数据逻辑块不同的固态硬盘中,所述第二逻辑块组还包括第二校验逻辑块,所述第二校验逻辑块分布在与所述多个第二数据逻辑块不同的固态硬盘中。
5.根据权利要求4所述的方法,其特征在于,所述第二校验逻辑块所在的固态硬盘与所述第一校验逻辑块所在的固态硬盘相同。
6.根据权利要求4所述的方法,其特征在于,所述第二校验逻辑块所在的固态硬盘与所述第一校验逻辑块所在的固态硬盘不同。
7.根据权利要求1所述的方法,其特征在于,确定出待回收的第一逻辑块组之前,还包括确定出所述第一逻辑块组中有效数据的数据量低于设定阈值。
8.一种***控制器,其特征在于,所述***控制器包括:
接口,用于和多个固态硬盘通信;以及
处理器,用于确定出待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据在所述第一逻辑块中的位置为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系;
创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中;
在所述至少一个所述第二逻辑块中为所述有效数据分配第二逻辑地址;
通过所述接口指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。
9.根据权利要求8所述的***控制器,其特征在于,所述存储有有效数据的第一数据逻辑块的数量和所述至少一个所述第二数据逻辑块的数量相同。
10.根据权利要求9所述的***控制器,其特征在于,
所述处理器具体用于根据所述多个第一数据逻辑块在所述多个固态硬盘中的分布情况创建第二逻辑块组,所述第二逻辑块组所包含的多个第二数据逻辑块分布在与所述多个第一数据逻辑块相同的固态硬盘中。
11.根据权利要求8-10任一所述的***控制器,其特征在于,所述第一逻辑块组还包括第一校验逻辑块,所述第一校验逻辑块分布在与所述多个第一数据逻辑块不同的固态硬盘中,所述第二逻辑块组还包括第二校验逻辑块,所述第二校验逻辑块分布在与所述多个第二数据逻辑块不同的固态硬盘中。
12.根据权利要求11所述的***控制器,其特征在于,所述第二校验逻辑块所在的固态硬盘与所述第一校验逻辑块所在的固态硬盘相同。
13.根据权利要求11所述的***控制器,其特征在于,所述第二校验逻辑块所在的固态硬盘与所述第一校验逻辑块所在的固态硬盘不同。
14.根据权利要求8所述的***控制器,其特征在于,
所述处理器还用于在确定出待回收的第一逻辑块组之前,确定出所述第一逻辑块组中有效数据的数据量低于设定阈值。
15.一种闪存阵列,其特征在于,包括***控制器和多个固态硬盘;
所述***控制器,用于确定出待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据在所述第一逻辑块中的位置为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系;
创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中;
在所述至少一个所述第二逻辑块中为所述有效数据分配第二逻辑地址;
指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。
16.根据权利要求15所述的闪存阵列,其特征在于,所述存储有有效数据的第一数据逻辑块的数量和所述至少一个所述第二数据逻辑块的数量相同。
17.根据权利要求16所述的闪存阵列,其特征在于,
所述***控制器,具体用于根据所述多个第一数据逻辑块在所述多个固态硬盘中的分布情况创建第二逻辑块组,所述第二逻辑块组所包含的多个第二数据逻辑块分布在与所述多个第一数据逻辑块相同的固态硬盘中。
18.根据权利要求15-17任一所述的闪存阵列,其特征在于,所述第一逻辑块组还包括第一校验逻辑块,所述第一校验逻辑块分布在与所述多个第一数据逻辑块不同的固态硬盘中,所述第二逻辑块组还包括第二校验逻辑块,所述第二校验逻辑块分布在与所述多个第二数据逻辑块不同的固态硬盘中。
19.根据权利要求15所述的闪存阵列,其特征在于,
所述保存所述有效数据的固态硬盘还用于从所述有效数据所在的第一物理块中读取所述有效数据以及所述有效数据的反向映射信息;向所述***控制器发送所述反向映射信息;
所述***控制器还用于根据所述反向映射信息查询所述反向映射信息对应的第二逻辑地址,并且将所述第二逻辑地址发送给所述保存所述有效数据的固态硬盘;
所述保存所述有效数据的固态硬盘还用于为所述有效数据分配第三逻辑地址,将所述有效数据复制到第二物理块;
所述保存所述有效数据的固态硬盘还用于删除所述第二逻辑地址与所述实际地址之间的对应关系,创建所述第三逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系;
所述保存所述有效数据的固态硬盘还用于在确定所述第一物理块不包含其他有效数据时,擦除所述第一物理块中的数据。
20.根据权利要求19所述的闪存阵列,其特征在于,所述反向映射信息包括所述有效数据的虚拟地址。
21.一种固态硬盘中的垃圾回收方法,其特征在于,所述固态硬盘与***控制器连接,所述方法由所述固态硬盘执行,包括以下步骤:
从待回收的第一物理块中读取有效数据以及所述有效数据的反向映射信息;
向所述***控制器发送所述反向映射信息;
接收所述***控制器发送的所述反向映射信息对应的源逻辑地址;
为所述有效数据分配目标逻辑地址,并且将所述有效数据复制到第二物理块;
删除所述源逻辑地址与所述有效数据保存在所述第一物理块中的实际地址之间的对应关系,创建所述目标逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系;
擦除所述第一物理块中的数据。
22.根据权利要求21所述的方法,其特征在于,所述反向映射信息包括所述有效数据的虚拟地址。
23.一种固态硬盘,其特征在于,包括控制器、第一物理块和第二物理块;
所述控制器用于:
从待回收的所述第一物理块中读取有效数据以及所述有效数据的反向映射信息;
向所述***控制器发送所述反向映射信息;
接收所述***控制器发送的所述反向映射信息对应的源逻辑地址;
为所述有效数据分配目标逻辑地址,并且将所述有效数据复制到所述第二物理块;
删除所述源逻辑地址与所述有效数据保存在所述第一物理块中的实际地址之间的对应关系,创建所述目标逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系;
擦除所述第一物理块中的数据。
24.根据权利要求23所述的固态硬盘,其特征在于,所述反向映射信息包括所述有效数据的虚拟地址。
25.一种***垃圾回收装置,其特征在于,所述装置位于闪存阵列的***控制器中,所述装置包括:
确定模块,用于确定出待回收的第一逻辑块组,所述第一逻辑块组包括多个第一数据逻辑块,所述多个第一数据逻辑块分布在所述闪存阵列包含的不同的固态硬盘中,其中,所述多个第一数据逻辑块中至少有一个第一数据逻辑块存储的数据包括有效数据,所述有效数据在所述第一逻辑块中的位置为第一逻辑地址,所述第一逻辑地址与所述有效数据保存在固态硬盘中的实际地址具有对应关系;
创建模块,用于创建第二逻辑块组,所述第二逻辑块组包括多个第二数据逻辑块,其中,至少有一个所述第二数据逻辑块分布在存储所述有效数据的第一数据逻辑块所在的固态硬盘中;
分配模块,用于在所述至少一个所述第二逻辑块中为所述有效数据分配第二逻辑地址;
指示模块,用于指示所述保存所述有效数据的固态硬盘将所述第一逻辑地址与所述实际地址的对应关系修改为所述第二逻辑地址与所述实际地址的对应关系。
26.根据权利要求25所述的装置,其特征在于,所述存储有有效数据的第一数据逻辑块的数量和所述至少一个第二数据逻辑块的数量相同。
27.根据权利要求26所述的装置,其特征在于,
所述创建模块,具体用于根据所述多个第一数据逻辑块在所述多个固态硬盘中的分布情况创建第二逻辑块组,所述第二逻辑块组所包含的多个第二数据逻辑块分布在与所述多个第一数据逻辑块相同的固态硬盘中。
28.根据权利要求25-27任一所述的装置,其特征在于,所述第一逻辑块组还包括第一校验逻辑块,所述第一校验逻辑块分布在与所述多个第一数据逻辑块不同的固态硬盘中,所述第二逻辑块组还包括第二校验逻辑块,所述第二校验逻辑块分布在与所述多个第二数据逻辑块不同的固态硬盘中。
29.根据权利要求25所述的装置,其特征在于,所述确定模块还用于在确定待回收的第一逻辑块组之前确定出所述第一逻辑块组中有效数据的数据量低于设定阈值。
30.一种固态硬盘中的垃圾回收装置,其特征在于,包括:
处理模块,用于从待回收的第一物理块中读取有效数据以及所述有效数据的反向映射信息;向所述***控制器发送所述反向映射信息;接收所述***控制器发送的所述反向映射信息对应的源逻辑地址;为所述有效数据分配目标逻辑地址,并且将所述有效数据复制到第二物理块;
回收模块,用于删除所述源逻辑地址与所述有效数据保存在所述第一物理块中的实际地址之间的对应关系,创建所述目标逻辑地址与所述有效数据保存在所述第二物理块中的实际地址之间的对应关系;擦除所述第一物理块中的数据。
31.根据权利要求30所述的装置,其特征在于,所述反向映射信息包括所述有效数据的虚拟地址。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020526891A JP7315130B2 (ja) | 2018-09-12 | 2019-03-23 | システムガベージコレクションの方法およびソリッドステートディスクにおけるガベージコレクションの方法 |
EP19859851.8A EP3748509B1 (en) | 2018-09-12 | 2019-03-23 | System garbage collection method and method for collecting garbage in solid state hard disk |
PCT/CN2019/079391 WO2020052216A1 (zh) | 2018-09-12 | 2019-03-23 | 一种***垃圾回收方法和固态硬盘中的垃圾回收方法 |
US17/021,413 US11928053B2 (en) | 2018-09-12 | 2020-09-15 | System garbage collection method and method for garbage collection in solid state disk |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811064493X | 2018-09-12 | ||
CN201811064493 | 2018-09-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110895513A true CN110895513A (zh) | 2020-03-20 |
Family
ID=69785401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811233512.7A Pending CN110895513A (zh) | 2018-09-12 | 2018-10-23 | 一种***垃圾回收方法和固态硬盘中的垃圾回收方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11928053B2 (zh) |
EP (1) | EP3748509B1 (zh) |
JP (1) | JP7315130B2 (zh) |
CN (1) | CN110895513A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131140A (zh) * | 2020-09-24 | 2020-12-25 | 北京计算机技术及应用研究所 | 基于ssd的支持高效存储空间管理的键值分离存储方法 |
CN113590505A (zh) * | 2021-06-30 | 2021-11-02 | 深圳大普微电子科技有限公司 | 地址映射方法、固态硬盘控制器及固态硬盘 |
CN116756091A (zh) * | 2023-08-22 | 2023-09-15 | 深圳富联富桂精密工业有限公司 | 快照管理方法、电子设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US11500769B2 (en) * | 2020-12-21 | 2022-11-15 | Micron Technology, Inc. | Valid data identification for garbage collection |
US11567666B2 (en) * | 2021-03-24 | 2023-01-31 | Ati Technologies Ulc | Handling the migration of pages of memory accessible by input-output devices |
TWI773371B (zh) * | 2021-06-09 | 2022-08-01 | 宇瞻科技股份有限公司 | 固態硬碟 |
EP4250082A1 (en) * | 2022-03-24 | 2023-09-27 | Samsung Electronics Co., Ltd. | System and method for performing data read-write operations in zoned storage devices |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744798A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid***及方法 |
US20150378884A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及*** |
CN107391391A (zh) * | 2017-07-19 | 2017-11-24 | 深圳大普微电子科技有限公司 | 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021187B2 (en) * | 2013-01-29 | 2015-04-28 | Sandisk Technologies Inc. | Logical block address remapping |
CN103970669A (zh) * | 2013-02-06 | 2014-08-06 | Lsi公司 | 用于加速在固态设备中的回收操作的物理到逻辑地址映射 |
US9183142B2 (en) * | 2013-03-15 | 2015-11-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing flash memory write amplification and latency |
JP2014203405A (ja) * | 2013-04-09 | 2014-10-27 | 富士通株式会社 | 情報処理装置、メモリ制御装置、データ転送制御方法及びデータ転送制御プログラム |
KR102072829B1 (ko) * | 2013-06-14 | 2020-02-03 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 글로벌 가비지 컬렉션 방법 |
WO2014203316A1 (ja) * | 2013-06-17 | 2014-12-24 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、及び制御方法 |
US20160232088A1 (en) * | 2014-07-17 | 2016-08-11 | Sandisk Enterprise Ip Llc | Garbage Collection in Storage System with Distributed Processors |
KR102330391B1 (ko) | 2014-09-11 | 2021-11-24 | 삼성전자주식회사 | 저장 장치 및 그것을 포함하는 데이터 저장 시스템의 가비지 컬렉션 방법 |
KR20160075229A (ko) * | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
KR20160083762A (ko) * | 2015-01-02 | 2016-07-12 | 삼성전자주식회사 | 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템 |
CN104794070B (zh) | 2015-04-23 | 2017-10-31 | 南京道熵信息技术有限公司 | 基于动态非覆盖raid技术的固态闪存写缓存***及方法 |
US10095423B2 (en) * | 2015-09-30 | 2018-10-09 | Toshiba Memory Corporation | Storage system that tracks mapping to a memory module to be detached therefrom |
CN105549908A (zh) | 2015-12-14 | 2016-05-04 | 深圳市万拓存储技术有限公司 | Raid磁盘阵列重新恢复冗余的方法 |
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
TWI619018B (zh) * | 2016-11-10 | 2018-03-21 | 慧榮科技股份有限公司 | 可用於資料儲存裝置之垃圾蒐集方法 |
BR112017019425B1 (pt) * | 2016-11-11 | 2023-01-24 | Huawei Technologies Co., Ltd | Sistema de armazenamento e método de coleta de lixo de sistema |
TWI692690B (zh) * | 2017-12-05 | 2020-05-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
TWI670594B (zh) * | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
WO2020007030A1 (zh) * | 2018-07-06 | 2020-01-09 | 华为技术有限公司 | 一种***控制器和***垃圾回收方法 |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
KR20200055349A (ko) * | 2018-11-13 | 2020-05-21 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20210017912A (ko) * | 2019-08-09 | 2021-02-17 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2018
- 2018-10-23 CN CN201811233512.7A patent/CN110895513A/zh active Pending
-
2019
- 2019-03-23 JP JP2020526891A patent/JP7315130B2/ja active Active
- 2019-03-23 EP EP19859851.8A patent/EP3748509B1/en active Active
-
2020
- 2020-09-15 US US17/021,413 patent/US11928053B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150378884A1 (en) * | 2013-04-08 | 2015-12-31 | Avalanche Technology, Inc. | Storage system controlling addressing of solid storage disks (ssd) |
CN103744798A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 固态硬盘的垃圾回收方法 |
CN104407813A (zh) * | 2014-11-20 | 2015-03-11 | 上海宝存信息科技有限公司 | 一种基于固态存储介质的raid***及方法 |
CN106095342A (zh) * | 2016-06-15 | 2016-11-09 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及*** |
CN107391391A (zh) * | 2017-07-19 | 2017-11-24 | 深圳大普微电子科技有限公司 | 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘 |
Non-Patent Citations (1)
Title |
---|
蔡晓乐;张亚棣;李亚晖;海钰琳;: "基于区域页级映射的闪存转换层设计", 微电子学与计算机, no. 04, 5 April 2016 (2016-04-05), pages 32 - 36 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131140A (zh) * | 2020-09-24 | 2020-12-25 | 北京计算机技术及应用研究所 | 基于ssd的支持高效存储空间管理的键值分离存储方法 |
CN113590505A (zh) * | 2021-06-30 | 2021-11-02 | 深圳大普微电子科技有限公司 | 地址映射方法、固态硬盘控制器及固态硬盘 |
CN116756091A (zh) * | 2023-08-22 | 2023-09-15 | 深圳富联富桂精密工业有限公司 | 快照管理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3748509A1 (en) | 2020-12-09 |
US11928053B2 (en) | 2024-03-12 |
EP3748509A4 (en) | 2021-06-23 |
JP2021509981A (ja) | 2021-04-08 |
EP3748509B1 (en) | 2022-10-26 |
US20200409840A1 (en) | 2020-12-31 |
JP7315130B2 (ja) | 2023-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11928053B2 (en) | System garbage collection method and method for garbage collection in solid state disk | |
US10073640B1 (en) | Large scale implementation of a plurality of open channel solid state drives | |
US9996435B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
CN110858124B (zh) | 数据迁移方法及装置 | |
US10542089B2 (en) | Large scale implementation of a plurality of open channel solid state drives | |
WO2018189858A1 (ja) | ストレージシステム | |
US10359967B2 (en) | Computer system | |
US11321229B2 (en) | System controller and system garbage collection method | |
CN107924291B (zh) | 存储*** | |
WO2015162758A1 (ja) | ストレージシステム | |
US10621085B2 (en) | Storage system and system garbage collection method | |
US20190243758A1 (en) | Storage control device and storage control method | |
EP3798852B1 (en) | System controller and system garbage recovery method | |
JP6817340B2 (ja) | 計算機 | |
CN110389706B (zh) | 一种指纹回收方法以及存储*** | |
WO2020052216A1 (zh) | 一种***垃圾回收方法和固态硬盘中的垃圾回收方法 | |
US20190205044A1 (en) | Device for restoring lost data due to failure of storage drive | |
Jeremic et al. | Enabling TRIM Support in SSD RAIDs |
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 |