CN110119245A - 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 - Google Patents
用于操作nand闪存物理空间以扩展存储器容量的方法和系统 Download PDFInfo
- Publication number
- CN110119245A CN110119245A CN201910011946.0A CN201910011946A CN110119245A CN 110119245 A CN110119245 A CN 110119245A CN 201910011946 A CN201910011946 A CN 201910011946A CN 110119245 A CN110119245 A CN 110119245A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- volatile memory
- block address
- memory
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/684—TLB miss handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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
本申请要求于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 (20)
1.一种用于有利于非易失性存储器的操作的计算机实现的方法,所述方法包括以下步骤:
通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,
其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且其中,所述单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据。
2.根据权利要求1所述的方法,该方法进一步包括以下步骤:
将所述非易失性存储器划分成所述单独的物理区,
其中,单独的物理区包括一个或更多个NAND裸片,并且
其中,应用对应于唯一的物理区。
3.根据权利要求1所述的方法,该方法进一步包括以下步骤:
通过所述闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址,
其中,所述另一物理块地址与当前不在处理读取操作或擦除操作的第三物理区相关联。
4.根据权利要求1所述的方法,其中,所述方法响应于以下各项而被执行:
针对在所述易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器中执行不成功的第一次搜索;以及
针对所述现有物理块地址在页面表中执行不成功的第二次搜索。
5.根据权利要求4所述的方法,其中,响应于在所述转换检测缓冲器中执行成功的第一次搜索,或者
响应于在所述转换检测缓冲器中执行不成功的第一次搜索并且在所述页面表中执行成功的第二次搜索,所述方法进一步包括以下步骤:
基于与所述易失性存储器中的所述现有物理块地址相关联的数据执行所述请求。
6.根据权利要求1所述的方法,其中,在所述易失性存储器中获得空闲页面帧是响应于在所述易失性存储器中成功地分配可用页面帧。
7.根据权利要求1所述的方法,其中,获得空闲页面帧并且将所述数据从所述非易失性存储器加载到所述空闲页面帧是响应于在所述易失性存储器中未成功地分配可用页面帧。
8.根据权利要求1所述的方法,该方法进一步包括以下步骤:
确定易失性存储器中的冷页面,其中,所述冷页面是具有小于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;
通过将数据从所述易失性存储器中的所述冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧;
基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧;以及
基于加载到所述空闲页面帧中的所述数据执行所述请求。
9.根据权利要求1所述的方法,该方法进一步包括以下步骤:
确定易失性存储器中的热页面,其中,所述热页面是具有大于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;以及
基于所述非易失性存储器中的所述热页面的物理块地址,将数据从所述非易失性存储器加载到所述易失性存储器。
10.根据权利要求1所述的方法,其中,所述闪存转换层模块在用户空间中操作。
11.一种用于有利于非易失性存储器操作的计算机系统,所述系统包括:
处理器;以及
存储器,所述存储器联接到所述处理器并存储指令,当由所述处理器执行所述指令时使所述处理器执行方法,所述方法包括以下步骤:
通过闪存转换层模块确定与指示要读取的数据的第一请求相关联的物理块地址,
其中,所述非易失性存储器被划分成单独的物理区,其中,所述物理块地址与第一物理区相关联,并且其中,所述单独的物理区中的每一个均具有专用应用来读取数据或者向其写入数据。
12.根据权利要求11所述的计算机系统,其中,所述方法进一步包括以下步骤:
将所述非易失性存储器划分成所述单独的物理区,
其中,单独的物理区包括一个或更多个NAND裸片,并且
其中,应用对应于唯一的物理区。
13.根据权利要求11所述的计算机系统,其中,所述方法进一步包括以下步骤:
通过所述闪存转换层模块确定与指示要写入的数据的第二请求相关联的另一物理块地址,
其中,所述另一物理块地址与当前不在处理读取操作或擦除操作的第三物理区相关联。
14.根据权利要求11所述的计算机系统,其中,所述方法响应于以下各项而被执行:
针对在所述易失性存储器中与所请求的数据相关联的现有物理块地址在转换检测缓冲器中执行不成功的第一次搜索;以及
针对所述现有物理块地址在页面表中执行不成功的第二次搜索。
15.根据权利要求14所述的计算机系统,其中,响应于在所述转换检测缓冲器中执行成功的第一次搜索,或者
响应于在所述转换检测缓冲器中执行不成功的第一次搜索并且在所述页面表中执行成功的第二次搜索,所述方法进一步包括以下步骤:
基于与所述易失性存储器中的所述现有物理块地址相关联的数据执行所述请求。
16.根据权利要求11所述的计算机系统,其中,在所述易失性存储器中获得空闲页面帧是响应于在所述易失性存储器中成功地分配可用页面帧。
17.根据权利要求11所述的计算机系统,其中,获得空闲页面帧并且将所述数据从所述非易失性存储器加载到所述空闲页面帧是响应于在所述易失性存储器中未成功地分配可用页面帧。
18.根据权利要求11所述的计算机系统,其中,所述方法进一步包括以下步骤:
确定易失性存储器中的冷页面,其中,所述冷页面是具有小于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;
通过将数据从所述易失性存储器中的所述冷页面写入到第二物理区来在所述易失性存储器中获得空闲页面帧;
基于所述物理块地址将数据从所述非易失性存储器加载到所述空闲页面帧;以及
基于加载到所述空闲页面帧中的所述数据执行所述请求。
19.根据权利要求11所述的计算机系统,其中,所述方法进一步包括以下步骤:
确定易失性存储器中的热页面,其中,所述热页面是具有大于预定阈值的访问历史的页面,并且其中,所述预定阈值是基于已在预定时间段内访问了所述页面的次数;以及
基于所述非易失性存储器中的所述热页面的物理块地址,将数据从所述非易失性存储器加载到所述易失性存储器。
20.根据权利要求11所述的计算机系统,其中,所述闪存转换层模块在用户空间中操作。
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 true CN110119245A (zh) | 2019-08-13 |
CN110119245B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778327A (zh) * | 2020-06-10 | 2021-12-10 | 西部数据技术公司 | 基于区复位行为的数据存储设备的区分配 |
Families Citing this family (2)
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 |
US20220278963A1 (en) * | 2021-03-01 | 2022-09-01 | Samsung Electronics Co., Ltd. | Storage device, storage system, and method of secure data movement between storage devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095827A1 (en) * | 2011-05-24 | 2014-04-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
US20140164687A1 (en) * | 2011-08-12 | 2014-06-12 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
US20140281172A1 (en) * | 2013-03-13 | 2014-09-18 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, electronic device and computing system including the same |
US20150052326A1 (en) * | 2013-08-19 | 2015-02-19 | International Business Machines Corporation | User-controlled paging |
US20170162235A1 (en) * | 2015-12-02 | 2017-06-08 | Qualcomm Incorporated | System and method for memory management using dynamic partial channel interleaving |
CN107122314A (zh) * | 2016-02-24 | 2017-09-01 | 三星电子株式会社 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Family Cites Families (168)
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 |
US20040010612A1 (en) | 2002-06-11 | 2004-01-15 | Pandya Ashish A. | High performance IP processor using RDMA |
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 |
EP3321769A1 (en) | 2003-05-07 | 2018-05-16 | Conversant Intellectual Property Management Inc. | Managing power on integrated circuits using power islands |
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 | 半導体記憶装置 |
WO2007138601A2 (en) | 2006-05-31 | 2007-12-06 | Storwize Ltd. | Method and system for transformation of logical data objects for storage |
US7711890B2 (en) | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
WO2008007273A2 (en) | 2006-06-27 | 2008-01-17 | Koninklijke Philips Electronics N.V. | A 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 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법 |
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 |
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 |
JP2010152704A (ja) | 2008-12-25 | 2010-07-08 | Hitachi Ltd | 計算機システムの運用管理システム及び管理方法 |
WO2010076828A1 (en) | 2008-12-30 | 2010-07-08 | Emanuele Confalonieri | Non-volatile memory with extended operating temperature range |
WO2010093683A2 (en) | 2009-02-10 | 2010-08-19 | 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 |
WO2012109679A2 (en) * | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for application direct 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 |
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 |
US9280472B1 (en) | 2013-03-13 | 2016-03-08 | Western Digital Technologies, Inc. | Caching data in a high performance zone of a data storage system |
US8751763B1 (en) | 2013-03-13 | 2014-06-10 | Nimbus Data Systems, Inc. | Low-overhead deduplication within a block-based data storage |
US9195673B2 (en) | 2013-03-15 | 2015-11-24 | International Business Machines Corporation | Scalable graph modeling of metadata for deduplicated storage systems |
KR102039537B1 (ko) | 2013-03-15 | 2019-11-01 | 삼성전자주식회사 | 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법 |
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 |
US10073626B2 (en) | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
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 |
WO2015039320A1 (en) | 2013-09-19 | 2015-03-26 | Intel Corporation | Techniques for distributed processing task portion assignment |
EP3049944B1 (en) | 2013-09-26 | 2022-01-12 | Intel Corporation | 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 |
CA2881206A1 (en) * | 2014-02-07 | 2015-08-07 | Andrew WARFIELD | Methods, systems and devices relating to data storage interfaces for managing 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 |
WO2016191620A1 (en) | 2015-05-26 | 2016-12-01 | 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 |
WO2017039702A1 (en) | 2015-09-04 | 2017-03-09 | Hewlett Packard Enterprise Development Lp | Secure login information |
US10120573B2 (en) * | 2015-09-14 | 2018-11-06 | Microsoft Technology Licensing, Llc. | Modular sequential writing of data to data storage devices |
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 |
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 |
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 |
-
2018
- 2018-02-07 US US15/891,174 patent/US10891239B2/en active Active
-
2019
- 2019-01-07 CN CN201910011946.0A patent/CN110119245B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140095827A1 (en) * | 2011-05-24 | 2014-04-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
US20140164687A1 (en) * | 2011-08-12 | 2014-06-12 | Ajou University Industry-Academic Cooperation Foundation | Memory controller and data management method thereof |
US20140281172A1 (en) * | 2013-03-13 | 2014-09-18 | Samsung Electronics Co., Ltd. | Nonvolatile memory device, electronic device and computing system including the same |
US20150052326A1 (en) * | 2013-08-19 | 2015-02-19 | International Business Machines Corporation | User-controlled paging |
US20170162235A1 (en) * | 2015-12-02 | 2017-06-08 | Qualcomm Incorporated | System and method for memory management using dynamic partial channel interleaving |
CN107122314A (zh) * | 2016-02-24 | 2017-09-01 | 三星电子株式会社 | 大容量存储器装置、包括其的系统以及访问其的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113778327A (zh) * | 2020-06-10 | 2021-12-10 | 西部数据技术公司 | 基于区复位行为的数据存储设备的区分配 |
CN113778327B (zh) * | 2020-06-10 | 2024-06-07 | 西部数据技术公司 | 基于区复位行为的数据存储设备的区分配 |
Also Published As
Publication number | Publication date |
---|---|
CN110119245B (zh) | 2023-04-25 |
US10891239B2 (en) | 2021-01-12 |
US20190243779A1 (en) | 2019-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11340794B2 (en) | Multiprocessor system with independent direct access to bulk solid state memory resources | |
TWI703494B (zh) | 記憶體系統及非揮發性記憶體之控制方法 | |
US10410693B2 (en) | Multiprocessor system with independent direct access to bulk solid state memory resources | |
US11861218B2 (en) | Memory system and method for controlling nonvolatile memory | |
US20180341411A1 (en) | Intelligent layout of composite data structures in tiered storage | |
US9772802B2 (en) | Solid-state device management | |
US12093172B2 (en) | Memory system and method of controlling nonvolatile memory | |
US11409467B2 (en) | Memory system and method of controlling nonvolatile memory and for reducing a buffer size | |
US20230273750A1 (en) | Memory system and method of controlling nonvolatile memory with checking a total size indicative of a sum of data length specified by a write command | |
JP2021033848A (ja) | メモリシステムおよび制御方法 | |
CN110119245A (zh) | 用于操作nand闪存物理空间以扩展存储器容量的方法和系统 | |
TW201935223A (zh) | 記憶體系統及其控制方法 | |
US20220197563A1 (en) | Qos traffic class latency model for just-in-time (jit) schedulers | |
US20240241644A1 (en) | Storage device and storage system | |
US20240078199A1 (en) | Just-in-time (jit) scheduler for memory subsystems | |
US20220276804A1 (en) | Information processing apparatus | |
US11907123B2 (en) | Flash memory garbage collection | |
JP7463598B2 (ja) | メモリシステム | |
JP7281585B2 (ja) | メモリシステム |
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 |