JPH0836485A - 情報処理装置及び情報処理装置の制御方法 - Google Patents

情報処理装置及び情報処理装置の制御方法

Info

Publication number
JPH0836485A
JPH0836485A JP7142590A JP14259095A JPH0836485A JP H0836485 A JPH0836485 A JP H0836485A JP 7142590 A JP7142590 A JP 7142590A JP 14259095 A JP14259095 A JP 14259095A JP H0836485 A JPH0836485 A JP H0836485A
Authority
JP
Japan
Prior art keywords
environment
memory
information
unit
information processing
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
Application number
JP7142590A
Other languages
English (en)
Inventor
Akiyoshi Nakamura
明善 中村
Masaru Kono
勝 河野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP7142590A priority Critical patent/JPH0836485A/ja
Publication of JPH0836485A publication Critical patent/JPH0836485A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

(57)【要約】 【目的】 複数の異なった環境で動作可能なパソコンに
おいて、簡単な構成で異なった環境のシステムに切り替
えでき、各システムに切り替える度に初期設定をするこ
となくアプリケーションプログラムなどの実行を可能と
する。 【構成】 メモリコントローラ2でCPU1に接続する
メモリマップのアドレス変換を切り替えて、メモリブロ
ック3に予め用意してある各環境に適合したメモリ領域
をCPU1に割り当てる。また、CPU1の状態は、シ
ステム・マネージメント・モードに移行することによっ
て格納し、再度、そのシステムが選択されるとCPUの
状態を復帰できるようにする。これによって、システム
が切り替わる度に初期設定する必要はなく、また、アプ
リケーションプログラムを継続して動かすことができ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、異なる複数の環境の下
で処理の可能な情報処理装置及びその制御方法に関する
ものである。
【0002】
【従来の技術】パーソナルコンピュータなどの情報処理
装置は、ハードウェア、ソフトウェアを含めたシステム
全体がある設計思想、すなわちアーキテクチャに基づい
て設計、構成されている。従って、あるアーキテクチャ
のコンピュータ用に開発されたソフトウェアは、そのま
までは異なるアーキテクチャのコンピュータで使用でき
ない。従って、アーキテクチャの異なるコンピュータを
採用するとソフトウェア資源は著しく減ってしまう。そ
こで、近年、異なったアーキテクチャのコンピュータ上
であっても同一の動作環境を確保できるオペレーティン
グソフトウェア(OS)が開発されている。しかし、こ
のようなOSでも、従来のOSの下で作成されたソフト
ウェアを異なるアーキテクチャのコンピュータで稼働で
きる能力はない。
【0003】このようなアーキテクチャには、それぞれ
の基本思想に基づいたメリットもあり、これらのメリッ
トを活用した数多くのアプリケーションプログラムが市
販されている。ユーザーは、これらのアプリケーション
プログラムを用いる際には、そのアプリケーションプロ
グラムの動くアーキテクチャに基づいたコンピュータを
購入する必要がある。このため、異なるアーキテクチャ
に基づいて構成される異なった環境の下で動く複数のア
プリケーションプログラムを使用する場合は、複数のコ
ンピュータが必要となってしまう。しかし、各々のアプ
リケーションプログラムに合わせてコンピュータを導入
するのはユーザーに負担をかけ、また、複数のコンピュ
ータが占有する面積も大きい。従って、ユーザーの多く
は、コンピュータの環境にマッチしたアプリケーション
しか使用できない。
【0004】
【発明が解決しようとする課題】このような問題を解決
するために、異なる環境を1台のコンピュータで実現可
能なダブル互換機が市販されている。従来のダブル互換
機は、低価格、省スペースを目標に、1つのCPUに複
数のシステムに共通なフロッピーディスクやキーボード
を接続してある。しかし、異なった環境に変更する場合
は、その度にコンピュータをリセットし、環境を切り替
える必要がある。従って、異なった環境で動作するアプ
リケーションプログラムを操作する場合は、その度にコ
ンピュータをリセットし、初期設定を繰り返す必要があ
る。このため、数多くのアプリケーションプログラムの
操作が面倒となり、ユーザーに使用し易いコンピュータ
の実現が難しい。
【0005】また、複数のCPUを搭載し、複数の環境
を実現しようとしているダブル互換機もある。しかし、
複数のCPUを搭載し、実質的には、2つ以上のコンピ
ュータを1つのケースに収納している状態に近いため、
省スペース、低価格といった目的を満足するものではな
い。また、複数のCPUを動作させるため消費電力も多
くなりやすく、大きなメモリー領域も必要となる。
【0006】更に、異なる複数の環境を切り替える際の
種々の問題は、同一のアーキテクチャのコンピュータで
複数の環境を実現する(複数の異なるOS等を動作させ
る)場合においても生じる問題である。
【0007】そこで、本発明においては、異なった環境
の下で動く複数のアプリケーションプログラムを取り扱
える小型で低価格の情報処理装置を提供することを目的
としている。また、異なった環境の下で動くアプリケー
ションプログラムを操作する際でも、ユーザーは環境設
定が異なるのか否かを意識せずに操作できるような情報
処理装置を提供することを目的としている。そして、異
なったアーキテクチャの下で開発されたソフトウェア資
源をユーザーが廉価に有効活用できる情報処理装置を実
現することを目的としている。さらに、異なる環境の下
で動くプログラムを同時に操作できる機能を備えた情報
処理装置を提供することも目的としている。
【0008】
【課題を解決するための手段及び作用】このような異な
った環境の下で動くプログラムをユーザーが意識しない
で操作できる情報処理装置を実現するために、本発明に
おいては、それぞれの環境毎にCPUの制御に係る情報
を予め用意してあり、この情報を記憶したメモリ領域を
CPUなどの処理ユニットに対し接続することで処理ユ
ニットの動作する環境を切り替えるようにしてある。す
なわち、本発明に係る情報処理装置は、複数の環境のも
とで動作可能な処理ユニットと、複数の環境ごとに処理
ユニットの制御に係る情報を記憶した複数のメモリ領域
と、この複数のメモリ領域のいずれかを選択して処理ユ
ニットに接続するメモリ制御手段とを有することを特徴
としている。予めメモリ領域を用意しておけば、環境を
切り替える際にBIOSなどの環境を管理するプログラ
ムや、オペレーティングシステム(OS)を処理ユニッ
トに接続するメモリ領域にロードする必要はなく迅速に
環境の切り替えが可能である。また、環境ごとにメモリ
領域を用意しておけば、環境を切り替えても処理ユニッ
トの状況や、OSの設定、作動中のアプリケーションプ
ログラムの状況などの情報を保存できるので、環境を切
り替える際に処理ユニットをリセットする手間を省け
る。
【0009】このように環境毎に処理ユニットへ接続す
るメモリ領域を切り替えられるようにしておけば、ユー
ザーは処理ユニットの稼働する環境が変わったことを認
識しないで処理を行える。また、処理ユニットを複数の
環境下で使用できるので、処理ユニットと記憶領域とい
った簡単な構成の情報処理装置で複数の環境下で動作す
るアプリケーションプログラムを動かすことができる。
【0010】また本発明に係る情報処理装置でアプリケ
ーションプログラムを動作させる際は、アプリケーショ
ンプログラムの処理が終了していないことを示す未了フ
ラグを設ければよい。このようにすれば、ユーザーがア
プリケーションプログラムの終了していない環境に情報
処理装置を切り替えた際に、情報処理装置はアプリケー
ションプログラムを自動的に続行することが可能とな
る。
【0011】この場合、未了フラグの立った環境のメモ
リ領域へ切り替える際に、処理ユニットの状態を回復す
る手段を設けることが更に望ましい。このようにすれ
ば、環境が切り替わった際の処理ユニットの正常な動作
を保証できる。
【0012】また未了フラグが立った環境については、
処理ユニットがその環境下で動作するための環境の初期
化は行わないよう指示することが望ましい。未了フラグ
が立った環境では続行すべきアプリケーションプログラ
ムが存在し、環境の初期化の必要はないからである。
【0013】さらに、電源オフする際に、未了フラグが
立っている場合はユーザーに警告を行う手段を設けるこ
とも有効である。これによって、アプリケーションプロ
グラムがいずれかの環境で作動させていることをユーザ
ーが忘れて情報処理装置を停止することを防止できる。
未了フラグを用いて各環境での処理ユニットの動作状況
を表示することももちろん可能である。
【0014】また複数の環境ごとに、処理ユニットがそ
の環境下で動作するための環境の初期化を行ったことを
示す初期化フラグを用意しておけば、メモリ領域を切り
替えた際に同じ環境で2度初期化するような手間を省く
ことができる。初期化フラグは、各環境毎に設けておい
ても良く、あるいはベースとなる環境に対し選択的に切
り替えられる環境だけに設けておいても良い。
【0015】また環境ごとに設定された初期化フラグを
用いて環境毎の初期化を指示する手段を設ければ、各環
境毎に処理ユニットやメモリの内容をリセットすること
が可能となる。この際、他の環境のメモリ領域はリセッ
トされないので、その環境におけるOS、アプリケーシ
ョンプログラムの状況や、メモリ領域に格納してある処
理ユニットの状況は影響を受けない。
【0016】また処理ユニットが環境下で動作するため
の環境の初期化を行わずにリブート処理を行うことを指
示するリブートフラグを設けても良い。初期化済の環境
に対し、アプリケーションプログラムの実行を機に環境
が切り替わった際は、初期化を省き、リブート処理を行
うことでユーザーが環境を変わったことを認識しないよ
うな状態でアプリケーションプログラムを瞬時に実行で
きる。リブート処理では、メモリチェックなどの基本的
な初期処理のみを省いても良く、あるいは入出力インタ
フェースなどが共通する場合はこれらの入出力制御手段
の初期化を省いてOSをメモリにロードする処理から始
めても良い。また、OSが共通する場合は、OSの設定
から始めても良い。
【0017】また処理ユニットが動作している環境とは
異なる環境の下で動作するアプリケーションプログラム
の起動を指示するアプリケーションフラグを設けても良
い。このアプリケーションフラグを用いることで、異な
る環境からアプリケーションプログラムを簡易に実行す
ることが可能となるからである。
【0018】そしてアプリケーションフラグが立った場
合に、アプリケーションプログラムを起動するためのブ
ートファイルを、切り替わった環境が認識可能な位置に
渡す手段を設ければ、アプリケーションプログラムの実
行を更に簡易にすることができる。
【0019】また複数の環境を一括してリセットできる
手段や、複数の環境の各々をリセットできる手段を設け
ておけば、何らかの原因で情報処理装置が誤動作を続け
るような事態にも、各環境毎に、あるいはパソコン全体
をハードウェア的にリセットでき、ユーザーはその状態
に適した対処ができる。
【0020】この場合、複数の環境の各々をリセットす
るリセットスイッチと、複数の環境を一括してリセット
するリセットスイッチとを、異なる場所に別々に配置す
ることが望ましい。例えば各々をリセットするスイッチ
を情報処理装置のフロント側に設け、一括リセットスイ
ッチをユーザーが容易に押せない情報処理装置の裏側に
設ければ、ユーザーの利便性を更に高めることができ
る。
【0021】また処理ユニットが動作している環境とは
異なる環境の下で動作するアプリケーションプログラム
の起動が指示された場合に、メモリ領域の切り替えを行
いアプリケーションプログラムの起動を行う手段を設け
れば、アプリケーションプログラムを選択するだけで、
アプリケーションプログラムを動かす環境に自動的に切
り替えることが可能となる。これによりユーザーはアプ
リケーションプログラムがどの環境で動作するかを考え
なくても情報処理装置で様々な環境で動くアプリケーシ
ョンプログラムを使用できる。
【0022】この場合、アプリケーションプログラムを
起動するためのブートファイルを、切り替わった環境が
認識可能な位置に渡す手段を設けたり、ブートファイル
に、アプリケーションプログラム名を含ませる手段を設
けたり、ブートファイルに、元の環境に切り替えるため
のコマンドを含ませる手段を設ければ、ユーザの利便性
を更に増すことができ、簡易で迅速な環境の切り替え処
理が可能なる。
【0023】また複数の環境に共通したメモリブロック
と、このメモリブロック内の容量を選択して複数のメモ
リ領域の少なくともいずれかに割り当てるメモリブロッ
ク管理手段とを設けておけば、ユーザーは複数の環境毎
に情報処理装置のメモリを自由に割り当てることができ
る。
【0024】さらに、このメモリブロック管理手段は、
メモリ領域に割り当てた容量に係る情報を情報処理装置
へ電源が供給されていない間も保持できるようにしてお
けば、ユーザーが設定した環境毎のメモリ容量を電源オ
フ時でも保持することができる。メモリ領域の割当に係
る情報をフラッシュROMなどに書き込んでおけば、バ
ッテリーの内蔵されていないパソコンが電源オフされた
場合でも、また、バッテリーバックアップのあるパソコ
ンのバッテリー電圧が低下した場合でも環境を設定した
情報を保持できる。
【0025】このように、これらのメモリ領域を、1つ
メモリブロックあるいは複数の記憶手段に格納しておく
ことが可能である。そして、メモリ制御手段は、処理ユ
ニットのメモリマップのアドレスを、選択されたメモリ
領域に該当する記憶部のアドレスに変換することによっ
て処理ユニットに接続するメモリ領域の切り替えを行え
ば良い。
【0026】また、環境毎に用意してあるメモリ領域
に、環境を管理する情報、すなわち、BIOSなどの環
境管理プログラムを収納しておけば、処理ユニットは切
り替わった環境に適合した処理を行える。BIOSなど
の管理プログラムは予めRAMなどの一時記憶領域にロ
ードしておいて、プログラム情報などを記憶する一時的
な記憶領域として一括に切り替えるようにしても良い。
あるいは、BIOSROMなどのような恒久的な記憶領
域と、一時的な記憶領域とを別々に切り替えてももちろ
ん良い。
【0027】また、複数の環境のうち、処理ユニットの
動作している環境を表示する手段を設けておけば、ユー
ザーは現在、情報処理装置が稼働しているシステムを識
別できる。
【0028】また、複数のメモリ領域のうち、起動時に
処理ユニットに接続するメモリ領域を指示する手段を設
けておけば、起動時に処理ユニットの働く環境をユーザ
ーが自由に設定できる。従って、情報処理装置を使用す
る環境の頻度によって、最初に動かす環境を設定するな
どユーザーの自由度を増すことができる。
【0029】またメモリ領域が切り替えられる前のメモ
リ領域を記憶し、再度メモリ領域を切り替えるときは記
憶している前のメモリ領域を優先して選択することで、
3つ以上の環境に対応した情報処理装置でも、選択され
た環境順に順次処理を行うようにユーザーを導くことが
できる。またメモリ領域を定期的に切り替える手段を設
けても良く、複数の環境でアプリケーションプログラム
を同時進行させることも可能である。
【0030】またメモリ制御手段に対しメモリ領域の切
り替えを指示可能なシステム管理手段を設け、メモリ領
域の切り替えを行う前に、システム管理手段の指示によ
り各環境毎の処理ユニットの状態を記憶する格納手段
と、メモリ領域の切り替えを行った後に、格納手段のい
ずれかの環境の記憶から処理ユニットの状態を回復する
復帰手段とを設ければ良い。各環境毎にメモリ領域を切
り替える前の処理ユニットの状況をセーブできるので、
再度、その環境にメモリ領域を切り替えた時に処理ユニ
ットの状況を復元し、アプリケーションプログラムなど
の処理を継続して行える。
【0031】このようなシステム管理手段としては、シ
ステム・マネージメント・インタラプトで起動するシス
テム・マネージメント・インタラプト・ハンドラーを用
いることができる。システム・マネージメント・インタ
ラプト(SMI)は最上位割り込みであり、どのような
動作モードでも移行できるのでCPUなどの作動環境を
変える指示を出すには好適である。また、他のアプリケ
ーションプログラムなどに使用されていないので、安定
した処理を期待できる。
【0032】またシステム管理手段を作動する複数の要
因を記憶し、システム管理の指示を制御可能な要因記憶
手段を設けておけば、システム管理手段を自由に制御で
きる。例えば、一旦メモリ領域を切り替えて、その環境
を制御するBIOSによって環境の状況を把握したの
ち、再度システム管理に戻りCPUの状況を復帰させる
などのフレキシブルな管理が可能となる。
【0033】またシステム管理手段は、各環境毎に用意
しておいても良いが、複数の環境に共通した領域に常駐
させ複数の環境に対し統一した処理を行うようにしても
良い。
【0034】またシステム管理手段は、ユーザーの選択
した環境に該当するメモリ領域を選択してメモリ制御手
段に指示可能とすれば、ユーザーはどの環境へでもすぐ
に切り替えることができる。
【0035】またシステム管理手段は、キー入力手段の
特定のキー入力あるいはキーコンビネーションの少なく
ともいずれかによって始動しても良く、あるいは、ポイ
ンティング手段によって所定の箇所をクリックした場合
や、ポインティグ手段の特定を動作によって始動しても
良い。ユーザーはアプリケーションプログラムの実行中
や、OSの状態から環境を切り替えることができる。ま
た、キー入力手段およびポインティング手段のいずれか
によって表示手段に機能メニューを出力する手段を設
け、機能メニューからシステム管理手段を始動しても良
い。
【0036】これらの環境に対し単一の入出力制御手段
で対応できない場合は、複数の環境の少なくともいずれ
かに対応した複数の入出力制御手段と、メモリ領域が切
り替わった際に、このメモリ領域の環境に対応する入出
力制御手段を選択して切り替える手段とを設ければ良
い。切り替え命令はI/O命令などを用いて伝達でき
る。
【0037】また複数の入出力手段を設けて切り替える
場合は、入出力制御手段への入出力信号が停止しても各
々の入出力制御手段の内部設定を保持する手段と、切り
替えられた入出力制御手段にのみを稼働状態とする手段
とを設けることが望ましい。例えば、入出力信号が停止
し接続されていなくなった入出力制御手段へのクロック
信号の供給を停止したり、入出力信号の停止した入出力
手段への供給電源を停止することが考えられる。このよ
うにすれば、選択された環境下で情報処理装置を動かす
のに必要のない入出力手段の消費電力の低減を図ること
ができる。また、停止しても入出力制御手段の内部設定
は保持してあるので、環境が切り替わったときは再度初
期設定することなく入出力制御手段を稼働状態に復帰で
きる。
【0038】一方、これらの環境に対し単一の入出力制
御手段で対応する場合には、メモリ領域が切り替わった
際に、処理ユニットが入出力制御手段に対して発行した
命令を、切り替わったメモリ領域の環境に適合した命令
に変換するエミュレート手段を設ければよい。この場合
のエミュレート変換は、システム管理手段等を用いてソ
フトウェア的に行ってもよいし、ロジック回路・マイク
ロコードメモリ等を用いてハードウェア的に行ってもよ
い。
【0039】このようなエミュレート手段を実現するた
めには、入力されるメモリアドレスの位置に少なくとも
コマンド情報及びエミュレーションアドレス情報を含む
マイクロコード情報を記憶するマイクロコードメモリ
と、処理ユニットにより発行された命令に含まれるアド
レス情報とマイクロコードメモリに含まれるエミュレー
ションアドレス情報のいずれかを選択しメモリアドレス
を生成するセレクタ手段とを設ける。そしてセレクタ手
段が、コマンド情報に含まれるエミュレーション継続情
報に基づいてエミュレーションの継続を指示された場合
にはエミュレーションアドレス情報を選択しメモリアド
レスを生成するようにすればよい。このようにすれば、
エミュレーション継続情報によりエミュレーションの継
続を指示することでエミュレーションサイクルを所望回
数繰り返すことが可能となり、複雑なエミュレート処理
も簡易に実現できる。
【0040】この場合、マイクロコードメモリからのマ
イクロコード情報に基づいてエミュレーションデータの
生成処理を行うデータ生成手段を設け、このデータ生成
手段が、エミュレーション継続情報に基づいてエミュレ
ーションの継続が指示された場合に、処理ユニットから
の書き込みデータ又はn番目(nは1以上の整数)のエ
ミュレーションにより生成されたエミュレーションデー
タに基づいてn+1番目のエミュレーションにおけるエ
ミュレーションデータの生成処理を行うようにすること
が望ましい。このようにすれば、前回に生成されたエミ
ュレーションデータを用いて次の回のエミュレーション
データを生成することが可能となり、簡易にエミュレー
ションデータを生成できる。
【0041】また上記エミュレート手段を実現するため
に、命令変換のためのマイクロコード情報を所定のメモ
リアドレスの位置に記憶するマイクロコードメモリと、
マイクロコードメモリからマイクロコード情報を読み出
す手段と、読み出されたマイクロコード情報に基づいて
エミュレーションデータの生成処理を行うデータ生成手
段とを設ける。そしてマイクロコードメモリは、第1の
メモリアドレスの位置に少なくともコマンド情報及びエ
ミュレーションアドレス情報を含む第1のマイクロコー
ド情報を記憶し、この第1のメモリアドレスを変換する
ことで得られる第2のメモリアドレスの位置に少なくと
もデータ生成情報の一部又は全部を含む第2のマイクロ
コード情報を記憶する。また読み出し手段は、第1のメ
モリ読み出しサイクルにより第1のメモリアドレスの位
置に記憶されるコマンド情報を読み出し、データ生成手
段によるデータ生成処理が必要であるとこのコマンド情
報に基づいて判断された場合には、第2のメモリ読み出
しサイクルを起動して前記第2のメモリアドレスの位置
に記憶される前記データ生成情報を読み出すようにす
る。更にデータ生成手段は、第1のメモリ読み出しサイ
クルで読み出された第1のマイクロコード情報と、第2
のメモリ読み出しサイクルで読み出された第2のマイク
ロコード情報とに基づいてデータ生成処理を行うように
する。このようにすれば、第1のメモリ読み出しサイク
ルで読み出されたコマンド情報に基づいて第2のメモリ
読み出しサイクルを起動するか否かが決定されるため、
無駄なメモリの読み出しサイクルが生じるのを防止でき
る。
【0042】また上記エミュレート手段を実現するため
に、入出力制御手段が第1の割り込みを発生することで
命令発行の依頼を前記処理ユニットに対して通知する場
合において、この第1の割り込みが発生された場合にこ
の割り込みを受け取ると共に命令の種類を示す要因デー
タを設定し、処理ユニットに対して第2の割り込みを発
生する手段と、第2の割り込みによって起動され要因に
対応した所定の処理を実行し、切り替わったメモリ領域
の環境に適合した命令の発行が可能な状態に設定する手
段と、処理ユニットに対して第1の割り込みを発生し命
令発行の依頼を通知する手段とを設けても良い。このよ
うに構成すれば、割り込みを発生して命令発行の依頼を
行う入出力制御手段に関するエミュレーション処理であ
って、かつ複雑な処理が必要である場合でも、これを簡
易に実現できる。
【0043】また処理ユニットが入出力制御手段に対し
て発行した命令を保持する保持手段と、メモリ領域が切
り替わった際に、この保持手段により保持された命令を
入出力制御手段に伝える手段とを設ければ、環境が切り
替わり元に戻った場合にも、入出力制御手段を正確に動
作させることが可能となる。保持手段に保持する命令
は、エミュレート手段によるエミュレート変換前のもの
でも良いし、変換後のものでも良い。また保持手段とし
てはレジスタ、メモリ等の種々の構成のものを採用でき
る。
【0044】また入出力制御手段が、ハードディスクユ
ニットを制御可能な手段である場合は、これらのハード
ディスクユニットの少なくとも1つは着脱可能であるこ
とが望ましい。それぞれの環境で動く別の情報処理装置
とのデータやプログラムのやり取りが簡単となるからで
ある。
【0045】また入出力制御手段が、キーボード制御手
段の場合は、切り替えられたメモリ領域の環境に対応す
るキー配列にキーボードの配列を変更可能な配列選択手
段を設けることが望ましい。そして、キーボードを表示
可能な表示手段と、表示されたキーボードをクリック可
能なポインティング手段とを備え、表示手段に表示され
たキーボードの配列を変更すれば環境に適合したキーボ
ードを実現できる。
【0046】また入出力制御手段である表示手段が独立
して画像を制御できれば、環境を切り替えると画面全体
が切り替わる。表示手段を異なる環境で動作する前記表
示手段で作られた画素データを置き換えて画像表示可能
な手段とすれば、切り替える前の画像の上に切り替えた
後の環境の画像を映し出すことができる。
【0047】さらに、起動時にメモリ領域のいずれかを
選択して処理ユニットに接続する初期部と、処理ユニッ
トに接続された前記メモリ領域に対応する環境下で処理
を行う実行部と、メモリ制御手段によって前記処理ユニ
ットに接続するメモリ領域を切り替えるシステム切り替
え部とを設けておけば、プログラムの実行と環境の切り
替えを行える。
【0048】また本発明は、複数の環境のもとで動作可
能な処理ユニットと、この処理ユニットの制御に係る情
報を記憶したメモリ領域と、処理ユニットが動作する環
境が第1の環境から第2の環境に切り替わった際に、第
1の環境での処理ユニットの制御に係る情報を退避する
手段と、この情報が記憶されていたメモリ領域に空きメ
モリ領域をマッピングする手段とを有することを特徴と
している。本発明によれば、例えば、第1の環境で動作
する第1のOS等の本体が、環境の切り替え時に所定の
領域に退避される。そして第1のOS等が常駐した領域
に対して空き領域がマッピングされるため、第2の環境
で動作する第2のOS等はこの空き領域を利用して動作
することができる。これにより、複数の環境の各々に対
応したメモリ領域を用意しなくても、スムーズな環境の
切り替えを実現できる。
【0049】この場合、情報を退避する手段は、この情
報が記憶されていたメモリ領域を裏バンクに切り替える
手段であることが望ましい。裏バンクに退避しておけ
ば、環境を元の状態に戻す際に、新たなロードィング動
作等を行わずに第1のOS等の本体を速やかに元のメモ
リ領域に常駐させることが可能となるからである。
【0050】また第1の環境から前記第2の環境への切
り替え処理を行うためのシステム管理手段を有し、この
システム管理手段が、情報の退避及び空きメモリ領域の
マッピングを行うことが望ましい。このようなシステム
管理手段としては、例えばシステム・マネージメント・
インタラプト・ハンドラー等を使用できる。
【0051】また本発明は、複数の環境のもとで動作可
能な処理ユニットを備え、複数の環境の中の第1の環境
で処理ユニットを動作させるためのブートファイルに、
処理ユニットを動作させる環境を第1の環境から第2の
環境へ切り替えるための切り替えコマンドを含ませるこ
とを特徴としている。このような切り替えコマンドを含
ませれば、第1の環境で第1のOS等を動作させた後、
第2の環境で動作する第2のOS等を起動させることが
でき、迅速な環境の切り替えが可能となる。
【0052】この場合、ブートファイルに、第1の環境
では認識されず、第2の環境に切り替わった際に第2の
環境により認識されるブートコマンドを含ませることが
望ましい。例えば第1の環境ではブートコマンドの先頭
にコメントマーク等を挿入して第1の環境に認識されな
いようにし、第2の環境に切り替わった際にこのコメン
トマーク等を取り外したものを使用すれば、第2の環境
で、このブートコマンドを用いたOS、アプリケーショ
ンプログラム等の起動が可能となる。
【0053】またブートコマンドに、処理ユニットを動
作させる環境を第2の環境から第1の環境へ切り替える
ための切り替えコマンドを更に含ませることが望まし
い。このようにすれば、第2の環境でのOS等の終了
後、環境を第1の環境に切り替えることができ、迅速で
簡易な環境の切り替えが可能となる。
【0054】ここで第1の環境と第2の環境との間の切
り替え処理は、上記切り替えコマンドにより起動するシ
ステム管理手段により行うことが望ましい。
【0055】なお本発明における複数の環境には、コン
ピュータアーキテクチャが異なるシステムでの環境のみ
ならず、コンピュータアーキテクチャが同一のシステム
での環境も含まれる。即ち同一のコンピュータアーキテ
クチャの情報処理装置で、異なるOS等を動作させて異
なる環境を実現した場合にも、本発明によれば環境間で
のスムーズな移動や、環境毎のリセット等が可能とな
り、ユーザーの利便性を高めることができる。
【0056】
【実施例】以下に図面を参照して本発明の実施例につい
て説明する。
【0057】(第1の実施例)ここでは、第1の実施例
として、2つの異なった環境下で動作する2つのシステ
ムAおよびBの両機能を有するパーソナルコンピュータ
(以下パソコン)1を例にして説明する。また、これら
のシステムを選択する際に、最上位割り込みとしてシス
テムマネージメントインタラプト(SMI)を用いてお
り、このSMI付きの処理ユニット(CPUあるいはM
PU)を有するパソコンを例として以下で説明する。S
MIが発行されると、CPUはシステムマネージメント
モード(SMM)に入り、それまでに処理していた動作
を中断してシステムマネージメントインタラプトハンド
ラー(SMIハンドラー)に従った処理を行う。これら
については以下で詳述する。もちろん、このようなSM
Iを用いずとも、上述したようにCPUなどに対し優先
的な処理を指示する他の割り込み等の手段を用いること
も可能である。
【0058】1.システム構成 図1および図2に、本例のパソコンの概略構成を示して
ある。図1では、Aシステムで本例のパソコンが動作す
るときに稼働するユニットを2重線で示し、図2では、
Bシステムでパソコンが動作するときに稼働するユニッ
トを2重線で示してある。本例のパソコンは、入出力や
画像などの制御を一括して行う処理ユニットとしてCP
U1を備えている。このCPU1は、メモリコントロー
ラ2を介してメモリブロック3と接続してある。メモリ
ブロック3には、メインメモリ4と増設メモリ5とを用
意してある。メモリブロック3には、さらに、異なった
環境下で動作する各々のシステムを管理するプログラム
(BIOS)を格納したBIOSROM6を用意してあ
る。BIOSROM6には、Aシステム用のBIOS7
aと、Bシステム用のBIOS7bとが格納されてお
り、それぞれのBIOS7a、7bには、それぞれのシ
ステムの動作する環境などに関する情報を収納してあ
る。さらに、本例のBIOSROM6には、SMMにお
いてCPU1の動作を指示するSMIハンドラー8も収
納してある。BIOSROM6としては、EPROM、
ONE−TIME−PROM、FLASH ROMなど
を用いることができる。これらのメモリの内、FLAS
H ROMを採用すれば、OSが変わったり、SMIハ
ンドラーが変わった場合でもBIOSROM自体を交換
することになくバージョンアップ可能なのでユーザーに
とっては都合が良い。
【0059】メモリコントローラ2は、それぞれのシス
テムにおけるCPU1のメモリマップなどを備え、CP
U1に対するメモリブロック3の各メモリのアドレスを
制御するアドレス制御部9と、このアドレス制御部9の
指示に従ってメインメモリ4や増設メモリ5などのRA
Mを制御するRAMコントロール部10と、BIOSR
OM6を制御するROMコントロール部11と、CPU
1に接続された様々な入出力関係の回路とCPU1との
入出力を制御するI/Oコントロール部12と、さら
に、メモリコントローラ2の全体を制御するメモリ制御
部13とを備えている。
【0060】メモリ制御部13は、各回路に起因するS
MIを発行させるためにSMI用要因ポートにアクセス
でき、また、CPU1で実行しているソフトウェア上で
発行したSMIを受けることができる。このSMIによ
ってメモリ制御部13はアドレス制御部9におけるメモ
リマップを変更し、異なるシステム用のメモリマップに
従ってCPU1とメモリとのアクセスを制御できる。メ
モリマップを変更することによって、A、Bそれぞれの
システムに対応したBIOSによってCPU1を動作さ
せることができる。また、メモリ制御部13には各シス
テムの選択状況や稼働状況を示すレジスタ群を用意して
あり、このレジスタ群を参照してI/Oコントロール部
12はI/O命令「CHG」19を出力し、入出力関係
の各回路をCPU1が動作するシステムに合わせた環境
に切り替えれるようになっている。
【0061】メモリコントローラ2には、CPU1が動
作しているシステムの状態を表示できるLED部14
と、入出力関係の各回路に対し動作クロックを供給する
クロック部15も接続してある。このクロック部15
は、メモリコントローラ2内のレジスタ群の中のビット
の状態を判別して、CPU1の動作している環境に不要
な入出力関係の回路へのクロック信号を停止できるよう
になっている。また動作環境に応じて、CPU1、メモ
リコントローラ2、メモリブロック3に供給するクロッ
クのスピードを変更する。
【0062】本例のパソコンでは、CPU1にバスバッ
ファ16を介して入出力バス20を設定してある。この
入出力バス20には、入出力関係の回路としてI/Oブ
ロック21、ハードディスク(HDD)ブロック22、
ビデオブロック23、キーボードコントローラ24を接
続してある。これらのブロック21〜24へは、CHG
19が供給されており、システムに適した環境に設定で
きるようになっている。
【0063】本例のビデオブロック23は、Aシステム
用のビデオ回路31、Bシステム用のビデオ回路32、
さらに、A、B両システムに共通して使用できる共通ビ
デオ回路33を備えている。CPU1がAシステムで動
作する際は、ビデオ回路31あるいは共通のビデオ回路
33を選択でき、Bシステムで動作する際は、ビデオ回
路32あるいは共通のビデオ回路33を選択できるよう
になっている。ビデオブロック23には、信号切換回路
34を介して液晶表示盤(LCD)35あるいはCRT
36を接続してあり、それぞれのシステムで稼働してい
るビデオ回路と各デバイス35、36を接続できるよう
にしてある。システムによるビデオ回路31〜33の切
替えは、CHG19によって行う。選択されていないビ
デオ回路へのクロックの供給はクロック部15によって
停止され、動作が停止した状態となる。
【0064】この際、停止した回路の内部レジスタなど
は保持できるようになっているので、CHG19によっ
てシステムが切り替わった場合は、回路の初期設定を行
うことなく途中から動作を再開できるようになってい
る。このためには、従来のパソコンなどで用いられてい
るレジューム機能と同様に、クロック信号をCHG19
と同期を取って停止すれば良く、例えば図3に示すよう
な回路で実現できる。このようにCPU1と接続しない
回路を選択的に停止することによって消費電力を低減で
き、また、パソコンからの発熱も抑制することができ
る。なお、クロックを停止する機能は、本例のようにク
ロック部15に集中させても良く、各ブロック毎に設け
ておいても良い。また、ビデオブロック23としては、
本例のように各システム毎のビデオ回路と共通したビデ
オ回路のすべてを用意しておく必要はなく、共通のビデ
オ回路だけ、あるいは各システム毎のビデオ回路だけな
ど様々な構成が可能なことはもちろんである。
【0065】I/Oブロック21は、インタラプトコン
トローラ、DMAコントローラ、タイマー、フロッピー
ディスクコントローラ、通信制御回路、プリンターコン
トローラ、SCSIコントローラなどによって構成さ
れ、図1および図2には、フロッピーディスク(FD)
コントローラを代表して示してある。デバイスがフロッ
ピーディスクドライブ(FDD)37のように両システ
ムで共通する場合は、CHG19でI/Oポートを切り
換えたり、信号の接続を切り換えれば良い。デバイスが
システムによって異なる場合は、I/O回路自体がAシ
ステム用38およびBシステム用39に分かれているの
で、CHG19によって外部信号および機能そのものを
切り替えれば良い。本例のFDD37は、容量が3モー
ド選択でき、AシステムおよびBシステムの両システム
で共通してアクセス可能となっている。なお、I/Oブ
ロック21にはFDD37の他に、RS−232C、プ
リンタ、マウスなどのデバイスを接続することができ
る。また、入出力バス20にI/Oカードを挿入するス
ロットなどを接続してもよく、このスロットの接続をC
HG19で切り替えても良い。この場合はI/Oブロッ
ク21には両システムに共通な回路を主に収めることに
なる。このようにI/Oブロックは様々な構成が可能で
ある。また、I/Oブロック21においても、ビデオブ
ロックと同じく、クロック部15によって選択されてい
ないシステム用の回路へのクロックの供給を停止しでき
るようになっている。
【0066】HDDブロック22は、両システムに共通
した規格、例えばIDEでデータの取扱が可能な共通イ
ンタフェース41、Aシステム用のインタフェース42
およびBシステム用のインタフェース43を備えてい
る。共通インタフェース41は、CHG19によって内
部I/Oポート等の機能ブロックが切り替わる。共通イ
ンタフェース41に接続してあるハードディスク44は
AシステムおよびBシステムの領域に区分けしてあり、
それぞれのシステムの動作する環境を構成できるように
なっている。Aシステム用のインタフェース42、およ
びBシステム用のインタフェース43はCHG19によ
って外部信号および機能が切り替わる。そして、これら
のインタフェースに接続してあるハードディスク45お
よび46は着脱可能な構成になっている。リムーバブル
タイプのハードディスク45および46は、Aシステ
ム、あるいはBシステム専用のパソコンと互換性を持っ
ているので、従来のパソコンの機能をそのまま本例のパ
ソコンに移植できるようになっている。HDDブロック
22においても、上記のブロックと同様にクロック部1
5によって選択されていないインタフェースへのクロッ
クの供給を停止して、システムの異なるインタフェース
の動作を停止できるようになっている。もちろん、レジ
スタ設定等はいつでも動作を再開できるように保存して
ある。
【0067】キーボード47をコントロールするキーボ
ードコントローラ24もCHG19によって機能ブロッ
クが切り替わるようになっている。これによって、Aシ
ステムあるいはBシステムに適合したキー機能をキーボ
ード47に持たせ、適切な環境を設定できる。また図示
していないCD−ROM装置などは、IDEインターフ
ェース41、I/Oブロック21内のSCSIコントロ
ーラ、プリンタコントローラのいずれかに接続すること
が可能である。
【0068】2.メモリ制御 図4に、本例のCPU1が動作するAシステムおよびB
システムにおけるメモリマップを示す。本例のパソコン
は5MBのメインメモリ4と5MBの増設メモリ5の計
10MBのメモリ容量を備えており、この容量のメモリ
をAシステムおよびBシステムに自由に割り当てられ
る。図4では、メインメモリ4および増設メモリ5のう
ち1MBの計6MBをAシステムに割り当て、増設メモ
リ5の残りの4MBをBシステムに割り当ててメモリマ
ップを構成している。本例では、Aシステムが選択され
ると、メモリのアドレスは変換することなしにCPU1
のメモリマップに対応する。一方、Bシステムが選択さ
れると、ベースのアドレスから60000を引いたアド
レスがCPU1のメモリマップに対応する。このような
アドレス変換は、メモリコントローラ2のアドレス制御
部9で行われる。アドレス制御部9は、CPU1からC
PUアドレスを受け取り、メモリ制御部13によって選
択されたシステムのアドレスマップに従ってDRAMの
ROWアドレスおよびCOLUMNアドレスに分けて変
換アドレスを出力する。このアドレスを用いてRAMコ
ントロール部10を介してメモリへの書込み、読込みが
行われる。また、システム毎にアドレスマップを切り替
えることによって、アドレス制御部9は、ビデオ領域や
BIOS領域のようにシステム毎にアドレスの異なるメ
モリ領域を同時に管理している。このように本例によれ
ば、メモリコントローラ2によって、各々のシステム毎
に異なったメモリに単一のCPUがアクセス可能となっ
ている。従って、CPUをリセットすることなくシステ
ムの切り替えが可能である。また、システムを切り替え
る時にメモリを初期化する必要がないので、Aシステム
およびBシステムそれぞれのメモリをそのまま保存して
システムの切り替えが可能である。
【0069】アドレス制御部9において適用するメモリ
マップを変更することによって、各システムに対するメ
インメモリ4および増設メモリ5の割当は自由に調整で
きる。例えば、システムAに対し全てのメモリを割り当
てることも可能であり、この場合、本例のパソコンはシ
ステムAでのみ稼働することになるため、大きなメモリ
が必要なアプリケーション等を動かす場合に好適であ
る。また、例えばメモリを1MB毎にシステムAあるい
はBに割り当てるようなメモリの割当も可能である。過
去のシステムとの互換性が必要な増設メモリ5と比較
し、メインメモリ4は一般に高速のメモリを使用してい
る。従って、CPU1に常設されやすいメモリ領域、例
えば両方のシステムのコンベンショナルメモリ領域をメ
インメモリ4の領域内に設定することが望ましい。
【0070】このようなシステムAおよびBに対するメ
モリの割当情報をフラッシュPROMなどを用いたBI
OSROM6の一部に格納しておいても良い。このよう
にBIOSROM6に割当情報を書き込めるようにして
おけば、メモリマップを保持するためにバックアップ用
の電池や、EEPROMなどを用意する必要がなくな
る。BIOSROM6に対しては、割当情報などの変更
のある情報を格納する部分を除いて書き変わらないよう
に回路的にブロックをかけて保護することもできる。
【0071】本例のパソコンでは、CPUの動作速度を
向上するために、それぞれのシステムのBIOSをBI
OSROM6からそれぞれのシステムに割り当てられた
メモリ領域にロードしてある。例えば、Aシステムに対
しては、BIOSROM6に格納してあるAシステム用
のBIOS7aを、初期設定時にAシステムに割り当て
たBIOS領域(例えばFFFFFh〜E0000h)
にロードする。さらに、CPU1の作動開始時にフェッ
チするアドレスFFFFFFF0hに対しても同じBI
OSにアクセスするようにメモリマップを構成する。C
PU1が作動を開始してBIOSをフェッチすると、C
PUのアクセスするアドレスは、BIOSの最初のフォ
アジャンプ命令でBIOSやコンベンショナルメモリを
含む1MBの領域に移行し、後述するような処理を行え
るようになっている。なお、本例のパソコンでは1つの
BIOSROMに2つのシステムのBIOSを格納して
いるが、もちろんシステム毎にBIOSROMを設けて
も良い。また、本例のようにBIOSROMからRAM
にロードしてBIOSを実行せずとも、BIOSROM
自体にCPU1のメモリマップを割り当て、ROMから
BIOSを実行することも可能である。この場合も、C
PU1に接続するBIOS用のメモリマップをシステム
毎に用意して切り替えれば、上記と同様にシステム間の
移行を行える。
【0072】BIOSをロードする初期設定時に、本例
のパソコンにおいては、BIOSROM6に格納してあ
るSMIハンドラー8を所定のメモリ領域にロードす
る。本例のパソコンではAシステムおよびBシステムに
共通したSMIハンドラー8をBIOSROM6に格納
している。そして、このSMIハンドラー8を、Bシス
テムに割り当てたメモリ空間の一部、例えばCPUのメ
モリマップ上ではビデオRAMの裏バンクに割り当てら
れたメモリ空間100にロードする。本例のパソコンで
は、SMIが発行されてSMMに移行すると、Aシステ
ムであってもBシステムであってもCPUのアドレスが
メモリコントローラ2によって変換されて、裏バンクの
RAM100にロードされたSMIハンドラー8に基づ
いた処理が行われる。そして、このSMIハンドラー8
によって、CPUのメモリマップを切り替えることでシ
ステム間での移行が実現される。
【0073】3.システム・マネージメント・インタラ
プト 本例のパソコンでは、CPU1に付加されているシステ
ム・マネージメント機能を用いてシステムの切り替えを
行っている。このシステム・マネージメント機能は、シ
ステム・マネージメント・モード(SMM)で利用で
き、SMMには、システム・マネージメント・インタラ
プト(SMI)リクエストによってのみ入ることができ
る。SMMでは、レジューム処理などのパワー関係のイ
ベント処理が可能であり、このため、SMIは指定ポー
ト・アドレス領域へのアクセスなどによって起動でき
る。SMIは最上位割り込みであり、CPU1が他の動
作モードで稼働している場合であってもSMMに入りこ
むことができる。これに対し、他の割り込み、例えばN
MIなどはアプリケーションプログラムやパソコンの他
の機能のために割り当てられている可能性があるので、
現状ではシステムを切り替えるためのシステム管理手段
としては、このSMIが適している。SMIは、ハード
あるいはソフトで要因を設定でき、ハードウェアでCP
Uに割り込みをかけられる。
【0074】図5に示した信号波形、および図6に示し
たメモリマップに基づき、SMMに移行する状態を説明
する。SMIが発生するとSMMに入り、CPU1はS
MIACT信号を発生する。これによって、SMIメモ
リスペースがイネーブルとなる。本例では、メモリ領域
のうち、アドレス038000h〜03FFFFhがシ
ステム・マネージメント用に割り当てられる。そしてS
MIACT信号が発生すると、メモリコントローラ2
が、このアドレスを変換して裏バンクのRAM100に
割り当ててあるSMRAM領域との接続を行う。これら
のアドレスの内、アドレス03FE00h〜03FFF
Fhが、CPUステートセーブエリア102であり、残
りのアドレス038000h〜03FDFFhが、SM
Iハンドラー101を格納してある領域に割り当てられ
る。先に述べたようにRAM100のこの領域101に
は、BIOSROM6からハンドラー8を予めロードし
てある。
【0075】時刻t1にSMIが発生して、時刻t2に
SMIACT信号が発生すると、メモリコントローラ2
がアドレスを変換し、RAM100に割り当ててあるS
MRAMとCPUとを接続する。そして、時刻t3のA
DS信号によってCPU1の状態を示すステートがこの
セーブエリア102に記憶される。時刻t4にCPUの
ステート保存が完了すると、CPU1は、SMIハンド
ラー101の実行開始アドレスをフェッチして、SMM
における処理を実行する。この間にSMIの発生した要
因を判別して周辺機器の状態をチェックしたり、初期化
したり、様々な処理が可能である。
【0076】本例では、AシステムからSMMに入った
場合でも、BシステムからSMMに入った場合でも共通
のSMRAM領域にアクセスできる。もちろん、両シス
テム毎にSMRAM領域を確保しても良く、両システム
に共通のSMIハンドラーをロードしたり、システム毎
に異なるSMIハンドラーをロードしておいて特有の処
理を行わせることも可能である。
【0077】図6に示すように本例では、メモリマップ
上のビデオRAM110に割り当ててあるアドレス0E
0000h〜0E7FFFhの裏バンクをSMRAM領
域100として用いている。そして、SMIACT信号
が低レベルの時に、アドレス038000h〜03FF
FFhに対してCPU1がアクセスした場合には、0E
0000h〜0E7FFFhにアドレス変換されたSM
RAM領域100を用いてSMM中の機能が実現され
る。システムによってアドレスマップが切り替わって
も、同じSMRAM領域にアクセスするので、本例のS
MRAM領域は両システムに共通した領域となる。もち
ろん、SMIの要因や、SMIハンドラーによってSM
RAM領域全体あるいはCPUステートセーブエリア1
02のみをアドレス変換して別のメモリに割り当てるこ
とも可能である。また、I/Oレジスタをステートセー
ブ用のメモリとして使用することも可能である。SMM
に入るとCPUステートが自動的に保存されるが、CP
Uステートセーブエリア102の内容はSMIハンドラ
ーによってSMIハンドラーに割り当てた領域や、他の
特定のメモリ領域にセーブでき、また、その特定の領域
にセーブされたCPUステートを必要に応じてCPU1
に復帰させることもできる。
【0078】SMIハンドラー101は、システムの切
り替えだけではなく、電源オフ処理、レジューム処理、
各種パワーセーブ処理、ポップアップメニューの処理な
ど両システムに共通した処理が可能である。従って両シ
ステムに共通した領域に設けておくことが望ましい。ま
たSMIハンドラーを格納するメモリー領域が大きい場
合には、共通した領域にSMIハンドラを設けることに
より、メモリー容量の削減が図れる。
【0079】SMIハンドラーの処理が終わると時刻t
5にレジューム(RSM)・インストラクションが発行
され、CPUステートセーブエリア102に保存してあ
るCPUステートがCPU1に戻される。CPUステー
トが復帰すると、SMIACT信号は高レベルに戻り、
CPUは通常の動作モードに復帰する。この際、先にセ
ーブされたBシステムのCPUステートがCPU1に戻
され、メモリマップがBシステム用に変わっていれば、
時刻t6からCPU1はBシステムで再起動する。従っ
て、パワーオフ後のレジューム処理と同様の状態でパソ
コンは動作する。この際、I/OブロックなどもI/O
命令であるCHG19によってBシステム用に切り替わ
っている。本例のパソコンでは、初期処理などの判別を
行う都合上、後述するように、一旦他のシステムのBI
OSに戻ってからCPUステートを復帰するようにして
いる。また、SMM内で初期処理などの判別を行い、C
PUステートの復帰まで行う手法をとっても良い。
【0080】4.要因ポートおよび基本設定ポート 図7に、本例のパソコンにおいてSMIを発生させる要
因ポートを示す。本例のパソコンでは、この要因ポート
にアクセスすることによってSMIを発行させることが
できる。例えば、ソフトウェアによってSMIを発生す
るときは、要因ポート1にアクセスし、ビット2を
「1」にすれば良い。SMIを発行させる要因にはパワ
ー関係のイベントなどもあるので、SMIが発行しSM
Mに入るとSMIハンドラーはこの要因ポート1のビッ
トマップによってSMIの要因を判断し、処理を行う。
本例では、ソフトウェア、ポップアップメニューや、キ
ーボードからの要因によってSMIが発行された場合
に、システムを切り替える処理に入る。なおビット7は
I/Oエミュレーションの要因ポートであり、ビット7
が「1」の場合には、I/O命令のソフトウェア的なエ
ミュレート変換についての要因がセットされる。このI
/Oエミュレーションの要因ポートは階層構造となって
おり、この要因ポートの下位には、図示しない複数の階
層構造の要因ポートがある。
【0081】図8に示すように本例のパソコンでは、要
因ポート1に加え、システムを切り替える際に参照する
要因ポート2が用意される。この要因ポート2は、何の
要因でソフトウェアSMI(要因ポート1のビット2)
が発生したかを判断するためのものである。要因ポート
2には、システムの切り替え方向を判別するシステムビ
ットとしてビット0および1が用意される。さらに、ア
プリケーションを実行する際にSMIを発行してシステ
ムを切り替える場合や、HDDをコピーする場合の処理
を行えるようにビット2および3をこれらの処理に割り
当ててある。
【0082】本例では、2つのシステムビットによって
システムを切り替える方向を判別する。さらに、後述す
るように一旦SMMを抜けてから基本設定ポートなどを
参照して、CPUステートを復帰するために再度SMM
に入るようにしているので、このシステムビットを参照
してCPUステートを復帰するか否かをSMIハンドラ
ーに指示できるようにしてある。
【0083】このように、これらの要因ポート1および
2はSMIを発行させた要因を記憶し、また、SMIハ
ンドラーがそれぞれの要因に従った処理を行えるように
なっている。
【0084】また、図9に示すように、本例のパソコン
では、メモリーコントローラ2に基本設定ポートも用意
してある。この基本設定ポートには、システム毎の初期
設定処理の状況を判断するイニシャルビット(ビット0
および1)、電源オフの際にレジューム処理を行うこと
を指示するレジュームビット(ビット2)、パソコンの
立ち上げ時のシステムを設定する初期システムビット
(ビット3)、現在選択されているシステムを示すシス
テム判別ビット(ビット4)、さらに、システムを切り
替えた際にリブート処理によってアプリケーションを行
うことを指示するリブートビット(ビット5および6)
を用意してある。先に述べたI/O命令CHG19は、
システム判別ビットが切り替わると発生し、これに基づ
き各回路の切り替えを行う。
【0085】本例では、イニシャルビットが、Aあるい
はBシステムの下で少なくとも1度稼働し、各システム
の初期設定が終了しているか否かを示す起動フラグと、
各システムの下でアプリケーションが稼働中であるかを
示す未了フラグの機能を果たしている。イニシャルビッ
ト=0であれば、アプリケーションは未了とされ、シス
テムが切り替わって元のシステムに復帰した場合に、未
了であったアプリケーションを続行することが可能とな
る。また、電源オフする際に、未了のアプリケーション
があった場合に、その事実をユーザーに警告表示するこ
ともできる。従って、ユーザーは初期設定時のみ2つの
システムを使用していることを意識するだけであって、
その後は1つのシステム上でアプリケーションを実行し
ているのと同じ感覚で本例のパソコンを使用できる。ま
た、他方のシステムでアプリケーションを実行中にもか
かわらず、一方のシステム側からパソコンを停止するこ
ともあり得るので、イニシャルビットを参照してユーザ
ー側に警告を出すなどのエラー処理を簡単に組み込むこ
とができる。
【0086】さらに、本例では、リブートビットとの組
み合わせによって、アプリケーションプログラムの終了
後にシステムが再起動した場合であっても、環境の初期
化が行われないようにしている。すなわち、アプリケー
ションプログラムが終了してイニシャルビットがアプリ
完了状態(=1)となっても、リブートビットをリブー
ト側(=1)に設定しておけばシステムを切り替えた際
にリブート状態で立ち上がる。従って、システムを切り
替える毎にI/Oコントロール部やメモリなどの初期化
を行う必要がなくなるため、システムの切り替えに要す
る時間を短縮できる。さらに、システムを切り替えて同
じOSを使用するのであれば、OSをメモリにロードす
る手間も省けるので、指定されたアプリケーションやシ
ステムのメニュープログラムを瞬時に実行でき、ユーザ
ーはシステムが切り替わったこと意識せずに使用でき
る。また、リブートビットを解除(=0)し、イニシャ
ルビットを未起動の状態(=1)に設定すれば、そのシ
ステムだけのリセットを簡単に行える。従って、他方の
システムに影響を与えることなく一方のシステムのリセ
ットを行える。
【0087】以上まとめると次のようになる。 イニシャル リブート 0 × アプリケーションが未了 (未了フラグオン) 1 0 メモリチェック等の初期化が必要(初期化フラグオン) 1 1 リブート処理指示 (リブートフラグオン) 図10(a)〜(c)に示すように、本例のパソコンで
は基本設定ポートのシステム判別ビットと、イニシャル
ビットとを参照してパソコンの動作している状況をユー
ザーが確認できるようになっている。例えば、図10
(a)に示すように、システム判別ビットがAシステム
を示しているときはAシステムでパソコンが動作してい
るので、AシステムのLED14aが赤色に点灯する。
一方、Bシステムのイニシャルビットは未起動状態(=
1)なのでBシステムで稼働させているアプリケーショ
ンはなく、BシステムのLED14bは点灯しない。A
システムでアプリケーションが稼働中にBシステムに移
行すると、システム判別ビットがBシステムを示すの
で、図10(b)に示すようにLED14bが赤色で点
灯する。一方、Aシステムではアプリケーションが稼働
中だったのでAシステムのイニシャルビットは未了状態
(=0)となり、これによってLED14aは黄色に点
灯する。これによってユーザーは本例のパソコンはBシ
ステムで稼働中であるが、Aシステムで稼働していたア
プリケーションがそのままの状態であることを知ること
ができる。したがって、Bシステムでの作業を終了した
後にAシステムに戻れば、アプリケーションの処理に入
ることが判る。図10(c)に示すように、Bシステム
での作業を終了してAシステムに戻ると、システム判別
ビットはAシステムとなり、Bシステムのイニシャルビ
ットは起動済み状態(=1)、また、リブートビットは
リブート状態(=1)となるので、LED14aは赤色
に点灯し、LED14bは緑色、すなわち初期化済み
(リブート)を示す状態となる。このように上記の要因
ポートや基本設定ポートの状態を参照すれば、システム
の判別や、SMIハンドラーの処理状況などをユーザー
サイドに示すことができる。もちろん、LEDに限ら
ず、CRT上の特定の位置、例えば、最下段や小さな表
示窓にこれらの情報を表示しても良い。
【0088】これらの要因ポート1および2、あるいは
基本設定ポートの構成は上記に限らず様々に構成でき
る。イニシャルビットに加えてアプリケーションの実行
状況を示すビットを設けても良い。また、パソコンの立
ち上げ時にシステムを固定しておくのであれば、初期シ
ステムビットは不要となる。また、定期的に2つのシス
テムを切り替えながら2つのシステムのアプリケーショ
ンを同時進行的に処理するようなオプションも簡単に組
み込むことができる。
【0089】さらに、本例のパソコンではA、B2つの
システムに切り替えられるようにしてあるが、メモリマ
ップを増やし、I/Oなどの切り替え回路を用意すれ
ば、本例のパソコンと同様の構成で3つ以上のシステム
を切り替えながら使用することももちろん可能である。
そして、この場合の要因ポートや基本設定ポートの構成
は3つ以上のシステムに対応したものに変わっていくこ
とはもちろんである。
【0090】さらに、3つ以上のシステムであれば、例
えば、現在のシステムの前にCPUの稼働していたシス
テムを記憶し、デフォルトで前のシステムに戻るような
オプションの設定もできる。このようなオプションを設
定することでユーザーの利便性を高めることができる。
【0091】5.処理の流れ 以下に図11〜図15を参照して、本例のパソコンでシ
ステムを切り替える際の処理の流れを説明する。図11
に示すように、本例の処理システムは、初期設定を行う
部分200と、アプリケーションなどの諸プログラムの
実行を行う部分250と、SMMに入ってシステムの切
り替えを行う部分300と、パソコンでの処理を終了す
る処理を行う部分350とからなる。
【0092】[初期設定]図12に、初期設定を行う部
分200の処理の流れを示してある。ステップ201で
パソコンの電源がオンされると、ステップ202で特定
のキー入力があったか否かを判別する。特定のキーボー
ドの特定のキーの組み合わせや、マウスなどを特定の方
法で操作した場合は、システム毎のメモリの割り振り
(容量の割り当て等)を行う。まず、ステップ203で
SMIを発生させ、SMIハンドラーに制御を引き渡
す。SMIハンドラーをメモリ領域にロードできていな
い時は、ステップ203に先立ってSMIハンドラーを
DRAMにロードしても良いし、あるいはBIOSRO
M上のSMIハンドラーの領域にアドレスを変換してR
OMから動かしても良い。SMIハンドラーはステップ
204でメモリの割り振りを行うメニューを表示し、ユ
ーザーはこのメニューからメモリの割付を指示する。S
MIハンドラーはステップ205でレジュームビットを
チェックする。レジュームビットが立っている場合は電
源オン時に電源オフの状態に復帰するレジューム処理を
行うが、メモリの割付を変更すると、レジューム処理が
できなくなる。そこで、ステップ206で警告メッセー
ジをCRTなどに表示する。ステップ207でユーザー
がメモリの割付を変更する処理を続行するのであれば、
ステップ208でレジュームビットを0、すなわち、レ
ジューム処理を行わない状態としてステップ209に進
む。ステップ207でユーザーがメモリの割付の変更を
行わない場合は、ステップ210へ移行し、メモリの割
付を変更しないで処理を終了する。
【0093】レジュームビットがレジューム処理を行わ
ない状態(=0)となっていると、ステップ209でメ
モリコントローラ2のメモリマップを変更し、各システ
ム毎のメモリ容量の割付を変更する。ステップ210で
この処理を行うメニューの表示をオフし、SMMを抜け
る。これら一連の表示や入力は、SMIハンドラーがA
またはBのシステムの入出力制御回路を用いて行えるよ
うにしてある。
【0094】次に、ステップ212で基本設定ポートの
レジュームビットを確認し、ユーザーによってレジュー
ム側に設定されていると以下の初期設定部200の処理
をバイパスして実行部250に移行する。レジュームビ
ットは、例えばポップアップメニュー内でユーザーが有
効・無効を設定できるものである。電源オフの間もバッ
クアップ用の電源、例えば電池などを用いてメモリを活
かしておくレジューム側に設定されていれば、実行部2
50に移行し、システムの環境を電源オフされる前と変
えずにレジューム状態で復帰する。CPUを復帰させる
ために基本設定ポートのシステム判別ビットに基づき回
路接続やメモリマップが電源オフされる前の状態に設定
されているかなど、一方のシステムで正常に稼働できる
ような環境確認を行っても良い。
【0095】レジュームビット=0の場合は、ステップ
213で初期システムビットの設定を判別する。この
際、初期システムビットによってシステム判別ビットは
初期に立ち上がるシステム側に設定されているので、シ
ステム判別ビットに従って、ステップ214でシステム
Aのメモリマップを設定するか、ステップ215でシス
テムBのメモリマップを設定する。同時に、メモリマッ
プを設定した側のBIOSをそのシステム用に割り振ら
れたメモリ領域にロードしておく。
【0096】メモリマップの設定と共に、ステップ21
6でシステム判別ビットに基づき、選択されたシステム
の側の入出力制御回路に切り替える。これによって、初
期システムビットに対応したシステムAあるいはシステ
ムBのハードウェア的な環境が整う。ステップ216の
状態では、イニシャルビットは初期化が必要な状態(=
1)に、また、リブートビットはリブートが不要な状態
(=0)に設定される。
【0097】また、前に電源をオフした時の双方のシス
テムのイニシャルビットを保存しておけば、初期設定時
に、電源をオフした時のアプリケーションプログラムの
実行状況を確認することもできる。これにより、アプリ
ケーションプログラムが終了していなかったシステムを
レジューム状態で強制的に立ち上げるような処理も可能
となる。
【0098】[プログラムの実行]図13を参照して、
プログラムの実行部250の処理の流れを説明する。実
行部250では、初期設定部200あるいはシステムの
切り替え部300においてBIOSやメモリマップなど
を含めてAあるいはBシステムの環境が整った状態で処
理を開始する。まず、ステップ251でアドレスFFF
FFFF0hをフェッチし、すでにロードされているA
システムあるいはBシステムのBIOSに従った処理を
開始する。例えば、Aシステムの環境下であるとする
と、メインメモリ4にロードされているAシステムのB
IOSのうち、アドレスFFFFFFF0hにシャドー
としてあらわれているBIOSをフェッチする。BIO
Sがフェッチされると、ステップ252で、CPUが接
続されたシステム、すなわち、動作する環境の整ってい
るシステムのイニシャルビットの状態を確認する。イニ
シャルビットが初期化の必要な状態(=1)であれば、
そのシステムで処理の継続しているアプリケーションプ
ログラムなどはないので、ステップ253で、そのシス
テムのリブートビットを確認する。リブートビットがリ
ブート状態(=1)に設定されていれば、そのシステム
で一度立ち上がっているOSはすでにロードされてお
り、その初期化までは済んでいる。従って、ステップ2
59でリブート処理を行い、OSが既にロードされた状
態で処理を開始する。このため、システムが変更になっ
てもメモリチェックや、入出力制御手段の初期化、ある
いはOSのロードといった処理を行わずにすみ、ユーザ
ーはシステムが変わったことは意識しないで処理を続行
できる。後述するようにリブート後は指定されたアプリ
ケーションを自動的にブートし、実行するようにしてあ
るので、ユーザーは、異なるシステムに対応したアプリ
ケーションをそのシステムを意識することなく同時に実
行することができる。本例では、リブート処理によって
OSのロードも省けるようにしているが、システムが変
わった時にOSも変更するのであれば、メモリチェック
だけ省いたり、あるいはOSのロードから始めたり、リ
ブート時の処理はさまざまに行える。
【0099】リブートビットがリブート状態に設定され
ていなければ(=0)、その環境下でCPUは初めて動
作するか、あるいはリセットを要求されている。そこで
ステップ254で、メモリチェックを行い、さらにステ
ップ255で入出力制御手段の初期化を行う。さらに、
ステップ256でFDDやHDD等の先頭のセクタの読
み込みを行い、さらに、ステップ257において、FD
DやHDDから、CPU1の稼働する環境下のOSに係
るIOシステムなどを読み込み、OSの初期設定を行
う。この処理は、各システムが最初に動作するときのみ
ならず、各システムでCPU1がリセットされた場合も
行えるように、本例のパソコン用のシステムは構築して
ある。例えば、Aシステムでマイクロソフト社製のMS
−DOS(商標)を作動させた後、同じAシステムでB
ASICを作動させるには、後述するステップ265で
リセットすれば、ステップ254からの処理によってB
ASICの初期設定を行える。これらの処理は、通常の
パソコンにおける初期設定の工程と同様である。
【0100】ステップ257までの処理を行った段階で
リブートビット=1とし、リセットされない限り上記の
初期化処理を行わないようにしている。これによって、
ユーザーはシステムが変わるたびに初期化処理を求めら
ることはない。
【0101】初期化処理が終了したり、あるいはリブー
ト処理が終了してOSの動作準備が整うと、ステップ2
58でアプリケーションプログラムの起動指示があるか
否かを判断する。アプリケーションプログラムの起動指
示があれば、そのアプリケーションプログラムをブート
し、ステップ263に移ってプログラムに従った処理を
実行する。アプリケーションプログラムのブートは、例
えばMS−DOS(商標)をOSとして用いた場合は、
起動ファイルであるAUTOEXEC・BATにブート
したいアプリケーション名を加えておけば良い。詳しく
は後述する。アプリーションプログラムの起動指示のな
い場合は、ステップ271でOSコマンド待ちとなっ
て、ユーザーの指示待ちの状態となる。
【0102】本例のパソコンでは、AおよびBのいずれ
のシステムでも初期の立ち上げを可能とし、また、Aお
よびBシステムのいずれのOSにもアクセスできるよう
にしてある。これと異なり、ベースとして動くシステム
を例えばAシステムに決めておけば、Bシステムのアプ
リケーションを動かすときだけBシステムに移行し、通
常のユーザーがアクセスできるのはAシステムで稼働す
るOSに限定するようなシステム構成ももちろん可能で
ある。また、本例のパソコンでは、AシステムからBシ
ステムのアプリケーションプログラムを指定した場合、
そのアプリケーションプログラムが終了すれば自動的に
Aシステムに切り替わり、AシステムのOSや、Aシス
テムで実行していたアプリケーションプログラムに自動
的に戻るようにしてある。このようなシステム構成であ
っても、ユーザーは異なった環境で動くシステムに切り
替えることを意識しないで両システムのアプリケーショ
ンプログラムを使用できる。
【0103】ステップ252で、切り替わったシステム
のイニシャルビットが未了(=0)になっている場合
は、そのシステム、例えばBシステムに切り替わった時
に、Bシステムですでにアプリケーションプログラムが
起動している。そして、図6に示すように、以前にAシ
ステムに切り替わる際のCPU1の状態は、SMRAM
としてアドレス変換されたビデオRAM110の裏バン
クに相当するRAM100に保存してある。その状態の
CPUステートを復帰させるためにステップ260でソ
フトウェアSMIを発行する。SMIが発行されると、
SMMに入り、その時のCPUステートがSMRAMに
退避される。ステップ261では、SMIハンドラー
が、SMRAMのCPUステートセーブの領域102に
特定のメモリ領域に保存してあったCPUステートを復
帰させる。ステップ262でRSMインストラクション
を発行してSMMを抜けると、CPUステートセーブ領
域102のステートがCPU1に戻されるので、CPU
1の状態は前にBシステムからAシステムに切り替わっ
た直前の状態となる。ステップ263で、Aシステムの
イニシャルビット=0として、アプリケーションプログ
ラムの実行中の状態とする。ステップ264でCPU1
が動作を開始すれば、前にBシステムからAシステムに
切り替わったままの状態でアプリケーションプログラム
の処理を続行できる。イニシャルビットは、例えば、A
システムをベースに稼働するマシンにとってはBシステ
ムだけに設けておいても良い。Aシステムはマシンが起
動すると必ず初期化され、また、マシンを停止するとき
は必ずAシステムに戻るからである。
【0104】アプリケーションプログラムの実行中にリ
セットしたい場合は、キーボードなどからリセット命令
を入力する。ステップ265によりリセット命令が入っ
たと判断すると、ステップ266で稼働中のシステムに
イニシャルビット=1とし、リブートビット=0とす
る。そして、ステップ251に戻ってBIOSフェッチ
からの処理を行う。これによって、先に説明した初期化
の処理を行える。このリセット処理は、稼働中のシステ
ム内で行われるため、他方のシステムの状態は影響を受
けない。Bシステムの稼働中にリセットを行った場合
は、Bシステムとして接続されているメモリやI/Oブ
ロックなどが設定されなおすだけで、Aシステムに係る
メモリなどの状況は変わらない。従って、Bシステムを
リセットした後、Aシステムに切り替わっても、Aシス
テムでの内容は変更されない。このため、ユーザーは他
方のシステムへの影響を考慮しないでリセット機能を使
用できる。例えば、BシステムのOSを変えたり、Bシ
ステムのアプリケーションプログラムを中断しても、A
システムで稼働させていたアプリケーションプログラム
への影響はない。このように、本例のパソコンでは、ユ
ーザーが環境の差を意識することなく2つのシステムを
使用できるにもかかわらず、2つのシステムを別々に取
り扱えるように考慮してある。
【0105】本例のパソコンでは、上記のリセットに加
え、両システムをハード的にリセットできるオールリセ
ットスイッチと、システム別にハード的にリセットでき
る個別リセットスイッチを用意してある。オールリセッ
トスイッチは、例えば本体ケースの裏側などにユーザー
が容易に押せないように用意してある。このオールリセ
ットボタンによって両システムのメモリやレジスターを
ハード的にリセットできるようにしてある。また、シス
テム別のリセットスイッチは従来のパソコンと同様にパ
ソコンのフロント側に用意してあり、CPUが暴走した
場合などでもシステム別にハード的にリセットをかけれ
るようにしてある。
【0106】例えばリセット信号と、A、B間のシステ
ムを切り替えるCHG19にゲートをかけ、CHG19
の値によってリセット信号を切り分けておけば、前記リ
セットスイッチをシステム別に用意しなくても、1つの
リセットスイッチを操作して、現在動作中のシステムの
みをハード的にリセットすることができる。
【0107】アプリケーションプログラムの実行中にシ
ステムを切り替えるSMIを要求する入力があったとき
は、ステップ267で判断し、例えばステップ268で
ポップアップメニューを画面に表示する。このポップア
ップメニューは特定のキーコンビネーションで呼び出す
ことが可能であり、また、キーボード上に呼出し用の特
定のキーを設けておいても良い。また、マウスのボタン
を2つ同時に押した場合にポップアップメニューを呼び
出すような処理も可能である。あるいは、ユーザーがポ
ップアップメニューを呼び出す特定のキーコンビネーシ
ョンを指定できるようにしておいても良い。
【0108】もちろん、ポップアップメニューを経ず
に、キーコンビネーションや、アイコンなどによってS
MIを発行させ、システムを自動的に切り替えて例えば
Aシステムで実行中のワープロが即座に画面上に現れる
ような制御も可能である。このようなケースでは、特定
のキーコンビネーションが入力されると、キーボードコ
ントローラ24が認識し、SMIKをI/Oブロック2
1に出力する。I/Oブロック21は、他の要因のSM
Iコントロール回路を内蔵しており、その中で調停を行
った後、SMIO信号をメモリコントローラ2に出力す
る。メモリコントローラ2では、CPU1のタイミング
に従ってSMIをCPU1に出力する。本例では、Aお
よびBの2つのシステムを切り替えるようにしてある
が、3つ以上のシステムの切り替えも勿論可能なので、
このような場合はポップアップメニューで処理すれば、
ユーザーが切り替え先を指定できる。
【0109】図17に、システムを変えてアプリケーシ
ョンプログラムを動かす一例を示してある。図17
(a)に示すようにAシステムを立ち上げて画面120
の上でワープロを稼働させている際に、右下のアイコン
126によってBシステムを選択する。Bシステムはま
だ一度も立ち上がっていないので、画面120は、図1
7(b)のようにBシステムの初期画面に変わり、この
画面によってBシステムの初期化を行える。図17
(b)の画面からAシステムに戻る場合は、図19のポ
ップアップメニューを使用できる。もちろん、特定のキ
ーコンビネーションで行ってもよい。
【0110】ポップアップメニューを使用したAシステ
ムへの復帰は次のように行う。まずAシステムへの復帰
「YES」を選択する。次に「Bシステムを保存」を選
択すると、Bシステムのイニシャルビット=0として、
Aシステムに復帰する。即ち、Bシステムで実行中のア
プリケーションプログラムを未了状態にしながらAシス
テムに復帰する。従って、次にBシステムに復帰した場
合には、未了であったアプリケーションプログラムが続
行される。
【0111】一方、Aシステムへの復帰「YES」を選
択した後、「Bシステムのアプリケーションのみを終
了」を選択すると、Bシステムのイニシャルビット=
1、リブートビット=1としてAシステムに復帰する。
これにより、次にBシステムに復帰した場合には、リブ
ート処理が行われる。
【0112】また、Aシステムへの復帰「YES」を選
択した後、「Bシステムの全てを終了」を選択すると、
Bシステムのイニシャルビット=1、リブートビット=
0としてAシステムに復帰する。これにより、次にBシ
ステムに復帰した場合には、メモリチェック等の環境の
初期化が行われる。
【0113】図17(b)でBシステムのアプリケーシ
ョンを立ち上げると図17(c)のようになるが、ここ
からAシステムに復帰する場合も上記と同様にできる。
【0114】図17(a)から、アプリケーションアイ
コン125を選択すると、アプリケーション起動用のバ
ッチファイル内でアプリケーションビットを1として、
希望するアプリケーションプログラム、この場合は表計
算プログラムの起動プログラム(バッチファイル)をB
システムにコピーして、図17(c)のように表計算プ
ログラムが立ち上がる。表計算を終了した時は、バッチ
ファイル内で自動的にAシステムに切替え、図17
(a)に戻る。アプリケーションアイコン125で立ち
上げた表計算プログラムが実行中にポップアップメニュ
ー等でAシステムに戻ることもできるが、この際、図1
7(a)のアプリケーションアイコン125は、起動中
を示すように、表示態様を変えて表示される。さらに、
バッチファイルにBシステムのクロックスピード(CL
K)を変更するI/Oポートを設定する命令を加えれ
ば、例えば表計算の実行に最適なクロックスピードにB
システムを自動設定した上で表計算プログラムを立ち上
げることができる。パワーセーブについても上記と同様
に設定できる。
【0115】図18および図19に、上記と異なる画面
表示の例を示してある。図18では、パソコンが先ずA
システムで立ち上がっているので画面120はAシステ
ムとなる。そして、Aシステムで稼働するアプリケーシ
ョンプログラムの作動画面121、例えばワープロの画
面が表示され、Aシステムでアプリケーションプログラ
ムが作動している。そして、このアプリケーションプロ
グラムの実行中、例えばBシステムの表計算プログラム
を動かす。Bシステムの表計算プログラムの作動画面1
22はマルチウィンドウ表示でAシステムのワープロ画
面と重なって表示され、この状態でBシステムのアプリ
ケーションプログラムが動作する。このBシステムのア
プリケーションプログラムの動作中に、Aシステムのワ
ープロに戻りたい場合は、特定のキーコンビネーション
をインプットし、Bシステムのアプリケーション画面上
にポップアップメニュー130を表示する。このポップ
アップメニュー130には、Aシステムへの復帰指示に
加えレジュームビットの設定も可能となっている。さら
に、クロックのスピードなどの指定もできるようになっ
ている。
【0116】ポップアップメニュー130の立ち上げ時
の表示を、Aシステムへの移行が常に「NO」となるよ
うにポップアップメニューの設定を初期化することで、
ユーザーが誤ってAシステムに切り替えるのを防止する
こともできる。このポップアップメニューでAシステム
への復帰が指示されると、ステップ268では、Aシス
テムへの切り替えるようにシステムビットを設定してシ
ステム切り替え部300に移行する。具体的には、図8
に示す要因ポート2のビット0を「1」に設定してSM
Iを発行する。
【0117】SMIは最上位割り込みなのでSMIが発
行されると現在Bシステムで処理中のアプリケーション
プログラムは中断してしまう。Bシステムで処理中のプ
ログラムによっては中断すると誤動作するようなものも
考えられる。例えば、FDDの初期化途中であったり、
割り込みデバイスの初期化時などであり、一連のI/O
アクセスが連続で行われなければ誤動作するデバイスア
クセス時などが考えられる。このような場合は、SMI
を発行する前のステップ268で判断してSMIの発行
を遅らせても良い。あるいは、SMIを発行した後、S
MIハンドラーで処理中のプログラムの種類を判断し
て、一定の時間経過後ふたたびSMIを発行するように
プログラムしてからSMMを抜けて前のシステムに復帰
するようにシステムを構成することも可能である。
【0118】ステップ269でアプリケーションプログ
ラムが終了したと判断すると、ステップ270でイニシ
ャルビット=1に戻す。パソコンでの処理を終了する指
示がポップアップメニュー等からあれば、ステップ27
2で判断し、終了処理350へ移行する。他のアプリケ
ーションプログラムの実行が選択された場合は、ステッ
プ273で現在CPU1の稼働しているシステムと同一
の環境で動作可能なアプリケーションが否かを判断し、
同じ環境で動作するアプリケーションであれば、ステッ
プ263に戻ってアプリケーションプログラムを実行す
る。
【0119】一方、選択されたアプリケーションがCP
U1の稼働しているシステムと異なるシステムで動作す
るものであれば、システムを切り替える必要がある。そ
して、システムが切り替わった後に、選択されたアプリ
ケーションプログラムをブートし、実行させる必要があ
る。本例のシステムでは、Bシステムで稼働するアプリ
ケーションプログラム用のコマンドファイル、例えばM
S−DOSをOSとして採用する場合は、CONFI
G.SYSとAUTOEXEC.BATをアプリケーシ
ョンプログラム毎にAシステムのディスク上に用意して
ある。そこで、ステップ274で、Bシステムで稼働す
るアプリケーションプログラム用のコマンドファイルを
SMRAM100にコピーし、ステップ275で要因ポ
ート2のアプリケーションビット=1としてシステム切
り替えを行うようにしている。アプリケーション用のコ
マンドファイルをコピーする領域は、SMIハンドラー
が取り扱えるメモリ領域であれば良く、SMRAM領域
に限定されない。
【0120】あるいは、選択されたアプリケーションプ
ログラムをSMIハンドラーで処理できるAおよびBシ
ステムに共通のメモリ領域、例えば、ビデオRAMに割
り当てられているメモリ領域やI/Oレジスタなどをプ
ログラム名の保存領域として使用して記憶させ、SMI
ハンドラーでアプリケーションプログラムを起動するフ
ァイルを作成しても良い。
【0121】[システムの切替え]図14に、システム
切り替え部300の処理の流れを示してある。本例のシ
ステム切り替え部300では、ステップ301でSMI
を発行する。SMIは、ポップアップメニューや、アプ
リケーションを起動させる際のソフトウェアや、あるい
はキーボードなどを要因として発行できる。要因ポート
1にI/O命令でアクセスしても良く、メモリアクセス
を用いてもSMIを発行できる。SMIが発行される
と、CPU1のステートは図6に示すようにSMRAM
100に退避される。そして、SMIハンドラー101
に従った処理を実行する。本例では、まず、ステップ3
02でシステムを切り替える方向を示すシステムビット
を確認する。上記の例では、BシステムからAシステム
に切り替えるので、要因ポート2のビット1を「1」に
設定してある。システムを再度Bシステムに切り替えた
時にCPUステートを復帰させるためにはCPU1のス
テートを保存しておく必要があるので、ステップ303
でCPUステートセーブ領域102に退避してあるCP
U1のステートを別のメモリ領域、例えばSMIハンド
ラーの領域101などに保存する。再度Bシステムに切
り替わったときは、SMIハンドラーなどの領域に保存
してあるCPUのステートをCPUステートセーブ領域
102を介してCPU1に復帰させれば、システムが切
り替わったときのCPU1の状態を再現できることにな
る。
【0122】次に、要因ポート2の各要因をチェックす
る。まず、ステップ304でHDDコピーを示す要因で
あれば、図16に示す各ステップを実行してステップ3
15でSMMを抜ける。HDDコピーであることは、例
えばポップアップメニューを使用して設定することがで
きる。本例のHDDコピーのオプションは、例えば、B
システムの実行中にAシステムで使用していたHDDの
内容を写しかえたり、BシステムのHDDからAシステ
ムのHDDへデータを移植する際に用いられる。本例の
パソコンでは、AシステムおよびBシステム用に用意し
てあるHDDドライブ45、46はリムーバブルなの
で、共通のHDD44との間でデータやアプリケーショ
ンをコピーすれば、それぞれのシステム専用のパソコン
とデータやアプリケーションプログラムを相互に使用す
ることができ非常に便利である。HDDのコピーはメニ
ューから処理を選択することももちろん可能であるが、
両システムのBIOSを用いて両システム用のHDDイ
ンタフェースやHDDドライブの状態を確認するなどの
処理を行う必要があるので、SMM内で処理できるよう
にしている。
【0123】図16に示すように、HDDコピーを行う
処理では、ステップ320で一方のシステム、例えばA
システムでAシステムに接続されたHDDを読み込む。
そして、ステップ321でそのシステムでSMRAMに
HDDから読み込んだ内容をコピーする。ステップ32
2でシステムを切り替え、ステップ323で切り替えた
システム、例えばBシステムでSMRAMの内容を読み
込む。そして、読み込んだ内容をBシステムでBシステ
ムに接続されたHDDに書き込む。ステップ325で再
度システムを切り替えて、ステップ326でAシステム
HDDのコピーが終了したかを判断する。HDDのコピ
ーが終了していなければ、ステップ320に戻り上記の
処理を繰り返す。このHDDコピーのプロセスで呼び出
されたシステムを初期化する場合は、初期化用の画面表
示を行ってから上述したHDDコピーの処理に移れば良
い。
【0124】HDDコピーのビットが立っていなけれ
ば、次に、システム判別ビットに基づいてメモリマップ
を切り替える。システム判別ビットはシステムビット、
本例では要因ポート2のビット0および1の状態によっ
て切り替えられる。システム判別ビットが例えば1から
0に変われば、システムをBからAに切り替える必要が
ある。本例では、システム判別ビットと同期してハード
的にCHG19が設定され、これによって、ステップ3
07でメモリコントローラは、メモリマップをシステム
A用に切り替える。また、逆にシステム判別ビットが0
から1に変われば、システムをAからBに切り替えるた
めにステップ309でメモリマップをシステムB用に切
り替える。CHG19は、例えばアドレス0C00hに
34hを書くことにより低レベルから高レベルに変化す
る。このCHG19に基づきメモリコントローラ2によ
ってメモリマップを切り替えるようにすれば良い。
【0125】メモリマップの設定と同時に、I/O命令
CHG19によってステップ310に示すように入出力
制御回路の切り替えが行われる。これにより、I/Oブ
ロックなどの回路がシステム判別ビットに合致したシス
テム側に切り替わる。さらに、ステップ311でシステ
ムビットをクリアする。
【0126】次に、ステップ312で、要因ポート2の
アプリケーションビットを確認する。アプリケーション
ビット=1ならば、ステップ313でSMIハンドラー
の使用できるメモリ領域に格納してあるアプリケーショ
ンプログラムを起動するコマンドファイルを切り替えら
れたシステムのブートデバイス、例えばシステム用のハ
ードディスクにコピーする。これによって、リブート時
や、システムを初期化したのちに読み込まれる環境設定
用のファイルやブートファイル、例えばMS−DOSの
CONFIG.SYSやAUTOEXEC.BATを稼
働させたいアプリケーションプログラム用に変更でき
る。この場合、元のブートファイルは名前を変えて保存
し、アプリケーションプログラム終了時に名前を戻せば
よい。システムが切り替わった後AUTOEXEC.B
ATが読み込まれると、自動的に指定されたアプリケー
ションが起動する。また、アプリケーションプログラム
が終了した後の処理も同時に指示できるので、例えば、
アプリケーションプログラムが終了したのちに再度元の
システムに切り替わるような指示も可能である。従っ
て、ユーザーはアプリケーションの動作する環境を認識
せずにアプリケーションの指定することができ、また、
本例のシステムでは、ユーザー側に環境が変わったこと
を意識させずにアプリケーションの実行まで処理でき
る。
【0127】上記のような処理でシステムの切り替えを
終了するので、RSMインストラクションを発行してス
テップ315でSMMを抜け、実行部250に移行す
る。
【0128】[終了処理]図15に基づき、終了処理3
50の構成を説明する。プログラムの実行部300から
移行し、ステップ351で電源オフの指令を行うと、ス
テップ352でSMIを発行し、ステップ353でレジ
ュームビットの状態をチェックする。レジュームビット
=1であると、ステップ354で、CPUステートを保
存し、各システムに割り当てられたメモリの内容を確保
するなどのレジューム処理をおこなってからステップ3
55で電源をオフする。
【0129】図20にレジューム処理のフローチャート
を示す。レジューム処理を行う場合にはステップ360
でSMIを発生し、ステップ361でレジュームでの電
源オフか否かを判断する。レジュームでの電源オフでな
ければステップ362に示すように他のSMI処理へ移
行する。次にステップ363で、FDD等をアクセス中
かを判断し、アクセス中の場合にはステップ364に移
行しSMIを再起動するタイマをセットしてSMIルー
チンを抜ける。アクセス中でない場合には、ステップ3
65でバックアップ電源等によりバックアップされない
データの退避を行うとともに、ステップ366でSMR
AMの内容を別領域に退避する。最後にステップ367
に示すように電源オフコマンドを発行する。
【0130】図15の説明に戻る。ステップ353でレ
ジュームビット=0の場合は、レジューム処理を行わず
にステップ355で電源をオフする。その際、念のため
ステップ356で他のシステム、例えばBシステムのイ
ニシャルビットをチェックする。イニシャルビット=0
の場合は、そのシステムで稼働中のアプリケーションプ
ログラムがあるので、ステップ357でユーザーに警告
メッセージを表示する。ステップ358でユーザーが電
源オフを続行する場合は、そのままBシステムのアプリ
ケーションプログラムを中断しパソコンを停止する。一
方、ステップ358で電源オフの処理を中止する場合
は、プログラム実行部に移行する。
【0131】このように、裏のシステムでアプリケーシ
ョンプログラムが作動中であることをユーザー側に示し
ユーザーが対応する機会を与えれば、Bシステムではア
プリケーションプログラムが動作しているのに、Aシス
テムでパソコンを停止させてしまうような事態を防止で
きる。本例のパソコンのように、複数のシステムが稼働
できるマシンでは、双方のシステムにおけるアプリケー
ションの実行状況を確認してからパソコンの電源を遮断
することにより、ユーザーに対応できる機会を与えるこ
とができる。
【0132】(第2の実施例) 1.全体構成の説明 第2の実施例は、I/Oエミュレーションに関する実施
例であり、図21に、この場合のパソコンの全体構成の
一例を示す。このパソコンは、IBM社製のパコン(以
下、AT機又は単にATと呼ぶ)の環境と、セイコーエ
プソン社製あるいはNEC社製のパソコン(以下、98
機又は単に98と呼ぶ)の環境の双方で動作する複数互
換機である。CPUバス400には、DRAM等のメモ
リブロック406を制御するメモリコントローラ40
1、キャッシュSRAM402、TagRAM404、
データバスバッファ408が接続される。このパソコン
では、図1、2と異なり、高速バスであるPCIバス4
52を採用しており、PCIバス452にはサブコント
ローラ410、PCMCIAインターフェース422、
98用ビデオコントローラ424、VGA拡張ビデオコ
ントローラ426、PCIブリッジ430が接続され
る。またシステムバス454には、BIOSROM44
2、FDDコントローラ444、キーボード・マウスコ
ントローラ446、シリアルコントローラ448、パラ
レルコントローラ449が接続される。
【0133】サブコントローラ410(エミュレート手
段)は、SMIステータス412、SMI発生手段41
4、命令変換手段416、AT系I/O保持手段41
8、98系I/O保持手段420、I/O受付手段42
1を含む。SMIステータス412は図7、図8に示す
要因ポートのレジスタ等を含むものであり、SMIステ
ータスに要因が設定されるとSMI発生手段414によ
りSMI455が発生され、CPU400に出力され
る。CPU400にSMI455が入力されるとSMI
ハンドラーが起動し、このSMIハンドラーがSMIス
テータス412の要因ポートを読み、要因に応じた所定
の処理を行う。なお本例ではこの要因ポートは階層構造
となっている。
【0134】I/O受け付け手段421は、CPU40
0が発行したI/O命令を受け付けI/O命令の種類等
を解析する。そして高速性が要求されるI/O命令のエ
ミュレート変換処理は、命令変換手段416がハードウ
ェア的に行う。一方、高速性が要求されず複雑なI/O
命令のエミュレート変換処理は、例えばSMIハンドラ
ーがソフトウエア的に行う。第1の実施例では、例えば
AT系のI/Oデバイス(入出力制御手段)と98系の
I/Oデバイスとを用意し、CPUがAT系の命令を発
行した場合にはAT系のI/Oデバイスに切り替え、9
8系の命令を発行した場合には98系のI/Oデバイス
に切り替え、これにより複数互換を実現していた。しか
しこの手法によると、AT系と98系の2つのI/Oデ
バイスが必要となるため、コスト面で不利になる可能性
がある。これに対して第2の実施例では、例えば全ての
I/Oデバイス(シリアルコントローラ448、パラレ
ルコントローラ449等)をAT系とし(全てを98系
としてもよい)、CPU400が98系の命令を発行し
た場合には命令変換手段416によりその命令をAT系
の命令に変換しI/Oデバイスに伝える。一方、CPU
400がAT系の命令を発行した場合には、その命令
は、そのままI/Oデバイスに伝えられる。これにより
I/Oデバイスの全てあるいはほとんどをAT系のもの
とできるため、コスト・開発容易性等の面で有利とな
る。命令変換手段416の詳細については後述する。
【0135】PCIブリッジ430は、例えばSIO
(インテル社製の82378IB)と呼ばれるものであ
り、マスター・スレーブの割り込みコントローラ43
2、434、HDD428とのインターフェースとなる
IDEインターフェース436、DMAコントローラ4
38、システムバス454へのバス変換を行うためのバ
ス変換部440を含む。
【0136】なおサブコントローラ410は、パソコン
内にあらかじめ内蔵してもよいが、サブコントローラ4
10を、PCI拡張スロット等に接続可能な拡張ボード
上に設けたり、PCMCIAインターフェース422等
に接続可能なICカード上に設ける構成としてもよい。
このようにすれば、ユーザのオプション選択により上記
拡張ボード又はICカードを接続することで複数互換を
実現できるようになるからである。またサブコントロー
ラ410を、PCIブリッジ430と同一のチップ内に
設けることもできる。その理由は、使用される信号がほ
とんど同一だからである。このような構成で98用ビデ
オコントローラ424を拡張ボード又はICカード上で
対応すれば、2つのシステムに対応しているにもかかわ
らずチップ数・チップ面積を同一にすることが可能であ
る。
【0137】更にサブコントローラ410の一部又は全
部をCPUバス450に接続する構成としてもよい。C
PUバス450にサブコントローラ410を接続するこ
とで、FRAME信号のマスクの問題、SMI信号の取
り出しの問題、PCIバス等を有しないあるいはCPU
からの命令がPCIを介さない低価格のパソコン(例え
ばノートパソコン)への対応の問題等を解決できる。サ
ブコントローラをCPUバス上に設ける場合には、例え
ば図22(A)、(B)に示すような構成とする。この
場合、まず、メインボード626上のCPUソケットで
ある第2のソケット628からCPU400を取り外
す。そして第2のソケット628のピン穴633に、第
1のオプションボード620上に設けられた第1のソケ
ット622のピン端子625を挿入する。そして第1の
ソケット622のピン穴623(ピン端子625と電気
的に導通している)に、取り外した上記CPU400を
装着する。第1のオプションボード620上には、図2
2(B)に示すような構成の第1のサブコントローラ6
24が設けられている。CPUインターフェース640
はCPUとインターフェースを行いCPUバスをコント
ロール等するものであり、命令変換手段642はI/O
命令のエミュレート変換を行うものであり、SMIコン
トロール手段646は、SMIステータス、SMI発生
手段等を含むものである。またメインボード626上の
PCI拡張スロット629には、第2のサブコントロー
ラ631が設けられた第2のオプションボード630が
装着される。第2のサブコントローラ631は、BIO
SROM632、ビデオコントローラ634、FMサウ
ンドコントローラ636、RTC638等を含む。
【0138】2.I/O命令の保持 図21に示すAT系I/O保持手段418、98系I/
O保持手段420はCPU400からのI/O命令を保
持するものである。例えばパソコンの環境がAT系から
98系、そしてAT系へと切り替わった場合を考える。
この時、第1の実施例で説明したように、メモリマップ
の設定(CPUがアクセスするメモリ領域)もAT系か
ら98系、そしてAT系へと切り替わる。しかしながら
第2の実施例では、I/Oデバイスは例えばAT系のも
のしか用意されていない。従ってAT系から98系に切
り替わり次にAT系に戻った際に正常にI/Oデバイス
を動作させるために、初めのAT系の環境でCPUが発
行した全てのI/O命令を保持しておく必要がある。こ
の保持動作はAT系I/O保持手段418が行う。98
系で発行したI/O命令の保持動作は98系I/O保持
手段420が行う。保持された命令は元の環境に戻った
際にI/Oデバイスに伝えられる。具体的には、保持手
段に保持された命令を、CPU400が、直接に、ある
いはサブコントローラ410を介してI/Oデバイスに
伝える。
【0139】図23はAT系から98系に切り替わる際
の動作を示すフローチャートである。AT系のアプリケ
ーションプログラムが動作中に(ステップS1)、98
系へ切り替え動作が行われるとSMIが発生しSMIル
ーチンに移行する(ステップS2)。するとサブコント
ローラ410によるI/Oエミュレート機能がイネーブ
ルされるとともに、メモリマップを98系に切り替える
処理が行われる(ステップS4)。なおI/Oデバイス
の内容がハード的にバックアップされない場合等には、
これらの内容をソフトウェアでメモリ等に退避する処理
が行われる(ステップS3)。次に98系で一度立ち上
がったことがあるか否かが判断され(ステップS5)、
立ち上がったことがある場合にはその際に98系I/O
保持手段420に保持された内容が、I/Oデバイスに
対して伝えられる(ステップS6)。次にAT系のCP
Uステートデータを別領域に退避し(ステップS7)、
98系のCPUステートデータをSMRAMに戻す(ス
テップS8)。最後にRSM命令が発行されると、SM
RAMの内容がCPUの内部レジスタに戻される。以上
により98系の環境が整い、98アプリが動作する(ス
テップS10)。98系からAT系へ切り替える場合の
動作も同様である。
【0140】なお上記説明では命令変換手段416等に
よりエミュレート変換される前のI/O命令をI/O保
持手段に保持しているが、エミュレート変換後のI/O
命令を保持する構成としても構わない。
【0141】次にI/O保持手段の具体例について説明
する。
【0142】(1)I/OデバイスのI/Oポートがリ
ード可能である場合。
【0143】この場合には、環境を切り替える際に、I
/Oデバイスの全てのI/Oポートをリードし、リード
したI/Oポートの内容を別領域に退避することでI/
O保持手段を実現できる。
【0144】(2)I/OデバイスのI/Oポートがラ
イトオンリーである場合。
【0145】この場合には例えば次の3つの手法により
I/O保持手段を実現できる。
【0146】発生した全てのI/Oライト命令のアド
レス及びデータを保持する。
【0147】この場合のI/O保持手段の構成例を図2
4(A)に示す。メモリアドレス発生部460は、I/
Oライト命令が発生する毎にインクリメントするアドレ
スを発生し、メモリ462に出力する。メモリ462
は、メモリアドレス発生部460から入力されたアドレ
ス位置に、I/Oライト命令に含まれるアドレス及びデ
ータを順次格納してゆく。この手法は制御等が容易とい
う利点はあるが、必要とされるメモリ容量が大きくな
り、メモリ容量を超えるI/O命令が発生した場合に
は、ユーザーにその旨をポップアップメニュー等で伝
え、I/Oデバイスの誤動作を防ぐ必要がある。
【0148】I/Oデバイスの各I/Oポートに対応
したレジスタ群を用意する。
【0149】この場合、I/Oポートによっては複数段
の深さを有するようなものがある。即ち同一I/Oアド
レスで複数回データを書き込んで初めてI/O命令が意
味をなすような場合である。このような場合には、複数
段のレジスタを用意して発生順にI/O命令を保持す
る。図24(B)では、例えば1段の深さを有する0C
10hのI/Oポートに対しては1段のレジスタを用意
する。一方、4段の深さを有する0C12hのI/Oポ
ートに対しては4段のレジスタを用意し、I/O命令を
発生順に保持する。このようにI/Oポートのアドレス
の深さに応じたレジスタ群を用意する手法は、I/Oポ
ートの構成が固定であり、各レジスタの深さが事前にわ
かっている場合には有効である。なおこれらのレジスタ
は例えばDフリップフロップ等で構成する。
【0150】発生した全てのI/Oライト命令のデー
タを該命令のアドレスで保持する。
【0151】この場合のI/O保持手段の構成例を図2
4(C)に示す。メモリアドレス発生部464は、I/
Oライト命令のI/Oアドレスと同等のアドレスを発生
し、メモリ466に出力する。メモリ466は、メモリ
アドレス発生部464から入力されたアドレス位置に、
I/Oライト命令に含まれるデータのみを順次格納して
ゆく。I/Oポートは深さが1段である場合がほとんど
であるため、これらの1段の深さのI/Oポートについ
ては図24(C)の構成のI/O保持手段によりI/O
命令を保持する。一方、複数段の深さのI/Oポートに
ついてはこれに対応する複数段のレジスタを別に用意す
る。
【0152】但し、この手法は、各I/Oポートの深さ
が常に固定である場合には有効であるが、この深さがシ
ステムによって変動する場合等には不適である。この場
合には、例えば図25に示す構成を採用する。アドレス
指示手段470はI/Oアドレス設定手段472と深さ
設定手段474とを含む。I/Oアドレス設定手段47
2には、I/OポートのI/Oアドレスが設定され、深
さ設定手段474にはそのI/Oポートの深さ(段数)
が設定される。例えばI/Oアドレス0C10h、0C
11h、0C12hの深さが1段、2段、4段であった
場合を考える。するとI/Oアドレス設定手段474に
は0C10h、0C11h、0C12hが設定され、深
さ設定手段474にはこれらのI/Oアドレスに対応づ
けてその深さが設定される。アドレスコンペア手段47
6では、CPUから発行されるI/O命令のI/Oアド
レスとアドレス指示手段470からのI/Oアドレスが
比較される。I/Oアドレスが0C10hの時は深さが
1段であるためアドレスコントロール信号がディスエー
ブルされる。この場合にはI/O命令は図24(C)の
メモリ466に保持される。I/Oアドレスが0C11
h、0C12hの時は、各々の深さに応じたアドレスコ
ントロール信号がレジスタ部478に出力され、I/O
命令は、レジスタ部478内のレジスタに保持される。
以上の構成によれば、I/Oポートの深さがシステムに
よって変動する場合にもフレキシブルに対応できる。な
お図24(B)、図25に示すレジスタは、レジューム
時にその内容が保存される。
【0153】3.命令変換手段 [構成の説明]図26に命令変換手段416の構成の一
例を示し、図27、図28にはライトサイクル、リード
サイクルにおける動作を示す信号波形図を示す。この命
令変換手段416はマイクロコードメモリ570を含ん
でおり、このマイクロコードメモリ570から読み出し
たマイクロコード情報に基づいてエミュレート処理を実
現する。シーケンサ552はタイミング制御のための回
路であり、アドレスデコーダ560、セレクタ564等
に制御信号を出力すると共に、PCIバス上のステータ
ス・コマンド信号を受け付けたり出力バッファ554を
介してこれらの信号を制御する。アドレスラッチ55
6、データラッチ558は、CPU502からの命令に
含まれるアドレス・データをラッチするものである。ア
ドレスデコーダ560は、ラッチされたアドレスをデコ
ード変換し、アドレスデコーダ562は、マイクロコー
ドメモリ570から読み出されたエミュレーションアド
レスをデコードする。セレクタ564は、アドレスデコ
ーダ560、562の出力のいずれかを選択し、これを
メモリアドレスとしてマイクロコードメモリ570に出
力する。マイクロコードメモリ570は、ROM、RA
M等により構成され、入力されたメモリアドレス位置に
マイクロコード情報を記憶している。このマイクロコー
ド情報は、コマンド・データ生成(ビットデータ、ビッ
ト定義)・エミュレーションアドレスの情報を含む。
【0154】マイクロコードメモリ570から読み出さ
れたマイクロコード情報は、1stサイクル(例えば図
27のX1等)では第1のコードラッチ572にラッチ
され、2ndサイクル(例えば図27のY1等)では第
2のコードラッチ574にラッチされる。第1のコード
ラッチ572にラッチされたコマンド情報はデコーダ5
76を介してシーケンサ552に伝えられ、このコマン
ド情報に基づき回路全体の動作が決定される。また、第
1のコードラッチ572にラッチされたエミュレーショ
ンアドレス情報はアドレスデコーダ562に出力され、
これによりマイクロコードメモリ570のメモリアドレ
スが生成される。また、エミュレーションアドレス情報
は、セレクタ586、出力バッファ588を介してPC
Iバス上に出力され、これによりエミュレーションサイ
クルにおけるアドレスが与えられる。
【0155】第1、第2のコードラッチ572、574
にラッチされたデータ生成情報(ビットデータ、ビット
定義)は、ライトデータ生成部578、リードデータ生
成部582に出力される。ライトデータ生成部578
は、ビットデータ情報と、ビット定義情報と、CPUか
らライトデータと、エミュレーションで得られたデータ
とに基づいて、エミュレーションサイクルにおけるライ
トデータを生成する。また、リードデータ生成部582
は、ビットデータ情報と、ビット定義情報と、エミュレ
ーションで得られたデータとに基づいて、エミュレーシ
ョンサイクルにおけるリードデータを生成する。なお、
TMPレジスタ580、584は、データラッチ55
8、入力バッファ590からの入力データを一時的にラ
ッチするものである。
【0156】[動作の説明]次に、命令変換手段416
の動作について図27、図28の信号波形図及び図29
に示すフローチャートを用いて説明する。なおPCL
K、FRAME、AD、IRDY、TRDY、DEVS
EL等はPCIバス規格で使用される信号である。また
FRAMES、FRAMEV信号は、PCIブリッジ4
30より下のI/Oデバイス(シリアルコントローラ4
48等)、あるいはビデオコントローラ424、426
へのCPUからのI/O命令の伝達を制御するためのも
のである。またREQ、GNT、CPUGNTはバスア
ービトレーションを行うための信号である。
【0157】まずFRAME=L(図27のA1、図2
8のA3)か否かが判断され(図29のステップU
1)、CPUにより発行された命令(図27のB1、図
28のB3参照)が、I/Oリード・I/Oライト・割
り込みアクノリッジのいずれのサイクルを要求するもの
であるかが判断される(ステップU2)。これらのサイ
クルが要求された場合、マイクロコードメモリ570の
出力イネーブル信号MOE=Lとし、マイクロコードメ
モリ570にメモリアドレスを入力し(W1、W3及び
ステップU3)、マイクロコードメモリ570の1st
リードサイクルを開始する。この場合のメモリアドレス
MAは、CPUからのアドレス情報(B1、B3)をア
ドレスデコーダ560によりデコードすることにより得
られる。1stリードサイクル(X1、X3)により得
られたマイクロコード情報は、第1のコードラッチ57
2にラッチされる(ステップU4)。そして、ラッチさ
れたマイクロコード情報に含まれるコマンド情報はデコ
ーダ576を介してシーケンサ552に入力され、シー
ケンサ552は、このコマンド情報に基づいて2ndリ
ードサイクル(Y1、Y3)が必要か否かを判断する
(ステップU5)。必要と判断されたらメモリアドレス
MAを変更する処理をシーケンサ552の指示に基づき
セレクタ564が行う(ステップU6)。具体的には、
この変更処理は、1stリードサイクルで使用されたメ
モリアドレスのサイクルビット(図30(A)のビット
14)を0から1に変更することで実現される。2nd
リードサイクルで得られたマイクロコード情報は第2の
コードラッチ574にラッチされ、その後MOE=H、
MA=HI−Zにされる(ステップU8)。そして、第
1、第2のコードラッチ572、574にラッチされた
マイクロコード情報等に基づいて、エミュレーションサ
イクルにおけるアドレス、データ(N1、N3、O1、
R3)が生成される。
【0158】エミュレーションサイクルにおいては、第
1のコードラッチ572からアドレスデコーダ562を
介して入力されるエミュレーションアドレス情報がセレ
クタ564により選択され、マイクロコードメモリ57
0のメモリアドレスが生成される。即ち、本例では、エ
ミュレーションアドレス(N3)が、エミュレーション
サイクルにおけるマイクロコードメモリ570のメモリ
アドレスMA(X4)となる。2回目のエミュレーショ
ンサイクルが起動された場合にも、その時のエミュレー
ションアドレス(N4)がメモリアドレスMA(X5)
となる。命令変換手段416は、エミュレーションサイ
クルが必要なくなるまで以上の動作を繰り返す。この場
合、次のエミュレーションサイクルを起動するか否かは
後述するようにマイクロコード情報に含まれる継続ビッ
ト(図30(B)のビット30)で判断する。このよう
に本例によれば、2回目以降のエミュレーションサイク
ルにおけるメモリのアドレスは、前回に読み出されたマ
イクロコード情報に含まれるエミュレーションアドレス
情報により決められる。また、次のエミュレーションサ
イクルを起動するか否かは前回に読み出されたマイクロ
コード情報に含まれるコマンド情報(継続ビット)によ
り決められる。従って、マイクロコードメモリ570に
記憶されるエミュレーションアドレス情報及びコマンド
情報(継続ビット)を変えるだけ、エミュレーションア
ドレスの異なるエミュレーションサイクルを任意の回数
だけ起動させることができる。これにより複雑なエミュ
レーション処理を簡易に実現でき、複数互換における互
換性をより高めることができる。
【0159】[マイクロコード情報の説明]次に、図3
0(A)〜(F)を用いて、マイクロコードメモリ57
0に記憶されるマイクロコード情報について説明する。
図30(A)、(C)には、マイクロコードメモリ57
0に入力されるメモリアドレスのデータフォーマットが
示される。図30(A)は1stサイクル、図30
(C)は2ndサイクルのものであり、両者は、サイク
ルビット(ビット14)の値のみが異なる。EA3〜E
A0、A7〜A0は、CPUからの命令に含まれるアド
レス情報又はエミュレーションアドレス情報をデータ圧
縮することで得られるものである。また、オプションビ
ットOP0、OP1は、EA3〜EA0、A7〜A0が
同一の時に異なるマイクロコード情報を得たい場合に使
用するものである。即ち、EA3〜EA0、A7〜A0
が同一でも、このオプションビットを異ならせることに
より異なるメモリアドレスをマイクロコードメモリ57
0に出力することができ、これにより異なるマイクロコ
ード情報を得ることができる。サイクルビットは、1s
tサイクルと2ndサイクルを区別するためのビットで
あり、R/Wビットは、起動されるサイクルがリードサ
イクルか、ライトサイクルかを区別するためのビットで
ある。
【0160】1stサイクルで出力されるマイクロコー
ド情報は、図30(B)に示すように、コマンド・デー
タ生成(ビットデータ)・エミュレーションアドレスの
情報を含む。エミュレーションアドレス情報A15〜A
0、データ生成情報D7〜D0は、エミュレーションサ
イクルにおけるアドレス、データを得るためのものであ
る。即値ビットは、D7〜D0をエミュレーションデー
タとしてそのまま使用することを指示するビットであ
る。即ち、即値ビット=1となると、ライトデータ生成
部578は第1のコードラッチ572からのビットデー
タD7〜D0を選択する。これにより、セレクタ58
6、出力バッファ588を介してD7〜D0がエミュレ
ーションデータとしてPCIバス上に出力される。AD
ビットは、アドレスのみを変換することを指示するビッ
トであり、ADビット=1となると、エミュレーション
においてアドレス変換のみが行われ、CPUからのデー
タ等がそのままエミュレーションデータとして選択され
る。なお、この時にD7〜D0はCPUからのデータ等
をマスクするデータとして使用される。TMPWビット
は、TMPレジスタ580、584にデータを格納する
ことを指示するビットである。スルービットは、アドレ
ス及びデータを変換しないでそのまま出力することを指
示するビットである。無視ビットは、エミュレーション
サイクル自体を起動しないことを指示するビットであ
る。スルービット=1の場合には、システムバス上のI
/Oデバイス(シリアルコントローラ等)にCPUから
の命令がそのまま伝わる。これに対して、無視ビット=
1の場合には、FRAMESがマスクされているため、
これらのI/OデバイスにはCPUからの命令が伝わら
ない。これにより例えば98用のビデオコントローラ4
24のみに命令を伝えることが可能となる。INTAビ
ットは、割り込みアクノリッジサイクル用の特殊変換を
指示するビットである。継続ビットは、次のエミュレー
ションサイクルの起動を指示するビットであり、継続ビ
ット=1の場合には次のエミュレーションサイクルが起
動される。この継続ビットを使用すれば所望する回数だ
けエミュレーションサイクルを起動することが可能とな
る。R/Wビットは、起動するエミュレーションサイク
ルがリードサイクルかライトサイクルかを指示するビッ
トである。
【0161】図30(D)のビット定義情報は、図30
(B)のビットデータ情報D7〜D0と共にエミュレー
ションデータの生成処理に使用される。このデータ生成
処理は、2nd(メモリーリード)サイクル終了後に行
われる。そして、2ndサイクルを起動するか否かは図
30(B)のコマンド情報の中のビット24、25、2
7、28により判断され、これらの全てのビットが0の
場合に起動される。これは、例えば即値ビット=1の時
はD7〜D0がそのままエミュレーションデータとなる
ため、2ndサイクルを起動する必要が無いからであ
る。このように本例では、1stサイクルでリードされ
たコマンド情報に基づいて2ndサイクルを起動するか
否かを判断している。従って無駄なメモリーリードサイ
クルの起動が防止される。また本例では、データ生成情
報を、1stサイクルで読み出されるビットデータ情報
と2ndサイクルで読み出されるビット定義情報とに分
けている。これにより1st及び2ndサイクルのマイ
クロコード情報を共に32ビットとすることができ、マ
イクロコードメモリ570の出力バスを32ビットバス
とすることができる。これによりメモリ制御を簡易にで
き、ハードウェアを小規模化できる。
【0162】次に、エミュレーションデータのビット7
を例にとり、データ生成処理を説明する。例えばビット
データD7=1の場合には図30(E)の表が使用され
る。即ち、ビット7の定義情報(図30(D)のビット
31〜28)が(0000)の場合には、エミュレーシ
ョンデータのビット7にはCPUからのライトデータ又
はエミュレーションのリードデータのビット0が割り当
てられる。同様に定義情報が(0001)の時にはビッ
ト1が割り当てられる。また、定義情報が(1000)
の時、即ち反転ビットが1の時には、ビット0を反転し
たものがビット7に割り当てられる。なお、CPUのラ
イトデータを割り当てるかエミュレーションのリードデ
ータを割り当てるかは、ライトサイクルかリードサイク
ルかで判断する。一方、D7=0の場合には図30
(F)が使用され、定義情報が(0000)の時にはビ
ット7は0に固定され(0001)の時には1に固定さ
れる。また、定義情報が(0010)の時には前回に生
成されたエミュレーションデータを割り当てる。定義情
報が(0011)〜(1111)の場合の処理は図30
(F)に示す通りである。なお、図30(F)のデコー
ド展開は、パラレルコントローラにおいてモード設定を
行う場合に使用される。
【0163】[具体例1]次に本例でシリアルコントロ
ーラについてのエミュレート処理を行う場合の具体例を
説明する。シリアルコントローラとして、98機ではイ
ンテル社製の8251Aを使用しAT機ではナショナル
セミコンダクタ社製のNS16550A(8250A)
を使用している。また、これらのシリアルコントローラ
のI/O(ポート)アドレスは、98機では0030h
〜0032hでありAT機では03F8h〜03FFh
である。98機では、シリアルコントローラのステータ
スレジスタのI/Oアドレスは0032hである。そし
て、図31に示すように、DSRは、98機では003
2hのビット7に、AT機では03FEhのビット5に
配置される。また、SYNC/BRKは98機では00
32hのビット6にAT機では03FDhのビット7に
配置される。従って、0032hのI/Oポートがリー
ドされた場合、サブコントローラ410は、03FEh
と03FDhの2つのI/Oポートをリードする必要が
ある。この時の手順を図32、図33を用いて説明す
る。
【0164】(1)CPUにより0032hがリードさ
れると(図32のA1参照)、FRAME信号がアサー
トされ、マイクロコードメモリ570の1st(メモリ
リード)サイクルが起動される。リードサイクルの時は
図30(A)のビット15(R/Wビット)=1とな
る。従ってCPUからのアドレス0032hはアドレス
デコーダ560によりデコードされ、メモリアドレスは
8032hとなる(図32のB1参照)。このメモリア
ドレスには、C07F03FDhというマイクロコード
情報が記憶されている(C1参照)。コマンド情報がC
0hであるためビット24、25、27、28(図30
(B)参照)は共に0であり、データ生成が必要である
と判断される。これにより、2ndサイクルが起動され
る。2ndサイクルのメモリアドレスは、1stサイク
ルのメモリアドレス8032hのビット14(サイクル
ビット)が1となるだけなのでC032hとなる(D1
参照)。このアドレスには07312605hというデ
ータが記憶されている(E1参照)。以上のようにして
得られたデータCO7F03FDh、07312605
hは第1、第2のコードラッチ572、574にラッチ
される。
【0165】(2)PCIバス上には0032hのI/
Oアドレスを持つターゲットが存在しないため、DEV
SEL信号はアサートされない。この結果、PCIブリ
ッジ430がサブトラクトのタイミングでDEVSEL
信号及びSTOP信号をアサートすると、CPUにより
起動されたPCIサイクルはリトライで終了する。
【0166】(3)今度は、サブコントローラ410が
マスター、PCIブリッジ430がターゲットとなって
エミュレーションサイクルが開始される(F1参照)。
1stサイクルでは、第1のコードラッチ572にラッ
チされているデータC07F03FDh(C1参照)の
コマンド情報から、リードサイクル(図30(B)のビ
ット31=1)であり、次のエミュレーションサイクル
があり(ビット30=1)、エミュレーションアドレス
は03FDh(ビット15〜0)であることがわかる。
この03FDhは、図31に示すように、98機の00
32hに対応するAT機のI/Oアドレスである。エミ
ュレーションデータの生成は、lstサイクルでリード
されたビットデータ情報7Fh(C1参照)、2ndサ
イクルでリードされたビット定義情報07312605
h(E1参照)と、3FDhのリード動作により読み出
されたエミュレーションリードデータ61h(G1参
照)とにより行われる。即ち、ビットデータ情報、ビッ
ト定義情報は第1、第2のコードラッチ572、574
から、エミュレーションリードデータは入力バッファ5
90からリードデータ生成部582に入力される。リー
ドデータ生成部582はこれらの情報からエミュレーシ
ョンデータを生成する。図33にはその生成方法が示さ
れる。ビット7は、ビットデータ情報が0でありビット
定義情報が0であるため、図30(F)の表より0が割
り当てられる。また、ビット6〜0は、ビットデータ情
報が1でありビット定義情報が7、3、1、2、6、
0、5であるため、図30(E)の表より、エミュレー
ションリードデータ61hのビット7、3、1、2、
6、0、5が割り当てられる。これにより、生成される
エミュレーションデータは07hとなる。この07hは
リードデータ生成部582に保持され、次のエミュレー
ションデータの生成のために使用される。
【0167】(4)上記の(3)の動作と同時に、次の
エミュレーションサイクルのためのマイクロコードメモ
リのリードサイクルが起動されている。この時のメモリ
アドレス81FDh(H1参照)は、エミュレーション
アドレス03FDh(I1参照)から生成される。この
場合、本例ではメモリアドレスを上位8ビットを4ビッ
ト(図30(A)のビットEA3〜EA0)にエンコー
ドしてマイクロコードメモリの容量を節約している。こ
のため、エミュレーションアドレス03FDhの上位バ
イト03hは、1hにエンコードされ、この結果、メモ
リアドレスは81FDhになる。このアドレスには80
8003FEhというデータが記憶されている(J1参
照)。コマンド情報は80hでありビット24、25、
27、28が共に0であるため、エミュレーションデー
タの生成が必要であり2ndサイクルが起動される。こ
の時のメモリアドレスはC1FDhとなる(K1参
照)。このアドレスには52222222hというデー
タが記憶されている(L1参照)。
【0168】(5)次に、サブコントローラ410が2
回目のエミュレーションサイクルを起動する。8080
03FEh(J1参照)のコマンド情報80hから、こ
のサイクルは最後のエミュレーションサイクル(ビット
30=0)であり、I/Oアドレス03FEh(ビット
15〜0)に対するリードサイクル(ビット31=1)
であるとわかる。また、エミュレーションデータは、ビ
ットデータ情報80h(J1参照)と、ビット定義情報
52222222h(L1参照)と、I/Oアドレス0
3FEhからのエミュレーションリードデータ20h
(M1参照)と、前回に生成されたエミュレーションデ
ータ07hとから生成される。図33にはその生成方法
が示される。ビット7は、ビットデータ情報が1でビッ
ト定義情報が5(0101)であるため、図30(E)
の表より、エミュレーションリードデータ20hのビッ
ト5が割り当てられる。また、ビット6〜0は、ビット
データ情報が0でビット定義情報が2(0010)であ
るため、図30(F)の表より、前回に生成されたエミ
ュレーションデータ07hのビット6〜0が割り当てら
れる。この07hは、リードデータ生成部582に保持
されていたものである。これにより、エミュレーション
データ87hが生成される。
【0169】(6)上記(5)の2回目のエミュレーシ
ョンサイクルが終了するとサブコントローラ410はR
EQ信号をディアサートし、CPUにバスのアクセス権
が譲られる。これにより、CPUは0032h(N1参
照)のリード命令のリトライを行う。このリード命令に
対し、サブコントローラ410は、上記(5)で得られ
たエミュレーションデータ87h(O1参照)を出力す
る。以上の処理により、CPUはエミュレートされたデ
ータをリードすることが可能となる。
【0170】[具体例2]98機では割り込みコントロ
ーラとして2個の8259Aを使用しており、マスター
となる割り込みコントローラのI/Oアドレスは000
0h、0002hとなっている。一方、AT機でも2個
の8259Aを使用しており、マスターのI/Oアドレ
スは0020h、0021hとなっている。また、図3
4(A)に示すように、98機とAT機とでは割り込み
線(割り込みベクトル)に対する割り込み要因の割り当
てが異なっている。そして、AT機では図21に示すよ
うに割り込みコントローラ432、434はPCIブリ
ッジ430(SIO等)に内蔵されている。このため割
り込み線に対する割り込み要因の割り当て変更をハード
ウェア変更により実現することはできない。そこで、I
RQ2とIRQ7を交換(スレーブの位置を交換)する
エミュレート処理が必要になる。
【0171】図34(B)に示すように、8259Aで
は同じI/Oアドレスであっても、その時の状態により
アクセスされるレジスタ等が異なる。例えば、I/Oア
ドレス0000h(98機の場合)に対してリード動作
を行っても、その時の状態によりIRRレジスタに対す
るアクセスになったりISRに対するアクセスになった
りする。また、リセット直後はイニシャライズシーケン
スを行なう必要があり、この時、4種類のICW(Init
ialization Command Word)1〜4を順番に設定する。
また、図34(B)においてIRR、ISRは現在の割
り込みの状態を知らせるための、IMRは割り込みマス
クを設定するためのレジスタである。また、OCW(Op
eration Command Word)1〜3は、イニシャライズシー
ケンス後に8259Aに対して送ることができるコマン
ドである。割り込み線に対する割り込み要因の割り当て
が98機とAT機とで異なることに起因してIRQ2と
IRQ7の交換処理をしなければならないのは、ICW
3、OCW1、OCW2、IRR、ISR、IMRの6
つである。この時の手順を図35、図36を用いて説明
する。
【0172】(1)リセット後は8259AはICW1
を受け付ける状態になっており、このため、アプリケー
ションプログラム(又はOS)はまず0000hにIC
W1をライトする。この時のCPUからのライトデータ
は11hであり、98機でもAT機でも同じである。ま
た、この時の1stサイクルのメモリアドレスは000
0hであり、このアドレスには00FF0020hとい
うデータが記憶されている(図35のP1参照)。この
時、コマンド情報が00hであるため2ndサイクルが
起動され、2ndサイクルのメモリアドレスは4000
hとなる。このメモリアドレスには76543210h
というデータが記憶されている(図35のQ1参照)。
この時のエミュレーションデータの生成は、第1のコー
ドラッチ372からのビットデータ情報FFhと、第2
のコードラッチ374からのビット定義情報76543
210hと、データラッチ358からのCPUライトデ
ータ11hとに基づき、ライトデータ生成部378によ
り行われる。この場合、図36に示すようにビットデー
タ情報は全て1であり、ビット定義情報7、6、5、
4、3、2、1、0である。従って、図36に示すよう
にエミュレーションデータはCPUのライトデータと全
く同一になる。従って、アドレスのみが0020hに変
換され、CPUのライトデータと同一のエミュレーショ
ンデータ11hがライトされる(図35のR1参照)。
即ち、ICW1についてはIRQ2とIRQ7の交換処
理が必要ないためI/Oアドレスのみが変換される。
【0173】(2)ICW1が設定されると、アプリケ
ーションプログラムは次にICW2の設定を行う。CP
Uのライトアドレスは0002hであり、データは08
hであある。この時のメモリアドレスは0002hで、
得られるデータは02FF0021hである。コマンド
情報は02hでありADビット(図30(B)のビット
25)が1であるため、アドレス変換のみを行う。この
ため2ndサイクルは起動されない。これにより、エミ
ュレーションサイクルでは0021hのI/Oアドレス
に08hのデータがライトされる(図35のS1参
照)。このように、本例ではマイクロコードメモリのリ
ードのサイクルを2回に分け、1回目に読み出されたマ
イクロコード情報に含まれるコマンド情報(AD・即値
・スルー・無視ビット)に基づき2回目のメモリリード
サイクルを起動するか否かを判断しているため、無駄な
メモリーリードサイクルの起動が防止される。即ち上記
(1)では、アドレスのみ変更しデータは変更しないと
いう処理を行うのに2回のメモリリードサイクルを必要
としたが、(2)ではADビットを用いることでこれを
1回のメモリリードサイクルで済ましている。
【0174】(3)次に、ICW3の設定を行う。IC
W3はスレーブ位置を決めるもので、98用のアプリケ
ーションプログラムは0002hに80hをライトして
くる。これは、ICW3ではビット7=1(80h)と
することでスレーブの位置をIRQ7に設定できるから
である。しかしながら、前述のようにAT機ではスレー
ブ位置はIRQ2であり(図34(A)参照)、ハード
ウェア変更によりこれを変えることはできない。そこ
で、ICW3の設定の際に04h(ビット2=1)をラ
イトするエミュレート処理が必要になる。この時のメモ
リアドレスは0002hである。しかし、上記(2)に
おいてICW2を設定する時のアドレスも0002hと
なっている。従って、メモリアドレスを上記(2)と同
じ0002hにすると、同じマイクロコード情報が読み
出されてしまい、ICW2、ICW3に対するエミュレ
ーション処理を区別できなくなる。そこで、この場合に
オプションビット(図30(A)のビット12、13)
を用いる。具体的には、OP1=1としメモリアドレス
として2002hを生成し、このメモリアドレスに01
040021hというデータを記憶しておく。するとコ
マンド情報が01hであり即値ビットが1となるため、
データ生成情報D7〜D0がそのままエミュレーション
データとなる。これにより、ビットデータ情報の04h
がアドレス0021hにそのままライトされる(図35
のT1参照)。また、2ndサイクルは起動されない。
【0175】(4)イニシャライズシーケンスの最後は
ICW4の設定である。ICW4のI/Oアドレスは0
002hである。しかし、ライトデータは98機では1
Dhであり、AT機ではビット3=0、ビット2=0と
なる(ノンバッファモードにするため)。また、この場
合のメモリアドレスもICW2、ICW3のエミュレー
ションに使用されるメモリアドレスと区別する必要があ
り、具体的にはOP1=1、OP0=1としメモリアド
レス3002hでリード動作を行う。このメモリアドレ
スには02F30021hというデータが記憶されてい
る。この場合、コマンド情報が02hでありADビット
=1となり、またビットデータ情報D7〜D0はF3h
となる。従って、図36に示すように、ビット7〜4及
びビット1、0がCPUライトデータと同一で、ビット
3、2が0となるエミュレーションデータが生成され
る。これにより、エミュレーションサイクルにおいてI
/Oアドレス0021hにデータ11hがライトされる
ことになる(図35のU1参照)。
【0176】(5)この後、8259Aは通常の動作モ
ードに入る。OCW1は、割り込みのマスクを解除する
コマンドであり、例えばスレーブの割り込みを許可する
には0002hに7Fhをライトする必要がある。この
時はOP0=1とし、メモリアドレスを1002hとす
る。このメモリアドレスには00FF0021hという
データが記憶されている。この場合、コマンド情報が0
0hであるため2ndサイクルが起動される。2ndサ
イクルのメモリアドレスは5002hであり、記憶され
ているデータは26543710hである。ビットデー
タ情報はFFhでありビット定義情報は2654371
0hであるため、図36に示すように、ビット2とビッ
ト7を交換する処理が行われる。これにより0021h
にFBhがライトされる(図35のV1参照)。OCW
1では、ビット7=0でIRQ7の割り込みが許可され
ビット2=0でIRQ2の割り込みが許可される。スレ
ーブの割り込みを許可する処理を行う場合、98用のア
プリケーションプログラムは、命令の発行先は98機で
あると考えデータ7Fh(ビット7=0でIRQ7を許
可する)をライトする。すると、本例のエミュレートシ
ステムがこの7FhをFBh(ビット2=0でIRQ2
を許可する)に変換しAT機のハードウェアに伝える。
これにより、98用のアプリケーションプログラムでA
T機を動作させることができ、互換性を維持できる。
【0177】(6)OCW2は、割り込み処理の中でE
OI(End Of Interrupt)を発行する場合に使われるコ
マンドである。スレーブに対しEOIを発行するとき、
アプリケーションプログラムはI/Oアドレス0000
hにデータ67hをライトする。これは、IRQ7の割
り込みを終了させる命令となるが、AT機においてはI
RQ2の割り込みを終了させなければならない。従って
データを62hに変更する必要がある。1stサイクル
のメモリアドレスは上記(1)と同じ0000hであ
り、得られるデータは00FF0020hとなる。一
方、2ndサイクルではOP0=1としメモリアドレス
は5000hとなり、得られるデータは76543A1
8hとなる。ビットデータ情報はFFhなので図30
(E)の表を使用する。すると、図36に示すようにエ
ミュレーションデータのビット7〜3、1にはCPUの
ライトデータがそのまま割り当てられる。一方、ビット
2、0には、反転ビット=1となるためCPUのライト
データのビット2、0を反転したデータが割り当てられ
る。以上よりI/Oアドレス0020hに62hがライ
トされる(図35のW1参照)。
【0178】(7)IMRはOCW1によりライトした
マスク情報をリードするためのポートであり、そのI/
Oアドレスは0002hである。このためメモリアドレ
スは8002hとなり、得られるデータは80FF00
21hとなる。また、2ndサイクルのメモリアドレス
はC002hとなり、得られるデータは2654371
0hとなる。コマンド情報は80hとなるためリードサ
イクルとなり、I/Oアドレス0021hでリードされ
たデータFBh(図35のX1参照)がリードデータ生
成部382に入力される。このリードデータFBhと、
ビットデータ情報FFhと、ビット定義情報26543
710hとによりエミュレーションデータが生成され
る。この場合は、図36に示すようにビット7とビット
2を交換する処理が行われ、エミュレーションデータ7
Fhが得られる。そして、リトライの動作の際にCPU
がこの7Fhをリードすることになる(図35のY1参
照)。
【0179】IRR、ISRは割り込みのリクエスト情
報、サービス情報をリードするためのボートで変換処理
の方法はIMRの場合と同様である。以上ようにしてA
T機において98用のアプリケーションプログラムを動
作させることが可能になる。
【0180】4.キーボード・マウスコントローラのエ
ミュレーション キーボードからの入力データ(以下、キーボードデータ
と呼ぶ)、マウスからの入力データ(以下、マウスデー
タと呼ぶ)を、エミュレート変換する処理は大変複雑で
ある。そこで、この場合にはマイクロコードメモリ等を
用いずにSMI処理によりソフトウエア的にエミュレー
ト変換を行う。
【0181】まずキーボードデータの読み出しのエミュ
レート処理について説明する。AT機では、図37
(A)に示すように、キーボード・マウスコントローラ
448として1チップマイコンである8042が使用さ
れており、これとキーボード594内の1チップマイコ
ン595との間でシリアル通信が行われる。CPUとキ
ーボード・マウスコントローラ448との間では2つの
ポートを使用してデータ通信を行っている。これらのポ
ートのI/Oアドレスは0060h、0064hであ
り、0060hのポートはデータポートであり0064
hのポートはコマンド及びステータスレジスタのポート
である。一方、98機では、図37(B)に示すよう
に、キーボードコントローラ598としてシリアルコン
トローラである8251Aが使用されており、これとキ
ーボード600内の1チップマイコン601との間でシ
リアル通信が行われる。CPUとキーボードコントロー
ラ598との間でも2つのI/Oボートを使用してデー
タ通信を行っているが、8042のコマンドと8251
Aのコマンドとは全く異なっている。AT機でも98機
でも共に、キーボードのキーが押されると割り込みが発
生されCPUにリード命令発行の依頼が通知される。C
PUによりデータがリードされると割り込みはクリアさ
れる。
【0182】次に、本例の構成及び動作について図38
を用いて説明する。ATモードの時にはスイッチ手段6
10はオンとなっており、KBIRQの割り込みが発生
すると割り込みコントローラ432、434の制御によ
りCPU400に対してINTR割り込みが発生する。
一方、98モードの時にはスイッチ手段610はオフと
なっており、KBIRQ割り込みが発生するとサブコン
トローラ410がこれを受け付け、CPU400に対し
てSMI割り込みを発生する。SMIにより起動された
SMMハンドラ(SMIBIOS)501は、SMIの
要因がキーボードと判断するとキーボード・マウスコン
トローラ448からキーボードデータをリードする。こ
れによりキーボード・マウスコントローラ448からの
割り込みKBIRQはクリアーされる。AT機と98機
とでは、キーボードデータ(メイクデータ、ブレークデ
ータ、キーコードテーブル等)のフォーマットが全く異
なっている。このため、SMMハンドラ501は、キー
ボード・マウスコントローラ448からリードしたデー
タを所定の変換テーブルを用いて変換する。次に、SM
Mハンドラ501は、変換したデータをサブコントロー
ラ410内の第1のレジスタ614にライトする。第1
のレジスタ614にデータがライトされると、サブコン
トローラ410はPCIブリッジ430に対して割り込
みKBIRQ’を発生する。これによりPCIブリッジ
430内の割り込みコントローラがINTR割り込みを
発生しCPU400に対してリード命令発行の依頼を通
知する。この時、SMI処理は終了している。CPU4
00(98用のアプリケーションプログラム)は、IN
TR割り込みが発生したため、キーボード・マウスコン
トローラ448のデータレジスタをリードしにゆく。こ
のデータレジスタのI/Oアドレスはサブコントローラ
410により第1のレジスタ614のI/Oアドレスに
変換されている。これにより、98用に変換されたキー
ボードデータがCPU400によりリードされる。第1
のレジスタ614がリードされると割り込みKBIR
Q’はクリアーされる。
【0183】以上のようにして、AT機のI/Oデバイ
ス(デバイス制御手段)であるキーボード・マウスコン
トローラ448から、98用に変換されたキーボードデ
ータを読み出される。
【0184】次にマウスデータの読み出しに関するエミ
ュレート処理について説明する。AT機では、図37
(A)に示すように、キーボード・マウスコントローラ
448とマウス596側の1チップマイコン597との
間でシリアル通信が行われる。そして、操作者がマウス
を動かすとマウスIRQの割り込みが発生する。98機
では、マウス(バスマウス)608は移動量カウンタ6
02に接続され、移動量カウンタ602で移動量がカウ
ントされ、そのカウント値がマウスインターフェース
(8255A)606を介してCPU400に伝えられ
る。また、タイマ604は所定間隔(8msec〜64
msec)でマウスIRQの割り込みを発生する。する
と、CPU400は、割り込みが発生する毎に上記所定
間隔内に移動量カウンタ602でカウントされたカウン
ト数を読みにゆく。これによりマウスの移動量がCPU
400に伝えられる。
【0185】次に、マウスデータ変換を行う場合の本例
の動作を説明する。スイッチ手段612は、ATモード
の時はオンしているが98モードの時はオフしている。
そして、マウス596が移動しキーボード・マウスコン
トローラ448からマウスIRQの割り込みが発生する
と、サブコントローラ410がこれを受け付けCPU4
00に対してSMI割り込みを発生する。SMIにより
起動されたSMMハンドラ501は、SMIの要因がマ
ウスと判断するとキーボード・マウスコントローラ44
8からマウスデータをリードする。これによりマウスI
RQの割り込みはクリアーされる。次にSMMハンドラ
501は、マウスデータを98用にデータ変換する。即
ち、図39(A)に示すようにAT機におけるマウスデ
ータは、各々8ビットのX情報・Y情報・ボタン情報か
ら構成されている。これに対して98機では、図39
(B)に示すように、4ビットを1組としたデータフォ
ーマットとなっている。従って、98用のアプリケーシ
ョンプログラムがリードできるようにフォーマットに変
換する処理が必要になる。この他、マウスの感度に関す
る変換処理も必要である。次に、SMMハンドラ501
は、変換したデータをサブコントローラ410内の第2
のレジスタ616にライトする。また、サブコントロー
ラ410内にはタイマ617が内蔵されており、このタ
イマ617により所定間隔毎にマウスIRQ’の割り込
みが発生される。この割り込みによりCPU400(9
8用のアプリケーションプログラム)は、マウスの移動
量をリードしにゆくが、I/Oアドレスが変換されてい
るため第2のレジスタ616に格納されているデータが
リードされる。これにより98用に変換されたマウスデ
ータがCPU400によりリードされることになる。
【0186】(第3の実施例)第3の実施例は、メモリ
領域を切り替えずに異なる環境間の切り替えを行う実施
例である。本例では、マイクロソフト社製のWindo
ws95のシングルMS−DOSモードを利用して環境
の切り替えを行う場合について説明する。同じくマイク
ロソフト社製のWindows3.1にはDOS互換ボ
ックスと呼ばれるものが用意されていた。しかしながら
このDOS互換ボックスでは、コンベンショナルメモリ
の全ての領域をDOS環境に解放しないこと等に起因し
て、動作しないDOSアプリケーションプログラムがあ
ったり、動作しても速度が非常に遅くなる等の問題があ
った。この問題は、特にゲームソフトにおいて顕著であ
り、このためユーザは、仮想立ち上げディスク等を用意
してゲームソフトを起動する必要があり不便であった。
これに対してWindows95のシングルMS−DO
Sモードでは、コンベンショナルメモリの全てをDOS
環境に解放するため、上記のような問題が生じない。
【0187】まずシングルMS−DOSモードについて
説明する。このモードに移行するため、ユーザはまず起
動したいアプリケーションプログラムのアイコンをクリ
ックし、プロパティ設定画面を起動する。そしてユーザ
がDOSモードを選択し、CONFIG.SYS、AU
TOEXEC.BATの内容を記述すると、CPUがリ
セットされる。するとWindows95がMS−DO
Sをロードした後、DOSアプリケーションプログラム
を起動する。そしてアプリケーションプログラム終了後
は、再びCPUをリセットし、Windows95に戻
る。
【0188】本例では、このシングルMS−DOSモー
ドを利用し、AT系で立ち上がったWindows95
から98アプリケーションプログラムを直接起動すると
共に98アプリケーションプログラム終了後に自動的に
Windows95に戻るようにしている。図40〜図
42に本例のフローチャートを示し、図44(A)〜
(D)に本例におけるメモリマップ設定の変化を示す。
【0189】Windows95が動作している際に
(図40のステップA1)、ユーザがプロパティ画面で
CONFIG.SYS、AUTOEXEC.BATを指
定しシングルMS−DOSモードが起動すると(ステッ
プA2)、Windows95は警告メッセージを画面
に出力する(ステップA3)。この時のメモリマップ設
定は図44(A)のようになっており、Windows
95本体がコンベンショナルメモリ領域に常駐してい
る。また、この時、本例では図45(A)に示すような
AUTOEXEC.BATを用意する。図45(A)の
700に示すように98モードで実行する部分について
は各々のコマンドの先頭に@を挿入し、ATモードの時
にこの部分が実行されないようにしている。AT環境で
コマンドを認識させない手法は、上記に限られるもので
はなく、例えば@以外の記号を使うこともできる。
【0190】ユーザが画面の特定部分をクリックして実
行を承諾すると(ステップA4)、図44(A)の75
0に示すようにWindows95は、コンベンショナ
ルメモリに常駐するWindows95の本体を別領域
に退避する(ステップA5)。その後、Windows
95がCPUに対してソフトウェアリセットを発行する
(ステップA6)。これにより、図44(B)に示すよ
うに、コンベンショナルメモリの全て領域が解放され
る。
【0191】次にWindows95はシングルMS−
DOSモードに入り(図41のステップB1)、CON
FIG.SYSが読み込まれAUTOEXEC.BAT
が実行される(ステップB2)。図45(B)に、この
時に読み込まれるAUTOEXEC.BATの内容を示
す。所定のコマンドが、704に示す位置に、シングル
MS−DOSモードに入る際にWindows95によ
り追加される。704の位置に挿入されたコマンドが実
行されることで、図44(C)の752に示すように、
MS−DOSのCOMMAND.COM等がコンベンシ
ョナルメモリの例えば0〜17FFFhの領域にロード
され、シングルMS−DOSモードの環境が整う。
【0192】次に図45(B)に示すAUTOEXE
C.BAT内の706に示すコマンド部分の実行が開始
されるが、この部分には@が施されているためこの部分
のコマンドは実行(認識)されず、708に示すコマン
ド「START98」が実行される。この「START
98」によりSMIが発行され(図41のステップB
3)、SMIハンドラ(システム管理手段)が起動し9
8モードへの移行処理が開始される。
【0193】さて98モードに移行する際に問題になる
のは0〜17FFFhに駐在するAT系のMS−DOS
本体の存在である。このAT系MS−DOS本体の存在
により、98アプリケーションプログラムが動作しなか
ったり、その動作が極めて遅くなったりする問題が生じ
る。本例ではこれを回避するために、図44(C)の7
54に示すようにAT系MS−DOS本体が存在する0
〜17FFFhの96KBの領域を裏バンクに退避する
と共に、756に示すようにA8000h〜BFFFF
hの裏バンクメモリをコンベンショナルメモリの0〜1
7FFFhにマッピングする。これによりコンベンショ
ナルメモリの全ての領域が解放され、アプリケーション
プログラムが動作不能となる等の問題を回避できる。こ
こでAT系MS−DOS本体を裏バンクに退避するの
は、98モードからATモードに再び戻った際に、AT
系MS−DOS本体が必要となるからである。またA8
000h〜BFFFFhの領域は、論理アドレスにおい
てはVRAM等に使用されているが、物理的にはメイン
メモリであるDRAM等が存在する。従ってこの領域の
裏バンクメモリをコンベンショナルメモリ領域に出して
も何ら支障はない。もちろん、コンベンショナルメモリ
領域に出す領域は、この領域以外でも空き領域であれば
どのような領域でもよい。
【0194】次にエミュレーション機能がイネーブルさ
れてI/Oエミュレーションが行われると共に、メモリ
マップ、ビデオの切り替え等が行われる(ステップB
5、B7)。また再度ATモードに戻るときのためにS
MRAM中にあるCPUステートデータが別領域に退避
される(ステップB7)。このようにして98モード移
行のための全ての設定が行われると、CPUに対してソ
フトウエアリセットが発行される(ステップB8)。以
上により図44(D)に示すようなメモリマップ設定の
98環境に切り替わる。
【0195】次に98モードで98系MS−DOS又は
BASIC等がブートされる(図42のステップC
1)。MS−DOSがブートされた場合には、退避され
た96KBのメモリ中等から、98モードでのCONF
IG.SYS、AUTOEXEC.BAT等がブートデ
バイスにコピーされ、98アプリケーションプログラム
が実行される(ステップC2、C3)。具体的には図4
5(B)において、706に示す部分が切り取られ、@
を削除することで図45(C)に示すようなAUTOE
XEC.BATが作成される。そして98モードにおい
ては、このAUTOEXEC.BATによりアプリケー
ションプログラムが起動する。このAUTOEXEC.
BATは、図45(C)の710に示すように、起動ア
プリケーションプログラム名が入れられて作成されてい
る。
【0196】次に、アプリケーションプログラムが終了
し図45(C)の712に示す「END98」コマンド
が実行、又はユーザーが98モードを終了させるための
特別の終了コマンドが入力実行、又は特定キー(キーコ
ンビネーション等)入力による終了指示が実行される
と、SMIが発行する(ステップC4、C5)。すると
SMIハンドラ−が起動し、退避されていたAT系のC
PUステートデータがSMRAMにコピーされると共
に、メモリマップ、ビデオの切り替え、エミュレーショ
ン機能のディスエーブルが行われる(ステップC6〜C
8)。次に図44(D)の758に示すように、退避さ
れた96KBのメモリが元に戻され、RSM命令が発行
される(ステップC9、C10)。以上によりAT系M
S−DOSの環境に戻る。そしてAUTOEXEC.B
ATのSMI発行命令の次のコマンドが実行される(図
43のステップD1)。具体的には図45(A)の71
4に示す「START98」コマンドの次の「EXI
T」コマンド(716に示すコマンド)が実行される。
この「EXIT」コマンドによりWindows95
は、CPUに対してソフトリセットを発行し、Wind
ows95は元の状態に戻る(ステップD2、D3)。
本例によれば、Windows95は、98モードに移
行したことを全く認識せず、単にAT系MS−DOSに
移行して戻ってきたと認識する。そしてパソコンを操作
するユーザも、単にWindows95でのアイコンを
クリック等するだけで、異なる環境である98モードで
のアプリケーションプログラムを起動できることにな
る。
【0197】以上のように第3の実施例によれば、第1
の実施例等のようなメモリ領域の切り替えを行わなくて
も、異なる環境をスムーズに切り替えることが可能とな
る。
【0198】なお、本発明は上記実施例に限定されるも
のではなく、本発明の要旨の範囲内で種々の変形実施が
可能である。
【0199】例えば上記実施例では、ATモードと98
モードとを有する複数互換機を主に例にとり説明した。
しかしながら本発明によれば、これ以外にも、ATモー
ドと、アップル社製のマッキントッシュコンピュータの
モード(以下、マックモードと呼ぶ)とを有するもの、
98モードとマックモードとを有するもの、ATモード
と98モードとマックモードとを有するもの、あるいは
これら以外のコンピュータアーキテクチャのモードを有
するもの等、種々の複数互換機を実現できる。
【0200】また本発明における複数の環境は、異なる
複数のコンピュータアーキテクチャの情報処理装置(例
えばAT機と98機)での環境のみならず、同一のコン
ピュータアーキテクチャの情報処理装置での複数の環境
も含む。例えば同一のコンピュータアーキテクチャのA
T機においても、マイクロソフト社製のWindows
95と、IBM社製のOS/2(OS/2 Warp
Version3)とでは環境が異なり、このような同
一ハードウェアにおける異なる複数の環境の下でも本発
明の原理は適用できる。この場合には、例えばWind
ows95用のメモリ領域とOS/2用のメモリ領域と
を用意し、環境毎にメモリ領域を割り当てれば、異なる
環境間での迅速な切り替え処理が可能となる。また本発
明によれば、例えばWindows95のシングルMS
−DOSモードを利用して、98アプリケーションプロ
グラムではなく、OS/2等のアプリケーションプログ
ラムを起動することも可能となる。また例えばWind
ows95と、Windows95でサポートされてい
ない古いバージョンのMS−DOS及びそのアプリケー
ションプログラムとの間においても、本発明の原理を用
いれば、自由に環境を切り替えたり、これらのMS−D
OS及びアプリケーションプログラムをWindows
95から起動したりすることが可能となる。またWin
dows95とOS/2とを両方起動している際に、W
indows95が暴走した場合に、Windows9
5のみをリセットすることもでき、これにより非常に利
便性の高いシステムを提供できることになる。
【0201】また上記実施例のようにCPUとメモリコ
ントローラを用いてシステム毎のメモリマップを用意し
てCPUの状態を保存できるようにしておけば、I/O
デバイスなどの回路をシステム毎に適合するものをそれ
ぞれ用意するだけで複数の環境に対応する複数のシステ
ムでパソコンを動かすことができる。I/Oデバイスと
して各システム毎に使用できる拡張スロットを用意して
おけばどの様な環境にも対処できる。しかし、コストや
スペース的な面から全ての拡張スロットを準備しておく
ことは不可能なので、例えば、図1および2に示すよう
に、PCIブリッジ50やPCMCIAインタフェース
55およびPCMCIAスロット56を用意しておけば
良い。これらのインタフェースに対してI/Oアドレス
変換回路を設けてシステム毎に切り替えるようにしてお
けば各システムのI/Oマップの違いは自由に設定でき
るので、拡張スロットの数を増やさなくてもシステム間
の相違を吸収することができる。本実施例では、PCI
ブリッジ50をオプションボードの接続用として設けて
あるが、PCIブリッジを介してバスを設定しても勿論
良い。さらに、PCI、PCMCIA共に、対応するボ
ードの設定はプラグ・アンド・プレイの流れの中でソフ
トウェアによって設定できるので、システムが切り替わ
った際にユーザーが設定を変更せずとも良い。設定の切
り替えはSMIハンドラーでも行えるので、システム毎
にPCMCIAの設定を記憶しておく必要もない。従っ
て、PCMCIAスロットを採用すれば、同一の拡張ス
ロットで複数のシステムに簡単に対応することが可能と
なる。
【0202】またノートパソコンのようにメモリをバッ
クアップできる電源を用意しておけば、電源をオフした
後でもCPUの状態を退避したメモリなどをそのまま保
持できる。従って、パソコンの再立ち上げを行うと前回
電源をオフした状態に確実に復帰させられる。ノートパ
ソコンのような電池をベース電源として稼働する場合で
も、本例のパソコンは複数のシステムに対応できるにも
係わらずCPUとメモリ関係の消費電力が増加すること
はない。また、本例のパソコンには、各システムに対応
してI/Oなどの切り替え用の回路を用意してあるが、
システムが切り替わって実際には稼働していないとクロ
ック部15によって稼働していない切り替え用の回路の
クロックを停止し消費電力を低減してある。従って、対
応できるシステムが増加しても消費電力は増加せず、本
例のパソコンの構成は、ノート型のような手軽に使用で
きるパソコンにも簡単に適用できるものである。
【0203】また、上記の実施例では、CPUが1つの
場合について説明してあるが、2以上のCPUを用いて
も良い。各CPUに割り当ててあるメモリマップを切り
替えれば、それぞれのCPU毎に作動環境を設定でき
る。例えば、3つのCPUを採用した場合、最初は、1
つのCPUをAシステムに、残りのCPUをBシステム
に割り当てて動かした後、3つのCPU全てをBシステ
ムに切り替えたり、あるいは2つのCPUをAシステム
に割り当ててたりするような切り替えを簡単に行える。
本実施例のように、CPUのメモリマップを切り替え
て、対応するシステムで稼働していた状態のCPUステ
ートを保存し復帰できるようにしておけば、動作させる
アプリケーションプログラムによってCPUの数を選択
するような制御も可能である。また、マルチタスクをサ
ポートできるOSを作動させているシステム側に複数の
CPUを割り当ててたり、タスク毎にCPUの割当を変
更することも可能である。例えばノートパソコンにおい
て、CPUの処理が重いアプリケーションプログラムで
は2つのCPUを使用し、システムが切り替わりCPU
の負担が軽くなった場合には、CPUを1つしか使用し
ない。このようにすることで、無駄な消費電力を削減で
きる。
【0204】上記実施例では、システムを切り替えるた
めの最上位割り込みとしてSMIを用いている。しか
し、他のインタラプトセット、例えばAPIC(adv
anced programmable interr
upt controller等)を用いてシステムの
切り替えを行いマルチタスク機能との融合を図ることも
もちろん可能である。マルチタスクを実現するために
は、同一のデバイス、例えばFDDへの同時アクセスの
処理が問題となる。この場合は、現在アクセスしている
システムでのアクセス処理が済むまで他のシステムでの
処理を延長し、システムを切り替えた後に処理を続行し
たり、あるいは、デバイス毎に現在使用できるか否かを
示すビットを用意しシステム毎にアクセスを制限した
り、ユーザーに警告を出したりするような構成を採用す
ることもできる。なお、複数のCPUを搭載すると消費
電力が増大するので不必要な回路や、作動していないC
PUへのクロックの供給を停止し、消費電力の低減を図
ることが重要となる。また、基板面積の増加や、コスト
アップを考慮すると、1つのCPUを複数のシステムの
間でシステムを切り替えながら交互に使用して上記と同
様のマルチタスク的な処理を行わせることも可能であ
る。システムの切り替えは定期的に行っても良い。ある
いは、ワープロなどのようにCPUをほとんど使用しな
いアプリケーションプログラムを稼働させている場合
は、CPUにアクセスする度にシステムを切り替えても
良い。ユーザーには、ワープロを動かしているシステム
でパソコンが稼働しているように見えるが、ユーザーが
データを打ち込んでいる間はパソコンは他のシステムで
のアプリケーションプログラムを実行しワープロの処理
上必要となったらシステムをワープロ側に切り替えよう
にすれば良い。
【0205】また、本実施例のようなパソコンでは、図
17に示すようにフルスクリーンでシステム毎の画像を
切り替えても良く、図18に示すようにシステムを切り
替えても同一画面上に両システムの作動画像を表示でき
るようしても良い。両システムの作動画像を表示するた
めには、図1に示すように、ビデオブロック23に共通
ビデオ回路33を用意し、この共通ビデオ回路33を常
時動かしながらAシステム用のビデオ回路31からの信
号と、Bシステム用のビデオ回路32からの信号を重ね
合わせて表示することが望ましい。この場合は、例えば
Aシステムで共通のビデオ回路31を常に作動させてお
いて、そこにBシステム用のビデオ回路32からの信号
をソフトウェア的に、あるいは特定の回路を介して供給
しても良い。具体的には、Bシステム用のビデオ回路3
2のデータをCPU1で読み出し、共通ビデオ回路33
の所望の領域に複写する。複写は、Bシステム用ビデオ
回路32のデータが変化した時に変化した部分のみにつ
いて行えば、CPU1の負担は、さほど大きくならな
い。またシステムで表示するウィンドウの大きさ、ある
いは色数の違いによっては、データを加工(間引き、色
を表現するビット数の変換等)した後、複写しても良
い。両システムの画像が表示されている場合は、Aシス
テムでの画像をアイコンでクリックするとSMIを発行
し、Aシステムに復帰するような構成を採用することも
できる。また、フルスクリーンで画面を切り替える場合
は、共通のビデオ回路31を省き、Aシステム用のビデ
オ回路31とBシステム用のビデオ回路32を用意して
おくだけでも良い。
【0206】またユーザーインタフェースとしてキーボ
ードも重要であるが、キーボード47の配列もシステム
が異なると数種類のキーが異なってしまうことが多い。
本実施例のパソコンではキーボードコントローラ24の
設定をシステム毎に切り替えることでキーの違いを吸収
するようにしている。しかし、キーの配列などシステム
毎に物理的な違いが発生してしまうと通常のキーボード
ではシステム毎の差を吸収することは難しい。そこで、
本実施例のパソコンでは、図46に示すように液晶画面
上にキーボードの絵を重ね合わせて表示しペン入力でき
るようなオプションも設定できる。システムが切り替わ
るとキーボードの表示もそのシステムに合致するように
切り替わり、ユーザーは画面上のキーボードをタッチす
れば良い。あるいは、キーボード上のキートップを液晶
で構成し、システムが代わるとキートップの表示も切り
替えてキー配列などの物理的な違いを吸収することも可
能である。
【0207】
【発明の効果】以上に説明したように本発明に係るパソ
コンなどの情報処理装置は、CPUやMPUなどの処理
ユニットを、複数の環境で切り替えて使用することがで
きる。従って、異なる環境下で動作するソフトウェア資
産を1つの情報処理装置で使用することができ、また、
その環境下でソフトウェアの開発を継続することもでき
る。ユーザーは、本発明に係る情報処理装置を設置すれ
ば、複数の環境下で動作するアプリケーションプログラ
ムを使用することができ、無駄な出費を強いられること
が無くなる。また、異なる環境のアプリケーションプロ
グラムでも導入できるので、市販されている広範囲のア
プリケーションプログラムの中からユーザーに最適のも
のを選択して使用することが可能となる。
【0208】さらに、本発明に係る情報処理装置では、
メモリマップなどの接続される環境を変えて処理ユニッ
トが動作するようにしているので、同一の処理ユニット
を複数の環境下で使用することができる。従って、複数
の環境下で情報処理装置を動かせるにも係わらず処理ユ
ニットやメモリの数を増加する必要はなく、情報処理装
置自体をコンパクトにできる。また、環境毎に物理的に
処理ユニットを切り替える必要はないので構成も簡単で
済む。従って、上述したような様々な機能を備えた情報
処理装置を小型、低価格で提供できる。
【0209】また、環境を切り替え、再度元の環境に戻
るときに処理ユニットの状態を切り替える前の状態に復
帰できるようにしてあるので、ユーザーは複数の環境に
わたって情報処理装置が作動していることを意識せずに
利用できる。また、環境を切り替える度に処理ユニット
をリセットする必要がないので、環境を切り替えるとき
の手間は少なく、ユーザーにかかる負担も少ないなど、
本発明に係る情報処理装置は上述したような様々な効果
を備えている。
【0210】
【図面の簡単な説明】
【図1】本発明の実施例に係るパソコンの構成を示すブ
ロック図であり、Aシステムで選択された回路を2重線
で示してある。
【図2】本発明の実施例に係るパソコンの構成を示すブ
ロック図であり、Bシステムで選択された回路を2重線
で示してある。
【図3】クロック部の構成を示すブロック部である。
【図4】AおよびBシステムのメモリマップを示す説明
図である。
【図5】SMMに入る状態を示す波形図である。
【図6】SMRAMの構成を示す説明図である。
【図7】SMIを発行させる要因を表す要因ポート1を
示す説明図である。
【図8】SMIの要因を表す要因ポート2を示す説明図
である。
【図9】AおよびBシステムでの稼働状況などを表す基
本設定ポートを示す説明図である。
【図10】AおよびBシステムの稼働状況を示す表示の
動作を示す説明図である。
【図11】本例のパソコンの処理の概要を示すフローチ
ャートである。
【図12】初期設定部の処理の概要を示すフローチャー
トである。
【図13】実行部の処理の概要を示すフローチャートで
ある。
【図14】切り替え部の処理の概要を示すフローチャー
トである。
【図15】終了処理部の処理の概要を示すフローチャー
トである。
【図16】HDDコピーの処理の概要を示すフローチャ
ートである。
【図17】画面表示の一例を示す説明図である。
【図18】画面表示の他の例を示す説明図である。
【図19】ポップアップメニューの一例を示す説明図で
ある。
【図20】レジューム処理の概要を示すフローチャート
である。
【図21】第2の実施例の全体構成を示す図である。
【図22】図22(A)は、オプションボードの装着手
法を示す図であり、図22(B)は第1のサブコントロ
ーラの構成の一例を示す図である。
【図23】I/O保持処理の概要を示すフローチャート
である。
【図24】図24(A)〜(C)は、I/O保持手段の
具体例を示す図である。
【図25】深さの異なるI/Oポートに対応してレジス
タを選択できるI/O保持手段の具体例を示す図であ
る。
【図26】命令変換手段の回路構成の一例を示す図であ
る。
【図27】ライトサイクルでの命令変換手段の動作を説
明するための信号波形図である。
【図28】リードサイクルでの命令変換手段の動作を説
明するための信号波形図である。
【図29】命令変換手段の動作を示すフローチャートで
ある。
【図30】図30(A)〜(F)はマイクロコード情報
を説明するための図である。
【図31】シリアルコントローラのステータスレジスタ
の内容を示す図である。
【図32】命令変換処理の具体例1を説明するための図
である。
【図33】命令変換の手法について説明するための図で
ある。
【図34】図34(A)は割り込み線に対する割り込み
要因の割り当てを示す図であり、図34(B)は825
9AのI/Oポートについて説明するための図である。
【図35】命令変換処理の具体例2を説明するための図
である。
【図36】命令変換の手法について説明するための図で
ある。
【図37】図37(A)、(B)は、キーボードコント
ローラ、マウスコントローラについて説明するための図
である。
【図38】キーボード・マウスコントローラのエミュレ
ート処理を説明するための図である。
【図39】図39(A)、(B)はマウスデータのデー
タフォーマットを示す図である。
【図40】第3の実施例の動作を示すフローチャートで
ある。
【図41】第3の実施例の動作を示すフローチャートで
ある。
【図42】第3の実施例の動作を示すフローチャートで
ある。
【図43】第3の実施例の動作を示すフローチャートで
ある。
【図44】図44(A)〜(D)は、メモリマップ設定
の変換を説明するための図である。
【図45】図45(A)〜(C)は、AUTOEXE
C.BATの書き換えについて説明するための図であ
る。
【図46】キーボード表示の一例を示す説明図である。
【符号の説明】
1・・CPU 2・・メモリコントローラ 3・・メモリブロック 4・・メインメモリ 5・・増設メモリ 6・・BIOSROM 7・・BIOS 8・・SMIハンドラー 14・・システムの状況表示部 15・・クロック部 16・・バッファ 19・・I/O命令 20・・バス 21・・I/Oブロック 22・・HDDブロック 23・・ビデオブロック 24・・キーボードコントローラ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 H03M 11/14 G06F 9/455 9/46 340 A 7737−5B 12/06 570 E 7623−5B 13/10 310 Z 7368−5E

