CN111868678B - 混合存储器系统 - Google Patents
混合存储器系统 Download PDFInfo
- Publication number
- CN111868678B CN111868678B CN201980020195.7A CN201980020195A CN111868678B CN 111868678 B CN111868678 B CN 111868678B CN 201980020195 A CN201980020195 A CN 201980020195A CN 111868678 B CN111868678 B CN 111868678B
- Authority
- CN
- China
- Prior art keywords
- command
- write
- memory
- memory system
- hybrid 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 517
- 230000035945 sensitivity Effects 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 60
- 238000012545 processing Methods 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 12
- 230000001747 exhibiting effect Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 3
- 238000012005 ligant binding assay Methods 0.000 description 53
- 230000008569 process Effects 0.000 description 28
- 238000012546 transfer Methods 0.000 description 27
- 238000013459 approach Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000005192 partition Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003252 repetitive effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003989 repetitive behavior Effects 0.000 description 1
- 208000013406 repetitive behavior Diseases 0.000 description 1
- 239000007787 solid Substances 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
一种实例设备包含用以耦合到主机的混合存储器系统及耦合到所述混合存储器系统的控制器。所述控制器可经配置以向指令指派敏感度且致使所述命令至少部分基于所述经指派敏感度被选择性地转移到所述混合存储器系统。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及与混合存储器系统有关的设备及方法。
背景技术
存储器装置通常被提供作为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等。非易失性存储器可通过在不被供电时保持所存储的数据来提供持久性数据且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等。
计算系统通常包含数个处理资源(例如,一或多个处理器),其可检索及执行指令且将所执行指令的结果存储到合适位置。处理资源可包括(例如)可用于执行用于计算系统的操作的指令的数个功能单元,例如算术逻辑单元(ALU)电路系统、浮点单元(FPU)电路系统及组合逻辑块。
将指令提供到功能单元电路系统以供执行可能涉及到计算系统中的数个组件。指令可例如由处理资源执行,例如控制器及/或主机处理器。此外,因为不同类型的操作可通过功能单元电路在一个或多个时钟循环中执行,所以指令及数据的中间结果也可被定序及/或缓冲。
发明内容
根据本发明的一方面,提供一种混合存储器系统104、204的设备100、200。所述设备包括:所述混合存储器系统104、204,其用以耦合到主机102、202;及控制器206,其耦合到所述混合存储器系统104、204,其中所述控制器206经配置以:向命令指派敏感度;及致使所述命令至少部分基于所述经指派敏感度被选择性地转移到所述混合存储器系统104、204。
根据本发明的另一方面,提供一种混合存储器系统104、204的设备100、200。所述设备包括:所述混合存储器系统104、204,其用以耦合到主机102、202;及控制器206,其耦合到所述混合存储器系统104、204,其中所述控制器206经配置以:识别由所述主机102、202执行的特定类型的命令业务;及致使所述命令业务至少部分基于所述经识别特性被选择性地转移到所述混合存储器系统104、204。
根据本发明的又另一方面,提供一种用于混合存储器系统104、204的方法100、200。所述方法包括:向命令指派敏感度;及至少部分基于所述经指派敏感度选择性地将所述命令转移到所述混合存储器系统104、204。
根据本发明的另一方面,提供一种用于混合存储器系统104、204的方法100、200。所述方法包括:识别由主机102、202执行的特定类型的命令业务;及致使所述命令业务至少部分基于所述经识别特性被选择性地转移到可耦合到所述主机102、202的所述混合存储器系统104、204。
附图说明
图1是根据本发明的数个实施例的呈包含框架、主机及存储器系统的计算系统的形式的设备的框图。
图2是根据本发明的数个实施例的呈包含包括主存储器的主机及存储器系统的计算系统的形式的设备的框图。
图3A说明根据本发明的数个实施例的用以将逻辑块地址范围映射到混合存储器系统的实例流程图。
图3B说明根据本发明的数个实施例的用以将混合存储器系统的部分映射到主机存储器(例如,与主机相关联的主存储器)的实例流程图317。
图3C说明用以响应于代码分页操作的执行选择性地将数据传送到混合存储器系统的实例流程图。
图4说明根据本发明的数个实施例的用于选择性地将命令业务传送到混合存储器系统的实例流程图。
图5A说明根据本发明的数个实施例的用以选择性地将命令转移到混合存储器系统的实例流程图。
图5B说明根据本发明的数个实施例的用以选择性地将命令业务转移到混合存储器系统的实例流程图。
图5C说明根据本发明的数个实施例的用以选择性地将具有经识别写入模式的命令业务转移到混合存储器系统的实例流程图。
图5D说明用以按经识别命令特性选择性地转移到混合存储器系统的实例流程图。
具体实施方式
本发明包含与混合存储器系统有关的设备及方法。一种实例设备包含要耦合到主机的混合存储器系统及耦合到所述混合存储器系统的控制器。所述控制器可经配置以向命令指派敏感度,且致使命令至少部分基于经指派敏感度被选择性地转移到混合存储器系统。
例如个人计算机、膝上型计算机、平板计算机、平板手机、智能电话、物联网(IoT)启用装置等的计算系统可包含用以存储与计算系统相关联的数据及/或指令的一或多个存储器资源。如本文中使用,“IoT启用装置”包含物理装置、交通工具、家用电器及经嵌入具有电子设备、软件、传感器、致动器及/或使得此类物体能够连接及交换数据的网络连接性的其它装置。IoT启用装置的实例包含可穿戴技术、智能家用装置、智能购物系统及监测装置以及其它信息物理系统。另外,计算系统可包含用以执行系统软件(例如操作系统)以向在计算系统上运行的应用程序提供共用服务的一或多个处理资源。操作系统的实例包含等。
在操作期间,计算系统可执行指令(例如固件、计算机代码、元代码、框架文件等)以向计算系统提供功能性。这些指令中的至少部分可比其它指令更频繁地执行,及/或这些指令中的至少部分可在计算系统的特定操作时间执行。
举例来说,如果计算系统尝试多次读取指令的同一部分,那么可能发生异常(例如,故障)。在一些方法中,产生此类异常的指令可经由预读机制(或其它合适的预提取机制)经加载到与计算系统相关联的高速缓存中以减少计算系统在多次存取指令时使用的时间量。尽管预提取已经历异常(或很可能将经历异常)的指令可减少计算系统在多次存取指令时使用的时间量,但用于此类方法中的高速缓存通常不如其它存储器资源那样快。
在一些实施例中,当部署于用户空间及/或内核服务或库中的程序(例如,应用程序)尝试存取存储于与计算系统或计算系统的处理器相关联的内部高速缓存中的指令且当尝试存取指令时指令不在计算系统的存储器(例如,RAM)中时,可发生例如页故障的异常。此类异常可通过存取所述指令存储在其上的存储装置及从所述存储装置加载与指令相关联的存储器页来补救。如果预读操作是由计算系统进行,那么此类异常可通过从存储装置加载与指令相关联的连续存储器来补救。
作为另一实例,如果物理存储器资源被过度利用,例如,当多个过程在虚拟存储器中执行时,那么指令可在执行之前被映射到物理存储器(例如,物理存储器页)。然而,如果用以将指令映射到其的物理存储器不足,那么物理存储器资源可能被过度利用,这可能导致计算系统性能降低及/或计算系统的读取/写入时间增加。
在又另一实例中,当计算系统正在操作时,特定写入模式可为共同的。举例来说,特定指令可展现重复及/或可预测写入模式;然而,在一些方法中,计算系统可能不能存取的关于这些写入模式的信息。因此,在一些方法中,在重复地提取及写入具有重复及/或可预测读取或写入模式的指令时可能会消耗时间及/或处理资源。
相比之下,本文中的实施例可减少在寻址当指令被多次存取时发生的异常时消耗的时间量及/或处理资源量,可提供利用虚拟存储器寻址的计算系统的计算速度及/或读取/写入时间的增加,及/或可缓解计算系统在重复提取展现重复及/或可预测读取或写入模式的指令时消耗的时间及/或处理资源。
举例来说,在一些实施例中,与计算系统相关联的一或多个存储器资源可经部署成混合存储装置的形式。举例来说,至少一个存储器资源可包括特定类型的存储器资源,而至少一个其它存储器资源可包括不同特定类型的存储器资源。作为非限制性实例,与计算系统相关联的一个存储器资源可为非易失性存储器资源,例如3D Xpoint非易失性存储器,且第二存储器资源可为不同非易失性存储器存储器,例如快闪存储器(例如存储卷)。实施例不限于这些特定实例;然而,且包括混合存储装置的存储器资源可包含其它类型的非易失性存储器(例如,ROM、PROM、EPROM、EEPROM、NVRAM等)及/或易失性存储器(例如,RAM、DRAM、SRAM等)的组合。
在一些实施例中,如本文中更详细描述,被确定为展现特定特性的指令可从第一存储器资源或第二存储器资源存储及/或存取。举例来说,在一些实施例中,某些指令可响应于确定在所述指令是从第一存储器资源存储及/或存取时计算系统可实现较低时延而从第一存储器资源存储及/或存取。
在本发明的以下详细描述中,参考形成本发明的一部分且通过说明展示可如何实践本发明的一或多个实施例的附图。足够详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程改变、电改变及/或结构改变。如本文中使用,例如特定来说关于图中的参考数字的“N”等的标志符指示可包含如此指定的特定特征的数目。如本文使用,“数个”特定事物指代此类事物的一或多者(例如,数个存储器阵列可指代一或多个存储器阵列)。“多个”意在指代此类事物中的一者以上。
本文的图遵循编号惯例,其中第一数字或前几个数字对应于图号且剩余数字识别图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,104可指代图1中的元件“04”,且类似元件在图2中可被标注为204。如应了解,本文中的各种实施例中展示的元件可经添加、交换及/或消除以便提供本发明的数个额外实施例。另外,如应了解,图中提供的元件的比例及相对尺度意在说明本发明的某些实施例,且不应以限制意义来理解。
图1是根据本发明的数个实施例的呈包含框架110、主机102及存储器系统104的计算系统100的形式的设备的框图。如本文中使用,也可单独地将框架110、主机102及/或存储器系统104视作“设备”。在一些实施例中,存储器系统104可为结合图2所描述的混合存储器系统。
系统100包含耦合(例如,连接)到存储器系统104的主机102,存储器系统104包含在本文图2中所说明的一或多个存储器资源。主机102可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话、存储器读卡器、IoT启用装置以及各种其它类型的主机。主机102可包含系统母板及/或背板且可包含数个处理资源(例如,一或多个处理器、微处理器或某种其它类型的控制电路系统)。系统100可包含单独的集成电路,或主机102及存储器系统104两者都可在同一集成电路上。系统100可为例如服务器系统及/或高性能计算(HPC)系统及/或其一部分。
为了清楚起见,系统100已经简化以集中于与本发明特定相关的特征。存储器系统104可包含一或多个存储器资源,例如DRAM阵列(例如,2T2C DRAM阵列、3T DRAM阵列等)、FeRAM、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列、3D Xpoint存储器、NOR快闪阵列及/或包含(例如)控制器、3D Xpoint存储器部分及NAND快闪部分的存储子系统。
框架110可包含可由与主机102相关联的处理资源执行以促进系统100的操作的指令。举例来说,所述框架可包含可由主机102的处理资源执行以控制例如读取、写入、打开、关闭等的计算操作的指令,提供一或多个文件系统(例如,虚拟文件系统、例如扩展文件系统的文件系统等)的指令及/或对应于块装置的一或多个指令。在一些实施例中,框架110可为框架,例如/>框架。另外,框架110可包含可执行以允许在主机102上运行的操作系统与耦合到主机102的一或多个装置通信的驱动程序(例如,一或多个软件驱动程序)。
在一些实施例中,框架110可表示操作系统。举例来说,框架110可表示具有与其相关联的内核的操作系统。在此类实施例中,框架110可被认为是“软件存储堆叠”(例如,框架110可表示操作系统的基于软件的内核实施方案)。因此,框架110可具有与其相关联的用以存储可执行以操作计算系统100的指令的一或多个存储器资源,及/或框架110可包含其上存储有由框架110用于计算系统100的操作的指令的虚拟化存储器资源。实施例不限于此;然而,且由框架110利用的指令可经存储于存储器系统104或主机的主存储器中及/或从存储器系统104或主机的主存储器存取,如本文中进一步详细地描述。
如上文描述,框架110可包含经配置以执行某些任务及/或操作的各种组件。举例来说,框架110可包含系统调用组件111、虚拟文件系统组件112、文件系统组件113、块装置组件114及/或驱动程序组件115。
系统调用组件111可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可经供应具有指令最终可在其上经执行以从指令将执行于其上的操作系统的内核请求一或多个服务的硬件资源。在一些实施例中,系统调用组件111可经由应用程序编程接口来存取。当实施与系统调用组件111相关联的指令时,所述指令可将对计算系统100的控制从用户空间转移到内核空间。在一些实施例中,此控制转移可响应于软件中断而发生。
虚拟文件系统组件112可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可经供应具有指令最终可在其上经执行以在文件系统组件113的顶部上提供抽象层的硬件资源。举例来说,虚拟文件系统组件112可包含可经执行以存取本地及/或网络存储装置的指令。在一些实施例中,虚拟文件系统112可包含可经执行以透明地(例如,无客户端应用程序交互)存取本地及/或网络存储装置的指令。与虚拟文件系统组件112相关联的指令可指定内核与文件系统组件113之间的接口。
文件系统组件113可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可经供应具有指令最终可在其上经执行以控制与计算系统100相关联的数据如何被存储及/或检索的硬件资源。举例来说,文件系统组件113可包含可执行以从存储器系统104存储及/或检索数据的指令,如本文中更详细地论述。
块装置组件114可存储可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可经供应具有指令最终可在其上经执行以引用与计算系统100相关联的特定存储器位置或多个存储器位置的硬件资源。在一些实施例中,块装置组件114可包括可提供对计算系统100的经缓冲存取的硬盘驱动器及/或固态驱动器。举例来说,与块装置组件114相关联的指令可经执行以提供对与计算系统100相关联的装置(例如,存储器系统104)的存取。
驱动程序组件115可包含可由处理资源(例如,与主机相关联的处理资源)执行的指令及/或可经供应具有指令最终可在其上经执行以为与计算系统100相关联的各个组件提供驱动程序支持的硬件资源。举例来说,驱动程序组件115可经配置以执行指令来加载及/或更新与主机102、存储器系统104及/或可与计算系统100相关联的其它外围装置(未展示)相关联的驱动程序。
在一些实施例中,框架110的各个组件可展现不同存取模式,其中至少部分可展现可预测及/或重复行为,如本文中更详细描述。因此,本文中描述的实施例可允许混合存储系统以促进框架110、主机102及/或存储器系统104的各个组件及/或与所述各个组件相关联的存取模式的管理。
框架110可经由主机102耦合到存储器系统104。举例来说,主机102可包含经配置以执行存储于框架110中的指令(例如,与系统调用组件111、虚拟文件系统组件112、文件系统组件113、块装置组件114及/或驱动程序组件115相关联的指令)的一或多个处理资源(例如,计算机处理器,例如中央处理单元及/或其它计算机处理器)。
图2是根据本发明的数个实施例的呈包含包括主存储器209的主机202及存储器系统204(例如,混合存储器系统)的计算系统200的形式的设备的框图。主存储器209可为可用于存储与计算系统200的操作相关联的一或多个数据页的易失性存储器,例如RAM、DRAM、SRAM等。实施例不限于易失性存储器;然而,且主存储器可包含非易失性存储器作为易失性存储器的补充或替代。
如图2中说明,混合存储器系统204可包含耦合到控制器206的一或多个存储器资源208-1、…、208-N。如图2中展示,控制器206经由相同通信通道210-1、…、210-N通信地耦合到存储器资源208-1、…、208-N。通信通道210-1、…、210-N可允许数据及/或命令在控制器206与存储器资源208-1、…、208-N之间传送。在各种实施例中,控制器206负责致使来自框架(例如,图1中说明的框架110)及/或主机202的指令被执行及/或将对存储器系统204的存取进行排序。
控制器206可为状态机、序列发生器或某种其它类型的控制器,且包含呈专用集成电路(ASIC)、现场可编程门阵列等的形式的硬件及/或固件(例如,微代码指令)。控制器206可控制(例如)经执行以促进计算系统200的操作的指令的存取模式。如本文中使用,主机202、存储器系统204、控制器206及/或存储器资源208-1、…、208-N也可被单独视为“设备”。
在一些实施例中,存储器系统204可为混合存储系统且可包含一或多个存储器资源208-1、…、208-N。存储器资源208-1、…、208-N可为不同种类的存储器资源。举例来说,存储器资源208-1可为新兴的非易失性存储器资源,例如3D Xpoint存储器资源、铁电RAM(FeRAM)等,而存储器资源208-N可为NAND存储器资源。实施例不限于这些特定实例,且存储器资源208-1及/或存储器资源208-N可包括其它合适类型的存储器资源。
在计算系统200的操作期间,存储器系统204可用于代码分页。如本文中使用,“代码分页”是一种存储器管理方案,计算系统200通过所述存储器管理方案存储数据及从存储器系统204检索数据以供主机202的主存储器209(例如,系统存储器)使用。在一些实施例中,可执行以促进代码分页的指令(其可经存储于主机202的主存储器209中)可作为计算系统200的操作的部分经执行。
然而,在计算系统200的操作期间,可执行用以存取主存储器209的同一部分的多个指令(例如,用以存储数据及/或从主存储器209检索数据的指令)。此可导致计算系统200产生异常(例如,故障)。在一些实施例中,程序可存取未映射到计算系统200的主存储器209中的数据及/或指令。在此情况下,可从存储器系统204存取数据及/或指令,借此处置由于数据及/或指令无法从主存储器209存取而发生的页故障。在一些方法中,此异常可通过提供对除主存储器209以外的存储器位置的读取及/或写入存取来处置(例如,补救)。举例来说,在一些方法中,预读机制可用于预提取已经历异常的指令集且将其存储于与计算系统200及/或主机202相关联的高速缓存中以用于后续执行。
此类异常在计算系统200的操作中可能十分常见。举例来说,在多处理计算环境中,且可产生大量的读取及/或写入数据-在一些实例中,高达每天数百千兆字节。在一些实施例中,为了缓解在可导致异常产生的读取/写入操作中消耗的处理资源及/或时间,将产生阈值数目个异常的指令存储于存储器资源(例如,存储器资源208-1)中以减小读取/写入时延及减少预提取指令集时消耗的处理资源量(如在利用预读机制时所发生)可为有益的。
举例来说,在一些实施例中,控制器206可经配置以确定对应于对特定数据集的读取或写入存取请求的异常将要发生(或已发生),且致使特定数据集被写入到存储器资源208-1以用于由计算系统200进行后续执行及/或检索。在一些实施例中,特定数据集可经存储于存储器资源208-1中的分区或LBA块中。分区及/或LBA块可经分配(例如,保留)使得除了特定数据外的数据(例如,不对应于读取或写入存取请求的数据)不会被存储于分区及/或LBA块中,如本文中结合图3A、3B及3C更详细描述。
如上文描述,主机的主存储器209可为物理存储器资源,例如易失性存储器资源(例如,RAM、DRAM、SRAM等)、非易失性存储器资源(例如,HDD、快闪存储器、铁电RAM等)或其组合。因此,可经存储于主存储器209中的数据量可由于主存储器209的物理性质而受到限制。举例来说,主存储器209可包含其中可存储数据的有限空间量。
因此,在一些操作条件下,主存储器209可变满及/或可在主机202尝试将过多的数据存储于主存储器209中时展现降低的性能。此在利用虚拟存储器技术将存储器资源(例如,主存储器209)抽象化来制造存储器空间量大于由主存储器209定义的实际物理存储器空间量的错觉的系统中进一步恶化。
在此类实施方案中,虚拟地址空间可使用逻辑到物理寻址技术来管理(例如,通过控制电路系统,例如与主机202相关联的存储器管理单元)。举例来说,虚拟地址可经指派到对应物理地址,所述物理地址可对应于过程最终可在其上执行的主存储器209的物理位置(例如,一或多个存储器页等)。然而,当多个虚拟存储器地址经映射到同一物理存储器地址时,计算系统200可经历性能降低及/或可中止(例如,过程可被终止及/或可能表现异常)。
举例来说,在利用虚拟存储器技术的计算实施方案中,一或多个过程可引用可映射到主存储器209的物理存储器位置上的一或多个虚拟存储器位置(例如,存储器页、存储器块等)。此外,当主存储器209满时,虚拟存储器页可能无法被调用,这是因为可用以执行过程的物理存储器资源不足。
在一些方法中,此可通过将主存储器209中的数据页传送到交换空间以腾出主存储器209的物理存储器资源来缓解。举例来说,在一些方法中,操作系统的内核可包含释放经分配用于匿名页的主存储器209的物理存储器资源的机制。如本文中使用,“匿名页”是不具有相关联文件的存储器页。举例来说,匿名页可为未通过文件备份的存储器页(例如,不具有指定的文件的存储器页)。然而,尽管匿名页可不与文件相关,但匿名页可能与过程及/或过程工作集相关。过程及过程工作集的非限制性实例包含数据结构,例如堆、堆叠、常量等。如本文中使用,过程工作集包含主机的虚拟地址空间中的存储于主机的物理存储器(例如主机的主存储器)中的一或多个数据页。举例来说,过程工作集含有主机的主存储器可见的存储器页(例如,最近被主机引用的页)。
在此类方法中,页(例如,匿名页)的相关内容可被临时传送(例如,复制)到交换空间及/或交换装置。在页随后被引用的情况下,页可被传送(例如,复制)回到主存储器209。然而,由于与将页从主存储器209传送到交换空间或交换装置及接着随后将页从交换空间或交换装置传送回到主存储器209相关联的时间及能量消耗,传统交换技术可能是不太合意的,尤其是在其中此类技术被重复利用的实施方案中。如本文中使用,过程工作集包含主机的虚拟地址空间中的存储于主机的物理存储器(例如主机的主存储器)中的一或多个数据页。举例来说,过程工作集含有主机的主存储器可见的存储器页(例如,最近被主机引用的页)。
为了促进数据(例如对应于存储器页的数据)的选择性传送,在一些实施例中,混合存储器装置204的一部分可经配置以操作为交换装置(例如,可经配置以允许将存储器页选择性地传送到混合存储器系统204的部分及从混合存储器系统204的部分选择性地传送存储器页)。举例来说,存储器资源208-1的一部分可经配置以操作为交换装置使得存储器页被选择性地传送到存储器资源208-1的部分。在一些实施例中,存储器资源208-1的一或多个存储器页或与存储器资源208-1相关联的一或多个逻辑块地址可经分配以执行交换操作,如关于图4进一步详细描述。可在制造混合存储器系统204时(例如,在混合存储器系统204经提供以出售给终端用户之前)分配一或多个存储器页及/或一或多个逻辑块地址,或可在混合存储器系统204被初始化时(例如,在计算系统200启动时)分配一或多个存储器页及/或一或多个逻辑块地址。实施例不限于此;然而,且在一些实施例中,可在混合存储器系统204在计算系统200的运行时间期间动态地分配时分配一或多个存储器页及/或一或多个逻辑块地址。
在一些实施例中,经分配作为交换装置的混合存储器系统204的部分可为具有比混合存储器系统204的其它部分低的存取时间的混合存储器系统204的一部分。举例来说,存储器资源208-1可具有比存储器资源208-N低的存取时间,这是因为存储器资源208-1是新兴类型的存储器资源,例如3D Xpoint存储器资源。此外,在一些实施例中,经分配为交换装置的混合存储器系统204的部分可为具有比混合存储器系统204的其它部分高的耐久性的混合存储器系统204的一部分。
在一些实施例中,由主机202执行的过程及/或应用程序可依赖于数据库管理系统(DBMS),例如NoSQL、SQLite、基于云的DBMS或其它合适的DBMS。DBMS可允许终端用户创建、读取、更新及/或删除与计算系统200相关联的数据库中的数据。在一些实施例中,DBMS可根据可允许实现数据一致性及/或系统持续性的日志记录策略操作。DBMS可具有与其相关联的命令。在一些实施例中,与DBMS相关联的命令可至少部分基于指派到DBMS命令的敏感度被选择性地转移到混合存储器系统的一部分。
日志记录系统可为跟踪尚未交付给文件系统(例如,本文图1中说明的文件系统113)的变化的日志记录文件系统。在计算系统200的操作期间,日志记录系统可引发多次随机写入,这可使存储器系统204及/或主存储器209承受压力。举例来说,日志记录系统可引发多个同步随机及频繁写入,这可过度利用计算系统200的存储器及/或主存储器209借此使计算系统200及/或主存储器承受压力。
这些随机及频繁写入可引发较长时延,尤其是在基于快闪的存储器系统中,这是由于维护操作是在前台中执行(例如,在写入命令执行期间)。这些时延在基于快闪的存储器系统中在某些条件下可进一步恶化,所述条件例如当基于快闪的存储器系统以最大容量或接近最大容量操作时及/或当基于快闪的存储器系统已经操作达延长的时间段时。相比之下,混合存储器系统204可随着时间的推移及/或在混合存储器系统204以最大容量或接近最大容量操作时引发比基于快闪的存储器系统低的时延。
为了缓解与基于快闪的存储器系统相关联的缺点,一些实施例允许控制器206确定由DBMS处置的命令业务的敏感度及基于业务的经确定敏感度将指示符应用于特定类型的命令业务。命令业务的敏感度可为基于命令业务的特性,例如特定命令的执行频率、命令的大小、执行命令消耗的资源(例如,存储器资源及/或处理资源)量、可以其执行命令的速度或其它合适的敏感度特性。在一些实施例中,敏感度可基于与命令的执行相关联的写入时延。在此实例中,命令可响应于确定与命令的执行相关联的写入时延超过阈值写入时延而被选择性地转移到混合存储器系统204。
一旦控制器206已将指示符附加到命令,命令就可被选择性地转移到计算系统200的适当存储器位置。举例来说,重复、随机及/或频繁执行的命令业务(例如在计算系统200的操作期间由日志记录系统引发的同步小频繁及随机写入)可被选择性地转移到混合存储器装置204。在一些实施例中,命令业务可基于到与混合存储器系统204相关联的多个存储器资源208-1、…、208-N中的特定存储器资源(例如,存储器资源208-1)的指示符而被选择性地转移。
通过选择性地将命令业务的特定部分转移到混合存储器系统204,可实现相较于其中命令业务不被选择性地转移的方法或其中命令业务由基于快闪的存储器系统处置的方法较低的时延及/或增加的性能。
在一些实施例中,计算系统200的文件系统(例如,图1中说明的虚拟文件系统112,图1中说明的文件系统113)可为例如快闪友好型文件系统(F2FS)的快闪文件系统或例如Ext4的日志记录文件系统,但文件系统不限于这些特定实例。文件系统可通过在文件更新时更新的特定元数据更新来维持其结构。举例来说,计算系统200的文件系统可包括数据结构,例如表、数、数据阵列等,且可在与其相关联的文件更新时进行更新以维持文件系统的结构。
当文件系统更新时(例如,当元数据更新响应于文件更新经应用于文件系统时),以小随机写入执行更新。如上文描述,这些类型的小随机写入可使存储器系统204及/或主存储器209承受压力。这些随机写入可引发长的时延,尤其是在基于快闪的存储器系统中,这是由于维护操作是在前台中执行(例如,在写入命令执行期间)。这些时延在基于快闪的存储器系统中在某些条件下可进一步恶化,所述条件例如当基于快闪的存储器系统以最大容量或接近最大容量操作时及/或当基于快闪的存储器系统已经操作达延长的时间段时。相比之下,混合存储器系统204可随着时间的推移及/或在混合存储器系统204是以最大容量或接近最大容量操作时引发比基于快闪的存储器系统低的时延。
举例来说,在一些实施例中,与文件系统更新(例如,文件系统元数据更新)相关联的命令业务可被选择性地转移到计算系统200的适当存储器位置。在一些实施例中,计算系统200的适当存储器位置可为混合存储器系统204的一部分,例如存储器资源208-1。在一些实施例中,控制器206可经配置以致使文件系统更新被选择性地转移到混合存储器系统204的部分。
通过选择性地将文件系统写入转移到混合存储器系统204,可实现相较于其中文件系统写入不被选择性地转移的方法或其中文件系统写入由基于快闪的存储器系统处置的方法较低的时延及/或增加的性能。
在计算系统200的操作期间,特定文件系统(例如,图1中说明的虚拟文件系统112、图1中说明的文件系统113)可展现重复及/或可预测写入模式。举例来说,F2FS检查点及/或日志记录系统可以可预测方式重复写入某些命令及/或数据。可以小随机写入来写入这些命令及/或数据,如上文描述。
如上文描述,这些小随机写入可引发长的时延,尤其是在基于快闪的存储器系统中,这是由于维护操作是在前台中执行(例如,在写入命令执行期间)。这些时延在基于快闪的存储器系统中在某些条件下可进一步恶化,所述条件例如当基于快闪的存储器系统以最大容量或接近最大容量操作时及/或当基于快闪的存储器系统已经操作达延长的时间段时。相比之下,混合存储器系统204可随着时间的推移及/或在混合存储器系统204是以最大容量或接近最大容量操作时引发比基于快闪的存储器系统低的时延。
为了缓解与基于快闪的存储器系统相关联的缺点,一些实施例允许将小随机写入选择性地转移到混合存储器系统204的一部分。举例来说,计算系统200(或其一部分)可经配置以确定写入操作(例如,小随机写入)的源。在一些实施例中,与计算系统200相关联的文件系统及/或与计算系统200相关联的驱动程序可经配置以使提示(例如,指示符)与元数据写入及/或数据结构相关联。可将提示传送到写入命令中,且可将包含提示的写入命令传送到混合存储器系统204。在一些实施例中,在将写入命令及与其相关联的提示传送到混合存储器系统204之后,控制器206可进一步经配置以将此类文件系统写入(或元数据写入)转移到混合存储器系统204以减少存取时间及/或避免到主存储器209的耐久性,借此增加计算系统200的性能。
在一些实施例中,控制器206可经配置以选择性地将文件系统写入转移到混合存储器系统204的最适合于处置转移到其的命令业务的部分。举例来说,某些文件系统可展现特定命令业务模式,其可由特定类型的存储器最有效地处置。作为非限制性实例,在F2FS中,可以可确定存取模式执行日志结构文件系统(LFS)写入,其中数据被循序写入于未映射LBA上,此可非常适于NAND存储器。相比之下,可以可确定存取模式执行松弛空间回收(SSR)写入,其中数据被随机写入于经映射LBA上,此可非常适合于低时延存储器,例如3D Xpoint存储器。
因此,在一些实施例中,控制器206可选择性地将与可确定写入模式相关联的命令业务转移到最适合于处置特定类型的文件系统写入的混合存储器系统204的一部分。举例来说,控制器206可经配置以将LFS写入转移到可为NAND存储器的存储器资源208-N,及/或控制器206可经配置以将SSR写入转移到可为低时延新兴存储器资源的存储器资源208-1,如本文中描述。
在一些方法中,将对应于存取语义的信息传输到与计算系统200相关联的存储器装置是不可能的。举例来说,在一些方法中,对应于写入存取请求是与用户数据相关联还是与文件系统元数据相关联的信息不会被传输到与计算系统200相关联的存储器装置。因此,在一些方法中,如果特定LBA或LBA范围经存储于在其中执行分页过程的存储位置中,那么与计算系统200相关联的存储器装置可能不具备关于所述特定LBA或LBA范围是否将由读取或写入命令频繁地存取的任何知识。
相比之下,本文中的实施例允许控制器206确定写入存取请求是(例如)与用户数据相关联还是与文件系统元数据相关联及/或确定特定LBA或LBA范围是由读取命令频繁地存取还是由写入命令频繁地存取及选择性地将具有特定性质的读取或写入命令转移到混合存储器系统204。
在一些实施例中,混合存储器系统204可经配置以根据非易失性存储器高速(NVMe)规范操作。举例来说,混合存储器系统204的存储器资源208-1、…、208-N中的一或多者可经配置以根据NVMe规范操作。如应了解,NVMe规范向非易失性存储器装置提供某些功能性,所述非易失性存储器装置例如混合存储器系统204,如下文表1中展示。
表1
在一些实施例中,表1中描述的功能性可促进混合存储器系统204与计算系统200的经优化集成。举例来说,NVMe规范的LBA范围类型功能性可用于指示作为指定文件系统(例如,命名空间)(例如图1中说明的虚拟文件系统112及/或文件系统113)的部分的LBA范围的类型及/或属性。在一些实施例中,LBA范围的类型可包含RAID、页文件、交换文件及/或可为供应商特定的LBA范围类型。此外,LBA范围的属性可包含用于指示LBA范围是否可被重写及/或LBA范围对计算系统200的操作系统及/或BIOS是否可见的语义。
表1中展示的数据集管理功能可用于传输与命令及/或落于特定数量的LBA内的数据业务模式有关的信息。举例来说,数据集管理功能可包含与数据及/或落于特定数量的LBA内的命令业务模式的命令存取大小、写入准备、循序写入范围、循序读取范围、存取时延、存取频率等有关的功能。在一些实施例中,数据集管理功能可基于LBA范围、读取命令及/或写入命令操作。
指令可包含流指令,其可使主机202能够向控制器206提供写入或读取命令中的指定逻辑块是单个群组的相关联数据的部分的指示。另外,指令可使元数据能够在主机202与混合存储器系统204之间交换。在一些实施例中,指令可促进数据同时写入到混合存储器系统204,这又可促进同时擦除同时被写入的逻辑数据块。此可最小化废弃项目收集操作及/或相较于其中指令不用于读取或写入数据到混合存储器系统204的方法可导致写入放大减小。
图3A说明根据本发明的数个实施例的用以将逻辑块地址范围映射到混合存储器系统的实例流程图。在框312,计算系统(例如,图2中说明的计算系统200)可经配置以分配主机(例如,图2中说明的主机200)的主存储器(例如图2中说明的主存储器209)的一部分(例如,分区)以在计算系统的某些操作条件下使用。在一些实施例中,计算系统可经配置以分配主机的主存储器的一部分用于分页过程及/或异常(例如,故障)处置。在一些实施例中,控制器(例如,图2中说明的控制器206)或与主机相关联的控制器可经配置以分配主存储器的部分用于分页过程及/或在计算系统的操作期间发生的异常的处置。
举例来说,计算系统可经配置以分配存储器页、存储器页的一部分、一或多个存储器块及/或主存储器的数个存储器存储位置用于分页过程及/或在计算系统的操作期间发生的异常的处置。在一些实施例中,经分配用于分页过程及/或在计算系统的操作期间发生的异常的处置的主存储器的部分可为主存储器的逻辑分区。
在框314,计算系统可经配置以将已经分配用于分页过程及/或在计算系统的操作期间发生的异常的处置的主存储器的部分映射到与混合存储器系统相关联的LBA范围。举例来说,与主存储器的经分配部分相关联的逻辑地址可经映射到特定LBA范围。在一些实施例中,LBA范围可包括指定与分页过程及/或异常处置相关联的数据被存储于其中的位置(例如,混合存储器系统的逻辑存储位置)的连续逻辑地址序列。在一些实施例中,控制器(例如,图2中说明的控制器206)或与主机相关联的控制器可经配置以将混合存储系统的部分映射到可在执行时经分页到主存储器的特定LBA范围。
在框316,计算系统可经配置以将主存储器的LBA范围映射到混合存储器系统(例如,图2中说明的混合存储器系统204)的一部分。与主存储器相关联的LBA范围经映射到其的混合存储器系统的部分可包括混合存储器系统的页(或页的部分)、子区段、一或多个LBA、数个块等。
在一些实施例中,控制器(例如,图2中说明的控制器206)或与主机相关联的控制器可经配置以将与主存储器相关联的LBA范围映射到混合存储器系统的部分。举例来说,控制器可经配置以分配混合存储器系统的一部分来存储经映射LBA范围,其对应于用于分页过程及异常处置的存储器的物理位置(例如,物理地址)。
在一些实施例中,经映射到混合存储器系统的LBA范围可经映射到作为混合存储器系统的新兴的非易失性存储器资源的存储器资源(例如,存储器资源208-1、…、208-N)中的一者。举例来说,LBA范围可经映射到经配置以展现比混合存储器系统的其它存储器资源低的读取(或写入)时延的混合存储器系统的存储器资源。通过选择性地将LBA范围映射到展现比混合存储器系统的其它存储器资源低的写入或读取时延的混合存储器系统的存储器资源,可改进计算系统的性能,如上文结合图2描述。
图3B说明根据本发明的数个实施例的用以将混合存储器系统的部分映射到主机存储器(例如,与主机相关联的主存储器)的实例流程图317。在一些实施例中,计算系统的操作系统可能够确定对应于代码文件(例如,应用程序可执行文件、内核动态库等)的信息。代码文件可经存储于计算系统的混合存储器系统的专用LBA范围中。如果与存储于混合存储器系统中的代码文件有关的指令被引用且发生页故障,那么可读取混合存储器系统的LBA范围。在一些实施例中,存储代码文件的混合存储器系统的LBA范围可经映射到混合存储器系统的低时延部分借此促进代码分页操作。
在框318,计算系统可经配置以确定代码读取内容作为分页过程的部分。举例来说,计算系统可经配置以确定主存储器的代码读取内容作为由计算系统执行的分页过程的部分。实施例不限于确定主存储器的代码读取内容作为分页过程的部分,然而,且在一些实施例中,计算系统可经配置以确定预读操作已被执行(或将要被执行),如本文中结合图2更详细描述。如本文中使用,“代码读取内容”是与用作计算系统的读取操作的部分的文件或命令相关联的数据。
举例来说,控制器(例如,图2中说明的控制器206)或与主机相关联的控制器可经配置以辨识与作为分页过程的部分读取(或将读取)的文件或命令相关联的数据,或控制器(例如,图2中说明的控制器206)或与主机相关联的控制器可经配置以辨识由计算系统执行的预读操作,如本文中结合图2更详细描述。
在框320,计算系统可经配置以将含有经确定代码读取内容的主机存储器(例如,图2中说明的主存储器209)的部分映射到混合存储器系统。在一些实施例中,含有经确定代码读取内容的主机存储器的部分可经映射到经分配(例如,通过控制器)以存储对应于经确定代码读取内容的数据的混合存储器系统的经分配部分。举例来说,混合存储器系统的一部分可经分配以存储对应于经确定代码读取内容的LBA范围。
在一些实施例中,经分配以存储对应于代码读取内容的LBA范围的混合存储器系统的部分可经映射到作为混合存储器系统的新兴非易失性存储器资源的存储器资源(例如,存储器资源208-1、…、208-N)中的一者。举例来说,LBA范围可经映射到经配置以展现比混合存储器系统的其它存储器资源低的读取(或写入)时延的混合存储器系统的存储器资源。通过选择性地将LBA范围映射到展现比混合存储器系统的其它存储器资源低的写入或读取时延的混合存储器系统的存储器资源,可改进计算系统的性能,如上文结合图2描述。
图3C说明用以响应于代码分页操作的执行选择性地将数据传送到混合存储器系统的实例流程图313。在框315,可分配混合存储器系统的一部分用于代码分页操作。经分配用于代码分页操作的混合存储器系统的部分可在计算系统的初始化时(例如,在启动、重启等时)进行分配,或可在计算系统的操作期间进行动态分配(例如,在计算系统的运行时间期间),或可在混合存储器系统的制造期间进行分配(例如,在终端用户购买计算系统或混合存储器系统之前)。
混合存储器系统的经分配部分可为一或多个存储器页、一或多个LBA及/或一或多个存储器块。举例来说,控制器可经配置以分配混合存储器系统的特定LBA范围用于代码分页操作。在一些实施例中,经分配用于代码分页操作的混合存储器系统的部分可为在混合存储器系统的存储器资源之中展现最低存取时间的存储器资源(例如,图1中说明的存储器资源208-1、208-N等)的一部分。举例来说,经分配用于代码分页操作的混合存储器系统的部分可为作为新兴存储器系统(例如,以比混合存储器系统的不同部分低的存取时间及/或高的耐久性为特征的混合存储器系统的部分)的混合存储器系统的存储器资源(例如,图2中说明的存储器资源208-1)的一部分,如上文结合图2描述。
在框319,可响应于确定主机已经历故障异常执行代码分页操作。举例来说,控制器可经配置以确定故障异常已经发生。故障异常可由主机或计算系统经历,如上文结合图2描述。
在框321,可响应于代码分页操作的执行选择性地将数据从混合存储器系统的经分配部分传送到主机。举例来说,在一些实施例中,控制器可经配置以确定对应于对特定数据集的读取或写入存取请求的异常将要发生(或已发生),且致使特定数据集将被写入到存储器资源(例如,主机的主存储器)以用于由计算系统后续执行及/或检索。在一些实施例中,特定数据集可经存储于存储器资源中的分区或LBA块中。分区及/或LBA块可经分配(例如,保留)使得除了特定数据外的数据(例如,不对应于读取或写入存取请求的数据)不会被存储于分区及/或LBA块中。在一些实施例中,可选择性地将数据传送到与混合存储器系统相关联的特定逻辑块地址范围。
在一些实施例中,控制器可经配置以确定由主机读取的代码的内容作为代码分页操作的部分。一旦确定了由主机读取的代码的内容,控制器就可经配置以选择性地将主机的存储器(例如,主机的主存储器)的部分映射到混合存储器系统的经分配部分。在一些实施例中,控制器可进一步经配置以响应于控制器确定主机正引用经传送数据致使数据从混合存储器系统的经分配部分传送回到主机。
图4说明根据本发明的数个实施例的用以选择性地将数据传送到混合存储器系统的实例流程图423。在框422,可分配混合存储器系统的一部分。举例来说,混合存储器系统(例如,图2中说明的混合存储器系统204)的一部分可经分配用作交换空间及/或交换装置,如上文描述。
举例来说,与混合存储器系统相关联的控制器(例如,图2中说明的控制器206)可经配置以分配混合存储器系统的部分来用作交换空间及/或交换装置。经分配用作交换空间及/或交换装置的混合存储器系统的部分可在计算系统的初始化时(例如,在启动、重启等时)进行分配,或可在计算系统的操作期间进行动态分配(例如,在计算系统的运行时间期间),或可在混合存储器系统的制造期间进行分配(例如,在终端用户购买计算系统或混合存储器系统之前)。
混合存储器系统的经分配部分可为一或多个存储器页、一或多个LBA及/或一或多个存储器块。举例来说,控制器可经配置以分配混合存储器系统的特定LBA范围以用作交换空间及/或交换装置。在一些实施例中,经分配用作交换空间及/或交换装置的混合存储器系统的部分可为在混合存储器系统的存储器资源之中展现最低存取时间的存储器资源(例如,图2中说明的存储器资源208-1、208-N等)的一部分。举例来说,经分配用作交换空间及/或交换装置的混合存储器系统的部分可为作为上文结合图2所描述的新兴存储器系统的混合存储器系统的存储器资源(例如,图2中说明的存储器资源208-1)的一部分。
当多个虚拟地址经映射到同一物理存储器地址时,计算系统可经历性能降低及/或可中止(例如,过程可终止及/或可能表现异常)。通过分配混合存储器系统的一部分作为交换空间及/或交换装置,数据页可在主机与混合存储器系统之间传送以缓解与同时调用映射到同一物理存储器地址的多个虚拟地址相关联的性能降低,如下文结合框424进一步详细地描述。
在框424,计算系统及/或控制器可经配置以致使数据被选择性地传送到混合存储器系统的经分配部分。举例来说,例如匿名页的数据页可从主机(例如,主机的主存储器)传送到混合存储器系统的经分配部分。实施例不限于传送数据页,且在一些实施例中,可选择性地将数据块及/或对应于混合存储器系统的特定LBA范围的数据从混合存储器系统传送到主机。如上文描述,可作为交换操作的部分传送数据,且因此如果数据随后由主机引用,那么可将所述数据从混合存储器系统传送回到主机。
通过选择性地传送数据(例如,数据页、数据块、LBA范围等),可实现计算系统的经改进性能。举例来说,通过分配对应于作为新兴类型的存储器资源的存储器资源的混合存储器系统的部分及随后选择性地在主机与混合存储器系统之间传送数据作为交换操作的部分,可增加存储器耐久性及/或与执行交换操作相关联的时间量可相较于未利用混合存储器系统的方法及/或相较于其中存储器资源中的一或多者不是新兴类型的存储器资源的方法有所减少。
图5A说明根据本发明的数个实施例的用以选择性地将命令转移到混合存储器系统的实例流程图525。在框526,可将敏感度指派给命令。在一些实施例中,可由控制器(例如,图2中说明的控制器206)将敏感度指派给命令。如上文结合图2描述,控制器可经配置以基于命令业务的特性确定命令的敏感度,命令业务的特性例如特定命令的执行频率、命令的大小、执行命令消耗的资源量、以其可执行命令的速度或其它合适的敏感度特性。
在一些实施例中,控制器可经配置以将指示符应用于命令来指示命令的经确定敏感度。举例来说,控制器可基于命令的经确定敏感度将指示附加到命令。指示符可为具有附加到命令的特定值的旗标或数字;然而,实施例不限于此,且指示符可为附加到命令的数字序列或允许控制器确定命令是否将被转移到混合存储器系统的其它合适的指示符。
在框528,可选择性地将命令转移到混合存储器系统。在一些实施例中,可基于命令的经指派敏感度选择性地将命令转移到混合存储器系统。举例来说,控制器可经配置以确定命令的经指派敏感度及基于指派到命令的敏感度选择性地将命令转移到混合存储器系统。一旦控制器已将指示符附加到命令,就可将命令选择性地转移到计算系统的适当存储器位置。举例来说,重复、随机及/或频繁执行的命令业务(例如在计算系统的操作期间由日志记录系统引发的同步小频繁且随机写入)可被选择性地转移到混合存储器装置。
作为实例,控制器可经配置以确定命令具有对应于附加到其的经指派敏感度的特定指示符。例如,控制器可确定附加到命令的指示符对应于具有高敏感度的命令(例如,重复、随机及/或频繁执行的命令),且随后可致使所述命令被选择性地转移到混合存储器系统。相比之下,控制器可确定附加到命令的指示符对应于具有低敏感度的命令(例如,并非重复、随机及/或频繁执行的命令),且可不关于具有指示附加到其的低敏感度的指示符的命令采取动作(例如,可不致使所述命令被选择性地转移到混合存储器系统)。
如上文关于图2更详细描述,通过选择性地将命令业务的特定部分转移到混合存储器系统,可实现相较于其中命令业务不被选择性地转移的方法或其中命令业务由基于快闪的存储器系统处置的方法较低的时延及/或增加的性能。
图5B说明根据本发明的数个实施例的用以选择性地将命令业务转移到混合存储器系统的实例流程图529。在框530,可识别文件系统元数据。在一些实施例中,可由控制器(例如,图2中说明的控制器206)识别文件系统元数据。举例来说,如上文结合图2描述,控制器可经配置以识别以多个小、随机写入为特征的命令业务,例如对应于应用于文件系统的元数据更新的命令业务。
在一些实施例中,控制器可经配置以通过识别对应于元数据的数据结构识别对应于元数据更新的命令业务。举例来说,可基于组织元数据的数据结构的类型识别元数据。通过识别对应于组织元数据的数据结构的类型的数据结构,控制器可识别对应于元数据的命令业务。一旦控制器已识别对应于元数据的命令业务,控制器就可进一步经配置以识别何时应将元数据更新用于文件系统。在一些实施例中,控制器可经配置以识别文件系统已经(或正在)基于与文件系统相关联的元数据被更新且应用于文件系统的确定而更新。
控制器可经配置以识别对应于与文件系统更新业务(例如响应于文件更新应用于文件系统的元数据更新)对应的命令业务的指示符。指示符可为具有附加到命令业务的特定值的旗标或数字;然而,实施例不限于此,且指示符可为附加到命令业务的数字序列或允许控制器确定命令业务是否将被转移到混合存储器系统的其它合适的指示符。
在框532,可选择性地将与经识别文件系统元数据相关联的命令业务转移到混合存储器系统的一部分。在一些实施例中,控制器可经配置以致使与经识别文件系统元数据相关联的命令业务被选择性地转移到混合存储器系统的一部分。控制器可经配置以致使与经识别文件系统元数据相关联的命令业务基于附加到对应于文件系统更新业务(例如响应于文件更新应用于文件系统的元数据更新)的命令业务的指示符被选择性地转移到混合存储器系统的一部分。
类似于本文中图4的描述,混合存储器系统的一部分可经分配用于在制造计算系统时或在计算系统操作期间选择性转移与经识别文件系统元数据相关联的命令业务。在一些实施例中,混合存储器系统的部分可为一或多个存储器页、一或多个LBA及/或一或多个存储器块。举例来说,控制器可经配置以分配与经识别文件系统元数据相关联的命令业务将被转移到其的混合存储器系统的特定LBA范围。在一些实施例中,混合存储器系统的部分可为在混合存储器系统的存储器资源之中展现最低存取时间的存储器资源(例如,图1中说明的存储器资源208-1、208-N等)的一部分。因此,在一些实施例中,计算系统的时延可相较于其中对应于文件系统元数据更新的命令业务未被选择性地转移到混合存储器系统的一些方法有所减少。
图5C说明根据本发明的数个实施例的用以选择性地将具有经识别写入模式的命令业务转移到混合存储器系统的实例流程图533。在框534,可识别重复及/或可预测写入模式。可由控制器(例如,图2中说明的控制器206)识别对应于特定命令业务的可预测及/或重复写入模式。
举例来说,在计算系统的操作期间,特定文件系统(例如,图1中说明的虚拟文件系统112、图1中说明的文件系统113)可展现重复及/或可预测写入模式。举例来说,F2FS检查点及/或日志记录系统可以可预测方式重复写入某些命令及/或数据。可以小随机写入写入这些命令及/或数据,如上文描述。
在一些实施例中,控制器可经配置以通过在计算装置的内核与存储器(例如,主存储器及/或混合存储器系统)之间提供更紧密耦合来识别这些重复及/或可预测写入模式。例如,在一些实施例中,控制器可存取计算系统的一或多个语义部分,这可允许控制器识别在计算系统的操作期间发生的重复及/或可预测写入模式。
一旦对应于重复及/或可预测写入模式的命令业务被控制器识别,那么控制器可经配置以识别到展示可预测及/或重复写入模式的命令业务的指示符。指示符可为具有附加到命令业务的特定值的旗标或数字;然而,实施例不限于此,且指示符可为附加到命令业务的数字序列或允许控制器确定命令业务是否将被转移到混合存储器系统的其它合适的指示符。
在框536,可选择性地将与重复及/或可预测写入模式相关联的命令业务转移到混合存储器系统或其部分。如先前描述,混合存储器系统的一部分可经分配用于在制造计算系统时或在计算系统操作期间选择性转移与重复及/或可预测写入模式相关联的命令业务。在一些实施例中,混合存储器系统的部分可为一或多个存储器页、一或多个LBA及/或一或多个存储器块。举例来说,控制器可经配置以分配与重复及/或可预测写入模式相关联的命令业务将被转移到其的混合存储器系统的特定LBA范围。在一些实施例中,混合存储器系统的部分可为在混合存储器系统的存储器资源之中展现最低存取时间的存储器资源(例如,图1中说明的存储器资源208-1、208-N等)的一部分。因此,在一些实施例中,计算系统的时延可相较于其中展现重复及/或可预测写入模式的命令业务未被选择性地转移到混合存储器系统的一些方法有所减少。
图5D说明用以按经识别命令特性选择性地转移到混合存储器系统的实例流程图540。在框542,可识别特定类型的命令业务。举例来说,可如上文结合图5B及5C描述那样识别对应于文件系统元数据更新的命令业务及/或展现重复及/或可预测写入模式的命令业务。在一些实施例中,控制可经配置以识别特定类型的命令业务。
在框544,可致使将命令业务选择性地转移到混合存储器系统。在一些实施例中,命令业务可对应于由可耦合到混合存储器系统的主机执行的命令业务。控制器可经配置以选择性地将命令业务转移到混合存储器系统的一部分,如本文中描述。举例来说,混合存储器系统的部分可为在混合存储器系统的存储器资源之中展现最低存取时间的存储器资源(例如,图1中说明的存储器资源208-1、208-N等)的一部分。因此,在一些实施例中,计算系统的时延可相较于其中特定类型的命令业务被选择性地转移到混合存储器系统的一些方法有所减少。
尽管本文已说明及描述特定实施例,所属领域的一般技术人员应了解,实现相同结果计算的布置可代替展示的特定实施例。本发明希望涵盖本发明的一或多个实施例的调试或变化。应理解,以说明性方式且非限制性方式进行上文描述。所属领域的技术人员在检阅上文描述之后应明白上文实施例的组合及本文未明确描述的其它实施例。本发明的一或多个实施例的范围包含其中使用上文结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求有权获得的等效物完整范围确定本发明的一或多个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,一些特征被一起分组在单个实施例中。本发明的此方法不应被解译为反映本发明的所揭示实施例必须使用比每一权利要求中明确所述的更多的特征的意图。实情是,如以下权利要求书反映,本发明标的物在于少于所揭示单个实施例的所有特征。因此,所附权利要求特此并入到详细描述中,其中每个权利要求独立地作为单独的实施例。
Claims (23)
1.一种混合存储器系统的设备,其包括:
混合存储器系统,其包括第一非易失性存储器NVM资源、第二NVM资源和控制器,其中所述控制器经配置以:
向与主机的主存储器相关联的命令指派敏感度,所述主机与所述混合存储器系统分离且耦合到所述混合存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入延时,其中所述命令的所述执行频率和与所述命令的所述执行相关联的所述写入延时通过所述控制器而确定;
确定所述命令对应于特定类型的文件系统写入,所述特定类型的所述文件系统写入具有与其相关联的可确定写入模式;及
至少部分基于经指派的所述敏感度、对应于所述特定类型的所述文件系统写入的所述命令和具有与其相关联的所述可确定写入模式的所述特定类型的所述文件系统写入,通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述第一NVM或所述第二NVM中被配置为在处理所述命令时表现出较低写入延时和较高耐用性的一者,致使所述命令被选择性地传送到所述混合存储器系统的所述第一NVM或所述第二NVM。
2.根据权利要求1所述的设备,其中:
所述敏感度至少部分基于所述命令的执行频率、所述命令的大小或执行所述命令时消耗的资源量中的至少一者;且
所述控制器经配置以确定所述命令的所述大小和执行所述命令时消耗的所述资源量。
3.根据权利要求1所述的设备(100、200),其中所述主机(102、202)经配置以基于所述命令的所述经指派敏感度向所述命令指派指示符。
4.根据权利要求1到3中任一权利要求所述的设备(100、200),其中所述控制器(206)进一步经配置以:
确定与所述命令的执行相关联的写入延时;及
响应于确定与所述命令的执行相关联的所述写入延时超过特定写入延时阈值,致使所述命令将被选择性地传送到所述混合存储器系统(104、204)。
5.根据权利要求1到3中任一权利要求所述的设备(100、200),其中所述敏感度至少部分基于在所述命令的执行中消耗的资源量。
6.根据权利要求1到3中任一权利要求所述的设备(100、200),其中所述控制器(206)进一步经配置以致使所述命令被选择性地传送到所述混合存储器系统(104、204)的一部分,所述一部分以比所述混合存储器系统(104、204)的另一部分低的存储延时及高的耐久性中的至少一者为特征。
7.一种混合存储器系统的设备,其包括:
混合存储器系统,其包括第一非易失性存储器NVM资源、第二NVM资源和控制器,所述控制器经配置以:
向与主机的主存储器相关联的命令指派敏感度,所述主机与所述混合存储器系统分离且耦合到所述混合存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入延时,其中所述命令的所述执行频率和与所述命令的所述执行相关联的所述写入延时通过所述控制器而确定;
识别由所述主机(102、202)执行的特定类型的命令业务;
确定所述命令对应于特定类型的文件系统写入,所述特定类型的所述文件系统写入具有与其相关联的可确定写入模式;及
至少部分基于经识别特性和经指派的所述敏感度、对应于所述特定类型的所述文件系统写入的所述命令和具有与其相关联的所述可确定写入模式的所述特定类型的所述文件系统写入,通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述第一NVM或所述第二NVM中被配置为在处理所述命令时表现出较低写入延时和较高耐用性的一者,致使所述命令被选择性地传送到所述混合存储器系统的所述第一NVM或所述第二NVM。
8.根据权利要求7所述的设备(100、200),其中所述特定类型的命令业务是对应于文件系统元数据更新的命令业务。
9.根据权利要求7所述的设备(100、200),其中所述特定类型的命令业务是展现重复写入模式及可预测写入模式中的至少一者的命令业务。
10.根据权利要求7所述的设备(100、200),其中所述特定类型的命令业务包括对应于文件系统元数据的命令业务。
11.根据权利要求7所述的设备(100、200),其中所述控制器(206)进一步经配置以基于所述命令业务的执行频率及所述命令业务的大小中的至少一者识别所述特定类型的命令业务。
12.根据权利要求7所述的设备(100、200),其中所述控制器(206)进一步经配置以基于在所述命令业务的执行中消耗的资源量识别所述特定类型的命令业务。
13.根据权利要求8到12中任一权利要求所述的设备(100、200),其中所述混合存储器系统(104、204)包括第一部分(208-1)及第二部分(208-N),且其中所述第一部分(208-1)是NAND部分且所述第二部分(208-N)是新兴类型的存储器部分。
14.一种用于混合存储器系统的方法,其包括:
向与主机的主存储器相关联的命令指派敏感度,所述主机与所述混合存储器系统分离且耦合到所述混合存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入延时,其中所述命令的所述执行频率和与所述命令的所述执行相关联的所述写入延时通过控制器而确定;
确定所述命令对应于特定类型的文件系统写入,所述特定类型的所述文件系统写入具有与其相关联的可确定写入模式;及
至少部分基于经指派的所述敏感度、对应于所述特定类型的所述文件系统写入的所述命令和具有与其相关联的所述可确定写入模式的所述特定类型的所述文件系统写入,通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述混合存储器系统的闪存存储器装置或相变随机存取存储器装置中被配置为在处理所述命令时表现出较低存取延时和较高耐用性的一者,选择性地将所述命令传送到所述闪存存储器装置或所述相变随机存取存储器装置。
15.根据权利要求14所述的方法,其进一步包括基于在所述命令的执行中消耗的资源量、所述命令的大小、所述命令的执行频率或其组合向所述命令指派所述敏感度,其中所述控制器确定在所述命令的执行中消耗的所述资源量、所述命令的所述大小和所述命令的所述执行频率。
16.根据权利要求14到15中任一权利要求所述的方法,其进一步包括选择性地将所述命令传送到所述混合存储器系统(104、204)的一部分,所述一部分以比所述混合存储器系统的另一部分较低存取延时及较高耐久性中的至少一者为特征。
17.根据权利要求14到15中任一权利要求所述的方法,其中所述命令包括数据库管理系统命令。
18.根据权利要求14到15中任一权利要求所述的方法,其进一步包括:
确定所述命令是以多个随机写入操作为特征;及
至少部分基于确定所述命令是以所述多个随机写入操作为特征选择性地将所述命令传送到所述混合存储器系统(104、204)。
19.根据权利要求14到15中任一权利要求所述的方法,其进一步包括:
确定所述命令小于阈值命令大小;及
至少部分基于确定所述命令小于所述阈值命令大小选择性地将所述命令传送到所述混合存储器系统(104、204)。
20.一种用于混合存储器系统(104、204)的方法(100、200),其包括:
识别由主机执行的特定类型的命令业务;
向与所述主机的主存储器相关联的命令指派敏感度,所述主机与所述混合存储器系统分离且耦合到所述混合存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入延时,其中所述命令的所述执行频率和与所述命令的所述执行相关联的所述写入延时通过控制器而确定;
确定所述命令对应于特定类型的文件系统写入,所述特定类型的所述文件系统写入具有与其相关联的可确定写入模式;及
至少部分基于经识别特性和经指派的所述敏感度、对应于所述特定类型的所述文件系统写入的所述命令和具有与其相关联的所述可确定写入模式的所述特定类型的所述文件系统写入,通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述混合存储器系统的闪存存储器装置或相变随机存取存储器装置中被配置为在处理所述命令时表现出较低写入延时和较高耐用性的一者,致使所述命令被选择性地传送到所述闪存存储器装置或所述相变随机存取存储器装置。
21.根据权利要求20所述的方法,其中所述特定类型的命令业务是对应于文件系统元数据更新的命令业务、展现重复写入模式的命令业务、展现可预测写入模式的命令业务、对应于与所述主机(102、202)相关联的日志记录文件系统的命令业务或其组合。
22.根据权利要求20到21中任一权利要求所述的方法,其进一步包括:
确定所述命令是以多个随机写入操作为特征、确定所述命令小于阈值命令大小或其组合;及
至少部分基于所述确定选择性地将所述命令传送到所述混合存储器系统(104、204)。
23.根据权利要求20到21中任一权利要求所述的方法,其进一步包括至少部分基于确定所述命令业务展现特定写入模式选择性地将所述命令业务传送到所述混合存储器系统(104、204)的一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/927,339 US10705747B2 (en) | 2018-03-21 | 2018-03-21 | Latency-based storage in a hybrid memory system |
US15/927,339 | 2018-03-21 | ||
PCT/US2019/023054 WO2019183155A1 (en) | 2018-03-21 | 2019-03-20 | Hybrid memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111868678A CN111868678A (zh) | 2020-10-30 |
CN111868678B true CN111868678B (zh) | 2024-05-14 |
Family
ID=67985228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980020195.7A Active CN111868678B (zh) | 2018-03-21 | 2019-03-20 | 混合存储器系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10705747B2 (zh) |
EP (1) | EP3769201A4 (zh) |
JP (1) | JP7057435B2 (zh) |
KR (1) | KR102443600B1 (zh) |
CN (1) | CN111868678B (zh) |
WO (1) | WO2019183155A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US11249664B2 (en) * | 2018-10-09 | 2022-02-15 | Western Digital Technologies, Inc. | File system metadata decoding for optimizing flash translation layer operations |
KR102480944B1 (ko) * | 2020-09-23 | 2022-12-22 | 재단법인대구경북과학기술원 | 하이브리드 메모리 제어 장치 및 방법 |
KR102650571B1 (ko) * | 2020-11-12 | 2024-03-26 | 한국전자통신연구원 | 역가상화 환경용 혼성 메모리 관리 장치 및 방법 |
CN112737835A (zh) * | 2020-12-25 | 2021-04-30 | 北京浪潮数据技术有限公司 | 一种云主机业务管理方法及相关装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271379A (zh) * | 2007-03-19 | 2008-09-24 | 威刚科技股份有限公司 | 混合密度存储体储存装置及其控制方法 |
CN102439576A (zh) * | 2009-04-09 | 2012-05-02 | 美光科技公司 | 存储器控制器、存储器系统、固态驱动器及用于处理若干个命令的方法 |
CN103136118A (zh) * | 2011-11-21 | 2013-06-05 | 西部数据技术公司 | 使用多层存储器的磁盘驱动数据缓存 |
US8751725B1 (en) * | 2012-01-27 | 2014-06-10 | Netapp, Inc. | Hybrid storage aggregate |
US8904091B1 (en) * | 2011-12-22 | 2014-12-02 | Western Digital Technologies, Inc. | High performance media transport manager architecture for data storage systems |
CN104969167A (zh) * | 2013-05-31 | 2015-10-07 | 株式会社日立制作所 | 控制装置及控制方法 |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452912B2 (en) | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
JP4722704B2 (ja) * | 2003-10-31 | 2011-07-13 | パナソニック株式会社 | 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法 |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
KR100801015B1 (ko) * | 2006-08-30 | 2008-02-04 | 삼성전자주식회사 | 하이브리드 하드 디스크 드라이브와 데이터 저장 방법 |
US7584335B2 (en) * | 2006-11-02 | 2009-09-01 | International Business Machines Corporation | Methods and arrangements for hybrid data storage |
US8060719B2 (en) | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US8756369B2 (en) | 2008-09-26 | 2014-06-17 | Netapp, Inc. | Priority command queues for low latency solid state drives |
US20100169602A1 (en) * | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US8307151B1 (en) * | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
US20110167197A1 (en) * | 2010-01-05 | 2011-07-07 | Mark Leinwander | Nonvolatile Storage with Disparate Memory Types |
KR101713051B1 (ko) * | 2010-11-29 | 2017-03-07 | 삼성전자주식회사 | 하이브리드 메모리 시스템, 및 그 관리 방법 |
US20120221767A1 (en) * | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US8725963B1 (en) | 2011-04-15 | 2014-05-13 | Parallels IP Holdings GmbH | System and method for managing a virtual swap file for virtual environments |
KR20130032772A (ko) * | 2011-09-23 | 2013-04-02 | 삼성전자주식회사 | 하이브리드 메모리 장치, 이를 포함하는 컴퓨터 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법 |
JP5971547B2 (ja) * | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
US9946495B2 (en) * | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US11733932B2 (en) * | 2013-09-27 | 2023-08-22 | Hewlett Packard Enterprise Development Lp | Data management on memory modules |
KR20150043102A (ko) * | 2013-10-14 | 2015-04-22 | 한국전자통신연구원 | 하이브리드 메모리의 데이터 관리 장치 및 방법 |
US9430508B2 (en) | 2013-12-30 | 2016-08-30 | Microsoft Technology Licensing, Llc | Disk optimized paging for column oriented databases |
KR20150089538A (ko) * | 2014-01-28 | 2015-08-05 | 한국전자통신연구원 | 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 |
WO2015114829A1 (ja) * | 2014-02-03 | 2015-08-06 | 株式会社日立製作所 | 情報処理装置 |
US9772776B2 (en) | 2014-02-27 | 2017-09-26 | Red Hat Israel, Ltd. | Per-memory group swap device |
US10430328B2 (en) * | 2014-09-16 | 2019-10-01 | Sandisk Technologies Llc | Non-volatile cache and non-volatile storage medium using single bit and multi bit flash memory cells or different programming parameters |
WO2016056140A1 (ja) * | 2014-10-10 | 2016-04-14 | 株式会社日立製作所 | インターフェースデバイス、及びインターフェースデバイスを含む計算機システム |
US9711194B2 (en) * | 2015-01-28 | 2017-07-18 | Xilinx, Inc. | Circuits for and methods of controlling the operation of a hybrid memory system |
US9459802B1 (en) * | 2015-03-30 | 2016-10-04 | Kabushiki Kaisha Toshiba | Hybrid-HDD that limits dirty data in NAND |
US9760479B2 (en) * | 2015-12-02 | 2017-09-12 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
KR102491651B1 (ko) | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
US10140057B2 (en) | 2016-02-18 | 2018-11-27 | Micron Technology, Inc. | Apparatuses and methods for multiple address registers for a solid state device |
US10452530B2 (en) * | 2016-02-26 | 2019-10-22 | Mitsubishi Electric Corporation | Information processing apparatus and information processing method |
US9772943B1 (en) * | 2016-04-01 | 2017-09-26 | Cavium, Inc. | Managing synonyms in virtual-address caches |
US10108555B2 (en) * | 2016-05-26 | 2018-10-23 | Macronix International Co., Ltd. | Memory system and memory management method thereof |
US10540098B2 (en) * | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main memory systems |
US10698732B2 (en) * | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US11977484B2 (en) * | 2016-07-19 | 2024-05-07 | Sap Se | Adapting in-memory database in hybrid memory systems and operating system interface |
US10152427B2 (en) * | 2016-08-12 | 2018-12-11 | Google Llc | Hybrid memory management |
US10649665B2 (en) * | 2016-11-08 | 2020-05-12 | Micron Technology, Inc. | Data relocation in hybrid memory |
KR20180094372A (ko) * | 2017-02-15 | 2018-08-23 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 시스템 및 그 제어 방법 |
US10901894B2 (en) * | 2017-03-10 | 2021-01-26 | Oracle International Corporation | Allocating and accessing memory pages with near and far memory blocks from heterogeneous memories |
US10430329B2 (en) * | 2017-06-23 | 2019-10-01 | Western Digital Technologies, Inc. | Quality of service aware storage class memory/NAND flash hybrid solid state drive |
US10152428B1 (en) * | 2017-07-13 | 2018-12-11 | EMC IP Holding Company LLC | Virtual memory service levels |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705963B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
-
2018
- 2018-03-21 US US15/927,339 patent/US10705747B2/en active Active
-
2019
- 2019-03-20 CN CN201980020195.7A patent/CN111868678B/zh active Active
- 2019-03-20 KR KR1020207029814A patent/KR102443600B1/ko active IP Right Grant
- 2019-03-20 JP JP2020550755A patent/JP7057435B2/ja active Active
- 2019-03-20 WO PCT/US2019/023054 patent/WO2019183155A1/en unknown
- 2019-03-20 EP EP19770325.9A patent/EP3769201A4/en active Pending
-
2020
- 2020-06-02 US US16/890,511 patent/US11340808B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271379A (zh) * | 2007-03-19 | 2008-09-24 | 威刚科技股份有限公司 | 混合密度存储体储存装置及其控制方法 |
CN102439576A (zh) * | 2009-04-09 | 2012-05-02 | 美光科技公司 | 存储器控制器、存储器系统、固态驱动器及用于处理若干个命令的方法 |
CN103136118A (zh) * | 2011-11-21 | 2013-06-05 | 西部数据技术公司 | 使用多层存储器的磁盘驱动数据缓存 |
US8904091B1 (en) * | 2011-12-22 | 2014-12-02 | Western Digital Technologies, Inc. | High performance media transport manager architecture for data storage systems |
US8751725B1 (en) * | 2012-01-27 | 2014-06-10 | Netapp, Inc. | Hybrid storage aggregate |
CN104969167A (zh) * | 2013-05-31 | 2015-10-07 | 株式会社日立制作所 | 控制装置及控制方法 |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
CN106575271A (zh) * | 2014-06-23 | 2017-04-19 | 谷歌公司 | 管理存储设备 |
Also Published As
Publication number | Publication date |
---|---|
KR20200123850A (ko) | 2020-10-30 |
US11340808B2 (en) | 2022-05-24 |
US20190294356A1 (en) | 2019-09-26 |
JP2021517307A (ja) | 2021-07-15 |
EP3769201A4 (en) | 2021-12-22 |
KR102443600B1 (ko) | 2022-09-16 |
EP3769201A1 (en) | 2021-01-27 |
US20200293211A1 (en) | 2020-09-17 |
US10705747B2 (en) | 2020-07-07 |
CN111868678A (zh) | 2020-10-30 |
JP7057435B2 (ja) | 2022-04-19 |
WO2019183155A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111868678B (zh) | 混合存储器系统 | |
CN111919201B (zh) | 混合式存储器系统 | |
US9720717B2 (en) | Virtualization support for storage devices | |
US11327892B2 (en) | Latency-based storage in a hybrid memory system | |
CN114746848B (zh) | 用于存储装置的高速缓存架构 |
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 |