CN106354656B - 用于存储管理的方法和*** - Google Patents

用于存储管理的方法和*** Download PDF

Info

Publication number
CN106354656B
CN106354656B CN201610543231.6A CN201610543231A CN106354656B CN 106354656 B CN106354656 B CN 106354656B CN 201610543231 A CN201610543231 A CN 201610543231A CN 106354656 B CN106354656 B CN 106354656B
Authority
CN
China
Prior art keywords
address space
address
access
nvm
mask
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
Application number
CN201610543231.6A
Other languages
English (en)
Other versions
CN106354656A (zh
Inventor
郑宏忠
牛迪民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN106354656A publication Critical patent/CN106354656A/zh
Application granted granted Critical
Publication of CN106354656B publication Critical patent/CN106354656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用于存储管理的***和方法。公开了一种使用NVDIMM的***和方法。NVDIMM可以支持两种或者更多种访问模式。应用可以针对应用请求的地址空间指定期望哪种访问模式。非易失性存储器(NVM)调节器可以在NVM控制寄存器中存储针对地址空间的地址掩码和访问模式。当应用请求对地址的读或写访问时,NVM调节器可以将请求的地址与NVM控制寄存器中的地址掩码进行比较,从与匹配地址掩码相应的访问模式确定访问模式,并且使用访问模式来满足对地址的请求。

Description

用于存储管理的方法和***
本申请要求于2015年7月13日提交的第62/192,028号美国临时专利申请以及于2015年12月2日提交的第14/957,568号美国临时专利申请的利益,这些美国临时专利申请通过引用合并于此。
技术领域
本发明构思涉及存储器,更具体地讲,涉及一种用于存储管理的方法和***。
背景技术
非易失性双列直插式存储器模块(NVDIMM)将非易失性存储器放置于双列直插式存储器模块形状参数(form factor)的存储器通道中。但是NVDIMM引入通常不在DRAM中出现的新的起皱。NVDIMM可以支持字节寻址存储或者块寻址存储,(尽管DIMM可以在操作***的帮助下支持块寻址存储)然而DIMM通常仅支持字节寻址存储。
简单的解决方案为强迫NVDIMM仅使用一个寻址模式:也就是,特定NVDIMM仅用作字节寻址主存储器/存储或仅用作块寻址存储,而不用作两者。但是,这仅是个简单化的解决方案,以致作为过于简单化的解决方案,此方法也不能在所有的状况下进行工作。
因为不同的应用可具有不同的存储器需求,将NVDIMM限制为特定的寻址模式可导致资源的次优利用。使用一种寻址模式的NVDIMM可能会工作过度,然而使用不同寻址模式的另一种NVDIMM可能未被充分利用。并且,这种方案假设计算机***包括多个NVDIMM。如果计算机***仅包括一个NVDIMM,则不是由此NVDIMM提供的访问模式可能完全不可用。
对允许在NVDIMM中使用多种访问模式方法的需要一直存在。
发明内容
在一个总体方面中,一种用于存储管理的***,包括:非易失性双列直插式存储器模块NVDIMM;非易失性存储器NVM调节器,用于以第一访问模式在NVDIMM中针对第一应用分配第一地址空间并且以第二访问模式在NVDIMM中针对第二应用分配第二地址空间,并且在非易失性存储器NVM控制寄存器中至少存储针对第一地址空间的第一地址掩码,第一地址掩码与第一访问模式关联。
第一访问模式可包括块寻址模式;第二访问模式可包括字节寻址模式。
NVM控制寄存器可用于存储多个地址掩码,所述多个地址掩码中的每个地址掩码与使用块寻址模式的地址空间关联;NVM调节器可用于将在NVM控制寄存器中未存储地址掩码的任何地址空间视为使用字节寻址模式的地址空间。
NVM控制寄存器可用于存储多个地址掩码,所述多个地址掩码中的每个地址掩码与使用字节寻址模式的地址空间相关联;NVM调节器可用于将在NVM控制寄存器中未存储地址掩码的任何地址空间视为使用块寻址模式的地址空间。
NVM控制寄存器可用于存储针对第二地址空间的第二地址掩码,第二地址掩码与第二访问模式关联。
NVM调节器可包括:字节寻址单元,使用字节寻址模式访问第一地址空间;仿真单元,对使用块寻址模式访问第二地址空间进行仿真,所述仿真单元使用字节寻址单元。
NVM调节器可包括:字节寻址单元,使用字节寻址模式访问第一地址空间;块寻址单元,使用块寻址模式访问第二地址空间。
NVM调节器可用于对NVM控制寄存器中所有地址掩码执行并行访问检查,并且使用与匹配地址掩码关联的访问模式调度地址请求。
所述***还可包括:连接到NVDIMM的处理器,所述处理器包括NVM控制寄存器。
在另一个总体方面中,一种用于存储管理的方法,包括:接收用于在非易失性双列直插式存储器模块NVDIMM中分配地址空间的请求;接收针对请求的地址空间的访问模式,所述访问模式来自包括至少两个访问模式的集合;识别NVDIMM中的地址空间;返回与请求的地址空间相同的地址空间。
所述方法还可包括:在非易失性存储器NVM控制寄存器中存储针对地址空间的地址掩码和针对地址空间的访问模式。
存储针对地址空间的地址掩码的步骤可包括:如果地址空间的访问模式是块寻址模式,则仅存储针对所述地址空间的地址掩码。
存储针对地址空间的地址掩码的步骤可包括:如果地址空间的访问模式是字节寻址模式,则仅存储针对所述地址空间的地址掩码。
在另一个总体方面中,一种用于存储管理的方法,包括:接收从非易失性双列直插式存储器模块NVDIMM访问地址空间的请求;确定针对地址空间的访问模式;使用所述访问模式调度从NVDIMM访问地址空间的请求。
确定针对地址空间的访问模式的步骤可包括:确定针对地址空间的块寻址模式。
确定针对地址空间的访问模式的步骤可包括:确定针对地址空间的字节寻址模式。
确定针对地址空间的访问模式的步骤可包括:从处理器中的非易失性存储器NVM控制寄存器确定访问模式。
从NVM控制寄存器确定访问模式的步骤可包括:尝试将地址空间与NVM控制寄存器中的地址掩码进行匹配;确定与匹配地址空间的NVM控制寄存器中的地址掩码相应的访问模式。
尝试将地址空间与NVM控制寄存器中的地址掩码进行匹配的步骤可包括:将地址空间与NVM控制寄存器中的每个地址掩码进行比较。
将地址空间与NVM控制寄存器中的每个地址掩码进行比较的步骤可包括:将地址空间与NVM控制寄存器中的每个地址掩码进行并行比较。
从NVM控制寄存器确定访问模式的步骤还可包括:如果地址空间与NVM控制寄存器中的地址掩码不匹配,则将访问模式确定为字节寻址模式。
从NVM控制寄存器确定访问模式的步骤还可包括:如果地址空间与NVM控制寄存器中的地址掩码不匹配,则将访问模式确定为块寻址模式。
附图说明
图1示出根据本发明构思的实施例的使用用于存储器通道中的存储器或存储的非易失性双列直插式存储器模块(NVDIMM)的计算机***。
图2示出图1中计算机***的外部特征。
图3示出图1的被划分为地址空间的NVDIMM。
图4示出与图1的非易失性存储器(NVM)控制寄存器和图1的NVDIMM交互的图1中的NVM调节器。
图5示出存储16个不同地址掩码和访问模式的图1的NVM控制寄存器。
图6示出根据本发明构思的实施例的使用图1的NVM控制寄存器来针对请求的地址确定访问模式的图1的NVM调节器。
图7示出根据本发明构思的实施例的在NVDIMM中为应用分配地址空间的过程的流程图。
图8示出根据本发明构思的实施例的NVM调节器来确定用于NVDIMM中新分配的地址空间的访问模式的程序的流程图。
图9示出根据本发明构思的实施例的NVM调节器在NVM控制寄存器中存储关于分配的地址空间的信息的过程的流程图。
图10示出根据本发明构思的实施例的NVM调节器处理用于访问NVDIMM中的地址的请求的过程的流程图。
图11示出根据本发明构思的第一实施例的NVM调节器针对被请求的地址确定访问模式的过程的流程图。
图12示出根据本发明构思的第二实施例的NVM调节器针对被请求的地址确定访问模式的过程的流程图。
图13示出如上参考图1-12描述的可使用NVDIMM作为存储器和/或存储的装置。
具体实施方式
现在要详细描述本发明构思的实施例,本发明构思的实施例的示例在附图中示出。在下面详细描述中,描述了大量的特定细节来充分理解本发明构思。然而,应该理解,本发明领域的技术人员可以在没有这些特定细节的情况下实施本发明。在其他的示例中,没有详细描述公知的方法、程序、部件、电路和网络,以免不必要的模糊实施例的多个方面。
将理解,尽管术语第一、第二等可在此被用于描述各种元件,但是这些元件不应该由这些术语所限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本发明构思的范围的情况下,第一模块可以被称为第二模块,并且类似的,第二模块可以被称为第一模块。
这里本发明构思的描述中使用的术语仅用于描述特定实施例的目的,而不意图限制本发明构思。如本发明构思和所附权利要求中所使用的,除非上下文另外明确指示,否则单数形式也意图包括复数形式。还将理解,如在此所使用的,本文使用的术语“和/或”表示并且包括一个或多个相关所列项的任何和所有可能组合。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”指示存在所述的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其组合。附图的组件和特征不必按比例绘制。
本发明构思的实施例可以包括具有适应性访问模式和智能分区机制的非易失性双列直插式存储器模块(NVDIMM)。为了实现智能分区机制,非易失性存储器(NVM)调节器可以包括被配置为按应用的请求在NVDIMM中以字节或块寻址模式分配地址空间的硬件和/或软件模块。NVM调节器可以根据应用的行为在运行过程中动态地将NVDIMM分为字节寻址部分和块寻址部分。智能分区机制还可以包括NVM控制寄存器,NVM控制寄存器可以存储哪个地址范围具有哪个访问模式。
NVM调节器可以接收应用对具有相关访问模式的NVDIMM地址空间的请求(应用可以请求具有不同访问模式的多个地址空间)。NVM调节器可以将信息存储在NVM控制寄存器中,诸如与被请求的地址空间和模式对应的地址掩码和访问模式。
为了处理对地址空间的读取和写入请求,NVM调节器可以单独或并行地检查NVM控制寄存器中的地址掩码。当发现地址空间和访问模式匹配时,NVM调节器可以调度具有选择的访问模式的请求。
图1示出根据本发明构思的实施例的在存储器通道中使用非易失性双列直插式存储器模块(NVDIMM)的计算机***。在图1中示出了处理器105。处理器105可以连接到诸如NVDIMM 110和115的存储器模块。处理器105还可以连接到诸如DIMM 120和125的其他存储器模块。在本发明构思的一些实施例中,所有存储器模块可等同使用。在本发明构思的其他实施例中,DIMM 120和125可以用作NVDIMM 110和115的高速缓冲存储器。本发明构思的其他实施例可以以任何期望的方式(例如,通过将不同的存储器和存储装置以优化装置性能的层级进行分层)使用NVDIMM 110和115、DIMM 120和125和其他存储器和/或存储装置。
处理器105还可以连接到存储器130。存储器130可以是包括诸如硬盘驱动器(HDD)、固态硬盘(SSD)的技术和/或其他非易失性存储技术的任何期望的存储器。另外,存储器130可以包括不同存储器类型的混合:例如,HDD和SSD两者。最后,存储器130可以以包括经由总线的直接连接或通过到外部存储的接口(诸如通用串行总线(USB)接口)的任何期望的方式连接到处理器105。
处理器105可以支持操作***135的操作。操作***135可以是一次仅支持一个应用的操作或并行支持多个应用的操作的任何期望的操作***。此外,操作***135可以支持虚拟机器,其为每一个虚拟机器提供计算机***内的所有资源完全使用的表象。在图1中示出了由操作***135支持的n个虚拟机器140-145。
操作***135可以包括非易失性存储器(NVM)调节器150。NVM调节器150可以管理NVDIMM 110和115中的地址空间的分配以及来自NVDIMM 110和115中的地址空间的读取/写入请求的处理。支持NVM调节器150的操作的是NVM控制寄存器155,其可以存储于处理器105中,或者可以存储于存储器控制器中,等等。如以下参照图4-6进一步的描述,NVM控制寄存器155可以存储关于如何使用地址空间的信息,包括,例如,地址掩码和访问模式。地址掩码可以包括与地址空间中所有地址中的最高有效位匹配的特定位模式。访问模式可以表明如何从NVDIMM中的地址读数据或如何将数据写入NVDIMM中的地址。目前,使用字节寻址模式或块寻址模式执行读和写。考虑到目前仅存在两种访问模式,可以使用一位来表示访问模式。但是如果设计了另外的访问模式,则存储于NVM控制寄存器155中的访问模式可以使用另外的位。
图2示出图1中计算机***的外部特征。在图2中示出了计算机***205。计算机***205被示出为包括计算机210、监视器215、键盘220和鼠标225。本领域技术人员可以得知计算机***205中可以包括其他组件,例如,可以包括其他输入/输出装置,诸如打印机。此外,计算机***205可以包括图1中示出的常见的内部组件,诸如中央处理单元105,NVDIMM110和115、DIMM 120和125、存储器130等等。尽管未在图2中示出,但本领域技术人员将得知计算机***205可以包括其他内部组件,诸如其他图形卡、调制解调器等。此外,本领域技术人员将得知计算机***205可以直接或通过任何类型的网络(未示出)与其他计算机***交互。最后,尽管图2将计算机***205示出为常见的台式计算机,但本领域技术人员可以得知计算机***205可以是任何类型的机器或计算机装置,包括,例如,笔记本计算机、平板计算机、个人数字助理(PDA)或者智能手机等等。
图3示出图1的被划分为地址空间的NVDIMM。在图3示出了NVDIMM 110,但是描述的内容同样可适用于图1中的NVDIMM 115。NVDIMM 110被示出为划分为包括地址空间305、310和315的16个地址空间。地址空间305、310和315中的每个地址空间可以是为一些应用分配的NVDIMM 110的一部分。也可以出现多个不同的地址空间305、310和315被分配到相同的应用(也就是,单独的应用不被限制为使用NVDIMM中的单个地址空间305、310或315)。此外,每个地址空间305、310和315可以使用任何访问模式:可使用任何期望的访问模式访问存在于诸如NVDIMM 110的单个NVDIMM中的地址空间305、310和315,或者甚至由单个应用使用的地址空间305、310和315。当响应于应用请求分配地址空间305至315时,图1中的NVM调节器150可以负责指定地址空间305-315的大小。
尽管图3示出NVDIMM 110被划分为16个地址空间,但在NVDIMM 110中分配的地址空间的数量可以多于或少于16。此外,虽然图3显示每个地址空间305-315大小相同(也就是,每个地址空间305-315包括相同数量的NVDIMM 110中的地址),但是地址空间305、310和315可以是任何期望的大小,其仅受NVDIMM 110本身大小的限制。例如,地址空间305可能仅能够存储8KB的数据,然而地址空间310可能能够存储48MB的数据。(此外,这些描述的地址空间305、310和315的大小仅是示例性的,而不意在暗示任何对NVDIMM 110中单个地址空间305、310和315的大小的限制)。
另外,图1中的NVM调节器150还可以调整地址空间305、310和315的大小。例如,假设地址空间305最初被分配为存储1MB的数据。使用地址空间305的应用在运行时从图1中的NVM调节器150请求另外的存储器和/或存储。图1中的NVM调节器150可以简单地分配另外的地址空间310或315并将地址空间310或315分配到应用。但是如果应用请求的另外的存储器和/或存储使用与地址空间305相同的访问模式,并且存在与地址空间305邻近的可用地址(也就是,地址空间310还没有被分配),则图1中的NVM调节器150可以将地址空间305扩大为包括邻近的地址。
尽管上述示例描述了增大地址空间305、310和315的大小,但是地址空间305、310和315的大小可以以相同的方式缩小。如果应用表明其想要释放一些不需要的存储器和/或存储,则此存储器和/或存储可以被认为未由图1中的NVM调节器150进行分配,并用来满足以后的对存储器和/或存储的请求。
如以下将参考图5至图6进一步的描述,图1中的NVM控制寄存器155可存储针对每个地址空间305、310和315的地址掩码。这些地址掩码可以用于确定地址空间305、310和315中哪个地址空间包括特定的地址。如果地址空间305、310和315如上所述被调整大小,则与地址空间305、310和/或315关联的地址掩码可被改变以反映新的调整大小的地址空间305、310和/或315。例如,如果地址空间305、310和/或315被扩大,则关联的地址掩码可以包括更少的位;如果地址空间305、310和/或315被缩小,则关联的地址掩码可以包括另外的位。
地址掩码中位的数量可以影响地址空间305、310和315的大小。例如,假设单个的地址包括64位。如果48位用于地址掩码,则16(最低有效)位将用于区分地址空间中的地址。这将意味着地址空间305、310和315存储65536位或8192字节的数据。如果应用请求扩大地址空间305、310和/或315来存储,例如,16,777,216位或者2,097,152字节,则地址掩码可以从48位减少到40位。
地址掩码的长度如何影响地址空间305、310和315大小的一个结果是地址空间305、310和315的大小为2的幂。但是仅因为地址空间305、310和315的大小是2的幂并不意味着应用必须被给定访问全部的地址空间305、310和315,尽管应用对其缺乏访问的地址空间305、310和315部分最终会无法使用。为了避免具有无法使用的存储器和/或存储,如果应用要求不能通过将地址空间305、310和315的大小扩大到2的幂而适当实现的另外的存储器和/或存储,则可以使用不同大小的不同地址空间305、310和315(用图1的NVM控制寄存器155中的附加入口)。
图4示出与图1的NVM控制寄存器155和图1的NVDIMM 110交互的图1中的NVM调节器150。在图4中,NVM调节器150被示出为包括分配单元405、字节寻址单元410、块寻址单元415和仿真单元420。分配单元405可以响应于来自应用的请求为应用分配NVDIMM 110的存储器和/或存储的一部分作为图3的地址空间305、310和/或315。字节寻址单元410可以使用字节寻址访问模式从NVDIMM 110中的图3的地址空间305、310和/或315访问地址,块寻址单元415可以使用块寻址模式从NVDIMM 110中的图3的地址空间305、310和/或315访问地址。最后,在本发明的一些实施例中,仿真单元420可以使用字节寻址单元410仿真块寻址单元415,而不包括块寻址单元415。也就是,由于可由仿真单元420使用字节寻址单元410来仿真对存储器和/或存储的块访问,因此本发明构思的一些实施例不需要包括块寻址单元415。
NVM调节器150将数据存储到NVM控制寄存器155并从NVM控制寄存器155访问数据。当NVM调节器150使用分配单元405时,NVM调节器150可以在NVM控制寄存器155中存储地址掩码和访问模式。然后,当NVM调节器接收用于访问地址的请求时,NVM调节器150可以使用存储在NVM控制寄存器155中的地址掩码和访问模式来确定当访问请求的地址时使用什么访问模式。
图5示出存储16个地址掩码和访问模式的图1的示例性NVM控制寄存器155。在图5中,NVM控制寄存器155被示出为包括地址掩码505、地址掩码510等直到地址掩码515以及相应的访问模式520、访问模式525等直到访问模式530。每一对地址掩码和访问模式可以与图1的NVDIMM 110或115中的图3的地址空间305、310和/或315关联。
虽然图5将NVM控制寄存器155示出为存储16个地址掩码和访问模式,但是这仅是示例。NVM控制寄存器155可以存储任意数量的地址掩码和访问模式。此外,尽管图5将地址掩码示出为48位长并将访问模式示出为一位,但是这些大小也是示例。地址掩码505至515可以是任何期望的大小,并且每一个的大小可以不同。类似地,尽管仅需要一个位来区分两种访问模式(字节寻址和块寻址),但是如果提供了另外的访问模式,则访问模式520至530可以包括多于一个位。
图6示出根据本发明构思的实施例的图1的NVM调节器150可如何使用图1的NVM控制寄存器155来针对请求的地址确定访问模式。在图6中,被请求地址605可以是应用想要读或者写的地址。然后比较器610、比较器615等直到比较器620可以将请求的地址605与地址掩码505、510和515进行比较来确定图3中的哪个地址空间305、310和315包括请求的地址605。这种比较可以包括检查,以查看哪个地址掩码与被请求地址605的最高有效位匹配。一旦识别到正确的地址掩码,编码器625可以使用此信息来生成用于多路转接器630的控制信号,来选择相应的访问模式520、525和530。这个选择的访问模式可以作为访问模式635被输出。
图7示出根据本发明构思实施例的在NVDIMM 110和/或115中为应用分配地址空间的过程的流程图。在图7中,在框705,图1中的NVM调节器150可以从应用接收用于向应用分配NVM地址空间的请求。在框710,图1中的NVM调节器150可以接收针对请求的地址空间的访问模式。在框715,图1中的NVM调节器150可以识别图1的NVDIMM 110和/或115中的图3的可用地址空间305、310和/或315。在框720,图1的NVM调节器150可以在图1的NVM控制寄存器155中存储针对图3的被识别地址空间305、310或315的地址掩码和访问模式。最后,在框725,图1的NVM调节器150可以将图3的地址空间305、310或315返回给请求者。
在图7中(和下面其他的流程图中)示出了本发明构思的一个实施例。但是本领域技术人员将得知,通过改变框的顺序、通过省略框、或者通过包括图中未示出的链接,本发明的其他实施例也是可行的。无论是否明确描述,流程图的所有这种变化被认为是本发明的实施例。
图8示出根据本发明构思的实施例的图1的NVM调节器150来确定用于NVDIMM 110和/或150中新分配的地址空间的访问模式的过程的流程图。图8对图7的框710的操作进行详细描述。在图8中,在框805,图1的NVM调节器150可以从应用中接收针对字节寻址地址空间的请求。可选地,在框810,图1的NVM调节器150可以从应用中接收针对块寻址地址空间的请求。
如上所述,本发明构思的实施例考虑两种访问模式:字节寻址和块寻址。图8反映了这些实施例。但是如果引入另外的访问模式,则图8可以被修改为反映另外的访问模式的使用。
图9示出根据本发明构思实施例图1的NVM调节器150来在图1的NVM控制寄存器155中存储关于分配的图3的地址空间305、310和315的信息的过程的流程图。图9对图7的框720的操作进行详细描述。在图9中,在框905,图1的NVM调节器150可以在图1的NVM控制寄存器155中存储针对图3的所有地址空间305、310和315的地址掩码和访问模式。可选地,在框910,图1的NVM调节器150可以仅存储针对未使用字节寻址访问模式的图3的地址空间305、310和315的地址掩码和访问模式。然后,如果在图1的NVM控制寄存器155的地址掩码中没有找到请求的地址(诸如图6的请求的地址605),则可以假定图3的地址空间305、310或315使用字节寻址访问模式。换句话说,字节寻址访问模式可以被认为是针对在图1的NVM控制寄存器155中未掩码的任何地址默认的访问模式。
关于框910的两个评论值得一提。第一,建立字节寻址访问模式作为默认访问模式是一个选择。但是其他访问模式(诸如块寻址访问模式)可以被认为是默认访问模式,在这种情况下,与块寻址地址空间相关联的地址掩码可以被省略。第二,如果NVDIMM 110和/或115仅提供两种访问模式(诸如字节寻址访问模式和块寻址访问模式),则访问模式可从图1的NVM控制寄存器155中完全省略,原因是在图1的NVM控制寄存器155中通过其自身存储地址掩码识别合适的访问模式。
图10示出根据本发明构思的实施例的图1的NVM调节器150处理用于访问图1的NVDIMM 10和/或115中的地址的请求的过程的流程图。在图10中,在框1005,图1的NVM调节器150可以从应用中接收用于访问地址的请求。在框1010,图1的NVM调节器150可以从图1的NVM控制寄存器155确定适于请求的地址的访问模式。通过将请求的地址与存储在图1的NVM控制寄存器155中的地址掩码进行(可并行地)比较,图1的NVM调节器150可以完成此确定。当找到匹配时,可以从图1的NVM控制寄存器155中选择对应的访问模式作为被确定的访问模式。
图11示出根据本发明构思的第一实施例的图1的NVM调节器150针对图6的请求的地址605确定访问模式的过程的流程图。图11对图10的框1010的操作进行详细描述。在图11中,在框1105,图1的NVM调节器150可以确定图3的地址空间305、310或315使用字节寻址访问模式。可选地,在框1110,图1的NVM调节器150可以确定图3的地址空间305、310或315使用块寻址访问模式。此外,如果NVDIMM 110和/或115支持附加访问模式,则图11可以被修改为反映如何确定其他访问模式。
图12示出根据本发明构思的第二实施例的图1的NVM调节器150针对图6的请求的地址605确定访问模式的过程的流程图。图12对图10的框1010的操作进行详细描述。在图12中,在框1205,图1的NVM调节器150可以将请求的地址与图1的NVM控制寄存器155中的地址掩码进行比较。在框1210,图1的NVM调节器150可以确定是否找到匹配。如果找到匹配,则在框1215,图1的NVM调节器150可以将请求的地址的访问模式确定为与匹配地址掩码相应的存储在图1的NVM控制寄存器155中的访问模式。否则,在框1220,图1的NVM调节器150可以确定访问模式是字节寻址访问模式(或者在字节寻址访问模式不是默认的情况下,确定访问模式是被指定为默认访问模式的任何一个访问模式)。
接下来的讨论的目的是为了提供可以实现本发明构思的特定方面的适当的机器的简短、总体描述。参考图13,典型地,机器205包括连接一个或多个处理器105、存储器110、115、120和125(例如,随机存取存储器(RAM)、只读存储器(ROM),或者其他状态保护介质)、存储器控制器150、存储装置130、用户接口1310和可以使用输入/输出引擎1315管理的输入/输出接口端口的***总线1305。机器205还可以包括网络连接器1320,连接器1320可以是,例如,以太网连接器。时钟1325可以用于协调与***总线1305连接的组件的操作。
机器可至少部分地通过来自传统输入装置(例如,键盘、鼠标等)的输入以及通过从另一机器接收的指令、与虚拟现实(VR)环境的交互、生物识别反馈或其它输入信号被控制。如在此所使用的,术语“机器”意在广泛包括单个机器、虚拟机器或一起操作的可通信连接的机器、虚拟机器或装置的***。示例性机器包括计算装置(例如,个人计算机、工作站、服务器、便携式计算机、手持装置、电话、平板电脑等)以及运输装置,例如,私有或公共交通工具(例如,汽车、火车、出租车等)。
机器可包括嵌入式控制器(例如,可编程或不可编程的逻辑装置或阵列)、专用集成电路(ASIC)、嵌入式计算机、智能卡等。机器可使用一个或多个连接来连接到一个或多个远程机器,诸如通过网络接口、调制解调器或其它通信连接。机器可通过物理和/或逻辑网络(例如,内部网、互联网、局域网、广域网等)的方式互相连接。本领域技术人员将理解,网络通信可使用各种有线和/或无线近程或远程载波和协议,所述载波和协议包括射频(RF)、卫星、微波、电气与电子工程师协会(IEEE)802.11、
Figure BDA0001046096370000121
光纤、红外线、电缆、激光等。
可通过参考或结合关联的数据描述本发明构思的实施例,其中,关联的数据包括当由机器访问时使机器执行任务或定义抽象数据类型或低级硬件环境的函数、程序、数据结构、应用程序等。关联的数据可被存储在诸如易失性和/或非易失性存储器(例如,RAM、ROM等)中或其它存储装置和它们关联的存储媒介(包括硬盘、软盘、光存储器、磁带、闪存、记忆棒、数字视频盘、生物存储器等)中。关联的数据可以以数据包、串行数据、并行数据、传播信号等的形式通过传输环境(包括物理和/或逻辑网络)传送,并可以以压缩或加密格式被使用。关联的数据可被用于分布式环境,并可被本地存储和/或远程存储以便机器访问。
本发明构思的实施例可以包括有形、非易失性机器可读介质,此介质包括可通过一个或多个处理器执行的指令,此指令包括用于执行本文描述的发明构思的元素的指令。
已经参考示出的实施例描述和示出了本发明构思的原理,将认识到,在不脱离这些原理的情况下,可以在布置和细节上修改示出的实施例,并且可以以任何需要的形式组合示出的实施例。而且,尽管前面的讨论集中于特定的实施例,但是也预期其他配置。具体地讲,即使这里使用了诸如“根据本发明构思的实施例”等这样的描述,但这些短语是指整体参考实施例的可能性,并且并不意在将本发明构思限制到特定的实施例配置。如这里所使用的,这些术语可以可参考组合到其他实施例中的相同或者不同的实施例。
上述示出的实施例并不会被解释为限制其发明构思。虽然描述了一些实施例,但本领域技术人员将容易理解,在实质上不脱离本公开的新颖性教导和优点的情况下,可以对那些实施例作出许多修改。因此,所有这样的修改意在被包括在权利要求限定的本发明构思范围内。
本发明的实施例可以无限制的延伸到以下声明:
声明1、本发明构思的实施例包括一种***,包括:
非易失性双列直插式存储器模块(NVDIMM);
非易失性存储器(NVM)调节器,用于以第一访问模式在NVDIMM中针对第一应用分配第一地址空间并且以第二访问模式在NVDIMM中针对第二应用分配第二地址空间,并且在非易失性存储器(NVM)控制寄存器中至少存储针对第一地址空间的第一地址掩码,第一地址掩码与第一访问模式关联。
声明2、本发明构思的实施例包括根据声明1所述的***,其中,第一访问模式与第二访问模式不同。
声明3、本发明构思的实施例包括根据声明1所述的***,其中:
第一访问模式包括块寻址模式;
第二访问模式包括字节寻址模式。
声明4、本发明构思的实施例包括根据声明3所述的***,其中:
NVM控制寄存器用于存储多个地址掩码,所述多个地址掩码中的每个地址掩码与使用块寻址模式的地址空间关联;
NVM调节器用于将在NVM控制寄存器中未存储地址掩码的任何地址视空间为使用字节寻址模式的地址空间。
声明5、本发明构思的实施例包括根据声明3所述的***,其中:
NVM控制寄存器用于存储多个地址掩码,所述多个地址掩码中的每个地址掩码与使用字节寻址模式的地址空间相关联;
NVM调节器可用于将在NVM控制寄存器中未存储地址掩码的任何地址空间视为使用块寻址模式的地址空间。
声明6、本发明构思的实施例包括根据声明3所述的***,其中,NVM控制寄存器用于存储针对第二地址空间的第二地址掩码,第二地址掩码与第二访问模式关联。
声明7、本发明构思的实施例包括根据声明3所述的***,其中,NVM控制寄存器可用于存储16个地址掩码和16个访问模式来支持NVDIMM中的16个地址空间,16个地址掩码中的每个地址掩码的大小是48位。
声明8、本发明构思的实施例包括根据声明3所述的***,其中,NVM调节器包括分配逻辑,用于在NVDIMM中以字节寻址模式或块寻址模式分配地址空间。
声明9、本发明构思的实施例包括根据声明3所述的***,其中,NVM调节器包括:
字节寻址逻辑,使用字节寻址模式访问第一地址空间;
软件,对使用块寻址模式访问第二地址空间进行仿真,所述软件使用字节寻址逻辑。
声明10、本发明构思的实施例包括根据声明3所述的***,其中,NVM调节器包括:
字节寻址逻辑,使用字节寻址模式访问第一地址空间;
块寻址逻辑,使用块寻址模式访问第二地址空间。
声明11、本发明构思的实施例包括根据声明3所述的***,其中,NVM调节器可用于对NVM控制寄存器中所有地址掩码执行并行访问检查,并且使用与匹配地址掩码关联的访问模式调度地址请求。
声明12、本发明构思的实施例包括根据声明3所述的***,其中,NVM控制寄存器可用于将多个地址掩码中的每个地址掩码与任意数量的访问模式中的一个访问模式关联。
声明13、本发明构思的实施例包括根据声明3所述的***,还包括连接到NVDIMM的处理器,所述处理器包括NVM控制寄存器。
声明14、本发明构思的实施例包括根据声明13所述的***,还包括能够在处理器上运行的操作***,所述操作***包括NVM调节器。
声明15、本发明构思的实施例包括一种方法,包括:
接收用于在非易失性双列直插式存储器模块(NVDIMM)中分配地址空间的请求;
接收针对请求的地址空间的访问模式,所述访问模式来自包括至少两个访问模式的集合;
识别NVDIMM中的地址空间;
返回与请求的地址空间相同的地址空间。
声明16、本发明构思的实施例包括根据声明15所述的方法,还包括在非易失性存储器(NVM)控制寄存器中存储针对地址空间的地址掩码和针对地址空间的访问模式。
声明17、本发明构思的实施例包括根据声明16所述的方法,其中,存储针对地址空间的地址掩码的步骤包括:如果地址空间的访问模式是块寻址模式,则仅存储针对所述地址空间的地址掩码。
声明18、本发明构思的实施例包括根据声明16所述的方法,其中,存储针对地址空间的地址掩码的步骤包括:如果地址空间的访问模式是字节寻址模式,则仅存储针对所述地址空间的地址掩码。
声明19、本发明构思的实施例包括根据声明15所述的方法,其中,接收针对请求的地址空间的访问模式的步骤包括:接收针对请求的地址空间的块寻址模式。
声明20、本发明构思的实施例包括根据声明15所述的方法,其中,接收针对请求的地址空间的访问模式的步骤包括:接收针对请求的地址空间的字节寻址模式。
声明21、本发明构思的实施例包括一种方法,包括:
接收从非易失性双列直插式存储器模块(NVDIMM)访问地址空间的请求;
确定针对地址空间的访问模式;
使用所述访问模式调度从NVDIMM访问地址空间的请求。
声明22、本发明构思的实施例包括根据声明21所述的方法,其中,确定针对地址空间的访问模式的步骤包括:确定针对地址空间的块寻址模式。
声明23、本发明构思的实施例包括根据声明21所述的方法,其中,确定针对地址空间的访问模式的步骤包括:确定针对地址空间的字节寻址模式。
声明24、本发明构思的实施例包括根据声明21所述的方法,其中,确定针对地址空间的访问模式的步骤包括:从处理器中的非易失性存储器(NVM)控制寄存器确定访问模式。
声明25、本发明构思的实施例包括根据声明24所述的方法,其中,从NVM控制寄存器确定访问模式的步骤包括:
尝试将地址空间与NVM控制寄存器中的地址掩码进行匹配;
确定与匹配地址空间的NVM控制寄存器中的地址掩码相应的访问模式。
声明26、本发明构思的实施例包括根据声明25所述的方法,其中,尝试将地址空间与NVM控制寄存器中的地址掩码进行匹配的步骤包括:将地址空间与NVM控制寄存器中的每个地址掩码进行比较。
声明27、本发明构思的实施例包括根据声明26所述的方法,其中,将地址空间与NVM控制寄存器中的每个地址掩码进行比较的步骤包括:将地址空间与NVM控制寄存器中的每个地址掩码进行并行比较。
声明28、本发明构思的实施例包括根据声明25所述的方法,其中,从NVM控制寄存器确定访问模式的步骤还包括:如果地址空间与NVM控制器中的地址掩码不匹配,则将访问模式确定为字节寻址模式。
声明29、本发明构思的实施例包括根据声明25所述的方法,其中,从NVM控制寄存器确定访问模式的步骤还包括,如果地址空间与NVM控制器中的地址掩码不匹配,则将访问模式确定为块寻址模式。
因此,考虑到这里描述的实施例的多种排列,该具体实施方式和随附的材料旨在仅是说明性的,并且不应该认为限制本发明的范围。因此,本发明所要求的是可能落入权利要求及其等同物的范围和精神之内的所有这种修改。

Claims (27)

1.一种用于存储管理的***,包括:
非易失性双列直插式存储器模块NVDIMM;
非易失性存储器NVM调节器,用于以第一访问模式在NVDIMM中针对第一应用分配第一地址空间并且以第二访问模式在NVDIMM中针对第二应用分配第二地址空间,并且在非易失性存储器NVM控制寄存器中至少存储针对第一地址空间的第一地址掩码,第一地址掩码与第一访问模式关联,
其中,NVDIMM中的第一地址空间响应于第一分配请求而使用第一访问模式被分配并且响应于第二分配请求而使用第二访问模式被分配,
其中,NVM控制寄存器不存储针对使用第二访问模式分配的地址空间的地址掩码;
其中,NVM调节器将未在NVM控制寄存器中存储地址掩码的任何地址空间视为使用第二访问模式的地址空间。
2.如权利要求1所述的***,其中:第一访问模式和第二访问模式均来自包括块寻址模式和字节寻址模式的集合。
3.如权利要求2所述的***,其中,NVM调节器包括:
字节寻址逻辑,使用字节寻址模式访问字节寻址地址空间;
软件,对使用块寻址模式访问块寻址地址空间进行仿真,所述软件使用字节寻址逻辑。
4.如权利要求2所述的***,其中,NVM调节器包括:
字节寻址逻辑,使用字节寻址模式访问字节寻址地址空间;
块寻址逻辑,使用块寻址模式访问块寻址地址空间。
5.如权利要求2所述的***,其中,NVM调节器用于对NVM控制寄存器中所有地址掩码执行并行访问检查,并且使用与匹配地址掩码关联的访问模式调度地址请求。
6.如权利要求2所述的***,还包括:连接到NVDIMM的处理器,所述处理器包括NVM控制寄存器。
7.如权利要求6所述的***,还包括:能够在处理器上运行的操作***,其中,操作***包括NVM调节器。
8.如权利要求1所述的***,其中,第一访问模式指定第一输入/输出I/O如何请求从第一地址空间读取或写入数据,第二访问模式指定第二I/O如何请求从第一地址空间读取或写入数据。
9.如权利要求1所述的***,其中,第一地址空间包括第一大小,第二地址空间包括第二大小,其中,第一大小与第二大小不同。
10.一种用于存储管理的方法,包括:
接收用于在非易失性双列直插式存储器模块NVDIMM中分配地址空间的请求;
接收针对请求的地址空间的访问模式,所述访问模式来自包括至少两个访问模式的集合;
识别NVDIMM中的地址空间;
如果所述访问模式不是第一访问模式,则在非易失性存储器NVM控制寄存器中存储针对识别的地址空间的地址掩码和针对识别的地址空间的访问模式;
返回识别的地址空间作为请求的地址空间;
将未在NVM控制寄存器中存储地址掩码的任何地址空间视为使用第一访问模式的地址空间。
11.如权利要求10所述的方法,其中,存储针对识别的地址空间的地址掩码的步骤包括:如果针对识别的地址空间的访问模式是块寻址模式,则存储针对识别的地址空间的地址掩码。
12.如权利要求10所述的方法,其中,存储针对识别的地址空间的地址掩码的步骤包括:如果针对识别的地址空间的访问模式是字节寻址模式,则存储针对识别的地址空间的地址掩码。
13.如权利要求10所述的方法,其中,
接收用于在非易失性双列直插式存储器模块NVDIMM中分配地址空间的请求的步骤包括:从应用接收用于在NVDIMM中分配地址空间的请求;
接收针对请求的地址空间的访问模式的步骤包括:从应用接收针对请求的地址空间的访问模式,所述访问模式来自包括至少两个访问模式的集合;
识别NVDIMM中的地址空间的步骤包括:使用所述访问模式分配NVDIMM中的地址空间;
返回识别的地址空间作为请求的地址空间的步骤包括:向应用返回识别的地址空间作为请求的地址空间,识别的地址空间设计为使用所述访问模式被访问。
14.如权利要求10所述的方法,其中,识别的地址空间响应于第一分配请求而被分配使用所述至少两个访问模式中的第一访问模式并且响应于第二分配请求而被分配使用所述至少两个访问模式中的第二访问模式。
15.如权利要求10所述的方法,其中,所述至少两个访问模式中的每个访问模式指定输入/输出I/O如何请求从地址空间读取或写入数据。
16.如权利要求10所述的方法,其中,识别的地址空间包括第一大小,NVDIMM中还存在包括第二大小的另一地址空间,其中,第一大小与第二大小不同。
17.一种用于存储管理的方法,包括:
接收从非易失性双列直插式存储器模块NVDIMM访问地址空间的请求;
尝试将所述地址空间与非易失性存储器NVM控制寄存器中的地址掩码进行匹配,其中,NVM控制寄存器存储与每个地址掩码对应的访问模式,与每个地址掩码对应的访问模式至少包括第一访问模式和第二访问模式;
如果所述地址空间与NVM控制寄存器中的地址掩码不匹配,则确定针对所述地址空间的访问模式为第一访问模式;
如果所述地址空间与NVM控制寄存器中的地址掩码匹配,则确定针对所述地址空间的访问模式为与来自NVM控制寄存器中的匹配的地址掩码对应的访问模式;
使用针对所述地址空间的访问模式调度从NVDIMM访问所述地址空间的请求;
其中,所述地址空间被设计为响应于第一分配请求而被分配使用第一访问模式,响应于第二分配请求而被分配使用第二访问模式。
18.如权利要求17所述的方法,其中,确定针对所述地址空间的访问模式的步骤包括:确定针对所述地址空间的访问模式为针对所述地址空间的块寻址模式和字节寻址模式之一。
19.如权利要求17所述的方法,其中,确定针对所述地址空间的访问模式的步骤包括:从处理器中的NVM控制寄存器确定针对所述地址空间的访问模式。
20.如权利要求17所述的方法,其中,
尝试将所述地址空间与NVM控制寄存器中的地址掩码进行匹配的步骤包括:将所述地址空间与NVM控制寄存器中的每个地址掩码进行比较。
21.如权利要求20所述的方法,其中,将所述地址空间与NVM控制寄存器中的每个地址掩码进行比较的步骤包括:并行地将所述地址空间与NVM控制寄存器中的每个地址掩码进行比较。
22.如权利要求17所述的方法,其中,第一访问模式指定第一输入/输出I/O如何请求从所述地址空间读取或写入数据,第二访问模式指定第二I/O如何请求从所述地址空间读取或写入数据。
23.如权利要求17所述的方法,其中,所述地址空间包括第一大小,NVDIMM中还存在包括第二大小的另一地址空间,其中,第一大小与第二大小不同。
24.一种用于存储管理的方法,包括:
接收用于在非易失性双列直插式存储器模块NVDIMM中分配地址空间的请求;
接收针对请求的地址空间的访问模式,所述访问模式来自恰好包括两个访问模式的集合;
识别NVDIMM中的地址空间;
如果所述访问模式不是第一访问模式,则在非易失性存储器NVM控制寄存器中存储针对识别的地址空间的地址掩码;
返回识别的地址空间作为请求的地址空间;
其中,所述访问模式响应于地址掩码是否存储在NVM控制寄存器中而被确定。
25.如权利要求24所述的方法,其中,存储针对识别的地址空间的地址掩码的步骤包括:如果针对识别的地址空间的访问模式是块寻址模式,则存储针对识别的地址空间的地址掩码。
26.如权利要求24所述的方法,其中,存储针对识别的地址空间的地址掩码的步骤包括:如果针对识别的地址空间的访问模式是字节寻址模式,则存储针对识别的地址空间的地址掩码。
27.如权利要求24所述的方法,其中,在NVM控制寄存器中存储针对识别的地址空间的地址掩码的步骤包括:在NVM控制寄存器中存储针对识别的地址空间的地址掩码和访问模式。
CN201610543231.6A 2015-07-13 2016-07-11 用于存储管理的方法和*** Active CN106354656B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562192028P 2015-07-13 2015-07-13
US62/192,028 2015-07-13
US14/957,568 2015-12-02
US14/957,568 US9886194B2 (en) 2015-07-13 2015-12-02 NVDIMM adaptive access mode and smart partition mechanism

Publications (2)

Publication Number Publication Date
CN106354656A CN106354656A (zh) 2017-01-25
CN106354656B true CN106354656B (zh) 2021-05-11

Family

ID=57775804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610543231.6A Active CN106354656B (zh) 2015-07-13 2016-07-11 用于存储管理的方法和***

Country Status (5)

Country Link
US (1) US9886194B2 (zh)
JP (1) JP6744768B2 (zh)
KR (1) KR102363526B1 (zh)
CN (1) CN106354656B (zh)
TW (1) TWI691838B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936045B2 (en) * 2016-09-26 2021-03-02 Hewlett-Packard Development Company, L.P. Update memory management information to boot an electronic device from a reduced power mode
US10025714B2 (en) * 2016-09-30 2018-07-17 Super Micro Computer, Inc. Memory type range register with write-back cache strategy for NVDIMM memory locations
KR20180061851A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
KR102400102B1 (ko) * 2017-05-11 2022-05-23 삼성전자주식회사 데이터 버퍼의 내부 데이터(dq) 터미네이션을 지원하는 메모리 시스템
TWI645295B (zh) 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
CN110720126B (zh) * 2017-06-30 2021-08-13 华为技术有限公司 传输数据掩码的方法、内存控制器、内存芯片和计算机***
CN109791589B (zh) * 2017-08-31 2021-07-16 华为技术有限公司 一种计算机内存数据加解密的方法及装置
US11194524B2 (en) * 2017-09-15 2021-12-07 Qualcomm Incorporated Apparatus and method for performing persistent write operations using a persistent write command
US10782994B2 (en) * 2017-12-19 2020-09-22 Dell Products L.P. Systems and methods for adaptive access of memory namespaces
CN108255428B (zh) * 2018-01-10 2020-07-24 联想(北京)有限公司 一种数据处理方法、装置及电子设备
US11042374B2 (en) 2019-05-02 2021-06-22 International Business Machines Corporation Non-volatile dual in-line memory module storage
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11003376B2 (en) * 2019-09-13 2021-05-11 Toshiba Memory Corporation Reconfigurable SSD storage pool
US11314460B2 (en) * 2019-09-13 2022-04-26 Kioxia Corporation Solid state drive supporting both byte addressable protocol and block addressable protocol
CN111753337B (zh) * 2020-07-02 2023-02-21 上海电器科学研究所(集团)有限公司 一种储能电池管理***意外断电soc处理方法
TWI818732B (zh) * 2022-09-16 2023-10-11 新唐科技股份有限公司 記憶體裝置及其操作方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995032460A1 (en) * 1994-05-25 1995-11-30 Intel Corporation Guarded memory system and method
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
CN103514095A (zh) * 2012-06-18 2014-01-15 记忆科技(深圳)有限公司 一种数据库写入ssd 的方法和***
US8880777B2 (en) * 2009-01-23 2014-11-04 Samsung Electronics Co., Ltd. Complex memory device and I/O processing method using the same

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980033054A (ko) * 1996-10-23 1998-07-25 윌리엄비.켐플러 프로그램 가능 메모리 액세스
US6496916B1 (en) * 1998-04-17 2002-12-17 Agere Systems Inc. System for flexible memory paging in partitioning memory
US6854043B2 (en) * 2002-07-05 2005-02-08 Hewlett-Packard Development Company, L.P. System and method for multi-modal memory controller system operation
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
JP4515793B2 (ja) * 2004-03-11 2010-08-04 株式会社東芝 メモリカード装置およびメモリカード制御方法
US20060069849A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
TWI446171B (zh) * 2006-09-28 2014-07-21 Virident Systems Inc 用於異質性主記憶體具有可程式化記憶體控制的系統,方法及裝置
JP4325685B2 (ja) * 2007-02-21 2009-09-02 セイコーエプソン株式会社 メモリを制御するメモリコントローラ、メモリモジュール、メモリの制御方法、および、コンピュータ。
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
US8832408B2 (en) 2007-10-30 2014-09-09 Spansion Llc Non-volatile memory array partitioning architecture and method to utilize single level cells and multi-level cells within the same memory
US8261047B2 (en) * 2008-03-17 2012-09-04 Freescale Semiconductor, Inc. Qualification of conditional debug instructions based on address
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8239619B2 (en) * 2010-07-09 2012-08-07 Macronix International Co., Ltd. Method and apparatus for high-speed byte-access in block-based flash memory
TWI462103B (zh) * 2011-01-19 2014-11-21 Mstar Semiconductor Inc 記憶體控制器、記憶體控制方法及記憶體系統
US20130275661A1 (en) * 2011-09-30 2013-10-17 Vincent J. Zimmer Platform storage hierarchy with non-volatile random access memory with configurable partitions
US20130117632A1 (en) * 2011-11-08 2013-05-09 Sony Corporation Storage control apparatus
US9098402B2 (en) * 2012-12-21 2015-08-04 Intel Corporation Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9135997B2 (en) * 2013-01-18 2015-09-15 Fujitsu Limited System and method for filtering addresses
JP6069031B2 (ja) * 2013-03-04 2017-01-25 株式会社日立製作所 計算機及びメモリ管理方法
US8949486B1 (en) * 2013-07-17 2015-02-03 Mellanox Technologies Ltd. Direct memory access to storage devices
ES2779551T3 (es) * 2013-10-29 2020-08-18 Huawei Tech Co Ltd Sistema de procesamiento de datos y método de procesamiento de datos
CN105917308B (zh) * 2014-01-22 2019-02-12 惠普发展公司,有限责任合伙企业 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器
US20160253123A1 (en) * 2014-03-19 2016-09-01 Bruce Ledley Jacob NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System
CN110187832B (zh) * 2014-05-21 2023-08-22 华为技术有限公司 一种数据操作的方法、设备和***
US9396769B1 (en) * 2015-02-11 2016-07-19 Macronix International Co., Ltd. Memory device and operating method of same
US9645939B2 (en) * 2015-06-26 2017-05-09 Intel Corporation Hardware apparatuses and methods for distributed durable and atomic transactions in non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995032460A1 (en) * 1994-05-25 1995-11-30 Intel Corporation Guarded memory system and method
US8880777B2 (en) * 2009-01-23 2014-11-04 Samsung Electronics Co., Ltd. Complex memory device and I/O processing method using the same
CN103514095A (zh) * 2012-06-18 2014-01-15 记忆科技(深圳)有限公司 一种数据库写入ssd 的方法和***
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An 800-MHz embedded DRAM with a concurrent refresh mode;T. Kirihata等;《IEEE Journal of Solid-State Circuits》;IEEE;20050613;第40卷(第6期);全文 *
一种日志式闪存文件***的分析与改进;刘庆华;《中国优秀博硕士学位论文全文数据库 (硕士)信息科技辑》;中国学术期刊(光盘版)电子杂志社;20050715(第3期);全文 *

Also Published As

Publication number Publication date
US9886194B2 (en) 2018-02-06
KR102363526B1 (ko) 2022-02-16
TWI691838B (zh) 2020-04-21
KR20170008141A (ko) 2017-01-23
JP2017021789A (ja) 2017-01-26
JP6744768B2 (ja) 2020-08-19
CN106354656A (zh) 2017-01-25
US20170017402A1 (en) 2017-01-19
TW201706850A (zh) 2017-02-16

Similar Documents

Publication Publication Date Title
CN106354656B (zh) 用于存储管理的方法和***
US11042297B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
KR102137761B1 (ko) 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법
US9563368B2 (en) Embedded multimedia card and method of operating the same
TWI718969B (zh) 記憶體裝置、記憶體定址方法與包括非暫時性儲存媒體的物品
US10235300B2 (en) Memory system including memory device and operation method thereof
US20210149594A1 (en) Solid-state devices to reduce latency by employing instruction time slicing to non-volatile memory (nvm) sets mapped to independently programmable nvm planes
EP3438816A1 (en) Bios starting method and device
US10503657B2 (en) DIMM SSD Addressing performance techniques
WO2015047284A1 (en) Flexible storage block for a solid state drive (ssd)-based file system
CN109643295B (zh) 从发起者节点访问耦合到目标节点的存储器
CN109032859A (zh) 一种nvme ssd逻辑块检测方法、***及相关装置
US11966609B1 (en) Zoned namespace storage device system
US20240134543A1 (en) Microservice storage device system
US20240231650A9 (en) Microservice storage device system
US20240134561A1 (en) Reconfigurable microservice storage device system

Legal Events

Date Code Title Description
C06 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