CN105706071A - 持久性存储器的块存储孔 - Google Patents

持久性存储器的块存储孔 Download PDF

Info

Publication number
CN105706071A
CN105706071A CN201380079211.2A CN201380079211A CN105706071A CN 105706071 A CN105706071 A CN 105706071A CN 201380079211 A CN201380079211 A CN 201380079211A CN 105706071 A CN105706071 A CN 105706071A
Authority
CN
China
Prior art keywords
address
controller
nvm
data
order
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.)
Pending
Application number
CN201380079211.2A
Other languages
English (en)
Inventor
M·A·施米索伊尔
A·M·鲁多夫
M·纳基穆图
M·S·纳图
R·P·曼戈德
D·D·斯图尔特
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN105706071A publication Critical patent/CN105706071A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/061Improving I/O performance
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于访问包括至少一个主处理器和至少一个存储器总线的计算机系统中的非易失性存储器(NVM)设备的装置和方法。通过NVM设备控制器,NVM设备可通信地可耦合到存储器总线,从而允许主处理器经由存储器总线向NVM设备控制器发出一个或多个存储器加载/存储命令来访问可存储在NVM设备内的持久性数据。因为NVM设备控制器包括定义用于访问存储在NVM设备内的持久性数据的至少一个地址范围的至少一个块窗口或孔,所以计算机系统可以使用NVM设备的全部容量,而不会过度地受限于主处理器施加的物理寻址限制或由主处理器执行的操作系统施加的限制。

Description

持久性存储器的块存储孔
发明人:M.A.施米索伊尔、A.M.鲁多夫、M.纳基穆图、M.S.纳图、R.P.曼戈德、D.D.斯图尔特
背景技术
在传统的计算机系统中,可以将包括非易失性存储器的块存储设备可通信地耦合到块存储设备控制器,依次地,通过系统总线可以将块存储设备控制器可通信地耦合到处理器。这样的系统总线通常被实现为外围组件快速互连(PCIe)总线,允许处理器通过向块存储设备控制器经由PCIe总线发出一个或多个输入/输出(I/O)命令来访问存储在块存储设备中的块数据。从处理器通过PCIe总线接收到I/O命令,该块存储设备控制器可以执行包括一个或多个直接存储器访问(DMA)操作的I/O处理,以访问可存储在块存储设备中的块数据,和最终通过PCIe总线将信号发送到所述处理器以通讯完成I/O处理。然而,由块存储设备控制器与PCIe总线一起进行这样的I/O处理可能会导致在这样传统的计算机系统中的块写入/读出操作的处理中的延迟。
附图说明
包含在说明书中并构成本说明书的一部分的附图示出了本文描述的一个或多个实施例,并且与详细描述一起解释这些实施例。在附图中:
图1是示出根据本申请的用于在计算机系统中访问至少一个非易失性存储器(NVM)设备的示例性装置的方框图,至少一个非易失性存储器(NVM)设备连同NVM设备控制器一起可以被计算机系统整体地视为块存储设备;
图2是示出包括在图1的装置中的NVM设备控制器的方框图;
图3是示出包括在图2的NVM设备控制器中的示例性块窗口、多个示例性的控制寄存器、示例性的地址转换部件以及示例性的媒体管理转换表的方框图;
图4是示出操作图2的NVM设备控制器的示例性方法的流程图;
图5是示例性可以使用图2的NVM设备控制器的计算机系统的方框图;
图6a是示出图2的NVM设备控制器的示例性的备选实施例的方框图,包括由主处理器使用的示例性的邮箱,用于发出和监测由主处理器通过存储器总线发送到NVM设备控制器的一个或多个命令,如存储器加载/存储命令;
图6b是示出由主处理器在用图6a的邮箱发出相应命令到NVM设备控制器中时使用的与相应命令相关联的示例性操作码格式、与操作码格式相关联的示例性写保护位和示例性输入有效载荷格式的图;
图6c是示出使用图6a的邮箱监测相应命令完成中由主处理器使用的与相应命令相关联的示例性状态码格式以及示例性输出有效载荷格式的图;以及
图7a-7b描绘示出由主处理器使用图6a的邮箱发出命令通过存储器总线到NVM设备控制器和监测命令完成的状态的示例性的方法的流程图。
具体实施方式
公开了一种用于在包括至少一个主处理器和至少一个存储器总线的计算机系统中访问至少一个非易失性存储器(NVM)设备的装置和方法。在所公开的装置和方法中,NVM设备通过NVM设备控制器可通信地耦合到所述存储器总线,从而使主处理器通过经由存储器总线发出一个或多个存储器的加载/存储命令到NVM设备控制器来访问可存储在NVM设备中的持久性数据。该计算机系统与主处理器一起可以实现块存储驱动器,以及NVM设备连同NVM设备控制器一起可以被计算机系统整体地视为块存储设备。因为NVM设备控制器包括至少一个块窗口(这种块窗口在本文中也被称为“孔”),其定义了用于访问可存储在NVM设备中的持久性数据的一个或多个块的至少一个地址范围,该计算机系统可以有利地具有降低的延迟,方便地使用NVM设备的全部容量,而不会过度地受限于靠主处理器施加的物理寻址限制或由主处理器执行的操作系统(OS)施加的限制。
图1描述了根据本申请用于访问计算机系统中的至少一个NVM设备的示例性装置100的说明性实施例。如图1所示,装置100包括主处理器101和分别由一个或多个存储器总线103.1-103.n可通信地耦合到主处理器101的一个或多个NVM设备控制器102.1-102.n(在本文中也被称为“NVM控制器”)。如图1进一步所示,可以将一个或多个NVM设备可通信地耦合到所述NVM控制器102.1-102.n的每一个。例如,可以将一个或多个NVM设备104.1-104.m可通信地耦合到NVM控制器102.1,依次,可以将NVM控制器102.1经由存储器总线103.1可通信地耦合到主处理器101。同样地,可以将一个或多个NVM设备106.1-106.p可通信地耦合到NVM控制器102.n,依次,可以将NVM控制器102.n经由存储器总线103.n可通信地耦合到主处理器101。
在图1的示例性装置100中,主处理器101可以使用一个或多个处理器、一个或多个多核处理器和/或任何其它合适的处理器或多个处理器来实现。此外,每个NVM设备104.1-104.m、106.1-106.p可以包括诸如使用单比特每存储单元的NAND或NOR闪速存储器的非易失性存储器(NVM)、多层单元(MLC)存储器例如具有两比特每单元的NAND闪速存储器、聚合物存储器、相变存储器(PCM)、基于纳米线的电荷俘获存储器、铁电晶体管随机存取存储器(FeTRAM)、3维交叉点存储器、使用存储电阻(忆阻器)技术的非易失性存储器、或任何其它合适的非易失性存储器、NVM设备、或持久的数据存储介质。
图2描述了可以在图1的装置100中采用的示例性NVM控制器202。如图2所示,NVM控制器202包括至少一个块窗口(孔)208、多个控制寄存器212、地址转换部件214、媒体管理转换表216、可选的加密部件218和可选的解密部件220。如图2进一步所示,可以将NVM设备204可通信地耦合到NVM控制器202,依次,可以将NVM控制器202经由存储器总线203可通信地耦合到主处理器101(参见图1)。
在图2的示例性NVM控制器202中,孔208定义了用于访问可存储在NVM设备204中的持久性数据的一个或多个块的地址范围。多个控制寄存器212可包括多个命令寄存器0-q、多个状态寄存器0-q和分别包含多个逻辑基本地址的多个存储器映射的基本地址寄存器0-q。上述多个存储器映射的基本地址寄存器0、1、...q的每个对应于由孔208定义的地址范围的预定部分。此外,多个状态寄存器0-q分别与多个命令寄存器0-q相关联,并且依次地,状态寄存器/命令寄存器对0、0、1、1、...、q、q分别与多个存储器映射的基本地址寄存器0-q相关联。
地址转换部件214至少部分基于由主处理器101提供的信息,可操作地将由孔208定义的地址范围内的一个或多个逻辑地址转换成用于写入到NVM设备204的块(或从NVM设备204读出的块)的有效地址范围内的实际的物理地址。所述NVM控制器202可以使用该媒体管理转换表216用于为NVM设备204(例如,包括闪速存储器的NVM设备)执行耗损均衡操作和/或增强耐力限度。所述NVM控制器202可以进一步使用用于加密将被写入到NVM设备204的块数据的加密部件218,以及用于解密将从NVM设备204读出的块数据的解密部件220。
在操作的示例性模式中,主处理器101(参见图1)可通过发出一个或多个存储器加载/存储命令经由存储器总线203(见图2)到NVM控制器202(见图2)来访问可存储在NVM设备204内(参照图2)的持久性数据。在操作的这种示例性模式中,主处理器101可以配置NVM控制器202用于通过将它的地址空间内的指定块写入(BW)地址转换成由孔208(参照图2)定义的地址范围内的逻辑BW地址来对NVM设备204执行BW。逻辑BW地址可以表示为逻辑BW基本地址和逻辑BW偏移地址。主处理器101可以通过直接经由存储器总线203寻址相应的孔208来选择NVM控制器202内的可用孔(如孔208)。
已经配置了NVM控制器202,用于向NVM设备204执行所需的块写入操作,主处理器101可以通过存储器总线203向NVM控制器202发出存储器存储命令。存储器存储命令提供至少逻辑BW基本地址和逻辑BW偏移地址,其定义了从逻辑BW基本地址的相对偏移。主处理器101至少基于由存储器存储命令提供的逻辑BW基本/偏移地址,将存储器存储命令写入到多个命令寄存器0-q中选定的一个。响应于由主处理器101发出的存储器存储命令,所述NVM控制器202选择与状态寄存器/命令寄存器对0、0、1、1、...、q、q相关联的存储器映射的基本地址寄存器0、1、...、q,其包括所选择的命令寄存器0、1、...、q。此外,NVM控制器202在与孔208的地址范围内的逻辑BW基本地址的相对偏移处,接收将被写入到NVM设备204的块数据。
NVM控制器202内的地址转换部件214(参见图2)接收包含在所选择的基本地址寄存器0、1、...、q中的逻辑基本地址,接收在与孔208的地址范围内的逻辑BW基本地址的相对偏移处接收的块数据,并将逻辑基本地址和逻辑BW偏移地址转换为NVM设备204中的块(例如,块204a)的实际物理地址。NVM控制器202可以检查转换的地址以确定其是否符合用于将块写入到NVM设备204的有效地址范围。在已转换地址不符合用于将块写入到NVM设备204的有效地址范围的情况下,NVM控制器202可在与所选择的命令寄存器0、1、...、q相关联的状态寄存器0、1、...、q中设置错误标志。在已转换的地址符合用于将块写入到NVM设备204的有效地址范围的情况下,可以将NVM控制器202成功地配置成用于向NVM设备204执行所需的块写入操作。
所述NVM控制器202可以根据需要和/或要求,使用媒体管理转换表216来对NVM设备204执行耗损均衡操作以及增强耐力限度。NVM控制器202可以进一步根据需要和/或要求使用所述加密部件218以加密将被写入到NVM设备204的块204a的块数据。然后NVM控制器202可以将块数据写入到块204a的实际物理地址。在完成了将块写入到NVM设备204中时,主处理器101可以经由存储器总线203读取与所选择的命令寄存器0、1、...、q相关联的状态寄存器0、1、...、q以检查块写入操作的错误状态。
在操作的这个示例性模式中,主处理器101(参见图1)可以进一步配置NVM控制器202(参见图2),用于通过把它的地址空间内的指定的块读出(BR)地址转换为由孔208定义的地址范围内的逻辑BR地址,来执行从NVM设备204(参见图2)的BR。逻辑BR地址可以表示为逻辑BR基本地址和逻辑BR偏移地址的形式。如本文中参照块写入操作所述,主处理器101可以通过直接经由存储器总线203寻址相应的孔208来选择NVM控制器202内的可用孔(如孔208)。
已经配置了NVM控制器202,用于从NVM设备204执行所需的块读取操作,主处理器101可以通过存储器总线203向NVM控制器202发出存储器加载命令。存储器加载命令提供至少逻辑BR基本地址和逻辑BR偏移地址,其定义了从逻辑BR基本地址的相对偏移。主处理器101至少部分基于由存储器加载命令提供的逻辑BR基本/偏移地址,将存储器加载命令写入到多个命令寄存器0-q的选定的一个。响应于由主处理器101发出的存储器加载命令,NVM控制器202选择与状态寄存器/命令寄存器对0、0、1、1、...、q、q相关联的存储器映射基本地址寄存器0、1、...、q,其包括所选的命令寄存器0、1、...、q。
地址转换部件214从所选择的基本地址寄存器0、1、...、q中接收逻辑基本地址,接收经由存储器加载命令提供的逻辑BR偏移地址,并且把逻辑基本地址和逻辑BR偏移地址转换为NVM设备204内的块(例如,块204a)的实际物理地址。NVM控制器202可以检查已转换的地址以确定其是否符合用于从NVM设备204读出的块的有效地址范围。在已转换的地址不符合用于从NVM设备204读出的块的有效地址范围的情况下,NVM控制器202可以在与所选择的命令寄存器0、1、...、q相关联的状态寄存器0、1、...、q中设置错误标志。在已转换的地址符合用于从NVM设备204读出的块的有效地址范围的情况下,可以将所述NVM控制器202成功地配置成用于从所述NVW设备204中执行所需的块读取操作。
所述NVM控制器202可以根据需要和/或要求,使用所述解密部件220来解密将从所述NVM设备204的块204a中读取的块数据。然后NVM控制器202可以从块204a的实际物理地址中读取块数据。在完成了从NVM设备204中的块读取时,主处理器101可以经由存储器总线203读取与所选择的命令寄存器0、1、...、q相关联的状态寄存器0、1、...、q以检查块读取操作的错误状态。
通过允许主处理器101通过经由存储器总线203向NVM控制器202发出一个或多个存储器加载/存储命令,来访问可存储在NVM设备204中的持久性数据,其中NVM控制器202包括定义了用于访问可存储在NVM设备204内的持久性数据的一个或多个块的地址范围的孔208,计算机系统可以有利地具有降低的延迟、方便地使用NVM设备的全部容量,而不会过度地受限于主处理器101施加的物理寻址限制或由主处理器101执行的OS施加的限制。
参考下列附图3的说明性示例,将会进一步理解用于将由孔定义的地址范围内的一个或多个逻辑地址转换为NVM设备内的一个或多个块的实际物理地址的NVM控制器的操作。如图3所示,NVM控制器302可包括块窗口(孔)308,包括多个命令寄存器0-31、多个状态寄存器0-31和多个分别包含多个逻辑基本地址寄存器的存储器映射的基本地址寄存器0-31的控制寄存器312,地址转换部件314,以及媒体管理转换表316。多个存储器映射的基本地址寄存器0、1、...、31的每一个对应于由孔308定义的地址范围的预定部分。此外,多个状态寄存器0-31分别与多个命令寄存器0-31相关,依次地,状态寄存器/命令寄存器对0、0、1、1、...、31、31分别与多个存储器映射的基本地址寄存器0-31相关。
在该说明性示例中,孔308被配置为支持256千字节(KB)的块大小。然而,应注意的是,孔308可替换地被配置成支持16KB、64KB、128KB、512KB、1兆字节(MB)、2MB、4MB的块大小,或任何其它合适的块大小。256KB的块大小中的每个子块在本文中定义为256KB的块大小的1/32(即,8KB)或任何其他合适的子块大小。因此,多个存储器映射的基本地址寄存器0-31的每一个被配置为对应于由孔308定义的地址范围(即,0-256KB)的8KB。具体地,基本地址寄存器0被配置为包含第0个逻辑基本地址,其覆盖了由孔308定义的地址范围的0-8KB;基本地址寄存器1被配置为包含第1个逻辑基本地址,其覆盖了由孔308定义的地址范围的8-16KB;基本地址寄存器2被配置为包含第2个逻辑基本地址,其覆盖了由孔308定义的地址范围的16-24KB;依此类推,直到基本地址寄存器31,其被配置为包含第31个逻辑基本地址,其覆盖了由孔308定义的地址范围的248-256KB。
参考这个说明性示例,由主处理器101(参见图1)经由存储器总线303(参见图3)向NVM控制器302(参见图3)发出的存储器加载/存储命令可以提供逻辑基本地址和逻辑偏移地址,以用于向NVM设备204(参见图2)中的块写入块数据或者从NVM设备204(参见图2)中的块读取块数据。这种逻辑基本地址可以表示为逻辑基本地址“X”,因此,由孔308所定义的地址范围可以表示为从逻辑基本地址X到逻辑地址X+256KB(参见图3)。此外,示例性的从逻辑基本地址X的相对偏移可以表示为“8KB”(加高速缓存行偏移,如果有的话),或任何其它合适的相对偏移。这种高速缓存线可对应于64个字节(B),或其它任何合适的字节数量。
例如,主处理器101可以配置NVM控制器302用于通过发出符合下列格式的示例性命令来对NVM设备204执行块写入(BW):
存储0x0000120000081000到0x88041000,
其中“0x0000120000081000”对应于将通过孔308被访问的块地址,“0x88040000”对应于命令寄存器0-31的基本地址,以及“0x1000”是对应于命令寄存器1的偏移量,其与所述基本地址寄存器1相关联。然后主处理器101可以通过发出指定对下列地址的一个或多个访问的一个或多个存储器加载/存储命令来访问块地址:
0x0000000048002000,
其中“0x0000000048000000”对应于孔308的逻辑基本地址“X”,“0x2000”对应于包含在基本地址寄存器1中的第1逻辑基本地址。如上所述,在这个说明性示例中,第1逻辑基本地址,即0x2000,覆盖了由孔308定义的地址范围的8-16KB。
因此,由主处理器101通过存储器总线303发到NVM控制器302的存储器加载/存储命令可以提供可以由式子“X+8KB”(加高速缓存行偏移,如果有的话)来表示的逻辑基本/偏移地址(加上高速缓存行偏移,如果有的话),它符合由孔308定义的地址范围“X”到“X+256KB”。主处理器101可以至少基于经由存储器加载/存储指令提供的逻辑基本/偏移地址X+8KB(加高速缓存行偏移,如果有的话),将存储器加载/存储命令写入到多个命令寄存器0-31选定的一个中,如命令寄存器1。
地址转换部件314从选定的基本地址寄存器1接收第1逻辑基本地址,从孔308接收高速缓存行偏移的指示(如果有的话),并且将第1逻辑基本地址和高速缓存行偏移(如果有的话)转换为NVM设备204内的块的实际物理地址。然后NVM控制器302可以向相应块的实际物理地址写入块数据或从相应块的实际物理地址读取块数据。
下面参照图4描述操作NVM控制器用于向NVM设备内的一个或多个块写入块数据或者从NVM设备内的一个或多个块中读取块数据的示例性方法。如方框402所描绘的,通过存储器总线在NVM控制器处接收存储器加载/存储命令,其中,所述存储器加载/存储命令包括逻辑地址,该逻辑地址符合由包括在NVM控制器中的块窗口(孔)定义的地址范围的至少一部分。如方框404所描绘的,逻辑地址的表示被转换为NVM设备内的块的实际物理地址。如方框406所描绘的,根据转换后的地址是否符合用于访问NVM设备内的块的有效地址范围来作出决定。如在方框408中所描绘的,在转换后的地址符合用于访问NVM设备内的块的有效地址范围的情况下,该块数据被写入到所述NVM设备内的块的实际物理地址或从所述NVM设备内的块的实际物理地址读取。否则,如方框410所描绘的,设置状态错误标志,并且操作该NVM控制器的示例性方法结束。
图5描述了可被配置成实现所要求保护的发明的装置和方法的示例性计算机系统500。如图5所示,计算机系统500可包括至少一个主处理器502,通过系统总线514可通信地耦合到至少一个存储器504,并且通过存储器总线515可通信地耦合到NVM设备控制器520。计算机系统500还可以包括可通信地耦合到系统总线514的键盘516和显示器518,以及至少一个NVM设备512,其可通信地耦合到所述NVM设备控制器520。所述NVM设备控制器520包括至少一个处理器520a,可操作地执行至少一个非临时性存储介质,诸如存储器520b或任何其它合适的存储介质中输出的至少一个程序,以访问可存储在NVM设备512内的一个或多个块中的持久性数据。主处理器502可操作地执行存储在至少一个非临时性存储介质,诸如存储器504或任何其他合适的存储介质上的指令,用于执行计算机系统500中的各种处理,其包括用于控制NVM设备控制器520的操作的一个或多个处理。存储器504可包括一个或多个存储器组件,例如易失性存储器510,其可以被实现为动态随机存取存储器(DRAM)或任何其它合适的易失性存储器。存储器504也可以被配置为存储一个由主处理器502可执行的操作系统(OS)506,以及可以由OS506运行的一个或多个应用程序508。响应于由多个应用程序508中的一个产生的请求,主处理器502可以运行OS506来在易失性存储器510上执行所需的数据的写/读操作,和/或通过NVM设备控制器520在NVM设备512上执行所需的块读/写操作。
值得注意的是,图5示出了计算机系统500的示例性实施例,并且计算机系统500的其他实施例中可以包括比图5中示出的装置部件更多的装置部件或更少的装置部件。此外,这些装置部件可以安排成与图5中所示的不同。例如,在一些实施例中,NVM设备512可以位于可经由因特网或任何其它合适的网络访问计算机系统500的远程站点。此外,由包含在计算机系统500的其他实施例中的各种装置部件执行的功能可以分布在不同于本文所述的各个部件之间。
已经描述了所公开的装置和方法的上述示例性实施例,也可以进行其它可替换实施例或变型。例如,本文描述了一种NVM设备控制器,其可包括定义了用于访问可存储在NVM设备内的一个或多个块中的持久性数据的至少一个地址范围的至少一个块窗口(孔)。在一个备选实施例中,这样的孔可实现为用于从NVM设备中读取块数据的块窗口、用于向NVM设备中写入块数据的块窗口和/或用于将数据写入到具有原子写入支持的NVM设备的写合并缓冲器。
本文也描述了NVM设备控制器,可以被配置成通过将由孔定义的地址范围内的逻辑块写入地址转换为NVM设备内的块的实际物理地址而执行向NVM设备的块写入操作。在备选实施例中,可以执行这样的块写入操作,以从诸如动态随机存取存储器(DRAM)之类的易失性存储器中经由存储器总线具有降低的延迟地拷贝数据到NVM设备。
进一步地,本文描述了主处理器可通过发出一个或多个存储器加载/存储命令经由存储器总线到NVM设备控制器来访问可存储在NVM设备内的持久性数据。如在图6a中所描绘的,在一个实施例中,这样的NVM设备控制器620可以包括处理器609,以及至少一个有效载荷数据存储608(本文也称为“有效载荷邮箱”)、至少一个命令寄存器610.1和至少一个状态寄存器610.2,它们共同地可用来提供主处理器101(参见图1)和NVM设备控制器620之间经由存储器总线603的可缓存的、双向的、存储器映射的访问路径。例如,NVM设备控制器620可以结合到DIMM中、双数据速率(DDR)的DIMM中和/或非易失性(NV)DIMM中。在本实施例中,主处理器101可以经由命令接口通过存储器总线603发出命令并访问有效载荷数据和状态信息(例如,命令的执行状态),该命令接口可以在NVM设备控制器620中由命令寄存器610.1(本文也称为“邮箱命令寄存器”)、状态寄存器610.2(本文也称为“邮箱状态寄存器”)、以及由有效载荷邮箱608定义的至少一个地址范围607(本文也称为“邮箱地址范围”)来实现。主处理器101可以经由这样的命令接口使用带内发出的可高速缓存的存储器加载/存储命令,通过由存储器总线603实现的双向访问路径来发出这样的命令,并且访问这样的有效载荷数据和状态信息,其被配置成支持由所述NVM设备控制器620执行的从操作。
图6b描绘了与相应的存储器加载/存储命令相关联的示例性操作码格式660,与相应的存储器加载/存储命令相关的示例性写保护位662,和示例性输入有效载荷格式664,该格式由主处理器101(参照图1)在使用图6a中的邮箱命令寄存器610.1和邮箱地址范围607发出相应的存储器加载/存储命令时使用。如图6b所示,操作码格式660可以包括命令码660.1(例如,存储器加载命令、存储器存储命令),有效载荷类型660.2(例如,小的有效载荷、大的有效载荷),以及中断类型660.3(例如,低优先级、高优先级)。
图6c描绘了与相应的存储器加载/存储指令相关联的示例性状态码格式670以及示例性输出有效载荷格式672,该格式由主处理器101(见图1)在使用图6a中的邮箱状态寄存器610.2和邮箱地址范围607监测相应的存储器加载/存储命令执行的完成时使用。如图6C所示,状态码格式670可以包括状态码670.1(例如,命令失败状态码、命令成功结果、错误状态),命令进度状态670.2(如命令已启动、命令已完成、命令已中止)和命令成功/失败状态670.3(例如,命令是成功的、命令已失败、错误标志)。
下面参照图7a-7b以及图6a-6c描述由主处理器使用邮箱发出存储器加载/存储命令来监测存储器加载/存储命令的完成的示例性方法。在一个实施例中,该示例性方法可以由系统管理中断(SMI)来启动,并可能因此在系统管理模式(SMM)作为OS独立的机制来实现。
如方框702所描绘的(参照图7a),由主处理器101作出决定:将由主处理器101发出的存储器加载/存储命令是否需要将被发送到NVM设备控制器620的数据(例如,块数据)。如方框704所描绘的,在存储器加载/存储命令需要将被发送给NVM控制器620的数据的情况下,这样的数据经由存储器总线603使用输入有效载荷格式664由主处理器101发送到由有效载荷邮箱608定义的邮箱地址范围607的至少一部分。如方框706所描绘的,主处理器101通过将存储器加载/存储命令写入到邮箱命令寄存器610.1来经由存储器总线603使用操作码格式660将存储器加载/存储命令发出到该NVM设备控制器620。如方框706进一步所示,由主处理器101设置写保护位662,以符合预定的逻辑电平(例如,写保护位662可以被设置为逻辑高电平)。如方框708所描绘的,响应于写保护位662将被主处理器101设置为逻辑高电平,由NVM设备控制器620生成SMI并且随后由处理器609的SMM对SMI进行处理。例如,SMM可实现为处理器609的一个或多个基本输入/输出系统(BIOS)服务。应该注意的是,一旦处理器101设置了写保护位662,NVM设备控制器620写保护用于输入有效载荷的一个或多个寄存器以免被主处理器101再次写入。
如方框710所描绘的,当NVM设备控制器620执行存储器加载/存储命令时,NVM设备控制器620将输入的有效载荷复制到其内部存储器中,NVM设备控制器620使用状态码格式670更新邮箱状态寄存器610.2以指示该输入的有效载荷正在处理(例如,命令进度状态670.2表示命令已启动)以及NVM设备控制器620清除写保护位662。应该注意的是,一旦NVM设备控制器620清除了写保护位662,则不再写保护一个或多个输入有效载荷寄存器使其免受主处理器101的写入,因此在当前命令的执行已经完成之前,允许主处理器101经由存储器总线603使用操作码格式660发出另一命令到NVM设备控制器620。
如方框712所描绘的,主处理器101通过使用状态码格式670读取邮箱状态寄存器610.2来监测存储器加载/存储命令的执行状态。如方框714所描绘的,在邮箱状态寄存器610.2已由NVM设备控制器620更新以表示该存储器加载/存储命令的执行已完成(例如,命令进度状态670.2表示命令已完成)的情况下,主处理器101使用输出有效载荷格式672来作出决定:存储器加载/存储命令是否需要将从NVM设备204经由NVM设备控制器620访问的数据(如块数据)。如在方框716所描绘的,在存储器加载/存储命令需要将被主处理器101经由NVM设备控制器620访问的数据的情况下,这样的数据被主处理器101通过存储器总线603使用输出有效载荷格式672从由有效载荷邮箱608所定义的邮箱地址范围607的至少一部分中进行访问。如方框718所描绘的,由主处理器101作出决定:存储器加载/存储命令的执行是否已成功完成(例如,命令进度状态670.2表示命令是成功的)。如方框720所描绘的,在存储器加载/存储命令已成功完成的情况下,使用输出有效载荷格式672访问的数据由主处理器101进行处理。如方框722所描绘的,一旦主处理器101完成了数据的处理,NVM设备控制器620内的处理器609退出SMM。
尽管在此描述了所公开主题的各种实施例的说明性的示例,相关领域的普通技术人员将理解,可以替代地使用实现所公开的主题的其他方式。在前面的描述中,对所公开的主题的各个方面进行了描述。出于解释的目的,阐述了特定的系统、装置、方法和配置,以提供对所公开的主题的透彻理解。然而,对于本领域技术人员来讲,可以在没有本文所描述的具体细节的情况下实践本主题,本公开的利益将是显而易见的。在其他实例中,公知的特征、部件和/或模块被省略、简化或组合,以便不模糊本公开的主题。
应当注意的是,如本文所使用的,术语“可操作的”是指,当设备、系统或装置处于开机状态时,相应的设备、系统、装置等能够操作或者是适于操作其期望的功能。此外,所公开的主题的各种实施例可以以硬件、固件、软件或者它们的一些组合来实现,并且可以参考或结合程序代码来描述,程序代码诸如有指令、函数、过程、数据结构、逻辑、应用程序、设计表示,和/或用于模拟、仿真和/或制造一个设计的格式,当由机器访问这些程序代码时,使得机器执行任务,定义抽象数据类型或低级硬件上下文或产生结果。
还应当注意,在附图中示出的技术可以用代码和/或数据实现,这些代码/数据在一个或多个诸如通用计算机或计算设备之类的计算设备上储存和/或执行。这样的计算机或计算设备使用机器可读介质存储代码和/或数据并(在内部和/或经由网络与其他计算设备)通信代码和/或数据,所述机器可读介质诸如机器可读存储介质(例如,磁盘、光盘、随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器设备,相变存储器)和机器可读通信介质(例如,电、光、声或其它形式的传播信号,例如载波、红外信号、数字信号、等等)。
同样,除非本文明确的说明,这里使用的元件、操作或指令不应当被解释为对于本申请是关键或必要的。此外,如这里使用的,冠词“一”旨在包括一个或多个事物。其中,仅表示一个事物时,使用术语“一个”或类似语言。此外,“根据”一词是指“至少部分地基于”,除非明确说明。
本发明的意图是不局限于本文所公开的具体实施例,而本发明将包括落入下列所附权利要求的范围内的任何和所有具体的实施例和等价物。

Claims (25)

1.一种访问可存储在计算机系统中的非易失性存储器(NVM)设备内的块数据的方法,所述计算机系统包括至少一个主处理器和至少一个存储器总线,所述方法包括:
通过所述存储器总线,在控制器处接收来自所述主处理器的至少一个第一命令,所述第一命令包括存储器加载命令和存储器存储命令中的一个,所述第一命令进一步包括逻辑地址,所述控制器包括定义用于访问可存储在所述NVM设备内的块数据的至少一个地址范围的至少一个块窗口;
通过所述控制器将包括在所述第一命令中的所述逻辑地址转换为所述NVM设备内的物理地址,所述逻辑地址符合由所述块窗口定义的所述地址范围的至少一部分;以及
通过所述控制器访问所述NVM设备内的所述物理地址处的块数据。
2.如权利要求1所述的方法,其中所述控制器进一步包括与所述至少一个块窗口相关联的至少一个命令寄存器,并且其中从所述主处理器接收所述至少一个第一命令包括在与所述块窗口相关联的命令寄存器处接收所述第一命令。
3.如权利要求1或2所述的方法,其中所述第一命令包括存储器存储命令,其中,所述逻辑地址包括逻辑块写入基本地址和定义与所述逻辑块写入基本地址的相对偏移的逻辑块写入偏移地址,其中所述控制器进一步包括多个分别包含多个逻辑基本地址的基本地址寄存器,所述多个逻辑基本地址中的每个对应于由所述块窗口定义的地址范围的预定部分,并且其中所述方法进一步包括:
响应于所述存储器存储命令,至少基于包括在所述存储器存储命令中的一个或多个逻辑块写入基本地址和逻辑块写入偏移地址,选择所述多个基本地址寄存器中的一个。
4.如权利要求3所述的方法,进一步包括:
通过所述存储器总线在所述控制器上接收块数据,所述块数据位于所述块窗口的所述地址范围内的所述逻辑块写入基本地址的所述相对偏移处。
5.如权利要求4所述的方法,其中所述控制器进一步包括地址转换部件,并且其中所述逻辑地址到所述NVM设备内的所述物理地址的转换包括由所述地址转换部件将包含在所选择的基本地址寄存器中的逻辑基本地址和逻辑块写入偏移地址转换为所述NVM设备内的物理地址。
6.如权利要求5所述的方法,其中所述控制器进一步包括媒体管理转换表,并且其中所述方法进一步包括:
由所述媒体管理转换表执行一个或多个耗损均衡操作以实施所述NVM设备的一个或多个耐力限度。
7.如权利要求5或6所述的方法,其中所述控制器进一步包括加密部件,并且其中所述方法进一步包括:
由所述加密部件加密将在所述NVM设备内的物理地址处写入的块数据。
8.如权利要求5、6或7所述的方法,进一步包括:
由所述控制器将块数据写入到所述NVM设备内的所述物理地址。
9.如权利要求8所述的方法,其中所述控制器进一步包括至少一个状态寄存器,并且其中所述方法进一步包括:
由所述控制器至少在一些时间在所述状态寄存器中设置至少一个错误标志,以指示与将所述块数据写入到所述NVM设备内的所述物理地址相关的错误状态。
10.如权利要求1或2所述的方法,其中所述第一命令包括所述存储器加载命令,其中所述逻辑地址包括逻辑块读取基本地址和定义与所述逻辑块读取基本地址的相对偏移的逻辑块读取偏移地址,其中,所述控制器进一步包括多个分别包含多个逻辑基本地址的基本地址寄存器,所述多个逻辑基本地址的每个对应于由所述块窗口定义的地址范围的预定部分,并且其中所述方法进一步包括:
响应于所述存储器加载命令,至少基于包括在所述存储器加载命令中的一个或多个逻辑块读取基本地址和逻辑块读取偏移地址来选择所述多个基本地址寄存器中的一个。
11.如权利要求10所述的方法,其中所述控制器进一步包括地址转换部件,并且其中逻辑地址到NVM设备内的物理地址的转换包括由地址转换部件将包含在所选择的基本地址寄存器中的逻辑基本地址和逻辑块读取偏移地址转换到NVM设备内的物理地址。
12.如权利要求11所述的方法,进一步包括:
由控制器从NVM设备内的物理地址读取块数据。
13.如权利要求12所述的方法,其中所述控制器进一步包括解密部件,并且其中所述方法进一步包括:
由解密部件解密从NVM设备内的物理地址读取的块数据。
14.一种用于访问可存储在非易失性存储器(NVM)设备内的块数据的控制器,所述控制器经由至少一个存储器总线可通信地可耦合到至少一个主处理器,所述控制器包括:
至少一个块窗口,定义用于访问可存储在所述NVM设备内的块数据的至少一个地址范围;
至少一个命令寄存器,所述命令寄存器被操作以从所述主处理器经由存储器总线接收至少一个第一命令,所述第一命令包括存储器加载命令和存储器存储命令中的一个,所述第一命令具有包括逻辑偏移地址的逻辑地址;
多个控制寄存器,包括至少多个基本地址寄存器,所述多个基本地址寄存器分别包含多个逻辑基本地址,每个相应逻辑基本地址对应于由所述块窗口定义的地址范围的预定部分;以及
至少一个内部处理器,可操作以执行至少一个存储器输出的至少一个程序:
以至少基于来自于所述第一命令的所述逻辑地址来选择所述多个基本地址寄存器中的一个;
以将包含在所选择的基本地址寄存器中的逻辑基本地址和逻辑偏移地址转换为所述NVM设备内的物理地址;以及
以在所述NVM设备内的所述物理地址处访问所述块数据。
15.如权利要求14所述的控制器,其中所述块窗口被配置为支持预定的块大小,并且其中所述相应的逻辑基本地址每个被配置为覆盖所述块窗口内的预定子块。
16.如权利要求14或15所述的控制器,其中所述第一命令包括存储器存储命令,并且其中至少一个内部处理器进一步可操作以执行至少一个存储器输出的至少一个程序,以将块数据写入到所述NVM设备内的物理地址。
17.如权利要求14、15或16所述的控制器,其中所述第一命令包括所述存储器加载命令,并且其中所述至少一个内部处理器进一步可操作以执行至少一个存储器输出的至少一个程序,以从所述NVM设备内的物理地址读取块数据。
18.如权利要求16或17所述的控制器,进一步包括:
至少一个状态寄存器,以及
其中所述至少一个内部处理器进一步可操作以执行所述至少一个存储器输出的至少一个程序,以至少在一些时间在所述状态寄存器中设置至少一个错误标志,从而指示与可存储在所述NVM设备内的块数据的访问相关联的错误状态。
19.一种计算机系统,包括:
系统总线;
可通信地耦合到所述系统总线的显示器;
耦合到所述系统总线的至少一个易失性存储器;以及
可通信地耦合到所述存储器总线的如权利要求14所述的控制器。
20.一种用于访问可存储在非易失性存储器(NVM)设备内的块数据的控制器,所述控制器经由至少一个存储器总线可通信地可耦合到至少一个主处理器,所述控制器包括:
用于从所述主处理器经由所述存储器总线接收至少一个第一命令的部件,所述第一命令包括存储器加载命令和存储器存储命令中的一个,所述第一命令进一步包括逻辑地址,所述控制器包括定义用于访问可存储在所述NVM设备内的块数据的至少一个地址范围的至少一个块窗口;
用于将所述逻辑地址转换到NVM设备内的物理地址的部件,所述逻辑地址符合由所述块窗口定义的地址范围的至少一部分;以及
用于访问所述NVM设备内的所述物理地址处的块数据的部件。
21.一种计算机可读存储介质,包括可执行指令用于访问可存储在计算机系统中的非易失性存储器(NVM)设备内的块数据,所述计算机系统包括至少一个主处理器和至少一个存储器总线,所述计算机可读存储介质包括可执行指令:
以通过存储器总线从主处理器接收至少一个第一命令,所述第一命令包括存储器加载命令和存储器存储命令中的一个,所述第一命令进一步包括逻辑地址、定义了用于访问可存储在所述NVM设备内的块数据的至少一个地址范围的至少一个块窗口;
以将所述逻辑地址转换为所述NVM设备内的物理地址,所述逻辑地址符合由所述块窗口定义的地址范围的至少一部分;以及
以访问NVM设备内的物理地址处的块数据。
22.一种用于访问可存储在非易失性存储器(NVM)设备内的数据的控制器,所述控制器可通信地可耦合到存储器总线,包括:
至少一个窗口,定义用于访问可存储在所述NVM设备内的数据的至少一个地址范围;
至少一个命令寄存器;
至少一个状态寄存器;以及
至少一个内部处理器,可操作以执行至少一个存储器输出的至少一个程序:
以经由存储器总线在命令寄存器处接收至少一个第一命令;
以在第一命令需要输入有效载荷数据的情况下,经由存储器总线在由窗口定义的地址范围的至少一部分处接收输入有效载荷数据;
以在第一命令需要输出有效载荷数据的情况下,访问来自于NVM设备的输出有效载荷数据;以及
以更新状态寄存器以指示第一命令的执行状态。
23.如权利要求22所述的控制器,其中所述内部处理器进一步可操作以执行至少一个存储器输出的至少一个程序:
以确定与第一命令相关的写保护位的逻辑电平;以及
以在写保护位被设定至预定逻辑电平的情况下,接收系统管理中断(SMI),从而使内部处理器在系统管理模式(SMM)下操作。
24.如权利要求23所述的控制器,其中所述内部处理器进一步可操作以执行至少一个存储器输出的至少一个程序,在写保护位被设定为预定的逻辑电平的情况下,写保护一个或多个寄存器用于所述输入有效载荷数据。
25.如权利要求23或24所述的控制器,其中所述内部处理器进一步可操作以执行至少一个存储器输出的至少一个程序:
以处理所述输入有效载荷数据;以及
以一旦处理了输入有效载荷数据,清除写保护位,以允许在命令寄存器处通过所述存储器总线接收至少一个第二命令。
CN201380079211.2A 2013-09-26 2013-09-26 持久性存储器的块存储孔 Pending CN105706071A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/061841 WO2015047266A1 (en) 2013-09-26 2013-09-26 Block storage apertures to persistent memory

