(57)【特許請求の範囲】
【請求項１】
１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリと、少なくとも第１および第２操作モードをサポートする中央処理ユニットと、を含むデータ処理システムの前記中央処理ユニットが、第１操作モードを利用する１個または複数の一次構成ルーチンと、第２操作モードを利用する１個または複数の二次構成ルーチンとを実行する方法であって、
前記中央処理ユニットが、前記第１操作モードを開始するステップと、
前記中央処理ユニットが、前記１個または複数の第２不揮発性メモリ内で、前記第２操作モードを利用する１個または複数の二次構成ルーチンを見出すステップと、
前記中央処理ユニットが、前記１個または複数の二次構成ルーチンを識別するリストを記憶するステップと、
前記中央処理ユニットが、前記１個または複数の第１不揮発性メモリ内で、前記第１操作モードを利用する１個または複数の一次構成ルーチンを見つけ出すステップと、
前記中央処理ユニットが、前記１個または複数の一次構成ルーチンを実行するステップと、
前記リストにて、前記１個または複数の二次構成ルーチンが記憶されている場合には、前記中央処理ユニットが、前記第１操作モードから第２操作モードへ切り替えて、前記リストに記憶された二次構成ルーチンを第２操作モードで実行するステップと、
を含んでいる方法。
【請求項２】
前記１個または複数の第２不揮発性メモリが、１個または複数のアダプタ・メモリを備えており、
前記１個または複数の二次構成ルーチンを求めて前記１個または複数のアダプタ・メモリを探索するステップを含んでいる
請求項１に記載の方法。
【請求項３】
前記１個または複数の第１不揮発性メモリが、システム・メモリを備えており、
前記１個または複数の一次構成ルーチンを見つけ出す前記ステップが、前記１個または複数の一次構成ルーチンを求めて前記システム・メモリを探索するステップを含んでいる
請求項１に記載の方法。
【請求項４】
前記記憶するステップが、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを記録するステップを含んでいる請求項１に記載の方法。
【請求項５】
前記第２操作モードで実行するステップの後、前記第１操作モードにスワップバックするステップと、
その後、オペレーティング・システムをロードするステップと、
をさらに含んでいる請求項１に記載の方法。
【請求項６】
前記第１操作モードが、ＩＡ−６４モードであり、前記第２操作モードが、ＩＡ−３２モードである、請求項１に記載の方法。
【請求項７】
１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリと、少なくとも第１および第２操作モードをサポートする中央処理ユニットとを含むデータ処理システムであって、
前記中央処理ユニットが、前記第１操作モードを開始し、前記１個または複数の第２不揮発性メモリ内で、前記第２操作モードを利用する１個または複数の二次構成ルーチンを見出し、前記１個または複数の二次構成ルーチンを識別するリストを記憶し、前記１個または複数の第１不揮発性メモリ内で、前記第１操作モードを利用する１個または複数の一次構成ルーチンを見つけ出し、前記１個または複数の一次構成ルーチンを実行し、前記リストにて前記１個または複数の二次構成ルーチンが記憶されている場合には、前記第１操作モードから第２操作モードへ切り替えて、前記リストに記憶された二次構成ルーチンを第２操作モードで実行するデータ処理システム。
【請求項８】
前記１個または複数の第２メモリが、前記１個または複数の二次構成ルーチンを含む１枚または複数のアダプタ・メモリを含んでいる請求項７に記載のデータ処理システム。
【請求項９】
前記１個または複数の第１不揮発性メモリが、前記１個または複数の一次構成ルーチンを含むシステム・メモリを含んでいる請求項７に記載のデータ処理システム。
【請求項１０】
前記中央処理ユニットが、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを記憶する請求項７に記載のデータ処理システム。
【請求項１１】
前記中央処理ユニットが、前記限定された二次構成ルーチンが実行された後、前記データ処理システムを前記第２操作モードから前記第１操作モードにスワップバックした後に、
前記データ処理システムに、オペレーティング・システムをロードさせる
請求項７に記載のデータ処理システム。
【請求項１２】
前記第１操作モードが、ＩＡ−６４モードであり、前記第２操作モードが、ＩＡ−３２モードである、請求項７に記載のデータ処理システム。
【請求項１３】
１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリと、少なくとも第１および第２操作モードをサポートする中央処理ユニットと、を含むデータ処理システムの前記中央処理ユニットが、第１操作モードを利用する１個または複数の一次構成ルーチンと、第２操作モードを利用する１個または複数の二次構成ルーチンとを実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記中央処理ユニットに、前記第１操作モードを開始させるステップと、
前記中央処理ユニットに、前記１個または複数の第２不揮発性メモリ内で、前記第２操作モードを利用する１個または複数の二次構成ルーチンを見出させるステップと、
前記中央処理ユニットに、前記１個または複数の二次構成ルーチンを識別するリストを記憶させるステップと、
前記中央処理ユニットに、前記１個または複数の第１不揮発性メモリ内で、前記第１操作モードを利用する１個または複数の一次構成ルーチンを見つけ出させるステップと、
前記中央処理ユニットに、前記１個または複数の一次構成ルーチンを実行させるステップと、
前記リストにて、前記１個または複数の二次構成ルーチンが記憶されている場合には、前記中央処理ユニットに、前記第１操作モードから第２操作モードへ切り替えて、前記リストに記憶された二次構成ルーチンを第２操作モードで実行させるステップと、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
前記１個または複数の第２不揮発性メモリが、１個または複数のアダプタ・メモリを含んでおり、
前記１個または複数の二次構成ルーチンを見出させる際に、
前記中央処理ユニットに、前記１個または複数のアダプタ・メモリをスキャンさせることにより前記１個または複数の二次構成ルーチンを見出させる
請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記１個または複数の第１不揮発性メモリが、システム・メモリを含んでおり、
前記中央処理ユニットに、前記システム・メモリから前記１個または複数の一次構成ルーチンを取得させる
請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記中央処理ユニットに、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを記憶させる請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記二次構成ルーチンを第２操作モードで実行させるステップの後に、
さらに前記中央処理ユニットに、前記データ処理システムを前記第１操作モードにスワップバックさせるステップと、
前記データ処理システムにオペレーティング・システムをロードさせるステップと、
を実行させる請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記第１操作モードが、ＩＡ−６４モードであり、前記第２操作モードが、ＩＡ−３２モードである、請求項１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、データ処理システムに関し、詳細には、各種のハードウェア構成要素に適合するようにデータ処理システムを構成する方法およびシステムに関する。さらに詳細には、本発明はデータ処理システムのデフォールト操作モードとは異なる操作モードに設計されたアダプタ・カード構成ルーチンをサポートする方法およびシステムに関する。
【０００２】
【従来の技術】
パーソナル・コンピュータなどの汎用データ処理システムが始動または再始動される時、データ処理システムの処理資源は、スタートアップ・ルーチンを自動的に実行することによって、有用な作業のためにシステムを準備する。スタートアップ・ルーチンは通常、システムの各種ハードウェア構成要素を試験し、次いでこれらハードウェア構成要素を、オペレーティング・システムやアプリケーション・プログラムなどのソフトウェアによって利用できるように構成する。スタートアップ時にハードウェア構成要素を自動的に構成するプロセスは、ハードウェア構成要素の「初期化」としても知られている。さらに、スタートアップ・ルーチンは、ある種の構成要素の手動構成を行うこともできる。ただし、本明細書では自動構成プロセスに焦点を合わせる。
【０００３】
スタートアップ・ルーチンは通常、一般にＲＯＭとして知られる不揮発性メモリに格納されている。したがって、このようなスタートアップ・ルーチンは、「ファームウェア」とみなされる。具体的に、典型的な従来のパーソナル・コンピュータでは、処理資源はコンピュータのマザーボード上に常駐する電子的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）モジュールからスタートアップ・ルーチンのバルクを取得する。システムのＥＥＰＲＯＭに含まれるスタートアップ・コード（すなわち、メイン・スタートアップ・ルーチン）は、このメイン・スタートアップ・ルーチンが、異なる種類のアダプタ・カードを含む異なるハードウェア構成要素でシステムを構成するために使用できるという点で、一般に融通性があるように設計される。（メイン・スタートアップ・ルーチンを含む不揮発性メモリを以下単にシステムＲＯＭと呼ぶ。）ただし処理資源は、システムＲＯＭから命令を取得することに加えて、アダプタ・カード自体から構成命令を取得することもできる。
【０００４】
アダプタ・カードからの構成命令は、ＲＯＭスキャンとして知られるプロセスによって取得される。ＲＯＭスキャンでは、メイン・スタートアップ・ルーチンは、構成ルーチン（すなわち、アダプタ・コード）を求めて各アダプタ・カード上のＲＯＭ（もしあれば）を探索する。このようなコードが見つかった時、メイン・スタートアップ・ルーチンは制御を一時的にアダプタ・コードに渡す。アダプタ・コードは次に、問題のアダプタをサポートするため必要に応じてシステム構成を変更し、次いで、制御はメイン・スタートアップ・ルーチンへ戻される。
このスタートアップ方法は、非常に様々のシステム・ハードウェアのサポートを容易にしながら、メイン・スタートアップ・ルーチンの融通性を最大にする。
【０００５】
アダプタ・コードとメイン・スタートアップ・ルーチンが同じ操作モードを利用するように作成されている時、上記の方法は旨く機能する。たとえば、今日製造されているほとんどのパーソナル・コンピュータは、「ＩＡ−３２」として知られるデフォールト操作モードを利用している（「ＩＡ」はＩＮＴＬアーキテクチャを現し、「３２」は３２−ビット・アドレスがサポートされていることを指す）。したがって、このようなシステム用のメイン・スタートアップ・ルーチンおよびアダプタ・コードはＩＡ−３２モードで実行されるように設計されている。
【０００６】
しかし、コンピュータ技術の進歩により新しい操作モードが採用されるようになると、アダプタ・コードの互換性に関連する問題が生じる。たとえば、最近の進歩のより従来のＩＡ−３２操作モードの代わりに「ＩＡ−６４モード」として知られる新しいデフォールト操作モードを利用するデータ処理システムが導入されるようになった。ＩＡ−３２モードとＩＡ−６４モードの１つの違いは、後者が６４ビット・アドレスをサポートしていることである。ＩＡ−６４モードを採用することに関連する１つの問題は、利用できるアダプタ・カードのほとんどにおける構成コードがＩＡ−３２モード用に設計されており、したがって、このようなコードはＩＡ−６４モードで動作できないことである。さらに、ＩＡ−６４モードを備えたアダプタ・カードが広く利用できるようになるのはＩＡ−６４モードで始動するシステムの導入後かなりの時間が経過してからと予想される。
【０００７】
【発明が解決しようとする課題】
したがって、システムのデフォールト操作モードと異なる操作モードでアダプタ・コードを実行する方法およびシステムが求められている。
【０００８】
従来のアダプタ・コードのアダプタ・カードと新しい操作モードで構成されたアダプタ・カードを共にサポートする方法およびシステムも求められている。
【０００９】
さらに、このようなシステムおよび方法は、スタートアップ・プロセスの効率をも最適化できるならば、追加の利益をもたらすことになる。
【００１０】
【課題を解決するための手段】
本発明によると、１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリと、少なくとも第１および第２操作モードをサポートする処理資源とを含むデータ処理システムを構成する方法は、第１操作モードの活動化から始まる。次いで第２操作モードを利用する１個または複数の二次構成ルーチンが、１個または複数の第２不揮発性メモリ内で見つけだされ、これらの二次構成ルーチンを識別するリストが格納される。リストが格納された後、第１操作モードを利用する１個または複数の一次構成ルーチンが１個または複数の第１不揮発性メモリ内で見つけだされ、実行される。また、一次構成ルーチンのどれとも対応しない二次構成ルーチンの全てが限定（demarcate）される。その後、第２操作モードが第１操作モードの代わりに活動化され、限定された二次構成ルーチンが実行される。
【００１１】
例示的実施形態では、一次構成ルーチンはシステム・メモリから得られ、二次構成ルーチンはアダプタ・メモリから得られ、１個または複数の一次構成ルーチンが１個または複数の対応する二次構成ルーチンの代わりに実行される。
【００１２】
【発明の実施の形態】
次に図面、特に図１を参照すると、本発明による、異なる操作モードを利用するアダプタ構成ルーチンを実行する機能を備えた例示的データ処理システム２００のブロック図が示されている。データ処理システム２００は中央処理ユニット（ＣＰＵ）２１２に接続されたシステム・バス２１０を含むパーソナル・コンピュータとして示されている。本発明によれば、ＣＰＵ２１２は少なくとも２つの操作モードをサポートする。この例示的実施形態では、これらの操作モードは古い周知のＩＡ−３２モードと新しいＩＡ−６４モードである。
【００１３】
システム・バス２１０はペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ホスト・ブリッジ２２０によって、ＰＣＩローカル・バス２１８にも接続され、ＰＣＩローカル・バス２１８は、拡張バス・ブリッジ２２２によってＩＳＡバス２２４に接続される。ランダム・アクセス・メモリ（ＲＡＭ）２１６とシステムＲＯＭ２１４もＰＣＩホスト・ブリッジ２２０に接続される。操作員の入力を受け取るためのキーボード２３０とマウス２３２が（適切なアダプタを介して）ＩＳＡバス２２４に取り付けられている。
【００１４】
ＰＣＩローカル・バス２１８はまた、追加の不揮発性データ記憶装置（１個または複数のディスク・ドライブ２２６など）および１枚または複数のアダプタ・カードにも接続されている。本発明によれば、これらのカードの少なくとも１枚は従来の操作モードで実行される構成ルーチンを備えたＲＯＭを含む。さらに、データ処理システム２００は、新しい操作モードで実行される構成ルーチンを備えた１枚または複数のアダプタ・カードを含むことができる。この例示的実施形態では、ＩＡ−３２モードは従来のモードであり、ＩＡ−６４は新しい操作モードである。したがって、従来の構成ルーチンはＩＡ−３２構成ルーチン（すなわち、ＩＡ−３２アダプタ・コード）として知られ、新しい操作モードで実行される構成ルーチンはＩＡ−６４構成ルーチン（すなわち、ＩＡ−６４アダプタ・コード）として知られている。
【００１５】
この例示的実施形態では、ＰＣＩローカル・バス２１８には構成ルーチンを含まないオーディオ・アダプタ２４０、ＩＡ−３２構成ルーチン２４２を含むネットワーク・アダプタ２４１、およびＩＡ−６４構成ルーチン２５２を含むグラフィックス・アダプタ２５０が接続されている。オーディオ・アダプタ２４０とグラフィックス・アダプタ２５０はそれぞれ、スピーカ２４４によるオーディオ出力およびディスプレイ・デバイス２５４によるビジュアル出力を制御する。ネットワーク・アダプタ２４１は、データ処理システム２００がローカル・エリア・ネットワーク（ＬＡＮ）（図示せず）内の他のコンピュータなどの他のデバイスと通信するポートを提供する。
【００１６】
上記のハードウェアおよびソフトウェアに加えて、データ処理システム２００はシステムＲＯＭ２１４に格納されたメイン・スタートアップ・ルーチン２６０を含む。システムがブート（すなわち、始動または再始動）された時、接続された各種構成要素が一緒に動作する準備として、メイン・スタートアップ・ルーチン２６０が処理資源（すなわち、ＣＰＵ２１２）によって自動的にロードされ、実行される。例示的実施形態では、メイン・スタートアップ・ルーチン２６０はデフォールト操作モードとしてのＩＡ−６４モードで自動的に操作をスタートする。したがって、パフォーマンスを最適化するために、メイン・スタートアップ・ルーチン２６０は最初にＩＡ−６４モードで動作するように設計される。ただし、データ処理システム２００が従来の構成ルーチンでアダプタ・カードを利用でき、かつ新しい操作モードを利用する構成ルーチンでアダプタ・カードを利用できることが望ましい。したがって、メイン・スタートアップ・ルーチン２６０はＩＡ−３２アダプタ・カードに対するサポートも含む。
【００１７】
異なる処理モード用に作成された構成ルーチンでアダプタ・カードに適合するための簡単だが効率の悪い方法は、異なる操作モードを備えたアダプタ・カードがＲＯＭスキャンで検出される度に操作モードを変えるメイン・スタートアップ・ルーチンを利用することである。しかし、操作モードを変えるのは非常に時間がかかるので、操作モードを変える回数を最小にするのが良い。
【００１８】
したがって、以下で詳細に説明するように、本発明は異なる処理モード用に作成された構成ルーチンを備えるアダプタ・カードを処理するもっと効率の良いプロセス、すなわち操作モードを変える回数を最小にするプロセスを提供する。さらに、本発明は従来の（たとえば、ＩＡ−３２）構成ルーチンの代わりに新しい（たとえば、ＩＡ−６４）構成ルーチンを実行するメカニズムを含む。したがってこのメカニズムは、（アダプタ・カードのオンボード構成ルーチンに関して）更新された構成ルーチンでアダプタ・カードを構成することが可能である。このメカニズムはまた、構成ルーチンが欠けているアダプタ・カードに構成ルーチンを（実際に）追加することも可能である。さらに、場合によっては、このメカニズムは、構成プロセス全体を新しい処理モードで実行できるようにすることにより効率を最大にする。ただし、このプロセスを詳細に扱う前に、このプロセスの例示的実施形態で利用されるデータ構造の幾つかを紹介しておくのが有益であろう。
【００１９】
したがって、次に図２も参照すると、例示的実施形態による、データ処理システム２００を構成するプロセスで利用される各種データ構造の場所を示すメモリ図３００が示されている。図のように、４ギガバイト（ＧＢ）のメモリ・アドレスの直ぐ下に、ＲＯＭ２１４にマップされたメモリ・アドレスの５１２キロバイト（ＫＢ）の範囲がある。したがって、ＲＯＭ２１４の内容は、ＦＦＦ８００００（ｈ）で始まるメモリ・アドレスを参照することによってアクセスできる。さらに、７６８ＫＢで始まる１２８ＫＢのメモリ・アドレス範囲がアダプタＲＯＭ３１０にマップされる。したがって、（ネットワーク・アダプタ２４１からの）ＩＡ−３２構成ルーチン２４２と（グラフィックス・アダプタ２５０からの）ＩＡ−６４構成ルーチン２５２がこの１２８ＫＢの範囲に見える。
【００２０】
図１および図２に示すように、メイン・スタートアップ・ルーチン２６０に加えて、システムＲＯＭ２１４は１個または複数の補助構成ルーチン２７０を含むことができる。以下で詳細に説明するように、各補助構成ルーチン２７０は、従来のアダプタ・カード上でＩＡ−３２構成ルーチンの代わりに実行される代替構成ルーチン、あるいはオンボード構成ルーチンを含まないアダプタ・カードを構成するために（ＩＡ−６４モードで）実行される強化構成ルーチンとして働くことができる。メモリ・マッピング戦略により、メイン・スタートアップ・ルーチン２６０と１個または複数の補助構成ルーチン２７０は共にＦＦＦ８００００（ｈ）で始まる５１２ＫＢの範囲内に見える。さらに、システムＲＯＭ２１４が所望の補助構成ルーチン２７０の全てを収容するのに不十分なスペースしか含まない場合には、１個または複数の補助構成ルーチン２７０をＦＦＦ８００００（ｈ）の直ぐ下のメモリ・アドレスを介してアクセス可能なハードウェア（補助の不揮発性記憶装置など）上に設けることもできる。
【００２１】
次に図３および図４を参照すると、本発明による、異なる操作モードで構成ルーチンを実行するための例示的プロセスが示されている。このプロセスは、ブロック４００でデータ処理システム２００が始動または再始動して、ＣＰＵ２１２にＩＡ−６４モードでのメイン・スタートアップ・ルーチン２６０の実行を開始させることから始まる。たとえば、ＣＰＵ２１２は、１２８ＫＢのコード・スライス３２０をシステムＲＯＭ２１４にマップされたメモリ・アドレスからＲＡＭ２１６に、具体的には８９６ＫＢのアドレスから始まるメモリ範囲にコピーすることによって、メイン・スタートアップ・ルーチン２６０の実行を開始することができる。ブロック４１０に示すように、構成プロセスの初期段階の一部として、メイン・スタートアップ・ルーチン２６０はまた、ハードウェア構成要素が適切に動作していることを検証するためパワー・オン自己テスト（ＰＯＳＴ）も実行する。
【００２２】
ハードウェアがテストされ、コード・スライス３２０が１ＭＢアドレスの下に格納された後、メイン・スタートアップ・ルーチン２６０は、ブロック４２０に示すように、アダプタ・コードを求めてアダプタＲＯＭ３１０のスキャンを開始する。たとえば、メイン・スタートアップ・ルーチン２６０は、ある値（１６進値５５ＡＡなど）を求めて所定の間隔でメモリのセグメントを検査することができる。処理は次にブロック４２２に移り、そこでメイン・スタートアップ・ルーチン２６０が、構成ルーチンが見つかったかどうか判定する。見つかった場合、メイン・スタートアップ・ルーチン２６０は、ブロック４２４で示すように、そのルーチンがＩＡ−３２モードで実行されるように設計されているかどうか判定する。そう設計されている場合、メイン・スタートアップ・ルーチン２６０は構成ルーチンを直ちに呼び出さず、代わりに、ブロック４２６で示すように、見つかったルーチンを識別するレコードを、ＲＡＭ２１６内のＩＡ−３２構成ルーチン３３０のリスト（以下、従来のリスト３３０）に記憶する。詳細には、記憶されるレコードは、構成ルーチンの開始アドレスを含み、アダプタのＰＣＩデバイス識別子（ＩＤ）を含むことができる。このレコードはまた、当技術で周知の方式で問題のアダプタ・カードに対するチャネルを列挙することによって得られるアダプタのＰＣＩサブシステムＩＤとＰＣＩサブシステム・ベンダＩＤをも含む。たとえば、メイン・スタートアップ・ルーチン２６０がＩＡ−３２構成ルーチン２４２を見つけた時、そのルーチンに対するレコードを記憶する。
【００２３】
しかし、構成ルーチンがＩＡ−３２構成ルーチンでない場合は、構成ルーチンはＩＡ−６４モードで実行されるように設計されていると想定され、したがってメイン・スタートアップ・ルーチン２６０は、ブロック４２８に示すように、そのルーチンを（ＩＡ−６４モードで）実行させる。たとえば、ＩＡ−６４構成ルーチン２５２が見つかった時、メイン・スタートアップ・ルーチン２６０はそのルーチンを呼び出す。見つかった構成ルーチンが実行された後、制御はメイン・スタートアップ・ルーチン２６０に戻り、そこで構成ルーチンのスキャンを続行して、ブロック４２２へ戻って他の構成ルーチンがアダプタＲＯＭ３１０内で見つかるかどうか判定する。
【００２４】
ブロック４２２でアダプタＲＯＭ３１０がこれ以上処理すべき構成ルーチンを含まないと判定されると、処理はページ結合子Ａを経てブロック４４０に移る。
ブロック４４０で示すように、メイン・スタートアップ・ルーチン２６０は次いで、たとえば、所定の位置を検査するか、または特定のコードまたは署名をスキャンするか、あるいはその両方を行うことによって、補助構成ルーチンを求めてシステムＲＯＭ２１４のスキャンを開始する。処理は次いで、ブロック４４２に移り、そこでメイン・スタートアップ・ルーチン２６０が、補助構成ルーチンが見つかったかどうか判定する。見つかった場合、ブロック４４４に示すように、見つかったルーチンが、対応するアダプタ・カードを構成するために実行される。さらに、ブロック４４６に示すように、メイン・スタートアップ・ルーチン２６０は、従来のリスト３３０がＩＡ−６４モードを使用して構成されたばかりのアダプタ・カードに対するレコードを含んでいるかどうか判定する。含んでいる場合は、ブロック４４８に示すように、そのカードに対する記録が従来のリスト３３０から除去される。次に、レコードが除去された後、あるいは従来のリスト３３０がこのようなレコードを含まないと判定された後、メイン・スタートアップ・ルーチン２６０はブロック４４２に戻って、システムＲＯＭ２１４から次の補助ルーチンの処理を開始する。
【００２５】
メイン・スタートアップ・ルーチン２６０が、これ以上処理すべき補助構成ルーチンがないと判定すると、処理はブロック４６０に移る。ブロック４６０に示すように、メイン・スタートアップ・ルーチン２６０は次に、従来のリスト３３０が空であるかどうか判定する。空である場合、処理はブロック４６２に移って、そこでメイン・スタートアップ・ルーチン２６０がデータ処理システム２００にオペレーティング・システムをブートさせ、処理は次に、ブロック４６４に示すように、終了する。
【００２６】
しかし、ブロック４６０で従来のリスト３３０が空でないと判定された場合、メイン・スタートアップ・ルーチン２６０は、ブロック４６６に示すように、操作モードをＩＡ−６４モードからＩＡ−３２モードにスワップさせる。次いで従来のリスト３３０中で識別されたルーチンの全てが、ブロック４６８に示すように、実行される。次いで、これらルーチンの全てが実行され、最後の構成ルーチンから制御が戻された後、メイン・スタートアップ・ルーチン２６０は、上記のようにオペレーティング・システムがブートされる前に、ブロック４７０に示すように、操作モードを切り替えてＩＡ−６４モードに戻す。
【００２７】
したがって、補助構成ルーチンがシステムＲＯＭ２１４に常駐しない場合でも、本発明は、２つ以上のＩＡ−３２構成ルーチンを実行しなければならない場合でも１回だけＩＡ−３２モードにスワップすることにより、ブート・プロセスの効率を最適化する。さらに、システムＲＯＭ２１４が従来のアダプタ・カード（ネットワーク・アダプタ２４１、スモール・コンピュータ・システム・インタフェース（ＳＣＳＩ）ディスク・ドライブをデータ処理システム２００に接続するためのＳＣＳＩカードなど）用の補助構成ルーチンでフラッシュされている場合、本発明はアダプタ・カードに常駐するＩＡ−３２ルーチンの代わりにその補助ルーチンを利用する。したがって本発明は、従来のアダプタ・カードを実際に変更せずに従来のアダプタ・カード用の構成ルーチンを実際に改善することが可能である。本発明はまた、システムＲＯＭ２１４にシステムのＩＡ−３２構成ルーチンの全てに対応する補助構成ルーチンが実装されている場合にＩＡ−６４モードからスワップアウトする必要も低減させる。
【００２８】
さらに、本発明は以前の構成ルーチンを備えていないアダプタ・カード用の補助構成ルーチンの実行を提供する。したがって本発明は、普通なら単にデフォールトの基本入出力システム（ＢＩＯＳ）の設定に従って構成されるはずのアダプタ・カードの構成設定のカストム化を提供する。
【００２９】
本発明について例示的実施形態を参照して詳細に図示し説明したが、本発明の真の精神および範囲から逸脱することなく、本発明には形態および細部の各種変更が行えることが当分野の技術者には理解されよう。たとえば、例示的実施形態では各種のメモリが幾つかのメモリ・アドレスにマップされるが、このマッピングは本発明の精神から逸脱することなく容易に変更できる。たとえば、システムＲＯＭ２１４が４ＧＢマーク（３２ビットでアクセス可能なメモリの最大量）の直ぐ下のメモリ・アドレスにマップされるものとして示されているが、他のアーキテクチャ（６４ビット・システムなど）を備えたシステムでは、システムＲＯＭをそれより高い領域にマップすることもできる。同様に、メモリ・アドレス・スペースの追加部分を補助構成ルーチンにアクセスするために識別することもできる。
【００３０】
また、システムＲＯＭ２１４をＥＥＰＲＯＭとして説明したが、他のメモリ・テクノロジ（コンパクト・フラッシュ・カードなど）をＥＥＰＲＯＭの代わりに、またはそれに加えて使用することもできる。さらに、データ処理システム２００は単一のＣＰＵを備えたパーソナル・コンピュータとして説明してきたが、複数のＣＰＵを備えたデータ処理システムを含めて異なるアーキテクチャも本発明によって利益を得ることができる。同様に、例示的実施形態のアダプタ・カードはＰＣＩアダプタ・カードであるが、本発明は他のバス・アーキテクチャように設計されたカードでも利用することができる。したがって、本発明が例示した特定のアーキテクチャに限定されないことが当分野の技術者には理解されよう。
【００３１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３２】
（１）１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリと、少なくとも第１および第２操作モードをサポートする処理資源とを含むデータ処理システムを構成する方法であって、
前記第１操作モードを活動化するステップと、
前記１個または複数の第２不揮発性メモリ内で、前記第２操作モードを利用する１個または複数の二次構成ルーチンを見出すステップと、
前記１個または複数の二次構成ルーチンを識別するリストを格納するステップと、
前記１個または複数の第１不揮発性メモリ内で、前記第１操作モードを利用する１個または複数の一次構成ルーチンを見つけ出すステップと、
前記１個または複数の一次構成ルーチンを実行するステップと、
前記１個または複数の一次構成ルーチンのどれとも対応しない前記１個または複数の二次構成ルーチンの少なくとも１つを限定するステップと、
前記見出すステップ、格納するステップ、見つけ出すステップ、実行するステップ、および限定するステップの後でだけ前記第１操作モードから前記第２操作モードにスワップするステップと、
その後、前記限定された二次構成ルーチンを実行するステップと
を含んでいる方法。
（２）前記１個または複数の第２不揮発性メモリが、１個または複数のアダプタ・メモリを備えており、
前記１個または複数の二次構成ルーチンを見出す前記ステップが、前記１個または複数の二次構成ルーチンを求めて前記１個または複数のアダプタ・メモリを探索するステップを含んでいる
上記（１）に記載の方法。
（３）前記１個または複数の第１不揮発性メモリが、システム・メモリを備えており、
前記１個または複数の一次構成ルーチンを見つけ出す前記ステップが、前記１個または複数の一次構成ルーチンを求めて前記システム・メモリを探索するステップを含んでいる
上記（１）に記載の方法。
（４）前記１個または複数の一次構成ルーチンが、１個または複数の代替構成ルーチンを含んでおり、
限定する前記ステップが、前記１個または複数の代替構成ルーチンの各々を対応する二次構成ルーチンと突き合わせるステップを含んでおり、
前記限定された二次構成ルーチンを実行する前記ステップが、前記代替構成ルーチンのどれとも一致しない二次構成ルーチンを実行するステップだけを含んでいる
上記（１）に記載の方法。
（５）格納する前記ステップが、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを記録するステップを含んでいる上記（１）に記載の方法。
（６）前記限定された二次構成ルーチンを実行する前記ステップの後、前記第１操作モードにスワップバックするステップと、
その後、オペレーティング・システムをロードするステップと
をさらに含んでいる上記（１）に記載の方法。
（７）前記１個または複数の一次構成ルーチンが、少なくとも１個のＩＡ−６４構成ルーチンを含んでおり、
前記１個または複数の二次構成ルーチンが、少なくとも１個のＩＡ−３２構成ルーチンを含んでおり、
前記１個または複数の一次構成ルーチンを見つけ出す前記ステップが、前記少なくとも１個のＩＡ−６４構成ルーチンを見つけ出すステップを含んでおり、
前記１個または複数の二次構成ルーチンを見出す前記ステップが、前記少なくとも１個のＩＡ−３２構成ルーチンを見出すステップを含んでいる
上記（１）に記載の方法。
（８）１個または複数の第１不揮発性メモリと通信し１個または複数の第２不揮発性メモリと通信し、少なくなくとも第１および第２操作モードをサポートする処理資源と、
前記１個または複数の第１不揮発性メモリおよび前記１個または複数の第２不揮発性メモリにそれぞれ格納された１個または複数の一次構成ルーチンおよび１個または複数の二次構成ルーチンと、
前記１個または複数の二次構成ルーチンを見出すスキャン論理と、
前記１個または複数の二次構成ルーチンを識別するリストを格納する格納論理と、
前記処理資源に前記一次構成ルーチンを実行させる一次実行論理と、
前記一次構成ルーチンのどれとも対応しない前記二次構成ルーチンの全てを限定する限定論理と、
前記スキャン論理、前記格納論理、前記一次実行論理、および前記限定論理が実行されている間、前記第１操作モードを維持するスタートアップ・ルーチンと、
前記スキャン論理、前記格納論理、前記一次実行論理、および前記限定論理が実行された後、前記限定された二次構成ルーチンに前記第２操作モードで実行させる二次実行論理と
を備えるデータ処理システム。
（９）前記１個または複数の第２メモリが、前記１個または複数の二次構成ルーチンを含む１枚または複数のアダプタ・メモリを含んでいる上記（８）に記載のデータ処理システム。
（１０）前記１個または複数の第１不揮発性メモリが、前記１個または複数の一次構成ルーチンを含むシステム・メモリを含んでいる上記（８）に記載のデータ処理システム。
（１１）前記１個または複数の一次構成ルーチンが、１個または複数の代替構成ルーチンを含んでおり、
前記限定論理が、１個または複数の代替構成ルーチンの各々を対応する二次構成ルーチンと突き合わせ、
前記二次実行論理が、前記処理資源に前記代替構成ルーチンのどれとも一致しない二次構成ルーチンだけを実行させる
上記（８）に記載のデータ処理システム。
（１２）前記格納論理が、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを格納する上記（８）に記載のデータ処理システム。
（１３）前記スタートアップ・ルーチンが、前記限定された二次構成ルーチンが実行された後、前記データ処理システムを前記第１操作モードにスワップバックし、
前記スタートアップ・ルーチンが、その後前記データ処理システムに、オペレーティング・システムをロードさせる
上記（８）に記載のデータ処理システム。
（１４）前記１個または複数の一次構成ルーチンが、少なくとも１つのＩＡ−６４構成ルーチンを含んでおり、
前記１個または複数の二次構成ルーチンが、少なくとも１つのＩＡ−３２構成ルーチンを含んでいる
上記（８）に記載のデータ処理システム。
（１５）処理資源と、１個または複数の第１不揮発性メモリと、１個または複数の第２不揮発性メモリとを備え、前記処理資源は少なくとも第１および第２操作モードをサポートするデータ処理システムを構成するプログラム・プロダクトであって、
前記第２操作モードを利用する１個または複数の二次構成ルーチンを見出すスキャン論理と、
前記１個または複数の二次構成ルーチンを識別するリストを格納する格納論理と、
前記処理資源に１個または複数の一次構成ルーチンを実行させる一次実行論理と、
前記１個または複数の一次構成ルーチンのどれとも対応しない前記二次構成ルーチンの全てを限定する限定論理と、
前記スキャン論理、前記格納論理、前記一次実行論理、および前記限定論理を含み、前記スキャン論理、前記格納論理、前記一次実行論理、および前記限定論理が実行されている間、前記処理資源を前記第１操作モードに維持するスタートアップ・ルーチンと、
前記スキャン論理、前記格納論理、前記一次実行論理、および前記限定論理が実行された後、前記限定された二次構成ルーチンを前記第二操作モードで実行させる、前記スタートアップ・ルーチン内の二次実行論理と、
前記スタートアップ・ルーチンをコード化するコンピュータで使用可能な媒体と
を備えるプログラム・プロダクト。
（１６）前記１個または複数の第２不揮発性メモリが、１個または複数のアダプタ・メモリを含んでおり、
前記スキャン論理が、前記１個または複数のアダプタ・メモリをスキャンすることにより前記１個または複数の二次構成ルーチンを見出す
上記（１５）に記載のプログラム・プロダクト。
（１７）前記１個または複数の第１不揮発性メモリが、システム・メモリを含んでおり、
前記一次実行論理が、前記処理資源に前記システム・メモリから前記１個または複数の一次構成ルーチンを取得させる
上記（１５）に記載のプログラム・プロダクト。
（１８）前記１個または複数の一次構成ルーチンが、１個または複数の代替構成ルーチンを含んでおり、
前記限定論理が、前記１個または複数の代替構成ルーチンの各々を対応する二次構成ルーチンと突き合わせ、
前記二次実行論理が、前記処理資源に前記代替構成ルーチンのどれとも一致しない二次構成ルーチンだけを実行させる
上記（１５）に記載のプログラム・プロダクト。
（１９）前記格納論理が、前記１個または複数の二次構成ルーチンの各々に対するアドレスとデバイス識別子とを格納する上記（１５）に記載のプログラム・プロダクト。
（２０）前記スタートアップ・ルーチンが、
前記限定された二次構成ルーチンが実行された後、前記データ処理システムを前記第１操作モードにスワップバックするスワップバック論理と、
前記処理モードが前記第１操作モードにスワップバックした後、前記データ処理システムにオペレーティング・システムをロードさせるオペレーティング・システム初期化論理と
を含んでいる上記（１５）に記載のプログラム・プロダクト。
（２１）前記１個または複数の一次構成ルーチンが、少なくとも１つのＩＡ−６４構成ルーチンを含んでおり、
前記１個または複数の二次構成ルーチンが、少なくとも１つのＩＡ−３２構成ルーチンを含んでおり、
前記一次実行論理が、前記処理資源に前記少なくとも１つのＩＡ−６４構成ルーチンを実行させ、
前記二次実行論理が、前記処理資源に前記少なくとも１つのＩＡ−３２構成ルーチンを実行させる
上記（１５）に記載のプログラム・プロダクト。
（２２）第１および第２操作モードをサポートする処理資源と、
１個または複数の一次構成ルーチンおよび１個または複数の二次構成ルーチンを含むメモリと、
前記処理資源が前記第１操作モードを維持している間、前記一次構成ルーチンの全てを実行する手段と、
前記二次構成ルーチンのどれが前記一次構成ルーチンのどれとも対応しないかを判定する手段と、
前記第１操作モードから前記第２操作モードにスワップする手段と、
前記第２操作モードで、前記一次構成ルーチンのどれにも対応しない前記１個または複数の二次構成ルーチンを実行する手段と
を含んでいるデータ処理システム。
（２３）前記メモリが、
前記一次構成ルーチンを含むシステム・メモリと、
前記二次構成ルーチンを含むアダプタ・メモリと
を含んでいる上記（２２）に記載のデータ処理システム。
【図面の簡単な説明】
【図１】本発明による、異なる操作モードを利用するアダプタ構成ルーチンを実行する機能を備えたデータ処理システムの例示的実施形態のブロック図である。
【図２】図１に示すシステムのメモリ・アドレス・スペースに格納された構造の例示的セットの構造である。
【図３】本発明による、異なる操作モードを利用するアダプタ構成ルーチンを実行するための例示的プロセスの流れ図である。
【図４】本発明による、異なる操作モードを利用するアダプタ構成ルーチンを実行するための例示的プロセスの流れ図である。
【符号の説明】
２００  データ処理システム
２１０  システム・バス
２１２  中央処理ユニット
２１４  システムＲＯＭ
２１６  ランダム・アクセス・メモリ
２１８  ＰＣＩローカル・バス
２２０  ＰＣＩホスト・ブリッジ
２２２  拡張バス・ブリッジ
２２４  ＩＳＡバス
２２６  ディスク・ドライブ
２３０  キーボード
２３２  マウス
２４０  オーディオ・アダプタ
２４１  ネットワーク・アダプタ
２４２  ＩＡ−３２構成ルーチン
２４４  スピーカ
２５０  グラフィックス・アダプタ
２５２  ＩＡ−６４構成ルーチン
２５４  表示装置
２６０  メイン・スタートアップ・ルーチン
２７０  補助構成ルーチン
３００  メモリ図
３１０  アダプタＲＯＭ
３２０  １２８ＫＢのコード・スライス
３３０  従来のリスト
Ａ  ページ結合子
【図１】
0003693240.tif 000002
【図２】
0003693240.tif 000003
【図３】
0003693240.tif 000004
【図４】
0003693240.tif 000005