JP3268310B2 - メモリ管理方法 - Google Patents

メモリ管理方法

Info

Publication number
JP3268310B2
JP3268310B2 JP50293493A JP50293493A JP3268310B2 JP 3268310 B2 JP3268310 B2 JP 3268310B2 JP 50293493 A JP50293493 A JP 50293493A JP 50293493 A JP50293493 A JP 50293493A JP 3268310 B2 JP3268310 B2 JP 3268310B2
Authority
JP
Japan
Prior art keywords
memory
rom
address space
address
mode
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.)
Expired - Fee Related
Application number
JP50293493A
Other languages
English (en)
Other versions
JPH06508952A (ja
Inventor
スピア,ダン
メイヤー,ラリー
Original Assignee
クウオーターデッキ コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クウオーターデッキ コーポレーション filed Critical クウオーターデッキ コーポレーション
Publication of JPH06508952A publication Critical patent/JPH06508952A/ja
Application granted granted Critical
Publication of JP3268310B2 publication Critical patent/JP3268310B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User 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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 [発明の背景] (1)技術分野 本発明は一般的にはコンピュータ・メモリ・システム
の分野に関係し、具体的にはコンピュータ・メモリの使
用を制御し最適化するためのメモリ管理システムに関係
するものである。
(2)背景技術 典型的なコンピュータ・システムは複数のモジュール
又は要素から構成される。コンピュータ・システムには
マイクロプロセッサなどの中央処理装置(CPU)を典型
的に含む。マイクロプロセッサは命令の取得、復号及び
実行を行うプログラム制御される装置である。コンピュ
ータ・システムはシステム・オペレーティング・ソフト
ウェア、アプリケーション・プログラム命令及びデータ
を記憶するための記憶要素も含む。これらの記憶要素は
読み出し専用メモリ(ROM),ランダム・アクセス・メ
モリ(RAM),ディスク記憶装置又はテープ記憶装置も
しくは他の適当な記憶手段とすることができる。
コンピュータ・システムは外部装置をマイクロプロセ
ッサに接続するための入出力(I/O)要素も典型的に含
む。メモリ管理ユニットやコプロセッサなどの専用部品
もコンピュータ・システムの一部となり得る。
コンピュータはデータの処理に使用される。データの
処理を可能にするためには中央処理装置(CPU)が入力
データを使用するまで、その入力データを記憶しなけれ
ばならない。また、データを処理した後に出力データを
記憶しなければならない。いくつかの処理動作の間、デ
ータに対して命令を実行している間にCPUがデータの一
時的な記憶を必要とする場合がある。さらに、処理を制
御するアプリケーション・プログラムや、その下でプロ
グラムが走行するオペレーティング・システムをCPUか
らアクセスできなければならない。「メイン・メモリ」
と呼ばれる資源にこの情報を記憶することによってCPU
からこの情報を使用できるようになる。
メイン・メモリと呼ばれるメモリ要素はユーザ、デー
タ、プログラム又はプロセスに動的にアロケートされる
希少な資源である。メイン・メモリは通常はRAMなどの
シリコン・ベースのメモリである。多くの応用例ではメ
イン・メモリとしてダイナミック・ランダム・アクセス
・メモリ(Dymamic Random Access Memory:DRAM)が使
用される。プロセッサのメイン・メモリは「バイト」編
成になっている。すなわち、メモリは8ビット・バイト
のシーケンスとして構成され、このバイトがメモリから
アクセスされる情報の最小単位になる。ある規約によれ
ば、1つのロウ全体がロウ・アドレスによって選択さ
れ、カラムが8ビットのグループでアクセスされる。実
施によっては16ビット・ワード(2バイト)又は32ビッ
ト・ワード(4バイト)を1回でアクセスするものもあ
る。
メイン・メモリをCPUからアクセスできるようにする
ためにはメイン・メモリをCPUに直接又は間接に接続し
なければならない。中央処理装置に直接接続できるメイ
ン・メモリの量はCPUのアドレス・バスの幅によって制
限される。アドレス・バスはCPUとメモリの間に接続さ
れる。メモリをアクセスするため、CPUは1つのメモリ
・ロケーションだけをユニークに表現する値をアドレス
・バスに置くことができる。アドレス・バスに置くこと
のできるユニークな値の数はアドレス・バスの幅に応じ
て変化する。特定のマイクロプロセッサなど特定のタイ
プのCPUのアドレス・バスの幅は普通は固定されている
ので、CPUによってアドレッシングできるメモリ・ロケ
ーションの数には限界がある。
CPUによってアドレッシングできる以上のメモリをCPU
に接続することが望ましい場合がある。追加のメモリを
接続できるようにするためにある方法を使用して追加メ
モリをCPUに間接的に結合する。8088や8086などのマイ
クロプロセッサのアドレス・バスは20ビットである。n
ビットのアドレス・バスによってアドレッシングできる
メモリ・ロケーションの数は2nであるから20ビットのア
ドレス・バスによってアドレッシングできるメモリ・ロ
ケーションの数は220、すなわち、約100万(1M)であ
る。CPUから直接アクセスできるようにするためにはす
べてのメモリをアドレス・バスのビットによって表現で
きるユニークな値の数を越えないサイズの連続ブロック
の中に配置しなければならない。20ビットのアドレス・
バスの場合すべてのメモリを1Mの連続ブロックの中に置
かなければならない。
理論的には間接的な方法によって追加メモリをアクセ
スすることもできるが、ほとんどのオペレーティング・
システムはメモリへの直接アクセスだけをサポートす
る。オペレーティング・システムが間接的に追加メモリ
をアクセスする方法をサポートしない場合、アプリケー
ション・プログラムとそのデータのすべてを、必要なシ
ステム・ソフトウェアのすべてとともに直接アクセスで
きる連続ブロックの中に格納しなければならない。
アドレス・バスの幅によって、直接アクセスできるメ
モリの量が制限されるが、システム・ソフトウェアの占
有するメモリの量によって、アプリケーション・プログ
ラムが使用できる空きメモリの量が制限される。したが
って、アプリケーション・プログラムが使用できるメモ
リの量は直接アクセスできるメモリの総量より少ない。
アプリケーション・プログラムが、使用可能な量以上の
メモリを必要とする時には簡単にアクセスできる使用可
能メモリの量を増加するための方法を見い出さなければ
ならない。
従来技術では使用可能メモリの量を増やすために多く
の試みが行われてきた。従来技術で使用された方法の1
つがエクスパンデッド・メモリ仕様(Expanded Memory
Specification:EMS)として知られている。EMSは直接ア
クセスできないエクステンデッド・メモリの一部をエク
スパンデッド・メモリとして使用するために予約し、ペ
ージに分割する。EMSではこのエクスパンデッド・メモ
リを1回に1ページずつCPUが直接アクセスできるアド
レス空間に切り替えることによって事実上無制限の量の
メモリをアクセスできる。しかし、EMSではページの変
更に時間がかかる。望みのデータが直接アクセスできる
メモリ内に配置されたEMSページ・フレーム内にない場
合、EMSではページ・フレームの現在の内容をページ・
アウトし、望みのデータを含むページをエクスパンデッ
ド・メモリからページ・インしなければならない。この
ようなページ変更は時間を要するのでコンピュータの処
理速度が低下する。また、EMSはすべてのアプリケーシ
ョン・ソフトウェアに一般的に適用可能ではない。EMS
を使用できる場合にそれを利用するよう特別にアプリケ
ーション・ソフトウェアを作成しなければならない。
従来技術のもう1つの方法はLOADALL命令に頼る方法
である。LOADALL命令は80286マイクロプロセッサだけに
具えられた非サポート命令である。LOADALL命令は80286
だけに具えられているのでこの従来技術の方法は80286
マイクロプロセッサに基づくコンピュータでなければ役
に立たない。
従来技術のもう1つの方法はシステムROMに含まれる
システム・ソフトウェアの検査と再プログラミングを含
む。この方法では最小の量のメモリを占有しながらその
機能を実行するようにシステムROMを再プログラミング
することができる。この方法によればROMプログラミン
グが非効率的なために浪費されていたメモリ空間を他の
目的に使用できるようになる。しかし、この方法ではこ
の方法に使用できるROMのそれぞれのすべての改訂版を
人間がプログラミングし直す必要がある。
これらの従来技術の方法のどれにも不便な点がある。
これらの方法の中のあるものは追加メモリを提供する
が、望みのデータをアクセス可能にするのに必要なステ
ップのせいでコンピュータ・システムの性能を低下させ
るものがある。特定の中央処理装置に基づくシステムで
なければ使えない方法もある。ROM固有でありROMのそれ
ぞれの改訂版ごとに別々に実施しなければならないもの
もあれば、特定のアプリケーション・プログラムに固有
でありすべてのアプリケーション・プログラムに一般的
に適用することができないものもある。
発明の概要 本発明はCPUの直接アクセス可能なアドレス空間内に
追加の使用可能メモリを提供する。本発明はCPU固有,RO
M固有又はアプリケーション・プログラム固有のどれで
もなく、従来技術の方法ほど性能を低下させないので、
従来技術の欠点がなく、より一般的に適用可能であると
同時によりよい性能を提供する。
本発明ではROMに格納されたシステム・ソフトウェア
をその通常のアドレス空間から移動し、そのアドレス空
間を他の目的に使用する。本発明はROMアドレス空間を
他の目的に使用でき、なおかつROMに格納されたソフト
ウェアにアクセスできる形でメモリを管理する。
本発明の好ましい実施例ではシステム・ソフトウェア
を含むROMをエクステンデッド・メモリのアドレス空間
にマッピングし、プロテクト・モードでアクセスする。
その後、元々ROMが配置されていたアドレス空間にエク
ステンデッドRAMをマッピングする。本発明の好ましい
実施例ではROMアクセスの試みのすべてを再配置されたR
OMイメージに方向変更し、元はROMであったアドレス空
間にマッピングされたエクステンデッドRAMをアプリケ
ーション・プログラムなど他の目的に使用できるように
する。
本発明の好ましい実施例はCPUの通常のメモリ・アド
レッシング範囲内でアドレッシング可能であり、このよ
うにしてデータに直接に簡単にアクセスできるメモリの
量を増やすための方法である。本発明の好ましい実施例
ではシステムROMとビデオROMを再配置するが、他のROM
にもこの方法を適用できる。
本発明では初期設定ルーチンを実行してROMをメモリ
外部アドレス空間にマッピングする。インターセプト・
ルーチンをインストールしてROMアクセスをすべてイン
ターセプトする。エクステンデッドRAMの位置を突き止
め、アロケートして、以前にROMが占有していたアドレ
ス空間に配置する。インストールが終わったならば、普
通のアプリケーション・プログラムをこのコンピュータ
・システムで実行できる。元々ROMがあったアドレス空
間に配置される追加RAMはアプリケーション・プログラ
ムが使用するためにアロケートしたり、常駐終了(Term
inate−and−Stay Resident:TSR)プログラムの再配置
を含む(それに限定されるわけではない)他の目的のた
めにアロケートできる。ROMへのアクセスがある場合に
はROMアクセス・インターセプト・ルーチンがそのアク
セスをインターセプトし、再配置されたROMイメージに
方向変更する。再配置されたROMルーチンを呼び出す時
にはその実行を監視して、元のROMアドレス空間にあるR
OMデータ・テーブルやROMサブルーチンをアクセスした
りしないようにする。というのはこのアクセスが行われ
るとシステムがクラッシュするはずだからである。再配
置されたROMルーチンの実行が完了した後にこのROM実行
の結果のすべてを検査し、調節して、システムのエラー
やクラッシュをもたらす可能性のある不正確なデータを
除く。性能をさほど低下させず、特定のCPU,特定のROM
又は特定のアプリケーション・プログラムに限定されな
い形で動作することによって本発明はコンピュータ・シ
ステム内のCPUから簡単にアクセスできる使用可能メモ
リの量を増やすためのはるかに効率的で一般的に適用で
きる方法を提供する。
図面の簡単な説明 第1図 典型的なコンピュータ・システムの構造を示
すブロック図。
第2図 コンピュータ・システムの可能なメモリ編成
を示すメモリ・マップ。
第3図 あるマイクロプロセッサのリアル・モードで
使用されるアドレッシング方法を示す図。
第4図 あるマイクロプロセッサのプロテクト・モー
ドで使用されるアドレッシング方法を示す図。
第5図 典型的なコンピュータ・システムのメモリ編
成を示すメモリ・マップ。
第6図 従来技術の第1の方法を示すメモリ・マッ
プ。
第7図 従来技術の第2の方法を示すメモリ・マッ
プ。
第8図 従来技術の第4の方法を示すメモリ・マッ
プ。
第9図 従来技術の第3の方法を示すメモリ・マッ
プ。
第10図 従来技術の第5の方法を使用する典型的なコ
ンピュータ・システムの構造を示すブロック図。
第11図 従来技術の第5の方法を使用するコンピュー
タ・システムの可能なメモリ編成を示すメモリ・マッ
プ。
第12図 従来技術の第5の方法を示すメモリ・マッ
プ。
第13図 本発明のプロテクト・モード実施例とマッピ
ング実施例を示すメモリ・マップ。
第14図 本発明のプロテクト・モード実施例の初期設
定ルーチンを示す流れ図。
第15図 本発明のプロテクト・モード実施例の初期設
定ハンドラを示す流れ図。
第16図 本発明の初期設定ルーチンのマッピング実施
例を示す流れ図。
第17図 本発明の初期設定ハンドラのマッピング実施
例を示す流れ図。
発明の詳細な説明 コンピュータ・システム内で簡単にアクセスできる追
加メモリを提供する方法を説明する。以下の説明では本
発明の完全な説明を提供するためコンピュータ・システ
ムのタイプ,メモリ・アドレス・ロケーション,メモリ
の量やバス幅など多数の特定の詳細を記載する。しか
し、これらの特定の詳細なしで本発明を実施できること
は当業者には明白であろう。それ以外の場合では本発明
を無用に不明瞭にしないために周知の特徴を詳細に説明
することはしない。
典型的なコンピュータ・アーキテクチャを第1図に示
す。このコンピュータ・システムにはCPU101,RAM(メイ
ン・メモリ)102,ROM(読み取り専用メモリ)103、及び
I/O(入出力)104が含まれ、これらのすべてがシステム
・バス107に結合される。I/Oブロック104はバス105を介
して、大容量記憶装置106などの他のシステムへのアク
セスを提供する。
CPU101はコンピュータを制御し、命令を実行し、デー
タを処理する。CPU101はシステム・バス107を介して他
の要素と通信する。CPUはシステム・バス107を介してコ
ンピュータの他の要素から入力データを受け取り、シス
テム・バスを介してコンピュータの他の要素へ出力デー
タを送る。システム・バス107には普通アドレス・バ
ス、データ・バス及び他のさまざまな制御線が含まれ
る。アドレス・バスとデータ・バスの幅ならびに制御線
の数とタイプはコンピュータ・システムごとに異なる。
RAM102,ROM103及びメモリ・マップドI/O104を含むコ
ンピュータ・システムの各要素に複数の別個のメモリ・
ロケーションが含まれる。CPU101がこれらのロケーショ
ンをアクセスできるようにするために各ロケーションに
固有のアドレスを割り当てる。アドレスのそれぞれはア
ドレス・バスを介して送ることのできる2進値の固有の
組合せである。ほとんどのメモリ・デバイスに複数のロ
ケーションが含まれるので、1つのメモリ・デバイスの
ロケーションのすべてのアドレスが通常は連続ブロック
として割り当てられる。これらのブロックに連続した形
でアドレスが割り当てられる(メモリにマッピングされ
る)場合が多い。しかし、割り当てられていないアドレ
スや将来の使用のために予約されたアドレスでギャップ
ができていてもよい。
メモリ・マップはコンピュータ・システムのメモリの
編成を理解するのに役立つ。典型的なメモリ・マップは
マイクロプロセッサがアクセスできる最下位アドレスか
ら始まり、マイクロプロセッサがアクセスできる最上位
アドレスまで延びる。メモリ・マップの1例を第2図に
示す。第2図のマップのメモリの最下位アドレスは領域
201として示されるが、メイン・メモリRAM102にアロケ
ートされる。領域202として示される次のアドレスはI/O
104にアロケートされる。領域203として示されるメモリ
・アドレスは未使用である。未使用アドレスの上位にあ
る領域204にはROMにアロケートされたメモリ・アドレス
が含まれる。領域205は追加RAMにアロケートされるメモ
リ・アドレスであり、領域206は追加ROMにアロケートさ
れるメモリ・アドレスである。第2図はコンピュータ・
システムのメモリ・アーキテクチャを設計する際の自由
度を示すためあくまで1例として提供した図である。こ
れは特定のコンピュータ・システムの実際のメモリ・マ
ップを表現したものではない。
コンピュータ・システムの動作は「オペレーティング
・システム」として知られる一連の命令によって制御さ
れる。オペレーティング・システムは入出力などコンピ
ュータ・システムの基本機能を制御するのに使用され、
通常はROM103などの永久記憶要素に記憶される。オペレ
ーティング・システムの例にMS−DOS(登録商標)又はP
C−DOSが含まれる。
コンピュータ・システムはアプリケーション・プログ
ラムを実行するのに使用される。アプリケーション・プ
ログラムの例に含まれるのがワード・プロセッサ,スプ
レッドシート,ドローイング・プログラム,データベー
スなどである。アプリケーション・プログラムによって
はROMに格納されるものもある。しかし、一般的にはア
プリケーション・プログラムはディスク・ドライブなど
の大容量記憶装置に記憶される。
コンピュータ・システムの初期設定の時にCPU101によ
って実行されるアプリケーション・プログラムも大容量
記憶装置106からRAM102に転送される。CPU101が操作す
るデータもRAM102に格納される。
アプリケーション・プログラムのサイズと量,オペレ
ーティング・システムのサイズ及びCPU101からアクセス
できるデータの量はメイン・メモリのサイズによって制
限される。無限の量のメモリがあれば理想的だが経済的
にも技術的にも不可能である。まず、ユーザが購入でき
るメモリの量に限界がある。次に、特定のコンピュータ
がサポートできるメモリの量に技術的な限界がある。特
定のコンピュータがサポートするメモリの量はそのコン
ピュータのベースとなる特定のCPUのタイプに依存す
る。
たとえば、IBMのパーソナルコンピュータは8088マイ
クロプロセッサをベースとしている。8088マイクロプロ
セッサのアドレス・バスは20ビットである。あるコンピ
ュータがアドレッシングできるメモリの量はそのアドレ
ス・バスの幅の関数である。nビットのアドレス・バス
を備えたCPUは2nバイト又は2nワードのメモリを直接ア
クセスできる。したがって、8088マイクロプロセッサは
約100万バイト又は100万ワード(1M)を直接アクセスで
きる。CPUのアドレス・バスの限界を越えて追加メモリ
を間接アクセスできるようにするための方法が開発され
てはいるが、このような方法は扱いにくくて非効率的で
ある場合が多い。したがって、アプリケーション・ソフ
トウェアが使用できる直接アクセス可能なメモリ空間が
できる限り多い状態を保って、アプリケーション・ソフ
トウェアが可能な限り効率的に動作できるようにするこ
とが望ましい。
できる限り多くの直接アクセス可能なメモリ空間をア
プリケーション・ソフトウェア用に予約し直接アクセス
可能なメモリ空間に収まるようにアプリケーション・ソ
フトウェアをできる限り小さくすることが理想的である
が、これが必ず達成できるとは限らない。システム・ソ
フトウェアはアプリケーション・ソフトウェアの管理と
制御のために必要であるからやはりメモリに常駐しなけ
ればならない。また、アプリケーション・ソフトウェア
の複雑さとユーザ・データの量が増加するにつれてアプ
リケーション・ソフトウェアに必要なメモリが増加す
る。
さらに、TSR(常駐終了)として知られるプログラム
がコンピュータ・システム上で使用される場合が多い。
このようなプログラムは「ホット・キー」と「ポップア
ップ・ウィンドウ」を提供し、ビデオ・ディスプレイの
隅に時計を表示したりディスク・ドライブの活動を監視
するなどバックグラウンド・タスクの実行に使用され
る。TSRは他の多くの応用分野のために作成されてお
り、ユーザが自分のコンピュータに複数のTSRを同時に
常駐させることもしばしばである。TSRのそれぞれが自
分の配置されるメモリ空間を必要とするのでシステムに
TSRを追加するとメモリ必要量が増加する。
第5図は典型的なコンピュータ、すなわち、8088/808
6ファミリのマイクロプロセッサに基づいて、MS−DOSの
下で動作するIBMのパーソナル・コンピュータなどのコ
ンピュータのメモリ・マップを示す図である。第5図の
メモリ・マップは可能な唯一のメモリ・マップではな
く、典型的なメモリ・マップの1例である。このメモリ
・マップは一番下のメモリ・ロケーション0(501)か
ら一番上のメモリ内で最上位のロケーションまでという
形で編成されている。このメモリ・マップには3つの基
本領域がある。第1領域には最下位640Kのメモリが含ま
れ、コンベンショナル・メモリ502と呼ばれる。コンベ
ンショナル・メモリ502は読み取り動作と書き込み動作
の両方が可能なRAMだけから構成される。ただし、すべ
てのシステムが640K全体を含むわけではなく、メモリ空
間の一部が未使用のままであってもよい。
初期のマイクロコンピュータのアドレス・バスは16ビ
ットであり、これによって64Kのアドレス空間がもたら
された。アプリケーションの必要とするメモリの量が増
加するにつれてマイクロコンピュータに16ビット・アド
レス・バスの制限を克服する必要が生じた。したがっ
て、IBMのパーソナルコンピュータは20ビット・アドレ
ス・バスをサポートするセグメント・アドレス方式と共
に市場に導入された。20ビット・アドレス・バスは1024
K又は1Mのアドレス空間を提供するが、これは16ビット
・バスの16倍のスペースである。1Mは16ビット・アドレ
ス・バスを備えるコンピュータの64Kと比較して膨大な
量のメモリであると思われた。さらに、当時のメモリ回
路は高価であったのでRAMメモリに関する人為的な制限
が640Kに設けられた。640Kから1Mまでの384Kのアドレス
空間は将来の使用、主にROMのために予約されていた。
後続モデルのコンピュータはオリジナルのIBM PCと後
方互換であり同一のPC−DOS/MS−DOSオペレーティング
・システムを使用するように設計されたので640Kの制限
が現代のコンピュータ上でアプリケーションに使用可能
なメモリの量を制約し続けている。
コンベンショナル・メモリ502はコンピュータ・シス
テムの重要な部分である。コンベンショナル・メモリは
システム・ソフトウェア,アプリケーション・ソフトウ
ェア,ユーザ・データ及びTSRやデバイス・ドライバを
含む他のコードとデータを記憶するのに使用される。第
5図に示すように、MS−DOSはメモリの最下位部分を使
用してそれ自体のコード506と関連データ507を格納す
る。MS−DOSはその上位にアプリケーション・ソフトウ
ェア,TSR及びデバイス・ドライバ(全体を要素512とし
て図示)を格納する。
メモリの第2の基本領域が384Kの予約済みメモリ503
である。これは640KのRAM限界の上位、1024Kまでのメモ
リ・アドレスにある。予約済みメモリ領域503は主に読
み取り専用デバイスであるROMによって占められる。予
約済みメモリ領域にあるROMにはシステムROM504,ビデオ
ROM505とおそらくはハード・ディスク・ドライブやネッ
トワーク・インターフェースなどの他の周辺装置用のRO
M514が含まれる。システムROM504にはコンピュータの基
本機能をサポートするコードとデータが格納される。ビ
デオROM505にはビデオ表示を伴う動作をサポートするた
めのコードとデータが格納される。他の周囲機器用のRO
M514はそれらの装置の動作をサポートする。
ROMの他に予約済みメモリ領域503には他のタイプの特
殊メモリも含まれる。予約済みメモリ領域503にあるメ
モリのタイプの1つがビデオ・フレーム・バッファに使
用されるRAMである。ビデオ・フレーム・バッファは現
在ビデオ・ディスプレイに表示されている情報を格納す
るのに使用される。一般にビデオ・フレーム・バッファ
から情報を読み取ることと書き込むことの両方が可能で
あるが、ビデオ・フレーム・バッファは通常は一般情報
の記憶には使用できない。というのはビデオ・フレーム
・バッファがアクティブでなくその状態のままになるの
でない限り、ビデオ・フレーム・バッファに情報を書き
込むとビデオ・ディスプレイの外見が変化するからであ
る。
予約済み領域503のうちでビデオ・フレーム・バッフ
ァのために使用される領域は特定のコンピュータ・シス
テムにインストールされたビデオ・ディスプレイ・アダ
プタの特定のタイプによって変化する。第5図に示すよ
うに、EGA又はVGAのビデオ・アダプタをインストールす
る場合、グラフィックス用の64Kのビデオ・フレーム・
バッファ508が640Kから704Kまでのメモリ空間を占有す
る。EGA又はVGAのアダプタはテキスト表示のために32K
のビデオ・フレーム・バッファも使用する。この32Kの
ビデオ・フレーム・バッファはモノクローム表示の場合
には704Kから736Kまで、カラー表示の場合には736Kから
768Kまでに配置される。MDAビデオ・アダプタをインス
トールする場合16Kのビデオ・フレーム・バッファ509が
704Kから720Kまでのメモリ空間を占有する。ハーキュリ
ーズ・ビデオ・アダプタをインストールする場合、64K
のビデオ・フレーム・バッファが704Kから768Kまでのメ
モリ空間を占有する。CGAビデオ・アダプタをシステム
にインストールする場合、ビデオ・フレーム・バッファ
510が736Kから768Kまでの32Kのメモリ空間を占有する。
EGA又はVGAのビデオ・アダプタをインストールする場
合、追加のメモリがビデオROMのために使用される。典
型的には768Kから784Kまでの16Kのメモリ空間がEGA又は
VGAのビデオROM505のために使用される。ただし、ビデ
オROM505はサイズが異なる場合もあり、異なるアドレス
空間に配置される場合もある。
システムROM504はコンピュータの基本動作をサポート
するが典型的にはたとえば960Kから1024Kまでの予約済
みメモリ領域503の最上位64Kを占有する。予約済みメモ
リ領域503の残りのスペースは未使用か、周辺装置をサ
ポートするROMやEMSページ・フレームを含む他の目的に
使用されるかのどちらかである。
メモリの第3の基本領域は1Mを越えるすべてのメモリ
を含むエクステンデッド・メモリ511である。8088/8086
マイクロプロセッサはアドレス・バスが20ビットしかな
いので1Mのメモリしかアドレッシングできず、エクステ
ンデッド・メモリ511を簡単にはサポートできない。802
86など24ビットのアドレッシング能力を持つマイクロプ
ロセッサは予約済みメモリ503とコンベンショナル・メ
モリ502の1Mの他に、15Mのエクステンデッド・メモリ51
1を含む16Mまでのメモリをアドレッシングできる。8038
6や80486など32ビットのアドレッシング能力を持つマイ
クロプロセッサは予約済みメモリ503とコンベンショナ
ル・メモリ502の1Mの他に4095Mのエクステンデッド・メ
モリ511を含む4Gまでのメモリをアドレッシングでき
る。
エクステンデッド・メモリ511のうちで1Mの直上に置
かれる領域をハイ・メモリ・エリア513と呼ぶ場合があ
る。ハイ・メモリ・エリア513は従来技術のハイ・メモ
リ技法を使用してアドレッシングできる65520個のメモ
リ・ワードから構成される。
第5図の従来技術のメモリ・マッピング・システムの
欠点は1メガバイトのメモリしか直接アクセスできない
ことである。その1メガバイトの中にRAMアドレッシン
グに関して640Kの人為的な制限が設けられている。しば
しば、ユーザは640Kを越えるRAMを直接アドレッシング
できることを必要とする。RAMアドレッシングの人為的
な640K制限を変更できないので追加RAMを提供しようと
する従来技術の試みはRAMカットオフと1メガバイト限
界の間の384Kの予約メモリの利用に焦点を置いている。
いくつかの従来技術の方法を以下で説明する。
[従来技術] 従来技術の第1の方法では追加のコンベンショナル・
メモリとして使用するためコンベンショナル・メモリ60
2の640K限界の真上の予約メモリ603をアロケートする。
第5図を参照すると、要素601として示される640Kから7
04Kまでの予約メモリ・アドレス空間がEGA/VGAビデオ・
フレーム・バッファのためにアロケートされる。704Kか
ら736Kまでの予約メモリはMDA/ハーキュリーズ・ビデオ
・フレーム・バッファのためにアロケートされる。736K
から768Kまでの予約メモリ・アドレス空間はCGAビデオ
・フレーム・バッファのためにアロケートされる。しか
し、ほとんどのコンピュータ・システムには1種類のビ
デオ・ディスプレイ・アダプタしかない。あるコンピュ
ータ・システムにCGA又はMDA/ハーキュリーズのビデオ
・アダプタがあるがEGA/VGAビデオ・アダプタがない場
合、要素601として図示されるEGA/VGAビデオ・フレーム
・バッファのためにアロケートされる640Kから704Kまで
のメモリは未使用のままになり、コンベンショナル・メ
モリ602の拡張としてアプリケーション・プログラムが
使用するために再アロケートすることができる。あるコ
ンピュータ・システムにCGAビデオ・アダプタがあるがM
DA/ハーキュリーズ又はEGA/VGAのアダプタがない場合、
MDA/ハーキュリーズとEGA/VGAのビデオ・フレーム・バ
ッファのためにアロケートされる640Kから736Kまでのメ
モリ空間が未使用のままになりコンベンショナル・メモ
リ602を736Kまで拡張できる。
コンベンショナル・メモリ602の限界を640Kの上に押
し上げるためには、まず、そのシステムにインストール
されているビデオ・ディスプレイ・アダプタのタイプを
判定しなければならない。存在するビデオ・ディスプレ
イ・アダプタのタイプに応じて外部メモリから適当な量
の未使用RAMを640Kを越えて640Kと連続している未使用
のアドレス空間にマッピングしなければならない。その
後、アプリケーション・ソフトウェアやTSRにメモリを
供給するためのメモリ・アロケーション手続きを修正し
て640K限界を越えるメモリをアロケートできるようにし
なければならない。
この方法は簡単にアクセスできるメモリの量を増加さ
せるが、複数の欠点がある。第1に、この方法はますま
す一般的になりつつあるEGAディスプレイ又はVGAディス
プレイを備えたコンピュータ・システムでは役に立たな
い。第2に、EGAディスプレイ又はVGEディスプレイのな
いシステムであってもこの方法によって使用可能にでき
るメモリの量はごくわずかである。MDAディスプレイ又
はハーキュリーズ・ディスプレイのあるシステムでは64
Kを使用可能にすることしかできない。MGAディスプレイ
しかないシステムであっても96Kを使用可能にすること
しかできない。
従来技術の第2の方法は第1の方法に似ている。この
方法にも第6図に示されるようにコンベンショナル・メ
モリの640K限界を予約メモリ領域に押し上げることが含
まれる。しかし、この方法は他の目的に使用されている
予約メモリの再配置も行われるという点が従来技術の第
1の方法と異なる。この方法を使用することからもたら
されるメモリ・マップを第7図に示す。この方法を用い
るとビデオRAM703及びビデオROM704ならびに入出力(I/
O)メモリ705及びTSRメモリ706を予約メモリ領域内でで
きる限り上位のメモリ・ロケーションに再配置してでき
る限り多くの未使用の予約メモリ・アドレス空間をコン
ベンショナル・メモリ701と640K境界に連続して使用可
能にすることができる。実際に、コンベンショナル・メ
モリ701の640K限界を900Kまで押し上げることができ
る。
この方法を実施するためには、まず、そのシステムに
インストールされているビデオ・ディスプレイ・アダプ
タのタイプを判定しなければならない。やはり予約メモ
リ領域708の一部を占有する他のI/Oデバイスも判定しな
ければならない。その後、ビデオRAM703,ビデオROM704,
他のI/Oメモリ705及びTSRメモリ706を予約メモリ領域70
8の最上位にあるシステムROM707の真下の領域に再マッ
ピングしなければならない。その後、ビデオRAM703,ビ
デオROM704,I/Oメモリ705及びTSRメモリ706を指す割り
込みポインタその他すべてのポインタをリダイレクト
(宛先変更)して、このメモリが再配置された新しいメ
モリ空間を反映させなければならない。次に、640Kと連
続する予約メモリ・アドレス空間の使用可能ブロックに
外部メモリから適当な量の未使用RAMをマッピングしな
ければならない。最後に、アプリケーション・ソフトウ
ェアとTSRのためのメモリ・アロケーション手続きを修
正してフィル・メモリ702と呼ばれる640Kの上位にある
予約メモリのうちで使用可能にされた部分をアロケート
できるようにしなければならない。
この従来技術の第2の方法にも欠点がある。この方法
では多くとも260Kの予約メモリしかアクセスできない。
また、ビデオRAM703はしばしばアプリケーション・ソフ
トウェアが直接アクセスするので、アクセスの試みのす
べてをつかまえビデオRAM703が再配置されたメモリ空間
にリダイレクトすることは困難である。
従来技術の第3の方法は初めの2つとは多少異なる形
で動作する。これを第8図に示す。TSR,デバイス・ドラ
イバ及びネットワーク・インターフェース・プログラム
803は普通は640K未満のコンベンショナル・メモリ801に
配置されるが、そうでなければアプリケーション・ソフ
トウェアが使用できるはずのコンベンショナル・メモリ
の一部を占有するので、これらのプログラムをコンベン
ショナル・メモリ801の外部に移動できるならばより多
くのメモリをアプリケーション・ソフトウェアが使用で
きるはずである。従来技術の第3の方法ではTSR,デバイ
ス・ドライバ及びネットワーク・インターフェース・プ
ログラム803をコンベンショナル・メモリ801から予約メ
モリ802に移動することによってアプリケーション・ソ
フトウェアが使用できるコンベンショナル・メモリ801
の量を増やす。
この方法を実施するためには、まず、未使用の予約メ
モリ806の量を判定しなければならない。また、TSR,デ
バイス・ドライバ及びネットワーク・インターフェース
・ドライバ803が占有するコンベンショナル・メモリの
量も判定しなければならない。その後、予約メモリ領域
にエクステンデッド・メモリから十分な量のアロケート
されていないRAMをマッピングしてTSR,デバイス・ドラ
イバ及びネットワーク・インターフェース・プログラム
のためのメモリ空間を供給しなければならない。次に、
TSR,デバイス・ドライバ及びネットワーク・インターフ
ェース・プログラム803を予約メモリ802内の使用可能メ
モリ806に再配置しなければならない。
この従来技術の第3の方法にも欠点がある。まず、こ
の方法ではアロケートされていない予約メモリ空間806
しか使用できない。この方法ではROM,ビデオ・フレーム
・バッファ又は他の用途にアロケートされている予約メ
モリ空間807を使用できない。また、TSR,デバイス・ド
ライバ及びネットワーク・インターフェース・プログラ
ム803の再配置はそれらに対する参照のすべてが確実に
新しいロケーション804,805にリダイレクトされるよう
にするために注意深く行わなければならない。
従来技術の第4の方法はいわゆるハイ・メモリ・エリ
アに関連する方法である。この方法を使用することから
もたらされるメモリ・マップを第9図に示す。この方法
は80286で実施されたセグメント・アドレッシング方式
の例外に基づいている。セグメント・アドレッシング方
式では16ビットのセグメントと16ビットのオフセットを
組み合わせて20ビットのアドレスを生成する。20ビット
のアドレスは理論的には1Mまでに制限されるばずである
が、セグメントとオフセットの特定の組合せを用いると
1M限界を越えるアドレスを得ることができる。8088及び
8086マイクロプロセッサは可能なアドレスの範囲を1Mま
でに制限するよう設計されたが80286マイクロプロセッ
サにはそのような保護機構がない。80286マイクロプロ
セッサはメモリ・アドレスに対する1M制限を厳格に維持
するわけではないのでこの方法を80286プロセッサと共
に使用すると、ハイ・メモリ・エリア(HMA)903と呼ば
れる、1Mの真上に位置する追加の64Kのメモリをアクセ
スできるようになる。
この方法を使用するためには、まず、セグメント・ア
ドレッシング方式を使用する時に最初の16ビットのセグ
メントを格納するのに使用される「セグメント・レジス
タ」と呼ばれるレジスタにFFFFHをロードする。その
後、「オフセット・レジスタ」と呼ばれるレジスタに10
HとFFFFHの間の値をロードする。そうすると、マイクロ
プロセッサはコンベンショナル・メモリ901へのアクセ
スであるかのようにハイ・メモリのアクセスを実行す
る。
この従来技術の第4の方法にはそれに関連する欠点が
ある。この方法は8088又は8086マイクロプロセッサに基
づくコンピュータでは機能しないので、初期のPCやその
互換機では使用できない。また、この方法によってもた
らされるメモリの量は64Kに限られる。さらに、アプリ
ケーション・ソフトウェアはHMAをアロケートし、アク
セスするよう特別に作成しなければならず、セグメント
計算やHMAへの直接のディスク読み書きを含むHMAアクセ
スに関する制約に違反してはならない。また、この方法
は広く知られており、この方法を使用してより多くのメ
モリを取得するソフトウェアが作成されているので、こ
の方法によってもたらされるメモリはおそらくほとんど
のコンピュータ・システムで他の用途に使用することが
できない。
従来技術の第5の方法ではメモリをページに分割し、
データをアクセスする時にその望みのデータを含むペー
ジがアクセス可能なメモリに確実に含まれるようにす
る。この方法には2つのバリエーションがある。第1の
バリエーションはエクスパンデッド・メモリ仕様(Expa
nded Memory Specification:EMS)と呼ばれる。EMSを第
12図に示す。EMSはエクステンデッド・メモリから予約
メモリ領域1202内のページ・フレーム1203にバンク切換
してどの時点でも1M未満のメモリ空間に1つ又は少数の
ページしか存在しないのに大量のエクステンデッド・メ
モリを使用できるようにする。EMSと共に使用する時に
はエクステンデッド・メモリをエクスパンデッド・メモ
リ1204と呼ぶ。第2のバリエーションは仮想メモリと呼
ばれる。仮想メモリを第10図に示す。仮想メモリを用い
るシステムの可能なメモリ・マップの1つを第11図に示
す。仮想メモリを使用すると物理メモリ1002に格納でき
ない情報をハード・ディスク・ドライブなどのI/Oデバ
イスに記憶できるようになる。データはページに分割さ
れCPU1001が必要とする時だけにディスク・ドライブか
ら物理メモリにロードされる。したがって、大量のデー
タ・ページをハード・ディスクに記憶できるとともに物
理メモリ1002にわずかのページを保持するだけでよい。
EMSを使用するためにはエクスパンデッド・メモリ120
4をページに分割しなければならない。また、予約メモ
リ内の1領域をページ・フレーム1203として使用するた
めにアロケートしなければならない。ページの内容とエ
クスパンデッド・メモリ内でのロケーションを含むペー
ジのディレクトリを維持しなければならない。一旦EMS
が初期設定され動作状態になったならば、EMSをサポー
トするソフトウェアは望みのEMSデータがEMSページ・フ
レーム1203に含まれるようにするためにメモリ・アクセ
スを監視しなければならない。望みのEMSデータがアク
セスの時点でEMSページ・フレーム1203に含まれない場
合、EMSをサポートするソフトウェアは望みのデータの
ための余地を作るためにページ・フレーム1203のうちの
どのページをページ・フレームからバンク切り替えして
追い出すかを決定しなければならない。その後、このソ
フトウェアはエクスパンデッド・メモリ1204から適当な
ページを見つけなければならない。その後、この適当な
ページをページ・フレーム1203のうちの使用可能なペー
ジにロードしなければならない。その後、ページ・フレ
ーム1203内の適当なアドレスへメモリ・アクセスをリダ
イレクトして望みのデータを読み書きできるようにしな
ければならない。
仮想メモリ・システムを使用するためにはハード・デ
ィスク上にアロケートされた仮想メモリ1003をページに
分割しなければならない。ページの内容とメモリ内のロ
ケーションを含むページのディレクトリを維持しなけれ
ばならない。一旦仮想メモリ・システムが初期設定され
動作状態になったならば、仮想メモリ・システムは望み
のデータが物理メモリ1002に含まれるようにするために
メモリ・アクセスを監視しなければならない。望みの仮
想メモリ・データがアクセスの時点で物理メモリ1002に
含まれない場合、仮想メモリ・システムは将来アクセス
される可能性が最も低いメモリのページを判定しなけれ
ばならず、それらをハード・ディスクに書き戻さなけれ
ばならない。その後、仮想メモリ・システムはハード・
ディスクの仮想メモリ1003から適当なページを見つけな
ければならない。その後、適当なページを物理メモリ10
02の選択されたページにロードしなければならない。そ
の後、新たにロードされたページ内の適当なアドレスに
メモリ・アクセスをリダイレクトして望みのデータを読
み書きできるようにしなければならない。
EMSと仮想メモリ・システムには類似性があるが、仮
想メモリ・システムは一般にEMSよりはるかに自動的に
アプリケーション・ソフトウェアに対して透明に動作す
る。アプリケーション・ソフトウェアは、仮想メモリ・
システムの場合、その存在すら意識せずにコンピュータ
・システム上でアクティブになる場合があるが、EMSの
場合、アプリケーション・ソフトウェアはEMSの存在を
認識するだけではなく特別にEMSをサポートしEMSの動作
を指令しなければならない。
この従来技術の第5の方法は理論的にはより大量のメ
モリのアクセスを可能にする能力を持っているが欠点も
ある。この方法を用いるとメモリ管理にCPUタイムを割
かなければならないのでメモリ・アクセス・タイムが増
加する。記録を継続的に更新してページ・フレーム1203
とエクスパンデッド・メモリ1204の両方でのページの位
置とその内容を示さなければならない。これらの動作は
CPUが他のタスクに当てることのできるはずのタイムを
奪い、したがって、性能を低下させる。
従来技術の第6の方法ではROMの圧縮と最適化を使用
する。この方法は一般的に適用することができず、ROM
のそれぞれの改訂版ごとに人間が実行しなければならな
い。この方法の目的はROMの占有するメモリ空間の量を
減らし、その結果ROMにアロケートされているが未使用
のメモリ空間を他の目的のために再アロケートできるよ
うにすることである。非効率的なコードとROMのうちで
絶対にアクセスされない部分とを発見し除去することに
よって、ROMが占有するメモリ空間を減らす。
この方法は特定のROMのそれぞれに別々の形で適用し
なければならないのでこの方法の詳細を一般的に説明す
ることはできない。この方法を使用するためには既存の
ROMのコードとデータを注意深く検査し、変更又は削除
しなければならない領域を突き止めなければならない。
その後、これらの変更を行った後にROMのコードとデー
タを再アセンブルしなければならない。その後、小さく
なった新しいROMコードを元のROMの部分の上にマッピン
グしなければならない。また、この方法によって使用可
能にされたメモリ空間を他の目的に使用できるようにす
るための用意も必要である。
この方法の明らかな欠点は一般的に適用できないこと
である。この方法に基づく製品は新しいROM改訂版が発
表された途端に旧式になる。また、ROMのそれぞれの各
改訂版の圧縮と最適化を実行するにはかなりの時間と労
力と技能が必要である。
従来技術の第7の方法では予約メモリ領域に常駐する
ことになるTSRの初期設定のために予約メモリ領域内に
追加のメモリを一時的に供給する。予約メモリ領域にマ
ッピングされているメモリ内にTSRを置くことによっ
て、そうでなければそれらのTSRが使用するばずのコン
ベンショナル・メモリ空間をアプリケーション・プログ
ラムが使用できる。しかしながら、TSRは典型的に初期
設定されるときに単に常駐している時よりも多くのメモ
リを必要とする。時にはEMSをインストールしそのペー
ジ・フレームが予約メモリ領域内のメモリ空間を占有す
る時などにある、TSRを初期設定するのに十分な使用可
能予約メモリ空間がない場合がある。従来技術のこの方
法はEMSページ・フレームのためにアロケートされた予
約メモリ空間からスペースを借りることによってこの問
題を克服する。TSRがその初期設定を完了し、そのスペ
ースがもはや不要になった後にそのスペースがEMSに返
される。
従来技術のこの方法にも、欠点がある。まず、この方
法はTSRにしか適用できない。TSRのないシステムやごく
小数のTSRしかないシステムがあり、これらのシステム
ではこの方法からはほとんど利益を得られない。また、
この方法から得られる利益の量はTSRによって変化す
る。あるTSRが初期設定のために追加のメモリを必要と
しない場合、この方法からはほとんど利益を得られな
い。
従来技術の第8の方法ではLOADALLコマンドを使用し
てリアル・モード・プログラムを80286マイクロプロセ
ッサのプロテクト・モードで走らせる。その目的は8028
6マイクロプロセッサにリアル・モードでの固有のメモ
リ・マッピング能力がないという事実にもかかわらずEM
Sをエミュレートすることである。リアル・モード・プ
ログラムがセグメント・レジスタをロードしようとする
時に一般保護例外が発生する。この方法は一般保護例外
ハンドラを使用してセグメント・レジスタをセレクタに
変換し、予期されないプロセッサ・モードをプログラム
に対して透明にする。これらの能力を80286マイクロプ
ロセッサで実現するためにこの方法はLOADALL命令に頼
る。
LOADALLコマンドは80286マイクロプロセッサの非公開
・非サポートの機能である。これは8088,8086,80386又
は80486マイクロプロセッサではサポートされない。こ
れは明らかにマイクロプロセッサの製造と試験を助ける
ものとして80286マイクロプロセッサだけに実施された
コマンドである。したがって、LOADALL命令は将来に製
造される80286マイクロプロセッサでサポートされると
いう保証すらない。LOADALL命令はシステム・ソフトウ
ェア又はアプリケーション・ソフトウェアでの使用を目
的としたものではない。
従来技術の第8の方法を使用するためには以下の処理
を実行しなければならない。第1に、割り込みを禁止し
なければならない。第2に、ロケーション00800Hから始
まる102バイトをセーブしなければならない。第3に、
全レジスタをセーブしなければならない。次に、アクセ
スしようとする外部メモリの領域を指定するディスクリ
プタ・キャッシュ・ベース・アドレスを含む望みのレジ
スタ値をロケーション00800Hから始まる102バイトのメ
モリにロードしなければならない。この後に、LOADALL
オペコード(0FH 05H)を実行しなければならない。次
に、エクステンデッド・メモリの読み取り又は書き込み
を実行するが、この時にはアドレス・オフセットだけを
使用しセグメント・ベース・アドレスを変更してはなら
ない。この後に、記憶しておいた全レジスタの値を取り
出し、ロケーション00800Hから始まる102バイトのメモ
リにロードしなければならない。次に、LOADALLオペコ
ード(0FH 05H)を実行してレジスタとディスクリプタ
・キャッシュの以前の内容を復元しなければならない。
その後、00800Hから始まるメモリの102バイトの内容を
取り出し、復元しなければならない。最後に、割り込み
を許可し直さなければならない。
従来技術の第8の方法には多数の欠点がある。まず、
LOADALL命令は80286ベースのコンピュータ・システムで
なければ機能せず8088,8086,80386又は80486ベースのコ
ンピュータ・システムでは機能しない。LOADALL命令は
非公開で非サポートであるからLOADALL命令が将来に製
造される80286マイクロプロセッサで機能するという保
証はない。一般に非公開又は非サポートのハードウェア
機能に頼るのは受け入れられない行動である。さらに、
LOADALL命令は絶対メモリ・アドレス00800Hにあるデー
タの操作を必要とする。LOADALL命令を実行する前にこ
の領域のメモリに含まれるデータを保存するために何ら
かの手だてを講じない限りシステム・ソフトウェアがダ
メージを受ける可能性がある。また、この方法によれば
すべてのタイプのシステム動作の間に一般保護例外が発
生する。この例外をサービスする必要があるがこれには
CPUタイムというコストがかかり、したがって、ほとん
どのタイムでシステム性能がかなり低下する。
従来技術のもう1つの方法はアップルIIコンピュータ
で使用する16K−RAMカードに関連するものである。アッ
プルIIコンピュータは6502マイクロプロセッサをベース
とする。6502マイクロプロセッサのアドレス・バスは16
ビットであり64Kのアドレス空間をサポートする。しか
し、アップルIIが市場に導入された時点ではRAMデバイ
スのコストが高かったので下位48Kのアドレス空間だけ
がRAMを用いて使用するようになっていた。この48KのRA
Mの上位に、I/Oメモリに当てられた4Kの領域があった。
残りの12Kはアドレス空間の最上位領域にありROMを用い
て使用するようになっていた。
アプリケーション・ソフトウェアが徐々に大量のRAM
を必要とするようになるのにつれてその48Kの限界を越
えてRAMを拡張する方法が必要になった。RAMの量を増や
すために16K−RAMカードが導入された。16K−RAMカード
には16KのRAMが搭載され、このRAMは64Kアドレス空間の
上位16Kにマッピングでき、4KのI/Oメモリと12KのROMと
入れ替えることができた。追加の16KのRAMを使用できる
ようにするためには、まず、I/OメモリとROMをアドレス
空間の上位16Kから取り除かなければならなかった。こ
れはメモリ・デバイスに関連するアドレス復号ロジック
を変更することによって達成できた。その後、16KのRAM
のアドレス復号ロジックをイネーブルすることによって
そのRAMを16Kのアドレス空間にマッピングできた。
16K−RAMカードをイネーブルすると64Kのアドレス空
間が64KのRAMで満たされた。その時点では4KのI/Oメモ
リも12KのROMもアクセスできなかった。I/OメモリとROM
が使用できないのでアプリケーション・ソフトウェアは
16K−RAMカードがイネーブルされている間にコンピュー
タ・システムの完全な制御を維持しなければならず、制
御を解放する前にI/OメモリとROMを確実にイネーブルし
直さなければならなかった。また、アプリケーション・
ソフトウェアは16K−RAMカードがイネーブルされている
間にI/OデバイスやROMルーチンをアクセスすることがで
きなかった。16K−RAMカードがイネーブルされている間
にアプリケーション・ソフトウェアが制御を解放するか
I/Oデバイス又はROMルーチンをアクセスしようとしたな
らば、システムがクラッシュした。というのはその時点
で望みのI/OデバイスもシステムROMもそのコンピュータ
・システムのアドレス空間に存在しなかったからであ
る。この方法はアプリケーション・ソフトウェアによる
このような注意深い制御と監視を必要としたので確かに
アプリケーション・ソフトウェアの動作に対して透明で
はなかった。16K−RAMカードの存在を特に認識しその特
徴を注意深く使用するようにアプリケーション・ソフト
ウェアを作成しなければならなかった。
本発明はアプリケーション・ソフトウェアに透明な形
でROMアドレス空間を再利用するための方法を提供する
ことによって、この従来技術の方法の制限を克服する。
本発明を特にサポートするようにアプリケーション・ソ
フトウェアを記述する必要はなく、本発明の存在や動作
を意識する必要もない。したがって、本発明は従来技術
の方法よりはるかに役に立ち、用途の広い、ROMアドレ
ス空間再利用方法を提供する。
[本発明] 本発明はROMメモリ・アドレスを640Kバイトと1メガ
バイトの間の予約メモリ領域に再割り振りすることによ
ってRAMをサポートするために使用できる追加のメモリ
・アドレス空間を提供する。この場合、元のメモリ・ア
ドレスをRAMに格納されているアプリケーション,TSRな
どをアドレスするために使用できる。
たとえば、8088/8086ファミリーのマイクロプロセッ
サ(80286,80386及び80486マイクロプロセッサを含むが
これらに限定されるものではない)をベースとし、MS−
DOSないしPC−DOSオペレーティング・システムの下で作
動するコンピュータ・システムに適用されたものとして
本発明を説明する。しかしながら、本発明の用途はこの
ようなコンピュータ・システムに限定されるものではな
い。本発明は特定のビデオ・ディスプレイ・アダプタの
構成を必要とするものではなく、すべてのビデオ・ディ
スプレイ・アダプタで作動する。さらに、本発明は特定
のROMの特定の改訂版に限定されるものではなく一般的
にほとんどのROMに適用できるものである。さらに、本
発明は特定のアプリケーション・ソフトウェアとともに
使用することに限定されるものではなくほとんどのアプ
リケーション・ソフトウェアに透過的に使用できる。ま
た、本発明は全体的なシステム・パフォーマンスの相当
程度の低下を回避する。このようにして、本発明はコン
ピュータ・システムで利用可能なメモリの量を増加させ
る従来技術の方法を大幅に改善するものである。
本発明を典型的なMS−DOSコンピュータに適用したも
のを第13図に示す。システムROM1301及びビデオROM1302
の位置はエクステンデッド・メモリ1303に移動されてお
り、これらが占めていたスペースは割り振り解放(deal
located)されている。したがって、未使用予約メモリ1
304の量は増加し未使用予約メモリ1305となっている。
本発明によればROM1306及びビデオROM1307にプロテクト
・モードであるいは予約メモリへマップすることによっ
てアクセス可能である。
本発明はコンピュータ・システムで使用されているマ
イクロプロセッサのセグメント化アドレス指定「リア
ル」モード及び「プロテクト」モードを利用する。セグ
メント化アドレス指定ならびにリアル・モード及びプロ
テクト・モードについては後で詳述する。
セグメント化アドレス指定を第3図に示す。セグメン
ト化アドレス指定において、アドレスは2つの部分で指
定される。最初の部分はセグメント301と呼ばれ、16ビ
ットの2進値である。第2の部分はオフセット302と呼
ばれ、これも16ビットの2進値である。アクセスする物
理メモリ306内で指定されたアドレスを決定するために
マイクロプロセッサはまずセグメント・レジスタの内容
に10Hを乗算する(303)がこれはセグメントの内容を左
へ4ビットシフトすることと等価である。次いで、この
値をオフセット・レジスタの内容に加算する(304)。
セグメント・レジスタをシフトしてからオフセット・レ
ジスタに加算することにより、幅20ビットのアドレスが
生成される。20ビットのアドレス・バスを通じてCPUに
アクセス可能なメモリの量は220であり、これは1024Kバ
イトすなわち1Mバイトに等しい。このアドレス指定方法
は80286,80386及び80486が「リアル」モードで作動して
いる場合にこれらによっても使用される。
80286,80386及び80486マイクロプロセッサは「リア
ル」モードでも「プロテクト」モードでも作動可能であ
る。プロテクト・モードにはリアル・モードにはない各
種の利点がある。まず、80286ではプロテクト・モード
で16Mバイトにアクセスすることができ、これはリアル
・モードでアクセス可能なメモリの量の16倍である。80
386及び80486ではプロテクト・モードはアドレス指定限
度をさらに増加させる。プロテクト・モードにおいて80
386及び80486は4096Mバイトすなわち4Gバイトをアドレ
スすることができこれは約40億メモリ・ワードにあた
る。
本発明は「プロテクト・モード」の実施例と呼ばれる
もの、あるいは「マッピング」の実施例呼ばれるものに
おいて実現可能である。
[プロテクト・モード] プロテクト・モードにおけるアドレス指定を第4図に
示す。16ビットのセグメント・レジスタの代わりに、プ
ロテクト・モードは16ビットのセレクタ401を使用す
る。セレクタはディスクリプタ・テーブル404の項目403
をポイントする。ディスクリプタ・テーブルはベース・
アドレスを指定するディスクリプタを含んでいる。8028
6のディスクリプタは24ビットのベース・アドレスを備
えており、80386及び80486のディスクリプタは32ビット
のベース・アドレスを備えている。これらのベース・ア
ドレスは8088/8086のセグメントと同じ機能を果たすが
より用途が広いものである。アクセスするメモリ406内
で指定されたアドレス405を決定するために8088/8086で
使用しているものと同様なオフセット402をディスクリ
プタ・テーブル404からベース・アドレスに追加する。
80386及び80486は「仮想86(V86)」モードという付
加的な機能を有している。仮想モードにおいてマイクロ
プロセッサが計算したアドレスはアドレス・バスにおか
れる実際のアドレスではないことがある。80386又は804
86が仮想モードでアドレスを計算する場合、32ビットの
線形アドレスのみを計算する。線形アドレスは次いで、
マイクロプロセッサのページング機構に渡され、該機構
は付加的な計算を行って物理メモリにおける最終アドレ
スを決定する。ページング機構によって実際の物理メモ
リのものと異なる構成でメモリをマップすることが可能
となる。物理メモリをページに分割することによって仮
想モードは物理メモリの各4Kバイトのブロックがそれ自
体の仮想アドレスを有することを可能とする。以下の説
明において「リアル・モード」という語は「仮想モー
ド」と言い換えることができる。好ましい実施例におい
て本発明は仮想モードを利用する。
本発明のプロテクト・モードの実施例によって本来シ
ステム504及びビデオROM505に割り振られている予約メ
モリ領域503のメモリ空間の再割り振り(reallocatio
n)が可能となる。プロテクト・モードでROMからの読み
込みを行うことによって本発明はROMのアドレス空間を
リアル・モードにおいて他の目的に使用することを可能
とする。
システム構成を初期化し、元のROMのアドレス空間を
再割り振りして、他の目的に利用できるようにし、ROM
のアクセスをインターセプトして、これらのアクセスが
再割り振りされたROMのアドレス空間に送られるように
し、かつROMのアクセスを処理して、ROMのアクセスが完
了し、システムがROMのアクセス後に実行を継続できる
ようにすることによって、本発明は実施される。
本発明のコンピュータ・システムの初期化を第14図の
流れ図に関して説明する。初期化ルーチンはステップ14
01から始まる。ステップ1401において移動対象のROMは
第5図の予約メモリ領域503の元のアドレス空間におか
れている。ステップ1403においてROMのコードにアクセ
スする割り込みハンドラが確認される。
ステップ1404においてROMのデータ・テーブル・アド
レス及び長さが確認される。ステップ1405において再割
り振りされたROMが使用する適切な割り振りされていな
い(unallocated)プロテクト・モード・アドレス空間
が確認される。このアドレス空間は連続していなければ
ならず、またROMのアドレス指定を完全にサポートする
のに適切なサイズのものでなければならない。このアド
レス空間は再割り振りされたROMが実行されるところで
ある。
ステップ1406において、エクステンデッド・メモリ内
の確認されたアドレス空間がROMに割り振られるので、
他の目的のためのアドレス空間を使用することによる衝
突が防止される。ROMは割り振られたメモリ・アドレス
空間にマップされる。
オプションのステップ1407においてグローバル及びロ
ーカル・ディスクリプタ・テーブル(GDT/LDT)がROMが
マップされている新しいアドレス空間に対して事前に割
り振りされる。
ステップ1408においてコンベンショナル・メモリがRO
Mデータ・テーブルのコピーを保持するために割り振ら
れる。ステップ1409においてROMデータ・テーブルがコ
ンベンショナル・メモリにコピーされる。ステップ1410
においてコンベンショナル・メモリ内のアドレス空間が
割り込みハンドラ・ルーチンに割り振られる。ステップ
1411において割り込みハンドラ・ルーチンが割り振られ
たアドレス空間にインストールされる。ステップ1412に
おいてROMデータ・テーブルに対するポインタがコンベ
ンショナル・メモリ内のコピーにリダイレクトされる。
オプションのステップ1413においてROMのアドレスは
エクステンデッド・メモリによってオーバーレイされ
る。ステップ1414において制御がオペレーティング・シ
ステムに戻される。
ROMデータ・テーブルに対する照会がすべて見つから
なかった場合あるいはこれらがすべて見つからないよう
なことを回避したい場合には上記の手順の変形を行う。
その位置に関して公表されている情報を照会するかある
いはROMの内容の分析によるかのいずれかによってROMデ
ータ・テーブルの位置を捜し出してから、元のROMアド
レス空間のこれらが占める部分をこれらに予約されてい
るものとすることができる。次いで、プロテクト・モー
ドの機能を使用してROMデータ・テーブルを元のROMアド
レス空間内の元の位置に復元することができる。ROMデ
ータ・テーブルは元のROMアドレス空間の元の位置にマ
ップされる。マイクロプロセッサはプロテクト・モード
のリング・ゼロにおかれている。グローバル及びローカ
ル両方のディスクリプタ・テーブル(GDT/LDT)はROMデ
ータ・テーブルが占める元のROMアドレス空間の部分に
設定される。プロセッサはプロテクト・モードを終了
し、リアル・モードへ戻るようになされる。ROMデータ
・テーブルが占める部分以外の元のROMアドレス空間は
割り振り解放され、他のリアル・モードでの目的に使用
できるようになる。割り振りされていない適切なエクス
テンデッドRAMを見つけだし、元のROMアドレス空間を割
り振り解放済みの予約メモリ503に収める必要がある。
このRAMは次いで予約メモリ内の元のROMアドレス空間に
割り振られ、マップされる。
必要なステップをすべて行って本発明のプロテクト・
モードの実施例で使用するためにコンピュータ・システ
ムを初期化した後、予約メモリ503内の元のROMアドレス
空間にマップされているRAMをTSR,デバイス・ドライバ
又はネットワーク・インタフェース・プログラムの再配
置を含む各種の目的に使用することができる。ROMの呼
出しを含めコンピュータ・システムの作動のすべてのフ
ェーズの間新しいRAMは元のROMアドレス空間にマップさ
れたままとなる。
システムが再構成され予約メモリ503内の元のROMアド
レス空間の再割り振りが可能となってからROMアクセス
・インタセプタが使用される。システムの何らかのソフ
トウェアがROMへのアクセスを試みた場合、ROMアクセス
・インタセプタが試みられたアクセスをインターセプト
し、ROMアクセス・ハンドラを活性化してROMのコード又
はデータにアクセスできるようにしなければならない。
ほとんどのROMのルーチンがソフトウェア割り込みによ
ってアクセスされるものであるから、ROMのアクセスを
インターセプトするもっとも簡単な方法は上述のように
割り込みテーブルを変更することである。アプリケーシ
ョン・ソフトウェアの中には割り込みを使用せずに直接
ROMへのアクセスを試みるものがあるため、ROMのアドレ
スに対する照会についてアプリケーション・ソフトウェ
アを調べ、これらの照会をリダイレクトして、アプリケ
ーション・ソフトウェアがエクステンデッド・メモリ内
の新しいROMイメージにアクセスするようにすることが
望ましい。
もちろん、ROMデータ・テーブルを元の位置に保持し
ておくという上述の代替手順を使用した場合にはROMデ
ータ・テーブルにアクセスしようとするROMアクセスを
行うことができ、インターセプト及びリダイレクトは行
われない。
ROMアクセス・ハンドラはエクステンデッド・メモリ
内の新しいROMイメージにアクセスし、ROMの実行を収納
し、ROMアクセスの完了後にアプリケーション・ソフト
ウェアの実行を継続できる状態にコンピュータ・システ
ムを復元する方法を提供する。
ROMアクセス・ハンドラの作動を示す流れ図を第15図
に示す。プロセスはステップ1501から始まる。ステップ
1502においてアクセスされる特定の割り込みサービス・
ルーチンに対するROMアクセス・ハンドラはCPUをリング
・ゼロというプロテクト・レベルでプロテクト・モード
にする。オプションのステップ1503において割り込みの
サービスはROMへ行かずに行われ、制御が呼出しプログ
ラムに戻される。オプションのステップを実行しない場
合、プロセスは次のようになる。
ステップ1504において必要ならば新しいプロテクト・
モード・セレクタを反映するように入力リアル・モード
・セグメント・レジスタが調節される。ステップ1505に
おいて、ROMが戻るアドレスがプロテクト・モード・ス
タックに設定される。
ステップ1506においてリング・スリー・プロテクト・
モードのCS:IPを変更し、再配置されたROM入口点をポイ
ントするようにする。ステップ1507において該当するIO
PLを設定する。ステップ1508において再配置されたROM
入口点でリング・スリー・プロテクト・モードに移行す
る。
ステップ1509においてROMは実行可能とされ、障害が
あればそれを処理する。ステップ1510においてROMは制
御をステップ1505で設定されたアドレスに戻す。ステッ
プ1511において再度プロテクト・モードへ移行し、ルー
チンを終了する。
ステップ1512においてリアル・モードのCS:IPを変更
し、呼出しプログラムの戻りアドレスをポイントするよ
うにする。必要に応じステップ1513において戻りポイン
タを変更し、リダイレクトされたROMデータをポイント
するようにする。ステップ1514において呼出しプログラ
ムの戻りアドレスでリアル・モードに移行する。
[マッピングの実施例] 本発明のマッピングの実施例も当初ROMに割り振られ
ていた予約メモリ503のアドレス空間を他の用途に再割
り振りすることを可能とする。しかしながら、本発明の
マッピングの実施例はプロテクト・モードを使用するこ
とを必要とするものではなく、したがって、プロテクト
・モードの作動をサポートしていない8088及び8086マイ
クロプロセッサとの互換性を有し、プロテクト・モード
動作をサポートしない。本発明のマッピングの実施例は
80386又は80486マイクロプロセッサのプロテクト・モー
ドを必要としないがメモリ空間を再マップする機能は必
要である。80386及び80486においてこの機能はV86仮想
モードによって提供される。8088、8086及び80286マイ
クロプロセッサにおいてこの機能はエクスパンデッド・
メモリ仕様(EMS)ボード又はその他のメモリ管理ハー
ドウェアのいずれかによって提供される。
本発明の初期化ルーチンのマッピングの実施例を示す
流れ図を第16図に示す。プロセスはステップ1601から始
まる。ステップ1602においてアドレス空間が再割り振り
されるROMを捜し出す。
ステップ1603においてROMコードにアクセスする割り
込みハンドラが確認される。ステップ1604においてROM
データ・テーブルのアドレス及び長さが確認される。
ステップ1605においてROMが実行されるEMSのページ・
フレームのリアル・モード・アドレス空間が割り振られ
る。オプションのステップ1606においてROMのアドレス
をオーバーレイするために使用するエクステンデッド・
メモリが割り振られる。
ROMのデータ・テーブルはステップ1607においてコン
ベンショナル・メモリにコピーされる。ステップ1608に
おいて割り込みハンドラのインターセプトが配置され
る。ステップ1609においてROMデータに対するポインタ
がコンベンショナル・メモリ内のデータのコピーをポイ
ントするようにリダイレクトされる。オプションでステ
ップ1610においてROMアドレスがエクステンデッド・メ
モリによってオーバーレイされる。制御はステップ1611
においてオペレーティング・システムに戻される。
ROMデータ・テーブルに対する照会がすべて見つから
なかった場合、あるいはこれらがすべて見つからないよ
うなことを回避したい場合には上記の手順の変形を行
う。その位置に関して公表されている情報を照会する
か、あるいはROMの内容の分析によるかのいずれかによ
ってROMデータ・テーブルの位置を捜し出してから、元
のROMアドレス空間のこれらが占める部分をこれらに予
約されているものとすることができる。ROMデータ・テ
ーブルは元のROMアドレス空間の元の位置にマップされ
る。ROMデータ・テーブルが占めるスペース以外の予約
メモリ内の元のROMアドレス空間は割り振り解放され、
他のリアル・モードでの目的に使用できるようになる。
割り振りされていない適切なエクステンデッドRAMを見
つけだし、元のROMアドレス空間を割り振り解放済みの
予約メモリ503に収める必要がある。このRAMを次いで割
り振らなければならない。このRAMを予約メモリ503内の
割り込み解除されたROMアドレス空間にマップしなけれ
ばならない。
第16図の初期化ルーチンが一回完了すると、コンピュ
ータを正常に使用することができ、また当初ROMが占め
ていたメモリ空間をTSR,デバイス・ドライバ及びネット
ワーク・インターフェース・プログラムの再配置を含む
他の用途に割り振ることができる。
マッピングの実施例のROMアクセス・インタセプタはR
OMを照会するすべての命令をインターセプトし実行が混
乱するのを防止しなければならない。ほとんどのアプリ
ケーション・ソフトウェアがソフトウェア割り込みによ
ってROMコードにアクセスしているため割り込みテーブ
ルを修正することによって、ROMコードに対する呼出し
をインターセプトし、リダイレクトすることが可能であ
る。ROMデータ・テーブルに対する照会をリダイレクト
することが望ましいので、ソフトウェアを調べ、ROMデ
ータ・テーブルに対するアクセスの試みを捜し出さなけ
ればならず、またROMデータ・テーブル・ポインタに対
する変更を行って、アクセスが適切にリダイレクトされ
るようにしなければならない。ROMデータ・テーブルを
元の位置に保持しておくという上述の代替手順を使用し
た場合にはROMデータ・テーブルにアクセスしようとす
るROMアクセスを行うことができ、インターセプト及び
リダイレクトは行われない。ROMアクセス・インタセプ
タはROMアクセスの試みをインターセプトした場合には
実行をROMアクセス・ハンドラに渡す。
本発明のROMアクセス・ハンドラのマッピングの実施
例を第17図の流れ図に示す。流れ図はステップ1701から
操作を開始する。
ステップ1702においてアクセスされる特定の割り込み
サービス・ルーチンのためのハンドラに対するプロテク
ト・モードへの移行が行われる。オプションのステップ
1703においてROMへ進むことなくサービスが行われ、シ
ステムは次いで呼出しプログラムに戻る。オプションの
ステップ1703を行わない場合にはプロセスは次のように
継続する。
ステップ1704においてページ・フレームの現行のマッ
ピングが呼出しプログラムのリアル・モード・スタック
にオプションでセーブされる。ステップ1705においてRO
Mが戻るアドレスがリアル・モード・スタックに設定さ
れる。ステップ1706においてリアル・モードCS:IPを変
更し、再配置されたROM入口点をポイントする。ステッ
プ1707においてROMがページ・フレームにマップされ
る。ステップ1708において再配置されたROM入口点にお
けるリアル・モードへの移行が行われる。ROMはステッ
プ1709において実行可能となる。
ステップ1710において制御はステップ1705で設定され
たアドレスに戻される。システムはプロテクト・モード
へ再移行し、ステップ1711でルーチンを終了する。ステ
ップ1712においてリアル・モードCS:IPを変更し、呼出
しプログラムの戻りアドレスをポイントする。
必要に応じステップ1713において戻りポインタを修正
し、リダイレクトされたROMデータをポイントするよう
にする。ページ・フレームの元のマッピングはステップ
1714において呼出しプログラムのリアル・モード・スタ
ックに格納されているデータからオプションで復元され
る。ステップ1715においてシステムは呼出しプログラム
の戻りアドレスでリアル・モードに再移行する。
CPUのプロテクト・モードを使用した本発明の実施形
態は多数の利点をもたらすものであるが、ROMは通常プ
ロテクト・モードではなくリアル・モード(又はV86モ
ード)で作動している。ROMにはリアル・モードでアク
セスするものとしているシステム・ソフトウェア及びア
プリケーション・ソフトウェアとの互換性を維持するた
め、プロテクト・モードでアクセスされるROMに対して
リアル・モードの作動をシミュレートするステップを行
わなければならない。
本発明をセグメント・レジスタのローディング時の試
みをトラップする方法を含むように実施することができ
る。CPUがプロテクト・モードであるときにセグメント
・レジスタをロードしようとする試みをCPUによって検
出し、一般保護例外ハンドラ(general protection exc
eption handler)に対する呼出しを自動的に行う。一般
保護例外ハンドラはプロテクト・モードの規則に違反す
る命令の位置を戻す。
これが発生するのを補うために一般保護例外ハンドラ
が指定した位置にある命令を調べデコードする。デコー
ディングはすべての命令のオペコード(opcode)を含ん
でいるルックアップ・テーブルにある命令のオペコード
を調べることによって行われる。命令の分析によりリア
ル・モードにおいて命令が意図している効果を判断する
ことができ、かつ意図している効果をプロテクト・モー
ドでエミュレートすることができる。意図している効果
がもたらされるので障害をもたらしたコードを適切に動
作させることができ、実行がそのコードに渡されそのコ
ードを完了することが可能となる。
本発明が適切に作動できるようにするため、I/O命令
をトラップしI/O特権レベル(I/O Privelege Level)IO
PLの特権レベルを高くできるので(低い特権レベル番号
で表される)IOPLセンシティブI/O命令を実行しようと
いう試みは一般保護例外障害をもたらす。発生した障害
を処理し、これが本発明の動作と衝突しないようにする
ことができる。
いくつかのマイクロプロセッサの割り込みフラグは注
意をほとんど必要としない態様で作動するが、I/O命令
をトラップする場合などのようにI/O特権が拒否された
場合、割り込みフラグの動作が異なるものとなることが
ある。割り込みフラグに関連したある種のマイクロプロ
セッサの命令はI/Oレベルに敏感である(IOPL−sensiti
ve)。80286又は80386マイクロプロセッサ・ベースのシ
ステムにおいて、I/O特権が拒否された場合に割り込み
可能フラグ・クリア(clear interrupt enable flag)C
LI命令又は割り込み可能フラグ設定(set interrupt en
able flag)STI命令の実行を試みると一般保護例外障害
が生じる。
本発明は割り込みフラグを変更するソフトウェアによ
る試みの監視、ならびに適切な割り込みフラグの挙動の
エミュレーションの問題を解決する方法も含んでいる。
これらの問題はプロテクト・モードにおけるPOPF及び割
り込み戻り(interrupt return)IRET命令の不適切な動
作によって生じる。POPF命令は最上位のワードをスタッ
クから取り出し、その内容をCPUのフラグ・レジスタに
入れるものであると考えられる。IRET命令は上位3ワー
ドをスタックから取り出し、そのワードの内容をCPUフ
ラグ・レジスタに入れる。しかしながら、プロテクト・
モードではPOPF命令もIRET命令も割り込みフラグを変更
しないし、また一般保護例外も発生しない。それ故、コ
ンピュータがプロテクト・モードのときに割り込みフラ
グのリアル・モードでの挙動をエミュレートするために
一般保護例外ハンドラを使用すると完全なエミュレーシ
ョンは行われず、適正な作動が行われなくなる。
従来、POPF命令をトラップできなかったため、満足で
きるリアル・モードのエミュレーションを提供できたも
のは誰もいない。「DOS Protected Mode Interface Spe
cification,Version 1.0」には次のように記載されてい
る。「...クライアントはIRET(D)又はPOPFを使用し
て、割り込みフラグを変更できないが、これはこれらの
命令が物理的割り込みフラグにアクセスするものであ
り、クライアントの特権レベルのためCPUによって無視
されるからである。」 本発明の特徴の1つはPOPF及びIRET命令に一般保護例
外を発生させることである。本発明は一般保護例外ハン
ドラのみに依存する代わりに、代替方法を使用してPOPF
命令又はIRET命令をトラップすることによってプロテク
ト・モード時にリアル・モードの挙動の適切なエミュレ
ーションを提供する。
POPF命令又はIRET命令が普通、プログラム内のコード
の予測可能なシーケンスの一部として使用されているの
で、本発明はこの規則性を利用してPOPF命令をトラップ
する。
普通は、プログラムはPUSHF命令を使用してフラグ・
レジスタの内容をセーブし、CLI又はSTI命令を使用して
割り込みをロックし、割り込みがロックされている間に
各種のコードを実行し、その後、POPF命令を使用してフ
ラグ・レジスタの内容を復元している。
POPF命令をトラップするためにCLI又はSTI命令の実行
によってもたらされる一般保護例外が生じる場合には、
常にスタックの限界を現行のスタック・ポインタと等し
く設定する。このようなスタックの限界を設けた場合、
POPF又はIRETを実行するとスタックの限界を越え、これ
によって、一般保護例外が発生する。
本発明は第5図に示すようにマップされたメモリ・ア
ドレスを有するコンピュータ・システムに限定されるも
のではない。たとえば、ROM用に予約されたメモリ・ア
ドレスが他の位置にあることがある。たとえば、PS/2な
どのオペレーティングシステムの場合、ROM用のメモリ
・アドレスは0E000などの位置に予約されている。
本発明はマッピング方法にプロテクト・モードを利用
しているが、これは必須ではない。マッピング方法のた
めにプロテクト・モードとすることを必要としない他の
メモリ管理システムを使用することができる。
したがって、パフォーマンスを大幅に劣化させること
がなく、またCPU,ROM又はアプリケーションのいずれに
も特有のものではない態様で容易にアクセスできるメモ
リをより多く利用可能にする方法が提供される。
フロントページの続き (56)参考文献 小高輝真,“用途別最適RAM利用 術”,月刊アスキー,株式会社アスキ ー,平成3年6月,第15巻,第6号, p.218−219 (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/06

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】リアル・モード及びプロテクト・モードで
    作動可能なプロセッサを有し、読み取り専用メモリ(RO
    M)のために予約されているメモリ・アドレス空間を含
    む第1の範囲のメモリ・アドレス空間、コンベンショナ
    ル・メモリとして指定されているメモリ・アドレス空間
    およびエクステンデッド・メモリ・アドレス空間とを有
    するコンピュータ・システムにおいて、前記プロセッサ
    によって前記の第1範囲のメモリ・アドレス空間を利用
    する方法において: 前記第1範囲のメモリ・アドレス空間内のROMのアドレ
    スを確認し; 前記ROMにアクセスするための割り込みハンドラを確認
    し; 前記ROMに格納されているROMデータ・テーブルのアドレ
    スを確認し; 前記第1範囲のメモリ・アドレス空間にある前記ROMを
    前記エクステンデッド・メモリ・アドレス空間に割り振
    るとともにマツプし; 前記ROMデータ・テーブルを前記コンベンショナル・メ
    モリにコピーし; 前記割り込みハンドラに対するアドレス空間を前記コン
    ベンショナル・メモリ内に割り振り; 前記割り込みハンドラを前記割り振られたアドレス空間
    にコピーし; 前記コピーされた割り込みハンドラと、前記コンベンシ
    ョナル・メモリ内にコピーされた前記ROMデータ・テー
    ブルとを対応付けし; 前記第1範囲のメモリ・アドレス空間内の前記ROMアド
    レスをエクステンデッド・メモリによってオーバーレイ
    する; ステップからなる方法。
  2. 【請求項2】前記ROMに対するグローバル及びローカル
    ディスクリプタ・テーブル自体を前記エクステンデッド
    ・メモリ・アドレス空間内に作成するステップをさらに
    含んでいる特許請求の範囲第1項記載の方法。
  3. 【請求項3】前記プロセッサを第1保護レベルのプロテ
    クト・モードにし; 戻りアドレスを前記プロテクト・モードのスタック上に
    設定し; コードセグメント:命令ポインタ(CS:IP)を変更し
    て、再配置されたROM入口点をポイントするようにし; 前記プロセッサを前記プロテクト・モードの第2保護レ
    ベルとし; 前記ROMアクセスを実行し; 制御を前記戻りアドレスに戻し; 前記CS:IPを呼び出しプログラムの戻りアドレスに変更
    し; 前記ROMアクセスの実行の出力を調べ、必要に応じ、該
    出力を修正し; 前記プロセッサを前記リアル・モードとする; ステップをさらに含んでいる特許請求の範囲第1項記載
    の方法。
  4. 【請求項4】リアル・モード及びプロテクト・モードで
    作動可能なプロセッサを有し、読み取り専用メモリ(RO
    M)のために予約されているメモリ・アドレス空間を含
    む第1の範囲のメモリ・アドレス空間、コンベンショナ
    ル・メモリとして指定されているメモリ・アドレス空間
    およびエクステンデッド・メモリ・アドレス空間とを有
    するコンピュータ・システムにおいて、前記プロセッサ
    によって前記の第1範囲のメモリ・アドレス空間を利用
    する方法において: 前記第1範囲のメモリ・アドレス空間内のROMのアドレ
    スを確認し; 前記ROMにアクセスするための割り込みハンドラを確認
    し; 前記ROM内のROMデータ・テーブルのアドレスを確認し; ROMが実行されるエクスパンデッド・メモリ仕様(EMS)
    ページ・フレームに対するリアル・モードのアドレスを
    割り振り; 前記ROMデータ・テーブルをコンベンショナル・メモリ
    にコピーし; 前記コンベンショナル・メモリ内のアドレス空間を前記
    割り込みハンドラに割り振り; 前記ROMデータ・テーブルに対する前記割り込みハンド
    ラ内のポインタを修正し、前記コンベンショナル・メモ
    リ内の前記ROMデータ・テーブルのコピーをポイントす
    るようにし; 前記第1範囲のメモリ・アドレス空間内の前記ROMアド
    レスをエクステンデッド・メモリによってオーバーレイ
    する ステップからなる方法。
  5. 【請求項5】前記プロセッサを第1保護レベルのプロテ
    クト・モードにし; 前記EMSページ・フレームの現行のマッピングをセーブ
    し; 戻りアドレスを前記リアル・モードのスタック上に設定
    し; コード・セグメント:命令ポインタ(CS:IP)を変更し
    て、再配置されたROM入口点をポイントするようにし; 前記プロセッサを前記リアル・モードとし; 前記ROM内のコードを実行し; 制御を前記戻りアドレスに戻し; 前記CS:IPを呼び出しプログラムの戻りアドレスに変更
    し; 前記ROMアクセスの実行の出力を調べ、必要に応じ、該
    出力を修正し; 前記ページ・フレームの元のマッピングを復元し; 前記プロセッサを前記リアル・モードとする; ステップをさらに含んでいる特許請求の範囲第4項記載
    の方法。
JP50293493A 1991-07-15 1992-07-15 メモリ管理方法 Expired - Fee Related JP3268310B2 (ja)

Applications Claiming Priority (3)

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
PCT/US1992/005925 WO1993002417A1 (en) 1991-07-15 1992-07-15 Memory management method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001150838A Division JP3571667B2 (ja) 1991-07-15 2001-05-21 割り込みフラグ管理方法

Publications (2)

Publication Number Publication Date
JPH06508952A JPH06508952A (ja) 1994-10-06
JP3268310B2 true JP3268310B2 (ja) 2002-03-25

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 After (1)

Application Number Title Priority Date Filing Date
JP2001150838A Expired - Fee Related JP3571667B2 (ja) 1991-07-15 2001-05-21 割り込みフラグ管理方法

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小高輝真,"用途別最適RAM利用術",月刊アスキー,株式会社アスキー,平成3年6月,第15巻,第6号,p.218−219

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
KR0132696B1 (ko) 1998-04-24
NO940148L (no) 1994-03-14
CA2113565A1 (en) 1993-01-16
CA2113565C (en) 1998-05-05
JP2002024003A (ja) 2002-01-25
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
US11210239B2 (en) Protection key management and prefixing in virtual address space legacy emulation system
US8127098B1 (en) Virtualization of real mode execution
EP0288606B1 (en) Computer system employing a cpu having two mutually incompatible addressing modes
US6813522B1 (en) Method of sharing memory in a multi-processor system including a cloning of code and data
US7120778B2 (en) Option ROM virtualization
US7925818B1 (en) Expansion of virtualized physical memory of virtual machine
US20020129233A1 (en) Data processor having bios packing compression/decompression architecture
WO2006012007A1 (en) A system and method for simulating real-mode memory access with access to extended memory
JPS6248258B2 (ja)
US20040122834A1 (en) Apparatus and method for switching mode in a computer system
US5940869A (en) System and method for providing shared memory using shared virtual segment identification in a computer system
JPH0328943A (ja) オーバーレイ管理方法
JPH0916461A (ja) 仮想メモリ・システム内で効率的な共用メモリを提供するためのシステムおよび方法
US7293207B2 (en) Method for testing memory in a computer system utilizing a CPU with either 32-bit or 36-bit memory addressing
US8091090B2 (en) Method for providing scratch registers for use by a virtual-machine monitor
US20190236019A1 (en) Address space resizing table for simulation of processing of target program code on a target data processing apparatus
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
AU632542B2 (en) Ring reduction logic mechanism
CN111527480B (zh) 数据处理装置中的地址转换
JP6708860B2 (ja) 仮想アドレス空間レガシーエミュレーションシステムにおける保護キー管理およびプレフィックス変換

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080118

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090118

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090118

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100118

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110118

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees