JP2002024003A - 割り込みフラグ管理方法 - Google Patents
割り込みフラグ管理方法Info
- Publication number
- JP2002024003A JP2002024003A JP2001150838A JP2001150838A JP2002024003A JP 2002024003 A JP2002024003 A JP 2002024003A JP 2001150838 A JP2001150838 A JP 2001150838A JP 2001150838 A JP2001150838 A JP 2001150838A JP 2002024003 A JP2002024003 A JP 2002024003A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- rom
- stack
- address
- instruction
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Abstract
固なメモリ管理システムを提供する。本発明はこのこと
を達成するため適切な割り込みフラグの管理を行う。 【構成】 コンピュータ・システム内の割り込みフラグ
管理方法において:割り込みを処理するための命令の実
行をモード・エミュレータによって検出し; 前記コン
ピュータ・システムのスタックのスタック限界を前記モ
ード・エミュレータによって調節し; スタックに関連
した命令を前記コンピュータ内で実行して、前記スタッ
ク限界外の前記スタックにアクセスし; 前記コンピュ
ータ・システムにおいて、前記アクセスによって生じた
スタック限界違反を検出し;前記違反を検出した場合
に、割り込みフラグを修正する。
Description
分野に関係し、具体的にはコンピュータ・メモリの使用
を制御し最適化するためのメモリ管理システム及び割り
込みフラグ管理システムに関係するものである。
は要素から構成される。コンピュータ・システムにはマ
イクロプロセッサなどの中央処理装置(CPU)を典型
的に含む。マイクロプロセッサは命令の取得、復号及び
実行を行うプログラム制御される装置である。コンピュ
ータ・システムはシステム・オペレーティング・ソフト
ウェア、アプリケーション・プログラム命令及びデータ
を記憶するための記憶要素も含む。これらの記憶要素は
読み出し専用メモリ(ROM)、ランダム・アクセス・
メモリ(RAM),ディスク記憶装置又はテープ記憶装
置もしくは他の適当な記憶手段とすることができる。
クロプロセッサに接続するための入出力(I/O)要素
も典型的に含む。メモリ管理ユニットやコプロセッサな
どの専用部品もコンピュータ・システムの一部となり得
る。
る。データの処理を可能にするためには中央処理装置
(CPU)が入力データを使用するまで、その入力デー
タを記憶しなければならない。また、データを処理した
後に出力データを記憶しなければならない。いくつかの
処理動作の間、データに対して命令を実行している間に
CPUがデータの一時的な記憶を必要とする場合があ
る。さらに、処理を制御するアプリケーション・プログ
ラムや、その下でプログラムが走行するオペレーティン
グ・システムをCPUからアクセスできなければならな
い。「メイン・メモリ」と呼ばれる資源にこの情報を記
憶することによってCPUからこの情報を使用できるよ
うになる。
ーザ、データ、プログラム又はプロセスに動的にアロケ
ートされる希少な資源である。メイン・メモリは通常は
RAMなどのシリコン・べースのメモリである。多くの
応用例ではメイン・メモリとしてダイナミック・ランダ
ム・アクセス・メモリ(Dynamic Random
Access Memory:DRAM)が使用され
る。プロセッサのメイン・メモリは「バイト」編成にな
っている。すなわち、メモリは8ビット・バイトのシー
ケンスとして構成され、このバイトがメモリからアクセ
スされる情報の最小単位になる。ある規約によれば、1
つのロウ全体がロウ・アドレスによって選択され、カラ
ムが8ビットのグループでアクセスされる。実施によっ
ては16ビット・ワード(2バイト)又は32ビット・
ワード(4バイト)を1回でアクセスするものもある。
るようにするためにはメイン・メモリをCPUに直接又
は間接に接続しなければならない。中央処理装置に直接
接続できるメイン・メモリの量はCPUのアドレス・バ
スの幅によって制限される。アドレス・バスはCPUと
メモリの間に接続される。メモリをアクセスするため、
CPUは1つのメモリ・ロケーションだけをユニークに
表現する値をアドレス・バスに置くことができる。アド
レス・バスに置くことのできるユニークな値の数はアド
レス・バスの幅に応じて変化する。特定のマイクロプロ
セッサなど特定のタイプのCPUのアドレス・バスの幅
は普通は固定されているので、CPUによってアドレッ
シングできるメモリ・ロケーションの数には限界があ
る。
のメモリをCPUに接続することが望ましい場合があ
る。追加のメモリを接続できるようにするためにある方
法を使用して追加メモリをCPUに間接的に結合する。
8088や8086などのマイクロプロセッサのアドレ
ス・バスは20ビットである。nビットのアドレス・バ
スによってアドレッシングできるメモリ・ロケーション
の数は2のn乗であるから20ビットのアドレス・バス
によってアドレッシングできるメモリ・ロケーションの
数は2の20乗、すなわち、約100万(1M)であ
る。CPUから直接アクセスできるようにするためには
すべてのメモリをアドレス・バスのビットによって表現
できるユニークな値の数を越えないサイズの連続ブロッ
クの中に配置しなければならない。20ビットのアドレ
ス・バスの場合すべてのメモリを1Mの連続ブロックの
中に置かなければならない。
リをアクセスすることもできるが、ほとんどのオペレー
ティング・システムはメモリヘの直接アクセスだけをサ
ポートする。オペレーティング・システムが間接的に追
加メモリをアクセスする方法をサポートしない場合、ア
プリケーション・プログラムとそのデータのすべてを、
必要なシステム・ソフトウエアのすべてとともに直接ア
クセスできる連続ブロックの中に格納しなければならな
い。
スできるメモリの量が制限されるが、システム・ソフト
ウェアの占有するメモリの量によって、アプリケーショ
ン・プログラムが使用できる空きメモリの量が制限され
る。したがって、アプリケーション・プログラムが使用
できるメモリの量は直接アクセスできるメモリの総量よ
り少ない。アプリケーション・プログラムが、使用可能
な量以上のメモリを必要とする時には簡単にアクセスで
きる使用可能メモリの量を増加するための方法を見い出
さなければならない。
ために多くの試みが行われてきた。従来技術で使用され
た方法の1つがエクスパンデッド・メモリ仕様(Exp
anded Memory Specif1catio
n:EMS)として知られている。EMSは直接アクセ
スできないエクステンデッド・メモリの一部をエクスパ
ンデッド・メモリとして使用するために予約し、ぺージ
に分割する。EMSではこのエクスパンデッド・メモリ
を1回に1ぺージずつCPUが直接アクセスできるアド
レス空間に切り替えることによって事実上無制限の量の
メモリをアクセスできる。しかし、EMSではぺージの
変更に時間がかかる。望みのデータが直接アクセスでき
るメモリ内に配置されたEMSぺージ・フレーム内にな
い場合、EMSではページ・フレームの現在の内容をぺ
ージ・アウトし、望みのデータを含むページをエクスパ
ンデッド・メモリからぺージ・インしなければならな
い。このようなページ変更は時間を要するのでコンピュ
ータの処理速度が低下する。また、EMSはすべてのア
プリケーション・ソフトウェアに一般的に適用可能では
ない。EMSを使用できる場合にそれを利用するよう特
別にアプリケーション・ソフトウェアを作成しなければ
ならない。
L命令に頼る方法である。LOADALL命令は802
86マイクロプロセッサだけに具えられた非サポート命
令である。LOADALL命令は80286だけに具え
られているのでこの従来技術の方法は80286マイク
ロプロセッサに基づくコンピュータでなければ役に立た
ない。
Mに含まれるシステム・ソフトウェアの検査と再プログ
ラミングを含む。この方法では最小の量のメモリを占有
しながらその機能を実行するようにシステムROMを再
プログラミングすることができる。この方法によればR
OMプログラミングが非効率的なために浪費されていた
メモリ空間を他の目的に使用できるようになる。しか
し、この方法ではこの方法に使用できるROMのそれぞ
れのすべての改訂版を人間がプログラミングし直す必要
がある。
点がある。これらの方法の中のあるものは追加メモリを
提供するが、望みのデータをアクセス可能にするのに必
要なステップのせいでコンピュータ・システムの性能を
低下させるものがある。特定の中央処理装置に基づくシ
ステムでなければ使えない方法もある。ROM固有であ
りROMのそれぞれの改訂版ごとに別々に実施しなけれ
ばならないものもあれば、特定のアプリケーション・プ
ログラムに固有でありすべてのアプリケーション・プロ
グラムに一般的に適用することができないものもある。
管理システムを提供する。本発明はこのことを達成する
ため適切な割り込みフラグの管理を行う。さらに、CP
U固有、ROM固有又はアプリケーション・プログラム
固有のどれでもなく、従来技術の方法ほど性能を低下さ
せないので、従来技術の欠点がなく、より一般的に適用
可能であると同時によりよい性能を提供する。
ソフトウェアをその通常のアドレス空間から移動し、そ
のアドレス空間を他の目的に使用する。本発明はROM
アドレス空間を他の目的に使用でき、なおかつROMに
格納されたソフトウェアにアクセスできる形でメモリを
管理する。
フトウェアを含むROMをエクステンデッド・メモリの
アドレス空間にマッピングし、プロテクト・モードでア
クセスする。その後、元々ROMが配置されていたアド
レス空間にエクステンデッドRAMをマッピングする。
本発明の好ましい実施例ではROMアクセスの試みのす
べてを再配置されたROMイメージに方向変更し、元は
ROMであったアドレス空間にマッピングされたエクス
テンデッドRAMをアプリケーション・プログラムなど
他の目的に使用できるようにする。
メモリ・アドレッシング範囲内でアドレッシング可能で
あり、このようにしてデータに直接に簡単にアクセスで
きるメモリの量を増やすための方法である。本発明の好
ましい実施例ではシステムROMとビデオROMを再配
置するが、他のROMにもこの方法を適用できる。
OMをメモリ外部アドレス空間にマッピングする。イン
ターセプト・ルーチンをインストールしてROMアクセ
スをすべてインターセプトする。エクステンデッドRA
Mの位置を突き止め、アロケートして、以前にROMが
占有していたアドレス空間に配置する。インストールが
終わったならば、普通のアプリケーション・プログラム
をこのコンピュータ・システムで実行できる。元々RO
Mがあったアドレス空間に配置される追加RAMはアプ
リケーション・プログラムが使用するためにアロケート
したり、常駐終了(Terminate−and−St
ay Resident:TSR)プログラムの再配置
を含む(それに限定されるわけではない)他の目的のた
めにアロケートできる。ROMへのアクセスがある場合
にはROMアクセス・インターセプト・ルーチンがその
アクセスをインターセプトし、再配置されたROMイメ
ージに方向変更する。再配置されたROMルーチンを呼
び出す時にはその実行を監視して、元のROMアドレス
空間にあるROMデータ・テーブルやROMサブルーチ
ンをアクセスしたりしないようにする。というのはこの
アクセスが行われるとシステムがクラッシュするはずだ
からである。再配置されたROMルーチンの実行が完了
した後にこのROM実行の結果のすべてを検査し、調節
して、システムのエラーやクラッシュをもたらす可能性
のある不正確なデータを除く。性能をさほど低下させ
ず、特定のCPU、特定のROM又は特定のアプリケー
ション・プログラムに限定されない形で動作することに
よって本発明はコンピュータ・システム内のCPUから
簡単にアクセスできる使用可能メモリの量を増やすため
のはるかに効率的で一般的に適用できる方法を提供す
る。
スできる追加メモリを提供する方法を説明する。以下の
説明では本発明の完全な説明を提供するためコンピュー
タ・システムのタイプ、メモリ・アドレス・ロケーショ
ン、メモリの量やバス幅など多数の特定の詳細を記載す
る。しかし、これらの特定の詳細なしで本発明を実施で
きることは当業者には明白であろう。それ以外の場合で
は本発明を無用に不明瞭にしないために周知の特徴を詳
細に説明することはしない。
第1図に示す。このコンピュータ・システムにはCPU
101、RAM(メイン・メモリ)102、ROM(読
み取り専用メモリ)103、及びI/O(入出力)10
4が含まれ、これらのすべてがシステム・バス107に
結合される。I/Oブロック104はバス105を介し
て、大容量記憶装置106などの他のシステムヘのアク
セスを提供する。
令を実行し、データを処理する。CPU101はシステ
ム・バス107を介して他の要素と通信する。CPUは
システム・バス107を介してコンピュータの他の要素
から入力データを受け取り、システム・バスを介してコ
ンピュータの他の要素へ出力データを送る。システム・
バス107には普通アドレス・バス、データ・バス及び
他のさまざまな制御線が含まれる。アドレス・バスとデ
ータ・バスの幅ならびに制御線の数とタイプはコンピュ
ータ・システムごとに異なる。
・マップドI/O104を合むコンピュータ・システム
の各要素に複数の別個のメモリ・ロケーションが含まれ
る。CPU101がこれらのロケーションをアクセスで
きるようにするために各ロケーションに固有のアドレス
を割り当てる。アドレスのそれぞれはアドレス・バスを
介して送ることのできる2進値の固有の組合せである。
ほとんどのメモリ・デバイスに複数のロケーションが含
まれるので、1つのメモリ・デバイスのロケーションの
すべてのアドレスが通常は連続ブロックとして割り当て
られる。これらのブロックに連続した形でアドレスが割
り当てられる(メモリにマッピングされる)場合が多
い。しかし、割り当てられていないアドレスや将来の使
用のために予約されたアドレスでギャップができていて
もよい。
のメモリの編成を理解するのに役立つ。典型的なメモリ
・マップはマイクロプロセッサがアクセスできる最下位
アドレスから始まり、マイクロプロセッサがアクセスで
きる最上位アドレスまで延びる。メモリ・マップの1例
を第2図に示す。第2図のマップのメモリの最下位アド
レスは領域201として示されるが、メイン・メモリR
AM102にアロケートされる。領域202として示さ
れる次のアドレスはI/O104にアロケートされる。
領域203として示されるメモリ・アドレスは未使用で
ある。未使用アドレスの上位にある領域204にはRO
Mにアロケートされたメモリ・アドレスが含まれる。領
域205は追加RAMにアロケートされるメモリ・アド
レスであり、領域206は追加ROMにアロケートされ
るメモリ・アドレスである。第2図はコンピュータ・シ
ステムのメモリ・アーキテクチャを設計する際の自由度
を示すためあくまで1例として提供した図である。これ
は特定のコンピュータ・システムの実際のメモリ・マッ
プを表現したものではない。
ーティング・システム」として知られる一連の命令によ
って制御される。オペレーティング・システムは入出力
などコンピュータ・システムの基本機能を制御するのに
使用され、通常はROM103などの永久記憶要素に記
憶される。オペレーティング・システムの例にMS−D
OS又はPC−DOSが含まれる。
ン・プログラムを実行するのに使用される。アプリケー
ション・プログラムの例に含まれるのがワード・プロセ
ッサ、スプレッドシート、ドローインク・プログラム、
データベースなどである。アプリケーション・プログラ
ムによってはROMに格納されるものもある。しかし、
一般的にはアプリケーション・プログラムはディスク・
ドライブなどの大容量記憶装置に記憶される。
CPU101によって実行されるアプリケーション・プ
ログラムも大容量記憶装置106からRAM102に転
送される。CPU101が操作するデータもRAM10
2に格納される。
量、オペレーティング・システムのサイズ及びCPU1
01からアクセスできるデータの量はメイン・メモリの
サイズによって制限される。無限の量のメモリがあれば
理想的だが経済的にも技術的にも不可能である。まず、
ユーザが購入できるメモリの量に限界がある。次に、特
定のコンピュータがサポートできるメモリの量に技術的
な限界がある。特定のコンピュータがサポートするメモ
リの量はそのコンピュータのベースとなる特定のCPU
のタイプに依存する。
タは8088マイクロプロセッサをベースとしている。
8088マイクロプロセッサのアドレス・バスは20ビ
ットである。あるコンピュータがアドレッシングできる
メモリの量はそのアドレス・バスの幅の関数である。n
ビットのアドレス・バスを備えたCPUは2のn乗バイ
ト又は2のn乗ワードのメモリを直接アクセスできる。
したがって、8088マイクロプロセッサは約100万
バイト又は100万ワード(1M)を直接アクセスでき
る。CPUのアドレス・バスの限界を越えて追加メモリ
を間接アクセスできるようにするための方法が開発され
てはいるが、このような方法は扱いにくくて非効率的で
ある場合が多い。したがって、アプリケーション・ソフ
トウエアが使用できる直接アクセス可能なメモリ空間が
できる限り多い状態を保って、アプリケーション・ソフ
トウェアが可能な限り効率的に動作できるようにするこ
とが望ましい。
リ空間をアプリケーション・ソフトウェア用に予約し直
接アクセス可能なメモリ空間に収まるようにアプリケー
ション・ソフトウェアをできる限り小さくすることが理
想的であるが、これが必ず達成できるとは限らない。シ
ステム・ソフトウェアはアプリケーション・ソフトウェ
アの管理と制御のために必要であるからやはりメモリに
常駐しなければならない。また、アプリケーション・ソ
フトウェアの複雑さとユーザ・データの量が増加するに
つれてアプリケーション・ソフトウェアに必要なメモリ
が増加する。
るプログラムがコンピュータ・システム上で使用される
場合が多い。このようなプログラムは「ホット・キー」
と「ポップアップ・ウィンドウ」を提供し、ビデオ・デ
ィスプレイの隅に時計を表示したりディスク・ドライブ
の活動を監視するなどバックグラウンド・タスクの実行
に使用される。TSRは他の多くの応用分野のために作
成されており、ユーザが自分のコンピュータに複数のT
SRを同時に常駐させることもしばしばである。TSR
のそれぞれが自分の配置されるメモリ空間を必要とする
のでシステムにTSRを追加するとメモリ必要量が増加
する。
ち、8088/8086ファミリのマイクロプロセッサ
に基づいて、MS−DOSの下で動作するIBMのパー
ソナル・コンピュータなどのコンピュータのメモリ・マ
ップを示す図である。第5図のメモリ・マップは可能な
唯一のメモリ・マップではなく、典型的なメモリ・マッ
プの1例である。このメモリ・マップは一番下のメモリ
・ロケーション0(501)から一番上のメモリ内で最
上位のロケーションまでという形で編成されている。こ
のメモリ・マップには3つの基本領域がある。第1領域
には最下位640Kのメモリが含まれ、コンベンショナ
ル・メモリ502と呼ばれる。コンベンショナル・メモ
リ502は読み取り動作と書き込み動作の両方が可能な
RAMだけから構成される。ただし、すべてのシステム
が640K全体を含むわけではなく、メモリ空間の一部
が未使用のままであってもよい。
バスは16ビットであり、これによって64Kのアドレ
ス空間がもたらされた。アプリケーションの必要とする
メモリの量が増加するにつれてマイクロコンピュータに
16ビット・アドレス・バスの制限を克服する必要が生
じた。したがって、IBMのパーソナルコンピュータは
20ビット・アドレス・バスをサポートするセグメント
・アドレス方式と共に市場に導入された。20ビット・
アドレス・バスは1024K又は1Mのアドレス空間を
提供するが、これは16ビット・バスの16倍のスペー
スである。1Mは16ビット・アドレス・バスを備える
コンピュータの64Kと比較して膨大な量のメモリであ
ると思われた。さらに、当時のメモリ回路は高価であっ
たのでRAMメモリに関する人為的な制限が640Kに
設けられた。640Kから1Mまでの384Kのアドレ
ス空間は将来の使用、主にROMのために予約されてい
た。後続モデルのコンピュータはオリジナルのIBM
PCと後方互換であり同一のPC−DOS/MS−DO
Sオペレーティング・システムを使用するように設計さ
れたので640Kの制限が現代のコンピュータ上でアプ
リケーションに使用可能なメモリの量を制約し続けてい
る。
ュータ・システムの重要な部分である。コンベンショナ
ル・メモリはシステム・ソフトウェア、アプリケーショ
ン・ソフトウェア、ユーザ・データ及びTSRやデバイ
ス・ドライバを含む他のコードとデータを記憶するのに
使用される。第5図に示すように、MS−DOSはメモ
リの最下位部分を使用してそれ自体のコード506と関
連データ507を格納する。MS−DOSはその上位に
アプリケーション・ソフトウェア、TSR及びデバイス
・ドライバ(全体を要素512として図示)を格納す
る。
済みメモリ503である。これは640KのRAM限界
の上位、1024Kまでのメモリ・アドレスにある。予
約済みメモリ領域503は主に読み取り専用デバイスで
あるROMによって占められる。予約済みメモリ領域に
あるROMにはシステムROM504,ビデオROM5
05とおそらくはハード・ディスク・ドライブやネット
ワーク・インターフェースなどの他の周辺装置用のRO
M514が含まれる。システムROM504にはコンピ
ュータの基本機能をサポートするコードとデータが格納
される。ビデオROM505にはビデオ表示を伴う動作
をサポートするためのコードとデータが格納される。他
の周辺機器用のROM514はそれらの装置の動作をサ
ポートする。
は他のタイプの特殊メモリも含まれる。予約済みメモリ
領域503にあるメモリのタイプの1つがビデオ・フレ
ーム・バッファに使用されるRAMである。ビデオ・フ
レーム・バッファは現在ビデオ・ディスプレイに表示さ
れている情報を格納するのに使用される。一般にビデオ
・フレーム・バッファから情報を読み取ることと書き込
むことの両方が可能であるが、ビデオ・フレーム・バッ
ファは通常は一般情報の記憶には使用できない。という
のはビデオ・フレーム・バッファがアクティブでなくそ
の状態のままになるのでない限り、ビデオ・フレーム・
バッファに情報を書き込むとビデオ・ディスプレイの外
見が変化するからである。
ーム・バッファのために使用される領域は特定のコンピ
ュータ・システムにインストールされたビデオ・ディス
プレイ・アダプタの特定のタイプによって変化する。第
5図に示すように、EGA又はVGAのビデオ・アダプ
タをインストールする場合、グラフィックス用の64K
のビデオ・フレーム・バッファ508が640Kから7
04Kまでのメモリ空間を占有する。EGA又はVGA
のアダプタはテキスト表示のために32Kのビデオ・フ
レーム・バッファも使用する。この32Kのビデオ・フ
レーム・バッファはモノクローム表示の場合には704
Kから736Kまで、カラー表示の場合には736Kか
ら768Kまでに配置される。MDAビデオ・アダプタ
をインストールする場合16Kのビデオ・フレーム・バ
ッファ509が704Kから720Kまでのメモリ空間
を占有する。ハーキュリーズ・ビデオ・アダプタをイン
ストールする場合、64Kのビデオ・フレーム・バッフ
ァが704Kから768Kまでのメモリ空間を占有す
る。CGAビデオ・アダプタをシステムにインストール
する場合、ビデオ・フレーム・バッファ510が736
Kから768Kまでの82Kのメモリ空間を占有する。
EGA又はVGAのビデオ・アダプタをインストールす
る場合、追加のメモリがビデオROMのために使用され
る。典型的には768Kから784Kまでの16Kのメ
モリ空間がEGA又はVGAのビデオROM505のた
めに使用される。ただし、ビデオROM505はサイズ
が異なる場合もあり、異なるアドレス空間に配置される
場合もある。
本動作をサポートするが典型的にはたとえば960Kか
ら1024Kまでの予約済みメモリ領域503の最上位
64Kを占有する。予約済みメモリ領域503の残りの
スペースは未使用か、周辺装置をサポートするROMや
EMSページ・フレームを含む他の目的に使用されるか
のどちらかである。
べてのメモリを合むエクステンデッド・メモリ511で
ある。8088/8086マイクロプロセッサはアドレ
ス・バスが20ビットしかないので1Mのメモリしかア
ドレッシングできず、エクステンデッド・メモリ511
を簡単にはサポートできない。80286など24ビッ
トのアドレッシング能力を持つマイクロプロセッサは予
約済みメモリ503とコンベンショナル・メモリ502
の1Mの他に、15Mのエクステンデッド・メモリ51
1を合む16Mまでのメモリをアドレッシングできる。
80386や80486など32ビットのアドレッシン
グ能力を持つマイクロプロセッサは予約済みメモリ50
3とコンベンショナル・メモリ502の1Mの他に40
95Mのエクステンデッド・メモリ511を含む4Gま
でのメモリをアドレッシングできる。
1Mの直上に置かれる領域をハイ・メモリ・エリア51
3と呼ぶ場合がある。ハイ・メモリ・エリア513は従
来技術のハイ・メモリ技法を使用してアドレッシングで
きる65520個のメモリ・ワードから構成される。
システムの欠点は1メガバイトのメモリしか直接アクセ
スできないことである。その1メガバイトの中にRAM
アドレッシングに関して640Kの人為的な制限が設け
られている。しばしば、ユーザは640Kを越えるRA
Mを直接アドレッシングできることを必要とする。RA
Mアドレッシングの人為的な640K制限を変更できな
いので追加RAMを提供しようとする従来技術の試みは
RAMカットオフと1メガバイト限界の間の384Kの
予約メモリの利用に焦点を置いている。いくつかの従来
技術の方法を以下で説明する。
ショナル・メモリとして使用するためコンベンショナル
・メモリ602の640K限界の真上の予約メモリ60
3をアロケートする。第5図を参照すると、要素601
として示される640Kから704Kまでの予約メモリ
・アドレス空間がEGA/VGAビデオ・フレーム・バ
ッファのためにアロケートされる。704Kから736
Kまでの予約メモリはMDA/ハーキュリーズ・ビデオ
・フレーム・バッファのためにアロケートされる。73
6Kから768Kまでの予約メモリ・アドレス空間はC
GAビデオ・フレーム・バッファのためにアロケートさ
れる。しかし、ほとんどのコンピュータ・・システムに
は1種類のビデオ・ディスプレイ・アダプタしかない。
あるコンピュータ・システムにCGA又はMDA/ハー
キュリーズのビデオ・アダプタがあるがEGA/VGA
ビデオ・アダプタがない場合、要素601として図示さ
れるEGA/VGAビデオ・フレーム・バッファのため
にアロケートされる640Kから704Kまでのメモリ
は未使用のままになり、コンベンショナル・メモリ60
2の拡張としてアプリケーション・プログラムが使用す
るために再アロケートすることができる。あるコンピュ
ータ・システムにCGAビデオ・アダプタがあるがMD
A/ハーキュリーズ又はEGA/VGAのアダプタがな
い場合、MDA/ハーキュリーズとEGA/VGAのビ
デオ・フレーム・バッファのためにアロケートされる6
40Kから736Kまでのメモリ空間が未使用のままに
なりコンベンショナル・メモリ602を736Kまで拡
張できる。
640Kの上に押し上げるためには、まず、そのシステ
ムにインストールされているビデオ・ディスプレイ・ア
ダプタのタイプを判定しなければならない。存在するビ
デオ・ディスプレイ・アダプタのタイプに応じて外部メ
モリから適当な量の未使用RAMを640Kを越えて6
40Kと連続している未使用のアドレス空間にマッピン
グしなければならない。その後、アプリケーション・ソ
フトウェアやTSRにメモリを供給するためのメモリ・
アロケーション手続きを修正して640K限界を越える
メモリをアロケートできるようにしなければならない。
量を増加させるが、複数の欠点がある。第1に、この方
法はますます一般的になりつつあるEGAディスプレイ
又はVGAディスプレイを備えたコンピュータ・システ
ムでは役に立たない。第2に、EGAディスプレイ又は
VGAディスプレイのないシステムであってもこの方法
によって使用可能にできるメモリの量はごくわずかであ
る。MDAディスプレイ又はハーキュリーズ・ディスプ
レイのあるシステムでは64Kを使用可能にすることし
かできない。CGAディスプレイしかないシステムであ
っても96Kを使用可能にすることしかできない。
いる。この方法にも第6図に示されるようにコンベンシ
ョナル・メモリの640K限界を予約メモリ領域に押し
上げることが含まれる。しかし、この方法は他の目的に
使用されている予約メモリの再配置も行われるという点
が従来技術の第1の方法と異なる。この方法を使用する
ことからもたらされるメモリ・マップを第7図に示す。
この方法を用いるとビデオRAM703及びビデオRO
M704ならびに入出力(I/O)メモリ705及びT
SRメモリ706を予約メモリ領域内でできる限り上位
のメモリ・ロケーションに再配置してできる限り多くの
未使用の予約メモリ・アドレス空間をコンベンショナル
・メモリ701との640K境界に連続して使用可能に
することができる。実際に、コンベンショナル・メモリ
701の640K限界を900Kまで押し上げることが
できる。
システムにインストールされているビデオ・ディスプレ
イ・アダプタのタイプを判定しなければならない。やは
り予約メモリ領域708の一部を占有する他のI/Oデ
バイスも判定しなければならない。その後、ビデオRA
M703、ビデオROM704、他のI/Oメモリ70
5及びTSRメモリ706を予約メモリ領域708の最
上位にあるシステムROM707の真下の領域に再マッ
ピングしなければならない。その後、ビデオRAM70
3、ビデオROM704、I/Oメモリ705及びTS
Rメモリ706を指す割り込みポインタその他すべての
ポインタをリダイレクト(宛先変更)して、このメモリ
が再配置された新しいメモリ空間を反映させなければな
らない。次に、640Kと連続する予約メモリ・アドレ
ス空間の使用可能ブロックに外部メモリから適当な量の
未使用RAMをマッピングしなければならない。最後
に、アプリケーション・ソフトウェアとTSRのための
メモリ・アロケーション手続きを修正してフィル・メモ
リ702と呼ばれる640Kの上位にある予約メモリの
うちで使用可能にされた部分をアロケートできるように
しなければならない。
る。この方法では多くとも260Kの予約メモリしかア
クセスできない。また、ビデオRAM703はしばしば
アプリケーション・ソフトウエアが直接アクセスするの
で、アクセスの試みのすべてをつかまえビデオRAM7
03が再配置されたメモリ空間にリダイレクトすること
は困難である。
少異なる形で動作する。これを第8図に示す。TSR、
デバイス・ドライバ及びネットワーク・インターフェー
ス・プログラム808は普通は640K未満のコンベン
ショナル・メモリ801に配置されるが、そうでなけれ
ばアプリケーション・ソフトウェアが使用できるはずの
コンベンショナル・メモリの一部を占有するので、これ
らのプログラムをコンベンショナル・メモリ801の外
部に移動できるならばより多くのメモリをアプリケーシ
ョン・ソフトウェアが使用できるはずである。従来技術
の第3の方法ではTSR,デバイス・ドライバ及びネッ
トワーク・インターフェース・プログラム803をコン
ベンショナル・メモリ801から予約メモリ802に移
動することによってアプリケーション・ソフトウェアが
使用できるコンベンショナル・メモリ801の量を増や
す。
用の予約メモリ806の量を判定しなければならない。
また、TSR、デバイス・ドライバ及びネットワーク・
インターフエース・ドライバ803が占有するコンベン
ショナル・メモリの量も判定しなければならない。その
後、予約メモリ領域にエクステンデッド・メモリから十
分な量のアロケートされていないRAMをマッピングし
てTSR,デバイス・ドライバ及びネットワーク・イン
ターフェース・プログラムのためのメモリ空間を供給し
なければならない。次に、TSR、デバイス・ドライバ
及びネットワーク・インターフェース・プログラム80
3を予約メモリ802内の使用可能メモリ806に再配
置しなければならない。この従来技術の第3の方法にも
欠点がある。まず、この方法ではアロケートされていな
い予約メモリ空間806しか使用できない。この方法で
はROM、ビデオ・フレーム・バッファ又は他の用途に
アロケートされている予約メモリ空間807を使用でき
ない。また、TSR、デバイス・ドライバ及びネットワ
ーク・インターフェース・プログラム803の再配置は
それらに対する参照のすべてが確実に新しいロケーショ
ン804,805にリダイレクトされるようにするため
に注意深く行わなければならない。
モリ・エリアに関連する方法である。この方法を使用す
ることからもたらされるメモリ・マップを第9図に示
す。この方法は80286で実施されたセグメント・ア
ドレッシング方式の例外に基づいている。セグメント・
アドレッシング方式では16ビットのセグメントと16
ビットのオフセットを組み合わせて20ビットのアドレ
スを生成する。20ビットのアドレスは理論的には1M
までに制限されるはずであるが、セグメントとオフセッ
トの特定の組合せを用いると1M限界を越えるアドレス
を得ることができる。8088及び8086マイクロプ
ロセッサは可能なアドレスの範囲を1Mまでに制限する
よう設計されたが80286マイクロプロセッサにはそ
のような保護機構がない。80286マイクロプロセッ
サはメモリ・アドレスに対する1M制限を厳格に維持す
るわけではないのでこの方法を80286プロセッサと
共に使用すると、ハイ・メモリ・エリア(HMA)90
3と呼ばれる、1Mの真上に位置する追加の64Kのメ
モリをアクセスできるようになる。
メント・アドレッシング方式を使用する時に最初の16
ビットのセグメントを格納するのに使用される「セグメ
ント・レジスタ」と呼ばれるレジスタにFFFFHをロ
ードする。その後、「オフセット・レジスタ」と呼ばれ
るレジスタに10HとFFFFHの間の値をロードす
る。そうすると、マイクロプロセッサはコンベンショナ
ル・メモリ901へのアクセスであるかのようにハイ・
メモリのアクセスを実行する。
する欠点がある。この方法は8088又は8086マイ
クロプロセッサに基づくコンピュータでは機能しないの
で、初期のPCやその互換機では使用できない。また、
この方法によってもたらされるメモリの量は64Kに限
られる。さらに、アプリケーション・ソフトウェアはH
MAをアロケートし、アクセスするよう特別に作成しな
ければならず、セグメント計算やHMAへの直接のディ
スク読み書きを含むHMAアクセスに関する制約に違反
してはならない。また、この方法は広く知られており、
この方法を使用してより多くのメモリを取得するソフト
ウェアが作成されているので、この方法によってもたら
されるメモリはおそらくほとんどのコンピュータ・シス
テムで他の用途に使用することができない。
に分割し、データをアクセスする時にその望みのデータ
を含むページがアクセス可能なメモリに確実に含まれる
ようにする。この方法には2つのバリエーションがあ
る。第1のバリエーションはエクスパンデッド・メモリ
仕様(Expanded Memory Specif
icatin:EMS)と呼ばれる。EMSを第12図
に示す。EMSはエクステンデッド・メモリから予約メ
モリ領域1202内のページ・フレーム1203にバン
ク切換してどの時点でも1M未満のメモリ空間に1つ又
は少数のページしか存在しないのに大量のエクステンデ
ッド・メモリを使用できるようにする。EMSと共に使
用する時にはエクステンデッド・メモリをエクスパンデ
ッド・メモリ1204と呼ぶ。第2のバリエーションは
仮想メモリと呼ばれる。仮想メモリを第10図に示す。
仮想メモリを用いるシステムの可能なメモリ・マップの
1つを第11図に示す。仮想メモリを使用すると物理メ
モリ1002に格納できない情報をハード・ディスク・
ドライブなどのI/Oデバイスに記憶できるようにな
る。データはべ一ジに分割されCPU1001が必要と
する時だけにディスク・ドライブから物理メモリにロー
ドされる。したがって、大量のデータ・ページをハード
・ディスクに記憶できるとともに物理メモリ1002に
わずかのページを保持するだけでよい。
ド・メモリ1204をページに分割しなければならな
い。また、予約メモリ内の1領域をページ・フレーム1
203として使用するためにアロケートしなければなら
ない。ページの内容とエクスパンデッド・メモリ内での
ロケーションを含むページのディレクトリを維持しなけ
ればならない。一旦EMSが初期設定され動作状態にな
ったならば、EMSをサポートするソフトウェアは望み
のEMSデータがEMSページ・フレーム1203に含
まれるようにするためにメモリ・アクセスを監視しなけ
ればならない。望みのEMSデータがアクセスの時点で
EMSページ・フレーム1203に含まれない場合、E
MSをサポートするソフトウェアは望みのデータのため
の余地を作るためにページ・フレーム1203のうちの
どのページをページ・フレームからバンク切り替えして
追い出すかを決定しなければならない。その後、このソ
フトウェアはエクスパンデッド・メモリ1204から適
当なページを見つけなければならない。その後、この適
当なページをページ・フレーム1203のうちの使用可
能なページにロードしなければならない。その後、ペー
ジ・フレーム1203内の適当なアドレスへメモリ・ア
クセスをリダイレクトして望みのデータを読み書きでき
るようにしなければならない。
ハード・ディスク上にアロケートされた仮想メモリ10
03をページに分割しなければならない。ページの内容
とメモリ内のロケーションを含むページのディレクトリ
を維持しなければならない。一旦仮想メモリ・システム
が初期設定され動作状態になったならば、仮想メモリ・
システムは望みのデータが物理メモリ1002に含まれ
るようにするためにメモリ・アクセスを監視しなければ
ならない。望みの仮想メモリ・データがアクセスの時点
で物理メモリ1002に含まれない場合、仮想メモリ・
システムは将来アクセスされる可能性が最も低いメモリ
のページを判定しなければならず、それらをハード・デ
ィスクに書き戻さなければならない。その後、仮想メモ
リ・システムはハード・ディスクの仮想メモリ1003
から適当なページを見つけなければならない。その後、
適当なページを物理メモリ1002の選択されたページ
にロードしなければならない。その後、新たにロードさ
れたページ内の適当なアドレスにメモリ・アクセスをリ
ダイレクトして望みのデータを読み書きできるようにし
なければならない。
があるが、仮想メモリ・システムは一般にEMSよりは
るかに自動的にアプリケーション・ソフトウエアに対し
て透明に動作する。アプリケーション・ソフトウェア
は、仮想メモリ・システムの場合、その存在すら意識せ
ずにコンピュータ・システム上でアクティブになる場合
があるが、EMSの場合、アプリケーション・ソフトウ
ェアはEMSの存在を認識するだけではなく特別にEM
SをサポートしEMSの動作を指令しなければならな
い。
り大量のメモリのアクセスを可能にする能力を持ってい
るが欠点もある。この方法を用いるとメモリ管理にCP
Uタイムを割かなければならないのでメモリ・アクセス
・タイムが増加する。記録を継続的に更新してページ・
フレーム1203とエクスパンデッド・メモリ1204
の両方でのページの位置とその内容を示さなければなら
ない。これらの動作はCPUが他のタスクに当てること
のできるはずのタイムを奪い、したがって、性能を低下
させる。
最適化を使用する。この方法は一般的に適用することが
できず、ROMのそれぞれの改訂版ごとに人間が実行し
なければならない。この方法の目的はROMの占有する
メモリ空間の量を減らし、その結果ROMにアロケート
されているが未使用のメモリ空間を他の目的のために再
アロケートできるようにすることである。非効率的なコ
ードとROMのうちで絶対にアクセスされない部分とを
発見し除去することによって、ROMが占有するメモリ
空間を減らす。
の形で適用しなければならないのでこの方法の詳細を一
般的に説明することはできない。この方法を使用するた
めには既存のROMのコードとデータを注意深く検査
し、変更又は削除しなければならない領域を突き止めな
ければならない。その後、これらの変更を行った後にR
OMのコードとデータを再アセンブルしなければならな
い。その後、小さくなった新しいROMコードを元のR
OMの部分の上にマッピングしなければならない。ま
た、この方法によって使用可能にされたメモリ空間を他
の目的に使用できるようにするための用意も必要であ
る。
きないことである。この方法に基づく製品は新しいRO
M改訂版が発表された途端に旧式になる。また、ROM
のそれぞれの各改訂版の圧縮と最適化を実行するにはか
なりの時間と労力と技能が必要である。
に常駐することになるTSRの初期設定のために予約メ
モリ領域内に追加のメモリを一時的に供給する。予約メ
モリ領域にマッピングされているメモリ内にTSRを置
くことによって、そうでなければそれらのTSRが使用
するはずのコンベンショナル・メモリ空間をアプリケー
ション・プログラムが使用できる。しかしながら、TS
Rは典型的に初期設定されるときに単に常駐している時
よりも多くのメモリを必要とする。時にはEMSをイン
ストールしそのページ・フレームが予約メモリ領域内の
メモリ空間を占有する時などにある、TSRを初期設定
するのに十分な使用可能予約メモリ空間がない場合があ
る。従来技術のこの方法はEMSページ・フレームのた
めにアロケートされた予約メモリ空間からスペースを借
りることによってこの問題を克服する。TSRがその初
期設定を完了し、そのスペースがもはや不要になった後
にそのスペースがEMSに返される。
ず、この方法はTSRにしか適用できない。TSRのな
いシステムやごく小数のTSRしかないシステムがあ
り、これらのシステムではこの方法からはほとんど利益
を得られない。また、この方法から得られる利益の量は
TSRによって変化する。あるTSRが初期設定のため
に追加のメモリを必要としない場合、この方法からはほ
とんど利益を得られない。
コマンドを使用してリアル・モード・プログラムを80
286マイクロプロセッサのプロテクト・モードで走ら
せる。その目的は80286マイクロプロセッサにリア
ル・モードでの固有のメモリ・マッピング能力がないと
いう事実にもかかわらずEMSをエミュレートすること
である。リアル・モード・プログラムがセグメント・レ
ジスタをロードしようとする時に一般保護例外が発生す
る。この方法は一般保護例外ハンドラを使用してセグメ
ント・レジスタをセレクタに変換し、予期されないプロ
セッサ・モードをプログラムに対して透明にする。これ
らの能力を80286マイクロプロセッサで実現するた
めにこの方法はLOADALL命令に頼る。
クロプロセッサの非公開・非サポートの機能である。こ
れは8088、8086、80386又は80486マ
イクロプロセッサではサポートされない。これは明らか
にマイクロプロセッサの製造と試験を助けるものとして
80286マイクロプロセッサだけに実施されたコマン
ドである。したがって、LOADALL命令は将来に製
造される80286マイクロプロセッサでサポートされ
るという保証すらない。LOADALL命令はシステム
・ソフトウェア又はアプリケーション・ソフトウェアで
の使用を目的としたものではない。
以下の処理を実行しなければならない。第1に、割り込
みを禁止しなければならない。第2に、ロケーション0
0800Hから始まる102バイトをセーブしなければ
ならない。第3に、全レジスタをセーブしなければなら
ない。次に、アクセスしようとする外部メモリの領域を
指定するディスクリプタ・キャッシュ・ベース・アドレ
スを含む望みのレジスタ値をロケーション00800H
から始まる102バイトのメモリにロードしなければな
らない。この後に、LOADALLオペコード(0FH
05H)を実行しなければならない。次に、エクステン
デッド・メモリの読み取り又は書き込みを実行するが、
この時にはアドレス・オフセットだけを使用しセグメン
ト・ベース・アドレスを変更してはならない。この後
に、記憶しておいた全レジスタの値を取り出し、ロケー
ション00800Hから始まる102バイトのメモリに
ロードしなければならない。次に、LOADALLオペ
コード(0FH05H)を実行してレジスタとディスク
リプタ・キャッシュの以前の内容を復元しなければなら
ない。その後、00800Hから始まるメモリの102
バイトの内容を取り出し、復元しなければならない。最
後に、割り込みを許可し直さなければならない。
る。まず、LOADALL命令は80286べースのコ
ンピュータ・システムでなければ機能せず8088、8
086、80386又は80486ベースのコンピュー
タ・システムでは機能しない。LOADALL命令は非
公開で非サポートであるからLOADALL命令が将来
に製造される80286マイクロプロセッサで機能する
という保証はない。一般に非公開又は非サポートのハー
ドウェア機能に頼るのは受け入れられない行動である。
さらに、LOADALL命令は絶対メモリ・アドレス0
0800Hにあるデータの操作を必要とする。LOAD
ALL命令を実行する前にこの領域のメモリに含まれる
データを保存するために何らかの手だてを講じない限り
システム・ソフトウェアがダメージを受ける可能性があ
る。また、この方法によればすべてのタイプのシステム
動作の間に一般保護例外が発生する。この例外をサービ
スする必要があるがこれにはCPUタイムというコスト
がかかり、したがって、ほとんどのタイムでシステム性
能がかなり低下する。
ンピュータで使用する16K−RAMカードに関連する
ものである。アップルIIコンピュータは6502マイク
ロプロセッサをベースとする。6502マイクロプロセ
ッサのアドレス・バスは16ビットであり64Kのアド
レス空間をサポートする。しかし、アップルIIが市場に
導入された時点ではRAMデバイスのコストが高かった
ので下位48Kのアドレス空間だけがRAMを用いて使
用するようになっていた。この48KのRAMの上位
に、I/Oメモリに当てられた4Kの領域があった。残
りの12Kはアドレス空間の最上位領域にありROMを
用いて使用するようになっていた。
大量のRAMを必要とするようになるのにつれてその4
8Kの限界を越えてRAMを拡張する方法が必要になっ
た。RAMの量を増やすために16K−RAMカードが
導入された。16K−RAMカードには16KのRAM
が搭載され、このRAMは64Kアドレス空間の上位1
6Kにマッピングでき、4KのI/Oメモリと12Kの
ROMと入れ替えることができた。追加の16KのRA
Mを使用できるようにするためには、まず、I/Oメモ
リとROMをアドレス空間の上位16Kから取り除かな
ければならなかった。これはメモリ・デバイスに関連す
るアドレス復号ロジックを変更することによって達成で
きた。その後、16KのRAMのアドレス復号ロジック
をイネーブルすることによってそのRAMを16Kのア
ドレス空間にマッピングできた。
64Kのアドレス空間が64KのRAMで満たされた。
その時点では4KのI/Oメモリも12KのROMもア
クセスできなかった。I/OメモリとROMが使用でき
ないのでアプリケーション・ソフトウェアは16K−R
AMカードがイネーブルされている間にコンピュータ・
システムの完全な制御を維持しなければならず、制御を
解放する前にI/OメモリとROMを確実にイネーブル
し直さなければならなかった。また、アプリケーション
・ソフトウェアは16K−RAMカードがイネーブルさ
れている間にI/OデバイスやROMルーチンをアクセ
スすることができなかった。16K−RAMカードがイ
ネーブルされている間にアプリケーション・ソフトウェ
アが制御を解放するかI/Oデバイス又はROMルーチ
ンをアクセスしようとしたならば、システムがクラッシ
ュした。というのはその時点で望みのI/Oデバイスも
システムROMもそのコンピュータ・システムのアドレ
ス空間に存在しなかったからである。この方法はアプリ
ケーション・ソフトウェアによるこのような注意深い制
御と監視を必要としたので確かにアプリケーション・ソ
フトウェアの動作に対して透明ではなかった。16K−
RAMカードの存在を特に認識しその特徴を注意深く使
用するようにアプリケーション・ソフトウェアを作成し
なければならなかった。
に透明な形でROMアドレス空間を再利用するための方
法を提供することによって、この従来技術の方法の制限
を克服する。本発明を特にサポートするようにアプリケ
ーション・ソフトウェアを記述する必要はなく、本発明
の存在や動作を意識する必要もない。したがって、本発
明は従来技術の方法よりはるかに役に立ち、用途の広
い、ROMアドレス空間再利用方法を提供する。
Kバイトと1メガバイトの間の予約メモリ領域に再割り
振りすることによってRAMをサポートするために使用
できる追加のメモリ・アドレス空間を提供する。この場
合、元のメモリ・アドレスをRAMに格納されているア
プリケーション、TSRなどをアドレスするために使用
できる。
のマイクロプロセッサ(80286、80386及び8
0486マイクロプロセッサを含むがこれらに限定され
るものではない)をベースとし、MS−DOSないしP
C−DOSオペレーティング・システムの下で作動する
コンピュータ・システムに適用されたものとして本発明
を説明する。しかしながら、本発明の用途はこのような
コンピュータ・システムに限定されるものではない。本
発明は特定のビデオ・ディスプレイ・アダプタの構成を
必要とするものではなく、すべてのビデオ・ディスプレ
イ・アダプタで作動する。さらに、本発明は特定のRO
Mの特定の改訂版に限定されるものではなく一般的にほ
とんどのROMに適用できるものである。さらに、本発
明は特定のアプリケーション・ソフトウェアとともに使
用することに限定されるものではなくほとんどのアプリ
ケーション・ソフトウェアに透過的に使用できる。ま
た、本発明は全体的なシステム・パフォーマンスの相当
程度の低下を回避する。このようにして、本発明はコン
ピュータ・システムで利用可能なメモリの量を増加させ
る従来技術の方法を大幅に改善するものである。
タに適用したものを第13図に示す。システムROM1
301及びビデオROM1302の位置はエクステンデ
ッド・メモリ1303に移動されており、これらが占め
ていたスペースは割り振り解放(dea11ocate
d)されている。したがって、未使用予約メモリ130
4の量は増加し未使用予約メモリ1305となってい
る。本発明によればROM1306及びビデオROM1
307にプロテクト・モードであるいは予約メモリへマ
ップすることによってアクセス可能である。本発明はコ
ンピュータ・システムで使用されているマイクロプロセ
ッサのセグメント化アドレス指定「リアル」モード及び
「プロテクト」モードを利用する。セグメント化アドレ
ス指定ならびにリアル・モード及びプロテクト・モード
については後で詳述する。
す。セグメント化アドレス指定において、アドレスは2
つの部分で指定される。最初の部分はセグメント801
と呼ばれ、16ビットの2進値である。第2の部分はオ
フセット302と呼ばれ、これも16ビットの2進値で
ある。アクセスする物理メモリ306内で指定されたア
ドレスを決定するためにマイクロプロセッサはまずセグ
メント・レジスタの内容に10Hを乗算する(303)
がこれはセグメントの内容を左へ4ビットシフトするこ
とと等価である。次いで、この値をオフセット・レジス
タの内容に加算する(304)。セグメント・レジスタ
をシフトしてからオフセット・レジスタに加算すること
により、幅20ビットのアドレスが生成される。20ビ
ットのアドレス・バスを通じてCPUにアクセス可能な
メモリの量は220であり、これは1024Kバイトす
なわち1Mバイトに等しい。このアドレス指定方法は8
0286、80386及び80486が「リアル」モー
ドで作動している場合にこれらによっても使用される。
イクロプロセッサは「リアル」モードでも「プロテク
ト」モードでも作動可能である。プロテクト・モードに
はリアル・モードにはない各種の利点がある。まず、8
0286ではプロテクト・モードで16Mバイトにアク
セスすることができ、これはリアル・モードでアクセス
可能なメモリの量の16倍である。80386及び80
486ではプロテクト・モードはアドレス指定限度をさ
らに増加させる。プロテクト・モードにおいて8038
6及び80486は4096Mバイトすなわち4Gバイ
トをアドレスすることができこれは約40億メモリ・ワ
ードにあたる。本発明は「プロテクト・モード」の実施
例と坪ばれるもの、あるいは「マッピング」の実施例と
呼ばれるものにおいて実現可能である。
す。16ビットのセグメント・レジスタの代わりに、プ
ロテクト・モードは16ビットのセレクタ401を使用
する。セレクタはディスクリプタ・テーブル404の項
目403をポイントする。ディスクリプタ・テーブルは
ベース・アドレスを指定するディスクリプタを含んでい
る。80286のディスクリプタは24ビットのベース
・アドレスを備えており、80386及び80486の
ディスクリプタは32ビットのベース・アドレスを備え
ている。これらのベース・アドレスは8088/808
6のセグメントと同じ機能を果たすがより用途が広いも
のである。アクセスするメモリ406内で指定されたア
ドレス405を決定するために8088/8086で使
用しているものと同様なオフセット402をディスクリ
プタ・テーブル404からベース・アドレスに追加す
る。
(V86)」モードという付加的な機能を有している。
仮想モードにおいてマイクロプロセッサが計算したアド
レスはアドレス・バスにおかれる実際のアドレスではな
いことがある。80886又は80486が仮想モード
でアドレスを計算する場合、32ビットの線形アドレス
のみを計算する。線形アドレスは次いで、マイクロプロ
セッサのページング機構に渡され、該機構は付加的な計
算を行って物理メモリにおける最終アドレスを決定す
る。ページング機構によって実際の物理メモリのものと
異なる構成でメモリをマップすることが可能となる。物
理メモリをページに分割することによって仮想モードは
物理メモリの各4Kバイトのブロックがそれ自体の仮想
アドレスを有することを可能とする。以下の説明におい
て「リアル・モード」という語は「仮想モード」と言い
換えることができる。好ましい実施例において本発明は
仮想モードを利用する。
って本来システム504及びビデオROM505に割り
振られている予約メモリ領域503のメモリ空間の再割
り振り(rea11ocatin)が可能となる。プロ
テクト・モードでROMからの読み込みを行うことによ
って本発明はROMのアドレス空間をリアル・モードに
おいて他の目的に使用することを可能とする。
ドレス空間を再割り振りして、他の目的に利用できるよ
うにし、ROMのアクセスをインターセプトして、これ
らのアクセスが再割り振りされたROMのアドレス空間
に送られるようにし、かつROMのアクセスを処理し
て、ROMのアクセスが完了し、システムがROMのア
クセス後に実行を継続できるようにすることによって、
本発明は実施される。
を第14図の流れ図に関して説明する。初期化ルーチン
はステップ1401から始まる。ステップ1401にお
いて移動対象のROMは第5図の予約メモリ領域508
の元のアドレス空間におかれている。ステップ1403
においてROMのコードにアクセスする割り込みハンド
ラが確認される。
・テーブル・アドレス及び長さが確認される。ステップ
1405において再割り振りされたROMが使用する適
切な割り振りされていない(unallocated)
プロテクト・モード・アドレス空間が確認される。この
アドレス空間は連続していなければならず、またROM
のアドレス指定を完全にサポートするのに適切なサイズ
のものでなければならない。このアドレス空間は再割り
振りされたROMが実行されるところである。
ッド・メモリ内の確認されたアドレス空間がROMに割
り振られるので、他の目的のためのアドレス空間を使用
することによる衝突が防止される。ROMは割り振られ
たメモリ・アドレス空間にマップされる。
ローバル及びローカル・ディスクリプタ・テーブル(G
DT/LDT)がROMがマップされている新しいアド
レス空間に対して事前に割り振りされる。
ル・メモリがROMデータ・テーブルのコピーを保持す
るために割り振られる。ステップ1409においてRO
Mデータ・テーブルがコンベンショナル・メモリにコピ
ーされる。ステップ1410においてコンベンショナル
・メモリ内のアドレス空間が割り込みハンドラ・ルーチ
ンに割り振られる。ステップ1411において割り込み
ハンドラ・ルーチンが割り振られたアドレス空間にイン
ストールされる。ステップ1412に拾いてROMデー
タ・テーブルに対するポインタがコンベンショナル・メ
モリ内のコピーにリダイレクトされる。
OMのアドレスはエクステンデッド・メモリによってオ
ーバーレイされる。ステップ1414において制御がオ
ペレーティング・システムに戻される。
べて見つからなかった場合あるいはこれらがすべて見つ
からないようなことを回避したい場合には上記の手順の
変形を行う。その位置に関して公表されている情報を照
会するかあるいはROMの内容の分析によるかのいずれ
かによってROMデータ・テーブルの位置を捜し出して
から、元のROMアドレス空間のこれらが占める部分を
これらに予約されているものとすることができる。次い
で、プロテクト・モードの機能を使用してROMデータ
・テーブルを元のROMアドレス空間内の元の位置に復
元することができる。ROMデータ・テーブルは元のR
OMアドレス空間の元の位置にマップされる。マイクロ
プロセッサはプロテクト・モードのリング・ゼロにおか
れている。グローバル及びローカル両方のディスクリプ
タ・テーブル(GDT/LDT)はROMデータ・テー
ブルが占める元のROMアドレス空間の部分に設定され
る。プロセッサはプロテクト・モードを終了し、リアル
・モードヘ戻るようになされる。ROMデータ・テーブ
ルが占める部分以外の元のROMアドレス空間は割り振
り解放され、他のリアル・モードでの目的に使用できる
ようになる。割り振りされていない適切なエクステンデ
ッドRAMを見つけだし、元のROMアドレス空間を割
り振り解放済みの予約メモリ503に収める必要があ
る。このRAMは次いで予約メモリ内の元のROMアド
レス空間に割り振られ、マップされる。
ロテクト・モードの実施例で使用するためにコンピュー
タ・システムを初期化した後、予約メモリ503内の元
のROMアドレス空間にマップされているRAMをTS
R,デバイス・ドライバ又はネットワーク・インタフェ
ース・プログラムの再配置を含む各種の目的に使用する
ことができる。ROMの呼出しを合めコンピュータ・シ
ステムの作動のすべてのフェーズの間新しいRAMは元
のROMアドレス空間にマップされたままとなる。
の元のROMアドレス空間の再割り振りが可能となって
からROMアクセス・インタセプタが使用される。シス
テムの何らかのソフトウェアがROMへのアクセスを試
みた場合、ROMアクセス・インタセプタが試みられた
アクセスをインターセプトし、ROMアクセス・ハンド
ラを活性化してROMのコード又はデータにアクセスで
きるようにしなければならない。ほとんどのROMのル
ーチンがソフトウェア割り込みによってアクセスされる
ものであるから、ROMのアクセスをインターセプトす
るもっとも簡単な方法は上述のように割り込みテーブル
を変更することである。アプリケーション・ソフトウェ
アの中には割り込みを使用せずに直接ROMへのアクセ
スを試みるものがあるため、ROMのアドレスに対する
照会についてアプリケーション・ソフトウェアを調べ、
これらの照会をリダイレクトして、アプリケーション・
ソフトウェアがエクステンデッド・メモリ内の新しいR
OMイメージにアクセスするようにすることが望まし
い。
位置に保持しておくという上述の代替手順を使用した場
合にはROMデータ・テーブルにアクセスしようとする
ROMアクセスを行うことができ、インターセプト及び
リダイレクトは行われない。
ッド・メモリ内の新しいROMイメージにアクセスし、
ROMの実行を収納し、ROMアクセスの完了後にアプ
リケーション・ソフトウェアの実行を継続できる状態に
コンピュータ・システムを復元する方法を提供する。
れ図を第15図に示す。プロセスはステップ1501か
ら始まる。ステップ1502においてアクセスされる特
定の割り込みサービス・ルーチンに対するROMアクセ
ス・ハンドラはCPUをリング・ゼロというプロテクト
・レベルでプロテクト・モードにする。オプションのス
テップ1503において割り込みのサービスはROMへ
行かずに行われ、制御が呼出しプログラムに戻される。
オプションのステップを実行しない場合、プロセスは次
のようになる。
いプロテクト・モード・セレクタを反映するように入力
リアル・モード・セグメント・レジスタが調節される。
ステップ1505において、ROMが戻るアドレスがプ
ロテクト・モード・スタックに設定される。ステップ1
506においてリング・スリー・プロテクト・モードの
CS:IPを変更し、再配置されたROM入口点をポイ
ントするようにする。ステップ1507において該当す
るIOPLを設定する。ステップ1508において再配
置されたROM入口点でリング・スリー・プロテクト・
モードに移行する。
能とされ、障害があればそれを処理する。ステップ15
10においてROMは制御をステップ1505で設定さ
れたアドレスに戻す。ステップ1511において再度プ
ロテクト・モードヘ移行し、ルーチンを終了する。ステ
ップ1512においてリアル・モードのCS:IPを変
更し、呼出しプログラムの戻りアドレスをポイントする
ようにする。必要に応じステップ1513において戻り
ポインタを変更し、リダイレクトされたROMデータを
ポイントするようにする。ステップ1514において呼
出しプログラムの戻りアドレスでリアル・モードに移行
する。
ていた予約メモリ503のアドレス空間を他の用途に再
割り振りすることを可能とする。しかしながら、本発明
のマッピングの実施例はプロテクト・モードを使用する
ことを必要とするものではなく、したがって、プロテク
ト・モードの作動をサポートしていない8088及び8
086マイクロプロセッサとの互換性を有し、プロテク
ト・モード動作をサポートしない。本発明のマッピング
の実施例は80386又は80486マイクロプロセッ
サのプロテクト・モードを必要としないがメモリ空間を
再マップする機能は必要である。80386及び804
86においてこの機能はV86仮想モードによって提供
される。8088、8086及び80286マイクロプ
ロセッサにおいてこの機能はエクスパンデッド・メモリ
仕様(EMS)ボード又はその他のメモリ管理ハードウ
ェアのいずれかによって提供される。
施例を示す流れ図を第16図に示す。プロセスはステッ
プ1601から始まる。ステップ1602においてアド
レス空間が再割り振りされるROMを捜し出す。ステッ
プ1603においてROMコードにアクセスする割り込
みハンドラが確認される。ステップ1604においてR
OMデータ・テーブルのアドレス及び長さが確認され
る。ステップ1605においてROMが実行されるEM
Sのページ・フレームのリアル・モード・アドレス空間
が割り振られる。オプションのステップ1606におい
てROMのアドレスをオーバーレイするために使用する
エクステンデッド・メモリが割り振られる。ROMのデ
ータ・テーブルはステップ1607においてコンベンシ
ョナル・メモリにコピーされる。ステップ1608にお
いて割り込みハンドラのインターセプトが配置される。
ステップ1609においてROMデータに対するポイン
タがコンベンショナル・メモリ内のデータのコピーをポ
イントするようにリダイレクトされる。オプションでス
テップ1610においてROMアドレスがエクステンデ
ッド・メモリによってオーバーレイされる。制御はステ
ップ1611においてオペレーティング・システムに戻
される。
べて見つからなかった場合、あるいはこれらがすべて見
つからないようなことを回避したい場合には上記の手順
の変形を行う。その位置に関して公表されている情報を
照会するか、あるいはROMの内容の分析によるかのい
ずれかによってROMデータ・テーブルの位置を捜し出
してから、元のROMアドレス空間のこれらが占める部
分をこれらに予約されているものとすることができる。
ROMデータ・テーブルは元のROMアドレス空間の元
の位置にマップされる。ROMデータ・テーブルが占め
るスペース以外の予約メモリ内の元のROMアドレス空
間は割り振り解放され、他のリアルモードでの目的に使
用できるようになる。割り振りされていない適切なエク
ステンデッドRAMを見つけだし、元のROMアドレス
空間を割り振り解放済みの予約メモリ503に収める必
要がある。このRAMを次いで割り振らなければならな
い・このRAMを予約メモリ503内の割り込み解除さ
れたROMナドレス空間にマップしなければならない。
と、コンピュータを正常に使用することができ、また当
初ROMが占めていたメモリ空間をTSR、デバイス・
ドライバ及びネットワーク・インターフェース・プログ
ラムの再配置を含む他の用途に割り振ることができる。
マッピングの実施例のROMアクセス・インタセプタは
ROMを照会するすべての命令をインターセプトし実行
が混乱するのを防止しなければならない。ほとんどのア
プリケーション・ソフトウエアがソフトウェア割り込み
によってROMコードにアクセスしているため割り込み
テーブルを修正することによって、.ROMコードに対
する呼出しをインターセプトし、リダイレクトすること
が可能である。ROMデータ・テーブルに対する照会を
リダイレクトすることが望ましいので、ソフトウェアを
調べ、ROMデータ・テーブルに対するアクセスの試み
を捜し出さなければならず、またROMデータ・テーブ
ル・ポインタに対する変更を行って、アクセスが適切に
リダイレクトされるようにしなければならない。ROM
データ・テーブルを元の位置に保持しておくという上述
の代替手順を使用した場合にはROMデータ・テーブル
にアクセスしようとするROMアクセスを行うことがで
き、インターセプト及びリダイレクトは行われない。R
OMアクセス・インタセプタはROMアクセスの試みを
インターセプトした場合には実行をROMアクセス・ハ
ンドラに渡す。
ピングの実施例を第17図の流れ図に示す。流れ図はス
テップ1701から操作を開始する。ステップ1702
においてアクセスされる特定の割り込みサービス・ルー
チンのためのハンドラに対するプロテクト・モードヘの
移行が行われる。オプションのステップ1703におい
てROMへ進むことなくサービスが行われ、システムは
次いで呼出しプログラムに戻る。オプションのステップ
1703を行わない場合にはプロセスは次のように継続
する。ステップ1704においてページ・フレームの現
行のマッピングが呼出しプログラムのリアル・モード・
スタックにオプションでセーブされる。ステップ170
5においてROMが戻るアドレスがリアル・モード・ス
タックに設定される。ステップ1706においてリアル
・モードCS:IPを変更し、再配置されたROM入口
点をポイントする。ステップ1707においてROMが
ページ・フレームにマップされる。ステップ1708に
おいて再配置されたROM入口点におけるリアル・モー
ドヘの移行が行われる。ROMはステップ1709にお
いて実行可能となる。
1705で設定されたアドレスに戻される。システムは
プロテクト・モードヘ再移行し、ステップ1711でル
ーチンを終了する。ステップ1712においてリアル・
モードCS:IPを変更し、呼出しプログラムの戻りア
ドレスをポイントする。必要に応じステップ1713に
おいて戻りポインタを修正し、リダイレクトされたRO
Mデータをポイントするようにする。ページ・フレーム
の元のマッピングはステップ1714において呼出しプ
ログラムのリアル・モード・スタックに格納されている
データからオプションで復元される。ステップ1715
においてシステムは呼出しプログラムの戻りアドレスで
リアル・モードに再移行する。CPUのプロテクト・モ
ードを使用した本発明の実施形態は多数の利点をもたら
すものであるが、ROMは通常プロテクト・モードでは
なくリアル・モード(又はV86モード)で作動してい
る。ROMにはリアル・モードでアクセスするものとし
ているシステム・ソフトウェア及びアプリケーション・
ソフトウェアとの互換性を維持するため、プロテクト・
モードでアクセスされるROMに対してリアル・モード
の作動をシミュレートするステップを行わなければなら
ない。
ング時の試みをトラップする方法を含むように実施する
ことができる。CPUがプロテクト・モードであるとき
にセグメント・レジスタをロードしようとする試みをC
PUによって検出し、一般保護例外ハンドラ(gene
ra1 protection exceptionh
andler)に対する呼出しを自動的に行う。一般保
護例外ハンドラはプロテクト・モードの規則に違反する
命令の位置を戻す。これが発生するのを補うために一般
保護例外ハンドラが指定した位置にある命令を調ベデコ
ードする。デコーディンクはすべての命令のオペコード
(opcode)を含んでいるルックアップ・テーブル
にある命令のオペコードを調べることによって行われ
る。命令の分析によりリアル・モードにおいて命令が意
図している効果を判断することができ、かつ意図してい
る効果をプロテクト・モードでエミュレートすることが
できる。意図している効果がもたらされるので障害をも
たらしたコードを適切に動作させることができ、実行が
そのコードに渡されそのコードを完了することが可能と
なる。
め、I/O命令をトラップしI/O特権レベル(I/O
Privelege Leve1)IOPLの特権レ
ベルを高くできるので(低い特権レベル番号で表され
る)IOPLセンシティブI/O命令を実行しようとい
う試みは一般保護例外障害をもたらす。発生した障害を
処理し、これが本発明の動作と衝突しないようにするこ
とができる。いくつかのマイクロプロセッサの割り込み
フラグは注意をほとんど必要としない態様で作動する
が、I/O命令をトラップする場合などのようにI/O
特権が拒否された場合、割り込みフラグの動作が異なる
ものとなることがある。割り込みフラグに関連したある
種のマイクロプロセッサの命令はI/Oレベルに敏感で
ある(IOP−sensitive)。80286又は
80386マイクロプロセッサ・ベースのシステムにお
いて、I/O特権が拒否された場合に割り込み可能フラ
グ・クリア(clear interrupt ena
ble f1ag)CLI命令又は割り込み可能フラグ
設定(set interrupt enab1e f
lag)STI命令の実行を試みると一般保護例外障害
が生じる。
ウェアによる試みの監視、ならびに適切な割り込みフラ
グの挙動のエミュレーションの問題を解決する方法も含
んでいる。これらの問題はプロテクト・モードにおける
POPF及び割り込み戻り(imterrupt re
turn)IRET命令の不適切な動作によって生じ
る。POPF命令は最上位のワードをスタックから取り
出し、その内容をCPUのフラグ・レジスタに入れるも
のであると考えられる。IRET命令は上位8ワードを
スタックから取り出し、そのワードの内容をCPUフラ
グ・レジスタに入れる。しかしながら、プロテクト・モ
ードではPOPF命令もIRET命令も割り込みフラグ
を変更しないし、また一般保護例外も発生しない。それ
故、コンピュータがプロテクト・モードのときに割り込
みフラグのリアル・モードでの挙動をエミュレートする
ために一般保護例外ハンドラを使用すると完全なエミュ
レーションは行われず、適正な作動が行われなくなる。
たため、満足できるリアル・モードのエミュレーション
を提供できたものは誰もいない。「DOS Prote
cted Mode Interface Speci
fication,Version 1.0」には次の
ように記載されている。「...クライアントはIRE
T(D)又はPOPFを使用して、割り込みフラグを変
更できないが、これはこれらの命令が物理的割り込みフ
ラグにアクセスするものであり、クライアントの特権レ
ベルのためCPUによって無視されるからである。」
T命令に一般保護例外を発生させることである。本発明
は一般保護例外ハンドラのみに依存する代わりに、代替
方法を使用してPOPF命令又はIRET命令をトラッ
プすることによってプロテクト・モード時にリアル・モ
ードの挙動の適切なエミュレーションを提供する。PO
PF命令又はIRET命令が普通、プログラム内のコー
ドの予測可能なシーケンスの一部として使用されている
ので、本発明はこの規則性を利用してPOPF命令をト
ラップする。
用してフラグ・レジスタの内容をセーブし、CLI又は
STI命令を使用して割り込みをロックし、割り込みが
ロックされている間に各種のコードを実行し、その後、
POPF命令を使用してフラグ・レジスタの内容を復元
している。POPF命令をトラップするためにCLI又
はSTI命令の実行によってもたらされる一般保護例外
が生じる場合には、常にスタックの限界を現行のスタッ
ク・ポインタと等しく設定する。このようなスタックの
限界を設けた場合、POPF又はIRETを実行すると
スタックの限界を越え、これによって、一般保護例外が
発生する。
メモリ・アドレスを有するコンピュータ・システムに限
定されるものではない。たとえば、ROM用に予約され
たメモリ・アドレスが他の位置にあることがある。たと
えば、PS/2などのオペレーティングシステムの場
合、ROM用のメモリ・アドレスは0E000などの位
置に予約されている。本発明はマッピング方法にプロテ
クト・モードを利用しているが、これは必須ではない。
マッピング方法のためにプロテクト・モードとすること
を必要としない他のメモリ管理システムを使用すること
ができる。したがって、パフォーマンスを大幅に劣化さ
せることがなく、またCPU、ROM又はアプリケーシ
ョンのいずれにも特有のものではない態様で容易にアク
セスできるメモリをより多く利用可能にする方法が提供
される。
造を示すブロック図。
リ編成を示すメモリ・マップ。
ードで使用されるアドレッシング方法を示す図。
・モードで使用されるアドレッシング方法を示す図。
モリ編成を示すメモリ・マップ。
マップ。
マップ。
マップ。
マップ。
典型的なコンピュータ・システムの構造を示すブロック
図。
コンピュータ・システムの可能なメモリ編成を示すメモ
リ・マップ。
リ・マップ。
例とマッピング実施例を示すメモリ・マップ。
例の初期設定ルーチンを示す流れ図。
例の初期設定ハンドラを示す流れ図。
ピング実施例を示す流れ図。
ピング実施例を示す流れ図。
Claims (8)
- 【請求項1】 コンピュータ・システム内の割り込みフ
ラグ管理方法において:割り込みを処理するための命令
の実行をモード・エミュレータによって検出し;前記コ
ンピュータ・システムのスタックのスタック限界を前記
モード・エミュレータによって調節し;スタックに関連
した命令を前記コンピュータ内で実行して、前記スタッ
ク限界外の前記スタックにアクセスし;前記コンピュー
タ・システムにおいて、前記アクセスによって生じたス
タック限界違反を検出し;前記違反を検出した場合に、
割り込みフラグを修正する;ステップからなる前記方
法。 - 【請求項2】 前記命令が割り込み関連命令である特許
請求の範囲第1項記載の方法。 - 【請求項3】 前記スタックの限界をスタック・ポイン
タの現在の値に調節する特許請求の範囲第1項記載の方
法。 - 【請求項4】 前記割り込み関連命令が割り込みクリア
命令(CLI)である特許請求の範囲第2項記載の方
法。 - 【請求項5】 前記割り込み関連命令が割り込み設定命
令(STI)である特許請求の範囲第2項記載の方法。 - 【請求項6】 前記スタック関連命令が前記スタックか
ら複数個のスタック項目を取り出すポップ・フラグ(P
OPF)命令である特許請求の範囲第1項記載の方法。 - 【請求項7】 前記スタック関連命令が前記スタックか
ら複数個のスタック項目を取り出す割り込み戻し(IR
ET)命令である特許請求の範囲第1項記載の方法。 - 【請求項8】 前記スタック関連命令の実行及び前記ス
タックの限界の違反が一般保護例外をもたらす特許請求
の範囲第1項記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/730,244 US5237669A (en) | 1991-07-15 | 1991-07-15 | Memory management method |
US730,244 | 1991-07-15 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50293493A Division JP3268310B2 (ja) | 1991-07-15 | 1992-07-15 | メモリ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002024003A true JP2002024003A (ja) | 2002-01-25 |
JP3571667B2 JP3571667B2 (ja) | 2004-09-29 |
Family
ID=24934552
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50293493A Expired - Fee Related JP3268310B2 (ja) | 1991-07-15 | 1992-07-15 | メモリ管理方法 |
JP2001150838A Expired - Fee Related JP3571667B2 (ja) | 1991-07-15 | 2001-05-21 | 割り込みフラグ管理方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP50293493A Expired - Fee Related JP3268310B2 (ja) | 1991-07-15 | 1992-07-15 | メモリ管理方法 |
Country Status (12)
Country | Link |
---|---|
US (2) | US5237669A (ja) |
EP (1) | EP0595880B1 (ja) |
JP (2) | JP3268310B2 (ja) |
KR (1) | KR0132696B1 (ja) |
AT (1) | ATE174137T1 (ja) |
AU (1) | AU2339592A (ja) |
BR (1) | BR9206286A (ja) |
CA (1) | CA2113565C (ja) |
DE (1) | DE69227774T2 (ja) |
FI (1) | FI940168A (ja) |
NO (1) | NO940148L (ja) |
WO (1) | WO1993002417A1 (ja) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202994A (en) * | 1990-01-31 | 1993-04-13 | Hewlett-Packard Company | System and method for shadowing and re-mapping reserved memory in a microcomputer |
US5640507A (en) * | 1992-03-02 | 1997-06-17 | Microsoft Corporation | Method and apparatus for identifying read only memory |
US5404438A (en) * | 1992-03-03 | 1995-04-04 | Compaq Computer Corporation | Method and apparatus for operating text mode software in a graphics mode environment |
EP0559220A2 (en) * | 1992-03-06 | 1993-09-08 | Microsoft Corporation | Method and apparatus for storing DOS in high memory area |
US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
US5455919A (en) * | 1992-11-03 | 1995-10-03 | International Business Machines Corporation | Installation and use of plural expanded memory managers |
US5371867A (en) * | 1992-11-10 | 1994-12-06 | International Business Machines Corporation | Method of using small addresses to access any guest zone in a large memory |
JPH0773046A (ja) * | 1992-12-07 | 1995-03-17 | Intel Corp | コンピュータシステムで回路をエミュレートする 方法及び装置 |
US5835926A (en) * | 1992-12-15 | 1998-11-10 | Siemens Business Communication Systems, Inc. | Multiple memory addressing using adjustable chip select |
JPH08507630A (ja) * | 1993-03-09 | 1996-08-13 | ノベル,インコーポレイテッド | メモリ管理装置およびメモリ管理方法 |
US6147696A (en) * | 1993-06-24 | 2000-11-14 | Nintendo Co. Ltd. | Electronic entertainment and communication system |
US6762733B2 (en) * | 1993-06-24 | 2004-07-13 | Nintendo Co. Ltd. | Electronic entertainment and communication system |
US5581270A (en) * | 1993-06-24 | 1996-12-03 | Nintendo Of America, Inc. | Hotel-based video game and communication system |
US5959596A (en) * | 1993-06-24 | 1999-09-28 | Nintendo Co., Ltd. | Airline-based video game and communications system |
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US6684261B1 (en) * | 1993-07-19 | 2004-01-27 | Object Technology Licensing Corporation | Object-oriented operating system |
US5473777A (en) * | 1993-07-19 | 1995-12-05 | Moeller; Christopher P. | Wrapper for enabling an object otented application to maintain virtual memory using procedural function calls |
US5537597A (en) * | 1993-09-27 | 1996-07-16 | Intel Corporation | Method and apparatus for supporting real mode card services clients with a protected mode card services implementation |
US5526503A (en) * | 1993-10-06 | 1996-06-11 | Ast Research, Inc. | Virtual addressing buffer circuit |
US5517651A (en) * | 1993-12-29 | 1996-05-14 | Intel Corporation | Method and apparatus for loading a segment register in a microprocessor capable of operating in multiple modes |
US5577221A (en) * | 1994-04-14 | 1996-11-19 | Industrial Technology Research Institute | Method and device for expanding ROM capacity |
JPH07302254A (ja) * | 1994-05-06 | 1995-11-14 | Mitsubishi Electric Corp | マイクロコンピュータシステム |
US5664139A (en) * | 1994-05-16 | 1997-09-02 | Compaq Computer Corporation | Method and a computer system for allocating and mapping frame buffers into expanded memory |
US5699542A (en) * | 1994-09-30 | 1997-12-16 | Intel Corporation | Address space manipulation in a processor |
AUPN105495A0 (en) * | 1995-02-10 | 1995-03-09 | Aristocrat Leisure Industries Pty Ltd | Dram emulator |
WO1996038784A1 (en) * | 1995-06-02 | 1996-12-05 | Systemsoft Corporation | Digital data processing method and apparatus for peripheral device control |
US5829012A (en) * | 1996-04-19 | 1998-10-27 | Unisys Corporation | System for programmably providing modified read signals within a ROM-based memory |
US6081664A (en) * | 1996-09-30 | 2000-06-27 | Intel Corporation | Method for monitoring a BIOS |
US5940850A (en) * | 1996-10-31 | 1999-08-17 | International Business Machines Corporation | System and method for selectively enabling load-on-write of dynamic ROM data to RAM |
US5983310A (en) | 1997-02-13 | 1999-11-09 | Novell, Inc. | Pin management of accelerator for interpretive environments |
JP3011120B2 (ja) * | 1997-02-13 | 2000-02-21 | 日本電気株式会社 | レイアウト情報生成装置及びレイアウト情報生成方法 |
US5987581A (en) * | 1997-04-02 | 1999-11-16 | Intel Corporation | Configurable address line inverter for remapping memory |
US5978882A (en) * | 1997-04-25 | 1999-11-02 | Novell, Inc. | Real-mode, 32-bit, flat-model execution apparatus and method |
US7441254B1 (en) | 1997-07-09 | 2008-10-21 | International Business Machines Corporation | Simulation of memory-mapped I/O |
US6330010B1 (en) * | 1997-11-21 | 2001-12-11 | Xsides Corporation | Secondary user interface |
US6639613B1 (en) * | 1997-11-21 | 2003-10-28 | Xsides Corporation | Alternate display content controller |
US6686936B1 (en) | 1997-11-21 | 2004-02-03 | Xsides Corporation | Alternate display content controller |
US6018332A (en) * | 1997-11-21 | 2000-01-25 | Ark Interface Ii, Inc. | Overscan user interface |
US6337717B1 (en) | 1997-11-21 | 2002-01-08 | Xsides Corporation | Alternate display content controller |
US7024512B1 (en) * | 1998-02-10 | 2006-04-04 | International Business Machines Corporation | Compression store free-space management |
US6356996B1 (en) | 1998-03-24 | 2002-03-12 | Novell, Inc. | Cache fencing for interpretive environments |
US6141732A (en) * | 1998-03-24 | 2000-10-31 | Novell, Inc. | Burst-loading of instructions into processor cache by execution of linked jump instructions embedded in cache line size blocks |
US6578193B1 (en) | 1998-03-24 | 2003-06-10 | Novell, Inc. | Endian-neutral loader for interpretive environment |
JP2995030B2 (ja) * | 1998-03-31 | 1999-12-27 | 三洋電機株式会社 | コンピュータシステム、並びにコンピュータシステムにおけるプログラム及びデータの修正方法 |
US6637023B1 (en) * | 1999-03-03 | 2003-10-21 | Microsoft Corporation | Method and system for updating read-only software modules |
US6590592B1 (en) | 1999-04-23 | 2003-07-08 | Xsides Corporation | Parallel interface |
AU5276800A (en) | 1999-05-21 | 2000-12-12 | Xsides Corporation | Parallel graphical user interface |
US6282647B1 (en) * | 1999-06-02 | 2001-08-28 | Adaptec, Inc. | Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code |
US6543006B1 (en) * | 1999-08-31 | 2003-04-01 | Autodesk, Inc. | Method and apparatus for automatic undo support |
US6630943B1 (en) * | 1999-09-21 | 2003-10-07 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
US20040226041A1 (en) * | 2000-02-18 | 2004-11-11 | Xsides Corporation | System and method for parallel data display of multiple executing environments |
US6677964B1 (en) | 2000-02-18 | 2004-01-13 | Xsides Corporation | Method and system for controlling a complementary user interface on a display surface |
US7539828B2 (en) * | 2000-08-08 | 2009-05-26 | Faronics Corporation | Method and system for automatically preserving persistent storage |
US6884171B2 (en) * | 2000-09-18 | 2005-04-26 | Nintendo Co., Ltd. | Video game distribution network |
US7058177B1 (en) | 2000-11-28 | 2006-06-06 | Xilinx, Inc. | Partially encrypted bitstream method |
US7818808B1 (en) * | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US6834384B2 (en) * | 2001-03-14 | 2004-12-21 | General Instrument Corporation | Methods and apparatus for upgrading firmware in an embedded system |
US6938111B2 (en) * | 2002-04-19 | 2005-08-30 | Siemens Aktiengesellschaft | Method for operating automation control equipment applications |
US7171546B2 (en) * | 2002-05-23 | 2007-01-30 | Adams Phillip M | CPU life-extension apparatus and method |
US7305680B2 (en) * | 2002-08-13 | 2007-12-04 | Sharp Laboratories Of America, Inc. | Listening module for asynchronous messages sent between electronic devices of a distributed network |
US7134006B2 (en) * | 2003-06-03 | 2006-11-07 | Gateway Inc. | Method and system for changing software access level within or outside a host protected area |
US7451267B1 (en) * | 2003-09-23 | 2008-11-11 | Netlogic Microsystems, Inc. | Method and apparatus for learn and related operations in network search engine |
US7403936B2 (en) * | 2004-03-05 | 2008-07-22 | Siemens Medical Solutions Usa, Inc. | Optimizing database access for record linkage by tiling the space of record pairs |
US7495558B2 (en) | 2004-04-27 | 2009-02-24 | Infratab, Inc. | Shelf-life monitoring sensor-transponder system |
US7764183B2 (en) * | 2005-04-22 | 2010-07-27 | Infratab, Inc. | Apparatus and method for monitoring and communicating data associated with a product |
US7380095B2 (en) | 2004-06-30 | 2008-05-27 | Intel Corporation | System and method for simulating real-mode memory access with access to extended memory |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US7734741B2 (en) * | 2004-12-13 | 2010-06-08 | Intel Corporation | Method, system, and apparatus for dynamic reconfiguration of resources |
US7738484B2 (en) * | 2004-12-13 | 2010-06-15 | Intel Corporation | Method, system, and apparatus for system level initialization |
CN100561446C (zh) * | 2004-12-31 | 2009-11-18 | 北京中星微电子有限公司 | 通过间接寻址扩展存储空间的存取方法及其存取装置 |
US20080126590A1 (en) * | 2006-06-29 | 2008-05-29 | Rothman Michael A | Semiconductor based host protected addressing in computing devices |
US8032687B2 (en) * | 2009-02-12 | 2011-10-04 | Unisys Corporation | Method, system, and apparatus for supporting limited address mode memory access |
JP2011003072A (ja) * | 2009-06-19 | 2011-01-06 | Toshiba Corp | マルチコアプロセッサシステム |
US9128625B1 (en) * | 2012-03-26 | 2015-09-08 | Emc Corporation | Method and system for physical memory reservation for user-space programs |
EP2901431A4 (en) | 2012-10-09 | 2016-03-09 | Infratab Inc | ELECTRONIC DATAGE SYSTEM BY INFERENCE OF A CONSERVATION TIME DESIGNED FOR PERISHABLE FOODSTUFFS |
KR102511363B1 (ko) * | 2016-02-04 | 2023-03-17 | 삼성전자주식회사 | 디스플레이 장치 및 디스플레이 방법 |
US11307779B2 (en) * | 2019-09-11 | 2022-04-19 | Ceremorphic, Inc. | System and method for flash and RAM allocation for reduced power consumption in a processor |
US12007902B2 (en) | 2022-11-09 | 2024-06-11 | Andes Technology Corporation | Configurable memory system and memory managing method thereof |
CN116820785B (zh) * | 2023-08-30 | 2024-01-02 | 紫光同芯微电子有限公司 | 用于管理内存的方法及装置、资源受限设备、存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4141068A (en) * | 1977-03-24 | 1979-02-20 | Xerox Corporation | Auxiliary ROM memory system |
US4442484A (en) * | 1980-10-14 | 1984-04-10 | Intel Corporation | Microprocessor memory management and protection mechanism |
US4386773A (en) * | 1981-06-22 | 1983-06-07 | Bronstein John M | TV Game cartridge with expandable memory |
JPS6068441A (ja) * | 1983-09-22 | 1985-04-19 | Fujitsu Ltd | ワンチツプ・マイクロ・コンピユ−タ |
US5027273A (en) * | 1985-04-10 | 1991-06-25 | Microsoft Corporation | Method and operating system for executing programs in a multi-mode microprocessor |
US4761736A (en) * | 1986-01-02 | 1988-08-02 | Commodore Business Machines, Inc. | Memory management unit for addressing an expanded memory in groups of non-contiguous blocks |
US5109521A (en) * | 1986-09-08 | 1992-04-28 | Compaq Computer Corporation | System for relocating dynamic memory address space having received microprocessor program steps from non-volatile memory to address space of non-volatile memory |
US4831522A (en) * | 1987-02-17 | 1989-05-16 | Microlytics, Inc. | Circuit and method for page addressing read only memory |
US4928237A (en) * | 1987-03-27 | 1990-05-22 | International Business Machines Corp. | Computer system having mode independent addressing |
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 |
US5091850A (en) * | 1987-09-28 | 1992-02-25 | Compaq Computer Corporation | System for fast selection of non-cacheable address ranges using programmed array logic |
JP3046310B2 (ja) * | 1988-09-13 | 2000-05-29 | 株式会社東芝 | メモリシステム |
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 |
US5083259A (en) * | 1988-12-07 | 1992-01-21 | Xycom, Inc. | Computer bus interconnection device |
US5123098A (en) * | 1989-02-28 | 1992-06-16 | Hewlett-Packard Company | Method for executing programs within expanded memory of a computer system using MS or PC DOS |
US4985871A (en) * | 1989-11-13 | 1991-01-15 | Chips And Technologies, Inc. | Memory controller for using reserved dram addresses for expanded memory space |
-
1991
- 1991-07-15 US US07/730,244 patent/US5237669A/en not_active Expired - Lifetime
-
1992
- 1992-07-15 BR BR9206286A patent/BR9206286A/pt not_active Application Discontinuation
- 1992-07-15 WO PCT/US1992/005925 patent/WO1993002417A1/en active IP Right Grant
- 1992-07-15 JP JP50293493A patent/JP3268310B2/ja not_active Expired - Fee Related
- 1992-07-15 AT AT92915411T patent/ATE174137T1/de not_active IP Right Cessation
- 1992-07-15 CA CA002113565A patent/CA2113565C/en not_active Expired - Fee Related
- 1992-07-15 AU AU23395/92A patent/AU2339592A/en not_active Abandoned
- 1992-07-15 DE DE69227774T patent/DE69227774T2/de not_active Expired - Fee Related
- 1992-07-15 KR KR1019940700130A patent/KR0132696B1/ko not_active IP Right Cessation
- 1992-07-15 EP EP92915411A patent/EP0595880B1/en not_active Expired - Lifetime
- 1992-10-07 US US07/957,981 patent/US5367658A/en not_active Expired - Lifetime
-
1994
- 1994-01-13 FI FI940168A patent/FI940168A/fi not_active Application Discontinuation
- 1994-01-14 NO NO940148A patent/NO940148L/no unknown
-
2001
- 2001-05-21 JP JP2001150838A patent/JP3571667B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ATE174137T1 (de) | 1998-12-15 |
US5237669A (en) | 1993-08-17 |
EP0595880A4 (en) | 1997-07-02 |
NO940148D0 (no) | 1994-01-14 |
AU2339592A (en) | 1993-02-23 |
DE69227774T2 (de) | 1999-07-22 |
JP3268310B2 (ja) | 2002-03-25 |
KR0132696B1 (ko) | 1998-04-24 |
NO940148L (no) | 1994-03-14 |
CA2113565A1 (en) | 1993-01-16 |
CA2113565C (en) | 1998-05-05 |
EP0595880B1 (en) | 1998-12-02 |
WO1993002417A1 (en) | 1993-02-04 |
FI940168A (fi) | 1994-03-04 |
FI940168A0 (fi) | 1994-01-13 |
BR9206286A (pt) | 1994-11-08 |
JPH06508952A (ja) | 1994-10-06 |
EP0595880A1 (en) | 1994-05-11 |
JP3571667B2 (ja) | 2004-09-29 |
US5367658A (en) | 1994-11-22 |
DE69227774D1 (de) | 1999-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3268310B2 (ja) | メモリ管理方法 | |
CA1304166C (en) | Software emulation of bank-switched memory using a virtual dos monitorand paged memory management | |
EP0288606B1 (en) | Computer system employing a cpu having two mutually incompatible addressing modes | |
KR101174583B1 (ko) | 변환 예외 한정자를 갖는 동적 어드레스 변환 | |
US7120778B2 (en) | Option ROM virtualization | |
US7376949B2 (en) | Resource allocation and protection in a multi-virtual environment | |
US8127098B1 (en) | Virtualization of real mode execution | |
US5307497A (en) | Disk operating system loadable from read only memory using installable file system interface | |
US5371867A (en) | Method of using small addresses to access any guest zone in a large memory | |
WO2006012007A1 (en) | A system and method for simulating real-mode memory access with access to extended memory | |
US8135899B1 (en) | Expansion of virtualized physical memory of virtual machine | |
US20020129233A1 (en) | Data processor having bios packing compression/decompression architecture | |
JPS6248258B2 (ja) | ||
US5175830A (en) | Method for executing overlays in an expanded memory data processing system | |
US20040122834A1 (en) | Apparatus and method for switching mode in a computer system | |
EP2874066B1 (en) | Method in a memory management unit and a memory management unit, for managing address translations in two stages | |
US5940869A (en) | System and method for providing shared memory using shared virtual segment identification in a computer system | |
US5127096A (en) | Information processor operative both in direct mapping and in bank mapping, and the method of switching the mapping schemes | |
US7293207B2 (en) | Method for testing memory in a computer system utilizing a CPU with either 32-bit or 36-bit memory addressing | |
JPH06332803A (ja) | 仮想計算機システムにおけるtlb制御方法 | |
JPH10293684A (ja) | コンピュータシステムおよびその立ち上げ制御方法 | |
CN111527480B (zh) | 数据处理装置中的地址转换 | |
JP6708860B2 (ja) | 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換 | |
JPS5911588A (ja) | 仮想計算機システムにおける主記憶管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040430 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040624 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070702 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |