CN103942010A - 用于写入非易失性存储器的管理及区域选择 - Google Patents

用于写入非易失性存储器的管理及区域选择 Download PDF

Info

Publication number
CN103942010A
CN103942010A CN201410030730.6A CN201410030730A CN103942010A CN 103942010 A CN103942010 A CN 103942010A CN 201410030730 A CN201410030730 A CN 201410030730A CN 103942010 A CN103942010 A CN 103942010A
Authority
CN
China
Prior art keywords
data
write
lba
band
interface
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
CN201410030730.6A
Other languages
English (en)
Other versions
CN103942010B (zh
Inventor
厄尔·T·柯亨
蒂莫西·劳伦斯·卡内帕
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.)
Seagate Technology LLC
Original Assignee
Infineon Technologies North America Corp
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 Infineon Technologies North America Corp filed Critical Infineon Technologies North America Corp
Publication of CN103942010A publication Critical patent/CN103942010A/zh
Application granted granted Critical
Publication of CN103942010B publication Critical patent/CN103942010B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0608Saving storage space on storage systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7211Wear leveling

Abstract

本发明涉及用于写入非易失性存储器的管理及区域选择。用于写入SSD的非易失性存储器的管理及区域选择提高了SSD的性能、可靠性、单位成本和/或开发成本。控制器接收并确定写入的特征(例如,通过分析写入数据、写入数据源和/或通过接收提示)并基于所确定的非易失性存储器的区域的特征和特性来选择区域。例如,控制器接收被确定为只读数据的写入并选择包含很可能具有写入故障的单元的非易失性存储器的区域。通过将只读数据放在易于发生写入故障的区域中,降低错误的可能性,由此提高可靠性。再如,控制器接收提示不可压缩的写入并选择包含不可压缩数据的非易失性存储器的区域。

Description

用于写入非易失性存储器的管理及区域选择
相关申请的交叉引用
在所附的申请书数据表、请求书和传送信(如适用,如果有的话)中列出了对该申请的优先权权益要求。在即时申请的类型所允许的范围内,在提出本发明时,为了所有目的,本申请通过引用并入所有由即时申请的所有者共同拥有的下列申请:
于2011年3月11日提交的PCT申请(案号为SF-10-01PCTB,序列号为PCT/US11/28244),第一署名发明人为Hao ZHONG,且题为“LDPCERASURE DECODING FOR FLASH MEMORIES”;
于2011年10月26日提交的PCT申请(案号为SF-10-03PCT,序列号为PCT/US11/57914),第一署名发明人为Yan LI,且题为“ADAPTIVEECC TECHNIQUES FOR FLASH MEMORY BASED DATA STORAGE”;
于2012年1月18日提交的PCT申请(案号为SF-10-14PCT,序列号为PCT/US12/21682),第一署名发明人为Jeremy Isaac NathanielWERNER,且题为“HIGHER-LEVEL REDUNDANCY INFORMATIONCOMPUTATION”;以及
于2013年1月22日提交的美国临时申请(案号为SF-11-01,序列号为61/755,442),第一署名发明人为Earl T.COHEN,且题为“MANAGEMENT OF AND REGION SELECTION FOR WRITES TONON-VOLATILE MEMORY”。
技术领域
本发明涉及用于写入非易失性存储器的管理及区域选择
背景技术
领域:存储设备技术及制造的进步对于提供成本的改善、盈利、性能、效率和使用实用性的提高是必要的。
相关技术:除非被明确认定为被公开或众所周知,否则为了上下文、定义或比较的目的而包括的本文所提到的技术和概念不应被解释为承认这些技术和概念是以前公开为已知的或者是现有技术的一部分。为了所有目的,通过引用将本文中所引用的所有参考文献(如有的话)(包括专利、专利申请和出版物)整体并入,而无论是否被具体并入。
发明内容
本发明可以以多种方式实现,这些方式例如过程、制品、装置、系统、物质组分和计算机可读介质(比如计算机可读存储介质(例如,光学和/或磁性大容量存储设备中的介质(比如磁盘),或具有比如闪存存储器的非易失性存储器的集成电路)或计算机网络,其中,通过光学或电子通信链路发送程序指令。具体实施方式提供了能实现在上文认定的领域中的成本的改善、盈利、性能、效率和使用实用性的提高的本发明的一种或多种实施例的论述。具体实施方式包括用于促进对具体实施方式的其余部分的理解的介绍。该介绍包括根据本文描述的概念的系统、方法、制品和计算机可读介质中的一个或多个的示例性实施例。如在结论中更详细讨论,本发明涵盖所公布的权利要求的范围内的所有可能修改和变更。
附图说明
图1A示出了包括经启用以对写入非易失性存储器的区域执行管理和区域选择的SSD控制器的固态磁盘(SSD)的实施例的所选细节。
图1B示出了包括图1A的SSD的一个或多个实例的系统的各种实施例的所选细节。
图2示出了映射逻辑块地址(LBA)的逻辑页面号(LPN)部分的实施例的所选细节。
图3示出了以读取单元地址访问非易失性存储器(NVM)以产生被组织为各个读取单元的读取数据(共同具有以读取单元量测量的长度)的实施例的所选细节。
图4A示出了读取单元的一个实施例的所选细节。
图4B示出了读取单元的另一实施例的所选细节。
图5示出了具有大量字段的报头的实施例的所选细节。
图6示出了多个NVM设备的区块、页面和读取单元的实施例的所选细节。
图7概念性地示出了选择性地将数据放在SSD的NVM的特定带中的SSD的实施例的所选细节。
图8示出了经由具有第一级映射(FLM)和一个或多个第二级映射(SLM)页面的二级映射将LBA映射到NVM中所存储的逻辑块(LB)的实施例的所选细节。
图9示出了NVM(比如在SSD中)的数据带的带管理流程的实施例的所选细节的流程图。
附图中的附图标记列表
具体实施方式
以下将伴随示出本发明的所选细节的附图一起提供对本发明的一个或多个实施例的详细描述。将结合实施例来描述本发明。本文的实施例应被理解为仅是示例性的,本发明不明确限于本文的任何或所有实施例或者受到其限制,且本发明涵盖许多替代、修改和等同物。为避免阐述单调,各种字标签(比如:第一、最后、某些、各种、进一步、其他、特定的、选择、一些和显著的)可应用于独立的实施例组;如本文所使用的,这些标签并不明确地意指传送质量或任何形式的偏爱或偏见,而只是为了方便在独立组之间区分。所公开的过程的一些操作顺序在本发明的范围内是可变的。无论在什么位置多个实施例用于描述过程、方法和/或程序指令特征的变化,其他实施例均被设想为根据预定的或动态确定的标准执行分别对应于多个实施例的多个操作模式中的一个的静态和/或动态选择。许多具体细节列于以下描述中,以提供对本发明的透彻理解。为示例的目的而提供细节,且本发明可根据未列出一些或所有细节的权利要求来实践。为了清晰起见,与本发明相关的技术领域中已知的技术资料未被详细描述,使得本发明未被不必要模糊。
介绍
仅包括该介绍,以便于更迅速理解具体实施方式;本发明不限于在介绍中提出的概念(包括明确的示例,如有的话),因为任何介绍的段落均是整个主题的缩略图,且不意味着是详尽或限制的描述。例如,以下介绍仅对某些实施例提供由空间和组织限定的概述信息。有许多其他实施例,包括最终将针对其描绘权利要求的那些实施例,在整个说明书的其余部分中讨论。
缩略语
本文中所限定的各种速记缩写(例如,首字母缩写词)中的至少一些是指本文所使用的某些元件。
缩略语 描述
AHCI 高级主机控制器接口
API 应用程序接口
ATA 高级技术附件(AT附件)
BCH 博斯-乔赫里-霍克文黑姆码
CD 光盘
CF 紧凑式闪存
CMOS 互补型金属氧化物半导体
CPU 中央处理器
CRC 循环冗余校验
DAS 直接附接存储
DDR 双倍数据速率
DMA 直接存储器访问
DNA 直接NAND访问
DRAM 动态随机存取存储器
DVD 数字多用途光盘/数字视频光盘
DVR 数字视频录像机
ECC 错误校正码
eMMC 嵌入式多媒体卡
eSATA 外部串行高级技术附件
FLM 第一级映射
GPS 全球定位系统
HDD 硬盘驱动器
I/O 输入/输出
IC 集成电路
IDE 集成驱动电子装置
JPEG 联合图像专家组
LAN 局域网
LBA 逻辑块地址
LDPC 低密度奇偶校验
LPN 逻辑页面号
MLC 多级存储单元
MMC 多媒体卡
MPEG 运动图像专家组
NAS 网络附接存储
NCQ 本机命令排队
NVM 非易失性存储器
ONA 优化NAND访问
ONFI 开放NAND闪存接口
OS 操作系统
PC 个人计算机
PCIe 快速外围组件互连(快速PCI)
PDA 个人数字助理
PHY 物理接口
POS 销售点
RAID 廉价/独立磁盘冗余阵列
RASIE 硅独立元件冗余阵列
RS 里德-所罗门
SAN 存储附接网络
SAS 串行连接小型计算机系统接口(串行SCSI)
SATA 串行高级技术附件(串行ATA)
SCSI 小型计算机系统接口
SD 安全数字
SDR 单倍数据速率
SLM 第二级映射
SLC 单级存储单元
SMART 自监测分析和报告技术
SRAM 静态随机存取存储器
SSD 固态磁盘/驱动器
UFS 统一闪存存储器
USB 通用串行总线
VF 虚拟函数
WAN 广域网
在各种实施例中,区域(例如,数据带)是SSD中的NVM的区块的管理组。在以下讨论中,“区块具有一个或多个逻辑特性”被理解为指的是“将区块分配给经投影具有或经观察具有一个或多个逻辑特性的数据”。在各种实施例中,区块具有逻辑特性、物理特性和/或包含来自一个或多个写入数据源的数据。在各种实施例中,带只包括具有特定物理特性、特定逻辑特性的特定组合的区块,和/或包含来自特定写入数据源的数据。
在各种实施例中,带包括具有一个或多个特定逻辑特性的区块。在各种实施例中,特定逻辑特性是以下各项中的任意一项或多项:频繁读取,相对更频繁写入(例如,‘较热’或‘热’),更加相对较少写入(例如,‘较冷’或‘冷’),不可压缩,可执行,不可恢复且必须在断电(power loss,功率损耗)之后保存,可恢复但不需要在断电之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定ECC方案防止错误,进行回收处理,以及不进行回收处理。在各种实施例中,第一和第二带包括分配给经投影具有或经观察具有特定的第一和第二逻辑特性的数据的区块。
在各种实施例中,带只包括具有特定物理特性的区块。作为第一示例,带只包括下页面区块。作为第二示例,带只包括上页面区块。其他实施例包括具有其他特定物理特性的区块的带。
在各种实施例中,带只包括只来自特定写入数据源的数据的区块。写入数据源的示例包括提供主机数据、回收产生的数据(比如来自待擦除区块的有效数据)、以及通过例如由SSD的控制器执行的系统操作产生的数据(比如映射数据)的计算主机。
在各种实施例中,管理带是有利的并提高SSD的性能、可靠性、单位成本及开发成本。例如,将包含很可能具有写入故障的NVM单元的区块分配给冷带,由此提高可靠性。再如,将包含配置为或选择性地用作SLC的NVM单元的区块分配给系统数据(例如,映射数据)。
示例性实施例
在结束对具体实施方式的介绍时,接下来是示例性实施例的集合,包括明确列举为“EC”(示例性组合)的至少一些实施例,根据本文所述的概念提供对各种实施例类型的额外描述;这些示例并不意味着是相互排斥的、详尽无遗的或限制性的;且本发明并不限于这些示例性实施例,而是涵盖所公布的权利要求的范围内的所有可能的修改和变更。
EC1)一种方法,包括:
分析从主机接收的写入以确定写入的特征;
至少部分基于所述特征来选择非易失性存储器(NVM)的多个带(band,频带)中的一个;
将写入的数据写入所选带(频带);并且
其中,带(频带)中的每一个都是NVM的管理部分。
EC2)如EC1所述的方法,其中特征包括可压缩的写入的数据。
EC3)如EC1所述的方法,其中特征包括可执行的写入的数据。
EC4)如EC1所述的方法,其中特征至少部分基于与对应于写入的逻辑块地址(LBA)相关联的计数器。
EC5)如EC4所述的方法,进一步包括经由计数器对向LBA的写入数量进行计数。
EC6)如EC4所述的方法,进一步包括经由计数器对LBA的读取数量与LBA的写入数量之间的差进行计数。
EC7)如EC1所述的方法,其中,带(频带)中的每一个包括一个或多个R-区块。
EC8)如EC1所述的方法,其中,带(频带)中的每一个包括NVM的一个或多个区块。
EC9)如EC1所述的方法,其中,带(频带)中的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC10)如EC1所述的方法,进一步包括从带(频带)的第一个至带(频带)的第二个中回收数据,并且其中第二带(频带)包含由主机直接写入的数据和从第一带(频带)中回收的数据。
EC11)如EC1所述的方法,其中经由与一个或多个存储接口标准兼容的存储接口从主机接收写入。
EC12)如EC1所述的方法,其中写入数据至少部分经由经启用以与NVM通信的闪存接口进行。
EC13)如EC1所述的方法,其中NVM包括至少一个闪存。
EC14)如EC1所述的方法,其中
经由与一个或多个存储接口标准兼容的存储接口从主机接收写入;
写入数据至少部分经由经启用以与NVM通信的闪存接口进行;
NVM包括至少一个闪存;并且
存储接口和闪存接口包括在单个集成电路中实现的控制器中。
EC15)一种系统,包括:
用于分析从主机接收的写入以确定写入的特征的装置;
用于至少部分基于所述特征来选择非易失性存储器(NVM)的多个带(频带)中的一个的装置;
用于将写入的数据写入所选带(频带)的装置;并且
其中,带(频带)中的每一个都是NVM的管理部分。
EC16)如EC15所述的系统,其中特征包括可压缩的写入的数据。
EC17)如EC15所述的系统,其中特征包括可执行的写入的数据。
EC18)如EC15所述的系统,其中特征至少部分基于与对应于写入的逻辑块地址(LBA)相关联的计数器。
EC19)如EC18所述的系统,进一步包括用于经由计数器对向LBA的写入数量进行计数的装置。
EC20)如EC18所述的系统,进一步包括用于经由计数器对LBA的读取数量与LBA的写入数量之间的差进行计数的装置。
EC21)如EC15所述的系统,其中,带(频带)中的每一个包括一个或多个R-区块。
EC22)如EC15所述的系统,其中,带(频带)中的每一个包括NVM的一个或多个区块。
EC23)如EC15所述的系统,其中,带(频带)中的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC24)如EC15所述的系统,进一步包括用于从带(频带)的第一个至带(频带)的第二个中回收数据的装置,并且其中第二带(频带)包含由主机直接写入的数据和从第一带(频带)中回收的数据。
EC25)如EC15所述的系统,其中经由与一个或多个存储接口标准兼容的存储接口从主机接收写入。
EC26)如EC15所述的系统,其中用于写入数据的装置包括经启用以与NVM通信的闪存接口。
EC27)如EC15所述的系统,其中NVM包括至少一个闪存。
EC28)如EC15所述的系统,其中
经由与一个或多个存储接口标准兼容的存储接口从主机接收写入;
用于写入数据的装置包括经启用以与NVM通信的闪存接口;
NVM包括至少一个闪存;并且
存储接口和闪存接口包括在单个集成电路中实现的控制器中。
EC29)一种有形计算机可读介质,其中存储有当由处理元件执行时使处理元件执行和/或控制包括以下各项的操作的一套指令:
分析从主机接收的写入以确定写入的特征;
至少部分基于所述特征来选择非易失性存储器(NVM)的多个带(频带)中的一个;
将写入的数据写入所选带(频带);并且
其中,带(频带)中的每一个都是NVM的管理部分。
EC30)如EC29所述的有形计算机可读介质,其中特征包括可压缩的写入的数据。
EC31)如EC29所述的有形计算机可读介质,其中特征包括可执行的写入的数据。
EC32)如EC29所述的有形计算机可读介质,其中特征至少部分基于与对应于写入的逻辑块地址(LBA)相关联的计数器。
EC33)如EC32所述的有形计算机可读介质,其中操作进一步包括经由计数器对向LBA的写入数量进行计数。
EC34)如EC32所述的有形计算机可读介质,其中操作进一步包括经由计数器对LBA的读取数量与LBA的写入数量之间的差进行计数。
EC35)如EC29所述的有形计算机可读介质,其中,带(频带)中的每一个包括一个或多个R-区块。
EC36)如EC29所述的有形计算机可读介质,其中,带(频带)中的每一个包括NVM的一个或多个区块。
EC37)如EC29所述的有形计算机可读介质,其中,带(频带)中的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC38)如EC29所述的有形计算机可读介质,其中操作进一步包括从带(频带)的第一个至带(频带)的第二个中回收数据,并且其中第二带(频带)包含由主机直接写入的数据和从第一带(频带)中回收的数据。
EC39)如EC29所述的有形计算机可读介质,其中经由与一个或多个存储接口标准兼容的存储接口从主机接收写入。
EC40)如EC29所述的有形计算机可读介质,其中写入数据至少部分经由经启用以与NVM通信的闪存接口进行。
EC41)如EC29所述的有形计算机可读介质,其中NVM包括至少一个闪存。
EC42)如EC29所述的有形计算机可读介质,其中
经由与一个或多个存储接口标准兼容的存储接口从主机接收写入;
用于写入数据的装置包括经启用以与NVM通信的闪存接口;
NVM包括至少一个闪存;并且
处理元件、存储接口和闪存接口包括在单个集成电路中实现的控制器中。
EC43)一种装置,包括:
经启用以分析从主机接收的写入以确定写入的特征的写入分析硬件逻辑电路;
经启用以至少部分基于所述特征来选择非易失性存储器(NVM)的多个带(频带)中的一个的带(频带)选择硬件逻辑电路;
经启用以将写入的数据写入所选带(频带)的存储器写入硬件逻辑电路;并且
其中,带(频带)中的每一个都是NVM的管理部分。
EC44)如EC43所述的装置,其中特征包括可压缩的写入的数据。
EC45)如EC43所述的装置,其中特征包括可执行的写入的数据。
EC46)如EC43所述的装置,其中,带(频带)中的每一个包括一个或多个R-区块。
EC47)如EC43所述的装置,其中,带(频带)中的每一个包括NVM的一个或多个区块。
EC48)如EC43所述的装置,其中,带(频带)中的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC49)如EC43所述的装置,进一步包括从带(频带)的第一个至带(频带)的第二个中回收数据,并且其中第二带(频带)包含由主机直接写入的数据和从第一带(频带)中回收的数据。
EC50)如EC43所述的装置,进一步包括与对应于写入的逻辑块地址(LBA)相关联的计数器并且其中特征至少部分基于计数器。
EC51)如EC50所述的装置,其中计数器经启用以对向LBA的写入数量进行计数。
EC52)如EC50所述的装置,其中计数器经启用以对LBA的读取数量与LBA的写入数量之间的差进行计数。
EC53)如EC43所述的装置,进一步包括与一个或多个存储接口标准兼容的存储接口并且其中经由存储接口从主机接收写入。
EC54)如EC43所述的装置,其中存储器写入硬件逻辑电路包括经启用以与NVM通信的闪存接口。
EC55)如EC43所述的装置,其中NVM包括至少一个闪存。
EC56)如EC43所述的装置,其中装置包括在单个集成电路中实现的控制器中。
EC57)一种方法,包括:
确定写入数据的至少一些特征;
至少部分基于特征来选择一个或多个非易失性存储器(NVM)的区块的多个管理组中的一个;
将写入数据写入所选管理组;
其中确定、选择和写入由存储系统的控制器执行;并且
其中管理组的每一个相对于一个或多个管理操作进行管理,管理操作包括回收操作和写入分配操作中的任意一个或多个,并且管理组的每一个包括由NVM的至少两个管芯提供的存储。
EC58)如EC57所述的方法,其中管理组的每一个对应于NVM的相应的管理方案。
EC59)如EC58所述的方法,其中相应管理方案根据相应逻辑特性,所述逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用ECC方案防止错误,进行回收处理,以及不进行回收处理。
EC60)如EC58所述的方法,其中相应管理方案根据只包括下页面区块和只包括上页面区块的相应物理特性。
EC61)如EC58所述的方法,其中相应管理方案根据包括计算主机提供的主机数据、通过回收产生的数据以及通过系统操作产生的数据的相应写入数据源。
EC62)如EC57所述的方法,其中管理组的每一个包括一个或多个R-区块。
EC63)如EC57所述的方法,其中管理组的每一个包括NVM的一个或多个区块。
EC64)如EC57所述的方法,其中管理组的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC65)如EC57所述的方法,进一步包括从管理组的第一个至管理组的第二个中回收数据,并且其中第二管理组包含由主机直接写入的数据和从第一管理组中回收的数据。
EC66)如EC57所述的方法,进一步包括从主机接收写入数据。
EC67)如EC57所述的方法,其中写入数据由控制器生成。
EC68)如EC57所述的方法,其中写入数据包括用户写入数据、重写数据、系统数据、重写系统数据以及重写用户数据中的任意一个或多个。
EC69)如EC68所述的方法,其中系统数据包括检查点数据。
EC70)如EC57所述的方法,其中确定响应于提示。
EC71)如EC70所述的方法,其中从主机接收提示。
EC72)如EC70所述的方法,其中提示指示写入数据是只读数据或只写数据中的任意一个。
EC73)如EC57所述的方法,其中确定响应于分析写入数据。
EC74)如EC73所述的方法,其中分析至少部分在硬件、软件和固件中的任意一个或多个中执行。
EC75)如EC74所述的方法,其中硬件包括数据缩小引擎、数据去重复引擎以及数据压缩引擎中的任意一个或多个。
EC76)如EC57所述的方法,其中确定至少部分经由硬件执行。
EC77)如EC76所述的方法,其中硬件包括数据缩小引擎
EC78)如EC76所述的方法,其中特征包括可执行的写入数据。
EC79)如EC76所述的方法,其中特征包括不可压缩的写入数据。
EC80)如EC76所述的方法,其中特征包括不可约的写入数据。
EC81)如EC57所述的方法,其中特征包括先前写入数量、先前读取数量、先前读取与先前写入之比、写入数据不可压缩的指示、写入数据可压缩的指示、写入数据可执行的指示、以及写入数据不可恢复的指示中的任意一个或多个。
EC82)如EC57所述的方法,其中特征包括管理组的先前所选管理组中的任意一个或多个。
EC83)如EC57所述的方法,其中管理组中的任意一个或多个包括区块中包含数据的区块,确定被表征为频繁读取、频繁写入、不可压缩、可执行以及不可恢复中的一个或多个。
EC84)如EC57所述的方法,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据以及重写数据中的任意一个的区块。
EC85)如EC57所述的方法,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据和/或重写数据中的任意一个或两个的区块。
EC86)如EC57所述的方法,其中管理组中的一个或多个只具有区块中的下页面区块或上页面区块中的一个。
EC87)如EC57所述的方法,其中管理组中的第一和第二管理组的纠错不同。
EC88)如EC57所述的方法,其中控制器经启用以经由与至少一个存储接口标准兼容的至少一个存储接口与主机交接。
EC89)如EC57所述的方法,其中控制器经启用以经由至少一个闪存接口与管芯中的至少一个交接。
EC90)如EC57所述的方法,其中NVM包括至少一个闪存。
EC91)一种系统,包括:
用于确定写入数据的至少一些特征的装置;
用于至少部分基于特征来选择一个或多个非易失性存储器(NVM)的区块的多个管理组中的一个的装置;
用于将写入数据写入所选管理组的装置;
其中用于确定的装置、用于选择的装置和用于写入的装置由存储系统的控制器执行;并且
其中管理组的每一个相对于一个或多个管理操作进行管理,管理操作包括回收操作和写入分配操作中的任意一个或多个,并且管理组的每一个包括由NVM的至少两个管芯提供的存储。
EC92)如EC91所述的系统,其中管理组的每一个对应于NVM的相应管理方案。
EC93)如EC92所述的系统,其中相应管理方案根据相应逻辑特性,所述逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用ECC方案防止错误,进行回收处理,以及不进行回收处理。
EC94)如EC92所述的系统,其中相应管理方案根据只包括下页面区块和只包括上页面区块的相应物理特性。
EC95)如EC92所述的系统,其中相应管理方案根据包括计算主机提供的主机数据、通过回收产生的数据以及通过系统操作产生的数据的相应写入数据源。
EC96)如EC91所述的系统,其中管理组的每一个包括一个或多个R-区块。
EC97)如EC91所述的系统,其中管理组的每一个包括NVM的一个或多个区块。
EC98)如EC91所述的系统,其中管理组的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC99)如EC91所述的系统,进一步包括用于从管理组的第一个至管理组的第二个中回收数据的装置,并且其中第二管理组包含由主机直接写入的数据和从第一管理组中回收的数据。
EC100)如EC91所述的系统,进一步包括用于从主机接收写入数据的装置。
EC101)如EC91所述的系统,其中写入数据由控制器生成。
EC102)如EC91所述的系统,其中写入数据包括用户写入数据、重写数据、系统数据、重写系统数据以及重写用户数据中的任意一个或多个。
EC103)如EC102所述的系统,其中系统数据包括检查点数据。
EC104)如EC91所述的系统,其中用于确定的装置响应于提示。
EC105)如EC104所述的系统,其中从主机接收提示。
EC106)如EC104所述的系统,其中提示指示写入数据是只读数据或只写数据中的任意一个。
EC107)如EC91所述的系统,其中用于确定的装置响应于分析写入数据。
EC108)如EC107所述的系统,其中分析至少部分在硬件、软件和固件中的任意一个或多个中执行。
EC109)如EC108所述的系统,其中硬件包括数据缩小引擎、数据去重复引擎以及数据压缩引擎中的任意一个或多个。
EC110)如EC91所述的系统,其中用于确定的装置包括数据缩小引擎。
EC111)如EC110所述的系统,其中特征包括可执行的写入数据。
EC112)如EC110所述的系统,其中特征包括不可压缩的写入数据。
EC113)如EC110所述的系统,其中特征包括不可约的写入数据。
EC114)如EC91所述的系统,其中特征包括先前写入数量、先前读取数量、先前读取与先前写入之比、写入数据不可压缩的指示、写入数据可压缩的指示、写入数据可执行的指示、以及写入数据不可恢复的指示中的任意一个或多个。
EC115)如EC91所述的系统,其中特征包括管理组的先前所选管理组中的任意一个或多个。
EC116)如EC91所述的系统,其中管理组中的任意一个或多个包括区块中包含数据的区块,用于确定的装置被表征为频繁读取、频繁写入、不可压缩、可执行以及不可恢复中的一个或多个。
EC117)如EC91所述的系统,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据以及重写数据中的任意一个的区块。
EC118)如EC91所述的系统,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据和/或重写数据中的任意一个或两个的区块。
EC119)如EC91所述的系统,其中管理组中的一个或多个只具有区块中的下页面区块或上页面区块中的一个。
EC120)如EC91所述的系统,其中管理组中的第一和第二管理组的纠错不同。
EC121)如EC91所述的系统,其中控制器经启用以经由与至少一个存储接口标准兼容的至少一个存储接口与主机交接。
EC122)如EC91所述的系统,其中控制器经启用以经由至少一个闪存接口与管芯中的至少一个交接。
EC123)如EC91所述的系统,其中NVM包括至少一个闪存。
EC124)一种有形计算机可读介质,其中存储有当由处理元件执行时使处理元件执行和/或控制包括以下各项的操作的一套指令:
确定写入数据的至少一些特征;
至少部分基于特征来选择一个或多个非易失性存储器(NVM)的区块的多个管理组中的一个;
将写入数据写入所选管理组;
其中处理元件包括在存储系统的控制器中;并且
其中管理组的每一个相对于一个或多个管理操作进行管理,管理操作包括回收操作和写入分配操作中的任意一个或多个,并且管理组的每一个包括由NVM的至少两个管芯提供的存储。
EC125)如EC124所述的有形计算机可读介质,其中管理组的每一个对应于NVM的相应管理方案。
EC126)如EC125所述的有形计算机可读介质,其中相应管理方案根据相应逻辑特性,所述逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用ECC方案防止错误,进行回收处理,以及不进行回收处理。
EC127)如EC125所述的有形计算机可读介质,其中相应管理方案根据只包括下页面区块和只包括上页面区块的相应物理特性。
EC128)如EC125所述的有形计算机可读介质,其中相应管理方案根据包括计算主机提供的主机数据、通过回收产生的数据以及通过系统操作产生的数据的相应写入数据源。
EC129)如EC124所述的有形计算机可读介质,其中管理组的每一个包括一个或多个R-区块。
EC130)如EC124所述的有形计算机可读介质,其中管理组的每一个包括NVM的一个或多个区块。
EC131)如EC124所述的有形计算机可读介质,其中管理组的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC132)如EC124所述的有形计算机可读介质,其中动作进一步包括从管理组的第一个至管理组的第二个中回收数据,并且其中第二管理组包含由主机直接写入的数据和从第一管理组中回收的数据。
EC133)如EC124所述的有形计算机可读介质,其中动作进一步包括从主机接收写入数据。
EC134)如EC124所述的有形计算机可读介质,其中写入数据由控制器生成。
EC135)如EC124所述的有形计算机可读介质,其中写入数据包括用户写入数据、重写数据、系统数据、重写系统数据以及重写用户数据中的任意一个或多个。
EC136)如EC135所述的有形计算机可读介质,其中系统数据包括检查点数据。
EC137)如EC124所述的有形计算机可读介质,其中确定响应于提示。
EC138)如EC137所述的有形计算机可读介质,其中从主机接收提示。
EC139)如EC137所述的有形计算机可读介质,其中提示指示写入数据是只读数据或只写数据中的任意一个。
EC140)如EC124所述的有形计算机可读介质,其中确定响应于分析写入数据。
EC141)如EC140所述的有形计算机可读介质,其中分析至少部分结合数据缩小引擎、数据去重复引擎以及数据压缩引擎中的任意一个或多个执行。
EC142)如EC124所述的有形计算机可读介质,其中特征包括先前写入数量、先前读取数量、先前读取与先前写入之比、写入数据不可压缩的指示、写入数据可压缩的指示、写入数据可执行的指示、以及写入数据不可恢复的指示中的任意一个或多个。
EC143)如EC124所述的有形计算机可读介质,其中特征包括管理组的先前所选管理组中的任意一个或多个。
EC144)如EC124所述的有形计算机可读介质,其中管理组中的任意一个或多个包括区块中包含数据的区块,确定被表征为频繁读取、频繁写入、不可压缩、可执行以及不可恢复中的一个或多个。
EC145)如EC124所述的有形计算机可读介质,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据以及重写数据中的任意一个的区块。
EC146)如EC124所述的有形计算机可读介质,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据和/或重写数据中的任意一个或两个的区块。
EC147)如EC124所述的有形计算机可读介质,其中管理组中的一个或多个只具有区块中的下页面区块或上页面区块中的一个。
EC148)如EC124所述的有形计算机可读介质,其中管理组中的第一和第二管理组的纠错不同。
EC149)如EC124所述的有形计算机可读介质,其中控制器经启用以经由与至少一个存储接口标准兼容的至少一个存储接口与主机交接。
EC150)如EC124所述的有形计算机可读介质,其中控制器经启用以经由至少一个闪存接口与管芯中的至少一个交接。
EC151)如EC124所述的有形计算机可读介质,其中NVM包括至少一个闪存。
EC152)一种装置,包括:
经启用以确定写入数据的至少一些特征的写入数据表征硬件逻辑电路;
经启用以至少部分基于特征来选择一个或多个非易失性存储器(NVM)的区块的多个管理组中的一个的管理组选择硬件逻辑电路;
经启用以将写入数据写入所选管理组的存储器写入硬件逻辑电路;
其中装置包括在存储系统的控制器中;并且
其中管理组的每一个相对于一个或多个管理操作进行管理,管理操作包括回收操作和写入分配操作中的任意一个或多个,并且管理组的每一个包括由NVM的至少两个管芯提供的存储。
EC153)如EC152所述的装置,其中管理组的每一个对应于NVM的相应管理方案。
EC154)如EC153所述的装置,其中相应管理方案根据相应逻辑特性,所述逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用ECC方案防止错误,进行回收处理,以及不进行回收处理。
EC155)如EC153所述的装置,其中相应管理方案根据只包括下页面区块和只包括上页面区块的相应物理特性。
EC156)如EC153所述的装置,其中相应管理方案根据包括计算主机提供的主机数据、通过回收产生的数据以及通过系统操作产生的数据的相应写入数据源。
EC157)如EC153所述的装置,其中管理组的每一个包括一个或多个R-区块。
EC158)如EC152所述的装置,其中管理组的每一个包括NVM的一个或多个区块。
EC159)如EC152所述的装置,其中管理组的每一个根据多个逻辑特性中的至少一个,逻辑特性包括频繁读取,相对更频繁写入,更加相对较少写入,不可压缩,可执行,不可恢复且必须在断电(功率损耗)之后保存,可恢复但不需要在断电(功率损耗)之后保存,使用特定技术或密钥加密,使用特定技术或密钥或利用特定纠错码(ECC)方案防止错误,进行回收处理,以及不进行回收处理。
EC160)如EC152所述的装置,进一步包括经启用以从管理组的第一个至管理组的第二个中回收数据的回收站硬件逻辑电路,并且其中第二管理组包含由主机直接写入的数据和从第一管理组中回收的数据。
EC161)如EC152所述的装置,其中从主机接收写入数据。
EC162)如EC152所述的装置,其中写入数据由控制器生成。
EC163)如EC152所述的装置,其中写入数据包括用户写入数据、重写数据、系统数据、重写系统数据以及重写用户数据中的任意一个或多个。
EC164)如EC163所述的装置,其中系统数据包括检查点数据。
EC165)如EC152所述的装置,其中写入数据表征硬件逻辑电路响应于提示。
EC166)如EC165所述的装置,其中从主机接收提示。
EC167)如EC165所述的装置,其中提示指示写入数据是只读数据或只写数据中的任意一个。
EC168)如EC152所述的装置,其中写入数据表征硬件逻辑电路包括数据缩小引擎。
EC169)如EC168所述的装置,其中特征包括可执行的写入数据。
EC170)如EC168所述的装置,其中特征包括不可压缩的写入数据。
EC171)如EC168所述的装置,其中特征包括不可约的写入数据。
EC172)如EC152所述的装置,其中特征包括先前写入数量、先前读取数量、先前读取与先前写入之比、写入数据不可压缩的指示、写入数据可压缩的指示、写入数据可执行的指示、以及写入数据不可恢复的指示中的任意一个或多个。
EC173)如EC152所述的装置,其中特征包括管理组的先前所选管理组中的任意一个或多个。
EC174)如EC152所述的装置,其中管理组中的任意一个或多个包括区块中包含数据的区块,写入数据表征硬件逻辑电路被表征为频繁读取、频繁写入、不可压缩、可执行以及不可恢复中的一个或多个。
EC175)如EC152所述的装置,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据以及重写数据中的任意一个的区块。
EC176)如EC152所述的装置,其中管理组中的一个或多个只具有区块中包含系统数据、用户数据和/或重写数据中的任意一个或两个的区块。
EC177)如EC152所述的装置,其中管理组中的一个或多个只具有区块中的下页面区块或上页面区块中的一个。
EC178)如EC152所述的装置,其中管理组中的第一和第二管理组的纠错不同。
EC179)如EC152所述的装置,进一步包括控制器中包括的并经启用以使控制器与主机交接的存储接口,并且其中存储接口与至少一个存储接口标准兼容。
EC180)如EC152所述的装置,经一部包括控制器中包括的并经启用以使控制器与管芯中的至少一个交接的闪存接口。
EC181)如EC152所述的装置,其中NVM包括至少一个闪存。
EC182)具有或参照存储接口标准的任意前述EC,其中存储接口标准包括以下各项中的一项或多项:
通用串行总线(USB)接口标准,
紧凑式闪存(CF)接口标准,
多媒体卡(MMC)接口标准,
嵌入式MMC(eMMC)接口标准,
Thunderbolt接口标准,
UFS接口标准,
安全数字(SD)接口标准,
记忆棒接口标准,
xD图片卡接口标准,
集成驱动电子装置(IDE)接口标准,
串行高级技术附件(SATA)接口标准,
外部SATA(eSATA)接口标准,
小型计算机系统接口(SCSI)接口标准,
串行连接小型计算机系统接口(SAS)接口标准,
光纤通道接口标准,
以太网接口标准,以及
快速外围组件互连(PCIe)接口标准。
EC183)具有或参照闪存接口的任意前述EC,其中闪存接口与以下各项中的一项或多项兼容:
开放NAND闪存接口(ONFI),
切换模式接口,
双倍数据速率(DDR)同步接口,
DDR2同步接口,
同步接口,以及
异步接口。
EC184)具有或参照计算主机的任意前述EC,其中计算主机包括以下各项中的一项或多项:
计算机,
工作站计算机,
服务器计算机,
存储服务器,
存储附接网络(SAN),
网络附接存储(NAS)设备,
直接附接存储(DAS)设备,
存储器具,
个人计算机(PC),
膝上电脑,
笔记本电脑,
上网本电脑,
平板设备或电脑,
超极本电脑,
电子阅读设备(电子阅读器),
个人数字助理(PDA),
导航系统,
(手持式)全球定位系统(GPS)设备,
汽车控制系统,
汽车媒体控制系统或计算机,
打印机、复印机或传真机或多合一设备,
销售点(POS)设备,
现金出纳机,
媒体播放器,
电视机,
媒体记录器,
数字视频录像机(DVR),
数码相机,
蜂窝手机,
无绳电话手机,以及
电子游戏机。
EC185)具有或参照至少一个闪存的任意前述EC,其中至少一个闪存的至少一部分包括以下各项中的一项或多项:
NAND闪存技术存储单元,以及
NOR闪存技术存储单元。
EC186)具有或参照至少一个闪存的任意前述EC,其中至少一个闪存的至少一部分包括以下各项中的一项或多项:
单级存储单元(SLC)闪存技术存储单元,以及
多级存储单元(MLC)闪存技术存储单元。
EC187)具有或参照至少一个闪存的任意前述EC,其中至少一个闪存的至少一部分包括以下各项中的一项或多项:
基于多晶硅技术的电荷存储单元,以及
基于氮化硅技术的电荷存储单元。
EC188)具有或参照至少一个闪存的任意前述EC,其中至少一个闪存的至少一部分包括以下各项中的一项或多项:
基于二维技术的闪存技术,以及
基于三维技术的闪存技术。
系统
在某些实施例中,I/O设备,比如SSD,包括SSD控制器。SSD控制器充当SSD的主机接口和NVM之间的桥接器,并执行经由SSD的主机接口从计算主机发送的主机协议的命令。至少一些命令指示SSD利用从和向计算主机发送的数据分别写入并读取NVM。在进一步实施例中,使SSD控制器能够利用映射在主机协议的LBA和NVM中的物理存储地址之间转换。在进一步实施例中,映射的至少一部分用于I/O设备的专用存储器(对计算主机是不可见的)。例如,计算主机不可访问的LBA的一部分被I/O设备用来管理对日志、统计或其他专用数据的访问。
在某些实施例中,访问NVM中不同大小量的压缩数据在某些使用场景下具有提高的存储效率。例如,SSD控制器从计算主机接收(未压缩)数据(例如,与磁盘写入命令相关),压缩该数据,并将压缩后的数据存储到闪存中。响应于来自计算主机的后续请求(例如,与磁盘读取命令相关),SSD控制器从闪存中读取压缩数据,对压缩数据进行解压,并向计算主机提供未压缩数据。根据不同大小的量将压缩数据存储在闪存中,量的大小由于压缩算法、操作模式和各种数据的压缩效率等而变化。SSD控制器通过查阅所包括的映射表对数据进行部分解压以确定报头存储在闪存中的位置。SSD控制器解析从闪存获得的报头以确定适当的(压缩)数据存储在闪存中的位置。SSD控制器对来自闪存的适当的数据进行解压以产生未压缩数据并将其提供给计算主机。在即时应用中,解压(及其变型)与减压(及其变型)同义。
在各种实施例中,SSD控制器包括与计算主机交互的主机接口、与NVM(比如闪存)交互的接口以及用于控制接口并进行(和/或控制进行的各方面)压缩和解压,以及较低级冗余和/或纠错、较高级冗余和/或纠错及利用独立硅元件的动态较高级冗余模式管理的电路。
根据各种实施例,某些主机接口与USB接口标准、CF接口标准、MMC接口标准、eMMC接口标准、Thunderbolt接口标准、UFS接口标准、SD接口标准、记忆棒接口标准、xD图片卡接口标准、IDE接口标准、SATA接口标准、SCSI接口标准、SAS接口标准和PCIe接口标准中的一个或多个兼容。根据各种实施例,计算主机是计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS设备、DAS设备、存储器具、PC、膝上电脑、笔记本电脑、上网本电脑、平板设备或电脑、超极本电脑、电子阅读设备(比如电子阅读器)、PDA、导航系统、(手持式)GPS设备、汽车控制系统、汽车媒体控制系统或计算机、打印机、复印机或传真机或多合一设备、POS设备、现金出纳机、媒体播放器、电视机、媒体记录器、DVR、数码相机、蜂窝手机、无绳电话手机和电子游戏机中的所有或任意部分。在某些实施例中,接口主机(比如SAS/SATA桥接器)作为计算主机和/或作为计算主机的桥接器进行操作。
在各种实施例中,SSD控制器包括一个或多个处理器。控制器执行固件以控制和/或进行SSD控制器的操作。SSD控制器与计算主机通信以发送并接收命令和/或状态以及数据。计算主机执行操作系统、驱动程序和应用程序中的一个或多个。计算主机与SSD控制器的通信任选地和/或选择性地是经由驱动程序和/或经由应用程序进行的。在第一示例中,与SSD控制器的所有通信是经由驱动程序进行的,并且应用程序向驱动程序提供驱动程序转换为SSD控制器的特定命令的较高级命令。在第二示例中,驱动程序实现旁通模式并且使应用程序能够经由驱动程序向SSD控制器发送特定命令。在第三示例中,PCIe SSD控制器支持一个或多个虚拟函数(VF),从而启用应用程序,一旦配置,就绕过驱动程序而与SSD控制器直接通信。
根据各种实施例,某些SSD与由磁性和/或光学非易失性存储器(比如,HDD、CD驱动器及DVD驱动器)所使用的形状因数、电接口和/或协议兼容。在各种实施例中,SSD使用零或零以上奇偶码、零或零以上RS码、零或零以上BCH码、零或零以上维特比或其他格子码及零或零以上LDPC码。
图1A示出了包括经启用以对写入非易失性存储器的区域执行管理和区域选择的SSD控制器的SSD的实施例的所选细节。SSD控制器用于管理比如经由NVM元件(例如,闪存)实现的非易失性存储。SSD控制器100经由一个或多个外部接口110与主机(未示出)通信耦接。根据各种实施例,外部接口110是以下各项中的一项或多项:SATA接口;SAS接口;PCIe接口;光纤通道接口;外部接口(比如10千兆以太网);任意前述接口的非标准版本;定制接口;或用于将存储和/或通信和/或计算设备互连的任何其他类型的接口。例如,在某些实施例中,SSD控制器100包括SATA接口和PCIe接口。
SSD控制器100进一步经由一个或多个设备接口190与包括一个或多个存储设备(比如,闪存设备192的一个或多个实例)的NVM199通信耦接。根据各种实施例,设备接口190是以下各项中的一项或多项:异步接口;同步接口;单倍数据速率(SDR)接口;双倍数据速率(DDR)接口;DRAM兼容DDR或DDR2同步接口;ONFI兼容接口(比如,ONFI2.2或ONFI3.0兼容接口);切换模式兼容闪存接口;任意前述接口的非标准版本;定制接口;或用于连接至存储设备的任何其他类型的接口。
在某些实施例中,每一个闪存设备192具有一个或多个单独的闪存管芯194。根据闪存设备192的特定闪存设备的类型,特定闪存设备192中的多个闪存管芯194任选地和/或选择性地并行访问。闪存设备192只表示经启用以与SSD控制器100通信耦接的一种类型的存储设备。在各种实施例中,任何类型的存储设备都是可使用的,比如SLC NAND闪存、MLCNAND闪存、NOR闪存、使用基于多晶硅或氮化硅技术的电荷存储单元的闪存、基于二维或三维技术的闪存、只读存储器、静态随机存取存储器、动态随机存取存储器、铁磁性存储器、相变存储器、赛道存储器、ReRAM或任何其他类型的存储器设备或存储介质。
根据各种实施例,设备接口190被组织为:一条或多条总线,其中每条总线具有闪存设备192的一个或多个实例;一个或多个总线组,其中每条总线具有闪存设备192的一个或多个实例,其中一组中的总线通常被并行访问;或闪存设备192的一个或多个至设备接口190上的任何其他组织。
继续图1A,SSD控制器100具有一个或多个模块,比如主机接口111、数据处理模块121、缓冲器131、映射模块141、回收站151、ECC161、设备接口逻辑模块191以及CPU171。图1A中所示的具体模块和互连仅仅表示一个实施例,可以想到一些或所有模块以及未示出的其他模块的多种布置和互连。在第一示例中,在某些实施例中,存在两个或两个以上主机接口111来提供双通道。在第二示例中,在某些实施例中,数据处理121和/或ECC161与缓冲器131组合。在第三示例中,在某些实施例中,主机接口111直接与缓冲器131耦接,并且数据处理121任选地和/或选择性地对于存储在缓冲器131中的数据进行操作。在第四示例中,在某些实施例中,设备接口逻辑191直接与缓冲器131耦接,并且ECC161任选地和/或选择性地对于存储在缓冲器131中的数据进行操作。
主机接口111经由外部接口110发送和接收命令和/或数据,并且,在某些实施例中,经由标签跟踪113来跟踪单独命令的进程。例如,命令包括指定要读取的数据的地址(比如LBA)和量(比如LBA量,例如扇区的数量)的读取命令;作为响应,SSD提供读取状态和/或读取数据。再如,命令包括指定要写入的数据的地址(比如LBA)和量(比如LBA量,例如扇区的数量)的写入命令;作为响应,SSD提供写入状态和/或请求写入数据且随后任选提供写入状态。对于又一示例,命令包括指定不再需要分配的一个或多个地址(比如一个或多个LBA)的去分配命令(例如,修整命令);作为响应,SSD相应地修改映射且任选提供去分配状态。在某些背景下,ATA兼容修整(TRIM)命令是示例性去分配命令。对于又一示例,命令包括超级电容器测试命令或数据强化成功查询;作为响应,SSD提供适当状态。在某些实施例中,主机接口111与SATA协议兼容,并且,使用NCQ命令而启用以具有最多32条待处理命令,每条命令有表示为数字0至31的唯一标签。在某些实施例中,标签跟踪113经启用以使经由外部接口110接收的命令的外部标签与用于在SSD控制器100处理过程中跟踪命令的内部标签相关联。
根据各种实施例,揭示以下各项中的一个或多个:数据处理121任选地和/或选择性地处理在缓冲器131与外部接口110之间发送的一些或所有数据;以及数据处理121任选地和/或选择性地处理存储在缓冲器131中的数据。在某些实施例中,数据处理121使用一个或多个引擎123来执行以下各项中的一项或多项:格式化;重新格式化;转码;以及任何其他的数据处理和/或操控任务。
缓冲器131存储从设备接口190发送至外部接口110/从外部接口110发送至设备接口190的数据,在某些实施例中,缓冲器131另外存储由SSD控制器100使用的系统数据(比如某些或全部映射表)以管理闪存设备192中的一个或多个实例。在各种实施例中,缓冲器131具有以下各项中的一个或多个:用于临时存储数据的存储器137;用于控制至和/或从缓冲器131的数据的移动的DMA133;用于提供较高级错误校正和/或冗余功能的ECC-X135;和其他数据移动和/或操控功能。较高级冗余功能的示例为一种RAID类能力(例如,RASIE),其中冗余在闪存设备(例如闪存设备192的多个闪存设备)级和/或闪存管芯(比如闪存管芯194)级上而非在磁盘级上。
根据各种实施例,揭示以下各项中的一个或多个:ECC161任选地和/或选择性地处理在缓冲器131和设备接口190之间发送的一些或所有数据;以及ECC161任选地和/或选择性地处理存储在缓冲器131内的数据。在某些实施例中,ECC161用于提供较低级错误校正和/或诸如根据一个或多个ECC计算的冗余功能。在某些实施例中,ECC161实现以下各项中的一个或多个:CRC码;汉明码;RS码;BCH码;LDPC码;维特比码;格子码;硬判决码;软判决码;基于擦除的码;任何错误检测和/或纠正码;以及上述的任意组合。在某些实施例中,ECC161包括一个或多个解码器(比如LDPC解码器)。
设备接口逻辑191经由设备接口190控制闪存设备192的实例。设备接口逻辑191经启用以根据闪存设备192的协议将数据发送到或从闪存设备192发送数据。设备接口逻辑191包括调度193,从而经由设备接口190选择性地顺序控制闪存设备192的实例。例如,在某些实施例中,调度193经启用以排队对于闪存设备192的实例的操作,并且当单独的闪存设备192(或闪存管芯194)的实例可用时,选择性地将操作发送至单独的闪存设备192(或闪存管芯194)的实例。
映射141在用于外部接口110上的数据寻址与用于设备接口190上的数据寻址之间转换,使用表143将外部数据地址映射至NVM199中的位置。例如,在某些实施例中,映射141经由由表143提供的映射将用于外部接口110上的LBA转换成目标为一个或多个闪存芯片192的区块和/或页地址。对于从驱动制造或去分配未曾被写入的LBA,该映射指向缺省值以传回是否读取这些LBA。例如,在处理去分配命令时,修改该映射以使得对应于去分配LBA的条目指向缺省值中的一个。在各种实施例中,存在各种缺省值,其各自具有对应指针。多个缺省值使得能够读取某些去分配LBA(比如在第一范围中)作为一个缺省值,同时读取其他去分配LBA(比如在第二范围中)作为另一个缺省值。在各种实施例中,缺省值由闪存、硬件、固件、命令和/或基元引数和/或参数、可编程寄存器或其各种组合定义。
在某些实施例中,映射141使用表143从而在外部接口110上使用的地址和设备接口190上使用的数据寻址之间执行和/或查询转换。根据各种实施例,表143为以下各项中的一个或多个:一级映射;二级映射;多级映射;映射缓存;压缩映射;一个地址空间至另一个地址空间的任何类型映射;以及上述的任意组合。根据各种实施例,表143包括以下各项中的一个或多个:静态随机存取存储器;动态随机存取存储器;非易失性存储器;NVM(比如闪存);缓存存储器;片上存储器;片外存储器;和上述的任意组合。
在某些实施例中,回收站151执行垃圾收集。例如,在某些实施例中,闪存设备192的实例包含在可重写入之前必须擦除的区块。回收站151经启用以例如,通过扫描映射141保持的映射来确定闪存设备192的实例的哪些部分正在有效使用中(例如,经分配而非经去分配),然后使闪存设备192的实例的未使用(例如,去分配)部分通过对其进行擦除而可用于写入。在进一步实施例中,回收站151经启用以移动存储在闪存设备192的实例内的数据,以使闪存设备192的实例的较大连续部分可用于写入。
在某些实施例中,闪存设备192的实例选择性地和/或动态地经配置、管理和/或使用以具有用于存储不同类型和/或性质的数据的一个或多个带(band,频带)。这些带的数目、布置、大小和类型可动态地改变。例如,将来自计算主机的数据写入热(活动)带,而将来自回收站151的数据写入冷(较少活动)带中。在某些使用场景下,如果计算主机写入长的顺序流,则热带的大小增加,而如果计算主机随机写入或较少写入,则冷带的大小增加。
CPU171控制SSD控制器100的各个部分。CPU171包括CPU内核172。根据各种实施例,CPU内核172为一个或多个单核或多核处理器。在某些实施例中,CPU内核172中的各个处理器内核是多线程的。CPU内核172包括指令和/或数据缓存器和/或存储器。例如,指令存储器包括能使CPU内核执行软件(有时称为固件)以控制SSD控制器100的指令。在某些实施例中,CPU内核172执行的一些或所有固件存储在闪存设备192上(如图所示,例如为1B中的NVM199的固件106)。
在各种实施例中,CPU171进一步包括:在经由外部接口110接收的命令处于进程的同时来跟踪和控制该命令的命令管理173;控制缓冲器131的分配和使用的缓冲器管理175;控制映射141的转换管理177;控制数据寻址的一致性并避免比如外部数据访问和回收数据访问之间冲突的一致性管理179;控制设备接口逻辑191的设备管理181;控制身份信息的修改和通信的身份管理182;以及任选其他管理单元。根据各种实施例,CPU171执行的任何或所有管理功能是由硬件、软件(比如在CPU内核172或经由外部接口110连接的主机上执行的固件)或其任何组合进行控制和/或管理的。
在某些实施例中,CPU171经启用以执行其他管理任务,例如,以下各项中的一个或多个:收集和/或报告性能统计;实现SMART;控制电力排序、控制和/或监测和/或调整电力消耗;对电力故障做出响应;控制和/或监测和/或调整时钟速率;以及其他管理任务。
各种实施例包括与SSD控制器100类似并且与各种计算主机的操作兼容的计算主机闪存控制器,比如,经由主机接口111和/或外部接口110适配。各种计算主机包括以下各项中的一个或其任何组合:计算机、工作站计算机、服务器计算机、存储服务器、SAN、NAS设备、DAS设备、存储器具、PC、膝上电脑、笔记本电脑、上网本电脑、平板设备或电脑、超极本电脑、电子阅读设备(比如电子阅读器)、PDA、导航系统、(手持式)GPS设备、汽车控制系统、汽车媒体控制系统或计算机、打印机、复印机或传真机或多合一设备、POS设备、现金出纳机、媒体播放器、电视机、媒体记录器、DVR、数码相机、蜂窝手机、无绳电话手机和电子游戏机。
在各种实施例中,SSD控制器(或计算主机闪存控制器)的所有或任意部分在单个IC、多管芯IC的单管芯、多管芯IC的多个管芯或多个IC上实现。例如,缓冲器131在与SSD控制器100的其他元件相同的管芯上实现。再如,缓冲器131在与SSD控制器100的其他元件不同的管芯上实现。
图1B示出了包括图1A的SSD的一个或多个实例的系统的各种实施例的所选细节。SSD101包括经由设备接口190与NVM199耦接的SSD控制器100。该图示出了各类实施例:直接与主机耦接的单个SSD,各自经由各个外部接口分别直接与主机耦接的多个SSD,以及经由各个互连元件间接与主机耦接的一个或多个SSD。
作为直接与主机耦接的单个SSD的示例性实施例,SSD101的一个实例经由外部接口110直接与主机102耦接(例如,省略、绕过或穿过切换器/光纤/中间控制器103)。作为各自经由各个外部接口直接与主机耦接的多个SSD的示例性实施例,SSD101的多个实例中的每一个经由由外部接口110直接与主机102耦接(例如,省略、绕过或穿过切换器/光纤/中间控制器103)。作为经由各个互连元件间接与主机耦接的一个或多个SSD的示例性实施例,SSD101的一个或多个实例中的每一个分别间接与主机102耦接。每个间接耦接经由与切换器/光纤/中间控制器103耦接的外部接口110以及与主机102耦接的中间接口104的各个实例。
包括切换器/光纤/中间控制器103的实施例的某些实施例还包括经由存储器接口180耦接且SSD可访问的卡存储器112C。在各种实施例中,SSD、切换器/光纤/中间控制器103和/或卡存储器中的一个或多个包括在物理可识别的模块、卡或可插入元件(例如,I/O卡116)上。在某些实施例中,SSD101(或其变型)对应于与作为主机102操作的起始器耦接的SAS驱动器或SATA驱动器。
主机102经启用以执行主机软件115的各个元件,比如OS105、驱动程序107、应用程序109和多设备管理软件114的各种组合。虚线箭头107D表示主机软件←→I/O设备通信,例如,经由驱动程序107、驱动程序107及应用程序109(经由驱动程序107或直接作为VF)从SSD101的实例中的一个或多个发送至OS105中的一个或多个及从OS105的一个或多个接收至SSD101的实例中的一个或多个的数据。
OS105包括和/或经启用以借助与SSD交互的驱动程序(概念上由驱动程序107示出)操作。Windows的各种版本(例如,95、98、ME、NT、XP、2000、Server、Vista及7)、Linux的各种版本(例如,Red Hat、Debian及Ubuntu)及MacOS的各种版本(例如,8、9及X)是OS105的示例。在各种实施例中,驱动程序是借助标准接口和/或协议(比如SATA、AHCI或NVM Express))操作的标准和/或通用驱动程序(有时称为“紧缩套装”或“预安装”),或者任选定制和/或供应商特定以启用SSD101所特定的命令的使用。某些驱动器和/或驱动程序具有穿过模式以启用应用级程序,比如经由最佳化NAND访问(有时称为ONA)或直接NAND访问(有时称为DNA)技术的应用程序,以将命令直接传递至SSD101,使得定制应用程序能够甚至借助通用驱动程序使用SSD101所特定的命令。ONA技术包括以下各项中的一个或多个:非标准修饰符(提示)的使用;供应商特定命令的使用;非标准统计比如根据可压缩性的实际NVM使用的通信;以及其他技术。DNA技术包括以下各项中的一个或多个:提供对NVM的未经映射读取、写入和/或擦除存储的非标准命令或供应商特定命令的使用,比如通过绕过I/O设备原本将进行的数据的格式化来提供对NVM的更直接访问的非标准或供应商特定命令的使用;以及其他技术。驱动程序的示例是不具有ONA或DNA支持的驱动程序、ONA启用的驱动程序、DNA启用的驱动程序及ONA/DNA启用的驱动程序。驱动程序的进一步示例是供应商提供、供应商开发和/或供应商增强驱动程序及客户端提供、客户端开发和/或客户端增强驱动程序。
应用级程序的示例是不具有ONA或DNA支持的应用程序、ONA启用的应用程序、DNA启用的应用程序及ONA/DNA启用的应用程序。虚线箭头109D表示应用程序←→I/O设备通信(例如,经由驱动程序绕过或经由用于应用程序的VF绕过),例如,ONA启用的应用程序及与SSD通信(比如不具有使用OS作为媒介物的应用程序)的ONA启用的驱动程序。虚线箭头109V表示应用程序←→I/O设备通信(例如,经由用于应用程序的VF绕过),例如DNA启用的应用程序和与SSD通信(比如不具有使用OS或驱动程序作为媒介物的应用程序)的DNA启用的驱动程序。
在某些实施例中,NVM199的一个或多个部分用于固件存储,例如固件106。固件存储包括一个或多个固件图像(或其部分)。例如,固件图像具有(例如)通过SSD控制器100的CPU内核172执行的固件的一个或多个图像。再如,固件图像具有(例如)在固件执行期间有CPU内核参考的常数、参数值及NVM设备信息的一个或多个图像。固件的图像对应于(例如)当前固件图像及零或零以上先前(相对于固件更新)固件图像。在各种实施例中,固件提供通用、标准、ONA和/或DNA操作模式。在某些实施例中,经由任选由驱动程序传递和/或提供的密钥或各种软件技术来启用固件操作模式中的一个或多个(例如,一个或多个API“未经锁定”)。
在缺少切换器/光纤/中间控制器的某些实施例中,SSD经由外部接口110直接与主机耦接。在各种实施例中,SSD控制器100经由其他控制器,比如RAID控制器的一个或多个中间级层与主机耦接。在某些实施例中,SSD101(或其变型)对应于SAS驱动器或SATA驱动器,且切换器/光纤/中间控制器103对应于扩展器,该扩展器又与起始器耦接,或可替代地,切换器/光纤/中间控制器103对应于桥接器,该桥接器经由扩展器间接与起始器耦接。在某些实施例中,切换器/光纤/中间控制器103包括一个或多个PCIe切换器和/或光纤。
在各种实施例中,比如在其中主机102是计算主机(例如,计算机、工作站计算机、服务器计算器、存储服务器、SAN、NAS设备、DAS设备、存储器具、PC、膝上电脑、笔记本电脑和/或上网本电脑)的某些实施例中,计算主机任选经启用以与一个或多个本地和/或远程服务器(例如,任选服务器118)通信(例如,经由任选I/O和存储设备/资源117以及任选LAN/WAN119)。例如,通信启用SSD101元件的任意一个或多个的本地和/或远程访问、管理和/或使用。在某些实施例中,通信完全地或部分地经由以太网。在某些实施例中,通信完全地或部分地经由光纤通道。在某些实施例中,LAN/WAN119表示一个或多个局域和/或广域网,比如服务器场中的网络、耦接服务器场的网络、城域网和互联网中的任意一个或多个。
在各种实施例中,SSD控制器和/或计算主机闪存控制器结合一个或多个NVM一起实现为非易失性存储组件,比如USB存储组件、CF存储组件、MMC存储组件、eMMC存储组件、Thunderbolt存储组件、UFS存储组件、SD存储组件、记忆棒存储组件和xD图片卡存储组件。
在各种实施例中,SSD控制器(或计算主机闪存控制器)的所有或任何部分或其功能在主机(例如,图1B的主机102)中实现,控制器要与该主机耦接。在各种实施例中,SSD控制器(或计算主机闪存控制器)的所有或任何部分或其功能经由硬件(例如,逻辑电路)、软件和/或固件(例如,驱动程序软件或SSD控制固件)或其任意组合来实现。例如,ECC单元(比如,类似于图1A的ECC161和/或ECC-X135)的功能或与该ECC单元相关联的功能经由软件在主机上实现且部分经由固件和硬件的组合在SSD控制器中实现。再如,回收站单元(比如类似于图1A的回收站151)的功能或与该回收站单元相关联的功能部分地经由软件在主机上实现且部分地经由硬件在计算主机闪存控制器中实现。
映射操作
图2示出了映射LBA的LPN部分的实施例的所选细节。在某些实施例中,读取单元是最细粒度(granularity,间隔尺寸)的NVM(该NVM可独立读取),比如NVM的页面的一部分。在进一步实施例中,读取单元对应于(较低级)错误校正码的校验位(有时称为冗余)和由校验位保护的所有数据。例如,图1A的ECC161经由校验码(比如经由LDPC码)来实现错误校正,并且读取单元对应于实现除由LDPC编码位保护的数据位之外的LDPC码的编码位。
在某些实施例中,映射141比如经由表143(如图1A所示)将LBA211的LPN213部分映射成LPN的映射信息221。LPN的映射信息(比如LPN的映射信息221)有时被称为映射条目。所说的映射141使LPN与对应映射条目相关联。在各种实施例中,映射经由一个或多个相关查找,经由一个或多个非相关查找,和/或经由一个或多个其他技术。
在某些实施例中,SSD控制器100为潜在和/或有效使用中的每个LPN维护一个映射条目。
在某些实施例中,LPN的映射信息221包括各个读取单元地址223和读取单元的长度225。在某些实施例中,存储长度和/或跨度,比如通过将长度存储为相对于跨度的偏移量而例如在读取单元的长度225的所有或任意部分中进行编码。在进一步实施例中,第一LPN与第一映射条目相关联,第二LPN(不用于第一LPN,但涉及大小与由第一LPN涉及的逻辑页面的大小相同的逻辑页面)与第二映射条目相关联,并且第一映射条目的读取单元中的各个长度不同于第二映射条目的读取单元中的各个长度。
在各种实施例中,在同一时间点,第一LPN与第一映射条目相关联,第二LPN(不同于第一LPN)与第二映射条目相关联,并且第一映射条目的各个读取单元地址与第二映射条目的各个读取单元地址相同。在进一步实施例中,与第一LPN相关联的数据和与第二LPN相关联的数据都存储在NVM199中的同一设备的同一物理页面中。
根据各种实施例,读取单元地址223与以下各项中的一个或多个相关联:NVM中的开始地址;NVM中的结束地址;任意前述的偏移量;以及用于识别与LPN213相关联的NVM的一部分的任何其他技术。
图3示出了以读取单元地址访问NVM以产生被组织为各个读取单元的读取数据(共同具有以读取单元的量测量的长度)的实施例的所选细节。根据各种实施例,第一读取单元313是以下各项中的一个或多个:在NVM的地址空间中具有最低地址的读取数据311中的读取单元之一;读取单元的固定读取单元;读取单元的任意读取单元;读取单元的可变读取单元;以及通过任何其他技术选择的读取单元之一。在各种实施例中,通过读取不超过由单位单元的长度225指定的数量的读取单元来启用SSD控制器100以访问NVM199并产生读取数据311。
图4A示出了读取单元(比如图3的读取单元313或315)作为读取单元401A的一个实施例的所选细节。在各种实施例和/或使用场景下,报头1441A至报头N419A是连续的,并且由每个报头识别的各个数据区域(比如经由各个偏移量)继最后一个报头之后是连续的。数据区域集体形成数据字节421A。按位置顺序存储数据区域,并且该位置顺序匹配存储报头的位置顺序。例如,鉴于第一报头,在读取单元开始时,第二报头和第三报头连续紧接着第一报头。第一数据区域(通过第一报头中的第一偏移量识别的)连续紧接着第三报头。第二数据区域(通过第二报头中的第二偏移量识别的)连续紧接着第一报头。类似地,第三数据区域(通过第三报头识别的)连续紧接着第二数据区域。
图4B示出了读取单元(比如图3的读取单元313或315)作为读取单元401B的另一实施例的所选细节。在各种实施例和/或使用场景下,报头标记(HM)410B是指示以下连续的报头(报头1411B、报头2412B……报头N419B)的数量的任选初始字段(比如1字节字段)。数据区域(数据字节421B、数据字节422B……数据字节429B)分别由报头(报头1411B、报头2412B……报头N419B)识别并按位置顺序存储,该位置顺序与存储报头的位置顺序相反。报头开始于读取单元的初端,而对应数据区域开始于读取单元的末端。在某些实施例中,数据区域中的数据字节(例如,数据字节421B、数据字节422B……数据字节429B)按递增顺序(匹配位置顺序的字节顺序)排列,而在其他实施例中,数据字节沿相反顺序(相对于位置反向的字节顺序)排列。在某些实施例中,报头标记在读取单元中使用,其中报头和数据字节按同一位置顺序存储(例如,如图4A所示)。
在某些实施例中,任选填充字节413A(或413B)根据与特定LPN相关联的数据的粒度(间隔尺寸)。例如,在某些实施例中,如果数据字节421A(或集体为数据字节421B、数据字节422B……数据字节429B)具有少于固定量的剩余空间,比如8字节,在存储与除了报头1411A至报头N419A(或报头1411B、报头2412B……报头N419B)的最后一个报头之后的所有报头相关联的数据之后,与最后报头相关联的LPN的数据开始于后续读取单元。在进一步实施例中,最后报头中的特定偏移值(例如,所有偏移值)指示与最后报头相关联的LPN的数据开始于后续读取单元。
图5示出了具有大量字段的报头(比如,图4A的报头1411A至报头N419A或图4B的报头1411B至报头419B中的任意一个)的实施例的所选细节。在某些实施例中,报头为固定长度(例如,每个报头的长度为相同数量的字节)。报头501包括字段类型511、最后指示符513、标志515、LPN517、长度519和偏移量521。类型字段识别数据字节的类别。例如,类型字段指示数据字节的类别为主机数据(例如,逻辑页面数据)或系统数据(例如映射信息或检查点信息)中的一个。最后字段指示报头是数据字节之前的最后报头。在具有报头标记的某些实施例中,任选省略最后字段。LPN字段是报头与其相关联的LPN。LPN字段启用报头解析以通过(例如)搜索报头中LPN字段与特定LPN匹配的报头来确定与特定LPN相关联的报头中的特定报头。长度字段是数据字节的字节长度(例如,数据有多少字节在与报头501相关联的数据字节421A中)。在某些实施例中,偏移字段中的偏移量根据特定粒度(间隔尺寸)(例如,8字节粒度(间隔尺寸))进行取整。
在各种实施例中,与特定LPN相关联的一部分或所有信息存储在与特定LPN相关联的映射条目、与特定LPN相关联的报头或这两者中。例如,在某些实施例中,长度519的一些或所有存储在映射条目中,而不是报头中。
图6示出了在逻辑片段和/或区段中管理的多个NVM器件(例如,一个或多个闪存管芯和/或闪存芯片)的区块、页面及读取单元的实施例的所选细节。管理功能包括读取、回收、擦除、编程/写入的任意一个或多个,以及其他管理功能。逻辑片段和/或区段有时被称为R-区块。该图示出了具有66个闪存管芯的实施例。明确示出了其中三个闪存管芯(闪存管芯610.65、610.1及610.0)并且隐含地示出了63个闪存管芯(610.64……610.2)。
每一闪存管芯(比如闪存管芯610.65……610.1及610.0的任一个)提供被组织为区块(比如,闪存管芯610.65的区块610.65BB……610.65B1及610.65B0;闪存管芯610.0的区块610.0BB……610.0B1及610.0B0;等等)的存储器。这些区块又包括页面(比如,区块610.65B0的页面610.65PP……610.65P1及610.65P0;区块610.0B0的页面610.0PP……610.0P1及610.0P0;等等)。这些区块又包括读取单元(比如,页面610.65P0的读取单元610.65RR……610.65R1及610.65R0;页面610.0P0的读取单元610.0RR……610.0R1及610.0R0;等等)。
在某些实施例中,每一闪存管芯包括整数个区块(例如N个区块)且区块为最小擦除量。在某些实施例中,每一区块包括整数个页面且页面为最小写入量。根据各种实施例,揭示以下情形中的一个或多个:读取单元为最小读取及错误校正量;每一页面包括整数个读取单元;两个或更多页面的相关联组包括整数个读取单元;且读取单元任选地和/或选择性地跨越页面边界。
在各种实施例中,各种NVM管理功能(例如,读取、回收、擦除和/或编程/写入)在R-区块的单元中执行。R-区块被举例说明为例如闪存的各个管芯(例如,所有管芯,所有管芯不包括全部或部分出现故障的管芯,和/或一个或多个所选管芯子集)上的逻辑片段或区段。例如,在具有R闪存管芯的闪存中,每个闪存管芯具有N个区块,每个R-区块是总共N个R-区块中的来自一起取出的每个闪存管芯的第i区块。再如,在具有R闪存管芯的闪存中,每个具有N个区块,每个R-区块是总共N/2个R-区块中的来自每个闪存管芯的第i和第(i+l)区块。对于又一示例,在具有多个双平面设备的闪存中,每个R-区块是来自每个双平面设备的第i偶数区块和第i奇数区块。对于最后实例来说,在具有R闪存管芯的闪存中,每个具有N个区块,每个R-区块是来自闪存管芯的每一个的第i至第(i+l)区块,总共N/k个R区块。
在成对或以其他相关联组将区块视为形成R-区块的部分的各种实施例中,也将来自区块的相关联组的每一区块的相应页面视为至少用于写入的单元,从而形成更大的多区块页面。例如,继续上述双平面示例,将偶数区块的特定区块的第一页面及奇数区块的相关联区块的第一页面视为用于写入的单元,且任选地和/或选择性地视为用于读取的单元。类似地,将特定偶数区块的第二页面及相关联奇数区块的第二页面视为一单元。根据各种实施例,如本文中使用的NVM的页面指代以下各项中的一个或多个:NVM的单一页面;NVM的多区块页面;任选地和/或选择性地视为用于读取的一个或多个单独页面的用于写入的NVM的多区块页面;及NVM的页面的任何其他组或关联。
该图示出了多个说明性R-区块,明确示出了其中三个(660.0、660.1及660.R)。每个说明性R-区块是来自一起取出的每个闪存管芯的第i区块。例如,R-区块660.0是来自闪存管芯610.65的区块610.65B0、来自闪存管芯610.64的区块0(未明确示出)等,直到闪存管芯610.1的区块610.1B0、以及闪存管芯610.0的区块610.0B0。由于每个闪存管芯存在N个区块,因此存在总计N个R-区块(R-区块660.R……R-区块660.1及R-区块660.0)。
R-区块的另一示例为来自一起取出的闪存管芯中的每一个的第i及第(i+1)区块(例如,来自闪存管芯610.65的区块610.65B0及610.65B1、来自闪存管芯610.64的区块0及1(未明确示出)等,直到来自闪存管芯610.1的区块610.1B0及610.1B1、以及来自闪存管芯610.0的区块610.0B0及610.0B1)。如果每一闪存管芯中存在N个区块,则因此存在N/2个R-区块。R-区块的另一示例为来自多个双平面设备中的每一个的第i偶数及奇数区块。预期作为R-区块以用于管理的闪存管芯区块的其他配置,包括在虚拟区块地址与物理区块地址之间映射以确保R-区块具有来自每一管芯的一个区块,即使一些区块不可操作也如此。在各种实施例中,每一闪存管芯中的N个区块中的一些用作备用,使得在虚拟区块地址与物理区块地址之间的映射具有备用(以其他方式未使用)区块以替代R-区块中的区块中的有缺陷区块。
在各种实施例中,闪存管芯中信息的读取和/或写入根据一个顺序(比如,“读取单元优先”顺序或“页面优先”顺序)来执行。图中所示的读取单元的读取单元优先顺序的示例以读取单元610.0R0开始,其后接着为610.1R0……610.65R0、610.0R1、610.1R1……610.65R1等,以610.65RR结束。图中所示的读取单元的页面优先顺序的示例以读取单元610.0R0开始,其后接着为610.0R1……610.0RR、610.1R0、610.1R1……610.1RR……610.65R0、610.65R1等,以610.65RR结束。
在各种实施例中,R-区块内的数据的写入和/或条带化顺序为跨越所有设备(例如,最低至最高编号设备,如条带化方向600概念性地建议)的页面(例如,最低至最高)优先,接着下一最高页面(跨越所有设备),等等,继续直至R-区块的最后页面。具体针对R-区块660.0,示例性顺序以页面610.0P0(闪存管芯610.0的第一区块中的第一页面)开始,其后接着为页面610.1P0(闪存管芯610.1的第一区块中的第一页面),等等,继续至页面610.65P0(闪存管芯610.65的第一区块中的第一页面,以及R-区块660.0的最后区块)。该示例性顺序以页面610.0P1(闪存管芯610.0的第一区块中的第二页面)继续,其后接着为页面610.1P1(闪存管芯610.1的第一区块中的第二页面),等等,继续至页面610.65P1(闪存管芯610.65的第一区块中的第二页面)。该示例以相同顺序继续。该示例性顺序以页面610.0PP(闪存管芯610.0的第一区块中的最后页面)完成,其后接着为页面610.1PP(闪存管芯610.1的第一区块中的最后页面),等等,以页面610.65PP结束(闪存管芯610.65的第一区块中的最后页面,以及R-区块660.0的最后区块中的最后页面)。
在各种实施例中,闪存管芯610.65……610.1及610.0对应于图1A的一个或多个单独的闪存管芯194的各个。在某些实施例中,闪存管芯610.65……610.1及610.0为小于NVM199的全部的部分。例如,在各种实施例中,跨越多个闪存管芯组而独立地使数据条带化,可独立访问闪存管芯组中的每一个。
带选择
图7概念性地示出了选择性地将数据放在SSD的NVM的特定带中的SSD的实施例的所选细节。从概念上讲,至SSD的NVM的写入源自写入数据源700的一个或多个元件,通过带管理710进行分析,通过数据转换717进行转换,并放在SSD的NVM的特定数据带中。
在某些实施例中,写入数据源700的元件将写入数据708提供给NVM。写入数据源700的元件的示例包括主机数据701、回收数据702、系统数据703以及其他数据704。在某些实施例中,带管理710对写入数据源的一些或全部元件进行相同处理。例如,某些实施例对系统数据和主机数据进行相同处理。在各种实施例中,写入数据源包括上文未列出的元件。主机数据701的示例为主机写入的数据(例如,经由主机接口111或来自主机102)。回收数据702的示例为已经重新写入的数据(例如,通过回收站151)。系统数据703的示例为与映射711有关的数据。在某些实施例中,系统数据703由SSD控制器100生成。其他数据704包括不是主机数据、不是回收数据且不是系统数据的数据。
源ID706控制写入数据源的元件之间的多路复用器并指示哪一个元件提供写入数据708和相关联源信息707。将源信息传递至带管理710。源信息的示例包括写入数据的LBA、写入数据的LBA范围、R-区块地址、和/或回收数据事先放在哪一个带中(例如,对于回收数据来说)。将写入数据传递至数据分析713。
带管理710确定写入数据与源信息的特征并选择合适的带。在所示的实施例中,带管理710包括几个模块映射711、LBA计数器阵列712、数据分析713以及带选择器714。
在所示的实施例中,LBA计数器阵列跟踪访问LBA的特征(例如,分别跟踪向LBA或例如多组连续LBA的读取/写入操作的数量的多个计数器)。映射711将LBA转换为区块和/或NVM的页面地址并且每个映射条目都与LBA计数器阵列712的元件相关联。LBA计数器阵列的元件包括分别跟踪关于相关联LBA或例如多组连续LBA的信息的一个或多个计数器。在各种实施例中,LBA计数器阵列的每个元素都包括以下各项中的一项或多项:至相关联LBA的读取,至相关联LBA的写入,至相关联LBA的读取与至相关联LBA的写入之比,至相关联LBA的连续读取,至相关联LBA的连续写入,以及通过至相关联LBA的写入增加并通过至相关联LBA的读取减去的计数器。在某些实施例中,源信息(例如,LBA)用于访问LBA计数器阵列并从LBA计数器阵列的特定元件检索关于写入数据的信息。
在所示的实施例中,数据分析713确定写入数据708的特性。例如,数据分析检查写入数据的窗口是否包括似乎是x86相对分支指令的阈值个数据字节,由此确定写入数据为可执行数据。在某些实施例中,可执行数据例如通过将相对地址转换为绝对地址来进行进一步转换。再如,数据分析检查写入数据是否不可压缩(例如,数据为压缩格式,比如JPEG、MP3、PDF、MPEG、ZIP等或加密数据)。在某些使用场景下,不可执行且不可压缩数据的读取比在特定时间间隔内的写入相对更频繁,且在某些实施例中可选择地放在特定带中。数据分析的各种实施例包括软件、固件和/或硬件的任意组合。
在某些实施例中,任选提示单元705接收与写入数据相关联的源信息707并将任选提示709传递至带选择器714。作为第一示例,提示指示写入数据只读或以读为主(例如,数据库中的多媒体数据,或只读表)并因此不可能写入。作为第二示例,提示指示写入数据只写或以写为主(例如,记录文件或文件系统日志)并因此不可能读取。提示单元的各种实施例包括软件、固件和/或硬件的组合。在各种实施例中,提示单元软件和/或固件在CPU171上执行。在各种实施例中,提示单元包括使源信息(例如,LBA、LBA范围)与提示相关联的表。在某些实施例中,提示单元至少部分基于从主机(例如,其提供主机数据701)接收的提示信息进行操作。
在所示的实施例中,基于由LBA计数器阵列712、数据分析713和/或任选提示709确定的特征的某些组合,并结合源ID706,带选择器714从数据带730选择写入数据708的带。在某些实施例中,带选择器选择带以提高SSD的性能、磨损均衡、功耗和/或可靠性。在某些实施例中,带选择器选择被确定为相对更频繁写入的写入数据(例如,新写入主机数据,或其中LBA计数器指示特定时间间隔内相对较多的写入)的较热带。带选择器选择被确定为较少写入的写入数据(例如,可执行的或压缩的,或其中LBA计数器指示特定时间间隔内相对较少的写入,或回收数据)的较冷带。在某些使用场景下,回收将热数据和冷数据分为不同带,因为带选择器选择回收数据的较冷带,而带选择器选择频繁写入数据的较热带。在某些实施例中,提示通过指示写入数据(例如,来自主机数据701)是冷数据来加速分离热数据和冷数据,使得带选择器选择冷带。在某些实施例中,将包含很可能具有写入故障的NVM单元的区块分配给冷带,由此提高可靠性。在某些实施例中,将包含不可能具有写入故障的NVM单元的区块分配给热带以提高磨损均衡和可靠性。在某些使用场景下,热带的区块具有更多空闲空间,由此可以进行更有效的回收。
在某些实施例中,带选择器选择不可压缩写入数据的不可压缩带。在某些实施例中,带选择器选择可压缩写入数据的可压缩带。在某些实施例中,带选择器选择可执行写入数据的可执行带。在某些实施例中,带选择器将选择被确定为只写(例如,通过LBA计数器阵列或提示)的写入数据的热带并覆盖其他因素。在某些实施例中,带选择器选择不进行被确定为只写的写入数据的回收的带。
在所示的实施例中,将写入数据716传递至数据转换717。在各种使用场景下,数据转换加密和/或压缩写入数据,并输出转换数据718。数据分析的各种实施例在软件、固件和/或硬件的任意组合中实现。在各种实施例中,数据转换从概念上将发生在数据分析之前,与此并行发生,或发生在此之后,或结合此发生。例如,在某些实施例中,通过数据转换执行的处理确定通过数据分析使用的写入数据的特征。在各种实施例中,数据转换不转换写入数据,转换数据与写入数据相等或相同。
带选择器将所选带的带ID715传递至数据带730。带ID指示选择带731,732……73N中的哪一个带。每个带都包括可用于接收写入数据的R-区块。将转换数据718发送至所选带中的可用R-区块并写入NVM。
在各种实施例中,如图所示的数据带730是概念性的,表示底层存储以及相关联控制功能。例如,数据带730包括NVM以及硬件、软件和/或固件的任意组合以将转换数据718引导至由带ID715识别的NVM的特定区域。在图1A的上下文中,例如,底层存储与NVM199的任意部分对应,相关联控制功能与CPU内核172、缓冲器管理175以及调度193中的任意一个或多个的任意部分对应。
在各种实施例中,数据带730的一个或多个带是NVM(例如,NVM199)的区块的管理组。例如,在所示的实施例中,R-区块731.1……731.M是NVM的区块,带1731是R-区块731.1……731.M的管理组。在各种实施例中,R-区块660.0是R-区块731.1……73N.K的示例性实现。
在各种实施例中,带只包括只来自写入数据源700的元件中的特定元件的区块。在各种实施例中,写入数据源的元件中的特定元件是以下各项中的任意一项:主机数据701、回收数据702、系统数据703及其他数据704。在各实施例中,带包括分别包含只回收的主机数据、回收系统数据及结合回收系统数据的回收主机数据的区块。
再如,带只包括系统703数据的下页面区块。再如,带只包括频繁读取的上页面区块。再如,带只包括具有系统703数据的频繁读取的区块。再如,带只包括具有系统703数据的频繁写入的上页面区块。
图8示出了经由具有FLM和一个或多个SLM页面的二级映射将LBA映射到NVM中所存储的LB的实施例的所选细节,作为LBA至NVM位置映射800。二级映射经由与一个或多个第二级元件(从概念上讲被示为单个元件SLM页面820)耦接的第一级元件(FLM810)来实现。FLM包括多个条目(SLM页面/长度810.1……SLM页面/长度810.M)。FLM的每个条目指向SLM页面(比如SLM页面820)中的一个。SLM页面包括多个条目(LB页面/长度820.1……LB页面/长度820.N)。SLM页面的每个条目指向数据开始的NVM中的位置(例如,至少存储用于LBA的主机写入数据的开始的读取单元)。
在各种实施例中,该图说明了图1A的映射141和/或表143的所选细节或与其有关的所选细节。例如,在某些实施例中,映射141和/或表143实现映射信息的一个或多个缓存,比如FLM的一个或多个条目和/或SLM的一个或多个条目。FLM和/或SLM的整个图像保持在NVM(例如,图1A的NVM199)中,例如当缓存取代先前缓存的FLM和/或SLM条目时更新。在某些实施例中,FLM和/或SLM整个图像经由滚动或往复式球检查点来实现,每个检查点是各自整个映射图像的一部分。
在各种实施例中,SLM页面的每个条目与LBA计数器相关联,使得每个LBA821通过LBA至NVM位置映射800与LBA计数器相关联。例如,在所示的实施例中,LB页面/长度820.1与LBA计数器822.1相关联,LB页面/长度820.2与LBA计数器822.2相关联,LB页面/长度820.N与LBA计数器822.N相关联。在某些实施例中,LBA计数器存储在SLM页面820中。在其他实施例中,LBA计数器存储在与SLM页面820分开的数据结构中。在某些实施例中,LBA计数器与一系列连续的LBA相关联。在其他实施例中,LBA计数器与单个LBA相关联。在其他实施例中,某些LBA计数器与一系列连续的LBA相关联,其他LBA计数器与单个LBA相关联。在某些实施例中,LBA计数器包括关于相关联的LBA的一个或多个统计信息。统计信息的某些实例是连续读取数量,连续写入数量,读取数量,写入数量,读取数量与写入数量之比,以及读取数量与写入数量之间的差。在某些实施例中,部分或全部访问LBA更新了各LBA计数器。在某些实施例中,首先访问LBA将初始化相关联的LBA计数器。
除法器(整数除法器822)例如从可编程硬件寄存器接收参数(SLM条目/SLM页面(CSR)823)以除以输入LBA,从而确定要选择哪个FLM条目以及要选择哪个SLM条目(其在所选FLM条目指向的SLM页面内)。除法器与FLM和SLM页面耦接。
在操作中,将LBA821呈现给整数除法器822。除法器将LBA除以如SLM条目/SLM页面(CSR)823提供的每个SLM页面的SLM条目数量,从而得到商数(FLM索引822Q)和余数(SLM页面索引822R)。商数用于选择FLM条目中的一个,并读取所选FLM条目的页面字段(SLM指针810S)。页面字段用于选择SLM页面中的一个(例如,SLM页面820),并且余数用于(例如,作为偏移量)选择所选SLM页面的条目。所选SLM页面条目的页面字段用于选择NVM,比如特定读取单元中的特定位置,在该特定位置存储有与所呈现的LBA对应的LB的至少开始(LB指针820L)。在各种实施例中,LB指针包括NVM的读取单元的地址(例如,图2的读取单元地址223)。在某些实施例中,各SLM条目的每一个包括编码例如与各SLM条目的各LB的数据相关联的长度和/或跨度的字段。例如,该跨度描述要访问多少(连续)读取单元才获得所有信息(未校正数据及相关联纠错校验位)以确定各LB的(纠错)数据。继续该示例,该长度描述所读取的(例如,在读取单元中,比如由图2的读取单元225的长度所示)信息中有多少对应于各LB的数据。在某些实施例中,各FLM条目的每一个包括编码例如与读取由FLM条目的页面字段指定的各SLM页面整体相关联的长度和/或跨度。例如,该跨度描述要访问多少(连续)读取单元才获得所有信息(未校正数据及相关联纠错校验位)以确定各SLM页面的(纠错)数据。继续该示例,该长度描述所读取的(例如,在读取单元中,比如由图2的读取单元225的长度所示)信息中有多少对应于各SLM页面的数据。
在各种实施例中,商数被用作访问缓存器,比如SLM页面的全相关缓存器的密钥。如果缓存器中存在特定SLM页面命中,则在不访问NVM的情况下在缓存器中找到特定SLM页面的最新副本。在某些实施例和/或使用场景下,对多个SLM页面提供快速访问使得对NVM的随机访问进行更有效的处理和/或使得对NVM的多个独立流的连续数据访问进行更有效的处理(例如,对LBA的第一区域的第一流的连续数据访问穿插对LBA的第二区域的第二流的连续数据访问)。
图9示出了NVM(比如在SSD中)的数据带的带管理流程900的实施例的所选细节的流程图。带管理流程900是带管理流程的各方面的示例性操作(例如,由图7的带管理710执行的处理)。带管理流程包括从多个写入数据源(例如,图7的写入数据源700)的元件接收写入数据(例如,图7的写入数据708)和源信息(例如,图7的源信息707)。带管理流程进一步包括选择性地将写入数据放在数据带(例如,图7的数据带730)中。
响应于提供写入数据的写入数据源,流程开始(开始901)。带管理流程从写入数据源接收识别写入数据源的写入数据和源信息(接收写入数据、源信息902)。带管理流程分析写入数据和源信息以确定写入数据的特征和访问写入数据的特征(分析写入数据、源信息903)。基于所确定的特征,带管理流程选择写入数据的带(选择数据带904)。带管理流程将所选带的指示作为带标识符(例如,图7的带ID715)发送至具有,管理和/或控制多个数据带(例如,图7的数据带730)的元件。带管理流程将写入数据发送至数据转换元件(例如,图7的数据转换717),该数据转换元件转换数据并将用于写入的转换数据发送至所选数据带(将数据分配给带905)。然后流程完成(结束906)。
在各种实施例中,图7说明了图1A及图1B的或与此相关的所选细节。例如,映射711和/或LBA计数器阵列712的所有或任意部分与映射141和/或表143的所有或任意部分对应。在某些实施例中,LBA计数器阵列712是映射141和/或表143的一部分。在其他实施例中,LBA计数器阵列712是与映射141分开的数据结构。
在某些实施例中,带管理710的部分由SSD控制器100的部分实现。例如,数据分析713和/或数据转换717整体或部分实现为在CPU171上执行的软件和/或固件。再如,SSD控制器100包括用于数据分析713和/或数据转换717的硬件。
在各种实施例中,图8说明了图1A的映射141和/或表143和/或图7的映射711和/或LBA计数器阵列712。在各种实施例中,LBA至NVM映射800是映射141和/或映射711的任意部分的实现。在各种实施例中,表143包括多个FLM810和/或SLM页面820。
示例性实现技术
在某些实施例中,经启用以对写入非易失性存储器(例如闪存)的区域执行管理和区域选择的系统、SSD或SSD控制器,计算主机闪存控制器,和/或SSD控制器(比如图1A的SSD控制器100)执行的操作的所有或任意部分,和提供上述操作中的所有或部分的处理器、微处理器、片上系统、专用集成电路、硬件加速器或其他电路的部分的各种组合由与计算机系统进行的处理兼容的规范来指定。该规范符合各种描述,例如,硬件描述语言、电路描述、网表描述、掩码描述或布局描述。示例描述包括:Verilog、VHDL、SPICE、SPICE变体比如PSpice、IBIS、LEF、DEF、GDS-II、OASIS或其描述。在各种实施例中,处理包括解释、编译、模拟和合成的任何组合以生成、验证或指定适于包括在一个或多个集成电路上的逻辑和/或电路。根据各种实施例,每个集成电路可根据多种技术来设计和/或制造。该技术包括可编程技术(例如,场或掩码可编程门阵列集成电路)、半定制技术(比如整体或部分基于单元的集成电路)和全定制技术(比如基本上专用的集成电路)及其任意组合,或与集成电路的设计和/或制造兼容的其他任何技术。
在某些实施例中,通过执行和/或解释一个或多个程序指令,通过解释和/或编译一个或多个源和/或脚本语言语句,或通过执行通过编译、转换和/或解释以编程和/或脚本语言语句表达的信息生成的二进制指令来进行所有或部分如计算机可读介质所述的操作的各种组合,该计算机可读介质存储有一组指令。语句与任何标准的编程或脚本语言(例如,C、C++、Fortran、Pascal、Ada、Java、VBscript和Shell)兼容。一个或多个程序指令、语言语句或二进制指令任选存储在一个或多个计算机可读存储介质元件上。在各种实施例中,一些、所有或各个部分的程序指令实现为一种或多种功能、例程、子例程、线内例程、过程、宏或其部分。
结论
在该说明书中作出的某些选择仅仅是便于制备文本和附图,除非有相反的指示,否则这些选择本身不应解释为表达所述实施例的结构或操作相关的额外信息。选择的示例包括:用于数字编号的设计的特定组织或分配以及用于识别和涉及实施例的特征和元件的元件标识符(例如,插图编号或数字标志符)的特定组织或分配。
词语“包括(includes)”或“包括(including)”具体意在被理解为对描述开放式范围的逻辑组的抽象,且并不指传达物理包含物,除非后面明确跟随词语“之内”。
尽管为了描述和理解清晰的目的,已在一些细节中描述了上述实施例,但本发明不限于所提供的细节。有许多本发明的实施例。所公开的实施例是示例性的,而不是限制性的。
应理解,构造、布置和使用的许多变化可能与说明书一致,且处于已公布的专利的权利要求的范围内。例如,互连和功能单位的位宽度、时钟速率和所使用的技术的类型根据每个组件块中的各种实施例而可变。给于互连和逻辑的名称仅是示例性的,且不应被解释为限制所描述的概念。流程图和流程图过程、动作和功能元件的顺序和布置根据各种实施例可变化。同样地,除非特别说明与此相反,否则指定的值范围、使用的最高值和最低值或其他特定的规范(比如闪存技术类型;以及寄存器和缓存器中的条目或级别的数量)仅是所描述那些实施例,期望跟踪实现技术的改进和变化,且不应被解释为限制。
可采用本技术已知的功能等效的技术,而不是用于实现各种组件、子系统、操作、功能、例程、子例程、在线例程、程序、宏或其部分的那些所述技术。还应理解,实施例中的许多功能方面可在硬件(即,一般专用电路)或软件(例如,经由编程的控制器或处理器的某些方式)中选择性实现,以作为取决于设计约束和更快处理的技术趋势(促使先前在硬件中的功能迁移至软件)和更高的集成密度(促使先前在软件中的功能迁移至硬件)的实施例的功能。各种实施例中的具体变化包括但不限于:划分的差异;不同的形状因数和配置;使用不同的操作系统和其他系统软件;使用不同接口标准、网络协议或通信链路;以及当根据特定应用的独特工程和商业限制实现在本文中描述的概念时预期的其他变化。
已通过超越需要用于所描述的实施例的很多方面的最小实现的细节和环境背景描述了实施例。本领域普通技术人员将认识到,一些实施例省略了公开的组件或特征,且无需改变剩余元件之间的基本合作。因此,应理解大部分公开的细节不需要实现所描述的实施例的各个方面。在剩余元件可与现有技术相区别的范围内,被省略的组件和特征不限于本文中所描述的概念。
设计的所有这些变化是在由所描述的实施例传达的教义上的非实质性变化。还应理解,本文中描述的实施例对其他的计算和网络应用具有广泛的实用性,且并不仅限于所描述的实施例的特定应用或行业。因此,本发明将被解释为包括涵盖在所公布的专利的权利要求的范围内的所有可能的修改和变更。

Claims (25)

1.一种方法,包括:
分析从主机接收的写入以确定所述写入的特征;
至少部分基于所述特征来选择非易失性存储器的多个带中的一个;
将所述写入的数据写入所选带;以及
其中,所述带中的每一个都是所述非易失性存储器的管理部分。
2.根据权利要求1所述的方法,其中,所述特征包括所述写入的数据是可压缩的。
3.根据权利要求1所述的方法,其中,所述特征包括所述写入的数据是可执行的。
4.根据权利要求1所述的方法,其中,所述特征至少部分基于与对应于所述写入的逻辑块地址相关联的计数器。
5.根据权利要求4所述的方法,进一步包括经由所述计数器对向所述逻辑块地址的写入的数量进行计数。
6.根据权利要求4所述的方法,进一步包括经由所述计数器对所述逻辑块地址的读取数量与所述逻辑块地址的写入数量之间的差进行计数。
7.根据权利要求1所述的方法,其中,
经由与一个或多个存储接口标准兼容的存储接口从所述主机接收所述写入;
写入数据至少部分经由使得能够与所述非易失性存储器通信的闪存接口进行;
所述非易失性存储器包括至少一个闪存;以及
所述存储接口和所述闪存接口包括在在单个集成电路中实现的控制器中。
8.根据权利要求1所述的方法,其中,所述带中的每一个根据多个逻辑特性中的至少一个,所述逻辑特性包括被频繁读取、被相对更频繁地写入、被更加相对较少地写入、不可压缩、可执行、不可恢复且必须在断电之后保存、可恢复且不需要在断电之后保存、使用特定技术或密钥加密、使用特定技术或密钥或者利用特定纠错码方案防止错误、进行回收处理以及不进行回收处理。
9.一种系统,包括:
用于分析从主机接收的写入以确定所述写入的特征的装置;
用于至少部分基于所述特征来选择非易失性存储器的多个带中的一个的装置;
用于将所述写入的数据写入所选带的装置;以及
其中,所述带中的每一个都是所述非易失性存储器的管理部分。
10.根据权利要求9所述的系统,其中,所述特征包括所述写入的数据是可压缩的。
11.根据权利要求9所述的系统,其中,所述特征包括所述写入的数据是可执行的。
12.根据权利要求9所述的系统,其中,所述特征至少部分基于与对应于所述写入的逻辑块地址相关联的计数器。
13.根据权利要求12所述的系统,进一步包括用于经由所述计数器对向所述逻辑块地址的写入的数量进行计数的装置。
14.根据权利要求12所述的系统,进一步包括用于经由所述计数器对所述逻辑块地址的读取数量与所述逻辑块地址的写入数量之间的差进行计数的装置。
15.一种有形非临时性计算机可读介质,其中存储有当被处理元件执行时使所述处理元件执行和/或控制包括以下各项的操作的一组指令:
分析从主机接收的写入以确定所述写入的特征;
至少部分基于所述特征来选择非易失性存储器的多个带中的一个;
将所述写入的数据写入所选带;以及
其中,所述带中的每一个都是所述非易失性存储器的管理部分。
16.根据权利要求15所述的有形非临时性计算机可读介质,其中,所述特征包括所述写入的数据是可压缩的。
17.根据权利要求15所述的有形非临时性计算机可读介质,其中,所述特征包括所述写入数据的是可执行的。
18.根据权利要求15所述的有形非临时性计算机可读介质,其中,所述特征至少部分基于与对应于所述写入的逻辑块地址相关联的计数器。
19.根据权利要求18所述的有形非临时性计算机可读介质,其中,所述操作进一步包括经由所述计数器对向所述逻辑块地址的写入的数量进行计数。
20.根据权利要求18所述的有形非临时性计算机可读介质,其中,所述操作进一步包括经由所述计数器对所述逻辑块地址的读取数量与所述逻辑块地址的写入数量之间的差进行计数。
21.根据权利要求15所述的有形非临时性计算机可读介质,其中,
经由与一个或多个存储接口标准兼容的存储接口从所述主机接收所述写入;
写入数据至少部分经由使得能够与所述非易失性存储器通信的闪存接口进行;
所述非易失性存储器包括至少一个闪存;以及
所述处理元件、所述存储接口和所述闪存接口包括在在单个集成电路中实现的控制器中。
22.根据权利要求15所述的有形非临时性计算机可读介质,其中,所述带中的每一个根据多个逻辑特性中的至少一个,所述逻辑特性包括被频繁读取、被相对更频繁地写入、被更加相对较少地写入、不可压缩、可执行、不可恢复且必须在断电之后保存、可恢复且不需要在断电之后保存、使用特定技术或密钥加密、使用特定技术或密钥或者利用特定纠错码(ECC)方案防止错误、进行回收处理以及不进行回收处理。
23.一种装置,包括:
写入分析硬件逻辑电路,使得能够分析从主机接收的写入以确定所述写入的特征;
带选择硬件逻辑电路,使得能够至少部分基于所述特征选择非易失性存储器的多个带中的一个;
存储器写入硬件逻辑电路,使得能够将所述写入的数据写入所选带;以及
其中,所述带中的每一个都是所述非易失性存储器的管理部分。
24.根据权利要求23所述的装置,其中,所述特征包括所述写入的数据是可压缩的。
25.根据权利要求23所述的装置,其中,所述特征包括所述写入的数据是可执行的。
CN201410030730.6A 2013-01-22 2014-01-22 用于写入非易失性存储器的方法和系统及有形非临时性计算机可读介质 Expired - Fee Related CN103942010B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361755442P 2013-01-22 2013-01-22
US61/755,442 2013-01-22

Publications (2)

Publication Number Publication Date
CN103942010A true CN103942010A (zh) 2014-07-23
CN103942010B CN103942010B (zh) 2019-05-10

Family

ID=49949587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410030730.6A Expired - Fee Related CN103942010B (zh) 2013-01-22 2014-01-22 用于写入非易失性存储器的方法和系统及有形非临时性计算机可读介质

Country Status (6)

Country Link
US (1) US9395924B2 (zh)
EP (1) EP2757479A1 (zh)
JP (1) JP6387231B2 (zh)
KR (1) KR102155191B1 (zh)
CN (1) CN103942010B (zh)
TW (1) TWI537724B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016101145A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
CN106354745A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 用于提供计算机装置的接口的方法和计算机装置
CN106527987A (zh) * 2016-11-04 2017-03-22 湖南国科微电子股份有限公司 一种不带dram的ssd主控可靠性提升系统及方法
CN106575206A (zh) * 2014-09-26 2017-04-19 英特尔公司 计算机系统中的存储器写入管理
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN107346213A (zh) * 2016-05-04 2017-11-14 爱思开海力士有限公司 存储器系统及其操作方法
CN107767897A (zh) * 2016-08-18 2018-03-06 爱思开海力士有限公司 存储器系统及其操作方法
CN107924368A (zh) * 2015-07-23 2018-04-17 慧与发展有限责任合伙企业 在计算机系统破坏时保存易失性内存
CN108628763A (zh) * 2017-03-21 2018-10-09 西部数据技术公司 用于高效垃圾收集的预测块分配的存储系统和方法
CN108984111A (zh) * 2017-05-30 2018-12-11 希捷科技有限公司 具有可重写原地存储器的数据存储设备
CN109144424A (zh) * 2018-09-04 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘的读写方法、装置、设备及存储介质
CN109753463A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法
CN109918317A (zh) * 2019-03-01 2019-06-21 重庆大学 一种基于磨损感知的nvm条间磨损均衡方法
CN110140173A (zh) * 2017-01-20 2019-08-16 阿姆有限公司 延长存储器的寿命的装置和方法
CN110874193A (zh) * 2018-08-31 2020-03-10 奈瑞尔德有限公司 使用非易失性锁定存储器的块设备接口
CN111104066A (zh) * 2019-12-17 2020-05-05 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
CN111819539A (zh) * 2018-02-08 2020-10-23 美光科技公司 存储备份存储器封装中的固件更新
CN112771493A (zh) * 2018-09-28 2021-05-07 波利伍德股份有限公司 将写入流分离到多个分区中
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101438716B1 (ko) 2011-08-09 2014-09-11 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US20170046092A1 (en) * 2014-07-04 2017-02-16 Hewlett Packard Enterprise Development Lp Data deduplication
TWI540582B (zh) * 2014-07-10 2016-07-01 群聯電子股份有限公司 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置
US9858008B2 (en) * 2014-10-30 2018-01-02 ScaleFlux Method to reduce flash memory IOs with host maintained address mapping table
DK3059679T3 (en) * 2014-12-05 2018-12-17 Huawei Tech Co Ltd CONTROL UNIT, FLASH MEMORY UNIT, PROCEDURE FOR IDENTIFICATION OF DATA BLOCK STABILITY, AND PROCEDURE FOR STORING DATA ON THE FLASH MEMORY UNIT
US9471448B2 (en) * 2014-12-10 2016-10-18 Intel Corporation Performing an atomic write operation across multiple storage devices
EP3223167B1 (en) * 2014-12-16 2018-11-21 Huawei Technologies Co., Ltd. Storage space management method and device
US9678665B2 (en) 2015-03-06 2017-06-13 Western Digital Technologies, Inc. Methods and systems for memory page allocation
CN106155812A (zh) 2015-04-28 2016-11-23 阿里巴巴集团控股有限公司 一种对虚拟主机的资源管理的方法、装置、系统及电子设备
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
US9927984B2 (en) * 2015-10-14 2018-03-27 Samsung Electronics Co., Ltd. Electronic system with interface control mechanism and method of operation thereof
US9886398B2 (en) * 2015-12-01 2018-02-06 International Business Machines Corporation Implicit sharing in storage management
KR20170075855A (ko) * 2015-12-23 2017-07-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI635746B (zh) * 2016-05-10 2018-09-11 晨星半導體股份有限公司 扭曲畫面校正裝置及方法
KR102567224B1 (ko) 2016-07-25 2023-08-16 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 컴퓨팅 시스템
US10229047B2 (en) * 2016-08-06 2019-03-12 Wolley Inc. Apparatus and method of wear leveling for storage class memory using cache filtering
US10275165B2 (en) 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
US10216417B2 (en) * 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
TWI625620B (zh) * 2017-05-12 2018-06-01 威盛電子股份有限公司 非揮發性記憶體裝置及其讀取方法
US10275162B2 (en) 2017-06-23 2019-04-30 Dell Products L.P. Methods and systems for managing data migration in solid state non-volatile memory
FR3070081B1 (fr) * 2017-08-10 2021-04-09 Safran Identity & Security Procede d'ecriture d'un programme dans une memoire non-volatile tenant compte de l'usure de ladite memoire
CN109857330B (zh) * 2017-11-30 2022-02-15 宜鼎国际股份有限公司 数据存取效率的预估方法
CN108153487B (zh) * 2017-11-30 2021-04-13 西安空间无线电技术研究所 一种基于nand flash的星载固存多源数据文件系统
US10878859B2 (en) 2017-12-20 2020-12-29 Micron Technology, Inc. Utilizing write stream attributes in storage write commands
KR20190078133A (ko) * 2017-12-26 2019-07-04 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
US11803325B2 (en) 2018-03-27 2023-10-31 Micron Technology, Inc. Specifying media type in write commands
US20200042466A1 (en) * 2018-08-03 2020-02-06 Burlywood, Inc. Power Loss Protection And Recovery
US11169726B2 (en) 2018-09-13 2021-11-09 Toshiba Memory Corporation Pool-level storage management
US10922178B2 (en) * 2018-10-31 2021-02-16 Hewlett Packard Enterprise Development Lp Masterless raid for byte-addressable non-volatile memory
CN109802684B (zh) * 2018-12-26 2022-03-25 华为技术有限公司 进行数据压缩的方法和装置
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法
US11327809B2 (en) 2019-06-19 2022-05-10 International Business Machines Corporation Virtual machine memory removal increment selection
CN110716699A (zh) * 2019-10-17 2020-01-21 北京百度网讯科技有限公司 用于写入数据的方法和装置
US11544185B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
US11429545B2 (en) 2020-07-16 2022-08-30 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
CN113946278A (zh) * 2020-07-16 2022-01-18 慧荣科技股份有限公司 主机效能加速模式的数据读取方法及装置
US11544186B2 (en) 2020-07-16 2023-01-03 Silicon Motion, Inc. Method and apparatus for data reads in host performance acceleration mode
KR20220067795A (ko) 2020-11-18 2022-05-25 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11942111B2 (en) * 2021-06-15 2024-03-26 Western Digital Technologies, Inc. Data storage device and method for auto-peeling of surveillance video content to increase archival storage
TWI771079B (zh) * 2021-06-24 2022-07-11 群聯電子股份有限公司 記憶體存取方法、記憶體儲存裝置及記憶體控制電路單元
US20230015697A1 (en) * 2021-07-13 2023-01-19 Citrix Systems, Inc. Application programming interface (api) authorization
CN113590502B (zh) * 2021-07-23 2024-03-22 合肥康芯威存储技术有限公司 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统
TWI814590B (zh) * 2022-09-26 2023-09-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US20070106844A1 (en) * 2005-11-04 2007-05-10 Yasukichi Ohkawa Data processing system and program for transferring data
US20090089489A1 (en) * 2007-09-27 2009-04-02 Tdk Corporation Memory controller, flash memory system with memory controller, and control method of flash memory
US20110010489A1 (en) * 2009-07-09 2011-01-13 Phison Electronics Corp. Logical block management method for a flash memory and control circuit storage system using the same
US20110145486A1 (en) * 2009-12-16 2011-06-16 Tsutomu Owa Memory management device and method
US20110238890A1 (en) * 2010-03-25 2011-09-29 Kabushiki Kaisha Toshiba Memory controller, memory system, personal computer, and method of controlling memory system
GB2479235A (en) * 2010-04-01 2011-10-05 Intel Corp Wear leveling in a solid state drive
WO2012099937A2 (en) * 2011-01-18 2012-07-26 Lsi Corporation Higher-level redundancy information computation

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942552A (en) 1986-11-20 1990-07-17 Allen-Bradley Company, Inc. Method and apparatus for saving and performing industrial control commands
JPH03250499A (ja) * 1990-02-27 1991-11-08 Nec Corp データ記憶回路
JP3212787B2 (ja) 1993-12-02 2001-09-25 日本電気株式会社 転送データ管理方式およびホスト・端末間データ転送方式
US5553261A (en) * 1994-04-01 1996-09-03 Intel Corporation Method of performing clean-up of a solid state disk while executing a read command
JPH1153235A (ja) 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP2001523861A (ja) * 1997-11-17 2001-11-27 シーゲイト テクノロジー エルエルシー フレーム受信のための方法及び専用のフレームバッファ
US6269413B1 (en) * 1998-10-30 2001-07-31 Hewlett Packard Company System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections
US6427198B1 (en) 2000-02-15 2002-07-30 International Business Machines Corporation Method, system, and program for determining system configuration
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
WO2003019394A1 (en) 2001-08-24 2003-03-06 Intel Corporation A general input/output architecture, protocol and related methods to support legacy interrupts
JP2003087348A (ja) 2001-09-14 2003-03-20 Matsushita Graphic Communication Systems Inc 通信制御方法及び通信制御装置並びにadsl通信装置
KR100445134B1 (ko) 2002-01-31 2004-08-21 삼성전자주식회사 플래시 메모리 안정화기능을 구비한 호스트 기기 및 그 방법
US6968439B2 (en) 2002-08-29 2005-11-22 Micron Technology, Inc. Single segment data object management
KR100498233B1 (ko) * 2002-10-31 2005-07-01 한국전자통신연구원 선입선출 메모리 회로 및 그 구현 방법
JP4175185B2 (ja) 2003-06-06 2008-11-05 日本電気株式会社 ネットワーク情報記録装置
CN1670701A (zh) 2004-03-17 2005-09-21 德鑫科技股份有限公司 压缩数据存储方法
US20060174067A1 (en) 2005-02-03 2006-08-03 Craig Soules Method of caching data
CN100361094C (zh) 2005-07-01 2008-01-09 华为技术有限公司 一种节省全局变量内存空间的方法
CN101390043A (zh) 2005-07-01 2009-03-18 美国日本电气实验室公司 嵌入式系统用的存储器体系结构
US7159082B1 (en) 2005-10-03 2007-01-02 Hewlett-Packard Development Company, L.P. System and method for throttling memory accesses
US7719983B2 (en) 2006-01-06 2010-05-18 International Business Machines Corporation Method for autonomic system management using adaptive allocation of resources
JP4855102B2 (ja) 2006-02-23 2012-01-18 株式会社日立製作所 計算機システム及び管理計算機とストレージシステム並びに記憶領域割当量制御方法
US7594073B2 (en) 2006-09-29 2009-09-22 Intel Corporation Method and apparatus for caching memory content on a computing system to facilitate instant-on resuming from a hibernation state
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
JP2009026296A (ja) 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
US8078787B2 (en) 2007-06-22 2011-12-13 Apple Inc. Communication between a host device and an accessory via an intermediate device
US8429358B2 (en) 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
JP2009230407A (ja) * 2008-03-21 2009-10-08 Toshiba Corp データの更新方法、メモリシステムおよびメモリデバイス
US8473707B2 (en) 2008-03-27 2013-06-25 Open Invention Network, Llc Method for achieving sequential I/O performance from a random workload
US7769919B2 (en) 2008-05-15 2010-08-03 International Business Machines Corporation Protecting computer memory from simultaneous direct memory access operations using active and inactive translation tables
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US20090319721A1 (en) * 2008-06-19 2009-12-24 Silicon Motion, Inc. Flash memory apparatus and method for operating the same
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
TW201007734A (en) 2008-08-06 2010-02-16 Genesys Logic Inc Flash memory control apparatus having signal-converting module
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
US7925925B2 (en) 2008-12-30 2011-04-12 Intel Corporation Delta checkpoints for a non-volatile memory indirection table
CN101576834B (zh) 2009-05-08 2012-05-30 西安蓝海本立信息科技有限公司 基于时间戳建立数据视图的连续数据保护系统及方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8560765B2 (en) * 2009-09-08 2013-10-15 Lsi Corporation Systems and methods for variable level use of a multi-level flash memory
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8327226B2 (en) 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
US8700841B2 (en) * 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8489855B2 (en) 2010-05-07 2013-07-16 Ocz Technology Group Inc. NAND flash-based solid state drive and method of operation
CN101930404B (zh) 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US20120059976A1 (en) 2010-09-07 2012-03-08 Daniel L. Rosenband Storage array controller for solid-state storage devices
CN102023818A (zh) 2010-12-06 2011-04-20 成都市华为赛门铁克科技有限公司 一种存储设备容量调整方法、装置及存储设备
KR101467939B1 (ko) 2011-04-26 2014-12-02 엘에스아이 코포레이션 비휘발성 저장부에 대한 가변 오버­프로비저닝
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
KR101438716B1 (ko) 2011-08-09 2014-09-11 엘에스아이 코포레이션 I/o 디바이스 및 컴퓨팅 호스팅 상호동작
US9021319B2 (en) * 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
CN103392207B (zh) 2011-10-05 2017-08-04 希捷科技有限公司 非易失性存储的自身日志记录和层级一致性
JP5583227B1 (ja) * 2012-09-21 2014-09-03 株式会社東芝 物理ブロック間でデータをコピーするディスクアレイ装置、ディスクアレイコントローラ及び方法
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
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9292228B2 (en) * 2013-02-06 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective raid protection for cache memory
US8990614B2 (en) * 2013-03-14 2015-03-24 Apple Inc. Performance of a system having non-volatile memory
CN104794063A (zh) * 2014-01-17 2015-07-22 光宝科技股份有限公司 一种具备电阻式存储器的固态储存装置的控制方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017004B1 (en) * 2002-03-29 2006-03-21 Microsoft Corporation System and method for updating contents of a flash ROM
US20070106844A1 (en) * 2005-11-04 2007-05-10 Yasukichi Ohkawa Data processing system and program for transferring data
US20090089489A1 (en) * 2007-09-27 2009-04-02 Tdk Corporation Memory controller, flash memory system with memory controller, and control method of flash memory
US20110010489A1 (en) * 2009-07-09 2011-01-13 Phison Electronics Corp. Logical block management method for a flash memory and control circuit storage system using the same
US20110145486A1 (en) * 2009-12-16 2011-06-16 Tsutomu Owa Memory management device and method
US20110238890A1 (en) * 2010-03-25 2011-09-29 Kabushiki Kaisha Toshiba Memory controller, memory system, personal computer, and method of controlling memory system
GB2479235A (en) * 2010-04-01 2011-10-05 Intel Corp Wear leveling in a solid state drive
WO2012099937A2 (en) * 2011-01-18 2012-07-26 Lsi Corporation Higher-level redundancy information computation

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106575206A (zh) * 2014-09-26 2017-04-19 英特尔公司 计算机系统中的存储器写入管理
CN105917303B (zh) * 2014-12-23 2019-12-06 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
CN105917303A (zh) * 2014-12-23 2016-08-31 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
WO2016101145A1 (zh) * 2014-12-23 2016-06-30 华为技术有限公司 一种控制器、识别数据块稳定性的方法和存储系统
CN106354745A (zh) * 2015-07-13 2017-01-25 三星电子株式会社 用于提供计算机装置的接口的方法和计算机装置
US11249951B2 (en) 2015-07-13 2022-02-15 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
CN107924368A (zh) * 2015-07-23 2018-04-17 慧与发展有限责任合伙企业 在计算机系统破坏时保存易失性内存
US11182078B2 (en) 2016-03-25 2021-11-23 Samsung Electronics Co., Ltd. Method of accessing a data storage device using a multi-access command
CN107229417A (zh) * 2016-03-25 2017-10-03 三星电子株式会社 数据存储设备及其操作方法
CN107229417B (zh) * 2016-03-25 2022-03-22 三星电子株式会社 数据存储设备及其操作方法
CN107346213B (zh) * 2016-05-04 2020-07-28 爱思开海力士有限公司 存储器系统及其操作方法
CN107346213A (zh) * 2016-05-04 2017-11-14 爱思开海力士有限公司 存储器系统及其操作方法
CN107767897A (zh) * 2016-08-18 2018-03-06 爱思开海力士有限公司 存储器系统及其操作方法
CN107767897B (zh) * 2016-08-18 2021-04-13 爱思开海力士有限公司 存储器系统及其操作方法
CN106527987A (zh) * 2016-11-04 2017-03-22 湖南国科微电子股份有限公司 一种不带dram的ssd主控可靠性提升系统及方法
CN110140173B (zh) * 2017-01-20 2023-07-25 阿姆有限公司 延长存储器的寿命的装置和方法
CN110140173A (zh) * 2017-01-20 2019-08-16 阿姆有限公司 延长存储器的寿命的装置和方法
US11604727B2 (en) 2017-01-20 2023-03-14 Arm Limited Apparatus and methods to prolong lifetime of memories
CN108628763A (zh) * 2017-03-21 2018-10-09 西部数据技术公司 用于高效垃圾收集的预测块分配的存储系统和方法
CN108628763B (zh) * 2017-03-21 2022-08-19 西部数据技术公司 用于高效垃圾收集的预测块分配的存储系统和方法
CN108984111A (zh) * 2017-05-30 2018-12-11 希捷科技有限公司 具有可重写原地存储器的数据存储设备
CN108984111B (zh) * 2017-05-30 2021-09-14 希捷科技有限公司 具有可重写原地存储器的数据存储设备
CN109753463A (zh) * 2017-11-08 2019-05-14 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法
CN109753463B (zh) * 2017-11-08 2022-06-17 爱思开海力士有限公司 控制器及其操作方法和存储系统及其操作方法
CN111819539A (zh) * 2018-02-08 2020-10-23 美光科技公司 存储备份存储器封装中的固件更新
CN110874193A (zh) * 2018-08-31 2020-03-10 奈瑞尔德有限公司 使用非易失性锁定存储器的块设备接口
CN109144424B (zh) * 2018-09-04 2021-10-15 浪潮电子信息产业股份有限公司 一种固态硬盘的读写方法、装置、设备及存储介质
CN109144424A (zh) * 2018-09-04 2019-01-04 浪潮电子信息产业股份有限公司 一种固态硬盘的读写方法、装置、设备及存储介质
CN112771493A (zh) * 2018-09-28 2021-05-07 波利伍德股份有限公司 将写入流分离到多个分区中
CN109918317A (zh) * 2019-03-01 2019-06-21 重庆大学 一种基于磨损感知的nvm条间磨损均衡方法
CN111104066B (zh) * 2019-12-17 2021-07-27 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
CN111104066A (zh) * 2019-12-17 2020-05-05 华中科技大学 数据写入方法、装置及存储服务器和计算机可读存储介质
US11947829B2 (en) 2019-12-17 2024-04-02 Tencent Technology (Shenzhen) Company Limited Data writing method, device, storage server, and computer readable storage medium

