CN107025179A - 存储器设备及方法 - Google Patents

存储器设备及方法 Download PDF

Info

Publication number
CN107025179A
CN107025179A CN201610986874.8A CN201610986874A CN107025179A CN 107025179 A CN107025179 A CN 107025179A CN 201610986874 A CN201610986874 A CN 201610986874A CN 107025179 A CN107025179 A CN 107025179A
Authority
CN
China
Prior art keywords
nand flash
flash memory
memory chip
dram
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610986874.8A
Other languages
English (en)
Other versions
CN107025179B (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107025179A publication Critical patent/CN107025179A/zh
Application granted granted Critical
Publication of CN107025179B publication Critical patent/CN107025179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0656Data buffering arrangements
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/205Hybrid memory, e.g. using both volatile and non-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/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7207Details relating to flash memory management management of metadata or control 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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 Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

本发明涉及存储器设备及方法。一种存储器设备,包括多个NAND闪存芯片、与NAND闪存芯片数据通信的动态随机存取存储器(DRAM)部、和控制器。每个NAND闪存芯片具有第一存储容量,且包括存储器区段,每个存储器区段包括多个页。DRAM部具有第二存储容量,第二存储容量至少与第一存储容量一样大。控制器被配置为选择NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片以用于写数据的,将在当前选择的NAND闪存芯片中的所有有效页复制到DRAM部中,且响应于对逻辑存储器位置的写请求,逻辑存储器位置映射到在NAND闪存芯片的一个中的特定物理位置,分配当前选择的NAND闪存芯片以用于写到包括特定物理位置的特定页。

Description

存储器设备及方法
技术领域
本说明书总体涉及存储器系统。
背景技术
可以使用各种各样的存储器设备来为各种计算机和类似系统维持和存储数据和指令。在传统计算系统中,已经典型地采用动态随机存取存储器(DRAM)技术来操作计算机的动态存储器以便用于用以高速操作的应用。然而,计算机系统中作为主存储器使用的DRAM已经不再像过去那样迅速扩展了。因此,DRAM存储器已经成为计算环境中受限的资源。
为了解决受限的DRAM,可以使用盘驱动器作为交换空间来将不频繁使用的存储器数据从DRAM复制出到盘驱动器。所述数据可以在下一次使用的时候被复制回DRAM。然而,通常,这个过程具有严重的性能后果。因此,在现代服务器中很少使用这个过程。为了解决这些性能后果,可以使用基于NAND闪存的固态驱动器(SSD)作为交换空间。然而,即使使用基于NAND闪存的SSD也可能对性能具有不被期望的影响。例如,基于闪存的存储器具有某些的限制,包括更慢的数据写时间以及与不得不更新整个扇区(而不是如在针对主存储器整个采用DRAM的传统系统中更新独立地址)相关联的延迟。
发明内容
在本说明书中描述的本公开主题的一个创新方面被具体体现在一种存储器设备,所述存储器设备包括多个NAND闪存芯片、与所述NAND闪存芯片数据通信的动态随机存取存储器(DRAM)部和控制器。所述多个NAND闪存芯片中的每个NAND闪存芯片包括存储器区段,使得每个存储器区段包括多个页,并且每个NAND闪存芯片具有第一存储容量。所述DRAM部具有第二存储容量,所述第二存储容量至少与所述多个NAND闪存芯片中的每个NAND闪存芯片的所述第一存储容量一样大。所述控制器被配置为选择所述NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片以用于写数据,且将在所述当前选择的NAND闪存芯片中的所有有效页复制到所述DRAM部中。所述控制器也被配置为用于:响应于对逻辑存储器位置的写请求,所述逻辑存储器位置被映射到所述NAND闪存芯片中的一个NAND闪存芯片中的特定物理位置,分配所述当前选择的NAND闪存芯片以用于写到包括所述特定物理位置的特定页。
在某些实施方式中,所述控制器被配置为选择所述多个NAND闪存芯片中的另一个NAND闪存芯片作为排队的NAND闪存芯片以用于在所述当前选择的NAND闪存芯片被识别为满之后写数据,以及将在所述排队的NAND闪存芯片中的所有有效页复制到所述DRAM部中。在某些实施方式中,所述控制器被配置为响应于对于访问存储在所述多个NAND闪存芯片中的特定页的请求,而将所述特定页从所述多个NAND闪存芯片读入到包括DRAM的主存储器。
在本说明书中描述的本公开主题的一个创新方面被具体体现在一种方法中,所述方法包括以下动作:选择所述NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片以用于写数据,每个NAND闪存芯片具有第一存储容量且包括存储器区段,且每个存储器区段包括多个页;以及将在所述当前选择的NAND闪存芯片中的所有有效页复制到与所述NAND闪存芯片数据通信的动态随机存取存储器(DRAM)部,所述DRAM部具有第二存储容量,所述第二存储容量至少与所述多个NAND闪存芯片的每个NAND闪存芯片的所述第一存储容量一样大;以及响应于对映射到逻辑存储器位置的写请求,所述逻辑存储器位置被映射到所述NAND闪存芯片中的一个NAND闪存芯片中的特定物理位置,分配所述当前选择的NAND闪存芯片以用于写到包括所述特定物理位置的特定页。
通常地,在本说明书描述的本公开主题的另一方面可以被具体体现在一种方法中,所述方法包括以下动作:选择所述多个NAND闪存芯片中的另一个NAND闪存芯片作为排队的NAND闪存芯片以用于在所述当前选择的NAND闪存芯片被识别为满之后写数据;以及将在所述排队的NAND闪存芯片中的所有有效页复制到所述DRAM部。
在本说明书描述的本公开主题的另一方面可以被具体体现在一种方法中,所述方法包括以下动作:响应于对于访问存储在所述多个NAND闪存芯片中的特定页的请求,而将所述特定页从所述多个NAND闪存芯片读入到包括DRAM的主存储器中。
这些方面的其它实施例包括被配置为执行所述方法的动作的对应的系统、装置和被编码在计算机存储设备上的计算机程序。
这些和其他实施方式可以每个可选择地包括下述特性的一个或多个。例如,基于在所述多个NAND闪存芯片中具有所述最少数目的有效页,所述多个NAND闪存芯片中的所述另一个NAND闪存芯片选择为排队的NAND闪存芯片。在某些实施方式中,用于向所述当前选择的AND闪存芯片写数据的特定物理位置是基于以下中的至少一条来确定的:(i)最少访问页和(ii)近期最少使用页。
在某些实施方式中,所述存储器区段包括相应NAND闪存芯片的分区,且分区允许在所述相应NAND闪存芯片的第一分区中的写操作期间在相同的所述相应NAND闪存芯片的另一分区中的所述读操作。在某些实施方式中,所述存储器区段包括所述相应构成NAND闪存芯片。
在某些实施方式中,每个NAND闪存芯片包括多个分区,每个分区具有特定的存储容量,且所述DRAM部的所述第二存储容量与每个分区的所述特定存储容量至少一样大。在某些实施方式中,每个NAND闪存芯片包括多个分区,每个分区具有特定存储容量,且所述DRAM部的所述第二存储容量或者与每个分区的所述特定存储容量的大小大致相等,或者是每个分区的所述特定存储容量的大小的大约两倍。
在某些实施方式中,所述多个NAND闪存芯片是耦合到输入/输出(I/O)总线的模块的部分,且所述模块进一步包括DRAM部,其中,所述DRAM部的所述第二存储容量大约是每个NAND闪存芯片的所述第一存储容量的大小的两倍。在某些实施方式中,所述多个NAND闪存芯片被耦合到输入/输出(I/O)总线,且其中,所述DRAM部是包括DRAM的主存储器的部分。在某些实施方式中,所述多个NAND闪存芯片和所述DRAM部是模块的部分,且所述DRAM的所述第二存储容量至少与每个NAND闪存芯片的所述第一存储容量的两倍一样大。
在下文的附图描述和实施方式中阐述本发明的一个或多个实施例的细节。本发明的其他特性和优点将从描述、附图、和权利要求中显而易见。
附图说明
图1描述包括根据本公开的实施方式的存储器设备的系统的示例。
图2A描述包括根据本公开的实施方式的存储器设备的系统的示例。
图2B描述包括根据本公开的实施方式的存储器设备的系统的示例。
图2C描述包括根据本公开的实施方式的存储器设备的系统的示例。
图3描述根据本公开的实施方式的NAND闪存模块的示例。
图4描述根据本公开的实施方式的方法的示例流程图。
在各种附图中,相似的附图标记和标号指示相似的元件。
具体实施方式
下文描述的存储器系统包括与DRAM部数据通信的NAND闪存芯片。每个NAND闪存芯片定义具有多个页的存储器区段,且每个NAND闪存芯片具有第一存储容量。DRAM部与NAND闪存芯片数据通信。DRAM部具有第二存储容量,所述第二存储容量至少与每个所述NAND闪存芯片的第一存储容量一样大。
所述存储器系统也包括控制器,所述控制器被配置为选择NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片以用于写数据,且随后将在当前选择的NAND闪存芯片中的所有有效页复制到所述DRAM部中。
响应于对映射到在NAND闪存芯片中的一个NAND闪存芯片中的特定物理位置的逻辑存储器位置的写请求,控制器分配当前选择的NAND闪存芯片以用于写到包括所述特定物理位置的特定页。
在某些实施方式中,可以基于某些度量选择将从主存储器(例如,DRAM)移除且被写到NAND闪存芯片的页,所述度量诸如最少访问页、近期最少使用页等、或其的任意组合。
这些存储器系统可以被包括在单个封装的设备中,或可以在计算机设备中分布。图1-图2C是可以如何以不同的变体实现所述存储器系统的示例图示。
图1描述包括根据本公开的实施方式的存储器设备的系统100的示例。系统100可以包括处理器(诸如中央处理单元(CPU)110)、DRAM部120、输入/输出(I/O)总线130、盘驱动器140(诸如硬盘驱动器(HDD))、NAND闪速存储器部150。I/O总线130可以是用于输入和输出设备与CPU 100通信的路径。I/O总线可以是例如高速外围组件互连(PCIe)。盘驱动器140可以被用于数据的长期存储。
系统100可以在电子设备(诸如,计算设备)中实现。DRAM部120可以是主存储器,且可以被CPU 100直接访问。主存储器可以是使用例如承载期望位置的存储器地址的地址总线和用于读或写数据的数据总线而连接到处理器(例如,CPU 100)的主要存储。
当使用闪存存储器作为交换空间设备时,写到闪存存储器要求擦除操作后跟随程序操作。典型地,这些操作比读操作慢很多,且当这些操作发生时,读操作被阻塞。这样,读的平均和尾延迟可能不利地增加。
为了解决在上述段落中的问题,在任意给定的时间,可以选择一个NAND闪存芯片用于写入。在所选择的NAND闪存芯片中的所有有效页可以被读入DRAM部中,使得没有必要从该NAND闪存芯片中读出。而是,读可以从DRAM部发生,所选择的NAND闪存芯片中的有效页已经被读入该DRAM部。可以对所选择的NAND闪存芯片进行所有新的写。
另外,在一些实施方式中,可以排队用于下一个写的另一个NAND闪存芯片。在其中选择第二NAND闪存芯片作为排队的NAND闪存芯片的情况中,可以将在所选择的NAND闪存芯片和排队的NAND闪存芯片两者中的所有有效页读入DRAM部中,使得没有必要从这两个NAND闪存芯片中读取。所有新的写应对第一所选择的NAND闪存芯片进行。当第一NAND闪存芯片满时,后续的写可以对排队的NAND闪存芯片进行,所述排队的NAND闪存芯片随后可以成为用于写的当前NAND闪存芯片。可以选择新的NAND闪存芯片作为下一个排队的芯片,且在该下一个排队的NAND闪存芯片中的所有有效页可以被读入DRAM部中。
如有必要,可以将来自不再被写入的、第一选择的NAND闪存芯片的页从DRAM中逐出。例如,每个页可以或者被丢弃(如果其不是脏的),或被回写到闪存存储器。
当NAND闪存芯片被选择用于排队为成为下一个、排队的NAND闪存芯片时,该选择可以基于在有资格被选择的多个NAND闪存芯片中具有最少数目的有效页的NAND闪存芯片。有时,由于损耗均衡的原因,可以基于损耗均衡策略或流程作出不同的选择。用于损耗均衡的这样的技术在本领域已知,且包括例如动态损耗均衡和静态损耗均衡的技术。
如前述,系统可以具有与NAND闪存存储器分离的主存储器(例如,DRAM),其中NAND闪存存储器连接到I/O总线,且DRAM未直接连接到I/O总线,而NAND闪存存储器与DRAM数据通信。然而,在某些实施方式中,NAND闪存存储器和充当高速缓存的DRAM部两者均可以通过与主存储器DRAM分离的I/O总线连接。例如,在图2A中,与连接到I/O总线的NAND闪存存储器一起描述了DRAM高速缓存。
图2A描述包括根据本公开的实施方式的存储器设备的系统示例。如图2A中所描述的,本公开的存储器设备可以是与标准DRAM双列直插式存储器模块(DIMM)可以被使用的方式类似地插入服务器的DIMM。然而,本公开的DIMM可以包括第一量的DRAM 255和第二、更大量的NAND闪存存储器250。示例系统可以具有32GB的DRAM和128GB的可用NAND闪存存储器。
与关于图1的上述描述相似,在图2A中描述的系统200也可以包括处理器(诸如中央处理单元(CPU)210)、DRAM 220、输入/输出(I/O)总线230、盘驱动器240(诸如硬盘驱动器(HDD))。存储器设备可以包括NAND闪存存储器250和DRAM部255。
DIMM也可以具有被配置为控制DRAM部255和NAND闪存存储器250两者的控制器。如此处描述,DIMM和控制器可以被配置为使用NAND闪存存储器250作为交换空间。DRAM部255可以具有与高速缓存当前被写的NAND闪存芯片所需要的量大体相等的存储容量。替选地,DRAM部255可以具有与高速缓存当前被写入的NAND闪存芯片和下一个被写的排队的NAND闪存芯片所需要的量大体相等的存储容量。可以使用DRAM 220来在例如当页被请求时,存储从NAND闪存存储器250读入的页。典型的页大小可以是例如4KB。
在上述具有32GB的DRAM和128GB的可用NAND闪存存储器的系统示例中,该系统可以按照与具有128GB的DRAM的系统相似的方式执行,即使实际DRAM只有32GB。通过以此处描述的方式使用128GB的闪存存储器来创造这种性能。
虚拟存储器(VM)系统或管理者可以控制程序存储器怎样被根据操作系统执行的一个或多个程序利用。通常,当从主存储器提取数据时,关于是否检测到读或者写访问作出确定。这样的确定可以被页故障机制或其他事件触发。当页被第一次访问时,可以将该页从闪速存储器复制到DRAM。当这个发生时,VM系统可以采取页故障。可以随后从该DRAM副本提供对该页的读和写。当需要将不同的页移入DRAM时,可以简单地丢弃当前页(如果不脏),或将当前页回写到闪存存储器。例如,当主存储器满且需要引入来自闪速存储器的新的页时,可以基于替代算法选择页并且丢弃页或如果页脏(也即,在主存储器期间被修改)则将页推回闪存。
当需要分配任何新的存储器时,应从闪速存储器中分派。根据高速缓存策略,其可以或可以不在DRAM中被高速缓存。可以使用各种这样的高速缓存策略,诸如最少访问页、近期最少使用的页等、或其任意组合。可以由VM系统管理高速缓存,VM系统可以在页单元中操作。
使用闪速存储器可能需要“写时拷贝(copy on write)”,也即,逻辑地址每次被写时,数据将位于新的物理地址。这需要已知的映射表。然而,本公开的实施方式可以依赖虚拟存储器页表来完成这个映射。
如上文关于图2A而描述的,系统可以具有与NAND闪存芯片集成在相同封装中的DRAM高速缓存。然而,所有的存储器组件被包括在同一个封装中并不必要。例如,在图2B中,DRAM高速缓存被描述为与NAND闪存芯片分离,但依然与NAND闪存芯片数据通信。
具体地,图2B描述包括根据本公开的实施方式的存储器设备的系统示例。在图2B中描述的系统200可以包括处理器(诸如中央处理单元(CPU)210)、DRAM 220、DRAM部225、输入/输出(I/O)总线230、盘驱动器240(诸如硬盘驱动器(HDD))、和NAND闪速存储器250。
如图2B中所描述的,NAND闪速存储器250在I/O总线230上,而DRAM部225可以从主存储器DRAM 220被分派以作为针对当前正被写的NAND闪存芯片的高速缓存被利用。在某些实施方式中,DRAM部225可以被按需动态分派。进一步,DRAM部225可以从主存储器DRAM 220被分派,以作为针对当前正被写的NAND闪存芯片和下一个被写的排队的NAND闪存芯片的高速缓存被利用。可以使用DRAM 220以在例如所述页被请求时,存储从NAND闪速存储器250读入的页。
如前文关于图2B描述的,系统可以使DRAM高速缓存从主存储器DRAM被分派,NAND闪速存储器分离地连接到I/O总线。然而,在某些实施方式中,可以与主存储器DRAM分离地使用包括NAND闪速存储器和DRAM两者的混合DIMM。例如,在图2C中,将DIMM描述为具有NAND闪速存储器和DRAM,其中DRAM的一部分可以被分派作为DRAM部以作为高速缓存来利用。
图2C描述包括根据本公开的实施方式的存储器设备的系统示例。在图2C中描述的系统200可以包括处理器(诸如中央处理单元(CPU)210)、DRAM 220、输入/输出(I/O)总线230、盘驱动器240(诸如硬盘驱动器(HHD))。可以与包括DRAM 220的主存储器DIMM一起,在存储器总线上安装包括NAND闪速存储器250和DRAM部270两者的DIMM 280。
DIMM 280可以包括控制器260,控制器260被配置为控制DRAM部270和NAND闪速存储器250两者。DRAM部270可以使其存储容量的仅仅部分被用作针对当前被写的NAND闪存芯片的高速缓存。这样,未被用作针对当前正被写的NAND闪存芯片的高速缓存的DRAM部270的部分可以被用作标准DRAM。例如,未被用作高速缓存的DRAM部270的该部分可以存储已从NAND闪速存储器250交换空间读入的页。
在某些实施方式中,DRAM部270可以仅使其存储容量的一部分被用作针对当前正在被写的NAND闪存芯片和针对下一个要被写的排队的NAND闪存芯片的高速缓存。这样,如前述,未被用作针对当前正被写的NAND闪存芯片和针对下一个要被写的排队的NAND闪存芯片的高速缓存的DRAM部270的部分可以被用作标准DRAM。
上述关于图1-图2C引用的NAND闪速存储器可以包括若干NAND闪存芯片。例如,在图3中,NAND闪速存储器被描述为包括若干NAND闪存芯片的存储器模块,其中该模块被连接到I/O总线。
图3描述根据本公开的实施方式的NAND闪速模块的示例。NAND闪速存储器部150/250可以包括控制器160和NAND闪存芯片170a-170n集合。NAND闪速存储器部150/250可以与DRAM部120数据通信。可以使用任意数目n的任意大小的NAND闪存芯片以实现NAND闪速存储器部150/250的期望存储容量。为该NAND闪速存储器部150/250创建期望的存储空间,可能需要一些过度配置。例如,在特定的NAND闪速存储器部150/250中,每个NAND闪存芯片可以是4GB。这样,如果对NAND闪速存储器部150/250而言128GB的存储空间是所期望的,则对128GB而言将需要三十二个这样的4GBNAND闪存芯片。假设例如百分之二十五过度配置,则可以提供总共四十个NAND闪存芯片。这确保例如当使用所有的128GB存储器时,每个NAND闪存芯片平均将被80%占用,以其他方式则更少。
n个NAND闪存芯片170a-170n中的每个可以包括一个或多个存储区区段。换言之,存储器区段可以是相应构成NAND闪存芯片或每个NAND闪存芯片可以包括一个或多个分区作为存储器区段。在NAND闪存芯片包括分区的情况中,如果在一个分区中写操作正在进行,该写操作不阻止对相同NAND闪存芯片的其他分区上的读操作。换言之,分区在相应的NAND闪存芯片的第一分区中的写操作期间,允许所述相应的NAND闪存芯片的另一分区中的读操作。
在某些实施方式中,每个NAND闪存芯片包括多个分区,每个分区具有特定的存储容量。在这样的实施方式中,DRAM部的存储容量(例如,第二存储容量)可以至少与每个分区的特定存储容量一样大,但是小于该构成NAND闪存芯片的存储容量。具体地,在某些实施方式中,DRAM部的第二存储容量或者与每个分区的特定存储容量的大小大体相等,或者是每个分区的特定存储容量的大小的大约两倍。
在NAND闪存芯片包括分区的情况中,与NAND闪存芯片不包括分区相比,对于作为高速缓存的DRAM部可能需要较小量的DRAM。例如,如果每个NAND闪存芯片是16GB,且被分割成每个4GB的四个分区,作为用于NAND闪速存储器的高速缓存的DRAM部可以具有与一个分区的大小大体相等的4GB的存储容量,或与两个分区的大小大体相等的8GB的存储容量。相反地,在没有分区的情况下,DRAM部可以具有与一个NAND闪存芯片的大小大体相等的16GB,或与两个NAND闪存芯片的大小大体相等的32GB。
图4描述用于根据本公开的实施方式的方法400的示例流程图。为了将闪速存储器实现为交换空间,可以按照下述过程400发生以裸片级写到闪速存储器。在410,可以选择组成该NAND闪速存储器的NAND闪存芯片中的一个作为用于写数据的当前选择的NAND闪存芯片。如前述,每个NAND闪存芯片可以具有特定的存储容量,且可以具有包括一个或多个页的存储器区段。例如,页大小可以是4KB。替选地,页大小可以超过4KB,例如4KB的任意倍数,例如8KB、256KB、2MB。
在某些实施方式中,在420,可以选择组成NAND闪速存储器的NAND闪存芯片的另一个作为用于在当前选择的NAND闪存芯片被识别为满之后写数据的排队的NAND闪存芯片。在某些实施方式中,可以不使用排队的NAND闪存芯片,且该过程可以不包括420。在选择排队的NAND闪存芯片的情况中,在430,在当前选择的NAND闪存芯片和排队的NAND闪存芯片中的所有有效页被复制到与NAND闪存芯片数据通信的DRAM部中。在不使用排队的NAND闪存芯片的情况中,在430,当前选择的NAND闪存芯片中所有的有效页被复制到与NAND闪存芯片数据通信的DRAM部中。如前述,DRAM部可以具有至少与每个NAND闪存芯片的存储容量一样大的存储容量。
响应于在440对映射到NAND闪存芯片的一个NAND闪存芯片中的特定物理位置的逻辑存储器位置的写请求,在450,分配当前选中的NAND闪存芯片以用于写到包括该特定物理位置的特定页。这样,对在当前选择的NAND闪存芯片和排队的NAND闪存芯片中存储的页的读和写可以从DRAM副本中被提供,使得不需发生从当前选择的NAND闪存芯片和排队的NAND闪存芯片中读取。而是,所有的新写需要去往当前选择的NAND闪存芯片,例如直到其满。后续的写可以去往排队的NAND闪存芯片,排队的NAND闪存芯片变成所述用于写的NAND闪存芯片,且可以选择新的NAND闪存芯片作为排队的NAND闪存芯片。过程重复,在新的排队的NAND闪存芯片中的所有有效页被读入DRAM。进一步,如果必要,来自第一当前选择的NAND闪存芯片的、已经不再被写入的页可以从DRAM中逐出。
尽管本公开的实施方式的描述已包括单个控制器和单个装配,某些实施方式可以包括两个分离的控制器和装配。例如,具有一个控制器的一个装配可以包括闪速存储器,且具有控制器的另一个装配可以包括DRAM。进一步,某些实施方式可以针对DRAM高速缓存部分使用现有系统DRAM。
根据本公开的实施方式,可以被设计为具有更快访问时间的NAND闪存芯片可以提供甚至更好的性能。例如,通过改变NAND闪存芯片本身的电路设计,访问时间可以被提升到10毫秒或更少。进一步,NAND闪存芯片可以被设计为具有更宽和更快的接口,这允许根据本公开的实施方式的页转移更快地被完成。
已描述一些实施方式。然而,将理解在不背离本公开的精神和范围的情况下可以做出各种修改。例如,可以使用上文示出的流程的各种形式,其中步骤被重新排序、添加、或移除。
可以在数字电子电路、或在计算机软件、固件、或硬件、包括在本说明书中公开的结构及其结构等价物、或其一个或多个的组合中实现本说明书中描述的本发明的实施方式和所有的功能操作。本发明的实施方式可以被实现为一个或多个计算机程序产品,也即,在计算机可读介质上编码的一个或多个计算机程序指令的模块,以由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、影响机器可读传播信号的物体组合、或它们的一个或多个的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,通过示例的方式包括可编程处理器、计算机、或多个处理器或计算机。所述装置除硬件之外可以包括为在讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统、或它们的一个或多个的组合的代码。传播信号是人为生成的信号,例如机器生成的电、光或电磁信号,其为了编码用于传输到合适的接收器装置的信息而被生成。
尽管本公开包括很多特性,这些不应被解释为对本发明或权利要求的范围的限制,而应被解释为对本发明的特定实施方式特有的特性的描述。在本说明书中,在分离的实施方式的场境下描述的某些特性也可以被实现在单个实施方式的组合中。相反地,在单个实施方式的场境下被描述的各种特性也可以分离地被实现在多个实施方式中,或以任意合适的子组合被实现。另外,尽管前文可以将特性描述为在某些组合中行动且甚至初始地被这样要求,来自要求保护的组合的一个或多个特性在一些情况中可以从这些组合中被切除,且要求保护的组合可以被指向子组合或子组合的变体。
相似地,尽管在附图中以特定次序描述操作,这不应被理解为以达到期望的结果,要求这样的操作以示出的特定次序或以顺序次序执行,或应执行所有示出的操作。在某些情况中,多任务和并行处理可能有利。另外,在上述实施方式中各种系统组件的分离不应被理解为在所有实施方式中需要这样的分离,且应理解描述的程序组件和系统通常可以在单个软件产品中被集成在一起或被封装进多个软件产品。
这样,已描述本公开的特定实施方式。其他实施方式在下述权利要求的范围内。例如,在权利要求中记载的动作可以以不同的次序执行,且依然实现期望的结果。已经描述若干实施方式。然而,将理解在不背离本公开的精神和范围的情况下,可以做出各种修改。例如,使用上文示出的流程的各种形式,其中步骤被重新排序、添加、或移除。因此,其他实施方式在下述权利要求的范围内。

Claims (20)

1.一种存储器设备,包括:
多个NAND闪存芯片,所述多个NAND闪存芯片中的每个NAND闪存芯片包括存储器区段,其中,每个存储器区段包括多个页,并且其中每个NAND闪存芯片具有第一存储容量;
与所述NAND闪存芯片进行数据通信的动态随机存取存储器DRAM部,所述DRAM部具有第二存储容量,所述第二存储容量至少与所述多个NAND闪存芯片中的每个NAND闪存芯片的所述第一存储容量一样大;以及
控制器,所述控制器被配置为:
选择所述NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片,以用于写数据;
将在所述当前选择的NAND闪存芯片中的所有有效页复制到所述DRAM部中;以及
响应于对逻辑存储器位置的写请求,分配所述当前选择的NAND闪存芯片以用于写到包括所述特定物理位置的特定页,所述逻辑存储器位置被映射到所述NAND闪存芯片的一个NAND闪存芯片中的特定物理位置。
2.根据权利要求1所述的存储器设备,其中,所述至少一个控制器被配置为:
选择所述多个NAND闪存芯片中的另一个NAND闪存芯片作为排队的NAND闪存芯片,以用于在所述当前选择的NAND闪存芯片被识别为满之后写数据;以及
将在所述排队的NAND闪存芯片中的所有有效页复制到所述DRAM部中。
3.根据权利要求2所述的存储器设备,其中,基于在所述多个NAND闪存芯片中具有最少数目的有效页,所述多个NAND闪存芯片中的所述另一个NAND闪存芯片被选择为排队的NAND闪存芯片。
4.根据权利要求1所述的存储器设备,其中,用于向所述当前选择的NAND闪存芯片写数据的所述特定物理位置是基于以下中的至少一个来确定的:(i)最少访问的页和(ii)近期最少使用的页。
5.根据权利要求1所述的存储器设备,其中,所述存储器区段包括相应NAND闪存芯片的分区,并且其中,在所述相应NAND闪存芯片的另一分区中的写操作期间,分区允许在相同的所述相应NAND闪存芯片的第一分区中的读操作。
6.根据权利要求1所述的存储器设备,其中,所述存储器区段包括相应的构成NAND闪存芯片。
7.根据权利要求1所述的存储器设备,其中,所述多个NAND闪存芯片是耦合到输入/输出I/O总线的模块的一部分,所述模块进一步包括所述DRAM部,其中,所述DRAM部的所述第二存储容量大约是每个NAND闪存芯片的所述第一存储容量的大小的两倍。
8.根据权利要求1所述的存储器设备,其中,所述多个NAND闪存芯片被耦合到输入/输出I/O总线,并且其中,所述DRAM部是包括DRAM的主存储器的一部分。
9.根据权利要求1所述的存储器设备,其中,所述多个NAND闪存芯片和所述DRAM部是耦合到存储器总线的模块的一部分,并且其中,所述DRAM部的所述第二存储容量至少与每个NAND闪存芯片的所述第一存储容量的两倍一样大。
10.根据权利要求1所述的存储器设备,其中,所述至少一个控制器被配置为:
响应于对于访问存储在所述多个NAND闪存芯片中的特定页的请求,而将所述特定页从所述多个NAND闪存芯片读入到包括DRAM的主存储器中。
11.一种方法,所述方法包括:
选择多个NAND闪存芯片中的一个NAND闪存芯片作为当前选择的NAND闪存芯片以用于写数据,所述多个NAND闪存芯片中的每个NAND闪存芯片包括存储器区段,其中,每个存储器区段包括多个页,并且其中,每个NAND闪存芯片具有第一存储容量;
将在所述当前选择的NAND闪存芯片中的所有有效页复制到动态随机存取存储器DRAM部中,所述DRAM部与所述NAND闪存芯片数据通信,其中,所述DRAM部具有第二存储容量,所述第二存储容量至少与所述多个NAND闪存芯片的每个NAND闪存芯片的所述第一存储容量一样大;以及
响应于对逻辑存储器位置的写请求,分配所述当前选择的NAND闪存芯片以用于写到包括所述特定物理位置的特定页,所述逻辑存储器位置被映射到所述NAND闪存芯片中的一个NAND闪存芯片中的特定物理位置。
12.根据权利要求11所述的方法,进一步包括:
选择所述多个NAND闪存芯片中的另一个NAND闪存芯片作为排队的NAND闪存芯片,以用于在所述当前选择的NAND闪存芯片被识别为满之后写数据;以及
将在所述排队的NAND闪存芯片中的所有有效页复制到所述DRAM部中。
13.根据权利要求12所述的方法,其中,基于在所述多个NAND闪存芯片中具有最少数目的有效页,所述多个NAND闪存芯片中的所述另一个NAND闪存芯片选择为排队的NAND闪存芯片。
14.根据权利要求11所述的方法,其中,用于向所述当前选择的NAND闪存芯片写数据的所述特定物理位置是基于以下中的至少一个来确定的:(i)最少访问的页和(ii)近期最少使用的页。
15.根据权利要求11所述的方法,其中,所述存储器区段包括相应NAND闪存芯片的分区,并且其中,在所述相应NAND闪存芯片的另一分区中的写操作期间,分区允许在相同的所述相应NAND闪存芯片的第一分区中的读操作。
16.根据权利要求11所述的方法,其中,所述存储器区段包括相应的构成NAND闪存芯片。
17.根据权利要求11所述的方法,其中,所述多个NAND闪存芯片是耦合到输入/输出I/O总线的模块的一部分,所述模块进一步包括所述DRAM部,其中所述DRAM部的所述第二存储容量大约是每个NAND闪存芯片的所述第一存储容量的大小的两倍。
18.根据权利要求11所述的方法,其中,所述多个NAND闪存芯片被耦合到输入/输出I/O总线,并且其中,所述DRAM部是包括DRAM的主存储器的一部分。
19.根据权利要求11所述的方法,其中,所述多个NAND闪存芯片和所述DRAM部是模块的一部分,并且其中,所述DRAM部的所述第二存储容量至少与每个NAND闪存芯片的所述第一存储容量的两倍一样大。
20.根据权利要求11所述的方法,进一步包括:
响应于对于访问存储在所述多个NAND闪存芯片中的特定页的请求,而将所述特定页从所述多个NAND闪存芯片读入到包括DRAM的主存储器中。
CN201610986874.8A 2015-11-09 2016-11-09 存储器设备及方法 Active CN107025179B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/936,486 US9880778B2 (en) 2015-11-09 2015-11-09 Memory devices and methods
US14/936,486 2015-11-09

Publications (2)

Publication Number Publication Date
CN107025179A true CN107025179A (zh) 2017-08-08
CN107025179B CN107025179B (zh) 2020-12-08

Family

ID=57256152

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610986874.8A Active CN107025179B (zh) 2015-11-09 2016-11-09 存储器设备及方法

Country Status (7)

Country Link
US (1) US9880778B2 (zh)
EP (1) EP3166019B1 (zh)
JP (1) JP6339645B2 (zh)
KR (1) KR101823983B1 (zh)
CN (1) CN107025179B (zh)
SG (1) SG10201609225QA (zh)
TW (1) TWI617972B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287128A (zh) * 2019-05-21 2019-09-27 北京微密科技发展有限公司 一种融合闪存的cpu虚拟dram控制器

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606484B2 (en) * 2017-06-23 2020-03-31 Google Llc NAND flash storage device with NAND buffer
CN117980859A (zh) * 2021-09-18 2024-05-03 华为技术有限公司 一种存储器件中数据存储的方法和一种存储器件
CN114115507B (zh) * 2021-11-30 2023-08-08 杭州海康威视数字技术股份有限公司 存储器及写数据的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717662A (zh) * 2002-11-28 2006-01-04 株式会社瑞萨科技 存储器模块、存储器系统和信息仪器
US20070079065A1 (en) * 2005-06-13 2007-04-05 Bonella Randy M Advanced dynamic disk memory module
CN101681315A (zh) * 2008-03-01 2010-03-24 株式会社东芝 存储器系统
US20100205470A1 (en) * 2009-02-11 2010-08-12 Stec, Inc. Flash backed dram module with state of health and/or status information accessible through a configuration data bus
US20110066790A1 (en) * 2009-09-17 2011-03-17 Jeffrey Clifford Mogul Main memory with non-volatile memory and dram
US20140281157A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Memory system, memory controller and method

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07114500A (ja) 1993-10-19 1995-05-02 Matsushita Electric Ind Co Ltd 不揮発性メモリ記憶装置
JPH08129509A (ja) 1994-11-01 1996-05-21 Canon Inc メモリ制御装置及び方法
JP2002251884A (ja) * 2001-02-21 2002-09-06 Toshiba Corp 半導体記憶装置及びそのシステム装置
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
JP2007041813A (ja) * 2005-08-02 2007-02-15 Toshiba Corp 情報処理システムおよび情報処理方法
US8060696B2 (en) * 2007-04-27 2011-11-15 Siemens Medical Solutions Usa, Inc. Positron emission tomography event stream buffering
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
CN100547566C (zh) 2007-06-28 2009-10-07 忆正存储技术(深圳)有限公司 基于多通道闪存设备逻辑条带的控制方法
JP2009032324A (ja) 2007-07-26 2009-02-12 Spansion Llc 複数のメモリブロックを備える不揮発性記憶装置
US8185685B2 (en) * 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8738840B2 (en) 2008-03-31 2014-05-27 Spansion Llc Operating system based DRAM/FLASH management scheme
KR101056560B1 (ko) 2009-02-11 2011-08-11 (주)인디링스 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법및 장치
PT2554174E (pt) 2009-06-22 2015-12-15 Ampio Pharmaceuticals Inc Método para o tratamento de doenças
US8838903B2 (en) * 2010-02-04 2014-09-16 Dataram, Inc. Priority ordered multi-medium solid-state storage system and methods for use
JP5010723B2 (ja) * 2010-09-22 2012-08-29 株式会社東芝 半導体記憶制御装置
WO2012048444A1 (en) * 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
US20140101370A1 (en) * 2012-10-08 2014-04-10 HGST Netherlands B.V. Apparatus and method for low power low latency high capacity storage class memory
JP6021759B2 (ja) 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
KR20150055413A (ko) 2013-11-13 2015-05-21 에스케이하이닉스 주식회사 데이터 저장 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1717662A (zh) * 2002-11-28 2006-01-04 株式会社瑞萨科技 存储器模块、存储器系统和信息仪器
US20070079065A1 (en) * 2005-06-13 2007-04-05 Bonella Randy M Advanced dynamic disk memory module
CN101681315A (zh) * 2008-03-01 2010-03-24 株式会社东芝 存储器系统
US20100205470A1 (en) * 2009-02-11 2010-08-12 Stec, Inc. Flash backed dram module with state of health and/or status information accessible through a configuration data bus
US20110066790A1 (en) * 2009-09-17 2011-03-17 Jeffrey Clifford Mogul Main memory with non-volatile memory and dram
US20140281157A1 (en) * 2013-03-13 2014-09-18 Kabushiki Kaisha Toshiba Memory system, memory controller and method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110287128A (zh) * 2019-05-21 2019-09-27 北京微密科技发展有限公司 一种融合闪存的cpu虚拟dram控制器
CN110287128B (zh) * 2019-05-21 2021-06-04 北京融芯微科技有限公司 一种融合闪存的cpu虚拟dram控制器

Also Published As

Publication number Publication date
CN107025179B (zh) 2020-12-08
TW201719381A (zh) 2017-06-01
TWI617972B (zh) 2018-03-11
EP3166019A1 (en) 2017-05-10
SG10201609225QA (en) 2017-06-29
JP2017097861A (ja) 2017-06-01
US9880778B2 (en) 2018-01-30
KR20170058278A (ko) 2017-05-26
KR101823983B1 (ko) 2018-01-31
EP3166019B1 (en) 2021-07-07
US20170131908A1 (en) 2017-05-11
JP6339645B2 (ja) 2018-06-06

Similar Documents

Publication Publication Date Title
US12045168B2 (en) Timed data transfer between a host system and a memory sub-system
CN111176553B (zh) 固态驱动器中的带宽限制
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
US10175891B1 (en) Minimizing read latency for solid state drives
EP3441870B1 (en) Managing function level reset in an io virtualization-enabled storage device
US11237756B2 (en) System and method of writing to nonvolatile memory using write buffers
US20240037039A1 (en) Management of Programming Mode Transitions to Accommodate a Constant Size of Data Transfer between a Host System and a Memory Sub-System
CN107025179A (zh) 存储器设备及方法
CN110109612A (zh) 存储器模块及其操作方法
CN104346293A (zh) 混合内存的数据访问方法、模块、处理器及终端设备
WO2017214295A1 (en) Multi-level data cache and storage on a memory bus
KR20200121372A (ko) 하이브리드 메모리 시스템
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
WO2018232083A1 (en) Cooperative data migration for storage media
EP3462327A2 (en) Systems, methods and apparatus for memory access and scheduling
WO2013162594A1 (en) Shielding a memory device
CN118069575A (zh) 一种存储空间管理方法及管理设备
US10664396B2 (en) Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes
US11768777B2 (en) Application aware cache management
US12124735B2 (en) System and method of writing to nonvolatile memory using write buffers
KR20220145698A (ko) PCIe 장치 및 그 동작 방법

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
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant