(57)【特許請求の範囲】
【請求項１】
コンピュータ・システムを拡張ベースにホット・ドッキングする方法であって、前記コンピュータ・システムと拡張ベースとは、前記コンピュータ・システムがドッキングされているときには、信号ラインを有する共有入出力バスの一部を介して物理的に結合され、前記コンピュータ・システムは、前記共有入出力バスの前記一部を機能的に結合する複数のスイッチを含み、前記コンピュータ・システムと拡張ベースとは、それぞれが、前記共有入出力バスに結合されたデバイスからのバス制御リクエストを仲裁し許可するローカル・アービタと、ハンドシェーキング信号を送受信するマイクロコントローラと、ドッキング・ハンドシェーキング信号を発生し、前記共有入出力バスの前記信号ラインを物理的に結合するための長さの相違するピンを有する拡張コネクタとを有する、ホット・ドッキング方法において、
ドッキング・ハンドシェーキング信号に応答して、前記信号ラインの物理的結合がこれから生じるのか既に生じているのかを判断するステップと、
物理的結合がこれから生じるのか既に生じているのかを判断する前記ステップに応答して、前記コンピュータ・システムと拡張ベースとの前記ローカル・アービタを、アイドル状態にするステップと、
前記ドッキング・ハンドシェーキング信号によって、前記信号ラインが物理的に結合されていると判断するステップと、
前記信号ラインが物理的に結合されていると判断する前記ステップに応答して、前記複数のスイッチを閉じて、前記共有入出力バスの前記一部を機能的に結合するステップと
を含むことを特徴とするホット・ドッキング方法。
【請求項２】
コンピュータ・システムを拡張ベースからホット・アンドッキングする方法であって、前記コンピュータ・システムと拡張ベースとは、前記コンピュータ・システムがドッキングされているときには、信号ラインを有する共有入出力バスの一部を介して物理的に結合され、前記コンピュータ・システムは、前記共有入出力バスの前記一部を機能的に結合する複数のスイッチを含み、前記コンピュータ・システムと拡張ベースとは、それぞれが、前記共有入出力バスに結合されたデバイスからのバス制御リクエストを仲裁し許可するローカル・アービタと、ハンドシェーキング信号を送受信するマイクロコントローラと、ドッキング・ハンドシェーキング信号を発生し、前記共有入出力バスの前記信号ラインを物理的に結合するための長さの相違するピンを有する拡張コネクタとを有する、ホット・アンドッキング方法において、
ドッキング・ハンドシェーキング信号に応答して、前記信号ラインの物理的結合がこれから生じるかどうかを判断するステップと、
前記コンピュータ・システムと拡張ベースとの前記ローカル・アービタを、物理的結合がこれから生じるかどうかを判断する前記ステップに応答して、アイドル状態にするステップと、
前記ローカル・アービタをアイドル状態にするステップに応答して、前記複数のスイッチを開いて前記共有入出力バスの前記一部を機能的に切断するステップと
を含むことを特徴とするホット・アンドッキング方法。
【請求項３】
コンピュータ・システムと拡張ベースとをホット・ドッキング及びホット・アンドッキングする方法であって、前記コンピュータ・システムと拡張ベースとは、前記コンピュータ・システムがドッキングされているときには、信号ラインを有する共有入出力バスの一部を介して物理的に結合され、前記コンピュータ・システムは、前記共有入出力バスの前記一部を機能的に結合する複数のスイッチを含み、前記コンピュータ・システムと拡張ベースとは、それぞれが、前記共有入出力バスに結合されたデバイスからのバス制御リクエストを仲裁し付与するローカル・アービタと、ハンドシェーキング信号を送信及び受信するマイクロコントローラと、ドッキング・ハンドシェーキング信号を発生し前記共有入出力バスの前記信号ラインを物理的に結合するための長さの相違するピンを有する拡張コネクタとを有する、ホット・ドッキング／アンドッキング方法において、
ドッキング・ハンドシェーキング信号に応答して、前記信号ラインの物理的結合がこれから生じるのか既に生じているのかを判断するステップと、
前記コンピュータ・システムと拡張ベースとの前記ローカル・アービタを、物理的結合がこれから生じるのか既に生じているのかを判断する前記ステップに応答して、アイドル状態にするステップと、
前記ドッキング・ハンドシェーキング信号に応答して、前記信号ラインが物理的に結合されていると判断するステップと、
前記信号ラインが物理的に結合されていると判断する前記ステップに応答して、前記複数のスイッチを閉じて前記共有入出力バスの前記一部を機能的に結合するステップと、
前記ドッキング・ハンドシェーキング信号に応答して、前記信号ラインの物理的結合がこれから生じると判断するステップと、
前記コンピュータ・システムと拡張ベースとの前記ローカル・アービタを、物理的結合がこれから生じると判断する前記ステップに応答して、アイドル状態にするステップと、
前記ローカル・アービタをアイドル状態におくステップに応答して、前記複数のスイッチを開いて前記共有入出力バスの前記一部を機能的に切断するステップと
を含むことを特徴とするホット・ドッキング／アンドッキング方法。
【請求項４】
ホット・ドッキング及びホット・アンドッキング機能を組み入れたコンピュータ・システムにおいて、
第１の部分と第２の部分とを有する入出力バスと、
前記コンピュータ・システムを拡張ベースに接続する拡張コネクタであって、前記入出力バスの個々の信号ラインに対応する複数の電気的接点を介して、前記入出力バスの第２の部分に電気的に結合される拡張コネクタと、
それぞれが、前記入出力バスの前記第１の部分の信号ラインに結合された第１の端子と、前記入出力バスの前記第２の部分の対応する信号ラインに結合された第２の端子と、制御信号を受け取る制御端子とから構成される複数のスイッチであって、前記第１及び第２の端子は、前記制御信号がアサートされるときには電気的に結合され、それ以外のときには電気的に分離される複数のスイッチと、
前記入出力バスの前記第１の部分に結合されており、前記入出力バスに結合されたデバイスからのバス制御リクエストを仲裁しかつ許可するローカル・アービタであって、前記入出力バス上のバス・サイクルを禁止するアイドル状態におかれることが可能なローカル・アービタと、
ドッキング信号及びアンドッキング・ハンドシェーキング信号を発生し、受け取り、かつ、拡張ベースに通信するハンドシェーキング回路と、
前記ハンドシェーキング回路、前記ローカル・アービタ及び前記複数のスイッチの前記制御端子に結合されており、ドッキング／アンドッキングのイベントの期間に、前記ハンドシェーキング信号を用いて前記ローカル・アービタをアイドル状態にするマイクロコントローラと
を備えていることを特徴とするコンピュータ・システム。
【請求項５】
ホット・ドッキング及びホット・アンドッキング機能を組み入れたコンピュータ・システムのための拡張ベースにおいて、
入出力バスと、
前記拡張ベースをコンピュータ・システムに物理的に結合する拡張コネクタであって、前記入出力バスの個々の信号ラインに対応する複数の電気的接点を介して、前記入出力バスに電気的に結合される拡張コネクタと、
前記入出力バスに結合されており、前記入出力バスに結合されたデバイスからのバス制御リクエストを仲裁し付与するローカル・アービタであって、前記入出力バス上のバス・サイクルを禁止するアイドル状態におかれることが可能なローカル・アービタと、
ドッキング・ハンドシェーキング信号及びアンドッキング・ハンドシェーキング信号を発生し、受け取り、かつ、拡張ベースに通信するハンドシェーキング回路と、
前記ハンドシェーキング回路と前記ローカル・アービタとに結合されており、ドッキング／アンドッキングのイベントの期間に、前記ハンドシェーキング信号を用いて前記ローカル・アービタをアイドル状態におくマイクロコントローラと
を備えていることを特徴とする拡張ベース。
【請求項６】
ホット・ドッキング及びホット・アンドッキング機能を組み入れたコンピュータ・システムにおいて、
第１の入出力バス部分と、
前記第１の入出力バス部分を拡張ベースの第２の入出力バス部分に物理的に結合する拡張コネクタと、
前記第１の入出力バス部分に結合されており、前記第１の入出力バス部分に結合されたデバイスからのバス制御リクエストを発生するローカル・アービタであって、ドッキング／アンドッキングのイベントの前に前記第１の入出力バス部分にローカル・アービタが駐在するときに、アイドル状態におかれることが可能なローカル・アービタと
を備えていることを特徴とするコンピュータ・システム。
【請求項７】
ホット・ドッキング及びホット・アンドッキング機能を組み入れた拡張ベースにおいて、
第１の入出力バス部分と、
前記第１の入出力バス部分を拡張ベースの第２の入出力バス部分に物理的に結合する拡張コネクタと、
前記第１の入出力バス部分に結合されており、前記第１の入出力バス部分に結合されたデバイスからのバス制御リクエストを発生するローカル・アービタであって、ドッキング／アンドッキングのイベントの前に前記第１の入出力バス部分にローカル・アービタが駐在するときに、アイドル状態におかれることが可能なローカル・アービタと
を備えていることを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広くは、ラップトップ・コンピュータと付随するドッキング・ステーションとに関し、更に詳しくは、コンピュータ・システムをスタンバイ又はサスペンド・モードにおくことを必要とせずにホット・ドッキング及びアンドッキングする方法に関する。
【０００２】
【従来の技術】
マイクロプロセッサ及びメモリ・システムにおける性能の向上の結果として、コンピュータは、非常に強力になり、かつては大型のメインフレーム・コンピュータでなければ実行できなかったタスクを、今日では、実行できるようになっている。技術的な変化は、特に、ポータブル・コンピュータの領域で急であるが、ポータブル・コンピュータにおいては、電力消費の効率が、特徴、コスト、サイズ、重量及び性能に対して均衡関係にある。多くのコンピュータ・ユーザはポータブル・コンピュータが機能的にはデスクトップ・ユニットと同等であることを望むので、設計上の選択は、特に困難である。「ポータブル・コンピュータ」という用語は、広い意味で用いられており、バッテリ又は太陽電力によって給電されるコンピュータ類を表す。ポータブル・コンピュータに親しんでいる人間であれば、ラガブル（luggable）、ラップトップ、ノートブック及びハンドヘルドなどの、他のラベルも認識することが容易であろう。このようなカテゴリ化は、より大型のポータブル・コンピュータ市場の中のあるマーケティング部分を指定するのに用いられる。
【０００３】
コンピュータ・システムの設計者にとっては、多くのオプションが入手可能である。単純に入手可能な限りで最高の性能を有するプロセッサを用いて設計を行い最高性能の製品を提供しようとするのも簡単ではないが、それだけでは、今日の市場では十分ではない。プロセッサは、高性能の構成要素と高性能のＩ／Ｏ（入力／出力）バスとによってサポートされなければならない。次のような複数の標準化されたＩ／Ｏバスが、システムの設計者にとって入手可能である。すなわち、ＩＳＡ、ＥＩＳＡ及びＰＣＩ等である。今日のコンピュータは、典型的には、これらの３つの何らかの組合せを用いて、ユーザに、ＰＣＩの性能とＩＳＡ又はＥＩＳＡへの逆向きの互換性とを提供するように設計されている。これらの３つのバスは、当業者にとっては一般的なものである。
【０００４】
ある性能上の規準は、あるメーカのコンピュータとその競争会社のコンピュータとを区別する、コンピュータの特別の特徴に関するものである。これらの追加された特徴は、結果的にサイズと重量とを増加させる。例えば、ソフトウェア及びマルチメディア・ドキュメントは、大容量の記憶装置を必要とする可能性があり、非常に容量の大きなハード・ディスク・ドライブが必要となることが多い。しかし、大容量のディスク・ドライブは、ポータブル・コンピュータにとって望ましい限度を超えて大きく、かつ重いことが通常である。また、ポータブル・コンピュータに機能を追加する能力を持たせることも望ましい。しかし、典型的な拡張ベイは、ポータブル・システムのサイズ上の長所を相殺してしまう恐れがある。
【０００５】
サイズと重量とを犠牲にせずに、さらに特徴を追加する方法で知られているのは、拡張ベース・ユニット（ドッキング・ステーションとも称される）を使用することである。拡張ユニットとは、典型的には交流電力で動作しユーザのデスクの上に置かれる携帯用ではないユニットである。ユーザが机の上で作業をしている際には、ポータブル・コンピュータは、拡張ユニットと一体化され、追加的な機能を獲得する。例えば、拡張ユニットは、ローカル・エリア・ネットワーク、大容量のディスク・ドライブ、ＣＲＴ、フルサイズのキーボード、フロッピ又はＣＤＲＯＭドライブ及びそれ以外の周辺機器に接続するためのネットワーク・インターフェース・ユニットを有することがある。
ポータブル・コンピュータと拡張ベース・ユニットとの間の接続は、標準がまだ確立されていないため、典型的には、装置に固有のものである。ポータブル・コンピュータを拡張ベース・ユニットに結合させる１つの公知の方法は、既存のＩ／Ｏバスを介するものである。ＰＣＩバスとＩＳＡバスとを有するポータブル・コンピュータでは、どちらのバスも、拡張ベース・ユニットへの接続に用いることができる。最も高い性能のためには、ＰＣＩバスが好ましい。
【０００６】
【発明が解決しようとする課題】
しかしながら、ポータブル・コンピュータとドッキング・ステーションとを接続／遮断する現在の方法、すなわちドッキング方法及びアンドッキング方法は、理想的とはいえない。「コールド・ドッキング」（cold docking）として知られている方法を用いると、ユーザは、どのようなアンドッキング／ドッキングの動作にも先だって、すべてのアプリケーションを閉じ、システムへの電源をオフにしなければならない。このタイプのドッキングは、ポータブル・コンピュータがドッキング・ステーションにおける周辺機器を認識するためには、再始動（リブート）を必要とする。更に、新たな周辺カードを用いてドッキング・ステーションをアップグレードする際には、ユーザは、割り込みやダイナミック・メモリ・アクセス（ＤＭＡ）を理解し、コンフィギュレーション（環境設定）・ジャンパを物理的に設定することができる程度の技術的な知識を有していなければならない。
【０００７】
新たなプラグ・アンド・プレイ（ＰｎＰ）標準のために、ドッキング及びアンドッキングをいくぶん容易にすることができるようになった。「ウォーム（warm）ドッキング」機能を組み入れているシステムでは、ポータブル・コンピュータは、ドッキング／アンドッキングの前に、「サスペンド」又は「スタンバイ」状態にされなければならない。スタンバイ状態に入ることは、通常は、ポータブル・コンピュータ上のボタン又はホット・キーを押下することによって達成される。典型的なスタンバイ状態では、システムの状態はシステム・メモリに記憶されており、可能であれば、すべてのデバイスは低電力状態におかれ、フロッピ・ドライブ、ハード・ドライブ及びほとんどの部分の電力パワーはオフにされる。バス・クロックもまた消勢されるが、低周波のクロックがアクティブなまま保持され、システム・メモリを維持する。プラグ・アンド・プレイ機能を用いると、ポータブル・コンピュータは、スタンバイ状態を終了する際に周辺機器を認識してアクティブ状態にすることができ、リブートの必要はない。しかし、スタンバイ状態で過ごす時間は、不所望に長いことが多い。
【０００８】
多くのドッキング・システムにおいて、ポータブル・コンピュータは、所定の時間が経過すると、自動的にスタンバイ状態を終了するように構成されている。この時間の長さは、安全のための追加時間を加えた上で、モータによるドッキング／アンドッキング作業の完了に十分でなければならない。従って、追加時間が、ドッキング／アンドッキング・プロセスに加えられるが、その理由は、スタンバイ・モードに入るためのものである。現在では、ポータブル・コンピュータ・システムを最初に中断（サスペンド）させ又は完全にパワーをオフにすることなくドッキング／アンドッキングを終了する効果的な方法は存在していない。
【０００９】
【課題を解決するための手段】
簡単にいえば、本発明によるポータブル・コンピュータ及びドッキング・ステーションは、ホット・ドッキング／アンドッキング能力を組み入れたものである。ドッキング／アンドッキングに続くシステムのリコンフィギュレーション（再度の環境設定）に先立って、通常のコンピュータの動作を中断させる必要はない。ドッキング又はアンドッキング及びシステムの構成要素のりコンフィギュレーションに要求される時間と不便さが、従来技術のシステムと比較して縮小される。ポータブル・コンピュータとドッキング・ステーションとは、共有されるＰＣＩバスを介して、物理的に結合される。拡張コネクタを用いて、ポータブル・コンピュータにおけるＰＣＩバスの部分を、拡張ベースにおけるＰＣＩバスに付属させる。長い、中間の長さの及び短いピンを、拡張コネクタに設ける。すべてのＰＣＩバスの信号ラインは、ポータブル・コンピュータがドッキングされているときには、中間の長さのピンを介して個別的に接続されている。短いピン及び長いピンは、ポータブル・コンピュータ及び拡張ベースにおけるマイクロコントローラに、ドッキング／アンドッキング・イベントの間の中間の長さのＰＣＩバスの信号ピンの接続状態を知らせるのに用いられる。
【００１０】
ドッキング・プロセスの間には、例えば、拡張コネクタの長いピンは、最初に接続され、信号をマイクロコントローラに与えて、これから生じるドッキング・イベントを指示する。短いピンは、マイクロコントローラに、ＰＣＩバスの信号ピンは既に接続されていることを知らせるように機能する。同様にして、短いピンは、最初に切り離されてアンドッキング・イベントの予備的な警告を与え、他方で、長いピンは、アンドッキング・プロセスの完了を指示する。
ポータブル・コンピュータとドッキング・ステーションとは、ポータブル・コンピュータに存在する低いオン抵抗のスイッチを介して機能的に接続される。ドッキング・イベントの後で、このスイッチが閉じることで、ドッキング・ステーションにある共有ＰＣＩバスの部分とポータブル・コンピュータにおけるＰＣＩバスとが接続される。スイッチが開くと、ＰＣＩバスは、機能的に孤立する。スイッチは、ポータブル・コンピュータにおけるマイクロコントローラが発生する信号によって、制御される。ホット・ドッキングの間には、マイクロコントローラは、スイッチが閉じる前に拡張ベースにおけるパワーがイネーブルされていることを確認する。
【００１１】
好適実施例においては、ポータブル・コンピュータにおけるマイクロコントローラは、長いピン及び短いピンの接続状態の変化の前に、及びその変化に従って、システム管理割り込み（ＳＭＩ）を発生する。ＳＭＩは、ＢＩＯＳとオペレーティング・システムとに、ドッキング／アンドッキング・イベントが生じていることを知らせる。ポータブル・コンピュータとドッキング・ステーションとの両方共に、共有ＰＣＩバスに結合されたデバイスからのバス制御リクエストを仲裁して付与するローカル・アービタを含む。これらのローカル・アービタは、オペレーティング・システム（システムＢＩＯＳを介して）又はマイクロコントローラのどちらかによって、アイドル状態にすることができる。アービタは、ドッキング及びアンドッキング・イベントの間はアイドル状態であってＰＣＩバス上でのバス・サイクルを禁止し、それによって、サイクルが失われてしまうことを回避する。
【００１２】
開示された実施例のポータブル・コンピュータ・システムはまた、プラグ・アンド・プレイ標準に従う機能を備えている。ホット・ドッキング・イベントの終了の後で、ＰＣＩプラグ・アンド・プレイ及び拡張ベースのプラグ・アンド・プレイのシステムのリコンフィギュレーションが実行され、それによって、すべてのシステム・リソースが、オペレーティング・システムによって認識され適切に利用される。同様にして、プラグ・アンド・プレイのリコンフィギュレーションによって、ポータブル・コンピュータが、ホット・ドッキングの後でドッキング・ステーションの構成要素を認識することが回避される。
【００１３】
【発明の実施の態様】
本明細書では、次に挙げる文献を援用する。
"BUS SYSTEM FOR SHADOWING REGISTERS," by Dwight D. Riley and David J. Maguire、米国特許出願第08/684,486号、本出願と同時継続中◎
"CIRCUIT FOR HANDLING DISTRIBUTED ARBITRATION IN A COMPUTER SYSTEM HAVING MULTIPLE ARBITERS," by Dwight D. Riley, James R. Edwards, and David J. Maguire、米国特許出願第08/684,412号、本出願と同時継続中◎
"LONG LATENCY INTERRUPT HANDLING AND INPUT/OUTPUT WRITE POSTING," by David J. Maguire and James R. Edwards, 米国特許出願第08/684,485号、本出願と同時継続中◎
"SERIAL BUS SYSTEM FOR SHADOWING REGISTERS," by David J. Maguire and Hung Q. Le、米国特許出願第08/684,710号、本出願と同時継続中◎
"APPARATUS AND METHOD FOR POSITIVELY AND SUBTRACTIVELY DECODING ADDRESSES ON A BUS," by Gregory N. Santos, David J. Maguire, Dwight D. Riley, and James R. Edwards、米国特許出願第08/684,584号、本出願と同時継続中◎
"TWO ISA BUS CONCEPT," by Gregory N. Santos, David J. Maguire, Dwight D. Riley and James R. Edwards、米国特許第08/671,316、本出願と同時継続中◎
"RECONFIGURABLE DUAL MASTER IDE INTERFACE," by Gregory N. Santos, David J. Maguire, William C. Hallowell and James R. Edwards、米国特許出願第08/684,490号、本出願と同時継続中◎
図面を参照すると、図１は、本発明を用いたコンピュータ・システムのブロック図である。このコンピュータ・システムは、ラップトップ部分Ｌ（以下では、ラップトップ・コンピュータＬと称する）と、ドッキング・ステーション／拡張ベース・ユニット部分Ｅ（以下では、拡張ベースＥと称する）とに、分割されるように示されている。ラップトップ・コンピュータＬは、遠隔的（リモート）な計算動作のために拡張ベースＥからの取り外しが可能な、自律的に動作可能な装置である。ラップトップ・コンピュータＬが拡張ベースＥの中にドッキングされているときには、ラップトップ・コンピュータＬは、交流電力で動作する。ラップトップ・コンピュータＬが拡張ベースＥから取り外されたときには、ラップトップ・コンピュータＬは、バッテリ電力によって、動作する。拡張ベースＥから取り外されたときでも交流電力によってラップトップ・コンピュータＬを動作させることのできる機構も設けられている。拡張ベースＥは、典型的には、空間的又は電力に関する考慮から、ラップトップ部分Ｌには含まれていない機能の拡張を提供する。
【００１４】
中央処理装置（ＣＰＵ）１００がラップトップ・コンピュータＬの中に設けられているが、これは、インテル社のＰｅｎｔｉｕｍ（商標）やそれと同等のプロセッサなどの従来のマイクロプロセッサである。ＣＰＵ１００は、ホスト・バス１００に結合し、キャッシュ・メモリ１０２、移動用（モバイル）周辺機器相互接続バス・キャッシュ・コントローラ（ＭＰＣ）１０８及び１対のモバイル・データ・バッファ（ＭＤＢ）１０４などのシステムのロジックと通信する。キャッシュ・メモリ１０２は、ＣＰＵ１００に対する従来型のキャッシュ・メモリであり、好ましくは、高速同期バースト・スタティック・ランダム・アクセス・メモリ（ＲＡＭ）を用いる。ＭＰＣ１０８は、キャッシュ・メモリ１０２にインターフェースを提供し、タグ（tag）ＲＡＭと、キャッシュ・メモリ１０２の種々のキャッシュ方法、サイズ及び速度の環境設定すなわちコンフィギュレーションを作成するそれ以外のロジックとを含む。
【００１５】
ＭＰＣ１０８とＭＤＢ１０４ともまた、システム・メモリ１０６と、周辺機器インターフェース（ＰＣＩ）バス１１２とに結合されている。ＭＰＣ１０８は、システム・メモリ１０６に対してアドレスと制御とを与えるが、システム・メモリ１０６は、２５６メガバイトまでの従来型のＤＲＡＭから構成されている。ＭＤＢ１０４は、ホスト・バス１１０とシステム・メモリ１０６との間に、６４ビットのデータ経路を提供する。ＭＰＣ１０８及びＭＤＢ１０４とは、３つの主な機能上のインターフェースを有している。すなわち、プロセッサ／キャッシュ・インターフェースと、システム・メモリ・インターフェースと、ＰＣＩバス・インターフェースと、である。ＭＤＢ１０４は、３つのインターフェースの間でのデータのバッファリングを担当し、他方で、ＭＰＣ１０８は、アドレシング、コマンド及び制御を担当する。これらのインターフェースのそれぞれは、相互に独立動作し、３つのインターフェースの中の任意の２つの間の読出（リード）及び書込（ライト）ポスティング（posting）のためのキュー（queues）を含む。プロセッサ／キャッシュ・インターフェースにより、ＣＰＵ１００は、読出サイクル中にサイクルをパイプライン処理することが可能になり、タグＲＡＭへのスヌープ・アクセスが、パイプライン・サイクルが実行されている間に生じることが可能になる。メモリ・インターフェースは、システム・メモリ１０６を制御して、制御信号を、ＭＤＢ１０４に発生する。このインターフェースによれば、また、読出多重コマンド（read multiple command）を生じるＰＣＩマスタに対する先読出（read ahead）動作を実現させる。ＰＣＩインターフェースによれば、ＣＰＵ１００がＰＣＩバス１１２にアクセスしているときにはＭＰＣ１０８がＰＣＩマスタとして作用し、ＰＣＩデバイスがシステム・メモリ１０６にアクセスしているときにはＰＣＩスレーブとして作用することが可能になる。
【００１６】
ＰＣＩバスは、高いスループットを有し、Ｉ／Ｏ機能をサポートするローカルなプロセッサの数が増加することを利用するように設計されている。例えば、ほとんどのディスク・コントローラ、特に、小型コンピュータ・システム・インターフェース（ＳＣＳＩ）・コントローラとネットワーク・インターフェース・カード（ＮＩＣ）は、ホスト・プロセッサへの要求を緩和するためのローカルなプロセッサを含む。同様にして、ビデオ・グラフィク・ボードは、より高いレベルの機能伝達を許容するインテリジェントなグラフィク・アクセラレータを含むことが多い。典型的には、これらのデバイスは、バス・マスタとしての機能を組み入れており、可能な限り最も高速にデータを伝送することが可能である。既に述べたように、潜在的なバス・マスタは、ＣＰＵ／メイン・メモリのサブシステム（ＭＰＣ１０８を介しての）を含む。
【００１７】
ＰＣＩバス１１２は、ラップトップ・コンピュータＬと拡張ベースＥとの間の通信コンジットを与える。ＰＣＩバス１１２の一部１１２ａは、ラップトップ・コンピュータＬの中に存在し、ＰＣＩバス１１２のそれぞれの信号に対するクイックスイッチ１１３を含む。好適実施例では、クイックスイッチ１１３は、低損失のシリアル（直列）・インラインＭＯＳＦＥＴデバイスであり、そのゲート（制御ライン）は、ＭＳＩＯ−Ｌ１２４からのコントロール信号ＣＯＮＴＲＯＬによって駆動される。クイックスイッチ１１３は、従って、ホット・プラグ機能を容易にするために用いることができる。ラップトップ・コンピュータＬが拡張ベースＥの中にドッキングされ、クイックスイッチがオンに切り換えられると、拡張ベースＥの中にあるＰＣＩバス１１２の一部１１２ｂは、拡張コネクタ１４６を介して部分１１２ａに結合されて、拡張されたＰＣＩバス１１２を与える。拡張コネクタ１４６と関連するドッキング／アンドッキング・ロジックの詳細は、図２に示されている。
【００１８】
ラップトップ・コンピュータＬでは、ＰＣＩバス１１２は更に、ビデオ・グラフィクス・コントローラ１１４、カードバス・インターフェース１１６（特に、１１６ａ）及びモービル・インテグレーティド（統合）・システム・コントローラ・ラップトップ１１８（特に、ＭＩＳＣ−Ｌ１１８ａ）に結合される。拡張ベースＥでは、ＰＣＩバス１１２ｂは更に、第２のＭＩＳＣ１１８（ＭＩＳＣ−Ｅ１１８ｂ）、２つのＰＣＩスロット１４８及び第２のカードバス・インターフェース１１６（特に１１６ｂ）に結合される。ビデオ・グラフィク・コントローラ１１４は、更に、低電力の液晶ディスプレイ（ＬＣＤ）１２０又はＣＲＴやそれ以外の任意のスタイルのモニタに結合される。カードバス・インターフェース１１６は、好ましくはＰＣＭＣＩＡ（Personal Computer Memory Card International Association）スタイルのネットワーク・カード、モデム・カード、ソリッド・ステート・ストレージ・カード及び回転ストレージ・カードとの通信のために設けられる。ＭＩＳＣ１１８は、ＩＳＡ（Industry Standard Architecture）バス１３８又は１４０のためのインターフェースと、ハード・ドライブ１２２との通信のためのＩＤＥ（Integrated Drive Electronics）ハード・ドライブ・インターフェースとを与える。ＭＩＳＣ１１８は、ラップトップ・コンピュータＬでの使用のためにＭＩＳＣ−Ｌ１１８ａとして及び拡張ベースＥでの使用のためにＭＩＳＣ−Ｅ１１８ｂとしての両方のための入力ピン（ＬＡＰ＿ＥＸＴ＿）に基づいてコンフィギュレーション可能である。従って、２つのＭＩＳＣデバイス１１８ａ及び１１８ｂは、ＰＣＩバス１１２に結合されているが、ＭＩＳＣ−Ｌ１１８ａがＰＣＩバスの一部１１２ａに結合され、ＭＩＳＣ−Ｅ１１８ｂがＰＣＩバスの一部１１２ｂに結合される。ＭＩＳＣ−Ｌ１１８ａは、更に、内部ＩＳＡバス１３８に結合され、他方で、ＭＩＳＣ−Ｅ１１８ｂは、外部ＩＳＡバス１４０に結合される。ＩＳＡバス１４０は、当業者には広く知られている。
【００１９】
ＭＩＳＣ−Ｌ１１８ａとＭＩＳＣ−Ｅ１１８ｂとの一般的な機能は非常に類似しており、それらの機能の一部を簡略化のために同時に説明する。ＭＩＳＣ１１８は、ＰＣＩバス１１２を、ＩＳＡバス１３８又は１４０と架橋（ブリッジ）し、ＰＣＩバス１１２上でのマスタ及びスレーブの両方として、また、ＩＳＡバス１３８又は１４０上のバス・コントローラとして、機能する。特に、ＭＩＳＣ１１８は更に、ローカルなＰＣＩバス・アービタを含むバス仲裁（arbitration）回路、ＩＳＡバス・アービタ（arbiter）及びラップトップＬがドッキングされているときにＭＩＳＣ−Ｌ１１８ａとＭＩＳＣ−Ｅ１１８ｂとの間のバス・アクセスを仲裁するのに用いられるトップ・レベル・アービタ１９２（図２）を含む。トップ・レベル・アービタ１９２は、ラップトップがドッキングされているときにだけ、アクティブ状態である。ＭＩＳＣ１１８という手段によって、エンハンス型の直接メモリ・アクセス（ＥＤＭＡ）コントローラとＩＳＡバス・マスタとは、ＰＣＩバス１１２へのアクセスを得ることができる。
【００２０】
本発明の好適実施例では、ＭＩＳＣ１１８は、また、８２３７互換の直接メモリ・アクセス（ＤＭＡ）コントローラ、高速ＩＤＥハード・ドライブのためのエンハンス型のＤＭＡコントローラ、８２５４互換のタイマ、８２５９互換の割り込みコントローラ、ホット・ドッキング・サポート・ロジック、システム・パワー管理ロジック及びプラグ・アンド・プレイ・サポート（すべてが、図１に含まれてはいない）を組み入れている。ある構成要素は、コンフリクトや重複を回避するために、ソフトウェアによって初期化の際にディセーブルされる。ＭＩＳＣ１１８は、また、ＭＩＳＣ−Ｅ１１８ｂからＭＩＳＣ−Ｌ１１８ａに割り込みをシリアルに送るためのシリアル割り込みインターフェース１４４を含む。このシリアル割込インターフェース１４４は、ＰＣＩベースのシステムにおいて標準的なＩＳＡ割り込みをサポートする割込アーキテクチャを与える。拡張ベースＰＣＩリクエスト信号ＥＸＰ＿ＲＥＱと拡張ベースＰＣＩ許可（グラント）信号ＥＸＰ＿ＧＮＴともまた、ＭＩＳＣ−Ｅ１１８ｂとＭＩＳＣ−Ｌ１１８ａとの間で送られる。ＭＩＳＣ−Ｅ１１８ｂは、信号ＥＸＰ＿ＲＥＱ及びＥＸＰ＿ＧＮＴを用いて、ＰＣＩバス１１２の制御をリクエストしかつ受け取る。これら２つの信号は、シリアル・バス１４５上を通信される。
【００２１】
ＭＩＳＣ１１８とＩＳＡバス１３８及び１４０とは、モバイル・スーパー入力／出力（ＭＳＩＯ）１２４周辺機器において組み合わされるような、標準的なＩＳＡ周辺機器に対するサポートを与える。ＭＳＩＯ１２４周辺機器は、次のような標準的なＩＳＡ周辺機器の組合せである。すなわち、１４６８１８互換のリアルタイム・クロック（ＲＴＣ）、標準的なフロッピ・ドライブ１３０とインターフェースするフロッピ・コントローラ、標準的なキーボード１３２及びポインティング・デバイス１５０と通信し、走査を実行しキーボード１３２上でキー・コード変換を実行し、パワー管理及びホット・ドッキング機能を実行する８０５１互換のマイクロコントローラ１７２（図２）、標準的なシリアル・ポート１３６を提供するユニバーサルな非同期受信機送信機（ＵＡＲＴ）及びパラレル・ポート１３４のためのパラレル・ポート・ロジック、である。ＭＳＩＯ１２４ｂはまた、拡張ベースＥに内蔵されている可変速度のドッキング・モータ１１７を制御することができる。（ＭＳＩＯ１２４ｂに接続されているように図示されているが、キーボード１３２とポインティング・デバイス１５０とは、好ましくは、直接にコネクタ１４６の両端に与えられてもよい）ＲＯＭ１２６が、ＭＳＩＯ１２４に結合され、コードを８０５１マイクロコントローラ１７２に提供する。更に、ＲＯＭ１２６は、ＢＩＯＳコードをＣＰＵ１００に提供するが、これは、システムの初期化の際に、ＲＯＭからコピーされてシステム・メモリ１０６にシャドウされ、それによって、その後では、８０５１マイクロコントローラ１７２がＲＯＭ１２６にアクセスできるようになる。１ビットのＭＳＩＯシリアル・バス（ＭＳＢ）１５２が、パワー管理とホット・ドッキングとに関係する情報を含むレジスタのシャドウ動作のために設けられる。理想的には、このバスは、拡張可能であり、非常に低いレイテンシを有するように設計される。
【００２２】
ラップトップＬがドッキングされる際には、ＭＳＩＯ−Ｌ１２４ａ、ＭＳＩＯ−Ｅ１２４ｂ及びそれ以外のシステム構成要素（図示せず）は、標準的なＩ2Ｃバス１４９によって更に結合される。相互一体化された（inter-integrated）回路すなわちＩ2Ｃバス１４９は、集積回路の間に効果的な制御及び識別機能を与えるために用いられる単純な双方向の２つのワイヤ・バスである。Ｉ2Ｃバスの詳細は、１９９２年１月にフィリップス・セミコンダクターズ社（Philips Semiconductors）によって出版された「Ｉ2Ｃバスとその使用法（仕様を含む）」（The I2C-Bus and How to Use It）に書かれている。大まかに言えば、Ｉ2Ｃバス１４９は、２つのライン、すなわち、シリアル・クロック・ライン（ＳＣＬ）とシリアル・データ・ライン（ＳＤＡ）とから構成される。このラインは、それぞれが、双方向性である。ＳＣＬラインは、Ｉ2Ｃバス上で生じるデータ伝送のためのクロック信号を提供する。Ｉ2Ｃバスに接続されたそれぞれのデバイスは、一意的なアドレスによって、認識される。低い値の直列抵抗（図示せず）が、典型的には、それぞれのデバイス接続において提供されて、高電圧のスパイクに対する保護を与える。
【００２３】
ラップトップ・コンピュータＬでは、モデム及びオーディオ周辺機器１２８もまた提供され、ＩＳＡバス１３８に結合される。モデム及びオーディオ周辺機器１２８は、電話Ｔに結合するための標準的なテレフォニ（telephony）通信ポートと、１対のステレオ・スピーカＳに結合するためのインターフェースとを含む。拡張ベースＥにおいては、３つのＩＳＡ拡張スロット１４２が、標準的なＩＳＡカードに対して提供される。
図１は、例示的なコンピュータ・システムＬ及びＥを示している。この開示から、当業者であれば、幾分異なる要素構成を用いたこれ以外の有効な実施例を容易に作ることができることが理解されよう。
更に詳細なホット・ドッキング回路の部分的な回路図が、図２に示されている。図示されている回路は、ラップトップ・コンピュータＬと拡張ベースＥとの間の通信を、オペレーティング・システムがドッキング・イベントを認識してドッキングの前にＰＣＩバス１１２をアイドル状態におくように、調整するように機能する。
【００２４】
ラップトップ・コンピュータＬと拡張ベースＥとの間の物理的なインターフェースは、短いピン１４７ａ、中間的な長さのピン１４７ｂ及び長いピン１４７ｃから構成される拡張コネクタ１４６から成る。この接続は、一致する長さの対向する「雄」のピンによって、図解的に表現されているが、実際の構成では、一方の側に（好ましくは、ラップトップ・コンピュータＬの側に）「雌」のレセプタ・ピン／スロットが含まれている。短い及び長いピン１４７ａ及び１４７ｃは、ドッキング／アンドッキング・イベントを示す種々の信号を発生するのに用いられる。
１対の２入力ＯＲゲート１７８及び１８０が、短いピン１４７ａの接続状態を示す短いピン接続信号ＥＢＯＸＳ＃を発生するのに用いられる。この明細書で用いられている「＃」の記号は、アクティブ・ロー信号を表す。開示された実施例では、信号ＥＢＯＸＳ＃は、これらのＯＲゲート１７８及び１８０の出力によって駆動され、ＯＲゲート１７８及び１８０の入力におけるすべての短いピン１４７ａが接続されるときに、論理ロー・レベルに変化する。ラップトップ・コンピュータＬにおける第１のＯＲゲート１７８の出力は、ＭＳＩＯ−Ｌ１２４ａの８０５１マイクロコントローラ１７０ａに割り込むのに用いられる。このＯＲゲート１７８の一方の入力は、拡張コネクタ１４６の一方の端部における短いピン１４７ａに接続され、他方で、第２の入力は、拡張コネクタ１４６の他方の端部における短いピン１４７ａに接続される。短いピンの対を拡張コネクタ１４６の対向する端部に置くことにより、ラップトップ・コンピュータＬが僅かに側方方向に又はトルクを受けた態様でドッキング又はアンドッキングする状況を説明する助けとなる。それぞれの場合に、ピンは、一様に結合／取り外しされない。従って、拡張コネクタ１４６の一方の端部だけに短いピン１４７ａを有するのでは、他方のピンの接続状態の不正確な指示しか得られない。
【００２５】
１対のプルアップ抵抗１８２及び１９０が、ＯＲゲート１７８の入力に接続される。従って、どちらかの入力における短いピン１４７ａが、拡張ベースＥにおけるそれに対向する短いピン１４７ａから取り外されるときには、その入力は、関連するプルアップ抵抗によって、論理ハイ・レベルに引き上げられる。
拡張ベースＥのＯＲゲート１８０は、ＭＳＩＯ−Ｅ１２４ｂの８０５１マイクロコントローラ１７０ｂに対して、発生及び割り込みを行うように同様に構成されている。このＯＲゲート８０への第１の入力は、拡張コネクタ１４６の一方の端部における短いピン１４７ａに接続され、第２の入力は、拡張コネクタ１４６の他方の端部における短いピン１４７ａに接続される。プルアップ抵抗１８４及び１９２は、短いピン１４７ａが切り離されたときに、ＯＲゲート１８０の入力を、論理ハイ・レベルに引き上げる。
【００２６】
対向する短いピン１４７ａの第２の組は、拡張コネクタ１４６の両方の端部に提供されれる。ラップトップ・コンピュータＬにおいては、これらのピンは、直接に接地面に接続される。拡張ベースＥの側では、拡張コネクタ１４６の両方の側の第２の短いピン１４７ａが、それに隣接する短いピン１４７ａ（ＯＲゲートの入力）に接続される。このようにして、拡張ユニットの両方の側の短いピン１４７ａが接続される際には、ＯＲゲート１７８及び１８０のそれぞれの入力は、接地すなわちグランドにプルダウンされる。拡張ベースＥとラップトップ・コンピュータＬとの両方における信号ＥＢＯＸＳ＃は、従って、論理ロー・レベルに変化する。このコンフィギュレーションによって、８０５１マイクロコントローラ１７０ａ及び１７０ｂは、拡張コネクタ１４６の両方の端部における短いピン１４７ａが接続されたか又は切り離された後にだけ、割り込みを受けることが保証される。
【００２７】
ドッキング・プロセスの間には、短いピン１４７ａは、ラップトップ・コンピュータＬ及び拡張ベースＥに、拡張コネクタ１４６の長いピン１４７ｃ及び中間の長さのピン１４７ｂを含むすべてのピンが接続されていることを知らせるために用いられる。アンドッキング・プロセスの間には、短いピン１４７ａは、これから生じるアンドッキング・イベントを８０５１マイクロコントローラ１７０ａ及び１７０ｂに知らせるのに用いられる。警告信号は、クイックスイッチ１１３が開かれる前にＰＣＩバス１１２ａ及び１１２ｂを静止状態にさせ、従って、ＰＣＩサイクルがアンドッキング・プロセスの間に失われることを防止する。
【００２８】
同様に、拡張コネクタ１４６の長いピン１４７ｃは、ドッキング・イベントの予備的な警告を提供し、アンドッキング・イベントの完了を示すのに用いられる。更に詳しくは、長いピン接続信号ＥＢＯＸＬ＃が、８０５１マイクロコントローラ１７０ａ及び１７０ｂに与えられる。第１のプルアップ抵抗１８６は、ラップトップ・コンピュータＬの側の信号ＥＢＯＸＬ＃に対する信号ラインに接続され、第２のプルアップ抵抗１８８は、拡張ベースＥの側の信号ＥＢＯＸＬ＃に対する信号ラインに接続される。このようにして、信号ＥＢＯＸＬ＃は、長いピン１４７ｃが切り離される際に、その両側が論理ハイ・レベルに引き上げられる。拡張コネクタ１４６のそれぞれの側で、長いピン１４７ｃの対向する対が、信号ＥＢＯＸＬ＃を、接続成功の後に論理ロー・レベルにダウンするのに用いられる。ラップトップ・コンピュータＬの側では、それぞれの対の長いピン１４７ｃの一方が、信号ＥＢＯＸＬ＃に対する信号ラインに接続され、第２の長いピン１４７ｃは、接地面に接続される。拡張ベースＥの側では、それぞれの対の両方の長いピン１４７ｃは、信号ＥＢＯＸＬ＃に対する信号ラインに接続され、長いピン１４７ｃの接続が、信号ラインを、ラップトップ・コンピュータＬにおける接地面に接続させる。
【００２９】
対向する長いピン１４７ｃの別の対が、システム準備完了信号ＳＲＤＹを与える信号ラインを、ＭＳＩＯ−Ｌ１２４ａの汎用Ｉ／Ｏ回路１７２ａからＭＳＩＯ−Ｅ１２４ｂの８０５１マイクロコントローラ１７０ｂに接続するのに用いられる。更に別の対の対向する長いピン１４７ｃが、拡張ベース準備完了信号ＥＲＤＹを与える信号ラインを、ＭＳＩＯ−Ｅ１２４ｂの汎用Ｉ／Ｏ回路１７２ｂからＭＳＩＯ−Ｌ１２４ａの８０５１マイクロコントローラ１７０ａに接続するのに用いられる。信号ＥＲＤＹ及びＳＲＤＹは、二重の目的で用いられる。すなわち、ドッキングの間にクイックスイッチ１１３を閉じるためのハンドシェーキングと、Ｉ2Ｃバス１４９に接続された異なる構成要素の間のハンドシェーキングとのためである。これらの信号は、図３及び図４により完全に説明されている。
図２に示すように、中間の長さのピン１４７ｂは、ＰＣＩバスの２つの部分の個々の信号ラインを接続するのに用いられる。中間の長さのピン１４７ｂが接続され、クイックスイッチ１１３が閉じられると、ＰＣＩバス１１２は、物理的に及び動作的に統一される。明瞭にする目的で、ＰＣＩバス１１２への個別の信号ライン接続をほんの僅かだけ示してある。
【００３０】
中間の長さのピン１４７ｂはまた、ラップトップ・コンピュータＬのＩ2Ｃバス１４９ａを、拡張ベースＥのＩ2Ｃバス１４９ｂに接続するのに用いられる。ＭＳＩＯ−Ｌ１２４ａ及びＭＳＩＯ−Ｅ１２４ｂの両方は、Ｉ2Ｃバス１４９上でマスタ又はスレーブのどちらかとして機能することのできるＩ2Ｃインターフェース１７４ａ及び１７４ｂを組み入れている。さらにＩ2Ｃバス１４９ｂに接続されているのは、拡張ベースＥに関する識別情報を提供するのに用いられるＥＥＰＲＯＭ１５１である。この情報は、ラップトップ・コンピュータＬのシステム構成要素によって、拡張ベースＥのインテリジェンスを確認し適切なハンドシェーキング・プロトコルを確立するために、読み出される。好適実施例では、ＥＥＰＲＯＭメモリ１５１は、ラップトップ・コンピュータＬによって給電されている。このようにして、拡張ベースＥに関するデータは、そのパワー条件とは関係なく、検索することができる。Ｉ2Ｃバス１４９を用いて８０５１マイクロコントローラ１７０ａ及び１７０ｂの間の通信を調整することによって、融通性のありインテリジェントな通信チャネルが与えられる。
【００３１】
既に述べたように、ＭＩＳＣ−Ｌ１１８ａ及びＭＩＳＣ−Ｅ１１８ｂの両方が、トップ・レベルのアービタ１９２ａ及び１９２ｂを含む。ラップトップ・コンピュータＬがドッキングされるときには、ＭＩＳＣ−Ｌ１１８ａのトップ・レベル・アービタ１９２ａは、システムの全体に対するトップ・レベルの仲裁機能を与え、ＭＩＳＣ−Ｅ１１８ｂのトップ・レベル・アービタ１９２ｂが非アクティブ化される。この仲裁方式の詳細は、先に援用した「複数のアービタを有するコンピュータ・システムにおいて分散型アービトレーションを扱う回路」（"Circuit for Handling Distributed Arbitration in a Computer System Having Multiple Arbiters"）と題する米国特許出願に記載されている。
【００３２】
トップ・レベルのアービタ１９２ａは、ＭＩＳＣ−Ｌ１１８ａのローカルＰＣＩアービタ１９４ａ又はＭＩＳＣ−Ｅ１１８ｂのローカルＰＣＩアービタ１９４ｂが、ＰＣＩバス１１２へのアクセスを有するかを制御する。ローカルＰＣＩアービタ１９４ａ又は１９４ｂのどちらかが、サイクルを実行する前に、トップ・レベル・アービタからの許可を受け取らなければならない。ＰＣＩバス１１２に対する許可は主に、時間多重化に基づく。ラップトップ・コンピュータＬがドッキングされていないときには、トップ・レベル・アービタ１９２ａは常に、ラップトップのローカルＰＣＩアービタ１９４ａへのバス・アクセスを付与すなわち許可する。ラップトップのＰＣＩアービタ１９４は、ラップトップ・リクエスト信号（図示せず）を用いて、トップ・レベル・アービタ１９２ａにバス・アクセスを要求し、ラップトップ許可信号を用いてトップ・レベル・アービタ１９２ａによって、バス・アクセスを付与される。これらの信号は、ラップトップ・コンピュータＬ自体の内部に含まれている。拡張ベースのＰＣＩアービタ１９４ｂは、拡張リクエスト及び許可信号ＥＸＰ＿ＧＮＴ＼ＥＸＰ＿ＲＥＱ（図１）を、送りかつ受け取るが、この信号は、ラップトップ・コンピュータＬと拡張ベースＥとの間を、拡張コネクタ１４６の中間の長さのピン１４７ｂを介して通信される。
【００３３】
次に図３を参照すると、ホット・ドッキング・プロセスの間のラップトップ・コンピュータＬと拡張ベースＥとの間の例示的な通信を図解するタイミング図が示されている。このタイミング図は、ホット・ドッキング・プロセスの間に、ラップトップ・コンピュータＬと拡張ベースＥとの間で、拡張ベース準備完了信号ＥＲＤＹとシステム準備完了信号ＳＲＤＹとを介して生じるハンドシェーキング（handshaking）を示している。ハンドシェーキングは、ローカルＰＣＩアービタ（arbiter）１９４ａ及び１９４ｂをアイドル・モードにおくために用いられ、それによって、クイックスイッチ１１３が閉じることにより、潜在的に致命的なシステム・エラーが生じないようになる。換言すれば、物理的ドッキングは、ＰＣＩバス部分１１２ａ及び１１２ｂが安全かつ迅速に統合されることを可能にする論理的なドッキングの後に生じる。
【００３４】
開示されている実施例によれば、ラップトップ・コンピュータＬがホット・ドッキングのためにドッキング・トレイ（図示せず）中に配置されるときに、プロセスが開始する。ステップ２では、図２の長いピン１４７ｃが接続して、信号ＥＢＯＸＬ＃を論理ハイ・レベルから論理ロー・レベルに変化させる。信号ＥＢＯＸＬ＃の変化は、８０５１マイクロコントローラ１７０ａ及び１７０ｂには、割り込みとして認識され、ユーザが、ラップトップ・コンピュータＬのドッキングを望んでいることを示す。これに応答して、ＭＳＩＯ−Ｅ１２４ｂの８０５１マイクロコントローラ１７０ｂは、Ｉ2Ｃバス１４９を介して、ステップ３において、ドッキング・モータ１１７をアクティブ状態にする。ドッキング・モータ１１７を含むことが好ましく、これはドッキング手順の反復可能性と信頼性とを補助する。
【００３５】
ドッキング・モータ１１７がオンになった後のある時点で、短いピン１４７ａが接続する（ステップ４）。短いピン１４７ａが接続すると、信号ＥＢＯＸＳ＃が、論理ハイ・レベルから論理ロー・レベルに変化し、８０５１マイクロコントローラ１７０ａ及び１７０ｂに、ラップトップ・コンピュータＬと拡張ベースＥとの間のすべての信号ラインが接続されていることを知らせる。その直後に、ステップ５及び６において、ドッキング・モータ１１７は停止され、拡張ベースＥは初期化を終了して、ＭＳＩＯ−Ｅ１２４ｂは、拡張ベース準備完了信号ＥＲＤＹを、ＭＳＩＯ−Ｌ１２４ａの８０５１マイクロコントローラ１７０ａにアサートする。初期化プロセスの間に行われるステップには、マスク値、ハードウェア・メールボックス及び８０５１マイクロコントローラ１７０のコードの種々の部分の初期化が含まれる。拡張ベース準備完了信号ＥＲＤＹをアサートすることにより、ラップトップ・コンピュータＬは、ステップ７において、Ｉ2Ｃバス１９４上で拡張ベースＥの識別情報を検索する。既に述べたように、拡張ベースＥのコンフィギュレーションに関する情報は、Ｉ2Ｃバス１４９ｂに接続されたＥＥＰＲＯＭ１５１に記憶されている。
【００３６】
ドッキング・プロセスは、次にステップ８に進むが、このステップでは、ラップトップ・コンピュータＬは、システム準備完了信号ＳＲＤＹをアサートすることにより、Ｉ2Ｃバス１４９を解放（リリース）する。開示されている実施例では、拡張ベース準備完了信号ＥＲＤＹとシステム準備完了信号ＳＲＤＹとは、Ｉ2Ｃバス１４９上での衝突を回避するために用いられる。拡張ベース準備完了信号ＥＲＤＹが論理ロー・レベルにあるときには、ラップトップ・コンピュータＬにおける８０５１マイクロコントローラ１７０ａは、Ｉ2Ｃバス・マスタになることは許されない。同様に、システム準備完了信号ＳＲＤＹがデアサートされると、拡張ベースＥにおける８０５１マイクロコントローラ１７０ｂは、Ｉ2Ｃバス・マスタになることは許されない。これらの２つの信号は、セマフォ・フラグ（semaphore flag）として用いられている。例えば、ラップトップ・コンピュータＬは、Ｉ2Ｃバス１４９上を拡張ベースＥにコマンドを送る必要があるときには、最初にシステム準備完了信号ＳＲＤＹをデアサートして、Ｉ2Ｃバス上の衝突を回避する。更に、８０５１マイクロコントローラ１７０ａは、バッテリやファン、又は、Ｉ2Ｃバス１４９に付属しているそれ以外の要素と通信することを望む場合には、拡張ベース準備完了信号ＥＲＤＹを最初に調べる。信号ＥＲＤＹがアクティブ（論理ロー・レベル）である場合には、８０５１マイクロコントローラ１７０ａは、拡張ベースＥがＩ2Ｃバス１４９上で通信していることを認識し、割り込みを行わない。システム準備完了信号ＳＲＤＹも、同じ態様で用いられる。
【００３７】
理想的なＩ2Ｃバスの構成では、この特別レベルのハンドシェーキングは必要ではなく、Ｉ2Ｃバスは、同時に複数のマスタ通信を有することが許容される。しかし、開示されているここでの実施例では、信号ＳＲＤＹ及びＥＲＤＹが、Ｉ2Ｃバス上での衝突を含む潜在的な問題をすべて回避するために用いられる。Ｉ2Ｃバス１４９は、クイックスイッチ１３３によってイネーブル／ディセーブルされず、２つの部分１４９ａ及び１４９ｂは、システムがドッキングされると直ぐに、中間の長さのピン１４７ｂによって接続される。
【００３８】
ラップトップ・コンピュータＬは、Ｉ2Ｃバス１４９を介して拡張ベースＥの情報を検索した後で、システム準備完了信号ＳＲＤＹをアサートし、Ｉ2Ｃバスを解放する。ステップ９では、ＭＳＩＯ−Ｌ１２４ａの８０５１マイクロコントローラ１７０ａは、第１のシステム管理割込（ＳＭＩ）を発生する。ＳＭＩは、コンピュータ・システムにおいて最高に近い優先度を有するマスク不可能な割込（non-maskable interrupt = NMI）である。ＳＭＩよりも高い優先度を有するのは、リセット信号Ｒ＼Ｓ＊とキャッシュ消去（フラッシュ）信号ＦＬＵＳＨ＊とだけしかなく、これらは割り込みと考えることが可能である。システム管理割込とシステム管理モードとの詳細は、当業者には広く知られている。好適実施例では、ＳＭＩは、８０５１からシステムへのメールボックス・レジスタ（図示せず）に書き込みをすることによって発生するが、それ以外の多くの方法で発生させることが可能である。
【００３９】
ＳＭＩは、コンピュータ・システムを、システム管理モードにして、ＳＭＩハンドラ・ルーチンを実行させる。それに対し、ＳＭＩハンドラは、システムのＢＩＯＳにドッキング状態が変更したことを告知することによって応答する。これが、ドッキング・プロセスの論理部分の開始である。ＳＭＩを受け取った後で、ＢＩＯＳは、オペレーティング・システムがドッキング・イベントと解釈するメモリ・フラグ（ビット）を設定する。システムがシステム管理モードから出てプロセッサの制御がオペレーティング・システムに戻ると、オペレーティング・システムは、ＢＩＯＳをコール又はポーリングして、ドッキングのリクエストを示す変化を探す。仮想的なデバイス・ドライバ（ＶｘＤ）がオペレーティング・システムによって用いられることがあり、システムのＢＩＯＳによって設定されたフラグをポーリングする。一般に、システムがシステム管理モードに留まるのは、一度に１００マイクロ秒未満であることが望ましい。
【００４０】
オペレーティング・システムは、好ましくは、Ｗｉｎｄｏｗｓ９５（登録商標）又はプラグ・アンド・プレイ（図面では、ＰｎＰと表されている）をサポートするそれ以外のオペレーティング・システムであるが、次には、ドライバ又は動いているプロセスをポーリングし、ホット・ドッキング・リクエストを受け入れるか拒否するかを判断する。試みられたホット・ドッキングがオペレーティング・システムによって拒否される場合には、クイックスイッチ１１３は、オープンのままである。ドッキング・イベントが受け入れられる場合には、オペレーティング・システムは、ＢＩＯＳにコマンドを送り、ドッキング・プロセスを完了してクイックスイッチ１１３をクローズするように命じる。
【００４１】
次にステップ１０を参照すると、システムＢＩＯＳ又はＭＳＩＯ−Ｌ１２４ａが、ＭＩＳＣ−Ｌ１１８ａのローカルＰＣＩアービタ１９４ａをアイドル・モードにし、それによって、すべてのＰＣＩバス１１２ａの活動を強制的に停止させる。ＭＩＳＣ１１８アービタは、３つのモード、すなわち、マスタ、スレーブ及びアイドルのモードで動作することができる。これらの組合せによって、ホット・ドッキングに対するサポートが可能になり、ＭＩＳＣ１１８がラップトップ・コンピュータＬと拡張ベースＥとの両方において用いられることが可能になる。既に述べたように、ＭＩＳＣ−Ｌ１１８ａ及びＭＩＳＣ−Ｅ１１８ｂの両方共に、ホット・ドッキング・シーケンスの間に、アイドル・モードにすることができる。アイドル・モードは、すべてのＰＣＩバス１１２の活動を強制的に停止させ、バスをＭＩＳＣ１１８に留まらさせる。アイドル・モードには、スレーブ・モード又はマスタ・モードのどちらかから入ることができる。アイドル・モードから出て、スレーブ又はマスタ・モードのどちらかに移ることも可能である。アービタ・アイドル・リクエスト・ビット（図示せず）が、ＭＳＩＯ１２４によって、ＭＳＢ１５２を介して設定されると、次のシーケンスが開始する。
【００４２】
１．トップ・レベルのアービタ（ＭＩＳＣ−Ｌ１１８ａにおいてだけアクティブとなる）が、その許可（付与）タイマをオーバライドし、リクエストを直ちにマスタ及びスレーブ・アービタの両方にプルする。
２．マスタ及びスレーブ・アービタは、正常に機能し、それぞれのマスタに対する最小のグラント時間を完了することが許容される。
３．次に、マスタ及びスレーブ・アービタは、すべてのリクエストをマスキングして、自らをバス上に留める。
４．マスタ及びスレーブ・アービタは、それぞれのアービタ・アイドル状態ビット（図示せず）をアサートするが、これらのビットは、ＭＳＢバス１５２を介してＭＳＩＯ１２４に通信され、ＰＣＩバス１１２がアイドルであり、ホット・ドッキングの準備ができていることを示す。
【００４３】
ホット・ドッキングの完了に続いてアービタ・アイドル・リクエスト・ビットがクリアされると、ＭＩＳＣ−Ｌ１１８ａにおけるトップ・レベル・アービタは、アービタ・アイドル状態ビットを否定し、単にＭＩＳＣ−Ｌ１１８ａに付与する。そして、正常なＰＣＩバス１１２の活動に戻る。
「アイドル・モード」と「スタンバイ・モード」とは、別個の状態であることに注意すべきである。典型的なスタンバイ・モードでは、システムの状態がシステム・メモリに記憶され、すべてのデバイスが、可能であれば低電力状態におかれ、電力はフロッピ・ドライブ、ハード・ドライブ及びほとんどの部分から取り除かれる。また、システム・メモリを維持するために低周波クロックがアクティブのままであることが多いが、バス・クロックがディセーブルされる。
【００４４】
ステップ１１では、プラグ・アンド・プレイＢＩＯＳが、メールボックス・ランタイム・コマンドを発生し、このコマンドは、８０５１マイクロコントローラ１７０ａに、ドッキング・プロセスを継続することが許される旨を知らせるのに用いられる。８０５１マイクロコントローラ１７０ａとの通信は、システムＢＩＯＳを介して達成されるが、システムＢＩＯＳは、ハードウェア・メールボックスを介して、８０５１マイクロコントローラ１７０ａと通信する。
許可を得た後、８０５１マイクロコントローラ１７０ａは、ステップ１２に進み、拡張ベースＥにおけるＰＣＩクロックをイネーブルする。ラップトップ・コンピュータＬの８０５１マイクロコントローラ１７０ａは、ＭＳＩＯ−Ｌ１２４ａの汎用Ｉ／Ｏピンを介して、拡張ベースＥのＰＣＩクロックを制御するように構成されている。本発明の開示された実施例では、拡張ベースＥのＰＣＩクロックは、ＰＣＩバス１１２ｂをアイドル状態にするために、イネーブルされていなければならない。
【００４５】
種々の方法を用いて、拡張ベースＥにおいてＰＣＩクロック信号を発生することが可能である。例えば、拡張ベースＥに追加的なクイックスイッチを設けて、ＰＣＩクロックを、拡張ベースＥソースのクロックとラップトップ・コンピュータＬソースのクロックとの間でスイッチングすることができる。また、クロック発生器チップを用いて、内部発振ソースに同期した又はラップトップ・コンピュータＬが与えるＰＣＩクロックに同期した拡張ベースＥのＰＣＩクロックを発生させることもできる。拡張ＰＣＩクロックは、好ましくは、ＭＩＳＣ−Ｅ１１８ｂを含む拡張ベースＥの種々の構成要素によって用いられる３３ＭＨｚのクロック信号である。
【００４６】
好適実施例では、拡張ベースＥの内部には、２つのパワー・プレーンが含まれている。第１のパワー・プレーンＶＣＣ１は、ＭＳＩＯ−Ｌ１２４ｂにおいて、リアルタイム・クロック（ＲＴＣ）にパワーを提供する。ＲＴＣを維持するのに加えて、このパワー・プレーンＶＣＣ１は、ＣＭＯＳメモリの内容が消去されないことを保証するのに用いられる。第１のパワー・プレーンＶＣＣ１は、また、拡張ベースＥにおける、フラッシュＲＯＭ１２６、Ｉ2Ｃインターフェース１７４ｂ、ドッキング・モータ１１７及び８０５１マイクロコントローラ１７０ｂに給電するためにも用いられる。このパワー・プレーンを介しての電力の浪費は、非常に僅かである。しかし、拡張ベースＥのプラグを壁のコンセントから引き抜くと、ＶＣＣ１への電力は、失われる。第２のメイン・パワー・プレーンＶＣＣ２は、ドッキング時には、ラップトップ・コンピュータＬだけでなく、拡張ベースＥの残りの構成要素に給電するのに用いられる。
【００４７】
ステップ１３においては、８０５１マイクロコントローラ１７０ａが、「オン」コマンドを拡張ベースＥに送り、そのメイン・パワー・プレーンＶＣＣ２をオンにするように命令する。この通信の間には、システム準備完了信号ＳＲＤＹはデアサートされ、Ｉ2Ｃバス１４９のそれ以外の使用を先取り（preempt）しておく。オン・コマンドが送られた後では、制御は、ステップ１４に進み、そこでは、拡張ベースＥのメイン・パワー・プレーンＶＣＣ２がイネーブルされている間は、ＭＳＩＯ−Ｅ１２４ｂが拡張ベース準備完了信号ＥＲＤＹをデアサートする。拡張ベースＥのメインの電源は、好ましくは、従来型のデスクトップ・コンピュータの電源と同様である。この電源をイネーブルするプロセスは、この開示されている実施例では、最大で約３秒の、典型的には約５００ｍｓを消費する。  電源出力は、静止（quiescent）状態を安定させると、ＰＯＷＥＲＧＯＯＤ信号（図示せず）をアサートし、システムに、メイン・パワー・プレーンＶＣＣ２がイネーブルされていることを知らせる。ドッキング・モータ１１７とＰＣＩクロックとを動作させるためには、メイン・パワー・プレーンＶＣＣ２は要求されないことに注意すべきである。また、拡張ベースＥの電源は、ラップトップ・コンピュータＬがアンドッキングされる際には、通常、消勢される。
【００４８】
ステップ１５では、拡張ベースＥのメイン・パワー・プレーンＶＣＣ２がオンに切り換えられた後で、ＭＩＳＣ−Ｅ１１８ｂはアイドル・モードにおかれ、次に、スレーブ・モードに移る。ＭＩＳＣ−Ｅ１１８ｂはスレーブ・モードにおかれるが、それは、ドッキング・プロセスの間にエラーが生じるような場合に、既知の状態にあるようにするためである。８０５１マイクロコントローラ１７０ｂはＭＳＢシリアル・バス１５２を用いて、ＭＩＳＣ−Ｅ１１８ｂのローカルＰＣＩアービタ１９４ｂをアイドル状態にする。
ステップ１６では、８０５１マイクロコントローラ１７０ｂのクロックが、それ自身のクロックを消勢して、上述のように、付随するフラッシュＲＯＭ１２６の制御をシステムＢＩＯＳに戻す。その後で、システムＢＩＯＳは、８０５１マイクロコントローラ１７０ｂに対するクロックを制御することができる。ステップ１６では、拡張ベース準備完了信号ＥＲＤＹもまた、アサートされる。この時点では、拡張ベースＥにおけるすべてのＰＣＩクロック信号は、論理ロー・レベルにある。拡張ベース準備完了信号ＥＲＤＹがアサートされることによって、拡張ベースＥは、クイックスイッチ１１３が安全に閉じるために適切な状態におかれる。
【００４９】
ステップ１７では、ＭＳＩＯ−Ｌ１２４ａは、クイックスイッチ１１３へのコントロール信号ＣＯＮＴＲＯＬをアサートする。すると、クイックスイッチ１１３が閉じられ、ＰＣＩバスの２つの部分１１２ａ及び１１２ｂを機能的に接続する。クイックスイッチ１１３が閉じられた後で、８０５１マイクロコントローラ１７０ａは、システムＢＩＯＳにクイックスイッチ１１３が閉じていることを知らせる第２のＳＭＩ（ステップ１８）を発生する。オペレーティング・システムは、この時点では、拡張ベースＥのＰＣＩバス１１２ｂに接続されたデバイスへの通信をすることができる。そして、ラップトップ・コンピュータＬは、拡張ベースＥにおける種々のコントローラをプログラムすることができ、システムＢＩＯＳは、プラグ・アンド・プレイ機能のコンフィギュレーションのために、ＰＣＩバス１１２上のすべてのデバイスと通信することができる。
【００５０】
ステップ１９では、ＭＩＳＣ−Ｌ１１８ａのローカル・アービタは、マスタ・モードにおかれる。ＰＣＩプラグ・アンド・プレイ及びＩＳＡプラグ・アンド・プレイのシステム・コンフィギュレーションが次に実行され、それによって、すべてのシステム・リソースが適切に用いられることになる。コンフィギュレーションの間には、プラグ・アンド・プレイ・カードが、最初に分離され、識別コードを割り当てられる。次に、リソース・データが、それぞれのインストールされたカードから読み出される。リソース・データに基づき、コンピュータ・システムのリソースが、それぞれのプラグ・アンド・プレイ・カードに対して仲裁されることができ、その後で、それぞれの識別されたカードのコンフィギュレーションとアクティブ化がなされる。カードのためのデバイス・ドライバもまた、ロードされる。
【００５１】
次に、図４を参照すると、ラップトップ・コンピュータＬと拡張ベースＥとの間のホット・アンドッキング・プロセスの間の例示的な通信を図解するタイミング図が示されている。ハンドシェーキングを用いてローカルなＰＣＩアービタ１９４ａ及び１９４ｂをアイドル・モードにおき、それにより、クイックスイッチ１１３が開いてもＰＣＩバス１１２上でサイクルが失われることがないようにしている。
【００５２】
開示されている実施例では、アンドッキング・ボタン／イジェクト・スイッチを押下するか、又は、プラグ・アンド・プレイ機能を有するオペレーティング・システムを介してアンドッキング・メニュー・ボタンをクリックするかのどちらかにより、アンドッキングが開始される。アンドッキングがソフトウェアによって開始される場合には、ステップ２及びステップ３は不要である。ステップ２では、８０５１マイクロコントローラ１７０ｂが、Ｉ2Ｃバス１４９を介して、８０５１マイクロコントローラ１７０ａに、アンドッキング・リクエストを送る。信号ＥＲＤＹのパルスが、この時点でローにされることで、Ｉ2Ｃバス１４９の他の使用を先取りする。８０５１マイクロコントローラ１７０ａは、次に、ステップ３において、オペレーティング・システムにユーザがアンドッキングを望んでいることを告知する第１のＳＭＩを発生する。ステップ４では、オペレーティング・システムは、リクエストを許可する場合には、アンドッキング・コマンドをシステムＢＩＯＳを介して送り、現在のサイクルが終了し他の何もＳＭＩの下で動作しなくなる状態の後で、ラップトップ・コンピュータをイジェクトする。
【００５３】
ステップ５では、システムＢＩＯＳのプラグ・アンド・プレイ・コード又は８０５１マイクロコントローラ１７０ａが、ＭＩＳＣ−Ｌ１１８ａのローカル・アービタ１９４ａを、アイドル・モードにおく。一旦アイドル・モードになると、ＭＩＳＣ−Ｌ１１８ａはそれ自身、ＰＣＩバス１１２ａ上に留まる。ステップ６で、システムＢＩＯＳが、次に、アンドッキング・コマンドをＩ2Ｃバス１４９を介して拡張ベースＥの８０５１マイクロコントローラ１７０ｂに送るように、８０５１マイクロコントローラ１７０ａに命令する。このアンドッキング・コマンドの後、８０５１マイクロコントローラ１７０ａは、システム準備完了信号ＳＲＤＹをデアサートする。ステップ７において、８０５１マイクロコントローラ１７０ｂは、拡張ベース準備完了信号ＳＲＤＹをデアサートして、オフ状態への変化を開始する。
【００５４】
拡張ベースのオフ状態への移動は、ステップ８で開始されるが、ステップ８では、８０５１マイクロコントローラ１７０ｂが、ＭＩＳＣ−Ｅ１１８ｂのローカル・アービタ１９４ｂをアイドル状態におく。ローカルＰＣＩアービタ１９４ａ及び１９４ｂは共に、この時点でアイドル状態であり、ＰＣＩバス１１２は、アンドッキングが進行するのに十分な程度に静か（quiet）である。この開示された実施例では、ＭＩＳＣ−Ｅ１１８ｂのローカル・アービタ１９４ｂがアイドル化されるまで、拡張ベースＥのＰＣＩクロック発生器を動作させたままにしておく必要がある。ステップ９の直後に、８０５１マイクロコントローラ１７０ａは、ＭＳＩＯ−Ｌ１２４ａの汎用Ｉ／Ｏ回路１７２ａからの制御信号ＣＯＮＴＲＯＬを介して、クイックスイッチ１１３を開かせる。ほぼ同じ時間（ステップ１０）に、８０５１マイクロコントローラ１７０ｂは、拡張ベースＥのメイン電源プレーンを消勢し、ドッキング・モータ１１７をアクティブ化して、ラップトップをイジェクトする。
【００５５】
この時点で、モータによるアンドッキングが開始し、拡張コネクタ１４６の短いピン１４７ａが、ステップ１１において最初に切断される。これにより、信号ＥＢＯＸＳ＃に立上りエッジが生じる。信号ＥＢＯＸＳ＃は、自動化されたアンドッキング手順がバイパスされてしまったときに、ラップトップ・コンピュータＬ（特に、８０５１マイクロコントローラ１７０ａ）に警告を与える安全機構として用いることができる。例えば、開示された実施例では、ＥＢＯＸＳ＃信号が、この信号がアンドッキング・イベントが行われていることを示す第１の指標である場合にも、適切なアンドッキング・ソフトウェアを開始させる。短いピン１４７ａが切り離された（切断された）後で、中間の長さのピン１４７ｂが切り離されるまでに、約１ミリ秒を要する。
【００５６】
次に、長いピン１４７ｃがステップ１２において切断され、信号ＥＢＯＸＬ＃を、論理ローから論理ハイ・レベルに移動させる。この変化によって、８０５１マイクロコントローラ１７０ａ及び１７０ｂの両方が、中間の長さのピン１４７ｂが完全に切り離されたことを告知される。このステップの一部として、８０５１マイクロコントローラ１７０ａは、第２のＳＭＩを発生して、プラグ・アンド・プレイ・コードに、物理的なアンドッキング・プロセスが完了したことを告知する。それに応答して、プラグ・アンド・プレイ・コードは、ＭＩＳＣ−Ｌ１１８ａのローカル・アービタ１９４ａを、ステップ１３において、マスタ・モードにおく。最後に、ＰＣＩプラグ・アンド・プレイ及び/又はＩＳＡプラグ・アンド・プレイのシステム・コンフィギュレーションが実行され、それによって、拡張ベースＥのシステム・リソースがラップトップによって認識されることがなくなる。
【００５７】
次に図５、図６及び図７を参照すると、ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータＬによって実行されるマイクロコントローラ・コードに対するフローチャートが示されている。このコードは、拡張ベースＥのマイクロコントローラのものと同様であり、それと共に動作する。拡張ベースＥのマイクロコントローラのコードは、ドッキング・モータ１１７をアクティブ化させるなどのタスクを達成するコマンドを受け取るが、ここでは示されていない。
マイクロプロセッサ・コードの実行が、ステップ３００において、拡張ベースからの注意信号の後で開始される。制御は、ステップ３０２に進み、注意信号フラグがまだアクティブであるかどうかを判断するためにポーリングされる。注意信号は、拡張コネクタ１４６の短い及び長いピン１４７ａ及び１４７ｃによって発生される。注意信号がアクティブではなくスプリアスなリクエストを示している場合には、ルーチンは、ステップ３０４で終了する。注意信号がまだアクティブであるとステップ３０２で判断される場合には、制御はステップ３０６に進み、１ミリ秒フラグが設定されているかどうかが判断される。ステップ３００においてコードに入った際に開始される１ミリ秒の遅延周期は、スプリアスなリクエストを更にフィルタリングするために用いられる。この遅延周期が終了せず１ミリ秒フラグが設定されていないとステップ３０６で判断された場合には、制御は、ステップ３０２に戻る。１ミリ秒周期が経過した場合には、制御は、ステップ３０８に進み、１ミリ秒フラグがクリアされる。
【００５８】
次に、ステップ３１０に進み、信号ＥＢＯＸＳ＃及びＥＢＯＸＬ＃が調べられる。これらの信号が共にローであり、短いピン１４７ａと長いピン１４７ｃとが接続されていることを示す場合には、制御は、１００ミリ秒のデバウンス周期のために、ステップ３１２に進む。この時点では、拡張ベースＥにおいて動作しているマイクロコントローラ・コードによって好ましくはドッキング・モータはオンになっていることに注意すべきである。デバウンス周期の後で、制御は、ステップ３１４に進み、ラップトップ・コンピュータＬは、論理ハイ・レベルに移るために、拡張ベース準備完了信号ＥＲＤＹを待機する。開示された実施例では、信号ＥＲＤＹは、２５０ミリ秒以内に変化しなければならず、そうでないと、タイムアウトが生じてメイン・マイクロコントローラ・ルーチンに戻る。
信号ＥＲＤＹが論理ハイ・レベルに変化すると、制御は、ステップ３１６に進み、８０５１マイクロコントローラ１７０ａが、Ｉ2Ｃバス１４９のコマンドを取得する。制御は、ステップ３１８に進み、拡張ベース識別情報が、Ｉ2Ｃバス１４９上で検索される。次に、制御は、ステップ３２０（図６）に進み、拡張ベースの注意フラグがリセットされる。次に、ステップ３２２において、長いピン１４７ｃの割り込みがイネーブルされ、他方で、短いピン１４７ａの割り込みがディセーブルされる。制御は、ステップ３２４に進み、ペンディングになっているドッキングの変化ＳＭＩは、すべてキャンセルされる。
【００５９】
制御はステップ３２６に進み、拡張ベースＥの処理能力を判断する。拡張ベースＥが図２に関して既に説明したような機能を組み入れていない場合には、制御は、ステップ３２８に進み、コマンドが送られて、拡張ベースＥのパワーがオンにされる。次に、制御は、ステップ３３０に進み、パワーグッド（power good）信号が拡張ベースＥから受け取られるまで待機する。そして、制御は、ステップ３３２に進み、クイックスイッチ１１３が閉じられて、ＰＣＩバス１１２の共有部分を機能的に結合させる。ステップ３３６でメイン・マイクロコントローラ・ルーチンに戻る前に、ドッキング・フラグが、ステップ３３４において設定される。
拡張ベースＥが図２に関して既に述べたような機能を組み入れている場合には、制御は、ステップ３２６からステップ３３８に進み、ドッキングＳＭＩが発生される。上述のように、このＳＭＩは、オペレーティング・システムに、ホット・ドッキング・リクエストを受け入れるか又は拒否する機会を与えるために、用いられる。制御は、次に、ステップ３４０に進み、メイン・マイクロコントローラ・ルーチンに戻る。
【００６０】
信号ＥＢＯＸＳ＃及びＥＢＯＸＬ＃が論理ハイ・レベルにあるとステップ３１０において判断される場合には、制御は、ステップ３４６（図７）に進む。信号ＥＢＯＸＳ＃及びＥＢＯＸＬ＃が共に論理ハイ・レベルであると判断されるということは、短いピン１４７ａと長いピン１４７ｃとが切り離されており、適切なアンドッキング手順に従わずにラップトップ・コンピュータＬを拡張ベースＥから取り外す試みがなされたことを示している。ステップ３４６では、信号ＥＢＯＸＳ＃及びＥＢＯＸＬ＃を再度調べて、論理ハイ・レベルにあるかどうかを判断する。そうでない場合には、制御は、ステップ３４６に留まり、これらの信号を引き続きポーリングする。信号ＥＢＯＸＳ＃及びＥＢＯＸＬ＃が論理ハイ・レベルにあると判断される場合には、制御は、ステップ３５０に進み、手動でのイジェクトに必要であるならば、デバウンス周期（待機周期）を実行する。次に、制御は、ステップ３５２に進み、拡張ベースＥからの注意フラグがクリアされる。
【００６１】
次に制御は、ステップ３５４に進み、Ｉ2Ｃバス１４９のハンドシェーキングがディセーブルされる。制御は、次に、ステップ３５６に進み、長いピン１４７ｃの割り込みがディセーブルされる間、短いピン１４７ａの割り込みがイネーブルされる。ペンディングになっているドッキング変更のＳＭＩはすべて、ステップ３５８でキャンセルされる。制御は、次に、ステップ３６０に進み、拡張ベースＥの処理能力とコンフィギュレーションとを判断する。拡張ベースＥが図２に関して既に述べた機能を組み入れている場合には、制御は、ステップ３６２に進み、ドッキングされたフラグがクリアされる。次に、制御は、ステップ３６４に進み、ＳＭＩが生じて、オペレーティング・システムがプラグ・アンド・プレイのリコンフィギュレーションを実行することを可能にし、それによって、拡張ベースＥの能力が、ラップトップ・コンピュータＬによってもはや認識されないようにする。制御は、次に、ステップ３６６に進み、ＭＩＳＣ−Ｌ１１８ａのローカルなＰＣＩアービタ１９４ａが、マスタ・モードにおかれる。
制御は、ステップ３６８に進むが、また、拡張ベースＥが十分な処理能力を有していないとステップ３６０で判断される場合にも、このステップに進む。ステップ３６８では、ホット・ドッキング及びホット・アンドッキングの割り込みがクリアされ、イネーブルされた後で、ステップ３７０で、メイン・マイクロコントローラ・ルーチンに戻る。
【００６２】
図８を参照すると、例示的なＳＭＩディスパッチャ・ルーチン４００の詳細が与えられている。このルーチンは、図６のステップ３３８の後でコールすることもできる。制御は、最初にステップ３０２に進み、ホット・ドッキング又はホット・アンドッキング手に弁とが生じているかどうかを判断する。拡張ベースＥからの注意信号がホット・ドッキング・イベントの結果として生じる場合には、制御は、ステップ４０６に進み、ラップトップ・コンピュータＬが、Ｉ2Ｃバス１４９の制御を想定する。次に、制御は、ステップ４０８に進み、パワー・オン・コマンドが、Ｉ2Ｃバス１４９を介して、拡張ベースＥに送られる。制御は、次に、ステップ４１０に進み、ポーリング・ループが開始され、拡張ベースＥにおいてパワーがイネーブルされているかどうかが判断される。イネーブルされていない場合には、制御は、ステップ４１２に進み、拡張コネクタ１４６のピン１４７が依然として接続されているかどうかを判断する。ピン１４７が接続されている場合には、制御は、４１０に戻る。ピン１４７が接続されていない場合には、制御は、ステップ４１４に進み、ハンドシェーキングがキャンセルされ、Ｉ2Ｃバス１４９がリリースされる。
【００６３】
拡張ベースＥのパワーがイネーブルされた後で、制御は、ステップ４１６に進み、拡張ベース準備完了信号ＥＲＤＹが調べられる。信号ＥＲＤＹが論理ロー・レベルであり、拡張ベースＥはまだホット・ドッキング・プロセスを完了するための準備ができていないことを示す場合には、制御は、ステップ４１８に進む。ステップ４１８では、拡張ベース・コネクタ１４６のピンは、接続されているかどうかを判断するため、再び調べられる。接続されていない場合には、ハンドシェーキングはキャンセルされ、Ｉ2Ｃバスはリリースされる。ピンが接続されている場合には、制御は、ステップ４１６に進む。拡張ベース準備完了信号ＥＲＤＹが論理ロー・レベルに変化すると、制御は、ステップ４２０に進み、拡張ベースＥのＰＣＩクロックがイネーブルされる。
【００６４】
次に、ステップ４２２に進み、１０マイクロ秒の遅延により、拡張ベースＥのＰＣＩクロックをイネーブルして安定化させる。制御は、ステップ４２４に進み、ラップトップ・コンピュータＬ準備完了信号ＳＲＤＹがアサートされる。次に、制御は、ステップ４２６（図９）に進み、拡張ベース準備完了信号ＥＲＤＹを再び調べる。この信号が論理ロー・レベルにある場合には、制御は、ステップ４２８に進んで、拡張ベースのコネクタ１４６のピンがまだ接続されているかどうかを判断する。そうであれば、制御は、ステップ４２６に戻る。そうでない場合には、制御は、ステップ４３０に進み、ハンドシェーキングがアボートされる。信号ＥＲＤＹが論理ハイ・レベルに変化しているとステップ４２６で判断される場合には、制御はステップ４３２に進み、クイックスイッチ１１３を閉じる。次に、制御は、ステップ４３４に進み、ドッキング・フラグが設定される。第２のＳＭＩが、次に、ステップ４３６で発生され、プラグ・アンド・プレイのリコンフィギュレーションが達成されることを可能にする。制御は、次に、ステップ４３８に進み、ＭＩＳＣ−Ｌ１１８ａのローカルＰＣＩアービタ１９４ａがマスタ・モードにおかれる。最後に、ステップ４４０において、メイン・マイクロコントローラ・ルーチンに戻る。
【００６５】
拡張ベースＥからの注意信号がホット・アンドッキング・イベントを示しているとステップ４０２で判断される場合には、制御は、図１０のステップ４４２に進み、Ｉ2Ｃバス１４９の制御をラップトップ・コンピュータＬが獲得する。次に、ステップ４４４に進み、アンドッキング・リクエストがＩ2Ｃバス１４９を介して拡張ベースＥに送られる。制御は、更に、ステップ４４６に進み、拡張コネクタ１４６のピンが接続されているか、又は、タイムアウトが生じたかどうかを判断する。ピン１４７が切り離されているか、又は、タイムアウト・イベントが生じている場合には、ステップ４４８において、アンドッキング手順が、後に再度試みるために、アボートされる。そうでない場合には、制御は、ステップ４５０に進み、拡張ベース準備完了信号ＥＲＤＹを調べる。信号ＥＲＤＹが論理ハイ・レベルである場合には、制御は、ステップ４５２に進み、拡張コネクタ１４６のピン１４７の接続状態を再び調べる。ピン１４７が依然として接続されている場合には、制御は、ステップ４５０に戻る。ピン１４７がもはや接続されていない場合には、制御は、ステップ４５４に進み、ハンドシェーキングがキャンセルされ、Ｉ2Ｃバス１４９がリリースされる。
【００６６】
拡張ベースＥ準備完了信号ＥＲＤＹが論理ハイ・レベルであるとステップ４５０において判断されると、制御は、ステップ４５６に進み、クイックスイッチ１１３が開かれる。制御は、次に、ステップ４５８に進み、信号ＥＲＤＹが再び調べられる。信号ＥＲＤＹが論理ロー・レベルである場合には、制御は、ステップ４６０に進み、拡張コネクタのピン１４７が依然として接続されているかどうかを判断する。まだ接続されている場合には、制御は、ステップ４５８に戻る。ピン１４７が切り離されている場合には、アンドッキング手順がステップ４６２でアボートされる。
信号ＥＲＤＹがアサートされているとステップ４５８で判断される場合には、制御は、ステップ４６４に進み、拡張ベースＥのクロックがディセーブルされる。次に、ステップ４６６に進み、第２のＳＭＩが発生される。このＳＭＩにより、ラップトップ・コンピュータＬがプラグ・アンド・プレイのリコンフィギュレーションを実行することが可能になり、それによって、拡張ベースＥのリソースはもはや認識されなくなる。そしてステップ４６８に進み、ＭＩＳＣ−Ｌ１１８ａのローカルなＰＣＩアービタ１４９ａがマスタ・モードにおかれ、ラップトップ・コンピュータＬの正常な動作に戻ることができる。最後に、ステップ４７０において、メイン・マイクロコントローラ・ルーチンに戻る。
【００６７】
次に図１１を参照すると、ホット・ドッキング／アンドッキングをサポートするように構成されたシステムのソフトウェア構成要素のブロック・レベルの図が示されている。既に述べたように、ＳＭＩハンドラ２００が、システムＢＩＯＳ２０２に、ドッキング状態が変化したことを告知するために用いられる。好適実施例では、システムＢＩＯＳ２０２は、プラグ・アンド・プレイ能力を含むドッキング／アンドッキングをサポートする機能を組み入れている。システムＢＩＯＳ２０２は、Ｗｉｎｄｏｗｓ９５（登録商標）によってドッキング・イベントをして解釈されるメモリ・フラグを設定する。
ラップトップ・コンピュータＬがシステム管理モードから出てプロセッサの制御がＷｉｎｄｏｗｓ９５（登録商標）に戻ると、オペレーティング・システムは、システムＢＩＯＳ２０２をコール又はポーリングして、ドッキングのリクエストを示す変化を探す。アドバンス・パワー管理（ＡＰＭ）ドライバ又は仮想デバイス・ドライバＢＩＯＳ．ＶｘＤ２０６は、オペレーティング・システムによって用いられ、システムＢＩＯＳによって設定されたフラグをポーリングすることができる。ＢＩＯＳ．ＶｘＤ２０６は、Ｗｉｎｄｏｗｓ９５（登録商標）２０４とシステムＢＩＯＳ２０４との間の通信をサポートするように構成されている。ホット・ドッキング／アンドッキング・イベントに続くシステムのリコンフィギュレーションの後で、システムの構成要素に対するプラグ・アンド・プレイ・ドライバ２０８は、適宜、Ｗｉｎｄｏｗｓ９５（登録商標）のレジストリに登録され、又は、そこから削除される。
【００６８】
本発明の他の実施例は、多数考えることができる。例えば、拡張ベースＥは、モータによるドッキング／アンドッキング能力を組み入れている必要はない。そのような拡張ベースでは、長い及び短いピンのドッキング信号のために、余分なデバウンスが、必要になり得る。そのようなシステムによれば、ユーザは、最初に何か別のことをしたりすることなく、拡張ベースからラップトップを単に引き離すことができる。短いピンがアンドッキング・ソフトウェアを開始させるが、すべてが、ユーザに対して透過性を有している。
インテリジェンスが変動する拡張ベースを用いることもできる。例えば、拡張ベースが、Ｉ2Ｃバスを介しての通信能力を有する８０５１マイクロコントローラを組み入れていないこともある。この場合には、簡略化されたハードウェア・ハンドシェーキングを用いて、接続バスをアイドル状態におくことも可能である。ハンドシェーキング及びバス・マスタリング能力の限定されている拡張ベースでは、クイックスイッチが閉じられる前に拡張ベースのパワーがオンであることを確認するだけでよい。この実施例では、拡張ベース準備完了信号ＥＲＤＹは、電源からの信号ＰＯＷＥＲＧＯＯＤによって駆動することができる。ラップトップ・コンピュータＬは、これにより、拡張ベースのプラグが抜かれている（この場合には、クイックスイッチが閉じられない）かどうかを判断することができる。
【００６９】
開示された又は考慮し得る実施例においては、拡張ベースのＰＣＩバスは、ドッキング・イベントの前にはアイドル状態であることに注意すべきである。更に、オペレーティング・システムにドッキング・イベントが生じていることを知らせる何らかの方法が組み入れられていることが好ましい。オペレーティング・システムは、好ましくは、ドッキング・イベントを受け入れる又は拒否する能力を含み、また、プラグ・アンド・プレイ機能をサポートする。
従って、オペレーティング・システム、ファームウェア、システムＢＩＯＳ、マイクロコントローラ、インストールされたシステム・ハードウェアが効果的なホット・ドッキング／アンドッキングを可能にするような態様で協調して動作することを実現させる方法及び回路を、以上で説明した。ラップトップ・コンピュータと拡張ベースとは、共有されたＰＣＩバスと低いオン抵抗値のスイッチとによって接続される。異なる長さのピンを用いて、ドッキング及びアンドッキング状態情報を提供する。バスは、ドッキング又はアンドッキング・イベントの前には、静止したアイドル状態におかれ、スタンバイ・モードに入る必要をバイパスする。これにより、本発明は、ラップトップ・コンピュータを拡張ベースに挿入したり取り外したりするための、より迅速でよりユーザ・フレンドリな方法を提供する。
本発明に関する以上の開示及び説明は、例示的なものであり、サイズ、形状、材料、構成要素、回路素子、ワイヤ接続及び接点などに関する種々の変更や、図解された回路及び構成や動作方法の詳細に関する変更は、本発明の技術思想から離れることなく、実行することができる。
【図面の簡単な説明】
【図１】本発明によるホット・ドッキング及びアンドッキング機能を含む例示的なコンピュータ・システムのブロック図である。
【図２】更に詳細な図１のコンピュータ・システムの部分的なブロック図である。
【図３】本発明によるホット・ドッキング・プロセスの間のラップトップ・コンピュータとドッキング・ステーションとの間の通信を図解するタイミング図である。
【図４】本発明によるホット・アンドッキング・プロセスの間のラップトップ・コンピュータとドッキング・ステーションとの間の通信を図解するタイミング図である。
【図５】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図６】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図７】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図８】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図９】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図１０】ホット・ドッキング及びホット・アンドッキング・イベントの間にラップトップ・コンピュータにおいて実行される例示的なマイクロコントローラ・コードのフローチャートの一部である。
【図１１】ホット・ドッキング／アンドッキングをサポートするように構成されたシステムのソフトウェア構成要素のブロック・レベル図である。
【図１】
0004132141.tif 000002
【図２】
0004132141.tif 000003
【図３】
0004132141.tif 000004
【図４】
0004132141.tif 000005
【図５】
0004132141.tif 000006
【図６】
0004132141.tif 000007
【図７】
0004132141.tif 000008
【図８】
0004132141.tif 000009
【図９】
0004132141.tif 000010
【図１０】
0004132141.tif 000011
【図１１】
0004132141.tif 000012