JP2015088171A - 内部ディスクドライブデータ圧縮のためのシステム及び方法 - Google Patents

内部ディスクドライブデータ圧縮のためのシステム及び方法 Download PDF

Info

Publication number
JP2015088171A
JP2015088171A JP2014143880A JP2014143880A JP2015088171A JP 2015088171 A JP2015088171 A JP 2015088171A JP 2014143880 A JP2014143880 A JP 2014143880A JP 2014143880 A JP2014143880 A JP 2014143880A JP 2015088171 A JP2015088171 A JP 2015088171A
Authority
JP
Japan
Prior art keywords
data set
data
write
storage medium
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
JP2014143880A
Other languages
English (en)
Inventor
ヤング サオフュア
Shaohua Yang
ヤング サオフュア
アハメド エバッド
Ahmed Ebad
アハメド エバッド
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.)
LSI Corp
Original Assignee
LSI 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 LSI Corp filed Critical LSI Corp
Publication of JP2015088171A publication Critical patent/JP2015088171A/ja
Pending legal-status Critical Current

Links

Images

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
    • 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
    • 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

【課題】内部ディスクドライブデータ圧縮のためのシステム及び方法を提供する。
【解決手段】コンピューター101から受信された読み出し要求に応答して、ホストインターフェース120は、ハードディスクコントローラー166に制御信号を提供するとともに、モーターコントローラー168に制御信号を提供する。コンピューター101からホストインターフェース回路120への読み出し要求によってトリガーされた読み出し動作中に、磁気記憶媒体178から検知されたデータは、前置増幅器170を介して読み出しチャンネル回路110に配信される。読み出しチャンネル回路110は、データ復号化アルゴリズムを受信して圧縮データを得る。
【選択図】図1

Description

本発明は、データストレージ圧縮のためのシステム及び方法に関する。
[関連出願の相互参照]
本願は、「Systems and Methods for Internal Disk Drive Data Compression」と題する、2013年10月31日にYang他によって出願された米国仮特許出願第61/898420号の優先権を主張する(この仮特許出願の正規の特許出願である)。実際上は、前述の仮特許出願の全体が、引用することにより本願の一部をなす。
データが磁気記憶媒体との間で転送される記憶システムを含む様々なデータ転送システムが開発されてきた。このデータは、記憶媒体に転送及び保持しなければならないデータの容量を削減するためにホストにおいて圧縮することができる。そのようなホストサイド圧縮は、データスループットを低減するボトルネックになる可能性がある。
したがって、少なくとも前述の理由から、当該技術分野においては、データ圧縮のための高度なシステム及び方法が必要とされている。
本発明は、データストレージ圧縮のためのシステム及び方法に関する。
本発明の様々な実施形態は、半導体デバイスと磁気記憶媒体とを備えるデータ記憶システムを提供する。前記半導体装置は、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、前記書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、前記書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、前記圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。前記磁気記憶媒体は前記符号化データセットに対応する磁気信号を記憶するように動作可能である。
本概要は、本発明の幾つかの実施形態の概要のみを提供する。「一実施形態では」、「一実施形態によれば」、「様々な実施形態では」、「1つ又は複数の実施形態では」、「特定の実施形態では」等の言い回しは、概して、その言い回しの後に続く特定の特徴、構造又は特性が本発明の少なくとも1つの実施形態に含まれ、本発明の2つ以上の実施形態に含まれる場合もあることを意味する。重要なことには、このような言い回しは必ずしも同じ実施形態を指すとは限らない。本発明の多くの他の実施形態は以下の詳細な説明、添付の特許請求の範囲、及び添付の図面からより完全に明白になる。
図面を参照することにより、本発明の様々な実施形態の更なる理解を実現することができ、これらの実施形態については本明細書の残りの部分で説明する。図面において、同様の参照符号が幾つかの図面の全てにわたって類似の構成要素を指すのに用いられている。幾つかの場合には、小文字からなるサブラベルが、複数の類似の構成要素のうちの1つを表すように参照符号に関連付けられている。存在するサブラベルを指定することなく参照符号が参照されるとき、そのような複数の類似の構成要素全てを指すことが意図される。
本発明の幾つかの実施形態によるスクラッチメモリに依拠した内部データ圧縮/伸張を有するデータ記憶システムを示す図である。 スクラッチメモリが利用可能であるときは、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮/伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮/伸張するための本発明の1つ又は複数の実施形態による方法を示す流れ図である。 スクラッチメモリが利用可能であるときは、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮/伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮/伸張するための本発明の1つ又は複数の実施形態による方法を示す流れ図である。 スクラッチメモリに依拠したディスクドライブデータを内部で圧縮/伸張するための本発明の幾つかの実施形態による方法を示す流れ図である。 スクラッチメモリ及び磁気記憶媒体の双方に依拠してディスクドライブデータを内部で圧縮/伸張するための本発明の幾つかの実施形態による方法を示す流れ図である。
本発明は、データストレージ圧縮のためのシステム及び方法に関する。
本発明の様々な実施形態は、半導体デバイスと磁気記憶媒体とを備えるデータ記憶システムを提供する。半導体デバイスは、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。磁気記憶媒体は、符号化データセットに対応する磁気信号を記憶するように動作可能である。
上記実施形態の幾つかの場合において、システムは、書き込みデータセットを記憶するとともに書き込みデータセットを圧縮回路に転送するように動作可能なソリッドステートメモリデバイスを更に備える。幾つかの場合においては、ソリッドステートメモリデバイスはランダムアクセスメモリデバイスである。様々な場合において、システムは書き込みデータセットをソリッドステートメモリデバイスに記憶するとともにソリッドステートメモリデバイスから書き込みデータセットにアクセスして書き込みデータセットを圧縮回路に提供するように動作可能なデータフロー制御回路を更に備える。幾つかのそのような場合において、データフロー制御回路は、書き込みデータセットを磁気記憶媒体に記憶し、磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスするように更に動作可能である。1つ又は複数の場合において、符号化データセットは、圧縮された符号化データセットであり、書き込みデータセットを磁気記憶媒体に記憶することは、データ符号化アルゴリズムを書き込みデータセットに適用して非圧縮の符号化データセットを得ることと、非圧縮の符号化データセットを磁気記憶媒体に記憶することとを含む。特定の場合において磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスすることは、非圧縮の符号化データセットにデータ復号化アルゴリズムを適用して書き込みデータセットを得ることを含む。
本発明の他の実施形態は、データをハードディスクドライブに記憶するための方法を提供する。本方法は、磁気記憶媒体を準備することと、ソリッドステートメモリを準備することと、受信書き込みデータセットを受信することと、受信書き込みデータセットをソリッドステートメモリに記憶書き込みデータセットとして記憶することと、記憶書き込みデータセットをソリッドステートメモリからアクセス書き込みデータセットとしてアクセスすることと、アクセス書き込みデータセットに圧縮アルゴリズムを適用することであって、圧縮データセットを得ることと、圧縮データセットを符号化することであって、符号化データセットを得ることと、符号化データセットを磁気記憶媒体に記憶することとを含む。幾つかの場合においては、ソリッドステートメモリデバイスは、ランダムアクセスメモリデバイスであり、磁気記憶媒体は、ハードディスクドライブのディスクプラッターである。
上記実施形態の様々な場合において、本方法は、受信書き込みデータセットを磁気記憶媒体に記憶することと、受信書き込みデータセットをソリッドステートメモリに記憶書き込みデータセットとして記憶する前に、書き込みデータセットを磁気記憶媒体から取り出すこととを更に含む。1つの特定の場合において、符号化データセットは、圧縮された符号化データセットであり、受信書き込みデータセットを磁気記憶媒体に記憶することは、受信書き込みデータセットを符号化することであって、非圧縮の符号化データセットを得ることと、非圧縮の符号化データセットを磁気記憶媒体に記憶することとを含む。幾つかの場合において、磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスすることは、非圧縮の符号化データセットにデータ復号化アルゴリズムを適用することであって、受信書き込みデータセットを回復することを含む。
本発明の更に他の実施形態は、記憶デバイスを提供する。そのような記憶デバイスは、ソリッドステートメモリデバイスと、半導体デバイスと、磁気記憶媒体と、読み出し/書き込みヘッドとを備える。半導体デバイスは、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、書き込みデータセットをソリッドステートメモリデバイスに記憶するとともにソリッドステートメモリデバイスから書き込みデータセットにアクセスして書き込みデータセットを圧縮回路に提供するように動作可能なデータフロー制御回路と、圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。読み出し/書き込みヘッドは、磁気記憶媒体に対して配置されるとともに、符号化データセットに対応する信号を用いて記憶媒体を磁化するように動作可能である。上記実施形態の幾つかの場合において、符号化データセットは、圧縮された符号化データセットであり、データフロー制御回路は、データ符号化アルゴリズムを書き込みデータセットに適用して非圧縮の符号化データセットを得て、非圧縮の符号化データセットを磁気記憶媒体に記憶し、磁気記憶媒体から非圧縮の符号化データセットにアクセスし、データ復号化アルゴリズムを非圧縮の符号化データセットに適用して書き込みデータセットを得るように更に動作可能である。
図1を参照すると、本発明の幾つかの実施形態によるスクラッチメモリに依拠した内部データ圧縮/伸張を有するデータ記憶システム100が示されている。データ記憶システム100は、データ制御回路190、スクラッチメモリ180、並びに磁気記憶媒体178及び関連付けられた制御回路部(ディスクプラッターとして示されている)を備える。データ記憶システム100は、例えば、コンピューター101を用いてホストインターフェース120を介してアクセス可能である。コンピューター101は、記憶するため及び以前に記憶されたデータを要求するためにデータを提供することが可能な、当該技術分野において知られている任意のデバイスとすることができることに留意すべきである。
磁気記憶媒体178に関連付けられた制御回路部は、モーターコントローラー168及びスピンドルモーター172を備える。動作中、データ要求(読み出し又は書き込み)がホストインターフェース120によって受信される。ホストインターフェース回路120は、磁気記憶媒体178への/からのデータのアドレス指定及びタイミングを制御する。磁気記憶媒体178上のデータは、読み出し/書き込みヘッドアセンブリ176がディスクプラッター178の上方に適切に位置決めされたときに、このアセンブリが検出することができる磁気信号の群からなる。1つの実施形態では、ディスクプラッター178は、長手記録方式又は垂直記録方式のいずれかに従って記録された磁気信号を含む。
コンピューター101から受信された読み出し要求に応答して、ホストインターフェース120は、ハードディスクコントローラー166に制御信号を提供するとともに、モーターコントローラー168に制御信号を提供する。ハードディスクコントローラー166は、磁気記憶媒体178に対して読み出し/書き込みヘッドアセンブリ176を位置決めする。モーターコントローラー168は、スピンドルモーター172を駆動して、決定されたスピン速度(RPM)で磁気記憶媒体をスピンさせる。読み出し/書き込みヘッドアセンブリ176が適切なデータトラックに隣接して位置決めされると、記憶媒体178がスピンドルモーター172によって回転されるにつれて、磁気記憶媒体178上のデータを表す磁気信号が、対応するロケーションにおいて読み出し/書き込みヘッドアセンブリ176によって検知される。これらの検知された磁気信号は、磁気記憶媒体178上の磁気データを表す連続した微小アナログ信号として提供される。これらの微小アナログ信号は、読み出し/書き込みヘッドアセンブリ176から前置増幅器170を介してデータ制御回路190に転送される。前置増幅器170は、磁気記憶媒体178からアクセスされた微小アナログ信号を増幅するように動作可能である。
ホストインターフェース回路120に加えて、データ制御回路190は、データフロー制御回路182、圧縮/伸張回路122、書き込みチャネル回路130、書き込みドライバー140、及び読み出しチャネル回路110を備える。コンピューター101からホストインターフェース回路120への読み出し要求によってトリガーされた読み出し動作中に、磁気記憶媒体178から検知されたデータは、前置増幅器170を介して読み出しチャネル回路110に配信される。読み出しチャネル回路110は、データ復号化アルゴリズムを受信データに適用して、圧縮データを得る。読み出しチャネル回路110は、当該技術分野において知られている任意の読み出しチャネル回路とすることができる。本発明の1つの特定の実施形態では、読み出しチャネル回路は、それぞれが中央メモリを介して通信可能に結合されたデータ検出器回路及びデータ復号器回路を備える。本発明の1つのそのような実施形態では、データ検出器回路は、前置増幅器170を介して受信されたデータにデータ検出アルゴリズムを適用して検出出力を得る最大事後データ検出器回路である。この検出出力は、中央メモリに記憶される。データ復号器回路は、例えば、低密度パリティ検査復号器回路とすることができる。データ復号器回路は、データ復号化アルゴリズムを検出出力に適用して圧縮データセットを得る。
ホストインターフェース回路120は、データ制御回路190の様々な回路部を通るデータのフローを統制するコマンドをデータフロー制御回路182に提供する。特に、データフロー制御回路182は、読み出しチャネル回路110からの圧縮データのスクラッチメモリ180への記憶を指示する。本発明の幾つかの実施形態では、スクラッチメモリ180は、ソリッドステートメモリデバイスである。1つの特定の場合には、スクラッチメモリ180は、DDR SDRAMである。データフロー制御回路182は、圧縮/伸張回路122が利用可能であることを示す、圧縮/伸張回路122からの信号を待つ。圧縮/伸張回路122が利用可能になると、データフロー制御回路182は、スクラッチメモリ180に以前に記憶された圧縮データにアクセスし、この圧縮データを圧縮/伸張回路122に提供する。
圧縮/伸張回路122は、当該技術分野において知られている任意の圧縮/伸張アルゴリズムを適用することができる。圧縮/伸張回路122は、伸張アルゴリズムを圧縮データに適用して読み出しデータを得る。この読み出しデータは、磁気記憶媒体178に書き込むためにコンピューター101から当初受信されたデータである。データフロー制御回路182は、圧縮/伸張回路122からスクラッチメモリ180への読み出しデータの再度の記憶を指示する。このスクラッチメモリにおいて、読み出しデータは、ホストインターフェース回路120を介したコンピューター101への転送を待つ。特に、ホストインターフェース回路120が、以前に記憶された読み出しデータを転送するのに利用可能な帯域幅があることを示す信号をデータフロー制御回路182に伝えると、データフロー制御回路182は、スクラッチメモリ180からの以前に記憶された読み出しデータにアクセスし、このデータを読み出しデータ103としてコンピューター101に提供する。
コンピューター101から受信された書き込み要求に応答して、ホストインターフェース120は、ハードディスクコントローラー166に制御信号を提供するとともに、モーターコントローラー168に制御信号を提供する。ハードディスクコントローラー166は、磁気記憶媒体178に対して読み出し/書き込みヘッドアセンブリ176を位置決めする。モーターコントローラー168は、スピンドルモーター172を駆動して、決定されたスピン速度(RPM)で磁気記憶媒体をスピンさせる。読み出し/書き込みヘッドアセンブリ176が適切なデータトラックに隣接して位置決めされると、磁気記憶媒体178上に記憶されるデータを表す信号が、データを磁気信号として磁気記憶媒体178上に書き込むデータ制御回路190によって読み出し/書き込みヘッドアセンブリ176に提供される。
コンピューター101からホストインターフェース回路120への書き込み要求によってトリガーされた書き込み動作中、書き込みデータ101は、コンピューター101からホストインターフェース回路120に提供される。データフロー制御回路182は、受信された書き込みデータのスクラッチメモリ180への記憶を指示する。データフロー制御回路182は、圧縮/伸張回路122が利用可能であることを示す、圧縮/伸張回路122からの信号を待つ。圧縮/伸張回路122が利用可能になると、データフロー制御回路182は、スクラッチメモリ180に以前に記憶された書き込みデータにアクセスし、この書き込みデータを圧縮/伸張回路122に提供する。
圧縮/伸張回路122は、圧縮アルゴリズムを書き込みデータに適用して圧縮データを得る。データフロー制御回路182は、圧縮/伸張回路122からスクラッチメモリ180への圧縮データの再度の記憶を指示する。このスクラッチメモリにおいて、圧縮データは、書き込みチャネル回路130への転送を待つ。データフロー制御回路182は、書き込みチャネル(すなわち、書き込みチャネル回路130、書き込みドライバー140、及び読み出し/書き込みヘッド176の組み合わせ)が利用可能になるのを待つ。書き込みチャネルが利用可能になると、データフロー制御回路182は、スクラッチメモリ180からの圧縮データにアクセスし、このアクセスしたデータを書き込みチャネル回路130に提供する。このプロセスの一部として、データフロー制御回路182は、磁気記憶媒体178の磁気データフォーマットの粒度に従って、記憶された圧縮データを固定フォーマットサイズに再組み立てする。
次に、書き込みチャネル回路130は、データ符号化アルゴリズムを受信された圧縮データに適用して符号化出力を得る。本発明の幾つかの実施形態では、符号化アルゴリズムは、低密度パリティ検査符号化アルゴリズムである。その結果得られた符号化出力は、書き込みドライバー140に提供される符号語としてフォーマットされる。書き込みドライバー140は、受信された符号語を読み出し/書き込みヘッドアセンブリ176への転送用にフォーマット又は準備することが可能な当該技術分野において知られている任意の回路とすることができる。加えて、書き込みドライバー140は、未圧縮データ(すなわち、元のホストデータ)の論理ブロックアドレスを、符号化された圧縮データが記憶される磁気記憶媒体178上の物理ブロックアドレスにリンクするログエントリーを作成して保持する。このリンクデータは、ハードディスクコントローラー166に提供され、このハードディスクコントローラーにおいて、要求側ホストによって提供された論理ブロックアドレスに基づいて、記憶された圧縮データへのアクセスを指示するのに用いられる。次に、読み出し/書き込みヘッド176は、符号化データを表すように磁気記憶媒体178を磁化する。注目すべきは、データ制御回路190の内部(すなわち、ホストインターフェース回路120と書き込みチャネル回路130との間)で圧縮を実行することによって、コンピューター101との間でボトルネックが引き起こされず、磁気記憶媒体178に記憶される符号語のサイズが圧縮に起因して変動しないということである。
幾つかの実施形態では、複数の圧縮データセットが、ともに再グループ化されて、磁気記憶媒体178によって収容されるサイズ(例えば、4KB)に適合したデータセットサイズにされることに留意すべきである。場合によっては、単一のフォーマットビットを用いてデータを圧縮不能なものとしてマーキングすることができる。そのような場合には、データは、圧縮も伸張もされない。データが圧縮可能でない場合であっても、圧縮データに適用される再グループ化プロセスに起因して、そのデータを複数の物理セクターにわたって分割することができる。この単一のフォーマットビットを反対方向にセットすることは、データが圧縮可能であり、上記で論述した圧縮及び伸張を受けることになることを示す。さらに、特定の実施態様に応じて、図2a、図2b、図3、及び図4に関して以下で論述する方法のうちの任意のものに沿ってデータ記憶システム100を動作させることができることに留意すべきである。
例えばRAID(安価なディスクの冗長アレイ又は独立ディスクの冗長アレイ)に基づく記憶システム等のより大型の記憶システムに、記憶システム100を統合することができることに留意すべきである。このようなRAID記憶システムは、複数のディスクを論理ユニットとして結合し、冗長性を通じて安定性及び信頼性を増大させる。データは、種々のアルゴリズムに従って、RAID記憶システムに含まれる複数のディスクにわたって拡散させることができ、RAID記憶システムが単一のディスクであるかのようにオペレーティングシステムがアクセスすることができる。例えば、データはRAID記憶システム内の複数のディスクにミラーリングすることもできるし、複数の技法において複数のディスクにわたってスライスし分散させることもできる。RAID記憶システム内の少数のディスクが故障するか又は利用不可能になる場合、誤り訂正技法を用いて、RAID記憶システム内の他のディスクからのデータの残りの部分に基づいて、欠落データを再生することができる。RAID記憶システム内のディスクは、限定ではないが、記憶システム100等の個別の記憶システムとすることができ、互いに近接して配置することもできるし、セキュリティを増大させるために、より広範に分散させることもできる。書込み動作において、書込みデータがコントローラーに提供され、コントローラーは、例えば書込みデータのミラーリング又はストライピングによって、ディスクにわたって書込みデータを記憶する。読取り動作において、コントローラーはディスクからデータを取り出す。次に、コントローラーは、RAID記憶システムが単一のディスクであるかのように結果の読み出しデータを生成する。
読み出しチャネル回路310に関して用いられるデータ復号化器回路は、限定ではないが、当該技術分野で知られているような低密度パリティチェック(LDPC)復号化器回路とすることができる。そのような低密度パリティチェック技術は、実質的に任意のチャネルによる情報の送信又は実質的に任意の媒体への情報の記憶に適用可能である。送信に適用されるものには、光ファイバー、無線周波数チャネル、有線又は無線のローカルエリアネットワーク、デジタル加入者線技術、無線セルラー、銅ファイバー又は光ファイバー等の任意の媒体によるイーサネット登録商標、ケーブルテレビ等のケーブルチャネル、及び地球衛星通信が含まれるが、これらに限定されるものではない。記憶に適用されるものには、ハードディスクドライブ、コンパクトディスク、デジタルビデオディスク、磁気テープ、並びにDRAM、NANDフラッシュ、NORフラッシュ、他の不揮発性メモリ及びソリッドステートドライブ等のメモリデバイスが含まれるが、これらに限定されるものではない。
さらに、記憶システム100を、磁気記憶媒体178と並列に用いて追加の記憶装置を提供することができる追加のソリッドステートメモリを含むように変更することができることに留意するべきである。そのような場合、ソリッドステートメモリは情報を受信し、その情報を読み出しチャネル回路110に直接提供する。代替的に、ソリッドステートメモリはキャッシュとして用いることができ、この場合、磁気記憶媒体178によって提供されるよりも高速のアクセス時間を提供する。そのような場合、ソリッドステートメモリはインターフェースコントローラー120と読み出しチャネル回路110との間に配置することができ、ここで、要求されたデータがソリッドステートメモリ内で利用可能でないとき、又はソリッドステートメモリが新たに書き込まれたデータセットを保持するのに十分な記憶装置を有していないとき、ソリッドステートメモリは磁気記憶媒体178へのパススルーとして機能する。
図2a及び図2bを参照すると、流れ図200が、スクラッチメモリが利用可能であるときはスクラッチメモリに依拠してディスクドライブデータを内部で圧縮/伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮/伸張するための本発明の1つ又は複数の実施形態による方法を示している。流れ図200によると、要求がホストから受信される(ブロック203)。ホストは、記憶媒体へのデータの書き込み及び/又は記憶媒体からのデータの読み出しを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。1つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される(ブロック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)。論理書き込みアドレスは、受信データがアクセス可能な記憶媒体上の物理アドレスに最終的にマッピング又はリンクされる。ハードディスクコントローラーが、論理アドレスを物理アドレスにリンクするテーブルを保持する。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。1つの特定の場合には、スクラッチメモリは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)。
ガーベッジ(移動/除去又は削除されるセクター)を収集するとともに、スループットの理由に起因してディスクに書き込まれる非圧縮データを圧縮するために、デフラグメンテーション及びガーベッジコレクションが、圧縮データ及び非圧縮データを読み出し、まだ有効であるデータを圧縮し、それらのデータをディスク内に再書き込みするように定期的に動作される。このプロセスにおいて、LBA−>PBAテーブルを更新/維持する必要がある。
図3を参照すると、流れ図300が、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮/伸張するための本発明の幾つかの実施形態による方法を示している。流れ図300によると、要求がホストから受信される(ブロック303)。このホストは、記憶媒体からのデータの読み出し及び/又は記憶媒体へのデータの書き込みを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。1つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される(ブロック305)。受信された要求が書き込み要求であると判断された場合(ブロック305)、書き込みデータ及び対応する論理書き込みアドレスが受信され(ブロック310)、スクラッチメモリに記憶される(ブロック315)。論理書き込みアドレスは、受信データがアクセス可能な記憶媒体上の物理アドレスに最終的にマッピング又はリンクされる。ハードディスクコントローラーが、論理アドレスを物理アドレスにリンクするテーブルを保持する。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。1つの特定の場合には、スクラッチメモリは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)。このホストは、記憶媒体からのデータの読み出し及び/又は記憶媒体へのデータの書き込みを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。1つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される(ブロック405)。受信された要求が書き込み要求であると判断された場合(ブロック405)、書き込みデータ及び対応する論理書き込みアドレスが受信され、スクラッチメモリに記憶される(ブロック410)。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。1つの特定の場合には、スクラッチメモリは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)。
上記のアプリケーションにおいて論述した様々なブロックは、他の機能とともに集積回路に実装することができることに留意すべきである。そのような集積回路は、所与のブロック、システム若しくは回路の機能の全て、又はブロック、システム若しくは回路のサブセットのみの機能の全てを含むことができる。また、ブロック、システム又は回路の要素を複数の集積回路にわたって実装することができる。そのような集積回路は、当該技術分野において知られている任意のタイプの集積回路とすることができる。この任意のタイプの集積回路には、モノリシック集積回路、フリップチップ集積回路、マルチチップモジュール集積回路及び/又は混合信号集積回路が含まれるが、これらに限定されるものではない。本明細書において論述されたブロック、システム又は回路の様々な機能を、ソフトウェア又はファームウェアのいずれかで実装することができることにも留意すべきである。そのような幾つかの場合には、システム全体、ブロック全体又は回路全体を、そのソフトウェア等価物又はファームウェア等価物を用いて実装することができる。他の場合には、所与のシステム、ブロック又は回路の一部分をソフトウェア又はファームウェアで実装することができる一方、他の部分はハードウェアで実装される。
結論として、本発明は、データ記憶装置のための新規なシステム、デバイス、方法及び構成を提供する。本発明の1つ又は複数の実施形態の詳細な説明が上記で与えられたが、本発明の趣旨から逸脱することなく、様々な代替形態、変更形態及び均等物が当業者には明らかであろう。したがって、上記の説明は本発明の範囲を限定するものとして解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲によって規定される。
図1
101 Write Data 書き込みデータ
103 Read Data 読み出しデータ
110 Read Channel Circuit 読み出しチャネル回路
120 Host Interface Circuit ホストインターフェース回路
122 Compression/Decompression Circuit 圧縮/伸張回路
130 Write Channel Circuit 書き込みチャネル回路
140 Write Driver 書き込みドライバー
166 Hard Disk Controller ハードディスクコントローラー
168 Motor Controller モーターコントローラー
170 Preamp 前置増幅器
172 Spindle Motor スピンドルモーター
176 Read/Write Head 読み出し/書き込みヘッド
178 Disk Platter ディスクプラッター
180 Scratch Memory スクラッチメモリ
182 Data Flow Control Circuit データフロー制御回路

図2a
201 Decompress the Original Compressed Data Set to Yield Read Data 元の圧縮データセットを伸張して読み出しデータを得る
203 Receive Request From a Host ホストから要求を受信する
205 Write Request? 書き込み要求か?
206 Store Read Data to Scratch Memory 読み出しデータをスクラッチメモリに記憶する
210 Receive Write Data and Logical Write Address 書き込みデータ及び論理書き込みアドレスを受信する
211 Access Read Data from Scratch Memory and Provide to Requesting Host スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する
212 Scratch Memory Bypass Determination and Processing スクラッチメモリバイパス決定及び処理
215 Store Write Data to Scratch Memory 書き込みデータをスクラッチメモリに記憶する
220 Compression Available? 圧縮は利用可能か?
225 Access the Write Data From Scratch Memory スクラッチメモリから書き込みデータにアクセスする
230 Compress the Write Data to Yield Compressed Data 書き込みデータを圧縮して圧縮データを得る
235 Store Compressed Data to Scratch Memory 圧縮データをスクラッチメモリに記憶する
240 Encoding Available? 符号化は利用可能か?
245 Access Compressed Data From Scratch Memory, Group Into Segments of aSize Matching the Format of the Storage Medium, and Update the Mapping of theLogical Address to the Physical Address to Reflect the Grouping スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新する
250 Encode the Segments of Compressed Data to Yield Encoded Data 圧縮データのセグメントを符号化して符号化データを得る
255 Write Encoded Data at a Location Corresponding to the PhysicalAddress on a Magnetic Medium 磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
260 Read Request? 読み出し要求か?
265 Receive Logical Read Address and Determine a Physical Address BasedUpon the Logical Read Address 論理読み出しアドレスを受信し、論理読み出しアドレスに基づいて物理アドレスを求める
270 Access Encoded Data From a Location on the Magnetic Medium Correspondingto the Physical Address 物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスする
280 Decode the Encoded Data to Yield the Compressed Data 符号化データを復号化して圧縮データを得る
285 Store Compressed Data to Scratch Memory 圧縮データをスクラッチメモリに記憶する
290 Decompression Available? 伸張は利用可能か?
295 Access Compressed Data From Scratch Memory and Re-assemble Up to TwoSegments Into the Original Compressed Data Set スクラッチメモリから圧縮データにアクセスして、最大で2つのセグメントを再組み立てして元の圧縮データセットにする

図2b
224 Scratch Memory Available? スクラッチメモリは利用可能か?
229 Store the Write Data to a Scratch Location on a Magnetic Medium 書き込みデータを磁気媒体上のスクラッチロケーションに記憶する
234 Magnetic Medium Offline and Scratch Memory Available? 磁気媒体はオフラインであるとともにスクラッチメモリは利用可能か?
239 Access the Write Data From the Scratch Location on the MagneticMedium and Store the Write Data to the Scratch Memory 磁気媒体上のスクラッチロケーションから書き込みデータにアクセスし、書き込みデータをスクラッチメモリに記憶する
244 Access the Write Data From the Scratch Memory, Compress the WriteData to Yield Compressed Data, and Store the Compressed Data to the ScratchMemory スクラッチメモリから書き込みデータにアクセスし、書き込みデータを圧縮して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
249 Encoding Available? 符号化は利用可能か?
244 Access Compressed Data FromScratch Memory, Group Into Segments of a Size Matching the Format of theStorage Medium, Update the Mapping of the Received Logical Address to the PhysicalAddress to Reflect the Grouping, Encode the Segments of Compressed Data toYield Encoded Data, and Write the Encoded Data at a Location Corresponding tothe Physical Address on the Magnetic Medium スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、受信された論理アドレスの物理アドレスへのマッピングを更新し、圧縮データのセグメントを符号化して符号化データを得て、磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
From Block210 ブロック210から
To Block 215 ブロック215へ
To Block 203 ブロック203へ

図3
301 Decompress the Original Compressed Data Set to Yield Read Data 元の圧縮データセットを伸張して読み出しデータを得る
303 Receive Request From a Host ホストから要求を受信する
305 Write Request? 書き込み要求か?
306 Store Read Data to Scratch Memory 読み出しデータをスクラッチメモリに記憶する
310 Receive Write Data and Logical Write Address 書き込みデータ及び論理書き込みアドレスを受信する
311 Access Read Data from Scratch Memory and Provide to Requesting Host スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する
315 Store Write Data to Scratch Memory 書き込みデータをスクラッチメモリに記憶する
320 Compression Available? 圧縮は利用可能か?
325 Access the Write Data From Scratch Memory スクラッチメモリから書き込みデータにアクセスする
330 Compress the Write Data to Yield Compressed Data 書き込みデータを圧縮して圧縮データを得る
335 Store Compressed Data to Scratch Memory 圧縮データをスクラッチメモリに記憶する
340 Encoding Available? 符号化は利用可能か?
345 Access Compressed Data From Scratch Memory, Group Into Segments of aSize Matching the Format of the Storage Medium, and Update the Mapping of theLogical Address to the Physical Address to Reflect the Grouping スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新する
350 Encode the Segments of Compressed Data to Yield Encoded Data 圧縮データのセグメントを符号化して符号化データを得る
355 Write Encoded Data at a Location Corresponding to the PhysicalAddress on a Magnetic Medium 磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
360 Read Request? 読み出し要求か?
365 Receive Logical Read Address and Determine a Physical Address BasedUpon the Logical Read Address 論理読み出しアドレスを受信し、論理読み出しアドレスに基づいて物理アドレスを求める
370 Access Encoded Data From a Location on the Magnetic MediumCorresponding to the Physical Address 物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスする
380 Decode the Encoded Data to Yield the Compressed Data 符号化データを復号化して圧縮データを得る
385 Store Compressed Data to Scratch Memory 圧縮データをスクラッチメモリに記憶する
390 Decompression Available? 伸張は利用可能か?
395 Access Compressed Data From Scratch Memory and Re-assemble Up to TwoSegments Into the Original Compressed Data Set スクラッチメモリから圧縮データにアクセスして、最大で2つのセグメントを再組み立てして元の圧縮データセットにする

図4
403 Receive Request From a Host ホストから要求を受信する
405 Write Request? 書き込み要求か?
410 Receive Write Data and Logical Write Address, and Store the WriteData to Scratch Memory 書き込みデータ及び論理書き込みアドレスを受信し、書き込みデータをスクラッチメモリに記憶する
415 Access the Write Data From Scratch Memory and Store the Write Datato a Scratch Location on a Magnetic Medium スクラッチメモリから書き込みデータにアクセスし、書き込みデータを磁気媒体上のスクラッチロケーションに記憶する
420 Magnetic Medium Offline? 磁気媒体はオフラインか?
425 Access the Write Data From the Scratch Location on the MagneticMedium and Store the Write Data to the Scratch Memory 磁気媒体上のスクラッチロケーションから書き込みデータにアクセスし、書き込みデータをスクラッチメモリに記憶する
430 Access the Write Data From the Scratch Memory, Compress the WriteData to Yield Compressed Data, and Store the Compressed Data to the ScratchMemory スクラッチメモリから書き込みデータにアクセスし、書き込みデータを圧縮して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
440 Encoding Available? 符号化は利用可能か?
445 Access Compressed Data From Scratch Memory, Group Into Segments of aSize Matching the Format of the Storage Medium, Update the Mapping of theReceived Logical Address to the Physical Address to Reflect the Grouping,Encode the Segments of Compressed Data to Yield Encoded Data, and Write theEncoded Data at a Location Corresponding to the Physical Address on theMagnetic Medium スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新し、圧縮データのセグメントを符号化して符号化データを得て、磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
460 Read Request? 読み出し要求か?
465 Receive Logical Read Address, Convert the Logical Read Address to aPhysical Address, Access Encoded Data From a Location on the Magnetic MediumCorresponding to the Physical Address, and Store the Accessed Encoded Data tothe Scratch Memory 論理読み出しアドレスを受信し、論理読み出しアドレスを物理アドレスに変換し、物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスし、アクセスされた符号化データをスクラッチメモリに記憶する
470 Decoding Available? 復号化は利用可能か?
475 Access the Encoded Data From the Scratch Memory, Decode the EncodedData to Yield the Compressed Data, and Store the Compressed Data to the ScratchMemory スクラッチメモリから符号化データにアクセスし、符号化データを復号化して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
480 Decompressor Available or Magnetic Medium Offline? 伸張器は利用可能であるか又は磁気媒体はオフラインか?
485 Access Compressed Data From Scratch Memory, Re-Assemble Up to Two SegmentsInto the Original Compressed Data Set, Decompress the Original Compressed DataSet to Yield Read Data, and Store the Read Data to the Scratch Memory スクラッチメモリから圧縮データにアクセスし、最大で2つのセグメントを再組み立てして元の圧縮データセットにし、元の圧縮データセットを伸張して読み出しデータを得て、読み出しデータをスクラッチメモリに記憶する
490 Access Read Data from Scratch Memory and Provide to Requesting Host スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する

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に記載の方法であって、該方法は、
    書き込みコマンドをホストデバイスから受信することを更に含み、該書き込みコマンドは、前記書き込みデータセットを含む、請求項11に記載の方法。
  15. 請求項14に記載の方法であって、該方法は、
    前記ホストデバイスはコンピューターである、請求項14に記載の方法。
  16. 前記受信書き込みデータセットを前記磁気記憶媒体に記憶することと、
    前記受信書き込みデータセットを前記ソリッドステートメモリに前記記憶書き込みデータセットとして記憶する前に、前記書き込みデータセットを前記磁気記憶媒体から取り出すことと、
    を更に含む、請求項11に記載の方法。
  17. 前記符号化データセットは、圧縮された符号化データセットであり、前記受信書き込みデータセットを前記磁気記憶媒体に記憶することは、
    前記受信書き込みデータセットを符号化することであって、非圧縮の符号化データセットを得ることと、
    前記非圧縮の符号化データセットを前記磁気記憶媒体に記憶することと、
    を含み、
    前記磁気記憶媒体が非実質的な使用を示しているときに、前記磁気記憶媒体から書き込みデータセットにアクセスすることは、
    前記非圧縮の符号化データセットにデータ復号化アルゴリズムを適用することであって、前記受信書き込みデータセットを回復すること、
    を含む、請求項16に記載の方法。
  18. 符号化アルゴリズムは低密度パリティ検査符号化アルゴリズムである、請求項11に記載の方法。
  19. 記憶デバイスであって、
    ソリッドステートメモリデバイスと、
    半導体デバイスであって、
    書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、前記書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、
    前記書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、
    前記書き込みデータセットを前記ソリッドステートメモリデバイスに記憶するとともに前記ソリッドステートメモリデバイスから前記書き込みデータセットにアクセスして前記書き込みデータセットを前記圧縮回路に提供するように動作可能なデータフロー制御回路と、
    前記圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路と、
    を備える、半導体デバイスと、
    磁気記憶媒体と、
    前記磁気記憶媒体に対して配置されるとともに、前記符号化データセットに対応する信号を用いて前記記憶媒体を磁化するように動作可能な読み出し/書き込みヘッドと、
    を備える、記憶デバイス。
  20. 前記符号化データセットは、圧縮された符号化データセットであり、前記データフロー制御回路は、
    前記データ符号化アルゴリズムを前記書き込みデータセットに適用して非圧縮の符号化データセットを得て、
    前記非圧縮の符号化データセットを前記磁気記憶媒体に記憶し、
    前記磁気記憶媒体から前記非圧縮の符号化データセットにアクセスし、
    データ復号化アルゴリズムを前記非圧縮の符号化データセットに適用して前記書き込みデータセットを得る、
    ように更に動作可能である、請求項19に記載の記憶デバイス。
JP2014143880A 2013-10-31 2014-07-14 内部ディスクドライブデータ圧縮のためのシステム及び方法 Pending JP2015088171A (ja)

Applications Claiming Priority (4)

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

Publications (1)

Publication Number Publication Date
JP2015088171A true JP2015088171A (ja) 2015-05-07

Family

ID=52811943

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014143880A Pending JP2015088171A (ja) 2013-10-31 2014-07-14 内部ディスクドライブデータ圧縮のためのシステム及び方法

Country Status (6)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834476B (zh) * 2014-02-10 2016-10-19 安华高科技通用Ip(新加坡)公司 基于段结束标记的数据对准的系统和方法
CN108345428B (zh) * 2017-01-22 2021-08-31 厦门旌存半导体技术有限公司 控制密集型控制系统及其方法

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 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
WO2007093907A2 (en) 2006-02-17 2007-08-23 Nokia Corporation Apparatus, method and computer program product providing aimo receiver
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
WO2010019169A1 (en) 2008-08-15 2010-02-18 Lsi Corporation Rom list-decoding of near codewords
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
BR112012017145A2 (pt) 2010-01-15 2018-06-19 Thomson Licensing codificação de vídeo usando detecção compressiva.
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

Also Published As

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

Similar Documents

Publication Publication Date Title
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
KR101910840B1 (ko) 동적 그래뉼기반 매개 스토리지
US9230596B2 (en) Systems and methods for variable rate coding in a data processing system
US7958331B2 (en) Storage device with opportunistic address space
US9043684B2 (en) Systems and methods for variable redundancy data protection
US10140180B1 (en) Segment-based outer code recovery
US10996886B2 (en) Method and system for facilitating atomicity and latency assurance on variable sized I/O
US20110314235A1 (en) Data storage device and write method thereof
US10678443B2 (en) Method and system for high-density converged storage via memory bus
US11074124B2 (en) Method and system for enhancing throughput of big data analysis in a NAND-based read source storage
US10437667B2 (en) Raid system performance enhancement using compressed data
US8977937B2 (en) Systems and methods for compression driven variable rate decoding in a data processing system
US6816093B1 (en) Apparatus method and system for increased digital media recording throughput
US7219259B2 (en) Apparatus and method to preserve data integrity during a power loss
US20150062738A1 (en) Systems and Methods for Variable Sector Count Spreading and De-Spreading
JP2018055749A (ja) データ記録装置およびデータ記録方法
JP2015088171A (ja) 内部ディスクドライブデータ圧縮のためのシステム及び方法
JP5889974B2 (ja) フラグメント終了マーカーに基づくデータアライメントのためのシステム及び方法
KR20030051393A (ko) 데이터 저장 장치
US20080086676A1 (en) Segregation of redundant control bits in an ecc permuted, systematic modulation code
JP5924482B2 (ja) ストレージ装置
US12067254B2 (en) Low latency SSD read architecture with multi-level error correction codes (ECC)
JPH07114446A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150522