CN105745627B - 用于非易失性存储器存储设备的地址转换 - Google Patents
用于非易失性存储器存储设备的地址转换 Download PDFInfo
- Publication number
- CN105745627B CN105745627B CN201480045074.5A CN201480045074A CN105745627B CN 105745627 B CN105745627 B CN 105745627B CN 201480045074 A CN201480045074 A CN 201480045074A CN 105745627 B CN105745627 B CN 105745627B
- Authority
- CN
- China
- Prior art keywords
- data
- access
- file system
- volatile memory
- storage device
- 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
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/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
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了用于从存储设备访问数据的技术。在一个实例中,存储设备可包括:存储介质,该存储介质包括非易失性存储器;网络连接;和一个或多个处理实体。一个或多个处理器可以被配置为:从在非易失性存储器存储设备处的网络连接接收用于访问与文件***对象关联的数据的请求,该请求包括虚拟地址偏移、文件对象标识符和数据访问的大小;使用虚拟地址偏移和文件对象标识符,在存储设备的一个或多个处理实体上执行的存储设备软件栈的闪存转换层处为存储在非易失性存储器上的数据执行从虚拟地址偏移到物理地址的转换;和访问来自存储介质的来自该物理地址的数据。
Description
技术领域
本申请是于2013年8月14日提交的美国临时专利申请No.61/865889并且名称为“VERTICALLY INTEGRATED STORAGE(垂直集成存储)”的非临时申请并且要求其优先权,为了所有目的通过参考以其整体并入本文。
背景技术
本公开的方面涉及计算和通信技术。具体地,本公开的方面涉及用于提高存储设备的性能的***、方法、装置、和计算机可读介质。
用于企业***的存储设备要求大存储容量。另外,对于企业***的存储解决方案要求关于可靠性、鲁棒性、容错、最大化存储容量、最小化能耗、和减少延迟的复杂的存储技术。各种存储工业参与者已经以提供逐段的解决方案的分段的方式独占研究这些存储技术的方面。这些各个分段的解决方案的组合导致笨拙的存储解决方案,该存储解决方案小于其部分的总和并且显著地全面表现不佳。今天,可用解决方案的分段和表现不佳导致在适应更新的存储技术诸如固态设备的方面显著的不同。
发明内容
描述了用于访问存储介质的各种***、方法、装置、和计算机可读介质。描述了用于垂直地集成各种功能以最优地访问基于固态存储器的存储硬件的技术。
实例非易失性存储器存储设备可包括:存储介质,该存储介质包括非易失性存储器;网络连接,该网络连接用于接收向存储介质的数据读取和写入请求;和一个或多个处理实体。一个或多个处理实体可被配置为:从在非易失性存储器存储设备处的网络连接接收用于访问与文件***对象关联的数据的请求,该请求包括虚拟地址偏移、文件对象标识符、和数据访问的大小;使用虚拟地址偏移和文件对象标识符,在存储设备的一个或多个处理实体处执行的存储设备软件栈的闪存转换层处,为存储在非易失性存储器上的数据执行从虚拟地址偏移到物理地址的转换;以及访问来自存储介质的物理来自该地址的数据。
在某些实施例中,文件***对象可被提供用于访问来自非易失性存储器存储设备的数据的虚拟块空间,该虚拟块空间独立于被分配给其它文件***对象的虚拟块空间,其中每个虚拟块空间向文件***对象提供地址空间的独占查看。例如,具有地址空间的独占查看的文件***对象可假定文件***对象是使用地址空间的唯一对象并且写入虚拟块空间中的任何地址。在虚拟块空间中的映射被转换到物理块空间以适当地考虑对于与其它文件***对象关联的所有其它虚拟块空间的映射。文件***对象的实例可包括文件、文件夹、目录等。
在某些实施例中,与文件***对象关联的数据被访问以执行修改操作,继而向与文件***对象关联的虚拟地址偏移执行写入操作。在一些实例中,与文件***对象关联的数据可以通过写入日志结构的文件由文件转换层修改,其中通过在从网络接收到对于修改数据或数据的一部分的请求和完成对非易失性存储器的写入操作之间仅一次使用日志结构的写入来执行对于数据或数据的一部分的修改操作。
在某些实施例中,由闪存转换层从虚拟地址偏移到在非易失性存储器上的物理地址的转换可以至少部分地基于由闪存转换层执行的全局磨损平衡,其中,全局磨损平衡改变虚拟地址偏移到物理地址转换,以减少由向非易失性存储器上的相同物理位置的重复数据访问引起的磨损。
在一些实施方案中,闪存转换层进一步为存储和访问来自非易失性存储器的数据执行块分配。在一些实施方案中,用于使用日志结构的文件***的无用单元收集仅在闪存转换层中执行,并且在一些实施方案中,闪存转换层使用日志结构的文件***执行向非易失性存储器的读取和写入。
在某些方面,通过使用网络文件共享协议由来自网络连接的访问请求来提供虚拟地址偏移。在本文公开的某些方面,通过来自如果由比存储设备软件栈的文件***层高的层提供的访问请求来提供虚拟地址偏移。在一个实施方案中,在非易失性存储器存储设备的一个或多个处理器上执行的存储设备软件栈中,在软件栈的文件***层处接收到访问数据的请求和在非易失性存储器处访问数据之间,仅执行单一地址转换。
在不限制使用用于执行本文所述的步骤的各种部件或等价部件或装置情况下,上述或本文中关于非易失性存储设备的方面可以作为方法执行。此外,本文所述的方面可以使用存储在非瞬时计算机可读存储介质上的指令而执行并且可由一个或多个处理器执行。而且,在不偏离本发明的范围的情况下,具有本文所述的装置或等效装置的装置可以用于执行本文所述的步骤。
前述的已经概述实例的相当宽广的特征和技术优点,以便能够更好的理解后面的详细的描述。附加的特征和优点将在下文描述。所公开的概念和具体实例能够容易地用作修改或设计用于执行本公开的相同目的的其它结构的基础。这样的等价的构造不偏离所附权利要求的精神和范围。被相信为本文公开的概念的特征的特征,关于其操作的组织和方法,与关联的优点一起,当考虑结合附图时将从以下描述更好的理解。仅为了示例和描述的目的并且不作为权利要求的限制的定义,提供每个附图。
附图说明
本公开的方面作为实例示出。在附图中,类似的附图标记表示类似的元件,并且:
图1示出用于访问存储硬件的分层方法的简图;
图2示出用于访问基于固态存储器的存储硬件的企业日志结构文件***的简图;
图3示出根据本发明的实施例的、用于访问固态存储的集成文件***软件栈的简图;
图4示出其中可以实施一个或多个实施例的计算***的实例。
具体实施方式
现在将参考形成示例性实施例的一部分的附图描述几个示例性实施例。同时下面描述其中可实施本公开的一个或多个方面的特别的实施例。在不偏离本公开的范围或所附权利要求的精神的情况下,可以使用其它实施例并且可以做出各种修改。
图1示出用于访问存储硬件的分层方法的简化图。用于存储设备的分层方法使用许多堆叠的软件/固件层用于从应用层116访问存储硬件。如图1所示,在一个实施方案中,分层方法包括:存储设备和与存储设备关联的固件116;独立磁盘冗余阵列(RAID)层114;块层112;文件***110;虚拟文件***(VFS)108;和更高层文件共享***,诸如网络文件***(NFS)104和通用互联网文件***(CIFS)106。传统地,在堆叠中的各种层可以由各种存储设备工业供应商开发。
典型地,与对存储设备的I/O请求的处理相关联的各个层在使其到达存储硬件前贯穿文件***堆栈的多层。例如,I/O请求可通过网络文件共享协议诸如NFS 104或CIFS106或任何其它合适的文件共享协议而到达。NFS 104和CIFS 106是使能在网络上访问文件的文件共享文件***的实例。NFS 104文件***可用在Unix/Linux环境中,而CIFS 106可面向具有基于窗口的应用服务器或客户端的网络。NFS 104和CIFS 106可通过VFS层108与***交互。VFS层108为更高层文件***提供标准化的接口用于访问更低层。例如,VFS层108可符合特定的标准,诸如POSIX,用于提供与更高层的标准化的接口。
文件***层110提供用于在存储设备上存储、检索和更新文件的抽象。另外地,文件***管理对设备上的文件的数据和元数据以及可用空间的访问。典型地,文件***110提供在VFS层108和块层112之间的映射的层。例如,文件***层110可从更高层接收索引节点和块偏移并且将其映射到逻辑单元编号(LUN)和虚拟块编号(VBN)。
文件***也可提供日志功能118。日志可以是指记录在将状态提交在状态机中以前的状态。在灾变事件的情况下,诸如***崩溃或电源故障,日志可使***能够更快速的恢复并且避免***状态的讹误。
为了使用块层112执行写入操作,文件***层110也可通过搜索空闲块执行块分配方案。块层112提供以块为单位向下层写入的接口。RAID层114通过使数据和奇偶校验信息遍布在多个盘或平面上而提供容错。典型地,RAID层114提供使用映射表的转换的层。例如,RAID层114可从文件***层110获取LUN和VBN地址并且将那些地址映射到设备逻辑块地址(LBA)。
除了以上讨论的层以外,用于存储的物理硬件也可实现其本身的固件用于存储和管理向物理介质的访问。例如,在一些实施例中,与硬件交互的固件也可起实施其本身管理、缓存、日志、映射、和写入/无用单元收集的另一层的作用。例如,固件层可使用预设的数学公式为磁性硬盘驱动器将LBA映射到柱面、跟踪和偏移。然而,如下更详细地所述,对于固态设备,从LBA到物理介质的映射变得更有关,因为写入部分在物理介质附近移动以适应于磨损平衡和更复杂的无用单元收集。
除了以上讨论的其主要作用以外,存储堆栈的绝大多数层也执行附加的内务例程,诸如维护存储器、管理功能、缓存、线性到物理地址映射、无用单元收集和用于保护以防灾变事件的状态日志。无用单元收集可以是指释放不再被层需要的存储器/存储资源。许多这些内务例程在存储堆栈的每个层中重复,因为由于分层架构引起显著的存储器、处理和性能额外消耗,由每个层执行的这些内务例程专用于该特定层并且与其他层隔离。
此外,如图1所示,关于对到达存储设备116的I/O请求,I/O请求必须经过几个层并且执行几个地址转换。数据信息通过多个层要求许多封装和解封装步骤,其也产生显著的额外消耗。
许多层,诸如VFS层108和RAID层116也管理其本身的映射结构和算法以将I/O请求从一个层转换到另一个层。映射操作是花费的操作,数据操作的增加的延时和***的性能的退化甚至更进一步。此外,连续的映射操作要求多次访问和写入设备。在非易失性存储器设备中,这样对介质的写入引起设备上的磨损,减少非易失性存储器的寿命。
而且,在一些情况下,存储堆栈层可由不同的供应商开发并且依附各种标准体。每个层与存储堆栈软件中的其它层隔离地开发,以不同的表现形式大大地重复相同功能;因而,显著地增加***中的额外消耗以及错误的概率。另外,存储堆栈分层的方法妨碍在生产线中的创新,因为干扰在不同的层之间的接口的任何创新经过与各个利益相关方、诸如在软件栈中的不同层的供应商的复杂的协商过程。此外,性能退化在分层的架构中具有进一步使性能问题恶化的倍增效应。
在本发明的一些实施例中,可使用固态设备,诸如基于闪存的非易失性存储器设备。非易失性存储器的实例可以实施为使用NOR或NAND技术来映射数据。NOR闪存提供高速随机访问,在特定的存储器位置中读取和写入数据;其能够像单字节一样小地检索。NAND闪存能够随机读取但是典型地在高速下顺序地写入,在被称为页面的小的块中处理数据。NAND闪存比其写入更快地读取,快速地转换整个页面的数据。NOR闪存表现为相同的方式,除了读取比NAND闪存更快并且写入更慢。NAND技术可为相同大小的硅片提供更高的容量,在高密度下比NOR闪存更价格低廉。
在多层中的功能的重复、由于冗余映射功能导致的延迟问题和无用单元收集中的一些在使用固态设备的存储设备中可能甚至是更有问题的。例如,由于在不同层发生的重复的映射、日志、元数据的存储、和无用单元收集功能而导致的不必要的写入可能引起在对过量写入敏感的固态设备、诸如NAND闪存上的不必要的磨损。
图2示出用于访问基于固态存储器的存储硬件的日志结构的文件***的简图。日志结构的文件***是其中数据和元数据被顺序地写入到被称为日志的循环缓冲区的文件***。传统的文件***趋向于对于空间位置布置文件,并且对其数据结构做出适当改变以便在趋向于相对缓慢地搜索的光盘和磁盘上良好地执行。然而,对于固态设备,日志结构的文件***在一些实施例中可以是优选的,因为固态设备具有相对快速的搜索时间。
在图2中,文件***208是日志结构的文件***。日志结构的文件***可具有几个优于传统的文件***之处。例如,写入吞吐量被提高,因为写入能够批量进入大的顺序的运行,并且昂贵地搜索被保持最小。此外,写入创建文件数据和元数据两者的多个按时间顺序推进的版本。一些实施方案使这些旧的文件版本可命名和可访问,即有时被称为快照的特征。而且,从事故的恢复更简单。在其下一次安装时,文件***不需要遍历其所有数据结构移动以修复任何的不一致,而是能够从日志中的最后的一致的位置重建其状态。
然而,当日志的头部卷绕以与日志的尾部相遇时,日志结构的文件***必须通过从日志的尾部回收空闲空间来执行复杂的无用单元收集,以防止文件***变满。
与在图1中描述的传统的文件***堆栈类似地,图2的日志结构的文件***也可为NFS 204和CIFS 106提供接口。文件***栈也可具有与图1的文件***堆栈在其功能的至少一些方面类似的块层210、RAID 212、和日志216。
除了以上讨论的层以外,固态设备也可实施其本身的固件用于存储和管理向物理驱动器的访问。例如,在一些实施例中,与硬件交互的固件也可起实施其本身的管理、缓存、日志、映射、和写入/无用单元收集的另一层的作用。
如图2所示,在一个实施方案中,固态设备可以用于存储。典型地,在硬件层处的固件中实施的闪存转换层也使用日志结构的算法用于向物理介质读取和写入。
在多层(即文件***208和设备层214)处使用日志结构的算法的重复导致效率低下。例如,无用单元收集必须在至少两个层上执行用于服务向存储设备的I/O请求。在一些实施例中,用于日志结构的文件***的无用单元收集可以是资源密集的并且可能导致在***中相当的效率低下。
此外,在图2中描述的***中,映射和转换可在多层上执行。首先,可在文件***层208处执行从索引节点和块偏移到LUN和VBN映射。然后,在RAID层212处从LUN和VBN到设备LBA。最后,可再次在固态设备处的固件层处执行从LBA到PBA(物理块地址)的映射。在各个层上的多层映射导致尤其是当使用固态设备作为存储介质时显著的效率低下。
图3示出根据本发明的某些实施例的、用于访问存储介质的集成文件***软件栈的简图。图3通过从几个层集成功能、增强现有技术和去除重复或不需要的功能来对参考图1和图2描述的许多缺陷进行改进。在图3中,I/O请求也可通过网络文件共享协议诸如NFS304或CIFS 306或任何其它合适的文件共享协议到达。
根据本发明的某些实施例,存储介质可实施为使用非易失性存储器。基于非易失性存储器的设备的实例实施方案可包括但不限于使用NOR、NAND、MRAM(磁阻RAM)、FRAM(铁电RAM、RRAM(阻变RAM))、相变存储器或任何其它合适的技术。NOR闪存可提供在特定的存储器位置、诸如达到单字节的高速随机访问和读写数据。NAND闪存可随机读取,但是典型地在高速下顺序地写入、处理在所谓的页面的小块中的数据。NAND闪存可比其写入更快地读取,快速地转换整个页面的数据。NOR闪存可以相同的方式表现,除了读取可比NAND闪存更快并且写入可能更慢。一般地,NAND技术可为相同尺寸的硅片提供更高的容量,在高密度下比NOR闪存更价格低廉。
在一些实施方案中,本发明的实施例可使用单层单元(SLC)NAND闪存技术。在其它实施方案中,本发明的实施例可使用多层单元(MLC)NAND闪存存储介质。MLC NAND是每单元使用多层以允许使用相同数量的晶体管来存储更多的比特的闪存存储技术。在SLC NAND闪存技术中,每个单元能够以两个状态中的一个存在,每单元存储一个比特的信息。大多数MLC NAND闪存存储器技术具有每单元四个可能的状态,所以其能够每单元存储两个比特的信息。由于更高数据密度,使用MLC NAND可以有利于减少每单位存储的成本。
在本发明的某些实施例中,***硬件,诸如非易失性存储器与垂直集成的***集成,因此集成硬件和软件解决方案。与现有技术***相反,在本发明的某些实施例中,非易失性存储器不实施为被现货或从原始设备制造商(OEM)购买的几个分立的黑盒设备的部件。作为代替,本发明的某些实施例描述彻底开发存储***,其中存储硬件实施为单个集成***,该单个集成***包括由单个软件栈管理的非易失性存储器,该单个软件栈包括所有的内务功能。在这样的***中,为管理在存储设备中的所有非易失性存储器,可能需要内务功能诸如管理、日志、无用单元收集、映射、和***写入结合/缓存中的仅一个实例。在某些实施方案中,闪存转换层的单实例管理用于存储设备的所有的非易失性存储器并且执行上述内务功能中的一些或所有。
本发明的实施例提出实施联合的和集成的文件***,诸如如图3所示的垂直集成的文件***308。在某些实施方案中,垂直集成的文件***308提供标准化的接口、诸如POSIX兼容接口,用于与网络文件共享协议诸如NFS304和CIFS306交互。在某些实施例中,可为处理向存储介质的I/O请求而执行从虚拟地址偏移到物理地址的仅单一转换。在一个实施方案中,虚拟地址偏移可由数据访问请求提供。
在一个实施方案中,存储硬件可实施为使用非易失性存储器作为闪存硬件310。转换映射和块分配可以在用于非易失性存储器的闪存转换层(FTL)中执行。FTL是使闪存硬件310的下层布局和结构的细节混淆为上层的固件。FTL可以执行转换以搬运数据用于磨损平衡。在一些实施方案中,FTL可使用向物理闪存硬件310的日志结构的访问。日志结构的访问可对于每个访问请求仅执行一次。因为,多层的映射对于性能是有害的并且也可能磨平非易失性存储器,本发明的实施例可增强FTL的映射实施以为向下层存储的I/O请求提供单一的转换。因此,在一些实施方案中,可在文件***308本身中不需要虚拟地址偏移向逻辑地址的映射。
I/O请求可以转换成可用来访问在存储设备上的文件或文件夹的文件***对象。根据一个实施方案,FTL可以给每个文件***对象提供其本身的虚拟块空间。换句话说,FTL可以给每个文件***对象提供文件***对象能够从其存储和访问数据的存储位置的映射。在一个实施方案中,文件***对象向FTL提供文件对象标识符、在虚拟块空间中的数据的虚拟地址偏移、和字节数,用于提供向非易失性存储器的读取或写入访问。FTL可在将向物理下层非易失性存储器的访问映射前执行全局磨损平衡。FTL也可通过仅提供已经访问的数据块的VBN到PBA映射来执行稀疏虚拟块编号到物理块地址的转换。
FTL可以使用与文件对象标识符和虚拟地址偏移关联的虚拟块空间将对于数据访问请求的虚拟地址偏移转换为物理地址。在一些实例中,在虚拟地址偏移和物理地址之间的转换可以为磨损平衡定期更新。
本发明的实施例可以在增加用于非易失性存储器存储设备的***的总体效率方面是有利的。在一些实施方案中,贯穿多层的功能的重复可以缩退到一个或多个层。某些功能,诸如日志可以在某些实施方案中去除。在某些实施例中,核心功能,诸如映射、无用单元收集、块分配和总体磨损平衡可以全部由增强的FTL实施方案执行。
本发明的实施例在通过为虚拟到物理的转换提供单一的映射转换而增加总体文件***堆栈的效率方面可以是有利的。此外,写入路径也可以由于没有块分配或日志额外消耗而招致低延迟。本发明的实施例也通过低元数据额外消耗而减少了闪存上的磨损。
应该理解的是,上述步骤是为了在存储介质上存储数据。然而,从存储介质访问数据也可以逆序贯穿相同的或类似的步骤并且在一些实例中执行反转功能。
应该理解的是,在图3中示出的特定步骤提供在根据本发明的实施例的操作的模式之间切换的具体模式。其它序列的步骤也可在替代实施例中相应地执行。例如,本发明的替代实施例可以不同次序执行上述步骤。为了说明,用户可选择从第三操作模式改变为第一操作模式、从第四模式到第二模式、或其之间的任何组合。而且,在图3中示出的单独步骤可包括多个子步骤,该子步骤可以各种序列作为适于单独步骤而实施。此外,取决于具体的应用程序,可以添加或去除附加的步骤。本领域的技术人员将会认为和理解方法300的许多变型、修改和替换。
已经描述垂直集成架构的多个方面,现在可参考图4描述其中可实施本公开的各个方面的计算***的实例。根据一个或多个方面,如图4所示的计算机***可合并为计算设备的部分,其可以实施、施行和/或执行本文所述的任何和/或所有的特征、方法和/或方法步骤。例如,计算机***400可代表一些设备的部件和/或接入点装置。设备可以是具有无线单元诸如RF接收器的任何计算设备。在一个实施例中,***400被配置为实施本文所述的任何方法。图4提供能够执行由各种其它实施例提供的方法的计算机***400的一个实施例的示意的示例。图4仅意欲提供当适当时可使用任何和/或所有的各种部件的广义的示例。因此,图4概括地示出单独***元件如何可以相对单独的或相对更加集成的方式实施。
计算机***400示出为包括能够经由总线405(或当适当时可以其它方式通信)电联接的硬件元件。硬件元件可包括:一个或多个处理器410,其包括而不限制一个或多个通用处理器和/或一个或多个专用处理器(诸如数字信号处理芯片、图形加速处理器等);一个或多个输入设备415,其能够包括而不限制照相机、鼠标、键盘等;和一个或多个输出设备420,其能够包括而不限制显示器单元、打印机等。计算设备400也可包括用于监视***健康的传感器,诸如温度传感器、电力传感器等。
计算机***400可进一步包括(和/或与其通信)一个或多个非暂时性存储设备425,该存储设备425能够包括而不限制于本地和/或网络可访问存储,和/或能够包括而不限制于:磁盘驱动器;驱动器阵列;光学存储设备;诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”)的固态存储设备,其能够是可编程的、闪存可更新的等。在一些实施例中,存储可使用非易失性存储器实施。这样的存储设备可配置为实施任何适当的数据存储,包括而不限制各种文件***、数据库结构等。
计算机***400也可能包括通信子***430,该通信子***430能够包括而不限制于:调制解调器;网卡(无线的或有线的);红外通信设备;无线通信设备;和/或芯片组(诸如蓝牙设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设备等)等。通信子***430可允许数据与网络(诸如下述网络,以例举一个实例)、其它计算机***、和/或本文所述的任何其它设备交换。如上所述,在许多实施例中,计算机***400可进一步包括非暂时性工作存储器435,其能够包括RAM或ROM。计算机***400也可能包括收发器1050以便于由通信子***430与外部实体通信。
如本文所述,计算机***400也能够包括软件元素,该软件元素示出为当前位于工作存储器435内,工作存储器435包括:操作***440;设备驱动器;可执行库;和/或其它代码,诸如一个或多个应用程序445,该应用程序445可包括由各种实施例提供的计算机程序、和/或可设计为实施方法、和/或配置由其它实施例提供的***。仅作为实例,参考上述方法描述的一个或多个过程可能实施为可由计算机(和/或在计算机内的处理器)执行的代码和/或指令;然后,在一方面,这样的代码和/或指令能够用来配置和/或适应通用计算机(或其它设备)以根据所述的方法执行一个或多个操作。
这些指令和/或代码集可能存储在计算机可读存储介质、诸如上述存储设备425上。在一些情况下,存储介质可能包括在计算机***、诸如计算机***400内。在其它实施例中,存储介质可能与计算机***分开(例如可移除介质,诸如压缩盘),和/或设置在安装包中,使得存储介质能够用来编程、构造和/或适应具有存储在其上的指令/代码的通用计算机。这些指令可能采取可由计算机***400执行的可执行代码的形式,和/或可能采取源代码和/或可安装代码的形式,其在计算机***400上编译和/或安装(例如,使用任何的各种一般可用的编译器、安装程序、压缩/解压缩工具等)时,那么采取可执行代码的形式。
实质的变型可能根据具体的要求做出。例如,可能使用定制的硬件,和/或特定的元件可能以硬件、软件(包括可移植软件,诸如小应用程序等)、或两者实施。此外,可使用与其它计算设备诸如网络输入/输出设备的连接。
一些实施例可使用计算机***(诸如计算机***400)以执行根据本公开的方法。例如,所述的方法的一些或所有的过程可以通过计算机***400响应于处理器410执行包含在工作存储器435中的一个或多个序列的一个或多个指令(可能包括在操作***440中和/或其它代码,诸如应用程序445)而执行。这些指令可以从另一个计算机可读介质诸如一个或多个存储设备425读入工作存储器435。仅仅作为实例,包含在工作存储器435中的序列指令的执行可能使处理器410执行本文所述的方法的一个或多个过程。
如本文所使用的术语“机器可读介质”和“计算机可读介质”是指参与提供使机器以特定方式操作的数据的任何介质。在使用计算机***400实施的实施例中,各种计算机可读介质可能包括在向处理器410提供用于执行的指令/代码中和/或可能用来存储和/或携带这样的指令/代码(例如,作为信号)。在许多实施方案中,计算机可读介质是物理的和/或有形的存储介质。这样的介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘和/或磁盘,诸如存储设备425。易失性介质包括而不限制动态存储器,诸如工作存储器435。传输介质包括而不限制包含包括总线405的线路的同轴电缆、铜线和光纤、以及通信子***430的各种部件(和/或通信子***430通过其提供与其它设备通信的介质)。因此,传输介质也能够采取波的形式(包括而不限制无线电波、声波和/或光波,诸如那些在无线电波和红外数据通信期间产生的那些波)。
一些实施例可使用计算机***(诸如处理器410)以执行根据本公开的方法。例如,所述的方法的一些或所有的过程可以通过查看装置响应于处理器执行包含在工作存储器中的一个或多个序列的一个或多个指令(可能包括在操作***中和/或其它代码,诸如应用程序)而执行。这些指令可以从另一个计算机可读介质诸如一个或多个存储设备读入工作存储器。仅仅作为实例,包含在工作存储器中的序列的指令的执行可能使处理器执行本文所述的方法的一个或多个过程。
再次,使用本文描述的计算机***的实施例不限于物理地连接到查看装置。处理可发生在经由线路或无线地连接到查看装置的另一个装置中。例如,在电话中的处理器或用于由电话或平板电脑执行命令的指令可包括在这些描述中。类似地,在远程位置中的网络可容纳处理器并且将数据发送到查看装置。
如本文所使用的术语“机器可读介质”和“计算机可读介质”,是指参与提供使机器以特定的方式操作的数据任何介质。在使用处理器410实施的实施例中,各种计算机可读介质可能包括在向处理器410提供用于执行的指令/代码中和/或可能用来存储和/或携带这样的指令/代码(例如作为信号)。在许多实施方案中,计算机可读介质是物理和/或有形的存储介质。这样的介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘和/或磁盘。易失性介质包括而不限制动态存储器,诸如闪存或DDR3RAM。传输介质包括而不限制同轴电缆、铜线和光纤、以及通信子***的各种部件(和/或通信子***通过其提供与其它设备通信的介质)。因此,传输介质也能够采取波的形式(包括而不限制无线电波、声波和/或光波,诸如那些在无线电波和红外数据通信期间产生的那些波)。
在一个或多个实例中,所述的功能可以以硬件、软件、固件或任何其组合实施。如果以软件实施,本功能可存储在计算机可读介质上的一个或多个指令或代码上或作为一个或多个指令或代码传输。计算机可读介质可包括计算机数据存储介质。数据存储介质可以是能够通过一个或多个计算机或一个或多个处理器访问以检索指令、代码和/或数据结构以实现在这个公开中所述的技术的任何可用介质。如本文中所使用的“数据存储介质”指的是制造商并且不指瞬时传播信号。作为实例,并且不作为限制,这样的计算机可读介质能够包括RAM、ROM、EEPROM、CDROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或能够用来以指令或数据结构的形式存储期望的程序代码并且能够由计算机访问的任何其它介质。如本文所使用的磁盘和盘包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地复制数据,而盘利用激光光学地复制数据。以上的组合也应该包括在计算机可读介质的范围内。
代码可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等效集成或离散逻辑电路。因此,如本文所使用的术语“处理器”可以是指适合于实施本文所述的技术的任何的前述结构或任何其它结构。另外,在一些方面中,本文所述的功能可以设置在被配置为编码或解码或合并在联合编解码中的专用的硬件和/或软件模块内。而且,本技术能够完全地实施在一个或多个电路或逻辑元件中。
本公开的技术可以在各种各样的、包括无线手机、集成电路(IC)或IC组(例如芯片组)的设备或装置中实施。在本公开中描述了各种部件、模块或单元以强调被配置为执行本公开的技术的设备的功能的方面,但是未必要求由不同的硬件单元实现。相反地,如上所述,各种单元可结合存储在计算机可读介质上的合适的软件和/或固件而组合在编解码硬件单元中或由一批相互协作的硬件单元提供,该硬件单元包括一个或多个如上所述的处理器。
已经描述各种实例。这些和其它实例在以下权利要求的范围内。
Claims (17)
1.一种非易失性存储器存储设备,包括:
存储介质,所述存储介质包括非易失性存储器;
网络连接,所述网络连接用于接收向所述存储介质的数据读取和写入请求;
一个或多个处理实体,所述一个或多个处理实体被配置为:
从在所述非易失性存储器存储设备处的所述网络连接接收用于访问与文件***对象关联的数据的请求,所述请求包括虚拟地址偏移、文件对象标识符和数据访问的大小;
使用所述虚拟地址偏移和所述文件对象标识符,在所述存储设备的所述一个或多个处理实体上执行的存储设备软件栈的闪存转换层处,为存储在所述非易失性存储器上的数据执行从所述虚拟地址偏移到物理地址的转换,其中由所述闪存转换层从所述虚拟地址偏移到所述非易失性存储器上的所述物理地址的所述转换至少部分地基于由所述闪存转换层执行的全局磨损平衡,其中所述全局磨损平衡改变所述虚拟地址偏移到所述物理地址的转换,以减少由向所述非易失性存储器上的相同物理位置的重复数据访问而引起的磨损;和
访问来自所述存储介质的、来自所述物理地址的数据。
2.根据权利要求1所述的非易失性存储器存储设备,其中,所述文件***对象被提供用于访问来自所述非易失性存储器存储设备的数据的虚拟块空间,所述虚拟块空间独立于分配给其它文件***对象的虚拟块空间,其中,每个虚拟块空间向所述文件***对象提供地址空间的独占查看。
3.根据权利要求1所述的非易失性存储器存储设备,其中,与所述文件***对象关联的数据被访问以执行修改操作,继而执行向与所述文件***对象关联的虚拟地址偏移的写入操作。
4.根据权利要求3所述的非易失性存储器存储设备,其中,与所述文件***对象关联的数据通过向日志结构的文件写入而由文件转换层修改,其中,通过在从所述网络接收到对于修改所述数据或所述数据的一部分的请求和完成向所述非易失性存储器的所述写入操作之间仅一次使用日志结构的写入来执行对于所述数据或所述数据的一部分的所述修改操作。
5.根据权利要求1所述的非易失性存储器存储设备,其中,所述闪存转换层进一步为存储和访问来自所述非易失性存储器的数据执行块分配。
6.根据权利要求1所述的非易失性存储器存储设备,其中,用于使用日志结构的文件***的无用单元收集仅在所述闪存转换层中执行。
7.根据权利要求1所述的非易失性存储器存储设备,其中,所述闪存转换层使用日志结构的文件***执行向所述非易失性存储器的读取和写入。
8.根据权利要求1所述的非易失性存储器存储设备,其中,使用网络文件共享协议由来自所述网络连接的访问请求提供所述虚拟地址偏移。
9.根据权利要求1所述的非易失性存储器存储设备,其中,通过来自比所述存储设备软件栈的文件***层高的层的访问请求来提供所述虚拟地址偏移。
10.根据权利要求1所述的非易失性存储器存储设备,其中,在所述非易失性存储器存储设备的所述一个或多个处理实体上执行的所述存储设备软件栈中,在所述存储设备软件栈的文件***层处接收到访问数据的所述请求和在所述非易失性存储器处访问数据之间,仅执行单一地址转换。
11.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质包括能够由处理器执行的指令,所述指令包括指令以:
从在非易失性存储器存储设备处的网络连接接收用于访问与文件***对象关联的数据的请求,所述非易失性存储器存储设备包括所述非瞬时性计算机可读存储介质,所述请求包括虚拟地址偏移、文件对象标识符和数据访问的大小;
使用所述虚拟地址偏移和所述文件对象标识符,在由所述非易失性存储设备的一个或多个处理实体执行的存储设备软件栈的闪存转换层处,为存储在所述非易失性存储器上的数据执行从所述虚拟地址偏移到物理地址的转换,其中由所述闪存转换层从所述虚拟地址偏移到所述非易失性存储器上的所述物理地址的所述转换至少部分地基于由所述闪存转换层执行的全局磨损平衡,其中所述全局磨损平衡改变所述虚拟地址偏移到所述物理地址的转换,以减少由向所述非易失性存储器上的相同物理位置的重复数据访问而引起的磨损;和
访问来自所述非易失性存储器的、来自所述物理地址的数据。
12.根据权利要求11所述的非瞬时性计算机可读存储介质,其中,所述文件***对象被提供用于访问来自所述非易失性存储器存储设备的数据的虚拟块空间,所述虚拟块空间独立于被分配给其它文件***对象的虚拟块空间。
13.根据权利要求11所述的非瞬时性计算机可读存储介质,其中,所述闪存转换层使用网络文件共享协议通过所述网络连接接收用于数据访问请求的所述虚拟地址偏移。
14.根据权利要求11所述的非瞬时性计算机可读存储介质,其中,在所述非易失性存储器存储设备上执行的所述存储设备软件栈中,在所述存储设备软件栈的文件***层处接收到访问数据的所述请求和访问所述非易失性存储器之间,仅执行单一地址转换。
15.一种用于访问非易失性存储器存储设备上的数据的方法,所述方法包括:
在所述非易失性存储器存储设备上执行的软件栈的闪存转换层处接收用于访问与文件***对象关联的数据的请求,所述请求包括虚拟地址偏移、文件对象标识符和数据访问的大小,其中,所述闪存转换层管理非易失性存储器;
使用所述虚拟地址偏移和所述文件对象标识符为所述非易失性存储器上的数据执行从所述虚拟地址偏移到物理地址的转换,其中由所述闪存转换层从所述虚拟地址偏移到所述非易失性存储器上的所述物理地址的所述转换至少部分地基于由所述闪存转换层执行的全局磨损平衡,其中所述全局磨损平衡改变所述虚拟地址偏移到所述物理地址的转换,以减少由向所述非易失性存储器上的物理位置的重复数据访问而引起的磨损;和
访问来自所述非易失性存储器的数据。
16.根据权利要求15所述的方法,其中,所述闪存转换层使用网络文件共享协议从网络接收用于数据访问请求的所述虚拟地址偏移。
17.根据权利要求15所述的方法,其中,在所述非易失性存储器存储设备上执行的所述软件栈中,在所述软件栈的文件***层处接收到访问数据的所述请求和访问所述非易失性存储器之间,仅执行单一地址转换。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361865889P | 2013-08-14 | 2013-08-14 | |
US61/865,889 | 2013-08-14 | ||
PCT/US2014/051150 WO2015023897A1 (en) | 2013-08-14 | 2014-08-14 | Address translation for a non-volatile memory storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105745627A CN105745627A (zh) | 2016-07-06 |
CN105745627B true CN105745627B (zh) | 2019-03-15 |
Family
ID=52467665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045074.5A Active CN105745627B (zh) | 2013-08-14 | 2014-08-14 | 用于非易失性存储器存储设备的地址转换 |
Country Status (4)
Country | Link |
---|---|
US (3) | US9626288B2 (zh) |
EP (1) | EP3033682A4 (zh) |
CN (1) | CN105745627B (zh) |
WO (1) | WO2015023897A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9626288B2 (en) * | 2013-08-14 | 2017-04-18 | Skyera, Llc | Address translation for a non-volatile memory storage device |
US10763752B1 (en) | 2019-06-25 | 2020-09-01 | Chengdu Monolithic Power Systems Co., Ltd. | Zero-voltage-switching flyback converter |
KR102166185B1 (ko) * | 2014-03-04 | 2020-10-15 | 한국전자통신연구원 | 파이프라인 실행 가속을 위한 데이터 처리 장치 및 그 방법 |
CN104951244B (zh) * | 2014-03-31 | 2018-04-27 | 伊姆西公司 | 用于存取数据的方法和设备 |
US20160080488A1 (en) * | 2014-09-12 | 2016-03-17 | Microsoft Corporation | Implementing file-based protocol for request processing |
US9916325B2 (en) * | 2014-09-30 | 2018-03-13 | International Business Machines Corporation | Quick initialization of data regions in a distributed storage system |
US9904688B2 (en) | 2014-09-30 | 2018-02-27 | International Business Machines Corporation | Buffering and replicating data written to a distributed storage system |
KR102365269B1 (ko) * | 2015-04-13 | 2022-02-22 | 삼성전자주식회사 | 데이터 스토리지 및 그것의 동작 방법 |
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 |
CN108431783B (zh) * | 2015-12-30 | 2020-09-18 | 华为技术有限公司 | 访问请求处理方法、装置及计算机*** |
WO2017113211A1 (zh) | 2015-12-30 | 2017-07-06 | 华为技术有限公司 | 访问请求处理方法、装置及计算机*** |
US10235198B2 (en) * | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
US10437953B2 (en) * | 2016-07-08 | 2019-10-08 | efabless corporation | Systems for engineering integrated circuit design and development |
US10289544B2 (en) * | 2016-07-19 | 2019-05-14 | Western Digital Technologies, Inc. | Mapping tables for storage devices |
US10642497B2 (en) * | 2016-08-31 | 2020-05-05 | International Business Machines Corporation | System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics |
US10277677B2 (en) * | 2016-09-12 | 2019-04-30 | Intel Corporation | Mechanism for disaggregated storage class memory over fabric |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US10318162B2 (en) | 2016-09-28 | 2019-06-11 | Amazon Technologies, Inc. | Peripheral device providing virtualized non-volatile storage |
US10860534B2 (en) | 2016-10-27 | 2020-12-08 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US10956051B2 (en) * | 2016-10-31 | 2021-03-23 | Oracle International Corporation | Data-packed storage containers for streamlined access and migration |
US10635325B2 (en) * | 2016-11-22 | 2020-04-28 | Arm Limited | Managing persistent storage writes in electronic systems |
US10540384B2 (en) | 2017-01-06 | 2020-01-21 | Oracle International Corporation | Compression and secure, end-to-end encrypted, ZFS cloud storage |
US10754829B2 (en) * | 2017-04-04 | 2020-08-25 | Oracle International Corporation | Virtual configuration systems and methods |
CN109725842B (zh) * | 2017-10-30 | 2022-10-11 | 伊姆西Ip控股有限责任公司 | 加速随机写入布局以用于混合存储***内的桶分配的***和方法 |
CN107797940B (zh) * | 2017-11-21 | 2021-02-23 | 四川巧夺天工信息安全智能设备有限公司 | 一种针对无法访问东芝硬盘数据区的恢复方法 |
US10496548B2 (en) * | 2018-02-07 | 2019-12-03 | Alibaba Group Holding Limited | Method and system for user-space storage I/O stack with user-space flash translation layer |
US11301331B2 (en) * | 2018-09-20 | 2022-04-12 | Samsung Electronics Co., Ltd. | Storage device and operating method of storage device |
US11789870B2 (en) * | 2019-05-24 | 2023-10-17 | Microsoft Technology Licensing, Llc | Runtime allocation and utilization of persistent memory as volatile memory |
KR20210155593A (ko) | 2020-06-16 | 2021-12-23 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US11681661B2 (en) * | 2020-11-27 | 2023-06-20 | Vmware, Inc. | Hybrid synchronization using a shadow component |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
TW200732918A (en) * | 2005-12-21 | 2007-09-01 | Sandisk Corp | Method and system for accessing non-volatile storage devices |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
JP2001034537A (ja) * | 1999-07-23 | 2001-02-09 | Toshiba Corp | アドレス変換回路 |
US7707385B2 (en) * | 2004-12-14 | 2010-04-27 | Sony Computer Entertainment Inc. | Methods and apparatus for address translation from an external device to a memory of a processor |
US7747837B2 (en) * | 2005-12-21 | 2010-06-29 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
US7882301B2 (en) * | 2007-05-09 | 2011-02-01 | Stmicroelectronics S.R.L. | Wear leveling in storage devices based on flash memories and related circuit, system, and method |
US8713283B2 (en) * | 2007-06-08 | 2014-04-29 | Sandisk Technologies Inc. | Method of interfacing a host operating through a logical address space with a direct file storage medium |
KR20090026941A (ko) * | 2007-09-11 | 2009-03-16 | 삼성전자주식회사 | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 |
US8037278B2 (en) * | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
US20100017650A1 (en) * | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US8327066B2 (en) * | 2008-09-30 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method of managing a solid state drive, associated systems and implementations |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
KR20110018157A (ko) * | 2009-08-17 | 2011-02-23 | 삼성전자주식회사 | 플래시 메모리 장치의 액세스 방법 |
US20110060869A1 (en) * | 2009-09-08 | 2011-03-10 | Ocz Technology Group, Inc. | Large capacity solid-state storage devices and methods therefor |
US8700949B2 (en) * | 2010-03-30 | 2014-04-15 | International Business Machines Corporation | Reliability scheme using hybrid SSD/HDD replication with log structured management |
KR101635446B1 (ko) * | 2010-05-25 | 2016-07-04 | 삼성전자주식회사 | 반도체 메모리 장치의 블록 병합 방법 |
US9135181B2 (en) * | 2010-10-27 | 2015-09-15 | International Business Machines Corporation | Management of cache memory in a flash cache architecture |
KR101734200B1 (ko) * | 2010-12-03 | 2017-05-11 | 삼성전자주식회사 | 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법 |
US9355023B2 (en) * | 2011-03-15 | 2016-05-31 | Anirudh Badam | Virtual address pager and method for use with a bulk erase memory |
US8694754B2 (en) * | 2011-09-09 | 2014-04-08 | Ocz Technology Group, Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
KR20130075018A (ko) * | 2011-12-27 | 2013-07-05 | 한국전자통신연구원 | 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법 |
US20140059279A1 (en) * | 2012-08-27 | 2014-02-27 | Virginia Commonwealth University | SSD Lifetime Via Exploiting Content Locality |
US20140122774A1 (en) * | 2012-10-31 | 2014-05-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for Managing Data of Solid State Storage with Data Attributes |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9626288B2 (en) * | 2013-08-14 | 2017-04-18 | Skyera, Llc | Address translation for a non-volatile memory storage device |
US8838936B1 (en) * | 2013-11-27 | 2014-09-16 | NXGN Data, Inc. | System and method for efficient flash translation layer |
US10108542B2 (en) * | 2016-01-04 | 2018-10-23 | Avalanche Technology, Inc. | Serial link storage interface (SLSI) hybrid block storage |
-
2014
- 2014-08-14 US US14/460,216 patent/US9626288B2/en active Active
- 2014-08-14 CN CN201480045074.5A patent/CN105745627B/zh active Active
- 2014-08-14 WO PCT/US2014/051150 patent/WO2015023897A1/en active Application Filing
- 2014-08-14 EP EP14836121.5A patent/EP3033682A4/en not_active Withdrawn
-
2017
- 2017-04-17 US US15/489,632 patent/US10380014B2/en active Active
-
2019
- 2019-06-25 US US16/452,463 patent/US11086774B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535949B1 (en) * | 1999-04-19 | 2003-03-18 | Research In Motion Limited | Portable electronic device having a log-structured file system in flash memory |
TW200732918A (en) * | 2005-12-21 | 2007-09-01 | Sandisk Corp | Method and system for accessing non-volatile storage devices |
Also Published As
Publication number | Publication date |
---|---|
US11086774B2 (en) | 2021-08-10 |
EP3033682A4 (en) | 2017-04-05 |
CN105745627A (zh) | 2016-07-06 |
EP3033682A1 (en) | 2016-06-22 |
US9626288B2 (en) | 2017-04-18 |
WO2015023897A1 (en) | 2015-02-19 |
US20150052295A1 (en) | 2015-02-19 |
US10380014B2 (en) | 2019-08-13 |
US20190310934A1 (en) | 2019-10-10 |
US20170351605A1 (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105745627B (zh) | 用于非易失性存储器存储设备的地址转换 | |
US11947423B2 (en) | Data reconstruction in distributed storage systems | |
US11687423B2 (en) | Prioritizing highly performant storage systems for servicing a synchronously replicated dataset | |
US11581943B2 (en) | Queues reserved for direct access via a user application | |
US11281601B2 (en) | Multi-device storage system with hosted services on peer storage devices | |
US11520936B1 (en) | Reducing metadata for volumes | |
US10310760B1 (en) | Layering communication fabric protocols | |
US10037158B2 (en) | Vertically integrated storage | |
US20230013314A1 (en) | Unlocking Data Stored In A Group Of Storage Systems | |
US20200379904A1 (en) | Optimizing garbage collection using check pointed data sets | |
US20190171365A1 (en) | Hybrid data tiering | |
US20190042407A1 (en) | Resiliency groups | |
US11722064B2 (en) | Address translation for storage device | |
US11604583B2 (en) | Policy based data tiering | |
CN107229417A (zh) | 数据存储设备及其操作方法 | |
CN109901794A (zh) | 使用主机空闲来操作垃圾收集的设备和方法 | |
CN111433746A (zh) | 使用故障存储设备的重建助手 | |
US11650749B1 (en) | Controlling access to sensitive data in a shared dataset | |
CN109240949B (zh) | 数据存储装置及其操作方法 | |
CN107710144B (zh) | 跨越逻辑卷的数据存储装置复制数据 | |
US20230297274A1 (en) | Apparatus and method for transfering data in memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180611 Address after: American California Applicant after: Western Digital Technologies, Inc. Address before: American California Applicant before: SKYERA INC |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |