JPH067377B2 - 仮想アドレス式情報処理システムにおけるメモリの使用方法及びこの方法を実施するための装置 - Google Patents

仮想アドレス式情報処理システムにおけるメモリの使用方法及びこの方法を実施するための装置

Info

Publication number
JPH067377B2
JPH067377B2 JP2269291A JP26929190A JPH067377B2 JP H067377 B2 JPH067377 B2 JP H067377B2 JP 2269291 A JP2269291 A JP 2269291A JP 26929190 A JP26929190 A JP 26929190A JP H067377 B2 JPH067377 B2 JP H067377B2
Authority
JP
Japan
Prior art keywords
address
descriptor
memory
size
addressing
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
JP2269291A
Other languages
English (en)
Other versions
JPH03126144A (ja
Inventor
ドロットゥ ミシェル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SAS
Original Assignee
Bull SAS
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 Bull SAS filed Critical Bull SAS
Publication of JPH03126144A publication Critical patent/JPH03126144A/ja
Publication of JPH067377B2 publication Critical patent/JPH067377B2/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/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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、仮想アドレス式情報処理システムにおけるメ
モリの使用方法及びこの方法を実施するための装置に関
するものである。
従来の技術 仮想アドレス指定(すなわち仮想記憶)の公知の概念に
よって、システム及びそのユーザにフィジカルメモリ容
量よりかなり大きいロジカルメモリ容量を提供すること
ができる。仮想記憶を互いに独立した複数の区域(セグ
メントと呼ぶ)に分割することのできる公知のセグメン
テーションの概念と組合わせると、仮想記憶は、特に、
マルチプログラミング及びマルチプロセッシングに適す
ることが証明されている。
情報処理装置のメモリのフィジカルメモリ容量の、頻繁
であると共に意義のある容量増大(現在、1MB DR
AM(Dynamic Random Access Memories)が市販されてお
り、入手しやすい)により、仮想記憶を対応して拡張す
ることが必要である。しかし、情報処理システムのオペ
レーティングシステムの設計者は、様々なアドレス指定
の問題に直面している。例えば、以下に示す問題等であ
る。
アドレス指定フォーマットのサイズが不十分になり、拡
張しなければならない。
新規な、拡張されたアドレス指定オペレーティングシス
テムは、なお、少なくとも十分に長い移行時間の間、旧
オペレーティングシステム下で設計された現行のユーザ
プログラムを使用することができるように、旧オペレー
ティングシステムと互換性がなければならない。
発明が解決しようとする課題 本発明の目的は、互換性とユーザ適応性の必要性をどち
ら満たす大容量仮想メモリの操作方法である。
課題を解決するための手段 さらに詳しく言えば、本発明は、仮想アドレス式の情報
処理システムにおけるメモリ操作方法であって、 第1のメモリ領域DXは、サイズがNXビットの論理ア
ドレスの周囲に設け、 上記メモリ領域DX中に、同一の構造で、サイズがNL
ビット(但し、NLはNXより小さい)の相対アドレス
指定を可能にする複数のアドレス空間EAXを画成し、 対応する空間EAXの識別子を受けるための少なくとも
1つのフィールドを含む補足のゾーンを使用して、サイ
ズNLの相対アドレス指定フォーマットFLの拡張によ
って、上記空間EAXにアクセスするためのサイズNX
の第1のアドレス指定フォーマットを構築し、 上記アドレス空間EAXの1つ(以後、現在のアドレス
空間EACと呼ぶ)を一時的且つ交換可能に、サイズが
NLビットのアドレスの周囲に設けた第2のメモリ領域
DLに割り当てる、 ことを特徴とする方法である。
このように、交換可能なアドレス空間EAXの1つDL
領域に一時的に割り当て、2つの使用可能なアドレスサ
イズNL及びNX(例えば、32及び64ビット)に従って
アドレスを特別にリフォーマットすることによって、新
規なメモリ組織は、両方のアドレスサイズを同時に使用
するオプションを提供する。従って、本発明による仮想
メモリの組織は、現行のプログラムに、拡張を利用する
機会を全く与えないメモリの単純な線型拡張よりはるか
に優れている。
本発明の方法を実施する別の実施態様では、メモリ領域
DLは、構造がアドレス空間EAXと同一の永久アドレ
ス空間EAPCBを含む。この空間EAPCBは、0に
等しい値を有する識別子によって、領域DX内において
マークをつけることができる。
アドレス空間は、セグメント型であることが好ましく
は、場合によっては、複数のサイズを有し及び/または
複数のプロセスによって分割共有することができる。
本発明の方法を実施するまた別の実施態様では、サイズ
NXの異なるアドレス指定フォーマットFX2からアク
セス可能な複数のセグメントが、メモリゾーンDXに画
成される。
本発明の方法を実施すれば、情報処理システムによる処
理の実行において、その柔軟性が全てわかる。また、特
に、本発明のさらに別の実施態様では、 サイズNLのアドレス空間、すなわち、空間EAX及び
場合によっては空間EAPCBとして、同一基本構造の
プロシージャディスクリプタPDを選択し、 上記のプロシージャディスクリプタPDと同一の基本構
造を有するアドレス空間交換ディスクリプタ(以下、C
ASDと呼ぶ)を決定し、 所定のアドレス空間で実行できる処理で始めて、CAS
D型のディスクリプタによってもう1つのアドレス空間
で実行できるプロシージャの呼び出しを可能にする。
CASD型ディスクリプタは、好ましくは、呼び出され
たプロシージャを含むアドレス空間の識別子及びこの新
しいアドレス空間における呼び出されたプロシージャの
ポインタを受けるためのフィールドを含む。
このように、限られたサイズDLのアドレス指定モード
によって設計された現行のプログラムは、他のアドレス
空間におけるプロシージャ呼び出しのセットによって、
システムの新しい容量を十分に利用することができる。
また、これらの旧プログラムは、新規なアドレス空間内
に、コードを含んで完全に含まれる。
本発明は、また、上記の方法をそのあらゆる実施態様で
実行するためのハードウェア及びソフトウェアを含む情
報処理システムに関するものである。さらに詳しく言え
ば、この情報処理システムは、1つまたは複数の中央プ
ロセッサ(CPU)及び中央メモリの周辺に構成された
プロセッササブシステムを含む。中央プロセッサは、各
々、特に仮想アドレス指定に十分な大容量のメモリ手段
を有する周辺サブシステムに動作的に接続された入力/
出力コントローラIOCと上記中央メモリの管理を実行
するためのマイクロプログラミング制御される手段と、
オペレーティングシステムの名で集められたプログラム
のセットを特に含むソフトウェアとを備えており、該ソ
フトウェアと上記マイクロプログラミング制御される手
段とが協動して、本発明の方法を実行することができ
る。
本発明は、添付図面を参照して行う以下の詳細な説明に
よって明らかになろう。
実施例 慣習により、以下の説明で、「**」の記号は、「指数」
の数学的表現であり、例えば、2**10=1024である。同
様に、「<>」は、「〜と異なる」の数学的表現であ
る。
非限定的な実施例としてここで説明する本発明の実施態
様では、情報処理システムは、32ビットアドレス指定を
サポートする現行のシステムと互換性があるように設計
されている。その結果、本発明によるシステムは、程度
は様々であるが、現在のシステムの幾つかのハードウェ
ア及びソフトウェアを内蔵する。しかし、以下の説明を
複雑にしないために、本発明の開示を中心にする。より
詳細には、読者は、入手できる文献、特に、セグメント
化メモリ内のアドレス拡張及び計算用装置に関するアメ
リカ合衆国特許第4,385,352号及びコンピユータ用のプ
ロシージャ呼び出し機構とコオペレーティングスタック
機構に関するアメリカ合衆国特許第4,297,743号を参照
するとよい。上記の特許の内容は、ここに引用して本明
細書に組み入れる。
まず、ここで、以下のように、種々の定義を記載してお
く。
−プロセス: プロセスは、中央サブシステムによって非同期で実行さ
れる命令によって決定される規則的なシーケンスのオペ
レーションとして定義される。このため、複数のプロセ
スが、アクティブ可能であり、システムが備えるリソー
ス(資源)を分割共有するが、所定のプロセッサでは、
所定の時には1つのプロセスだけが実行される。プロセ
ス群は、1つのオペレーティング段階を実行するのに必
要な組合わされたプロセスのセットであり、そのオペレ
ーティング段階では、特定のリソースがシステムによっ
て一時的に割り付けられる。プロセスは、各々、メモリ
中にプロセス制御ゾーン(PCB)として公知のゾーン
を有し、そのゾーン中には、システムによってプロセス
を実行するのに必要な情報がセーブされている。
−プロシージャ: プロシージャは、プロセスのコンテキスト内において実
行されるように適切に接続されたプログラム命令の識別
可能なセットとして定義される。1つのプロシージャか
ら他のプロシージャに変えるため、または、オペレーテ
ィングシステムの様々なサービスを使用するため(特
に、モジュラー構成のプログラムを使用する時)、プロ
シージャ呼び出し(プロシージャコール)として公知の
特定の機構(後段で詳細に説明)が使用される。本発明
の長所の1つは、2つのアドレス指定サイズにもかかわ
らず、この呼び出し機構の有効性(システムの性能の程
度として評価できる)を保持していることである。
−アドレス空間: プロセスに割り付けられ且つプロセスによってアクセス
できるメモリゾーンである。多くの場合、プロセスによ
って使用されるアドレスは、主メモリの絶対アドレスよ
り、むしろ、論理アドレスである。
−主メモリのセグメント化: プロセスの仮想メモリの必要性に応えるために、アドレ
ス空間は、通常、サイズを変更できる非連続的なセグメ
ントによって、プロセスの設計時にスタティックに、ま
たは、プロセスの実行中にダイナミックに割り付けられ
る。従って、そのプロセスは、セグメントを記述するセ
グメントディスクリプタシステムを介して、それ自体の
メモリセグメントまたは組み合わされたセグメントにア
クセスする。これらのディスクリプタは、オペレーティ
ングシステムによって管理されているテーブルに含まれ
ている。中央メモリ中のテーブルのサイズを最小化する
ためには、(0)〜(3)にエンコードされたセグメント分割
レベルが決定されている。このセグメント分配レベルに
無関係に、システムは、種々のプロセスを順位付けする
システム、例えば、アメリカ合衆国特許第4,177,510号
に記載のリング化概念を使用するシステムを内蔵する。
第1図を参照すると、情報処理システムは、2つの主要
なサブシステムを備える。特に中央メモリMMU102を
含む中央サブシステム100と、周辺サブシステム104とを
備える。中央サブシステム100は、入力/出力コントロ
ーラIOC108に接続された中央CPU106を中心にして
構成されている。この入力/出力チャネルI/Oによっ
てコントローラ108は、周辺制御装置UCPを介して周
辺サブシステム104と接続されている。周辺制御装置U
CP110は、アダプタAD112を介して種々の周辺機器P
ER114、特に、大容量メモリ(ディスクメモリ)、ス
クリーン及びキーボードを備える能動端末機器、プリン
タ及びデータ転送装置に接続されている。完全な情報処
理システム内には、数百ものの周辺装置があることもあ
る。
中央メモリMMU102は、最大総容量が1024ギガバイト
(1024 GB)のダイナミックランダムアクセス型(DR
AM)の半導体マイクロチップネットワークを備える。
場合によっては、各プロセッサが、キャッシュメモリ
(図示せず)を備え、最も頻度の高い処理された情報に
ついてのアクセス及び転送時間を短くすることができ
る。
アドレス指定領域 第2図及び第3図は、本発明の仮想メモリの構成を概略
図に図示したものである。
主メモリは、以下のサイズが大きくなる3つの型のセグ
メントによって構成されている: −64キロバイトセグメント、すなわち、2**16バイト(6
4 KB) −4メガバイトのセグメント、すなわち、2**22バイト
(4 MB) −4ギガバイトのセグメント、すなわち、2**32バイト
(4 GB) 最初の2つの型のセグメントは、バッチにグループ化さ
れる。このバッチを、以下、アドレス空間64K/4MB
または空間EAXと呼ぶ。このバッチは、全体で256メ
ガバイトすなわち2**28バイトであり、32セグメントの
4MB型及び2040セグメントの64KB型を備える。
結局、アドレス空間64K/4MB及び4GB型のセグメ
ントは、各々、4つの段階にグループ化される。各グル
ープの総容量は、68,000テラバイト(1テラバイト=2
**40バイト)であり、2**24セグメントの4GB型を、2
**24のアドレス空間64K/4MBを備える。
4つの段階は、4つのセグメント分割レベルに対応す
る。このレベルとは、各々、レベル(0)すなわち「シス
テムレベル」、レベル(1)すなわち「未定義レベル」、
レベル(2)すなわち「プロセスグループレベル」及びレ
ベル(3)「プロセスレベル」である。
このように構成された仮想メモリの総容量は、272,000
テラバイトである(2**58〜2**59バイトの容量)。その
結果形成されるメモリ領域DXは、明らかに、互換でき
るサイズNXの論理アドレス指定を必要とする。サイズ
NXは、64ビットポインタ中に含まれる。同様に、メモ
リ容量が制限されたアドレス空間EAXによって、相対
的な論理アドレス指定を可能にする。このアドレス指定
のサイズは、1つの32ビットワードの中に含まれる。
空間EAXは、番号(序数)によって、または、より多
く場合は、より洗練された識別子によって識別される。
例えば、ここに図示した本発明の実施態様では、識別子
(第9図に図示)は、主に、セグメント分割レベルを示
すゾーンと対応するメモリ段階中の番号(序数)によっ
て構成される。
第3図を参照すると、メモリ領域DX内で、メモリ領域
DLは、64K/4MB型のEAXアドレス空間の1つを
含むように決定される。このアドレス空間は、この領域
DLに一時的に、交換可能に割り当てられる。これによ
って、32ビットのアドレスサイズが可能になる。領域D
Lに割り当てられたEAX型のこの空間を、以下、現ア
ドレス空間EACと呼ぶ。
32ビットアドレス指定用に設計された現行のプログラム
との互換性を向上させるために、空間64K/4MBに構
造が同一の永久アドレス空間すなわちEAPCB空間を
メモリ領域DLに割り当てる。メモリ領域DXでは、こ
の空間EAPCBは、0に等しい値を有するその識別子
(識別子に割り当てられたフィールドの全ビットが二進
値0を有する)によって標識化されている。従って、32
ビットアドレス指定をサポートするメモリ領域DLの容
量は、512MBである。
第4図及び第6図は、64ビットアドレス指定を使用する
データディスクリプタのフォーマットの2つの型を図示
したものである。通常、これらのフォーマットは、32ビ
ットワード(左から右へ0から31の番号が付けられてい
る)により構成される。これらのフォーマットは、デー
タにも命令にも同様に使用できる。
データの場合、これらのフォーマットは、二進数形であ
るが、二進数、十進数、浮動または英数字として解釈で
きる。データビットは、二進化十進数にエンコードされ
た場合は、4ビットのグループごとに解釈され、英数字
データの場合は8ビットのグループごとに解釈され、浮
動データの場合は64または128ビットのグループごとに
解釈され、二進数データの場合は1〜64ビットのグルー
プで解釈される。
主メモリ内でのバイトのロケーションは、0から始め
て、連続的に番号が付されている。数字は、各々、バイ
トの実アドレスに対応する。上記の実施例では、1ワー
ドは32ビット、すなわち、4バイトで構成されている。
また、バイトの群は、群の最左端のアドレスが2、4、
8または16の倍数であるならば、各々、半ワード、単一
ワード、ダブルワード(2ワード)またはクワッドラプ
ルワード(4ワード)上に配列される。この場合、デー
タバイトの1つの完全な群は、一括して、メモリから選
択される。メモリ内のデータのロケーションは、以下に
記載するアドレス拡張機構によって、データの(アドレ
スの)ディスクリプタから得られる。
第4図は、最大セグメント、従って、4ギガバイトに対
応する64ビットのデータディスクリプタのフォーマット
FX2を図示したものである。ディスクリプタ4GB/
ITS64は、2つのワードを含み、以下のように分解さ
れる: −第1のフィールドは、最初の2つのビット0及び1に
よって構成されており、TAGと呼ばれ、二進値01を
含み、 −第2のフィールドは、ビット2及び3で構成されてお
り、RINGと呼ばれ、アドレス化されたセグメントの
データのアクセス上のポインタ(リグ数)と組合わされ
た順位付けレベルを示す二進値を含み、 −第3のフィールドは、ビット4及び5によって構成さ
れており、XTAGと呼ばれ、ディスクリプタのコード
の型を示す二進数を含む。より正確には、 XTAG=00は、直接アドレス指定に対応する(アド
レス拡張は、探索していた対象に到達する)。
XTAG=01は、フィジカルメモリでの絶対アドレス
指定に対応し、フィールドXSN及びXSRAの連結に
よって得られる(この動作は、第10図を参照して、後段
で記載する)。
XTAG=10は、間接アドレス指定(アドレス拡張に
よって、異なる64ビットデータディスクリプタに達し、
次に、直接的または間接的に探索していた対象に到達す
る)。
XTAG=11は、デフォルトに対応し、特定の拡張プ
ロシージャに到達する。
−第4のフィールドは、ビット6及び7によって形成さ
れており、SHRと呼ばれ、アドレスされたセグメン
ト、すなわち、セグメントが配置されたメモリ段階の
(0)〜(3)の分割レベルを示す二進値を含み、 −第5のフィールドは、ビット8〜31(全部で24ビッ
ト)によって形成されており、XSNと呼ばれ、対応す
るメモリ段階でアドレスされたセグメントの番号(序
数)を示す二進値を含み、及び、 −第6のフィールドは、ビット32〜63(第2のワード)
によって構成されており、XSRAと呼ばれ、ブロセス
がアクセスしようとする対象のセグメントでの位置(相
対アドレス)を示す二進数を含む。
このディスクリプタ4GB/ITS64のアドレス拡張
(第5図に図示)は、アドレスされた4GB型セグメン
トにアクセスを求めるプロセスに対応するメモリブロッ
クPCB(Process Control Block)の特定ゾーンに含
まれたデータに基づいて、以下の方法によって実行され
る。この目的のため、第5図に一部分を図示したブロッ
クPCBは、2ワード長(32ビットワードの2ワード)
の4つのゾーンを含み、各々、ASDW4(SHR=
0)、ASDW5(SHR=1)、ASDW6(SHR
=2)及びASDW7(SHR=3)である。ゾーンA
SDW4/7(2ワードアドレス空間)は、フィールド
P(ビット32、または、存在ビット)の内容が単位に等
しい以外は、実際に意味がない。このフィールドPは、
探索していた構造、この場合、XSTと呼ばれるセグメ
ントディスクリプタテーブルのメモリ内での存在を示
す。この存在ビットが0の時、例外プロシージャが初期
化され、探索ディスクリプタリストをメモリにロードす
る。
ゾーンASDW4/7は、2つの他のフィールドを含
む。第1のフィールドは、NBMAX(ビット8〜31)
と呼ばれ、テーブルXST中のエントリ数を定義し(2
**24の最大値)、第2のフィールドXSTA(ビット33
〜63)はテーブルXSTの第1のエントリの16の倍数と
して絶対アドレスを決定するポインタである。従って、
この絶対アドレスは、XSTAの値の最下位ビット側に
4つの0を加算することによって得られる。以下の説明
では、「エントリ」という語は、通常、テーブルの1つ
のエレメントの第1のバイトを示し、「ポンイタ」とい
う語はそのようなエントリの絶対アドレスを示す値を示
す。ポインタは、絶対アドレスの整数分の1の値の倍数
であることが多い。
次に、ディスクリプタ4GB/ITS64のフィールドX
SNの内容を使用して、テーブルXST中で、4ワード
で形成された二重セグメントディスクリプタDSD.4
にアクセスする。存在ビットP(ビット0)及び様々な
保護フィールドに加えて、二重直接ディスクリプタに対
応するこの4ワードは、16の倍数としてページテーブル
ワードアレーPTWAの第1のエントリの絶対アドレス
を与えるアドレスポインタPTWAA(ビット32〜63)
とセグメントサイズフィールド(ビット64〜87)を含
む。その値に1単位をプラスすると、4096バイトの倍数
として、セグメントのサイズが与えられる。
次に、ディスクリプタ4GB/ITS64のフィールドX
SRAの内容の一部分を使用する。実際、フィールドX
SRAを3つのゾーンに分解する(第4図を参照)。こ
の3つのゾーンとは、ページテーブルPTの数に対応す
るサブフィールドPTN(ビット32〜41)、ページテー
ブルの対応するセグメントのエントリ番号に対応するサ
ブフィールドPTE(ビット42〜51)及びページ中で探
索された構造の相対アドレスに対応するサブフィールド
PRA(ビット52〜63)である。このページのサイズ
は、4キロバイトであり、従って、2**12バイトであ
る。
このように、サブフィールドPTNの内容は、ページテ
ーブルワードアレーPTWA(最大サイズMAX=2**1
0エントリ)内のエントリの番号(序数)を与え、この
ページテーブル中に探索された(32−ビット)ワードに
アクセスすることができる。このワードは、また、存在
ビットと、探索されるページテーブルPTの第1のエン
トリの絶対アドレスPTAが(最大サイズMAX=2**1
0エントリ)とを含む。サブフィールドPTEの内容
は、ページテーブルPT中に探索されたエントリの番号
(序数)を与え、ページディスクリプタへのアクセスを
可能にする。また、存在ビットP、ページの第1のバイ
トの絶対アドレスを含む。
仮想アドレス(またはセグメント化アドレスと呼ばれ
る)を実アドレスに変換する機構は、通常、連想記憶装
置を使用する加速装置と組合わされており、それによっ
て、これらのアドレスを後で使用する時、実アドレスを
仮想アドレスに直接対応させることができる。
第6図は、空間64K/4MBに含まれたセグメントに対
応する別の64ビットデータディスクリプタのフォーマッ
トFX1を図示したものである。このディスクリプタ
は、64K/4MB/ITS64と呼ばれ、2つのワードを
含み、以下のように分解される。
−第1のフィールドは、ビット0及び1によって形成さ
れており、ディスクリプタのコードの型を示す二進値を
含む。より詳しく言えば、 TAG=00は、直接アドレス指定に対応し、 TAG=01は、4GB/ITS64型のディスクリプタ
に対応し、 TAG=10は、間接アドレス指定に対応し、 TAG=11は、特定の例外プロシージャに至るデフォ
ルトに対応する。
−第2のフィールドは、ビット2及び3によって形成さ
れており、RINGと呼ばれ、アドレスされたセグメン
トのデータ(リング数)へのアクセス時にポインタと組
合わされ順位付けレベルを示す二進値を含む。
−第3のフィールドは、ビット4〜8(4ビット)によ
って形成されており、STNと呼ばれ、セグメントテー
ブルワードアレーSTWA中のエントリの番号(序数)
を示す二進値を含む。
−第4のフィールドSTE及び第5のフィールドSRA
は、各々、セグメントテーブルSR中のエントリの数及
び問題のセグメント中で探索された対象の相対アドレス
を示し、アドレスされたセグメントによって各々異なる
フォーマットを有する。4MB型のセグメントのアドレ
ス指定(STEはビット8及び9によって決定され、S
RAはビット10〜31によって決定される)は、STNの
0〜7の範囲の十進値に対応する。64KBバイトのセグ
メントのアドレス指定(STEはビット8〜15によって
決定されており、SRAはビット16〜31によって決定さ
れている)は、STNの8〜15の範囲の十進値に対応す
る。
上記のように、フィールドSRAは、2つのサブフィー
ルドを含む。すなわち、ページテーブル中のエントリの
番号(序数)に対応するサブフィールドPTE(セグメ
ントの型に応じて、10ビット長または4ビット長であ
る)及び探索された対象のページの相対アドレスに対応
するサブフィールドPRA(20〜31ビット)である。
ディスクリプタ64K/4MB/ITS64の第2のワード
が、第6、第7及び第8のフィールドを含む。
−第6のフィールド(ビット32〜37)は、二進値0を含
む。
−第7のフィールド(ビット38〜39)は、SHRと呼ば
れ、セグメントアドレス指定の分割レベルを二進値を含
み、 −第8のフィールドビット(ビット40〜63)は、ASN
と呼ばれ、対応するアドレス空間EAXの識別を可能に
する番号(序数)を含む。
このディスクリプタ64K/4MB/ITS64のアドレス
拡張(第7図を参照)は、対応するメモリブロックPC
Bの特定のゾーンに含まれたデータから始まって、以下
のように実行される。この目的のため、ブロックPCB
(第7図に一部分を図示)は、長さが1ダブルワード長
の4つのゾーンを備える。すなわち、ASDW0(SH
R=0)、ASDW1(SHR=1)、ASDW2(S
HR=2)及びASDW3(SHR=3)である。上記
のように、二重アドレス空間ワードASDW0/3は、
存在ビットP(ビット32)が1の場合を除くと、実際に
は有効ではない。ゾーンASDW0/3は、2つの他の
フィールドを含む。すなわち、主セグメントテーブルワ
ードアレーXSTWA(最大値2**24)中のエントリ数
を定義する、NBMAXと呼ばれる第1のフィールド
(8〜31ビット)と、主セグメントテーブルワードアレ
ーXSTWAの第1のエントリの16の倍数として絶対ア
ドレスを決定するポインタである第2のフィールドXS
TWAA(33〜63ビット)である。
次に、ディスクリプタ64K/4MB/ITS64のフィー
ルドASNの内容は、対応するワードXSTWのアクセ
スに使用される。このワードは、存在ビットPに加え
て、セグメントテーブルワードアレーSTWAの第1の
入力の絶対アドレスを示すフィールドSTWAA(ポイ
ンタ)を含む。ディスクリプタ64K/4MB/ITS64
のフィールドSTNによって、フィールドSTA(ポイ
ンタ)を含むワードにアクセスすることができる。この
フィールドSTAは、セグメントテーブルSTの第1の
入力の倍数16として絶対アドレスを決定する。
次に、ディスクリプタ64K/4MB/ITS64のフィー
ルドSTEを使用して、テーブルST内で、1ダブルワ
ードで形成された二重ディスクリプタセグメントDS
D.2にアクセスする。直接ディスクリプタに対応する
1ダブルワードは、存在ビットP(ビット0)及び様々
な保護フィールドの他に、対応するページテーブルPT
の第1の入力の絶対アドレスを16の倍数として与えるア
ドレスポインタPTA(ビット8〜31)と、1単位を足
すと4096バイトの倍数としてセグメントのサイズを与え
る値のサイズフィールド(ビット46〜55)とを含む。サ
ブフィールドPTEの内容によって、テーブルPT内で
探索されたページに対応するページディスクリプタにア
クセスすることができ、また、存在ビットPの他に、探
索されたページの第1のバイトの絶対アドレスのポイン
タPAGEを含む。
第7図は、また、SHR=0及びASN=0に対応する
STWA(0、0)によって示されるセグメントテーブ
ルワードアレーを示す。アドレス空間EAPCBに対応
する、この特定のテーブルへのアクセスは、かなりの時
間を節約して、アドレス空間ワードすなわちASW.0
と呼ばれるブロックPCBの特定ゾーンから直接実施さ
れる。このアドレス空間ワードは、サイズが1ワードに
等しく、アレーSTWA(0、0)の第1のエントリの
絶対アドレスのポインタを含む。この能力は、第8図に
図示したフォーマットFLによって32ビットアドレスで
構成された現行のプログラムとの本発明によるシステム
の互換性にとって極めて価値がある。この時、32ビット
領域(DL)及び64ビット領域(DX)の両アドレス領
域でデータを共有することができる。
32ビットアドレス指定領域DL(空間EAPCB及び空
間EAC)を使用する構造と64KB及び4MB型のセグ
メントのバッチを備えるアドレス空間EAXの構造との
同一性を考慮すると、第8図に図示した64K/4MB/
ITS32と呼ばれる32ビットアドレス指定データディス
クリプタのフォーマットは、フィールドRINGとEA
Rが相当するので、第6図に図示したディスクリプタ64
K/4B/ITS64の第1のワードの構造と同一の構造
を有する。空間EAPCB中のアドレスは、TAG=0
0によって得られる。反対に、TAG=01は、空間E
AX中で識別できる現在のアドレス空間EAC中のアド
レスに到達する。このため、EAC空間の識別子、すな
わち、一時的に領域DLに割り当てられる空間EAXの
特定の1つの識別子の値を記憶するための特殊なレジス
タCSRが考案された。このレジスタCSRのフォーマ
ットを第9図に図示したが、1ワードのサイズであり、
ディスクリプタ64K/4MB/ITS64の第2のワード
のサイズと同じである。このレジスタは、3つのフィー
ルドによって構成されている。第1のフィールドはビッ
ト0〜5で形成されており、各々二進値0を含み、第2
のフィールドSHRはビット6及び7によって形成され
ており、アドレスされたセグメント分割レベルを示す値
を含み、第3のフィールドASNはビット8〜31によっ
て形成されており、問題のアドレス空間EAXを形成す
るセグメントのバッチの識別(実際は、対応するメモリ
段階中の番号(序数))を含む。
第10図は、実記憶内の絶対アドレス指定を可能にする64
ビットディスクリプタAA64のフォーマットを図示した
ものである。このフォーマットは、フィールドXTAG
=01の4GB型のセグメントに対応する第4図に図示
たディスクリプタ4GB/ITS64から由来する。ビッ
ト6〜24によって形成されたフィールドMBZ(フィー
ルドSHRを含むが、この場合は有効でない)は、0と
等しい値に設定される。絶対アドレスの最上位の8つの
ビットは、ビット24〜31に配置されており、一方、同じ
絶対アドレスの最下位ビットはディスクリプタの第2の
ワード、すなわち、32〜63ビットによって形成されたフ
ィールドに配置されている。その結果、絶対アドレス指
定容量は、2**40バイト、すなわち、1024ギガバイトで
ある。
32ビットディスクリプタに基づく絶対アドレス指定は、
直接的には可能ではない。まず、フォーマット動作の変
換を実行して、64ビットフォーマットに変更しなければ
ならない。この動作を以下に説明する。
プロセスの実行モード 上記に記載したメモリアドレス指定の様々な例は、全
部、本発明の状況では情報処理装置に使用れる3つのプ
ロセスの実行に使用される。すなわち、 −第1のモード「32モード」は、32ビットアドレス指定
を使用し、 −第2のモード「64モード」は、64ビットアドレス指定
を使用し、 −第3のモード「32/64モード」は、あるセグメント
で、且つ、後段で詳細に説明する特定の条件下で、二重
アドレス指定を使用する。
第1のモードは、本出願人によって、その「DPS7」
システムで使用されるモードに由来する。特に、この32
モードに直接対応するプロセス制御ブロックPCBは、
アメリカ合衆国特許第4,297,743号に記載のものとほぼ
同一のフォーマットを有する。ブロックPCBは、8個
のベースレジスタ(1レジスタにつき32ビット)、16個
の汎用レジスタ(1レジスタにつき32ビット)、4個の
算術計算レジスタ(1レジスタにつき64ビット)、レジ
スタIC(Instruction Counter)の記憶またセーブ領
域、レジスタT(スタックのトップ)(32ビット)及び
STRレジスタ(状態レジスタ)の記憶ゾーン(8ビッ
ト)を備える。しかしながら、絶対アドレス指定は、も
はや32ビットでは正当とは認められないが、64、また
は、32/64モードのプロセスモードに変更すると得られ
る。実際、コード型TAG=01は、32/64モードで仮
想アドレスを拡張するのに使用される。
従って、実行の第1のモード、32モードは、空間EAP
CBの1つのセグメントにだけアクセスするために、直
接ディスクリプタIRS32(TAG=00)、間接ディ
スクリプタ(TAG=10)及びデフォルトディスクリ
プタ(TAG=11)を管理することができる。また、
このプロセスは、他のモード用のメモリ内で空間EAP
CBの新しいポインタを管理し、XMOVEと呼ばれる
特定の命令によって仮想メモリの他のセグメントから、
または、他のセグメントに転送することができる。
64モードと呼ばれるプロセス実行モードは、32モードに
相当するが、新しいメモリ領域DX及びその64ビットア
ドレス指定に適している。命令リストは、32モードのリ
ストに類似しているが、以下の新しい命令が補足されて
いる; 新しい64ビット環境の能動化テスト、 現在の動作モードのテスト、 XMOVE動作、 新しいページ及びセグメントディスクリプタと、記憶割
付けテーブルの管理に対応する命令。
64モードによる実行を可能にするために、プロセス制御
ブロックPCBは、第11図、すなわち、第11図(1)及び
第11図(2)に図示した新規なフォーマットを有する。こ
れを以下に簡単に説明する。
ブロックPCB(基準バイト0)の初期バイトのアドレ
スに関して、ブロック化は、プロセス実行時間の用意の
ために残されたメモリゾーン(アドレス−60〜0)を含
む。バイト−60〜−17が占めるゾーンは、オプションで
ある。メモリ位置に沿って配置された数字は、制御ブロ
ックPCBの基準位置0に関するバイトのオフセットを
明確にすることが注目される。バイト0からバイト15の
間に、4つの主プロセスワードPMW.0〜PMW.3
がメモリ中に格納される。ワードPMW.0は、バイト
0〜3を占め、1つのバイトにつき1つのフィールド
で、4つのフィールドを有する。容量フィールドCA
P、優先フィールドPR1、プロセス実行状態フィール
ドEXE(例えば、「ウェイト」「レディ」等)及び実
行フィールドDEXTを備える。ワードPMW.0の4
つのフィールドの内容の詳細は、アメリカ合衆国特許第
4,297,743号に記載されている。
主プロセスワードPMW.1は、バイト4〜7に格納さ
れている。状態バイトSTRによって、システムの状態
レジスタSTRのメモリ中に格納することができる。続
くバイト(エンコードされたMBZ)は、0に設定され
る。次のフィールドESは、2つのビットからなり、そ
の内容の値に応じて、以下のようにプロセス実行モード
を示す: ES=00、32モード ES=01、32/64モード ES=10、64モード ES=11、違法PCB フィールドESの内容は、プロセス開始命令(STAR
T)の実行に先立って、ソフトウェアによって変更する
ことができ、従って、プロセス実行モードを変更した
り、または、特定の命令によって変更うすることができ
る。
主プロセスワードPMW.2は、プロセス状態に関する
補足命令を伝えるために使用され、ワードPMW.3は
2つの有効フィールド、すなわち、ある特定の命令を実
行するプロセスの権利に関するフィールドDCN(ビッ
ト0〜7)及びプロセスを実行することを許可するプロ
セスのマスクに関するフィールドCPSM(ビット16〜
31)を含む。
次に、ブロックPCBは、既に導入された2つのアドレ
ス空間ワードASW.0/1(セグメントテーブルST
WAを記載するアレーのアドレスを提供する)及びES
=00または01の時有効であるバイト24〜51を備える
サブブロックを備える。また、例外ワードEXW、プロ
シージャ呼び出しに使用されるスタックレジスタTの内
容を記憶するスタックワードSKW、実行される命令の
アドレスを知るのに使用される命令カウンタICの内容
を記憶するワードICW、番号(序数)すなわち現在の
アドレス空間EACの識別を知るのに使用されるレジス
タCSRの内容を記憶するワードCSW及び3つのスタ
ックベースワードSBW1〜SBW3を備える。これら
のワードは、リング(0)、(1)及び(2)のスタックセグメ
ントの最初のバイトの各セグメント化されたアドレスを
含む。
バイト52〜83は、ベースレジスタ記憶ゾーンZMRB
(ES=1及びES=10のモードで、有効でない)の8
ワードに対応する。これらのベースレジスタは、第8図
を参照して説明したディスクリプタITS32に類似の32
ビットフォーマットを有する。
バイト84〜147は汎用レジスタ記憶化ゾーンZMRGの1
6ワードに対応し、バイト148〜179は科学レジスタ記憶
化ゾーンZMRSの8ワードに対応する。
バイト180〜255は、ES=00の時有効でないサブブロ
ックに対応する。このサブブロックの第1のワードは、
32/64モード、従って、ES=01の時使用できるレジ
スタBREM(拡張されたベースレジスタのマスクを示
す)の内容を記憶するために使用される第1のフィール
ドBREM及び0に設定された第2のフィールドMBZ
を含む。バイト184〜247は、拡張されたベースレジスタ
記憶ゾーンEXZMRB(8個のダブルワード)に対応
する。これらのベースレジスタは、第4図、第6図及び
第10図に図示したディスクリプタITS64(TAG=0
1及びTAG<>01)について記載したフォーマット
に類似した64ビットフォーマットを有する。バイト248
〜255は、二重主プロセスワードEXPMW.2に対応
する。バイト256〜303は、64モード(EX=10)を除い
て有効ではなく、拡張された命令カウンタの内容に記憶
化された1つのダブルワードEXICW、スタックレジ
スタTの拡張された頂上の内容を記憶する1つのダブル
ワードEXKW、EXSCW.0〜EXSBWZ2の3
つのダブルワード及びダブルワードEXEXWを含む。
また、新しいフォーマットのブロックPCBは8つの例
外に関する記憶化ワードZMRB(バイト304〜352)
と、64K/4MB型のセグメント用の4つの二重アドレ
ス空間ワードASDW.0〜ASDW.3(第7図を参
照)の1つのゾーン(バイト336〜367)と、4GB型セ
グメント用の4つの二重アドレス空間ワードASDW.
4〜ASDW.7の1つのゾーン(バイト368〜399)と
を有する。
32/64モードと呼ばれるプロセス実行方法は、64K/4
MB型のセグメントをより良く使用するために、及び、
2つのメモリ領域DL及びDX間のブリッジを可能にす
るために、特に、64ビットアドレス指定への移行を可能
にするように設計されている。
32/64モードは、レジスタBREMの内容を使用する。
それによって、ベースレジスタに含まれる8個のディス
クリプタITS(ベースレジスタBRiにつき1つのビ
ットBREMi、但し、iは0〜7)の長さを1つのバ
イトに記憶することが可能になる。ビットBREMiの
内容の値「0」は、対応するベースレジスタBRiが32
ビットフォーマットを有するディスクリプタITSを含
むことを示し、ビットBREMiの内容の値「1」は、
この同じベースレジスタBRiが64ビットフォーマット
を有するディスクリプタITSを含むことを示す。
ベースレジスタをアレンジし、ロードする命令は、可能
な変換(32→64または64→32)を決定するレジスタBR
EMの内容を使用する。より詳しく言えば、BREMi
=1の時、ベースレジスタBRiは64ビット仮想アドレ
スを含み、アドレス拡張は、フィールドSHR、AS
N、STN、STE及びSRAの内容に基づいて行われ
る。また、BREMi=0の時、ベースレジスタBRi
は32ビット仮想アドレスを含む。レジスタBRiに含ま
れるコードTAGが01とは異なる時、この時32ビット
で、アドレス指定拡張が実施される。反対(BRi中の
TAG=01)の場合、アドレスフォーマットのダイナ
ミック拡張は、現在の空間レジスタCSRのアドレスフ
ィールドSHR及びASNを考慮して、実行される(こ
のようにして得られた新しい64ビットディスクリプタI
TSのフィールドTAGは、自動的に0にセットされ
る)。
さらに、コードTAG=10を有するベースレジスタB
Rの内容に基づいて、アドレス拡張を実行する。これに
は、2つの可能なケースがある。
−ベースレジスタBRi中のコードTAG=10、その
BREMi=0(32ビットアドレス)は、TAG=00
のデータディスクリプタITS32に対応する。
−メモリ内でアクセスされ、BREMi=0と組合わさ
れたデータディスクリプタITSのコードTAG=10
は、アドレス拡張に使用される本来のベースレジスタの
内容がコードTAG=01を有する時、レジスタCSR
の内容に加えられなければならない。
また、データディスクリプタITSのコードTAGが、
BREMi=0(32ビットレジスタ)が10(または1
1)と異なるレジスタからメモリにシフトした時、この
ディスクリプタは、そのコードTAG=01の時、レジ
スタCSRの内容に加えられる。
このように、32/64モードで実行されるプロセスは、32
ビットアドレス及び64ビットアドレスを処理することが
できる。アドレスフォーマットにおけるこれらの変換を
可能にし、32ビット構成から64ビット構成に変換させる
ために、以下の2つの特定命令が生成された: −命令XLBDは、ベースレジスタBRiにアドレスX
の2つのワード(8バイト)をロードし、値1をBRE
Miに配置する。
−命令XSTBは、32ビットから64ビットへのヤォーマ
ットの拡張後、BREMi=0且つコードTAG=1の
時、ベースレジスタBRiの内容をアドレスXに基づく
2つのワード(8バイト)内に配置する。
呼び出しプロシージャ機構 一般的に、情報処理システムは、実行のプロシージャコ
ールとして公知の操作を広く使用する。それによって、
プロシージャを実行するプロセスは、他の実行プロシー
ジャAPEを呼び出し、次に、初期のプロシージャAP
Tに戻ることによってそれ自体の実行を再度始めること
ができる。このプロシージャコールは、モジュラープロ
グラムの使用の際に特に利点がある。本出願人は、アメ
リカ合衆国特許第4,297,743号に、この型のプロシージ
ャコール操作に適したスタックメモリ構造を使用する方
法及び装置を記載した。
スタックは、それに対するアクセスがLIFO(Last I
n,First Out)システムによって行われる隣接した素子
を備える特定のメモリセグメントである。スタック素子
は、プロシージャ呼び出しのたびに生成され、呼び出し
プロセスへ戻ることを可能にする情報を記憶化するため
に使用される。従って、スタックでは、概括的なコール
状態が得られる。
オペレーティングシステムでは、能動スタック素子のロ
ケーションはベースメモリBROに記憶され、続いて使
用できるロケーションは専用レジスタTまたはスタック
レジスタのトップに記憶される。また、幾つかのパラメ
ータの転送は、プログラムによって選択されたベースレ
ジスタを介して実施される。
プロシージャ呼び出しは、命令PRSK(preparation
of the stack)の実行から始める。その結果、スタック
内に、レジスタSTRの内容がセーブされ、ユーザープ
ログラマにパラメータを受けることのできるゾーンのポ
インタが提供される。このゾーン内に、呼び出されるプ
ロシージャに転送されるべき情報がロードされる。プロ
シージャ呼び出しは、次に、以下のステップによって、
命令ENT(entry to the procedure)の実行で終了さ
れる: −リング制御(リングの変更が必要な場合、この時、
「ゲート」サブプロシージャが実行される。) −命令カウンタICのレジスタ内容のセーブ −ベースレジスタBROのロード(パラメータの指示) −アドレスがENT命令で与えられるプロシージャディ
スクリプタによるプロシージャのエントリ点の決定 −所定のベースレジスタ、例えば、レジスタBR7での
結合データを示すポインタのロード −適用できるものとして、新しいリング数と命令カウン
タICにレジスタへのエントリ点のアドレスをロードす
ることによる新しいプロシージャへのエントリ。
現在のスタック素子ゾーン、すなわち、作動ゾーンZT
は、また、メモリ中にローカル変数を格納することによ
って呼び出されたプロシージャを使用することができ
る。リターンは、レジスタ及び命令カウンタICに関す
るスタック記憶化ゾーンの内容からの命令EXIT(ex
it from the procedure)で実施される。
安全性のため、リング数を介したスタック構造が提供さ
れる。各スタックでは、素子の特定のフォーマットは、
呼び出しプロセスの実行モードによる。第12図は、32/
64モードで使用されるスタック素子のフォーマットを概
略的に図示したものである。
第12図を参照すると、32/64モードスタック素子は、3
つの主なゾーン、すなわち、作業ゾーンZT、情報セー
ブまたは記憶ゾーンZS(新しいプロシージャの呼び出
しに先行)及び連絡ゾーンZC(その中に、呼び出され
たプロシージャを実行するのに必要な情報が配置されて
いる)に、32ビット幅を備える。これらの3つのゾーン
は、命令PRSKによって生成される。ゾーンZCの第
1のバイトは、ベースレジスタBROによって指示され
る。
ゾーンZSの第1のワードはセーブゾーンマスクすなわ
ちSAM(saving zone mask)を備え、そのSAMは以
下の形態である: −この場合は4つのビットを備え、内容0100の「フ
ォーマット」フィールドであり、8ビットゾーンBRは
8個のベースレジスタBR0〜BR7用の指示マスクを
備え(メモリ内に格納されるため)、 −16個の汎用レジスタGR0〜GR15のための指示マス
クを備える16ビットゾーンGR、 −及び、4個の算術用レジスタSR0〜SR3のための
指示マスクを備える4つのビットゾーンSR。
第2のワードはレジスタCSRをセーブするためのもの
であり、第3のワードはレジスタBREMをセーブする
ためのものである。次に、ベースレジスタセーブゾーン
BRSA(1レジスタにつき2つのワードであり、BR
EMi=0の時第2のワードが0にセットされる)、そ
の次に、レジスタのセーブゾーンORSAが来る。最後
の1つ前のワードは、状態レジスタSTR(第1のバイ
ト)と呼び出しプロセスの実行中のプロシージャが操作
している部分的なメモリ拡張の可能な数をセーブするた
めに使用される。また、セーブゾーンZSの最後のワー
ドPTVは、レジスタTの前段の値、すなわち、命令P
RSKの開始時のレジスタTの値を含む。
エントリがベースレジスタBROに含まれたポインタに
よって与えられる通信ゾーンZCは、ワードSAMのポ
インタを含むワードPSAで始まる。次に、ワードIC
Cが来る。このワードは、命令ENTに続く命令のアド
レスを含む。命令PRSKのフィールドNBPの内容
(パラメータゾーンのバイト数は、スタック素子のフィ
ールドNBPに配置されている。連絡ゾーンZCは、パ
ラメータゾーンPARAMで終わる。この終わりは、ス
タックの一番上のバイトTによって境界が付けられる。
レジスタTは、スタック素子が生成すると毎回更新され
る。
32モードでの実行の場合、スタックフォーマットは、第
12図を参照して説明したものに類似しているが、以下の
変更がある: −ワードSAMの「フォーマット」フィールドの内容
な、0000に設定される。
−ワードCSR及びBREMは、除去される。
−ベースレジスタの内容のセーブは、2ワードではな
く、1つのワードについて実施される。
64モードでの実行の場合、スタックフォーマットは、第
12図を参照して説明した、32/64モード用のものに類似
しているが、以下の変更がある: −ワードSAMの「フォーマット」フィールドの内容
は、1000に設定される。
−ワードCSR及びBREMは、除去される。
−ベースレジスタのセーブゾーン、すなわち、ゾーンP
TV、PSA及びICCはサイズとしてはダブルワード
を有する。従って、ゾーンPARAMの第1のバイトの
アドレスは、レジスタBROの内容によって指示された
アドレスから、20バイトのシフトによって得られる。
呼び出し機構の内容中で使用される様々なプロシージャ
へのアクセスは、プロシージャディスクリプタPDとし
て公知のプロシージャアドレスディスクリプタによって
実行される。プロシージャアドレスディスクリプタのフ
ォーマットは、プロセスの実行モードに関係する。
32モードまたは32/62モードで実行される時、プロシー
ジャディスクリプタまたはPD32のモードは、第13図に
図示したモードと一致する。第1のワードM.0は、フ
ィールドTAG(ビット0及び1)と、TAG<>0の
時フィールドRING(リング数)と呼び出されたプロ
シージャ(ビット4〜31)のセグメント化されたアドレ
スフィールド(SEG、SRA)に相当するフィールド
EPRN(ビット3及び4)とを含む。フィールドSE
Gによって、セグメント数の識別が可能になり、フィー
ルドSEGは、第6図及び第8図のディスクリプタのフ
ィールドSTN及びSTEのセットとして同じ意味を有
する。同様に、フィールドSRAは、SEGによって決
定されたセグメントでのオフセットを決定する。場合に
よっては、第2の32ビットワードM.1は、拡張パラメ
ータEXPARAMを有する。より詳細には、以下の通
りである: −TAG=00(直接ディスクリプタ)の場合、プロシ
ージャディスクリプタは、1つのワードに限定され、セ
グメント化されたアドレスは、プロシージャのエントリ
点のアドレスに対応する。
−TAG=01(拡張されたディスクリプタ)の場合、
ディスクリプタは2つのワードを有する。セグメント化
されたアドレスは、プロシージャのエントリ点のアドレ
スに対応する。さらに、第2のワードの内容は、プロシ
ージャのエントリの際ベースレジスタBR7にロードさ
れる。
−TAG=10(ディスクリプタCASD)の場合、ア
ドレス空間ディスクリプタCASDの変換のフォーマッ
トは第14図に図示されている。
ディスクリプタCASDの第1のワードM.0は、10
にセットされたフィールドTAGの他に、呼び出された
プロシージャの実行モードを決定するフィールドNXM
(ビット2及び3)及び呼び出されたプロシージャのデ
ィスクリプタのセグメント化されたアドレスのフィール
ドPDA1(SEG、SRA)を含む。第2のワード
M.1は、0にセットされた6ビットゾーン及び呼び出
されたプロシージャのディスクリプタのセグメント化さ
れたアドレスの補足フィールドPDA2(SHR、AS
N)(ビット38〜63)を含む。
64モードで実行した時、プロシージャディスクリプタす
なわちPD64のフォーマットを第15図に図示した。フォ
ーマットは、少なくとも2つのワード(M.0及びM.
1)、及び、場合によっては、2つの拡張ワード(M.
2及びM.3)を備える。ワードM.0及びM.1の構
造は、64ビットアドレス指定を有するデータディスクリ
プタITS64について記載した構造に類似している。ま
た、ワードM.2及びM.3は、拡張パラメータEXP
ARAM1/2を含む。
−TAG=00(または、TAG=01及びXTAG=
00)(直接ディスクリプタ)の場合、ディスクリプタ
のサイズは2ワードであり、セグメント化されたアドレ
スはプロシージャのエントリ点のアドレスである。
−TAG=10(または、TAG=01及びXTAG=
10)(拡張ディスクリプタ)の場合、ディスクリプタ
のサイズは4ワードであり、セグメント化されたアドレ
スはプロシージャへのエントリ点のアドレスであり、ワ
ードM.2及びM.3の内容はベースレジスタBR7に
ロードされる。
−TAG=11(または、TAG=01及びXTAG<
>(00または10))の時、システムによって提供さ
れた例外プロシージャへの分岐が生じる。
通常、保護されていないセグメント内に内蔵されたプロ
シージャディスクリプタは、使用されるアドレス指定と
プロセス実行モードと互換性のあるセグメントのいずれ
にも配置できる。
−32モードの場合、プロシージャディスクリプタは、
0に等しいSHR及びASNを介してアクセスすること
のできる空間64K/4MBのセグメント内に配置され
る。また、ディスクリプタCASDを介して参照される
時、空間64K/4MB(EAX)のいかなるセグメント
にも配置される。そのディスクリプタCASDは、0に
等しいSHR及びASNによってアクセスできる空間64
K/4MBのセグメント内に配置されている。
−64モードの場合、プロセスがそのセグメントにアクセ
スすることが認められている限り、プロシージャディス
クリプタはいかなる型のセグメント内に配置されていて
もよい。
−32/64モードの場合、プロシージャディスクリプタ
は、64ビット仮想アドレス(BREMi=1)によって
参照される時、64K/4MBまたは4GB型のいかなる
セグメントに配置されていてもよい。CASDを介して
参照されるならば、64K/4MBの型のいかなるセグメ
ントに配置されていてもよい。セグメント64K/4MB
がSHR及びASN=0、または、レジスタCSRの内
容でアクセスできる時、直接参照することができる。
実行モードに関係なく、プロシージャ呼び出し機構は、
以下の4つの主な機能を果たす。
a)アドレス権、すなわち、各リングの値に応じて呼び
出されるもの(APE)を呼び出す、呼び出し者(AP
T)の権利の確認 b)新しいリング番号の決定 c)スタック及びスタックレジスタの更新 d)プロシージャのエントリ点での分岐 32モード及び32/64モードでは、コールおよびらリター
ン機構は、実行モードの自動変更が必要かどうか及び/
または32ビット仮想アドレスを介して直接アクセスする
ことのできないプロシージャディスクリプタの存在する
かどうかによって、僅かに異なる。
以下の説明のために、次のことを定義しておく: ・アドレス空間PCB(EAPCB): プロセスが32モードで実行される時直接アクセスできる
セグメントのセット ・現アドレス空間(EAC): レジスタCSRの内容を介してアクセスできるアドレス
空間EAXに属するセグメントのセット。レジスタCS
Rが0の時、空間EAPCB及び現アドレス空間EAC
は同一のセグメントのセットである。
・新アドレス空間(NEA): ディスクリプタCASDの第2のワードを介してアクセ
スできるアドレス空間に属するセグメントのセット。
プロセスの実行中、本発明は、プロシージャコール及び
対応するリターン時での実行モードのダイナミックな変
化について3つのケースを提供する。これらのケース、
DYN1、DYN2及びDYN3は、各々、第18図、第
19図及び第20図を参照して説明される。
まず、命令カウンタICのレジスタの種々のフォーマッ
トを簡単に説明する。特に、第16図は、TAG=00の
時、64モード用の対応するレジスタICのフォーマット
を図示したものである。この場合、フォーマット(ダブ
ルワードを備える)は、ディスクリプタ64K/4MB/
ITS64について記載したもとに類似しており、フィー
ルドRING(第6図に図示)とフィールドPRN(第
16図に図示)とは等価である。TAG=10の場合、レ
ジスタICのフォーマットは、ディスクリプタ4GB/
ITS64(第4図に図示)について記載したものに類似
している。32モード及び32/64モードでは、レジスタI
Cは、1つのワードを備え、そのフォーマットは、ディ
スクリプタ64K/4MB/IATS32(第8図に図示)
について記載したものと類似しており、フィールドEA
R(第8図に図示)とレジスタICのフィールドPRN
とは等価である。32モードでは、フィールドTAGは、
常に00である。反対に、32/64モードでは、フィール
ドTAGは、値00(レジスタICは、実行されるべき
次の命令の仮想アドレスを含む)または値01(命令レ
ジスタの内容は、実行されるべき次の命令の仮想アドレ
スを形成するレジスタCSRの内容に連結されなければ
ならない)になることがある。
一般に、所定のアドレス空間EA内での呼び出すプロシ
ージャAPTから呼び出されるプロシージャAPEへ
の、プロシージャディスクリプタPDを使用するプロシ
ージャ呼び出し機構は、第17図に図示した基本的なアウ
トラインに沿って実行される。呼び出し機構でのプロシ
ージャディスクリプタの使用によって、システムの完全
性を確実するのに必要な一貫性のある制御を困難なく実
施することができる。また、間接機構を使用するソフト
ウェアの慣習によって、実行すべきプログラムの外部の
リファレンスのスタティック及び高性能ダイナミック導
出法のどちらも有することができる(この間接は、第17
図〜第20図では、符号ENTに付した星印(*)によって
示した)。
これを実施するために、コンパイラは、解くべきリファ
レンスをテーブルにまとめる。このテーブルは、リンク
編集セクションLKSと呼ばれる。命令コードCODE
の外部のプロシージャ呼び出しは、間接法を使用して、
呼び出されるプロシージャAPEのディスクリプタPD
に達する。この方法の利点は、以下のように、多数あ
る: −コードとプログラムの外部のリファレンスの独立性を
可能にする。
−ローカルサーチ規則を使用することによって、符号の
共有を有するダイナミックリンク編集が可能になる(各
プログラムは、個々の結合の1つのサブセクションを有
する)。
−命令用キャッシュメモリを備える装置内で、外部リフ
ァレンスの導出後、キャッシュメモリを空にせずに、ダ
イナミックリンク編集を実施することができる。
−また、外部リファレンスの導出は、符号内の使用数に
関係なく、一回しか実施されない。
第1の近似では、コンパイラは2つのオブジェクトを生
じさせる。第1のオブジェクトは、オブジェクトコード
CODE(実行されるべき命令のセット)を含み、第2
のオブジェクトはリンク編集セクションLKSを含む。
このセクションは、解かれるべき外部リファレンスによ
るワードにコードによって使用される定数を足したもの
を含む。また、付されたテーブルは、外部リファレンス
のシンボル名を組む(スタティックまたはダイナミック
リンク編集用)。リンク編集セクションLKSとよびコ
ードCODEは、セグメント節約のため、同一セグメン
ト内に集められる。同様に、複数のコンパイル単位もま
た一緒に集められる。
実行中、命令ENT(ENTER)は、ベースBR7に
対してディスプレイメントXを探す。すなわち、このレ
ベルで間接(この場合は第17図に図示)が存在しない時
プロシージャディスクリプタPDを直接探し、または、
間接が存在する時(例えば、第18図、第19図及び第20図
に図示した場合)他のアドレスディスクリプタを探す。
プロシージャディスクリプタPDは、アクセス制御(順
位付け後)の後に読み出され、呼び出されたプロシージ
ャでのエントリ点のアドレスとベースレジスタBR7に
配置される値が得られる。
従って、プロシージャ呼び出し機構は、2つの命令PR
SK及びENTを作動させる。第1の命令PRSKは、
コンテキスト(プロセスに割り付けられたレジスタの瞬
間的な内容のセット)をセーブする役割を果たすスタッ
クゾーンと、パラメータの通過とを用意する。この命令
のアーギュメントは、セーブするレジスタ、パラメータ
ゾーンのサイズ、及び、命令の終点では保持されたゾー
ンにパラメータを配置することのできるアドレスを含む
レジスタ数を指示するマスクSAMである。第2の命令
ENTは、「制御の移転」、すなわち、実行すべき命令
の新しいコードシーケンスへの移行を実施する。呼び出
しの準備がそれ自体は呼び出しと別であるという事実に
よって、レジスタを解放して、パラメータの移行シーケ
ンスを実行することができる。
コンテキストを指し示すレジスタは、呼び出しプロシー
ジャのコンテキストのためのベースレジスタBR0であ
ることに注目すべきである。これは、呼び出し命令EN
Tの実行まで、新しいコンテキストのための命令PRS
Kで記載したレジスタである。ベースレジスタBR0は
対称的にセーブされるので、呼び出し列を遡ることがで
きる。
リターンでは、命令EXITは、コンテキストを取り除
き、セーブした値で種々のレジスタを再初期化する。
・ケース#1(DYN1):32モードから32/64モード
へ 32モードから32/64モードへの移行は、単純に、アクセ
スルートにおけるアドレス空間ディスクリプタCASD
の変化をプロシージャディスクリプタPDに挿入するこ
とによって実施される。ディスクリプタCASDの2ワ
ードは、64ビットアドレスを形成し、それによって、プ
ロシージャディスクリプタPDの読出しを可能にする。
外部リファレンスの導出は、テーブルLKSまたはプロ
シージャディスクリプタのフォーマットの変更せずに、
オペレーティングシステムの制御化で実施されるので、
ディスクリプタCASDの挿入は、旧プログラムに全く
阻害されない。ディスクリプタCASDの第2のワード
(レジスタCSRのものと形態が同一)は、空間EAC
として能動化される新アドレス空間NEAがどれである
かを示す。これは、呼び出されるプロシージャのコード
またはリンク編集セクションが空間EAC内にあること
は必要ない。その全部まはた一部分が空間EAC内に配
置されている事実は、本発明によって提供される新規な
可能性が望まれる使用法(仮想アドレスの拡張、絶対ア
ドレス指定、空間DXへのアクセス等)による。
このように、呼び出されるプロシージャAPEに到達す
る第1のディスクリプタがCASD型の場合、例えば、
命令INATの実行を伴う呼び出しプロシージャ(コー
ル)の時に、ダイナミックな変化が起こる。このアクセ
スは、第18図に図示した方法によって実施される。命令
カウンタレジスタICは、00にセットされたフィール
ドTAGを備える32ビットフォーマットを有する。空間
EAPCBでは、レジスタICは、命令コードテーブル
(テーブルCODE)でのエントリENTのアドレスを
指示する、命令ENTは、ベースレジスタBR7を呼び
出す間接を示す有効なアドレスとして公知のアドレスフ
ィールドを含む(アメリカ合衆国特許第4,385,352号及
び4,297,743号を参照)。ベースレジスタBR7の内容
と組み合わされた指示アドレスの拡張は、リンクテーブ
ル(LKS)内のエントリを指示する。その内容によっ
て、新アドレス空間NEAに配置されたPD32型の実プ
ロシージャディスクリプタPDを指示することができ
る。ディスクリプタPDのフィールドTAGは、値01
にセットされており、ダブルワードフォーマットを意味
する。ディスクリプタPDのセグメント化されたアドレ
スフィールドは、ディスクリプタCASDの対応するフ
ィールドの内容がロードされている。従って、システム
は、従来のように、ディスクリプタPDの第1のワード
を使用して、新アドレス空間NEAのテーブルCODE
内で呼び出されたプロシージャAPEの命令コードのエ
ントリを決定し、ディスクリプタPDの第2のワードを
使用して、リンクテーブルLKSにおける対応するエン
トリを設定し、呼び出されたプロシージャAPEを実行
するのに必要な情報を検索する。
また、レジスタICのフィールドTAGは、ディスクリ
プタCASDの第1のワードのビット2及び3にロード
されている。このディスクリプタは、次に、直接ディス
クリプタ(TAG=00)になる。また、プロセス実行
モードは、32/64モード(ES=01)に変化する。
リターン命令EXITの実行中、32/64モードへのダイ
ナミック変化が起こり、呼び出しプロシージャAPTが
そのモードで実行可能ならば、すなわち、言い換えれ
ば、対応するスタック素子のワードSAMの「フォーマ
ット」フィールド(最初の4ビット)が0100に等し
い時、スタックからゾーZSが除去される。
・ケース#2(DYN2):32/64モードから32/64モ
ードへ(擬似変化) プロセスが32/64モードで実行される時、ダイナミック
モード変化機構は、現アドレス空間EACを変化させる
のに使用される。この場合、ダイナミック変化機構は、
上記のものに類似しており、第19図に図示したもので
ある。ディスクリプタCASDは、新アドレス空間でプ
ロシージャディスクリプタDを指示するのに使用され
る。また、レジスタICのフィールドTAGは、ディス
クリプタCASDの第1のワードのビット2及び3のフ
ィールドにロードされる。さらに、レジスタCSRは、
ディスクリプタCASEの第2のワードの内容(前段の
内容は、スタックにセーブされている)がロードされ
る。プロセスの実行モードは、32/64モードのままであ
ることが分かる。
・ケース#3(DYN3):32/64モードから32モード
へ プロセスが32/64モードで実行される時、命令ENTに
よってダイナミック変化が可能になる。この変化は、デ
ィスクリプタCADのビット2及び3のフィールドが1
0の時、実施される。対応するダイナミック変化機構を
第20図に図示した。
再度、ディスクリプタCASDを使用して、プロシージ
ャディスクリプタPDを選択する。また、レジスタIC
のフィールドTAGは00にセットされ、レジスタCS
RはディスクリプタCASDの第2のワードの内容がロ
ードされる(前段の内容はスタックにセーブされてい
る)。さらに、プロセス実行モードは、32モードに変化
する。
命令EXITが実行される時、ダイナミック変化は、ス
タックのワードSAMの最初の4つのビットの値によっ
て行われる(0000=32モード、または、0100=
32/64モード)。
このように、実行モードのダイナミック変化によって、
32ビットフォーマットで書き込まれた現プログラムに対
する大きな柔軟性がユーザに与えられる。これらのプロ
グラム(符号を含む)は、64ビットメモリ領域DXで配
置される。また、64ビットフォーマットに書き込まれ、
32/64モードで実行できるプロシージャ及びその他のプ
ログラム及び/またはサブルーチンを呼び出すことがで
きる。この実行モードでは、プログラムは、32ビットア
ドレス指定と64ビットアドレス指定の両方の型のアドレ
ス指定を管理することができる。
本発明は、上記に記載した方法のみに限定されるもので
はなく、様々に変更した、上記の方法を使用するハード
ウェア及びソフトウェアを含む情報処理システムに関す
るものである。本発明によるシステムは、1つまたは複
数の中央プロセッサCPU106及び中央メモリMMU102
を中心に構成されたプロセッササブシステムを備え、各
プロセッサは、周辺サブシステム104、特に、仮想アド
レス用の十分な容量を有する大容量メモリ手段に対する
入力/出力用コントローラIOC108及び中央メモリ102
を管理するマイクロプログラム制御される手段と、ソフ
トウェア手段、特に、マイクロプログラム制御される手
段と協動して本発明による方法を使用することを可能に
するオペレーティングシステムの名で含まれるプログラ
ムのセットを備える。具体的には、本発明のコンテキス
トで記載されたと特定の操作は、ソフトウェア及び/ま
たはマイクロプログラミング及び/または論理回路によ
って実行される。
【図面の簡単な説明】
第1図は、本発明の方法を使用する情報処理システムの
回路図であり、 第2図は、本発明による仮想メモリのセグメンテーショ
ンの概略図であり、 第3図は、本発明によるメモリ領域の32及び64ビットへ
の組織化の概略図であり、 第4図は、本発明による、サイズが64ビットの第1のデ
ータディスクリプタ4GB/ITS64のフォーマットF
X2の概略図であり、 第5図は、第4図に図示したディスクリプタに基づくア
ドレス拡張の概略図であり、 第6図は、本発明による、サイズが64ビットの別のデー
タディスクリプタ64K/4MB/ITS64のフォーマッ
トFX1の概略図であり、 第7図は、第6図に図示したディスクリプタに基づくア
ドレス拡張の概略図であり、 第8図は、本発明の実行に使用される、サイズが32ビッ
トのデータディスクリプタ64K/4MB/ITS32のフ
ォーマットFLの概略図であり、 第9図は、本発明によるレジスタCSRのフォーマット
の概略図であり、 第10図は、本発明による、フィジカルメモリ中の、サ
イズが64ビットの絶対アドレスディスクリプタAA64の
フォーマットの概略図であり、 第11図(1)及び第11図(2)は、本発明によるプロセス
制御ブロックPCBの概略図であり、 第12図は、本発明によるスタック素子の概略図であ
り、 第13図は、32モード及び32/64モードで使用されるプ
ロシージャディスクリプタPD32の概略図であり、 第14図は、アドレス空間変化の場合に使用されるプロ
シージャディスクリプタCASDの概略図であり、 第15図は、64モードで使用されるプロシージャディス
クリプタPD64の概略図であり、 第16図は、本発明で使用される命令カウンタレジスタ
ICの1フォーマットの概略図であり、 第17図は、本発明のコンテキストで使用される、プロ
シージャディスクリプタ型のプロシージャの呼び出しの
基本的な機構の概略図であり、 第18図、第19図及び第20図は、本発明で説明した
ケース1、2及び3で、プロセス実行モードのダイナミ
ック変化の機構の概略図である。 (主な参照番号) 100…プロセッササブシステム 102…中央メモリ 104…周辺サブシステム 106…中央プロセッサ 108…入力/出力コントローラ 110…周辺制御装置 112…アダプタ、104…周辺機器

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】仮想アドレス式の情報処理システムにおけ
    るメモリ操作方法であって、 サイズがNXビットの論理アドレスの周囲に第1のメモ
    リ領域DXを設け、 上記メモリ領域DX中に、同一の構造で、サイズがNX
    より小さいNLビットの相対アドレス指定を可能にする
    複数のアドレス空間EAXを決定し、 対応する空間EAXの識別子を受けるための少なくとも
    1つのフィールドを含む補足のゾーンを使用して、サイ
    ズNLの相対アドレス指定フォーマットFLの拡張によ
    って、上記空間EAXにアクセスするためのサイズNX
    の第1のアドレス指定フォーマットFX1を構築し、 上記アドレス空間EAXの1つを現アドレス空間EAC
    として、サイズがNLビットのアドレスの周囲に設けら
    れ第2のメモリ領域DLに一時的且つ交換可能に割り当
    てる、 ことを特徴とする方法。
  2. 【請求項2】さらに、上記補足のゾーンに含まれる上記
    現アドレス空間EACの識別子をリザーブレジスタ(レ
    ジスタCSR)に記憶することを特徴とする請求項1に
    記載の方法。
  3. 【請求項3】上記メモリ領域DLは、上記アドレス指定
    空間EAXの構造と同一構造の永久アドレス指定空間E
    APCBを備え、該空間EAPCBは値が0に等しい識
    別子によって上記領域DX内においてマーク可能である
    請求項1または請求項2に記載の方法。
  4. 【請求項4】上記アドレス指定空間は、場合によって
    は、複数のサイズを備え、及び/または、複数のプロセ
    スによって分割共有できるセグメント型であることを特
    徴とする請求項1または請求項2に記載の方法。
  5. 【請求項5】サイズNXの別のアドレス指定フォーマッ
    トFX2からアクセスできる複数のセグメントは、上記
    メモリゾーンDX中に形成されることを特徴とする請求
    項1または請求項2に記載の方法。
  6. 【請求項6】上記フォーマットFX1及びFX2は、上
    記のフィジカルメモリにおいて絶対アドレス指定を可能
    にすることのできる変形AA64を内蔵することを特徴と
    する請求項1または請求項2に記載の方法。
  7. 【請求項7】上記アドレス指定サイズNX及びNLの両
    方をサポートするプロセス実行モード(32/64モード)
    を決定することを特徴とする請求項1または請求項2に
    記載の方法。
  8. 【請求項8】上記のアドレス指定サイズNLをサポート
    する別のプロセス実行モード(32モード)を決定し、上
    記の2つのプロセスモード(32モード及び32/64モー
    ド)はダイナミック変換によって自動的に、または、プ
    ログラミングによって、1つのモードから別のモードの
    切り換えできることを特徴とする請求項7に記載の方
    法。
  9. 【請求項9】さらに、 上記のサイズNLのアドレス空間、すなわち、上記空間
    EAX及び場合によっては上記空間EAPCBとして、
    基本構造が同一のプロシージャディスクリプタを選択
    し、 上記プロシージャディスクリプタPDと基本構造が同一
    のアドレス空間変換ディスクリプタ(以下、CASDと
    呼ぶ)を決定し、 所定のアドレス空間で実行できるプロセスで始め、上記
    CASD型ディスクリプタによって、別のアドレス空間
    で実行されるプロシージャAPDの呼び出しを可能にす
    る、 ことを特徴とする請求項1または請求項2に記載の方
    法。
  10. 【請求項10】上記CASD型ディスクリプタは、上記の
    呼び出されたプロシージャAPEを含むアドレス空間の
    識別子と、その新アドレス空間NEAにおける呼び出さ
    れたプロシージャのポインタを受けるためのフィールド
    を備えることを特徴とする請求項9に記載の方法。
  11. 【請求項11】上記アドレス指定サイズNX及びサイズN
    Lの両方をサポートする第1及び第2のプロセス(32/6
    4モード)を決定し、この2つの実行モードはどちらか
    からもう一方に切り換えることができ、自動切り換え
    は、CASD型ディスクリプタを表すコード型式のプロ
    シージャディスクリプタの識別によってプロシージャ呼
    び出しでダイナミックに行われることを特徴とする請求
    項10に記載の方法。
  12. 【請求項12】単位命令を実行するプロセスは、ベースレ
    ジスタBRとして公知のアドレスレジスタを使用し、サ
    イズNL及びNXのベースレジスタの2つのセットを決
    定し、メモリゾーンBREM中に、対応するレジスタB
    Riにロードされるまたはそれから抽出されるアドレス
    のサイズNL及びNXを示す各ビットBREMiの内容
    のためのマスクを設け、上記アドレス移動時に、上記対
    応するサイズビットBREMiの内容でロードされたま
    たは抽出されたアドレスの互換性を確認し、使用できる
    ならば、該対応サイズビットBREMiの結果として、
    変化させて、自動アドレス縮小または拡張を実行するこ
    とを特徴とする請求項1または請求項2に記載の方法。
  13. 【請求項13】仮想アドレス式メモリの操作方法を実行す
    る情報処理システムであって、1つまたは複数の中央プ
    ロセッサCPU106と中央メモリMMU102を中心にして
    構成されたプロセッササブシステム100を備え、各中央
    プロセッサは、特に仮想アドレス指定に十分な大容量の
    メモリ手段を有する周辺サブシステム104に動作的に接
    続された入力/出力コントローラIOC108と上記中央
    メモリの管理を実行するためのマイクロプログラミング
    制御される手段と、該マイクロプログラミング制御され
    る手段と協動して、以下の操作方法を実行するオペレー
    ティングシステムの名で集められたプログラムのセット
    を特に含むソフトウェアとを備えており、上記操作方法
    は サイズがNXビットの論理アドレスの周囲に第1のメモ
    リ領域DXを設け、 上記メモリ領域DX中に、同一の構造で、サイズがNL
    ビット(但し、NLはNXより小さい)の相対アドレス
    指定を可能にする複数のアドレス空間EAXを画成し 上記アドレス空間EAXの1つ(以後、現在のアドレス
    空間EACと呼ぶ)を、サイズがNXより小さいNLビ
    ットのアドレスの周辺に組織化された第2のメモリ領域
    DLに一時的且つ交換可能に割り当てる、 ことを含むことを特徴とする装置。
JP2269291A 1989-10-06 1990-10-06 仮想アドレス式情報処理システムにおけるメモリの使用方法及びこの方法を実施するための装置 Expired - Fee Related JPH067377B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8913110A FR2652926B1 (fr) 1989-10-06 1989-10-06 Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
FR8913110 1989-10-06

Publications (2)

Publication Number Publication Date
JPH03126144A JPH03126144A (ja) 1991-05-29
JPH067377B2 true JPH067377B2 (ja) 1994-01-26

Family

ID=9386179

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2269291A Expired - Fee Related JPH067377B2 (ja) 1989-10-06 1990-10-06 仮想アドレス式情報処理システムにおけるメモリの使用方法及びこの方法を実施するための装置

Country Status (7)

Country Link
US (1) US5129070A (ja)
EP (1) EP0421845B1 (ja)
JP (1) JPH067377B2 (ja)
AT (1) ATE142035T1 (ja)
DE (1) DE69028269T2 (ja)
ES (1) ES2093639T3 (ja)
FR (1) FR2652926B1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0492970B1 (en) * 1990-12-21 1995-08-02 Sun Microsystems, Inc. Method and apparatus for extending computer architecture from thirty-two to sixty-four bits
JPH0546447A (ja) * 1991-08-08 1993-02-26 Hitachi Ltd 空き領域検索方法
US5826057A (en) * 1992-01-16 1998-10-20 Kabushiki Kaisha Toshiba Method for managing virtual address space at improved space utilization efficiency
JP3219826B2 (ja) * 1992-02-21 2001-10-15 日本電気株式会社 情報処理装置
US5295081A (en) * 1992-10-30 1994-03-15 International Business Machines Corporation Concurrent interactive wire editing
JPH06231047A (ja) * 1993-02-05 1994-08-19 Fujitsu Ltd アドレス変換方法および装置
JPH06230977A (ja) * 1993-02-05 1994-08-19 Nec Corp 言語処理装置
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
US5956751A (en) * 1995-06-28 1999-09-21 Industrial Technology Research Institute Computer memory management system using physical segmentation space allocation
US5732404A (en) * 1996-03-29 1998-03-24 Unisys Corporation Flexible expansion of virtual memory addressing
US6167498A (en) * 1997-10-02 2000-12-26 Cirrus Logic, Inc. Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
FR2787901B1 (fr) 1998-12-28 2001-02-09 Bull Sa Organisation memoire par zones physiques
US6449710B1 (en) * 1999-10-29 2002-09-10 Stmicroelectronics, Inc. Stitching parcels
US6898697B1 (en) * 2002-03-29 2005-05-24 Advanced Micro Devices, Inc. Efficient method for mode change detection and synchronization
US7397809B2 (en) * 2002-12-13 2008-07-08 Conexant Systems, Inc. Scheduling methods for combined unicast and multicast queuing
US7574419B2 (en) * 2004-05-13 2009-08-11 Oracle International Corporation Automatic tuning of undo retention
US8756200B2 (en) * 2004-05-14 2014-06-17 Oracle International Corporation Undo advisor
US7885939B2 (en) * 2005-10-11 2011-02-08 Oracle International Corporation Longest query duration for auto tuning undo retention
US7801932B2 (en) * 2005-10-11 2010-09-21 Oracle International Corporation Undo hints to speed up segment extension and tuning of undo retention
US20070143352A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Method and system for implementing database migration using a staged approach
US9053053B2 (en) * 2010-11-29 2015-06-09 International Business Machines Corporation Efficiently determining identical pieces of memory used by virtual machines
US9201678B2 (en) 2010-11-29 2015-12-01 International Business Machines Corporation Placing a virtual machine on a target hypervisor
US9323654B2 (en) * 2013-07-17 2016-04-26 Infineon Technologies Ag Memory access using address bit permutation
US9778945B2 (en) * 2015-02-10 2017-10-03 Red Hat Israel, Ltd. Providing mode-dependent virtual machine function code

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2046834C3 (de) * 1970-09-23 1975-04-24 Gesellschaft Fuer Kernforschung Mbh, 7500 Karlsruhe Einrichtung zum Optimieren der Ausnutzung des virtuellen Speichers einer Datenverarbeitungseinrichtung
US3820078A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Multi-level storage system having a buffer store with variable mapping modes
FR2230258A5 (ja) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
FR2253425A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
FR2258112A5 (ja) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US4206503A (en) * 1978-01-10 1980-06-03 Honeywell Information Systems Inc. Multiple length address formation in a microprogrammed data processing system
US4363091A (en) * 1978-01-31 1982-12-07 Intel Corporation Extended address, single and multiple bit microprocessor
US4258419A (en) * 1978-12-29 1981-03-24 Bell Telephone Laboratories, Incorporated Data processing apparatus providing variable operand width operation
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
JPS6086637A (ja) * 1983-10-19 1985-05-16 Fujitsu Ltd 拡張仮想記憶制御方式
JPS623358A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd 複数アドレス空間アクセス方式
US4730249A (en) * 1986-01-16 1988-03-08 International Business Machines Corporation Method to operate on large segments of data in a virtual memory data processing system
JPH0679288B2 (ja) * 1987-07-21 1994-10-05 富士通株式会社 拡張仮想記憶制御方法
US4970639A (en) * 1988-05-20 1990-11-13 International Business Machines Corporation Virtual machine architecture independent program loader

Also Published As

Publication number Publication date
JPH03126144A (ja) 1991-05-29
US5129070A (en) 1992-07-07
FR2652926B1 (fr) 1994-07-08
EP0421845A1 (fr) 1991-04-10
EP0421845B1 (fr) 1996-08-28
ES2093639T3 (es) 1997-01-01
DE69028269D1 (de) 1996-10-02
DE69028269T2 (de) 1997-01-09
ATE142035T1 (de) 1996-09-15
FR2652926A1 (fr) 1991-04-12

Similar Documents

Publication Publication Date Title
JPH067377B2 (ja) 仮想アドレス式情報処理システムにおけるメモリの使用方法及びこの方法を実施するための装置
US5991871A (en) Application binary interface and method of interfacing binary application program to digital computer
US5539899A (en) System and method for handling a segmented program in a memory for a multitasking data processing system utilizing paged virtual storage
US4385352A (en) Addressing of operands within a segment utilizing segment descriptors
US4511964A (en) Dynamic physical memory mapping and management of independent programming environments
US6523090B2 (en) Shared instruction cache for multiple processors
US5991757A (en) Method and system for searching an array for an array value
US6256715B1 (en) System and method of performing gateway access
US6070173A (en) Method and apparatus for assisting garbage collection process within a java virtual machine
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
US4300192A (en) Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4903234A (en) Memory system
US5960465A (en) Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table
US4466056A (en) Address translation and generation system for an information processing system
US6549995B1 (en) Compressor system memory organization and method for low latency access to uncompressed memory regions
US5860144A (en) Addressing method and system for providing access of a very large size physical memory buffer to a number of processes
JPH0654479B2 (ja) 仮想記憶方式
CA1172375A (en) Program call method
US5317706A (en) Memory expansion method and apparatus in a virtual memory system
US5423013A (en) System for addressing a very large memory with real or virtual addresses using address mode registers
EP0403124A2 (en) Overlay swapping
US5283878A (en) Method and apparatus for encoding data types for object identification
EP0543032A1 (en) Expanded memory addressing scheme
EP0389886B1 (en) Ring reduction logic mechanism
KR930003439B1 (ko) 가상 메모리 관리를 위한 메모리 구조 및 시스템

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees