(57)【要約】【課題】  ブロックに断片化されたファイルの特徴を認識可能とする。【解決手段】  本発明にかかる記憶システムは、ブロックアドレスによって特定されるブロックを含み、階層的データ構造体にデータを記憶する記憶媒体であって、各階層的データ構造体は、複数のレベルのデータオブジェクトを含み、前記ブロックの各群に記憶される記憶媒体と、前記階層的データ構造体の少なくとも１つの識別子を含んだ要求に応答して、該識別子に基づき１つまたは複数のブロックアドレスを生成し、前記１つまたは複数のブロックアドレスによって示される１つまたは複数のブロックにアクセスするコントローラとを備える。【選択図】図１
2005108239.tif 000002
【特許請求の範囲】
【請求項１】
ブロックアドレスによって特定されるブロックを含み、階層的データ構造体にデータを記憶する記憶媒体であって、
各階層的データ構造体は、複数のレベルのデータオブジェクトを含み、前記ブロックの各群に記憶される
記憶媒体と、
前記階層的データ構造体の少なくとも１つの識別子を含んだ要求に応答して、該識別子に基づき１つまたは複数のブロックアドレスを生成し、前記１つまたは複数のブロックアドレスによって示される１つまたは複数のブロックにアクセスするコントローラと
を備える記憶システム。
【請求項２】
階層的データ構造体の識別子を、ブロックアドレス各範囲に変換する情報を記憶する記憶位置
をさらに備える請求項１に記載の記憶システム。
【請求項３】
前記要求は、読み出し要求および書き込み要求の一方
を含む
請求項１に記載の記憶システム。
【請求項４】
前記要求は、
前記階層的データ構造体の前記データオブジェクトの１つを特定する別の識別子
を含む
請求項１に記載の記憶システム。
【請求項５】
前記要求は、
前記別の識別子によって特定される前記データオブジェクト内の１つまたは複数の位置を指し示す１つまたは複数のポインタ
を含む
請求項４に記載の記憶システム。
【請求項６】
各階層的データ構造体は、
ルートデータオブジェクトと、
前記階層的データオブジェクトの下位レベルにある付加的データオブジェクトと
を備える
請求項１に記載の記憶システム。
【請求項７】
前記データオブジェクトの少なくとも１つは、前記要求によって起動可能であり（invokable）、事前に規定されたタスクを実行する機能に関連付けられている
請求項１に記載の記憶システム。
【請求項８】
前記データオブジェクトの少なくとも１つは、前記要求によってアクセス可能な属性に関連付けられている
請求項１に記載の記憶システム。
【請求項９】
データにアクセスする方法であって、
複数のレベルのデータオブジェクトを含む階層的データ構造体に、記憶システムによってデータを記憶することと、
前記記憶システムにおいて、前記階層的データ構造体の１つの識別子を含んだ要求を受け取ることと、
前記記憶システムによって、前記識別子を、記憶媒体の対応するブロックを指定する１つまたは複数のブロックアドレスに変換することと
を含む方法。
【請求項１０】
前記要求を受け取ることは、
ホストシステムから前記要求を受け取ること
を含む
請求項９に記載のデータにアクセスする方法。
【請求項１１】
前記要求を受け取ることは、
前記識別子が前記ホストシステムによって変換されない前記要求を受け取ること
を含む
請求項１０に記載のデータにアクセスする方法。
【請求項１２】
識別子のテーブルおよび前記記憶システムの対応するブロックアドレスを記憶すること
をさらに含み、
前記識別子を前記１つまたは複数のブロックアドレスに変換することは、前記テーブルに基づいている
請求項９に記載のデータにアクセスする方法。
【請求項１３】
実行されると、記憶システムに、
複数のレベルのデータオブジェクトを含み、前記記憶システムの記憶媒体のブロックの各群に記憶される階層的データ構造体にデータを記憶することと、
前記階層的データ構造体の１つの識別子を含んだ要求を受け取ることと、
前記識別子を、前記記憶システムの前記記憶媒体の対応するブロックを指定する１つまたは複数のブロックアドレスに変換することと
を行わせる命令を含んだ少なくとも１つの記憶媒体を備える物品。
【請求項１４】
前記命令は、実行されると、
前記階層的データ構造体のデータオブジェクトに関連付けられた機能を記憶すること
を前記記憶システムにさらに行わせ、
各機能は、各データオブジェクトに対して、事前に規定されたタスクを実行する
請求項１３に記載の物品。
【請求項１５】
前記命令は、実行されると、前記記憶システムに、
第２の要求を受け取ることと、
前記第２の要求に応答して、前記データオブジェクトの少なくとも１つに関連付けられた少なくとも１つの機能を起動することと
をさらに行わせる
請求項１４に記載の物品。
【請求項１６】
前記命令は、実行されると、前記記憶システムに、
前記データオブジェクトに関連付けられた属性を記憶することと、
第３の要求を受け取ることと、
前記第３の要求に応答して、前記データオブジェクトの少なくとも１つに関連付けられた属性にアクセスすることと
をさらに行わせる請求項１５に記載の物品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層的データ構造体にデータを記憶する記憶システムに関する。
【背景技術】
【０００２】
現代のコンピュータシステムでは、データおよびプログラム命令を記憶するのに記憶デバイスが使用される。
記憶デバイスの例には、集積回路（ＩＣ）記憶デバイス（ダイナミックランダムアクセスメモリやスタティックランダムアクセスメモリ、フラッシュメモリ、電気的消去可能プログラマブル読み出し専用メモリなど）、ハードディスクドライブ、フロッピィディスクドライブ、光ドライブ、およびそれ以外の種類の記憶デバイスが含まれる。
【０００３】
一定の種類の記憶デバイスの記憶媒体は、データを記憶する所定のブロックに区画されている。
このような記憶デバイスは、「ブロック記憶デバイス（blocked storage device）」と呼ばれている。
一例では、ディスクベースの記憶デバイスのブロックはセクタを含む。
記憶媒体のブロックは、物理ブロックアドレスによってアドレス指定される。
この物理ブロックアドレスは、通常、ホストコンピュータで使用される論理ブロックアドレスにマッピングされる。
アプリケーションプログラムからの要求（読み出しまたは書き込み）に応答して、ホストコンピュータのファイルシステムは、論理ブロックアドレスを含んだコマンド（読み出しコマンドまたは書き込みコマンド）を生成する。
これらの読み出しコマンドまたは書き込みコマンドは、ファイルシステムにより、ホストコンピュータの記憶デバイスアダプタを通じて、記憶デバイスのデバイスコントローラに送られる。
デバイスコントローラは、論理ブロックアドレスの物理ブロックアドレスへの適切な変換を行い、次いで、物理ブロックアドレスが使用されて、記憶デバイスの対応するブロックがアクセスされる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ホストコンピュータシステムが生成するほとんどのファイルは大きすぎることから、記憶デバイスの単一ブロック内に記憶することはできない。
このようなファイルの例には、フォーマットされた文書を含んだファイル、オーディオデータを含んだファイル、ビデオデータを含んだファイル、マルチメディアデータを含んだファイル等が含まれる。
大きなファイルは、断片化されて、ブロック記憶デバイスの複数のブロックに記憶される。
一旦、ブロックに断片化されると、オリジナルのファイル（フォーマットされた文書ファイル、ビデオファイル、オーディオファイルなど）の特徴は失われる。
記憶デバイスの観点からすると、各データブロックは、ビットの集まりにすぎず、記憶デバイスは、このようなビットが、フォーマットされた文書ファイル、ビデオファイル、オーディオファイル、またはそれ以外のファイルの一部であるのかどうかを認識することはできない。
このような仕組みは、従来の記憶デバイスの特徴および柔軟性を低減する。
【発明を実施するための最良の形態】
【０００５】
図１は、ホストシステム１００および記憶システム１０２を含む例示のコンピュータシステムを示している。
ホストシステム１００は、中央処理装置（ＣＰＵ）１１６上で実行可能なアプリケーションクライアント１０４（および図示しない他のソフトウェアモジュール）を含む。
ＣＰＵ１１６は、メモリ１１８および周辺デバイス１２０に接続されている。
【０００６】
記憶システム１０２は、ホストシステム１００の一部とすることもできるし、リンク（例えば、ポート、ネットワークなど）を通じてホストシステム１００にアタッチまたは接続することもできる。
ホストシステム１００のアプリケーションクライアント１０４は、オブジェクトベースインターフェース１０６を通じて記憶システム１０２にアクセスする。
このオブジェクトベースインターフェース１０６は、いくつかのコンポーネントレイヤを含む。
オブジェクトベースインターフェース１０６のコンポーネントレイヤの個数は、記憶システムとの従来のインターフェースに見られるレイヤの個数よりも少なくなっている。
従来のインターフェースは、通常、以下のレイヤ、すなわち、ファイルシステム、デバイスドライバ、ポートアダプタ、およびデバイスコントローラを含む。
【０００７】
記憶システムのデータに対する要求（ホストシステムのアプリケーションプログラムによって生成される）は、このような従来のインターフェースのレイヤのそれぞれによって処理しなければならず、これらのレイヤは、通常、アドレスを或るフォーマットから別のフォーマットに変換する（例えば、ファイル識別子の論理ブロックアドレスへの変換、および、論理ブロックアドレスの物理ブロックアドレスへの変換）。
アクセス要求のこのような処理は、システム資源を消費し、かつ、処理時間が増加するという点から犠牲が大きい。
【０００８】
本発明のいくつかの実施の形態では、オブジェクトベースインターフェース１０６は、より少ない個数のコンポーネントレイヤを使用する。
これらのコンポーネントレイヤが、記憶システム１０２のデータに対するアクセス要求について行う処理は少なくなる。
このオブジェクトベースインターフェース１０６により、アプリケーションクライアント１０４は、オブジェクトベース要求（読み出し要求、書き込み要求、およびそれ以外の要求）を記憶システム１０２のデバイスコントローラ１０８に送ることが可能になる。
【０００９】
各オブジェクトベース要求は、記憶システム１０２に記憶されたデータオブジェクトのアクセスをデバイスコントローラに行わせる。
図１の配置は、クライアントサーバモデルを示しており、このモデルでは、アプリケーションクライアント１０４からの要求が、デバイスコントローラ１０８のデバイスサーバ１０９によって処理される。
【００１０】
記憶システム１０２は、オブジェクトレベルでデータを認識する。
そのため、ホストシステム１００は、アプリケーションクライアント１０４からのオブジェクトベース要求を、記憶システム１０２のブロックを特定するブロックアドレスを指定した読み出しコマンドまたは書き込みコマンドへ変換する必要はない。
その結果、ホストシステム１００におけるアクセス要求の処理は削減され、ホストシステムの計算効率は向上する。
【００１１】
記憶システム１０２がデータを記憶するのに使用するオブジェクトベースデータ構造体は、複数のレベルのデータオブジェクトを有する階層的データ構造体である。
各階層的データ構造体（「オブジェクト階層」とも呼ぶ）のデータオブジェクトは、いくつかの共通の特徴（例えば、フォーマットされた文書データ、音楽データ、ビデオデータ等）によって関係付けられる。
複数のオブジェクト階層１１６は、記憶媒体１１０に記憶されて、異なるデータ群を表す。
オブジェクト階層１１６の各データオブジェクトは、ディレクトリ、ファイル、またはそれ以外のデータ構造体の１つを表す。
図１に示すように、複数のオブジェクト階層１１６は、記憶システム１０２の記憶媒体１１０に記憶される。
本明細書で使用されるように、用語「記憶媒体」は、集積回路記憶デバイス、ディスクベースの磁気記憶デバイスまたは光記憶デバイス、それ以外のもの等、１つまたは複数の記憶素子を指す。
記憶媒体１１０は、論理ブロックアドレスによって特定されるブロックに区画される。
各オブジェクト階層１１６は、各組のブロックに記憶される。
【００１２】
オブジェクト階層にアクセスするために、オブジェクトベース要求は、そのオブジェクト階層１1６に関連付けられた一意のオブジェクト階層識別子（ＯＨＩＤ（Object-hierarchy identifier））を指定する。
オブジェクトベース要求に含まれるＯＨＩＤは、ホストシステム１００のオブジェクトベースインターフェース１０６によって、記憶媒体１１０のブロックに関連付けられたブロックアドレスに変換されることはない。
その代わり、ＯＨＩＤとブロックアドレスとの間の変換は、デバイスコントローラ１０８のデバイスサーバ１０９によって行われる。
デバイスサーバ１０９は、デバイスコントローラ１０８の処理コア上で実行可能なファームウェアまたはソフトウェアとすることができる。
この処理コアは、マイクロコントローラ、プロセッサ等の形態にすることができる。
【００１３】
デバイスコントローラ１０８は、ＯＨＩＤ−ＬＢＡ（論理ブロックアドレス（logical block address））テーブル１１４を記憶するメモリ１１２も含む。
このＯＨＩＤ−ＬＢＡテーブル１１４は、ＯＨＩＤとこのＯＨＩＤに対応する論理ブロックアドレスの範囲（またはそれ以外の群）との間の変換を可能にする変換テーブルである。
図１に示す例では、このテーブル１１４の第１行は、値ＩＤ０を有するＯＨＩＤを含む。
この値ＩＤ０は、当該ＩＤ０によって特定されるオブジェクト階層を含んだブロックを特定する論理ブロックアドレスの範囲に関連付けられている。
同様に、テーブル１１４の第２行は、値ＩＤ１のＯＨＩＤを含み、この値ＩＤ１は、当該ＩＤ１によって特定されるオブジェクト階層を含んだ記憶媒体１１０の記憶位置を表す論理ブロックアドレスの別の範囲に関連付けられている。
他の実施の形態では、ＯＨＩＤは、論理ブロックアドレスの代わりに物理ブロックアドレスに変換される。
より一般的に、ＯＨＩＤは、記憶媒体１１０のブロックを特定する１つまたは複数のアドレスから成る或る群に変換される。
【００１４】
一実施態様では、ＯＨＩＤ−ＬＢＡテーブル１１４を記憶するメモリ１１２は、デバイスコントローラ１０８の一部である。
メモリ１１２は、不揮発性メモリ（フラッシュメモリや電気的消去可能プログラマブル読み出し専用メモリなど）、ダイナミックメモリ（ダイナミックランダムアクセスメモリ、スタティックランダムアクセスメモリなど）、または他の任意の種類の記憶デバイスとすることができる。
あるいは、メモリ１１２は、デバイスコントローラ１０８とは別個の記憶媒体１１０の所定の領域とすることもできる。
【００１５】
一実施態様によるオブジェクトベースインターフェース１０６は、オペレーティングシステムと、ホストシステム１００のソフトウェアモジュール（例えば、アプリケーションクライアント１０４）と記憶システム１０２のデバイスコントローラ１０８との間の通信を可能にするホストアダプタとを含む。
あるいは、デバイスコントローラ１０８は、ホストアダプタを省略できるように、ホストシステム１００の一部とすることもできる。
ＯＨＩＤから論理ブロックアドレスへの変換（およびその逆の変換）をデバイスコントローラ１０８で行うことによって、ＣＰＵ１１６等のホストシステム資源を記憶アクセス処理に割り当てる必要がなくなる。
オブジェクト階層にデータを記憶することによって提供される別の利点は、記憶システム１０２に記憶されたデータの特徴が維持されるということである。
例えば、記憶システム１０２は、各オブジェクト階層１１６が、音楽データ、ビデオデータ、フォーマットされた文書データ、または他の型のデータを含むか否か等、各オブジェクト階層１１６に含まれたデータの型を認識する。
【００１６】
さらに、属性および機能を、各オブジェクト階層１１６に関連付けることができることに加えて、そのオブジェクト階層の各データオブジェクトに関連付けることもできる。
属性は、オブジェクト階層１１６のデータオブジェクトに関連付けられた特徴を記述する情報を含む。
例えば、データオブジェクトが音楽ファイルを含む場合に、データオブジェクトに関連付けられた属性は、その音楽ファイルの作者、その音楽ファイルがリリースされた日付、および対象となり得る他の情報を特定することができる。
機能は、データアクセスに応答して特定のタスクを実行するために起動可能な（起動することができる）あらゆる実行可能なソフトウェアルーチンまたはソフトウェアモジュールを含む。
例えば、所与のデータオブジェクトが、映画ファイルを含む場合に、その関連付けられた機能は、その映画を再生するルーチン、その映画を巻戻しするルーチン、およびその映画を早送りするルーチンを含むことができる。
これらの機能は、所望のタスクを実行するように起動される。
属性および機能を各データオブジェクトに関連付けることによって、データの記憶、アクセス、および操作の柔軟性が向上する。
【００１７】
図２は、図１の記憶１１０に記憶することができる例示のオブジェクト階層１１６を示している。
このオブジェクト階層１１６は、ルートデータオブジェクト２００を含む。
このルートデータオブジェクト２００は、ＯＨＩＤに関連付けられる。
アプリケーションクライアント１０４からのアクセス要求に含まれるＯＨＩＤは、オブジェクト階層１１６のルートデータオブジェクト２００を参照する。
ルートデータオブジェクト２００は、オブジェクト階層１１６の最上位レベルに位置する。
オブジェクト階層１１６は、１つまたは複数の付加的レベルのデータオブジェクトをさらに含むことができる。
図２に示す例のオブジェクト階層は、３つの付加的レベルのデータオブジェクトを含む。
下位のレベルにデータオブジェクトがアタッチされないデータオブジェクトは、リーフデータオブジェクト２０２と呼ばれる。
リーフデータオブジェクト２０２は、中間データオブジェクト２０４によってルートデータオブジェクト２００に接続される。
図２の例に示すように、属性および機能も、データオブジェクト２００、２０２、および２０４の少なくとも一部に関連付けられる。
【００１８】
図３は、より具体的な例のオブジェクト階層１１６Ａを示している。
このオブジェクト階層１１６Ａは、当該オブジェクト階層１１６Ａに記憶されたデータが音楽データであることを示すルートデータオブジェクト２１０を含む。
オブジェクト階層１１６Ａは、以下の中間データオブジェクト、すなわち、ブルース音楽の記憶場所を示すデータオブジェクト２１２、ジャズ音楽の記憶場所を示すデータオブジェクト２１４、およびロック音楽の記憶場所を示すデータオブジェクト２１６を含む。
これらの中間データオブジェクト２１２、２１４、および２１６は、ディレクトリに類似している。
オブジェクト階層１１６Ａのリーフデータオブジェクト２２０は、音楽の各カテゴリー（ブルース、ジャズ、およびロック）に関連付けられた実際の音楽ファイルを含む。
さらに、オブジェクト階層１１６Ａには、別の中間データオブジェクト２１８も存在する。
このデータオブジェクト２１８は、ブルースのデータオブジェクト２１２の下に接続されている。
データオブジェクト２１８は、特定のアーティストに関連付けられたアルバムを表すものである。
このアルバムデータオブジェクト２１８には、その特定のアルバムの音楽ファイルを含んだリーフデータオブジェクト２２２が接続されている。
【００１９】
図４および図５は、記憶システム１０２に記憶されたオブジェクト階層１１６にアクセスするのに使用される書き込み要求３００および読み出し要求３５０のそれぞれの例示のフォーマットを示している。
これらの書き込み要求および読み出し要求の具体的なフォーマットは、例として提供されるものである。
他の実施態様では、書き込み要求および読み出し要求は、他のフォーマットを有する。
【００２０】
書き込み要求３００は、オペレーションコード（書き込みであることを示す１６進数値００または他の或る所定の値）を含めて、複数バイトの情報を含む。
可変指示子３０４は、この書き込み要求の長さが可変であることを示すものである。
ＯＨＩＤフィールド３０６は、書き込み要求によってアクセスされて書き込みを行うオブジェクト階層のオブジェクト階層識別子を含む。
サブ階層識別子（ＳＯＨＩＤ）３０８は、オブジェクト階層１１６のデータオブジェクトをより具体的に特定するものである。
ＳＯＨＩＤ３０８は、オブジェクト階層１１６のデータオブジェクトの１つを特定する。
書き込み要求には、２つ以上のＳＯＨＩＤを指定することもできる。
【００２１】
一実施の形態では、オブジェクト階層１１６は、固定された階層を有し、この階層では、深さ（レベル数）および幅（各レベルのデータオブジェクト数）が固定されている。
固定された階層の場合、行列を使用して、階層において選択されたデータオブジェクトを特定することができる。
行列の各位置（ＳＯＨＩＤである）は、特定のデータオブジェクトに対応する。
データオブジェクトの選択は、行列の位置の値を所与の値（２進数の「１」の値等）に設定することによって行われる。
【００２２】
別の実施態様では、オブジェクト階層１１６は、動的な階層であり、この動的な階層では、深さおよび幅が事前に規定されず、変化することができる。
動的な階層の場合、ＳＯＨＩＤのリンクリストは、対応するデータオブジェクトを特定するのに使用される。
デバイスサーバ１０９（図１）は、ＯＨＩＤおよびＳＯＨＩＤを含んだ書き込み要求を受け取ったことに応答して、ＯＨＩＤに対応するリンクリストをトラバースし、指定されたＳＯＨＩＤおよびそのＳＯＨＩＤに対応するデータオブジェクトを探し出す。
【００２３】
また、書き込み要求３００は、最上位バイト（ＭＳＢ）階層ポインタ３１０および最下位バイト（ＬＳＢ）階層ポインタ３１２も含む。
これらの階層ポインタは、書き込みが行われるデータオブジェクト内の特定の部分を指し示す有効なオフセットである。
また、書き込み要求３００は、データオブジェクトに関連付けられた属性および機能にアクセスするフィールド３１４も含む。
書き込み要求３００の残りのフィールドは、ＭＳＢ階層ポインタ３１０およびＬＳＢ階層ポインタ３１２によって指し示された部分に書き込まれるデータを含む。
【００２４】
図５に示す読み出し要求３５０は、オペレーションコード３５２を含む。
このオペレーションコード３５２は、この場合、読み出しであることを示す１６進数値０１または他の或る所定の値を有する。
可変指示子３５４は、この読み出し要求３５０が可変長を有することを示すものであり、ＯＨＩＤフィールド３５６は、この読み出し要求が対象とするオブジェクト階層を示すものである。
【００２５】
また、読み出し要求３５０は、対象となるオブジェクト階層において読み出すデータオブジェクト（または複数のデータオブジェクト）を特定する１つまたは複数のサブ階層識別子を含んだフィールド３５８も含む。
フィールド３６０のＭＳＢ階層ポインタおよびフィールド３６２のＬＳＢ階層ポインタは、取り出される選択されたデータオブジェクト（または複数のデータオブジェクト）の部分のポインタ（または複数のポインタ）を指定する。
任意選択で、データオブジェクト全体（データオブジェクトの一部分だけではなく）を取り出すこともでき、この場合、ＭＳＢ階層ポインタおよびＬＳＢ階層ポインタを省略することができる。
また、読み出し要求は、オブジェクト階層のデータオブジェクトに関連付けられた属性および機能のアクセスを可能にするフィールド３６４も含む。
【００２６】
上記で言及した書き込み要求および読み出し要求に加えて、他の要求も、アプリケーションクライアント１０４（図１）によって発行することができる。
このような他の１つの要求は、デバイスサーバ１０９に送出されて、各オブジェクト階層に関連付けられた所定の情報を取り出す問い合わせ要求である。
例えば、この問い合わせ要求は、上記で言及した行列やリンクリスト等のサブ階層識別子情報の取り出しを引き起こすことができる。
【００２７】
上述したように、デバイスサーバ１０９（図１）は、ファームウェアまたはソフトウェアで実施することもできるし、ファームウェアおよびソフトウェアの組み合わせで実施することもできる。
これらのソフトウェアまたはファームウェアは、記憶システム１０２（図１）の制御ユニットまたはプロセッサ上で実行することができる。
この制御ユニットまたはプロセッサには、マイクロプロセッサ、マイクロコントローラ、プロセッサモジュールもしくはプロセッササブシステム（１つまたは複数のマイクロプロセッサもしくはマイクロコントローラを含む）、または他の制御デバイスもしくはコンピューティングデバイスが含まれる。
本明細書で使用されるように、「コントローラ」は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせを指す。
「コントローラ」は、（ソフトウェア、ファームウェア、またはハードウェアのいずれであっても）単一のコンポーネントまたは複数のコンポーネントを指すことができる。
【００２８】
（ソフトウェアまたはファームウェアの）データおよび命令は、１つまたは複数のマシン可読記憶媒体に記憶される。
この記憶媒体には、ダイナミックランダムアクセスメモリまたはスタティックランダムアクセスメモリ（ＤＲＡＭまたはＳＲＡＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ等の半導体メモリデバイスと、固定ディスク、フロッピー（登録商標）ディスク、リムーバブルディスク等の磁気ディスクと、テープを含む他の磁気媒体と、コンパクトディスク（ＣＤ）やデジタルビデオディスク（ＤＶＤ）等の光媒体とを含むさまざまな形態のメモリが含まれる。
【００２９】
上記説明では、本発明の理解を助けるために、多くの詳細な内容を述べている。
しかしながら、これらの詳細な内容がなくても、本発明を実施できることが当業者には理解されよう。
限られた数の実施の形態について、本発明を開示しているが、それらの実施の形態から多くの変更および変形が当業者には理解されよう。
添付の特許請求項は、本発明の真の精神および範囲内に含まれるこのような変更および変形をカバーすることを意図している。
【図面の簡単な説明】
【００３０】
【図１】コンピュータシステムの例示の配置のブロック図である。
【図２】いくつかの実施の形態によるオブジェクトベース階層データ構造体の概略図である。
【図３】いくつかの実施の形態によるオブジェクトベース階層データ構造体の概略図である。
【図４】図２および図３のオブジェクトベース階層データ構造体にアクセスする（書き込む）本発明のいくつかの実施の形態による書き込みコマンドを示す図である。
【図５】図２および図３のオブジェクトベース階層データ構造体にアクセスする（を読み出す）本発明のいくつかの実施の形態による読み出しコマンドを示す図である。
【符号の説明】
【００３１】
１００・・・ホスト、
１０４・・・アプリケーションクライアント、
１０６・・・オブジェクトベースインターフェース、
１０８・・・デバイスコントローラ、
１０９・・・デバイスサーバ、
１１２・・・ＯＨＩＤ−ＬＢＡテーブル、
１１４・・・ブロックの範囲、
１１０・・・記憶媒体、
１１６・・・オブジェクト階層、
１１８・・・メモリ、
１２０・・・周辺デバイス（または複数の周辺デバイス）、
２００・・・ルート、
２１０・・・音楽、
２１２・・・ブルース、
２１４・・・ジャズ、
２１６・・・ロック、
２１８・・・アーティスト１  アルバム、
２２０，２２２・・・ファイル、
３００・・・書き込み要求
３０２・・・オペレーションコード（００）or（０１）、
３０４・・・可変、
３０６・・・オブジェクト階層識別子（ＯＨＩＤ）、
３０８・・・サブ階層識別子（または複数のサブ階層識別子）、
３１０・・・ＭＳＢ階層ポインタ、
３１２・・・ＬＳＢ階層ポインタ、
３１４・・・属性および機能にアクセスするフィールド、
３５０・・・読み出し要求、
３５２・・・オペレーションコード（００）or（０１）、
３５８・・・サブ階層識別子（または複数のサブ階層識別子）、
３６０・・・ＭＳＢ階層ポインタ、
３６２・・・ＬＳＢ階層ポインタ、
３６４・・・属性および機能にアクセスするフィールド、
【図１】
2005108239.tif 000003
【図２】
2005108239.tif 000004
【図３】
2005108239.tif 000005
【図４】
2005108239.tif 000006
【図５】
2005108239.tif 000007