CN104598387A - 用于内部磁盘驱动数据压缩的系统和方法 - Google Patents

用于内部磁盘驱动数据压缩的系统和方法 Download PDF

Info

Publication number
CN104598387A
CN104598387A CN201410428279.3A CN201410428279A CN104598387A CN 104598387 A CN104598387 A CN 104598387A CN 201410428279 A CN201410428279 A CN 201410428279A CN 104598387 A CN104598387 A CN 104598387A
Authority
CN
China
Prior art keywords
data
storage medium
write
data group
magnetic 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.)
Pending
Application number
CN201410428279.3A
Other languages
English (en)
Inventor
杨少华
E·阿麦德
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.)
Avago Technologies International Sales Pte Ltd
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 CN104598387A publication Critical patent/CN104598387A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明涉及用于内部磁盘驱动数据压缩的系统和方法。提供了一种数据存储系统,所述系统包括:半导体装置,包括:主机接口电路,可操作用于从主机设备接收写指令,其中所述写指令包括写数据组;压缩电路,可操作用于压缩所述写数据组以得到压缩的数据组;以及写通道电路,可操作用于施加编码算法到所压缩的数据组以得到编码的数据组;以及磁存储介质,可操作用于存储与所编码的数据组对应的磁信号。

Description

用于内部磁盘驱动数据压缩的系统和方法
相关申请的交叉引用
本申请要求Yang等人的、提交于2013年10月31日、题为"Systems and Methods for Internal Disk Drive Data Compression"的美国专利申请No.61/898,420的(非临时申请的)优先权。上述临时专利申请的全文出于各种目的通过引用合并到本文中。
背景技术
本发明与用于存储数据压缩的系统和方法有关。
已经开发了包括存储器系统的各种数据传送系统,在其中数据被传输往来于磁存储介质。这些数据可以在主机处被压缩以减少必须被转输和保存在存储介质上的数据容量。这样的主机方压缩可以成为降低数据吞吐率的瓶颈。
因此,由于至少上述的理由,在现有技术中存在用于数据压缩的改进的系统和方法的需要。
发明内容
本发明与用于数据存储压缩的系统和方法有关。
本发明的各个实施例提供的数据存储系统包括:
半导体装置和磁存储介质。半导体装置包括:主机接口电路,可操作用于从主机设备接收写指令,写指令包括写数据组;压缩电路,可操作用于压缩写数据组以产生压缩的数据组;以及写通道电路,可操作用于施加编码算法到压缩的数据组以产生编码的数据组。磁存储介质可操作用于存储与编码的数据组对应的磁信号。
此发明内容仅仅提供了本发明的一些实施例的概要。短语“在一个实施例中”,“根据一个实施例”,“在各个实施例中”,“在一个或多个实施例中”,“在特定实施例中”等通常指跟随短语的特定特征,结构,或者特性被包括在本发明的至少一个实施例中,并且可以被包括在本发明的多于一个实施例中。重要地,这种短语不一定指的是相同的实施例。根据下面的详细说明,所附的权利要求和附图,本发明的许多其它实施例将变得更加清楚。
附图说明
本发明的各个实施例的进一步理解可以通过参考在说明书的其余部分中描述的附图实现。在图中,在贯穿若干附图中使用相似的附图标记来指的是类似的组件。在一些情况下,由小写字母组成的下标与附图标记相关联来表示多个类似的组件中的一个。当在没有说明存在的子标记的情况下提及附图标记时,意图指的是所有这样的多个类似的组件。
图1描绘了根据本发明的一些实施例的包括依靠暂时存储器的内部数据压缩/解压缩的数据存储系统;
图2a-2b示出了根据本发明的一个或更多个实施例的方法的流程图,所述方法用于内部压缩/解压缩磁盘驱动数据,方法当暂时存储器可用时依靠暂时存储器,当暂时存储器不可用时依靠磁存储介质;
图3示出了根据本发明的一些实施例的方法的流程图,所述方法用于依靠暂时存储器的内部压缩/解压缩磁盘驱动数据;以及
图4示出了根据本发明的一些实施例的方法的流程图,所述方法用于依靠暂时存储器以及磁存储介质的内部压缩/解压缩磁盘驱动数据。
具体实施方式
本发明与用于数据存储压缩的系统和方法有关。
本发明的各个实施例提供了数据存储系统,包括:半导体装置,以及磁存储介质。半导体装置包括:主机接口电路,可操作用于从主机设备接收写指令,所述写指令包括写数据组;压缩电路,可操作用于压缩写数据组以产生压缩的数据组;以及写通道电路,可操作用于施加编码算法到压缩的数据组以产生编码的数据组。磁存储介质,可操作用于存储与编码的数据组对应的磁信号。
在上述实施例的某些实例中,系统进一步包括固态存储器设备,可操作用于存储写数据组以及向压缩电路传送写数据组。在一些情况下,固态存储器设备是随机存取存储器设备。在各种实例中,系统进一步包括数据流控制电路,可操作用于使得写数据组被存储到固态存储器设备,以及从固态存储器设备访问写数据组,以及提供写数据组到压缩电路。在一些这种实例中,数据流控制电路进一步可操作于:使得写数据组被存储到磁存储介质;以及当磁存储介质表现出无实质使用时从磁存储介质访问写数据组。在一个或更多个情况中,编码的数据组是压缩的编码数据组;以及使得写数据组被存储到磁存储介质包括:施加数据编码算法到写数据组以产生非压缩的编码数据组;以及存储非压缩的编码数据组到磁存储介质。在特定情况下,当磁存储介质表现出无实质使用时从磁存储介质访问写数据组包括施加数据解码算法到非压缩的编码数据组以产生写数据组。
本发明的其它实施例提供用于在硬盘驱动器中存储数据的方法。该方法包括:提供磁存储介质;提供固态存储器;接收所接收的写数据组;存储所接收的写数据组到所述固态存储器作为存储的写数据组;从所述固态存储器访问所存储的写数据组作为访问的写数据组;施加压缩算法到所访问的写数据组以得到压缩的数据组;编码所压缩的数据组以得到编码的数据组;以及存储所编码的数据组到所述磁存储介质。在一些情况下,固态存储器设备是随机存取存储器以及磁存储介质是硬盘驱动器的盘片。
在上述实施例的各种实例中,该方法进一步包括:存储所接收的写数据组到所述磁存储介质;以及在存储所接收的写数据组到所述固态存储器作为所存储的写数据组之前从所述磁存储介质取回所述写数据组。在编码的数据组是压缩的编码数据组的具体情况时,存储接收的写数据组到磁存储介质包括:编码接收的写数据组以产生非压缩的编码数据组;以及存储非压缩的编码数据组到磁存储介质。在一些情况下,当磁存储介质表现出无实质使用时从磁存储介质访问写数据组包括:施加数据解码算法到非压缩的编码数据组以恢复所接收的写数据组。
本发明的其它实施例提供了存储设备。这种存储设备包括:固态存储器设备,半导体装置,磁存储介质和读取/写入头。所述半导体装置包括:主机接口电路,可操作用于从主机设备接收写指令,其中所述写指令包括写数据组;压缩电路,可操作用于压缩所述写数据组以得到压缩的数据组;数据流控制电路,可操作用于使得所述写数据组被存储到所述固态存储器设备,以及从所述固态存储器设备访问所述写数据组以及提供所述写数据组到所述压缩电路;写通道电路,可操作用于施加编码算法到所压缩的数据组以得到编码的数据组。读取/写入头被相对于所述磁存储介质配置,以及可操作用于利用与所编码的数据组对应的信号磁化所述存储介质。在上述实施例的某些实例中,所编码的数据组是压缩的编码数据组;以及其中所述数据流控制电路进一步可操作用于:施加所述数据编码算法到所述写数据组以得到非压缩的编码数据组;存储所述非压缩的编码数据组到所述磁存储介质;从所述磁存储介质访问所述非压缩的编码数据组;以及施加数据解码算法到所述非压缩的编码数据组以得到所述写数据组。
转向图1,示出了根据本发明的一些实施例的包括依靠暂时存储器的内部数据压缩/解压缩的数据存储系统100。数据存储系统100包括数据控制电路190,暂时存储器180,以及磁存储介质178以及关联的控制电路(显示为盘片)。可使用例如计算机101通过主机接口120访问数据存储系统100。应当注意,计算机101可以是本领域中已知的能够提供用于存储的数据以及用于请求以前被存储的数据的任何设备。
与磁存储介质178相关联的控制电路包括电机控制器168以及主轴电机172。在操作中,数据请求(读取或者写入)被主机接口120接收。主机接口电路120控制去往/来自磁存储介质178的数据的寻址和时序。磁存储介质178上的数据由多组磁信号组成,当读取/写入头组件176正确地定位在盘片178之上时可以由读取/写入头组件176检测到多组磁信号。在一个实施例中,盘片178包括根据纵向的或者垂直的记录方案记录的磁信号。
响应于从计算机101接收的读请求,主机接口120提供控制信号到硬盘控制器166并且提供控制信号到电机控制器168。硬盘控制器166相对于磁存储介质178定位读取/写入头组件176。电机控制器168以确定的旋转速率(RPM)驱动主轴电机172以旋转磁存储介质。随着存储介质178被主轴电机172旋转,一旦读取/写入头组件176被定位邻近正确的数据磁道,代表磁存储介质178上的数据的磁信号就在与读取/写入头组件176对应的位置处被感测到。被感测的磁信号被提供为表示磁存储介质178上的磁数据的持续的,微小的模拟信号。这些微小的模拟信号通过前置放大器170从读取/写入头组件176传输到数据控制电路190。前置放大器170可操作用于放大从磁存储介质178访问的微小的模拟信号。
另外,到主机接口电路120,数据控制电路190包括数据流控制电路182,压缩/解压缩电路122,写通道电路130,写驱动器140,和读通道电路110。在通过从计算机101到主机接口电路120的读请求触发的读取操作期间,从磁存储介质178感测的数据通过前置放大器170被传输到读通道电路110。读通道电路110施加数据解码算法到接收数据以产生压缩数据。读通道电路110可以是本领域中已知的任何读通道电路。在本发明的一个特定实施例中,读通道电路包括数据检测器电路和数据解码器电路,都可通信地通过中央存储器耦接。在本发明的一个这样的实施例中,数据检测器电路是最大后验数据检测器电路,电路施加数据检测算法到通过前置放大器170接收的数据以产生检测的输出。检测的输出被存储到中央存储器。数据解码器电路可以是例如低密度奇偶校验解码器电路。数据解码器电路施加数据解码算法到检测的输出以产生压缩的数据组。
主机接口电路120提供到数据流控制电路182的命令,命令管理通过数据控制电路190的各种电路的数据流。更具体的,数据流控制电路182引导压缩数据从读通道电路110存储在暂时存储器180中。在本发明的一些实施例中,暂时存储器180是固态存储器设备。在一种特定情况中,暂时存储器180是DDR SDRAM。数据流控制电路182等待来自压缩/解压缩电路122的指示压缩/解压缩电路122的可用性的信号。当压缩/解压缩电路122变为可用时,数据流控制电路182访问之前存储到暂时存储器180的压缩数据并且将其提供到压缩/解压缩电路122。
压缩/解压缩电路122可以施加本领域中已知的任何压缩/解压缩算法。压缩/解压缩电路122施加解压缩算法到压缩数据以产生读取数据。读取数据是最初从计算机101接收的要写到磁存储介质178的数据。数据流控制电路182引导读取数据从压缩/解压缩电路122存储回到暂时存储器180,在暂时存储器180,读取数据等待通过主机接口电路120传输到计算机101。具体的,当主机接口电路120向数据流控制电路182发信号表示存在可用的带宽传输之前存储的读取数据时,数据流控制电路182使得从暂时存储器180访问之前存储的读取数据并且作为读取数据103提供到计算机101。
响应于从计算机101接收的写请求,主机接口120提供控制信号到硬盘控制器166并且提供控制信号到电机控制器168。硬盘控制器166相对于磁存储介质178定位读取/写入头组件176。电机控制器168以确定的旋转速率(RPM)驱动主轴电机172以旋转磁存储介质。一旦读取/写入头组件176被定位邻近正确的数据磁道,代表将被存储在磁存储介质178上的数据的信号通过数据控制电路190被提供到读取/写入头组件176,读取/写入头组件176将数据写入磁存储介质178上的磁信号。
在从计算机101到主机接口电路120的写入请求触发的写操作期间,写数据101从计算机101被提供到主机接口电路120。数据流控制电路182引导接收的写数据存储到暂时存储器180。数据流控制电路182等待来自压缩/解压缩电路122的表示压缩/解压缩电路122的可用性的信号。当压缩/解压缩电路122变为可用时,数据流控制电路182访问之前存储到暂时存储器180的写数据并且将其提供到压缩/解压缩电路122。
压缩/解压缩电路122施加压缩算法到写数据以产生压缩数据。数据流控制电路182引导压缩数据从压缩/解压缩电路122存储回到暂时存储器180,在暂时存储器180,其等待传输到写通道电路130。数据流控制电路182等待写通道(例如,写通道电路130,写驱动器140,和读取/写入头176的组合)的可用性。当写通道变为可用时,数据流控制电路182从暂时存储器180访问压缩数据并且提供访问数据到写通道电路130。作为处理的一部分,数据流控制电路182使得存储的压缩数据根据磁存储介质178的磁数据格式间隔尺寸被重新组合到固定格式尺寸。
接下来,写通道电路130施加数据编码算法到所接收的压缩数据以产生编码输出。在本发明的一些实施例中,编码算法是低密度奇偶校验编码算法。产生的编码输出被格式化为代码字提供到写驱动器140。写驱动器140可以是本领域中已知的任何电路,电路能够格式化或者准备用于传输到读取/写入头组件176的接收代码字。另外,写驱动器140创建并且保持日志条目,其将未压缩数据(例如,原始的主机数据)的逻辑块地址链接到磁存储介质178上的编码压缩数据被存储到的物理块地址。链接数据被提供到硬盘控制器166,在硬盘控制器166中链接数据基于通过请求主机提供的逻辑块地址引导访问存储的已压缩数据。接下来,读取/写入头176磁化磁存储介质178以代表编码数据。注意,通过在数据控制电路190内部执行压缩(也即在主机接口电路120和写通道电路130之间),不会在计算机101之间产生瓶颈,并且存储在磁存储介质178上的代码字的尺寸不会由于压缩而变化。
应当注意,在一些实施例中,多个压缩的数据组被再组合在一起成为与磁存储介质178容许的尺寸(例如,4KB)匹配的数据组尺寸。在一些情况下,数据可以使用单个格式比特被标记为不可压缩的。在这种情况下,数据没有被压缩或者是解压缩的。即使数据没有被压缩,然而其可以由于施加到压缩数据的再分组处理而分散跨过多个物理扇区。在相反的方向设置单个格式比特表示数据是可压缩的并且将受到上面讨论的压缩和解压缩。进一步地,应当注意,取决于特定实现方式,数据存储系统100可以与下面关于图2a-2b,图3和图4讨论的任意方法一致地操作。
应当注意,存储系统100可以被集成到更大的存储系统中,诸如,例如基于RAID(廉价磁盘冗余陈列或者独立磁盘冗余阵列)的存储系统。这样的RAID存储系统通过冗余,组合多个盘为一个逻辑单元来增加稳定性和可靠性。根据各种算法,数据可以分布跨越包括在RAID存储系统中的多个磁盘,并且被操作系统访问就像它是单个磁盘一样。例如,在RAID存储系统中数据可以被镜像到多个磁盘,或者在多个技术中可以被分成片段并且分布跨越多个磁盘。如果在RAID存储系统中少量磁盘故障或者变为不可用的,错误校正技术可以被用来基于来自RAID存储系统中的其它磁盘的数据的其余部分而再次创建缺失数据。在RAID存储系统中的磁盘可以是,但不限于,单独的存储系统诸如存储系统100,并且可以是为了增加的安全性而位于彼此靠近或者分布更广。在写操作中,写数据被提供到控制器,控制器例如通过镜像或者通过分解写数据将写数据存储到各磁盘。在读取操作中,控制器从磁盘取回数据。控制器随后得到所产生的读取数据,就好像RAID存储系统是单个磁盘一样。
与读通道电路110相关使用的数据解码器电路可以是,但不限于,如现有技术中已知的低密度奇偶校验(LDPC)解码器电路。这样的低密度奇偶校验技术可应用于在几乎任何通道上的信息传输或者在几乎任何介质中的信息存储。传输应用包括但不限于,光纤,射频信道,有线或者无线局域网,数字用户线路技术,无线蜂窝,在任何介质诸如铜或者光纤之上的以太网,有线通道诸如有线电视,和地球-卫星通信。存储应用包括但不限于,硬盘驱动器,压缩盘,数字视频盘,磁带和存储器件诸如DRAM,NAND闪存,NOR闪存,其它非易失性的存储器和固态驱动器。
另外,应当注意,存储系统100可以被改变以包括额外的固态存储器,固态存储器可以与磁存储介质178并行使用以提供额外的存储。在这种情况下,固态存储器直接接收和提供信息到读通道电路110。或者,固态存储器可以被用作高速缓存,在情况下,其提供比通过磁存储介质178提供的更快的访问时间。在这种情况下,固态存储器可以被配置在接口控制器120和读通道电路110之间,在情况下,当在固态存储器中请求数据不可用时或者当固态存储器没有足够的存储量以保持新写入的数据组时,固态存储器操作为到磁存储介质178的通道。
转向图2a-2b,流程图200示出了根据本发明的一个或更多个实施例的用于内部压缩/解压缩磁盘驱动数据的方法,方法当暂时存储器可用时依靠暂时存储器,当暂时存储器不可用时依靠磁存储介质。遵循流程图200,从主机(块203)接收请求。主机可以是本领域中已知的能够从存储介质读取数据或者写入数据到存储介质的任何设备。作为一个示例,主机可以是计算机。确定请求是否是写入请求(块205)。确定接收请求是写入请求(块205),接收(块210)写数据和对应的逻辑写入地址。
执行暂时存储器的旁路和处理(块212)。转向图2b,示出了块212的处理的细节。如图2b所示,确定暂时存储器是否可用(块224)。暂时存储器的可用性基于暂时存储器是否具有足够的空间存储写数据。在暂时存储器不可用的情况下(块224),接收的写数据被存储到磁存储介质(块229)上的暂时位置。确定磁存储介质是否是脱机(即,具有实质的不期望访问情况的时间段)和暂时存储器是否可用(块234)。在磁存储介质是脱机和暂时存储器可用的情况下(块234),从磁存储介质上的暂时位置访问写数据并且将其存储到暂时存储器(块239)。在写数据被写到磁存储介质的暂时位置之前被编码的情况下,则从存储介质上的暂时位置访问写数据的处理包括解码之前编码的数据以得到原始的写数据。
这种使用磁存储介质上的暂时存储器区域作为临时保持区域的方法允许实现低速度的压缩算法。当存在少数扇区要写入,数据可以被保持在暂时存储器设备中直到压缩完成。与此相反,当数据写入是连续的,慢速率的压缩器不能够实时压缩数据,因此非压缩数据被临时存储到磁存储介质上的暂时存储器区域直到数据写入的减慢允许临时存储数据的压缩。介质可以是暂时介质,或者它可以是数据通常存储在其中的介质。
随后从暂时存储器访问写数据,并且压缩电路施加数据压缩算法,其被应用于取回的数据以得到压缩数据,并且压缩数据被写回暂时存储器(块244)。数据压缩算法可以是本领域中已知的任何压缩算法。
确定编码电路是否可用(例如,不忙的)(块249)。在编码电路不忙的情况下(块249),从暂时存储器(块244)访问之前存储的压缩数据。访问的压缩数据被组合成尺寸与数据将被存储到的存储介质的格式尺寸(例如,4KB)匹配的片段。在这个时候,逻辑地址到物理地址的映射被更新以反映该组合,在这里,组合影响数据将被存储到的存储介质上的物理地址。编码算法被应用于压缩数据以得到编码数据,并且编码数据被写到在磁存储介质上的与写入地址对应的位置。在本发明的一些实施例中,数据编码电路是低密度奇偶校验编码电路。处理随后返回到图2a的块203。可选的,在暂时存储器可用(块224)的情况下,步骤返回到图2b的块215。
再一次参考图2a,写数据被存储到暂时存储器(块215)。逻辑写入地址最终被映射或者关联到存储介质上的可访问数据的物理地址。硬盘控制器保存将逻辑地址关联到物理地址的表。在本发明的一些实施例中,暂时存储器是固态存储器设备。在一个具体情况中,暂时存储器是DDR SDRAM。
随后确定压缩电路是否可用(例如,不忙)(块220)。在压缩电路可用的情况下(块220),从暂时存储器(块225)访问之前存储到暂时存储器的写数据,并且数据压缩算法被应用于取回的数据以得到压缩数据(块230)。数据压缩算法可以是本领域中已知的任何压缩算法。产生的压缩数据被存储回暂时存储器(块235)。
确定编码电路是否可用(例如,不忙)(块240)。在编码电路不忙的情况下(块240),从暂时存储器(块245)访问之前存储的压缩数据。访问的压缩数据被组合成尺寸与数据将被存储到的存储介质的格式尺寸(例如,4KB)匹配的片段。在这个时候,逻辑地址到物理地址的映射被更新以反映该组合,这里,组合影响数据将被存储到的存储介质上的物理地址。编码算法被应用于压缩数据的片段以得到编码的数据组(一个或多个)(块250)。在本发明的一些实施例中,数据编码电路是低密度奇偶校验编码电路。编码数据随后被写到磁存储介质的对应于原始的逻辑写入地址的物理位置(块255)。在本发明的一些实施例中,磁存储介质是硬盘驱动器的盘片。
可选的,在确定接收的请求不是写入请求的情况下(块205),确定接收的请求是否是读请求(块260)。在确定接收的请求是读请求的情况下(块260),接收将从其读取数据的逻辑读取地址(块265)。逻辑读取地址被映射到与存储了请求数据的存储介质位置对应的物理地址。这种从逻辑读取地址到物理地址的转换通过使用将逻辑地址关联到物理地址的表实现,当数据被存储到存储介质(例如,块245)时更新该表。从磁存储介质上的对应于物理地址的位置访问编码数据(块270)。编码数据随后通过解码电路被解码以得到压缩数据(块280)。数据解码电路可以包括低密度奇偶校验解码电路。产生的压缩数据被存储到暂时存储器(块285)。
随后确定解压缩电路是否可用(例如,不忙)(块290)。在解压缩电路可用的情况下(块290),从暂时存储器访问之前存储到暂时存储器的压缩数据(块295)。该处理包括重新组合在块245中的组合执行之前存在的原始压缩数据。数据解压缩算法被施加于所取回的数据以得到读取数据(块201)。数据解压缩算法基本上逆反了通过数据压缩算法施加的压缩,并且可以是本领域中已知的任何解压缩算法。产生的读取数据被存储回到暂时存储器(块206)。最终,从暂时存储器访问该读取数据并且将其提供到该请求主机(块211)。
为了收集垃圾(garbage)(被移动/去除或者删除的扇区),并且由于吞吐量原因压缩写到磁盘的未压缩数据,碎片整理和垃圾收集通常被用来读取压缩和非压缩数据,压缩仍然有效的数据并且再将它们写入进磁盘中。在这个处理中,LBA->PBA表需要被更新/保持。
转向图3,流程图300示出了根据本发明的一些实施例的用于依靠暂时存储器的内部压缩/解压缩磁盘驱动数据的方法。遵循流程图300,从主机接收请求(块303)。主机可以是本领域中已知的能够从存储介质读取数据或者写入数据到存储介质的任何设备。作为一个示例,主机可以是计算机。确定请求是否是写入请求(块305)。在确定接收的请求是写入请求的情况下(块305),接收写数据和对应的逻辑写入地址(块310),并且存储到暂时存储器(块315)。逻辑写入地址最终被映射或者关联到存储介质上的可访问数据的物理地址。硬盘控制器保持将逻辑地址关联到物理地址的表。在本发明的一些实施例中,暂时存储器是固态存储器设备。在一个具体情况中,暂时存储器是DDR SDRAM。
随后确定压缩电路是否可用(例如,不忙)(块320)。在压缩电路可用的情况下(块320),从暂时存储器访问之前存储到暂时存储器的写数据(块325),并且数据压缩算法被施加于所取回的数据以得到压缩数据(块330)。数据压缩算法可以是本领域中已知的任何压缩算法。产生的压缩数据被存储回到暂时存储器(块335)。
确定编码电路是否可用(例如,不忙)(块340)。在编码电路不忙的情况下(块340),从暂时存储器访问之前存储的压缩数据(块345)。访问的压缩数据被组合成尺寸与数据将被存储到的存储介质的格式尺寸(例如,4KB)匹配的片段。在这个时候,逻辑地址到物理地址的映射被更新以体现该组合,这里,组合影响数据被存储到的存储介质上的物理地址。编码算法被施加于压缩数据的片段以得到编码的数据组(一个或多个)(块350)。在本发明的一些实施例中,数据编码电路是低密度奇偶校验编码电路。编码数据随后被写到磁存储介质的对应于原始逻辑写入地址的物理地址(块355)。在本发明的一些实施例中,磁存储介质是硬盘驱动器的盘片。
可选的,在确定接收的请求不是写入请求的情况下(块305),确定接收的请求是否是读请求(块360)。在确定接收的请求是读请求的情况下(块360),接收将从其读取数据的逻辑读取地址(块365)。该逻辑读取地址被映射到与在存储介质上存储了数据的地址对应的物理位置。这种从逻辑读取地址到物理地址的转换通过使用将逻辑地址关联到物理地址的表实现,当数据被存储到存储介质(例如,块345)时,该表被更新。从磁存储介质上的对应于该物理地址的位置访问编码数据(块370)。该编码数据随后通过解码电路被解码以得到压缩数据(块380)。数据解码电路可以包括低密度奇偶校验解码电路。产生的压缩数据被存储到暂时存储器(块385)。
随后确定解压缩电路是否可用(例如,不忙)(块390)。在解压缩电路可用的情况下(块390),从暂时存储器访问之前存储到暂时存储器的压缩数据(块395)。该处理包括重新组合在块345中执行的组合之前存在的原始压缩数据。数据解压缩算法被施加于所取回的数据以得到读取数据(块301)。数据解压缩算法基本上逆反了通过数据压缩算法施加的压缩,并且可以是本领域中已知的任何解压缩算法。产生的读取数据被存储回到暂时存储器(块306)。最终,从暂时存储器访问读取数据并且将其提供到该请求主机(块311)。
在一些情况下,解压缩可以在主机方完成。在这种情况下,块306将被直接发送读取数据到主机的处理代替,并且块311被删去。
转向图4,流程图400示出了根据本发明的一些实施例的用于内部压缩/解压缩磁盘驱动数据的方法,该方法依靠暂时存储器以及磁存储介质。遵循流程图400,从主机接收请求(块403)。主机可以是本领域中能够从存储介质读取数据或者写入数据到存储介质已知的任何设备。作为一个示例,主机可以是计算机。确定该请求是否是写入请求(块405)。在确定该接收的请求是写入请求的情况下(块405),接收写数据和对应的逻辑写入地址,并且存储到暂时存储器(块410)。在本发明的一些实施例中,暂时存储器是固态存储器设备。在一个具体情况中,暂时存储器是DDR SDRAM。
从暂时存储器访问之前存储的写数据并且存储到磁存储介质上的暂时位置(块415)。该存储到磁存储介质的处理可以包括编码未压缩的写数据,并且写入编码的、未压缩的写数据到磁存储介质。在本发明的一些实施例中,磁存储介质是硬盘驱动器的盘片。
确定磁存储介质是否是脱机(例如,具有不期望访问情况的实质性的时间段)(块420)。在磁存储介质是脱机的情况下(块420),从磁存储介质上的暂时地址访问写数据并且将其存储到暂时存储器(块425)。在写数据在被写到该磁存储介质的暂时位置之前被编码的情况下,则从存储介质上的暂时位置访问写数据的处理包括解码之前编码的数据以得到原始的写数据。
随后从暂时存储器访问写数据,并且压缩电路施加的数据压缩算法被施加于取回的数据以得到压缩数据,并且压缩数据被写回暂时存储器(块430)。数据压缩算法可以是本领域中已知的任何压缩算法。
确定编码电路是否可用(例如,不忙)(块440)。在编码电路不忙的情况下(块440),从暂时存储器访问之前存储的压缩数据(块445)。访问的压缩数据被组合成片段,其尺寸与数据将被存储到的存储介质的格式尺寸(例如,4KB)匹配。在这个时候,逻辑地址到物理地址的映射被更新以体现该组合,这里,组合影响该数据将被存储到的存储介质上的物理地址。编码算法被施加于压缩数据以得到编码数据,并且编码数据被写到磁存储介质上的与写入地址对应的位置。在本发明的一些实施例中,数据编码电路是低密度奇偶校验编码电路。
可选的,在确定接收的请求不是写入请求的情况下(块405),确定该接收的请求是否是读请求(块460)。在确定该接收的请求是读请求的情况下(块460),接收将从其读取数据的逻辑地址(块465)。并且从磁存储介质访问对应于接收地址的编码数据,并且编码数据被存储到暂时存储器(块465)。该逻辑读取地址被映射到与存储介质上的存储了请求数据的位置对应的物理地址。这种从逻辑读取地址到物理地址的转换通过使用将逻辑地址关联到物理地址的表实现,当数据被存储到该存储介质(例如,块445)时,该表被更新。从磁存储介质上对应于物理地址的位置访问编码数据,并且所访问的编码数据被存储到暂时存储器。
确定解码电路是否可用(块470)。在解码电路可用的情况下(块470),随后确定磁存储介质是否是脱机的(例如,具有不期望访问情况的实质性的时间段)或者数据解压缩电路是否可用(块480)。在任意一种成立的情况下(块480),从暂时存储器访问编码数据,并且解码电路施加数据解码算法到编码数据以得到压缩数据,压缩数据被存储回到暂时存储器(块475)。数据解码电路可以包括低密度奇偶校验解码电路。随后从暂时存储器访问压缩数据(块485)。该处理包括重新组合在块445中执行的组合之前存在的原始压缩数据组。数据解压缩算法被施加于原始的压缩数据组以得到读取数据该数据解压缩算法基本上逆反了通过数据压缩算法施加的压缩,并且可以是本领域中已知的任何解压缩算法。产生的读取数据被存储回到暂时存储器。最终,从该暂时存储器访问读取数据并且提供到该请求主机(块490)。
应当注意,在以上申请中讨论的各种块可以在集成电路中与其它功能一起实现。这样的集成电路可以包括给出的块、系统或电路的全部功能,或者仅块,系统或电路的功能的子集。进一步地,块,系统或电路的各部件可以跨越多个集成电路实现。这样的集成电路可以是本领域中已知的任何类型的集成电路,包括但不限于,单片集成电路,倒装芯片集成电路,多芯片模块集成电路,和/或混合信号集成电路。也应注意本申请中讨论的块,系统或电路的各种功能可以在以软件或者固件实现。在一些这样的情况中,整个系统,块或电路可以使用它的等同的软件或者固件实现。在其它情况下,给定的系统,块或电路的一部分可以以软件或者固件实现,而其它部分以硬件实现。
总之,本发明提供用于数据存储的新颖的系统、设备、方法和结构。虽然上面已经给出了本发明的一个或多个实施例的详细描述,但是对于本领域技术人员来说在不改变本发明的精神的情况下,各种可替代、修改和等同物将是明白可见的。因此,上述描述不应该被认为限制本发明的范围,而本发明的范围由所附的权利要求限定。

