JPS5990281A - メモリ管理方式 - Google Patents

メモリ管理方式

Info

Publication number
JPS5990281A
JPS5990281A JP58160199A JP16019983A JPS5990281A JP S5990281 A JPS5990281 A JP S5990281A JP 58160199 A JP58160199 A JP 58160199A JP 16019983 A JP16019983 A JP 16019983A JP S5990281 A JPS5990281 A JP S5990281A
Authority
JP
Japan
Prior art keywords
memory
block
physical
blocks
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP58160199A
Other languages
English (en)
Other versions
JPH0330897B2 (ja
Inventor
Dei Jiyooji Denisu
デニス・デイ・ジヨ−ジ
Dei Osukii Benjiyamin
ベンジヤミン・デイ・オスキイ
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.)
Hewlett Packard Japan Inc
Original Assignee
Yokogawa Hewlett Packard Ltd
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 Yokogawa Hewlett Packard Ltd filed Critical Yokogawa Hewlett Packard Ltd
Publication of JPS5990281A publication Critical patent/JPS5990281A/ja
Publication of JPH0330897B2 publication Critical patent/JPH0330897B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/0284Multiple user address space allocation, e.g. using different base addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は一般的には、各々がいくつかの動的構造(dy
namic 5tructure )より成る多数の独
立したプログラム環境(programmingenv
ironment )を有するコンピュータ・システム
におけるメモリ管理方式に関し、より具体的には、この
発明は独立したプログラム環境相互間の干渉を最小限度
にするか、少なくとも減らすメモリ管理方式に関する。
コンピュータ技術で明らかな問題は、コンピュータの能
力を最大限に利用するようにコンピユー〇 り弦資源を効率的に管理する必要があることである。メ
モリの容量、計算速度および計算能力が増大するにつれ
て、新世代の単一ユーザ・コンピュータは多数のタスク
を同時に処理することができるようになってきた。単一
ユーザにとって、自分自身のコンピュータを1つのタス
クに専念させたり、同時に多数のタスクを実行させたり
する融通性は有益である。従って、いくつかのタスクを
互いに干渉することなく同時に実行できる状態Cact
jve>にすることができるメモリ管理方式を開発する
ことは有益である。単一ユーザ・コンピュータにとって
特に重要なことは、他のプログラムを実行しながらある
プログラムを入力したり、編集したり、デバッグしたり
する能力である。
この活動(actiνe)タスクが複数存在するという
ことはコンピュータのメモリ内の動的構造の複雑さを増
加させ、それによって動的構造を効率的に管理する必要
性が増大する。従って、メモリを別のタスクに利用でき
るようにするためにメモリ内のあるタスクを移動させる
というような、独立したタスク間の予期しない相互干渉
を減らしたり、最小限度に押さえたりするメモリ管理方
式が必要とされている。
−aに、単一ユーザ・単一タスク・システムにさえ利用
される動的構造には各種の種類がある。
コンピユータに入力されるプログラムは、テキストのま
まの形と、機械で実行可能な形の双方でメモリに記憶さ
れる。また、各種のデータ構造がメモリに記憶される。
データを後入れ先出し方式で記憶したり呼出したりする
、スタックという特殊なデータ構造も、一時的なデータ
の記憶用、また入れ子状になった( nes ted)
関数やサブルーチンヲ伴うプログラムのコントロール・
フローの管理用にしばしば使用される。前述のデータ構
造はみな、メモリ割当拡張、割当解除を動作時間中に行
うことを必要とする意味で動的構造である。
利用できるメモリを最も効率的に活用するためには、こ
れら動的構造りこ各一定量のメモリを割当てるのではな
く、必要とされる量だけ可変量のメモリを動的に割当て
る必要がある。固定割当てでは、はとんどの場合、割当
てられたメモリの大半が結局は使用されないと共に、構
造の各々に割当てられるメモリに融通性のない上限を課
すことになる。1979年、ジョン・ワイリー・アンド
・サンズ社(John Wiley and 5ons
 )より発行され、ブラウン(P、 J、 BroIv
n )氏の「対話型コン、aイラとインクプリンタの作
成」 (“Writing Inter−active
  Compilers and Interpret
ers″)という表題の付された著作の77ページ以降
に説明されているように、複数の動的構造を利用するに
は、ある動的構造の情報を別の動的構造の情報に重ね書
きすることにより別の動的構造を破壊してしまうことを
避けるためのメモリ管理方式が必要である。典型的な動
的構造には固定端及び情報を加えたり除去したりする可
動端をそれぞれ1つ有する。
第1A図ないし第1C図に示すように、動的構造の各対
をメモリに背中合せに記憶し、各構造の動的な端が互い
に離れる方向に伸びて行くようにすることによってメモ
リ管理を多少簡単にすることができる。このようなメモ
リ管理方式においては、第1B図の構造2と3の動的な
端のような2つの動的な端がぶつかったとき、特別な処
置が必要とされる。すなわち、メモリをこの2つの動的
な構造に利用できるようにするためには、1つかそれ以
上の動的な構造を移動し、それによりぶつかり合った2
つの動的な端の間に再度空白を作らなければならない。
第1C図に示されている例は、未使用のメモリを動的構
造2と3に利用できるようにするために、第1B図にお
ける動的構造1と2を上へまた動的構造3と4を下へ移
動させた結果を示す。この方式はメモリを最大限に利用
できるものではあるが、1つかそれ以上のメモリ・ブロ
ックを移動させるという時間のかかる処理をともなうと
いう犠牲を支払わなければならない。またこの方式では
、固定アドレス・ポインタは使用できない。すなわちメ
モリのブロック移動により、動的構造の固定端が移動し
たときでもすべてのポインタが指示するアドレスは関連
する動的構造の固定端に対しての相対アドレスとなって
いなければならない。いずれにしても、使用するメモリ
の領域の拡張のために動的構造が利用できる空間は、ア
ドレス空間の上限と下限を形成する2つの境界で制限さ
れる。
別の一般的なメモリ管理方式においては、動的構造はメ
モリの連続したセダメント上に生成される必要はな(、
さらにメモリが必要となる主ルーチンが共通のメモリの
プールから制御可能な量のメモリを取出してそれをメモ
リをさらに必要としている動的構造に利用できるように
する。1つの動的構造に利用できる各種のメモリ・ブロ
ックは物理的には隣接している必要はなく、そのかわり
に、あるブロックの終端をこのブロックに論理的に連続
する次のブロックの先頭にリンク (link)するリ
ンクド・リスト (linked 1ist )構造を
とっている。一部のシステムでは、メモリの一部分が使
用されなくなると、その部分は自動的に共通のメモリ・
プールに戻される。この方式では、リンクI・・リスト
構造を実現するために必要なポインタ・フィールドがメ
モリの一部を消費してしまう点が欠点である。この方式
ではまた、プログラムが多数の小さなフラグメントに記
憶され、それによって実行中に数多(のジャンプを必要
とする。
たとえば、NXNの行列がこれらフラグメン(・のい(
つかに分散して書込まれると、行列の乗算や逆行列演算
のような標準的な行列演算の実行中に多くのジャンプが
必要とされることがある。このように、リンクド・リス
トの管理は複雑でエラーを生じやすい。
別のメモリ管理技術においては、メモリは同一の長さの
ページに分割される。1978年にプレンティス・ポー
ル社(Prentice flail、Inc、)より
発行されたランス・A、レベンクール氏(Lance八
、 Leventhal)の著になる「マイクロプロセ
ッサ入門:ソフトウエア、ハードウェア及びプログラミ
ング」 (“Introduction to Mic
roprocessions: 5oftinare、
 l1ardnare and Programmin
g″)という表題の本の77ページから記載されている
ように、ページに区分されたメモリを使用する主要な目
的は、直接アドレス指定モードでの命令のアドレス部分
の長さを短くすることである。ページに区分するアドレ
ス指定法においては、メモリ位置のアドレスはそのペー
ジのページ番号とページ内アドレスとで指定される。メ
モリ内のあるアドレスにアクセスする際、そのアドレス
のページ番号をページ・レジスタにロードし、次にペー
ジ内アドレスを直接アドレス指定命令で指示する。ペー
ジ内アドレスを指示するのに必要なビット長は与えられ
たメモリ・アドレスを指示するのに必要な全ビ・7ト長
より短いのが通例であるから、この技術は命令のアドレ
ス部分の長さを短縮する。
リンクド・リスト法と同様に、ページに区分したメモリ
は必要に応して動的構造に割当てることができる。しか
しながら、この方式も前述したリンクド・リスト法の欠
点の大部分のものを有する。
すなわち、ある動作が1ページを越えるメモリを必要と
する場合、ページ間のジャンプごとにページ・レジスフ
内のページ番号を変更しなければならない。両技術は仮
想メモリ環境で非効率である。
というのは、使用されるメモリ領域がメモリ全体へ分散
され、それによって仮想メモリが多量のスし ワノブ・イン沃スワップ・アウト動作を行う必要がある
からである。また両技術は、インデクス修飾、ブロック
転送、サーチングのような隣接するいくつかのメモリ・
プロ・/りを処理する数多くの各構造をアドレスの連続
したいくつかのブロックに記憶することができる能力を
失うことなく、動的構造を拡大したり縮小したりするこ
とができるメモリ管理方式が必要とされている。
本発明に従えば、パーティションと呼ばれるいくつかの
独立したプログラム環境をメモリに記憶することができ
ると共に、互いの動作に干渉することなく同時にパーテ
ィションを利用できるようにするメモリ管理方式が提供
される。本発明に従えば、アドレスは2つの関連し2て
いるが概念的に異なる意味・機能(すなわち論理アドレ
スおよび物理アドレス)を有するものとして使われる。
すなわち、論理アドレスとは、シヌテムが情報を読み出
したり書き込んだりする抽象的なメモリ位置を表すため
のものである。また物理アドレスとは、データを読み出
したり書き込んだりするために物理メモリ位置をアクセ
スするのに利用される。
論理アドレス空間と物理アドレス空間の間の結合は本発
明のメモリ管理方式の主要な機能である。
論理アドレス空間と物理アドレス空間を区別する利点は
、互いに隣接するいくつかのメモリ・ブロックを処理す
る従来の技術(たとえば、インデクス修飾、ブロック転
送、サーチング)は論理メモリ空間に対する処理である
という点にある。従って、必要に応じて動的構造を論理
メモリの互いに隣接するいくつかのブロックに入力し、
そして物理メモリ上においては、多分隣接していないい
くつかのブロックにこの動的構造を割り当てることがで
きる。その結果、動的構造を拡張する際、メモリのブロ
ック転送を行う必要はない。
システムの論理アドレス空間の管理、および物理メモリ
と論理アドレス空間の各部分との結合はオペレーティン
グ・システム(以下、O8と称する)で実行する。この
O81特にそのメモリ管理モジュールは、メモリの割当
て、拡張、割当て解除を実施するためのサービスを行う
システムのソフトウェア・モジュールである。この発明
の主要な概念は、システムの論理アドレス空間の各部分
を動的に物理メモリに対応付けるために使用する技術で
ある。
この技術の基礎は、システムの論理アドレス空間をパー
ティション論理アドレス空間(以下、パーティションと
称する)という個々の範囲に区分することである。次に
独立したプログラム環境のログラム環境内の動的構造は
、同一プログラム環境内の他の動的構造とのみ衝突しく
 conf ] ic t)、他のプログラム環境内の
動的構造と衝突しないことである。従来技術で説明した
、動的データ構造を固定するシステム・アドレス空間内
の上端及び下端は合計2つであったが、この発明の区分
法では各パーティション毎に2つ、すなわち論理アドレ
ス空間全体では多数の上下端が得られる。そして、各プ
ログラム環境はそれ自身のパーティションにある。各パ
ーティションがシステム内の物理メモリより大きいため
、プログラム環境には新しいメモリ床制限が課されない
。それにもがかわらず、1つのパーティションだけで有
効な物理メモリの全部を利用することができる。
O8のメモリ管理モジュールは、各種のパーティション
への物理メモリの割当てを管理する。物理メモリは必要
な時のみ論理アドレス空間のブロックと結合される。メ
モリ管理モジュールは、特定のパーティション内の動的
構造への要求に応じて物理メモリをそのパーティション
に割当てる。パーティションにそのように割当てられた
どの動的構造でもその論理アドレス空間に対応して物理
メモリが確実に割当てられるようにするのがメモリ管理
モジュールの責務である。
現在どのプログラム環境によっても使用されていないメ
モリを管理するためにシステム論理アドレス空間の1つ
のパーティシコンが使用される。
この特別なパーティションはすべての未割当物理メモリ
を含み、プログラム環境としては使用することができな
い。あるパーティションから十分なサイズの動的構造が
割当てを解除されるか、パーティション全体が割当てを
解除されると、物理メモリはこの特別なパーティション
に戻される。あるパーティシコンが物理メモリの拡張を
要求すると、メモリ管理モジュールは未割当物理メモリ
が入っているこの特別なパーティションから新しいメモ
リを必要とするパーティションに物理メモリを割当てる
。全部の物理メモリが標準的なパーティションに割当て
られ、そして未使用の物理メモリのパーティションが使
い果たされたときになって始めて、ある独立したパーテ
ィション内の構造の動的割当てが別のパーティシコンに
影響をあたえる。
論理アドレスを物理メモリに対応付ける前述の方式は、
メモリ・コントローラによってハードウェア内で支援さ
れる。各メモリ・コントローラはメモリ・チップの密度
によって16個または32個の物理メモリのブロックを
支援する。なお、物理メモリの1ブロツクは16にバイ
トを表す。物理メモリの各ブロックにはマツパ・レジス
タが対応付けられている。そして各マツパ・レジスタの
内容はそのレジスタに対応付けられた物理メモリのプロ
・7りが応答すべき論理アドレスを決定する。
メモリ・コントローラ内にあるこれらのマツパ・レジス
タはO3のメモリ管理モジュールによって書込まれる。
メモリ管理モジュールは、論理アL。
レスを物理メモリのブロックに対応するマツパ・レジス
タに書込むことによって、システムの論理アドレス空間
の任意の部分を物理メモリの特定のブロックに対応付け
ることができる。
以下で説明する好適な実施例においては、1個の中央演
算処理装置(以下、CPUと称する)、1個の入出カプ
ロセッサ(以下、IOPと称する)、1個のメモリ・コ
ントローラ、及びメモリ・コントローラに結合された等
速呼出し記憶装置(以下、RAMと称する)と固定記憶
装置(以下、ROMと称する)を含む基本システムから
、いくつかのCPU、いくつかのIOP、そして各々が
4個ま、μ 可能である。本実施例の論理メモリ空間では16個のメ
モリ・コントローラにアクセスすることができようが、
集積回路基板のサイズやコンピュータのサイズといった
物理的制約によって物理的には10個のメモリ・コント
ローラまでしかサポートされない。メモリ・コントロー
ラはメモリとシステムの他の部分とのインタフェイス動
作を受は持つ。
プロセッサ相互間のまたはプロセッサとメモリの間の通
信はすべて゛メモリ・プロセッサ母線(以下、MPBと
称する)を通して行われる。MPBに接続された各CP
Uは、CPUとMPBの間の通信および相互作用のすべ
てを処理するMPBインタフェイスを有する。これはM
PBプロトコルによって要求されるすべての動作を実行
することにより、MPBのタイミングと制御をCPUか
ら直接には見えない(transparent )よう
にする・メモリ・コントローラは、全部のチャネルにつ
いてメモリの読み書きを処理する。メモリ・コントロー
ラはメモリ・インクフェイスとして動作し、メモリをア
クセスするのに必要なすべてのタイミングと制御信号を
発生する。1個かそれ以上のCPUからメモリ・コント
ローラへのMPBを介しての通信によって、論理メモリ
・アドレス・ブロック番号をメモリ・コントローラ内の
レジスタに入力することができる。これらレジスタの各
々は1ブロツクの物理メモリに対応付けられている。
与えられた論理ブロックのブロック番号をある物理メモ
リのブロックに対応付けられたレジスタにロードするこ
とによって、その物理メモリのブロックを論理メモリの
与えられたブロックに写像(map>することができる
システム・デバイスは、論理メモリ位置のアドレスを有
するメモリ・アクセス・ワードをMPB上に送出するこ
とによって、その論理メモリ位置にアクセスする。この
アドレスの第1の部分がアクセスされるべき論理メモリ
位置を含む論理メモリ・プロ、りのブロック番号を指示
し、アドレスの残りの部分はそのブロックのブロック内
アドレスを指示する。MPB上に送出された論理メモリ
位置がメモリ・コントローラ・レジスタに入力されてい
るブロック番号に対応すると、対応する物理メモリ位置
に対してアクセスが行われる。パーティションという、
互いの動作に対してほとんど影響を与えない独立したい
くつかの論理メモIJ 動的構造を発生させるよう、論
理メモリを物理メモリの数倍の大きさに選択する。各パ
ーティションはそれ自身の動的構造をいくつか有するこ
とができる。各パーティションは物理メモリと同じ大き
さなので、物理メモリの全部か一部を1個のパーティシ
ョンに写像することができる。これによって、物理メモ
リに未割当てブロックがある限り、他のどのパーティシ
ョン内のメモリのブロック転送も必要とすることなく、
あるパーティション内の動的構造を拡張することができ
る。しかし、物理メモリの全ブロックが各種のパーティ
ションに既に割当てられている比較的まれな場合には、
他のパーティション内のメモリのブロック転送が々・要
となる。なんとなればあるパーティション内でブロック
転送を行い、そこでの未使用領域をまとめることにより
、物理メモリの1個のブロック全体がからになることも
あり、その場合にはそのからになった物理メモリをメモ
リを要求中のパーティションに再び割当てることができ
るからである。
論理メモリのパーティションは、別々のプログラム群の
ような1組の独立した構造群(たとえば、1つのジョブ
のためのタスク群)を収容するために利用することがで
きる。従って、何組かの互いに独立したプログラム群を
それぞれの群毎に専用のパーティシロンに入力して同時
に実行することができる。物理メモリに未割当ブロック
がある限り、これらのプログラム内の動的構造は他のパ
ーティションでプログラムをブロック転送することな(
、必要に応して拡大したり縮小したりすることができる
。これらのプログラムは1個のプロセッサを用いて時分
割的に同時に実行することもできるし、また複数のブロ
モ・ノサを利用しであるプログラムの実行に対する別の
プログラムの実行の影響をさらに減らすこともできる。
2つのプログラムの実行が相互に干渉し合うのは、2つ
のプログラムが同時にメモリ・アクセス用の母線へのア
クセスを求めている場合、あるいは物理メモリが既に皆
割当てられているにもかかわらず、一方のプログラムが
さらにメモリを要求している場合のみである。
マルチ・タスク・システム等の様に、表面上独立したプ
ログラム間で通信を行うことが有益なこともある。たと
えば、あるプログラムが工業プロセスを積極的に監視し
たり制御したりし、第2のプログラムが第1のプログラ
ムで発生されたデータを分析するようにすることができ
る。従って、クセスすることができる大域(globa
l)データ・セグメントを含む。
以下、図面に基いて本発明の詳細な説明する。
第2図には、動的構造間の望ましくない相互干渉を最小
限に抑えて、メモリに同時に存在する多数の動的構造に
必要に応じて動的にメモリを割当てる本発明のメモリ管
理方式による論理アドレスと物理アドレスとの対応関係
の一例を示している。
同図の左に示されているのはコンピュータ内の物理メモ
リ位置に割当てられた物理アドレス空間であり、この図
の右に示されているのは論理アドレス空間である。図示
の実施例では、物理メモリはλう 2 バイト (すなわち、8388608バイト。
8Mバイトと表示することもある)を有しておりこれら
のバイトは2″ (すなわち、512)個のブロックに
分割され、各ブロックは2′4バイト (すなわち、1
6384バイト。16にバイ1−と表示することもある
)を含む。同様にして、論理アドレス空間は2qバイト
 (512Mバイトと表示することも多い)を有し、こ
れらのバイトは2“(すなわち64)個のパーティショ
ンに分割され、各パーティションは29(すなわち51
2)個のメモリ・ブロックに分割される。
プロ・7りの大きさは物理アドレス空間と論理アドレス
空間の両者において同一であるので、物理メモリは一度
に1ブロツクずつ論理アドレス空間に写像することがで
きる。各パーティションは物理空間と同じ大きさである
ので、パーティション相互間の望ましくない相互干渉は
最小限にとどめられる。相互干渉を抑えることができる
というわけは、1つのタスク(あるいはジョブ)のため
にあるパーティションに物理メモリ全体を割当てること
もできるし、あるいはそのかわりに、複数のタスクの実
行にあたって、物理メモリの複数のブロックをこれらの
タスクが記憶されている各種のパーティションに割当て
ることによって複数のタスクの各々を独立した論理メモ
リ環境に置くことができるからである。各パーティシコ
ンが物理メモリ空間と同じ大きさであるため、物理メモ
リのブロックをあるパーティションに割当てたり、この
パーティションから割当てを解除したりしても、他のパ
ーティション内のプログラムのブロック移動は必要とさ
れない。従って、64個のパーティシコンは独立したプ
ログラム環境として機能すると共に、コンピュータが6
4台の仮想コンピュータを含んでいるかのように想定し
てプログラムをコンピュータに入力することができる。
ブロックの大きさは厳密に選択する必要はなく、物理メ
モリの好都合な一部分であればよい。論理アドレス空間
の大きさは2刈バイトに選択する。
それは、この長さが32ビツトのアドレス・ワードでア
クセスすることができるためである。なお、この32ビ
ツトのアドレス・ワードのうち上位3ビツトはそのワー
ドのファンクション・コードを指示するために利用する
。64個のパーティションがあるのは論理アドレス空間
を、各々に物理メモリ全体を割当てることができる(す
なわち、物理アドレス空間と同じ大きさの)パーティシ
ョンに分割するためである。もちろんこれらのパラメー
タに他の数値を選択することができるし、集積回路技術
が進展するにつれて別の選択をする方が好都合になるで
あろう。
第2図に示されているように、タスクのために必要とさ
れるい(つかのメモリ・ブロックは論理アドレス空間で
も物理アドレス空間でも互いに隣接している必要はない
。たとえば、パーティションA内の論理アドレス空間の
一部にあるタスクが置かれており、ここで当初に必要と
される動的構造として、辞書用の第1の動的構造、サブ
ルーチンや関数の終結後、どこへ戻るべきかを示す情報
を保持するリターン・スタック用の第2の動的構造があ
ると仮定する。この場合、第2図に示す様に、物理アド
レス空間内のブロックOと1を論理アドレス空間内のブ
ロックBとB+1に割当てて第1の動的構造用として用
い、また物理アドレス空間内のブロックEを論理アドレ
ス空間内のブロックCに割当てて第2の動的構造用とし
て用いることができる。
これらの動的構造のいずれもパーティションAの先頭ア
ドレスから始まる必要はない。従って、第2図において
はパーティションA内のブロックBより上位のアドレス
部分にギヤング(すなわち未使用領域)が示されている
。後にキーボード等からのプログラムの入力中に、また
はプログラムの実行中に、動的構造1にメモリがさらに
必要となると、物理空間から簡単にメモリを割当てるこ
とができる。これは論理アドレス空間内のブロックB+
2への物理アドレス空間内のブ0ツクFの割当てとして
第2図中に示されている。物理アドレス空間においてブ
ロックlとブロックFの間のブロックが既に他の動的構
造に割当てられてしまっているかもしれないし、また何
か別の都合があるかもしれないので、ブロックFがプロ
・ツクB+1に割当てられたブロックに物理メモリ内で
隣接する必要はない。しかし、たとえブロック1とFが
物理メモリで隣接していなくとも、プロ・7りBとB+
1は論理アドレス空間内で隣接している。
連続アドレス空間についての処理に適している技術、た
とえばインデクス修飾、ブロック転送、サーチングは物
理メモリ空間ではなく論理シモリ空間を利用するため、
これらの技術はこのメモリ管理方式において利用するこ
とができる。
物理メモリの各ブロックを論理アドレス空間の各ブロッ
クに割当てるに適するハードウェアのブロック図は第3
図に示されている。論理アドレス空間への物理メモリの
割当てはメモリ・コントローラと呼ばれる回路で行う。
システムは1つかそれ以上の中央演算処理装置(CPU
)、メモリ・プロセッサ母線(MPB)および最大16
個のメモリ・コントローラを含むことができ、各メモリ
・コントローラは4個までのメモリ・バンクを制御する
。第3図に示されている実施例では、MPB31は7個
のCPO32〜38と10個のメモリ・コントローラ3
9〜318に接続され、各メモリ・コントローラはメモ
リ・バンク群319〜328のうち対応付けられた1つ
を制御する。各メモリ・バンクは実装密度に応じて16
kまたは32にの32ビツト・ワードのRAMを含む。
CPUとメモリの間の、またはCPU相互間の通信はす
べてMPBを通して行われる。MPBインクフェイスは
CPUとMPBの間のすべての通信と相互作用を処理し
、MPBプロトコルに必要なあらゆる動作を実行する。
これにより通信のタイミングと制御をCPUから直接に
は見えないようにする。
MPBは全部で8系統のチャンネルを支援し、MPBに
接続されている各装置はチャネル番号を割当てられる。
MPB上の優先度はチャネル番号に従って決められ、小
さなチャネル番号はど高い優先度を有する。チャネルO
はメモリ・コントロMPBを介する通信はチャネル相互
間またはチャネルとメモリの間のいずれかで行われる。
メモリ・コントローラとの通信はチャネルOで行われる
一方、メモリとの通信はメモリ・アクセス・ワードをM
PB上に与えることにより行われる。このメモリ・アク
セス・ワードは、対応する物理アドレスに対する制御権
を有するメモリ・コントローラによってアクセス要求と
して認識されて処理される。したがって、メモリ・コン
トローラへのコマントは1つかそれ以上のCPUからチ
ャネルO経由でメモリ・コントローラに送られ、アドレ
ス変換用等の制御データがメモリ・コンI・ローラの内
部レジスタに人力される。斯くして物理メモリの論理メ
モリ空間への写像が設定される。同様にして、メモリ・
コントローラ内のレジスタの内容へのアクセスがチャネ
ルO経由で行われる。
第4図には第3図のメモリ・コントローラ39〜328
の機能的ブロック図を示す。MPB31は、メモリ・コ
ントローラ信号をメモリ・コントローラとの間で送受す
るよう、メモリ・コントローラ内のMPBインクフェイ
ス41に接続されている。
MPBインタフェイス41はMPB31からメモリ・コ
ントローラ・アドレス母線42へ送られる夕のバッファ
として動作する。メモリ・コントローラ・アドレス母線
42は、物理メモリを各種の動的プログラム構造に動的
に割当てるアドレス・マツパ44に接続されている。
アドレス・マツパ44は変換されたアドレスをメモリ・
アドレス母線(以下、MABと称する)45に送出し、
4本のチップ選択(以下、csと称する)ライン46に
チップ選択信号を送る。CSライン46の各々は、4個
のメモリ・バンクンク47〜410の各々はメモリ・バ
ンク47内の4つのチップ411〜415のような16
に×8ピント構成のメモリ・チップを5個有する。メモ
リ・コントローラはメモリ・コントローラのコントロー
ル機能の中枢であるプログラマブル・ロジック・アレイ
 (以下、PLAと称する)416制御し、また他のチ
ャネルからの内部メモリ・コントローラ・レジスタへの
アクセスの処理も行う。
メモリ・コントローラとメモリ・チップの間でデータを
転送するため、39ビツト幅のメモリ・データ母線41
7がドライバ/レシーバ418とメモリ・チップとの間
に接続されている。これによってメモリは39ビツト・
ワードを記憶することができる。このうち32ビツトは
データ・ビットとして使用され、残り7ビツトはエラー
の検出/訂正用のチェック・ビットとして利用される。
メモリ・バンク47に記憶されるワードについては、各
ワードのバイト0,1.2および3はそれぞれチップ4
1L  412.413および414に記憶される。チ
ップ411〜415の各々の第1 (すなわちアドレス
の先頭部の)の4にバイト(すなわちチップ411〜4
14からの各4にバイトのデータ・ビットおよびチップ
415からの4に×7ビノトのチェック・ピント)によ
って物理メモリの16にバイトの1つのブロックが形成
される。同様にして、チップ411〜415の各々の4
にバイトの第2.第3および第4のブロックによりそれ
ぞれ物理メモリの他のブロックが1つずつ形成される。
チップ411〜415を32kx8ビット構成RAMに
交換すれば、各バンクは8個のメモリ・ブロックを含む
。従って、一種類のメモリ・コントローラにより、16
kx3ビ7トおよび32kX8ビツトの両方のチップを
制御可能とするため、各メモリ・コントローラは32個
の物理アドレス・ブロックを制御可能である。
X従って第3図ではメモリ・コントローラ39は物理メ
モリ・ブロックO〜31の割当てを制御し、メモリ・コ
ントローラ310は物理メモリ・プロ7り32〜63の
割当てを制御する。他のメモリ・コントローラについて
も同様である。システムは論理的には16個までのメモ
リ・コントローラを使用できるので、第2図に示されて
いる物理アドレス空間は29 個のブロックを有する。
しかし、本発明の好適な実施例は物理的に10個のメモ
リ・コントローラを支援することができるだけであるの
で、実際の物理メモリ空間には10×2 個の物理メモ
リのブロックしか実装されていない。
物理アドレス空間をどのようにして論理アドレス空間に
割当てるのかについては第5図および第6図を参照して
詳細に説明する。アドレス・マツパ44は物理メモリを
一度に1ブロツクづつ論理アドレス空間に割当てる。第
5図には、メモリをアクセスするのに用いるメモリ・ア
クセス・ワード内の32個のビットの意味が示されてい
る。PLA416はメモリ・アクセスの形式を表ずファ
ンクション・コード用のビットO〜2に応答する。
このファンクション・コードはメモリがアクセスされて
いるのかどうか、またアクセスされているのなら、フル
・ワード(32ビツト)、ハーフ・ワード(16ビ、ト
)、バイトのどれがアクセスされているのかを指示する
。ハーフ・ワードがアクセスされている場合、メモリ・
ワードのどちら半分がアクセスされているのかを指示す
るためにビット30が用いられる。バイトがアクセスに
されている場合、ビット30と31が1つのメモリ・ワ
ード(すなわちフル・ワード)内の4バイトのどれがア
クセスされているのかを指示する。ファンクシコン・コ
ードはまた、MPB31上のメモリ・アクセス・ワード
がチャネル間通信のためのチャネル間メソセージである
かどうかを指示する。このチャネル間メツセージを送出
している装置をマスクといい、メツセージを受信してい
る装置をスレーブという。チャネル間通信では、ビ・ノ
ド3〜5がスレーブ・チャネルの番号を指示し、残りの
24個のビットがスレーブ内のアドレスを指示する。メ
モリ・コントローラがチャネルO経出でアクセスされた
場合、ビ、16〜9はどのメモリ・コントローラを選択
すべきかを指示し、ビット23〜29はメモリ・コント
ローラ内のアドレスを選択する。
メモリ・アクセス・ワードがMPB31に送られると、
PLA416がアドレス・ワード内のファンクション・
コードに応答してワードのアドレス部分(すなわち、ピ
ント3〜29)をアドレス母線42を通して伝送する。
ビット3〜17はアクセスされるメモリ位置の論理ブロ
ック番号を含み、ビット18〜29がそのブロック内の
どのワードがアクセスされているかを指示する。アドレ
ス・マツパ44は物理メモリの1つのブロックを論理ア
ドレス空間の1つのブロックに割当てるので、15個の
ビット3〜17だけがアドレス・マツパ44によって変
換され′る。
アドレス・マツパ44のブロック図が第6図に示されて
いる。アドレス母線42のアドレスはマルチプレクサ6
1によりアドレス・マツパ44に与えられる。このマル
チプレクサ61はマツパ内容アドレス指定可能母線(以
下、MCABと称する)62かマツパ内部レジスタ(以
下、MIRAと称する)母線63のどちらか一方にメモ
リ・コントローラ・アドレス母線42を接続する。MI
RA母線63は32個のマツパ内容アドレス指定メモリ
 (以下、MCAMと称する)レジスタ64に接続され
る。MCAMレジスタ64の各々はこのメモリ・コント
ローラによって制御される4個のメモリ・バンク内の物
理メモリの1ブロツクと対応している。これらのレジス
タの各々は一致が検知されたことを通知するマツチ・ラ
イン65によってマツパROM66に接続される。マツ
パROM66はMCAMレジスク64の各々とそれに関
連付けられた物理メモリのブロックとを対応付ける。各
MCAMレジスク64はまた1組の比較器67のうち関
連付けられた比較器に接続され、この比較器はメモリ・
コントローラ・アドレス母線42上の入力アドレスとそ
れに関連付けられたMCAMレジスクの内容が一致して
いるかどうかをチェックする。メモリ・アクセス・ワー
ドがMPB31に送られると、メモリ・コントローラ3
9〜318の各々に設けられている比較器67が同時に
メモリ・アクセス・ワードのブロック番塾 号部分(すなわち、ピント3〜17)がそれらに関連付
けられたMCAMレジスタ64の内容と一致するかどう
かをチェックする。これによって一致の確認のため、時
間をかけてMCAMレジスク64を逐次的に検索するこ
とが避けられる。このように1組のMCAMレジスクは
、物理メモリのブロックから論理メモリのブロックへの
割当てを行う、非常に高速なルック・アンプ・テーブル
として機能する。転送されてきた論理ブロック番号がメ
モリ・コントローラ内のMCAMレジスタのどの内容と
も一致しないと、マツチ・ライン65はすべて低レベル
状態にとどまる。
どの2つのMCAMレジスタも同一の内容を有すること
を禁止されている。従ってどのメモリ・コントローラを
とってみても、その中の32本のマツチ・ライン65の
うち同時には高々1本だけが1個のMCAMレジスタの
内容と1個のメモリ・アクセス・ワードに割当てられた
論理ブロック番号の一致を指示することができるだけで
ある。
従って、マツチ・ライン65を通してマツバROM66
に加えられるゼロ以外の互いにことなる入力は32個だ
けである。このマツバROM66はこれら32個の異な
るゼロ以外の入力をCSライン群46のうちの1本に送
られる高レベル状態の出力と3ピント・アドレスに変換
し、この3ビツト・アドレスは第5図に示されているよ
うにメモリ・アクセス・ワードのピント18〜21と結
合ヒ してYアドレスを形成する。Xアドレス灰Yアドレスは
2つのとなり合うクロック・タイミングおおいて切換え
出力され、CSライン群46による物理メモリ位置をア
クセスする。なお、ここで言うXアドレス、Yアドレス
という用語は、標準的なグイナミノクRAMのアドレス
・マルチブレクシングにおける使い方と同じ意味を持つ
。第4図に示されているように、08947群46はメ
モリバンク47〜410のうちのどれがアクセスされる
かを決定し、マツバ・ROM66によって供給されるY
アドレスの3ビットが、そのバンク内の物理メモリのど
の4にバイトのブロックがアクセスされるのかを選択す
る。XアドレスとYアドレスの残り(すなわち、マツバ
44によって写像されない部分ンは物理メモリの選択さ
れたブロック内部のアクセスされるメモリ位置を選択す
る。メモリ・バンクが32に×8ビット構成のROMを
含む場合、マツバROM66からの32通りの可能な出
力46の全部が利用される。しかし、メモリ・バンクが
16kx3ビツト構成のRAMを含む場合、マツバRO
M66によって発生されるYアドレスの3ビツトは0か
ら7までではなくて、0から3までの値しか取れない。
各MCAMレジスク64は16ビツト幅であり、そのう
ち15ビツトはそのレジスフに対応付けられた物理メモ
リ・ブロックに割当てられるべき論理アドレス・ブロッ
ク番号を記憶するために使用される。また、16番目の
ビットはマツプ・アウト・ピントと呼ばれる。メモリ・
アクセス・ワード内のブロック番号とMCAMレジスク
64の内容とを比較するのに際し、メモリ・アクセス・
ワード内のブロック番号は、実際には第5図からもわか
るように15ピントなのであるが、これを16番目のビ
・ノドが“0″になっている16ビツトであるものとし
て取り扱う。従って、マツプ・ア・ブロック番号との一
致が起らないことが保証される。これによって欠陥記憶
位置を有するメモリ・プロ・ツクへのアクセスを不能に
することができる。このビットはチャネル間の通信によ
り点検したり変更したりすることができる。チャネル間
通信に応答してMCAMレジスタの内容をMIRA母線
を63を介してアクセスし、MCAMレジスクの読み出
し・書き込みを行うことができる。これによってこれら
レジスフの内容を変更して動的なアドレス変更を行うこ
とができる。
物理メモリを論理メモリに動的に写像するためには、ど
のようなメモリ割当要求が与えられてもそれに応答して
、写像が行われるべき物理メモリのブロックを特定して
選択する方法が必要である。
特に、未使用領域、すなわちO3やシステムのユーザが
使用するための割当がまだなされていない物理メモリの
ブロック、を管理するための方法が必要である。メモリ
の未割当ブロックに対応するMCAMレジスタは既に割
当てられているブロックと同じ内容を有してはいけない
。さもなくば、その未割当ブロックはあるメモリ・アク
セス・ワードによってアクセスされていまうことになる
以上の目的は、未割当メモリ管理用に設けられている1
個のパーティションに物理メモリの未割当ブロックの全
部を写像することによって達成される。メモリ管理モジ
ュールが、物理メモリのどのブロックがシステムの論理
アドレス空間のどの使用可能部分にも割当てられていな
いかを記録するデータ構造を維持・管理する。
新たに物理メモリ・ブロックの割当てが要求された場合
に、どのブロックを選択するかを容易に決めることがで
きるようにするため、各未割当物理メモリ・ブロックに
そのパーティション内の異なる論理ブロック番号を割当
てる。すなわち未割当ブロック管理用のパーティション
内のブロックは、その各々に付された論理ブロック番号
の順に編成されたリストとして管理される。そして、割
当てられるべき次の物理メモリ・ブロックはこのリスト
の一番上にあるブロックである。このパーティションに
おいては、全物理メモリ・ブロックを′論理アドレス空
間内の1つの連続領域に写像する。その結果このリスト
の一番上を追跡することはブツシュダウン・スタックの
一番上を追跡することと同じことになる。従って、ブツ
シュダウン・スタック・ポインタと同様なポインタを設
けることによりリストの一番上の論理ブロック番号を常
に指示させておく。一番上のブロックが割当てられると
、このポインタは現在のリストの一番上にある項目を示
すために更新される。同様にして、割当てられていたメ
モリのブロックが未使用状態になると、そのブロックは
メモリ割当ての次の要求に応えられるよう、未割当プロ
、りのリス1 (すなわちブツシュダウン・スタック)
の一番上に写像される。
メモリ・アクセス・ワードがMPB31に送られると、
メモリ・コントローラ39〜318の各々はメモリ・ア
クセス・ワードによって指示される論理ブロックがMC
AMレジスタ64のいずれかの内容に一致するかどうか
チェ、りする。一致があると、それを発見したメモリ・
コントローラがMPB31に信号を送って一致が生した
ことを表示する。一致を検出したメモリ・コントローラ
は次いでメモリ内のアドレス指定されたワードにアクセ
スすることによって要求のあったメモリ・アクセスを完
遂する。
あるパーティション内の動的構造の要求によってそのパ
ーティションが今保有している物理メモリより多いメモ
リが必要となり、また、全部の物理メモリ・ブロックが
既に割当てられていると、既に説明したような形で、そ
のパーティション内でメモリのブロック転送が開始され
る。そのパーティションに割当てられたメモリがほぼ一
杯であるため自パーティション内でのメモリのフ゛ロッ
ク転送が単なる時間の浪費であるのなら、他のパーティ
ションがチェックされ、そこでのブロック転送により物
理メモリの1ブロック全体がからになって、そのプロ・
ツクをメモリ要求中のパーティションに割当てることが
できるか否かが確かめられる。
各パーティションは物理メモリと同じ大きさ (汐ゝ もちろん、物理メモリより大き(設定してもyまわない
)であるが、一般には物理メモリの一部が割当てられて
いるだけであるので、論理アドレス空間には通常以上に
動的構造を人力させる余地がある。従ってこれによって
、パーティション内の動的構造が隣接する動的構造によ
って使用される論理メモリまで拡大する頻度が減少する
。しかし、そのような拡大が起これば、既に説明したよ
うにメモリのブロック転送を実行する必要がある。一般
に、これらのブロック転送によって他のパーティション
でブロック転送が必要となることはない。
同様に、あるパーティションが物理メモリの割当てを必
要としても、通常は他のパーティションの論理アドレス
空間内でブロック転送が必要となることはない。しかし
、1個のパーティションに割当てられた物理メモリのほ
ぼ全部が使い尽され、物理メモリの全ブロックが各種の
パーティションに割当てられている、というまれな場合
には、別のパーティション内部でのブロック転送によっ
て物理メモリの1ブロック全体をからにして、そのブロ
ックを次に別のパーティションに再び割当てることがで
きることもある。このような他のパーティションからの
侵入によって悪影響を受けるかもしれないプログラムを
含む選択されたパーティションはプライベートであると
表示することにって保護することができる。このような
プライベーl・・パーティションは、他のパーティショ
ンの必要性による論理メモリのブロック転送やその割当
てられた物理メモリの割当ての影響を受けることはない
各パーティションは、1つの独立したプログラム環境で
あり、その独立した動作のために必要とされるコード・
セグメン(・、セグメント・テーブルおよびスクソク・
セグメントのようなずべてのソフトウェア構造を含む。
各パーティションはまた、プログラム、サブプログラム
およびプロシーシ+ (procedure )のよう
な独立したプログラム構造をその内部に含むことができ
る。これらの独立した構造の各々は局所変数用の局所デ
ータ・セグメントを有することができる。各パーティシ
ョンはまたその内部のプログラム構造のいずれからもア
クセスすることができる大域データ・セグメントを有す
る。従って大域データ・セグメントにより、上述の独立
した構造間での情報交換が可能となり、これによってこ
れらの構造間でのある程度の相互作用がなされる。
1個のCPUの時分割や多数のCPUを使用することに
よって、独立したプログラム構造を同時に実行すること
ができる。これは異なるパーティション内の構造につい
ても、また同じパーティション内の独立したプログラム
構造についても当てはまる。多くの場合、これら独立し
たプログラム構造は独立しているが互いに関連している
動作を実行する。従って、たとえそれが複数の動作を同
期化するためだけであっても、プログラム構造に情報を
交換する能力を付与することが有益である。
【図面の簡単な説明】
第1A図乃至第1C図は従来のメモリ管理方式の問題点
を説明するための図、第2図は本発明のメモリ管理方式
にかかる論理アドレスと物理アドレスとの対応関係の一
例を示す図、第3図は本発明のメモリ管理方式を実現す
るコンピュータ・システムの一実施例の概略ブロック図
、第4図は第3図中のメモリ・コントローラのブロック
図、第5図はメモリ・アクセス・ワード中の各ピントの
意味を説明するための図、第6図(ま第4図中のアドレ
ス・マツバのプロ・ツク図である。 31:メモリ・プロセ・ノサ母線、  32〜38:c
pu、   39〜318二メモ1)・コントローラ、
  319〜328:メモ1ノ・ノマンク君茎。 41:MPBインクフェイス、   415:Pl−A
、   4.2:メモリ・コントローラ・ア1ζレス母
綿、  43:メモリ・コントローラ・データ母線、 
  47〜4.10:メモリ・ノ寸ンク。 出願人  横河・ヒューレ・ノド・ツマ・ツカ−1゛株
式会社代理人 弁理士  長 谷 川  次  男FI
G、 IA      FIG、 IB      F
IG、 /CFIG、  2

Claims (1)

  1. 【特許請求の範囲】 論理アドレス空間のうち必要な部分のみを物理アドレス
    空間に割当てるメモリ管理方式前記論理アドレス空間を
    少なくとも前記物理アドレス空間と同じ大きさを有する
    複数の領域に分割し、 前記領域の各々に互いに独立なプログラムおよび/また
    はデータを格納することを特徴とするメモリ管理方式。
JP58160199A 1982-11-12 1983-08-31 メモリ管理方式 Granted JPS5990281A (ja)

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 true JPS5990281A (ja) 1984-05-24
JPH0330897B2 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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235539A (ja) * 1988-07-25 1990-02-06 Fujitsu Ltd プログラムデータ領域管理方式

Families Citing this family (80)

* Cited by examiner, † Cited by third party
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
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
US4811216A (en) * 1986-12-22 1989-03-07 American Telephone And Telegraph Company Multiprocessor memory management method
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
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
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
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
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
US6959291B1 (en) 1999-05-19 2005-10-25 International Business Machines Corporation Management of a concurrent use license in a logically-partitioned computer
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
US6467007B1 (en) 1999-05-19 2002-10-15 International Business Machines Corporation Processor reset generated via memory access interrupt
US6691146B1 (en) 1999-05-19 2004-02-10 International Business Machines Corporation Logical partition manager and method
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
EP1557075A4 (en) 2002-10-22 2010-01-13 Sullivan Jason CONTROL MODULE NOT ASSOCIATED WITH PERIPHERALS HAVING IMPROVED HEAT DISSIPATION PROPERTIES
CN1729734B (zh) * 2002-10-22 2011-01-05 贾森·A·沙利文 用于提供动态模块处理单元的系统及方法
BR0315624A (pt) 2002-10-22 2005-08-23 Jason A Sullivan Sistema de processamento em computador personalizável robusto
US7085897B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Memory management for a symmetric multiprocessor computer system
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
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
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
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
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
US7711907B1 (en) 2007-02-14 2010-05-04 Xilinx, Inc. Self aligning state machine
US7913022B1 (en) * 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
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
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122232A (ja) * 1973-03-22 1974-11-22
JPS5067043A (ja) * 1973-10-15 1975-06-05

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS49122232A (ja) * 1973-03-22 1974-11-22
JPS5067043A (ja) * 1973-10-15 1975-06-05

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235539A (ja) * 1988-07-25 1990-02-06 Fujitsu Ltd プログラムデータ領域管理方式

Also Published As

Publication number Publication date
US4511964A (en) 1985-04-16
JPH0330897B2 (ja) 1991-05-01

Similar Documents

Publication Publication Date Title
JPS5990281A (ja) メモリ管理方式
US4528624A (en) Method and apparatus for allocating memory space based upon free space in diverse memory devices
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
EP0113612B1 (en) Address conversion unit for multiprocessor system
US6640290B1 (en) Easily coalesced, sub-allocating, hierarchical, multi-bit bitmap-based memory manager
US4403283A (en) Extended memory system and method
EP0387644B1 (en) Multiprocessor system with global data replication and two levels of address translation units
US6412053B2 (en) System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
US5897660A (en) Method for managing free physical pages that reduces trashing to improve system performance
US6832303B2 (en) Method and system for managing an allocation of a portion of a memory
US5684974A (en) Method and apparatus for controlling reconfiguration of storage-device memory areas
US4827406A (en) Memory allocation for multiple processors
US6604185B1 (en) Distribution of address-translation-purge requests to multiple processors
EP0403124A2 (en) Overlay swapping
US5369750A (en) Method and apparatus for configuring multiple absolute address spaces
JP2778291B2 (ja) アドレス変換レジスタ制御方式
EP0522728B1 (en) Method for efficient access of data stored in a nexus table
US6742077B1 (en) System for accessing a memory comprising interleaved memory modules having different capacities
JP2000284996A (ja) メモリ管理装置及びメモリ管理方法
JP3456727B2 (ja) データ処理装置
JP2943401B2 (ja) 仮想計算機の外部記憶装置割当処理方法
JPS6134643A (ja) バツフア制御方式
JPH0756806A (ja) メモリの管理方法
JPH01140342A (ja) 仮想計算機システム
JPS63261446A (ja) 拡張仮想記憶制御方式