JPH0330897B2 - - Google Patents
Info
- Publication number
- JPH0330897B2 JPH0330897B2 JP58160199A JP16019983A JPH0330897B2 JP H0330897 B2 JPH0330897 B2 JP H0330897B2 JP 58160199 A JP58160199 A JP 58160199A JP 16019983 A JP16019983 A JP 16019983A JP H0330897 B2 JPH0330897 B2 JP H0330897B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- block
- physical
- address
- physical memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の詳細な説明】
本発明は一般的には、各々がいくつかの動的構
造(dynamic structure)より成る多数の独立し
たプログラム環境(programming
environment)を有するコンピユータ・システム
におけるメモリ管理方式に関し、より具体的に
は、この発明は独立したプログラム環境相互間の
干渉を最小限度にするか、少なくとも減らすメモ
リ管理方式に関する。
造(dynamic structure)より成る多数の独立し
たプログラム環境(programming
environment)を有するコンピユータ・システム
におけるメモリ管理方式に関し、より具体的に
は、この発明は独立したプログラム環境相互間の
干渉を最小限度にするか、少なくとも減らすメモ
リ管理方式に関する。
コンピユータ技術で明らかな問題は、コンピユ
ータの能力を最大限に利用するようにコンピユー
タの資源を効率的に管理する必要があることであ
る。メモリの容量、計算速度および計算能力が増
大するにつれて、新世代の単一ユーザ・コンピユ
ータは多数のタスクを同時に処理することができ
るようになつてきた。単一ユーザにとつて、自分
自身のコンピユータを1つのタスクに専念させた
り、同時に多数のタスクを実行させたりするる融
通性は有益である。従つて、いくつかのタスクを
互いに干渉することなく同時に実行できる状態
(active)にすることができるメモリ管理方式を
開発することは有益である。単一ユーザ・コンピ
ユータにとつて特に重要なことは、他のプログラ
ムを実行しながらあるプログラムを入力したり、
編集したり、デバツグしたりする能力である。
ータの能力を最大限に利用するようにコンピユー
タの資源を効率的に管理する必要があることであ
る。メモリの容量、計算速度および計算能力が増
大するにつれて、新世代の単一ユーザ・コンピユ
ータは多数のタスクを同時に処理することができ
るようになつてきた。単一ユーザにとつて、自分
自身のコンピユータを1つのタスクに専念させた
り、同時に多数のタスクを実行させたりするる融
通性は有益である。従つて、いくつかのタスクを
互いに干渉することなく同時に実行できる状態
(active)にすることができるメモリ管理方式を
開発することは有益である。単一ユーザ・コンピ
ユータにとつて特に重要なことは、他のプログラ
ムを実行しながらあるプログラムを入力したり、
編集したり、デバツグしたりする能力である。
この活動(active)タスクが複数存在するとい
うことはコンピユータのメモリ内の動的構造の複
雑さを増加させ、それによつて動的構造を効率的
に管理する必要性が増大する。従つて、メモリを
別のタスクに利用できるようにするためにメモリ
内のあるタスクを移動させるというような、独立
したタスク間の予期しない相互干渉を減らした
り、最小限度に押さえたりするメモリ管理方式が
必要とされている。
うことはコンピユータのメモリ内の動的構造の複
雑さを増加させ、それによつて動的構造を効率的
に管理する必要性が増大する。従つて、メモリを
別のタスクに利用できるようにするためにメモリ
内のあるタスクを移動させるというような、独立
したタスク間の予期しない相互干渉を減らした
り、最小限度に押さえたりするメモリ管理方式が
必要とされている。
一般に、単一ユーザ・単一タスク・システムに
さえ利用される動的構造には各種の種類がある。
コンピユータに入力されるプログラムは、テキス
トのままの形と、機械で実行可能な形の双方でメ
モリに記憶される。また、各種のデータ構造がメ
モリに記憶される。データを後入れ先出し方式で
記憶したり呼出したりする、スタツクという特殊
なデータ構造も、一時的なデータの記憶用、また
入れ子状になつて(nested)関数やサブルーチン
を伴うプログラムのコントロール・フローの管理
用にしばしば使用される。前述のデータ構造はみ
な、メモリ割当拡張、割当解除を動作時間中に行
うことを必要とする意味で動的構造である。
さえ利用される動的構造には各種の種類がある。
コンピユータに入力されるプログラムは、テキス
トのままの形と、機械で実行可能な形の双方でメ
モリに記憶される。また、各種のデータ構造がメ
モリに記憶される。データを後入れ先出し方式で
記憶したり呼出したりする、スタツクという特殊
なデータ構造も、一時的なデータの記憶用、また
入れ子状になつて(nested)関数やサブルーチン
を伴うプログラムのコントロール・フローの管理
用にしばしば使用される。前述のデータ構造はみ
な、メモリ割当拡張、割当解除を動作時間中に行
うことを必要とする意味で動的構造である。
利用できるメモリを最も効率的に活用するため
には、この動的構造に各一定量のメモリを割当て
るのではなく、必要とされる量だけ可変量のメモ
リを動的に割当てる必要がある。固定割当てで
は、ほとんどの場合、割当てられたメモリの大半
が結局は使用されないと共に、構造の各々に割当
てられるメモリに融通性のない上限を課すことに
なる。1979年、ジヨン・ワイリー・アンド・サン
ズ社(John Wiley and Sons)より発行され、
ブラウン(P.J.Brown)氏の「対話型コンパイラ
とインタプリンタの作成」(“Writing
Interactive Compilers and Interpreters”)とい
う表題の付された著作の77ページ以降に説明され
ているように、複数の動的構造を利用するには、
ある動的構造の情報を別の動的構造の情報に重ね
書きすることにより別の動的構造を破壊してしま
うことを避けるためのメモリ管理方式が必要であ
る。典型的な動的構造には固定端及び情報を加え
たり除去したりする可動端をそれぞれ1つ有す
る。第1A図ないし第1C図に示すように、動的
構造の各対のメモリに背中合せに記憶し、各構造
の動的な端が互いに離れる方向に伸びて行くよう
にすることによつてメモリ管理を多少簡単にする
ことができる。このようなメモリ管理方式におい
ては、第1B図の構造2と3の動的な端のような
2つの動的な端がぶつかつたとき、特別な処置が
必要とされる。すなわち、メモリをこの2つの動
的な構造に利用できるようにするためには、1つ
かそれ以上の動的な構造を移動し、それによりぶ
つかり合つた2つの動的な端の間に再度空白を作
らなければならない。第1C図に示されている例
は、未使用のメモリを動的構造2と3に利用でき
るようにするために、第1B図における動的構造
1と2を上へまた動的構造3と4を下へ移動させ
た結果を示す。この方式はメモリを最大限に利用
できるものではあるが、1つかそれ以上のメモ
リ・ブロツクを移動させるという時間のかかる処
理をともなうという犠牲を支払わなければならな
い。またこの方式では、固定アドレス・ポインタ
は使用できない。すなわちメモリのブロツク移動
により、動的構造の固定端が移動したときでもす
べてのポインタが指示するアドレスは関連する動
的構造の固定端に対しての相対アドレスとなつて
いなければならない。いずれにしても、使用する
メモリの領域の拡張のために動的構造が利用でき
る空間は、アドレス空間の上限と下限を形成する
2つの境界で制限される。
には、この動的構造に各一定量のメモリを割当て
るのではなく、必要とされる量だけ可変量のメモ
リを動的に割当てる必要がある。固定割当てで
は、ほとんどの場合、割当てられたメモリの大半
が結局は使用されないと共に、構造の各々に割当
てられるメモリに融通性のない上限を課すことに
なる。1979年、ジヨン・ワイリー・アンド・サン
ズ社(John Wiley and Sons)より発行され、
ブラウン(P.J.Brown)氏の「対話型コンパイラ
とインタプリンタの作成」(“Writing
Interactive Compilers and Interpreters”)とい
う表題の付された著作の77ページ以降に説明され
ているように、複数の動的構造を利用するには、
ある動的構造の情報を別の動的構造の情報に重ね
書きすることにより別の動的構造を破壊してしま
うことを避けるためのメモリ管理方式が必要であ
る。典型的な動的構造には固定端及び情報を加え
たり除去したりする可動端をそれぞれ1つ有す
る。第1A図ないし第1C図に示すように、動的
構造の各対のメモリに背中合せに記憶し、各構造
の動的な端が互いに離れる方向に伸びて行くよう
にすることによつてメモリ管理を多少簡単にする
ことができる。このようなメモリ管理方式におい
ては、第1B図の構造2と3の動的な端のような
2つの動的な端がぶつかつたとき、特別な処置が
必要とされる。すなわち、メモリをこの2つの動
的な構造に利用できるようにするためには、1つ
かそれ以上の動的な構造を移動し、それによりぶ
つかり合つた2つの動的な端の間に再度空白を作
らなければならない。第1C図に示されている例
は、未使用のメモリを動的構造2と3に利用でき
るようにするために、第1B図における動的構造
1と2を上へまた動的構造3と4を下へ移動させ
た結果を示す。この方式はメモリを最大限に利用
できるものではあるが、1つかそれ以上のメモ
リ・ブロツクを移動させるという時間のかかる処
理をともなうという犠牲を支払わなければならな
い。またこの方式では、固定アドレス・ポインタ
は使用できない。すなわちメモリのブロツク移動
により、動的構造の固定端が移動したときでもす
べてのポインタが指示するアドレスは関連する動
的構造の固定端に対しての相対アドレスとなつて
いなければならない。いずれにしても、使用する
メモリの領域の拡張のために動的構造が利用でき
る空間は、アドレス空間の上限と下限を形成する
2つの境界で制限される。
別の一般的なメモリ管理方式においては、動的
構造はメモリの連続したセグメント上に生成され
る必要はなく、さらにメモリが必要となる主ルー
チンが共通のメモリのプールから制御可能な量の
メモリを取出してそれをメモリをさらに必要とし
ている動的構造に利用できるようにする。1つの
動的構造に利用できる各種のメモリ・ブロツクは
物理的に隣接している必要はなく、そのかわり
に、あるブロツクの終端をこのブロツクに論理的
に連続する次のブロツクの先頭にリンク(link)
するリンクト・リスト(linked list)構造をとつ
ている。一部のシステムでは、メモリの一部分が
使用されなくなると、その部分は自動的に共通の
メモリ・プールに戻される。この方式では、リン
クト・リスト構造を実現するために必要なポイン
タ・フイールドがメモリの一部を消費してしまう
点が欠点である。この方式ではまた、プログラム
が多数の小さなフラグメントに記憶され、それに
よつて実行中に数多くのジヤンプを必要とする。
たとえばN×Nの行列がこれらのフラグメントの
いくつかに分散して書込まれると、行列の乗算や
逆行列演算のような標準的な行列演算の実行中に
多くのジヤンプが必要とされることがある。この
ように、リンクト・リストの管理は複雑でエラー
を生じやすい。
構造はメモリの連続したセグメント上に生成され
る必要はなく、さらにメモリが必要となる主ルー
チンが共通のメモリのプールから制御可能な量の
メモリを取出してそれをメモリをさらに必要とし
ている動的構造に利用できるようにする。1つの
動的構造に利用できる各種のメモリ・ブロツクは
物理的に隣接している必要はなく、そのかわり
に、あるブロツクの終端をこのブロツクに論理的
に連続する次のブロツクの先頭にリンク(link)
するリンクト・リスト(linked list)構造をとつ
ている。一部のシステムでは、メモリの一部分が
使用されなくなると、その部分は自動的に共通の
メモリ・プールに戻される。この方式では、リン
クト・リスト構造を実現するために必要なポイン
タ・フイールドがメモリの一部を消費してしまう
点が欠点である。この方式ではまた、プログラム
が多数の小さなフラグメントに記憶され、それに
よつて実行中に数多くのジヤンプを必要とする。
たとえばN×Nの行列がこれらのフラグメントの
いくつかに分散して書込まれると、行列の乗算や
逆行列演算のような標準的な行列演算の実行中に
多くのジヤンプが必要とされることがある。この
ように、リンクト・リストの管理は複雑でエラー
を生じやすい。
別のメモリ管理技術においては、メモリは同一
の長さのページに分割される。1978年にプレンテ
イス・ホール社(Prentice Hall,Inc.)より発
行されたランス・A.レベンタール氏(Lance A.
Leventhal)の著になる「マイクロプロセツサ入
門:ソフトウエア,ハードウエア及びプログラミ
ング」(“Introduction to Microprocessions:
Software,Hardware and Programming”)と
いう表題の本の77ページから記載されているよう
に、ページに区分されたメモリを使用する主要な
目的は、直接アドレス指定モードでの命令のアド
レス部分の長さを短くすることである。ページに
区分するアドレス指定法においては、メモリ位置
のアドレスはそのページのページ番号とページ内
アドレスとで指定される。メモリ内のあるアドレ
スにアクセスする際、そのアドレスのページ番号
をページ・レジスタにロードし、次にページ内ア
ドレスを直接アドレス指定命令で指示する。ペー
ジ内アドレスを指示するのに必要なビツト長はえ
られたメモリ・アドレスを指示するのに必要な全
ビツト長より短いのが通例であるから、この技術
は命令のアドレス部分の長さを短縮する。
の長さのページに分割される。1978年にプレンテ
イス・ホール社(Prentice Hall,Inc.)より発
行されたランス・A.レベンタール氏(Lance A.
Leventhal)の著になる「マイクロプロセツサ入
門:ソフトウエア,ハードウエア及びプログラミ
ング」(“Introduction to Microprocessions:
Software,Hardware and Programming”)と
いう表題の本の77ページから記載されているよう
に、ページに区分されたメモリを使用する主要な
目的は、直接アドレス指定モードでの命令のアド
レス部分の長さを短くすることである。ページに
区分するアドレス指定法においては、メモリ位置
のアドレスはそのページのページ番号とページ内
アドレスとで指定される。メモリ内のあるアドレ
スにアクセスする際、そのアドレスのページ番号
をページ・レジスタにロードし、次にページ内ア
ドレスを直接アドレス指定命令で指示する。ペー
ジ内アドレスを指示するのに必要なビツト長はえ
られたメモリ・アドレスを指示するのに必要な全
ビツト長より短いのが通例であるから、この技術
は命令のアドレス部分の長さを短縮する。
リンクト・リスト法と同様に、ページに区分し
たメモリは必要に応じて動的構造に割当てること
ができる。しかしながら、この方式も前述したリ
ンクト・リスト法の欠点の大部分のものを有す
る。すなわち、ある動作の1ページを越えるメモ
リを必要とする場合、ページ間のジヤンプごとに
ページ・レジスタ内のページ番号を変更しなけれ
ばならない。両技術は仮想メモリ環境で非効率で
ある。というのは、使用されるメモリ領域がメモ
リ全体へ分散され、それによつて仮想メモリが多
量のスワツプ・インとスワツプ・アウト動作を行
う必要があるからである。また両技術は、インデ
スク修飾、ブロツク転送、サーチングのような隣
接するいくつかのメモリ・ブロツクを処理する数
多くの技術を利用するのに適していない。従つ
て、時間を費やすブロツク転送を必要とすること
なく、しかも各構造をアドレスの連続したいくつ
かのブロツクに記憶することができる能力を失う
ことなく、動的構造を拡大したり縮小したりする
ことができるメモリ管理方式が必要とされてい
る。
たメモリは必要に応じて動的構造に割当てること
ができる。しかしながら、この方式も前述したリ
ンクト・リスト法の欠点の大部分のものを有す
る。すなわち、ある動作の1ページを越えるメモ
リを必要とする場合、ページ間のジヤンプごとに
ページ・レジスタ内のページ番号を変更しなけれ
ばならない。両技術は仮想メモリ環境で非効率で
ある。というのは、使用されるメモリ領域がメモ
リ全体へ分散され、それによつて仮想メモリが多
量のスワツプ・インとスワツプ・アウト動作を行
う必要があるからである。また両技術は、インデ
スク修飾、ブロツク転送、サーチングのような隣
接するいくつかのメモリ・ブロツクを処理する数
多くの技術を利用するのに適していない。従つ
て、時間を費やすブロツク転送を必要とすること
なく、しかも各構造をアドレスの連続したいくつ
かのブロツクに記憶することができる能力を失う
ことなく、動的構造を拡大したり縮小したりする
ことができるメモリ管理方式が必要とされてい
る。
本発明に従えば、パーテイシヨンと呼ばれるい
くつかの独立したプログラム環境をメモリに記憶
することができると共に、互いの動作に干渉する
ことなく同時にパーテイシヨンを利用できるよう
にするメモリ管理方式が提供される。本発明に従
えば、アドレスは2つの関連している概念的に異
なる意味・機能(すなわち論理アドレスおよび物
理アドレス)を有するものとして使われる。すな
わち、論理アドレスとは、システムが情報を読み
出したり書き込んだりする抽象的なメモリ位置を
表すためのものである。また物理アドレスとは、
データを読み出したり書き込んだりするために物
理メモリ位置をアクセスするのに利用される。
くつかの独立したプログラム環境をメモリに記憶
することができると共に、互いの動作に干渉する
ことなく同時にパーテイシヨンを利用できるよう
にするメモリ管理方式が提供される。本発明に従
えば、アドレスは2つの関連している概念的に異
なる意味・機能(すなわち論理アドレスおよび物
理アドレス)を有するものとして使われる。すな
わち、論理アドレスとは、システムが情報を読み
出したり書き込んだりする抽象的なメモリ位置を
表すためのものである。また物理アドレスとは、
データを読み出したり書き込んだりするために物
理メモリ位置をアクセスするのに利用される。
論理アドレス空間と物理アドレス空間の間の結
合は本発明のメモリ管理方式の主要な機能であ
る。論理アドレス空間と物理アドレス空間を区別
する利点は、互いに隣接するいくつかのメモリ・
ブロツクを処理するコンピユータの技術(たとえ
ば、インデクス修飾、ブロツク転送、サーチン
グ)は論理メモリ空間に対する処理であるという
点にある。従つて、必要に応じて動的構造を論理
メモリの互いに隣接するいくつかのブロツクに入
力し、そして物理メモリ上においては、多分隣接
していないいくつかのブロツクにこの動的構造を
割り当てることができる。その結果、動的構造を
拡張する際、メモリのブロツク転送を行う必要は
ない。
合は本発明のメモリ管理方式の主要な機能であ
る。論理アドレス空間と物理アドレス空間を区別
する利点は、互いに隣接するいくつかのメモリ・
ブロツクを処理するコンピユータの技術(たとえ
ば、インデクス修飾、ブロツク転送、サーチン
グ)は論理メモリ空間に対する処理であるという
点にある。従つて、必要に応じて動的構造を論理
メモリの互いに隣接するいくつかのブロツクに入
力し、そして物理メモリ上においては、多分隣接
していないいくつかのブロツクにこの動的構造を
割り当てることができる。その結果、動的構造を
拡張する際、メモリのブロツク転送を行う必要は
ない。
システムの論理アドレス空間の管理、および物
理メモリと論理アドレス空間の各部分との結合は
オペレーテイング・システム(以下、OSと称す
る)実行する。このOS、特にそのメモリ管理モ
ジユールは、メモリの割当て、拡張、割当て解除
を実施するためのサービスを行うシステムのソフ
トウエア・モジユールである。この発明の主要な
概念は、システムの論理アドレス空間の各部分を
動的に物理メモリに対応付けるために使用する技
術である。
理メモリと論理アドレス空間の各部分との結合は
オペレーテイング・システム(以下、OSと称す
る)実行する。このOS、特にそのメモリ管理モ
ジユールは、メモリの割当て、拡張、割当て解除
を実施するためのサービスを行うシステムのソフ
トウエア・モジユールである。この発明の主要な
概念は、システムの論理アドレス空間の各部分を
動的に物理メモリに対応付けるために使用する技
術である。
この技術の基礎は、システムの論理アドレス空
間をパーテイシヨン論理アドレス空間(以下、パ
ーテイシヨンと称する)という個々の範囲に区分
することである。次に独立したプログラム環境の
各々に独自のパーテイシヨンが割当てられる。こ
の様な区分をすることの利点は、ある独立したプ
ログラム環境内の動的構造は、同一プログラム環
境内の他の動的構造とのみ衝突し(conflict)、
他のプログラム環境内の動的構造と衝突しないこ
とである。従来技術で説明した、動的データ構造
を固定するシステム・アドレス空間内の上端及び
下端は合計2つであつたが、この発明の区分法で
は各パーテイシヨン毎に2つ、すなわち論理アド
レス空間全体では多数の上下端が得られる。そし
て、各プログラム環境はそれ自身のパーテイシヨ
ンにある。各パーテイシヨンがシステム内の物理
メモリより大きいため、プログラム環境には新し
いメモリの制限が課されない。それにもかかわら
ず、1つのパーテイシヨンだけで有効な物理メモ
リの全部を利用することができる。
間をパーテイシヨン論理アドレス空間(以下、パ
ーテイシヨンと称する)という個々の範囲に区分
することである。次に独立したプログラム環境の
各々に独自のパーテイシヨンが割当てられる。こ
の様な区分をすることの利点は、ある独立したプ
ログラム環境内の動的構造は、同一プログラム環
境内の他の動的構造とのみ衝突し(conflict)、
他のプログラム環境内の動的構造と衝突しないこ
とである。従来技術で説明した、動的データ構造
を固定するシステム・アドレス空間内の上端及び
下端は合計2つであつたが、この発明の区分法で
は各パーテイシヨン毎に2つ、すなわち論理アド
レス空間全体では多数の上下端が得られる。そし
て、各プログラム環境はそれ自身のパーテイシヨ
ンにある。各パーテイシヨンがシステム内の物理
メモリより大きいため、プログラム環境には新し
いメモリの制限が課されない。それにもかかわら
ず、1つのパーテイシヨンだけで有効な物理メモ
リの全部を利用することができる。
OSのメモリ管理モジユールは、各種のパーテ
イシヨンへの物理メモリの割当てを管理する。物
理メモリは必要な時のみ論理アドレス空間のブロ
ツクと結合される。メモリ管理モジユールは、特
定のパーテイシヨン内の動的構造への要求に応じ
て物理メモリをそのパーテイシヨンに割当てる。
パーテイシヨンにそのように割当てられたどの動
的構造でもその論理アドレス空間に対応して物理
メモリが確実に割当てられるようにするのがメモ
リ管理モジユールの責務である。
イシヨンへの物理メモリの割当てを管理する。物
理メモリは必要な時のみ論理アドレス空間のブロ
ツクと結合される。メモリ管理モジユールは、特
定のパーテイシヨン内の動的構造への要求に応じ
て物理メモリをそのパーテイシヨンに割当てる。
パーテイシヨンにそのように割当てられたどの動
的構造でもその論理アドレス空間に対応して物理
メモリが確実に割当てられるようにするのがメモ
リ管理モジユールの責務である。
現在どのプログラム環境によつても使用されて
いないメモリを管理するためにシステム論理アド
レス空間の1つのパーテイシヨンが使用される。
この特別なパーテイシヨンはすべての未割当物理
メモリを含み、プログラム環境としては使用する
ことができない。あるパーテイシヨンから十分な
サイズの動的構造が割当てを解除されるか、パー
テイシヨン全体が割当てを解除されると、物理メ
モリはこの特別なパーテイシヨンに戻される。あ
るパーテイシヨンが物理メモリの拡張を要求する
と、メモリ管理モジユールは未割当物理メモリが
入つているこの特別なパーテイシヨンから新しい
メモリを必要とするパーテイシヨンに物理メモリ
を割当てる。全部の物理メモリが標準的なパーテ
イシヨンに割当てられ、そして未使用の物理メモ
リのパーテイシヨンが使い果たされたときになつ
て始めて、ある独立したパーテイシヨン内の構造
の動的割当てが別のパーテイシヨンに影響をあた
える。
いないメモリを管理するためにシステム論理アド
レス空間の1つのパーテイシヨンが使用される。
この特別なパーテイシヨンはすべての未割当物理
メモリを含み、プログラム環境としては使用する
ことができない。あるパーテイシヨンから十分な
サイズの動的構造が割当てを解除されるか、パー
テイシヨン全体が割当てを解除されると、物理メ
モリはこの特別なパーテイシヨンに戻される。あ
るパーテイシヨンが物理メモリの拡張を要求する
と、メモリ管理モジユールは未割当物理メモリが
入つているこの特別なパーテイシヨンから新しい
メモリを必要とするパーテイシヨンに物理メモリ
を割当てる。全部の物理メモリが標準的なパーテ
イシヨンに割当てられ、そして未使用の物理メモ
リのパーテイシヨンが使い果たされたときになつ
て始めて、ある独立したパーテイシヨン内の構造
の動的割当てが別のパーテイシヨンに影響をあた
える。
論理アドレスを物理メモリに対応付ける前述の
方式は、メモリ・コントローラによつてハードウ
エア内で支援される。各メモリ・コントローラは
メモリ・チツプの密度によつて16個または32個の
物理メモリのブロツクを支援する。なお、物理メ
モリの1ブロツクは16kバイトを表す。物理メモ
リの各ブロツクにはマツパ・レジスタ対応付けら
れている。そして各マツパ・レジスタの内容はそ
のレジスタに対応付けられた物理メモリのブロツ
クがが応答すべき論理アドレスを決定する。メモ
リ・コントローラ内にあるこれらのマツパ・レジ
スタはOSのメモリ管理モジユールによつて書込
まれる。メモリ管理モジユールは、論理アドレス
を物理メモリのブロツクに対応するマツパ・レジ
スタに書込むことによつて、システムの論理アド
レス空間の任意の部分を物理メモリの特定のブロ
ツクに対応付けることができる。
方式は、メモリ・コントローラによつてハードウ
エア内で支援される。各メモリ・コントローラは
メモリ・チツプの密度によつて16個または32個の
物理メモリのブロツクを支援する。なお、物理メ
モリの1ブロツクは16kバイトを表す。物理メモ
リの各ブロツクにはマツパ・レジスタ対応付けら
れている。そして各マツパ・レジスタの内容はそ
のレジスタに対応付けられた物理メモリのブロツ
クがが応答すべき論理アドレスを決定する。メモ
リ・コントローラ内にあるこれらのマツパ・レジ
スタはOSのメモリ管理モジユールによつて書込
まれる。メモリ管理モジユールは、論理アドレス
を物理メモリのブロツクに対応するマツパ・レジ
スタに書込むことによつて、システムの論理アド
レス空間の任意の部分を物理メモリの特定のブロ
ツクに対応付けることができる。
以下で説明する好適な実施例においては、1個
の中央演算処理装置(以下、CPUと称する)、1
個の入出力プロセツサ(以下、IOPと称する)、
1個のメモリ・コントローラ、及びメモリ・コン
トローラに結合された等速呼出し記憶装置(以
下、RAMと称する)と固定記憶装置(以下、
ROMと称する)を含む基本システムから、いく
つかのCPU、いくつかのIPO、そして各々が4個
までのメモリ・バンクを管理する10個までのメモ
リ・コントローラを有する規膜システムまで拡張
可能である。本実施例の論理メモリ空間では16個
のメモリ・コントローラにアクセスすることがで
きようが、集積回路基板のサイズやコンピユータ
のサイズといつた物理的制約によつて物理的には
10個のメモリ・コントローラまでしかサポートさ
れない。メモリ・コントローラはメモリとシステ
ムの他の部分とのインタフエイス動作を受け持
つ。
の中央演算処理装置(以下、CPUと称する)、1
個の入出力プロセツサ(以下、IOPと称する)、
1個のメモリ・コントローラ、及びメモリ・コン
トローラに結合された等速呼出し記憶装置(以
下、RAMと称する)と固定記憶装置(以下、
ROMと称する)を含む基本システムから、いく
つかのCPU、いくつかのIPO、そして各々が4個
までのメモリ・バンクを管理する10個までのメモ
リ・コントローラを有する規膜システムまで拡張
可能である。本実施例の論理メモリ空間では16個
のメモリ・コントローラにアクセスすることがで
きようが、集積回路基板のサイズやコンピユータ
のサイズといつた物理的制約によつて物理的には
10個のメモリ・コントローラまでしかサポートさ
れない。メモリ・コントローラはメモリとシステ
ムの他の部分とのインタフエイス動作を受け持
つ。
プロセツサ相互間のまたはプロセツサとメモリ
の間の通信はすべてメモリ・プロセツサ母線(以
下、MPBと称する)を通して行われる。NPBに
接続された各CPUは、CPUとMPBの間の通信お
よび相互作用のすべてを処理するMPBインタフ
エイスを有する。これはMPBプロトコルによつ
て要求されるすべての動作を実行することによ
り、MPBのタイミングと制御をCPUから直接に
は見えない(transparent)ようにする。
の間の通信はすべてメモリ・プロセツサ母線(以
下、MPBと称する)を通して行われる。NPBに
接続された各CPUは、CPUとMPBの間の通信お
よび相互作用のすべてを処理するMPBインタフ
エイスを有する。これはMPBプロトコルによつ
て要求されるすべての動作を実行することによ
り、MPBのタイミングと制御をCPUから直接に
は見えない(transparent)ようにする。
メモリ・コントローラは、全部のチヤネルにつ
いてメモリの読み書きを処理する。メモリ・コン
トローラはメモリ・インタフエースとして動作
し、メモリをアクセスするのに必要なすべてのタ
イミングと制御信号を発生する。1個かそれ以上
のCPUからメモリ・コントローラへのMPBを介
しての通信によつて、論理メモリ・アドレス・ブ
ロツク番号をメモリ・コントローラ内のレジスタ
に入力することができる。これらレジスタの各々
は1ブロツクの物理メモリに対応付けられてい
る。与えられた論理ブロツクのブロツク番号をあ
る物理メモリのブロツクに対応付けられたレジス
タにロードすることによつて、その物理メモリの
ブロツクを論理メモリの与えられたブロツクに写
像(map)することができる。
いてメモリの読み書きを処理する。メモリ・コン
トローラはメモリ・インタフエースとして動作
し、メモリをアクセスするのに必要なすべてのタ
イミングと制御信号を発生する。1個かそれ以上
のCPUからメモリ・コントローラへのMPBを介
しての通信によつて、論理メモリ・アドレス・ブ
ロツク番号をメモリ・コントローラ内のレジスタ
に入力することができる。これらレジスタの各々
は1ブロツクの物理メモリに対応付けられてい
る。与えられた論理ブロツクのブロツク番号をあ
る物理メモリのブロツクに対応付けられたレジス
タにロードすることによつて、その物理メモリの
ブロツクを論理メモリの与えられたブロツクに写
像(map)することができる。
システム・デバイスは、論理メモリ位置のアド
レスを有するメモリ・アクセス・ワードをMPB
上に送出することによつて、その論理メモリ位置
にアクセスする。このアドレスの第1の部分がア
クセスされべき論理メモリ位置を含む論理メモ
リ・ブロツクのブロツク番号を指示し、アドレス
の残りの部分はそのブロツクのブロツク内アドレ
スを指示する。MPB上に送出された論理メモリ
位置がメモリ・コントローラ・レジスタに入力さ
れているブロツク番号に対応すると、対応する物
理メモリ位置に対してアクセスが行われる。パー
テイシヨンという、互いの動作に対してほとんど
影響を与えない独立したいくつかの論理メモリ動
的構造を発生させるよう、論理メモリを物理メモ
リの数倍の大きさに選択する。各パーテイシヨン
はそれ自身の動的構造をいくつか有することがで
きる。各パーテイシヨンは物理メモリと同じ大き
さなので、物理メモリの全部か一部を1個のパー
テイシヨンに写像することができる。これによつ
て、物理メモリに未割当てブロツクがある限り、
他のどのパーテイシヨン内のメモリのブロツク転
送も必要とすることなく、あるパーテイシヨン内
の動的構造を拡張することができる。しかし、物
理メモリの全ブロツクが各種のパーテイシヨンに
既に割当てられている比較的まれな場合には、他
のパーテイシヨン内のメモリのブロツク転送が必
要となる。なんとなればあるパーテイシヨン内で
ブロツク転送を行い、そこで未使用領域をまとめ
ることにより、物理メモリの1個のブロツク全体
がからになることもあり、その場合にはそのから
になつた物理メモリをメモリを要求中のパーテイ
シヨンに再び割当てることができるからである。
レスを有するメモリ・アクセス・ワードをMPB
上に送出することによつて、その論理メモリ位置
にアクセスする。このアドレスの第1の部分がア
クセスされべき論理メモリ位置を含む論理メモ
リ・ブロツクのブロツク番号を指示し、アドレス
の残りの部分はそのブロツクのブロツク内アドレ
スを指示する。MPB上に送出された論理メモリ
位置がメモリ・コントローラ・レジスタに入力さ
れているブロツク番号に対応すると、対応する物
理メモリ位置に対してアクセスが行われる。パー
テイシヨンという、互いの動作に対してほとんど
影響を与えない独立したいくつかの論理メモリ動
的構造を発生させるよう、論理メモリを物理メモ
リの数倍の大きさに選択する。各パーテイシヨン
はそれ自身の動的構造をいくつか有することがで
きる。各パーテイシヨンは物理メモリと同じ大き
さなので、物理メモリの全部か一部を1個のパー
テイシヨンに写像することができる。これによつ
て、物理メモリに未割当てブロツクがある限り、
他のどのパーテイシヨン内のメモリのブロツク転
送も必要とすることなく、あるパーテイシヨン内
の動的構造を拡張することができる。しかし、物
理メモリの全ブロツクが各種のパーテイシヨンに
既に割当てられている比較的まれな場合には、他
のパーテイシヨン内のメモリのブロツク転送が必
要となる。なんとなればあるパーテイシヨン内で
ブロツク転送を行い、そこで未使用領域をまとめ
ることにより、物理メモリの1個のブロツク全体
がからになることもあり、その場合にはそのから
になつた物理メモリをメモリを要求中のパーテイ
シヨンに再び割当てることができるからである。
論理メモリのパーテイシヨンは、別々のプログ
ラム群のような1組の独立した構造群(たとえ
ば、1つのジヨブのためのタスク群)を収容する
ために利用することができる。従つて、何組かの
互いに独立したプログラム群をそれぞれの群毎に
専用のパーテイシヨンに入力して同時に実行する
ことができる。物理メモリに未割当ブロツクがあ
る限り、これらのプログラム内の動的構造は他の
パーテイシヨンでプログラムをブロツク転送する
ことなく、必要に応じて拡大したり縮小したりす
ることができる。これらのプログラムは1個のプ
ロセツサを用いて時分割的に同時に実行すること
もできるし、また複数のプロセツサを利用してあ
るプログラムの実行に対する別のプログラムの実
行の影響をさらに減らすこともできる。2つのプ
ログラムの実行が相互に干渉し合うのは、2つの
プログラムが同時にメモリ・アクセス用の母線へ
のアクセスを求めている場合、あるいは物理メモ
リが既に皆割当てられているにもかかわらず、一
方のプログラムがさらにメモリを要求している場
合のみである。
ラム群のような1組の独立した構造群(たとえ
ば、1つのジヨブのためのタスク群)を収容する
ために利用することができる。従つて、何組かの
互いに独立したプログラム群をそれぞれの群毎に
専用のパーテイシヨンに入力して同時に実行する
ことができる。物理メモリに未割当ブロツクがあ
る限り、これらのプログラム内の動的構造は他の
パーテイシヨンでプログラムをブロツク転送する
ことなく、必要に応じて拡大したり縮小したりす
ることができる。これらのプログラムは1個のプ
ロセツサを用いて時分割的に同時に実行すること
もできるし、また複数のプロセツサを利用してあ
るプログラムの実行に対する別のプログラムの実
行の影響をさらに減らすこともできる。2つのプ
ログラムの実行が相互に干渉し合うのは、2つの
プログラムが同時にメモリ・アクセス用の母線へ
のアクセスを求めている場合、あるいは物理メモ
リが既に皆割当てられているにもかかわらず、一
方のプログラムがさらにメモリを要求している場
合のみである。
マルチ・タスク・システム等の様に、表面上独
立したプログラム間で通信を行うことが有益なこ
ともある。たとえば、あるプログラムが工業プロ
セスを積極的に監視したり制御したりして、第2
のプログラムが第1のプログラムで発生されたデ
ータを分析するようにすることができる。従つ
て、本発明の好適な実施例においては、各動的構
造の間で情報を交換できるよう複数の自動構造か
らアクセスすることができる大域(global)デー
タ・セグメントを含む。
立したプログラム間で通信を行うことが有益なこ
ともある。たとえば、あるプログラムが工業プロ
セスを積極的に監視したり制御したりして、第2
のプログラムが第1のプログラムで発生されたデ
ータを分析するようにすることができる。従つ
て、本発明の好適な実施例においては、各動的構
造の間で情報を交換できるよう複数の自動構造か
らアクセスすることができる大域(global)デー
タ・セグメントを含む。
以下、図面に基いて本発明を詳細に説明する。
第2図には、動的構造間の望ましくない相互干
渉を最小限に抑えて、メモリに同時に存在する多
数の動的構造に必要に応じて動的にメモリを割当
てる本発明のメモリ管理方式による論理アドレス
と物理アドレスとの対応関係の一例を示してい
る。同図の左に示されているのはコンピユータ内
の物理メモリ位置に割当てられた物理アドレス空
間であり、この図の右に示されているのは論理ア
ドレス空間である。図示の実施例では、物理メモ
リは223バイト(すなわち、8388608バイト。8M
バイトと表示することもある)を有しておりこれ
らのバイトは29(すなわち、512)個のブロツクに
分割され、各ブロツクは214バイト(すなわち、
16384バイト。16kバイトと表示することもある)
を含む。同様にして、論理アドレス空間は229バ
イト(512Mバイトと表示することも多い)を有
し、これらのラミネート物は26(すなわち64)個
のパーテイシヨンに分割され、各パーテイシヨン
は29に(すなわち512)個のメモリ・ブロツクに
分割される。
渉を最小限に抑えて、メモリに同時に存在する多
数の動的構造に必要に応じて動的にメモリを割当
てる本発明のメモリ管理方式による論理アドレス
と物理アドレスとの対応関係の一例を示してい
る。同図の左に示されているのはコンピユータ内
の物理メモリ位置に割当てられた物理アドレス空
間であり、この図の右に示されているのは論理ア
ドレス空間である。図示の実施例では、物理メモ
リは223バイト(すなわち、8388608バイト。8M
バイトと表示することもある)を有しておりこれ
らのバイトは29(すなわち、512)個のブロツクに
分割され、各ブロツクは214バイト(すなわち、
16384バイト。16kバイトと表示することもある)
を含む。同様にして、論理アドレス空間は229バ
イト(512Mバイトと表示することも多い)を有
し、これらのラミネート物は26(すなわち64)個
のパーテイシヨンに分割され、各パーテイシヨン
は29に(すなわち512)個のメモリ・ブロツクに
分割される。
ブロツクの大きさは物理アドレス空間と論理ア
ドレス空間の両者において同一であるので、物理
メモリは一度に1ブロツクずつ論理アドレス空間
に写像することができる。各パーテイシヨンは物
理空間と同じ大きさであるが、パーテイシヨン相
互間の望ましくない相互干渉は最小限にとどめら
れる。相互干渉を抑えることができるというわけ
は、1つのタスク(あるいはジヨブ)のためにあ
るパーテイシヨンに物理メモリ全体を割当てるこ
ともできるし、あるいはそのかわりに、複数のタ
スクの実行にあたつて、物理メモリの複数のブロ
ツクをこれらのタスクが記憶されている各種のパ
ーテイシヨンに割当てることによつて複数のタス
クの各々を独立した論理メモリ環境に置くことが
できるからである。各パーテイシヨンが物理メモ
リ空間と同じ大きさであるため、物理メモリのブ
ロツクをあるパーテイシヨンに割当てたり、この
パーテイシヨンから割当てを解除したりしても、
他のパーテイシヨン内のプログラムのブロツク移
動は必要とされない。従つて、64個のパーテイシ
ヨンは独立したプログラム環境として機能すると
共に、コンピユータが64台の仮想コンピユータを
含んでいるかのように想定してプログラムをコン
ピユータに入力することができる。
ドレス空間の両者において同一であるので、物理
メモリは一度に1ブロツクずつ論理アドレス空間
に写像することができる。各パーテイシヨンは物
理空間と同じ大きさであるが、パーテイシヨン相
互間の望ましくない相互干渉は最小限にとどめら
れる。相互干渉を抑えることができるというわけ
は、1つのタスク(あるいはジヨブ)のためにあ
るパーテイシヨンに物理メモリ全体を割当てるこ
ともできるし、あるいはそのかわりに、複数のタ
スクの実行にあたつて、物理メモリの複数のブロ
ツクをこれらのタスクが記憶されている各種のパ
ーテイシヨンに割当てることによつて複数のタス
クの各々を独立した論理メモリ環境に置くことが
できるからである。各パーテイシヨンが物理メモ
リ空間と同じ大きさであるため、物理メモリのブ
ロツクをあるパーテイシヨンに割当てたり、この
パーテイシヨンから割当てを解除したりしても、
他のパーテイシヨン内のプログラムのブロツク移
動は必要とされない。従つて、64個のパーテイシ
ヨンは独立したプログラム環境として機能すると
共に、コンピユータが64台の仮想コンピユータを
含んでいるかのように想定してプログラムをコン
ピユータに入力することができる。
ブロツクの大きさは厳密に選択する必要はな
く、物理メモリの好都合な一部分であればよい。
論理アドレス空間の大きさは229バイトに選択す
るる。それは、この長さが32ビツトのアドレス・
ワードでアクセスすることができるためである。
なお、この32ビツトのアドレス・ワードのうち上
位3ビツトはそのワードのフアンクシヨン・コー
ドを指示するために利用する。64個のパーテイシ
ヨンががあるのは論理アドレス空間を、各々に物
理メモリ全体を割当てることができる(すなわ
ち、物理アドレス空間と同じ大きさの)パーテイ
シヨンに分割するためである。もちろんこれらの
パラメータに他の数値を選択することができる
し、集積回路技術が進展するにつれて別の選択を
する方が好都合になるであろう。
く、物理メモリの好都合な一部分であればよい。
論理アドレス空間の大きさは229バイトに選択す
るる。それは、この長さが32ビツトのアドレス・
ワードでアクセスすることができるためである。
なお、この32ビツトのアドレス・ワードのうち上
位3ビツトはそのワードのフアンクシヨン・コー
ドを指示するために利用する。64個のパーテイシ
ヨンががあるのは論理アドレス空間を、各々に物
理メモリ全体を割当てることができる(すなわ
ち、物理アドレス空間と同じ大きさの)パーテイ
シヨンに分割するためである。もちろんこれらの
パラメータに他の数値を選択することができる
し、集積回路技術が進展するにつれて別の選択を
する方が好都合になるであろう。
第2図に示されているように、タスクのために
必要とされるいくつかのメモリ・ブロツクは論理
アドレス空間でも物理アドレス空間でも互いに隣
接してい必要はない。たとえば、パーテイシヨン
A内の論理アドレス空間の一部にあるタスクが置
かれており、ここで当初に必要とされる動的構造
として、辞書用の第1の動的構造、サブルーチン
や関数の終結後、どこへ戻るべきかを示す情報を
保持するリターン・スタツク用の第2の動的構造
があると仮定する。この場合、第2図に示す様
に、物理アドレス空間内のブロツク0と1を論理
アドレス空間内のブロツクB+1に割当てて第1
の動的構造用として用い、また物理アドレス空間
内のブロツクEを論理アドレス空間内のブロツク
Cに割当てて第2の動的構造用して用いることが
できる。
必要とされるいくつかのメモリ・ブロツクは論理
アドレス空間でも物理アドレス空間でも互いに隣
接してい必要はない。たとえば、パーテイシヨン
A内の論理アドレス空間の一部にあるタスクが置
かれており、ここで当初に必要とされる動的構造
として、辞書用の第1の動的構造、サブルーチン
や関数の終結後、どこへ戻るべきかを示す情報を
保持するリターン・スタツク用の第2の動的構造
があると仮定する。この場合、第2図に示す様
に、物理アドレス空間内のブロツク0と1を論理
アドレス空間内のブロツクB+1に割当てて第1
の動的構造用として用い、また物理アドレス空間
内のブロツクEを論理アドレス空間内のブロツク
Cに割当てて第2の動的構造用して用いることが
できる。
これらの動的構造のいずれもパーテイシヨンA
の先頭アドレスから始まる必要はない。従つて、
第2図においてはパーテイシヨンA内のブロツク
Bより上位のアドレス部分にギヤツプ(すなわち
未使用領域)が示されている。後にキーボード等
からのプログラムの入力中に、またはプログラム
の実行中に、動的構造1にメモリがさらに必要と
なると、物理空間から簡単にメモリを割当てるこ
とができる。これは論理アドレス空間内のブロツ
クB+2への物理アドレス空間内のブロツクFの
割当てとして第2図中に示されている。物理アド
レス空間においてブロツク1とブロツクFの間の
ブロツクが既に他の動的構造に割当てられてしま
つているかもしれないし、また何か別の都合があ
るかもしれないので、ブロツクFがブロツクB+
1に割当てられたブロツクに物理メモリ内で隣接
する必要はない。しかし、たとえブロツク1とF
が物理メモリで隣接していなくとも、ブロツクB
とB+1は論理アドレス空間内で隣接している。
連続アドレス空間についての処理に適している技
術、たとえばインデクス修飾、ブロツク転送、サ
ーチングは物理メモリ空間ではなく論理メモリ空
間を利用するため、これらの技術はこのメモリ管
理方式において利用することができる。
の先頭アドレスから始まる必要はない。従つて、
第2図においてはパーテイシヨンA内のブロツク
Bより上位のアドレス部分にギヤツプ(すなわち
未使用領域)が示されている。後にキーボード等
からのプログラムの入力中に、またはプログラム
の実行中に、動的構造1にメモリがさらに必要と
なると、物理空間から簡単にメモリを割当てるこ
とができる。これは論理アドレス空間内のブロツ
クB+2への物理アドレス空間内のブロツクFの
割当てとして第2図中に示されている。物理アド
レス空間においてブロツク1とブロツクFの間の
ブロツクが既に他の動的構造に割当てられてしま
つているかもしれないし、また何か別の都合があ
るかもしれないので、ブロツクFがブロツクB+
1に割当てられたブロツクに物理メモリ内で隣接
する必要はない。しかし、たとえブロツク1とF
が物理メモリで隣接していなくとも、ブロツクB
とB+1は論理アドレス空間内で隣接している。
連続アドレス空間についての処理に適している技
術、たとえばインデクス修飾、ブロツク転送、サ
ーチングは物理メモリ空間ではなく論理メモリ空
間を利用するため、これらの技術はこのメモリ管
理方式において利用することができる。
物理メモリの各ブロツクを論理アドレス空間の
各ブロツクに割当てるに適するハードウエアのブ
ロツク図は第3図に示されている。論理アドレス
空間への物理メモリの割当てはメモリ・コントロ
ーラと呼ばれる回路で行う。システムは1つかそ
れ以上の中央演算処理装置(CPU)、メモリプロ
セツサ母線(MPB)および最大16個のメモリ・
コントローラを含むことができ、各メモリ・コン
トローラは4個までのメモリ・バンクを制御す
る。第3図に示されている実施例では、MPB3
1は7個のCPU32〜38と10個のメモリ・コ
ントローラ39〜318に接続され、各メモリ・
コントローラはメモリ・バンク群319〜328
のうち対応付けられた1つを制御する。各メモ
リ・バンクは実装密度に応じて16kまたは32kの
32ビツト・ワードのRAMを含む。
各ブロツクに割当てるに適するハードウエアのブ
ロツク図は第3図に示されている。論理アドレス
空間への物理メモリの割当てはメモリ・コントロ
ーラと呼ばれる回路で行う。システムは1つかそ
れ以上の中央演算処理装置(CPU)、メモリプロ
セツサ母線(MPB)および最大16個のメモリ・
コントローラを含むことができ、各メモリ・コン
トローラは4個までのメモリ・バンクを制御す
る。第3図に示されている実施例では、MPB3
1は7個のCPU32〜38と10個のメモリ・コ
ントローラ39〜318に接続され、各メモリ・
コントローラはメモリ・バンク群319〜328
のうち対応付けられた1つを制御する。各メモ
リ・バンクは実装密度に応じて16kまたは32kの
32ビツト・ワードのRAMを含む。
CPUとメモリの間、またはCPU相互間の通信
はすべてMPBを通して行われる。MPBインタフ
エイスはCPUとMPBの間のすべての通信と相互
作用を処理し、MPBプロトコルに必要なあらゆ
る動作を実行する。これにより通信のタイミング
と制御をCPUから直接には見えないようにする。
はすべてMPBを通して行われる。MPBインタフ
エイスはCPUとMPBの間のすべての通信と相互
作用を処理し、MPBプロトコルに必要なあらゆ
る動作を実行する。これにより通信のタイミング
と制御をCPUから直接には見えないようにする。
MPBは全部で8系統のチヤンネルを支援し、
MPBに接続されている各装置はチヤネル番号を
割当てられる。MPB上の優先度はチヤネル番号
に従つて決められ、小さなチヤネル番号ほど高い
優先度を有する。チヤネル0はメモリ・コントロ
ーラ用に確保されているので、メモリ・コントロ
ーラの通信はMPB上で最高の優先度を有する。
MPBを介する通信はチヤネル相互間またはチヤ
ネルとメモリの間のいずれかで行われる。メモ
リ・コントローラとの通信はチヤネル0で行われ
る。一方、メモリとの通信はメモリ・アクセス・
ワードをMPB上に与えることにより行われる。
このメモリ・アクセス・ワードは、対応する物理
アドレスに対する制御権を有するメモリ・コント
ローラによつてアクセス要求として認識されて処
理される。したがつて、メモリ・コントローラへ
のコマンドは1つかそれ以上のCPUからチヤネ
ル0経由でメモリ・コントローラに送られ、アド
レス変換用等の制御データがメモリ・コントロー
ラの内部レジスタに入力される。斯くして物理メ
モリの論理メモリ空間への写像が設定される。同
様にして、メモリ・コントローラ内のレジスタの
内容へのアクセスがチヤネル0経由で行われる。
MPBに接続されている各装置はチヤネル番号を
割当てられる。MPB上の優先度はチヤネル番号
に従つて決められ、小さなチヤネル番号ほど高い
優先度を有する。チヤネル0はメモリ・コントロ
ーラ用に確保されているので、メモリ・コントロ
ーラの通信はMPB上で最高の優先度を有する。
MPBを介する通信はチヤネル相互間またはチヤ
ネルとメモリの間のいずれかで行われる。メモ
リ・コントローラとの通信はチヤネル0で行われ
る。一方、メモリとの通信はメモリ・アクセス・
ワードをMPB上に与えることにより行われる。
このメモリ・アクセス・ワードは、対応する物理
アドレスに対する制御権を有するメモリ・コント
ローラによつてアクセス要求として認識されて処
理される。したがつて、メモリ・コントローラへ
のコマンドは1つかそれ以上のCPUからチヤネ
ル0経由でメモリ・コントローラに送られ、アド
レス変換用等の制御データがメモリ・コントロー
ラの内部レジスタに入力される。斯くして物理メ
モリの論理メモリ空間への写像が設定される。同
様にして、メモリ・コントローラ内のレジスタの
内容へのアクセスがチヤネル0経由で行われる。
第4図には第3図のメモリ・コントローラ39
〜328の機能的ブロツク図を示す。MPB31
は、メモリ・コントローラ信号をメモリ・コント
ローラとの間で送受するよう、メモリ・コントロ
ーラ内のMPBインタフエイス41に接続されて
いる。MPBインタフエイス41はMPB31から
メモリ・コントローラ・アドレス母線42へ送ら
れるアドレスのバツフアとして、またメモリ・コ
ントローラ・データ母線43との間で入出力され
るデータのバツフアとして動作する。メモリ・コ
ントローラ・アドレス母線42は、物理メモリを
各種の動的プログラム構造に動的に割当てるアド
レス・マツパ44に接続されている。
〜328の機能的ブロツク図を示す。MPB31
は、メモリ・コントローラ信号をメモリ・コント
ローラとの間で送受するよう、メモリ・コントロ
ーラ内のMPBインタフエイス41に接続されて
いる。MPBインタフエイス41はMPB31から
メモリ・コントローラ・アドレス母線42へ送ら
れるアドレスのバツフアとして、またメモリ・コ
ントローラ・データ母線43との間で入出力され
るデータのバツフアとして動作する。メモリ・コ
ントローラ・アドレス母線42は、物理メモリを
各種の動的プログラム構造に動的に割当てるアド
レス・マツパ44に接続されている。
アドレス・マツパ44は変換されたアドレスを
メモリ・アドレス母線(以下、MABと称する)
45に送出し、4本のチツプ選択(以下、CSと
称する)ライン46にチツプ選択信号を送る。
CSライン46の各々は、4個のメモリ・バンク
47〜410の1個に接続され、4個のバンクは
MAB45に並列に接続されている。メモリ・バ
ンク47〜410の各々はメモリ・バンク47内
の4つのチツプ411〜415のような16k×8
ビツト構成のメモリ・チツプを5個有する。メモ
リ・コントローラはメモリ・コントローラのコン
トロール機能の中枢であるプログラマブル・ロジ
ツク・アレイ(以下、PLAと称する)416も
含む。このPLA416はアドレスとデータの転
送を統制し、MPBインタフエイス41を制御し、
また他のチヤネルからの内部メモリ・コントロー
ラ・レジスタへのアクセスの処理も行う。
メモリ・アドレス母線(以下、MABと称する)
45に送出し、4本のチツプ選択(以下、CSと
称する)ライン46にチツプ選択信号を送る。
CSライン46の各々は、4個のメモリ・バンク
47〜410の1個に接続され、4個のバンクは
MAB45に並列に接続されている。メモリ・バ
ンク47〜410の各々はメモリ・バンク47内
の4つのチツプ411〜415のような16k×8
ビツト構成のメモリ・チツプを5個有する。メモ
リ・コントローラはメモリ・コントローラのコン
トロール機能の中枢であるプログラマブル・ロジ
ツク・アレイ(以下、PLAと称する)416も
含む。このPLA416はアドレスとデータの転
送を統制し、MPBインタフエイス41を制御し、
また他のチヤネルからの内部メモリ・コントロー
ラ・レジスタへのアクセスの処理も行う。
メモリ・コントローラとメモリ・チツプの間で
データを転送するため、39ビツト幅のメモリ・デ
ータ母線417がドライバ/レシーバ418とメ
モリ・チツプとの間に接続されている。これによ
つてメモリは39ビツト・ワードを記憶することが
できる。このうち32ビツトはデータ・ビツトとし
て使用され、残7ビツトはエラーの検出/訂正用
のチエツク・ビツトとして利用される。メモリ・
バンク47に記憶されるワードについては、各ワ
ードのバイト0,1,2および3はそれぞれチツ
プ411,412,413および414に記憶さ
れる。チツプ411〜415の各々の第1(すな
わちアドレスの先頭部の)の4kバイト(すなわ
ちチツプ411〜414からの各4kバイトのデ
ータ・ビツトおよびチツプ415からの4k×7
ビツトのチエツク・ビツト)によつて物理メモリ
の16kバイトの1つのブロツクが形成される。同
様にして、チツプ411〜415の各々の4kバ
イトの第2,第3および第4のブロツクによりそ
れぞれ物理メモリの他のブロツクが1つずつ形成
される。チツプ411〜415を32k×8ビツト
構成RAMに交換すれば、各バンクは8個のメモ
リ・ブロツクを含む。従つて、一種類のメモリ・
コントローラにより、16k×8ビツトおよび32k
×8ビツトの両方のチツプを制御可能とするた
め、各メモリ・コントローラは32個の物理アドレ
ス・ブロツクを制御可能である。従つて第3図で
はメモリ・コントローラ39は物理メモリ・ブロ
ツク0〜31の割当てを制御し、メモリ・コント
ローラ310は物理メモリ・ブロツク32〜63
の割当てを制御する。他のメモリ・コントローラ
についても同様である。システムは論理的には16
個までのメモリ・コントローラを使用できるの
で、第2図に示されている物理メモリ空間は29個
のブロツクを有する。しかし、本発明の好適な実
施例は物理的に10個のメモリ・コントローラを支
援することができるだけであるので、実際の物理
メモリ空間には10×25個の物理メモリのブロツク
しか実装されていない。
データを転送するため、39ビツト幅のメモリ・デ
ータ母線417がドライバ/レシーバ418とメ
モリ・チツプとの間に接続されている。これによ
つてメモリは39ビツト・ワードを記憶することが
できる。このうち32ビツトはデータ・ビツトとし
て使用され、残7ビツトはエラーの検出/訂正用
のチエツク・ビツトとして利用される。メモリ・
バンク47に記憶されるワードについては、各ワ
ードのバイト0,1,2および3はそれぞれチツ
プ411,412,413および414に記憶さ
れる。チツプ411〜415の各々の第1(すな
わちアドレスの先頭部の)の4kバイト(すなわ
ちチツプ411〜414からの各4kバイトのデ
ータ・ビツトおよびチツプ415からの4k×7
ビツトのチエツク・ビツト)によつて物理メモリ
の16kバイトの1つのブロツクが形成される。同
様にして、チツプ411〜415の各々の4kバ
イトの第2,第3および第4のブロツクによりそ
れぞれ物理メモリの他のブロツクが1つずつ形成
される。チツプ411〜415を32k×8ビツト
構成RAMに交換すれば、各バンクは8個のメモ
リ・ブロツクを含む。従つて、一種類のメモリ・
コントローラにより、16k×8ビツトおよび32k
×8ビツトの両方のチツプを制御可能とするた
め、各メモリ・コントローラは32個の物理アドレ
ス・ブロツクを制御可能である。従つて第3図で
はメモリ・コントローラ39は物理メモリ・ブロ
ツク0〜31の割当てを制御し、メモリ・コント
ローラ310は物理メモリ・ブロツク32〜63
の割当てを制御する。他のメモリ・コントローラ
についても同様である。システムは論理的には16
個までのメモリ・コントローラを使用できるの
で、第2図に示されている物理メモリ空間は29個
のブロツクを有する。しかし、本発明の好適な実
施例は物理的に10個のメモリ・コントローラを支
援することができるだけであるので、実際の物理
メモリ空間には10×25個の物理メモリのブロツク
しか実装されていない。
物理アドレス空間をどのようにして論理アドレ
ス空間に割当てるのかについては第5図および第
6図を参照して詳細に説明する。アドレス・マツ
パ44は物理メモリを一度に1ブロツクづつ論理
アドレス空間に割当てる。第5図には、メモリを
アクセスするのに用いるメモリ・アクセス・ワー
ド内の32個のビツトの意味が示されている。
PLA416はメモリ・アクセスの形式を表すフ
アンクシヨン・コード用のビツト0〜2に応答す
る。このフアンクシヨン・コードはメモリがアク
セスされているのかどうか、またアクセスされて
いるのなら、フル・ワード(32ビツト)、ハー
フ・ワード(16ビツト)、バイトのどれがアクセ
スされているのかを指示する。ハーフ・ワードが
アクセスされている場合、メモリ・ワードのどち
ら半分がアクセスされているのかを指示するため
にビツト30が用いられる。バイトがアクセスされ
ている場合、ビツト30と31が1つのメモリ・ワー
ド(すなわちフル・ワード)内の4バイトのどれ
がアクセスされているのかを指示する。フアンク
シヨン・コードはまた、MPB31上のメモリ・
アクセス・ワードがチヤネル間通信のためのチヤ
ネル間メツセージであるかどうかを指示する。こ
のチヤネル間メツセージを送出している装置をマ
スタといい、メツセージを受信している装置をス
レーブという。チヤネル間通信では、ビツト3〜
5がスレーブ・チヤネルの番号を指示し、残りの
24個のビツトがスレーブ内のアドレスを指示す
る。メモリ・コントローラがチヤネル0経由でア
クセスされた場合、ビツト6〜9はどのメモリ・
コントローラを選択すべきかを指示し、ビツト23
〜29はメモリ・コントローラ内のアドレスを選択
する。
ス空間に割当てるのかについては第5図および第
6図を参照して詳細に説明する。アドレス・マツ
パ44は物理メモリを一度に1ブロツクづつ論理
アドレス空間に割当てる。第5図には、メモリを
アクセスするのに用いるメモリ・アクセス・ワー
ド内の32個のビツトの意味が示されている。
PLA416はメモリ・アクセスの形式を表すフ
アンクシヨン・コード用のビツト0〜2に応答す
る。このフアンクシヨン・コードはメモリがアク
セスされているのかどうか、またアクセスされて
いるのなら、フル・ワード(32ビツト)、ハー
フ・ワード(16ビツト)、バイトのどれがアクセ
スされているのかを指示する。ハーフ・ワードが
アクセスされている場合、メモリ・ワードのどち
ら半分がアクセスされているのかを指示するため
にビツト30が用いられる。バイトがアクセスされ
ている場合、ビツト30と31が1つのメモリ・ワー
ド(すなわちフル・ワード)内の4バイトのどれ
がアクセスされているのかを指示する。フアンク
シヨン・コードはまた、MPB31上のメモリ・
アクセス・ワードがチヤネル間通信のためのチヤ
ネル間メツセージであるかどうかを指示する。こ
のチヤネル間メツセージを送出している装置をマ
スタといい、メツセージを受信している装置をス
レーブという。チヤネル間通信では、ビツト3〜
5がスレーブ・チヤネルの番号を指示し、残りの
24個のビツトがスレーブ内のアドレスを指示す
る。メモリ・コントローラがチヤネル0経由でア
クセスされた場合、ビツト6〜9はどのメモリ・
コントローラを選択すべきかを指示し、ビツト23
〜29はメモリ・コントローラ内のアドレスを選択
する。
メモリ・アクセス・ワードがMPB31に送ら
れると、PLA416がアドレス・ワード内のフ
アンクシヨン・コードに応答してワードのアドレ
ス部分(すなわち、ビツト3〜29)をアドレス母
線42を通して伝送する。ビツト3〜17はアクセ
スされるメモリ位置の論理ブロツク番号を含み、
ビツト18〜29がそのブロツク内のどのワードがア
クセスされているかを指示する。アドレス・マツ
パ44は物理メモリの1つのブロツクを論理アド
レス空間の1つのブロツクに割当てるので、15個
のビツト3〜17だけがアドレス・マツパ44によ
つて変換される。
れると、PLA416がアドレス・ワード内のフ
アンクシヨン・コードに応答してワードのアドレ
ス部分(すなわち、ビツト3〜29)をアドレス母
線42を通して伝送する。ビツト3〜17はアクセ
スされるメモリ位置の論理ブロツク番号を含み、
ビツト18〜29がそのブロツク内のどのワードがア
クセスされているかを指示する。アドレス・マツ
パ44は物理メモリの1つのブロツクを論理アド
レス空間の1つのブロツクに割当てるので、15個
のビツト3〜17だけがアドレス・マツパ44によ
つて変換される。
アドレス・マツパ44のブロツク図が第6図に
示されている。アドレス母線42のアドレスはマ
ルチプレクサ61によりアドレス・アツパ44に
与えられる。このマルチプレクサ61はマツパ内
容アドレス指定可能母線(以下、MCABと称す
る)62かマツパ内部レジスタ(以下、MIRAと
称する)母線63のどちらか一方に、メモリ・コ
ントローラ・アドレス母線42を接続する。
MIRA母線63は32個のマツパ内容アドレス指定
メモリ(以下、MCAMと称する)レジスタ64
に接続される。MCAMレジスタ64の各々はこ
のメモリ・コントローラによつて制御される4個
のメモリ・バンク内の物理メモリの1ブロツクと
対応している。これらのレジスタの各々は一致が
検知されたことを通知するマツチ・ライン65に
よつてマツパROM66に接続される。マツパ
ROM66はMCAMレジスタ64の各々とそれ
に関連付けられた物理メモリのブロツクとを対応
付ける。各MCAMレジスタ64はまた1組の比
較器67のうち関連付けられた比較器に接続さ
れ、この比較器はメモリ・コントローラ・アドレ
ス母線42上の入力アドレスとそれに関連付けら
れたMCAMレジスタの内容が一致しているかど
うかをチエツクする。メモリ・アクセス・ワード
がMPB31に送られると、メモリ・コントロー
ラ39〜318の各々に設けられている比較器6
7が、同時にメモリ・アクセス・ワードのブロツ
ク番号部分(すなわち、ビツト3〜17)がそれら
に関連付けられたMCAMレジスタ64の内容と
一致するかどうかをチエツクする。これによつて
一致の確認のため、時間をかけてMCAMレジス
タ64を逐次的に検索することが避けられる。こ
のように1組のMCAMレジスタは、物理メモリ
のブロツクから論理メモリのブロツクへの割当て
を行う、非常に高速なルツク・アツプ・テーブル
として機能する。転送されてきた論理ブロツク番
号がメモリ・コントローラ内のMCAMレジスタ
のどの内容とも一致しないと、マツチ・ライン6
5はすべて低レベル状態にとどまる。
示されている。アドレス母線42のアドレスはマ
ルチプレクサ61によりアドレス・アツパ44に
与えられる。このマルチプレクサ61はマツパ内
容アドレス指定可能母線(以下、MCABと称す
る)62かマツパ内部レジスタ(以下、MIRAと
称する)母線63のどちらか一方に、メモリ・コ
ントローラ・アドレス母線42を接続する。
MIRA母線63は32個のマツパ内容アドレス指定
メモリ(以下、MCAMと称する)レジスタ64
に接続される。MCAMレジスタ64の各々はこ
のメモリ・コントローラによつて制御される4個
のメモリ・バンク内の物理メモリの1ブロツクと
対応している。これらのレジスタの各々は一致が
検知されたことを通知するマツチ・ライン65に
よつてマツパROM66に接続される。マツパ
ROM66はMCAMレジスタ64の各々とそれ
に関連付けられた物理メモリのブロツクとを対応
付ける。各MCAMレジスタ64はまた1組の比
較器67のうち関連付けられた比較器に接続さ
れ、この比較器はメモリ・コントローラ・アドレ
ス母線42上の入力アドレスとそれに関連付けら
れたMCAMレジスタの内容が一致しているかど
うかをチエツクする。メモリ・アクセス・ワード
がMPB31に送られると、メモリ・コントロー
ラ39〜318の各々に設けられている比較器6
7が、同時にメモリ・アクセス・ワードのブロツ
ク番号部分(すなわち、ビツト3〜17)がそれら
に関連付けられたMCAMレジスタ64の内容と
一致するかどうかをチエツクする。これによつて
一致の確認のため、時間をかけてMCAMレジス
タ64を逐次的に検索することが避けられる。こ
のように1組のMCAMレジスタは、物理メモリ
のブロツクから論理メモリのブロツクへの割当て
を行う、非常に高速なルツク・アツプ・テーブル
として機能する。転送されてきた論理ブロツク番
号がメモリ・コントローラ内のMCAMレジスタ
のどの内容とも一致しないと、マツチ・ライン6
5はすべて低レベル状態にとどまる。
どの2つのMCAMレジスタも同一の内容を有
することを禁止されている。従つてどのメモリ・
コントローラをとつてみても、その中の32本のマ
ツチ・ライン65のうち同時には高々1本だけが
1個のMCAMレジスタの内容と1個のメモリ・
アクセス・ワードに割当てられた論理ブロツク番
号の一致を指示することができるだけである。従
つて、マツチ・ライン65を通してマツパROM
66に加えられるゼロ以外の互いにことなる入力
は32個だけである。このマツパROM66はこれ
ら32個の異なるゼロ以外の入力をCSライン群4
6のうちの1本に送られる高レベル状態の出力と
3ビツト・アドレスに変換し、この3ビツト・ア
ドレスは第5図に示されているようにメモリ・ア
クセス・ワードのビツト18〜21と結合してYアド
レスを形成する。XアドレスとYアドレスは2つ
のとなり合うクロツク・タイミングにおいて切換
え出力され、CSライン群46によるメモリ・バ
ンクの選択と共に機能することにより、与えられ
た論理メモリ・アドレスに割当てられた物理メモ
リ位置をアクセスする。なお、ここで言うXアド
レス、Yアドレスという用語は、標準的なダイナ
ミツクRAMのアドレス・マルチプレクシングに
おける使い方と同じ意味を持つ。第4図に示され
ているように、CSライン群46はメモリバンク
47〜410のうちどれがアクセスされるかを決
定し、マツパ・ROM66によつて供給されるY
アドレスの3ビツトが、そのバンク内の物理メモ
リのどの4kバイトのブロツクがアクセスされる
のかを選択する。XアドレスとYアドレスの残り
(すなわち、マツパ44によつて写像されない部
分)は物理メモリに選択されたブロツク内部のア
クセスされるメモリ位置を選択する。メモリ・バ
ンクが32k×8ビツト構成のROMを含む場合、
マツパROM66からの32通りの可能な出力46
の全部が利用される。しかし、メモリ・バンクが
16k×8ビツト構成のRAMを含む場合、マツパ
ROM66によつて発生されるYアドレスの3ビ
ツトは0から7までではなくて、0から3までの
値しか取れない。
することを禁止されている。従つてどのメモリ・
コントローラをとつてみても、その中の32本のマ
ツチ・ライン65のうち同時には高々1本だけが
1個のMCAMレジスタの内容と1個のメモリ・
アクセス・ワードに割当てられた論理ブロツク番
号の一致を指示することができるだけである。従
つて、マツチ・ライン65を通してマツパROM
66に加えられるゼロ以外の互いにことなる入力
は32個だけである。このマツパROM66はこれ
ら32個の異なるゼロ以外の入力をCSライン群4
6のうちの1本に送られる高レベル状態の出力と
3ビツト・アドレスに変換し、この3ビツト・ア
ドレスは第5図に示されているようにメモリ・ア
クセス・ワードのビツト18〜21と結合してYアド
レスを形成する。XアドレスとYアドレスは2つ
のとなり合うクロツク・タイミングにおいて切換
え出力され、CSライン群46によるメモリ・バ
ンクの選択と共に機能することにより、与えられ
た論理メモリ・アドレスに割当てられた物理メモ
リ位置をアクセスする。なお、ここで言うXアド
レス、Yアドレスという用語は、標準的なダイナ
ミツクRAMのアドレス・マルチプレクシングに
おける使い方と同じ意味を持つ。第4図に示され
ているように、CSライン群46はメモリバンク
47〜410のうちどれがアクセスされるかを決
定し、マツパ・ROM66によつて供給されるY
アドレスの3ビツトが、そのバンク内の物理メモ
リのどの4kバイトのブロツクがアクセスされる
のかを選択する。XアドレスとYアドレスの残り
(すなわち、マツパ44によつて写像されない部
分)は物理メモリに選択されたブロツク内部のア
クセスされるメモリ位置を選択する。メモリ・バ
ンクが32k×8ビツト構成のROMを含む場合、
マツパROM66からの32通りの可能な出力46
の全部が利用される。しかし、メモリ・バンクが
16k×8ビツト構成のRAMを含む場合、マツパ
ROM66によつて発生されるYアドレスの3ビ
ツトは0から7までではなくて、0から3までの
値しか取れない。
各MCAMレジスタ64は16ビツト幅であり、
そのうち15ビツトはそのレジスタに対応付けられ
た物理メモリ・ブロツクに割当てられるべき論理
アドレス・ブロツク番号を記憶するために使用さ
れる。また、16番目のビツトはマツプ・アウト・
ビツトと呼ばれる。メモリ・アクセス・ワード内
のブロツク番号とMCAMレジスタ64の内容と
を比較するのに際し、メモリ・アクセス・ワード
内のブロツク番号は、実際には第5図からもわか
るように15ビツトなのであるが、これを16番目の
ビツトが“0”になつている16ビツトであるもの
として取り扱う。従つて、マツプ・アウト・ビツ
トが“1”にセツトされると、そのMCAMレジ
スタ64とメモリ・アクセス・ワード・ブロツク
番号との一致が起らないことが保証される。これ
によつて欠陥記憶位置を有するメモリ・ブロツク
へのアクセスを不能にすることができる。このビ
ツトはチヤネル間の通信により点検したり変換し
たりすることができる。チヤネル間通信に応答し
てMCAMレジスタの内容をMIRA母線63を介
してアクセスし、MCAMレジスタの読み出し・
書き込みを行うことができる。これによつてこれ
らレジスタの内容を変更して動的なアドレス変更
を行うことができる。
そのうち15ビツトはそのレジスタに対応付けられ
た物理メモリ・ブロツクに割当てられるべき論理
アドレス・ブロツク番号を記憶するために使用さ
れる。また、16番目のビツトはマツプ・アウト・
ビツトと呼ばれる。メモリ・アクセス・ワード内
のブロツク番号とMCAMレジスタ64の内容と
を比較するのに際し、メモリ・アクセス・ワード
内のブロツク番号は、実際には第5図からもわか
るように15ビツトなのであるが、これを16番目の
ビツトが“0”になつている16ビツトであるもの
として取り扱う。従つて、マツプ・アウト・ビツ
トが“1”にセツトされると、そのMCAMレジ
スタ64とメモリ・アクセス・ワード・ブロツク
番号との一致が起らないことが保証される。これ
によつて欠陥記憶位置を有するメモリ・ブロツク
へのアクセスを不能にすることができる。このビ
ツトはチヤネル間の通信により点検したり変換し
たりすることができる。チヤネル間通信に応答し
てMCAMレジスタの内容をMIRA母線63を介
してアクセスし、MCAMレジスタの読み出し・
書き込みを行うことができる。これによつてこれ
らレジスタの内容を変更して動的なアドレス変更
を行うことができる。
物理メモリを論理メモリに動的に写像するため
には、どのようなメモリ割当要求が与えられても
それに応答して、写像が行われるベき物理メモリ
のブロツクを特定して選択する方法が必要であ
る。特に、未使用領域、すなわちOSやシステム
のユーザが使用するための割当がまだなされてい
ない物理メモリのブロツク、を管理するための方
法が必要である。メモリの未割当ブロツクに対応
するMCAMレジスタは既に割当てられているブ
ロツクと同じ内容を有してはいけない。さもなく
ば、その未割当ブロツクはあるメモリ・アクセ
ス・ワードによつてアクセスされてしまうことに
なる。以上の目的は、未割当メモリ管理用に設け
られている1個のパーテイシヨンに物理メモリの
未割当ブロツクの全部を写像することによつて達
成される。メモリ管理モジユールが、物理メモリ
のどのブロツクがシステムの論理アドレス空間の
どの使用可能部分にも割当てられていないかを記
憶するデータ構造を維持・管理する。
には、どのようなメモリ割当要求が与えられても
それに応答して、写像が行われるベき物理メモリ
のブロツクを特定して選択する方法が必要であ
る。特に、未使用領域、すなわちOSやシステム
のユーザが使用するための割当がまだなされてい
ない物理メモリのブロツク、を管理するための方
法が必要である。メモリの未割当ブロツクに対応
するMCAMレジスタは既に割当てられているブ
ロツクと同じ内容を有してはいけない。さもなく
ば、その未割当ブロツクはあるメモリ・アクセ
ス・ワードによつてアクセスされてしまうことに
なる。以上の目的は、未割当メモリ管理用に設け
られている1個のパーテイシヨンに物理メモリの
未割当ブロツクの全部を写像することによつて達
成される。メモリ管理モジユールが、物理メモリ
のどのブロツクがシステムの論理アドレス空間の
どの使用可能部分にも割当てられていないかを記
憶するデータ構造を維持・管理する。
新たに物理メモリ・ブロツクの割当てが要求さ
れた場合に、どのブロツクを選択するかを容易に
決めることができるようにするため、各未割当物
理メモリ・ブロツクにそのパーテイシヨン内の異
なる論理ブロツク番号を割当てる。すなわち未割
当ブロツク管理用のパーテイシヨン内のブロツク
は、その各々に付された論理ブロツク番号の順に
編成されたリストとして管理される。そして、割
当てられるべき次の物理メモリ・ブロツクはこの
リストの一番上にあるブロツクである。このパー
テイシヨンにおいては、全物理メモリ・ブロツク
を論理アドレス空間内の1つの連続領域に写像す
る。その結果このリストの1番上を追跡すること
はプツシユダウン・スタツクの一番上を追跡する
ことと同じことになる。従つて、プツシユダウ
ン・スタツク・ポインタと同様なポインタを設け
ることによりリストの一番上の論理ブロツク番号
を常に支持させておく。一番上のブロツクに割当
てられると、このポインタは現在のリストの一番
上にある項目を示すために更新される。同様にし
て、割当てられていたメモリのブロツクが未使用
状態になると、そのブロツクはメモリ割当ての次
の要求に応えられるよう、未割当ブロツクのリス
ト(すなわちプツシユダウン・スタツク)の一番
上に写像される。
れた場合に、どのブロツクを選択するかを容易に
決めることができるようにするため、各未割当物
理メモリ・ブロツクにそのパーテイシヨン内の異
なる論理ブロツク番号を割当てる。すなわち未割
当ブロツク管理用のパーテイシヨン内のブロツク
は、その各々に付された論理ブロツク番号の順に
編成されたリストとして管理される。そして、割
当てられるべき次の物理メモリ・ブロツクはこの
リストの一番上にあるブロツクである。このパー
テイシヨンにおいては、全物理メモリ・ブロツク
を論理アドレス空間内の1つの連続領域に写像す
る。その結果このリストの1番上を追跡すること
はプツシユダウン・スタツクの一番上を追跡する
ことと同じことになる。従つて、プツシユダウ
ン・スタツク・ポインタと同様なポインタを設け
ることによりリストの一番上の論理ブロツク番号
を常に支持させておく。一番上のブロツクに割当
てられると、このポインタは現在のリストの一番
上にある項目を示すために更新される。同様にし
て、割当てられていたメモリのブロツクが未使用
状態になると、そのブロツクはメモリ割当ての次
の要求に応えられるよう、未割当ブロツクのリス
ト(すなわちプツシユダウン・スタツク)の一番
上に写像される。
メモリ・アクセス・ワードがMPB31に送ら
れると、メモリ・コントローラ39〜318の
各々はメモリ・アクセス・ワードによつて指示さ
れる論理ブロツクがMCAMレジスタ64のいず
れかの内容に一致するかどうかチエツクする。一
致があると、それを発見したメモリ・コントロー
ラがMPB31に信号を送つて一致が生じたこと
を表示する。一致を検出したメモリ・コントロー
ラは次いでメモリ内のアドレス指定されたワード
にアクセスすることによつて要求のあつたメモ
リ・アクセスを完遂する。
れると、メモリ・コントローラ39〜318の
各々はメモリ・アクセス・ワードによつて指示さ
れる論理ブロツクがMCAMレジスタ64のいず
れかの内容に一致するかどうかチエツクする。一
致があると、それを発見したメモリ・コントロー
ラがMPB31に信号を送つて一致が生じたこと
を表示する。一致を検出したメモリ・コントロー
ラは次いでメモリ内のアドレス指定されたワード
にアクセスすることによつて要求のあつたメモ
リ・アクセスを完遂する。
あるパーテイシヨン内の動的構造の要求によつ
てそのパーテイシヨンが今保有している物理メモ
リより多いメモリが必要となり、また、全部の物
理メモリ・ブロツクが既に割当てられていると、
既に説明したような形で、そのパーテイシヨン内
でメモリのブロツク転送が開始される。そのパー
テイシヨンに割当てられたメモリがほぼ一杯であ
るため自パーテイシヨン内でのメモリのブロツク
転送が単なる時間の浪費であるのなら、他のパー
テイシヨンチエツクされ、そこでのブロツク転送
により物理メモリの1ブロツク全体がからになつ
て、そのブロツクをメモリ要求中のパーテイシヨ
ンに割当てることができるか否かが確かめられ
る。
てそのパーテイシヨンが今保有している物理メモ
リより多いメモリが必要となり、また、全部の物
理メモリ・ブロツクが既に割当てられていると、
既に説明したような形で、そのパーテイシヨン内
でメモリのブロツク転送が開始される。そのパー
テイシヨンに割当てられたメモリがほぼ一杯であ
るため自パーテイシヨン内でのメモリのブロツク
転送が単なる時間の浪費であるのなら、他のパー
テイシヨンチエツクされ、そこでのブロツク転送
により物理メモリの1ブロツク全体がからになつ
て、そのブロツクをメモリ要求中のパーテイシヨ
ンに割当てることができるか否かが確かめられ
る。
各パーテイシヨンは物理メモリと同じ大きさ
(もちろん物理メモリより大きく設定してもかま
わない)であるが、一般には物理メモリの一部が
割当てられているだけであるので、論理アドレス
空間には通常以上に動的構造を入力させる余地が
ある。従つてこれによつて、パーテイシヨン内の
動的構造が隣接する動的構造によつて使用される
論理メモリまで拡大する頻度が減少する。しか
し、そのような拡大が起これば、既に説明したよ
うにメモリのブロツク転送を実行する必要があ
る。一般に、これらのブロツクに転送によつて他
のパーテイシヨンでブロツク転送が必要となるこ
とはない。同様に、あるパーテイシヨンが物理メ
モリの割当てを必要としても、通常は他のパーテ
イシヨンの論理アドレス空間内でブロツク転送が
必要となることはない。しかし、1個のパーテイ
シヨンに割当てられた物理メモリのほぼ全部が使
い尽され、物理メモリの全ブロツクが各種のパー
テイシヨンに割当てられている、というまれな場
合には、別のパーテイシヨン内部でのブロツク転
送によつて物理メモリの1ブロツク全体からにし
て、そのブロツクを次に別のパーテイシヨンに再
び割当てることができることもある。このような
他のパーテイシヨンからの侵入によつて悪影響を
受けるかもしれないプログラムを含む選択された
パーテイシヨンはプライベートであると表示する
ことによつて保護することができる。このような
プライベート・パーテイシヨンは、他のパーテイ
シヨンの必要性による論理メモリのブロツク転送
やその割当てられた物理メモリの割当ての影響を
受けることはない。
(もちろん物理メモリより大きく設定してもかま
わない)であるが、一般には物理メモリの一部が
割当てられているだけであるので、論理アドレス
空間には通常以上に動的構造を入力させる余地が
ある。従つてこれによつて、パーテイシヨン内の
動的構造が隣接する動的構造によつて使用される
論理メモリまで拡大する頻度が減少する。しか
し、そのような拡大が起これば、既に説明したよ
うにメモリのブロツク転送を実行する必要があ
る。一般に、これらのブロツクに転送によつて他
のパーテイシヨンでブロツク転送が必要となるこ
とはない。同様に、あるパーテイシヨンが物理メ
モリの割当てを必要としても、通常は他のパーテ
イシヨンの論理アドレス空間内でブロツク転送が
必要となることはない。しかし、1個のパーテイ
シヨンに割当てられた物理メモリのほぼ全部が使
い尽され、物理メモリの全ブロツクが各種のパー
テイシヨンに割当てられている、というまれな場
合には、別のパーテイシヨン内部でのブロツク転
送によつて物理メモリの1ブロツク全体からにし
て、そのブロツクを次に別のパーテイシヨンに再
び割当てることができることもある。このような
他のパーテイシヨンからの侵入によつて悪影響を
受けるかもしれないプログラムを含む選択された
パーテイシヨンはプライベートであると表示する
ことによつて保護することができる。このような
プライベート・パーテイシヨンは、他のパーテイ
シヨンの必要性による論理メモリのブロツク転送
やその割当てられた物理メモリの割当ての影響を
受けることはない。
各パーテイシヨンは、1つの独立したプログラ
ム環境であり、その独立した動作のために必要と
されるコード・セグメント、セグメント・テーブ
ルおよびスタツク・セグメントのようなすべての
ソフトウエア構造を含む。各パーテイシヨンはま
た、プログラム、サブプログラムおよびプロシー
ジヤ(procedure)のような独立したプログラム
構造をその内部に含むことができる。これらの独
立した構造の各々は局所変数用の局所データ・セ
グメントを有することができる。各パーテイシヨ
ンはまたその内部のプログラム構造のいずれから
もアクセスすることができる大域データ・セグメ
ントを有する。従つて大域データ・セグメントに
より、上述の独立した構造間での情報交換が可能
となり、これによつてこれらの構造間でのある程
度の相互作用がなされる。
ム環境であり、その独立した動作のために必要と
されるコード・セグメント、セグメント・テーブ
ルおよびスタツク・セグメントのようなすべての
ソフトウエア構造を含む。各パーテイシヨンはま
た、プログラム、サブプログラムおよびプロシー
ジヤ(procedure)のような独立したプログラム
構造をその内部に含むことができる。これらの独
立した構造の各々は局所変数用の局所データ・セ
グメントを有することができる。各パーテイシヨ
ンはまたその内部のプログラム構造のいずれから
もアクセスすることができる大域データ・セグメ
ントを有する。従つて大域データ・セグメントに
より、上述の独立した構造間での情報交換が可能
となり、これによつてこれらの構造間でのある程
度の相互作用がなされる。
1個のCPUの時分割や多数のCPUを使用する
ことによつて、独立したプログラム構造を同時に
実行することができる。これは異なるパーテイシ
ヨン内の構造についても、また同じパーテイシヨ
ン内の独立したプログラム構造についても当ては
まる。多くの場合、これらの独立したプログラム
構造は独立しているが互いに関連している動作を
実行する。従つて、たとえそれが複数の動作を同
期化するためだけであつても、プログラム構造に
情報を交換する能力を付与することが有益であ
る。
ことによつて、独立したプログラム構造を同時に
実行することができる。これは異なるパーテイシ
ヨン内の構造についても、また同じパーテイシヨ
ン内の独立したプログラム構造についても当ては
まる。多くの場合、これらの独立したプログラム
構造は独立しているが互いに関連している動作を
実行する。従つて、たとえそれが複数の動作を同
期化するためだけであつても、プログラム構造に
情報を交換する能力を付与することが有益であ
る。
第1A図乃至第1C図は従来のメモリ管理方式
の問題点を説明するための図、第2図は本発明の
メモリ管理方式にかかる論理アドレスと物理アド
レスとの対応関係の一例を示す図、第3図は本発
明のメモリ管理方式を実現するコンピユータ・シ
ステムの一実施例の概略ブロツク図、第4図は第
3図中のメモリ・コントローラのブロツク図、第
5図はメモリ・アクセス・ワード中の各ビツトの
意味を説明するための図、第6図は第4図中のア
ドレス・マツパのブロツク図である。 31……メモリ・プロセツサ母線、32〜38
……CPU、39〜318……メモリ・コントロ
ーラ、319〜328……メモリ・バンク群、4
1……MPBインタフエイス、416……PLA、
42……メモリ・コントローラ・アドレス母線、
43……メモリ・コントローラ・データ母線、4
7〜410……メモリ・バンク。
の問題点を説明するための図、第2図は本発明の
メモリ管理方式にかかる論理アドレスと物理アド
レスとの対応関係の一例を示す図、第3図は本発
明のメモリ管理方式を実現するコンピユータ・シ
ステムの一実施例の概略ブロツク図、第4図は第
3図中のメモリ・コントローラのブロツク図、第
5図はメモリ・アクセス・ワード中の各ビツトの
意味を説明するための図、第6図は第4図中のア
ドレス・マツパのブロツク図である。 31……メモリ・プロセツサ母線、32〜38
……CPU、39〜318……メモリ・コントロ
ーラ、319〜328……メモリ・バンク群、4
1……MPBインタフエイス、416……PLA、
42……メモリ・コントローラ・アドレス母線、
43……メモリ・コントローラ・データ母線、4
7〜410……メモリ・バンク。
Claims (1)
- 【特許請求の範囲】 1 夫々の語に論理アドレスが割り当てられたデ
ータ構造に物理メモリ位置を動的に割り当てるメ
モリ管理方式において、 前記論理アドレスを入力して少なくともその一
部のフイールドを物理メモリのブロツクを指定す
るブロツク・アドレスに変更可能に写像する写像
手段と、 前記論理アドレスの残余のフイールドを前記ブ
ロツク・アドレスと結合して物理アドレスを形成
することにより前記論理アドレスの写像先の物理
メモリ位置をアクセスする手段と を設け、 前記論理アドレスの空間を複数のパーテイシヨ
ンに分けるとともに、物理メモリのブロツク内の
現在使用されていないものを前記論理アドレスの
空間の特定のパーテイシヨン中の互いに異なる論
理アドレスであつてかつ連続した領域に対応付け
られるように前記写像手段を設定し、 前記特定のパーテイシヨン中の前記連続した領
域の端部の論理アドレスを保持し、 前記物理メモリの割り当て要求に対しては前記
領域の端部に写像されている物理メモリのブロツ
クを割り当て、 前記物理メモリの任意のブロツクが使用されて
いない状態になつた場合には、当該ブロツクに対
して前記特定のパーテイシヨン中の前記連続した
領域の端部に隣接する論理アドレスが写像される
ように前記写像手段を設定する ことを特徴とするメモリ管理方式。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/440,895 US4511964A (en) | 1982-11-12 | 1982-11-12 | Dynamic physical memory mapping and management of independent programming environments |
| US440895 | 1982-11-12 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5990281A JPS5990281A (ja) | 1984-05-24 |
| JPH0330897B2 true JPH0330897B2 (ja) | 1991-05-01 |
Family
ID=23750629
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58160199A Granted JPS5990281A (ja) | 1982-11-12 | 1983-08-31 | メモリ管理方式 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US4511964A (ja) |
| JP (1) | JPS5990281A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015530660A (ja) * | 2012-09-27 | 2015-10-15 | インテル コーポレイション | 物理メモリの動的パーティショニング技術 |
Families Citing this family (80)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06105435B2 (ja) * | 1985-10-25 | 1994-12-21 | 株式会社日立製作所 | 情報処理装置による記憶管理機構 |
| 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 |
| US4821185A (en) * | 1986-05-19 | 1989-04-11 | American Telephone And Telegraph Company | I/O interface system using plural buffers sized smaller than non-overlapping contiguous computer memory portions dedicated to each buffer |
| US4853849A (en) * | 1986-12-17 | 1989-08-01 | Intel Corporation | Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction |
| US4811216A (en) * | 1986-12-22 | 1989-03-07 | American Telephone And Telegraph Company | Multiprocessor memory management method |
| US5093913A (en) * | 1986-12-22 | 1992-03-03 | At&T Laboratories | Multiprocessor memory management system with the flexible features of a tightly-coupled system in a non-shared memory system |
| US4908789A (en) * | 1987-04-01 | 1990-03-13 | International Business Machines Corporation | Method and system for automatically assigning memory modules of different predetermined capacities to contiguous segments of a linear address range |
| JP2681929B2 (ja) * | 1987-06-22 | 1997-11-26 | 三菱電機株式会社 | プログラム起動方式 |
| US5175855A (en) * | 1987-07-27 | 1992-12-29 | Laboratory Technologies Corporation | Method for communicating information between independently loaded, concurrently executing processes |
| US5129088A (en) * | 1987-11-30 | 1992-07-07 | International Business Machines Corporation | Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device |
| US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
| US5276826A (en) * | 1988-01-04 | 1994-01-04 | Hewlett-Packard Company | Apparatus for transforming addresses to provide pseudo-random access to memory modules |
| US4943913A (en) * | 1988-02-10 | 1990-07-24 | International Business Machines Corporation | Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations |
| JPH0235539A (ja) * | 1988-07-25 | 1990-02-06 | Fujitsu Ltd | プログラムデータ領域管理方式 |
| JPH0291747A (ja) * | 1988-09-29 | 1990-03-30 | Hitachi Ltd | 情報処理装置 |
| JPH02311935A (ja) * | 1989-05-29 | 1990-12-27 | Fuji Photo Film Co Ltd | メモリカードの記憶管理方式 |
| US5297283A (en) * | 1989-06-29 | 1994-03-22 | Digital Equipment Corporation | Object transferring system and method in an object based computer operating system |
| US5189733A (en) * | 1989-08-22 | 1993-02-23 | Borland International, Inc. | Application program memory management system |
| US5414826A (en) * | 1990-01-31 | 1995-05-09 | Hewlett-Packard Company | System and method for memory management in microcomputer |
| US5247634A (en) * | 1990-03-20 | 1993-09-21 | Hewlett-Packard Company | Method of managing memory allocation by association of memory blocks with a tree structure |
| US5241663A (en) * | 1990-05-31 | 1993-08-31 | Sony Corporation | Hierarchically pairing memory blocks based upon relative storage capacities and simultaneously accessing each memory block within the paired memory blocks |
| ATE130112T1 (de) * | 1990-09-03 | 1995-11-15 | Ibm | Rechner mit erweitertem virtuellem speicher. |
| JPH0727445B2 (ja) * | 1990-09-04 | 1995-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータプロセッサ動作用ユーザインターフェイス |
| US5293593A (en) * | 1990-10-11 | 1994-03-08 | Hewlett-Packard Company | Method and apparatus for the mapping of physically non-contiguous memory fragments to be linearly addressable |
| GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
| GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
| JP2582487B2 (ja) * | 1991-07-12 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 半導体メモリを用いた外部記憶システム及びその制御方法 |
| DE69328800D1 (de) * | 1992-03-24 | 2000-07-13 | Canon Kk | Verfahren und Verwaltung einer sowohl dauerhafte als auch zeitweilige Daten enthaltenden Datenstruktur |
| US5412805A (en) * | 1992-08-03 | 1995-05-02 | International Business Machines Corporation | Apparatus and method for efficiently allocating memory to reconstruct a data structure |
| CA2100540A1 (en) * | 1992-10-19 | 1994-04-20 | Jonel George | System and method for performing resource reconfiguration in a computer system |
| US5581723A (en) * | 1993-02-19 | 1996-12-03 | Intel Corporation | Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array |
| US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
| US5611043A (en) * | 1994-03-18 | 1997-03-11 | Borland International, Inc. | Debugger system and method for controlling child processes |
| WO1995032466A1 (en) * | 1994-05-19 | 1995-11-30 | Vlsi Technology, Inc. | Flexible register mapping scheme |
| US5765175A (en) * | 1994-08-26 | 1998-06-09 | Intel Corporation | System and method for removing deleted entries in file systems based on write-once or erase-slowly media |
| US5524204A (en) * | 1994-11-03 | 1996-06-04 | International Business Machines Corporation | Method and apparatus for dynamically expanding a redundant array of disk drives |
| US5860149A (en) * | 1995-06-07 | 1999-01-12 | Emulex Corporation | Memory buffer system using a single pointer to reference multiple associated data |
| GB2291991A (en) * | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
| US5784698A (en) * | 1995-12-05 | 1998-07-21 | International Business Machines Corporation | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments |
| US5915265A (en) * | 1995-12-22 | 1999-06-22 | Intel Corporation | Method and apparatus for dynamically allocating and resizing the dedicated memory in a shared memory buffer architecture system |
| US5758056A (en) * | 1996-02-08 | 1998-05-26 | Barr; Robert C. | Memory system having defective address identification and replacement |
| US5860082A (en) * | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
| US5941943A (en) * | 1996-06-17 | 1999-08-24 | International Business Machines Corporation | Apparatus and a method for creating isolated sub-environments using host names and aliases |
| US5881227A (en) * | 1996-06-17 | 1999-03-09 | International Business Machines Corporation | Use of daemons in a partitioned massively parallel processing system environment |
| US5799149A (en) * | 1996-06-17 | 1998-08-25 | International Business Machines Corporation | System partitioning for massively parallel processors |
| US5854896A (en) * | 1996-06-17 | 1998-12-29 | International Business Machines Corporation | System for preserving logical partitions of distributed parallel processing system after re-booting by mapping nodes to their respective sub-environments |
| US5774135A (en) * | 1996-11-05 | 1998-06-30 | Vlsi, Technology, Inc. | Non-contiguous memory location addressing scheme |
| US5864686A (en) * | 1996-11-19 | 1999-01-26 | International Business Machines Corporation | Method for dynamic address coding for memory mapped commands directed to a system bus and/or secondary bused |
| US6038642A (en) * | 1997-12-17 | 2000-03-14 | International Business Machines Corporation | Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system |
| US6108771A (en) * | 1997-12-19 | 2000-08-22 | International Business Machines Corporation | Register renaming with a pool of physical registers |
| US6058463A (en) * | 1998-01-20 | 2000-05-02 | Motorola, Inc. | Paged memory data processing system with overlaid memory control registers |
| US6282589B1 (en) * | 1998-07-30 | 2001-08-28 | Micron Technology, Inc. | System for sharing data buffers from a buffer pool |
| US6330374B1 (en) * | 1998-11-13 | 2001-12-11 | Ricoh Company, Ltd. | Image manipulation for a digital copier which operates on a block basis |
| US6279093B1 (en) * | 1998-11-24 | 2001-08-21 | Dell Usa, L.P. | Computer system and method for preparing a computer-readable medium |
| KR20000041291A (ko) * | 1998-12-22 | 2000-07-15 | 김영환 | 이동통신 시스템에서 방문 이동 가입자의 데이터 관리 방법 |
| FR2787901B1 (fr) * | 1998-12-28 | 2001-02-09 | Bull Sa | Organisation memoire par zones physiques |
| CA2267484C (en) | 1999-03-30 | 2002-03-05 | Object Technology International Inc. | Reclaiming memory from deleted applications |
| US6681240B1 (en) | 1999-05-19 | 2004-01-20 | International Business Machines Corporation | Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions |
| US6691146B1 (en) | 1999-05-19 | 2004-02-10 | International Business Machines Corporation | Logical partition manager and method |
| US6959291B1 (en) | 1999-05-19 | 2005-10-25 | International Business Machines Corporation | Management of a concurrent use license in a logically-partitioned computer |
| US6467007B1 (en) | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
| US6657955B1 (en) * | 1999-05-27 | 2003-12-02 | Alcatel Canada Inc. | Buffering system employing per traffic flow accounting congestion control |
| US6658653B1 (en) * | 2000-06-08 | 2003-12-02 | International Business Machines Corporation | Debugging methods for heap misuse |
| US6947153B1 (en) * | 2000-11-20 | 2005-09-20 | Presstek, Inc. | Method and apparatus for optimized image processing |
| US20030110205A1 (en) * | 2001-12-07 | 2003-06-12 | Leith Johnson | Virtualized resources in a partitionable server |
| KR101259706B1 (ko) * | 2002-10-22 | 2013-05-06 | 제이슨 에이. 설리반 | 향상된 방열 특성을 갖는 비주변 처리 제어 모듈 |
| EP1557075A4 (en) | 2002-10-22 | 2010-01-13 | Sullivan Jason | CONTROL MODULE NOT ASSOCIATED WITH PERIPHERALS HAVING IMPROVED HEAT DISSIPATION PROPERTIES |
| US7242574B2 (en) | 2002-10-22 | 2007-07-10 | Sullivan Jason A | Robust customizable computer processing system |
| US7085897B2 (en) * | 2003-05-12 | 2006-08-01 | International Business Machines Corporation | Memory management for a symmetric multiprocessor computer system |
| US8145870B2 (en) | 2004-12-07 | 2012-03-27 | International Business Machines Corporation | System, method and computer program product for application-level cache-mapping awareness and reallocation |
| US7721047B2 (en) * | 2004-12-07 | 2010-05-18 | International Business Machines Corporation | System, method and computer program product for application-level cache-mapping awareness and reallocation requests |
| US7240179B1 (en) * | 2004-12-13 | 2007-07-03 | Nvidia Corporation | System, apparatus and method for reclaiming memory holes in memory composed of arbitrarily-sized memory devices |
| US7711907B1 (en) | 2007-02-14 | 2010-05-04 | Xilinx, Inc. | Self aligning state machine |
| US8479124B1 (en) | 2007-02-14 | 2013-07-02 | Xilinx, Inc. | Graphical user interface (GUI) including input files with information that determines representation of subsequent content displayed by the GUI |
| US7913022B1 (en) * | 2007-02-14 | 2011-03-22 | Xilinx, Inc. | Port interface modules (PIMs) in a multi-port memory controller (MPMC) |
| US7720636B1 (en) | 2007-02-14 | 2010-05-18 | Xilinx, Inc. | Performance monitors (PMs) for measuring performance in a system and providing a record of transactions performed |
| US8185701B2 (en) * | 2008-02-05 | 2012-05-22 | International Business Machines Corporation | System and method for an adaptive list prefetch |
| US20110302357A1 (en) * | 2010-06-07 | 2011-12-08 | Sullivan Jason A | Systems and methods for dynamic multi-link compilation partitioning |
| US20150127192A1 (en) * | 2013-11-06 | 2015-05-07 | Hitachi, Ltd | Wireless vehicle control system |
| US11119915B2 (en) | 2018-02-08 | 2021-09-14 | Samsung Electronics Co., Ltd. | Dynamic memory mapping for neural networks |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS49122232A (ja) * | 1973-03-22 | 1974-11-22 | ||
| JPS5067043A (ja) * | 1973-10-15 | 1975-06-05 | ||
| JPS5540950B2 (ja) * | 1974-11-30 | 1980-10-21 | ||
| US4145745A (en) * | 1974-12-20 | 1979-03-20 | U.S. Philips Corporation | Address conversion device for secondary memories |
| US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
-
1982
- 1982-11-12 US US06/440,895 patent/US4511964A/en not_active Expired - Lifetime
-
1983
- 1983-08-31 JP JP58160199A patent/JPS5990281A/ja active Granted
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015530660A (ja) * | 2012-09-27 | 2015-10-15 | インテル コーポレイション | 物理メモリの動的パーティショニング技術 |
Also Published As
| Publication number | Publication date |
|---|---|
| US4511964A (en) | 1985-04-16 |
| JPS5990281A (ja) | 1984-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4511964A (en) | Dynamic physical memory mapping and management of independent programming environments | |
| US5802341A (en) | Method for the dynamic allocation of page sizes in virtual memory | |
| US6021462A (en) | Methods and apparatus for system memory efficient disk access to a raid system using stripe control information | |
| US5566321A (en) | Method of managing distributed memory within a massively parallel processing system | |
| EP0113612B1 (en) | Address conversion unit for multiprocessor system | |
| Swan et al. | Cm* a modular, multi-microprocessor | |
| US5274789A (en) | Multiprocessor system having distributed shared resources and dynamic and selective global data replication | |
| US5819061A (en) | Method and apparatus for dynamic storage reconfiguration in a partitioned environment | |
| US8151275B2 (en) | Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS | |
| EP0700000A2 (en) | System and method combining a global object identifier with a local object address in a single object pointer | |
| US9086920B2 (en) | Device for managing data buffers in a memory space divided into a plurality of memory elements | |
| US5860144A (en) | Addressing method and system for providing access of a very large size physical memory buffer to a number of processes | |
| EP0431467A1 (en) | Multiprocessor system having distributed shared resources and dynamic global data replication | |
| US20020099921A1 (en) | System, method, and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system | |
| GB2265734A (en) | Free memory cell management system | |
| JPH04213129A (ja) | メモリ管理システム及びメモリ管理方法 | |
| CN115576716A (zh) | 一种基于多进程的内存管理方法 | |
| EP1605360B1 (en) | Cache coherency maintenance for DMA, task termination and synchronisation operations | |
| US6604185B1 (en) | Distribution of address-translation-purge requests to multiple processors | |
| US5890220A (en) | Address conversion apparatus accessible to both I/O devices and processor and having a reduced number of index buffers | |
| JP3629507B2 (ja) | コンピュータ・システム内で共用仮想セグメント識別を使用して共用メモリを提供するシステムおよび方法 | |
| US5369750A (en) | Method and apparatus for configuring multiple absolute address spaces | |
| US8108873B1 (en) | System for extending an addressable range of memory | |
| US7076632B2 (en) | Fast paging of a large memory block | |
| JP3456727B2 (ja) | データ処理装置 |