CN111919201B - 混合式存储器系统 - Google Patents
混合式存储器系统 Download PDFInfo
- Publication number
- CN111919201B CN111919201B CN201980020352.4A CN201980020352A CN111919201B CN 111919201 B CN111919201 B CN 111919201B CN 201980020352 A CN201980020352 A CN 201980020352A CN 111919201 B CN111919201 B CN 111919201B
- Authority
- CN
- China
- Prior art keywords
- memory
- host
- memory system
- hybrid
- data
- 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 572
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 32
- 230000035945 sensitivity Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 28
- 238000013507 mapping Methods 0.000 claims description 9
- 238000012546 transfer Methods 0.000 abstract description 19
- 238000012005 ligant binding assay Methods 0.000 description 53
- 238000003860 storage Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000005192 partition Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 230000003252 repetitive effect Effects 0.000 description 5
- 230000001747 exhibiting effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 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
- 230000008859 change Effects 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
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 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/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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/217—Hybrid disk, e.g. using both magnetic and solid state storage devices
-
- 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)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种实例设备包括用以耦合到主机的混合式存储器系统及耦合到所述混合式存储器系统的控制器。所述控制器可经配置以致使响应于所述主机的主存储器经历了阈值量的资源利用的确定而将与所述主机的虚拟存储器位置相关联的数据选择性地传送到所述混合式存储器系统。
Description
技术领域
本发明一般来说涉及半导体存储器及方法,且更特定来说涉及与混合式存储器系统相关的设备及方法。
背景技术
存储器装置通常被提供为计算系统中的内部半导体集成电路。存在诸多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力以维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及闸流管随机存取存储器(TRAM)以及其它。非易失性存储器可在不被供电时通过存留经存储数据而提供永久数据,且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)(例如自旋扭矩转移随机存取存储器(STT RAM))以及其它。
计算系统通常包含可检索及执行指令且将所执行指令的结果存储到适合位置的若干个处理资源(例如,一或多个处理器)。处理资源可包括(举例来说)可用于执行指令以操作计算系统的若干个功能单元,例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及组合式逻辑块。
在将指令提供到功能单元电路以用于执行中可涉及计算系统中的若干个组件。可(例如)由例如控制器及/或主机处理器的处理资源执行指令。此外,由于可在一个或多个时钟循环中通过功能单元电路执行不同类型的操作,因此也可对指令及数据的中间结果进行排序及/或缓冲。
发明内容
在一个方面中,本发明涉及一种混合式存储器系统的设备,其包括:所述混合式存储器系统,其用以耦合到主机;及控制器,其耦合到所述混合式存储器系统,其中所述控制器经配置以致使:响应于所述主机的主存储器经历了阈值量的资源利用的确定而将与所述主机的虚拟存储器位置相关联的数据选择性地传送到所述混合式存储器系统。
在另一方面中,本发明涉及一种混合式存储器系统的系统,其包括:所述混合式存储器系统,其包括用以耦合到主机的控制器、第一存储器资源及第二存储器资源,其中所述控制器经配置以致使:将所述混合式存储器系统的一部分分配为存储对应于调换操作的数据;及通过将对应于所述调换操作的数据从所述主机选择性地传送到所述混合式存储器系统的所述经分配部分而执行所述调换操作。
在又一方面中,本发明涉及一种用于混合式存储器系统的方法,其包括:将所述混合式存储器系统的一部分分配为存储对应于主机的虚拟存储器位置的数据;及将由与所述主机相关联的虚拟存储器位置参考的数据选择性地传送到所述混合式存储器系统的所述经分配部分。
附图说明
图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”等)指示可包含如此指定的若干个特定特征。如本文中所使用,“若干个”特定事物是指此些事物中的一或多者(例如,若干个存储器阵列可指一或多个存储器阵列)。“多个”打算指此些事物中的一个以上。
本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且其余数字识别图式中的元件或组件的编号惯例。可通过使用类似数字来识别不同图之间的类似元件或组件。举例来说,在图1中,104可指代元件“04”,且在图2中可将类似元件指代为204。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,各图中所提供的元件的比例及相对标度还打算图解说明本发明的某些实施例且不应视为限制意义。
图1是根据本发明的若干个实施例呈计算系统100的形式的设备的框图,计算系统100包含框架110、主机102及存储器系统104。如本文中所使用,框架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快闪阵列、3DXpoint存储器、NOR快闪阵列及/或包含(例如)控制器、3D Xpoint存储器部分及NAND快闪部分的存储子系统。
框架110可包含指令,所述指令可由与主机102相关联的处理资源执行以促进系统100的操作。举例来说,所述框架可包含可由主机102的处理资源执行以控制计算操作(例如,读取、写入、打开、关闭等)以提供一或多个文件系统(例如,虚拟文件系统、例如扩展文件系统的文件系统等)的指令,及/或对应于块装置的一或多个指令。在一些实施例中,框架110可为框架,例如/>框架。另外,框架110可包含驱动器(例如,一或多个软件驱动器),其可执行以允许在主机102上运行的操作系统与耦合到主机102的一或多个装置通信。
在一些实施例中,框架110可表示操作系统。举例来说,框架110可表示具有与其相关联的核心的操作系统。在此类实施例中,框架110可被视为“软件存储堆叠”(例如,框架110可表示操作系统的基于软件的核心实施方案)。因此,框架110可具有与其相关联的一或多个存储器资源以存储可执行以操作计算系统100的指令,及/或框架110可包含经虚拟化的存储器资源,其上存储由框架110用于计算系统100的操作的指令。然而,实施例并不受限于此,且由框架110利用的指令可存储在存储器系统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是根据本发明的若干个实施例呈计算系统200的形式的设备的框图,计算系统200包含主机202(其包含主存储器209)及存储器系统204(例如,混合式存储器系统)。主存储器209可为例如RAM、DRAM、SRAM等的易失性存储器,其可用于存储与计算系统200的操作相关联的一或多个数据页。然而,实施例不限于易失性存储器,且除易失性存储器之外或替代易失性存储器,主存储器还可包含非易失性存储器。
如图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可包含其中可存储数据的有限量的空间。
因此,在一些操作条件下,当主机202尝试在主存储器209中存储太多数据时,主存储器209可变得已满及/或可展现经减小性能。这可在利用虚拟存储器技术抽象化存储器资源(例如,主存储器209)以形成存储器空间的量大于由主存储器209界定的物理存储器空间的实际量的错觉的系统中进一步加剧。
在此些实施方案中,可使用逻辑对物理寻址技术来管理(例如,通过例如与主机202相关联的存储器管理单元的控制电路)虚拟地址空间。举例来说,虚拟地址可指派到对应物理地址,其可对应于可最终在上面执行过程的主存储器209的物理位置(例如,一或多个存储器页等)。然而,当多个虚拟存储器地址映射到同一物理存储器地址时,计算系统200可经历经减小性能及/或可悬而不决(例如,过程可被终止及/或可表现为非预期行为)。
举例来说,在利用虚拟存储器技术的计算实施方案中,一或多个过程可参考一或多个虚拟存储器位置(例如,存储器页、存储器块等),其可映射到主存储器209的物理存储器位置上。此外,当主存储器209已满时,可能不能调用虚拟存储器页,因为不存在充足物理存储器资源可用于执行过程。
在一些方法中,这可通过将主存储器209中的数据页传送到调换空间以空出主存储器209的物理存储器资源来缓解。举例来说,在一些方法中,操作系统的核心可包含用以释放主存储器209的经分配用于匿名页的物理存储器资源的机构。如本文中所使用,“匿名页”是不具有相关联文件的存储器页。举例来说,匿名页可为并非由文件支持的存储器页(例如,不具有经规定文件的存储器页)。然而,尽管匿名页可不与文件相关,但匿名页可与过程及/或过程工作集相关。过程及过程工作集的非限制性实例包含例如堆积、堆叠、常数等的数据结构。如本文中所使用,过程工作集包含主机的虚拟地址空间中的一或多个数据页,其存储在主机的物理存储器(例如,主机的主存储器)中。举例来说,过程工作集含有对主机的主存储器可见的存储器页(例如,最近由主机参考的页)。
在此些方法中,页(例如,匿名页)的相关内容可暂时传送(例如,复制)到调换空间及/或调换装置。在随后页被参考的情形下,页可被传送(例如,复制)回到主存储器209。然而,归因于与将页从主存储器209传送到调换空间或调换装置且接着随后将页从调换空间或调换装置传送回到主存储器209相关联的时间及能量消耗,传统调换技术可为较不合意的,尤其在其中重复利用此些技术的实施方案中。如本文中所使用,过程工作集包含主机的虚拟地址空间中的一或多个数据页,其存储在主机的物理存储器(例如,主机的主存储器)中。举例来说,过程工作集含有对主机的主存储器可见的存储器页(例如,最近由主机参考的页)。
为促进数据(例如,对应于存储器页的数据)的选择性传送,在一些实施例中,混合式存储器装置204的一部分可经配置以作为调换装置操作(例如,可经配置以允许存储器页向及从混合式存储器系统204的部分的选择性传送)。举例来说,存储器资源208-1的一部分可经配置以作为调换装置操作,使得存储器页选择性地传送到存储器资源208-1的所述部分。在一些实施例中,存储器资源208-1的一或多个存储器页或与存储器资源208-1相关联的一或多个逻辑块地址可经分配以执行调换操作,如结合图4进一步详细描述。当制造混合式存储器系统204时(例如,在混合式存储器系统204经供给以销售到最终用户之前),可分配一或多个存储器页及/或一或多个逻辑块地址,或当将混合式存储器系统204初始化时(例如,当启动计算系统200时),可分配一或多个存储器页及/或一或多个逻辑块地址。然而,实施例不受限于此;且在一些实施例中,当混合式存储器系统204动态地处于计算系统200的运行时间期间时,可分配一或多个存储器页及/或一或多个逻辑块地址。
在一些实施例中,混合式存储器系统204的分配为调换装置的部分可为混合式存储器系统200的一部分,所述部分具有比混合式存储器系统200的其它部分低的存取时间。举例来说,归因于存储器资源208-1是新兴类型存储器资源(例如,3D Xpoint存储器资源),存储器资源208-1可具有比存储器资源208-N低的存取时间。此外,在一些实施例中,混合式存储器系统204的分配为调换装置的部分可为混合式存储器系统200的一部分,所述部分具有比混合式存储器系统200的其它部分高的耐久性。
在一些实施例中,由主机202执行的过程及/或应用程序可依赖于数据库管理系统(DBMS),例如NoSQL、SQLite、基于云的DBMS或其它适合DBMS。DBMS可允许最终用户创建、读取、更新及/或删除与计算系统200相关联的数据库中的数据。在一些实施例中,DMBS可根据可允许实现数据一致性及/或系统持久性的日志记录策略操作。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写入转移到存储器资源208-N(其可为NAND存储器),及/或控制器206可经配置以将SSR写入转移到存储器资源208-1(其可为低等待时间新兴存储器资源),如本文中所描述。
在一些方法中,不可能将对应于存取语义的信息传输到与计算系统200相关联的存储器装置。举例来说,在一些方法中,不将对应于写入存取请求是否与用户数据或文件系统元数据相关联的信息传输到与计算系统200相关联的存储器装置。因此,在一些方法中,与计算系统200相关联的存储器装置可不具备关于在特定LBA或LBA范围存储在执行分页过程的存储位置的情况下所述特定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中图解说明的存储器资源208-1)的一部分,如上文结合图2所描述。
当多个虚拟地址映射到同一物理存储器地址时,计算系统可经历经减小性能及/或可悬而不决(例如,过程可被终止及/或可表现为非预期行为)。通过将混合式存储器系统的一部分分配为调换空间及/或调换装置,可在主机与混合式存储器系统之间传送数据页以缓解性能减小,所述性能减小与对映射到与同一物理存储器地址的多个虚拟地址的同时调用相关联,如下文结合框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 (17)
1.一种混合式存储器系统的设备,其包括:
所述混合式存储器系统,其包括第一非易失性存储器NVM资源、第二NVM资源及控制器,其中所述控制器经配置以:
将敏感度分配给与调换操作的执行相对应的命令,所述命令与主机的主存储器相关联,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入等待时间;
确定所述命令还对应于特定类型的文件系统写入,所述特定类型的文件系统写入具有与其相关联的可确定写入模式;
分配所述混合式存储器系统的一部分来存储与所述主机的所述主存储器相关联的数据,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统并且对应于所述调换操作的执行,其中:
所述混合式存储器系统的所述部分被分配给所述第一NVM或所述第二NVM中的被配置为表现出比所述第一NVM或所述第二NVM中的另一个更低的存取等待时间和更高的耐久性的一个;和
所述混合式存储器系统的所述部分被配置为允许数据在所述混合式存储器系统的所分配部分和所述主机之间传输;和
在处理所述命令时,响应于所述主机的主存储器经历了阈值量的资源利用的确定,至少部分地基于所分配敏感度、与所述特定类型的文件系统写入相对应的所述命令以及具有与其关联的所述可确定写入模式的所述特定类型的文件系统写入,作为执行所述调换操作的一部分而通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述第一NVM或所述第二NVM中被配置为表现出所述更低的存取等待时间和所述更高的耐久性的一个来将与所述主机的虚拟存储器位置相关联的所述主存储器的数据页的一部分选择性地传送到所述混合式存储器系统的所述第一NVM资源或所述第二NVM资源。
2.根据权利要求1所述的设备,其中所述控制器进一步经配置以致使将所述数据选择性地传送到所述混合式存储器系统的特定逻辑块地址范围。
3.根据权利要求1所述的设备,其中所述控制器进一步经配置以通过在所述混合式存储器系统中选择性地传送所述数据而优化所述数据的执行速度。
4.根据权利要求1所述的设备,其中所述数据包含对应于过程工作数据集的数据。
5.根据权利要求1所述的设备,其中所述第一NVM和所述第二NVM中的至少一个包括电阻可变存储器装置,且所述第一NVM和所述第二NVM中的另一个包括快闪存储器装置。
6.一种混合式存储器系统的系统,其包括:
所述混合式存储器系统,其包括第一非易失性存储器NVM资源、第二非易失性存储器NVM资源和控制器,所述控制器经配置以:
将敏感度分配给与调换操作的执行相对应的命令,所述命令与主机的主存储器相关联,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入等待时间;
确定所述命令还对应于特定类型的文件系统写入,所述特定类型的文件系统写入具有与其相关联的可确定写入模式;
分配所述混合式存储器系统的一部分来存储与所述主机的所述主存储器相关联的数据,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统并且对应于所述调换操作的执行,其中:
所述混合式存储器系统的所述部分被分配给所述第一NVM或所述第二NVM中的被配置为表现出比所述第一NVM或所述第二NVM中的另一个更低的写入等待时间和更高的耐久性的一个;和
所述混合式存储器系统的所述部分被配置为允许所述数据在所述混合式存储器系统的所分配部分和所述主机之间传输;和
通过选择性地将与所述调换操作的执行相对应的所述主存储器的数据页的一部分从所述主机传输到所述混合式存储器系统的所分配部分来执行所述调换操作;以及
在处理所述命令时,至少部分地基于所分配敏感度、与所述特定类型的文件系统写入相对应的所述命令以及具有与其关联的所述可确定写入模式的所述特定类型的文件系统写入,作为执行所述调换操作的一部分而通过将与耦合所述混合式存储器系统的所述主机的所述主存储器相关联的LBA映射到所述第一NVM或所述第二NVM中被配置为表现出所述更低的写入等待时间和所述更高的耐久性的一个来将所述主存储器的数据页的所述部分选择性地存储到所述混合式存储器系统的所述第一NVM资源或所述第二NVM资源,其中至少部分地基于所述调换操作的执行而将所述主存储器的所述数据页的所述部分选择性地存储在所述混合式存储器系统的所述第一NVM或所述第二NVM中。
7.根据权利要求6所述的系统,其中所述第一存储器资源通过与所述第二存储器资源相比更快的存取时间及更高的存储器耐久性中的至少一者表征。
8.根据权利要求6所述的系统,其中所述控制器经配置以通过将所述数据选择性地传送到所述混合式存储器系统的所述经分配部分而优化与所述调换操作的执行相关联的时间量。
9.根据权利要求6所述的系统,其中所述控制器经配置以响应于所述数据由所述主机参考的确定而将所述数据传送回到所述主机。
10.根据权利要求6所述的系统,其中对应于所述调换操作的所述数据与通过相关联于所述主机的虚拟存储器页存取的过程工作数据集对应。
11.根据权利要求10所述的系统,其中所述控制器经配置以响应于与所述过程工作集对应的存储器量已超过阈值存储器消耗值的确定而致使执行所述调换操作。
12.一种用于混合式存储器系统的方法,其包括:
将所述混合式存储器系统的一部分分配为存储对应于主机的虚拟存储器位置的数据,所述混合式存储器系统包括快闪存储器装置和电阻可变存储器装置;
将敏感度分配给与调换操作的执行相对应的命令,所述命令与所述主机的主存储器相关联,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统,其中所述敏感度基于所述命令的执行频率和与所述命令的执行相关联的写入等待时间;
确定所述命令还对应于特定类型的文件系统写入,所述特定类型的文件系统写入具有与其相关联的可确定写入模式;
分配所述混合式存储器系统的一部分来存储与所述主机的所述主存储器相关联的数据,所述主机的所述主存储器与所述混合式存储器系统分离且可耦合所述混合式存储器系统并且对应于所述调换操作的执行,其中:
所述混合式存储器系统的所述部分被分配给所述闪存储器装置或所述电阻可变存储器装置中的被配置为表现出比所述闪存储器装置或所述电阻可变存储器装置中的另一个更低的存取等待时间和更高的耐久性的一个;和
所述混合式存储器系统的所述部分被配置为允许数据在所述混合式存储器系统的所分配部分和所述主机之间传输;和
在处理所述命令时,至少部分地基于所分配敏感度、与所述特定类型的文件系统写入相对应的所述命令以及具有与其关联的所述可确定写入模式的所述特定类型的文件系统写入,作为执行所述调换操作的一部分而通过将与所述主机的所述主存储器相关联的逻辑块地址LBA映射到所述闪存储器装置或所述电阻可变存储器装置中的被配置为表现出所述更低的存取等待时间和所述更高的耐久性的一个来将由与所述主机相关联的虚拟存储器位置所引用的所述主存储器的数据页的一部分选择性地传送到所述混合式存储器系统的所述闪存储器装置或所述电阻可变存储器装置的所分配部分。
13.根据权利要求12所述的方法,其中将所述混合式存储器系统的所述部分分配为存储所述数据进一步包括将所述混合式存储器系统的所述逻辑块地址范围分配为存储所述数据。
14.根据权利要求12所述的方法,其中所述数据包括匿名数据页。
15.根据权利要求14所述的方法,其中所述匿名数据页包含对应于过程工作数据集的数据。
16.根据权利要求12所述的方法,其进一步包括响应于确定所述主机正参考所述数据而将所述数据从所述混合式存储器系统的所述经分配部分传送回到所述主机。
17.根据权利要求12所述的方法,其进一步包括响应于确定与所述主机相关联的物理存储器位置由与所述主机相关联的一个以上虚拟存储器位置参考而将所述数据从所述主机选择性地传送到所述混合式存储器系统的所述经分配部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/927,383 US10809942B2 (en) | 2018-03-21 | 2018-03-21 | Latency-based storage in a hybrid memory system |
US15/927,383 | 2018-03-21 | ||
PCT/US2019/021960 WO2019182824A1 (en) | 2018-03-21 | 2019-03-13 | Hybrid memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111919201A CN111919201A (zh) | 2020-11-10 |
CN111919201B true CN111919201B (zh) | 2024-05-14 |
Family
ID=67985188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980020352.4A Active CN111919201B (zh) | 2018-03-21 | 2019-03-13 | 混合式存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10809942B2 (zh) |
EP (1) | EP3769227A4 (zh) |
JP (1) | JP7049476B2 (zh) |
KR (1) | KR102434170B1 (zh) |
CN (1) | CN111919201B (zh) |
TW (1) | TWI696188B (zh) |
WO (1) | WO2019182824A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | 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 |
US10923178B1 (en) | 2020-02-27 | 2021-02-16 | Western Digital Technologies, Inc. | Data storage with improved write performance for preferred user data |
RU2757659C1 (ru) * | 2020-06-16 | 2021-10-19 | Александр Георгиевич Носков | Накопитель магнитный с разделёнными областями |
US11947839B2 (en) * | 2021-05-10 | 2024-04-02 | Samsung Electronics Co., Ltd. | Storage device, system, and method for customizable metadata |
US11860773B2 (en) * | 2022-02-03 | 2024-01-02 | Micron Technology, Inc. | Memory access statistics monitoring |
JP2023173240A (ja) * | 2022-05-25 | 2023-12-07 | 東芝テック株式会社 | 計算機、メモリ制御方法およびメモリ制御プログラム |
CN114936007A (zh) * | 2022-06-02 | 2022-08-23 | 三星(中国)半导体有限公司 | 存储数据的方法和装置 |
KR102561316B1 (ko) | 2023-03-20 | 2023-07-31 | 메티스엑스 주식회사 | 전자 장치 및 이를 포함하는 컴퓨팅 시스템 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581142B1 (en) * | 2000-09-01 | 2003-06-17 | International Business Machines Corporation | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer |
CN101169751A (zh) * | 2006-10-25 | 2008-04-30 | 三星电子株式会社 | 具有闪存设备的系统及其数据恢复方法 |
CN101236524A (zh) * | 2007-01-16 | 2008-08-06 | 三星电子株式会社 | 混合硬盘驱动器、计算机系统、闪存直接存储器存取电路 |
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN106063206A (zh) * | 2015-02-18 | 2016-10-26 | 英特尔公司 | 基于优先级和带宽分配的通信量类别仲裁 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH047763A (ja) * | 1990-04-26 | 1992-01-13 | Oki Electric Ind Co Ltd | 主記憶割り当て管理方式 |
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 |
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 |
US7584335B2 (en) * | 2006-11-02 | 2009-09-01 | International Business Machines Corporation | Methods and arrangements for hybrid data storage |
TWI338856B (en) * | 2007-03-09 | 2011-03-11 | Ite Tech Inc | A flash memory storing device and a data storing method thereof |
JP4781373B2 (ja) * | 2007-05-14 | 2011-09-28 | 株式会社バッファロー | 記憶装置 |
US20100169602A1 (en) * | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US20100241815A1 (en) * | 2009-03-20 | 2010-09-23 | Google Inc. | Hybrid Storage Device |
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 | 삼성전자주식회사 | 하이브리드 메모리 시스템, 및 그 관리 방법 |
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 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
JP2014178913A (ja) * | 2013-03-15 | 2014-09-25 | Sony Corp | 電子機器、スナップショットイメージの作成方法及びプログラム |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
US9430386B2 (en) * | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9946495B2 (en) * | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9436600B2 (en) | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9921980B2 (en) | 2013-08-12 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for configuring I/Os of memory for hybrid memory modules |
US9898410B2 (en) | 2013-09-10 | 2018-02-20 | Intel Corporation | Hybrid main memory using a fine-grain level of remapping |
CN106062724B (zh) * | 2013-09-27 | 2020-09-08 | 慧与发展有限责任合伙企业 | 管理存储器模块上的数据的方法、存储器模块及存储介质 |
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 |
US9509771B2 (en) * | 2014-01-14 | 2016-11-29 | International Business Machines Corporation | Prioritizing storage array management commands |
KR20150089538A (ko) * | 2014-01-28 | 2015-08-05 | 한국전자통신연구원 | 인-메모리 데이터 관리 장치 및 인-메모리 데이터 관리 방법 |
US9772776B2 (en) | 2014-02-27 | 2017-09-26 | Red Hat Israel, Ltd. | Per-memory group swap device |
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 |
US10007435B2 (en) | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
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 |
JP2017138853A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置およびプログラム |
US10678704B2 (en) * | 2016-03-29 | 2020-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for enabling larger memory capacity than physical memory size |
US9772943B1 (en) * | 2016-04-01 | 2017-09-26 | Cavium, Inc. | Managing synonyms in virtual-address caches |
US20170300422A1 (en) | 2016-04-14 | 2017-10-19 | Micron Technology, Inc. | Memory device with direct read access |
US10108555B2 (en) * | 2016-05-26 | 2018-10-23 | Macronix International Co., Ltd. | Memory system and memory management method thereof |
US10698732B2 (en) * | 2016-07-19 | 2020-06-30 | Sap Se | Page ranking in operating system virtual pages in hybrid memory systems |
US10540098B2 (en) * | 2016-07-19 | 2020-01-21 | Sap Se | Workload-aware page management for in-memory databases in hybrid main 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 |
KR102798748B1 (ko) * | 2017-02-15 | 2025-04-22 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 시스템 및 그 제어 방법 |
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 |
US10705747B2 (en) * | 2018-03-21 | 2020-07-07 | 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 |
-
2018
- 2018-03-21 US US15/927,383 patent/US10809942B2/en active Active
-
2019
- 2019-03-13 EP EP19771806.7A patent/EP3769227A4/en active Pending
- 2019-03-13 JP JP2020550636A patent/JP7049476B2/ja active Active
- 2019-03-13 KR KR1020207029008A patent/KR102434170B1/ko active Active
- 2019-03-13 WO PCT/US2019/021960 patent/WO2019182824A1/en unknown
- 2019-03-13 CN CN201980020352.4A patent/CN111919201B/zh active Active
- 2019-03-18 TW TW108109072A patent/TWI696188B/zh active
-
2020
- 2020-09-11 US US17/018,371 patent/US20200409607A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581142B1 (en) * | 2000-09-01 | 2003-06-17 | International Business Machines Corporation | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer |
CN101169751A (zh) * | 2006-10-25 | 2008-04-30 | 三星电子株式会社 | 具有闪存设备的系统及其数据恢复方法 |
CN101236524A (zh) * | 2007-01-16 | 2008-08-06 | 三星电子株式会社 | 混合硬盘驱动器、计算机系统、闪存直接存储器存取电路 |
CN103635968A (zh) * | 2011-05-31 | 2014-03-12 | 美光科技公司 | 包含存储器系统控制器的设备和相关方法 |
CN106063206A (zh) * | 2015-02-18 | 2016-10-26 | 英特尔公司 | 基于优先级和带宽分配的通信量类别仲裁 |
Non-Patent Citations (1)
Title |
---|
"A Novel Memory Hierarchy for Flash Memory Based Storage Systems";Keun Soo Yim;《Journal of Semiconductor Technology and Science》;第265页第2段,266页第5段 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019182824A1 (en) | 2019-09-26 |
JP7049476B2 (ja) | 2022-04-06 |
JP2021518605A (ja) | 2021-08-02 |
KR102434170B1 (ko) | 2022-08-19 |
TW201941197A (zh) | 2019-10-16 |
TWI696188B (zh) | 2020-06-11 |
US20190294363A1 (en) | 2019-09-26 |
CN111919201A (zh) | 2020-11-10 |
KR20200121372A (ko) | 2020-10-23 |
EP3769227A1 (en) | 2021-01-27 |
US20200409607A1 (en) | 2020-12-31 |
EP3769227A4 (en) | 2021-12-22 |
US10809942B2 (en) | 2020-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111919201B (zh) | 混合式存储器系统 | |
CN111868678B (zh) | 混合存储器系统 | |
US8938601B2 (en) | Hybrid memory system having a volatile memory with cache and method of managing the same | |
US20140282514A1 (en) | Virtualization support for storage devices | |
US11327892B2 (en) | Latency-based storage in a hybrid memory system | |
US11782854B2 (en) | Cache architecture for a storage device |
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 |