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

メモリ管理方式

Info

Publication number
JPS60191347A
JPS60191347A JP4560384A JP4560384A JPS60191347A JP S60191347 A JPS60191347 A JP S60191347A JP 4560384 A JP4560384 A JP 4560384A JP 4560384 A JP4560384 A JP 4560384A JP S60191347 A JPS60191347 A JP S60191347A
Authority
JP
Japan
Prior art keywords
memory
block
data
blocks
link
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.)
Pending
Application number
JP4560384A
Other languages
English (en)
Inventor
Shosuke Kuzumi
来住 晶介
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP4560384A priority Critical patent/JPS60191347A/ja
Publication of JPS60191347A publication Critical patent/JPS60191347A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

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

Description

【発明の詳細な説明】 (技術分野) 本発明は、複数のプロセスがメモリを効率良くかつ高速
に使用するためのメモリ管理方式に関するものである。
(背景技術) 従来の計算機のメモリ管理方式は、以降に述べる理由に
より複数のプロセス(マルチプロセス)の実行には適し
ていない。従って、実行できるプロセス数が少なかった
り、また、プロセス数が増えると処理速度が極端に低下
するといった欠点があった。
まず、1つのプロセスを構成する情報の種類について述
べる。プロセスは、命令コード列とデータ部からなる。
命令コード列は、その名が示すように、データ部に対す
る処理の流れを表わす命令コードの列である。1つのプ
ロセスの存在中は、その命令コード列自身は、書変わら
ない。データ部は、いわゆるプログラムにおける変数を
保持するためのメモリセルである。データ部は更に静的
データ部と動的データ部に分けることができる。
静的データ部は、プロセスの存在中に、命令コード列よ
り内容の変更をうけたりするが、静的データ部のメモリ
セル自身は、存在し続ける。一方、動的データ部は、ス
タック、F I PO(First InFirst 
Outメモリ)として用いられ、プロセス存在中に成長
したり、収縮し、その大きさが変化する。
従来のメモリ管理方式で、以上に述べたプロセスを複数
実行しようとすると、動的データ部の実現に欠点がある
。以下では、まず従来のメモリ管理方式を固定方式とマ
ツピング方式と呼ぶ2つの方式に大別し、それぞれの場
合についての欠点について述べる。
従来のメモリ管理方式はプロセスのメモリーヒでの存在
形態からみると、固定方式とマツピング方式の2つに大
別できる。固定方式とはプロセスごとにメモリ上の連続
した領域をわりあてるもので、その領域内で命令コード
列、データ部を割付ける。
ここで、命令コード列と、静的データ部はプロセスの存
在中にその大きさは変化しないので、それらに対して割
付けるメモリ領域の大きさはあらかじめ決定できる。一
方、動的データ部の大きさは、あらかじめ決定すること
はできない。そこで、この方式では、何らかの方法で動
的データ部の大きさの最大値を予測し、先の命令コード
列と静的データ部の大きさとを加え合わせたものをその
プロセスに割当てるメモリの領域とする。従ってこの方
式では、動的データ部として割当てられている領域で、
実際に使われているのはごく一部、すなわちメモリの利
用効率が悪い欠点があった。また、動的データ部が予測
した大きさを越えた場合には、それ以上プロセスを実行
できないという欠点もあった。
マツピング方式とは、メモリのアクセスをアドレス変換
テーブルを介して行うものである。この方式ではメモリ
を、例えば512語からなるページと呼ぶ単位に分ける
。メモリへのアクセスは、アドレス変換テーブルを用い
て論理アドレスを物理アドレスに変換して行う。論理ア
ドレスは、論理ページ番号とページ内変位からなり、物
理アドレスは物理ページ番号とページ内変位からなる。
アドレス変換テーブルは論理ページ番号をアドレス入力
とし、その論理ページが割付けられている物理ページ番
号を出力する。また、その論理ページに物理ページが未
だ割付けられていない場合には、空物理ページを割付け
る。この方式では、アドレス変換部のハードウェア量が
多いという欠点がある。また、動的データ部の成長にと
もなう物理ページの割付けは、プロセスが意識すること
なくシステムが自動的に行うが、一方、動的データ部が
収縮しても、物理ページは割付けられたままである。従
って、プロセスの実行が進むにつれてメモリの使用効率
が低下してくるという欠点があった。
以上に述べたメモリの使用効率が悪いという欠点は、メ
モリ上に同時に存在できるプロセス数の゛ 上限が低い
という欠点につながる。従って、実時間性が要求される
システムでは、プロセス数の制限がきびしくなり、また
、一般の応用に対してはプロセス数が多くなると、メモ
リと2次記憶間のデータ転送量が急激に増大するために
処理速度が大幅に低下するという欠点がある。
(発明の目的) 本発明は上述した従来の問題点を解消し、動的データ部
をメモリ上に効率良くかつ高速にアクセス可能なメモリ
管理方式を提供することを目的とする。
二の目的を達成するための本発明の特徴は、1つのプロ
セスが命令コード列と静的データ部と動的データ部とか
らなり複数のプロセスを実行する計算機において、該計
算機内のメモリをリンク部とデータ部とからなるブロッ
ク単位に分け、前記リンク部はブロック間の論理的な結
合情報を保持し、前記データ部はデータを保持し、前記
動的データ部の成長、収縮にともない前記リンク部内に
保持されたブロック間の論理的な結合情報に従ってブロ
ックの割付け、解放を行ないつつ前記データ部に対する
データの書込み、読出しを行なうメモリ管理方式にある
(発明の構成及び作用) 第1図は、本発明におけるメモリ1の論理的構成を示し
たものである。メモリ1はブロック2と呼ぷ2n(例え
ばロー5)個のセルからなる単位で分割されている。■
ブロックはリンク部3とデータ部4からなる。メモリ中
の未使用ブロック(ブロック2a、2c、2dがこれに
該当するものとする)は、リンク部3を用いて矢印Aで
示すように連鎖されている。これを空リストと呼ぷ。空
リストの先頭は、メモリ1外にあるフリーリストポイン
タ(以降FPと略す)5で指示されている。
また、動的データ部として使用されているブロック(ブ
ロック21)がこれに該当する)のリンク部3には、そ
れらの論理的関係を表わす結合情報が入っている。結合
情報の指示するものは、そのブロック2が例えばスタッ
クとして用いられているのか、FIFOとして用いられ
ているのかにより異なる。
ここで、ブロック2の先頭セルをリンク部3、そわ以降
のセルをデータ部4とすると、1ブロツクの大きさは2
0であるので、リンク部3及びデータ部4の先頭アドレ
スの下位nビットのビットパターンは一意にきまる。
第2図は、本発明のメモリ1の物理的構成を示したもの
である。ここで、AR7はメモリ本体6にアドレスを供
給するアドレスレジスタ(以降ARと略す)である。比
較器8はAR7の保持しているアドレスがリンク部3を
示しているかどうかを検出する。このため、比較器8の
もう一方の入力は、リンク部3を表わすアドレスの下位
nビットのビットパターンである。比較器8は、ビット
パタ・−ンを検出すると論理値1を出力し、それ以外の
場合には論理値0を出力する。書込み信号マスク用回路
9は、比較器8の出力、メモリ6への書込み要求信号W
R10とDWRIIを入力とし、メモリ6・\の書込み
信号WB]2を発生する。ここで、書込み要求は、WR
IOあるいはDWRIIの論理値を0とすることで行わ
れる。また、メモリ6への書込みはWE12が論理値O
となったときに行われる。
VIIOとDWRIIは同時には論理値0とならないも
のとする。リンク部3への書き込みはVIIOを論理値
0とすることで行う。DVIIIは、ブロック内のデー
タ部4ヘデータを書込むときに用いられるもので、第2
図に示したように比較器8の出力との論理和かとられて
いるので、AR,7がブロック中のリンク部3を示して
いるときには、T)W几1】が0となってもWE]2は
0にならない。
また、比較器8の出力は、判定結果として制御部に送ら
れ、条件付きジャンプを行う時の条件として用いられる
。制御部はマイクロプログラムによって本発明の計算機
全体の制御を行う機能を有するものとする。尚、制御部
は図示していない。
Aバス13はAR7にアドレスを供給するバスであり、
その供給元の一つにスタックポインタ14とFP5があ
る。
ここで、スタックポインタ14の加減算と条件付きジャ
ンプは同時に行うことができるものとする。
次に、本発明の詳細な説明する。ここでは簡単の7こめ
1ブロツクは25= 32語からなり、リンク部3の下
位5ビツトは00000[2進表現〕とし、よって、デ
ータ部4の先頭セルの下位5ビツトは00001 [2
進表現〕とする。このとき、これらのブロック2を用い
てスタックを実現した場合の動作について説明する。第
3図は、ブロック15とブロック16を連結して1つの
スタックを実現している論理的な図である。第4図と第
5図は、このスタックの書込み動作、すなわちブツシュ
動作と、読出し動作、すなわちポツプ動作の論理的な動
作流れ図である。
まずプツシ−動作について第4図を用いて説明する。ブ
ツシュ動作では、まず、スタックポインタ14の下位5
ビツトがoooooであるかを検査する。oooooで
ない場合は、スタックポインタ14がデータ部4を示し
ていることになり、そのメモリセルヘデータを書込んだ
後、スタックポインタ14の内容を1だけ加算する。す
なわち、−ブロックのデータ部4内では、アドレスの大
きくなる方へスタックが成長する。一方、oooooで
ある場合には、スタックポインタ14がメモ1月にで隣
接する次のブロックのリンク部3を示jしたことになる
。従って、1ブロツクのデータ部4を全て使ったことに
なるので、フリーリストポインタ(P l) )5につ
ながれている先頭の空きブロックを新たに、このスタッ
クのために用いることにする。この具体的な操作手順を
第6図を参照しつつ説明する。
まず、FP5の示す空ブロック17のリンク部18に保
持されている次の空ブロックのアドレスをFP5に書込
むことによって、先頭の空ブロック17をフリーリスト
からはずす。はずしたブロック17のリンク部18にス
タックポインタ14の内容、すなわちデータ部を全て使
ったブロックの次のブロックのリンク部のアドレスを書
込む。次に、スタックポインタ14に、ブロック17の
データ部]9の先頭アドレスを格納する。ここまでの操
作をブロックの割付は操作と呼ぶ。この後、データを書
込み、スタックポインタ14を加算する。以上がプツシ
−動作である。尚、ブロック17’、 17 ’hそれ
ぞれスタックとして使用中のブロック及び未使用ブロッ
クである。
次にポンプ動作について、第5図を用いて説明する。ポ
ツプ動作では、まずスタックポインタ14を1つ減算し
、その結果の下位5ビツトがoooo。
であるかを検査する。oooooでない場合は、スタッ
クポインタ14で示されるメモリセルはデータ部4のセ
ルであり、読出しが行われる。一方、oooooである
場合には、スタックポインタ14はリンク部3を示して
いる。この場合は、そのブロックのデータ部4を全て読
出したので、リンク部3で示されている論理的にスタッ
クとしてつながった次のブロックからデータを読出す必
要がある。
この操作手順を第7図を参照しつつ説明する。
まず、データ部22を全て読出したブロックをブロック
20とする。はじめに、スタックポインタ14にブロッ
ク20のリンク部21の内容を格納する。次に、ブロッ
ク20のリンク部21にFP5の内容を書込む。そして
FP5には、ブロック20のリンク部21のアドレスを
書込む。これにより、フリーリストにブロック20が先
頭の空ブロックとしてつながれたことになり、再び使用
されるのを待つ、ここまでの操作をブロックの解放操作
と呼ぶ。さて、スタックポインタ14はこれから読出そ
うとしているブロック頷の次のブロック20///のリ
ンク部を示しているので、(何故なら、ブツシュ動作に
おいてブロック20のリンク部21には、次に読出すべ
きブロック加′に隣接する次のブロック2α″のリンク
部のアドレスが書込まれている)、スタックポインタ1
4を1減算した後、ブロック20′内のデータを読出す
。以上がポンプ動作である。
以上が、プツシ−、ポツプ動作の論理的な流れであり、
各動作において、スタックポインタ14の下位5ビツト
がoooooかどうかを検査している。
従って、この検査がオーバーヘッドにならないようにす
るのが、第2図に示した書込み信号マスク用回路9の働
きである。以下では、第2図のハードウェアでプツシ−
、ポンプ動作を行う物理的な流れについて説明する。
ブツシュ動作、ポツプ動作は、メモリ6への書込み、読
出し動作にほかならない。従って、これらの動作は次の
2ステツプからなる。すなわち、第1のステップはA 
R7にアドレスを設定し、第2のステップはメモリ6ヘ
データを書込む、あるい5まメモリ6からデータを読出
す操作を行う。ここで、スタックポインタ14の下位5
ピントの検査と、その結果による条件ジャンプを上記の
2ステツプにオーバーラツプさせれば、ブロックの割付
け、解放をともなわない場合はオーバーヘッドを全く生
じない。また、ブロックの割付け、解放をともなう場合
でも、その操作は以上述べたように簡単である。従って
、平均的オーバーヘッドは小さい。
ブツシュ動作について、説明する。ブツシュ動作では、
まず、第1のステップでスタックポインタ14の内容を
AR7に書込む。次に、第2のステップで、スタックポ
インタ14を1つ加算し、条件ジ倉ンプ命令を行い、ま
た、DWR,1,1を0とする。
この条件ジャンプ命令は前ステップでAR7に書込まれ
たスタックポインタの下位5ビツトが0ならば、ブロッ
ク割付はルーチンヘジャンプする働きをもつ。さて、も
しスタックポインタ14の下位5ビツトが0ならば、D
WR1l信号は論理値0であるが、比較器8の出力が1
となるのでメモリへの書込み信号WE]2は1のままで
書込みは行われず、ブロック割付はルーチンヘジャンプ
する。ブロック割付はルーチンにおいて、リンク部3を
書換える場合には、書込み要求信号VIIOを論理値0
としてメモリ6への書込み動作を行なう。第1のスタッ
クポインタ14の下位が00000でない場合ニは、第
2のステップでWE+2が論理値Oとなり、ブロックの
データ部4への書込みが行われる。
以上説明したように、通常のプツシ−動作のなかに、ス
タックポインタ]4がリンク部3を示しているときは、
データを書込まずに、ブロック割付はルーチンヘジャン
プする動作を埋込んでいる。従って、ブロックの割付け
を行わない通常のブツシュ動作の場合には、オーバーヘ
ッドは生じない。
ポンプ動作について説明する。ポツプ動作では、まず第
1のステップでスタックポインタ】4を1つ減算し、そ
してその内容をAR7に書込む。次に、第2ステツプで
メモリ6の内容を読出す右とともに、条件ジャンプ命令
を実行する。この条件ジャンプ命令は、第1のステップ
でA、 R7に書込まれたスタックポインタJ4の内容
の下位5ビツトがOナラばブロック解放ルーチンヘジャ
ンプする働きをもつ。下位5ビツトが0でない場合は、
メモリ6が出力した値が、スタックからポツプされたデ
ータである。
(発明の効果) 以上説明したように、本発明によれば、プロセスのスタ
ック等の動的データ部の成長、収縮にともない、メモリ
の割付け、解放を小さいオーバーヘッドで動的に行う。
従って、メモリの利用効率が良いので、多数のプロセス
をメモリ上に配置でき、処理能力が向上するという利点
がある。
本発明は、多数のプロセスをメモリ上に配置できるので
、応答性、実時間性が要求される工業用のプロセス制御
等に利用することができる。
【図面の簡単な説明】
第1図は本発明におけるメモリの論理的構成を示す図、
第2図はメモリの物理的構成を示す図、第3図はブロッ
クを連鎖させ1つのスタックを構成している図、第4図
はスタックへのブツシュ動作の流れ図、第5図はスタッ
クからのポツプ動作の流れ図、第6図はブロックの割付
は操作の説明図、第7図はブロックの解放操作の説明図
である。 ■・・・メモリ、2・・・ブロック、3・・・リンク部
、4・・・データ部、5・・・フリーリストポインタ(
FP )、6・・・メモリ、7・・・アドレスレジスタ
(A R)、8・・・比較器、9・・・書込み信号マス
ク用回路、10・・・リンク部への書込み要求信号(W
a)、11・・・データ部への書込み要求信号(DWR
)、12・・・メモリへの書込み信号(WE)、13・
・・A /’vス、14・・・スタックポインタ。 特許出願人 沖電気工業株式会社 特許出願代理人 弁理士 山 本 恵 − 第4図 第5図 第6図 第7図 手続補正書(自発) 昭和59年8月16日 特許庁長官 古賀 学殿 1 事件の表示 昭和59年 特許願 第45603号 2 発明の名称 メモリ管理方式 3 補正をする者 事件との関係 特許出願人 名 称 (029)沖電気工業株式会社4代理人 住所 〒105 東京都港区西新橋1丁目5番12号タ
ンパビル明細書の発明の詳細な説明の欄 6 補正の内容 明細書第15頁第9行の「のスタック」を「のステップ
でスタック」と補正する。 以上

Claims (3)

    【特許請求の範囲】
  1. (1)1つのプロセスが命令コード列と静的データ部と
    動的データ部とからなり複数のプロセスを実行する計算
    機において、該計算機内のメモリをリンク部とデータ部
    とからなるブロック単位に分け、前記リンク部はブロッ
    ク間の論理的な結合情報を保持し、前記データ部はデー
    タを保持し、前記動的データ部の成長、収縮にともない
    前記リンク部内に保持されたブロック間の論理的な結合
    情報に従ってブロックの割付け、解放を行ないつつ前記
    データ部に対するデータの書込み、読出しを行なうこと
    を特徴とするメモリ管理方式。
  2. (2)前記ブロックの割付けは、リンク部内の結合情報
    に従って空リストとして連鎖された未使用のブロックを
    割付けることを特徴とする特許請求の範囲第1項に記載
    のメモリ管理方式。
  3. (3)前記ブロックの解放は使用終了したブロックを空
    リストとするとともに、他の空リストに対し7てリンク
    部内の結合情報に従って連鎖させることを特徴とする特
    許請求の範囲第1項に記載のメモリ管理方式。
JP4560384A 1984-03-12 1984-03-12 メモリ管理方式 Pending JPS60191347A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4560384A JPS60191347A (ja) 1984-03-12 1984-03-12 メモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4560384A JPS60191347A (ja) 1984-03-12 1984-03-12 メモリ管理方式

