CN103999060A - 固态存储管理 - Google Patents
固态存储管理 Download PDFInfo
- Publication number
- CN103999060A CN103999060A CN201280062727.1A CN201280062727A CN103999060A CN 103999060 A CN103999060 A CN 103999060A CN 201280062727 A CN201280062727 A CN 201280062727A CN 103999060 A CN103999060 A CN 103999060A
- Authority
- CN
- China
- Prior art keywords
- solid
- address
- physical address
- logical address
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
- 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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
-
- 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/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供用于包括主板和与所述主板分离的固态存储板的系统的固态存储管理。所述固态存储板包括固态内存设备和固态存储设备。所述系统被配置为执行一种方法,所述方法包括由位于所述主板上的软件模块建立第一逻辑地址与所述固态存储设备上的第一物理地址之间的对应。将所述第一逻辑地址与所述第一物理地址之间的所述对应存储在所述固态内存设备上的一位置中。所述方法还包括将所述第一逻辑地址转换为所述第一物理地址。所述转换由位于所述固态存储板上的地址转换器模块执行,并且基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应。
Description
背景技术
本发明涉及计算机存储,更具体地说,涉及固态存储管理。
固态驱动器(SSD)是使用固态存储器存储持久性数据的数据存储设备。SSD通常经由高速链路连接到主计算机。SSD通常实现某种形式的存储介质(即,底层固态存储设备)的管理。这种管理通常包括从逻辑地址空间转换为物理地址空间。许多SSD使用基于“与非”(NAND)的闪存,其在被以新数据重写之前必须被成块擦除。由于难以进行擦除操作,地址转换通常与NAND闪存设备一起使用。
在使用NAND闪存设备的某些现代系统中,在主计算机上执行所有管理功能。在这些系统中,将地址转换表置于主计算机的主存储器中,以便在读取操作期间,主计算机确定对应于逻辑读取地址的物理地址(地址转换)。在写入操作期间,主计算机确定将数据写入到的物理写入地址(物理数据放置),并且在地址转换表中记录逻辑到物理地址对应。这种方法的缺点是它需要使用主机处的计算周期和主存储器以执行地址转换。因此,它非常适合于具有大量动态随机存取存储器(DRAM)和处理能力的计算机系统,而不适合于具有有限数量的DRAM和处理能力的低成本系统,或不适合于存储装置与系统存储器之间具有高比率的以数据为中心的大型系统。
其它现代系统将所有管理功能放在物理SSD板上。在这种情况下,SSD执行数据放置和地址转换两者。这种方法的缺点是它在成本/性能方面变差,因为它没有利用主处理器,相反需要在SSD中包括另一个处理器。
发明内容
一个实施例是一种系统,其包括主板和与所述主板分离的固态存储板。所述主板经由接口总线耦合到所述固态存储板。所述固态存储板包括固态内存设备和固态存储设备。所述固态存储设备包括由物理地址标识的多个物理存储位置。所述系统被配置为执行一种方法,所述方法包括建立第一逻辑地址与所述固态存储设备上的第一物理地址之间的对应。所述建立由位于所述主板上的软件模块执行。将所述第一逻辑地址与所述第一物理地址之间的所述对应存储在位于所述固态存储板上的所述固态内存设备上的位置。所述方法还包括将所述第一逻辑地址转换为所述第一物理地址。所述转换由位于所述固态存储板上的地址转换器模块执行,并且基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应。
其它实施例包括一种方法和计算机程序产品,其用于建立第一逻辑地址与位于固态存储板上的固态存储设备上的第一物理地址之间的对应。所述固态存储设备包括由物理地址标识的多个物理存储位置,并且所述建立由位于与所述固态存储板分离的主板上的软件模块执行。所述主板经由接口总线耦合到所述固态存储板。将所述第一逻辑地址与所述第一物理地址之间的所述对应存储在固态内存设备上可由位于所述固态存储板上的地址转换器模块访问的一位置中。所述固态内存设备位于所述固态存储板上。所述地址转换器模块基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应,将所述第一逻辑地址转换为所述第一物理地址。
通过本发明的技术实现其它特性和优点。在此详细描述了本发明的其它实施例和方面,并且它们被视为要求保护的本发明的一部分。为了更好地理解本发明以及优点和特性,请参考说明书和附图。
附图说明
在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。从下面结合附图的详细描述,本发明的上述和其它特性和优点将变得显而易见,这些附图是:
图1示出根据本发明一个实施例的闪存控制器系统的示意图;
图2示出根据本发明一个实施例的用于执行读取闪存操作的过程的示意图;
图3示出根据本发明一个实施例的用于执行写入闪存操作的过程的示意图;
图4示出根据本发明一个实施例的用于执行垃圾收集闪存操作的过程的示意图;
图5示出根据本发明一个实施例的用于执行读取物理地址闪存操作的过程的示意图;以及
图6示出根据本发明一个实施例的用于执行闪存擦除操作的过程的示意图。
具体实施方式
本发明的各实施例提供高性能固态驱动器(SSD)管理解决方案,以便与低成本计算机系统或以数据为中心的大型计算机系统一起使用。具体地说,各实施例包括主系统和SSD板(在此也称为硬件模块或固态存储板)之间的闪存管理复杂性的创新拆分。具体地说,主系统处理器执行软件模块,该软件模块使用系统资源执行SSD管理中涉及的特定任务子集,而剩余任务直接由SSD板执行和加速。所述硬件模块结合了控制器子模块,以及“与非”(NAND)闪存和某种高速存储器,例如动态随机存取存储器(DRAM)、相变存储器(PCM)和/或自旋扭矩转移随机存取存储器(STT-RAM)。所述软件模块处理复杂的闪存管理操作,包括但不限于:垃圾收集、耗损均衡、数据放置和调度、第二层错误纠正编码(ECC)、独立磁盘冗余阵列(RAID)管理以及闪存恢复。另一方面,硬件控制器模块处理简单闪存转换层(FTL)簿记(FTL是NAND闪存系统中的地址转换表)和闪存命令路由,以及硬件友好操作,例如RAID加速和使用代数代码的主层ECC。
在此描述的各实施例在主系统和处理器上使用非常少的处理能力和主存储器。即使最复杂的闪存簿记操作也仅需要典型现代主处理器的一部分计算能力,而全面闪存管理对系统存储器占用具有显著影响,因此对系统性能也具有显著影响。因此,各实施例可以用于具有廉价存储子系统和相对廉价的处理器的系统,或者用于其中优先考虑功率效率并且主用户应用将需要大部分存储资源的系统,或者用于使用多个低功率计算节点和/或微服务器的以数据为中心的大型系统。此外,简单的硬件模块允许低延迟且大带宽FTL事务,并且允许将闪存命令传送到闪存设备。因此,即使在运行独立并发的高吞吐量存储密集型应用的系统上,所述系统和方法也允许获得非常高的性能。此外,由于硬件的简单性,以相对低的成本获得该性能。例如在成本/千兆字节(GB)或成本/带宽方面,示例性实施例的成本/性能明显好于常规解决方案。在此描述的各实施例非常适合于针对具有有限可用资源的系统,以低成本提供高性能。
现在转到图1,总体示出闪存控制器系统的一个实施例。所述系统包括主计算机100,其经由接口104连接或耦合到硬件模块102。在一个实施例中,主计算机100是计算机系统,其具有主板和到一个或多个高速总线的连接,这些高速总线用作到硬件模块102的接口104。主计算机100包括位于主板(例如,母板)上的硬件,例如执行软件(包括软件模块106)的处理器和存储器。在一个实施例中,软件模块106负责大多数复杂的闪存控制器管理功能,例如垃圾收集、耗损均衡、优化数据放置和调度、RAID管理、闪存灾难恢复以及高层ECC功能。
在一个实施例中,硬件模块102是物理设备,并且主要负责容纳闪存模块110、控制器子模块108和快速存储模块112。在此,术语“硬件模块”和“固态存储板”可以交换使用。在一个实施例中,控制器子模块108访问FTL,FTL位于硬件模块102上的一个或多个固态内存设备中,例如DRAM112或某个其它高速易失性或非易失性存储器。如所属技术领域公知的,FTL包括逻辑地址与物理地址之间的映射。闪存模块110包括位于硬件模块102上的闪存设备(例如,芯片)118。闪存设备是可以由示例性实施例实现的一种类型固态存储设备的一个实例。可以实现的固态存储设备的其它实例包括PCM、磁RAM和电阻式RAM。
硬件模块102的主要功能包括高效地转换逻辑-物理地址以便促进从闪存设备118读取,并且将闪存命令低延迟且高带宽地传送到闪存设备118。为此,硬件模块102还包括接口管理功能,其管理快速FTL存储模块112与闪存模块110之间的快速存储接口114。此外,硬件模块102负责在控制器子模块108上运行的适合于硬件加速的某些简单操作,例如主要错误纠正代码(ECC)和某些RAID加速操作。控制器子模块108经由闪存接口116连接到闪存模块110。此外,硬件模块102促进恢复物理-逻辑地址映射,以便实现有效的管理算法操作,包括软件模块106执行的数据放置和垃圾收集算法。在一个实施例中,使用接口104互连主计算机100上的硬件模块102和软件模块106。在一个实施例中,接口104是高速主机-硬件接口,例如高速外围组件互连(PCIe)接口。
图1中所示的用于SSD管理的实施例使用软件模块106(例如,在主计算机100上执行的驱动器)和硬件模块102(例如,在具有合适硬件的卡上执行,例如现场可编程门阵列或“FPGA”,或者控制器专用集成电路或“ASIC”)之间的闪存控制器管理功能的创新拆分。在一个实施例中,用于加速诸如ECC之类的特定功能的硬件和用于逻辑地址与物理地址之间的转换的表在硬件模块102中,并且诸如数据放置、耗损均衡与控制(例如,基于耗损测量)和垃圾收集之类的闪存管理过程以及诸如耗损数据和页状态之类的元数据在主计算机100中。布置和硬件的简单性降低所需主计算机系统的成本和硬件模块102的设计复杂性。例如,在图1中所示的实施例中,硬件模块不需要像所属技术领域通常所做的那样实现通用处理器核心功能。
主计算机100和硬件模块102之间的闪存控制器功能的拆分允许获得非常高的性能。这是由于主计算机100上的软件模块106控制复杂的闪存操作,其中主计算机100具有足够的计算系统资源以执行操作。这与完全在硬件模块102上执行复杂闪存操作相反,其中硬件模块102上的资源可能导致复杂操作的瓶颈。图1中所示的布置还节省昂贵的系统资源,例如通过将FTL存储模块112放在硬件模块102上,节省主计算机100上的主存储器。因此,各实施例用于促进新应用(例如数据中心网络中的微服务器,其中诸如主存储器之类的系统资源受限)中的高性能闪存I/O,并且由于硬件模块102的简单性而允许加速开发。图2-6中示出如何根据各实施例执行示例性闪存操作的描述。
图2是根据一个实施例的用于执行读取闪存操作(也称为读取逻辑地址闪存操作)的过程的框图。在第一方框200,主计算机100接收对SSD(例如闪存设备118)的用户读取请求。在方框202,将读取请求拆分为物理读取单元,其中每个单元具有它自己的逻辑地址。然后在方框204,将请求排队到出站请求队列。在方框206,直接或者通过推断其状态(如果给出命令和请求的先前历史以及硬件模块102本身的能力)检查硬件模块102,以便查看它是否就绪以发送(CTS)读取请求。如果可自由执行或接受命令,则硬件模块102指示CTS。如果硬件模块102为CTS,则将请求发送到硬件模块102,如方框208中所示。在方框210,如果模块未就绪,则系统将等待直到硬件模块102指示其就绪。在一个实施例中,方框200-210由主计算机100执行,并且方框212-220由硬件模块102执行。
在方框212,接收对每个逻辑地址的读取请求。在方框214,硬件模块102判定例如必须在其中执行读取操作的同一硬件资源(可能的硬件资源包括闪存模块、内存设备或芯片、平面管芯)中是否具有未完成的读取请求。如果具有未完成的读取请求,则模块等待,如方框215中所示。如果没有未完成的读取请求,则执行方框216以便读取指定逻辑地址处的快速FTL存储模块112(也称为“FTL”)以确定对应于该逻辑地址的物理地址。在方框218,向从FTL获得的物理地址发送读取命令。FTL在硬件模块102上执行逻辑地址到物理地址的转换。在方框220,在完成读取之后,硬件模块102经由接口104,将数据连同逻辑地址一起传送到主计算机100。在另一个实施例中,还经由所述接口将物理地址发送到主计算机100。
图3是根据一个实施例的用于写入闪存操作的过程的框图。在方框300,主计算机100接收用户写入请求。在方框302,将写入请求拆分为物理写入单元,其中每个单元具有逻辑地址。在方框304,数据放置算法获得每个逻辑地址的物理地址。数据放置算法在主计算机100的软件模块106上执行,并且根据主计算机100上诸如耗损信息和其它闪存设备信息之类的选定数据(例如,元数据)确定物理地址。在一个实施例中,选择由放置算法确定的物理写入位置,以便使用所属技术领域公知的确定算法,跨不同的物理位置均衡耗损。在另一个实施例中,由放置算法确定的物理位置例如用于减少未来垃圾收集操作中的写入放大;用于确定此类物理位置的算法是所属技术领域公知的。在另一个实施例中,固态存储设备包括具有不同性能特征的设备的混合,例如单层单元(SLC)和多层单元(MLC)闪存。在这种情况下,放置算法在确定物理位置时考虑设备的物理特征。例如,将预计频繁重写的数据放在高耐用性设备(例如SLC闪存)上,而将不频繁更新的数据放在低耐用性设备(例如MLC闪存)上。在一个实施例中,建立逻辑地址与物理地址之间的对应响应于以下项中的至少一个:至少一个固态存储设备的耗损测量、主板的预期性能,以及至少一个固态存储设备的特征。在一个实施例中,建立逻辑地址与物理地址之间的对应响应于ECC解码器的先前输出。因此,当确定数据的物理位置时,考虑与先前错误的位置有关的信息。
然后在方框306,将请求排队到出站请求队列。在方框308,检查硬件模块102以便查看它是否就绪以发送(CTS)写入请求。在方框310,如果模块未就绪,则系统将等待直到硬件模块102指示其就绪。如果硬件模块102为CTS,则将请求(包括要写入的数据以及逻辑和物理地址)发送到硬件模块102,如方框312中所示。在一个实施例中,方框300-312由主计算机100执行,并且方框314-322由硬件模块102执行。
在方框314,接收对每个逻辑和物理地址的写入请求。在方框316,硬件模块102判定例如必须在其中执行写入操作的同一硬件资源(可能的硬件资源包括闪存模块、存储设备或芯片、平面管芯)中是否具有未完成的写入请求。如果具有未完成的写入请求,则模块等待,如方框317中所示。如果没有未完成的写入请求,则硬件模块102针对每个物理地址执行写入以便更新指定逻辑地址处的FTL,如方框318中所示。在方框320,向闪存设备或存储器的物理地址发送写入命令,其中该物理地址与在方框318写入到FTL中的地址匹配。在方框322,向主计算机100发送写入完成确认。
图4是根据一个实施例的用于垃圾收集操作的过程的框图。在方框400,主计算机100查找要在操作期间擦除的最佳候选数据块。在一个实施例中,最佳候选者是具有最少数量的有效页的块。在另一个实施例中,候选者是选定的,因为它具有最少量的耗损。主计算机100可以使用存储在主计算机100上描述闪存属性的元数据和其它信息,标识擦除操作的候选者。此外,主计算机100上的元数据还提供选择进行擦除的数据块的物理地址。存储在主机处的元数据包括以下一个或多个:每个物理页的有效状态、每个块的状态,可能包括当前写入页、擦除状态、擦除计数(精确或近似)以及正在执行的当前操作(如果有)。在一个实施例中,由独立的执行线程处理该信息。在其它实施例中,当触发垃圾收集操作时处理该信息。
在方框402,针对在方框400标识的数据块中的任何有效页,对读取物理地址闪存操作(例如下面图5中描述的闪存操作)进行排队。在一个实施例中,使用与要由垃圾收集过程擦除的数据块的起始物理地址的偏移值,确定有效页的物理地址。对要擦除的有效页的物理地址进行排队,并且在方框404,对有效页的写入和由物理读取返回的逻辑地址进行排队。与物理页关联的逻辑地址在写入时从附加到页内容的元数据获得,并且在执行读取操作时与页内容一起取回。在方框406,在将方框404的所有有效页写入(即,复制)到另一个位置之后,对要擦除的数据块的擦除请求进行排队。所述过程维护逻辑地址,因为有效页的物理地址将更改,其中使用数据的新地址更新FTL。在一个实施例中,由主计算机100执行图4中所示的处理。
图5是根据一个实施例的用于读取物理地址闪存操作的过程的框图。在方框500,将用于从物理地址读取数据的请求排队到主计算机100的出站请求队列。在方框502,检查硬件模块102以便查看它是否就绪以发送读取请求。在方框506,如果模块未就绪,则系统将等待直到硬件模块102指示其就绪。如果硬件模块102就绪以发送,则将读取请求和对应的物理地址发送到硬件模块102,如方框504中所示。在一个实施例中,方框500-504由主计算机100执行,并且方框508-514由硬件模块102执行。
在方框508,接收对每个物理地址的读取请求。在方框510,硬件模块102判定是否具有未完成的物理地址读取请求。如果具有未完成的读取请求,则模块等待,如方框511中所示。如果没有未完成的请求,则在方框512,向指定的物理地址发送读取命令。在指定的物理地址处读取数据之后,硬件模块102将数据和逻辑地址传送到主计算机100。例如针对上面图4中描述的垃圾收集操作,当主计算机100知道它正在请求的数据的物理地址时,可以执行读取物理地址操作。
在其它示例性实施例中,在读取数据之后,仅向主计算机100提供确认。将读取数据存储在硬件模块102上,例如存储在控制器子模块108上的缓冲区中或者硬件模块102处可用的其它存储器中。在其它实施例中,将与页读取关联的逻辑地址传送回主计算机100。在其它实施例中,将逻辑地址存储在硬件模块102处的可用缓冲区中。每当将数据存储在硬件模块102处的缓冲区中时,保存待擦除页所需的写入操作不包括传输来自主计算机100的页数据,但仅要求从硬件模块102处的缓冲区获得用于写入操作的数据。
图6是根据一个实施例的用于闪存擦除操作的过程的框图。在方框600,获得闪存中要擦除的数据块的物理地址。在方框602,将擦除请求发送到出站请求队列。在方框604,检查硬件模块102以便查看它是否就绪以发送擦除请求。在方框608,如果模块未就绪,则系统将等待直到硬件模块102指示其就绪。如果硬件模块102就绪以发送,则将擦除请求和对应的物理地址发送到硬件模块102,如方框610中所示。在一个实施例中,方框600、602、604、608和610全部由主计算机100执行,并且方框612、614、616和618由硬件模块102执行。
在方框612,接收对每个物理地址的擦除请求。在方框614,硬件模块102判定是否具有未完成的擦除请求。如果没有未完成的擦除请求,则模块等待,如方框615中所示。如果具有未完成的请求,则在方框616,向指定的物理地址和闪存设备118发送擦除命令。在指定的物理地址处擦除数据之后,硬件模块102将已擦除数据的确认传送到主计算机100。例如针对上面图4中描述的垃圾收集操作,当主计算机知道它正在请求擦除的数据的物理地址时,可以执行擦除操作。
各实施例提供一种高性能固态设备管理解决方案,其可以与低成本容量处理器一起使用。具体地说,各实施例包括在主处理器上运行的软件模块和包括闪存的硬件模块之间的闪存管理复杂性的拆分。在各实施例中,主处理器和系统位于计算机系统的主板上,其硬件模块是包括闪存、控制器子模块和快速存储模块的卡。硬件模块上的快速存储模块(包括FTL)托管用于逻辑到物理地址转换的信息(例如,表),以便提供快速读取操作性能。通过将地址转换信息放置在硬件模块上,节省主机上的宝贵存储器。描述闪存的其它元数据位于主机上,以便利用主处理器。利用主机上的元数据在主机上执行的操作使用主处理器,并且对连接到闪存的硬件控制器的性能没有负面影响。主机和硬件模块之间的数据和操作的划分还简化系统,同时通过在模块上没有处理器而降低成本。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
在此示出的流程图只是一个实例。在此描述的这些图或步骤(或操作)可以存在许多变化而不偏离本发明的精神。例如,可以按不同的顺序执行所述步骤,或者可以添加、删除或修改步骤。所有这些变化都被视为要求保护的本发明的一部分。
尽管描述了本发明的优选实施例,但所属技术领域的技术人员应该理解,可以在现在和将来进行各种落入下面权利要求范围的改进和增强。这些权利要求应该被解释为维护对最初描述的本发明的正确保护。
Claims (25)
1.一种系统,包括:
主板和与所述主板分离的固态存储板,所述主板经由接口总线耦合到所述固态存储板,所述固态存储板包括固态内存设备和固态存储设备,所述固态存储设备包括由物理地址标识的多个物理存储位置,所述系统被配置为执行一种方法,所述方法包括:
建立第一逻辑地址与所述固态存储设备上的第一物理地址之间的对应,所述建立由位于所述主板上的软件模块执行;
存储所述第一逻辑地址与所述第一物理地址之间的所述对应,所述存储在所述固态内存设备上可由位于所述固态存储板上的地址转换器模块访问的位置中;以及
将所述第一逻辑地址转换为所述固态存储设备上的所述第一物理地址,所述转换由位于所述固态存储板上的所述地址转换器模块执行,所述转换基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应。
2.根据权利要求1的系统,其中所述固态存储设备包括闪存设备。
3.根据权利要求1或2的系统,其中所述转换响应于接收到读取数据的请求,所述请求包括所述第一逻辑地址,以及所述方法还包括从所述第一物理地址取回数据。
4.根据权利要求1、2或3的系统,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于包括所述第一逻辑地址和写入数据的写入请求,以及所述方法还包括将所述固态存储设备中的所述写入数据写入由所述第一物理地址标识的物理位置。
5.根据任一上述权利要求的系统,其中所述主板位于主计算机上。
6.根据任一上述权利要求的系统,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于至少一个所述固态存储设备的耗损测量。
7.根据任一上述权利要求的系统,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于所述主板的预期性能。
8.根据任一上述权利要求的系统,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于至少一个所述固态存储设备的特征。
9.根据任一上述权利要求的系统,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于错误纠正代码(ECC)解码器的先前输出。
10.一种方法,包括:
建立第一逻辑地址与位于固态存储板上的固态存储设备上的第一物理地址之间的对应,所述固态存储设备包括由物理地址标识的多个物理存储位置,所述建立由位于与所述固态存储板分离的主板上的软件模块执行,所述主板经由接口总线耦合到所述固态存储板;
存储所述第一逻辑地址与所述第一物理地址之间的所述对应,所述存储在固态内存设备上可由地址转换器模块访问的位置中,所述地址转换器模块和所述固态内存设备位于所述固态存储板上;以及
将所述第一逻辑地址转换为所述第一物理地址,所述转换由所述地址转换器模块执行,并且基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应。
11.根据权利要求10的方法,其中所述固态存储设备包括闪存设备。
12.根据权利要求10或11的方法,其中响应于接收到读取数据的请求而执行所述转换,所述请求包括所述第一逻辑地址,以及所述方法还包括从所述第一物理地址取回数据。
13.根据权利要求10、11或12的方法,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于包括所述第一逻辑地址和写入数据的写入请求,以及所述方法还包括将所述固态存储设备中的所述写入数据写入由所述第一物理地址标识的物理位置。
14.根据权利要求10至13中的任一权利要求的方法,其中所述主板位于主计算机上。
15.根据权利要求10至14中的任一权利要求的方法,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于至少一个所述固态存储设备的耗损测量。
16.根据权利要求10至15中的任一权利要求的方法,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于所述主板的预期性能。
17.根据权利要求10至16中的任一权利要求的方法,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于至少一个所述固态存储设备的特征。
18.根据权利要求10至17中的任一权利要求的方法,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于错误纠正代码(ECC)解码器的先前输出。
19.一种计算机程序产品,包括:
计算机可读存储介质,其具有随其包含的计算机可读程序代码,所述计算机可读程序代码包括:
被配置为执行以下操作的计算机可读程序代码:
建立第一逻辑地址与位于固态存储板上的固态存储设备上的第一物理地址之间的对应,所述固态存储设备包括由物理地址标识的多个物理存储位置,所述建立由位于与所述固态存储板分离的主板上的软件模块执行,所述主板经由接口总线耦合到所述固态存储板;
存储所述第一逻辑地址与所述第一物理地址之间的所述对应,所述存储在固态内存设备上可由地址转换器模块访问的位置中,所述地址转换器模块和所述固态内存设备位于所述固态存储板上;以及
将所述第一逻辑地址转换为所述第一物理地址,所述转换由所述地址转换器模块执行,并且基于先前建立的所述第一逻辑地址与所述第一物理地址之间的对应。
20.根据权利要求19的计算机程序产品,其中所述固态存储设备包括闪存设备。
21.根据权利要求19或20的计算机程序产品,其中响应于接收到读取数据的请求而执行所述转换,所述请求包括所述第一逻辑地址,以及所述方法还包括从所述第一物理地址取回数据。
22.根据权利要求19、20或21的计算机程序产品,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于包括所述第一逻辑地址和写入数据的写入请求,以及所述方法还包括将所述固态存储设备中的所述写入数据写入由所述第一物理地址标识的物理位置。
23.根据权利要求19至22中的任一权利要求的计算机程序产品,其中所述主板位于主计算机上。
24.根据权利要求19至23中的任一权利要求的计算机程序产品,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于以下项中的至少一个:至少一个所述固态存储设备的耗损测量、所述主板的预期性能,以及至少一个所述固态存储设备的特征。
25.根据权利要求19至24中的任一权利要求的计算机程序产品,其中建立所述第一逻辑地址与所述第一物理地址之间的对应响应于错误纠正代码(ECC)解码器的先前输出。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/336,385 | 2011-12-23 | ||
US13/336,385 US9740439B2 (en) | 2011-12-23 | 2011-12-23 | Solid-state storage management |
PCT/EP2012/073660 WO2013092121A1 (en) | 2011-12-23 | 2012-11-27 | Solid-state storage management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103999060A true CN103999060A (zh) | 2014-08-20 |
Family
ID=47294872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280062727.1A Pending CN103999060A (zh) | 2011-12-23 | 2012-11-27 | 固态存储管理 |
Country Status (5)
Country | Link |
---|---|
US (3) | US9740439B2 (zh) |
CN (1) | CN103999060A (zh) |
DE (1) | DE112012005222T5 (zh) |
GB (1) | GB2511669A (zh) |
WO (1) | WO2013092121A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677595A (zh) * | 2016-01-21 | 2016-06-15 | 方一信息科技(上海)有限公司 | 一种同时实现计算加速和pciessd存储的fpga方法 |
CN107924405A (zh) * | 2016-01-29 | 2018-04-17 | 慧与发展有限责任合伙企业 | 在存储设备中存储数据 |
CN109491593A (zh) * | 2018-09-28 | 2019-03-19 | 方信息科技(上海)有限公司 | 一种数据存储管理系统及方法 |
CN109491934A (zh) * | 2018-09-28 | 2019-03-19 | 方信息科技(上海)有限公司 | 一种集成计算功能的存储管理系统控制方法 |
CN110968537A (zh) * | 2018-09-28 | 2020-04-07 | 方一信息科技(上海)有限公司 | 一种基于pcie ssd的fpga搜索匹配方法 |
CN111625477A (zh) * | 2016-07-01 | 2020-09-04 | 北京忆恒创源科技有限公司 | 访问擦除块的读请求的处理方法与装置 |
CN117149085A (zh) * | 2023-09-07 | 2023-12-01 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9740439B2 (en) | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
US20140047159A1 (en) * | 2012-08-10 | 2014-02-13 | Sandisk Technologies Inc. | Enterprise server with flash storage modules |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9552288B2 (en) * | 2013-02-08 | 2017-01-24 | Seagate Technology Llc | Multi-tiered memory with different metadata levels |
US10444998B1 (en) | 2013-10-24 | 2019-10-15 | Western Digital Technologies, Inc. | Data storage device providing data maintenance services |
US9330143B2 (en) * | 2013-10-24 | 2016-05-03 | Western Digital Technologies, Inc. | Data storage device supporting accelerated database operations |
US20150301930A1 (en) * | 2014-04-18 | 2015-10-22 | HGST Netherlands B.V. | File storage via physical block addresses |
US9383926B2 (en) * | 2014-05-27 | 2016-07-05 | Kabushiki Kaisha Toshiba | Host-controlled garbage collection |
WO2016032817A1 (en) * | 2014-08-26 | 2016-03-03 | Marvell World Trade Ltd. | Storage device controller architecture |
US9875039B2 (en) | 2014-09-30 | 2018-01-23 | Sandisk Technologies Llc | Method and apparatus for wear-leveling non-volatile memory |
US10318414B2 (en) * | 2014-10-29 | 2019-06-11 | SK Hynix Inc. | Memory system and memory management method thereof |
KR102506135B1 (ko) * | 2015-03-16 | 2023-03-07 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US10353768B2 (en) * | 2015-06-29 | 2019-07-16 | Hitachi, Ltd. | Computer system and computer system control method |
KR102445662B1 (ko) | 2015-07-01 | 2022-09-22 | 삼성전자주식회사 | 스토리지 장치 |
US9836243B1 (en) * | 2016-03-31 | 2017-12-05 | EMC IP Holding Company LLC | Cache management techniques |
US20180024751A1 (en) * | 2016-07-19 | 2018-01-25 | Western Digital Technologies, Inc. | Metadata management on a storage device |
US20180095788A1 (en) * | 2016-10-04 | 2018-04-05 | Pure Storage, Inc. | Scheduling operations for a storage device |
WO2019112907A1 (en) * | 2017-12-06 | 2019-06-13 | Rambus Inc. | Error-correction-detection coding for hybrid memory module |
TWI670594B (zh) * | 2018-01-18 | 2019-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置 |
US11263124B2 (en) | 2018-08-03 | 2022-03-01 | Micron Technology, Inc. | Host-resident translation layer validity check |
US11226907B2 (en) | 2018-12-19 | 2022-01-18 | Micron Technology, Inc. | Host-resident translation layer validity check techniques |
US11226894B2 (en) * | 2018-12-21 | 2022-01-18 | Micron Technology, Inc. | Host-based flash memory maintenance techniques |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
US12061550B2 (en) * | 2020-03-24 | 2024-08-13 | Intel Corporation | Coherent multiprocessing enabled compute in storage and memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277978B2 (en) * | 2003-09-16 | 2007-10-02 | Micron Technology, Inc. | Runtime flash device detection and configuration for flash data management software |
CN101236483A (zh) * | 2007-02-01 | 2008-08-06 | 三星电子株式会社 | 合作存储器管理 |
CN101923512A (zh) * | 2009-05-29 | 2010-12-22 | 晶天电子(深圳)有限公司 | 两层、三层闪存装置、智能存储开关和两层、三层控制器 |
US20110145488A1 (en) * | 2007-01-11 | 2011-06-16 | Hitachi, Ltd. | Flash memory module, storage apparatus using flash memory module as recording medium and address translation table verification method for flash memory module |
CN102272745A (zh) * | 2009-01-08 | 2011-12-07 | 美光科技公司 | 存储器系统控制器 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012135A (en) * | 1994-12-01 | 2000-01-04 | Cray Research, Inc. | Computer having multiple address ports, each having logical address translation with base and limit memory management |
US6377500B1 (en) * | 1999-11-11 | 2002-04-23 | Kabushiki Kaisha Toshiba | Memory system with a non-volatile memory, having address translating function |
US8266367B2 (en) | 2003-12-02 | 2012-09-11 | Super Talent Electronics, Inc. | Multi-level striping and truncation channel-equalization for flash-memory system |
US8341332B2 (en) | 2003-12-02 | 2012-12-25 | Super Talent Electronics, Inc. | Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices |
EP1706869B3 (en) * | 2004-01-19 | 2013-04-03 | Trek 2000 International Ltd | Portable data storage device using a memory address mapping table |
US20090063895A1 (en) | 2007-09-04 | 2009-03-05 | Kurt Smith | Scaleable and maintainable solid state drive |
US20090180248A1 (en) | 2008-01-10 | 2009-07-16 | Karsten Roth | Combination Drive |
US8472199B2 (en) | 2008-11-13 | 2013-06-25 | Mosaid Technologies Incorporated | System including a plurality of encapsulated semiconductor chips |
KR101600951B1 (ko) | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8612666B2 (en) | 2009-06-30 | 2013-12-17 | Intel Corporation | Method and system for managing a NAND flash memory by paging segments of a logical to physical address map to a non-volatile memory |
US20110041039A1 (en) | 2009-08-11 | 2011-02-17 | Eliyahou Harari | Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device |
US20110041005A1 (en) | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System |
JP5377175B2 (ja) | 2009-09-08 | 2013-12-25 | 株式会社東芝 | コントローラ、及びデータ記憶装置 |
KR101638061B1 (ko) | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
JP4901987B1 (ja) * | 2010-09-14 | 2012-03-21 | 株式会社東芝 | 記憶装置、電子機器及び誤りデータの訂正方法 |
GB2513551B (en) * | 2010-09-24 | 2018-01-10 | Ibm | High-speed memory system |
JP5581256B2 (ja) * | 2011-03-28 | 2014-08-27 | 株式会社東芝 | メモリシステム、コントローラ、およびメモリシステムの制御方法 |
US20120324143A1 (en) * | 2011-06-15 | 2012-12-20 | Data Design Corporation | Methods and apparatus for data access by a reprogrammable circuit module |
US9740439B2 (en) | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
-
2011
- 2011-12-23 US US13/336,385 patent/US9740439B2/en active Active
-
2012
- 2012-09-14 US US13/619,424 patent/US9772802B2/en not_active Expired - Fee Related
- 2012-11-27 GB GB1409447.8A patent/GB2511669A/en not_active Withdrawn
- 2012-11-27 CN CN201280062727.1A patent/CN103999060A/zh active Pending
- 2012-11-27 DE DE112012005222.6T patent/DE112012005222T5/de not_active Ceased
- 2012-11-27 WO PCT/EP2012/073660 patent/WO2013092121A1/en active Application Filing
-
2014
- 2014-01-20 US US14/158,899 patent/US9858015B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277978B2 (en) * | 2003-09-16 | 2007-10-02 | Micron Technology, Inc. | Runtime flash device detection and configuration for flash data management software |
US20110145488A1 (en) * | 2007-01-11 | 2011-06-16 | Hitachi, Ltd. | Flash memory module, storage apparatus using flash memory module as recording medium and address translation table verification method for flash memory module |
CN101236483A (zh) * | 2007-02-01 | 2008-08-06 | 三星电子株式会社 | 合作存储器管理 |
CN102272745A (zh) * | 2009-01-08 | 2011-12-07 | 美光科技公司 | 存储器系统控制器 |
CN101923512A (zh) * | 2009-05-29 | 2010-12-22 | 晶天电子(深圳)有限公司 | 两层、三层闪存装置、智能存储开关和两层、三层控制器 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677595A (zh) * | 2016-01-21 | 2016-06-15 | 方一信息科技(上海)有限公司 | 一种同时实现计算加速和pciessd存储的fpga方法 |
CN107924405A (zh) * | 2016-01-29 | 2018-04-17 | 慧与发展有限责任合伙企业 | 在存储设备中存储数据 |
CN107924405B (zh) * | 2016-01-29 | 2022-03-08 | 慧与发展有限责任合伙企业 | 用于存储数据的系统和方法、以及计算机可读介质 |
CN111625477A (zh) * | 2016-07-01 | 2020-09-04 | 北京忆恒创源科技有限公司 | 访问擦除块的读请求的处理方法与装置 |
CN111625477B (zh) * | 2016-07-01 | 2023-09-05 | 北京忆恒创源科技股份有限公司 | 访问擦除块的读请求的处理方法与装置 |
CN109491934A (zh) * | 2018-09-28 | 2019-03-19 | 方信息科技(上海)有限公司 | 一种集成计算功能的存储管理系统控制方法 |
CN109491593B (zh) * | 2018-09-28 | 2020-11-17 | 方一信息科技(上海)有限公司 | 一种数据存储管理系统及方法 |
CN110968537B (zh) * | 2018-09-28 | 2021-02-02 | 方一信息科技(上海)有限公司 | 一种基于pcie ssd的fpga搜索匹配方法 |
CN109491934B (zh) * | 2018-09-28 | 2021-03-02 | 方一信息科技(上海)有限公司 | 一种集成计算功能的存储管理系统控制方法 |
CN110968537A (zh) * | 2018-09-28 | 2020-04-07 | 方一信息科技(上海)有限公司 | 一种基于pcie ssd的fpga搜索匹配方法 |
CN109491593A (zh) * | 2018-09-28 | 2019-03-19 | 方信息科技(上海)有限公司 | 一种数据存储管理系统及方法 |
CN117149085A (zh) * | 2023-09-07 | 2023-12-01 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
CN117149085B (zh) * | 2023-09-07 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的快速寻址方法 |
Also Published As
Publication number | Publication date |
---|---|
US9858015B2 (en) | 2018-01-02 |
US20130166822A1 (en) | 2013-06-27 |
DE112012005222T5 (de) | 2014-08-28 |
GB201409447D0 (en) | 2014-07-09 |
WO2013092121A1 (en) | 2013-06-27 |
GB2511669A (en) | 2014-09-10 |
US9772802B2 (en) | 2017-09-26 |
US20140136769A1 (en) | 2014-05-15 |
US20130166826A1 (en) | 2013-06-27 |
US9740439B2 (en) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103999060A (zh) | 固态存储管理 | |
US11029853B2 (en) | Dynamic segment allocation for write requests by a storage system | |
US10564872B2 (en) | System and method for dynamic allocation to a host of memory device controller memory resources | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
CN112115067B (zh) | 闪存物理资源集合管理装置及方法及计算机可读取存储介质 | |
CN108153482B (zh) | Io命令处理方法与介质接口控制器 | |
US9423977B2 (en) | Lock-free communication storage request reordering | |
KR20100116396A (ko) | 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법 | |
US9940034B2 (en) | Reducing read access latency by straddling pages across non-volatile memory channels | |
CN111399750B (zh) | 闪存数据写入方法及计算机可读取存储介质 | |
KR102686749B1 (ko) | 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치 | |
US11308007B2 (en) | Apparatus and method and computer program product for executing host input-output commands | |
EP3926451B1 (en) | Communication of data relocation information by storage device to host to improve system performance | |
CN110895447B (zh) | 控制器及其操作方法 | |
KR20200016074A (ko) | 데이터 처리 시스템 및 그의 동작 방법 | |
US20200218646A1 (en) | System and method of fpga-executed flash translation layer in multiple solid state drives | |
KR102559549B1 (ko) | 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치 | |
Koh et al. | Faster than flash: An in-depth study of system challenges for emerging ultra-low latency SSDs | |
CN108153582B (zh) | Io命令处理方法与介质接口控制器 | |
JP2021149374A (ja) | データ処理装置 | |
CN108877862B (zh) | 页条带的数据组织以及向页条带写入数据的方法与装置 | |
KR102425470B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20210043001A (ko) | 하이브리드 메모리 시스템 인터페이스 | |
US20220405090A1 (en) | Data Storage Device Firmware Updates in Composable Infrastructure | |
US11086804B2 (en) | Storage system and method for reducing read-retry duration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140820 |
|
RJ01 | Rejection of invention patent application after publication |