Claims (65)

    【特許請求の範囲】
  1. 【請求項1】 複数の環境のもとで動作可能な処理ユニ
    ットと、 前記複数の環境ごとに前記処理ユニットの制御に係る情
    報を記憶した複数のメモリ領域と、 該複数のメモリ領域のいずれかを選択して前記処理ユニ
    ットに接続するメモリ制御手段とを有することを特徴と
    する情報処理装置。
  2. 【請求項2】 請求項1において、 前記複数の環境のいずれかの下で動作するアプリケーシ
    ョンプログラムと、 該アプリケーションプログラムの処理が終了していない
    ことを示す未了フラグとを有することを特徴とする情報
    処理装置。
  3. 【請求項3】 請求項2において、 前記未了フラグの立った前記環境のメモリ領域へ切り替
    える際に、前記処理ユニットの状態を回復する手段を有
    することを特徴とする情報処理装置。
  4. 【請求項4】 請求項2又は3のいずれかにおいて、 前記未了フラグが立った環境については前記処理ユニッ
    トが該環境下で動作するための該環境の初期化は行わな
    いことを指示する手段を有することを特徴とする情報処
    理装置。
  5. 【請求項5】 請求項2乃至4のいずれかにおいて、 電源オフする際に、前記未了フラグが立っている場合は
    ユーザーに警告を行う手段を有することを特徴とする情
    報処理装置。
  6. 【請求項6】 請求項1乃至5のいずれかにおいて、 前記複数の環境ごとに、前記処理ユニットが該環境下で
    動作するための該環境の初期化を行ったことを示す初期
    化フラグを有することを特徴とする情報処理装置。
  7. 【請求項7】 請求項6において、 前記環境ごとに設定された前記初期化フラグを用いて前
    記環境毎の初期化を指示する手段を有することを特徴と
    する情報処理装置。
  8. 【請求項8】 請求項1乃至7のいずれかにおいて、 前記処理ユニットが前記環境下で動作するための該環境
    の初期化を行わずにリブート処理を行うことを指示する
    リブートフラグを有することを特徴とする情報処理装
    置。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 前記処理ユニットが動作している前記環境とは異なる環
    境の下で動作するアプリケーションプログラムの起動を
    指示するアプリケーションフラグを有することを特徴と
    する情報処理装置。
  10. 【請求項10】 請求項9において、 前記アプリケーションフラグが立った場合に、前記アプ
    リケーションプログラムを起動するためのブートファイ
    ルを、切り替わった環境が認識可能な位置に渡す手段を
    有することを特徴とする情報処理装置。
  11. 【請求項11】 請求項1乃至10のいずれかにおい
    て、 前記複数の環境の各々をリセット可能な手段を有するこ
    とを特徴とする情報処理装置。
  12. 【請求項12】 請求項11において、 前記複数の環境を一括してリセット可能な手段を有する
    ことを特徴とする情報処理装置。
  13. 【請求項13】 請求項12において、 前記複数の環境の各々をリセットするためのリセットス
    イッチと、前記複数の環境を一括してリセットするため
    のリセットスイッチとを異なる場所に別々に配置したこ
    とを特徴とする情報処理装置。
  14. 【請求項14】 請求項1乃至13のいずれかにおい
    て、 前記処理ユニットが動作している前記環境とは異なる環
    境の下で動作するアプリケーションプログラムの起動が
    指示された場合に、前記メモリ領域の切り替えを行い該
    アプリケーションプログラムの起動を行う手段を有する
    ことを特徴とする情報処理装置。
  15. 【請求項15】 請求項14において、 前記アプリケーションプログラムの起動が指示された場
    合に、該アプリケーションプログラムを起動するための
    ブートファイルを、切り替わった環境が認識可能な位置
    に渡す手段を有することを特徴とする情報処理装置。
  16. 【請求項16】 請求項15において、 前記ブートファイルに、前記アプリケーションプログラ
    ム名を含ませる手段を有することを特徴とする情報処理
    装置。
  17. 【請求項17】 請求項15又は16のいずれかにおい
    て、 前記ブートファイルに、元の環境に切り替えるためのコ
    マンドを含ませる手段を有することを特徴とする情報処
    理装置。
  18. 【請求項18】 請求項1乃至17のいずれかにおい
    て、 前記複数の環境に共通したメモリブロックと、 該メモリブロック内の容量を選択して前記複数のメモリ
    領域の少なくともいずれかに割り当てるメモリブロック
    管理手段とを有することを特徴とする情報処理装置。
  19. 【請求項19】 請求項18において、 前記メモリブロック管理手段は、前記メモリ領域に割り
    当てた容量に係る情報を前記情報処理装置へ電源が供給
    されていない間も保持できる手段であることを特徴とす
    る情報処理装置。
  20. 【請求項20】 請求項1乃至19のいずれかにおい
    て、 前記複数のメモリ領域を備えた記憶手段を有し、 前記メモリ制御手段は、前記処理ユニットのメモリマッ
    プのアドレスを、選択された前記メモリ領域に該当する
    前記記憶部のアドレスに変換することを特徴とする情報
    処理装置。
  21. 【請求項21】 請求項1乃至20のいずれかにおい
    て、 前記メモリ領域は、前記複数の環境を管理する情報を有
    することを特徴とする情報処理装置。
  22. 【請求項22】 請求項21において、 前記メモリ領域は、前記環境を管理する情報を記憶した
    領域と、前記処理ユニットの制御に係る情報を一時的に
    記憶した領域とを有することを特徴とする情報処理装
    置。
  23. 【請求項23】 請求項1乃至22のいずれかにおい
    て、 前記複数の環境のうち、前記処理ユニットの動作してい
    る環境を表示する手段を有することを特徴とする情報処
    理装置。
  24. 【請求項24】 請求項1乃至23のいずれかにおい
    て、 前記複数のメモリ領域のうち、起動時に前記処理ユニッ
    トに接続するメモリ領域を指示する手段を有することを
    特徴とする情報処理装置。
  25. 【請求項25】 請求項1乃至24のいずれかにおい
    て、 前記メモリ領域が切り替えられる前のメモリ領域を記憶
    し、再度前記メモリ領域を切り替えるときは記憶してい
    る前記前のメモリ領域を優先して選択する手段を有する
    ことを特徴とする情報処理装置。
  26. 【請求項26】 請求項1乃至25のいずれかにおい
    て、 前記メモリ領域を定期的に切り替える手段を有すること
    を特徴とする情報処理装置。
  27. 【請求項27】 請求項1乃至26のいずれかにおい
    て、 前記メモリ制御手段に対し前記メモリ領域の切り替えを
    指示可能なシステム管理手段と、 前記メモリ領域の切り替えを行う前に、前記システム管
    理手段の指示により各環境毎の前記処理ユニットの状態
    を記憶する格納手段と、 前記メモリ領域の切り替えを行った後に、前記システム
    管理手段の指示により前記格納手段のいずれかの環境の
    記憶から前記処理ユニットの状態を回復する復帰手段と
    を有することを特徴とする情報処理装置。
  28. 【請求項28】 請求項27において、 前記システム管理手段は、システム・マネージメント・
    インタラプトで起動するシステム・マネージメント・イ
    ンタラプト・ハンドラーであることを特徴とする情報処
    理装置。
  29. 【請求項29】 請求項27又は28のいずれかにおい
    て、 前記システム管理手段を作動する複数の要因を記憶し、
    前記システム管理手段の指示を制御可能な要因記憶手段
    を有することを特徴とする情報処理装置。
  30. 【請求項30】 請求項27乃至29のいずれかにおい
    て、 前記システム管理手段は、前記複数の環境に共通してい
    ることを特徴とする情報処理装置。
  31. 【請求項31】 請求項27乃至30のいずれかにおい
    て、 前記システム管理手段は、ユーザーの選択した環境に該
    当する前記メモリ領域を選択して前記メモリ制御手段に
    指示可能であることを特徴とする情報処理装置。
  32. 【請求項32】 請求項27乃至31のいずれかにおい
    て、 キー入力手段を有し、 前記システム管理手段は、該キー入力手段の特定のキー
    入力およびキーコンビネーションの少なくともいずれか
    によって始動することを特徴とする情報処理装置。
  33. 【請求項33】 請求項27乃至31のいずれかにおい
    て、 ポインティング手段を有し、 前記システム管理手段は、該ポインティング手段によっ
    て所定の箇所をクリックした場合、およびポインティン
    グ手段の特定の操作の少なくともいずれかによって始動
    することを特徴とする情報処理装置。
  34. 【請求項34】 請求項27乃至31のいずれかにおい
    て、 キー入力手段およびポインティング手段の少なくともい
    ずれかと、前記キー入力手段およびポインティング手段
    のいずれかによって表示手段に機能メニューを出力する
    手段とを有し、 前記システム管理手段は、前記機能メニューから始動で
    きることを特徴とする情報処理装置。
  35. 【請求項35】 請求項1乃至34のいずれかにおい
    て、 前記複数の環境の少なくともいずれかに対応した複数の
    入出力制御手段と、 前記メモリ領域が切り替わった際に、該メモリ領域の前
    記環境に対応する入出力制御手段を選択して切り替える
    手段とを有することを特徴とする情報処理装置。
  36. 【請求項36】 請求項35において、 前記複数の入出力制御手段への入出力信号が停止しても
    各々の前記入出力制御手段の内部設定を保持する手段
    と、 前記切り替えられた前記入出力制御手段にのみを稼働状
    態とする手段とを有することを特徴とする情報処理装
    置。
  37. 【請求項37】 請求項1乃至34のいずれかにおい
    て、 前記複数の環境の少なくともいずれかに対応した複数の
    入出力制御手段と、 前記メモリ領域が切り替わった際に、前記処理ユニット
    が前記入出力制御手段に対して発行した命令を、切り替
    わったメモリ領域の環境に適合した命令に変換するエミ
    ュレート手段とを有することを特徴とする情報処理装
    置。
  38. 【請求項38】 請求項37において、 前記エミュレート手段が、 入力されるメモリアドレスの位置に少なくともコマンド
    情報及びエミュレーションアドレス情報を含むマイクロ
    コード情報を記憶するマイクロコードメモリと、 前記処理ユニットにより発行された命令に含まれるアド
    レス情報と前記マイクロコードメモリに含まれる前記エ
    ミュレーションアドレス情報のいずれかを選択し前記メ
    モリアドレスを生成するセレクタ手段とを有し、 前記セレクタ手段が、前記コマンド情報に含まれるエミ
    ュレーション継続情報に基づいてエミュレーションの継
    続を指示された場合には前記エミュレーションアドレス
    情報を選択し前記メモリアドレスを生成することを特徴
    とする情報処理装置。
  39. 【請求項39】 請求項38において、 前記マイクロコードメモリからのマイクロコード情報に
    基づいてエミュレーションデータの生成処理を行うデー
    タ生成手段を有し、 該データ生成手段が、前記エミュレーション継続情報に
    基づいてエミュレーションの継続が指示された場合に、
    前記処理ユニットからの書き込みデータ又はn番目(n
    は1以上の整数)のエミュレーションにより生成された
    エミュレーションデータに基づいてn+1番目のエミュ
    レーションにおけるエミュレーションデータの生成処理
    を行うことを特徴とする情報処理装置。
  40. 【請求項40】 請求項37において、 前記エミュレート手段が、 命令変換のためのマイクロコード情報を所定のメモリア
    ドレスの位置に記憶するマイクロコードメモリと、 前記マイクロコードメモリから前記マイクロコード情報
    を読み出す手段と、 読み出されたマイクロコード情報に基づいてエミュレー
    ションデータの生成処理を行うデータ生成手段とを含
    み、 前記マイクロコードメモリは、第1のメモリアドレスの
    位置に少なくともコマンド情報及びエミュレーションア
    ドレス情報を含む第1のマイクロコード情報を記憶し、
    該第1のメモリアドレスを変換することで得られる第2
    のメモリアドレスの位置に少なくともデータ生成情報の
    一部又は全部を含む第2のマイクロコード情報を記憶
    し、 前記読み出し手段が、第1のメモリ読み出しサイクルに
    より前記第1のメモリアドレスの位置に記憶される前記
    コマンド情報を読み出し、前記データ生成手段によるデ
    ータ生成処理が必要であると該コマンド情報に基づいて
    判断された場合には第2のメモリ読み出しサイクルを起
    動して前記第2のメモリアドレスの位置に記憶される前
    記データ生成情報を読み出し、 前記データ生成手段が、前記第1のメモリ読み出しサイ
    クルで読み出された第1のマイクロコード情報と、前記
    第2のメモリ読み出しサイクルで読み出された第2のマ
    イクロコード情報とに基づいて前記データ生成処理を行
    うことを特徴とする情報処理装置。
  41. 【請求項41】 請求項37において、 前記エミュレート手段が、 前記入出力制御手段が第1の割り込みを発生することで
    命令発行の依頼を前記処理ユニットに対して通知する場
    合において、該第1の割り込みが発生された場合に該割
    り込みを受け取ると共に命令の種類を示す要因データを
    設定し、処理ユニットに対して第2の割り込みを発生す
    る手段と、 前記第2の割り込みによって起動され前記要因に対応し
    た所定の処理を実行し、前記切り替わったメモリ領域の
    環境に適合した命令の発行が可能な状態に設定する手段
    と、 前記処理ユニットに対して前記第1の割り込みを発生し
    命令発行の依頼を通知する手段とを含むことを特徴とす
    る情報処理装置。
  42. 【請求項42】 請求項35乃至41のいずれかにおい
    て、 前記処理ユニットが前記入出力制御手段に対して発行し
    た命令を保持する保持手段と、 前記メモリ領域が切り替わった際に、前記保持手段によ
    り保持された命令を前記入出力制御手段に伝える手段と
    を含むことを特徴する情報処理装置。
  43. 【請求項43】 請求項35乃至42のいずれかにおい
    て、 前記入出力制御手段の1つはハードディスクユニットを
    制御可能な手段であり、該ハードディスクユニットの少
    なくとも1つは着脱可能であることを特徴とする情報処
    理装置。
  44. 【請求項44】 請求項35乃至43のいずれかにおい
    て、 前記入出力制御手段の1つはキーボード制御手段であ
    り、該キーボード制御手段は、切り替えられた前記メモ
    リ領域の前記環境に対応するキー配列にキーボードの配
    列を変更可能な配列選択手段を有することを特徴とする
    情報処理装置。
  45. 【請求項45】 請求項44において、 前記キーボードを表示可能な表示手段と、表示されたキ
    ーボードをクリック可能なポインティング手段とを有
    し、 前記配列変更手段は、前記表示手段に表示されたキーボ
    ードの配列を変更することを特徴とする情報処理装置。
  46. 【請求項46】 請求項35乃至45のいずれかにおい
    て、 前記入出力制御手段の1つは画像を制御する複数の表示
    手段であり、 該表示手段は、各々の前記環境下で独立して画像を制御
    できることを特徴とする情報処理装置。
  47. 【請求項47】 請求項46において、 該表示手段のうち少なくとも1つは、異なる環境で動作
    する前記表示手段で作られた画素データを置き換えて画
    像表示可能な手段であることを特徴とする情報処理装
    置。
  48. 【請求項48】 請求項1乃至47のいずれかにおい
    て、 起動時に前記メモリ領域のいずれかを選択して前記処理
    ユニットに接続する初期部と、 前記処理ユニットに接続された前記メモリ領域に対応す
    る環境下で処理を行う実行部と、 前記メモリ制御手段によって前記処理ユニットに接続す
    る前記メモリ領域を切り替えるシステム切り替え部とを
    有することを特徴とする情報処理装置。
  49. 【請求項49】 複数の環境のもとで動作可能な処理ユ
    ニットと、 該処理ユニットの制御に係る情報を記憶したメモリ領域
    と、 前記処理ユニットが動作する環境が第1の環境から第2
    の環境に切り替わった際に、該第1の環境での前記処理
    ユニットの制御に係る情報を退避する手段と、 該情報が記憶されていたメモリ領域に空きメモリ領域を
    マッピングする手段とを有することを特徴とする情報処
    理装置。
  50. 【請求項50】 請求項49において、 前記情報を退避する手段が、該情報が記憶されていたメ
    モリ領域を裏バンクに切り替える手段であることを特徴
    とする情報処理装置。
  51. 【請求項51】 請求項49又は50のいずれかにおい
    て、 前記第1の環境から前記第2の環境への切り替え処理を
    行うためのシステム管理手段を有し、 該システム管理手段が、前記情報の退避及び前記空きメ
    モリ領域のマッピングを行うことを特徴とする情報処理
    装置。
  52. 【請求項52】 複数の環境のもとで動作可能な処理ユ
    ニットと、 前記複数の環境の中の第1の環境で前記処理ユニットを
    動作させるためのブートファイルに、前記処理ユニット
    を動作させる環境を第1の環境から第2の環境へ切り替
    えるための切り替えコマンドを含ませる手段を有するこ
    とを特徴とする情報処理装置。
  53. 【請求項53】 請求項52において、 前記ブートファイルに、前記第1の環境では認識され
    ず、前記第2の環境に切り替わった際に該第2の環境に
    より認識されるブートコマンドを含ませる手段を有する
    ことを特徴とする情報処理装置。
  54. 【請求項54】 請求項53において、 前記ブートコマンドに、前記処理ユニットを動作させる
    環境を第2の環境から第1の環境へ切り替えるための切
    り替えコマンドを含ませる手段を有することを特徴とす
    る情報処理装置。
  55. 【請求項55】 請求項52乃至54のいずれかにおい
    て、 前記切り替えコマンドにより起動し、前記第1の環境と
    前記第2の環境との間の切り替え処理を行うシステム管
    理手段を有することを特徴とする情報処理装置。
  56. 【請求項56】 請求項51又は55のいずれかにおい
    て、 前記システム管理手段の指示により各環境毎の前記処理
    ユニットの状態を記憶する格納手段と、 前記環境の切り替えを行った後に、前記システム管理手
    段の指示により前記格納手段のいずれかの環境の記憶か
    ら前記処理ユニットの状態を回復する復帰手段とを有す
    ることを特徴とする情報処理装置。
  57. 【請求項57】 請求項56において、 前記システム管理手段は、システム・マネージメント・
    インタラプトで起動するシステム・マネージメント・イ
    ンタラプト・ハンドラーであることを特徴とする情報処
    理装置。
  58. 【請求項58】 請求項1乃至57のいずれかにおい
    て、 前記複数の環境が、コンピュータアーキテクチャが異な
    るシステムでの環境であることを特徴とする情報処理装
    置。
  59. 【請求項59】 請求項1乃至57のいずれかにおい
    て、 前記複数の環境が、コンピュータアーキテクチャが同一
    のシステムでの環境であることを特徴とする情報処理装
    置。
  60. 【請求項60】 複数の環境のもとで動作可能な処理ユ
    ニットと、前記複数の環境ごとに前記処理ユニットの制
    御に係る情報を記憶した複数のメモリ領域と、該複数の
    メモリ領域のいずれかを選択して前記処理ユニットに接
    続するメモリ制御手段とを有する情報処理装置の制御方
    法であって、 前記処理ユニットの状態を前記環境毎の特定の領域に記
    憶する格納工程と、 前記メモリ制御手段によって前記処理ユニットに接続す
    る前記メモリ領域を切り替えるシステム切り替え工程
    と、 前記環境毎の特定の領域に記憶された状態を前記処理ユ
    ニットへ戻す復帰工程とを有することを特徴とする情報
    処理装置の制御方法。
  61. 【請求項61】 請求項60において、 前記複数の環境のいずれかの下で動作するアプリケーシ
    ョンプログラムと、 該アプリケーションプログラムの処理が終了していない
    ことを示す未了フラグとを有し、 前記未了フラグが有効と際に前記復帰工程を行うことを
    特徴とする情報処理装置の制御方法。
  62. 【請求項62】 請求項60又は61のいずれかにおい
    て、 前記複数の環境ごとに、前記処理ユニットが該環境下で
    動作するための該環境の初期化を行ったことを示す初期
    化フラグを有し、 前記初期化フラグが有効となった際に、前記復帰工程に
    代わり前記環境を初期化する工程を行うことを特徴とす
    る情報処理装置の制御方法。
  63. 【請求項63】 複数の環境のもとで動作可能な処理ユ
    ニットと、前記複数の環境ごとに前記処理ユニットの制
    御に係る情報を記憶した複数のメモリ領域と、該複数の
    メモリ領域のいずれかを選択して前記処理ユニットに接
    続するメモリ制御手段とを有する情報処理装置の制御方
    法であって、 起動時に前記メモリ領域のいずれかを選択して前記処理
    ユニットに接続する初期工程と、 前記処理ユニットに接続された前記メモリ領域に対応す
    る環境下で処理を行う実行工程と、 前記メモリ制御手段によって前記処理ユニットに接続す
    る前記メモリ領域を切り替えるシステム切り替え工程と
    を有することを特徴とする情報処理装置の制御方法。
  64. 【請求項64】 複数の環境のもとで動作可能な処理ユ
    ニットと、該処理ユニットの制御に係る情報を記憶した
    メモリ領域とを有する情報処理装置の制御方法であっ
    て、 前記処理ユニットが動作する環境が第1の環境から第2
    の環境に切り替わった際に、該第1の環境での前記処理
    ユニットの制御に係る情報を退避する工程と、 該情報が記憶されていたメモリ領域に空きメモリ領域を
    マッピングする工程とを有することを特徴とする情報処
    理装置の制御方法。
  65. 【請求項65】 複数の環境のもとで動作可能な処理ユ
    ニットを有する情報処理装置の制御方法であって、 前記複数の環境の中の第1の環境で前記処理ユニットを
    動作させるためのブートファイルに、前記処理ユニット
    を動作させる環境を第1の環境から第2の環境へ切り替
    えるための切り替えコマンドを含ませる工程を有するこ
    とを特徴とする情報処理装置の制御方法。
JP7142590A 1994-05-17 1995-05-17 情報処理装置及び情報処理装置の制御方法 Withdrawn JPH0836485A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7142590A JPH0836485A (ja) 1994-05-17 1995-05-17 情報処理装置及び情報処理装置の制御方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10303294 1994-05-17
JP6-103032 1994-05-17
JP7142590A JPH0836485A (ja) 1994-05-17 1995-05-17 情報処理装置及び情報処理装置の制御方法

Publications (1)

Publication Number Publication Date
JPH0836485A true JPH0836485A (ja) 1996-02-06

Family

ID=26443699

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7142590A Withdrawn JPH0836485A (ja) 1994-05-17 1995-05-17 情報処理装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JPH0836485A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075828A (ja) * 1999-07-27 2001-03-23 Compaq Computer Corp コンピュータ・システム
US6677951B2 (en) 2000-03-03 2004-01-13 Sony Computer Entertainment, Inc. Entertainment apparatus having compatibility and computer system
US6684325B1 (en) 1999-05-12 2004-01-27 Nec Corporation Method and system for automatically setting an operational mode of a computer device based on received or detected environmental information
US7149885B2 (en) 2002-04-05 2006-12-12 Nec Corporation Automatic concealment of expansion cards in computer system
JP2008158964A (ja) * 2006-12-26 2008-07-10 Nec Access Technica Ltd メモリ用アドレスマッピング方法、それを適用したメモリデバイス
US7945919B2 (en) 2008-03-18 2011-05-17 Kabushiki Kaisha Toshiba Information processing apparatus and device controller driving/controlling method
JP2019114303A (ja) * 2019-04-18 2019-07-11 株式会社エルイーテック 制御チップ及びこれを用いた遊技機

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684325B1 (en) 1999-05-12 2004-01-27 Nec Corporation Method and system for automatically setting an operational mode of a computer device based on received or detected environmental information
JP2001075828A (ja) * 1999-07-27 2001-03-23 Compaq Computer Corp コンピュータ・システム
US6677951B2 (en) 2000-03-03 2004-01-13 Sony Computer Entertainment, Inc. Entertainment apparatus having compatibility and computer system
US7149885B2 (en) 2002-04-05 2006-12-12 Nec Corporation Automatic concealment of expansion cards in computer system
JP2008158964A (ja) * 2006-12-26 2008-07-10 Nec Access Technica Ltd メモリ用アドレスマッピング方法、それを適用したメモリデバイス
US7945919B2 (en) 2008-03-18 2011-05-17 Kabushiki Kaisha Toshiba Information processing apparatus and device controller driving/controlling method
JP2019114303A (ja) * 2019-04-18 2019-07-11 株式会社エルイーテック 制御チップ及びこれを用いた遊技機

Similar Documents

Publication Publication Date Title
US5867703A (en) Common reset ROM
JP2610812B2 (ja) データ処理システムのエミユレーシヨン
US6457069B1 (en) Method and apparatus for providing support for dynamic resource assignment and configuration of peripheral devices when enabling or disabling plug-and-play aware operating systems
US6457099B1 (en) Programmable dedicated application card
US5737579A (en) System and method for emulating computer architectures
US6230118B1 (en) DOS based application supports for a controllerless modem
US6832311B2 (en) Information processing system and resume processing method used in the system
US9529410B2 (en) Service processor (SP) initiated data transaction with BIOS utilizing power off commands
JPH06250871A (ja) Cpuコア、該cpuコアを有するasic、及び該asicを備えたエミュレーションシステム
JPH06187133A (ja) オペレーティングシステムのロードシステム、装置接続検出システム、及びオペレーティングシステムローダ決定方法
JPH06138987A (ja) サスペンド制御方法およびシステム
WO2000019292A2 (en) Upgrade card for a computer system
US20160011880A1 (en) Service processor (sp) initiated data transaction with bios utilizing interrupt
JPS6055467A (ja) マルチ・マイクロプロセツサによつて実現されたメインフレ−ム・エミユレ−シヨン用デ−タ処理システム
US4621319A (en) Personal development system
JPH03660B2 (ja)
US5963738A (en) Computer system for reading/writing system configuration using I/O instruction
JPH0836485A (ja) 情報処理装置及び情報処理装置の制御方法
US20140075176A1 (en) Information processing apparatus
US6282645B1 (en) Computer system for reading/writing system configuration using I/O instruction
JPH03196225A (ja) プログラマブル割込みコントローラ
JPH06180668A (ja) コンピュータシステム
Intel Microsoft Word - N440BX_TPS_REV_ 2.doc
JP4616763B2 (ja) デバイス・コントローラの設定方法およびコンピュータ・システム
JP3626258B2 (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: 20020806