数据存储系统的数据的多个流压缩和格式化的制作方法

文档序号:9355173阅读:459来源:国知局
数据存储系统的数据的多个流压缩和格式化的制作方法
【技术领域】
[0001]本公开涉及计算机系统的数据存储系统。更具体地,本公开涉及存储系统的数据的多个流压缩和格式化。
【背景技术】
[0002]现代计算机系统不断要求提高数据存储系统容量、可靠性和性能。在1981年,用于个人计算机中的典型硬盘驱动器具有约10兆字节(MB)的容量。今天,硬盘驱动器的容量以百万兆字节(TB)来度量。利用叠瓦式磁记录来增加磁存储容量。另外,现代盘驱动器往往包括固态存储器以增强性能。提供用于提高数据存储系统的容量、可靠性和性能的机制和体系结构是期望的。
【附图说明】
[0003]现在将参考下列附图来描述实施本发明各种特征的系统和方法,其中:
[0004]图1示出根据本发明的一些实施例的主机系统和数据存储系统的结合。
[0005]图2示出由根据本发明的一些实施例的数据存储系统采用的压缩和格式化。
[0006]图3示出根据本发明的一些实施例的数据存储系统采用的压缩和格式化数据流。
[0007]图4A示出根据本发明的一些实施例的数据存储系统采用的多个虚拟存储流。
[0008]图4B示出根据本发明的一些实施例的数据存储系统采用的虚拟存储流。
[0009]图5是示出根据本发明的一些实施例在数据存储系统中存储数据的过程的流程图。
【具体实施方式】
[0010]虽然描述了特定实施例,但这些实施例只是示例方式提供,并不旨在限制本发明的保护范围。实际上,本文描述的新颖方法和系统可以以各种其他形式体现。而且,在不偏离本发明保护范围的情况下,可以对本文所述的方法和系统形式进行各种省略、替换和变更。
[0011]臟
[0012]数据存储系统能够采用压缩技术来满足增加的容量、可靠性以及性能的需求。在将主机系统数据存储在数据存储系统之前压缩主机系统数据通常使得压缩的数据具有比主机系统提供的原始未压缩的数据更小的大小。因此,主机系统提供的固定大小的主机数据单元在压缩后变成可变大小的数据单元。存储和检索此类可变大小的数据存在许多挑战。例如,在数据存储系统介质中存储可变大小的数据可能需要对数据存储系统存储数据和保持跟踪所存储的数据的方式进行相当大的改变。作为另一示例,因为主机系统通常希望固定大小的数据在数据检索期间被返回,也可能有必要对数据检索机制进行相当大的更改。作为又一示例,数据存储系统吞吐率能够利用在物理上相邻存储在介质上的连贯逻辑地址来显著提高。不过,来自主机系统的写入命令序列包括连续逻辑地址的多个交错(interleave)流是常见的。在采用压缩的数据存储系统中对此类主机数据流进行去交错(de-1nterleave)导致进一步困难,因为压缩的数据跨越多个物理存储位置并且大小可变。
[0013]在一些实施例中,提供用于压缩和格式化主机数据(或用户数据)以在数据存储系统中存储的机制。数据存储系统能够在将固定大小的数据存储在介质上之前压缩固定大小的数据并格式化所获得的可变大小的压缩数据以用于存储在通常具有固定大小存储粒度的介质上,诸如磁介质的扇区和非易失性固态存储器的页面。一个或更多个模块能够压缩进来的主机数据并形成固定大小的“虚拟”存储单元(或存储单元)的输出流,其包含一个或更多个压缩主机数据单元、纠错和检测码(EDC)信息和用于解码存储单元的逻辑内容的元数据。虚拟存储单元用作压缩的主机数据的固定大小的容器。
[0014]在一些实施例中,通过使用多个写入流和/或虚拟数据流,交错(交叉存储)的主机写数据流被去交错、压缩和格式化。多个写入流能够独立去交错主机数据,以及多个虚拟数据流能够独立格式化压缩(或未压缩的)数据。去交错涉及将连续主机数据写入与非顺序主机数据写入分离以及将多个交错连续主机写入彼此分离。连续或基本连续压缩的主机数据存储在介质中的相邻或基本相邻物理存储器位置中。在一些实施例中,一个或更多个写入流的上下文能够根据需求被保存和恢复,诸如,当主机系统提供应当由具体写入流处理的另外主机数据时。
[0015]系统概沐
[0016]图1示出根据本发明的一些实施例的主机系统和数据存储系统的结合100。如图所示,数据存储系统120 (例如,固态驱动器)包括控制器130和存储介质140。介质140包括非易失性固态存储器阵列150。固态存储器阵列150可以包括闪存集成电路、氧族化合物RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC_RAM或PMCm)、双向统一存储器(OUM)、电阻RAM(RRAM)、NAND存储器(例如,单级单元(SLC)存储器、多级单元(MLC)存储器或它们的任何结合)、NOR存储器、EEPR0M、铁电存储器(FeRAM)、磁阻RAM(MRAM)、其他离散的NVM(非易失性存储器)芯片或它们的任何结合。介质140还包括磁存储装置160,磁存储装置160包括磁记录介质164。在一个实施例中,磁存储装置160利用叠瓦式磁记录。存储介质140能够进一步包括其他类型的存储装置。在一些实施例中,存储介质140能够只包括固态存储器阵列140或磁存储装置160中的一种。
[0017]控制器130能够经配置从主机系统110的存储接口模块112(例如,装置驱动器)接收数据和/或存储存取命令。存储接口 112通信的存储存取命令能够包括主机系统110发出的写数据命令和读数据命令。读命令和写命令能够指定用于存取数据存储系统120的逻辑地址(例如,逻辑块地址或LBA)。控制器130能够在介质140中执行接收到的命令。
[0018]数据存储系统120能够存储主机系统110通信的数据。换句话说,数据存储系统120能够充当主机系统110的存储器存储。为了促进这个功能,控制器130能够实现逻辑接口。逻辑接口能够向主机系统110呈现数据存储系统的存储器,作为能够存储用户数据的一组逻辑地址(例如,连贯地址)。内在地,控制器130能够将逻辑地址映射到介质140中的各种物理位置或地址。控制器130包括缓冲器132,缓冲器132能够包括易失性存储器,诸如随机存取存储器(RAM)(例如,DRAM, SRAM等)。在一个实施例中,缓冲器132在控制器130外部。控制器130还包括压缩和格式化模块134,其经配置压缩和格式化主机数据以用于存储在介质140中,并且解压缩和格式化存储数据以用于提供给主机系统110。压缩和格式化模块134能够利用缓冲器132存储和检索数据并执行压缩和/或格式化任务,包括多个流压缩和/或格式化。在一个实施例中,压缩和格式化模块134在硬件诸如片上系统(SoC)硬件模块中实现。硬件实现能够使用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或它们的结合来实现。在另一实施例中,压缩和格式化模块134能够在固件中实现或实现为硬件和固件的结合。
[0019]在一些实施例中,主机系统110在数据存储系统120中存储数据并且数据存储系统向主机系统返回格式化为一个或更多个逻辑主机数据单元的数据。逻辑主机数据单元能够跨越逻辑地址范围,其中每个逻辑地址对应介质140中的物理位置。主机数据单元能够是任何合适大小(诸如512字节、1024字节(IKB) ,2048字节(2KB) ,4096字节(4KB)等)的固定大小的数据单元。在一个实施例中,主机系统110采用512字节数据单元或扇区。在一些实施例中,介质140被划分为合适大小(诸如512字节、1024字节(IKB)、2048字节(2KB)、4096字节(4KB)等)的固定大小的物理介质存储单元(或存储器数据单元)。物理介质存储单元能够对应存储器的最小可编程和可读部分并且能够跨越各个存储器位置的物理地址。在一些实施例中,不同的介质类型包括不同大小的介质存储单元。例如,固态存储器阵列150能够被划分为芯片、块和页面(诸如2KB页面),并且磁记录介质164能够被划分为磁道、群集和扇区,诸如512字节扇区。
[0020]压缩和格式化
[0021 ] 图2示出根据本发明的一些实施例的数据存储系统120采用的压缩和格式化200。主机系统110提供用于在数据存储系统120中存储的主机数据(或用户数据)。主机系统110能够提供固定大小的主机数据单元形式(诸如512字节的逻辑扇区)的主机数据。主机系统I1能够提供主机数据作为一个或更多个写数据命令的部分。在数据存储系统120侧,压缩和格式化模块134压缩和格式化主机数据单元以用于存储在介质140中。
[0022]在一些实施例中,主机数据单元由映射单元模块210处理。映射单元能够被选择为主机数据单元大小的整数倍,诸如NXs1S s i/N,其中S1是主机数据单元大小(例如,512字节),并且N是整数。映射单元的大小能够经选择以便在通过压缩获得的存储空间的减小与存取存储在介质中的压缩和格式化数据相关联的延迟之间实现最佳或基本最佳平衡。在一些实施例中,映射单元构建器212将一个或更多个主机数据单元组合为一个或更多个映射单元。在一些实施例中,映射单元构建器212将连贯或连续的主机数据单元组合为一个或更多个映射单元。在一个实施例中,连贯或连续主机数据单元与连续的逻辑地址相关联。另外,大小等于主机数据单元大小的整数倍大小的匹配的主机数据单元能够存储在映射单元中。例如,假设主机系统110发送具有对应于512字节逻辑扇区0-7、8-15和16-23的主机数据单元的写数据命令。假设映射单元构建器212经配置将匹配的4KB主机数据(或八个匹配的512字节逻辑扇区)组合为映射单元,其中,“匹配”是指开始(和结束)逻辑地址以及大小的匹配。对于上述示例,映射单元构建器212生成三个映射单元,其包含逻辑扇区0-7、8-15和16-23的主机数据单元。继续先前的示例,假设主机系统110发送具有对应于逻辑扇区1-8的主机数据单元的写数据命令。这些主机数据单元与八个逻辑扇区相关联并具有4KB合计大小。不过,这些主机数据单元不与八个逻辑扇区的大块匹配(例如,介质存储单元边界线交叉)。就是说,这些主机数据单元的开始逻辑扇区是1,不是O。因此,映射单元构建器212生成如下面所讨论的两个单独的部分映射单元:第一个对应于逻辑扇区1-7,而第二个对应于逻辑扇区8。在一些实施例中,映射单元构建器212将非匹配的主机数据单元组合为映射单元。在一些实施例中,映射单元构建器212将非连贯或连贯以及非连续的主机数据单元组合为映射单元。
[0023]在一些实施例中,映射单元构建器212生成部分映射单元(或PMU),其包括比选定的或目标映射单元大小更少的主机数据。例如,假设主机系统发送具有对应于512字节逻辑扇区0-10的主机数据单元的写数据命令,并假设映射单元构建器212经配置将匹配的4KB主机数据(或八个匹配的512字节逻辑扇区)组合为映射单元。映射单元构建器212生成对应于逻辑扇区0-7的主机数据单元的第一完全或完整映射单元和对应于
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1