CN111198825B - 存储设备和包括存储设备的存储*** - Google Patents
存储设备和包括存储设备的存储*** Download PDFInfo
- Publication number
- CN111198825B CN111198825B CN201911074992.1A CN201911074992A CN111198825B CN 111198825 B CN111198825 B CN 111198825B CN 201911074992 A CN201911074992 A CN 201911074992A CN 111198825 B CN111198825 B CN 111198825B
- Authority
- CN
- China
- Prior art keywords
- physical
- storage device
- address
- memory
- logical
- 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
- 230000015654 memory Effects 0.000 claims abstract description 181
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 16
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 11
- 101100123718 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) pda-1 gene Proteins 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 101100353051 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) epp-1 gene Proteins 0.000 description 8
- 101150034591 PPN1 gene Proteins 0.000 description 8
- 238000013507 mapping Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 101710179734 6,7-dimethyl-8-ribityllumazine synthase 2 Proteins 0.000 description 2
- 101710186609 Lipoyl synthase 2 Proteins 0.000 description 2
- 101710122908 Lipoyl synthase 2, chloroplastic Proteins 0.000 description 2
- 101710101072 Lipoyl synthase 2, mitochondrial Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 101100244635 Paramecium tetraurelia Ppn2 gene Proteins 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- 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
-
- 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
-
- 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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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)
- Software Systems (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了存储设备和包括存储设备的存储***。存储设备包括非易失性存储器,该非易失性存储器包括多个存储块。存储设备响应于对准命令的接收而执行对准操作。对准操作将接收到的逻辑段的逻辑地址转换为物理地址,并将物理地址分配给对应于空闲块的物理块地址。存储设备还被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。
Description
相关申请的交叉引用
本申请要求在2018年11月16日在韩国知识产权局提交的韩国专利申请No.10-2018-0141947的优先权权益,其公开内容通过引用整体合并于此。
技术领域
本发明构思涉及一种存储设备和包括该存储设备的存储***,更具体地,涉及一种包括主机设备和存储设备的存储***。
背景技术
存储***包括主机设备和存储设备,并且经由诸如通用闪存(UFS)、串行高级技术附件(SATA)、小型计算机小型接口(SCSI)、串行连接SCSI(SAS)和嵌入式多媒体卡(eMMC)的各种接口标准连接。存储设备可以包括非易失性存储器和存储器控制器。非易失性存储器可以包括闪存、磁随机存取存储器(MRAM)、相变RAM(PRAM)和铁电RAM(FeRAM)。
非易失性存储器即使其电力供应被阻断时也可以保留所存储的数据。近来,包括诸如eMMC、UFS、固态驱动器(SSD)和存储卡的基于闪存的非易失性存储器的存储设备已被广泛用于存储或传递大量数据。
在非易失性存储器中,可以执行垃圾收集以释放整个存储块(memory block)以用于后续写入。然而,当重复执行垃圾收集时,可能导致存储设备的性能下降和存储设备的寿命缩短。
发明内容
本发明构思的至少一个实施例提供了一种存储设备以及包括该存储设备的存储***,所述存储设备能够将用于在主机设备中执行垃圾收集的单元和用于控制存储设备中的垃圾收集的单元彼此对准(align)。
根据本发明构思的示例性实施例,提供了一种存储设备,包括:非易失性存储器,包括多个存储块。存储设备被配置为响应于对准命令的接收而执行对准操作。对准操作将接收到的逻辑段的逻辑地址转换为物理地址,并将物理地址分配给对应于空闲块(freeblock)的物理块地址。存储设备还被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。
根据本发明构思的示例性实施例,提供了一种存储设备,包括:非易失性存储器,包括多个存储块。当不能将第一大小的数据存储在物理块地址中时,存储设备在物理块地址中创建第一大小的虚拟(dummy)存储区域。存储设备基于所创建的虚拟存储区域输出指示物理块地址和逻辑段的未对准的未对准信号。存储设备被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。
根据本发明构思的示例性实施例,提供了一种存储***,包括存储设备和主机设备。存储设备具有包括多个存储块的非易失性存储器。存储设备被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。主机设备被配置为以逻辑段为单位控制存储设备中的垃圾收集。当逻辑段的起始点与物理块地址的起始点未对准时,存储设备将未对准信号发送到主机设备。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的示例性实施例,其中:
图1是根据本发明构思的示例性实施例的存储***的框图;
图2是图1的存储控制器的示例的框图;
图3是示出根据本发明构思的示例性实施例的操作存储***的方法的流程图;
图4是示出根据本发明构思的示例性实施例的操作存储***的方法的流程图;
图5至图7是用于说明图3的操作存储***的方法的逻辑段和物理块地址的示图;
图8是示出根据本发明构思的示例性实施例的操作存储***的方法的流程图;
图9是根据本发明构思的示例性实施例的存储***的框图;
图10是示出根据本发明构思的示例性实施例的操作存储***的方法的流程图;
图11是示出根据本发明构思的示例性实施例的操作存储***的方法的流程图;
图12是用于说明图11的操作存储***的方法的逻辑段和物理块地址的示图;
图13是示出根据实施例的用户设备的存储设备应用于存储卡的示例的示图;和
图14是示出根据实施例的存储设备应用于固态驱动器(SSD)的示例的框图。
具体实施方式
在下文中,将参考附图详细描述本发明构思的一个或多个示例性实施例。
图1是根据本发明构思的示例性实施例的存储***10的框图。
参考图1,存储***10包括存储设备100和主机设备200。主机设备200可以控制存储设备100的操作。
在一个实施例中,存储设备100可以包括一个或多个固态驱动器(SSD)。当存储设备100包括SSD时,存储设备100可以包括非易失性储存数据的多个闪存芯片(例如,NAND存储器芯片)。
存储设备100可以对应于包括一个或多个闪存芯片的闪存设备。在一个实施例中,存储设备100可以是存储***10的嵌入式存储器。例如,存储设备100可以是嵌入式多媒体卡(eMMC)或嵌入式通用闪存(UFS)存储器设备。在一个实施例中,存储设备100可以是可拆卸地附接到存储***10的外部存储器。例如,存储设备100可以包括UFS存储卡、紧凑型闪存(CF)、安全数字(SD)、micro-SD、mini-SD、极速数字(xD)或记忆棒。
主机设备200包括处理器210、主机存储器220和接口电路230。处理器210、主机存储器220和接口电路230可以经由内部总线彼此发送和接收信号。
处理器210可以执行加载到主机存储器220上的各种软件。例如,处理器210可以执行操作***(OS)和应用程序。处理器210可以被提供为同构多核处理器或异构多核处理器。
主机存储器220可以用作主存储器或高速缓冲存储器。或者,主机存储器220可以用作用于驱动软件或固件的驱动存储器。可以将要由处理器210处理的应用程序或数据加载到主机存储器220上。例如,可以将文件***221、应用程序或设备驱动器加载到主机存储器220上。
当文件或数据被存储在存储设备100中时,文件***221组织文件或数据。文件***221可以根据命令(例如,写入命令WCMD或读取命令)向存储设备100提供逻辑地址ADDR_L。可以根据在主机设备200中执行的某个OS来使用文件***221。
主机设备200通过使用文件***221管理存储设备100的存储空间,将用户数据写入存储设备100,并从存储设备100读取用户数据。文件***221可以经由软件或固件来实现。
通过转换命令(例如,写入命令WCMD、对准命令ACMD)、逻辑地址ADDR_L、与主机设备200发出的各种访问请求相对应的数据DATA的数据格式、或通过转换交换的命令,接口电路230可以连接到存储设备100。接口电路230的协议可以是通用串行总线(USB)、小型计算机***接口(SCSI)、***组件快速互连(PCI)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和串行附接SCSI(SAS)中的至少一个。
当控制存储设备100的垃圾收集时,主机设备200可以以逻辑段(logicalsegment)为单位管理逻辑地址ADDR_L。在示例性实施例中,主机设备200将对准命令ACMD传递到存储设备100,以将逻辑段与作为存储设备100中的垃圾收集操作的单位的物理块地址对准。在一个实施例中,当逻辑地址被分配给新的逻辑段时,主机设备200向存储设备100提供对准命令ACMD。这里,新的逻辑段可以表示尚未被分配逻辑地址的逻辑段。
在一个实施例中,除了写入命令WCMD之外,主机设备200还向存储设备100提供与写入命令WCMD有区别的对准命令ACMD。在一个实施例中,对准命令ACMD被包括在写入命令WCMD中并且被配置为写入命令WCMD的一部分。例如,存储控制器110可以被配置为区分写入命令WCMD和对准命令ACMD。
存储设备100可以包括存储控制器110(例如,控制电路)、缓冲存储器120和非易失性存储器130。存储设备100可以访问非易失性存储器130或者可以响应于从主机设备200提供的命令而执行所请求的操作。
存储控制器110可以经由通道CH控制非易失性存储器130的操作。存储控制器110可以从主机设备200接收写入命令WCMD和逻辑地址ADDR_L,并且可以将数据DATA写入非易失性存储器130中。
存储控制器110可以响应于对准命令ACMD分配物理地址,以便逻辑段的起始点与物理块地址的起始点对准。在一个实施例中,存储控制器110接收对准命令ACMD,并将通过对与对准命令ACMD一起接收的逻辑地址ADDR_L进行转换而获得的物理地址分配为新的物理块地址。这里,新的物理块地址可以是与未存储数据的空闲块相对应的块地址。也就是说,新的物理块地址可以表示尚未被分配物理地址的物理块地址。例如,可以对块执行删除操作以生成空闲块,或者因为所述块之前从未被写入而是空闲的。下面将参考图2详细描述存储控制器110的配置和操作。
缓冲存储器120可以临时存储写数据或读数据。临时存储在缓冲存储器120中的写数据可以被写入非易失性存储器130中,并且临时存储在缓冲存储器120中的读数据可以经由存储控制器110而被传递到主机设备200。
非易失性存储器130可以根据存储控制器110的控制来执行写入/读取操作。非易失性存储器130可以包括多个存储块BLK1至BLKz,每个存储块包括多个页。多个页中的每一个可包括多个存储器单元。在一个实施例中,非易失性存储器130可以以存储块为单位执行擦除操作,并且可以以页为单位执行写入或读取操作。
物理地址可以对应于非易失性存储器130中的某个区域。例如,用于选择页的物理地址可以是物理页地址,用于选择存储块的物理地址可以是物理块地址。
在一个实施例中,存储设备100被配置为执行垃圾收集。存储设备100可以以存储块(即,擦除单元)为单位执行垃圾收集。因此,存储设备100可以以物理块地址为单位管理垃圾收集。垃圾收集可以包括将第一存储块的所有有效页复制到第二存储块并对第一存储块执行删除操作。
在一个实施例中,非易失性存储器130可以包括多个闪存单元。例如,多个闪存单元可以包括NAND闪存单元。然而,一个或多个实施例不限于此,即,存储器单元可以包括电阻性存储器单元,诸如电阻RAM(ReRAM)、相变RAM(PRAM)或磁RAM(MRAM)。
根据示例性实施例的存储***10通过使用对准命令ACMD将主机设备200的逻辑段单元与存储设备100的物理块地址单元对准。在实施例中,逻辑段单元包括多个逻辑地址,其对应于物理块地址单元中所包括的相同数量的物理地址。在实施例中,当第一逻辑段单元的第一逻辑地址被映射到第一物理块地址单元的第一物理地址、第一逻辑段单元的第二逻辑地址被映射到第一物理块地址单元的第二物理地址、...、并且第一逻辑段单元的第N(最后)逻辑地址被映射到第一物理块地址单元的第N(最后)物理地址时,第一逻辑段单元与第一物理块地址单元对准。由于逻辑段单元和物理块地址单元彼此对准,因此即使主机设备200不控制存储设备100执行垃圾收集,也可以减少在存储设备100中进一步执行垃圾收集的次数。由于减少了执行不必要的垃圾收集的次数,存储设备100的寿命可以增加。
图2是图1的存储控制器110的示例的框图。
参考图1和图2,存储控制器110可以包括中央处理单元111、主机接口112(例如、接口电路)、缓冲管理器113(例如,管理器电路)、存储器接口114和RAM 115。上述元件可以经由总线彼此通信,并且存储控制器110还可以包括其他***设备。
中央处理单元111可以控制存储控制器110的所有操作。中央处理单元111可以包括中央处理器或微处理器。中央处理单元111可以执行用于驱动存储控制器110的固件。可以将固件加载到RAM 115上并执行。例如,中央处理单元111执行用于驱动存储控制器110的固件,以执行用于管理非易失性存储器130的垃圾收集,或用于执行地址映射或耗损均衡的闪存转换层(FTL)115_1。
主机接口112可以与主机设备200通信。例如,主机接口112可以提供主机设备200和存储设备100之间的物理连接。主机接口112可以调整与存储设备100交换的数据的大小,或者可以响应于主机设备200的总线格式来转换与存储设备100交换的命令的格式。
主机设备200的总线格式可以包括USB、SCSI、快速PCI(PCI express)、ATA、PATA、SATA和SAS中的至少一个。在通过快速PCI交换数据的主机设备200中使用的快速非易失性存储器(NVMe)协议可以应用于主机接口112。
缓冲管理器113可以控制缓冲存储器120的读取和写入操作。例如,缓冲管理器113可以将写数据或读数据临时存储在缓冲存储器120中,并且可以根据中央处理单元111的控制管理缓冲存储器120的存储区域。
存储器接口114可以与非易失性存储器130交换数据DATA。存储器接口114可以经由通道CH将从缓冲存储器120传递的数据DATA写入非易失性存储器130中。
RAM 115可以根据中央处理单元111的控制来操作。RAM 115可以用作中央处理单元111的操作存储器、高速缓冲存储器或缓冲存储器。用于控制存储控制器110的软件或固件可以被加载到RAM 115上。RAM 115可以实现为易失性存储器,例如动态随机存取存储器(DRAM)或静态RAM(SRAM)。或者,RAM 115可以实现为诸如RRAM、PRAM或MRAM的电阻性存储器。例如,FTL 115_1或映射表115_2可以被加载到RAM 115上。
FTL 115_1可以包括用于执行各种功能的模块。例如,FTL 115_1可以包括地址转换模块,其将从主机设备200发送的逻辑地址ADDR_L转换为指示非易失性存储器130中的存储位置的物理地址。此外,FTL 115_1可以包括用于执行关于非易失性存储器的各种后台功能的模块,例如,用于执行垃圾收集的模块。
映射表115_2可以由FTL 115_1操作。逻辑地址ADDR_L和映射到逻辑地址ADDR_L的对应物理地址可以被存储在映射表115_2中。因此,FTL115_1可以经由映射表115_2转换逻辑地址ADDR_L。
在示例性实施例中,当经由主机接口112接收到对准命令ACMD时,中央处理单元111在将逻辑地址ADDR_L转换为物理地址时将物理地址分配给新的物理块地址。在一个实施例中,对准命令ACMD作为与写入命令WCMD分开的命令被提供,而在另一实施例中,对准命令ACMD包括在写入命令WCMD中。因此,根据实施例的存储***10可以将作为用于管理主机设备200中的逻辑地址的单元的逻辑段单元与作为用于管理存储设备100中的物理地址的单元的物理块地址单元对准。
图3是示出根据本发明构思的示例性实施例的操作存储***10的方法的流程图。
参考图3,在操作S210中,主机设备200将逻辑地址分配给新的逻辑段。这里,逻辑段可以是被主机设备200用于控制存储设备100的垃圾收集的单元。在实施例中,通过向新的逻辑段分派一定数量的可用逻辑地址来执行将逻辑地址分配给新的逻辑段,其中所述数量对应于逻辑段内的逻辑地址的数量和物理块地址内的物理地址的数量。
在操作S220中,主机设备200将写入命令、对准命令和逻辑地址发送到存储设备100。这里,对准命令可以是与写入命令分开的命令,或者可以包括在写入命令中。在实施例中,发送的逻辑地址是分派给新的逻辑段的第一逻辑地址。在另一实施例中,发送的逻辑地址包括新的逻辑段内的所有逻辑地址。
在操作S110中,存储设备100将逻辑地址转换为物理地址,并将物理地址分配给新的物理块地址。在实施例中,转换和分配将与逻辑地址相关联的逻辑段的逻辑地址分别映射到新的物理块地址的物理地址。因此,作为用于管理主机设备200中的逻辑地址的单元的逻辑段的起始点对应于作为用于管理存储设备100中的物理地址的单元的物理块地址的起始点。
在操作S120中,存储设备100可以在与在操作S110中分配的物理块地址相对应的新的物理块中执行写入操作。例如,写入操作可以将数据写入被映射到新的逻辑段的逻辑地址的新的物理块的物理地址。这里,存储设备100可以以页为单位执行写入操作。例如,如果数据包括两页数据,则存储设备100可以在第一次将数据的第一页写入物理块的第一页,并在第二次将数据的第二页写入物理块的第二页。下面将参考图5至图7描述关于图3的操作中的每一个的示例。
图4是示出根据本发明构思的示例性实施例的操作存储***10的方法的流程图。
参考图4,在操作S230中,主机设备200选择某个逻辑段以便控制垃圾收集。主机设备200可以以逻辑段为单位控制垃圾收集的执行。
在操作S240中,主机设备200将用于垃圾收集的多个命令传递到存储设备100,以便存储设备100执行垃圾收集。可以顺序地发送所述多个命令。例如,用于垃圾收集的多个命令可以包括读取命令、写入命令和擦除命令。主机设备200可以利用用于垃圾收集的多个命令中的每一个向存储设备100发送逻辑地址。逻辑地址可以对应于所选择的逻辑段的逻辑地址。例如,利用擦除命令发送的逻辑地址可以配置某个逻辑段。
存储设备100可以顺序地接收用于垃圾收集的多个命令。在操作S130中,对与某个逻辑段对应的存储块执行垃圾收集。例如,存储设备100可以将某个逻辑段的逻辑地址转换为物理块地址,并且可以对与物理块地址对应的存储块执行垃圾收集。根据实施例的存储***10,逻辑段和物理块地址可以彼此对准,并且可以对与某个逻辑段对应的存储块执行垃圾收集。
尽管在图4中是在操作S240之后执行操作S130,但是存储设备100可以响应于在操作S240中从主机设备200顺序发送的多个命令中的每一个来执行用于垃圾收集的操作,并且因此操作S240和操作S130可以彼此并行执行。
由存储设备100执行的垃圾收集操作可以包括从多个存储块(例如,图1中的BLK1至BLKz)中选择牺牲块,将牺牲块的有效页复制到空闲块,并擦除牺牲块。被擦除的牺牲块可以稍后重新用作空闲块。
在根据实施例的存储***10中,逻辑段单元和物理块地址单元彼此对准,因此,即使当主机设备200不控制存储***10进行垃圾收集时,也可以减少在存储***10中执行垃圾收集的次数。由于减少了执行不必要的垃圾收集的次数,因此存储设备100的寿命可以增加。
图5是用于说明操作图3的存储***10的方法的逻辑段和物理块地址的示图。图5是示出主机设备200中的逻辑地址的分区区域和存储设备100中的物理地址的分区区域的概念图。
参考图5,存储***10可以以日志结构(log-structured)的方式执行存储器分配。因此,可以在日志结构***中执行主机设备200中的逻辑地址的分配和存储设备100中的物理地址的分配。例如,可以顺序地分配第一至第二十四逻辑页地址LPN1至LPN24,并且可以顺序地分配第一至第二十四物理页地址PPN1至PPN24。第一至第二十四逻辑页地址LPN1至LPN24可以分别对应于第一至第二十四物理页地址PPN1至PPN24。例如,第一逻辑页地址LPN1可以对应于第一物理页地址PPN1,第二逻辑页地址LPN2可以对应于第二物理页地址PPN2,并且第二十四逻辑页地址LPN24可以对应于第二十四物理页地址PPN24。在一个实施例中,第一至第二十四物理页地址PPN1至PPN24中的每一个可以对应于存储设备100的非易失性存储器(例如,130)的一页。
第一至第八逻辑页地址LPN1至LPN8可以配置第一逻辑段LS1,第九至第十六逻辑页地址LPN9至LPN16可以配置第二逻辑段LS2,并且第十七至第二十四逻辑页地址LPN17至LPN24可以配置第三逻辑段LS3。在图5中,一个逻辑段包括八个逻辑页地址,但是根据本发明构思的实施例的主机设备200不限于此,即,一个逻辑段中包括的逻辑页地址的数量可以变化。
主机设备200可以在新分配第一逻辑段LS1、第二逻辑段LS2和第三逻辑段LS3中的每一个的时间点(即,第一至第三逻辑段LS1至LS3中的每一个开始的时间点)向存储设备100发送对准命令(S220)。例如,主机设备200可以将对准命令与第一逻辑页地址LPN1、第九逻辑页地址LPN9和第十七逻辑页地址LPN17一起发送到存储设备100。然而,根据本发明构思的实施例的主机设备200不限于每当逻辑段开始时发送对准命令,而是,主机设备200可以在逻辑段开始的点处选择性地发送对准命令。
第一至第八物理页地址PPN1至PPN8可以配置第一物理块地址PB1,第九至第十六物理页地址PPN9至PPN16可以配置第二物理块地址PB2,以及第十七至第二十四物理页地址PPN17至PPN24可以配置第三物理块地址PB3。在一个实施例中,第一至第三物理块地址PB1至PB3中的每一个可以对应于存储设备100的非易失性存储器(例如,130)中的一个存储块(例如,BLK1至BLKz之一)。例如,第一物理块地址PB1可以对应于第一存储块BLK1,第二物理块地址PB2可以对应于第二存储块BLK2,第三物理块地址PB3可以对应于第三存储块BLK3。
根据对准命令,第一逻辑段LS1可以与第一物理块地址PB1对准,第二逻辑段LS2可以与第二物理块地址PB2对准,而第三逻辑段LS3可以与第三个物理块地址PB3对准。在图5中,一个物理块地址包括八个物理页地址,但是根据本发明构思的实施例的存储设备100不限于此,即,一个物理块地址中包括的物理页地址的数量可以变化。在一个实施例中,一个物理块地址中包括的物理页地址的数量可以对应于一个逻辑段中包括的逻辑页地址的数量。例如,一个物理块地址中包括的物理页地址的数量可以是一个逻辑段中包括的逻辑页地址的数量的n倍。这里,n是1或更大的自然数。
根据实施例的主机设备200在逻辑段新开始的点处发送对准命令,以维持逻辑段与对应的物理块地址之间的对准状态。也就是说,作为在主机设备200中执行的垃圾收集的单元的逻辑段可以与作为在存储设备100中执行的垃圾收集的单元的物理块地址对准。
图6和图7是用于说明图3的操作存储***10的方法的逻辑段和物理块地址的示图。与图5的示例不同,图6和图7是示出当逻辑段和物理块地址之间存在未对准时恢复对准状态的示图。
参考图6,存储设备100可以将第一至第四物理块地址PPN1至PPN4顺序地分配给第一物理块地址PB1。之后,在存储设备100的非易失性存储器130中发生内部事件,并且在某个存储块(例如,图1的第一存储块BLK1)中生成第一物理虚拟区域。因此,在第一物理块地址PB1中生成第一物理虚拟地址区域PDA_1。例如,当在第一存储块BLK1中编程操作失败或者要存储在第一存储块BLK1中的数据迁移到另一个存储块时,在对应于第一物理块BLK1的第一物理块地址PB1中生成第一物理虚拟地址区域PDA_1。在图6中,第一物理虚拟地址区域PDA_1被示出为包括四个物理地址,但不限于此,即,与第一物理虚拟地址区域PDA_1相对应的物理地址的数量可以变化。
由于在第一物理块地址PB1中生成第一物理虚拟地址区域PDA_1,所以第五至第八物理页地址PPN5至PPN8未被分配给第一物理块地址PB1,而是被分配给第二物理块地址PB2。因此,第一逻辑段LS1和第一物理块地址PB1彼此未对准。
在实施例中,主机设备200在第二逻辑段LS2开始的点处,即,当第九逻辑页地址LPN9被分配给第二逻辑段LS2时,将对准命令发送到存储设备100。例如,主机设备200可以将对准命令与第九逻辑页地址LPN9一起发送到存储设备100。
存储设备100可以响应于对准命令,将通过转换第九逻辑页地址LPN9而获得的第九物理页地址PPN9分配给第三物理块地址PB3(即,新的物理块地址)。例如,新的物理块地址可以标识空闲块。因此,第二逻辑段LS2与第三物理块地址PB3对准,并且主机设备200的逻辑段与存储设备100的物理块地址之间的对准状态被恢复。
由于存储设备100的对准操作,可以在第二物理块地址PB2中生成第二物理虚拟地址区域PDA_2。在非易失性存储器中,可以在与第二物理虚拟地址区域PDA_2对应的存储块(例如,第二存储块BLK2)中生成第二物理虚拟区域。例如,由于存储块的与第二物理块地址PB2相关联的一部分已经被写入,并且存储块的其余部分被跳过了,因此第二逻辑段LS2可以与第一物理块地址PB3对准,可以在所述其余部分中生成第二物理虚拟地址区域PDA_2。
参考图7,主机设备200可以通过使用日志结构***来管理一些数据,并且可以在分开的区域中管理其他一些数据。例如,可以在日志结构***中管理用户数据,并且可以在分开的区域中管理由于用户数据而生成的元数据。因此,主机设备200可以在日志结构***中(附加)或者以日志结构***的异常方式(就地)管理逻辑地址。
主机设备200可以将以日志结构的方式管理的第一至第八逻辑页地址LPN1至LPN8顺序地分配给第一逻辑段LS1。存储设备100从主机设备200接收第一至第八逻辑页地址LPN1至LPN8,并且可以将对应于第一至第八逻辑页地址LPN1至LPN8的第一至第八物理页地址PPN1至PPN8顺序地分配给第一物理块地址PB1。
之后,主机设备200可以将以日志结构***的异常方式(就地)管理的多个逻辑页地址LPNm1至LPNm4分配给异常逻辑段LSm。在日志结构***中存储数据的存储设备100从主机设备200接收多个逻辑页地址LPNm1至LPNm4,并且可以将多个物理页地址PPNm1至PPNm4顺序地分配给第二物理块地址PB2。
主机设备200可以将在日志结构***中管理的第九至第十六逻辑页地址LPN9至LPN16顺序地分配给第二逻辑段LS2。主机设备200可以在第二逻辑段LS2开始的点处,即,当第九逻辑页地址LPN9被分配给第二逻辑段LS2时,将对准命令发送到存储设备100。存储设备100可以响应于对准命令,将通过转换第九逻辑页地址LPN9而获得的第九物理页地址PPN9(分配给第三物理块地址PB3,即,新的物理块地址。因此,第二逻辑段LS2可以与第三物理块地址PB3对准。
由于存储设备100的对准操作,可以在第二物理块地址PB2中生成第二物理虚拟地址区域PDA_2。在非易失性存储器中,可以在与第二物理虚拟地址区域PDA_2相对应的存储块(例如,第二存储块BLK2)中生成第二物理虚拟区域。
参考图6和图7,在根据本发明构思的实施例的存储***10中,即使当由于存储设备100或由于主机设备200而发生未对准时,主机设备200也提供对准命令以恢复对准状态。图6和图7示出了示例性情形,并且根据实施例的操作存储***10的方法可以被用在附图中未示出的未对准情形中。
图8是示出根据本发明构思的示例性实施例的操作存储***10的方法的流程图。图8是示出图3中的操作S110的示例的流程图。
参考图8,在操作S111中,存储设备100确定存储设备100的非易失性存储器中包括的物理虚拟区域的大小是否超过参考值。在一个实施例中,物理虚拟区域可以包括图6的第一物理虚拟区域(例如,由第一物理虚拟地址区域PDA_1指示的区域)和第二物理虚拟区域(例如,由第二物理虚拟地址区域PDA_2指示的区域),并且可以包括图7的第二物理虚拟区域(例如,由第二物理虚拟地址区域PDA_2指示的区域)。也就是说,由于非易失性存储器的内部问题,物理虚拟区域可以包括第一物理虚拟区域,并且由于存储设备100的对准操作,物理虚拟区域可以包括第二物理虚拟区域。
在一个实施例中,参考值可以与非易失性存储器的总存储空间中的未写入数据的物理虚拟区域的大小相对于写入数据的区域的大小的比率相关。例如,可以确定参考值,使得在非易失性存储器的总存储空间中未写入数据的物理虚拟区域的大小与写入数据的区域的大小之间的比率可以保持在一定水平或更低。也就是说,随着非易失性存储器中的写入数据的区域增加,参考值也可以增加。可以预先确定未写入数据的物理虚拟区域的大小相对于写入数据的区域的大小的比率的上限。
当物理虚拟区域未超过参考值时,存储设备100执行操作S112。在操作S112中,存储设备100关闭在先前操作中已经分配的物理块地址,即,关闭开放的物理块地址。因此,在对应于关闭的物理块地址的存储块中,不进一步执行写入操作。
在操作S113中,存储设备100将物理地址分配给新的物理块地址。例如,存储设备100可以将第一物理页地址(例如,图5的PPN1)分配给第一物理块地址(例如,图5的PB1)。因此,作为用于管理主机设备200中的逻辑地址的单元的逻辑段的起始点可以对应于作为用于管理存储设备100中的物理地址的单元的物理块地址的起始点。
当物理虚拟区域超过参考值时,存储设备100执行操作S114。在操作S114中,存储设备100忽略对准命令。存储设备100可以连续地将物理地址分配给在先前操作中分配的物理块地址,即,开放的物理块地址。
当执行将逻辑段与物理块地址对准的操作时,根据至少一个实施例的存储***10可以考虑存储设备100中的非易失性存储器的存储空间。因此,在将主机设备200的垃圾收集单元与存储设备100的垃圾收集单元对准的同时,可以防止未写入数据的物理虚拟区域的大小过度增加。
图9是根据本发明构思的示例性实施例的存储***10a的框图。在图9中,将省略关于与图1的元件相同的元件的详细描述。
参考图9,存储***10a包括存储设备100a和主机设备200a。主机设备200a可以控制存储设备100a的操作。
主机设备200a包括处理器210、主机存储器220和接口电路230a。当控制存储设备100a的垃圾收集时,主机设备200a可以以逻辑段为单位管理逻辑地址ADDR_L。
在示例性实施例中,当经由接口电路230a从存储设备100a接收到未对准信号SMA时,主机设备200a执行对准操作,所述对准操作用于将主机设备200a的逻辑段与存储设备100a的物理块地址对准。在一个实施例中,主机设备200a可以将逻辑地址分配给新的逻辑段,或者主机设备200a可以基于未对准信号SMA确保逻辑虚拟区域。下面将参考图10和图11描述主机设备200a的对准操作。
存储设备100a包括存储控制器110a(例如,控制电路)、缓冲存储器120和非易失性存储器130。存储设备100a可以访问非易失性存储器130或者可以响应于从主机设备200a提供的命令CMD而执行所请求的操作。图9的存储控制器110a的配置和操作可以类似于图2的存储控制器110的配置和操作。
存储设备100a可以执行垃圾收集。存储设备100a可以以存储块(即,擦除单元)为单位执行垃圾收集,并且可以以物理块地址为单位管理物理地址以对应于存储块。在示例性实施例中,当主机设备200a的逻辑段与存储设备100a的物理块地址未对准时,存储设备100a将用于通知未对准状态的未对准信号SMA传递到主机设备200a。
当逻辑段由于存储设备100a而与物理块地址未对准时,根据实施例的存储***10a生成未对准信号SMA,使得逻辑段单元和物理块地址单元可以彼此对准。因此,即使当主机设备200a不控制存储设备100a以进行垃圾收集时,也可以减少在存储设备100a中单独执行垃圾收集的次数。
图10是示出根据本发明构思的示例性实施例的操作存储***10a的方法的流程图。
参考图10,存储设备100a的物理块地址可能与主机设备200a的逻辑段未对准,并且在操作S10中,存储设备100a可以检测到未对准。例如,存储设备100a可以在分配物理地址时生成物理虚拟地址区域。例如,当在第一存储块(例如,图9的BLK1)中编程操作失败或者要存储在第一存储块BLK1中的数据迁移到另一个存储块时,可以在对应于第一存储块BLK1的第一物理块地址中生成物理虚拟地址区域,并且可能发生未对准。
在操作S20中,存储设备100a将未对准信号SMA发送到主机设备200a。在一个实施例中,未对准信号SMA包括关于是否发生未对准的信息。
在操作S210a中,主机设备200a接收未对准信号SMA并检测未对准的发生,然后将逻辑地址分配给新的逻辑段。在操作S220a中,主机设备200a将写入命令和逻辑地址发送到存储设备100a。例如,逻辑地址可以是新的逻辑段的第一逻辑地址。在一个实施例中,与图10中所示的示例不同,主机设备200a可以另外将写入命令与对准命令一起发送到存储设备100a。这里,对准命令可以是与写入命令分开提供给存储设备100a的命令,或者可以包括在写入命令中。
在操作S110a中,存储设备100a将逻辑地址转换为物理地址,并将物理地址分配给新的物理块地址。因此,作为用于管理主机设备200a中的逻辑地址的单元的逻辑段的起始点可以对应于作为用于管理存储设备100a中的物理地址的单元的物理块地址的起始点。
在操作S120a中,存储设备100a在与在操作S110a中分配的物理块地址相对应的新的物理块中执行写入操作。
图11是示出根据本发明构思的示例性实施例的操作存储***10a的方法的流程图。图12是用于说明图11的操作存储***10a的方法的逻辑段和物理块地址的示图。图12是示出主机设备200a中的逻辑地址的分区区域和存储设备100a中的物理地址的分区区域的概念图。
参考图11和图12,存储设备100a的物理块地址与主机设备200a的逻辑段未对准,并且在操作S10中,存储设备100a检测到未对准。例如,尽管主机设备200a发送写入命令和第五至第七逻辑页地址LPN5至LPN7,但是由于在存储设备100a中产生的原因,在与第一物理块地址PB1相对应的第一存储块(例如,图9的第一存储块BLK1)中不执行写入操作。因此,在第一物理块地址PB1中生成与不执行写入操作的页相对应的第一物理虚拟地址区域PDA_1,并且存储设备100a检测到发生了未对准。
在操作S20b中,存储设备100a将未对准信号(例如,图9的SMA)发送到主机设备200a。在一个实施例中,未对准信号SMA包括关于引起未对准的物理虚拟地址区域的大小的信息。例如,未对准信号SMA可以包括指示第一物理虚拟地址区域PDA_1包括四个物理页地址的大小信息。
在操作S210b中,主机设备200a基于未对准信号SMA中包括的物理虚拟地址区域的大小信息来确保逻辑虚拟地址区域。在一个实施例中,主机设备200a确保逻辑虚拟区域对应于物理虚拟地址区域的大小。例如,基于指示第一物理虚拟地址区域PDA_1包括四个物理页地址的大小信息,主机设备200a可以确保包括四个逻辑页地址的逻辑虚拟地址区域LDA。例如,逻辑虚拟地址区域LDA可以填充第一逻辑段LS1的剩余部分和第二逻辑段LS2的一部分。
根据主机设备200a中的操作S210b,第三逻辑段LS3与第三物理块地址PB3对准,并且主机设备200a的逻辑段与存储设备100a的物理块地址之间的对准状态被恢复。这里,逻辑虚拟地址区域是概念性虚拟区域,因此可以不在存储器设备中实际生成虚拟区域。
在操作S30中,存储设备100a将对应于排队写入命令的物理地址连续地分配给物理虚拟地址区域。也就是说,可以连续地执行尚未执行的写入操作。例如,由于存储设备100a尚未对第五至第七逻辑页地址LPN5至LPN7中的每一个执行写入操作,因此对应于第五至第七逻辑页地址LPN5至LPN7的写入命令可以在存储设备100a的存储器控制器的命令队列中排队。因此,存储设备100a可以将通过转换第五至第七逻辑页地址LPN5至LPN7而获得的第五至第七物理页地址PPN5至PPN7连续地分配给第一物理虚拟地址区域PDA_1。
在操作S40中,存储设备100a在与在操作S30中分配的物理地址相对应的区域中执行写入操作。例如,可以在与第五至第七物理页地址PPN5至PPN7相对应的页中写入数据。在一个实施例中,可以将由存储设备100a执行的操作S30和操作S40与由主机设备200a执行的操作S210b并行地执行。
当发生未对准时,根据实施例的存储设备100a向主机设备200a提供包括物理虚拟地址区域的大小信息的未对准信号SMA,使得对应于物理虚拟地址区域的逻辑虚拟地址区域LDA可以被确保。因此,当存储设备100a将物理地址分配给新的物理块地址以便将逻辑段与物理块地址对准时,可以防止物理虚拟地址区域的额外生成。根据实施例的存储***可以将主机设备200a的垃圾收集单元与存储设备100a的垃圾收集单元对准,并且同时可以防止未写入数据的物理虚拟区域在大小方面过度地增加。
图13是示出根据实施例的用户设备的存储设备应用于存储卡的示例的示图。
参考图13,存储卡***1000包括主机1100(例如,主机设备)和存储卡1200。存储卡***1000可以是图1或图9中所示的存储***10或10a。主机1100可以是图1或图9中所示的主机设备200或200a,并且存储卡1200可以是图1或图9中所示的存储设备100或100a。
主机1100包括主机控制器1110(例如,控制电路)和主机连接单元1120(例如,连接电路)。存储卡1200包括卡连接单元1210(例如,连接电路)、卡控制器1220(例如,控制电路)和闪存1230。
主机1100可以在存储卡1200中写入数据或者读取存储在存储卡1200中的数据。主机控制器1110可以经由主机连接单元1120发送命令(例如,写入命令)、由主机1100中的时钟发生器生成的时钟信号CLK、和数据DAT到存储卡1200。
卡控制器1220可以响应于通过卡连接单元1210发送的写入命令,与由卡控制器1220中的时钟发生器生成的时钟信号CLK同步地将数据DAT存储在闪存1230中。闪存1230可以存储从主机1100发送的数据DAT。例如,当主机1100是数字相机时,闪存1230可以存储图像数据。
图14是示出根据实施例的存储设备应用于固态驱动器(SSD)2200的示例的框图。
参考图14,SSD***2000包括主机2100(例如,主机设备)和SSD 2200。SSD***2000可以是图1或图9中所示的存储***10或10a,主机2100可以是图1或图9中所示的主机设备200或200a,并且SSD 2200可以是图1或图9中所示的存储设备100或100a。
SSD 2200经由信号连接器2211与主机2100交换信号,并经由电力连接器2221接收电力输入。SSD 2200包括多个非易失性存储器2201至220n、SSD控制器2210和辅助电力设备2220(例如,电源)。多个非易失性存储器2201至220n可以用作SSD 2200的存储介质。除了非易失性存储器之外,SSD 2200可以包括诸如PRAM、MRAM、ReRAM、FRAM的非易失性存储器设备。多个非易失性存储器2201至220n可以经由多个通道CH1至CHn连接至SSD控制器2210。非易失性存储器2201至220n可以是闪存。一个或多个闪存可以连接到一个通道。连接到一个通道的一个或多个闪存可以连接到相同的数据总线。
SSD控制器2210可以经由信号连接器2211与主机2100交换信号SGL。这里,信号SGL可以包括命令、地址或数据。SSD控制器2210可以根据来自主机2100的命令将数据写入相应的闪存或者从相应的闪存中读取数据。
辅助电力设备2220可以经由电力连接器2221连接到主机2100。辅助电力设备2220可以从主机2100接收电力PWR以进行充电。虽然辅助电力设备2220被示为位于SSD 2200中,但是在替代实施例中,辅助电力设备2220位于SSD 2200外部。例如,辅助电力设备2220可以位于主板上以向SSD 2200提供辅助电力。
尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是应当理解,在不脱离本发明构思的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (24)
1.一种包括非易失性存储器的存储设备,所述非易失性存储器包括多个存储块,
其中,所述存储设备被配置为响应于对准命令、逻辑段的逻辑地址和写入数据的接收而执行对准操作,
其中,所述对准操作将逻辑地址转换为物理地址,并当所述写入数据的后续写入会引起写入数据要被写入存储块当中的未空闲的第一存储块时,所述对准操作将所述物理地址分配给存储块当中的空闲的第二存储块的物理块地址,并且
其中,所述存储设备还被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。
2.如权利要求1所述的存储设备,被配置为使用日志结构***来分配所述物理地址。
3.如权利要求1所述的存储设备,被配置为当包括在所述非易失性存储器中的物理虚拟区域等于或小于参考值时执行所述对准操作。
4.如权利要求3所述的存储设备,其中,所述物理虚拟区域包括由于所述非易失性存储器的写入操作中的错误而生成的第一物理虚拟区域和由于所述对准操作而生成的第二物理虚拟区域。
5.如权利要求3所述的存储设备,其中,所述参考值是根据在所述非易失性存储器的总存储空间中的所述物理虚拟区域的大小相对于写入数据的区域的大小的比率来确定的。
6.如权利要求3所述的存储设备,被配置为当包括在所述非易失性存储器中的所述物理虚拟区域超过参考值时忽略所述对准命令。
7.如权利要求1所述的存储设备,其中,所述对准命令包括在写入命令中。
8.如权利要求1所述的存储设备,还包括:主机接口,被配置为接收写入命令和所述对准命令,
其中所述主机接口分开接收所述写入命令和所述对准命令。
9.如权利要求1所述的存储设备,被配置为当在所述物理块地址中出现物理虚拟地址区域时输出未对准信号。
10.一种包括非易失性存储器的存储设备,所述非易失性存储器包括多个存储块,
其中,当不能在物理块地址中存储第一大小的数据时,所述存储设备在存储块当中的具有所述物理块地址的第一存储块创建所述第一大小的物理虚拟地址区域,
其中,所述存储设备基于所创建的物理虚拟地址区域输出指示所述物理块地址与逻辑段的未对准的未对准信号,所述未对准信号指示所创建的物理虚拟地址区域中包含的物理页地址的数量,并且
其中,所述存储设备被配置为以指示一个存储块的物理块地址为单位执行垃圾收集。
11.如权利要求10所述的存储设备,被配置为使用日志结构***来分配物理地址。
12.如权利要求10所述的存储设备,其中,所述未对准信号包括关于所述物理虚拟地址区域的第一大小的信息。
13.如权利要求10所述的存储设备,还包括命令队列,写入命令在所述命令队列中排队,并且所述存储设备被配置为基于在所述命令队列中排队的写入命令将物理地址连续地分配给所述物理虚拟地址区域。
14.如权利要求10所述的存储设备,被配置为从外部接收对准命令,并响应于所述对准命令将物理地址分配给新的物理块地址。
15.如权利要求14所述的存储设备,还包括:主机接口,被配置为接收写入命令和所述对准命令,
其中所述主机接口分开接收所述写入命令和所述对准命令。
16.如权利要求14所述的存储设备,其中,所述对准命令被包括在写入命令中。
17.一种存储***,包括:
存储设备,包括非易失性存储器,所述非易失性存储器包括多个存储块,所述存储设备被配置为以指示一个存储块的物理块地址为单位执行垃圾收集;和
主机设备,被配置为以逻辑段为单位控制所述存储设备中的垃圾收集,
其中,当所述逻辑段的起始点与所述物理块地址的起始点未对准时,所述存储设备将未对准信号发送到所述主机设备,
其中,所述未对准信号指示引起未对准的物理块地址的物理虚拟地址区域中包含的物理页地址的数量。
18.如权利要求17所述的存储***,其中,当接收到所述未对准信号时,所述主机设备将逻辑地址分配给新的逻辑段。
19.如权利要求18所述的存储***,其中,所述主机设备向所述存储设备提供写入命令、对准命令和分配给所述新的逻辑段的所述逻辑地址,以及
所述存储设备响应于所述对准命令,分配物理地址以将所述新的逻辑段的起始点与物理块地址的起始点对准。
20.如权利要求17所述的存储***,其中,所述未对准是由包括在所述物理块地址中的物理虚拟地址区域引起的,并且
所述未对准信号包括关于所述物理虚拟地址区域的大小的信息。
21.如权利要求20所述的存储***,其中,所述主机设备基于所述未对准信号确保与所述物理虚拟地址区域的大小相对应的逻辑虚拟地址区域。
22.如权利要求21所述的存储***,其中,所述存储设备还包括命令队列,写入命令在所述命令队列中排队,并且
所述主机设备的确保所述逻辑虚拟地址区域的操作和所述存储设备响应于在所述命令队列中排队的写入命令的、写入数据的操作彼此并行地执行。
23.如权利要求17所述的存储***,其中所述多个存储块中的每一个包括多个页,
逻辑页地址和物理页地址分别指示相应的页,并且
包括在所述逻辑段中的逻辑页地址的数量等于包括在所述物理块地址中的物理页地址的数量。
24.如权利要求17所述的存储***,其中,所述主机设备选择用于控制所述垃圾收集的逻辑段,并将用于执行所述垃圾收集的多个命令发送到所述存储设备,以及
所述存储设备接收用于执行所述垃圾收集的所述多个命令,并对与所选择的逻辑段对应的存储器块执行所述垃圾收集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180141947A KR20200057473A (ko) | 2018-11-16 | 2018-11-16 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
KR10-2018-0141947 | 2018-11-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198825A CN111198825A (zh) | 2020-05-26 |
CN111198825B true CN111198825B (zh) | 2024-04-19 |
Family
ID=70727257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911074992.1A Active CN111198825B (zh) | 2018-11-16 | 2019-11-06 | 存储设备和包括存储设备的存储*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US11341043B2 (zh) |
KR (1) | KR20200057473A (zh) |
CN (1) | CN111198825B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10901912B2 (en) * | 2019-01-28 | 2021-01-26 | Western Digital Technologies, Inc. | Flash translation layer table for unaligned host writes |
CN113868148B (zh) * | 2020-06-30 | 2024-04-09 | 华为技术有限公司 | 一种数据写入的方法及装置 |
KR20230025043A (ko) * | 2021-08-13 | 2023-02-21 | 울산과학기술원 | 플래시 메모리 기반 ssd의 성능과 수명 개선을 위한 데이터 이동횟수에 따른 수명별 데이터 분류방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105009094A (zh) * | 2013-03-05 | 2015-10-28 | 西部数据技术公司 | 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和*** |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860197A (en) * | 1987-07-31 | 1989-08-22 | Prime Computer, Inc. | Branch cache system with instruction boundary determination independent of parcel boundary |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5889997A (en) * | 1997-05-30 | 1999-03-30 | Hewlett-Packard Company | Assembler system and method for a geometry accelerator |
JP4356686B2 (ja) | 2005-12-01 | 2009-11-04 | ソニー株式会社 | メモリ装置及びメモリ制御方法 |
US20080189501A1 (en) * | 2007-02-05 | 2008-08-07 | Irish John D | Methods and Apparatus for Issuing Commands on a Bus |
US8392687B2 (en) * | 2009-01-21 | 2013-03-05 | Micron Technology, Inc. | Solid state memory formatting |
KR101854200B1 (ko) * | 2011-04-27 | 2018-06-20 | 시게이트 테크놀로지 엘엘씨 | 데이터 라이트 방법 및 이를 적용한 저장 장치 |
JP5708216B2 (ja) | 2011-05-09 | 2015-04-30 | ソニー株式会社 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
JP5949122B2 (ja) | 2012-05-11 | 2016-07-06 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
US20140136575A1 (en) | 2012-11-10 | 2014-05-15 | Yuanyuan Zhao | Log-structured garbage collection |
JP6255893B2 (ja) * | 2013-10-24 | 2018-01-10 | 富士通株式会社 | ストレージ制御装置、およびストレージ制御プログラム |
US9466383B2 (en) | 2013-12-30 | 2016-10-11 | Sandisk Technologies Llc | Non-volatile memory and method with adaptive logical groups |
US9582204B2 (en) * | 2014-01-07 | 2017-02-28 | Apple Inc. | Speculative prefetching of data stored in flash memory |
US9448924B2 (en) | 2014-01-08 | 2016-09-20 | Netapp, Inc. | Flash optimized, log-structured layer of a file system |
KR20150138528A (ko) | 2014-05-29 | 2015-12-10 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법 |
US10482012B1 (en) * | 2014-12-31 | 2019-11-19 | Storone Ltd. | Storage system and method of operating thereof |
KR102570367B1 (ko) | 2016-04-21 | 2023-08-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치를 액세스하는 액세스 방법 |
US10685148B2 (en) * | 2016-07-26 | 2020-06-16 | Mitek Holdings, Inc. | Design-model management using an architectural criterion |
-
2018
- 2018-11-16 KR KR1020180141947A patent/KR20200057473A/ko not_active Application Discontinuation
-
2019
- 2019-08-16 US US16/543,093 patent/US11341043B2/en active Active
- 2019-11-06 CN CN201911074992.1A patent/CN111198825B/zh active Active
-
2022
- 2022-05-10 US US17/740,927 patent/US20220269602A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105009094A (zh) * | 2013-03-05 | 2015-10-28 | 西部数据技术公司 | 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和*** |
Non-Patent Citations (1)
Title |
---|
GFTL:一种基于页组映射的低能耗闪存转换层;白石;赵鹏;;中国科技论文在线(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220269602A1 (en) | 2022-08-25 |
US20200159656A1 (en) | 2020-05-21 |
KR20200057473A (ko) | 2020-05-26 |
CN111198825A (zh) | 2020-05-26 |
US11341043B2 (en) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019602B2 (en) | Key-value storage device and operating method thereof | |
KR20210039871A (ko) | 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US10942677B2 (en) | Method for performing access management of memory device, associated memory device and controller thereof, associated host device and associated electronic device | |
CN111198825B (zh) | 存储设备和包括存储设备的存储*** | |
KR20150138528A (ko) | 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법 | |
KR20190102781A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
KR20190063054A (ko) | 메모리 시스템 및 이의 동작 방법 | |
KR20140078893A (ko) | 데이터 저장 장치의 동작 방법 | |
KR102595233B1 (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
KR20130040486A (ko) | 저장 장치 및 그것을 이용하는 사용자 장치 | |
KR20210144249A (ko) | 저장 장치 및 이의 동작 방법 | |
KR20190118016A (ko) | 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
CN110389907B (zh) | 电子装置 | |
KR20210038753A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
KR20190006677A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN115458013A (zh) | 存储装置及其操作方法 | |
US11366751B2 (en) | Storage device and storage control method | |
KR20200029085A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US10963399B2 (en) | Memory system, computing apparatus and operation method thereof | |
KR20190095825A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20200201563A1 (en) | Data storage device and method of operating the same | |
US20190361608A1 (en) | Data storage device and operation method for recovery, and storage system having the same | |
KR102649657B1 (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
KR20210142863A (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 |