Claims (20)

1.一种数据存储系统,所述系统包括:
半导体装置,包括:
主机接口电路,可操作用于从主机设备接收写指令,其中所述写指令包括写数据组;
压缩电路,可操作用于压缩所述写数据组以得到压缩的数据组;以及
写通道电路,可操作用于施加编码算法到所压缩的数据组以得到编码的数据组;以及
磁存储介质,可操作用于存储与所编码的数据组对应的磁信号。
2.如权利要求1所述的数据存储系统,所述系统还包括:
固态存储器设备,可操作用于存储所述写数据组,并且传输所述写数据组到所述压缩电路。
3.如权利要求2所述的数据存储系统,其中所述固态存储器设备是随机存取存储器设备。
4.如权利要求1所述的数据存储系统,所述系统进一步包括:
固态存储器设备;以及
数据流控制电路,可操作用于使得所述写数据组被存储到所述固态存储器设备,以及使得从所述固态存储器设备访问所述写数据组以及提供所述写数据组到所述压缩电路。
5.如权利要求4所述的数据存储系统,其中所述数据流控制电路进一步可操作用于:
使得所述写数据组被存储到所述磁存储介质;以及
当所述磁存储介质表现出无实质使用时从所述磁存储介质访问所述写数据组。
6.如权利要求5所述的数据存储系统,其中所编码的数据组是压缩的编码数据组;其中使得所述写数据组被存储到所述磁存储介质包括:
施加所述数据编码算法到所述写数据组以得到非压缩的编码数据组;以及
存储所述非压缩的编码数据组到所述磁存储介质;以及
其中当所述磁存储介质表现出无实质使用时从所述磁存储介质访问所述写数据组包括:
施加数据解码算法到所述非压缩的编码数据组以得到所述写数据组。
7.如权利要求1所述的数据存储系统,其中所述编码算法是低密度奇偶校验编码算法。
8.如权利要求1所述的数据存储系统,其中所述系统进一步包括所述主机设备。
9.如权利要求8所述的数据存储系统,其中所述主机设备是计算机。
10.如权利要求1所述的数据存储系统,其中所述主机接口电路进一步可操作用于从所述主机设备接收读取命令。
11.一种用于在硬盘驱动器中存储数据的方法,所述方法包括:
提供磁存储介质;
提供固态存储器;
接收所接收到的写数据组;
存储所接收的写数据组到所述固态存储器作为存储的写数据组;
从所述固态存储器访问所存储的写数据组作为访问的写数据组;
施加压缩算法到所访问的写数据组以得到压缩的数据组;
编码所压缩的数据组以得到编码的数据组;以及
存储所编码的数据组到所述磁存储介质。
12.如权利要求11所述的方法,其中所述固态存储器设备是随机存取存储器。
13.如权利要求11所述的方法,其中所述磁存储介质是硬盘驱动器的盘片。
14.如权利要求11所述的方法,其中所述方法进一步包括:
从主机设备接收写指令,其中所述写指令包括所述写数据组。
15.如权利要求14所述的方法,其中所述主机设备是计算机。
16.如权利要求11所述的方法,其中所述方法进一步包括:
存储所接收的写数据组到所述磁存储介质;以及
在存储所接收的写数据组到所述固态存储器作为所存储的写数据组之前从所述磁存储介质取回所述写数据组。
17.如权利要求16所述的方法,其中所编码的数据组是压缩的编码数据组;其中存储所接收的写数据组到所述磁存储介质包括:
编码所接收的写数据组以得到非压缩的编码数据组;以及
存储所述非压缩的编码数据组到所述磁存储介质;以及
其中当所述磁存储介质表现出无实质使用时从所述磁存储介质访问所述写数据组包括:
施加数据解码算法到所述非压缩的编码数据组以恢复所接收的写数据组。
18.如权利要求11所述的方法,其中所述编码算法是低密度奇偶校验编码算法。
19.一种存储设备,所述存储设备包括:
固态存储器设备;
半导体装置,包括:
主机接口电路,可操作用于从主机设备接收写指令,其中所述写指令包括写数据组;
压缩电路,可操作用于压缩所述写数据组以得到压缩的数据组;
数据流控制电路,可操作用于使得所述写数据组被存储到所述固态存储器设备,以及从所述固态存储器设备访问所述写数据组以及提供所述写数据组到所述压缩电路;
写通道电路,可操作用于施加编码算法到所压缩的数据组以得到编码的数据组;以及
磁存储介质;以及
读取/写入头,被相对于所述磁存储介质配置,并且可操作用于利用与所编码的数据组对应的信号磁化所述存储介质。
20.如权利要求19所述的存储装置,所编码的数据组是压缩的编码数据组;以及其中所述数据流控制电路进一步可操作用于:
施加所述数据编码算法到所述写数据组以得到非压缩的编码数据组;
存储所述非压缩的编码数据组到所述磁存储介质;
从所述磁存储介质访问所述非压缩的编码数据组;以及
施加数据解码算法到所述非压缩的编码数据组以得到所述写数据组。
CN201410428279.3A 2013-10-31 2014-08-28 用于内部磁盘驱动数据压缩的系统和方法 Pending CN104598387A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361898420P 2013-10-31 2013-10-31
US61/898,420 2013-10-31
US14/082,261 US9436550B2 (en) 2013-10-31 2013-11-18 Systems and methods for internal disk drive data compression
US14/082,261 2013-11-18

Publications (1)

Publication Number Publication Date
CN104598387A true CN104598387A (zh) 2015-05-06

Family

ID=52811943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410428279.3A Pending CN104598387A (zh) 2013-10-31 2014-08-28 用于内部磁盘驱动数据压缩的系统和方法

Country Status (6)

Country Link
US (1) US9436550B2 (zh)
JP (1) JP2015088171A (zh)
KR (1) KR20150050332A (zh)
CN (1) CN104598387A (zh)
DE (1) DE102014115855A1 (zh)
TW (1) TW201516659A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345428B (zh) * 2017-01-22 2021-08-31 厦门旌存半导体技术有限公司 控制密集型控制系统及其方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834476B (zh) * 2014-02-10 2016-10-19 安华高科技通用Ip(新加坡)公司 基于段结束标记的数据对准的系统和方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222069A (en) 1990-09-20 1993-06-22 Ampex Systems Corporation Miscorrection arrangement for the concealment of misdetected or miscorrected digital signals
JP2558994B2 (ja) 1992-07-06 1996-11-27 松下電器産業株式会社 デジタル画像信号の誤り補正方法及び誤り補正装置
US5589994A (en) 1992-08-21 1996-12-31 Mitsubishi Denki Kabushiki Kaisha Image recording method and apparatus with reduced error propagation
US5938790A (en) 1997-03-04 1999-08-17 Silicon Systems Research Ltd. Sequence error event detection and correction using fixed block digital sum codes
US6029264A (en) 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
EP0945989A1 (en) 1998-03-12 1999-09-29 Hitachi Micro Systems Europe Limited Viterbi decoding
US6272659B1 (en) 1998-05-18 2001-08-07 Cirrus Logic, Inc. Error correction code processor employing adjustable correction power for miscorrection minimization
JP4324276B2 (ja) 1998-06-03 2009-09-02 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク誤り訂正方法及び装置
US6438724B1 (en) 1999-03-16 2002-08-20 International Business Machines Corporation Method and apparatus for deterministically altering cyclic redundancy check information for data storage
US6446234B1 (en) 1999-03-16 2002-09-03 International Business Machines Corporation Method and apparatus for updating cyclic redundancy check information for data storage
JP3584967B2 (ja) 2000-08-04 2004-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データの再生装置及び再生方法
US6694477B1 (en) 2000-09-28 2004-02-17 Western Digital Technologies, Inc. Communication channel employing an ECC decoder enhanced by likely error events of a trellis sequence detector
US7178086B2 (en) 2003-09-17 2007-02-13 Hitachi Global Storage Technologies Netherlands, B.V. Direct partial update of CRC/ECC check bytes
US7383487B2 (en) 2004-01-10 2008-06-03 Broadcom Corporation IPHD (iterative parallel hybrid decoding) of various MLC (multi-level code) signals
US7685497B2 (en) 2004-03-31 2010-03-23 Nxp B.V. Method and apparatus for efficient computation of check equations in periodical low density parity check (LDPC) codes
US7257762B2 (en) * 2004-10-07 2007-08-14 Lsi Corporation Memory interface with write buffer and encoder
TWI241073B (en) 2005-01-03 2005-10-01 Sunplus Technology Co Ltd Decoding device for product code decoding and method thereof
JP4036338B2 (ja) 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
JP2009527174A (ja) 2006-02-17 2009-07-23 ノキア コーポレイション Mimo受信機を提供する装置、方法およびコンピュータ・プログラム
US8046660B2 (en) * 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
US8019959B2 (en) * 2007-02-09 2011-09-13 Marvell World Trade Ltd. Nonvolatile memory system
US9128868B2 (en) 2008-01-31 2015-09-08 International Business Machines Corporation System for error decoding with retries and associated methods
CN101803206B (zh) 2008-08-15 2013-09-04 Lsi公司 近码字的rom列表解码
US8321772B1 (en) 2008-10-20 2012-11-27 Link—A—Media Devices Corporation SOVA sharing during LDPC global iteration
US20110109773A1 (en) 2009-11-10 2011-05-12 General Electric Company System and method for adaptive nonlinear compressed visual sensing
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
US9548758B2 (en) 2010-01-05 2017-01-17 Alcatel-Lucent Usa Inc. Secure compressive sampling using codebook of sampling matrices
CN102714730B (zh) 2010-01-15 2016-05-04 汤姆森特许公司 使用压缩感测的视频编解码
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
JP5712609B2 (ja) * 2010-12-24 2015-05-07 富士通株式会社 データ処理装置及びデータ記録方法
US8862972B2 (en) 2011-06-29 2014-10-14 Lsi Corporation Low latency multi-detector noise cancellation
US20130024163A1 (en) 2011-07-19 2013-01-24 Lsi Corporation Systems and Methods for Early Stage Noise Compensation in a Detection Channel
US8977937B2 (en) * 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
US9230596B2 (en) * 2012-03-22 2016-01-05 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for variable rate coding in a data processing system
US8949704B2 (en) * 2012-03-22 2015-02-03 Lsi Corporation Systems and methods for mis-correction correction in a data processing system
US9178534B2 (en) * 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes
US20140055881A1 (en) * 2012-08-22 2014-02-27 Lsi Corporation Recording regions in a shingled magnetic hard disk drive system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345428B (zh) * 2017-01-22 2021-08-31 厦门旌存半导体技术有限公司 控制密集型控制系统及其方法

Also Published As

Publication number Publication date
US9436550B2 (en) 2016-09-06
DE102014115855A1 (de) 2015-04-30
TW201516659A (zh) 2015-05-01
JP2015088171A (ja) 2015-05-07
US20150121173A1 (en) 2015-04-30
KR20150050332A (ko) 2015-05-08

Similar Documents

Publication Publication Date Title
US11086774B2 (en) Address translation for storage device
US10055171B2 (en) Compression and formatting of data for data storage systems
US20180314627A1 (en) Systems and Methods for Referencing Data on a Storage Medium
US10037245B2 (en) Raid system performance enhancement using compressed data and byte addressable storage devices
US10127166B2 (en) Data storage controller with multiple pipelines
US20140281302A1 (en) Multiple stream compression and formatting of data for data storage systems
US11722064B2 (en) Address translation for storage device
JP2004362583A (ja) ユニバーサルフォーマット記憶ドライブおよびユニバーサルフォーマットでデータを記憶するための方法
US10996886B2 (en) Method and system for facilitating atomicity and latency assurance on variable sized I/O
US20140365785A1 (en) Migration of encrypted data for data storage systems
KR101594029B1 (ko) 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US10437667B2 (en) Raid system performance enhancement using compressed data
US11360674B2 (en) Encoded parity
JP2007193439A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
CN104598387A (zh) 用于内部磁盘驱动数据压缩的系统和方法
US20010047461A1 (en) Systems and methods for relocation of compressed data tracks
JP2005322208A (ja) シリコン記憶メディア、コントローラ及びそのアクセス方法
KR20030051393A (ko) 데이터 저장 장치
US11461173B1 (en) Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
KR102380101B1 (ko) 정규화된 서비스 품질을 위한 엔트로피 구동 내구성
JP2024044792A (ja) メモリシステム
JP2014225311A (ja) データ記憶装置およびデータ記憶制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) CORPORAT

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES CORP.

Effective date: 20150813

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150813

Address after: Singapore Singapore

Applicant after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: California, USA

Applicant before: LSI Corp.

WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150506