JP2005506599A - 設定romの読み出しに基づくディレクトリ構造 - Google Patents
設定romの読み出しに基づくディレクトリ構造 Download PDFInfo
- Publication number
- JP2005506599A JP2005506599A JP2002572017A JP2002572017A JP2005506599A JP 2005506599 A JP2005506599 A JP 2005506599A JP 2002572017 A JP2002572017 A JP 2002572017A JP 2002572017 A JP2002572017 A JP 2002572017A JP 2005506599 A JP2005506599 A JP 2005506599A
- Authority
- JP
- Japan
- Prior art keywords
- directory
- reading
- program code
- stack
- program product
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 23
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
- Small-Scale Networks (AREA)
Abstract
シリアルバスデバイスにおいて設定ROMを読み出す方法は、ディレクトリ構造で構成されたROMの一部のみが読み出される。典型的には、設定ROMはIEEE1212および/または1394規格に準拠し、IEEE1394バスを使用する。設定ROMから読み出された情報に基づいて、接続中のコンピュータは、デバイスと通信するために利用する適切なデバイスドライバを決定し得る。また、本発明のデバイスドライバを未知のシリアルバスデバイスへ結び付ける方法は、バスを介して、未知のシリアルバスデバイス内の設定ROMのルートディレクトリを読み出し、ルートディレクトリにリンクされたディレクトリツリー構造に従って、バスを介して設定ROMの一部を読み出し、設定ROMの読み出された一部に基づいて、シリアルバスデバイスと結び付けるためのデバイスドライバを選択する。
【選択図】図2
【選択図】図2
Description
【技術分野】
【0001】
本発明は、一般的に、コンピュータに接続されたデバイスの設定に関し、より詳細には、シリアルバスデバイスにおける設定リードオンリーメモリを読み出すための技術に関する。
(用語)
本明細書と添付の特許請求の範囲とにおいて、別の文脈で要求されない限り、以下の用語は以下に示すような意味を有する。
ROM リードオンリーメモリ
カドレット(quadlet) 連続する4バイト
【背景技術】
【0002】
パーソナルコンピュータがシリアル接続バスを介して他のデバイスと接続されることは一般的である。コンピュータは、デバイスドライバプログラムを利用して、シリアルバスデバイスと通信する。IEEE1212準拠バスのようないくつかのシリアルバスは、それ自身が設定ROMを有するデバイスを利用する。新しいデバイスが接続されると、コンピュータは、シリアルバスを利用して、新しいデバイス内の設定ROMを読み出す。この情報は、例えば、新しいデバイスにどのドライバを利用するべきかを決定するために必要とされる。このようなことは、例えば、リセット信号が送信された後に発生し得る。
【0003】
IEEE1212はシリアルバスデバイスによって利用され得る設定ROMを定義し、ファイヤワイヤ(Firewire)としても知られるIEEE1394−1995は、IEEE1212をさらに改良したものである。IEEE1212およびIEEE1394〜1995の内容は、本明細書中で参考として援用される。IEEE1394−1995準拠デバイスにおいて、設定ROMのサイズは1024バイトであり、設定ROMは、一度に4バイト(カドレットと呼ばれる)だけ読み出され得る。従って、新しく取り付けられたデバイスの設定ROM全体を読み出すには、単純には、256回のバスのトランザクションが必要となる。
【発明の開示】
【課題を解決するための手段】
【0004】
(本発明の要旨)
本発明の実施形態は、ディレクトリツリー構造に従って、IEEE1212によって定義されるようなディレクトリツリー構造を有する設定ROMの読み出しに基づく。本アプローチは、設定ROMの全てを読み出すために必要なバストランザクションの回数を低減し、従って、システムのスピードと効率を増加させる。1つの特定の実施形態では、設定ROMは、IEEE1394バスを利用して、IEEE1212および/または1394規格に準拠する。設定ROMの情報は、例えば、シリアルバスデバイスに、対応するデバイスドライバを結びつけるために利用され得る。
【0005】
1つの実施形態は、ディレクトリスタックの保持に基づく。最初に、設定ROMのルートディレクトリは、現在のディレクトリとして設定される。第二のステップで、現在のディレクトリにおける全てのカドレットが読み出される。第三のステップで、間接エントリのために現在のディレクトリがスキャンされ、1つ見つかれば、スキャンした現在のディレクトリはディレクトリスタックにプッシュされ、間接エントリを現在のディレクトリにする。次いで、ステップ2とステップ3が繰り返される。ステップ3で間接エントリが見つからなければ、ステップ4で、ディレクトリスタックがチェックされる。ディレクトリスタックが空でなければ、トップアイテムがポップされ、アルゴリズムは、ポップしたアイテムと関連するスキャン位置で、ステップ3に戻る。
【0006】
本発明の上述した特徴は、添付の図面を参照して、以下の詳細な説明を参照することによって、より容易に理解される。
【発明を実施するための最良の形態】
【0007】
(特定の実施形態の詳細な説明)
前述のとおり、シリアルデバイスにドライバを結びつけるとき、デバイス設定ROM内の全てのビットが読み出される。このことは、設定ROMの全てのビットが必要とされるデータであることを表わしていると想定される。しかし実際には、設定ROMのいくつかの部分は、全く使用され得ない。そのため、本発明の代表する実施形態は、シリアルバスデバイスにドライバを結びつけるために必要とされるデータを含む設定ROMの一部のみを読み出す。設定ROMの空および不必要な部分は読み出さない。
【0008】
図1は、シリアルポートデバイスのための典型的な設定ROMの論理構造を示す。ROMのサイズは1024バイトであり、IEEE規格1212に準拠するように連続する4バイトのカドレットで構成されている。図1に示されるROMの左側に沿って、カドレットの0〜255の番号が示されている。図1では、ルートディレクトリはカドレット5から始まり、カドレット9まで続く(カドレット0〜4は、ROMディレクトリツリー構成の一部ではない情報を含む)。カドレット5〜7は、ルートディレクトリの情報を含む。カドレット8は、リーフ1へのポインタを含み、これは、ルートディレクトリにおけるリーフ1の「間接エントリ」として考えられ得る。同様に、カドレット9は、カドレット14〜18にわたるユニットディレクトリのための間接エントリを形成するポインタを含む。ユニットディレクトリのカドレット18はまた、リーフ2への間接エントリポインタを含む。リーフ1はカドレット23〜31を含み、リーフ2はカドレット36〜48を含む。図1に示されるROM構造は、カドレット10〜13、19〜22、および、32〜35の使用されていないブロックを含む。
【0009】
本発明の代表的な実施形態は、ツリー構造に従って、設定ROMのディレクトリツリー構造内の情報を読み出す。この秩序だった読み出しは、カドレット10〜13、19〜22および32〜35から図1に図示されるようなカドレットギャップをスキップさせる。このことによって、設定ROMを読むために必要とされる時間、および、バストランザクションの数を減らすことができる。
【0010】
図2は、本発明のひとつの実施形態に従う設定ROMの読み出しにおける、論理シーケンスを示す。まず、ステップ20で、ルートディレクトリは現在のディレクトリとして設定される。そして、ステップ21で、現在のディレクトリ内のカドレットが全て読み出される。さらに、ステップ22で、現在のディレクトリ内の任意のカドレットが間接エントリポインタであるかどうかがチェックされる。カドレットが間接エントリポインタであれば、ステップ23で、現在のディレクトリの位置が、ディレクトリスタックにプッシュされる。次いで、ステップ24で、間接エントリは現在のディレクトリにされ、ステップ21と22とが繰り返される。ステップ22において間接エントリポインタがなければ、ステップ25で、ディレクトリスタックはチェックされて、空であるかどうかが調べられる。ディレクトリスタックが空でなければ、スタックからトップアイテムがポップされ、アルゴリズムは前回の現在のディレクトリの前回の位置へ戻り、ステップ22〜25が繰り返される。ステップ25において、ディレクトリスタックが空であれば、アルゴリズムは終了し、設定ROMのディレクトリツリー構造全ては読み出される。
【0011】
図3は、図2の論理シーケンスに従って図1に示されるような設定ROMを読み出す場合の様々なときにおける設定スタックの状態を示す。ステップ20においてルートディレクトリが現在のディレクトリとして最初に設定される場合、ディレクトリスタックは図3(a)に示されるように空である。次に、ステップ21でカドレット5〜9が読み出される。ステップ22で、ルートディレクトリは任意の間接エントリポインタについてチェックされる。カドレット8には、カドレット23およびリーフ1への間接エントリポインタが存在する。従って、現在のディレクトリ位置は、ステップ23および図3(b)において、ディレクトリスタックへプッシュされる。その位置は、図3(b)で示されるように、次のカドレットインジケータによって指し示され得る。次のカドレットインジケータは、この場合、カドレット9を指す。次に、ステップ24で、リーフ1を現在のディレクトリにし、ステップ21で、リーフ1のカドレット23〜31を読み出す。リーフ1は間接エントリポインタを持たないので、ステップ22は、「ノー」の方のステップ25に進む。ステップ25は、空であるかどうかを調べるためにディレクトリスタックがチェックされる。スタックは図3(b)のとおりであり、空でない。従って、ステップ26で、ディレクトリスタックからトップをポップし、アルゴリズムは、次のより高いディレクトリ(この場合ルートディレクトリである)における次の位置へ戻る。
【0012】
ここでは、ステップ22で、ルートディレクトリにおける前回の位置から、任意のさらなる間接エントリポインタが探され続ける。カドレット9には、カドレット14およびユニットディレクトリへの間接エントリポインタが存在する。従って、ステップ22は「イエス」であり、ステップ23へ進む。ステップ23は、図3(c)に示されるように、現在のディレクトリ位置をディレクトリスタックへプッシュする。ステップ24では、ユニットディレクトリが現在のディレクトリになる。次に、ステップ21では、ユニットディレクトリのカドレット14〜18が読み出される。次に、ステップ22で、任意の間接エントリポインタについて、ユニットディレクトリがチェックされる。カドレット18は、カドレット36およびリーフ2への間接エントリポインタを含む。従って、ステップ23では、図3(d)に示されるように、現在のディレクトリ位置はディレクトリスタックへプッシュされる。そして、ステップ24で、リーフ2が現在のディレクトリになる。次いで、ステップ21では、リーフ2のカドレット36〜48が読み出される。ステップ22で、リーフ2の中から間接エントリポインタが見つからず、ステップ25で、ディレクトリスタックが空であるかどうかを調べるためにチェックされる。図3(d)のとおり、ディレクトリスタックは空ではない。従って、ステップ26では、スタックからトップがポップされ、アルゴリズムは、次のより高いディレクトリ(この場合はユニットディレクトリである)における次の位置へ戻る。ここでは、ディレクトリスタックは、もう一度、図3(c)に示されるようになる。
【0013】
ステップ22は、ユニットディレクトリにおける前回の位置から続くが、もう間接エントリポインタが見つからないので、「ノー」の方のステップ25に進む。ディレクトリスタックは空でないので(図3(c)参照)、ステップ26で、スタックからトップがポップされ、アルゴリズムは、ステップ22のために、次のより高いディレクトリにおける次の位置へ戻る。図3(a)に示されるように、これでディレクトリスタックは空になる。ここで、ルートディレクトリはもう間接エントリポインタを持たないので、ステップ22からステップ25へ進む。ステップ25では、ディレクトリスタックが空であることがわかり、アルゴリズムは終了する。カドレット10〜13、19〜22、および、32〜35のカドレットギャップがスキップされる一方で、有効な設定ROMの内容の全てが読み出される。
【0014】
シリアルバス上の任意のデバイスは、バス上の新しいデバイスを識別するためにこの方法を実行し得る。1つの特定の実施形態では、バスは、IEEE1394(ファイヤワイヤ(Firewire))バスであってもよい。これまで未知の新しいデバイスからディレクトリツリーの検索が完了すると、検索された情報を基にして、デバイスドライバが選択され得る。デバイスは、設定ROMから入手した情報に従って、既知の新しいデバイスとデバイスドライバを結び付ける。設定ROMの情報がツリー構造を介してルートディレクトリにリンクさえすれば、デバイスドライバは選択される。
【0015】
本発明の実施形態は、任意の従来のコンピュータプログラミング言語で実装され得る。例えば、好ましい実施形態が、手続き型言語(例えば、「C」)またはオブジェクト指向プログラミング言語(例えば「C++」)で実装され得る。本発明の代替の実施形態は、あらかじめプログラムされたハードウェア要素、その他の関係するコンポーネントとして、もしくは、ハードウェアおよびソフトウェアコンポーネントの組み合わせとして、実装され得る。
【0016】
複数の実施形態が、コンピュータシステムとともに利用するためのコンピュータプログラム製品として、実装され得る。そのような実装は、一連のコンピュータ命令を含み得る。その一連のコンピュータ命令は、コンピュータ読み取り可能媒体(例えば、ディスケット、CD−ROM、ROM、もしくは、固定ディスク)のような有体媒体上に固定されるか、もしくは、媒体を超えてネットワークに接続されたコミュニケーションアダプタのようなモデムまたは他のインターフェースデバイスを介してコンピュータシステムへ伝達可能であるかのどちらかである。媒体は、有体媒体(例えば、光もしくはアナログの通信ライン)もしくはワイヤレス技術で実装された媒体(例えば、マイクロ波、赤外線、もしくは他の伝送技術)であり得る。一連のコンピュータ命令は、本システムに関連して、すでに本明細書中に記述された機能性の全て、もしくは、一部分を具体化する。当業者は、そのようなコンピュータ命令が、多くのコンピュータアーキテクチャもしくはオペレーティングシステムとともに利用するために、多くのプログラミング言語で書かれ得ることを認識すべきである。さらに、そのような命令は、半導体、磁気、光学もしくは他のメモリデバイスのような任意メモリデバイスに保存することができ、かつ、光、赤外線、マイクロ波、もしくは、他の伝送技術のような任意の伝送技術を利用して伝送され得る。そのようなコンピュータプログラム製品が、添付の印刷文書または電子文書(例えば、圧縮包装されたソフトウェア)と一緒に取り外し可能媒体として配布されるか、もしくは、コンピュータシステムと一緒に(例えば、システムROMもしくは固定ディスク上に)プレロードされるか、もしくは、サーバまたはネットワークを介した電子掲示板(例えば、インターネットもしくはワールドワイドウェブ)から配布されることが期待される。もちろん本発明のいくらかの実施形態は、ソフトウェア(例えば、コンピュータプログラム製品)およびハードウェアの両方の組み合わせとして実装され得る。本発明のさらに他の実施形態は、完全にハードウェア、もしくは、完全にソフトウェア(例えば、コンピュータプログラム製品)として実装される。
【0017】
本発明の様々な例示的な実施形態が開示されたが、本発明の真の範囲から逸脱することなしに、本発明のいくつかの利点を達成する様々な変更および改変が実施され得ることは当業者にとって明らかである。
【図面の簡単な説明】
【0018】
【図1】図1は、IEEE1394−1995シリアルポートデバイスのための典型的な設定ROMの論理構造を示す。
【図2】図2は、本発明の1つの実施形態に従った、設定ROMの読み出しにおける論理シーケンスを示す。
【図3】図3は、典型的な実施形態に従った、設定ROMを読み出す場合の様々なときにおける設定スタックの状態を示す。
【0001】
本発明は、一般的に、コンピュータに接続されたデバイスの設定に関し、より詳細には、シリアルバスデバイスにおける設定リードオンリーメモリを読み出すための技術に関する。
(用語)
本明細書と添付の特許請求の範囲とにおいて、別の文脈で要求されない限り、以下の用語は以下に示すような意味を有する。
ROM リードオンリーメモリ
カドレット(quadlet) 連続する4バイト
【背景技術】
【0002】
パーソナルコンピュータがシリアル接続バスを介して他のデバイスと接続されることは一般的である。コンピュータは、デバイスドライバプログラムを利用して、シリアルバスデバイスと通信する。IEEE1212準拠バスのようないくつかのシリアルバスは、それ自身が設定ROMを有するデバイスを利用する。新しいデバイスが接続されると、コンピュータは、シリアルバスを利用して、新しいデバイス内の設定ROMを読み出す。この情報は、例えば、新しいデバイスにどのドライバを利用するべきかを決定するために必要とされる。このようなことは、例えば、リセット信号が送信された後に発生し得る。
【0003】
IEEE1212はシリアルバスデバイスによって利用され得る設定ROMを定義し、ファイヤワイヤ(Firewire)としても知られるIEEE1394−1995は、IEEE1212をさらに改良したものである。IEEE1212およびIEEE1394〜1995の内容は、本明細書中で参考として援用される。IEEE1394−1995準拠デバイスにおいて、設定ROMのサイズは1024バイトであり、設定ROMは、一度に4バイト(カドレットと呼ばれる)だけ読み出され得る。従って、新しく取り付けられたデバイスの設定ROM全体を読み出すには、単純には、256回のバスのトランザクションが必要となる。
【発明の開示】
【課題を解決するための手段】
【0004】
(本発明の要旨)
本発明の実施形態は、ディレクトリツリー構造に従って、IEEE1212によって定義されるようなディレクトリツリー構造を有する設定ROMの読み出しに基づく。本アプローチは、設定ROMの全てを読み出すために必要なバストランザクションの回数を低減し、従って、システムのスピードと効率を増加させる。1つの特定の実施形態では、設定ROMは、IEEE1394バスを利用して、IEEE1212および/または1394規格に準拠する。設定ROMの情報は、例えば、シリアルバスデバイスに、対応するデバイスドライバを結びつけるために利用され得る。
【0005】
1つの実施形態は、ディレクトリスタックの保持に基づく。最初に、設定ROMのルートディレクトリは、現在のディレクトリとして設定される。第二のステップで、現在のディレクトリにおける全てのカドレットが読み出される。第三のステップで、間接エントリのために現在のディレクトリがスキャンされ、1つ見つかれば、スキャンした現在のディレクトリはディレクトリスタックにプッシュされ、間接エントリを現在のディレクトリにする。次いで、ステップ2とステップ3が繰り返される。ステップ3で間接エントリが見つからなければ、ステップ4で、ディレクトリスタックがチェックされる。ディレクトリスタックが空でなければ、トップアイテムがポップされ、アルゴリズムは、ポップしたアイテムと関連するスキャン位置で、ステップ3に戻る。
【0006】
本発明の上述した特徴は、添付の図面を参照して、以下の詳細な説明を参照することによって、より容易に理解される。
【発明を実施するための最良の形態】
【0007】
(特定の実施形態の詳細な説明)
前述のとおり、シリアルデバイスにドライバを結びつけるとき、デバイス設定ROM内の全てのビットが読み出される。このことは、設定ROMの全てのビットが必要とされるデータであることを表わしていると想定される。しかし実際には、設定ROMのいくつかの部分は、全く使用され得ない。そのため、本発明の代表する実施形態は、シリアルバスデバイスにドライバを結びつけるために必要とされるデータを含む設定ROMの一部のみを読み出す。設定ROMの空および不必要な部分は読み出さない。
【0008】
図1は、シリアルポートデバイスのための典型的な設定ROMの論理構造を示す。ROMのサイズは1024バイトであり、IEEE規格1212に準拠するように連続する4バイトのカドレットで構成されている。図1に示されるROMの左側に沿って、カドレットの0〜255の番号が示されている。図1では、ルートディレクトリはカドレット5から始まり、カドレット9まで続く(カドレット0〜4は、ROMディレクトリツリー構成の一部ではない情報を含む)。カドレット5〜7は、ルートディレクトリの情報を含む。カドレット8は、リーフ1へのポインタを含み、これは、ルートディレクトリにおけるリーフ1の「間接エントリ」として考えられ得る。同様に、カドレット9は、カドレット14〜18にわたるユニットディレクトリのための間接エントリを形成するポインタを含む。ユニットディレクトリのカドレット18はまた、リーフ2への間接エントリポインタを含む。リーフ1はカドレット23〜31を含み、リーフ2はカドレット36〜48を含む。図1に示されるROM構造は、カドレット10〜13、19〜22、および、32〜35の使用されていないブロックを含む。
【0009】
本発明の代表的な実施形態は、ツリー構造に従って、設定ROMのディレクトリツリー構造内の情報を読み出す。この秩序だった読み出しは、カドレット10〜13、19〜22および32〜35から図1に図示されるようなカドレットギャップをスキップさせる。このことによって、設定ROMを読むために必要とされる時間、および、バストランザクションの数を減らすことができる。
【0010】
図2は、本発明のひとつの実施形態に従う設定ROMの読み出しにおける、論理シーケンスを示す。まず、ステップ20で、ルートディレクトリは現在のディレクトリとして設定される。そして、ステップ21で、現在のディレクトリ内のカドレットが全て読み出される。さらに、ステップ22で、現在のディレクトリ内の任意のカドレットが間接エントリポインタであるかどうかがチェックされる。カドレットが間接エントリポインタであれば、ステップ23で、現在のディレクトリの位置が、ディレクトリスタックにプッシュされる。次いで、ステップ24で、間接エントリは現在のディレクトリにされ、ステップ21と22とが繰り返される。ステップ22において間接エントリポインタがなければ、ステップ25で、ディレクトリスタックはチェックされて、空であるかどうかが調べられる。ディレクトリスタックが空でなければ、スタックからトップアイテムがポップされ、アルゴリズムは前回の現在のディレクトリの前回の位置へ戻り、ステップ22〜25が繰り返される。ステップ25において、ディレクトリスタックが空であれば、アルゴリズムは終了し、設定ROMのディレクトリツリー構造全ては読み出される。
【0011】
図3は、図2の論理シーケンスに従って図1に示されるような設定ROMを読み出す場合の様々なときにおける設定スタックの状態を示す。ステップ20においてルートディレクトリが現在のディレクトリとして最初に設定される場合、ディレクトリスタックは図3(a)に示されるように空である。次に、ステップ21でカドレット5〜9が読み出される。ステップ22で、ルートディレクトリは任意の間接エントリポインタについてチェックされる。カドレット8には、カドレット23およびリーフ1への間接エントリポインタが存在する。従って、現在のディレクトリ位置は、ステップ23および図3(b)において、ディレクトリスタックへプッシュされる。その位置は、図3(b)で示されるように、次のカドレットインジケータによって指し示され得る。次のカドレットインジケータは、この場合、カドレット9を指す。次に、ステップ24で、リーフ1を現在のディレクトリにし、ステップ21で、リーフ1のカドレット23〜31を読み出す。リーフ1は間接エントリポインタを持たないので、ステップ22は、「ノー」の方のステップ25に進む。ステップ25は、空であるかどうかを調べるためにディレクトリスタックがチェックされる。スタックは図3(b)のとおりであり、空でない。従って、ステップ26で、ディレクトリスタックからトップをポップし、アルゴリズムは、次のより高いディレクトリ(この場合ルートディレクトリである)における次の位置へ戻る。
【0012】
ここでは、ステップ22で、ルートディレクトリにおける前回の位置から、任意のさらなる間接エントリポインタが探され続ける。カドレット9には、カドレット14およびユニットディレクトリへの間接エントリポインタが存在する。従って、ステップ22は「イエス」であり、ステップ23へ進む。ステップ23は、図3(c)に示されるように、現在のディレクトリ位置をディレクトリスタックへプッシュする。ステップ24では、ユニットディレクトリが現在のディレクトリになる。次に、ステップ21では、ユニットディレクトリのカドレット14〜18が読み出される。次に、ステップ22で、任意の間接エントリポインタについて、ユニットディレクトリがチェックされる。カドレット18は、カドレット36およびリーフ2への間接エントリポインタを含む。従って、ステップ23では、図3(d)に示されるように、現在のディレクトリ位置はディレクトリスタックへプッシュされる。そして、ステップ24で、リーフ2が現在のディレクトリになる。次いで、ステップ21では、リーフ2のカドレット36〜48が読み出される。ステップ22で、リーフ2の中から間接エントリポインタが見つからず、ステップ25で、ディレクトリスタックが空であるかどうかを調べるためにチェックされる。図3(d)のとおり、ディレクトリスタックは空ではない。従って、ステップ26では、スタックからトップがポップされ、アルゴリズムは、次のより高いディレクトリ(この場合はユニットディレクトリである)における次の位置へ戻る。ここでは、ディレクトリスタックは、もう一度、図3(c)に示されるようになる。
【0013】
ステップ22は、ユニットディレクトリにおける前回の位置から続くが、もう間接エントリポインタが見つからないので、「ノー」の方のステップ25に進む。ディレクトリスタックは空でないので(図3(c)参照)、ステップ26で、スタックからトップがポップされ、アルゴリズムは、ステップ22のために、次のより高いディレクトリにおける次の位置へ戻る。図3(a)に示されるように、これでディレクトリスタックは空になる。ここで、ルートディレクトリはもう間接エントリポインタを持たないので、ステップ22からステップ25へ進む。ステップ25では、ディレクトリスタックが空であることがわかり、アルゴリズムは終了する。カドレット10〜13、19〜22、および、32〜35のカドレットギャップがスキップされる一方で、有効な設定ROMの内容の全てが読み出される。
【0014】
シリアルバス上の任意のデバイスは、バス上の新しいデバイスを識別するためにこの方法を実行し得る。1つの特定の実施形態では、バスは、IEEE1394(ファイヤワイヤ(Firewire))バスであってもよい。これまで未知の新しいデバイスからディレクトリツリーの検索が完了すると、検索された情報を基にして、デバイスドライバが選択され得る。デバイスは、設定ROMから入手した情報に従って、既知の新しいデバイスとデバイスドライバを結び付ける。設定ROMの情報がツリー構造を介してルートディレクトリにリンクさえすれば、デバイスドライバは選択される。
【0015】
本発明の実施形態は、任意の従来のコンピュータプログラミング言語で実装され得る。例えば、好ましい実施形態が、手続き型言語(例えば、「C」)またはオブジェクト指向プログラミング言語(例えば「C++」)で実装され得る。本発明の代替の実施形態は、あらかじめプログラムされたハードウェア要素、その他の関係するコンポーネントとして、もしくは、ハードウェアおよびソフトウェアコンポーネントの組み合わせとして、実装され得る。
【0016】
複数の実施形態が、コンピュータシステムとともに利用するためのコンピュータプログラム製品として、実装され得る。そのような実装は、一連のコンピュータ命令を含み得る。その一連のコンピュータ命令は、コンピュータ読み取り可能媒体(例えば、ディスケット、CD−ROM、ROM、もしくは、固定ディスク)のような有体媒体上に固定されるか、もしくは、媒体を超えてネットワークに接続されたコミュニケーションアダプタのようなモデムまたは他のインターフェースデバイスを介してコンピュータシステムへ伝達可能であるかのどちらかである。媒体は、有体媒体(例えば、光もしくはアナログの通信ライン)もしくはワイヤレス技術で実装された媒体(例えば、マイクロ波、赤外線、もしくは他の伝送技術)であり得る。一連のコンピュータ命令は、本システムに関連して、すでに本明細書中に記述された機能性の全て、もしくは、一部分を具体化する。当業者は、そのようなコンピュータ命令が、多くのコンピュータアーキテクチャもしくはオペレーティングシステムとともに利用するために、多くのプログラミング言語で書かれ得ることを認識すべきである。さらに、そのような命令は、半導体、磁気、光学もしくは他のメモリデバイスのような任意メモリデバイスに保存することができ、かつ、光、赤外線、マイクロ波、もしくは、他の伝送技術のような任意の伝送技術を利用して伝送され得る。そのようなコンピュータプログラム製品が、添付の印刷文書または電子文書(例えば、圧縮包装されたソフトウェア)と一緒に取り外し可能媒体として配布されるか、もしくは、コンピュータシステムと一緒に(例えば、システムROMもしくは固定ディスク上に)プレロードされるか、もしくは、サーバまたはネットワークを介した電子掲示板(例えば、インターネットもしくはワールドワイドウェブ)から配布されることが期待される。もちろん本発明のいくらかの実施形態は、ソフトウェア(例えば、コンピュータプログラム製品)およびハードウェアの両方の組み合わせとして実装され得る。本発明のさらに他の実施形態は、完全にハードウェア、もしくは、完全にソフトウェア(例えば、コンピュータプログラム製品)として実装される。
【0017】
本発明の様々な例示的な実施形態が開示されたが、本発明の真の範囲から逸脱することなしに、本発明のいくつかの利点を達成する様々な変更および改変が実施され得ることは当業者にとって明らかである。
【図面の簡単な説明】
【0018】
【図1】図1は、IEEE1394−1995シリアルポートデバイスのための典型的な設定ROMの論理構造を示す。
【図2】図2は、本発明の1つの実施形態に従った、設定ROMの読み出しにおける論理シーケンスを示す。
【図3】図3は、典型的な実施形態に従った、設定ROMを読み出す場合の様々なときにおける設定スタックの状態を示す。
Claims (30)
- シリアルバスデバイス内の設定リードオンリーメモリ(ROM)を読み出す方法であって、該方法は、
ディレクトリ構造で構成される設定ROMの一部のみを読み出すステップ
を包含する方法。 - 前記設定ROMがコンピュータバスアーキテクチャのための認知された規格に準拠する、請求項1に記載の方法。
- 前記認知された規格がIEEE1212規格である、請求項2に記載の方法。
- 前記認知された規格がIEEE1394規格である、請求項2に記載の方法。
- 前記読み出しステップがIEEE1394バスを利用する、請求項4に記載の方法。
- 前記読み出しステップがディレクトリスタックを保持するステップを含む、請求項1に記載の方法。
- 前記読み出しステップが、
(i)前記設定ROM内のルートディレクトリを現在のディレクトリとして設定するステップと、
(ii)該現在のディレクトリを読み出すステップと、
(iii)間接エントリについて該現在のディレクトリをスキャンするステップであって、間接エントリが見つかれば、
(a)該スキャンの現在位置を前記ディレクトリスタックにプッシュするステップと、
(b)該間接エントリを該現在のディレクトリにするステップと、
(c)ステップ(ii)と(iii)とを繰り返す、ステップと、
(iv)該ディレクトリスタックが空でなければ、
(a)該ディレクトリスタックからトップアイテムをポップするステップと、
(b)該ポップされたアイテムに関連するスキャン位置においてステップ(iii)に戻る、ステップと
を含む、請求項6に記載の方法。 - 対応するデバイスドライバと前記シリアルバスデバイスとを結び付けるステップをさらに包含する、請求項1に記載の方法。
- シリアルバスデバイス内の設定リードオンリーメモリ(ROM)を読み出すためのコンピュータシステムで利用するコンピュータプログラム製品であって、該コンピュータプログラム製品は、コンピュータ読み取り可能プログラムコードを有するコンピュータ利用可能媒体を含み、さらに、該コンピュータ読み取り可能プログラムコードは、
ディレクトリ構造で構成される設定ROMの一部のみを読み出すためのプログラムコードを含む、
コンピュータプログラム製品。 - 前記設定ROMがコンピュータバスアーキテクチャのための認知された規格に準拠する、請求項9に記載のコンピュータプログラム製品。
- 前記認知された規格がIEEE1212規格である、請求項10に記載のコンピュータプログラム製品。
- 前記認知された規格がIEEE1394規格である、請求項10に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードがIEEE1394バスを利用する、請求項12に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードがディレクトリスタックを保持するためのプログラムコードを含む、請求項9に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードが、
(i)前記設定ROM内のルートディレクトリを現在のディレクトリとして設定するためのプログラムコードと、
(ii)該現在のディレクトリを読み出すためのプログラムコードと、
(iii)間接エントリについて該現在のディレクトリをスキャンするためのプログラムコードであって、間接エントリが見つかれば、
(a)該スキャンの現在位置を前記ディレクトリスタックにプッシュし、
(b)該間接エントリを該現在のディレクトリにし、
(c)(ii)と(iii)とを繰り返す、コードと、
(iv)プログラムコードであって、該ディレクトリスタックが空でなければ、
(a)該ディレクトリスタックからトップアイテムをポップし、
(b)該ポップされたアイテムに関連するスキャン位置において(iii)に戻る、コードと
を含む、請求項14に記載のコンピュータプログラム製品。 - 対応するデバイスドライバと前記シリアルバスデバイスとを結び付けるためのプログラムコードをさらに含む、請求項9に記載のコンピュータプログラム製品。
- デバイスドライバを未知のシリアルバスデバイスへ結び付ける方法であって、該方法は、
バスを介して、該未知のシリアルバスデバイス内の設定ROMのルートディレクトリを読み出すステップと、
該ルートディレクトリにリンクされたディレクトリツリー構造に従って、該バスを介して該設定ROMの一部を読み出すステップと、
該設定ROMの該読み出された一部に基づいて、該シリアルバスデバイスと結び付けるためのデバイスドライバを選択するステップと
を包含する、方法。 - 前記設定ROMがコンピュータバスアーキテクチャのための認知された規格に準拠する、請求項17に記載の方法。
- 前記認知された規格がIEEE1212規格である、請求項18に記載の方法。
- 前記認知された規格がIEEE1394規格である、請求項18に記載の方法。
- 前記読み出しステップはIEEE1394バスを利用する、請求項20に記載の方法。
- 前記読み出しステップがディレクトリスタックを保持するステップを含む、請求項17に記載の方法。
- 前記読み出しステップが、
(i)前記ルートディレクトリを現在のディレクトリとして設定するステップと、
(ii)該現在のディレクトリを読み出すステップと、
(iii)間接エントリについて該現在のディレクトリをスキャンするステップであって、間接エントリが見つかれば、
(a)該スキャンの現在位置を前記ディレクトリスタックにプッシュするステップと、
(b)該間接エントリを該現在のディレクトリにするステップと、
(c)ステップ(ii)と(iii)とを繰り返す、ステップと、
(iv)該ディレクトリスタックが空でなければ、
(a)該ディレクトリスタックからトップアイテムをポップするステップと、
(b)該ポップされたアイテムに関連するスキャン位置においてステップ(iii)に戻る、ステップと
を含む、請求項22に記載の方法。 - デバイスドライバを未知のシリアルバスデバイスへ結び付けるためにコンピュータシステムで利用するコンピュータプログラム製品であって、該コンピュータプログラム製品は、コンピュータ読み取り可能プログラムコードを有するコンピュータ利用可能媒体を含み、該コンピュータ読み取り可能プログラムコードは、
バスを介して、該未知のシリアルバスデバイス内の設定ROMのルートディレクトリを読み出し、
該ルートディレクトリにリンクされたディレクトリツリー構造に従って、該バスを介して該設定ROMの一部を読み出し、
該設定ROMの該読み出された一部に基づいて、該シリアルバスデバイスと結び付けるためのデバイスドライバを選択するためのプログラムコードを含む、
コンピュータプログラム製品。 - 前記設定ROMがコンピュータバスアーキテクチャのための認知された規格に準拠する、請求項24に記載のコンピュータプログラム製品。
- 前記認知された規格がIEEE1212規格である、請求項25に記載のコンピュータプログラム製品。
- 前記認知された規格がIEEE1394規格である、請求項25に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードがIEEE1394バスを利用する、請求項27に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードがディレクトリスタックを保持すること含む、請求項24に記載のコンピュータプログラム製品。
- 前記読み出すためのプログラムコードが、
(i)前記ルートディレクトリを現在のディレクトリとして設定するためのプログラムコードと、
(ii)該現在のディレクトリを読み出すためのプログラムコードと、
(iii)間接エントリについて該現在のディレクトリをスキャンするためのプログラムコードであって、間接エントリが見つかれば、
(a)該スキャンの現在位置を前記ディレクトリスタックにプッシュし、
(b)該間接エントリを該現在のディレクトリにし、
(c)(ii)と(iii)とを繰り返す、コードと、
(iv)プログラムコードであって、該ディレクトリスタックが空でなければ、
(a)該ディレクトリスタックからトップアイテムをポップし、
(b)該ポップされたアイテムに関連するスキャン位置において(iii)に戻す、コードと
を含む、請求項29に記載のコンピュータプログラム製品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/803,531 US6823449B2 (en) | 2001-03-09 | 2001-03-09 | Directory structure-based reading of configuration ROM |
PCT/US2002/005031 WO2002073426A2 (en) | 2001-03-09 | 2002-02-20 | Directory structure-based reading of configuration rom |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005506599A true JP2005506599A (ja) | 2005-03-03 |
Family
ID=25186753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002572017A Withdrawn JP2005506599A (ja) | 2001-03-09 | 2002-02-20 | 設定romの読み出しに基づくディレクトリ構造 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6823449B2 (ja) |
EP (1) | EP1410187A2 (ja) |
JP (1) | JP2005506599A (ja) |
KR (1) | KR20030085140A (ja) |
AU (1) | AU2002240437A1 (ja) |
WO (1) | WO2002073426A2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10335572A1 (de) * | 2003-07-31 | 2005-03-17 | Deutsche Thomson-Brandt Gmbh | Netzwerkteilnehmerstation für ein Netzwerk verteilter Stationen und Verfahren zum Betreiben einer Netzwerkteilnehmerstation |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2203869B (en) * | 1987-04-17 | 1991-10-23 | Apple Computer | Computer resource configuration method and apparatus |
US5787445A (en) * | 1996-03-07 | 1998-07-28 | Norris Communications Corporation | Operating system including improved file management for use in devices utilizing flash memory as main memory |
US5809331A (en) * | 1996-04-01 | 1998-09-15 | Apple Computer, Inc. | System for retrieving configuration information from node configuration memory identified by key field used as search criterion during retrieval |
-
2001
- 2001-03-09 US US09/803,531 patent/US6823449B2/en not_active Expired - Lifetime
-
2002
- 2002-02-20 JP JP2002572017A patent/JP2005506599A/ja not_active Withdrawn
- 2002-02-20 EP EP02706346A patent/EP1410187A2/en not_active Withdrawn
- 2002-02-20 KR KR10-2003-7011757A patent/KR20030085140A/ko not_active Application Discontinuation
- 2002-02-20 WO PCT/US2002/005031 patent/WO2002073426A2/en active Search and Examination
- 2002-02-20 AU AU2002240437A patent/AU2002240437A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1410187A2 (en) | 2004-04-21 |
KR20030085140A (ko) | 2003-11-03 |
US20020129231A1 (en) | 2002-09-12 |
WO2002073426A2 (en) | 2002-09-19 |
US6823449B2 (en) | 2004-11-23 |
AU2002240437A1 (en) | 2002-09-24 |
WO2002073426A3 (en) | 2004-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6205580B1 (en) | Method for loading a program | |
JP2606222B2 (ja) | ファイル名の長さ制限拡張方式 | |
CN111414339B (zh) | 一种文件的处理方法、系统、装置、设备及介质 | |
JP2005506599A (ja) | 設定romの読み出しに基づくディレクトリ構造 | |
CN110795405B (zh) | 一种分片数据还原方法、终端设备及存储介质 | |
US6357002B1 (en) | Automated extraction of BIOS identification information for a computer system from any of a plurality of vendors | |
CN117289915B (zh) | 基于配置表的星载软件代码生成方法和装置 | |
JP3133991B2 (ja) | データ転送方法およびデータ転送システム | |
US7187385B2 (en) | Image processing apparatus | |
US20050138240A1 (en) | Controller device to be connected to an IEEE I394 serial bus network | |
WO2008047975A1 (en) | Migration apparatus which convert sam/vsam files of mainframe system into sam/vsam files of open system and method for thereof | |
JP4205603B2 (ja) | 可変長マルチフォーマット変換装置及び方法並びにこれを用いたファイル転送システム | |
JP5941823B2 (ja) | 整合性確認方法およびシステム | |
JPS599769A (ja) | 図面の自動修正装置 | |
CN116932428A (zh) | 用于内存管理单元的透传数据的方法以及内存管理单元 | |
JP3522773B2 (ja) | 標準フォーマット化装置 | |
JP2595902B2 (ja) | ディスクマップ作成方式 | |
JPS6134620A (ja) | 計算機への入力方法 | |
CN114519039A (zh) | 一种数据在线管理方法、装置、终端设备以及存储介质 | |
CN118012656A (zh) | 损坏pdf文档修复方法、装置、设备及存储介质 | |
JP2002314541A (ja) | ネットワーク検出方法、ネットワーク検出装置、ネットワーク検出プログラム、及びコンピュータネットワークシステム | |
JPH05324451A (ja) | データ伝送システム及びデータファイル管理システム | |
KR100237879B1 (ko) | 고딕 중간 파일을 케이엑스에프 데이터 포맷으로 변환하는 방법 | |
JPH0420095A (ja) | データ変換方式 | |
JP2005165448A (ja) | 情報通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20050510 |