(57)【要約】      （修正有）【課題】内部ディスクドライブデータ圧縮のためのシステム及び方法を提供する。【解決手段】コンピューター１０１から受信された読み出し要求に応答して、ホストインターフェース１２０は、ハードディスクコントローラー１６６に制御信号を提供するとともに、モーターコントローラー１６８に制御信号を提供する。コンピューター１０１からホストインターフェース回路１２０への読み出し要求によってトリガーされた読み出し動作中に、磁気記憶媒体１７８から検知されたデータは、前置増幅器１７０を介して読み出しチャンネル回路１１０に配信される。読み出しチャンネル回路１１０は、データ復号化アルゴリズムを受信して圧縮データを得る。【選択図】図１
2015088171.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶システムであって、
半導体デバイスであって、
書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、前記書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、
前記書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、
前記圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路と、
を備える、半導体デバイスと、
前記符号化データセットに対応する磁気信号を記憶するように動作可能な磁気記憶媒体と、
を備える、データ記憶システム。
【請求項２】
前記書き込みデータセットを記憶するとともに前記書き込みデータセットを前記圧縮回路に転送するように動作可能なソリッドステートメモリデバイス、
を更に備える、請求項１に記載のデータ記憶システム。
【請求項３】
前記ソリッドステートメモリデバイスはランダムアクセスメモリデバイスである、請求項２に記載のデータ記憶システム。
【請求項４】
ソリッドステートメモリデバイスと、
前記書き込みデータセットを前記ソリッドステートメモリデバイスに記憶するとともに前記ソリッドステートメモリデバイスから前記書き込みデータセットにアクセスして前記書き込みデータセットを前記圧縮回路に提供するように動作可能なデータフロー制御回路と、
を更に備える、請求項１に記載のデータ記憶システム。
【請求項５】
前記データフロー制御回路は、
前記書き込みデータセットを前記磁気記憶媒体に記憶し、
前記磁気記憶媒体が非実質的な使用を示しているときに、前記磁気記憶媒体から前記書き込みデータセットにアクセスする、
ように更に動作可能である、請求項４に記載のデータ記憶システム。
【請求項６】
前記符号化データセットは、圧縮された符号化データセットであり、前記書き込みデータセットを前記磁気記憶媒体に記憶することは、
前記データ符号化アルゴリズムを前記書き込みデータセットに適用して非圧縮の符号化データセットを得ることと、
前記非圧縮の符号化データセットを前記磁気記憶媒体に記憶することと、
を含み、
前記磁気記憶媒体が非実質的な使用を示しているときに、前記磁気記憶媒体から前記書き込みデータセットにアクセスすることは、
前記非圧縮の符号化データセットにデータ復号化アルゴリズムを適用して前記書き込みデータセットを得ること、
を含む、請求項５に記載のデータ記憶システム。
【請求項７】
前記符号化アルゴリズムは低密度パリティ検査符号化アルゴリズムである、請求項１に記載のデータ記憶システム。
【請求項８】
前記ホストデバイスを更に備える、請求項１に記載のデータ記憶システム。
【請求項９】
前記ホストデバイスはコンピューターである、請求項８に記載のデータ記憶システム。
【請求項１０】
前記ホストインターフェース回路は、前記ホストデバイスから読み出しコマンドを受信するように更に動作可能である、請求項１に記載のデータ記憶システム。
【請求項１１】
データをハードディスクドライブに記憶する方法であって、
磁気記憶媒体を準備することと、
ソリッドステートメモリを準備することと、
受信書き込みデータセットを受信することと、
前記受信書き込みデータセットを前記ソリッドステートメモリに記憶書き込みデータセットとして記憶することと、
前記記憶書き込みデータセットを前記ソリッドステートメモリからアクセス書き込みデータセットとしてアクセスすることと、
前記アクセス書き込みデータセットに圧縮アルゴリズムを適用することであって、圧縮データセットを得ることと、
前記圧縮データセットを符号化することであって、符号化データセットを得ることと、
前記符号化データセットを前記磁気記憶媒体に記憶することと、
を含む、データをハードディスクドライブに記憶する方法。
【請求項１２】
前記ソリッドステートメモリデバイスは、ランダムアクセスメモリデバイスである、請求項１１に記載の方法。
【請求項１３】
前記磁気記憶媒体は、ハードディスクドライブのディスクプラッターである、請求項１１に記載の方法。
【請求項１４】
請求項１１に記載の方法であって、該方法は、
書き込みコマンドをホストデバイスから受信することを更に含み、該書き込みコマンドは、前記書き込みデータセットを含む、請求項１１に記載の方法。
【請求項１５】
請求項１４に記載の方法であって、該方法は、
前記ホストデバイスはコンピューターである、請求項１４に記載の方法。
【請求項１６】
前記受信書き込みデータセットを前記磁気記憶媒体に記憶することと、
前記受信書き込みデータセットを前記ソリッドステートメモリに前記記憶書き込みデータセットとして記憶する前に、前記書き込みデータセットを前記磁気記憶媒体から取り出すことと、
を更に含む、請求項１１に記載の方法。
【請求項１７】
前記符号化データセットは、圧縮された符号化データセットであり、前記受信書き込みデータセットを前記磁気記憶媒体に記憶することは、
前記受信書き込みデータセットを符号化することであって、非圧縮の符号化データセットを得ることと、
前記非圧縮の符号化データセットを前記磁気記憶媒体に記憶することと、
を含み、
前記磁気記憶媒体が非実質的な使用を示しているときに、前記磁気記憶媒体から書き込みデータセットにアクセスすることは、
前記非圧縮の符号化データセットにデータ復号化アルゴリズムを適用することであって、前記受信書き込みデータセットを回復すること、
を含む、請求項１６に記載の方法。
【請求項１８】
符号化アルゴリズムは低密度パリティ検査符号化アルゴリズムである、請求項１１に記載の方法。
【請求項１９】
記憶デバイスであって、
ソリッドステートメモリデバイスと、
半導体デバイスであって、
書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、前記書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、
前記書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、
前記書き込みデータセットを前記ソリッドステートメモリデバイスに記憶するとともに前記ソリッドステートメモリデバイスから前記書き込みデータセットにアクセスして前記書き込みデータセットを前記圧縮回路に提供するように動作可能なデータフロー制御回路と、
前記圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路と、
を備える、半導体デバイスと、
磁気記憶媒体と、
前記磁気記憶媒体に対して配置されるとともに、前記符号化データセットに対応する信号を用いて前記記憶媒体を磁化するように動作可能な読み出し／書き込みヘッドと、
を備える、記憶デバイス。
【請求項２０】
前記符号化データセットは、圧縮された符号化データセットであり、前記データフロー制御回路は、
前記データ符号化アルゴリズムを前記書き込みデータセットに適用して非圧縮の符号化データセットを得て、
前記非圧縮の符号化データセットを前記磁気記憶媒体に記憶し、
前記磁気記憶媒体から前記非圧縮の符号化データセットにアクセスし、
データ復号化アルゴリズムを前記非圧縮の符号化データセットに適用して前記書き込みデータセットを得る、
ように更に動作可能である、請求項１９に記載の記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データストレージ圧縮のためのシステム及び方法に関する。
【０００２】
［関連出願の相互参照］
本願は、「Systems and Methods for Internal Disk Drive Data Compression」と題する、２０１３年１０月３１日にYang他によって出願された米国仮特許出願第６１／８９８４２０号の優先権を主張する（この仮特許出願の正規の特許出願である）。実際上は、前述の仮特許出願の全体が、引用することにより本願の一部をなす。
【背景技術】
【０００３】
データが磁気記憶媒体との間で転送される記憶システムを含む様々なデータ転送システムが開発されてきた。このデータは、記憶媒体に転送及び保持しなければならないデータの容量を削減するためにホストにおいて圧縮することができる。そのようなホストサイド圧縮は、データスループットを低減するボトルネックになる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、少なくとも前述の理由から、当該技術分野においては、データ圧縮のための高度なシステム及び方法が必要とされている。
【課題を解決するための手段】
【０００５】
本発明は、データストレージ圧縮のためのシステム及び方法に関する。
【０００６】
本発明の様々な実施形態は、半導体デバイスと磁気記憶媒体とを備えるデータ記憶システムを提供する。前記半導体装置は、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、前記書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、前記書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、前記圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。前記磁気記憶媒体は前記符号化データセットに対応する磁気信号を記憶するように動作可能である。
【０００７】
本概要は、本発明の幾つかの実施形態の概要のみを提供する。「一実施形態では」、「一実施形態によれば」、「様々な実施形態では」、「１つ又は複数の実施形態では」、「特定の実施形態では」等の言い回しは、概して、その言い回しの後に続く特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれ、本発明の２つ以上の実施形態に含まれる場合もあることを意味する。重要なことには、このような言い回しは必ずしも同じ実施形態を指すとは限らない。本発明の多くの他の実施形態は以下の詳細な説明、添付の特許請求の範囲、及び添付の図面からより完全に明白になる。
【０００８】
図面を参照することにより、本発明の様々な実施形態の更なる理解を実現することができ、これらの実施形態については本明細書の残りの部分で説明する。図面において、同様の参照符号が幾つかの図面の全てにわたって類似の構成要素を指すのに用いられている。幾つかの場合には、小文字からなるサブラベルが、複数の類似の構成要素のうちの１つを表すように参照符号に関連付けられている。存在するサブラベルを指定することなく参照符号が参照されるとき、そのような複数の類似の構成要素全てを指すことが意図される。
【図面の簡単な説明】
【０００９】
【図１】本発明の幾つかの実施形態によるスクラッチメモリに依拠した内部データ圧縮／伸張を有するデータ記憶システムを示す図である。
【図２ａ】スクラッチメモリが利用可能であるときは、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮／伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の１つ又は複数の実施形態による方法を示す流れ図である。
【図２ｂ】スクラッチメモリが利用可能であるときは、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮／伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の１つ又は複数の実施形態による方法を示す流れ図である。
【図３】スクラッチメモリに依拠したディスクドライブデータを内部で圧縮／伸張するための本発明の幾つかの実施形態による方法を示す流れ図である。
【図４】スクラッチメモリ及び磁気記憶媒体の双方に依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の幾つかの実施形態による方法を示す流れ図である。
【発明を実施するための形態】
【００１０】
本発明は、データストレージ圧縮のためのシステム及び方法に関する。
【００１１】
本発明の様々な実施形態は、半導体デバイスと磁気記憶媒体とを備えるデータ記憶システムを提供する。半導体デバイスは、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。磁気記憶媒体は、符号化データセットに対応する磁気信号を記憶するように動作可能である。
【００１２】
上記実施形態の幾つかの場合において、システムは、書き込みデータセットを記憶するとともに書き込みデータセットを圧縮回路に転送するように動作可能なソリッドステートメモリデバイスを更に備える。幾つかの場合においては、ソリッドステートメモリデバイスはランダムアクセスメモリデバイスである。様々な場合において、システムは書き込みデータセットをソリッドステートメモリデバイスに記憶するとともにソリッドステートメモリデバイスから書き込みデータセットにアクセスして書き込みデータセットを圧縮回路に提供するように動作可能なデータフロー制御回路を更に備える。幾つかのそのような場合において、データフロー制御回路は、書き込みデータセットを磁気記憶媒体に記憶し、磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスするように更に動作可能である。１つ又は複数の場合において、符号化データセットは、圧縮された符号化データセットであり、書き込みデータセットを磁気記憶媒体に記憶することは、データ符号化アルゴリズムを書き込みデータセットに適用して非圧縮の符号化データセットを得ることと、非圧縮の符号化データセットを磁気記憶媒体に記憶することとを含む。特定の場合において磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスすることは、非圧縮の符号化データセットにデータ復号化アルゴリズムを適用して書き込みデータセットを得ることを含む。
【００１３】
本発明の他の実施形態は、データをハードディスクドライブに記憶するための方法を提供する。本方法は、磁気記憶媒体を準備することと、ソリッドステートメモリを準備することと、受信書き込みデータセットを受信することと、受信書き込みデータセットをソリッドステートメモリに記憶書き込みデータセットとして記憶することと、記憶書き込みデータセットをソリッドステートメモリからアクセス書き込みデータセットとしてアクセスすることと、アクセス書き込みデータセットに圧縮アルゴリズムを適用することであって、圧縮データセットを得ることと、圧縮データセットを符号化することであって、符号化データセットを得ることと、符号化データセットを磁気記憶媒体に記憶することとを含む。幾つかの場合においては、ソリッドステートメモリデバイスは、ランダムアクセスメモリデバイスであり、磁気記憶媒体は、ハードディスクドライブのディスクプラッターである。
【００１４】
上記実施形態の様々な場合において、本方法は、受信書き込みデータセットを磁気記憶媒体に記憶することと、受信書き込みデータセットをソリッドステートメモリに記憶書き込みデータセットとして記憶する前に、書き込みデータセットを磁気記憶媒体から取り出すこととを更に含む。１つの特定の場合において、符号化データセットは、圧縮された符号化データセットであり、受信書き込みデータセットを磁気記憶媒体に記憶することは、受信書き込みデータセットを符号化することであって、非圧縮の符号化データセットを得ることと、非圧縮の符号化データセットを磁気記憶媒体に記憶することとを含む。幾つかの場合において、磁気記憶媒体が非実質的な使用を示しているときに、磁気記憶媒体から書き込みデータセットにアクセスすることは、非圧縮の符号化データセットにデータ復号化アルゴリズムを適用することであって、受信書き込みデータセットを回復することを含む。
【００１５】
本発明の更に他の実施形態は、記憶デバイスを提供する。そのような記憶デバイスは、ソリッドステートメモリデバイスと、半導体デバイスと、磁気記憶媒体と、読み出し／書き込みヘッドとを備える。半導体デバイスは、書き込みコマンドをホストデバイスから受信するように動作可能なホストインターフェース回路であって、書き込みコマンドは書き込みデータセットを含む、ホストインターフェース回路と、書き込みデータセットを圧縮して圧縮データセットを得るように動作可能な圧縮回路と、書き込みデータセットをソリッドステートメモリデバイスに記憶するとともにソリッドステートメモリデバイスから書き込みデータセットにアクセスして書き込みデータセットを圧縮回路に提供するように動作可能なデータフロー制御回路と、圧縮データセットに符号化アルゴリズムを適用して符号化データセットを得るように動作可能な書き込みチャネル回路とを備える。読み出し／書き込みヘッドは、磁気記憶媒体に対して配置されるとともに、符号化データセットに対応する信号を用いて記憶媒体を磁化するように動作可能である。上記実施形態の幾つかの場合において、符号化データセットは、圧縮された符号化データセットであり、データフロー制御回路は、データ符号化アルゴリズムを書き込みデータセットに適用して非圧縮の符号化データセットを得て、非圧縮の符号化データセットを磁気記憶媒体に記憶し、磁気記憶媒体から非圧縮の符号化データセットにアクセスし、データ復号化アルゴリズムを非圧縮の符号化データセットに適用して書き込みデータセットを得るように更に動作可能である。
【００１６】
図１を参照すると、本発明の幾つかの実施形態によるスクラッチメモリに依拠した内部データ圧縮／伸張を有するデータ記憶システム１００が示されている。データ記憶システム１００は、データ制御回路１９０、スクラッチメモリ１８０、並びに磁気記憶媒体１７８及び関連付けられた制御回路部（ディスクプラッターとして示されている）を備える。データ記憶システム１００は、例えば、コンピューター１０１を用いてホストインターフェース１２０を介してアクセス可能である。コンピューター１０１は、記憶するため及び以前に記憶されたデータを要求するためにデータを提供することが可能な、当該技術分野において知られている任意のデバイスとすることができることに留意すべきである。
【００１７】
磁気記憶媒体１７８に関連付けられた制御回路部は、モーターコントローラー１６８及びスピンドルモーター１７２を備える。動作中、データ要求（読み出し又は書き込み）がホストインターフェース１２０によって受信される。ホストインターフェース回路１２０は、磁気記憶媒体１７８への／からのデータのアドレス指定及びタイミングを制御する。磁気記憶媒体１７８上のデータは、読み出し／書き込みヘッドアセンブリ１７６がディスクプラッター１７８の上方に適切に位置決めされたときに、このアセンブリが検出することができる磁気信号の群からなる。１つの実施形態では、ディスクプラッター１７８は、長手記録方式又は垂直記録方式のいずれかに従って記録された磁気信号を含む。
【００１８】
コンピューター１０１から受信された読み出し要求に応答して、ホストインターフェース１２０は、ハードディスクコントローラー１６６に制御信号を提供するとともに、モーターコントローラー１６８に制御信号を提供する。ハードディスクコントローラー１６６は、磁気記憶媒体１７８に対して読み出し／書き込みヘッドアセンブリ１７６を位置決めする。モーターコントローラー１６８は、スピンドルモーター１７２を駆動して、決定されたスピン速度（ＲＰＭ）で磁気記憶媒体をスピンさせる。読み出し／書き込みヘッドアセンブリ１７６が適切なデータトラックに隣接して位置決めされると、記憶媒体１７８がスピンドルモーター１７２によって回転されるにつれて、磁気記憶媒体１７８上のデータを表す磁気信号が、対応するロケーションにおいて読み出し／書き込みヘッドアセンブリ１７６によって検知される。これらの検知された磁気信号は、磁気記憶媒体１７８上の磁気データを表す連続した微小アナログ信号として提供される。これらの微小アナログ信号は、読み出し／書き込みヘッドアセンブリ１７６から前置増幅器１７０を介してデータ制御回路１９０に転送される。前置増幅器１７０は、磁気記憶媒体１７８からアクセスされた微小アナログ信号を増幅するように動作可能である。
【００１９】
ホストインターフェース回路１２０に加えて、データ制御回路１９０は、データフロー制御回路１８２、圧縮／伸張回路１２２、書き込みチャネル回路１３０、書き込みドライバー１４０、及び読み出しチャネル回路１１０を備える。コンピューター１０１からホストインターフェース回路１２０への読み出し要求によってトリガーされた読み出し動作中に、磁気記憶媒体１７８から検知されたデータは、前置増幅器１７０を介して読み出しチャネル回路１１０に配信される。読み出しチャネル回路１１０は、データ復号化アルゴリズムを受信データに適用して、圧縮データを得る。読み出しチャネル回路１１０は、当該技術分野において知られている任意の読み出しチャネル回路とすることができる。本発明の１つの特定の実施形態では、読み出しチャネル回路は、それぞれが中央メモリを介して通信可能に結合されたデータ検出器回路及びデータ復号器回路を備える。本発明の１つのそのような実施形態では、データ検出器回路は、前置増幅器１７０を介して受信されたデータにデータ検出アルゴリズムを適用して検出出力を得る最大事後データ検出器回路である。この検出出力は、中央メモリに記憶される。データ復号器回路は、例えば、低密度パリティ検査復号器回路とすることができる。データ復号器回路は、データ復号化アルゴリズムを検出出力に適用して圧縮データセットを得る。
【００２０】
ホストインターフェース回路１２０は、データ制御回路１９０の様々な回路部を通るデータのフローを統制するコマンドをデータフロー制御回路１８２に提供する。特に、データフロー制御回路１８２は、読み出しチャネル回路１１０からの圧縮データのスクラッチメモリ１８０への記憶を指示する。本発明の幾つかの実施形態では、スクラッチメモリ１８０は、ソリッドステートメモリデバイスである。１つの特定の場合には、スクラッチメモリ１８０は、ＤＤＲ  ＳＤＲＡＭである。データフロー制御回路１８２は、圧縮／伸張回路１２２が利用可能であることを示す、圧縮／伸張回路１２２からの信号を待つ。圧縮／伸張回路１２２が利用可能になると、データフロー制御回路１８２は、スクラッチメモリ１８０に以前に記憶された圧縮データにアクセスし、この圧縮データを圧縮／伸張回路１２２に提供する。
【００２１】
圧縮／伸張回路１２２は、当該技術分野において知られている任意の圧縮／伸張アルゴリズムを適用することができる。圧縮／伸張回路１２２は、伸張アルゴリズムを圧縮データに適用して読み出しデータを得る。この読み出しデータは、磁気記憶媒体１７８に書き込むためにコンピューター１０１から当初受信されたデータである。データフロー制御回路１８２は、圧縮／伸張回路１２２からスクラッチメモリ１８０への読み出しデータの再度の記憶を指示する。このスクラッチメモリにおいて、読み出しデータは、ホストインターフェース回路１２０を介したコンピューター１０１への転送を待つ。特に、ホストインターフェース回路１２０が、以前に記憶された読み出しデータを転送するのに利用可能な帯域幅があることを示す信号をデータフロー制御回路１８２に伝えると、データフロー制御回路１８２は、スクラッチメモリ１８０からの以前に記憶された読み出しデータにアクセスし、このデータを読み出しデータ１０３としてコンピューター１０１に提供する。
【００２２】
コンピューター１０１から受信された書き込み要求に応答して、ホストインターフェース１２０は、ハードディスクコントローラー１６６に制御信号を提供するとともに、モーターコントローラー１６８に制御信号を提供する。ハードディスクコントローラー１６６は、磁気記憶媒体１７８に対して読み出し／書き込みヘッドアセンブリ１７６を位置決めする。モーターコントローラー１６８は、スピンドルモーター１７２を駆動して、決定されたスピン速度（ＲＰＭ）で磁気記憶媒体をスピンさせる。読み出し／書き込みヘッドアセンブリ１７６が適切なデータトラックに隣接して位置決めされると、磁気記憶媒体１７８上に記憶されるデータを表す信号が、データを磁気信号として磁気記憶媒体１７８上に書き込むデータ制御回路１９０によって読み出し／書き込みヘッドアセンブリ１７６に提供される。
【００２３】
コンピューター１０１からホストインターフェース回路１２０への書き込み要求によってトリガーされた書き込み動作中、書き込みデータ１０１は、コンピューター１０１からホストインターフェース回路１２０に提供される。データフロー制御回路１８２は、受信された書き込みデータのスクラッチメモリ１８０への記憶を指示する。データフロー制御回路１８２は、圧縮／伸張回路１２２が利用可能であることを示す、圧縮／伸張回路１２２からの信号を待つ。圧縮／伸張回路１２２が利用可能になると、データフロー制御回路１８２は、スクラッチメモリ１８０に以前に記憶された書き込みデータにアクセスし、この書き込みデータを圧縮／伸張回路１２２に提供する。
【００２４】
圧縮／伸張回路１２２は、圧縮アルゴリズムを書き込みデータに適用して圧縮データを得る。データフロー制御回路１８２は、圧縮／伸張回路１２２からスクラッチメモリ１８０への圧縮データの再度の記憶を指示する。このスクラッチメモリにおいて、圧縮データは、書き込みチャネル回路１３０への転送を待つ。データフロー制御回路１８２は、書き込みチャネル（すなわち、書き込みチャネル回路１３０、書き込みドライバー１４０、及び読み出し／書き込みヘッド１７６の組み合わせ）が利用可能になるのを待つ。書き込みチャネルが利用可能になると、データフロー制御回路１８２は、スクラッチメモリ１８０からの圧縮データにアクセスし、このアクセスしたデータを書き込みチャネル回路１３０に提供する。このプロセスの一部として、データフロー制御回路１８２は、磁気記憶媒体１７８の磁気データフォーマットの粒度に従って、記憶された圧縮データを固定フォーマットサイズに再組み立てする。
【００２５】
次に、書き込みチャネル回路１３０は、データ符号化アルゴリズムを受信された圧縮データに適用して符号化出力を得る。本発明の幾つかの実施形態では、符号化アルゴリズムは、低密度パリティ検査符号化アルゴリズムである。その結果得られた符号化出力は、書き込みドライバー１４０に提供される符号語としてフォーマットされる。書き込みドライバー１４０は、受信された符号語を読み出し／書き込みヘッドアセンブリ１７６への転送用にフォーマット又は準備することが可能な当該技術分野において知られている任意の回路とすることができる。加えて、書き込みドライバー１４０は、未圧縮データ（すなわち、元のホストデータ）の論理ブロックアドレスを、符号化された圧縮データが記憶される磁気記憶媒体１７８上の物理ブロックアドレスにリンクするログエントリーを作成して保持する。このリンクデータは、ハードディスクコントローラー１６６に提供され、このハードディスクコントローラーにおいて、要求側ホストによって提供された論理ブロックアドレスに基づいて、記憶された圧縮データへのアクセスを指示するのに用いられる。次に、読み出し／書き込みヘッド１７６は、符号化データを表すように磁気記憶媒体１７８を磁化する。注目すべきは、データ制御回路１９０の内部（すなわち、ホストインターフェース回路１２０と書き込みチャネル回路１３０との間）で圧縮を実行することによって、コンピューター１０１との間でボトルネックが引き起こされず、磁気記憶媒体１７８に記憶される符号語のサイズが圧縮に起因して変動しないということである。
【００２６】
幾つかの実施形態では、複数の圧縮データセットが、ともに再グループ化されて、磁気記憶媒体１７８によって収容されるサイズ（例えば、４ＫＢ）に適合したデータセットサイズにされることに留意すべきである。場合によっては、単一のフォーマットビットを用いてデータを圧縮不能なものとしてマーキングすることができる。そのような場合には、データは、圧縮も伸張もされない。データが圧縮可能でない場合であっても、圧縮データに適用される再グループ化プロセスに起因して、そのデータを複数の物理セクターにわたって分割することができる。この単一のフォーマットビットを反対方向にセットすることは、データが圧縮可能であり、上記で論述した圧縮及び伸張を受けることになることを示す。さらに、特定の実施態様に応じて、図２ａ、図２ｂ、図３、及び図４に関して以下で論述する方法のうちの任意のものに沿ってデータ記憶システム１００を動作させることができることに留意すべきである。
【００２７】
例えばＲＡＩＤ（安価なディスクの冗長アレイ又は独立ディスクの冗長アレイ）に基づく記憶システム等のより大型の記憶システムに、記憶システム１００を統合することができることに留意すべきである。このようなＲＡＩＤ記憶システムは、複数のディスクを論理ユニットとして結合し、冗長性を通じて安定性及び信頼性を増大させる。データは、種々のアルゴリズムに従って、ＲＡＩＤ記憶システムに含まれる複数のディスクにわたって拡散させることができ、ＲＡＩＤ記憶システムが単一のディスクであるかのようにオペレーティングシステムがアクセスすることができる。例えば、データはＲＡＩＤ記憶システム内の複数のディスクにミラーリングすることもできるし、複数の技法において複数のディスクにわたってスライスし分散させることもできる。ＲＡＩＤ記憶システム内の少数のディスクが故障するか又は利用不可能になる場合、誤り訂正技法を用いて、ＲＡＩＤ記憶システム内の他のディスクからのデータの残りの部分に基づいて、欠落データを再生することができる。ＲＡＩＤ記憶システム内のディスクは、限定ではないが、記憶システム１００等の個別の記憶システムとすることができ、互いに近接して配置することもできるし、セキュリティを増大させるために、より広範に分散させることもできる。書込み動作において、書込みデータがコントローラーに提供され、コントローラーは、例えば書込みデータのミラーリング又はストライピングによって、ディスクにわたって書込みデータを記憶する。読取り動作において、コントローラーはディスクからデータを取り出す。次に、コントローラーは、ＲＡＩＤ記憶システムが単一のディスクであるかのように結果の読み出しデータを生成する。
【００２８】
読み出しチャネル回路３１０に関して用いられるデータ復号化器回路は、限定ではないが、当該技術分野で知られているような低密度パリティチェック（ＬＤＰＣ）復号化器回路とすることができる。そのような低密度パリティチェック技術は、実質的に任意のチャネルによる情報の送信又は実質的に任意の媒体への情報の記憶に適用可能である。送信に適用されるものには、光ファイバー、無線周波数チャネル、有線又は無線のローカルエリアネットワーク、デジタル加入者線技術、無線セルラー、銅ファイバー又は光ファイバー等の任意の媒体によるイーサネット登録商標、ケーブルテレビ等のケーブルチャネル、及び地球衛星通信が含まれるが、これらに限定されるものではない。記憶に適用されるものには、ハードディスクドライブ、コンパクトディスク、デジタルビデオディスク、磁気テープ、並びにＤＲＡＭ、ＮＡＮＤフラッシュ、ＮＯＲフラッシュ、他の不揮発性メモリ及びソリッドステートドライブ等のメモリデバイスが含まれるが、これらに限定されるものではない。
【００２９】
さらに、記憶システム１００を、磁気記憶媒体１７８と並列に用いて追加の記憶装置を提供することができる追加のソリッドステートメモリを含むように変更することができることに留意するべきである。そのような場合、ソリッドステートメモリは情報を受信し、その情報を読み出しチャネル回路１１０に直接提供する。代替的に、ソリッドステートメモリはキャッシュとして用いることができ、この場合、磁気記憶媒体１７８によって提供されるよりも高速のアクセス時間を提供する。そのような場合、ソリッドステートメモリはインターフェースコントローラー１２０と読み出しチャネル回路１１０との間に配置することができ、ここで、要求されたデータがソリッドステートメモリ内で利用可能でないとき、又はソリッドステートメモリが新たに書き込まれたデータセットを保持するのに十分な記憶装置を有していないとき、ソリッドステートメモリは磁気記憶媒体１７８へのパススルーとして機能する。
【００３０】
図２ａ及び図２ｂを参照すると、流れ図２００が、スクラッチメモリが利用可能であるときはスクラッチメモリに依拠してディスクドライブデータを内部で圧縮／伸張し、スクラッチメモリが利用可能でないときは磁気記憶媒体に依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の１つ又は複数の実施形態による方法を示している。流れ図２００によると、要求がホストから受信される（ブロック２０３）。ホストは、記憶媒体へのデータの書き込み及び／又は記憶媒体からのデータの読み出しを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。１つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される（ブロック２０５）。受信された要求が書き込み要求であると判断された場合（ブロック２０５）、書き込みデータ及び対応する論理書き込みアドレスが受信される（ブロック２１０）。
【００３１】
スクラッチメモリのバイパス及び処理が実行される（ブロック２１２）。図２ｂを参照すると、ブロック２１２の処理の詳細が示されている。図２ｂに示すように、スクラッチメモリが利用可能であるか否かが判断される（ブロック２２４）。スクラッチメモリの可用性は、スクラッチメモリが書き込みデータを記憶するのに十分な空間を有するか否かに基づいている。スクラッチメモリが利用可能でない場合（ブロック２２４）、受信された書き込みデータは、磁気記憶媒体上のスクラッチロケーションに記憶される（ブロック２２９）。磁気記憶媒体がオフラインである（すなわち、アクセスが予想されない実質的な時間を有する）とともにスクラッチメモリが利用可能であるか否かが判断される（ブロック２３４）。磁気記憶媒体がオフラインであるとともにスクラッチメモリが利用可能である場合（ブロック２３４）、書き込みデータが磁気記憶媒体上のスクラッチロケーションからアクセスされ、スクラッチメモリに記憶される（ブロック２３９）。書き込みデータが、磁気記憶媒体のスクラッチロケーションへの書き込み前に符号化されている場合、記憶媒体上のスクラッチロケーションから書き込みデータにアクセスするプロセスは、事前に符号化されたデータを復号化して、元の書き込みデータを得ることを含む。
【００３２】
磁気記憶媒体上のスクラッチメモリ領域を一時保持エリアとして用いるこの手法によって、低速の圧縮アルゴリズムを実施することが可能になる。書き込むためのセクターがほとんどないとき、圧縮が完了するまで、スクラッチメモリデバイスにデータを保持することができる。これとは対照的に、データ書き込みが連続しているとき、低レート圧縮器は、リアルタイムでデータを圧縮することができず、したがって、データ書き込みの減速によって、一時的に記憶されたデータの圧縮が可能になるまで、非圧縮データが磁気記憶媒体上のスクラッチメモリ領域に一時的に記憶される。媒体は、スクラッチ媒体とすることもできるし、データが通常記憶される媒体とすることもできる。
【００３３】
書き込みデータは、その後、スクラッチメモリからアクセスされ、圧縮回路は、取り出されたデータにデータ圧縮アルゴリズムを適用して圧縮データを得る。この圧縮データは、スクラッチメモリにライトバックされる（ブロック２４４）。このデータ圧縮アルゴリズムは、当該技術分野において知られている任意の圧縮アルゴリズムとすることができる。
【００３４】
符号化回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック２４９）。符号化回路がビジーでない場合（ブロック２４９）、以前に記憶された圧縮データが、スクラッチメモリからアクセスされる（ブロック２４４）。このアクセスされた圧縮データは、グループ化されて、データが記憶される記憶媒体のフォーマットサイズ（例えば、４ＫＢ）に整合したサイズのセグメントにされる。この時点で、グループ化が、データが記憶される記憶媒体上の物理アドレスに影響を与える場合に、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングが更新される。符号化アルゴリズムが圧縮データに適用されて、符号化データが得られ、この符号化データは、書き込みアドレスに対応する磁気記憶媒体上のロケーションに書き込まれる。本発明の幾つかの実施形態では、このデータ符号化回路は、低密度パリティ検査符号化回路である。次に、このプロセスは、図２ａのブロック２０３に戻る。一方、スクラッチメモリが利用可能である場合（ブロック２２４）、このプロセスは、図２ｂのブロック２１５に戻される。
【００３５】
再び図２ａを参照すると、書き込みデータは、スクラッチメモリに記憶される（ブロック２１５）。論理書き込みアドレスは、受信データがアクセス可能な記憶媒体上の物理アドレスに最終的にマッピング又はリンクされる。ハードディスクコントローラーが、論理アドレスを物理アドレスにリンクするテーブルを保持する。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。１つの特定の場合には、スクラッチメモリはＤＤＲ  ＳＤＲＡＭである。
【００３６】
次に、圧縮回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック２２０）。圧縮回路が利用可能である場合（ブロック２２０）、スクラッチメモリに以前に記憶された書き込みデータが、スクラッチメモリからアクセスされ（ブロック２２５）、データ圧縮アルゴリズムが、取り出されたデータに適用されて、圧縮データが得られる（ブロック２３０）。このデータ圧縮アルゴリズムは、当該技術分野において知られている任意の圧縮アルゴリズムとすることができる。その結果得られた圧縮データは、スクラッチメモリに再び記憶される（ブロック２３５）。
【００３７】
符号化回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック２４０）。符号化回路がビジーでない場合（ブロック２４０）、以前に記憶された圧縮データがスクラッチメモリからアクセスされる（ブロック２４５）。このアクセスされた圧縮データは、グループ化されて、データが記憶される記憶媒体のフォーマットサイズ（例えば、４ＫＢ）に整合したサイズのセグメントにされる。この時点で、グループ化が、データが記憶される記憶媒体上の物理アドレスに影響を与える場合に、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングが更新される。符号化アルゴリズムが圧縮データのセグメントに適用されて、符号化データセット（複数の場合もある）が得られる（ブロック２５０）。本発明の幾つかの実施形態では、データ符号化回路は、低密度パリティ検査符号化回路である。この符号化データは、次に、元の論理書き込みアドレスに対応する物理ロケーションにおいて磁気記憶媒体に書き込まれる（ブロック２５５）。本発明の幾つかの実施形態では、磁気記憶媒体は、ハードディスクドライブのディスクプラッターである。
【００３８】
一方、受信された要求が書き込み要求でないと判断された場合（ブロック２０５）、受信された要求が読み出し要求であるか否かが判断される（ブロック２６０）。受信された要求が読み出し要求であると判断された場合（ブロック２６０）、データが読み出される論理読み出しアドレスが受信される（ブロック２６５）。この論理読み出しアドレスは、要求されたデータが記憶された記憶媒体上のロケーションに対応する物理アドレスにマッピングされる。論理読み出しアドレスから物理アドレスへのこの変換は、データが記憶媒体に記憶された時に更新された、論理アドレスを物理アドレスにリンクするテーブルを用いて行われる（例えば、ブロック２４５参照）。符号化データは、物理アドレスに対応する磁気記憶媒体上のロケーションからアクセスされる（ブロック２７０）。この符号化データは、次に、復号化回路によって復号化され、圧縮データが得られる（ブロック２８０）。このデータ復号化回路は、低密度パリティ検査復号化回路を含むことができる。その結果得られた圧縮データは、スクラッチメモリに記憶される（ブロック２８５）。
【００３９】
次に、伸張回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック２９０）。伸張回路が利用可能である場合（ブロック２９０）、スクラッチメモリに以前に記憶された圧縮データが、スクラッチメモリからアクセスされる（ブロック２９５）。このプロセスは、ブロック２４５において実行されたグループ化の前に存在した元の圧縮データを再組み立てすることを含む。データ伸張アルゴリズムが、取り出されたデータに適用されて、読み出しデータが得られる（ブロック２０１）。このデータ伸張アルゴリズムは、基本的には、データ圧縮アルゴリズムによって適用された圧縮の逆を行い、当該技術分野において知られている任意の伸張アルゴリズムとすることができる。その結果得られた読み出しデータは、スクラッチメモリに再び記憶される（ブロック２０６）。最終的に、読み出しデータは、スクラッチメモリからアクセスされ、要求側ホストに提供される（ブロック２１１）。
【００４０】
ガーベッジ（移動／除去又は削除されるセクター）を収集するとともに、スループットの理由に起因してディスクに書き込まれる非圧縮データを圧縮するために、デフラグメンテーション及びガーベッジコレクションが、圧縮データ及び非圧縮データを読み出し、まだ有効であるデータを圧縮し、それらのデータをディスク内に再書き込みするように定期的に動作される。このプロセスにおいて、ＬＢＡ−＞ＰＢＡテーブルを更新／維持する必要がある。
【００４１】
図３を参照すると、流れ図３００が、スクラッチメモリに依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の幾つかの実施形態による方法を示している。流れ図３００によると、要求がホストから受信される（ブロック３０３）。このホストは、記憶媒体からのデータの読み出し及び／又は記憶媒体へのデータの書き込みを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。１つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される（ブロック３０５）。受信された要求が書き込み要求であると判断された場合（ブロック３０５）、書き込みデータ及び対応する論理書き込みアドレスが受信され（ブロック３１０）、スクラッチメモリに記憶される（ブロック３１５）。論理書き込みアドレスは、受信データがアクセス可能な記憶媒体上の物理アドレスに最終的にマッピング又はリンクされる。ハードディスクコントローラーが、論理アドレスを物理アドレスにリンクするテーブルを保持する。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。１つの特定の場合には、スクラッチメモリはＤＤＲ  ＳＤＲＡＭである。
【００４２】
次に、圧縮回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック３２０）。圧縮回路が利用可能である場合（ブロック３２０）、スクラッチメモリに以前に記憶された書き込みデータが、スクラッチメモリからアクセスされ（ブロック３２５）、データ圧縮アルゴリズムが、取り出されたデータに適用されて、圧縮データが得られる（ブロック３３０）。このデータ圧縮アルゴリズムは、当該技術分野において知られている任意の圧縮アルゴリズムとすることができる。その結果得られた圧縮データは、スクラッチメモリに再び記憶される（ブロック３３５）。
【００４３】
符号化回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック３４０）。符号化回路がビジーでない場合（ブロック３４０）、以前に記憶された圧縮データがスクラッチメモリからアクセスされる（ブロック３４５）。このアクセスされた圧縮データは、グループ化されて、データが記憶される記憶媒体のフォーマットサイズ（例えば、４ＫＢ）に整合したサイズのセグメントにされる。この時点で、グループ化が、データが記憶される記憶媒体上の物理アドレスに影響を与える場合に、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングが更新される。符号化アルゴリズムが圧縮データのセグメントに適用されて、符号化データセット（複数の場合もある）が得られる（ブロック３５０）。本発明の幾つかの実施形態では、データ符号化回路は、低密度パリティ検査符号化回路である。この符号化データは、次に、元の論理書き込みアドレスに対応する物理ロケーションにおいて磁気記憶媒体に書き込まれる（ブロック３５５）。本発明の幾つかの実施形態では、磁気記憶媒体は、ハードディスクドライブのディスクプラッターである。
【００４４】
一方、受信された要求が書き込み要求でないと判断された場合（ブロック３０５）、受信された要求が読み出し要求であるか否かが判断される（ブロック３６０）。受信された要求が読み出し要求であると判断された場合（ブロック３６０）、データが読み出される論理読み出しアドレスが受信される（ブロック３６５）。この論理読み出しアドレスは、要求されたデータが記憶された記憶媒体上のロケーションに対応する物理アドレスにマッピングされる。論理読み出しアドレスから物理アドレスへのこの変換は、データが記憶媒体に記憶された時に更新された、論理アドレスを物理アドレスにリンクするテーブルを用いて行われる（例えば、ブロック３４５参照）。符号化データは、物理アドレスに対応する磁気記憶媒体上のロケーションからアクセスされる（ブロック３７０）。この符号化データは、次に、復号化回路によって復号化され、圧縮データが得られる（ブロック３８０）。このデータ復号化回路は、低密度パリティ検査復号化回路を含むことができる。その結果得られた圧縮データは、スクラッチメモリに記憶される（ブロック３８５）。
【００４５】
次に、伸張回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック３９０）。伸張回路が利用可能である場合（ブロック３９０）、スクラッチメモリに以前に記憶された圧縮データが、スクラッチメモリからアクセスされる（ブロック３９５）。このプロセスは、ブロック３４５において実行されたグループ化の前に存在した元の圧縮データを再組み立てすることを含む。データ伸張アルゴリズムが、取り出されたデータに適用されて、読み出しデータが得られる（ブロック３０１）。このデータ伸張アルゴリズムは、基本的には、データ圧縮アルゴリズムによって適用された圧縮の逆を行い、当該技術分野において知られている任意の伸張アルゴリズムとすることができる。その結果得られた読み出しデータは、スクラッチメモリに再び記憶される（ブロック３０６）。最終的に、読み出しデータは、スクラッチメモリからアクセスされ、要求側ホストに提供される（ブロック３１１）。
【００４６】
場合によっては、伸張は、ホストサイドで行うことができる。そのような場合には、ブロック３０６は、読み出しデータをホストに直接送信するプロセスに置き換えられ、ブロック３１１は削除される。
【００４７】
図４を参照すると、流れ図４００が、スクラッチメモリ及び磁気記憶媒体の双方に依拠してディスクドライブデータを内部で圧縮／伸張するための本発明の幾つかの実施形態による方法を示している。流れ図４００によると、要求がホストから受信される（ブロック４０３）。このホストは、記憶媒体からのデータの読み出し及び／又は記憶媒体へのデータの書き込みを要求することが可能な当該技術分野において知られている任意のデバイスとすることができる。１つの例として、ホストはコンピューターとすることができる。要求が書き込み要求であるか否かが判断される（ブロック４０５）。受信された要求が書き込み要求であると判断された場合（ブロック４０５）、書き込みデータ及び対応する論理書き込みアドレスが受信され、スクラッチメモリに記憶される（ブロック４１０）。本発明の幾つかの実施形態では、スクラッチメモリはソリッドステートメモリデバイスである。１つの特定の場合には、スクラッチメモリはＤＤＲ  ＳＤＲＡＭである。
【００４８】
以前に記憶された書き込みデータが、スクラッチメモリからアクセスされ、磁気記憶媒体上のスクラッチロケーションに記憶される（ブロック４１５）。磁気記憶媒体に記憶するこのプロセスは、未圧縮の書き込みデータを符号化することと、符号化された未圧縮の書き込みデータを磁気記憶媒体に書き込むこととを含むことができる。本発明の幾つかの実施形態では、磁気記憶媒体は、ハードディスクドライブのディスクプラッターである。
【００４９】
磁気記憶媒体がオフラインである（すなわち、アクセスが予想されない実質的な時間を有する）か否かが判断される（ブロック４２０）。磁気記憶媒体がオフラインである場合（ブロック４２０）、書き込みデータが、磁気記憶媒体上のスクラッチロケーションからアクセスされ、スクラッチメモリに記憶される（ブロック４２５）。書き込みデータが、磁気記憶媒体のスクラッチロケーションへの書き込み前に符号化されている場合、記憶媒体上のスクラッチロケーションから書き込みデータにアクセスするプロセスは、事前に符号化されたデータを復号化して、元の書き込みデータを得ることを含む。
【００５０】
書き込みデータは、その後、スクラッチメモリからアクセスされ、圧縮回路は、取り出されたデータにデータ圧縮アルゴリズムを適用して圧縮データを得る。この圧縮データは、スクラッチメモリにライトバックされる（ブロック４３０）。このデータ圧縮アルゴリズムは、当該技術分野において知られている任意の圧縮アルゴリズムとすることができる。
【００５１】
符号化回路が利用可能である（すなわち、ビジーでない）か否かが判断される（ブロック４４０）。符号化回路がビジーでない場合（ブロック４４０）、以前に記憶された圧縮データが、スクラッチメモリからアクセスされる（ブロック４４５）。このアクセスされた圧縮データは、グループ化されて、データが記憶される記憶媒体のフォーマットサイズ（例えば、４ＫＢ）に整合したサイズのセグメントにされる。この時点で、グループ化が、データが記憶される記憶媒体上の物理アドレスに影響を与える場合に、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングが更新される。符号化アルゴリズムが圧縮データに適用されて、符号化データが得られ、この符号化データは、書き込みアドレスに対応する磁気記憶媒体上のロケーションに書き込まれる。本発明の幾つかの実施形態では、このデータ符号化回路は、低密度パリティ検査符号化回路である。
【００５２】
一方、受信された要求が書き込み要求でないと判断された場合（ブロック４０５）、受信された要求が読み出し要求であるか否かが判断される（ブロック４６０）。受信された要求が読み出し要求であると判断された場合（ブロック４６０）、データが読み出される論理読み出しアドレスが受信され（ブロック４６５）、受信されたアドレスに対応する符号化データが磁気記憶媒体からアクセスされ、この符号化データがスクラッチメモリに記憶される（ブロック４６５）。この論理読み出しアドレスは、要求されたデータが記憶された記憶媒体上のロケーションに対応する物理アドレスにマッピングされる。論理読み出しアドレスから物理アドレスへのこの変換は、データが記憶媒体に記憶された時に更新された、論理アドレスを物理アドレスにリンクするテーブルを用いて行われる（例えば、ブロック４４５参照）。符号化データは、物理アドレスに対応する磁気記憶媒体上のロケーションからアクセスされ、このアクセスされた符号化データは、スクラッチメモリに記憶される。
【００５３】
復号化回路が利用可能であるか否かが判断される（ブロック４７０）。復号化回路が利用可能である場合（ブロック４７０）、次に、磁気記憶媒体がオフラインである（すなわち、アクセスが予想されない実質的な時間を有する）か否か、又はデータ伸張器回路が利用可能であるか否かが判断される（ブロック４８０）。いずれかが真である場合（ブロック４８０）、符号化データがスクラッチメモリからアクセスされ、復号化回路は、データ復号化アルゴリズムを符号化データに適用して、スクラッチメモリに再び記憶される圧縮データを得る（ブロック４７５）。このデータ復号化回路は、低密度パリティ検査復号化回路を含むことができる。次に、圧縮データが、スクラッチメモリからアクセスされる（ブロック４８５）。このプロセスは、ブロック４４５において実行されたグループ化の前に存在した元の圧縮データセットを再組み立てすることを含む。データ伸張アルゴリズムが、元の圧縮データセットに適用されて、読み出しデータが得られる。このデータ伸張アルゴリズムは、基本的には、データ圧縮アルゴリズムによって適用された圧縮の逆を行い、当該技術分野において知られている任意の伸張アルゴリズムとすることができる。その結果得られた読み出しデータは、スクラッチメモリに再び記憶される。最終的に、読み出しデータは、スクラッチメモリからアクセスされ、要求側ホストに提供される（ブロック４９０）。
【００５４】
上記のアプリケーションにおいて論述した様々なブロックは、他の機能とともに集積回路に実装することができることに留意すべきである。そのような集積回路は、所与のブロック、システム若しくは回路の機能の全て、又はブロック、システム若しくは回路のサブセットのみの機能の全てを含むことができる。また、ブロック、システム又は回路の要素を複数の集積回路にわたって実装することができる。そのような集積回路は、当該技術分野において知られている任意のタイプの集積回路とすることができる。この任意のタイプの集積回路には、モノリシック集積回路、フリップチップ集積回路、マルチチップモジュール集積回路及び／又は混合信号集積回路が含まれるが、これらに限定されるものではない。本明細書において論述されたブロック、システム又は回路の様々な機能を、ソフトウェア又はファームウェアのいずれかで実装することができることにも留意すべきである。そのような幾つかの場合には、システム全体、ブロック全体又は回路全体を、そのソフトウェア等価物又はファームウェア等価物を用いて実装することができる。他の場合には、所与のシステム、ブロック又は回路の一部分をソフトウェア又はファームウェアで実装することができる一方、他の部分はハードウェアで実装される。
【００５５】
結論として、本発明は、データ記憶装置のための新規なシステム、デバイス、方法及び構成を提供する。本発明の１つ又は複数の実施形態の詳細な説明が上記で与えられたが、本発明の趣旨から逸脱することなく、様々な代替形態、変更形態及び均等物が当業者には明らかであろう。したがって、上記の説明は本発明の範囲を限定するものとして解釈されるべきではなく、本発明の範囲は添付の特許請求の範囲によって規定される。
【符号の説明】
【００５６】
図１
１０１  Write Data  書き込みデータ
１０３  Read Data  読み出しデータ
１１０  Read Channel Circuit  読み出しチャネル回路
１２０  Host Interface Circuit  ホストインターフェース回路
１２２  Compression/Decompression Circuit  圧縮／伸張回路
１３０  Write Channel Circuit  書き込みチャネル回路
１４０  Write Driver  書き込みドライバー
１６６  Hard Disk Controller  ハードディスクコントローラー
１６８  Motor Controller  モーターコントローラー
１７０  Preamp  前置増幅器
１７２  Spindle Motor  スピンドルモーター
１７６  Read/Write Head  読み出し／書き込みヘッド
１７８  Disk Platter  ディスクプラッター
１８０  Scratch Memory  スクラッチメモリ
１８２  Data Flow Control Circuit  データフロー制御回路
図２ａ
２０１  Decompress the Original Compressed Data Set to Yield Read Data  元の圧縮データセットを伸張して読み出しデータを得る
２０３  Receive Request From a Host  ホストから要求を受信する
２０５  Write Request?  書き込み要求か？
２０６  Store Read Data to Scratch Memory  読み出しデータをスクラッチメモリに記憶する
２１０  Receive Write Data and Logical Write Address  書き込みデータ及び論理書き込みアドレスを受信する
２１１  Access Read Data from Scratch Memory and Provide to Requesting Host  スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する
２１２  Scratch Memory Bypass Determination and Processing  スクラッチメモリバイパス決定及び処理
２１５  Store Write Data to Scratch Memory  書き込みデータをスクラッチメモリに記憶する
２２０  Compression Available?  圧縮は利用可能か？
２２５  Access the Write Data From Scratch Memory  スクラッチメモリから書き込みデータにアクセスする
２３０  Compress the Write Data to Yield Compressed Data  書き込みデータを圧縮して圧縮データを得る
２３５  Store Compressed Data to Scratch Memory  圧縮データをスクラッチメモリに記憶する
２４０  Encoding Available?  符号化は利用可能か？
２４５  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  スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新する
２５０  Encode the Segments of Compressed Data to Yield Encoded Data  圧縮データのセグメントを符号化して符号化データを得る
２５５  Write Encoded Data at a Location Corresponding to the PhysicalAddress on a Magnetic Medium  磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
２６０  Read Request?  読み出し要求か？
２６５  Receive Logical Read Address and Determine a Physical Address BasedUpon the Logical Read Address  論理読み出しアドレスを受信し、論理読み出しアドレスに基づいて物理アドレスを求める
２７０  Access Encoded Data From a Location on the Magnetic Medium Correspondingto the Physical Address  物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスする
２８０  Decode the Encoded Data to Yield the Compressed Data  符号化データを復号化して圧縮データを得る
２８５  Store Compressed Data to Scratch Memory  圧縮データをスクラッチメモリに記憶する
２９０  Decompression Available?  伸張は利用可能か？
２９５  Access Compressed Data From Scratch Memory and Re-assemble Up to TwoSegments Into the Original Compressed Data Set  スクラッチメモリから圧縮データにアクセスして、最大で２つのセグメントを再組み立てして元の圧縮データセットにする
図２ｂ
２２４  Scratch Memory Available?  スクラッチメモリは利用可能か？
２２９  Store the Write Data to a Scratch Location on a Magnetic Medium  書き込みデータを磁気媒体上のスクラッチロケーションに記憶する
２３４  Magnetic Medium Offline and Scratch Memory Available?  磁気媒体はオフラインであるとともにスクラッチメモリは利用可能か？
２３９  Access the Write Data From the Scratch Location on the MagneticMedium and Store the Write Data to the Scratch Memory  磁気媒体上のスクラッチロケーションから書き込みデータにアクセスし、書き込みデータをスクラッチメモリに記憶する
２４４  Access the Write Data From the Scratch Memory, Compress the WriteData to Yield Compressed Data, and Store the Compressed Data to the ScratchMemory  スクラッチメモリから書き込みデータにアクセスし、書き込みデータを圧縮して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
２４９  Encoding Available?  符号化は利用可能か？
２４４  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  ブロック２１０から
To Block 215  ブロック２１５へ
To Block 203  ブロック２０３へ
図３
３０１  Decompress the Original Compressed Data Set to Yield Read Data  元の圧縮データセットを伸張して読み出しデータを得る
３０３  Receive Request From a Host  ホストから要求を受信する
３０５  Write Request?  書き込み要求か？
３０６  Store Read Data to Scratch Memory  読み出しデータをスクラッチメモリに記憶する
３１０  Receive Write Data and Logical Write Address  書き込みデータ及び論理書き込みアドレスを受信する
３１１  Access Read Data from Scratch Memory and Provide to Requesting Host  スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する
３１５  Store Write Data to Scratch Memory  書き込みデータをスクラッチメモリに記憶する
３２０  Compression Available?  圧縮は利用可能か？
３２５  Access the Write Data From Scratch Memory  スクラッチメモリから書き込みデータにアクセスする
３３０  Compress the Write Data to Yield Compressed Data  書き込みデータを圧縮して圧縮データを得る
３３５  Store Compressed Data to Scratch Memory  圧縮データをスクラッチメモリに記憶する
３４０  Encoding Available?  符号化は利用可能か？
３４５  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  スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新する
３５０  Encode the Segments of Compressed Data to Yield Encoded Data  圧縮データのセグメントを符号化して符号化データを得る
３５５  Write Encoded Data at a Location Corresponding to the PhysicalAddress on a Magnetic Medium  磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
３６０  Read Request?  読み出し要求か？
３６５  Receive Logical Read Address and Determine a Physical Address BasedUpon the Logical Read Address  論理読み出しアドレスを受信し、論理読み出しアドレスに基づいて物理アドレスを求める
３７０  Access Encoded Data From a Location on the Magnetic MediumCorresponding to the Physical Address  物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスする
３８０  Decode the Encoded Data to Yield the Compressed Data  符号化データを復号化して圧縮データを得る
３８５  Store Compressed Data to Scratch Memory  圧縮データをスクラッチメモリに記憶する
３９０  Decompression Available?  伸張は利用可能か？
３９５  Access Compressed Data From Scratch Memory and Re-assemble Up to TwoSegments Into the Original Compressed Data Set  スクラッチメモリから圧縮データにアクセスして、最大で２つのセグメントを再組み立てして元の圧縮データセットにする
図４
４０３  Receive Request From a Host  ホストから要求を受信する
４０５  Write Request?  書き込み要求か？
４１０  Receive Write Data and Logical Write Address, and Store the WriteData to Scratch Memory  書き込みデータ及び論理書き込みアドレスを受信し、書き込みデータをスクラッチメモリに記憶する
４１５  Access the Write Data From Scratch Memory and Store the Write Datato a Scratch Location on a Magnetic Medium  スクラッチメモリから書き込みデータにアクセスし、書き込みデータを磁気媒体上のスクラッチロケーションに記憶する
４２０  Magnetic Medium Offline?  磁気媒体はオフラインか？
４２５  Access the Write Data From the Scratch Location on the MagneticMedium and Store the Write Data to the Scratch Memory  磁気媒体上のスクラッチロケーションから書き込みデータにアクセスし、書き込みデータをスクラッチメモリに記憶する
４３０  Access the Write Data From the Scratch Memory, Compress the WriteData to Yield Compressed Data, and Store the Compressed Data to the ScratchMemory  スクラッチメモリから書き込みデータにアクセスし、書き込みデータを圧縮して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
４４０  Encoding Available?  符号化は利用可能か？
４４５  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  スクラッチメモリから圧縮データにアクセスし、圧縮データをグループ化して、記憶媒体のフォーマットに整合したサイズのセグメントにし、グループ化を反映するように、論理アドレスの物理アドレスへのマッピングを更新し、圧縮データのセグメントを符号化して符号化データを得て、磁気媒体上の物理アドレスに対応するロケーションにおいて符号化データを書き込む
４６０  Read Request?  読み出し要求か？
４６５  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  論理読み出しアドレスを受信し、論理読み出しアドレスを物理アドレスに変換し、物理アドレスに対応する磁気媒体上のロケーションから符号化データにアクセスし、アクセスされた符号化データをスクラッチメモリに記憶する
４７０  Decoding Available?  復号化は利用可能か？
４７５  Access the Encoded Data From the Scratch Memory, Decode the EncodedData to Yield the Compressed Data, and Store the Compressed Data to the ScratchMemory  スクラッチメモリから符号化データにアクセスし、符号化データを復号化して圧縮データを得て、圧縮データをスクラッチメモリに記憶する
４８０  Decompressor Available or Magnetic Medium Offline?  伸張器は利用可能であるか又は磁気媒体はオフラインか？
４８５  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  スクラッチメモリから圧縮データにアクセスし、最大で２つのセグメントを再組み立てして元の圧縮データセットにし、元の圧縮データセットを伸張して読み出しデータを得て、読み出しデータをスクラッチメモリに記憶する
４９０  Access Read Data from Scratch Memory and Provide to Requesting Host  スクラッチメモリから読み出しデータにアクセスし、要求側ホストに提供する
【図１】
2015088171.tif 000003
【図２ａ】
2015088171.tif 000004
【図２ｂ】
2015088171.tif 000005
【図３】
2015088171.tif 000006
【図４】
2015088171.tif 000007