JPH02162439A - 共有メモリのフリーリスト管理方式 - Google Patents

共有メモリのフリーリスト管理方式

Info

Publication number
JPH02162439A
JPH02162439A JP63317537A JP31753788A JPH02162439A JP H02162439 A JPH02162439 A JP H02162439A JP 63317537 A JP63317537 A JP 63317537A JP 31753788 A JP31753788 A JP 31753788A JP H02162439 A JPH02162439 A JP H02162439A
Authority
JP
Japan
Prior art keywords
memory
free list
page
shared memory
processes
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
JP63317537A
Other languages
English (en)
Inventor
Haruo Yokota
治夫 横田
Hajime Kitagami
北上 始
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63317537A priority Critical patent/JPH02162439A/ja
Publication of JPH02162439A publication Critical patent/JPH02162439A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野(第9図) 従来の技術(第10図) 発明が解決しようとする課題 課題を解決するための手段(第1図) 作用 実施例 (a)  一実施例の説明(第2図乃至第7図)(b)
  他の実施例の説明(第8図)発明の効果 〔概要〕 複数のプロセッサが共有して使用する共有メモリのメモ
リセルをフリーリストによって管理するフリーリスト管
理方式に関し、 フリーリストによるメモリセルの管理に際し、プロセス
間での競合を少なくし、並列アクセスを実現することを
目的とし、 複数のプロセッサと共有メモリとを有し、該共存メモリ
の使用可能なメモリセルをフリーリストで管理する共有
メモリのフリーリスト管理方式において、該共有メモリ
を、各々使用可能なメモリセルを管理するフリーリスト
を有する複数のベジに分割するとともに、該各ページの
エントリ情報を持つ管理テーブルを設け、該プロセッサ
のプロセスが該管理テーブルを参照してメモリセルの獲
得及び解放を行うようにした。
〔産業上の利用分野〕
本発明は、複数のプロセッサが共有して使用する共有メ
モリのメモリセルをフリーリストによって管理するフリ
ーリスト管理方式に関する。
近年計算機システムの処理速度の向上の要望は極めて大
きくなっている。
この処理速度の向上を目的とし、第9図に示す共有メモ
リ型並列計算機が盛んに開発されている。
この計算機システムでは、複数のプロセッサ2a〜2n
と、共有メモリ1とをバス3で接続した構成を採用し、
各プロセッサ2a〜2nの実行するプロセスが共有メモ
リ1を共有して利用する。
このような計算機システムにおいて、複数のプロセッサ
上の複数のプロセスが協調して処理を行う場合には、共
有メモリ1上に置いたデータを同時にアクセスすること
が必要となる。
このとき、通常の排他制御の他に、共有メモリ1の領域
のプロセスへの動的割り当てが必要となる場合がある。
例えば、複数のプロセスが、プログラムを部分的にロー
ドして共有メモリ1上に展開し、そのプログラムを複数
のプロセッサで実行する場合や、複数のプロセスでデー
タベースを共有メモリi −hに展開して、その後その
データを複数のプロセスで検索する場合などである。
このような動的割り当ての必要な場合に、各プロセスの
並列アクセスを円滑に実行する技術が望まれている。
〔従来の技術〕
どのプロセスが、共有メモリ1上のどの領域を利用する
かということを動的に決定することは、難しい問題であ
る。
例えば、メモリ領域をプロセッサの数分に分割して、割
り当てられた領域内で管理する方法もあるが、融通性が
乏しく、メモリ領域の利用効率も悪くなるという問題点
がある。
又、割り当て専用のプロセスを用意する方法も考えられ
るが、全体の処理がそのプロセスで逐次に順序づけられ
ることになり、並列処理動作が損なわれることになる。
一方、ある一定の長さを持つメモリセルをポインタで結
合したデータ構造は、可変長の構造を持つデータを表現
するのに適している。
特に、LISP、Prologなどの言語処理系の内部
表現としてよく使われている。又、データベースの1つ
のレコードも、1つのメモリセルとみなすことができる
このようなメモリセルの管理方式として、フリーリスト
による管理がよく知られている。
第10図は従来技術の説明図である。
このフリーリストによる管理方式は、共有メモリl内の
予め使用可能なメモリセルをフリーリストとしてつない
でおく。
そして、セルを利用するプロセスから要求があった場合
には、そのリストから1つメモリセルをはずして、その
メモリセルのアドレスを通知し、メモリセル(領域)の
獲得を行う。
又、プロセスで使用済みのメモリセルが生じた場合には
、フリーリストにそのメモリセルをつなげ、メモリセル
の解放を行う。
尚、獲得したメモリセルの管理は、獲得したプロセスが
行う。
このようにフリーリストで管理することにより、メモリ
?in域の割り当て処理が、筒車なポインタの張り替え
掻作だけで行うことができ、動的割り当てが容易である
〔発明が解決しようとする課題〕
このようなフリーリストで管理されるメモリセルを、前
述の構成の計算機システムで実現する場合には、メモリ
セルは共有メモリ1上に置かれることになる。
この時、従来技術では、フリーリストが1本のため、フ
リーリストにメモリセルをつなげたり、フリーリストか
らセルをはずしたりする度に、第10図のように、プロ
セス間で競合が発生し、並列アクセスが損なわれるとい
う問題が生じ、高速化を阻害していた。
従って、本発明は、フリーリストによるメモリセルの管
理に際し、プロセス間での競合を少なくし、並列アクセ
スを実現することのできる共有メモリのフリーリスト管
理方式を提供することを目的とする。
〔課題を解決するための手段〕
第1図は本発明の原理図である。
本発明は、第1図に示すように、複数のプロセッサ2a
〜2nと共有メモリlとを有し、該共有メモリlの使用
可能なメモリセル10をフリーリストで管理する共有メ
モリのフリーリスト管理方式において、該共有メモリl
を、各々使用可能なメモリセル10を管理するフリーリ
ストを有する複数のページ1 a−1mに分割するとと
もに、該各ページのエントリ情報を持つ管理テーブル1
1を設け、該プロセッサ2a〜2nのプロセスが該管理
テーブル11を参照してメモリセル10の獲得及び解放
を行うようにしたものである。
〔作用〕
本発明は、複数のプロセスへの共有メモリ1の割り当て
をフリーリストを使って行うこととし、フリーリストの
更新の競合を少なくするために、フリーリストの本数を
複数にした。
即ち、共有メモリ1を複数ページla〜1mに分割し、
各ページ内で各々フリーリスト管理を行うようにした。
そして、どのページもすべてのプロセスから参照できる
ように、全ページのエントリ情報を持つ管理テーブル1
1を設けた。
この管理テーブル11を参照して、各プロセスはメモリ
セル10が必要な場合に、アクセス可能なページを探し
て、フリーリストから1つメモリセルを獲得する。
このようにすることによって、必要なメモリセルの割り
当てを並列に、高速に行うことができるようになり、フ
リーリストの更新のための競合も減らすことができる。
又、メモリセルの使用量がプロセスによっ“ζ片寄った
場合でも全体としてメモリの使用効率は悪くならない。
〔実施例〕
(a)  一実施例の説明 第2図は本発明の一実施例構成図である。
図中、第1図、第9図及び第1O図で示したものと同一
のものは、同一の記号で示しである。
管理テーブル11は、エントリ情報として、各ページ1
 a = l mの使用中/未使用中を示すフラグと、
そのページのフリーリストによるメモリセルの残数、各
ページの先頭ポインタ(アドレス)を格納しである。
フラグは、プロセスによって使用中であると、l”にセ
ットされ、未使用であると、“0”にリセットされてい
る。
各ページ1 a−1mは、先頭ポインタに、フリリスト
の先頭メモリセルのポインタが設けられており、各メモ
リセル10の先頭には接続ポインタが設けられている。
従って、フリーリストのメモリセル10には、そのペー
ジ内の次の未使用のメモリセルのアドレスがポインタと
して格納されている。
第3図は本発明の一実施例セル獲得処理フロ図である。
■ 各プロセスは、セルが必要になった場合には、共有
メモリl上にある管理テーブル11のエントリ情報の中
から、現在使用されていないフリリストを持つページを
探す。
先ず、管理テーブル11の残数を調べ、残数がナケれば
次のページのエントリ情報を見て、その残数を調べる。
残数ありのページが見付かると、そのページのエントリ
情報のフラグを調べ(テストし)、フラグが“1”なら
使用中のページのため、次のページのエントリ情報を調
べる。
ページのエントリ情報のフラグが“0”の使用中でない
ページが見付かると、そのフラグを“1″にセットする
■ 次に、当該プロセスは、探索したページのフリーリ
ストの先頭のメモリセルをポインタをたどって獲得する
そして、フリーリストの先頭を次のメモリセルにポイン
タを書き替える。
■ そして、管理テーブル11のそのページのエントリ
情報のフラグを“0”にリセットし、リターンする。
このようにして、第2図のように、各プロセスは並列に
メモリセルを獲得できる。
管理テーブル11のエントリを選んだ特に、排他制御が
必要となるが、各エントリ単位でロックをかければよく
、そのロックはほんのわずかな時間間隔(フラグのテス
ト・アンド・セットの1命令)に抑えることが可能であ
る。
このため、各プロセスは、はぼ独立に利用可能なフロー
リストを持つページを探すことができる。
第4図乃至第6図は本発明の一実施例動作説明図である
第4図に示すように、全てのページのフラグが“0″ 
(使用中でない)であり、全てのページの残数がrol
でないとすると、どのプロセスもペジlのフリーリスト
を利用できる。
例えば、プロセスnがページlのフリーリストを利用す
ると、第5図のように、ページlのフラグが“1”にセ
ットされ、プロセスnはページ1のフリーリストの先頭
メモリセル10を獲得する。
プロセス2がメモリセルを獲得するため、管理テーブル
11を参照すると、ページ1はプロセスnがロック(セ
ット)しているので、プロセス2は、ページlではな(
、ページ2のエントリを見に行き、ページ2のフリーリ
ストのメモリセル10を第6図のように獲得する。
プロセスnは、第6図のように、必要な分のセルをフリ
ーリストから切り離し、自分で管理し、ページlのエン
トリの残数を更新し、フラグを“0”にリセットし、要
求処理を終了する。
次にセルの解放処理について説明する。
第7図は本発明の一実施例セル解放処理フロー図である
■ プロセスは、獲得したメモリセルのページを認識し
ているので、解放すべきセルのページを認識する。
次に、管理テーブル11の対応するページのエントリを
見る。
■ そして、そのページのフラグが“0” (使用中で
ない)か調べ(テストし)、“1″′であれば、“0″
になるまで待つ。
フラグが“0゛となると、フラグを“l”にセットする
■ そして、そのメモリセルをそのページのフリーリス
トの先頭にする。
即ち、そのメモリセルがフリーリストの先頭になる様に
、ポインタの書き替えを行う。
最後に、管理テーブル11の当該ページのフラグを“0
″にリセットし、リターンする。
このようにして、自己の属するページのフリーリストに
メモリセルを戻すことができる。
この方法の長所は、ページに属するセルの分布が一定で
あることと、並列キャッシュを想定した場合に、ページ
内のセル分布が一定のため、キャッシュのヒツト率が向
上することである。
又、短所は、セルが属するページを認識する機構が必要
であり、更にフリーリストに戻すときに、そのページの
フリーリストが空くのを待つ必要があることである。
このように、共有メモリlをほぼ並列にアクセスでき、
既にとってしまったメモリセルについては、完全に独立
にアクセスすることができる。
この時、ページ単位としたため、並列キャッシュを想定
した場合に、キャッシュのヒツト率が高くなることも期
待できる。
これは、キャッシングがあるメモリ単位で、共有メモリ
とキャッシュメモリの間のデータ転送を行うためで、引
き続いてアクセスするデータを互いに近くに置くことに
よりデータ転送の回数を減らすことができるからである
あるプロセスが獲得した複数のセルがあるペジ内にまと
めて置いであることにより、1回キャッシュメモリに転
送することで以降のアクセスのヒツト率が高くなる。逆
に、ページ単位で管理しない場合には、複数のプロセス
から同時にメモリセルが獲得されると、あるプロセスの
獲得したセルがかたまって置かれることは少なくなるた
め、アクセスするごとにキャッシングのデータ転送が必
要となり効率が悪い。
(b)  他の実施例の説明 第8図は本発明の他の実施例セル獲得処理フロ図である
この実施例では、第3図の実施例に比し、1回のアクセ
スで複数のメモリセル10を獲得できるようにしたもの
である。
即ち、ステップ■として、セル要求数をiとし、iが「
0」になるまで、ステップ■を繰返し、iが[OJとな
ったら、ステップ■を実行するものである。
このようにすれば、1回のアクセスで複数のメモリセル
を獲得できる。
又、フリーリス、トの解放処理については、次の2つの
方法がある。
第1の方法は、メモリセルを任意のフリーリストに戻す
方法であり、その時点でアクセス可能なフリーリストに
つなぎ替えるため、セルが属するページを認識する機構
が不必要であり、特定のフリーリストが空くのを待つ必
要がないという長所がある。
しかし、ページに属するセルの分布が滅茶苦茶になる可
能性があることと、キャッシュのヒツト率が悪くなるこ
とが短所である。
即ち、第7図の実施例の短所を長所とし、長所を短所と
する。
第2の方法は、第7図の実施例と第1の方法の折衷案で
あり、なるべく元のフリーリストに戻す方法である。
即ち、元のページのフリーリストを第1候補として戻す
ことにするが、その時点でそのページのフリーリストが
他のプロセスに使われていたら、別のフリーリストを探
すものである。
更に、各プロセスの処理単位上、共有メモリIヒのペー
ジが対応していると、並列処理の効果を高めることがで
きる。
例えば、データベースの1つのテーブルと、プロセスと
同数のN個のページを対応付けると、アクセスが局所化
され、本発明の効果が更に向上する。
以上本発明を実施例により説明したが、本発明は本発明
の主旨に従い種々の変形が可能であり、本発明からこれ
らを排除するものではない。
〔発明の効果〕
以上説明した様に、本発明によれば、複数のプロセッサ
が共有メモリの領域を動的に割り振って利用する場合に
、アクセスの競合が起こる可能性、を少なくすることが
できるため、並列性を損なうことなく高速に共有するこ
とができるという効果を奏し、特に共有メモリを有する
並列計算機の性能向上に寄与する。
【図面の簡単な説明】
第1図は本発明の原理図、 第2図は本発明の一実施例構成図、 第3図は本発明の一実施例セル獲得処理フロー図、 第4図乃至第6図は本発明の一実施例動作説明図、 第7図は本発明の一実施例セル解放処理フロ図、 第8図は本発明の他の実施例セル獲得処理フロ図、 第9図は共有メモリ型並列計算機の説明図、第10図は
従来技術の説明図である。 図中、1−共有メモリ、 2a〜2n−プロセッサ、 10−メモリセル、 11−−管理テーブル。

Claims (1)

    【特許請求の範囲】
  1. (1)複数のプロセッサ(2a〜2n)と共有メモリ(
    1)とを有し、 該共有メモリ(1)の使用可能なメモリセル(10)を
    フリーリストで管理する共有メモリのフリーリスト管理
    方式において、 該共有メモリ(1)を、各々使用可能なメモリセル(1
    0)を管理するフリーリストを有する複数のページ(1
    a〜1m)に分割するとともに、該各ページのエントリ
    情報を持つ管理テーブル(11)を設け、 該プロセッサ(2a〜2n)のプロセスが該管理テーブ
    ル(11)を参照して、メモリセル(10)の獲得及び
    解放を行うようにしたことを特徴とする共有メモリのフ
    リーリスト管理方式。
JP63317537A 1988-12-15 1988-12-15 共有メモリのフリーリスト管理方式 Pending JPH02162439A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63317537A JPH02162439A (ja) 1988-12-15 1988-12-15 共有メモリのフリーリスト管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63317537A JPH02162439A (ja) 1988-12-15 1988-12-15 共有メモリのフリーリスト管理方式

Publications (1)

Publication Number Publication Date
JPH02162439A true JPH02162439A (ja) 1990-06-22

Family

ID=18089359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63317537A Pending JPH02162439A (ja) 1988-12-15 1988-12-15 共有メモリのフリーリスト管理方式

Country Status (1)

Country Link
JP (1) JPH02162439A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0638376A (ja) * 1992-07-13 1994-02-10 Toshiba Corp 分散型電力系統事故復旧装置
JPH0683783A (ja) * 1992-03-30 1994-03-25 Internatl Business Mach Corp <Ibm> 条件付きオペレーション提供装置及び方法
JPH06236353A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US6330712B1 (en) * 1997-11-12 2001-12-11 Nec Corporation Compressed data patch system
JP2009181268A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
CN104254839A (zh) * 2012-04-27 2014-12-31 微软公司 用于分割单链表以供分配存储器元素的系统和方法
US9253046B2 (en) 1998-09-10 2016-02-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0683783A (ja) * 1992-03-30 1994-03-25 Internatl Business Mach Corp <Ibm> 条件付きオペレーション提供装置及び方法
JPH0638376A (ja) * 1992-07-13 1994-02-10 Toshiba Corp 分散型電力系統事故復旧装置
JPH06236353A (ja) * 1993-01-08 1994-08-23 Internatl Business Mach Corp <Ibm> マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US6330712B1 (en) * 1997-11-12 2001-12-11 Nec Corporation Compressed data patch system
US9565013B2 (en) 1998-09-10 2017-02-07 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US9253046B2 (en) 1998-09-10 2016-02-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US9860315B2 (en) 1998-09-10 2018-01-02 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US10491675B2 (en) 2001-10-01 2019-11-26 International Business Machines Corporation Controlling the state of duplexing of coupling facility structures
US8429354B2 (en) 2008-01-30 2013-04-23 Kabushiki Kaisha Toshiba Fixed length memory block management apparatus and method for enhancing memory usability and processing efficiency
JP2009181268A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
CN104254839A (zh) * 2012-04-27 2014-12-31 微软公司 用于分割单链表以供分配存储器元素的系统和方法
JP2015515076A (ja) * 2012-04-27 2015-05-21 マイクロソフト コーポレーション メモリ要素の割当てのために一方向リンク付けリストを区分化するシステム及び方法
CN104254839B (zh) * 2012-04-27 2018-10-12 微软技术许可有限责任公司 用于分割单链表以供分配存储器元素的系统和方法
US10223253B2 (en) 2012-04-27 2019-03-05 Microsoft Technology Licensing, Llc Allocation systems and method for partitioning lockless list structures

Similar Documents

Publication Publication Date Title
US6816947B1 (en) System and method for memory arbitration
US8209499B2 (en) Method of read-set and write-set management by distinguishing between shared and non-shared memory regions
US6658522B1 (en) Method to reduce overhead associated with system I/O in a multiprocessor computer system
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
US20060047919A1 (en) Atomic read/write support in a multi-module memory configuration
US6115790A (en) System, method and computer program product for organizing page caches
EP3443471B1 (en) Systems and methods for managing databases
US20070113042A1 (en) Sparse matrix
JP6188607B2 (ja) インデクスツリーの探索方法及び計算機
CN111897651B (zh) 一种基于标签的内存系统资源管理方法
JP2781092B2 (ja) システム間排他制御方式
JPH02162439A (ja) 共有メモリのフリーリスト管理方式
JPH11259318A (ja) ディスパッチ方式
CN112965921B (zh) 一种多任务gpu中tlb管理方法及系统
Bae et al. Empirical guide to use of persistent memory for large-scale in-memory graph analysis
US11474938B2 (en) Data storage system with multiple-size object allocator for disk cache
US7406554B1 (en) Queue circuit and method for memory arbitration employing same
JP4845149B2 (ja) データを管理する管理装置、管理プログラム、および管理方法
Calciu et al. How to implement any concurrent data structure
US7085888B2 (en) Increasing memory locality of filesystem synchronization operations
CN115237605B (zh) Cpu与gpu间的数据传输方法及计算机设备
Wu et al. ZeroCost-LLC: Shared LLCs at No Cost to WCL
Bonacic et al. Building efficient multi-threaded search nodes
Zhang et al. Hybrid Access Cache Indexing Framework Adapted to GPU.
Baumstark et al. Lock-free Data Structures for Data Stream Processing: A Closer Look