説明

ホスト・アクセス・ストリーム認識に応答してデータを先取りする記憶装置

【課題】データ記憶装置から充分に高度なデータ・スループットを得る。
【解決手段】データ記憶装置はデータ記憶媒体、ヘッド、データ・フェッチ・バッファ、コントローラを含む。ヘッドは媒体上の論理ブロック・アドレス(LBA)に記憶されたデータを読取るように構成される。コントローラは、ホスト装置がアクセスするLBAのシーケンスを識別するデータ記憶装置内のLBAアクセス・シーケンス情報により識別される媒体上のLBAからヘッドを通じてデータを読取って、データ・フェッチ・バッファに記憶する。コントローラはまた、データ・フェッチ・バッファからホスト装置へ読取られたコマンドに関連するデータを通知することによって、LBAアクセス・シーケンス情報により識別される媒体のLBAにおけるデータへ向けられ、データ・フェッチ・バッファへ読込み済みであるホスト装置からの読取りコマンドに応答する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にオーディオ/ビデオ・データ・ストリームなどのデータ・ストリームにアクセスするデータ記憶装置、ホスト装置およびコンピュータ・プログラム製品に関するものである。
【背景技術】
【0002】
デジタル形式で情報を記憶するコンピュータおよびデータ処理システムに使用するデータ記憶装置の一般的形式には、(たとえば磁気的および/または光学式の)ディスク・ドライブおよびテープ・ドライブが含まれる。通常のディスク・ドライブは、ヘッド・スタック・アセンブリ、一つまたはそれ以上のデータ記憶ディスクおよびこの記憶ディスクを回転させるスピンドル・モータを含む。ヘッド・スタック・アセンブリは、フレクシャ・アーム(flexure arm)へ装着された一つまたはそれ以上の読み書きヘッドを含むアクチュエータ・アーム・アセンブリを含む。アクチュエータ・モータは、ピボット・ベアリングの周りにフレクシャ・アームおよびヘッドを回転させると共に、ディスク上の同心円のデータ・トラックへデータを書込み、そこからデータを読取ることが出来る。
【0003】
ターゲット・ブロック上でデータを読み書きするために、ディスク・ドライブへのホスト装置からの読み書きコマンドに応答して、このディスク・ドライブは、それがデータを読み書きできる以前に、ターゲット・トラックに沿ってターゲット・ブロック上へヘッドを位置決めしなければならない。シーク動作を通じてディスク・ドライブは、ヘッドをデータ・トラックを半径方向に横切って、開始トラックから宛先トラックへ移動する。その後、ディスクの回転が宛先トラックのターゲット・ブロックをヘッドの下に移動させることにより、そこからデータ読取りそこへ書込むことができるようになる。ターゲット・ブロックへアクセスするのに必要な時間の量すなわちアクセス・タイムは、宛先トラック上へヘッドを位置決めするシーク動作、宛先トラック上へヘッドを静定するための時間、およびヘッドの下へ回転する宛先トラック上のターゲット・ブロックに必要な時間である回転遅れの、累積時間を含む。従って、読み書きホスト・コマンドを実行するためにディスク・ドライブが取る経過時間は、部分的にアクセス・タイムによって異なる。
【0004】
ディスク・ドライブは、速度のプロファイルを使用してシーク動作中にヘッドを移動できるが、この速度のプロファイルは、主としてアクセス・タイムを最小化するために設計されると共に、シーク動作、熱の発生および/またはエラー防止/回復(データ保全)により導入される音響雑音の発生により課せられる制約に適応するように試みる。いくつかのディスク・ドライブは、比較的に隣接するトラック内のいくつかのデータのブロックにアクセスするために必要な累積時間を減少させようと試みて、待ち行列に入れた読み書きホスト・コマンドを入れ替える。しかしながら、速度プロファイルおよび/または入れ替え処理は、読み書きコマンドが一般にランダム・シーク動作を起すパーソナル・コンピユータ・システムにこれらディスク・ドライブが使用されるという予想により設計されている。速度プロファイルおよび/または入れ替え処理は、オーディオ/ビデオ(AV)データ・ストリームを読取るときのような、実質的に非ランダム・シーク動作を引き起こすホストによりこれらディスク・ドライブが使用される場合に、適応可能なアクセス・タイム、音響雑音、温度管理および/またはデータ保全を供給しないかも知れない。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ディスク・ドライブは、AVシステム内のAVコンテンツ、高精細度および他の高解像度AVコンテンツ・ストリーム、双方向TVゲーム、ブロードバンド・インターネットAVサービス、家庭用電化製品等におけるAV監視などのためにますます多く使用されている。たとえば、ディジタル・ビデオテープ・レコーダ(DVR)が家庭用電化製品市場に入っており、これによりユーザが実質的にビデオ録画して選択した放送を使用できる。その上、いくつかのDVRは、二つ以上の放送を同時的に記録したりおよび/または異なった放送を同時的に記録し再生できる。従って、AVシステム内のディスク・ドライブは、記憶すべきAVコンテンツの受け入れ可能な量を許容する十分な記憶容量を供給すべきであり、また、知覚できる中断なしにリアル・タイムで多数のAVデータ・ストリームを記憶/検索する必要のために高度なデータ・スループットを供給すべきである。ディスク・ドライブから十分に高度なデータ・スループットを得ることは、そこに音響雑音、温度管理、および/またはデータ保全の制約が課せられているので困難であり得る。
【課題を解決するための手段】
【0006】
本発明のいくつかの実施例において、データ記憶装置は、データ記憶媒体、ヘッド、データ・フェッチ・バッファ、およびコントローラを含む。ヘッドは、媒体上の論理ブロック・アドレス(LBA)に記憶されたデータを読取るように構成される。データ・フェッチ・バッファは、データを記憶するように構成される。コントローラは、媒体上のLBAからヘッドを通じてデータを読取るように構成され、これらLBAは、記憶装置内のLBAアクセス・シーケンス情報により識別され、LBAアクセス・シーケンス情報は、ホスト装置がアクセスするLBAのシーケンスを識別する。コントローラはまた、データ・フェッチ・バッファに読取られたデータを記憶する。コントローラはまた、LBAアクセス・シーケンス情報により識別される媒体のLBAにおけるデータへ宛てられたホスト装置からの読取りコマンドに応答するが、読取りコマンドに関連するデータをデータ・フェッチ・バッファからホスト装置へ通知することにより前記データ・フェッチ・バッファに読込み済みである前記読取りコマンドに応答するように構成されている。
【0007】
従って、ホスト装置は、それがデータを読取ろうと計画するLBAのシーケンスについて、データ記憶装置へ通知する。データ記憶装置は、識別されたLBAのシーケンスからデータ・フェッチ・バッファへデータを読み込むことにより、ホスト装置からの予想される読取りコマンドのために、準備する。LBAのシーケンス内のLBAの一つに向けられているホスト装置からの読取られたコマンドに応答して、対応するデータがデータ・フェッチ・バッファからホスト装置へ通知される。データ記憶装置は、ピークおよび/または平均のデータ・スループット、発生され得る音響雑音、熱の発生、ピークおよび/または平均の電力消費および/またはデータ保全についての制約を満足するような仕方で、LBAシーケンスについてホスト装置により通知されることと、データを読取るためにそれらのLBAへ当てられた読取りコマンドを受信することの間の追加的な時間を使用するように構成される。
【0008】
本発明のいくつかの実施例において、データ記憶装置はディスク・ドライブである。データ記憶媒体は回転可能なデータ記憶装置を含み、またヘッドはディスク上のLBA内のデータ記憶域を読取るように構成される。
【0009】
本発明のいくつかの他の実施例は、データ記憶装置内のデータ記憶媒体上のデータ記憶位置を読取るためのコンピュータ・プログラム製品を供給する。このコンピュータ・プログラム製品は、コンピュータ読取り可能な記憶媒体内に実装されたコンピュータ・プログラム・コードを含む。このコンピュータ・プログラム・コードはホスト装置により実行されて、ホスト装置がアクセスするデータ記憶装置内の媒体上のデータ記憶位置の論理ブロック・アドレス(LBA)のシーケンスを定義するように構成される。他のコンピュータ・プログラム・コードは、ホスト装置により実行されて、LBAアクセス・シーケンス情報として定義されたLBAのシーケンスをホスト装置からデータ記憶装置へ通知するように構成される。さらに他のコンピュータ・プログラム・コードは、データ記憶装置へLBAアクセス・シーケンス情報を通知した後に、LBAアクセス・シーケンス情報により識別されたLBAからデータを読取るようにホスト装置により実行されて、データ記憶装置へ読取りコマンドを通知するように構成される。
【0010】
本発明のいくつかの他の実施例は、ホスト装置に対応する方法に向けられ、データ記憶装置内のデータ記憶媒体上のデータ記憶位置を読取る。本発明のこれらおより他の実施例は、添付図面を参照して下記に説明される。
【実施例】
【0011】
さて、本発明の実施例を示す添付図面を参照しながら以下に一層詳細に説明する。しかしながら、本発明は多くの代わりの形式において実施され、本書に提示した実施例に限定されるものと考えるべきではない。
【0012】
従って本発明は種々の修正と代わりの形式を受け得るが、その特定の実施例が図面により例示され、また本書に詳細に説明される。しかしながら、理解すべきは本発明を開示された特定の形式に限定される意図はないことであり、反対に本発明は特許請求の範囲に定義される本発明の精神と範囲に入る全ての修正、均等物、および代案を含む。同一の番号は、諸図面の説明を通じて同一の要素を示す。
【0013】
理解すべきは、本書に使用される用語「含む(comprising)」または「含む(comprises)」は、制限のないものであって、一つまたはそれ以上の状態の要素、ステップ、および/機能を含み、それらは、暗黙の(unstated)要素、ステップおよび/または機能を除外しない。本書の使用においては、単数形「a」、「an」および「the」は、本文が他のことを明瞭に指示しない限り同様に複数形をも含むことも意図する。本書の使用において、用語「および/または(and/or)」および「/」は、関連する記載された項目の一つまたはそれ以上のいずれかまたは全ての組み合せを含む。理解すべきは、本書において種々の要素および/または領域を記述するために第一、第二などの用語が使用されるが、これらの要素および/または領域はこれらの用語に限定されないことである。これらの用語が、単に一つの要素/領域を他の要素/領域から区別するために、使用されるだけである。こうして、下記に議論する第1の要素/領域は、本発明の表示から離れることなく、第二の要素/領域と名付けることが出来る。
【0014】
本発明は、装置、方法および/またはコンピュータ・プログラム製品として実施できる。したがって、本発明は、ハードウェアおよび/またはソフトウェア(ファームウェア、常駐ソフトウェア、マイクロ・コードなどを含む)で実施できる。結果として、本書で使用される場合用語「信号」は、連続的な波形および/またはメモリにおけるデジタル値のような離散的な値の形式をとり得る。さらに本発明は、命令実行システムにより、または関連して使用される媒体で実施されるコンピュータ使用可能またはコンピュータ読取り可能なプログラム・コードを有するコンピュータ使用可能またはコンピュータ読取り可能な記憶媒体上のコンピュータ・プログラム製品の形をとり得る。本書の文脈において、コンピュータ使用可能またはコンピュータ読取り可能な媒体は、命令実行コンピュータ・システム設備または装置により使用されるか関連するプログラムを収納し、記憶し、通知し、伝播または転送するあらゆる媒体であり得る。
【0015】
コンピュータ使用可能またはコンピュータ読取り可能な媒体は、たとえば電子的、磁気的、光学的、電磁的、赤外線、または半導体のシステム、設備、装置または伝播媒体であり得るが、これらに限定されない。コンピュータ読取り可能な媒体の一層詳細な例(非網羅的なリスト)は、下記のものを含む:一つまたはそれ以上のワイヤを有する電気接点、ポータブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラム可能リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、およびポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)である。注意すべきは、コンピュータ使用可能またはコンピュータ読取り可能な媒体は、プログラムが印刷されている紙または他の適当な媒体でさえあっても良く、それはそのプログラムがたとえば紙または他の媒体の光学的な走査によってプログラムを電子的に捕捉し、それから必要ならコンパイルし、解釈し、または適当な他の形で処理して、それからコンピュータ・メモリへ記憶する。
【0016】
ブロック図のブロック内に記された機能/動作は、動作説明に記された順序に従わずに発生する。たとえば、引続き示される二つのブロックは、実際は実質的に同時的に実行されるか、またはこのブロックは、時には含まれる機能/動作に応じて反対の順序で実行される。いくつかの図解は、通信の主要な方向を示すために通信パスに矢印を含むが、記述された矢印と反対方向に通信が起り得ることを理解すべきである。
【0017】
説明のために、磁気ディスク・ドライブおよび関連のホスト装置に関して、本発明の例示的な実施例を下記する。しかしながら、理解すべきは、本発明は、ディスク・ドライブとともに使用することに限定されるのではなく、代わりにそれはあらゆるタイプのデータ記憶装置とともに使用され、それらのデータ記憶装置は、光学ディスク・ドライブ(たとえば、CD−R/W、DVD−R/W)およびテープ・ドライブを含むが、これらに限定されない。従って、本書に使用される場合「データ記憶媒体」は、データを記憶するように構成されたあらゆる媒体をいい、磁気ディスク、光ディスクおよび磁気テープを含むが、これらに限定されない。また、本書で使用される場合「ヘッド」は、データ記憶媒体上のデータを読み書きするように構成されたあらゆる装置についていう。
【0018】
図1に、ディスク・ドライブの簡略化した図解を示し、一般的に10で指示する。ディスク・ドライブ10は、スピンドル・モータ14により回転されるディスク・スタック12の中に配置される一つまたはそれ以上のディスクを含む。スピンドル・モータ14は、ベース・プレート16へ装着されている。アクチュエータ・アーム・アセンブリ18もまた、ベース・プレート16へ装着されている。ディスク・ドライブ10は、ホスト装置からの読み書きコマンドに応答して、データを記憶し、検索するように構成されている。ホスト装置は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯端末(PDA)、ディジタル・ビデオ・レコーダ/プレーヤ、ディジタル・ミュージック・レコーダ/プレーヤおよび/またはディスク・ドライブ10へ通信可能に結合されてデータを記憶し、検索できる他の電子装置を含むが、これらに限定されない。
【0019】
アクチュエータ・アーム・アセンブリ18は、フレクシャ・アーム22へ装着されたヘッド20(またはトランスデューサ)を含み、フレクシャ・アーム22は、ピボッド・ベアリング・アセンブリ26の周りを回転できるアクチュエータ・アーム24へ取付けられている。ヘッド20は、たとえば磁気抵抗(MR)素子および/または薄膜誘導(TFI)素子を含む。アクチュエータ・モータ28(たとえばボイス・コイル・モータ(VCM))が、アクチュエータ・アーム・アセンブリ18を回転させて、ヘッド20をディスク・スタック12に対して半径方向に移動させる。スピンドル・モータ14およびアクチュエータ・アーム・アセンブリ18は、コントローラ、読み書きチャネル回路、およびプリント回路板(PCB)32へ装着された一つまたはそれ以上の集積回路パッケージ内に封入できる他の関連電子回路30へ結合されている。電子回路30は、アナログおよび/またはデジタルの回路を含み、典型的にデジタル信号プロセッサ(DSP)、マイクロ・プロセッサ・ベースのコントローラおよびメモリ装置を含む。電子回路30は、さらに後述する本発明の種々の実施例に従って構成され得る。
【0020】
さて図2を参照すると、ディスク・スタック12は典型的に複数のディスク34を含み、その各々は一対のディスク表面36、36を有する。ディスク34は円筒形シャフト上に装着されて、スピンドル・モータ14を介して軸38の周囲を回転するように構成されている。ディスク34は、説明のために磁気ディスクとして説明されるが、それらは代わりに光ディスクまたはいずれか他のタイプのデータ記憶ディスクであり得る。
【0021】
さて図1および図3の図示を参照すると、アクチュエータ・アーム・アセンブリ18は複数のヘッド20を含み、その各々はディスク表面36の異なった一つに隣接している。各ヘッド20は、アクチュエータ・アーム24の対応部分へ取り付けられた対応するフレクシャ・アーム22へ装着され、アクチュエータ・アーム24は、ピボット・ベアリング・アセンブリ26の周りを回転できる。アクチュエータ・モータ28が動作してアクチュエータ・アーム24を移動させ、こうしてヘッド20をそれらのそれぞれのディスク表面36に関して、半径方向に移動させる。
【0022】
図4を参照すると、電子回路30は、データ・コントローラ400、サーボ・コントローラ402、読み書きチャネル404、ホスト・コマンド・バッファ406、LBSシーケンス・アソシエーション・テーブル408、プレ・ホスト入出力(I/O)コマンド・データ・フェッチ・バッファ410を含む。電子回路30の例示的な実施例は、二つの別々のコントローラ400、402、読み書きチャネル404、および三つの別々のメモリ装置406、408、410で図示したが、これらは、ただ例示と議論のためである。理解すべきは、一つまたはそれ以上のコントローラ400、402、読み書きチャネル404、および/または装置406、408、410について本書に説明する機能は、一つの集積回路内に統合され、または二つ以上の集積回路パッケージの間に分散されたものであり得ることである。ヘッド・ディスク・アセンブリ(HDA)420は、アクチュエータ・アーム・アセンブリ18、ディスク・スタック12、アクチュエータ・モータ28およびスピンドル・モータ14を含み得る。
【0023】
読み書きチャネル404は、通常の方法で動作して、データ・コントローラ400により使用されるデジタル形式とHDA420内のヘッド20を通じて実行されるアナログ形式の間で、データを変換できる。読み書きチャネル404は、HDA420内のディスク34から読取ったサーボ位置情報を、サーボ・コントローラ402へ供給する。このサーボ位置情報は、ディスク34上のトラックに沿った論理ブロック・アドレス(LBA)に関するヘッド20の位置を検出するのに使用できる。サーボ・コントローラ402は、データ・コントローラ400からのLBAとサーボ位置情報を使用して、ディスク表面36の一つのターゲット・トラック上のLBAへヘッド20をシークし、またデータがLBA上で読取られ/書込まれている間に、ヘッド20をターゲット・トラックと整列させて維持することが出来る。
【0024】
バッファされたホスト・コマンドにより識別されたLBAへ、コマンドに関連するデータが読取られまたは書込まれるのを待っている間に、ホスト装置からの読取りと書込みのコマンドは、コマンド・バッファ406内に一時的にバッファされる。データ・コントローラ400は、適当なヘッダ情報によって関連情報をブロック内にフォーマットすることにより、バッファされた書込みコマンドを実行し、また、フォーマットされたデータをコマンド・バッファ406から読み書きチャネル404を介して、バッファ書込みコマンドにより識別されるディスク34上のLBAへ転送するように構成されている。同様に、ホスト装置からのバッファされた読取りコマンドは、バッファされた読取りコマンドにより識別されたディスク34上のLBAからデータが検索されてホスト装置へ通知されるまで、一時的にコマンド・バッファ406内にバッファされる。バッファされた複数のコマンドは、それらのそれぞれの完了に際して、コマンド・バッファ406から別々に除去されることが出来る。
【0025】
本発明のいくつかの実施例は、DVR、デジタル・ビデオ・プレーヤおよび他のAVシステムが、ディスク・ドライブからデータを読取る必要に先立って、AVシステムにより決定できるLBAのシーケンスからデータを読取り可能であることの認識から起る。たとえば、あるAVシステムが映画を上映するようにコマンドされた時に、ディスク・ドライブ10からデータを読取るLBAシーケンスを決定して、少なくとも映画ビデオ・フレームの一部分をアセンブルするように構成できる。従って、AVシステムは、それらのLBAからデータを読取るように、ディスク・ドライブ10へ読取りコマンドを通知し始めるのに先立って、少なくとも定義されたLBAシーケンスの一部分をディスク・ドライブ10へ通知できる。代わりに、または付加的に、ディスク・ドライブ10は、時間をかけてLBAシーケンス・アクセス情報を観察し学習して、それによりLBAアクセス・シーケンス情報により識別される一つまたはそれ以上のLBAに対して、および/またはLBAアクセス・シーケンス情報により識別される他のLBA関連のものへ読取りコマンドを受信するのに応答して、どのLBAへアクセスする必要があるか(たとえば、LBAアクセス・シーケンス情報により識別されるビデオ・フレーム・データに先立つビデオ・フレーム・データを収容するLBAに対する読取りコマンドを受信すること)を予想することができる。ディスク・ドライブ10は、LBAアクセス・シーケンス情報により識別されるLBAからのデータをフェッチし始めて、AVシステムからの関連する読取りコマンドの受信を準備することが出来る。
【0026】
関連する読取りコマンドの受信に先立って、LBAアクセス・シーケンスからのデータの少なくともいくつかをフェッチすることが出来るので、LBAアクセス・シーケンス情報の受信とこのLBAアクセス・シーケンス情報により識別されるLBAへ向けられた読取りコマンドの受信の間に、追加的な時間を使用するようにディスク・ドライブ10を構成して、ピークおよび/または平均のデータ・スループット、起り得る音響雑音、熱の発生、ピークおよび/または平均の電力消費、および/またはデータ保全上の制約を満足する方法により、読取り動作を遂行することが出来る。たとえば、ディスク・ドライブ10は、この追加的な時間を使用してLBSアクセス・シーケンスの遂行における順序を入れ替えて、それにより複数のアクセスの間のシーク時間を最小化するように(たとえば、増加する/減少する数順でLBAにアクセスするシーケンスの順序を変える)、LBAにアクセスすることが出来る。
【0027】
本発明のいくつかの実施例によれば、LBAシーケンス・アソシエーション・テーブル408内の一つまたはそれ以上のアクセス・シーケンスについての情報を記憶するように、データ・コントローラ400を構成できる。LBAアクセス・シーケンス情報は、ホスト装置により定義されて、ディスク・ドライブ10へ通知される。ホスト装置からLBAアクセス・シーケンス情報を受信するのに応答して、ディスク・ドライブ10はディスクLBAからフェッチ・バッファ410へデータ読込みを開始するが、ディスクLBAはLBAアクセス・シーケンス情報により識別される。あるホスト読取りコマンドが受信されると、それはフェッチ・バッファ410へ検索済みの一つまたはそれ以上のLBAからのデータへ向けられ、そのデータは、フェッチ・バッファ410からコマンド・バッファ406へ移動されることができ、読取りコマンドに応答するホスト装置へ通知される。LBAアクセス・シーケンス情報は、どのLBAがホスト装置により引き続きアクセスされるかについて、ディスク・ドライブ10へ早期通知を提供するので、データ・コントローラ400は、LBAアクセス・シーケンス情報により識別されるディスクLBAからそれをフェッチすることが出来るようにさらに構成でき、それによりピークおよび/または平均のデータ・スループット、音響雑音、ディスク・ドライブ10の一つまたはそれ以上の構成要素により発生され得る熱、ピークおよび/または平均のディスク・ドライブ10による電力消費、および/またはデータ・エラー回復処理についての制約を満足するようにできる。たとえば、データ・コントローラ400は、(騒音、熱、および/または電力消費を減少させるために)アクチュエータ・アーム・アセンブリ18の加速/減速を少なくさせる速度プロファイルを用いて動作をサーボ・コントローラ402にシークせて、および/または一層堅固なエラー回復処理を使用することにより、ホスト読取りコマンドの時間的制約で応答するときに、データ・コントローラ400および/またはサーボ・コントローラ402により使用される他の場合よりも、検出に際してデータ・エラーを訂正するために、ディスク34からより多くの再読取りの試みを遂行する。
【0028】
いくつかの実施例において、テーブル408内のLBAアクセス・シーケンス情報は、隣接するディスクLBAのグループを定義し、またホスト装置によりグループがアクセスされると、期待される相対的順序を定義する。たとえば、テーブル408は、一つまたはそれ以上のLBAのグループのシーケンスを定義し、そこで各グループは、開始LBA、グループ内で開始LBAに連続的に続くある数のLBA、開始LBAに関連するI/Oアクセスのタイプ(たとえば、LBSはグループ内で逐次的にアクセスされる、LBAは各アクセスの間でLBAの定義された数をジャンプすることによりアクセスされる)を定義する。たとえば、LBA10から開始する映画セグメントを読取り、次の90個のLBA読取りを継続し、50個のLBAをジャンプし、次の100個のLBAを読取り、250個のLBAをジャンプし、次の200個のLBAを読取り、4300個のLBAをジャンプし、次の4000個LBAを読取る(LBA10−100、150−250、500−700、5000−9000を読取ることに対応する。)ことを識別するシーケンス・アクセス情報を、ホストがディスク・ドライブ10へ通知する。
【0029】
図5のブロック図により、例示的なホスト装置500を図示する。ホスト装置500は、コントローラ510、アプリケーション522およびI/O LBAシーケンス情報524を含むメモリ520を含み、またI/Oアダプタ530を含む。I/Oアダプタ530は、たとえば、ATAバス、SATAバス、小型コンピュータ・システム・インターコネクト(SCSI)バス、ファイヤワイヤ(firewire)・バス、および/またはユニバーサル・シリアル・バス(USB)を通じて、ホスト装置500をディスク・ドライブ10へ連絡可能に結合するように構成できる。コントローラ510は、たとえば、放送メディア・ソース(たとえば、衛星、地上、ケーブル、および/またはインターネットのTVソース)、双方向テレビ・ゲーム、ブロードバンド・インターネットAVサービス、および/またはディスク・ドライブ10のAV監視などのAVコンテンツを検索可能に記憶するAVシステムとして機能するように、アプリケーション522により構成されることが出来る。
【0030】
コントローラ510は、さらにディスク・ドライブ10へ複数のAVコンテンツ・データ・ストリームを同時的に記憶し、および/またはそこから検索するのをサポートするように、構成できる。コントローラ510は、たとえば映画を上演するためにアクセスしているLBAシーケンスを定義するように、構成される。ファイル・データが記憶されているディスクLBAを識別するディスク・ドライブ10からのファイル(リンク)テーブルを読取ることにより、それはLBAシーケンスを定義する。それから、定義されたLBAシーケンスを、LBAアクセス・シーケンス情報としてディスク・ドライブ10へ送り返すが、それは、LBAアクセス・シーケンス情報により識別されるLBAへ宛てられたディスク・ドライブ10へ読取りコマンドを送信し始める以前に、ファイル・テーブルに情報を加えて、ディスク・ドライブ10へこのファイルを書き戻すなどして、行う。従って、上記のように識別されたLBAへ宛てられた緊急のホスト読取りコマンドを受信する準備において、ディスク・ドライブ10は、識別されたディスクLBAからデータをフェッチ・バッファ410へフェッチする。コントローラ510は、それらのLBAへ宛てられた読み書きコマンドを送信する前の所定量の時間に、ディスク・ドライブ10へアクセス・シーケンス情報を通知して、フェッチ・バッファ410に対して、LBAにより識別されたデータの少なくともいくつかまたは全部をフェッチするのに十分な時間を、ディスク・ドライブ10が得られるようにする。コントローラ510が、LBAアクセス・シーケンス情報をディスク・ドライブ10へ通知する時と、それが識別された情報から読取りを開始する時との間の時間の量は、フェッチ・バッファ410内に記憶されるデータの量に基づいて選択され得る。たとえば、ディスク・ドライブ10がシーケンス情報を受信するのとそこへ読取りコマンドを受信するのとの間の数秒(たとえば、2−5秒)ないし数分までが可能なように、この時間を選択することができる。
【0031】
図4と図5を参照すると、例示的な実施例によりホスト装置500は、DVRであり得る。あるエンド・ユーザは、ホスト装置500に命令して、ディスク・ドライブ10に記録された映画の上演を開始出来る。コントローラ510がディスク・ドライブ10からファイル・テーブルを読取って、それに基づいて第1LBAアクセス・シーケンスを発生させ、第1LBAアクセス・シーケンスはホスト装置500がデータを読取って、映画のためのAVフレームを発生させるLBAを指示する。コントローラ510は、LBAアクセス・シーケンス情報524の部分として、メモリ520内に第1LBAアクセス・シーケンス記憶し、この映画セグメントを再び上演する場合の後日の使用の時に、映画の少なくとも一部分をLBAアクセス・シーケンス情報524に結合できる。コントローラ510が、I/Oアダプタ530を通じて、ディスク・ドライブ10へ第1LBAアクセス・シーケンスを通知する。データ・コントローラ400が、第1LBAアクセス・シーケンスをテーブル408内に記憶し、第1LBAアクセス・シーケンスにより識別されたディスクLBAからデータをフェッチして、データ・フェッチ・バッファ410へ入れ、そしてホスト装置500からの個別の読取りコマンドに応答して、関連するデータをデータ・フェッチ・バッファ410からコマンド・バッファ406へコピーし、またこのデータを上述の実施例のようにホスト・コントローラへ通知する。ホスト・コントローラ510は、データに基づいてAVフレームをアセンブルして、第1LBAアクセス・シーケンス内のLBAへ向けられたディスク・ドライブ10へ、読取りコマンドをさらに通知する。ホスト・コントローラ510は、ディスク・ドライブ10に対して、さらなるLBAアクセス・シーケンスを発生し通知することができ、それによりホスト装置500が後続のデータ・ストリームを発生させてその映画の後続のAVフレームを発生させるのに使用する時に、ディスク・ドライブ10がさらにコマンドを読取る準備をさせることが出来る。
【0032】
ホスト装置500が映画を上演している間に、エンド・ユーザは、もう一つの映画上演を開始するようにコマンドできる。コントローラ510がディスク・ドライブ10からファイル・テーブルを読取り、少なくとも映画データの一部分を読取れるLBAを識別する第2のLBAアクセス・シーケンスを発生する。コントローラ510は、I/Oアダプタ530を通じてディスク・ドライブ10へ第2のLBAアクセス・シーケンスを通知する。データ・コントローラ400は、テーブル408内に第2のLBAアクセス・シーケンスを記憶して、データを識別されたLBAからデータ・フェッチ・バッファ410へ読み込む。データ・コンローラ400が、付加的または代わりに第2LBAアクセス・シーケンスで識別されたLBA使用して、第1LBAアクセス・シーケンスおよび/または第2アクセス・シーケンスにより識別されたフェッチ中のデータに関連する読取り作業を再構成または優先化して、それにより、スループットの要求、音響雑音の制約、熱発生の制約、電力消費の制約および/またはデータ・エラー回復処理の制約を満足するように試みる。
【0033】
上述のように、本発明のいくつかの実施例において、ホスト装置がアクセスするであろうLBAシーケンスを定義し、そのシーケンスをディスク・ドライブ10へ通知する。いくつかの他の実施例によれば、ディスク・ドライブ10は、LBAアクセス・シーケンス自体を決定するように構成され得る。たとえば、データ・コントローラ400は、逐次的に検索されるLBAのパターンを観察し、学習するように構成されることができ、また学習したLBAシーケンスをテーブル408内に記憶することができる。データ・コントローラ400は、たとえばデータ・ストリームの読取りに関連するように見える読取りコマンド(たとえばAVデータ・ストリームをプレーバックすること)を記録することができる。データ・コントローラ400は、そのとき、たとえばバッファされた読取りコマンドの目標とするLBAが定義されたLBAアクセス・シーケンス内にある時を決定することにより、または定義されたLBAアクセス・シーケンス内のデータにアクセスするのに先立った時間に近接してアクセスされることが目標とするLBAについて観察された時を決定することにより、テーブル408内に定義されたLBAアクセス・シーケンスに対して、ホスト・デバイスからの読取りコマンドが関連する時を決定することが出来る。バッファされた読取りコマンドが定義されたLBAアクセス・シーケンスに関連していると決定することに応答して、データ・コントローラ400は、定義されたLBAアクセス・シーケンスからフェッチ・バッファ410へデータをフェッチして、上述のようにそこからのデータについての後続のホスト・コマンドを準備する。
【0034】
いくつかのさらなる実施例において、ホスト500はLBAアクセス・シーケンス情報内に定義されたデータ転送速度を含み、それにより、ディスク・ドライブ10に命令して、一連のホスト読取りコマンドを通じて識別されたLBAから読取る。代わりにまたは追加的に、ディスク・ドライブ10がコントローラ400を介して、テーブル408内のLBAアクセス・シーケンスに関連するデータ速度をそこから観察し、定義するように構成できる。そのとき、コントローラ400は既知のデータ速度を使用して、関連するLBAシーケンスからどのようにデータを読取るかを調節する。たとえば、通常の解像度の映画に関連する第1LBAシーケンスは、7Mビット/秒の定義され学習されたデータ転送速度を有するが、一方高解像度映画に関連する第2のLBAシーケンスは、19Mビット/秒の定義され学習されたデータ転送速度を有し得る。これら既知のデータ転送速度に基づいて、コントローラ400は、第1LBAシーケンスについてするのによりも関連読取りコマンドをさらに先立って、データ・フェッチ・バッファ410内の第2LBAシーケンスから一層多くのデータを読取るであろう。したがって、それによりコントローラ400は、関連するホスト読取りコマンドに先立ってバッファ410内へどのように多くのデータを読取るか変化させることにより、LBAシーケンス既知のデータ転送速度へ適応する。
【0035】
フェッチ・バッファ410は、例えばダイナミック・ランダム・アクセス・メモリ(DRAM)および/またはスタティックRAMなどの集積回路を含む。しかしながら、他のいくつかの実施例においては、フェッチ・バッファ410はディスク34上に一時記憶場所を含む。例えば、データ・コントローラ400は、ホスト装置からの後続の読取りコマンドについて準備するために、LBAアクセス・シーケンスにより識別されたLBAからディスク34の一時記憶場所へ、データをコピーする。この一時記憶場所は、隣接するディスクLBAを含む。従って、LBAアクセス・シーケンスがディスク34上の隣接していないLBAに対応していて、ディスク34上に広く分散していても、アドレスされたデータは、ディスク34上の一時記憶場所で隣接してコピーされる。データ・コントローラ400は、それから引き続いて隣接LBAからデータを読み戻すが、遠いトラックとLBAの間のシーク動作に関する遅延をもたらす元の隣接していないLBAから読まれる場合よりも、一層迅速に行われる。
【0036】
図6は、本発明のいくつかの実施例により、LBAアクセス・シーケンス情報により識別されるLBAへ関連の読取りコマンドを送信する以前に、LBAアクセス・シーケンス情報を発生させて、その情報をディスク・ドライブ10へ通知するために、ホスト装置500が遂行する作業のフローチャートである。ブロック600で、ホスト装置500はディスク・ドライブ10からファイル・テーブルを読取る。それからブロック602で、それはファイル・テーブルに基づいてLBAアクセス・シーケンス情報を発生する。ブロック604で、ホスト装置500はLBAアクセス・シーケンス情報をディスク・ドライブ10へ通知して、LBAアクセス・シーケンス情報により識別されたLBAへ向けられたディスク・ドライブへ、引き続き読取りコマンドを通知する。
【0037】
図7は、本発明のいくつかの実施例により、ホスト装置500からのLBAアクセス・シーケンス情報および関連の読取りコマンドに応答するために、ディスク・ドライブ10が遂行する作業のフローチャートである。ブロック700で、ホスト装置500から、LBAアクセス・シーケンス情報が、ディスク・ドライブ10により検索される。ブロック702で、ディスク・ドライブ10は、LBAアクセス・シーケンス情報により識別されるディスク34上のLBAから、データを読取る。ブロック704で、このデータがデータ・フェッチ・バッファ410へ記憶される。ブロック706で、LBAアクセス・シーケンス情報により識別されるディスクLBAにおけるデータへ向けられたホスト読取りコマンドの受信に応答して、ブロック708で、ディスク・ドライブ10がこの読取りコマンドに関連するデータを、データ・フェッチ・バッファ410からホスト装置500へ通知する。それからブロック710で、LBAアクセス・シーケンス情報により識別された全てのデータがホスト装置500に読込まれてしまったかどうかについての決定がなされ、もしそうでなければ、作業のループはブロック706へ戻って、さらなるホスト読取りコマンドおよび/またはリフレッシュ・タイマーの時間切れを待つ。
【0038】
図面および説明において、本発明の典型的な好ましい実施例を開示してきたし、また特定の用語を使用したが、それらは一般的な説明的な意味においてのみ使用され、添付の特許請求の範囲に提示される本発明の範囲を限定するのが目的ではない。
【0039】
(関連出願)
本出願は、本書にその開示の全体が参考文献として組み込まれている米国仮特許出願No.60/687,932、西暦2005年6月7日出願の利益と優先権を主張する。
【図面の簡単な説明】
【0040】
【図1】本発明のいくつかの実施例により構成される電子回路を有するディスク・ドライブの透視図である。
【図2】複数のデータ記憶ディスクを有するディスク・スタックのブロック図である。
【図3】複数のアクチュエータ・アームを有するアクチュエータ・アーム・アセンブリの一部分の透視図である。
【図4】本発明のいくつかの実施例により構成される図1に示すディスク・ドライブの電子回路の一部分のブロック図である。
【図5】本発明のいくつかの実施例により構成されるホスト装置のブロック図である。
【図6】本発明のいくつかの実施例により、関連の読取りコマンドを送信する以前に、LBAアクセス・シーケンス情報を発生して、その情報を図1のディスク・ドライブへ通知するために、図5のホスト装置により遂行される作業のフローチャートである。
【図7】本発明のいくつかの実施例により、図5のホスト装置からのLBAアクセス・シーケンス情報および関連の読取りコマンドに応答するために、図1のディスク・ドライブが遂行する作業のフローチャート。
【符号の説明】
【0041】
10 ディスク・ドライブ
12 ディスク・スタック
14 スピンドル・モータ
16 ベース・プレート
18 アクチュエータ・アーム・アセンブリ
20 ヘッド(トランスデューサ)
22 フレクシャ・アーム
24 アクチュエータ・アーム
26 ピボット・ベアリング・アセンブリ
28 アクチュエータ・モータ
30 電子回路
32 プリント回路板
34 ディスク
36 ディスク表面
38 軸

【特許請求の範囲】
【請求項1】
データ記憶装置であって、
データ記憶媒体と、
前記データ記憶媒体上の論理ブロック・アドレス(LBA)に記憶されたデータを読取るように構成されたヘッドと、
データを記憶するように構成されたデータ・フェッチ・バッファと、
ホスト装置がアクセスするLBAのシーケンスを識別する前記データ記憶装置内のLBAアクセス・シーケンス情報により識別される前記データ記憶媒体上のLBAから前記ヘッドを通じてデータを読取って、前記読取られたデータを前記データ・フェッチ・バッファに記憶し、そして、前記LBAアクセス・シーケンス情報により識別される前記データ記憶媒体のLBAにおけるデータへ向けられた前記ホスト装置からの読取りコマンドであって、前記データ・フェッチ・バッファから前記ホスト装置へ前記読取りコマンドに関連する前記データを通知することにより前記データ・フェッチ・バッファに読込み済みである前記読取りコマンドに応答するように構成されたコントローラと、
を含む前記データ記憶装置。
【請求項2】
前記データ記憶媒体が回転可能なデータ記憶ディスクを含み、
前記ヘッドが前記ディスク上のLBAに記憶されたデータを読取るように構成され、
前記コントローラは、ホスト装置がアクセスするLBAのシーケンスを識別する前記データ記憶装置内のLBAアクセス・シーケンス情報により識別される前記ディスク上のLBAから前記ヘッドを通じてデータを読取って、前記読取られたデータを前記データ・フェッチ・バッファに記憶し、そして、前記LBAアクセス・シーケンス情報により識別される前記データ記憶媒体のLBAにおけるデータへ向けられた前記ホスト装置からの読取りコマンドであって、前記データ・フェッチ・バッファから前記ホスト装置へ前記読取りコマンドに関連する前記データを通知することにより前記データ・フェッチ・バッファに読込み済みである前記読取りコマンドに応答するように構成された、請求項1記載のデータ記憶装置。
【請求項3】
前記コントローラは、前記LBAアクセス・シーケンス情報に応答して前記ディスクからデータを読取るときには、前記ホスト装置より受信された読取りコマンドに応答して前記ディスクからデータを読取るときに比較して、シーク作業中に一層低い値に加速および減速を制限するように構成された請求項2記載のデータ記憶装置。
【請求項4】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別される前記LBAの順序を入れ替えて、前記識別されたLBAへ増加または減少する数の順にアクセスを遂行するように構成された請求項1記載のデータ記憶装置。
【請求項5】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAの各々から前記データ・フェッチ・バッファへのデータの読込みの間で優先順位を付けて、それにより、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAから前記データ読取られ得るスループットが増加するように構成された請求項1記載のデータ記憶装置。
【請求項6】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAの各々から前記データ・フェッチ・バッファへのデータの読込みの間で優先順位を付けて、それにより、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAからデータを読取る間にデータ記憶装置により発生される雑音を減少するように構成された請求項1記載のデータ記憶装置。
【請求項7】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAの各々から前記データ・フェッチ・バッファへのデータの読込みの間で優先順位を付けて、それにより、前記LBAアクセス・シーケンス情報により識別された前記媒体LBAからデータを読取る間のデータ記憶装置による電力消費を減少するように構成された請求項1記載のデータ記憶装置。
【請求項8】
前記アクセス・シーケンス情報は、前記媒体上のLBAのシーケンスが前記ホスト装置によりアクセスされる順序を識別する請求項1記載のデータ記憶装置。
【請求項9】
前記アクセス・シーケンス情報は、前記ホスト装置によりアクセスされると予測される前記媒体上の複数のLBAを識別するが、複数の前記LBAの各々が前記ホスト装置によりアクセスされると予測される相対的な順序を識別しない請求項1記載のデータ記憶装置。
【請求項10】
前記コントローラは、前記ホスト装置から前記LBAアクセス・シーケンス情報を受信して、前記データ記憶装置に前記LBAアクセス・シーケンス情報を記憶し、そして前記LBAアクセス・シーケンス情報により識別される媒体LBAからのデータを読取ることにより前記LBAアクセス・シーケンスの受信に応答して、前記データ・フェッチ・バッファへ前記読取られたデータを記憶するように構成された請求項1記載のデータ記憶装置。
【請求項11】
前記コントローラは、複数の異なったLBAアクセス・シーケンス情報を受信し、前記データ記憶装置内のテーブルに前記複数の異なったLBAアクセス・シーケンス情報を記憶し、前記複数のLBAアクセス・シーケンス情報の各々により識別される媒体LBAからのデータを前記データ・フェッチ・バッファへ読取ることにより前記LBAアクセス・シーケンス情報の各々の受信に対して応答し、前記データ・フェッチ・バッファから前記ホスト装置へ前記読取りコマンド関連の前記データを通知することにより、前記データ・フェッチ・バッファへ読取り済みである前記複数のLBAアクセス・シーケンス情報の1つにより識別される媒体LBAにおけるデータへ、前記ホスト装置からの読取りコマンドが向けられたときを識別するように構成された請求項10記載のデータ記憶装置。
【請求項12】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別された前記媒体上の各LBAから前記データ・フェッチ・バッファへデータを読取り、また、前記データ・フェッチ・バッファから前記ホスト装置へ前記関連するデータシーケンスを通知することにより、前記データ・フェッチ・バッファへ読込み済みの前記LBAアクセス・シーケンス情報により識別されたLBAにおけるデータへ向けられた前記ホスト装置からの読取りコマンドのシーケンスに応答するように構成された請求項1記載のデータ記憶装置。
【請求項13】
前記コントローラは、前記ホスト装置により前記媒体上で読取られるLBAのパターンを観察し、前記読取られたLBAの観察されたパターンに基づいて前記LBAアクセス・シーケンス情報を発生し、前記ホスト装置から受信される読取りコマンドが前記ホスト装置からの更なる読取りコマンドが差し迫っていて、前記LBAアクセス・シーケンス情報により識別される媒体LBAへ向けられるときを決定し、前記LBAアクセス・シーケンス情報により識別される媒体LBAからデータを読取って前記データ・フェッチ・バッファへ前記読取られたデータを記憶することにより、前記LBAアクセス・シーケンス情報により識別される媒体LBAへの緊急ホスト読取りコマンドの前記指摘に応答するように構成された請求項1記載のデータ記憶装置。
【請求項14】
前記コントローラは、前記ホスト装置から受信される1つの読取りコマンドが、前記ホスト装置からの複数の読取りコマンドが引続き受信されて、LBAアクセス・シーケンス情報により識別される複数のLBAのアクセスよりも僅かに先立つ時間にアクセスされたことを事前に前記コントローラにより観察された1つのLBAへ、前記ホストから受信された前記1つの読取りコマンドが向けられたときに、前記LBAアクセス・シーケンス情報により識別される複数の媒体LBAへそれら読取りコマンドが向けられように構成された請求項13記載のデータ記憶装置。
【請求項15】
前記コントローラは、前記ホスト装置から受信する1つの読取りコマンドは前記ホスト装置から複数の読取りコマンドが引続き受信されることを示すことを決定し、前記ホストから受信した前記読み書きコマンドが前記LBAアクセス・シーケンス情報により識別されるLBAへ向けられるときに、これらの読取りコマンドはLBAアクセス・シーケンス情報により複数の媒体LBAへ向けられるように構成された請求項13記載のデータ記憶装置。
【請求項16】
前記コントローラは、前記データ・フェッチ・バッファが前記媒体上の一時記憶場所を含み、LBAアクセス・シーケンス情報により識別される複数のLBAから読取られる前記データを、前記媒体上の前記一時記憶場所へ記憶するように構成された請求項1記載のデータ記憶装置。
【請求項17】
前記コントローラは、LBAアクセス・シーケンス情報により識別されるLBAから読取られたデータを、前記媒体上の前記一時記憶場所におけるLBAの隣接したグループへ記憶するように構成された請求項16記載のデータ記憶装置。
【請求項18】
前記コントローラは、前記LBAアクセス・シーケンス情報により識別される前記LBAからデータを読取るために、前記コントローラに前記ホスト装置が命令するところの定義されたデータ転送速度に基づいて、LBAアクセス・シーケンス情報により識別される複数のLBAからどのようにデータを読取るかを調節するように構成された請求項1記載のデータ記憶装置。
【請求項19】
前記コントローラは、前記ホスト装置からのLBAアクセス・シーケンス情報による前記定義されたデータ転送速度を受信するように構成された請求項1記載のデータ記憶装置。
【請求項20】
データ記憶装置内のデータ記憶媒体上のデータ記憶位置を読取るコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品はコンピュータ読取り可能な記憶媒体内に実施されたコンピュータ・プログラム・コードを含み、該コンピュータ・プログラム・コードは、
前記ホスト装置がアクセスするデータ記憶装置内の前記媒体上のデータ記憶位置の複数の論理ブロック・アドレス(LBA)のシーケンスを定義することをホスト装置により実行されるように構成されたコンピュータ・プログラム・コードと、
前記LBAの定義されたシーケンスをLBAアクセス・シーケンス情報として、前記ホスト装置から前記データ記憶装置へ通知することを前記ホスト装置により実行されるように構成されたコンピュータ・プログラム・コードと、
前記LBAアクセス・シーケンス情報を前記データ記憶装置へ通知した後に前記LBAアクセス・シーケンス情報により識別されるLBAからデータを読取るように読取りコマンドを前記データ記憶装置へ通知することを前記ホスト装置により実行されるように構成されたコンピュータ・プログラム・コードと、
を含む前記コンピュータ・プログラム製品。
【請求項21】
前記LBAアクセス・シーケンス情報を前記データ記憶装置へ通知した後に前記LBAアクセス・シーケンス情報により識別されるLBAからデータを読取るように読取りコマンドを前記データ記憶装置へ通知することを前記ホスト装置により実行されるように構成された前記コンピュータ・プログラム・コードが、前記読取りコマンドをそれが通知するのに少なくとも1つの定義された時間の量だけ先立って、前記LBAアクセス・シーケンスを通知するように更に構成され、前記時間の量は、前記LBAアクセス・シーケンス情報により識別される複数の媒体LBAから前記データ記憶装置内の1つのフェッチ・バッファへデータを読取るために前記データ記憶装置に対して充分であるように定義される請求項20記載のコンピュータ・プログラム製品。
【請求項22】
増加または減少する数の順に前記識別された複数のLBAへのアクセスを遂行するように、前記LBAアクセス・シーケンス情報により識別されるLBAを並べ替えるように構成されたコンピュータ・プログラム・コードを更に含む請求項20記載のコンピュータ・プログラム製品。
【請求項23】
どの媒体LBAデータにデータが記憶されるかを識別するデータ記憶装置からファイル・テーブルを読取ることと、前記データ記憶装置へ通知された前記LBAアクセス・シーケンス情報を前記ファイル・テーブルに基づいて発生することとを前記ホスト装置により実行するように構成されたコンピュータ・プログラム・コードを更に含む請求項20記載のコンピュータ・プログラム製品。
【請求項24】
データ記憶装置内のデータ記憶媒体上のデータ記憶位置を読取るホスト装置のための方法であって、
前記ホスト装置がそこからデータを読取るデータ記憶装置内の媒体上のデータ記憶位置の複数の論理ブロック・アドレス(LBA)のシーケンスを定義することと、
前記ホスト装置から前記データ記憶装置へLBAアクセス・シーケンス情報として前記LBAの定義されたシーケンスを通知することと、
前記LBAアクセス・シーケンス情報により識別される前記媒体上のLBAからデータを読取ることと、
前記データ記憶装置内のデータ・フェッチ・バッファ内の前記LBAアクセス・シーケンス情報により識別される前記媒体上のLBAから読取られた前記データを記憶することと、
前記ホスト装置から前記データ記憶装置へ前記LBAアクセス・シーケンス情報を通知した後に、前記LBAアクセス・シーケンス情報により識別される1つの媒体LBAへ記憶されたデータへ向けられたデータ記憶装置へ、前記ホスト装置から読取りコマンドを通知することと、
前記データ・フェッチ・バッファから前記ホスト装置へ前記読取りコマンドに関連する前記データを通知することにより前記読取りに応答することと、
を含む前記方法。
【請求項25】
前記ホスト装置がそこからデータを読取るデータ記憶装置の前記媒体上のデータ記憶位置の複数の論理ブロック・アドレス(LBS)のシーケンスを定義することは、
どの媒体LBAにデータが記憶されるかを識別するデータ記憶装置から前記ホスト装置へ1つのファイル・テーブルを読込むことと、
前記ファイル・テーブルに基づいて前記ホスト装置によって、前記データ記憶装置へ通知される前記LBAアクセス・シーケンス情報を発生させることと、
を含む請求項24記載の方法。
【請求項26】
前記データ記憶装置の前記データ・フェッチ・バッファ内の前記LBAアクセス・シーケンス情報により識別される前記媒体上のLBAから読取られた前記データを記憶することは、前記データ記憶装置内の電子回路メモリへ前記読取られたデータを書込むことを含む請求項24記載のデータ記憶装置。
【請求項27】
前記データ記憶装置の前記データ・フェッチ・バッファ内の前記LBAアクセス・シーケンス情報により識別される前記媒体上のLBAから読取られた前記データを記憶することは、前記媒体上の一時記憶位置へデータを書込むことを請求項24記載のデータ記憶装置。
【請求項28】
前記媒体上の一時記憶位置へ読込まれた前記データを書込むことは、前記媒体上の前記一時記憶位置におけるLBAの隣接するグループ上へ前記データを書込むことを含む請求項27記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−198282(P2008−198282A)
【公開日】平成20年8月28日(2008.8.28)
【国際特許分類】
【外国語出願】
【出願番号】特願2007−32331(P2007−32331)
【出願日】平成19年2月13日(2007.2.13)
【出願人】(500373758)シーゲイト テクノロジー エルエルシー (278)
【Fターム(参考)】