JPH10198587A - ファイル・システムの間接アドレシング方法及び装置 - Google Patents

ファイル・システムの間接アドレシング方法及び装置

Info

Publication number
JPH10198587A
JPH10198587A JP9354773A JP35477397A JPH10198587A JP H10198587 A JPH10198587 A JP H10198587A JP 9354773 A JP9354773 A JP 9354773A JP 35477397 A JP35477397 A JP 35477397A JP H10198587 A JPH10198587 A JP H10198587A
Authority
JP
Japan
Prior art keywords
pointer
address
data
entry
block
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
JP9354773A
Other languages
English (en)
Inventor
Lawrence M Ruane
ローレンス・エム・ルアン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH10198587A publication Critical patent/JPH10198587A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 間接アドレス・ファイル・システムにおける
ファイルに対する論理アドレスおよびポインタ・エント
リを物理アドレスに変換する方法を提供すること。 【解決手段】 ポインタ・エントリは、ポインタと、当
該ポインタがデータ・ポインタであるかメタデータ・ポ
インタであるかを示すポインタ・フラグとを有する。現
ポインタ・エントリにおけるポインタ・フラグを検査し
て、ポインタがデータ・ポインタであれば、該データ・
ポインタを論理アドレスと結合し、物理アドレスを発生
する。ポインタがメタデータ・ポインタであれば、論理
アドレスを、インデックス値としての部分と、オフセッ
ト値としての部分とに分割し、論理アドレスをオフセッ
ト値にセットする。更に、前記メタデータ・ポインタを
インデックス値と結合し、次のポインタ・エントリを得
る。そして、該次のポインタ・エントリを現ポインタ・
エントリとして、物理アドレスが発生されるまで、処理
を繰り返す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ファイル・システ
ムにおける、ファイルの間接的アドレシングに関する。
更に特定すれば、本発明は、付加的な制御情報によって
間接アドレシングを改良することに関するものである。
【0002】
【従来の技術】ユーザまたはアプリケーション・プログ
ラムにとって、ファイルは、バイト0からファイル・サ
イズより1小さい数までアドレスされたディスク空間の
連続領域として見られる。実際には、かかるファイル
は、ディスク全体に分散された種々の物理的なデータ・
ブロックとして記憶される。したがって、アプリケーシ
ョンによって与えられるファイル・オフセットを、デー
タ記憶装置内の物理的アドレスに変換するためには、あ
るアドレス変換方法が必要となる。
【0003】非常に一般的な変換方法は、固定サイズ間
接アドレス・ブロックのツリーを用いる。この変換方法
の一例に、ユニックス・ファイル・システム(UFS:
UnixFile System)がある。間接アドレス・ブロックと
は、ブロック・ポインタのアレイを含む、メタデータの
ブロックのことである。これらのブロック・ポインタ
は、他の低いレベルの間接アドレス・ブロックを指示す
る。メタデータ(metadata)の最も低いレベルでは、間接
アドレス・ブロックは固定サイズのデータ・ブロックを
指示する。ユニックスではIノード(I-node)であるファ
イルに対する制御ブロックは、最も高いレベルの間接ア
ドレス・ブロックを指示する。
【0004】変換方法は、オフセットの上位側ビット
を、ルート間接アドレス・ブロックに対するインデック
スとして用いることによって開始する。ルート間接アド
レス・ブロックでは、第2レベルの間接アドレス・ブロ
ックに対するポインタが引き出される。次に、オフセッ
トの次の上位ビットを、第2レベルの間接アドレス・ブ
ロックにおけるインデックスとして用い、第3レベルの
間接アドレス・ブロックに対するポインタを取り込む。
再び、オフセットの次の上位ビットを用いて、第3レベ
ルの間接アドレス・ブロックにおけるポインタを発見す
る。このポインタは、更に他の間接アドレス・ブロック
を指示する可能性があり、あるいはデータ・ブロックを
指示する場合もある。最後の間接アドレス・ブロックか
らのポインタと共に、データ・ブロック内のデータを発
見するためにバイト・インデックスとして用いられるの
は、最下位のオフセット・ビット集合である。
【0005】最終的にデータ・ブロックとなる間接アド
レス・ブロックのツリーは、固定的深度(fixed depth)
を有する。例えば、4キロバイトの間接アドレス・ブロ
ックおよび4キロバイトのデータ・ブロック(伝統的な
ユニックス・ファイル・システム)で32ビット(4ギ
ガバイト)のファイル・システムを支援するためには、
2レベルの間接アドレス・ブロックが必要となる。各レ
ベルは10ビット(1024個の4バイト・ブロック・
ポインタ)を用い、データ・ブロックは12ビットを用
いる。63ビットのファイルを有するファイル・システ
ムにおいて、8キロバイトのデータ・ブロックを有する
8キロバイトの間接アドレス・ブロックを用いる場合、
5レベルの間接アドレシングがあり、各レベルは10ビ
ットを有し、データ・ブロックは13ビットを有するこ
とになる。
【0006】この間接アドレス手法に伴う問題は、メタ
データのために、非常に大量のディスク空間およびメモ
リを使用し、ファイルを得るためのメタデータの処理に
多大な時間量を費やすことである。例えば、各データ・
ブロック(ユニックスでは通常8キロバイト)には、最
も低いレベルの間接アドレス・ブロックにおいて、8バ
イトのエントリが関連付けられる。1テラバイトのファ
イルは、1ギガバイトよりも多少多い間接アドレス・ブ
ロック容量(storage)を必要とする。これは、管理する
には非常に大きな量のメタデータである。大きなファイ
ル・システムに記憶されるファイルの多くは隣接するフ
ァイルであるので、このメタ・データの間接アドレシン
グの多くは無駄な空間となることがわかる。
【0007】間接アドレシング・ファイル・システム
は、ファイル・データ・ブロックが、ファイル・システ
ム全体または少なくとも多数の小さな隣接領域にわたっ
て分散されていることを想定している。しかしながら、
動作の効率および速度向上を目的として多くのアプリケ
ーション・プログラムは、ファイル・システム内の隣接
空間に必要なファイルを記憶しようとする。その結果、
間接アドレスのブロックがポインタの連続配列(sequent
ial arrangement)を有する場合がしばしば発生する。ポ
インタの連続配列とは、間接アドレス・ブロックの各々
が次の隣接するデータ・ブロックを指示することを意味
する。かかる状況における1つの解決策は、データ・ブ
ロックのサイズを大きくすることである。しかしなが
ら、データ・ブロックのサイズを大きくする程、ファイ
ルは小さくなる。すると、ファイルがデータ・ブロック
を埋め尽くさないので、大量の記憶空間が無駄になる。
ファイルが大きい場合でも、ファイル・サイズが不規則
に分配されるとすると、平均的に、最後のブロックの半
分は使用されないままとなる。
【0008】ファイル・システムにおけるメタデータの
大きなブロックとデータ・ブロック空間の無駄を両立さ
せる問題を解決するために、「エクステント(extent
s)」を使用するという試みがなされている。「エクステ
ント」ファイル・システムでは、各ファイルは物理アド
レスのリストによって定義され、このリストには各物理
アドレスにおける各ブロックの長さが伴っている。例え
ば、非隣接ブロックを有するファイルは、次のような物
理アドレス/長さペアのリストによって定義することが
できる。即ち、第1エントリ1000,50、第2エン
トリ4000,80、第3で最終のエントリ3500,
20と定義する。「エクステント」ファイル・システム
では、このファイルは最初に、物理的アドレス1000
から始まる50のデータ・ブロック、即ち、物理ブロッ
ク1000から1049までを有する。続いて、ファイ
ルは物理アドレス4000から始まる800のデータ・
ブロック、即ち、4000〜4799を有する。最後
に、ファイルは、物理アドレス3500から始まる20
のブロック、即ち、ブロック3500〜3519で完了
する。
【0009】
【発明が解決しようとする課題】この「エクステント」
型ファイル・システムには多数の問題が存在する。例え
ば、ファイルが隣接空間の大きなブロックを必要とし、
使用可能な空間が非隣接位置における多数の小さなブロ
ックのみである場合、「エクステント」ファイル・シス
テムは、1つのファイルを指定するために、非常に長い
「物理アドレス/長さ」ペアのリストを有することにな
る。「エクステント」ファイル・システムに伴う第2の
問題は、ファイル内のオフセットによって指定されたデ
ータ・ブロックを引き出すためには、ソフトウエアは
「エクステント」リスト全体を検索して、求められてい
るデータ・ブロックを含むブロックの位置を発見しなけ
ればならないことである。この場合も、リストが長い
と、正しい「物理アドレス/長さ」ペアを発見するため
の検索プロセスは、時間を浪費するプロセスとなり得
る。最後に、「エクステント」ファイル・システムにお
いて、ファイル記憶を再構成して隣接性(contiguousnes
s)を改善する場合、「エクステント」リストを完全に破
壊し、新しい「エクステント」リストを構築しなければ
ならない。これは、大量のコピー処理を必要とする。
【0010】したがって、間接アドレスの検索時間の短
縮、および間接アドレス・メタデータのサイズ縮小のた
めの改良が、間接アドレス構成には必要とされている。
【0011】
【課題を解決するための手段】本発明によれば、間接ア
ドレシング・ファイル・システムにおいてファイルの論
理アドレスを物理アドレスに変換する際、ポインタ・エ
ントリがポインタとポインタ・データ・インディケータ
を有するようにして、上述の問題を解決した。変換プロ
セスは、コンピュータ実装ステップを用い、ポインタ・
エントリを引き出すことによって開始する。ポインタ・
エントリ内のポインタ・データ・インディケータは、ポ
インタがデータ記憶エリア内の物理アドレスを指示する
場合には第1状態を示し、ポインタがより低いレベルの
間接アドレス・ブロックを指示する場合は第2状態を示
す。ポインタ・データ・インディケータが第1状態にあ
るのかあるいは第2状態にあるのかを検出した後、プロ
セスは2つの可能な動作経路を取る。ポインタ・データ
・インディケータが第1状態にある場合、ポインタは論
理アドレスと結合され、物理アドレスをセットする。ポ
インタ・データ・インディケータが第2状態にある場
合、論理アドレスはインデックスとオフセットとに分割
される。論理アドレスはオフセットに更新される。更
に、ポインタ・データ・インディケータが第2状態にあ
る場合、現ポインタによって指示されている間接アドレ
ス・ブロック、およびインデックスによって識別され
る、指定間接アドレス・ブロック(pointed-to indirect
address block)内のある位置から、次のポインタ・エ
ントリを引き出す。変換プロセスは、物理アドレスと論
理アドレスを結合することによって物理アドレスがセッ
トされるまで、これらのステップを繰り返す。
【0012】本発明の他の実施態様においては、上述の
コンピュータ実装ステップは、上述のステップを有する
コンピュータ・プロセスをコンピュータに実行可能とす
る命令のコンピュータ・プログラムを含む、一製造品
目、即ち、コンピュータ記憶媒体またはコンピュータ伝
送媒体として提供される。
【0013】本発明の機械実施態様においては、間接ア
ドレス・ファイル・システム内のファイルに対する論理
アドレスおよびポインタ・エントリを物理アドレスに変
換するための装置は、判断モジュール、セット・モジュ
ール、分割モジュール、更新モジュール、および引き出
しモジュールを有する。判断モジュールは、現ポインタ
・エントリにおけるポインタ・フラグを検査する。ポイ
ンタ・エントリはポインタと、当該ポインタがデータ記
憶エリアまたはメタデータ記憶エリアのどちらを指示す
るのかを識別するポインタ・フラグとを有する。判断モ
ジュールは、当該ポインタがデータ・ポインタであるか
あるいはメタデータ・ポインタであるかを示す。セット
・モジュールは、ポインタがデータ・ポインタであるこ
とを示す判断モジュールに応答し、データ・ポインタを
論理アドレスと結合し、物理アドレスを発生する。
【0014】分割モジュールは、ポインタがメタデータ
・ポインタであることを示す判断モジュールに応答し、
論理アドレスを、インデックス値としての第1部分と、
オフセット値としての残り部分とに分割する。更新モジ
ュールは、次に、論理アドレスをオフセット値にセット
する。引き出しモジュールは、メタデータ・ポインタを
インデックス値と結合し、次のポインタ・エントリを得
る。引き出しモジュールは次のポインタ・エントリを判
断モジュールに送り、当該ポインタがデータ・ポインタ
またはメタデータ・ポインタのどちらであるかを、次の
ポインタ・エントリ内のポインタ・フラグが示している
のを検査させる。モジュールの全ては、セット・モジュ
ールが物理アドレスを発生するまで、上述のようにポイ
ンタ・エントリを処理し続ける。
【0015】本発明の特徴の1つとして、第1のポイン
タ・エントリは、ファイル制御ブロック、即ち、ユニッ
クス・ファイル・システムにおけるアイノード(inode)
によって、ファイルに対して与えられる。
【0016】本発明の他の特徴として、各メタデータ・
ポインタは、複数の間接アドレシングのレベルにおけ
る、次の間接アドレシングの連続するレベルを指示す
る。また、各データ・ポインタは直接データ記憶エリア
を指示する。その結果、データ・ポインタを含むポイン
タ・エントリを有するレベルから最終間接アドレシング
・レベルまでの間接アドレシングのレベルは全てバイパ
スされる。
【0017】本発明の大きな利点および有用性は、ポイ
ンタ・フラグまたはポインタ・データ・インディケータ
がセットされた場合、間接アドレシング・プロセスは、
間接アドレシングの不要なレベルの全てを迂回し(circu
mvent)、データ記憶エリアに直接進むことにある。更
に、ポインタ・フラグがセットされていない場合、間接
アドレシングは、丁度それが間接アドレシング・ファイ
ル・システムを有する場合のように作用する。
【0018】本発明の上述のおよびその他の特徴、有用
性、および利点は、添付図面に示す本発明の好適実施例
の一層特定的な記載から明確となろう。
【0019】
【発明の実施の形態】図1は、本発明の一実施例におい
て用いられる、改良間接アドレシングの構造を示す。図
1の例は、3レベルの間接アドレシングを有する。本発
明の説明において明らかとなろうが、間接アドレシング
のレベル数は、本発明には重要なことではない。レベル
数は、ファイルのサイズ、間接アドレス・ブロックのサ
イズ、データ・ブロックのサイズ、および間接アドレス
・ブロックにおけるポインタのサイズによって異なるも
のである。図1に示すのは、単一ファイルを収容する、
3レベル・システムである。
【0020】図1の構造において、データ・ブロック
は、記憶装置のエリア10に記憶されている。記憶装置
はメモリとすることもできるが、より典型的にはディス
ク・ファイル空間である。エリア10内のデータ・ブロ
ックは、レベル1,2,3(L1,L2,L3)に示す
間接アドレス・ブロックを通じてアドレスされる。図1
に示すように、レベル1は単一ルート間接アドレス・ブ
ロック12である。間接アドレス・ブロック12のサイ
ズは、ファイル・システムに設けられているルート・ア
ドレスの数によって異なり、ファイル・システムにおい
てファイルをアドレスするために用いられるオフセット
のルート・インデックス部分に用いられるビット数によ
って制限される。
【0021】レベル2(L2)には、3つの間接アドレ
ス・ブロック14,16,18が示されている。潜在的
に、レベル1(L1)におけるルート・アドレス・ブロ
ック12内のポインタ・エントリ各々に対して、レベル
2にアドレス・ブロックがあり得る。L2における間接
アドレス・ブロック14,16,18のサイズは、ファ
イル・システムにおいてファイルをアドレスするために
用いられるオフセットのレベル2インデックス部分に用
いられるビット数によって異なる。図1の例では、オフ
セット20を4つの部分に分割している。最初の3部分
は、それぞれ、レベルL1,L2,L3における間接ア
ドレス・ブロック内のアドレスに索引を付ける(index)
ために用いられ、各々10ビットを有する。第4の部分
は13ビットを有する。したがって、レベル2またはレ
ベル3における間接アドレス・ブロックの最大サイズ
は、1,024ポインタ・エントリとなる。また、L2
およびL3には、3つの間接アドレス・ブロックのみ、
即ち、L2においてブロック14,16,18およびL
3においてブロック22,24,26を示す。潜在的に
は、L2には、ルート間接アドレス・ブロック12内の
各ポインタ・エントリ毎に1つとして、1024の間接
アドレス・ブロックがある。また、L3には、L2内の
各間接アドレス・ブロック毎に、1024の間接アドレ
ス・ブロックがある。
【0022】各間接アドレス・ブロックには、1024
のポインタ・エントリがある。間接アドレス・ブロック
14内に示すように、各ポインタ・エントリは2種類の
情報を含む。即ち、ポインタおよびポインタ・データ・
ビットを含む。ポインタ・データ・ビットは、ポインタ
がデータ・ファイル・エリア10内のデータ・ブロック
を指示するのか、あるいはポインタが次に低いレベルに
おける間接アドレス・ブロックを指示するのかを示す。
ポインタ・データ・ビットがセットされている場合、ポ
インタはデータ・ファイル・エリア10内のデータ・ブ
ロックを指示する。ポインタ・データ・ビットがセット
されていない場合、ポインタは、アドレス・ブロックの
次に低いレベルにおける間接アドレス・ブロックを指示
する。例えば、アドレス・ブロック14では、ポインタ
・エントリ28は、ポインタ28Aおよびポインタ・デ
ータ・ビット28Bを含む。ポインタ・データ・ビット
28Bは1であり、したがって、ポインタ28Aは、デ
ータ・ブロック記憶エリア10内のエントリ・ポイント
を指示する。
【0023】間接アドレス・ブロック14内のポインタ
・エントリ30は、次に低いレベルにおける他の間接ア
ドレス・ブロックを指示するエントリの一例である。ポ
インタ・エントリ30は、ポインタ30Aおよびポイン
タ・データ・ビット30Bを含む。ポインタ・データ・
ビット30Bは0にセットされており、したがって、ポ
インタ30Aは、次に低いレベル、即ち、レベル3(L
3)における間接アドレス・ブロック22を指示する。
【0024】オフセット20におけるオフセット情報
は、これらのポインタと種々の方法で結合され、エリア
10内のデータ・ブロックを識別し、引き出す。オフセ
ット20内のインデックス・エントリは、インデックス
として用いられ、ポインタと結合して、間接アドレシン
グの次に低いレベルにおけるポインタ・エントリを識別
する。あるいは、オフセット20の一部をオフセットと
して用い、ポインタによって指示されるエリア10にお
ける開始位置に相対する、エリア10におけるデータ・
ブロック位置を識別することも可能である。
【0025】間接アドレシングは、ユニックス・ファイ
ルでは、「アイノード」ファイル内のポインタ・エント
リから開始する。アイノード・ポインタ・エントリ内の
ポインタは、レベル1(L1)におけるルート間接アド
レス・ブロックの開始アドレスを指示する。オフセット
20からのIndex 1は、ルート間接アドレス・ブロック
に対する開始アドレスと結合され、ルート間接アドレス
・ブロック内のポインタ・エントリを発見する。アイノ
ード内のポインタ・エントリも同様に、ポインタ・デー
タ・ビットを含むことができる。このポインタ・データ
・ビットがセットされている場合、アイノード内のポイ
ンタは直接データ記憶エリア10内の開始アドレスを指
示し、オフセット全体が、この開始アドレスから、引き
出すべきファイル・データまでに索引を付ける。しかし
ながら、通常では、アイノード・ポインタ・エントリ
は、ルート間接アドレス・ブロックを指示するポインタ
を有する。
【0026】ルート間接アドレス・ブロック12内のポ
インタ・エントリに対するポインタ・データ・ビットが
1である場合、ポインタは記憶エリア10内の開始点を
直接指示する。ポインタ・エントリ32は、記憶エリア
10の最上部にある開始アドレス34を指示する、ポイ
ンタ32Aを有する。ポインタ・エントリ32は、1に
セットされ、ポインタ32がデータ記憶エリア10を指
示していることを示す、ポインタ・データ・ビット32
Bを含む。エリア10から引き出されるデータ・ブロッ
クの実際の位置は、ポインタおよびオフセット20のDa
ta Offset 1部分によって識別される開始アドレスによ
って定義される。したがって、例えば、ポインタ32A
が物理アドレス11,000を指示し、Data Offset 1
が350である場合、データを引き出すエリア10内の
物理アドレスは11,350となる。したがって、ポイ
ンタ・エントリ32を指示するルート・アドレス、およ
び350のオフセットに応答して、11,350におけ
るデータ・ブロックが引き出される。
【0027】一方、レベル1(L1)におけるルート・
アドレス・ブロック内のポインタ・エントリが、0にセ
ットされているポインタ・データ・ビットを有する場
合、ポインタはL2内の間接アドレス・ブロックを指示
する。例えば、ルート・アドレス・ブロック内のポイン
タがL2における間接アドレス・ブロック14を指示す
る場合、アドレス・ブロック14内のポインタ・エント
リは、オフセット20内のIndex 2に基づいて引き出さ
れる。言い換えると、オフセット20内の上位側ビット
はインデックスとして機能し、ルート・アドレス・ブロ
ック12内のポインタ・エントリからのポインタと結合
され、レベル2における間接アドレス・ブロック内のポ
インタ・エントリを発見する。
【0028】L2において引き出されたポインタ・エン
トリが、例えば、間接アドレス・ブロック14内のポイ
ンタ・エントリ28のような、1にセットされたポイン
タ・データ・ビットを有する場合、オフセット20の残
りのData Offset 2は、データ・オフセット、即ち、イ
ンデックスとして用いられ、ポインタ・エントリ28内
のポインタと結合され、記憶エリア10内のデータ・ブ
ロックを発見する。例えば、ポインタ28Aがエリア1
0内の物理アドレス2,000を指示し、オフセット2
0内のData Offset 2が400である場合、物理アドレ
ス2400におけるデータ・ブロックが記憶エリア10
から引き出される。
【0029】一方、レベル2(L2)におけるポインタ
・エントリ内のポインタ・データ・ビットが0である場
合、ポインタは単にレベル3(L3)における間接アド
レス・ブロックを指示する。L3内の間接アドレス・ブ
ロックは全て、1にセットされたポインタ・データ・ビ
ットを有する。その理由は、レベル3が間接アドレシン
グの最も低いレベルであり、レベル3におけるポインタ
はデータ記憶エリア10内の物理アドレスを指示するに
違いないからである。したがって、間接アドレシングの
レベル3を用いる場合、オフセット20のIndex 3部分
はL2からのポインタと結合され、L3における間接ア
ドレス・ブロック内のポインタ・エントリを発見する。
また、オフセット20のData Offset 3部分も、L3に
おけるポインタ・エントリからのポインタと結合され、
記憶エリア10内の物理アドレスを発見する。
【0030】3つのレベル全てを用いる場合、この構造
は従来の間接アドレシングに対して利点はない。しかし
ながら、隣接データ・ブロックが存在する場合、この構
造は、より高い間接アドレス・レベルから直接、隣接空
間のより大きなデータ・ブロックをアドレスする構造を
提供する。まず、より高いレベルのポインタ・エントリ
内のポインタが記憶エリア10内の物理アドレスを直接
指示することを、ポインタ・データ・ビットが示す。第
2に、ポインタ・エントリのレベルに応じて、この物理
アドレスに対するより高いレベルのポインタを、オフセ
ットの全体または一部と結合し、記憶エリア10内のあ
る物理アドレスから、データを引き出す。このようにし
て、不要な低いレベルの間接アドレシングを迂回するこ
とができる。
【0031】本発明が用いられる動作環境は、汎用分散
型計算機システムだけではなく、単体の計算機システム
も含む。分散型計算機システムでは、汎用コンピュー
タ、ワークステーション、またはパーソナル・コンピュ
ータが、種々のタイプの通信リンクを通じて、クライア
ント−サーバ構成に結合され、多くの場合オブジェクト
の形態のプログラムおよびデータがシステム内の種々の
構成機器によって使用可能となっている。
【0032】単体のコンピュータまたは汎用ワークステ
ーション・コンピュータの要素のいくつかを図2に示
す。本発明によれば、クライアント・プロセッサ35の
ような、ネットワーク内の遠隔ワークステーションに位
置するユーザは、ネットワークを通じてコンピュータ・
サーバ20と通信する。サーバ20は、入出力部22、
中央演算装置23、およびメモリ部24を有するプロセ
ッサ21を含む。入出力部22は、任意に、キーボード
25、ディスプレイまたはモニタ26、およびディスク
記憶装置29に接続される。入出力部22は、ネットワ
ーク46上の遠隔クライアント・ステーション35と通
信するための通信アダプタ(図示せず)を含む。
【0033】アプリケーション・プログラム45がクラ
イアント・ステーション35上で動作し、サーバ20が
維持するファイルに対するアクセスまたは変更を行うこ
とができる。本発明の装置および方法を実行するコンピ
ュータ・プログラム生産物は、メモリ部24内またはデ
ィスク記憶装置29、あるいは同様の記憶媒体(図示せ
ず)に置くことができ、あるはクライアント35が用い
る記憶媒体上に置くことも可能である。サーバ20また
はクライアント35のいずれかとして使用可能な計算機
システムの例には、Sun Microsystems社が提供するPARC
Jシステム、IBM社、ならびにIBM互換パーソナル・コン
ピュータの製造者が提供するパーソナル・コンピュータ
およびUNIX, OS/2, HP-UX, AIX, DOS等のオペレー
ティング・システムを実行させるシステムが含まれる。
尚、SPARCはSun Microsystems社の商標であり、UNIXはX
/Open社によって使用許諾される商標であり、OS/2およ
びAIXはIBM社の商標である。
【0034】図2に示すように、クライアント35およ
びサーバ20は、ネットワーク46を通じて通信し、サ
ーバのディスク29上に維持されているファイルへのア
クセスを、クライアント35に与える。逆に、クライア
ント35も、サーバ上で維持されるファイルのために、
ネットワーク46を通じてファイル・データを転送す
る。
【0035】図3は、本発明の改良間接アドレシング構
造における論理アドレスを物理アドレスに変換し、当該
物理アドレスにおけるデータ・ブロックを引き出す際
の、本発明の好適実施例における論理処理を示す、。図
3において、処理100がオフセットを引き出し、ファ
イルに対する初期アドレスとして論理アドレスをオフセ
ットに設定したときに、変換処理が開始する。次に、処
理102が、当該ファイルに対して、ファイル制御ブロ
ック(アイノード)からポインタ・エントリを引き出
す。
【0036】判断処理106が、引き出しモジュール1
02によって丁度引き出されたポインタ・エントリのポ
インタ・データ・ビットがセットされているか否かにつ
いて検査を行う。ポインタ・データ・ビットがセットさ
れている場合、変換処理は、ポインタがデータ記憶エリ
アを指示していることを知る。処理フローは、判断処理
106から「Yes」に分岐し、引き出し処理108に
進む。引き出し処理108は、ポインタ・エントリから
ポインタを引き出し、次いで処理110がファイルに対
する物理アドレスを、ポインタに論理アドレスを加えた
ものにセットする。この場合、論理アドレスはオフセッ
ト20(図1)全体である。処理110においてセット
された物理アドレスは、次に、引き出し処理112によ
って用いられ、当該物理アドレスにおけるデータ・ブロ
ックを引き出す。データ・ブロックの引き出しによっ
て、変換処理は完了する。
【0037】判断処理106が、ポインタ・データ・ビ
ットがセットされていないこと、即ち、ポインタ・エン
トリ内のポインタが間接アドレス・ブロックを指示して
いることを検出した場合、処理フローは判断処理106
から「No」に分岐する。次いで、処理フローは引き出
しモジュール104に移る。図1の例では、図3の引き
出しモジュール104は、ここではアイノードからのポ
インタ・エントリ内のポインタによって指示されている
ルート間接アドレス・ブロックを引き出す。次に、分割
モジュール114が、処理100によってオフセット2
0(図1)にセットされた論理アドレスを、インデック
ス部分とオフセット部分とに分割する。この場合、論理
アドレスは、Index 1およびData Offset 1(図1)に分
割される。処理116が、新しい論理アドレスを、処理
114において以前の論理アドレスから分割されたオフ
セットにセットする。その結果、論理アドレスは、図1
におけるData Offset 1にセットされたことになる。
【0038】処理118は、処理116の前、またはこ
れと並行して進めてもよく、処理114による以前の論
理アドレスから分割されたインデックスを用いて、新し
いポインタ・エントリを発見する。処理118は、イン
デックスによって識別された位置において、モジュール
104によって引き出された間接アドレス・ブロックか
ら、新しいポインタ・エントリを引き出す。図1の場
合、ポインタはルート間接アドレス・ブロック12を指
示し、Index 1はポインタ・エントリ32を識別する。
新しいポインタ・エントリ32が処理118によって引
き出された後、処理フローは判断処理106に戻る。
【0039】判断処理106が、ポインタ・エントリ内
のポインタ・データ・ビットがセットされていない(即
ち、ポインタ・データ・ビットが0に等しい)ことを検
出する限り、処理フローはループ120内にとどまる。
このループを通過するパス毎に、処理104は、直前の
パスの間に処理118によって引き出されたばかりのポ
インタ・エントリ内のポインタによって指示されている
間接アドレス・ブロックを引き出す。分割モジュール1
14は、直前のパスにおいて更新された論理アドレス
を、インデックスおよびオフセット値に分割する。図1
の例では、ループ120を通過する2回目のパスがオフ
セット20を、Index 2およびData Offset2に分割す
る。また、2回目のパスにおける論理アドレスは、処理
116によってData Offset 2に更新され、次のポイン
タ・エントリが処理118によって引き出される。次の
ポインタ・エントリは、処理104によって引き出され
たレベル2(L2)における間接アドレス・ブロック内
のIndex 2の位置にある。例えば、ポインタ・エントリ
33が最初のパスの間にルート間接アドレス・ブロック
から引き出されていた場合、処理104は2回目のパス
の間に間接アドレス・ブロック16を引き出し、処理1
18は2回目のパスの間にIndex 2に基づいてポインタ
・エントリ35を引き出すであろう。
【0040】2回目のループ120のパス(例えば、ポ
インタ・エントリ35)の後でも、次のポインタ・エン
トリ内のポインタ・データ・ビットがまだセットされな
い場合、3回目のループ120のパスにおいて、分割処
理114が新しいオフセットをIndex 3およびData Offs
et 3に分割する。3回目のパスにおいて、レベル3(L
3)における間接アドレス・ブロックを引き出し、処理
118によって当該間接アドレス内のポインタ・エント
リを引き出す。最も低いレベルL3におけるこのポイン
タ・エントリは、1にセットされたポインタ・データ・
ビットを必ず有する。したがって、3回目のパスの終了
時に、判断処理106は必ず「Yes」に分岐する。こ
うして、処理108,110は、物理アドレスを、レベ
ル3におけるポインタ・エントリからのポインタに、こ
こではData Offset 3である論理アドレスを加算したも
のにセットする。
【0041】上述の例におけるように、ポインタ・エン
トリの全てが「0」にセットされたポインタ・データ・
ビットを有する場合、従来の間接アドレシングに対する
利点はない。本発明の有用性および大きな利点は、ポイ
ンタ・エントリ内のポインタ・データ・ビットが、最も
低いレベルよりも高いいずれかのレベルを通じたアイノ
ードからのいずれかの時点において「1」にセットされ
た場合に、ポインタおよび残りのオフセットが、図1の
記憶エリア10内のデータ・ブロックを直接アドレスす
ることができる点にある。アイノード内のポインタ・エ
ントリがデータ記憶領域10を指示する場合の例につい
ては、図1を参照して既に論じた。
【0042】図4は、アイノード・ポインタ・エントリ
内のポインタ・データ・ビットが「0」にセットされ
(データを指示していない)、レベル1即ちルート間接
アドレス・ブロック12におけるポインタ・エントリ1
30内のポインタ・データ・ビット130Aが1にセッ
トされている(データを指示している)場合の例であ
る。ポインタ・エントリ130は、Index 1を、アイノ
ードからのポインタと結合することによって、位置が突
き止められる。ポインタ・エントリ内のポインタ130
Bは、データ記憶エリア10内の開始アドレス132を
指示する。ファイル内のデータは、開始アドレス132
にData Offset 1を加算したものに等しい物理アドレス
において発見される。この例では、間接アドレシングの
レベルL2,L3はバイパスされている。
【0043】図5は、ポインタ・データ・ビットが、レ
ベル2におけるポインタ・エントリ134までセットさ
れない場合の例である。ここでは、図3のループ120
を2回通過する必要がある。ループ120を通過する2
回目のパスの間、Index 2はレベル1のルート間接アド
レス・ブロック12におけるポインタ・エントリ136
からのポインタ136Bと共に用いられ、レベル2にお
けるポインタ・エントリ134を発見する。Data Offse
t 2は、レベル2における間接アドレス・ブロック13
8のポインタ・エントリ134における、ポインタ13
4Bと共に用いられ、データ記憶エリア10内のデータ
開始アドレスを直接指示する。ファイル内のデータ位置
は、開始アドレス140にData Offset 2を加算したも
のに等しい、物理アドレスにおいて発見される。この例
では、間接アドレシングのレベルL3はバイパスされて
いる。
【0044】図4および図5のいずれにおいても、メタ
データのためのデータ記憶領域の節約、およびデータ・
ブロック・エリアに到達する際の時間の節約を実現し
た。ポインタ・データ・ビットを使用することができな
い場合、アドレシングの3つの間接レベル全てを用い、
好適実施例は、可変オフセット・アドレシングにおいて
ポインタ・データ・ビットがない場合と同様効率的に動
作する。したがって、本発明の改良間接アドレシング
は、間接アドレシングの最適化を可能とし、最適化が不
可能な場合でも間接アドレシングには悪影響を及ぼすこ
とはない。
【0045】以上、本発明の好適実施例を参照しなが
ら、特定的に本発明を示しかつ説明したが、本発明の精
神および範囲から逸脱することなく、その形態および詳
細には様々な他の変更も可能であることは、当業者には
理解されよう。
【図面の簡単な説明】
【図1】本発明の好適実施例による、改良間接アドレシ
ングの構造を示す、アドレス・データ・フロー図。
【図2】サーバおよび多数のクライアントが通信ネット
ワーク内に接続され、データのアドレシングを行う場合
にサーバおよびクライアントが本発明の論理処理を実行
することができる分散処理コンピュータ・システムを示
す図。
【図3】本発明の好適実施例による、ファイル・オフセ
ット・アドレスを物理アドレスに変換する論理処理の動
作フローを示す図。
【図4】改良間接アドレスが、間接アドレス・ブロック
の最も高いレベルからのデータ・ブロックを指示する場
合のアドレス・データの流れを示す図。
【図5】改良間接アドレスが、中間レベルの間接アドレ
ス・ブロックからのデータ・ブロックを指示する場合の
アドレス・データの流れを示す図。
【符号の説明】
10 記憶装置エリア 12 間接アドレス・ブロック 14,16,18,22,24,26 間接アドレス
・ブロック 20 オフセット 28,30,32 ポインタ・エントリ 28A,30A,32A ポインタ 28B,30B,32B ポインタ・データ・ビット 34 開始アドレス
───────────────────────────────────────────────────── フロントページの続き (71)出願人 597004720 2550 Garcia Avenue,MS PAL1−521,Mountain V iew,California 94043− 1100,United States of America

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 ファイル・システムにおいてファイルの
    論理アドレスを物理アドレスに変換する方法であって、
    該ファイル・システムは、ポインタ・エントリを備えた
    間接アドレス・ブロックを有し、前記方法は、 (a)第1ポインタ・エントリを引き出すステップであ
    って、該ポインタ・エントリはポインタとポインタ・デ
    ータ・インディケータとを有し、該ポインタ・データ・
    インディケータは、前記ポインタが前記データ記憶エリ
    ア内の物理アドレスを指示する場合に第1状態を示し、
    前記ポインタがより低いレベルの間接アドレス・ブロッ
    クを指示する場合第2状態を示すステップと、 (b)前記ポインタ・データ・インディケータが前記第
    1状態にあるのか、または前記第2状態にあるのかを検
    出するステップと、 (c)前記ポインタ・データ・インディケータが前記第
    1状態にある場合、前記ポインタと前記論理アドレスを
    結合して物理アドレスをセットするステップと、 (d)前記ポインタ・データ・インディケータが前記第
    2状態にある場合、前記論理アドレスをインデックスと
    オフセットとに分割し、前記論理アドレスを前記オフセ
    ットに更新するステップと、 (e)前記ポインタ・データ・インディケータが前記第
    2状態にある場合、現ポインタによって指示される指定
    間接アドレス・ブロック内にあり、かつステップ(d)
    からの前記インデックスによって識別される前記指定間
    接アドレス・ブロック内の位置にある次のポインタ・エ
    ントリを引き出すステップと、 (f)前記物理アドレスがステップ(c)によってセッ
    トされるまで、ステップ(b)ないしステップ(e)を
    繰り返すステップと、から成ることを特徴とする方法。
  2. 【請求項2】 請求項1記載の方法において、前記第1
    ポインタ・エントリはファイル制御ブロックからのもの
    であることを特徴とする方法。
  3. 【請求項3】 請求項1記載の方法において、前記ポイ
    ンタ・データ・インディケータはポインタ・データ・ビ
    ットであることを特徴とする方法。
  4. 【請求項4】 請求項1記載の方法であって、更に、 (g)ステップ(c)によってセットされた前記物理ア
    ドレスにおけるデータ・ブロックを引き出すステップを
    含むことを特徴とする方法。
  5. 【請求項5】 請求項1記載の方法において、ステップ
    (e)は、 (h)前記指定間接アドレス・ブロックの、現ポインタ
    によって指定される開始アドレスを突き止めるステップ
    と、 (i)前記インデックスを前記現ポインタからの開始ア
    ドレスと結合し、前記インデックスによって識別された
    前記指定間接アドレス・ブロック内の位置にある次のポ
    インタ・エントリを引き出すステップと、から成ること
    を特徴とする方法。
  6. 【請求項6】 請求項5記載の方法において、ステップ
    (c)は、 (j)データ記憶領域の、現ポインタによって指定され
    るデータ開始アドレスを突き止めるステップと、 (k)前記論理アドレスを前記現ポインタからのデータ
    開始アドレスに加算し、前記データ記憶エリア内のデー
    タ・ブロックに対する物理アドレスをセットするステッ
    プと、から成ることを特徴とする方法。
  7. 【請求項7】 間接アドレス・ファイルシステムにおけ
    るファイルに対する論理アドレスおよびポインタ・エン
    トリを物理アドレスに変換する装置であって、前記ファ
    イル・システムは、メタデータ記憶エリアに複数のレベ
    ルの間接アドレシングを有し、前記装置は、 現ポインタ・エントリ内のポインタ・フラグを検査する
    判断モジュールであって、該ポインタ・エントリはポイ
    ンタと、該ポインタがデータ記憶エリアまたは前記メタ
    記憶エリアのどちらを指示するのかを識別する前記ポイ
    ンタ・フラグとを有し、前記ポインタがデータ・ポイン
    タまたはメタデータ・ポインタであることを示す前記判
    断モジュールと、 前記ポインタがデータ・ポインタであることを示す前記
    判断モジュールに応答し、前記データ・ポインタを前記
    論理アドレスと結合し物理アドレスを発生するセット・
    モジュールと、 前記ポインタがメタデータ・ポインタであることを示す
    前記判断モジュールに応答し、前記論理アドレスをイン
    デックス値としての第1部分と、オフセット値としての
    残りの部分とに分割する分割モジュールと、 前記論理アドレスを、前記分割モジュールからの前記オ
    フセット値にセットする更新モジュールと、 前記メタデータ・ポインタを前記インデックス値と結合
    して次のポインタ・エントリを得て、該次のポインタ・
    エントリを前記判断モジュールに送る引き出しモジュー
    ルと、から成り、前記ポインタがデータ・ポインタまた
    はメタデータ・ポインタのどちらであるかを、前記次の
    ポインタ・エントリ内のポインタ・フラグが示すのにつ
    いて検査を行い、前記セット・モジュールが物理アドレ
    スを発生するまで、前記モジュールの全てがポインタ・
    エントリを処理することを特徴とする装置。
  8. 【請求項8】 請求項7記載の装置において、前記第1
    ポインタ・エントリはファイル制御ブロックによって与
    えられることを特徴とする装置。
  9. 【請求項9】 請求項7記載の装置であって、更に、前
    記セット・モジュールからの物理アドレスに応答し、該
    物理アドレスにおけるデータ・ブロックにアクセスする
    データ・ブロック・アクセス・モジュールを含むことを
    特徴とする装置。
  10. 【請求項10】 請求項7記載の装置において、 各メタデータ・ポインタは、前記複数のレベルの間接ア
    ドレシングにおける次の連続レベルの間接アドレシング
    を指示し、 各データ・ポインタは、前記データ記憶エリアを指示す
    ることにより、データ・ポインタを含むポインタ・エン
    トリを有するレベルから最後の間接アドレシング・レベ
    ルまでの全レベルの間接アドレシングをバイパスする、
    ことを特徴とする装置。
  11. 【請求項11】 請求項7記載の装置において、 前記メタデータ・ポインタは、間接アドレス・ブロック
    に対して、ブロック開始アドレスを指示し、 前記引き出しモジュールは、前記インデックス値を前記
    ブロック開始アドレスに加算し、次のポインタ・エント
    リの位置を決定する、ことを特徴とする装置。
  12. 【請求項12】 請求項11記載の装置において、 前記データ・ポインタは、前記データ記憶アリアにおけ
    るデータ開始アドレスを指示し、 前記セット・モジュールは、前記論理アドレスを前記デ
    ータ開始アドレスに加算し、前記物理アドレスを発生す
    る、ことを特徴とする装置。
  13. 【請求項13】 計算機システムによって読み取り可能
    であり、ファイル・システムにおいてファイルの論理ア
    ドレスを物理アドレスに変換するコンピュータ・プロセ
    スを実行するための命令のコンピュータ・プログラムを
    エンコードした、コンピュータ・プログラム記憶媒体で
    あって、該ファイル・システムは、ポインタ・エントリ
    を備えた間接アドレス・ブロックを有し、前記コンピュ
    ータ・プロセスは、 (a)第1ポインタ・エントリを引き出すステップであ
    って、該ポインタ・エントリはポインタとポインタ・デ
    ータ・インディケータとを有し、該ポインタ・データ・
    インディケータは、前記ポインタが前記データ記憶エリ
    ア内の物理アドレスを指示する場合に第1状態を示し、
    前記ポインタがより低いレベルの間接アドレス・ブロッ
    クを指示する場合第2状態を示すステップと、 (b)前記ポインタ・データ・インディケータが前記第
    1状態にあるのか、または前記第2状態にあるのかを検
    出するステップと、 (c)前記ポインタ・データ・インディケータが前記第
    1状態にある場合、前記ポインタと前記論理アドレスを
    結合して物理アドレスをセットするステップと、 (d)前記ポインタ・データ・インディケータが前記第
    2状態にある場合、前記論理アドレスをインデックスと
    オフセットとに分割し、前記論理アドレスを前記オフセ
    ットに更新するステップと、 (e)前記ポインタ・データ・インディケータが前記第
    2状態にある場合、現ポインタによって指示される指定
    間接アドレス・ブロック内にあり、かつステップ(d)
    からの前記インデックスによって識別される前記指定間
    接アドレス・ブロック内の位置にある次のポインタ・エ
    ントリを引き出すステップと、 (f)前記物理アドレスがステップ(c)によってセッ
    トされるまで、ステップ(b)ないしステップ(e)を
    繰り返すステップと、から成ることを特徴とするコンピ
    ュータ・プログラム記憶媒体。
  14. 【請求項14】 請求項13記載のコンピュータ・プロ
    グラム記憶媒体であって、前記コンピュータ・プログラ
    ムにおいて、前記第1ポインタ・エントリはファイル制
    御ブロックからのものであることを特徴とするコンピュ
    ータ・プログラム記憶媒体。
  15. 【請求項15】 請求項13記載のコンピュータ・プロ
    グラム記憶媒体であって、前記コンピュータ・プログラ
    ムにおいて、ステップ(e)は、 (g)前記指定間接アドレス・ブロックの、現ポインタ
    によって指定される開始アドレスを突き止めるステップ
    と、 (h)前記インデックスを前記現ポインタからの開始ア
    ドレスと結合し、前記インデックスによって識別された
    前記指定間接アドレス・ブロック内の位置にある次のポ
    インタ・エントリを引き出すステップと、から成ること
    を特徴とするコンピュータ・プログラム記憶媒体。
  16. 【請求項16】 請求項13記載のコンピュータ・プロ
    グラム記憶媒体であって、前記コンピュータ・プログラ
    ムにおいて、ステップ(c)は、 (i)データ記憶領域の、現ポインタによって指定され
    るデータ開始アドレスを突き止めるステップと、 (j)前記論理アドレスを前記現ポインタからのデータ
    開始アドレスに加算し、前記データ記憶エリア内のデー
    タ・ブロックに対する物理アドレスをセットするステッ
    プと、から成ることを特徴とするコンピュータ・プログ
    ラム記憶媒体。
  17. 【請求項17】 第1計算機システムから第2計算機シ
    ステムにダウンロードされるコンピュータ・プログラム
    を、送信中に、格納するコンピュータ・プログラム伝送
    媒体であって、前記コンピュータ・プログラム伝送媒体
    は、間接アドレス・ファイル・システムにおけるファイ
    ルに対する論理アドレスおよびポインタ・エントリを物
    理アドレスに変換するコンピュータ・プロセスを実行す
    る命令のコンピュータ・プログラムをエンコードし、前
    記ファイル・システムは、メタデータ記憶エリア内に複
    数のレベルの間接アドレシングを有し、前記コンピュー
    タ・プロセスは、 現ポインタ・エントリ内のポインタ・フラグを検査する
    ステップであって、該ポインタ・エントリは、ポインタ
    と、該ポインタがデータ記憶エリアまたはメタデータ記
    憶エリアのどちらを指示するのかを識別する前記ポイン
    タ・フラグとを有し、前記ポインタがデータ・ポインタ
    またはメタデータ・ポインタであることを示す前記検査
    ステップと、 前記ポインタがデータ・ポインタであることを示す前記
    検査ステップに応答して、前記データ・ポインタを前記
    論理アドレスと結合し、物理アドレスを発生する第1結
    合ステップと、 前記ポインタがメタデータ・ポインタであることを示す
    前記検査ステップに応答して、前記論理アドレスを、イ
    ンデックス値としての第1部分と、オフセット値として
    の残りの部分とに分割するステップと、 前記論理アドレスを前記オフセット値に更新するステッ
    プと、 前記メタデータ・ポインタを前記インデックス値と結合
    し、次のポインタ・エントリを得る第2結合ステップ
    と、 前記次のポインタ・エントリを前記検査ステップに戻
    し、前記ポインタがデータ・ポインタまたはメタデータ
    ・ポインタのどちらであるかを、前記次のポインタ・エ
    ントリ内の前記ポインタ・フラグが示すかについて検査
    を行うことにより、前記第1結合ステップが物理アドレ
    スを発生するまで、前記ステップの全てがポインタ・エ
    ントリを処理し続けるステップと、から成ることを特徴
    とするコンピュータ・プログラム伝送媒体。
  18. 【請求項18】 請求項17記載のコンピュータ・プロ
    グラム伝送媒体において、前記コンピュータ・プログラ
    ムにおける前記コンピュータ・プロセスは、更に、 前記物理アドレスにおけるデータ・ブロックにアクセス
    するステップを含むことを特徴とするコンピュータ・プ
    ログラム伝送媒体。
  19. 【請求項19】 請求項17記載のコンピュータ・プロ
    グラム伝送媒体の前記コンピュータ・プログラムにおい
    て、 各メタデータ・ポインタは、前記複数のレベルの間接ア
    ドレシングにおける次の連続レベルの間接アドレシング
    を指示し、 各データ・ポインタは、前記データ記憶エリアを指示す
    ることにより、データ・ポインタを含むポインタ・エン
    トリを有するレベルから最後の間接アドレシング・レベ
    ルまでの全レベルの間接アドレシングを迂回する、こと
    を特徴とするコンピュータ・プログラム伝送媒体。
  20. 【請求項20】 請求項19記載のコンピュータ・プロ
    グラム伝送媒体の前記コンピュータ・プログラムにおい
    て、 前記メタデータ・ポインタは、間接アドレス・ブロック
    に対して、ブロック開始アドレスを指示し、 前記第2結合ステップは、前記インデックス値を前記ブ
    ロック開始アドレスに加算し、次のポインタ・エントリ
    の位置を決定する、ことを特徴とするコンピュータ・プ
    ログラム伝送媒体。
  21. 【請求項21】 請求項20記載のコンピュータ・プロ
    グラム伝送媒体の前記コンピュータ・プログラムにおい
    て、 前記データ・ポインタは、前記データ記憶エリアにおけ
    るデータ開始アドレスを指示し、 前記第1結合ステップは、前記論理アドレスを前記デー
    タ開始アドレスに加算し、前記物理アドレスを発生す
    る、ことを特徴とするコンピュータ・プログラム伝送媒
    体。
JP9354773A 1996-12-30 1997-12-24 ファイル・システムの間接アドレシング方法及び装置 Pending JPH10198587A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/777,415 US5991862A (en) 1996-12-30 1996-12-30 Modified indirect addressing for file system
US777415 1996-12-30

Publications (1)

Publication Number Publication Date
JPH10198587A true JPH10198587A (ja) 1998-07-31

Family

ID=25110201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9354773A Pending JPH10198587A (ja) 1996-12-30 1997-12-24 ファイル・システムの間接アドレシング方法及び装置

Country Status (4)

Country Link
US (1) US5991862A (ja)
EP (1) EP0851366B1 (ja)
JP (1) JPH10198587A (ja)
DE (1) DE69701786T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353115A (ja) * 1999-04-28 2000-12-19 Emc Corp 多用途な間接指定又は複数ボリュームを有するエクステント・ベース・ファイルシステム
JP2001184303A (ja) * 1999-12-22 2001-07-06 Nec Corp 可変長情報データアクセス方式
JP2010108398A (ja) * 2008-10-31 2010-05-13 Aisin Aw Co Ltd データリスト読み書き装置及びその方法
WO2010100813A1 (ja) * 2009-03-04 2010-09-10 日本電気株式会社 ストレージシステム
JP2014071905A (ja) * 2012-09-28 2014-04-21 Samsung Electronics Co Ltd コンピュータシステム及びコンピュータシステムのデータ管理方法

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353837B1 (en) * 1998-06-30 2002-03-05 Emc Corporation Method and apparatus providing mass storage access from systems using different meta-data formats
US6895418B1 (en) * 1999-04-28 2005-05-17 Emc Corporation Versatile indirection in an extent based file system
US6654772B1 (en) * 1999-04-28 2003-11-25 Emc Corporation Multi-volume extent based file system
US6850962B1 (en) 1999-05-07 2005-02-01 Commercequest, Inc. File transfer system and method
US6912537B2 (en) 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
US6910115B2 (en) * 2001-10-31 2005-06-21 Hewlett-Packard Development Company, L.P. System and method for configuring a removable storage medium
US20030145199A1 (en) * 2002-01-31 2003-07-31 Miller Layne B. Data pool with validity detection
US7146476B2 (en) * 2003-08-05 2006-12-05 Sepaton, Inc. Emulated storage system
US20050193235A1 (en) * 2003-08-05 2005-09-01 Miklos Sandorfi Emulated storage system
US8938595B2 (en) * 2003-08-05 2015-01-20 Sepaton, Inc. Emulated storage system
US20050108486A1 (en) * 2003-08-05 2005-05-19 Miklos Sandorfi Emulated storage system supporting instant volume restore
US8898339B2 (en) * 2003-12-12 2014-11-25 Napatech A/S Method of transferring data implying a network analyser card
US7526622B1 (en) * 2004-05-26 2009-04-28 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using checksums and replication
US7284101B2 (en) * 2004-08-04 2007-10-16 Datalight, Inc. Reliable file system and method of providing the same
US7765244B2 (en) * 2006-06-30 2010-07-27 Broadcom Corporation Fast and efficient method for deleting very large files from a filesystem
US7660837B2 (en) * 2006-06-30 2010-02-09 Broadcom Corporation Method for automatically managing disk fragmentation
KR100899147B1 (ko) * 2007-05-04 2009-05-27 한양대학교 산학협력단 메타 데이터 저장 방법 및 메타 데이터 저장 시스템
US8224831B2 (en) * 2008-02-27 2012-07-17 Dell Products L.P. Virtualization of metadata for file optimization
US8219534B2 (en) * 2008-02-27 2012-07-10 Dell Products L.P. Multiple file compaction for network attached storage
US9678879B2 (en) * 2008-05-29 2017-06-13 Red Hat, Inc. Set partitioning for encoding file system allocation metadata
US8572036B2 (en) 2008-12-18 2013-10-29 Datalight, Incorporated Method and apparatus for fault-tolerant memory management
US8190850B1 (en) * 2009-10-01 2012-05-29 Emc Corporation Virtual block mapping for relocating compressed and/or encrypted file data block blocks
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9542401B1 (en) 2012-03-30 2017-01-10 EMC IP Holding Company LLC Using extents of indirect blocks for file mapping of large files
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9372789B2 (en) * 2014-05-30 2016-06-21 Netapp, Inc. Log-structured filed system with file branching
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
CN106231252B (zh) * 2016-07-29 2019-04-05 银江股份有限公司 一种大规模视频监控存储方法
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
KR20230101394A (ko) 2021-12-29 2023-07-06 삼성전자주식회사 간접 액세스 모듈을 포함하는 스토리지 장치, 이의 동작하는 방법, 및 이를 포함하는 스토리지 시스템의 동작하는 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914577A (en) * 1987-07-16 1990-04-03 Icon International, Inc. Dynamic memory management system and method
US5696925A (en) * 1992-02-25 1997-12-09 Hyundai Electronics Industries, Co., Ltd. Memory management unit with address translation function
US5465337A (en) * 1992-08-13 1995-11-07 Sun Microsystems, Inc. Method and apparatus for a memory management unit supporting multiple page sizes
US5732405A (en) * 1992-10-02 1998-03-24 Motorola, Inc. Method and apparatus for performing a cache operation in a data processing system
US5586283A (en) * 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000353115A (ja) * 1999-04-28 2000-12-19 Emc Corp 多用途な間接指定又は複数ボリュームを有するエクステント・ベース・ファイルシステム
JP2001184303A (ja) * 1999-12-22 2001-07-06 Nec Corp 可変長情報データアクセス方式
JP2010108398A (ja) * 2008-10-31 2010-05-13 Aisin Aw Co Ltd データリスト読み書き装置及びその方法
WO2010100813A1 (ja) * 2009-03-04 2010-09-10 日本電気株式会社 ストレージシステム
JP2010204970A (ja) * 2009-03-04 2010-09-16 Nec Corp ストレージシステム
US8843445B2 (en) 2009-03-04 2014-09-23 Nec Corporation Storage system for storing data in a plurality of storage devices and method for same
JP2014071905A (ja) * 2012-09-28 2014-04-21 Samsung Electronics Co Ltd コンピュータシステム及びコンピュータシステムのデータ管理方法

Also Published As

Publication number Publication date
DE69701786T2 (de) 2000-12-28
DE69701786D1 (de) 2000-05-31
US5991862A (en) 1999-11-23
EP0851366A1 (en) 1998-07-01
EP0851366B1 (en) 2000-04-26

Similar Documents

Publication Publication Date Title
JPH10198587A (ja) ファイル・システムの間接アドレシング方法及び装置
EP0851355B1 (en) Cache-efficient object loader
US5652865A (en) Linked file storage in a computer memory system
JP2708331B2 (ja) ファイル装置およびデータファイルアクセス方法
US5754844A (en) Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
US7680836B2 (en) Systems and methods for a snapshot of data
US7953704B2 (en) Systems and methods for a snapshot of data
US8356013B2 (en) Systems and methods for a snapshot of data
US7680842B2 (en) Systems and methods for a snapshot of data
US6275910B1 (en) Storage device and method for data sharing
US6374266B1 (en) Method and apparatus for storing information in a data processing system
KR940005775B1 (ko) 디스크 파일 개방 방법
US6850929B2 (en) System and method for managing file system extended attributes
US6697795B2 (en) Virtual file system for dynamically-generated web pages
JPH1069408A (ja) ホールを利用するファイルシステムレベルでのデータ格納方法及びデータ格納装置
US6604170B1 (en) Information processing apparatus and method, and computer readable memory
JP2007527074A (ja) ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム及び方法
EP1091295B1 (en) Data management system using a plurality of data operation modules
GB2439576A (en) Storing related small data fragments in the same block
GB2439577A (en) Storing data in streams of varying size
US6928466B1 (en) Method and system for identifying memory component identifiers associated with data
US6606631B1 (en) IMS on-line reorganization utility
JPH0358249A (ja) フアイルのアクセス方法
US6625614B1 (en) Implementation for efficient access of extended attribute data
JP3260706B2 (ja) パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム