CN111309648A - 存储装置及其操作方法 - Google Patents
存储装置及其操作方法 Download PDFInfo
- Publication number
- CN111309648A CN111309648A CN201910917180.2A CN201910917180A CN111309648A CN 111309648 A CN111309648 A CN 111309648A CN 201910917180 A CN201910917180 A CN 201910917180A CN 111309648 A CN111309648 A CN 111309648A
- Authority
- CN
- China
- Prior art keywords
- namespace
- logical address
- address space
- region
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 128
- 238000013507 mapping Methods 0.000 claims abstract description 108
- 230000004044 response Effects 0.000 claims abstract description 9
- 238000004891 communication Methods 0.000 claims description 3
- 230000003068 static effect Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 15
- 102100023215 Dynein axonemal intermediate chain 7 Human genes 0.000 description 9
- 101000907337 Homo sapiens Dynein axonemal intermediate chain 7 Proteins 0.000 description 9
- 101001008515 Homo sapiens Ribosomal biogenesis protein LAS1L Proteins 0.000 description 9
- 101001023359 Homo sapiens Lung adenoma susceptibility protein 2 Proteins 0.000 description 6
- 102100035138 Lung adenoma susceptibility protein 2 Human genes 0.000 description 6
- 101100111302 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) BCK1 gene Proteins 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 206010067959 refractory cytopenia with multilineage dysplasia Diseases 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 101000589301 Homo sapiens Natural cytotoxicity triggering receptor 1 Proteins 0.000 description 2
- 102100032870 Natural cytotoxicity triggering receptor 1 Human genes 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 101000589305 Homo sapiens Natural cytotoxicity triggering receptor 2 Proteins 0.000 description 1
- 101000589307 Homo sapiens Natural cytotoxicity triggering receptor 3 Proteins 0.000 description 1
- 102100032851 Natural cytotoxicity triggering receptor 2 Human genes 0.000 description 1
- 102100032852 Natural cytotoxicity triggering receptor 3 Human genes 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 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/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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
Abstract
公开了一种存储装置及其操作方法。一种操作具有存储器的存储装置的方法包括:基于参考大小将第一命名空间的整个区域划分为至少一个区域。划分的步骤响应于来自主机的命名空间创建请求而被执行,其中,命名空间创建请求包括与第一命名空间的整个区域对应的大小信息。所述方法还包括:将存储器的逻辑地址空间划分为多个段,将所述多个段中的第一段分配给所述至少一个区域中的第一区域,并存储第一区域与第一段的映射信息。逻辑地址空间的大小大于由主机识别的存储器的物理存储空间的大小。
Description
本申请要求于2018年12月12日提交到韩国知识产权局的第10-2018-0160221号韩国专利申请的优先权,所述韩国专利申请的公开通过整体引用包含于此。
技术领域
在此描述的一个或多个实施例涉及一种半导体存储器和用于操作半导体存储器的方法。
背景技术
半导体存储器可被分类为易失性存储器或非易失性存储器。在易失性存储器中,当电源关闭时丢失存储的数据。在非易失性存储器中,当电源关闭时保持存储的数据。
包括存储器的一些存储装置支持命名空间功能。例如,为了支持主机的操作,利用一个物理装置实现的存储装置可被划分为多个逻辑装置(例如,命名空间)。然后,主机可基于命名空间来管理数据。
在一些情况下,主机可能期望创建不同大小的命名空间。然而,并非所有存储装置都能够支持不同大小的命名空间。此外,支持不同大小的命名空间的存储装置的成本是显著的。当增大存储装置的存储器的大小以便顾及多个命名空间的管理时,会增加成本。
发明内容
发明构思的一个或多个实施例提供一种存储装置和相关联的操作方法,其中,所述存储装置和相关联的操作方法可在使成本的增加降低或最小化的同时支持各种大小的命名空间。
根据一个或多个实施例,一种操作具有存储器的存储装置的方法包括:基于参考大小将第一命名空间的整个区域划分为至少一个区域,划分的步骤响应于来自主机的命名空间创建请求而被执行,命名空间创建请求包括与第一命名空间的整个区域对应的第一命名空间的大小信息;将存储器的逻辑地址空间划分为多个段;将所述多个段中的第一段分配给所述至少一个区域中的第一区域;以及存储第一区域与第一段的映射信息,其中,逻辑地址空间的大小大于由主机识别的存储器的物理存储空间的大小。
根据一个或多个实施例,一种操作包括存储器的存储装置的方法包括:基于参考大小将第一命名空间的整个区域划分为至少一个区域,划分的步骤响应于来自主机的命名空间创建请求而被执行,命名空间创建请求包括与第一命名空间的整个区域对应的第一命名空间的大小信息;当所述至少一个区域中的第一区域小于参考大小时,扩展存储器的逻辑地址空间;将扩展的逻辑地址空间中的第一逻辑地址空间分配给第一区域;以及存储第一区域与分配的第一逻辑地址空间的映射信息。
根据一个或多个实施例,一种存储装置包括:存储器;地址映射管理器,被配置为管理基于参考大小划分为多个段的逻辑地址空间;命名空间管理器,被配置为基于参考大小将第一命名空间的整个区域划分为至少一个区域,命名空间管理器被配置为响应于来自主机的命名空间创建请求而划分第一命名空间的整个区域,命名空间创建请求包括与第一命名空间的整个区域对应的大小信息,命名空间管理器还被配置为将所述至少一个区域中的第一区域分配给所述多个段中的第一段;以及段映射表,被配置为存储第一区域与第一段的映射信息,其中,逻辑地址空间大于由主机识别的存储器的物理存储空间。
附图说明
通过参照附图详细描述发明构思的示例性实施例,发明构思的以上和其他目的和特征将变得清楚。
图1示出存储系统的实施例。
图2示出存储器控制器的实施例。
图3示出创建命名空间的方法的实施例。
图4示出用于描述图3的方法的操作的示例。
图5示出用于描述图3的方法的操作的另一示例。
图6示出用于描述图3的方法的操作的另一示例。
图7示出创建命名空间的方法的另一实施例。
图8示出用于描述图7的方法的操作的示例。
图9示出在存储装置中执行写入操作的方法的实施例。
图10示出用于描述图9的方法的示例。
图11示出SSD系统的实施例。
具体实施方式
下面,可详细且清楚地描述发明构思的实施例,达到本领域普通技术人员容易地实现发明构思的程度。
图1示出可包括主机100和存储装置200的存储系统1000的实施例。例如,存储系统1000可以是例如台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴装置、电动车辆、服务器系统或使用存储装置200的任何种类的电子装置或电子系统。
主机100可允许存储装置200存储主机100内生成的数据或者从主机100的外部的装置接收的数据。主机100可将作为应用的运行结果而生成的数据存储在存储装置200中。
在主机100的控制下,存储装置200可存储从主机100提供的数据或者可输出存储的数据。例如,存储装置200可按照非易失性存储器快速(NVMe)通信协议与主机100进行通信。在另一实施例中,存储装置200可按照不同的通信协议与主机100进行通信。
存储装置200可包括存储器控制器210和存储器220。存储器控制器210可控制存储器220的操作,并且可基于主机100的请求将来自主机100的数据存储在存储器220中。存储器控制器210可基于主机100的请求将从存储器220输出的数据提供给主机100。
存储器220可在存储器控制器210的控制下进行操作。存储器220的示例包括易失性存储器装置和非易失性存储器装置。易失性存储器装置的示例可包括随机存取存储器(RAM),诸如,静态RAM(SRAM)、动态RAM(DRAM)和同步DRAM(SDRAM)。非易失性存储器装置的示例包括闪存、只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、相变RAM(PRAM)、磁RAM(MRAM),电阻式RAM(RRAM)和铁电RAM(FRAM)。
存储器控制器210可管理存储器220的地址,以便高效地执行存储和输出数据的操作。为了管理存储器220的地址,存储器控制器210可包括地址映射管理器211和地址映射表212。
地址映射管理器211可将存储器220的物理地址分配给由主机100管理的存储器220的地址(例如,逻辑地址)。地址映射管理器211可在地址映射表212中存储并管理逻辑地址与物理地址的映射信息。例如,在为了存储数据的目的而从主机100提供存储器220的逻辑地址和数据的情况下,地址映射管理器211可将存储器220的(数据被存储的)物理地址分配给逻辑地址。地址映射管理器211可将逻辑地址与分配的物理地址的映射信息存储在地址映射表212中。
地址映射表212可存储逻辑地址以及与逻辑地址对应的物理地址。存储在地址映射表212中的一个或多个逻辑地址可对应于逻辑地址空间。在至少一个实施例中,逻辑地址空间可对应于由存储装置200管理的存储器220的逻辑地址指示的逻辑存储空间。
存储器控制器210可支持命名空间功能。在一个实施例中,命名空间可对应于能够被划分为逻辑块(或由逻辑块组成)的存储器220的空间。例如,大小为“n”的命名空间可以是具有从“0”到(n-1)的逻辑块地址(LBA)的逻辑块的集合。在存储器控制器210支持命名空间功能的情况下,主机100可基于存储装置200作为一个物理装置来创建多个命名空间。在这种情况下,每个命名空间可被主机100识别为可存储数据的一个逻辑装置。
为了支持命名空间功能的目的,存储器控制器210可包括命名空间管理器213和段映射表214。命名空间管理器213可分配逻辑地址空间以创建命名空间。例如,命名空间管理器213可分配整个逻辑地址空间的部分逻辑地址空间以创建命名空间。部分逻辑地址空间可对应于地址映射表212的一个或多个逻辑地址。命名空间管理器213可使用分配的逻辑地址空间来管理命名空间。
命名空间管理器213可将整个逻辑地址空间划分为多个段。命名空间管理器213可将划分的段中的一个或多个分配给命名空间。命名空间管理器213可将命名空间与分配的段的映射信息存储在段映射表214中。例如,命名空间管理器213可将分配给命名空间的逻辑地址的段信息存储在段映射表214中。
段映射表214可存储命名空间以及与命名空间对应的段。例如,在第一段至第三段被分配给第一命名空间的情况下,段映射表214可存储第一命名空间与第一段至第三段的映射信息。
如图1中所示,主机100可将命名空间创建请求NCR提供给存储装置200。命名空间大小信息NSI可被包括在命名空间创建请求NCR中。命名空间大小信息NSI可以是指示将被创建的命名空间的大小的信息。例如,命名空间大小信息NSI可指示40GB。在这种情况下,命名空间创建请求NCR可指示40GB的命名空间将被创建。
命名空间管理器213可基于命名空间创建请求NCR来创建命名空间。命名空间管理器213可基于命名空间大小信息NSI来分配段。例如,在命名空间大于参考大小的情况下,命名空间管理器213可基于参考大小将命名空间划分为多个区域,并且可将段分配给每个区域。例如,命名空间管理器213可将两个或更多个段分配给命名空间。在命名空间不大于参考大小的情况下,命名空间管理器213可基于参考大小将命名空间分类为一个区域,并且可将段分配给一个区域。在一个实施例中,命名空间管理器213可将一个段分配给命名空间。参考大小可以是作为与一个段对应的存储器大小的预先设置到存储器控制器210的信息。
命名空间管理器213可将命名空间与分配的段的映射信息存储在段映射表214中。命名空间管理器213可管理每个命名空间的映射信息,以便支持多个命名空间。例如,命名空间管理器213可按照命名空间创建请求NCR的顺序创建命名空间,并且可创建用于从多个命名空间识别特定命名空间的命名空间识别信息。从命名空间管理器213生成的命名空间识别信息可被提供给主机100。这样,主机100可基于提供的命名空间识别信息来使用命名空间。例如,主机100可向存储装置200提供命名空间识别信息,以便访问特定命名空间。在这种情况下,命名空间管理器213可使用段映射表214确定分配给特定命名空间的段(例如,分配的逻辑地址空间)。
如上所述,在存储装置200支持命名空间功能的情况下,主机100可将命名空间创建请求NCR提供给存储装置200。这样,命名空间管理器213可将段单元的逻辑地址空间分配给命名空间,并且可将分配信息存储在段映射表214中。在将逻辑地址空间分配给命名空间之后,存储装置200可向主机100提供命名空间创建完成信号。例如,命名空间创建完成信号可包括命名空间识别信息。
图2示出图1的存储器控制器210的实施例。参照图2,存储器控制器210可包括总线201、处理器202、RAM203、ROM204、主机接口205和存储器接口206。RAM203可包括地址映射管理器211、地址映射表212和段映射表214。主机接口205可包括命名空间管理器213。在一个实施例中,图2的地址映射管理器211、地址映射表212和段映射表214的操作可与参照图1描述的操作基本相同。
总线201被配置为在存储器控制器210的组件之间提供通道。处理器202可控制存储器控制器210的整体操作。
RAM 203可用作存储器控制器210的缓冲存储器、高速缓冲存储器或工作存储器。例如,RAM203可利用DRAM、SRAM、紧密耦合存储器(TCM)、PRAM和闪存中的至少一个来实现。地址映射管理器211可以是加载到RAM203中的软件或固件,并且可由处理器202驱动。例如,地址映射管理器211可由闪存转换层(FTL)来实现,其中,地址映射管理器211执行主机100与存储器220之间的各种管理操作。
例如,地址映射表212可被存储在DRAM或闪存中。例如,段映射表214可被存储在SRAM、TCM或高速缓冲存储器中以用于高速访问。与DRAM或闪存相比,SRAM、TCM或处理器202的高速缓冲存储器可对成本和大小有更大的限制。这样,增大段映射表214的大小可比增大地址映射表212的大小昂贵。将参照图3至图8更全面地描述用于使段映射表214的大小增大减小或最小化的存储器控制器210的操作。
ROM204可存储用于支持存储器控制器210的操作的各种信息。在一个实施例中,信息可包括固件形式的指令。主机接口205可用作主机100与存储器控制器210之间的接口。例如,主机接口205可使用接口协议与主机100进行通信。接口协议的示例包括NVMe接口协议、通用串行总线(USB)、小型计算机系统接口(SCSI)、高速外围组件互连(PCIe)、移动PCIe(M-PCIe)、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)、串行连接SCSI(SAS)、集成驱动电子设备(IDE)、增强型IDE(EIDE)或通用闪存(UFS)。
命名空间管理器213可包括在主机接口205中驱动的软件或固件。命名空间管理器213可基于通过主机接口205从主机100提供的命名空间创建请求NCR,将逻辑地址空间分配给命名空间(例如,如参照图1所述)。根据图2中示出的实施例,命名空间管理器213可被包括在主机接口205中。在一个实施例中,命名空间管理器213可被包括在RAM203或ROM 204中。
存储器控制器210可通过存储器接口206与存储器220通信。例如,存储器控制器210可通过存储器接口206向存储器220提供将被存储的数据,或者可接收存储在存储器220中的数据。
例如,上述的存储器控制器210的组件可以以软件、硬件或它们的组合的形式来实现。在一个实施例中,软件可包括机器代码、固件、嵌入式代码和/或应用软件。硬件可包括电路、电子电路、处理器、集成电路、一个或多个集成电路核、微机电系统(MEMS)或它们的组合。
为了便于描述,将基于存储装置200来描述与命名空间相关联的操作。例如,如参照图1和图2所述,下面将描述的操作可由包括在存储装置200中的各种组件适当地执行。
图3示出创建命名空间的方法的实施例,其中,该方法可由存储装置200部分地执行或完整地执行。参照图1和图3,在操作S101中,存储装置200可从主机100接收命名空间创建请求NCR。在操作S102中,响应于命名空间创建请求NCR,存储装置200可基于参考大小划分命名空间的整个区域,并且可生成特定区域。特定区域可以是在基于参考大小划分命名空间之后剩余的命名空间的区域。当命名空间大于参考大小时,特定区域可以是命名空间的整个区域的部分区域。在这种情况下,特定区域可不大于参考大小。例如,在参考大小为16GB并且命名空间为40GB的情况下,特定区域可以是8GB的部分区域。当命名空间小于参考大小时,特定区域可与命名空间的整个区域相同。例如,在参考大小为16GB并且命名空间为256MB的情况下,特定区域可以是256MB的整个区域。
在操作S103中,存储装置200可确定特定区域是否小于参考大小。当特定区域小于参考大小时,在操作S104中,存储装置200可扩展存储器220的逻辑地址空间。地址映射管理器211可增大地址映射表212的大小以扩展逻辑地址空间。例如,地址映射管理器211可附加地确保存储器(例如,图2的RAM 203)的用于存储地址映射表212的空间。当特定区域不小于参考大小时(例如,当特定区域与参考大小相等时),存储装置200可不扩展存储器220的逻辑地址空间。
在扩展之前,逻辑地址空间可与由主机100识别的存储器220的物理存储空间相等。例如,在由主机100识别的存储器220的物理存储空间是128GB的情况下,逻辑地址空间可以是128GB。扩展的逻辑地址空间可大于由主机100识别的存储器220的物理存储空间。例如,在由主机100识别的存储器220的物理存储空间是128GB的情况下,扩展的逻辑地址空间可大于128GB。
在操作S105中,存储装置200可将逻辑地址空间分配给命名空间。在存储器220的逻辑地址空间在操作S104中被扩展的情况下,存储装置200可基于扩展的逻辑地址空间将逻辑地址空间分配给命名空间。在这种情况下,与一个段对应的逻辑地址空间可被分配给基于参考大小划分的命名空间的每个区域。一个段可指示具有参考大小的逻辑地址空间,例如,具有参考大小的逻辑地址空间可被分配给特定区域。可选地,在一个实施例中,在特定区域小于参考大小的情况下,具有与特定区域相同大小的逻辑地址空间可被分配给特定区域。
在特定区域与参考大小相等并且因此逻辑地址空间不被扩展的情况下,存储装置200可基于未扩展的逻辑地址空间将逻辑地址空间分配给命名空间。在这种情况下,具有与一个段对应的参考大小的逻辑地址空间可被分配给命名空间的每个区域。
在操作S106中,存储装置200可存储分配的逻辑地址空间的段信息。存储装置200可将与命名空间的每个区域对应的段信息存储在段映射表214中。
图4示出用于描述图3的方法的操作的示例。参照图4,主机100可请求存储装置200创建多个命名空间。如图4中所示,主机100可基于由主机100识别的存储器220的128GB的物理存储空间,请求创建40GB的第一命名空间NS1、40GB的第二命名空间NS2和48GB的第三命名空间NS3。主机100可针对每个命名空间向存储装置200提供命名空间创建请求NCR。例如,为了请求创建第一命名空间NS1,主机100可向存储装置200提供包括指示40GB的命名空间大小信息NSI的第一命名空间创建请求NCR1。为了请求创建第二命名空间NS2,主机100可向存储装置200提供包括指示40GB的命名空间大小信息NSI的第二命名空间创建请求NCR2。为了请求创建第三命名空间NS3,主机100可向存储装置200提供包括指示48GB的命名空间大小信息NSI的第三命名空间创建请求NCR3。
存储装置200可基于第一命名空间创建请求NCR1至第三命名空间创建请求NCR3,来创建第一命名空间NS1至第三命名空间NS3。为了创建第一命名空间NS1,存储装置200可基于参考大小(在一个示例中,可假设参考大小是16GB),将第一命名空间NS1的整个区域划分为第一区域NS1_1至第三区域NS1_3。因为第一命名空间NS1的整个区域是40GB并且参考大小是16GB,所以16GB的第一区域NS1_1、16GB的第二区域NS1_2和8GB的第三区域NS1_3可作为划分的结果被创建。第三区域NS1_3可以是基于参考大小划分第一命名空间NS1之后剩余的特定区域。
存储装置200可确定第三区域NS1_3是否小于参考大小。因为8GB的第三区域NS1_3小于16GB的参考大小,所以存储装置200可扩展逻辑地址空间LAS。在逻辑地址空间LAS被扩展之前,逻辑地址空间LAS可以是与存储器220的大小相等的128GB。128GB的逻辑地址空间LAS被划分为第一段SEG[1]至第八段SEG[8],其中,第一段SEG[1]至第八段SEG[8]中的每个可对应于16GB的逻辑地址空间LAS。例如,第一逻辑地址空间LAS1可对应于第一段SEG[1]。存储装置200可附加地确保具有作为参考大小的16GB的第九逻辑地址空间LAS9。第九逻辑地址空间LAS9可对应于第九段SEG[9]。这样,可将128GB的逻辑地址空间LAS扩展到144GB,并且可增大地址映射表212的大小。
存储装置200可基于扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一命名空间NS1。存储装置200可将第二逻辑地址空间LAS2分配给第一区域NS1_1,可将第三逻辑地址空间LAS3分配给第二区域NS1_2,并且可将第九逻辑地址空间LAS9分配给第三区域NS1_3。存储装置200可将添加的第九逻辑地址空间LAS9分配给第三区域NS1_3。在一个实施例中,存储装置200可顺序地将第一逻辑地址空间LAS1至第三逻辑地址空间LAS3分配给第一区域NS1_1至第三区域NS1_3。
存储装置200可将第一区域NS1_1至第三区域NS1_3与分配的逻辑地址空间LAS2、LAS3和LAS9的映射信息存储在段映射表214中。例如,存储装置200可将第二逻辑地址空间LAS2的段信息(例如,第二段SEG[2])存储在段映射表214中,以便对应于第一区域NS1_1。
同样地,为了创建第二命名空间NS2,存储装置200可基于参考大小将第二命名空间NS2的整个区域划分为第一区域NS2_1至第三区域NS2_3。因为第二命名空间NS2的整个区域是40GB并且参考大小是16GB,所以16GB的第一区域NS2_1、16GB的第二区域NS2_2和8GB的第三区域NS2_3可作为划分的结果被创建。第三区域NS2_3可以是基于参考大小划分第二命名空间NS2之后剩余的特定区域。
因为8GB的第三区域NS2_3小于16GB的参考大小,所以存储装置200可附加地扩展根据第一命名空间NS1的创建而扩展的逻辑地址空间LAS。在附加地扩展逻辑地址空间LAS之前,扩展的逻辑地址空间LAS可以是144GB。存储装置200可附加地确保具有作为参考大小的16GB的第十逻辑地址空间LAS10。第十逻辑地址空间LAS10可对应于第十段SEG[10]。这样,可将144GB的逻辑地址空间LAS扩展到160GB,并且可增大地址映射表212的大小。
存储装置200可基于附加地扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第二命名空间NS2。存储装置200可分配除了分配给第一命名空间NS1的逻辑地址空间LAS之外的剩余逻辑地址空间LAS。存储装置200可将第四逻辑地址空间LAS4分配给第一区域NS2_1,可将第六逻辑地址空间LAS6分配给第二区域NS2_2,并且可将第十逻辑地址空间LAS10分配给第三区域NS2_3。存储装置200可将第一区域NS2_1至第三区域NS2_3与分配的逻辑地址空间LAS4、LAS6和LAS10的映射信息存储在段映射表214中。
为了创建第三命名空间NS3,存储装置200可基于参考大小,将第三命名空间NS3的整个区域划分为第一区域NS3_1至第三区域NS3_3。因为第三个命名空间NS3的整个区域是48GB并且参考大小是16GB,所以16GB的第一区域NS3_1、16GB的第二区域NS3_2和16GB的第三区域NS3_3可作为划分的结果被创建。第三区域NS3_3可以是基于参考大小划分第三命名空间NS3之后剩余的特定区域。
因为16GB的第三区域NS3_3与16GB的参考大小相等,所以存储装置200可不附加地扩展逻辑地址空间LAS。存储装置200可基于根据第二命名空间NS2的创建而扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第三命名空间NS3。存储装置200可分配除了分配给第一命名空间NS1和第二命名空间NS2的逻辑地址空间LAS之外的剩余逻辑地址空间LAS。存储装置200可将第一逻辑地址空间LAS1分配给第一区域NS3_1,可将第五逻辑地址空间LAS5分配给第二区域NS3_2,并且可将第七逻辑地址空间LAS7分配给第三区域NS3_3。存储装置200可将第一区域NS3_1至第三区域NS3_3与分配的逻辑地址空间LAS1、LAS5和LAS7的映射信息存储在段映射表214中。
如图4中所示,在使用扩展的逻辑地址空间LAS的情况下,可存在未分配给第一命名空间NS1至第三命名空间NS3的逻辑地址空间LAS。例如,可不分配16GB的第八逻辑地址空间LAS8、8GB的第九逻辑地址空间LAS9和8GB的第十逻辑地址空间LAS10。物理地址可不被分配给与未分配的逻辑地址空间LAS对应的逻辑地址。
如上所述,根据发明构思的实施例,存储装置200可通过扩展逻辑地址空间LAS来支持各种大小的命名空间。在这种情况下,主机100可创建各种大小的命名空间。因此,主机100可基于命名空间高效地使用存储器220。
图4中示出的存储器220可指示由主机100识别的存储器220的物理存储空间。存储器220还可包括未由主机100识别的附加物理存储空间,例如,存储器220可包括除了128GB的存储空间之外的附加存储空间。
在扩展之前,逻辑地址空间LAS可与由主机100识别的存储器220的物理存储空间相等。例如,逻辑地址空间LAS可以是128GB。如上所述,在逻辑地址空间LAS被扩展的情况下,扩展的逻辑地址空间LAS可大于128GB。
在逻辑地址空间LAS未被扩展的情况下,逻辑地址空间LAS可被划分为八个段。在这种情况下,如图4中所示,因为第一命名空间NS1至第三命名空间NS3被划分为九个区域,所以可被分配给第一命名空间NS1至第三命名空间NS3的逻辑地址空间LAS可能不足。在这种情况下,主机100可仅创建与参考大小的倍数对应的命名空间。例如,在一些情况下,主机100可创建的命名空间的大小可受到限制。
在为了支持各种大小的命名空间的目的而将参考大小设置为小(例如,小于特定大小)的情况下,可将命名空间划分为更多区域。在这种情况下,可增大存储与每个区域对应的段信息的段映射表214的大小。例如,如参照图2所述,因为段映射表214被存储在可高速访问的SRAM、TCM或处理器202的高速缓冲存储器中,所以当段映射表214的大小增大时,存储装置200的成本可显著增加。
相比之下,在根据发明构思的实施例的存储装置200的情况下,因为参考大小被设置为使得段映射表214的大小被优化,所以可使存储装置200的成本的增加降低或最小化。
图5示出用于描述图3的方法的操作的另一示例。图5的存储装置200的操作可与参照图4描述的存储装置200的操作相似,但是具有一些差异。
参照图5,主机100可请求存储装置200创建第一命名空间NS1至第三命名空间NS3。为了创建第一命名空间NS1,存储装置200可将第一命名空间NS1划分为16GB的第一区域NS1_1、16GB的第二区域NS1_2和8GB的第三区域NS1_3。因为8GB的第三区域NS1_3小于16GB的参考大小,所以存储装置200可扩展逻辑地址空间LAS。存储装置200可附加地确保与第三区域NS1_3的大小对应的第九逻辑地址空间LAS9,例如,8GB的第九逻辑地址空间LAS9可被附加地确保。这样,可将128GB的逻辑地址空间LAS扩展到136GB,并且可增大地址映射表212的大小。
存储装置200可基于扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一命名空间NS1。在这种情况下,因为添加的第九逻辑地址空间LAS9对应于第三区域NS1_3的大小,所以存储装置200可将添加的第九逻辑地址空间LAS9分配给第三区域NS1_3。存储装置200可将第一区域NS1_1至第三区域NS1_3与分配的逻辑地址空间LAS2、LAS3和LAS9的映射信息存储在段映射表214中。
为了创建第二命名空间NS2,存储装置200可将第二命名空间NS2划分为16GB的第一区域NS2_1、16GB的第二区域NS2_2和8GB的第三区域NS2_3。因为8GB的第三区域NS2_3小于16GB的参考大小,所以存储装置200可附加地扩展逻辑地址空间LAS。存储装置200可附加地确保与第三区域NS2_3的大小对应的第十逻辑地址空间LAS10,例如,8GB的第十逻辑地址空间LAS10可被附加地确保。这样,可将136GB的逻辑地址空间LAS扩展到144GB,并且可增大地址映射表212的大小。
存储装置200可基于附加地扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第二命名空间NS2。在这种情况下,因为添加的第十逻辑地址空间LAS10对应于第三区域NS2_3的大小,所以存储装置200可将添加的第十逻辑地址空间LAS10分配给第三区域NS2_3。存储装置200可将第一区域NS2_1至第三区域NS2_3与分配的逻辑地址空间LAS4、LAS6和LAS10的映射信息存储在段映射表214中。
然后,存储装置200可如参照图4所述创建第三命名空间NS3。例如,存储装置200可基于附加地扩展的逻辑地址空间LAS将逻辑地址空间LAS分配给第三命名空间NS3,并可将关于分配的逻辑地址空间LAS1、LAS5和LAS7的映射信息存储在段映射表214中。
如图5中所示,在命名空间的特定区域小于参考大小的情况下,存储装置200可附加地确保将被分配给特定区域的逻辑地址空间LAS。与参照图4给出的描述不同,存储装置200可基于特定区域的大小来扩展逻辑地址空间LAS。这样,存储装置200可使由于逻辑地址空间LAS的扩展而导致的地址映射表212的大小的增大减小或最小化。
图6示出用于描述图3的方法的操作的另一示例。图6的存储装置200的操作可与参照图4描述的存储装置200的操作相似,但是具有一些差异。
参照图6,主机100可请求存储装置200创建第一命名空间NS1至第三命名空间NS3。如图6中所示,主机100可基于128GB的存储器220,请求创建256MB的第一命名空间NS1、“15GB+768MB”的第二命名空间NS2和112GB的第三命名空间NS3。为了创建第一命名空间NS1,存储装置200可基于16GB的参考大小来划分第一命名空间NS1。由于第一命名空间NS1小于参考大小,因此作为划分的结果而创建的一个区域可与第一命名空间NS1相同,例如,第一命名空间NS1的整个区域可被确定为特定区域。
因为256MB的第一区域NS1小于16GB的参考大小,所以存储装置200可扩展逻辑地址空间LAS。存储装置200可附加地确保具有参考大小的第九逻辑地址空间LAS9,例如,16GB的第九逻辑地址空间LAS9可被附加地确保。这样,可将128GB的逻辑地址空间LAS扩展到144GB,并且可增大地址映射表212的大小。
存储装置200可基于扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一命名空间NS1。存储装置200可将第九逻辑地址空间LAS9分配给第一命名空间NS1。存储装置200可将第一命名空间NS1与分配的逻辑地址空间LAS9的映射信息存储在段映射表214中。
为了创建第二命名空间NS2,存储装置200可基于16GB的参考大小来划分第二命名空间NS2。由于第二命名空间NS2小于参考大小,因此作为划分的结果而创建的一个区域可与第二命名空间NS2相等。例如,第二命名空间NS2的整个区域可被确定为特定区域。
因为“15GB+768MB”的第二区域NS2小于16GB的参考大小,所以存储装置200可附加地扩展逻辑地址空间LAS。存储装置200可附加地确保具有参考大小的第十逻辑地址空间LAS10,例如,16GB的第十逻辑地址空间LAS10可被附加地确保。这样,可将144GB的扩展的逻辑地址空间LAS扩展到160GB,并且可增大地址映射表212的大小。
存储装置200可基于附加地扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第二命名空间NS2。存储装置200可将第十逻辑地址空间LAS10分配给第二命名空间NS2。存储装置200可将第二命名空间NS2与分配的逻辑地址空间LAS10的映射信息存储在段映射表214中。
为了创建第三命名空间NS3,存储装置200可基于参考大小,将第三命名空间NS3的整个区域划分为第一区域NS3_1至第七区域NS3_7。因为第三命名空间NS3的整个区域是112GB并且参考大小是16GB,所以七个区域NS3_1至NS3_7可作为划分的结果被创建。第七区域NS3_7可以是在基于参考大小划分第三命名空间NS3之后剩余的特定区域。
因为16GB的第七区域NS3_7与16GB的参考大小相等,所以存储装置200可不附加地扩展逻辑地址空间LAS。存储装置200可基于根据第二命名空间NS2的创建而扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第三命名空间NS3。例如,存储装置200可顺序地将第一逻辑地址空间LAS1至第七逻辑地址空间LAS7分配给第一区域NS3_1至第七区域NS3_7。存储装置200可将第一区域NS3_1至第七区域NS3_7与分配的逻辑地址空间LAS1至LAS7的映射信息存储在段映射表214中。
如图6中所示,根据发明构思的实施例,存储装置200可支持具有小于参考大小的大小的命名空间。即使将命名空间创建为具有小于参考大小的大小,也不会增大段映射表214的大小。因此,可使存储装置200的成本的增加降低或最小化。
图7示出用于通过图1的存储装置200创建命名空间的方法的另一实施例。参照图1和图7,在操作S111中,存储装置200可扩展存储器220的逻辑地址空间。例如,存储装置200可在初始化操作中扩展存储器220的逻辑地址空间。存储装置200可基于可支持的命名空间的数量来扩展逻辑地址空间。
在至少一个实施例中,可支持的命名空间的数量可对应于能够在存储装置200中创建的命名空间的最大数量,并且可被预先设置到存储装置200。例如,在存储装置200支持三个命名空间的情况下,可附加地确保与三个段对应的逻辑地址空间。在这种情况下,每个段可对应于参考大小。在一个实施例中,在存储装置200支持三个命名空间的情况下,存储装置200可附加地确保与两个段对应的逻辑地址空间。
在操作S112中,存储装置200可从主机100接收命名空间创建请求NCR。在操作S113中,存储装置200可响应于命名空间创建请求NCR而基于参考大小划分命名空间的整个区域。在命名空间大于参考大小的情况下,多个区域可作为划分的结果被创建。在命名空间的大小小于或等于参考大小的情况下,一个区域可作为划分结果被创建,并且可与命名空间的整个区域相同。
在操作S114中,存储装置200可将逻辑地址空间分配给命名空间。存储装置200可基于操作S111中扩展的逻辑地址空间,将逻辑地址空间分配给命名空间。与一个段对应的逻辑地址空间可被分配给基于参考大小划分的命名空间的每个区域。在这种情况下,因为逻辑地址空间基于操作S111中扩展的逻辑地址空间来分配,所以逻辑地址空间不会是不足的。也就是说,与一个段对应的逻辑地址空间可被分配给小于参考大小的命名空间的区域(例如,特定区域)。
在操作S115中,存储装置200可存储分配的逻辑地址空间的段信息。存储装置200可将与命名空间的每个区域对应的段信息存储在段映射表214中。
图8示出用于描述图7的操作的示例。为了说明的目的,在以下描述中,可假设存储装置200支持的命名空间的数量是“3”,但是在另外的实施例中,这样的命名空间的数量可以是不同的。
参照图8,存储装置200可基于可支持的命名空间的数量,来扩展逻辑地址空间LAS。因为(在这个示例中)可支持的命名空间的数量是3,所以存储装置200可扩展与三个段对应的逻辑地址空间LAS9至LAS11。每个段可对应于16GB的参考大小。这样,128GB的逻辑地址空间LAS可被扩展到176GB的逻辑地址空间LAS。
然后,主机100可请求存储装置200创建多个命名空间。如图8中所示,主机100可基于128GB的存储器220,请求创建40GB的第一命名空间NS1、40GB的第二命名空间NS2和48GB的第三命名空间NS3。
为了创建第一命名空间NS1,存储装置200可基于参考大小,将第一命名空间NS1划分为第一区域NS1_1至第三区域NS1_3。存储装置200可基于预先扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一区域NS1_1至第三区域NS1_3。存储装置200可按照各种分配规则来分配逻辑地址空间LAS。例如,如图8中所示,存储装置200可将第二逻辑地址空间LAS2分配给第一区域NS1_1,可将第三逻辑地址空间LAS3分配给第二区域NS1_2,并且可将第九逻辑地址空间LAS9分配给第三区域NS1_3。存储装置200可将第一区域NS1_1至第三区域NS1_3与分配的逻辑地址空间LAS2、LAS3和LAS9的映射信息存储在段映射表214中。
为了创建第二命名空间NS2,存储装置200可基于参考大小,将第二命名空间NS2划分为第一区域NS2_1至第三区域NS2_3。存储装置200可基于预先扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一区域NS2_1至第三区域NS2_3。存储装置200可分配除了分配给第一命名空间NS1的逻辑地址空间LAS之外的剩余逻辑地址空间LAS。例如,如图8中所示,存储装置200可将第四逻辑地址空间LAS4分配给第一区域NS2_1,可将第六逻辑地址空间LAS6分配给第二区域NS2_2,并且可将第十逻辑地址空间LAS10分配给第三区域NS2_3。存储装置200可将第一区域NS2_1至第三区域NS2_3与分配的逻辑地址空间LAS4、LAS6和LAS10的映射信息存储在段映射表214中。
为了创建第三命名空间NS3,存储装置200可基于参考大小,将第三命名空间NS3划分为第一区域NS3_1至第三区域NS3_3。存储装置200可基于预先扩展的逻辑地址空间LAS,将逻辑地址空间LAS分配给第一区域NS3_1至第三区域NS3_3。存储装置200可分配除了分配给第一命名空间NS1和第二命名空间NS2的逻辑地址空间LAS之外的剩余逻辑地址空间LAS。例如,如图8中所示,存储装置200可将第一逻辑地址空间LAS1分配给第一区域NS3_1,可将第五逻辑地址空间LAS5分配给第二区域NS3_2,并且可将第七逻辑地址空间LAS7分配给第三区域NS3_3。存储装置200可将第一区域NS3_1至第三区域NS3_3与分配的逻辑地址空间LAS1、LAS5和LAS7的映射信息存储在段映射表214中。
如上所述,根据发明构思的实施例,存储装置200可基于可支持的命名空间的数量预先扩展逻辑地址空间LAS。在预先扩展逻辑地址空间的情况下,参照图3描述的将命名空间的特定区域的大小与参考大小进行比较并基于比较结果扩展逻辑地址空间LAS的操作可被省略。因此,与图3的操作相比,可简化存储装置200的操作,并且可降低存储装置200的软件或硬件的复杂度。
图9示出图1的存储装置200的写入操作的实施例。存储装置200可基于根据发明构思的实施例创建的命名空间来执行写入操作。
参照图1和图9,在操作S121中,存储装置200可从主机100接收包括地址信息的写入命令。此外,存储装置200可从主机100接收将被写入的数据。地址信息可包括命名空间识别信息以及数据将被写入的命名空间的逻辑地址。
在操作S122中,存储装置200可确定与地址信息对应的段信息。确定的段信息可指示数据将被写入的逻辑地址空间。存储装置200可基于命名空间识别信息和逻辑地址来确定段信息。存储装置200可通过段映射表214确定段信息。
在操作S123中,存储装置200可将物理地址分配给与确定的段信息对应的逻辑地址空间。存储装置200可将逻辑地址与分配的物理地址的映射信息存储在地址映射表212中。数据可被存储在分配的物理地址中。
图10示出用于描述图9的操作的示例。参照图10,存储装置200可包括地址映射表212和段映射表214。地址映射表212的大小可根据第一命名空间NS1至第三命名空间NS3的创建而处于增大状态,段映射表214可存储与每个命名空间对应的段信息。
主机100可基于第一命名空间NS1至第三命名空间NS3执行写入操作。主机100可向存储装置200提供写入命令RCMD和数据DATA。如图10中所示,写入命令RCMD可包括指示第一命名空间NS1的命名空间识别信息NS1和作为地址信息的逻辑块地址LBA201。例如,主机100可向存储装置200提供用于将数据DATA存储在第一命名空间NS1的逻辑块地址LBA201的写入命令RCMD。
存储装置200可基于写入命令RCMD确定与地址信息对应的段信息。存储装置200可通过段映射表214确定与第一命名空间NS1的逻辑块地址LBA201对应的段信息。第一命名空间NS1的逻辑块地址LBA201可被包括在第三区域NS1_3中。这样,存储装置200可将第九段SEG[9]确定为段信息。
存储装置200可将物理地址PA分配给与确定的第九段SEG[9]对应的第九逻辑地址空间LAS9。第九逻辑地址空间LAS9可包括多个逻辑地址LA。例如,每个逻辑地址LA可以是以页为单位管理的逻辑页编号LPN。存储装置200可将物理地址PA1分配给与逻辑块地址LBA201对应的第九逻辑地址空间LAS9的逻辑地址LA91。存储装置200可将逻辑地址LA91与分配的物理地址PA1的映射信息存储在地址映射表212中。数据DATA可被存储在分配的物理地址PA1中。
如上所述,存储装置200可将逻辑地址空间LAS划分为多个段,并且可管理命名空间。这样,在请求与特定命名空间相关联的写入操作的情况下,存储装置200可存储数据DATA并且可快速地将(存储数据DATA的)物理地址PA分配给逻辑地址LA。与写入操作类似,存储装置200可如以上述方式那样执行读取操作和删除操作。因此,存储装置200可基于划分为段的逻辑地址空间LAS,来支持与命名空间相关联的各种操作。
图11示出根据发明构思的实施例的SSD系统2000。参照图11,SSD系统2000可包括主机2100和SSD 2200。
SSD 2200可通过信号连接器2201与主机2100交换信号SIG,并且可通过电力连接器2202接收电力PWR。SSD 2200可包括SSD控制器2210、多个非易失性存储器(NVM)2221至222n、辅助电源2230和缓冲存储器2240。NVM 2221至222n中的每个可利用单独的裸片或单独的芯片来实现。在一个示例中,NVM 2221至222n可以是闪存。
SSD控制器2210可基于从主机2100接收的信号SIG来控制NVM 2221至222n。NVM2221至222n可在SSD控制器2210的控制下进行操作。例如,SSD控制器2210可包括如参照图1至图10所述的存储器控制器210的功能。在一个实施例中,SSD控制器2210可基于主机2100的命名空间创建请求信号SIG来创建命名空间。为了支持各种大小的命名空间,SSD控制器2210可扩展NVM 2221至222n的逻辑地址空间,并且可基于扩展的逻辑地址空间将逻辑地址空间分配给命名空间。
辅助电源2230可通过电力连接器2202与主机2100连接。辅助电源2230可通过来自主机2100的电力PWR充电。在电力PWR不平稳地从主机2100被提供的情况下,辅助电源2230可提供SSD 2200的电力。
缓冲存储器2240可作为SSD 2200的缓冲存储器进行操作。例如,缓冲存储器2240可临时存储来自主机2100的数据或来自NVM 2221至222n的数据,或者可临时存储NVM 2221至222n的元数据。参照图1至图10描述的地址映射表212可被存储在SSD控制器2210的内部存储器中。在一个实施例中,地址映射表212可被存储在SSD控制器2210外部的缓冲存储器2240中。
根据发明构思的前述实施例中的一个或多个,存储装置可支持各种大小的命名空间,并且可允许主机高效地使用存储器空间。此外,根据发明构思,通过优化用于管理命名空间的存储器的容量,可使存储装置的成本的增加降低或最小化。
在此描述的方法、处理和/或操作可通过将由计算机、处理器、控制器或其他信号处理装置执行的代码或指令来执行。计算机、处理器、控制器或其他信号处理装置可以是在此描述的计算机、处理器、控制器或其他信号处理装置,或者可以是除了在此描述的元件之外的元件。因为详细描述了形成方法的基础(或计算机、处理器、控制器或其他信号处理装置的操作)的算法,所以用于实现方法实施例的操作的代码或指令可将计算机、处理器、控制器或其他信号处理装置转换为用于执行在此描述的方法的专用处理器。
根据一个实施例,非暂时性计算机可读介质存储执行上述实施例的操作的代码或指令。计算机可读介质可以是易失性存储器或非易失性存储器或者其他存储装置,其中,易失性存储器或非易失性存储器或者其他存储装置可以可移除地或固定地连接到将执行用于执行在此描述的方法实施例的代码或指令的计算机、处理器、控制器或其他信号处理装置。
在此公开的实施例的处理器、控制器、管理器、接口以及其他信号生成功能和信号处理功能可以以逻辑实现,其中,例如,逻辑可包括硬件、软件或两者。当至少部分地以硬件实现时,处理器、控制器、管理器、接口以及其他信号生成功能和信号处理功能可以是例如包括但不限于以下项的各种集成电路中的任何一种:专用集成电路、现场可编程门阵列、逻辑门的组合、片上系统、微处理器或其他类型的处理电路或控制电路。
当至少部分地以软件实现时,处理器、控制器、管理器、接口以及其他信号生成功能和信号处理功能可包括例如用于存储将由例如计算机、处理器、微处理器、控制器或其他信号处理装置执行的代码或指令的存储器或其他存储装置。计算机、处理器、微处理器、控制器或其他信号处理装置可以是在此描述的计算机、处理器、微处理器、控制器或其他信号处理装置,或者除了在此描述的元件之外的元件。因为详细描述了形成方法的基础(或计算机、处理器、微处理器、控制器或其他信号处理装置的操作)的算法,所以用于实现方法实施例的操作的代码或指令可将计算机、处理器、控制器或其他信号处理装置转换为用于执行在此描述的方法的专用处理器。
虽然已经参照发明构思的示例性实施例描述了发明构思,但是对于本领域普通技术人员将清楚的是,在不脱离如在权利要求中阐述的发明构思的精神和范围的情况下,可对发明构思进行各种改变和修改。
Claims (20)
1.一种操作包括存储器的存储装置的方法,所述方法包括:
基于参考大小将第一命名空间的整个区域划分为至少一个区域,划分的步骤响应于来自主机的命名空间创建请求而被执行,命名空间创建请求包括与第一命名空间的整个区域对应的第一命名空间的大小信息;
将存储器的逻辑地址空间划分为多个段;
将所述多个段中的第一段分配给所述至少一个区域中的第一区域;以及
存储第一区域与第一段的映射信息,其中,逻辑地址空间的大小大于由主机识别的存储器的物理存储空间的大小。
2.根据权利要求1所述的方法,其中,逻辑地址空间基于参考大小被划分为所述多个段。
3.根据权利要求1所述的方法,其中,逻辑地址空间包括:
具有与由主机识别的存储器的物理存储空间对应的大小的第一逻辑地址空间;以及
具有基于可支持的命名空间的数量的大小的第二逻辑地址空间。
4.根据权利要求1所述的方法,其中,当第一命名空间的大小大于参考大小时,第一区域是第一命名空间的整个区域中的部分区域。
5.根据权利要求1所述的方法,其中:
当第一命名空间的大小不大于参考大小时,第一区域与第一命名空间的整个区域相同。
6.根据权利要求1所述的方法,其中,映射信息被存储在紧密耦合存储器、静态随机存取存储器或处理器的高速缓冲存储器中。
7.一种操作包括存储器的存储装置的方法,所述方法包括:
基于参考大小将第一命名空间的整个区域划分为至少一个区域,划分的步骤响应于来自主机的命名空间创建请求而被执行,命名空间创建请求包括与第一命名空间的整个区域对应的第一命名空间的大小信息;
当所述至少一个区域中的第一区域小于参考大小时,扩展存储器的逻辑地址空间,
将扩展的逻辑地址空间中的第一逻辑地址空间分配给第一区域;以及
存储第一区域与分配的第一逻辑地址空间的映射信息。
8.根据权利要求7所述的方法,其中,扩展逻辑地址空间的步骤包括:附加地确保具有参考大小的逻辑地址空间。
9.根据权利要求8所述的方法,其中:
扩展的逻辑地址空间基于参考大小被划分为多个段;以及
第一逻辑地址空间是所述多个段中的一个。
10.根据权利要求7所述的方法,其中,扩展逻辑地址空间的步骤包括:附加地确保具有第一区域的大小的逻辑地址空间。
11.根据权利要求10所述的方法,其中,第一逻辑地址空间是附加地确保的逻辑地址空间。
12.根据权利要求7所述的方法,其中,当第一命名空间的大小大于参考大小时,第一区域是第一命名空间的整个区域中的部分区域。
13.根据权利要求7所述的方法,其中,当第一命名空间的大小不大于参考大小时,第一区域与第一命名空间的整个区域相同。
14.根据权利要求7所述的方法,其中,扩展的逻辑地址空间大于由主机识别的存储器的物理存储空间。
15.一种存储装置,包括:
存储器;
地址映射管理器,被配置为管理基于参考大小划分为多个段的逻辑地址空间;
命名空间管理器,被配置为基于参考大小将第一命名空间的整个区域划分为至少一个区域,命名空间管理器被配置为响应于来自主机的命名空间创建请求而划分第一命名空间的整个区域,命名空间创建请求包括与第一命名空间的整个区域对应的大小信息,命名空间管理器还被配置为将所述至少一个区域中的第一区域分配给所述多个段中的第一段;以及
段映射表,被配置为存储第一区域与第一段的映射信息,其中,逻辑地址空间大于由主机识别的存储器的物理存储空间。
16.根据权利要求15所述的存储装置,其中,逻辑地址空间包括:
具有与由主机识别的存储器的物理存储空间对应的大小的第一逻辑地址空间;以及
具有基于可支持的命名空间的数量的大小的第二逻辑地址空间。
17.根据权利要求15所述的存储装置,还包括:
地址映射表,被配置为:存储与逻辑地址空间对应的逻辑地址以及与逻辑地址对应的物理地址。
18.根据权利要求17所述的存储装置,其中,逻辑地址空间的大小对应于地址映射表的大小。
19.根据权利要求15所述的存储装置,其中,段映射表被存储在所述存储装置的紧密耦合存储器、静态随机存取存储器或高速缓冲存储器中。
20.根据权利要求15所述的存储装置,其中,所述存储装置和主机基于非易失性存储器快速通信协议彼此通信。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180160221A KR20200072639A (ko) | 2018-12-12 | 2018-12-12 | 저장 장치 및 그것의 동작 방법 |
KR10-2018-0160221 | 2018-12-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309648A true CN111309648A (zh) | 2020-06-19 |
CN111309648B CN111309648B (zh) | 2023-11-07 |
Family
ID=71071573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910917180.2A Active CN111309648B (zh) | 2018-12-12 | 2019-09-26 | 存储装置及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11029873B2 (zh) |
KR (1) | KR20200072639A (zh) |
CN (1) | CN111309648B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200072639A (ko) | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US11249988B2 (en) | 2020-05-20 | 2022-02-15 | Snowflake Inc. | Account-level namespaces for database platforms |
US11501010B2 (en) * | 2020-05-20 | 2022-11-15 | Snowflake Inc. | Application-provisioning framework for database platforms |
US11593354B2 (en) | 2020-05-20 | 2023-02-28 | Snowflake Inc. | Namespace-based system-user access of database platforms |
EP4036725A1 (en) * | 2021-01-27 | 2022-08-03 | Samsung Electronics Co., Ltd. | Systems and methods for data transfer for computational storage devices |
EP4053705B1 (en) * | 2021-03-03 | 2023-10-25 | Samsung Electronics Co., Ltd. | Operating method of storage device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239860A1 (en) * | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
CN107122314A (zh) * | 2016-02-24 | 2017-09-01 | 三星电子株式会社 | 大容量存储器装置、包括其的系统以及访问其的方法 |
US20170255565A1 (en) * | 2016-03-02 | 2017-09-07 | Intel Corporation | Method and apparatus for providing a contiguously addressable memory region by remapping an address space |
CN108021510A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 操作对多重名称空间进行管理的存储装置的方法 |
CN108628762A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 多命名空间 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008117094A (ja) * | 2006-11-02 | 2008-05-22 | Hitachi Ltd | ストレージシステム、ストレージ装置及びストレージ管理方法 |
US20110055297A1 (en) * | 2009-03-13 | 2011-03-03 | Takuji Maeda | Access module, information recording module, controller, and information recording system |
US20120254583A1 (en) | 2011-03-31 | 2012-10-04 | Hitachi, Ltd. | Storage control system providing virtual logical volumes complying with thin provisioning |
US9727570B2 (en) | 2011-06-03 | 2017-08-08 | Apple Inc. | Mount-time unmapping of unused logical addresses in non-volatile memory systems |
US20140189203A1 (en) * | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Storage apparatus and storage control method |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9785355B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9785356B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9760314B2 (en) | 2015-05-29 | 2017-09-12 | Netapp, Inc. | Methods for sharing NVM SSD across a cluster group and devices thereof |
US10095413B2 (en) | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system with address translation between a logical address and a physical address |
US20180239697A1 (en) | 2017-02-22 | 2018-08-23 | CNEXLABS, Inc. a Delaware Corporation | Method and apparatus for providing multi-namespace using mapping memory |
US10866732B2 (en) * | 2017-03-10 | 2020-12-15 | Toshiba Memory Corporation | Namespace re-sizing |
US11580034B2 (en) * | 2017-11-16 | 2023-02-14 | Micron Technology, Inc. | Namespace encryption in non-volatile memory devices |
KR20200072639A (ko) | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
-
2018
- 2018-12-12 KR KR1020180160221A patent/KR20200072639A/ko unknown
-
2019
- 2019-08-19 US US16/543,800 patent/US11029873B2/en active Active
- 2019-09-26 CN CN201910917180.2A patent/CN111309648B/zh active Active
-
2021
- 2021-04-29 US US17/244,528 patent/US11620066B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120239860A1 (en) * | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
CN107122314A (zh) * | 2016-02-24 | 2017-09-01 | 三星电子株式会社 | 大容量存储器装置、包括其的系统以及访问其的方法 |
US20170255565A1 (en) * | 2016-03-02 | 2017-09-07 | Intel Corporation | Method and apparatus for providing a contiguously addressable memory region by remapping an address space |
CN108021510A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 操作对多重名称空间进行管理的存储装置的方法 |
CN108628762A (zh) * | 2017-03-22 | 2018-10-09 | 北京忆恒创源科技有限公司 | 多命名空间 |
Also Published As
Publication number | Publication date |
---|---|
US11029873B2 (en) | 2021-06-08 |
US20210247922A1 (en) | 2021-08-12 |
US20200192592A1 (en) | 2020-06-18 |
US11620066B2 (en) | 2023-04-04 |
CN111309648B (zh) | 2023-11-07 |
KR20200072639A (ko) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309648B (zh) | 存储装置及其操作方法 | |
CN111344683B (zh) | 非易失性存储器装置中的命名空间分配 | |
US11513683B2 (en) | Namespace re-sizing | |
CN109240938B (zh) | 存储系统以及控制非易失性存储器的控制方法 | |
JP6765321B2 (ja) | メモリシステムおよび制御方法 | |
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
JP6709180B2 (ja) | メモリシステムおよび制御方法 | |
EP3436953B1 (en) | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device | |
KR101301840B1 (ko) | 비휘발성 메모리 장치의 데이터 처리 방법 | |
US9213495B2 (en) | Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device | |
US20190079859A1 (en) | Apparatus, computer program product, system, and method for managing multiple regions of a memory device | |
JP6765322B2 (ja) | メモリシステムおよび制御方法 | |
US8724392B1 (en) | Controller management of memory array of storage device using magnetic random access memory (MRAM) | |
US11010079B2 (en) | Concept for storing file system metadata within solid-stage storage devices | |
CN111078582B (zh) | 基于模式调整映射段的存储器系统及其操作方法 | |
CN107908571B (zh) | 一种数据写入方法、闪存装置及存储设备 | |
CN114077389A (zh) | 控制器、存储器系统以及数据处理系统 | |
CN108628762B (zh) | 一种固态存储设备及其处理io命令的方法 | |
KR20170128012A (ko) | 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스 | |
CN113805792A (zh) | 存储器系统及其操作方法 | |
CN110908596A (zh) | 数据存储装置、其操作方法和包括存储装置的存储系统 | |
CN112148645A (zh) | 去分配命令处理方法及其存储设备 | |
TW202405660A (zh) | 儲存裝置、包括儲存裝置的電子裝置及其操作方法 | |
JP2022051902A (ja) | メモリシステム | |
KR20220159270A (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 |