CN111488294A - 大容量存储器装置、包括其的系统以及访问其的方法 - Google Patents
大容量存储器装置、包括其的系统以及访问其的方法 Download PDFInfo
- Publication number
- CN111488294A CN111488294A CN202010284025.4A CN202010284025A CN111488294A CN 111488294 A CN111488294 A CN 111488294A CN 202010284025 A CN202010284025 A CN 202010284025A CN 111488294 A CN111488294 A CN 111488294A
- Authority
- CN
- China
- Prior art keywords
- physical
- translation layer
- virtual
- flash translation
- layer instance
- 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 27
- 238000013519 translation Methods 0.000 claims abstract description 172
- 230000006870 function Effects 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 13
- 230000002085 persistent effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 4
- 238000004064 recycling Methods 0.000 claims 2
- 239000002245 particle Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 239000007787 solid Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 239000008187 granular material Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000001960 triggered effect 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种大容量存储器装置、包括其的系统以及访问其的方法一种根据发明构思的大容量存储器装置包括:闪存,包括第一组物理块和第二组物理块;控制器,被配置为实施第一虚拟闪存转换层实例和第二虚拟闪存转换层实例。第一虚拟闪存转换层实例被配置为接收指向逻辑页码的存储器访问请求并且产生指向第一组物理块内的物理页码的存储器访问请求,第二虚拟闪存转换层实例被配置为接收指向逻辑页码的存储器访问请求和产生指向第二组物理块内的物理页码的存储器访问请求。
Description
本申请是申请日为2017年2月15日,申请号为“201710080583.7”,发明名称为“大容量存储器装置、包括其的系统以及访问其的方法”的发明专利申请的分案申请。
本申请要求于2016年2月24日提交的标题为“针对SR-IOV NVME SSD的虚拟机感知FTL设计”的第62/299,502号美国临时申请的优先权和权益,所述美国临时申请的全部内容通过引用包含于此。
技术领域
根据本发明的实施例的一个或多个方面涉及大容量存储器装置,更具体地说,涉及一种用于通过虚拟闪存转换层实例提供对大容量存储器的访问的系统和方法。
背景技术
在具有固态驱动器的主机运行多个虚拟机的系统中,单根输入/输出虚拟化(SR-IOV)可允许每个虚拟机通过模拟针对每个虚拟机的单独的大容量存储器装置的接口与持久性存储器进行交互。然而,如果接口使用固态驱动器中的共享闪存转换层,则与一个虚拟机进行交互的持久性存储器接口的性能可能受其他虚拟机与持久性存储器之间的交互的影响,或被其他虚拟机与持久性存储器之间的交互劣化。
因此,需要在虚拟机各自的持久性存储器访问操作中减少虚拟机的交互的系统和方法。
发明内容
本公开的实施例的多个方面针对作为虚拟机感知的虚拟闪存转换层。
根据本发明的实施例,提供一种大容量存储器装置,包括:闪存,包括多个物理块,所述多个物理块中的每个物理块包括多个物理页,所述多个物理块包括第一组物理块和第二组物理块,第一组物理块和第二组物理块不相交;控制器,被配置为实施第一虚拟闪存转换层实例和第二虚拟闪存转换层实例,第一虚拟闪存转换层实例被配置为接收指向逻辑页码的存储器访问请求,并且产生指向第一组物理块内的物理页码的存储器访问请求,第二虚拟闪存转换层实例被配置为接收指向逻辑页码的存储器访问请求,并且产生指向第二组物理块内的物理页码的存储器访问请求。
在一个实施例中,第一虚拟闪存转换层实例和第二虚拟闪存转换层实例中的每个还被配置为对它各自的组物理块执行垃圾回收操作。
在一个实施例中,第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,第一组物理块包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,第二组物理块包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,第一比率与第二比率的乘积等于第一权重与第二权重的比率,其中,第一比率是所述多个第一预留空间块中的物理块的数量与第一组物理块中的物理块的数量的比,第二比率是第二组物理块中的物理块的数量与所述多个第二预留空间块中的物理块的数量的比。
在一个实施例中,所述装置还包括一个或多个第一颗粒封装以及一个或多个第二颗粒封装,其中,每个第一颗粒封装包括被分配到第一虚拟闪存转换层实例的页,每个第二颗粒封装不包括被分配到第一虚拟闪存转换层实例的任何页,控制器还包括被配置为响应于存储器访问请求而将页分配到第一虚拟闪存转换层实例的页分配器,将页分配到第一虚拟闪存转换层实例的操作包括:当在所述一个或多个第一颗粒封装中的任意第一颗粒封装中,页是可用的时,分配所述一个或多个第一颗粒封装中的颗粒封装中的页;当在所述一个或多个第一颗粒封装中的任意第一颗粒封装中,没有页是可用的时,分配所述一个或多个第二颗粒封装中的颗粒封装中的页。
根据本发明的实施例,提供一种系统,包括:大容量存储器装置;主机,被配置为连接到大容量存储器装置,主机包括:第一虚拟机,与第一命名空间相关联,并且被配置为将存储器访问请求发送到在大容量存储器装置中被实例化的第一虚拟闪存转换层实例;第二虚拟机,与第二命名空间相关联,并且被配置为将存储器访问请求发送到在大容量存储器装置中被实例化的第二虚拟闪存转换层实例。
在一个实施例中,主机还包括:第三虚拟机,与第二命名空间相关联,并且被配置为将存储器访问请求发送到第二虚拟闪存转换层实例。
在一个实施例中,主机还包括:管理程序,被配置为将与虚拟机的预期写入活动等级成比例的权重分配给第一虚拟机和第二虚拟机中的每个。
在一个实施例中,主机还包括:管理程序,被配置为将与虚拟机的服务的持久性存储质量成比例的权重分配给第一虚拟机和第二虚拟机中的每个。
在一个实施例中,大容量存储器装置包括:闪存,包括多个物理块,所述多个物理块中的每个物理块包括多个物理页,所述多个物理块包括第一组物理块和第二组物理块,第一组物理块和第二组物理块不相交;控制器,被配置为实施第一虚拟闪存转换层实例和第二虚拟闪存转换层实例,第一虚拟闪存转换层实例和第二虚拟闪存转换层实例中的每个还被配置为对它各自的组物理块执行垃圾回收操作。
在一个实施例中,第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,第一组物理块包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,第二组物理块包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,第二值与第一值的比率等于第一权重与第二权重的比率,第一值是所述多个第二预留空间块中的物理块的数量与第二组物理块中的物理块的数量的比率,第二值是所述多个第一预留空间块中的物理块的数量与第一组物理块中的物理块的数量的比率。
在一个实施例中,大容量存储器装置还包括:一个或多个第一颗粒封装以及一个或多个第二颗粒封装,其中,每个第一颗粒封装包括被分配到第一虚拟闪存转换层实例的页,每个第二颗粒封装不包括被分配到第一虚拟闪存转换层实例的任何页,其中,第一颗粒封装和第二颗粒封装一起包括装置的全部颗粒封装,并包括所述多个物理块,装置还包括被配置为响应于存储器访问请求而将页分配到第一虚拟闪存转换层实例的页分配器,将页分配到第一虚拟闪存转换层实例的操作包括:当在所述一个或多个第一颗粒封装中的任意第一颗粒封装中,页是可用的时,分配所述一个或多个第一颗粒封装中的颗粒封装中的页;当在所述一个或多个第一颗粒封装中的任意第一颗粒封装中,没有页是可用的时,分配所述一个或多个第二颗粒封装中的颗粒封装中的页。
根据本发明的示例实施例,提供一种方法,包括:由包括多个物理块的大容量存储器装置中的第一虚拟闪存转换层实例接收指向第一逻辑页码的第一存储器访问请求;由第一虚拟闪存转换层实例产生指向所述多个物理块的第一子集内的物理页码的存储器访问请求;由大容量存储器装置中的第二虚拟闪存转换层实例接收指向第二逻辑页码的第二存储器访问请求;由第二虚拟闪存转换层实例产生指向所述多个物理块的第二子集内的物理页码的存储器访问请求,第一子集和第二子集不相交。
在一个实施例中,所述方法还包括:由主机创建第一命名空间和第二命名空间;由主机使第一命名空间附属于被配置为与第一虚拟闪存转换层实例交互的第一虚拟功能;由主机使第二命名空间附属于被配置为与第二虚拟闪存转换层实例交互的第二虚拟功能。
在一个实施例中,所述方法还包括:由主机创建第一虚拟机和第二虚拟机,由主机将第一虚拟功能分配到第一虚拟机,由主机将第二虚拟功能分配到第二虚拟机。
在一个实施例中,所述方法还包括:由主机上的客户装置驱动器生成包括第一命名空间的读取请求;由大容量存储器装置通过第一虚拟功能接收读取请求;由第一虚拟闪存转换层实例处理读取请求;通过第一虚拟功能返回读取请求的结果。
在一个实施例中,所述方法还包括:由主机上的客户装置驱动器生成包括将被写入的数据和用于第一命名空间的标识符的写入请求;由大容量存储器装置通过第一虚拟功能接收写入请求;由第一虚拟闪存转换层实例处理写入请求;由第一虚拟闪存转换层实例向大容量存储器装置的页分配器请求与可用于写入的物理页对应的一个或多个物理页码;从页分配器接收一个或多个物理页码;将数据写入到与接收的一个或多个物理页码对应的一个或多个物理页。
在一个实施例中,所述方法还包括:由第一虚拟闪存转换层实例对第一子集执行垃圾回收操作。
在一个实施例中,第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,第一子集包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,第二子集包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,以下两个比率的乘积等于第一权重与第二权重的比率:所述多个第一预留空间中的物理块的数量与第一子集中的物理块的数量的比率,第二子集中的物理块的数量与所述多个第二预留空间块中的物理块的数量的比率。
附图说明
参照说明书、权利要求和附图,本发明的这些以及其他特征和优点将会被了解和理解,其中:
图1A是根据本发明的实施例的连接到大容量存储装置器的主机的框图;
图1B是与包括现有技术的闪存转换层的大容量存储器装置交互的多个虚拟机的框图;
图2是根据本发明的实施例的与包括多个虚拟闪存转换层实例的大容量存储器装置交互的多个虚拟机的框图;
图3是根据本发明的实施例的通过多个虚拟闪存转换层实例和虚拟机感知NAND页分配器与大容量存储器装置交互的多个虚拟机的框图;
图4A是现有技术的闪存转换层、NAND页分配器和闪存的多个物理块的框图;
图4B是根据本发明的实施例的与包括多个虚拟闪存转换层实例和虚拟机感知NAND页分配器的大容量存储器装置交互的多个虚拟机的框图;
图4C是根据本发明的实施例的与包括多个虚拟闪存转换层实例和虚拟机感知NAND页分配器的大容量存储器装置交互的多个虚拟机的框图;
图4D是示出根据本发明的实施例的大容量存储器装置中的颗粒封装和闪存颗粒封装中的闪存块的组织的框图;
图5A是示出根据本发明的实施例的与多个闪存块交互的多个虚拟闪存转换层实例的框图;
图5B是示出根据本发明的实施例的数据移动到预留空间块的数据流图和混合框;
图6A是根据本发明的实施例的装置初始化的流程图;
图6B是根据本发明的实施例的处理读取请求的流程图;
图6C是根据本发明的实施例的处理写入请求的流程图。
具体实施方式
下面阐述的与附图有关的具体实施方式意图作为针对依照本发明提供的固态驱动器(SSD)的虚拟机感知(VM-aware)闪存转换层(FTL)设计的示例实施例的描述,并不意图仅呈现本发明可被构造和利用的形式。该描述阐述与示出的实施例有关的本发明的特征。然而,将理解,可通过同样意图包含在本发明的精神和范围内的不同实施例来实现相同或等同的功能和结构。如本文其他位置所示,相同的元件编号意图指示相同的元件或特征。
图1A示出连接到固态驱动器103的主机102。图1B示出采用单根输入/输出虚拟化非易失性存储器标准固态驱动器(SR-IOV NVMe SSD)的现有技术系统的架构。多个虚拟机100在主机102上运行。主机102可包括处理器(例如,微处理器)和存储器。虚拟机100调用各种虚拟功能105以与持久性存储器交互。虚拟功能105可通过主机102中的客户装置驱动器来提供。如这里所使用的“主机”是连接到并使用一个或多个大容量存储器装置的计算机(例如,服务器)。每个虚拟机可做出存储器访问请求(例如,从持久性存储器读取数据的请求、将数据写入到持久性存储器的请求或在持久性存储器中擦除数据的请求)。可通过调用虚拟功能来做出每个存储器访问请求。持久性存储器可被实现在大容量存储器装置(例如,硬盘驱动器和/或固态驱动器(SSD)和/或USB“棒”或“拇指驱动器”和/或存储卡)上。单根输入/输出虚拟化可用于允许大容量存储器装置在各种外围组件互连标准(PCIe)硬件功能之中单独访问它的资源。这些功能可包括PCIe物理功能(PF)107和一个或多个PCIe虚拟功能105(VF)。每个物理功能107和虚拟功能105可被分配允许输入/输出存储器管理单元(IOMMU)104区分不同的通信流(traffic stream)的唯一的PCI Express请求者标识符(RID)。因此,将虚拟功能105分配到不同的虚拟机100(VM)可在虚拟机100与大容量存储器装置之间传送数据的同时防止不同的虚拟机100的输入/输出流彼此干扰。
固态驱动器103中的闪存可被组织成物理块110(或“闪存块”)和物理页120。物理块110可以是存储器的一次操作中可擦除的最小单元,物理页120可以是存储器的一次操作中可写入的最小单元。每个物理块110可包括多个物理页120,物理页120的大小可基于实施方式而变化。可通过NAND页分配器130来分配闪存中的页。主机102可使用指向逻辑页码的存储器访问请求与大容量存储器装置进行交互(例如,请求在逻辑页码的页中存储的数据、请求向逻辑页码的页写入数据或请求擦除在逻辑页码的页中存储的数据)。因为使用新数据代替先前在相同的位置的数据而将新数据写入到物理页120中可能要求:包括物理页120的全部物理块110的内容被保存在其他位置,物理块110被擦除,以及保存的内容被再次写入到块,所以将逻辑页码直接或静态地映射到物理页码可能是低效的。如这里所使用的“物理页码”是唯一地标识大容量存储器装置内的页的标识符(例如,数字)。
为避免这些繁冗的操作,闪存转换层125可将逻辑页码动态地转换或映射为物理页码。当新数据将被覆写在逻辑页码的页中的数据之上时,闪存转换层125可随后将当前对应于逻辑页码的物理页120标记为无效(而不是擦除包括该物理页120的物理块110),更新从逻辑页码到物理页120的映射以将逻辑页码映射到新的物理页120,并将新数据写入到新的物理页120中。闪存转换层125偶尔可执行被称为“垃圾回收”的操作。在这个操作中,在物理页120的有效内容已经被移动到一个或多个其他物理块110中的其他物理页120之后,包含大比例(例如,超过设置阈值的比例)的已经被标记为无效的物理页120的任意物理块110可被擦除,使得新擦除的物理块110可用于写入新数据。可以以运行在固态驱动器103中的控制器(例如,微控制器)上的软件来实现闪存转换层125。
在一些实施例中,虚拟功能105被分配到不同的虚拟机100,每个虚拟功能与保留在大容量存储器装置上的命名空间(namespace)(例如,图1B中的被称为命名空间A(NSA)和命名空间B(NSB)的命名空间)相关联。在图1B的示例系统中,两个虚拟功能(诸如,虚拟功能1(VF1)和虚拟功能2(VF2))共享一个命名空间(NSB)。可通过调用不同的虚拟功能105来处理来自不同虚拟机100的存储器访问请求。这可导致主机的虚拟机100与大容量存储器装置的主机接口层(HIL)之间的输入/输出路径被分开。
然而,被分配到不同的虚拟机100的物理页120可共享物理块110。来自不同的虚拟机100的存储器访问请求可被映射到大容量存储器装置中的由逻辑页码标识的逻辑页,并以指向逻辑页码的存储器访问请求的格式被转发到闪存转换层125。因此,闪存转换层125的输入会缺少链接特定存储器访问请求与它起源于的虚拟机的语义信息。作为这样的结果,例如,来自第一虚拟机(例如,VM1)的写入请求可导致物理页120的无效,这导致影响物理块110的垃圾回收。这可延迟对存储器访问请求(例如,由第二虚拟机(例如,VM2)发送的对逻辑页的读取请求,其中,逻辑页被映射到同一物理块110中的物理页120)的处理。如此,提供到任意虚拟机100的服务的质量可能受由其他虚拟机100发送的存储器访问请求影响(例如,被劣化),并呈现较少的可预测性。
为实现单根输入/输出虚拟化(SR-IOV)特征的更好的装置虚拟化,闪存转换层125可被虚拟化。例如,闪存转换层125可被多个虚拟闪存转换层(vFTL)实例210代替,使得输入/输出路径针对不同的虚拟机100而在多个虚拟闪存转换层实例210被分开。
参照图2,在一个实施例中,针对每个分配的虚拟功能或命名空间来创建虚拟闪存转换层实例210。来自特定虚拟功能的存储器访问请求与该虚拟功能的命名空间相关联,并被相应地转发到与命名空间相关联的虚拟闪存转换层实例210。与图1B的系统中的情况不同,图2的实施例中的命名空间不被映射到逻辑页码的范围或集合,而是被映射到虚拟闪存转换层实例210。结果,来自不同的虚拟机100的存储器访问请求在虚拟闪存转换层被分开,降低由一个虚拟机提交的存储器访问请求可能对由另一虚拟机接收的服务的质量造成的影响。可通过虚拟机感知NAND页分配器230来分配物理页120。
参照图3,在一个实施例中,如上所述,每个虚拟闪存转换层实例210是在运行在大容量存储器装置(例如,固态驱动器103的大容量存储器装置)的控制器上的固件的闪存转换层的软件组件。虚拟闪存转换层实例210可具有现有技术的闪存转换层软件的全部功能,但与这样的闪存转换层软件不同,它可根据虚拟机或虚拟功能命名空间或者根据大容量存储器装置命名空间而被建立或组织。在图3中,存在两个虚拟机100(第一虚拟机VM1和第二虚拟机VM2),每个虚拟机100通过命名空间管理器106被分配单独的装置命名空间。如果第一虚拟机VM1发出存储器访问请求(例如,写入请求),则大容量存储器装置可将访问请求路由到第一虚拟闪存转换层实例210a。写入请求可要求分配可具有8个扇区的大小的逻辑页(和对应的物理页);物理页可通过物理页码来标识。然后,第一虚拟闪存转换层实例210a可对NAND页分配器230做出相应存储器的访问请求,其中,NAND页分配器230提供与执行写入请求所需的存储器的数量(例如,8个扇区)对应的多个物理页120,然后将写入数据刷新到分配的物理页。存储访问请求还可包括请求分配的物理页的物理页码(ppn)。最后,虚拟闪存转换层实例210a可更新逻辑-物理映射(例如,虚拟机逻辑块地址或逻辑页码到诸如NAND闪存页码的物理页码的映射)。另一方面,由第二虚拟机VM2做出的存储器访问请求可被路由到第二虚拟闪存转换层实例210b以作进一步处理。虚拟闪存转换层实例(例如,第一虚拟闪存转换层实例210a和第二虚拟闪存转换层实例210b)可彼此独立,并“感知不到”彼此,就这个意义而言,这些软件元件不需要交换信息或请求。以这种方式,该系统可避免由第一虚拟机VM1做出的存储器访问请求与第二虚拟机VM2做出的存储器访问请求之间的干扰。
参照图4A,如上所述,不可根据到来的存储器访问请求的源而区分现有技术的闪存转换层125和NAND页分配器130,例如,来自三个不同的虚拟机100的数据可被写入到同一物理块110。在图4A中,包括来自三个虚拟机100(第一虚拟机VM1、第二虚拟机VM2和第三虚拟机VM3)的数据的页被分别标注为D1、D2和D3,如图所示,在每个物理块110中,来自几个不同的虚拟机100的数据被混合。
参照图4B,相比之下,在本发明的一些实施例中,通过三个分开的各个虚拟闪存转换层实例vFTL1、虚拟闪存转换层实例vFTL2和虚拟闪存转换层实例vFTL3来处理来自三个虚拟机100(第一虚拟机VM1、第二虚拟机VM2和第三虚拟机VM3)的存储器访问请求,其中,虚拟闪存转换层实例vFTL1、虚拟闪存转换层实例vFTL2和虚拟闪存转换层实例vFTL3中的每个向NAND页分配器230请求已与它们各自的命名空间(和虚拟机100)相关联的块中的页,或者如果可用的这样的页太少,则向NAND页分配器230请求当前不与任何命名空间或虚拟机相关联的块中的页。以这种方式,NAND页分配器230被实现为虚拟机感知,结果,在图4B中,来自第一虚拟机VM1、第二虚拟机VM2和第三虚拟机VM3的被分别标注为D1、D2和D3的数据不被混合,并被写入到有区别的物理块110。
参照图4C,在一个实施例中,虚拟机感知NAND页分配器230针对每个虚拟闪存转换层实例210保持包括“开放闪存块”(OFB)的列表,其中,OFB是包括空闲页的物理块110。当任意虚拟闪存转换层实例210请求新的物理页码时,虚拟机感知NAND页分配器230返回针对该虚拟闪存转换层实例210列出的开放闪存块110内的下一可用的物理页码。如果从虚拟闪存转换层实例210接收到写入请求,并且针对虚拟闪存转换层实例210列出的开放闪存块110没有充足空间,或者如果写入请求的执行导致当前开放闪存块110填满,则虚拟机感知NAND页分配器230可分配新的物理块110,以适应写入请求;如果新的物理块110在完成写入请求后仍然部分是空的,则虚拟机感知NAND页分配器230可将新的物理块110的地址添加到开放闪存块110的列表。例如,如果图4C的与第二虚拟闪存转换层实例vFTL2相关联的开放闪存块110被写入请求填满,使得全部的页被使用,则虚拟机感知NAND页分配器230将分配新的物理块110',并将它标识为第二虚拟闪存转换层实例vFTL2的开放闪存块。
参照图4D,虚拟机感知NAND页分配器230可被配置为分配新的闪存块110以便将不同的虚拟闪存转换层实例210的物理块110优先分配到不同的闪存颗粒封装(package)、颗粒(die)或片(plane)。颗粒封装可被组织成通道(例如,示出的通道#0、通道#1等)。例如,当特定的虚拟闪存转换层实例210请求新的块时,可通过在已包括被分配到虚拟闪存转换层实例210的其他物理块110的包中分配物理块110来完成这样的操作,或者如果没有这样的包具有任何空闲物理块110,则通过在还没有被分配物理块110的包中分配物理块110来完成这样的操作。因此,例如,被分配到第一虚拟闪存转换层实例的第一物理块(图4D中标记为“闪存块1”)可与被分配到第一虚拟闪存转换层实例的其他物理块110一起在大容量存储器装置中的颗粒封装号为0的颗粒封装(Pkg#0)中被分配,被分配到第二虚拟闪存转换层实例的第二物理块(图4D中标记为“闪存块2”)可与被分配到第二虚拟闪存转换层实例的其他物理块110一起在大容量存储器装置中的颗粒封装号为1的颗粒封装(Pkg#1)中被分配。例如,这些颗粒封装可以是大容量存储器装置(例如,固态驱动器103)中的焊接到印刷电路板(或“印刷线路板)的集成电路。
参照图5A,在一些实施例中,每当空闲闪存块的数量下降到针对大容量存储器装置定义的阈值时,垃圾回收(GC)被触发。每个虚拟闪存转换层实例210通过它自己来管理垃圾回收。在初始化虚拟闪存转换层实例210的同时,针对每个虚拟闪存转换层实例210来分配特定数量的预留空间(overprovision)闪存块110。在垃圾回收操作期间,具有超出设置阈值的无效物理页的比例的物理块可在它们的有效物理页的内容已经首先被移动到其他物理块(即,预留空间块)之后被擦除,并可用于写入。如此,在包括无效的物理页120的物理块110被擦除和再次可用于存储之前,预留空间块可被用于在保留一些存储空间(例如,已经被无效的物理页120中的空间)不使用的同时提供特定的存储量。例如,如图5B中所示,当执行垃圾回收以释放包括若干无效的物理页120的物理块110时,每个虚拟闪存转换层实例210可首先将有效的数据移动到空闲闪存块110,然后擦除被释放的物理块110。预留空间块可在擦除包括无效的页的物理块110之前从包括无效的页的物理块110提供额外的空闲闪存块110,其中,垃圾回收可将有效的数据移动到额外的空闲闪存块110。
在默认情况下,提供给每个闪存转换层实例210的预留空间闪存块110与分配到每个闪存转换层实例210的物理块110的数量成比例。然而,在一些实施例中,可根据分配到每个虚拟闪存转换层实例210的权重来自定义预留空间闪存块100的数量与分配的块的数量的比率(例如,该比率被自定义为与分配到每个虚拟闪存转换层实例210的权重成比例)。例如,第一闪存转换层实例vFTL1可具有第一权重,第二闪存转换层实例vFTL2可具有第二权重,则第一权重和第二权重的比率可被自定义为等于第一比率与第二比率的乘积,其中,第一比率是第一闪存转换层实例vFTL1的预留空间闪存块100的数量与分配到第一闪存转换层实例vFTL1的物理块的数量的比率,第二比率是第二闪存转换层实例vFTL2的预留空间闪存块100的数量与分配到第二闪存转换层实例vFTL2的物理块的数量的比率。例如,每个虚拟闪存转换层实例210的权重可被用户定义。在一些实施例中,每个虚拟机具有权重(例如,用户定义的权重或管理程序(hypervisor)分配的权重),每个虚拟闪存转换层实例210的权重是连接到虚拟闪存转换层实例210的虚拟机的权重,或者,如果多个虚拟机共享虚拟闪存转换层实例210,则每个虚拟闪存转换层实例210的权重是这些虚拟机的权重的总数。
例如,虚拟机的权重可以与虚拟机的预期写入活动等级(例如,期望虚拟机请求写入操作的频率,或者虚拟机所期望的每单位时间写入数据的量)成比例,或与适于虚拟机的服务的质量成比例。
当大容量存储器装置分别针对第一虚拟机VM1和第二虚拟机VM2建立虚拟闪存转换层实例210时,主机102可配置第一虚拟机VM1和第二虚拟机VM2的各自的权重。然后,固件(例如,与第一虚拟机VM1和第二虚拟机VM2分别对应的第一虚拟闪存转换层实例和第二虚拟闪存转换层实例)可基于被分配到第一虚拟闪存转换层实例和第二虚拟闪存转换层实例的物理容量,来分配预留空间块的数量。
在一个实施例中,如图6A中所示地进行装置初始化。在步骤600中,主机102针对大容量存储器装置启用SR-IOV并建立包括第一虚拟功能VF0的虚拟功能105。在步骤602中,主机102启用虚拟闪存转换层特征。在步骤604中,主机102创建命名空间并使命名空间附属于第一虚拟功能VF0。在步骤606中,大容量存储器装置根据第一虚拟功能VF0的命名空间的逻辑块地址范围来创建虚拟闪存转换层实例。在步骤608中,主机102将第一虚拟功能VF0分配给第一虚拟机并启用第一虚拟功能VF0。可针对其他虚拟机和命名空间重复该处理。
在一个实施例中,可如图6B中所示地进行读取请求处理。在步骤610中,虚拟机发出具有例如0的起始逻辑块地址和8个扇区的大小的读取请求。在步骤612中,主机102上的客户装置驱动器生成具有请求信息的对应的非易失性存储器标准(NVMe)读取请求;NVMe读取请求还包括命名空间标识符(NS ID)。在步骤614中,大容量存储器装置经由附属于请求的虚拟机的虚拟功能来接收读取请求。在步骤616中,大容量存储器装置处理读取请求,并将它传递到请求的虚拟机所附属于的虚拟闪存转换层实例。在步骤618中,虚拟闪存转换层实例读取读取请求所要求的闪存页,并将完成响应发布到相应的虚拟功能的完成队列(CQ);然后,客户装置驱动器可通知提交队列(SQ)。在步骤620中,客户装置驱动器处理中断,并更新提交队列。通过虚拟功能可将读取操作的结果返回到虚拟机。
在一个实施例中,如图6C中所示地进行写入请求处理。在步骤622中,虚拟机发出具有例如0的起始逻辑块地址和8个扇区的大小的写入请求。在步骤624中,主机102上的客户装置驱动器生成具有请求信息的对应的NVMe写入请求;NVMe写入请求包括将被写入的数据和命名空间标识符(NS ID)。在步骤626中,大容量存储器装置经由附属于请求的虚拟机的虚拟功能来接收写入请求。在步骤628中,大容量存储器装置处理写入请求,并将它传递给请求的VM所附属于的虚拟闪存转换层实例。在步骤630中,虚拟闪存转换层实例向NAND页分配器要求新的物理页码(例如,虚拟闪存转换层实例向NAND页分配器请求新的物理页码),并且将数据写入到那些闪存页并更新映射条目。在步骤632中,虚拟闪存转换层实例将写入完成发布到相应的虚拟功能的完成队列(CQ)。在步骤634中,主机102上的客户装置驱动器处理中断并更新提交队列(SQ)。
如此,一些实施例提供虚拟机感知的虚拟闪存转换层,得到提高的系统性能。
术语“控制器”在此用于包括用于处理数据或数字信号的硬件、固件和软件的任意组合。例如,控制器硬件可包括专用集成电路(ASIC)、通用或专用中央处理器(CPU)、数字信号处理器(DSP)、图形处理器(GPU)和诸如现场可编程门阵列(FPGA)的可编程逻辑装置。在如这里所使用的控制器中,每个功能由被配置为(即,硬连线的)执行该功能的硬件来执行,或由被配置为执行存储在非暂时性存储介质中的指令的更加通用的硬件(诸如,CPU)来执行。控制器可被制造在单个印刷线路板(PWB)上或分布在几个内连的PWB上。控制器可包括其他控制器;例如,控制器可包括PWB上内连的两个控制器(诸如,FPGA和CPU)。
可利用任何合适的硬件、固件(例如,专用集成电路)、软件或它们的组合来实现根据这里描述的本发明的实施例的大容量存储器装置和/或其他相关的装置或组件。例如,可将大容量存储器装置的各种组件形成在一个集成电路(IC)芯片上或形成在分开的IC芯片上。此外,可将大容量存储器装置的各种组件实现在柔性印刷电路薄膜、带状媒介封装(TCP)和印刷电路板(PCB)上,或形成在一个基板上。此外,大容量存储器装置的各种组件可以是运行在一个或多个计算装置中的一个或多个处理器上并执行计算机程序指令以及与用于执行这里描述的各种功能的系统组件进行交互的进程或线程。计算机程序指令被存储在存储器中,其中,可使用标准存储器装置(诸如,例如,随机存取存储器(RAM))将存储器实现在计算装置中。计算机程序指令还可被存储在其他非暂时性计算机可读介质(诸如,CD-ROM,闪存驱动器等)中。此外,本领域技术人员应认识到,在不脱离本发明的示例实施例的范围的情况下,各种计算装置的功能可被组合或集成到单个计算装置中,或者特定的计算装置的功能可被分布在一个或多个其他计算装置中。
将理解,尽管在这里可使用术语“第一”、“第二”、“第三”等描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应该被这些术语限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分进行区分。因此,在不脱离本发明构思的精神和范围的情况下,第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
这里使用的术语仅用于描述特定的实施例的目的,而不意图限制本发明构思。如这里所使用,术语“基本上”、“大约”和类似术语用作近似的术语,而不用作程度的术语,并且意图对本领域普通技术人员所认识到的测量或计算的值中的固有偏差做出解释。
除非上下文另外明确地指示,否则如在这里使用的单数形式也意图包括复数形式。还将理解,当在本说明书中使用术语“包括”和/或“包含”时,说明存在叙述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。如这里所使用,术语“和/或”包括一个或多个相关所列项的任何和全部组合。当诸如“中的至少一个”的表述出现在一列元素之后时,其修饰整列元素,而不是修饰列中的单个元素。此外,当描述本发明构思的实施例时,“可”的使用表示“本发明构思的一个或多个实施例”。此外,术语“示例性”意图表示示例或示出。如这里所使用,术语“使用”可被认为与术语“利用”同义。
将理解,当元件被称为“在”另一元件上、“连接”或者“结合”到另一元件时,该元件可直接地在另一元件上、被直接地连接到或者结合到该另一元件,或者可存在一个或多个中间元件。相反,当元件被称为“直接在另一元件上、“直接地连接到”或者“直接地结合到”另一元件时,不存在中间元件。
这里列举的任何数值范围意图包括包含在列举的范围内的相同数值精度的全部子范围。例如,“1.0至10.0”的范围意图包括列举的最小值1.0与列举的最大值10.0之间(包括)的全部子范围,也就是说,具有等于或大于1.0的最小值并且等于或小于10.0的最大值的范围(诸如,例如,2.4至7.6)。这里列举的任何最大数值限制意图包括包含其中的全部更低的低数值限制,并且在该说明书中列举的任何最小数值限制意图包括包含其中的全部更高的数值范围。
虽然这里已经具体描述和示出了大容量存储器装置、包括其的系统以及访问其的方法(即,针对SR-IOV NVMe SSD的VM-aware FTL设计)的示例实施例,但是很多修改和变化对本领域技术人员来说将是清楚的。因此,将理解,根据本发明的原理构建的大容量存储器装置、包括其的系统以及访问其的方法可被实现为除了这里具体描述的形式之外的形式。还在权利要求及其等同物中定义本发明。
Claims (20)
1.一种大容量存储器装置,包括:
闪存;以及
控制器,
闪存包括第一物理块和第二物理块,所述第一物理块包括多个物理页,所述第二物理块包括多个物理页,
控制器被配置为实施第一虚拟闪存转换层实例和第二虚拟闪存转换层实例,
在第一时间段期间,数据单元在第一虚拟闪存转换层实例的独有控制下,整体存储在所述第一物理块中,或者在第二虚拟闪存转换层实例的独有控制下,整体存储在所述第二物理块中。
2.如权利要求1所述的大容量存储器装置,其中:
包括所述第一物理块的第一组物理块被分配给第一虚拟闪存转换层实例;以及
第一虚拟闪存转换层实例被配置为对第一组物理块执行垃圾回收,
垃圾回收包括:
将存储在第一组物理块的第三物理块中的数据移动到其他物理块,以及
将所述第三物理块标记为擦除,
当所述第三物理块被标记为擦除时,所述第三物理块变为可用于分配给第二虚拟闪存转换层实例。
3.如权利要求2所述的大容量存储器装置,其中:
第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,
第一组物理块包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,
包括所述第二物理块的第二组物理块被分配给第二虚拟闪存转换层实例,
第二虚拟闪存转换层实例被配置为对第二组物理块执行垃圾回收,
第二组物理块包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,以及
以下两个比率的乘积等于第一权重与第二权重的比率,
所述多个第一预留空间块中的物理块的数量与第一组物理块中的物理块的数量的比率,以及
第二组物理块中的物理块的数量与所述多个第二预留空间块中的物理块的数量的比率。
4.如权利要求1所述的大容量存储器装置,包括:
第一组物理块,包括所述第一物理块,第一组物理块包括被分配到第一虚拟闪存转换层实例的页,以及
第二组物理块,包括所述第二物理块,第二组物理块不包括被分配到第一虚拟闪存转换层实例的页,
所述大容量存储器装置还包括页分配器,页分配器被配置为响应于存储器访问请求而将页分配到第一虚拟闪存转换层实例,将页分配到第一虚拟闪存转换层实例的操作包括:
基于页可用性,优先分配第一组物理块的块中的页,或者分配第二组物理块的块中的页。
5.一种包括大容量存储器装置的系统,包括:
主机;以及
如权利要求1所述的大容量存储器装置;
主机包括:
第一虚拟机,与第一命名空间相关联;以及
第二虚拟机,与第二命名空间相关联,
第一虚拟机被配置为将存储器访问请求发送到在所述大容量存储器装置中被实例化的第一虚拟闪存转换层实例,以及
第二虚拟机被配置为将存储器访问请求发送到在所述大容量存储器装置中被实例化的第二虚拟闪存转换层实例。
6.如权利要求5所述的系统,其中,主机还包括:
第三虚拟机,与第二命名空间相关联,
第三虚拟机被配置为将存储器访问请求发送到第二虚拟闪存转换层实例。
7.如权利要求5所述的系统,其中,主机还包括:管理程序,被配置为:
将与第一虚拟机的预期写入活动等级成比例的第一权重分配给第一虚拟机;以及
将与第二虚拟机的预期写入活动等级成比例的第二权重分配给第二虚拟机。
8.如权利要求5所述的系统,其中,主机还包括:管理程序,被配置为
将与第一虚拟机的服务的持久性存储质量成比例的第一权重分配给第一虚拟机;以及
将与第二虚拟机的服务的持久性存储质量成比例的第二权重分配给第二虚拟机。
9.如权利要求5所述的系统,其中:
包括所述第一物理块的第一组物理块被分配给第一虚拟闪存转换层实例;以及
第一虚拟闪存转换层实例被配置为对第一组物理块执行垃圾回收,
垃圾回收包括:
将存储在第一组物理块的第三物理块中的数据移动到其他物理块,以及
将所述第三物理块标记为擦除,
当所述第三物理块被标记为擦除时,所述第三物理块变为可用于分配给第二虚拟闪存转换层实例。
10.权利要求9所述的系统,其中:
第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,
第一组物理块包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,
包括所述第二物理块的第二组物理块被分配给第二虚拟闪存转换层实例,
第二虚拟闪存转换层实例被配置为对第二组物理块执行垃圾回收,
第二组物理块包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,以及
以下两个比率的乘积等于第一权重与第二权重的比率,
所述多个第一预留空间块中的物理块的数量与第一组物理块中的物理块的数量的比率,以及
第二组物理块中的物理块的数量与所述多个第二预留空间块中的物理块的数量的比率。
11.如权利要求9所述的系统,其中,包括:
第一组物理块,包括所述第一物理块,第一组物理块包括被分配到第一虚拟闪存转换层实例的页,以及
第二组物理块,包括所述第二物理块,第二组物理块不包括被分配到第一虚拟闪存转换层实例的页,
所述大容量存储器装置还包括页分配器,页分配器被配置为响应于存储器访问请求而将页分配到第一虚拟闪存转换层实例,将页分配到第一虚拟闪存转换层实例的操作包括:
基于页可用性,优先分配第一组物理块的块中的页,或者分配第二组物理块的块中的页。
12.一种访问大容量存储器装置的方法,包括:
由包括多个物理块的大容量存储器装置中的第一虚拟闪存转换层实例接收指向第一逻辑页码的第一存储器访问请求;
由第一虚拟闪存转换层实例产生指向所述多个物理块的第一子集内的物理页码的存储器访问请求;
由大容量存储器装置中的第二虚拟闪存转换层实例接收指向第二逻辑页码的第二存储器访问请求;以及
由第二虚拟闪存转换层实例产生指向所述多个物理块的第二子集内的物理页码的存储器访问请求,
在第一时间段期间,数据单元在第一虚拟闪存转换层实例的独有控制下,整体存储在所述多个物理块的第一子集中的第一物理块中,或者在第二虚拟闪存转换层实例的独有控制下,整体存储在所述多个物理块的第二子集中的第二物理块中。
13.如权利要求12所述的方法,还包括:
由主机创建第一命名空间和第二命名空间;
由主机使第一命名空间附属于被配置为与第一虚拟闪存转换层实例交互的第一虚拟功能;以及
由主机使第二命名空间附属于被配置为与第二虚拟闪存转换层实例交互的第二虚拟功能。
14.如权利要求13所述的方法,还包括:
由主机创建第一虚拟机和第二虚拟机,
由主机将第一虚拟功能分配到第一虚拟机,以及
由主机将第二虚拟功能分配到第二虚拟机。
15.如权利要求14所述的方法,还包括:
由主机上的客户装置驱动器生成包括第一命名空间的读取请求;
由大容量存储器装置通过第一虚拟功能接收读取请求;
由第一虚拟闪存转换层实例处理读取请求;以及
通过第一虚拟功能返回读取请求的结果。
16.如权利要求14所述的方法,还包括:
由主机上的客户装置驱动器生成写入请求,写入请求包括:
将被写入的数据,以及
用于第一命名空间的标识符;
由大容量存储器装置通过第一虚拟功能接收写入请求;
由第一虚拟闪存转换层实例处理写入请求;
由第一虚拟闪存转换层实例向大容量存储器装置的页分配器请求与可用于写入的物理页对应的一个或多个物理页码;
从页分配器接收所述一个或多个物理页码;以及
将数据写入到与接收的所述一个或多个物理页码对应的一个或多个物理页。
17.如权利要求12所述的方法,还包括:由第一虚拟闪存转换层实例对第一子集执行垃圾回收操作。
18.如权利要求17所述的方法,其中:
第一虚拟闪存转换层实例具有第一权重,第二虚拟闪存转换层实例具有第二权重,
第一子集包括用于垃圾回收操作的为数据的存储保留的多个第一预留空间块,
第二子集包括用于垃圾回收操作的为数据的存储保留的多个第二预留空间块,以及
以下两个比率的乘积等于第一权重与第二权重的比率:
所述多个第一预留空间块中的物理块的数量与所述多个物理块的第一子集中的物理块的数量的比率,以及
所述多个物理块的第二子集中的物理块的数量与所述多个第二预留空间块中的物理块的数量的比率。
19.一种大容量存储器装置,包括:
闪存;以及
控制器,
闪存包括第一物理块,第一物理块包括第一物理页和第二物理页,
控制器被配置为实施第一虚拟闪存转换层实例和第二虚拟闪存转换层实例,
在第一时间段期间,数据单元在第一虚拟闪存转换层实例的独有控制下,整体存储在第一物理页中,或者在第二虚拟闪存转换层实例的独有控制下,整体存储在第二物理页中。
20.如权利要求19所述的大容量存储器装置,其中:
闪存还包括第二物理块,
控制器还被配置为实施第三虚拟闪存转换层实例,以及
在第二时间段期间,第二物理块被整体分配到第三虚拟闪存转换层实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010284025.4A CN111488294B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662299502P | 2016-02-24 | 2016-02-24 | |
US62/299,502 | 2016-02-24 | ||
US15/133,187 | 2016-04-19 | ||
US15/133,187 US10235198B2 (en) | 2016-02-24 | 2016-04-19 | VM-aware FTL design for SR-IOV NVME SSD |
CN202010284025.4A CN111488294B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
CN201710080583.7A CN107122314B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710080583.7A Division CN107122314B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488294A true CN111488294A (zh) | 2020-08-04 |
CN111488294B CN111488294B (zh) | 2023-11-07 |
Family
ID=59629976
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710080583.7A Active CN107122314B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
CN202010284025.4A Active CN111488294B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710080583.7A Active CN107122314B (zh) | 2016-02-24 | 2017-02-15 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10235198B2 (zh) |
JP (1) | JP6913481B2 (zh) |
KR (1) | KR102414721B1 (zh) |
CN (2) | CN107122314B (zh) |
TW (2) | TWI765225B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241308A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 一种虚拟机标识处理方法、装置及相关设备 |
CN115079957A (zh) * | 2022-07-20 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 请求处理方法、装置、控制器、设备及存储介质 |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642497B2 (en) * | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
CN108959108B (zh) * | 2017-05-26 | 2021-08-24 | 上海宝存信息科技有限公司 | 固态硬盘访问方法以及使用该方法的装置 |
US10884926B2 (en) | 2017-06-16 | 2021-01-05 | Alibaba Group Holding Limited | Method and system for distributed storage using client-side global persistent cache |
US10852990B2 (en) * | 2017-08-02 | 2020-12-01 | Samsung Electronics Co., Ltd. | Hybrid framework of NVMe-based storage system in cloud computing environment |
CN109656833B (zh) | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据储存装置 |
CN109656834B (zh) * | 2017-10-12 | 2022-11-11 | 慧荣科技股份有限公司 | 数据管理方法以及数据储存系统 |
TWI685847B (zh) * | 2017-10-12 | 2020-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置之非揮發式記憶體的命名空間規劃 |
US10860334B2 (en) | 2017-10-25 | 2020-12-08 | Alibaba Group Holding Limited | System and method for centralized boot storage in an access switch shared by multiple servers |
US10877898B2 (en) | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
CN108255424B (zh) * | 2017-12-28 | 2021-01-12 | 深圳忆联信息系统有限公司 | 一种NVMe固态硬盘IO响应延迟的保障方法 |
US10891239B2 (en) * | 2018-02-07 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for operating NAND flash physical space to extend memory capacity |
US10496548B2 (en) | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US10831404B2 (en) | 2018-02-08 | 2020-11-10 | Alibaba Group Holding Limited | Method and system for facilitating high-capacity shared memory using DIMM from retired servers |
CN108595115B (zh) * | 2018-03-27 | 2021-10-01 | 深圳忆联信息系统有限公司 | 一种提高ssd垃圾回收效率的方法 |
WO2019222958A1 (en) | 2018-05-24 | 2019-11-28 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
CN111902804B (zh) | 2018-06-25 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 用于管理存储设备的资源并量化i/o请求成本的系统和方法 |
US10921992B2 (en) | 2018-06-25 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency |
US10564872B2 (en) * | 2018-06-29 | 2020-02-18 | Western Digital Technologies, Inc. | System and method for dynamic allocation to a host of memory device controller memory resources |
US10871921B2 (en) | 2018-07-30 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for facilitating atomicity assurance on metadata and data bundled storage |
US10747673B2 (en) | 2018-08-02 | 2020-08-18 | Alibaba Group Holding Limited | System and method for facilitating cluster-level cache and memory space |
US10996886B2 (en) | 2018-08-02 | 2021-05-04 | Alibaba Group Holding Limited | Method and system for facilitating atomicity and latency assurance on variable sized I/O |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
US10852948B2 (en) | 2018-10-19 | 2020-12-01 | Alibaba Group Holding | System and method for data organization in shingled magnetic recording drive |
US10691592B2 (en) * | 2018-10-30 | 2020-06-23 | Micron Technology, Inc. | Error-checking in namespaces on storage devices using a namespace table and metadata |
US10795586B2 (en) | 2018-11-19 | 2020-10-06 | Alibaba Group Holding Limited | System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash |
KR20200072639A (ko) | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US10977122B2 (en) | 2018-12-31 | 2021-04-13 | Alibaba Group Holding Limited | System and method for facilitating differentiated error correction in high-density flash devices |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US11132291B2 (en) | 2019-01-04 | 2021-09-28 | Alibaba Group Holding Limited | System and method of FPGA-executed flash translation layer in multiple solid state drives |
US10860420B2 (en) | 2019-02-05 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for mitigating read disturb impact on persistent memory |
US11200337B2 (en) | 2019-02-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for user data isolation |
US10970212B2 (en) | 2019-02-15 | 2021-04-06 | Alibaba Group Holding Limited | Method and system for facilitating a distributed storage system with a total cost of ownership reduction for multiple available zones |
US10783035B1 (en) | 2019-02-28 | 2020-09-22 | Alibaba Group Holding Limited | Method and system for improving throughput and reliability of storage media with high raw-error-rate |
US10891065B2 (en) | 2019-04-01 | 2021-01-12 | Alibaba Group Holding Limited | Method and system for online conversion of bad blocks for improvement of performance and longevity in a solid state drive |
US10922234B2 (en) | 2019-04-11 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive |
US10908960B2 (en) | 2019-04-16 | 2021-02-02 | Alibaba Group Holding Limited | Resource allocation based on comprehensive I/O monitoring in a distributed storage system |
KR102263040B1 (ko) * | 2019-04-23 | 2021-06-09 | 삼성전자주식회사 | 멀티 코어 솔리드 스테이트 드라이브의 운용 방법 |
US11169873B2 (en) | 2019-05-21 | 2021-11-09 | Alibaba Group Holding Limited | Method and system for extending lifespan and enhancing throughput in a high-density solid state drive |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11074124B2 (en) | 2019-07-23 | 2021-07-27 | Alibaba Group Holding Limited | Method and system for enhancing throughput of big data analysis in a NAND-based read source storage |
US11126561B2 (en) | 2019-10-01 | 2021-09-21 | Alibaba Group Holding Limited | Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US10997019B1 (en) | 2019-10-31 | 2021-05-04 | Alibaba Group Holding Limited | System and method for facilitating high-capacity system memory adaptive to high-error-rate and low-endurance media |
US11200159B2 (en) | 2019-11-11 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating efficient utilization of NAND flash memory |
US11119847B2 (en) | 2019-11-13 | 2021-09-14 | Alibaba Group Holding Limited | System and method for improving efficiency and reducing system resource consumption in a data integrity check |
US11169855B2 (en) * | 2019-12-03 | 2021-11-09 | Sap Se | Resource allocation using application-generated notifications |
CN111103960B (zh) * | 2019-12-22 | 2021-06-29 | 北京浪潮数据技术有限公司 | 一种Nvme SSD及其复位方法和系统 |
US11042307B1 (en) | 2020-01-13 | 2021-06-22 | Alibaba Group Holding Limited | System and method for facilitating improved utilization of NAND flash based on page-wise operation |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
JP2021114038A (ja) | 2020-01-16 | 2021-08-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US10872622B1 (en) | 2020-02-19 | 2020-12-22 | Alibaba Group Holding Limited | Method and system for deploying mixed storage products on a uniform storage infrastructure |
US10923156B1 (en) | 2020-02-19 | 2021-02-16 | Alibaba Group Holding Limited | Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive |
US11150986B2 (en) | 2020-02-26 | 2021-10-19 | Alibaba Group Holding Limited | Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction |
US11573737B2 (en) | 2020-03-02 | 2023-02-07 | Silicon Motion, Inc. | Method and apparatus for performing disk management of all flash array server |
US11144250B2 (en) | 2020-03-13 | 2021-10-12 | Alibaba Group Holding Limited | Method and system for facilitating a persistent memory-centric system |
US11200114B2 (en) | 2020-03-17 | 2021-12-14 | Alibaba Group Holding Limited | System and method for facilitating elastic error correction code in memory |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11218165B2 (en) | 2020-05-15 | 2022-01-04 | Alibaba Group Holding Limited | Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11494098B2 (en) | 2020-06-30 | 2022-11-08 | Western Digital Technologies, Inc. | Variable performance storage devices |
US11262923B2 (en) * | 2020-07-08 | 2022-03-01 | Samsung Electronics Co., Ltd. | Method for managing namespaces in a storage device using an over-provisioning pool and storage device employing the same |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
CN111736780B (zh) * | 2020-08-07 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的擦除方法、装置、设备及存储介质 |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
EP4180936A1 (en) * | 2021-11-10 | 2023-05-17 | Samsung Electronics Co., Ltd. | Virtualized system and method of controlling access to nonvolatile memory device in virtualization environment |
US20240168905A1 (en) | 2022-11-18 | 2024-05-23 | Samsung Electronics Co., Ltd. | Centralized storage device, in-vehicle electronic system including the same, and method of operating the same |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
CN1828555A (zh) * | 2005-02-07 | 2006-09-06 | 三星电子株式会社 | 支持多存储器映射方案的快闪存储器控制器件及其方法 |
CN101527004A (zh) * | 2008-03-06 | 2009-09-09 | 三星电子株式会社 | 数据存储设备及其数据管理方法 |
US20110283052A1 (en) * | 2010-05-14 | 2011-11-17 | Tdk Corporation | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
US20120246443A1 (en) * | 2011-03-21 | 2012-09-27 | Anobit Technologies Ltd. | Independent management of data and parity logical block addresses |
US20150052295A1 (en) * | 2013-08-14 | 2015-02-19 | Skyera, Inc. | Address translation for a non-volatile memory storage device |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334134B1 (en) * | 1998-08-18 | 2001-12-25 | International Business Machines Corporation | Insert performance on a multi-system transaction environment |
US6598143B1 (en) * | 2000-02-24 | 2003-07-22 | International Business Machines Corporation | Method to increase performance of acquiring free memory pages |
JP4683546B2 (ja) * | 2005-07-15 | 2011-05-18 | 国立大学法人 東京大学 | データベースの再編成方法及びデータベース再編成システム |
US8819092B2 (en) * | 2005-08-16 | 2014-08-26 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
KR101354152B1 (ko) * | 2006-12-18 | 2014-01-27 | 삼성전자주식회사 | 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치 |
US8954654B2 (en) | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
JP2012058770A (ja) * | 2010-09-03 | 2012-03-22 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US10241908B2 (en) | 2011-04-26 | 2019-03-26 | Seagate Technology Llc | Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage |
US20150220432A1 (en) * | 2011-09-28 | 2015-08-06 | Mediatek Inc. | Method and apparatus for managing at least one non-volatile memory |
JP5937702B2 (ja) * | 2012-02-01 | 2016-06-22 | エンパイア テクノロジー ディベロップメント エルエルシー | クラウドカートグラフィの防止 |
US9645917B2 (en) | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
CN103064632B (zh) * | 2012-12-04 | 2016-03-23 | 记忆科技(深圳)有限公司 | 固态硬盘及其虚拟化方法、系统 |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN103902632B (zh) | 2012-12-31 | 2018-01-02 | 华为技术有限公司 | 键值存储系统中构建文件系统的方法、装置及电子设备 |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US20140304453A1 (en) | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
CN103269361A (zh) * | 2013-05-03 | 2013-08-28 | 北京理工大学 | 一种用于深空通信的文件传输装置及其设计方法 |
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 |
US9612973B2 (en) | 2013-11-09 | 2017-04-04 | Microsoft Technology Licensing, Llc | Using shared virtual memory resources for performing memory-mapping |
IN2013CH05400A (zh) | 2013-11-22 | 2015-05-29 | Ineda Systems Pvt Ltd | |
CN103744612A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于闪存转换层的精简配置的方法及其系统 |
US9887008B2 (en) | 2014-03-10 | 2018-02-06 | Futurewei Technologies, Inc. | DDR4-SSD dual-port DIMM device |
US9501245B2 (en) * | 2014-05-02 | 2016-11-22 | Cavium, Inc. | Systems and methods for NVMe controller virtualization to support multiple virtual machines running on a host |
US10235056B2 (en) * | 2014-09-26 | 2019-03-19 | Western Digital Technologies, Inc. | Storage device health diagnosis |
US9438426B2 (en) | 2014-10-03 | 2016-09-06 | Seagate Technology Llc | Key-value data storage device with hybrid architecture |
-
2016
- 2016-04-19 US US15/133,187 patent/US10235198B2/en active Active
- 2016-11-10 KR KR1020160149701A patent/KR102414721B1/ko active IP Right Grant
- 2016-12-22 TW TW109104429A patent/TWI765225B/zh active
- 2016-12-22 TW TW105142579A patent/TWI688860B/zh active
-
2017
- 2017-02-15 CN CN201710080583.7A patent/CN107122314B/zh active Active
- 2017-02-15 CN CN202010284025.4A patent/CN111488294B/zh active Active
- 2017-02-23 JP JP2017031935A patent/JP6913481B2/ja active Active
-
2019
- 2019-02-04 US US16/266,848 patent/US11048541B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
CN1828555A (zh) * | 2005-02-07 | 2006-09-06 | 三星电子株式会社 | 支持多存储器映射方案的快闪存储器控制器件及其方法 |
CN101527004A (zh) * | 2008-03-06 | 2009-09-09 | 三星电子株式会社 | 数据存储设备及其数据管理方法 |
US20110283052A1 (en) * | 2010-05-14 | 2011-11-17 | Tdk Corporation | Memory controller, flash memory system with memory controller, and method of controlling flash memory |
US20120246443A1 (en) * | 2011-03-21 | 2012-09-27 | Anobit Technologies Ltd. | Independent management of data and parity logical block addresses |
US20150052295A1 (en) * | 2013-08-14 | 2015-02-19 | Skyera, Inc. | Address translation for a non-volatile memory storage device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241308A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 一种虚拟机标识处理方法、装置及相关设备 |
CN112241308B (zh) * | 2020-10-21 | 2022-07-29 | 海光信息技术股份有限公司 | 一种虚拟机标识处理方法、装置及相关设备 |
CN115079957A (zh) * | 2022-07-20 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 请求处理方法、装置、控制器、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107122314B (zh) | 2020-04-10 |
TW202024923A (zh) | 2020-07-01 |
JP6913481B2 (ja) | 2021-08-04 |
US10235198B2 (en) | 2019-03-19 |
US20170242722A1 (en) | 2017-08-24 |
JP2017151988A (ja) | 2017-08-31 |
KR20170099746A (ko) | 2017-09-01 |
US11048541B2 (en) | 2021-06-29 |
CN111488294B (zh) | 2023-11-07 |
TWI688860B (zh) | 2020-03-21 |
US20190179660A1 (en) | 2019-06-13 |
TW201730771A (zh) | 2017-09-01 |
TWI765225B (zh) | 2022-05-21 |
CN107122314A (zh) | 2017-09-01 |
KR102414721B1 (ko) | 2022-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122314B (zh) | 大容量存储器装置、包括其的系统以及访问其的方法 | |
US10423435B1 (en) | Page swapping in virtual machine environment | |
US20220350714A1 (en) | Virtual device composition in a scalable input/output (i/o) virtualization (s-iov) architecture | |
US11768698B2 (en) | Mechanism to dynamically allocate physical storage device resources in virtualized environments | |
US6880022B1 (en) | Transparent memory address remapping | |
US11487568B2 (en) | Data migration based on performance characteristics of memory blocks | |
JP2009110518A (ja) | 仮想マシンデバイスの動的割り当て | |
US11194735B2 (en) | Technologies for flexible virtual function queue assignment | |
US20210181986A1 (en) | Storage device, storage system and operating method thereof | |
US10146440B2 (en) | Apparatus, system and method for offloading collision check operations in a storage device | |
US20230153236A1 (en) | Data writing method and apparatus | |
JP7311981B2 (ja) | 機械学習訓練のためのスラブ基盤のメモリ管理 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US20200201758A1 (en) | Virtualized input/output device local memory management | |
US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof |
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 |