CN107632939A - 用于存储装置的映射表 - Google Patents

用于存储装置的映射表 Download PDF

Info

Publication number
CN107632939A
CN107632939A CN201710504464.XA CN201710504464A CN107632939A CN 107632939 A CN107632939 A CN 107632939A CN 201710504464 A CN201710504464 A CN 201710504464A CN 107632939 A CN107632939 A CN 107632939A
Authority
CN
China
Prior art keywords
memory array
storage device
nonvolatile memory
virtual
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710504464.XA
Other languages
English (en)
Other versions
CN107632939B (zh
Inventor
A·C·盖姆利
C·C·麦坎布里奇
P·J·桑德斯
L·A·桑德尔贝史
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN107632939A publication Critical patent/CN107632939A/zh
Application granted granted Critical
Publication of CN107632939B publication Critical patent/CN107632939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开一种用于存储装置的映射表。在一些实例中,存储装置包含:第一非易失性存储器阵列,其经配置以存储来自主机装置和所述存储装置的数据;以及第二非易失性存储器阵列,其经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。所述存储装置还包含控制器,所述控制器经配置以将虚拟至物理映射表存储到所述第一非易失性存储器阵列,并将所述虚拟至物理映射表的一部分存储到所述第二非易失性存储器阵列。

Description

用于存储装置的映射表
技术领域
本发明涉及用于存储装置的映射表,且更具体地说,涉及用于存储装置的虚拟至物理(“V2P”)映射表。
背景技术
数据存储装置,例如硬盘驱动器(HDD)或固态驱动器(SSD),可维持虚拟至物理(virtual to physical,V2P)映射表,所述映射表将分配给实际存储介质的物理块地址(PBA)映射到虚拟块地址(所述虚拟块地址还可称为“逻辑块地址”或“LBA”)。数据存储装置可维持V2P映射表以便暴露更多的静态LBA以供运行中的应用程序或操作系统使用。从运行中的应用程序或操作系统的角度来看,分配给数据的LBA不变(且因此为静态的)。数据存储装置可将LBA映射到在数据存储装置的操作期间改变的PBA。SDD可例如执行各种类型的维护(例如,出于损耗平衡、垃圾收集等的目的),所述维护在PBA之间移动数据。为解释数据的移动,数据存储装置可改变LBA到新PBA的关联或映射。
数据存储装置可将V2P映射表的副本存储在数据存储装置的大容量存储区域的非易失性存储器阵列中,以用于在电力循环之间的保留的目的。然而,为实现更高效的访问(access)(就访问时间而言),数据存储装置可将V2P映射表从非易失性存储器加载到易失性存储器,例如动态随机存取存储器(“DRAM”)。
发明内容
在一些实例中,本发明描述一种存储装置,其包含:第一非易失性存储器阵列,其经配置以存储来自主机装置和存储装置的数据;以及第二非易失性存储器阵列,其经配置以存储来自存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。存储装置还包含控制器,所述控制器经配置以将虚拟至物理映射表存储到第一非易失性存储器阵列,并将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列。
在一些实例中,本发明描述一种方法,其包含通过存储装置的控制器将虚拟至物理映射表存储到第一非易失性存储器阵列,所述第一非易失性存储器阵列经配置以存储来自主机装置和存储装置的数据。所述方法还包含通过控制器将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列,所述第二非易失性存储器阵列经配置以存储来自存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
在一些实例中,本发明描述一种计算机可读存储装置,其包含在被执行时配置存储装置的一个或更多个处理器以将虚拟至物理映射表存储到第一非易失性存储器阵列的指令,所述第一非易失性存储器阵列经配置以存储来自主机装置和存储装置的数据。所述计算机可读存储装置还包含在被执行时配置所述一个或更多个处理器以将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列的指令,所述第二非易失性存储器阵列经配置以存储来自存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
一个或更多个实例的细节在附图和以下描述中阐述。其它特征、目标以及优点从说明和图式并且从权利要求书中将是明显的。
附图说明
图1是说明根据本公开的一种或更多种技术的实例存储环境的概念性框图,其中数据存储装置可存储虚拟至物理(V2P)映射表。
图2是说明根据本公开的一种或更多种技术的在控制器内的各种模块的概念性框图。
图3是说明根据本公开的一种或更多种技术的存储到易失性和非易失性存储器阵列的V2P映射表的概念性框图。
图4是说明根据本公开的一种或更多种技术的用于存储V2P映射表的一部分的实例技术的流程图。
图5是说明根据本公开的一种或更多种技术的用于在启动期间访问V2P映射表的实例技术的流程图。
具体实施方式
数据存储装置可包含虚拟至物理(V2P)映射表,所述映射表将通过主机装置存储的数据的虚拟地址关联到识别在存储器阵列中的位置的物理地址。数据存储装置可将V2P映射表存储在数据存储装置的大容量存储区域(其可表示用于存储来自存储装置和主机装置两者的数据的非易失性存储器阵列(NVMA))中,以便在电力循环之间保留V2P映射表。在启动过程(boot process)期间,数据存储装置可从大容量存储区域检索V2P映射表,并将V2P映射表存储到易失性存储器以实现V2P映射表的更高效访问(就访问时间而言)。
然而,主机装置可在数据存储装置已将V2P映射表完全地存储到易失性存储器之前尝试写入或读取数据(通过发出写请求或读请求)。当V2P映射表在易失性存储器中尚不可访问时,数据存储装置可推迟处理写请求或读请求直到V2P映射表已被存储到易失性存储器中,或从大容量存储区域检索V2P映射表的条目,这两个操作都可增加在写请求或读请求的处理中的时延(latency)。
一般来说,本发明描述通过数据存储装置中的控制器实施的技术,所述数据存储装置经配置以将V2P映射表的一部分存储到非易失性存储器阵列,所述非易失性存储器阵列与大容量存储区域分开。控制器可在启动过程期间访问V2P映射表的所述部分以处理写请求或读请求,并由此在数据存储装置在易失性存储器中构造V2P映射表的完整版本(其还可称为“间接系统”)时定位数据。
图1是说明根据本公开的一种或更多种技术的实例存储环境2的概念性框图,其中数据存储装置6可存储V2P映射表18。举例来说,主机装置4可利用包含在数据存储装置6中的非易失性存储器来存储和检索数据。在一些实例中,存储环境2可包含多个存储装置,例如数据存储装置6,其可用作存储阵列。举例来说,存储环境2可包含多个存储装置6,所述多个存储装置6配置为共同充当主机装置4的大容量存储装置的廉价/独立磁盘冗余阵列(RAID)。数据存储装置6可为例如固态驱动器(SSD)、硬盘驱动器(HDD)、混合驱动器(其包含固态存储器和磁性介质两者),等等。
存储环境2可包含主机装置4,所述主机装置可将数据存储到一个或更多个存储装置(例如数据存储装置6)和/或从一个或更多个存储装置(例如数据存储装置6)检索数据。如图1中所说明,主机装置4可经由接口14与数据存储装置6通信。主机装置4可包括广泛范围的装置的中的任一个,包含计算机服务器、网络附加存储(NAS)单元、桌上型计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、手机(例如所谓的“智能”手机、所谓的“智能”平板)、电视机、相机、显示器装置、数字媒体播放器、视频游戏控制台、视频流装置等等。通常,主机装置4包括具有处理器的任何装置,所述处理器可指代能够处理数据的任何形式的硬件,并且可包含通用处理单元,例如中央处理单元(CPU)、专用硬件(例如专用集成电路(ASIC))、可配置硬件,例如现场可编程门阵列(FPGA),或借助软件指令、微代码、固件等等来配置的任何其它形式的处理单元。
如图1中所说明,数据存储装置6可包含控制器8、非易失性存储器阵列10A至10N(NVMA 10)、电源11、易失性存储器12以及接口14。在一些实例中,数据存储装置6可包含为了简洁起见未在图1中示出的附加组件。例如,数据存储装置6可包含印刷电路板(PCB),数据存储装置6的组件机械地附接到所述印刷电路板,并且所述印刷电路板包含电气互连数据存储装置6的组件的电导迹线,等等。在一些实例中,数据存储装置6的物理尺寸和连接器配置可符合一个或更多个标准形状因子。一些实例标准形状因子包含但不限于,3.5”硬盘驱动器(HDD)、2.5”HDD、1.8”HDD、外围组件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe xl、x4、x8、xl6、PCIe迷你卡、MiniPCI等)。在一些实例中,数据存储装置6可直接耦合(例如,直接焊接)到主机装置4的母板。
数据存储装置6可包含用于与主机装置4介接(interface)的接口14。接口14可包含用于与主机装置4交换数据的数据总线和用于与主机装置4交换命令的控制总线中的一者或两者。接口14可根据任何合适的协议操作。例如,接口14可根据以下协议中的一个或更多个操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI-express或非易失性存储器Express(NVMe)。接口14的电气连接(例如,数据总线、控制总线或两者)电连接到控制器8,从而在主机装置4与控制器8之间提供电气连接,允许在主机装置4与控制器8之间交换数据。在一些实例中,接口14的电气连接还可准许数据存储装置6从主机装置4接收电力。例如,如图1中所说明,电源11可经由接口14从主机装置4接收电力。
数据存储装置6可包含电源11,所述电源可将电力提供到数据存储装置6的一个或更多个组件。当在标准模式下操作时,电源11可使用通过外部装置(例如主机装置4)提供的电力来将电力提供到一个或更多个组件。举例来说,电源11可使用经由接口14从主机装置4接收的电力来将电力提供到一个或更多个组件。
电源11中的一个或更多个电力存储组件的一些实例包含但不限于,电容器、超级电容器、电池等等。在一些实例中,通过一个或更多个电力存储组件可存储在电源11中的能量的量可为所述一个或更多个电力存储组件的成本和/或大小(例如,面积/体积)的函数。换句话说,当通过一个或更多个电力存储组件存储的能量的量增加时,所述一个或更多个电力存储组件的成本和/或大小也增加。
数据存储装置6可包含易失性存储器12,所述易失性存储器12可被控制器8用于暂时地存储信息,包含V2P映射表18B。在一些实例中,控制器8可将易失性存储器12用作高速缓存。举例来说,控制器8可将经高速缓存的信息存储在易失性存储器12中,直到经高速缓存的信息被写入到NVMA 10。易失性存储器12可消耗从电源11接收到的电力以维持存储到易失性存储器12的数据。易失性存储器12的实例包含但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)以及同步动态RAM(SDRAM,例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4等等)。
NVMA 10可包含任何类型的非易失性存储器装置。NVMA 10的一些实例包含但不限于,闪存存储器装置(例如,“与非”(NAND)或“或非”(NOR))、相变存储器(PCM)装置、电阻式随机存取存储器(ReRAM)装置、磁阻式随机存取存储器(MRAM)装置、铁电随机存取存储器(F-RAM)、全息照相存储器装置以及任何其它类型的非易失性存储器装置。
在一些实例中,NVMA 10可包含闪存存储器装置,其用作数据存储装置6的大容量存储装置。闪存存储器装置可包含基于“与非”或“或非”的闪存存储器装置,且可基于每一闪存存储器单元的晶体管的浮置栅极中包含的电荷来存储数据。在“与非”闪存存储器装置中,闪存存储器装置可划分成多个块,所述块可划分成多个页。特定存储器装置内的多个块中的每一块可包含多个“与非”单元。“与非”单元的行可使用字线来电连接以界定多个页中的某一页。
NVMA 10可用作大容量存储装置并可包含闪存存储器装置。闪存存储器可具有例如成本、大小以及耐久性等益处,但闪存存储器还可在程序时间、损耗平衡、垃圾收集以及延长访问时间的其它策略上具有问题。易失性存储器装置,例如DRAM,可具有比闪存存储器装置更快的访问时间。然而,不同于NVMA 10,易失性存储器装置在没有电源的情况下可能不存储数据。
数据存储装置6包含控制器8,所述控制器8可管理数据存储装置6的一个或更多个操作。举例来说,控制器8可管理从NVMA 10或易失性存储器12读取数据和/或将数据写入到所述NVMA 10或易失性存储器12。在一些实例中,控制器8可通过与NVMA 10或易失性存储器12交换信号,来管理从NVMA 10或易失性存储器12读取数据和/或将数据写入到所述NVMA或易失性存储器。控制器8可根据通信协议来与NVMA 10或易失性存储器12交换信号。控制器8可包含微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它数字逻辑电路。
控制器8可将用于存储装置6的V2P映射表18A存储到NVMA 10的一个或更多个非易失性存储器阵列。图1将V2P映射表18A描绘为存储到NVMA10B,但V2P映射表18A可被存储到NVMA 10中的任一个。V2P映射表18A可表示存储虚拟地址与物理地址之间的关联的表格。虚拟地址可包含逻辑块地址(LBA)。物理地址可包含物理块地址(PBA)。控制器8可将虚拟地址暴露给主机装置4以允许NVMA 10的更多静态寻址。也就是说,控制器8可执行多个操作,例如损耗平衡和垃圾收集,所述操作包括数据在NVMA 10内的重定位。
控制器8可将虚拟地址呈现给主机装置4并维持V2P映射表18A,所述映射表18A将虚拟地址映射到物理地址,所述物理地址可由于数据重定位操作而改变。当控制器8执行数据重定位操作以将数据从NVMA 10的与第一物理地址相关联的一个可寻址部分移动到NVMA10的与第二物理地址相关联的另一可寻址部分时,控制器8可在V2P映射表18A中更新分配给数据以关联虚拟地址的虚拟地址与第二物理地址而非第一物理地址之间的关联。V2P映射表18A可提供间接层(且因此还可被称为“间接表18A”),所述间接层允许将静态虚拟地址重定向到物理地址中的任一个。通过利用V2P映射表18A,控制器8可执行数据重定位操作,而不必将底层物理地址的改变告知主机装置4。
NVMA 10B和其它NVMA 10还可存储关于V2P映射表18A中的条目的位置的上下文信息。控制器8可在每一启动过程期间检测并加载上下文信息,以便访问V2P映射表18A中的条目。
在一些实例中,控制器8可在每一启动过程期间将V2P映射表18A的副本写入到易失性存储器12作为V2P映射表18B,以便将比用以访问存储到NVMA 10B的V2P映射表18A的访问时间更快的访问时间提供给V2P映射表18B。V2P映射表18B可为V2P映射表18A的完整版本。在一些实例中,鉴于易失性存储器12可能不能够在没有电力时保留数据,控制器8可在每一启动过程期间将V2P映射表18B写入到易失性存储器12。
易失性存储器12可具有比数据存储装置6的大容量存储区域的NVMA 10更快的访问时间。因此,主机装置4的操作系统可经历关于读请求和写请求的时延,直到控制器8已将V2P映射表18B写入到易失性存储器12。将V2P映射表18B写入到易失性存储器12的时间长度可取决于V2P映射表18B的大小。V2P映射表18B的大小自身可取决于大容量存储区域(即,图1的实例中的NVMA 10)的大小。例如,一兆兆字节(TB)的存储装置可产生大小近似一千兆字节(GB)的V2P映射表。存储装置6的存储容量增长,则用以将V2P映射表18B写入到易失性存储器12的时间长度也增长。
鉴于直到V2P映射表18B在易失性存储器12中完全可访问时才可访问数据,主机装置4在主机装置4的初始加电期间可能不能检索数据以启动操作系统(或存储到NVMA 10的其它软件)。存储装置的大小增长,则由于将V2P映射表18A复制到易失性存储器12中导致的启动延迟将也增加。此类延迟可使用户体验变糟。此外,启动延迟可损害强加特定的启动时间的特定装置认证。例如,为接收“超极本”认证,装置可必须在7秒或更短时间内从电源关闭状态启动(这可被称为“冷启动”)。
根据本公开中描述的技术,控制器8可经配置以将V2P映射表18C的一部分存储到NVMA 16,所述NVMA 16可与在存储装置6内的大容量存储区域的NVMA 10不同。也就是说,NVMA 10可经配置以存储来自主机装置4和数据存储装置6的数据,而NVMA 16可经配置以仅存储来自数据存储装置6的数据。由此,NVMA 16表示经保留以由数据存储装置6用于高速缓存V2P映射表18A的一部分的目的的NVMA,所述部分示出为V2P映射表18C的一部分。相反,数据存储装置6可将NVMA 10用作大容量存储装置以存储来自主机装置4的用户文件。
控制器8可以减少在启动过程期间的延迟的方式,选择V2P映射表18A的部分以存储到NVMA 16作为V2P映射表18C的部分。换句话说,控制器8可经配置以如下方式维持V2P映射表18C的部分:提供V2P映射表18C的所述部分的在启动过程期间被频繁访问的条目。控制器8可执行算法以识别V2P映射表18B的部分的在主机装置4的启动过程期间被频繁访问的条目。
尽管关于频率来描述,但控制器8可执行或实施任何形式的算法以识别V2P映射表18B的将被存储到V2P映射表18C的部分的条目。例如,控制器8可执行或实施机器学习算法(例如,以训练人工神经网络、执行决策树学习或深度学习、训练贝叶斯(Bayesian)网络等)以识别V2P映射表18C的部分。
为进一步促进启动时间的减少,数据存储装置6可包含具有比其它类型的NVMA更快的读取时间的特定类型的NVMA 16。例如,NVMA 16可利用MRAM或PCM,其具有比闪存存储器更快的读取时间。鉴于较快的访问时间,使用MRAM或PCM可进一步减少启动时间。
在操作中,控制器8在数据存储装置6的电源关闭之前存储V2P映射表18C的部分。控制器8还在数据存储装置6的电源关闭之前将V2P映射表18A维持在NVMA 10B中。当数据存储装置6电源关闭(即,不再供应有电力)时,易失性存储器12丢失V2P映射表18B。
在重新加电(即,供应有足够的电力以操作)后,控制器8可从主机装置4接收读请求,所述读请求请求数据以用于启动操作系统(例如,操作系统的内核)。在一些实例中,控制器8可从主机装置4接收针对存储器操作的请求以用于除操作系统外的应用程序。控制器8可实施或执行算法以识别与在数据存储装置6的启动期间发送的每一请求相关联的条目,从而存储统计元数据,所述统计元数据指示响应于所述请求访问哪些条目。
在主机装置4的启动过程期间,控制器8还可将V2P映射表18A复制到易失性存储器12。控制器8尝试使用V2P映射表18C的部分来处理读请求,而非在响应于读请求之前等待直到V2P映射表18A被完全复制到易失性存储器12。换句话说,在将V2P映射表18A从NVMA 10B复制到易失性存储器12时并响应于读请求(或写请求),控制器8可访问V2P映射表18C的存储到NVMA 16的部分。在这个意义上来说,控制器8将实际上可称为“NVMA高速缓存”的组件维持为接近于控制器8(如果不集成在控制器8内),这在V2P映射表18B在易失性存储器12尚不可访问时,促进对在主机装置4的启动期间的读请求和写请求的处理。
控制器8可继续使用V2P映射表18C的部分来处理读请求和/或写请求,直到V2P映射表18B在易失性存储器12中可访问。一旦V2P映射表18B在易失性存储器12中可访问,控制器8就可使用V2P映射表18B来处理读请求和写请求。一旦V2P映射表18B在易失性存储器12中可访问,控制器8还可基于统计元数据来更新V2P映射表18C的部分。例如,控制器8可替换V2P映射表18C的部分中的某些条目,所述条目被访问的频率低于如通过统计元数据所识别其它条目。
以此方式,控制器8可将V2P映射表18A的一部分存储在本地NVMA 16中,以便减少在启动延迟方面的影响,所述启动延迟由于将V2P映射表从存储装置6的大容量存储区域(即,图1的实例中的NVMA 10B)加载到易失性存储器12而导致。控制器8可采用算法以尝试选择V2P映射表18A的在启动过程期间被主机装置4频繁访问的部分。由此,控制器8可在将V2P映射表18B加载到易失性存储器12中时,使用V2P映射表18C来更加快速地处理读请求或写请求。此外,NVMA 16可配置为具有比其它类型的NVMA更快的访问时间的特定类型的NVMA,以进一步促进在启动过程期间的读请求和写请求。所述技术可因此促进更好的用户体验,同时还提供更快的启动时间(相对于不以存储V2P映射表18A的一部分的NVMA 16作为特征的数据存储装置)以促进成功的装置认证。
尽管描述为在启动过程期间执行,但控制器8可经配置以在V2P映射表18B在易失性存储器12中不可访问的任何时间期间执行本公开的技术。V2P映射表18B在被锁定用于其它读或写任务(例如垃圾收集或损耗平衡)时在易失性存储器12中不可访问。一般地,所述技术可在V2P映射表18B在易失性存储器12中不可访问的任何时间段期间执行。
图2是说明根据本公开的一种或更多种技术的在控制器8内的各种模块的概念性框图。在一些实例中,控制器8可包含地址转换模块20、启动模块22、写模块24、读模块26、算法模块28以及选择模块30。在其它实例中,控制器8可包含附加的模块或硬件单元,或可包含较少的模块或硬件单元。控制器8可包含微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它数字逻辑电路。
控制器8可经由接口14与主机装置4介接,并管理将数据存储到NVMA10和易失性存储器12以及从所述NVMA 10和易失性存储器12检索数据。例如,控制器8的写模块24可管理到NVMA 10的写入。写模块24可经由接口14从主机装置4接收指示数据存储装置6存储与LBA相关联的数据的消息和所述数据。类似地,读模块26可管理从NVMA 10和易失性存储器12读取数据。
地址转换模块20可跟踪通过写模块24对NVMA 10执行的写操作。地址转换模块20还可跟踪NVMA 10中的数据的擦除。对写操作和擦除操作的跟踪可被称为日志(journaling)或日志记录(logging)。地址转换模块20可保持写操作和擦除操作的日志、快照或日志记录,以便更新存储到NVMA 10B和易失性存储器12的V2P映射表。地址转换模块20可使用日志、快照或日志记录来更新V2P映射表32的存储到NVMA 16的部分。V2P映射表32的所述部分可为V2P映射表18A的存储到数据存储装置6的大容量存储区域的NVMA 10B的完整版本的部分副本。V2P映射表32的所述部分可为基于图或基于树的结构,而非或结合V2P映射表18A的部分副本。V2P映射表32的所述部分可驻留在地址转换模块20、选择模块30、控制器8中的另一模块内,或在控制器8外。
V2P映射表18A、18B的存储到NVMA 10B和易失性存储器12的完整版本可包含标记,其指示整个表格中的每一条目是否都存储在V2P映射表18C的存储到NVMA 16的部分中。V2P映射表18A、18B中的存储到NVMA 10B和易失性存储器12的每一标记可包含脏位,其指示V2P映射表18C的完整版本的存储到NVMA 16的部分是否已用最近的写操作和擦除操作更新。脏条目可为在V2P映射表18C的存储到NVMA 16的部分中的条目,所述条目已在NVMA 16中被修改,但未在V2P映射表18A或V2P映射表18B中被修改。数据存储装置6可在电源关闭时将脏条目存储在暂时的位置中。在下一启动过程期间,数据存储装置6可从暂时的位置读取脏条目,或等待直到V2P映射表18B在易失性存储器12中可用。
地址转换模块20可在数据存储装置6电源关闭之前更新V2P映射表。如果数据存储装置6突然失去电力,那么地址转换模块20可在关机之前或在下一启动过程期间更新存储到NVMA 10B的V2P映射表18A。地址转换模块20可使用在数据存储装置6电源关闭时保存的快照和日志来重建V2P映射表18A的部分,这可增加启动过程所需的时间。
图2将NVMA 10描绘为在控制器8的外部。然而,在一些实例中,可存储V2P映射表32的部分的NVMA 16可在控制器8内部,或在数据存储装置6内的在大容量存储区域外部的另一位置处。NVMA 16还可驻留在数据存储装置6内部的SSD卡内。NVMA 16的位置可影响读模块26能够读取V2P映射表32的部分的速度。
例如,写模块24可与地址转换模块20通信,所述地址转换模块20管理由主机装置4使用的LBA之间的转换。地址转换模块20可管理由写模块24使用的数据和PBA的存储位置。控制器8的地址转换模块20可利用存储到NVMA 10B的V2P映射表18A,所述V2P映射表18A将通过NVMA 10存储的数据的LBA转换成指示数据在数据存储装置6内的物理位置的PBA。例如,主机装置4可将通过NVMA 10存储的数据的LBA用于去往数据存储装置6的指令或消息中,而写模块24可利用PBA来控制将数据写入到NVMA 10。类似地,读模块26可利用PBA来控制从NVMA 10读取数据。
以此方式,可允许主机装置4将静态LBA用于某一数据集,而数据实际所存储在的PBA可改变。地址转换模块20可维持存储到NVMA 10B的V2P映射表18A以将LBA映射到PBA,以允许主机装置4使用静态LBA,而数据的PBA可例如由于损耗平衡、垃圾收集等等而改变。地址转换模块20可维持日志、快照或日志记录以跟踪写操作和擦除操作,所述操作影响存储到数据存储装置6的大容量存储装置的数据。地址转换模块20可基于日志、快照或日志记录来更新V2P映射表。
地址转换模块20可维持存储到NVMA 10B和易失性存储器12的V2P映射表,以及V2P映射表32的存储到NVMA 16的部分。V2P映射表可包含用于存储到数据存储装置6的大容量存储区域的数据的条目。地址转换模块20可使用各种格式来将条目存储在V2P映射表中,例如散列表或散列字典、设定/全关联表和/或基于树的间接系统。地址转换模块20可使用这些格式中的任何格式、其组合或修改,或未在本文中列出的其它格式。
如上文所论述,控制器8的写模块24可执行一个或更多个操作以管理将数据写入到NVMA 10。例如,写模块24可通过以下操作来管理将数据写入到NVMA 10:选择NVMA 10内的一个或更多个块来存储数据,并使得NVMA10的包含选定块的存储器装置实际地存储数据。如上文所描述,写模块24可使得地址转换模块20基于选定块来更新V2P映射表。举例来说,写模块24可从主机装置4接收包含数据的单元和LBA的消息,选择NVMA 10的特定存储器装置内的块以存储数据,使得NVMA 10的特定存储器装置实际地存储数据,并且使得地址转换模块20更新存储到易失性存储器12的V2P映射表18B以指示对应于在特定存储器装置内的选定块的LBA。
对于对易失性存储器12中的V2P映射表18B的每一更新,写模块24还可更新存储到NVMA 10B的V2P映射表18A。写模块24还可更新V2P映射表32的存储到NVMA 16的部分,如果所述更新影响V2P映射表32的存储到NVMA 16的部分中的条目的话。所述更新可紧接在易失性存储器12中的更新后进行,或地址转换模块20可维持更新的日志以在稍后的时间发送到写模块24。如果数据存储装置6突然失去电力,那么地址转换模块20可在关机之前或在下一启动过程期间更新存储到NVMA 10B的V2P映射表18A和V2P映射表32的存储到NVMA 16的部分。
V2P映射表还可促进从主机装置4接收到的数据在多个PBA上的划分。例如,在一些实例中,从主机装置4接收到的数据可在大于单个块的单元中。由此,控制器8可选择多个块以各自存储数据的单元的一部分。与在NVMA 10的单个存储器装置内选择多个块以存储数据的单元的部分相反,控制器8可从多个NVMA 10中选择块以存储数据的单元的部分。控制器8随后可使得NVMA 10中的多个存储器装置并行地存储数据的单元的部分。以此方式,控制器8可通过将数据的部分写入到NVMA 10中不同存储器装置中来增加可将数据存储到NVMA 10的速率。
为将具有逻辑值0(带电)的位写入到具有前一逻辑值1(不带电)的位,使用大电流。此电流可足够大,使得所述电流可对相邻闪存存储器单元的电荷造成不注意的改变。为防范不注意的改变,闪存存储器单元的整个块可在将任何数据写入到所述块内的单元之前擦除至逻辑值1(不带电)。因为此原因,闪存存储器单元可在块级别上被擦除并在页级别上被写入。
因此,为写入甚至将消耗小于一页的量的数据,控制器8可使得擦除整个块。这可引起写入放大,所述写入放大指代从主机装置4接收到的将被写入到NVMA 10的数据的量与实际地写入到NVMA 10的数据的量的比值。将无写入放大的情况与存在写入放大的情况相比,写入放大造成闪存存储器单元的更快损耗。当闪存存储器单元由于用于擦除闪存存储器单元的相对较高电压被擦除时,可发生对闪存存储器单元的损耗。经过多个擦除周期,相对较高电压可引起闪存存储器单元的物理变化。最终,闪存存储器单元可损坏,使得数据可不再被写入到所述单元。
启动模块22可控制在每一启动过程期间的数据存储装置6的操作。例如,启动模块22可在启动过程期间协调上下文信息的恢复、加载以及重建,并且驱动配置,例如间接系统。启动模块22可指导写模块24将V2P映射表18B存储到易失性存储器12。启动模块22还可确定将哪些条目存储在V2P映射表32的存储到NVMA 16的部分中。启动模块22可指导读模块26从NVMA16获得PBA,如果主机装置4请求在V2P映射表32的部分中列出的数据的话。
读模块26可控制从NVMA 10和易失性存储器12读取数据。例如,读模块26可从主机装置4接收请求具有相关联的LBA的数据的消息。读模块26可确定所请求的数据是否在V2P映射表32的存储到NVMA 16的部分中列出。如果所请求的数据在V2P映射表32的存储到NVMA16的部分中列出,那么读模块26可读取V2P映射表32的部分并将一个或更多个PBA传递到地址转换模块20。
选择模块30可确定将哪些条目存储在V2P映射表32的存储到NVMA 16的部分中。选择模块30可选择在启动过程期间被主机装置4频繁访问的页。选择模块30可与算法模块28交互以决定将哪一个算法用于选择页以存储在V2P映射表32的部分中。算法模块28可采用高速缓存算法或方法,例如离散驱动命名空间、学习数据访问模式的算法、在数据存储装置6的第一启动访问期间的基于时间/计数器的高速缓存、在数据存储装置6的正常操作期间的基于动态(dynamic-based)或基于配置(profile-based)的算法和/或静态/主机指导命令。基于计数器的配置可在启动过程期间跟踪由主机装置4请求的数据,以为未来的启动过程做准备。算法模块28可采用基于散列和/或基于树的方法来选择并存储V2P映射表32的部分的条目。算法模块28可采用这些算法或方法中的任何算法或方法,包含任何数目的算法或方法的组合、混合或修改。算法模块28还可采用未在本文中列出的算法或方法。
选择模块30还可与主机装置4通信以选择V2P映射表32的部分中的条目。主机装置4可确定哪些数据在启动过程期间是重要的并将此信息传送到选择模块30,且选择模块30可在V2P映射表32的存储到NVMA 16的部分中列出所述重要数据。此外,选择模块30可在每一启动过程期间跟踪主机装置4所请求的数据。选择模块30随后可在V2P映射表32的部分中列出最多请求的数据。
根据本公开的一个或更多个实例,数据存储装置6(例如,启动模块22)可确定写模块24是否已将V2P映射表写入到易失性存储器12。如果写模块24已将V2P映射表写入到易失性存储器12,那么启动模块22可指导读模块26从存储到易失性存储器12的V2P映射表18B读取一个或更多个条目。如果写模块24尚未将V2P映射表18B写入到易失性存储器12,那么启动模块22可确定某一页是否在V2P映射表32的存储到NVMA 16的部分中列出。如果所述页在V2P映射表32的部分中列出,那么启动模块22可指导读模块26从V2P映射表32的存储到NVMA16的部分读取一个或更多个条目。如果所述页未在V2P映射表32的部分中列出,那么启动模块22可指导读模块26等待,直到写模块24将V2P映射表18B写入到易失性存储器12。
启动模块22可具有用于处理以下情况的各种方法:其中主机装置4请求未存储在V2P映射表32的存储到NVMA 16的部分中的数据。在此类情况下,启动模块22可从NVMA 10或从存储到易失性存储器12的不完整V2P映射表18B检索PBA。启动模块22还可延迟读模块26,直到V2P映射表18B完全存储到易失性存储器12。
图3是说明根据本公开的一种或更多种技术的存储到易失性和非易失性存储器阵列40、42、44的V2P映射表的概念性框图。数据存储装置6可包含一个或更多个易失性存储器阵列42和NVMA 40、44。数据存储装置6中的易失性存储器和非易失性存储器可为任何合适类型的存储器,包含闪存存储器装置、硬盘驱动器、DRAM、PCM、MRAM或任何其它合适类型的存储器。
在一些实例中,“与非”阵列40可存储用于数据存储装置6的V2P映射表的完整版本。例如,V2P映射表的完整版本可包含用于存储到“与非”阵列40的全部数据的条目。存储到“与非”阵列40的V2P映射表可包含将数据的每一页匹配到数据存储装置6中的PBA的条目。存储到“与非”阵列40的V2P映射表可包含一对或更多对LBA和PBA。在一些实例中,如果数据存储装置6具有一兆兆字节的容量,那么V2P映射表可在“与非”阵列40中占用近似一千兆字节的存储空间。数据存储装置6可在数据存储装置6电源关闭之前用新的写操作和擦除操作来更新存储到“与非”阵列40的V2P映射表。在突然失去电力的情况下,数据存储装置6可在关机之前或在恢复供电时更新存储到“与非”阵列40的V2P映射表。
“与非”阵列40可为非易失性存储器,其即使在数据存储装置6电源关闭时也保留数据。“与非”阵列40可经配置以存储来自数据存储装置6和主机装置的数据。“与非”阵列40可具有比易失性存储器42和NVMA 44更慢的访问时间。然而,“与非”阵列40可具有比易失性存储器42和NVMA 44大得多的存储容量。与易失性存储器42、NVMA 44以及其它类型的存储器的成本、大小以及耐久性相比,数据存储装置6可由于“与非”阵列40的成本、大小以及耐久性而将“与非”阵列40用于大容量存储。
当数据存储装置6通电时,易失性存储器42可存储V2P映射表的完整版本的副本。数据存储装置6可在每一启动过程期间将V2P映射表的完整版本写入到易失性存储器42。在每一启动过程期间用以在易失性存储器42中重构V2P映射表的时间可与V2P映射表的大小相关。用以在易失性存储器42中重构V2P映射表的时间可影响在启动时的用户体验。在重构时段期间,主机装置可能不能访问存储到“与非”阵列40的页,因为主机装置可能不具有所述页的PBA。
存储到易失性存储器的V2P映射表可顺序地或以某一其它格式列出LBA。当主机装置通过提供LBA来请求某一页时,控制器8可找到存储到易失性存储器42的匹配PBA。以类似的方式,当主机装置将数据发送到数据存储装置6以用于写入到“与非”阵列40时,易失性存储器42可将数据的PBA置于V2P映射表中。易失性存储器42可在通过主机装置提供的LBA处将数据的PBA置于V2P映射表中,如图3中示出。数据存储装置6可针对“与非”阵列40中的每一写操作和擦除操作,更新存储到易失性存储器42的V2P映射表以及V2P映射表的存储到NVMA 44的部分。与在存储到易失性存储器42的V2P映射表和V2P映射表的存储到NVMA 44的部分中的条目相比,数据存储装置6可较不频繁地更新在存储到“与非”阵列40的V2P映射表中的条目。
易失性存储器42可具有比“与非”阵列40更快的访问时间。通过将V2P映射表存储到易失性存储器42,主机装置可通过快速地确定页的PBA来快速地访问和读取页。然而,易失性存储器42每字节可具有比“与非”阵列40更高的成本,并每字节消耗比“与非”阵列40更多的功率。
NVMA 44可存储V2P映射表的一部分,其包含主机装置在启动过程期间可请求的条目。V2P映射表的部分可包含存储到“与非”阵列40和易失性存储器42的V2P映射表的子集而非全部。V2P映射表的部分中的条目可对应于主机装置在启动过程期间很可能请求的页。数据存储装置6可使用算法来选择条目以包含在V2P映射表的存储到NVMA 44的部分中。
如图3中示出,V2P映射表的存储到NVMA 44的部分可列出LBA和PBA。NVMA 44可顺序地或以任何其它合适的格式列出条目。当主机装置请求在某一LBA处的页时,数据存储装置6可从NVMA 44获得对应的PBA以确定存储到“与非”阵列40的数据的物理位置。
如“与非”阵列40一样,NVMA 44可为非易失性存储器,但NVMA 44可与“与非”阵列40分开。NVMA 44可经配置以仅存储来自数据存储装置6的数据而不存储来自主机装置的数据。“与非”阵列40和NVMA 44都可驻留在数据存储装置6中。在一些实例中,NVMA 44可驻留在数据存储装置6中的SSD卡内。
出于各种原因,NVMA 44的大小和存储容量可比“与非”阵列40小得多。NVMA 44每字节可比“与非”阵列40更加昂贵。因此,用NVMA 44构造整个存储装置可能是低成本效益的。在一些实例中,NVMA 44可为一种存储器,例如PCM或MRAM,所述存储器具有比“与非”阵列40更快的访问时间,并在数据存储装置6电源关闭时保留数据。
图4是说明根据本公开的一种或更多种技术的用于存储V2P映射表的一部分的实例技术的流程图。技术50关于图1的系统来描述,所述系统包含控制器8,但其它组件,例如图2中的控制器8或图3中的数据存储装置6,也可执行类似的技术。
图4的技术包含将V2P映射表18A存储到第一非易失性存储器阵列10B(52)。第一NVMA 10B可经配置以存储来自主机装置4和数据存储装置6的数据。NVMA 10B可位于数据存储装置6的大容量存储区域。存储到NVMA10B的V2P映射表18A可包含条目,该条目将通过主机装置4使用的LBA匹配到其中数据存储到NVMA 10的大容量存储区域的PBA。不同于易失性存储器12,第一NVMA 10B可能能够在数据存储装置6电源关闭时保留数据。
图4的技术还包含将V2P映射表18C的一部分存储到与第一NVMA 10B分开的第二NVMA 16(54)。第二NVMA 16可经配置以存储来自数据存储装置6的数据。NVMA 16可驻留在数据存储装置6的大容量存储区域外部。NVMA 16可包含V2P映射表18A的存储到NVMA 10B的完整版本的条目的子集。所述子集可包含用于在启动过程期间被主机装置4频繁访问的数据的条目。第二NVMA 16可能能够在数据存储装置6电源关闭时保留数据。第二NVMA 16还可具有比NVMA 10B更快的访问时间,这可在启动过程期间改进数据存储装置6的性能。
图5是说明根据本公开的一种或更多种技术的用于在启动期间访问V2P映射表的实例技术的流程图。技术60关于图1的系统来描述,所述系统包含控制器8,但其它组件,例如图2中的控制器8或图3中的数据存储装置6,也可执行类似的技术。
图5的技术包含在数据存储装置6处接收由主机装置4发出的针对LBA X的命令(62)。主机装置4可通过将主机装置4已分配给某页的LBA提供到数据存储装置6来请求所述页。控制器8中的地址转换模块20可接收LBA,且可负责确定匹配的PBA。
图5的技术还包含确定在易失性存储器12中是否完全构建间接系统(64)。间接系统可包含V2P映射表18B的存储到易失性存储器12的完整版本。数据存储装置6可在数据存储装置6的每一启动过程期间将V2P映射表18B的完整版本写入到易失性存储器12。当V2P映射表18B的完整版本在易失性存储器12中可访问并在所述易失性存储器12中更新时,间接系统可完全构建。
如果间接系统完全构建,那么图5的技术还包含针对与LBA X相关联的物理位置读取间接系统(66)。间接系统中的V2P映射表可包含匹配LBA和PBA的条目。地址转换模块20可指导控制器8中的读模块26读取易失性存储器12以获得匹配LBA X的PBA,如通过主机装置4请求。
在读取间接系统后,图5的技术还包含访问“与非”阵列(68)。“与非”阵列可位于NVMA 10中,并且可用作数据存储装置6的大容量存储装置。读模块26可读取NVMA 10以获得通过主机装置4请求的数据。读模块26可从PBA读取对应于LBA X的数据。
在访问“与非”阵列后,图5的技术还包含将所请求的数据发送到主机装置4(70)。控制器8中的读模块26可经由接口14将所请求的数据发送到主机装置4。
如果间接系统未完全构建,那么图5的技术包含确定所请求的数据是否在即时启动(instant-on)高速缓存中被跟踪(72)。即时启动高速缓存可位于NVMA 16中,其中存储V2P映射表18C的部分。即时启动高速缓存在“即时”的严格定义上可并非为瞬时的,而是可对人类用户呈现为瞬时的。控制器8可确定NVMA 16是否将用于LBA X的条目存储在V2P映射表18C的部分中。
如果NVMA 16中的即时启动高速缓存跟踪所请求的数据,那么图5的技术还包含针对所请求的数据的物理位置读取即时启动高速缓存(74)。地址转换模块20可指导读模块26读取V2P映射表的存储到NVMA 16的部分,以获得与LBA X相关联的PBA。
在读取即时启动高速缓存后,图5的技术包含访问“与非”阵列(68)。“与非”阵列可位于NVMA 10中,并且可用作数据存储装置6的大容量存储装置。读模块26可读取NVMA 10以获得通过主机装置4请求的数据。读模块26可从PBA读取对应于LBA X的数据。在访问“与非”阵列后,图5的技术还包含将所请求的数据发送到主机装置4(70)。控制器8中的读模块26可经由接口14将所请求的数据发送到主机装置4。
如果即时启动高速缓存并未跟踪所请求的数据,那么图5的技术包含等待直到构建间接系统(76)。写模块24可通过将V2P映射表18B写入到易失性存储器12来构建间接系统。构建间接系统还可包含更新V2P映射表18B。在构建间接系统后,地址转换模块20可指导读模块26通过读取存储到易失性存储器12的V2P映射表18B来获得对应于LBA X的PBA。
在获得PBA后,图5的技术包含访问“与非”阵列(68)。“与非”阵列可位于NVMA 10中,并且可用作数据存储装置6的大容量存储装置。读模块26可读取NVMA 10以获得通过主机装置4请求的数据。读模块26可从PBA读取对应于LBA X的数据。在访问“与非”阵列后,图5的技术还包含将所请求的数据发送到主机装置4(70)。控制器8中的读模块26可经由接口14将所请求的数据发送到主机装置4。
以下实例可说明本公开的技术中的一种或更多种。
实例1.一种存储装置包含:第一非易失性存储器阵列,其经配置以存储来自主机装置和所述存储装置的数据;以及第二非易失性存储器阵列,其经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。存储装置还包含控制器,所述控制器经配置以将虚拟至物理映射表存储到第一非易失性存储器阵列,并将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列。
实例2.根据实例1所述的存储装置,其中控制器进一步经配置以使用算法从虚拟至物理映射表选择条目以存储到第二非易失性存储器阵列。
实例3.根据实例1或2所述的存储装置,其中所述算法包括以下各条目中的一个:离散驱动命名空间、机器学习算法或基于配置的算法。
实例4.根据实例1至3所述的存储装置,其中控制器经配置以将虚拟至物理映射表的完整版本存储到第一非易失性存储器阵列。控制器进一步经配置以在启动过程期间将虚拟至物理映射表的完整版本存储到易失性存储器阵列。
实例5.根据实例1至4中的任一个所述的存储装置,其中控制器进一步经配置以确定虚拟至物理映射表在易失性存储器阵列中不可访问。控制器进一步经配置以确定条目位于虚拟至物理映射表的存储到第二非易失性存储器阵列的部分中。控制器进一步经配置以从虚拟至物理映射表的存储到第二非易失性存储器阵列的部分读取条目。
实例6.根据实例1至5中的任一个所述的存储装置,其中控制器进一步经配置以确定存储到第一非易失性存储器阵列的虚拟至物理映射表在启动过程期间在易失性存储器阵列中不可访问。控制器进一步经配置以确定条目在启动过程期间不存储在虚拟至物理映射表的存储到第二非易失性存储器阵列的部分中。控制器进一步经配置以在虚拟至物理映射表在易失性存储器阵列可访问时,从虚拟至物理映射表读取条目。
实例7.根据实例1至6中的任一个所述的存储装置,其中第一非易失性存储器阵列包括闪存存储器阵列,并且其中第二非易失性存储器阵列包括磁阻式随机存取存储器阵列或相变存储器阵列中的一个。
实例8.根据实例1至7中的任一个所述的存储装置,其中虚拟至物理映射表的存储到第二非易失性存储器阵列的部分包括散列表、关联表或基于树的间接系统。
实例9.根据实例1至8中的任一个所述的存储装置,其中控制器经配置以在存储装置电源关闭之前,更新虚拟至物理映射表的存储到第二非易失性存储器阵列的部分。
实例10.根据实例1至9中的任一个所述的存储装置,其中虚拟至物理映射表指示一对或更多对逻辑地址和物理地址。
实例11.根据实例1至10中的任一个所述的存储装置,其中第二非易失性存储器阵列经配置以仅存储来自存储装置的数据而非来自主机装置的数据。
实例12.根据实例1至11中的任一个所述的存储装置,其中虚拟至物理映射表的存储到第二非易失性存储器阵列的部分包括虚拟至物理映射表的存储到第一非易失性存储器阵列的一部分的副本。
实例13.根据实例1至12中的任一个所述的存储装置,其中第一非易失性存储器阵列位于存储装置的大容量存储区域中,并且其中第二非易失性存储器阵列位于控制器中。
实例14.根据实例1至13中的任一个所述的存储装置,其中控制器进一步经配置以,在将存储到第一非易失性存储器阵列的虚拟至物理映射表复制到易失性存储器阵列时并响应于读请求或写请求,访问虚拟至物理映射表的存储到第二非易失性存储器阵列的部分。
实例15.一种方法包含通过存储装置的控制器将虚拟至物理映射表存储到第一非易失性存储器阵列,所述第一非易失性存储器阵列经配置以存储来自主机装置和所述存储装置的数据。所述方法还包含通过控制器将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列,所述第二非易失性存储器阵列经配置以存储来自存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
实例16.根据实例15所述的方法,其进一步包含通过控制器并使用算法从虚拟至物理映射表选择条目以存储到第二非易失性存储器阵列。
实例17.根据实例15至16中的任一个所述的方法,其进一步包含通过控制器确定虚拟至物理映射表在易失性存储器阵列中不可访问。所述方法进一步包含通过控制器确定条目位于虚拟至物理映射表的存储到第二非易失性存储器阵列的部分中。所述方法进一步包含通过控制器从虚拟至物理映射表的存储到第二非易失性存储器阵列的部分读取条目。
实例18.根据实例15至17中的任一个所述的方法,其进一步包含通过控制器确定存储到第一非易失性存储器阵列的虚拟至物理映射表在启动过程期间在易失性存储器阵列中不可访问。所述方法进一步包含通过控制器确定条目在启动过程期间不存储在虚拟至物理映射表的存储到第二非易失性存储器阵列的部分中。所述方法进一步包含在虚拟至物理映射表在易失性存储器阵列可访问时,通过控制器从虚拟至物理映射表读取条目。
实例19.根据实例15至18中的任一个所述的方法,其中第一非易失性存储器阵列包括闪存存储器阵列,并且其中第二非易失性存储器阵列包括磁阻式随机存取存储器阵列或相变存储器阵列中的一个。
实例20.根据实例15至19中的任一个所述的方法,其进一步包括,在将存储到第一非易失性存储器阵列的虚拟至物理映射表复制到易失性存储器阵列时并响应于读请求或写请求,访问虚拟至物理映射表的存储到第二非易失性存储器阵列的部分。
实例21.一种计算机可读存储装置,其包含在被执行时配置所述存储装置的一个或更多个处理器以进行以下操作的指令:将虚拟至物理映射表存储到第一非易失性存储器阵列,所述第一非易失性存储器阵列经配置以存储来自主机装置和所述存储装置的数据;以及将虚拟至物理映射表的一部分存储到第二非易失性存储器阵列,所述第二非易失性存储器阵列经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
实例22.根据实例18所述的计算机可读存储介质,其进一步包含在被执行时使得一个或更多个处理器执行根据实例15至20中的任一个所述的方法的指令。
本公开中描述的技术可至少部分用硬件、软件、固件或其任何组合实施。例如,所描述的技术的各方面可在一个或更多个处理器内实施,包含一个或更多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其它等效集成或离散逻辑电路,以及此类组件的任何组合。术语“处理器”或“处理电路”一般可单独地或与其它逻辑电路组合来指代前述逻辑电路中的任何电路,或任何其它等效电路。包含硬件的控制单元还可执行本公开的技术中的一个或更多个。
此类硬件、软件以及固件可在相同装置内或在不同的装置内实施以支持本公开中所描述的各种技术。此外,所描述的单元、模块或组件中的任何单元、模块或组件可一起或单独地实施为离散但可互操作的逻辑装置。将不同特征描绘为模块或单元是意在突出不同的功能方面,而未必意指此类模块或单元必须通过单独的硬件、固件或软件组件实现。相反,与一个或更多个模块或单元相关联的功能性可通过单独的硬件、固件或软件组件执行,或集成在共同的或单独的硬件、固件或软件组件内。
本公开中描述的技术还可在包含用指令编码的计算机可读存储介质的制品中实施或编码。在包含用指令编码的计算机可读存储介质的制品中嵌入或编码的指令,可使得一个或更多个可编程处理器或其它处理器实施本文中描述的技术中的一种或更多种,例如在计算机可读存储介质中包含或编码的指令通过一个或更多个处理器执行时。计算机可读存储介质可包含随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、硬盘、压缩光盘ROM(CD-ROM)、软盘、盒式磁带、磁性介质、光学介质或其它计算机可读介质。在一些实例中,制品可包含一个或更多个计算机可读存储介质。
在一些实例中,计算机可读存储介质可包含非暂时性介质。术语“非暂时性”可指示存储介质不用载波或传播的信号实施。在某些实例中,非暂时性存储介质可存储能够随时间变化的数据(例如,在RAM或高速缓存中)。
已经描述了各种实例。这些和其它实例都在以下权利要求书的范围内。

Claims (20)

1.一种存储装置,其包括:
第一非易失性存储器阵列,其经配置以存储来自主机装置和所述存储装置的数据;
第二非易失性存储器阵列,其经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开;以及
控制器,其经配置以:
将虚拟至物理映射表存储到所述第一非易失性存储器阵列;以及
将所述虚拟至物理映射表的一部分存储到所述第二非易失性存储器阵列。
2.根据权利要求1所述的存储装置,其中所述控制器进一步经配置以,在将存储到所述第一非易失性存储器阵列的所述虚拟至物理映射表复制到易失性存储器阵列时并响应于读请求或写请求,访问所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分。
3.根据权利要求1所述的存储装置,其中所述控制器进一步经配置以使用算法从所述虚拟至物理映射表选择条目以存储到所述第二非易失性存储器阵列。
4.根据权利要求3所述的存储装置,其中所述算法包括以下各项中的一个:离散驱动命名空间算法、机器学习算法或基于配置的算法。
5.根据权利要求1所述的存储装置,其中所述控制器经配置以将所述虚拟至物理映射表的完整版本存储到所述第一非易失性存储器阵列,以及
其中所述控制器进一步经配置以在启动过程期间将所述虚拟至物理映射表的所述完整版本存储到易失性存储器阵列。
6.根据权利要求1所述的存储装置,其中所述控制器进一步经配置以:
确定所述虚拟至物理映射表在易失性存储器阵列中是不可访问的;
确定条目位于所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分中;以及
从所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分读取所述条目。
7.根据权利要求1所述的存储装置,其中所述控制器进一步经配置以:
确定存储到所述第一非易失性存储器阵列的所述虚拟至物理映射表在启动过程期间在易失性存储器阵列中是不可访问的;
确定条目在所述启动过程期间不存储在所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分中;以及
当所述虚拟至物理映射表在所述易失性存储器阵列中可访问时,从所述虚拟至物理映射表读取所述条目。
8.根据权利要求1所述的存储装置,
其中所述第一非易失性存储器阵列包括闪存存储器阵列,以及
其中所述第二非易失性存储器阵列包括磁阻式随机存取存储器阵列或相变存储器阵列中的一个。
9.根据权利要求1所述的存储装置,其中所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分包括散列表、关联表或基于树的间接系统。
10.根据权利要求1所述的存储装置,其中所述控制器经配置以在所述存储装置电源关闭之前,更新所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分。
11.根据权利要求1所述的存储装置,其中所述虚拟至物理映射表指示一对或更多对逻辑地址和物理地址。
12.根据权利要求1所述的存储装置,其中所述第二非易失性存储器阵列经配置以仅存储来自所述存储装置的数据而非来自所述主机装置的数据。
13.根据权利要求1所述的存储装置,其中所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分包括所述虚拟至物理映射表的存储到所述第一非易失性存储器阵列的一部分的副本。
14.根据权利要求1所述的存储装置,
其中所述第一非易失性存储器阵列位于所述存储装置的大容量存储区域中,以及
其中所述第二非易失性存储器阵列位于所述控制器中。
15.一种方法,其包括:
通过存储装置的控制器将虚拟至物理映射表存储到第一非易失性存储器阵列,所述第一非易失性存储器阵列经配置以存储来自主机装置和所述存储装置的数据;以及
通过所述控制器将所述虚拟至物理映射表的一部分存储到第二非易失性存储器阵列,所述第二非易失性存储器阵列经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
16.根据权利要求15所述的方法,其进一步包括,在将存储到所述第一非易失性存储器阵列的所述虚拟至物理映射表复制到易失性存储器阵列时并响应于读请求或写请求,访问所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分。
17.根据权利要求15所述的方法,其进一步包括:
通过所述控制器并使用算法从所述虚拟至物理映射表选择条目以存储到所述第二非易失性存储器阵列。
18.根据权利要求15所述的方法,其进一步包括:
通过所述控制器确定所述虚拟至物理映射表在易失性存储器阵列中是不可访问的;
通过所述控制器确定条目位于所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分中;以及
通过所述控制器从所述虚拟至物理映射表的存储到所述第二非易失性存储器阵列的所述部分读取所述条目。
19.根据权利要求15所述的方法,
其中所述第一非易失性存储器阵列包括闪存存储器阵列,以及
其中所述第二非易失性存储器阵列包括磁阻式随机存取存储器阵列或相变存储器阵列中的一个。
20.一种计算机可读存储装置,其包括在被执行时配置所述存储装置的一个或更多个处理器以进行以下操作的指令:
将虚拟至物理映射表存储到第一非易失性存储器阵列,所述第一非易失性存储器阵列经配置以存储来自主机装置和所述存储装置的数据;以及
将所述虚拟至物理映射表的一部分存储第二非易失性存储器阵列,所述第二非易失性存储器阵列经配置以存储来自所述存储装置的数据,其中所述第二非易失性存储器阵列与所述第一非易失性存储器阵列分开。
CN201710504464.XA 2016-07-19 2017-06-28 用于存储装置的映射表 Active CN107632939B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/214,345 2016-07-19
US15/214,345 US10289544B2 (en) 2016-07-19 2016-07-19 Mapping tables for storage devices

Publications (2)

Publication Number Publication Date
CN107632939A true CN107632939A (zh) 2018-01-26
CN107632939B CN107632939B (zh) 2021-03-19

Family

ID=60890394

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710504464.XA Active CN107632939B (zh) 2016-07-19 2017-06-28 用于存储装置的映射表

Country Status (4)

Country Link
US (1) US10289544B2 (zh)
KR (1) KR102168838B1 (zh)
CN (1) CN107632939B (zh)
DE (1) DE102017113439B4 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536616A (zh) * 2018-03-28 2018-09-14 华中科技大学 一种提升pcm数据加密写性能和寿命的映射方法
CN110795365A (zh) * 2018-08-02 2020-02-14 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN110928487A (zh) * 2018-09-20 2020-03-27 三星电子株式会社 存储装置和存储装置的操作方法
CN111373385A (zh) * 2018-06-06 2020-07-03 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN114270320A (zh) * 2019-08-21 2022-04-01 美光科技公司 可配置媒体结构
CN110795365B (zh) * 2018-08-02 2024-06-04 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI664568B (zh) * 2016-11-15 2019-07-01 慧榮科技股份有限公司 資料儲存裝置之操作方法
US11550481B2 (en) * 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10289421B2 (en) * 2017-02-17 2019-05-14 Dell Products, L.P. Booting of IHS from SSD using PCIe
US11579789B2 (en) * 2017-09-29 2023-02-14 Apple Inc. Techniques for managing context information for a storage device
KR20190067540A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그것의 동작 방법
US10558576B2 (en) * 2018-01-22 2020-02-11 Western Digital Technologies, Inc. Storage device with rapid overlay access
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
US10901889B2 (en) * 2018-07-25 2021-01-26 ScaleFlux, Inc. Using hybrid-software/hardware based logical-to-physical address mapping to improve the data write throughput of solid-state data storage devices
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US11222265B2 (en) 2018-10-25 2022-01-11 International Business Machines Corporation Perform destages of tracks with holes in a storage system by training a machine learning module
US10901904B2 (en) 2018-10-25 2021-01-26 International Business Machines Corporation Using a machine learning module to perform destages of tracks with holes in a storage system
US11237960B2 (en) * 2019-05-21 2022-02-01 Arm Limited Method and apparatus for asynchronous memory write-back in a data processing system
US10942659B2 (en) * 2019-06-03 2021-03-09 International Business Machines Corporation Persistent logical to virtual table
US11861692B2 (en) * 2019-06-04 2024-01-02 Sap Se Automated hybrid pipeline for customer identification
KR20220086934A (ko) * 2020-12-17 2022-06-24 에스케이하이닉스 주식회사 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법
KR102386292B1 (ko) * 2021-09-09 2022-04-28 주식회사 유락 데이터 삭제 장치 및 방법
US20230083104A1 (en) * 2021-09-10 2023-03-16 Vmware, Inc. Efficiently Deleting Snapshots in a Log-Structured File System (LFS)-Based Storage System

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法
CN103049397A (zh) * 2012-12-20 2013-04-17 中国科学院上海微系统与信息技术研究所 一种基于新型存储器的固态硬盘内部缓存管理方法及系统
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法
CN103425600A (zh) * 2013-08-23 2013-12-04 中国人民解放军国防科学技术大学 一种固态盘闪存转换层中的地址映射方法
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN105745627A (zh) * 2013-08-14 2016-07-06 思凯拉有限责任公司 用于非易失性存储器存储设备的地址转换
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI248617B (en) * 2004-08-13 2006-02-01 Prolific Technology Inc Data storage device
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US8489817B2 (en) * 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
US20090327601A1 (en) * 2008-06-30 2009-12-31 Shachar Fienblit Asynchronous data mirroring with look-ahead synchronization record
KR100969385B1 (ko) * 2008-07-07 2010-07-09 현대자동차주식회사 가변 압축비 장치
US8140739B2 (en) 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8131700B2 (en) * 2008-09-25 2012-03-06 Microsoft Corporation Transitioning clone data maps and synchronizing with a data query
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
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
US9563501B2 (en) * 2010-11-30 2017-02-07 Micron Technology, Inc. Preserving data integrity in a memory system
JP5295286B2 (ja) 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
JP5646402B2 (ja) 2011-07-06 2014-12-24 パナソニック株式会社 不揮発性メモリのページ管理方法
US9009396B2 (en) * 2011-09-23 2015-04-14 Avalanche Technology, Inc. Physically addressed solid state disk employing magnetic random access memory (MRAM)
JP2013097416A (ja) 2011-10-28 2013-05-20 Hitachi Ltd 記憶装置および計算機
US9448922B2 (en) * 2011-12-21 2016-09-20 Intel Corporation High-performance storage structures and systems featuring multiple non-volatile memories
WO2013100908A1 (en) * 2011-12-27 2013-07-04 Intel Corporation Optimized cold boot for non-volatile memory
US9507639B2 (en) * 2012-05-06 2016-11-29 Sandisk Technologies Llc Parallel computation with multiple storage devices
US8966205B1 (en) * 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
CN103488580A (zh) 2012-06-14 2014-01-01 建兴电子科技股份有限公司 固态储存装置的地址对应表建立方法
US9098400B2 (en) * 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
US20140143476A1 (en) * 2012-11-16 2014-05-22 Rotem Sela Usage of cache and write transaction information in a storage device
US9047172B2 (en) * 2012-11-29 2015-06-02 Intel Corporation Adaptive power control of memory map storage devices
CN103970675A (zh) * 2013-01-29 2014-08-06 Lsi公司 用于使引导操作系统加速的快速引导列表
TWI505090B (zh) * 2013-03-12 2015-10-21 Macronix Int Co Ltd 差異邏輯至實體方法
CN103425605A (zh) 2013-07-26 2013-12-04 记忆科技(深圳)有限公司 一种固态硬盘掉电保护及快速启动方法、系统
WO2015106162A1 (en) * 2014-01-09 2015-07-16 SanDisk Technologies, Inc. Selective copyback for on die buffered non-volatile memory
CN103777905B (zh) 2014-02-14 2017-04-12 华中科技大学 一种软件定义的固态盘融合存储方法
US9632702B2 (en) * 2014-10-15 2017-04-25 International Business Machines Corporation Efficient initialization of a thinly provisioned storage array
KR102506135B1 (ko) * 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR102403266B1 (ko) * 2015-06-22 2022-05-27 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10503653B2 (en) * 2015-09-11 2019-12-10 Toshiba Memory Corporation Memory system
CN106547701B (zh) * 2015-09-17 2020-01-10 慧荣科技股份有限公司 记忆装置及数据读取方法
US10157012B2 (en) * 2015-09-29 2018-12-18 Sandisk Technologies Llc Zero read on trimmed blocks in a non-volatile memory system
KR20170056765A (ko) * 2015-11-13 2017-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101246389A (zh) * 2006-09-29 2008-08-20 英特尔公司 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法
CN103049397A (zh) * 2012-12-20 2013-04-17 中国科学院上海微系统与信息技术研究所 一种基于新型存储器的固态硬盘内部缓存管理方法及系统
US20140195725A1 (en) * 2013-01-08 2014-07-10 Violin Memory Inc. Method and system for data storage
CN103324578A (zh) * 2013-06-20 2013-09-25 深圳市瑞耐斯技术有限公司 一种nand闪存设备及其随机写入方法
CN105745627A (zh) * 2013-08-14 2016-07-06 思凯拉有限责任公司 用于非易失性存储器存储设备的地址转换
CN103425600A (zh) * 2013-08-23 2013-12-04 中国人民解放军国防科学技术大学 一种固态盘闪存转换层中的地址映射方法
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN106776376A (zh) * 2015-11-24 2017-05-31 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108536616A (zh) * 2018-03-28 2018-09-14 华中科技大学 一种提升pcm数据加密写性能和寿命的映射方法
CN108536616B (zh) * 2018-03-28 2021-10-15 华中科技大学 一种提升pcm数据加密写性能和寿命的映射方法
CN111373385A (zh) * 2018-06-06 2020-07-03 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN111373385B (zh) * 2018-06-06 2023-03-14 西部数据技术公司 用于改进的进程切换的处理器和其方法
CN110795365A (zh) * 2018-08-02 2020-02-14 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN110795365B (zh) * 2018-08-02 2024-06-04 三星电子株式会社 存储设备、包括所述存储设备的电子系统及其操作方法
CN110928487A (zh) * 2018-09-20 2020-03-27 三星电子株式会社 存储装置和存储装置的操作方法
CN114270320A (zh) * 2019-08-21 2022-04-01 美光科技公司 可配置媒体结构
CN114270320B (zh) * 2019-08-21 2023-03-10 美光科技公司 可配置媒体结构
US11748112B2 (en) 2019-08-21 2023-09-05 Micron Technology, Inc. Configurable media structure

