JPH07334372A - エミュレートシステム及びエミュレート方法 - Google Patents
エミュレートシステム及びエミュレート方法Info
- Publication number
- JPH07334372A JPH07334372A JP6282539A JP28253994A JPH07334372A JP H07334372 A JPH07334372 A JP H07334372A JP 6282539 A JP6282539 A JP 6282539A JP 28253994 A JP28253994 A JP 28253994A JP H07334372 A JPH07334372 A JP H07334372A
- Authority
- JP
- Japan
- Prior art keywords
- factor
- control means
- instruction
- processing
- emulation
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/105—Program control for peripheral devices where the program performs an input/output emulation function
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】
【目的】 第1のアーキテクチャ用に開発されたデバイ
ス制御手段を第2のアーキテクチャのハードウェアの構
成部品として使用し、かつ高速なエミュレート動作を実
現できるエミュレートシステムを提供すること。 【構成】 第1のアーキテクチャ用に設計されたメモリ
コントローラ11は受け取れない第2のアーキテクチャ
に準拠したI/O命令を、サブコントローラ25内のI
/O受付手段30によって受け取り、I/O受付手段3
0がその内容に従ってSMIステータス28に要因をセ
ットすると同時にSMI発生手段27がSMI信号31
によってCPU1にSMIを通知する。CPU1はSM
M内でI/O命令を代行する。このようにハードウェア
によるエミュレート動作を行うので、アプリケーション
プログラム、OSに対する第2のアーキテクチャの互換
性を確保できる上、動作も高速になる。
ス制御手段を第2のアーキテクチャのハードウェアの構
成部品として使用し、かつ高速なエミュレート動作を実
現できるエミュレートシステムを提供すること。 【構成】 第1のアーキテクチャ用に設計されたメモリ
コントローラ11は受け取れない第2のアーキテクチャ
に準拠したI/O命令を、サブコントローラ25内のI
/O受付手段30によって受け取り、I/O受付手段3
0がその内容に従ってSMIステータス28に要因をセ
ットすると同時にSMI発生手段27がSMI信号31
によってCPU1にSMIを通知する。CPU1はSM
M内でI/O命令を代行する。このようにハードウェア
によるエミュレート動作を行うので、アプリケーション
プログラム、OSに対する第2のアーキテクチャの互換
性を確保できる上、動作も高速になる。
Description
【0001】
【産業上の利用分野】本発明はエミュレートシステム及
びエミュレート方法に関する。
びエミュレート方法に関する。
【0002】
【従来の技術】PC(パーソナルコンピュータ)等のコ
ンピュータシステムにおいては、その用途に応じて数種
類のアーキテクチャを有するハードウェアと、各アーキ
テクチャに対応するソフトウェアが数多く開発された。
ソフトウェア資産が増えてくると、そのソフトウェアの
動作を保証する為、ハードウェアは新デバイス等を採用
して性能を向上させながらも、当初のアーキテクチャを
堅持する必要がある。
ンピュータシステムにおいては、その用途に応じて数種
類のアーキテクチャを有するハードウェアと、各アーキ
テクチャに対応するソフトウェアが数多く開発された。
ソフトウェア資産が増えてくると、そのソフトウェアの
動作を保証する為、ハードウェアは新デバイス等を採用
して性能を向上させながらも、当初のアーキテクチャを
堅持する必要がある。
【0003】ここにハードウェア、ソフトウェアの占め
る市場規模が非常に大きい第1のコンピュータアーキテ
クチャ(例えばIBM社製のパーソナルコンピュータに
使用されるアーキテクチャ)と比較的中規模の第2のコ
ンピュータアーキテクチャ(例えばセイコーエプソン社
製、NEC社製のパーソナルコンピュータに使用される
アーキテクチャ)があったとする。すると、第2のアー
キテクチャに準ずるハードウェア装置、前記ハードウェ
ア装置を構成する要素部品は、ソフトウェアの開発規模
が小さくなり、第1のアーキテクチャに比べて潤沢に供
給されないという市場原理を否定できない。よって第2
のアーキテクチャのコンピュータシステムを開発する場
合、速い段階での要素部品の供給が望めず、これらの要
素部品の多くの部分を自ら開発しなければならないう問
題が生じる。
る市場規模が非常に大きい第1のコンピュータアーキテ
クチャ(例えばIBM社製のパーソナルコンピュータに
使用されるアーキテクチャ)と比較的中規模の第2のコ
ンピュータアーキテクチャ(例えばセイコーエプソン社
製、NEC社製のパーソナルコンピュータに使用される
アーキテクチャ)があったとする。すると、第2のアー
キテクチャに準ずるハードウェア装置、前記ハードウェ
ア装置を構成する要素部品は、ソフトウェアの開発規模
が小さくなり、第1のアーキテクチャに比べて潤沢に供
給されないという市場原理を否定できない。よって第2
のアーキテクチャのコンピュータシステムを開発する場
合、速い段階での要素部品の供給が望めず、これらの要
素部品の多くの部分を自ら開発しなければならないう問
題が生じる。
【0004】図54は従来のハードウェアの構成を示す
図であり、要部となるコントローラ507は標準品を使
用せず、自らの開発に依存する。CPU501およびキ
ャッシュメモリ503はCPUバス505によってコン
トローラ507に接続されている。コントローラ507
は第2のアーキテクチャに対応するよう設計されてお
り、CPU501からのI/O命令を受けてメモリ一括
設定手段513等にハードウェア的な指示を行うI/O
受付手段508、前記キャッシュメモリ503を制御す
るキャッシュコントローラ509、CPUバス505に
よって接続され高速に動作するRAM517を制御する
RAMコントローラ511、PCIバス519とのイン
ターフェースとなるPCIバスインターフェース515
等が内蔵されている。メモリ一括設定手段513は各ア
ドレスに配置されるRAM517、VRAM521、R
OM531に対し、リード、ライト、キャッシュの可否
を設定すると共に、RAM517のメモリマッピングを
行う。
図であり、要部となるコントローラ507は標準品を使
用せず、自らの開発に依存する。CPU501およびキ
ャッシュメモリ503はCPUバス505によってコン
トローラ507に接続されている。コントローラ507
は第2のアーキテクチャに対応するよう設計されてお
り、CPU501からのI/O命令を受けてメモリ一括
設定手段513等にハードウェア的な指示を行うI/O
受付手段508、前記キャッシュメモリ503を制御す
るキャッシュコントローラ509、CPUバス505に
よって接続され高速に動作するRAM517を制御する
RAMコントローラ511、PCIバス519とのイン
ターフェースとなるPCIバスインターフェース515
等が内蔵されている。メモリ一括設定手段513は各ア
ドレスに配置されるRAM517、VRAM521、R
OM531に対し、リード、ライト、キャッシュの可否
を設定すると共に、RAM517のメモリマッピングを
行う。
【0005】PCIバス519は、高速性、汎用性、将
来的な拡張性を備え、業界内で一定の標準化が図られた
32ビット(あるいは64ビット)バスであり、アドレ
スとデータをマルチプレクスしている。PCIバス51
9には高速、大容量データ転送がを要求されるデバイス
であるVRAM521、HDD525が接続される。V
RAM521にはCPU501からの特定のI/O命令
に対してVRAMのマッピングを切り替えるVRAM切
替手段523が備わっている。VRAM521のデータ
は図示しない表示部によって表示される。
来的な拡張性を備え、業界内で一定の標準化が図られた
32ビット(あるいは64ビット)バスであり、アドレ
スとデータをマルチプレクスしている。PCIバス51
9には高速、大容量データ転送がを要求されるデバイス
であるVRAM521、HDD525が接続される。V
RAM521にはCPU501からの特定のI/O命令
に対してVRAMのマッピングを切り替えるVRAM切
替手段523が備わっている。VRAM521のデータ
は図示しない表示部によって表示される。
【0006】PCIバス519はブリッジ回路527を
介して、比較的低速で従来のデバイスとの互換性を持つ
従来バス529と接続される。そして、従来バス529
にはBIOS等を格納するROM531、FDD535
に接続される。また、従来バス529には、キーボード
コントローラ536、シリアルコントローラ538を介
して、各々キーボード537、RS232Cインターフ
ェイス539も接続される。更に、割り込みコントロー
ラ540も接続される。なお、ROM切替手段533は
CPU501からのI/O命令に従ってROMのマッピ
ングを変更する機能を有する。また、キーボード537
内には、キーボード側のコントローラであるキーボード
ユニットコントローラ541が内蔵されている。
介して、比較的低速で従来のデバイスとの互換性を持つ
従来バス529と接続される。そして、従来バス529
にはBIOS等を格納するROM531、FDD535
に接続される。また、従来バス529には、キーボード
コントローラ536、シリアルコントローラ538を介
して、各々キーボード537、RS232Cインターフ
ェイス539も接続される。更に、割り込みコントロー
ラ540も接続される。なお、ROM切替手段533は
CPU501からのI/O命令に従ってROMのマッピ
ングを変更する機能を有する。また、キーボード537
内には、キーボード側のコントローラであるキーボード
ユニットコントローラ541が内蔵されている。
【0007】図55は、図54で示したハードウェアに
おいて、第1の表示モード(標準解像度)と第2の表示
モード(高解像度)との2種類の表示モードを切り替え
る動作を示したフローチャートである。S100で、C
PU501からのI/O命令がI/Oアドレス300H
番地に対して出力されると、S102で、前記命令をI
/O受付手段508が受け取り、メモリ一括設定手段5
13によって、RAM517のマッピングの変更、各ア
ドレスに対するリード、ライト、キャッシュの設定を行
う。またI/O命令はPCIバス519、従来バス52
9を通してVRAM切替手段523、ROM切替手段5
33にも伝えられ、VRAMの切り替え、ROMの切り
替えを行う。尚、S102はすべてハードウェアロジッ
クによって行われる。このように「I/Oアドレス30
0H=定められた表示モードを切り替えるためのデータ
セット」というような第2のアーキテクチャ上の規約を
順守することにより互換性を維持している。
おいて、第1の表示モード(標準解像度)と第2の表示
モード(高解像度)との2種類の表示モードを切り替え
る動作を示したフローチャートである。S100で、C
PU501からのI/O命令がI/Oアドレス300H
番地に対して出力されると、S102で、前記命令をI
/O受付手段508が受け取り、メモリ一括設定手段5
13によって、RAM517のマッピングの変更、各ア
ドレスに対するリード、ライト、キャッシュの設定を行
う。またI/O命令はPCIバス519、従来バス52
9を通してVRAM切替手段523、ROM切替手段5
33にも伝えられ、VRAMの切り替え、ROMの切り
替えを行う。尚、S102はすべてハードウェアロジッ
クによって行われる。このように「I/Oアドレス30
0H=定められた表示モードを切り替えるためのデータ
セット」というような第2のアーキテクチャ上の規約を
順守することにより互換性を維持している。
【0008】
【発明が解決しようとする課題】さて、CPU、バスシ
ステム、メモリシステム等のデバイスの進歩に伴い、R
AMコントローラ511、キャッシュコントローラ50
9、PCIバスインターフェース515等も最新のデバ
イスに合わせて設計変更する必要が生じる。しかし、こ
のような場合に、第2のアーキテクチャにしたがったコ
ントローラ507をその都度設計するには開発日程、工
数が非常に多くなるという問題があった。一方、第1の
アーキテクチャに対応していて、最新のCPU、メモリ
システムを制御するデバイスは比較的早期に開発され、
潤沢に入手できる。従って、第1のアーキテクチャ用に
開発された制御デバイスを利用できれば、このような開
発日程、工数の問題は解決できるのではあるが、I/
O、メモリマップ等の互換性の問題から容易には利用す
ることができないという問題があった。
ステム、メモリシステム等のデバイスの進歩に伴い、R
AMコントローラ511、キャッシュコントローラ50
9、PCIバスインターフェース515等も最新のデバ
イスに合わせて設計変更する必要が生じる。しかし、こ
のような場合に、第2のアーキテクチャにしたがったコ
ントローラ507をその都度設計するには開発日程、工
数が非常に多くなるという問題があった。一方、第1の
アーキテクチャに対応していて、最新のCPU、メモリ
システムを制御するデバイスは比較的早期に開発され、
潤沢に入手できる。従って、第1のアーキテクチャ用に
開発された制御デバイスを利用できれば、このような開
発日程、工数の問題は解決できるのではあるが、I/
O、メモリマップ等の互換性の問題から容易には利用す
ることができないという問題があった。
【0009】このようなI/O、メモリマップ等の互換
性の問題を比較的容易に解決する方法として、CPU
と、第1のアーキテキチャ用に開発された制御デバイス
との間にアドレス変換回路とI/O命令変換回路を挿入
する方法がある。しかし、回路を高速化する必要があり
設計が困難であるとともに、CPUから制御デバイスに
供給される信号の遅延をまねき、結果としてシステムの
性能を落とさざるをえなくなる欠点がある。特に、上記
のコントローラ507は、キャッシュメモリについても
制御しており、このコントローラ507とCPU501
の間にアドレス変換回路等を挿入すると、キャッシュメ
モリへのアクセスも1クロック遅れることになり、シス
テムの性能が大幅に低下する。
性の問題を比較的容易に解決する方法として、CPU
と、第1のアーキテキチャ用に開発された制御デバイス
との間にアドレス変換回路とI/O命令変換回路を挿入
する方法がある。しかし、回路を高速化する必要があり
設計が困難であるとともに、CPUから制御デバイスに
供給される信号の遅延をまねき、結果としてシステムの
性能を落とさざるをえなくなる欠点がある。特に、上記
のコントローラ507は、キャッシュメモリについても
制御しており、このコントローラ507とCPU501
の間にアドレス変換回路等を挿入すると、キャッシュメ
モリへのアクセスも1クロック遅れることになり、シス
テムの性能が大幅に低下する。
【0010】そこで、本発明者は、上記課題を解決する
ために、第2のアーキテクチャの(以下、必要に応じて
単に”第2の”と記す)コンピュータシステムの中に第
1のアーキテクチャの(以下、必要に応じて単に”第1
の”と記す)デバイス制御手段を混在させることを目的
とした高速で互換性の高いエミュレートシステムに関し
て開発を行っている。
ために、第2のアーキテクチャの(以下、必要に応じて
単に”第2の”と記す)コンピュータシステムの中に第
1のアーキテクチャの(以下、必要に応じて単に”第1
の”と記す)デバイス制御手段を混在させることを目的
とした高速で互換性の高いエミュレートシステムに関し
て開発を行っている。
【0011】例えば、従来より、第2のコンピュータシ
ステム上で、第1のアーキテクチャのアプリケーション
プログラムを動作させるというようなエミュレートシス
テムについては知られている。しかし、このエミュレー
トシステムが動作するコンピュータシステムでは、構成
部品となるデバイス制御手段は全て第2のアーキテクチ
ャに準じており、第1、第2のデバイス制御手段が混在
するものではない。従って、従来の、単に第1のアーキ
テクチャのプログラムを単一のアーキテクチャのコンピ
ュータシステム上で動作させるというようなエミュレー
トシステムでは、本発明の目的を達成できない。
ステム上で、第1のアーキテクチャのアプリケーション
プログラムを動作させるというようなエミュレートシス
テムについては知られている。しかし、このエミュレー
トシステムが動作するコンピュータシステムでは、構成
部品となるデバイス制御手段は全て第2のアーキテクチ
ャに準じており、第1、第2のデバイス制御手段が混在
するものではない。従って、従来の、単に第1のアーキ
テクチャのプログラムを単一のアーキテクチャのコンピ
ュータシステム上で動作させるというようなエミュレー
トシステムでは、本発明の目的を達成できない。
【0012】また、上記した従来のエミュレートシステ
ム(第2のコンピュータシステム上で第1のアプリケー
ションプログラムを動作させるというようなエミュレー
トシステム)の多くは、OS(オペレーティングシステ
ム)の段階で、アプリケーションプログラムからの命令
を全て第2のアーキテクチャの命令に書き換えて実行さ
せていた。しかし、この手法には、専用のOSのみしか
使用できない上、ソフトウェアによるエミュレートであ
るので処理が非常に遅くなるという問題がある。
ム(第2のコンピュータシステム上で第1のアプリケー
ションプログラムを動作させるというようなエミュレー
トシステム)の多くは、OS(オペレーティングシステ
ム)の段階で、アプリケーションプログラムからの命令
を全て第2のアーキテクチャの命令に書き換えて実行さ
せていた。しかし、この手法には、専用のOSのみしか
使用できない上、ソフトウェアによるエミュレートであ
るので処理が非常に遅くなるという問題がある。
【0013】また、上記した従来のエミュレートシステ
ムとして、例えば、CPUにハードウェア割り込みをか
けてエミュレート処理を行う手法も知られている。しか
し、この手法では、全て、NMI(ノンマスカブルイン
タラプト)と呼ばれる割り込みを利用していた。しか
し、NMIでは、ジャンプアドレス(割り込みに対応し
た処理を行うルーチンが格納されたアドレス)が、アプ
リケーションプログラム等で容易に書き換えられるアド
レス領域に格納されており、アプリケーションプログラ
ム等によりこのアドレス領域が書き換えられるとエミュ
レート処理が不可能になるという大きな問題点がある。
また、NMIでは、割り込みを受け付けた時点の制御モ
ード(リアルモード、プロテクトモード、仮想86モー
ド)で割り込み処理が開始されるため、割り込み処理の
開始時に制御モードを最適なものに設定しなければなら
なく、処理が複雑になるという問題点がある。更に、N
MIでは、戻りアドレスがスタック領域にスタックされ
るが、このスタック領域は他のプログラムにより使用さ
れている場合がある。従って、スタック領域に余裕が無
い場合にNMIが発生すると、プログラムデータ領域に
格納されているデータが破壊されるという問題がある。
また、スタック領域を設定するためのスタックポインタ
が、アプリケーションプログラムにより誤った値に書き
換えられる等の問題もある。
ムとして、例えば、CPUにハードウェア割り込みをか
けてエミュレート処理を行う手法も知られている。しか
し、この手法では、全て、NMI(ノンマスカブルイン
タラプト)と呼ばれる割り込みを利用していた。しか
し、NMIでは、ジャンプアドレス(割り込みに対応し
た処理を行うルーチンが格納されたアドレス)が、アプ
リケーションプログラム等で容易に書き換えられるアド
レス領域に格納されており、アプリケーションプログラ
ム等によりこのアドレス領域が書き換えられるとエミュ
レート処理が不可能になるという大きな問題点がある。
また、NMIでは、割り込みを受け付けた時点の制御モ
ード(リアルモード、プロテクトモード、仮想86モー
ド)で割り込み処理が開始されるため、割り込み処理の
開始時に制御モードを最適なものに設定しなければなら
なく、処理が複雑になるという問題点がある。更に、N
MIでは、戻りアドレスがスタック領域にスタックされ
るが、このスタック領域は他のプログラムにより使用さ
れている場合がある。従って、スタック領域に余裕が無
い場合にNMIが発生すると、プログラムデータ領域に
格納されているデータが破壊されるという問題がある。
また、スタック領域を設定するためのスタックポインタ
が、アプリケーションプログラムにより誤った値に書き
換えられる等の問題もある。
【0014】また、割り込みによりI/O等についての
エミュレート処理を行った場合には、このI/Oエミュ
レート処理と、電源断処理、リセットスイッチ処理、C
PUの動作スピード切り替え処理、表示切替処理等のシ
ステムの動作環境の変化に伴う処理との間の共存の問題
も生じる。例えば、電源断処理、リセット処理は、これ
をI/Oエミュレート処理に優先して処理しなければ致
命的なシステムエラーにつながる可能性がある。従っ
て、これらの処理の間に如何にして優先順位を設定する
か、そのための何らかの手法が必要となるという課題が
ある。
エミュレート処理を行った場合には、このI/Oエミュ
レート処理と、電源断処理、リセットスイッチ処理、C
PUの動作スピード切り替え処理、表示切替処理等のシ
ステムの動作環境の変化に伴う処理との間の共存の問題
も生じる。例えば、電源断処理、リセット処理は、これ
をI/Oエミュレート処理に優先して処理しなければ致
命的なシステムエラーにつながる可能性がある。従っ
て、これらの処理の間に如何にして優先順位を設定する
か、そのための何らかの手法が必要となるという課題が
ある。
【0015】また、例えば、電源スイッチ、リセットス
イッチ、動作スピード切替スイッチ、表示切替スイッチ
等の外部スイッチの切替については、第1のデバイス制
御手段においてはサポートしていない場合がある。即
ち、図54のコントローラ54ではサポートされていた
が、第1のデバイス制御手段ではサポートされていない
外部入力が存在する。従って、第2のコンピュータシス
テムに第1のデバイス制御手段を混在させた場合には、
これらの外部入力を如何にして検出し、検出後、その検
出に対応した処理を如何にして行うか、あるいは、第1
のデバイス制御手段の機能をどのように用いるかが課題
となる。
イッチ、動作スピード切替スイッチ、表示切替スイッチ
等の外部スイッチの切替については、第1のデバイス制
御手段においてはサポートしていない場合がある。即
ち、図54のコントローラ54ではサポートされていた
が、第1のデバイス制御手段ではサポートされていない
外部入力が存在する。従って、第2のコンピュータシス
テムに第1のデバイス制御手段を混在させた場合には、
これらの外部入力を如何にして検出し、検出後、その検
出に対応した処理を如何にして行うか、あるいは、第1
のデバイス制御手段の機能をどのように用いるかが課題
となる。
【0016】これらの課題は、従来の、単に第2のコン
ピュータシステム上で第1のプログラムを動作させるこ
とを目的とするエミュレートシステムには存在しなかっ
た課題である。
ピュータシステム上で第1のプログラムを動作させるこ
とを目的とするエミュレートシステムには存在しなかっ
た課題である。
【0017】更に、エミュレート処理を行う場合には、
システムの高速性をどのように担保するかが問題であ
り、互換性を維持しながらもこの高速性をどのようにし
て維持するかについても重要な技術的課題となる。
システムの高速性をどのように担保するかが問題であ
り、互換性を維持しながらもこの高速性をどのようにし
て維持するかについても重要な技術的課題となる。
【0018】本発明は、以上の課題を解決すべくなされ
たものであり、その目的とするところは、第1のアーキ
テクチャ用に開発されたデバイス制御手段を、第2のア
ーキテクチャのハードウェアの構成部品として使用し、
かつ高速で安全性の高いエミュレート動作を実現する、
エミュレートシステム、エミュレート方法を提供するこ
とにある。
たものであり、その目的とするところは、第1のアーキ
テクチャ用に開発されたデバイス制御手段を、第2のア
ーキテクチャのハードウェアの構成部品として使用し、
かつ高速で安全性の高いエミュレート動作を実現する、
エミュレートシステム、エミュレート方法を提供するこ
とにある。
【0019】また、本発明の他の目的は、電源断処理等
の動作環境変化に対しても適切に対処できるエミュレー
トシステム、エミュレート方法を提供することにある。
の動作環境変化に対しても適切に対処できるエミュレー
トシステム、エミュレート方法を提供することにある。
【0020】また、本発明の他の目的は、第1のデバイ
ス制御手段ではサポートされていない外部入力が検出さ
れた場合にも適切に対処できるエミュレートシステム、
エミュレート方法を提供することにある。
ス制御手段ではサポートされていない外部入力が検出さ
れた場合にも適切に対処できるエミュレートシステム、
エミュレート方法を提供することにある。
【0021】
【課題を解決するための手段及び作用】上記目的を達成
するために、請求項1の発明は、第1のコンピュータア
ークテクチャに適合した命令体系により制御される第1
のデバイス制御手段と、前記第1のコンピュータアーク
テクチャとは異なる第2のコンピュータアーキテクチャ
に適合した命令体系により制御される第2のデバイス制
御手段と、前記第2のコンピュータアーキテクチャに適
合した命令体系によって命令を発行する中央制御手段と
を含むエミュレートシステムであって、前記中央制御手
段からの命令発行先として前記第2のデバイス制御手段
又は該第2のデバイス制御手段の制御対象が存在する場
合には、該命令を前記第2のデバイス制御手段又は該第
2のデバイス制御手段の制御対象にそのまま伝える手段
と、前記中央制御手段からの命令発行先として前記第2
のデバイス制御手段又は該第2のデバイス制御手段の制
御対象が存在しない場合には、該命令を受け取ると共に
該命令を解析し、命令の種類を示す要因データを設定
し、前記中央制御手段に対して割り込みを発生する手段
と、前記割り込みによって起動され、前記要因に対応し
た所定の処理を、少なくとも前記第1のデバイス制御手
段又は該第1のデバイス制御手段の制御対象に対して実
行する手段とを含むことを特徴とする。
するために、請求項1の発明は、第1のコンピュータア
ークテクチャに適合した命令体系により制御される第1
のデバイス制御手段と、前記第1のコンピュータアーク
テクチャとは異なる第2のコンピュータアーキテクチャ
に適合した命令体系により制御される第2のデバイス制
御手段と、前記第2のコンピュータアーキテクチャに適
合した命令体系によって命令を発行する中央制御手段と
を含むエミュレートシステムであって、前記中央制御手
段からの命令発行先として前記第2のデバイス制御手段
又は該第2のデバイス制御手段の制御対象が存在する場
合には、該命令を前記第2のデバイス制御手段又は該第
2のデバイス制御手段の制御対象にそのまま伝える手段
と、前記中央制御手段からの命令発行先として前記第2
のデバイス制御手段又は該第2のデバイス制御手段の制
御対象が存在しない場合には、該命令を受け取ると共に
該命令を解析し、命令の種類を示す要因データを設定
し、前記中央制御手段に対して割り込みを発生する手段
と、前記割り込みによって起動され、前記要因に対応し
た所定の処理を、少なくとも前記第1のデバイス制御手
段又は該第1のデバイス制御手段の制御対象に対して実
行する手段とを含むことを特徴とする。
【0022】また、請求項20の発明は、第1のコンピ
ュータアークテクチャに適合した命令体系により制御さ
れる第1のデバイス制御手段と、前記第1のコンピュー
タアークテクチャとは異なる第2のコンピュータアーキ
テクチャに適合した命令体系により制御される第2のデ
バイス制御手段とが混在する情報処理装置に使用される
エミュレート方法であって、(A)前記第2のコンピュ
ータアーキテクチャに適合した命令体系による命令が中
央制御手段により発行される工程と、(B)前記工程
(A)における命令の発行先として前記第2のデバイス
制御手段又は該第2のデバイス制御手段の制御対象が存
在する場合には、該命令を前記第2のデバイス制御手段
又は該第2のデバイス制御手段の制御対象にそのまま伝
え、前記工程(A)における命令の発行先として前記第
2のデバイス制御手段又は該第2のデバイス制御手段の
制御対象が存在しない場合には、命令の種類を示す要因
データを設定し、前記中央制御手段に対して割り込みを
発生する工程と、(C)前記工程(B)の前記割り込み
によって起動され、前記要因に対応した所定の処理を少
なくとも前記第1のデバイス制御手段又は該デバイス制
御手段の制御対象に対して実行する工程とを含むことを
特徴とする。
ュータアークテクチャに適合した命令体系により制御さ
れる第1のデバイス制御手段と、前記第1のコンピュー
タアークテクチャとは異なる第2のコンピュータアーキ
テクチャに適合した命令体系により制御される第2のデ
バイス制御手段とが混在する情報処理装置に使用される
エミュレート方法であって、(A)前記第2のコンピュ
ータアーキテクチャに適合した命令体系による命令が中
央制御手段により発行される工程と、(B)前記工程
(A)における命令の発行先として前記第2のデバイス
制御手段又は該第2のデバイス制御手段の制御対象が存
在する場合には、該命令を前記第2のデバイス制御手段
又は該第2のデバイス制御手段の制御対象にそのまま伝
え、前記工程(A)における命令の発行先として前記第
2のデバイス制御手段又は該第2のデバイス制御手段の
制御対象が存在しない場合には、命令の種類を示す要因
データを設定し、前記中央制御手段に対して割り込みを
発生する工程と、(C)前記工程(B)の前記割り込み
によって起動され、前記要因に対応した所定の処理を少
なくとも前記第1のデバイス制御手段又は該デバイス制
御手段の制御対象に対して実行する工程とを含むことを
特徴とする。
【0023】請求項1又は20の発明によれば、中央制
御手段からの命令先として第2のデバイス制御手段等が
存在しない場合には、該命令が解析されると共に命令の
種類を示す要因データが設定され、中央制御手段に割り
込みをかけることにより起動された実行手段により要因
に応じた所定の処理が実行される。これにより第2のア
ーキテクチャにしたがった命令をサポートしていない第
1のデバイス制御手段、デバイスを、第2のアーキテク
チャのシステムにおいて有効利用することが可能とな
る。
御手段からの命令先として第2のデバイス制御手段等が
存在しない場合には、該命令が解析されると共に命令の
種類を示す要因データが設定され、中央制御手段に割り
込みをかけることにより起動された実行手段により要因
に応じた所定の処理が実行される。これにより第2のア
ーキテクチャにしたがった命令をサポートしていない第
1のデバイス制御手段、デバイスを、第2のアーキテク
チャのシステムにおいて有効利用することが可能とな
る。
【0024】また、請求項2の発明は、請求項1におい
て、前記割り込みにより前記中央制御手段の制御モード
が所定システムにより管理される制御モードに移行さ
れ、該制御モード専用のメモリ領域に前記所定の処理の
ために必要なデータが格納されることを特徴とする。
て、前記割り込みにより前記中央制御手段の制御モード
が所定システムにより管理される制御モードに移行さ
れ、該制御モード専用のメモリ領域に前記所定の処理の
ために必要なデータが格納されることを特徴とする。
【0025】請求項2の発明によれば、実行手段は、独
自の制御モード専用のメモリ領域に格納されたデータに
基づき、アプリケーションプログラム等からの干渉を受
けることなく、独自の制御モードでメモリ管理を行うこ
とが可能となる。
自の制御モード専用のメモリ領域に格納されたデータに
基づき、アプリケーションプログラム等からの干渉を受
けることなく、独自の制御モードでメモリ管理を行うこ
とが可能となる。
【0026】また、請求項3の発明は、請求項2におい
て、前記メモリ領域において前記所定の処理のために必
要なデータが格納されるアドレスの位置が、前記制御モ
ードにおいてのみ変更可能であることを特徴とする。
て、前記メモリ領域において前記所定の処理のために必
要なデータが格納されるアドレスの位置が、前記制御モ
ードにおいてのみ変更可能であることを特徴とする。
【0027】請求項3の発明によれば、前記所定の処理
のために必要なデータが格納されるアドレス位置が、ア
プリケーションプログラム等により書き換えられること
がない。従って、システム側が所望する位置に該アドレ
ス位置を設定できると共に、この設定位置がアプリケー
ションプログラム等により変更されないことが保証され
るため、誤動作が生じにくく互換性の高いエミュレート
システムを実現できる。
のために必要なデータが格納されるアドレス位置が、ア
プリケーションプログラム等により書き換えられること
がない。従って、システム側が所望する位置に該アドレ
ス位置を設定できると共に、この設定位置がアプリケー
ションプログラム等により変更されないことが保証され
るため、誤動作が生じにくく互換性の高いエミュレート
システムを実現できる。
【0028】また、請求項4の発明は、請求項1乃至3
のいずれかにおいて、前記割り込みにより前記中央制御
手段の制御モードが所定システムにより管理される制御
モードに移行され、該制御モード専用のメモリ領域に前
記中央制御手段の内部レジスタの内容が格納されるとと
もに、前記制御モードの終了の際に、格納された内部レ
ジスタの内容が前記中央制御手段に戻されることを特徴
とする。
のいずれかにおいて、前記割り込みにより前記中央制御
手段の制御モードが所定システムにより管理される制御
モードに移行され、該制御モード専用のメモリ領域に前
記中央制御手段の内部レジスタの内容が格納されるとと
もに、前記制御モードの終了の際に、格納された内部レ
ジスタの内容が前記中央制御手段に戻されることを特徴
とする。
【0029】請求項4の発明によれば、割り込み発生時
における中央制御手段の内部レジスタの内容が前記制御
モード専用のメモリ領域に格納され、所定処理の終了後
に中央制御手段に自動的に戻される。従って、実行手段
により、この内部レジスタの内容を変更すれば、所定処
理の終了後、この変更された内部レジスタの内容により
中央制御手段を動作させることが可能となる。
における中央制御手段の内部レジスタの内容が前記制御
モード専用のメモリ領域に格納され、所定処理の終了後
に中央制御手段に自動的に戻される。従って、実行手段
により、この内部レジスタの内容を変更すれば、所定処
理の終了後、この変更された内部レジスタの内容により
中央制御手段を動作させることが可能となる。
【0030】また、請求項5の発明は、請求項4におい
て、前記メモリ領域において前記内部レジスタの内容が
格納されるアドレスの位置が、前記制御モードにおいて
のみ変更可能であることを特徴とする。
て、前記メモリ領域において前記内部レジスタの内容が
格納されるアドレスの位置が、前記制御モードにおいて
のみ変更可能であることを特徴とする。
【0031】請求項5の発明によれば、前記内部レジス
タの内容が格納(スタック)されるアドレス位置が、ア
プリケーションプログラム等により書き換えられること
がない。従って、システム側が所望する位置に該アドレ
ス位置を設定できると共に、この設定位置がアプリケー
ションプログラム等により変更されないことが保証され
るため、誤動作が生じにくく互換性の高いエミュレート
システムを実現できる。
タの内容が格納(スタック)されるアドレス位置が、ア
プリケーションプログラム等により書き換えられること
がない。従って、システム側が所望する位置に該アドレ
ス位置を設定できると共に、この設定位置がアプリケー
ションプログラム等により変更されないことが保証され
るため、誤動作が生じにくく互換性の高いエミュレート
システムを実現できる。
【0032】また、請求項6の発明は、請求項1乃至5
のいずれかにおいて、前記割り込みにより前記中央制御
手段の制御モードが所定システムにより管理される制御
モードに移行され、割り込み前の中央制御手段の制御モ
ードに依存しない命令体系により前記実行手段による前
記所定の処理が行われることを特徴とする。
のいずれかにおいて、前記割り込みにより前記中央制御
手段の制御モードが所定システムにより管理される制御
モードに移行され、割り込み前の中央制御手段の制御モ
ードに依存しない命令体系により前記実行手段による前
記所定の処理が行われることを特徴とする。
【0033】請求項6の発明によれば、前記所定の処理
を、割り込み前の中央制御手段の制御モードとは無関係
の命令体系により行うことができ、これにより、前記所
定の処理を記述するためのプログラムが複雑化すること
が防止される。
を、割り込み前の中央制御手段の制御モードとは無関係
の命令体系により行うことができ、これにより、前記所
定の処理を記述するためのプログラムが複雑化すること
が防止される。
【0034】また、請求項7の発明は、請求項1乃至6
のいずれかにおいて、前記割り込みが、前記中央制御手
段をSMMモードに移行させるためのSMI割り込みで
あることを特徴とする。
のいずれかにおいて、前記割り込みが、前記中央制御手
段をSMMモードに移行させるためのSMI割り込みで
あることを特徴とする。
【0035】請求項7の発明によれば、多くのアプリケ
ーションプログラム、OSが既に使用していることが想
定されるNMIや通常の割り込みINTを使用する必要
がなくなるため、高い互換性を維持できる。
ーションプログラム、OSが既に使用していることが想
定されるNMIや通常の割り込みINTを使用する必要
がなくなるため、高い互換性を維持できる。
【0036】また、請求項8の発明は、請求項1乃至7
のいずれかにおいて、前記要因データを格納するための
複数の要因格納手段を含み、各々の要因格納手段に格納
される要因データについての更に詳細な要因データが該
要因格納手段よりも階層が下位の要因格納手段に格納さ
れていることを特徴とする。
のいずれかにおいて、前記要因データを格納するための
複数の要因格納手段を含み、各々の要因格納手段に格納
される要因データについての更に詳細な要因データが該
要因格納手段よりも階層が下位の要因格納手段に格納さ
れていることを特徴とする。
【0037】請求項8の発明によれば、要因格納手段が
階層構造となっているため、要因の検索を高速にできる
とともに、要因間に優先順位を設定することも容易とな
る。また、請求項9の発明は、請求項1乃至8のいずれ
かにおいて、システムの動作環境変化を検出すると共に
該動作環境変化を解析し、該動作環境変化の種類を示す
要因データを設定し、前記中央制御手段に対して前記実
行手段を起動するための前記割り込みを発生する手段を
含むことを特徴とする。
階層構造となっているため、要因の検索を高速にできる
とともに、要因間に優先順位を設定することも容易とな
る。また、請求項9の発明は、請求項1乃至8のいずれ
かにおいて、システムの動作環境変化を検出すると共に
該動作環境変化を解析し、該動作環境変化の種類を示す
要因データを設定し、前記中央制御手段に対して前記実
行手段を起動するための前記割り込みを発生する手段を
含むことを特徴とする。
【0038】また、請求項21の発明は、請求項20に
おいて、前記工程(B)の際に、システムの動作環境変
化を検出すると共に該動作環境変化を解析し、該動作環
境変化の種類を示す要因データを設定し、前記中央制御
手段に対して割り込みが発生されることを特徴とする。
おいて、前記工程(B)の際に、システムの動作環境変
化を検出すると共に該動作環境変化を解析し、該動作環
境変化の種類を示す要因データを設定し、前記中央制御
手段に対して割り込みが発生されることを特徴とする。
【0039】請求項9又は21の発明によれば、電源
断、リセット、中央制御手段の速度切替等の動作環境の
変化についてもエミュレート処理することが可能とな
り、単に異なるアーキテクチャのアプリケーションプロ
グラム等を動作させるエミュレートシステムでは実現さ
れないエミュレートシステムを提供できる。
断、リセット、中央制御手段の速度切替等の動作環境の
変化についてもエミュレート処理することが可能とな
り、単に異なるアーキテクチャのアプリケーションプロ
グラム等を動作させるエミュレートシステムでは実現さ
れないエミュレートシステムを提供できる。
【0040】また、請求項10の発明は、請求項9にお
いて、前記動作環境変化に基づいて設定される前記要因
として少なくとも電源断処理又はリセット処理について
の要因が含まれ、該要因が、前記中央制御手段により発
行された命令に基づく要因よりも優先順位の高い要因と
して設定されていることを特徴とする。
いて、前記動作環境変化に基づいて設定される前記要因
として少なくとも電源断処理又はリセット処理について
の要因が含まれ、該要因が、前記中央制御手段により発
行された命令に基づく要因よりも優先順位の高い要因と
して設定されていることを特徴とする。
【0041】また、請求項22の発明は、請求項20に
おいて、前記動作環境変化に基づいて設定される前記要
因として少なくとも電源断処理又はリセット処理につい
ての要因が含まれ、該要因が、前記中央制御手段により
発行された命令に基づく前記要因よりも優先順位の高い
要因として設定されていることを特徴とする。
おいて、前記動作環境変化に基づいて設定される前記要
因として少なくとも電源断処理又はリセット処理につい
ての要因が含まれ、該要因が、前記中央制御手段により
発行された命令に基づく前記要因よりも優先順位の高い
要因として設定されていることを特徴とする。
【0042】請求項10又は22の発明によれば、電源
断処理、リセット処理の要因が、中央制御手段のI/O
命令等に基づく要因よりも優先順位が高くなる。これに
より、即座に処理をしなければならない動作環境の変化
に対して優先的に処理を施すことが可能となる。
断処理、リセット処理の要因が、中央制御手段のI/O
命令等に基づく要因よりも優先順位が高くなる。これに
より、即座に処理をしなければならない動作環境の変化
に対して優先的に処理を施すことが可能となる。
【0043】また、請求項11の発明は、請求項9又は
10のいずれかにおいて、前記動作環境変化に基づいて
設定される前記要因として少なくとも電源断処理又はリ
セット処理についての要因が含まれ、該要因に基づく処
理の際に、前記実行手段が、前記第1又は第2のデバイ
ス制御手段の制御対象の1つである記憶手段に記憶され
るデータを保持又は退避する処理を行うことを特徴とす
る。
10のいずれかにおいて、前記動作環境変化に基づいて
設定される前記要因として少なくとも電源断処理又はリ
セット処理についての要因が含まれ、該要因に基づく処
理の際に、前記実行手段が、前記第1又は第2のデバイ
ス制御手段の制御対象の1つである記憶手段に記憶され
るデータを保持又は退避する処理を行うことを特徴とす
る。
【0044】請求項11の発明によれば、電源断処理、
リセット処理の際に、記憶手段に記憶されるデータを保
持又は退避した後に、システムの電源を落とすことがで
き、データの損失等を防止できる。
リセット処理の際に、記憶手段に記憶されるデータを保
持又は退避した後に、システムの電源を落とすことがで
き、データの損失等を防止できる。
【0045】また、請求項12の発明は、請求項1乃至
11のいずれかにおいて、前記要因として、少なくとも
前記第1のデバイス制御手段ではサポートされていない
外部からの入力に関する要因が含まれ、該外部入力が検
出された場合に前記第1のデバイス制御手段が該外部入
力に応じた処理を行うように、前記実行手段による前記
所定の処理が行われることを特徴とする。
11のいずれかにおいて、前記要因として、少なくとも
前記第1のデバイス制御手段ではサポートされていない
外部からの入力に関する要因が含まれ、該外部入力が検
出された場合に前記第1のデバイス制御手段が該外部入
力に応じた処理を行うように、前記実行手段による前記
所定の処理が行われることを特徴とする。
【0046】また、請求項23の発明は、請求項20乃
至22において、前記要因として、少なくとも前記第1
のデバイス制御手段ではサポートされていない外部から
の入力に関する要因が含まれ、該外部入力が検出された
場合に前記第1のデバイス制御手段が該外部入力に応じ
た処理を行うように、前記工程(C)における前記所定
の処理が行われることを特徴とする。
至22において、前記要因として、少なくとも前記第1
のデバイス制御手段ではサポートされていない外部から
の入力に関する要因が含まれ、該外部入力が検出された
場合に前記第1のデバイス制御手段が該外部入力に応じ
た処理を行うように、前記工程(C)における前記所定
の処理が行われることを特徴とする。
【0047】請求項12又は23の発明によれば、第1
のデバイス制御手段ではサポートされていない外部入力
により生じた要因により前記所定の処理が行われる。こ
のような外部入力としては、外部スイッチの切り替え等
が考えられる。そして、この場合、前記所定の処理によ
り、第1のデバイス制御手段が有する機能を利用し、該
機能に基づき外部入力に応じた処理が行われる。これに
より、第1のデバイス制御手段を第2のアーキテクチャ
のシステムにおいて有効利用することが可能となる。
のデバイス制御手段ではサポートされていない外部入力
により生じた要因により前記所定の処理が行われる。こ
のような外部入力としては、外部スイッチの切り替え等
が考えられる。そして、この場合、前記所定の処理によ
り、第1のデバイス制御手段が有する機能を利用し、該
機能に基づき外部入力に応じた処理が行われる。これに
より、第1のデバイス制御手段を第2のアーキテクチャ
のシステムにおいて有効利用することが可能となる。
【0048】また、請求項13の発明は、請求項1乃至
12のいずれかにおいて、前記要因に基づく前記割り込
みの発生の一部又は全部をマスクする手段を含むことを
特徴とする。
12のいずれかにおいて、前記要因に基づく前記割り込
みの発生の一部又は全部をマスクする手段を含むことを
特徴とする。
【0049】また、請求項24の発明は、請求項20乃
至23のいずれかにおいて、前記工程(B)において発
生される前記割り込みの一部又は全部がマスク手段によ
りマスクされることを特徴とする。
至23のいずれかにおいて、前記工程(B)において発
生される前記割り込みの一部又は全部がマスク手段によ
りマスクされることを特徴とする。
【0050】請求項13又は24の発明によれば、マス
ク手段により、例えばあるモードにおいて発生すべきで
はない割り込みが存在した場合に、この割り込みが発生
するのをあらかじめ防止することが可能となる。
ク手段により、例えばあるモードにおいて発生すべきで
はない割り込みが存在した場合に、この割り込みが発生
するのをあらかじめ防止することが可能となる。
【0051】また、請求項14の発明は、請求項13に
おいて、電源投入処理又はリセット処理開始後、少なく
とも前記実行手段による前記所定の処理の正常な実行が
可能となるまでの間、前記マスク手段により前記割り込
み発生がマスクされることを特徴とする。
おいて、電源投入処理又はリセット処理開始後、少なく
とも前記実行手段による前記所定の処理の正常な実行が
可能となるまでの間、前記マスク手段により前記割り込
み発生がマスクされることを特徴とする。
【0052】請求項14の発明によれば、電源投入等の
後、所定の処理が正常実行できるまでの間に、誤動作を
引き起こす割り込みが発生するのを防止することが可能
となる。この場合、所定の処理を正常実行させるための
処理としては、例えば所定の処理のために必要なデータ
が格納されるメモリ領域のアドレス位置を変更等する処
理が考えられる。
後、所定の処理が正常実行できるまでの間に、誤動作を
引き起こす割り込みが発生するのを防止することが可能
となる。この場合、所定の処理を正常実行させるための
処理としては、例えば所定の処理のために必要なデータ
が格納されるメモリ領域のアドレス位置を変更等する処
理が考えられる。
【0053】また、請求項15の発明は、請求項14に
おいて、電源投入処理又はリセット処理開始後、前記マ
スク手段によりマスクされないダミーの割り込みが発生
され、該ダミーの割り込みにより起動される前記実行手
段により、前記所定の処理を正常に実行させるための処
理が行われることを特徴とする。
おいて、電源投入処理又はリセット処理開始後、前記マ
スク手段によりマスクされないダミーの割り込みが発生
され、該ダミーの割り込みにより起動される前記実行手
段により、前記所定の処理を正常に実行させるための処
理が行われることを特徴とする。
【0054】請求項15の発明によれば、例えばダミー
のI/O書き込み命令等を行うことでダミーの割り込み
を発生して、このダミーの割り込みにより起動した実行
手段を用いて、例えばアドレス位置の変更処理等が行わ
れ、所定の処理の正常実行が可能となる。
のI/O書き込み命令等を行うことでダミーの割り込み
を発生して、このダミーの割り込みにより起動した実行
手段を用いて、例えばアドレス位置の変更処理等が行わ
れ、所定の処理の正常実行が可能となる。
【0055】また、請求項16の発明は、請求項1乃至
15のいずれかにおいて、前記実行手段が前記所定の処
理を実行する間、システムの動作環境を所定の状態に変
更する手段を含むことを特徴とする。
15のいずれかにおいて、前記実行手段が前記所定の処
理を実行する間、システムの動作環境を所定の状態に変
更する手段を含むことを特徴とする。
【0056】また、請求項25の発明は、請求項20乃
至24のいずれかにおいて、前記工程(C)の所定の処
理を実行する間、システムの動作環境が所定の状態に変
更されることを特徴とする。
至24のいずれかにおいて、前記工程(C)の所定の処
理を実行する間、システムの動作環境が所定の状態に変
更されることを特徴とする。
【0057】請求項16又は25の発明によれば、所定
の処理を実行する間、動作環境を該所定の処理に都合の
良い環境に変更することが可能となる。
の処理を実行する間、動作環境を該所定の処理に都合の
良い環境に変更することが可能となる。
【0058】また、請求項17の発明は、請求項16に
おいて、前記動作環境の変更が、中央制御手段の処理速
度を高速に設定する変更であることを特徴とする。
おいて、前記動作環境の変更が、中央制御手段の処理速
度を高速に設定する変更であることを特徴とする。
【0059】請求項17の発明によれば、所定の処理を
実行する間、中央制御手段の処理速度を高速にできるた
め、該所定の処理の動作を高速化できる。
実行する間、中央制御手段の処理速度を高速にできるた
め、該所定の処理の動作を高速化できる。
【0060】また、請求項18の発明は、請求項1乃至
17のいずれかにおいて、バスのアービトレーションを
行うバスアービタ手段を含み、該バスアービタ手段が、
前記割り込みが発生した場合には、中央制御手段による
バスアクセスの優先順位が最も高くなるようにバスアー
ビトレーション処理を行うことを特徴とする。
17のいずれかにおいて、バスのアービトレーションを
行うバスアービタ手段を含み、該バスアービタ手段が、
前記割り込みが発生した場合には、中央制御手段による
バスアクセスの優先順位が最も高くなるようにバスアー
ビトレーション処理を行うことを特徴とする。
【0061】請求項18の発明によれば、割り込みが発
生した場合に中央制御手段のバスアクセスの優先権を高
めることができるため、中央制御手段は所定の処理を円
滑に行うことが可能となる。
生した場合に中央制御手段のバスアクセスの優先権を高
めることができるため、中央制御手段は所定の処理を円
滑に行うことが可能となる。
【0062】また、請求項19の発明は、請求項1乃至
18のいずれかにおいて、前記第1のデバイス制御手段
としてメモリデバイスを制御する手段を含み、該メモリ
デバイスのメモリマップを第2のコンピュータアーキテ
クチャに適合したメモリマップに変換する手段を含むこ
とを特徴とする。
18のいずれかにおいて、前記第1のデバイス制御手段
としてメモリデバイスを制御する手段を含み、該メモリ
デバイスのメモリマップを第2のコンピュータアーキテ
クチャに適合したメモリマップに変換する手段を含むこ
とを特徴とする。
【0063】請求項19の発明によれば、中央制御手段
により発行される命令が第2のアーキテクチャにしたが
っておりメモリデバイス制御手段、メモリデバイスに対
するものであった場合に、該メモリデバイスのメモリマ
ップを第2のアーキテクチャに適合するように変換でき
る。従って、第1のアーキテクチャと第2のアーキテク
チャとの間で、メモリマップの配置が異なっていても、
第1のアーキテクチャで使用されるデバイス制御手段等
を第2のアーキテクチャのシステムにおいて有効利用す
ることが可能となる。
により発行される命令が第2のアーキテクチャにしたが
っておりメモリデバイス制御手段、メモリデバイスに対
するものであった場合に、該メモリデバイスのメモリマ
ップを第2のアーキテクチャに適合するように変換でき
る。従って、第1のアーキテクチャと第2のアーキテク
チャとの間で、メモリマップの配置が異なっていても、
第1のアーキテクチャで使用されるデバイス制御手段等
を第2のアーキテクチャのシステムにおいて有効利用す
ることが可能となる。
【0064】なお、前記第1のデバイス制御手段として
I/Oデバイスを制御する手段を含み、前記中央制御手
段から発行された命令を前記第1のコンピュータアーキ
テクチャに適合した命令に変換する手段を含むようにし
てもよい。
I/Oデバイスを制御する手段を含み、前記中央制御手
段から発行された命令を前記第1のコンピュータアーキ
テクチャに適合した命令に変換する手段を含むようにし
てもよい。
【0065】これにより、中央制御手段により発行され
る命令が第2のアーキテクチャにしたがっておりI/O
デバイス制御手段、I/Oデバイスに対するものであっ
た場合に、該命令を第1のアーキテクチャに適合するよ
うに変換できる。従って、第1のアーキテクチャと第2
のアーキテクチャとの間で、命令の形態が異なっていて
も、第1のアーキテクチャで使用されるデバイス制御手
段等を第2のアーキテクチャのシステムにおいて有効利
用することが可能となる。
る命令が第2のアーキテクチャにしたがっておりI/O
デバイス制御手段、I/Oデバイスに対するものであっ
た場合に、該命令を第1のアーキテクチャに適合するよ
うに変換できる。従って、第1のアーキテクチャと第2
のアーキテクチャとの間で、命令の形態が異なっていて
も、第1のアーキテクチャで使用されるデバイス制御手
段等を第2のアーキテクチャのシステムにおいて有効利
用することが可能となる。
【0066】また、前記中央制御手段により発行された
命令が書き込み命令であった場合に、中央制御手段のバ
スへのアクセスを禁止すると共に変換された該書き込み
命令を実行する手段を含むようにしてもよい。
命令が書き込み命令であった場合に、中央制御手段のバ
スへのアクセスを禁止すると共に変換された該書き込み
命令を実行する手段を含むようにしてもよい。
【0067】これにより、中央制御手段により書き込み
命令が発行されると、中央制御手段のバスへのアクセス
が禁止される。そして、所定の手段により変換された書
き込み命令の実行が行われる。これにより、第1のアー
キテクチャに適合するように変換された書込命令を、中
央制御手段に代わって実行することが可能となるため、
第1のアーキテクチャにて使用されるデバイス制御手段
等を第2のアーキテクチャにしたがったシステムにおい
て有効利用することが可能となる。
命令が発行されると、中央制御手段のバスへのアクセス
が禁止される。そして、所定の手段により変換された書
き込み命令の実行が行われる。これにより、第1のアー
キテクチャに適合するように変換された書込命令を、中
央制御手段に代わって実行することが可能となるため、
第1のアーキテクチャにて使用されるデバイス制御手段
等を第2のアーキテクチャにしたがったシステムにおい
て有効利用することが可能となる。
【0068】また、前記中央制御手段により発行された
命令が所定の種類の書き込み命令であった場合に、前記
実行手段の前記所定の処理により該命令の変換、実行の
一部又は全部が行われるようにしてもよい。
命令が所定の種類の書き込み命令であった場合に、前記
実行手段の前記所定の処理により該命令の変換、実行の
一部又は全部が行われるようにしてもよい。
【0069】これにより、中央制御手段により所定の種
類の書き込み命令が発行されると、前記実行手段により
該命令の変換、実行の一部又は全部が行われる。これに
より、書き込み命令を第1のアーキテクチャに適合した
ものに変換し、実行できるため、デバイス制御手段等の
有効利用が図れる。更に、この場合には、命令の変換、
実行の処理を所定のコードにより記述できる実行手段に
より行うことができるため、ハードウェアロジックでは
実現困難な複雑な処理についても実現することが可能と
なる。
類の書き込み命令が発行されると、前記実行手段により
該命令の変換、実行の一部又は全部が行われる。これに
より、書き込み命令を第1のアーキテクチャに適合した
ものに変換し、実行できるため、デバイス制御手段等の
有効利用が図れる。更に、この場合には、命令の変換、
実行の処理を所定のコードにより記述できる実行手段に
より行うことができるため、ハードウェアロジックでは
実現困難な複雑な処理についても実現することが可能と
なる。
【0070】また、前記中央制御手段により発行された
命令が読み出し命令であった場合に、中央制御手段の処
理を中断し中央制御手段のバスへのアクセスを禁止する
と共に変換された該読み出し命令を実行し、読み出され
たデータを中央制御手段による処理の再実行の際に中央
制御手段に伝える手段を含むようにしてもよい。
命令が読み出し命令であった場合に、中央制御手段の処
理を中断し中央制御手段のバスへのアクセスを禁止する
と共に変換された該読み出し命令を実行し、読み出され
たデータを中央制御手段による処理の再実行の際に中央
制御手段に伝える手段を含むようにしてもよい。
【0071】これにより、中央制御手段により読み出し
命令が発行されると、中央制御手段の処理が中断され、
中央制御手段の処理再実行時に変換された読み出し命令
により読み出されたデータが中央制御手段に伝えられ
る。従って、中央制御手段の処理の中断、再実行を利用
して、変換された命令により読み出されたデータを中央
制御手段に伝えることができ、これにより、デバイス制
御手段の有効利用を図ることができる。
命令が発行されると、中央制御手段の処理が中断され、
中央制御手段の処理再実行時に変換された読み出し命令
により読み出されたデータが中央制御手段に伝えられ
る。従って、中央制御手段の処理の中断、再実行を利用
して、変換された命令により読み出されたデータを中央
制御手段に伝えることができ、これにより、デバイス制
御手段の有効利用を図ることができる。
【0072】また、前記中央制御手段により発行された
命令が所定の種類の読み出し命令であった場合に、前記
実行手段の前記所定の処理により該命令の変換、実行の
一部又は全部が行われるようにしてもよい。
命令が所定の種類の読み出し命令であった場合に、前記
実行手段の前記所定の処理により該命令の変換、実行の
一部又は全部が行われるようにしてもよい。
【0073】これにより、中央制御手段により所定の種
類の読み出し命令が発行されると、前記実行手段により
該命令の変換、実行の一部又は全部が行われる。これに
より、デバイス制御手段等を第2のアーキテクチャのシ
ステムにおいて有効利用することが可能となる。更に、
この場合には、命令の変換、実行の処理を所定のコード
により記述できる実行手段により行うことができるた
め、ハードウェアロジックでは実現困難な複雑な処理に
ついても実現することが可能となる。
類の読み出し命令が発行されると、前記実行手段により
該命令の変換、実行の一部又は全部が行われる。これに
より、デバイス制御手段等を第2のアーキテクチャのシ
ステムにおいて有効利用することが可能となる。更に、
この場合には、命令の変換、実行の処理を所定のコード
により記述できる実行手段により行うことができるた
め、ハードウェアロジックでは実現困難な複雑な処理に
ついても実現することが可能となる。
【0074】また、前記第1のデバイス制御手段として
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がデー
タの送受信命令又はステータス読み出し命令であった場
合に、該命令を変換する手段により命令の変換処理が行
われるようにしてもよい。
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がデー
タの送受信命令又はステータス読み出し命令であった場
合に、該命令を変換する手段により命令の変換処理が行
われるようにしてもよい。
【0075】これにより、高速な処理が要求されるデー
タの送受信命令、ステータス読み出し命令の変換を、例
えば高速なハードウェアロジック等により行うことが可
能となる。
タの送受信命令、ステータス読み出し命令の変換を、例
えば高速なハードウェアロジック等により行うことが可
能となる。
【0076】また、前記第1のデバイス制御手段として
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がコマ
ンド書き込み命令であった場合に、前記実行手段の前記
所定の処理により命令の変換処理が行われるようにして
もよい。
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がコマ
ンド書き込み命令であった場合に、前記実行手段の前記
所定の処理により命令の変換処理が行われるようにして
もよい。
【0077】これにより、複雑な処理が要求されるコマ
ンド書き込み命令の変換処理等を、所定のコードで処理
を記述できる実行手段により実行することが可能とな
る。
ンド書き込み命令の変換処理等を、所定のコードで処理
を記述できる実行手段により実行することが可能とな
る。
【0078】また、前記第1のデバイス制御手段として
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がデー
タ転送のためのボーレートを設定する命令であった場合
に、前記実行手段の前記所定の処理により前記ボーレー
トを演算する処理が行われるようにしてもよい。
データ送受信のためのインターフェイスを制御する手段
を含み、前記中央制御手段により発行された命令がデー
タ転送のためのボーレートを設定する命令であった場合
に、前記実行手段の前記所定の処理により前記ボーレー
トを演算する処理が行われるようにしてもよい。
【0079】これにより、例えば第1のアーキテクチャ
で使用されるデバイス制御手段でクロックに対する送受
信のボーレートが1つに固定されている場合でも、他の
種類のボーレートを使用することが可能となる。
で使用されるデバイス制御手段でクロックに対する送受
信のボーレートが1つに固定されている場合でも、他の
種類のボーレートを使用することが可能となる。
【0080】また、前記第1のデバイス制御手段として
データ入力手段を制御する手段を含み、前記中央制御手
段により発行された命令がコマンド送信命令又はコマン
ド書き込み命令又はデータ受信命令であった場合に、前
記実行手段の前記所定の処理により命令の変換処理が行
われるようにしてもよい。
データ入力手段を制御する手段を含み、前記中央制御手
段により発行された命令がコマンド送信命令又はコマン
ド書き込み命令又はデータ受信命令であった場合に、前
記実行手段の前記所定の処理により命令の変換処理が行
われるようにしてもよい。
【0081】これにより、複雑な処理が要求されるコマ
ンド送信命令、コマンド書き込み命令、データ受信命令
の変換処理等を、所定のコードで処理を記述できる実行
手段により実行することが可能となる。
ンド送信命令、コマンド書き込み命令、データ受信命令
の変換処理等を、所定のコードで処理を記述できる実行
手段により実行することが可能となる。
【0082】また、前記第1のデバイス制御手段として
データ入力手段を制御する手段を含み、前記中央制御手
段により発行された命令がステータス読み出し命令であ
った場合に、該命令を変換する手段により命令の変換処
理が行われるようにしてもよい。
データ入力手段を制御する手段を含み、前記中央制御手
段により発行された命令がステータス読み出し命令であ
った場合に、該命令を変換する手段により命令の変換処
理が行われるようにしてもよい。
【0083】これにより、高速な処理が要求されるステ
ータス読み出し命令の変換を、例えばハードウェアロジ
ック等により行うことが可能となる。
ータス読み出し命令の変換を、例えばハードウェアロジ
ック等により行うことが可能となる。
【0084】また、前記第1のデバイス制御手段として
割り込みを制御する手段を含み、前記中央制御手段に対
して発行された割り込みベクトルを変換するベクトル変
換手段を含むようにしてもよい。
割り込みを制御する手段を含み、前記中央制御手段に対
して発行された割り込みベクトルを変換するベクトル変
換手段を含むようにしてもよい。
【0085】これにより、ベクトル変換手段により、中
央制御手段に対して発行された割り込みベクトルについ
ても変換することができる。これにより、割り込みベク
トルについても第1のアーキテクチャにしたがうように
変換することが可能となり、デバイス制御手段の有効利
用が図られる。
央制御手段に対して発行された割り込みベクトルについ
ても変換することができる。これにより、割り込みベク
トルについても第1のアーキテクチャにしたがうように
変換することが可能となり、デバイス制御手段の有効利
用が図られる。
【0086】また、前記第1のデバイス制御手段として
割り込みを制御する手段を含み、前記中央制御手段によ
り割り込みアクノリッジ命令が発行された場合に、中央
制御手段の処理を中断し中央制御手段のバスへのアクセ
スを禁止すると共に割り込みアクノリッジサイクルを新
たに発生し、変換された割り込みベクトルを中央制御手
段による処理の再実行の際に中央制御手段に伝える手段
を含むようにしてもよい。
割り込みを制御する手段を含み、前記中央制御手段によ
り割り込みアクノリッジ命令が発行された場合に、中央
制御手段の処理を中断し中央制御手段のバスへのアクセ
スを禁止すると共に割り込みアクノリッジサイクルを新
たに発生し、変換された割り込みベクトルを中央制御手
段による処理の再実行の際に中央制御手段に伝える手段
を含むようにしてもよい。
【0087】これにより、中央制御手段により割り込み
アクノリッジ命令が発行されると、中央制御手段の処理
が中断され、中央制御手段の処理再実行時に変換された
割り込みベクトルが中央制御手段に伝えられる。従っ
て、中央制御手段の処理の中断、再実行を利用して、変
換された割り込みベクトルを中央制御手段に伝えること
ができ、これにより、デバイス制御手段の有効利用が図
られる。
アクノリッジ命令が発行されると、中央制御手段の処理
が中断され、中央制御手段の処理再実行時に変換された
割り込みベクトルが中央制御手段に伝えられる。従っ
て、中央制御手段の処理の中断、再実行を利用して、変
換された割り込みベクトルを中央制御手段に伝えること
ができ、これにより、デバイス制御手段の有効利用が図
られる。
【0088】
【実施例】以下、本発明の実施例について説明する。
【0089】(第1の実施例) 1.全体構成についての説明 図1は本第1の実施例のハードウェアを説明するための
ブロック図である。図54で説明した従来例と異なるの
は、メモリコントローラ11として、第1のアーキテク
チャに対応するように設計された標準品、即ちインテル
社製の82434LX(PCMC:商標名)を使用して
いる点である(従来例ではオリジナルのコントローラ5
07を使用していた)。このように、本実施例では、第
2のアーキテクチャに適合したハードウェアシステム
に、第1のアーキテクチャのメモリコントローラ(デバ
イス制御手段)11を混在させている。そして、このよ
うにメモリコントローラ11を混在させたことに伴っ
て、本実施例では、サブコントローラ25を設け、これ
により互換性の維持を図っている。
ブロック図である。図54で説明した従来例と異なるの
は、メモリコントローラ11として、第1のアーキテク
チャに対応するように設計された標準品、即ちインテル
社製の82434LX(PCMC:商標名)を使用して
いる点である(従来例ではオリジナルのコントローラ5
07を使用していた)。このように、本実施例では、第
2のアーキテクチャに適合したハードウェアシステム
に、第1のアーキテクチャのメモリコントローラ(デバ
イス制御手段)11を混在させている。そして、このよ
うにメモリコントローラ11を混在させたことに伴っ
て、本実施例では、サブコントローラ25を設け、これ
により互換性の維持を図っている。
【0090】CPU1およびキャッシュメモリ3はCP
Uバス5によってメモリコントローラ11に接続されて
いる。本実施例においてはCPU1はインテル社製のP
entium(商標名)と呼ばれるCPUを用いてい
る。このCPUは、パイプライン処理等により高機能化
が図られれたCPUである。これ以外に、図示しない、
バスバッファとしてインテル社製の82433LX L
BXがあるが本発明に直接関係しないため説明は省く。
Uバス5によってメモリコントローラ11に接続されて
いる。本実施例においてはCPU1はインテル社製のP
entium(商標名)と呼ばれるCPUを用いてい
る。このCPUは、パイプライン処理等により高機能化
が図られれたCPUである。これ以外に、図示しない、
バスバッファとしてインテル社製の82433LX L
BXがあるが本発明に直接関係しないため説明は省く。
【0091】メモリコントローラ11内には前記キャッ
シュメモリ3を制御するキャッシュコントローラ13、
CPUバス5によって接続され高速に動作するRAM2
1に対して制御を行うRAMコントローラ15、PCI
バス23とのインターフェースを図るためのPCIバス
インターフェース19が設けられている。更に、メモリ
コントローラ11内には、CPU1に対してHOLD信
号7を出力してウェイトをかけ、CPU1の動作スピー
ドをコントロールするためのホールドウェイト制御手段
12、CPU1に対してRESET信号8を出力しハー
ドリセットをかけたり、CPU1に対してINIT信号
9を出力してソフトリセットをかけたりするためのリセ
ットレジスタ14が設けられている。RAMコントロー
ラ15内に設けられたメモリ設定レジスタ17は、第1
のアーキテクチャに準じた操作によって、RAM21の
メモリマッピングおよび各メモリアドレスにマッピング
されたRAM21、VRAM33、ROM43に対し、
リード、ライト、キャッシュの可否を設定する。メモリ
設定レジスタ17はメモリコントローラ11の各種設定
を行うconfigレジスタ(図示せず)の一部であ
る。
シュメモリ3を制御するキャッシュコントローラ13、
CPUバス5によって接続され高速に動作するRAM2
1に対して制御を行うRAMコントローラ15、PCI
バス23とのインターフェースを図るためのPCIバス
インターフェース19が設けられている。更に、メモリ
コントローラ11内には、CPU1に対してHOLD信
号7を出力してウェイトをかけ、CPU1の動作スピー
ドをコントロールするためのホールドウェイト制御手段
12、CPU1に対してRESET信号8を出力しハー
ドリセットをかけたり、CPU1に対してINIT信号
9を出力してソフトリセットをかけたりするためのリセ
ットレジスタ14が設けられている。RAMコントロー
ラ15内に設けられたメモリ設定レジスタ17は、第1
のアーキテクチャに準じた操作によって、RAM21の
メモリマッピングおよび各メモリアドレスにマッピング
されたRAM21、VRAM33、ROM43に対し、
リード、ライト、キャッシュの可否を設定する。メモリ
設定レジスタ17はメモリコントローラ11の各種設定
を行うconfigレジスタ(図示せず)の一部であ
る。
【0092】PCIバス23には高速、大容量データ転
送が要求されるデバイスであるVRAM33、HDD3
7が接続される。VRAM33にはCPU1からの特定
のI/O命令に対してVRAM33のマッピングを切り
替えるVRAM切替手段35が備わっている。VRAM
33のデータは図示しない表示部によって表示される。
送が要求されるデバイスであるVRAM33、HDD3
7が接続される。VRAM33にはCPU1からの特定
のI/O命令に対してVRAM33のマッピングを切り
替えるVRAM切替手段35が備わっている。VRAM
33のデータは図示しない表示部によって表示される。
【0093】更に、PCIバス23には、本第1の実施
例の要部であるサブコントローラ25が接続されてい
る。このサブコントローラ25は、図1に示すように、
CPU1からのI/O命令を受け付けるI/O受付手段
30、要因を設定するためのSMIステータス28、S
MIの割り込みを発生するSMI発生手段27、SMI
の発生をマスクするためのSMIマスク手段29、PC
Iバス23のアービトレーションを行うためのバスアー
ビタ70、PCIバス23とのインターフェースを図る
PCIバスインターフェース71、リセット、スピード
切替、電源断を検出するリセット検出手段73、スピー
ド切替検出手段74、電源断検出手段75、表示切替検
出手段76を含んでいる。
例の要部であるサブコントローラ25が接続されてい
る。このサブコントローラ25は、図1に示すように、
CPU1からのI/O命令を受け付けるI/O受付手段
30、要因を設定するためのSMIステータス28、S
MIの割り込みを発生するSMI発生手段27、SMI
の発生をマスクするためのSMIマスク手段29、PC
Iバス23のアービトレーションを行うためのバスアー
ビタ70、PCIバス23とのインターフェースを図る
PCIバスインターフェース71、リセット、スピード
切替、電源断を検出するリセット検出手段73、スピー
ド切替検出手段74、電源断検出手段75、表示切替検
出手段76を含んでいる。
【0094】メモリコントローラ11は前述のように第
1のアーキテクチャ用に設計されたコントローラである
から、CPU1から発せられる第2のアーキテクチャに
準拠したI/O命令を受け取ることができない。よって
サブコントローラ25内のI/O受付手段30によって
I/O命令を受け取り(CPU1の命令はメモリコント
ローラ11を素通りすることができ、これによりPCI
バス23、従来バス41に接続されたデバイスが該命令
を直接受け取ることが可能である)、I/O受付手段3
0がその内容に従ってSMIステータス28に要因をセ
ットすると同時にSMI発生手段27がSMI信号31
によってCPU1にSMIを通知する。つまり従来ハー
ドウェアロジックによって行われていた処理を、SMI
(システムマネージメントインタラプト)と呼ばれる割
り込み処理によってCPU1に代行させる。
1のアーキテクチャ用に設計されたコントローラである
から、CPU1から発せられる第2のアーキテクチャに
準拠したI/O命令を受け取ることができない。よって
サブコントローラ25内のI/O受付手段30によって
I/O命令を受け取り(CPU1の命令はメモリコント
ローラ11を素通りすることができ、これによりPCI
バス23、従来バス41に接続されたデバイスが該命令
を直接受け取ることが可能である)、I/O受付手段3
0がその内容に従ってSMIステータス28に要因をセ
ットすると同時にSMI発生手段27がSMI信号31
によってCPU1にSMIを通知する。つまり従来ハー
ドウェアロジックによって行われていた処理を、SMI
(システムマネージメントインタラプト)と呼ばれる割
り込み処理によってCPU1に代行させる。
【0095】一方、CPU1からの命令が、第2のアー
キテクチャのデバイス制御手段に対して発行されたもの
である場合には、この命令は第2のデバイス制御手段に
そのまま伝えられる。第1、第2のいずれのデバイス制
御手段に対して命令が発行されたかの判断は、I/O受
付手段30によりCPU1からの命令を解析することに
より行われる。具体的には、I/O受付手段30に内蔵
されるデコーダ手段によりアドレスをデコード等するこ
とで判断する。
キテクチャのデバイス制御手段に対して発行されたもの
である場合には、この命令は第2のデバイス制御手段に
そのまま伝えられる。第1、第2のいずれのデバイス制
御手段に対して命令が発行されたかの判断は、I/O受
付手段30によりCPU1からの命令を解析することに
より行われる。具体的には、I/O受付手段30に内蔵
されるデコーダ手段によりアドレスをデコード等するこ
とで判断する。
【0096】PCIバス23はブリッジ回路39を介し
て、比較的低速で従来のデバイスとの互換性を持つ従来
バス41と接続される。そして、従来バス41にはBI
OS等を格納するROM43、FDD47に接続され
る。また、従来バス41には、キーボードコントローラ
48、シリアルコントローラ50を介して、各々キーボ
ード49、RS232Cインターフェイス52が接続さ
れる。更に、従来バス41には、割り込みコントローラ
54も接続される。なお、ROM切替手段45はCPU
1からのI/O命令に従ってROMのマッピングを変更
する機能を有する。
て、比較的低速で従来のデバイスとの互換性を持つ従来
バス41と接続される。そして、従来バス41にはBI
OS等を格納するROM43、FDD47に接続され
る。また、従来バス41には、キーボードコントローラ
48、シリアルコントローラ50を介して、各々キーボ
ード49、RS232Cインターフェイス52が接続さ
れる。更に、従来バス41には、割り込みコントローラ
54も接続される。なお、ROM切替手段45はCPU
1からのI/O命令に従ってROMのマッピングを変更
する機能を有する。
【0097】また、キーボード49内にはキーボード側
のコントローラであるキーボードユニットコントローラ
55が内蔵されている。
のコントローラであるキーボードユニットコントローラ
55が内蔵されている。
【0098】図2はメモリマッピングを切り替えるため
のハードウェアの構成を説明する図である。図1のRO
M43を例とすると、ROM本体66はハードウェア全
体を制御するシステムBIOS、HDD37等の周辺機
器を個別に制御する複数の拡張BIOS等から構成され
る。ハードウェアの動作モードに対応して、これらのB
IOSのCPU1のアドレスに対する割り付けを、図1
のROM切替手段45によって変更する。CPU1から
動作モード切り替えのI/O命令を受けると、ROM切
替手段45は内部のデコーダ62、デコーダ64をスイ
ッチ手段60によって切り替える。具体的には、切り替
え信号によりデコーダイネーブル信号を発生させ、さら
に選択されたデコーダからROM選択信号を発生させて
いる。なお、図1のメモリ設定レジスタ17、VRAM
切替手段35におけるメモリマップの切り替えも同様の
手法で行われる。
のハードウェアの構成を説明する図である。図1のRO
M43を例とすると、ROM本体66はハードウェア全
体を制御するシステムBIOS、HDD37等の周辺機
器を個別に制御する複数の拡張BIOS等から構成され
る。ハードウェアの動作モードに対応して、これらのB
IOSのCPU1のアドレスに対する割り付けを、図1
のROM切替手段45によって変更する。CPU1から
動作モード切り替えのI/O命令を受けると、ROM切
替手段45は内部のデコーダ62、デコーダ64をスイ
ッチ手段60によって切り替える。具体的には、切り替
え信号によりデコーダイネーブル信号を発生させ、さら
に選択されたデコーダからROM選択信号を発生させて
いる。なお、図1のメモリ設定レジスタ17、VRAM
切替手段35におけるメモリマップの切り替えも同様の
手法で行われる。
【0099】図3は本第1の実施例の概念を説明する図
である。第2のアーキテクチャ用に設計されたアプリケ
ーションプログラム80によるI/O命令が発生する
と、OS82は特に意識せず命令をそのままハードウェ
ア84に伝える。ハードウェア84(BIOSを含む)
ではエミュレート手段86(図1のサブコントローラ2
5により起動されるSMIに相当)が、受けた命令をハ
ード変更部分88(図1のメモリコントローラ11に相
当)が動作できるようにエミュレートし、ハード変更部
分88は当初の命令に準じた動作が可能になる。このよ
うにハードウェア84内部においてエミュレート動作を
行うと、アプリケーションプログラム80、OS82に
対する第2のアーキテクチャの互換性を確保できる上、
動作も高速になる。
である。第2のアーキテクチャ用に設計されたアプリケ
ーションプログラム80によるI/O命令が発生する
と、OS82は特に意識せず命令をそのままハードウェ
ア84に伝える。ハードウェア84(BIOSを含む)
ではエミュレート手段86(図1のサブコントローラ2
5により起動されるSMIに相当)が、受けた命令をハ
ード変更部分88(図1のメモリコントローラ11に相
当)が動作できるようにエミュレートし、ハード変更部
分88は当初の命令に準じた動作が可能になる。このよ
うにハードウェア84内部においてエミュレート動作を
行うと、アプリケーションプログラム80、OS82に
対する第2のアーキテクチャの互換性を確保できる上、
動作も高速になる。
【0100】2.SMI処理についての説明 次に、SMI処理について説明する。
【0101】さて、本実施例では、エミュレート処理を
行うための割り込みとして、SMIと呼ばれる割り込み
を利用している。SMIはインテル社製CPU、SL
Enhanced486(商標名)、Pentium
(商標名)等でサポートされたSMM(システムマネジ
メントモード)に移行する際の割り込みである。このS
MIは電源制御用の特別割り込み手段として最新のイン
テル社製CPUに備えられた機能であるが、本発明で
は、それをハード変更部分の互換性維持のために利用し
たところに特徴がある。
行うための割り込みとして、SMIと呼ばれる割り込み
を利用している。SMIはインテル社製CPU、SL
Enhanced486(商標名)、Pentium
(商標名)等でサポートされたSMM(システムマネジ
メントモード)に移行する際の割り込みである。このS
MIは電源制御用の特別割り込み手段として最新のイン
テル社製CPUに備えられた機能であるが、本発明で
は、それをハード変更部分の互換性維持のために利用し
たところに特徴がある。
【0102】即ち、従来のエミュレートシステムでは割
り込みに関してはNMIを利用していた。しかし、この
NMIを用いて、第2のコンピュータシステムに第1の
デバイス制御手段を混在させるという本発明のエミュレ
ート処理を実現しようとすると、後述するように種々の
問題が生じる。一方、SMIは、電源制御用の割り込み
手段として提供されたものであり、CPUのSMI端子
にSMI信号を入力してから割り込みが終了するまでに
一定時間を要してしまうという問題がある。これは、S
MIでは、SMI信号を受け付けてからSIMが終了す
るまでの間に所定の手順を踏まなければならず、この手
順を踏むための時間が必要となるからである。電源制御
用にSMIを使用する場合にはこれは大きな問題となら
ないが、SMIを通常のエミユレート処理、即ち第2の
コンピュータシステム上で第1のアプリケーションプロ
グラムを動作させるというエミュレート処理に単に利用
するだけであると、アプリケーションプログラムの処理
スピードが低下する等の問題が生じる。
り込みに関してはNMIを利用していた。しかし、この
NMIを用いて、第2のコンピュータシステムに第1の
デバイス制御手段を混在させるという本発明のエミュレ
ート処理を実現しようとすると、後述するように種々の
問題が生じる。一方、SMIは、電源制御用の割り込み
手段として提供されたものであり、CPUのSMI端子
にSMI信号を入力してから割り込みが終了するまでに
一定時間を要してしまうという問題がある。これは、S
MIでは、SMI信号を受け付けてからSIMが終了す
るまでの間に所定の手順を踏まなければならず、この手
順を踏むための時間が必要となるからである。電源制御
用にSMIを使用する場合にはこれは大きな問題となら
ないが、SMIを通常のエミユレート処理、即ち第2の
コンピュータシステム上で第1のアプリケーションプロ
グラムを動作させるというエミュレート処理に単に利用
するだけであると、アプリケーションプログラムの処理
スピードが低下する等の問題が生じる。
【0103】本発明者は、第2のコンピュータシステム
に第1のデバイス制御手段を混在させるという本発明の
エミュレート処理では、エミュレート処理の対象となる
ものはメモリマップの変換等の処理であり、SMI処理
のスピード自体はそれほど問題にならない点に着目し
た。更に、後述する第2の実施例に示すようにスピード
を要するエミュレート処理と要しないエミュレート処理
とを別々に取り扱うこと等で、このスピードの問題を解
決できると考え、このSMIをハード変更部のエミュレ
ート処理に利用することとしたのである。
に第1のデバイス制御手段を混在させるという本発明の
エミュレート処理では、エミュレート処理の対象となる
ものはメモリマップの変換等の処理であり、SMI処理
のスピード自体はそれほど問題にならない点に着目し
た。更に、後述する第2の実施例に示すようにスピード
を要するエミュレート処理と要しないエミュレート処理
とを別々に取り扱うこと等で、このスピードの問題を解
決できると考え、このSMIをハード変更部のエミュレ
ート処理に利用することとしたのである。
【0104】次に、SMI処理の動作の概略について説
明する。
明する。
【0105】(1)システムがCPUに対してSMI信
号を入力すると、CPUはSMIACT#信号(#は”
0”レベルでアサートであることを示す)をアサートし
て、SMM専用の物理メモリであるSMRAMをイネー
ブルすることをシステムに通知する。
号を入力すると、CPUはSMIACT#信号(#は”
0”レベルでアサートであることを示す)をアサートし
て、SMM専用の物理メモリであるSMRAMをイネー
ブルすることをシステムに通知する。
【0106】(2)CPUは、CPUのステート(CP
Uの内部レジスタの内容)を、SMRAMのアドレス・
ロケーション3FFFFHから開始してスタックのよう
に下方向にセーブ(格納)してゆく。
Uの内部レジスタの内容)を、SMRAMのアドレス・
ロケーション3FFFFHから開始してスタックのよう
に下方向にセーブ(格納)してゆく。
【0107】(3)CPUの制御モードがSMMのプロ
セッサ環境(疑似リアルモード)に切り替わる。このS
MMはリアルモード、プロテクトモード、仮想86モー
ドとは別の制御用モードである。
セッサ環境(疑似リアルモード)に切り替わる。このS
MMはリアルモード、プロテクトモード、仮想86モー
ドとは別の制御用モードである。
【0108】(4)CPUはSMRAMの絶対アドレス
38000Hにジャンプし、SMMハンドラを実行す
る。即ち独自の命令体系により動作するSMMハンドラ
によってSMI発生要因を検出し、指定された処理を実
行する。
38000Hにジャンプし、SMMハンドラを実行す
る。即ち独自の命令体系により動作するSMMハンドラ
によってSMI発生要因を検出し、指定された処理を実
行する。
【0109】(5)SMMハンドラは、SMRAMから
CPUのステート(内部レジスタ内容)をリストアし、
SMIACT#信号をディアサートして、割り込みが行
われたプログラム(アプリケーションプログラム又はO
S)の実行に制御を戻すRSM命令を実行する。なお、
RSMを実行する前に、SMBASEをリロケートする
設定を行えば、次のSMI処理においてSMRAMが配
置されるアドレス位置を変更することができる。そし
て、SMIにおいては、SMBASEのリロケートは、
SMI処理の中でおいてのみ可能となっている。さて、
本実施例では、エミュレート処理のための割り込みとし
てNMIではなく、上述のSMIを利用している。その
理由は以下の通りである。
CPUのステート(内部レジスタ内容)をリストアし、
SMIACT#信号をディアサートして、割り込みが行
われたプログラム(アプリケーションプログラム又はO
S)の実行に制御を戻すRSM命令を実行する。なお、
RSMを実行する前に、SMBASEをリロケートする
設定を行えば、次のSMI処理においてSMRAMが配
置されるアドレス位置を変更することができる。そし
て、SMIにおいては、SMBASEのリロケートは、
SMI処理の中でおいてのみ可能となっている。さて、
本実施例では、エミュレート処理のための割り込みとし
てNMIではなく、上述のSMIを利用している。その
理由は以下の通りである。
【0110】(1)CPUが現在どの動作モードにあっ
てもSMM内では同一の命令体系によるSMMハンドラ
が使用できるため、開発が容易である。これを更に詳し
く説明すれば以下のようになる。
てもSMM内では同一の命令体系によるSMMハンドラ
が使用できるため、開発が容易である。これを更に詳し
く説明すれば以下のようになる。
【0111】即ち、NMIでは、NMIが起動した際の
CPUの制御モード(プロテクトモード、仮想86モー
ド、リアルモードのいずれか)で、その後のNMI処理
が行われることになる。そして、仮想86モード、リア
ルモードでは、メモリのアドレスが16ビット(〜1M
B)となるのに対して、プロテクトモードでは32ビッ
ト(〜4GB)となり、当然アドレッシング方法も異な
る。従って、どの動作モードでNMI処理が行われても
プログラムが正常に動作するようにプログラムを組む必
要が生じ、プログラムの開発が困難になる。即ち、プロ
グラムの中で16ビットから32ビットあるいは32ビ
ットから16ビットにアドレッシングを変更するにはp
refixを使用すればよい。しかし、各々の動作モー
ドにおいて16ビット、32ビットのいずれのアドレッ
シングを基本にするかをprefixに対して設定する
必要がある。そして、このモード設定を行うには、CP
Uの内部レジスタのEFIAGのVMビットにデータを
書き込む必要がある。しかし、このVMビットには特権
レベルによる保護がかかっており、最上位特権レベルで
なければこのVMビットにデータを書き込むことができ
ない。そして、NMIの処理を最上位の特権レベルに設
定するには、IDT(インタラプトディスクリプタテー
ブル)のDPL値を指定する必要があり、処理が更に複
雑になる。
CPUの制御モード(プロテクトモード、仮想86モー
ド、リアルモードのいずれか)で、その後のNMI処理
が行われることになる。そして、仮想86モード、リア
ルモードでは、メモリのアドレスが16ビット(〜1M
B)となるのに対して、プロテクトモードでは32ビッ
ト(〜4GB)となり、当然アドレッシング方法も異な
る。従って、どの動作モードでNMI処理が行われても
プログラムが正常に動作するようにプログラムを組む必
要が生じ、プログラムの開発が困難になる。即ち、プロ
グラムの中で16ビットから32ビットあるいは32ビ
ットから16ビットにアドレッシングを変更するにはp
refixを使用すればよい。しかし、各々の動作モー
ドにおいて16ビット、32ビットのいずれのアドレッ
シングを基本にするかをprefixに対して設定する
必要がある。そして、このモード設定を行うには、CP
Uの内部レジスタのEFIAGのVMビットにデータを
書き込む必要がある。しかし、このVMビットには特権
レベルによる保護がかかっており、最上位特権レベルで
なければこのVMビットにデータを書き込むことができ
ない。そして、NMIの処理を最上位の特権レベルに設
定するには、IDT(インタラプトディスクリプタテー
ブル)のDPL値を指定する必要があり、処理が更に複
雑になる。
【0112】一方、SMIでは、割り込み前のCPUの
制御モードに依存せず、必ず疑似リアルモードと呼ばれ
るSMMモードに入り、SMM内では同一の命令体系に
よるSMMハンドラが使用できるため、上記したような
問題が全く生じないという利点がある。
制御モードに依存せず、必ず疑似リアルモードと呼ばれ
るSMMモードに入り、SMM内では同一の命令体系に
よるSMMハンドラが使用できるため、上記したような
問題が全く生じないという利点がある。
【0113】更に、NMIには、プロテクトモード時に
NMI処理でI/Oアクセスを行おうとすると、I/O
トラップ(DMA、HDD等のI/O)がかかってる可
能性があるため、特権レベルが最上位でないと正しくI
/Oアクセスができないという問題がある。そして、特
権レベルを最上位にするためには、上述のようにIDT
のDPL値を指定する処理が必要になる。
NMI処理でI/Oアクセスを行おうとすると、I/O
トラップ(DMA、HDD等のI/O)がかかってる可
能性があるため、特権レベルが最上位でないと正しくI
/Oアクセスができないという問題がある。そして、特
権レベルを最上位にするためには、上述のようにIDT
のDPL値を指定する処理が必要になる。
【0114】(2)また、NMIでは、割り込みスター
トのためのジャンプアドレス(割り込みに対応した処理
を行うルーチンが格納されたアドレス)が、アプリケー
ションプログラム、OS等により容易に書き替えできる
アドレス位置、例えば(0008H〜000BH)に格
納されている。従って、アプリケーションプログラム等
により、このアドレス位置が書き換えられてしまうと、
割り込み処理が不可能になるという問題がある。これに
対して、SMIでは、ジャンプアドレスはCPU内のレ
ジスタであるSMBASEに設定される。そして、SM
Iが開始されるとこのSMBASEにより設定された開
始アドレスにジャンプし処理が実行されることになる。
この場合、このSMBASEの変更はSMMからRSM
命令により復帰する際にのみ可能であり、従い、ジャン
プアドレスの変更は、SMMハンドラでなければ、つま
りSMMに入っていなければ行うことができない。この
点で、SIMはNMIに対して大きな優位点をもつ。こ
れを更に詳しく説明すれば以下のようになる。
トのためのジャンプアドレス(割り込みに対応した処理
を行うルーチンが格納されたアドレス)が、アプリケー
ションプログラム、OS等により容易に書き替えできる
アドレス位置、例えば(0008H〜000BH)に格
納されている。従って、アプリケーションプログラム等
により、このアドレス位置が書き換えられてしまうと、
割り込み処理が不可能になるという問題がある。これに
対して、SMIでは、ジャンプアドレスはCPU内のレ
ジスタであるSMBASEに設定される。そして、SM
Iが開始されるとこのSMBASEにより設定された開
始アドレスにジャンプし処理が実行されることになる。
この場合、このSMBASEの変更はSMMからRSM
命令により復帰する際にのみ可能であり、従い、ジャン
プアドレスの変更は、SMMハンドラでなければ、つま
りSMMに入っていなければ行うことができない。この
点で、SIMはNMIに対して大きな優位点をもつ。こ
れを更に詳しく説明すれば以下のようになる。
【0115】例えば、図4(A)には、リアルモード時
におけるNMI処理の動作が示され、図4(B)にはそ
のフローチャート図が示される。NMIが受け付けられ
(ステップA1)、ベクトル2が発生すると(ステップ
A2)、メインRAM上の割り込みポインタテーブルの
0008H〜000BHから、ベクトル2の割り込みス
タートアドレス(ジャンプアドレス)が読み出される
(ステップA3)。そして、戻りアドレスをメインRA
M上のスタックにストアした後(ステップA4)、割り
込みスタートアドレスにジャンプし(ステップA5)、
この割り込みスタートアドレスに格納されるルーチンに
したがってNMI処理を実行することになる。なお、N
MIでは、CPUのレジスタ内容についてはSMIと異
なりスタックに自動的にストアされない。
におけるNMI処理の動作が示され、図4(B)にはそ
のフローチャート図が示される。NMIが受け付けられ
(ステップA1)、ベクトル2が発生すると(ステップ
A2)、メインRAM上の割り込みポインタテーブルの
0008H〜000BHから、ベクトル2の割り込みス
タートアドレス(ジャンプアドレス)が読み出される
(ステップA3)。そして、戻りアドレスをメインRA
M上のスタックにストアした後(ステップA4)、割り
込みスタートアドレスにジャンプし(ステップA5)、
この割り込みスタートアドレスに格納されるルーチンに
したがってNMI処理を実行することになる。なお、N
MIでは、CPUのレジスタ内容についてはSMIと異
なりスタックに自動的にストアされない。
【0116】一方、図5(A)には、プロテクトモード
時におけるNMI処理の動作が示され、図5(B)には
そのフローチャート図が示される。ここで、メインRA
M上に格納されるIDT(インタラプトディスクリプタ
テーブル)の先頭アドレスはCPUの内部レジスタであ
るIDTRにより指定され、同じくメインRAM上に格
納されるGDT/LDT(ディスクリプタテーブル)の
先頭アドレスはCPUの内部レジスタであるGDTR/
LDTRにより指定される。そして、IDTには、NM
Iにより発生するベクトル2用のオフセット及びセレク
タが格納されており、このセレクタによりGDT/LD
Tに格納されるディスクリプタが指定される。そして、
このディスクリプタにより指定される上位アドレスとI
DT上のオフセットにより指定される下位アドレスとに
より、NMI処理を行うルーチンが格納されるアドレ
ス、即ちエントリーポイントが指定されることになる。
プロテクトモード時の動作は以下のようになる。即ち、
NMIが受け付けられ(ステップB1)、ベクトル2が
発生すると(ステップB2)、IDT内のセレクタによ
りGDT/LDT内のディスクリプタが指定され、読み
出される(ステップB3)。次に、戻りアドレスがスタ
ックにストアされ(ステップB4)、ステップB3で読
み出されたディスクリプタ及びIDT内のオフセットに
より指定されるエントリーポイントにジャンプし、NM
I処理が実行されることになる。
時におけるNMI処理の動作が示され、図5(B)には
そのフローチャート図が示される。ここで、メインRA
M上に格納されるIDT(インタラプトディスクリプタ
テーブル)の先頭アドレスはCPUの内部レジスタであ
るIDTRにより指定され、同じくメインRAM上に格
納されるGDT/LDT(ディスクリプタテーブル)の
先頭アドレスはCPUの内部レジスタであるGDTR/
LDTRにより指定される。そして、IDTには、NM
Iにより発生するベクトル2用のオフセット及びセレク
タが格納されており、このセレクタによりGDT/LD
Tに格納されるディスクリプタが指定される。そして、
このディスクリプタにより指定される上位アドレスとI
DT上のオフセットにより指定される下位アドレスとに
より、NMI処理を行うルーチンが格納されるアドレ
ス、即ちエントリーポイントが指定されることになる。
プロテクトモード時の動作は以下のようになる。即ち、
NMIが受け付けられ(ステップB1)、ベクトル2が
発生すると(ステップB2)、IDT内のセレクタによ
りGDT/LDT内のディスクリプタが指定され、読み
出される(ステップB3)。次に、戻りアドレスがスタ
ックにストアされ(ステップB4)、ステップB3で読
み出されたディスクリプタ及びIDT内のオフセットに
より指定されるエントリーポイントにジャンプし、NM
I処理が実行されることになる。
【0117】以上の説明から理解されるように、リアル
モード時においては、割り込みスタートアドレス(ジャ
ンプアドレス)を(0008H〜000BH)に正しく
書きこんでおかなければ所望のアドレスからNMI処理
をスタートさせることができないが、この割り込みスタ
ートアドレスはメインRAM上に格納されておりアプリ
ケーションプログラム、OSにより簡単に書き換え可能
である。そして、NMIでは割り込みスタートアドレス
の格納される位置は固定されており、この位置をアプリ
ケーションプログラム、OSがアクセスできないような
位置に変更することはできない。
モード時においては、割り込みスタートアドレス(ジャ
ンプアドレス)を(0008H〜000BH)に正しく
書きこんでおかなければ所望のアドレスからNMI処理
をスタートさせることができないが、この割り込みスタ
ートアドレスはメインRAM上に格納されておりアプリ
ケーションプログラム、OSにより簡単に書き換え可能
である。そして、NMIでは割り込みスタートアドレス
の格納される位置は固定されており、この位置をアプリ
ケーションプログラム、OSがアクセスできないような
位置に変更することはできない。
【0118】また、プロテクトモードでは、IDT、G
DT/LDTは、CPU内のIDTR、GDTR/LD
TRで指し示すアドレスに配置されており、これらのI
DT、GDT/LDT及びIDTR、GDTR/LDT
Rはアプリケーションプログラム、OSにより自由に設
定され、また、自由に変更され得る。即ち、例えば、マ
ルチタスクが可能なOSであるマイクロソフト社製のM
S−Windowsでは、各々のタスク(ウインドウ)
で、IDT等の値が異なる場合がある。従って、システ
ム側がエミュレート処理を行うために、このIDTが格
納されている場所をアプリケーションプログラム等がア
クセスできないアドレス位置に変更しようとしても、シ
ステム側はどのようなOSが使用されているかを認識で
きないため、そのような変更処理は不可能である。ま
た、仮に、そのアドレス位置を変更したとしても、その
後に、アプリケーションプログラム等により該アドレス
位置が書き換えられるという事態も生じる。以上より、
NMIにより、本発明のようなエミュレート処理を実現
することはほとんど不可能である。
DT/LDTは、CPU内のIDTR、GDTR/LD
TRで指し示すアドレスに配置されており、これらのI
DT、GDT/LDT及びIDTR、GDTR/LDT
Rはアプリケーションプログラム、OSにより自由に設
定され、また、自由に変更され得る。即ち、例えば、マ
ルチタスクが可能なOSであるマイクロソフト社製のM
S−Windowsでは、各々のタスク(ウインドウ)
で、IDT等の値が異なる場合がある。従って、システ
ム側がエミュレート処理を行うために、このIDTが格
納されている場所をアプリケーションプログラム等がア
クセスできないアドレス位置に変更しようとしても、シ
ステム側はどのようなOSが使用されているかを認識で
きないため、そのような変更処理は不可能である。ま
た、仮に、そのアドレス位置を変更したとしても、その
後に、アプリケーションプログラム等により該アドレス
位置が書き換えられるという事態も生じる。以上より、
NMIにより、本発明のようなエミュレート処理を実現
することはほとんど不可能である。
【0119】一方、SMIにおいては、電源投入又はリ
セット直後においては、SMI処理のスタートアドレス
は、CPUの内部レジスタであるSMBASEのデフォ
ルト値38000Hに固定されている。このSMBAS
Eのデフォルト値38000Hはアプリケーションプロ
グラム等により書き換えることができないものである。
即ち、この38000Hを変更するためには、SMMに
入り前述のSMBASEのリロケート機能を用いなけれ
ばならない。そして、SMIは、SMI信号というハー
ドウェア信号でのみ発生可能であるため、システム以外
のアプリケーションプログラム等がSMMに入ることは
できない。従って、SMI処理のスタートアドレスがア
プリケーションプログラム等で書き換えられることはな
く、この点において、SMIは本発明のエミュレート処
理に使用される割り込みとして最適なものである。
セット直後においては、SMI処理のスタートアドレス
は、CPUの内部レジスタであるSMBASEのデフォ
ルト値38000Hに固定されている。このSMBAS
Eのデフォルト値38000Hはアプリケーションプロ
グラム等により書き換えることができないものである。
即ち、この38000Hを変更するためには、SMMに
入り前述のSMBASEのリロケート機能を用いなけれ
ばならない。そして、SMIは、SMI信号というハー
ドウェア信号でのみ発生可能であるため、システム以外
のアプリケーションプログラム等がSMMに入ることは
できない。従って、SMI処理のスタートアドレスがア
プリケーションプログラム等で書き換えられることはな
く、この点において、SMIは本発明のエミュレート処
理に使用される割り込みとして最適なものである。
【0120】(3)SMMへの移行時にCPUのステー
タス(内部レジスタ内容)がSMRAMのステート・セ
ーブ領域にセーブされ、RSM命令によりその内容がC
PUの内部レジスタに自動的にリストアされる。これに
よりCPUを元の状態に自動的に復帰できる。更に、こ
のステート・セーブ領域の一部のレジスタは、SMMハ
ンドラが読み出して変更し、この変更した値をRSM命
令によりCPUの内部レジスタにリストアすることもで
きる。これにより、SMMハンドラにより変更した内容
をCPUの内部レジスタに設定することも可能となる。
タス(内部レジスタ内容)がSMRAMのステート・セ
ーブ領域にセーブされ、RSM命令によりその内容がC
PUの内部レジスタに自動的にリストアされる。これに
よりCPUを元の状態に自動的に復帰できる。更に、こ
のステート・セーブ領域の一部のレジスタは、SMMハ
ンドラが読み出して変更し、この変更した値をRSM命
令によりCPUの内部レジスタにリストアすることもで
きる。これにより、SMMハンドラにより変更した内容
をCPUの内部レジスタに設定することも可能となる。
【0121】これに対して、NMIでは、戻りアドレス
は自動的にスタック領域にスタックされるが、内部レジ
スタ等のデータが自動的にスタックされることはない。
また、NMIでは、スタック領域に、戻りアドレス等を
スタックする場合に以下の問題がある。
は自動的にスタック領域にスタックされるが、内部レジ
スタ等のデータが自動的にスタックされることはない。
また、NMIでは、スタック領域に、戻りアドレス等を
スタックする場合に以下の問題がある。
【0122】例えば、図5(C)に示すように、スタッ
ク領域ではスタックポインタ(SP)の示すアドレスか
ら、アドレスの小さい方に向かって順次データがスタッ
クされてゆく。このスタック領域は、NMIのみなら
ず、他のプログラム等によっても使われている場合があ
る。一方、プログラムデータ領域に格納されるプログラ
ムは、図5(C)に示すようにアドレスの小さい方から
走る。この場合、もし、スタック領域とプログラムデー
タ領域との間の余裕(△D)が、4バイトよりも小さく
なった時にNMIが発生すると、プログラムデータ領域
に格納されるデータが破壊される可能性がある。このよ
うなスタック領域とプログラムデータ領域の衝突は、例
えばスタックポインタ(SP)の位置を衝突が生じない
ような位置に設定することにより避けることもできる。
しかし、図5(C)に示すように、他のプログラム等に
よりスタック領域が使用され、領域間の余裕が少ない場
合にNMIが発生した場合には、このような衝突の事態
を避けることはできない。
ク領域ではスタックポインタ(SP)の示すアドレスか
ら、アドレスの小さい方に向かって順次データがスタッ
クされてゆく。このスタック領域は、NMIのみなら
ず、他のプログラム等によっても使われている場合があ
る。一方、プログラムデータ領域に格納されるプログラ
ムは、図5(C)に示すようにアドレスの小さい方から
走る。この場合、もし、スタック領域とプログラムデー
タ領域との間の余裕(△D)が、4バイトよりも小さく
なった時にNMIが発生すると、プログラムデータ領域
に格納されるデータが破壊される可能性がある。このよ
うなスタック領域とプログラムデータ領域の衝突は、例
えばスタックポインタ(SP)の位置を衝突が生じない
ような位置に設定することにより避けることもできる。
しかし、図5(C)に示すように、他のプログラム等に
よりスタック領域が使用され、領域間の余裕が少ない場
合にNMIが発生した場合には、このような衝突の事態
を避けることはできない。
【0123】また、スタックポインタ(SP)は、他の
アプリケーションプログラム等で容易に書き換えること
ができ、バグ等により誤った値にスタックポインタが書
き換えられる場合もある。また、例えばCPUの内部レ
ジスタに定数を書き込む手法として次のような手法が考
えられる。即ち、スタック領域をROM等に設定し、
(popA、popB・・)等の命令によりスタック領
域として設定されたROMからデータを読み出し、これ
らのデータをCPUの内部レジスタA、B・・・等に設
定する手法である。ここで「popA」の命令は、スタ
ック領域にスタックされたデータを読み出しCPUのA
レジスタに書き込む命令を意味する。この命令によれ
ば、「move」等の命令を用いた場合に比べ、プログ
ラムを簡易にできる。しかし、この手法を用いた場合に
は、スタック領域はROMに設定されている。従って、
この状態でNMIによる割り込みが発生すると、ROM
は書き込み不可のメモリであるため、戻りアドレスを書
き込めず、従って、NMIから復帰できずプログラムが
暴走するおそれがある。また、スタック領域がRAMに
設定されていた場合であっても、NMI処理によりRA
Mに書き込まれていたデータが破壊されるおそれがあ
る。
アプリケーションプログラム等で容易に書き換えること
ができ、バグ等により誤った値にスタックポインタが書
き換えられる場合もある。また、例えばCPUの内部レ
ジスタに定数を書き込む手法として次のような手法が考
えられる。即ち、スタック領域をROM等に設定し、
(popA、popB・・)等の命令によりスタック領
域として設定されたROMからデータを読み出し、これ
らのデータをCPUの内部レジスタA、B・・・等に設
定する手法である。ここで「popA」の命令は、スタ
ック領域にスタックされたデータを読み出しCPUのA
レジスタに書き込む命令を意味する。この命令によれ
ば、「move」等の命令を用いた場合に比べ、プログ
ラムを簡易にできる。しかし、この手法を用いた場合に
は、スタック領域はROMに設定されている。従って、
この状態でNMIによる割り込みが発生すると、ROM
は書き込み不可のメモリであるため、戻りアドレスを書
き込めず、従って、NMIから復帰できずプログラムが
暴走するおそれがある。また、スタック領域がRAMに
設定されていた場合であっても、NMI処理によりRA
Mに書き込まれていたデータが破壊されるおそれがあ
る。
【0124】これに対して、SMIでは、CPUの内部
レジスタの内容は、SMI専用のメモリであるSMRA
Mに格納されるため、上記のNMIで起きた問題は生じ
ない。
レジスタの内容は、SMI専用のメモリであるSMRA
Mに格納されるため、上記のNMIで起きた問題は生じ
ない。
【0125】(4)NMI(ノンマスカブルインタラプ
ト)や通常の割り込み(INT)は第2のアーキテクチ
ャに対応するアプリケーションプログラムが使用してい
る場合が想定され、むやみに他の機能を割り当てること
は互換性の維持に反するのに対し、SMIは歴史が浅く
アプリケーションプログラムが使用する可能性はゼロで
ある。また、SMIはNMIや通常の割り込みよりも優
先順位が高い。
ト)や通常の割り込み(INT)は第2のアーキテクチ
ャに対応するアプリケーションプログラムが使用してい
る場合が想定され、むやみに他の機能を割り当てること
は互換性の維持に反するのに対し、SMIは歴史が浅く
アプリケーションプログラムが使用する可能性はゼロで
ある。また、SMIはNMIや通常の割り込みよりも優
先順位が高い。
【0126】(5)SMIが発生するとSMIACT#
信号がCPUにより出力され、ハードウェア的にSMI
ルーチンに入ったことを検出できる。このため、任意の
アドレスにSMI用のRAMであるSMRAMを配置で
きるとともに、ハードウェア的な処理をSMIACT#
信号をトリガーにして行うこともできる。次に、図6を
用いて本第1の実施例に則したSMI処理の動作原理を
説明する。S10で要因(I/O命令)が発生すると、
S11でI/O受付手段30がそれを受け取り、ハード
ウェアロジックによって、SMIステータス28中の要
因レジスタに要因をセットし、S12でSMIを発生す
る。S13でSMMモードに移行し、SMMハンドラ2
6(図1参照)が要因レジスタを読み取り(要因レジス
タはすべてのCPUモードからR/Wできるようマッピ
ングしておく)、要因に応じた処理を行い、S14でR
SM命令によって復帰する。
信号がCPUにより出力され、ハードウェア的にSMI
ルーチンに入ったことを検出できる。このため、任意の
アドレスにSMI用のRAMであるSMRAMを配置で
きるとともに、ハードウェア的な処理をSMIACT#
信号をトリガーにして行うこともできる。次に、図6を
用いて本第1の実施例に則したSMI処理の動作原理を
説明する。S10で要因(I/O命令)が発生すると、
S11でI/O受付手段30がそれを受け取り、ハード
ウェアロジックによって、SMIステータス28中の要
因レジスタに要因をセットし、S12でSMIを発生す
る。S13でSMMモードに移行し、SMMハンドラ2
6(図1参照)が要因レジスタを読み取り(要因レジス
タはすべてのCPUモードからR/Wできるようマッピ
ングしておく)、要因に応じた処理を行い、S14でR
SM命令によって復帰する。
【0127】3.サブコントローラについての説明 図7には、サブコントローラ25内のI/O受付手段3
0、SMIマスク手段29、SMIステータス28、S
MI発生手段27の回路構成の一例が示される。I/O
受付手段30は、アドレスラッチデコーダ200、タイ
ミング回路202、AND回路204、206を含む。
そして、アドレスデコーダラッチ200にはアドレス信
号AD15〜AD0(実際には、アドレスとデータがマ
ルチプレクサされた信号)が入力され、AD15〜AD
0により指定されるアドレスが200Hの場合に信号2
14が”1”に、300Hの場合に信号216が”1”
になる。また、タイミング回路202には、FRAME
信号、CBE3〜0信号、PCICLKが入力され、所
定のタイミングで所定幅のIOWC信号が出力される。
即ち、CPUからの命令がI/O命令であり、しかも書
き込みモードである場合にIOWC信号は”1”とな
る。そして、このIOWC信号と信号214、216と
によりIOW200信号、IOW300信号が生成され
る。これによりIOW200信号、IOW300信号
は、CPUから入力されるアドレスが各々200H又は
300Hであり、I/O書き込み命令である場合にアサ
ートされることになる。
0、SMIマスク手段29、SMIステータス28、S
MI発生手段27の回路構成の一例が示される。I/O
受付手段30は、アドレスラッチデコーダ200、タイ
ミング回路202、AND回路204、206を含む。
そして、アドレスデコーダラッチ200にはアドレス信
号AD15〜AD0(実際には、アドレスとデータがマ
ルチプレクサされた信号)が入力され、AD15〜AD
0により指定されるアドレスが200Hの場合に信号2
14が”1”に、300Hの場合に信号216が”1”
になる。また、タイミング回路202には、FRAME
信号、CBE3〜0信号、PCICLKが入力され、所
定のタイミングで所定幅のIOWC信号が出力される。
即ち、CPUからの命令がI/O命令であり、しかも書
き込みモードである場合にIOWC信号は”1”とな
る。そして、このIOWC信号と信号214、216と
によりIOW200信号、IOW300信号が生成され
る。これによりIOW200信号、IOW300信号
は、CPUから入力されるアドレスが各々200H又は
300Hであり、I/O書き込み命令である場合にアサ
ートされることになる。
【0128】SMIマスク手段29は、マスクレジスタ
208及びAND回路210、212を含む。マスクレ
ジスタ208は、SMIをマスクするための信号を格納
するレジスタであり、CK端子にはタイミング回路20
2から書き込み信号217が入力され、この書き込み信
号217に基づいてAD0、AD1からのデータを取り
込む。また、R端子に入力されるPCIRSTによりリ
セットされる。マスクレジスタ208の出力はAND回
路210、212に入力され、これによりIOW200
信号、IOW300信号が後段に伝わるのをマスクする
ことができる。SMIステータス28は、論理回路22
2〜228、要因レジスタ230、232、トライステ
ートバッファ234、236を含む。要因レジスタ23
0、232は、I/O受付手段30からSMIマスク手
段29を介して入力されたデータを要因データとして格
納するレジスタである。例えば、IOW200信号が”
1”で、マスクがかかっていない場合、即ちマスクレジ
スタ208の出力Q0が”1”の場合には、要因レジス
タ230に”1”が書き込まれる。これは、CPUによ
りアドレス200Hにデータ書き込み命令が発行された
という要因が設定されたことを意味する。一方、この要
因をクリアーする場合には、タイミング回路202の出
力信号218を”1”にし、AD0、AD1により”
1”のデータを書き込めばよい。本実施例によれば、要
因レジスタ230、232の各々について要因をクリア
ーすることもでき、また、全ての要因をクリアーするこ
ともできる。これらの要因レジスタ230、232の出
力238、240は、トライステートバッファ234、
236を介して、要因判別ポートからのIORC40信
号により制御されて、PCIバス23上に出力される。
また、要因レジスタ230、232の出力238、24
0は、SMI発生手段27にも出力される。
208及びAND回路210、212を含む。マスクレ
ジスタ208は、SMIをマスクするための信号を格納
するレジスタであり、CK端子にはタイミング回路20
2から書き込み信号217が入力され、この書き込み信
号217に基づいてAD0、AD1からのデータを取り
込む。また、R端子に入力されるPCIRSTによりリ
セットされる。マスクレジスタ208の出力はAND回
路210、212に入力され、これによりIOW200
信号、IOW300信号が後段に伝わるのをマスクする
ことができる。SMIステータス28は、論理回路22
2〜228、要因レジスタ230、232、トライステ
ートバッファ234、236を含む。要因レジスタ23
0、232は、I/O受付手段30からSMIマスク手
段29を介して入力されたデータを要因データとして格
納するレジスタである。例えば、IOW200信号が”
1”で、マスクがかかっていない場合、即ちマスクレジ
スタ208の出力Q0が”1”の場合には、要因レジス
タ230に”1”が書き込まれる。これは、CPUによ
りアドレス200Hにデータ書き込み命令が発行された
という要因が設定されたことを意味する。一方、この要
因をクリアーする場合には、タイミング回路202の出
力信号218を”1”にし、AD0、AD1により”
1”のデータを書き込めばよい。本実施例によれば、要
因レジスタ230、232の各々について要因をクリア
ーすることもでき、また、全ての要因をクリアーするこ
ともできる。これらの要因レジスタ230、232の出
力238、240は、トライステートバッファ234、
236を介して、要因判別ポートからのIORC40信
号により制御されて、PCIバス23上に出力される。
また、要因レジスタ230、232の出力238、24
0は、SMI発生手段27にも出力される。
【0129】SMI発生手段27は、論理回路250〜
254、SMI発生レジスタ256を含む。このSMI
発生レジスタ256は、要因レジスタ230、232の
いずれか一方に要因が設定された場合に、SMI信号3
1をアサートし、これによりCPU1に割り込みがかけ
られる。また、NAND回路222、224の出力24
2、244は、論理回路250、254を介してSMI
発生レジスタ256に入力される。これにより要因レジ
スタ230、232の要因がクリアーされた場合に、S
MI信号31もクリアーされることになる。なお、SM
I発生レジスタ256のR端子にはPCIRST信号が
入力されリセット可能となっている。
254、SMI発生レジスタ256を含む。このSMI
発生レジスタ256は、要因レジスタ230、232の
いずれか一方に要因が設定された場合に、SMI信号3
1をアサートし、これによりCPU1に割り込みがかけ
られる。また、NAND回路222、224の出力24
2、244は、論理回路250、254を介してSMI
発生レジスタ256に入力される。これにより要因レジ
スタ230、232の要因がクリアーされた場合に、S
MI信号31もクリアーされることになる。なお、SM
I発生レジスタ256のR端子にはPCIRST信号が
入力されリセット可能となっている。
【0130】以上のように、サブコントローラ25で
は、CPU1から対応するポートに対するI/O命令が
発行されると、このI/O命令が要因データとして要因
レジスタ230、232に格納されるとともに、SMI
信号が発生される。次に、このSMI信号により起動さ
れたSMMハンドラ(実行手段)26が、要因判別ポー
トによりIORC40信号を制御し、これらの要因デー
タを読む。そして、SMMハンドラ26は、これらの要
因データを読み、更にI/Oアドレス200H等のポー
トのデータを読み、詳細な要因を判断する。そして、こ
れらの要因データ、ポートに書き込まれたデータに対応
した処理を行うことになる。
は、CPU1から対応するポートに対するI/O命令が
発行されると、このI/O命令が要因データとして要因
レジスタ230、232に格納されるとともに、SMI
信号が発生される。次に、このSMI信号により起動さ
れたSMMハンドラ(実行手段)26が、要因判別ポー
トによりIORC40信号を制御し、これらの要因デー
タを読む。そして、SMMハンドラ26は、これらの要
因データを読み、更にI/Oアドレス200H等のポー
トのデータを読み、詳細な要因を判断する。そして、こ
れらの要因データ、ポートに書き込まれたデータに対応
した処理を行うことになる。
【0131】さて、本実施例において要因レジスタに設
定される要因の種類としては、大別して次のものがあ
る。
定される要因の種類としては、大別して次のものがあ
る。
【0132】要因a:表示モードの切替のエミュレーシ
ョン、RAMウィンドウのエミュレーション、拡張RO
M領域をRAMに切替えるエミュレーション等を行うた
めのI/Oポートアクセス処理 要因b:CPUのスピード切替え処理 要因c:CPUのリセット(RESET、INIT)処
理 要因d:電源断(あるいはパワーフェール)処理 上記要因は、図8(A)に示すように、第1の要因レジ
スタ群により判別される。そして、要因aがセットされ
た場合には、第2の要因レジスタ群により更に詳細な要
因(e〜h)を調べることができる。同様に、要因cが
セットされた場合には、第3の要因レジスタ群により更
に詳細な要因(i、j)を調べることができる。このよ
うに、本実施例では、要因レジスタは、第1の要因レジ
スタ群の下位に第2、第3のレジスタ群が配置されると
いうような階層構造となっており、これにより要因の検
索を高速に行うことができる。即ち、全ての要因が並列
に配列されていると、1回目の検索で全ての要因を調べ
なければならないが、本実施例では1回目の検索で4個
の要因を調べればよいので、検索を高速に行うことがで
きる。
ョン、RAMウィンドウのエミュレーション、拡張RO
M領域をRAMに切替えるエミュレーション等を行うた
めのI/Oポートアクセス処理 要因b:CPUのスピード切替え処理 要因c:CPUのリセット(RESET、INIT)処
理 要因d:電源断(あるいはパワーフェール)処理 上記要因は、図8(A)に示すように、第1の要因レジ
スタ群により判別される。そして、要因aがセットされ
た場合には、第2の要因レジスタ群により更に詳細な要
因(e〜h)を調べることができる。同様に、要因cが
セットされた場合には、第3の要因レジスタ群により更
に詳細な要因(i、j)を調べることができる。このよ
うに、本実施例では、要因レジスタは、第1の要因レジ
スタ群の下位に第2、第3のレジスタ群が配置されると
いうような階層構造となっており、これにより要因の検
索を高速に行うことができる。即ち、全ての要因が並列
に配列されていると、1回目の検索で全ての要因を調べ
なければならないが、本実施例では1回目の検索で4個
の要因を調べればよいので、検索を高速に行うことがで
きる。
【0133】また、本実施例では、図8(B)に示すよ
うに、マスクレジスタについても要因レジスタの個々の
要因に対応しており、階層構造となっている。例えば、
第1のマスクレジスタでaの要因をマスク(SMI禁
止)すると、e〜hの要因も全てマスクされる。一方、
第1のマスクレジスタでaの要因のみマスクを解除(S
MI許可)すると、第2のマスクレジスタで許可された
ビットに対応した要因のみがSMIを発生することにな
る。
うに、マスクレジスタについても要因レジスタの個々の
要因に対応しており、階層構造となっている。例えば、
第1のマスクレジスタでaの要因をマスク(SMI禁
止)すると、e〜hの要因も全てマスクされる。一方、
第1のマスクレジスタでaの要因のみマスクを解除(S
MI許可)すると、第2のマスクレジスタで許可された
ビットに対応した要因のみがSMIを発生することにな
る。
【0134】図9、図10には、上記のように、要因レ
ジスタ、マスクレジスタを階層構造とした場合の回路構
成の一例が示される。また、図11(A)〜(C)に
は、リセット検出手段73、スピード切替検出手段7
4、電源断検出手段75の具体的回路構成の一例が示さ
れる。なお、表示切替検出手段76については図示しな
いが、これらの検出手段と同様の構成となる。
ジスタ、マスクレジスタを階層構造とした場合の回路構
成の一例が示される。また、図11(A)〜(C)に
は、リセット検出手段73、スピード切替検出手段7
4、電源断検出手段75の具体的回路構成の一例が示さ
れる。なお、表示切替検出手段76については図示しな
いが、これらの検出手段と同様の構成となる。
【0135】CPU1が、所定のI/Oポートにアクセ
スすると、次のようにして要因a及び要因e〜hの設定
が行われ、これらの要因に基づくSMIパルスが発生す
る。即ち、図9に示すように、アドレスラッチデコーダ
回路200からのアドレスデコード信号とタイミング回
路202からのI/OライトパルスIOWCとがAND
回路622〜625に入力され、要因e〜hによるSM
Iパルスである信号606〜609が生成される。そし
て、図10に示すように、これらの信号606〜609
と、第2のマスクレジスタ661の出力とがAND回路
675〜678に入力され、信号701〜704が生成
されると共に、これらの信号がOR回路679に入力さ
れ要因aによるSMIパルスが生成される。これによ
り、第2のマスクレジスタ661を用いて要因e〜h毎
にマスクすることが可能となる。また、要因e〜hのい
ずれかによるSMIパルスが発生すると、要因aによる
SMIパルスも発生する。そして、信号701〜704
は、図9に示すように、論理回路644〜647を介し
て第2の要因レジスタ群654〜657に入力され、こ
れにより要因e〜hについての設定が行われる。一方、
図10に示すように、要因aによるSMIパルスと第1
のマスクレジスタ660の出力はAND回路670に入
力され、信号706が生成される。これにより要因aが
マスクされると要因e〜hについてもマスクされること
になる。そして、信号706は、図9に示すように、論
理回路640を介して第1の要因レジスタ群の1つであ
る要因レジスタ650に入力され、これにより要因aの
設定が行われる。即ち、要因e〜hが設定されると要因
aについても設定されることになる。
スすると、次のようにして要因a及び要因e〜hの設定
が行われ、これらの要因に基づくSMIパルスが発生す
る。即ち、図9に示すように、アドレスラッチデコーダ
回路200からのアドレスデコード信号とタイミング回
路202からのI/OライトパルスIOWCとがAND
回路622〜625に入力され、要因e〜hによるSM
Iパルスである信号606〜609が生成される。そし
て、図10に示すように、これらの信号606〜609
と、第2のマスクレジスタ661の出力とがAND回路
675〜678に入力され、信号701〜704が生成
されると共に、これらの信号がOR回路679に入力さ
れ要因aによるSMIパルスが生成される。これによ
り、第2のマスクレジスタ661を用いて要因e〜h毎
にマスクすることが可能となる。また、要因e〜hのい
ずれかによるSMIパルスが発生すると、要因aによる
SMIパルスも発生する。そして、信号701〜704
は、図9に示すように、論理回路644〜647を介し
て第2の要因レジスタ群654〜657に入力され、こ
れにより要因e〜hについての設定が行われる。一方、
図10に示すように、要因aによるSMIパルスと第1
のマスクレジスタ660の出力はAND回路670に入
力され、信号706が生成される。これにより要因aが
マスクされると要因e〜hについてもマスクされること
になる。そして、信号706は、図9に示すように、論
理回路640を介して第1の要因レジスタ群の1つであ
る要因レジスタ650に入力され、これにより要因aの
設定が行われる。即ち、要因e〜hが設定されると要因
aについても設定されることになる。
【0136】図11(B)において、スピード切替スイ
ッチ738が閉じる、あるいは開き、スピード切替処理
が開始されると、D−フリップフロップ(以下、DFF
と呼ぶ)740、742及び論理回路744により、要
因bによるSMIパルスである信号721が生成され
る。図10に示すように、この信号721と第1のマス
クレジスタ660の出力はAND回路671に入力さ
れ、信号707が生成される。即ち、要因bについても
マスクレジスタによりマスクすることができる。そし
て、信号707は、図9に示すように、論理回路641
を介して第1の要因レジスタ群の1つである要因レジス
タ651に入力され、これにより要因bの設定が行われ
る。
ッチ738が閉じる、あるいは開き、スピード切替処理
が開始されると、D−フリップフロップ(以下、DFF
と呼ぶ)740、742及び論理回路744により、要
因bによるSMIパルスである信号721が生成され
る。図10に示すように、この信号721と第1のマス
クレジスタ660の出力はAND回路671に入力さ
れ、信号707が生成される。即ち、要因bについても
マスクレジスタによりマスクすることができる。そし
て、信号707は、図9に示すように、論理回路641
を介して第1の要因レジスタ群の1つである要因レジス
タ651に入力され、これにより要因bの設定が行われ
る。
【0137】図11(A)において、リセットスイッチ
730が閉じ、ハードリセット処理が開始されると、D
FF732、736及び論理回路736により、要因i
によるSMIパルスである信号720が生成される。一
方、ソフトリセットについてのI/Oライト処理が行わ
れると、図9に示すように、アドレスラッチデコーダ2
00からのアドレスデコーダ信号とタイミング回路20
2からのI/OライトパルスIOWCとにより、要因j
によるSMIパルスである信号605が生成される。図
10に示すように、これらの信号720、605と第3
のマスクレジスタ662の出力はAND回路680、6
81に入力され、信号710、711が生成されると共
に、これらの信号がOR回路682に入力され要因cに
よるSMIパルスが生成される。これにより、第3のマ
スクレジスタ662を用いて、要因i、j毎にマスクす
ることが可能となる。また、要因i、jのいずれかによ
るSMIパルスが発生すると、要因cによるSMIパル
スも発生する。そして、これらの信号710、711
は、図9に示すように、論理回路648、649を介し
て第3の要因レジスタ658、659に入力され、これ
により要因i、jについての設定が行われることにな
る。一方、図10に示すように、要因cによるSMIパ
ルスと第1のマスクレジスタ660の出力はAND回路
672に入力され、信号708が生成される。これによ
り要因cがマスクされると要因i、jについてもマスク
されることになる。そして、信号708は、図9に示す
ように、論理回路642を介して第1の要因レジスタ群
の1つである要因レジスタ652に入力され、これによ
り要因cの設定が行われる。即ち、要因i、jが設定さ
れると要因cについても設定されることになる。
730が閉じ、ハードリセット処理が開始されると、D
FF732、736及び論理回路736により、要因i
によるSMIパルスである信号720が生成される。一
方、ソフトリセットについてのI/Oライト処理が行わ
れると、図9に示すように、アドレスラッチデコーダ2
00からのアドレスデコーダ信号とタイミング回路20
2からのI/OライトパルスIOWCとにより、要因j
によるSMIパルスである信号605が生成される。図
10に示すように、これらの信号720、605と第3
のマスクレジスタ662の出力はAND回路680、6
81に入力され、信号710、711が生成されると共
に、これらの信号がOR回路682に入力され要因cに
よるSMIパルスが生成される。これにより、第3のマ
スクレジスタ662を用いて、要因i、j毎にマスクす
ることが可能となる。また、要因i、jのいずれかによ
るSMIパルスが発生すると、要因cによるSMIパル
スも発生する。そして、これらの信号710、711
は、図9に示すように、論理回路648、649を介し
て第3の要因レジスタ658、659に入力され、これ
により要因i、jについての設定が行われることにな
る。一方、図10に示すように、要因cによるSMIパ
ルスと第1のマスクレジスタ660の出力はAND回路
672に入力され、信号708が生成される。これによ
り要因cがマスクされると要因i、jについてもマスク
されることになる。そして、信号708は、図9に示す
ように、論理回路642を介して第1の要因レジスタ群
の1つである要因レジスタ652に入力され、これによ
り要因cの設定が行われる。即ち、要因i、jが設定さ
れると要因cについても設定されることになる。
【0138】図11(C)において、電源ユニットから
のPower−ok信号が立ち下がり、電源断処理が開
始されると、DFF748、750及び論理回路752
により、要因dによるSMIパルスである信号722が
生成される。図10に示すように、この信号722と第
1のマスクレジスタ660の出力はAND回路673に
入力され、信号709が生成される。そして、信号70
9は、図9に示すように、論理回路643を介して第1
の要因レジスタ群の1つである要因レジスタ653に入
力され、これにより要因dの設定が行われる。
のPower−ok信号が立ち下がり、電源断処理が開
始されると、DFF748、750及び論理回路752
により、要因dによるSMIパルスである信号722が
生成される。図10に示すように、この信号722と第
1のマスクレジスタ660の出力はAND回路673に
入力され、信号709が生成される。そして、信号70
9は、図9に示すように、論理回路643を介して第1
の要因レジスタ群の1つである要因レジスタ653に入
力され、これにより要因dの設定が行われる。
【0139】最後に、図10に示すように、信号706
〜709はOR回路674、論理回路691を介してS
MI発生レジスタ692に入力され、これによりSMI
信号31が出力される。なお、図9に示す要因レジスタ
650〜659の要因のクリアーは、I/Oライトパル
スIOWC100、IOWC200、IOWC300を
NAND回路630〜639を介して入力することで行
うことができる。そして、図10に示すように、要因a
〜dについてのクリアーが行われると、信号601〜6
04が入力される論理回路690により、SMI発生レ
ジスタ692についてもクリアーされ、SMI信号31
がディアサートされる。更に、第1〜第3のマスクレジ
スタ660〜662へのマスクデータの設定は、マスク
書き込みのためのI/Oライトパルス信号であるIOW
C400〜IOWC600により行われることになる。
〜709はOR回路674、論理回路691を介してS
MI発生レジスタ692に入力され、これによりSMI
信号31が出力される。なお、図9に示す要因レジスタ
650〜659の要因のクリアーは、I/Oライトパル
スIOWC100、IOWC200、IOWC300を
NAND回路630〜639を介して入力することで行
うことができる。そして、図10に示すように、要因a
〜dについてのクリアーが行われると、信号601〜6
04が入力される論理回路690により、SMI発生レ
ジスタ692についてもクリアーされ、SMI信号31
がディアサートされる。更に、第1〜第3のマスクレジ
スタ660〜662へのマスクデータの設定は、マスク
書き込みのためのI/Oライトパルス信号であるIOW
C400〜IOWC600により行われることになる。
【0140】図12(A)、(B)には、以上の処理に
ついてのフローチャート図が示される。例えば、要因e
についてのI/Oライト処理が行われると(ステップC
1)、マスクされていなければSMIステータスに要因
e及びaが共にセットされ(ステップC2)、これによ
りSMIが発生し、SMMへ移行する(ステップC9、
C10)。要因f、g、hについてのI/Oライト処理
についても同様である。また、要因bのスピード切替検
出処理が行われると(ステップD1)、マスクされてい
なければSMIステータスに要因bが設定され(ステッ
プD2)、これによりSMIが発生し、SMMへ移行す
る(ステップD9、D10)。また、リセットスイッチ
検出処理が行われると(ステップD3)、マスクされて
いなければSMIステータスに要因i及びcが共に設定
され(ステップD4)、これによりSMIが発生し、S
MMへ移行する(ステップD9、D10)。CPUソフ
トリセット処理、電源断処理についても同様である。
ついてのフローチャート図が示される。例えば、要因e
についてのI/Oライト処理が行われると(ステップC
1)、マスクされていなければSMIステータスに要因
e及びaが共にセットされ(ステップC2)、これによ
りSMIが発生し、SMMへ移行する(ステップC9、
C10)。要因f、g、hについてのI/Oライト処理
についても同様である。また、要因bのスピード切替検
出処理が行われると(ステップD1)、マスクされてい
なければSMIステータスに要因bが設定され(ステッ
プD2)、これによりSMIが発生し、SMMへ移行す
る(ステップD9、D10)。また、リセットスイッチ
検出処理が行われると(ステップD3)、マスクされて
いなければSMIステータスに要因i及びcが共に設定
され(ステップD4)、これによりSMIが発生し、S
MMへ移行する(ステップD9、D10)。CPUソフ
トリセット処理、電源断処理についても同様である。
【0141】以上のように、本実施例では、要因レジス
タを階層構造とし、各々の要因についてマスクできる構
成とすることで以下のような効果を得ることができる。
第1に、最初の要因検索は要因a〜dについてのみ行え
ばよいので、要因検索を高速化できる。第2に、階層構
造となったこれらの要因をマスクすることで、要因及び
SMIの発生について優先順位を設定することができ
る。これにより、後述するように、電源断等のシステム
の動作環境の変化についてのエミュレート処理を、I/
Oポートのアクセス処理のエミュレート処理よりも優先
度の高いものとすることができる。第3に、コンピュー
タシステムのモードによっては、動作させてはならない
エミュレート処理があり(例えばハイレゾ表示の場合の
VRAM、IPF)、このような場合に、本実施例によ
れば、該当する要因をマスクすることで、上記エミュレ
ート処理が動作するのを防止できる。
タを階層構造とし、各々の要因についてマスクできる構
成とすることで以下のような効果を得ることができる。
第1に、最初の要因検索は要因a〜dについてのみ行え
ばよいので、要因検索を高速化できる。第2に、階層構
造となったこれらの要因をマスクすることで、要因及び
SMIの発生について優先順位を設定することができ
る。これにより、後述するように、電源断等のシステム
の動作環境の変化についてのエミュレート処理を、I/
Oポートのアクセス処理のエミュレート処理よりも優先
度の高いものとすることができる。第3に、コンピュー
タシステムのモードによっては、動作させてはならない
エミュレート処理があり(例えばハイレゾ表示の場合の
VRAM、IPF)、このような場合に、本実施例によ
れば、該当する要因をマスクすることで、上記エミュレ
ート処理が動作するのを防止できる。
【0142】図13には、要因データの設定についての
タイミング図の一例が示される。FRAME信号がアサ
ートされPCIバスアクセスサイクルが開始されると、
1クロック目でアドレスラッチデコーダ200、タイミ
ング回路202によりアドレス信号AD0〜31及びコ
マンド信号CBE0〜3がラッチされ、IRDY信号が
アサートされる。すると、2クロック後に、タイミング
回路202により、I/OライトパルスIOWC信号が
アサートされ、これにより要因レジスタに要因が設定さ
れると共に、SMI信号31がアサートされ、SMI処
理が開始される。そして、IRDY及びTRDY信号が
共にアサートされると、当該バスアクセスサイクルは終
了する。図13では、次のバスアクセスサイクルにおい
て要因がクリアーされる処理が行われ、これによりSM
I信号31がディアサートされることになる。
タイミング図の一例が示される。FRAME信号がアサ
ートされPCIバスアクセスサイクルが開始されると、
1クロック目でアドレスラッチデコーダ200、タイミ
ング回路202によりアドレス信号AD0〜31及びコ
マンド信号CBE0〜3がラッチされ、IRDY信号が
アサートされる。すると、2クロック後に、タイミング
回路202により、I/OライトパルスIOWC信号が
アサートされ、これにより要因レジスタに要因が設定さ
れると共に、SMI信号31がアサートされ、SMI処
理が開始される。そして、IRDY及びTRDY信号が
共にアサートされると、当該バスアクセスサイクルは終
了する。図13では、次のバスアクセスサイクルにおい
て要因がクリアーされる処理が行われ、これによりSM
I信号31がディアサートされることになる。
【0143】4.システム全体の動作の説明 図14、図15には、SMMモードに入った後の本実施
例の動作についてのフローチャートが示される。まず、
ステップE1でSMMモードに入り、SMMハンドラ2
6が起動すると、PCMC11のconfigレジスタ
をオープンし、PCMC11のDeturbo機能を禁
止する設定をする。即ち、ホールドウェイト制御手段1
2からCPU1に対してウェイト(HOLD信号7)を
入れないモードにして、CPU1を高速に動作させる。
これにより、以降のエミュレート処理においてCPU1
は最高速度で動作することになり、処理の高速化を図れ
る。CPU1の動作スピード切替スイッチは、高速では
動作不可能なアプリケーションプログラム、あるいは、
高速動作すると不都合のあるアプリケーションプログラ
ム(例えばアクションゲーム)等のために設けられたス
イッチであるが、エミュレート処理においては、CPU
1の動作スピードは速ければ速いほどよいので、本実施
例ではこのような設定をしている。なお、本実施例で
は、システムの動作環境を変更するものとしてCPU1
の動作スピードの変更について説明したが、本発明はこ
れに限られるものではない。例えば、このような動作環
境の変更としては、エミュレート処理の間、メーカのシ
ステム独自のI/Oポートを見えるようにする変更等、
種々のものが考えられる。即ち、エミュレート処理の間
は、ユーザの使用するアプリケーションプログラム等は
割り込みにより動作が中断されている。このため、この
間、メーカのシステム独自のI/Oポートを見えるよう
にしても、このI/Oポートがアプリケーションプログ
ラム等によりアクセスされることはない。そして、この
ようにメーカのシステム独自のI/Oポートを見えるよ
うにすることで、エミュレート処理中に使用できるI/
Oポートの数を増やすことができ、エミュレートシステ
ムの設計の自由度を高めることができる。なお、以上説
明した、エミュレート処理の間においてシステムの動作
環境を変更する手法は、第2のコンピュータシステムに
第1のデバイス制御手段を混在させるという本発明のエ
ミュレートシステムに限らず、他の手法によるエミュレ
ートシステムにも広く適用できる。また、この場合に
は、エミュレート処理に入る割り込みも、SMIに限ら
ず、NMIでもかまわない。
例の動作についてのフローチャートが示される。まず、
ステップE1でSMMモードに入り、SMMハンドラ2
6が起動すると、PCMC11のconfigレジスタ
をオープンし、PCMC11のDeturbo機能を禁
止する設定をする。即ち、ホールドウェイト制御手段1
2からCPU1に対してウェイト(HOLD信号7)を
入れないモードにして、CPU1を高速に動作させる。
これにより、以降のエミュレート処理においてCPU1
は最高速度で動作することになり、処理の高速化を図れ
る。CPU1の動作スピード切替スイッチは、高速では
動作不可能なアプリケーションプログラム、あるいは、
高速動作すると不都合のあるアプリケーションプログラ
ム(例えばアクションゲーム)等のために設けられたス
イッチであるが、エミュレート処理においては、CPU
1の動作スピードは速ければ速いほどよいので、本実施
例ではこのような設定をしている。なお、本実施例で
は、システムの動作環境を変更するものとしてCPU1
の動作スピードの変更について説明したが、本発明はこ
れに限られるものではない。例えば、このような動作環
境の変更としては、エミュレート処理の間、メーカのシ
ステム独自のI/Oポートを見えるようにする変更等、
種々のものが考えられる。即ち、エミュレート処理の間
は、ユーザの使用するアプリケーションプログラム等は
割り込みにより動作が中断されている。このため、この
間、メーカのシステム独自のI/Oポートを見えるよう
にしても、このI/Oポートがアプリケーションプログ
ラム等によりアクセスされることはない。そして、この
ようにメーカのシステム独自のI/Oポートを見えるよ
うにすることで、エミュレート処理中に使用できるI/
Oポートの数を増やすことができ、エミュレートシステ
ムの設計の自由度を高めることができる。なお、以上説
明した、エミュレート処理の間においてシステムの動作
環境を変更する手法は、第2のコンピュータシステムに
第1のデバイス制御手段を混在させるという本発明のエ
ミュレートシステムに限らず、他の手法によるエミュレ
ートシステムにも広く適用できる。また、この場合に
は、エミュレート処理に入る割り込みも、SMIに限ら
ず、NMIでもかまわない。
【0144】次に、ステップE4に示すように、SMM
ハンドラ26による要因レジスタ(ステータス)の読み
出し処理が行われる。次に、ステップE5で、読み出さ
れた要因が電源断の要因dであるか否かが判断される。
即ち、本実施例では、エミュレーションに入った後に処
理しなければならない要因に優先順位を設定しており、
電源断の要因を最優先の要因としている。この場合、要
因の優先度の設定は、本実施例のように物理的なレジス
タ等の並びで設定してもよいし、ソフトウェアの処理順
序等により設定してもよい。
ハンドラ26による要因レジスタ(ステータス)の読み
出し処理が行われる。次に、ステップE5で、読み出さ
れた要因が電源断の要因dであるか否かが判断される。
即ち、本実施例では、エミュレーションに入った後に処
理しなければならない要因に優先順位を設定しており、
電源断の要因を最優先の要因としている。この場合、要
因の優先度の設定は、本実施例のように物理的なレジス
タ等の並びで設定してもよいし、ソフトウェアの処理順
序等により設定してもよい。
【0145】このような電源断が生じた場合には、これ
を優先して処理しなければ致命的なシステムエラーにつ
ながる。そこで、本実施例では、エミュレーション処理
をマスクする手段を設けたり、要因レジスタを階層構造
とすること等により、要因間の優先順位の設定を容易に
行うことができる構成とし、電源断処理をI/Oエミュ
レート処理よりも優先するようにして、システムエラー
が生じる事態を防止している。
を優先して処理しなければ致命的なシステムエラーにつ
ながる。そこで、本実施例では、エミュレーション処理
をマスクする手段を設けたり、要因レジスタを階層構造
とすること等により、要因間の優先順位の設定を容易に
行うことができる構成とし、電源断処理をI/Oエミュ
レート処理よりも優先するようにして、システムエラー
が生じる事態を防止している。
【0146】ステップE5で電源断の要因が検出される
とステップE6に移行し、HDD等のデータの退避等の
処理が行われる。このような電源断の要因としては、例
えば携帯用のパーソナルコンピュータでは、バッテリー
の消耗による電源断が考えられる。また、電源スイッチ
をオフにした後、データを喪失しないようにシステムを
設計する場合にも、このような電源断の検出処理が必要
になる。データの退避等の処理が行われた後、ステップ
E7で電源ユニットに対して電源OFFコマンドが発行
され、システムの電源が落ちることになる。
とステップE6に移行し、HDD等のデータの退避等の
処理が行われる。このような電源断の要因としては、例
えば携帯用のパーソナルコンピュータでは、バッテリー
の消耗による電源断が考えられる。また、電源スイッチ
をオフにした後、データを喪失しないようにシステムを
設計する場合にも、このような電源断の検出処理が必要
になる。データの退避等の処理が行われた後、ステップ
E7で電源ユニットに対して電源OFFコマンドが発行
され、システムの電源が落ちることになる。
【0147】次に、ステップE8で、リセット検出の要
因cが読み出され(リセット検出が電源断検出の次に優
先順位の高い要因となる)、リセットが検出されるとス
テップE9に移行する。ステップE9以降の処理につい
ては図15に示される。まず、ステップF1で次の階層
の要因レジスタ(図9の要因レジスタ658、659)
が読み出される。そして、要因がiの場合(ハードリセ
ット)はステップF3に、要因がjの場合にはステップ
F9に移行する。
因cが読み出され(リセット検出が電源断検出の次に優
先順位の高い要因となる)、リセットが検出されるとス
テップE9に移行する。ステップE9以降の処理につい
ては図15に示される。まず、ステップF1で次の階層
の要因レジスタ(図9の要因レジスタ658、659)
が読み出される。そして、要因がiの場合(ハードリセ
ット)はステップF3に、要因がjの場合にはステップ
F9に移行する。
【0148】ハードリセットの場合は、システム全体が
初期化されることになるため、HDD等のデータを退避
する処理が行われる(ステップF3)。その後、キャッ
シュメモリ上のデータをWBINVDコマンドでキャッ
シュフラッシュしデータを退避する処理が行われる(ス
テップF4)。BASICのウォームブートでは、ハー
ドリセット時にも、メインRAM上のデータが保存され
ていなければならないが、ライトバックキャッシュ(C
PUから書き込み命令があった場合にキャッシュメモリ
の中だけを書き換えて、メインRAM上のデータを書き
換えないメモリ)を使用しているシステムでは、ハード
リセットをかけると、キャッシュのライトバックができ
なくなり、ウォームブートが不可能になるという問題が
ある。更に、HDD等の装置内にライトバックキャッシ
ュメモリを使用する場合もあり、本実施例では、このよ
うな問題を解決するためにステップF4に示すような処
理を行っている。そして、次に、ステップF5でリセッ
トレジスタ14にRESETコマンドを設定した後、P
CMC11のConfigレジスタをクローズしRMS
を発行すると、CPU1に対してRESET信号8が出
力される(ステップF6〜F8)。
初期化されることになるため、HDD等のデータを退避
する処理が行われる(ステップF3)。その後、キャッ
シュメモリ上のデータをWBINVDコマンドでキャッ
シュフラッシュしデータを退避する処理が行われる(ス
テップF4)。BASICのウォームブートでは、ハー
ドリセット時にも、メインRAM上のデータが保存され
ていなければならないが、ライトバックキャッシュ(C
PUから書き込み命令があった場合にキャッシュメモリ
の中だけを書き換えて、メインRAM上のデータを書き
換えないメモリ)を使用しているシステムでは、ハード
リセットをかけると、キャッシュのライトバックができ
なくなり、ウォームブートが不可能になるという問題が
ある。更に、HDD等の装置内にライトバックキャッシ
ュメモリを使用する場合もあり、本実施例では、このよ
うな問題を解決するためにステップF4に示すような処
理を行っている。そして、次に、ステップF5でリセッ
トレジスタ14にRESETコマンドを設定した後、P
CMC11のConfigレジスタをクローズしRMS
を発行すると、CPU1に対してRESET信号8が出
力される(ステップF6〜F8)。
【0149】一方、ソフトリセットは、I/Oポート
(FOH)に対するライト動作により行われる。第1の
コンピュータシステムでは、キーボードコントローラに
同様のポートがあるが別ポートになっており、PCMC
11のリセットレジスタ14の機能を利用してない。本
実施例では、PCMCの機能を利用するため、ソフトリ
セットについてもSMIによりエミュレート処理を行っ
ている。さて、ソフトリセットの場合には、CPU1の
みを初期化すればよいので、データの退避処理は必要な
く、ステップF9でリセットレジスタ14にINITコ
マンドを設定される。そして、PCMC11のConf
igレジスタをクローズしRMSを発行すると、CPU
1に対してINIT信号9が出力されることになる(ス
テップF10〜F12)。
(FOH)に対するライト動作により行われる。第1の
コンピュータシステムでは、キーボードコントローラに
同様のポートがあるが別ポートになっており、PCMC
11のリセットレジスタ14の機能を利用してない。本
実施例では、PCMCの機能を利用するため、ソフトリ
セットについてもSMIによりエミュレート処理を行っ
ている。さて、ソフトリセットの場合には、CPU1の
みを初期化すればよいので、データの退避処理は必要な
く、ステップF9でリセットレジスタ14にINITコ
マンドを設定される。そして、PCMC11のConf
igレジスタをクローズしRMSを発行すると、CPU
1に対してINIT信号9が出力されることになる(ス
テップF10〜F12)。
【0150】図14の説明に戻る。リセット検出の要因
cの読み出し後、スピード切替の要因dが読み出され、
スピード切替が検出されるとステップE17に移行す
る。そして、スピードスイッチの状態が読み出され、低
速に設定されていた場合にはステップE18に移行し、
PCMC11のDeturboを許可する処理(CPU
1にウェイトを入れ、低速にする処理)が行われる。一
方、高速に設定された場合にはそのままステップE19
に移行し、RSM命令により復帰する。
cの読み出し後、スピード切替の要因dが読み出され、
スピード切替が検出されるとステップE17に移行す
る。そして、スピードスイッチの状態が読み出され、低
速に設定されていた場合にはステップE18に移行し、
PCMC11のDeturboを許可する処理(CPU
1にウェイトを入れ、低速にする処理)が行われる。一
方、高速に設定された場合にはそのままステップE19
に移行し、RSM命令により復帰する。
【0151】ステップE5、E8、E10で、電源断等
の動作環境に変化がなかった場合に初めて、ステップE
11に示すようにI/Oポートライトについての要因a
が読み出される。そして、要因aがセットされていた場
合には、次の階層の要因レジスタ、即ち図9の要因レジ
スタ654〜657から要因e〜hが読み出される。そ
して、セットされた要因に基づくエミュレート処理が行
われる(ステップE13〜E16)。次に、ステップE
17に移行し、スピードスイッチの状態が読み出され
る。これは、ステップE2、E3によりCPU1が高速
動作の状態になっているため、これをスピードスイッチ
により設定された状態に戻すために必要な処理である。
の動作環境に変化がなかった場合に初めて、ステップE
11に示すようにI/Oポートライトについての要因a
が読み出される。そして、要因aがセットされていた場
合には、次の階層の要因レジスタ、即ち図9の要因レジ
スタ654〜657から要因e〜hが読み出される。そ
して、セットされた要因に基づくエミュレート処理が行
われる(ステップE13〜E16)。次に、ステップE
17に移行し、スピードスイッチの状態が読み出され
る。これは、ステップE2、E3によりCPU1が高速
動作の状態になっているため、これをスピードスイッチ
により設定された状態に戻すために必要な処理である。
【0152】さて、本実施例では、外部スイッチの切替
を、電源断検出手段75、リセット検出手段73、スピ
ード切替検出手段74、表示切替検出手段76により検
出し、この検出結果に基づいて電源断処理、リセット処
理、スピード切替処理、表示モード切替処理についての
エミュレート処理を実行している。従来においては、図
54に示すコントローラ507が、これらの外部スイッ
チの切り替えに関する外部入力端子を有しており、従っ
て、これらの外部スイッチの切り替えに関するエミュレ
ーション処理を行う必要はなかった。これに対して、第
1のデバイス制御手段であるPCMC11はこのような
外部入力端子を有していない。従って、本実施例のよう
に、第2のコンピュータシステムに第1のデバイス制御
手段を混在させるエミュレートシステムにおいては、こ
れらの外部スイッチ切り替えに関してエミュレート処理
を行う必要が生じる。即ち、第2のデバイス制御手段で
はサポートされていたが、第1のデバイス制御手段では
サポートされていない外部入力があった場合に、これら
の外部入力をエミュレートする手法が必要になるのであ
る。本実施例では、このエミュレート処理を実現するた
めに、まず、サブコントローラ内に検出手段(検出手段
はどこに配置してもかまわない)を設け、この検出結果
に基づいて要因を設定し、SMIハンドラ等によりこの
要因に対応した処理を行わせる。即ち、第2のデバイス
制御手段の機能を利用してこれらの電源断等の処理を実
行できるように、エミュレート処理を行うのである。こ
のような外部スイッチの切替に関するエミュレート処理
は、単に第2のコンピュータシステム上で第1のプログ
ラムを動作させることを目的とする従来のエミュレート
処理においては全く考慮されていなかった処理であり、
第1のコンピュータシステムに第2のデバイス制御手段
を混在させることを目的とする本実施例のエミュレート
処理においてのみ考慮される処理である。
を、電源断検出手段75、リセット検出手段73、スピ
ード切替検出手段74、表示切替検出手段76により検
出し、この検出結果に基づいて電源断処理、リセット処
理、スピード切替処理、表示モード切替処理についての
エミュレート処理を実行している。従来においては、図
54に示すコントローラ507が、これらの外部スイッ
チの切り替えに関する外部入力端子を有しており、従っ
て、これらの外部スイッチの切り替えに関するエミュレ
ーション処理を行う必要はなかった。これに対して、第
1のデバイス制御手段であるPCMC11はこのような
外部入力端子を有していない。従って、本実施例のよう
に、第2のコンピュータシステムに第1のデバイス制御
手段を混在させるエミュレートシステムにおいては、こ
れらの外部スイッチ切り替えに関してエミュレート処理
を行う必要が生じる。即ち、第2のデバイス制御手段で
はサポートされていたが、第1のデバイス制御手段では
サポートされていない外部入力があった場合に、これら
の外部入力をエミュレートする手法が必要になるのであ
る。本実施例では、このエミュレート処理を実現するた
めに、まず、サブコントローラ内に検出手段(検出手段
はどこに配置してもかまわない)を設け、この検出結果
に基づいて要因を設定し、SMIハンドラ等によりこの
要因に対応した処理を行わせる。即ち、第2のデバイス
制御手段の機能を利用してこれらの電源断等の処理を実
行できるように、エミュレート処理を行うのである。こ
のような外部スイッチの切替に関するエミュレート処理
は、単に第2のコンピュータシステム上で第1のプログ
ラムを動作させることを目的とする従来のエミュレート
処理においては全く考慮されていなかった処理であり、
第1のコンピュータシステムに第2のデバイス制御手段
を混在させることを目的とする本実施例のエミュレート
処理においてのみ考慮される処理である。
【0153】なお、このような外部スイッチ切替に対す
るエミュレート処理としては、例えば携帯用のパーソナ
ルコンピュータ等における表示ユニットのコントラスト
調整、明るさ調整のスイッチ等が考えられる。
るエミュレート処理としては、例えば携帯用のパーソナ
ルコンピュータ等における表示ユニットのコントラスト
調整、明るさ調整のスイッチ等が考えられる。
【0154】また、本発明のエミュレート処理の対象と
なるのは、このような外部スイッチの切り替えに関する
ものに限られるものではない。即ち、第1のコンピュー
タシステムに第2のデバイス制御手段を混在させた場合
において、第1のコンピュータシステムではサポートさ
れていた外部入力が第2のデバイス制御手段に存在しな
い場合には、この外部入力に関して本発明のエミュレー
ト処理を適用できる。例えばブリッジ回路39を置き換
えて第1のアーキテクチャのデバイス制御手段を採用し
た場合において、ブリッジ回路39でサポートされてい
たが第1のデバイス制御手段でサポートされていない外
部入力が存在する場合には、この外部入力に関して本発
明のエミュレート処理を適用できることになる。
なるのは、このような外部スイッチの切り替えに関する
ものに限られるものではない。即ち、第1のコンピュー
タシステムに第2のデバイス制御手段を混在させた場合
において、第1のコンピュータシステムではサポートさ
れていた外部入力が第2のデバイス制御手段に存在しな
い場合には、この外部入力に関して本発明のエミュレー
ト処理を適用できる。例えばブリッジ回路39を置き換
えて第1のアーキテクチャのデバイス制御手段を採用し
た場合において、ブリッジ回路39でサポートされてい
たが第1のデバイス制御手段でサポートされていない外
部入力が存在する場合には、この外部入力に関して本発
明のエミュレート処理を適用できることになる。
【0155】なお、このような外部入力としては、上記
実施例で説明した外部スイッチからの入力のみならず、
例えばサブCPU、コントロールデバイス、温度検出端
子からの外部入力等、種々のものが考えられる。
実施例で説明した外部スイッチからの入力のみならず、
例えばサブCPU、コントロールデバイス、温度検出端
子からの外部入力等、種々のものが考えられる。
【0156】次に、I/Oライトのエミュレート処理の
動作について図16、図17(A)〜(C)を用いて説
明する。I/Oアドレス300Hは第1の表示モード
(標準解像度)と第2の表示モード(高解像度)をハー
ドウェア的に切り替える命令を出すポートである。な
お、表示モードの切替の検出は、サブコントローラ25
内の表示切替検出手段76により行う。
動作について図16、図17(A)〜(C)を用いて説
明する。I/Oアドレス300Hは第1の表示モード
(標準解像度)と第2の表示モード(高解像度)をハー
ドウェア的に切り替える命令を出すポートである。な
お、表示モードの切替の検出は、サブコントローラ25
内の表示切替検出手段76により行う。
【0157】図16のステップS20でI/Oアドレス
300Hに表示モードを切り替える命令が出力される
と、図17(B)、(C)で示される表示モード1ある
いは表示モード2のメモリマップのようにRAM21、
VRAM33、ROM43のマッピングをする動作に入
る。ステップS21で、VRAM切替手段35およびR
OM切替手段45は従来と同様にCPU1のI/O命令
を直接受け取り、それぞれVRAM33、ROM43の
マッピングを切り替える。さらにサブコントローラ25
がI/O受付手段30によって命令を受け、SMIステ
ータス28に表示モード切り替えを示す要因をハードウ
ェア的にセットし、SMIを発生する。ステップS26
でSMMに移行し、ステップS27でSMMハンドラ2
6がSMIステータス28を読み取り、表示モード切り
替えの動作に入る。
300Hに表示モードを切り替える命令が出力される
と、図17(B)、(C)で示される表示モード1ある
いは表示モード2のメモリマップのようにRAM21、
VRAM33、ROM43のマッピングをする動作に入
る。ステップS21で、VRAM切替手段35およびR
OM切替手段45は従来と同様にCPU1のI/O命令
を直接受け取り、それぞれVRAM33、ROM43の
マッピングを切り替える。さらにサブコントローラ25
がI/O受付手段30によって命令を受け、SMIステ
ータス28に表示モード切り替えを示す要因をハードウ
ェア的にセットし、SMIを発生する。ステップS26
でSMMに移行し、ステップS27でSMMハンドラ2
6がSMIステータス28を読み取り、表示モード切り
替えの動作に入る。
【0158】ここで図17(A)〜(C)により表示モ
ード1、表示モード2のメモリマップ、およびそれに対
応するメモリコントローラ11(PCMC)のメモリ設
定レジスタ17(PCMCに対し各種設定を行うcon
figレジスタの一部である)について説明する。第2
のアーキテクチャにおいては、表示モード1と2によっ
てメモリアドレスの0H〜100000H番地までが図
17(B)、(C)のように大きく変化する。図17
(A)にはメモリ設定レジスタ17のメモリ設定部分に
対応するレジスタが示されており、左側が表示モード1
に対応した設定、右側が表示モード2に対応した設定で
ある。図17(B)、(C)において、RAMは図1の
RAM21に、G−VRAM(グラフィックVRAM)
とT−VRAM(テキストVRAM)を合わせたものが
VRAM33に、ROMがROM43に相当している。
表示モード1の0H〜A0000HにはRAMがあり、
メモリ設定レジスタにはRAMに対応してC(キャッシ
ュ)、W(ライト)、R(リード)を可能とするフラグ
が立てられる。(RAMコントローラ15はW、Rを設
定したメモリアドレス=RAMと判断し自動的にデコー
ドしてRAM21を割り付ける機能も有している) A0000〜C0000HとE0000〜E8000H
はVRAMが4プレーン分、割り当てられており、メモ
リ設定レジスタ17でPCIバス23へのアクセスを指
定することにより、あらかじめ表示モード1のマッピン
グに切り替えられたVRAM33にアドレスする。C0
000〜E0000H、E8000〜100000Hの
ROMにもメモリ設定レジスタ17でPCIバス23へ
のアクセスが指定され、ROM43がアドレスされる。
表示モード2においても各RAM、VRAM、ROMの
アドレスに対応してメモリ設定レジスタ17の設定を行
う。
ード1、表示モード2のメモリマップ、およびそれに対
応するメモリコントローラ11(PCMC)のメモリ設
定レジスタ17(PCMCに対し各種設定を行うcon
figレジスタの一部である)について説明する。第2
のアーキテクチャにおいては、表示モード1と2によっ
てメモリアドレスの0H〜100000H番地までが図
17(B)、(C)のように大きく変化する。図17
(A)にはメモリ設定レジスタ17のメモリ設定部分に
対応するレジスタが示されており、左側が表示モード1
に対応した設定、右側が表示モード2に対応した設定で
ある。図17(B)、(C)において、RAMは図1の
RAM21に、G−VRAM(グラフィックVRAM)
とT−VRAM(テキストVRAM)を合わせたものが
VRAM33に、ROMがROM43に相当している。
表示モード1の0H〜A0000HにはRAMがあり、
メモリ設定レジスタにはRAMに対応してC(キャッシ
ュ)、W(ライト)、R(リード)を可能とするフラグ
が立てられる。(RAMコントローラ15はW、Rを設
定したメモリアドレス=RAMと判断し自動的にデコー
ドしてRAM21を割り付ける機能も有している) A0000〜C0000HとE0000〜E8000H
はVRAMが4プレーン分、割り当てられており、メモ
リ設定レジスタ17でPCIバス23へのアクセスを指
定することにより、あらかじめ表示モード1のマッピン
グに切り替えられたVRAM33にアドレスする。C0
000〜E0000H、E8000〜100000Hの
ROMにもメモリ設定レジスタ17でPCIバス23へ
のアクセスが指定され、ROM43がアドレスされる。
表示モード2においても各RAM、VRAM、ROMの
アドレスに対応してメモリ設定レジスタ17の設定を行
う。
【0159】なおモード2のG−VRAMは高解像度分
の容量を確保するため4プレーンがバンク切り替え方式
となっているが、デコーダと共にバンク切り替え制御手
段を設けることにより、支障なくアクセスが可能であ
る。
の容量を確保するため4プレーンがバンク切り替え方式
となっているが、デコーダと共にバンク切り替え制御手
段を設けることにより、支障なくアクセスが可能であ
る。
【0160】図16の説明に戻る。ステップS28でC
PU1がPCMCのconfigレジスタをOpen
し、ステップS29で表示モード1あるいは表示モード
2の状態にセットする(図では状態A)。ステップS3
0でconfigレジスタをCloseし、ステップS
37でRSM命令を発行し、SMMを抜ける。以上によ
って (1)VRAM切替手段35によってVRAM33のマ
ッピング変更 (2)ROM切替手段45によってROM43のマッピ
ング変更 (3)メモリコントローラ11によって、RAM21の
マッピングの変更と、メモリアドレスに対する設定の変
更が実行され、I/O命令に対して第2のアーキテクチ
ャに対応した結果が得られることになる。
PU1がPCMCのconfigレジスタをOpen
し、ステップS29で表示モード1あるいは表示モード
2の状態にセットする(図では状態A)。ステップS3
0でconfigレジスタをCloseし、ステップS
37でRSM命令を発行し、SMMを抜ける。以上によ
って (1)VRAM切替手段35によってVRAM33のマ
ッピング変更 (2)ROM切替手段45によってROM43のマッピ
ング変更 (3)メモリコントローラ11によって、RAM21の
マッピングの変更と、メモリアドレスに対する設定の変
更が実行され、I/O命令に対して第2のアーキテクチ
ャに対応した結果が得られることになる。
【0161】以上に説明したI/O命令の他のI/O命
令についても同様の手法でエミュレートできることは明
らかである。従ってメモリコントローラ11(PCM
C)のように第2のアーキテクチャのI/O命令をサポ
ートしないデバイス制御手段を使用したシステムであっ
ても、サブコントローラ25によって命令を受け、SM
Iによって対応する制御を行えば、十分に第2のアーキ
テクチャの互換性を維持することができる。
令についても同様の手法でエミュレートできることは明
らかである。従ってメモリコントローラ11(PCM
C)のように第2のアーキテクチャのI/O命令をサポ
ートしないデバイス制御手段を使用したシステムであっ
ても、サブコントローラ25によって命令を受け、SM
Iによって対応する制御を行えば、十分に第2のアーキ
テクチャの互換性を維持することができる。
【0162】以上のように、本第1の実施例によれば、
第1のアーキテクチャの設計思想に沿ったデバイス制御
手段を、他のアーキテクチャのコンピュータシステムに
転用することが可能になり、しかもエミュレート処理の
多くがハードウェアロジックによって行われるため、非
常に高速な処理が可能になる。
第1のアーキテクチャの設計思想に沿ったデバイス制御
手段を、他のアーキテクチャのコンピュータシステムに
転用することが可能になり、しかもエミュレート処理の
多くがハードウェアロジックによって行われるため、非
常に高速な処理が可能になる。
【0163】さらにサブコントローラがPCIバスに接
続されているため、中速のデバイスで回路が実現でき、
CPUからメモリコントローラ(他の機能のコントロー
ラも同様)へ供給される信号の遅延を増加させることも
ない。よってメモリコントローラ本体の機能をフルに利
用することが可能となる。
続されているため、中速のデバイスで回路が実現でき、
CPUからメモリコントローラ(他の機能のコントロー
ラも同様)へ供給される信号の遅延を増加させることも
ない。よってメモリコントローラ本体の機能をフルに利
用することが可能となる。
【0164】5.バスアービタの説明 次に、バスアービタ70について説明する。バスアービ
タ70では、PCIバス23へのアクセス権の決定処理
(アービトレーション)が行われる。この決定処理は、
メモリコントローラ11及びPCI上のバスマスタ(H
DD37)及びブリッジ回路39からのリクエスト信号
であるREQ−CPU、REQ−PCI、REQ−BR
Gを受け取ると共に、許可信号であるGNT−CPU、
GNT−PCI、GNT−BRGをこれらに出力するこ
とにより行われる。
タ70では、PCIバス23へのアクセス権の決定処理
(アービトレーション)が行われる。この決定処理は、
メモリコントローラ11及びPCI上のバスマスタ(H
DD37)及びブリッジ回路39からのリクエスト信号
であるREQ−CPU、REQ−PCI、REQ−BR
Gを受け取ると共に、許可信号であるGNT−CPU、
GNT−PCI、GNT−BRGをこれらに出力するこ
とにより行われる。
【0165】SMI処理の際には、CPU1のPCIバ
ス23へのバスアクセス権の優先順位を高めることが望
ましい。そのようにしないと、例えばSMI処理の際に
HDD37等によりPCIバス23がアクセスされた場
合に、バスアクセス権がCPU1からHDD37等に移
行してしまい、エミュレート処理の速度が低下してしま
うおそれがあるからである。このようにSMI処理の際
のCPU1のバスアクセス権の優先順位を高める手法と
して例えば次の2つの手法が考えられる。
ス23へのバスアクセス権の優先順位を高めることが望
ましい。そのようにしないと、例えばSMI処理の際に
HDD37等によりPCIバス23がアクセスされた場
合に、バスアクセス権がCPU1からHDD37等に移
行してしまい、エミュレート処理の速度が低下してしま
うおそれがあるからである。このようにSMI処理の際
のCPU1のバスアクセス権の優先順位を高める手法と
して例えば次の2つの手法が考えられる。
【0166】第1の手法は、図18に示すように、バス
アービター70に入力されるREQ−BRG、REQ−
PCIを、論理回路760、762を用いてSMI信号
によりマスクする手法である。これによりREQ−BR
G、REQ−PCIはバスアービタ70により受け付け
られず、CPU1からのREQ−CPUが優先されるこ
とになる。この場合、SMI信号31を直接に論理回路
760、762に入力してもよいし、SMI処理の際に
SMMハンドラ26により所定のレジスタに値をセット
して、このレジスタの出力を論理回路760、762に
入力してもよい。このようにすれば、ソフトウェアによ
りアービトレーションの優先順位を変更するタイミング
を制御する等の処理が可能となる。
アービター70に入力されるREQ−BRG、REQ−
PCIを、論理回路760、762を用いてSMI信号
によりマスクする手法である。これによりREQ−BR
G、REQ−PCIはバスアービタ70により受け付け
られず、CPU1からのREQ−CPUが優先されるこ
とになる。この場合、SMI信号31を直接に論理回路
760、762に入力してもよいし、SMI処理の際に
SMMハンドラ26により所定のレジスタに値をセット
して、このレジスタの出力を論理回路760、762に
入力してもよい。このようにすれば、ソフトウェアによ
りアービトレーションの優先順位を変更するタイミング
を制御する等の処理が可能となる。
【0167】第2の手法によるバスアービタ70は、図
19に示すように論理回路772〜790、DFF79
2〜796を含み、図20にはこの回路の状態遷移図が
示される。この状態遷移図に示すように、この回路には
IDLE、S1、S2、S3の4つの状態がある。ID
LE状態は、PCIRSTによるリセット直後の状態で
あり、REQ−BRG、REQ−PCI、REQ−CP
U、GNT−BRG、GNT−PCI、GNT−CPU
は全て”1”になっている。そして、S1、S2、S3
は、各々、REQ−BRG=0、REQ−PCI=0、
REQ−CPU=0の場合に、GNT−BRG=0、G
NT−PCI=0、GNT−CPU=0を返すという状
態を表す。本実施例では、SMI信号(上記のようにS
MMハンドラ26によりレジスタをセットして処理を行
ってもよい)により、優先順位を次のように変化させ
る。即ち、SMI=1(ディアサート)の場合、優先順
位はREQ−BRG、REQ−PCI、REQ−CPU
の順になり、REQ−BRGの優先順位が一番高い。こ
れに対して、SMI=0(アサート)になると、優先順
位はREQ−CPU、REQ−BRG、REQ−PCI
の順になり、REQ−CPUの優先順位が一番高くな
る。例えば、図20の#8に示すように、SMI=0の
場合はREQ−CPUが最優先となるため、REQ−C
PU=0であればすぐにS3に状態が遷移する。そし
て、REQ−CPU=0である限りにおいてGNT−C
PU=0となる(#12)。即ち、CPU1のバスアク
セスが許可される。そして、REQ−CPU=1となる
と(#9)、IDLE状態に戻る。一方、SMI=1の
場合(#7)は、優先順位は通常通りBRG、PCI、
CPUの順になるので、REQ−BRG=REQ−PC
I=1で、かつ、REQ−CPU=0の場合に限り、S
3状態に移行する。
19に示すように論理回路772〜790、DFF79
2〜796を含み、図20にはこの回路の状態遷移図が
示される。この状態遷移図に示すように、この回路には
IDLE、S1、S2、S3の4つの状態がある。ID
LE状態は、PCIRSTによるリセット直後の状態で
あり、REQ−BRG、REQ−PCI、REQ−CP
U、GNT−BRG、GNT−PCI、GNT−CPU
は全て”1”になっている。そして、S1、S2、S3
は、各々、REQ−BRG=0、REQ−PCI=0、
REQ−CPU=0の場合に、GNT−BRG=0、G
NT−PCI=0、GNT−CPU=0を返すという状
態を表す。本実施例では、SMI信号(上記のようにS
MMハンドラ26によりレジスタをセットして処理を行
ってもよい)により、優先順位を次のように変化させ
る。即ち、SMI=1(ディアサート)の場合、優先順
位はREQ−BRG、REQ−PCI、REQ−CPU
の順になり、REQ−BRGの優先順位が一番高い。こ
れに対して、SMI=0(アサート)になると、優先順
位はREQ−CPU、REQ−BRG、REQ−PCI
の順になり、REQ−CPUの優先順位が一番高くな
る。例えば、図20の#8に示すように、SMI=0の
場合はREQ−CPUが最優先となるため、REQ−C
PU=0であればすぐにS3に状態が遷移する。そし
て、REQ−CPU=0である限りにおいてGNT−C
PU=0となる(#12)。即ち、CPU1のバスアク
セスが許可される。そして、REQ−CPU=1となる
と(#9)、IDLE状態に戻る。一方、SMI=1の
場合(#7)は、優先順位は通常通りBRG、PCI、
CPUの順になるので、REQ−BRG=REQ−PC
I=1で、かつ、REQ−CPU=0の場合に限り、S
3状態に移行する。
【0168】S2状態への以降は次に様になる。即ち、
SMI=0の場合(#6)には、REQ−CPUの優先
順位が最も高くなるため、REQ−PCI=0であって
も、REQ−CPU及びREQ−BRGが共に1でない
限りS2に移行しない。S2に移行した場合には、GN
T−PCI=0とする。一方、SMI=1の場合(#
5)には、通常の優先順位となるため、REQ−BRG
=1で、かつ、REQ−PCI=0であれば、REQ−
CPUの値に無関係にS2状態に移行する。S1状態へ
の移行も、上記と全く同様になる。
SMI=0の場合(#6)には、REQ−CPUの優先
順位が最も高くなるため、REQ−PCI=0であって
も、REQ−CPU及びREQ−BRGが共に1でない
限りS2に移行しない。S2に移行した場合には、GN
T−PCI=0とする。一方、SMI=1の場合(#
5)には、通常の優先順位となるため、REQ−BRG
=1で、かつ、REQ−PCI=0であれば、REQ−
CPUの値に無関係にS2状態に移行する。S1状態へ
の移行も、上記と全く同様になる。
【0169】なお、バスアービタ70は、ブリッジ回路
39に内蔵させてもよい。
39に内蔵させてもよい。
【0170】6.電源投入又はリセット直後のSMM領
域の変更処理 SMI処理においては、電源投入又はリセット直後、B
IOSにより、SMI処理用プログラムがRAM上のS
MM領域にロードされる。Pentium等では、初期
状態(電源投入又はリセット直後)では、SMI処理プ
ログラムがロードされるSMM領域のアドレスはSMB
ASEのデフォルト値である38000Hに固定されて
いる。この領域は、メインRAM上の領域であるため、
アプリケーションプログラムがロードされない領域にS
MMのアドレス位置を変更する必要がある。但し、別の
メモリデバイスを用意し、38000Hに対応する領域
に裏RAMを設けバンク切替を行えばその必要はない
が、このように別のメモリデバイスを用意することはコ
スト等の面で問題がある。そこで、本実施例では、例え
ばVRAM(AOOOOH〜BFFFFH)領域の中の
64Kバイトの領域にSMMのアドレス位置を変更す
る。このアドレス位置は、通常動作の際には、図21
(A)に示すようにPCIバス23上のVRAMの裏の
領域となって隠れており、従って、アプリケーションプ
ログラムはアクセスすることはできない。これに対し
て、図21(B)に示すように、SMMに移行した際に
は、SMIACT#を受け取ったPCMC11が、VR
AMの領域をRAMの領域に変更する。従って、この領
域(A0000〜B0000)がSMRAMのアドレス
位置になるように設定すれば、アプリケーションプログ
ラムがロードされない領域にSMRAMのアドレス位置
を設定することができ、かつ、RAM上にロードされた
SMI処理用プログラムによりSMI処理を正常に動作
させることが可能となる。このアドレス位置の変更は次
のような手順で行われる。
域の変更処理 SMI処理においては、電源投入又はリセット直後、B
IOSにより、SMI処理用プログラムがRAM上のS
MM領域にロードされる。Pentium等では、初期
状態(電源投入又はリセット直後)では、SMI処理プ
ログラムがロードされるSMM領域のアドレスはSMB
ASEのデフォルト値である38000Hに固定されて
いる。この領域は、メインRAM上の領域であるため、
アプリケーションプログラムがロードされない領域にS
MMのアドレス位置を変更する必要がある。但し、別の
メモリデバイスを用意し、38000Hに対応する領域
に裏RAMを設けバンク切替を行えばその必要はない
が、このように別のメモリデバイスを用意することはコ
スト等の面で問題がある。そこで、本実施例では、例え
ばVRAM(AOOOOH〜BFFFFH)領域の中の
64Kバイトの領域にSMMのアドレス位置を変更す
る。このアドレス位置は、通常動作の際には、図21
(A)に示すようにPCIバス23上のVRAMの裏の
領域となって隠れており、従って、アプリケーションプ
ログラムはアクセスすることはできない。これに対し
て、図21(B)に示すように、SMMに移行した際に
は、SMIACT#を受け取ったPCMC11が、VR
AMの領域をRAMの領域に変更する。従って、この領
域(A0000〜B0000)がSMRAMのアドレス
位置になるように設定すれば、アプリケーションプログ
ラムがロードされない領域にSMRAMのアドレス位置
を設定することができ、かつ、RAM上にロードされた
SMI処理用プログラムによりSMI処理を正常に動作
させることが可能となる。このアドレス位置の変更は次
のような手順で行われる。
【0171】(1)電源投入又はリセット後、BIOS
がメインRAMの38000HにSMBASEリロケー
ト用のハンドラをロードする。この時、BIOSは、V
RAMをバンク切り替えし、VRAMの裏RAMにSM
Mハンドラをロードする。
がメインRAMの38000HにSMBASEリロケー
ト用のハンドラをロードする。この時、BIOSは、V
RAMをバンク切り替えし、VRAMの裏RAMにSM
Mハンドラをロードする。
【0172】(2)次に、ダミーのSMIを発生する。
このダミーのSMIは、SMI発生の要因となる適当な
I/Oライト命令を実行することで発生される。そし
て、このダミーのSMIでは、CPU内のSMBASE
のデフォルト値にしたがって、38000Hにジャンプ
する。そして、上記(1)で38000Hにロードされ
たSMMハンドラによって、SMBASEのリロケーシ
ョン機能を用い、VRAMからSMMが開始されるよう
にSMBASEの設定をRSM時に書き換える。
このダミーのSMIは、SMI発生の要因となる適当な
I/Oライト命令を実行することで発生される。そし
て、このダミーのSMIでは、CPU内のSMBASE
のデフォルト値にしたがって、38000Hにジャンプ
する。そして、上記(1)で38000Hにロードされ
たSMMハンドラによって、SMBASEのリロケーシ
ョン機能を用い、VRAMからSMMが開始されるよう
にSMBASEの設定をRSM時に書き換える。
【0173】(3)その後のSMIは、SMBASEに
設定されたVRAMのアドレスから処理をスタートす
る。VRAM領域には通常VRAMが出ているが、SM
I発生と同時にバンク切り替えが行われ、SMRAMが
出た状態となる。これによりSMI処理を開始すること
が可能となる。
設定されたVRAMのアドレスから処理をスタートす
る。VRAM領域には通常VRAMが出ているが、SM
I発生と同時にバンク切り替えが行われ、SMRAMが
出た状態となる。これによりSMI処理を開始すること
が可能となる。
【0174】上記(2)において、ダミーのSMIを発
生する理由は、SMRAMが設定されるアドレス位置変
更のためには、SMI処理に入り、SMIのSMBAS
Eのリロケーション機能を利用しなければならないから
である。即ち、このアドレス位置変更は、NMIの場合
と異なり、アプリケーションプログラム等がこれを行う
ことはできない。また、アドレス位置変更後は、SMR
AMはVRAMの裏にあるため、SMRAMのデータが
アプリケーションプログラム等により書き換えられるこ
とはない。
生する理由は、SMRAMが設定されるアドレス位置変
更のためには、SMI処理に入り、SMIのSMBAS
Eのリロケーション機能を利用しなければならないから
である。即ち、このアドレス位置変更は、NMIの場合
と異なり、アプリケーションプログラム等がこれを行う
ことはできない。また、アドレス位置変更後は、SMR
AMはVRAMの裏にあるため、SMRAMのデータが
アプリケーションプログラム等により書き換えられるこ
とはない。
【0175】さて、以上のような手順を踏んだ後、初め
て本来のSMI処理の受付が可能となる。逆に、このよ
うな手順を踏む前に、別のSMI処理が実行されると、
システムが誤動作するおそれがある。
て本来のSMI処理の受付が可能となる。逆に、このよ
うな手順を踏む前に、別のSMI処理が実行されると、
システムが誤動作するおそれがある。
【0176】そこで、本実施例では、SMIのマスク機
能を持たせ、即ち前述のようにSMIマスク手段29を
設けて、このような誤動作が生じるのを防止している。
即ち、電源投入又はリセット後、本来のSMI処理の正
常な受付が可能になるまでの間、SMIが発生しないよ
うに(あるいは要因が設定されないように)、SMIの
発生をマスクしている。
能を持たせ、即ち前述のようにSMIマスク手段29を
設けて、このような誤動作が生じるのを防止している。
即ち、電源投入又はリセット後、本来のSMI処理の正
常な受付が可能になるまでの間、SMIが発生しないよ
うに(あるいは要因が設定されないように)、SMIの
発生をマスクしている。
【0177】なお、図21(C)には、NMIによりエ
ミュレート処理を行う場合のメモリマップが示される。
同図に示すようにNMI処理用のプログラムは、BIO
Sの管理下に置かれなければなく、また、アプリケーシ
ョンプログラムがロードされない領域に置かれなければ
ならないため、BIOS領域に格納される。このBIO
S領域は、その領域の大きさも小さく、他のプログラム
が格納されているため、空き領域が少ない。従って、N
MIを使用してエミュレート処理を行おうとすると、そ
れに使用されるプログラムの大きさは限られたものにな
る。これに対して、SMIを使用する場合は、SMI処
理用のプログラムは十分な空き領域を有するSMRAM
上に格納されるため、このような問題は起きず、従って
長いプログラムであっても格納でき、複雑なエミュレー
ト処理も可能となる。また、NMIでは、NMI用の割
り込みベクターが、図21(C)に示すようにメインR
AM上にあり、これがアプリケーションプログラム等に
より自由に書き換えられてしまうと、NMI処理開始が
不能になるという問題がある。これに対して、SMIで
は、電源投入後等には、SMRAMのアドレス位置は3
8000Hに固定されており、また、このアドレス位置
を変更するには、SMI処理に入らなければ不可能であ
る。従って、アプリケーションプログラム等により、S
MRAM領域のアドレス位置が変更されることもなく、
また、SMRAM領域を図21(A)、(B)に示すよ
うにアプリケーションプログラム等のアクセスできない
領域に設定できる。この結果、安全性の非常に高いエミ
ュレート処理を実現できる。更に、NMIにおいては、
戻りアドレスはメインRAM上のスタック領域に置か
れ、このため、アプリケーションプログラム等によりこ
の戻りアドレスが書き換えられるおそれがある。これに
対して、SMIでは、戻りアドレス及びCPUの内部レ
ジスタの内容は、SMRAM領域に退避(スタック)さ
れ、これがアプリケーションプログラム等により書き換
えられることがないという利点を持っている。
ミュレート処理を行う場合のメモリマップが示される。
同図に示すようにNMI処理用のプログラムは、BIO
Sの管理下に置かれなければなく、また、アプリケーシ
ョンプログラムがロードされない領域に置かれなければ
ならないため、BIOS領域に格納される。このBIO
S領域は、その領域の大きさも小さく、他のプログラム
が格納されているため、空き領域が少ない。従って、N
MIを使用してエミュレート処理を行おうとすると、そ
れに使用されるプログラムの大きさは限られたものにな
る。これに対して、SMIを使用する場合は、SMI処
理用のプログラムは十分な空き領域を有するSMRAM
上に格納されるため、このような問題は起きず、従って
長いプログラムであっても格納でき、複雑なエミュレー
ト処理も可能となる。また、NMIでは、NMI用の割
り込みベクターが、図21(C)に示すようにメインR
AM上にあり、これがアプリケーションプログラム等に
より自由に書き換えられてしまうと、NMI処理開始が
不能になるという問題がある。これに対して、SMIで
は、電源投入後等には、SMRAMのアドレス位置は3
8000Hに固定されており、また、このアドレス位置
を変更するには、SMI処理に入らなければ不可能であ
る。従って、アプリケーションプログラム等により、S
MRAM領域のアドレス位置が変更されることもなく、
また、SMRAM領域を図21(A)、(B)に示すよ
うにアプリケーションプログラム等のアクセスできない
領域に設定できる。この結果、安全性の非常に高いエミ
ュレート処理を実現できる。更に、NMIにおいては、
戻りアドレスはメインRAM上のスタック領域に置か
れ、このため、アプリケーションプログラム等によりこ
の戻りアドレスが書き換えられるおそれがある。これに
対して、SMIでは、戻りアドレス及びCPUの内部レ
ジスタの内容は、SMRAM領域に退避(スタック)さ
れ、これがアプリケーションプログラム等により書き換
えられることがないという利点を持っている。
【0178】7.その他 PCMC11を第2のコンピュータシステムに混在させ
るにあたり、本実施例のサブコントローラ25は次のよ
うな制御も行っている。例えば、PCMC11はライト
バッファと呼ばれる機能を有している。これは、例えば
CPU1の命令が8ビット幅であり、VRAM33にお
けるデータ幅が32ビット幅であった場合に、このライ
トバッファが、CPU1からの命令を例えば4回蓄積
し、この蓄積されたデータを一度にVRAM33に出力
するための機能である。さて、PCMC11はこのよう
な機能を有しているが、本実施例では、バスのアービト
レーションはバスアービタ70により行われている。そ
して、このライトバッファを利用する場合、ライトバッ
ファに蓄積されたデータが全て排出される前に、バスの
アクセス権が他のデバイスに移行されるのを防止する必
要がある。このため、本実施例では、サブコントローラ
25により、PCMC11内のライトバッファのデータ
排出を制御し、上記問題を解決している。本実施例で
は、この他にも、例えば上限レジスタ、サイドバンド信
号等のPCMC11の機能もサポートし、PCMC11
を第2のコンピュータシステムに混在させた場合の互換
性を維持している。 (第2の実施例)第1の実施例は、第2のコンピュータ
システムに混在させる第1のデバイス制御手段としてP
CMC11を例に取り説明を行った。しかし、混在させ
る第1のデバイス制御手段はこれに限られない。例え
ば、これ以外にも、ブリッジ回路39についても標準品
である第1のデバイス制御手段を使用することができ
る。そして、ブリッジ回路39について第1のデバイス
制御手段を使用した場合には、これにともないキーボー
ドコントローラ48、シリアルコントローラ50等のデ
バイス制御手段も、第1のアーキテクチャのものを使用
する必要が生じる。以下に説明する第2〜第5の実施例
は、これらのデバイス制御手段を混在させた場合の、I
/O命令の変換のエミュレーションについて説明する実
施例である。
るにあたり、本実施例のサブコントローラ25は次のよ
うな制御も行っている。例えば、PCMC11はライト
バッファと呼ばれる機能を有している。これは、例えば
CPU1の命令が8ビット幅であり、VRAM33にお
けるデータ幅が32ビット幅であった場合に、このライ
トバッファが、CPU1からの命令を例えば4回蓄積
し、この蓄積されたデータを一度にVRAM33に出力
するための機能である。さて、PCMC11はこのよう
な機能を有しているが、本実施例では、バスのアービト
レーションはバスアービタ70により行われている。そ
して、このライトバッファを利用する場合、ライトバッ
ファに蓄積されたデータが全て排出される前に、バスの
アクセス権が他のデバイスに移行されるのを防止する必
要がある。このため、本実施例では、サブコントローラ
25により、PCMC11内のライトバッファのデータ
排出を制御し、上記問題を解決している。本実施例で
は、この他にも、例えば上限レジスタ、サイドバンド信
号等のPCMC11の機能もサポートし、PCMC11
を第2のコンピュータシステムに混在させた場合の互換
性を維持している。 (第2の実施例)第1の実施例は、第2のコンピュータ
システムに混在させる第1のデバイス制御手段としてP
CMC11を例に取り説明を行った。しかし、混在させ
る第1のデバイス制御手段はこれに限られない。例え
ば、これ以外にも、ブリッジ回路39についても標準品
である第1のデバイス制御手段を使用することができ
る。そして、ブリッジ回路39について第1のデバイス
制御手段を使用した場合には、これにともないキーボー
ドコントローラ48、シリアルコントローラ50等のデ
バイス制御手段も、第1のアーキテクチャのものを使用
する必要が生じる。以下に説明する第2〜第5の実施例
は、これらのデバイス制御手段を混在させた場合の、I
/O命令の変換のエミュレーションについて説明する実
施例である。
【0179】さて、前述したようにSMIは、本来は、
電源制御用の割り込みとして提供されたものであり、動
作スピードの面では問題がある。そこで、本発明者は、
この動作スピードの問題を解決すべく、命令の種類に応
じて次に述べる4種類の変換方式を使い分けることとし
た。
電源制御用の割り込みとして提供されたものであり、動
作スピードの面では問題がある。そこで、本発明者は、
この動作スピードの問題を解決すべく、命令の種類に応
じて次に述べる4種類の変換方式を使い分けることとし
た。
【0180】1.第1の変換方式 第1の変換方式は、命令の種類が、I/O書き込み命令
であり処理を高速に行わなければならない命令である場
合に採用される変換方式である。以下、この変換方式を
図22に示すフローチャートに基づいて説明する。
であり処理を高速に行わなければならない命令である場
合に採用される変換方式である。以下、この変換方式を
図22に示すフローチャートに基づいて説明する。
【0181】まず、ステップA1に示すように、CPU
により第2のアーキテクチャに適合したI/O書き込み
命令が発行されると、ステップA2に示すようにCPU
のバスへのアクセスが終了、禁止される。次に、ステッ
プA3に示すように本発明の要部であるサブコントロー
ラがバスマスターとしてバスを占有する。なお、この場
合のサブコントローラの構成は、上記第1の実施例にお
けるサブコントローラと異なるが、その構成の詳細につ
いては後述する。
により第2のアーキテクチャに適合したI/O書き込み
命令が発行されると、ステップA2に示すようにCPU
のバスへのアクセスが終了、禁止される。次に、ステッ
プA3に示すように本発明の要部であるサブコントロー
ラがバスマスターとしてバスを占有する。なお、この場
合のサブコントローラの構成は、上記第1の実施例にお
けるサブコントローラと異なるが、その構成の詳細につ
いては後述する。
【0182】次に、ステップA4に示すように、サブコ
ントローラにより、変換されたI/O書き込み命令が実
行される。この場合のI/O書き込み命令の変換は例え
ばサブコントローラに内蔵された命令変換手段により行
われる。具体的には、この命令変換手段が、CPUによ
り発行されたI/O書き込み命令(I/Oアドレス、デ
ータ、バスイネーブル等)を格納(ラッチ)し、この格
納したI/O書き込み命令を第1のアーキテクチャに適
合するように変換する。そして、この変換されたI/O
書き込み命令が第1のアーキテクチャのデバイス制御手
段、デバイスに発行させることになる。
ントローラにより、変換されたI/O書き込み命令が実
行される。この場合のI/O書き込み命令の変換は例え
ばサブコントローラに内蔵された命令変換手段により行
われる。具体的には、この命令変換手段が、CPUによ
り発行されたI/O書き込み命令(I/Oアドレス、デ
ータ、バスイネーブル等)を格納(ラッチ)し、この格
納したI/O書き込み命令を第1のアーキテクチャに適
合するように変換する。そして、この変換されたI/O
書き込み命令が第1のアーキテクチャのデバイス制御手
段、デバイスに発行させることになる。
【0183】なお、第1のアーキテクチャと第2のアー
キテクチャとではI/O命令の形態が異なっており、1
回のI/O命令では、エミュレート処理を完全に終了で
きない場合がある。例えば、第2のアーキテクチャでは
1つのI/O(ポート)アドレスに割り当てられるI/
O命令が、第1のアーキテクチャでは2つのI/Oアド
レスに割り当てられている場合がある。このような場合
には、ステップA4に示すようにして、1又は複数回の
I/O書き込み命令(又はI/O読み出し命令)が実行
されることになる。
キテクチャとではI/O命令の形態が異なっており、1
回のI/O命令では、エミュレート処理を完全に終了で
きない場合がある。例えば、第2のアーキテクチャでは
1つのI/O(ポート)アドレスに割り当てられるI/
O命令が、第1のアーキテクチャでは2つのI/Oアド
レスに割り当てられている場合がある。このような場合
には、ステップA4に示すようにして、1又は複数回の
I/O書き込み命令(又はI/O読み出し命令)が実行
されることになる。
【0184】最後に、ステップA6に示すようにバスが
解放され、I/O書き込みが終了する。
解放され、I/O書き込みが終了する。
【0185】このように第1の変換方式によれば、CP
Uから発行された第2のアーキテクチャに適合したI/
O書き込み命令を第1のアーキテクチャに適合するよう
に変換して命令の対象となるデバイス制御手段、デバイ
スに発行することが可能となる。そして、この方式にお
けるエミュレート処理は全てハードウェアロジックによ
り行われるため、高速性が要求される処理に最適なもの
となる。
Uから発行された第2のアーキテクチャに適合したI/
O書き込み命令を第1のアーキテクチャに適合するよう
に変換して命令の対象となるデバイス制御手段、デバイ
スに発行することが可能となる。そして、この方式にお
けるエミュレート処理は全てハードウェアロジックによ
り行われるため、高速性が要求される処理に最適なもの
となる。
【0186】2.第2の変換方式 第2の変換方式は、命令の種類が、I/O書き込み命令
であり、例えばI/O読み出し命令が更に必要である場
合等の処理が大変複雑な場合に採用される変換方式であ
る。このような場合には、第1の変換方式によるとサブ
コントローラ等の回路が非常に大規模化、複雑化してし
まうため、図23のフローチャートに示すようなSMI
処理を用いた第2の変換方式を採用することになる。
であり、例えばI/O読み出し命令が更に必要である場
合等の処理が大変複雑な場合に採用される変換方式であ
る。このような場合には、第1の変換方式によるとサブ
コントローラ等の回路が非常に大規模化、複雑化してし
まうため、図23のフローチャートに示すようなSMI
処理を用いた第2の変換方式を採用することになる。
【0187】まず、ステップB1に示すように、CPU
により第2のアーキテクチャに適合したI/O書き込み
命令が発行されると、ステップB2に示すように、この
I/O書き込み命令(I/Oアドレス、I/Oデータ、
バスイネーブル等)が格納(ラッチ)される。また、ス
テップB3に示すようにサブコントローラによりSMI
信号が発生され、ステップB5以降のSMI処理が開始
される。なお、この場合のSMI信号の発生は、CPU
が次のI/O命令サイクルに移行する前に行われる。
により第2のアーキテクチャに適合したI/O書き込み
命令が発行されると、ステップB2に示すように、この
I/O書き込み命令(I/Oアドレス、I/Oデータ、
バスイネーブル等)が格納(ラッチ)される。また、ス
テップB3に示すようにサブコントローラによりSMI
信号が発生され、ステップB5以降のSMI処理が開始
される。なお、この場合のSMI信号の発生は、CPU
が次のI/O命令サイクルに移行する前に行われる。
【0188】次に、ステップB6では、格納されたI/
O書き込み命令が解析される。そして、この解析結果に
基づいた所定の処理、即ち変換されたI/O書き込み命
令の実行(ステップB8)、あるいは、場合によっては
I/O読み出し命令の実行(ステップB7)等の処理が
行われる。その後、ステップB9のRSM命令によりS
MI処理を終了する。
O書き込み命令が解析される。そして、この解析結果に
基づいた所定の処理、即ち変換されたI/O書き込み命
令の実行(ステップB8)、あるいは、場合によっては
I/O読み出し命令の実行(ステップB7)等の処理が
行われる。その後、ステップB9のRSM命令によりS
MI処理を終了する。
【0189】このように第2の変換方式によれば、I/
O命令に応じた処理が、独自の命令体系で動作するSM
Mハンドラにより実行される。従って、第1、第2のア
ーキテクチャ間でのI/O命令の変換が非常に複雑であ
る場合等に特に有効な変換方式となる。
O命令に応じた処理が、独自の命令体系で動作するSM
Mハンドラにより実行される。従って、第1、第2のア
ーキテクチャ間でのI/O命令の変換が非常に複雑であ
る場合等に特に有効な変換方式となる。
【0190】3.第3の変換方式 第3の変換方式は、命令の種類が、I/O読み出し命令
であり処理を高速に行わなければならない命令である場
合に採用される変換方式である。以下、この変換方式を
図24に示すフローチャートに基づいて説明する。
であり処理を高速に行わなければならない命令である場
合に採用される変換方式である。以下、この変換方式を
図24に示すフローチャートに基づいて説明する。
【0191】まず、ステップC1に示すように、CPU
により第2のアーキテクチャに適合したI/O読み出し
命令が発行されると、ステップC2に示すようにCPU
のI/O読み出し処理が中断される。この中断は、例え
ばバスがPCIバスの場合にはリトライ処理を行うこと
により、また、例えばVLバスと呼ばれるローカルバス
の場合には、CPUのBackoff端子の入力信号を
アサートすることにより行われる。次に、ステップC3
に示すようにサブコントローラがバスを占有する。その
後、ステップC4に示すように、第1のアーキテクチャ
に適合されるように変換されたI/O読み出し命令が実
行され、この命令により読み出されたデータが所定の格
納手段に格納される。この場合、ステップC5に示すよ
うに、場合によっては1又は複数回のI/O読み出し
(又は書き込み)命令が実行される。
により第2のアーキテクチャに適合したI/O読み出し
命令が発行されると、ステップC2に示すようにCPU
のI/O読み出し処理が中断される。この中断は、例え
ばバスがPCIバスの場合にはリトライ処理を行うこと
により、また、例えばVLバスと呼ばれるローカルバス
の場合には、CPUのBackoff端子の入力信号を
アサートすることにより行われる。次に、ステップC3
に示すようにサブコントローラがバスを占有する。その
後、ステップC4に示すように、第1のアーキテクチャ
に適合されるように変換されたI/O読み出し命令が実
行され、この命令により読み出されたデータが所定の格
納手段に格納される。この場合、ステップC5に示すよ
うに、場合によっては1又は複数回のI/O読み出し
(又は書き込み)命令が実行される。
【0192】なお、ステップC4(又はC5)で実行さ
れるI/O読み出し命令は、CPUにより発行されたI
/O命令(I/Oアドレス、バスイネーブル)を格納
(ラッチ)し、この格納したI/O読み出し命令を第1
のアーキテクチャに適合するように変換したものであ
る。
れるI/O読み出し命令は、CPUにより発行されたI
/O命令(I/Oアドレス、バスイネーブル)を格納
(ラッチ)し、この格納したI/O読み出し命令を第1
のアーキテクチャに適合するように変換したものであ
る。
【0193】次に、ステップC6に示すようにバスが解
放された後、ステップC7に示すようにCPUのI/O
読み出し処理が再実行される。そして、このCPUの処
理の再実行の際に、ステップC8に示すように、ステッ
プC4にて格納されたデータがCPU(バス)に出力さ
れる。これによりCPUは正常に読み出し動作を終了す
ることができる。
放された後、ステップC7に示すようにCPUのI/O
読み出し処理が再実行される。そして、このCPUの処
理の再実行の際に、ステップC8に示すように、ステッ
プC4にて格納されたデータがCPU(バス)に出力さ
れる。これによりCPUは正常に読み出し動作を終了す
ることができる。
【0194】このように第3の変換方式によれば、CP
Uから発行されたI/O読み出し命令を変換して命令の
対象となるデバイス制御手段、デバイスに発行すると共
に、この変換されたI/O命令により読み出されたデー
タをCPUが正常に読み出すことが可能となる。そし
て、この方式におけるエミュレート処理は第1の変換方
式と同様に全てハードウェアロジックにより行われるた
め、高速性が要求される処理に最適なものとなる。
Uから発行されたI/O読み出し命令を変換して命令の
対象となるデバイス制御手段、デバイスに発行すると共
に、この変換されたI/O命令により読み出されたデー
タをCPUが正常に読み出すことが可能となる。そし
て、この方式におけるエミュレート処理は第1の変換方
式と同様に全てハードウェアロジックにより行われるた
め、高速性が要求される処理に最適なものとなる。
【0195】4.第4の変換方式 第4の変換方式は、命令の種類が、I/O読み出し命令
であり、この読み出し命令による処理が大変複雑である
場合に採用される変換方式である。以下、この変換方式
を図25に示すフローチャートに基づいて説明する。
であり、この読み出し命令による処理が大変複雑である
場合に採用される変換方式である。以下、この変換方式
を図25に示すフローチャートに基づいて説明する。
【0196】ステップD1〜D3に示すように、第2の
アーキテクチャに適合したI/O読み出し命令が発行さ
れると、このI/O読み出し命令(I/Oアドレス、バ
スイネーブル等)が格納されると共に、サブコントロー
ラによりSMI信号が発生される。これによりステップ
D5以降のSMI処理が開始される。
アーキテクチャに適合したI/O読み出し命令が発行さ
れると、このI/O読み出し命令(I/Oアドレス、バ
スイネーブル等)が格納されると共に、サブコントロー
ラによりSMI信号が発生される。これによりステップ
D5以降のSMI処理が開始される。
【0197】次に、ステップD6〜D8に示すように、
格納された命令が解析され、この解析結果に基づいた所
定の処理、即ち変換されたI/O読み出し命令の実行、
あるいは、場合によっては複数回のI/O読み出し命令
の実行が行われる。次に、ステップD9に示すように、
I/O読み出し命令により読み出されたデータが、SM
RAM上のステート・セーブ領域にセーブ(スタック)
される。そして、ステップD10に示すようにRSMが
発行されると、このステート・セーブ領域に格納された
データが、CPUの内部レジスタにリストアされる共
に、SMI処理が終了する。
格納された命令が解析され、この解析結果に基づいた所
定の処理、即ち変換されたI/O読み出し命令の実行、
あるいは、場合によっては複数回のI/O読み出し命令
の実行が行われる。次に、ステップD9に示すように、
I/O読み出し命令により読み出されたデータが、SM
RAM上のステート・セーブ領域にセーブ(スタック)
される。そして、ステップD10に示すようにRSMが
発行されると、このステート・セーブ領域に格納された
データが、CPUの内部レジスタにリストアされる共
に、SMI処理が終了する。
【0198】このように第4の変換方式によれば、I/
O命令に応じた処理がSMMハンドラにより実行される
ため、変換処理が非常に複雑である場合等に特に有効な
変換方式となる。
O命令に応じた処理がSMMハンドラにより実行される
ため、変換処理が非常に複雑である場合等に特に有効な
変換方式となる。
【0199】更に、第4の変換方式では、読み出された
データをステート・セーブ領域にセーブすることで、読
み出されたデータを自動的にCPUの内部レジスタにリ
ストアすることが可能となるため、処理が非常に単純化
される。
データをステート・セーブ領域にセーブすることで、読
み出されたデータを自動的にCPUの内部レジスタにリ
ストアすることが可能となるため、処理が非常に単純化
される。
【0200】即ち、第4の変換方式では、ステップD3
でSMIが発生された後、ステップD4でCPUによる
I/O読み出し処理が一応終了する。このことは、CP
Uが何等かのデータ、例えばバス上の不定のデータを読
み込むことを意味する。そして、SMI処理に入ると、
この不定のデータが前述のようにSMRAM上のステー
トセーブ領域にセーブされる。その後、ステップD5〜
D8に示す所定の処理により正常に読み出されたデータ
が、ステップD9に示すようにしてステートセーブ領域
にセーブされる。これにより、ステートセーブ領域にセ
ーブされていた不定のデータが書き換えられ、正常な読
み出しデータがステートセーブ領域にセーブされること
になる。そして、ステップD10でRSMが発行される
と、ステートセーブ領域にセーブされた正常な読み出し
データが、前述のようにCPUの内部レジスタにリスト
アされる。これにより、CPUに対して、ステップD1
〜D4の処理であたかも正常な読み出し処理を行ったよ
うに認識させることが可能となる。
でSMIが発生された後、ステップD4でCPUによる
I/O読み出し処理が一応終了する。このことは、CP
Uが何等かのデータ、例えばバス上の不定のデータを読
み込むことを意味する。そして、SMI処理に入ると、
この不定のデータが前述のようにSMRAM上のステー
トセーブ領域にセーブされる。その後、ステップD5〜
D8に示す所定の処理により正常に読み出されたデータ
が、ステップD9に示すようにしてステートセーブ領域
にセーブされる。これにより、ステートセーブ領域にセ
ーブされていた不定のデータが書き換えられ、正常な読
み出しデータがステートセーブ領域にセーブされること
になる。そして、ステップD10でRSMが発行される
と、ステートセーブ領域にセーブされた正常な読み出し
データが、前述のようにCPUの内部レジスタにリスト
アされる。これにより、CPUに対して、ステップD1
〜D4の処理であたかも正常な読み出し処理を行ったよ
うに認識させることが可能となる。
【0201】図26は、本第2の実施例のハードウェア
を説明するブロック図である。サブコントローラ100
およびその周辺以外は図1で説明した本第1の実施例と
同様の構成となっている。
を説明するブロック図である。サブコントローラ100
およびその周辺以外は図1で説明した本第1の実施例と
同様の構成となっている。
【0202】本第2の実施例のサブコントローラ100
は、命令変換手段104、バスアービタ970、SMI
発生手段927、SMIステータス928、SMIマス
ク手段929、I/O受付手段930、PCIバスイン
ターフェース971、リセット検出手段973、スピー
ド切替検出手段974、電源断検出手段975、表示切
替検出手段976を含んでおり、命令変換手段104が
設けられた以外は、第1の実施例とほぼ同様の構成とな
っている。
は、命令変換手段104、バスアービタ970、SMI
発生手段927、SMIステータス928、SMIマス
ク手段929、I/O受付手段930、PCIバスイン
ターフェース971、リセット検出手段973、スピー
ド切替検出手段974、電源断検出手段975、表示切
替検出手段976を含んでおり、命令変換手段104が
設けられた以外は、第1の実施例とほぼ同様の構成とな
っている。
【0203】なお、CPU1より発行された命令に対し
て、上記の第1〜4変換方式の中のいずれの変換方式を
採用するか否かの判断は、I/O受付手段930で命令
を受け付け、この受け付けられた命令の種類を判断する
ことにより行われる。
て、上記の第1〜4変換方式の中のいずれの変換方式を
採用するか否かの判断は、I/O受付手段930で命令
を受け付け、この受け付けられた命令の種類を判断する
ことにより行われる。
【0204】また、命令変換手段104では、CPU1
からのI/O命令を第1のアーキテクチャに適合した命
令に変換する等の処理が行われる。更に、バスアービタ
970では、PCIバス23へのアクセス権の決定処理
(アービトレーション)が行われる。
からのI/O命令を第1のアーキテクチャに適合した命
令に変換する等の処理が行われる。更に、バスアービタ
970では、PCIバス23へのアクセス権の決定処理
(アービトレーション)が行われる。
【0205】PCIバス23上には、AD0〜31、C
/BE0〜3、FRAME、TRDY、IRDY、ST
OP、DEVSEL等の信号が流れる。そして、タイミ
ング回路902を内蔵するI/O受付手段930は、こ
れらの信号(FRAME、TRDY、STOP、DEV
SEL信号等)を生成したり、命令変換手段へのタイミ
ング信号を生成したりする機能を有する。
/BE0〜3、FRAME、TRDY、IRDY、ST
OP、DEVSEL等の信号が流れる。そして、タイミ
ング回路902を内蔵するI/O受付手段930は、こ
れらの信号(FRAME、TRDY、STOP、DEV
SEL信号等)を生成したり、命令変換手段へのタイミ
ング信号を生成したりする機能を有する。
【0206】次に、これらのPCIバス23上を流れる
信号(信号ライン)の意味について説明する。
信号(信号ライン)の意味について説明する。
【0207】AD0〜31(32ビット)信号のライン
には多重化されたアドレス信号、データ信号が流れ、ア
ドレスフェイズではアドレス信号が、データフェイズで
はデータ信号が流れる。PCIバス23においては、ア
ドレス信号の転送は、アクセス開始後の最初のフェイズ
であるアドレスフェイズにおいて行われる。また、デー
タ信号の転送はこのアドレスフェイズに続くデータフェ
イズにおいて行われる。
には多重化されたアドレス信号、データ信号が流れ、ア
ドレスフェイズではアドレス信号が、データフェイズで
はデータ信号が流れる。PCIバス23においては、ア
ドレス信号の転送は、アクセス開始後の最初のフェイズ
であるアドレスフェイズにおいて行われる。また、デー
タ信号の転送はこのアドレスフェイズに続くデータフェ
イズにおいて行われる。
【0208】C/BE0〜3(4ビット)信号はバスコ
マンド/バイト・イネーブル信号という意味であり、こ
の信号のラインにはアドレスフェーズではバスコマンド
信号が、データフェーズではバイトイネーブル信号が流
れる。ここで、バスコマンド信号はAD0〜31に流れ
るアドレス信号の種類を表す信号である。即ち、このバ
スコマンド信号に基づいて、アドレス信号がI/O書き
込み命令(以下I/Oライトと呼ぶ)なのか、I/O読
み出し命令(以下I/Oリードと呼ぶ)なのか、メモリ
リード、メモリライトなのか等を判断することができ
る。一方、バイトイネーブル信号は、AD0〜31に流
れるデータ信号の中で、どのバイト・レーンが有効なデ
ータを運ぶのかを決定する信号である。
マンド/バイト・イネーブル信号という意味であり、こ
の信号のラインにはアドレスフェーズではバスコマンド
信号が、データフェーズではバイトイネーブル信号が流
れる。ここで、バスコマンド信号はAD0〜31に流れ
るアドレス信号の種類を表す信号である。即ち、このバ
スコマンド信号に基づいて、アドレス信号がI/O書き
込み命令(以下I/Oライトと呼ぶ)なのか、I/O読
み出し命令(以下I/Oリードと呼ぶ)なのか、メモリ
リード、メモリライトなのか等を判断することができ
る。一方、バイトイネーブル信号は、AD0〜31に流
れるデータ信号の中で、どのバイト・レーンが有効なデ
ータを運ぶのかを決定する信号である。
【0209】FRAME、TRDY、IRDY、STO
P、DEVSELは双方向の信号(信号ライン)であ
る。FRAME信号は、アクセスの開始とその期間とを
示す信号である。また、TRDY信号はターゲットがレ
ディ状態となったことを示す信号であり、IRDY信号
はバスマスタ(イニシエータ)がレディ状態となったこ
とを示す信号である。なお、PCIバス23上にけるデ
ータ転送では、一方がバスマスターとなって他方のター
ゲットとの間でデータ転送を行うことになる。
P、DEVSELは双方向の信号(信号ライン)であ
る。FRAME信号は、アクセスの開始とその期間とを
示す信号である。また、TRDY信号はターゲットがレ
ディ状態となったことを示す信号であり、IRDY信号
はバスマスタ(イニシエータ)がレディ状態となったこ
とを示す信号である。なお、PCIバス23上にけるデ
ータ転送では、一方がバスマスターとなって他方のター
ゲットとの間でデータ転送を行うことになる。
【0210】また、STOP信号は、現在のターゲット
がバスマスタに対して現在の処理を停止することを要求
する信号である。更に、DEVSEL信号は、デバイス
が選択されたことを示す信号であり、ターゲットとして
選択されたデバイスが、このDEVSEL信号をアサー
トする。
がバスマスタに対して現在の処理を停止することを要求
する信号である。更に、DEVSEL信号は、デバイス
が選択されたことを示す信号であり、ターゲットとして
選択されたデバイスが、このDEVSEL信号をアサー
トする。
【0211】図27には、サブコントローラ100内の
詳細なブロック図が示される。図27において、BEラ
ッチレジスタ(R−Be)128は、C/BE0〜3か
ら入力されるバイトイネーブル信号、バスコマンド信号
をラッチするものである。また、アドレスラッチ13
0、アドレスラッチレジスタ(R−Adr)132は、
AD0〜31から入力されるアドレス信号をラッチする
ものである。ラッチされたアドレス信号はアドレス変換
部124により第1のアーキテクチャに適合するように
変換されて、変換アドレスラッチ134にラッチされ
る。また、同様に、データラッチレジスタ(R−Dat
a)136は、AD0〜31から入力されるデータ信号
をラッチするものである。ラッチされたデータ信号はデ
ータ変換部126により変換されて、変換データラッチ
138にラッチされることになる。なお、アドレス信号
をラッチするものとして、アドレスラッチ130とアド
レスラッチレジスタ132とを2つ設けたのは以下の理
由による。即ち、PCIバス23上では、アドレス信号
が有効になるのは1クロック期間内だけである。従っ
て、有効となったアドレス信号をアドレスラッチ130
により毎回ラッチしておけば、アドレス信号をデコード
するのに時間を要する場合にも、余裕をもってデコード
動作を行うことが可能となるからである。
詳細なブロック図が示される。図27において、BEラ
ッチレジスタ(R−Be)128は、C/BE0〜3か
ら入力されるバイトイネーブル信号、バスコマンド信号
をラッチするものである。また、アドレスラッチ13
0、アドレスラッチレジスタ(R−Adr)132は、
AD0〜31から入力されるアドレス信号をラッチする
ものである。ラッチされたアドレス信号はアドレス変換
部124により第1のアーキテクチャに適合するように
変換されて、変換アドレスラッチ134にラッチされ
る。また、同様に、データラッチレジスタ(R−Dat
a)136は、AD0〜31から入力されるデータ信号
をラッチするものである。ラッチされたデータ信号はデ
ータ変換部126により変換されて、変換データラッチ
138にラッチされることになる。なお、アドレス信号
をラッチするものとして、アドレスラッチ130とアド
レスラッチレジスタ132とを2つ設けたのは以下の理
由による。即ち、PCIバス23上では、アドレス信号
が有効になるのは1クロック期間内だけである。従っ
て、有効となったアドレス信号をアドレスラッチ130
により毎回ラッチしておけば、アドレス信号をデコード
するのに時間を要する場合にも、余裕をもってデコード
動作を行うことが可能となるからである。
【0212】デコーダ120では、C/BE0〜3(バ
スコマンド)信号とアドレス信号とがデコードされ、入
力されたI/O命令がSMIによる変換方式を用いるも
のか否かが判別される。即ち、CPU1から発行された
I/O命令が、上記第1、第3の変換方式と上記第2、
第4の変換方式のどちらを用いるものかが判別される。
そして、デコーダ120は、この判別結果に基づいて、
I/O命令変換処理等の一連のシーケンスをスタートす
るためのシーケンススタート信号160をI/O受付手
段930に対して出力する。例えば、30HへのI/O
ライト、I/Oリードを変換するためのシーケンススタ
ート信号160として、各々ST30W、ST30R等
の信号がI/O受付手段930に出力される。なお、シ
ーケンススタート信号160等のタイミング形成のため
に、デコーダ120にはFRAME信号も入力されてい
る。
スコマンド)信号とアドレス信号とがデコードされ、入
力されたI/O命令がSMIによる変換方式を用いるも
のか否かが判別される。即ち、CPU1から発行された
I/O命令が、上記第1、第3の変換方式と上記第2、
第4の変換方式のどちらを用いるものかが判別される。
そして、デコーダ120は、この判別結果に基づいて、
I/O命令変換処理等の一連のシーケンスをスタートす
るためのシーケンススタート信号160をI/O受付手
段930に対して出力する。例えば、30HへのI/O
ライト、I/Oリードを変換するためのシーケンススタ
ート信号160として、各々ST30W、ST30R等
の信号がI/O受付手段930に出力される。なお、シ
ーケンススタート信号160等のタイミング形成のため
に、デコーダ120にはFRAME信号も入力されてい
る。
【0213】また、デコーダ120では、アドレス変換
部124、データ変換部126をコントロールするため
のコントロール信号162の生成も行われる。即ち、ア
ドレス変換部124、データ変換部126は、I/O命
令(アドレス)により変換の方法や変換の有無が決ま
る。そこで、デコーダ120では、C/BE0〜3信号
とアドレス信号とがデコードされ、これらの変換回路の
コントロール信号162が生成される。
部124、データ変換部126をコントロールするため
のコントロール信号162の生成も行われる。即ち、ア
ドレス変換部124、データ変換部126は、I/O命
令(アドレス)により変換の方法や変換の有無が決ま
る。そこで、デコーダ120では、C/BE0〜3信号
とアドレス信号とがデコードされ、これらの変換回路の
コントロール信号162が生成される。
【0214】また、デコーダ120では、アドレス信号
とC/BE0〜3信号とのデコードによりCSX0〜2
信号の生成も行われる。これらのCSX0〜2信号は、
各々、BEラッチレジスタ128、アドレスラッチレジ
スタ132、データラッチレジスタ136に対するチッ
プセレクト信号であり、CSX0信号はOR回路142
を介してスリーステートバッファ140に、また、CS
X1、CSX2信号はスリーステートバッファ144、
148に入力される。そして、CSX0信号をアサート
することにより、SMI発生時のバイトイネーブルとバ
スコマンドの状態を、BEラッチレジスタ128からC
PU1が読み出すことが可能となる。また、同様にCS
X1、CSX2信号をアサートすることにより、SMI
発生時のアドレス信号、データ信号の状態を、アドレス
ラッチレジスタ132、データラッチレジスタ136か
らCPU1が読み出すことが可能となる。
とC/BE0〜3信号とのデコードによりCSX0〜2
信号の生成も行われる。これらのCSX0〜2信号は、
各々、BEラッチレジスタ128、アドレスラッチレジ
スタ132、データラッチレジスタ136に対するチッ
プセレクト信号であり、CSX0信号はOR回路142
を介してスリーステートバッファ140に、また、CS
X1、CSX2信号はスリーステートバッファ144、
148に入力される。そして、CSX0信号をアサート
することにより、SMI発生時のバイトイネーブルとバ
スコマンドの状態を、BEラッチレジスタ128からC
PU1が読み出すことが可能となる。また、同様にCS
X1、CSX2信号をアサートすることにより、SMI
発生時のアドレス信号、データ信号の状態を、アドレス
ラッチレジスタ132、データラッチレジスタ136か
らCPU1が読み出すことが可能となる。
【0215】出力イネーブル信号164は、サブコント
ローラ100がバスマスターとなってPCIバス23を
駆動するときに、スリーステートバッファ140、14
6、150、152、154をイネーブルするための信
号である。出力イネーブル信号164をアサートするこ
とにより、BEラッチレジスタ128、変換アドレスラ
ッチ134、変換データラッチ138にラッチされたバ
イトイネーブル(バスコマンド)信号、変換後のアドレ
ス信号、データ信号が、PCIバス23上に出力される
ことになる。また、出力イネーブル信号164をアサー
トすることにより、I/O受付手段930により生成さ
れたC/BE0〜3信号、FRAME信号等がPCIバ
ス23上に出力されることになる。
ローラ100がバスマスターとなってPCIバス23を
駆動するときに、スリーステートバッファ140、14
6、150、152、154をイネーブルするための信
号である。出力イネーブル信号164をアサートするこ
とにより、BEラッチレジスタ128、変換アドレスラ
ッチ134、変換データラッチ138にラッチされたバ
イトイネーブル(バスコマンド)信号、変換後のアドレ
ス信号、データ信号が、PCIバス23上に出力される
ことになる。また、出力イネーブル信号164をアサー
トすることにより、I/O受付手段930により生成さ
れたC/BE0〜3信号、FRAME信号等がPCIバ
ス23上に出力されることになる。
【0216】I/O受付手段930は、内蔵するタイミ
ング回路902により、デコーダ120からのシーケン
ススタート信号160をトリガーにしてTRDY、DE
VSEL、STOP、FRAME等の信号を生成する。
また、CPU1からのI/O命令を受け付け、要因を解
析し、SMIステータス928中の要因レジスタに要因
をセットするとともに、SMI発生手段927によりS
MI信号をCPU1に出力する。これにより、SMMハ
ンドラ(実行手段)26が起動し、所定のSMI処理が
行われる。但し、I/O命令がSMI処理を必要としな
いものである場合には(上記変換方式1、3の場合)、
SMI信号は発生されない。また、I/O受付手段93
0は、信号166を生成しアドレス変換部124に出力
し、これによりアドレス変換が、1つのI/O命令に対
して複数回必要な場合の制御も行っている。更に、I/
O受付手段930は、内蔵するタイミング回路902に
より、変換手段104内の各ラッチのラッチ信号の生成
も行っている。なお、I/O受付手段930(タイミン
グ回路902)における各信号の生成は複雑であるが、
例えばマイクロコード等を利用した論理演算手段により
実現できる。
ング回路902により、デコーダ120からのシーケン
ススタート信号160をトリガーにしてTRDY、DE
VSEL、STOP、FRAME等の信号を生成する。
また、CPU1からのI/O命令を受け付け、要因を解
析し、SMIステータス928中の要因レジスタに要因
をセットするとともに、SMI発生手段927によりS
MI信号をCPU1に出力する。これにより、SMMハ
ンドラ(実行手段)26が起動し、所定のSMI処理が
行われる。但し、I/O命令がSMI処理を必要としな
いものである場合には(上記変換方式1、3の場合)、
SMI信号は発生されない。また、I/O受付手段93
0は、信号166を生成しアドレス変換部124に出力
し、これによりアドレス変換が、1つのI/O命令に対
して複数回必要な場合の制御も行っている。更に、I/
O受付手段930は、内蔵するタイミング回路902に
より、変換手段104内の各ラッチのラッチ信号の生成
も行っている。なお、I/O受付手段930(タイミン
グ回路902)における各信号の生成は複雑であるが、
例えばマイクロコード等を利用した論理演算手段により
実現できる。
【0217】バスアービタ970の入力であるREQ−
PCI、REQ−BRG、REQ−CPU信号は、各
々、HDD37、I/Oブリッジ39、メモリコントロ
ーラ11(CPU1)がPCIバス23を使用したいこ
とを示す信号である。また、バスアービタ970の出力
であるGNT−PCI、GNT−BRG、GNT−CP
U信号は、各々、PCIバス23上のバスマスタ、I/
Oブリッジ39、メモリコントローラ11(CPU1)
に対してバスへのアクセスが許可されていることを示す
信号である。
PCI、REQ−BRG、REQ−CPU信号は、各
々、HDD37、I/Oブリッジ39、メモリコントロ
ーラ11(CPU1)がPCIバス23を使用したいこ
とを示す信号である。また、バスアービタ970の出力
であるGNT−PCI、GNT−BRG、GNT−CP
U信号は、各々、PCIバス23上のバスマスタ、I/
Oブリッジ39、メモリコントローラ11(CPU1)
に対してバスへのアクセスが許可されていることを示す
信号である。
【0218】図28には、このバスアービタ970の回
路構成の一例が示される。図28において、バスアービ
タ970は、DFF170〜180、AND回路182
〜190、NOR回路192、インバータ回路194〜
197を含んでいる。そして、PCIバス23上のエー
ジェントからのリクエスト信号であるREQ−PCI、
REQ−CPU、REQ−BRG信号は、PCICLK
(PCIバス23上の基準クロック)により駆動される
DFF170〜174に入力され、保持される。また、
PCIバス23上のエージェントへのバスアクセス許可
信号であるGNT−PCI、GNT−CPU、GNT−
BRG信号は、DFF176〜180により保持され
る。そして、論理回路182〜197により、これらの
信号の間での優先順位が決められている。例えば、図2
8に示す例では、REQ−PCIの優先順位が高くRE
Q−BRGの優先順位が低く設定されている。なお、バ
スアービタ970における優先順位は任意に設定でき
る。
路構成の一例が示される。図28において、バスアービ
タ970は、DFF170〜180、AND回路182
〜190、NOR回路192、インバータ回路194〜
197を含んでいる。そして、PCIバス23上のエー
ジェントからのリクエスト信号であるREQ−PCI、
REQ−CPU、REQ−BRG信号は、PCICLK
(PCIバス23上の基準クロック)により駆動される
DFF170〜174に入力され、保持される。また、
PCIバス23上のエージェントへのバスアクセス許可
信号であるGNT−PCI、GNT−CPU、GNT−
BRG信号は、DFF176〜180により保持され
る。そして、論理回路182〜197により、これらの
信号の間での優先順位が決められている。例えば、図2
8に示す例では、REQ−PCIの優先順位が高くRE
Q−BRGの優先順位が低く設定されている。なお、バ
スアービタ970における優先順位は任意に設定でき
る。
【0219】以上の構成の本第2の実施例により、上記
の第1〜第4の変換方式を実現できる。具体的に各デバ
イス制御手段、デバイスに対して発行された命令に対し
て、どのようにして命令変換を行うかについては以下に
述べる第3〜第5の実施例により説明する。(第3の実
施例)第3の実施例は、I/OデバイスがRS232C
インターフェイス52(以下、単にRS232Cと呼
ぶ)でありデバイス制御手段がシリアルコントローラ5
0である場合に本発明を適用した実施例である。この場
合には、第1のアーキテクチャで使用されるシリアルコ
ントローラ、例えばナショナルセミコンダクタ社製のN
S16550Aを、第2のアーキテクチャのI/O命令
により動作するようにエミュレーションする必要があ
る。
の第1〜第4の変換方式を実現できる。具体的に各デバ
イス制御手段、デバイスに対して発行された命令に対し
て、どのようにして命令変換を行うかについては以下に
述べる第3〜第5の実施例により説明する。(第3の実
施例)第3の実施例は、I/OデバイスがRS232C
インターフェイス52(以下、単にRS232Cと呼
ぶ)でありデバイス制御手段がシリアルコントローラ5
0である場合に本発明を適用した実施例である。この場
合には、第1のアーキテクチャで使用されるシリアルコ
ントローラ、例えばナショナルセミコンダクタ社製のN
S16550Aを、第2のアーキテクチャのI/O命令
により動作するようにエミュレーションする必要があ
る。
【0220】さて、第2のアーキテクチャではシリアル
コントローラとして例えばインテル社製の8251Aを
使用している。図29(A)、(B)には、NS165
50Aと8251Aに内蔵されるレジスタの種類と、こ
れらのレジスタのI/O(ポート)アドレスが示され
る。図29(A)、(B)に示すように、NS1650
Aと8251Aとでは、I/Oアドレス及びビットの配
置が異なっている。特に、8251Aでは、コマンドレ
ジスタ(モードレジスタ)とステータスレジスタとが1
つのI/Oアドレス32Hに配置されるのに対して、N
S16550Aでは、複数のI/Oアドレス3F9H〜
3FEHに配置されている。従って、このように構成の
異なるレジスタを持つ第1のアーキテクチャのシリアル
コントローラ(NS16550A)を、如何にして第2
のアーキテクチャに適合させるかが課題となる。
コントローラとして例えばインテル社製の8251Aを
使用している。図29(A)、(B)には、NS165
50Aと8251Aに内蔵されるレジスタの種類と、こ
れらのレジスタのI/O(ポート)アドレスが示され
る。図29(A)、(B)に示すように、NS1650
Aと8251Aとでは、I/Oアドレス及びビットの配
置が異なっている。特に、8251Aでは、コマンドレ
ジスタ(モードレジスタ)とステータスレジスタとが1
つのI/Oアドレス32Hに配置されるのに対して、N
S16550Aでは、複数のI/Oアドレス3F9H〜
3FEHに配置されている。従って、このように構成の
異なるレジスタを持つ第1のアーキテクチャのシリアル
コントローラ(NS16550A)を、如何にして第2
のアーキテクチャに適合させるかが課題となる。
【0221】1.RS232Cへのデータ送信のエミュ
レーション シリアルコントローラ50は、CPU1から入力された
パラレルデータをシリアルデータに変換しRS232C
を介して外部装置にデータ送信を行う、あるいは、RS
232Cにから入力されたシリアルデータをパラレルデ
ータに変換しCPU1へのデータ受信を行うという2つ
の機能を有する。ここでは、上記のデータ送信について
のエミュレーションについて説明する。
レーション シリアルコントローラ50は、CPU1から入力された
パラレルデータをシリアルデータに変換しRS232C
を介して外部装置にデータ送信を行う、あるいは、RS
232Cにから入力されたシリアルデータをパラレルデ
ータに変換しCPU1へのデータ受信を行うという2つ
の機能を有する。ここでは、上記のデータ送信について
のエミュレーションについて説明する。
【0222】送信バッファレジスタのI/Oアドレス
は、図29(A)、(B)に示すように、8251Aが
30Hであるのに対しNS16550Aが3F8H(D
LAB=0)であり異なっている。しかし、送信バッフ
ァレジスタの各ビットのもつ意味(機能)は同じであ
り、RS232Cは規格化されているため、書き込みI
/Oアドレスの変換を行うだけでよい。また、送信デー
タの書き込み処理は高速に行う必要があるため、本第3
の実施例では図22に示す第1の変換方式を採用する。
は、図29(A)、(B)に示すように、8251Aが
30Hであるのに対しNS16550Aが3F8H(D
LAB=0)であり異なっている。しかし、送信バッフ
ァレジスタの各ビットのもつ意味(機能)は同じであ
り、RS232Cは規格化されているため、書き込みI
/Oアドレスの変換を行うだけでよい。また、送信デー
タの書き込み処理は高速に行う必要があるため、本第3
の実施例では図22に示す第1の変換方式を採用する。
【0223】図30(A)、(B)には、従来のハード
ウェア及び本実施例におけるデータ送信のフローチャー
トが示される。従来のハードウェアにおいては、第2の
アプリケーションソフトにより送信データがI/Oアド
レス30Hにライトされると(ステップE1)、この送
信データはそのまま8251Aの送信バッファレジスタ
に書き込まれる(ステップE2)。これによりRS23
2Cよりシリアルデータ出力される(ステップE3)。
これに対して、本実施例では、送信データがI/Oアド
レス30Hにライトされると(ステップF1)、サブコ
ントローラ100によりI/Oアドレスが30Hから3
F8Hへと変換される(ステップF2)。そして、次
に、送信データを変換されたI/Oアドレス3F8Hに
書き込むと(ステップF3)、この送信データはNS1
6550Aの送信バッファレジスタに書き込まれ(ステ
ップF4)、RS232Cにシリアルデータが出力され
ることになる(ステップF5)。
ウェア及び本実施例におけるデータ送信のフローチャー
トが示される。従来のハードウェアにおいては、第2の
アプリケーションソフトにより送信データがI/Oアド
レス30Hにライトされると(ステップE1)、この送
信データはそのまま8251Aの送信バッファレジスタ
に書き込まれる(ステップE2)。これによりRS23
2Cよりシリアルデータ出力される(ステップE3)。
これに対して、本実施例では、送信データがI/Oアド
レス30Hにライトされると(ステップF1)、サブコ
ントローラ100によりI/Oアドレスが30Hから3
F8Hへと変換される(ステップF2)。そして、次
に、送信データを変換されたI/Oアドレス3F8Hに
書き込むと(ステップF3)、この送信データはNS1
6550Aの送信バッファレジスタに書き込まれ(ステ
ップF4)、RS232Cにシリアルデータが出力され
ることになる(ステップF5)。
【0224】図31(A)には、データ送信のエミュレ
ート処理の更に詳しいフローチャートが示され、図31
(B)には、この場合のPCIバス23上の各信号に対
するタイミング図が示される。ステップG1に示すよう
にCPU1がI/Oアドレス30Hへの送信データのラ
イトを行うと、ステップG2に示すように、送信デー
タ、バイトイネーブル信号が、図27に示すR−DAT
A136、R−Be128にラッチされる。また、アド
レス変換部124により30Hから3F8Hに変換され
たI/Oアドレスが、変換アドレスラッチ134にラッ
チされる。
ート処理の更に詳しいフローチャートが示され、図31
(B)には、この場合のPCIバス23上の各信号に対
するタイミング図が示される。ステップG1に示すよう
にCPU1がI/Oアドレス30Hへの送信データのラ
イトを行うと、ステップG2に示すように、送信デー
タ、バイトイネーブル信号が、図27に示すR−DAT
A136、R−Be128にラッチされる。また、アド
レス変換部124により30Hから3F8Hに変換され
たI/Oアドレスが、変換アドレスラッチ134にラッ
チされる。
【0225】次に、ステップG3に示すようにCPU1
のライト処理を終了させ、バスへのアクセスが禁止され
る。具体的には、図31(B)に示すように、サブコン
トローラ100内のI/O受付手段930がDEVSE
LとTRDYを生成し、バスアービタ970がGNT−
CPUを生成する。そして、DEVSELをアサートす
ることにより、PCIバス23上の他のエージェント、
即ちHDD37、ブリッジ回路39よりも先に選択され
たことをCPU1に伝える。また、TRDYをアサート
することにより、CPU1からのアクセスを終了させ
る。更に、GNT−CPUをディアサートすることによ
り、CPU1が次のI/Oアクセスサイクルに進まない
ようにし、CPU1のバスへのアクセスが禁止される。
以上より、ステップG4に示すように、PCIバス23
がサブコントローラ100により占有されることにな
る。
のライト処理を終了させ、バスへのアクセスが禁止され
る。具体的には、図31(B)に示すように、サブコン
トローラ100内のI/O受付手段930がDEVSE
LとTRDYを生成し、バスアービタ970がGNT−
CPUを生成する。そして、DEVSELをアサートす
ることにより、PCIバス23上の他のエージェント、
即ちHDD37、ブリッジ回路39よりも先に選択され
たことをCPU1に伝える。また、TRDYをアサート
することにより、CPU1からのアクセスを終了させ
る。更に、GNT−CPUをディアサートすることによ
り、CPU1が次のI/Oアクセスサイクルに進まない
ようにし、CPU1のバスへのアクセスが禁止される。
以上より、ステップG4に示すように、PCIバス23
がサブコントローラ100により占有されることにな
る。
【0226】次に、ステップG5に示すように、I/O
アドレス3F8Hに対してR−Data136にラッチ
された送信データがライトされる。この場合、送信デー
タの中のどのバイトレーンを選択するかが、R−Be1
28にラッチされたバイトイネーブル信号により決定さ
れる。また、送信データ自体はデータ変換部126を単
に素通りし、送信データに対する変換処理は行われな
い。また、この場合の図31(B)におけるDEVSE
L、TRDYのアサートは、シリアルコントローラ50
が接続されるブリッジ回路39が行う。
アドレス3F8Hに対してR−Data136にラッチ
された送信データがライトされる。この場合、送信デー
タの中のどのバイトレーンを選択するかが、R−Be1
28にラッチされたバイトイネーブル信号により決定さ
れる。また、送信データ自体はデータ変換部126を単
に素通りし、送信データに対する変換処理は行われな
い。また、この場合の図31(B)におけるDEVSE
L、TRDYのアサートは、シリアルコントローラ50
が接続されるブリッジ回路39が行う。
【0227】2.シリアルコントローラへのコマンドラ
イトのエミュレーション 図29(A)、(B)に示すように、8251Aにおけ
るコマンド設定レジスタ(モードレジスタ、コマンドレ
ジスタ)は1つのI/Oアドレス32Hに配置されてい
るのに対して、NS16550におけるコマンド設定レ
ジスタは、4つのI/Oアドレス3F9H〜3FCHに
分かれている。また、図33、図34には、NS165
50Aと8251Aの各レジスタの各ビットに割り当て
られた機能の比較が示されるが、同図から明らかなよう
に、これらの各ビットの機能も大きく異なっている。更
に、8251Aにおけるコマンドは、同一I/Oアドレ
スが8251Aのコマンドモードにより、モードインス
トラクション(モードレジスタ)とコマンドインストラ
クション(コマンドレジスタ)とに分かれている。以上
のように、コマンドライトについての変換処理は非常に
複雑になるため、本実施例では、図23に示す第2の変
換方式でエミュレーションを行う。なお、第2のアーキ
テクチャのハードウェアでは、8251Aの同期モード
は使用していないため、同期モードについてのエミュレ
ーションは行わない。
イトのエミュレーション 図29(A)、(B)に示すように、8251Aにおけ
るコマンド設定レジスタ(モードレジスタ、コマンドレ
ジスタ)は1つのI/Oアドレス32Hに配置されてい
るのに対して、NS16550におけるコマンド設定レ
ジスタは、4つのI/Oアドレス3F9H〜3FCHに
分かれている。また、図33、図34には、NS165
50Aと8251Aの各レジスタの各ビットに割り当て
られた機能の比較が示されるが、同図から明らかなよう
に、これらの各ビットの機能も大きく異なっている。更
に、8251Aにおけるコマンドは、同一I/Oアドレ
スが8251Aのコマンドモードにより、モードインス
トラクション(モードレジスタ)とコマンドインストラ
クション(コマンドレジスタ)とに分かれている。以上
のように、コマンドライトについての変換処理は非常に
複雑になるため、本実施例では、図23に示す第2の変
換方式でエミュレーションを行う。なお、第2のアーキ
テクチャのハードウェアでは、8251Aの同期モード
は使用していないため、同期モードについてのエミュレ
ーションは行わない。
【0228】図32(A)〜(C)には、8251Aの
モードレジスタ、コマンドレジスタ、ステータスレジス
タの各ビットに割り当てられた機能が示される。CPU
1により8251Aにセットされたパラレルデータは、
モード命令で指定されるフォーマットのシリアルデータ
に変換され、RS232Cに出力される。例えば、図3
2(A)に示すように、モードレジスタのビット0、1
でボーレート、ビット2、3でキャラクタ長が指定され
る。また、データの転送における制御は、図32(B)
に示すコマンドレジスタにより行う。例えば、コマンド
レジスタのビット0により、送信なのか受信なのかが決
定され、ビット1によりデータターミナルがレディか否
かが設定される。また、ステータスレジスタは、データ
転送時における送信、受信の状態の確認のために使用さ
れる。例えば、ビット0、ビット1により送信バッファ
レジスタ、受信バッファレジスタが空になったか否かを
確認できる。
モードレジスタ、コマンドレジスタ、ステータスレジス
タの各ビットに割り当てられた機能が示される。CPU
1により8251Aにセットされたパラレルデータは、
モード命令で指定されるフォーマットのシリアルデータ
に変換され、RS232Cに出力される。例えば、図3
2(A)に示すように、モードレジスタのビット0、1
でボーレート、ビット2、3でキャラクタ長が指定され
る。また、データの転送における制御は、図32(B)
に示すコマンドレジスタにより行う。例えば、コマンド
レジスタのビット0により、送信なのか受信なのかが決
定され、ビット1によりデータターミナルがレディか否
かが設定される。また、ステータスレジスタは、データ
転送時における送信、受信の状態の確認のために使用さ
れる。例えば、ビット0、ビット1により送信バッファ
レジスタ、受信バッファレジスタが空になったか否かを
確認できる。
【0229】さて、図35(A)にはコマンドライトの
場合のエミュレート処理のフローチャートが示され、図
35(B)にはこの場合のタイミング図が示される。図
35(A)に示すように、I/Oアドレス32H(コマ
ンドレジスタ、モードレジスタ)へのライトが行われる
と(ステップH1)、アドレス、データ、バイトイネー
ブルがR−Adr132、R−Data136、R−B
e128にラッチされ(ステップH2)、SMI信号が
発生し(ステップH3)、ライト終了後(ステップH
4)、SMI処理が開始される(ステップH5)。この
場合、図35(B)に示すようにSMI信号は、TRD
Yがアサートされるのと同時にあるいはその数クロック
前にアサートされる。これによりCPU1がI/Oアク
セスを終了して次の命令サイクルに入るのが防止され
る。
場合のエミュレート処理のフローチャートが示され、図
35(B)にはこの場合のタイミング図が示される。図
35(A)に示すように、I/Oアドレス32H(コマ
ンドレジスタ、モードレジスタ)へのライトが行われる
と(ステップH1)、アドレス、データ、バイトイネー
ブルがR−Adr132、R−Data136、R−B
e128にラッチされ(ステップH2)、SMI信号が
発生し(ステップH3)、ライト終了後(ステップH
4)、SMI処理が開始される(ステップH5)。この
場合、図35(B)に示すようにSMI信号は、TRD
Yがアサートされるのと同時にあるいはその数クロック
前にアサートされる。これによりCPU1がI/Oアク
セスを終了して次の命令サイクルに入るのが防止され
る。
【0230】図36、図37には、SMI処理の具体例
が示される。SMI処理スタート後(ステップI1)、
まず、SMMハンドラ26によりSMIステータス92
8がリードされる(ステップI2)。そして、SMIス
テータス928にセットされた要因データにより、I/
OエミュレーションによるSMIか否かが判断され(ス
テップI3)、異なる場合には他のSMI処理が実行さ
れる(ステップI4)。
が示される。SMI処理スタート後(ステップI1)、
まず、SMMハンドラ26によりSMIステータス92
8がリードされる(ステップI2)。そして、SMIス
テータス928にセットされた要因データにより、I/
OエミュレーションによるSMIか否かが判断され(ス
テップI3)、異なる場合には他のSMI処理が実行さ
れる(ステップI4)。
【0231】次に、R−Adr132にラッチされたア
ドレスが32Hか否かが判断され(ステップI5)、異
なる場合には他のI/O命令のエミュレート処理が実行
される(ステップI6)。次に、R−Be128にラッ
チされたC/BE0〜3(バスコマンド)をリードし
て、当該命令がI/Oライトか否かが判断され(ステッ
プI7)、異なる場合にはI/Oリード32Hについて
のエミュレート処理が行われる(ステップI8)。
ドレスが32Hか否かが判断され(ステップI5)、異
なる場合には他のI/O命令のエミュレート処理が実行
される(ステップI6)。次に、R−Be128にラッ
チされたC/BE0〜3(バスコマンド)をリードし
て、当該命令がI/Oライトか否かが判断され(ステッ
プI7)、異なる場合にはI/Oリード32Hについて
のエミュレート処理が行われる(ステップI8)。
【0232】次に、Mode=1か否か、即ち当該I/
O命令がモードインストラクションか否かが判断され
(ステップI9)、Mode=1の場合にはモードイン
ストラクションについてのエミュレート処理に移行する
(ステップI10、図38参照)。なお、8251Aで
は、リセット直後はMode=1に設定され、モードイ
ンストラクション処理が終了するとMode=0とな
る。また、コマンドインストラクションでIR=1とす
ると再びMode=1に設定される。これらのMode
についてのフラッグはSMRAMの所定アドレスにスト
アされることになる。
O命令がモードインストラクションか否かが判断され
(ステップI9)、Mode=1の場合にはモードイン
ストラクションについてのエミュレート処理に移行する
(ステップI10、図38参照)。なお、8251Aで
は、リセット直後はMode=1に設定され、モードイ
ンストラクション処理が終了するとMode=0とな
る。また、コマンドインストラクションでIR=1とす
ると再びMode=1に設定される。これらのMode
についてのフラッグはSMRAMの所定アドレスにスト
アされることになる。
【0233】次に、図35(A)のステップH2でR−
Data136にラッチされたデータ、即ちCPU1に
より発行されたI/O命令のデータ(コマンド命令の内
容)が、CPU1の内部レジスタに格納される(ステッ
プI11)。
Data136にラッチされたデータ、即ちCPU1に
より発行されたI/O命令のデータ(コマンド命令の内
容)が、CPU1の内部レジスタに格納される(ステッ
プI11)。
【0234】以上の処理終了後、フロー800、80
2、804、806、808に示す処理が実行される。
これらのフロー800〜808の処理は、各々、図3
3、図34における900〜908に示す処理に対応し
ている。
2、804、806、808に示す処理が実行される。
これらのフロー800〜808の処理は、各々、図3
3、図34における900〜908に示す処理に対応し
ている。
【0235】フロー800の処理(図34の900に対
応)では、まず、ALのビット6が”1”か否かが判断
される(ステップI12)。そして、”1”の場合に
は、コマンド命令にIR=1がセットされたと判断さ
れ、Mode=1に設定される(ステップI13)。次
に、R−DataとOLD−CMDとの排他的論理和
(XOR)がとられ、その結果がALに格納される(ス
テップI14)。ここでOLD−CMDとは前回のコマ
ンドデータの内容を示す。このように排他的論理和をと
ることにより、変化のあったビットのみを書き換えるこ
とができる。
応)では、まず、ALのビット6が”1”か否かが判断
される(ステップI12)。そして、”1”の場合に
は、コマンド命令にIR=1がセットされたと判断さ
れ、Mode=1に設定される(ステップI13)。次
に、R−DataとOLD−CMDとの排他的論理和
(XOR)がとられ、その結果がALに格納される(ス
テップI14)。ここでOLD−CMDとは前回のコマ
ンドデータの内容を示す。このように排他的論理和をと
ることにより、変化のあったビットのみを書き換えるこ
とができる。
【0236】フロー802の処理(図34の902に対
応)では、まず、ALのビット3が”1”か否かが判断
される(ステップI15)。そして、”1”の場合に
は、SBRKが発生したと判断され、NS16550A
の3FBHのレジスタ内容をALに格納する(ステップ
I16)。次に、ビット6をR−Dataのビット3に
書き換え(ステップI17)、ALの内容をNS165
50Aの3FBHに書き戻し(ステップI18)、その
後、ステップI19の処理を行う。これによりNS16
550Aの3FBHのレジスタ内容が書き変わる。
応)では、まず、ALのビット3が”1”か否かが判断
される(ステップI15)。そして、”1”の場合に
は、SBRKが発生したと判断され、NS16550A
の3FBHのレジスタ内容をALに格納する(ステップ
I16)。次に、ビット6をR−Dataのビット3に
書き換え(ステップI17)、ALの内容をNS165
50Aの3FBHに書き戻し(ステップI18)、その
後、ステップI19の処理を行う。これによりNS16
550Aの3FBHのレジスタ内容が書き変わる。
【0237】フロー804の処理(図33の904に対
応)では、ALのビット0又はビット2が”1”か否か
が判断され(ステップI21)、”1”の時はR−Da
taのビット2、0の内容がALのビット0、1に格納
される(ステップI22)。その後、ALの内容が3F
9Hに出力され、ステップI24の処理を行う。これに
よりNS16550Aの3F9Hのレジスタ内容が書き
変わる。
応)では、ALのビット0又はビット2が”1”か否か
が判断され(ステップI21)、”1”の時はR−Da
taのビット2、0の内容がALのビット0、1に格納
される(ステップI22)。その後、ALの内容が3F
9Hに出力され、ステップI24の処理を行う。これに
よりNS16550Aの3F9Hのレジスタ内容が書き
変わる。
【0238】フロー806の処理(図34の906に対
応)は、ビット1又はビット5が”1”の場合の処理で
あり、フロー804と同様の処理が行われる(ステップ
I25〜I28)。これによりNS16550Aの3F
CHのレジスタ内容が書き変わる。
応)は、ビット1又はビット5が”1”の場合の処理で
あり、フロー804と同様の処理が行われる(ステップ
I25〜I28)。これによりNS16550Aの3F
CHのレジスタ内容が書き変わる。
【0239】フロー808の処理(図34の908に対
応)では、ビット4が”1”か否かが判断され(ステッ
プI29)、”1”の場合には3FDHの内容がALに
リードされる(ステップI30)。NS16550Aで
は3FDHをリードすることによりエラーフラグがリセ
ットされるため、上記処理が行われる。最後に、R−D
ataの内容がOLD−CMDに設定され(ステップ1
31)、RSMが発行される(ステップI32)。な
お、コマンドレジスタのビット7については同期モード
の時のみ意味があるため、ここではエミュレート処理を
行わない。
応)では、ビット4が”1”か否かが判断され(ステッ
プI29)、”1”の場合には3FDHの内容がALに
リードされる(ステップI30)。NS16550Aで
は3FDHをリードすることによりエラーフラグがリセ
ットされるため、上記処理が行われる。最後に、R−D
ataの内容がOLD−CMDに設定され(ステップ1
31)、RSMが発行される(ステップI32)。な
お、コマンドレジスタのビット7については同期モード
の時のみ意味があるため、ここではエミュレート処理を
行わない。
【0240】次に、モードインストラクションのエミュ
レート処理について図38のフローチャートにより説明
する。モードインストラクションの場合には、図34の
910に示す変換処理を行う必要がある。このため、ス
テップJ2に示すように、R−Dataのビット2、
3、7、4、5の内容がALのビット0、1、2、3、
4に格納され、次に、ALの内容がNS16550Aの
3FBHのレジスタに出力される(ステップJ3)。こ
れによりNS16550Aに所望のモードインストラク
ション処理を行わせることが可能となる。また、ステッ
プJ4では、R−Dataのビット0、1が”0”、”
1”であるか否か、即ちボーレートファクタが16倍で
あるか否かが判断される(図32(A)参照)。そし
て、16倍でないと判断された場合には、DLAB=1
にした後(ステップJ5)、ステップJ6に示すように
設定したいボーレートとクロック倍率が計算され、De
visorラッチ(DLAB=1で書き込み可能)の再
設定が行われる(3F8H、3F9HにI/Oライ
ト)。これは、NS16550Aではクロックに対する
送受信のボーレートが16倍で固定されているため、8
251Aで1倍、64倍に設定された場合には、Dev
isorラッチの内容を変更し、NS16550Aのク
ロックを制御する必要があるからである。そして、De
visorラッチの変更後、ステップJ7、J8の処理
が行われ、Modeを”1”に戻した後(ステップJ
9)、RSMで復帰する(ステップJ10)。
レート処理について図38のフローチャートにより説明
する。モードインストラクションの場合には、図34の
910に示す変換処理を行う必要がある。このため、ス
テップJ2に示すように、R−Dataのビット2、
3、7、4、5の内容がALのビット0、1、2、3、
4に格納され、次に、ALの内容がNS16550Aの
3FBHのレジスタに出力される(ステップJ3)。こ
れによりNS16550Aに所望のモードインストラク
ション処理を行わせることが可能となる。また、ステッ
プJ4では、R−Dataのビット0、1が”0”、”
1”であるか否か、即ちボーレートファクタが16倍で
あるか否かが判断される(図32(A)参照)。そし
て、16倍でないと判断された場合には、DLAB=1
にした後(ステップJ5)、ステップJ6に示すように
設定したいボーレートとクロック倍率が計算され、De
visorラッチ(DLAB=1で書き込み可能)の再
設定が行われる(3F8H、3F9HにI/Oライ
ト)。これは、NS16550Aではクロックに対する
送受信のボーレートが16倍で固定されているため、8
251Aで1倍、64倍に設定された場合には、Dev
isorラッチの内容を変更し、NS16550Aのク
ロックを制御する必要があるからである。そして、De
visorラッチの変更後、ステップJ7、J8の処理
が行われ、Modeを”1”に戻した後(ステップJ
9)、RSMで復帰する(ステップJ10)。
【0241】以上の処理により、コマンドライトのエミ
ュレーションが可能となる。
ュレーションが可能となる。
【0242】3.RS232Cからのデータ受信のエミ
ュレーション 受信バッファレジスタのI/Oアドレスは、8251A
が30HでありNS16550Aが3F8H(DLAB
=0)である。しかし、受信バッファレジスタの各ビッ
トのもつ意味は同じであるためI/Oアドレスの変換を
行うだけでよい(図33の917参照)。また、受信デ
ータの読み出し処理は高速に行う必要があるため、図2
4に示す第3の変換方式を採用する。
ュレーション 受信バッファレジスタのI/Oアドレスは、8251A
が30HでありNS16550Aが3F8H(DLAB
=0)である。しかし、受信バッファレジスタの各ビッ
トのもつ意味は同じであるためI/Oアドレスの変換を
行うだけでよい(図33の917参照)。また、受信デ
ータの読み出し処理は高速に行う必要があるため、図2
4に示す第3の変換方式を採用する。
【0243】図39(A)、(B)には、従来のハード
ウェア及び本実施例におけるデータ受信のフローチャー
トが示される。図39(A)と図39(B)とで異なる
のは、第2のアプリケーションソフトにより30Hから
I/Oリードされると、サブコントローラ100がアド
レスを30Hから3F8Hに変換して、変換されたアド
レス3F8Hから受信データがI/Oリードされるとこ
ろである。
ウェア及び本実施例におけるデータ受信のフローチャー
トが示される。図39(A)と図39(B)とで異なる
のは、第2のアプリケーションソフトにより30Hから
I/Oリードされると、サブコントローラ100がアド
レスを30Hから3F8Hに変換して、変換されたアド
レス3F8Hから受信データがI/Oリードされるとこ
ろである。
【0244】図40には、データ受信のエミュレート処
理の更に詳しいフローチャートが示され、図41にはこ
の場合の各信号のタイミング図が示される。CPU1が
I/Oアドレス30Hから受信データのリードを行うと
(ステップM1)、バイトイネーブル信号及び30Hか
ら3F8Hに変換されたアドレス信号が、各々R−Be
128、変換アドレスラッチ134にラッチされる(ス
テップM2)。
理の更に詳しいフローチャートが示され、図41にはこ
の場合の各信号のタイミング図が示される。CPU1が
I/Oアドレス30Hから受信データのリードを行うと
(ステップM1)、バイトイネーブル信号及び30Hか
ら3F8Hに変換されたアドレス信号が、各々R−Be
128、変換アドレスラッチ134にラッチされる(ス
テップM2)。
【0245】次に、ステップM3に示すようにCPU1
のリード処理が一時中断される。具体的には、図41に
示すようにサブコントローラ100がSTOP、DEV
SEL、TRDYをアサートしてリトライ処理を行うこ
とによりリード処理が中断される。このリトライ処理は
DEVSELをアサートしたままでSTOPをアサート
することによっても行うことができる。なお、PCIバ
スではなくVLバスの場合には、Backoffをアサ
ートしてI/Oリードを見かけ上終了し、CPU1に再
度同じI/Oリードを行わせることでこの中断処理を実
現する。
のリード処理が一時中断される。具体的には、図41に
示すようにサブコントローラ100がSTOP、DEV
SEL、TRDYをアサートしてリトライ処理を行うこ
とによりリード処理が中断される。このリトライ処理は
DEVSELをアサートしたままでSTOPをアサート
することによっても行うことができる。なお、PCIバ
スではなくVLバスの場合には、Backoffをアサ
ートしてI/Oリードを見かけ上終了し、CPU1に再
度同じI/Oリードを行わせることでこの中断処理を実
現する。
【0246】次に、GNT−CPUをディアサートして
サブコントローラ100がバスを占有し(ステップM
4)、NS16550Aの3F8Hのレジスタから受信
データがリードされR−Data136にラッチされる
(ステップM5)。この場合、バイトイネーブルはR−
Be128より、アドレスは変換アドレスラッチ134
より出力される。次にGNT−CPUをアサートしてバ
スを解放し(ステップM6)、CPU1がI/Oリード
を再実行する(ステップM7)。すると、R−Data
136にラッチされたデータは、PCIバス23上に出
力され(ステップM8)、I/Oリードが正常終了する
(ステップM9)。
サブコントローラ100がバスを占有し(ステップM
4)、NS16550Aの3F8Hのレジスタから受信
データがリードされR−Data136にラッチされる
(ステップM5)。この場合、バイトイネーブルはR−
Be128より、アドレスは変換アドレスラッチ134
より出力される。次にGNT−CPUをアサートしてバ
スを解放し(ステップM6)、CPU1がI/Oリード
を再実行する(ステップM7)。すると、R−Data
136にラッチされたデータは、PCIバス23上に出
力され(ステップM8)、I/Oリードが正常終了する
(ステップM9)。
【0247】4.シリアルコントローラからのステータ
スリードのエミュレーション 図29(A)、(B)、図33、図34に示すように8
251Aのステータスレジスタの各ビットに対応するも
のがNS16550Aでは2つのアドレス3FDH、3
FEHに別れており、ビットの並びも異なる。しかし、
ステータスレジスタからのリード処理は高速であること
が望ましい。これは、シリアルコントローラ50では、
ステータの変化を随時見ながらデータの送受信を行うた
め、ステータスリードが遅いと、データの抜け等の問題
が生じるからである。そこで、回路は少し複雑になるが
図24に示す第3の変換方式を採用する。
スリードのエミュレーション 図29(A)、(B)、図33、図34に示すように8
251Aのステータスレジスタの各ビットに対応するも
のがNS16550Aでは2つのアドレス3FDH、3
FEHに別れており、ビットの並びも異なる。しかし、
ステータスレジスタからのリード処理は高速であること
が望ましい。これは、シリアルコントローラ50では、
ステータの変化を随時見ながらデータの送受信を行うた
め、ステータスリードが遅いと、データの抜け等の問題
が生じるからである。そこで、回路は少し複雑になるが
図24に示す第3の変換方式を採用する。
【0248】図42にはステータスリードのエミュレー
ト処理のフローチャートが示される。まず、図40に示
すデータ受信の場合と同様にステップN1〜N4の処理
を行う。次に、NS16550Aの3FDHにあるライ
ンステータスレジスタからステータスデータをリード
し、データ交換処理を行ってR−Data136にラッ
チする(ステップN5)。この場合のデータの交換処理
はデータ変換部126により行われ、具体的には図34
の912、914に示すようなデータ交換処理を行う。
次に、3FEHにあるモデムステータスレジスタからリ
ードされたステータスデータに対してデータの交換処理
を行い、ステップN5でR−Data136にラッチさ
れたデータとOR処理を行い1つのデータとし、その結
果を再びR−Data136にラッチする(ステップN
6)。この場合は21の916に示すようなデータの交
換処理を行う。その後、図40の場合と同様にステップ
N7〜N10の処理を行い、ステータスリードを終了す
る。
ト処理のフローチャートが示される。まず、図40に示
すデータ受信の場合と同様にステップN1〜N4の処理
を行う。次に、NS16550Aの3FDHにあるライ
ンステータスレジスタからステータスデータをリード
し、データ交換処理を行ってR−Data136にラッ
チする(ステップN5)。この場合のデータの交換処理
はデータ変換部126により行われ、具体的には図34
の912、914に示すようなデータ交換処理を行う。
次に、3FEHにあるモデムステータスレジスタからリ
ードされたステータスデータに対してデータの交換処理
を行い、ステップN5でR−Data136にラッチさ
れたデータとOR処理を行い1つのデータとし、その結
果を再びR−Data136にラッチする(ステップN
6)。この場合は21の916に示すようなデータの交
換処理を行う。その後、図40の場合と同様にステップ
N7〜N10の処理を行い、ステータスリードを終了す
る。
【0249】以上の(1)〜(4)の処理により、本第
3の実施例では、第1のアーキテクチャで使用されるデ
バイス制御手段(NS16550A)、デバイスを第2
のアーキテクチャのシステムに適合させることが可能と
なる。(第4の実施例)第4の実施例は、I/Oデバイ
スがキーボード(KB)49でありデバイス制御手段が
キーボードコントローラ48である場合に本発明を適用
した実施例である。第1のアーキテクチャではキーボー
ドコントローラとしてインテル社製の8042が使用さ
れる。また、第2のアーキテクチャではRS232Cの
場合と同様に例えばインテル社製の8251Aが使用さ
れる。図43、図44には、8042と8251AのI
/Oアドレス及び各ビットの機能の対比が示されてい
る。同図に示すように8042と8251AとではI/
Oアドレス及び各ビットの配置が異なり、また、キーボ
ードから送られてくるキーボード入力データも異なって
いる。従って、エミュレート処理によりこれらのアドレ
ス、データを変換する必要がある。
3の実施例では、第1のアーキテクチャで使用されるデ
バイス制御手段(NS16550A)、デバイスを第2
のアーキテクチャのシステムに適合させることが可能と
なる。(第4の実施例)第4の実施例は、I/Oデバイ
スがキーボード(KB)49でありデバイス制御手段が
キーボードコントローラ48である場合に本発明を適用
した実施例である。第1のアーキテクチャではキーボー
ドコントローラとしてインテル社製の8042が使用さ
れる。また、第2のアーキテクチャではRS232Cの
場合と同様に例えばインテル社製の8251Aが使用さ
れる。図43、図44には、8042と8251AのI
/Oアドレス及び各ビットの機能の対比が示されてい
る。同図に示すように8042と8251AとではI/
Oアドレス及び各ビットの配置が異なり、また、キーボ
ードから送られてくるキーボード入力データも異なって
いる。従って、エミュレート処理によりこれらのアドレ
ス、データを変換する必要がある。
【0250】1.キーボードへのコマンド送信のエミュ
レーション。
レーション。
【0251】キーボード49へのコマンド送信のエミュ
レーションでは、アドレス、データ共に変換しなければ
ならず、パラメータの区別も必要なため比較的処理が複
雑である。更に、コマンド送信の頻度が低いため、図2
3に示す第2の変換方式を採用する。
レーションでは、アドレス、データ共に変換しなければ
ならず、パラメータの区別も必要なため比較的処理が複
雑である。更に、コマンド送信の頻度が低いため、図2
3に示す第2の変換方式を採用する。
【0252】図45(A)、(B)には、従来のハード
ウェア及び本実施例におけるキーボード49へのコマン
ドデータ送信のフローチャートが示される。ここでは、
キーボード49へ送信するコマンドとしてLED ON
/OFFコマンドを例にとり説明するが、これ以外の例
えばリピート間隔の設定等のコマンドも同様の手法によ
りエミュレート処理できる。
ウェア及び本実施例におけるキーボード49へのコマン
ドデータ送信のフローチャートが示される。ここでは、
キーボード49へ送信するコマンドとしてLED ON
/OFFコマンドを例にとり説明するが、これ以外の例
えばリピート間隔の設定等のコマンドも同様の手法によ
りエミュレート処理できる。
【0253】キーボード上のLEDをON/OFFする
ためには第2のアーキテクチャでは図45(A)のステ
ップN1〜N12に示すように以下の処理が行われる。
即ち、まず、データ送信が可能か否かを確認した後、第
2のアプリケーションソフトにより9DH(キーボード
へコマンドを転送するときのキーになるコード)がI/
Oアドレス41HにI/Oライトされる。そして、この
I/Oライトがアクノリッジされると、データ送信が可
能か否かを確認した後、第2のアプリケーションソフト
により命令実行のためのパラメータがI/Oアドレス4
1HにI/Oライトされる。そして、このI/Oライト
がアクノリッジされると、LEDがON/OFFされる
ことになる。
ためには第2のアーキテクチャでは図45(A)のステ
ップN1〜N12に示すように以下の処理が行われる。
即ち、まず、データ送信が可能か否かを確認した後、第
2のアプリケーションソフトにより9DH(キーボード
へコマンドを転送するときのキーになるコード)がI/
Oアドレス41HにI/Oライトされる。そして、この
I/Oライトがアクノリッジされると、データ送信が可
能か否かを確認した後、第2のアプリケーションソフト
により命令実行のためのパラメータがI/Oアドレス4
1HにI/Oライトされる。そして、このI/Oライト
がアクノリッジされると、LEDがON/OFFされる
ことになる。
【0254】本第4の実施例では、上記の処理を図45
(B)に示すようにエミュレート処理している。
(B)に示すようにエミュレート処理している。
【0255】図45(B)において、まず、第2のアプ
リケーションソフトで43HがI/Oリードされ(ステ
ップP1)、ビット0又はビット2が”1”か否か、即
ち送信が可能か否かが判断される(ステップP2)。こ
の場合、本第3の実施例では、サブコントローラ100
によりアドレス、データが変換処理され(ステップP
2)、これにより8042の64Hからステータスがリ
ードされる(ステップP3)。これによりTXRDY
(送信レディ)、TXE(送信バッファレジスタが空)
が”1”か否かの判断が可能となる(ステップP4、図
32(C)参照)。そして、送信可能と判断され、第2
のアプリケーションソフトにより9DHが41Hへとラ
イトされると(ステップP5)、図45(A)の従来の
場合と異なり、SMI処理によるアドレス、データの変
換処理が開始される(ステップP6、図46参照)。図
46に示すように、このSMI処理では、まずコマンド
の判別が行われ、この判別結果に応じたアドレス、デー
タの変換処理が行われる(ステップQ3)。そして、9
DHを第1のアーキテクチャに適合するように変換して
得られたEDHの内容が60HへとI/Oライトされる
(ステップQ4)。その後、図45(B)のステップP
7に示すように、キーボード49に内蔵されたキーボー
ドユニットコントローラ55からキーボードコントロー
ラ48へとデータが入力されると、ステップP8でAC
K(アクノリッジ、0F8H)のコードが転送されたか
否かが判断される。そして、転送されなかった場合には
エラーと判断される(ステップP9)。以上により、キ
ーボード49へのコマンド転送処理が行われる。
リケーションソフトで43HがI/Oリードされ(ステ
ップP1)、ビット0又はビット2が”1”か否か、即
ち送信が可能か否かが判断される(ステップP2)。こ
の場合、本第3の実施例では、サブコントローラ100
によりアドレス、データが変換処理され(ステップP
2)、これにより8042の64Hからステータスがリ
ードされる(ステップP3)。これによりTXRDY
(送信レディ)、TXE(送信バッファレジスタが空)
が”1”か否かの判断が可能となる(ステップP4、図
32(C)参照)。そして、送信可能と判断され、第2
のアプリケーションソフトにより9DHが41Hへとラ
イトされると(ステップP5)、図45(A)の従来の
場合と異なり、SMI処理によるアドレス、データの変
換処理が開始される(ステップP6、図46参照)。図
46に示すように、このSMI処理では、まずコマンド
の判別が行われ、この判別結果に応じたアドレス、デー
タの変換処理が行われる(ステップQ3)。そして、9
DHを第1のアーキテクチャに適合するように変換して
得られたEDHの内容が60HへとI/Oライトされる
(ステップQ4)。その後、図45(B)のステップP
7に示すように、キーボード49に内蔵されたキーボー
ドユニットコントローラ55からキーボードコントロー
ラ48へとデータが入力されると、ステップP8でAC
K(アクノリッジ、0F8H)のコードが転送されたか
否かが判断される。そして、転送されなかった場合には
エラーと判断される(ステップP9)。以上により、キ
ーボード49へのコマンド転送処理が行われる。
【0256】次に、ステップP1〜P4と同様に、デー
タの送信が可能か否か判断される(ステップP10〜P
13)。そして、可能と判断されると、ステップP14
〜P17に示すように、コマンドを実行するためのパラ
メータの転送処理が行われる。このパラメータの転送処
理は、ステップP5〜P8と同様に行われる。但し、こ
の場合にはSMI処理の際に、パラメータの判別が行わ
れ、この判別結果に基づいてアドレス、データの変換処
理が行われる。
タの送信が可能か否か判断される(ステップP10〜P
13)。そして、可能と判断されると、ステップP14
〜P17に示すように、コマンドを実行するためのパラ
メータの転送処理が行われる。このパラメータの転送処
理は、ステップP5〜P8と同様に行われる。但し、こ
の場合にはSMI処理の際に、パラメータの判別が行わ
れ、この判別結果に基づいてアドレス、データの変換処
理が行われる。
【0257】以上の処理を行うことにより、キーボード
上のLEDをON、OFFすることが可能となる。
上のLEDをON、OFFすることが可能となる。
【0258】2.キーボードコントローラへのコマンド
ライトのエミュレーション キーボードコントローラ48へのコマンドライトのエミ
ュレーションでは、8251Aへの1回の書き込み動作
に対応して、8042では複数回書き込み動作を行わな
ければならず大変複雑である(図43、図44の92
0、924参照)。更に、コマンドライトについては実
行される頻度も低いため図23に示す第2の変換方式を
採用する。また、本実施例では、8042では存在しな
い8251Aのコマンドビット及び8251Aのモード
インストラクションについてはエミュレート処理を行わ
ないこととする(図43、図44の926、928参
照)。図47(A)、(B)には、従来のハードウェア
及び本実施例におけるコマンドライトのフローチャート
が示される。従来では(ステップR1、R2)、第2の
アプリケーションソフトにより43HへI/Oライトが
行われると、そのまま8251Aにコマンドが書き込ま
れた。これに対して、本実施例(ステップS1〜S3)
では、43HへのI/Oライトが行われると、SMI処
理によりアドレス、データの交換が行われ、8042へ
のコマンドの書き込みが行われる。
ライトのエミュレーション キーボードコントローラ48へのコマンドライトのエミ
ュレーションでは、8251Aへの1回の書き込み動作
に対応して、8042では複数回書き込み動作を行わな
ければならず大変複雑である(図43、図44の92
0、924参照)。更に、コマンドライトについては実
行される頻度も低いため図23に示す第2の変換方式を
採用する。また、本実施例では、8042では存在しな
い8251Aのコマンドビット及び8251Aのモード
インストラクションについてはエミュレート処理を行わ
ないこととする(図43、図44の926、928参
照)。図47(A)、(B)には、従来のハードウェア
及び本実施例におけるコマンドライトのフローチャート
が示される。従来では(ステップR1、R2)、第2の
アプリケーションソフトにより43HへI/Oライトが
行われると、そのまま8251Aにコマンドが書き込ま
れた。これに対して、本実施例(ステップS1〜S3)
では、43HへのI/Oライトが行われると、SMI処
理によりアドレス、データの交換が行われ、8042へ
のコマンドの書き込みが行われる。
【0259】3.キーボードからのデータ入力の受信の
エミュレーション キーボード49からのデータ入力は、I/Oアドレスが
異なるとともに入力されたデータを全て変換しなければ
ならなく大変複雑である。そこで、図25に示す第4の
変換方式を採用する。
エミュレーション キーボード49からのデータ入力は、I/Oアドレスが
異なるとともに入力されたデータを全て変換しなければ
ならなく大変複雑である。そこで、図25に示す第4の
変換方式を採用する。
【0260】図48(A)、(B)には、従来のハード
ウェア及び本実施例におけるデータ入力受信のフローチ
ャートが示される。ステップU1〜U4の処理により、
ステータスレジスタのビット1が”1”か否か、即ちデ
ータ受信がレディか否かが判断される(図32(C)参
照)。この場合、図48(A)の従来の場合と異なりス
テップU2の処理によりアドレス、データが変換され
る。データ受信がレディで、第2のアプリケーションソ
フトにより41HがI/Oリードされると(ステップU
5)、SMI処理が開始されアドレス、データが変換さ
れる(ステップU6、図49参照)。これにより、80
42よりキーボード入力データを受信することが可能と
なる(ステップU7)。
ウェア及び本実施例におけるデータ入力受信のフローチ
ャートが示される。ステップU1〜U4の処理により、
ステータスレジスタのビット1が”1”か否か、即ちデ
ータ受信がレディか否かが判断される(図32(C)参
照)。この場合、図48(A)の従来の場合と異なりス
テップU2の処理によりアドレス、データが変換され
る。データ受信がレディで、第2のアプリケーションソ
フトにより41HがI/Oリードされると(ステップU
5)、SMI処理が開始されアドレス、データが変換さ
れる(ステップU6、図49参照)。これにより、80
42よりキーボード入力データを受信することが可能と
なる(ステップU7)。
【0261】図49には、この場合のSMI処理の詳細
が示される。このSMI処理により図44の930に示
す変換処理が実行される。ステップV1〜V4によりS
MI処理が開始すると(ステップV5)、RーAdr1
32にラッチされたI/Oアドレスが41Hか否かが判
断され(ステップV6)、41Hではない場合には、他
のI/Oエミュレート処理が実行される(ステップV
7)。次に、I/Oリードか否かがR−Be128にラ
ッチされたバスコマンドにより判断され(ステップV
8)、I/Oリードでない場合には、キーボードのコマ
ンドライトのエミュレート処理が実行される(ステップ
V9)。次に、I/Oアドレス60HからI/Oリード
され(ステップV10)、SMRAMに格納された所定
の変換テーブルにしたがって、読み出されたデータが変
換される(ステップV11)。次に、CPU1の内部レ
ジスタALが格納されるステートセーブ領域に、ステッ
プV11で変換されたデータがセーブされる(ステップ
V12)。その後、RSMが発行され、SMRAMに退
避されたCPU1の内部レジスタの内容が戻される(ス
テップV13)。
が示される。このSMI処理により図44の930に示
す変換処理が実行される。ステップV1〜V4によりS
MI処理が開始すると(ステップV5)、RーAdr1
32にラッチされたI/Oアドレスが41Hか否かが判
断され(ステップV6)、41Hではない場合には、他
のI/Oエミュレート処理が実行される(ステップV
7)。次に、I/Oリードか否かがR−Be128にラ
ッチされたバスコマンドにより判断され(ステップV
8)、I/Oリードでない場合には、キーボードのコマ
ンドライトのエミュレート処理が実行される(ステップ
V9)。次に、I/Oアドレス60HからI/Oリード
され(ステップV10)、SMRAMに格納された所定
の変換テーブルにしたがって、読み出されたデータが変
換される(ステップV11)。次に、CPU1の内部レ
ジスタALが格納されるステートセーブ領域に、ステッ
プV11で変換されたデータがセーブされる(ステップ
V12)。その後、RSMが発行され、SMRAMに退
避されたCPU1の内部レジスタの内容が戻される(ス
テップV13)。
【0262】以上のようにして本第3の実施例では、キ
ーボードからのデータ入力の受信のエミュレート処理が
行われる。そして、この場合、SMI処理により変換さ
れたデータは、RSM命令により自動的にCPU1の内
部レジスタに戻されるため、処理が非常に単純化され
る。
ーボードからのデータ入力の受信のエミュレート処理が
行われる。そして、この場合、SMI処理により変換さ
れたデータは、RSM命令により自動的にCPU1の内
部レジスタに戻されるため、処理が非常に単純化され
る。
【0263】4.キーボードコントローラからのステー
タスリードのエミュレーション ステータスリードのエミュレート処理は、図43の93
2に示すように、I/Oアドレスを43Hから64Hに
変換し、データのビット変換を行えばよい。また、図4
4の934に示すように、8251Aの43Hのビット
4、3(FE、OE)は8042にはない機能なのでエ
ミュレート処理は行わない。また、ステータスリードは
高速である必要があるため、図24に示す第3の変換方
式を採用する。
タスリードのエミュレーション ステータスリードのエミュレート処理は、図43の93
2に示すように、I/Oアドレスを43Hから64Hに
変換し、データのビット変換を行えばよい。また、図4
4の934に示すように、8251Aの43Hのビット
4、3(FE、OE)は8042にはない機能なのでエ
ミュレート処理は行わない。また、ステータスリードは
高速である必要があるため、図24に示す第3の変換方
式を採用する。
【0264】図50(A)、(B)には、従来のハード
ウェア及び本実施例におけるステータスリードのフロー
チャートが示される。図50(B)に示すように、従来
の場合と異なり、本実施例では、第2のアプリケーショ
ンソフトで43Hがリードされると(ステップX1)、
サブコントローラ100がアドレス、データを変換して
(ステップX2)、変換されたアドレス64Hからビッ
ト変換されたデータがI/Oリードされる(ステップX
3)。これにより、8042からステータスをリードす
ることが可能となる(ステップX4)。
ウェア及び本実施例におけるステータスリードのフロー
チャートが示される。図50(B)に示すように、従来
の場合と異なり、本実施例では、第2のアプリケーショ
ンソフトで43Hがリードされると(ステップX1)、
サブコントローラ100がアドレス、データを変換して
(ステップX2)、変換されたアドレス64Hからビッ
ト変換されたデータがI/Oリードされる(ステップX
3)。これにより、8042からステータスをリードす
ることが可能となる(ステップX4)。
【0265】以上の(1)〜(4)の処理により、本第
4の実施例では、第1のアーキテクチャで使用されるデ
バイス制御手段(8042)を第2のアーキテクチャの
システムに適合させることが可能となる。
4の実施例では、第1のアーキテクチャで使用されるデ
バイス制御手段(8042)を第2のアーキテクチャの
システムに適合させることが可能となる。
【0266】(第5の実施例)本第5の実施例は割り込
みベクトルの変換に関する実施例である。互換性を維持
するためには割り込みベクトルについても変換すること
が望ましい。図51に示すように、第1のアーキテクチ
ャと第2のアーキテクチャとでは、各I/Oデバイス
(タイマー、キーボード等)からの割り込みの各割り込
みベクトルに対する割り当てが異なっている。従って、
割り込みコントローラ54に関しては単にそのI/Oア
ドレスを変換するだけでなく、各割り込み線の配置につ
いても変換する必要がある。
みベクトルの変換に関する実施例である。互換性を維持
するためには割り込みベクトルについても変換すること
が望ましい。図51に示すように、第1のアーキテクチ
ャと第2のアーキテクチャとでは、各I/Oデバイス
(タイマー、キーボード等)からの割り込みの各割り込
みベクトルに対する割り当てが異なっている。従って、
割り込みコントローラ54に関しては単にそのI/Oア
ドレスを変換するだけでなく、各割り込み線の配置につ
いても変換する必要がある。
【0267】割り込み線の変換は以下の手法により簡単
に実現できる。例えば図52(B)に示すように、割り
込みコントロール部250の前にセレクタ252を設け
る。そして、モード切り替え信号254により、第1の
(アーキテクチャ)のモードか、第2の(アーキテクチ
ャ)のモードかで割り込み線を切り替える。これによ
り、IRQ0〜IRQ15からIRQ’0〜IRQ’1
5への割り込み線の切り替え可能となる。
に実現できる。例えば図52(B)に示すように、割り
込みコントロール部250の前にセレクタ252を設け
る。そして、モード切り替え信号254により、第1の
(アーキテクチャ)のモードか、第2の(アーキテクチ
ャ)のモードかで割り込み線を切り替える。これによ
り、IRQ0〜IRQ15からIRQ’0〜IRQ’1
5への割り込み線の切り替え可能となる。
【0268】しかし、割り込み要因発生部と割り込みコ
ントロール部とが1つのICの中に共に内蔵されている
場合には、上記の手法を用いることはできない。割り込
み要因発生部と割り込みコントロール部とが1つのIC
に内蔵されていると、外部に割り込み線が出てこなくな
り、割り込み線の交換が不可能となるからである。とこ
ろが、第1のアーキテクチャのハードウェア構成では、
割り込み要因発生部と割り込みコントロール部とは1つ
のICに内蔵されている。そこで、本第5の実施例で
は、割り込みアクノリッジサイクルでCPU1が割り込
みベクトルを取り込む際に、PCIバス23(又はVL
バス等)上で割り込みベクトルを変換する処理を行う。
ここで、PCIにおける割り込みアクノリッジサイクル
の発生は、C/BE0〜3とFRAME信号をドライブ
することにより実現される。
ントロール部とが1つのICの中に共に内蔵されている
場合には、上記の手法を用いることはできない。割り込
み要因発生部と割り込みコントロール部とが1つのIC
に内蔵されていると、外部に割り込み線が出てこなくな
り、割り込み線の交換が不可能となるからである。とこ
ろが、第1のアーキテクチャのハードウェア構成では、
割り込み要因発生部と割り込みコントロール部とは1つ
のICに内蔵されている。そこで、本第5の実施例で
は、割り込みアクノリッジサイクルでCPU1が割り込
みベクトルを取り込む際に、PCIバス23(又はVL
バス等)上で割り込みベクトルを変換する処理を行う。
ここで、PCIにおける割り込みアクノリッジサイクル
の発生は、C/BE0〜3とFRAME信号をドライブ
することにより実現される。
【0269】図52(A)には、このエミュレート処理
のフローチャートが示され、図53には各信号のタイミ
ング図が示される。このエミュレート処理は、図24に
示す第3の変換方式と似た変換方式である。CPU1が
割り込みアクノリッジサイクルを発生すると(ステップ
Y1)、サブコントローラ100によりアクノリッジサ
イクルが中断される(ステップY2)。これは、図53
に示すように、サブコントローラ100がSTOP、D
EVSEL、TRDYをアサートして、リトライ処理を
行うことにより実現される。次に、GNT−CPUをデ
ィアサートして、サブコントローラ100がバスを占有
する(ステップY3)。その後、今度はサブコントロー
ラ100が割り込みアクノリッジを発生し、割り込みコ
ントローラから割り込みベクトルをリードし、これを所
定の割り込みベクトルに変換する(ステップY4)。次
に、バスが解放され(ステップY5)、CPU1が再び
割り込みアクノリッジサイクルを発生する(ステップY
6)。そして、この時にサブコントローラ100が変換
された割り込みベクトルをPCIバス23上に出力する
ことにより(ステップY7)、割り込みアクノリッジサ
イクルが正常に終了する(ステップY8)。
のフローチャートが示され、図53には各信号のタイミ
ング図が示される。このエミュレート処理は、図24に
示す第3の変換方式と似た変換方式である。CPU1が
割り込みアクノリッジサイクルを発生すると(ステップ
Y1)、サブコントローラ100によりアクノリッジサ
イクルが中断される(ステップY2)。これは、図53
に示すように、サブコントローラ100がSTOP、D
EVSEL、TRDYをアサートして、リトライ処理を
行うことにより実現される。次に、GNT−CPUをデ
ィアサートして、サブコントローラ100がバスを占有
する(ステップY3)。その後、今度はサブコントロー
ラ100が割り込みアクノリッジを発生し、割り込みコ
ントローラから割り込みベクトルをリードし、これを所
定の割り込みベクトルに変換する(ステップY4)。次
に、バスが解放され(ステップY5)、CPU1が再び
割り込みアクノリッジサイクルを発生する(ステップY
6)。そして、この時にサブコントローラ100が変換
された割り込みベクトルをPCIバス23上に出力する
ことにより(ステップY7)、割り込みアクノリッジサ
イクルが正常に終了する(ステップY8)。
【0270】以上の処理により、図52(B)に示すよ
うな手法を用いずに、割り込みベクトルの変換が可能と
なる。この場合、例えば、図51のFDDコントローラ
等、第2のアーキテクチャには存在しないものもある。
この場合には、例えば割り込みコントロールするための
専用のハードウェアをサブコントローラ100内に設け
ることで対処できる。
うな手法を用いずに、割り込みベクトルの変換が可能と
なる。この場合、例えば、図51のFDDコントローラ
等、第2のアーキテクチャには存在しないものもある。
この場合には、例えば割り込みコントロールするための
専用のハードウェアをサブコントローラ100内に設け
ることで対処できる。
【0271】なお、本発明は上記実施例に限定されるも
のではなく、本発明の要旨の範囲内で種々の変形実施が
可能である。
のではなく、本発明の要旨の範囲内で種々の変形実施が
可能である。
【0272】例えば、上記実施例では、第1のコンピュ
ータアーキテクチャとしてハードウェア、ソフトウェア
の占める市場規模が世界的に非常に大きいものを考え、
第2のコンピュータアーキテクチャとしてこれらの市場
規模が比較的中規模だがソフトウェアの資産を尊重した
いものを考えた。しかし、本発明における第1、第2の
コンピュータアーキテクチャはこれらに限らず、上記と
逆の関係にある場合であっても本発明を当然に適用でき
る。この場合には、例えばシリアルインターフェイスの
エミュレート処理については、8251A上で所定のア
プリケーションが実行できるようにエミュレート処理を
行えばよい。また、キーボードについてのエミュレート
処理についても、8251A上で所定のアプリケーショ
ンが実行できるようにエミュレート処理を行えばよい。
そして、この場合のエミュレート処理は上記実施例で説
明したのと同様の手法により行えることは明らかであ
る。また、本発明における第2のコンピュータアーキテ
クチャとは、第1のコンピュータアーキテクチャとは異
なる1又は複数のコンピュータアーキテクチャという意
味である。同様に、第1のコンピュータアーキテクチャ
とは、第2のコンピュータアーキテクチャとは異なる1
又は複数のコンピュータアーキテクチャという意味であ
る。
ータアーキテクチャとしてハードウェア、ソフトウェア
の占める市場規模が世界的に非常に大きいものを考え、
第2のコンピュータアーキテクチャとしてこれらの市場
規模が比較的中規模だがソフトウェアの資産を尊重した
いものを考えた。しかし、本発明における第1、第2の
コンピュータアーキテクチャはこれらに限らず、上記と
逆の関係にある場合であっても本発明を当然に適用でき
る。この場合には、例えばシリアルインターフェイスの
エミュレート処理については、8251A上で所定のア
プリケーションが実行できるようにエミュレート処理を
行えばよい。また、キーボードについてのエミュレート
処理についても、8251A上で所定のアプリケーショ
ンが実行できるようにエミュレート処理を行えばよい。
そして、この場合のエミュレート処理は上記実施例で説
明したのと同様の手法により行えることは明らかであ
る。また、本発明における第2のコンピュータアーキテ
クチャとは、第1のコンピュータアーキテクチャとは異
なる1又は複数のコンピュータアーキテクチャという意
味である。同様に、第1のコンピュータアーキテクチャ
とは、第2のコンピュータアーキテクチャとは異なる1
又は複数のコンピュータアーキテクチャという意味であ
る。
【0273】また、本発明における命令の解析、要因デ
ータの設定の手法は、上記実施例に限られず、あらゆる
種類のものを考えることができる。
ータの設定の手法は、上記実施例に限られず、あらゆる
種類のものを考えることができる。
【0274】また、上記実施例では、バスアービタはサ
ブコントローラに内蔵されていたが、本発明はこれに限
らず、サブコントローラの外部にバスアービタを配置し
ても構わない。
ブコントローラに内蔵されていたが、本発明はこれに限
らず、サブコントローラの外部にバスアービタを配置し
ても構わない。
【0275】また、サブコントローラも装置の本体に内
蔵するものに限らず、オプションスロットに挿入される
オプションボード上にサブコントローラ等を配置する構
成としても構わない。この場合は、第1のアーキテクチ
ャの情報処理装置、例えば第1のアーキテクチャのパー
ソナルコンピュータシステムのオプションスロットにオ
プションボードを挿入する。そして、SMMハンドラ
は、例えばオプションボード上の記憶装置、あるいは、
フロッピーディスク、CDROM等の外部記憶装置に格
納しておき、これをパーソナルコンピュータシステムの
RAM上にロードして、SMMハンドラによる所定の処
理を実行することになる。また、SMRAMについて
は、第1のアーキテクチャのパーソナルコンピュータシ
ステムのRAMを転用する、あるいは、ボード上に独自
の記憶装置を設け、これをSMRAMとして使用すれば
よい。
蔵するものに限らず、オプションスロットに挿入される
オプションボード上にサブコントローラ等を配置する構
成としても構わない。この場合は、第1のアーキテクチ
ャの情報処理装置、例えば第1のアーキテクチャのパー
ソナルコンピュータシステムのオプションスロットにオ
プションボードを挿入する。そして、SMMハンドラ
は、例えばオプションボード上の記憶装置、あるいは、
フロッピーディスク、CDROM等の外部記憶装置に格
納しておき、これをパーソナルコンピュータシステムの
RAM上にロードして、SMMハンドラによる所定の処
理を実行することになる。また、SMRAMについて
は、第1のアーキテクチャのパーソナルコンピュータシ
ステムのRAMを転用する、あるいは、ボード上に独自
の記憶装置を設け、これをSMRAMとして使用すれば
よい。
【0276】また、上記実施例では、CPUとしてパイ
プライン処理の機能を備えたPentiumを使用して
いるが、これ以外のCPU(例えば、SL Enhan
ced486等)も当然用いることができる。また、こ
のPentiumでは、SMIが発生した際に、パイプ
ライン等でCPUの処理が次命令に進んでいるという可
能性がある。このような場合には、CPUにリトライさ
せ、SMIが所望の命令の次に発生するようにすればよ
い。
プライン処理の機能を備えたPentiumを使用して
いるが、これ以外のCPU(例えば、SL Enhan
ced486等)も当然用いることができる。また、こ
のPentiumでは、SMIが発生した際に、パイプ
ライン等でCPUの処理が次命令に進んでいるという可
能性がある。このような場合には、CPUにリトライさ
せ、SMIが所望の命令の次に発生するようにすればよ
い。
【0277】またメモリコントローラ11等の第1のア
ーキテクチャの制御デバイスは、その仕様によってRA
M等の外部接続デバイスのアドレス設定を、第2のアー
キテクチャの使用アドレスに合致させられない場合も想
定されるが、適切なデコーダ回路を挿入すれば十分に対
応は可能である。
ーキテクチャの制御デバイスは、その仕様によってRA
M等の外部接続デバイスのアドレス設定を、第2のアー
キテクチャの使用アドレスに合致させられない場合も想
定されるが、適切なデコーダ回路を挿入すれば十分に対
応は可能である。
【0278】また、本発明では、選択するアーキテクチ
ャによっては処理が非常に複雑で高速性の要求からエミ
ュレート処理することが困難である場合がある。このよ
うな場合では、情報処理装置内に最低限必要なハードウ
ェアを複数設ければよい。例えば、ビデオコントロー
ラ、FDDコントローラ等については、複数のアーキテ
クチャのものを情報処理装置内に内蔵すればよい。
ャによっては処理が非常に複雑で高速性の要求からエミ
ュレート処理することが困難である場合がある。このよ
うな場合では、情報処理装置内に最低限必要なハードウ
ェアを複数設ければよい。例えば、ビデオコントロー
ラ、FDDコントローラ等については、複数のアーキテ
クチャのものを情報処理装置内に内蔵すればよい。
【0279】また上記実施例では割り込み手段としてS
MIを用いたが、今後開発される割り込み手段であって
も、前述で説明したSMIの特徴と同様の特徴を備える
ものであれば、同じ様に用いることが可能である。
MIを用いたが、今後開発される割り込み手段であって
も、前述で説明したSMIの特徴と同様の特徴を備える
ものであれば、同じ様に用いることが可能である。
【0280】
【発明の効果】請求項1又は20の発明によれば、第2
のアーキテクチャにしたがった命令をサポートしていな
いデバイス制御手段、デバイスを、第2のアーキテクチ
ャのシステムにおいて有効利用することが可能となる。
これによりハードウェアの開発日程の短縮、工数の削減
ができる。
のアーキテクチャにしたがった命令をサポートしていな
いデバイス制御手段、デバイスを、第2のアーキテクチ
ャのシステムにおいて有効利用することが可能となる。
これによりハードウェアの開発日程の短縮、工数の削減
ができる。
【0281】また、請求項2の発明によれば、独自の制
御モードでメモリ管理を行うことが可能となり、変換テ
ーブルを用いなければならないような複雑な処理を簡易
に実現できる。
御モードでメモリ管理を行うことが可能となり、変換テ
ーブルを用いなければならないような複雑な処理を簡易
に実現できる。
【0282】また、請求項3の発明によれば、アプリケ
ーションプログラム等により、所定の処理に必要なデー
タが格納されるアドレス位置が書き換えられ該所定の処
理の実行が不可能となるという事態を有効に防止でき
る。
ーションプログラム等により、所定の処理に必要なデー
タが格納されるアドレス位置が書き換えられ該所定の処
理の実行が不可能となるという事態を有効に防止でき
る。
【0283】また、請求項4の発明によれば、例えば、
エミュレート処理により変換された命令により読み出さ
れたデータ等を自動的に中央制御手段の内部レジスタに
リストアすることが可能となり、処理が非常に単純化さ
れる。
エミュレート処理により変換された命令により読み出さ
れたデータ等を自動的に中央制御手段の内部レジスタに
リストアすることが可能となり、処理が非常に単純化さ
れる。
【0284】また、請求項5の発明によれば、誤動作が
生じにくく互換性の高いエミュレートシステムを実現で
き、システムの信頼性を高めることができる。
生じにくく互換性の高いエミュレートシステムを実現で
き、システムの信頼性を高めることができる。
【0285】また、請求項6の発明によれば、プログラ
ムの開発を容易にすることができ、プログラムの開発コ
スト、開発期間を少なくすることが可能となる。
ムの開発を容易にすることができ、プログラムの開発コ
スト、開発期間を少なくすることが可能となる。
【0286】また、請求項7の発明によれば、NMIや
通常の割り込みINTを使用する必要がなくなり、互換
性が高く、信頼性の高いシステムを提供できる。
通常の割り込みINTを使用する必要がなくなり、互換
性が高く、信頼性の高いシステムを提供できる。
【0287】また、請求項8の発明によれば、要因の検
索を高速にできるとともに、要因間に優先順位を設定す
ることも容易となり、システムの性能を向上させること
ができる。
索を高速にできるとともに、要因間に優先順位を設定す
ることも容易となり、システムの性能を向上させること
ができる。
【0288】また、請求項9又は21の発明によれば、
単に異なるアーキテクチャのアプリケーションプログラ
ムを動作させるエミュレートシステムでは実現できない
エミュレートシステムを提供できる。
単に異なるアーキテクチャのアプリケーションプログラ
ムを動作させるエミュレートシステムでは実現できない
エミュレートシステムを提供できる。
【0289】また、請求項10又は22の発明によれ
ば、即座に処理をしなければならない動作環境の変化に
対して優先的に処理を施すことができ、システムの信頼
性を高めることができる。
ば、即座に処理をしなければならない動作環境の変化に
対して優先的に処理を施すことができ、システムの信頼
性を高めることができる。
【0290】また、請求項11の発明によれば、電源断
処理、リセット処理の際に、データが損失するのを防止
でき、例えば携帯用のコンピュータシステム、レジュー
ム機能付きのコンピュータシステムに最適のエミュレー
トシステムを提供できる。
処理、リセット処理の際に、データが損失するのを防止
でき、例えば携帯用のコンピュータシステム、レジュー
ム機能付きのコンピュータシステムに最適のエミュレー
トシステムを提供できる。
【0291】また、請求項12又は23の発明によれ
ば、第1のデバイス制御手段が有する機能を利用し、該
機能に基づき外部入力に応じた処理が行われるため、第
1のデバイス制御手段を有効利用できる。
ば、第1のデバイス制御手段が有する機能を利用し、該
機能に基づき外部入力に応じた処理が行われるため、第
1のデバイス制御手段を有効利用できる。
【0292】また、請求項13又は24の発明によれ
ば、無用の割り込みが発生するのを防止でき、処理の無
駄を省ける。
ば、無用の割り込みが発生するのを防止でき、処理の無
駄を省ける。
【0293】また、請求項14の発明によれば、誤動作
を生じさせる割り込みの発生を防止でき、システムの信
頼性を高めることができる。
を生じさせる割り込みの発生を防止でき、システムの信
頼性を高めることができる。
【0294】また、請求項15の発明によれば、ダミー
の割り込みを発生するという簡易な手法で、システムの
誤動作を防止できる。
の割り込みを発生するという簡易な手法で、システムの
誤動作を防止できる。
【0295】また、請求項16又は25の発明によれ
ば、所定の処理の間、エミュレートシステムを高速化し
たり、エミュレート処理の際にしか見ることのできない
I/Oポートを用意したりすることができ、これにより
エミュレートシステムの性能を向上させることができ
る。
ば、所定の処理の間、エミュレートシステムを高速化し
たり、エミュレート処理の際にしか見ることのできない
I/Oポートを用意したりすることができ、これにより
エミュレートシステムの性能を向上させることができ
る。
【0296】また、請求項17の発明によれば、所定の
処理の高速化を図れ、エミュレートシステムの性能を向
上させることができる。
処理の高速化を図れ、エミュレートシステムの性能を向
上させることができる。
【0297】また、請求項18の発明によれば、中央制
御手段が所定の処理を円滑に行うことが可能となり、エ
ミュレートシステムの性能を向上させることができる。
御手段が所定の処理を円滑に行うことが可能となり、エ
ミュレートシステムの性能を向上させることができる。
【0298】また、請求項19の発明によれば、第1の
アーキテクチャと第2のアーキテクチャとの間で、メモ
リマップの配置が異なっていても、第1のアーキテクチ
ャで使用されるデバイス制御手段等を第2のアーキテク
チャのシステムにおいて有効利用できる。更に、表示モ
ードが標準解像度モードと高解像度モードというように
複数種類あった場合にも、これらのモード間の切り替え
についても容易に行うことができる。
アーキテクチャと第2のアーキテクチャとの間で、メモ
リマップの配置が異なっていても、第1のアーキテクチ
ャで使用されるデバイス制御手段等を第2のアーキテク
チャのシステムにおいて有効利用できる。更に、表示モ
ードが標準解像度モードと高解像度モードというように
複数種類あった場合にも、これらのモード間の切り替え
についても容易に行うことができる。
【0299】
【図1】本発明の第1の実施例のハードウェアを説明す
るブロック図である。
るブロック図である。
【図2】メモリマッピングを切り替えるためのハードウ
ェア構成を説明する図である。
ェア構成を説明する図である。
【図3】本発明の概念を説明する図である。
【図4】図4(A)は、リアルモード時におけるNMI
処理の動作を示す図であり、図4(B)は、そのフロー
チャート図である。
処理の動作を示す図であり、図4(B)は、そのフロー
チャート図である。
【図5】図5(A)は、プロテクトモード時におけるN
MI処理の動作を示す図であり、図5(B)は、そのフ
ローチャート図である。また、図5(C)はスタック領
域について説明する図である。
MI処理の動作を示す図であり、図5(B)は、そのフ
ローチャート図である。また、図5(C)はスタック領
域について説明する図である。
【図6】SMI処理の動作原理を説明するフローチャー
トである。
トである。
【図7】サブコントローラ内のI/O受付手段、SMI
マスク手段、SMIステータス、SMI発生手段の回路
構成の一例である。
マスク手段、SMIステータス、SMI発生手段の回路
構成の一例である。
【図8】図8(A)、(B)は、要因レジスタ、マスク
レジスタの階層構造を説明するための図である。
レジスタの階層構造を説明するための図である。
【図9】要因レジスタ、マスクレジスタを階層構造とし
た場合の回路構成の一例である。
た場合の回路構成の一例である。
【図10】要因レジスタ、マスクレジスタを階層構造と
した場合の回路構成の一例である。
した場合の回路構成の一例である。
【図11】図11(A)〜(C)は、リセット検出手
段、スピード切替検出手段、電源断検出手段の回路構成
の一例である。
段、スピード切替検出手段、電源断検出手段の回路構成
の一例である。
【図12】図12(A)、(B)は、階層構造となった
サブコントローラの動作を示すフローチャート図であ
る。
サブコントローラの動作を示すフローチャート図であ
る。
【図13】要因データの設定についてのタイミング図の
一例である。
一例である。
【図14】SMMモードに入った後の本実施例の動作に
ついて示すフローチャート図である。
ついて示すフローチャート図である。
【図15】リセット処理についてのフローチャート図で
ある。
ある。
【図16】I/Oライトのエミュレート処理の動作につ
いて示すフローチャート図である。
いて示すフローチャート図である。
【図17】2つに表示モードに対応するメモリマップ及
びメモリ設定レジスタの設定状態の一部を示す図であ
る。
びメモリ設定レジスタの設定状態の一部を示す図であ
る。
【図18】バスアービタの構成の一例を示す図である。
【図19】バスアービタの構成の一例を示す図である。
【図20】バスアービタの動作を示す状態遷移図であ
る。
る。
【図21】図21(A)〜(C)は、SMI処理及びN
MI処理について説明するためのメモリマップ図であ
る。
MI処理について説明するためのメモリマップ図であ
る。
【図22】第1の変換方式のフローチャートである。
【図23】第2の変換方式のフローチャートである。
【図24】第3の変換方式のフローチャートである。
【図25】第4の変換方式のフローチャートである。
【図26】本発明の第2の実施例のハードウェアを説明
するブロック図である。
するブロック図である。
【図27】サブコントローラの詳細なブロック図であ
る。
る。
【図28】バスアービタの回路構成の一例である。
【図29】図29(A)、(B)は、シリアルコントロ
ーラに内蔵されるレジスタの種類とI/Oポートアドレ
スを示す図である。
ーラに内蔵されるレジスタの種類とI/Oポートアドレ
スを示す図である。
【図30】図30(A)、(B)は、従来のハードウェ
ア及び第3の実施例におけるデータ送信のフローチャー
トである。
ア及び第3の実施例におけるデータ送信のフローチャー
トである。
【図31】図31(A)は、データ送信のエミュレート
処理のフローチャートであり、図31(B)は、この場
合の各信号のタイミング図である。
処理のフローチャートであり、図31(B)は、この場
合の各信号のタイミング図である。
【図32】図32(A)〜(C)は、モードレジスタ、
コマンドレジスタ、ステータレジスタの内容を示す図で
ある。
コマンドレジスタ、ステータレジスタの内容を示す図で
ある。
【図33】2つのシリアルコントローラの各レジスタの
配置及び内容の比較を表す図である。
配置及び内容の比較を表す図である。
【図34】2つのシリアルコントローラの各レジスタの
配置及び内容の比較を表す図である。
配置及び内容の比較を表す図である。
【図35】図35(A)はコマンドライトのエミュレー
ト処理のフローチャートであり、図35(B)はこの場
合の各信号のタイミング図である。
ト処理のフローチャートであり、図35(B)はこの場
合の各信号のタイミング図である。
【図36】コマンドライトのエミュレート処理の詳細な
フロチャートである。
フロチャートである。
【図37】コマンドライトのエミュレート処理の詳細な
フロチャートである。
フロチャートである。
【図38】モードインストラクションのエミュレート処
理の詳細なフロチャートである。
理の詳細なフロチャートである。
【図39】図39(A)、(B)は、従来のハードウェ
ア及び第3の実施例におけるデータ受信のフローチャー
トである。
ア及び第3の実施例におけるデータ受信のフローチャー
トである。
【図40】データ受信のエミュレート処理の詳細なフロ
ーチャートである。
ーチャートである。
【図41】データ受信のエミュレート処理の各信号のタ
イミング図である。
イミング図である。
【図42】ステータスリードのエミュレート処理のフロ
ーチャートである。
ーチャートである。
【図43】8042、8251Aの各レジスタの配置及
び内容の比較を表す図である。
び内容の比較を表す図である。
【図44】8042、8251Aの各レジスタの配置及
び内容の比較を表す図である。
び内容の比較を表す図である。
【図45】図45(A)、(B)は、従来のハードウェ
ア及び本実施例におけるキーボードへのコマンド送信の
フローチャートである。
ア及び本実施例におけるキーボードへのコマンド送信の
フローチャートである。
【図46】コマンド送信のエミュレート処理の詳細なフ
ロチャートである。
ロチャートである。
【図47】図47(A)、(B)は、従来のハードウェ
ア及び第4の実施例におけるコマンドライトのフローチ
ャートである。
ア及び第4の実施例におけるコマンドライトのフローチ
ャートである。
【図48】図48(A)、(B)は、従来のハードウェ
ア及び第4の実施例におけるデータ受信のフローチャー
トである。
ア及び第4の実施例におけるデータ受信のフローチャー
トである。
【図49】データ受信のエミュレート処理の詳細なフロ
チャートである。
チャートである。
【図50】図50(A)、(B)は、従来のハードウェ
ア及び第4の実施例におけるステータスリードのフロー
チャートである。
ア及び第4の実施例におけるステータスリードのフロー
チャートである。
【図51】第1のアーキテクチャと第2のアーキテクチ
ャとの割り込みベクトルの比較を示す図である。
ャとの割り込みベクトルの比較を示す図である。
【図52】図52(A)は、割り込みベクトル変換のエ
ミュレート処理のフロチャートであり、図52(B)
は、モード切り替えにより割り込みベクトルの切り替え
を行う場合の手法を説明するための図である。
ミュレート処理のフロチャートであり、図52(B)
は、モード切り替えにより割り込みベクトルの切り替え
を行う場合の手法を説明するための図である。
【図53】割り込みベクトル変換のエミュレート処理に
おける各信号のタイミング図である。
おける各信号のタイミング図である。
【図54】従来のハードウェアの構成を示す図である。
【図55】従来のハードウェアにおいて2つの表示モー
ドを切り替える動作を示すフローチャートである。
ドを切り替える動作を示すフローチャートである。
1 CPU 3 キャッシュメモリ 5 CPUバス 7 HOLD信号 8 RESET信号 9 INIT信号 11 メモリコントローラ 12 ホールドウェイト制御 13 キャッシュコントローラ 14 リセットレジスタ 15 RAMコントローラ 17 メモリ設定レジスタ 19 PCIバスインターフェース 21 RAM 23 PCIバス 25 サブコントローラ 26 SMMハンドラ 27 SMI発生手段 28 SMIステータス 29 マスクレジスタ 30 I/O受付手段 31 SMI信号 33 VRAM 35 VRAM切替手段 37 HDD 39 ブリッジ回路 41 従来バス 43 ROM 45 ROM切替手段 47 FDD 48 キーボードコントローラ 49 キーボード 50 シリアルコントローラ 52 RS232Cインターフェイス 54 割り込みコントローラ 55 キーボードユニットコントローラ 60 スイッチ手段 62 デコーダ1 64 デコーダ2 66 ROM本体 70 バスアービタ 71 PCIバスインターフェース 73 リセット検出手段 74 スピード切替手段 75 電源断検出手段 76 表示切替検出手段 80 アプリケーションプログラム 82 OS 84 ハードウェア 86 エミュレート手段 88 ハード変更部分 100 サブコントローラ 104 命令変換手段 120 デコーダ 124 アドレス変換部 126 データ変換部 128 BEラッチレジスタ(R−Be) 130 アドレスラッチ 132 アドレスラッチレジスタ(R−Adr) 134 変換アドレスラッチ 136 データラッチレジスタ(R−Data) 138 変換データラッチ 902 タイミング回路 927 SMI発生手段 928 SMIステータス 929 SMIマスク手段 930 I/O受付手段 970 バスアービタ 971 PCIバスインターフェース 973 リセット検出手段 974 スピード切替手段 975 電源断検出手段 976 表示切替検出手段
Claims (25)
- 【請求項1】 第1のコンピュータアークテクチャに適
合した命令体系により制御される第1のデバイス制御手
段と、 前記第1のコンピュータアークテクチャとは異なる第2
のコンピュータアーキテクチャに適合した命令体系によ
り制御される第2のデバイス制御手段と、 前記第2のコンピュータアーキテクチャに適合した命令
体系によって命令を発行する中央制御手段とを含むエミ
ュレートシステムであって、 前記中央制御手段からの命令発行先として前記第2のデ
バイス制御手段又は該第2のデバイス制御手段の制御対
象が存在する場合には、該命令を前記第2のデバイス制
御手段又は該第2のデバイス制御手段の制御対象にその
まま伝える手段と、 前記中央制御手段からの命令発行先として前記第2のデ
バイス制御手段又は該第2のデバイス制御手段の制御対
象が存在しない場合には、該命令を受け取ると共に該命
令を解析し、命令の種類を示す要因データを設定し、前
記中央制御手段に対して割り込みを発生する手段と、 前記割り込みによって起動され、前記要因に対応した所
定の処理を、少なくとも前記第1のデバイス制御手段又
は該第1のデバイス制御手段の制御対象に対して実行す
る手段とを含むことを特徴とするエミュレートシステ
ム。 - 【請求項2】 請求項1において、 前記割り込みにより前記中央制御手段の制御モードが所
定システムにより管理される制御モードに移行され、該
制御モード専用のメモリ領域に前記所定の処理のために
必要なデータが格納されることを特徴とするエミュレー
トシステム。 - 【請求項3】 請求項2において、 前記メモリ領域において前記所定の処理のために必要な
データが格納されるアドレスの位置が、前記制御モード
においてのみ変更可能であることを特徴とするエミュレ
ートシステム。 - 【請求項4】 請求項1乃至3のいずれかにおいて、 前記割り込みにより前記中央制御手段の制御モードが所
定システムにより管理される制御モードに移行され、該
制御モード専用のメモリ領域に前記中央制御手段の内部
レジスタの内容が格納されるとともに、前記制御モード
の終了の際に、格納された内部レジスタの内容が前記中
央制御手段に戻されることを特徴とするエミュレートシ
ステム。 - 【請求項5】 請求項4において、 前記メモリ領域において前記内部レジスタの内容が格納
されるアドレスの位置が、前記制御モードにおいてのみ
変更可能であることを特徴とするエミュレートシステ
ム。 - 【請求項6】 請求項1乃至5のいずれかにおいて、 前記割り込みにより前記中央制御手段の制御モードが所
定システムにより管理される制御モードに移行され、割
り込み前の中央制御手段の制御モードに依存しない命令
体系により前記実行手段による前記所定の処理が行われ
ることを特徴とするエミュレートシステム。 - 【請求項7】 請求項1乃至6のいずれかにおいて、 前記割り込みが、前記中央制御手段をSMMモードに移
行させるためのSMI割り込みであることを特徴とする
エミュレートシステム。 - 【請求項8】 請求項1乃至7のいずれかにおいて、 前記要因データを格納するための複数の要因格納手段を
含み、各々の要因格納手段に格納される要因データにつ
いての更に詳細な要因データが該要因格納手段よりも階
層が下位の要因格納手段に格納されていることを特徴と
するエミュレートシステム。 - 【請求項9】 請求項1乃至8のいずれかにおいて、 システムの動作環境変化を検出すると共に該動作環境変
化を解析し、該動作環境変化の種類を示す要因データを
設定し、前記中央制御手段に対して前記実行手段を起動
するための前記割り込みを発生する手段を含むことを特
徴とするエミュレートシステム。 - 【請求項10】 請求項9において、 前記動作環境変化に基づいて設定される前記要因として
少なくとも電源断処理又はリセット処理についての要因
が含まれ、該要因が、前記中央制御手段により発行され
た命令に基づく要因よりも優先順位の高い要因として設
定されていることを特徴とするエミュレートシステム。 - 【請求項11】 請求項9又は10のいずれかにおい
て、 前記動作環境変化に基づいて設定される前記要因として
少なくとも電源断処理又はリセット処理についての要因
が含まれ、該要因に基づく処理の際に、前記実行手段
が、前記第1又は第2のデバイス制御手段の制御対象の
1つである記憶手段に記憶されるデータを保持又は退避
する処理を行うことを特徴とするエミュレートシステ
ム。 - 【請求項12】 請求項1乃至11のいずれかにおい
て、 前記要因として、少なくとも前記第1のデバイス制御手
段ではサポートされていない外部からの入力に関する要
因が含まれ、該外部入力が検出された場合に前記第1の
デバイス制御手段が該外部入力に応じた処理を行うよう
に、前記実行手段による前記所定の処理が行われること
を特徴とするエミュレートシステム。 - 【請求項13】 請求項1乃至12のいずれかにおい
て、 前記要因に基づく前記割り込みの発生の一部又は全部を
マスクする手段を含むことを特徴とするエミュレートシ
ステム。 - 【請求項14】 請求項13において、 電源投入処理又はリセット処理開始後、少なくとも前記
実行手段による前記所定の処理の正常な実行が可能とな
るまでの間、前記マスク手段により前記割り込み発生が
マスクされることを特徴とするエミュレートシステム。 - 【請求項15】 請求項14において、 電源投入処理又はリセット処理開始後、前記マスク手段
によりマスクされないダミーの割り込みが発生され、該
ダミーの割り込みにより起動される前記実行手段によ
り、前記所定の処理を正常に実行させるための処理が行
われることを特徴とするエミュレートシステム。 - 【請求項16】 請求項1乃至15のいずれかにおい
て、 前記実行手段が前記所定の処理を実行する間、システム
の動作環境を所定の状態に変更する手段を含むことを特
徴とするエミュレートシステム。 - 【請求項17】 請求項16において、 前記動作環境の変更が、中央制御手段の処理速度を高速
に設定する変更であることを特徴とするエミュレートシ
ステム。 - 【請求項18】 請求項1乃至17のいずれかにおい
て、 バスのアービトレーションを行うバスアービタ手段を含
み、該バスアービタ手段が、前記割り込みが発生した場
合には、中央制御手段によるバスアクセスの優先順位が
最も高くなるようにバスアービトレーション処理を行う
ことを特徴とするエミュレートシステム。 - 【請求項19】 請求項1乃至18のいずれかにおい
て、 前記第1のデバイス制御手段としてメモリデバイスを制
御する手段を含み、該メモリデバイスのメモリマップを
第2のコンピュータアーキテクチャに適合したメモリマ
ップに変換する手段を含むことを特徴とするエミュレー
トシステム。 - 【請求項20】第1のコンピュータアークテクチャに適
合した命令体系により制御される第1のデバイス制御手
段と、前記第1のコンピュータアークテクチャとは異な
る第2のコンピュータアーキテクチャに適合した命令体
系により制御される第2のデバイス制御手段とが混在す
る情報処理装置に使用されるエミュレート方法であっ
て、(A)前記第2のコンピュータアーキテクチャに適
合した命令体系による命令が中央制御手段により発行さ
れる工程と、(B)前記工程(A)における命令の発行
先として前記第2のデバイス制御手段又は該第2のデバ
イス制御手段の制御対象が存在する場合には、該命令を
前記第2のデバイス制御手段又は該第2のデバイス制御
手段の制御対象にそのまま伝え、前記工程(A)におけ
る命令の発行先として前記第2のデバイス制御手段又は
該第2のデバイス制御手段の制御対象が存在しない場合
には、命令の種類を示す要因データを設定し、前記中央
制御手段に対して割り込みを発生する工程と、(C)前
記工程(B)の前記割り込みによって起動され、前記要
因に対応した所定の処理を少なくとも前記第1のデバイ
ス制御手段又は該デバイス制御手段の制御対象に対して
実行する工程と、 を含むことを特徴とするエミュレート方法。 - 【請求項21】 請求項20において、 前記工程(B)の際に、システムの動作環境変化を検出
すると共に該動作環境変化を解析し、該動作環境変化の
種類を示す要因データを設定し、前記中央制御手段に対
して割り込みが発生されることを特徴とするエミュレー
ト方法。 - 【請求項22】 請求項21において、 前記動作環境変化に基づいて設定される前記要因として
少なくとも電源断処理又はリセット処理についての要因
が含まれ、該要因が、前記中央制御手段により発行され
た命令に基づく前記要因よりも優先順位の高い要因とし
て設定されていることを特徴とするエミュレート方法。 - 【請求項23】 請求項20乃至22において、 前記要因として、少なくとも前記第1のデバイス制御手
段ではサポートされていない外部からの入力に関する要
因が含まれ、該外部入力が検出された場合に前記第1の
デバイス制御手段が該外部入力に応じた処理を行うよう
に、前記工程(C)における前記所定の処理が行われる
ことを特徴とするエミュレート方法。 - 【請求項24】 請求項20乃至23のいずれかにおい
て、 前記工程(B)において発生される前記割り込みの一部
又は全部がマスク手段によりマスクされることを特徴と
するエミュレート方法。 - 【請求項25】 請求項20乃至24のいずれかにおい
て、 前記工程(C)の所定の処理を実行する間、システムの
動作環境が所定の状態に変更されることを特徴とするエ
ミュレート方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6282539A JPH07334372A (ja) | 1993-12-24 | 1994-10-21 | エミュレートシステム及びエミュレート方法 |
| US08/361,528 US5737579A (en) | 1993-12-24 | 1994-12-22 | System and method for emulating computer architectures |
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP32858893 | 1993-12-24 | ||
| JP5-328588 | 1994-04-11 | ||
| JP6-97991 | 1994-04-11 | ||
| JP9799194 | 1994-04-11 | ||
| JP6282539A JPH07334372A (ja) | 1993-12-24 | 1994-10-21 | エミュレートシステム及びエミュレート方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07334372A true JPH07334372A (ja) | 1995-12-22 |
Family
ID=27308537
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6282539A Withdrawn JPH07334372A (ja) | 1993-12-24 | 1994-10-21 | エミュレートシステム及びエミュレート方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5737579A (ja) |
| JP (1) | JPH07334372A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6785886B1 (en) | 1998-05-15 | 2004-08-31 | Vmware, Inc. | Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture |
| US7516453B1 (en) | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
| JP2009261535A (ja) * | 2008-04-24 | 2009-11-12 | Daito Giken:Kk | 遊技台 |
| JP2009288864A (ja) * | 2008-05-27 | 2009-12-10 | Fujitsu Ltd | 仮想マシンの入出力エミュレーション機構 |
| US8631066B2 (en) | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
Families Citing this family (20)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
| US5896534A (en) * | 1996-01-26 | 1999-04-20 | Dell Usa, L.P. | Operating system independent apparatus and method for supporting input/output devices unsupported by executing programs |
| US6092141A (en) * | 1996-09-26 | 2000-07-18 | Vlsi Technology, Inc. | Selective data read-ahead in bus-to-bus bridge architecture |
| US5930495A (en) * | 1997-01-13 | 1999-07-27 | International Business Machines Corporation | Method and system for processing a first instruction in a first processing environment in response to intiating processing of a second instruction in a emulation environment |
| US5889978A (en) * | 1997-04-18 | 1999-03-30 | Intel Corporation | Emulation of interrupt control mechanism in a multiprocessor system |
| US6314485B1 (en) * | 1997-11-14 | 2001-11-06 | Agere Systems Guardian Corp. | Automatic status register |
| US6073206A (en) * | 1998-04-30 | 2000-06-06 | Compaq Computer Corporation | Method for flashing ESCD and variables into a ROM |
| EP1279095A2 (en) * | 1999-08-16 | 2003-01-29 | Z-Force Corporation | System of reusable software parts and methods of use |
| US6567883B1 (en) * | 1999-08-27 | 2003-05-20 | Intel Corporation | Method and apparatus for command translation and enforcement of ordering of commands |
| US6882968B1 (en) * | 1999-10-25 | 2005-04-19 | Sony Computer Entertainment Inc. | Method of measuring performance of an emulator and for adjusting emulator operation in response thereto |
| US6658515B1 (en) | 2000-01-25 | 2003-12-02 | Dell Usa, L.P. | Background execution of universal serial bus transactions |
| US6848046B2 (en) * | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
| US20050114639A1 (en) * | 2001-05-11 | 2005-05-26 | Zimmer Vincent J. | Hardened extensible firmware framework to support system management mode operations using 64-bit extended memory mode processors |
| US7106600B2 (en) * | 2004-04-29 | 2006-09-12 | Newisys, Inc. | Interposer device |
| JP2008505386A (ja) * | 2004-07-02 | 2008-02-21 | 新世代株式会社 | データ処理装置および互換プロセッサ |
| US7802042B2 (en) * | 2007-12-28 | 2010-09-21 | Intel Corporation | Method and system for handling a management interrupt event in a multi-processor computing device |
| JP2010122787A (ja) * | 2008-11-18 | 2010-06-03 | Panasonic Corp | 半導体集積回路及びレジスタアドレス制御装置 |
| CN102971795A (zh) * | 2010-05-07 | 2013-03-13 | 莫塞德技术公司 | 使用单个缓冲区同时读取多个存储器装置的方法和设备 |
| US20120210238A1 (en) * | 2011-02-11 | 2012-08-16 | Sony Network Entertainment International Llc | Direct service launch on a second display |
| CN104899109B (zh) * | 2015-05-06 | 2018-03-06 | 深圳市同泰怡信息技术有限公司 | 一种操作系统下获取cpu温度的方法 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3891974A (en) * | 1973-12-17 | 1975-06-24 | Honeywell Inf Systems | Data processing system having emulation capability for providing wait state simulation function |
| US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
| US4862347A (en) * | 1986-04-22 | 1989-08-29 | International Business Machine Corporation | System for simulating memory arrays in a logic simulation machine |
| SE454920B (sv) * | 1986-10-03 | 1988-06-06 | Ellemtel Utvecklings Ab | Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instruktionssekvenser medelst separatminnen |
| SE454921B (sv) * | 1986-10-03 | 1988-06-06 | Ellemtel Utvecklings Ab | Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser |
| US4951195A (en) * | 1988-02-01 | 1990-08-21 | International Business Machines Corporation | Condition code graph analysis for simulating a CPU processor |
| US5167023A (en) * | 1988-02-01 | 1992-11-24 | International Business Machines | Translating a dynamic transfer control instruction address in a simulated CPU processor |
| ATE146611T1 (de) * | 1990-05-04 | 1997-01-15 | Ibm | Maschinenarchitektur für skalaren verbundbefehlssatz |
| US5426769A (en) * | 1993-08-26 | 1995-06-20 | Metalink Corp. | System and method for producing input/output expansion for single chip microcomputers |
| US5440720A (en) * | 1993-09-20 | 1995-08-08 | Cadence Design Systems, Inc. | Architecture and method for data reduction in a system for analyzing geometric databases |
| US5408622A (en) * | 1993-09-23 | 1995-04-18 | Apple Computer, Inc. | Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion |
| US5440747A (en) * | 1993-09-27 | 1995-08-08 | Hitachi America, Ltd. | Data processor with control logic for storing operation mode status and associated method |
| US5566326A (en) * | 1993-09-28 | 1996-10-15 | Bull Hn Information Systems Inc. | Copy file mechanism for transferring files between a host system and an emulated file system |
-
1994
- 1994-10-21 JP JP6282539A patent/JPH07334372A/ja not_active Withdrawn
- 1994-12-22 US US08/361,528 patent/US5737579A/en not_active Expired - Lifetime
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6785886B1 (en) | 1998-05-15 | 2004-08-31 | Vmware, Inc. | Deferred shadowing of segment descriptors in a virtual machine monitor for a segmented computer architecture |
| US8631066B2 (en) | 1998-09-10 | 2014-01-14 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
| US9323550B2 (en) | 1998-09-10 | 2016-04-26 | Vmware, Inc. | Mechanism for providing virtual machines for use by multiple users |
| US7516453B1 (en) | 1998-10-26 | 2009-04-07 | Vmware, Inc. | Binary translator with precise exception synchronization mechanism |
| JP2009261535A (ja) * | 2008-04-24 | 2009-11-12 | Daito Giken:Kk | 遊技台 |
| JP2009288864A (ja) * | 2008-05-27 | 2009-12-10 | Fujitsu Ltd | 仮想マシンの入出力エミュレーション機構 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5737579A (en) | 1998-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH07334372A (ja) | エミュレートシステム及びエミュレート方法 | |
| US6952749B2 (en) | Multiprocessor interrupt handling system and method | |
| EP2430558B1 (en) | Converting a message signaled interruption into an i/o adapter event notification | |
| US7209994B1 (en) | Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests | |
| US5596759A (en) | Method for initializing a multiple processor computer system using a common ROM | |
| US7707341B1 (en) | Virtualizing an interrupt controller | |
| US20020023179A1 (en) | Method and apparatus for providing support for dynamic resource assignment and configuation of peripheral devices when enabling or disabling plug-and-play aware operating systems | |
| JPH0677246B2 (ja) | マルチューザ処理提供回路 | |
| CA2800630A1 (en) | Runtime determination of translation formats for adapter functions | |
| WO2000019292A2 (en) | Upgrade card for a computer system | |
| US5864688A (en) | Apparatus and method for positively and subtractively decoding addresses on a bus | |
| JP2001202243A (ja) | データ処理装置 | |
| US5963738A (en) | Computer system for reading/writing system configuration using I/O instruction | |
| US20060004975A1 (en) | Methods and apparatus to manage memory access | |
| JPH07334373A (ja) | エミュレートシステム及びエミュレート方法 | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| JPH0836485A (ja) | 情報処理装置及び情報処理装置の制御方法 | |
| JP2004272939A (ja) | 1チップデータプロセッサ | |
| CN112559120B (zh) | 定制化pcie总线io虚拟化支撑方法 | |
| Banik et al. | Knowing Your Hardware | |
| JPH07239811A (ja) | 情報処理装置及びエミュレーション方法 | |
| Cates et al. | An ASIC RISC-based I/O processor for computer applications | |
| JP2002541582A (ja) | エミュレータシステム内のユーザメモリを更新する方法およびシステム | |
| JPH09134326A (ja) | コンピュータシステム | |
| JPS6097459A (ja) | デ−タ処理システム同期方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020115 |