Publications (1)

Publication Number Publication Date
JPS60191347A true JPS60191347A (ja) 1985-09-28

Family

ID=12723924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4560384A Pending JPS60191347A (ja) 1984-03-12 1984-03-12 メモリ管理方式

Country Status (1)

Country Link
JP (1) JPS60191347A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63138429A (ja) * 1986-12-01 1988-06-10 Agency Of Ind Science & Technol 並列推論マシンのプロセス管理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63138429A (ja) * 1986-12-01 1988-06-10 Agency Of Ind Science & Technol 並列推論マシンのプロセス管理方法

Similar Documents

Publication Publication Date Title
US6078945A (en) Operating system for use with computer networks incorporating two or more data processors linked together for parallel processing and incorporating improved dynamic load-sharing techniques
EP0756233B1 (en) Data processing and operating system incorporating dynamic load-sharing in a network of linked processors
TWI525540B (zh) 具有橫跨多個處理器之平行資料執行緒的映射處理邏輯
CZ290716B6 (cs) Počítačový systém s více médii
GB2083254A (en) Address translation and generation mechanism in information processing system
US12386622B2 (en) Processor, method for executing an instruction on a processor, and computer
US9052957B2 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
US5848295A (en) System for allocating common memory in cache such that data is maintained when exiting first programming structure and entering second programming structure
CN110187970A (zh) 一种基于Hadoop MapReduce的分布式大数据并行计算方法
US12487937B2 (en) Flash based transformer accelerator
JPS60191347A (ja) メモリ管理方式
JPS6261132A (ja) デ−タ転送命令制御方式
JP2000122876A (ja) 情報処理装置
US10817288B2 (en) Combined instruction for addition and checking of terminals
KR102575773B1 (ko) 대칭적 인터페이스를 이용하여 외부 서비스 요청 처리가 가능한 프로세서
JPS60142429A (ja) 仮想計算機システムのi/o実行方法および装置
WO2019188174A1 (ja) 情報処理装置
JP3163196B2 (ja) 仮想記憶制御における命令中断情報格納制御方法
HK40066978A (en) Processor apparatus and its instruction execution method, computing device
HK40066978B (en) Processor apparatus and its instruction execution method, computing device
JPS59151242A (ja) デ−タ駆動型計算機の待ち行列制御方式
JPH02308333A (ja) 論理型言語のコーディング方式
JPH0816478A (ja) ベクトルデータ処理装置
JPS61150051A (ja) ペ−ジ割付け制御方式
JPS63221440A (ja) アドレス変換装置