JP2001521243A - グラフィック表現を使用したファームウェア・コードの生成 - Google Patents

グラフィック表現を使用したファームウェア・コードの生成

Info

Publication number
JP2001521243A
JP2001521243A JP2000518323A JP2000518323A JP2001521243A JP 2001521243 A JP2001521243 A JP 2001521243A JP 2000518323 A JP2000518323 A JP 2000518323A JP 2000518323 A JP2000518323 A JP 2000518323A JP 2001521243 A JP2001521243 A JP 2001521243A
Authority
JP
Japan
Prior art keywords
tree structure
bus
item
processor
hierarchical tree
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.)
Pending
Application number
JP2000518323A
Other languages
English (en)
Inventor
ティモシィ エイ. ルイス
Original Assignee
フィーニックス テクノロジーズ リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by フィーニックス テクノロジーズ リミテッド filed Critical フィーニックス テクノロジーズ リミテッド
Publication of JP2001521243A publication Critical patent/JP2001521243A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 単一のOEM(Original-Equipment-Manufacturer)プログラマがACPI(Advanced Configuration and Power Interface)仕様と互換性があるファームウェアを生成可能なウィンドウズ・インタフェースを有するユーティリティ。このファームウェアは、データ・オブジェクト、制御方法オブジェクトおよびバス/デバイス・パッケージ・オブジェクトを含むオペレーティングシステム制御型メモリ中にACPI名前空間、すなわち階層ツリー構造を含む。この階層型名前空間は、「クリック・アンド・ドラッグ」方法論を使用して構成され、図解式ツリー構造としてウィンドウズ・インタフェースにおいて表現される。ツリー構造のルートからは、汎用事象、プロセッサ電力制御、スリープ状態、システム・バスおよび温度制御のためのブランチがある。このシステム・バスは、そこに配置されたデバイスに対するブランチを有し、デバイスは、現在のリソース設定と、ハードウェア識別と、可能なリソース設定と、セット・リソース設定情報とを含むフォルダーに対するデバイスを有する。このユーティリティは、システムの詳細な仕様を完成するために必要とされる情報のための名前空間の作成時にOEMプログラマを支援する。このユーティリティは、階層ツリー構造の全体のレベルから個々のデバイスのレベルまで、膨大な数のデフォルト・コンポーネントを提供する。反復的なプロセスを使用することによって、作成された階層ツリー構造は、ツリー構造のものをほぼ反映している構造を有するASLソース・コードへマッピングされる。全般的に、この反復的プロセスは、各項目に対して名前ステートメント、オープニングブラケット、主部、クロージングブラケットと、親項目の主部内にある親項目の有効範囲内の子項目とを作成する。項目(フィールド、メソッド、パッケージ、リソースなど)によっては、括弧および/または主部の生成をオーバーライドする必要があるものもある。

Description

【発明の詳細な説明】
【0001】
【発明の背景】
本発明は、コンピュータのベーシック入出力関数のためのファームウェアの生
成に関するものであり、さらに詳細に記せば、OEM(Original-Equipment-Manufac
turer)プログラマがACPI(Advanced Configuration and Power Interface)対応の
ファームウェアのグラフィカル表現を作成しそのグラフィカル表現に基づいてフ
ァームウェア・ソース・コードを生成することができる、構造化図解ツリー構造
などのグラフィカル・インタフェースを提供するユーティリティに関する。
【0002】 コンピュータ・システムのファームウェアは、システム・ソフトウェアの一部
であり、ベーシック入出力システム(BIOS)を含み、マザーボード上のチップの 読込専用メモリ(ROM)に格納される。レガシー(すなわちACPI前)オペレーティ
ングシステムは、プラットホーム上のデバイスに関する情報を有さないため、BI
OSは、立ち上げ時、プラットホーム上のデバイスがどのように構成および制御さ
れているかについての全般情報を、オペレーティングシステムに供給する。例え
ば、BIOSは、実装されている映像グラフィック・アダプタ・カードおよびサウン
ド・カードとの通信のプロトコルに関して、マザーボードに接続されているか、
または入出力(I/O)スロットを介してインタフェース接続されているかを、オペ
レーティングシステムに通知する。
【0003】 電源管理、温度管理、バッテリー管理およびプラグ・アンド・プレイの関数を
、BIOSファームウェアに割り当てることには、いくつかの問題がある。例えば、
BIOSは、立ち上げ時にのみアクセスされるため、それらの関数は、立ち上げ後、
修正または更新されることができない。立ち上げ後のハードウェアのいかなる変
更も、BIOSによって処理されることはできない。別の問題は、BIOSファームウェ
アとハードウェアとが強力に結びついていることである。BIOSとハードウェアの
進化は独立しては実現せず、出荷サイクルも同時でなければならない。さらに、
BIOSファームウェア中の使用可能な空間は限られており、比較的単純な電源管理
装置のみ実現可能である。
【0004】 別の問題は、BIOSファームウェア、特にACPI対応BIOSファームウェアの作成の
複雑さである。特定のデバイス用にBIOSコードを生成するために必要な専門知識
は、デバイスにのみ依存するものではなく、それがインストールされるプラット
ホームにも依存し、さらにそれが相互動作を行なう他のデバイスにも依存する。
エラーの無いコードを生成することは、特に重要である。さらに、BIOSは、マシ
ンの動作の基盤となるもので、その信頼性、サイズおよび性能は重要である。結
果として、BIOSの開発は、その品質を保証するために行なわれなければならない
広範な試験に起因して、OEMにとって最も深刻なスケジューリング危機の1つで ある。
【0005】
【発明の概要】
本発明は、コンピュータ・システムのBIOSファームウェアによって使用される
電力およびデータ制御の情報を表現する階層ツリー構造を生成するために使用さ
れるユーティリティを提供する。このコンピュータ・システムは、システム・バ
スおよびプロセッサを含む事前に定義されたデバイスを有するオペレーティング
システムと、電力制御およびデータ制御情報に対応する階層ツリー構造のルート
へのポインタを含むBIOSファームウェアとを有する。このユーティリティは、階
層ツリー構造のルートのための第1の有効範囲を定義するための手段と、階層ツ
リー構造のルートの第1の有効範囲内のバス・オブジェクトに到達するための手
段とを含む。このバス・オブジェクトは、コンピュータ・システムのシステム・
バスに対応する。また、このユーティリティは、バス・オブジェクトのための第
2の有効範囲を定義するための手段と、バス・オブジェクトの第2の有効範囲内
のプロセッサ・オブジェクトに到達し、それによってコンピュータ・システムの
プロセッサへの通信がシステム・バスを介してルーティングされることを示すた
めの手段とを含む。このプロセッサ・オブジェクトは、コンピュータ・システム
のプロセッサに対応する。
【0006】 このユーティリティは、電力制御およびデータ制御の情報を含むデータ構造へ
のポインタが配置されたBIOSファームウェア中のアドレスに対応するツリーのル
ートを生成することが好ましい。コンピュータのシステムを表すバス・オブジェ
クトは、そのツリーに接続されることが可能で、特定のデバイスを表すデバイス
・オブジェクトは、バス・オブジェクトに接続されることが可能で、そのデバイ
スへの通信がそのバス・オブジェクトを介してルーティングされることを示す。
このデバイス・オブジェクトは、ハードウェア識別フォルダと、現在のリソース
設定フォルダと、可能なリソース設定フォルダと、セット・リソース設定フォル
ダと、電力セット・フォルダと電力リソース・フォルダとを有する。このハード
ウェア識別フォルダは、デバイスの種類と製造業者を一意に識別する数を含む。
コンピュータ・システムが現在のリソース設定フォルダへアクセスすると、シス
テムは、デバイスの現在のリソース設定について通知する。システムが可能なリ
ソース設定フォルダへアクセスすると、システムは、デバイスによって使用され
ることが可能なリソースを通知する。コンピュータ・システムがセット・リソー
ス設定フォルダにアクセスすると、システムは、デバイスによって使用されるリ
ソースを設定するよう指示する。電力セットおよび電力リソースのフォルダは、
デバイスの電力状態レベルに対応する関連値を有し、システムが電力セット・フ
ォルダへアクセスすると、システムはデバイスをその電力状態レベルにするよう
指示する。システムが電力リソース・フォルダへアクセスすると、その電力状態
レベルにある時のデバイスの電力要求の評価が実現する。このユーティリティは
、記憶装置、統合メモリを有するマイクロプロセッサ、コンパクト・ディスク、
またはフロッピー・ディスクなどのコンピュータ読込可能格納媒体中で符号化可
能である。
【0007】 本発明は、項目の階層ツリー構造に近いコンピュータ・コードを生成するため
のコンピュータ実行型反復的方法を提供するもので、このコンピュータは、オペ
レーティングシステムおよびBIOSを有し、このオペレーティングシステムは、シ
ステム・バスおよびプロセッサを含む事前に定義されたデバイスを有し、BIOSは
電力制御およびデータ制御の情報を含む階層ツリー構造のルートへのポインタを
含む方法で、この方法は、現在の項目を階層ツリー構造のルートとして定義し;
この現在の項目に対応するヘッダー・コードを生成し;この現在の項目がオープ
ニングブラケットオーバーライドを有する場合、オープニングブラケットオーバ
ーライド・コードを生成し、その後にヘッダー・コードを生成し;現在の項目が
子項目を有する場合および現在の項目がオープニングブラケットオーバーライド
を有さない場合、オープニングブラケット表記を生成し、その後にヘッダー・コ
ードを生成し;現在の項目がボディーオーバーライドを有する場合、ボディーオ
ーバーライド・コードを生成し、その後にオープニングブラケットオーバーライ
ド・コードを生成し、またはオープニングブラケット表記を生成し;現在の項目
がボディーオーバーライドを有さない場合、現在の項目を親項目として再定義し
、子項目を現在の項目として再定義してヘッダー・コードを生成する工程に対し
て反復的なブランチを生成し、その後にオープニングブラケットオーバーライド
・コードを生成し、またはオープニングブラケット表記を生成し;現在の項目が
クロージングブラケットオーバーライドを有する場合、クロージングブラケット
オーバーライド・コードを生成し、その後に、ボディーオーバーライド・コード
を生成し、または反復的ブランチを生成し;現在の項目が子項目を有する場合お
よび現在の項目がオープニングブラケットオーバーライドを有さない場合、クロ
ージングブラケット表記を生成し、その後、ボディーオーバーライド・コードを
生成する、または反復的ブランチを生成する工程からなる方法を提供する。
【0008】 本発明は、単一のOEMプログラマが、「クリック・アンド・ドラッグ」方法論 を使用して図解式ツリー構造のような視覚形状で名前空間を効率的に生成できる
ようにするもので、システムの詳細の仕様を完成するために必要な情報のための
図解式ツリー構造の生成時に、OEMプログラマを支援する。さらに、このユーテ ィリティは、そのツリー構造をASLコードにマッピングする。このユーティリテ ィは、階層ツリー構造の全体のレベルから個々のデバイスのレベルまで、膨大な
数のデフォルト・コンポーネントを提供する。また、このユーティリティは、OE
Mプログラマが、階層型名前空間が作動システムを実際に表現していることを確 認できるようにするツールを提供する。例えば、このシステムがプロセッサを含
まない場合、このユーティリティは、OEMプログラマにエラー・メッセージで通 知する。
【0009】 本発明は、「手作業でコーディングされた」ファームウェアと同様に動作し、
同様に空間的効率の良いASLコードを生成する。このユーティリティがOEMおよび
全ての関係する企業による検討試験に合格すると、製造スケジュールにおける時
間のかかる工程は完全に回避される。
【0010】 本発明の目的は、単一のOEMプログラマが、ファームウェアを、エラー無く、 最小限の専門知識と、最適化した時間効率で生成できるユーティリティを提供す
ることである。
【0011】 本発明の別の目的は、OEMプログラマがグラフィカル・ウィンドウ・インタフ ェースを使用して名前空間を表現する図解式階層ツリー構造を作成することによ
って、システム・ファームウェアを生成できるようにするユーティリティを提供
することである。
【0012】 本発明のさらなる目的は、OEMプログラマがシステム・ファームウェアを生成 するためのユーティリティを提供することで、有効なデフォルト・オブジェクト
を提供し、システムの仕様を完成するために必要な情報をプログラマに援助する
【0013】 さらに、本発明の目的は、名前空間の階層ツリー構造と類似するが完全に同一
ではない階層ツリー構造を有するシステム・ファームウェアを生成するコードを
提供することである。
【0014】 本発明のその他の目的および利点は、図面および後続の詳細な説明の熟慮から
明らかとなるであろう。 本発明の一部に取り入れられ、本発明の一部を形成する添付図面は、本発明の
実施形態を図示したもので、「詳細な説明」とともに、本発明の原理を説明する
上で有効である。
【0015】
【本発明の詳細な説明】
レガシーBIOSの欠点を回避するために、ACPIは、カリフォルニア州の
サンタクララ市のインテル社、ワシントン州のレッドモンド市のマイクロソフト
社、および日本の東京の東芝社によって電力管理規格として提案されている。そ
っくりそのまま参照してここに組み込まれているのは、その現草稿がwww.telepo
rt.com/~acpi/のワールドワイドウェブで見つけることができるACPI仕様で ある。
【0016】 ACPI仕様によれば、BIOSよりもむしろオペレーティングシステムは、
電力管理、熱状態、およびコンピュータのプラグ・アンド・プレイ(マザーボー
ド装置の列挙および構成がオペレーティングシステムによって実行される)機能
性を制御する。これによって、オペレーティングシステムは、ハードウェアから
独立して発展できるので、ACPIコンパチブルコンピュータは、オペレーティ
ングシステムの改良および革新の利益を得ることができる。さらに、これによっ
て、ハードウェアは、オペレーティングシステムから独立して発展でき、ハード
ウェアおよびオペレーティングシステムの出荷サイクルを切り離している。
【0017】 コンピュータシステム100の構成要素に対するACPIファームウェア10
2の関係を示すACPIコンパチブルコンピュータシステム100の概略が図1
Aに示されている。ACPIファームウェア102は、ACPIBIOS105
と、ACPIレジスタ110と、ACPIテーブル115とを含んでいる。AC
PIBIOS105は、ACPIテーブル115およびACPIレジスタ110
に記憶されたプラットホームハードウェア130のインタフエースの記述に基づ
いてコンピュータシステム100をブートアップするコードを含む。ACPIレ
ジスタ110は、ACPI準拠プラットホーム毎に設けられた標準セットのハー
ドウェアである。高度電力管理機能に加えて、レガシーBIOS機能はACPI
BIOS105によって実行されることに注目すべきである。
【0018】 図1Aにおいて、オペレーティングシステム152は2つのコンポーネントに
分割される。すなわち、(i)全ACPI構成タスクおよび電力管理タスクを処
理するオペレーティングシステム電力管理(OSPM)システムコード150お
よび(ii)全メモリ機能、ファイル機能、時間機能、アプリケーションランチ
を管理し、全周辺装置機能およびOSPMシステムコード150によって処理さ
れない資源割り当てを処理するカーネル155である。ACPIファームウェア
102はオペレーティングシステム技術とは無関係であるがゆえに、ACPIフ
ァームウェア102の上の図1Aに示されたシステム100の構成要素(すなわ
ち、アプリケーション160、カーネル155、デバイスドライバ140および
ハードウェア抽象層(HAL)140)はオペレーティングシステム150に固
有な技術である。カーネル155からハードウェア130へのデータ転送のよう
な非電力管理通信はデバイスドライバ140を介して経路選択される。
【0019】 OSPMコード150からハードウェア130への電力管理通信は、カーネル
155、HAL135およびACPIファームウェア102を介して経路選択さ
れる。ハードウェア130は、前記オペレーティングシステム152によって予
め規定された装置に機能性によって分類される。HAL135は、ACPIレジ
スタインタフエース112を介してACPIレジスタ110と、ACPIBIO
Sインタフエース107を介してACPIBIOS105と、ACPIテーブル
インタフエース117を介してACPIテーブル115と通信する。オペレーテ
ィングシステム152とハードウェア装置130との間の電力管理通信には4つ
の主要な分野がある。まず第1に、プラットホームの装置130は使用可能な資
源(例えば、RAMメモリ)を共用しなければならないために、プラグ・アンド
・プレイ手順は、オペレーティングシステムにどの資源が使用されているかおよ
び装置130の中で使用可能な資源をいかに割り当てるかを通知する。第2に、
一旦装置130がシステム100に接続されると、割り込みは、システムがCP
Uを停止させ、タスクを処理するために必要である。第3に、ダイレクトメモリ
アクセス(DMA)は、CPUからの妨害を必要としないでデータをRAMに転
送できるために必要である。オペレーティングシステム152の第4の主要な機
能は電力管理、すなわちプラットホームの装置130の機能性および電力消費の
レベルの制御である。
【0020】 ポータブルコンピュータの到来以前、電力消費は、設計に考慮すべき重大な事
項ではなく、一般に、装置にはオン状態およびオフ状態があった。しかしながら
、ポータブルコンピュータ(例えば、ラップトップパソコンおよびノート型パソ
コン)は、限られた時間にコンピュータにだけ電力を供給できる内部電池によっ
て電力を供給される。したがって、多数の中間電力消費状態を有するより高性能
の電力管理システムは非常に役立つ。デスクトップパソコンの場合、精巧なスリ
ープ方式は必要でないけれども、不必要な電力消費は電力コストを減少させ、世
界の環境に対して利益があるので、不必要な電力消費を最少とすることも望まし
い。
【0021】 サーバマシンは極端な大きなハードウェア構成を有する傾向があるので、サー
バマシンは実際にACPIから最大電力節約を得ることをたゆまなく続ける。サ
ーバは一般にいろいろの作業スケジュールを有する多数のユーザを有するので、
このマシンは夕方にターンオフできない。したがって、夜にできるだけ深くサー
バスリープを有しながら妥当な待ち時間で電話リンク、ローカルネットワーク等
を介してサービスリクエストに応答するように作業状態になお戻すことができる
ことが望ましい。
【0022】 ACPI仕様は、オフ状態と完全オン状態との間のグローバルシステム状態の
範囲を記述する。グローバルシステム状態は全システムに適応され、いかなる瞬
間でもシステムの状態はユーザに明らかである。ACPI仕様は、オフ状態と完
全オン状態との間の装置の電力状態の範囲も記述するが、これらの状態は一般に
ユーザに明らかではない。
【0023】 例えば、ラップトップコンピュータは、ハードドライブが、ハードドライブの
ディスクが回転していない“スリープ”状態になることを可能にすることができ
る。この“回転減少”状態の場合、なおハードドライブをオペレーティングシス
テムは利用できる。しかしながら、ハードドライブのデータをアクセスできる前
にハードドライブのディスクは、その完全回転速度まで“回転増加”しなければ
ならないので、ハードドライブのデータのアクセスは高速でない。それで、ハー
ドドライブの機能性は減少されるけれども、電力消費を大幅に減少できる。
【0024】 ACPI仕様によれば、いろいろのスリープのレベルは、装置およびユーザの
要求に応じて、選択できる。スリープレベルは、S0、S1、S2、S3、S4
およびS5と示され、S4およびS5は、最深スリープレベルであり(S4は、
S5において、RAMに予め記憶された全ての情報が不揮発性記憶装置にセーブ
されなければならない点でだけS5とは異なる)、S0は完全作動状態である。
例えば、コンピュータが応答マシンの役目を果たすためのものである場合、スリ
ープレベルは、コンピュータが2回の電話呼び出し音内で機能的なレベルに達し
、発呼者がハングアップする前に電話に応答できるような深さにすぎなくてもよ
い。しかしながら、コンピュータが1回の呼び出し音あるいは2回の呼び出し音
の後に応答することは受容可能であるので、待ち時間はあまり短くする必要がな
い。
【0025】 ACPI仕様は、グローバルシステム状態を下記の条件に従って規定する。す
なわち、(i)アプリケーションソフトウェアが作動しているかどうか、(ii)外部 事象からアプリケーション応答までの待ち時間がどれだけであるか、(iii)電力 消費はどれだけであるか、(iv)オペレーティングシステムリブートが作業状態に
戻すために必要であるかどうか、(v)コンピュータを分解することが安全である かどうか、および(vi)電子的に状態に入り、状態から出ることができるかどうか
である。
【0026】 図1Bの表は、グローバル状態G0、G1、G2およびG3の特性を作表して
いる。テーブルの第1列は、グローバル状態およびその共通名を列挙している。
第2列は、アプリケーションソフトウェアはグローバル状態の各々で実行してい
るかどうかを規定している。第3列は、外部事象とCPUからの応答との間の待
ち時間を規定している。第4列は、各状態の電力消費を規定している。第5列は
、オペレーティングシステム再始動が操作を再開するためにコンピュータにとっ
て必要であるかどうかを規定している。第6列は、コンピュータを分解すること
が安全であるかどうかを規定している。第7列は、グローバル状態から電子的に
出ることができるかどうかを規定している。
【0027】 レガシーBIOSサポートを有するコンピュータのためのACPIグローバル
状態G0 170、G1 190、G2 175、およびG3 185間の可能な遷
移の概略は図1Cに示されている。(レガシーサポートがないコンピュータには
、レガシー状態180およびレガシー状態180への遷移およびレガシー状態1
80からの遷移の全遷移186、181、182および176がない。)この状
態では、コンピュータが作業を行うために使用されるで、グローバル状態G0 170は、“作業”状態と呼ばれる。この状態では、プログラマアプリケーショ
ンスレッドは実行され、周辺装置の電力状態が動的に変更できる。プログラマは
、ACPIファームウェアに性能および電池寿命のある程度のバランスを最適化
させるようにシステムの複数の性能/電力特性の中で選択できる。コンピュータ
は実時間で外部事象に応答し、電流が回路を流れるので、コンピュータを分解す
るのには安全でない。後述されるように、作業状態では、装置(図1Cの例では
、この装置はCD‐ROMプレイヤー197、ハードドライブ(HDD)198
およびモデム199)は、装置電力状態D0〜D3のいずれかにある可能性があ
り、CPU196はプロセッサ電力状態C0〜C3のいずれかにある可能性があ
る。しかしながら、装置197〜199あるいはCPU196が低電力(すなわ
ち、長い応答時間)状態にある場合、“短い待ち時間”で高速状態に戻すことが
できる。装置電力状態およびプロセッサ電力状態の選択は、速度、電力、熱およ
び雑音との間のトレードオフに基づいている。
【0028】 コンピュータは、作業状態170から、“スリーピング”状態と呼ばれるグロ
ーバル状態G1 190に遷移192できる。この状態では、コンピュータは、 オフであるように“見え”、ユーザアプリケーションスレッドは実行されない。
作業状態G0 170へのウェーク遷移191に対する待ち時間は、スリープ状 態190に入る前に規定される。作業状態G0 170への戻り191は、シス テムコンテキストがセーブされるために、オペレーティングシステムを再ブート
しないで再開できる。電流は回路に流れているために、コンピュータを分解する
ことは安全でない。グローバルスリーピング状態G1 190は多数のスリープ 状態S1〜S4を含む。
【0029】 コンピュータは、作業状態170から、“ソフトオフ”状態と呼ばれるグロー
バル状態G2 175に遷移192できる。この状態G2 175は最少の電力量
を消費するが、作業状態G0 170に戻すのに大きな待ち時間を必要とする。 電流は回路を流れているために、回路を修理するかあるいは変更することは安全
でない。プログラマモードコード(すなわち、アプリケーション)あるいはシス
テムモードコードは全然実行されなく、システムコンテキストはハードウェアに
よって保存されなく(すなわち、ハードウェアは、どのアプリケーションが開い
ているかおよびどんなデータがRAMに記憶されているかの記録を保有していな
い)、システムは、作業状態G0 170に戻す177ように再始動しなければ ならない。
【0030】 グローバル状態G3 185は、機械的手段、例えば、スイッチあるいはボタ
ンによって入ったり172、出たり178しなけばならない機械的オフ状態であ
る。機械的オフ状態G3 185では、電流は回路に全然流れないので、電力消 費は全然なく、ハードウェアを傷つけないであるいはサービス職員を危険にさら
さないで、この回路を変更あるいは修理できる。オペレーティングシステムは、
作業状態G0 170に戻す178ように再始動しなければならなく、ハードウ ェアコンテキストは保有されない。
【0031】 レガシーBIOS電力管理インタフエースをサポートするコンピュータは、A
CPIオペレーティングシステムがロードする場合、レガシー状態180および
遷移181から作業状態G0 170にブートする。しかしながら、レガシーサ ポートのないシステム(例えばRISCシステム(Reduced Instruction Set Co
mputing system))は、機械的オフG3 185から作業状態G0 170に直接
遷移178する。
【0032】 装置電力状態はプログラマには見えなくて、いくつかの装置は、たとえ全体と
してコンピュータが作業状態G0にあるとしても、オフ状態にある可能性がある
。ACPI仕様は、装置状態を下記の4つの特徴に従って規定する。すなわち、
(i)どれくらいの電力量が装置によって使用されるか、(ii)装置のどれくらいの コンテキスト量がハードウェアによって保有されているか(オペレーティングシ
ステムはハードウェアで保有されていない任意のコンテキストを保有する責任を
負う)、(iii)どれくらいデバイスドライバが装置をオン状態に復元しなればな らないか、および(iv)装置をオン状態に復元するのにどれくらいの長さの時間が
かかるかである。
【0033】 図1Dの表は、装置電力状態D0、D1、D2およびD3の特性を作表してい
る。表の第1列は電力状態およびその共通名を列挙する。第2列は電力消費の状
態を規定している。第3列はどれくらいの量の装置コンテキストが保有されてい
るかを規定している。第4列は、どれくらいデバイスドライバが装置をオン状態
に復元しなければならないかを規定している。ワールドワイドウェブアドレスww
w.teleport.comで得ることができるデバイスクラス電力管理仕様は、いろいろの
クラスの装置のための装置電力状態のより詳細な記述を与える。装置は単一装置
電力状態内に複数の電力モードを持つことができ、ソフトウェアによって検出さ
れないこれらのモードを切り換えることができる。
【0034】 装置電力状態D0は“完全オン”状態と呼ばれる。この状態は最高レベルの電
力消費を有する。この装置は完全にアクティブであり、応動し、全ての関連コン
テキスト情報を連続して保有する。
【0035】 装置電力状態D1の正確な定義はクラス毎に変わる。一般に、状態D1は、状
態D0より少ない電力を消費し、状態D0より少ないコンテキストを保存し、状
態D2よりも多くの電力を消費し、状態D2よりも多くのコンテキストを保存す
る。
【0036】 装置電力状態D2の正確な定義はクラス毎に変わる。一般に、状態D2は、状
態D1より少ない電力を消費し、状態D1より少ないコンテキストを保存し、状
態D3よりも多くの電力を消費し、状態D3よりも多くのコンテキストを保存す
る。
【0037】 装置電力状態D3は“オフ”状態と呼ばれる。全ての電力が装置から取り除か
れ、コンテキスト情報はこの状態では失われる。したがって、この状態の装置は
アクセスに応答しなく、オペレーティングシステムは、電力が再度印加される場
合、再初期化しなければならない。この状態の装置は最大復元時間を有する。
【0038】 オペレーティングシステムはアイドルであるが、“スリーピング”でない場合
、オペレーティングシステムは、システムのプロセッサをプロセッサ電力状態に
することもでき、プロセッサ電力状態の詳細はACPI仕様によって規定されて
いる。C0状態では、プロセッサは完全に使用できる;C1状態では、プロセッ
サはアイドルである;C2状態では、プロセッサは一般に非アクティブであるが
、起動の呼び出しに応答する;およびC3状態では、プロセッサは非アクティブ
であり、起動の呼び出しに応答しない。
【0039】 ACPI仕様は、ACPIコンパチブルオペレーティングシステム152がシ
ステム電力管理機能を制御するために使用し、装置電力管理および構成詳細を制
御する言語をプログラミングするASL言語プログラミング言語を介して抽象イ
ンタフエースを提供するハードウェアレジスタインタフエースを規定し、ASL
コードおよびレジスタインタフエースによって指定された電力管理機能および構
成詳細を利用するためにオペレーティングシステム152とファームウェア10
2との間のインタフエースを規定する。ハードウェアの要件および設計に最大の
汎用性を与えるために、システム情報、機能および機能を制御する方法はACP
Iテーブル115に記憶されている(図1Aを参照)。オペレーティングシステ
ム152は、HAL135を介して、ACPIテーブル150にアクセスし、テ
ーブル情報を使用し、ハードウェア装置130を制御する。これらのテーブル1
15は、どのスリープ電力状態がサポートされているか、電力プレーンの記述、
クロック発生源およびシステムが利用できるシステム表示灯、電池についての詳
細等のようなシステム機能も列挙する。
【0040】 ACPIテーブル115の概略は図1Eに示される。ルートシステム記述ポイ
ンタ50は、初期テーブル、ルートシステム記述テーブル(RSDT)53を指
し、RSDT53のエントリ54は、その後のテーブル55、56および60を
指す。RSDT53のエントリ54によって指示されたテーブルの中の1つが固
定ACPI記述テーブル(FACP)60であることが必要である。FACPテ
ーブル60は、いろいろのスタティック電力管理情報ならびにACPIレジスタ
110のインプリメンテーションおよび構成詳細を規定する。FACP60内の
データは、使用される割り込みモード(2つの工業規格の1つを選択できる)、
電力管理事象レジスタブロックのためのアドレス、電力管理制御レジスタブロッ
クのためのアドレス、電力管理時間レジスタブロックのアドレス、汎用事象レジ
スタレジスタブロックのためのアドレス、プロセッサ電力状態C2およびC3等
に入り、この状態から出るための最悪の場合の待ち時間のようなACPI機能を
記述するエントリも含む。
【0041】 FACP60によって指示されたテーブルの中の1つが識別システム記述テー
ブル(DSDT)65であることが必要である。このテーブル65は、識別定義
ブロック(DDB)66を含み、このブロックは電力管理、熱管理、あるいはA
CPIハードウェアレジスタ110によって提供される情報以上に拡張するプラ
グ・アンド・プレイ機能を実行するようにACPIドライバ72によって使用さ
れるインプリメンテーションおよび構成情報(図1Eに示されていないオペレー
ティングシステムの構成要素)を含む。
【0042】 FACP60が指示するのに必要であるテーブルの中のもう一つはファームウ
ェアACPI制御構造(FACS)70である。このテーブル70は、ハードウ
ェアシグネチャ、ウェーキングベクトルおよびグローバルロックを含む。ハード
ウェアシグネチャは、固有シグネチャを各可能なハードウェア構成に割り当てる
アルゴリズムによって計算された4バイト数である。したがって、システムがス
リープ状態から目を覚ます場合、現ハードウェアシグネチャを前のハードウェア
シグネチャと比較することによってハードウェア構成が変更されたかどうかを知
らせることができる。ウェーキングベクトルは、制御がウェーキングの際に渡さ
れるウェーク機能のアドレスを含む。グローバルロックは、オペレーティングシ
ステム150とシステム管理割り込みとの間の共有ハードウェア資源(すなわち
、プロセッサのオペレーティングシステム、別々の最高優先順位割り込み)への
アクセスと同期化するために使用される。
【0043】 DSDT65は、付加的規定ブロックを静的あるいは動的にロードでき、この
ブロックは順に新しいシステム属性を規定できるかあるいは従来の規定で形成で
きる。これは、対応するハードウェアがインプリメンテーションにおいて幅広く
変わることを可能にし、より基本的な機能をDSDT65で行うことができ、あ
まり基本的でないシステムオプションを二次システム記述テーブル67および6
8に記憶することができるので、役に立つ。図1Dの本例の付加的システム記述
テーブルは、“二次システム記述テーブル”と呼ばれる2つのこのようなテーブ
ル67および68を示している。“持続的”と特徴付けられる二次システム記述
テーブル67および68は、オペレーティングシステム152によってセーブさ
れ、ブートアップ毎に自動的にロードされる。これはブートアップの後のシステ
ムに接続される装置のロードおよび列挙時間を改良する際に役に立つ。
【0044】 BIOSファームウェア、特にACPIコンパチブルBIOSファームウェア
の作成の複雑さは、プラットホーム、チップセット、およびコンポーネントのた
めの“クラス軸”がある高次元構成空間のグリッドとしてプラットホーム上の装
置の特定の構成を示すことによって実証される。例えば、図1Fは、プラットホ
ーム1010、チップセット1012、およびハードドライブ1014のための
クラス軸が典型的な3次元構成空間1000を示している。各クラス軸はクラス
内の3つの項目で表示される。本例では、プラットホーム軸1010に沿った装
置は、東芝サテライト100CSラップトップ、東芝420CDTラップトップ
およびIBMシンクパッド760であり、チップセット軸1012に沿った装置
は、インテル430TX、オプティファイアスター、およびナショナルセミコン
ダクタベスビアスであり、およびハードドライブ軸1014に沿った装置は、シ
ーゲートST3850A、シーゲートST31267Aおよびクオンタム640
ATである。したがって、図1Fのグリッドポイント数は3×3×3=27であ
る。もちろん、実際には、図1Fに示されたよりも多数の種類のプラットホーム
、チップセットおよびハードドライブがある。一般に、グリッドポイント数Nは
、N=P×C1×C2×C3×…×Cnであり、ここで、Pはプラットホーム軸
に沿ったプラットホーム数であり、Ciは、第i番目の装置軸の数である。明ら
かに、装置クラスの数nが増加するにつれて、グリッドポイント数は指数関数的
に増加する。
【0045】 BIOSコードは、プラットホーム、チップセットあるいは装置以外は同じで
ある2つの構成(すなわち、1座標以外のクラス空間の全ての座標を共有する2
つの構成)間で著しく異なる可能性がある。プラットホーム、チップセットある
いは装置が変更される場合、BIOSコードの完全なおよび広範囲にわたる再統
合を実行しなければならない。非常に多数の可能な構成(すなわち、構成空間の
非常に多数の点)があるために、ACPIファームウェアの生成はチームのプロ
グラマの専門的技術の組み合わせを必要とする極端に複雑なタスクである。一般
的には、一人のプログラマは中心部ロジックチップセットの詳細を処理し、一人
のプログラマはスーパー1/Oチップの詳細を処理し、一人のプログラマは特定
のプラットホームの詳細を処理し、一人のプログラマは、特定の中心部ロジック
チップセットのための電力管理詳細を処理し、プログラマのグループは一般アー
キテクチャ詳細を処理し、他のグループのプログラマは一般電力管理詳細を処理
する。タスクの困難性およびタスクの特殊化レベルは、プログラミングがアセン
ブリ言語で行われ、装置がビットレベルで処理されるという事実によってさらに
度合いを強められる。
【0046】 本発明のユーティリティの長所の1つは、このユーティリティによって、一人
のOEMプログラマが“クリック・アンド・ドラッグ”手順を使用して図解ツリ
ー構造として可視形式で名前空間を効率的に生成でき、システムの詳細の仕様を
完成するのに必要な情報のための図解ツリー構造の作成中OEMプログラマをプ
ロンプトするということである。したがって、ユーティリティは、このツリー構
造をASLコードにマッピングする。ユーティリティは、階層ツリー構造の全部
のレベルから個別装置のレベルまでの多数のデフォルトコンポーネントを提供す
る。このユーティリティは、階層名前空間が機能的システムを実際に示すことを
OEMがチェックできるツールも提供する。例えば、このシステムがプロセッサ
を含んでいない場合、ユーティリティはエラーメッセージを持ってOEMに通知
する。
【0047】 本発明のユーティリティは、“ハンドコード化”ファームウェアと同様に実行
し、“ハンドコード化”ファームウェアと同様に有効な空間であるASLコード
を生成する。一旦ユーティリティがOEMおよび任意の関連会社による検討テス
トをパスすると、製造における時間消費ステップは完全に回避できる。
【0048】 ウィンドウ/メニューインタフエースによってシステムを構成するために本明
細書の図で“ACPIウィザード”と表示される本発明のユーティリティを使用
する方法は、図2Aに示されるように、メニューバー220を有する初期ウィン
ドウ200およびDSDTアイコン225を含むディスプレイウィンドウ290
で開始する。メニューバー220は、ファイル201、エディット202、イン
サート203、ビュー204、ツール205、ウィンドウ206およびヘルプ2
07のオプションを提供する。開始するために、システム構成は、ディスプレイ
ウィンドウ290に図解的に(ルート225だけがある初期の段階で)示された
階層名前空間にオブジェクト(例えば、装置、バスおよび方法のオブジェクト)
の挿入を必要とするので、プログラマはインサート203メニューを選択する。
【0049】 図2Bに示されるように、これは、装置210、オブジェクト211、プロセ
ッサ212、システム213、名前214およびライブラリ215を含む挿入可
能な項目のプルダウンメニュー218をプログラマに提供する。システムは、装
置210およびオブジェクト211のメニューのそれぞれを使用して装置および
オブジェクトを明示的に規定することによって構成できるという次第だから、プ
ログラマには、システム213を選択することによってデフォルトに基づいて全
システムスケルトンを作成するオプションも提供される。例えば、図2Dに示さ
れるように、インサート203プルダウンメニューからオブジェクト211を選
択する際に、メニュー240は、下記のオブジェクトのいずれかを挿入するオプ
ションを提供する。すなわち、アリアス241、バンクフィールド242、装置
243、事象244、フィールド245、フィールドエントリ246、インデッ
クスフィールド247、方法248、ムテックス249、操作領域250、電力
資源251、プロセッサ252、有効範囲253あるいはサーマルゾーン254
である。
【0050】 これらの挿入可能なオブジェクトの中の特別重要なものは、“有効範囲”であ
るが、その理由はこれは装置の中間ローカルリファレンスを規定するからである
。ローカルオブジェクトを除いて全てのオブジェクトはグローバルスコープであ
る。ローカルオブジェクトは、完全呼び出し有効範囲を有し、始めから終わりま
で現呼び出しを処理するために使用される。ローカルオブジェクトは同じ名前を
示すことができるので、ローカルオブジェクトがある有効範囲によって区別され
る。例えば、図3Cに示されるように、ハードウェアID(HID)フォルダ
HID562および HID557が同じ名前を有し、さらに、第1のもの56 2は両方のCOM1 552の範囲内にあり、第2のもの557はFDC554
の範囲内にあるので、これらは区別できる。
【0051】 交互に、図2Bに示されるようにインサート203プルダウンメニューからシ
ステム213を選択する際に、項目バス221、ファン222、蓋223、イン
ジケータ224、マザーボード225、電源ボタン226、電力管理227、デ
スクトップ228、ノートブック229およびサーバ230を有するサブメニュ
ー240が提供される。例えば、プログラマがノート型パソコンを構成したい場
合、ノートブック229オプションが選択される。図4Aに示されるように、ノ
ート型装置仕様ウィンドウ300は、通常ノートブック構成に含められる標準装
置のリスト310で表示される。標準装置のリスト310は、ビデオグラフィッ
クアダプタ(VGA)321、サウンドカード(サウンド)322、スーパー入
出力バス(スーパーI/O)323、汎用直列バス(マウス、フロッピードライ
ブ、キーボード、ジョイスティック等のような低速装置のためのバスのためのも
のであり、最高127の異なる装置が単一のコンピュータポートに接続できる新
しい規格)USB324、PCMCIAカードに接続するためのバス(カードバ
ス)325およびノートブック型パソコンをデスクトップパソコンに接続するた
めのドック(Dock)326を含んでいる。デフォルトとして、これらの項目
の各々321〜326は、図4Aに示されるようにチェックされるので、デフォ
ルト構成はこれらの項目321〜326を含んでいる。プログラマは、適当な項
目ボックス上を指示し、クリックすることによって構成されるシステムからこれ
らの項目321〜326のいずれかを取り除くあるいはインサートメニュー21
8から装置210あるいはオブジェクト211の選択によって付加的装置あるい
はオブジェクトを加えることもできる。
【0052】 一旦項目321〜326がプログラマによって所望されるようにチェックされ
ると、OKボタン340をクリックすることによって、名前空間のためのデフォ
ルト階層ツリーがそのとき形成される。図3Aのデフォルト構成で示されている
ように、ルートDSDT510の真下は階層ツリー構造505の第1の分岐であ
る。ツリー構造は、装置の“有効範囲”、すなわち、装置の電力状態依存性およ
び装置間の通信路を図式で示している。
【0053】 装置のプロパティは、エディット202プルダウンメニューからプロパティを
選択することによっても調整できる。図4Cは、固定I/Oのプロパティに関し
て結果として生じる仕様ウィンドウ350を示している。仕様ウィンドウ350
は、一般シート360およびオプションシート370(オプションシート370
のフィールドは一般シート360によって妨害される)を有する。一般シート3
60は、オブジェクトの名前が指定される名前フィールド361と、オブジェク
トのASLコードに含められるコメントを入力できるコメントフィールド362
と、IFDEFコードを入力できるIFDEFフィールド363と、IFNDE
Fコードを入力できるIFNDEFフィールド364とを有する。(特定の変数
がオブジェクトのためのIFDEFとして指定され、この変数がコードに表示さ
れる場合、オブジェクトはASLコードに含められる。同様に、特定の変数がオ
ブジェクトのためのIFNDEFとして指定され、この変数がコードに表示され
ない場合、オブジェクトはASLコードに含められる。)
【0054】 図3Aのツリー構造500の第1の分岐には、汎用事象 GPE511、プロ セッサ PR512、電力状態 S0 513、電力状態 S1 514、電力状態 S4 515、電力状態 S5 516、システムバス SB 517およびシステ ムインジケータ SI 518のための閉じられたフォルダがある(フォルダのす
ぐ左側の+記号は、フォルダが現在閉じられ、+記号を“指示し、クリックする
”ことによって開くことができることを示している)。(ACPI仕様は、電力
状態S0、S5および1つの中間電力状態のサポートだけを必要とする‐本例で
は、中間状態S1およびS4の両方ともサポートされる。)汎用事象はボタンあ
るいはキーボードのキーの状態、ヘッドホンあるいはACアダプタとノート型パ
ソコンとの接続、あるいは閾値温度に達するノート型パソコンの電力プレーンの
ような実現値を含む。汎用事象が生じるときは常に、システム制御割り込みは、
オペレーティングシステムに知らせるために発生され、オペレーティングシステ
ムは、 GPE511フォルダの下に記憶されたハンドラーを実行する。例えば 、ノート型パソコンがデスクトップパソコンのドックに電気的に接続される場合
、番号付けられた割り込みをノート型パソコンのオペレーティングシステムに送
るようにノート型パソコンのロジックチップをトリガする電気接続が行われる。
次に、オペレーティングシステムは、 GPE511フォルダに対応するASL コードのこの数のハンドラーを検索し、ハンドラーが出る場合、ハンドラーのコ
マンドが実行される。
【0055】 PR512フォルダには、中央処理装置(CPU)のための電力管理情報が 記憶されている。一般に、大部分のノート型パソコンおよびデスクトップパソコ
ンは、単一CPUを有し、大部分のサーバは複数のCPUを有する。プルダウン
メニュー・インサート/オブジェクト/プロセッサのシリーズを使用すると、仕
様ウィンドウには、図4Bに示されるように、名前611、プロセッサID61
2、I/Oアドレス613およびI/O長さ614のためのフィールドが備えら
れている。名前フィールド611およびプロセッサIDフィールド612に備え
られた名前番号およびID番号は任意に選択できる。I/Oアドレスフィールド
613に備えられたアドレスは、その値がプロセッサの性能を制御する装置状態
アドレスである。I/O長さフィールド614には制御入力のバイト長が備えら
れている。通常、図4Bに示されるように、制御入力は、6つの値、すなわちC
PUの電力状態(プロセッサの電力レベルおよびクロック速度)を制御する4バ
イトおよびどれくらいの量の電力管理がCPUによって実行されるかを制御する
2バイト、を有する。例えば、CPUは、CPUのシステム外部の監視を完全に
終了する状態を有することができるかあるいは有することができない。前述のよ
うに、プロセッサの電力レベルはC0状態、C1状態、C2状態およびC3状態
を含む。
【0056】 オペレーティングシステム152が中心部ロジックチップセットをスリープ状
態S0、S1、S4、およびS5にするために使用するスリープ状態情報は、図
3Aに示されるように、フォルダ S0 513、 S1 514、 S4 515お
よび S5 515のそれぞれの下の図解ツリー構造505に記憶されている。例
えば、オペレーティングシステムがシステムを電力レベルS5にすべきである場
合、特定のチップに割り当てられたフォルダS5 515の値は1/Oロケーシ ョンに加えられ、次にチップの電力状態はそれに応じて変わる。システムレベル
S4およびS5はハードウェア観点から同じであるために、分岐S4 514お よびS5 515に含まれた情報は同じであることに注目すべきである。
【0057】 いくつかのシステムでは、2つの大きなチップは、システム電力状態‐CPU
と主システムバス(すなわち、PCI)との間をインタフエースする第1のチッ
プと、多数の周辺制御装置を集積し、主システムバスと二次バスとの間をインタ
フエースする第2のチップを制御する。2つのチップが異なるベンダーによって
製造される場合、通常、各スリープ状態フォルダ513〜516は、2つの値、
すなわちこの値は各チップに適切である、を含む必要がある。しかしながら、い
くつかのシステムでは、これらの機能は単一チップによって実行できるか、ある
いは2つのチップは同じベンダーによって製造でき、1つの値だけが電力状態フ
ォルダ513〜516の各々に必要である。
【0058】 システムバスフォルダ SB517が開いているツリー構造505を示す図3 BおよびさらにSIO535フォルダオープンを示す図3Cを参照すると、シス
テムの他のオブジェクトおよび装置は、特にスーパーI/O(SIO)535フ
ォルダの下で SB517フォルダにある。図3Bのツリー構造505は、 PR
512フォルダのCPUのロケーションにより示しているので、システムの装置
の大部分は、その情報がPCIO 530フォルダに記憶されているシステムバ スおよびPCIバスを介してアクセスしなければならない。したがって、 SB 517フォルダは、全ての“主バス”、すなわち他の装置を通過することなしに
CPUによってアクセスできるバスを含む。図3Bに示されるように、PCIO
530フォルダは、 HID531フォルダ、DOCK532フォルダ、PCC 533フォルダ、サウンドブラスターSB534フォルダ、SIO535フォル
ダ、USB536フォルダおよびVGA537フォルダを含んでいる。
【0059】 図3Cは開いているSIO535フォルダを示しているので、スーパーI/O
の有効範囲は、2つの通信ポートCOM1 552およびCOM2 553、フロ
ッピーディスクコントローラFDC554、ハードディスクコントローラ(すな
わち、集積ドライブエレクトロニクス)IDE0 561、キーボードコントロ ーラKBC556、並列ポートコントローラLPT1 557、汎用システムバ スUSB558およびビデオグラフィックアダプタカードVGA559を含んで
いる。これらの装置552〜559の全てはI/O SIO535の有効範囲内 にあるので、これらの装置552〜559の各々がオフにされるまで、スーパー
I/OバスSIO535をオフにすることができない。
【0060】 スーパーI/O上の各装置は、現資源設定フォルダCRS、ハードウェアID
フォルダ HID、可能な資源設定フォルダ PRS、セット資源設定フォルダ SRS、多重電力セットフォルダ PSnおよび多重電力資源フォルダ PRnを
有する。ここで、nは0から3までの整数である。これらのフォルダの情報によ
って、オペレーティングシステムは、装置および装置が使用する資源の電力レベ
ルを制御できる。各 HIDフォルダは、型式および製造者によって装置を識別 する数字を含んでいる。装置のためのID番号の全リストは、www.microsoft.co
m/industryのマイクロソフトウェブサイト上に見つけることができる。各現資源
設定フォルダCRSは、I/O資源およびI/O割り込みのような装置によって
使用される現資源のリストを提供する。可能資源設定フォルダ PRSは、装置 がその資源セットを有することができる構成のリストを提供する。オペレーティ
ングシステムは、資源構成を装置のセット資源設定フォルダ SRSにロードす ることによって装置の資源を設定する。オペレーティングシステムは、衝突を避
けるために装置の中でできるだけ最適の使用可能な資源を割り当てる。しかしな
がら、衝突が避けることができない場合、最も重要でないとみなされる装置が使
用禁止される。オペレーティングシステムは、第n番目の電力セット PSnに
アクセスし、装置を第n番目の電力状態にする。第n番目の要求フォルダ PR nは、装置を第n番目の電力状態にするためにオペレーティングシステム152
に必要な情報を含む。
【0061】 前述のように、ACPIの他のコンポーネントは、システムのコンポーネント
の温度の監視および制御である。図3Dに示されるように、温度ゾーンフォルダ
TZ710内にサブフォルダTZ0 720があり、フォルダTZ0 720に は、フォルダ CRT721、 PSL722、 PSV723、 TC1 724 、 TC2 725、 TMP 726、および TSP 727がある。現温度を読
み取る方法は、フォルダ TMP 726内に含まれる。例えば、温度を決定する
ASLコードは、下記である。 方法( TMP) { Multiply(\ SB.PIX4.ISA.EC.TMP,10,local0) Return(Add(Local0,2732)) } このコードは、℃にストアされた\ SB.PIX4.ISA.EC.TMPの温度を検索し、1 0を掛けることによってこれを℃の十分の一に変換し、この結果をLocal0にスト
アし、2732をこの結果に加算し、温度をケルビン度の10分の1に変換する
【0062】 オペレーティングシステムが温度を読み取るポーリング間隔(1秒の10分の
1)はフォルダ TSP 727で指定される。例えば、オペレーティングシステ
ムが60秒毎に温度をポールすべきである場合、ASLコードは、“Name( TSP,
600)"である。温度ポーリング時間間隔が与えられない場合、温度が受動あるい は能動トリガ点を交差すると、汎用事象が発生される。フォルダ CRT721 は、システムが遮断する臨界温度を指定する。このシステムは、能動あるいは受
動熱制御方法のいずれかを使用してシステムそのものは冷える。温度が上昇し始
めると、第1の受動熱制御方法は行われ、温度が受動熱制御方法が行われた後で
さえ上昇し続ける場合、能動熱制御方法が行われる。
【0063】 PSV723フォルダは、CPUの速度の減少のような受動熱制御が行われ る温度を指定する。電池の充電はかなりの熱を生じるので、電池が充電される速
度を減少させるあるいはファンをターンオンすることによる冷却を含む。能動熱
制御方法フォルダは図3Dに全然に示されていない。能動熱制御方法がある場合
、能動熱制御情報を含むフォルダは“ AC0”と表示される。
【0064】 フォルダ TC1 724および TC2 725は、システムが冷える速度の式
を含む。本例では、受動冷却は、CPUの速度を減少させるかあるいは電池が充
電される速度を減少させるかのいずれかによって実行されるために、2つの冷却
式が得られる。これらの式は、システムの周辺温度、および物理構造、例えば、
システムが収容されるプラスティックの種類、および変数としての収容部の表面
積のような情報を含んでいる。
【0065】 本発明のユーティリティを使用する温度制御方法をインサートするために、O
EMプログラマは、図2Dに示されるように、メニューバー220からインサー
ト203を選択し、インサートメニューからオブジェクト211およびオブジェ
クトメニューから方法を選択する。この温度制御方法のためのASLコードが図
5Bに示されるが、ここでオペレーティングシステムは汎用事象によって、熱事
象が発生し、オペレーティングシステムが熱を監視しなければならないことを通
知される。この方法の第1のコマンドは、現温度がこの方法 TZ. TZO.
MPによって元に戻され、Local0にストアされる行3のストアコマンドである。
それから、行4は、LGreaterEqualコマンドを使用し、Local0にストアされた現 温度が TZ.TZ0. PSVにストアされた受動熱制御トリップ温度よりも大き
いかあるいは等しいかどうかを決定する。現温度が実際に受動熱制御トリップ温
度よりも大きくあるいは等しい場合、行6のコードが実行され、オペレーティン
グシステムは、Notifyコマンドを使用して条件を通知される。Notifyコマンドは
、熱ゾーンの位置、 TZ.TZ0、ならびに数値を送り、オペレーティングシス
テムがとらなければならない動作を指定する。本例では、数字の16進“80”
は、オペレーティングシステムが温度を監視すべきであることを示している。
【0066】 システムインジケータアイコンの制御も、ACPIの領域内にある。一般に、
システムインジケータアイコンは、膝上に置かれ、オペレータに見えるLED照
明ステンシルである。システムインジケータは、一般的には、電池レベルが低い
場合、プログラマに通知する電池充電レベルインジケータと、電池が充電してい
る場合、プログラマに通知する電池状態インジケータと、システムが現在あるス
リープ状態あるいは作動状態をプログラマに知らせるシステム状態インジケータ
と、プログラマに待機しているeメールの数および/または音声メールメッセー
ジを知らせるメッセージインジケータとを含んでいる。例えば、電池状態インジ
ケータは、しばしば電池で表示される。すなわち、電池が赤色になると、これは
、電池電力が低いことを示し、電池が緑色になると、これは、電池が充電される
ことを示す。システム状態インジケータは、ユーザが現システム状態を識別する
可視手段を備えている。下記のインジケータのいずれかあるいは全てをサポート
できる。すなわち、ワーキング(すなわち、S0)、ウェーキング(すなわち、
S2〜S5)、サスペンド(すなわち、S2あるいはS3)あるいはディスクに
セーブ(すなわち、S4)である。
【0067】 ソースコードの作成の最終段として(すなわち、一旦階層名空間がOEMによ
って生成されると)、識別システム分配器テーブルのASLソースコードは、図
2Cに示されるように、ファイル710メニューからゼネレート(Generate)73
5を選択することによって生成される。したがって、本発明のユーティリティは
、フォーマッティング構造を与えるASLコード内の階層名空間の各フォルダの
ためのASLコードを埋め込むことによってファームウェアとして記憶されるべ
きコードを生成する。階層名空間のフォルダのコードならびにフォーマッティン
グ構造のコードは、本発明のユーティリティを使用して作成され、OEMによっ
て生成される必要がない。
【0068】 例えば、図4Aのノートブック仕様ウィンドウ300のサウンドボックス32
2が下記としてチェックされる場合、名前ステートメントのためのASLコード
は、サウンドブラスターフォルダSB534(サウンドブラスターは音を記録す
し、ウェブファイルを再生し、MIDI I/Oを制御し、周波数変調を合成す るためのチップである)の可能資源設定フォルダ PRS543で本発明のユー ティリティによって自動的に生成される。 1 Name( PRS, ResourceTemplate() 2 { 3 IO(Decode16,0×220,0×280,0×20,0×14), 4 IO(Decode16,0×300,0×330,0×30,0×2), 5 IO(Decode16,0×388,0×388,0×01,0×4), 6 IRQ(Edge,ActiveHigh,Exclusive){2;5;7;10}, 7 DMA(Compatibility,BusMaster,Transfer8) {1;3}, 8 DMA(Compatibility,BusMaster,Transfer16) {5;7} 9 } PRS名前ステートメントの資源テープレートの第1のIORangeはコ ンピュータのサウンドのディジタル化再生のためのI/O資源を指定する。第1
のIO式は、サウンドブラスターが22Oのhex‐address(16進アドレス)と 280のhex ‐addressとの間のどこででもI/Oアドレスを持つことができ、 I/Oは、14のhex‐byte(16進バイト)を消費し、20のhex‐byte境界上 に整列されるべきである(すなわち、14のhex‐byteI/Oデータはhex‐addr
ess220、240、260あるいは280で始まるように整列されねばならな い)。14のhex‐byteデータのための多重開始アドレスは、複数の装置が重な っているI/O範囲を使用しているために複数の装置が衝突するかもしれない場
合、1つあるいはそれ以上の装置は他の重なっていないI/Oレジスタを使用す
ることができるようにプログラム化できるように供給されてそれによりプラグ−
プレイ機能性を向上させる。第2のI/O式はMIDIポートのためのI/Oフ
ォーマットを指定する。この第2のI/O式は、この情報がhex‐address300
からhex‐address330までのどこででもI/Oアドレスを持つことができ、I
/Oは、2つのhex ‐byteを消費し、30のhex‐byte境界上に整列されるべき である。さらに、2つのhex‐byteデータのための複数開始アドレスは、システ ムの複数の装置が重なっているI/O範囲を使用している場合、衝突の可能性が
減少されるように提供される。 PRS名前ステートメントのバッファの第3の 式は、アドリブサウンドカード、すなわちパソコンの非常に初期のバージョンで
使用されるサウンドカードプロトコルのためのI/Oフォーマットを指定する。
第3の式は、この情報がI/Ohex‐address388(いかなる範囲も許可されて
いない)を持たなければならなく、I/Oは4つのhex‐byteを消費することを 示している。次の式は、オペレーティングシステムがサウンドブラスターによっ
て発生された割り込みに割り当てることができる数の選択を指定する。本例では
、サウンドブラスターは、4つの割り込み値、すなわち、2、5、7および10
の選択を提供する。アーギュメント“Edge”、“ActiveHigh”、および“Exclus
ive”は、オペレーティングシステムがローからハイへのエッジ上の割り込みを 認識し、割り込みが、“排他的”である、すなわちオペレーティングシステムが
割り込む装置が生じた混乱を避けるために他の割り込み数をシステムの他の装置
に割り当てることを指定する。割り込みは、オペレーティングシステムが波形の
一部の発生を記録する準備をしているかあるいは波形の一部の発生を完了したこ
とをオペレーティングシステムに信号を出すような機能に関してサウンドブラス
ターのために発生される。オペレーティングシステムが割り込みを受け取り、そ
の値によって割り込みの原因を識別し、サウンドブラスターの上記に指定された
I/O範囲を検査し、割り込みが発生された事象の種類を決定する。最後に、こ
の式は、ダイレクトメモリアクセス(DMA)チャネルは1あるいは3、および
5あるいは7であり得ることを指定する。両方のDMAステートメントの第1の
アーギュメント、“Compatibility,”は、ダイレクトメモリアクセスがISA(
工業規格アーキテクチャ)と適合していることを指定する。両方のDMAステー
トメントの第2のアーギュメント、“BusMaster,”は、ダイレクトメモリアクセ
スが PSRで開始され、全バスを使用できることを指定する。DMAステート メントの第2のアーギュメント、“Transfer8”および“Transfer16”は、チ
ャネル1あるいは3上のダイレクトメモリアクセスは8ビットであり、チャネル
5あるいは7上のダイレクトメモリアクセスが16ビットであることを指定する
【0069】 完璧にするために、図5A.1および図5A.2は、可能資源設定方法 PR S(例えば、565)、現資源設定方法 CRS(例えば、555)、およびセ ット資源設定方法 SRS(例えば、567)のためのASLコードを示す。( 機能RSRCは、本発明のユーティリティの前のバージョンに導入されたバグを
訂正するために CRS法によって呼び出される。)
【0070】 階層ツリー構造からASLコードの自動作成は、ファイル710メニューから
ゼネレート735を選択することによって生成される(図2Cを参照)。本発明
の重要な態様は、コーディング言語の詳細によりツリー構造とは異なるけれども
、階層ツリー構造のネスト構造を近似するかあるいは忠実に表現するネスト構造
を有するASLコードの生成である。ASLコードに対する階層ツリー構造のマ
ッピングの方法のための再帰フローチャートは、C++擬似コードで示された工
程で図6A〜図6Bに提供される。一般に、各項目は、そのプロパティがステー
ジGenerateIFDEF1110にIFDEFを含むかどうかを調べるために最初にテ ストされる。その名前はGenerateName1115工程で記述される。オープニング
ブレースは第1のGenerateBrace1120工程によって生成される。項目のため のASLコードのボディはGenerateBody1125工程によって生成される。クロ
ージングブレースは第2のGenerateBrace1130工程によって発生される。そ の項目は工程GenerateIFDEF1110でNot‐IFDEFを含むかどうかを調べるため にテストされる。二重境界線を有するボックスに示された工程は図6B〜図6F
のフローチャートに詳細に示されている。特に、GenerateIFDEF1110および 1135のためのフローチャートは図6Bおよび図6Cに与えられ、GenerateNa
me1115のフローチャートは、図6Dに与えられ、GenerateBrace1120お よび1130ためのフローチャートは図6Eに与えられ、GenerateBody1125
のためのフローチャートは図6Fに与えられる。
【0071】 しかしながら、階層ツリー構造の全ての項目が厳密には図6A〜図6Gのフロ
ーチャートに従うわけではない。3つのフローチャートオーバーライドの作表は
、行1801〜1861を有する図7の4列の表に示されている。(他のオーバ
ーライド特徴は可能であり、本発明の範囲内にあるとみなされることに注目すべ
きである。表1800に列挙されたオーバーライドがASL言語の詳細を示した
最も自然な選択であるけれども、オーバーライド機能の適当な変更によるオーバ
ーライドの別の表を構成することができることにも注目すべきである。)表18
00の第1列のクラス名1865は項目のクラス名を列挙する。第2列、第3列
および第4列は、それぞれGenerate(string)1870列、GenerateBrace187
5列、およびGenerateBody列1880列である。項目が対応する機能を図6A〜
図6Gのフローチャートにオーバーライドすべきである場合、これらの列187
0、1875および1880は、“×”で示される。例えば、CItemFieldのため
の行1833は、Generate(string)列1870およびGenerateBody列1880 に×がある。したがって、タイプCItemFieldの項目の場合、図6Dの工程Genera
te(string)1410および図6AのGenerateBody1125がオーバーライドさ れる。
【0072】 項目1802〜1861はCItem1801から得られる、すなわち、CItem18
01は、表1800の項目1802〜1861の残りの全てに対して基本的な機
能性を提供する。表1800でインデントされた項目は上記の第1の非インデン
ト項目から得られる。したがって、CItemDeviceACAdapter1804からCItemDev
iceVGA1831までの項目は、CItemDevice1803から得られ、CItemDevice1
803のオーバーライドを継承する。例えば、CItemDeviceACAdapter1804か
らCItemDeviceVGA1831までの項目は、図6DのGenerate(string)1410 のためのオーバーライドを有する。したがって、CItemBankField1834および
CItemIndexField1835はCItemField1833から得られるので、CItemBankFi
eld1834およびCItemIndexField1835はCItemField1833のオーバーラ
イド機能を継承する。しかしながら、CItemBankField1834およびCItemIndex
Field1835の両方には、Generate(string)1870列に“×”があるために
、CItemBankField1834およびCItemIndexField1835は、CItemField18 33のオーバーライド機能をオーバーライドする。同様に、CItemDevice180 3からの項目1804〜1831の継承により、Generate(string)1870は テーブルの項目1801〜1861毎に無効にされる。完璧にするために、CIte
mSDT、CItemScope、CItemProcessor、CItemDevice、CItemNameNum、CItemNameEIT
HE、CItemFieldおよびCItemOperationRegionのためのASLGenerate(string)コ
ードを生成するC++コードは図11Aおよび図11Bに与えられる。
【0073】 タイプCItemFieldの項目は、子としてタイプCitemFieldEntryタイプの項目を 有するだけであることに注目すべきである。(フィールドは、インサート203
プルダウンメニューのオブジェクト211サブメニューからフィールド245の
選択によって作成される。フィールドは、いかに操作領域が細分割され、アクセ
スされるべきかを規定する。)図7のオーバーライド表から分かるように、Gene
rateBody1125工程はCItemField1833項目によってオーバーライドされる
。付録として、オーバーライドC++GenerateBodyコードの第1の部分は図10
Aに示され、このコードの継続の継続は図10Bに示される。要するに、このGe
nerateBodyコードは、CItemFieldEntry項目を分類し、フォーマット化し、必要 に応じて、フィールドエントリ間のギャップを充填するOffsetマクロ、および属
性におけるフィールドエントリ間の差が検出される場合のAccessAsマクロを自動
的に生成する。
【0074】 方法(例えば、監視温度方法TMP726)は子を有しないことにも注目すべ
きである。したがって、CItemMethod1837は、GenerateBrace1120および
1130工程およびGenerateBody1125工程をオーバーライドする。Generate
Brace1120および1130のためのオーバーライドは無効であり、GenerateB
ody1125のオーバーライドは、方法ASLコードおよび最初および最後のブ レースの全てを生成する。
【0075】 同様に、CItemOperationRegion1847タイプの項目は、CItemField1833
、CItemBankField1834およびCItemIndexField1835タイプの項目しか子 として持ちえないことにも注目されたい。(操作領域は、インサート203プル
ダウンメニューのオブジェクト211サブメニューから操作領域250を選択す
ることによって作成され、システムI/Oアドレス領域、PCI構成空間および
埋め込まれたコントローラ空間のようなオブジェクトを含む。)しかしながら、
これらは、ACPI仕様がこれらを子として規定するという意味でのみ“子”な
のであって、これらは操作領域の範囲内にあるという意味で子である訳ではない
。したがって、CItemOperationRegion1837タイプの項目は、ブレースを発生
することを単に無視することによってGenerateBrace1120および1130を オーバーライドする。
【0076】 図6A〜図6Gのフローチャートの処理を示すために、図8の階層ツリー構造
から図9のASLコードの生成が例として述べられる。図8のツリー構造の第1
の項目はルートDSDT1910である。ルートDSDT1910のクラスはCI
temSDTであり、オーバーライドテーブル1800の行1860から分かるように
、この項目ためのGenerate(string)列1870が示される。
【0077】 図6Aに示されるように、 フローチャート1100は、2つのアーギュメン
ト、すなわち図8の階層データ構造1900を参照するタイプ“CStdioFile&” の“file”(タイプ名の終わりのアンパーサンドは、タイプがC++“参照”で あり、“CStdioFile”がASCIIテキストファイルの読み出しおよび書き込み
のマイクロソフトファンデーション・クラスコマンドであることを示す)および
整数“nindent”を有するGenerate1105で開始する。(C++では、同じ名 前の機能が、機能が有するアーギュメントの番号あるいはタイプによって区別で
き、したがって、2つのアーギュメントを有する図6AのGenerate工程は図6D
のGenerate工程1410と同じでないことに注目すべきである)Generate110
5工程は長円形で包み込まれ、この工程1105が他のフローチャートを参照し
ないことを示す。
【0078】 フローチャート1100の次の工程はGenerateIFDEF1110工程である。Gen
erateIFDEF1110の二重境界線は、この工程が他のフローチャート、この例で
は、図6Bのフローチャート1200を参照することを示している。工程111
0のGenerateIFDEFステートメントの3つのアーギュメント、およびGenerateIFD
EFフローチャート1200の最初のステップ1205のGenerateIFDEFステート メントの同じく3つのアーギュメントであってそれぞれ前ににそのタイプ(CStd
ioFile&、intおよびBOOL)の付いたアーギュメントによって示されるように、こ れらの3つの変数(file、nindent、およびTRUE)がGenerateIFDEFフローチャー ト1200に渡される。
【0079】 図6Bのフローチャート1200を続けると、ブール変数“bStart"がTRU Eであるかどうかがステップ1210で決定される。“bStart"はステップGener
ateIFDEF1110で値TRUEに渡されるので、答えは“Yes"1212であ るので、制御を項目1910に対してIFDEFが規定されたかどうかを決定す
るステップ1215に渡す。ルートDSDT1910のためのエディット/プロ
パティウィンドウによって、IFDEFはルート1910に対して作成できない
ために、答えは“No”1216であり、制御をルート1910に対してNot‐I
FDEF(IFNDEF)がいくらか規定されているかどうかを決定するステップ1240に
渡す。さらに、ルートDSDT1910のためのエディット/プロパティウィン
ドウによって、Not‐IFDEFはルート1910に対して作成できないので、答えは
“No”1216であり、制御をこのフローチャート1200のための出口12
75に渡す。
【0080】 次に、制御を図6Aのフローチャート1100の次の工程、すなわちGenerate
Name1115工程に渡す。GenerateName1115のためのフローチャート110
0のボックスは、二重境界線を有し、この工程1115のための別個のフローチ
ャート、本例では、図6Dのフローチャート1115’があることを示している
。処理1115’に渡された変数は、データ構造、タイプCStdioFile&の“file ”、および整数“nindex”である。フローチャート1115’の第1のステップ
1405は、(nindent*4)スペースに等しいCString式変数“strTabs”を設定し
、“string”をCString式変数と規定する。本例では、nindentは1つの値を明示
的に与えられないので、その値はゼロであり、strTabsもゼロに等しい。
【0081】 次に、制御をフローチャート1115’のGenerate(string)1410工程に渡
す。しかしながら、図6Gのフローチャート1700に進むよりもむしろ、ルー
ト1910はタイプCItemSDT1860のものである(CItemSDT1860のGenera
te(string)列1870はマークを付けられている)ので、オーバーライドがある
。(Generate(string)フローチャート1700は参照するために図6Gに提供さ
れているけれども、Generate(string)1410が図7の表の項目1801〜18
61毎に無効にされるので、前述のように、Generate(string)1410は決して
アクセスされるべきでないことに注目すべきである。)本例のオーバーライド機
能のためのC++コードは、下記のとおりである。 void CItemSDT::Generate(CString&str)const { str.Format(“DefinitionBlock(\"%s\",\"%s\",%X,\"%s\",\“%s\",%
X)", m strFileName, m strName, m bRevision, m strOEMID, m strOEMTableID, m dwOEMRevision); } ルート1910のためのファイル名は“DSDT.AML”であり、ルート19
10の名前は“DSDT”であり、ユーティリティの改訂は“1”であり、OE
Mのための識別番号はPTLTCであり、OEMテーブルIDは“Custom
”であり、OEM改訂番号は“0”であるので、図9の行2001に示されたA
SLコードを生じる。前述のように、変数strTabsはゼロの値を有する。
【0082】 図6Dのフローチャート1115’の次のステップ1420は、(エディット
/プロパティメニューによって)ルート1910のプロパティが規定された場合
、コメントが含まれたかどうかを決定する。答えが“Yes"1421である場 合、制御は、2つのタブおよびコメントがファイルに送られたステップ1425
に渡り、次にステップ1430に渡る。本例のルート1910の例では、コメン
トはない。1422でコメントがない場合、制御は直接ステップ1430に移る
。ステップ1430では、キャリッジリターンおよびラインフィードがファイル
に送られるので、図9のASLコードの行2002が開始される。次に、フロー
チャート1115’は、出口1435を出され、制御は図6Aのフローチャート
に戻る。
【0083】 次に、制御は、変数“file”、“nindent”、および“TRUE”を有するフロー チャート1100のGenerateBrace1120に渡される。GenerateBraceのための
詳細なフローチャート1500は図6Eに示される。nindentはなおゼロの値を 有しているために、strTabsは、ステップ1505で、ゼロスペースに等しく設 定される。次に、ルート1910が子項目を有するかどうかが次のステップ15
10で決定される。答えは、“Yes”1511なので(ルート1910は子項
SB1915および PR1950を有する)、制御はstrTabsがファイルに 送られるステップ1515に渡る。しかしながら、strTabsはゼロスペースに等 しいので、動作が行われない。次に、制御はbOpenが“TRUE"に等しいかどうかを
決定するステップ1520に移る。bOpenが最初のステップ1501で“TRUE"に
等しく設定されたので、答えは“Yes"1521であるので、制御はライン2 002の左ブレースが図9に示されたファイルに書き込まれるステップ1525
に移る。次に、制御は出口1535に渡され、図6Aのフローチャート1100
に戻る。
【0084】 GenerateBrace1120工程の後、制御は、GenerateBody1125工程、図6 Fに示された詳細なフローチャート1600に進む。フローチャート1600の
第1のステップ1605は、本例ではなおルートDSDT1910であるリスト
の頭の検索である。次に、リストの頭の下に子項目があるかどうかがステップ1
610で決定される。答えは“Yes"1611であり、本例では、子項目 SB
1915および子項目 PR1950は直接ルートDSDT1910の有効範囲 内にある。子項目 SB1915の内の第1のものが検索され(1615)、Gen
erateステップ1620の第1の再帰呼び出しは、1だけ増分されるnindentの値
(それで、この再帰のためのnindentは1の値を有する)を有する SB1915に
対して行われる。
【0085】 SB1915再帰が完了された後(その再帰が下記に詳述される)、制御は 、 SB1915に加えて子項目があるかどうかが決定されるステップ1610 に戻る(1621)。この例では、 PR1950も子項目であるので、答えは “Yes"1611である。この項目1950は次のステップ1615で検索さ れ、他の再帰呼び出しは、さらに1だけ増分されるnindentの値(それで、 PR
1950再帰の場合、nindentは1の値を有する)を有するGenerateステップ1 620に対して行われる。
【0086】 PR1950再帰が完了された後、制御は再度、残りの子項目がいくらかあ るかどうかが決定されるステップ1610に戻る(1621)。次に、答えは“
No”であるので、制御は図6Fのフローチャート1600を出て(1625)
、図6Aのフローチャート1100のGenerateBrace1130ステップに戻る。G
enerateBrace1130は、ゼロに等しいnindentの値で呼び出され(nindentは、
SB1915および PR1950に対する再帰呼び出しで増分されたけれども
、DSDT1910に対しては変更されないままである)、第3の変数は“FALS
E"に設定される。ルートDSDT1910は、 SB1915および PR195
0に対する再帰ループを生成し、これらの再帰ループは、ルート1910に対す
るループが継続できる前に完了するために、GenerateBrace1130ステップお よびGenerateIFDEF1135ステップによってルート1910のために生成され たASLコードは、 SB1915ループおよび PR1950ループに対するA
SLコードの後に来る。
【0087】 GenerateBraceための詳細フローチャート1500は図6Eに示される。ninde
ntはゼロの値を有しているために、strTabsは、ステップ1505でゼロスペー スに等しく設定される。次に、ルート1910が子項目を有するかどうかがステ
ップ1510で決定される。答えは“Yes"1511であるので、制御は、str
Tabsがファイルに送られるステップ1515に移る(strTabsはゼロスペースに 等しいので、動作が全然行われないから)。次に、制御は、bOpenが“TRUE"に等
しいかどうかが決定されるステップ1520に移る。bOpenが最初のステップ1 501で“FALSE"に等しく設定されるので、答えは“No”1522であり、制
御は、ライン2025の右ブレースが図9に示されたファイルに書き込まれるス
テップ1530に移る。制御は出口1535に渡され、図6Aのフローチャート
1100に戻り、そこでの次のステップはアーギュメント“file”、“nindent ”、および“FALSE"を有するGenerateIFDEF1135である。
【0088】 GenerateIFDEF1135のための詳細なフローチャート1200は図6Bに示 されている。図6Bのフローチャート1200を続けると、ステップ1210で
、ブール変数“bStart"が“TRUE"であるかどうかが決定される。“bStart"がス テップGenerateIFDEF1135で値“FALSE"に渡されるので、答えは“No”1 211であり、それで制御を継続(A)1213によって図6Bのフローチャー
トに渡す。次のステップ1315は、何らかのIFDEFが項目1910に対し
て規定されたどうかを決定する。前述のように、ルートDSDT1910のため
のエディット/プロパティウィンドウによって、IFDEFはルート1910に
対して作成できないので、答えは“No”1316であり、制御を、Not‐IFDEF
(IFNDEF)がルート1910に対して規定されたかどうかを決定するステップ13
40に渡す。ルートDSDT1910のためのエディット/プロパティウィンド
ウによって、Not‐IFDEFはルート1910に対して作成できないために、それで
、答えは再び“No”1316であり、制御を継続(B)1270を介してこの
フローチャート1200の出口1275に渡す。
【0089】 しかしながら、前述のように、ルートDSDT1910のためのループが完了
する前に、 SB1915および PR1950のための再帰(および生成する任
意の再帰)を完了しなければならない。例えば、ルートDSDT1910のため
のGenerateBodyループで開始される SB1915のための再帰に対する再帰は 、図6Aのフローチャートのステップ1105で開始する。フローチャート11
00の次の工程は、GenerateIFDEF1110工程、すなわち図6Bに示された詳 細フローチャート1200である。3つの変数“file”、“nindent”およびTRU
EはGenerateIFDEFフローチャート1200に送られ、ステップ1210で、ブー
ル変数“bStart"がTRUEであるかどうかが決定される。“bStart”がステップGen
erateIFDEF1110で値TRUEに送られるので、答えは“Yes"1212であり 、それで、制御を、IFDEFが項目1910に対して規定されるかどうかを決
定するステップ1215に渡す。
【0090】 答えが“No”1216である場合、制御を、Not‐IFDEF(IFNDEF)がSB19
15に対して規定されているかどうかを決定するステップ1240に渡す。しか
しながら、答えが“Yes"1217である場合、変数“substring"がゼロに等 しくに設定され(1220)、substringthIFDEFが存在するかどうかがステップ
1225で決定される。ステップ1225に最初の到着の際に、ゼロ番目のsubs
tringがある(さもないと、答えは、ステップ1215で“No"1216であっ た)ので、答えは“Yes”1227であり、制御は、テキスト“#IFDEF"、subs
tringthIFDEFおよびキャリッジリターン/ラインフィードがファイルに送られる ステップ1230に進む。次に、substring変数は1だけ増分され(1235) 、制御は、第1のIFDEFが存在するかどうかが決定されるステップ1225に戻 る(1236)。答えが“Yes”1227である場合、変数substringは再度 1だけ増分されてループ1227/1230/1235/1236がくり返され
る。しかしながら、答えが“No”1226である場合、制御は、IFDEFが項目 1915に対して規定されているかどうかが決定されるステップ1240に進む
【0091】 答えが“No”1241である場合、制御は出口1275に渡され、図6Aの
フローチャート1100に戻る。しかしながら、答えが“Yes”1242であ
る場合、変数substringは再度ゼロ1245に等しく設定され、substringthIFDE
Fが出るかどうかがステップ1250で決定される。ステップ1220で最初の 到着の際に、ゼロ番目のsubstringがあるので、答えは“Yes”1252であ り、制御はテキスト“#IFNDEF"、substringthIFNDEFおよびキャリッジリターン/
ラインフィードがファイルに送られるステップ1255に進む。次に、substrin
g変数は1だけ増分され(1260)、制御は、次に第1のIFNDEFが存在するか どうかが決定されるステップ1250に戻る(1261)。答えが“Yes”1
252である場合、変数substringは再度1だけ増分され、ループ1252/1 255/1260/1261がくり返される。しかしながら、答えが“No”1
251である場合、制御は、出口1275に進み、図6Aのフローチャート11
00に戻る。
【0092】 次に、制御を図6Aのフローチャート1100の次の段、すなわちGenerateNa
me1115工程、すなわち図6Dに示される詳細なフローチャート1115’に
渡す。フローチャート1115’の第1のステップ1405は、CStringタイプ 変数“strTabs"を(nindent*4)スペースに等しく設定し、“string"をCsring タイプ変数として規定する。次に、nindentは1の値を有するので、strTabsは4
つのスペースの値を有する。
【0093】 次に、制御はフローチャート1115′のGenerate(string)1410工程に移
る。しかしながら、図6Gのフローチャート1700に進むよりもむしろ、 S B1915はタイプCItemScope1859のものである(そしてCItemScope185
9のGenerate(string)列1870がマーク付けされる)のでオーバーライドがあ
る。 この例のオーバーライド機能に対するC++コードは以下のようである。 1 void CItemScope::Generate(CString&str)const 2 { 3 str.Format(“Scope(%s)",m#strName); 4 if(IsEmpty()) 5 str+ =“{}" 6 } 機能に送られるストリングの名前である“strName"は“ SB"であるため、これは
図9の行2003のコードとなる。次に、行4では、項目が子項目を有している
かどうかが決定される。有していない場合、左右の曲がったブレースは行5のス
トリング“str”に添付される。
【0094】 図6Dのフローチャート1115’の次のステップ1420は、 SB191 5に関連したコメントがあるかどうかを決定する。答えが“Yes”1421で
ある場合、制御を、2つのタブおよびコメントがファイルに送られるステップ1
425に、次にステップ1430に渡す。本例では、コメントが全然ない。コメ
ントがない場合(1422)、制御をステップ1430に直接渡す。ステップ1
430では、キャリッジリターンおよびラインフィードはファイルに送られるの
で、図9のASLコードの行2004が開始する。次に、制御はフローチャート
1115′を出て(1435)、図6Aのフローチャートに戻る。
【0095】 次に、制御は変数“file”、“nindent”、および“TRUE"を有するフローチャ
ート1100のGenerateBrace1120に渡される。GenerateBraceのための詳細
フローチャート1500は図6Eに示される。ここでnindentは1の値を有する ので、strTabsは、ステップ1505で4つのスペースに等しく設定される。次 に、 SB1915が子項目を有しているかどうかが次のステップ1510で決 定される。答えが“Yes”1511である( SBは子項目DEV0 192 0およびDEV1 1930を有する)ので、制御はstrTabsがファイルに送ら れるステップ1515に移り、行2004の図10のインデント付けを生じる。
次に、制御を、bOpenがTRUEに等しいかどうかが決定されるステップ1520に 渡す。bOpenは最初のステップ1501でTRUEに等しくセットされているので、 答えは“Yes”1521であり、制御は、行2004の左ブレースが図9に示
されたファイルに書き込まれるステップ1525に移る。次に、制御は出口15
35に移り、図6Aのフローチャート1100に戻る。
【0096】 GenerateBrace1120工程後、次に、制御はGenerateBody1125工程、す なわち図6Fに示された詳細フローチャート1600に移る。フローチャート1
600の第1のステップ1605は、本例では、 SB1915であるリストの 頭の検索である。次に、リストの頭の下に子項目があるかどうかがステップ16
10で決定される。答えは“Yes”1611であり、本例では、子項目DEV
0 1920およびDEV1 1930がある。したがって、最初の子項目、D
EV0 1920が検索され(1615)、制御は、子項目1920が1だけ増 分されるnindentの値で生成される再帰Generate1620に進む(それでインデ ントは2の値を有する)。
【0097】 DEV0 1920再帰が完了した後、制御はステップ1610に戻り、DE V0 1920の他に子項目があるかが決定される。本例では、DEV1 193
0も子項目であるので、答えは“Yes”1611である。この項目1930は
次のステップ1615で検索され、再度再帰呼び出しがGenerateステップ162
0に対して行われ、nindentの現値が1だけ増分される(それで、DEV1の場 合、再帰nindentが2の値を有する)
【0098】 DEV1 1930再帰が完了された後、制御は、残りの子項目があるかどう かが決定されるステップ1610に再度戻る(1621)。次に、答えが“No
”であるので、制御は、図6Fのフローチャート1600を出て(1625)、
図6Aのフローチャート1110のGenerateBrace1130ステップに戻る。Gen
erateBrace1130は、1に等しいnindentの価で呼び出され(nindentは SB 1915および PR1950に対する再帰呼び出しにおいて増分されたけれど も、 SB1915に対しては変更されないままであった)、第3の変数は“FAL
SE"に設定される。 SB1915がDEV0 1920およびDEV1 1930
のための再帰ループを生成したために、これらの再帰ループは、 SB1915 のためのループが継続でき、GenerateBrace1130ステップおよびGenerateIFD
EF1135ステップによって SB1915のために発生されるASLコードが DEV0 1920ステップおよびDEV1 1930ステップのために発生され
たASLコードの後にくることに注目すべきである。
【0099】 同様に、オブジェクトDEV0 1920は、 ADR‐1 1925の再帰ル ープを生成し、オブジェクトDEV1は、 HID1935およびOR0 194
0のための再帰ループを生成し、オブジェクト PR1950はCPU0 195
5のための再帰ループを生成し、オブジェクトOR0 1940はField1945
のための再帰ループを生成し、Field1945は、FE0 1946およびFE1 1947のための再帰ループを生成する。
【0100】 上記の説明は特定の例を含んでいるけれども、これらは本発明の範囲を限定す
るものとして解釈すべきでなく、単に本発明の好ましい実施例のいくつかの例示
であると解釈すべきである。多数の変更が可能であり、本発明の範囲内にあると
みなされる。したがって、本発明の範囲は、ここに示された例によって決定され
るべきでなく、むしろ添付特許請求の範囲およびその法的均等物によって決定さ
れるべきである。
【図面の簡単な説明】
【図1A】 ACPIファームウェアを有するACPI対応コンピュータ・システムの概略を図示す
るものである。
【図1B】 グローバル電力状態の特性を羅列した表を示すものである。
【図1C】 グローバル電力状態間の可能な遷移の概略を図示するものである。
【図1D】 デバイス電力状態の特性を羅列した表を示すものである。
【図1E】 ACPIテーブルの概略を図示するものである。
【図1F】 典型的な三次元構成空間を図示するものである。
【図2A】 本発明のユーティリティのためのメニュー・バーを図示するものである。
【図2B】 システム・サブメニューが開いた状態の「インサート」のプルダウン・メニュー
を図示するものである。
【図2C】 「ファイル」のプルダウン・メニューを図示するものである。
【図2D】 「オブジェクト」サブメニューが開いた状態の「インサート」プルダウン・メ
ニューを図示するものである。
【図3A】 ルートDSDTの下のフォルダが閉じた状態の階層型名前空間を図示するものであ
る。
【図3B】 最上位のスリープ状態(_SO)およびシステム・バス(_SB)フォルダが開い た状態の階層型名前空間を図示するものである。
【図3C】 システム・バス(_SB)フォルダが開いた状態で、そのシステム・バス内の多 くのフォルダが開いた状態である階層型名前空間を図示するものである。
【図3D】 温度ゾーン(_TZ)フォルダが開いた状態の階層型名前空間を図示するもので ある。
【図4A】 ノートブック・システム用の設定ウィンドウを図示するものである。
【図4B】 プロセッサ用の設定ウィンドウを図示するものである。
【図4C】 固定I/O(入出力)のプロパティ用の設定ウィンドウを図示するものである。
【図5A.1】 可能なリソース設定方法、リソース・バッファ修正プログラム、現リソース設
定方法、およびセット・リソース設定方法のためのASLコードを示すものである 。
【図5A.2】 可能なリソース設定方法、リソース・バッファ修正プログラム、現リソース設
定方法、およびセット・リソース設定方法のためのASLコードを示すものである 。
【図5B】 熱事象のためのASLコードを図示するものである。
【図6A】 階層型名前空間ツリー構造をASLコードへマッピングする工程のための流れ図 を図示するものである。
【図6B】 図6Aの流れ図のGenerateIFDEF部分のための流れ図の第1の部分を図示するも
のである。
【図6C】 図6Aの流れ図のGenerateIFDEF部分のための流れ図の第2の部分を図示するも
のである。
【図6D】 図6Aの流れ図のGenerateName部分のための流れ図を図示するものである。
【図6E】 図6Aの流れ図のGenerateBrace部分のための流れ図を図示するものである。
【図6F】 図6Aの流れ図のGenerateBody部分のための流れ図を図示するものである。
【図6G】 図6Fの流れ図のGenerate部分のための流れ図を図示するものである。
【図7】 図6A〜6Gの流れ図によって使用された項目のためのオーバーライドの表を図
示するものである。
【図8】 典型的な階層ツリー構造を図示するものである。
【図9】 図8の典型的な階層ツリー構造に対応するASLコードを図示するものである。
【図10A】 CItemFieldタイプの項目に対するGenerateBody関数のためのASLコードを生成 するオーバーライド・コードを提供するものである。
【図10B】 CItemFieldタイプの項目に対するGenerateBody関数のためのASLコードを生成 するオーバーライド・コードを提供するものである。
【図11A】 CItemSTD,CItemScope,CItemProcessor,CItemDevice,CItemNameNum,CItem
NameEITHE,CItemFieldおよびCItemOperationRegionのためのGenerate(ストリ ング)関数のためのASLコードを生成するオーバーライド・コードを提供するも のである。
【図11B】 CItemSTD,CItemScope,CItemProcessor,CItemDevice,CItemNameNum,CItem
NameEITHE,CItemFieldおよびCItemOperationRegionのためのGenerate(ストリ ング)関数のためのASLコードを生成するオーバーライド・コードを提供するも のである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IS,JP,KE,KG, KP,KR,KZ,LC,LK,LR,LS,LT,L U,LV,MD,MG,MK,MN,MW,MX,NO ,NZ,PL,PT,RO,RU,SD,SE,SG, SI,SK,SL,TJ,TM,TR,TT,UA,U G,US,UZ,VN,YU,ZW 【要約の続き】 される情報のための名前空間の作成時にOEMプログラマ を支援する。このユーティリティは、階層ツリー構造の 全体のレベルから個々のデバイスのレベルまで、膨大な 数のデフォルト・コンポーネントを提供する。反復的な プロセスを使用することによって、作成された階層ツリ ー構造は、ツリー構造のものをほぼ反映している構造を 有するASLソース・コードへマッピングされる。全般的 に、この反復的プロセスは、各項目に対して名前ステー トメント、オープニングブラケット、主部、クロージン グブラケットと、親項目の主部内にある親項目の有効範 囲内の子項目とを作成する。項目(フィールド、メソッ ド、パッケージ、リソースなど)によっては、括弧およ び/または主部の生成をオーバーライドする必要がある ものもある。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 オペレーティングシステムを有するコンピュータシステムの
    BIOSファームウェアで使用される電力制御およびデータ制御の情報に対応す
    る階層ツリー構造を生成するユーティリティであって、前記オペレーティングシ
    ステムが、システムバスおよびプロセッサを含む所定の装置を有し、前記BIO
    Sファームウェアが、前記電力制御およびデータ制御の情報に対応する前記階層
    ツリー構造のルートのポインタを含むものにおいて、 前記階層ツリー構造の前記ルートのための第1の有効範囲を規定する手段と、 前記階層ツリー構造の前記ルートの前記第1の有効範囲内のバスオブジェクト
    を添付する手段であって、前記バスオブジェクトが前記コンピュータシステムの
    前記システムバスに対応することと、 前記バスオブジェクトのための第2の有効範囲を規定する手段と、 前記バスオブジェクトの前記第2の有効範囲内のプロセッサオブジェクトを添
    付し、それによって前記コンピュータシステムのプロセッサへの通信が前記シス
    テムバスを介して経路選択されることを示す手段とを備え、 前記プロセッサオブジェクトが前記コンピュータシステムのプロセッサに対応
    することを特徴とするユーティリティ。
  2. 【請求項2】 前記ユーティリティがさらに、 長い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の低電力
    状態オブジェクトを添付する手段であって、前記オペレーティングシステムによ
    る前記低電力オブジェクトのアクセスが前記コンピュータシステムを長い応答時
    間、低電力状態にすることと、 短い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の高電力
    状態オブジェクトを添付する手段であって、前記オペレーティングシステムによ
    る前記高電力オブジェクトのアクセスが前記コンピュータシステムを短い応答時
    間、高電力状態にすることと、 中間応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の中間電
    力状態オブジェクトを添付する手段とを備え、前記オペレーティングシステムに
    よる前記中間電力オブジェクトのアクセスが前記コンピュータシステムを中間応
    答時間、中間電力状態にすることを特徴とする請求項1のユーティリティ。
  3. 【請求項3】 前記オペレーティングシステムが所定の汎用事象をさらに含
    み、かつ前記ユーティリティがさらに、 前記バスオブジェクトの前記第2の有効範囲内の汎用事象オブジェクトを添付
    し、それによって前記汎用事象が前記システムバスを介して経路選択されること
    を示す手段を含むことを特徴とする請求項1のユーティリティ。
  4. 【請求項4】 前記オペレーティングシステムが所定の熱事象をさらに含み
    、かつ前記ユーティリティがさらに、 前記バスオブジェクトの前記第2の有効範囲内の熱事象オブジェクトを添付し
    、それによって前記熱事象が前記システムバスを介して経路選択されることを示
    す手段を含むことを特徴とする請求項1のユーティリティ。
  5. 【請求項5】 前記階層ツリー構造が図解階層ツリーとして可視的に表示さ
    れることを特徴とする請求項1のユーティリティ。
  6. 【請求項6】 前記階層ツリー構造が、“クリック・アンド・ドラッグ”手
    順を使用して構成され、かつウィンドウインタフエースとして示されることを特
    徴とする請求項5のユーティリティ。
  7. 【請求項7】 前記電力およびデータ制御の情報が高度構成および電力イン
    タフエース仕様と互換性があることを特徴とする請求項1のユーティリティ。
  8. 【請求項8】 前記ユーティリティがさらに、 前記プロセッサオブジェクトのための第3の有効範囲を規定する手段と、 前記プロセッサオブジェクトの前記第3の有効範囲内の現資源設定フォルダを
    添付する手段であって、前記現資源設定フォルダのアクセスが前記オペレーティ
    ングシステムに前記プロセッサの現資源設定を知らせることと、 前記プロセッサオブジェクトの前記第3の有効範囲内の可能現資源設定フォル
    ダを添付する手段であって、前記可能資源設定フォルダのアクセスが前記オペレ
    ーティングシステムに前記プロセッサによって使用可能な可能資源を知らせるこ
    とと、 前記プロセッサオブジェクトの前記第3の有効範囲内のセット資源設定フォル
    ダを添付する手段とを備え、前記セット資源設定フォルダのアクセスが前記プロ
    セッサによって使用可能な資源を設定することを特徴とする請求項1のユーティ
    リティ。
  9. 【請求項9】 前記ユーティリティがさらに、 前記プロセッサオブジェクトの前記第3の有効範囲内の電力セットフォルダを
    添付する手段であって、前記電力セットフォルダのアクセスが前記プロセッサを
    前記電力セットフォルダに対応する電力状態レベルに設定することと、 前記プロセッサオブジェクトの前記第3の有効範囲内の電力資源フォルダを添
    付する手段とを備え、前記電力資源フォルダのアクセスが前記電力状態レベルの
    前記プロセッサの電力要求の評価を生じることを特徴とする請求項8のユーティ
    リティ。
  10. 【請求項10】 項目の階層ツリー構造を近似するコンピュータコードを生
    成する再帰方法であって、 現項目を前記階層ツリー構造のルートとして規定するステップと、 前記現項目に対応するヘッダコードを生成するステップと、 前記現項目がオープニング・ブラケット・オーバーライドを有する場合、オー
    プニング・ブラケット・オーバーライドを生成し、ヘッダコードを生成するステ
    ップを後続するステップと、 前記現項目が子項目を有している場合および前記現項目が前記オープニング・
    ブラケット・オーバーライドを有していない場合、オープニング・ブラケット表
    記法を生成し、前記ヘッダコードを生成するステップを後続するステップと、 前記現項目がボディ・オーバーライドを有する場合、ボディ・オーバーライド
    コードを生成し、前記オープニング・ブラケット・オーバーライドコードを生成
    するステップあるいは前記オープニング・ブラケット表記法を生成するステップ
    を後続するステップと、 親項目として再規定された現項目および前記子項目として再規定された前記子
    項目で前記ヘッダコードを生成する前記ステップへの再帰ブランチを生成し、前
    記現項目がボディ・オーバーライドを有していない場合、前記オープニング・ブ
    ラケット・オーバーライドコードを生成するステップあるいは前記オープニング
    ・ブラケット表記法を生成するステップを後続するステップと、 前記現項目がクロージング・ブラケット・オーバーライドを有する場合、クロ
    ージング・ブラケット・オーバーライドコードを生成し、前記ボディ・オーバー
    ライドコードを生成するステップあるいは再帰ブランチを生成するステップを後
    続するステップと、 前記現項目が子項目を有する場合および前記現項目が前記オープニング・ブラ
    ケット・オーバーライドを有していない場合、クロージング・ブラケット表記法
    を生成し、前記ボディ・オーバーライドコードを生成するステップあるいは再帰
    ブランチを生成するステップを後続するステップとを含むことを特徴とする再帰
    方法。
  11. 【請求項11】 前記方法がゼロの初期値を整数レベル変数に割り当てるス
    テップをさらに含み、かつ前記再帰ブランチを生成するステップが、前記現項目
    がボディ・オーバーライドを有していない場合、前記整数レベル変数を1だけを
    増分するステップを含み、かつ前記ヘッダコードを生成するステップが前記整数
    レベル変数におおよそ比例するスペース数だけ前記ヘッダコードをインデントす
    るステップを含むことを特徴とする請求項10の方法。
  12. 【請求項12】 前記階層ツリー構造が、コンピュータシステムのオペレー
    ティングシステムのための電力管理情報およびプラグ・アンド・プレイ機能性情
    報を示し、かつコンピュータコードがコンピュータシステム用BIOSのための
    ASLコードであることを特徴とする請求項10の方法。
  13. 【請求項13】 前記BIOSがACPIコンパチブルBIOSであること
    を特徴とする請求項12の方法。
  14. 【請求項14】 フィールド項目である前記項目が前記フィールド項目の子
    を分類し、かつフォーマット化するボディ・オーバーライドを有する請求項13
    の方法。
  15. 【請求項15】 前記フィールド項目の子がフィールドエントリ項目である
    ことを特徴とする請求項14の方法。
  16. 【請求項16】 前記フィールド項目のための前記ボディ・オーバーライド
    が前記フィールドエントリ項目の属性の変化に適合させる手段を含むことを特徴
    とする請求項14の方法。
  17. 【請求項17】 方法項目である前記項目が、オープニング・ブラケット表
    記法を生成しないオープニング・ブラケット・オーバーライドと、クロージング
    ・ブラケット表記法を生成しないクロージング・ブラケット・オーバーライドと
    、前記方法項目のためのASLコードを生成し、オープニング・ブラケット表記
    法およびクロージング・オーバーライド表記法を含むボディ・オーバーライドと
    を有することを特徴とする請求項13の方法。
  18. 【請求項18】 操作領域項目である項目が、オープニング・ブラケット表
    記法を生成しないオープニング・ブラケット・オーバーライドと、クロージング
    ・ブラケット表記法を生成しないクロージング・ブラケット・オーバーライドと
    を有することを特徴とする請求項13の方法。
  19. 【請求項19】 オペレーティングシステムおよびBIOSを有するコンピ
    ュータシステムにおいて、前記オペレーティングシステムがシステムバスおよび
    プロセッサを含む所定の装置を有し、前記BIOSが電力制御およびデータ制御
    の情報を含む前記階層ツリー構造のルートのポインタを含み、前記システムが、
    前記BIOSによって使用された前記電力制御および前記データ制御の情報を自
    動的に構成する装置を備えるものであって、前記装置が、 前記BIOSによって使用された電力制御およびデータ制御の情報に対応する
    前記階層ツリー構造の前記ルートのための第1の有効範囲を規定し、 前記階層ツリー構造の前記ルートの第1の有効範囲内にあり、前記コンピュー
    タシステムの前記システムバスに対応するバスオブジェクトを添付し、 前記バスオブジェクトのための第2の有効範囲を規定し、 前記バスオブジェクトの前記第2の有効範囲内のプロセッサオブジェクトを添
    付し、それによって前記コンピュータシステムの前記プロセッサへの通信が前記
    システムバスによって経路選択されることを示すように構成され、前記プロセッ
    サオブジェクトが前記コンピュータシステムの前記プロセッサに対応することを
    特徴とするコンピュータシステム。
  20. 【請求項20】 前記装置がさらに、 長い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の低電力
    状態オブジェクトを添付し、前記オペレーティングシステムによる前記低電力オ
    ブジェクトのアクセスが前記コンピュータシステムを長い応答時間、低電力状態
    にすることとし、 短い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の高電力
    状態オブジェクトを添付し、前記オペレーティングシステムによる前記高電力オ
    ブジェクトのアクセスが前記コンピュータを短い応答時間、高電力状態にするこ
    ととするように構成され、かつ 中間応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の中間電
    力状態オブジェクトを添付する手段を備え、前記オペレーティングシステムによ
    る前記中間電力オブジェクトのアクセスが前記コンピュータを中間応答時間、中
    間電力状態にすることを特徴とする請求項19のシステム。
  21. 【請求項21】 前記オペレーティングシステムがさらに、所定の汎用事象
    を含み、かつ前記装置がさらに、 前記バスオブジェクトの前記第2の有効範囲内の汎用事象オブジェクトを添付
    し、それによって前記汎用事象が前記システムバスを介して経路選択されること
    を示すように構成されることを特徴とする請求項19のシステム。
  22. 【請求項22】 オペレーティングシステムを有するコンピュータシステム
    のBIOSファームウェアによって使用される電力制御およびデータ制御の情報
    に対応する階層ツリー構造を生成するユーティリティを有するコンピュータ可読
    記憶装置であって、前記オペレーティングシステムがシステムバスおよびプロセ
    ッサを含む所定の装置を含み、前記BIOSファームウェアが、前記電力制御お
    よび前記データ制御の情報に対応する前記階層ツリー構造のルートのポインタを
    含むものにおいて、前記ユーティリティが、 前記階層ツリー構造の前記ルートのための第1の有効範囲を規定する手段と、 前記階層ツリー構造の前記ルートの前記第1の有効範囲内のバスオブジェクト
    を添付する手段であって、前記バスオブジェクトが前記コンピュータシステムの
    前記システムバスに対応することと、 前記バスオブジェクトのための第2の有効範囲を規定する手段と、 前記バスオブジェクトの前記第2の有効範囲内のプロセッサオブジェクトを添
    付し、それによって前記コンピュータシステムの前記プロセッサへの通信が前記
    システムバスによって経路選択されることを示す手段とを備え、前記プロセッサ
    オブジェクトが前記コンピュータシステムの前記プロセッサに対応することを特
    徴とする記憶装置。
  23. 【請求項23】 前記ユーティリティがさらに、 長い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の低電力
    状態オブジェクトを添付する手段であって、前記オペレーティングシステムによ
    る前記低電力オブジェクトのアクセスが前記コンピュータシステムを長い応答時
    間、低電力状態にすることと、 短い応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の高電力
    状態オブジェクトを添付する手段であって、前記オペレーティングシステムによ
    る前記高電力オブジェクトのアクセスが前記コンピュータシステムを短い応答時
    間、高電力状態にすることと、 中間応答時間、前記階層ツリー構造の前記ルートの第1の有効範囲内の中間電
    力状態オブジェクトを添付する手段とを備え、前記オペレーティングシステムに
    よる前記中間電力オブジェクトのアクセスが前記コンピュータシステムを中間応
    答時間、中間電力状態にすることを特徴とする請求項22の記憶媒体。
  24. 【請求項24】 前記コンピュータ可読記憶媒体が、メモリ装置、集積メモ
    リを有するマイクロプロセッサ、コンパクトディスク、あるいはフロッピーディ
    スクであることを特徴とする請求項22の記憶媒体。
JP2000518323A 1997-10-27 1998-10-27 グラフィック表現を使用したファームウェア・コードの生成 Pending JP2001521243A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/958,376 US5999730A (en) 1997-10-27 1997-10-27 Generation of firmware code using a graphic representation
US08/958,376 1997-10-27
PCT/US1998/022694 WO1999022295A2 (en) 1997-10-27 1998-10-27 Generation of firmware code using a graphic representation

Publications (1)

Publication Number Publication Date
JP2001521243A true JP2001521243A (ja) 2001-11-06

Family

ID=25500896

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000518323A Pending JP2001521243A (ja) 1997-10-27 1998-10-27 グラフィック表現を使用したファームウェア・コードの生成

Country Status (5)

Country Link
US (1) US5999730A (ja)
JP (1) JP2001521243A (ja)
AU (1) AU1280099A (ja)
GB (1) GB2346236B (ja)
WO (1) WO1999022295A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123442A (ja) * 2006-11-15 2008-05-29 Toshiba Corp 情報処理装置、および情報処理装置の制御方法

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026233A (en) * 1997-05-27 2000-02-15 Microsoft Corporation Method and apparatus for presenting and selecting options to modify a programming language statement
US6366876B1 (en) * 1997-09-29 2002-04-02 Sun Microsystems, Inc. Method and apparatus for assessing compatibility between platforms and applications
JPH11161385A (ja) * 1997-11-28 1999-06-18 Toshiba Corp コンピュータシステムおよびそのシステムステート制御方法
WO1999046689A1 (en) * 1998-03-12 1999-09-16 Crossworlds Software, Inc. Execution of extended activity diagrams by code generation
US6167511A (en) * 1998-06-15 2000-12-26 Phoenix Technologies Ltd. Method to reflect BIOS set up changes into ACPI machine language
US6167512A (en) * 1998-09-30 2000-12-26 Phoenix Technologies, Ltd. Dynamic creation of ACPI APIC tables using MP specification
US6185677B1 (en) * 1998-09-30 2001-02-06 Phoenix Technologies Ltd. Automatic generation of ACPI source language for peripheral resource configuration
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
KR100301015B1 (ko) * 1998-10-15 2001-09-06 윤종용 지시자 위치 제어 방법
US6535798B1 (en) * 1998-12-03 2003-03-18 Intel Corporation Thermal management in a system
US6477655B1 (en) * 1998-12-09 2002-11-05 Globespanvirata, Inc. System and method to set PME—status bit and wake up the system, and selectively load device driver by searching who set the bit without requiring clock
EP1037143A1 (en) * 1999-03-15 2000-09-20 BSI Business Sytems Integration AG User configurable tree structure
US6453461B1 (en) * 1999-06-09 2002-09-17 Compaq Information Technologies Group, L.P. Method and apparatus for testing ASL plug and play code in an ACPI operating system
US6598169B1 (en) * 1999-07-26 2003-07-22 Microsoft Corporation System and method for accessing information made available by a kernel mode driver
US6883167B1 (en) * 1999-08-04 2005-04-19 Texas Instruments Incorporated Method and system for visual linker
US6763327B1 (en) * 2000-02-17 2004-07-13 Tensilica, Inc. Abstraction of configurable processor functionality for operating systems portability
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6970957B1 (en) * 2000-04-24 2005-11-29 Microsoft Corporation Dynamically configuring resources for cycle translation in a computer system
GB2368669B (en) 2000-10-31 2005-06-22 Advanced Risc Mach Ltd Integrated circuit configuration
US7818443B2 (en) * 2000-12-01 2010-10-19 O2Micro International Ltd. Low power digital audio decoding/playing system for computing devices
US7526349B2 (en) * 2000-12-01 2009-04-28 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7890741B2 (en) 2000-12-01 2011-02-15 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522966B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7522964B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
JP4453203B2 (ja) * 2001-01-09 2010-04-21 セイコーエプソン株式会社 デバイス環境設定システム、デバイス環境設定処理方法及び情報記録媒体
US7334196B2 (en) 2001-06-25 2008-02-19 Siemens Medical Solutions Health Services Corporation User interface display navigation and item selection system
US7055024B2 (en) * 2001-09-20 2006-05-30 Intel Corporation Computer system component initialization using a BIOS formal hardware language to represent the initialization requirements
EP1456752A1 (en) * 2001-11-14 2004-09-15 Exegesys, Inc. Method and system for software application development and customizable runtime environment
US7080093B2 (en) * 2002-01-14 2006-07-18 Sun Microsystems, Inc. System and method for database design
US6976119B2 (en) * 2002-06-14 2005-12-13 Hewlett-Packard Development Company, L.P. Method and system for providing a location of a data interface
US7225427B2 (en) * 2002-06-14 2007-05-29 Hewlett-Packard Development Company, L.P. Method and device for providing computer system component data
DE10233211A1 (de) * 2002-07-22 2004-02-19 Siemens Ag Computersystem zur Konfiguration von Firmware für ein Automatisierungsgerät
US20050147093A1 (en) * 2002-07-22 2005-07-07 Siemens Aktiengesellschaft Computer system for configuring firmware for an automation device
US7114064B2 (en) * 2002-11-14 2006-09-26 Hewlett-Packard Development Company, L.P. System and method for accessing an advanced configuration and power interface (ACPI) namespace nodal tree
US7197631B1 (en) * 2002-12-23 2007-03-27 Hewlett-Packard Development Company, L.P. System and method for constructing a user application's advanced configuration and power interface (ACPI) namespace
US8225293B2 (en) * 2003-02-13 2012-07-17 Accurate Technologies Inc. Method for supporting calibration parameters in an ECU
US7650596B2 (en) * 2003-02-13 2010-01-19 Accurate Technologies Inc. Method for ECU calibration and diagnostics development
US20060015844A1 (en) * 2003-07-30 2006-01-19 Wrd Corporation Automatic hardware and firmware generation for multi-function custom controls
US7448034B2 (en) * 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems
CA2439214A1 (en) * 2003-08-20 2005-02-20 Sarfaraz A. Qureshi Online marketplace for food, liquor, banquet & deejay industry in an auction and fixed price setup
CN1327341C (zh) * 2004-01-13 2007-07-18 英业达股份有限公司 基板管理控制器的固件自动配置系统及方法
JP4316399B2 (ja) * 2004-02-18 2009-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム、記録媒体、制御方法、及び情報処理装置
TWI391860B (zh) * 2004-08-04 2013-04-01 Osa Technologies Inc 用於為硬體裝置產生固定大小韌體形象化描述之方法
US7703036B2 (en) * 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
TWI269227B (en) * 2004-10-13 2006-12-21 Aten Int Co Ltd Method for forming a firmware framework of intelligent platform management interface
US7161758B2 (en) 2004-11-12 2007-01-09 Lenovo (Singapore) Pte. Ltd. Hard drive protection override
US20060184924A1 (en) * 2004-12-14 2006-08-17 Aten International Co., Ltd. Intelligent platform management interface firmware architecture and method of building the same
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US8171268B2 (en) * 2005-09-19 2012-05-01 Intel Corporation Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors
US9015652B2 (en) * 2005-12-21 2015-04-21 Sap Se Dynamically-generated operating system for sensor networks
GB0612433D0 (en) * 2006-06-23 2006-08-02 Ibm Method and system for defining a hierarchical structure
US7716504B2 (en) * 2006-07-13 2010-05-11 Dell Products L.P. System for retaining power management settings across sleep states
US20080155559A1 (en) * 2006-12-21 2008-06-26 Ilja Fischer Portal eventing directory
US7904878B2 (en) * 2006-12-26 2011-03-08 Vayavya Technologies Private Limited Simplifying generation of device drivers for different user systems to facilitate communication with a hardware device
US9495133B1 (en) * 2007-02-23 2016-11-15 American Megatrends, Inc. Template-based BIOS component creation
US8762692B2 (en) 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US9703659B2 (en) * 2007-12-10 2017-07-11 Dell Products L.P. Customer support using virtual machines
US9665850B2 (en) 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8756582B2 (en) 2011-08-22 2014-06-17 International Business Machines Corporation Tracking a programs calling context using a hybrid code signature
US9619499B2 (en) 2013-08-07 2017-04-11 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589063A (en) * 1983-08-04 1986-05-13 Fortune Systems Corporation Data processing system having automatic configuration
US4796179A (en) * 1986-08-20 1989-01-03 Integrated Systems, Inc. Multirate real time control system code generator
US5367671A (en) * 1990-09-25 1994-11-22 International Business Machines Corp. System for accessing extended object attribute (EA) data through file name or EA handle linkages in path tables
US5446898A (en) * 1992-06-22 1995-08-29 International Business Machines Corporation Method and apparatus for configuring and installing a loadable ABIOS device support layer in a computer system
EP0584909A1 (en) * 1992-08-26 1994-03-02 Sun Microsystems, Inc. Self configuring device system
US5339433A (en) * 1992-11-19 1994-08-16 Borland International, Inc. Symbol browsing in an object-oriented development system
US5581670A (en) * 1993-07-21 1996-12-03 Xerox Corporation User interface having movable sheet with click-through tools
US5548763A (en) * 1993-07-26 1996-08-20 International Business Machines Corporation Desk top computer system having multi-level power management
US5541986A (en) * 1993-07-27 1996-07-30 Bell Communications Research, Inc. Method and system for automated telecommunications service script consolidation and downloading
CA2128387C (en) * 1993-08-23 1999-12-28 Daniel F. Hurley Method and apparatus for configuring computer programs from available subprograms
JP2692782B2 (ja) * 1993-12-13 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション オブジェクトをリンクする方法
US5487141A (en) * 1994-01-21 1996-01-23 Borland International, Inc. Development system with methods for visual inheritance and improved object reusability
US5560022A (en) * 1994-07-19 1996-09-24 Intel Corporation Power management coordinator system and interface
US5537630A (en) * 1994-12-05 1996-07-16 International Business Machines Corporation Method and system for specifying method parameters in a visual programming system
FI103155B1 (fi) * 1995-10-11 1999-04-30 Nokia Telecommunications Oy Menetelmä tietokoneohjattujen palvelujen tuottamiseksi
US5864862A (en) * 1996-09-30 1999-01-26 Telefonaktiebolaget Lm Ericsson (Publ) System and method for creating reusable components in an object-oriented programming environment
US5884075A (en) * 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123442A (ja) * 2006-11-15 2008-05-29 Toshiba Corp 情報処理装置、および情報処理装置の制御方法

Also Published As

Publication number Publication date
WO1999022295A3 (en) 1999-11-11
US5999730A (en) 1999-12-07
AU1280099A (en) 1999-05-17
GB2346236A (en) 2000-08-02
GB0010007D0 (en) 2000-06-14
GB2346236B (en) 2002-11-20
WO1999022295A2 (en) 1999-05-06

Similar Documents

Publication Publication Date Title
US5999730A (en) Generation of firmware code using a graphic representation
US7328279B2 (en) System and method for adding hardware registers to a power management and configuration system
US6732280B1 (en) Computer system performing machine specific tasks before going to a low power state
JP4327363B2 (ja) 周辺リソース構成のためのacpiソース言語の自動生成
US6167511A (en) Method to reflect BIOS set up changes into ACPI machine language
US5903894A (en) System and method for using a hierarchical data structure to control and identify devices and represent connections between the devices
US8468333B1 (en) Updating the system management information of a computer system
US5291585A (en) Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
US6944757B2 (en) Method for allowing CD removal when booting embedded OS from a CD-ROM device
US6405320B1 (en) Computer system performing machine specific tasks before going to a low power state
US7162626B2 (en) Use of common language infrastructure for sharing drivers and executable content across execution environments
US7093116B2 (en) Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
JP2004355620A (ja) Acpiマシン語テーブルの生成システムおよび生成方法
US6980944B1 (en) System and method for simulating hardware components in a configuration and power management system
US11288078B1 (en) Providing firmware specific information via ACPI tables
Gay Advanced raspberry pi: raspbian linux and GPIO integration
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
US5963738A (en) Computer system for reading/writing system configuration using I/O instruction
EP1347380A2 (en) SMbus notifications
US7124226B2 (en) Method or apparatus for establishing a plug and play (PnP) communication channel via an abstraction layer interface
US7017035B2 (en) Method and apparatus for using an ACPI NVS memory region as an alternative CMOS information area
US7711758B1 (en) Method, apparatus, and computer-readable medium for storing character strings in a human interface infrastructure database
US7007160B1 (en) System and method for loading an advanced configuration and power interface (ACPI) original equipment manufacturer (OEM) description table
Intel Technical Product Specification for Intel® Desktop Boards using the Intel® 845GL Chipset

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081020

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090714