Publications (1)

Publication Number Publication Date
CN105706071A true CN105706071A (zh) 2016-06-22

Family

ID=52744172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380079211.2A Pending CN105706071A (zh) 2013-09-26 2013-09-26 持久性存储器的块存储孔

Country Status (5)

Country Link
US (1) US20160232103A1 (zh)
EP (1) EP3049944B1 (zh)
KR (1) KR101842621B1 (zh)
CN (1) CN105706071A (zh)
WO (1) WO2015047266A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108628783A (zh) * 2017-03-21 2018-10-09 英特尔公司 用于将修改后的数据从易失性存储器清除到持久性第二存储器的装置、系统和方法
CN109952567A (zh) * 2016-09-08 2019-06-28 优普梅姆公司 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置
CN110114762A (zh) * 2016-12-23 2019-08-09 Ati科技无限责任公司 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备
CN110321300A (zh) * 2019-05-20 2019-10-11 中国船舶重工集团公司第七一五研究所 一种信号处理数据高速记录与回放模块的实现方法
CN113302700A (zh) * 2018-09-07 2021-08-24 艾瑞迪亚公司 用于写入和读取存储在聚合物中的数据的改进的系统和方法
CN114258528A (zh) * 2019-08-22 2022-03-29 美光科技公司 阶层式存储器设备
CN114270442A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统
CN114270324A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446653B (zh) 2014-08-27 2018-12-14 阿里巴巴集团控股有限公司 一种数据合并方法和设备
CN104951412B (zh) 2015-06-06 2018-01-02 华为技术有限公司 一种通过内存总线访问的存储装置
US10067879B2 (en) * 2015-12-16 2018-09-04 Intel Corporation Apparatus and method to support a storage mode over a cache-line memory interface to a non-volatile memory dual in line memory module
KR102466412B1 (ko) * 2016-01-14 2022-11-15 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10140057B2 (en) * 2016-02-18 2018-11-27 Micron Technology, Inc. Apparatuses and methods for multiple address registers for a solid state device
WO2017155551A1 (en) * 2016-03-11 2017-09-14 Hewlett Packard Enterprise Development Lp Register store
WO2017156747A1 (zh) * 2016-03-17 2017-09-21 华为技术有限公司 一种内存访问方法以及计算机系统
US11442760B2 (en) 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US11556462B2 (en) * 2016-08-24 2023-01-17 Futurewei Technologies, Inc. Wear-leveling method for cross-point memory for multiple data temperature zones
US10613860B2 (en) * 2016-11-09 2020-04-07 Arm Limited Computer architecture
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
US11221956B2 (en) * 2017-05-31 2022-01-11 Seagate Technology Llc Hybrid storage device with three-level memory mapping
US10229003B2 (en) 2017-06-16 2019-03-12 Alibaba Group Holding Limited Method and system for iterative data recovery and error correction in a distributed system
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10303241B2 (en) 2017-06-19 2019-05-28 Alibaba Group Holding Limited System and method for fine-grained power control management in a high capacity computer cluster
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10564856B2 (en) 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
US10303601B2 (en) 2017-08-11 2019-05-28 Alibaba Group Holding Limited Method and system for rearranging a write operation in a shingled magnetic recording device
US10423508B2 (en) 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
US20190073132A1 (en) * 2017-09-05 2019-03-07 Alibaba Group Holding Limited Method and system for active persistent storage via a memory bus
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system
US10789011B2 (en) 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10552070B2 (en) 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10635602B2 (en) 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10698686B2 (en) 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
GB2582508B (en) 2017-11-29 2022-02-16 Kimberly Clark Co Fibrous sheet with improved properties
JP6443572B1 (ja) * 2018-02-02 2018-12-26 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US10402112B1 (en) 2018-02-14 2019-09-03 Alibaba Group Holding Limited Method and system for chunk-wide data organization and placement with real-time calculation
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
CN111902804B (zh) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的系统和方法
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11061751B2 (en) 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US11080210B2 (en) 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10649688B1 (en) * 2018-11-01 2020-05-12 Intel Corporation Precise longitudinal monitoring of memory operations
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US11036431B2 (en) 2019-06-26 2021-06-15 International Business Machines Corporation Accessing persistent memory via load and store
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US20210055882A1 (en) * 2019-08-22 2021-02-25 Micron Technology, Inc. Hierarchical memory apparatus
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11443074B2 (en) * 2020-04-09 2022-09-13 Hewlett Packard Enterprise Development Lp Verification of programmable logic devices
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026341A1 (en) * 2004-07-30 2006-02-02 M-Systems Flash Disk Pioneers Ltd. Virtual-to-physical address translation in a flash file system
CN1768331A (zh) * 2003-10-17 2006-05-03 松下电器产业株式会社 半导体存储器装置和控制器及其读写控制方法
CN101563729A (zh) * 2006-12-20 2009-10-21 莫塞德技术公司 具有易失性和非易失性存储器的混合固态存储器系统
US20100223434A1 (en) * 2009-02-27 2010-09-02 Atmel Corporation Dummy Write Operations
US20120151120A1 (en) * 2010-12-09 2012-06-14 Apple Inc. Systems and methods for handling non-volatile memory operating at a substantially full capacity

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US20100262773A1 (en) * 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
KR101869059B1 (ko) * 2012-02-28 2018-06-20 삼성전자주식회사 저장 장치 및 그것의 메모리 컨트롤러
US9075710B2 (en) * 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1768331A (zh) * 2003-10-17 2006-05-03 松下电器产业株式会社 半导体存储器装置和控制器及其读写控制方法
US20060026341A1 (en) * 2004-07-30 2006-02-02 M-Systems Flash Disk Pioneers Ltd. Virtual-to-physical address translation in a flash file system
CN101563729A (zh) * 2006-12-20 2009-10-21 莫塞德技术公司 具有易失性和非易失性存储器的混合固态存储器系统
US20100223434A1 (en) * 2009-02-27 2010-09-02 Atmel Corporation Dummy Write Operations
US20120151120A1 (en) * 2010-12-09 2012-06-14 Apple Inc. Systems and methods for handling non-volatile memory operating at a substantially full capacity

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109952567A (zh) * 2016-09-08 2019-06-28 优普梅姆公司 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置
CN109952567B (zh) * 2016-09-08 2023-08-22 优普梅姆公司 用于旁通高级dram存储器控制器的内部高速缓存的方法和装置
CN110114762A (zh) * 2016-12-23 2019-08-09 Ati科技无限责任公司 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备
CN110114762B (zh) * 2016-12-23 2023-09-15 Ati科技无限责任公司 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备
CN108628783A (zh) * 2017-03-21 2018-10-09 英特尔公司 用于将修改后的数据从易失性存储器清除到持久性第二存储器的装置、系统和方法
CN113302700A (zh) * 2018-09-07 2021-08-24 艾瑞迪亚公司 用于写入和读取存储在聚合物中的数据的改进的系统和方法
CN110321300A (zh) * 2019-05-20 2019-10-11 中国船舶重工集团公司第七一五研究所 一种信号处理数据高速记录与回放模块的实现方法
CN114258528A (zh) * 2019-08-22 2022-03-29 美光科技公司 阶层式存储器设备
CN114270442A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统
CN114270324A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统
US11782843B2 (en) 2019-08-22 2023-10-10 Micron Technology, Inc. Hierarchical memory systems

Also Published As

Publication number Publication date
KR20160024995A (ko) 2016-03-07
EP3049944A4 (en) 2017-06-14
KR101842621B1 (ko) 2018-03-27
WO2015047266A1 (en) 2015-04-02
US20160232103A1 (en) 2016-08-11
EP3049944B1 (en) 2022-01-12
EP3049944A1 (en) 2016-08-03

Similar Documents

Publication Publication Date Title
CN105706071A (zh) 持久性存储器的块存储孔
JP4751163B2 (ja) メモリシステム
KR20180123192A (ko) 직접 판독 액세스를 갖는 메모리 장치
KR102565895B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR20210019576A (ko) 메모리 액세스 가속화를 위한 예측 페이징
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
JP5143601B2 (ja) 情報処理装置と情報処理方法およびストレージシステム
KR20210019580A (ko) 메모리 시스템의 분리된 성능 도메인
JP2016212835A (ja) メモリシステム
US11182105B2 (en) Storage devices, storage systems including storage devices, and methods of accessing storage devices
US10346052B2 (en) Memory system with priority processing and operating method thereof
KR101979735B1 (ko) 비휘발성 메모리 시스템 및 이와 통신하는 호스트
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN109947361A (zh) 存储器系统及其操作方法
CN105094691B (zh) 一种数据操作的方法、设备和系统
US20190087349A1 (en) Data storage device and data storage method
US20140325129A1 (en) Method and apparatus for active range mapping for a nonvolatile memory device
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
CN114003517A (zh) 可调节缓冲存储器空间
CN111324414B (zh) Nvm存储介质模拟器
CN110389907B (zh) 电子装置
KR102596964B1 (ko) 맵 캐시 버퍼 크기를 가변시킬 수 있는 데이터 저장 장치
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US9971549B2 (en) Method of operating a memory device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160622

RJ01 Rejection of invention patent application after publication