JPS621036A - マルチモ−ドマイクロプロセツサにおいてプログラムを実行する方法及びオペレ−テイングシステム - Google Patents
マルチモ−ドマイクロプロセツサにおいてプログラムを実行する方法及びオペレ−テイングシステムInfo
- Publication number
- JPS621036A JPS621036A JP61083195A JP8319586A JPS621036A JP S621036 A JPS621036 A JP S621036A JP 61083195 A JP61083195 A JP 61083195A JP 8319586 A JP8319586 A JP 8319586A JP S621036 A JPS621036 A JP S621036A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- microprocessor
- interrupt
- computer
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
産業上の利用分野
本発明は、マルチモードマイクロプロセッサにおいてコ
ンピュータプログラムを実行する改良された方法、及び
このようなマイクロプロセッサに使用する改良されたオ
ペレーティングシステムに係る。 従来の技術 新たに設計されるマイクロプロセッサは、大型のメモリ
アドレス機構と1機能を促進するように変更されたアー
キテクチャを含む傾向がある。 このようなマイクロプロセッサを新規なコンピュータシ
ステムに使用すると、機能が促進されたことによりこれ
までのコンピュータよりも機能的に優れたコンピュータ
となることがしばしばある。 この新規なコンピュータは、これまでのものよりも機能
面で幾つかの利点を有しているが、改良されたマイクロ
プロセッサを用いたコンピュータは。 必ずしも商業的に成功を収めることにはならない。 rソフトウェア」とも称するコンピュータプログラムは
、そのマイクロプロセッサに専用のものである。それ故
、新規なマイクロプロセッサを用いたコンピュータを市
場に出した時には、一般に、このコンピュータで動作で
酋るソフトウェアが殆どないか又は全くないことになる
。これまでのマイクロプロセッサに対して書かれている
既存のソフトウェアは、新規なコンピュータIこ適合さ
せることができない。その結果、このような新規なコン
ピュータは、消費者の側からそのコンピュータ警こ適し
たソフトウェアを入手できることが分かるまで、活発し
こ販売できないことがしばしばある5更に、既存のコン
ピュータのソフトウェアライブラリを所有している消費
者は、全く新しいソフトウェア(二投資しなければなら
ないような新規なコンピュータを買いたがらない。この
問題に加えて。 ソフトウェアの作家や発行者は、新規なマイクロプロセ
ッサを組み込んだコンピュータの販売が充分に活発化さ
れてソフトウェアの購入グループが比
ンピュータプログラムを実行する改良された方法、及び
このようなマイクロプロセッサに使用する改良されたオ
ペレーティングシステムに係る。 従来の技術 新たに設計されるマイクロプロセッサは、大型のメモリ
アドレス機構と1機能を促進するように変更されたアー
キテクチャを含む傾向がある。 このようなマイクロプロセッサを新規なコンピュータシ
ステムに使用すると、機能が促進されたことによりこれ
までのコンピュータよりも機能的に優れたコンピュータ
となることがしばしばある。 この新規なコンピュータは、これまでのものよりも機能
面で幾つかの利点を有しているが、改良されたマイクロ
プロセッサを用いたコンピュータは。 必ずしも商業的に成功を収めることにはならない。 rソフトウェア」とも称するコンピュータプログラムは
、そのマイクロプロセッサに専用のものである。それ故
、新規なマイクロプロセッサを用いたコンピュータを市
場に出した時には、一般に、このコンピュータで動作で
酋るソフトウェアが殆どないか又は全くないことになる
。これまでのマイクロプロセッサに対して書かれている
既存のソフトウェアは、新規なコンピュータIこ適合さ
せることができない。その結果、このような新規なコン
ピュータは、消費者の側からそのコンピュータ警こ適し
たソフトウェアを入手できることが分かるまで、活発し
こ販売できないことがしばしばある5更に、既存のコン
ピュータのソフトウェアライブラリを所有している消費
者は、全く新しいソフトウェア(二投資しなければなら
ないような新規なコンピュータを買いたがらない。この
問題に加えて。 ソフトウェアの作家や発行者は、新規なマイクロプロセ
ッサを組み込んだコンピュータの販売が充分に活発化さ
れてソフトウェアの購入グループが比
【II2的大規模
なものとなるまで、そのマイクロプロセッサのソフトウ
ェアを作りたがらないこともしばしばある。消費者とソ
フトウェアの作家の両方の側から「待ちながら様子を見
よう」とするこの姿勢は、新規なマイクロプロセッサ及
びこのマイクロプロセッサを用いたコンピュータの成功
性を妨げることになる。 新規なマイクロプロセッサの設計者は、2つのモードで
動作するように新規なマイクロプロセッサを設計するこ
とによってこの問題を解決しようと試みている。この場
合、第1のモードでは。 マイクロプロセッサが従来のマイクロプロセッサをエミ
ュレートし、その従来のマイクロプロf 7すに対して
書かれた既存のプログラムを実行する6第2のモードで
は、マイクロプロセッサがその促進された機能を完全に
使用する。このような設計の場合、マイクロプロセッサ
を用いたコンピュータシステムの製造者は、従来のマイ
クロプロセッサに対して書かれた既存のプログラム全部
をそれらのコンピュータで作動できるという文句で広告
活動を行なうことができ、従って、 (理論的には)コ
ンピュータの販売を、この新規な促進されたモ−ドで作
動するように!2計したプログラムをソフトウェア作家
に書き始めさせるところまで活発化することができる。 このようなシステムの1つが、米国カリフォルニア州す
ンタクジラのインテル社(Intel Corp。 ration)によって12逍されたIntel 80
286である。 このIntel 80286の設計及び動作は、参考と
してここに取り上げるインテル社から入手することので
きるriAPX 286ニユーメリソクサブレメントを
含む1APX 286プログラマーズ・リファレンス・
マニュアル(iAPX 286 Programme
r’s ReferenceManual Inc
ludingthe 1APX 286 Numa
ricSupplement) Jと題する出版物に詳
細に述べられている。 Intel 80286 (以下、80286と称する
)は、2つのモートで作動する。[リアルモードjと称
する第1のモードにおいては、この80286が、80
88マイクロブロセソサフ7ミリであるインテル社の従
来の8086のアーキテクチャをエミュレートし。 これは5例えば、 IBM PC及びこれに対応するコ
ンピュータに使用されるものである。従って80286
マイクロプロセツサを組み込んだコンピュータ。 例えば、IBN PC/ATは、IBN PC及びこれ
に対応するコンピュータに対して書かれた既存の808
6プログラムで動作することができる。 「保護モード」と称する第2のモードでは。 80286アーキテクチヤは、大型のメモリアドレス機
構、促進されたマルチタスクサポート機構及び複雑な保
護機構を備えている。 発明が解決しようとする問題点 リアルモードでは、既存の8086プログラムを走らせ
ることができるが、リアルモードに関連した幾つかの制
約がある。第1に、アドレスできる物理的なメモリの大
きさが1メガバイトに制限される。(IBMATのよう
な成るコンピュータの場合は、プログラムに使用できる
物理的なメモリの大きさが更に640Kに制限される。 )第2に、リアルモードでは、マルチタスクにとって所
望される機能であるメモリレロケーションを行なうこと
ができない、第3に、リアルモードでは、ユーザ又はタ
スクからの干渉が激しくなるマルチタスク及びネットワ
ーク環境において必要とされる機能であるメモリ保護機
能が与えられない。 リアルモードの前記欠点により、80286は、一方の
モードから他方のモードへ頻繁に切り換えられるように
設計されていない、 80286は、リアルモードで初
期化され、80286によって与えられる命令によって
保護モードに切り換えることができる。保護モードから
リアルモードに切り換える方法もしくは命令は8028
6によって与えられない。 保護モードからリアルモートに′61帰するには、マイ
クロプロセッサをリセットすることが必要とされる。従
って、80286の設計者は、これを一方のモード又は
他方のモードで使用し、リアルモードの動作を保護モー
ドの動作と分離し、ひいては、保護モードのプログラム
をリアルモードの非保護Qb’tから分離するようにし
ている。 不都合なことtこ、このような分離は、効率という観点
から望ましいものではない、効率的な動作については、
80286を組み込んだマイクロコンピュータのオペレ
ーティングシステムもしくは’DO5’ が、マルチタ
スク環境においてリアルモードプログラムと保護モード
プログラムを混合した状態で作動できねばならない。 問題点を解決するための手段 太発明の目的は、マルチモードマイクロプロセッサを作
動する方法であって、マイクロプロセッサの種々のモー
ドで作動するように数計されたプログラムの混合体をマ
ルチタスク環境において効率的に実行できるような改良
さnた方法を提供することである。 不発明の別の目的は、別の好ましい実施例において、個
々の作動モードの機能を最大にするような方法を提供す
ることである。 本発明の更に別の目的は、既存のシステムに最小限のハ
ードウェアの追加しか必要としないような方法を提供す
ることである。 本発明の更に別の目的は、マルチモードマイクロプロセ
ッサを用いたコンピュータのための改良されたオペレー
ティングシステムを提供することである。 本発明の更に別の目的は、別の好ましい実施例において
、保護モードと非保護モードとを有するマルチモードマ
イクロプロセッサに使用されて非保護モードで作動する
時に保護機能を促進するような改良されたシステム設計
を提供することである。 本発明の更に別の目的は、好ましい実施例において、I
ntel 80286のようなマイクロプロセッサのマ
ルチタスク機能を増進する方法を提供することである。 本発明の更に別の目的は、Intel 80286を用
いたIBN PC/ATの如きコンピュータに使用する
よう設計された方法であって、マルチモードタスクのモ
ード切り換え環境において上記コンピュータを最適に作
動させるような方法を提供することである。 これらの目的及び以下の説明から明らかとなる別の目的
は、マルチモードマイクロプロセッサにおいてプログラ
ムを混合して実行するようにモードを切り換える改良さ
れた方法を提供することによって達成される。成るモー
ドから別のモードへ切り換えるためにリセットしなけれ
ばならないようなマイクロプロセッサに用いるよう設計
された本発明の好ましい実施例では、リセットハードウ
ェアをできるだけ効率的に作動することによってモード
の切り換えを行なうのが好ましい、マイクロプロセッサ
がリセットされた後、改良されたブートアップソフトウ
ェアにより、リセットがソフトウェア制御のもとて(モ
ード切り換えリセットを示す)開始されたかどうかが決
定され、もしそうであれば、ブートアップソフトウェア
の通常の初期化ルーチンがバイパスされる。リセット手
順の間には、ダイレクトメモリアクセス及び割込みを処
理するような特定の構成にされるのが好ましい。 本発明の好ましい実施例においては、オペレーティング
システムの少なくとも一部分が含まれていて、これが、
全てのモードで実行できる装置ドライバ及び割込みサー
ビスルーチンを含んでぃろのが好ましい、全てのモード
に共通したメモリアドレス方法を使用できないようなマ
イクロプロセッサの場合は、本発明の別の好ましい実施
例において、オペレーティングシステムのサブルーチン
のベースアドレスを選択してマルチモードアドレス動作
を可能とするような改良された方法が提供される。 I
ntel 80286及びこれと同様のアーキテクチャ
を有するマイクロプロセッサに用いるように設計された
好ましい実施例では、保護モードのマツピングアーキテ
クチャに適合するフォーマントであるようなリアルメモ
リセグメントのベース値を選択し、そして保護モードの
記述子テーブルを構成して、リアルモードで得られたも
のと同じベースアドレスを形成するという段階が含まれ
る。従って、装置トライバ、割込みサービスルーチン、
及び両方のモードで頻繁に使用されるオペレーティング
システムの部分は、このように選択されたリアルメモリ
内の位置に配置される。 又、Intel 80286マイクロブロセソサに使用
するための好ましい実施例では、装置トライバによって
指定されたI10位置のアドレスを検査し、現在モード
の所望のメモリ位置をアドレスする32ビツト(セグメ
ント:オフセット)ポインタを形成するようなオペレー
ティングシステムサブルーチンが含まれるのが好ましい
、システムが保護モードにある時には、サブルーチンが
この結果を得るようにGDT又はLDTをプログラムす
る。 システムがリアルモードにある時には、サブルーチンが
内部診断命令を用いてリアルモードアドレスを発生し、
80286がリアルモードにおいても1メガバイトより
上のメモリ位置をアドレスするようにさせるのが好まし
い、或いは又、1メガバイ゛トより上のメモリアドレス
に記憶しようとする情報は、システムがリアルモードに
ある間に1メガバイトより下のアドレスでバッファに一
時的に記憶しておいて、システムが保護モードに切り換
わった時に1メガバイトより上の所望のメモリ位置に転
送することができる。 又、Intel 80286マイクロプロセツサに使用
するための好ましい実施例では、8086のプログラム
と80286との適合の問題を解消するように構成され
た段階を含むのが好ましい、システムの性質にもよるが
、アドレスラインA20の影響をなくすためのソフトウ
ェアの変更や補助的なハードウェア素子の追加も行われ
る。 好ましい実施例では、それ自身の割込み処理ルーチンの
アドレスをハードウェア割込みベクトルテーブルに記憶
する既存のリアルモードプログラムを処理するための手
段が含まれている。特殊なコードにより、DO8は、こ
のような割込み処理ルーチンによって要求された時にリ
アルモードにモードを切り換えそして保護モードに戻っ
て、割り込まれたプログラムの実行を続けることができ
る。 割込みベクトルをフックするプログラムに使用するよう
に設計された別の好ましい実施例では、マルチタスク環
境においてこのようなプログラムによって生じる問題を
解消する手段が含まれる。 DO3は、ハードウェアベクトルテーブルを監視してア
プリケーションプログラムによりフック状態を検出し、
適当な時期にこのアプリケーションプログラムの割込み
処理ルーチンへ制御を移行させるディスパッチャを含ん
でいる。1つの好ましい実施例では、ディスパッチャの
動作を容易にするため、割込みベクトルがハードウェア
割込みテーブル内の新たな位置へ移動される。 又、更に別の好ましい実施例では、リアルモードにおい
てプログラムに使用できるメモリの量を増大する技術が
含まれる。先ず、DO3の64Kがメモリの1メガバイ
ト位置に配置される。更に、比較的大きく且つ頻繁に使
用されないか又は比較的速度の遅いDO5の部分がメモ
リ内で1メガバイト上に配置され、保護モードの場合に
のみ使用される1本発明のモード切り換え技術により。 このようなりOSコードは、必要に応じて保護モードに
切り換えたり保護モードから切り換えたりすることによ
りリアルモードプログラムでアクセスすることができ、
所要の動作を実行することができる6 更に別の好ましい実施例では、リアルモードプログラム
で動作している時に保護機能を促進するための補助的な
保護ハードウェアを設けることができる。有効I10ア
ドレスのリストに対してCPUによって試みられた各々
の工/○動作をチェックするために■/○マスキングハ
ードウェアを設けることができる。更に、補助RAMに
記憶された許可されたアドレスのリストに対しCPUに
よって試みられた各々のメモリ動作をチェックするため
にメモリ保護ハードウェアを設けることもできる。 実施例 本発明は、Intei 80286マイクロプロセツサ
で実施するように構成された好ましい実施例を説明する
ことによって最も良く理解されよう1本発明では、リア
ルモードプログラムと保護モードプログラムを混合して
80286において性能を損なうことなく実行すること
ができる0両方のモードで害き込まれたプログラムは、
80286システムにロードされ、必要に応して、改良
されたマルチタスクオペレーティングシステムを用いて
実行される。 このオペレーティングシステムは、現在実行されている
プログラムにより必要に応じて80286のモードを切
り換える手段を備えている。システムの性能を最大にす
るような更に別の手段が設けられるのが好ましい1本発
明の初期作動段階を最初に述べ1次いで1作動効率を増
大し且つ適合性の問題を解消するように構成されたモー
ド切り換え技術及び段階について説明する。最後に、リ
アルモードプログラムを実行する時に保護機能を促進す
るような別のハードウェアを用いた更に別の好ましい実
施例について説明する。 80285を組み込んだシステムで作動するアプリケー
ションプログラムは、典型的に、磁気ディスクのような
補助的な記憶i[からシステムの主メモリにロードされ
る。 8021116に対して書かれた各プログラムは
、プログラムがリアルモードで作動するように指定され
たか保護モードで作動するように指定されたかを指示す
るインジケータ即ちフラグを含んでいる。各プログラム
が主メモリにロードさ九る時に、オペレーティングシス
テムは。 それがリアルモードプログラムであるか保護モードプロ
グラムであるかを判断し、それに応じてプログラムを主
メモリ内に記憶するのが好ましい。 最良の態様の他部分を以下で述べる時に明らかとなる理
由で、本発明の方法を用いる時には、リアルモードプロ
グラムが1メガバイトより下のメモリアドレスに記憶さ
れモして保護モードプログラムが1メガバイトより上の
メモリ位置に記憶されるのが好ましい。 各プログラムがシステムの主メモリにロードされる時に
は、プログラムの名前、サイズ、メモリ位置及び形式(
リアル又は保護)といった情報を含む記録が形成される
。実行する時には、本発明によるオペレーティングシス
テムは、プログラムの形式と、マイクロプロセッサの現
在モードとをチェックし、必要に応じて、以下で述べる
ようにモード切り換え信号を発生する。 モード切り換え 80286を最初に作動する時には、これがリアルモー
ドで初期化される。リアルモードから保護モードへの切
り換えは、この目的のために80286によって与えら
れる命令で行われる0本発明においては、保護モードか
らリアルモードへの切り換えは1次のように行われる。 先ず始めに、マイクロプロセッサがリセットされる。
80286は、保護モードからリアルモードへの切り換
え方法を備えていないから、マイクロプロセッサをリセ
ットして保護モードからリアルモードへ復帰することが
必要である。実際のリセット信号は、この目的で構成さ
れたハードウェア素子によって発生される。リセット信
号の作動は種々の技術によって達成できる1例えば、リ
セット信号は、I10ボートを用いて発生され、リセッ
トハードウェアに信号を送り、CPUリセット信号を発
生することができる。このような技術は、殆どの802
86システムにおいてリセットを行なうように意図され
た樟準的な方法であるが、80206を組み込んだ成る
システム、例えば、IBN PC/ATでは、このよう
な技術を用いると、比較的速度が遅くなることが分かっ
ている。従って、本発明の方法をIBN PC/ATコ
ンピュータに関連して使用する時には、保護モードにお
いて「三重欠陥」信号を発生することによってリセット
を行なうのが好ましい、この三重欠陥信号は、保護モー
ドにおいて3つの別々の保護違反を意図的に犯すことに
よって発生される。 IBM PC/ATに見られるよ
うな補助的な監視回路を設けて、80286を監視し、
三重欠陥状態を検出し、三重欠陥状態の発生時にリセッ
トハードウェアを作動することができる。このような状
態のもとでは、工/○ボートを用いて発生されるリセッ
ト信号よりも数百マイクロ秒速くCPUのリセットが行
われる。 リセット信号は、典型的に、システムクロック発生チッ
プへ送られ、従って、この信号は、システムクロックと
適当に同期される。このソフトウェアで指令されるリセ
ット信号は、通常は、「一般的なシステムリセットコラ
イン或いは他のチップ、例えば、割込み制御器、装置制
御チップ又は802&?共通プロセッサ(もしあれば)
へは送られない。 80286がリセットされた後、特定のチップリセット
アドレスにおいて実行を開始する。このアドレスは、通
常、ブートアップソフトウェアを含むROMに対応する
。従って、マイクロプロセッサがリセットされた時には
、通常直接的に初期化ルーチンもしくはブートアンプル
−チンに入る。 然し乍ら、保護モードからリアルモードに復帰する時に
は、マイクロプロセッサ全体を再初期化する必要もない
し又望ましくもない。従って、ブートアップソフトウェ
アのコードは、通常のブートアップ手順に入る前に、リ
セットがソフトウェア制御のもとて明確に開始されたか
(モード切り換えが行われることを示す)又は電源オン
といった外的なハードウェアに関連した事象によって開
始されたかをチェックするように変更される。このよう
な判定を行なうのに種々の方法を使用できる。 オペレーティングシステムは、特殊な値又は特殊な値の
パターンを揮発性RAMに入れることができる。ブート
アップソフトウェアがこのような値又は値のパターンを
検出した場合には、プロセッサが既に作動されていてモ
ード切り換えが行われていることが分かる。不揮発性の
RAMが存在する場合には、モード切り換えが行われて
いるかどうかを判断するためにブートアップソフトウェ
アによって質問することのできる「モード切り換えリセ
ット」フラグのための位置を確保することができる。ハ
ードウェアで発生されるリセット信号によってセットさ
れそしてソフトウェアで発生されるリセット信号によっ
てクリアされるようなハードウェアラッチを使用するこ
とができる。このラッチは1例えば、I10ボートのよ
うなブートアップソフトウェアによって質問することが
できると共に、多くのシステムにおいては、モード切り
換えリセットを検出するフェイルセーフ手段の役目を果
たすので好ましい。 80286がリセットされる間に、システムの他部分は
動作を続けることができる。RAMの位置がプロセスに
よって撰傷を受けることはない、システムの他部分が動
作を続けられるので、リセット中には2つの予防策をと
ることが必要である。 先ず第1に、80286は、リセットの間にバス許可動
作を適切に実行しないことがあるので、ダイレクトメモ
リアクセス機構の設計にもよるが、ダイレクトメモリア
クセス動作を行なわないように確保することが必要であ
る。 80286のリセット中に行なうべき第2の予防策は、
割込み処理に関するものである。リセット動作中には割
込みを不能にすると共に割込み状態を見失わないように
することが必要である。システムがエツジトリガ式の割
込みを用いている場合には、ハードウェアが入ってくる
割込みを忘れないようにしなければならない、ここに述
べる好ましい方法では、Intel 8259のような
プログラム可能な割込み制御器をシステムに使用するの
が好ましい、このようなシステムにおいては、割込みを
防ぐように8259マスクレジスタをプログラミングす
ることによりモード切り換え中にマスク可能な割込みが
防止される。 80286のCLI (クリア割込み
フラグ)命令を用いても同じ結果を得ることができ、割
込みが不能とされる。 モード◆リ えの効率 オペレーティングシステム環境においてモード切り換え
を実施するためには、システムの一般的な動作が低速で
あってはならない、それ故、オペレーティングシステム
は、両方のモードで実行できるように書き込むのが好ま
しい、オペレーティングシステムが1つのモードでしか
実行できないように害き込まれた場合には、一方のモー
ドで作動しているプログラムをシステムの呼出し中に強
制的に他方のモードに切り換えたり他方のモードから切
り換えたりすることになる。このため、本発明の好まし
い実施例では、オペレーティングシステムの全部又は大
部分がリアルモード及び保護モードの両方で実行できる
ように書き込まれる。 更に、170割込みを行なうためのモード切り換えはシ
ステムの性能を低下させるので、可能な時にはいずれか
のモードで作動できるように割込みサービスルーチンを
書き込まねばならない、装置ドライバは、タスクが装置
ドライバを用いたlloipII作を要求する時と、装
置ドライバルーチンがプロセッサに対して作動する時と
の間にモード切り換えが生じることがあるので、両方の
モートで作動できることが好ましい。 80286のアーキテクチャでは、リアルモード及び保
護モードで実行されるオペレーティングシステムを設計
するよう試みた時に各モードが別々のメモリアドレス方
法を用いているために特殊な問題を招く、従って、所与
のメモリアドレスは、通常、リアルモードにおいては8
0286システムの物理メモリ内の1つの位置を指示し
そして保護モードにおいては80286システムの物理
メモリ内の別の位置を指示する。これにより、オペレー
ティングシステムは、通常、両方のモードで作動できる
ためには各メモリ対象に対して2つのアドレス(リアル
及び保護)を維持することが必要となる。 このような要求により、オペレーティングシステムに負
担がか−ると共に、メモリアドレスの組み込まれた手順
呼出しを伴う問題が生じる。本発明では、リアルモード
及び保護モードにおいて共通にアドレスできるようにオ
ペレーティングシステムのルーチンを配置するという改
良された方法を提供することによってこの問題が解決さ
れる。どの方法の説明に先立ち、リアルモード及び保護
モードに用いられるメモリアドレス方法を説明する。 リアルモードにおいては、80286が、 8086プ
ロセツサのメモリアドレス方法をエミュレートする。全
てのメモリアドレス動作は、物理アドレス。 即ち「実」アドレスに関して行われる。アドレスは、次
の2つの成分を含む32ビツトポインタによって指定さ
れる。即ち、(1)セグメントのスタートアドレスを指
定する16ビツト量のセグメントセレクタ、及び(2)
1つのセグメント内の特定の位置の変位をバイト単位で
決定する有効アドレスオフセット、これら2つの値は、
一般に、(セグメント:オフセット)フォーマントと称
する。セグメントセレクタ及びオフセットは、第1図に
示すように合成さハて、20ピントの物理アドレスを形
成する。セグメントのベースアドレスは、16ビツトの
セグメントセレクタ値を、最下位4ビツトに0を有する
20ビツト値として解釈することによって決定される0
次いで、16ビントのオフセット値がこの20ビツトの
セグメントベースに追加され、物理アドレスを示す20
ビツト値が形成される。 (80286は、リアルモ
ードにおいては、8086をエミュレートするので、セ
グメントアドレスを示す各16ビツトの物理的な値は最
上位4ビツトがOにセットされて24ビツトレジスタに
実際に記憶され、リアルモードにおいてユーザに実際上
透過的となる。リアルモードアドレスのこの特性は、以
下で述べるように内部診断登用いて装置ドライバを取り
扱う好ましい実施例では重要なものとなる。) 保護モードにおいては、メモリアドレスを指定するため
に32ビツトポインタも使用される。 メモリマネージメント機構は、32ビツトポインタによ
って指定された論理アドレスと、このポインタによって
指定された実際の物理アドレスとの間にマツピング動作
を介在させ、物理的なメモリに拘りなく論理アドレスを
形成する。マツピングは、仮想アドレスの解釈を支配す
る多数のメモリ常駐記述子テーブルを用いることによっ
て行われる。従って、32ビツト仮想アドレスのセグメ
ントセレクタ成分は、物理メモリ内の位置ではなくて記
述子テーブル内の特定の位置を指定する。記述子テーブ
ルは、「記述子」と称する8バイトのエンティティで構
成される。セグメントセレクタ内のインデックスフィー
ルドは、記述子テーブル内のセグメント記述子を指す、
セグメント記述子は、マイクロプロセッサの物理アドレ
ススペース内のセグメントベース位置を識別する24ビ
ツト値を含む。 保護モードセグメントセレクタのフォーマットが第2図
に示されている。セグメントセレクタの最下位2ピント
は、80286の保護機構に使用される許可ビットであ
る。セグメントセレクタのビット2は、物理メモリ位置
がグローバル記述子テーブル(GDT)から選択される
かローカル記述子テーブル(LDT)から選択されるか
を定めるテーブルインジケータビットである。テーブル
インジケータピントがゼロにセットされた時には。 グローバル記述子テーブルが選択される。GDTは、グ
ローバルアドレススペース用のベースメモリ位置を含み
、これは、システム巾の手順及びデータ (オペレーテ
ィングシステムを含む)に対して使用される。テーブル
インジケータビットが1にセットされた時には、セグメ
ントセレクタがローカル記述子テーブル(LDT)を選
択し、これは、各タスクごとに別々にマスクされるロー
カルアドレススペースを選択する。 第3図は、32ビツト仮想アドレスを用いてマイクロプ
ロセッサの物理メモリ内の位置を定める方法を概略的に
示すものである。セグメントセレクタのテーブルインジ
ケータビットは、GDTを使用するか現在のLDTを使
用するかを指示し。 それに対応するGDTR又はLDTRが適当なテーブル
のベースアドレスを与える0次いで、最上位13ビツト
で構成されるセグメントセレクタのインデックスフィー
ルドを使用して、テーブルから適当なセグメント記述子
を選択する。プロセッサは、インデックス値に8を乗算
しく記述子当り8バイトあるので)、適当なセグメント
記述子をアクセスする。 第4図に示すように、セグメント記述子の内容は、1櫻
セグメント(アドレスが探索される物理メモリ内のセグ
メント)のベースアドレスを指示する24ビツト値を含
んでいる0次いで、32ビツト仮想アドレスからの16
ビツトオフセツト値がこのセグメントベースアドレスに
加算されて物理メモリアドレスが形成される。 本発明の方法においては、オペレーティングシステムの
全部又は大部分がリアルメモリに記憶され、オペレーテ
ィングシステムルーチンの入力点のアドレスをリアルモ
ード及び保護モードの両方において共通の(セグメント
:オフセット)値で指定できるようになっている。第5
図は、グローバルアドレススペースを指定する保護モー
ドのセグメントセレクタ成分に対するフォーマントを示
している。オペレーティングシステムのセグメントは、
セグメントセレクタがグローバル記述子テーブルを選択
するフォーマットでコード化されるように、即ち、セグ
メントセレクタのビット2が0となるように、アドレス
スペース内に配置されるのが好ましい、LDTの使用も
考えられるが、LDTを操作するためのオーバーヘッド
が過剰となるために好ましくない、第5図に示す例では
、最下位2ビツトがOにセットされている。これらのビ
ットはOにセットされて特権レベル0を指示するのが好
ましい1本発明の方法は、セグメントセレクタの最下位
2ビツトを非ゼロ値にセットして使用することもできる
が5このような値は、あまり好ましいものではない、と
いうのは、保護モードで作動する時に80286の保護
機構に影響が及ぶからである・ 第6図は、第5図に示されたフォーマットのセグメント
セレクタをリアルモードにおいていかに解釈するかを示
すものである。リアルメモリにおいてベースアドレスを
定める20ビツトセグメントベースは、ビット7ないし
19のセグメントインデックス値と、最下位7ビツトの
Oとを含んでいる。 従って、リアルモードアドレス動作又は保護モードアド
レス動作のいずれかを用いてリアルメモリに同じベース
アドレスを得るためには、リアルモードの20ビツトセ
グメントベース値に等しイflffをグローバル記述子
テーブルに含まれた適当なセグメント記述子の24ビツ
トベース値に記憶することが必要である。 リアルモード及び保護モードの両方でアクセスすること
のできるメモリ位置を選択するこの方法の一例が第7図
に示されている。先ず、保3モードに適合するフォーマ
ットのリアルモードセグメントセレクタが選択される。 ここに示す例では、2進値1i000が選択される。こ
の例を説明するために、オフセント値Oが選択される。 リアルモードにおいては、セグメントセレクタが、2進
値11000oooo、即ち、180HEXの20ビツ
トベースセレクタに変換さ九る。オフセット値0がこの
セグメントベースに加算され、180HEXのリアルメ
モリアドレスが形成される。 保Sモードにおいては、11000のセグメントセレク
タ値が最下位2ピントを○と指定し、テーブルビットを
Oと指定しそしてインデックス値を011と指定する。 このインデックス値は、GDTにおいて値011に対応
する記述子を選択する0本発明の方法を用いると、この
記述子に含まれた24ビツトヘース値が0110000
000にセントされ、これは、リアルモードにおいてセ
グメントベースとして得られたものと同じである。保護
モードでは、この24ピントのベース値がオフセットに
加算されて、メモリアドレス180HEXがリアルメモ
リに得られる。第7図に示すように1例えば、オペレー
ティングシステムのサブルーチンは、その入力点アドレ
スが180HEXで記憶され、いずれのモードにおいて
もアドレスすることができる。 上記の方法を用いて(セグメント:オフセット)値を選
択しそして共通にアドレスできるサブルーチンをそれに
対応する入力点アドレスと共に記憶することにより、オ
ペレーティングシステム、装首ドライバ及び割込みサー
ビスルーチンを同じ技術を用いて記憶することができ、
これらをいずれのモードで入力することもできる。 装置ドライバについて更に考えるべきことは、メモリア
ドレス性の良さである。保護モードプログラムは、1メ
ガバイトより上のアドレスに工/○を要求することがあ
る。要求されたI 10111作が実際の行われる前に
、プロセッサはリアルモードに切り換わることができる
。要求に応じるべき時に装置ドライバルーチンがリアル
モードで作動している場合には、I10位置をアドレス
することができない、この問題を解消するために、本発
明の一部分として使用されるオペレーティングシステム
は、I10位置のアドレスを検査して現在の実行モード
で所望のメモリ位置をアドレスする(セグメント:オフ
セット)対を形成するようなサブルーチンを含むのが好
ましい、システムが保護モーFiこある場合には、GD
T又はLDT!!−単純にプログラミングするだけでこ
れを行なうことができる。1メガバイトより下のリアル
モードアドレスについても、プログラミングは同様に単
純である。然し乍ら、1メガバイトより上のリアルモー
ドアドレスについては、特殊な技術を用いるのが好まし
い、 80286は、8086及びその20ビツトの物
理メモリアドレスフォーマットをエミュレートするので
、内部診断命令を用いて、リアルモードで24ビツトの
物理アドレスを形成することができる。このような命令
により、オペレーティングシステムは、4つの上位ピン
トに値を挿入することができる。これらのピントは、通
常、0にセットされ、リアルモードにおいてシステムプ
ログラムに透過的である。このような命令の使い方及び
働きに関する情報は、典型的に、マイクロプロセッサの
製造者から入手できる6例えば、インテル社は、802
86に関する情報を供給している。 この方法を用いて24ビツトのセグメント値が形成され
ると、装置ドライバは、リアルモードにおいて1メガバ
イトより上のメモリをアドレスすることができる。リア
ルモードにおいて1メガバイトより上のメモリを強制的
にアドレスするのとは別に、1メガバイトより下のメモ
リ位置にバッファ?:形成して、システムが保護モード
に切り換わるまでデータを一時的に記憶することができ
る。 システムが保護モードに切り換わった時には、バッファ
の内容を1メガバイトより上のアドレスに伝送すること
ができる。 7合性の問題 1、メガバイトラップ 本発明による好ましい方法は、リアルモードで作動する
80286と、8086に対して書かれた既存の:、4
S D OSプログラムとの間の適合性の問題を解
消するように構成された段階を含むのが好ましい、この
ような問題は、リアルモードの80286が8086−
8088チツプを非常に完全且つ正確にエミュレートし
ないことから生じる。このような適合性の問題の1つが
「1メガバイトラップj問題として知ら九ている。 8
086は、1メガバイトより上のメモリ位置をアドレス
できないので、1メガバイトより上のメモリ位置をアド
レスしようとした場合にはビット19の上のピントに記
憶されるであろう値が無視されることになる。従って1
位置11111111111111111111+01
0をアドレスしようと試みた場合は、下位のメモリ位置
01に対してアドレスがラップされることになる。80
86に対して書かれた幾つかのプログラムが適切に作動
するためにはこの機能によって大きく左右される。不都
合なことに、メモリ位置は、 802136がリアルモ
ードにある場合1メガバイト上に延びており、下位のメ
モリ位置に対してラップされない、従って、マイクロソ
フトPASCALで書かれたプログラムやM S −D
OSの’Ca115’機能を用いたプログラムを含む
プログラムは、標準的な80286システムに役立たな
い6本発明によって設計されたオペレーティングシステ
ムは。 この問題に対して2つの別々の解決策を果たすのが好ま
しい。 1メガバイトより上のメモリで構成されたシステムの場
合は、アドレスラインA20の作用を不能とするような
補助的なハードウェア素子が設けられるのが好ましい。 アドレスラインA20は。 計算において桁上げビットを作動可能とし、従って、こ
れが作動不能となると、ラッピングが生じろ、このハー
ドウェアは、ソフトウェア指令のもとで作動したり不作
動としたりすることができる。 オペレーティングシステムは、リアルモードのプログラ
ムを実行する前に必要に応じてこのハードウェアを作動
させる。 IBN PC/ATのようなコンピュータに
おいては、A20ラインの不作動化が比較的ゆっくりと
した段階であり、これは、システムを最初にブートアッ
プする時に行われるのが好ましい、この場合、モード切
り換え中にA20ラインのハードウェアを再プログラミ
ングする必要はない。 メモリが1メガバイトを越えて延びるようなシステムの
場合は、特殊な命令を1メガバイトより上の下位メモリ
位置に入れて所望の下位メモリ位置を指すようにするこ
とにより問題を解消するのが好ましい。例えば、P A
S CA Lプログラムは、64により下のメモリに
ロードされず、特殊な命令は、1メガバイトより上の下
位メモリ位置、例えば、アトL、ス100000h又は
100010hに入れられる3例えば、タスクのPDB
のrcall 5J命令は2上位メモリアドレスにジャ
ンプするように変更され、次いで、制御がDOSに移さ
れる。これで、A20は、作動しているプログラムのモ
ードに拘りなく常時作動されたまNとなる。 2、割込み 80割込み処理ルーチンを有するリアルモードプログラ
ム 成る既存のリアルモードプログラムは、それ自身の割込
み処理ルーチンのアドレスを割込みベクトルテーブルに
記憶することによってハードウェア割込みを使用する。 これは、80286が保護モードにある時にこれらプロ
グラムの割込み処理ルーチンが割込みベクトルによって
呼び出されることを意味する8本発明のディスクオペレ
ーティングシステム(DOS)は、80286をリアル
モードに切り換えさせる特殊なりOSコードを割込みベ
クトルが指示するようにさせ、次いで、制御をリアルモ
ードプログラムの適当なアドレスに移すことによって、
これらの状態を処理するのが好ましい。 更に別の復帰アドレスがスタックに入れられ、割込みサ
ービスが完了した時に、プログラムによって制御がDO
Sに戻され、モードが保護モードに切り換えられ、次い
で1割り込まれたモードに復帰される。 この割込み遮断を実行するのに使用される技術は、2つ
ある。第1の技術は、この特殊なコードをDOSの「セ
ットベクトル」コマンドハンドラに入れることである。 成るプログラムでは、このDO5Iiiを用いて1割込
みベクトルの内容が変更される。 第2の技術は、割込みベクトルに直接書き込まれるプロ
グラムに関するものである。リアルモードプログラムを
ディスパッチする前に、DOSは割込みベクトルの状態
を記録する。 80286が再指定されようとする時に
は、DOSがベクトルを再検査し、変更点を探す。検出
された変更点は、ベクトルの編集を表わしており、上記
した特殊なりOSコートを指すように割込みベクトルを
編集することによって処理される。 b、プログラムをフックする別の好ましい実施例 多くのアプリケーションでは、手前の内容を読み取って
セーブすることにより割込みベクトルが「フック」され
る。割込みベクトルから制御権を受は取ると、手前のア
ドレス値にジャンプすることによりこれを「バス」する
にの技術は、当該プログラムが終了しない限り良好に機
能する。 このような割込み連鎖において1つのプログラムが終了
した場合には、それより上流のプログラムが、割込み時
に、その終了したプログラムを指示するのに用いるメモ
リアドレスに制御権を移し続けることになって、システ
ム欠陥を生じる。この現象が第8図ないし第12図に示
されている。 第8図は、アプリケーションプログラムが割込みに関与
しない時に既存のオペレーティングシステムDO3が割
込みにいかに応じるかを示している。この場合、DOS
は、割込み処理ルーチンの入力点のアドレス(0120
)を割込みベクトルテーブルに入力する。第8図に示し
た割込みベクトルテーブル内の位置に対応する割込みが
生じた時には、80286が割込み処理ルーチンに対応
するDO3に制御権を移す0割込み処理ルーチンがその
作業を完了すると、[割込み復帰(IRET)J命令を
実行し、80286はその前の実行プログラム流に復帰
する。 第9図は、典型的に1つのアプリケーション(アプリケ
ーション1)が既存のDO3環境においていかにハード
ウェア割込みを遮断するかを示しでいる。DO5は、第
8図に示し且つ上記したように、その割込み処理ルーチ
ンのアドレス(0120)を割込みバク1−ルテーブル
に入力している。アプリケーション1は1割込みベクト
ルの現在の内容(0120)を読み取り、この値をその
アドレススペース内の成るメモリ位置にセーブする。次
いで、それ自身の割込み処理ルーチンのアドレス(10
50)をハードウェアベクトルテーブルに入力する。 割込みが生じると、 80286は、DO8割込み処理
ルーチンではなくてアプリケーションの割込み処理ルー
チンに制御41!を移す0次いで、アプリケーションは
、典型的に、割込みの原因を調査し。 その割込み自体を処理してIRET命令を発し、制御権
をその前の実行プログラム流に戻すか又は制御権をDO
3割込みハンドラ(そのアドレスをセーブしている)に
移すかを判断する。前者の場合には、DO3割込みハン
ドラが実行されない。 第10図は、第9図に示されて上記で述べた事柄に第2
のアプリケーション(アプリケーション2)が追加され
る時に何が起こるかを示している。アプリケーション2
は、ハードウェア割込みベクトルテーブルを読み取って
、アプリケーション1の割込み処理ルーチンのアドレス
(1050)をそのアドレススペースにセーブしている
。次いで、アプリケーション2は、それ自身の処理ルー
チンのアドレス(2080)をベクトルテーブルに入力
している。 この場合、割込みが生じると、最初に、アプリケーショ
ン2の割込み処理ルーチンに入る。次いで、割込みが処
理されるか、制御権がアプリケーション1の割込み処理
ルーチンに移されるかのいずれかである。制御権がアプ
リケーション1の割込み処理ルーチンに移行される場合
には1割込みが処理されるか、又は、制御権がDO3の
割込み処理ルーチンに移される。 この連鎖によって形成される優先順位機構に注目された
い、システムに入る最後のアプリケーションは、割込み
に対して最初に取捨選択する権利を有しており、005
は、アプリケーションが割込みを所望しない場合だけ割
込みを処理する最後の処理手段である。この技術は、ア
プリケーションがターミナルからのキーストロークに対
してフィルタ作用を果たして成る特殊な「制御」キーコ
ードを確認する一方、確認されないコードを連鎖に含ま
れた次の下流のハンドラへ送九るようにするためiニー
u的に使用されている。 割込みベクトルを連鎖にするこれらの技術を用いたプロ
グラムは、典型的に、これらプログラムから退出した時
にこれらプログラムに取って代わったハンドラのアドレ
スを復帰させる。第11図は、アプリケーション2の終
了を示しており。 その前に、アプリケーション2は1割込みベクトルテー
ブルの値をアプリケーション1の処理ルーチンの値(1
050)に復帰している。 第12図は、アプリケーション2の前に終わるアプリケ
ーション1の作用を示している。アプリケーション1は
、これがセーブしたハンドラのアドレス、即ち、DOS
ハンドラのアドレスを復帰する。これが行われた後、ア
プリケーション2(まだ作動している)は、連鎖から不
適切に明所される。 この不適切な動作は、マルチタスクシステムが単一タス
クシステム用として設計されたアプリケーションを作動
していることがら直接的に生じるものである。このよう
なアプリケーションでは。 システムの1つのプログラム(それ自体)しか終了させ
ることができないものと仮定される。この仮定は、マル
チタスクシステムでは成立しない。 図示されていないが更に多くの重要な事柄があることに
注、偲されたい、上記の説明に続き、アプリケーション
2がここで終了した場合には、割込みベクトルテーブル
を、これがセーブされた値、即ち、1050に復帰させ
る。この値は、アプリケーション1の割込み処理ルーチ
ンの前のアドレスを示すもので、割込み処理ルーチンは
、もはやこのアドレスにはない、メモリ内のランダムな
位置を指すベクトルがハードウェアベクトルテーブルに
存在する場合、典型的に、システムは、長い時間が経過
する前に崩壊することになる。 本発明の好ましい実施例では、上記の問題を解消するよ
うな新規な割込み処理方法を含むのが好ましい、DOS
によって使用される各ハードウェア割込みベクトルは、
「ディスパッチャ」と称するDOSの特殊なルーチンを
指すようにDOSによって設定される。このディスパッ
チャは、各割込みにおけろ全ての当該ハンドラルーチン
のクライエントリストを保持し、適当な時期にこのよう
なハンドラに制御権を移す。 第13図に示す割込み処理方法の好ましい実施例では、
各割込みベクトルがディスパッチャルーチンの対応する
入力点を指すようにセントされる。第13図は1例えば
1割込みベクトルNa 8がディスパッチャのアドレス
190を指すようにセントされたところを示している。 ディスパッチャは、各割込みベクトルに対応するクライ
エントリストを保持する。最初、クライエントリストは
。 1つの入力、即ち、DOSの欠陥ハンドラのアドレス(
第13図の0120)L、か含んでいない。 ディスパッチャは、ハードウェア割込みベクトルの内容
を監視し、アプリケーションプログラムがハードウェア
割込みベクトルの内容をそれ自身の割込みハンドラルー
チンのアドレスと交換した時を決定する1割込みベクト
ルの内容は、割込みが生じるたびに且つ制御権がDOS
に移されるたびにチェックされる。変化が検出された時
には、DOSが割込みベクトルの新たな内容をそのクラ
イエントリストの上部に読み込み、ディスパッチャを指
すように割込みベクトルをリセットする。 例えば、アプリケーション1 (第13図に示す)が実
行を開始すると1割込みベクトル(190)からのアド
レスをセーブし、それ自身の割込みハンドラルーチンア
ドレス(1050)を割込みベクトルに入れる。このベ
クトルに対する次のディスパッチもしくは割込みの際に
、DOSは、アブロケーションがハードウェア割込みベ
クトルを変更したことを知らせる。これにより、ハード
ウェア割込みベクトルが190にリセットされてディス
パッチャを指すと共に、アプリケーション】のハンドラ
のアドレス(1050)がこのキ]込みベクトルのため
のディスパッチャリストに加えら几る。 アプリケーション2が始まると、同じ手順が行われる0
割込みベクトルは、ディスパッチャを指すように復帰さ
れ、ディスパッチャのクライエントリストは、今度は、
次の3つのアドレスを含む、即ち、0120 (003
割込みハンドラルーチンのアドレス);1050 (ア
プリケーション1の割込みハンドラルーチンのアドレス
);及び2080 (アプリケーション2の割込みハン
ドラルーチンのアドレス)。 割込みが生じると、ディスパッチャは、各割込みハンド
ラルーチンを逆の順序(即ち、アプリケーション2、ア
プリケーション1そしてDOS)で呼出し、やがて、こ
れらの1つがI RET命令を発して、割込みを処理し
たことを指示する。第13図の方法を用いた割込みの処
理が第16図のフローチャートに示されている。制御権
が入力点0190に移されると、ディスパッチャ内の初
期フラグについてチェックが行われる。初期フラグがセ
ントされていない場合には、ディスパッチャは、初期フ
ラグをセントし、クライニントポインタをセントし、デ
ィスパッチャの第2の入力点のアドレスをスタックに入
れ、そして処理されている割込みに対するクライエント
リストの第1アドレスに制御を移す、第13図に示され
た環境においては、アドレス2080、即ち、アブロケ
ーション2の割込みハンドラルーチンのアドレスに制御
権が移される。アプリケーション2は、割込みを処理し
てIRETを発するか、或いは、その前にセーブされた
アドレス0190に制御を戻す。 制御がアドレス0190に戻されると、ディスパッチャ
は初期フラグをチェックする。ここでは、初期フラグが
セットされているから、ディスパッチャは、クライエン
トポインタを増加し、制御権をクライエントリストの第
2のアドレスに移す。 第134図に示す環境においては、アドレス1゜5o、
即ち、アプリケーション1の割込みハンドラルーチンの
アドレスに制御権が移される。アプリケーション1は、
割込みを処理して制v4権をアドレス0190に戻すか
、或いはI RETを発する。第16図に示すように、
割込みハンドラが1RETを発した時には、制御権がデ
ィスパッチャの第2の入力点に移される。というのは、
このアドレスが既にスタックの上部にあるからである。 次いで、ディスパッチャは、初期フラグをクリアし、別
のIRETをシステムに発し、割り込まれた実行プログ
ラム流に制御権を復帰させる。 本発明の方法を用いると、第14図に示すように、アプ
リケーションが終了して、割込みベクトルを、その前の
割込み処理ルーチンのアドレスであると考えられるもの
にセントした時に、DO5がシステムからのその逸脱を
検出し、終了しつ\あるアプリケーションの割込みハン
ドラのアドレスをディスパッチャのクライエントリスト
から除去する。 本発明の割込み処理ルーチンについては、別の実施例も
考えられる。第17図に示す好ましい実施例では、割込
みベクトルが、80286の割込み記述子テーブル内の
55’Jの位置へ移動されている。 例えば、割込みベクトル8によって以前に処理されたハ
ードウェア割込みは、今度は、割込みベクトル108に
よって処理される。このベクトル108は、ディスパッ
チャ内の最初の入力点を指すようにセットされる6割込
みベクトル8の値を得るために書かれたアプリケーショ
ンプログラムは、それらの割込みハンドラのアドレスを
割込みベクトル8に読み込み続けるが、DO5は、アプ
リケーションが割込みベクトル108を用いて転向しよ
うとするような割込みを実際上処理する。割込みベクト
ル8のような元の割込みベクトルの値は。 ディスパッチャ内の第2の入力点を指すようにセットさ
れる。従って、アプリケーションプログラムがシステム
に入って割込みベクトルのg集を試みる時には、その割
込み処理ルーチンのアドレスを元の割込みベクトルに入
れ、第2の入力点のアドレスをディスパッチャにセーブ
する。前記の実施例の場合と同様に、ディスパッチャは
、制御がDO8に移された時及び割込みを受けた時に割
込みベクトルの榎集をチェックする。編集が検出ざ九る
と、アプリケーションプログラムの割込み処理ルーチン
のアドレスがクライエントリストに入れられ、′、イ]
込みベクトルは、ディスパッチャ内の第2の入力点を指
すようにリセットされる。 ハードウェア割込みを受けた時には、これが割込みベク
トル108のような新たな割込みベクトルに向けられ、
制御は、ディスパッチャの第1の入力点へ切り換えられ
る。ここで、ディスパッチャは、具のハードウェア割込
みが生じたことが自動的に分かる。この実施例では、初
期フラグは必要とされない5次いで、ディスパッチャは
、そのクライエントポインタを初期化し、処理されてい
る割込みに対しクライエントリストの第1のクライエン
トに制御権を移す、第1のクライエントの割込み処理ル
ーチンが割込みを処理しない場合には、制御権を第2の
入力点へ復帰し、ディスパッチャはクライエントポイン
タを増加すると共に次のクライエントの処理を行なう、
クライエントによって発生された丁RET命令は、制御
権をその前の実行プログラム流に復帰させる。 3、別の好ましい実施例 30286を組み込んだ成る種の装置、例えば、18M
PC/ATやこれと同様の装置は、広く利用されてい
るが、そのハードウェア設計の幾つかの素子により、モ
ード切り換え速度が低下されたり、リアルモードプログ
ラムに使用できるメモリの量が1戊少されたりする。本
発明の′S1]の実施例では、このような装置の性能を
改善するのに使用できる技術が提供される。 例えば5本発明のモード切り換え技術を、第14図に示
すようにメモリ内のオペレーティングシステムの位置に
関連した成る技術と組み合わせることにより、性能の改
善が達せられる。全ての80286装置は、リアルモー
ドプログラムの場合、RAMの大きさを1メガバイトに
制限し、そして実際上は、殆どの802864A[が使
用可能なRAMの巣をプログラムにより640Kに制限
する0本発明の別の実施例においては、リアルモードプ
ログラムに使用できる下位640にのメモリ斌が。 64KまでのDO5をメモリの1メガバイト位置に配置
することによって最大にされる。DO5のこの部分は、
リアルモード及び保護モードの両方でアクセス/実行す
ることができ、1メガバイトより下に同じ量の空間を必
要としないし、又プログラムによって使用するための6
40にも必要としない。更に、比較的大きく且つ頻繁に
使用しないか或いは比較的低速であるようなりO5の幾
つかのエレメントは、メモリにおいて1メガバイトより
上に配置し、保護モート中にのみ使用することができる
6例えば、ファイルを開放するルーチン2フアイルの名
前を変えるルーチン、辞書を形成するルーチン及び辞書
を削除するルーチンは。 性能を著しく損なうことなく、1メガバイトより上に記
憶することができる。リアルモードプログラムが1つの
機能を要求する場合には、DO3が保護モードにおいて
モードを切り換え、要求された動作を実行し、逆にモー
ドを切り換えてからプログラムに復帰する。 4、補助的な保護ハードウェア 保護モードにおいてプログラムを走らせることができる
場合には、システムの保護及び安全性に大きく貢献する
ことができる。システムのユーザ/オペレータは、リア
ルモードプログラムの実行を拒絶するようにDO5に命
令して完全な保安環境を確保するようなコマンドを入力
することができる1本発明の別の好ましい実施例では、
システムの保護機能を維持しつ\もリアルモードプログ
ラムを実行できるようなハードウェア素子が提供される
。 第1のこのような装置を、ここでは、「工10マスキン
グハードウェア」と称する。 80286によって試み
られる各工/○動作を有効工/○アドレスのリストに対
してチェックするようなハードウェアを設けることがで
きる。DO5は、使用される単一のリストをプログラム
することができるが、複数のリストをハードウェアにま
って保持していて所与の時間に使用すべき適当なリスト
だけをDO5が指示すればようようにし、有効な1/○
アドレスを決定する必要がないようにすることが好まし
い、このようにすれば、動作が許可された時に、これを
実行することができる。さもなくば、バートウニアがそ
の動作を阻止したり不能としたりすることがある。有効
アドレスのリストは。 通常、80286によってプログラムされたR A M
装置に記を口される。 又、このハードウェアにより、DO3は、保護モードプ
ログラムを実行しつ\これらプログラムによって「安全
」なI10ボート(専用装置や。 表示カードのプログラムレジスタ)をアクセスできる一
方、その他のI10ボートへのアクセスを防止すること
ができる。 設けることのできる第2の形式のハードウェアは、メモ
リ保護ハードウェアである。 80286によって試み
られた各メモリ動作をチェックするようなハードウェア
を設けることができる。DO3は、リアルモードでプロ
グラムを実行する時にこのハードウェアを使用して、そ
のプログラムに対して許可された読み取りのみ及び書き
込みのみのアドレス範囲をこれにプログラミングする。 この位置以外のメモリ位置をアクセスしようと試みた場
合には、NMI事象によってフラグがたてられ、このよ
うな試みが(おそらく)防止される。このハードウェア
の典型的な設計は、許可ビット又はフィールドを含む小
型のRAMである。アクセスRAMの上位ピントは、高
速ルックアップRA Mからビット又はフィールドを選
択するのに使用される6ビツト(単数又は複数)の状態
は、動作の適合性を指示する。このRA Mは、DO3
によってプログラミングされる。 80287のモード切り換え 80287又は他のマルチモード共通プロセッサをサポ
ートするのに必要なノ1−ドウエアは、簡単なものであ
る。 80286の場合と同様に、80287は。 「リアルJ及び「保護Jの2つの作動モードを有してい
る。又、リアルモードから保護モードへ迅速に切り換え
るためのソフトウェア命令を有している。保護モードか
らリアルモードへ切り換える対応命令はない、従って、
80286の1つのボートによって簡単なラッチをア
ドレスできるようなハードウェア機構を設けなければな
らない、理想的には、80287のモード切り換えは、
前記したように幾つかの最適な使用を可能とするように
80286と独立したものでなければならない。 ソフトウェアで簡単に実施する場合には、常に、802
87を80286と一緒に切り換え、両方のプロセッサ
が常にリアルモード又は保護モードの同じモードにある
ようにする。然し乍ら、80287のモード切り換えを
行なう場合には、80287の状態やその他タスクに特
定なデータをセーブすることが必要である。全てのアプ
リケーションは+ 80287の共通プロセッサを必ず
しも使用しないために。 80286を切り換えるたびに80287を切り換える
と、切り換えプロセスが不必要に低速となる。それ故。 80287に使用される本発明の好ましい実施例では、
あたかも80287がシステムに存在しないかのように
80286をセントし、80287を80286と共に
モード切り換えしないのが好ましい、アプリケーション
プログラムが80287を使用しようとした時には、最
初は不成功に終わる。然し乍ら、このような試みの後、
80286は、 80287にアクセスできるようにリ
セットされる。 80287のモードがチェックされ、
80287を要求しているプログラムのモードと比較さ
れ、必要に応じて、 80287が切り換えられる。 次いで、プログラムが再スタートされる。 80287
を要求しているプログラムの実行が終了すると、802
86はリセットされ、80287が存在しないことを指
示する。 本発明の方法及び装置は、80286マイクロプロセツ
サ及びこのマイクロプロセッサを用いたコンピュータシ
ステムに使用するように構成された好ましい実施例につ
いて主として説明したが、本発明は、このような実施例
に限定されるものではない、むしろ、本発明は、802
86と同様なアーキテクチャを有していて前記の実施例
で解決したものと同様な問題を呈するようなマイクロプ
ロセッサに使用するものを含む技術的に同等の全ての実
施例を網羅するものとする。
なものとなるまで、そのマイクロプロセッサのソフトウ
ェアを作りたがらないこともしばしばある。消費者とソ
フトウェアの作家の両方の側から「待ちながら様子を見
よう」とするこの姿勢は、新規なマイクロプロセッサ及
びこのマイクロプロセッサを用いたコンピュータの成功
性を妨げることになる。 新規なマイクロプロセッサの設計者は、2つのモードで
動作するように新規なマイクロプロセッサを設計するこ
とによってこの問題を解決しようと試みている。この場
合、第1のモードでは。 マイクロプロセッサが従来のマイクロプロセッサをエミ
ュレートし、その従来のマイクロプロf 7すに対して
書かれた既存のプログラムを実行する6第2のモードで
は、マイクロプロセッサがその促進された機能を完全に
使用する。このような設計の場合、マイクロプロセッサ
を用いたコンピュータシステムの製造者は、従来のマイ
クロプロセッサに対して書かれた既存のプログラム全部
をそれらのコンピュータで作動できるという文句で広告
活動を行なうことができ、従って、 (理論的には)コ
ンピュータの販売を、この新規な促進されたモ−ドで作
動するように!2計したプログラムをソフトウェア作家
に書き始めさせるところまで活発化することができる。 このようなシステムの1つが、米国カリフォルニア州す
ンタクジラのインテル社(Intel Corp。 ration)によって12逍されたIntel 80
286である。 このIntel 80286の設計及び動作は、参考と
してここに取り上げるインテル社から入手することので
きるriAPX 286ニユーメリソクサブレメントを
含む1APX 286プログラマーズ・リファレンス・
マニュアル(iAPX 286 Programme
r’s ReferenceManual Inc
ludingthe 1APX 286 Numa
ricSupplement) Jと題する出版物に詳
細に述べられている。 Intel 80286 (以下、80286と称する
)は、2つのモートで作動する。[リアルモードjと称
する第1のモードにおいては、この80286が、80
88マイクロブロセソサフ7ミリであるインテル社の従
来の8086のアーキテクチャをエミュレートし。 これは5例えば、 IBM PC及びこれに対応するコ
ンピュータに使用されるものである。従って80286
マイクロプロセツサを組み込んだコンピュータ。 例えば、IBN PC/ATは、IBN PC及びこれ
に対応するコンピュータに対して書かれた既存の808
6プログラムで動作することができる。 「保護モード」と称する第2のモードでは。 80286アーキテクチヤは、大型のメモリアドレス機
構、促進されたマルチタスクサポート機構及び複雑な保
護機構を備えている。 発明が解決しようとする問題点 リアルモードでは、既存の8086プログラムを走らせ
ることができるが、リアルモードに関連した幾つかの制
約がある。第1に、アドレスできる物理的なメモリの大
きさが1メガバイトに制限される。(IBMATのよう
な成るコンピュータの場合は、プログラムに使用できる
物理的なメモリの大きさが更に640Kに制限される。 )第2に、リアルモードでは、マルチタスクにとって所
望される機能であるメモリレロケーションを行なうこと
ができない、第3に、リアルモードでは、ユーザ又はタ
スクからの干渉が激しくなるマルチタスク及びネットワ
ーク環境において必要とされる機能であるメモリ保護機
能が与えられない。 リアルモードの前記欠点により、80286は、一方の
モードから他方のモードへ頻繁に切り換えられるように
設計されていない、 80286は、リアルモードで初
期化され、80286によって与えられる命令によって
保護モードに切り換えることができる。保護モードから
リアルモードに切り換える方法もしくは命令は8028
6によって与えられない。 保護モードからリアルモートに′61帰するには、マイ
クロプロセッサをリセットすることが必要とされる。従
って、80286の設計者は、これを一方のモード又は
他方のモードで使用し、リアルモードの動作を保護モー
ドの動作と分離し、ひいては、保護モードのプログラム
をリアルモードの非保護Qb’tから分離するようにし
ている。 不都合なことtこ、このような分離は、効率という観点
から望ましいものではない、効率的な動作については、
80286を組み込んだマイクロコンピュータのオペレ
ーティングシステムもしくは’DO5’ が、マルチタ
スク環境においてリアルモードプログラムと保護モード
プログラムを混合した状態で作動できねばならない。 問題点を解決するための手段 太発明の目的は、マルチモードマイクロプロセッサを作
動する方法であって、マイクロプロセッサの種々のモー
ドで作動するように数計されたプログラムの混合体をマ
ルチタスク環境において効率的に実行できるような改良
さnた方法を提供することである。 不発明の別の目的は、別の好ましい実施例において、個
々の作動モードの機能を最大にするような方法を提供す
ることである。 本発明の更に別の目的は、既存のシステムに最小限のハ
ードウェアの追加しか必要としないような方法を提供す
ることである。 本発明の更に別の目的は、マルチモードマイクロプロセ
ッサを用いたコンピュータのための改良されたオペレー
ティングシステムを提供することである。 本発明の更に別の目的は、別の好ましい実施例において
、保護モードと非保護モードとを有するマルチモードマ
イクロプロセッサに使用されて非保護モードで作動する
時に保護機能を促進するような改良されたシステム設計
を提供することである。 本発明の更に別の目的は、好ましい実施例において、I
ntel 80286のようなマイクロプロセッサのマ
ルチタスク機能を増進する方法を提供することである。 本発明の更に別の目的は、Intel 80286を用
いたIBN PC/ATの如きコンピュータに使用する
よう設計された方法であって、マルチモードタスクのモ
ード切り換え環境において上記コンピュータを最適に作
動させるような方法を提供することである。 これらの目的及び以下の説明から明らかとなる別の目的
は、マルチモードマイクロプロセッサにおいてプログラ
ムを混合して実行するようにモードを切り換える改良さ
れた方法を提供することによって達成される。成るモー
ドから別のモードへ切り換えるためにリセットしなけれ
ばならないようなマイクロプロセッサに用いるよう設計
された本発明の好ましい実施例では、リセットハードウ
ェアをできるだけ効率的に作動することによってモード
の切り換えを行なうのが好ましい、マイクロプロセッサ
がリセットされた後、改良されたブートアップソフトウ
ェアにより、リセットがソフトウェア制御のもとて(モ
ード切り換えリセットを示す)開始されたかどうかが決
定され、もしそうであれば、ブートアップソフトウェア
の通常の初期化ルーチンがバイパスされる。リセット手
順の間には、ダイレクトメモリアクセス及び割込みを処
理するような特定の構成にされるのが好ましい。 本発明の好ましい実施例においては、オペレーティング
システムの少なくとも一部分が含まれていて、これが、
全てのモードで実行できる装置ドライバ及び割込みサー
ビスルーチンを含んでぃろのが好ましい、全てのモード
に共通したメモリアドレス方法を使用できないようなマ
イクロプロセッサの場合は、本発明の別の好ましい実施
例において、オペレーティングシステムのサブルーチン
のベースアドレスを選択してマルチモードアドレス動作
を可能とするような改良された方法が提供される。 I
ntel 80286及びこれと同様のアーキテクチャ
を有するマイクロプロセッサに用いるように設計された
好ましい実施例では、保護モードのマツピングアーキテ
クチャに適合するフォーマントであるようなリアルメモ
リセグメントのベース値を選択し、そして保護モードの
記述子テーブルを構成して、リアルモードで得られたも
のと同じベースアドレスを形成するという段階が含まれ
る。従って、装置トライバ、割込みサービスルーチン、
及び両方のモードで頻繁に使用されるオペレーティング
システムの部分は、このように選択されたリアルメモリ
内の位置に配置される。 又、Intel 80286マイクロブロセソサに使用
するための好ましい実施例では、装置トライバによって
指定されたI10位置のアドレスを検査し、現在モード
の所望のメモリ位置をアドレスする32ビツト(セグメ
ント:オフセット)ポインタを形成するようなオペレー
ティングシステムサブルーチンが含まれるのが好ましい
、システムが保護モードにある時には、サブルーチンが
この結果を得るようにGDT又はLDTをプログラムす
る。 システムがリアルモードにある時には、サブルーチンが
内部診断命令を用いてリアルモードアドレスを発生し、
80286がリアルモードにおいても1メガバイトより
上のメモリ位置をアドレスするようにさせるのが好まし
い、或いは又、1メガバイ゛トより上のメモリアドレス
に記憶しようとする情報は、システムがリアルモードに
ある間に1メガバイトより下のアドレスでバッファに一
時的に記憶しておいて、システムが保護モードに切り換
わった時に1メガバイトより上の所望のメモリ位置に転
送することができる。 又、Intel 80286マイクロプロセツサに使用
するための好ましい実施例では、8086のプログラム
と80286との適合の問題を解消するように構成され
た段階を含むのが好ましい、システムの性質にもよるが
、アドレスラインA20の影響をなくすためのソフトウ
ェアの変更や補助的なハードウェア素子の追加も行われ
る。 好ましい実施例では、それ自身の割込み処理ルーチンの
アドレスをハードウェア割込みベクトルテーブルに記憶
する既存のリアルモードプログラムを処理するための手
段が含まれている。特殊なコードにより、DO8は、こ
のような割込み処理ルーチンによって要求された時にリ
アルモードにモードを切り換えそして保護モードに戻っ
て、割り込まれたプログラムの実行を続けることができ
る。 割込みベクトルをフックするプログラムに使用するよう
に設計された別の好ましい実施例では、マルチタスク環
境においてこのようなプログラムによって生じる問題を
解消する手段が含まれる。 DO3は、ハードウェアベクトルテーブルを監視してア
プリケーションプログラムによりフック状態を検出し、
適当な時期にこのアプリケーションプログラムの割込み
処理ルーチンへ制御を移行させるディスパッチャを含ん
でいる。1つの好ましい実施例では、ディスパッチャの
動作を容易にするため、割込みベクトルがハードウェア
割込みテーブル内の新たな位置へ移動される。 又、更に別の好ましい実施例では、リアルモードにおい
てプログラムに使用できるメモリの量を増大する技術が
含まれる。先ず、DO3の64Kがメモリの1メガバイ
ト位置に配置される。更に、比較的大きく且つ頻繁に使
用されないか又は比較的速度の遅いDO5の部分がメモ
リ内で1メガバイト上に配置され、保護モードの場合に
のみ使用される1本発明のモード切り換え技術により。 このようなりOSコードは、必要に応じて保護モードに
切り換えたり保護モードから切り換えたりすることによ
りリアルモードプログラムでアクセスすることができ、
所要の動作を実行することができる6 更に別の好ましい実施例では、リアルモードプログラム
で動作している時に保護機能を促進するための補助的な
保護ハードウェアを設けることができる。有効I10ア
ドレスのリストに対してCPUによって試みられた各々
の工/○動作をチェックするために■/○マスキングハ
ードウェアを設けることができる。更に、補助RAMに
記憶された許可されたアドレスのリストに対しCPUに
よって試みられた各々のメモリ動作をチェックするため
にメモリ保護ハードウェアを設けることもできる。 実施例 本発明は、Intei 80286マイクロプロセツサ
で実施するように構成された好ましい実施例を説明する
ことによって最も良く理解されよう1本発明では、リア
ルモードプログラムと保護モードプログラムを混合して
80286において性能を損なうことなく実行すること
ができる0両方のモードで害き込まれたプログラムは、
80286システムにロードされ、必要に応して、改良
されたマルチタスクオペレーティングシステムを用いて
実行される。 このオペレーティングシステムは、現在実行されている
プログラムにより必要に応じて80286のモードを切
り換える手段を備えている。システムの性能を最大にす
るような更に別の手段が設けられるのが好ましい1本発
明の初期作動段階を最初に述べ1次いで1作動効率を増
大し且つ適合性の問題を解消するように構成されたモー
ド切り換え技術及び段階について説明する。最後に、リ
アルモードプログラムを実行する時に保護機能を促進す
るような別のハードウェアを用いた更に別の好ましい実
施例について説明する。 80285を組み込んだシステムで作動するアプリケー
ションプログラムは、典型的に、磁気ディスクのような
補助的な記憶i[からシステムの主メモリにロードされ
る。 8021116に対して書かれた各プログラムは
、プログラムがリアルモードで作動するように指定され
たか保護モードで作動するように指定されたかを指示す
るインジケータ即ちフラグを含んでいる。各プログラム
が主メモリにロードさ九る時に、オペレーティングシス
テムは。 それがリアルモードプログラムであるか保護モードプロ
グラムであるかを判断し、それに応じてプログラムを主
メモリ内に記憶するのが好ましい。 最良の態様の他部分を以下で述べる時に明らかとなる理
由で、本発明の方法を用いる時には、リアルモードプロ
グラムが1メガバイトより下のメモリアドレスに記憶さ
れモして保護モードプログラムが1メガバイトより上の
メモリ位置に記憶されるのが好ましい。 各プログラムがシステムの主メモリにロードされる時に
は、プログラムの名前、サイズ、メモリ位置及び形式(
リアル又は保護)といった情報を含む記録が形成される
。実行する時には、本発明によるオペレーティングシス
テムは、プログラムの形式と、マイクロプロセッサの現
在モードとをチェックし、必要に応じて、以下で述べる
ようにモード切り換え信号を発生する。 モード切り換え 80286を最初に作動する時には、これがリアルモー
ドで初期化される。リアルモードから保護モードへの切
り換えは、この目的のために80286によって与えら
れる命令で行われる0本発明においては、保護モードか
らリアルモードへの切り換えは1次のように行われる。 先ず始めに、マイクロプロセッサがリセットされる。
80286は、保護モードからリアルモードへの切り換
え方法を備えていないから、マイクロプロセッサをリセ
ットして保護モードからリアルモードへ復帰することが
必要である。実際のリセット信号は、この目的で構成さ
れたハードウェア素子によって発生される。リセット信
号の作動は種々の技術によって達成できる1例えば、リ
セット信号は、I10ボートを用いて発生され、リセッ
トハードウェアに信号を送り、CPUリセット信号を発
生することができる。このような技術は、殆どの802
86システムにおいてリセットを行なうように意図され
た樟準的な方法であるが、80206を組み込んだ成る
システム、例えば、IBN PC/ATでは、このよう
な技術を用いると、比較的速度が遅くなることが分かっ
ている。従って、本発明の方法をIBN PC/ATコ
ンピュータに関連して使用する時には、保護モードにお
いて「三重欠陥」信号を発生することによってリセット
を行なうのが好ましい、この三重欠陥信号は、保護モー
ドにおいて3つの別々の保護違反を意図的に犯すことに
よって発生される。 IBM PC/ATに見られるよ
うな補助的な監視回路を設けて、80286を監視し、
三重欠陥状態を検出し、三重欠陥状態の発生時にリセッ
トハードウェアを作動することができる。このような状
態のもとでは、工/○ボートを用いて発生されるリセッ
ト信号よりも数百マイクロ秒速くCPUのリセットが行
われる。 リセット信号は、典型的に、システムクロック発生チッ
プへ送られ、従って、この信号は、システムクロックと
適当に同期される。このソフトウェアで指令されるリセ
ット信号は、通常は、「一般的なシステムリセットコラ
イン或いは他のチップ、例えば、割込み制御器、装置制
御チップ又は802&?共通プロセッサ(もしあれば)
へは送られない。 80286がリセットされた後、特定のチップリセット
アドレスにおいて実行を開始する。このアドレスは、通
常、ブートアップソフトウェアを含むROMに対応する
。従って、マイクロプロセッサがリセットされた時には
、通常直接的に初期化ルーチンもしくはブートアンプル
−チンに入る。 然し乍ら、保護モードからリアルモードに復帰する時に
は、マイクロプロセッサ全体を再初期化する必要もない
し又望ましくもない。従って、ブートアップソフトウェ
アのコードは、通常のブートアップ手順に入る前に、リ
セットがソフトウェア制御のもとて明確に開始されたか
(モード切り換えが行われることを示す)又は電源オン
といった外的なハードウェアに関連した事象によって開
始されたかをチェックするように変更される。このよう
な判定を行なうのに種々の方法を使用できる。 オペレーティングシステムは、特殊な値又は特殊な値の
パターンを揮発性RAMに入れることができる。ブート
アップソフトウェアがこのような値又は値のパターンを
検出した場合には、プロセッサが既に作動されていてモ
ード切り換えが行われていることが分かる。不揮発性の
RAMが存在する場合には、モード切り換えが行われて
いるかどうかを判断するためにブートアップソフトウェ
アによって質問することのできる「モード切り換えリセ
ット」フラグのための位置を確保することができる。ハ
ードウェアで発生されるリセット信号によってセットさ
れそしてソフトウェアで発生されるリセット信号によっ
てクリアされるようなハードウェアラッチを使用するこ
とができる。このラッチは1例えば、I10ボートのよ
うなブートアップソフトウェアによって質問することが
できると共に、多くのシステムにおいては、モード切り
換えリセットを検出するフェイルセーフ手段の役目を果
たすので好ましい。 80286がリセットされる間に、システムの他部分は
動作を続けることができる。RAMの位置がプロセスに
よって撰傷を受けることはない、システムの他部分が動
作を続けられるので、リセット中には2つの予防策をと
ることが必要である。 先ず第1に、80286は、リセットの間にバス許可動
作を適切に実行しないことがあるので、ダイレクトメモ
リアクセス機構の設計にもよるが、ダイレクトメモリア
クセス動作を行なわないように確保することが必要であ
る。 80286のリセット中に行なうべき第2の予防策は、
割込み処理に関するものである。リセット動作中には割
込みを不能にすると共に割込み状態を見失わないように
することが必要である。システムがエツジトリガ式の割
込みを用いている場合には、ハードウェアが入ってくる
割込みを忘れないようにしなければならない、ここに述
べる好ましい方法では、Intel 8259のような
プログラム可能な割込み制御器をシステムに使用するの
が好ましい、このようなシステムにおいては、割込みを
防ぐように8259マスクレジスタをプログラミングす
ることによりモード切り換え中にマスク可能な割込みが
防止される。 80286のCLI (クリア割込み
フラグ)命令を用いても同じ結果を得ることができ、割
込みが不能とされる。 モード◆リ えの効率 オペレーティングシステム環境においてモード切り換え
を実施するためには、システムの一般的な動作が低速で
あってはならない、それ故、オペレーティングシステム
は、両方のモードで実行できるように書き込むのが好ま
しい、オペレーティングシステムが1つのモードでしか
実行できないように害き込まれた場合には、一方のモー
ドで作動しているプログラムをシステムの呼出し中に強
制的に他方のモードに切り換えたり他方のモードから切
り換えたりすることになる。このため、本発明の好まし
い実施例では、オペレーティングシステムの全部又は大
部分がリアルモード及び保護モードの両方で実行できる
ように書き込まれる。 更に、170割込みを行なうためのモード切り換えはシ
ステムの性能を低下させるので、可能な時にはいずれか
のモードで作動できるように割込みサービスルーチンを
書き込まねばならない、装置ドライバは、タスクが装置
ドライバを用いたlloipII作を要求する時と、装
置ドライバルーチンがプロセッサに対して作動する時と
の間にモード切り換えが生じることがあるので、両方の
モートで作動できることが好ましい。 80286のアーキテクチャでは、リアルモード及び保
護モードで実行されるオペレーティングシステムを設計
するよう試みた時に各モードが別々のメモリアドレス方
法を用いているために特殊な問題を招く、従って、所与
のメモリアドレスは、通常、リアルモードにおいては8
0286システムの物理メモリ内の1つの位置を指示し
そして保護モードにおいては80286システムの物理
メモリ内の別の位置を指示する。これにより、オペレー
ティングシステムは、通常、両方のモードで作動できる
ためには各メモリ対象に対して2つのアドレス(リアル
及び保護)を維持することが必要となる。 このような要求により、オペレーティングシステムに負
担がか−ると共に、メモリアドレスの組み込まれた手順
呼出しを伴う問題が生じる。本発明では、リアルモード
及び保護モードにおいて共通にアドレスできるようにオ
ペレーティングシステムのルーチンを配置するという改
良された方法を提供することによってこの問題が解決さ
れる。どの方法の説明に先立ち、リアルモード及び保護
モードに用いられるメモリアドレス方法を説明する。 リアルモードにおいては、80286が、 8086プ
ロセツサのメモリアドレス方法をエミュレートする。全
てのメモリアドレス動作は、物理アドレス。 即ち「実」アドレスに関して行われる。アドレスは、次
の2つの成分を含む32ビツトポインタによって指定さ
れる。即ち、(1)セグメントのスタートアドレスを指
定する16ビツト量のセグメントセレクタ、及び(2)
1つのセグメント内の特定の位置の変位をバイト単位で
決定する有効アドレスオフセット、これら2つの値は、
一般に、(セグメント:オフセット)フォーマントと称
する。セグメントセレクタ及びオフセットは、第1図に
示すように合成さハて、20ピントの物理アドレスを形
成する。セグメントのベースアドレスは、16ビツトの
セグメントセレクタ値を、最下位4ビツトに0を有する
20ビツト値として解釈することによって決定される0
次いで、16ビントのオフセット値がこの20ビツトの
セグメントベースに追加され、物理アドレスを示す20
ビツト値が形成される。 (80286は、リアルモ
ードにおいては、8086をエミュレートするので、セ
グメントアドレスを示す各16ビツトの物理的な値は最
上位4ビツトがOにセットされて24ビツトレジスタに
実際に記憶され、リアルモードにおいてユーザに実際上
透過的となる。リアルモードアドレスのこの特性は、以
下で述べるように内部診断登用いて装置ドライバを取り
扱う好ましい実施例では重要なものとなる。) 保護モードにおいては、メモリアドレスを指定するため
に32ビツトポインタも使用される。 メモリマネージメント機構は、32ビツトポインタによ
って指定された論理アドレスと、このポインタによって
指定された実際の物理アドレスとの間にマツピング動作
を介在させ、物理的なメモリに拘りなく論理アドレスを
形成する。マツピングは、仮想アドレスの解釈を支配す
る多数のメモリ常駐記述子テーブルを用いることによっ
て行われる。従って、32ビツト仮想アドレスのセグメ
ントセレクタ成分は、物理メモリ内の位置ではなくて記
述子テーブル内の特定の位置を指定する。記述子テーブ
ルは、「記述子」と称する8バイトのエンティティで構
成される。セグメントセレクタ内のインデックスフィー
ルドは、記述子テーブル内のセグメント記述子を指す、
セグメント記述子は、マイクロプロセッサの物理アドレ
ススペース内のセグメントベース位置を識別する24ビ
ツト値を含む。 保護モードセグメントセレクタのフォーマットが第2図
に示されている。セグメントセレクタの最下位2ピント
は、80286の保護機構に使用される許可ビットであ
る。セグメントセレクタのビット2は、物理メモリ位置
がグローバル記述子テーブル(GDT)から選択される
かローカル記述子テーブル(LDT)から選択されるか
を定めるテーブルインジケータビットである。テーブル
インジケータピントがゼロにセットされた時には。 グローバル記述子テーブルが選択される。GDTは、グ
ローバルアドレススペース用のベースメモリ位置を含み
、これは、システム巾の手順及びデータ (オペレーテ
ィングシステムを含む)に対して使用される。テーブル
インジケータビットが1にセットされた時には、セグメ
ントセレクタがローカル記述子テーブル(LDT)を選
択し、これは、各タスクごとに別々にマスクされるロー
カルアドレススペースを選択する。 第3図は、32ビツト仮想アドレスを用いてマイクロプ
ロセッサの物理メモリ内の位置を定める方法を概略的に
示すものである。セグメントセレクタのテーブルインジ
ケータビットは、GDTを使用するか現在のLDTを使
用するかを指示し。 それに対応するGDTR又はLDTRが適当なテーブル
のベースアドレスを与える0次いで、最上位13ビツト
で構成されるセグメントセレクタのインデックスフィー
ルドを使用して、テーブルから適当なセグメント記述子
を選択する。プロセッサは、インデックス値に8を乗算
しく記述子当り8バイトあるので)、適当なセグメント
記述子をアクセスする。 第4図に示すように、セグメント記述子の内容は、1櫻
セグメント(アドレスが探索される物理メモリ内のセグ
メント)のベースアドレスを指示する24ビツト値を含
んでいる0次いで、32ビツト仮想アドレスからの16
ビツトオフセツト値がこのセグメントベースアドレスに
加算されて物理メモリアドレスが形成される。 本発明の方法においては、オペレーティングシステムの
全部又は大部分がリアルメモリに記憶され、オペレーテ
ィングシステムルーチンの入力点のアドレスをリアルモ
ード及び保護モードの両方において共通の(セグメント
:オフセット)値で指定できるようになっている。第5
図は、グローバルアドレススペースを指定する保護モー
ドのセグメントセレクタ成分に対するフォーマントを示
している。オペレーティングシステムのセグメントは、
セグメントセレクタがグローバル記述子テーブルを選択
するフォーマットでコード化されるように、即ち、セグ
メントセレクタのビット2が0となるように、アドレス
スペース内に配置されるのが好ましい、LDTの使用も
考えられるが、LDTを操作するためのオーバーヘッド
が過剰となるために好ましくない、第5図に示す例では
、最下位2ビツトがOにセットされている。これらのビ
ットはOにセットされて特権レベル0を指示するのが好
ましい1本発明の方法は、セグメントセレクタの最下位
2ビツトを非ゼロ値にセットして使用することもできる
が5このような値は、あまり好ましいものではない、と
いうのは、保護モードで作動する時に80286の保護
機構に影響が及ぶからである・ 第6図は、第5図に示されたフォーマットのセグメント
セレクタをリアルモードにおいていかに解釈するかを示
すものである。リアルメモリにおいてベースアドレスを
定める20ビツトセグメントベースは、ビット7ないし
19のセグメントインデックス値と、最下位7ビツトの
Oとを含んでいる。 従って、リアルモードアドレス動作又は保護モードアド
レス動作のいずれかを用いてリアルメモリに同じベース
アドレスを得るためには、リアルモードの20ビツトセ
グメントベース値に等しイflffをグローバル記述子
テーブルに含まれた適当なセグメント記述子の24ビツ
トベース値に記憶することが必要である。 リアルモード及び保護モードの両方でアクセスすること
のできるメモリ位置を選択するこの方法の一例が第7図
に示されている。先ず、保3モードに適合するフォーマ
ットのリアルモードセグメントセレクタが選択される。 ここに示す例では、2進値1i000が選択される。こ
の例を説明するために、オフセント値Oが選択される。 リアルモードにおいては、セグメントセレクタが、2進
値11000oooo、即ち、180HEXの20ビツ
トベースセレクタに変換さ九る。オフセット値0がこの
セグメントベースに加算され、180HEXのリアルメ
モリアドレスが形成される。 保Sモードにおいては、11000のセグメントセレク
タ値が最下位2ピントを○と指定し、テーブルビットを
Oと指定しそしてインデックス値を011と指定する。 このインデックス値は、GDTにおいて値011に対応
する記述子を選択する0本発明の方法を用いると、この
記述子に含まれた24ビツトヘース値が0110000
000にセントされ、これは、リアルモードにおいてセ
グメントベースとして得られたものと同じである。保護
モードでは、この24ピントのベース値がオフセットに
加算されて、メモリアドレス180HEXがリアルメモ
リに得られる。第7図に示すように1例えば、オペレー
ティングシステムのサブルーチンは、その入力点アドレ
スが180HEXで記憶され、いずれのモードにおいて
もアドレスすることができる。 上記の方法を用いて(セグメント:オフセット)値を選
択しそして共通にアドレスできるサブルーチンをそれに
対応する入力点アドレスと共に記憶することにより、オ
ペレーティングシステム、装首ドライバ及び割込みサー
ビスルーチンを同じ技術を用いて記憶することができ、
これらをいずれのモードで入力することもできる。 装置ドライバについて更に考えるべきことは、メモリア
ドレス性の良さである。保護モードプログラムは、1メ
ガバイトより上のアドレスに工/○を要求することがあ
る。要求されたI 10111作が実際の行われる前に
、プロセッサはリアルモードに切り換わることができる
。要求に応じるべき時に装置ドライバルーチンがリアル
モードで作動している場合には、I10位置をアドレス
することができない、この問題を解消するために、本発
明の一部分として使用されるオペレーティングシステム
は、I10位置のアドレスを検査して現在の実行モード
で所望のメモリ位置をアドレスする(セグメント:オフ
セット)対を形成するようなサブルーチンを含むのが好
ましい、システムが保護モーFiこある場合には、GD
T又はLDT!!−単純にプログラミングするだけでこ
れを行なうことができる。1メガバイトより下のリアル
モードアドレスについても、プログラミングは同様に単
純である。然し乍ら、1メガバイトより上のリアルモー
ドアドレスについては、特殊な技術を用いるのが好まし
い、 80286は、8086及びその20ビツトの物
理メモリアドレスフォーマットをエミュレートするので
、内部診断命令を用いて、リアルモードで24ビツトの
物理アドレスを形成することができる。このような命令
により、オペレーティングシステムは、4つの上位ピン
トに値を挿入することができる。これらのピントは、通
常、0にセットされ、リアルモードにおいてシステムプ
ログラムに透過的である。このような命令の使い方及び
働きに関する情報は、典型的に、マイクロプロセッサの
製造者から入手できる6例えば、インテル社は、802
86に関する情報を供給している。 この方法を用いて24ビツトのセグメント値が形成され
ると、装置ドライバは、リアルモードにおいて1メガバ
イトより上のメモリをアドレスすることができる。リア
ルモードにおいて1メガバイトより上のメモリを強制的
にアドレスするのとは別に、1メガバイトより下のメモ
リ位置にバッファ?:形成して、システムが保護モード
に切り換わるまでデータを一時的に記憶することができ
る。 システムが保護モードに切り換わった時には、バッファ
の内容を1メガバイトより上のアドレスに伝送すること
ができる。 7合性の問題 1、メガバイトラップ 本発明による好ましい方法は、リアルモードで作動する
80286と、8086に対して書かれた既存の:、4
S D OSプログラムとの間の適合性の問題を解
消するように構成された段階を含むのが好ましい、この
ような問題は、リアルモードの80286が8086−
8088チツプを非常に完全且つ正確にエミュレートし
ないことから生じる。このような適合性の問題の1つが
「1メガバイトラップj問題として知ら九ている。 8
086は、1メガバイトより上のメモリ位置をアドレス
できないので、1メガバイトより上のメモリ位置をアド
レスしようとした場合にはビット19の上のピントに記
憶されるであろう値が無視されることになる。従って1
位置11111111111111111111+01
0をアドレスしようと試みた場合は、下位のメモリ位置
01に対してアドレスがラップされることになる。80
86に対して書かれた幾つかのプログラムが適切に作動
するためにはこの機能によって大きく左右される。不都
合なことに、メモリ位置は、 802136がリアルモ
ードにある場合1メガバイト上に延びており、下位のメ
モリ位置に対してラップされない、従って、マイクロソ
フトPASCALで書かれたプログラムやM S −D
OSの’Ca115’機能を用いたプログラムを含む
プログラムは、標準的な80286システムに役立たな
い6本発明によって設計されたオペレーティングシステ
ムは。 この問題に対して2つの別々の解決策を果たすのが好ま
しい。 1メガバイトより上のメモリで構成されたシステムの場
合は、アドレスラインA20の作用を不能とするような
補助的なハードウェア素子が設けられるのが好ましい。 アドレスラインA20は。 計算において桁上げビットを作動可能とし、従って、こ
れが作動不能となると、ラッピングが生じろ、このハー
ドウェアは、ソフトウェア指令のもとで作動したり不作
動としたりすることができる。 オペレーティングシステムは、リアルモードのプログラ
ムを実行する前に必要に応じてこのハードウェアを作動
させる。 IBN PC/ATのようなコンピュータに
おいては、A20ラインの不作動化が比較的ゆっくりと
した段階であり、これは、システムを最初にブートアッ
プする時に行われるのが好ましい、この場合、モード切
り換え中にA20ラインのハードウェアを再プログラミ
ングする必要はない。 メモリが1メガバイトを越えて延びるようなシステムの
場合は、特殊な命令を1メガバイトより上の下位メモリ
位置に入れて所望の下位メモリ位置を指すようにするこ
とにより問題を解消するのが好ましい。例えば、P A
S CA Lプログラムは、64により下のメモリに
ロードされず、特殊な命令は、1メガバイトより上の下
位メモリ位置、例えば、アトL、ス100000h又は
100010hに入れられる3例えば、タスクのPDB
のrcall 5J命令は2上位メモリアドレスにジャ
ンプするように変更され、次いで、制御がDOSに移さ
れる。これで、A20は、作動しているプログラムのモ
ードに拘りなく常時作動されたまNとなる。 2、割込み 80割込み処理ルーチンを有するリアルモードプログラ
ム 成る既存のリアルモードプログラムは、それ自身の割込
み処理ルーチンのアドレスを割込みベクトルテーブルに
記憶することによってハードウェア割込みを使用する。 これは、80286が保護モードにある時にこれらプロ
グラムの割込み処理ルーチンが割込みベクトルによって
呼び出されることを意味する8本発明のディスクオペレ
ーティングシステム(DOS)は、80286をリアル
モードに切り換えさせる特殊なりOSコードを割込みベ
クトルが指示するようにさせ、次いで、制御をリアルモ
ードプログラムの適当なアドレスに移すことによって、
これらの状態を処理するのが好ましい。 更に別の復帰アドレスがスタックに入れられ、割込みサ
ービスが完了した時に、プログラムによって制御がDO
Sに戻され、モードが保護モードに切り換えられ、次い
で1割り込まれたモードに復帰される。 この割込み遮断を実行するのに使用される技術は、2つ
ある。第1の技術は、この特殊なコードをDOSの「セ
ットベクトル」コマンドハンドラに入れることである。 成るプログラムでは、このDO5Iiiを用いて1割込
みベクトルの内容が変更される。 第2の技術は、割込みベクトルに直接書き込まれるプロ
グラムに関するものである。リアルモードプログラムを
ディスパッチする前に、DOSは割込みベクトルの状態
を記録する。 80286が再指定されようとする時に
は、DOSがベクトルを再検査し、変更点を探す。検出
された変更点は、ベクトルの編集を表わしており、上記
した特殊なりOSコートを指すように割込みベクトルを
編集することによって処理される。 b、プログラムをフックする別の好ましい実施例 多くのアプリケーションでは、手前の内容を読み取って
セーブすることにより割込みベクトルが「フック」され
る。割込みベクトルから制御権を受は取ると、手前のア
ドレス値にジャンプすることによりこれを「バス」する
にの技術は、当該プログラムが終了しない限り良好に機
能する。 このような割込み連鎖において1つのプログラムが終了
した場合には、それより上流のプログラムが、割込み時
に、その終了したプログラムを指示するのに用いるメモ
リアドレスに制御権を移し続けることになって、システ
ム欠陥を生じる。この現象が第8図ないし第12図に示
されている。 第8図は、アプリケーションプログラムが割込みに関与
しない時に既存のオペレーティングシステムDO3が割
込みにいかに応じるかを示している。この場合、DOS
は、割込み処理ルーチンの入力点のアドレス(0120
)を割込みベクトルテーブルに入力する。第8図に示し
た割込みベクトルテーブル内の位置に対応する割込みが
生じた時には、80286が割込み処理ルーチンに対応
するDO3に制御権を移す0割込み処理ルーチンがその
作業を完了すると、[割込み復帰(IRET)J命令を
実行し、80286はその前の実行プログラム流に復帰
する。 第9図は、典型的に1つのアプリケーション(アプリケ
ーション1)が既存のDO3環境においていかにハード
ウェア割込みを遮断するかを示しでいる。DO5は、第
8図に示し且つ上記したように、その割込み処理ルーチ
ンのアドレス(0120)を割込みバク1−ルテーブル
に入力している。アプリケーション1は1割込みベクト
ルの現在の内容(0120)を読み取り、この値をその
アドレススペース内の成るメモリ位置にセーブする。次
いで、それ自身の割込み処理ルーチンのアドレス(10
50)をハードウェアベクトルテーブルに入力する。 割込みが生じると、 80286は、DO8割込み処理
ルーチンではなくてアプリケーションの割込み処理ルー
チンに制御41!を移す0次いで、アプリケーションは
、典型的に、割込みの原因を調査し。 その割込み自体を処理してIRET命令を発し、制御権
をその前の実行プログラム流に戻すか又は制御権をDO
3割込みハンドラ(そのアドレスをセーブしている)に
移すかを判断する。前者の場合には、DO3割込みハン
ドラが実行されない。 第10図は、第9図に示されて上記で述べた事柄に第2
のアプリケーション(アプリケーション2)が追加され
る時に何が起こるかを示している。アプリケーション2
は、ハードウェア割込みベクトルテーブルを読み取って
、アプリケーション1の割込み処理ルーチンのアドレス
(1050)をそのアドレススペースにセーブしている
。次いで、アプリケーション2は、それ自身の処理ルー
チンのアドレス(2080)をベクトルテーブルに入力
している。 この場合、割込みが生じると、最初に、アプリケーショ
ン2の割込み処理ルーチンに入る。次いで、割込みが処
理されるか、制御権がアプリケーション1の割込み処理
ルーチンに移されるかのいずれかである。制御権がアプ
リケーション1の割込み処理ルーチンに移行される場合
には1割込みが処理されるか、又は、制御権がDO3の
割込み処理ルーチンに移される。 この連鎖によって形成される優先順位機構に注目された
い、システムに入る最後のアプリケーションは、割込み
に対して最初に取捨選択する権利を有しており、005
は、アプリケーションが割込みを所望しない場合だけ割
込みを処理する最後の処理手段である。この技術は、ア
プリケーションがターミナルからのキーストロークに対
してフィルタ作用を果たして成る特殊な「制御」キーコ
ードを確認する一方、確認されないコードを連鎖に含ま
れた次の下流のハンドラへ送九るようにするためiニー
u的に使用されている。 割込みベクトルを連鎖にするこれらの技術を用いたプロ
グラムは、典型的に、これらプログラムから退出した時
にこれらプログラムに取って代わったハンドラのアドレ
スを復帰させる。第11図は、アプリケーション2の終
了を示しており。 その前に、アプリケーション2は1割込みベクトルテー
ブルの値をアプリケーション1の処理ルーチンの値(1
050)に復帰している。 第12図は、アプリケーション2の前に終わるアプリケ
ーション1の作用を示している。アプリケーション1は
、これがセーブしたハンドラのアドレス、即ち、DOS
ハンドラのアドレスを復帰する。これが行われた後、ア
プリケーション2(まだ作動している)は、連鎖から不
適切に明所される。 この不適切な動作は、マルチタスクシステムが単一タス
クシステム用として設計されたアプリケーションを作動
していることがら直接的に生じるものである。このよう
なアプリケーションでは。 システムの1つのプログラム(それ自体)しか終了させ
ることができないものと仮定される。この仮定は、マル
チタスクシステムでは成立しない。 図示されていないが更に多くの重要な事柄があることに
注、偲されたい、上記の説明に続き、アプリケーション
2がここで終了した場合には、割込みベクトルテーブル
を、これがセーブされた値、即ち、1050に復帰させ
る。この値は、アプリケーション1の割込み処理ルーチ
ンの前のアドレスを示すもので、割込み処理ルーチンは
、もはやこのアドレスにはない、メモリ内のランダムな
位置を指すベクトルがハードウェアベクトルテーブルに
存在する場合、典型的に、システムは、長い時間が経過
する前に崩壊することになる。 本発明の好ましい実施例では、上記の問題を解消するよ
うな新規な割込み処理方法を含むのが好ましい、DOS
によって使用される各ハードウェア割込みベクトルは、
「ディスパッチャ」と称するDOSの特殊なルーチンを
指すようにDOSによって設定される。このディスパッ
チャは、各割込みにおけろ全ての当該ハンドラルーチン
のクライエントリストを保持し、適当な時期にこのよう
なハンドラに制御権を移す。 第13図に示す割込み処理方法の好ましい実施例では、
各割込みベクトルがディスパッチャルーチンの対応する
入力点を指すようにセントされる。第13図は1例えば
1割込みベクトルNa 8がディスパッチャのアドレス
190を指すようにセントされたところを示している。 ディスパッチャは、各割込みベクトルに対応するクライ
エントリストを保持する。最初、クライエントリストは
。 1つの入力、即ち、DOSの欠陥ハンドラのアドレス(
第13図の0120)L、か含んでいない。 ディスパッチャは、ハードウェア割込みベクトルの内容
を監視し、アプリケーションプログラムがハードウェア
割込みベクトルの内容をそれ自身の割込みハンドラルー
チンのアドレスと交換した時を決定する1割込みベクト
ルの内容は、割込みが生じるたびに且つ制御権がDOS
に移されるたびにチェックされる。変化が検出された時
には、DOSが割込みベクトルの新たな内容をそのクラ
イエントリストの上部に読み込み、ディスパッチャを指
すように割込みベクトルをリセットする。 例えば、アプリケーション1 (第13図に示す)が実
行を開始すると1割込みベクトル(190)からのアド
レスをセーブし、それ自身の割込みハンドラルーチンア
ドレス(1050)を割込みベクトルに入れる。このベ
クトルに対する次のディスパッチもしくは割込みの際に
、DOSは、アブロケーションがハードウェア割込みベ
クトルを変更したことを知らせる。これにより、ハード
ウェア割込みベクトルが190にリセットされてディス
パッチャを指すと共に、アプリケーション】のハンドラ
のアドレス(1050)がこのキ]込みベクトルのため
のディスパッチャリストに加えら几る。 アプリケーション2が始まると、同じ手順が行われる0
割込みベクトルは、ディスパッチャを指すように復帰さ
れ、ディスパッチャのクライエントリストは、今度は、
次の3つのアドレスを含む、即ち、0120 (003
割込みハンドラルーチンのアドレス);1050 (ア
プリケーション1の割込みハンドラルーチンのアドレス
);及び2080 (アプリケーション2の割込みハン
ドラルーチンのアドレス)。 割込みが生じると、ディスパッチャは、各割込みハンド
ラルーチンを逆の順序(即ち、アプリケーション2、ア
プリケーション1そしてDOS)で呼出し、やがて、こ
れらの1つがI RET命令を発して、割込みを処理し
たことを指示する。第13図の方法を用いた割込みの処
理が第16図のフローチャートに示されている。制御権
が入力点0190に移されると、ディスパッチャ内の初
期フラグについてチェックが行われる。初期フラグがセ
ントされていない場合には、ディスパッチャは、初期フ
ラグをセントし、クライニントポインタをセントし、デ
ィスパッチャの第2の入力点のアドレスをスタックに入
れ、そして処理されている割込みに対するクライエント
リストの第1アドレスに制御を移す、第13図に示され
た環境においては、アドレス2080、即ち、アブロケ
ーション2の割込みハンドラルーチンのアドレスに制御
権が移される。アプリケーション2は、割込みを処理し
てIRETを発するか、或いは、その前にセーブされた
アドレス0190に制御を戻す。 制御がアドレス0190に戻されると、ディスパッチャ
は初期フラグをチェックする。ここでは、初期フラグが
セットされているから、ディスパッチャは、クライエン
トポインタを増加し、制御権をクライエントリストの第
2のアドレスに移す。 第134図に示す環境においては、アドレス1゜5o、
即ち、アプリケーション1の割込みハンドラルーチンの
アドレスに制御権が移される。アプリケーション1は、
割込みを処理して制v4権をアドレス0190に戻すか
、或いはI RETを発する。第16図に示すように、
割込みハンドラが1RETを発した時には、制御権がデ
ィスパッチャの第2の入力点に移される。というのは、
このアドレスが既にスタックの上部にあるからである。 次いで、ディスパッチャは、初期フラグをクリアし、別
のIRETをシステムに発し、割り込まれた実行プログ
ラム流に制御権を復帰させる。 本発明の方法を用いると、第14図に示すように、アプ
リケーションが終了して、割込みベクトルを、その前の
割込み処理ルーチンのアドレスであると考えられるもの
にセントした時に、DO5がシステムからのその逸脱を
検出し、終了しつ\あるアプリケーションの割込みハン
ドラのアドレスをディスパッチャのクライエントリスト
から除去する。 本発明の割込み処理ルーチンについては、別の実施例も
考えられる。第17図に示す好ましい実施例では、割込
みベクトルが、80286の割込み記述子テーブル内の
55’Jの位置へ移動されている。 例えば、割込みベクトル8によって以前に処理されたハ
ードウェア割込みは、今度は、割込みベクトル108に
よって処理される。このベクトル108は、ディスパッ
チャ内の最初の入力点を指すようにセットされる6割込
みベクトル8の値を得るために書かれたアプリケーショ
ンプログラムは、それらの割込みハンドラのアドレスを
割込みベクトル8に読み込み続けるが、DO5は、アプ
リケーションが割込みベクトル108を用いて転向しよ
うとするような割込みを実際上処理する。割込みベクト
ル8のような元の割込みベクトルの値は。 ディスパッチャ内の第2の入力点を指すようにセットさ
れる。従って、アプリケーションプログラムがシステム
に入って割込みベクトルのg集を試みる時には、その割
込み処理ルーチンのアドレスを元の割込みベクトルに入
れ、第2の入力点のアドレスをディスパッチャにセーブ
する。前記の実施例の場合と同様に、ディスパッチャは
、制御がDO8に移された時及び割込みを受けた時に割
込みベクトルの榎集をチェックする。編集が検出ざ九る
と、アプリケーションプログラムの割込み処理ルーチン
のアドレスがクライエントリストに入れられ、′、イ]
込みベクトルは、ディスパッチャ内の第2の入力点を指
すようにリセットされる。 ハードウェア割込みを受けた時には、これが割込みベク
トル108のような新たな割込みベクトルに向けられ、
制御は、ディスパッチャの第1の入力点へ切り換えられ
る。ここで、ディスパッチャは、具のハードウェア割込
みが生じたことが自動的に分かる。この実施例では、初
期フラグは必要とされない5次いで、ディスパッチャは
、そのクライエントポインタを初期化し、処理されてい
る割込みに対しクライエントリストの第1のクライエン
トに制御権を移す、第1のクライエントの割込み処理ル
ーチンが割込みを処理しない場合には、制御権を第2の
入力点へ復帰し、ディスパッチャはクライエントポイン
タを増加すると共に次のクライエントの処理を行なう、
クライエントによって発生された丁RET命令は、制御
権をその前の実行プログラム流に復帰させる。 3、別の好ましい実施例 30286を組み込んだ成る種の装置、例えば、18M
PC/ATやこれと同様の装置は、広く利用されてい
るが、そのハードウェア設計の幾つかの素子により、モ
ード切り換え速度が低下されたり、リアルモードプログ
ラムに使用できるメモリの量が1戊少されたりする。本
発明の′S1]の実施例では、このような装置の性能を
改善するのに使用できる技術が提供される。 例えば5本発明のモード切り換え技術を、第14図に示
すようにメモリ内のオペレーティングシステムの位置に
関連した成る技術と組み合わせることにより、性能の改
善が達せられる。全ての80286装置は、リアルモー
ドプログラムの場合、RAMの大きさを1メガバイトに
制限し、そして実際上は、殆どの802864A[が使
用可能なRAMの巣をプログラムにより640Kに制限
する0本発明の別の実施例においては、リアルモードプ
ログラムに使用できる下位640にのメモリ斌が。 64KまでのDO5をメモリの1メガバイト位置に配置
することによって最大にされる。DO5のこの部分は、
リアルモード及び保護モードの両方でアクセス/実行す
ることができ、1メガバイトより下に同じ量の空間を必
要としないし、又プログラムによって使用するための6
40にも必要としない。更に、比較的大きく且つ頻繁に
使用しないか或いは比較的低速であるようなりO5の幾
つかのエレメントは、メモリにおいて1メガバイトより
上に配置し、保護モート中にのみ使用することができる
6例えば、ファイルを開放するルーチン2フアイルの名
前を変えるルーチン、辞書を形成するルーチン及び辞書
を削除するルーチンは。 性能を著しく損なうことなく、1メガバイトより上に記
憶することができる。リアルモードプログラムが1つの
機能を要求する場合には、DO3が保護モードにおいて
モードを切り換え、要求された動作を実行し、逆にモー
ドを切り換えてからプログラムに復帰する。 4、補助的な保護ハードウェア 保護モードにおいてプログラムを走らせることができる
場合には、システムの保護及び安全性に大きく貢献する
ことができる。システムのユーザ/オペレータは、リア
ルモードプログラムの実行を拒絶するようにDO5に命
令して完全な保安環境を確保するようなコマンドを入力
することができる1本発明の別の好ましい実施例では、
システムの保護機能を維持しつ\もリアルモードプログ
ラムを実行できるようなハードウェア素子が提供される
。 第1のこのような装置を、ここでは、「工10マスキン
グハードウェア」と称する。 80286によって試み
られる各工/○動作を有効工/○アドレスのリストに対
してチェックするようなハードウェアを設けることがで
きる。DO5は、使用される単一のリストをプログラム
することができるが、複数のリストをハードウェアにま
って保持していて所与の時間に使用すべき適当なリスト
だけをDO5が指示すればようようにし、有効な1/○
アドレスを決定する必要がないようにすることが好まし
い、このようにすれば、動作が許可された時に、これを
実行することができる。さもなくば、バートウニアがそ
の動作を阻止したり不能としたりすることがある。有効
アドレスのリストは。 通常、80286によってプログラムされたR A M
装置に記を口される。 又、このハードウェアにより、DO3は、保護モードプ
ログラムを実行しつ\これらプログラムによって「安全
」なI10ボート(専用装置や。 表示カードのプログラムレジスタ)をアクセスできる一
方、その他のI10ボートへのアクセスを防止すること
ができる。 設けることのできる第2の形式のハードウェアは、メモ
リ保護ハードウェアである。 80286によって試み
られた各メモリ動作をチェックするようなハードウェア
を設けることができる。DO3は、リアルモードでプロ
グラムを実行する時にこのハードウェアを使用して、そ
のプログラムに対して許可された読み取りのみ及び書き
込みのみのアドレス範囲をこれにプログラミングする。 この位置以外のメモリ位置をアクセスしようと試みた場
合には、NMI事象によってフラグがたてられ、このよ
うな試みが(おそらく)防止される。このハードウェア
の典型的な設計は、許可ビット又はフィールドを含む小
型のRAMである。アクセスRAMの上位ピントは、高
速ルックアップRA Mからビット又はフィールドを選
択するのに使用される6ビツト(単数又は複数)の状態
は、動作の適合性を指示する。このRA Mは、DO3
によってプログラミングされる。 80287のモード切り換え 80287又は他のマルチモード共通プロセッサをサポ
ートするのに必要なノ1−ドウエアは、簡単なものであ
る。 80286の場合と同様に、80287は。 「リアルJ及び「保護Jの2つの作動モードを有してい
る。又、リアルモードから保護モードへ迅速に切り換え
るためのソフトウェア命令を有している。保護モードか
らリアルモードへ切り換える対応命令はない、従って、
80286の1つのボートによって簡単なラッチをア
ドレスできるようなハードウェア機構を設けなければな
らない、理想的には、80287のモード切り換えは、
前記したように幾つかの最適な使用を可能とするように
80286と独立したものでなければならない。 ソフトウェアで簡単に実施する場合には、常に、802
87を80286と一緒に切り換え、両方のプロセッサ
が常にリアルモード又は保護モードの同じモードにある
ようにする。然し乍ら、80287のモード切り換えを
行なう場合には、80287の状態やその他タスクに特
定なデータをセーブすることが必要である。全てのアプ
リケーションは+ 80287の共通プロセッサを必ず
しも使用しないために。 80286を切り換えるたびに80287を切り換える
と、切り換えプロセスが不必要に低速となる。それ故。 80287に使用される本発明の好ましい実施例では、
あたかも80287がシステムに存在しないかのように
80286をセントし、80287を80286と共に
モード切り換えしないのが好ましい、アプリケーション
プログラムが80287を使用しようとした時には、最
初は不成功に終わる。然し乍ら、このような試みの後、
80286は、 80287にアクセスできるようにリ
セットされる。 80287のモードがチェックされ、
80287を要求しているプログラムのモードと比較さ
れ、必要に応じて、 80287が切り換えられる。 次いで、プログラムが再スタートされる。 80287
を要求しているプログラムの実行が終了すると、802
86はリセットされ、80287が存在しないことを指
示する。 本発明の方法及び装置は、80286マイクロプロセツ
サ及びこのマイクロプロセッサを用いたコンピュータシ
ステムに使用するように構成された好ましい実施例につ
いて主として説明したが、本発明は、このような実施例
に限定されるものではない、むしろ、本発明は、802
86と同様なアーキテクチャを有していて前記の実施例
で解決したものと同様な問題を呈するようなマイクロプ
ロセッサに使用するものを含む技術的に同等の全ての実
施例を網羅するものとする。
第1図は、 80286マイクロプロセツサのリアルモ
ードメモリアドレス手順を示す概略図、第2区は、保3
モードにおける80286マイクロプロマソサのセグメ
ントセレクタフォーマットを示す図、 第3図は、80286マイクロプロセツサの仮想アドレ
スを物理アドレスに変換する方法を示す概略図、 第4図は、80286マイクロプロセノサの保護モード
において記述子テーブルからのセグメント記述子のフォ
ーマットを示す概略図、 第5図は、グローバルなアドレススペースを指示する保
護モードのセグメントセレクタ成分のフォーマットを示
す図、 第6図は、第5図のセグメントセレクタのリアルモード
における解釈を示す図、 第7図は、所与の(セグメント:オフセット)からリア
ルモード及び保護モードにおいて共通の物理メモリアド
レスを得るための本発明の方法を示すズ、 78図は、アプリケーションプログラムが存在しない状
態で既存のオペレーティングシステムが割込みを処理す
る方法を示す概略図、第9図は、割込み処理ルーチンを
含む1つのアプリケーションプログラムが存在する状態
で既存のオペレーティングシステムが割込みを処理する
方法を示す概略図、 第10図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムが存在する時に既存のオペレーティ
ングシステムが割込みを処理する方法を示す概略図、 第11図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムの連鎖において第2のアプリケーシ
ョンプログラムの終了の作用を示す図、 第12図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムの連鎖1こおいて第1のアプリケー
ションプログラムの終了の作用を示す図、 第13図は、ベクトル割込みを処理する本発明の改良さ
れた方法を示す図、 第14図は、第13図の方法を示す図で、2つのアプリ
ケーション連鎖の第1のアプリケーションプログラムが
終了した時のディスパッチャの動作を示す図、 第15図は、本発明によりメモリにオペレーティングシ
ステムを配置する改良された方法を示す図、 第16図は、本発明の改良された割込み処理方法の第1
の好ましい実施例においてディスパッチャの論理を示す
フローチャート、そして第17図は1本発明の改良され
た割込み処理方法の第2の好ましい実施例の動作を示す
概略図である。 甲 六 ト 続 j、li 王 古fブノ式)特許庁長官
黒 [B 明 雄 殿1、’共件の表示 昭和6
1年特許願第83]95η3補正をする者 事件との関係 出願人 名 称 マイクロノット コーポレー/ヨン・1代理
人
ードメモリアドレス手順を示す概略図、第2区は、保3
モードにおける80286マイクロプロマソサのセグメ
ントセレクタフォーマットを示す図、 第3図は、80286マイクロプロセツサの仮想アドレ
スを物理アドレスに変換する方法を示す概略図、 第4図は、80286マイクロプロセノサの保護モード
において記述子テーブルからのセグメント記述子のフォ
ーマットを示す概略図、 第5図は、グローバルなアドレススペースを指示する保
護モードのセグメントセレクタ成分のフォーマットを示
す図、 第6図は、第5図のセグメントセレクタのリアルモード
における解釈を示す図、 第7図は、所与の(セグメント:オフセット)からリア
ルモード及び保護モードにおいて共通の物理メモリアド
レスを得るための本発明の方法を示すズ、 78図は、アプリケーションプログラムが存在しない状
態で既存のオペレーティングシステムが割込みを処理す
る方法を示す概略図、第9図は、割込み処理ルーチンを
含む1つのアプリケーションプログラムが存在する状態
で既存のオペレーティングシステムが割込みを処理する
方法を示す概略図、 第10図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムが存在する時に既存のオペレーティ
ングシステムが割込みを処理する方法を示す概略図、 第11図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムの連鎖において第2のアプリケーシ
ョンプログラムの終了の作用を示す図、 第12図は、割込み処理ルーチンを含む2つのアプリケ
ーションプログラムの連鎖1こおいて第1のアプリケー
ションプログラムの終了の作用を示す図、 第13図は、ベクトル割込みを処理する本発明の改良さ
れた方法を示す図、 第14図は、第13図の方法を示す図で、2つのアプリ
ケーション連鎖の第1のアプリケーションプログラムが
終了した時のディスパッチャの動作を示す図、 第15図は、本発明によりメモリにオペレーティングシ
ステムを配置する改良された方法を示す図、 第16図は、本発明の改良された割込み処理方法の第1
の好ましい実施例においてディスパッチャの論理を示す
フローチャート、そして第17図は1本発明の改良され
た割込み処理方法の第2の好ましい実施例の動作を示す
概略図である。 甲 六 ト 続 j、li 王 古fブノ式)特許庁長官
黒 [B 明 雄 殿1、’共件の表示 昭和6
1年特許願第83]95η3補正をする者 事件との関係 出願人 名 称 マイクロノット コーポレー/ヨン・1代理
人
Claims (1)
- 【特許請求の範囲】 (1)デジタルコンピュータをオペレーティングシステ
ムプログラムで作動する方法であって、このオペレーテ
ィングシステムプログラムは、複数のサブルーチンで構
成され、上記コンピュータは、メモリと、入力/出力装
置と、システムクロックと、上記コンピュータをブート
アップする初期化手段と、マイクロプロセッサとを備え
ているものであり、このマイクロプロセッサは、複数の
モードと、上記マイクロプロセッサを第1のモードから
別のモードに切り換えることはできるが、上記第1モー
ドに戻すようには切り換えできないようなモード切り換
え手段と、上記マイクロプロセッサをリセットする手段
とを有しており、このリセット手段は、上記第1のモー
ドにおいて上記マイクロプロセッサをブートアップさせ
るものであり、上記方法は、必要な時にモード間の切り
換えを行なうことにより上記第1モードに適用される上
記コンピュータアプリケーションプログラムと同時に上
記別のモードに適用されるコンピュータアプリケーショ
ンプログラムを効率的に実行する手段を果たすものであ
り、上記方法は、 (a)上記コンピュータをブートアップし、(b)上記
メモリ及びマイクロプロセッサにオペレーティングシス
テムプログラムをロードし、(c)必要に応じて上記マ
イクロプロセッサで複数の上記アプリケーションプログ
ラムを実行し、(d)各プログラムを実行する時にモー
ド切り換えが必要であるかどうかを判断し、 (e)上記第1モードから上記別のモードの1つへの切
り換えが必要な場合には、上記モード切り換え手段を作
動し、 (f)別のモードから上記第1モードへの切り換えが必
要な場合には、制御手段によって上記リセット手段を作
動することにより上記マイクロプロセッサをリセットし
、 (g)上記のリセットが上記制御手段によって開始され
たか、電源オン、ハードウェア欠陥又はコンピュータの
作動欠陥によって開始されたかを判断し、そして (h)上記のリセットが上記制御手段によって生じたも
のであると判断された場合には、上記コンピュータがブ
ートアップ中に通常の初期化ルーチンをバイパスするよ
うにさせるという段階を具備したことを特徴とする方法
。 (2)マイクロプロセッサを有するデジタルコンピュー
タのためのオペレーティングシステムであって、上記マ
イクロプロセッサは、2つのモードを含み、その一方の
モードは、メモリを直接アドレスする限定メモリリアル
モードでありそして他方のモードは、マッピングによっ
てメモリをアドレスする拡張メモリ保護モードであり、
更に、上記マイクロプロセッサは、このマイクロプロセ
ッサをリアルモードから保護モードへのみ切り換えるこ
とのできるモード切り換え手段と、マイクロプロセッサ
をリセットする手段とを備えており、このリセットによ
って上記マイクロプロセッサは上記リアルモードでブー
トアップされるようにしたオペレーティングシステムに
おいて、上記コンピュータがリアルモードに適用される
アプリケーションプログラムと保護モードに適用される
アプリケーションプログラムとを同時に実行できるよう
にリアルモードから保護モードへそして保護モードから
リアルモードへ効率的に切り換えを行なう手段と、上記
リセット手段を作動する手段と、このようなリセットが
この作動手段によって生じたものであるかどうかを判断
する手段と、もしそうであればそれに応答して通常の初
期化ルーチンをバイパスさせる手段と、リセット中に直
接メモリアクセス動作及び割込み信号の搬送を保留する
手段とを具備することを特徴とするオペレーティングシ
ステム。 (3)マルチモードマイクロプロセッサでコンピュータ
システムを作動する方法であって、上記マイクロプロセ
ッサは、第1モードから別のモードへ切り換えを行なう
手段は備えているが、上記別のモードから上記第1モー
ドへ切り換えを行なう手段は備えておらず、更に、上記
第1モードにおいてブートアップを行なうと共に上記シ
ステムを初期化するリセット手段を備えており、上記の
方法は、上記マイクロプロセッサの種々のモードで作動
するように設計されたアプリケーションプログラムを混
合状態で効率的に実行できるように構成され、更に、上
記方法は、 (1)上記コンピュータシステムにロードされる各アプ
リケーションプログラムについての記録を形成し、この
記録には、上記プログラムを実行しなければならないモ
ードの指示が含まれ、(2)上記マイクロプロセッサに
よるアプリケーションプログラムの実行が要求される時
には、上記の記録と、上記マイクロプロセッサの現在モ
ードとをチェックして、モード切り換えが必要かどうか
判断し、 (3)第1モードから別のモードへのモード切り換えが
必要とされる場合には、上記モード切り換え手段を作動
し、 (4)別のモードから第1モードへのモード切り換えが
必要な場合には、 (a)上記マイクロプロセッサのリセットがモード切り
換えのためのものであるかどうかを判断する手段を設け
、 (b)マイクロプロセッサをリセットし、 (c)上記(a)の手段から上記リセットがモード切り
換えのためのものであるかどうかを判断し、(d)上記
(c)での判断が肯定である場合には、上記コンピュー
タシステムが通常の初期化ルーチンをバイパスするよう
にさせ、そして (5)上記プログラムを実行するという段階を具備した
ことを特徴とする方法。 (4)マルチモードマイクロプロセッサをベースとする
デジタルコンピュータのメモリへ機械で読み込みできる
ように一連の命令が記録された媒体であって、上記マイ
クロプロセッサは、第1のモードから別のモードへのみ
切り換えを行なう手段と、上記第1のモード中にブート
アップを行なうと共に上記システムを初期化するリセッ
ト手段とを備えており、上記命令は、上記コンピュータ
システムのオペレーティングシステムを構成するように
され、上記システムは、上記マイクロプロセッサの種々
のモードで作動するように設計されたアプリケーション
プログラムを次のようにすることにより効率的に実行で
きるように構成され、即ち、 (1)上記コンピュータシステムにロードされる各アプ
リケーションプログラムについての記録を形成し、この
記録には、上記プログラムを実行しなければならないモ
ードの指示が含まれ、(2)上記マイクロプロセッサに
よるアプリケーションプログラムの実行が要求される時
には、上記の記録と、上記マイクロプロセッサの現在モ
ードとをチェックして、モード切り換えが必要かどうか
判断し、 (3)第1モードから別のモードへのモード切り換えが
必要とされる場合には、上記モード切り換え手段を作動
し、 (4)別のモードから第1モードへのモード切り換えが
必要な場合には、 (a)上記マイクロプロセッサのリセットがモード切り
換えのためのものであるかどうかを判断する手段を設け
、 (b)マイクロプロセッサをリセットし、 (c)上記(a)の手段から上記リセットがモード切り
換えのためのものであるかどうかを判断し、(d)上記
(c)での判断が肯定である場合には、上記コンピュー
タシステムが通常の初期化ルーチンをバイパスするよう
にさせることを特徴とする媒体。 (5)マルチモードマイクロプロセッサを用いたデジタ
ルコンピュータを作動する方法であって、上記マイクロ
プロセッサは、コンピュータ内のメモリ位置が、コンピ
ュータの物理メモリ内の位置に直接対応する2進アドレ
スセレクタ値によってアドレスされるような第1モード
と、コンピュータ内のメモリ位置が、所望の物理メモリ
アドレスが配置された中間マッピングシステム内の位置
を指定する2進アドレスセレクタ値によってアドレスさ
れるような第2モードとで作動するものであり、上記方
法は、 (a)オペレーティングシステムのコマンドが配置され
た中間マッピングシステム内の位置を指定する上記第2
モードの2進アドレスセレクタ値に適合するような複数
の2進アドレスセレクタ値を第1モードにおいて選択し
、 (b)各々の選択された2進アドレスセレクタ値に対応
する値であって、この選択された2進アドレス値が第1
モードにおいて指定するものと同じ位置を第2モードに
おいてコンピュータの物理メモリに指定するような値を
、中間マッピングシステム内の位置に記憶し、そして (c)複数のオペレーティングシステムルーチンをコン
ピュータの物理メモリに記憶し、これらルーチンの入力
点を上記段階(a)で選択したアドレスセレクタ値によ
って指示し、これにより、いずれのモードにおいても共
通のアドレスセレクタ値を用いて各々のルーチンを指定
できることを特徴とする方法。 (6)プロセッサユニットと、メモリと、マルチタスク
のオペレーティングシステムとを含むデジタルコンピュ
ータシステムで割込みを処理する方法であって、上記プ
ロセッサユニットは、オペレーティングシステムルーチ
ン又は割込みを処理するアプリケーションプログラムル
ーチンのメモリアドレスを記憶する割込みベクトルテー
ブルを含んでおり、上記方法は、 (a)オペレーティングシステムルーチンによって処理
される各割込みに対し、それに対応するオペレーティン
グシステム割込みサービスルーチンのアドレスをオペレ
ーティングシステムのディスパッチャルーチンの対応す
るクライエントリストに記憶し、 (b)各々のオペレーティングシステム割込みサービス
ルーチンに対し、ディスパッチャのアドレスを対応する
割込みベクトルに記憶し、 (c)割込みベクトルテーブルを周期的に検査し、アプ
リケーションプログラムが割込みベクトルを編集してデ
ィスパッチャのアドレスをアプリケーションプログラム
のサービスルーチンのアドレスと取り換えているかどう
か判断し、 (d)上記段階(c)で探索された編集に対し、アプリ
ケーションプログラムの割込みサービスルーチンのアド
レスをそれに対応する割込みのクライエントリストの上
部に入れると共に、ディスパッチャを指すように割込み
ベクトル値を復帰させ、(e)割込みを受けた時に、ル
ーチンの1つが割込みに応じるまで割込みサービスルー
チンに次々に制御を移し、そして (f)割込みベクトルテーブルを編集したアプリケーシ
ョンプログラムが終了すると、この終了したプログラム
の割込みサービスルーチンのアドレスをディスパッチャ
のクライエントリストから削除し、必要に応じてディス
パッチャを指すように割込みの値を復帰させるという段
階を具備することを特徴とする方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/722,052 US4779187A (en) | 1985-04-10 | 1985-04-10 | Method and operating system for executing programs in a multi-mode microprocessor |
| US722052 | 1991-06-27 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS621036A true JPS621036A (ja) | 1987-01-07 |
| JP2650675B2 JP2650675B2 (ja) | 1997-09-03 |
Family
ID=24900326
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61083195A Expired - Lifetime JP2650675B2 (ja) | 1985-04-10 | 1986-04-10 | マルチモードマイクロプロセッサにおいてプログラムを実行する方法及びオペレーティングシステム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4779187A (ja) |
| EP (2) | EP0197552B1 (ja) |
| JP (1) | JP2650675B2 (ja) |
| AT (1) | ATE108569T1 (ja) |
| DE (1) | DE3689961T2 (ja) |
Families Citing this family (108)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
| PH24865A (en) * | 1987-03-24 | 1990-12-26 | Ibm | Mode conversion of computer commands |
| US4928237A (en) * | 1987-03-27 | 1990-05-22 | International Business Machines Corp. | Computer system having mode independent addressing |
| DE3855029T2 (de) * | 1987-06-12 | 1996-09-05 | Bmc Software Inc | Supervisorverfahren für ein Rechnerbetriebssystem |
| US4926322A (en) * | 1987-08-03 | 1990-05-15 | Compag Computer Corporation | Software emulation of bank-switched memory using a virtual DOS monitor and paged memory management |
| US5226122A (en) * | 1987-08-21 | 1993-07-06 | Compaq Computer Corp. | Programmable logic system for filtering commands to a microprocessor |
| US5140684A (en) * | 1987-09-30 | 1992-08-18 | Mitsubishi Denki Kabushiki Kaisha | Access privilege-checking apparatus and method |
| US5327542A (en) * | 1987-09-30 | 1994-07-05 | Mitsubishi Denki Kabushiki Kaisha | Data processor implementing a two's complement addressing technique |
| US5018062A (en) * | 1987-10-23 | 1991-05-21 | A.I. Architects, Inc. | Method and apparatus for overriding a ROM routine in response to a reset |
| US5870602A (en) * | 1987-11-03 | 1999-02-09 | Compaq Computer Corporation | Multi-processor system with system wide reset and partial system reset capabilities |
| JP2569092B2 (ja) * | 1987-12-11 | 1997-01-08 | 株式会社日立製作所 | 入出力機器制御プログラムのアドレス解決方法 |
| US5125087A (en) * | 1988-11-07 | 1992-06-23 | Microsoft Corporation | Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register |
| JP2655615B2 (ja) * | 1988-12-08 | 1997-09-24 | 日本電気株式会社 | 情報処理装置 |
| US5210854A (en) * | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
| US5283900A (en) * | 1989-10-02 | 1994-02-01 | Spectron Microsystems, Inc. | Real-time operating system and virtual digital signal processor for the control of a digital signal processor |
| US6463529B1 (en) | 1989-11-03 | 2002-10-08 | Compaq Computer Corporation, Inc. | Processor based system with system wide reset and partial system reset capabilities |
| US5497497A (en) * | 1989-11-03 | 1996-03-05 | Compaq Computer Corp. | Method and apparatus for resetting multiple processors using a common ROM |
| CA2027799A1 (en) * | 1989-11-03 | 1991-05-04 | David A. Miller | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems |
| EP0427067A3 (en) * | 1989-11-08 | 1991-08-14 | Siemens Aktiengesellschaft | Method for the alternating operation of a computer with several operating systems |
| US5463778A (en) * | 1989-11-16 | 1995-10-31 | Texas Instruments Incorporated | User controlled trap handler |
| JP2644348B2 (ja) * | 1989-11-30 | 1997-08-25 | 株式会社東芝 | コンピュータシステム |
| US5276890A (en) * | 1989-11-30 | 1994-01-04 | Kabushiki Kaisha Toshiba | Resume control system and method for executing resume processing while checking operation mode of CPU |
| US5822601A (en) * | 1989-12-29 | 1998-10-13 | Packard Bell Nec | Apparatus to allow a CPU to control the relocation of code blocks for other CPUs |
| US5283889A (en) * | 1989-12-29 | 1994-02-01 | Zenith Data Systems Corporation | Hardware based interface for mode switching to access memory above one megabyte |
| US5269006A (en) * | 1990-01-11 | 1993-12-07 | Micral, Inc. | Method and apparatus for arbitrating access to a microprocessor having real and protected modes |
| EP0481830A2 (en) * | 1990-01-11 | 1992-04-22 | MICRAL, Inc. | Method and apparatus for microprocessor access arbitration |
| JPH0727505B2 (ja) * | 1990-02-12 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | インターフェース方法及びインターフェース・システム |
| JPH0476626A (ja) * | 1990-07-13 | 1992-03-11 | Toshiba Corp | マイクロコンピュータ |
| US5136711A (en) * | 1990-10-17 | 1992-08-04 | Ast Research | System for multiple access hard disk partitioning |
| JPH0776951B2 (ja) * | 1990-10-30 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方 |
| US5305455A (en) * | 1990-12-21 | 1994-04-19 | International Business Machines Corp. | Per thread exception management for multitasking multithreaded operating system |
| US5414860A (en) * | 1991-01-29 | 1995-05-09 | International Business Machines Incorporated | Power management initialization for a computer operable under a plurality of operating systems |
| US5291603A (en) * | 1991-03-14 | 1994-03-01 | Westinghouse Electric Corp. | Microprocessor system with multiple interrupts masked for use in electronic control or monitoring of various solid-state products |
| US5303378A (en) * | 1991-05-21 | 1994-04-12 | Compaq Computer Corporation | Reentrant protected mode kernel using virtual 8086 mode interrupt service routines |
| US5297282A (en) * | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
| US5355490A (en) * | 1991-06-14 | 1994-10-11 | Toshiba America Information Systems, Inc. | System and method for saving the state for advanced microprocessor operating modes |
| GB2259794A (en) * | 1991-09-23 | 1993-03-24 | Intel Corp | Virtual mode computer system having interrupt related instructions |
| EP0543032A1 (en) * | 1991-11-16 | 1993-05-26 | International Business Machines Corporation | Expanded memory addressing scheme |
| GB2261753B (en) * | 1991-11-19 | 1995-07-12 | Intel Corp | Multi-mode microprocessor with electrical pin for selective re-initialization of processor state |
| EP0619899B1 (en) * | 1992-01-02 | 2000-07-19 | Amdahl Corporation | Software control of hardware interruptions |
| EP0559222A2 (en) * | 1992-03-06 | 1993-09-08 | Microsoft Corporation | Improved method for loading programs |
| EP0559220A2 (en) * | 1992-03-06 | 1993-09-08 | Microsoft Corporation | Method and apparatus for storing DOS in high memory area |
| JP2986299B2 (ja) * | 1992-04-15 | 1999-12-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 周辺装置接続検出システム |
| DE69325736T2 (de) * | 1992-04-27 | 1999-11-18 | Sony Corp., Tokio/Tokyo | Datenverarbeitungssystem, worin die Kompatibilität zwischen verschiedenen Modellen gewährleistet ist |
| US5390332A (en) * | 1992-09-15 | 1995-02-14 | Sun Microsystems, Inc. | Method and apparatus for performing a takeover of a microprocessor |
| US5369770A (en) * | 1992-11-02 | 1994-11-29 | Microsoft Corporation | Standardized protected-mode interrupt manager |
| US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
| US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
| CA2135517A1 (en) * | 1993-03-25 | 1994-09-29 | Patrick Delaney Ross | Multi-level interrupt system |
| CA2126740A1 (en) * | 1993-07-06 | 1995-01-07 | Naveen Jain | Method and system for incorporation of a utility function into an operating system |
| US5581769A (en) * | 1993-12-29 | 1996-12-03 | International Business Machines Corporation | Multipurpose program object linkage protocol for upward compatibility among different compilers |
| US5446869A (en) * | 1993-12-30 | 1995-08-29 | International Business Machines Corporation | Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card |
| US5590297A (en) * | 1994-01-04 | 1996-12-31 | Intel Corporation | Address generation unit with segmented addresses in a mircroprocessor |
| EP0667573A1 (en) * | 1994-02-14 | 1995-08-16 | International Business Machines Corporation | Incorporation of services written in one operating system environment into another operating system environment |
| US5504920A (en) * | 1994-05-16 | 1996-04-02 | Compaq Computer Corporation | Video driver system for communicating device specific primitive commands to multiple video controller types |
| US5710941A (en) * | 1995-02-28 | 1998-01-20 | Microsoft Corporation | System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation |
| US5889982A (en) * | 1995-07-01 | 1999-03-30 | Intel Corporation | Method and apparatus for generating event handler vectors based on both operating mode and event type |
| US5684948A (en) * | 1995-09-01 | 1997-11-04 | National Semiconductor Corporation | Memory management circuit which provides simulated privilege levels |
| US5734910A (en) * | 1995-12-22 | 1998-03-31 | International Business Machines Corporation | Integrating multi-modal synchronous interrupt handlers for computer system |
| US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
| US5999972A (en) * | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
| US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
| US6038590A (en) * | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
| US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
| US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
| US5848246A (en) * | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
| US5987245A (en) * | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
| US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
| US6412035B1 (en) * | 1997-02-03 | 2002-06-25 | Real Time, Inc. | Apparatus and method for decreasing the response times of interrupt service routines |
| US6862635B1 (en) * | 1998-11-13 | 2005-03-01 | Cray Inc. | Synchronization techniques in a multithreaded environment |
| US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
| US8074055B1 (en) * | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
| US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
| US8121828B2 (en) | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
| US6763452B1 (en) | 1999-01-28 | 2004-07-13 | Ati International Srl | Modifying program execution based on profiling |
| US7013456B1 (en) | 1999-01-28 | 2006-03-14 | Ati International Srl | Profiling execution of computer programs |
| US6978462B1 (en) | 1999-01-28 | 2005-12-20 | Ati International Srl | Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled |
| US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
| US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
| US7275246B1 (en) | 1999-01-28 | 2007-09-25 | Ati International Srl | Executing programs for a first computer architecture on a computer of a second architecture |
| US7065633B1 (en) | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
| US6779107B1 (en) | 1999-05-28 | 2004-08-17 | Ati International Srl | Computer execution by opportunistic adaptation |
| US7254806B1 (en) | 1999-08-30 | 2007-08-07 | Ati International Srl | Detecting reordered side-effects |
| JP4277396B2 (ja) * | 1999-11-30 | 2009-06-10 | 株式会社デンソー | 電子制御装置 |
| US6934832B1 (en) | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
| US6687858B1 (en) * | 2000-05-16 | 2004-02-03 | Phillip M. Adams | Software-hardware welding system |
| US7225446B2 (en) | 2001-02-20 | 2007-05-29 | Pts Corporation | Context preservation |
| GB2372348B (en) * | 2001-02-20 | 2003-06-04 | Siroyan Ltd | Context preservation |
| US6535765B1 (en) * | 2001-06-08 | 2003-03-18 | Pacesetter, Inc. | Implantable medical stimulation device having reconfigurable memory |
| US7472207B2 (en) * | 2001-10-09 | 2008-12-30 | Aftg-Tg, L.L.C. | Optimized-incrementing, time-gap defect detection apparatus and method |
| US6691181B2 (en) | 2001-10-09 | 2004-02-10 | Phillip M. Adams | Programmatic time-gap defect detection apparatus and method |
| US6842802B2 (en) * | 2001-11-30 | 2005-01-11 | Aftg-Tg, L.L.C. | Programmatic time-gap defect correction apparatus and method |
| WO2004046934A2 (en) | 2002-11-18 | 2004-06-03 | Arm Limited | Secure memory for protecting against malicious programs |
| GB2396451B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
| GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
| US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
| GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
| US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
| US8095783B2 (en) | 2003-05-12 | 2012-01-10 | Phoenix Technologies Ltd. | Media boot loader |
| US20050114687A1 (en) * | 2003-11-21 | 2005-05-26 | Zimmer Vincent J. | Methods and apparatus to provide protection for firmware resources |
| US7877747B2 (en) * | 2004-02-20 | 2011-01-25 | Hewlett-Packard Development Company, L.P. | Flexible operating system operable as either native or as virtualized |
| US7853826B2 (en) * | 2004-09-24 | 2010-12-14 | Phoenix Technologies, Ltd. | Operating system transfer and launch without performing post |
| US7480836B2 (en) * | 2005-04-25 | 2009-01-20 | Hewlett-Packard Development Company, L.P. | Monitoring error-handler vector in architected memory |
| US20100153693A1 (en) * | 2008-12-17 | 2010-06-17 | Microsoft Corporation | Code execution with automated domain switching |
| US8032687B2 (en) * | 2009-02-12 | 2011-10-04 | Unisys Corporation | Method, system, and apparatus for supporting limited address mode memory access |
| US10104046B2 (en) | 2011-09-26 | 2018-10-16 | Mo-Dv, Inc. | Content distribution systems and methods |
| US10223232B2 (en) * | 2014-05-30 | 2019-03-05 | Teracloud Sa | System and method for recording the beginning and ending of job level activity in a mainframe computing environment |
| RU2586576C1 (ru) * | 2014-12-05 | 2016-06-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ выполнения обращения к процедурам загрузочного драйвера |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5265627A (en) * | 1975-11-28 | 1977-05-31 | Hitachi Ltd | Address conversion system |
| JPS54148342A (en) * | 1978-05-15 | 1979-11-20 | Fujitsu Ltd | Reset control system for terminal unit in information process system |
| JPS593524A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | リセツト動作制御方式 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3435420A (en) * | 1966-01-03 | 1969-03-25 | Ibm | Contiguous bulk storage addressing |
| US3944985A (en) * | 1973-10-19 | 1976-03-16 | Texas Instruments Incorporated | Workspace addressing system |
| US4020471A (en) * | 1975-06-30 | 1977-04-26 | Honeywell Information Systems, Inc. | Interrupt scan and processing system for a data processing system |
| GB1599421A (en) * | 1977-05-04 | 1981-09-30 | Plessey Co Ltd | Information protection arrangements in data processing systems |
| US4275440A (en) * | 1978-10-02 | 1981-06-23 | International Business Machines Corporation | I/O Interrupt sequencing for real time and burst mode devices |
| US4429360A (en) * | 1978-10-23 | 1984-01-31 | International Business Machines Corporation | Process and apparatus for interrupting and restarting sequential list-processing operations |
| US4237533A (en) * | 1978-12-28 | 1980-12-02 | International Business Machines Corporation | Preventing initial program load failures |
| JPS5616248A (en) * | 1979-07-17 | 1981-02-17 | Matsushita Electric Ind Co Ltd | Processing system for interruption |
| US4349873A (en) * | 1980-04-02 | 1982-09-14 | Motorola, Inc. | Microprocessor interrupt processing |
| US4519032A (en) * | 1982-06-09 | 1985-05-21 | At&T Bell Laboratories | Memory management arrangement for microprocessor systems |
-
1985
- 1985-04-10 US US06/722,052 patent/US4779187A/en not_active Expired - Lifetime
-
1986
- 1986-04-09 AT AT86104823T patent/ATE108569T1/de not_active IP Right Cessation
- 1986-04-09 DE DE3689961T patent/DE3689961T2/de not_active Expired - Lifetime
- 1986-04-09 EP EP86104823A patent/EP0197552B1/en not_active Expired - Lifetime
- 1986-04-09 EP EP19930111564 patent/EP0574032A1/en not_active Withdrawn
- 1986-04-10 JP JP61083195A patent/JP2650675B2/ja not_active Expired - Lifetime
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5265627A (en) * | 1975-11-28 | 1977-05-31 | Hitachi Ltd | Address conversion system |
| JPS54148342A (en) * | 1978-05-15 | 1979-11-20 | Fujitsu Ltd | Reset control system for terminal unit in information process system |
| JPS593524A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | リセツト動作制御方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0197552A2 (en) | 1986-10-15 |
| DE3689961T2 (de) | 1994-11-10 |
| DE3689961D1 (de) | 1994-08-18 |
| EP0574032A1 (en) | 1993-12-15 |
| ATE108569T1 (de) | 1994-07-15 |
| EP0197552A3 (en) | 1990-01-03 |
| US4779187A (en) | 1988-10-18 |
| JP2650675B2 (ja) | 1997-09-03 |
| EP0197552B1 (en) | 1994-07-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS621036A (ja) | マルチモ−ドマイクロプロセツサにおいてプログラムを実行する方法及びオペレ−テイングシステム | |
| US4825358A (en) | Method and operating system for executing programs in a multi-mode microprocessor | |
| US5027273A (en) | Method and operating system for executing programs in a multi-mode microprocessor | |
| US5459869A (en) | Method for providing protected mode services for device drivers and other resident software | |
| US5701493A (en) | Exception handling method and apparatus in data processing systems | |
| US5125087A (en) | Method of resetting sequence of access to extended memory disrupted by interrupt processing in 80286 compatible system using code segment register | |
| US5832299A (en) | System for emulating input/output devices utilizing processor with virtual system mode by allowing mode interpreters to operate concurrently on different segment registers | |
| RU2259582C2 (ru) | Способ разрешения конфликтов по адресному пространству между монитором виртуальных машин и гостевой операционной системой | |
| US5353411A (en) | Operating system generation method | |
| US6772419B1 (en) | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS | |
| US5038281A (en) | Acceleration of system interrupts between operating systems in guest-host relationship | |
| EP0312194B1 (en) | Data processor having two modes of operation | |
| EP0185378B1 (en) | Virtual computer system | |
| RU2265880C2 (ru) | Новый режим процессора для ограничения функционирования гостевого программного обеспечения, выполняющегося на виртуальной машине, поддерживаемой монитором виртуальной машины | |
| US6240531B1 (en) | System and method for computer operating system protection | |
| US8234430B2 (en) | Apparatus and method with controlled switch method | |
| JPS625441A (ja) | 情報処理装置 | |
| WO1998019238A1 (en) | Heterogeneous symmetric multi-processing system | |
| CA2482008A1 (en) | Systems and methods for using synthetic instructions in a virtual machine | |
| JPH11149385A (ja) | マルチos構成方法 | |
| US5109522A (en) | Data processing system with logical processing facility supporting a plurality of system control programs for production operation | |
| JPH06242987A (ja) | コンピュータ装置においてマイクロプロセッサの正常な処理の引継ぎをホストプロセッサが実行する方法および装置 | |
| EP1410170B1 (en) | Logical substitution of processor control in an emulated computing environment | |
| EP0171475B1 (en) | Data processing system with logical processor facility | |
| US6263421B1 (en) | Virtual memory system that is portable between different CPU types |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |