(57)【要約】【課題】ＢＩＯＳの実行を大幅に加速化する方法を提供する。【解決手段】ＣＰＵがＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭから一番目の命令を読み出して、ＢＩＯＳプログラムを実行し始め、ＣＰＵがキャッシュの非追立てモードＮＥＭをオンして、ＣＡＲを初期化し、ＣＰＵがＢＩＯＳプログラムをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間にコピーして、ＢＩＯＳプログラムを完全にＣＡＲ空間で実行し、ＢＩＯＳプログラムがＣＡＲ空間で実行される最後に、ＣＰＵがシステムメモリを初期化し、システムメモリの初期化が完了した後、ＣＰＵが再びＦｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出し、ＣＰＵがまだ実行されないＢＩＯＳプログラムモジュールをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからシステムメモリにコピーし、ＣＰＵがシステムメモリにおいてＢＩＯＳプログラムを実行して、コンピュータプラットホームの初期化を完了する。【選択図】図１
2008016020.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭから一番目の命令を読み出して、ＢＩＯＳプログラムを実行し始めるステップＡと、
ＣＰＵがキャッシュの非追立てモードＮＥＭをオンして、ＲＡＭとしてのキャッシュ（ＣＡＲ）を初期化するステップＢと、
ＣＰＵがＢＩＯＳプログラムをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間にコピーして、ＢＩＯＳプログラムを完全にＣＡＲ空間で実行するステップＣと、
ＢＩＯＳプログラムがＣＡＲ空間で実行される最後に、ＣＰＵがシステムメモリを初期化するステップＤと、
システムメモリの初期化が完了した後、ＣＰＵが再びＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出すステップＥと、
ＣＰＵがまだ実行されないＢＩＯＳプログラムモジュールをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからシステムメモリにコピーするステップＦと、
ＣＰＵがシステムメモリにおいてＢＩＯＳプログラムを実行して、コンピュータの初期化を完了するステップＧと、を含むことを特徴とするＢＩＯＳ実行を加速化する方法。
【請求項２】
ＣＡＲを初期化するステップは、ＣＡＲ空間に対して一つのベースアドレスを指定し、この後ＣＡＲ空間に対する操作はいずれも前記ベースアドレスに基づき行うステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
ＢＩＯＳプログラムをＣＡＲ空間にコピーするステップは、ＢＩＯＳプログラムをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲにジャンプして入るエントリー、並びにＢＩＯＳプログラムをＣＡＲからＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭにリターンさせるリターンエントリーを設置するステップを含むことを特徴とする請求項１に記載の方法。
【請求項４】
ＣＰＵがＢＩＯＳプログラムを完全にＣＡＲ空間で実行するステップは、『Ｆａｒ  Ｊｕｍｐ』命令を実行することによって、ＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間におけるエントリーにジャンプするステップを含むことを特徴とする請求項３に記載の方法。
【請求項５】
ＣＰＵが再びＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出すステップは、『Ｆａｒ  Ｊｕｍｐ』命令によってＣＡＲ空間からＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭのリターンエントリーにジャンプするステップを含むことを特徴とする請求項３に記載の方法。
【請求項６】
ＣＰＵは１６ビットのＢｉｇ−Ｒｅａｌモードで、ＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出し、且つ、ＣＰＵは３２ビットの保護モードでＣＡＲ空間からＢＩＯＳプログラムを読み出して実行することを特徴とする請求項１に記載の方法。
【請求項７】
ステップＦの前に、ＢＩＯＳはキャッシュのＮＥＭモードをオフして、ＣＡＲ機能をオフし、且つキャッシュをデフォルト状態に回復させることを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータの分野に関し、特にＲＡＭとしてのキャッシュ（Ｃａｃｈｅ  ａｓ  ＲＡＭ、「ＣＡＲ」と略称する）を用いて、ＢＩＯＳの実行を加速化する方法に関する。
【背景技術】
【０００２】
従来のコンピュータシステムに電源を投入した後、ＣＰＵは低速バス（例えば、ＩＳＡ、ＬＰＣ、ＦＷＨ等）を介してＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭから一番目の命令を読み出して、ＢＩＯＳを実行し始める。そして、ＢＩＯＳは、ＣＰＵとチップグループと周辺機器に対して何らかの簡単な電源投入を初期化した後、メモリを初期化し始める。そして、メモリの初期化が完了した後、ＣＰＵはＢＩＯＳメインプログラムをＦｌａｓｈ  ＲＯＭからシステムメモリにコピーした後、メモリから命令を読み出す。これによって、ＢＩＯＳの実行速度が向上される。
【０００３】
中国特許出願ＣＮ０３１５６９０７．２と中国特許ＣＮ１６４１５８０等において、ＢＩＯＳプログラムの実行に用いられるメモリ領域をＣＰＵキャッシュでマッピングし、メモリのアクセス速度を向上させることで、ＢＩＯＳプログラムの実行を加速化する。
【０００４】
特許文献１と特許文献２等は、ＢＩＯＳを加速化して実行させる方法を開示している。この方法では、ＣＰＵキャッシュを利用してＢＩＯＳプログラムに用いられるメモリ領域をマッピングし、ＣＰＵはＢＩＯＳプログラムを実行する場合、『キャッシュヒット』（Ｃａｃｈｅ  Ｈｉｔ）の時は、システムメモリからＢＩＯＳ命令を読み出すことなく、直接にキャッシュからＢＩＯＳ命令を読み出すことから、ＢＩＯＳプログラムの実行が加速化できる。
【０００５】
特許文献３は、外付けカードのオプションＲＯＭを加速化して実行させる方法を開示している。この方法において、ＢＩＯＳが、ある外付けカードのオプションＲＯＭを実行しようとする場合、このオプションＲＯＭをシステムメモリにコピーした後、ＣＰＵキャッシュでこのメモリ領域をマッピングすることによって、オプションＲＯＭの実行を加速化する。
【特許文献１】中国特許出願ＣＮ０３１５６９０７．２号明細書
【特許文献２】中国特許ＣＮ１６４１５８０号明細書
【特許文献３】米国特許出願ＵＳ２００３／０２３８１２号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記の方法には下記の二つの欠点がある。
【０００７】
１．システムメモリが利用可能になった場合だけ、上記の方法を適用することができる。しかし、ＢＩＯＳの実行される初期には、システムメモリは利用できないので、上記の方法は適用することができない。
【０００８】
２．上記の方法を適用しても、ＣＰＵでＢＩＯＳを読み出す時、完全な『キャッシュヒット』を保証することはできず、この場合でも、やはりシステムメモリからＢＩＯＳプログラムを読み出す必要がある。
【０００９】
本発明は、上記の問題を解消し、ＢＩＯＳの実行を加速化するために、ＣＰＵのキャッシュをＲＡＭ（ランダム・アクセス・メモリ）として使用することによって、システムメモリが利用できない場合でも、このＲＡＭ空間でＢＩＯＳが実行でき、ＢＩＯＳの実行を大幅に加速化する方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
新型のＣＰＵ（例えば、Ｉｎｔｅｌ（登録商標）のＰｒｅｓｃｏｔｔ、Ｎｏｃｏｎａ等）には、新しいキャッシュ属性ＮＥＭ（Ｎｏ−Ｅｖｉｃｔｉｏｎ  Ｍｏｄｅ、非追立てモード）が追加されて、この属性はプログラムでＣＰＵのキャッシュを一つのＲＡＭ空間として用いることを許し、即ち、いわゆるＣＡＲ（Ｃａｃｈｅ−ａｓ−ＲＡＭ、ＲＡＭとしてのキャッシュ）である。コンピュータに電源が投入されると、ＢＩＯＳはＮＥＭ属性を利用して、ＣＰＵの該当レジスタを初期化することによって、キャッシュのＣＡＲ機能をオンする。そして、ＢＩＯＳプログラムをＦｌａｓｈ  ＲＯＭからＣＰＵキャッシュにコピーして、キャッシュから直接にＢＩＯＳ命令を読み出す。大部分のＢＩＯＳプログラムが実行し終わるまでに、再度システムメモリを初期化する。システムメモリの初期化が完了した後、ＣＰＵの該当レジスタを設定することによって、ＣＡＲ機能をオフし、ＣＰＵはシステムメモリからＢＩＯＳ命令を読み出して、全てのＢＩＯＳプログラムを完成する。
【００１１】
従って、本発明によれば、ＣＰＵがＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭから一番目の命令を読み出して、ＢＩＯＳプログラムを実行し始めるステップと、ＣＰＵがキャッシュの非追立てモードＮＥＭをオンして、ＲＡＭとしてのキャッシュＣＡＲを初期化するステップと、ＣＰＵがＢＩＯＳプログラムをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間にコピーして、ＢＩＯＳプログラムを完全にＣＡＲ空間で実行するステップと、ＢＩＯＳプログラムがＣＡＲ空間で最後まで実行されると、ＣＰＵがシステムメモリを初期化するステップと、システムメモリの初期化が完了した後、ＣＰＵが再びＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出すステップと、システムメモリを使用するまでに、ＢＩＯＳがキャッシュのＮＥＭモードをオフし、ＣＡＲ機能をオフするとともに、キャッシュをデフォルト状態に回復するステップと、ＣＰＵがまだ実行されないＢＩＯＳプログラムモジュールをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからシステムメモリにコピーするステップと、ＣＰＵがシステムメモリにおいてＢＩＯＳプログラムを実行して、コンピュータの初期化を完了するステップと、を含む、ＲＡＭとしてのキャッシュを利用してＢＩＯＳの実行を加速化する方法を提供する。
【発明の効果】
【００１２】
本発明は、従来の技術に比べると、下記の利点がある。
【００１３】
１．本発明は、ＢＩＯＳの実行される初期にＣＰＵキャッシュをＲＡＭとして用いた後、ＢＩＯＳプログラムをこのＲＡＭ空間にコピーすることから、システムメモリが不可用である場合でも、ＣＰＵは低速バスを介して逐一にＢＩＯＳ命令を取得する必要がない。
【００１４】
２．本発明はＢＩＯＳプログラムをキャッシュにコピーした後、ＣＰＵは完全にキャッシュにおいてＢＩＯＳプログラムを実行することから、『キャッシュヒット』に失敗する問題がないので、キャッシュでシステムメモリをマッピングする方法に比べて、速度は比較的に大きく向上する。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて本発明の具体的な実施の形態を説明する。述べられる実施例は説明の目的のためだけであって、本発明の範囲を限定するものではないことを指摘すべきである。述べられる各種の数値は本発明を限定するものではなく、このような数値について、当業者の要求に応じていかなる適当な修正をも施すことができる。
【００１６】
本実施形態のコンピュータのシステムには、ＣＰＵ、ＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭ、キャッシュ（ＲＡＭとしてのキャッシュ）、およびシステムメモリが含まれている。
【００１７】
図１は、本発明がＮＥＭを利用してＢＩＯＳの実行を加速化する方法のフローチャートである。
【００１８】
コンピュータに電源を投入すると、ＣＰＵはリアルモード（ｒｅａｌ  ｍｏｄｅ）の状態にあって、デフォルトのＣＳ（コードセグメントレジスタ）：ＩＰ（命令ポインタ）はＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭを指している。即ち、システムに電源を投入した後、ＣＰＵは、ＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭから一番目の命令を読み出して、ＢＩＯＳプログラムを実行し始める（Ｓ１０）。
【００１９】
ＣＰＵは１６ビットのＢｉｇ−Ｒｅａｌモード（即ち、１６ビットコード／３２ビットアドレスモード）を初期化し、この時ＤＳ（データセグメントレジスタ）、ＥＳ（エクストラセグメントレジスタ）、ＦＳ（フラグセグメントレジスタ）、ＧＳ（グローバルセグメントレジスタ）、ＳＳ（スタックセグメントレジスタ）セグメントレジスタの値を０とし、ＣＰＵは０〜４ＧＢサイズのメモリ空間をアドレッシングすることができる。しかし、ＣＰＵの命令フェッチ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆｅｔｃｈ）はやはり１６ビットのＣＳ：ＩＰモードである（Ｓ１１）。
【００２０】
ＣＰＵはキャッシュのＮＥＭ（Ｎｏ−Ｅｖｉｃｔｉｏｎ  Ｍｏｄｅ、非追立てモード）モードをオンして、Ｃａｃｈｅ−Ａｓ−ＲＡＭ（ＲＡＭとしてのキャッシュ、ＣＡＲ）を初期化し、ＣＡＲ空間に対して一つのベースアドレスを指定する。この後、ＣＡＲ空間に対する操作はいずれもこのベースアドレスに基づく（Ｓ１２）。
【００２１】
ＣＰＵは、ＢＩＯＳプログラムをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間にコピーし、且つＢＩＯＳプログラムをＦｌａｓｈ  ＲＯＭからＣＡＲにジャンプして入るエントリー（Ｅｎｔｒｙ）、及びＢＩＯＳプログラムをＣＡＲからＦｌａｓｈ  ＲＯＭにリターンさせるリターンエントリー（Ｒｅｔｕｒｎ  Ｅｎｔｒｙ）を設置する（Ｓ１３）。
【００２２】
ＣＰＵは３２ビットの保護モードに切り替えられ、この時のＣＰＵはＣＡＲ空間においてＢＩＯＳプログラムが実行できるように、命令フェッチの時とアドレッシングの時とのいずれも完全に３２ビットのモード（即ち、いわゆるＵＳＥ３２モード）にある（Ｓ１４）。
【００２３】
ＣＰＵは、一つの『Ｆａｒ  Ｊｕｍｐ』命令を実行することによって、Ｆｌａｓｈ  ＲＯＭからＣＡＲ空間におけるプログラムエントリー（Ｅｎｔｒｙ）にジャンプして、この後ＣＰＵはＢＩＯＳプログラムを完全にＣＡＲ空間で実行する（Ｓ１５）。
【００２４】
ＣＰＵは、３２ビットの保護モードとされ、ＣＡＲ空間からＢＩＯＳプログラムを読み出して実行すると共に、プログラム実行の中間結果を保存する（Ｓ１６）。
【００２５】
ＣＰＵは、ＢＩＯＳプログラムがＣＡＲ空間で実行される最後に、システムメモリを初期化する（Ｓ１７）。
【００２６】
システムメモリの初期化が完了した後、ＣＰＵは、ＣＡＲ空間から退出するように、１６ビットのＢｉｇ−Ｒｅａｌモード（ＵＳＥ１６コード／ＵＳＥ３２データ）に切り替えられる（Ｓ１８）。
【００２７】
ＣＰＵは、再度『Ｆａｒ  Ｊｕｍｐ』命令によってＣＡＲ空間からＦｌａｓｈ  ＲＯＭにおけるリターンエントリー（Ｒｅｔｕｒｎ  Ｅｎｔｒｙ）にジャンプして、ＣＰＵは再びＦｌａｓｈ  ＲＯＭからＢＩＯＳプログラムを読み出す（Ｓ１９）。
【００２８】
システムメモリを用いる前に、ＢＩＯＳはキャッシュのＮＥＭモードをオフして、Ｃａｃｈｅ−Ａｓ−ＲＡＭ機能をオフし、且つキャッシュをデフォルト状態に回復させる（Ｓ２０）。
【００２９】
ＣＰＵはまだ実行されないＢＩＯＳプログラムモジュールをＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからシステムメモリにコピーする（Ｓ２１）。
【００３０】
再度、ジャンプ命令によって、ＣＰＵにシステムメモリにおいてＢＩＯＳプログラムを実行させ、ＢＩＯＳ  Ｆｌａｓｈ  ＲＯＭからＢＩＯＳ命令を読み出すことはない。ＣＰＵはシステムメモリにおいて全てのＢＩＯＳプログラムを実行して、コンピュータプラットホームの初期化を完了し、最後にＯＳ又はＳｈｅｌｌ環境に入る（Ｓ２２）。
【００３１】
最後に説明すべきことは、以上の実施例は、ただ本発明の技術的手段を説明するためだけのものであり、本発明の技術的手段はこれに限定されず、本発明について上記の実施例を参照しながら詳しく説明したが、本発明について修正或は均等置換を行うことができるとともに、本発明の思想及び範囲を逸脱することなく、変更／改良され得るものが本発明の請求保護範囲に含まれることは当業者にとって自明である。
【図面の簡単な説明】
【００３２】
【図１】本発明がＮＥＭを利用してＢＩＯＳの実行を加速化する方法のフローチャートである。
【符号の説明】
【００３３】
Ｓ１０〜Ｓ２２    ステップ
【図１】
2008016020.tif 000003