Also Published As

Publication number Publication date
JP6387231B2 (ja) 2018-09-05
EP2757479A1 (en) 2014-07-23
US20140208007A1 (en) 2014-07-24
TWI537724B (zh) 2016-06-11
KR102155191B1 (ko) 2020-09-11
US9395924B2 (en) 2016-07-19
TW201443641A (zh) 2014-11-16
JP2014167790A (ja) 2014-09-11
CN103942010B (zh) 2019-05-10
KR20140094468A (ko) 2014-07-30

Similar Documents

Publication Publication Date Title
CN103942010B (zh) 用于写入非易失性存储器的方法和系统及有形非临时性计算机可读介质
CN103942114B (zh) Nvm地址、跨度及长度映射/转换的存储地址空间
CN103858116B (zh) I/o设备及计算主机互操作
CN103902403B (zh) 经由冗余阵列的非易失性存储器编程故障恢复
CN103415844B (zh) 用于高级冗余信息计算的系统和方法
CN103678146B (zh) 为了非易失性存储器中的耗损均衡测量单元损伤
CN103392207B (zh) 非易失性存储的自身日志记录和层级一致性
KR101467941B1 (ko) 비휘발성 저장부에 대한 가변 오버­프로비저닝
CN103329103B (zh) 使用用于基于闪存的数据存储的自适应ecc技术的方法和设备
CN103348330A (zh) 采用独立硅元件的动态较高级冗余模式管理
CN107094370A (zh) 固态硬盘控制器的0‑1平衡管理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160218

Address after: California, USA

Applicant after: Seagate Technology LLC

Address before: California, USA

Applicant before: LSI Corp.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190510