(57)【特許請求の範囲】
【請求項１】
割り込み要求を受付ないシステム管理モードで所定の処理を実行するコンピュータシステムに於いて、
ＯＳの動作中にシステム管理割り込み要求を発生する手段と、
第１のシステム管理割り込み要求に応答して、ＣＰＵの動作モードを前記システム管理モードに変更する手段と、
前記ＣＰＵの動作モードが前記システム管理モードに変更された後、前記ＣＰＵの動作モードを、割り込み要求の受付が可能な割り込み受付可能モードに設定する手段と、
前記割り込み受付可能モードで割り込み制御処理を構成する複数の処理の動作を個々に管理するための複数のテーブルを用いることにより当該複数の処理を並列して実行する手段とを具備し、
前記ＣＰＵの動作モードを前記割り込み受付可能モードに設定する手段は、第２のシステム管理割り込み要求に応答して、ＣＰＵステートマップ情報を前記メモリの第２のエリアに保存する手段を具備し、
前記ＣＰＵの動作モードを前記割り込み受付可能モードに設定する手段は、更に、前記メモリ中の前記第１のエリアに保存された前記ＣＰＵステートマップ情報と前記第２のエリアに保存された前記ＣＰＵステートマップ情報とを入れ替える手段を具備することを特徴とするコンピュータシステム。
【請求項２】
前記ＣＰＵの動作モードを前記割り込み受付可能モードに設定する手段は、前記ＣＰＵの動作モードが前記システム管理モードにされているときに、復帰（ＲＳＭ）命令を実行し、前記メモリ中の前記第２のエリアに保存されたＣＰＵステートマップ情報を前記ＣＰＵに設定する手段を具備することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記コンピュータシステムは、前記割り込み受付可能モードで割り込み制御処理を実行終了後、再度、前記ＣＰＵの動作モードを前記システム管理モードに変更するために、システム管理割り込み要求を発生する手段と、前記システム管理割り込み要求に応答して、前記メモリ中の前記第２のエリアにＣＰＵステートマップ情報を保存する手段と、前記メモリ中の前記第１のエリアに保存された前記ＣＰＵステートマップ情報と前記第２のエリアに保存された前記ＣＰＵステートマップ情報とを入れ替える手段とを具備することを特徴とする請求項２記載のコンピュータシステム。
【請求項４】
前記コンピュータシステムは、前記システム管理モードから、前記システム管理割り込み要求が発生する以前のＣＰＵモードへ復帰する時、前記メモリ中の前記第２のエリアに格納された前記ＣＰＵステートマップ情報を前記ＣＰＵに設定する手段を具備することを特徴とする請求項３記載のコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータシステムの割り込み制御処理に係わり、特に、その割り込み制御処理中での各処理の並列化に関する。
【０００２】
【従来の技術】
近年、携帯が容易でバッテリーにより動作可能なラップトップタイプまたはノートブックタイプのパーソナルコンピュータが種々開発される。このパーソナルコンピュータの割り込み制御処理、例えば、現在の動作環境を保存し、次回コンピュータシステムの起動時に動作環境をもとに戻すラピットレジューム／サスペンド処理や、ドッキングステーションやデバイスベイ対応の外部デバイスをコンピュータシステムの通電中に接続及び切り離すドック／アンドック処理は、オペレーティングシステム（以下、ＯＳと称す）動作中の割り込み制御処理として実行された。
【０００３】
従来技術の割り込み制御処理の手順は、コンピュータシステム内蔵の電源マイコンが電源スイッチが押圧されたことを検出した場合、電源マイコンは割り込み要求線を通じて割り込み制御ロジックに対して割り込み要求を発行する。又は、ＯＳ動作中にドッキングステーションがコンピュータシステム本体の拡張バスコネクタ及び拡張デバイスがデバイスベイにドッキングした場合、同様に、ドッキングの制御を行う各回路は割り込み制御ロジックに対して割り込み要求を発行する。
【０００４】
割り込み制御ロジックは、前記割り込み要求を受信後、中央処理装置（以下、ＣＰＵと称す）に対してシステムマネージメント割り込み（以下、ＳＭＩと称す）を発行する。
【０００５】
ＣＰＵがＳＭＩ信号受信後、ＣＰＵの動作モードをシステムマネージメントモード（以下、ＳＭＭと称する）に移行し、ＢＩＯＳ―ＲＯＭに格納されている割り込み制御処理を起動する。割り込み制御処理は、ＣＰＵに要求された割り込み信号に対応した割り込み制御処理を実行する。
【０００６】
ここで、ＳＭＭとは、米国インテル社製造のＣＰＵに於いて、コンピュータシステムからＣＰＵへＳＭＩ＃信号が入力された場合、ＣＰＵがＢＩＯＳ―ＲＯＭ内の割り込み制御処理に移行するときに設定されるＣＰＵの動作モードである。
【０００７】
ＣＰＵが、ＳＭＭ中に入っている間、コンピュータシステムからＣＰＵに対して新たに割り込み（ＩＲＱ、ＩＮＴＲやＳＭＩ等）を要求することが出来ない。従って、割り込み制御処理は、一連の処理を直接的に実行しなければならず、各種Ｉ／Ｏデバイスに発行した所定のコマンド処理で時間待ちが必要な場合、割り込み制御処理中の他の処理を実行できず、時間待ちを行う必要があった。
【０００８】
次に、割り込み制御処理の例として、図１０に示される通り、ラピットサスペンド処理を説明する。ラピットサスペンド処理は、以下の５つの処理から構成される。
【０００９】
（１）パネルライトオフシーケンス処理（Ｓ６００）
（２）ＨＤＤモータオフシーケンス処理（Ｓ６１０）
（３）各種Ｉ／Ｏデバイスのレジスタ保存シーケンス処理（Ｓ６２０）
（４）メモリチェックサム（Ｓ６３０）
（５）フラッシュＲＯＭ書き換え（Ｓ６４０）
ここで、（１）〜（３）のシーケンス処理に於いては、コマンドを受信した各種Ｉ／Ｏデバイスがそのコマンドに対応する処理を完了するまでにはある一定時間が必要となる。各シーケンスの処理が完了しない限り、次のシーケンスを実行することは出来ない。
【００１０】
このように、各シーケンスの処理に於いては、そのデバイスのコマンド処理に要する時間だけ、次のシーケンス処理のタイミングが遅延されることになる。従って、ＳＭＭを用いたシステムの割り込み制御処理（ラピットサスペンド処理）を実行する時間は、各シーケンス処理のコマンドに対応する時間（待ち時間を含む）の総和となり、多くの時間が要した。
【００１１】
更に、上記ラピットサスペンド処理中に、コンピュータシステムのＩ／Ｏデバイス（電源マイコン）からの電源オフ・オンの要求を受け付けるために、ラピットサスペンド処理中に電源マイコンからの要求の有無をポーリング（Ｓ６６０）してチェックしていたので、タイムリーな処理ができなかった。
【００１２】
【発明が解決しようとする課題】
上記した従来技術では、ＳＭＭ中で割り込み制御処理を実行する場合、他の割り込み要求を受け付けられないので、割り込み制御処理に時間がかかるという問題があった。
【００１３】
また、割り込み制御処理中に他のＩ／Ｏデバイスからの割り込み要求が受け付けられないので、各種Ｉ／Ｏデバイスに対してポーリングして要求の有無をチェックする別途特別な処理を必要としていた。
【００１４】
そこで、本発明は上記の問題を解決するためになされたものであり、割り込み要求を受付ないＳＭＭで、ＣＰＵの動作モードを割り込み可能とし、割り込み制御処理中で必要な処理を並列化することにより割り込み制御処理全体の処理時間の短縮を提供することを目的とする。
【００１５】
【課題を解決するための手段】
この発明は、割り込み要求を受付ないシステム管理モードで所定の処理を実行するコンピュータシステムに於いて、ＯＳの動作中にシステム管理割り込み要求を発生する手段と、第１のシステム管理割り込み要求に応答して、ＣＰＵの動作モードを前記システム管理モードに変更する手段と、前記ＣＰＵの動作モードが前記システム管理モードに変更された後、前記ＣＰＵの動作モードを、割り込み要求の受付が可能な割り込み受付可能モードに設定する手段と、前記割り込み受付可能モードで割り込み制御処理を構成する複数の処理の動作を個々に管理するための複数のテーブルを用いることにより当該複数の処理を並列して実行する手段とを具備し、前記ＣＰＵの動作モードを前記割り込み受付可能モードに設定する手段は、第２のシステム管理割り込み要求に応答して、ＣＰＵステートマップ情報を前記メモリの第２のエリアに保存する手段を具備し、前記ＣＰＵの動作モードを前記割り込み受付可能モードに設定する手段は、更に、前記メモリ中の前記第１のエリアに保存された前記ＣＰＵステートマップ情報と前記第２のエリアに保存された前記ＣＰＵステートマップ情報とを入れ替える手段を具備することを特徴とする。
【００１６】
このような構成によれば、システムの初期化時、ＣＰＵステートマップ情報をメモリ上に保存することによって、ＯＳ起動中にシステム管理割り込み要求を受けた場合、ＣＰＵの動作モードをシステム管理モードから割り込み可能なモードへ変更し、割り込み制御処理を割り込み可能なモードで実行することによって、割り込み制御処理中で必要な処理を並列化することができ、割り込み制御処理全体の処理時間を短縮することができる。
【００１７】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
図１には、この発明の一実施形態に係るコンピュータシステムの構成が示される。このコンピュータシステムは、バッテリ駆動可能なノートブックタイプまたはラップトップタイプのポータブルコンピュータであり、そのシステムボード上には、プロセッサバス１、内部ＰＣＩバス２、内部ＩＳＡバス３、およびＩ２Ｃバス４が配設される。また、このポータブルコンピュータ本体に設けられたドッキングコネクタ１０には、機能拡張のための拡張ユニットとして、図２のドッキングステーション３０がユーザによって必要に応じて接続される。ドッキングコネクタ１０は、図示のように、３つのコネクタ要素１０１，１０２，１０３から構成される。
【００１８】
コンピュータ本体内に、ＣＰＵ１１、ホスト−ＰＣＩブリッジ装置１２、メモリ１３、ディスプレイコントローラ１４、ＤＳＰインタフェースゲートアレイ（以下、ＤＳＰ  ＩＦ  ＧＡと称す）１５、内部ＰＣＩ−ＩＳＡブリッジ装置１６、デバイスベイコントローラ１７、ＰＣＩ−ＤＳ（ＤＳ：ドッキングステーション）ブリッジ装置１８、ＢＩＯＳ―ＲＯＭ１９、ハードディスクドライブ２０、キーボードコントローラ２１、リアルタイムクロック（以下、ＲＴＣと称す）２２、Ｉ／Ｏコントロールゲートアレイ２３、電源コントローラ（以下、ＰＳＣと称す）２４などが設けられる。
【００１９】
ドッキングステーション３０は、ＰＣＩ拡張カード、ＩＳＡ拡張カード、ＰＣカード、ハードディスクドライブ、ＣＤ−ＲＯＭドライブなどの拡張デバイスの増設のために使用されるものであり、このドッキングステーション３０内には、図２に示されているように、外部ＰＣＩバス５および外部ＩＳＡバス６が拡張バスとして配設されており、そこにはＰＣＩ拡張スロットおよびＩＳＡ拡張スロットなどが接続される。ここでは、この外部ＩＳＡバス６にハードディスクドライブ３６が接続される。
【００２０】
また、このドッキングステーション３０内には、ＤＳ−ＰＣＩ／ＩＳＡブリッジ装置３１、ＤＳコントローラ３３、ＥＥＰＲＯＭ３４なども設けられる。
次に、図１のコンピュータ本体に設けられた各コンポーネントの機能および構成について説明する。
【００２１】
ＣＰＵ１１は、たとえば、米インテル社によって製造販売されているマイクロプロセッサ“ｐｅｎｔｉｕｍ”などによって実現される。このＣＰＵ１１の入出力ピンに直結されているプロセッサバス１は、６４ビット幅のデータバスを有す。
【００２２】
ホスト−ＰＣＩブリッジ装置１２は、プロセッサバス１と内部ＰＣＩバス２との間を繋ぐブリッジＬＳＩであり、ＰＣＩバス２のバスマスタの１つとして機能する。このホスト−ＰＣＩブリッジ装置１２は、プロセッサバス１と内部ＰＣＩバス２との間で、データおよびアドレスを含むバスサイクルを双方向で変換する機能、およびメモリバスを介してメモリ１３をアクセス制御する機能などを有す。
【００２３】
更に、ホスト−ＰＣＩブリッジ装置１２は、ＣＰＵ１１に対する割り込みを発行する割り込み制御回路を内蔵し、該回路はＳＭＩ発生回路１２１、ＳＭＩ要因レジスタ１２２、ソフトＳＭＩタイマーイネーブルレジスタ１２３と、カウンタレジスタ１２４から構成される。
【００２４】
ＳＭＩ発生回路１２１は、電源スイッチのオン／オフ動作、ドッキングステーションのドック／アンドック動作、ホットキーからのＨ／Ｗ割り込みに応じてＣＰＵ１１のＳＭＩ＃ピンに対してＳＭＩ＃信号を発行する。
【００２５】
ＳＭＩ要因レジスタ１２２は、ＳＭＩ発生回路１２１に接続され、ＳＭＩ発生の要因を識別するためのレジスタであり、ここでは、電源スイッチのオン／オフ動作、ドッキングステーションのドック／アンドック動作、ホットキーからのＨ／Ｗ割り込みの状態を示すステータスビットを格納する。
【００２６】
ソフトＳＭＩタイマーイネーブルレジスタ１２３は、カウンタレジスタ１１２３のダウンカウントの開始をイネーブルするレジスタである。
カウンタレジスタ１２４は、後述する各シーケンステーブルのうち、次回起動時間が最も早い時刻から現在の時間を引いた値が設定され、カウンタ値が“０”に達した時、ＣＰＵ１１に対してＳＭＩ＃信号を発行する。
【００２７】
メモリ１３は、オペレーティングシステム、デバイスドライバ、実行対象のアプリケーションプログラム、および処理データなどを格納するメモリデバイスであり、複数のＤＲＡＭモジュールによって構成される。
【００２８】
また、このメモリ１３は、システムボード上に予め実装されるシステムメモリ１３１と、システムメモリの一部として使用されるＳＭ−ＲＡＭ１３２から構成される。
【００２９】
これらシステムメモリ１３１およびＳＭ−ＲＡＭ１３２を構成するＤＲＡＭモジュールとしては、シンクロナスＤＲＡＭやＲａｍｂｕｓなど、バンク毎にメモリクロックの供給が必要な高速メモリが利用される。
【００３０】
ＳＭ−ＲＡＭ１３２には、不揮発性メモリ又はバックアップされた６４ｋバイトメモリで構成され、後述するＣＰＵステートマップを格納するエリアＡ及びエリアＢや割り込み制御処理の並列化を行う為のシーケンステーブルの各々が設けられる。
【００３１】
更に、ＳＭ−ＲＡＭ１３２には、ユーザがシステム起動時に入力したパスワード情報やＳＭＭ起動時のＳＭ−ＢＩＯＳ１９への飛び先を指定するＳＭＩハンドラーを格納する。
【００３２】
このメモリ１３は、３２ビット幅または６４ビット幅のデータバスを有する専用のメモリバスを介してホスト−ＰＣＩブリッジ装置１２に接続される。メモリバスのデータバスとしてはプロセッサバス１のデータバスを利用することもできる。この場合、メモリバスは、アドレスバスと各種メモリ制御信号線とから構成される。
【００３３】
内部ＰＣＩバス２はクロック同期型の入出力バスであり、内部ＰＣＩバス２上の全てのサイクルはＰＣＩバスクロックに同期して行われる。ＰＣＩバスクロックの周波数は最大３３ＭＨZ である。ＰＣＩバス２は、時分割的に使用されるアドレス／データバスを有す。このアドレス／データバスは、３２ビット幅である。
【００３４】
ＰＣＩバス２上のデータ転送サイクルは、アドレスフェーズとそれに後続する１以上のデータフェーズとから構成される。アドレスフェーズにおいてはアドレスおよび転送タイプが出力され、データフェーズでは８ビット、１６ビット、２４ビットまたは３２ビットのデータが出力される。
【００３５】
デイスプレイコントローラ１４は、ホストーＰＣＩブリッジ装置１２と同様にＰＣＩバス２のバスマスタの１つであり、ビデオメモリ（ＶＲＡＭ）１４３の画像データをＬＣＤ１４１や外部のＣＲＴディスプレイ１４２に表示する。
【００３６】
ＤＳＰインタフェースゲートアレイ１５は、ＰＣＩデバイスの１つであり、ＤＳＰ１５１、モデム（ＣＯＤＥＣ）１５２、およびサウンドＣＯＤＥＣ１５３と共同して各種サウンド処理や電話／データの通信処理を行なうためのＤＳＰシステムを構成する。
【００３７】
このＤＳＰインタフェースゲートアレイ１５は、メモリ１３に読み込まれて実行される専用のデバイスドライバプログラムの制御の下でＤＳＰ１５１、ＭＯＤＥＭ（ＣＯＤＥＣ）１５２、およびサウンドＣＯＤＥＣ１５３と通信して、ＤＳＰ１５１のデジタル信号処理機能を利用したサウンド処理や通信処理を制御する。
【００３８】
内部ＰＣＩ−ＩＳＡブリッジ装置１６は、内部ＰＣＩバス２と内部ＩＳＡバス３との間を繋ぐブリッジＬＳＩであり、ＰＣＩデバイスの１つとして機能する。この内部ＰＣＩ−ＩＳＡブリッジ装置１６には、ＰＣＩバスアービタ、およびＤＭＡコントローラなどが内蔵される。内部ＩＳＡバス３には、ＢＩＯＳ―ＲＯＭ１９、ＨＤＤ２０、キーボードコントローラ２１、ＲＴＣ２２、Ｉ／Ｏコントロールゲートアレイ２３が接続される。
【００３９】
デバイスベイコントローラ１７は、ＰＣＩデバイスの１つであり、ドッキングされたデバイスベイ仕様の外部拡張デバイスを制御する。
ＰＣＩ−ＤＳブリッジ装置１８は、ドッキングステーション３０との間でバスの接続および切断を制御する。すなわち、ＰＣＩ−ＤＳブリッジ装置１８は、内部ＰＣＩバス２とＰＣＩバス相当のドッキングバスとを繋ぐブリッジＬＳＩであり、ＰＣＩデバイスの１つとして機能する。このドッキングバス７は、ドッキングコネクタ１０のコネクタ要素１０１を介して外部に導出され、ドッキングステーション３０に接続される。
【００４０】
ＢＩＯＳ―ＲＯＭ１９は、システムＢＩＯＳ（Ｂａｓｉｃ  Ｉ／Ｏ  Ｓｙｓｔｅｍ）を記憶するためのものであり、プログラム書き替えが可能なようにフラッシュメモリ（ＥＥＰＲＯＭ）によって構成される。このシステムＢＩＯＳには、システムブート時に実行されるＩＲＴルーチン（ＰＯＳＴ）と、各種Ｉ／Ｏデバイスを制御するためのデバイスドライバ（ランタイム）と、割り込み制御処理を実行するシステム管理プログラム（ＳＭ−ＢＩＯＳ）と、セットアップルーチンやユーザが設定したパスワード情報が含まれる。
【００４１】
システム管理プログラムは、ＳＭＭにおいて実行される割り込みプログラムであり、ＳＭＩハンドラー、およびホットキー処理ルーチンなどの各種ＳＭＩサービスルーチンを含む。ＳＭＩハンドラーは、ＳＭＩの発生要因に応じてＳＭＩサービスルーチンを起動するためのものであり、ホットキーによるＳＭＩが発生した場合にはホットキー処理ルーチンを起動し、他の要因によるＳＭＩが発生した場合にはその要因に対応するＳＭＩサービスルーチンを起動する。本願発明の実施形態に於いては、ＳＭ−ＢＩＯＳは、Ｉ／Ｏトラップ命令とソフトＳＭＩタイマーによりＣＰＵ１１にＳＭＩ＃信号を発行し、ＳＭＩサービスルーチンから割り込み制御処理を実行する。
【００４２】
ハードディスクドライブ（ＨＤＤ）２０は、内部ＩＳＡバス３に接続され、オペレーティングシステム（以降、ＯＳと称す）を格納したプライマリーなＨＤＤであり、このハードディスクドライブ２０はアクセスロック機構によりアクセスロック状態である。更に、ハードディスクドライブ２０は、システムとの入出力を制御するハードディスクコントローラと、パスワードを格納するメモリと、コンピュータシステムのデータを格納可能なメディアから構成される。
【００４３】
Ｉ／Ｏコントロールゲートアレイ２３は、内部ＩＳＡバス３とＩ２Ｃバス４とを繋ぐブリッジＬＳＩであり、ＣＰＵ１１によってリード／ライト可能な複数のレジスタ群を内蔵する。これらレジスタ群を使用することにより、ＣＰＵ１１とＩ２Ｃバス４上の電源コントローラ２４やＤＳコントローラ３３との通信が可能となる。
【００４４】
このＩ／Ｏコントロールゲートアレイ２３からは、ドッキングステーション３０と接続される制御信号線がドッキングコネクタ１０のコネクタ要素１０２を介して複数本外部に導出される。また、Ｉ／Ｏコントロールゲートアレイ２３は、コンピュータ本体とドッキングステーション３０とのドッキング／アンドッキングを検出し、さらにコンピュータ本体が電源オン状態のままでドッキングステーション３０の接続が行われたときに、活線挿抜などによってドッキングステーション３０内の拡張ユニットの破壊やシステムの誤動作が生じないように制御する。
【００４５】
更に、Ｉ／Ｏコントロールゲートアレイ２３は、割り込みレジスタ２３１を内蔵し、電源スイッチのオン／オフを示すデータを電源コントローラ２４経由およびドッキングステーション３０内のドッキング／アンドックを示すデータをＤＳコントローラ３３経由で設定される。
【００４６】
Ｉ２Ｃバス４は、１本のクロック信号線と１本のデータ線（ＳＤＡ）から構成される双方向バスであり、これはドッキングコネクタ１０のコネクタ要素１０３を介して外部に導出される。
【００４７】
電源コントローラ２４は、電源スイッチのオン／オフなどに応じてコンピュータ本体をパワーオン／パワーオフするためのものであり、また、ドッキングステーション３０とのドック／アンドック応じた電源制御も行う。
【００４８】
次に、図２のドッキングステーション３０のコンポーネントについて説明する。
前述したように、ドッキングステーション３０は、ポータブルコンピュータ本体に取り外し可能に装着できる拡張ユニットである。図３はコンピュータ本体がドッキングステーション３０に装着される様子を示すものである。
【００４９】
このような外観を持つドッキングステーション３０内部に設けられたＤＳ−ＰＣＩ／ＩＳＡブリッジ装置３１は、コンピュータ本体からドッキングステーション３０に導出されるドッキングバス７と外部ＰＣＩバス５および外部ＩＳＡバス６とを繋ぐブリッジＬＳＩである。このＤＳ−ＰＣＩ／ＩＳＡブリッジ装置３１はＰＣＩデバイスの１つである。
【００５０】
ＤＳコントローラ３３は、ドッキングステーション３０の電源のオン／オフ、およびポータブルコンピュータ本体とドッキングステーション３０とのドッキング／アンドッキングを制御するためのマイコンであり、Ｉ２Ｃバス４を使用してコンピュータ本体のＩ／Ｏコントロールゲートアレイ２３と通信する。
【００５１】
ＥＥＰＲＯＭ３４は、ドッキングステーション３０の拡張スロットに装着されている拡張カードなどの属性（アドレス、ＤＭＡチャンネル、ＩＲＱ番号、その他）など、プラグ・アンド・プレイ（Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に必要なＰｎＰ情報が格納される。このＰｎＰ情報は、コンピュータ本体とドッキングステーション３０とがドッキングされた時や、コンピュータ本体又はドッキングステーション３０のパワーオン時などに、ＢＩＯＳ―ＲＯＭ１９のシステムＢＩＯＳの制御の下、Ｉ２Ｃバス４を介してＩ／Ｏコントロールゲートアレイ２３によってＥＥＰＲＯＭ３４からリードされる。
【００５２】
カードコントローラ３５は、コンピュータ本体内のカードコントローラ１７と同様に、ＰＣＭＣＩＡ／カードバス準拠のＰＣカードを制御する。
次に、図４と図５のフローチャートと図６のＣＰＵメモリマップを参照して、図１のコンピュータシステムの電源投入時（初期化処理時）の動作について説明する。
【００５３】
図１のコンピュータシステムがパワーオンされると、ＣＰＵ１１はリセットされ、リアルモードで動作を開始する（Ｓ２１０）。システムパワーオン時には、ＢＩＯＳ―ＲＯＭ１９内のシステムＢＩＯＳがＣＰＵメモリアドレスＦ００００〜ＦＦＦＦＦに割当てられており、ＣＰＵ１１は、アドレスＦＦＦＦ０の命令をフェッチする。これにより、システムＢＩＯＳのＰＯＳＴ（Ｐｏｗｅｒ  Ｏｎ  Ｓｅｌｆ  Ｔｅｓｔ）ルーチンの実行がリアルモード環境で開始される。
【００５４】
ＰＯＳＴルーチンは、ＣＰＵ１１のＭＳＷレジスタの設定などによってＣＰＵ１１の動作モードをリアルモードに変更する（Ｓ２２０）。この後、プロテクトモードにおいて、コンピュータシステムの各種ゲートアレイ等の初期化処理やシステムメモリ１３１／ＳＭ−ＲＡＭ１３２のリード／ライトコンペアチェックを実行する（Ｓ２３０〜２４０）。
【００５５】
次に、図６に示される通り、ＳＭ−ＲＡＭ１３２は、ＰＯＳＴルーチンの初期化開始時、ＳＭ−ＢＡＳＥレジスタによって、３００００Ｈに割り付けられており、ＣＰＵ１１にＳＭＩ＃信号が発行された際のＳＭ−ＢＩＯＳへのファージャンプ先を設定する為に、３８０００Ｈに割り付けられたＳＭＩハンドラーにファージャンプ先の設定を実行する（Ｓ２５０）。
【００５６】
ＰＯＳＴルーチンは、ＣＰＵ１１に対するＳＭＩ＃信号発行後のＳＭ−ＲＡＭ１３２のＣＰＵメモリマップの割り付け変更の為に、ＳＭＩ発生回路１２１のイネーブル化を行い、ＳＭＩ発生回路からＣＰＵ１１に対するＳＭＩ＃信号を発行可能とする（Ｓ３１０）。
【００５７】
ＰＯＳＴルーチンは、ＣＰＵのＡＨレジスタにＢＩＯＳファンクションコールを設定し、特定のＩ／Ｏアドレスで割り込みトラップを仕掛け、ＣＰＵ１１に対してＳＭＩ＃信号（以下、Ｉ／ＯトラップＳＭＩと称す）を発行する（Ｓ３２０）。
【００５８】
ＣＰＵ１１に対するＳＭＩ＃信号発行に伴い、割込み発生時のＣＰＵステートマップが３ＦＥ００Ｈ以降５１２Ｋバイトに自動的に格納され、ＳＭＩハンドラーが呼び出される。ＳＭＩハンドラーは、ＳＭＩハンドラーに設定されたファージャンプ先のＳＭ−ＢＩＯＳを起動し、ＳＭ−ＲＡＭ１３２のＣＰＵメモリマップの割り付け変更を実行する。
【００５９】
ここで、ＣＰＵステートマップとは、ＣＰＵ１１にＳＭＩ＃信号を発行して、ＣＰＵ１１の動作モードをＳＭＭに移行する際、ＳＭＩ＃信号発行時のＣＰＵの現在の状態をＳＭ−ＲＡＭ１３２内の所定エリアに保存し、ＳＭＭから抜ける際に、前記エリアに保存していた情報をＣＰＵ１１にストアーするために使用される。
【００６０】
ＳＭ−ＢＩＯＳは、ＳＭ−ＢＡＳＥレジスタ値をＦＦＦＥ００００Ｈに書き換える（Ｓ３３０）。ＳＭ―ＢＡＳＥレジスタ値の書き換えで設定されたＳＭ−ＲＡＭ１３２のＣＰＵメモリマップは、図６に示される通り、ＦＦＦＥ００００Ｈ以降の６４Ｋバイトに割り付けられる。
【００６１】
ＳＭ−ＢＩＯＳは、ＳＭ−ＢＡＳＥレジスタの値を書換え後、ＲＳＭ命令を実行し、以降のＳＭＩ＃信号の発生を禁止する（Ｓ３４０〜Ｓ３５０）。
ＳＭ−ＢＡＳＥレジスタ値の書換え割り込み処理から復帰したＰＯＳＴルーチンは、ＣＰＵ１１が割り込み可能な独自モードを作成する為、３ＦＥ００Ｈ以降５１２Ｋバイトに格納されたＣＰＵステートマップをＳＭ−ＲＡＭ１３２のＦＦＦＥＦＥ００Ｈ以降の５１２バイトのエリアＢに書き込む（Ｓ２７０）。
【００６２】
ここで、ＣＰＵ１１が割り込み可能な独自モードとは、ＳＭＩを含めた全割り込み（ＩＲＱ、ＮＭＩ等）が可能であり、その割り込みをシステムＢＩＯＳが管理可能な状態である。
【００６３】
次に、ＰＯＳＴルーチンは、ＯＳ起動後、  ＳＭＩ発生回路からＣＰＵ１１に対するＳＭＩ＃信号を発行可能とする為、ＳＭＩ発生回路１２１のイネーブル化を実行し、各種デバイスの初期化（各種デバイスへの既定値設定）を実行する（Ｓ２８０〜Ｓ２９０）。
【００６４】
各種デバイスの既定値設定処理終了後、ＰＯＳＴルーチンは、ＣＰＵ１１のＭＳＷレジスタの設定などによってＣＰＵ１１の動作モードをプロテクトモードからリアルモードに変更し、ＯＳを起動する（Ｓ３００）。
【００６５】
次に、図７のフローチャートを参照して、ＯＳ起動中の割り込み制御処理の動作を説明する。
システムＢＩＯＳのＰＯＳＴルーチン完了後、ＯＳに制御を移行した後、サスペンド／レジューム要求の発生、又は、デスクステーションのドッキング／アンドッキング要求の発生、即ち、Ｉ／Ｏコントロールゲートアレイ２３内の割り込みレジスタ２３１に電源スイッチのオン／オフ、又は、ドッキングステーション３０のドック／アンドックの状態変化を設定すると、ポイント−ポイントの割り込み線を介してＳＭＩ発生回路１２１にＳＭＩ＃信号発行を要求する。ＳＭＩ発生回路１２１は、ＳＭＩ要因レジスタ１２２に対応する要因ビットを設定し、ＣＰＵ１１に対してＳＭＩ＃信号を発行する。
【００６６】
ＣＰＵ１１がＳＭＩ＃信号を受信すると、ＣＰＵ１１の動作モードをＳＭＭに変更し、割り込み時のＣＰＵステートをＳＭ−ＲＡＭ内のエリアＢに格納する（Ｓ４１０）。
【００６７】
次に、ＳＭ−ＲＡＭ内のＳＭＩハンドラーに設定されたファージャンプ先のＳＭ―ＢＩＯＳが起動され、ＳＭ−ＢＩＯＳは、ＳＭＩ発生要因のチェックを行う。ＳＭ―ＢＩＯＳは、ＳＭＩ要因レジスタ１２２の内容をチェックし、もしＳＭ−ＢＩＯＳが電源スイッチのオン／オフ動作に伴う状態変化であると判断したならば、ＳＭ−ＲＡＭ１３２のエリアＢに格納されたＣＰＵステートマップ情報を初期化時保存したエリアＡのＣＰＵステートマップ情報と相互に入れ替える（Ｓ４２０〜Ｓ４３０）。
【００６８】
ＣＰＵ１１の動作モードを独自モードに切り替え、ラピットサスペンド処理を並列処理する為、ＳＭ−ＢＩＯＳは、初期化時設定したＣＰＵステートマップ情報中のプログラムカウンタ（以降、ＰＣと称す）の値をラピットサスペンド処理が格納されたＢＩＯＳ―ＲＯＭ番地に設定し、ＲＳＭ命令を実行する。ＣＰＵ１１は、ＲＳＭ命令に応答して、ＳＭ−ＲＡＭ１３２内のエリアＢに格納されたＣＰＵステートマップ情報をＣＰＵ１１内の各レジスタにリストアーする（Ｓ４４０）。
【００６９】
ＣＰＵ１１が独自モードに変更後、ＣＰＵ１１のＰＣに設定されたアドレス値から次の命令を実行し、図８に示された通り、後述するラピットサスペンド処理の並列化を実行する（Ｓ４５０）。
【００７０】
ラピットサスペンド処理の並列化実行終了後、システムＢＩＯＳはＩ／ＯトラップＳＭＩをＣＰＵ１１に発行する。システムＢＩＯＳは、このＳＭＩ＃信号を発行する前に、ＣＰＵ１１のＡＨレジスタにＳＭＭモードでのＢＩＯＳファンクションを設定する（Ｓ４６０）。
【００７１】
ＣＰＵ１１がＳＭＭモードに遷移後、ＳＭ−ＢＩＯＳが起動される。ＳＭ−ＢＩＯＳは、ＳＭＩ要因レジスタ１２２をチェックし、ＳＭＩ発生の要因を確認する。ＳＭ−ＢＩＯＳは、ＳＭＩがＩ／ＯトラップＳＭＩで発行されたことを確認後、ＣＰＵステートマップ情報が格納されたエリアＢのＡＨレジスタの値を確認し、ＳＭ―ＢＩＯＳは、独自モードからのＳＭＩ発行と判断し、ＳＭ−ＲＡＭ１３２内のエリアＢに格納されたＣＰＵステートマップ情報をエリアＡの内容と相互に入れ替える（Ｓ４７０）。
【００７２】
ＳＭ−ＢＩＯＳは、ＲＳＭ命令を実行後、ＳＭ−ＲＡＭ１３２内のエリアＢに格納されたＣＰＵステートマップ情報をＣＰＵ１１にリストアーし、ラピットサスペンド処理に係わる割り込み制御処理の全て終了する（Ｓ４８０）。
【００７３】
次に、図８のＣＰＵ処理の進行状況タイミング、図９のシーケンステーブル内の各ワーキングエリア情報と、図１０の各シーケンス処理のフローチャートを参照して、割り込みを用いた並列処理の動作を説明する。
【００７４】
システムＢＩＯＳは、ラピットサスペンド処理のパネルオフシーケンス処理を起動する為に、ＣＰＵ１１のＡＨレジスタにＢＩＯＳファンクションを設定し、Ｉ／ＯトラップＳＭＩをＣＰＵ１１に発行する（Ｓ５００）。
【００７５】
ＣＰＵ１１の動作モードが、ＳＭＭに遷移後、パネルオフシーケンス処理が呼び出される。パネルオフシーケンス処理は、初めに、電源コントローラ２４のビジーチェックを要求する（Ｓ５１０）。電源コントローラ２４のビジーチェックは、所定インターバル（待ち時間）を費やすので、パネルオフシーケンス処理は電源コントローラ２４のビジーチェック要求後、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ａ”、パネルオフシーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル１）を設定する（Ｓ５２０）。
【００７６】
パネルオフシーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理の動作フラグしか立っていないので、最も早い次回起動時間は、パネルオフシーケンスの起動時間である。
【００７７】
カウンタレジスタ１２４に次回起動時間を設定後、パネルオフシーケンス処理は、ＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【００７８】
パネルオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
ラピットサスペンド処理のメインルーチンに復帰後、ラピットサスペンド処理は、ＣＰＵ１１のＡＨレジスタにＳＭ−ＢＩＯＳファンクションを設定後、Ｉ／ＯトラップＳＭＩをＣＰＵ１１に発行して、ＨＤＤモータオフシーケンス処理を起動する（Ｓ５００）。
【００７９】
起動されたＨＤＤモータオフシーケンス処理は、最初に、ＨＤＤ２０内蔵のハードディスクコントローラのビジーチェックを要求する（Ｓ５１０）。ハードディスクコントローラのビジーチェックは、所定インターバル（待ち時間）を費やすので、ＨＤＤモータオフシーケンス処理はハードディスクコントローラのビジーチェック要求後、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ｂ”、ハードディスクコントローラオフシーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル１）を設定する（Ｓ５２０）。
【００８０】
ハードディスクコントローラオフシーケンス処理は、各シーケンステーブル内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理の次回起動時間の方が、ＨＤＤモータオフシーケンス処理の次回起動時間より早いので、最も早い次回起動時間は、パネルオフシーケンスの起動時間である。
【００８１】
ＨＤＤモータオフシーケンス処理は、カウンタレジスタ１２４にパネルオフシーケンスの次回起動時間を設定後、ＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２５のダウンカウントを開始する（Ｓ５６０）。
【００８２】
ＨＤＤモータオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
ラピットサスペンド処理のメインルーチンに復帰後、ラピットサスペンド処理は、ＣＰＵ１１のＡＨレジスタにＳＭ−ＢＩＯＳファンクションを設定後、Ｉ／ＯトラップＳＭＩをＣＰＵ１１に発行して、各種Ｉ／Ｏレジスタの保存シーケンス処理を起動する（Ｓ５００）。
【００８３】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、各種Ｉ／Ｏレジスタに格納されているデータの出力を要求する為にコマンドを発行する（Ｓ５１０）。各種Ｉ／Ｏレジスタのデータ出力要求の処理は、所定インターバル（待ち時間）を費やすので、各種Ｉ／Ｏレジスタの保存シーケンス処理はコマンド出力後、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ｃ”、各種Ｉ／Ｏレジスタの保存シーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル１）を設定する（Ｓ５２０）。
【００８４】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理の次回起動時間の方が、ＨＤＤモータオフシーケンス処理の次回起動時間や各種Ｉ／Ｏレジスタの保存シーケンス処理の次回起動時間より早いので、最も早い次回起動時間は、パネルオフシーケンスの起動時間である。
【００８５】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、カウンタレジスタ１２４にパネルオフシーケンスの次回起動時間を設定後、ＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【００８６】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
この場合、既に、パネルオフシーケンス処理の起動時間が経過しているので、各種Ｉ／Ｏレジスタの保存シーケンス処理がＲＳＭ命令実行後、直ぐに、カウンタレジスタ１２４はゼロカウントとなる。カウンタレジスタ１２４のゼロカウント到達に応答して、Ｉ／ＯトラップＳＭＩがＣＰＵ１１に発行される。ＳＭ―ＢＩＯＳは、ＳＭ−ＲＡＭ１３２内の各シーケンステーブルから最も早い起動時間であるパネルオフシーケンス処理の処理を実行する（Ｓ５００）。
【００８７】
パネルオフシーケンス処理は、初めに、電源コントローラ２４のビジーチェック後、電源コントローラ２４に対してパネルオフコマンドを出力する（Ｓ５１０）。電源コントローラ２４はパネルオフコマンドの処理を実行するために所定インターバル（待ち時間）を費やすので、パネルオフシーケンス処理は電源コントローラ２４にパネルオフコマンド出力後、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ａ２”、パネルオフシーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル２）を設定する（Ｓ５２０）。
【００８８】
パネルオフシーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理とＨＤＤモータオフシーケンス処理と各種Ｉ／Ｏレジスタの保存シーケンス処理の動作フラグが立っている。最も早い次回起動時間は、ＨＤＤモータオフシーケンスの起動時間である。
【００８９】
カウンタレジスタ１２４に次回起動時間を設定後、パネルオフシーケンス処理は、ＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【００９０】
パネルオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
既に、ＨＤＤモータオフシーケンス処理の起動時間が経過しているので、パネルオフシーケンス処理がＲＳＭ命令実行後、直ぐに、カウンタレジスタ１２４はゼロカウントとなる。カウンタレジスタ１２４のゼロカウント到達に応答して、Ｉ／ＯトラップＳＭＩがＣＰＵ１１に発行される。ＳＭ―ＢＩＯＳは、ＳＭ−ＲＡＭ１３２内の各シーケンステーブルから最も早い起動時間であるＨＤＤモータオフ処理の処理を実行する（Ｓ５００）。
【００９１】
ＨＤＤモータオフシーケンス処理は、ハードディスクコントローラのビジーチェック後、ハードディスクコントローラに対してハードディスクコントローラモータオフコマンドを出力する（Ｓ５１０）。ハードディスクコントローラはモータオフコマンドの処理を実行するために所定インターバル（待ち時間）を費やすので、ＨＤＤモータオフシーケンス処理はハードディスクコントローラにモータオフコマンド出力後、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ｂ２”、ＨＤＤモータオフシーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル２）を設定する（Ｓ５２０）。
【００９２】
ＨＤＤモータオフシーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理、ＨＤＤモータオフシーケンス処理と各種Ｉ／Ｏレジスタの保存シーケンス処理の動作フラグが立っている。最も早い次回起動時間は、各種Ｉ／Ｏレジスタの保存シーケンスの起動時間である。
【００９３】
カウンタレジスタ１２４に次回起動時間を設定後、パネルオフシーケンス処理は、ＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【００９４】
パネルオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
既に、各種Ｉ／Ｏレジスタの保存シーケンス処理の起動時間が経過しているので、ＨＤＤモータオフシーケンス処理がＲＳＭ命令実行後、直ぐに、カウンタレジスタ１２４はゼロカウントとなる。カウンタレジスタ１２４のゼロカウント到達に応答して、Ｉ／ＯトラップＳＭＩがＣＰＵ１１に発行される。ＳＭ―ＢＩＯＳは、ＳＭ−ＲＡＭ１３２内の各シーケンステーブルから最も早い起動時間である各種Ｉ／Ｏレジスタの保存シーケンス処理の処理を実行する（Ｓ５００）。
【００９５】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、レジスタデータ要求のコマンド出力に応答して、各種Ｉ／Ｏからレディー信号を受信する。各種Ｉ／Ｏレジスタの保存シーケンス処理は、各種Ｉ／Ｏ内のレジスタデータを読み出し、システムメモリ内のバックアップされた所定領域に該データを保存する（Ｓ５１０）。各種Ｉ／Ｏレジスタの保存シーケンス処理は、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に各種Ｉ／Ｏレジスタの保存シーケンス処理が終了したことを示すフラグを設定する（Ｓ５２０）。
【００９６】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、各シーケンステーブル内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理とＨＤＤモータオフシーケンス処理の動作フラグが立っている。最も早い次回起動時間は、ＨＤＤモータオフシーケンスの起動時間である。
【００９７】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、カウンタレジスタ１２４に次回起動時間を設定後、ソフトＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【００９８】
各種Ｉ／Ｏレジスタの保存シーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
既に、ＨＤＤモータオフシーケンス処理の起動時間が経過しているので、各種Ｉ／Ｏレジスタの保存シーケンス処理がＲＳＭ命令実行後、直ぐに、カウンタレジスタ１２４はゼロカウントとなる。カウンタレジスタ１２４のゼロカウント到達に応答して、Ｉ／ＯトラップＳＭＩがＣＰＵ１１に発行される。起動されたＳＭ―ＢＩＯＳは、ＳＭ−ＲＡＭ１３２内の各シーケンステーブル１２５から最も早い起動時間であるパネルオフシーケンス処理の処理を実行する（Ｓ５００）。
【００９９】
パネルオフシーケンス処理は、パネルオフコマンド出力に応答して、電源コントローラ２４からレディー信号を受信する。パネルオフシーケンス処理は、レディー信号受信後、２２０ｍｓのウエイト処理を実行する（Ｓ５１０）。パネルオフシーケンス処理は、ＳＭ−ＲＡＭ１３２内のシーケンステーブル１２５に現在のプログラムカウンタ値“Ａ３”、パネルオフオフシーケンス処理が動作中であることを示すフラグと、インターバルタイマ値（次回起動時間：インターバル３）を設定する（Ｓ５２０）
パネルオフシーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理とＨＤＤモータオフシーケンス処理の動作フラグが立っている。最も早い次回起動時間は、ＨＤＤモータオフシーケンスの起動時間である。
【０１００】
パネルオフシーケンス処理は、カウンタレジスタ１２４に次回起動時間を設定後、ソフトＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【０１０１】
パネルオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
既に、ＨＤＤモータオフシーケンス処理の起動時間が経過しているので、パネルオフシーケンス処理がＲＳＭ命令実行後、直ぐに、カウンタレジスタ１２４はゼロカウントとなる。カウンタレジスタ１２４のゼロカウント到達に応答して、Ｉ／ＯトラップＳＭＩがＣＰＵ１１に発行される。起動されたＳＭ―ＢＩＯＳは、ＳＭ−ＲＡＭ１３２内の各シーケンステーブル１２５から最も早い起動時間であるＨＤＤモータオフシーケンス処理の処理を実行する（Ｓ５００）。
【０１０２】
ＨＤＤモータオフシーケンス処理は、ハードディスクコントローラオフコマンド出力に応答して、ハードディスクコントローラからレディー信号を受信する（Ｓ５１０）。ＨＤＤモータオフシーケンス処理は、ＨＤＤモータオフオフシーケンス処理が終了したことを示すフラグを設定する（Ｓ５２０）
ＨＤＤモータオフシーケンス処理は、各シーケンステーブル１２５内の次回起動時間の値を読み出し、最も早い起動時間のシーケンスを判断し、現在時刻から選択された最も早い起動時間を引いた値をカウンタレジスタ１２４に設定する（Ｓ５３０〜Ｓ５５０）。この場合、パネルオフシーケンス処理の動作フラグのみが立っている。最も早い次回起動時間は、パネルオフシーケンスの起動時間である。
【０１０３】
ＨＤＤモータオフシーケンス処理は、カウンタレジスタ１２４に次回起動時間を設定後、ソフトＳＭＩタイマーイネーブルレジスタ１２３を設定し、カウンタレジスタ１２４のダウンカウントを開始する（Ｓ５６０）。
【０１０４】
パネルオフシーケンス処理は、ＲＳＭ命令を実行して、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５７０）。
ラピットサスペンド処理のメインルーチンは、メモリ１３のチェックサムを実行し、その結果をメモリの所定領域に保存する。次に、ラピットサスペンド処理のメインルーチンは、パスワード情報やＰｎＰ情報をＢＩＯＳ―ＲＯＭ１９に保存する。ＢＩＯＳ―ＲＯＭ１９の書き換え中に、カウンタレジスタ１２４のカウントがゼロに達した場合、ＣＰＵ１１に対してＩ／ＯトラップＳＭＩが発行される（Ｓ５００）。ＢＩＯＳ−ＲＯＭ１９の書き換え処理は一時中断され、ＣＰＵ１１のステータスマップ情報は、ＳＭ−ＲＡＭ内のエリアＢに格納される。ＣＰＵのＡＨレジスタにセットされたファンクションに基づき、ＳＭ−ＢＩＯＳ処理が起動される。
【０１０５】
起動されたＳＭ−ＢＩＯＳは、ＳＭＩ要因レジスタ１２２等の内容を確認し、パネルオフシーケンス処理を実行する。パネルオフシーケンス処理は、２２０ｍｓのウエイト後、ＬＣＤパネルをディスエーブル処理し、パネルオフオフシーケンス処理が終了したことを示すフラグを設定する（Ｓ５１０〜Ｓ５２０）
パネルオフシーケンス処理は、各シーケンステーブル１２５内の動作中フラグが全て終了しているので、カウンタレジスタ１２４にはなにも設定せず、ＲＳＭ命令を実行して、ＳＭ−ＲＡＭ１３２内のエリアＢに格納されていたＣＰＵステートマップ情報をＣＰＵにリストアーして、ラピットサスペンド処理のメインルーチンに復帰する（Ｓ５３０〜Ｓ５７０）。
【０１０６】
ＢＩＯＳ―ＲＯＭ１９の書き換え処理は、中断された個所から処理を継続し、その処理を終了する。更に、ラピットサスペンド処理のメインは、各シーケンス処理が全て終了しているかＳＭ−ＲＡＭ１３２内の動作フラグを確認し、各シーケンス処理が全て終了していることを確認後、割り込みを用いた処理並列化（ラピットサスペンド処理）を終了する。
【０１０７】
本願実施形態の様な構成にすれば、ＣＰＵ１１を独自モードに切り替え後、Ｉ／Ｏデバイスからの応答を割り込み制御処理で受け付けられるので、ポーリング処理で検出するより確実な検出が可能となる。
【０１０８】
例えば、ＯＳ起動中に電源スイッチが押圧され、ラピットサスペンド処理の実行中に、再度、電源スイッチが押圧されたとしても、電源コントローラ２４は、Ｉ／ＯコントローラＧＡ２３内の割り込みレジスタに電源スイッチのオン／オフ状態を設定する。割り込みレジスタ２３１は、ＳＭＩ１２１発生回路１２１にポイン−ポイントの割り込み専用線を介して接続されているので、割り込みレジスタ２３１に状態変化に対応したビットを設定することによって、ＳＭＩ＃信号をＣＰＵ１１に発行することが出来る。
【０１０９】
尚、本願発明の実施形態では、ラピットサスペンド処理の並列化の動作を説明したが、通常のサスペンド／レジューム処理、ドック／アンドッキング処理もＣＰＵを独自モードに切り替えることによって並列化処理が出来る。
【０１１０】
【発明の効果】
以上説明したように、この発明によれば、割り込み要求を受付ないＳＭＭで、ＣＰＵの動作モードを割り込み可能とし、割り込み制御処理中で必要な処理を並列化することにより割り込み制御処理全体の処理時間を短縮できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係わるコンピュータシステムのシステム構成を示すブロック図。
【図２】同実施形態のシステムで使用されるドッキングステーションの構成を示すブロック図。
【図３】同実施形態のコンピュータ本体がドッキングステーションに装着される様子を示す図。
【図４】同実施形態のシステムで電源投入時（初期化処理時）の動作の手順を示すフローチャート。
【図５】同実施形態のシステムでＳＭ−ＢＡＳＥレジスタ値の書換え処理の動作の手順を示すフローチャート。
【図６】同実施形態のシステムでＣＰＵのメモリマップを示すブロック図。
【図７】同実施形態のシステムでＯＳ起動中の割り込み制御処理の手順を示すフローチャート。
【図８】同実施形態のシステムで並列化されたラピットサスペンド処理のＣＰＵ進行状況を示すタイミング図。
【図９】同実施形態のシステムでＳＭ−ＲＡＭ中に設けられたシーケンステーブルの構成を示すブロック図。
【図１０】同実施形態のシステムでラピットサスペンド処理中の各シーケンス処理の手順を示すフローチャート。
【図１１】従来のＯＳ起動中の割り込み制御処理の手順を示すフローチャート。
【符号の説明】
１…プロセッサバス、２…内部ＰＣＩバス、３…内部ＩＳＡバス、４…Ｉ２Ｃバス、５…外部ＰＣＩバス、６…外部ＩＳＡバス、１０…ドッキングコネクタ、１１…ＣＰＵ、１２…ホスト−ＰＣＩブリッジ装置、１３…メモリ、１４…ディスプレイコントローラ、１５…ＤＳＰインタフェースゲートアレイ、１６…内部ＰＣＩ−ＩＳＡブリッジ装置、１７…デバイスベイコントローラ、１８…ＰＣＩ−ＤＳブリッジ装置、１９…ＢＩＯＳ―ＲＯＭ、２０…ＨＤＤ、２１…キーボードコントローラ、２２…ＲＴＣ、２３…Ｉ／Ｏコントロールゲートアレイ、２４…電源コントローラ（ＰＳＣ）、３０…ドッキングステーション、３１…ＤＳ−ＰＣＩ／ＩＳＡブリッジ装置、３３…ＤＳコントローラ、３５…カードコントローラ、３６…ＨＤＤ、１００…コンピュータ本体、１３１…システムメモリ、１３２…ＳＭ−ＲＡＭ
【図１】
0003930116.tif 000002
【図２】
0003930116.tif 000003
【図３】
0003930116.tif 000004
【図４】
0003930116.tif 000005
【図５】
0003930116.tif 000006
【図６】
0003930116.tif 000007
【図７】
0003930116.tif 000008
【図８】
0003930116.tif 000009
【図９】
0003930116.tif 000010
【図１０】
0003930116.tif 000011
【図１１】
0003930116.tif 000012