CN110119245B - 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 - Google Patents

用于操作nand闪存物理空间以扩展存储器容量的方法和系统 Download PDF

Info

Publication number
CN110119245B
CN110119245B CN201910011946.0A CN201910011946A CN110119245B CN 110119245 B CN110119245 B CN 110119245B CN 201910011946 A CN201910011946 A CN 201910011946A CN 110119245 B CN110119245 B CN 110119245B
Authority
CN
China
Prior art keywords
volatile memory
page
data
physical
block address
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
CN201910011946.0A
Other languages
English (en)
Other versions
CN110119245A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110119245A publication Critical patent/CN110119245A/zh
Application granted granted Critical
Publication of CN110119245B publication Critical patent/CN110119245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • 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
    • 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
    • G06F12/0871Allocation or management of cache space
    • 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • 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/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling
    • 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)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一个实施例有利于非易失性存储器的操作。在操作期间,系统通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且每个单独的物理区具有专用应用来读取数据或者向其写入数据。所述系统通过将数据从易失性存储器中的冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧,其中,冷页面是具有小于预定阈值的访问历史的页面。所述系统基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧。所述系统基于加载到所述空闲页面帧中的所述数据执行所述请求。

Description

用于操作NAND闪存物理空间以扩展存储器容量的方法和系统
本申请要求于2018年2月7日提交美国专利商标局、申请号为15891174、发明名称为“METHOD AND SYSTEM FOR OPERATING NAND FLASH PHYSICAL SPACE TO EXTEND MEMORYCAPACITY”的美国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开一般地涉及数据存储的领域。更具体地,本公开涉及用于操作NAND闪存物理空间以扩展服务器的存储器容量的方法和系统。
背景技术
因特网和电子商务的激增继续产生大量的数字内容。已创建了各种存储系统和服务器来访问并存储这种数字内容。存储系统或服务器可包括易失性存储器(例如,动态随机存取存储器(DRAM)和多个驱动器(例如,固态驱动器(SSD))。驱动器可包括用于持久存储的非易失性存储器(例如,NAND闪存)。服务器中的存储器在存储系统的性能和容量中起着至关重要的作用。因为当前应用要求增加量的存储器,所以服务器中的存储器(例如,DRAM)的量可限制系统的整体性能。例如,单个中央处理器(CPU)插口仅可支持有限数量的双列直插存储器模块(DIMM)插槽,并且单个DIMM基于有限的容量。此外,DRAM的有限供应可导致成本增加,这可影响可用于在数据中心中使用的DRAM供应和总拥有成本(TCO)两者。
因此,服务器中的存储器的有限的可用性和容量可以在服务器的性能方面产生瓶颈,并且还可能由于数据中心的规模增加而对降低的TCO产生挑战。
发明内容
一个实施例有利于非易失性存储器的操作。在操作期间,系统通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且其中,所述单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据。
在一些实施例中,所述系统将所述非易失性存储器划分成所述单独的物理区。单独的物理区包括一个或更多个NAND裸片,并且应用对应于唯一物理区。
在一些实施例中,所述系统通过所述闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址,其中,所述另一物理块地址与当前不在处理读取操作或擦除操作的第三物理区相关联。
在一些实施例中,所述方法响应于以下步骤而被执行:针对在所述易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器中执行不成功的第一次搜索;以及针对所述现有物理块地址在页面表中执行不成功的第二次搜索。
在一些实施例中,响应于在所述转换检测缓冲器中执行成功的第一次搜索,或者响应于在所述转换检测缓冲器中执行不成功的第一次搜索并且在所述页面表中执行成功的第二次搜索,所述系统基于与所述易失性存储器中的所述现有物理块地址相关联的数据执行所述请求。
在一些实施例中,在所述易失性存储器中获得所述空闲页面帧是响应于在所述易失性存储器中成功地分配可用页面帧。
在一些实施例中,获得所述空闲页面帧并且将所述数据从所述非易失性存储器加载到所述空闲页面帧是响应于在所述易失性存储器中未成功地分配可用页面帧。
在一些实施例中,所述系统确定易失性存储器中的冷页面,其中,所述冷页面是具有小于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数。所述系统通过将数据从所述易失性存储器中的所述冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧。所述系统基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧。所述系统基于加载到所述空闲页面帧中的所述数据执行所述请求。
在一些实施例中,所述系统确定易失性存储器中的热页面,其中,所述热页面是具有大于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数。所述系统基于所述非易失性存储器中的所述热页面的物理块地址,将数据从所述非易失性存储器加载到所述易失性存储器。
在一些实施例中,所述闪存转换层模块在用户空间中操作。
附图说明
图1图示依照本申请的实施例的有利于非易失性存储器的操作的示例性环境。
图2A图示依照现有技术的示例性存储器分配。
图2B图示依照现有技术的描绘若干常规SSD的读取延迟分布的图表。
图3图示依照现有技术的有利于非易失性存储器的操作的示例性架构。
图4图示依照本申请的实施例的有利于非易失性存储器的操作的示例性环境。
图5A呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作的方法的流程图。
图5B呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作的方法的流程图。
图5C呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作(包括将冷页面从易失性存储器移动到非易失性存储器)的方法的流程图。
图6图示依照本申请的实施例的有利于非易失性存储器的操作的示例性计算机系统。
图7图示依照本申请的实施例的有利于非易失性存储器的操作的示例性装置。
在图中,相似的附图标记指代相同的图元素。
具体实施方式
以下描述被呈现来使得本领域的技术人员能够做出并使用实施例,并且是在特定应用及其要求的背景下提供的。对所公开的实施例的各种修改对于本领域的技术人员而言将是容易地显而易见的,并且在不脱离本公开的精神和范围的情况下,可以将本文所定义的一般原理应用于其他实施例和应用。因此,本文所描述的实施例不限于所示出的实施例,而是将符合与本文所公开的原理和特征一致的最宽范围。
概述
本文所描述的实施例提供通过扩展服务器的存储器容量来解决由服务器中的有限的存储器(例如,DRAM)产生的性能瓶颈的问题的系统。因为当前应用要求增加存储器的量,所以服务器存储器(例如,DRAM)的可用性和容量可显著地影响系统的整体性能和成本。有限的DRAM可在服务器的性能方面产生瓶颈,并且还可随着数据中心的规模继续增加而在降低TCO时导致挑战。
本文所描述的实施例通过操作服务器的驱动器的非易失性存储器(例如,NAND)来解决这些低效率。系统将NAND物理介质划分成单独的物理区以处理应用特定请求。系统还实现基于主机的闪存转换层(FTL)(例如,在用户空间中),所述基于主机的FTL将逻辑块地址(LBA)映射到物理块地址(PBA)(“LBA→PBA映射”),并且使用该映射来操作非易失性存储器,这扩展服务器的存储器容量。
为了处理传入读取请求,系统可检查转换检测缓冲器(TLB),并且如果需要,检查页面表,以确定所请求的数据是否是在DRAM中,并且直接地从DRAM中检索所请求的数据。如果在TLB或页面表中未找到所请求的数据,则系统可生成页面错误,并且用户空间FTL可确定与所请求的数据相对应的PBA(例如,针对所请求的数据基于LBA→PBA映射)。PBA与NAND物理介质的第一物理区相关联。用户空间FTL然后可将所请求的数据从第一物理区加载到DRAM。作为此过程的一部分,系统必须分配足够的DRAM空间以加载所请求的数据。如果在DRAM中不存在足够的空间,则系统可确定“冷”页面并将它们从DRAM移动到NAND以释放或者提供要将所请求的数据写入到的页面帧。在一些实施例中,系统还可确定“热”页面并将它们从NAND移动到DRAM。冷页面可以是具有小于预定阈值的访问历史的页面,然而热页面可以是具有大于预定阈值的访问历史的页面。此阈值可基于各种因素,例如,已在预定时间段内访问了页面的次数。
此外,如果系统确定要将冷页面从DRAM移动到NAND以便将所请求的数据加载到DRAM,则系统可将冷页面数据移动到NAND中的第二物理区。第二物理区与和读取请求相关联的第一物理区分开。通过使这些区保持分开,两个操作(从NAND中的PBA读取数据以及将冷页面数据从DRAM写入到NAND)可并行发生。
因此,本文所描述的实施例提供改进存储系统的效率和性能的系统。通过在用户空间中实现FTL并且通过将物理介质划分成应用特定区,系统允许用户空间FTL执行存储器扩展和页面转换功能性。单独的物理区允许系统与(将数据从DRAM中的冷页面移动到NAND的)写入操作并行处理(对位于非易失性存储器(例如,NAND)中的数据的)传入读请求,这释放DRAM空间以用于从NAND加载所请求的数据。因此,系统可避免由存储系统的服务器中的有限的DRAM容量所产生的瓶颈。
示例性环境和网络
图1图示依照本申请的实施例的有利于非易失性存储器的操作的示例性环境100。环境100可包括计算设备102和关联的用户104。计算设备102可经由网络110与存储服务器112、114和116进行通信,所述存储服务器112、114和116可以是分布式存储系统的一部分并且经由客户端服务器(未示出)访问。存储服务器可包括多个存储驱动器,并且每个驱动器可包括控制器和用于数据存储的多个物理介质。例如,服务器116可包括网络接口卡(NIC)122、CPU 124、DRAM DIMM 126以及分别具有控制器134、138、142和146的SSD 132、136、140和144。
驱动器可包括已被划分成单独的物理区的物理介质,这允许不同的物理区中的并发操作实现,并且消除在同一物理NAND裸片中占用等待并发操作的系统资源的需要。例如,SSD 140的SSD控制器142可包括主机接口152、基于设备的FTL模块154、数据恢复模块156、纠错(ECC)编解码器模块158、加密与循环冗余校验(CRC)模块160以及通道管理模块162。
SSD 140还可包括NAND裸片172、174和176,所述NAND裸片172、174和176各自与单独的且不同的物理区相关联。系统可确定将要对与将执行其他并发操作的区不同的区中的物理介质执行请求的读取操作(例如,如在下面关于用于将冷页面数据从DRAM移动到NAND的图5C所描述的)。系统还可确定将要对与正在处理正在进行的读取操作的区不同的区中的物理介质执行后续编程或擦除操作。
在操作期间,主机空间中的FTL模块可处理页面错误和页面交换(如在下面关于图3和图4所描述的),而不涉及SSD 140的基于设备的FTL154。主机接口152可与主机(例如,用户空间FTL)进行通信以获得具体PBA,并且通道管理162可发送要对其具体区中的具体PBA执行的命令。应用可被指派给具体区或者与具体区相关联。例如:应用A 171可与区1相关联,所述区1可包括NAND裸片172并且经由通信182被访问;应用B 173可与区2相关联,所述区2可包括NAND裸片174并且经由通信184被访问;并且应用X 175可与区3相关联,所述区3可包括NAND裸片176并且经由通信186被访问。因此,基于主机的FTL可使用LBA→PBA映射(即,给定PBA)来基于与给定PBA相关联的具体区直接地对物理介质进行操作。
图2A图示依照现有技术的示例性存储器分配。使用的存储器通过空白框(例如,使用的存储器240)来指示,而空闲或可用存储器通过对角条纹线(例如,空闲存储器242)来指示。存储器请求/分配通过粗线(例如,246)来指示。不同的应用(例如,应用202、204和206)可以对存储器发起请求,这可使系统在服务器的易失性存储器(例如,RAM 210)中分配一定量的存储器。当在易失性存储器中不再有足够的空间时,系统可在驱动器的非易失性存储器(例如,NAND闪存220)中分配存储器。例如,应用202可发送请求232,这导致存储器分配并且导致数据被存储在RAM 210中。应用204可发送请求234,这导致存储器分配并且导致一些数据被存储在RAM 210中以及来自应用204的数据的剩余部分被存储在NAND闪存220中(经由请求236)。应用206可发送请求238,这导致存储器分配并且导致来自应用206的所有数据被存储在NAND闪存220中。
然而,在将数据写入到SSD(例如,NAND闪存220的物理介质)时涉及的延迟可以是在将数据写入到DRAM(例如,RAM 210)时涉及的延迟的大致三到四倍。此外,因为SSD可能不和DRAM一样稳定,所以这可导致性能问题,其中一些I/O操作很可能经历显著更长的延迟,如在下面关于图2B所描述的。
图2B图示依照现有技术的描绘若干常规SSD的读取延迟分布的图表250。图表250包括服务质量(QoS)252(x轴)和时间254(y轴),并且遍及QoS指示时间(以毫秒为单位)。如图表250中所描绘的,每条线对应于常规SSD。长尾延迟对这些常规SSD中的每一个来说都存在,并且主要是由于同一物理NAND模块上的操作冲突而导致的。因此,在一个操作正在进行中的同时,不能对同一物理NAND介质模块并行执行另一操作。
用于有利于非易失性存储器的操作的示例性架构和环境中的通信
本文所描述的实施例提供解决在将数据写入到SSD时涉及的长延迟(如图2A和图2B中所示)的系统。系统在用户空间中实现FTL,并且还将SSD的物理介质(例如,非易失性存储器的NAND裸片)划分成单独的物理区。这允许一个物理区中的操作与单独的物理区中的另一操作并行发生。
图3图示依照现有技术的有利于非易失性存储器的操作的示例性架构300。架构300可包括CPU 302、转换检测缓冲器(TLB)304、页面表306、用户空间DRAM存储器310、用户空间闪存转换层(FTL)312和NAND320-330。在操作期间,CPU 302可接收指示要读取的数据的请求(经由例如通信340)。CPU 302可确定所请求的数据当前是否被存储在DRAM 310中(经由通信342)。系统可针对在DRAM 310中与所请求的数据相关联的现有PBA在TLB 304中执行第一次搜索(经由例如通信350)。如果TLB搜索成功,则系统可直接地从DRAM 310中检索数据(如通过TLB命中352通信所指示的)。如果TLB搜索不成功,则系统可针对在DRAM 310中与所请求的数据相关联的现有PBA在页面表306中执行第二次搜索(经由例如TLB未命中354通信)。如果页面表搜索成功,则系统可直接地从DRAM 310中检索数据(如通过页面命中356通信所指示的)。如果页面表搜索不成功,则系统可生成页面错误(经由例如通信358),并且从FTL 312请求数据。
FTL 312可直接地通过基于给定PBA与NAND 320-330进行通信来对NAND 320-330进行操作。例如,FTL 312可搜索其LBA→PBA映射以确定与所请求的数据相关联的物理块地址是NAND 320的一部分,该部分被指派给具体物理区(“第一物理区”)。
系统还可分配DRAM 310中的足够的空间(例如,可用或空闲页面帧),以经由FTL312从NAND 320加载所请求的数据。分配足够的空间可包括确定DRAM 310中的一个或更多个冷页面、将数据从冷页面移动到与第一物理区不同的物理区(“第二物理区”)、提供冷页面的页面帧以及将所请求的数据从NAND 320移动到DRAM 310中的可用页面帧(如在下面关于图5C所描述的)。因此,系统维护非易失性存储器的单独的物理区:在NAND 320上读取所请求数据的第一物理区;以及从DRAM 310加载冷页面数据的第二物理区,其中第二物理区是不包括NAND 320的区。通过将非易失性存储器划分成单独的物理区,系统可确保两个同时地发生的操作不会试图访问同一NAND裸片,从而减少冲突并且减小在等待并访问同一NAND裸片时涉及的延迟。
图4图示依照本申请的实施例的有利于非易失性存储器的操作的示例性环境400。环境400描绘可包括主机410(例如,用户空间)、控制器430(例如,SSD的)和介质440(例如,NAND闪存442)的系统层次。主机410可包括应用402、存储器扩展/交换转换模块404、基于主机的闪存转换层(LBA→PBA)406以及非易失性存储器快速(NVMe)驱动器408。控制器430可包括基于设备的闪存转换层432(用对角线示出以指示它未被使用)和基于设备的介质管理434。
在操作期间,存储器扩展/交换转换模块404和基于主机的FTL406可执行关于图3的用户空间FTL 312所描述的功能性,包括:在DRAM中搜索所请求的数据;以及,如果数据不在DRAM中但是在NAND中,则确定LBA→PBA映射,通过将冷页面移出到NAND来在DRAM中提供足够的空间,并且基于所确定的PBA将数据从NAND写入到DRAM。在一些实施例中,系统还可识别“热”页面并将它们从NAND移动到DRAM以得到更高效的访问以为后续I/O请求服务,这可改进系统的性能。
因此,环境400描绘系统如何可绕过基于设备的FTL 432(例如,经由可按需传递所确定的PBA的通信452),并且进一步使NAND闪存直接地暴露于主机410(例如,经由通信454)。注意的是,控制器430使用基于设备的介质管理434来确保介质440的寿命和高效使用。这使得本机SSD能够在绕过基于设备的FTL 432的同时适当地起作用。因此,具有存储器扩展功能性(406)的基于主机的FTL(404)使得系统能够直接地对所暴露的闪存介质进行管理和操作。
用于有利于非易失性存储器的操作的方法
图5A呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作的方法的流程图500。在操作期间,系统通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,其中,非易失性存储器被划分成单独的物理区,并且其中,物理块地址与第一物理区相关联(操作502)。单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据。系统通过将数据从易失性存储器中的冷页面写入到第二物理区来在易失性存储器中获得空闲页面帧,其中,冷页面是具有小于预定阈值的访问历史的页面(操作504)。系统基于物理地址将数据从非易失性存储器加载到空闲页面帧(操作506)。系统基于加载到空闲页面帧中的数据执行请求(操作508)。
图5B呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作的方法的流程图520。在操作期间,系统接收指示要读取的数据的第一请求(操作522)。系统针对在易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器(TLB)中执行第一次搜索(操作524)。如果TLB搜索成功(判定526)(即,指示TLB命中),则系统指向易失性存储器中的现有物理块地址(操作532)。如果TLB搜索不成功(判定526)(即,指示TLB未命中),则系统针对在易失性存储器中与所请求的数据相关联的现有物理块地址在页面表中执行第二次搜索(操作528)。如果页面表搜索不成功(判定530)(即,指示页面错误),则操作像图5C的标签A所描述的那样继续。如果页面表搜索成功(判定530)(即,指示页面命中),则系统指向易失性存储器中的现有物理块地址(操作532)。系统基于与易失性存储器中的物理块地址相关联的数据执行请求(操作534)。
图5C呈现依照本申请的实施例的图示用于有利于非易失性存储器的操作(包括将冷页面从易失性存储器移动到非易失性存储器)的方法的流程图550。在操作期间,系统通过闪存转换层模块确定与所请求的数据相关联的物理块地址(操作522),其中,非易失性存储器被划分成单独的物理区,并且其中,物理块地址与第一物理区相关联(操作552)。系统在易失性存储器中分配(例如,malloc)可用页面帧(操作554)。如果malloc操作成功(判定556),则系统基于物理块地址将数据从非易失性存储器的第一物理区加载到可用页面帧(操作566)。如果malloc操作不成功(判定556),则系统确定易失性存储器中的冷页面(操作558)。系统可确定易失性存储器中的一个或更多个冷页面。冷页面是具有小于预定阈值的访问历史的页面,所述预定阈值可基于已在预定时间段内访问了页面的次数。
系统将数据从冷页面写入到第二物理区(操作560)。第二物理区与第一物理区分开。系统将与冷页面相对应的页面帧标记为空闲的(操作562)。系统指派空闲页面帧以用于处理页面错误(操作564)(例如,用于处理操作556的不成功malloc)。系统基于物理块地址将数据从非易失性存储器的第一物理区加载到空闲页面帧(操作566)。系统基于加载到空闲页面帧中的数据执行请求(操作568,其与操作534类似)。
示例性计算机系统和装置
图6图示依照本申请的实施例的有利于非易失性存储器的操作的示例性计算机系统600。计算机系统600包括处理器602、存储器604和存储设备608。计算机系统600可以是计算设备或存储设备。易失性存储器604可包括用作受管理存储器的存储器(例如,RAM),并且可用于存储一个或更多个存储器池。非易失性存储器606可包括被用于持久存储的存储器(例如,NAND闪存)。此外,计算机系统600可联接到显示设备610、键盘612和指点设备614。存储设备608可存储操作系统616、内容处理系统618和数据632。
内容处理系统618可包括指令,所述指令当由计算机系统600执行时,可使计算机系统600执行本公开中描述的方法和/或过程。例如,内容处理系统618可包括用于接收并发送数据分组(包括写入或者读取数据的请求、要编码并存储的数据或数据的块或页面)的指令。
内容处理系统618可进一步包括用于通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址的指令(PBA管理模块622)。内容处理系统618可包括用于通过将数据从易失性存储器中的冷页面写入到第二物理区来在易失性存储器中获得空闲页面帧的指令(易失性存储器管理模块628)。内容处理系统618还可包括用于基于物理块地址将数据从非易失性存储器加载到空闲页面帧的指令(通信模块620)。内容处理系统618可包括用于基于加载到空闲页面帧中的数据执行请求的指令(请求执行模块630)。
内容处理系统618可附加地包括用于将非易失性存储器划分成单独的物理区的指令(区划分模块626)。内容处理系统618可包括用于针对现有PBA在TLB中执行第一次搜索并且针对现有PBA在页面表中执行第二次搜索的指令(易失性存储器管理模块628)。内容处理系统618还可包括用于确定易失性存储器中的一个或更多个冷页面的指令(页面状态确定模块624)。
内容处理系统618可进一步包括用于确定非易失性存储器中的一个或更多个热页面的指令(页面状态确定模块624),以及用于基于非易失性存储器中的热页面的物理块地址将数据从非易失性存储器加载到易失性存储器的指令(通信模块620)。内容处理系统618还可包括用于通过闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址的指令(PBA管理模块622)。
数据632可包括被需求作为输入或者通过本公开中描述的方法和/或过程被生成为输出的任何数据。具体地,数据632可存储至少:要存储、写入、加载、移动、检索或者复制的数据;数据的块;请求;指示要读取或者写入的数据的请求;逻辑块地址(LBA);物理块地址(PBA);页面或页面帧的状态的指示器;物理区;物理区的指示器;转换检测缓冲器;页面表;用户空间中的FTL;冷页面;热页面;预定阈值;预定时间段;以及已在预定时间段内访问了页面的次数。
图7图示依照本申请的实施例的有利于非易失性存储器的操作的示例性装置700。装置700可包括可以经由有线、无线、量子光或电通信信道彼此进行通信的多个单元或装置。装置700可以使用一个或更多个集成电路来实现,并且可以包括比图7中所示出的那些单元或装置更少或更多的单元或装置。进一步地,装置700可以被集成在计算机系统中,或者作为能够与其他计算机系统和/或设备进行通信的单独的装置被实现。具体地,装置700可包括执行与图7的计算机系统700的模块620-630类似的功能或操作的单元702-712,包括:通信单元802;PBA管理单元804;页面状态确定单元706;区划分单元708;易失性存储器管理单元710;以及请求执行单元712。
在此详细描述中描述的数据结构和代码通常被存储在计算机可读存储介质上,所述计算机可读存储介质可以是可存储代码和/或数据以供由计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、诸如磁盘驱动器、磁带、CD(紧致盘)、DVD(数字通用盘或数字视频盘)的磁和光学存储设备,或能够存储现在已知或以后开发的计算机可读介质的其他介质。
可将在具体实施方式部分中描述的方法和过程具体实现为代码和/或数据,所述代码和/或数据可被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行被具体实现为数据结构和代码并且存储在计算机可读存储介质内的方法和过程。
此外,上述的方法和过程可被包括在硬件模块中。例如,硬件模块可包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)以及现在已知或以后开发的其他可编程逻辑器件。当硬件模块被激活时,硬件模块将执行包括在硬件模块内的方法和过程。
已经出于图示和描述的目的呈现了本文所描述的前面的实施例。它们不旨在为详尽的或者将本文所描述的实施例限于所公开的形式。因此,许多修改和变化对于本领域的技术人员而言将是显而易见的。附加地,以上公开内容不旨在限制本文所描述的实施例。本文所描述的实施例的范围由所附权利要求来限定。

Claims (18)

1.一种用于有利于非易失性存储器的操作的计算机实现的方法,所述方法包括以下步骤:
通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,
其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且其中,所述单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据;
其中,响应于在易失性存储器中未成功地分配可用页面帧,通过将数据从所述易失性存储器中的冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧;其中,所述第二物理区与所述第一物理区分开,所述冷页面是具有小于预定阈值的访问历史的页面;基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧。
2.根据权利要求1所述的方法,该方法进一步包括以下步骤:
将所述非易失性存储器划分成所述单独的物理区,
其中,单独的物理区包括一个或更多个NAND裸片,并且
其中,应用对应于唯一的物理区。
3.根据权利要求1所述的方法,该方法进一步包括以下步骤:
通过所述闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址,
其中,所述另一物理块地址与当前不在处理读取操作或擦除操作的第三物理区相关联。
4.根据权利要求1所述的方法,其中,所述方法响应于以下各项而被执行:
针对在所述易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器中执行不成功的第一次搜索;以及
针对所述现有物理块地址在页面表中执行不成功的第二次搜索。
5.根据权利要求4所述的方法,其中,响应于在所述转换检测缓冲器中执行成功的第一次搜索,或者
响应于在所述转换检测缓冲器中执行不成功的第一次搜索并且在所述页面表中执行成功的第二次搜索,所述方法进一步包括以下步骤:
基于与所述易失性存储器中的所述现有物理块地址相关联的数据执行所述请求。
6.根据权利要求1所述的方法,其中,在所述易失性存储器中获得空闲页面帧是响应于在所述易失性存储器中成功地分配可用页面帧。
7.根据权利要求1所述的方法,该方法进一步包括以下步骤:
确定易失性存储器中的冷页面,其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;
基于加载到所述空闲页面帧中的所述数据执行所述请求。
8.根据权利要求1所述的方法,该方法进一步包括以下步骤:
确定易失性存储器中的热页面,其中,所述热页面是具有大于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;以及
基于所述非易失性存储器中的所述热页面的物理块地址,将数据从所述非易失性存储器加载到所述易失性存储器。
9.根据权利要求1所述的方法,其中,所述闪存转换层模块在用户空间中操作。
10.一种用于有利于非易失性存储器操作的计算机系统,所述系统包括:
处理器;以及
存储器,所述存储器联接到所述处理器并存储指令,当由所述处理器执行所述指令时使所述处理器执行方法,所述方法包括以下步骤:
通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,
其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且其中,所述单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据;
其中,响应于在易失性存储器中未成功地分配可用页面帧,通过将数据从所述易失性存储器中的冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧;其中,所述第二物理区与所述第一物理区分开,所述冷页面是具有小于预定阈值的访问历史的页面;基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧。
11.根据权利要求10所述的计算机系统,其中,所述方法进一步包括以下步骤:
将所述非易失性存储器划分成所述单独的物理区,
其中,单独的物理区包括一个或更多个NAND裸片,并且
其中,应用对应于唯一的物理区。
12.根据权利要求10所述的计算机系统,其中,所述方法进一步包括以下步骤:
通过所述闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址,
其中,所述另一物理块地址与当前不在处理读取操作或擦除操作的第三物理区相关联。
13.根据权利要求10所述的计算机系统,其中,所述方法响应于以下各项而被执行:
针对在所述易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器中执行不成功的第一次搜索;以及
针对所述现有物理块地址在页面表中执行不成功的第二次搜索。
14.根据权利要求13所述的计算机系统,其中,响应于在所述转换检测缓冲器中执行成功的第一次搜索,或者
响应于在所述转换检测缓冲器中执行不成功的第一次搜索并且在所述页面表中执行成功的第二次搜索,所述方法进一步包括以下步骤:
基于与所述易失性存储器中的所述现有物理块地址相关联的数据执行所述请求。
15.根据权利要求10所述的计算机系统,其中,在所述易失性存储器中获得空闲页面帧是响应于在所述易失性存储器中成功地分配可用页面帧。
16.根据权利要求10所述的计算机系统,其中,所述方法进一步包括以下步骤:
确定易失性存储器中的冷页面,其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;
基于加载到所述空闲页面帧中的所述数据执行所述请求。
17.根据权利要求10所述的计算机系统,其中,所述方法进一步包括以下步骤:
确定易失性存储器中的热页面,其中,所述热页面是具有大于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;以及
基于所述非易失性存储器中的所述热页面的物理块地址,将数据从所述非易失性存储器加载到所述易失性存储器。
18.根据权利要求10所述的计算机系统,其中,所述闪存转换层模块在用户空间中操作。
CN201910011946.0A 2018-02-07 2019-01-07 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 Active CN110119245B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/891,174 2018-02-07
US15/891,174 US10891239B2 (en) 2018-02-07 2018-02-07 Method and system for operating NAND flash physical space to extend memory capacity

Publications (2)

Publication Number Publication Date
CN110119245A CN110119245A (zh) 2019-08-13
CN110119245B true CN110119245B (zh) 2023-04-25

Family

ID=67476829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910011946.0A Active CN110119245B (zh) 2018-02-07 2019-01-07 用于操作nand闪存物理空间以扩展存储器容量的方法和系统

Country Status (2)

Country Link
US (1) US10891239B2 (zh)
CN (1) CN110119245B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269698B2 (en) * 2018-10-04 2022-03-08 Google Llc User interface systems and methods for a wearable computing device
US11221802B2 (en) * 2020-06-10 2022-01-11 Western Digital Technologies, Inc. Zone allocation for data storage device based on zone reset behavior

Family Cites Families (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
JPH0618634A (ja) 1992-07-03 1994-01-28 Nec Corp 半導体記憶回路
EP0681721B1 (en) 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archiving file system for data servers in a distributed network environment
US6148377A (en) 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
US7966462B2 (en) 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
WO2001040903A2 (en) 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6981005B1 (en) 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US7228441B2 (en) 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US6694451B2 (en) 2000-12-07 2004-02-17 Hewlett-Packard Development Company, L.P. Method for redundant suspend to RAM
US20020161890A1 (en) 2000-12-22 2002-10-31 Kailai Chen System and method for intelligently distributing content over a communicatons network
JP2003022209A (ja) 2001-07-05 2003-01-24 Nri & Ncc Co Ltd 分散サーバーシステム
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US20030163633A1 (en) 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
US6988165B2 (en) 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7487264B2 (en) 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7003620B2 (en) 2002-11-26 2006-02-21 M-Systems Flash Disk Pioneers Ltd. Appliance, including a flash memory, that is robust under power failure
KR100992177B1 (ko) 2003-05-07 2010-11-04 모사이드 테크놀로지스 코포레이션 파워 아일랜드를 사용한 집적 회로의 파워 관리
US20050038954A1 (en) 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7051215B2 (en) 2003-06-13 2006-05-23 Intel Corporation Power management for clustered computing platforms
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
JP4371739B2 (ja) 2003-09-02 2009-11-25 株式会社東芝 シリアルataインタフェースを持つ電子機器及びシリアルataバスのパワーセーブ方法
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7676603B2 (en) 2004-04-20 2010-03-09 Intel Corporation Write combining protocol between processors and chipsets
US7490239B2 (en) 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US8260924B2 (en) 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
JP5431148B2 (ja) 2006-05-31 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ用論理データオブジェクトの変換方法およびシステム
US7711890B2 (en) 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US8132030B2 (en) 2006-06-27 2012-03-06 Koninklijke Philips Electronics N.V. Device and a method for managing power consumption of a plurality of data processing units
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
KR100858241B1 (ko) 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
US8344475B2 (en) 2006-11-29 2013-01-01 Rambus Inc. Integrated circuit heating to effect in-situ annealing
US7958433B1 (en) 2006-11-30 2011-06-07 Marvell International Ltd. Methods and systems for storing data in memory using zoning
US7852654B2 (en) 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
IL187041A0 (en) 2007-10-30 2008-02-09 Sandisk Il Ltd Optimized hierarchical integrity protection for stored data
US8281061B2 (en) 2008-03-31 2012-10-02 Micron Technology, Inc. Data conditioning to improve flash memory reliability
KR101497074B1 (ko) 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8954654B2 (en) 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9547589B2 (en) 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
JP2010152704A (ja) 2008-12-25 2010-07-08 Hitachi Ltd 計算機システムの運用管理システム及び管理方法
CN101889313B (zh) 2008-12-30 2014-12-03 E·孔法洛涅里 具有扩展工作温度范围的非易失性存储器
EP2396742A2 (en) 2009-02-10 2011-12-21 Uniloc Usa, Inc. Web content access using a client device identifier
US20100217952A1 (en) 2009-02-26 2010-08-26 Iyer Rahul N Remapping of Data Addresses for a Large Capacity Victim Cache
US8166233B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
US8918365B2 (en) 2009-06-19 2014-12-23 Blekko, Inc. Dedicating disks to reading or writing
US8996812B2 (en) 2009-06-19 2015-03-31 International Business Machines Corporation Write-back coherency data cache for resolving read/write conflicts
US20110055471A1 (en) 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US9390035B2 (en) 2009-12-21 2016-07-12 Sanmina-Sci Corporation Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
TWI409633B (zh) 2010-02-04 2013-09-21 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與資料寫入方法
JP5598017B2 (ja) 2010-02-24 2014-10-01 富士通株式会社 判定プログラム、方法及び装置
US8370297B2 (en) 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
JP2011198133A (ja) 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
JP4886877B2 (ja) 2010-05-31 2012-02-29 株式会社東芝 記録媒体制御装置、及びその方法
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US20120017039A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8938624B2 (en) 2010-09-15 2015-01-20 Lsi Corporation Encryption key destruction for secure data erasure
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US8516284B2 (en) 2010-11-04 2013-08-20 International Business Machines Corporation Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint
US9176794B2 (en) 2010-12-13 2015-11-03 Advanced Micro Devices, Inc. Graphics compute process scheduling
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US8826098B2 (en) 2010-12-20 2014-09-02 Lsi Corporation Data signatures to determine successful completion of memory backup
US9612978B2 (en) 2010-12-31 2017-04-04 International Business Machines Corporation Encrypted flash-based data storage system with confidentiality mode
US9251087B2 (en) * 2011-02-11 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for virtual memory management
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8452819B1 (en) 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
KR101717081B1 (ko) 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
US20180107591A1 (en) 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US8832402B2 (en) 2011-04-29 2014-09-09 Seagate Technology Llc Self-initiated secure erasure responsive to an unauthorized power down event
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
KR101257691B1 (ko) * 2011-08-12 2013-04-24 아주대학교산학협력단 메모리 컨트롤러 및 이의 데이터 관리방법
US8904158B2 (en) 2011-09-02 2014-12-02 Lsi Corporation Storage system with boot appliance for improving reliability/availability/serviceability in high density server environments
KR20130031046A (ko) 2011-09-20 2013-03-28 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 데이터 관리 방법
US8843451B2 (en) 2011-09-23 2014-09-23 International Business Machines Corporation Block level backup and restore
KR20130064518A (ko) 2011-12-08 2013-06-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9088300B1 (en) 2011-12-15 2015-07-21 Marvell International Ltd. Cyclic redundancy check for out-of-order codewords
US9213645B2 (en) 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
US9043545B2 (en) 2012-01-06 2015-05-26 Netapp, Inc. Distributing capacity slices across storage system nodes
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US8880815B2 (en) 2012-02-20 2014-11-04 Avago Technologies General Ip (Singapore) Pte. Ltd. Low access time indirect memory accesses
US9645917B2 (en) 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9092223B1 (en) 2012-05-31 2015-07-28 Google Inc. Systems and methods to save power in data-center networks
US9208820B2 (en) 2012-06-29 2015-12-08 International Business Machines Corporation Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems
US20140019650A1 (en) 2012-07-10 2014-01-16 Zhi Bin Li Multi-Write Bit-Fill FIFO
US9009402B2 (en) 2012-09-20 2015-04-14 Emc Corporation Content addressable storage in legacy systems
US8756237B2 (en) 2012-10-12 2014-06-17 Architecture Technology Corporation Scalable distributed processing of RDF data
US9405621B2 (en) 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9141554B1 (en) 2013-01-18 2015-09-22 Cisco Technology, Inc. Methods and apparatus for data processing using data compression, linked lists and de-duplication techniques
US9432755B2 (en) 2013-02-15 2016-08-30 Futurewei Technologies, Inc. Downstream burst transmission in passive optical networks
US8984171B2 (en) 2013-03-01 2015-03-17 Silicon Motion, Inc. Data storage device and flash memory control method
KR20140112303A (ko) * 2013-03-13 2014-09-23 삼성전자주식회사 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
US8751763B1 (en) 2013-03-13 2014-06-10 Nimbus Data Systems, Inc. Low-overhead deduplication within a block-based data storage
US9280472B1 (en) 2013-03-13 2016-03-08 Western Digital Technologies, Inc. Caching data in a high performance zone of a data storage system
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9195673B2 (en) 2013-03-15 2015-11-24 International Business Machines Corporation Scalable graph modeling of metadata for deduplicated storage systems
US9436595B1 (en) 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
US20140304452A1 (en) 2013-04-03 2014-10-09 Violin Memory Inc. Method for increasing storage media performance
KR101478168B1 (ko) 2013-04-17 2014-12-31 주식회사 디에이아이오 스토리지 시스템 및 스토리지 시스템의 쓰기 데이터 처리 방법
US9183103B2 (en) 2013-05-31 2015-11-10 Vmware, Inc. Lightweight remote replication of a local write-back cache
US9785545B2 (en) 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
US20150052326A1 (en) * 2013-08-19 2015-02-19 International Business Machines Corporation User-controlled paging
DE112013007263T5 (de) 2013-09-19 2016-04-07 Intel Corporation Techniken zur Zuweisung von Task-Anteilen bei verteilter Verarbeitung
US20160232103A1 (en) 2013-09-26 2016-08-11 Mark A. Schmisseur Block storage apertures to persistent memory
US9251154B2 (en) 2013-11-15 2016-02-02 International Business Machines Corporation Priority based reliability mechanism for archived data
US9619155B2 (en) * 2014-02-07 2017-04-11 Coho Data Inc. Methods, systems and devices relating to data storage interfaces for managing data address spaces in data storage devices
US20150301964A1 (en) 2014-02-18 2015-10-22 Alistair Mark Brinicombe Methods and systems of multi-memory, control and data plane architecture
US9880859B2 (en) 2014-03-26 2018-01-30 Intel Corporation Boot image discovery and delivery
GB2527296A (en) 2014-06-16 2015-12-23 Ibm A method for restoring data in a HSM system
US9240722B2 (en) 2014-06-19 2016-01-19 Dell Products Lp Methods and systems for improving light load efficiency for power stages of multi-phase voltage regulator circuits
US10044795B2 (en) 2014-07-11 2018-08-07 Vmware Inc. Methods and apparatus for rack deployments for virtual computing environments
US9542327B2 (en) 2014-07-22 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective mirroring in caches for logical volumes
US9588977B1 (en) 2014-09-30 2017-03-07 EMC IP Holding Company LLC Data and metadata structures for use in tiering data to cloud storage
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9710330B2 (en) 2014-10-15 2017-07-18 Empire Technology Development Llc Partial cloud data storage
US10013169B2 (en) 2014-12-19 2018-07-03 International Business Machines Corporation Cooperative data deduplication in a solid state storage array
US20160179399A1 (en) 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
US10282211B2 (en) 2015-01-09 2019-05-07 Avago Technologies International Sales Pte. Limited Operating system software install and boot up from a storage area network device
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9734051B2 (en) 2015-02-16 2017-08-15 Quantum Corporation Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
KR101927233B1 (ko) 2015-03-16 2018-12-12 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
US9911487B2 (en) 2015-05-19 2018-03-06 EMC IP Holding Company LLC Method and system for storing and recovering data from flash memory
US10069916B2 (en) 2015-05-26 2018-09-04 Gluent, Inc. System and method for transparent context aware filtering of data requests
US20160350002A1 (en) 2015-05-29 2016-12-01 Intel Corporation Memory device specific self refresh entry and exit
US9696931B2 (en) 2015-06-12 2017-07-04 International Business Machines Corporation Region-based storage for volume data and metadata
CN106326133B (zh) * 2015-06-29 2020-06-16 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
US9588571B2 (en) 2015-07-08 2017-03-07 Quanta Computer Inc. Dynamic power supply management
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10324832B2 (en) 2016-05-25 2019-06-18 Samsung Electronics Co., Ltd. Address based multi-stream storage device access
US9529601B1 (en) 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
US10749858B2 (en) 2015-09-04 2020-08-18 Hewlett Packard Enterprise Development Lp Secure login information
US9952769B2 (en) * 2015-09-14 2018-04-24 Microsoft Technology Licensing, Llc. Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device
KR20170045806A (ko) 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
CN106682005A (zh) * 2015-11-05 2017-05-17 华为技术有限公司 一种确定数据库热页面的方法及装置
US20170147499A1 (en) * 2015-11-25 2017-05-25 Sandisk Technologies Llc Multi-Level Logical to Physical Address Mapping Using Distributed Processors in Non-Volatile Storage Device
US20170162235A1 (en) * 2015-12-02 2017-06-08 Qualcomm Incorporated System and method for memory management using dynamic partial channel interleaving
US20170161202A1 (en) 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Flash memory device including address mapping for deduplication, and related methods
US9965441B2 (en) 2015-12-10 2018-05-08 Cisco Technology, Inc. Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics
US10649681B2 (en) 2016-01-25 2020-05-12 Samsung Electronics Co., Ltd. Dynamic garbage collection P/E policies for redundant storage blocks and distributed software stacks
US10235198B2 (en) * 2016-02-24 2019-03-19 Samsung Electronics Co., Ltd. VM-aware FTL design for SR-IOV NVME SSD
US20170249162A1 (en) 2016-02-25 2017-08-31 Red Hat Israel, Ltd. Safe transmit packet processing for network function virtualization applications
US10101939B2 (en) 2016-03-09 2018-10-16 Toshiba Memory Corporation Storage system having a host that manages physical data locations of a storage device
US20170286311A1 (en) 2016-04-01 2017-10-05 Dale J. Juenemann Repetitive address indirection in a memory
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
US10389839B2 (en) 2016-06-01 2019-08-20 Intel Corporation Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
US10514862B2 (en) 2016-07-21 2019-12-24 Micron Technology, Inc. Memory device including concurrent suspend states for different operations
US10684795B2 (en) 2016-07-25 2020-06-16 Toshiba Memory Corporation Storage device and storage control method
JP6274589B1 (ja) 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
US11644992B2 (en) 2016-11-23 2023-05-09 Samsung Electronics Co., Ltd. Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US10496544B2 (en) 2016-12-29 2019-12-03 Intel Corporation Aggregated write back in a direct mapped two level memory
US10516760B2 (en) 2017-03-17 2019-12-24 Verizon Patent And Licensing Inc. Automatic bootstrapping and dynamic configuration of data center nodes
US10275170B2 (en) 2017-04-10 2019-04-30 Sandisk Technologies Llc Folding operations in memory systems with single address updates
TWI625620B (zh) 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10474397B2 (en) 2017-06-13 2019-11-12 Western Digital Technologies, Inc Unified indirection in a multi-device hybrid storage unit
US10275162B2 (en) 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
CN109213695B (zh) * 2017-06-30 2023-07-21 伊姆西Ip控股有限责任公司 缓存管理方法、存储系统以及计算机程序产品
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
TWI631570B (zh) 2017-09-04 2018-08-01 威盛電子股份有限公司 錯誤檢查糾正解碼方法與裝置
US10229735B1 (en) 2017-12-22 2019-03-12 Intel Corporation Block management for dynamic single-level cell buffers in storage devices
US10606693B2 (en) 2017-12-28 2020-03-31 Micron Technology, Inc. Memory controller implemented error correction code memory

Also Published As

Publication number Publication date
US20190243779A1 (en) 2019-08-08
CN110119245A (zh) 2019-08-13
US10891239B2 (en) 2021-01-12

Similar Documents

Publication Publication Date Title
US11467955B2 (en) Memory system and method for controlling nonvolatile memory
US10198215B2 (en) System and method for multi-stream data write
US9563382B2 (en) Methods, systems, and computer readable media for providing flexible host memory buffer
US9858015B2 (en) Solid-state storage management
US8984219B2 (en) Data storage device and method of writing data in the same
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
CN114402282B (zh) 存取存储的元数据以识别存储数据的存储器装置
CN112823331B (zh) 用于具有较细粒度的并行多租户ssd中的数据恢复的系统和方法
KR20240049262A (ko) 메모리 시스템 및 이의 동작 방법
US20160253257A1 (en) Data processing system and operating method thereof
US11372564B2 (en) Apparatus and method for dynamically allocating data paths in response to resource usage in data processing system
US10769074B2 (en) Computer memory content movement
JP2021033849A (ja) メモリシステムおよび制御方法
CN114372007A (zh) 存储器系统及控制非易失性存储器的控制方法
JP2019133391A (ja) メモリシステムおよび制御方法
CN110908594A (zh) 存储器系统的操作方法和存储器系统
CN112053730A (zh) 用于存储器子系统的冗余云存储器存储装置
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
JP6339645B2 (ja) メモリデバイスおよび方法
TWI786288B (zh) 儲存裝置、儲存裝置的控制方法及記錄媒體
US11422931B2 (en) Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11797183B1 (en) Host assisted application grouping for efficient utilization of device resources
US11698739B2 (en) Memory system and operating method thereof
EP4287028A1 (en) Storage device providing high purge performance and memory block management method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant