JP2002526860A - マルチプロセッサ環境において正しいプロセッサのための入出力命令をエミュレートし、ソフトウェアsmiをサービスするための装置及び方法 - Google Patents

マルチプロセッサ環境において正しいプロセッサのための入出力命令をエミュレートし、ソフトウェアsmiをサービスするための装置及び方法

Info

Publication number
JP2002526860A
JP2002526860A JP2000575034A JP2000575034A JP2002526860A JP 2002526860 A JP2002526860 A JP 2002526860A JP 2000575034 A JP2000575034 A JP 2000575034A JP 2000575034 A JP2000575034 A JP 2000575034A JP 2002526860 A JP2002526860 A JP 2002526860A
Authority
JP
Japan
Prior art keywords
processor
instruction
input
smi
output
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
JP2000575034A
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 JP2002526860A publication Critical patent/JP2002526860A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 マルチプロセッサ環境における入出力制御のための方法であって、割込みを要求している入出力命令がプロセッサと入出力デバイスの間でデータまたはコマンドを転送するためにマルチプロセッサ環境のプロセッサのうちの1つによって実行されているかどうか判定するステップと、そのような入出力命令が検出された場合、割込みを実行するステップと、マルチプロセッサ環境のプロセッサのうちいずれが入出力命令を実行しているか判定するステップと、そのただ1つのプロセッサが入出力命令を実行している場合、その1つのプロセッサを入出力命令を実行しているプロセッサに指定する最終プロセッサ・インジケータをセットするステップと、入出力命令に応答して最終プロセッサ・インジケータにおいて指定されているプロセッサ及び入出力デバイスの間でデータまたはコマンドを転送するステップを備える方法。本発明のさらなる態様では、マルチプロセッサ環境の入出力命令によって開始されたソフトウェア・システム管理割込み(SMI)にサービスを提供するための方法であって、ソフトウェアSMIの発生を検出するステップと、そのプロセッサがソフトウェアSMIを開始したことを示す状態情報を、マルチプロセッサ環境においてどのプロセッサが保存したか判定するステップと、SMIハンドラ及びソフトウェアSMIを開始したと判定されたプロセッサ間の情報を転送するステップを備える方法が提供される。

Description

【発明の詳細な説明】
【0001】 (これは1998年1月15日に出願された米国出願第09/007539号の
一部継続出願である。)
【0002】 (発明の分野) 本発明は、一般に、マルチプロセッサ・コンピュータ・システムの分野に関し
、より詳細には、マルチプロセッサ・コンピュータ・システム環境における入力
または出力のデータのエミュレーション及び指定された入出力デバイスに向けら
れた入出力命令を実行するプロセッサへの、またはそれからの通信及び/または
コマンドに関する。
【0003】 本発明はまた、一般にSMIサービス及びマルチプロセッサ・コンピュータ・
システムの分野、詳細には、ソフトウェアSMIをサービスすることの分野に関
する。
【0004】 (発明の背景) 現代のコンピュータ・アーキテクチャは、一般的にレガシー・ハードウェアと
称される一組のハードウェアを含む。このレガシー・ハードウェアとは、全ての
アプリケーション、オペレーティング・システム及びBIOS(アーキテクチャ
をブートして試験し、ならびにランタイム・サービスを提供するために用いられ
る基本入出力システム・ファームウェア)がコンピュータ・システムに存在する
ことが期待され、かつコンピュータ・システムにおいて所定の方法で挙動するこ
とを期待されるハードウェアである。与えられたアーキテクチャにおける多様な
ハードウェアと通信するために、指定されたアドレス及びデータ値を伴う一連の
入力及び出力命令が標準化されてきている。コンピュータ・システムの新規なハ
ードウェアを取り除くかまたは加えるときに、全ての既存のアプリケーション及
びオペレーティング・システム・ソフトウェアが修正なしに新規なハードウェア
を使用することができるようにするためには、新規なハードウェア及び古いシス
テム・ハードウェア間の入出力命令は一般的にエミュレーションを必要とし、そ
れはソフトウェア・エミュレーション・サブルーチンに入力/出力命令をディス
パッチすることによって達成される。これは、またトラッピングとも称される。
エミュレーション操作を要求するハードウェアの具体例は、ユニバーサル・シリ
アル・バス(USB)・レガシー・サポート・システムである。この支援システ
ムのUSBハードウェアは、コンピュータ・システム全体に、USBホスト・コ
ントローラ、ルート・ハブ、コネクタ、割込み生成機構、USBキーボードを含
むUSB装置を付加する。既存のアプリケーション及びオペレーティング・シス
テムのすべてはUSBキーボードの利点を活用するためには、このキーボードは
、入力/出力命令レベルで、例えばPS/2キーボードのようなレガシー・ハー
ドウェアで使用されていた元々のキーボードとして見えるようになされなければ
ならない。PS/2キーボードをエミュレートするために、システム管理割込み
(SMI)がPS/2キーボード・コントローラ入力/出力命令上のトラッピン
グによって生成される。SMIサービス・ルーチンの範囲内で、次いで特殊ルー
チンは、レガシー・ハードウェア・フォーマットからのコマンド/データをUS
Bキーボード・コマンド/データに変換する。
【0005】 マルチプロセッサ環境において、そのような割込みの使用によって基本的な問
題が生じる。割込みが利用される場合、この問題はマルチプロセッサ環境で、ど
のプロセッサによって、命令トラップが生じたかを判定することである。例えば
、IN命令のエミュレーションによって、そのコマンドまたはデータが入力命令
を開始して、実行したプロセッサの正しいレジスタへロードされない場合、重大
な問題が生じることがある。同様に、データがOUT命令を実行したプロセッサ
から受け取られない場合、それによってプロセッサのレジスタの破壊は生じない
ものの、OUT命令のエミュレーションは、不正確なデータを出力デバイスに提
供することになる。
【0006】 典型的なマルチプロセッサ・アーキテクチャでは、入出力命令エミュレーショ
ンに変更がなされない場合、ブート・ストラップ・プロセッサ(BSP)は、マ
ルチプロセッサ・アーキテクチャのアプリケーション・プロセッサのうちの1つ
がエミュレーションを要求する入力命令を実行するときに、そのレジスタのうち
の1つを変更する。これによって、2つの問題が生じる。(1)入力命令データ
は、入力命令を実行したアプリケーション・プロセッサによって決して受領され
ない、(2)ブート・ストラップ・プロセッサのレジスタの1つが、不注意に変
更され、これが破滅的な効果をもたらしうる。
【0007】 同様に、出力命令エミュレーションに対して変更を加えなければ、アプリケー
ション・プロセッサのうちの1つが出力命令を実行した場合であっても、エミュ
レーション・コードは、ブート・ストラップ・プロセッサから出力データを得る
だけである。これによって、2つの問題が生じる。(1)アプリケーション・プ
ロセッサ出力命令データは、出力命令エミュレーション・コードによって決して
受領されない。(2)ブート・ストラップ・プロセッサのレジスタのうちの1つ
は、エミュレートされたデバイスを望ましくない状態にする可能性のある出力命
令データとして使われる。本発明は、これらの問題の双方を解決するために考案
されている。
【0008】 一般に、インテルPentiumのような現代のCPUハードウェアでは、シ
ステム管理割込み(SMI)信号に対する準備がなされている。割込みは、コン
ピュータ・システムのチップセット・ロジックから出力されたピンへ接続されて
いる。チップセット・ロジックのプログラマブル・タイマのタイミング・アウト
、パリティ・エラーのようなエラー条件、外部ハードウェアからのロー・バッテ
リ指示、特定のバス入出力サイクル実行のような、あるシステム・ハードウェア
・イベントがシステムのCPUの外で起こると、チップセット・ロジックは、ソ
フトウェア管理割込み(SMI)信号を生成する。この割込みは、CPUでの実
行をさらなる処理のためにBIOSSMI割込みハンドラへ転送する。それは通
常ソフトウェア・モジュールによって実行される。
【0009】 純粋なハードウェア・イベントに加えて、SMI機能はまた、ソフトウェアS
MIプロシージャの使用によるソフトウェアによって故意に呼び出されることも
ある。一般に、ソフトウェアSMIプロシージャはチップセット・ロジックが、
モニタするようにプログラムされた1つ以上の入出力命令を実行する。入出力サ
イクルが起こったことを検出すると、チップセット・ロジックは、CPUのSM
IピンにSMI信号を生成する。この状況ではチップセット・ロジックは、入出
力バス・サイクルを(それらをハードウェア・イベントとみなして取り扱い)単
にモニタしているだけであって、したがってどのCPUが実際にその命令を生成
したかを知ることはない。
【0010】 外部ハードウェア・イベントによって生成されたSMIの場合では、システム
のさまざまなCPUのレジスタの状態は、たいていの場合は割込みハンドリング
とは無関係な状態である。ハードウェア・イベントはCPUより独立していて、
BIOSのSMIハンドラは、単にハードウェア・イベントを取り扱う制御を与
えられているだけである、そうすると処理に続いて、システムが通常処理を再開
することを認める。CPUはそれ自身一般に情報を入力せず、そこへ送り返され
る情報を要求しない。
【0011】 しかし、故意にソフトウェアによって生成されたSMI(S/W SMI)の
場合、一般にSMIハンドラに情報を渡すこと及び、結果を取り戻すことが必要
である。例えば、電力管理機能を行うために用いられるソフトウェアSMIの場
合、その結果は、特定のCPUの1つ以上のレジスタに、そのCPUに接続され
ている装置の、与えられた部品の電力上昇、または電力低下を行うために伝えら
れる制御情報である。他の例としては、ソフトウェアSMIはMODEMを起動
するために生成されることができ、特定のCPUのレジスタに対して返信される
その結果は、MODEMが起動されたかそうでなかったかという例がある。さら
に他の実施例として、ソフトウェアSMIはパスワードを点検するために、生成
されることができ、特定のCPUのレジスタを変更することによって返信される
結果は、入力されたパスワードが、受け入れられたパスワードの保存されている
組と一致するかどうかであるという例がある。
【0012】 単一CPUの場合、SMIハンドラが標準のCPUレジスタを読み出すことに
より結果が渡され、出力は、再開時にCPUのこれらのレジスタを変更すること
によって検索される。しかし、多重CPUの場合は、ソフトウェアSMIを生成
した個々のCPUがこれまでたやすく判定できず、そのため、入力として読み、
データを書き込むCPUレジスタが知られることができなかったため、新規な問
題が起こる。
【0013】 ソフトウェアSMI機能に対する変更なしで、ブート・ストラップ・プロセッ
サ(BCP)は、アプリケーション・プロセッサ(AP)のうちの1つがソフト
ウェアSMIを実行するときに、どのような入出力変更に対しても使用されるレ
ジスタを備えている。これによって、2つの問題が生じる。1)入力命令のデー
タは、APによって決して受領されない。2)BCPのレジスタが不注意に変更
されれば、破滅的な効果をもたらしうる。多重CPUのサポートは、これまで達
成されたことはなかった。
【0014】 (発明の概要) 簡潔に言えば、本発明は、各々がプロセッサと入出力デバイスの間でデータま
たはコマンドを転送するための入出力命令を実行することができる少なくとも第
1及び第2のプロセッサと、プロセッサのうちの1つからの選択された入出力命
令を受けると、複数のプロセッサ上で割込みを実行し、かつ入出力デバイスとプ
ロセッサのうちの1つとの間でデータまたはコマンドを転送する入出力及びトラ
ップ・ハードウェアと、入出力命令を実行しているプロセッサを判定する第1の
デバイスと、ただ1つのプロセッサが入出力命令を実行しているときに、入出力
命令を実行しているプロセッサとしてその1つのプロセッサを指定している最終
プロセッサ・インジケータを設定するように動作する第2のデバイスと、最終プ
ロセッサ・インジケータに示されているプロセッサ及び選択された入出力命令に
応答する入出力デバイス間でデータまたはコマンドを転送する第3のデバイスを
含むマルチプロセッサ・システムからなる。
【0015】 本発明のさらなる態様において、入出力及びトラップ・ハードウェアは、その
データまたはコマンドを、入力デバイスまたはプロセッサの一方から、入力デバ
イスまたはプロセッサの他方に適合する異なるフォーマットに変換するためのエ
ミュレーション・ブロックを含む。
【0016】 さらに他の本発明の態様では、入出力命令を実行しているプロセッサを判定す
る第1のデバイスは、複数のプロセッサの各々について、回路そのプロセッサに
よって最後に実行された入出力命令の命令アドレスとそのプロセッサの現在の命
令アドレスとの間の命令アドレス・カウント差が所定の数以下であるかどうかを
指定する第1の回路を含み、この指定を、入出力命令を実行しているプロセッサ
を判定する際に使用する。
【0017】 さらに他の本発明の態様において、第1の回路は、特定のプロセッサの命令ア
ドレス・カウント差が、1に等しくなるときを判定するための、及び、特定のプ
ロセッサに対する最後の入出力命令が直接的または間接的に特定の入出力デバイ
スのためのポートを示さない限り、入出力命令を実行しているプロセッサとして
のその特定のプロセッサの指定を削除するためのロジックを含む。
【0018】 さらに他の本発明の態様において、所定の数は2である。
【0019】 さらに他の本発明の態様において、各々の第1及び第2のプロセッサが、いつ
それが入出力命令を実行するかの第1のインジケータを設定する第1のロジック
を含み、第1のデバイスは第1のインジケータが設定されているプロセッサを判
定する第2のロジックを含む。
【0020】 本発明のさらなる態様において、マルチプロセッサ環境において入出力を制御
する方法であって、割込み要求する入出力命令が、プロセッサと入出力デバイス
の間でデータまたはコマンドを転送するために、マルチプロセッサ環境のプロセ
ッサのうちの1つによって実行されているかどうか判定するステップと、そのよ
うな入出力命令が検出された場合、割込みを実行するステップと、マルチプロセ
ッサ環境のプロセッサのどちらが入出力命令を実行しているかを判定するステッ
プと、プロセッサのうちの1つでも入出力命令を実行していれば、入出力命令を
実行しているプロセッサとしてその1つのプロセッサを示している最終プロセッ
サ・インジケータをセットするステップと、最終プロセッサ・インジケータで示
されるプロセッサと入出力デバイスの間で、入出力命令に応答して、データまた
はコマンドを転送するステップを含む方法が提供される。
【0021】 本発明のさらなる態様はコンピュータ・プログラム・プロダクツであって、入
出力トラップの間にマルチプロセッサ環境の適当なプロセッサと入出力デバイス
の間の入出力機能を果たすコンピュータ可読プログラム・コード手段が組み込ま
れているコンピュータ使用可能媒体を備え、そのコンピュータ・プログラム・プ
ロダクツのコンピュータ可読プログラム・コード手段は、マルチプロセッサ環境
のどのプロセッサが入出力命令を実行しているかをハードウェアに判定させる第
1のコンピュータ可読プログラム・コード手段、マルチプロセッサ環境のただ1
つのプロセッサが入出力命令を実行しているかどうかをハードウェアに判定させ
、かつその場合には、入出力命令を実行しているプロセッサとして1つのプロセ
ッサを示す最終プロセッサ・インジケータを設定する第2のコンピュータ可読プ
ログラム・コード手段、及び、ハードウェアに最終プロセッサ・インジケータに
よって示されるプロセッサと入出力デバイスの間で、データまたはコマンドを転
送させる第3のコンピュータ可読プログラム・コード手段を含むコンピュータ・
プログラム・プロダクツ。
【0022】 さらに他の本発明の態様においては、各々がプロセッサと入出力デバイスの間
で、データまたはコマンドを転送するための入出力命令を実行することができる
少なくとも第1及び第2のプロセッサ、プロセッサのうちの1つからの選択され
た入出力命令を受けると複数のプロセッサ上で割込みを実行し、かつ、入出力装
置及びプロセッサの1つの間で、データまたはコマンド転送する入出力及びトラ
ップ・ハードウェア、そのプロセッサによって最後に実行された入出力命令の命
令アドレスと、そのプロセッサの現在の命令アドレス間の命令アドレス・カウン
ト差が、所定の数以下であるかどうかという指定を、複数のプロセッサのそれぞ
れに与え、その情報を用いて、入出力命令に応答して、入出力デバイスとそのプ
ロセッサの間でデータまたはコマンドを転送するために、入出力デバイスをプロ
セッサのどちらに接続するかを判定し、その接続を実行する第1のデバイスを含
むマルチプロセッサ・システムが提供される。
【0023】 さらに他の本発明の態様においては、マルチプロセッサ環境の制御入出力のた
めの方法が提供される。その方法は、、マルチプロセッサ環境において、プロセ
ッサと入出力デバイスの間で、データまたはコマンドを転送するために、プロセ
ッサのうちの1つによって割込み要求をする入出力命令が実行されているかどう
か判定するステップと、そのような入出力命令が検出された場合、割込みを実行
するステップと、マルチプロセッサ環境のプロセッサのどのプロセッサが、最後
に実行された入出力命令の命令アドレスとそのプロセッサの現在の命令アドレス
と間の命令アドレス・カウント差が所定の数より少ないか等しいかを指定するス
テップと、その情報を使用して、選択された入出力命令に応答して、入出力デバ
イスとプロセッサと間でデータまたはコマンドを転送するために、どちらのプロ
セッサを入出力デバイスに接続するべきかを判定し、かつその接続を実行するス
テップを含んでいる。
【0024】 本発明のさらなる態様は、マルチプロセッサ環境の入出力命令によって開始さ
れたソフトウェア・システム管理割込み(SMI)をサービスする方法であって
、ソフトウェアSMIの発生を検出するステップと、プロセッサがソフトウェア
SMIを開始した旨を示す状態情報を、マルチプロセッサ環境のどちらのプロセ
ッサが保存したかを判定するステップと、SMIハンドラとソフトウェアSMI
を開始したと判定されたプロセッサとの間で情報を転送するステップを含む。
【0025】 本発明のさらなる態様において、プロセッサ判定ステップは、BIOSソフト
ウェアSMIコール・ルーチンのソフトウェアSMIを開始する入出力コール命
令に直ちに続く命令が存在するオフセット位置に等しい割込み保存エリアに、マ
ルチプロセッサ環境のプロセッサがEIP’値を持つかを判定するステップを含
む。
【0026】 本発明のさらなる態様において、プロセッサ判定ステップは、プロセッサ入出
力状態保存エリアのEIP値が、ソフトウェアSMIをBIOSソフトウェアの
SMIコール・ルーチンにおいて開始する入出力コール命令が存在するオフセッ
ト位置に等しいかを判定するステップを含む。
【0027】 本発明のさらなる態様においては、少なくとも第1及び第2のプロセッサを備
え、その各々は、BIOSソフトウェアSMIコール・ルーチン内で、特定の入
出力コール命令を生成することによってソフトウェア生成システム管理割込み(
SMI)を開始することができ、さらに、処理システム管理のためのSMIハン
ドラ、ソフトウェアSMIの発生を検出する第1のロジック、第1のロジックが
ソフトウェアSMIの発生を検出した後に、マルチプロセッサ環境のどちらのプ
ロセッサが、そのプロセッサがソフトウェアSMIを開始したことを示す状態保
存情報を有しているかを判定する第2のロジック、SMIハンドラ及びソフトウ
ェアSMIを開始したと判定されたプロセッサ間で情報を転送する第3のロジッ
クを含むマルチプロセッサ・システムが提供される。
【0028】 本発明のさらなる態様において、マルチプロセッサ環境のどのプロセッサがソ
フトウェア・システム管理割込み(SMI)を開始したかを判定するためのコン
ピュータ可読プログラム・コード手段が組み込まれており、SMIハンドラ及び
そのプロセッサ間の通信を提供するコンピュータが使用可能な媒体を含み、コン
ピュータ・プログラム・プロダクツのコンピュータ可読プログラム・コード手段
は、ソフトウェアSMIの発生を検出する第1のコンピュータ可読プログラム・
コード手段、第1のコンピュータ可読プログラム・コード手段が、ソフトウェア
SMIの発生を検出した後、マルチプロセッサ環境のどのプロセッサが、そのプ
ロセッサがソフトウェアSMIを開始したとして示す状態保存情報を有している
のかを判定するための、第2のコンピュータ可読プログラム・コード手段、及び
、SMIハンドラ、及び、ソフトウェアSMIを開始したと判定されたプロセッ
サ間で、情報を転送する第3のコンピュータ可読プログラム・コード手段を含む
コンピュータ・プログラム・プロダクツが提供される。
【0029】 本発明のさらなる態様はコンピュータプログラム・プロダクツを提供する。そ
のプロダクツは、マルチプロセッサ環境のどのプロセッサがソフトウェア・シス
テム管理割込み(SMI)を開始したかを判定し、かつSMIハンドラとそのプ
ロセッサ間で通信を行うコンピュータ可読プログラム・コード手段が書き込まれ
たコンピュータの使用可能な媒体を含む。コンピュータ・プログラム・プロダク
ツのコンピュータ可読プログラム・コード手段は、ソフトウェアSMIの発生を
検出する第1のコンピュータ可読プログラム・コード手段と第2のコンピュータ
可読プログラム・コード手段とを有する。その第2のコンピュータ可読プログラ
ム・コード手段は、第1のコンピュータ可読プログラム・コード手段がソフトウ
ェアSMIの発生を検出した後、 1)マルチプロセッサ環境のプロセッサが、BIOSソフトウェアSMIコー
ル・ルーチンのソフトウェアSMIを開始する入出力コール命令に直ちに続く命
令が存在するオフセット位置に等しい割込み状態保存エリアにElP’値を有し
、 2)プロセッサの入出力状態保存エリアのElP値が、BIOSソフトウェア
SMIコール・ルーチンのソフトウェアSMIを開始する入出力コール命令が存
在するオフセット位置に等しい、 という試験の双方ともが順序に関係なく真である場合に、マルチプロセッサ環境
のあるプロセッサをソフトウェアSMIを開始したと指定し、 SMIハンドラと指定されたプロセッサ間で情報を転送する。
【0030】 (好ましい実施形態の詳細な説明) 本発明は特定の実施形態の状況について記載されている、しかし、本発明はそ
れに制限されることを目的としない。本発明が特にエミュレーションを容易にす
る割込みにとって有用であるにもかかわらず、例えば、データを保存すること、
データを迂回させること、プログラムのフローを迂回させることのような、いか
なる種類の割込みに対しても幅広く応用できる。
【0031】 本発明は、マルチプロセッサ環境の多くの機能を認識し応用する。第1に、複
数のプロセッサが同時に入力/出力命令を実行しているケースはまれなイベント
であるということが本発明で認識された。加えて、ハードウェア制御は、その時
々の方法で1つのプロセッサからもう一方まで頻繁に移動させることはできない
ということが認識されている。さらに、ハードウェアが同時に動いている2つの
入力/出力命令を有することができないことが本発明で認識された。マルチプロ
セッサ・システムのための入力/出力バスは、1度に1つのプロセッサによって
アクセスされることができるだけである。他のプロセッサは、第1の入力/出力
命令の完了まで受け付けられない。本発明はまた、その割込みを要求している入
力命令がすでに実行さているという知見を利用する。本発明の一実施形態におい
て、本発明はこのプロセッサが入力/出力命令を出していたかどうか判定するた
めに、各々のプロセッサの状態保存エリアを使用する。最後に、本発明は保留中
の入力/出力命令を有する多重プロセッサを区別するために与えられたプロセッ
サの履歴を使用する。
【0032】 例として、本発明は実施形態において、以下のステップを含む。 (1)割込みを要求している入出力命令が実行されていると判定するステップ
と、 (2)割込みを実行するステップと、 (3)マルチプロセッサ環境の、入出力命令を実行しているプロセッサを判定
するステップと、 (4)ただ1つのプロセッサが入出力命令を実行している場合、その1つのプ
ロセッサを入出力命令を実行しているプロセッサとして指定する最終プロセッサ
・インジケータを設定するステップと、 (5)最終プロセッサ・インジケータの示すプロセッサと入出力デバイス間で
、入出力命令に応答して、データまたはコマンドを転送するステップ。
【0033】 さらに詳細にここで、これらの各ステップについて述べると、第1のステップ
は、そのモニタするトラップ・イベントが発生したことを示すため、及び割込み
を開始するために典型的トラッピング・ハードウェアの使用を単純に要求する。
上記したように、割込みは、様々な異なる目的を達成するために使用できる。例
えば、USBレガシー・サポート・システムの場合、ハードウェアはRead
of Port 60Hが発生したことを示す。Read of Port 6
0Hは、レガシー・キーボードのための入力ポートがアクセスされていることを
示す。このイベントが検出されたことは、入出力命令(この場合は入力命令)が
マルチプロセッサ環境のプロセッサのうちの1つによって実行されていることを
示す。
【0034】 同様に、出力命令の実行の状況において、モニタされた可能性のある命令また
はイベントは、命令Write of Port 64HまたはPort 60
Hである。Port 60Hが出力または書込みコマンドのためのレガシー・キ
ーボード・コントローラのためのデータ・ポートである一方で、Port 64
Hは、レガシー・キーボード・コントローラのためのコマンド・ポートである点
に注意されたい。モニタする特定のイベントが検出されると、例えば、Read
of Port 60HまたはWrite of Port 64HまたはP
ort 60H命令の実行の検出が行われると、割込みがシステム内で開始され
る。この割込みによって、プログラム・フローがこの特定のイベントの検出に基
づいて迂回されることがありえる。あるいは、その割込みはエミュレーション・
プログラム・サブルーチンが実行されるようにする。前述されたように、新規な
装置をレガシー・システムに取り入れるときには、入力と出力データのエミュレ
ーション、及び/または正しい通信を容易にするために、新規な入出力デバイス
とレガシー・システムとの間で転送されるコマンドを与えることが重要である。
このエミュレーション・サブルーチンは、一般的に単に2つの異なるフォーマッ
ト間のコマンドとデータを変換するための翻訳サブルーチンを含むものである。
【0035】 一旦割込み作業が発生すると、解決すべき問題は、マルチプロセッサ環境の、
どのプロセッサが入出力命令を実行したかを判定すること、及び、入力コマンド
またはデータを受け取るかまたは、その出力データまたはコマンドを入出力デバ
イスに送り出すかのいずれかを実行すべきかを判定することである。マルチプロ
セッサ環境の正しいプロセッサのこの判定を達成するために、本発明の一実施形
態において、例えばプロセッサに対して内部であれ外部であれ、RAMのような
状態保存エリアにおいて、トラップの間に状態操作保存が利用される。詳細には
、標準プロセッサは、そのプロセッサの最後の入出力命令の実行の間に存在して
いたECX、ESI、EDI、及びElPレジスタの状態を保存する。最後の入
出力レジスタ状態は、最終I/O保存エリアにおいて保存されると考えられる。
最後の入出力にレジスタ状態を取っておくための元々の理論的根拠は、必要に応
じて最後の入出力命令での再開を許すことにあった。
【0036】 同様に、割込みが起こるときに、割込みの開始時にあったレジスタECX、E
SI、EDI、及びElPの状態は、それが、割込みレジスタ保存エリアである
と考えられる領域において保存される。
【0037】 割込みを発生させる入出力命令を受け取るプロセッサの正常動作において、レ
ジスタECX、ESI、EDI、及びElPの状態は入出力命令を受けると、入
出力保存エリアに保存されるということがわかる。例えばIN AL,Port
64Hは2バイト命令であり、このような典型的入力命令は、プロセッサ・レ
ジスタALにPort 64Hの入出力デバイスの内容を移動するようにプロセ
ッサに指示する。典型的な他の入力命令は、IN AL,DXの1バイトの命令
の形式を有する。DXはポート・アドレスを含む。関係する入出力命令のタイプ
に従い、Port 64Hのための命令リンクは多数バイト長である。2バイト
の入力命令の実例では、マルチプロセッサ・システムのための入出力管理ロジッ
クがこれがモニタされる入出力命令であるということを検出する前に、プロセッ
サは命令の両方のバイトを読み込む。したがって、プログラムはプロセッサが入
出力命令を読み込むようにし、入出力管理システムがこれが割込みを要求し、割
込みを開始し、レジスタECX、ESI、EDI、及びElPの状態を割込み状
態保存エリアに保存する入出力命令であることを検出するようにするために2バ
イトで進む。入出力命令を実行するプロセッサのために、最終I/O状態保存エ
リア内に保持されている、最後の入出力実行の間に実行される命令のための、命
令ポインタまたはアドレスが、割込み状態保存エリア内に保持されている次の命
令ポインタまたはアドレスと、所定の数以下の値だけ異なることが分かる。この
例では、この所定の数は、入出力デバイスが有することができるアドレス・バイ
トの最大数である。2バイトの入出力ポート命令の現在の実例では、この所定の
数は2に等しい。したがって、特定のプロセッサによって実行される最後の入出
力命令のためのアドレスを保有している最終I/O状態保存エリアと、割込み状
態保存エリアに保持されている次の命令ポインタ間のアドレス差が、2に等しい
とき、その特定のプロセッサが入出力命令を実行していることは明白であること
がわかる。1つの例示的実施形態では、入出力命令を受け取る時点でレジスタE
lPに保持されているアドレスは、最終I/O状態保存エリアに保存され、割込
みの時点で、そのアドレスが割込み状態保存エリアに保持されているElPレジ
スタに保持されているアドレスで減算され、またそれと比較されることに注意さ
れたい。これらの2アドレス間の差は、所定の数、この例では2と比較される。
すなわち、EIP’=EIP+2であり、ここでEIP’は次の命令ポインタま
たはアドレスを保持しているレジスタである。
【0038】 あるいは、入出力ポート・アドレスは、例えばレジスタDXのようなレジスタ
に配置されることができる。その命令は、この例では1バイト命令であって、以
下の形式IN AL,DXをとる。この状況では、実行される最後の入出力命令
のための最終I/O状態保存エリアに保持されている命令アドレスと、そのプロ
セッサのための割込み状態保存エリアに保持されている次の命令ポインタ間の命
令カウント差は、1に等しく、すなわちEIP’=EIP+1である。ここにE
lP’は割込み状態保存エリアの次の命令ポインタ位置に保持されている次の命
令ポインタである。
【0039】 プロセッサのための命令ポインタ・カウント差が1に等しいときは、それが割
込みを要求したことは、すなわちレジスタDXに保持されているポート・アドレ
スが、モニタされている入出力デバイスのための指示子またはアドレスを実際に
保持しているかどうかを判定することが好ましい。このように、特定のプロセッ
サの命令アドレス・カウント差が1に等しいときに、特定のプロセッサに対する
最後の入出力命令が、モニタする入出力デバイスのためのポートを直接的または
間接的に示さなければ、入出力命令を実行するプロセッサとしての特定のプロセ
ッサの指定を削除する付加ステップが実行される。
【0040】 割込みが必要であると判定される前に入出力命令を読むためにプログラムが多
数のバイトをステップしないというプロセッサ設計があり得るということは注意
されるべきである。その場合、そのプロセッサによって実行される最終I/O命
令のための最終I/O状態保存エリアに保持されているアドレスと、そのプロセ
ッサのための割込み状態保存エリア保持されている現在の命令ポインタ間の命令
カウント差はゼロである。
【0041】 したがって、特定のプロセッサの命令ポインタ・カウント差は、実行されてい
る入出力命令があるときに、所定の数に等しいかまたは所定の数未満でもよいこ
とは、上記から理解できる。議論中の実例では、命令ポインタ・カウント差は、
2、1または0であってもよい。次のステップにおいて、1つのプロセッサだけ
が入出力命令の中にある場合、そのときはこのプロセッサは、入出力命令を出し
たものでなければならず、指定された入出力デバイス間で通信し、データ及びコ
マンドを転送するために接続されていなければならない。したがって、最終プロ
セッサ・インジケータは、この特定のプロセッサを示すために、読み込み命令の
場合は、レジスタALのためのこのプロセッサの状態保存エリアの中に保持され
ている情報を更新するように設定される。あるいは、書き込み命令の場合、この
特定のプロセッサのためのレジスタALのための割込み保存エリアに保持されて
いるデータまたはコマンドは、入出力デバイスの適当なポートに送出される。状
況の2つ以上のプロセッサが入出力命令の中にある場合、すなわち、2つ以上の
プロセッサに対して、最終I/O状態保存エリアに保持されている命令ポインタ
とそのプロセッサのための割込み状態保存エリアに保持されている現在の命令ポ
インタのとの間のアドレス差が所定の数以下である場合は、最終プロセッサ・イ
ンジケータは更新されず、最終プロセッサ・インジケータに現在表示されている
プロセッサがデータまたはコマンドの移動のための入出力デバイスに接続される
。本質において、入出力命令を実行している2つのプロセッサに直面すれば、最
終プロセッサ・インジケータにおいて示されるプロセッサは、通信のための正し
いプロセッサであると仮定される、これがデフォルト状況である。現実の世界に
おいて、そのようなプロセッサ競合はまれな状態である点に留意する必要がある
。実際、マルチプロセッサ・オペレーティング・システムは通常特定のハードウ
ェアを特定のプロセッサに割り当てる。割込み要求するまさに第1の入力命令の
実行中に、2つ以上のプロセッサが入出力命令中であるならば、その場合は最終
プロセッサ・インジケータは、ゼロに等しい。したがって、どちらのプロセッサ
の状態保存エリアも、入出力デバイスに接続されていない。この状態は、パワー
・オン・セルフ・テスト(Power On Self Test、Post)
の間に1つのプロセッサを実行するだけであるBIOSの中では、決して存在し
ない。これは、最終プロセッサ・インジケータは実行している唯一のプロセッサ
にセットされなければならないからである。
【0042】 最終プロセッサ・インジケータが最後のプロセッサであった特定のプロセッサ
を示しているレジスタ・ポインタを備えているかまたは、各々のプロセッサに設
定されるフラグを伴って、複数のフラグを備えることができる点に注意すべきで
ある。最終プロセッサ・インジケータは、入出力管理システムまたはプロセッサ
・チップセットに配置されていることができ、またはプロセッサ・チップセット
に対して外部部品であることもできる。
【0043】 図1を参照する。本発明の一実施形態のためのプログラム・フローを示すフロ
ーチャートを記載する。エントリ・ポイント10から、システムは菱形12をモ
ニタし、割込みを要求する入出力命令を探す。割込みを要求している入出力命令
が検出されない場合、システム・フローは直接終了点100へ行く。割込みを要
求している入出力命令が検出されたとき、そのときはレジスタEIPを含む適当
なレジスタの値が、各々のプロセッサのための割込み保存エリアに保存される。
この時点で、命令ポインタ・カウントの差はマルチプロセッサ・システムの各々
のプロセッサに対して判定される。したがって、ブロック14において、チェッ
クされる第1のプロセッサに対してポインタが状態保存エリアにおいて初期化さ
れる。プログラム・フローは、次いでその特定のプロセッサが入出力命令を実行
しているかどうか判定される菱形16へ移動する。以前に強調されたように、本
発明の好適な実施形態では、その菱形判定ブロック機能16は、最終I/O入出
力状態保存エリア内に保持されている命令ポインタと、そのプロセッサのための
割込み保存エリアの現在の命令アドレス・ポインタ内に保持されている現在の命
令アドレスとの間のアドレス・カウント差が所定の数以下であることを判定する
ことによって達成されてもよい。現在の例では、この所定の数は2に等しい、し
かし、その他の例では使用されているプロセッサの特定のタイプに依存する。こ
の実施形態のさらなる態様において、特定のプロセッサのためのアドレス・カウ
ント差が1に等しいときに、特定のプロセッサに対する最後の入出力命令のため
の命令ポインタがモニタする入出力デバイスのための指示子を保持している位置
をポイントしない限り、このプロセッサは入出力命令を実行している特定のプロ
セッサに指定されない。
【0044】 菱形16がこのプロセッサが入出力命令を実行していると判定する場合、その
プロセッサのための入出力インジケータがセットされる。このインジケータは、
例えばフラグまたはポインタとすることができる。プログラム・フローは、それ
からチェックする次のプロセッサの状態保存エリアにポインタを増分するために
ブロック20へ行く。次いで、プログラム・フローは、これ以上のプロセッサが
チェックされる必要があるかどうか判定される菱形22へ行く。さらなるプロセ
ッサがチェックされる必要がある場合、プログラム・フローはこのさらなるプロ
セッサが上述したような入出力命令を実行しているかどうかを判定する菱形ブロ
ック16への入力まで戻る。さらなるプロセッサが、それらが入出力命令を実行
しているかどうか判定するためにチェックされる必要はない場合、プログラム・
フローは、複数のプロセッサが入出力命令を実行している最中であるかを意味す
る、複数のプロセッサがセットされている入出力インジケータを有するかどうか
を判定するために菱形ブロック24へ行く。入出力命令を実行している複数のプ
ロセッサがない場合、最終プロセッサ・インジケータはそのプロセッサを示すた
めに更新される。それから、プログラム・フローは「最終プロセッサ」の状態保
存エリアを選択された入出力デバイスに接続するためにブロック28へ行く。I
N命令の場合、「最終プロセッサ」のためのALレジスタのための値を保持して
いる状態保存エリアは、特定の入出力デバイスからのデータまたはコマンドによ
って更新される。あるいは、OUT命令の場合、「最終プロセッサ」のレジスタ
ALのための状態保存中に保持されているデータまたはコマンドは、特定の入出
力デバイスに送られる。
【0045】 菱形ブロック24が、入出力命令を実行する複数のプロセッサがあると判定す
るとき、その場合は「最終プロセッサ」インジケータは更新されず、むしろプロ
グラム・フローは直接ブロック28へ行き、通信を許可する更新されていない「
最終プロセッサ」インジケータ中で示されているプロセッサの状態保存エリアを
特定の入出力デバイスへ接続する。これは、デフォルト状況である。ブロック2
8から出る出力は、次いでプログラム・フローから終了点100まで行く。
【0046】 ここにおいて記載されている本発明の本実施形態は、SMRAMの状態保存エ
リアを使用したが、本発明はそれに制限されない点に注意されたい。例えば、状
態保存情報は、標準のシステム・メモリに保存されてもよい。
【0047】 ソフトウェアSMIを引き起こしたCPUを判定するという問題を解決するた
めに設計された本発明のさらなる態様では、本発明は、(1)BIOSがS/W
SMIを生成する唯一のエージェントでなければならないという事実、(2)
各々のプロセッサのSave State(保存状態)エリア内に保存されてい
るCPU状態情報、特に状態保存のElP’入出力EIPスロットに含まれてい
る情報を使用する。本発明はまた、完全に現在のオペレーション・システムで機
能する既存のソフトウェアSMIサービスに適合する。新規なインターフェース
は、定義される必要はない。
【0048】 S/W SMIを生成したプロセッサを判定する検出プロシージャは、以下の
ステップに従う。 1)このSMIがソフトウェアSMIであったと判定するステップ。 2)どのプロセッサの状態保存が、それがS/W SMIを生成したと結論を下
すための期待される情報を有しているか判定するステップ。
【0049】 更に詳細に各々のこれらのステップを説明する。第1のステップは、単にその
特定のSMIの出所は、ソフトウェアであったと判定するためにチップセット・
ロジック・レジスタを使用する。例えば、ロジックはモニタするソフトウェア・
イベントがいつ起こったかを示すために設定され、その発生を示すために次いで
特定のレジスタに「1」を配置することができる。
【0050】 第2のステップは、BIOSがソフトウェアSMIを生成することができる唯
一のエージェントであるという事実を利用する。これは明白でなければならない
。なぜならSMIを処理するSMIハンドラがBIOSによって生成されている
からである。このために、ソフトウェアSMIを開始するためのいかなるコール
・ルーチンも、BIOSによって判定されるフォーマットに従わなければならな
い。第2に、ソフトウェアSMIを開始するためのコール・ルーチンはマシン特
有のものである。そのことはソフトウェアSMIを使用するいかなる一般的なア
プリケーション・ソフトウェアにとっても、そのソフトウェアは、そのときBI
OS内に存在しなければならない、マシン・レベル・プロシージャにアクセスし
なければならないことを意味する。
【0051】 第2のステップは、特定のCPUがBIOSソフトウェアSMIコール・ルー
チンの外で実行していたならば、どのルーチンがソフトウェアSMIを生成する
入出力命令を含むかを判定するために各々のCPU状態保存エリアを見ることに
よってその判定機能を達成する。状態保存は、プロセッサが、SMIに先だって
その位置にあり、したがってソフトウェアSMIを生成したかどうかを判定する
ことができる情報のキー部分を含む。試験をするために2つのデータが用いられ
る。そのCPUがソフトウェアSMIを実行しているかどうか判定するために、
いずれの試験も、あるレベルの正確度で使われる。両方の試験が真の場合、正確
度のレベルは実質的に100%である。
【0052】 試験1は、割込み状態エリアのEIP’値が、SMIハンドラに実行を送り出
すBIOSソフトウェアSMIコール・ルーチン内の入出力コール命令に直ちに
続く命令のオフセット位置に等しいかどうか判定する。以前に強調されたように
、割込みが起こるとき、割込み状態保存エリアのElP’レジスタは実行される
次の命令の位置を保つ。この状況では、オフセットとは相対位置を意味する。
【0053】 BIOSソフトウェアSMIコール・ルーチンは少なくとも2つの命令を含ま
なければならず、それはSMIを実行するために、SMIハンドラ・ルーチンに
実行を送り出し直ちに命令に続くための入出力コール命令を備えるということに
注意されたい。限定とはならない例証として挙げると、直ちに続く命令はソフト
ウェアSMIの発生の前にCPUで実行していたアプリケーション・プログラム
へ実行を送り返すこともできる。
【0054】 試験2は、CPUが入力/出力(入出力)命令を実行し始めるときに、割込み
状態保存エリアと異なる状態保存エリア内の位置のECX、ESI、EDI、及
びElPレジスタの状態保存、すなわち入出力状態保存エリアの状態を保存する
という事実を利用する。以前に注目したように、これは入力/出力命令が、必要
に応じて、再開できるように実行される。この入出力状態保存情報は、プロセッ
サの最後に実行された入出力命令が、ソフトウェアSMIを生成するために使用
された入力/出力命令からのものであるかどうかを判定するために用いられる。
EIPのための入出力状態保存値が、BIOSソフトウェアSMIコール・ルー
チンの入出力コール命令が存在するオフセット位置に等しい場合、その命令はS
MIハンドラに実行を送る。
【0055】 これらの試験の両方とも正である場合、このCPUが今まさに、S/W SM
Iを生成したことは確実であるということに注目されたい。ソフトウェアSMI
の時点で1つ以上のCPUが、ランダムにこれらの試験の双方ともに合格する確
率は2^32より大きい。(システムが連続的に稼働するに任され、ソフトウェ
アSMIが2秒ごとに生成される場合に、エラー条件が起こるには、平均して1
00年以上かかる。)このことは、多くの他のシステム故障イベントが確実と見
なされるよりもより確率が低い。両方の試験が正であれば、割込み状態保存レジ
スタECX、ESI、EDIはまた、そのCPUのための入出力状態保存の、そ
れらの入出力状態保存等価物に等しくなければならない、ということに注目され
たい。
【0056】 次に図2に関連して考察すると、本発明の実施形態に従って、マルチプロセッ
サ環境のソフトウェアSMIの後の判定の経過を示しているブロック図フローチ
ャートが示されている。この図が本発明の好適な実施形態を例示し、そこにおい
て、双方の試験は、どのプロセッサが、ソフトウェアSMIを開始したかに関す
る判定に利用されるということに注目されたい。以前に明示されたように、本発
明はプロセッサの判定をするためにこれらの試験のうちの1つだけを使用して実
行されてもよい。次に図2に関連して考察する。実行はブロック110で示され
るエントリ・ポイントから始まる。ブロック110は、SMIが発行された実行
の位置を示す。この過程(ブロック112によって例示される)における次のス
テップは、SMIがソフトウェアSMIであるかどうかを判定することである。
これがソフトウェアSMIでないと判定された場合、実行はブロック114へ進
み、SMIは通常のハードウェアSMIのように処理される。これがソフトウェ
アSMIであることが判定された場合、実行はブロック116へ進み、第1のC
PUの状態保存エリアをポイントする。実行はそれからブロック118へ進み、
そこにおいて割込み状態保存EIP’値が、直ちに入出力コール命令に続くBI
OSソフトウェアSMIコール・ルーチン内の命令のオフセット位置に等しいか
どうか判定される。答えがNOである場合、実行はブロック120へ進み、そこ
でこれが試験される最後のCPUであるかどうか判定する。答えがYESである
場合、実行はこのプロシージャが停止させられるブロック122へ進む。これが
最後のCPUでないと判定された場合、実行はブロック124へ進み、次のCP
Uに対して増分する。次いで、実行はその次のCPUのための割込み状態保存E
LP’値が、入出力コール命令に直ぐ続く、BIOSソフトウェアSMIコール
・ルーチンの命令のオフセット位置に等しいかどうかを判定するために再びブロ
ック118まで進む。
【0057】 ブロック118の判定に対する答えが、その割込み状態保存ElP’が、入出
力コール命令に直ちに続く、BIOSソフトウェアSMIコール・ルーチンの命
令のオフセット位置にまさに等しい場合、実行はブロック126へ進む。ブロッ
ク126は、入出力状態保存EIPがSMIハンドラを呼んだBIOSソフトウ
ェアSMIコール・ルーチンの入出力コール命令のオフセット位置に等しいかど
うかを判定することによって第2の試験を実行する。この判定に対する答えがY
ESである場合、実行はブロック128へ進み、このCPUをソフトウェアSM
Iを生成したCPUに指定する。情報は、次いでSMIハンドラとそのCPUの
状態保存の間で通信される。実行は、それからルーチンを出るブロック130へ
進む。
【0058】 ブロック126の判定がNOである場合、すなわち、入出力状態保存EIPが
BIOSソフトウェアSMIコール・ルーチンの入出力コール命令のオフセット
位置に等しくない場合、実行はブロック120へ進む。ブロック120は、これ
が問い合わせをする最後のCPUであるかどうか判定する。実行は、次いで以前
に議論されたように進む。
【0059】 好適な実施形態は、ブロック118の試験のシーケンスを利用して記載されて
おり、すなわち、割込み状態保存EIP’が、入出力コール命令に直ちに続く、
BIOSソフトウェアSMIコール・ルーチンの命令のオフセット位置に等しく
、続いて、ブロック126の試験が行われ、すなわち、入出力状態保存EIPは
BIOSソフトウェアSMIコール・ルーチンの入出力コール命令のオフセット
位置に等しい、とされているように記載されているが、本発明はそのように限定
されないことに注意されたい。詳細には、これらの試験は交換されてもよい。そ
の結果、ブロック126の試験はブロック118に記載される試験の前に起こっ
てもよい。
【0060】 本発明は、その能力がマルチプロセッサ環境のソフトウェアSMIを使用する
のを許すものである。マルチプロセッサ環境は、個々のシステム及びサーバーの
ために、より多くのCPUスループットを達成するために重要である。ソフトウ
ェアSMIの機能を有する必要性は、このクラスのシステムにとって重要であり
、特に、ソフトウェアSMIを要求する特別な付加価値機能を取り入れるシステ
ム設計者にとってオペレーティング・システム主導の電力管理を使用するマルチ
プロセッサ・システムにとって重要である。
【0061】 本発明の前述の好適な実施形態の詳細な説明は、図例及び説明のために示され
た。網羅的であるかまたは本発明を、開示されている正確な形式に制限すること
を目的とせず、修正及び変形は、上記の教示を考慮して可能であるか、または本
発明の実行から得られることができる。実施形態は、本発明の原則を説明するた
めに、またさまざまな実施形態で、予測される特定の使用に適しているようなさ
まざまな修正を伴って、当業者が本発明を利用することを可能とするための現実
的応用を説明するために選択され記載された。本発明の範囲が本願明細書に追加
される請求項、及び、それらの等価物によって定義されることを意図するもので
ある。
【図面の簡単な説明】
【図1】 本発明のためのフローを取り扱っている入出力命令トラップを示しているブロ
ック・フローチャートである。
【図2】 マルチプロセッサ環境のソフトウェアSMIの後のプロセッサ判定を示してい
るブロック・フローチャートである。
───────────────────────────────────────────────────── フロントページの続き (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,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C U,CZ,DE,DK,EE,ES,FI,GB,GD ,GE,HR,HU,ID,IL,IN,IS,JP, KE,KG,KP,KR,KZ,LC,LK,LR,L S,LT,LU,LV,MD,MG,MK,MN,MW ,MX,NO,NZ,PL,PT,RO,RU,SD, SE,SG,SI,SK,SL,TJ,TM,TR,T T,UA,UG,US,UZ,VN,YU,ZA,ZW (72)発明者 エドリッチ,デイビッド・スティーブン アメリカ合衆国・95060・カリフォルニア 州・サンタ クルズ・モンテ ベルデ ハ イツ・2 Fターム(参考) 5B014 EB03 FA04 FB03 FB04 GA35 GA38 GC06 GD19 GD22 GD23 GD25 GD42 HA07 HC08 HC12

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 各々がプロセッサと入出力デバイスの間でデータまたはコマ
    ンドを転送するための入出力命令を実行することができる少なくとも第1及び第
    2のプロセッサと、 プロセッサのうちの1つからの選択された入出力命令を受けると、複数のプロ
    セッサへ割込みを実行し、かつ入出力デバイスとプロセッサのうちの1つとの間
    でデータまたはコマンドを転送するための入出力ハードウエア及びトラップ・ハ
    ードウェアと、 入出力命令を実行しているプロセッサを判定する第1のデバイスと、 ただ1つのプロセッサが入出力命令を実行しているときに、入出力命令を実行
    しているプロセッサとしてその1つのプロセッサを指定するように最終プロセッ
    サ・インジケータを設定する第2のデバイスと、 選択された入出力命令に応答して、最終プロセッサ・インジケータに示されて
    いるプロセッサと入出力デバイスの間でデータまたはコマンドを転送する第3の
    デバイス を含むマルチプロセッサ・システム。
  2. 【請求項2】 入出力及びトラップ・ハードウェアが、そのデータまたはコ
    マンドを、入力デバイスまたはプロセッサの一方から、入力デバイスまたはプロ
    セッサの他方に適合する異なるフォーマットに変換するエミュレーション・ブロ
    ックを含む請求項1に記載のマルチプロセッサ・システム。
  3. 【請求項3】 入出力命令を実行しているプロセッサを判定する第1のデバ
    イスが、複数のプロセッサの各々に対して、そのプロセッサによって最後に実行
    された入出力命令の命令アドレスとそのプロセッサの現在の命令アドレスとの間
    の命令アドレス・カウント差が所定の数以下であるかどうかを指定する第1の回
    路を含み、この指定を、入出力命令を実行しているプロセッサを判定する際に使
    用する請求項1に記載のマルチプロセッサ・システム。
  4. 【請求項4】 第1の回路は、特定のプロセッサに対する最後の入出力命令
    を除いて、入出力命令を実行している特定のプロセッサの命令アドレス・カウン
    ト差がいつ1に等しくなるかを判定し、その特定のプロセッサの直接または間接
    に入出力デバイスのためのポートを示すプロセッサとしての指定を削除するロジ
    ックを含む請求項3に記載のマルチプロセッサ・システム。
  5. 【請求項5】 所定の数が2である請求項3に記載のマルチプロセッサ・シ
    ステム。
  6. 【請求項6】 第1及び第2のプロセッサの各々が、いつそれが入出力命令
    を実行するかの第1のインジケータを設定する第1のロジックを含み、 第1のデバイスは、第1のインジケータが設定されているプロセッサを判定す
    る第2のロジックを含む請求項3に記載のマルチプロセッサ・システム。
  7. 【請求項7】 マルチプロセッサ環境において入出力を制御する方法であっ
    て、 プロセッサと入出力デバイスの間でデータまたはコマンドを転送するために、
    割込み要求する入出力命令がマルチプロセッサ環境のプロセッサのうちの1つに
    よって実行されているかどうか判定するステップと、 そのような入出力命令が検出された場合、割込みを実行するステップと、 前記マルチプロセッサ環境のプロセッサのどちらが、入出力命令を実行してい
    るかを判定するステップと、 プロセッサのうちの1つでも入出力命令を実行していれば、その1つのプロセ
    ッサを入出力命令を実行しているプロセッサと指示するように最終プロセッサ・
    インジケータをセットするステップと、 最終プロセッサ・インジケータ内で示されているプロセッサと入出力デバイス
    の間で、入出力命令に応答して、データまたはコマンドを転送するステップ とを含む方法。
  8. 【請求項8】 割込み実行ステップが、データまたはコマンドを受け取るデ
    バイスに適合する異なるフォーマットに変換されるべきデータまたはコマンドを
    変換するステップを含む請求項7に記載の方法。
  9. 【請求項9】 プロセッサのどれが入出力命令実行しているかを判定するス
    テップが、複数のプロセッサの各々に対して、そのプロセッサによって最後に実
    行された入出力命令の命令アドレスとそのプロセッサの現在の命令アドレス間の
    命令アドレス・カウント差が、所定の数以下であるどうかを指定するステップを
    含み、プロセッサのどれが入出力命令を実行しているかを判定するためにこの情
    報を使用する請求項7に記載の方法。
  10. 【請求項10】 さらに、特定のプロセッサの命令アドレス・カウント差が
    1に等しいときに、特定のプロセッサに対する最後の入出力命令が、直接的また
    は間接的に、入出力デバイスのためのポートを示さない限り、入出力命令を実行
    しているプロセッサとしてのその特定のプロセッサの指定を削除するステップを
    含む請求項9に記載の方法。
  11. 【請求項11】 入出力割込み中に、マルチプロセッサ環境の適当なプロセ
    ッサと入出力デバイスの間の入出力機能を与えるコンピュータ可読プログラム・
    コード手段が書き込まれているコンピュータ使用可能媒体を有し、そのコンピュ
    ータ・プログラム・プロダクツにおけるコンピュータ可読プログラム・コード手
    段が、 ハードウェアに、マルチプロセッサ環境のどのプロセッサが、入出力命令を実
    行しているかを判定するようにさせるための第1のコンピュータ可読プログラム
    ・コード手段と、 マルチプロセッサ環境のただ1つのプロセッサが入出力命令を実行しているか
    どうかをハードウェアに判定させ、その場合に、入出力命令を実行しているプロ
    セッサとして、その1つのプロセッサを示す最終プロセッサ・インジケータを設
    定する第2のコンピュータ可読プログラム・コード手段と、 ハードウェアに、最終プロセッサ・インジケータによって示されるプロセッサ
    と入出力デバイス間で、データまたはコマンドを転送させるための第3のコンピ
    ュータ可読プログラム・コード手段 とを含むコンピュータ・プログラム・プロダクツ。
  12. 【請求項12】 第1のコンピュータ可読プログラム・コード手段が、複数
    のプロセッサの各々に対して、そのプロセッサによって最後に実行された入出力
    命令の命令アドレスとそのプロセッサの現在の命令アドレスとの間の命令アドレ
    ス・カウント差が所定の数以下であるかどうかを判定する第4のコンピュータ可
    読プログラム・コード手段を含み、入出力命令を実行しているプロセッサを判定
    するためにその情報を使用する請求項11に記載のコンピュータ・プログラム・
    プロダクツ。
  13. 【請求項13】 第1のコンピュータ可読プログラム・コード手段が、特定
    のプロセッサの命令アドレス・カウント差がいつ1に等くなるかを判定し、特定
    のプロセッサに対する最後の入出力命令が、直接的または間接的に、入出力デバ
    イスのためのポートを示さない限り、入出力命令を実行しているプロセッサとし
    てのその特定のプロセッサの指定を削除する第5のコンピュータ可読プログラム
    ・コード手段を含む請求項12に記載のコンピュータ・プログラム・プロダクツ
  14. 【請求項14】 所定の数が2である請求項11に記載のコンピュータ・プ
    ログラム・プロダクツ。
  15. 【請求項15】 各々がプロセッサと入出力デバイスの間でデータまたはコ
    マンドを転送するための入出力命令を実行することができる少なくとも第1及び
    第2のプロセッサ、 プロセッサのうちの1つからの選択された入出力命令を受けると、複数のプロ
    セッサへ割込みを実行し、かつ入出力デバイスとプロセッサのうちの1つとの間
    で、データまたはコマンドを転送する入出力ハードウェア及びトラップ・ハード
    ウェア、及び、 複数のプロセッサの各々に対して、そのプロセッサによって最後に実行された
    入出力命令の命令アドレスとそのプロセッサの現在の命令アドレスとの間の命令
    アドレス・カウント差が、所定の数以下であるかどうかの指定を行う第1のデバ
    イス、及び、選択された入出力命令に応答して、入出力デバイスとその1つのプ
    ロセッサの間でデータまたはコマンドを転送するために、どのプロセッサを入出
    力デバイスに接続するかを判定するためにその情報を使用し、その接続を行う第
    1のデバイス を含むマルチプロセッサ・システム。
  16. 【請求項16】 さらに、特定のプロセッサに対する最後の入出力命令が入
    出力デバイスのためのポートを直接的または間接的に指定しない限り、特定のプ
    ロセッサの命令アドレス・カウント差が1に等しいとき、所定の数以下の命令カ
    ウント差を有するプロセッサの指定を削除するためのロジックを含む請求項15
    に記載のマルチプロセッサ・システム。
  17. 【請求項17】 マルチプロセッサ環境において入出力を制御する方法であ
    って、 割込み要求する入出力命令が、プロセッサと入出力デバイスの間でデータまた
    はコマンドを転送するために、マルチプロセッサ環境のプロセッサのうちの1つ
    によって実行されているかどうか判定するステップと、 そのような入出力命令が検出された場合、割込みを実行するステップと、 マルチプロセッサ環境において複数のプロセッサの各々に対して、そのプロセ
    ッサによって最後に実行された入出力命令の命令アドレスとそのプロセッサの現
    在の命令アドレス間の命令アドレス・カウント差が、所定の数以下であるかどう
    かの指定を行うステップと、 選択された入出力命令に応答して、入出力デバイスとそのプロセッサの間でデ
    ータまたはコマンドを転送するために、どのプロセッサを入出力デバイスに接続
    するかを判定するためにその情報を使用し、その接続を行うステップ を含む方法。
  18. 【請求項18】 指定を行うステップが、特定のプロセッサの命令アドレス
    ・カウント差が1に等しいとき、特定のプロセッサに対する最後の入出力命令が
    、直接的または間接的に、入出力デバイスのためのポートを示さない限り、所定
    の数以下の命令カウント差を有するというプロセッサの指定を削除するステップ
    を含む請求項17に記載の方法。
  19. 【請求項19】 マルチプロセッサ環境の適当なプロセッサと入出力デバイ
    スの間の入出力機能を、入出力割込みの間に行うコンピュータ可読プログラム・
    コード手段が書き込まれているコンピュータ使用可能媒体を含み、コンピュータ
    ・プログラム・プロダクツのコンピュータ可読プログラム・コード手段は、 マルチプロセッサ環境の複数のプロセッサの各々に対して、ハードウェアに、
    そのプロセッサによって最後に実行された入出力命令の命令アドレスとそのプロ
    セッサの現在の命令アドレス間の命令アドレス・カウント差が、所定の数以下で
    あるかどうか指定させるための第1のコンピュータ可読プログラム・コード手段
    、及び ハードウェアに、入出力デバイスとそのプロセッサの間でデータまたはコマン
    ドを転送するために、どのプロセッサを入出力デバイスに接続するかを判定する
    ためにこの指定を使用させ、その接続を行う第2のコンピュータ可読プログラム
    ・コード手段 を含むコンピュータ・プログラム・プロダクツ。
  20. 【請求項20】 第1のコンピュータ可読プログラム・コード手段は、特定
    のプロセッサの命令アドレス・カウント差が1に等しくなるときを判定し、かつ
    特定のプロセッサに対する最後の入出力命令が、直接的または間接的に、入出力
    デバイスのためのポートを示さない限り、その特定のプロセッサの入出力命令を
    実行しているプロセッサとしての指定を削除する第3のコンピュータ可読プログ
    ラム・コード手段を含む請求項19に記載のコンピュータ・プログラム・プロダ
    クツ。
  21. 【請求項21】 マルチプロセッサ環境における入出力命令によって開始さ
    れたソフトウェア・システム管理割込み(SMI)をサービスする方法であって
    、 ソフトウェアSMIの発生を検出するステップと、 前記マルチプロセッサ環境のどのプロセッサがそのプロセッサがソフトウェア
    SMIを開始した旨を示す状態保存情報を有しているかを判定するステップと、 SMIハンドラとソフトウェアSMIを開始したと判定された前記プロセッサ
    との間で情報を転送するステップと を含む方法。
  22. 【請求項22】 前記プロセッサ判定ステップが、前記マルチプロセッサ環
    境のプロセッサがBIOSソフトウェアSMIコール・ルーチン内でソフトウェ
    アSMIを開始する入出力コール命令に直ちに続く命令が存在するオフセット位
    置に等しい割込み状態保存エリアにEIP’値を有するかを判定するステップを
    含む請求項21に記載の方法。
  23. 【請求項23】 前記プロセッサ判定ステップが、プロセッサ入出力状態保
    存エリア内のEIP値がBIOSソフトウェアSMIコール・ルーチン内でソフ
    トウェアSMIを開始する入出力コール命令が存在するオフセット位置に等しい
    かを判定するステップを含む請求項21に記載の方法。
  24. 【請求項24】 前記プロセッサ判定ステップが、前記プロセッサ入出力状
    態保存内のECX、ESI、EDI値が割込み状態保存エリア内のECX、ES
    I、EDI値に等しいかを判定するステップを含む請求項23に記載の方法。
  25. 【請求項25】 前記プロセッサ判定ステップが、プロセッサ入出力状態保
    存エリア内のEIP値がBIOSソフトウェアSMIコール・ルーチン内でソフ
    トウェアSMIを開始する入出力コール命令が存在するオフセット位置に等しい
    かを判定するステップを含む請求項22に記載の方法。
  26. 【請求項26】 マルチプロセッサ環境における入出力命令によって開始さ
    れるソフトウェア・システム管理割込み(SMI)をサービスする方法であって
    、 ソフトウェアSMIの発生を検出するステップと、 前記マルチプロセッサ環境におけるプロセッサを、以下の試験の双方が順序を
    問わず真である場合に、ソフトウェアSMIを開始したと指定するステップであ
    って、1)前記マルチプロセッサ環境のプロセッサは、BIOSソフトウェアS
    MIコール・ルーチン内でソフトウェアSMIを開始する入出力コール命令に直
    ちに続く命令が存在するオフセット位置に等しい割込み状態保存エリアにElP
    ’値を有し、2)プロセッサの入出力状態保存エリアのElP値が、前記BIO
    SソフトウェアSMIコール・ルーチン内でソフトウェアSMIを開始する入出
    力コール命令が存在するオフセット位置に等しい、指定するステップと、 前記SMIハンドラと前記指定されたプロセッサ間で情報を転送するステップ
    と を含む方法。
  27. 【請求項27】 各々がBIOSソフトウェアSMIコール・ルーチン内で
    特定の入出力コール命令を生成することによって、ソフトウェアによって生成さ
    れたシステム管理割込み(SMI)を開始することができる少なくとも第1及び
    第2のプロセッサ、 システム管理割込みを処理するSMIハンドラ、 ソフトウェアSMIの発生を検出する第1のロジック、 前記第1のロジックがソフトウェアSMIの発生を検出した後に、前記マルチ
    プロセッサ環境のどのプロセッサが、そのプロセッサがソフトウェアSMIを開
    始したことを示す状態保存情報を有しているかを判定する第2のロジック、及び
    、 前記SMIハンドラ及びソフトウェアSMIを開始したと判定された前記プロ
    セッサ間で情報を転送するための、第3のロジック を備えるマルチプロセッサ・システム。
  28. 【請求項28】 前記第2のロジックが、前記マルチプロセッサ環境におけ
    るプロセッサが、BIOSソフトウェアSMIコール・ルーチン内でソフトウェ
    アSMIを開始する入出力コール命令に直ちに続く命令が存在するオフセット位
    置に等しい割込み保存エリア内に、EIP’値を有するかを判定する第3のロジ
    ックを含む請求項27に記載のマルチプロセッサ・システム。
  29. 【請求項29】 前記第2のロジックが、プロセッサ入出力状態保存エリア
    内のELP値が、前記BIOSソフトウェアSMIコール・ルーチン内でソフト
    ウェアSMIを開始する入出力コール命令が存在するオフセット位置に等しいか
    を判定する第4のロジックを含む請求項27に記載のマルチプロセッサ・システ
    ム。
  30. 【請求項30】 前記第2のロジックが、プロセッサ入出力状態保存エリア
    内のEIP値が、前記BIOSソフトウェアSMIコール・ルーチン内でソフト
    ウェアSMIを開始する入出力コール命令が存在するオフセット位置に等しいか
    を判定する第4のロジックを含む請求項28に記載のマルチプロセッサ・システ
    ム。
  31. 【請求項31】 マルチプロセッサ環境におけるどのプロセッサがソフトウ
    ェア・システム管理割込み(SMI)を開始したかを判定するコンピュータ可読
    プログラム・コード手段が書き込まれており、SMIハンドラとそのプロセッサ
    の間で通信させるコンピュータ使用可能媒体を含み、そのコンピュータ・プログ
    ラム・プロダクツ内のコンピュータ可読プログラム・コード手段は、 ソフトウェアSMIの発生を検出する第1のコンピュータ可読プログラム・コ
    ード手段、 前記第1のコンピュータ可読プログラム・コード手段がソフトウェアSMIの
    発生を検出した後に、前記マルチプロセッサ環境におけるどのプロセッサが、そ
    のプロセッサをソフトウェアSMIを開始したと指定する状態保存情報を有して
    いるかの指定をする第2のコンピュータ可読プログラム・コード手段、 前記SMIハンドラとソフトウェアSMIを開始したと判定された前記プロセ
    ッサの間で、情報を転送する第3のコンピュータ可読プログラム・コード手段を
    含むコンピュータ・プログラム・プロダクツ。
  32. 【請求項32】 前記第2のコンピュータ可読プログラム・コード手段が、
    BIOSソフトウェアSMIコール・ルーチン内でソフトウェアSMIを開始す
    る入出力コール命令に直ちに続く命令が存在するオフセット位置に等しい割込み
    状態保存エリア内に、前記マルチプロセッサ環境におけるプロセッサがEIP’
    値を有しているかを判定するためのコードを含む請求項31に記載のコンピュー
    タ・プログラム・プロダクツ。
  33. 【請求項33】 前記第2のコンピュータ可読プログラム・コード手段が、
    プロセッサ入出力状態保存エリア内のEIP値が、BIOSソフトウェアSMI
    コール・ルーチン内でソフトウェアSMIを開始する入出力コール命令が存在す
    るオフセット位置に等しいかを判定するためのコードを含む請求項31に記載の
    コンピュータ・プログラム・プロダクツ。
  34. 【請求項34】 マルチプロセッサ環境におけるどのプロセッサがソフトウ
    ェア・システム管理割込み(SMI)を開始したかを判定するコンピュータ可読
    プログラム・コード手段が書き込まれており、SMIハンドラとそのプロセッサ
    の間で通信させるコンピュータ使用可能媒体を含み、そのコンピュータ・プログ
    ラム・プロダクツ内のコンピュータ可読プログラム・コード手段は、 ソフトウェアSMIの発生を検出する第1のコンピュータ可読プログラム・コ
    ード手段、 前記第1のコンピュータ可読プログラム・コード手段がソフトウェアSMIの
    発生を検出した後に、前記マルチプロセッサ環境におけるプロセッサを、以下の
    試験の双方が順序を問わず真である場合に、ソフトウェアSMIを開始したとし
    て指定し、かつ 1)前記マルチプロセッサ環境のプロセッサは、BIOSソフトウェアSMI
    コール・ルーチン内でソフトウェアSMIを開始する入出力コール命令を直ちに
    続く命令が存在するオフセット位置に等しい割込み状態保存エリアにElP’値
    を有すること、及び、 2)プロセッサの入出力状態保存エリアのそのElP値が、BIOSソフトウ
    ェアSMIコール・ルーチンのソフトウェアSMIを開始する入出力コール命令
    が存在するオフセット位置に等しいこと、 SMIハンドラと前記指定されたプロセッサ間で情報を転送する 第2のコンピュータ可読プログラム・コード手段 を有するコンピュータ・プログラム・プロダクツ。
JP2000575034A 1998-10-01 1999-10-01 マルチプロセッサ環境において正しいプロセッサのための入出力命令をエミュレートし、ソフトウェアsmiをサービスするための装置及び方法 Pending JP2002526860A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/164,347 US6571206B1 (en) 1998-01-15 1998-10-01 Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment
US09/164,347 1998-10-01
PCT/US1999/020899 WO2000020977A1 (en) 1998-10-01 1999-10-01 Apparatus and method for emulating an i/o instruction for the correct processor and for servicing software smi's in a multi-processor environment

Publications (1)

Publication Number Publication Date
JP2002526860A true JP2002526860A (ja) 2002-08-20

Family

ID=22594084

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000575034A Pending JP2002526860A (ja) 1998-10-01 1999-10-01 マルチプロセッサ環境において正しいプロセッサのための入出力命令をエミュレートし、ソフトウェアsmiをサービスするための装置及び方法

Country Status (5)

Country Link
US (1) US6571206B1 (ja)
JP (1) JP2002526860A (ja)
AU (1) AU6386999A (ja)
TW (1) TW470885B (ja)
WO (1) WO2000020977A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005013799A (ja) * 2003-06-24 2005-01-20 Ishigaki Co Ltd 懸濁物質の凝集処理方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6715074B1 (en) * 1999-07-27 2004-03-30 Hewlett-Packard Development Company, L.P. Virus resistant and hardware independent method of flashing system bios
US6978233B1 (en) * 2000-03-03 2005-12-20 Unisys Corporation Method for emulating multi-processor environment
US6697901B1 (en) * 2000-10-24 2004-02-24 Oracle International Corporation Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
US6968410B2 (en) * 2001-02-28 2005-11-22 Intel Corporation Multi-threaded processing of system management interrupts
TW498213B (en) * 2001-04-18 2002-08-11 Via Tech Inc Method and chipset for supporting interrupts of system management mode in multiple-CPU system
JP4005026B2 (ja) 2001-12-13 2007-11-07 株式会社ソニー・コンピュータエンタテインメント プログラムのセキュアな配布方法及び装置
WO2003055132A1 (en) 2001-12-21 2003-07-03 Sony Computer Entertainment Inc. Methods and apparatus for secure distribution of program content
US7243353B2 (en) * 2002-06-28 2007-07-10 Intel Corporation Method and apparatus for making and using a flexible hardware interface
US7698689B2 (en) 2002-08-13 2010-04-13 Phoenix Technologies Ltd. Method for meeting SMI duration limits by time slicing SMI handlers
US20050066097A1 (en) * 2003-09-04 2005-03-24 Matsushita Electric Industrial Co., Ltd. Resource management apparatus
TW200401188A (en) * 2003-09-16 2004-01-16 Via Tech Inc Debug device and method thereof
US7340547B1 (en) * 2003-12-02 2008-03-04 Nvidia Corporation Servicing of multiple interrupts using a deferred procedure call in a multiprocessor system
US20050154573A1 (en) * 2004-01-08 2005-07-14 Maly John W. Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design
US7197433B2 (en) * 2004-04-09 2007-03-27 Hewlett-Packard Development Company, L.P. Workload placement among data centers based on thermal efficiency
CN1906576B (zh) 2004-09-20 2010-05-12 索尼计算机娱乐公司 分布软件应用的方法与设备
US20060282589A1 (en) * 2005-06-08 2006-12-14 Dell Products L.P. System and method of processing system management interrupts (SMI) in a multi-processor environment
US7464211B2 (en) * 2006-09-14 2008-12-09 International Business Machines Corporation Method of detecting and recovering a lost system management interrupt (SMI) in a multiprocessor (MP) environment
US7721034B2 (en) * 2006-09-29 2010-05-18 Dell Products L.P. System and method for managing system management interrupts in a multiprocessor computer system
TW201025015A (en) * 2008-12-30 2010-07-01 Wistron Corp Method for safely removing an external image processing device for a computer system and related computer system
US8578138B2 (en) 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
DE102010011583B4 (de) * 2010-03-16 2011-12-22 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Umsetzen von Befehlen mit Basisregister-relativer Adressierung bei einer Emulation
CN108717387B (zh) * 2012-11-09 2021-09-07 相干逻辑公司 对于多处理器系统的实时分析和控制
TW201533576A (zh) * 2013-11-20 2015-09-01 Insyde Software Corp 在多核心系統上運用系統管理中斷(smi)之系統效能增強
US11188640B1 (en) * 2018-08-23 2021-11-30 Advanced Micro Devices, Inc. Platform firmware isolation

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62160561A (ja) * 1986-01-10 1987-07-16 Hitachi Ltd プロセツサ間通信方式
JPH03171250A (ja) * 1989-05-17 1991-07-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH0628321A (ja) * 1992-04-22 1994-02-04 Toshiba Corp マルチプロセッサシステム
JPH07175665A (ja) * 1993-12-17 1995-07-14 Fujitsu Ltd 入出力割込制御回路
JPH07200496A (ja) * 1993-12-28 1995-08-04 Fujitsu Ltd プロセッサ割当て方式
WO1997013202A1 (en) * 1995-10-06 1997-04-10 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (smm) in a processor
JPH10143387A (ja) * 1996-10-29 1998-05-29 Compaq Computer Corp 障害診断機能付きのコンピュータ・システム
JPH10187589A (ja) * 1996-10-18 1998-07-21 Compaq Computer Corp キーボード用ホットプラグ

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950008837B1 (ko) 1990-03-09 1995-08-08 후지쓰 가부시끼가이샤 멀티 프로세서 시스템용 제어시스템
JPH05216712A (ja) 1991-10-23 1993-08-27 Internatl Business Mach Corp <Ibm> コンピュータシステムおよびこのコンピュータシステム上で内観的タスクを遂行する方法並びにi/oプロセッサアセンブリ
US5721931A (en) * 1995-03-21 1998-02-24 Advanced Micro Devices Multiprocessing system employing an adaptive interrupt mapping mechanism and method
US5796984A (en) 1996-01-26 1998-08-18 Dell Usa, L.P. Operating system independent apparatus and method for eliminating peripheral device functions
US6003129A (en) * 1996-08-19 1999-12-14 Samsung Electronics Company, Ltd. System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture
US5889978A (en) * 1997-04-18 1999-03-30 Intel Corporation Emulation of interrupt control mechanism in a multiprocessor system
US6321279B1 (en) * 1998-09-14 2001-11-20 Compaq Computer Corporation System for implementing intelligent I/O processing in a multi-processor system by redirecting I/O messages to a target central processor selected from the multi-processor system
US6272618B1 (en) * 1999-03-25 2001-08-07 Dell Usa, L.P. System and method for handling interrupts in a multi-processor computer

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62160561A (ja) * 1986-01-10 1987-07-16 Hitachi Ltd プロセツサ間通信方式
JPH03171250A (ja) * 1989-05-17 1991-07-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH0628321A (ja) * 1992-04-22 1994-02-04 Toshiba Corp マルチプロセッサシステム
JPH07175665A (ja) * 1993-12-17 1995-07-14 Fujitsu Ltd 入出力割込制御回路
JPH07200496A (ja) * 1993-12-28 1995-08-04 Fujitsu Ltd プロセッサ割当て方式
WO1997013202A1 (en) * 1995-10-06 1997-04-10 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (smm) in a processor
JP2000506636A (ja) * 1995-10-06 2000-05-30 アドバンスト・マイクロ・デバイシズ・インコーポレイテッド プロセッサにおけるシステム管理モード(smm)のフレキシブルな実現
JPH10187589A (ja) * 1996-10-18 1998-07-21 Compaq Computer Corp キーボード用ホットプラグ
JPH10143387A (ja) * 1996-10-29 1998-05-29 Compaq Computer Corp 障害診断機能付きのコンピュータ・システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005013799A (ja) * 2003-06-24 2005-01-20 Ishigaki Co Ltd 懸濁物質の凝集処理方法

Also Published As

Publication number Publication date
WO2000020977A9 (en) 2000-08-24
AU6386999A (en) 2000-04-26
TW470885B (en) 2002-01-01
US6571206B1 (en) 2003-05-27
WO2000020977A1 (en) 2000-04-13

Similar Documents

Publication Publication Date Title
JP2002526860A (ja) マルチプロセッサ環境において正しいプロセッサのための入出力命令をエミュレートし、ソフトウェアsmiをサービスするための装置及び方法
US5761458A (en) Intelligent bus bridge for input/output subsystems in a computer system
US9052916B2 (en) System ROM with an embedded disk image
US6446153B2 (en) Shared embedded microcontroller interface
US6629157B1 (en) System and method for virtualizing the configuration space of PCI devices in a processing system
US6496945B2 (en) Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory
US6601166B1 (en) Mechanism for booting a computer through a network
US8255678B2 (en) Method of booting a processing device
US6711642B2 (en) Method and chipset for system management mode interrupt of multi-processor supporting system
EP0464615A2 (en) Microcomputer equipped with DMA controller
US6601165B2 (en) Apparatus and method for implementing fault resilient booting in a multi-processor system by using a flush command to control resetting of the processors and isolating failed processors
US7103743B2 (en) System and method of accessing vital product data
US20050246478A1 (en) Information processing apparatus and a method and a program of loading a device driver
US6304984B1 (en) Method and system for injecting errors to a device within a computer system
EP0437550B1 (en) Information processing system emulation apparatus and method
US7231512B2 (en) Technique for reconstituting a pre-boot firmware environment after launch of an operating system
US6963970B2 (en) System and method for executing a fast reset of a computer system
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
JPH06242987A (ja) コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置
US5003468A (en) Guest machine execution control system for virutal machine system
US6907521B2 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
US6757770B1 (en) Computer system supporting a universal serial bus (USB) interface and method for controlling a USB corresponding I/O device
US5898859A (en) Address shadow feature and methods of using the same
JPH11502341A (ja) プロセッサ間のデータ伝送用のリンクプロトコル
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060922

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091202

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100413