Also Published As

Publication number Publication date
DE102017113439B4 (de) 2022-06-23
CN107632939B (zh) 2021-03-19
KR20180009695A (ko) 2018-01-29
US10289544B2 (en) 2019-05-14
US20180024919A1 (en) 2018-01-25
KR102168838B1 (ko) 2020-10-22
DE102017113439A1 (de) 2018-01-25

Similar Documents

Publication Publication Date Title
CN107632939A (zh) 用于存储装置的映射表
CN107301016A (zh) 用于垃圾收集的有效性跟踪
TWI375151B (en) A controller for one type of nand flash memory for emulating another type of nand flash memory and methods for the same
TWI635392B (zh) Information processing device, storage device and information processing system
CN109992530A (zh) 一种固态驱动器设备及基于该固态驱动器的数据读写方法
US9037787B2 (en) Computer system with physically-addressable solid state disk (SSD) and a method of addressing the same
CN107346290A (zh) 使用并行化日志列表重放分区逻辑到物理数据地址转换表
CN105103234A (zh) 固态驱动器体系结构
CN105843753B (zh) 用于硬盘驱动器的逻辑块地址映射
US20160266965A1 (en) Updating exclusive-or parity data
US11537512B2 (en) Asynchronous power loss recovery for memory devices
US9798673B2 (en) Paging enablement of storage translation metadata
US20170206170A1 (en) Reducing a size of a logical to physical data address translation table
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持
US10459803B2 (en) Method for management tables recovery
CN106528001A (zh) 一种基于非易失性存储器和软件raid的缓存系统
CN109164975A (zh) 一种将数据写入固态硬盘的方法以及固态硬盘
CN108228473A (zh) 通过动态地传送存储器范围分配的负载平衡
CN107329696A (zh) 一种保证数据崩溃一致性的方法及系统
WO2008076205A2 (en) Data storage system havng a global cache memory distributed among non-volatile memories within system disk drives
Rizvi et al. Data storage framework on flash memory based SSD RAID 0 for performance oriented applications
CN110389907A (zh) 电子装置
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US20240045597A1 (en) Storage device and operation method thereof
EP4318249A1 (en) Storage device and operation method thereof

Legal Events

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