JP3454492B2 - ウィンドウ・ベースの複数ユーザ・コンピュータ・システムおよび方法 - Google Patents
ウィンドウ・ベースの複数ユーザ・コンピュータ・システムおよび方法Info
- Publication number
- JP3454492B2 JP3454492B2 JP13553196A JP13553196A JP3454492B2 JP 3454492 B2 JP3454492 B2 JP 3454492B2 JP 13553196 A JP13553196 A JP 13553196A JP 13553196 A JP13553196 A JP 13553196A JP 3454492 B2 JP3454492 B2 JP 3454492B2
- Authority
- JP
- Japan
- Prior art keywords
- work area
- routine
- computer system
- state
- suspend
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/4418—Suspend and resume; Hibernate and awake
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Description
【0001】
【発明の属する技術分野】本発明は、一般的にはコンピ
ュータ・システムに関し、より具体的には単一コンピュ
ータ・システム上の複数ユーザがそのコンピュータ・シ
ステムの選択設定を格納したり復元できるようにするた
めのコンピュータ・システムに関する。
ュータ・システムに関し、より具体的には単一コンピュ
ータ・システム上の複数ユーザがそのコンピュータ・シ
ステムの選択設定を格納したり復元できるようにするた
めのコンピュータ・システムに関する。
【0002】
【従来の技術】高速サスペンド/レジューム技術の使用
により、ユーザは、コンピュータ・システムの電源を切
断するときにプログラム・アプリケーションをオープン
にしたままにしておくよう奨励されている。というの
は、高速サスペンド/レジューム技術は、コンピュータ
・システムの電源を再度投入したときにコンピュータ・
システムの動作環境とプログラム・アプリケーションを
復元するからである。このような高速サスペンド/レジ
ューム技術の一例としては、IBMによるRAPID RESUME
TMがある。RAPID RESUMETMでは、ユーザが開始した電源
遮断またはシステム・タイマの時間切れなどの所定の制
御事象の際にユーザまたはオペレーティング・システム
がコンピュータ・システムをサスペンドすることができ
る。サスペンド/レジューム技術およびオペレーション
の詳細については、以下に説明する。
により、ユーザは、コンピュータ・システムの電源を切
断するときにプログラム・アプリケーションをオープン
にしたままにしておくよう奨励されている。というの
は、高速サスペンド/レジューム技術は、コンピュータ
・システムの電源を再度投入したときにコンピュータ・
システムの動作環境とプログラム・アプリケーションを
復元するからである。このような高速サスペンド/レジ
ューム技術の一例としては、IBMによるRAPID RESUME
TMがある。RAPID RESUMETMでは、ユーザが開始した電源
遮断またはシステム・タイマの時間切れなどの所定の制
御事象の際にユーザまたはオペレーティング・システム
がコンピュータ・システムをサスペンドすることができ
る。サスペンド/レジューム技術およびオペレーション
の詳細については、以下に説明する。
【0003】多くのコンピュータ・システムは、一般に
ウィンドウ環境と呼ばれるもので動作する。ウィンドウ
環境とは、モニタの画面上に描かれた図形表示によりコ
ンピュータ上で実行されているアプリケーション・プロ
グラムとユーザとの間のやりとりを管理するシステム・
ソフトウェアである。通常、この図形表示は、電子の
「デスクトップ」の表面に似るように配置され、コンピ
ュータ上で動作しているそれぞれのアプリケーション・
プログラムは、「ウィンドウ」と呼ばれる画面の矩形領
域に表示される1枚または複数枚の電子の紙として表さ
れる。
ウィンドウ環境と呼ばれるもので動作する。ウィンドウ
環境とは、モニタの画面上に描かれた図形表示によりコ
ンピュータ上で実行されているアプリケーション・プロ
グラムとユーザとの間のやりとりを管理するシステム・
ソフトウェアである。通常、この図形表示は、電子の
「デスクトップ」の表面に似るように配置され、コンピ
ュータ上で動作しているそれぞれのアプリケーション・
プログラムは、「ウィンドウ」と呼ばれる画面の矩形領
域に表示される1枚または複数枚の電子の紙として表さ
れる。
【0004】デスクトップ上には複数のウィンドウが同
時に存在し、それぞれのウィンドウが異なるアプリケー
ション・プログラムによって生成された情報を表示して
いる可能性がある。それぞれのアプリケーション・プロ
グラムは、ウィンドウ領域内にイメージ、グラフィッ
ク、またはテキストを描くことにより、そのウィンドウ
を介してユーザに情報を提示する。これに対してユーザ
は、マウスなどのポインティング・デバイスによって制
御されるポインタを使ってウィンドウ内の標準の図形オ
ブジェクトを「ポイント」してそのオブジェクトを選択
するか、またはモニタに関連するキーボードに情報をタ
イプ入力することにより、アプリケーションとやりとり
する。オブジェクトの選択は、マウスを作動させてポイ
ンタをオブジェクトの上またはその付近に移動させ、マ
ウス上のボタンを押して素早く解除する、すなわち、
「クリック」するか、またはキーボードによりカーソル
を操作することにより、実行することができる。
時に存在し、それぞれのウィンドウが異なるアプリケー
ション・プログラムによって生成された情報を表示して
いる可能性がある。それぞれのアプリケーション・プロ
グラムは、ウィンドウ領域内にイメージ、グラフィッ
ク、またはテキストを描くことにより、そのウィンドウ
を介してユーザに情報を提示する。これに対してユーザ
は、マウスなどのポインティング・デバイスによって制
御されるポインタを使ってウィンドウ内の標準の図形オ
ブジェクトを「ポイント」してそのオブジェクトを選択
するか、またはモニタに関連するキーボードに情報をタ
イプ入力することにより、アプリケーションとやりとり
する。オブジェクトの選択は、マウスを作動させてポイ
ンタをオブジェクトの上またはその付近に移動させ、マ
ウス上のボタンを押して素早く解除する、すなわち、
「クリック」するか、またはキーボードによりカーソル
を操作することにより、実行することができる。
【0005】通常、それぞれのウィンドウ領域によって
含まれる図形オブジェクトは、サイズ変更ボックス、ボ
タン、スクロール・バーである。これらのオブジェクト
は、ユーザがポインタでポイントして選択または操作す
ることができるユーザ・インタフェース要素を表してい
る。たとえば、ユーザは、これらの要素を操作して、表
示画面上でウィンドウをあちこち移動させたり、従来通
りデスクトップを配置するためにそのサイズと外観を変
更したりすることができる。これらの要素が選択または
操作されると、制御がユーザによって占有されたことが
ウィンドウ環境により基礎となるアプリケーション・プ
ログラムに通知される。
含まれる図形オブジェクトは、サイズ変更ボックス、ボ
タン、スクロール・バーである。これらのオブジェクト
は、ユーザがポインタでポイントして選択または操作す
ることができるユーザ・インタフェース要素を表してい
る。たとえば、ユーザは、これらの要素を操作して、表
示画面上でウィンドウをあちこち移動させたり、従来通
りデスクトップを配置するためにそのサイズと外観を変
更したりすることができる。これらの要素が選択または
操作されると、制御がユーザによって占有されたことが
ウィンドウ環境により基礎となるアプリケーション・プ
ログラムに通知される。
【0006】一般にユーザが使用可能なコマンド選択肢
をリストするユーザ・インタフェース要素の別の例とし
ては、ポップアップ・メニューとプルダウン・メニュー
がある。このようなメニューの活動化と、コマンドの選
択は、それをポイントしてマウス制御のポインタでそれ
をクリックするだけで、実行することができる。
をリストするユーザ・インタフェース要素の別の例とし
ては、ポップアップ・メニューとプルダウン・メニュー
がある。このようなメニューの活動化と、コマンドの選
択は、それをポイントしてマウス制御のポインタでそれ
をクリックするだけで、実行することができる。
【0007】上記の構成を使用する数通りのウィンドウ
環境が市販されている。このような環境としては、アッ
プル・コンピュータ社が開発したSystem 7(R)というオ
ペレーティング・システム、マイクロソフト社が開発し
たWindows(R)というグラフィカル・ユーザ・インタフェ
ース、IBMが開発したOS/2プレゼンテーション・
マネージャー(R)がある。本発明は、このような環境の
すべてに適用可能であり、関連機能またはタスク別にア
プリケーションをグループ化するためにデスクトップ・
メタファを使用するアプリケーションの管理に関係する
ものである。
環境が市販されている。このような環境としては、アッ
プル・コンピュータ社が開発したSystem 7(R)というオ
ペレーティング・システム、マイクロソフト社が開発し
たWindows(R)というグラフィカル・ユーザ・インタフェ
ース、IBMが開発したOS/2プレゼンテーション・
マネージャー(R)がある。本発明は、このような環境の
すべてに適用可能であり、関連機能またはタスク別にア
プリケーションをグループ化するためにデスクトップ・
メタファを使用するアプリケーションの管理に関係する
ものである。
【0008】一般に、デスクトップ・メタファは、作業
を実行するのに必要なアプリケーションをユーザが容易
に管理できる環境を提示することにより、ユーザ効率を
促進する。上記のウィンドウ環境は、通常、それぞれが
機能別に関連している、事前定義済みのアプリケーショ
ンの「グループ」単位にアプリケーションを編成する単
一デスクトップを提供するだけである。それぞれのアプ
リケーションは、「アイコン」と呼ばれる小さい絵によ
って表される。ユーザはデスクトップ上に表示されたア
イコンとそれに関連するグループの配置、作成、削除を
実行することができるが、関連するアプリケーションが
実行されたり、「オープンされる」わけではない。すな
わち、上記のウィンドウ環境では、通常、オープンした
アプリケーションのグループ化を行うことができない。
を実行するのに必要なアプリケーションをユーザが容易
に管理できる環境を提示することにより、ユーザ効率を
促進する。上記のウィンドウ環境は、通常、それぞれが
機能別に関連している、事前定義済みのアプリケーショ
ンの「グループ」単位にアプリケーションを編成する単
一デスクトップを提供するだけである。それぞれのアプ
リケーションは、「アイコン」と呼ばれる小さい絵によ
って表される。ユーザはデスクトップ上に表示されたア
イコンとそれに関連するグループの配置、作成、削除を
実行することができるが、関連するアプリケーションが
実行されたり、「オープンされる」わけではない。すな
わち、上記のウィンドウ環境では、通常、オープンした
アプリケーションのグループ化を行うことができない。
【0009】アプリケーションは、それに関連するアイ
コンを事前定義済みグループから選択することによって
オープンすることができ、このようなオープン・アプリ
ケーションは通常、デスクトップ上に見える「アプリケ
ーション・ウィンドウ」で実行される。複数のアプリケ
ーションを同時にオープンすると、デスクトップは散乱
したように見える場合がある。アプリケーションを終了
せずにデスクトップ上の空間を解放するためには、オー
プン・アプリケーション・ウィンドウを最小化し、一般
にオープンしていないアプリケーションを表すために使
用するアイコンと同じアイコンであるアイコンとして表
示することができる。オープンしたアプリケーション・
プログラムはアイコンによって表されるが、そのアイコ
ンは、事前定義済みグループの一部ではなくなってお
り、他のグループからオープンしたアプリケーションを
表す他のアイコンとともにデスクトップ上に表示され
る。
コンを事前定義済みグループから選択することによって
オープンすることができ、このようなオープン・アプリ
ケーションは通常、デスクトップ上に見える「アプリケ
ーション・ウィンドウ」で実行される。複数のアプリケ
ーションを同時にオープンすると、デスクトップは散乱
したように見える場合がある。アプリケーションを終了
せずにデスクトップ上の空間を解放するためには、オー
プン・アプリケーション・ウィンドウを最小化し、一般
にオープンしていないアプリケーションを表すために使
用するアイコンと同じアイコンであるアイコンとして表
示することができる。オープンしたアプリケーション・
プログラムはアイコンによって表されるが、そのアイコ
ンは、事前定義済みグループの一部ではなくなってお
り、他のグループからオープンしたアプリケーションを
表す他のアイコンとともにデスクトップ上に表示され
る。
【0010】サスペンド/レジューム技術により、電源
投入時にコンピュータ・システムをレジュームしたユー
ザが、コンピュータ・システムをサスペンドしたのと同
一ユーザではない場合、不明瞭な状況が発生する可能性
がある。たとえば、前のユーザによってオープンしたま
まになっているアプリケーションは次のユーザが容易に
アクセスすることができ、そのため、保管されていない
データを修正したり、破棄することが可能である。この
ようなアプリケーションとしては、ワード・プロセッサ
文書、スプレッドシート、CAD図面などがある。この
ような状況は、家族全員が使用するパーソナル・コンピ
ュータ・システムなど、単一コンピュータ・システムを
複数のユーザが使用する場合に特に当てはまる。したが
って、コンピュータ・システムをレジュームしたユーザ
がコンピュータ・システムをサスペンドしたのと同一ユ
ーザではない場合にデータ紛失を防止する必要性があ
る。
投入時にコンピュータ・システムをレジュームしたユー
ザが、コンピュータ・システムをサスペンドしたのと同
一ユーザではない場合、不明瞭な状況が発生する可能性
がある。たとえば、前のユーザによってオープンしたま
まになっているアプリケーションは次のユーザが容易に
アクセスすることができ、そのため、保管されていない
データを修正したり、破棄することが可能である。この
ようなアプリケーションとしては、ワード・プロセッサ
文書、スプレッドシート、CAD図面などがある。この
ような状況は、家族全員が使用するパーソナル・コンピ
ュータ・システムなど、単一コンピュータ・システムを
複数のユーザが使用する場合に特に当てはまる。したが
って、コンピュータ・システムをレジュームしたユーザ
がコンピュータ・システムをサスペンドしたのと同一ユ
ーザではない場合にデータ紛失を防止する必要性があ
る。
【0011】さらに、通常、それぞれのコンピュータ・
システムは、ユーザ個人の好みに合わせるためにユーザ
が修正可能な1群のシステム選択設定を含む。一般にシ
ステム選択設定としては、前景および背景のカラーとデ
ザイン、フォント、カーソルの点滅速度と形状、オーデ
ィオ・オプションなどがある。WINDOWSTMオペレーティ
ング・システムは、ユーザによるシステム選択設定の修
正を可能にするオペレーティング・システムの一例であ
る。事実、この選択設定により、それぞれのコンピュー
タ・システムはユーザが定義した所与の「雰囲気」を保
持することができる。システム選択設定はその非常に自
然な好みによるものなので、あるユーザの好みが別のユ
ーザには適当でない場合があり、その結果、複数のユー
ザが同一コンピュータ・システムを使用し、システム選
択設定が相容れないときに、争いが発生する。これは、
別のユーザがシステム選択設定を修正し、その結果、レ
ジュームしたコンピュータ・システムがまったく別のコ
ンピュータ・システムに見えるようにしたことが分かる
ようにするためにのみ、ある状態でコンピュータ・シス
テムをサスペンドしたユーザにとって特に面倒なことに
なる場合がある。
システムは、ユーザ個人の好みに合わせるためにユーザ
が修正可能な1群のシステム選択設定を含む。一般にシ
ステム選択設定としては、前景および背景のカラーとデ
ザイン、フォント、カーソルの点滅速度と形状、オーデ
ィオ・オプションなどがある。WINDOWSTMオペレーティ
ング・システムは、ユーザによるシステム選択設定の修
正を可能にするオペレーティング・システムの一例であ
る。事実、この選択設定により、それぞれのコンピュー
タ・システムはユーザが定義した所与の「雰囲気」を保
持することができる。システム選択設定はその非常に自
然な好みによるものなので、あるユーザの好みが別のユ
ーザには適当でない場合があり、その結果、複数のユー
ザが同一コンピュータ・システムを使用し、システム選
択設定が相容れないときに、争いが発生する。これは、
別のユーザがシステム選択設定を修正し、その結果、レ
ジュームしたコンピュータ・システムがまったく別のコ
ンピュータ・システムに見えるようにしたことが分かる
ようにするためにのみ、ある状態でコンピュータ・シス
テムをサスペンドしたユーザにとって特に面倒なことに
なる場合がある。
【0012】したがって、同一コンピュータ・システム
を共用する複数のユーザが自分専用のコンピュータ・シ
ステムを持っていると思えるようにするために、複数ユ
ーザ・コンピュータ・システムで個々のユーザのシステ
ム選択設定を保管し復元する必要性がある。また、複数
ユーザ・システムで機能またはユーザ特性別にアプリケ
ーション・プログラムを単純かつ効率よく編成すること
も必要である。
を共用する複数のユーザが自分専用のコンピュータ・シ
ステムを持っていると思えるようにするために、複数ユ
ーザ・コンピュータ・システムで個々のユーザのシステ
ム選択設定を保管し復元する必要性がある。また、複数
ユーザ・システムで機能またはユーザ特性別にアプリケ
ーション・プログラムを単純かつ効率よく編成すること
も必要である。
【0013】
【発明が解決しようとする課題】したがって、本発明の
利点の1つは、それぞれのユーザが自分の個別プログラ
ム・アプリケーションとシステム選択設定を同一コンピ
ュータ・システムの他のユーザから保護できるようにす
る、複数ユーザ・パーソナル・コンピュータ・システム
を提供することにある。
利点の1つは、それぞれのユーザが自分の個別プログラ
ム・アプリケーションとシステム選択設定を同一コンピ
ュータ・システムの他のユーザから保護できるようにす
る、複数ユーザ・パーソナル・コンピュータ・システム
を提供することにある。
【0014】本発明の他の利点は、それぞれのユーザの
専用パーソナル・コンピュータ・システムの雰囲気を保
持する、複数ユーザ・パーソナル・コンピュータ・シス
テムを提供することにある。
専用パーソナル・コンピュータ・システムの雰囲気を保
持する、複数ユーザ・パーソナル・コンピュータ・シス
テムを提供することにある。
【0015】また、本発明の他の利点は、ユーザ定義機
能を特徴とする複数の作業域を含む、複数ユーザ・コン
ピュータ・システムを提供することにもある。
能を特徴とする複数の作業域を含む、複数ユーザ・コン
ピュータ・システムを提供することにもある。
【0016】
【課題を解決するための手段】本発明により、コンピュ
ータ・システムをレジュームしたユーザがコンピュータ
・システムをサスペンドしたのと同一ユーザではない場
合にデータ紛失を防止するコンピュータ・システムが提
供される。このコンピュータ・システムは、複数の個別
コンピュータ・システム選択設定を表すための複数の作
業域を含む。それぞれの作業域は、個々のユーザのコン
ピュータ・システム選択設定を表すように定義すること
ができる。コンピュータ・システム選択設定としては、
オペレーティング・システム選択設定と、アプリケーシ
ョン・プログラム選択設定がある。オペレーティング・
システム選択設定の例としては、表示カラー、フォン
ト、オーディオ設定、ビデオ設定、言語などがある。ユ
ーザが特定の作業域を選択できるようにするため、作業
域マネージャが用意されている。この作業域マネージャ
により、ユーザは、使用可能な作業域のナビゲーション
に関連する多くの機能を実行することができる。このよ
うな機能としては、作業域間の切替え、ユーザ・パスワ
ードによる作業域のロック、作業域のロック解除、作業
域の選択、作業域のクローズ、作業域の作成などがあ
る。
ータ・システムをレジュームしたユーザがコンピュータ
・システムをサスペンドしたのと同一ユーザではない場
合にデータ紛失を防止するコンピュータ・システムが提
供される。このコンピュータ・システムは、複数の個別
コンピュータ・システム選択設定を表すための複数の作
業域を含む。それぞれの作業域は、個々のユーザのコン
ピュータ・システム選択設定を表すように定義すること
ができる。コンピュータ・システム選択設定としては、
オペレーティング・システム選択設定と、アプリケーシ
ョン・プログラム選択設定がある。オペレーティング・
システム選択設定の例としては、表示カラー、フォン
ト、オーディオ設定、ビデオ設定、言語などがある。ユ
ーザが特定の作業域を選択できるようにするため、作業
域マネージャが用意されている。この作業域マネージャ
により、ユーザは、使用可能な作業域のナビゲーション
に関連する多くの機能を実行することができる。このよ
うな機能としては、作業域間の切替え、ユーザ・パスワ
ードによる作業域のロック、作業域のロック解除、作業
域の選択、作業域のクローズ、作業域の作成などがあ
る。
【0017】操作時には、作業域マネージャにより、ユ
ーザはコンピュータ・システム上で使用可能な複数の作
業域の1つを選択することができる。1つの作業域が選
択されると、作業域マネージャが現行作業域(すなわ
ち、デフォルト作業域)設定を作業域設定プロファイル
・ファイルに格納し、次に同じ作業域設定プロファイル
・ファイルから指定の作業域の設定プロファイルを読み
取る。現行作業域設定が保管され、新しい作業域設定が
ロードされると、現行作業域アプリケーションがディス
プレイから除去され、指定の作業域アプリケーションが
表示される。ユーザは、アプリケーションのオープン、
アプリケーションのクローズ、システム選択設定の変更
などにより、通常の方法で指定の作業域内で作業するこ
とができる。
ーザはコンピュータ・システム上で使用可能な複数の作
業域の1つを選択することができる。1つの作業域が選
択されると、作業域マネージャが現行作業域(すなわ
ち、デフォルト作業域)設定を作業域設定プロファイル
・ファイルに格納し、次に同じ作業域設定プロファイル
・ファイルから指定の作業域の設定プロファイルを読み
取る。現行作業域設定が保管され、新しい作業域設定が
ロードされると、現行作業域アプリケーションがディス
プレイから除去され、指定の作業域アプリケーションが
表示される。ユーザは、アプリケーションのオープン、
アプリケーションのクローズ、システム選択設定の変更
などにより、通常の方法で指定の作業域内で作業するこ
とができる。
【0018】サスペンド操作によりコンピュータ・シス
テムが電源遮断された場合、それ以降の電源投入時のレ
ジューム操作時に、コンピュータ・システムはレジュー
ムした作業域設定を作業域設定プロファイル・ファイル
に自動的に保管し、デフォルト作業域設定をロードす
る。次にコンピュータ・システムは、レジュームした作
業域アプリケーション・プログラムをディスプレイから
除去し、デフォルト作業域アプリケーション・プログラ
ムを表示する。ユーザは、Ctrl+Escというキー
ストロークによって作業域マネージャを呼び出し、そこ
から作業すべき所望の作業域を選択することができる。
したがって、本発明は、同一コンピュータ・システムを
共用する複数のユーザが自分専用のコンピュータ・シス
テムを持っていると思えるようにするために、複数ユー
ザ・コンピュータ・システムで個々のユーザのシステム
選択設定を保管し復元するコンピュータ・システムを提
供する。本発明の特定の実施例については、複数デスク
トップ・コンピュータ・システムのデスクトップ・マネ
ージャとして説明する。
テムが電源遮断された場合、それ以降の電源投入時のレ
ジューム操作時に、コンピュータ・システムはレジュー
ムした作業域設定を作業域設定プロファイル・ファイル
に自動的に保管し、デフォルト作業域設定をロードす
る。次にコンピュータ・システムは、レジュームした作
業域アプリケーション・プログラムをディスプレイから
除去し、デフォルト作業域アプリケーション・プログラ
ムを表示する。ユーザは、Ctrl+Escというキー
ストロークによって作業域マネージャを呼び出し、そこ
から作業すべき所望の作業域を選択することができる。
したがって、本発明は、同一コンピュータ・システムを
共用する複数のユーザが自分専用のコンピュータ・シス
テムを持っていると思えるようにするために、複数ユー
ザ・コンピュータ・システムで個々のユーザのシステム
選択設定を保管し復元するコンピュータ・システムを提
供する。本発明の特定の実施例については、複数デスク
トップ・コンピュータ・システムのデスクトップ・マネ
ージャとして説明する。
【0019】本発明の上記およびその他の利点は、本発
明の詳細な説明からさらに明らかになるであろう。
明の詳細な説明からさらに明らかになるであろう。
【0020】本明細書に組み込まれ、本明細書の一部を
構成する添付図面では、上記の本発明の一般説明ととも
に本発明の実施例が例示されており、以下に示す詳細説
明は本発明の原理を例示する働きをする。
構成する添付図面では、上記の本発明の一般説明ととも
に本発明の実施例が例示されており、以下に示す詳細説
明は本発明の原理を例示する働きをする。
【0021】
【発明の実施の形態】本発明の好ましい実施例が示され
ている添付図面を参照して本発明を以下により詳しく説
明するが、以下に続く説明の最初に、当業者は本発明の
好ましい結果を達成しながらここに記載する本発明を修
正できることに留意されたい。したがって、以下に続く
説明は、本発明を制限するものとしてではなく、当業者
向けの広範囲の教示開示であると理解すべきである。本
発明では、コンピュータ・アーキテクチャ設計、ディジ
タル設計、BIOS設計、保護モード80486コード
設計、アプリケーション・コード設計、オペレーティン
グ・システム・コード設計、拡張パワー・マネージメン
トの拡張プログラミング・インタフェースの使用法など
を含みかつこれらに限定されないコンピュータ・システ
ムの設計全体を扱う。本出願は、コンピュータ・システ
ム設計のあらゆる面に精通した人を対象として作成され
ている。
ている添付図面を参照して本発明を以下により詳しく説
明するが、以下に続く説明の最初に、当業者は本発明の
好ましい結果を達成しながらここに記載する本発明を修
正できることに留意されたい。したがって、以下に続く
説明は、本発明を制限するものとしてではなく、当業者
向けの広範囲の教示開示であると理解すべきである。本
発明では、コンピュータ・アーキテクチャ設計、ディジ
タル設計、BIOS設計、保護モード80486コード
設計、アプリケーション・コード設計、オペレーティン
グ・システム・コード設計、拡張パワー・マネージメン
トの拡張プログラミング・インタフェースの使用法など
を含みかつこれらに限定されないコンピュータ・システ
ムの設計全体を扱う。本出願は、コンピュータ・システ
ム設計のあらゆる面に精通した人を対象として作成され
ている。
【0022】次に添付図面を特に参照すると、図面には
本発明を実施するマイクロコンピュータ・システムが示
されており、全体が10(図1)で示されている。前述
のように、コンピュータ10は、関連モニタ11、キー
ボード12、マウス13、プリンタまたはプロッタ14
を有することができる。コンピュータ10は、ディジタ
ル・データを処理し格納するための電源付きデータ処理
およびデータ記憶構成要素を受け入れるためにシャシ1
9と協調して密閉されシールドされた容積を規定する装
飾外部部材16(図2)と内部シールド部材18とによ
って形成されたカバー15を備えている。これらの構成
要素の少なくとも一部は、シャシ19に取り付けられた
多層プレーナ20またはマザーボード上に搭載されてお
り、この多層プレーナ20またはマザーボードは、上記
のものと、フロッピー・ディスク・ドライブ、様々な形
態の直接アクセス記憶装置、アクセサリ・カードまたは
ボードなどのような他の関連要素とを含む、コンピュー
タ10の各種構成要素を電気的に相互接続するための手
段を提供する。以下にさらに詳しく指摘するように、プ
レーナ20には、マイクロコンピュータの各種動作構成
要素との間で入出力信号を引き渡すための備えが用意さ
れている。
本発明を実施するマイクロコンピュータ・システムが示
されており、全体が10(図1)で示されている。前述
のように、コンピュータ10は、関連モニタ11、キー
ボード12、マウス13、プリンタまたはプロッタ14
を有することができる。コンピュータ10は、ディジタ
ル・データを処理し格納するための電源付きデータ処理
およびデータ記憶構成要素を受け入れるためにシャシ1
9と協調して密閉されシールドされた容積を規定する装
飾外部部材16(図2)と内部シールド部材18とによ
って形成されたカバー15を備えている。これらの構成
要素の少なくとも一部は、シャシ19に取り付けられた
多層プレーナ20またはマザーボード上に搭載されてお
り、この多層プレーナ20またはマザーボードは、上記
のものと、フロッピー・ディスク・ドライブ、様々な形
態の直接アクセス記憶装置、アクセサリ・カードまたは
ボードなどのような他の関連要素とを含む、コンピュー
タ10の各種構成要素を電気的に相互接続するための手
段を提供する。以下にさらに詳しく指摘するように、プ
レーナ20には、マイクロコンピュータの各種動作構成
要素との間で入出力信号を引き渡すための備えが用意さ
れている。
【0023】コンピュータ・システムは、電源17と、
電源ボタン21(以下ではスイッチ21ともいう)とを
有する。後述するように、この電源ボタン21は、典型
的なシステムの通常の電源スイッチとは異なり、電源1
7との間の未調整線電力の切替えを行わない。シャシ1
9は、22に示すベースと、24に示す前面パネルと、
25に示す後部パネルとを有する(図2)。前面パネル
24は、磁気ディスクまたは光ディスク用のディスク・
ドライブ、テープ・バックアップ・ドライブなどのデー
タ記憶装置を受け入れるための少なくとも1つのオープ
ン・ベイ(ならびに図示の形態の4つのベイ)を規定し
ている。図示の形態では、1対の上部ベイ26、28
と、1対の下部ベイ29、30が設けられている。一方
の上部ベイ26は、第1のサイズの周辺ドライブ(3.
5インチ・ドライブと呼ばれるものなど)を受け入れら
れるようになっており、もう一方のベイ28は、2つの
サイズ(3.5インチと5.25インチなど)のうちの
指定のサイズのドライブを受け入れられるようになって
おり、下部ベイは、1つのサイズ(3.5インチ)のみ
の装置を受け入れられるようになっている。図1の27
には1つのフロッピー・ディスク・ドライブが示されて
いるが、これは、一般に知られているように、それに挿
入されたディスケットを受け入れ、このディスケットを
使用してデータの受取り、格納、送達を行うことができ
る、取外し可能媒体直接アクセス記憶装置である。31
には1つのハード・ディスク・ドライブが示されている
が、これは、一般に知られているように、データの格納
と送達を行うことができる、固定媒体直接アクセス記憶
装置である。
電源ボタン21(以下ではスイッチ21ともいう)とを
有する。後述するように、この電源ボタン21は、典型
的なシステムの通常の電源スイッチとは異なり、電源1
7との間の未調整線電力の切替えを行わない。シャシ1
9は、22に示すベースと、24に示す前面パネルと、
25に示す後部パネルとを有する(図2)。前面パネル
24は、磁気ディスクまたは光ディスク用のディスク・
ドライブ、テープ・バックアップ・ドライブなどのデー
タ記憶装置を受け入れるための少なくとも1つのオープ
ン・ベイ(ならびに図示の形態の4つのベイ)を規定し
ている。図示の形態では、1対の上部ベイ26、28
と、1対の下部ベイ29、30が設けられている。一方
の上部ベイ26は、第1のサイズの周辺ドライブ(3.
5インチ・ドライブと呼ばれるものなど)を受け入れら
れるようになっており、もう一方のベイ28は、2つの
サイズ(3.5インチと5.25インチなど)のうちの
指定のサイズのドライブを受け入れられるようになって
おり、下部ベイは、1つのサイズ(3.5インチ)のみ
の装置を受け入れられるようになっている。図1の27
には1つのフロッピー・ディスク・ドライブが示されて
いるが、これは、一般に知られているように、それに挿
入されたディスケットを受け入れ、このディスケットを
使用してデータの受取り、格納、送達を行うことができ
る、取外し可能媒体直接アクセス記憶装置である。31
には1つのハード・ディスク・ドライブが示されている
が、これは、一般に知られているように、データの格納
と送達を行うことができる、固定媒体直接アクセス記憶
装置である。
【0024】上記構造を本発明に関連付ける前に、パー
ソナル・コンピュータ・システム10の動作一般を要約
すると、検討に値するものと思われる。図3〜4を参照
すると、同図には、プレーナ20に搭載された各種構成
要素と、パーソナル・コンピュータ・システムの入出力
スロットおよびその他のハードウェアへのプレーナの接
続部とを含む、本発明によるシステム10などのコンピ
ュータ・システムの様々な構成要素を示すパーソナル・
コンピュータ・システムのブロック図が示されている。
プレーナには、マイクロプロセッサから構成されるシス
テム・プロセッサ40(本明細書ではCPU40ともい
う)が接続され、これはメモリ制御ユニット46を介し
て高速CPUローカル・バス42によって接続され、メ
モリ制御ユニット46は揮発性ランダム・アクセス・メ
モリ(RAM)53にさらに接続されている。メモリ制
御ユニット46は、メモリ制御装置48と、アドレス・
マルチプレクサ50と、データ・バッファ52とで構成
されている。メモリ制御ユニット46は、4つのRAM
モジュール54によって表されるランダム・アクセス・
メモリ53にさらに接続されている。メモリ制御装置4
8は、マイクロプロセッサ40との間でやりとりされる
アドレスをRAM53の特定区域にマッピングするため
の論理回路を含んでいる。この論理回路は、以前BIO
Sによって占有されていたRAMを再利用するために使
用する。メモリ制御装置48は、ROM88を使用可能
または使用禁止にするために使用するROM選択信号
(ROMSEL)をさらに生成する。適切なマイクロプ
ロセッサであればどれでもシステム・プロセッサ40に
使用することができるが、適当なマイクロプロセッサの
1つは、INTEL社が販売している80486であ
る。Intel80486は内部キャッシュを備えてお
り、したがって、Intel80486であるCPU4
0はCPUキャッシュ41を備えることになる。
ソナル・コンピュータ・システム10の動作一般を要約
すると、検討に値するものと思われる。図3〜4を参照
すると、同図には、プレーナ20に搭載された各種構成
要素と、パーソナル・コンピュータ・システムの入出力
スロットおよびその他のハードウェアへのプレーナの接
続部とを含む、本発明によるシステム10などのコンピ
ュータ・システムの様々な構成要素を示すパーソナル・
コンピュータ・システムのブロック図が示されている。
プレーナには、マイクロプロセッサから構成されるシス
テム・プロセッサ40(本明細書ではCPU40ともい
う)が接続され、これはメモリ制御ユニット46を介し
て高速CPUローカル・バス42によって接続され、メ
モリ制御ユニット46は揮発性ランダム・アクセス・メ
モリ(RAM)53にさらに接続されている。メモリ制
御ユニット46は、メモリ制御装置48と、アドレス・
マルチプレクサ50と、データ・バッファ52とで構成
されている。メモリ制御ユニット46は、4つのRAM
モジュール54によって表されるランダム・アクセス・
メモリ53にさらに接続されている。メモリ制御装置4
8は、マイクロプロセッサ40との間でやりとりされる
アドレスをRAM53の特定区域にマッピングするため
の論理回路を含んでいる。この論理回路は、以前BIO
Sによって占有されていたRAMを再利用するために使
用する。メモリ制御装置48は、ROM88を使用可能
または使用禁止にするために使用するROM選択信号
(ROMSEL)をさらに生成する。適切なマイクロプ
ロセッサであればどれでもシステム・プロセッサ40に
使用することができるが、適当なマイクロプロセッサの
1つは、INTEL社が販売している80486であ
る。Intel80486は内部キャッシュを備えてお
り、したがって、Intel80486であるCPU4
0はCPUキャッシュ41を備えることになる。
【0025】図3〜4のシステム・ブロック図を特に参
照して以下に本発明について説明するが、以下に続く説
明の最初に、本発明による装置および方法は他のハード
ウェア構成のプレーナ・ボードでも使用可能であること
を企図していることに留意されたい。たとえば、システ
ム・プロセッサ40は、Intel80286または8
0386マイクロプロセッサにすることができる。本明
細書で使用する80286、80386、または804
86という表示は、一般に、Intel社から得られる
ようなマイクロプロセッサを意図するものである。しか
し、最近では、Intel X86アーキテクチャの命
令セットを実行可能なマイクロプロセッサが他のメーカ
によって開発されており、上記の用語の使用はその命令
セットを実行可能な任意のマイクロプロセッサを包含す
るものとする。当業者には既知のように、一般に初期の
パーソナル・コンピュータは、当時普及していたInt
el8088または8086マイクロプロセッサをシス
テム・プロセッサとして使用していた。このようなプロ
セッサは、1メガバイトのメモリをアドレス指定できる
能力を備えている。より最近では、パーソナル・コンピ
ュータは一般に、より低速の8086マイクロプロセッ
サをエミュレートするための仮想モードまたは実モー
ド、あるいは一部のモデルの場合にアドレス範囲を1メ
ガバイトから4ギガバイトへ拡張する保護モードで動作
可能な高速のIntel80286、80386、80
486マイクロプロセッサを使用している。本質的に、
80286、80386、80486プロセッサの実モ
ード機構により、8086および8088マイクロプロ
セッサ用に作成されたソフトウェアとのハードウェア上
の互換性が得られる。上記のIntelファミリーのプ
ロセッサは、完全なタイプ指定の下3桁のみの3桁表示
によって「486」などのように示される場合が多い。
照して以下に本発明について説明するが、以下に続く説
明の最初に、本発明による装置および方法は他のハード
ウェア構成のプレーナ・ボードでも使用可能であること
を企図していることに留意されたい。たとえば、システ
ム・プロセッサ40は、Intel80286または8
0386マイクロプロセッサにすることができる。本明
細書で使用する80286、80386、または804
86という表示は、一般に、Intel社から得られる
ようなマイクロプロセッサを意図するものである。しか
し、最近では、Intel X86アーキテクチャの命
令セットを実行可能なマイクロプロセッサが他のメーカ
によって開発されており、上記の用語の使用はその命令
セットを実行可能な任意のマイクロプロセッサを包含す
るものとする。当業者には既知のように、一般に初期の
パーソナル・コンピュータは、当時普及していたInt
el8088または8086マイクロプロセッサをシス
テム・プロセッサとして使用していた。このようなプロ
セッサは、1メガバイトのメモリをアドレス指定できる
能力を備えている。より最近では、パーソナル・コンピ
ュータは一般に、より低速の8086マイクロプロセッ
サをエミュレートするための仮想モードまたは実モー
ド、あるいは一部のモデルの場合にアドレス範囲を1メ
ガバイトから4ギガバイトへ拡張する保護モードで動作
可能な高速のIntel80286、80386、80
486マイクロプロセッサを使用している。本質的に、
80286、80386、80486プロセッサの実モ
ード機構により、8086および8088マイクロプロ
セッサ用に作成されたソフトウェアとのハードウェア上
の互換性が得られる。上記のIntelファミリーのプ
ロセッサは、完全なタイプ指定の下3桁のみの3桁表示
によって「486」などのように示される場合が多い。
【0026】図3〜4に戻ると、CPUローカル・バス
42(データ、アドレス、制御の各構成要素を含む)
は、マイクロプロセッサ40、数学補助プロセッサ4
4、ビデオ制御装置56、システム・キャッシュ・メモ
リ60、キャッシュ制御装置62の接続に備えている。
ビデオ制御装置56は、それに関連するモニタ(または
ビデオ・ディスプレイ端末)57と、ビデオ・メモリ5
8とを備えている。また、CPUローカル・バス42上
にはバッファ64が結合されている。バッファ64自体
は、(CPUローカル・バス42に比べ)より低速のシ
ステム・バス66(同じくアドレス、データ、制御の各
構成要素を含む)に接続されている。システム・バス6
6は、バッファ64ともう1つのバッファ68との間に
伸びている。システム・バス66は、バス制御と、タイ
ミング・ユニット70と、DMAユニット71にさらに
接続されている。DMAユニット71は、中央アービタ
82とDMA制御装置72から構成される。追加バッフ
ァ74は、システム・バス66と、業界標準アーキテク
チャ(ISA)バス76などの任意選択機構バスとのイ
ンタフェースを提供する。バス76には、ISAアダプ
タ・カード(図示せず)を受け入れるための複数の入出
力スロット78が接続されている。ISAアダプタ・カ
ードは、入出力スロット78に差込み式に接続され、シ
ステム10に追加の入出力装置またはメモリを提供する
ことができる。
42(データ、アドレス、制御の各構成要素を含む)
は、マイクロプロセッサ40、数学補助プロセッサ4
4、ビデオ制御装置56、システム・キャッシュ・メモ
リ60、キャッシュ制御装置62の接続に備えている。
ビデオ制御装置56は、それに関連するモニタ(または
ビデオ・ディスプレイ端末)57と、ビデオ・メモリ5
8とを備えている。また、CPUローカル・バス42上
にはバッファ64が結合されている。バッファ64自体
は、(CPUローカル・バス42に比べ)より低速のシ
ステム・バス66(同じくアドレス、データ、制御の各
構成要素を含む)に接続されている。システム・バス6
6は、バッファ64ともう1つのバッファ68との間に
伸びている。システム・バス66は、バス制御と、タイ
ミング・ユニット70と、DMAユニット71にさらに
接続されている。DMAユニット71は、中央アービタ
82とDMA制御装置72から構成される。追加バッフ
ァ74は、システム・バス66と、業界標準アーキテク
チャ(ISA)バス76などの任意選択機構バスとのイ
ンタフェースを提供する。バス76には、ISAアダプ
タ・カード(図示せず)を受け入れるための複数の入出
力スロット78が接続されている。ISAアダプタ・カ
ードは、入出力スロット78に差込み式に接続され、シ
ステム10に追加の入出力装置またはメモリを提供する
ことができる。
【0027】アービトレーション制御バス80は、DM
A制御装置72と中央アービタ82を入出力スロット7
8、ディスケット・アダプタ84、統合ドライブ・エレ
クトロニクス(IDE)の固定ディスク制御装置86に
結合する。
A制御装置72と中央アービタ82を入出力スロット7
8、ディスケット・アダプタ84、統合ドライブ・エレ
クトロニクス(IDE)の固定ディスク制御装置86に
結合する。
【0028】マイクロコンピュータ・システム10は基
本4メガバイトRAMモジュール53とともに示されて
いるが、任意選択の高密度メモリ・モジュール54の追
加により図3に表すように追加メモリを相互接続できる
ことに留意されたい。例示のみを目的として、基本4メ
ガバイト・メモリ・モジュールに関連して本発明を説明
する。
本4メガバイトRAMモジュール53とともに示されて
いるが、任意選択の高密度メモリ・モジュール54の追
加により図3に表すように追加メモリを相互接続できる
ことに留意されたい。例示のみを目的として、基本4メ
ガバイト・メモリ・モジュールに関連して本発明を説明
する。
【0029】ラッチ・バッファ68は、システム・バス
66とプレーナ入出力バス90との間に結合されてい
る。プレーナ入出力バス90は、アドレス、データ、制
御の各構成要素をそれぞれ含んでいる。プレーナ入出力
バス90に沿って、ディスケット・アダプタ84、ID
Eディスク・アダプタ86、割込み制御装置92、RS
−232アダプタ94、不揮発性CMOS RAM96
(本明細書ではNVRAMともいう)、CMOSリアル
タイム・クロック98、パラレル・アダプタ100、複
数のタイマ102、読取り専用メモリ(ROM)88、
8042 104、パワー・マネージメント回路106
など、様々な入出力アダプタおよびその他の構成要素が
結合されている。104に示す8042は、キーボード
12およびマウス13とのインタフェースを取るスレー
ブ・マイクロプロセッサである。パワー・マネージメン
ト回路106については、図7〜8に示し、図7〜9に
付随する本文でより詳細に説明する。読取り専用メモリ
88は、入出力装置とマイクロプロセッサ40のオペレ
ーティング・システムとのインタフェースを取るために
使用するBIOSを含んでいる。ROM88に格納され
ているBIOSは、BIOSの実行時間を削減するため
にRAM53にコピーすることができる。ROM88は
(ROMSEL信号を介して)さらにメモリ制御装置4
8に応答する。ROM88がメモリ制御装置48によっ
て使用可能になっている場合、BIOSはROMから実
行される。ROM88がメモリ制御装置48によって使
用禁止になっている場合、ROMはマイクロプロセッサ
40からのアドレス照会に応答しない(すなわち、BI
OSはRAMから実行される)。
66とプレーナ入出力バス90との間に結合されてい
る。プレーナ入出力バス90は、アドレス、データ、制
御の各構成要素をそれぞれ含んでいる。プレーナ入出力
バス90に沿って、ディスケット・アダプタ84、ID
Eディスク・アダプタ86、割込み制御装置92、RS
−232アダプタ94、不揮発性CMOS RAM96
(本明細書ではNVRAMともいう)、CMOSリアル
タイム・クロック98、パラレル・アダプタ100、複
数のタイマ102、読取り専用メモリ(ROM)88、
8042 104、パワー・マネージメント回路106
など、様々な入出力アダプタおよびその他の構成要素が
結合されている。104に示す8042は、キーボード
12およびマウス13とのインタフェースを取るスレー
ブ・マイクロプロセッサである。パワー・マネージメン
ト回路106については、図7〜8に示し、図7〜9に
付随する本文でより詳細に説明する。読取り専用メモリ
88は、入出力装置とマイクロプロセッサ40のオペレ
ーティング・システムとのインタフェースを取るために
使用するBIOSを含んでいる。ROM88に格納され
ているBIOSは、BIOSの実行時間を削減するため
にRAM53にコピーすることができる。ROM88は
(ROMSEL信号を介して)さらにメモリ制御装置4
8に応答する。ROM88がメモリ制御装置48によっ
て使用可能になっている場合、BIOSはROMから実
行される。ROM88がメモリ制御装置48によって使
用禁止になっている場合、ROMはマイクロプロセッサ
40からのアドレス照会に応答しない(すなわち、BI
OSはRAMから実行される)。
【0030】リアルタイム・クロック98は時刻計算に
使用し、NVRAM96はシステム構成データを格納す
るために使用する。すなわち、NVRAM96は、シス
テムの現在の構成を記述する値を収容することになる。
たとえば、NVRAM96は、固定ディスクまたはディ
スケットの容量、ディスプレイのタイプ、メモリの容
量、時間、日付などを記述する情報を収容する。特に重
要な点は、BIOSがROMから実行されるかRAMか
ら実行されるかと、BIOS RAMが使用する予定の
RAMを再利用するかどうかを判定するためにメモり制
御装置48が使用するデータ(1ビットにすることがで
きる)をNVRAMが収容することになる点である。さ
らに、これらのデータは、SET構成などの特殊構成プ
ログラムが実行されるときに必ずNVRAMに格納され
る。SET構成プログラムの目的は、システムの構成の
特徴を示す値をNVRAMに格納することである。
使用し、NVRAM96はシステム構成データを格納す
るために使用する。すなわち、NVRAM96は、シス
テムの現在の構成を記述する値を収容することになる。
たとえば、NVRAM96は、固定ディスクまたはディ
スケットの容量、ディスプレイのタイプ、メモリの容
量、時間、日付などを記述する情報を収容する。特に重
要な点は、BIOSがROMから実行されるかRAMか
ら実行されるかと、BIOS RAMが使用する予定の
RAMを再利用するかどうかを判定するためにメモり制
御装置48が使用するデータ(1ビットにすることがで
きる)をNVRAMが収容することになる点である。さ
らに、これらのデータは、SET構成などの特殊構成プ
ログラムが実行されるときに必ずNVRAMに格納され
る。SET構成プログラムの目的は、システムの構成の
特徴を示す値をNVRAMに格納することである。
【0031】上記のほぼすべての装置は揮発性レジスタ
を含んでいる。不必要に図面が雑然とするのを防止する
ため、特定の装置のレジスタ群はその装置を参照して示
すことにする。たとえば、CPUレジスタ群はCPU4
0レジスタと呼び、ビデオ制御装置レジスタ群はビデオ
制御装置56レジスタと呼ぶことにする。
を含んでいる。不必要に図面が雑然とするのを防止する
ため、特定の装置のレジスタ群はその装置を参照して示
すことにする。たとえば、CPUレジスタ群はCPU4
0レジスタと呼び、ビデオ制御装置レジスタ群はビデオ
制御装置56レジスタと呼ぶことにする。
【0032】前述のように、コンピュータは、マイクロ
コンピュータの上記の各種構成要素を収容するためにシ
ャシ19と協調して密閉されシールドされた容積を形成
するカバー(全体を15で示す)を備えている。カバー
15は、成形可能合成材料で作られた単体成形構成要素
である外部装飾カバー部材16と、装飾カバー部材の構
成に適合するように形成された金属薄膜ライナ18とで
形成されることが好ましい。しかし、このカバーは他の
既知の方法で作成することができ、本発明の有用性は上
記のタイプのエンクロージャに限定されない。
コンピュータの上記の各種構成要素を収容するためにシ
ャシ19と協調して密閉されシールドされた容積を形成
するカバー(全体を15で示す)を備えている。カバー
15は、成形可能合成材料で作られた単体成形構成要素
である外部装飾カバー部材16と、装飾カバー部材の構
成に適合するように形成された金属薄膜ライナ18とで
形成されることが好ましい。しかし、このカバーは他の
既知の方法で作成することができ、本発明の有用性は上
記のタイプのエンクロージャに限定されない。
【0033】動作状態
次に図5を参照すると、同図には、本発明のコンピュー
タ・システムの状態図が示されている。本発明のコンピ
ュータ・システム10には、通常動作状態150と、待
機状態152と、サスペンド状態154と、オフ状態1
56という4つの状態がある。図5に示す状態間の移行
は、限定ではなく、好ましい実施例を記述するためのも
のである。その結果、代わりに追加の事象を使用して、
状態移行を行わせることもできる。
タ・システムの状態図が示されている。本発明のコンピ
ュータ・システム10には、通常動作状態150と、待
機状態152と、サスペンド状態154と、オフ状態1
56という4つの状態がある。図5に示す状態間の移行
は、限定ではなく、好ましい実施例を記述するためのも
のである。その結果、代わりに追加の事象を使用して、
状態移行を行わせることもできる。
【0034】本発明のコンピュータ・システム10の通
常動作状態150は、実質的には典型的なデスクトップ
・コンピュータの通常動作状態と同一である。ユーザ
は、アプリケーションを使用し、基本的にはそのコンピ
ュータと他のものとして扱うことができる。ユーザにと
って透過である違いの1つは、オペレーティング・シス
テム内に背景で実行されるパワー・マネージメント・ド
ライバ(「APM OSドライバ」)と様々なAPM
BIOSルーチンが存在することである。APMBIO
Sルーチンについては、以下の本文で説明するが、サス
ペンド・ルーチン、レジューム・ルーチン、ブートアッ
プ・ルーチン、スーパバイザ・ルーチン、CPU状態保
管ルーチン、CPU状態復元ルーチンを含んでいる。い
ずれの図にも示されていないAPM BIOSルーチン
として、APM BIOS経路指定ルーチンがある。A
PM BIOS経路指定ルーチンは、本質的にはAPM
OSドライバからコマンドを受け入れ、適切なAPM
BIOSルーチンを呼び出すものである。たとえば、A
PM OSドライバがサスペンド・コマンドを出すと、
APM BIOS経路指定ルーチンがサスペンド・ルー
チンを呼び出す。もう1つの例としては、APM OS
ドライバが事象獲得コマンドを出すと、APM BIO
S経路指定ルーチンがスーパバイザ・ルーチンを呼び出
す。これらのルーチンは、BIOS内に位置し、BIO
Sがシャドウ化されたときにシャドウ化される。OS内
のパワー・マネージメント・ドライバと、APM BI
OSルーチンはコンピュータの4つの状態間に移行を制
御する。前後関係によっては他のことを意味する場合も
あるが、一般に「APM」という単語を単独で使用する
場合、APM OSドライバを意味する。
常動作状態150は、実質的には典型的なデスクトップ
・コンピュータの通常動作状態と同一である。ユーザ
は、アプリケーションを使用し、基本的にはそのコンピ
ュータと他のものとして扱うことができる。ユーザにと
って透過である違いの1つは、オペレーティング・シス
テム内に背景で実行されるパワー・マネージメント・ド
ライバ(「APM OSドライバ」)と様々なAPM
BIOSルーチンが存在することである。APMBIO
Sルーチンについては、以下の本文で説明するが、サス
ペンド・ルーチン、レジューム・ルーチン、ブートアッ
プ・ルーチン、スーパバイザ・ルーチン、CPU状態保
管ルーチン、CPU状態復元ルーチンを含んでいる。い
ずれの図にも示されていないAPM BIOSルーチン
として、APM BIOS経路指定ルーチンがある。A
PM BIOS経路指定ルーチンは、本質的にはAPM
OSドライバからコマンドを受け入れ、適切なAPM
BIOSルーチンを呼び出すものである。たとえば、A
PM OSドライバがサスペンド・コマンドを出すと、
APM BIOS経路指定ルーチンがサスペンド・ルー
チンを呼び出す。もう1つの例としては、APM OS
ドライバが事象獲得コマンドを出すと、APM BIO
S経路指定ルーチンがスーパバイザ・ルーチンを呼び出
す。これらのルーチンは、BIOS内に位置し、BIO
Sがシャドウ化されたときにシャドウ化される。OS内
のパワー・マネージメント・ドライバと、APM BI
OSルーチンはコンピュータの4つの状態間に移行を制
御する。前後関係によっては他のことを意味する場合も
あるが、一般に「APM」という単語を単独で使用する
場合、APM OSドライバを意味する。
【0035】第2の状態である待機状態152は、通常
動作状態150より使用する電力量が少ないが、本来実
行されると思われるのと同様にアプリケーションを実行
中の状態に維持する。一般に、待機状態152では、装
置をそれぞれの低電力モードにするコードによって電力
が節約される。好ましい実施例の待機状態152では、
以下に詳述するように、固定ディスク記憶装置31内の
固定ディスク(図示せず)の回転を止め、ビデオ信号の
生成を止めることにより、電力が節約される。ただし、
これは限定を意図するものではなく、CPUクロックの
低速化または停止などの他の方法を使用して電力消費量
を削減することもできる。
動作状態150より使用する電力量が少ないが、本来実
行されると思われるのと同様にアプリケーションを実行
中の状態に維持する。一般に、待機状態152では、装
置をそれぞれの低電力モードにするコードによって電力
が節約される。好ましい実施例の待機状態152では、
以下に詳述するように、固定ディスク記憶装置31内の
固定ディスク(図示せず)の回転を止め、ビデオ信号の
生成を止めることにより、電力が節約される。ただし、
これは限定を意図するものではなく、CPUクロックの
低速化または停止などの他の方法を使用して電力消費量
を削減することもできる。
【0036】好ましい実施例では、電力を節約する方法
が2通りある。第1に、通常動作状態150では、固定
ディスク記憶装置31内の固定ディスクが、通常360
0回転/分(RPM)の速度で常時回転している。待機
状態152では、固定ディスク記憶装置31を低電力モ
ードにする(固定ディスク記憶装置31内の固定ディス
クが回転を止める)ためのコマンドがIDEディスク制
御装置86に与えられ、それにより、固定ディスク記憶
装置31内のモータ(図示せず)が通常、固定ディスク
の回転中に消費する電力が節約される。
が2通りある。第1に、通常動作状態150では、固定
ディスク記憶装置31内の固定ディスクが、通常360
0回転/分(RPM)の速度で常時回転している。待機
状態152では、固定ディスク記憶装置31を低電力モ
ードにする(固定ディスク記憶装置31内の固定ディス
クが回転を止める)ためのコマンドがIDEディスク制
御装置86に与えられ、それにより、固定ディスク記憶
装置31内のモータ(図示せず)が通常、固定ディスク
の回転中に消費する電力が節約される。
【0037】第2に、通常動作状態150では、コンピ
ュータ・システムのビデオ制御装置56は、ビデオ・デ
ィスプレイ端末57上に表示されるイメージに対応する
ビデオ信号(当技術分野で周知のようにHSYNC、V
SYNC、R、G、Bなど)を常時生成する。待機状態
152では、ビデオ制御装置56はビデオ信号の生成を
止め、それにより、ビデオ制御装置56によって通常消
費される電力が節約される。HSYNC、VSYNC、
R、G、Bはいずれも強制的に約0.00VDCにな
る。VESA(ビデオ・エレクトロニクス規格協会)準
拠モニタを使用すると、さらに電力節約することができ
る。というのは、VESA準拠モニタはHSYNCとV
SYNCが約0.00VDCになるとモニタ自体をオフ
にするからである。
ュータ・システムのビデオ制御装置56は、ビデオ・デ
ィスプレイ端末57上に表示されるイメージに対応する
ビデオ信号(当技術分野で周知のようにHSYNC、V
SYNC、R、G、Bなど)を常時生成する。待機状態
152では、ビデオ制御装置56はビデオ信号の生成を
止め、それにより、ビデオ制御装置56によって通常消
費される電力が節約される。HSYNC、VSYNC、
R、G、Bはいずれも強制的に約0.00VDCにな
る。VESA(ビデオ・エレクトロニクス規格協会)準
拠モニタを使用すると、さらに電力節約することができ
る。というのは、VESA準拠モニタはHSYNCとV
SYNCが約0.00VDCになるとモニタ自体をオフ
にするからである。
【0038】ただし、システムによっては、ビデオ・デ
ィスプレイ端末の正面の蛍光体の焼付きを防止するため
に画面57を暗くする「スクリーンセーバ」を備えてい
るものがあることに留意されたい。このようなシステム
の多くでは、ビデオ制御装置56が依然としてビデオ信
号を生成し続けるが、暗い画面またはダイナミック・デ
ィスプレイに対応するビデオ信号を生成するだけであ
る。したがって、スクリーンセーバを実行しているコン
ピュータ・システムは、依然としてビデオ信号の生成に
必要な電力を消費する。
ィスプレイ端末の正面の蛍光体の焼付きを防止するため
に画面57を暗くする「スクリーンセーバ」を備えてい
るものがあることに留意されたい。このようなシステム
の多くでは、ビデオ制御装置56が依然としてビデオ信
号を生成し続けるが、暗い画面またはダイナミック・デ
ィスプレイに対応するビデオ信号を生成するだけであ
る。したがって、スクリーンセーバを実行しているコン
ピュータ・システムは、依然としてビデオ信号の生成に
必要な電力を消費する。
【0039】第3の状態はサスペンド状態154であ
る。サスペンド状態154では、コンピュータ・システ
ムが消費する電力は極めて少量である。好ましい実施例
では、サスペンドしたコンピュータが消費する電力は、
コンセントから得られる電力のうちの5ワット未満であ
る。図6に付随する本文で詳述するように、消費する電
力は、電源17から出力されるAUX5またはコンピュ
ータ・システム内部のバッテリ171のいずれかからス
イッチ21の監視に使用されるわずかな電力だけであ
る。
る。サスペンド状態154では、コンピュータ・システ
ムが消費する電力は極めて少量である。好ましい実施例
では、サスペンドしたコンピュータが消費する電力は、
コンセントから得られる電力のうちの5ワット未満であ
る。図6に付随する本文で詳述するように、消費する電
力は、電源17から出力されるAUX5またはコンピュ
ータ・システム内部のバッテリ171のいずれかからス
イッチ21の監視に使用されるわずかな電力だけであ
る。
【0040】このような少量の電力使用は、電源を「オ
フ」にする前にコンピュータ・システムの状態を固定デ
ィスク記憶装置(ハード・ドライブ)31に保管するこ
とによって実施される。サスペンド状態154に入るた
め、CPU40は、アプリケーションへの割込みを行
い、CPUのプログラム実行制御権をパワー・マネージ
メント・ドライバに移転する。パワー・マネージメント
・ドライバは、コンピュータ・システム10の状態を確
認し、コンピュータ・システム全体の状態を固定ディス
ク記憶装置31に書き込む。CPU40レジスタ、CP
Uキャッシュ41、システムRAM53、システム・キ
ャッシュ60、ビデオ制御装置56レジスタ、ビデオ・
メモリ56、残りの揮発性レジスタの状態は、すべて固
定ディスク・ドライブ31に書き込まれる。システム1
0全体の状態は、使用可能度が大幅に損なわれずに復元
できるように保管される。すなわち、ユーザは、本来行
われるようにシステムがオペレーティング・システムを
ロードし、GUIをロードするまで待つ必要がない。
フ」にする前にコンピュータ・システムの状態を固定デ
ィスク記憶装置(ハード・ドライブ)31に保管するこ
とによって実施される。サスペンド状態154に入るた
め、CPU40は、アプリケーションへの割込みを行
い、CPUのプログラム実行制御権をパワー・マネージ
メント・ドライバに移転する。パワー・マネージメント
・ドライバは、コンピュータ・システム10の状態を確
認し、コンピュータ・システム全体の状態を固定ディス
ク記憶装置31に書き込む。CPU40レジスタ、CP
Uキャッシュ41、システムRAM53、システム・キ
ャッシュ60、ビデオ制御装置56レジスタ、ビデオ・
メモリ56、残りの揮発性レジスタの状態は、すべて固
定ディスク・ドライブ31に書き込まれる。システム1
0全体の状態は、使用可能度が大幅に損なわれずに復元
できるように保管される。すなわち、ユーザは、本来行
われるようにシステムがオペレーティング・システムを
ロードし、GUIをロードするまで待つ必要がない。
【0041】次にコンピュータは、不揮発性CMOSメ
モリ96にデータを書き込み、システムがサスペンドさ
れたことを示す。最後に、CPU40は、電源17によ
る調整電力の供給を停止させる。次に、コンピュータ全
体の状態を固定ディスク記憶装置31に安全に保管し
て、コンピュータ・システム10の電源が遮断される。
モリ96にデータを書き込み、システムがサスペンドさ
れたことを示す。最後に、CPU40は、電源17によ
る調整電力の供給を停止させる。次に、コンピュータ全
体の状態を固定ディスク記憶装置31に安全に保管し
て、コンピュータ・システム10の電源が遮断される。
【0042】本明細書では、「状態」という用語の使い
方が2通りあり、それらは似ているが混乱を引き起こす
可能性がある。装置は特定の状態に「なる」可能性があ
る。通常150、待機152、サスペンド154、オフ
156という4通りのシステム状態は、本発明のコンピ
ュータ・システム10の一般的な状態を意味する。これ
らの「状態」は、コンピュータ・システム10を一般的
に記述するものである。たとえば、通常動作状態150
では、CPU40は依然としてコードを実行し、システ
ム10内の複数のレジスタを変更し続ける。同様に、待
機状態152でも同様の活動が行われる。したがって、
システム10が通常動作状態150および待機状態15
2になっている間、コンピュータ・システム10のメモ
リおよびレジスタ構成はダイナミック構成である。
方が2通りあり、それらは似ているが混乱を引き起こす
可能性がある。装置は特定の状態に「なる」可能性があ
る。通常150、待機152、サスペンド154、オフ
156という4通りのシステム状態は、本発明のコンピ
ュータ・システム10の一般的な状態を意味する。これ
らの「状態」は、コンピュータ・システム10を一般的
に記述するものである。たとえば、通常動作状態150
では、CPU40は依然としてコードを実行し、システ
ム10内の複数のレジスタを変更し続ける。同様に、待
機状態152でも同様の活動が行われる。したがって、
システム10が通常動作状態150および待機状態15
2になっている間、コンピュータ・システム10のメモ
リおよびレジスタ構成はダイナミック構成である。
【0043】上記以外の装置も所与の状態に「なる」可
能性がある。図9に付随する本文で説明するように、プ
ログラム可能論理アレイU2はいくつかの状態になる可
能性がある。
能性がある。図9に付随する本文で説明するように、プ
ログラム可能論理アレイU2はいくつかの状態になる可
能性がある。
【0044】上記の状態とある装置の「状態」、たとえ
ば、「コンピュータ・システム10の状態」や「CPU
40の状態」と対照されたい。ある装置の「状態」と
は、特定のコンピュータ・サイクルでのその装置の状態
を意味する。すべてのメモリ位置とレジスタは特定の2
進値を有することになる。したがって、ある装置の「状
態」とは、その装置の内容の静的2進スナップショット
になる。
ば、「コンピュータ・システム10の状態」や「CPU
40の状態」と対照されたい。ある装置の「状態」と
は、特定のコンピュータ・サイクルでのその装置の状態
を意味する。すべてのメモリ位置とレジスタは特定の2
進値を有することになる。したがって、ある装置の「状
態」とは、その装置の内容の静的2進スナップショット
になる。
【0045】コンピュータ・システム10の「状態」と
は、動作上同等のものを意味し、必ずしも正確なコピー
を意味するわけではない。たとえば、状態Aのコンピュ
ータ・システムは、CPUキャッシュ41またはシステ
ム・キャッシュ60いずれかの所与のメモリを有する可
能性がある。いずれかのキャッシュの内容をシステムR
AM53に「フラッシュ」して、コンピュータ・システ
ムを状態Bにすることが可能である。単純に言えば、状
態Aのコンピュータ・システムの状態は状態Bのコンピ
ュータ・システムの状態とは異なる。というのは、キャ
ッシュとシステムRAMの内容が異なるからである。し
かし、ソフトウェアの動作の点から見ると、状態Aと状
態Bは同じである。これは、システム速度のわずかな低
下(プログラムがキャッシュから実行されるという恩恵
を受けないことによる)を除けば、実行中のプログラム
に影響しないからである。すなわち、キャッシュがフラ
ッシュされたコンピュータは、そのキャッシュ域に有用
なコードが再ロードされるまでパフォーマンスがわずか
に低下するが、状態Aのコンピュータと状態Bのコンピ
ュータはソフトウェアの動作上同等である。
は、動作上同等のものを意味し、必ずしも正確なコピー
を意味するわけではない。たとえば、状態Aのコンピュ
ータ・システムは、CPUキャッシュ41またはシステ
ム・キャッシュ60いずれかの所与のメモリを有する可
能性がある。いずれかのキャッシュの内容をシステムR
AM53に「フラッシュ」して、コンピュータ・システ
ムを状態Bにすることが可能である。単純に言えば、状
態Aのコンピュータ・システムの状態は状態Bのコンピ
ュータ・システムの状態とは異なる。というのは、キャ
ッシュとシステムRAMの内容が異なるからである。し
かし、ソフトウェアの動作の点から見ると、状態Aと状
態Bは同じである。これは、システム速度のわずかな低
下(プログラムがキャッシュから実行されるという恩恵
を受けないことによる)を除けば、実行中のプログラム
に影響しないからである。すなわち、キャッシュがフラ
ッシュされたコンピュータは、そのキャッシュ域に有用
なコードが再ロードされるまでパフォーマンスがわずか
に低下するが、状態Aのコンピュータと状態Bのコンピ
ュータはソフトウェアの動作上同等である。
【0046】「パワー」という用語の使い方も2通りあ
り、それらは似ているが混乱を引き起こす可能性があ
る。多くの場合、「パワー」は電力を意味する。しか
し、「パワー」が計算能力を意味する場合もある。前後
関係によって意図する使い方を明らかにする必要があ
る。
り、それらは似ているが混乱を引き起こす可能性があ
る。多くの場合、「パワー」は電力を意味する。しか
し、「パワー」が計算能力を意味する場合もある。前後
関係によって意図する使い方を明らかにする必要があ
る。
【0047】一般に「回路」は、物理的な電子装置また
は電気的に相互接続された複数の装置を意味する。しか
し、「回路」という用語は、物理的な電子装置と同等の
CPUコードを含むこともある。たとえば、一方では、
74LS00によるかまたはプログラム可能装置内に同
等に2入力NANDゲートを実現することができる。こ
の2つの装置は物理的な電子装置である。他方では、C
PU40に2つのCPU読取り可能入力ポートから2つ
の入力を読み取らせ、CPUコマンドを使用してNAN
D結果を生成させ、CPU書込み可能出力ポートを介し
て結果を出力させることにより、NANDゲートを実現
することもできる。このようなCPUがインタフェース
可能なポートは、当技術分野で周知のデコード済みラッ
チまたはそれと同等のプログラム可能装置またはPIA
などの複合体などのように、単純なものにすることがで
きる。「回路」は、3通りのNANDゲート実現例をす
べて含むものである。場合によっては、「回路」が単に
電気経路を意味するだけの場合もある。各種タイプの電
気経路としては、ワイヤ、トレースまたは印刷回路板上
のバイアなど、あるいは単一の電気接続経路を形成する
各種タイプの電気経路の組合せなどがある。
は電気的に相互接続された複数の装置を意味する。しか
し、「回路」という用語は、物理的な電子装置と同等の
CPUコードを含むこともある。たとえば、一方では、
74LS00によるかまたはプログラム可能装置内に同
等に2入力NANDゲートを実現することができる。こ
の2つの装置は物理的な電子装置である。他方では、C
PU40に2つのCPU読取り可能入力ポートから2つ
の入力を読み取らせ、CPUコマンドを使用してNAN
D結果を生成させ、CPU書込み可能出力ポートを介し
て結果を出力させることにより、NANDゲートを実現
することもできる。このようなCPUがインタフェース
可能なポートは、当技術分野で周知のデコード済みラッ
チまたはそれと同等のプログラム可能装置またはPIA
などの複合体などのように、単純なものにすることがで
きる。「回路」は、3通りのNANDゲート実現例をす
べて含むものである。場合によっては、「回路」が単に
電気経路を意味するだけの場合もある。各種タイプの電
気経路としては、ワイヤ、トレースまたは印刷回路板上
のバイアなど、あるいは単一の電気接続経路を形成する
各種タイプの電気経路の組合せなどがある。
【0048】「信号」は、単一の電気波形を意味する場
合もあれば、複数の波形を意味する場合もある。たとえ
ば、ビデオ制御装置はビデオ信号を生成する。ビデオ信
号は実際には、当技術分野で周知のように、HSYN
C、VSYNC、R、G、Bなど、複数の電気導体上の
複数の信号である。
合もあれば、複数の波形を意味する場合もある。たとえ
ば、ビデオ制御装置はビデオ信号を生成する。ビデオ信
号は実際には、当技術分野で周知のように、HSYN
C、VSYNC、R、G、Bなど、複数の電気導体上の
複数の信号である。
【0049】次に図5に戻ると、第4かつ最終の状態は
オフ状態156である。オフ状態156は実質的には、
通常の意味でオフにされた典型的なコンピュータ・シス
テムと同一である。この状態では、電源17の1次/調
整ユニット172はコンピュータ・システム10への調
整電力(図6に付随する本文に詳述するように、AUX
5によるわずかな量の調整電力は除く)の供給を止める
が、コンピュータ・システム10の状態は固定ディスク
31に保管されていない。サスペンド状態154とオフ
状態156は、電源17が調整電力を生成しなくなると
いう点が似ている。ただし、両者は、オフ状態156の
場合、サスペンド状態154のようにコンピュータ・シ
ステム10の状態がハード・ドライブ31に保管されな
いという点が異なっている。さらに、オフ状態156を
出る場合、コンピュータ10は、オンになったときと同
様に「ブート」する。すなわち、実行中のコードはユー
ザが始動するか、AUTOEXEC.BATファイルなどにより自動
的に始動する必要がある。しかし、サスペンド状態15
4を出る場合は、コンピュータ10は、中断されたとき
に位置していたところから実行を再開する。
オフ状態156である。オフ状態156は実質的には、
通常の意味でオフにされた典型的なコンピュータ・シス
テムと同一である。この状態では、電源17の1次/調
整ユニット172はコンピュータ・システム10への調
整電力(図6に付随する本文に詳述するように、AUX
5によるわずかな量の調整電力は除く)の供給を止める
が、コンピュータ・システム10の状態は固定ディスク
31に保管されていない。サスペンド状態154とオフ
状態156は、電源17が調整電力を生成しなくなると
いう点が似ている。ただし、両者は、オフ状態156の
場合、サスペンド状態154のようにコンピュータ・シ
ステム10の状態がハード・ドライブ31に保管されな
いという点が異なっている。さらに、オフ状態156を
出る場合、コンピュータ10は、オンになったときと同
様に「ブート」する。すなわち、実行中のコードはユー
ザが始動するか、AUTOEXEC.BATファイルなどにより自動
的に始動する必要がある。しかし、サスペンド状態15
4を出る場合は、コンピュータ10は、中断されたとき
に位置していたところから実行を再開する。
【0050】図5は、4通りの状態間の移行の原因とな
る事象も示している。これらの事象については図7〜1
0に付随する本文でさらに説明するが、大まかに説明す
ると役に立つと思われる。電源ボタン21と、2つのタ
イマ(非活動待機タイマと非活動サスペンド・タイマで
あるが、図11とそれに付随する本文を参照)と、サス
ペンド実行フラグ(図7〜9とそれに付随する本文を参
照)はいずれも、コンピュータがどの状態に入るかを左
右する。一般に、2つのタイマは、プログラムとしてC
PU上で実行されるCPUコード・タイマまたはハード
ウェア・タイマのいずれかにすることができる。好まし
い実施例では、どちらもCPUコード・タイマであり、
BIOSデータ・セグメントから実行される。しかし、
2つのタイマはハードウェア・タイマにすることも可能
であり、システムのオーバヘッドを削減しそうだという
点でより優れた解決策になる可能性がある。このタイマ
については、図11に付随する本文で詳述する。どちら
のタイマもコンピュータ10が通常動作状態150また
は待機状態152のいずれかになると活動状態になる。
これらのタイマは、以下に概要を示すように一方のタイ
マの時間切れによって移行が発生するように、他のルー
チンと連絡している。ユーザの特定のニーズに応じて所
与の期間後に時間切れになるように、一方または両方の
タイマを構成することができる。好ましい実施例では、
非活動待機タイマと非活動サスペンド・タイマを15〜
90分後に時間切れになるように設定することができ
る。一方または両方のタイマを停止する、すなわち、時
間切れにならないように構成することができる。タイマ
の「停止」は、タイマの増分カウント・アクションを実
際に止めるか、または単にその時間切れを無視するだけ
かのいずれかの形態を取ることができる。好ましい実施
例では、タイマ時間切れ値にゼロ値を設定することによ
り、タイマの時間切れがテストされなくなる。たとえ
ば、ネットワーク化コンピュータのユーザは、コンピュ
ータがサスペンド状態154に入るとそのコンピュータ
に関してLANが故障する可能性があるので、そのよう
な状態に入らないようにすることができる。
る事象も示している。これらの事象については図7〜1
0に付随する本文でさらに説明するが、大まかに説明す
ると役に立つと思われる。電源ボタン21と、2つのタ
イマ(非活動待機タイマと非活動サスペンド・タイマで
あるが、図11とそれに付随する本文を参照)と、サス
ペンド実行フラグ(図7〜9とそれに付随する本文を参
照)はいずれも、コンピュータがどの状態に入るかを左
右する。一般に、2つのタイマは、プログラムとしてC
PU上で実行されるCPUコード・タイマまたはハード
ウェア・タイマのいずれかにすることができる。好まし
い実施例では、どちらもCPUコード・タイマであり、
BIOSデータ・セグメントから実行される。しかし、
2つのタイマはハードウェア・タイマにすることも可能
であり、システムのオーバヘッドを削減しそうだという
点でより優れた解決策になる可能性がある。このタイマ
については、図11に付随する本文で詳述する。どちら
のタイマもコンピュータ10が通常動作状態150また
は待機状態152のいずれかになると活動状態になる。
これらのタイマは、以下に概要を示すように一方のタイ
マの時間切れによって移行が発生するように、他のルー
チンと連絡している。ユーザの特定のニーズに応じて所
与の期間後に時間切れになるように、一方または両方の
タイマを構成することができる。好ましい実施例では、
非活動待機タイマと非活動サスペンド・タイマを15〜
90分後に時間切れになるように設定することができ
る。一方または両方のタイマを停止する、すなわち、時
間切れにならないように構成することができる。タイマ
の「停止」は、タイマの増分カウント・アクションを実
際に止めるか、または単にその時間切れを無視するだけ
かのいずれかの形態を取ることができる。好ましい実施
例では、タイマ時間切れ値にゼロ値を設定することによ
り、タイマの時間切れがテストされなくなる。たとえ
ば、ネットワーク化コンピュータのユーザは、コンピュ
ータがサスペンド状態154に入るとそのコンピュータ
に関してLANが故障する可能性があるので、そのよう
な状態に入らないようにすることができる。
【0051】理論上、タイマは、カウント・アップまた
はカウント・ダウンすることができ、タイマが始動(ま
たは再始動)されたとき、所定の固定状態にリセット
し、別の所定の固定状態までカウントすると予想でき、
あるいは現在値を使用してエンドポイント時間切れトリ
ガとしての差または計算された和を利用できる。好まし
い実施例では、タイマがリセットされると、リアルタイ
ム・クロック98からの分変数の現在値が格納される。
タイマが時間切れになっているかどうかは、保管されて
いる分値から現行分値を差し引き、その差をユーザが選
択した値と比較することによって検査される。
はカウント・ダウンすることができ、タイマが始動(ま
たは再始動)されたとき、所定の固定状態にリセット
し、別の所定の固定状態までカウントすると予想でき、
あるいは現在値を使用してエンドポイント時間切れトリ
ガとしての差または計算された和を利用できる。好まし
い実施例では、タイマがリセットされると、リアルタイ
ム・クロック98からの分変数の現在値が格納される。
タイマが時間切れになっているかどうかは、保管されて
いる分値から現行分値を差し引き、その差をユーザが選
択した値と比較することによって検査される。
【0052】どちらのタイマも所与のシステム活動の影
響を受ける。たとえば、好ましい実施例では、図11に
付随する本文に詳述するように、キーボード12のキー
を押す、マウス13を動かす、マウス13のボタンを押
すなどのユーザ活動や、ハード・ドライブ31の活動に
より、それぞれのタイマが再始動する。したがって、ユ
ーザがキーボード12のキーを押すかまたはマウス13
を使用している間、いずれのタイマも時間切れにならな
い。さらに、他のシステム事象を使用してタイマをリセ
ットすることも可能である。すなわち、いずれかのハー
ドウェア割込みを代わりに監視して活動の有無を判断す
ることができる。このため、印刷によってシステムがサ
スペンド状態154に入らないようにすることが望まし
い場合もある。
響を受ける。たとえば、好ましい実施例では、図11に
付随する本文に詳述するように、キーボード12のキー
を押す、マウス13を動かす、マウス13のボタンを押
すなどのユーザ活動や、ハード・ドライブ31の活動に
より、それぞれのタイマが再始動する。したがって、ユ
ーザがキーボード12のキーを押すかまたはマウス13
を使用している間、いずれのタイマも時間切れにならな
い。さらに、他のシステム事象を使用してタイマをリセ
ットすることも可能である。すなわち、いずれかのハー
ドウェア割込みを代わりに監視して活動の有無を判断す
ることができる。このため、印刷によってシステムがサ
スペンド状態154に入らないようにすることが望まし
い場合もある。
【0053】サスペンド実行フラグは、プログラム可能
論理アレイU2内のCPUが操作可能読取り可能なラッ
チである。これについては、図9に付随する本文でさら
に詳述する。要するに、プログラム可能論理アレイU2
をあるモードにすると、スイッチ21が押され、システ
ム10がオフ状態156になり、プログラム可能論理ア
レイU2を別のモードにすると、スイッチ21が押さ
れ、システム10がサスペンド状態154になる。コン
ピュータ・システム10が通常動作状態150になって
いて、プログラム可能論理アレイU2に書き込まれたサ
スペンド実行フラグが002である間に電源ボタン21
が押された場合、コンピュータ・システム10は158
に示すようにオフ状態156に入る。コンピュータ・シ
ステム10がオフ状態156になっていて、電源ボタン
21が押された場合、コンピュータ・システムは通常動
作状態に入る。
論理アレイU2内のCPUが操作可能読取り可能なラッ
チである。これについては、図9に付随する本文でさら
に詳述する。要するに、プログラム可能論理アレイU2
をあるモードにすると、スイッチ21が押され、システ
ム10がオフ状態156になり、プログラム可能論理ア
レイU2を別のモードにすると、スイッチ21が押さ
れ、システム10がサスペンド状態154になる。コン
ピュータ・システム10が通常動作状態150になって
いて、プログラム可能論理アレイU2に書き込まれたサ
スペンド実行フラグが002である間に電源ボタン21
が押された場合、コンピュータ・システム10は158
に示すようにオフ状態156に入る。コンピュータ・シ
ステム10がオフ状態156になっていて、電源ボタン
21が押された場合、コンピュータ・システムは通常動
作状態に入る。
【0054】コンピュータ・システム10が通常動作状
態150になっている場合、1つの事象によってコンピ
ュータを待機状態152にすることができる。すなわ
ち、非活動待機タイマが時間切れになると、コンピュー
タ・システム10は、162に示すように待機状態15
2に変化する。待機状態152になっている間に上記の
類のシステム活動が行われると、コンピュータ10は、
164に示すように、待機状態152を出て、再度、通
常動作状態150に入る。
態150になっている場合、1つの事象によってコンピ
ュータを待機状態152にすることができる。すなわ
ち、非活動待機タイマが時間切れになると、コンピュー
タ・システム10は、162に示すように待機状態15
2に変化する。待機状態152になっている間に上記の
類のシステム活動が行われると、コンピュータ10は、
164に示すように、待機状態152を出て、再度、通
常動作状態150に入る。
【0055】コンピュータ10が通常動作状態150に
なっている場合、2つの事象によってサスペンド状態1
54にすることができる。第1に、非活動サスペンド・
タイマが時間切れになると、コンピュータ・システム1
0は、166に示すようにサスペンド状態154に変化
する。第2に、166に示すように、プログラム可能論
理アレイU2に書き込まれたサスペンド実行フラグが0
12である間に電源ボタン21を押すことにより、ユー
ザはコンピュータ10をただちにサスペンド状態154
にすることができる。サスペンド状態154になってい
る間に168に示すように電源ボタン21を押すことに
より、ユーザは通常動作状態150に変化する。
なっている場合、2つの事象によってサスペンド状態1
54にすることができる。第1に、非活動サスペンド・
タイマが時間切れになると、コンピュータ・システム1
0は、166に示すようにサスペンド状態154に変化
する。第2に、166に示すように、プログラム可能論
理アレイU2に書き込まれたサスペンド実行フラグが0
12である間に電源ボタン21を押すことにより、ユー
ザはコンピュータ10をただちにサスペンド状態154
にすることができる。サスペンド状態154になってい
る間に168に示すように電源ボタン21を押すことに
より、ユーザは通常動作状態150に変化する。
【0056】さらに、いくつかの外部事象を代わりに使
用して、168のようにシステム10をサスペンド状態
154から通常動作状態150に変化させることができ
る。たとえば、図7〜8の回路に電話呼出し音検出回路
を追加し、接続の電話回線の呼出し音が鳴ったときにシ
ステム10がサスペンド状態154を出て通常動作状態
150に入るようにこの回路を構成することもできる。
このような修正は、テレファックス・データまたはディ
ジタル・データを受信するシステムに有用であると思わ
れる。このシステムは、着信情報を受信するときだけ電
力を消費するはずである。同様に、リアルタイム・クロ
ックと図7〜8の間のインタフェースにより、警報タイ
プの事象を発生させて、システム10がサスペンド状態
154を出て通常動作状態150に入るようにすること
もできる。このようなシステムは、電話の使用率が低い
ことを利用するために所与の時刻にテレファックスまた
はディジタル・データを送信する際に有用であると思わ
れる。
用して、168のようにシステム10をサスペンド状態
154から通常動作状態150に変化させることができ
る。たとえば、図7〜8の回路に電話呼出し音検出回路
を追加し、接続の電話回線の呼出し音が鳴ったときにシ
ステム10がサスペンド状態154を出て通常動作状態
150に入るようにこの回路を構成することもできる。
このような修正は、テレファックス・データまたはディ
ジタル・データを受信するシステムに有用であると思わ
れる。このシステムは、着信情報を受信するときだけ電
力を消費するはずである。同様に、リアルタイム・クロ
ックと図7〜8の間のインタフェースにより、警報タイ
プの事象を発生させて、システム10がサスペンド状態
154を出て通常動作状態150に入るようにすること
もできる。このようなシステムは、電話の使用率が低い
ことを利用するために所与の時刻にテレファックスまた
はディジタル・データを送信する際に有用であると思わ
れる。
【0057】最後に、コンピュータ・システム10が待
機状態152になっていて、非活動サスペンド・タイマ
が時間切れになった場合、コンピュータ10は、170
に示すようにサスペンド状態154に変化する。コンピ
ュータ・システム10は、サスペンド状態154から待
機状態152に戻ることができないが、168の移行に
付随する本文で説明するように、通常動作状態150へ
の移行のみ可能である。
機状態152になっていて、非活動サスペンド・タイマ
が時間切れになった場合、コンピュータ10は、170
に示すようにサスペンド状態154に変化する。コンピ
ュータ・システム10は、サスペンド状態154から待
機状態152に戻ることができないが、168の移行に
付随する本文で説明するように、通常動作状態150へ
の移行のみ可能である。
【0058】コンピュータ・システム10が瞬時に状態
を変化できないことは明らかである。4通りの状態の1
つから移行するごとに、必要なシステム変更を行うため
に所与の期間が必要になる。それぞれの移行期間の詳細
については、図7〜33に付随する本文で説明する。
を変化できないことは明らかである。4通りの状態の1
つから移行するごとに、必要なシステム変更を行うため
に所与の期間が必要になる。それぞれの移行期間の詳細
については、図7〜33に付随する本文で説明する。
【0059】システム・ハードウェア
CPU40上で実行されるコードの詳細について論じる
前に、4通りの状態を達成するのに必要なハードウェア
について論じると有用であると思われる。図6には、電
源17のブロック図を示す。電源17には、制御ユニッ
ト174と1次/調整ユニット172という2つのユニ
ットが備わっている。電源17は、典型的なコンセント
からの115VACを受け入れる線入力と、電源17の
調整活動を制御する
前に、4通りの状態を達成するのに必要なハードウェア
について論じると有用であると思われる。図6には、電
源17のブロック図を示す。電源17には、制御ユニッ
ト174と1次/調整ユニット172という2つのユニ
ットが備わっている。電源17は、典型的なコンセント
からの115VACを受け入れる線入力と、電源17の
調整活動を制御する
【数1】
は以降ONバーと記載する。という複数の入力を備えて
いる。また、電源17は、AC線出力、±5VDC、±
12VDC、AUX5、GND、POWERGOODと
いう複数の出力を備えている。AC線出力は、ビデオ・
ディスプレイ端末57の電源入力(図示せず)に通常渡
される、未調整の115VACである。制御ユニット1
74は、ONバー入力を受け入れ、POWERGOOD
出力を生成する。1次/調整ユニット172は、115
VACを線入力から±5VDC、±12VDCに選択的
に調整する。1次/調整ユニット172が電力を調整す
るかどうかは、制御ユニット174によってインタフェ
ースが取られるONバーの値によって決まる。好ましい
実施例の制御ユニット174は、適切なオプトアイソレ
ータなど、ONバー信号を生成する回路の隔離を行う必
要がある。
いる。また、電源17は、AC線出力、±5VDC、±
12VDC、AUX5、GND、POWERGOODと
いう複数の出力を備えている。AC線出力は、ビデオ・
ディスプレイ端末57の電源入力(図示せず)に通常渡
される、未調整の115VACである。制御ユニット1
74は、ONバー入力を受け入れ、POWERGOOD
出力を生成する。1次/調整ユニット172は、115
VACを線入力から±5VDC、±12VDCに選択的
に調整する。1次/調整ユニット172が電力を調整す
るかどうかは、制御ユニット174によってインタフェ
ースが取られるONバーの値によって決まる。好ましい
実施例の制御ユニット174は、適切なオプトアイソレ
ータなど、ONバー信号を生成する回路の隔離を行う必
要がある。
【0060】線入力と、AC線出力、±5VDC、±1
2VDC、GND、POWERGOODの各出力は、当
技術分野では周知のものである。電源17が「オフ」の
場合、すなわち、線入力からの調整電圧を供給していな
い場合、POWERGOOD信号は論理0になる。電源
17が「オン」の場合、電源17は、115VACの線
入力から±5VDCおよび±12VDCの調整電圧を生
成する。この4通りの調整電圧とそれに関連するGND
は、当技術分野でよく知られているように「システム電
源」である。調整電圧が許容範囲内のレベルを達成する
と、POWERGOOD信号は論理1に変化する。
2VDC、GND、POWERGOODの各出力は、当
技術分野では周知のものである。電源17が「オフ」の
場合、すなわち、線入力からの調整電圧を供給していな
い場合、POWERGOOD信号は論理0になる。電源
17が「オン」の場合、電源17は、115VACの線
入力から±5VDCおよび±12VDCの調整電圧を生
成する。この4通りの調整電圧とそれに関連するGND
は、当技術分野でよく知られているように「システム電
源」である。調整電圧が許容範囲内のレベルを達成する
と、POWERGOOD信号は論理1に変化する。
【0061】AUX5出力は、プレーナに+5VDCの
補助電圧を供給する。電源17が公称115VACを供
給する典型的なコンセントに差し込まれると、電源が
「オン」であるか「オフ」であるかにかかわらず、1次
/調整ユニット172はAUX5で調整済みの+5VD
Cを供給する。したがって、電源17は、差し込まれて
いる間、AUX5で公称+5VDCを絶えず供給してい
ることになる。AUX5出力が+5出力と異なる点は、
電源17が「オン」になっている間に1次/調整ユニッ
ト172が+5出力を介して調整済みの+5VDCのみ
を生成することにある。AUX5出力が+5出力と異な
るもう1つの点は、+5出力では1次/調整ユニット1
72が+5VDCで数アンペアの電流を供給するのに対
し、AUX5出力では+5VDCで1アンペア未満の電
流を供給することにある。
補助電圧を供給する。電源17が公称115VACを供
給する典型的なコンセントに差し込まれると、電源が
「オン」であるか「オフ」であるかにかかわらず、1次
/調整ユニット172はAUX5で調整済みの+5VD
Cを供給する。したがって、電源17は、差し込まれて
いる間、AUX5で公称+5VDCを絶えず供給してい
ることになる。AUX5出力が+5出力と異なる点は、
電源17が「オン」になっている間に1次/調整ユニッ
ト172が+5出力を介して調整済みの+5VDCのみ
を生成することにある。AUX5出力が+5出力と異な
るもう1つの点は、+5出力では1次/調整ユニット1
72が+5VDCで数アンペアの電流を供給するのに対
し、AUX5出力では+5VDCで1アンペア未満の電
流を供給することにある。
【0062】典型的な従来の電源では、線入力と電源の
調整セクションとの間の接続および切断を行うために高
アンペア双投スイッチを使用している。本発明の電源1
7では、高アンペア双投スイッチを使用してない。むし
ろ、スイッチ21は、ONバー信号を生成する回路を制
御するものである。好ましい実施例のスイッチ21は、
瞬時単極単投プッシュボタン・スイッチであるが、当業
者であれば、単極双投スイッチなどの他のタイプのスイ
ッチを使用できるように図7〜8の回路を調整できるは
ずである。AC線入力は、必ずコンセントから1次/調
整ユニット172に接続されている。ONバーが論理1
(ほぼAUX5、公称では+5VDC)であると、1次
/調整ユニット172は115VACの線入力を±5ま
たは±12の出力により±5VDCまたは±12VDC
に調整しない。1次/調整ユニット172は、AUX5
出力で低アンペアの公称+5VDCを供給するだけであ
る。これに対して、ONバーが論理0(ほぼGND)で
あると、1次/調整ユニット172は、±5および±1
2の4つの出力により115VACの線入力を±5VD
Cおよび±12VDCに調整する。したがって、ONバ
ーが1のとき、電源17が「オフ」になり、ONバーが
0のとき、電源17が「オン」になる。
調整セクションとの間の接続および切断を行うために高
アンペア双投スイッチを使用している。本発明の電源1
7では、高アンペア双投スイッチを使用してない。むし
ろ、スイッチ21は、ONバー信号を生成する回路を制
御するものである。好ましい実施例のスイッチ21は、
瞬時単極単投プッシュボタン・スイッチであるが、当業
者であれば、単極双投スイッチなどの他のタイプのスイ
ッチを使用できるように図7〜8の回路を調整できるは
ずである。AC線入力は、必ずコンセントから1次/調
整ユニット172に接続されている。ONバーが論理1
(ほぼAUX5、公称では+5VDC)であると、1次
/調整ユニット172は115VACの線入力を±5ま
たは±12の出力により±5VDCまたは±12VDC
に調整しない。1次/調整ユニット172は、AUX5
出力で低アンペアの公称+5VDCを供給するだけであ
る。これに対して、ONバーが論理0(ほぼGND)で
あると、1次/調整ユニット172は、±5および±1
2の4つの出力により115VACの線入力を±5VD
Cおよび±12VDCに調整する。したがって、ONバ
ーが1のとき、電源17が「オフ」になり、ONバーが
0のとき、電源17が「オン」になる。
【0063】指定がある場合、上記の電源17のよう
に、AUX5出力とONバー入力とを有する電源は、従
来の電源の供給業者から入手することができる。
に、AUX5出力とONバー入力とを有する電源は、従
来の電源の供給業者から入手することができる。
【0064】次に図7〜8を参照すると、同図には、本
発明のコンピュータ・システム10の電子回路の概略図
が示されている。図7〜8の回路は、スイッチ21と、
電源17と、ビデオ・ディスプレイ端末57と、CPU
40上で実行されるコードとの間でインタフェースを取
るために応答するものである。
発明のコンピュータ・システム10の電子回路の概略図
が示されている。図7〜8の回路は、スイッチ21と、
電源17と、ビデオ・ディスプレイ端末57と、CPU
40上で実行されるコードとの間でインタフェースを取
るために応答するものである。
【0065】この回路は3つの集積回路を含んでいる。
すなわち、第1のプログラム式PAL16L8であるU
1と、第2のプログラム式PAL16L8であるU2
と、当技術分野で周知の74HC132であるU3であ
る。一般に、PAL U1とU2は、図3〜4のプレー
ナ入出力バス90と、図7〜8の残りの回路とのインタ
フェースを取る。この回路は、スイッチ21と、10個
の抵抗器R1〜R10と、5個のコンデンサC1〜C5
と、好ましい実施例で論理スイッチとして動作するのに
適した標準の小電流NMOS FETである4個のN型
MOSFET Q1〜Q4と、標準の小電流デュアル・
ダイオード・パッケージであるデュアル・ダイオード・
パッケージCR1とをさらに含み、いずれも図7〜8に
示すように構成され接続されている。抵抗器R1〜R1
0は、1/4ワットの抵抗器であり、図7〜8に示す値
±5%のものである。コンデンサC1〜C2は、図7〜
8に示す値±10%の電解コンデンサである。コンデン
サC3〜C5は、0.1μF(±10%)のセラミック
・コンデンサである。
すなわち、第1のプログラム式PAL16L8であるU
1と、第2のプログラム式PAL16L8であるU2
と、当技術分野で周知の74HC132であるU3であ
る。一般に、PAL U1とU2は、図3〜4のプレー
ナ入出力バス90と、図7〜8の残りの回路とのインタ
フェースを取る。この回路は、スイッチ21と、10個
の抵抗器R1〜R10と、5個のコンデンサC1〜C5
と、好ましい実施例で論理スイッチとして動作するのに
適した標準の小電流NMOS FETである4個のN型
MOSFET Q1〜Q4と、標準の小電流デュアル・
ダイオード・パッケージであるデュアル・ダイオード・
パッケージCR1とをさらに含み、いずれも図7〜8に
示すように構成され接続されている。抵抗器R1〜R1
0は、1/4ワットの抵抗器であり、図7〜8に示す値
±5%のものである。コンデンサC1〜C2は、図7〜
8に示す値±10%の電解コンデンサである。コンデン
サC3〜C5は、0.1μF(±10%)のセラミック
・コンデンサである。
【0066】第1のPAL U1は、アドレス線SA
(1)〜SA(15)とAEN(アドレス・イネーブ
ル)線に接続されている。SA(1)〜SA(15)と
AENは図3〜4に示すプレーナ入出力バス90の一部
である。第1のPAL U1は、アドレス線SA(1)
〜SA(15)上に所定のアドレスが提示され、AEN
(アドレス・イネーブル)線が活動状態のときにアクテ
ィブ・ロー信号PM_PORT_DCD#を提示する、アドレス・デ
コーダになるようにプログラミングされている。
(1)〜SA(15)とAEN(アドレス・イネーブ
ル)線に接続されている。SA(1)〜SA(15)と
AENは図3〜4に示すプレーナ入出力バス90の一部
である。第1のPAL U1は、アドレス線SA(1)
〜SA(15)上に所定のアドレスが提示され、AEN
(アドレス・イネーブル)線が活動状態のときにアクテ
ィブ・ロー信号PM_PORT_DCD#を提示する、アドレス・デ
コーダになるようにプログラミングされている。
【0067】第2のPAL U2は、上記の入出力ポー
ト(本明細書では「パワー・マネージメント・ポート」
ともいう)の下位3ビットで1つの読取り可能バイトと
3つの書込み可能ビットとを提供するようにプログラミ
ングされている。第2のPAL U2は、SD(0)、
SD(1)、SD(2)、SD(0)、IOW#、IO
R#、RESETDRV、IRQ(1)という、プレー
ナ入出力バス90からの8つの入力を備えている。第2
のPAL U2は、ピン2で入力されるアクティブ・ハ
イ信号RESETDRVによって既知の初期条件にリセ
ットされるが、この信号は当技術分野で周知のようにメ
モり制御装置46によって生成される。第2のPAL
U2については、図9と表IおよびIIに付随する本文で
さらに詳述する。
ト(本明細書では「パワー・マネージメント・ポート」
ともいう)の下位3ビットで1つの読取り可能バイトと
3つの書込み可能ビットとを提供するようにプログラミ
ングされている。第2のPAL U2は、SD(0)、
SD(1)、SD(2)、SD(0)、IOW#、IO
R#、RESETDRV、IRQ(1)という、プレー
ナ入出力バス90からの8つの入力を備えている。第2
のPAL U2は、ピン2で入力されるアクティブ・ハ
イ信号RESETDRVによって既知の初期条件にリセ
ットされるが、この信号は当技術分野で周知のようにメ
モり制御装置46によって生成される。第2のPAL
U2については、図9と表IおよびIIに付随する本文で
さらに詳述する。
【0068】第3の装置は2つの部分(ここではU3A
およびU3Bと示す)を有し、これらは当技術分野で周
知のNANDラッチとも呼ばれるSRラッチを形成す
る。SRラッチは、入力としてU3のピン1および5を
有し(ピン1はSET入力であり、ピン5はRESET
入力である)、出力としてU3Aのピン3を有する。両
方の入力が論理1である間、出力はそのラッチ出力値を
保持する。SETが論理0になると、出力は論理1にな
る。SET入力が論理1に戻ると、出力は論理1にラッ
チされる。RESET入力が論理0になると、出力は論
理0になる。RESET入力が論理1に戻ると、出力は
論理0にラッチされる。
およびU3Bと示す)を有し、これらは当技術分野で周
知のNANDラッチとも呼ばれるSRラッチを形成す
る。SRラッチは、入力としてU3のピン1および5を
有し(ピン1はSET入力であり、ピン5はRESET
入力である)、出力としてU3Aのピン3を有する。両
方の入力が論理1である間、出力はそのラッチ出力値を
保持する。SETが論理0になると、出力は論理1にな
る。SET入力が論理1に戻ると、出力は論理1にラッ
チされる。RESET入力が論理0になると、出力は論
理0になる。RESET入力が論理1に戻ると、出力は
論理0にラッチされる。
【0069】POWERGOOD信号が論理1である場
合、これは調整電圧が適正レベルにあることを意味する
が、第3の装置の第3の部分(ここではU3Cと示す)
は第2のPAL U2のピン12出力用のインバータと
して動作する。POWERGOOD信号が論理0である
場合、VCCが地面付近で浮動しているかまたは+5V
DCまで上昇するかまたは+5VDCから下降するかの
いずれかを意味するが、第3の装置U3Cの第3の部分
のピン8の出力は論理1のままになり、第2のPAL
U2のピン12からのノイズが第3の装置の第1および
第2の部分U3AおよびU3Bによって作成されたSR
ラッチに影響するのを防止する。
合、これは調整電圧が適正レベルにあることを意味する
が、第3の装置の第3の部分(ここではU3Cと示す)
は第2のPAL U2のピン12出力用のインバータと
して動作する。POWERGOOD信号が論理0である
場合、VCCが地面付近で浮動しているかまたは+5V
DCまで上昇するかまたは+5VDCから下降するかの
いずれかを意味するが、第3の装置U3Cの第3の部分
のピン8の出力は論理1のままになり、第2のPAL
U2のピン12からのノイズが第3の装置の第1および
第2の部分U3AおよびU3Bによって作成されたSR
ラッチに影響するのを防止する。
【0070】スイッチ21は、JP1で図7〜8の回路
に接続している。抵抗器/コンデンサ補助回路R2およ
びC1は、スイッチ21の閉鎖事象を減衰する。第3の
装置U3Dの第4の部分は、ピン12がR6によりVB
AT(AUX5が公称+5VDCであるときに約+4.
3VDC)に引き下げられるインバータとして構成さ
れ、これはデバウンスしたスイッチ閉鎖を反転する。限
流抵抗器R10は、第3の装置U3Dの第4の部分のピ
ン11を、その装置が電源投入または遮断されたときに
第2のPAL U2のピン8から流れる可能性のある電
流から保護する。
に接続している。抵抗器/コンデンサ補助回路R2およ
びC1は、スイッチ21の閉鎖事象を減衰する。第3の
装置U3Dの第4の部分は、ピン12がR6によりVB
AT(AUX5が公称+5VDCであるときに約+4.
3VDC)に引き下げられるインバータとして構成さ
れ、これはデバウンスしたスイッチ閉鎖を反転する。限
流抵抗器R10は、第3の装置U3Dの第4の部分のピ
ン11を、その装置が電源投入または遮断されたときに
第2のPAL U2のピン8から流れる可能性のある電
流から保護する。
【0071】SRラッチは、けっして電源オフにしては
ならない。しかし、SRラッチが電源オフする場合、R
7およびC3は、SRラッチに電源を再投入したときに
電源17が「オフ」状態になるようにSRラッチを電源
投入時状態にするように設計されている。
ならない。しかし、SRラッチが電源オフする場合、R
7およびC3は、SRラッチに電源を再投入したときに
電源17が「オフ」状態になるようにSRラッチを電源
投入時状態にするように設計されている。
【0072】抵抗器R1、R3、R4、R5、R6、R
8、R9は、それぞれの線をVCC、VBAT、AUX
5のいずれかに引き上げる引上げ抵抗器である。トラン
ジスタQ1、Q2、Q3、Q4はインバータである。R
4とC2は、それがVCCに達するまでC2に充電させ
るRC対を形成する。トランジスタQ5は、第2のPA
L U2のピン19出力が論理1であるときにトランジ
スタC2を排出させる。C2に貯蔵された電圧が約+
2.7VDCより下がると、Q1は導電せず、R3は第
2のPAL U2のピン11入力をVCCに引き上げ、
それを論理1にする。C2が約+2.7VDCまたはそ
れ以上まで充電すると、Q1は導電し、ピン11入力を
GNDに引き下げ、それを論理0にする。
8、R9は、それぞれの線をVCC、VBAT、AUX
5のいずれかに引き上げる引上げ抵抗器である。トラン
ジスタQ1、Q2、Q3、Q4はインバータである。R
4とC2は、それがVCCに達するまでC2に充電させ
るRC対を形成する。トランジスタQ5は、第2のPA
L U2のピン19出力が論理1であるときにトランジ
スタC2を排出させる。C2に貯蔵された電圧が約+
2.7VDCより下がると、Q1は導電せず、R3は第
2のPAL U2のピン11入力をVCCに引き上げ、
それを論理1にする。C2が約+2.7VDCまたはそ
れ以上まで充電すると、Q1は導電し、ピン11入力を
GNDに引き下げ、それを論理0にする。
【0073】第2のPAL U2のピン18出力が論理
0であるとき、R8およびR9はBLNK#線とESY
NC線をそれぞれVCCに引き上げる。VCCのESY
NC線とBLNK#線により、ビデオ制御装置56はビ
デオ信号を生成する。第2のPAL U2のピン18出
力が論理1であるとき、トランジスタQ2およびQ3は
導電し、BLNK#とESYNCをそれぞれGNDに引
き下げ、ビデオ制御装置56によるビデオ信号の生成を
止めさせる。
0であるとき、R8およびR9はBLNK#線とESY
NC線をそれぞれVCCに引き上げる。VCCのESY
NC線とBLNK#線により、ビデオ制御装置56はビ
デオ信号を生成する。第2のPAL U2のピン18出
力が論理1であるとき、トランジスタQ2およびQ3は
導電し、BLNK#とESYNCをそれぞれGNDに引
き下げ、ビデオ制御装置56によるビデオ信号の生成を
止めさせる。
【0074】図7〜8に示す電子回路は、VCC、AU
X5、VBATという3つの電源を備えている。VCC
とAUX5は電源17によって生成され、公称では+
5.0VDCになっている。VCCとそれに関連するG
ND戻り線は、当技術分野で周知のようにプレーナ20
上の主電源コネクタ(図示せず)から入る。AUX5は
JP2のピン1でこの回路に接続されている。AUX5
の戻りは入り、JP2のピン3でGND線に接続されて
いる。VBATはバッテリ171の電源出力であり、公
称では3.5VDCである。バッテリ171は、リチウ
ム電池であり、当技術分野で周知のものである。
X5、VBATという3つの電源を備えている。VCC
とAUX5は電源17によって生成され、公称では+
5.0VDCになっている。VCCとそれに関連するG
ND戻り線は、当技術分野で周知のようにプレーナ20
上の主電源コネクタ(図示せず)から入る。AUX5は
JP2のピン1でこの回路に接続されている。AUX5
の戻りは入り、JP2のピン3でGND線に接続されて
いる。VBATはバッテリ171の電源出力であり、公
称では3.5VDCである。バッテリ171は、リチウ
ム電池であり、当技術分野で周知のものである。
【0075】PAL U1およびU2は、ピン20のそ
れぞれのVCC入力がVCCに接続されている。さら
に、複数の抵抗器R3、R4、R8、R9もVCCに接
続されている。電源17は、当技術分野で周知のよう
に、その電源が「オン」で、公称115VACを供給す
る典型的なコンセントに差し込まれているときに、調整
済みの+5VDCのみを供給する。したがって、電源が
「オフ」になっているかまたは差込みが外されている場
合、PAL U1およびU2と、抵抗器R3、R4、R
8、R9は+5VDCを受け取らない。
れぞれのVCC入力がVCCに接続されている。さら
に、複数の抵抗器R3、R4、R8、R9もVCCに接
続されている。電源17は、当技術分野で周知のよう
に、その電源が「オン」で、公称115VACを供給す
る典型的なコンセントに差し込まれているときに、調整
済みの+5VDCのみを供給する。したがって、電源が
「オフ」になっているかまたは差込みが外されている場
合、PAL U1およびU2と、抵抗器R3、R4、R
8、R9は+5VDCを受け取らない。
【0076】これに対し、電源17が公称115VDC
を供給する典型的なコンセントに差し込まれている場
合、電源17は「オン」であるか「オフ」であるかにか
かわらず、AUX5で調整済みの+5VDCを供給す
る。したがって、AUX5に接続された装置は、電源1
7が差し込まれている限り、+5VDCを受け取る。
を供給する典型的なコンセントに差し込まれている場
合、電源17は「オン」であるか「オフ」であるかにか
かわらず、AUX5で調整済みの+5VDCを供給す
る。したがって、AUX5に接続された装置は、電源1
7が差し込まれている限り、+5VDCを受け取る。
【0077】さらに、U3と抵抗器R1、R2、R6は
いつでも電力を受け取っている。というのは、VBAT
に接続された装置が必ず電力を受け取るようにCR1の
ダイオードがVBATとAUX5のインタフェースを取
るからである。典型的なコンセントに差し込まれている
間、電源17はAUX5で+5VDCを供給し、VBA
Tに接続された装置(U3と抵抗器R1、R2、R6)
は約+4.3VDC(AUX5の+5VDCから、AU
X5とVBATとの間のCR1内のダイオードのダイオ
ード降下を差し引いたもの)を受け取る。差し込まれて
いない場合、電源17はAUX5線への調整電力の供給
を止め、U3と抵抗器R1、R2、R6はVBATから
電力を受け取る。典型的な74HC132は、+2.0
VDCという最低DC電源電圧を必要とする。したがっ
て、VBATが+2.0VDCを供給するのに十分な電
荷を保持する限り、U3は十分な電力供給を受けられ
る。
いつでも電力を受け取っている。というのは、VBAT
に接続された装置が必ず電力を受け取るようにCR1の
ダイオードがVBATとAUX5のインタフェースを取
るからである。典型的なコンセントに差し込まれている
間、電源17はAUX5で+5VDCを供給し、VBA
Tに接続された装置(U3と抵抗器R1、R2、R6)
は約+4.3VDC(AUX5の+5VDCから、AU
X5とVBATとの間のCR1内のダイオードのダイオ
ード降下を差し引いたもの)を受け取る。差し込まれて
いない場合、電源17はAUX5線への調整電力の供給
を止め、U3と抵抗器R1、R2、R6はVBATから
電力を受け取る。典型的な74HC132は、+2.0
VDCという最低DC電源電圧を必要とする。したがっ
て、VBATが+2.0VDCを供給するのに十分な電
荷を保持する限り、U3は十分な電力供給を受けられ
る。
【0078】図7〜8の回路は、多数の代替変更態様を
有し、それでも本発明の範囲内に含まれる。たとえば、
リアルタイム・クロック98は、図7〜8の回路に電気
的に接続し、所与の時刻にコンピュータ・システム10
がサスペンド状態154から通常動作状態150に変更
されるように、ON#信号とダイオードORされるよう
に構成することができる。同様に、図7〜8の回路に電
話呼出し音検出回路を追加し、接続した電話回線の呼出
し音によってシステム10がサスペンド状態154を出
て通常動作状態150に入るように、ON#信号にダイ
オードORが取られるようにこの回路を構成することも
できる。
有し、それでも本発明の範囲内に含まれる。たとえば、
リアルタイム・クロック98は、図7〜8の回路に電気
的に接続し、所与の時刻にコンピュータ・システム10
がサスペンド状態154から通常動作状態150に変更
されるように、ON#信号とダイオードORされるよう
に構成することができる。同様に、図7〜8の回路に電
話呼出し音検出回路を追加し、接続した電話回線の呼出
し音によってシステム10がサスペンド状態154を出
て通常動作状態150に入るように、ON#信号にダイ
オードORが取られるようにこの回路を構成することも
できる。
【0079】図7〜8に戻って参照すると、第2のPA
L U2は2つの状態計算機を有する。第2のPAL
U2内の一方の状態計算機の状態図を図9に示す。表I
および表IIは、第2のPAL U2のもう一方の状態計
算機と所与の各種態様を記述したものである。
L U2は2つの状態計算機を有する。第2のPAL
U2内の一方の状態計算機の状態図を図9に示す。表I
および表IIは、第2のPAL U2のもう一方の状態計
算機と所与の各種態様を記述したものである。
【0080】図9は、第2のPAL U2内の一方の状
態計算機を示している。TE1とTE0があいまって4
通りの状態が可能になっている。すなわち、スイッチ状
態002 176と、スイッチ状態012 178と、ス
イッチ状態112 180と、スイッチ状態102 18
2である。
態計算機を示している。TE1とTE0があいまって4
通りの状態が可能になっている。すなわち、スイッチ状
態002 176と、スイッチ状態012 178と、ス
イッチ状態112 180と、スイッチ状態102 18
2である。
【0081】TE1とTE0は第2のPAL U2に直
接書込み可能ではなく、むしろ、スイッチ21の閉鎖事
象や、コンピュータ・システム10のリセットなどのそ
の他の事象に応答して状態が変化する。電源17からシ
ステム電源が供給されない場合、第2のPAL U2は
電力供給を受けておらず、したがって、174ではその
状態は無意味である。スイッチ21を押したり、その他
の事象(電話呼出し音検出器によって電源17がシステ
ム電源を供給するなど)が発生すると、図7〜8に付随
する本文で説明するように、電源17はシステム電源の
供給を開始する。スイッチ21が押されるか、またはR
ESETDRV信号が活動状態になると、第2のPAL
U2はスイッチ状態002 176に入る。スイッチ
21を解除するか、またはスイッチ21が押されていな
い間にRESETDRVが非活動状態になると、第2の
PAL U2がスイッチ状態012 178に入る。も
う一度スイッチ21を押すと、第2のPAL U2はス
イッチ状態112 180に入る。もう一度スイッチ2
1を解除すると、第2のPAL U2はスイッチ状態1
02 182に入る。その後、スイッチ21を閉鎖する
と、第2のPALU2は、図9に示すように4通りの状
態の間を循環する。コンピュータ・システム10が通常
動作状態150になっていると、第2のPAL U2は
スイッチ状態012 178になっている。
接書込み可能ではなく、むしろ、スイッチ21の閉鎖事
象や、コンピュータ・システム10のリセットなどのそ
の他の事象に応答して状態が変化する。電源17からシ
ステム電源が供給されない場合、第2のPAL U2は
電力供給を受けておらず、したがって、174ではその
状態は無意味である。スイッチ21を押したり、その他
の事象(電話呼出し音検出器によって電源17がシステ
ム電源を供給するなど)が発生すると、図7〜8に付随
する本文で説明するように、電源17はシステム電源の
供給を開始する。スイッチ21が押されるか、またはR
ESETDRV信号が活動状態になると、第2のPAL
U2はスイッチ状態002 176に入る。スイッチ
21を解除するか、またはスイッチ21が押されていな
い間にRESETDRVが非活動状態になると、第2の
PAL U2がスイッチ状態012 178に入る。も
う一度スイッチ21を押すと、第2のPAL U2はス
イッチ状態112 180に入る。もう一度スイッチ2
1を解除すると、第2のPAL U2はスイッチ状態1
02 182に入る。その後、スイッチ21を閉鎖する
と、第2のPALU2は、図9に示すように4通りの状
態の間を循環する。コンピュータ・システム10が通常
動作状態150になっていると、第2のPAL U2は
スイッチ状態012 178になっている。
【0082】スイッチ状態012 178は、TE1、
TE0状態計算機用の通常オン状態に対応するスイッチ
状態である。アプリケーション・プログラムはその状態
になっている間に実行される。システム10は、その状
態で待機状態152に入ったり、そこから出ることがで
きる。また、スイッチ状態012 178は、ユーザ生
成サスペンド打切り要求にも対応している。スイッチ状
態102は、ユーザによるサスペンド要求に対応するス
イッチ状態である。すなわち、オフ状態156のシステ
ムから始まって、スイッチ21を一度押すと、コンピュ
ータ・システムが通常動作状態150に入る。もう一度
スイッチ21を押すと、サスペンド要求(パワー・マネ
ージメント・ポートの0FFH)を生成し、この要求
は、図11に付随する本文で詳述するスーパバイザ・ル
ーチンによって読み取られる。システム10がサスペン
ド状態154になる前にもう一度スイッチ21を押す
と、サスペンド打切り要求(パワー・マネージメント・
ポートの0FEH)を生成し、この要求は、サスペンド
・ルーチンによって読み取られる。
TE0状態計算機用の通常オン状態に対応するスイッチ
状態である。アプリケーション・プログラムはその状態
になっている間に実行される。システム10は、その状
態で待機状態152に入ったり、そこから出ることがで
きる。また、スイッチ状態012 178は、ユーザ生
成サスペンド打切り要求にも対応している。スイッチ状
態102は、ユーザによるサスペンド要求に対応するス
イッチ状態である。すなわち、オフ状態156のシステ
ムから始まって、スイッチ21を一度押すと、コンピュ
ータ・システムが通常動作状態150に入る。もう一度
スイッチ21を押すと、サスペンド要求(パワー・マネ
ージメント・ポートの0FFH)を生成し、この要求
は、図11に付随する本文で詳述するスーパバイザ・ル
ーチンによって読み取られる。システム10がサスペン
ド状態154になる前にもう一度スイッチ21を押す
と、サスペンド打切り要求(パワー・マネージメント・
ポートの0FEH)を生成し、この要求は、サスペンド
・ルーチンによって読み取られる。
【0083】表Iは、図9の4通りの状態に注釈を加え
るものである。スイッチ状態002176、012 17
8、112 180になっている間にパワー・マネージ
メント・ポートは読取りに応答して0FFHを出力す
る。
るものである。スイッチ状態002176、012 17
8、112 180になっている間にパワー・マネージ
メント・ポートは読取りに応答して0FFHを出力す
る。
【0084】
TE1 TE0 注釈
0 0 ディスプレイ帰線消去ビットをクリアする。
パワー・マネージメント・ポートの読取り=0FFH
0 1 SD(2)によってディスプレイ帰線消去ビットを制御
パワー・マネージメント・ポートの読取り=0FFH
1 1 SD(2)によってディスプレイ帰線消去ビットを制御
パワー・マネージメント・ポートの読取り=0FFH
1 0 ディスプレイ帰線消去ビットを設定する。
パワー・マネージメント・ポートの読取り=0FEH
表I
【0085】これに対し、スイッチ状態102 182
になっている間にパワー・マネージメント・ポートは読
取りに応答して0FEHを出力する。スイッチ21を押
して解除すると、第2のPAL U2はスイッチ状態0
12を出て、スイッチ状態102 182に入り、これが
ハードウェア・サスペンド要求を通知する。スーパバイ
ザ・ルーチンは、パワー・マネージメント・ポートを読
み取ることにより、ハードウェア・サスペンド要求を認
識する。読取りに応じた0FEHは、ハードウェア・サ
スペンド要求を意味する。
になっている間にパワー・マネージメント・ポートは読
取りに応答して0FEHを出力する。スイッチ21を押
して解除すると、第2のPAL U2はスイッチ状態0
12を出て、スイッチ状態102 182に入り、これが
ハードウェア・サスペンド要求を通知する。スーパバイ
ザ・ルーチンは、パワー・マネージメント・ポートを読
み取ることにより、ハードウェア・サスペンド要求を認
識する。読取りに応じた0FEHは、ハードウェア・サ
スペンド要求を意味する。
【0086】TE1、TE0状態計算機は、ビデオ帰線
消去回路にも影響する。スイッチ状態002 176に
なっている間は、ディスプレイ帰線消去ビットがクリア
され、ビデオ制御装置56はビデオ信号を生成する。ス
イッチ状態102 182になっている間は、ディスプ
レイ帰線消去ビットが設定され、ビデオ制御装置56は
ビデオ信号の生成を停止する。スイッチ状態012 1
78と112 180になっている間は、以下に説明す
るようにディスプレイ帰線消去ビットがD2への書込み
によって制御される。
消去回路にも影響する。スイッチ状態002 176に
なっている間は、ディスプレイ帰線消去ビットがクリア
され、ビデオ制御装置56はビデオ信号を生成する。ス
イッチ状態102 182になっている間は、ディスプ
レイ帰線消去ビットが設定され、ビデオ制御装置56は
ビデオ信号の生成を停止する。スイッチ状態012 1
78と112 180になっている間は、以下に説明す
るようにディスプレイ帰線消去ビットがD2への書込み
によって制御される。
【0087】表IIは、第2のPAL U2のもう一方の
状態計算機を示し、SD2への書込みがビデオ信号に影
響する様子を示している。
状態計算機を示し、SD2への書込みがビデオ信号に影
響する様子を示している。
【0088】
S2 S1 S0 注釈
X 0 0 スイッチ状態102になっている間、ただちに電源を「オ
フ」にする。
X 0 1 スイッチ状態102になっている間、フェールセーフ・タ
イマを始動する(C2が充電する)。
X 1 0 ただちに電源を「オフ」にする。
X 1 1 フェールセーフ・タイマをリセットする(C2が排出され
る)。
0 X X ビデオ信号をオンにする。
1 X X ビデオ信号をオフにする。
表II
【0089】PAL内のU2回路は、パワー・マネージ
メント・ポートにSD(0)、SD(1)、SD(2)
という3つのビットを用意している。この3つのビット
は表IIではS0、S1、S2と示されている。SD
(2)は、第2のPAL U2のピン18のDISPLAY_OF
F出力を制御することにより、ビデオ帰線消去を制御す
る。パワー・マネージメント・ポートのSD(2)ビッ
トに1を書き込むと、ピン18のDISPLAY_OFF出力が論
理1をアサートし、トランジスタQ2およびQ3が導電
し、BLNK#とESYNCがGNDに引き下げられ、
それにより、ビデオ制御装置56がビデオ信号の生成を
止めることにより、ビデオ信号がオフになる。同様に、
パワー・マネージメント・ポートのSD(2)に0を書
き込むと、ピン18のDISPLAY_OFF出力が論理0をアサ
ートし、トランジスタQ2およびQ3が導電を停止し、
レジスタR8およびR9によってBLNK#とESYN
CがVCCに引き上げられ、それにより、ビデオ制御装
置56がビデオ信号を生成できるようになる。
メント・ポートにSD(0)、SD(1)、SD(2)
という3つのビットを用意している。この3つのビット
は表IIではS0、S1、S2と示されている。SD
(2)は、第2のPAL U2のピン18のDISPLAY_OF
F出力を制御することにより、ビデオ帰線消去を制御す
る。パワー・マネージメント・ポートのSD(2)ビッ
トに1を書き込むと、ピン18のDISPLAY_OFF出力が論
理1をアサートし、トランジスタQ2およびQ3が導電
し、BLNK#とESYNCがGNDに引き下げられ、
それにより、ビデオ制御装置56がビデオ信号の生成を
止めることにより、ビデオ信号がオフになる。同様に、
パワー・マネージメント・ポートのSD(2)に0を書
き込むと、ピン18のDISPLAY_OFF出力が論理0をアサ
ートし、トランジスタQ2およびQ3が導電を停止し、
レジスタR8およびR9によってBLNK#とESYN
CがVCCに引き上げられ、それにより、ビデオ制御装
置56がビデオ信号を生成できるようになる。
【0090】IRQ(1)入力もビデオ帰線消去を制御
する。IRQ(1)はキーボード・ハードウェア割込み
であり、キーボード12上のキーを押すと、IRQ
(1)がパルスを発生する。ビデオ信号がオフになって
いる間にIRQ(1)上にパルスが発生すると、ピン1
8のDISPLAY_OFF出力が論理0をアサートし、トランジ
スタQ2およびQ3が導電を停止し、レジスタR8およ
びR9によってBLNK#とESYNCがVCCに引き
上げられ、それにより、ビデオ制御装置56がビデオ信
号を生成できるようになることにより、ただちにビデオ
信号がオンに戻る。IRQ(1)をこのように使用する
と、待機状態152から通常動作状態154に戻ったと
きにビデオ・ディスプレイの復元という形でユーザに対
して即時フィードバックが行われる。これを使用しない
場合、ユーザは、図11に付随する本文で説明するよう
に、APMがユーザ活動の有無を検査するときに数秒後
までフィードバックを受け取れない可能性がある。
する。IRQ(1)はキーボード・ハードウェア割込み
であり、キーボード12上のキーを押すと、IRQ
(1)がパルスを発生する。ビデオ信号がオフになって
いる間にIRQ(1)上にパルスが発生すると、ピン1
8のDISPLAY_OFF出力が論理0をアサートし、トランジ
スタQ2およびQ3が導電を停止し、レジスタR8およ
びR9によってBLNK#とESYNCがVCCに引き
上げられ、それにより、ビデオ制御装置56がビデオ信
号を生成できるようになることにより、ただちにビデオ
信号がオンに戻る。IRQ(1)をこのように使用する
と、待機状態152から通常動作状態154に戻ったと
きにビデオ・ディスプレイの復元という形でユーザに対
して即時フィードバックが行われる。これを使用しない
場合、ユーザは、図11に付随する本文で説明するよう
に、APMがユーザ活動の有無を検査するときに数秒後
までフィードバックを受け取れない可能性がある。
【0091】SD(1)とSD(0)は、タンデム構成
で機能し、002、012、102、112という4通りの
動作状態を提供する。第2のPAL U2は、RESE
TDRV入力により002状態に初期設定される。さら
に、4通りの状態のいずれになっていても、パワー・マ
ネージメント・ポートにXXXXXX002を書き込む
と、第2のPAL U2が002状態になる。002状態
では、スイッチ21が、図6に付随する本文で説明した
ように典型的な電源の電源スイッチのように機能する。
002状態の間にスイッチ21を押すと、第2のPAL
U2のピン12出力が論理1をアサートし、SRラッ
チの出力ピン3が論理0状態にラッチされ、ONバーが
R6によってHIGHに引き上げられるようにし、電源
17の1次/調整ユニット172が±5と±12の各線
に沿った調整電圧の供給を停止することにより、電源1
7が「オフ」になる。この状態では、以下のシステム・
ソフトウェアの説明で詳述するように、APMが切断さ
れる。002状態の間にパワー・マネージメント・ポー
トを読み取ると、回路が0FEHに戻る。好ましい実施
例では、このバイトが読み取られ、そのハードウェアが
存在することを確認するためにテストされる。
で機能し、002、012、102、112という4通りの
動作状態を提供する。第2のPAL U2は、RESE
TDRV入力により002状態に初期設定される。さら
に、4通りの状態のいずれになっていても、パワー・マ
ネージメント・ポートにXXXXXX002を書き込む
と、第2のPAL U2が002状態になる。002状態
では、スイッチ21が、図6に付随する本文で説明した
ように典型的な電源の電源スイッチのように機能する。
002状態の間にスイッチ21を押すと、第2のPAL
U2のピン12出力が論理1をアサートし、SRラッ
チの出力ピン3が論理0状態にラッチされ、ONバーが
R6によってHIGHに引き上げられるようにし、電源
17の1次/調整ユニット172が±5と±12の各線
に沿った調整電圧の供給を停止することにより、電源1
7が「オフ」になる。この状態では、以下のシステム・
ソフトウェアの説明で詳述するように、APMが切断さ
れる。002状態の間にパワー・マネージメント・ポー
トを読み取ると、回路が0FEHに戻る。好ましい実施
例では、このバイトが読み取られ、そのハードウェアが
存在することを確認するためにテストされる。
【0092】4通りの状態のいずれになっていても、パ
ワー・マネージメント・ポートにXXXXXX012を
書き込むと、第2のPAL U2が012状態に入る。
この012状態は通常APM状態である。スイッチ21
を押す前に012状態に入った直後にパワー・マネージ
メント・ポートを読み取ると、回路が0FFHに戻る。
012状態の間にスイッチ21を押して解除すると、2
つの事象が発生する。すなわち、(1)パワー・マネー
ジメント・ポートの読取りから返された値が0FEHと
0FFHの間で切り替わり、(2)ピン18でアサート
した値が切り替わり、押すたびにビデオ制御装置56が
ビデオ信号のオン/オフを切り替える。さらに、スイッ
チ21を初めて押したときに、ピン19のTRIGGER#出力
が論理0をアサートし、Q5が導電を停止し、コンデン
サC2により充電の開始が可能になることにより、フェ
ールセーフ・タイマが始動する。C2に貯蔵された電圧
が約+2.7VDCより下がると、Q1は導電せず、R
3は第2のPAL U2のピン11入力をVCCに引き
上げ、それを論理1にする。C2が約+2.7VDCま
たはそれ以上まで充電すると、Q1は導電し、ピン11
入力をGNDに引き下げ、それを論理0にする。ピン1
1のDELAY_IN#が論理0であると、第2のPALU2の
ピン12出力が論理1をアサートし、SRラッチの出力
ピン3が論理0状態にラッチされ、ONバーがR6によ
ってHIGHに引き上げられるようにし、電源17の1
次/調整ユニット172が±5と±12の各線に沿った
調整電圧の供給を停止することにより、第2のPAL
U2は必ず電源17を「オフ」にする。スイッチを繰り
返し閉鎖すると、フェールセーフ・タイマのオン/オフ
が切り替わる。
ワー・マネージメント・ポートにXXXXXX012を
書き込むと、第2のPAL U2が012状態に入る。
この012状態は通常APM状態である。スイッチ21
を押す前に012状態に入った直後にパワー・マネージ
メント・ポートを読み取ると、回路が0FFHに戻る。
012状態の間にスイッチ21を押して解除すると、2
つの事象が発生する。すなわち、(1)パワー・マネー
ジメント・ポートの読取りから返された値が0FEHと
0FFHの間で切り替わり、(2)ピン18でアサート
した値が切り替わり、押すたびにビデオ制御装置56が
ビデオ信号のオン/オフを切り替える。さらに、スイッ
チ21を初めて押したときに、ピン19のTRIGGER#出力
が論理0をアサートし、Q5が導電を停止し、コンデン
サC2により充電の開始が可能になることにより、フェ
ールセーフ・タイマが始動する。C2に貯蔵された電圧
が約+2.7VDCより下がると、Q1は導電せず、R
3は第2のPAL U2のピン11入力をVCCに引き
上げ、それを論理1にする。C2が約+2.7VDCま
たはそれ以上まで充電すると、Q1は導電し、ピン11
入力をGNDに引き下げ、それを論理0にする。ピン1
1のDELAY_IN#が論理0であると、第2のPALU2の
ピン12出力が論理1をアサートし、SRラッチの出力
ピン3が論理0状態にラッチされ、ONバーがR6によ
ってHIGHに引き上げられるようにし、電源17の1
次/調整ユニット172が±5と±12の各線に沿った
調整電圧の供給を停止することにより、第2のPAL
U2は必ず電源17を「オフ」にする。スイッチを繰り
返し閉鎖すると、フェールセーフ・タイマのオン/オフ
が切り替わる。
【0093】したがって、012状態の間であって、ス
イッチを押すまでは、読取りから返される値が0FFH
になり、ビデオ信号が生成されている。スイッチ21を
初めて押すと、読取りから返される値が0FEHに変化
し、ビデオ信号の生成が停止し、ビデオ・ディスプレイ
端末57がブランクになる。スイッチ21をもう一度押
すと、読取りから返される値が0FFHに戻り、ビデオ
制御装置56がもう一度ビデオ信号の生成を開始する。
切替え特性があるため、スイッチ21を繰り返し押す
と、スイッチを押した総数が奇数の場合に0FEHとい
う値とブランクのビデオ信号が得られ、スイッチを押し
た総数が偶数の場合に0FFHという値とビデオ信号の
生成が得られるような動作が行われる。
イッチを押すまでは、読取りから返される値が0FFH
になり、ビデオ信号が生成されている。スイッチ21を
初めて押すと、読取りから返される値が0FEHに変化
し、ビデオ信号の生成が停止し、ビデオ・ディスプレイ
端末57がブランクになる。スイッチ21をもう一度押
すと、読取りから返される値が0FFHに戻り、ビデオ
制御装置56がもう一度ビデオ信号の生成を開始する。
切替え特性があるため、スイッチ21を繰り返し押す
と、スイッチを押した総数が奇数の場合に0FEHとい
う値とブランクのビデオ信号が得られ、スイッチを押し
た総数が偶数の場合に0FFHという値とビデオ信号の
生成が得られるような動作が行われる。
【0094】4通りの状態のいずれになっていても、パ
ワー・マネージメント・ポートにXXXXXX102を
書き込むと、第2のPAL U2が102状態に入る。
102状態にはいると、第2のPAL U2のピン12
出力が論理1をアサートし、SRラッチの出力ピン3が
論理0状態にラッチされ、ONバーがR6によってHI
GHに引き上げられるようにし、電源17の1次/調整
ユニット172が±5と±12の各線に沿った調整電圧
の供給を停止することにより、ただちに電源17が「オ
フ」になる。この状態により、電源17に関する制御権
がシステム10に与えられる。
ワー・マネージメント・ポートにXXXXXX102を
書き込むと、第2のPAL U2が102状態に入る。
102状態にはいると、第2のPAL U2のピン12
出力が論理1をアサートし、SRラッチの出力ピン3が
論理0状態にラッチされ、ONバーがR6によってHI
GHに引き上げられるようにし、電源17の1次/調整
ユニット172が±5と±12の各線に沿った調整電圧
の供給を停止することにより、ただちに電源17が「オ
フ」になる。この状態により、電源17に関する制御権
がシステム10に与えられる。
【0095】4通りの状態のいずれになっていても、パ
ワー・マネージメント・ポートにXXXXXX112を
書き込むと、第2のPAL U2が112状態に入る。
112状態にはいると、ピン19のTRIGGER#出力が論理
1をアサートし、Q5が導電し、コンデンサC2をGN
Dに排出させることにより、フェールセーフ・タイマが
リセットされる。この状態を出て、012状態に入る
と、ピン19のTRIGGER#出力が論理0をアサートし、ト
ランジスタQ5が導電しないようにし、コンデンサC2
がもう一度充電できるようにすることにより、フェール
セーフ・タイマが再始動する。
ワー・マネージメント・ポートにXXXXXX112を
書き込むと、第2のPAL U2が112状態に入る。
112状態にはいると、ピン19のTRIGGER#出力が論理
1をアサートし、Q5が導電し、コンデンサC2をGN
Dに排出させることにより、フェールセーフ・タイマが
リセットされる。この状態を出て、012状態に入る
と、ピン19のTRIGGER#出力が論理0をアサートし、ト
ランジスタQ5が導電しないようにし、コンデンサC2
がもう一度充電できるようにすることにより、フェール
セーフ・タイマが再始動する。
【0096】図7〜8の回路の機能に関する以下の説明
では、電源17が典型的なコンセントに差し込まれ、A
UX5で+5VDCで動作しており、このため、多くの
装置、特にU3が十分な電力供給を受けていると想定す
る。
では、電源17が典型的なコンセントに差し込まれ、A
UX5で+5VDCで動作しており、このため、多くの
装置、特にU3が十分な電力供給を受けていると想定す
る。
【0097】まず電源17が「オフ」になっている場合
を検討すると、図7〜8の回路の説明がより理解しやす
くなると思われる。電源17が「オフ」になるには、J
P2のピン2のONバー信号が論理1になっていなけれ
ばならない。したがって、Q4は導電していてはなら
ず、そのため、U3のピン3は論理0でなければならな
い。すなわち、U3AとU3BのSRラッチは論理0出
力によってラッチされる。POWERGOODは論理0
であり、第2のPAL U2は電力供給を受けていない
ので、U3Cのピン8出力は論理1になり、その結果、
SRラッチのRESET入力は1になる。同様に、U3
Aのピン1であるSRラッチのSET入力はR1によっ
て論理1に引き上げられる。この状態では、SRラッチ
は論理0入力によってラッチされる。
を検討すると、図7〜8の回路の説明がより理解しやす
くなると思われる。電源17が「オフ」になるには、J
P2のピン2のONバー信号が論理1になっていなけれ
ばならない。したがって、Q4は導電していてはなら
ず、そのため、U3のピン3は論理0でなければならな
い。すなわち、U3AとU3BのSRラッチは論理0出
力によってラッチされる。POWERGOODは論理0
であり、第2のPAL U2は電力供給を受けていない
ので、U3Cのピン8出力は論理1になり、その結果、
SRラッチのRESET入力は1になる。同様に、U3
Aのピン1であるSRラッチのSET入力はR1によっ
て論理1に引き上げられる。この状態では、SRラッチ
は論理0入力によってラッチされる。
【0098】スイッチ21を押すと、その閉鎖がR2お
よびC1によってデバウンスされ、U3Aのピン1であ
るSRラッチのSET入力がGND(論理0)に引き下
げられる。これにより、U3Aのピン3であるSRラッ
チ出力が論理1に変化し、Q4が導電し、これがONバ
ーをGNDに引き下げ、電源17が±5と±12の各線
への調整電圧の供給を開始する。スイッチを解除する
と、U3Aのピン1であるSRラッチのSET入力が論
理1に変化し、SRラッチがU3Aピン3出力で論理1
にラッチされ、それにより、電源17が「オン」状態に
ラッチされる。
よびC1によってデバウンスされ、U3Aのピン1であ
るSRラッチのSET入力がGND(論理0)に引き下
げられる。これにより、U3Aのピン3であるSRラッ
チ出力が論理1に変化し、Q4が導電し、これがONバ
ーをGNDに引き下げ、電源17が±5と±12の各線
への調整電圧の供給を開始する。スイッチを解除する
と、U3Aのピン1であるSRラッチのSET入力が論
理1に変化し、SRラッチがU3Aピン3出力で論理1
にラッチされ、それにより、電源17が「オン」状態に
ラッチされる。
【0099】POWERGOOD信号が論理1になる
と、すべての電圧が許容範囲内になる。POWERGO
ODが論理0である間に、第2のPAL U2は次のよ
うに初期設定される。すなわち、(1)ピン12のOF
F出力が論理0をアサートし、これによりSRラッチは
その現行ラッチ状態のままになり、(2)ピン18のDI
SPLAY_OFF出力が論理0をアサートし、これによりビデ
オ制御装置がビデオ信号を生成できるようになり、
(3)ピン19のTRIGGER#出力が論理1をアサートし、
Q5がC2をGNDに排出させ、それにより、ピン11
のDELAY_IN#入力をR3によって論理1に引き上げられ
た状態に保つ。
と、すべての電圧が許容範囲内になる。POWERGO
ODが論理0である間に、第2のPAL U2は次のよ
うに初期設定される。すなわち、(1)ピン12のOF
F出力が論理0をアサートし、これによりSRラッチは
その現行ラッチ状態のままになり、(2)ピン18のDI
SPLAY_OFF出力が論理0をアサートし、これによりビデ
オ制御装置がビデオ信号を生成できるようになり、
(3)ピン19のTRIGGER#出力が論理1をアサートし、
Q5がC2をGNDに排出させ、それにより、ピン11
のDELAY_IN#入力をR3によって論理1に引き上げられ
た状態に保つ。
【0100】前述のように、図9の第2のPAL U2
回路は、パワー・マネージメント・ポートにSD
(0)、SD(1)、SD(2)という3つのビットを
用意している。SD(2)は、第2のPAL U2のピ
ン18のDISPLAY_OFF出力を制御する。パワー・マネー
ジメント・ポートのSD(2)に1を書き込むと、ビデ
オ制御装置56がビデオ信号の生成を止める。同様に、
パワー・マネージメント・ポートのSD(2)に0を書
き込むと、ビデオ制御装置56がビデオ信号を生成でき
るようになる。
回路は、パワー・マネージメント・ポートにSD
(0)、SD(1)、SD(2)という3つのビットを
用意している。SD(2)は、第2のPAL U2のピ
ン18のDISPLAY_OFF出力を制御する。パワー・マネー
ジメント・ポートのSD(2)に1を書き込むと、ビデ
オ制御装置56がビデオ信号の生成を止める。同様に、
パワー・マネージメント・ポートのSD(2)に0を書
き込むと、ビデオ制御装置56がビデオ信号を生成でき
るようになる。
【0101】同じく前述のように、SD(1)とSD
(0)は、タンデム構成で機能し、002、012、10
2、112という4通りの動作状態を提供する。第2のP
ALU2は、RESETDRV入力により002状態に
初期設定される。この状態の間にスイッチ21を押す
と、単に電源17が「オフ」になるだけである。コード
実行の所与の時点でユーザがそのように希望する場合、
ソフトウェアは、パワー・マネージメント・ポートにX
XXXXX012を書き込んで、第2のPALU2が0
12状態に入るようにする。この012状態は通常APM
状態である。各APMの「事象獲得」中、スーパバイザ
・ルーチンは、非活動待機タイマまたは非活動サスペン
ド・タイマのいずれかが時間切れになったかどうかを確
認するために検査する。非活動待機タイマが時間切れに
なった場合、スーパバイザ・ルーチンは入出力ポートに
XXXXX1XX2を書き込み、これがビデオ信号をブ
ランクにする。コンピュータが待機状態を出て、もう一
度通常動作状態に入る場合、スーパバイザ・ルーチンは
入出力ポートにXXXXX0XX2を書き込み、これに
より、ビデオ制御装置56がビデオ信号を生成する。非
活動サスペンド・タイマが時間切れになった場合、スー
パバイザ・ルーチンはサスペンド・ルーチンを呼び出
す。このルーチンについては、図12〜16に付随する
本文でさらに詳述する。
(0)は、タンデム構成で機能し、002、012、10
2、112という4通りの動作状態を提供する。第2のP
ALU2は、RESETDRV入力により002状態に
初期設定される。この状態の間にスイッチ21を押す
と、単に電源17が「オフ」になるだけである。コード
実行の所与の時点でユーザがそのように希望する場合、
ソフトウェアは、パワー・マネージメント・ポートにX
XXXXX012を書き込んで、第2のPALU2が0
12状態に入るようにする。この012状態は通常APM
状態である。各APMの「事象獲得」中、スーパバイザ
・ルーチンは、非活動待機タイマまたは非活動サスペン
ド・タイマのいずれかが時間切れになったかどうかを確
認するために検査する。非活動待機タイマが時間切れに
なった場合、スーパバイザ・ルーチンは入出力ポートに
XXXXX1XX2を書き込み、これがビデオ信号をブ
ランクにする。コンピュータが待機状態を出て、もう一
度通常動作状態に入る場合、スーパバイザ・ルーチンは
入出力ポートにXXXXX0XX2を書き込み、これに
より、ビデオ制御装置56がビデオ信号を生成する。非
活動サスペンド・タイマが時間切れになった場合、スー
パバイザ・ルーチンはサスペンド・ルーチンを呼び出
す。このルーチンについては、図12〜16に付随する
本文でさらに詳述する。
【0102】さらに、各APMの「事象獲得」中、スー
パバイザ・ルーチンはパワー・マネージメント・ポート
を読み取る。0FFHが返される場合、スイッチ21は
押されていない。これに対して、0FEHが返される場
合は、スイッチ21が押されており、コンピュータ・シ
ステムはサスペンド・ルーチンを開始する。このルーチ
ンについては、図12〜16に付随する本文でさらに詳
述する。スイッチ21が押された場合、あるいは非活動
サスペンド・タイマが時間切れになった場合、フェール
セーフ・タイマが始動されており、C2が充電中であ
る。したがって、フェールセーフ・タイマが電源17を
オフにしないようにするため、サスペンド・ルーチンは
入出力ポートにXXXXXX112を書き込んでタイマ
をリセットし、次にただちに入出力ポートにXXXXX
X012を書き込んで012モードでレジュームする。シ
ステムがサスペンドされると、サスペンド・ルーチンは
入出力ポートにXXXXXX112を書き込んで、ただ
ちに電源17を「オフ」にする。
パバイザ・ルーチンはパワー・マネージメント・ポート
を読み取る。0FFHが返される場合、スイッチ21は
押されていない。これに対して、0FEHが返される場
合は、スイッチ21が押されており、コンピュータ・シ
ステムはサスペンド・ルーチンを開始する。このルーチ
ンについては、図12〜16に付随する本文でさらに詳
述する。スイッチ21が押された場合、あるいは非活動
サスペンド・タイマが時間切れになった場合、フェール
セーフ・タイマが始動されており、C2が充電中であ
る。したがって、フェールセーフ・タイマが電源17を
オフにしないようにするため、サスペンド・ルーチンは
入出力ポートにXXXXXX112を書き込んでタイマ
をリセットし、次にただちに入出力ポートにXXXXX
X012を書き込んで012モードでレジュームする。シ
ステムがサスペンドされると、サスペンド・ルーチンは
入出力ポートにXXXXXX112を書き込んで、ただ
ちに電源17を「オフ」にする。
【0103】システム・ソフトウェア
本発明のコンピュータ・システム10の各種ハードウェ
ア態様について説明してきたが、コード態様の説明が残
っている。
ア態様について説明してきたが、コード態様の説明が残
っている。
【0104】次に図10を参照すると、同図には、電源
投入ルーチンの概要が示されている。このルーチンは2
00から始まり、そこでCPUはリセット・ベクトルが
指し示すコードまでジャンプして、それを実行する。こ
れは、CPUが電源投入されるたびに、ならびにリセッ
ト・ハードウェア信号によるかまたはリセット・ベクト
ルが指し示すコードまでジャンプすることによってRE
SET命令が実行されたときにCPUがリセットされる
と必ず行われる。このようなリセット手順は当技術分野
では周知である。
投入ルーチンの概要が示されている。このルーチンは2
00から始まり、そこでCPUはリセット・ベクトルが
指し示すコードまでジャンプして、それを実行する。こ
れは、CPUが電源投入されるたびに、ならびにリセッ
ト・ハードウェア信号によるかまたはリセット・ベクト
ルが指し示すコードまでジャンプすることによってRE
SET命令が実行されたときにCPUがリセットされる
と必ず行われる。このようなリセット手順は当技術分野
では周知である。
【0105】一般に、電源投入ルーチンの流れは、シス
テムがオフ状態156になっているかまたはサスペンド
状態154になっているかによって決まる。すなわち、
それぞれ、CMOS NVRAM96でサスペンド・フ
ラグがクリアされているか、設定されているかである。
202に示すように、システム10は、不揮発性CMO
Sメモリ96からサスペンド・フラグを読み取ることに
より、それがオフ状態156になっているかまたはサス
ペンド状態154になっているかを判定する。システム
が通常動作状態150を出て、オフ状態156またはサ
スペンド状態154のいずれかに入ると、それぞれのル
ーチンは、NVRAM96にサスペンド・フラグをSE
TするかまたはCLEARする。NVRAM96にサス
ペンド・フラグがSETされると、コンピュータ・シス
テム10はサスペンド状態154になり、コンピュータ
・システム10の状態は固定ディスク記憶装置31に格
納されている。これに対して、NVRAM96でサスペ
ンド・フラグがCLEARされると、コンピュータ・シ
ステム10はオフ状態156になり、コンピュータ・シ
ステム10の状態は固定ディスク記憶装置31に格納さ
れていない。したがって、NVRAM96にサスペンド
・フラグがSETされると、コンピュータは、タスク2
04〜210に示す「通常」ブート・ルーチンを実行す
る。第1のタスクは204に示すように電源オン自己検
査(POST)であるが、これについては、図17〜1
8に付随する本文でさらに詳述する。POSTから復帰
後、CPU40は、206に示すようにPBOOTルー
チンを呼び出してオペレーティング・システムをロード
する。
テムがオフ状態156になっているかまたはサスペンド
状態154になっているかによって決まる。すなわち、
それぞれ、CMOS NVRAM96でサスペンド・フ
ラグがクリアされているか、設定されているかである。
202に示すように、システム10は、不揮発性CMO
Sメモリ96からサスペンド・フラグを読み取ることに
より、それがオフ状態156になっているかまたはサス
ペンド状態154になっているかを判定する。システム
が通常動作状態150を出て、オフ状態156またはサ
スペンド状態154のいずれかに入ると、それぞれのル
ーチンは、NVRAM96にサスペンド・フラグをSE
TするかまたはCLEARする。NVRAM96にサス
ペンド・フラグがSETされると、コンピュータ・シス
テム10はサスペンド状態154になり、コンピュータ
・システム10の状態は固定ディスク記憶装置31に格
納されている。これに対して、NVRAM96でサスペ
ンド・フラグがCLEARされると、コンピュータ・シ
ステム10はオフ状態156になり、コンピュータ・シ
ステム10の状態は固定ディスク記憶装置31に格納さ
れていない。したがって、NVRAM96にサスペンド
・フラグがSETされると、コンピュータは、タスク2
04〜210に示す「通常」ブート・ルーチンを実行す
る。第1のタスクは204に示すように電源オン自己検
査(POST)であるが、これについては、図17〜1
8に付随する本文でさらに詳述する。POSTから復帰
後、CPU40は、206に示すようにPBOOTルー
チンを呼び出してオペレーティング・システムをロード
する。
【0106】PBOOTルーチンは、以下に説明するわ
ずかな変形態様を含み、IBM PS/2コンピュータ
上で動作する典型的なルーチンである。PBOOTは、
どこから(ハード・ドライブ31からまたはフロッピー
・ドライブ27内のディスクから)ブートするかを判定
し、オペレーティング・システムをロードし、CONFIG.S
YSファイルの命令通りにシステム変更を実施し、最後
に、オペレーティング・システムに制御を返す前にAUTO
EXEC.BATファイルを実行する。PBOOTルーチンは当
技術分野では周知である。しかし、ブート・ルーチンが
オペレーティング・システムに組み込まれた拡張パワー
・マネージメント(APM)の拡張プログラミング・イ
ンタフェース(API)とやりとりする点は、本発明の
コンピュータ・システム10に固有のものである。AP
M APIはインテル社とマイクロソフト社によって開
発されたが、現在では、IBMのOS/2、IBMのP
C−DOS、マイクロソフト社のMS−DOS、マイク
ロソフト社のWindowsなど、多くのオペレーティング・
システムがAPM APIを実現している。APMのB
IOSブート・ルーチンは、スーパバイザ・ルーチンの
存在をAPMのOSに通知する。オペレーティング・シ
ステムは、210に示すようにユーザの命令通りにコー
ドを無限に実行する。しかし、APIにスーパバイザ・
ルーチンを通知した結果、APM BIOSとAPM
OSにより、スーパバイザ・ルーチンは212に示すよ
うに実行中のプログラムと「並列」に実行される。すな
わち、システム10は時間多重化マルチタスク・システ
ムであり、APMの事象獲得とその結果のスーパバイザ
・ルーチンが定期的に実行される。最終結果として、ス
ーパバイザ・ルーチンが約1秒ごとに実行される。スー
パバイザ・ルーチンについては、図11に付随する本文
で詳述する。通常ブート・ルーチン204〜210の終
了後、コンピュータ・システム10は、図5に付随する
本文で説明したように通常動作状態150になる。
ずかな変形態様を含み、IBM PS/2コンピュータ
上で動作する典型的なルーチンである。PBOOTは、
どこから(ハード・ドライブ31からまたはフロッピー
・ドライブ27内のディスクから)ブートするかを判定
し、オペレーティング・システムをロードし、CONFIG.S
YSファイルの命令通りにシステム変更を実施し、最後
に、オペレーティング・システムに制御を返す前にAUTO
EXEC.BATファイルを実行する。PBOOTルーチンは当
技術分野では周知である。しかし、ブート・ルーチンが
オペレーティング・システムに組み込まれた拡張パワー
・マネージメント(APM)の拡張プログラミング・イ
ンタフェース(API)とやりとりする点は、本発明の
コンピュータ・システム10に固有のものである。AP
M APIはインテル社とマイクロソフト社によって開
発されたが、現在では、IBMのOS/2、IBMのP
C−DOS、マイクロソフト社のMS−DOS、マイク
ロソフト社のWindowsなど、多くのオペレーティング・
システムがAPM APIを実現している。APMのB
IOSブート・ルーチンは、スーパバイザ・ルーチンの
存在をAPMのOSに通知する。オペレーティング・シ
ステムは、210に示すようにユーザの命令通りにコー
ドを無限に実行する。しかし、APIにスーパバイザ・
ルーチンを通知した結果、APM BIOSとAPM
OSにより、スーパバイザ・ルーチンは212に示すよ
うに実行中のプログラムと「並列」に実行される。すな
わち、システム10は時間多重化マルチタスク・システ
ムであり、APMの事象獲得とその結果のスーパバイザ
・ルーチンが定期的に実行される。最終結果として、ス
ーパバイザ・ルーチンが約1秒ごとに実行される。スー
パバイザ・ルーチンについては、図11に付随する本文
で詳述する。通常ブート・ルーチン204〜210の終
了後、コンピュータ・システム10は、図5に付随する
本文で説明したように通常動作状態150になる。
【0107】もう一度タスク202を参照すると、NV
RAM96にサスペンド・フラグがSETされている場
合、システム状態はハード・ドライブ31に保管されて
おり、システム10はタスク214〜220に示すレジ
ューム・ブート・ルーチンを実行する。第1にシステム
は、214に示すように簡略POSTを実行する。簡略
POSTについては、図17〜18に付随する本文でさ
らに詳述する。簡略POSTの後、システムは216に
示すようにレジューム・ルーチンを呼び出す。レジュー
ム・ルーチンについては、図19〜22に付随する本文
で詳述する。ここでは、レジューム・ルーチンは、コン
ピュータ・システム10の状態をシステム10をサスペ
ンドする前のその構成に復元すると言えば十分である。
タスク204〜210に示す通常ブート・ルーチンとは
異なり、レジューム・ブート・ルーチンでは、スーパバ
イザ・ルーチンの存在をAPM APIに通知する必要
がない。というのは、システムをサスペンドするために
すでにAPMルーチンが実行されていなければならず、
システム状態を復元したときにAPMがメモリに戻され
るからである。したがって、レジューム・ルーチンがシ
ステム10の状態の復元を終了すると、APMはすでに
所定の位置にあり、212および220に示すように復
元したコードと「並列」に実行されている。レジューム
・ブート・ルーチン214〜220の終了後、コンピュ
ータ・システム10は、図5に付随するテキストで説明
したように通常動作状態150になっている。したがっ
て、通常ブート・ルーチン204〜210またはレジュ
ーム・ブート・ルーチン214〜220のいずれかを実
行した後、コンピュータ・システム10は通常動作状態
150になる。
RAM96にサスペンド・フラグがSETされている場
合、システム状態はハード・ドライブ31に保管されて
おり、システム10はタスク214〜220に示すレジ
ューム・ブート・ルーチンを実行する。第1にシステム
は、214に示すように簡略POSTを実行する。簡略
POSTについては、図17〜18に付随する本文でさ
らに詳述する。簡略POSTの後、システムは216に
示すようにレジューム・ルーチンを呼び出す。レジュー
ム・ルーチンについては、図19〜22に付随する本文
で詳述する。ここでは、レジューム・ルーチンは、コン
ピュータ・システム10の状態をシステム10をサスペ
ンドする前のその構成に復元すると言えば十分である。
タスク204〜210に示す通常ブート・ルーチンとは
異なり、レジューム・ブート・ルーチンでは、スーパバ
イザ・ルーチンの存在をAPM APIに通知する必要
がない。というのは、システムをサスペンドするために
すでにAPMルーチンが実行されていなければならず、
システム状態を復元したときにAPMがメモリに戻され
るからである。したがって、レジューム・ルーチンがシ
ステム10の状態の復元を終了すると、APMはすでに
所定の位置にあり、212および220に示すように復
元したコードと「並列」に実行されている。レジューム
・ブート・ルーチン214〜220の終了後、コンピュ
ータ・システム10は、図5に付随するテキストで説明
したように通常動作状態150になっている。したがっ
て、通常ブート・ルーチン204〜210またはレジュ
ーム・ブート・ルーチン214〜220のいずれかを実
行した後、コンピュータ・システム10は通常動作状態
150になる。
【0108】図11は、「事象獲得」中に約1秒ごとに
APMによって呼び出されるスーパバイザ・ルーチンの
詳細を示す流れ図である。事象獲得は、様々なオペレー
ティング・システムによって色々な頻度で実行される。
APMによって呼び出されるスーパバイザ・ルーチンの
詳細を示す流れ図である。事象獲得は、様々なオペレー
ティング・システムによって色々な頻度で実行される。
【0109】スーパバイザ・ルーチンは、図11の22
2から始まる。以下の本文では、コンピュータ・システ
ム10が通常動作状態150で始動するものと想定して
いる。224の第1のタスクは、ユーザがスイッチ21
を押したかどうかをテストすることである。図7〜9に
付随する本文で詳述したように、スイッチ21はパワー
・マネージメント・ポート・バイトを読み取ることによ
ってテストされる。第2のPAL U2がスイッチ状態
012になっている間に読み取ると、パワー・マネージ
メント・ポートは、スイッチ21が押されていなければ
FFHを返し、スイッチが押されていればFEHを返
す。
2から始まる。以下の本文では、コンピュータ・システ
ム10が通常動作状態150で始動するものと想定して
いる。224の第1のタスクは、ユーザがスイッチ21
を押したかどうかをテストすることである。図7〜9に
付随する本文で詳述したように、スイッチ21はパワー
・マネージメント・ポート・バイトを読み取ることによ
ってテストされる。第2のPAL U2がスイッチ状態
012になっている間に読み取ると、パワー・マネージ
メント・ポートは、スイッチ21が押されていなければ
FFHを返し、スイッチが押されていればFEHを返
す。
【0110】224のテストにより、ユーザがスイッチ
21を押したことが示されると、スーパバイザ・ルーチ
ンは、226で「サスペンド要求」APM戻りコードを
SETし、次に228でAPMに戻る。「サスペンド要
求」APM戻りコードのSETに応答して、APMは必
要なシステム・タスク(ハード・ディスクの同期化な
ど)をすべて実行し、次に「サスペンド・コマンド」を
出し、これにより、APM BIOS経路指定ルーチン
がサスペンド・ルーチンを呼び出す。サスペンド・ルー
チンについては、図12〜16に付随する本文で説明す
る。本質的にサスペンド・ルーチンは、システム10を
通常動作状態150から出してサスペンド状態154に
するものであり、複数の命令の後(システムがサスペン
ド可能な状態になっていない場合)または数分後、数時
間後、数日後、数週間後、数年後(システムがサスペン
ドされレジュームされた場合)にスーパバイザ・ルーチ
ンに制御権を返すことができる。サスペンド・ルーチン
がサスペンドせずに復帰するかまたは完全なサスペンド
/レジューム後に復帰するかにかかわらず、サスペンド
・ルーチンは必ず「通常サスペンド」APM戻りコード
をSETする。
21を押したことが示されると、スーパバイザ・ルーチ
ンは、226で「サスペンド要求」APM戻りコードを
SETし、次に228でAPMに戻る。「サスペンド要
求」APM戻りコードのSETに応答して、APMは必
要なシステム・タスク(ハード・ディスクの同期化な
ど)をすべて実行し、次に「サスペンド・コマンド」を
出し、これにより、APM BIOS経路指定ルーチン
がサスペンド・ルーチンを呼び出す。サスペンド・ルー
チンについては、図12〜16に付随する本文で説明す
る。本質的にサスペンド・ルーチンは、システム10を
通常動作状態150から出してサスペンド状態154に
するものであり、複数の命令の後(システムがサスペン
ド可能な状態になっていない場合)または数分後、数時
間後、数日後、数週間後、数年後(システムがサスペン
ドされレジュームされた場合)にスーパバイザ・ルーチ
ンに制御権を返すことができる。サスペンド・ルーチン
がサスペンドせずに復帰するかまたは完全なサスペンド
/レジューム後に復帰するかにかかわらず、サスペンド
・ルーチンは必ず「通常サスペンド」APM戻りコード
をSETする。
【0111】多くの場合、スイッチ21は押されておら
ず、スーパバイザ・ルーチンはタスク230に移行し
て、システムがレジュームしたばかりであるかどうかを
検査する。サスペンド・ルーチンが呼び出された場合、
サスペンド・ルーチンがサスペンドせずに復帰するかま
たは完全なサスペンド/レジューム後に復帰するかにか
かわらず、システムはそれがレジュームされていると見
なす。230でレジュームがテストされ、システムがレ
ジュームしたばかりである(またはファイル活動のDM
Aのためにサスペンドが実行されていない)場合、23
2で「通常レジューム」APM戻りコードが設定され、
234でそれがAPMに返される。これに応答して、A
PM OSドライバはシステム・クロックと、その間に
古くなった可能性のあるその他の値を更新する。
ず、スーパバイザ・ルーチンはタスク230に移行し
て、システムがレジュームしたばかりであるかどうかを
検査する。サスペンド・ルーチンが呼び出された場合、
サスペンド・ルーチンがサスペンドせずに復帰するかま
たは完全なサスペンド/レジューム後に復帰するかにか
かわらず、システムはそれがレジュームされていると見
なす。230でレジュームがテストされ、システムがレ
ジュームしたばかりである(またはファイル活動のDM
Aのためにサスペンドが実行されていない)場合、23
2で「通常レジューム」APM戻りコードが設定され、
234でそれがAPMに返される。これに応答して、A
PM OSドライバはシステム・クロックと、その間に
古くなった可能性のあるその他の値を更新する。
【0112】多くの場合、システム10はレジュームし
たばかりではなく、スーパバイザ・ルーチンはタスク2
36に移行して、ユーザ活動の有無をテストする。タス
ク236では、ハードファイル31活動、キーボード1
2活動、マウス13活動という3通りのタイプのユーザ
活動がテストされる。APMの事象獲得ごとに、スーパ
バイザ・ルーチンはハードファイルのヘッド、シリン
ダ、セクタの値を読み取り、最後に送られたマウス13
バイト用の1バイト値(垂直位置である)を読み取り、
キーボード・ポートの1バイト値(最後に押されたキー
である)を読み取り、リアルタイム・クロック98から
の分値を読み取る。この分値は、0分〜59分の範囲で
あり、毎時間の始まりで0分に折り返す。5つの活動変
数(ヘッド、シリンダ、セクタ、マウス・バイト、キー
ボード・バイト)と分値が一時的に格納される。次に5
つの活動変数が前の事象獲得から保管された5つの活動
変数と比較される。5つの現行値が前の事象獲得からの
5つの値と同じである場合、ユーザ活動は一切行われて
いない。両者の値が異なる場合、ユーザ活動が行われて
おり、次の事象獲得中に読み取る値との比較のために、
現行活動変数値が保管される。
たばかりではなく、スーパバイザ・ルーチンはタスク2
36に移行して、ユーザ活動の有無をテストする。タス
ク236では、ハードファイル31活動、キーボード1
2活動、マウス13活動という3通りのタイプのユーザ
活動がテストされる。APMの事象獲得ごとに、スーパ
バイザ・ルーチンはハードファイルのヘッド、シリン
ダ、セクタの値を読み取り、最後に送られたマウス13
バイト用の1バイト値(垂直位置である)を読み取り、
キーボード・ポートの1バイト値(最後に押されたキー
である)を読み取り、リアルタイム・クロック98から
の分値を読み取る。この分値は、0分〜59分の範囲で
あり、毎時間の始まりで0分に折り返す。5つの活動変
数(ヘッド、シリンダ、セクタ、マウス・バイト、キー
ボード・バイト)と分値が一時的に格納される。次に5
つの活動変数が前の事象獲得から保管された5つの活動
変数と比較される。5つの現行値が前の事象獲得からの
5つの値と同じである場合、ユーザ活動は一切行われて
いない。両者の値が異なる場合、ユーザ活動が行われて
おり、次の事象獲得中に読み取る値との比較のために、
現行活動変数値が保管される。
【0113】上記の活動検出方式は、ルーチンがCPU
上で実行されるようなものである。あるいは、ハードウ
ェア方式で活動を監視することもできる。たとえば、1
6本のハードウェア割込み線について、活動の有無を監
視することができる。
上で実行されるようなものである。あるいは、ハードウ
ェア方式で活動を監視することもできる。たとえば、1
6本のハードウェア割込み線について、活動の有無を監
視することができる。
【0114】活動が行われた場合、スーパバイザ・ルー
チンは、238で待機フラグをテストすることにより、
コンピュータ・システム10が待機状態152になって
いるかどうかを次に判定する。待機フラグがSETされ
ている場合、システム10が待機状態152になってい
ることを示し、スーパバイザ・ルーチンは240で待機
状態152を出て、通常動作状態150に入る。スーパ
バイザ・ルーチンは、待機状態152に入ったときに電
源が遮断された装置の電源を再度投入することにより、
待機状態152から出る。好ましい実施例では、これは
(1)パワー・マネージメント・ポートに01Hを書き
込み、それにより、第2のPAL U2を012状態の
ままにしながら、ビデオ制御装置56がビデオ信号の生
成を開始することと、(2)固定ディスク制御装置86
に適当な値を書き込んで、ハード・ドライブ31内のハ
ード・ディスクの回転を停止することと、(3)待機フ
ラグをクリアして、システム10が通常動作状態150
になっていることを示すこととを含む。
チンは、238で待機フラグをテストすることにより、
コンピュータ・システム10が待機状態152になって
いるかどうかを次に判定する。待機フラグがSETされ
ている場合、システム10が待機状態152になってい
ることを示し、スーパバイザ・ルーチンは240で待機
状態152を出て、通常動作状態150に入る。スーパ
バイザ・ルーチンは、待機状態152に入ったときに電
源が遮断された装置の電源を再度投入することにより、
待機状態152から出る。好ましい実施例では、これは
(1)パワー・マネージメント・ポートに01Hを書き
込み、それにより、第2のPAL U2を012状態の
ままにしながら、ビデオ制御装置56がビデオ信号の生
成を開始することと、(2)固定ディスク制御装置86
に適当な値を書き込んで、ハード・ドライブ31内のハ
ード・ディスクの回転を停止することと、(3)待機フ
ラグをクリアして、システム10が通常動作状態150
になっていることを示すこととを含む。
【0115】さらに、活動が行われた場合、後続の事象
獲得中に読み取る分値との比較のために、リアルタイム
・クロック98からの分値も保管される。現行分値を保
管すると、241で非活動待機タイマと非活動サスペン
ド・タイマが効果的にリセットされる。通常使用中は、
ユーザ活動が行われるので、スーパバイザ・ルーチンは
242で「事象なし」APM戻りコードをSETし、2
43でAPM呼出しコードに戻る。APMは、「事象な
し」戻りコードに応答してそれ以上ルーチンを呼び出す
ことはない。
獲得中に読み取る分値との比較のために、リアルタイム
・クロック98からの分値も保管される。現行分値を保
管すると、241で非活動待機タイマと非活動サスペン
ド・タイマが効果的にリセットされる。通常使用中は、
ユーザ活動が行われるので、スーパバイザ・ルーチンは
242で「事象なし」APM戻りコードをSETし、2
43でAPM呼出しコードに戻る。APMは、「事象な
し」戻りコードに応答してそれ以上ルーチンを呼び出す
ことはない。
【0116】タスク236のテストにより、ユーザ活動
が一切行われなかったことが示されると、次にスーパバ
イザ・ルーチンは、それぞれ245と247で非活動待
機タイマと非活動サスペンド・タイマが時間切れになっ
たかどうかをテストする。システム10が待機状態15
2になっている場合、非活動待機タイマの時間切れは検
査されない。むしろ、タスク244のテストがスキップ
される。
が一切行われなかったことが示されると、次にスーパバ
イザ・ルーチンは、それぞれ245と247で非活動待
機タイマと非活動サスペンド・タイマが時間切れになっ
たかどうかをテストする。システム10が待機状態15
2になっている場合、非活動待機タイマの時間切れは検
査されない。むしろ、タスク244のテストがスキップ
される。
【0117】2つのタイマの時間切れは、保管されてい
る分値から現行分値を差し引いて、ユーザ活動が行われ
てからの分数に対応する値を求めることによって検査さ
れる。この値は、245で非活動待機タイムアウト値と
比較され、247で非活動サスペンド・タイムアウト値
と比較される。2つのタイムアウト値はユーザが選択可
能であり、一方のタイマの時間切れによりシステムが決
して待機状態152に入らないように、決してサスペン
ド状態154に入らないように、または決して待機状態
152またはサスペンド状態154のいずれにも入らな
いように設定することができる。いずれかのタイムアウ
ト値をゼロ(0)に設定することは、タイマが決して時
間切れになってはならないことを意味する。
る分値から現行分値を差し引いて、ユーザ活動が行われ
てからの分数に対応する値を求めることによって検査さ
れる。この値は、245で非活動待機タイムアウト値と
比較され、247で非活動サスペンド・タイムアウト値
と比較される。2つのタイムアウト値はユーザが選択可
能であり、一方のタイマの時間切れによりシステムが決
して待機状態152に入らないように、決してサスペン
ド状態154に入らないように、または決して待機状態
152またはサスペンド状態154のいずれにも入らな
いように設定することができる。いずれかのタイムアウ
ト値をゼロ(0)に設定することは、タイマが決して時
間切れになってはならないことを意味する。
【0118】最後のユーザ活動以降の分数が非活動待機
タイムアウト値と等しいかそれより大きい場合、スーパ
バイザ・ルーチンは、246でシステム10を待機状態
152にする。非活動待機タイマが時間切れになってい
ない場合、次にスーパバイザ・ルーチンは、247で非
活動サスペンド・タイマの時間切れをテストする。これ
に対して、非活動待機タイマが時間切れになった場合、
スーパバイザ・ルーチンは、所与の構成要素をそれぞれ
の低電力モードにすることにより、システム10を待機
状態152にする。好ましい実施例では、これは(1)
パワー・マネージメント・ポートに05Hを書き込み、
それにより、第2のPAL U2を012状態のままに
しながら、ビデオ制御装置56がビデオ信号の生成を停
止することと、(2)固定ディスク制御装置86に適当
な値を書き込んで、ハード・ドライブ31を低電力モー
ドにする(ハード・ドライブ内のハード・ディスクの回
転を停止する)ことと、(3)待機フラグを設定して、
システム10が待機状態152になっていることを示す
こととを含む。すなわち、好ましい実施例のスーパバイ
ザ・ルーチンは、ビデオ信号をブランクにし、ハード・
ドライブ31内のハード・ディスクの回転を低下させ、
システム10が待機状態152になっていることを示す
フラグを設定する。システム10を待機状態152にし
た後、スーパバイザ・ルーチンは247で非活動サスペ
ンド・タイマの時間切れをテストする。
タイムアウト値と等しいかそれより大きい場合、スーパ
バイザ・ルーチンは、246でシステム10を待機状態
152にする。非活動待機タイマが時間切れになってい
ない場合、次にスーパバイザ・ルーチンは、247で非
活動サスペンド・タイマの時間切れをテストする。これ
に対して、非活動待機タイマが時間切れになった場合、
スーパバイザ・ルーチンは、所与の構成要素をそれぞれ
の低電力モードにすることにより、システム10を待機
状態152にする。好ましい実施例では、これは(1)
パワー・マネージメント・ポートに05Hを書き込み、
それにより、第2のPAL U2を012状態のままに
しながら、ビデオ制御装置56がビデオ信号の生成を停
止することと、(2)固定ディスク制御装置86に適当
な値を書き込んで、ハード・ドライブ31を低電力モー
ドにする(ハード・ドライブ内のハード・ディスクの回
転を停止する)ことと、(3)待機フラグを設定して、
システム10が待機状態152になっていることを示す
こととを含む。すなわち、好ましい実施例のスーパバイ
ザ・ルーチンは、ビデオ信号をブランクにし、ハード・
ドライブ31内のハード・ディスクの回転を低下させ、
システム10が待機状態152になっていることを示す
フラグを設定する。システム10を待機状態152にし
た後、スーパバイザ・ルーチンは247で非活動サスペ
ンド・タイマの時間切れをテストする。
【0119】スーパバイザ・ルーチンは、247で非活
動サスペンド・タイマが時間切れになっているかどうか
をテストする。最後のユーザ活動以降の分数が非活動サ
スペンド・タイムアウト値と等しいかそれより大きい場
合、スーパバイザ・ルーチンは248で「サスペンド要
求」APM戻りコードをSETし、次に243でAPM
に戻る。タスク226に付随する本文で前述したよう
に、「サスペンド要求」APM戻りコードのSETに応
答して、APMは必要なシステム・タスクをすべて実行
し、次にサスペンド・ルーチンを呼び出す。サスペンド
・ルーチンについては、図12〜16に付随する本文で
さらに詳述するが、簡単に説明すると、システム10を
通常動作状態150から出して、サスペンド状態154
にするものである。タスク226に付随する本文で述べ
たように、サスペンド・ルーチンは、システム10をサ
スペンドするか否かにかかわらず、スーパバイザ・ルー
チンに制御権を返すことができる。これに対して、非活
動サスペンド・タイマが時間切れになっていない場合、
スーパバイザ・ルーチンは、242で「事象なし」AP
M戻りコードをSETし、243でAPM呼出しコード
に戻る。
動サスペンド・タイマが時間切れになっているかどうか
をテストする。最後のユーザ活動以降の分数が非活動サ
スペンド・タイムアウト値と等しいかそれより大きい場
合、スーパバイザ・ルーチンは248で「サスペンド要
求」APM戻りコードをSETし、次に243でAPM
に戻る。タスク226に付随する本文で前述したよう
に、「サスペンド要求」APM戻りコードのSETに応
答して、APMは必要なシステム・タスクをすべて実行
し、次にサスペンド・ルーチンを呼び出す。サスペンド
・ルーチンについては、図12〜16に付随する本文で
さらに詳述するが、簡単に説明すると、システム10を
通常動作状態150から出して、サスペンド状態154
にするものである。タスク226に付随する本文で述べ
たように、サスペンド・ルーチンは、システム10をサ
スペンドするか否かにかかわらず、スーパバイザ・ルー
チンに制御権を返すことができる。これに対して、非活
動サスペンド・タイマが時間切れになっていない場合、
スーパバイザ・ルーチンは、242で「事象なし」AP
M戻りコードをSETし、243でAPM呼出しコード
に戻る。
【0120】多くの場合、「事象なし」APM戻りコー
ドがAPMに返されるが、APMには他にも様々な事象
が返される可能性がある。しかし、各APM事象獲得ご
とに指定できるAPM戻りコードは1つだけである。た
とえば、待機状態152に入った後は、「事象なし」が
APMに返される。サスペンド状態154を出た後は、
「通常サスペンド」APM戻りコードがAPMに返され
る。APM用に待ち行列化される具体的なメッセージ
は、コンピュータ・システムの正確な特性によって決ま
る。また、スーパバイザ・ルーチンは、「通常レジュー
ム」APM戻りコードまたは「サスペンド要求」APM
戻りコードも返す。
ドがAPMに返されるが、APMには他にも様々な事象
が返される可能性がある。しかし、各APM事象獲得ご
とに指定できるAPM戻りコードは1つだけである。た
とえば、待機状態152に入った後は、「事象なし」が
APMに返される。サスペンド状態154を出た後は、
「通常サスペンド」APM戻りコードがAPMに返され
る。APM用に待ち行列化される具体的なメッセージ
は、コンピュータ・システムの正確な特性によって決ま
る。また、スーパバイザ・ルーチンは、「通常レジュー
ム」APM戻りコードまたは「サスペンド要求」APM
戻りコードも返す。
【0121】電源投入ルーチンとレジューム・ルーチン
については、サスペンド・ルーチンを知っていると最も
よく理解することができる。したがって、APM BI
OSルーチンの説明を次の順序で検討することが最もよ
いと思われる。すなわち、本発明の電源投入ルーチンの
概要(上記の図10)、スーパバイザ・ルーチンの詳細
(図11)、本発明のサスペンド・ルーチンの詳細(図
12〜16)、本発明の電源投入プロセスの詳細(図1
7〜18)、本発明のレジューム・ルーチンの詳細(図
19〜22)、CPU状態保管ルーチンの詳細(図23
〜26)、CPU状態復元ルーチンの詳細(図27〜3
0)、8259状態保管ルーチンの詳細(図31〜3
3)の順である。
については、サスペンド・ルーチンを知っていると最も
よく理解することができる。したがって、APM BI
OSルーチンの説明を次の順序で検討することが最もよ
いと思われる。すなわち、本発明の電源投入ルーチンの
概要(上記の図10)、スーパバイザ・ルーチンの詳細
(図11)、本発明のサスペンド・ルーチンの詳細(図
12〜16)、本発明の電源投入プロセスの詳細(図1
7〜18)、本発明のレジューム・ルーチンの詳細(図
19〜22)、CPU状態保管ルーチンの詳細(図23
〜26)、CPU状態復元ルーチンの詳細(図27〜3
0)、8259状態保管ルーチンの詳細(図31〜3
3)の順である。
【0122】ほとんどのルーチンが他のルーチンとやり
とりし、しかもサスペンド/レジューム・プロセスが1
つの連続サイクルになっているので、本発明のコンピュ
ータ・システム10の説明はいくらか循環的であるが、
ブート・ルーチン(図17〜18)またはレジューム・
ルーチン(図19〜22)の前にサスペンド・ルーチン
(図12〜16)を説明する方が最も役に立つと思われ
る。次に図12〜16を参照すると、同図には、サスペ
ンド・ルーチンの流れ図が示されている。通常ブート・
ルーチン204〜210またはレジューム・ブート・ル
ーチン214〜220のいずれかが行われた後、コンピ
ュータ・システム10が通常動作状態150になってい
ることに留意されたい。さらに、図10に付随する本文
で前述したように、コンピュータ・システムが通常ブー
ト204〜210したかまたはレジューム・ブート21
4〜220したかにかかわらず、いずれかのルーチンが
終了すると、APM OSドライバは、図10に示すス
ーパバイザ・ルーチンなどのAPM BIOSルーチン
を認識する。その結果、APMは約1秒ごとにスーパバ
イザ・ルーチンをポーリングする。
とりし、しかもサスペンド/レジューム・プロセスが1
つの連続サイクルになっているので、本発明のコンピュ
ータ・システム10の説明はいくらか循環的であるが、
ブート・ルーチン(図17〜18)またはレジューム・
ルーチン(図19〜22)の前にサスペンド・ルーチン
(図12〜16)を説明する方が最も役に立つと思われ
る。次に図12〜16を参照すると、同図には、サスペ
ンド・ルーチンの流れ図が示されている。通常ブート・
ルーチン204〜210またはレジューム・ブート・ル
ーチン214〜220のいずれかが行われた後、コンピ
ュータ・システム10が通常動作状態150になってい
ることに留意されたい。さらに、図10に付随する本文
で前述したように、コンピュータ・システムが通常ブー
ト204〜210したかまたはレジューム・ブート21
4〜220したかにかかわらず、いずれかのルーチンが
終了すると、APM OSドライバは、図10に示すス
ーパバイザ・ルーチンなどのAPM BIOSルーチン
を認識する。その結果、APMは約1秒ごとにスーパバ
イザ・ルーチンをポーリングする。
【0123】サスペンド・ルーチンは図12〜16に示
されているが、250から始まる。サスペンド・ルーチ
ンは、スーパバイザ・ルーチンが「サスペンド要求」A
PM戻りコードをAPMに返したことに対する応答とし
て、APMによって呼び出される。まず、252に示す
ように、CPU状態保管ルーチンが呼び出される。CP
U状態保管ルーチンについては、図23〜26に付随す
る本文で詳述する。ここでは、サスペンド・ルーチンが
最初に呼び出されたときにCPU40がどのモードにな
っていても、サスペンド・ルーチンは実モードのCPU
40で実行され、このため、許容されるアドレス空間の
外で命令を実行しようとしたり、特権命令を実行しよう
とすることによって発生する可能性のあるエラーを発生
することを恐れずに実行することができると言うだけで
十分である。
されているが、250から始まる。サスペンド・ルーチ
ンは、スーパバイザ・ルーチンが「サスペンド要求」A
PM戻りコードをAPMに返したことに対する応答とし
て、APMによって呼び出される。まず、252に示す
ように、CPU状態保管ルーチンが呼び出される。CP
U状態保管ルーチンについては、図23〜26に付随す
る本文で詳述する。ここでは、サスペンド・ルーチンが
最初に呼び出されたときにCPU40がどのモードにな
っていても、サスペンド・ルーチンは実モードのCPU
40で実行され、このため、許容されるアドレス空間の
外で命令を実行しようとしたり、特権命令を実行しよう
とすることによって発生する可能性のあるエラーを発生
することを恐れずに実行することができると言うだけで
十分である。
【0124】CPU状態保管ルーチンは、253で固有
の方法でサスペンド・ルーチンにプログラム制御を返
す。CPU状態保管ルーチンからサスペンド・ルーチン
への「復帰」は、CPUのリセットを含み、以下の図2
3〜26のタスク630および632に付随する本文で
さらに詳述する。サスペンド・ルーチンに関する詳細で
重要な点は、CPUレジスタがセグメントE000Hデ
ータ構造に書き込まれており、その時点でCPU40が
実モードになっていることである。
の方法でサスペンド・ルーチンにプログラム制御を返
す。CPU状態保管ルーチンからサスペンド・ルーチン
への「復帰」は、CPUのリセットを含み、以下の図2
3〜26のタスク630および632に付随する本文で
さらに詳述する。サスペンド・ルーチンに関する詳細で
重要な点は、CPUレジスタがセグメントE000Hデ
ータ構造に書き込まれており、その時点でCPU40が
実モードになっていることである。
【0125】次にサスペンド・ルーチンは、254でス
イッチ21が押されたかどうかを確認する。スイッチ2
1の閉鎖は、図7〜9に付随する本文に記載したように
テストされる。簡単に説明すると、スイッチ21が押さ
れた場合、読取り時にパワー・マネージメント・ポート
がFEHを返す。押されていない場合は、読取り時にF
Fを返す。スイッチが押されていない場合、進行中のサ
スペンドはソフトウェアサスペンドであり、CMOS
NVRAM96にソフトウェア・サスペンド・フラグが
SETされる。これにより、ソフトウェア・サスペンド
とスイッチの閉鎖によって開始されるハードウェア・サ
スペンドが混同されなくなる。サスペンドがソフトウェ
ア・サスペンドである場合、次のスイッチ閉鎖によっ
て、サスペンドがハードウェア・サスペンドになる。ソ
フトウェア・サスペンドをハードウェア・サスペンドに
変換した後に次のスイッチ閉鎖を行うと、サスペンドが
打ち切られる。
イッチ21が押されたかどうかを確認する。スイッチ2
1の閉鎖は、図7〜9に付随する本文に記載したように
テストされる。簡単に説明すると、スイッチ21が押さ
れた場合、読取り時にパワー・マネージメント・ポート
がFEHを返す。押されていない場合は、読取り時にF
Fを返す。スイッチが押されていない場合、進行中のサ
スペンドはソフトウェアサスペンドであり、CMOS
NVRAM96にソフトウェア・サスペンド・フラグが
SETされる。これにより、ソフトウェア・サスペンド
とスイッチの閉鎖によって開始されるハードウェア・サ
スペンドが混同されなくなる。サスペンドがソフトウェ
ア・サスペンドである場合、次のスイッチ閉鎖によっ
て、サスペンドがハードウェア・サスペンドになる。ソ
フトウェア・サスペンドをハードウェア・サスペンドに
変換した後に次のスイッチ閉鎖を行うと、サスペンドが
打ち切られる。
【0126】次に、BIOS ROM88は、260に
示すようにシャドウ解除される。まず、セグメントC0
00HおよびD000HへのISAアクセスをオフにす
ることによって、BIOS ROMがシャドウ解除され
る。次に、セグメントC000HおよびD000Hを指
し示す状態から元のようにROM88を指し示す状態
に、BIOSベクトルが変更される。次にタスクは、2
62に示すようにセグメントC000H内にスタックを
セットアップすることである。
示すようにシャドウ解除される。まず、セグメントC0
00HおよびD000HへのISAアクセスをオフにす
ることによって、BIOS ROMがシャドウ解除され
る。次に、セグメントC000HおよびD000Hを指
し示す状態から元のようにROM88を指し示す状態
に、BIOSベクトルが変更される。次にタスクは、2
62に示すようにセグメントC000H内にスタックを
セットアップすることである。
【0127】スタックのセットアップ後、サスペンド・
ルーチンは264で、DMA転送、フロッピー・ドライ
ブ転送、ハードファイル転送がそれぞれ現在進行中であ
るかどうかを確認するためにDMA制御装置72、ディ
スケット・アダプタ84、IDEディスク制御装置86
を検査する。現在進行中の場合、サスペンドを実行する
ことはできない。というのは、この3つのタイプの転送
に固有の特性のために十分なサスペンドを行うことがで
きないからである。たとえば、ハード・ドライブ31か
らのハードファイル転送が進行中の場合、データはすで
にIDE制御装置によって読み取られているが、まだシ
ステム・メモリ53に転送されていない。このデータ
は、CPUから適切にアクセスすることができないの
で、ハード・ファイルの読取りの最中にシステムがサス
ペンドされると、このデータが失われる恐れがある。し
たがって、この3つのタイプの転送のいずれかが進行中
の場合には、もう一度DMAおよびディスケット制御装
置の活動の有無をテストする次のAPM事象獲得まで、
サスペンドが延期される。
ルーチンは264で、DMA転送、フロッピー・ドライ
ブ転送、ハードファイル転送がそれぞれ現在進行中であ
るかどうかを確認するためにDMA制御装置72、ディ
スケット・アダプタ84、IDEディスク制御装置86
を検査する。現在進行中の場合、サスペンドを実行する
ことはできない。というのは、この3つのタイプの転送
に固有の特性のために十分なサスペンドを行うことがで
きないからである。たとえば、ハード・ドライブ31か
らのハードファイル転送が進行中の場合、データはすで
にIDE制御装置によって読み取られているが、まだシ
ステム・メモリ53に転送されていない。このデータ
は、CPUから適切にアクセスすることができないの
で、ハード・ファイルの読取りの最中にシステムがサス
ペンドされると、このデータが失われる恐れがある。し
たがって、この3つのタイプの転送のいずれかが進行中
の場合には、もう一度DMAおよびディスケット制御装
置の活動の有無をテストする次のAPM事象獲得まで、
サスペンドが延期される。
【0128】したがって、252、260、262で実
行されるタスクは、APMに制御を戻せるように予約し
ておく必要がある。まず、265に示すように、BIO
Sが読取り/書込みから読取り専用に変更される。これ
は、依然としてシャドウ化データを含むセグメントC0
00HおよびD000Hをクローズすることによって実
施される。次に、この2つのセグメントへのISAアク
セスがオンに戻される。タスク262で作成されたスタ
ックはポッピングされ、復元される。最後に、267で
制御がAPMに戻される前に、266でCPU状態復元
ルーチンによってCPU状態が復元される。次の事象獲
得中の約1秒中にAPMによってもう一度サスペンド・
ルーチンがポーリングされる。その時点までには、サス
ペンド・プロセスを妨げていた転送(複数も可)がおそ
らく完了しているので、サスペンドの続行が可能にな
る。
行されるタスクは、APMに制御を戻せるように予約し
ておく必要がある。まず、265に示すように、BIO
Sが読取り/書込みから読取り専用に変更される。これ
は、依然としてシャドウ化データを含むセグメントC0
00HおよびD000Hをクローズすることによって実
施される。次に、この2つのセグメントへのISAアク
セスがオンに戻される。タスク262で作成されたスタ
ックはポッピングされ、復元される。最後に、267で
制御がAPMに戻される前に、266でCPU状態復元
ルーチンによってCPU状態が復元される。次の事象獲
得中の約1秒中にAPMによってもう一度サスペンド・
ルーチンがポーリングされる。その時点までには、サス
ペンド・プロセスを妨げていた転送(複数も可)がおそ
らく完了しているので、サスペンドの続行が可能にな
る。
【0129】次にタスク264に戻ると、DMA転送、
フロッピー・ドライブ転送、ハードファイル転送のいず
れも現在進行中ではない場合、サスペンドを実行するこ
とができる。268でサスペンド・ルーチンが続行され
る。ただし、電源ボタン21を押すと、フェールセーフ
・タイマが使用可能になることに留意されたい。したが
って、最初のタスクは、268に示すように図7〜8に
付随する本文に記載したフェールセーフ・タイマをリセ
ットすることである。フェールセーフ・タイマのリセッ
トは、図7〜9に付随する本文で詳述するように、パワ
ー・マネージメント・ポートに0X112を書き込むこ
とによって行う。このため、第2のPAL U2のピン
19(図7)がR4を介してC2で上昇した電圧を排出
し、それにより、C2で蓄積した約2.7VDCの電圧
によってQ1が導電するのを防止する。図7〜9に付随
する本文で詳述したように、Q1が導電して、第2のP
AL U2のピン11を論理0に引き下げる場合、第2
のPAL U2内の回路によって第2のPAL U2の
ピン12が論理1を出力し、電源17がコンピュータ・
システム10への調整電力の供給を停止することに留意
されたい。したがって、サスペンド中に電力が除去され
るのを防止するため、少なくとも約10秒おきにサスペ
ンド・ルーチンによってC2を排出する必要がある。
フロッピー・ドライブ転送、ハードファイル転送のいず
れも現在進行中ではない場合、サスペンドを実行するこ
とができる。268でサスペンド・ルーチンが続行され
る。ただし、電源ボタン21を押すと、フェールセーフ
・タイマが使用可能になることに留意されたい。したが
って、最初のタスクは、268に示すように図7〜8に
付随する本文に記載したフェールセーフ・タイマをリセ
ットすることである。フェールセーフ・タイマのリセッ
トは、図7〜9に付随する本文で詳述するように、パワ
ー・マネージメント・ポートに0X112を書き込むこ
とによって行う。このため、第2のPAL U2のピン
19(図7)がR4を介してC2で上昇した電圧を排出
し、それにより、C2で蓄積した約2.7VDCの電圧
によってQ1が導電するのを防止する。図7〜9に付随
する本文で詳述したように、Q1が導電して、第2のP
AL U2のピン11を論理0に引き下げる場合、第2
のPAL U2内の回路によって第2のPAL U2の
ピン12が論理1を出力し、電源17がコンピュータ・
システム10への調整電力の供給を停止することに留意
されたい。したがって、サスペンド中に電力が除去され
るのを防止するため、少なくとも約10秒おきにサスペ
ンド・ルーチンによってC2を排出する必要がある。
【0130】次に、270で8042補助プロセッサ1
04の状態が保管される。8042補助プロセッサ10
4のレジスタは当技術分野では周知のものである。この
レジスタはCPU40により直接読取り可能であり、そ
の値はD000Hデータ構造に直接書き込まれる。
04の状態が保管される。8042補助プロセッサ10
4のレジスタは当技術分野では周知のものである。この
レジスタはCPU40により直接読取り可能であり、そ
の値はD000Hデータ構造に直接書き込まれる。
【0131】次に、272で8259割込み制御装置9
2の状態が保管される。サスペンド・ルーチンは825
9状態保管ルーチンを呼び出すが、このルーチンについ
ては、図31〜33に付随する本文で詳述する。ここで
は、一部のレジスタが書込み専用であっても、8259
状態保管ルーチンは2つの8259割込み制御装置92
の未知のレジスタの内容を確認すると言うだけで十分で
ある。レジスタ値は、D000Hデータ構造に直接書き
込まれる。
2の状態が保管される。サスペンド・ルーチンは825
9状態保管ルーチンを呼び出すが、このルーチンについ
ては、図31〜33に付随する本文で詳述する。ここで
は、一部のレジスタが書込み専用であっても、8259
状態保管ルーチンは2つの8259割込み制御装置92
の未知のレジスタの内容を確認すると言うだけで十分で
ある。レジスタ値は、D000Hデータ構造に直接書き
込まれる。
【0132】割込み制御装置92の状態を保管した後、
サスペンド・ルーチンが実行する様々な割込み主導タス
クが正しく機能できるようにするために、割込み制御装
置92の構成を既知の状態に変更する必要がある。した
がって、274でBIOSデータ域およびベクトル・テ
ーブルがスワップされる。サスペンド・ルーチンは、セ
グメント0000H内の現在状態のBIOSデータ域お
よびベクトル・テーブルの内容をセグメントD000H
内の位置にコピーする。次に、既知の状態のBIOSデ
ータ域およびベクトル・テーブルの内容がセグメントD
000H内のデータ構造からセグメント0000H内の
位置にコピーされる。既知の状態のBIOSデータ域お
よびベクトル・テーブルは、以下に説明する図17〜1
8に示すブートアップ・ルーチンのタスク414でセグ
メントD000Hにコピーされる。最後に、現在状態の
BIOSデータ域およびベクトル・テーブルは、セグメ
ント0000HからセグメントD000H内のデータ構
造にコピーされる。274のルーチンが終了すると、割
込み13H(ディスク読取り/書込み)や割込み10H
(ビデオ・アクセス)などのすべての割込みが予想通り
に機能する。
サスペンド・ルーチンが実行する様々な割込み主導タス
クが正しく機能できるようにするために、割込み制御装
置92の構成を既知の状態に変更する必要がある。した
がって、274でBIOSデータ域およびベクトル・テ
ーブルがスワップされる。サスペンド・ルーチンは、セ
グメント0000H内の現在状態のBIOSデータ域お
よびベクトル・テーブルの内容をセグメントD000H
内の位置にコピーする。次に、既知の状態のBIOSデ
ータ域およびベクトル・テーブルの内容がセグメントD
000H内のデータ構造からセグメント0000H内の
位置にコピーされる。既知の状態のBIOSデータ域お
よびベクトル・テーブルは、以下に説明する図17〜1
8に示すブートアップ・ルーチンのタスク414でセグ
メントD000Hにコピーされる。最後に、現在状態の
BIOSデータ域およびベクトル・テーブルは、セグメ
ント0000HからセグメントD000H内のデータ構
造にコピーされる。274のルーチンが終了すると、割
込み13H(ディスク読取り/書込み)や割込み10H
(ビデオ・アクセス)などのすべての割込みが予想通り
に機能する。
【0133】次に、276でタイマ102の状態が保管
される。タイマのレジスタは当技術分野では周知のもの
である。すべてのレジスタはCPU40によって直接読
取り可能であり、その値はD000Hデータ構造に直接
書き込まれる。また、276ではIDEディスク制御装
置86の状態も保管される。IDEディスク制御装置8
6レジスタは当技術分野では周知のものである。すべて
のレジスタはCPU40によって直接読取り可能であ
り、その値はD000Hデータ構造に直接書き込まれ
る。
される。タイマのレジスタは当技術分野では周知のもの
である。すべてのレジスタはCPU40によって直接読
取り可能であり、その値はD000Hデータ構造に直接
書き込まれる。また、276ではIDEディスク制御装
置86の状態も保管される。IDEディスク制御装置8
6レジスタは当技術分野では周知のものである。すべて
のレジスタはCPU40によって直接読取り可能であ
り、その値はD000Hデータ構造に直接書き込まれ
る。
【0134】次のステップは、ハード・ドライブ31上
のサスペンド・ファイルに書き込まれるシステム・メモ
リを準備することである。システム・メモリは、システ
ムRAM53(メイン・メモリと拡張メモリの両方を含
む)とビデオ・メモリ58とを含む。この時点では、R
AM53の各部が外部キャッシュ60にあってもよい。
CPUキャッシュは628でフラッシュされている。こ
れについては、図23〜26に付随する本文で後述す
る。したがって、RAM53をハード・ドライブ31に
書き込む前に外部キャッシュをフラッシュしておく必要
がある。このため、システム・キャッシュ60は286
でフラッシュされる。このフラッシュの完了後、RAM
53は完全なものになり、CPUキャッシュ41または
システム・キャッシュ60のいずれにもメモリ・データ
はまったく残っていない。
のサスペンド・ファイルに書き込まれるシステム・メモ
リを準備することである。システム・メモリは、システ
ムRAM53(メイン・メモリと拡張メモリの両方を含
む)とビデオ・メモリ58とを含む。この時点では、R
AM53の各部が外部キャッシュ60にあってもよい。
CPUキャッシュは628でフラッシュされている。こ
れについては、図23〜26に付随する本文で後述す
る。したがって、RAM53をハード・ドライブ31に
書き込む前に外部キャッシュをフラッシュしておく必要
がある。このため、システム・キャッシュ60は286
でフラッシュされる。このフラッシュの完了後、RAM
53は完全なものになり、CPUキャッシュ41または
システム・キャッシュ60のいずれにもメモリ・データ
はまったく残っていない。
【0135】システム10上で実行されるコードは、I
DE制御装置86を未知の状態にしている可能性があ
る。その結果、次のステップは、292でIDE制御装
置86を既知の状態に初期設定することである。これ
は、IDE制御装置86内のレジスタに値を直接書き込
むことにより実施される。
DE制御装置86を未知の状態にしている可能性があ
る。その結果、次のステップは、292でIDE制御装
置86を既知の状態に初期設定することである。これ
は、IDE制御装置86内のレジスタに値を直接書き込
むことにより実施される。
【0136】次に、294でハード・ドライブ31内の
固定ディスク上にサスペンド・ファイルを配置しなけれ
ばならない。サスペンド・ファイルのヘッド、セクタ、
シリンダはCMOSメモリ96に格納される。サスペン
ド・ファイルが配置されると、ファイル・サイズとシグ
ナチャが読み取られる。好ましい実施例では、このシグ
ナチャは、サスペンド・ファイルの存在を示す任意の長
さのASCIIコードである。ハード・ファイル・シス
テム上でランダムに検出される確率が非常に低い2進文
字列の使用など、これ以外のシグナチャの代替実施態様
も可能である。
固定ディスク上にサスペンド・ファイルを配置しなけれ
ばならない。サスペンド・ファイルのヘッド、セクタ、
シリンダはCMOSメモリ96に格納される。サスペン
ド・ファイルが配置されると、ファイル・サイズとシグ
ナチャが読み取られる。好ましい実施例では、このシグ
ナチャは、サスペンド・ファイルの存在を示す任意の長
さのASCIIコードである。ハード・ファイル・シス
テム上でランダムに検出される確率が非常に低い2進文
字列の使用など、これ以外のシグナチャの代替実施態様
も可能である。
【0137】サスペンド・ファイル用のファイルサイズ
とシグナチャを読み取った後、次のステップは、296
でシグナチャとファイルサイズが正しいことを確認する
ことである。シグナチャが間違っていて、別のプログラ
ムがサスペンド・ファイルを修正した可能性があること
を示すか、またはファイルサイズが正しくなく、サスペ
ンド・ファイル・サイズが変更されたことを示す場合、
サスペンド・ルーチンは298で致命的サスペンド・エ
ラー・ルーチンを呼び出す。このルーチンは図23〜2
6のタスク652から始まる。ユーザがスイッチ17を
押して致命的サスペンド・エラー・ルーチンを出た場
合、プログラム制御はタスク299からタスク506に
ジャンプする。
とシグナチャを読み取った後、次のステップは、296
でシグナチャとファイルサイズが正しいことを確認する
ことである。シグナチャが間違っていて、別のプログラ
ムがサスペンド・ファイルを修正した可能性があること
を示すか、またはファイルサイズが正しくなく、サスペ
ンド・ファイル・サイズが変更されたことを示す場合、
サスペンド・ルーチンは298で致命的サスペンド・エ
ラー・ルーチンを呼び出す。このルーチンは図23〜2
6のタスク652から始まる。ユーザがスイッチ17を
押して致命的サスペンド・エラー・ルーチンを出た場
合、プログラム制御はタスク299からタスク506に
ジャンプする。
【0138】これに対し、シグナチャが正しく、サスペ
ンド・ファイルが十分な大きさである場合、サスペンド
・ルーチンは、メモリへのコンピュータ・システムの状
態の書込みに移行することができる。
ンド・ファイルが十分な大きさである場合、サスペンド
・ルーチンは、メモリへのコンピュータ・システムの状
態の書込みに移行することができる。
【0139】コンピュータ・システム10の状態をハー
ド・ドライブ31に書き込む前に、297でフェールセ
ーフ・タイマC2がリセットされ、スイッチ21がもう
一度押されたかどうかを検出するためにスイッチがテス
トされる。図7〜9に付随する本文でさらに詳述するよ
うに、パワー・マネージメント・ポートへの読取りによ
ってFEHが返される場合、スイッチ21はもう一度押
されておらず、サスペンドを続行する必要がある。これ
に対し、パワー・マネージメント・ポートへの読取りに
よってFFHが返される場合、スイッチ21はもう一度
押されているので、サスペンドは打ち切られる。C2は
排出され、スイッチ21はサスペンド・ルーチン内のい
くつかの点で閉鎖がテストされる。タスク297は例示
にすぎず、該当分野の通常の技術を有する回路設計者
は、C2排出の回数とその間隔を決定することができ
る。サスペンド・ルーチンは、C2が排出されたことを
確認し、それによりフェールセーフ・タイマをリセット
してから、C2により電源17を「オフ」にする必要が
ある。同様に、スイッチ21を時折検査する必要があ
る。スイッチ21がもう一度押され、ユーザがサスペン
ドの打切りを希望していることを示している場合、コー
ドは、サスペンド・ルーチンによってすでにサスペンド
されたものをサスペンド解除するためにレジューム・ル
ーチン内の適当な点までジャンプしなければならない。
ド・ドライブ31に書き込む前に、297でフェールセ
ーフ・タイマC2がリセットされ、スイッチ21がもう
一度押されたかどうかを検出するためにスイッチがテス
トされる。図7〜9に付随する本文でさらに詳述するよ
うに、パワー・マネージメント・ポートへの読取りによ
ってFEHが返される場合、スイッチ21はもう一度押
されておらず、サスペンドを続行する必要がある。これ
に対し、パワー・マネージメント・ポートへの読取りに
よってFFHが返される場合、スイッチ21はもう一度
押されているので、サスペンドは打ち切られる。C2は
排出され、スイッチ21はサスペンド・ルーチン内のい
くつかの点で閉鎖がテストされる。タスク297は例示
にすぎず、該当分野の通常の技術を有する回路設計者
は、C2排出の回数とその間隔を決定することができ
る。サスペンド・ルーチンは、C2が排出されたことを
確認し、それによりフェールセーフ・タイマをリセット
してから、C2により電源17を「オフ」にする必要が
ある。同様に、スイッチ21を時折検査する必要があ
る。スイッチ21がもう一度押され、ユーザがサスペン
ドの打切りを希望していることを示している場合、コー
ドは、サスペンド・ルーチンによってすでにサスペンド
されたものをサスペンド解除するためにレジューム・ル
ーチン内の適当な点までジャンプしなければならない。
【0140】同様に、350ではCtrl-Alt-Delによりサ
スペンドを打ち切る。Ctrl-Alt-Deleteを押す(Control
キーと、Altキーと、Deleteキーとを同時に押す)方法
は、IBMのBIOSとインテル80X86ファミリー
のCPUに基づく典型的なコンピュータ・システムをリ
セットするための周知の方法である。コンピュータ・シ
ステム10は、当技術分野で周知のように、BIOSの
割込み1ハンドラによってCtrl-Alt-Delを処理する。コ
ンピュータ・システム10は、350で割込み1ハンド
ラをわずかに修正し、これが352でCMOSメモリ9
6内のサスペンド・フラグをクリアし、354でリセッ
ト時にブートアップ・ルーチンにジャンプする。
スペンドを打ち切る。Ctrl-Alt-Deleteを押す(Control
キーと、Altキーと、Deleteキーとを同時に押す)方法
は、IBMのBIOSとインテル80X86ファミリー
のCPUに基づく典型的なコンピュータ・システムをリ
セットするための周知の方法である。コンピュータ・シ
ステム10は、当技術分野で周知のように、BIOSの
割込み1ハンドラによってCtrl-Alt-Delを処理する。コ
ンピュータ・システム10は、350で割込み1ハンド
ラをわずかに修正し、これが352でCMOSメモリ9
6内のサスペンド・フラグをクリアし、354でリセッ
ト時にブートアップ・ルーチンにジャンプする。
【0141】本発明のコンピュータ・システム10で
は、サスペンド・ルーチンが実行している間にCtrl-Alt
-Delを押すと、コンピュータ・システムがオフ状態15
6に入る。これは、スイッチ21の閉鎖後、第2のPA
L U2がスイッチ状態102になっており、Ctrl-Alt-
Delを押すとブートアップ・ルーチンが呼び出され、ブ
ートアップ・ルーチンがパワー・マネージメント・ポー
トに00Hを書き込んで、第2のPAL U2を既知の
状態にするからである。しかし、第2のPALU2がス
イッチ状態102になっている間に第2のPAL U2
に00Hを書き込むと、図7〜9に付随する本文で説明
するように、第2のPAL U2により電源17がシス
テム電源の供給を停止する。したがって、サスペンド・
ルーチン中にCtrl-Alt-Delを押すと、コンピュータ・シ
ステム10がオフ状態156に入る。
は、サスペンド・ルーチンが実行している間にCtrl-Alt
-Delを押すと、コンピュータ・システムがオフ状態15
6に入る。これは、スイッチ21の閉鎖後、第2のPA
L U2がスイッチ状態102になっており、Ctrl-Alt-
Delを押すとブートアップ・ルーチンが呼び出され、ブ
ートアップ・ルーチンがパワー・マネージメント・ポー
トに00Hを書き込んで、第2のPAL U2を既知の
状態にするからである。しかし、第2のPALU2がス
イッチ状態102になっている間に第2のPAL U2
に00Hを書き込むと、図7〜9に付随する本文で説明
するように、第2のPAL U2により電源17がシス
テム電源の供給を停止する。したがって、サスペンド・
ルーチン中にCtrl-Alt-Delを押すと、コンピュータ・シ
ステム10がオフ状態156に入る。
【0142】次にタスク300を参照すると、300で
は、もう一度サスペンド・ファイルがハード・ドライブ
31上に配置され、シグナチャ・フレーズがサスペンド
・ファイルの最初のバイトに書き込まれる。次に、30
2でセグメントD000H内の64キロバイトのデータ
全体がサスペンド・ファイルに書き込まれる。このD0
00Hの64Kコピーは実際にはプレース・ホルダにす
ぎず、サスペンド・ルーチンの終わりにこの同じ位置に
再書込みされる。
は、もう一度サスペンド・ファイルがハード・ドライブ
31上に配置され、シグナチャ・フレーズがサスペンド
・ファイルの最初のバイトに書き込まれる。次に、30
2でセグメントD000H内の64キロバイトのデータ
全体がサスペンド・ファイルに書き込まれる。このD0
00Hの64Kコピーは実際にはプレース・ホルダにす
ぎず、サスペンド・ルーチンの終わりにこの同じ位置に
再書込みされる。
【0143】次に、システム・メモリがサスペンド・フ
ァイルに書き込まれる。これは、システム・メモリから
データを読み取り、それを圧縮してC000Hに書き込
み、最後にセグメントC000Hからの圧縮データをサ
スペンド・ファイルに書き込むというツインバッファ・
システムによって実施される。2つのルーチンが時間多
重化配置で機能する。すなわち、一方はデータを圧縮し
てセグメントC000Hに書き込み、もう一方はサスペ
ンド・ファイルに書き込む。前者は前景で動作し、後者
は背景で動作する割込み主導ルーチンである。CPU4
0が1つしかないので、所与の時点で実行できるルーチ
ンが1つに限られることは明らかであるが、後者は割込
み主導ルーチンであるので、サスペンド・ファイルへの
データ転送速度を最適化するために必要に応じて前者の
ルーチンの実行に割り込むことができる。2つのバッフ
ァはそれぞれ8キロバイトの長さであり、ハード・ドラ
イブ31への転送時間を最適化するものと考えられてい
る。
ァイルに書き込まれる。これは、システム・メモリから
データを読み取り、それを圧縮してC000Hに書き込
み、最後にセグメントC000Hからの圧縮データをサ
スペンド・ファイルに書き込むというツインバッファ・
システムによって実施される。2つのルーチンが時間多
重化配置で機能する。すなわち、一方はデータを圧縮し
てセグメントC000Hに書き込み、もう一方はサスペ
ンド・ファイルに書き込む。前者は前景で動作し、後者
は背景で動作する割込み主導ルーチンである。CPU4
0が1つしかないので、所与の時点で実行できるルーチ
ンが1つに限られることは明らかであるが、後者は割込
み主導ルーチンであるので、サスペンド・ファイルへの
データ転送速度を最適化するために必要に応じて前者の
ルーチンの実行に割り込むことができる。2つのバッフ
ァはそれぞれ8キロバイトの長さであり、ハード・ドラ
イブ31への転送時間を最適化するものと考えられてい
る。
【0144】このプロセスは、最初の8Kバッファを充
填するために十分なデータを読み取り、圧縮し、セグメ
ントC000Hに書き込むことにより、304から始ま
る。データはラン・レングス・コード化方法を使用して
圧縮されるが、適当な圧縮方法であればどれでも使用す
ることができる。この時、306でバッファからの書込
みルーチン(全体を307に示す)が開始される。バッ
ファからの書込みルーチン307は、背景で動作する割
込み主導ルーチンであり、タスク308〜310で構成
される。圧縮ルーチン(全体を311で示す)は、タス
ク312〜318を含み、前景ルーチンである。まず、
308でバッファからの書込みルーチン307は、タス
ク304で充填したばかりのバッファをサスペンド・フ
ァイルに書き込む。バッファからの書込みルーチン30
7がそのバッファの内容をサスペンド・ファイルに書き
込んでいる間、圧縮ルーチン311は、312でシステ
ム・メモリからの次のバイトの読取りと、その圧縮と、
2つの8Kバッファのもう一方への圧縮データの書込み
とを続行する。圧縮ルーチン311がバッファに圧縮デ
ータを充填してしまうと、次のステップは、314でシ
ステム・メモリ全体がまだ圧縮されているかどうかを判
定することになる。
填するために十分なデータを読み取り、圧縮し、セグメ
ントC000Hに書き込むことにより、304から始ま
る。データはラン・レングス・コード化方法を使用して
圧縮されるが、適当な圧縮方法であればどれでも使用す
ることができる。この時、306でバッファからの書込
みルーチン(全体を307に示す)が開始される。バッ
ファからの書込みルーチン307は、背景で動作する割
込み主導ルーチンであり、タスク308〜310で構成
される。圧縮ルーチン(全体を311で示す)は、タス
ク312〜318を含み、前景ルーチンである。まず、
308でバッファからの書込みルーチン307は、タス
ク304で充填したばかりのバッファをサスペンド・フ
ァイルに書き込む。バッファからの書込みルーチン30
7がそのバッファの内容をサスペンド・ファイルに書き
込んでいる間、圧縮ルーチン311は、312でシステ
ム・メモリからの次のバイトの読取りと、その圧縮と、
2つの8Kバッファのもう一方への圧縮データの書込み
とを続行する。圧縮ルーチン311がバッファに圧縮デ
ータを充填してしまうと、次のステップは、314でシ
ステム・メモリ全体がまだ圧縮されているかどうかを判
定することになる。
【0145】IDE制御装置86は、それほど迅速にハ
ード・ドライブ31にデータを書き込むことができな
い。その結果、圧縮ルーチン311は、バッファからの
書込みルーチン307がハード・ドライブ31へのバッ
ファの書込みを終了する前に、ハード・ドライブ31に
書き込まれていない8Kバッファの充填を必ず終了する
ことになる。したがって、圧縮ルーチン311は、バッ
ファからの書込みルーチン307がハード・ドライブ3
1へのバッファの書込みを終了するまで待たなければな
らない。圧縮ルーチン311がすべてのシステム・メモ
リの圧縮と書込みを終了していない場合、圧縮ルーチン
311は316でバッファからの書込みルーチン307
を待つことになる。圧縮ルーチン311とバッファから
の書込みルーチン307は1組のフラグによってやりと
りする。バッファからの書込みルーチン307がサスペ
ンド・ファイルへの現行バッファの書込みを終了する
と、ルーチン307は次にバッファ・フラグを切り替
え、サスペンド・ファイルに書き込んだばかりのバッフ
ァへの圧縮データの充填を開始できることを圧縮ルーチ
ン311に示す。次に、タスク297に付随する本文で
説明したように、309でフェールセーフ・タイマC2
がリセットされ、スイッチ21の閉鎖事象の有無が検査
される。
ード・ドライブ31にデータを書き込むことができな
い。その結果、圧縮ルーチン311は、バッファからの
書込みルーチン307がハード・ドライブ31へのバッ
ファの書込みを終了する前に、ハード・ドライブ31に
書き込まれていない8Kバッファの充填を必ず終了する
ことになる。したがって、圧縮ルーチン311は、バッ
ファからの書込みルーチン307がハード・ドライブ3
1へのバッファの書込みを終了するまで待たなければな
らない。圧縮ルーチン311がすべてのシステム・メモ
リの圧縮と書込みを終了していない場合、圧縮ルーチン
311は316でバッファからの書込みルーチン307
を待つことになる。圧縮ルーチン311とバッファから
の書込みルーチン307は1組のフラグによってやりと
りする。バッファからの書込みルーチン307がサスペ
ンド・ファイルへの現行バッファの書込みを終了する
と、ルーチン307は次にバッファ・フラグを切り替
え、サスペンド・ファイルに書き込んだばかりのバッフ
ァへの圧縮データの充填を開始できることを圧縮ルーチ
ン311に示す。次に、タスク297に付随する本文で
説明したように、309でフェールセーフ・タイマC2
がリセットされ、スイッチ21の閉鎖事象の有無が検査
される。
【0146】次に、バッファからの書込みルーチン30
7は、サスペンド・ファイルに書き込んだばかりのバッ
ファが書き込むべき最後のバッファであるかどうかを3
10で判断する。最後のバッファではない場合、バッフ
ァからの書込みルーチンは、圧縮ルーチン311によっ
て充填したばかりのバッファをサスペンド・ファイルに
書き込む。その間、圧縮ルーチン311は、バッファ・
フラグを検査することにより、追加の圧縮システム・メ
モリ用にバッファが用意されていることを判定してい
る。すなわち、圧縮ルーチンは316でバッファからの
書込みルーチンが現行バッファの処理を終了するまで待
ち、その時点で圧縮ループは312に継続する。ただ
し、ビデオ・メモリ58が圧縮されないことに留意され
たい。むしろビデオ・メモリ58はVESA呼出しを使
用してビデオ制御装置56を介して読み取られ、上記に
詳述したツインバッファ・システムを使用して圧縮せず
に書き込まれる。
7は、サスペンド・ファイルに書き込んだばかりのバッ
ファが書き込むべき最後のバッファであるかどうかを3
10で判断する。最後のバッファではない場合、バッフ
ァからの書込みルーチンは、圧縮ルーチン311によっ
て充填したばかりのバッファをサスペンド・ファイルに
書き込む。その間、圧縮ルーチン311は、バッファ・
フラグを検査することにより、追加の圧縮システム・メ
モリ用にバッファが用意されていることを判定してい
る。すなわち、圧縮ルーチンは316でバッファからの
書込みルーチンが現行バッファの処理を終了するまで待
ち、その時点で圧縮ループは312に継続する。ただ
し、ビデオ・メモリ58が圧縮されないことに留意され
たい。むしろビデオ・メモリ58はVESA呼出しを使
用してビデオ制御装置56を介して読み取られ、上記に
詳述したツインバッファ・システムを使用して圧縮せず
に書き込まれる。
【0147】圧縮ルーチン311は、すべてのシステム
・メモリの圧縮を終了すると、318でバッファからの
書込みルーチン307がサスペンド・ファイルへの最後
のバッファの書込みを終了するまで待つ。バッファから
の書込みルーチン307は、終了すると、310から3
18に分岐し、存在を停止する。この時点では、背景ル
ーチンは一切実行されておらず、メイン・プログラムは
320に継続する。
・メモリの圧縮を終了すると、318でバッファからの
書込みルーチン307がサスペンド・ファイルへの最後
のバッファの書込みを終了するまで待つ。バッファから
の書込みルーチン307は、終了すると、310から3
18に分岐し、存在を停止する。この時点では、背景ル
ーチンは一切実行されておらず、メイン・プログラムは
320に継続する。
【0148】次に、320でビデオ制御装置56の状態
が保管される。ビデオ制御装置56レジスタは当技術分
野では周知のものである。すべてのレジスタはCPU4
0によって直接読取り可能であり、その値はD000H
データ構造に直接書き込まれる。また、タスク320で
は、DMAユニット71(DMA制御装置72と中央ア
ービタ82)、8277ディスケット制御装置84、R
S−232 UART94の状態が保管される。これら
の装置は、当技術分野で周知のレジスタを備えている。
ディスケット制御装置84とUART94内のすべての
レジスタはCPU40によって直接読取り可能であり、
その値はD000Hデータ構造に直接書き込まれる。D
MAユニットは読取り可能なレジスタを備えていない。
むしろ、通常は、それぞれのDMA転送の前に書込み専
用レジスタがセットアップされる。このため、DMA転
送が進行中の場合、サスペンド・ルーチンはサスペンド
を停止する。
が保管される。ビデオ制御装置56レジスタは当技術分
野では周知のものである。すべてのレジスタはCPU4
0によって直接読取り可能であり、その値はD000H
データ構造に直接書き込まれる。また、タスク320で
は、DMAユニット71(DMA制御装置72と中央ア
ービタ82)、8277ディスケット制御装置84、R
S−232 UART94の状態が保管される。これら
の装置は、当技術分野で周知のレジスタを備えている。
ディスケット制御装置84とUART94内のすべての
レジスタはCPU40によって直接読取り可能であり、
その値はD000Hデータ構造に直接書き込まれる。D
MAユニットは読取り可能なレジスタを備えていない。
むしろ、通常は、それぞれのDMA転送の前に書込み専
用レジスタがセットアップされる。このため、DMA転
送が進行中の場合、サスペンド・ルーチンはサスペンド
を停止する。
【0149】コンピュータ・システム10がサスペンド
状態150に入った後は、サスペンド・ファイルへの不
正変更を検出できることが望ましいと思われる。たとえ
ば、誰かが修正済みサスペンド・ファイルを生成し、そ
のサスペンド・ファイルをハード・ドライブ31に移動
し、保管されている状態以外の状態にコンピュータ・シ
ステム10を復元させることも可能である。このため、
セグメントD000Hデータ構造には擬似乱数値が置か
れる。328に示すように、高速タイマ102の1つか
ら16ビットのタイムスタンプが読み取られる。次に、
このタイムスタンプがセグメントD000Hデータ構造
に書き込まれる。
状態150に入った後は、サスペンド・ファイルへの不
正変更を検出できることが望ましいと思われる。たとえ
ば、誰かが修正済みサスペンド・ファイルを生成し、そ
のサスペンド・ファイルをハード・ドライブ31に移動
し、保管されている状態以外の状態にコンピュータ・シ
ステム10を復元させることも可能である。このため、
セグメントD000Hデータ構造には擬似乱数値が置か
れる。328に示すように、高速タイマ102の1つか
ら16ビットのタイムスタンプが読み取られる。次に、
このタイムスタンプがセグメントD000Hデータ構造
に書き込まれる。
【0150】次に、繰上りビットを考慮せずにD000
Hの各16ビット・ワードを合計することにより、D0
00Hセグメント全体の16ビット・チェックサムが計
算される。このチェックサムは、330でセグメントD
000Hのデータ・セグメントに書き込まれ、332で
CMOS NVRAM96に書き込まれる。その後、3
34ですべての作業変数がCPU40からセグメントD
000Hデータ構造に書き込まれ、336でセグメント
D000H全体がサスペンド・ファイルのシグナチャ・
フレーズ後から(シグナチャの直後に)サスペンド・フ
ァイルに再書込みされる。次に、338でサスペンド・
フラグがCMOS NVRAM96にSETされ、コン
ピュータ・システムの状態がサスペンド・ファイルに保
管されたことをシステム10に通知する。
Hの各16ビット・ワードを合計することにより、D0
00Hセグメント全体の16ビット・チェックサムが計
算される。このチェックサムは、330でセグメントD
000Hのデータ・セグメントに書き込まれ、332で
CMOS NVRAM96に書き込まれる。その後、3
34ですべての作業変数がCPU40からセグメントD
000Hデータ構造に書き込まれ、336でセグメント
D000H全体がサスペンド・ファイルのシグナチャ・
フレーズ後から(シグナチャの直後に)サスペンド・フ
ァイルに再書込みされる。次に、338でサスペンド・
フラグがCMOS NVRAM96にSETされ、コン
ピュータ・システムの状態がサスペンド・ファイルに保
管されたことをシステム10に通知する。
【0151】最後に、パワー・マネージメント・ポート
にX102を書き込み、第2のPAL U2を102状態
にすることにより、CPU40が電源を「オフ」にす
る。第2のPAL U2が102状態に入ると、第2の
PAL U2のピン12出力が論理1をアサートし、S
Rラッチの出力ピン3が論理0状態にラッチされ、ON
バーがR6によってHIGHに引き上げられるように
し、電源17の1次/調整ユニット172が±5および
±12の各線に沿った調整電圧の供給を停止することに
より、ただちに電源17が「オフ」になる。電圧が約0
まで低下するのに数秒かかるので、数多くのコマンドを
実行する時間がCPU40に与えられる。したがって、
CPU40は、電源17によって生成されたシステム電
源電圧が低下してCPU40が機能を停止するまで待ち
ながら、342でエンドレス・ループ(「スピン」)を
実行する。
にX102を書き込み、第2のPAL U2を102状態
にすることにより、CPU40が電源を「オフ」にす
る。第2のPAL U2が102状態に入ると、第2の
PAL U2のピン12出力が論理1をアサートし、S
Rラッチの出力ピン3が論理0状態にラッチされ、ON
バーがR6によってHIGHに引き上げられるように
し、電源17の1次/調整ユニット172が±5および
±12の各線に沿った調整電圧の供給を停止することに
より、ただちに電源17が「オフ」になる。電圧が約0
まで低下するのに数秒かかるので、数多くのコマンドを
実行する時間がCPU40に与えられる。したがって、
CPU40は、電源17によって生成されたシステム電
源電圧が低下してCPU40が機能を停止するまで待ち
ながら、342でエンドレス・ループ(「スピン」)を
実行する。
【0152】次に図17〜18を参照すると、同図に
は、ブートアップ・ルーチンの詳細が示されている。ブ
ート・プロセスの概要については、図10に付随する本
文に示されている。ブートアップ・ルーチンは380か
ら始まり、そこでCPU40はリセット・ベクトルが指
し示すコードにジャンプし、それを実行する。これは、
CPU40に電源を投入するたび、ならびにリセット・
ベクトルが指し示すコードにジャンプすることによって
CPU40がリセットされたときに行われる。このよう
なリセット手順は、当技術分野では周知のものである。
は、ブートアップ・ルーチンの詳細が示されている。ブ
ート・プロセスの概要については、図10に付随する本
文に示されている。ブートアップ・ルーチンは380か
ら始まり、そこでCPU40はリセット・ベクトルが指
し示すコードにジャンプし、それを実行する。これは、
CPU40に電源を投入するたび、ならびにリセット・
ベクトルが指し示すコードにジャンプすることによって
CPU40がリセットされたときに行われる。このよう
なリセット手順は、当技術分野では周知のものである。
【0153】最初のタスクは、382でCPU40をテ
ストし、メモリ制御装置46を初期設定することであ
る。CPUのテストはPOSTルーチンによって行われ
る。メモリ制御装置46の初期設定もPOSTルーチン
によって行われる。
ストし、メモリ制御装置46を初期設定することであ
る。CPUのテストはPOSTルーチンによって行われ
る。メモリ制御装置46の初期設定もPOSTルーチン
によって行われる。
【0154】次に、シャドウ・メモリがテストされ、B
IOSがROM88からRAM53のシャドウ・メモリ
部分にコピーされる。実行されるコードの流れは、CM
OSNVRAM96にサスペンド・フラグがSETされ
ているかどうかによって決まる。サスペンド・フラグが
SETされている場合、コンピュータ・システム10は
サスペンド状態150になっており、コンピュータ・シ
ステム10はそれがサスペンドされたときに置かれてい
た状態に復元しなければならない。セグメントE000
HおよびF000H内のシステムRAM53に対して、
簡略テストが行われる。コンピュータがレジュームに要
する時間を短縮するため、メモリについては適正サイズ
であるかどうかだけが検査され、ゼロにされる(それぞ
れの位置に000Hが書き込まれる)。
IOSがROM88からRAM53のシャドウ・メモリ
部分にコピーされる。実行されるコードの流れは、CM
OSNVRAM96にサスペンド・フラグがSETされ
ているかどうかによって決まる。サスペンド・フラグが
SETされている場合、コンピュータ・システム10は
サスペンド状態150になっており、コンピュータ・シ
ステム10はそれがサスペンドされたときに置かれてい
た状態に復元しなければならない。セグメントE000
HおよびF000H内のシステムRAM53に対して、
簡略テストが行われる。コンピュータがレジュームに要
する時間を短縮するため、メモリについては適正サイズ
であるかどうかだけが検査され、ゼロにされる(それぞ
れの位置に000Hが書き込まれる)。
【0155】これに対し、CMOS NVRAM96で
サスペンド・フラグがCLEARされている場合は、セ
グメントE000HおよびF000H内のシステムRA
M53に対して、(1)スティッキービット・テスト
と、(2)ダブルビット・メモリ・テストと、(3)交
差アドレス線テストとを含む標準の綿密なメモリ・テス
トが行われる。これらのテストは、当技術分野では周知
のものである。
サスペンド・フラグがCLEARされている場合は、セ
グメントE000HおよびF000H内のシステムRA
M53に対して、(1)スティッキービット・テスト
と、(2)ダブルビット・メモリ・テストと、(3)交
差アドレス線テストとを含む標準の綿密なメモリ・テス
トが行われる。これらのテストは、当技術分野では周知
のものである。
【0156】セグメントE000HおよびF000Hを
テストした後、BIOSに対して、ROM BIOS8
8の内容をシステムRAM53にコピーすることと、R
AMからBIOSを実行するようにメモり制御装置を構
成することとを含むシャドウ化を行うことができる。B
IOSのシャドウ化は、システムの速度を上げるために
行われる。すなわち、より低速のROM88(一般的な
アクセス時間は250ナノ秒)ではなく、より高速のシ
ステムRAM53(一般的なアクセス時間は80ナノ
秒)からBIOSが実行されるので、システム・パフォ
ーマンスが強化される。BIOSのシャドウ化は、下位
メモリのアドレスにBIOSプログラムのコピーをロー
ドすることと、ROM88からシステムRAM53のセ
グメントE000HおよびF000HにBIOSをコピ
ーすることと、シャドウRAMを使用可能にすることと
を含む。
テストした後、BIOSに対して、ROM BIOS8
8の内容をシステムRAM53にコピーすることと、R
AMからBIOSを実行するようにメモり制御装置を構
成することとを含むシャドウ化を行うことができる。B
IOSのシャドウ化は、システムの速度を上げるために
行われる。すなわち、より低速のROM88(一般的な
アクセス時間は250ナノ秒)ではなく、より高速のシ
ステムRAM53(一般的なアクセス時間は80ナノ
秒)からBIOSが実行されるので、システム・パフォ
ーマンスが強化される。BIOSのシャドウ化は、下位
メモリのアドレスにBIOSプログラムのコピーをロー
ドすることと、ROM88からシステムRAM53のセ
グメントE000HおよびF000HにBIOSをコピ
ーすることと、シャドウRAMを使用可能にすることと
を含む。
【0157】次に、ビデオ制御装置56のテストと初期
設定が行われ、ビデオ・メモリ58のテストが行われる
が、いずれも384で行われる。これらのテストと初期
設定は当技術分野で周知のものである。
設定が行われ、ビデオ・メモリ58のテストが行われる
が、いずれも384で行われる。これらのテストと初期
設定は当技術分野で周知のものである。
【0158】実行されるコードの流れは、386でCM
OS NVRAM96にサスペンド・フラグがSETさ
れているかどうかによって決まる。サスペンド・フラグ
がSETされている場合、タスク383と同様に、残り
のシステムRAM53についてサイズだけが検査され、
ゼロにされる。しかし、CMOS NVRAM96でサ
スペンド・フラグがCLEARされている場合は、タス
ク383に付随する本文で説明した3ステップの綿密な
メモリ・テストを使用して、タスク398で残りのシス
テムRAM53がテストされる。
OS NVRAM96にサスペンド・フラグがSETさ
れているかどうかによって決まる。サスペンド・フラグ
がSETされている場合、タスク383と同様に、残り
のシステムRAM53についてサイズだけが検査され、
ゼロにされる。しかし、CMOS NVRAM96でサ
スペンド・フラグがCLEARされている場合は、タス
ク383に付随する本文で説明した3ステップの綿密な
メモリ・テストを使用して、タスク398で残りのシス
テムRAM53がテストされる。
【0159】メモリのテスト後、400で8259、U
ART、8042、その他の装置を含む補助装置がテス
トされ初期設定される。タスク408では、固定ディス
ク制御装置が初期設定される。
ART、8042、その他の装置を含む補助装置がテス
トされ初期設定される。タスク408では、固定ディス
ク制御装置が初期設定される。
【0160】実行されるコードの流れは、409でCM
OS NVRAM96にサスペンド・フラグがSETさ
れているかどうかによって決まる。サスペンド・フラグ
がSETされている場合は、最後に電源を除去したとき
にシステムの状態が正常に保管されたことを意味し、ブ
ートアップ・ルーチンはハード・ドライブ制御装置86
とハード・ドライブ31のテストをスキップする。これ
に対し、CMOS NVRAM96でサスペンド・フラ
グがCLEARされている場合は、最後に電源を除去し
たときにシステムの状態が保管されなかったことを意味
し、ブートアップ・ルーチンは、当技術分野で周知のよ
うに、タスク410で固定ディスク制御装置86とハー
ド・ドライブ31の完全なテストを実行する。
OS NVRAM96にサスペンド・フラグがSETさ
れているかどうかによって決まる。サスペンド・フラグ
がSETされている場合は、最後に電源を除去したとき
にシステムの状態が正常に保管されたことを意味し、ブ
ートアップ・ルーチンはハード・ドライブ制御装置86
とハード・ドライブ31のテストをスキップする。これ
に対し、CMOS NVRAM96でサスペンド・フラ
グがCLEARされている場合は、最後に電源を除去し
たときにシステムの状態が保管されなかったことを意味
し、ブートアップ・ルーチンは、当技術分野で周知のよ
うに、タスク410で固定ディスク制御装置86とハー
ド・ドライブ31の完全なテストを実行する。
【0161】次に、412でフロッピー・ドライブ制御
装置84がテストされ初期設定される。
装置84がテストされ初期設定される。
【0162】この時点で、すべての装置が初期設定さ
れ、ベクトルは既知の位置を指し示すので、すべての割
込みルーチンが予定通りに機能するようになる。したが
って、ブートアップ・ルーチンは、414でBIOSデ
ータ域およびベクトル・テーブルのスナップショットを
取り、BIOSデータ域およびベクトル・テーブルのコ
ピーをセグメントD000H内のデータ構造に書き込
む。BIOSデータ域およびベクトル・テーブルのこの
コピーは、コンピュータ・システム10を既知の状態に
してすべての割込みが予定通り機能するようにするため
に、タスク274でサスペンド・ルーチンが使用する。
れ、ベクトルは既知の位置を指し示すので、すべての割
込みルーチンが予定通りに機能するようになる。したが
って、ブートアップ・ルーチンは、414でBIOSデ
ータ域およびベクトル・テーブルのスナップショットを
取り、BIOSデータ域およびベクトル・テーブルのコ
ピーをセグメントD000H内のデータ構造に書き込
む。BIOSデータ域およびベクトル・テーブルのこの
コピーは、コンピュータ・システム10を既知の状態に
してすべての割込みが予定通り機能するようにするため
に、タスク274でサスペンド・ルーチンが使用する。
【0163】次に、当技術分野で周知のように、416
でBIOS拡張部が「走査」され初期設定される。BI
OS拡張部は、ネットワーク・アダプタなどの周辺アダ
プタによりシステムに追加されたBIOSコードのブロ
ックである。通常、BIOS拡張部は、ISAバス76
上のセグメントC000HおよびD000Hに位置し、
BIOS拡張部をそのように識別するための関連「シグ
ナチャ」を備えている。BIOS拡張部が検出される
と、その長さが検査され、チェックサムが計算され検査
される。シグナチャ、長さ、チェックサムのすべてによ
って、有効なBIOS拡張部の存在が示されると、プロ
グラムはシグナチャより3バイト後ろに位置する命令に
制御を渡すので、BIOS拡張部は周辺アダプタの初期
設定など、必要なタスクをすべて実行することができ
る。拡張部が実行を終了すると、制御はブートアップ・
ルーチンに戻り、このルーチンがさらに追加のBIOS
拡張部がないかどうか探索する。追加のBIOS拡張部
は上記のBIOS拡張部と同様に処理される。追加のB
IOS拡張部が一切検出されない場合、ブートアップ・
ルーチンはタスク417に移行する。
でBIOS拡張部が「走査」され初期設定される。BI
OS拡張部は、ネットワーク・アダプタなどの周辺アダ
プタによりシステムに追加されたBIOSコードのブロ
ックである。通常、BIOS拡張部は、ISAバス76
上のセグメントC000HおよびD000Hに位置し、
BIOS拡張部をそのように識別するための関連「シグ
ナチャ」を備えている。BIOS拡張部が検出される
と、その長さが検査され、チェックサムが計算され検査
される。シグナチャ、長さ、チェックサムのすべてによ
って、有効なBIOS拡張部の存在が示されると、プロ
グラムはシグナチャより3バイト後ろに位置する命令に
制御を渡すので、BIOS拡張部は周辺アダプタの初期
設定など、必要なタスクをすべて実行することができ
る。拡張部が実行を終了すると、制御はブートアップ・
ルーチンに戻り、このルーチンがさらに追加のBIOS
拡張部がないかどうか探索する。追加のBIOS拡張部
は上記のBIOS拡張部と同様に処理される。追加のB
IOS拡張部が一切検出されない場合、ブートアップ・
ルーチンはタスク417に移行する。
【0164】417でブートアップ・ルーチンは、サス
ペンド・ファイル用に具体的に割り振られた区画である
と思われる、ハード・ドライブ31上の区画を探索す
る。区画テーブル内にPS/1識別子(「FE」)が示
されている区画が検出され、その区画が特定のシステム
用のサスペンド・ファイルを収容できるだけの十分な大
きさのものである場合、その区画はサスペンド・ファイ
ル用であると判定される。その結果、サスペンド・ファ
イルは当技術分野で周知のファイル割振りテーブル(F
AT)に割り振られ、サスペンド・ファイル・シグナチ
ャはそのファイルの先頭バイトに書き込まれ、そのファ
イルの開始ヘッド、セクタ、シリンダはCMOS NV
RAM96に書き込まれる。
ペンド・ファイル用に具体的に割り振られた区画である
と思われる、ハード・ドライブ31上の区画を探索す
る。区画テーブル内にPS/1識別子(「FE」)が示
されている区画が検出され、その区画が特定のシステム
用のサスペンド・ファイルを収容できるだけの十分な大
きさのものである場合、その区画はサスペンド・ファイ
ル用であると判定される。その結果、サスペンド・ファ
イルは当技術分野で周知のファイル割振りテーブル(F
AT)に割り振られ、サスペンド・ファイル・シグナチ
ャはそのファイルの先頭バイトに書き込まれ、そのファ
イルの開始ヘッド、セクタ、シリンダはCMOS NV
RAM96に書き込まれる。
【0165】実行されるコードの流れは、CMOS N
VRAM96にサスペンド・フラグがSETされている
かどうかに応じて418で分岐する。サスペンド・フラ
グがクリアされている場合、ブートアップ・ルーチンは
420でPBOOTルーチンに制御を渡す。PBOOT
は、当技術分野では周知のものであり、フロッピー・デ
ィスクまたはハード・ドライブ31からのオペレーティ
ング・システム(OS)とコマンド・インタプリタのロ
ードを担当する。本発明の通常ブート・ルーチンは多少
変更されているが、その変更点は、OSをロードすると
きにサスペンド・ファイル用の区画が417で検出され
なかった場合、FAT内の連続セクタからなる1つファ
イル(必要に応じて1つの区域の断片化を解消する)を
割り振り、サスペンド・ファイルの先頭バイトにシグナ
チャを書き込み、CMOS NVRAM96にサスペン
ド・ファイルの開始ヘッド、セクタ、シリンダを書き込
むようなOS固有のドライバをOSが実行することであ
る。
VRAM96にサスペンド・フラグがSETされている
かどうかに応じて418で分岐する。サスペンド・フラ
グがクリアされている場合、ブートアップ・ルーチンは
420でPBOOTルーチンに制御を渡す。PBOOT
は、当技術分野では周知のものであり、フロッピー・デ
ィスクまたはハード・ドライブ31からのオペレーティ
ング・システム(OS)とコマンド・インタプリタのロ
ードを担当する。本発明の通常ブート・ルーチンは多少
変更されているが、その変更点は、OSをロードすると
きにサスペンド・ファイル用の区画が417で検出され
なかった場合、FAT内の連続セクタからなる1つファ
イル(必要に応じて1つの区域の断片化を解消する)を
割り振り、サスペンド・ファイルの先頭バイトにシグナ
チャを書き込み、CMOS NVRAM96にサスペン
ド・ファイルの開始ヘッド、セクタ、シリンダを書き込
むようなOS固有のドライバをOSが実行することであ
る。
【0166】サスペンド・ファイルが割り振られる時期
にかかわらず、サスペンドおよびレジュームのそれぞれ
の期間中にディスクへの高速書き込みとディスクからの
高速読取りを可能にするため、FAT内の区域は連続セ
クタでなければならない。
にかかわらず、サスペンドおよびレジュームのそれぞれ
の期間中にディスクへの高速書き込みとディスクからの
高速読取りを可能にするため、FAT内の区域は連続セ
クタでなければならない。
【0167】次にPBOOTはCONFIG.SYSファイルで検
出された命令に基づいてシステムを構成する。最後にP
BOOTはAUTOEXEC.BATファイルに実行制御権を渡し、
そのファイルは最終的に実行制御権をオペレーティング
・システムに渡す。CMOSNVRAM96でサスペン
ド・フラグがクリアされている場合は、最後に電源を除
去したときにシステムの状態が保管されなかったことを
意味し、RESUME.EXEが無視される。このファイルについ
ては、タスク421に付随する本文でさらに詳述する。
出された命令に基づいてシステムを構成する。最後にP
BOOTはAUTOEXEC.BATファイルに実行制御権を渡し、
そのファイルは最終的に実行制御権をオペレーティング
・システムに渡す。CMOSNVRAM96でサスペン
ド・フラグがクリアされている場合は、最後に電源を除
去したときにシステムの状態が保管されなかったことを
意味し、RESUME.EXEが無視される。このファイルについ
ては、タスク421に付随する本文でさらに詳述する。
【0168】タスク418に戻って参照すると、CMO
S NVRAM96にサスペンド・フラグが設定されて
いる場合は、最後に電源を除去したときにシステムの状
態が保管されたことを意味し、実行されるコードの流れ
は、CMOS NVRAM96にアダプタ再初期設定フ
ラグがSETされているかどうかに応じて419で分岐
する。アダプタ再初期設定フラグが設定されている場
合、ブートアップ・ルーチンは421でPBOOTに制
御を渡す。通常のPBOOTルーチンと同様、本発明の
PBOOTは、CONFIG.SYSファイルとAUTOEXEC.BATファ
イルで検出されたコマンドに応じてシステムを構成す
る。これらのファイルは、特に、当技術分野で周知のよ
うに各種ドライバをロードし、システムを構成するもの
である。
S NVRAM96にサスペンド・フラグが設定されて
いる場合は、最後に電源を除去したときにシステムの状
態が保管されたことを意味し、実行されるコードの流れ
は、CMOS NVRAM96にアダプタ再初期設定フ
ラグがSETされているかどうかに応じて419で分岐
する。アダプタ再初期設定フラグが設定されている場
合、ブートアップ・ルーチンは421でPBOOTに制
御を渡す。通常のPBOOTルーチンと同様、本発明の
PBOOTは、CONFIG.SYSファイルとAUTOEXEC.BATファ
イルで検出されたコマンドに応じてシステムを構成す
る。これらのファイルは、特に、当技術分野で周知のよ
うに各種ドライバをロードし、システムを構成するもの
である。
【0169】CONFIG.SYSとAUTOEXEC.BATに含まれるコマ
ンドは、システム内のアダプタ・カードを初期設定する
ことができる。このアプリケーションでは、3通りのタ
イプのアダプタ・カードが存在すると仮定する。すなわ
ち、タイプIアダプタは初期設定を必要とせず、タイプ
IIアダプタは初期設定を必要とするが、CONFIG.SYSまた
はAUTOEXEC.BATファイルに応じてロードされたドライバ
またはBIOS拡張部によって既知の作業状態になって
おり、タイプIIIアダプタはシステム上で実行されるコ
ードによって変更される。タイプIとタイプIIのアダプ
タを含むシステムはサスペンドし復元することができる
が、多くのネットワーク化アダプタを含むタイプIIIア
ダプタを含むシステムは、エラーから回復するためのル
ーチンがカードに備わっていなければ、復元することが
できない。システムは、エラーから回復するタイプIII
カードであればサスペンドすることができる。
ンドは、システム内のアダプタ・カードを初期設定する
ことができる。このアプリケーションでは、3通りのタ
イプのアダプタ・カードが存在すると仮定する。すなわ
ち、タイプIアダプタは初期設定を必要とせず、タイプ
IIアダプタは初期設定を必要とするが、CONFIG.SYSまた
はAUTOEXEC.BATファイルに応じてロードされたドライバ
またはBIOS拡張部によって既知の作業状態になって
おり、タイプIIIアダプタはシステム上で実行されるコ
ードによって変更される。タイプIとタイプIIのアダプ
タを含むシステムはサスペンドし復元することができる
が、多くのネットワーク化アダプタを含むタイプIIIア
ダプタを含むシステムは、エラーから回復するためのル
ーチンがカードに備わっていなければ、復元することが
できない。システムは、エラーから回復するタイプIII
カードであればサスペンドすることができる。
【0170】好ましい実施例ではAUTOEXEC.BATファイル
にRESUME.EXEファイルが追加されているが、RESUME.EXE
ファイルはPBOOTからレジューム・ルーチンへのプ
ログラム制御の転送を担当する。タスク420のPBO
OTはRESUME.EXEの存在を無視するが、タスク421の
PBOOTはRESUME.EXEを実行し、PBOOTによって
CONFIG.SYSおよびAUTOEXEC.BATからロードされた各種デ
バイス・ドライバによるタイプIIアダプタの初期設定が
終了すると、レジューム・ルーチンに制御を渡す。
にRESUME.EXEファイルが追加されているが、RESUME.EXE
ファイルはPBOOTからレジューム・ルーチンへのプ
ログラム制御の転送を担当する。タスク420のPBO
OTはRESUME.EXEの存在を無視するが、タスク421の
PBOOTはRESUME.EXEを実行し、PBOOTによって
CONFIG.SYSおよびAUTOEXEC.BATからロードされた各種デ
バイス・ドライバによるタイプIIアダプタの初期設定が
終了すると、レジューム・ルーチンに制御を渡す。
【0171】もう一度タスク419を参照すると、CM
OS96でアダプタ再初期設定フラグがクリアされてい
る場合、ブートアップは422でレジューム・ルーチン
に実行制御権を直接渡し、CONFIG.SYSまたはAUTOEXEC.B
ATを処理しない。レジューム・ルーチンはハード・ドラ
イブ上のサスペンド・ファイルからシステム状態を復元
するが、このルーチンについては図19〜22に付随す
る本文で詳述する。
OS96でアダプタ再初期設定フラグがクリアされてい
る場合、ブートアップは422でレジューム・ルーチン
に実行制御権を直接渡し、CONFIG.SYSまたはAUTOEXEC.B
ATを処理しない。レジューム・ルーチンはハード・ドラ
イブ上のサスペンド・ファイルからシステム状態を復元
するが、このルーチンについては図19〜22に付随す
る本文で詳述する。
【0172】次に図19〜22を参照すると、同図に
は、レジューム・ルーチンであるタスク450〜530
の詳細が示されている。構成プロセス中にBIOSデー
タ域およびベクトル・テーブルはおそらく未知の状態に
変更されている。したがって、基本BIOSルーチンは
予定通り機能する場合もあれば、機能しない場合もあ
る。このため、レジューム・ルーチンは、454でセグ
メントD000Hを読取り/書込みとして使用可能に
し、456でBIOSデータ域およびベクトル・テーブ
ル・スワップ・ルーチンを呼び出す。このルーチンは、
タスク414でセグメントD000Hにコピーされた既
知の良好なBIOSデータ域およびベクトル・テーブル
を、現在はセグメント0000Hで活動状態になってい
る変更済みBIOSデータ域およびベクトル・テーブル
とスワップするものである。このルーチンが終了する
と、既知のBIOSデータ域およびベクトル・テーブル
がセグメントD000Hで活動状態になり、変更済みB
IOSデータ域およびベクトル・テーブルがセグメント
D000H内に存在し、BIOSの各種ルーチンが予定
通り機能するようになる。
は、レジューム・ルーチンであるタスク450〜530
の詳細が示されている。構成プロセス中にBIOSデー
タ域およびベクトル・テーブルはおそらく未知の状態に
変更されている。したがって、基本BIOSルーチンは
予定通り機能する場合もあれば、機能しない場合もあ
る。このため、レジューム・ルーチンは、454でセグ
メントD000Hを読取り/書込みとして使用可能に
し、456でBIOSデータ域およびベクトル・テーブ
ル・スワップ・ルーチンを呼び出す。このルーチンは、
タスク414でセグメントD000Hにコピーされた既
知の良好なBIOSデータ域およびベクトル・テーブル
を、現在はセグメント0000Hで活動状態になってい
る変更済みBIOSデータ域およびベクトル・テーブル
とスワップするものである。このルーチンが終了する
と、既知のBIOSデータ域およびベクトル・テーブル
がセグメントD000Hで活動状態になり、変更済みB
IOSデータ域およびベクトル・テーブルがセグメント
D000H内に存在し、BIOSの各種ルーチンが予定
通り機能するようになる。
【0173】次にレジューム・ルーチンは458で、キ
ーボードとハード・ドライブをサポートするものを除く
すべての割込みを禁止する。次にレジューム・ルーチン
は460でサスペンド・ファイルをハード・ドライブ3
1上に配置し、ファイル・サイズとシグナチャを読み取
る。このシグナチャは、前述のようにサスペンド・ファ
イル用のマルチバイト識別子である。実行されるコード
の流れは、サスペンド・ファイルが正しいサイズとシグ
ナチャを備えているかどうかに応じて、462で分岐す
る。サスペンド・ファイルが正しいサイズとシグナチャ
を備えていない場合、レジューム・ルーチンは464で
CMOSメモリ96内のサスペンド・フラグをCLEA
Rし、プログラム制御は466でリセット・ベクトルが
指し示す位置のコードに渡され、それにより、システム
はサスペンドされていない場合と同様にブートする。こ
れに対して、サスペンド・ファイルが正しいサイズとシ
グナチャを備えている場合、レジューム・ルーチンは4
68で、サスペンド・ファイル内でシグナチャの後に位
置する64Kのブロック(サスペンド・ファイルの一部
であって、セグメントD000Hの情報に対応する部
分)をセグメントC000Hに読み取ることにより、シ
ステム・レジュームを続行する。
ーボードとハード・ドライブをサポートするものを除く
すべての割込みを禁止する。次にレジューム・ルーチン
は460でサスペンド・ファイルをハード・ドライブ3
1上に配置し、ファイル・サイズとシグナチャを読み取
る。このシグナチャは、前述のようにサスペンド・ファ
イル用のマルチバイト識別子である。実行されるコード
の流れは、サスペンド・ファイルが正しいサイズとシグ
ナチャを備えているかどうかに応じて、462で分岐す
る。サスペンド・ファイルが正しいサイズとシグナチャ
を備えていない場合、レジューム・ルーチンは464で
CMOSメモリ96内のサスペンド・フラグをCLEA
Rし、プログラム制御は466でリセット・ベクトルが
指し示す位置のコードに渡され、それにより、システム
はサスペンドされていない場合と同様にブートする。こ
れに対して、サスペンド・ファイルが正しいサイズとシ
グナチャを備えている場合、レジューム・ルーチンは4
68で、サスペンド・ファイル内でシグナチャの後に位
置する64Kのブロック(サスペンド・ファイルの一部
であって、セグメントD000Hの情報に対応する部
分)をセグメントC000Hに読み取ることにより、シ
ステム・レジュームを続行する。
【0174】次に、470でC000H内のブロックの
チェックサムが計算され、472で前に格納したチェッ
クサムがCMOS不揮発性メモリ96から読み取られ、
タスク470で計算されたチェックサムがタスク330
で計算されたチェックサムと同じであるかどうかに応じ
て、実行されるコードの流れが474で分岐する。タス
ク470で計算されたチェックサムがタスク330で計
算されたチェックサムと同じではない場合は、サスペン
ド・ファイルがいくらか壊れている(たとえば、不正変
更された可能性がある)ので、制御がタスク464に渡
され、そのタスクは、タスク464および466に付随
する本文で説明するように、サスペンド・フラグをCL
EARして、システムをリセットする。タスク470で
計算されたチェックサムがタスク330で計算されたチ
ェックサムと同じである場合は、サスペンド・ファイル
はサスペンド・ルーチンによって書き込まれたものその
ものであると見なされ、476でセグメントC000H
内のデータがセグメントD000Hにコピーされる。た
だし、C000HのデータをD000Hにコピーする場
合、変更済みBIOSデータ域およびベクトル・テーブ
ルが上書きされるので、回復不能であることに留意され
たい。
チェックサムが計算され、472で前に格納したチェッ
クサムがCMOS不揮発性メモリ96から読み取られ、
タスク470で計算されたチェックサムがタスク330
で計算されたチェックサムと同じであるかどうかに応じ
て、実行されるコードの流れが474で分岐する。タス
ク470で計算されたチェックサムがタスク330で計
算されたチェックサムと同じではない場合は、サスペン
ド・ファイルがいくらか壊れている(たとえば、不正変
更された可能性がある)ので、制御がタスク464に渡
され、そのタスクは、タスク464および466に付随
する本文で説明するように、サスペンド・フラグをCL
EARして、システムをリセットする。タスク470で
計算されたチェックサムがタスク330で計算されたチ
ェックサムと同じである場合は、サスペンド・ファイル
はサスペンド・ルーチンによって書き込まれたものその
ものであると見なされ、476でセグメントC000H
内のデータがセグメントD000Hにコピーされる。た
だし、C000HのデータをD000Hにコピーする場
合、変更済みBIOSデータ域およびベクトル・テーブ
ルが上書きされるので、回復不能であることに留意され
たい。
【0175】次に、レジューム・ルーチンは478で、
システムが復元中であることと、レジュームを打ち切る
にはユーザがCtrl-Alt-Delを押す必要があることをユー
ザに通知する特殊信号画面を画面に書き込む。サスペン
ド・ルーチンの場合と同様、Ctrl-Alt-Delを押すと、5
26でサスペンド・フラグがクリアされ、528でシス
テムがリブートする。ただし、リブート時に第2のPA
L U2がスイッチ状態012になっているので、パワ
ー・マネージメント・ポートにX00Hを書き込んでも
電源17はシステム電源の供給を停止しない。したがっ
て、Ctrl-Alt-Delを押すとシステムは通常通りにリブー
トし、レジューム・ルーチンの実行が継続される。
システムが復元中であることと、レジュームを打ち切る
にはユーザがCtrl-Alt-Delを押す必要があることをユー
ザに通知する特殊信号画面を画面に書き込む。サスペン
ド・ルーチンの場合と同様、Ctrl-Alt-Delを押すと、5
26でサスペンド・フラグがクリアされ、528でシス
テムがリブートする。ただし、リブート時に第2のPA
L U2がスイッチ状態012になっているので、パワ
ー・マネージメント・ポートにX00Hを書き込んでも
電源17はシステム電源の供給を停止しない。したがっ
て、Ctrl-Alt-Delを押すとシステムは通常通りにリブー
トし、レジューム・ルーチンの実行が継続される。
【0176】次に、480、482、484のそれぞれ
で、セグメントD000Hデータ構造からの値をそれぞ
れのレジスタに書き込むことにより、8277ディスケ
ット制御装置84、DMAユニット71、UART94
が復元される。
で、セグメントD000Hデータ構造からの値をそれぞ
れのレジスタに書き込むことにより、8277ディスケ
ット制御装置84、DMAユニット71、UART94
が復元される。
【0177】次にタスク486〜500では、サスペン
ド・ルーチンのタスク304〜318に付随する本文で
説明したルーチンと同様のツイン・バッファ・ルーチン
を使用して、サスペンド・ファイルからシステム・メモ
リが復元される。このツインバッファ・システムは、サ
スペンド・ファイルから圧縮データを読み取り、それを
セグメントC000Hに書き込み、それを圧縮解除し、
システム・メモリに書き込むものである。この場合、2
つのルーチンが時間多重化配置で機能する。すなわち、
一方はサスペンド・ファイルからデータを読み取り、そ
れをセグメントC000Hに書き込み、もう一方はデー
タを圧縮解除し、圧縮解除したデータをシステム・メモ
リに書き込む。後者は前景で動作し、前者は背景で動作
する割込み主導ルーチンである。CPU40が1つしか
ないので、所与の時点で実行できるルーチンが1つに限
られることは明らかであるが、前者は割込み主導ルーチ
ンであるので、サスペンド・ファイルからのデータ転送
速度を最適化するために必要に応じて後者のルーチンの
実行に割り込むことができる。2つのバッファはそれぞ
れ8キロバイトの長さであり、転送時間を最適化するも
のと考えられている。
ド・ルーチンのタスク304〜318に付随する本文で
説明したルーチンと同様のツイン・バッファ・ルーチン
を使用して、サスペンド・ファイルからシステム・メモ
リが復元される。このツインバッファ・システムは、サ
スペンド・ファイルから圧縮データを読み取り、それを
セグメントC000Hに書き込み、それを圧縮解除し、
システム・メモリに書き込むものである。この場合、2
つのルーチンが時間多重化配置で機能する。すなわち、
一方はサスペンド・ファイルからデータを読み取り、そ
れをセグメントC000Hに書き込み、もう一方はデー
タを圧縮解除し、圧縮解除したデータをシステム・メモ
リに書き込む。後者は前景で動作し、前者は背景で動作
する割込み主導ルーチンである。CPU40が1つしか
ないので、所与の時点で実行できるルーチンが1つに限
られることは明らかであるが、前者は割込み主導ルーチ
ンであるので、サスペンド・ファイルからのデータ転送
速度を最適化するために必要に応じて後者のルーチンの
実行に割り込むことができる。2つのバッファはそれぞ
れ8キロバイトの長さであり、転送時間を最適化するも
のと考えられている。
【0178】このプロセスは、最初の8Kバッファを充
填するために十分なデータをサスペンド・ファイルから
読み取り、セグメントC000Hに書き込むことによ
り、486から始まる。この時、306でバッファから
の読取りルーチン(全体を489に示す)が開始され
る。バッファからの読取りルーチン489は、背景で動
作する割込み主導ルーチンであり、タスク490〜49
2で構成される。圧縮解除ルーチン(全体を493で示
す)は、タスク494〜498を含み、前景ルーチンで
ある。まず、490でバッファからの読取りルーチン4
89は、サスペンド・ファイルの次の8Kの読取りと、
その時点では現行バッファであるもう一方のバッファへ
の書込みとを開始する。バッファからの読取りルーチン
489が次の8Kをサスペンド・ファイルから読み取っ
て、それを現行バッファに書き込んでいる間、圧縮解除
ルーチン493は494で、タスク486が充填したバ
ッファを読み取り、圧縮データを圧縮解除し、圧縮解除
したデータをシステム・メモリに書き込む。圧縮解除ル
ーチン493がバッファ内のすべてのデータを圧縮解除
してしまうと、次のステップは、496でシステム・メ
モリ全体が圧縮解除されたかどうかを判定することにな
る。
填するために十分なデータをサスペンド・ファイルから
読み取り、セグメントC000Hに書き込むことによ
り、486から始まる。この時、306でバッファから
の読取りルーチン(全体を489に示す)が開始され
る。バッファからの読取りルーチン489は、背景で動
作する割込み主導ルーチンであり、タスク490〜49
2で構成される。圧縮解除ルーチン(全体を493で示
す)は、タスク494〜498を含み、前景ルーチンで
ある。まず、490でバッファからの読取りルーチン4
89は、サスペンド・ファイルの次の8Kの読取りと、
その時点では現行バッファであるもう一方のバッファへ
の書込みとを開始する。バッファからの読取りルーチン
489が次の8Kをサスペンド・ファイルから読み取っ
て、それを現行バッファに書き込んでいる間、圧縮解除
ルーチン493は494で、タスク486が充填したバ
ッファを読み取り、圧縮データを圧縮解除し、圧縮解除
したデータをシステム・メモリに書き込む。圧縮解除ル
ーチン493がバッファ内のすべてのデータを圧縮解除
してしまうと、次のステップは、496でシステム・メ
モリ全体が圧縮解除されたかどうかを判定することにな
る。
【0179】IDE制御装置86は、それほど迅速にハ
ード・ドライブ31からデータを読み取ることができな
い。その結果、圧縮解除ルーチン493は、バッファか
らの読取りルーチン489がハード・ドライブ31から
現行バッファへのデータの読取りを終了する前に、ハー
ド・ドライブ31に書き込まれていない8Kバッファの
圧縮解除を必ず終了することになる。したがって、圧縮
解除ルーチン493は、バッファからの読取りルーチン
489がハード・ドライブ31からのデータの読取りを
終了するまで待たなければならない。圧縮解除ルーチン
493がすべてのシステム・メモリの圧縮と書込みを終
了していない場合、圧縮解除ルーチン493は498で
バッファからの読取りルーチン489を待つことにな
る。圧縮解除ルーチン493とバッファからの読取りル
ーチン489は1組のフラグによってやりとりする。バ
ッファからの読取りルーチン489がサスペンド・ファ
イルから現行バッファへのデータの読取りを終了する
と、次にルーチン489は490でバッファ・フラグを
切り替え、サスペンド・ファイルから読み取ったばかり
のバッファ内のデータの圧縮解除を開始できることを圧
縮解除ルーチン493に示す。次に、バッファからの読
取りルーチン489は492で、サスペンド・ファイル
から読み取るべき8Kブロックが残っているかどうかを
判断する。残っていない場合、バッファからの読取りル
ーチンは502で、サスペンド・ファイルから残りのデ
ータを読み取り、それを現行バッファに書き込む。次
に、バッファからの読取りルーチンは、背景での動作を
止め、実際には500で圧縮解除ルーチンが最後のメモ
リの圧縮解除を終了するのを待つ。
ード・ドライブ31からデータを読み取ることができな
い。その結果、圧縮解除ルーチン493は、バッファか
らの読取りルーチン489がハード・ドライブ31から
現行バッファへのデータの読取りを終了する前に、ハー
ド・ドライブ31に書き込まれていない8Kバッファの
圧縮解除を必ず終了することになる。したがって、圧縮
解除ルーチン493は、バッファからの読取りルーチン
489がハード・ドライブ31からのデータの読取りを
終了するまで待たなければならない。圧縮解除ルーチン
493がすべてのシステム・メモリの圧縮と書込みを終
了していない場合、圧縮解除ルーチン493は498で
バッファからの読取りルーチン489を待つことにな
る。圧縮解除ルーチン493とバッファからの読取りル
ーチン489は1組のフラグによってやりとりする。バ
ッファからの読取りルーチン489がサスペンド・ファ
イルから現行バッファへのデータの読取りを終了する
と、次にルーチン489は490でバッファ・フラグを
切り替え、サスペンド・ファイルから読み取ったばかり
のバッファ内のデータの圧縮解除を開始できることを圧
縮解除ルーチン493に示す。次に、バッファからの読
取りルーチン489は492で、サスペンド・ファイル
から読み取るべき8Kブロックが残っているかどうかを
判断する。残っていない場合、バッファからの読取りル
ーチンは502で、サスペンド・ファイルから残りのデ
ータを読み取り、それを現行バッファに書き込む。次
に、バッファからの読取りルーチンは、背景での動作を
止め、実際には500で圧縮解除ルーチンが最後のメモ
リの圧縮解除を終了するのを待つ。
【0180】その間、圧縮解除ルーチン493は、バッ
ファ・フラグを検査することにより、システム・メモリ
への圧縮解除用にバッファが用意されていることを判定
している。すなわち、圧縮解除ルーチンは498でバッ
ファからの読取りルーチンが現行バッファの処理を終了
するまで待ち、その時点で圧縮解除ループは494に継
続する。
ファ・フラグを検査することにより、システム・メモリ
への圧縮解除用にバッファが用意されていることを判定
している。すなわち、圧縮解除ルーチンは498でバッ
ファからの読取りルーチンが現行バッファの処理を終了
するまで待ち、その時点で圧縮解除ループは494に継
続する。
【0181】圧縮解除ルーチン493がすべてのシステ
ム・メモリの圧縮解除を終了すると、背景ルーチンは一
切実行されておらず、メイン・プログラムは504に継
続する。
ム・メモリの圧縮解除を終了すると、背景ルーチンは一
切実行されておらず、メイン・プログラムは504に継
続する。
【0182】次に、ビデオ制御装置56とIDE制御装
置86のそれぞれのレジスタにD000Hデータ構造か
らの値を書き込むことにより、504および506でそ
れぞれの装置が復元される。次に、CPU40とキャッ
シュ制御装置62に適切な値をそれぞれ書き込むことに
より、508でCPUキャッシュ41とシステム・キャ
ッシュ60が使用可能になる。次に、レジューム・ルー
チンは、タイマ制御装置102、8042キーボード・
インタフェース・マイクロプロセッサ104、8259
割込み制御装置92のそれぞれのレジスタにセグメント
D000Hデータ構造からの値を書き込むことにより、
510〜514でそれぞれの装置の状態を復元する。
置86のそれぞれのレジスタにD000Hデータ構造か
らの値を書き込むことにより、504および506でそ
れぞれの装置が復元される。次に、CPU40とキャッ
シュ制御装置62に適切な値をそれぞれ書き込むことに
より、508でCPUキャッシュ41とシステム・キャ
ッシュ60が使用可能になる。次に、レジューム・ルー
チンは、タイマ制御装置102、8042キーボード・
インタフェース・マイクロプロセッサ104、8259
割込み制御装置92のそれぞれのレジスタにセグメント
D000Hデータ構造からの値を書き込むことにより、
510〜514でそれぞれの装置の状態を復元する。
【0183】次に、レジューム・ルーチンは516でB
IOSデータ域およびベクトル・テーブル・スワップ・
ルーチンを呼び出す。このルーチンを呼び出す前は、既
知のBIOSデータ域およびベクトル・テーブルがセグ
メント0000Hで活動状態になっており、サスペンド
・ファイルから読み取られたBIOSデータ域およびベ
クトル・テーブルがセグメントD000Hデータ構造で
非活動状態になっている。スワップ後は、既知のBIO
Sデータ域およびベクトル・テーブルがセグメントD0
00Hで非活動状態になり、サスペンド・ルーチンによ
って保管されたBIOSデータ域およびベクトル・テー
ブルがセグメント0000Hで活動状態になっている。
IOSデータ域およびベクトル・テーブル・スワップ・
ルーチンを呼び出す。このルーチンを呼び出す前は、既
知のBIOSデータ域およびベクトル・テーブルがセグ
メント0000Hで活動状態になっており、サスペンド
・ファイルから読み取られたBIOSデータ域およびベ
クトル・テーブルがセグメントD000Hデータ構造で
非活動状態になっている。スワップ後は、既知のBIO
Sデータ域およびベクトル・テーブルがセグメントD0
00Hで非活動状態になり、サスペンド・ルーチンによ
って保管されたBIOSデータ域およびベクトル・テー
ブルがセグメント0000Hで活動状態になっている。
【0184】最後に、レジューム・ルーチンは518で
CPU復元ルーチンにジャンプし、そのルーチンがCP
U40をサスペンド以前の状態に復元する。CPU復元
ルーチンについては、図27〜30に付随する本文でさ
らに詳述する。CPU復元ルーチンは最終的に実行制御
権をAPMに戻す。
CPU復元ルーチンにジャンプし、そのルーチンがCP
U40をサスペンド以前の状態に復元する。CPU復元
ルーチンについては、図27〜30に付随する本文でさ
らに詳述する。CPU復元ルーチンは最終的に実行制御
権をAPMに戻す。
【0185】最後に、CPU40はRETURN命令を
実行し、システムがAPMに戻る。そこでシステムは、
サスペンドされていない場合と同様にコードの実行を続
行する。すべての実際上の目的のため、システムはサス
ペンド/レジューム手順の影響を受けない。
実行し、システムがAPMに戻る。そこでシステムは、
サスペンドされていない場合と同様にコードの実行を続
行する。すべての実際上の目的のため、システムはサス
ペンド/レジューム手順の影響を受けない。
【0186】次に図23〜26を参照すると、同図に
は、CPU状態保管ルーチンの流れ図が示されている。
サスペンド・ルーチンは600でCPU状態保管ルーチ
ンにジャンプする。ただし、APMによりセグメントE
000HおよびF000Hが読取り/書込みとして使用
可能になっており、そのセグメントからこれらのルーチ
ンが実行されることに留意されたい。さらに、602に
示すように、EFLAGSと8つの汎用レジスタがAP
Mによって保管されている。CPU状態保管ルーチンは
まず604で、DMAが終了するのを待ち、マウス13
のデータ・パケットとの同期を取り、このルーチンが確
実にマウス・パケット伝送間に実行されるようにする。
以下の諸ステップにより、DMAが終了可能になり、マ
ウス・パケットとの同期が取られる。すなわち、(1)
割込みを可能にし、(2)DMAが終了するまで7ミリ
秒待ち、(3)割込みを禁止し、(4)5ミリ秒の間、
マウス・パケット境界を待ち、(5)割込みを可能に
し、(6)マウス・パケットが到着するまでさらに5ミ
リ秒待ち、(7)割込みを禁止する。これらのステップ
の後、コードはマウス・パケット間で正常に実行するこ
とができる。
は、CPU状態保管ルーチンの流れ図が示されている。
サスペンド・ルーチンは600でCPU状態保管ルーチ
ンにジャンプする。ただし、APMによりセグメントE
000HおよびF000Hが読取り/書込みとして使用
可能になっており、そのセグメントからこれらのルーチ
ンが実行されることに留意されたい。さらに、602に
示すように、EFLAGSと8つの汎用レジスタがAP
Mによって保管されている。CPU状態保管ルーチンは
まず604で、DMAが終了するのを待ち、マウス13
のデータ・パケットとの同期を取り、このルーチンが確
実にマウス・パケット伝送間に実行されるようにする。
以下の諸ステップにより、DMAが終了可能になり、マ
ウス・パケットとの同期が取られる。すなわち、(1)
割込みを可能にし、(2)DMAが終了するまで7ミリ
秒待ち、(3)割込みを禁止し、(4)5ミリ秒の間、
マウス・パケット境界を待ち、(5)割込みを可能に
し、(6)マウス・パケットが到着するまでさらに5ミ
リ秒待ち、(7)割込みを禁止する。これらのステップ
の後、コードはマウス・パケット間で正常に実行するこ
とができる。
【0187】次に、606でアドレス線20(入出力ポ
ート92H)の状態がスタック上にPUSHされ、60
8で数学補助プロセッサ44の状態がスタック上にPU
SHされる。次に610で、CPUが32ビットで実行
されているか16ビットで実行されているかを示すため
に、フラグがSETまたはCLEARされる。
ート92H)の状態がスタック上にPUSHされ、60
8で数学補助プロセッサ44の状態がスタック上にPU
SHされる。次に610で、CPUが32ビットで実行
されているか16ビットで実行されているかを示すため
に、フラグがSETまたはCLEARされる。
【0188】次に、実行されるコードは、CPU40が
保護モードで実行されているかどうかに応じて、612
で分岐する。保護モードで実行されていない場合、CP
U40は実モードで実行されていなければならず、非常
に簡単な方法でレジスタを保管することができる。ま
ず、614で、マシン状況ワードとCR3の値がセグメ
ントE000Hデータ構造に書き込まれる。また、61
4では、TRおよびLDTRに対応する区域内のセグメ
ントE000Hデータ構造に0が書き込まれる。という
のは、TRとLDTRは実モードでは0であるからであ
る。
保護モードで実行されているかどうかに応じて、612
で分岐する。保護モードで実行されていない場合、CP
U40は実モードで実行されていなければならず、非常
に簡単な方法でレジスタを保管することができる。ま
ず、614で、マシン状況ワードとCR3の値がセグメ
ントE000Hデータ構造に書き込まれる。また、61
4では、TRおよびLDTRに対応する区域内のセグメ
ントE000Hデータ構造に0が書き込まれる。という
のは、TRとLDTRは実モードでは0であるからであ
る。
【0189】次にコードは、616で共通コード経路と
統合され、そこでGDTRおよびLDTRに格納されて
いる値がセグメントE000Hデータ構造に書き込まれ
る。次に、実行されるコードの流れは、CPU40が仮
想8086モードで実行されているかどうかに応じて、
618で分岐する。CPU40が仮想8086モードで
実行されていない場合、コードは共通経路をたどってタ
スク620に移行し、そこでデバッグ・レジスタDR
7、DR6、DR3、DR2、DR1、DR0がスタッ
ク上にPUSHされる。これらのレジスタはデバッガお
よびその他のルーチンによって使用されている。次に6
22で、DS、ES、FS、GSがスタック上にPUS
Hされる。次にCS、SS、ESP内の値がセグメント
E000Hデータ構造に書き込まれる。
統合され、そこでGDTRおよびLDTRに格納されて
いる値がセグメントE000Hデータ構造に書き込まれ
る。次に、実行されるコードの流れは、CPU40が仮
想8086モードで実行されているかどうかに応じて、
618で分岐する。CPU40が仮想8086モードで
実行されていない場合、コードは共通経路をたどってタ
スク620に移行し、そこでデバッグ・レジスタDR
7、DR6、DR3、DR2、DR1、DR0がスタッ
ク上にPUSHされる。これらのレジスタはデバッガお
よびその他のルーチンによって使用されている。次に6
22で、DS、ES、FS、GSがスタック上にPUS
Hされる。次にCS、SS、ESP内の値がセグメント
E000Hデータ構造に書き込まれる。
【0190】この時点では、セグメントE000Hデー
タ構造に書き込むべきすべての値が書き込まれているの
で、626でシャドウRAMのセグメントE000Hお
よびF000Hを読取り専用に戻すことができる。次
に、628でキャッシュ書戻し無効化コマンドを使用し
て、CPUキャッシュ41がフラッシュされる。
タ構造に書き込むべきすべての値が書き込まれているの
で、626でシャドウRAMのセグメントE000Hお
よびF000Hを読取り専用に戻すことができる。次
に、628でキャッシュ書戻し無効化コマンドを使用し
て、CPUキャッシュ41がフラッシュされる。
【0191】最後に、630でCMOS不揮発性メモリ
96に固有の遮断フラグがSETされる。最終的に、C
PU状態保管ルーチンは632で実質的にサスペンド・
ルーチンに「戻る」。この「戻り」は、実際にはコード
の分岐が後に続くRESETである。CPU40は、リ
セット・ベクトルが指し示すコードにJUMPすること
によりリセットする。CPU40をリセットすると、C
PUは強制的に実モードになり、保護障害を発生するこ
とを恐れずにすべての装置およびメモり位置にアクセス
できるようになる。この時点後、CPUの状態は保管さ
れているので、サスペンド・ルーチンはシステムの残り
の部分の状態を保管しなければならない。
96に固有の遮断フラグがSETされる。最終的に、C
PU状態保管ルーチンは632で実質的にサスペンド・
ルーチンに「戻る」。この「戻り」は、実際にはコード
の分岐が後に続くRESETである。CPU40は、リ
セット・ベクトルが指し示すコードにJUMPすること
によりリセットする。CPU40をリセットすると、C
PUは強制的に実モードになり、保護障害を発生するこ
とを恐れずにすべての装置およびメモり位置にアクセス
できるようになる。この時点後、CPUの状態は保管さ
れているので、サスペンド・ルーチンはシステムの残り
の部分の状態を保管しなければならない。
【0192】リセット・ベクトルが指し示すコード内の
プログラム制御は、CMOS96に遮断フラグがSET
されているかどうかに応じて分岐する。遮断フラグがC
LEARされている場合、システムは、通常行われるよ
うにブートする。これに対し、遮断フラグがSETされ
ている場合、コードはサスペンド・ルーチンの残りの部
分に分岐する。すなわち、実行制御権は、サスペンド・
ルーチン内の図12のタスク253にジャンプし、それ
がシステム10のサスペンドを終了する。したがって、
CPU状態保管ルーチンは、632で効果的にサスペン
ド・ルーチンに「戻る」。
プログラム制御は、CMOS96に遮断フラグがSET
されているかどうかに応じて分岐する。遮断フラグがC
LEARされている場合、システムは、通常行われるよ
うにブートする。これに対し、遮断フラグがSETされ
ている場合、コードはサスペンド・ルーチンの残りの部
分に分岐する。すなわち、実行制御権は、サスペンド・
ルーチン内の図12のタスク253にジャンプし、それ
がシステム10のサスペンドを終了する。したがって、
CPU状態保管ルーチンは、632で効果的にサスペン
ド・ルーチンに「戻る」。
【0193】タスク612に戻って参照すると、CPU
が保護モードになっている場合、コードは、CPUが仮
想8086モードになっているかどうかに応じて、タス
ク634で分岐する。CPUが仮想8086モードにな
っていない場合、コードは、現行特権レベルがゼロであ
るかどうかに応じて、タスク636でもう一度分岐す
る。現行特権がゼロ以外である場合、適切な特権を持た
ないルーチンがCPU状態保管ルーチンを実行している
ので、致命的サスペンド・エラー・ルーチン(タスク6
52から始まる)が呼び出される。致命的サスペンド・
エラー・ルーチンについては後述する。プログラム制御
が致命的サスペンド・エラー・ルーチンから戻った場
合、CPUは、CPU状態保管ルーチンが呼び出される
前のその状態に戻らなければならず、プログラム実行は
図30のタスク794に分岐し、それがCPUの部分復
元を実行する。CPU内で変更された部分はごくわずか
であるので、部分復元のみが必要になる。
が保護モードになっている場合、コードは、CPUが仮
想8086モードになっているかどうかに応じて、タス
ク634で分岐する。CPUが仮想8086モードにな
っていない場合、コードは、現行特権レベルがゼロであ
るかどうかに応じて、タスク636でもう一度分岐す
る。現行特権がゼロ以外である場合、適切な特権を持た
ないルーチンがCPU状態保管ルーチンを実行している
ので、致命的サスペンド・エラー・ルーチン(タスク6
52から始まる)が呼び出される。致命的サスペンド・
エラー・ルーチンについては後述する。プログラム制御
が致命的サスペンド・エラー・ルーチンから戻った場
合、CPUは、CPU状態保管ルーチンが呼び出される
前のその状態に戻らなければならず、プログラム実行は
図30のタスク794に分岐し、それがCPUの部分復
元を実行する。CPU内で変更された部分はごくわずか
であるので、部分復元のみが必要になる。
【0194】タスク636に戻って参照すると、呼出し
コードが適切な特権レベルを持っている場合、CR0、
CR3、TR、LDTR内の値がセグメントE000H
データ構造に保管されるので、642で保管が継続され
る。次にこのコードは、616で共通コード経路と統合
され、そこでGDTRおよびIDTR内の値が前述のよ
うにE000Hデータ構造に保管される。ここからコー
ドは前述の618〜632の経路をたどり、結果的に、
残りのサスペンド・ルーチン・コードに「戻る」(RE
SETと分岐)。
コードが適切な特権レベルを持っている場合、CR0、
CR3、TR、LDTR内の値がセグメントE000H
データ構造に保管されるので、642で保管が継続され
る。次にこのコードは、616で共通コード経路と統合
され、そこでGDTRおよびIDTR内の値が前述のよ
うにE000Hデータ構造に保管される。ここからコー
ドは前述の618〜632の経路をたどり、結果的に、
残りのサスペンド・ルーチン・コードに「戻る」(RE
SETと分岐)。
【0195】タスク634に戻って参照すると、CPU
40が仮想8086モードになっている場合、実行は6
44に継続し、そこでマシン状況ワードの値(CR0の
下位16ビット)がE000Hデータ構造に保管され、
CPUが仮想8086モードになっていることを示すフ
ラグがセグメントE000Hデータ構造内にSETされ
る。次にこのコードは、転送646および648を介し
て616で共通コードと統合される。タスク618で
は、CPUが仮想8086モードになっている場合、制
御が650に分岐し、そこでDS、ES、FS、GS内
の値がセグメントE000Hデータ構造に保管される。
このコードは624で共通コードと再統合される。ここ
からコードは前述の624〜632の経路をたどり、結
果的に、残りのサスペンド・ルーチン・コードに「戻
る」(RESETと分岐)。
40が仮想8086モードになっている場合、実行は6
44に継続し、そこでマシン状況ワードの値(CR0の
下位16ビット)がE000Hデータ構造に保管され、
CPUが仮想8086モードになっていることを示すフ
ラグがセグメントE000Hデータ構造内にSETされ
る。次にこのコードは、転送646および648を介し
て616で共通コードと統合される。タスク618で
は、CPUが仮想8086モードになっている場合、制
御が650に分岐し、そこでDS、ES、FS、GS内
の値がセグメントE000Hデータ構造に保管される。
このコードは624で共通コードと再統合される。ここ
からコードは前述の624〜632の経路をたどり、結
果的に、残りのサスペンド・ルーチン・コードに「戻
る」(RESETと分岐)。
【0196】致命的サスペンド・エラー・ルーチンは、
タスク652〜664に存在し、不適切な特権レベルを
持つコードがCPUの状態の保管を試みた場合に638
で呼び出される。まず、図9に付随する本文で説明した
ように、パワー・マネージメント・ポートに07Hと0
5Hを書き込むことにより、654でフェールセーフ・
タイマがRESETされる。次に656でスピーカが8
86Hzで0.25秒ずつ3回、1/6秒間隔でビープ
音を出す。この3回のビープ音は、サスペンドの試みが
実行されなかったことをユーザに知らせるものである。
ビープ音後、658でフェールセーフ・タイマがもう一
度RESETされ、フェールセーフ・タイマが時間切れ
になって電源17を遮断するまでユーザに15〜18秒
の一貫した時間を与える。
タスク652〜664に存在し、不適切な特権レベルを
持つコードがCPUの状態の保管を試みた場合に638
で呼び出される。まず、図9に付随する本文で説明した
ように、パワー・マネージメント・ポートに07Hと0
5Hを書き込むことにより、654でフェールセーフ・
タイマがRESETされる。次に656でスピーカが8
86Hzで0.25秒ずつ3回、1/6秒間隔でビープ
音を出す。この3回のビープ音は、サスペンドの試みが
実行されなかったことをユーザに知らせるものである。
ビープ音後、658でフェールセーフ・タイマがもう一
度RESETされ、フェールセーフ・タイマが時間切れ
になって電源17を遮断するまでユーザに15〜18秒
の一貫した時間を与える。
【0197】次に、致命的サスペンド・エラー・ルーチ
ンは、タスク660および662でユーザがスイッチ2
1を押してサスペンドの打切りを希望していることを示
したかどうかを確認するために定期的に検査する。スイ
ッチの閉鎖は、図9に付随する本文で説明したように、
パワー・マネージメント・ポートの読取り後にFFHが
現れるのを待つことによって検査する。ユーザがボタン
21を押した場合、実行制御権は上記のタスク640に
戻る。ユーザが15〜18秒以内にボタン21を押して
いない場合、フェールセーフ・タイマは時間切れにな
り、電源17が「オフ」になり、明らかにコードのすべ
ての実行が停止する。
ンは、タスク660および662でユーザがスイッチ2
1を押してサスペンドの打切りを希望していることを示
したかどうかを確認するために定期的に検査する。スイ
ッチの閉鎖は、図9に付随する本文で説明したように、
パワー・マネージメント・ポートの読取り後にFFHが
現れるのを待つことによって検査する。ユーザがボタン
21を押した場合、実行制御権は上記のタスク640に
戻る。ユーザが15〜18秒以内にボタン21を押して
いない場合、フェールセーフ・タイマは時間切れにな
り、電源17が「オフ」になり、明らかにコードのすべ
ての実行が停止する。
【0198】次に図27〜30を参照すると、同図に
は、700から始まるCPU復元ルーチンの流れ図が示
されている。このルーチンは、ハードウェアとメモリの
残りの部分がサスペンド前のそれぞれの状態に復元され
た後でレジューム・ルーチンによって呼び出される。ま
ず、セグメントE000HおよびF000Hが読取り/
書込みではない場合、702でこれらのセグメントを読
取り/書込みにする必要がある。
は、700から始まるCPU復元ルーチンの流れ図が示
されている。このルーチンは、ハードウェアとメモリの
残りの部分がサスペンド前のそれぞれの状態に復元され
た後でレジューム・ルーチンによって呼び出される。ま
ず、セグメントE000HおよびF000Hが読取り/
書込みではない場合、702でこれらのセグメントを読
取り/書込みにする必要がある。
【0199】次に、実行されるコードの流れは、サスペ
ンドされたときにCPU40が仮想8086モードで実
行していたかどうかに応じて、704で分岐する。シス
テム10がサスペンドされたときにCPU40が仮想8
086モードで実行していた場合、コードは、仮想80
86CPU復元に固有のタスク706〜728の経路を
たどる。次にコードはタスク730〜748の共通経路
と組合される。
ンドされたときにCPU40が仮想8086モードで実
行していたかどうかに応じて、704で分岐する。シス
テム10がサスペンドされたときにCPU40が仮想8
086モードで実行していた場合、コードは、仮想80
86CPU復元に固有のタスク706〜728の経路を
たどる。次にコードはタスク730〜748の共通経路
と組合される。
【0200】状態が保管されたときにCPUが仮想80
86モードであった場合、CPU状態保管ルーチンがC
R3、LDTR、TRにアクセスして、これらの値をE
000Hデータ構造に保管することができないはずであ
る。したがって、706、708、710でCR3、L
DTR、TRをそれぞれ推定しなければならない。一般
に、CR3、LDTR、TRが指し示す構造を求めてシ
ステムRAM53全体を探索することによって、これら
の値を推定する。たとえば、GDTでLDT項目を検出
すると、LDTRを求めることができる。
86モードであった場合、CPU状態保管ルーチンがC
R3、LDTR、TRにアクセスして、これらの値をE
000Hデータ構造に保管することができないはずであ
る。したがって、706、708、710でCR3、L
DTR、TRをそれぞれ推定しなければならない。一般
に、CR3、LDTR、TRが指し示す構造を求めてシ
ステムRAM53全体を探索することによって、これら
の値を推定する。たとえば、GDTでLDT項目を検出
すると、LDTRを求めることができる。
【0201】CR3についてはタスク706で推定され
る。CR3は、ページ・ディレクトリ・ベース・レジス
タ(PDBR)を保持し、これはページ・ディレクトリ
のページ・フレーム・アドレスと、ページレベル・キャ
ッシュ・ディスエーブル(PCD)ビットと、ページレ
ベル・ライト・スルー(PWT)ビットとを保管するも
のである。PDBRの推定は、ページ・ディレクトリが
システムRAM53内の4K境界から始まらなければな
らないことを認識し、CPU状態保管ルーチンによって
セグメントE000Hデータ構造に保管されたIDTR
およびGDTR用の値を認識し、BIOSコードがアド
レス空間0E0000〜0F0000から実行されるも
のと想定して実行される。高速化のためにBIOSコー
ドがすでにシャドウRAMにシャドウ化されているの
で、この想定は妥当なものである。オペレーティング・
システムがBIOSコードを他の区域にコピーした場合
は、CR3の推定が失敗に終わるはずである。
る。CR3は、ページ・ディレクトリ・ベース・レジス
タ(PDBR)を保持し、これはページ・ディレクトリ
のページ・フレーム・アドレスと、ページレベル・キャ
ッシュ・ディスエーブル(PCD)ビットと、ページレ
ベル・ライト・スルー(PWT)ビットとを保管するも
のである。PDBRの推定は、ページ・ディレクトリが
システムRAM53内の4K境界から始まらなければな
らないことを認識し、CPU状態保管ルーチンによって
セグメントE000Hデータ構造に保管されたIDTR
およびGDTR用の値を認識し、BIOSコードがアド
レス空間0E0000〜0F0000から実行されるも
のと想定して実行される。高速化のためにBIOSコー
ドがすでにシャドウRAMにシャドウ化されているの
で、この想定は妥当なものである。オペレーティング・
システムがBIOSコードを他の区域にコピーした場合
は、CR3の推定が失敗に終わるはずである。
【0202】上記の認識と想定により、物理メモリのす
べての4Kページがテストされ、BIOSコード・セグ
メントに対応するページ変換テーブルの存在が確認され
る。すなわち、そのページへの0380Hというオフセ
ットには、000E0XXX、000E1XXX、00
0E2XXX、・・・000FFXXXという値が含ま
れるはずである。そのページが突き止められると、最初
の項目が上記の位置にあるページ・テーブルの物理アド
レスに対応するページ・ディレクトリを求めて、システ
ムRAM53が探索される。ページ・ディレクトリの物
理アドレスは、PDBRの値の「推測」として優れたも
のである。
べての4Kページがテストされ、BIOSコード・セグ
メントに対応するページ変換テーブルの存在が確認され
る。すなわち、そのページへの0380Hというオフセ
ットには、000E0XXX、000E1XXX、00
0E2XXX、・・・000FFXXXという値が含ま
れるはずである。そのページが突き止められると、最初
の項目が上記の位置にあるページ・テーブルの物理アド
レスに対応するページ・ディレクトリを求めて、システ
ムRAM53が探索される。ページ・ディレクトリの物
理アドレスは、PDBRの値の「推測」として優れたも
のである。
【0203】次に、PDBRがGDTRおよびIDTR
用のアドレスを正しく変換することを確認することによ
り、仮定のPDBRを検査する。すなわち、PDBRは
GDTRの線形アドレスを変換するために使用され、G
DTの最初の項目はヌルになるよう検査される(CPU
モードがいずれであっても、GDTの先頭8バイトは必
ず00Hになる)。次に、返される物理アドレスが物理
メモリの境界内になるようこのアドレスを検査する。線
形/物理変換を実施するため、CPUの変換方式に似た
サブルーチンが使用される。すなわち、変換したアドレ
スがESIで返され、物理ページが物理メモリ内に存在
する場合は繰上りフラグCFがクリアされ、物理ページ
がメモリ内に存在しない場合はCFがSETされる。こ
の変換ルーチンを使用して、GDTの最初のバイトがメ
モり53から読み取られる。GDTの最初の項目がヌル
である場合、仮定のPDBRはその最初のテストに合格
したので、もう一度テストされる。次にPDBRを使用
してIDTRを変換し、この変換ルーチンによってID
Tを検出する。次に、返される物理アドレスが物理メモ
リの境界内になるようこのアドレスを検査する。IDT
の最初の位置が物理メモリ内に存在する場合、PDBR
はその2番目のテストに合格している。
用のアドレスを正しく変換することを確認することによ
り、仮定のPDBRを検査する。すなわち、PDBRは
GDTRの線形アドレスを変換するために使用され、G
DTの最初の項目はヌルになるよう検査される(CPU
モードがいずれであっても、GDTの先頭8バイトは必
ず00Hになる)。次に、返される物理アドレスが物理
メモリの境界内になるようこのアドレスを検査する。線
形/物理変換を実施するため、CPUの変換方式に似た
サブルーチンが使用される。すなわち、変換したアドレ
スがESIで返され、物理ページが物理メモリ内に存在
する場合は繰上りフラグCFがクリアされ、物理ページ
がメモリ内に存在しない場合はCFがSETされる。こ
の変換ルーチンを使用して、GDTの最初のバイトがメ
モり53から読み取られる。GDTの最初の項目がヌル
である場合、仮定のPDBRはその最初のテストに合格
したので、もう一度テストされる。次にPDBRを使用
してIDTRを変換し、この変換ルーチンによってID
Tを検出する。次に、返される物理アドレスが物理メモ
リの境界内になるようこのアドレスを検査する。IDT
の最初の位置が物理メモリ内に存在する場合、PDBR
はその2番目のテストに合格している。
【0204】仮定のPDBRがGDTRおよびIDTR
に正しく変換された場合、その値はPDBRであると見
なされ、セグメントE000Hデータ構造内のCR3区
域に書き込まれる。これに対し、仮定のCR3がいずれ
かのテストで不合格になる場合、そのルーチンがもう一
度始まり、有効なCR3に到達すると思われる別のBI
OSコード・セグメント・ページ変換テーブルを求め
て、システム・メモリを探索する。
に正しく変換された場合、その値はPDBRであると見
なされ、セグメントE000Hデータ構造内のCR3区
域に書き込まれる。これに対し、仮定のCR3がいずれ
かのテストで不合格になる場合、そのルーチンがもう一
度始まり、有効なCR3に到達すると思われる別のBI
OSコード・セグメント・ページ変換テーブルを求め
て、システム・メモリを探索する。
【0205】通常のプレーナ操作の場合、PCDおよび
PWTは必ず00Hに固定されているものと想定され
る。これらの値はゼロに設定され、セグメントE000
Hデータ構造内のCR3区域にPDBRとともに書き込
まれる。
PWTは必ず00Hに固定されているものと想定され
る。これらの値はゼロに設定され、セグメントE000
Hデータ構造内のCR3区域にPDBRとともに書き込
まれる。
【0206】CR3が推定されると、708でLDTR
が推定される。CR3が推定された場合、LDTがGD
T内のどこかにあると認識し、LDTがメモリ内に存在
しなければならないことを認識して、LDTRを推定す
ることができる。LDTRを推定するため、存在のマー
クが付けられているLDTを求めてGDTが探索され
る。物理メモリ内に存在する最初のLDT(タスク70
6に付随する本文で説明した変換ルーチンによってテス
トされたもの)は、存在のマークが付けられ、LDTR
が指し示すテーブルであると見なされる。このテーブル
の先頭の物理アドレスは、セグメントE000Hデータ
構造内のLDTR区域に保管される。
が推定される。CR3が推定された場合、LDTがGD
T内のどこかにあると認識し、LDTがメモリ内に存在
しなければならないことを認識して、LDTRを推定す
ることができる。LDTRを推定するため、存在のマー
クが付けられているLDTを求めてGDTが探索され
る。物理メモリ内に存在する最初のLDT(タスク70
6に付随する本文で説明した変換ルーチンによってテス
トされたもの)は、存在のマークが付けられ、LDTR
が指し示すテーブルであると見なされる。このテーブル
の先頭の物理アドレスは、セグメントE000Hデータ
構造内のLDTR区域に保管される。
【0207】OS/2下で複数のLDTに存在のマーク
を付けられ、複数のLDTが物理メモリ内に存在可能で
あっても、上記のLDTR推定方法は十分信頼でき有用
であると思われる。EMM386は、一般的な仮想80
86モード・ルーチンであるので、問題を起こしそうで
あると思われるが、EMM386は1つのCR3と1つ
のLDTRしか備えていないので、EMM386用のC
R3とLDTRは推定しやすいものである。
を付けられ、複数のLDTが物理メモリ内に存在可能で
あっても、上記のLDTR推定方法は十分信頼でき有用
であると思われる。EMM386は、一般的な仮想80
86モード・ルーチンであるので、問題を起こしそうで
あると思われるが、EMM386は1つのCR3と1つ
のLDTRしか備えていないので、EMM386用のC
R3とLDTRは推定しやすいものである。
【0208】CR3とLDTRが推定されると、710
でTRが推定される。本質的には、使用中ビットが設定
されたタスク状態セレクタを求めて、GDTおよびLD
T内のそれぞれのタスク・セレクタ項目が探索される。
それが使用中80286タスク状態セレクタであるか、
または使用中80486タスク状態セレクタであるかを
確認するために、各項目のタイプ・フィールドがテスト
される。使用中286TSSまたは使用中486TSS
を含む最初の項目は、TRが指し示すアドレスであると
見なされる。使用中286または486TSSを含む項
目の物理アドレスは、セグメントE000Hデータ構造
内のTR区域に保管される。いずれの項目も使用中28
6または486TSSを含まない場合、セグメントE0
00Hデータ構造内のTR区域にゼロが保管される。
でTRが推定される。本質的には、使用中ビットが設定
されたタスク状態セレクタを求めて、GDTおよびLD
T内のそれぞれのタスク・セレクタ項目が探索される。
それが使用中80286タスク状態セレクタであるか、
または使用中80486タスク状態セレクタであるかを
確認するために、各項目のタイプ・フィールドがテスト
される。使用中286TSSまたは使用中486TSS
を含む最初の項目は、TRが指し示すアドレスであると
見なされる。使用中286または486TSSを含む項
目の物理アドレスは、セグメントE000Hデータ構造
内のTR区域に保管される。いずれの項目も使用中28
6または486TSSを含まない場合、セグメントE0
00Hデータ構造内のTR区域にゼロが保管される。
【0209】CR3、LDTR、TRを推定すると、コ
ードは712に継続する。712でTRが有効なTSS
を指している場合、TRが指し示すTSS内の使用中ビ
ットが714でクリアされる。いずれの場合もコードは
716に継続し、そこでDS、ES、FS、GSにGD
T用として有効なセレクタがロードされる。次に、71
8でCR3およびCR0にセグメントE000Hデータ
構造からの値がロードされる。次に、720でページン
グが使用可能になるので、線形アドレスが物理アドレス
と等しくなる唯一の区域は、セグメントE000Hおよ
びF000H内の区域になる。次に722で、IDT
R、GDTR、LDTR、TRにセグメントE000H
データ構造に格納されていた値がロードされる。
ードは712に継続する。712でTRが有効なTSS
を指している場合、TRが指し示すTSS内の使用中ビ
ットが714でクリアされる。いずれの場合もコードは
716に継続し、そこでDS、ES、FS、GSにGD
T用として有効なセレクタがロードされる。次に、71
8でCR3およびCR0にセグメントE000Hデータ
構造からの値がロードされる。次に、720でページン
グが使用可能になるので、線形アドレスが物理アドレス
と等しくなる唯一の区域は、セグメントE000Hおよ
びF000H内の区域になる。次に722で、IDT
R、GDTR、LDTR、TRにセグメントE000H
データ構造に格納されていた値がロードされる。
【0210】最後に、GS、FS、DS、ES、SS、
ESP、EFLAGS(VMビットの設定後)、CSに
対応する値をセグメントE000Hデータ構造からスタ
ック上に押し上げることにより、724および726で
仮想8086割込みスタックが作成される。また、タス
ク730のコードに対応する戻りアドレスが、726で
スタック上に押し上げられる。最後に、CPU40を仮
想8086モードに戻し、タスク730に対応するコー
ドに実行を転送するために、IRETD命令が実行され
る。
ESP、EFLAGS(VMビットの設定後)、CSに
対応する値をセグメントE000Hデータ構造からスタ
ック上に押し上げることにより、724および726で
仮想8086割込みスタックが作成される。また、タス
ク730のコードに対応する戻りアドレスが、726で
スタック上に押し上げられる。最後に、CPU40を仮
想8086モードに戻し、タスク730に対応するコー
ドに実行を転送するために、IRETD命令が実行され
る。
【0211】タスク730は、図27〜30の各種スレ
ッドのそれぞれが使用する共通スレッドを開始する。タ
スク730では、補助プロセッサ44がセグメントE0
00Hデータ構造に保管された値から復元される。次
に、732でアドレス線20(入出力ポート92H)の
状態がスタックからポッピングされる。次に、734で
シャドウRAMのセグメントC000Hがもう一度読取
り専用になる。736では、図9に付随する本文で説明
したように、パワー・マネージメント・ポートに01H
を書き込むことにより、APMがハードウェアに接続さ
れる。次に、738でシャドウRAMのセグメントE0
00HおよびF000Hがもう一度読取り専用になる。
最後に、740でCPU状態復元ルーチンは、通常レジ
ュームが行われたことを示すフラグを設定する。タスク
742、744、746は、CPU状態復元ルーチンに
よって実行されるわけではないが、サスペンド事象によ
って割込みが行われたコードに戻る前の所与の時点で、
8つの汎用レジスタがスタックから離れ、マスク可能な
割込みが可能になり(コードの割込みが行われたときに
可能になっている場合)、フラグがスタックから離れる
ことを示すためだけに使用する。最後に、CPU状態復
元ルーチンはスーパバイザ・ルーチンに戻り、このルー
チンはAPMに制御を返し、APMは古くなったシステ
ム値を更新して、割込みが行われたコードに制御を返
す。
ッドのそれぞれが使用する共通スレッドを開始する。タ
スク730では、補助プロセッサ44がセグメントE0
00Hデータ構造に保管された値から復元される。次
に、732でアドレス線20(入出力ポート92H)の
状態がスタックからポッピングされる。次に、734で
シャドウRAMのセグメントC000Hがもう一度読取
り専用になる。736では、図9に付随する本文で説明
したように、パワー・マネージメント・ポートに01H
を書き込むことにより、APMがハードウェアに接続さ
れる。次に、738でシャドウRAMのセグメントE0
00HおよびF000Hがもう一度読取り専用になる。
最後に、740でCPU状態復元ルーチンは、通常レジ
ュームが行われたことを示すフラグを設定する。タスク
742、744、746は、CPU状態復元ルーチンに
よって実行されるわけではないが、サスペンド事象によ
って割込みが行われたコードに戻る前の所与の時点で、
8つの汎用レジスタがスタックから離れ、マスク可能な
割込みが可能になり(コードの割込みが行われたときに
可能になっている場合)、フラグがスタックから離れる
ことを示すためだけに使用する。最後に、CPU状態復
元ルーチンはスーパバイザ・ルーチンに戻り、このルー
チンはAPMに制御を返し、APMは古くなったシステ
ム値を更新して、割込みが行われたコードに制御を返
す。
【0212】次にタスク704に戻って参照すると、割
込みが行われたときにCPU40が仮想8086モード
になっていなかった場合、コードは750〜792の経
路をたどり、そこでコードはタスク730〜748から
なる共通スレッドと統合される。750では、セグメン
トE000Hデータ構造内のTR値によってTRが有効
なTSSを指し示すことが示されると、そのTSS内の
使用中ビットが752でクリアされる。いずれの場合
も、次に754でGDTRとCR0にセグメントE00
0Hデータ構造からの値がロードされる。
込みが行われたときにCPU40が仮想8086モード
になっていなかった場合、コードは750〜792の経
路をたどり、そこでコードはタスク730〜748から
なる共通スレッドと統合される。750では、セグメン
トE000Hデータ構造内のTR値によってTRが有効
なTSSを指し示すことが示されると、そのTSS内の
使用中ビットが752でクリアされる。いずれの場合
も、次に754でGDTRとCR0にセグメントE00
0Hデータ構造からの値がロードされる。
【0213】次に、タスク756〜764でダミー・ペ
ージ・ディレクトリ・テーブルとページ変換テーブルが
セグメントC000Hにロードされる。第1に、756
でシャドウRAMのセグメントC000Hが読取り/書
込みになる。第2に、758でアドレス0C0000H
に新しいページ・ディレクトリ・テーブルが作成され
る。第3に、760でその新しいページ・ディレクトリ
・テーブル内の最初の項目が0C1000Hを指し示す
ように変更される。第4に、762で、アドレス0E0
000〜0FFFFFが存在し、線形アドレスがそのア
ドレス範囲用の物理アドレスと等しくなるように、0C
1000Hに新しいページ変換テーブルが作成される。
最後に、0C0000H内の新しいダミー・ページ・デ
ィレクトリとページ変換テーブルによってアドレス変換
が行われるように、CR3内のページ・ディレクトリ・
ベース・レジスタに0C0000Hがロードされる。タ
スク754でCR0がロードされたときに、ページング
は再活動化されている(該当する場合)。
ージ・ディレクトリ・テーブルとページ変換テーブルが
セグメントC000Hにロードされる。第1に、756
でシャドウRAMのセグメントC000Hが読取り/書
込みになる。第2に、758でアドレス0C0000H
に新しいページ・ディレクトリ・テーブルが作成され
る。第3に、760でその新しいページ・ディレクトリ
・テーブル内の最初の項目が0C1000Hを指し示す
ように変更される。第4に、762で、アドレス0E0
000〜0FFFFFが存在し、線形アドレスがそのア
ドレス範囲用の物理アドレスと等しくなるように、0C
1000Hに新しいページ変換テーブルが作成される。
最後に、0C0000H内の新しいダミー・ページ・デ
ィレクトリとページ変換テーブルによってアドレス変換
が行われるように、CR3内のページ・ディレクトリ・
ベース・レジスタに0C0000Hがロードされる。タ
スク754でCR0がロードされたときに、ページング
は再活動化されている(該当する場合)。
【0214】次に、766でシャドウRAMのセグメン
トE000HおよびF000Hが読取り/書込みにな
る。次に、サスペンドされたときにCPU40が16ビ
ット・コードを実行していた場合、それは16ビット・
モードになっていたので、770で16ビット・コード
経路を指し示すオフセットがセグメントE000Hデー
タ構造に保管される。これに対し、CPU40が16ビ
ット・モードになっていなかった場合、それは32ビッ
ト・モードになっていたので、772で16ビット・オ
フセットの代わりに32ビット・コード経路を指し示す
オフセットがセグメントE000Hデータ構造に保管さ
れる。いずれの場合も、これらのコード経路は並列であ
り、一方が16ビット・オペランドを使用し、もう一方
が32ビット・オペランドを使用する点だけが異なって
いる。タスク770および772は、単に並列経路のい
ずれかへのオフセットをセットアップするだけである。
一方の経路(オフセットに対応する経路)には、以下の
タスク782から入る。
トE000HおよびF000Hが読取り/書込みにな
る。次に、サスペンドされたときにCPU40が16ビ
ット・コードを実行していた場合、それは16ビット・
モードになっていたので、770で16ビット・コード
経路を指し示すオフセットがセグメントE000Hデー
タ構造に保管される。これに対し、CPU40が16ビ
ット・モードになっていなかった場合、それは32ビッ
ト・モードになっていたので、772で16ビット・オ
フセットの代わりに32ビット・コード経路を指し示す
オフセットがセグメントE000Hデータ構造に保管さ
れる。いずれの場合も、これらのコード経路は並列であ
り、一方が16ビット・オペランドを使用し、もう一方
が32ビット・オペランドを使用する点だけが異なって
いる。タスク770および772は、単に並列経路のい
ずれかへのオフセットをセットアップするだけである。
一方の経路(オフセットに対応する経路)には、以下の
タスク782から入る。
【0215】次に、774で、セグメントE000Hデ
ータ構造からのCR3値がEDXにロードされ、セグメ
ントE000Hデータ構造からのSS値がCXにロード
され、セグメントE000Hデータ構造からのESP値
がEBPにロードされ、セグメントE000Hデータ構
造からのTR値がESIの上半分にロードされ、セグメ
ントE000Hデータ構造からのLDTR値がESIの
下半分(SI)にロードされる。これらの値は、以下の
正しい位置にシフトされる。次に、776でGDTR、
LDTR、CR0にセグメントE000Hデータ構造か
らのそれぞれの値がロードされる。778では、SIに
格納されたLDTR値がLDTRにロードされる。次
に、タスク770または772のいずれかで配置された
オフセットまでコードが遠距離ジャンプする。この遠距
離ジャンプは、命令コードをソース・コード内に直接配
置し、770または772いずれかからのオフセットを
使用することによってコーディングされる。次に、78
2でコードは、16ビット命令コード経路または32ビ
ット命令コード経路のいずれかに継続する。
ータ構造からのCR3値がEDXにロードされ、セグメ
ントE000Hデータ構造からのSS値がCXにロード
され、セグメントE000Hデータ構造からのESP値
がEBPにロードされ、セグメントE000Hデータ構
造からのTR値がESIの上半分にロードされ、セグメ
ントE000Hデータ構造からのLDTR値がESIの
下半分(SI)にロードされる。これらの値は、以下の
正しい位置にシフトされる。次に、776でGDTR、
LDTR、CR0にセグメントE000Hデータ構造か
らのそれぞれの値がロードされる。778では、SIに
格納されたLDTR値がLDTRにロードされる。次
に、タスク770または772のいずれかで配置された
オフセットまでコードが遠距離ジャンプする。この遠距
離ジャンプは、命令コードをソース・コード内に直接配
置し、770または772いずれかからのオフセットを
使用することによってコーディングされる。次に、78
2でコードは、16ビット命令コード経路または32ビ
ット命令コード経路のいずれかに継続する。
【0216】次に、784で、EDXに格納されたCR
3値がCR3にロードされ、CXに格納されたSS値が
SSにロードされ、EBPに格納されたESP値がES
Pにロードされる。次に786で、GS、FS、ES、
DSがスタックから離れる。788で割込みが行われた
CPU40が保護モードでコードを実行していた場合、
790でESIの上半分に格納されたTR値がTRにロ
ードされる。いずれの場合も、コードはタスク792に
継続し、そこでデバッグ・レジスタDR0、DR1、D
R2、DR3、DR6、DR7がスタックから離れる。
3値がCR3にロードされ、CXに格納されたSS値が
SSにロードされ、EBPに格納されたESP値がES
Pにロードされる。次に786で、GS、FS、ES、
DSがスタックから離れる。788で割込みが行われた
CPU40が保護モードでコードを実行していた場合、
790でESIの上半分に格納されたTR値がTRにロ
ードされる。いずれの場合も、コードはタスク792に
継続し、そこでデバッグ・レジスタDR0、DR1、D
R2、DR3、DR6、DR7がスタックから離れる。
【0217】この時点で、このコード経路は、前述のタ
スク730〜748からなる共通コード経路と統合され
る。794では、CPU状態保管ルーチンのタスク64
0からの共通コード経路にエラー回復ルーチンも加わ
る。
スク730〜748からなる共通コード経路と統合され
る。794では、CPU状態保管ルーチンのタスク64
0からの共通コード経路にエラー回復ルーチンも加わ
る。
【0218】次に図31〜33を参照すると、同図に
は、800から始まる8259状態保管ルーチンの流れ
図が示されている。8259の状態の保管では、802
におけるリアルタイム・クロック98が使用する定期割
込み値の保管と、804における他のすべての読取り可
能レジスタのセグメントE000Hデータ構造への保管
が続行される。コンピュータ・システム10のアーキテ
クチャでは、当技術分野で周知のように、所与の825
9読取り専用レジスタが固定値を有することが必要であ
る。これらの値は既知であり、求める必要はない。求め
るのが難しい8259値は、8259基底アドレスと、
8259スレーブ・アドレスと、OSによる保留または
使用中割込みを示すように2つの8259が設定されて
いるかどうかである。
は、800から始まる8259状態保管ルーチンの流れ
図が示されている。8259の状態の保管では、802
におけるリアルタイム・クロック98が使用する定期割
込み値の保管と、804における他のすべての読取り可
能レジスタのセグメントE000Hデータ構造への保管
が続行される。コンピュータ・システム10のアーキテ
クチャでは、当技術分野で周知のように、所与の825
9読取り専用レジスタが固定値を有することが必要であ
る。これらの値は既知であり、求める必要はない。求め
るのが難しい8259値は、8259基底アドレスと、
8259スレーブ・アドレスと、OSによる保留または
使用中割込みを示すように2つの8259が設定されて
いるかどうかである。
【0219】上記の4つの項目は、図31〜33の残り
のコードによって確認される。806では、キーボード
12およびマウス13の割込みだけをマスク解除した状
態にして、8259がマスキングされる。
のコードによって確認される。806では、キーボード
12およびマウス13の割込みだけをマスク解除した状
態にして、8259がマスキングされる。
【0220】次に、808で物理メモリの最下位1Kを
セグメントC000Hデータ構造にコピーすることによ
り、割込みベクトル・テーブルが保管される。次に81
0では、セグメントC800Hから始まる256通りの
ダミー割込みサービス・ルーチンを指し示す、256通
りの固有のダミー・ベクトルをロードすることにより、
物理メモリの最下位1Kに新しい「ダミー」割込みベク
トル・テーブルがロードされる。812では、256通
りのダミー割込みサービス・ルーチンがセグメントC8
00Hに生成される。
セグメントC000Hデータ構造にコピーすることによ
り、割込みベクトル・テーブルが保管される。次に81
0では、セグメントC800Hから始まる256通りの
ダミー割込みサービス・ルーチンを指し示す、256通
りの固有のダミー・ベクトルをロードすることにより、
物理メモリの最下位1Kに新しい「ダミー」割込みベク
トル・テーブルがロードされる。812では、256通
りのダミー割込みサービス・ルーチンがセグメントC8
00Hに生成される。
【0221】キーボード12およびマウス13の割込み
は814で禁止される。816では、無応答のキーボー
ド12およびマウス13の割込みに対して肯定応答が行
われる。
は814で禁止される。816では、無応答のキーボー
ド12およびマウス13の割込みに対して肯定応答が行
われる。
【0222】次に、818でキーボード割込みが生成さ
れ、基本8259が保留または使用中になるように設定
されているかどうかを確認するために、820で割込み
がテストされる。次にこの値はセグメントE000Hデ
ータ構造に書き込まれる。822では、コードは割込み
への対応が行われるのを待つ。824でダミー・サービ
ス・ルーチンの1つを呼び出すことにより、割込みへの
対応が行われる。ダミー・サービス・ルーチンを呼び出
すと、8259基底アドレスが決まり、8259が保留
または使用中モードになっていたかどうかが判定され
る。この基底アドレスとモードはセグメントE000H
データ構造に保管される。
れ、基本8259が保留または使用中になるように設定
されているかどうかを確認するために、820で割込み
がテストされる。次にこの値はセグメントE000Hデ
ータ構造に書き込まれる。822では、コードは割込み
への対応が行われるのを待つ。824でダミー・サービ
ス・ルーチンの1つを呼び出すことにより、割込みへの
対応が行われる。ダミー・サービス・ルーチンを呼び出
すと、8259基底アドレスが決まり、8259が保留
または使用中モードになっていたかどうかが判定され
る。この基底アドレスとモードはセグメントE000H
データ構造に保管される。
【0223】タスク826、828、830、832
で、スレープ8259について同様の手順が実行され
る。
で、スレープ8259について同様の手順が実行され
る。
【0224】834では、C000Hデータ構造からの
値を物理メモリの下位1Kにコピーして戻すことによ
り、割込みベクトル・テーブルが復元される。次に、8
36でセグメントC000Hがもう一度読取り専用にな
り、838ですべての割込みがマスキングされ、840
で呼出し側プログラムに戻る準備が行われる。
値を物理メモリの下位1Kにコピーして戻すことによ
り、割込みベクトル・テーブルが復元される。次に、8
36でセグメントC000Hがもう一度読取り専用にな
り、838ですべての割込みがマスキングされ、840
で呼出し側プログラムに戻る準備が行われる。
【0225】作業域マネージャ
電源投入時にサスペンドされていたコンピュータ・シス
テムをレジュームしたユーザがコンピュータ・システム
をサスペンドしたのと同一ユーザではない場合、データ
紛失の可能性が発生する。このようなデータ紛失の可能
性は、前のユーザがオープンしたままのアプリケーショ
ンが次のユーザから容易にアクセスできるために発生
し、それはコンピュータ・システムが前にサスペンドし
た状態にレジュームするからである。したがって、同一
コンピュータ・システムの後続ユーザによって、未保管
のデータが偶然にまたは故意に修正または破棄される可
能性がある。上記のシナリオは、家族全体で1台のパー
ソナル・コンピュータ・システムを使用したり、複数の
従業員が1台のパーソナル・コンピュータ・システムを
使用するように、単一コンピュータ・システムを複数の
ユーザが使用する場合に特に該当する。
テムをレジュームしたユーザがコンピュータ・システム
をサスペンドしたのと同一ユーザではない場合、データ
紛失の可能性が発生する。このようなデータ紛失の可能
性は、前のユーザがオープンしたままのアプリケーショ
ンが次のユーザから容易にアクセスできるために発生
し、それはコンピュータ・システムが前にサスペンドし
た状態にレジュームするからである。したがって、同一
コンピュータ・システムの後続ユーザによって、未保管
のデータが偶然にまたは故意に修正または破棄される可
能性がある。上記のシナリオは、家族全体で1台のパー
ソナル・コンピュータ・システムを使用したり、複数の
従業員が1台のパーソナル・コンピュータ・システムを
使用するように、単一コンピュータ・システムを複数の
ユーザが使用する場合に特に該当する。
【0226】本発明では、複数のユーザがお互いの特定
のアプリケーション・プログラムおよび個々のシステム
選択設定に干渉せずにシステムを使用できるように、パ
ーソナル・コンピュータ・システムが変更されている。
この変更は、作業域マネージャおよび作業域設定プロフ
ァイル・ファイルを生成する複数ユーザ・システム選択
設定論理(以下、MUSPという)を介して行われる。
作業域マネージャにより、ユーザは、ある作業域から別
の作業域への切替え、ユーザ・パスワードによる作業域
のロック、作業域の選択、作業域のクローズ、作業域の
作成など、様々な機能を実行することができる。アクセ
ス用に作業域が選択されると、ユーザが作業域マネージ
ャにもう一度アクセスするまで、残りの作業域は隠さ
れ、ユーザがアクセスできなくなる。
のアプリケーション・プログラムおよび個々のシステム
選択設定に干渉せずにシステムを使用できるように、パ
ーソナル・コンピュータ・システムが変更されている。
この変更は、作業域マネージャおよび作業域設定プロフ
ァイル・ファイルを生成する複数ユーザ・システム選択
設定論理(以下、MUSPという)を介して行われる。
作業域マネージャにより、ユーザは、ある作業域から別
の作業域への切替え、ユーザ・パスワードによる作業域
のロック、作業域の選択、作業域のクローズ、作業域の
作成など、様々な機能を実行することができる。アクセ
ス用に作業域が選択されると、ユーザが作業域マネージ
ャにもう一度アクセスするまで、残りの作業域は隠さ
れ、ユーザがアクセスできなくなる。
【0227】特に、図34は、作業域タスク・リスト2
000の形式の作業域マネージャを示している。作業域
タスク・リスト2000は、コンピュータ・システムの
ディスプレイ11(図1に示す)上に表示されるが、マ
ウス制御ポインティング・デバイス13(図1に示す)
を使用するウィンドウタイプの動作環境で表示されるこ
とが好ましい。作業域タスク・リスト2000は、複数
の作業域2002〜2008を含む。作業域はどのよう
な方法でも定義できるが、図示の実施例では個々のユー
ザを表すものとして各作業域を定義している。それぞれ
の作業域は似ているので、2002に示す作業域1につ
いての説明は、一般にすべての作業域に適用されること
を理解した上で論じることにする。
000の形式の作業域マネージャを示している。作業域
タスク・リスト2000は、コンピュータ・システムの
ディスプレイ11(図1に示す)上に表示されるが、マ
ウス制御ポインティング・デバイス13(図1に示す)
を使用するウィンドウタイプの動作環境で表示されるこ
とが好ましい。作業域タスク・リスト2000は、複数
の作業域2002〜2008を含む。作業域はどのよう
な方法でも定義できるが、図示の実施例では個々のユー
ザを表すものとして各作業域を定義している。それぞれ
の作業域は似ているので、2002に示す作業域1につ
いての説明は、一般にすべての作業域に適用されること
を理解した上で論じることにする。
【0228】2002に示す作業域1は、一般にアプリ
ケーション・プログラム域2014を含む。アプリケー
ション・プログラム域2014を使用すると、2012
に示すアプリケーション・プログラムを特定の作業域に
割り当てることができる。割り当てられたアプリケーシ
ョン・プログラム2012は、ユーザが頻繁に使用する
アプリケーション・プログラムであるか、サスペンド/
レジューム操作によってサスペンドされた「オープン」
アプリケーションであるか、またはその両方である場合
もある。通常、アプリケーション・プログラム域201
4には、アプリケーション・プログラム名2012と、
それに関連するアイコン2010が表示される。
ケーション・プログラム域2014を含む。アプリケー
ション・プログラム域2014を使用すると、2012
に示すアプリケーション・プログラムを特定の作業域に
割り当てることができる。割り当てられたアプリケーシ
ョン・プログラム2012は、ユーザが頻繁に使用する
アプリケーション・プログラムであるか、サスペンド/
レジューム操作によってサスペンドされた「オープン」
アプリケーションであるか、またはその両方である場合
もある。通常、アプリケーション・プログラム域201
4には、アプリケーション・プログラム名2012と、
それに関連するアイコン2010が表示される。
【0229】作業域タスク・リスト2000は、複数の
機能ボタン2016〜2026も含んでいる。機能ボタ
ン2016により、ユーザはアクセスを試みるために各
種の作業域に切り替えることができる。たとえば、20
02に示す作業域1が現行タスクとして指定されている
場合、機能ボタン2016を「クリック」すると、現行
タスクが2004に示す作業域2に切り替わるはずであ
る。また、作業域は、ポインティング・デバイス13
(図1に示す)を作業域に向け、単一「クリック」を行
うことによって、切り替えることもできる。実際には、
作業域タスク・リスト2000のナビゲーションは、WI
NDOWSTMオペレーティング・システムで現在実現されて
いるプログラム・タスク・リストと同じように行われ
る。
機能ボタン2016〜2026も含んでいる。機能ボタ
ン2016により、ユーザはアクセスを試みるために各
種の作業域に切り替えることができる。たとえば、20
02に示す作業域1が現行タスクとして指定されている
場合、機能ボタン2016を「クリック」すると、現行
タスクが2004に示す作業域2に切り替わるはずであ
る。また、作業域は、ポインティング・デバイス13
(図1に示す)を作業域に向け、単一「クリック」を行
うことによって、切り替えることもできる。実際には、
作業域タスク・リスト2000のナビゲーションは、WI
NDOWSTMオペレーティング・システムで現在実現されて
いるプログラム・タスク・リストと同じように行われ
る。
【0230】作業域が切り替えられると、ユーザは、機
能ボタン2018によりその作業域に入ることを試みる
ことができる。作業域がユーザ・パスワードによってロ
ックされている場合、ユーザは、指定の作業域にアクセ
スする前に作業域パスワードの入力を要求される。機能
ボタン2020により、ユーザは、そのタスクを終了す
ることによって指定の作業域から出ることができる。機
能ボタン2022では、ユーザ定義のパスワードにより
現在アクセス可能になっている作業域をロックすること
ができ、機能ボタン2024では、ロックした作業域の
ロックを解除することができる。機能ボタン2026
は、作業域タスク・リスト2000を取り消し、それを
ディスプレイから隠すものである。
能ボタン2018によりその作業域に入ることを試みる
ことができる。作業域がユーザ・パスワードによってロ
ックされている場合、ユーザは、指定の作業域にアクセ
スする前に作業域パスワードの入力を要求される。機能
ボタン2020により、ユーザは、そのタスクを終了す
ることによって指定の作業域から出ることができる。機
能ボタン2022では、ユーザ定義のパスワードにより
現在アクセス可能になっている作業域をロックすること
ができ、機能ボタン2024では、ロックした作業域の
ロックを解除することができる。機能ボタン2026
は、作業域タスク・リスト2000を取り消し、それを
ディスプレイから隠すものである。
【0231】次に図35〜39を参照すると、同図に
は、MUSP論理を実現する一連のステップを示す流れ
図が示されている。一連のステップはすべての作業域に
ついて似ているので、このような説明はすべての作業域
に適用されることを理解した上で作業域1に関して一連
のステップを説明する。ルーチンはステップ2028か
ら始まり、ステップ2030に移行し、そこで作業域タ
スク・リスト(図34に示す)がコンピュータ・システ
ムのディスプレイ・モニタ11上に表示される。ここで
ユーザは、前述したように実行すべき使用可能な機能を
どれでも選択することができる。図34の2002に示
す作業域1が選択されると、ルーチンはステップ203
2に移行し、そこで作業域にロック条件がないかどうか
検査される。作業域がロックされている場合、ステップ
2034はメッセージを表示し、ロックされている作業
域用のパスワードを入力するようユーザに要求する。次
にステップ2036は、ユーザが入力したパスワードを
評価する。パスワードが間違っている場合、ルーチンは
ステップ2030にジャンプして戻り、もう一度手順が
開始される。パスワードが正しい場合は、ルーチンはス
テップ2038に移行する。作業域がロックされていな
い場合、ルーチンはステップ2038からステップ20
32に直接移行するはずである。
は、MUSP論理を実現する一連のステップを示す流れ
図が示されている。一連のステップはすべての作業域に
ついて似ているので、このような説明はすべての作業域
に適用されることを理解した上で作業域1に関して一連
のステップを説明する。ルーチンはステップ2028か
ら始まり、ステップ2030に移行し、そこで作業域タ
スク・リスト(図34に示す)がコンピュータ・システ
ムのディスプレイ・モニタ11上に表示される。ここで
ユーザは、前述したように実行すべき使用可能な機能を
どれでも選択することができる。図34の2002に示
す作業域1が選択されると、ルーチンはステップ203
2に移行し、そこで作業域にロック条件がないかどうか
検査される。作業域がロックされている場合、ステップ
2034はメッセージを表示し、ロックされている作業
域用のパスワードを入力するようユーザに要求する。次
にステップ2036は、ユーザが入力したパスワードを
評価する。パスワードが間違っている場合、ルーチンは
ステップ2030にジャンプして戻り、もう一度手順が
開始される。パスワードが正しい場合は、ルーチンはス
テップ2038に移行する。作業域がロックされていな
い場合、ルーチンはステップ2038からステップ20
32に直接移行するはずである。
【0232】ステップ2038は、現行の作業域設定を
作業域設定プロファイル・ファイルに保管し、ステップ
2040は、指定の作業域設定(図示の例の場合には作
業域1)を読みとって、このような設定を作業域に復元
する。ステップ2042は、現行の作業域アプリケーシ
ョンをコンピュータ・システムのディスプレイ11(図
1に示す)から除去することによってそれらのアプリケ
ーションを隠し、ステップ2044は、指定の作業域ア
プリケーションを示す。次にルーチンはステップ204
6に移行し、そこでユーザは、新しいアプリケーション
のオープン、アプリケーションのクローズ、カラー、フ
ォントなどのシステム選択設定の変更などによって、従
来の方法で指定の作業域で作業することができる。
作業域設定プロファイル・ファイルに保管し、ステップ
2040は、指定の作業域設定(図示の例の場合には作
業域1)を読みとって、このような設定を作業域に復元
する。ステップ2042は、現行の作業域アプリケーシ
ョンをコンピュータ・システムのディスプレイ11(図
1に示す)から除去することによってそれらのアプリケ
ーションを隠し、ステップ2044は、指定の作業域ア
プリケーションを示す。次にルーチンはステップ204
6に移行し、そこでユーザは、新しいアプリケーション
のオープン、アプリケーションのクローズ、カラー、フ
ォントなどのシステム選択設定の変更などによって、従
来の方法で指定の作業域で作業することができる。
【0233】ユーザは、いかなる時点でも、キーボード
上で所定のキーストロークを打つことによって、作業域
タスク・リスト2000(図34に示す)にもう一度入
ることができる。図示の実施例では、作業域タスク・リ
スト2000(図34に示す)を呼び出すためにCtrl+E
scというキーストロークを使用している。Ctrl+Escとい
うキーストロークを実行すると、作業域タスク・リスト
2000(図34に示す)がステップ2030でもう一
度表示され、ユーザは表示されているいずれの機能でも
選択することができる。
上で所定のキーストロークを打つことによって、作業域
タスク・リスト2000(図34に示す)にもう一度入
ることができる。図示の実施例では、作業域タスク・リ
スト2000(図34に示す)を呼び出すためにCtrl+E
scというキーストロークを使用している。Ctrl+Escとい
うキーストロークを実行すると、作業域タスク・リスト
2000(図34に示す)がステップ2030でもう一
度表示され、ユーザは表示されているいずれの機能でも
選択することができる。
【0234】しかし、現行作業域のコンピュータ・シス
テムは、ユーザによるか、またはタイマの時間切れなど
の所定の制御事象によって、サスペンドすることもでき
る。(サスペンド操作の詳細については、これまでに説
明してきたので、ここでは論じない。)コンピュータ・
システムは、サスペンドされた後、もう一度ユーザによ
るか、または制御事象によって、ステップ2052でレ
ジュームされる。たとえば、サスペンド操作が開始され
たときにコンピュータ・システムが作業域1内で現在動
作している場合、コンピュータ・システムは(電源投入
時に)サスペンド操作が始まったときとまったく同じ動
作状態、すなわち、サスペンド操作が行われた作業域1
内のまったく同じ場所にレジュームする。
テムは、ユーザによるか、またはタイマの時間切れなど
の所定の制御事象によって、サスペンドすることもでき
る。(サスペンド操作の詳細については、これまでに説
明してきたので、ここでは論じない。)コンピュータ・
システムは、サスペンドされた後、もう一度ユーザによ
るか、または制御事象によって、ステップ2052でレ
ジュームされる。たとえば、サスペンド操作が開始され
たときにコンピュータ・システムが作業域1内で現在動
作している場合、コンピュータ・システムは(電源投入
時に)サスペンド操作が始まったときとまったく同じ動
作状態、すなわち、サスペンド操作が行われた作業域1
内のまったく同じ場所にレジュームする。
【0235】レジューム操作に続いて、ルーチンはステ
ップ2054に移行し、そこで復元された現行作業域設
定が作業域設定プロファイル・ファイルに保管され、ル
ーチンはステップ2056に移行する。ステップ205
6は、作業域設定プロファイル・ファイルからデフォル
トの作業域設定プロファイルを読み取り、現行作業域を
デフォルトの作業域設定に復元する。ステップ2058
は、前の作業域(すなわち、作業域1)アプリケーショ
ン・プログラムをコンピュータ・システムのディスプレ
イ11(図1に示す)から除去することによって、それ
らを隠し、ステップ2060は、デフォルトの作業域内
にデフォルトのアプリケーション・プログラムを表示す
る。次にルーチンはジャンプして2030に戻り、そこ
で作業域タスク・リスト2000(図34に示す)が表
示され、ユーザはもう一度作業域のナビゲーションを行
うことができる。作業域タスク・リスト2000はアプ
リケーション情報(すなわち、どのアプリケーションが
どの作業域に属しているかや、制限状況、パスワードな
ど)をRAMに保管しているので、その情報はコンピュ
ータ・システムの通常サスペンド操作の一部として保管
されている。その後のレジューム操作時に、このような
情報はもう一度作業域タスク・リスト2000に使用で
きるようになる。
ップ2054に移行し、そこで復元された現行作業域設
定が作業域設定プロファイル・ファイルに保管され、ル
ーチンはステップ2056に移行する。ステップ205
6は、作業域設定プロファイル・ファイルからデフォル
トの作業域設定プロファイルを読み取り、現行作業域を
デフォルトの作業域設定に復元する。ステップ2058
は、前の作業域(すなわち、作業域1)アプリケーショ
ン・プログラムをコンピュータ・システムのディスプレ
イ11(図1に示す)から除去することによって、それ
らを隠し、ステップ2060は、デフォルトの作業域内
にデフォルトのアプリケーション・プログラムを表示す
る。次にルーチンはジャンプして2030に戻り、そこ
で作業域タスク・リスト2000(図34に示す)が表
示され、ユーザはもう一度作業域のナビゲーションを行
うことができる。作業域タスク・リスト2000はアプ
リケーション情報(すなわち、どのアプリケーションが
どの作業域に属しているかや、制限状況、パスワードな
ど)をRAMに保管しているので、その情報はコンピュ
ータ・システムの通常サスペンド操作の一部として保管
されている。その後のレジューム操作時に、このような
情報はもう一度作業域タスク・リスト2000に使用で
きるようになる。
【0236】したがって、レジューム操作時には、現在
レジュームされている作業域設定が保管され、デフォル
トの作業域が開始され、その後に作業域タスク・リスト
2000(図34に示す)が続く。このようにして第1
のユーザがサスペンドしたコンピュータ・システムはた
だちに第2のユーザにとってアクセス可能にはならな
い。というのは、コンピュータ・システムは自動的に第
1のユーザがサスペンドしたコンピュータ・システムを
隠し、作業域タスク・リスト2000(図34に示す)
を表示するからである。
レジュームされている作業域設定が保管され、デフォル
トの作業域が開始され、その後に作業域タスク・リスト
2000(図34に示す)が続く。このようにして第1
のユーザがサスペンドしたコンピュータ・システムはた
だちに第2のユーザにとってアクセス可能にはならな
い。というのは、コンピュータ・システムは自動的に第
1のユーザがサスペンドしたコンピュータ・システムを
隠し、作業域タスク・リスト2000(図34に示す)
を表示するからである。
【0237】第1のユーザがシステムをサスペンドし、
第2のユーザがコンピュータ・システムをレジューム
し、さらにコンピュータ・システムをサスペンドする場
合、両方のユーザのコンピュータ・システムの状態がサ
スペンドされることになる。第1のユーザがサスペンド
したコンピュータ・システムは第2のユーザによって最
初にレジュームされたが、第2のユーザが第1のユーザ
の作業域にアクセスしなかったか、またはそのアクセス
が制限されていた場合、第1のユーザの作業域はメモリ
に残っており、第2のユーザは他の作業域にアクセスす
るだけである。第2のユーザがコンピュータ・システム
をサスペンドしたとき、第1のユーザと第2のユーザの
両方のコンピュータ状態は、どちらもコンピュータ・シ
ステムのRAMに常駐していたので保管されることにな
る。このようにして、それぞれのユーザは衝突せずにコ
ンピュータ・システムをサスペンドすることができる。
第2のユーザがコンピュータ・システムをレジューム
し、さらにコンピュータ・システムをサスペンドする場
合、両方のユーザのコンピュータ・システムの状態がサ
スペンドされることになる。第1のユーザがサスペンド
したコンピュータ・システムは第2のユーザによって最
初にレジュームされたが、第2のユーザが第1のユーザ
の作業域にアクセスしなかったか、またはそのアクセス
が制限されていた場合、第1のユーザの作業域はメモリ
に残っており、第2のユーザは他の作業域にアクセスす
るだけである。第2のユーザがコンピュータ・システム
をサスペンドしたとき、第1のユーザと第2のユーザの
両方のコンピュータ状態は、どちらもコンピュータ・シ
ステムのRAMに常駐していたので保管されることにな
る。このようにして、それぞれのユーザは衝突せずにコ
ンピュータ・システムをサスペンドすることができる。
【0238】ユーザは、作業域タスク・リスト2000
(図34に示す)から作業域のロックを選択することも
できる。ユーザが作業域のロックを選択した場合、ルー
チンはステップ2030からステップ2062に移行す
る。ステップ2062では、ルーチンはメッセージを表
示し、ユーザがその作業域をロックするための所望の作
業域パスワードを入力することを要求する。次にステッ
プ2064は、ユーザが間違いなく実際の所望のパスワ
ードを入力したことを確認するために作業域パスワード
を再入力するようユーザに要求する。次にルーチンは、
ステップ2066で2つのパスワード入力を比較し、両
者が同一であれば、作業域がロックされ、ルーチンがス
テップ2030に移行し、作業域タスク・リスト200
0(図34に示す)を表示する。2つのパスワード入力
が同一ではない場合、ルーチンはジャンプしてステップ
2030に戻って、作業域タスク・リスト2000(図
34に示す)を表示し、作業域はロック解除された状態
のままになる。
(図34に示す)から作業域のロックを選択することも
できる。ユーザが作業域のロックを選択した場合、ルー
チンはステップ2030からステップ2062に移行す
る。ステップ2062では、ルーチンはメッセージを表
示し、ユーザがその作業域をロックするための所望の作
業域パスワードを入力することを要求する。次にステッ
プ2064は、ユーザが間違いなく実際の所望のパスワ
ードを入力したことを確認するために作業域パスワード
を再入力するようユーザに要求する。次にルーチンは、
ステップ2066で2つのパスワード入力を比較し、両
者が同一であれば、作業域がロックされ、ルーチンがス
テップ2030に移行し、作業域タスク・リスト200
0(図34に示す)を表示する。2つのパスワード入力
が同一ではない場合、ルーチンはジャンプしてステップ
2030に戻って、作業域タスク・リスト2000(図
34に示す)を表示し、作業域はロック解除された状態
のままになる。
【0239】ユーザは、作業域タスク・リスト2000
(図34に示す)から作業域のロック解除を選択するこ
ともできる。このオプションが選択されると、ルーチン
はステップ2030からステップ2070に移行し、そ
こでルーチンはメッセージを表示し、ユーザがロックし
た作業域用のパスワードを入力することを要求する。ス
テップ2072は入力されたパスワードと作業域パスワ
ードとを比較し、両者が同一であれば、ステップ207
4は、作業域がロック解除されることを示すメッセージ
を表示し、ルーチンはステップ2030にジャンプし
て、もう一度作業域タスク・リスト2000(図34に
示す)を表示する。入力されたパスワードが作業域パス
ワードと同一ではない場合、ルーチンはステップ203
0にジャンプし、作業域をまだロックした状態で作業域
タスク・リスト2000(図34に示す)を表示する。
(図34に示す)から作業域のロック解除を選択するこ
ともできる。このオプションが選択されると、ルーチン
はステップ2030からステップ2070に移行し、そ
こでルーチンはメッセージを表示し、ユーザがロックし
た作業域用のパスワードを入力することを要求する。ス
テップ2072は入力されたパスワードと作業域パスワ
ードとを比較し、両者が同一であれば、ステップ207
4は、作業域がロック解除されることを示すメッセージ
を表示し、ルーチンはステップ2030にジャンプし
て、もう一度作業域タスク・リスト2000(図34に
示す)を表示する。入力されたパスワードが作業域パス
ワードと同一ではない場合、ルーチンはステップ203
0にジャンプし、作業域をまだロックした状態で作業域
タスク・リスト2000(図34に示す)を表示する。
【0240】最後にユーザは、作業域割当てにかかわら
ず、図34の機能ボタン2026を選択することによ
り、作業域タスク・リスト2000(図34に示す)か
ら出て、すべてのアプリケーションにアクセスすること
ができる。ルーチンはステップ2030からステップ2
076に移行し、そこでいずれかの作業域がロックされ
ているかどうかを確認するためにすべての作業域が検査
される。いずれかの作業域がロックされている場合、ユ
ーザはMUSP論理を出ることができないので、したが
って作業域タスク・リスト2000(図34に示す)を
使用しなければならない。いずれの作業域もロックされ
ていない場合、ステップ2078は現行作業域設定を作
業域設定プロファイル・ファイルに保管し、ステップ2
080はデフォルトの作業域設定プロファイルを読み取
り、それを現行作業域に復元する。次にルーチンは、ス
テップ2082ですべてのアプリケーション・プログラ
ムを表示し、MUSP論理はステップ2084で終了す
る。
ず、図34の機能ボタン2026を選択することによ
り、作業域タスク・リスト2000(図34に示す)か
ら出て、すべてのアプリケーションにアクセスすること
ができる。ルーチンはステップ2030からステップ2
076に移行し、そこでいずれかの作業域がロックされ
ているかどうかを確認するためにすべての作業域が検査
される。いずれかの作業域がロックされている場合、ユ
ーザはMUSP論理を出ることができないので、したが
って作業域タスク・リスト2000(図34に示す)を
使用しなければならない。いずれの作業域もロックされ
ていない場合、ステップ2078は現行作業域設定を作
業域設定プロファイル・ファイルに保管し、ステップ2
080はデフォルトの作業域設定プロファイルを読み取
り、それを現行作業域に復元する。次にルーチンは、ス
テップ2082ですべてのアプリケーション・プログラ
ムを表示し、MUSP論理はステップ2084で終了す
る。
【0241】作業域を隠したり表示するプロセスは、ウ
ィンドウ・マネージャによって実施される。ウィンドウ
・マネージャは、作業域タスク・リスト2000に対す
る応答として<GetWindowPos>と<SetWindowPos>を受け取
ったり、出したりする(後述する図42を参照)。この
ようにして、指定の作業域からのウィンドウはディスプ
レイ11上に表示され、指定の作業域に関連しないウィ
ンドウはディスプレイから除去される。
ィンドウ・マネージャによって実施される。ウィンドウ
・マネージャは、作業域タスク・リスト2000に対す
る応答として<GetWindowPos>と<SetWindowPos>を受け取
ったり、出したりする(後述する図42を参照)。この
ようにして、指定の作業域からのウィンドウはディスプ
レイ11上に表示され、指定の作業域に関連しないウィ
ンドウはディスプレイから除去される。
【0242】デスクトップ・マネージャ
本発明はどのようなコンピュータのコンテキストでも実
施可能であるが、本発明の特定の実施例の一例は、IB
Mが販売するIBM PS/1(R)シリーズ・コンピュ
ータのパーソナル・コンピュータ上で動作するデスクト
ップ・マネージャである。このようなコンピュータは、
そこに常駐するIBM(R)OS/2(R)オペレーティング
・システムなどのオペレーティング・システム・ソフト
ウェアを備え、それによって制御および調整されてい
る。さらに、ユーザとコンピュータ10との間のやりと
りを容易にするための図形表示として、Windows(R)のグ
ラフィカル・ユーザ・インタフェースなどのウィンドウ
環境がモニタ11上に表示されることが好ましい。
施可能であるが、本発明の特定の実施例の一例は、IB
Mが販売するIBM PS/1(R)シリーズ・コンピュ
ータのパーソナル・コンピュータ上で動作するデスクト
ップ・マネージャである。このようなコンピュータは、
そこに常駐するIBM(R)OS/2(R)オペレーティング
・システムなどのオペレーティング・システム・ソフト
ウェアを備え、それによって制御および調整されてい
る。さらに、ユーザとコンピュータ10との間のやりと
りを容易にするための図形表示として、Windows(R)のグ
ラフィカル・ユーザ・インタフェースなどのウィンドウ
環境がモニタ11上に表示されることが好ましい。
【0243】次に図40を参照すると、一般に図形表示
は、単一デスクトップ2142に似るように配置され、
それぞれのアプリケーション・プログラムは画面213
5のアプリケーション・ウィンドウ2144内で実行さ
れる。通常、デスクトップ上には複数の他のウィンドウ
2144が同時に存在し、それぞれのウィンドウが異な
るアプリケーションによって生成された情報を表示して
いる可能性がある。
は、単一デスクトップ2142に似るように配置され、
それぞれのアプリケーション・プログラムは画面213
5のアプリケーション・ウィンドウ2144内で実行さ
れる。通常、デスクトップ上には複数の他のウィンドウ
2144が同時に存在し、それぞれのウィンドウが異な
るアプリケーションによって生成された情報を表示して
いる可能性がある。
【0244】一般にウィンドウ環境は、コンピュータ・
システム10の動作を制御するためのユーティリティ・
プログラムの集合を含む、オペレーティング・システム
・ソフトウェアの一部である。オペレーティング・シス
テムは、ユーザとの直接インタフェースを含む、高レベ
ル機能を提供するためにアプリケーション・プログラム
とやりとりする。具体的には、アプリケーション・プロ
グラムは、オペレーティング・システムにタスク・コマ
ンドを出すことによってオペレーティング・システムの
諸機能を利用し、そのオペレーティング・システムが要
求されたタスクを実行する。たとえば、アプリケーショ
ン・プログラムは、ユーザに提示するためにオペレーテ
ィング・システムがウィンドウ2144上に所与の情報
を表示することを要求する場合もある。
システム10の動作を制御するためのユーティリティ・
プログラムの集合を含む、オペレーティング・システム
・ソフトウェアの一部である。オペレーティング・シス
テムは、ユーザとの直接インタフェースを含む、高レベ
ル機能を提供するためにアプリケーション・プログラム
とやりとりする。具体的には、アプリケーション・プロ
グラムは、オペレーティング・システムにタスク・コマ
ンドを出すことによってオペレーティング・システムの
諸機能を利用し、そのオペレーティング・システムが要
求されたタスクを実行する。たとえば、アプリケーショ
ン・プログラムは、ユーザに提示するためにオペレーテ
ィング・システムがウィンドウ2144上に所与の情報
を表示することを要求する場合もある。
【0245】特に言及したように、ウィンドウ環境は通
常、アプリケーション・アイコンを事前定義済みのアプ
リケーションのグループに編成するが、関連機能または
タスク別にオープン・アプリケーション・アイコンをグ
ループ化することはできない。すなわち、アプリケーシ
ョンが実行しているときは、そのウィンドウ(または最
小化されている場合はそのアイコン)は事前定義グルー
プの一部ではなくなっている。しかし、本発明は、呼び
出されたときに、ユーザがオープン・アプリケーション
を機能またはタスク別に関連付けたグループに編成でき
るようにするアクションが行われるような、追加のユー
ティリティ・プログラムを設けたことを特徴とする。本
システムのこの新しい挙動は、オペレーティング・シス
テムに関連する一連の既存システム・ルーチンとこの新
しいユーティリティ・ルーチンとのやりとりによって行
われる。本明細書に記載するように、このようなシステ
ム・ソフトウェア・ルーチンはまとまってアプリケーシ
ョン・プログラムとやりとりし、仮想デスクトップ・シ
ステムを作成する。
常、アプリケーション・アイコンを事前定義済みのアプ
リケーションのグループに編成するが、関連機能または
タスク別にオープン・アプリケーション・アイコンをグ
ループ化することはできない。すなわち、アプリケーシ
ョンが実行しているときは、そのウィンドウ(または最
小化されている場合はそのアイコン)は事前定義グルー
プの一部ではなくなっている。しかし、本発明は、呼び
出されたときに、ユーザがオープン・アプリケーション
を機能またはタスク別に関連付けたグループに編成でき
るようにするアクションが行われるような、追加のユー
ティリティ・プログラムを設けたことを特徴とする。本
システムのこの新しい挙動は、オペレーティング・シス
テムに関連する一連の既存システム・ルーチンとこの新
しいユーティリティ・ルーチンとのやりとりによって行
われる。本明細書に記載するように、このようなシステ
ム・ソフトウェア・ルーチンはまとまってアプリケーシ
ョン・プログラムとやりとりし、仮想デスクトップ・シ
ステムを作成する。
【0246】図41は、2202および2216に示す
複数のアプリケーション・プログラムと仮想デスクトッ
プ・システム2300とのやりとりの概略図である。シ
ステム2300は、コンピュータ・システム2200上
でアプリケーション・プログラムとともに同時に実行す
る可能性のあるオペレーティング・システム2204内
に位置する。それぞれのプログラム2202および22
16は、矢印2206および2220が概略を示すよう
に、オペレーティング・システム2204とのインタフ
ェースを取る。コンピュータ画面上に情報を表示するた
め、アプリケーション・プログラム2202および22
16は、表示要求を生成して仮想デスクトップ・システ
ム2300に送り、次に仮想デスクトップ・システム
は、矢印2208が概略を示すように、画面バッファ2
210とのインタフェースを直接取る。画面バッファ2
210の内容は、ケーブル2222を介してコンピュー
タ・モニタ2224に出力される。
複数のアプリケーション・プログラムと仮想デスクトッ
プ・システム2300とのやりとりの概略図である。シ
ステム2300は、コンピュータ・システム2200上
でアプリケーション・プログラムとともに同時に実行す
る可能性のあるオペレーティング・システム2204内
に位置する。それぞれのプログラム2202および22
16は、矢印2206および2220が概略を示すよう
に、オペレーティング・システム2204とのインタフ
ェースを取る。コンピュータ画面上に情報を表示するた
め、アプリケーション・プログラム2202および22
16は、表示要求を生成して仮想デスクトップ・システ
ム2300に送り、次に仮想デスクトップ・システム
は、矢印2208が概略を示すように、画面バッファ2
210とのインタフェースを直接取る。画面バッファ2
210の内容は、ケーブル2222を介してコンピュー
タ・モニタ2224に出力される。
【0247】本発明によれば、仮想デスクトップ・シス
テム2300は、表示画面11上で動作する「オープ
ン」アプリケーションを共通機能別に関連付けられたデ
スクトップ・グループに編成するための手段を提供す
る。このようなデスクトップ・グループは、コンピュー
タ画面上のデスクトップ表示域として現れる。図42
は、ウィンドウ・マネージャ2310と新規のデスクト
ップ・マネージャ2350とを含む仮想デスクトップ・
システム2300のブロック図である。ウィンドウ・マ
ネージャ2310とデスクトップ・マネージャ2350
とのやりとりは、矢印2320で概略を示すように、従
来のWindows(R)アプリケーション・プログラミング・イ
ンタフェース(API)の機能呼出しを使用することに
よって、一部が達成される。
テム2300は、表示画面11上で動作する「オープ
ン」アプリケーションを共通機能別に関連付けられたデ
スクトップ・グループに編成するための手段を提供す
る。このようなデスクトップ・グループは、コンピュー
タ画面上のデスクトップ表示域として現れる。図42
は、ウィンドウ・マネージャ2310と新規のデスクト
ップ・マネージャ2350とを含む仮想デスクトップ・
システム2300のブロック図である。ウィンドウ・マ
ネージャ2310とデスクトップ・マネージャ2350
とのやりとりは、矢印2320で概略を示すように、従
来のWindows(R)アプリケーション・プログラミング・イ
ンタフェース(API)の機能呼出しを使用することに
よって、一部が達成される。
【0248】具体的には、ウィンドウ・マネージャ23
10は、一般にコンピュータのアプリケーション・プロ
グラムの動作中にユーザが見るウィンドウの管理を担当
するシステム・ソフトウェア・ルーチンである。すなわ
ち、一般に、新規の仮想デスクトップ・システムに関連
して描写したり再描写する必要があるウィンドウおよび
ウィンドウ域の位置とサイズを追跡することはウィンド
ウ・マネージャのタスクである。このため、ウィンドウ
・マネージャ2310は、すべてのアプリケーション・
プログラムとやりとりし、アプリケーション間の調整を
行って、ウィンドウ表示が互いに干渉しないようにす
る。一般にウィンドウ・マネージャは既知のものであ
り、市販のウィンドウ環境に組み込まれている。
10は、一般にコンピュータのアプリケーション・プロ
グラムの動作中にユーザが見るウィンドウの管理を担当
するシステム・ソフトウェア・ルーチンである。すなわ
ち、一般に、新規の仮想デスクトップ・システムに関連
して描写したり再描写する必要があるウィンドウおよび
ウィンドウ域の位置とサイズを追跡することはウィンド
ウ・マネージャのタスクである。このため、ウィンドウ
・マネージャ2310は、すべてのアプリケーション・
プログラムとやりとりし、アプリケーション間の調整を
行って、ウィンドウ表示が互いに干渉しないようにす
る。一般にウィンドウ・マネージャは既知のものであ
り、市販のウィンドウ環境に組み込まれている。
【0249】また、デスクトップ・マネージャ2350
は、複数のデスクトップ・プログラム・グループ240
0を含むシステム・ソフトウェア・プログラムである。
本明細書に記載するように、デスクトップ・マネージャ
は、所定の範囲のオーバラップしない表示画面座標をそ
れぞれのデスクトップ2400に割り当て、アプリケー
ション・ウィンドウ位置によってこれらのデスクトップ
2400にオープン・アプリケーションを割り当てる。
デスクトップの範囲とオープン・アプリケーションの割
当ては、マネージャ2350に関連するデータ構造23
60に関して実施されることが好ましい。このデータ構
造2360は、デスクトップ・マネージャ2350内に
含まれるすべてのデスクトップ2400の名前/機能お
よび表示画面座標のリストであることが好ましい。本発
明の図示の実施例では、仮想デスクトップ・システム2
300のデスクトップ・マネージャ2350に4つのデ
スクトップが含まれていることが好ましいが、本発明の
原理によりデスクトップ・マネージャ2350がデスク
トップをいくつでもサポートできることは当業者には明
らかになるであろう。
は、複数のデスクトップ・プログラム・グループ240
0を含むシステム・ソフトウェア・プログラムである。
本明細書に記載するように、デスクトップ・マネージャ
は、所定の範囲のオーバラップしない表示画面座標をそ
れぞれのデスクトップ2400に割り当て、アプリケー
ション・ウィンドウ位置によってこれらのデスクトップ
2400にオープン・アプリケーションを割り当てる。
デスクトップの範囲とオープン・アプリケーションの割
当ては、マネージャ2350に関連するデータ構造23
60に関して実施されることが好ましい。このデータ構
造2360は、デスクトップ・マネージャ2350内に
含まれるすべてのデスクトップ2400の名前/機能お
よび表示画面座標のリストであることが好ましい。本発
明の図示の実施例では、仮想デスクトップ・システム2
300のデスクトップ・マネージャ2350に4つのデ
スクトップが含まれていることが好ましいが、本発明の
原理によりデスクトップ・マネージャ2350がデスク
トップをいくつでもサポートできることは当業者には明
らかになるであろう。
【0250】デスクトップ・マネージャ2350は、表
示画面2135上のアプリケーション・ウィンドウ21
44内のオープン・アプリケーションから選択したもの
の表示をユーザが管理するためのインタフェースも提供
する。このデスクトップ・マネージャ・インタフェース
は、一般に、Windows(R)のグラフィカル・ユーザ・イン
タフェースのプログラム・マネージャ・ユーティリティ
・プログラムが提供するユーザ・インタフェースと同様
のものである。本発明のこの特徴により、ユーザは、複
数のデスクトップ・グループ2400のうちのいずれで
も作成し表示することができ、それぞれのデスクトップ
・グループは機能またはタスク別に関連付けられたアプ
リケーションの集合を含む。
示画面2135上のアプリケーション・ウィンドウ21
44内のオープン・アプリケーションから選択したもの
の表示をユーザが管理するためのインタフェースも提供
する。このデスクトップ・マネージャ・インタフェース
は、一般に、Windows(R)のグラフィカル・ユーザ・イン
タフェースのプログラム・マネージャ・ユーティリティ
・プログラムが提供するユーザ・インタフェースと同様
のものである。本発明のこの特徴により、ユーザは、複
数のデスクトップ・グループ2400のうちのいずれで
も作成し表示することができ、それぞれのデスクトップ
・グループは機能またはタスク別に関連付けられたアプ
リケーションの集合を含む。
【0251】たとえば、ユーザは、ファックス文書を作
成し、それを図1のコンピュータから宛先にネットワー
クまたは電話回線を介して送信するのに必要なソフトウ
ェアを含むファックス送信/受信デスクトップ2400
を作成することができる。図43は、ワード・プロセッ
サ・アプリケーション・プログラム2410と、ローロ
デックス(アドレス帳)タイプ・アプリケーション・プ
ログラム2420と、ファックス通信プログラム243
0とを含む、このような「ファックス」デスクトップ2
400を示している。この場合、ワード・プロセッサ・
プログラム2410により、ユーザは、ローロデックス
・プログラム420によって識別されたアドレスを有す
る宛先向けのテキスト文書を作成することができる。通
信プログラム2430は、ネットワークによるそのアド
レスへの文書の伝送を開始する。
成し、それを図1のコンピュータから宛先にネットワー
クまたは電話回線を介して送信するのに必要なソフトウ
ェアを含むファックス送信/受信デスクトップ2400
を作成することができる。図43は、ワード・プロセッ
サ・アプリケーション・プログラム2410と、ローロ
デックス(アドレス帳)タイプ・アプリケーション・プ
ログラム2420と、ファックス通信プログラム243
0とを含む、このような「ファックス」デスクトップ2
400を示している。この場合、ワード・プロセッサ・
プログラム2410により、ユーザは、ローロデックス
・プログラム420によって識別されたアドレスを有す
る宛先向けのテキスト文書を作成することができる。通
信プログラム2430は、ネットワークによるそのアド
レスへの文書の伝送を開始する。
【0252】一般に、ユーザは、デスクトップ・マネー
ジャ2350が提供するユーザ・インタフェースからプ
ルダウンまたはポップアップ・メニューを取り出すこと
により、デスクトップを作成することができる。プルダ
ウンおよびポップアップ・メニューは、特にデスクトッ
プ・グループの作成および選択と、仮想デスクトップ・
システムの終了のためのコマンド選択肢のリストを提供
するユーザ・インタフェース要素である。その後、たと
えば、そのデスクトップ上のアプリケーション・ウィン
ドウをオープンするか、またはデスクトップ・マネージ
ャ画面上のアイコンでも表すことができるアプリケーシ
ョン・アイコンをマウス13によってデスクトップ上に
「ドラッグ・ドロップ」することにより、デスクトップ
にアプリケーションを追加することができる。デスクト
ップ内のアプリケーション・ウィンドウによって作成可
能なポップアップまたは「子」ウィンドウは、その親ウ
ィンドウと相対的な位置に自動的に位置決めされ、その
デスクトップに割り当てられたものになる。
ジャ2350が提供するユーザ・インタフェースからプ
ルダウンまたはポップアップ・メニューを取り出すこと
により、デスクトップを作成することができる。プルダ
ウンおよびポップアップ・メニューは、特にデスクトッ
プ・グループの作成および選択と、仮想デスクトップ・
システムの終了のためのコマンド選択肢のリストを提供
するユーザ・インタフェース要素である。その後、たと
えば、そのデスクトップ上のアプリケーション・ウィン
ドウをオープンするか、またはデスクトップ・マネージ
ャ画面上のアイコンでも表すことができるアプリケーシ
ョン・アイコンをマウス13によってデスクトップ上に
「ドラッグ・ドロップ」することにより、デスクトップ
にアプリケーションを追加することができる。デスクト
ップ内のアプリケーション・ウィンドウによって作成可
能なポップアップまたは「子」ウィンドウは、その親ウ
ィンドウと相対的な位置に自動的に位置決めされ、その
デスクトップに割り当てられたものになる。
【0253】デスクトップ2400は、そのデスクトッ
プに割り当てられたすべてのオープン・アプリケーショ
ンのリストとともに、そのアプリケーションのウィンド
ウのサイズとウィンドウ位置を格納するためのデータ構
造2450も含んでいる。このリストは、特定のアプリ
ケーション・ウィンドウがそれに属しているかどうかを
デスクトップが判定できるように、アプリケーション・
ウィンドウの位置をデスクトップに割り当てられた所定
の範囲のウィンドウ位置座標と比較する際に有用である
と思われる。
プに割り当てられたすべてのオープン・アプリケーショ
ンのリストとともに、そのアプリケーションのウィンド
ウのサイズとウィンドウ位置を格納するためのデータ構
造2450も含んでいる。このリストは、特定のアプリ
ケーション・ウィンドウがそれに属しているかどうかを
デスクトップが判定できるように、アプリケーション・
ウィンドウの位置をデスクトップに割り当てられた所定
の範囲のウィンドウ位置座標と比較する際に有用である
と思われる。
【0254】具体的には、それぞれのデスクトップ24
00には、デスクトップ・マネージャ2350によって
所定の範囲の表示画面座標が割り当てられており、デス
クトップ・マネージャは指定のアプリケーション・ウィ
ンドウをそのデスクトップへの割当て用の範囲内に位置
決めする。ウィンドウ・マネージャ2310を含む仮想
デスクトップ・システム2300は、たとえば、−1
6,767〜16,768ウィンドウ単位の範囲の表示
画面座標でのアプリケーション・ウィンドウの位置決め
をサポートする。通常、現行ビューと呼ばれる、その範
囲のサブセットのみが画面上に見えている。本発明の図
示の実施例では、表示画面2135のビデオ解像度の最
大幅は640ウィンドウ単位であることが好ましい。し
たがって、現行ビューは、0〜640ウィンドウ単位か
らなる範囲を含むことが好ましい。しかし、この解像度
は表示画面によって変化する可能性があり、それによ
り、画面上に表示する予定のアプリケーションがその可
視域の外側にシフトしてしまうこともある。
00には、デスクトップ・マネージャ2350によって
所定の範囲の表示画面座標が割り当てられており、デス
クトップ・マネージャは指定のアプリケーション・ウィ
ンドウをそのデスクトップへの割当て用の範囲内に位置
決めする。ウィンドウ・マネージャ2310を含む仮想
デスクトップ・システム2300は、たとえば、−1
6,767〜16,768ウィンドウ単位の範囲の表示
画面座標でのアプリケーション・ウィンドウの位置決め
をサポートする。通常、現行ビューと呼ばれる、その範
囲のサブセットのみが画面上に見えている。本発明の図
示の実施例では、表示画面2135のビデオ解像度の最
大幅は640ウィンドウ単位であることが好ましい。し
たがって、現行ビューは、0〜640ウィンドウ単位か
らなる範囲を含むことが好ましい。しかし、この解像度
は表示画面によって変化する可能性があり、それによ
り、画面上に表示する予定のアプリケーションがその可
視域の外側にシフトしてしまうこともある。
【0255】一般に、デスクトップ・マネージャ235
0は、従来のAPIに関連する機能呼出しを出すことに
よって表示画面の解像度を求める。たとえば、デスクト
ップ・マネージャは、<GetSysMetrics>機能呼出しメッ
セージをウィンドウ・マネージャ2310に出して、表
示画面のビデオ解像度を獲得することができる。この機
能呼出しに対する応答として、ウィンドウ・マネージャ
は要求された情報を返し、デスクトップ・マネージャは
画面の最大幅の少なくとも2倍であることが好ましい所
定の範囲のウィンドウ単位をそれぞれのデスクトップに
割り当てる。
0は、従来のAPIに関連する機能呼出しを出すことに
よって表示画面の解像度を求める。たとえば、デスクト
ップ・マネージャは、<GetSysMetrics>機能呼出しメッ
セージをウィンドウ・マネージャ2310に出して、表
示画面のビデオ解像度を獲得することができる。この機
能呼出しに対する応答として、ウィンドウ・マネージャ
は要求された情報を返し、デスクトップ・マネージャは
画面の最大幅の少なくとも2倍であることが好ましい所
定の範囲のウィンドウ単位をそれぞれのデスクトップに
割り当てる。
【0256】図44は、表示画面の2倍になっているデ
スクトップ表示域2510〜2530の幅を示してい
る。それぞれのデスクトップには、1280ウィンドウ
単位からなる範囲の表示画面座標が割り当てられること
が好ましく、各デスクトップのオープン・アプリケーシ
ョンには、その範囲内のウィンドウ位置が割り当てられ
る。したがって、各デスクトップの座標範囲を増やす
と、現在表示されているデスクトップに割り当てられて
いないアプリケーション・ウィンドウが画面上で見えな
くなる。
スクトップ表示域2510〜2530の幅を示してい
る。それぞれのデスクトップには、1280ウィンドウ
単位からなる範囲の表示画面座標が割り当てられること
が好ましく、各デスクトップのオープン・アプリケーシ
ョンには、その範囲内のウィンドウ位置が割り当てられ
る。したがって、各デスクトップの座標範囲を増やす
と、現在表示されているデスクトップに割り当てられて
いないアプリケーション・ウィンドウが画面上で見えな
くなる。
【0257】具体的には、デスクトップ2510には表
示画面座標0〜1280が割り当てられ、デスクトップ
2520には座標1280〜2560が割り当てられ、
デスクトップ2530には座標2560〜3840が割
り当てられている。これらの座標範囲は、デスクトップ
の名前および機能別にデスクトップ・マネージャ235
0のデータ構造2360に格納されている。特に言及し
たように、デスクトップ・マネージャ2350は、従来
のAPIを使用してウィンドウ位置別に各デスクトップ
にオープン・アプリケーション・ウィンドウも割り当て
る。このインタフェースに関連する追加の機能呼出しに
ついては、図45および図47〜49に関連して以下に
説明する。より具体的には、デスクトップ・マネージャ
は、デスクトップ2510内にアプリケーション・ウィ
ンドウ2512および2514を、デスクトップ252
0内にアプリケーション・ウィンドウ2522を、デス
クトップ2530内にアプリケーション・ウィンドウ2
532および2534を位置決めする機能呼出しメッセ
ージを交換することにより、ウィンドウ・マネージャと
やりとりする。その後、すべてのオープン・アプリケー
ション・ウィンドウのウィンドウ位置はデータ構造24
50に格納される。
示画面座標0〜1280が割り当てられ、デスクトップ
2520には座標1280〜2560が割り当てられ、
デスクトップ2530には座標2560〜3840が割
り当てられている。これらの座標範囲は、デスクトップ
の名前および機能別にデスクトップ・マネージャ235
0のデータ構造2360に格納されている。特に言及し
たように、デスクトップ・マネージャ2350は、従来
のAPIを使用してウィンドウ位置別に各デスクトップ
にオープン・アプリケーション・ウィンドウも割り当て
る。このインタフェースに関連する追加の機能呼出しに
ついては、図45および図47〜49に関連して以下に
説明する。より具体的には、デスクトップ・マネージャ
は、デスクトップ2510内にアプリケーション・ウィ
ンドウ2512および2514を、デスクトップ252
0内にアプリケーション・ウィンドウ2522を、デス
クトップ2530内にアプリケーション・ウィンドウ2
532および2534を位置決めする機能呼出しメッセ
ージを交換することにより、ウィンドウ・マネージャと
やりとりする。その後、すべてのオープン・アプリケー
ション・ウィンドウのウィンドウ位置はデータ構造24
50に格納される。
【0258】図45は、表示画面座標とウィンドウ位置
をデスクトップおよびそれに関連するアプリケーション
・ウィンドウに割り当てるための一連のステップを示す
流れ図である。ルーチンはステップ2600から始まっ
てステップ2602に移行し、そこでデスクトップ・マ
ネージャはユーザが作成した各ディスクトップに表示画
面座標領域を割り当てる。特に言及したように、それぞ
れのデスクトップには、画面の最大幅の2倍に相当する
範囲の表示画面座標、または、図示の実施例では128
0ウィンドウ単位が割り当てられることが好ましい。ス
テップ2604でユーザは、指定のデスクトップにアプ
リケーションを割り当てるようそれに要求するコマンド
をデスクトップ・マネージャに出す。この要求に対する
応答として、デスクトップ・マネージャはステップ26
06でウィンドウ・マネージャ2310に<SetWindowPo
s>機能呼出しメッセージを出して、指定のデスクトップ
内のアプリケーションのウィンドウ位置を設定し、ルー
チンはステップ2608で終了する。
をデスクトップおよびそれに関連するアプリケーション
・ウィンドウに割り当てるための一連のステップを示す
流れ図である。ルーチンはステップ2600から始まっ
てステップ2602に移行し、そこでデスクトップ・マ
ネージャはユーザが作成した各ディスクトップに表示画
面座標領域を割り当てる。特に言及したように、それぞ
れのデスクトップには、画面の最大幅の2倍に相当する
範囲の表示画面座標、または、図示の実施例では128
0ウィンドウ単位が割り当てられることが好ましい。ス
テップ2604でユーザは、指定のデスクトップにアプ
リケーションを割り当てるようそれに要求するコマンド
をデスクトップ・マネージャに出す。この要求に対する
応答として、デスクトップ・マネージャはステップ26
06でウィンドウ・マネージャ2310に<SetWindowPo
s>機能呼出しメッセージを出して、指定のデスクトップ
内のアプリケーションのウィンドウ位置を設定し、ルー
チンはステップ2608で終了する。
【0259】指定のデスクトップに割り当てられたオー
プン・アプリケーションを表示するため、画面上に現在
表示されているデスクトップ・ビューが指定のデスクト
ップに割り当てられた座標にシフトされる、すなわち、
切り替えられる。図46は、画面2135上に表示され
た現行ビューを占有するデスクトップ2720ととも
に、仮想デスクトップ・システム2700の実施例を示
している。特に言及したように、現在表示されている視
界は、640ウィンドウ単位からなる一定の画面座標範
囲を有する。現行ビュー用に選択されたデスクトップに
割り当てられていないアプリケーション・ウィンドウ
は、表示された視界の外に位置決めされているので、見
えなくなっている。デスクトップ間の切替えは、以下の
図47の流れ図に示すように、従来のAPIを使用して
行うことが好ましい。
プン・アプリケーションを表示するため、画面上に現在
表示されているデスクトップ・ビューが指定のデスクト
ップに割り当てられた座標にシフトされる、すなわち、
切り替えられる。図46は、画面2135上に表示され
た現行ビューを占有するデスクトップ2720ととも
に、仮想デスクトップ・システム2700の実施例を示
している。特に言及したように、現在表示されている視
界は、640ウィンドウ単位からなる一定の画面座標範
囲を有する。現行ビュー用に選択されたデスクトップに
割り当てられていないアプリケーション・ウィンドウ
は、表示された視界の外に位置決めされているので、見
えなくなっている。デスクトップ間の切替えは、以下の
図47の流れ図に示すように、従来のAPIを使用して
行うことが好ましい。
【0260】この場合、切替えルーチンはステップ28
00から始まってステップ2802に移行し、そこでユ
ーザは現在視界に入っていない指定のデスクトップの表
示を要求するコマンドをデスクトップ・マネージャに出
す。ユーザの要求は、通常、上記のプルダウンまたはプ
ルアップ・メニューを介して呼び出される。ステップ2
804では、デスクトップ・マネージャは指定のデスク
トップに<ShowView>機能呼出しメッセージを出し、デス
クトップがウィンドウ位置によってその割当てアプリケ
ーションを示すように要求する。指定のデスクトップ
は、ステップ2806に示すように、そのデータ構造に
アクセスし、そのウィンドウのサイズと位置を含む、ど
のアプリケーション・ウィンドウがそれに割り当てられ
ているかを判定し、この情報をデスクトップ・マネージ
ャに帰す。ステップ2808では、デスクトップ・マネ
ージャはウィンドウ・マネージャに<SetWindowPos>機能
呼出しメッセージを出し、得られた情報に応じて現行ビ
ューに指定のデスクトップの表示画面座標を設定する。
これは、それぞれのアプリケーション・ウィンドウを現
行ビューに移動することによって行われることが好まし
い。ルーチンはステップ2810で終了する。
00から始まってステップ2802に移行し、そこでユ
ーザは現在視界に入っていない指定のデスクトップの表
示を要求するコマンドをデスクトップ・マネージャに出
す。ユーザの要求は、通常、上記のプルダウンまたはプ
ルアップ・メニューを介して呼び出される。ステップ2
804では、デスクトップ・マネージャは指定のデスク
トップに<ShowView>機能呼出しメッセージを出し、デス
クトップがウィンドウ位置によってその割当てアプリケ
ーションを示すように要求する。指定のデスクトップ
は、ステップ2806に示すように、そのデータ構造に
アクセスし、そのウィンドウのサイズと位置を含む、ど
のアプリケーション・ウィンドウがそれに割り当てられ
ているかを判定し、この情報をデスクトップ・マネージ
ャに帰す。ステップ2808では、デスクトップ・マネ
ージャはウィンドウ・マネージャに<SetWindowPos>機能
呼出しメッセージを出し、得られた情報に応じて現行ビ
ューに指定のデスクトップの表示画面座標を設定する。
これは、それぞれのアプリケーション・ウィンドウを現
行ビューに移動することによって行われることが好まし
い。ルーチンはステップ2810で終了する。
【0261】特に言及したように、デスクトップ・マネ
ージャ2350は、アプリケーションのコピーを一度に
1つしか実行できないときにデスクトップ間でのアプリ
ケーションの共用の調整を担当する。アプリケーション
の共用は、あるウィンドウが現在の視界の外で「活動状
態」になっていて、別のデスクトップが活動アプリケー
ションを含んでいることを示しているときに適切である
と思われる。このようなアプリケーションの共用を調整
するプロセスについては、図48の流れ図に示す。
ージャ2350は、アプリケーションのコピーを一度に
1つしか実行できないときにデスクトップ間でのアプリ
ケーションの共用の調整を担当する。アプリケーション
の共用は、あるウィンドウが現在の視界の外で「活動状
態」になっていて、別のデスクトップが活動アプリケー
ションを含んでいることを示しているときに適切である
と思われる。このようなアプリケーションの共用を調整
するプロセスについては、図48の流れ図に示す。
【0262】ルーチンはステップ2900から始まって
ステップ2902に移行し、そこでデスクトップ・マネ
ージャはウィンドウが現在の視界の外で「活動状態」に
なるのを「監視」する。具体的には、デスクトップ・マ
ネージャはステップ2904でウィンドウ・マネージャ
とアプリケーション・プログラムとの間のメッセージを
監視し、ACTIVATEコマンドを探す。ACTIV
ATEコマンドの発行に対する応答として、デスクトッ
プ・マネージャは、デスクトップに機能呼出しメッセー
ジ<ShowView>を出すことによって、ステップ2906に
示すようにどのデスクトップが活動アプリケーションを
「所有」しているかを判定する。ステップ2908で
は、デスクトップ・マネージャは、ダイアログ・ボック
スなどによってアプリケーションを借りることができる
かどうかについてユーザに尋ねることにより、デスクト
ップ間で活動アプリケーションを借りることができるか
どうかを判定する。たとえば、ロックされているかまた
はパスワードで保護されているためにアプリケーション
を借りることができない場合、ルーチンはステップ29
02に戻って反復するだけである。しかし、ユーザがア
プリケーションを借りることができる場合、デスクトッ
プ・マネージャは、ステップ2910に示すように現在
の視界に活動アプリケーションを入れることなどによ
り、適切な方法でアプリケーションの共用を開始する。
これは、デスクトップ・マネージャからウィンドウ・マ
ネージャに<SetWindowPos>機能呼出しを出すことによっ
て行われる。その後、ルーチンはステップ2902に戻
って反復する。当然のことながら、仮想デスクトップ・
システムから出たとき、またはコンピュータ・システム
をオフにした場合に、ルーチンは終了する。
ステップ2902に移行し、そこでデスクトップ・マネ
ージャはウィンドウが現在の視界の外で「活動状態」に
なるのを「監視」する。具体的には、デスクトップ・マ
ネージャはステップ2904でウィンドウ・マネージャ
とアプリケーション・プログラムとの間のメッセージを
監視し、ACTIVATEコマンドを探す。ACTIV
ATEコマンドの発行に対する応答として、デスクトッ
プ・マネージャは、デスクトップに機能呼出しメッセー
ジ<ShowView>を出すことによって、ステップ2906に
示すようにどのデスクトップが活動アプリケーションを
「所有」しているかを判定する。ステップ2908で
は、デスクトップ・マネージャは、ダイアログ・ボック
スなどによってアプリケーションを借りることができる
かどうかについてユーザに尋ねることにより、デスクト
ップ間で活動アプリケーションを借りることができるか
どうかを判定する。たとえば、ロックされているかまた
はパスワードで保護されているためにアプリケーション
を借りることができない場合、ルーチンはステップ29
02に戻って反復するだけである。しかし、ユーザがア
プリケーションを借りることができる場合、デスクトッ
プ・マネージャは、ステップ2910に示すように現在
の視界に活動アプリケーションを入れることなどによ
り、適切な方法でアプリケーションの共用を開始する。
これは、デスクトップ・マネージャからウィンドウ・マ
ネージャに<SetWindowPos>機能呼出しを出すことによっ
て行われる。その後、ルーチンはステップ2902に戻
って反復する。当然のことながら、仮想デスクトップ・
システムから出たとき、またはコンピュータ・システム
をオフにした場合に、ルーチンは終了する。
【0263】最後に、図49の流れ図は、システムのプ
ログラムを終了する前にすべてのオープン・アプリケー
ションが確実にクローズされるように仮想デスクトップ
・システムを出すために使用する一連のステップを示し
ている。このルーチンは、オープン・アプリケーション
・ウィンドウがデスクトップ環境の背景で動作してい
て、システムを終了するときにユーザから隠れている場
合に特に有利である。
ログラムを終了する前にすべてのオープン・アプリケー
ションが確実にクローズされるように仮想デスクトップ
・システムを出すために使用する一連のステップを示し
ている。このルーチンは、オープン・アプリケーション
・ウィンドウがデスクトップ環境の背景で動作してい
て、システムを終了するときにユーザから隠れている場
合に特に有利である。
【0264】ルーチンはステップ3000から始まって
ステップ3002に移行し、そこでユーザは仮想ディス
プレイ・システムを終了するためのコマンドをデスクト
ップ・マネージャに出す。これは、デスクトップ・マネ
ージャ・インタフェースのメニューから終了コマンドを
選択することによって、実行することもできる。ステッ
プ3004では、デスクトップ・マネージャは、デスク
トップに<ShowView>機能呼出しメッセージを出して、そ
れに割り当てられたアプリケーションを示すように要求
する。ステップ3006では、各デスクトップがそのデ
ータ構造にアクセスし、どのアプリケーションがそれに
割り当てられているかを判定し、要求された情報をデス
クトップ・マネージャに返す。ステップ3008では、
デスクトップ・マネージャは、ウィンドウ・マネージャ
に<SetWindowPos>機能呼出しメッセージを出し、得られ
た情報に応じて現行ビューに各デスクトップの表示画面
座標を設定し、ルーチンはステップ3010で終了す
る。
ステップ3002に移行し、そこでユーザは仮想ディス
プレイ・システムを終了するためのコマンドをデスクト
ップ・マネージャに出す。これは、デスクトップ・マネ
ージャ・インタフェースのメニューから終了コマンドを
選択することによって、実行することもできる。ステッ
プ3004では、デスクトップ・マネージャは、デスク
トップに<ShowView>機能呼出しメッセージを出して、そ
れに割り当てられたアプリケーションを示すように要求
する。ステップ3006では、各デスクトップがそのデ
ータ構造にアクセスし、どのアプリケーションがそれに
割り当てられているかを判定し、要求された情報をデス
クトップ・マネージャに返す。ステップ3008では、
デスクトップ・マネージャは、ウィンドウ・マネージャ
に<SetWindowPos>機能呼出しメッセージを出し、得られ
た情報に応じて現行ビューに各デスクトップの表示画面
座標を設定し、ルーチンはステップ3010で終了す
る。
【0265】その実施例の説明によって本発明を例示
し、かなり詳細に実施例を説明してきたが、特許請求の
範囲をこのような詳細説明に制限または限定することが
本出願人の意図ではない。当業者には、これ以外の利点
および変更態様が容易に明らかになるだろう。たとえ
ば、それぞれが専用の作業域マネージャによって制御さ
れるような各種レベルの作業域が存在することも可能で
ある。
し、かなり詳細に実施例を説明してきたが、特許請求の
範囲をこのような詳細説明に制限または限定することが
本出願人の意図ではない。当業者には、これ以外の利点
および変更態様が容易に明らかになるだろう。たとえ
ば、それぞれが専用の作業域マネージャによって制御さ
れるような各種レベルの作業域が存在することも可能で
ある。
【0266】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0267】(1)コンピュータ・システムの電源サイ
クル間で個々の作業域を保持するための複数ユーザ・ウ
ィンドウベース・コンピュータ・システムにおいて、コ
ンピュータ・システムが、(a)複数の個々のコンピュ
ータ・システム選択設定を表すための複数の作業域であ
って、それぞれの作業域が個々のユーザのコンピュータ
・システム選択設定を含む作業域と、(b)複数の個々
のコンピュータ・システム選択設定を格納するための作
業域設定プロファイル・ファイルと、(c)電源切断時
にコンピュータ・システムの状態情報を不揮発性メモリ
に格納するための論理と、(d)電源投入時にコンピュ
ータ・システムの状態情報を不揮発性メモリから復元す
るための論理と、(e)コンピュータ・システムの状態
情報の復元を制御するための作業域マネージャとを有す
ることを特徴とする、複数ユーザ・ウィンドウベース・
コンピュータ・システム。 (2)複数の作業域が、実行すべきアプリケーション・
プログラムを割り当てて選択するためのアプリケーショ
ン・プログラム域を含むことを特徴とする、上記(1)
に記載のコンピュータ・システム。 (3)作業域マネージャが、作業域間の切替え用の論理
を含むことを特徴とする、上記(1)に記載のコンピュ
ータ・システム。 (4)作業域マネージャが、作業域へのユーザ・アクセ
スを制限するための論理を含むことを特徴とする、上記
(1)に記載のコンピュータ・システム。 (5)作業域マネージャが、作業域を作成するための論
理を含むことを特徴とする、上記(1)に記載のコンピ
ュータ・システム。 (6)個々のコンピュータ・システム選択設定がオペレ
ーティング・システム選択設定を含むことを特徴とす
る、上記(1)に記載のコンピュータ・システム。 (7)オペレーティング・システム選択設定がシステム
表示カラーを含むことを特徴とする、上記(6)に記載
のコンピュータ・システム。 (8)システム電源サイクル間で個々のユーザ・システ
ム選択設定を保持するための複数ユーザベース・システ
ムにおいて、システムが、不揮発性メモリと、ディスプ
レイと、マイクロプロセッサと、複数ユーザ・システム
選択設定論理とを有するコンピュータを含み、複数ユー
ザ・システム選択設定論理が、 (a)複数の個々のコンピュータ・システム選択設定を
表すための複数の作業域であって、それぞれの作業域が
アプリケーション・プログラムの実行を制御するための
アプリケーション・プログラム域を含む作業域と、 (b)電源切断時にコンピュータの状態情報を不揮発性
メモリに格納するための論理と、 (c)電源投入時にコンピュータの状態情報を不揮発性
メモリから復元するための論理と、 (d)個々のユーザ・システム選択設定を格納するため
の作業域設定プロファイル・ファイルと、 (e)システムの状態情報の復元を制御するための作業
域マネージャであって、作業域マネージャが、 a.作業域へのユーザ・アクセスを制限するための論理
と、 b.作業域間の切替え用の論理とを含む作業域マネージ
ャとを含むことを特徴とする、複数ユーザベース・シス
テム。 (9)作業域マネージャが、実行すべきアプリケーショ
ン・プログラムを割り当てて選択するための論理をさら
に含むことを特徴とする、上記(8)に記載のシステ
ム。 (10)作業域マネージャが、作業域を作成するための
論理をさらに含むことを特徴とする、上記(8)に記載
のシステム。 (11)個々のコンピュータ・システム選択設定がオペ
レーティング・システム選択設定を含むことを特徴とす
る、上記(8)に記載のシステム。 (12)オペレーティング・システム選択設定がシステ
ム表示カラーを含むことを特徴とする、上記(11)に
記載のシステム。 (13)ウィンドウベース・コンピュータ・システムに
おいて、複数ユーザベース・コンピュータ・システムを
提供する方法であって、この方法が、(a)複数の個々
の作業域プロファイルを不揮発性メモリから読みとるス
テップと、(b)各作業域プロファイルに関連する情報
をディスプレイ上に表示するステップと、(c)指定の
作業域プロファイルをコンピュータ・システムに割り当
てるステップとを含むことを特徴とする方法。 (14)指定の作業域プロファイルにアプリケーション
・プログラムを割り当てるステップをさらに含むことを
特徴とする、上記(13)に記載の方法。 (15)指定の作業域プロファイルへのユーザ・アクセ
スを制限するステップをさらに含むことを特徴とする、
上記(13)に記載の方法。 (16)指定の作業域プロファイルに関連していないす
べてのアプリケーション・プログラムを隠すステップを
さらに含むことを特徴とする、上記(13)に記載の方
法。
クル間で個々の作業域を保持するための複数ユーザ・ウ
ィンドウベース・コンピュータ・システムにおいて、コ
ンピュータ・システムが、(a)複数の個々のコンピュ
ータ・システム選択設定を表すための複数の作業域であ
って、それぞれの作業域が個々のユーザのコンピュータ
・システム選択設定を含む作業域と、(b)複数の個々
のコンピュータ・システム選択設定を格納するための作
業域設定プロファイル・ファイルと、(c)電源切断時
にコンピュータ・システムの状態情報を不揮発性メモリ
に格納するための論理と、(d)電源投入時にコンピュ
ータ・システムの状態情報を不揮発性メモリから復元す
るための論理と、(e)コンピュータ・システムの状態
情報の復元を制御するための作業域マネージャとを有す
ることを特徴とする、複数ユーザ・ウィンドウベース・
コンピュータ・システム。 (2)複数の作業域が、実行すべきアプリケーション・
プログラムを割り当てて選択するためのアプリケーショ
ン・プログラム域を含むことを特徴とする、上記(1)
に記載のコンピュータ・システム。 (3)作業域マネージャが、作業域間の切替え用の論理
を含むことを特徴とする、上記(1)に記載のコンピュ
ータ・システム。 (4)作業域マネージャが、作業域へのユーザ・アクセ
スを制限するための論理を含むことを特徴とする、上記
(1)に記載のコンピュータ・システム。 (5)作業域マネージャが、作業域を作成するための論
理を含むことを特徴とする、上記(1)に記載のコンピ
ュータ・システム。 (6)個々のコンピュータ・システム選択設定がオペレ
ーティング・システム選択設定を含むことを特徴とす
る、上記(1)に記載のコンピュータ・システム。 (7)オペレーティング・システム選択設定がシステム
表示カラーを含むことを特徴とする、上記(6)に記載
のコンピュータ・システム。 (8)システム電源サイクル間で個々のユーザ・システ
ム選択設定を保持するための複数ユーザベース・システ
ムにおいて、システムが、不揮発性メモリと、ディスプ
レイと、マイクロプロセッサと、複数ユーザ・システム
選択設定論理とを有するコンピュータを含み、複数ユー
ザ・システム選択設定論理が、 (a)複数の個々のコンピュータ・システム選択設定を
表すための複数の作業域であって、それぞれの作業域が
アプリケーション・プログラムの実行を制御するための
アプリケーション・プログラム域を含む作業域と、 (b)電源切断時にコンピュータの状態情報を不揮発性
メモリに格納するための論理と、 (c)電源投入時にコンピュータの状態情報を不揮発性
メモリから復元するための論理と、 (d)個々のユーザ・システム選択設定を格納するため
の作業域設定プロファイル・ファイルと、 (e)システムの状態情報の復元を制御するための作業
域マネージャであって、作業域マネージャが、 a.作業域へのユーザ・アクセスを制限するための論理
と、 b.作業域間の切替え用の論理とを含む作業域マネージ
ャとを含むことを特徴とする、複数ユーザベース・シス
テム。 (9)作業域マネージャが、実行すべきアプリケーショ
ン・プログラムを割り当てて選択するための論理をさら
に含むことを特徴とする、上記(8)に記載のシステ
ム。 (10)作業域マネージャが、作業域を作成するための
論理をさらに含むことを特徴とする、上記(8)に記載
のシステム。 (11)個々のコンピュータ・システム選択設定がオペ
レーティング・システム選択設定を含むことを特徴とす
る、上記(8)に記載のシステム。 (12)オペレーティング・システム選択設定がシステ
ム表示カラーを含むことを特徴とする、上記(11)に
記載のシステム。 (13)ウィンドウベース・コンピュータ・システムに
おいて、複数ユーザベース・コンピュータ・システムを
提供する方法であって、この方法が、(a)複数の個々
の作業域プロファイルを不揮発性メモリから読みとるス
テップと、(b)各作業域プロファイルに関連する情報
をディスプレイ上に表示するステップと、(c)指定の
作業域プロファイルをコンピュータ・システムに割り当
てるステップとを含むことを特徴とする方法。 (14)指定の作業域プロファイルにアプリケーション
・プログラムを割り当てるステップをさらに含むことを
特徴とする、上記(13)に記載の方法。 (15)指定の作業域プロファイルへのユーザ・アクセ
スを制限するステップをさらに含むことを特徴とする、
上記(13)に記載の方法。 (16)指定の作業域プロファイルに関連していないす
べてのアプリケーション・プログラムを隠すステップを
さらに含むことを特徴とする、上記(13)に記載の方
法。
【図1】本発明を実施するパーソナル・コンピュータの
斜視図である。
斜視図である。
【図2】シャシ、カバー、電気機械的直接アクセス記憶
装置およびプレーナ・ボードを含んでいる図1のパーソ
ナル・コンピュータのいくつかの要素の間のいくつかの
関係を示す分解斜視図である。
装置およびプレーナ・ボードを含んでいる図1のパーソ
ナル・コンピュータのいくつかの要素の間のいくつかの
関係を示す分解斜視図である。
【図3】図1および図2のいくつかの構成要素のブロッ
ク図である。
ク図である。
【図4】図1および図2のいくつかの構成要素のブロッ
ク図である。
ク図である。
【図5】4つのシステム状態、すなわち通常作動状態、
待機状態、サスペンド状態、およびオフ状態を示す、本
発明のコンピュータ・システムの状態図である。
待機状態、サスペンド状態、およびオフ状態を示す、本
発明のコンピュータ・システムの状態図である。
【図6】電源の関連部分を示すブロック図である。
【図7】本発明の単式スイッチ・サスペンド/レジュー
ム機能を達成するために必要なハードウェアの他の図と
の各種のインタフェースを示す回路図である。
ム機能を達成するために必要なハードウェアの他の図と
の各種のインタフェースを示す回路図である。
【図8】本発明の単式スイッチ・サスペンド/レジュー
ム機能を達成するために必要なハードウェアの他の図と
の各種のインタフェースを示す回路図である。
ム機能を達成するために必要なハードウェアの他の図と
の各種のインタフェースを示す回路図である。
【図9】図7および図8に示したプログラム式アレイ論
理(PAL)装置U2の状態計算機の1つの状態図であ
る。
理(PAL)装置U2の状態計算機の1つの状態図であ
る。
【図10】本発明の電源投入ルーチンの概要を示す流れ
図である。
図である。
【図11】約1秒ごとにAPMによって呼び出されるス
ーパバイザ・ルーチンの詳細を示す流れ図である。
ーパバイザ・ルーチンの詳細を示す流れ図である。
【図12】本発明のサスペンド・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図13】本発明のサスペンド・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図14】本発明のサスペンド・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図15】本発明のサスペンド・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図16】本発明のサスペンド・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図17】本発明のブートアップ・ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図18】本発明のブートアップ・ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図19】本発明のレジューム・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図20】本発明のレジューム・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図21】本発明のレジューム・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図22】本発明のレジューム・ルーチンの詳細を示す
流れ図である。
流れ図である。
【図23】本発明のCPU状態保管ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図24】本発明のCPU状態保管ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図25】本発明のCPU状態保管ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図26】本発明のCPU状態保管ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図27】本発明のCPU状態復元ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図28】本発明のCPU状態復元ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図29】本発明のCPU状態復元ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図30】本発明のCPU状態復元ルーチンの詳細を示
す流れ図である。
す流れ図である。
【図31】本発明の8959状態保管ルーチンの詳細を
示す流れ図である。
示す流れ図である。
【図32】本発明の8959状態保管ルーチンの詳細を
示す流れ図である。
示す流れ図である。
【図33】本発明の8959状態保管ルーチンの詳細を
示す流れ図である。
示す流れ図である。
【図34】作業域タスク・リストの形式の作業域マネー
ジャを示す図である。
ジャを示す図である。
【図35】複数ユーザ・システム選択設定論理を実現す
る一連のステップを示す流れ図である。
る一連のステップを示す流れ図である。
【図36】複数ユーザ・システム選択設定論理を実現す
る一連のステップを示す流れ図である。
る一連のステップを示す流れ図である。
【図37】複数ユーザ・システム選択設定論理を実現す
る一連のステップを示す流れ図である。
る一連のステップを示す流れ図である。
【図38】複数ユーザ・システム選択設定論理を実現す
る一連のステップを示す流れ図である。
る一連のステップを示す流れ図である。
【図39】複数ユーザ・システム選択設定論理を実現す
る一連のステップを示す流れ図である。
る一連のステップを示す流れ図である。
【図40】本発明の仮想デスクトップ・システムが有利
に動作しうるパーソナル・コンピュータ・システムなど
のコンピュータ・システムの概略ブロック図である。
に動作しうるパーソナル・コンピュータ・システムなど
のコンピュータ・システムの概略ブロック図である。
【図41】複数のアプリケーション・プログラムと本発
明による仮想デスクトップ・システムとの間のやりとり
を示すブロック図である。
明による仮想デスクトップ・システムとの間のやりとり
を示すブロック図である。
【図42】本発明による新規のデスクトップ・マネージ
ャを含む、図41の仮想デスクトップ・システムのブロ
ック図である。
ャを含む、図41の仮想デスクトップ・システムのブロ
ック図である。
【図43】図42のデスクトップ・マネージャに関連す
る、関連オープン・アプリケーションの新規のデスクト
ップ・プログラムのブロック図である。
る、関連オープン・アプリケーションの新規のデスクト
ップ・プログラムのブロック図である。
【図44】図40のコンピュータの表示画面の幅の2倍
に相当する幅を有するデスクトップ・プログラム用のオ
ープン・アプリケーションの表示画面座標と関連ウィン
ドウ位置の割当てを示す概略図である。
に相当する幅を有するデスクトップ・プログラム用のオ
ープン・アプリケーションの表示画面座標と関連ウィン
ドウ位置の割当てを示す概略図である。
【図45】図44のデスクトップとそれに関連するアプ
リケーション・ウィンドウに表示画面座標とウィンドウ
位置を割り当てるための一連のステップを示す流れ図で
ある。
リケーション・ウィンドウに表示画面座標とウィンドウ
位置を割り当てるための一連のステップを示す流れ図で
ある。
【図46】本発明による仮想デスクトップ・システムの
実施例を示す図である。
実施例を示す図である。
【図47】図46の実施例によるデスクトップ間の切替
えを示す流れ図である。
えを示す流れ図である。
【図48】本発明によるアプリケーションの共用を示す
流れ図である。
流れ図である。
【図49】本発明の仮想デスクトップ・システムを終了
するための一連のステップを示す流れ図である。
するための一連のステップを示す流れ図である。
2000 作業域タスク・リスト
2002〜2008 作業域
2010 関連アイコン
2012 アプリケーション・プログラム
2014 アプリケーション・プログラム域
2016〜2026 機能ボタン
フロントページの続き
(72)発明者 ジェフリー・ヴァーノン・フォード
アメリカ合衆国27511 ノースカロライ
ナ州ケアリー ハイランズ・レイク・ド
ライブ 202
(72)発明者 トレーシー・エレン・ギブソン
アメリカ合衆国40514 ケンタッキー州
レキシントン リバーウッド・ドライブ
708
(56)参考文献 特開 平7−28544(JP,A)
特開 平5−250061(JP,A)
特開 平2−287835(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 1/00 370
G06F 1/26
G06F 9/46 340
Claims (12)
- 【請求項1】 コンピュータ・システムの電源サイクル
間で個々の作業域を保持するためのウィンドウベース・
コンピュータ・システムにおいて、 コンピュータ・システムが、 (a)複数の個々のコンピュータ・システム選択設定を
表すための複数の作業域であって、それぞれの作業域が
個々のユーザのコンピュータ・システム選択設定を含む
作業域と、 (b)複数の個々のコンピュータ・システム選択設定を
格納するための作業域設定プロファイル・ファイルと、 (c)電源切断時にコンピュータ・システムの状態情報
を不揮発性メモリに格納する手段と、 (d)電源投入時にコンピュータ・システムの状態情報
を不揮発性メモリから復元する手段と、 (e)コンピュータ・システムの状態情報の復元を制御
するための作業域マネージャとを有し、 前記作業域マネージャは、(1)電源投入時に不揮発性
メモリから復元した現行作業域設定を作業域設定プロフ
ァイル・ファイルに保管するとともに作業域設定プロフ
ァイル・ファイルからデフォルトの作業域設定プロファ
イルを読み取り、現行作業域をデフォルトの作業域設定
に復元する手段と、(2)該現行作業域へのユーザのア
クセスを制限する手段とを含む、 ことを特徴とする、ウィンドウベース・コンピュータ・
システム。 - 【請求項2】 複数の作業域が、実行すべきアプリケー
ション・プログラムを割り当てて選択するためのアプリ
ケーション・プログラム域を含むことを特徴とする、請
求項1に記載のコンピュータ・システム。 - 【請求項3】 作業域マネージャが、作業域間の切替え
用の手段を含むことを特徴とする、請求項1に記載のコ
ンピュータ・システム。 - 【請求項4】 作業域マネージャが、作業域を作成する
ための手段を含むことを特徴とする、請求項1に記載の
コンピュータ・システム。 - 【請求項5】 個々のコンピュータ・システム選択設定
がオペレーティング・システム選択設定を含むことを特
徴とする、請求項1に記載のコンピュータ・システム。 - 【請求項6】 オペレーティング・システム選択設定が
システム表示カラーを含むことを特徴とする、請求項5
に記載のコンピュータ・システム。 - 【請求項7】 システム電源サイクル間で個々のユーザ
・システム選択設定を保持するための複数ユーザベース
・システムであって、該システムが、不揮発性メモリ
と、ディスプレイと、マイクロプロセッサと、複数ユー
ザ・システム選択設定手段とを有するコンピュータを含
む複数ユーザベース・システムにおいて、 複数ユーザベース・システム選択設定手段が、 (a)複数の個々のコンピュータ・システム選択設定を
表すための複数の作業域であって、それぞれの作業域が
アプリケーション・プログラムの実行を制御するための
アプリケーション・プログラム域を含む作業域と、 (b)電源切断時にコンピュータの状態情報を不揮発性
メモリに格納する手段と、 (c)電源投入時にコンピュータの状態情報を不揮発性
メモリから復元する手段と、 (d)個々のユーザ・システム選択設定を格納するため
の作業域設定プロファイル・ファイルと、 (e)コンピュータの状態情報の復元を制御するための
作業域マネージャと、 を含み、 (1)前記作業域マネージャが、 a.作業域へのユーザ・アクセスを制限する手段と、 b.作業域間の切替え用の手段と、 c.電源投入時に不揮発性メモリから復元した現行作業
域設定を作業域設定プロファイル・ファイルに保管する
とともに作業域設定プロファイル・ファイルからデフォ
ルトの作業域設定プロファイルを読み取り、現行作業域
をデフォルトの作業域設定に復元する手段と、 を含む、 ことを特徴とする、複数ユーザベース・システム。 - 【請求項8】 作業域マネージャが、実行すべきアプリ
ケーション・プログラムを割り当てて選択する手段をさ
らに含むことを特徴とする、請求項7に記載のシステ
ム。 - 【請求項9】 作業域マネージャが、作業域を作成する
手段をさらに含むことを特徴とする、請求項7に記載の
システム。 - 【請求項10】 個々のコンピュータ・システム選択設
定がオペレーティング・システム選択設定を含むことを
特徴とする、請求項7に記載のシステム。 - 【請求項11】 オペレーティング・システム選択設定
がシステム表示カラーを含むことを特徴とする、請求項
10に記載のシステム。 - 【請求項12】 ウィンドウベース・コンピュータ・シ
ステムにおいて複数ユーザベース・コンピュータ・シス
テムを提供する方法において、 複数の個々のコンピュータ・システム選択設定を表すた
めの複数の作業域であって、それぞれの作業域が個々の
ユーザのコンピュータ・システム選択設定を含む作業域
と、複数の個々のコンピュータ・システム選択設定を格
納するための作業域設定プロファイル・ファイルとを定
義し、電源切断時にコンピュータ・システムの状態情報
を不揮発性メモリに格納する方法において、 (a)電源投入時に不揮発性メモリから復元した現行作
業域設定を作業域設定プロファイル・ファイルに保管す
るステップと、 (b)作業域設定プロファイル・ファイルからデフォル
トの作業域設定プロファイルを読み取り、現行作業域を
デフォルトの作業域設定に復元するステップと、 (c)作業域へのユーザのアクセスを制限するステップ
と、 を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/473,273 US5682550A (en) | 1995-06-07 | 1995-06-07 | System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information |
US473273 | 1995-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH096460A JPH096460A (ja) | 1997-01-10 |
JP3454492B2 true JP3454492B2 (ja) | 2003-10-06 |
Family
ID=23878879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13553196A Expired - Fee Related JP3454492B2 (ja) | 1995-06-07 | 1996-05-29 | ウィンドウ・ベースの複数ユーザ・コンピュータ・システムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5682550A (ja) |
EP (1) | EP0747810B1 (ja) |
JP (1) | JP3454492B2 (ja) |
KR (1) | KR100188501B1 (ja) |
DE (1) | DE69620055T2 (ja) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7765556B2 (en) * | 2002-03-01 | 2010-07-27 | Sap Ag | Intelligent and event-based data population |
US5592675A (en) * | 1992-01-08 | 1997-01-07 | Hitachi, Ltd. | Computer controlled method and system capable of preserving information representing plural work states and recovering the work states |
US5859982A (en) * | 1996-06-05 | 1999-01-12 | Sun Microsystems, Inc. | Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements |
US5933652A (en) * | 1996-08-30 | 1999-08-03 | Advanced System Products, Inc. | Host independent peripheral controller with on-board firmware |
US6278465B1 (en) * | 1997-06-23 | 2001-08-21 | Sun Microsystems, Inc. | Adaptive font sizes for network browsing |
JP4046804B2 (ja) * | 1997-06-26 | 2008-02-13 | 富士通株式会社 | サーバの情報提供装置、サーバの情報提供プログラムを記録したコンピュータ読み取り可能な記録媒体およびサーバの情報提供方法 |
US6259443B1 (en) * | 1998-02-06 | 2001-07-10 | Henry R. Williams, Jr. | Method and apparatus for enabling multiple users to concurrently access a remote server using set-top boxes |
US6269374B1 (en) * | 1998-05-26 | 2001-07-31 | International Business Machines Corporation | Method and apparatus for updating checksums of data structures |
US6256714B1 (en) | 1998-09-02 | 2001-07-03 | Sharp Laboratories Of America, Inc. | Computer system with efficient memory usage for managing multiple application programs |
US6374145B1 (en) * | 1998-12-14 | 2002-04-16 | Mark Lignoul | Proximity sensor for screen saver and password delay |
KR100585058B1 (ko) * | 1999-02-01 | 2006-06-01 | 삼성전자주식회사 | 캡션 디스플레이를 위한 엠펙 디코더 및 디코딩 방법 |
US6807666B1 (en) | 1999-12-15 | 2004-10-19 | Microsoft Corporation | Methods and arrangements for providing multiple concurrent desktops and workspaces in a shared computing environment |
US7213054B2 (en) * | 1999-12-15 | 2007-05-01 | Microsoft Corporation | Methods and apparatuses for handling single-user applications in multi-user computing environments |
US6549217B1 (en) * | 2000-03-23 | 2003-04-15 | Koninklijke Philips Electronics N.V. | System and method for computer system management using bookmarks |
US7840691B1 (en) | 2000-09-07 | 2010-11-23 | Zamora Radio, Llc | Personal broadcast server system for providing a customized broadcast |
US7962482B2 (en) * | 2001-05-16 | 2011-06-14 | Pandora Media, Inc. | Methods and systems for utilizing contextual feedback to generate and modify playlists |
JP2003091423A (ja) * | 2001-09-18 | 2003-03-28 | Sony Corp | ユーザの簡易切り替え機能を備えた情報処理装置及びこれに用いるプログラム |
KR20030065037A (ko) * | 2002-01-29 | 2003-08-06 | 윤여홍 | 개인용 컴퓨터의 사용자별 독립적 환경 제공 시스템 및 그방법 |
US7228507B2 (en) * | 2002-02-21 | 2007-06-05 | Xerox Corporation | Methods and systems for navigating a workspace |
US20030204708A1 (en) * | 2002-04-24 | 2003-10-30 | Colin Hulme | Portable computer having hierarchical operating systems |
US7817163B2 (en) * | 2003-10-23 | 2010-10-19 | Microsoft Corporation | Dynamic window anatomy |
US20050125739A1 (en) * | 2003-11-20 | 2005-06-09 | Thompson Jeffrey W. | Virtual desktop manager system and method |
US20050193340A1 (en) * | 2004-03-01 | 2005-09-01 | Amburgey James T. | Apparatus and method regarding dynamic icons on a graphical user interface |
JP2007109197A (ja) * | 2005-09-16 | 2007-04-26 | Renesas Technology Corp | 半導体集積回路装置およびアドレス変換テーブルの生成方法 |
JP2007193668A (ja) * | 2006-01-20 | 2007-08-02 | Toshiba Corp | 情報処理装置、および情報処理装置のサスペンド/レジューム方法 |
US8078990B2 (en) * | 2006-02-01 | 2011-12-13 | Research In Motion Limited | Secure device sharing |
JP2010502391A (ja) | 2006-09-05 | 2010-01-28 | ハワード ダブリュ ラトニック | ゲームについての情報ディスプレイ用ゲーム装置 |
US7717429B2 (en) | 2006-09-06 | 2010-05-18 | Cfph, Llc | Card game with counting |
DE112008002277B4 (de) * | 2007-10-09 | 2012-09-20 | Mitsubishi Electric Corp. | Mikrocomputersteuerung |
US7942418B2 (en) | 2008-01-10 | 2011-05-17 | Cfph, Llc | Card game with counting |
US9928680B2 (en) | 2008-07-08 | 2018-03-27 | Cfph, Llc | Gaming statistics |
US8408988B2 (en) | 2008-11-03 | 2013-04-02 | Cfph, Llc | Hiding card information |
US9761082B2 (en) | 2008-10-17 | 2017-09-12 | Cfph, Llc | Card selection |
US8137173B2 (en) * | 2008-10-23 | 2012-03-20 | Cfph, Llc | Multi session gaming |
US9320963B2 (en) | 2008-10-20 | 2016-04-26 | Cfph, Llc | Two stage card select |
US8662978B2 (en) | 2008-10-21 | 2014-03-04 | Cfph, Llc | Display change and/or state save in game and/or game series |
US8192266B2 (en) | 2008-10-16 | 2012-06-05 | Cfph, Llc | Multi-stage card select |
US9320966B2 (en) | 2008-10-16 | 2016-04-26 | Cfph, Llc | Card selection and display and restoration |
US10553067B2 (en) | 2008-10-16 | 2020-02-04 | Cfph, Llc | Card selection and display and restoration |
US8657656B2 (en) * | 2008-10-28 | 2014-02-25 | Cfph, Llc | Determination of restoration event |
JP2010211526A (ja) * | 2009-03-10 | 2010-09-24 | Fujitsu Ltd | プログラム、コンピュータ及び制御方法 |
US8806047B2 (en) | 2009-04-29 | 2014-08-12 | Lemi Technology, Llc | Skip feature for a broadcast or multicast media station |
US7657337B1 (en) | 2009-04-29 | 2010-02-02 | Lemi Technology, Llc | Skip feature for a broadcast or multicast media station |
JP5644153B2 (ja) * | 2010-03-26 | 2014-12-24 | ソニー株式会社 | 情報処理装置及び電源制御回路 |
TWI439852B (zh) * | 2010-03-26 | 2014-06-01 | Sony Corp | Information processing device and power control circuit |
JP5644152B2 (ja) * | 2010-03-26 | 2014-12-24 | ソニー株式会社 | 情報処理装置 |
US8924873B2 (en) | 2010-11-23 | 2014-12-30 | International Business Machines Corporation | Optimizing a user interface for a computing device |
US8869167B2 (en) | 2011-05-19 | 2014-10-21 | International Business Machines Corporation | Application hibernation |
CN102243662A (zh) * | 2011-07-27 | 2011-11-16 | 北京风灵创景科技有限公司 | 一种在移动设备上显示浏览器界面的方法 |
US9395869B2 (en) | 2012-02-02 | 2016-07-19 | Apple Inc. | Global z-order for windows |
WO2015026101A1 (ko) * | 2013-08-22 | 2015-02-26 | 삼성전자 주식회사 | 디스플레이 장치의 애플리케이션 실행 방법 및 그 디스플레이 장치 |
JP2015106167A (ja) * | 2013-11-28 | 2015-06-08 | ソニー株式会社 | 情報処理装置、情報処理方法および記憶媒体 |
WO2016004625A1 (zh) * | 2014-07-11 | 2016-01-14 | 华为技术有限公司 | 人机交互功能执行方法及终端 |
US20160077685A1 (en) * | 2014-09-15 | 2016-03-17 | Microsoft Technology Licensing, Llc | Operating System Virtual Desktop Techniques |
US20240192965A1 (en) * | 2022-12-13 | 2024-06-13 | Ati Technologies Ulc | Continuity of service for virtualized device after resumption from hibernation |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4907150A (en) * | 1986-01-17 | 1990-03-06 | International Business Machines Corporation | Apparatus and method for suspending and resuming software applications on a computer |
JP2728724B2 (ja) * | 1989-04-28 | 1998-03-18 | 株式会社東芝 | コンピュータシステムおよびそのシステム立ち上げ方法 |
US5167024A (en) * | 1989-09-08 | 1992-11-24 | Apple Computer, Inc. | Power management for a laptop computer with slow and sleep modes |
US5021983B1 (en) * | 1989-11-13 | 1996-05-28 | Chips & Technologies Inc | Suspend/resume apparatus and method for reducing power consumption in battery powered computers |
US5355501A (en) * | 1990-03-09 | 1994-10-11 | Novell, Inc. | Idle detection system |
US5008829A (en) * | 1990-06-14 | 1991-04-16 | International Business Machines Corporation | Personal computer power supply |
US5193176A (en) * | 1990-10-17 | 1993-03-09 | Powercard Supply C.A. | Computer work saving during power interruption |
US5410711A (en) * | 1991-02-14 | 1995-04-25 | Dell Usa, L.P. | Portable computer with BIOS-independent power management |
US5297282A (en) * | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
JPH07101376B2 (ja) * | 1991-06-10 | 1995-11-01 | 松下電器産業株式会社 | システム再起動装置 |
JPH06236284A (ja) * | 1991-10-21 | 1994-08-23 | Intel Corp | コンピュータシステム処理状態を保存及び復元する方法及びコンピュータシステム |
US5369771A (en) * | 1991-12-23 | 1994-11-29 | Dell U.S.A., L.P. | Computer with transparent power-saving manipulation of CPU clock |
US5410713A (en) * | 1992-01-02 | 1995-04-25 | Smith Corona/Acer | Power-management system for a computer |
US5561811A (en) * | 1992-11-10 | 1996-10-01 | Xerox Corporation | Method and apparatus for per-user customization of applications shared by a plurality of users on a single display |
US5548506A (en) * | 1994-03-17 | 1996-08-20 | Srinivasan; Seshan R. | Automated, electronic network based, project management server system, for managing multiple work-groups |
US5557732A (en) * | 1994-08-11 | 1996-09-17 | International Business Machines Corporation | Method and apparatus for protecting software executing on a demonstration computer |
-
1995
- 1995-06-07 US US08/473,273 patent/US5682550A/en not_active Expired - Lifetime
-
1996
- 1996-05-28 EP EP96303785A patent/EP0747810B1/en not_active Expired - Lifetime
- 1996-05-28 DE DE69620055T patent/DE69620055T2/de not_active Expired - Fee Related
- 1996-05-29 JP JP13553196A patent/JP3454492B2/ja not_active Expired - Fee Related
- 1996-06-05 KR KR1019960020166A patent/KR100188501B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0747810A2 (en) | 1996-12-11 |
KR100188501B1 (ko) | 1999-06-01 |
DE69620055T2 (de) | 2003-01-02 |
KR970002701A (ko) | 1997-01-28 |
JPH096460A (ja) | 1997-01-10 |
EP0747810B1 (en) | 2002-03-27 |
US5682550A (en) | 1997-10-28 |
DE69620055D1 (de) | 2002-05-02 |
EP0747810A3 (en) | 1997-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3454492B2 (ja) | ウィンドウ・ベースの複数ユーザ・コンピュータ・システムおよび方法 | |
KR0134146B1 (ko) | 컴퓨터 시스템에서 보호 모드로 코드를 실행중인 cpu의 상태 보존 및 복원 방법과 페이지 디렉토리 베이스 레지스터 값 평가 및 평가 값 검증 방법 | |
KR0167810B1 (ko) | 컴퓨터 시스템 및 그의 상태 보관방법 | |
US5513359A (en) | Desktop computer having a single-switch suspend/resume function | |
KR0128275B1 (ko) | 컴퓨터 시스템과그의 전력사용 관리방법, 인터럽트 제어기의 베이스 어드레스 상태 확인방법과 씨피유 상태보존 및 복원방법 | |
KR100190736B1 (ko) | 컴퓨터 시스템 | |
KR100196893B1 (ko) | 컴퓨터 시스템 | |
JP3197796B2 (ja) | サスペンド・システム用多機能パワー・スイッチとフィードバックled | |
US5021983A (en) | Suspend/resume apparatus and method for reducing power consumption in battery powered computers | |
JP3224715B2 (ja) | コンピュータ・システムをウェイクさせる低電力リング検出 | |
JP3193596B2 (ja) | 電源切断後のユーザ・オプションの自動リストア | |
JPH096486A (ja) | 多重延期及び再開機能を有するコンピュータ・システム及び方法 | |
KR100207884B1 (ko) | 컴퓨터 시스템, 코드 실행 제어 방법, 및 컴퓨터 시스템 전력 관리 방법 | |
AU732436B2 (en) | Desktop computer system having multi-level power management | |
JPH11143566A (ja) | コンピュータの見掛け初処理能力を最大化する方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |