JPH04245344A - マルチプロセッサシステムのメモリ管理方法 - Google Patents
マルチプロセッサシステムのメモリ管理方法Info
- Publication number
- JPH04245344A JPH04245344A JP1057791A JP1057791A JPH04245344A JP H04245344 A JPH04245344 A JP H04245344A JP 1057791 A JP1057791 A JP 1057791A JP 1057791 A JP1057791 A JP 1057791A JP H04245344 A JPH04245344 A JP H04245344A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- local
- segment
- processor
- subchain
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 151
- 238000000034 method Methods 0.000 title description 18
- 238000007726 management method Methods 0.000 claims description 54
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、プロセッサからのアク
セス速度が異なるローカルメモリを複数個備え、該ロー
カルメモリを上記複数個のプロセッサより共用するメモ
リ共用型マルチプロセッサシステムにおける空きメモリ
セグメントの管理方法に関し、プロセッサからの要求に
高速かつ効率的な空きメモリセグメントの割当てを行う
メモリ管理方法に関する。
セス速度が異なるローカルメモリを複数個備え、該ロー
カルメモリを上記複数個のプロセッサより共用するメモ
リ共用型マルチプロセッサシステムにおける空きメモリ
セグメントの管理方法に関し、プロセッサからの要求に
高速かつ効率的な空きメモリセグメントの割当てを行う
メモリ管理方法に関する。
【0002】
【従来の技術】メモリ上の空き領域をメモリプールとし
て管理し、実行するユーザプログラムおよびオペレーテ
ィングシステム内部からの要求に従い、該空きメモリプ
ールより必要な長さ分のメモリブロックを割当て、その
後の解放要求に従い使用済みメモリブロックを空きメモ
リプールに戻すのは、オペレーティングシステムの基本
機能の一つである。この空きメモリ管理方式の例として
は、特許公報:平2− 10445 に記載されてい
るように、メモリプールをある一定サイズのメモリセグ
メントに分割し、そのメモリセグメントを管理するため
のセグメント管理インデクスを備え、該セグメント管理
インデクスをチェインすることで複数個のメモリセグメ
ントをスケジュールしている。また該メモリセグメント
内は更に固定長のサブメモリセグメントに分割され、こ
のサブメモリセグメントが要求元への割当て、解放の単
位となり、上記セグメント管理インデクス内のビットマ
ップに相当するフラグにより空き状態と場所が管理され
る。これを示したのが図3である。メモリ301内の空
きスペースは、メモリセグメント302単位で分割され
、該メモリセグメント内は更にサブメモリセグメント3
03に分割される。該メモリセグメント302を管理す
るためのセグメント管理インデクス304を備え、該セ
グメント管理インデクス内には、他のセグメント管理イ
ンデクスへチェインするためのネクストポインタ305
と、メモリセグメントへのポインタ306と、該メモリ
セグメント302内のサブメモリセグメント303の空
き状態と場所を示すビットマップ307と、空き状態の
サブメモリセグメント数308を保持している。そして
該セグメント管理インデクスチェインの起点アドレスを
保持するためのアンカーテーブル309(上記特許公報
では、システム資源管理領域に当たる)を持つ。そして
、空きメモリブロックの要求時には、該アンカーテーブ
ル309内のチェインポインタ310からセグメント管
理インデクスチェインをたどり、該セグメント管理イン
デクス内の空きサブメモリセグメント数308とビット
マップ307により、空き状態がチェックされ、空きの
サブメモリセグメントがある場合には、その空きサブメ
モリセグメントのアドレスが要求元に渡され、ビットマ
ップ307と空きサブメモリセグメント数308が更新
される。そして要求元にサブメモリセグメントを割当て
たところのセグメント管理インデクスのアドレスをアン
カテーブル309内のチェインポインタ310に置くこ
とで該セグメント管理インデクスチェインをラウンドロ
ビンでスケジュールする。もし、空きサブメモリセグメ
ントが見つからない場合(チェイン上のすべてのメモリ
セグメントに空きがない場合)には、新たにメモリセグ
メントとセグメント管理インデクスを確保し、該セグメ
ント管理インデクスチェイン上の先頭に置くことで新た
な要求に対する高速な割当て処理を実現している。この
ように上記特許公報では、セグメントおよびサブセグメ
ント単位に分割した空きブロックを、一つのチェインで
管理し、更にラウンドロビンでスケジューリングする方
法を開示している。
て管理し、実行するユーザプログラムおよびオペレーテ
ィングシステム内部からの要求に従い、該空きメモリプ
ールより必要な長さ分のメモリブロックを割当て、その
後の解放要求に従い使用済みメモリブロックを空きメモ
リプールに戻すのは、オペレーティングシステムの基本
機能の一つである。この空きメモリ管理方式の例として
は、特許公報:平2− 10445 に記載されてい
るように、メモリプールをある一定サイズのメモリセグ
メントに分割し、そのメモリセグメントを管理するため
のセグメント管理インデクスを備え、該セグメント管理
インデクスをチェインすることで複数個のメモリセグメ
ントをスケジュールしている。また該メモリセグメント
内は更に固定長のサブメモリセグメントに分割され、こ
のサブメモリセグメントが要求元への割当て、解放の単
位となり、上記セグメント管理インデクス内のビットマ
ップに相当するフラグにより空き状態と場所が管理され
る。これを示したのが図3である。メモリ301内の空
きスペースは、メモリセグメント302単位で分割され
、該メモリセグメント内は更にサブメモリセグメント3
03に分割される。該メモリセグメント302を管理す
るためのセグメント管理インデクス304を備え、該セ
グメント管理インデクス内には、他のセグメント管理イ
ンデクスへチェインするためのネクストポインタ305
と、メモリセグメントへのポインタ306と、該メモリ
セグメント302内のサブメモリセグメント303の空
き状態と場所を示すビットマップ307と、空き状態の
サブメモリセグメント数308を保持している。そして
該セグメント管理インデクスチェインの起点アドレスを
保持するためのアンカーテーブル309(上記特許公報
では、システム資源管理領域に当たる)を持つ。そして
、空きメモリブロックの要求時には、該アンカーテーブ
ル309内のチェインポインタ310からセグメント管
理インデクスチェインをたどり、該セグメント管理イン
デクス内の空きサブメモリセグメント数308とビット
マップ307により、空き状態がチェックされ、空きの
サブメモリセグメントがある場合には、その空きサブメ
モリセグメントのアドレスが要求元に渡され、ビットマ
ップ307と空きサブメモリセグメント数308が更新
される。そして要求元にサブメモリセグメントを割当て
たところのセグメント管理インデクスのアドレスをアン
カテーブル309内のチェインポインタ310に置くこ
とで該セグメント管理インデクスチェインをラウンドロ
ビンでスケジュールする。もし、空きサブメモリセグメ
ントが見つからない場合(チェイン上のすべてのメモリ
セグメントに空きがない場合)には、新たにメモリセグ
メントとセグメント管理インデクスを確保し、該セグメ
ント管理インデクスチェイン上の先頭に置くことで新た
な要求に対する高速な割当て処理を実現している。この
ように上記特許公報では、セグメントおよびサブセグメ
ント単位に分割した空きブロックを、一つのチェインで
管理し、更にラウンドロビンでスケジューリングする方
法を開示している。
【0003】一方、一台の計算機システム内に複数プロ
セッサを備えたマルチプロセッサシステムとしては、シ
ステム固有のグローバルメモリを複数プロセッサより共
用するメモリ共用型のマルチプロセッサと、プロセッサ
毎にローカルメモリを備え、それらのローカルプロセッ
サ間をバスやCTCA(チャネル間結合装置)などの専
用入出力装置で結ぶ分散型のマルチプロセッサに大別さ
れる(プロセッサ毎のローカルメモリとは別に、更にプ
ロセッサ間で共用するためのグローバルメモリを備えて
いるケースもあるが分類としては分散型とする)。メモ
リ共用型のマルチプロセッサは一つのOSで管理される
が、分散型のマルチプロセッサシステムでは、ローカル
メモリを含めたプロセッサユニット(本願ではプロセッ
ササブシステムと呼ぶ)毎にオペレーティングシステム
(OS)を備え、他のプロセッササブシステムと協調し
て動作することになり、冗長性は増すが該サブシステム
数だけOSを装備しなければならないことや複数OSに
よる複雑な運用管理となることから一つのOSでの運転
の必要性も生じている。しかし、複数のプロセッササブ
システムを一つのOSで制御するには、複数サブシステ
ムに分散されたローカルメモリも一つのOSでグローバ
ルメモリとして一元管理することが必要となり、この場
合には、別プロセッササブシステムに配置された情報へ
のアクセス性能(サブシステム間メモリアクセス性能)
がそのシステム全体の性能に大きく影響することになる
。例えば、図2ではプロセッササブシステム(201a
,201b)は、サブシステム内にローカルプロセッサ
(202a,202b)とローカルメモリ(203a,
203b)を備え、それらはサブシステム内のローカル
バス(204a,204b)に接続され、そしてサブシ
ステム間は拡張バス205で結ばれている。この複合サ
ブシステムを一つのOSで運転し、ローカルプロセッサ
202aからメモリにアクセスする時、それが自サブシ
ステム内のローカルメモリ203aの場合にはアクセス
速度は速いが、別サブシステム内のローカルメモリ20
3bへのアクセスの場合には拡張バス205を経由する
分遅くなる。そのオーバーヘッドを低減するには、その
インターフェイスとなるハードウェアの性能向上と共に
、サブシステム間にまたがるメモリアクセスの頻度を減
らすことも必要となる。
セッサを備えたマルチプロセッサシステムとしては、シ
ステム固有のグローバルメモリを複数プロセッサより共
用するメモリ共用型のマルチプロセッサと、プロセッサ
毎にローカルメモリを備え、それらのローカルプロセッ
サ間をバスやCTCA(チャネル間結合装置)などの専
用入出力装置で結ぶ分散型のマルチプロセッサに大別さ
れる(プロセッサ毎のローカルメモリとは別に、更にプ
ロセッサ間で共用するためのグローバルメモリを備えて
いるケースもあるが分類としては分散型とする)。メモ
リ共用型のマルチプロセッサは一つのOSで管理される
が、分散型のマルチプロセッサシステムでは、ローカル
メモリを含めたプロセッサユニット(本願ではプロセッ
ササブシステムと呼ぶ)毎にオペレーティングシステム
(OS)を備え、他のプロセッササブシステムと協調し
て動作することになり、冗長性は増すが該サブシステム
数だけOSを装備しなければならないことや複数OSに
よる複雑な運用管理となることから一つのOSでの運転
の必要性も生じている。しかし、複数のプロセッササブ
システムを一つのOSで制御するには、複数サブシステ
ムに分散されたローカルメモリも一つのOSでグローバ
ルメモリとして一元管理することが必要となり、この場
合には、別プロセッササブシステムに配置された情報へ
のアクセス性能(サブシステム間メモリアクセス性能)
がそのシステム全体の性能に大きく影響することになる
。例えば、図2ではプロセッササブシステム(201a
,201b)は、サブシステム内にローカルプロセッサ
(202a,202b)とローカルメモリ(203a,
203b)を備え、それらはサブシステム内のローカル
バス(204a,204b)に接続され、そしてサブシ
ステム間は拡張バス205で結ばれている。この複合サ
ブシステムを一つのOSで運転し、ローカルプロセッサ
202aからメモリにアクセスする時、それが自サブシ
ステム内のローカルメモリ203aの場合にはアクセス
速度は速いが、別サブシステム内のローカルメモリ20
3bへのアクセスの場合には拡張バス205を経由する
分遅くなる。そのオーバーヘッドを低減するには、その
インターフェイスとなるハードウェアの性能向上と共に
、サブシステム間にまたがるメモリアクセスの頻度を減
らすことも必要となる。
【0004】しかし、上述の特許公報におけるメモリ管
理方式では、メモリセグメントを一つのチェインで管理
しているため、アンカーテーブル309やセグメント管
理インデクス304がどちらのプロセッササブシステム
内のローカルメモリに保持されているかにより検索時間
が異なると共に、要求元のローカルプロセッサ(202
a,202b)に近いローカルメモリ(203a,20
3b)内のサブメモリセグメントに割当てられない可能
性を持つ問題点が存在する。
理方式では、メモリセグメントを一つのチェインで管理
しているため、アンカーテーブル309やセグメント管
理インデクス304がどちらのプロセッササブシステム
内のローカルメモリに保持されているかにより検索時間
が異なると共に、要求元のローカルプロセッサ(202
a,202b)に近いローカルメモリ(203a,20
3b)内のサブメモリセグメントに割当てられない可能
性を持つ問題点が存在する。
【0005】なお、ネットワークで結ばれた複数のサブ
システム間のメモリ内の情報を互いのページテーブルを
経由して参照する方式が、特許公報:「疎結合マルチプ
ロセッサシステム」(平2−36458)に開示されて
いるが、該方式はサブシステム対応にOSを装備した分
散型のマルチプロセッサであり、本願のような分散され
たローカルメモリを一つのOSで管理し複数プロセッサ
で共用するメモリ共用型のマルチプロセッサではなく、
本願とは該当しない。
システム間のメモリ内の情報を互いのページテーブルを
経由して参照する方式が、特許公報:「疎結合マルチプ
ロセッサシステム」(平2−36458)に開示されて
いるが、該方式はサブシステム対応にOSを装備した分
散型のマルチプロセッサであり、本願のような分散され
たローカルメモリを一つのOSで管理し複数プロセッサ
で共用するメモリ共用型のマルチプロセッサではなく、
本願とは該当しない。
【0006】
【発明が解決しようとする課題】上記従来方式では、メ
モリ内の空きメモリセグメントを一つのチェインで管理
している。そのため複数のローカルメモリから構成され
、プロセッサからメモリへのアクセス速度が該ローカル
メモリの位置により異なるというメモリアクセス特性を
備えた上述のメモリ共用型マルチプロセッサシステムで
は、従来のメモリ管理方式では、空きメモリセグメント
がローカルプロセッサ対応に最適配置されないため、別
プロセッササブシステム内ローカルメモリの空きサブメ
モリセグメントが割当てられる可能性があり、その場合
には該サブメモリセグメントをアクセスするたびに拡張
バス205を経由したメモリアクセスとなり、拡張バス
のトラヒックを増大させると共にメモリアクセス時間の
低下を招き、システム性能全体の低下を引き起こすとい
う問題がある。
モリ内の空きメモリセグメントを一つのチェインで管理
している。そのため複数のローカルメモリから構成され
、プロセッサからメモリへのアクセス速度が該ローカル
メモリの位置により異なるというメモリアクセス特性を
備えた上述のメモリ共用型マルチプロセッサシステムで
は、従来のメモリ管理方式では、空きメモリセグメント
がローカルプロセッサ対応に最適配置されないため、別
プロセッササブシステム内ローカルメモリの空きサブメ
モリセグメントが割当てられる可能性があり、その場合
には該サブメモリセグメントをアクセスするたびに拡張
バス205を経由したメモリアクセスとなり、拡張バス
のトラヒックを増大させると共にメモリアクセス時間の
低下を招き、システム性能全体の低下を引き起こすとい
う問題がある。
【0007】本願の目的は、この問題を解決することに
あり、具体的にはローカルプロセッサからの要求(ロー
カルプロセッサ上で実行しているプログラムからの要求
)に応じて、該ローカルプロセッサに近いところのロー
カルメモリ内のメモリセグメントから空きサブメモリセ
グメントを優先的に割当てることで、拡張バス205経
由の別プロセッササブシステム内のローカルメモリへの
アクセスを減らし、システム全体の性能を向上させるメ
モリ管理方法を提供することにある。
あり、具体的にはローカルプロセッサからの要求(ロー
カルプロセッサ上で実行しているプログラムからの要求
)に応じて、該ローカルプロセッサに近いところのロー
カルメモリ内のメモリセグメントから空きサブメモリセ
グメントを優先的に割当てることで、拡張バス205経
由の別プロセッササブシステム内のローカルメモリへの
アクセスを減らし、システム全体の性能を向上させるメ
モリ管理方法を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
、従来システムに一つのグローバルなセグメント管理構
造であったのを、ローカルメモリ毎のセグメント管理構
造とし、それを全体合わせてグローバルなセグメント管
理構造を形成するようにした。具体的には、メモリセグ
メントプール(メモリセグメントの集合)をローカルメ
モリ毎に分け、該メモリセグメントをインデクスするた
めのセグメント管理インデクスも該ローカルメモリ内に
保持し、該ローカルメモリ内のセグメント管理インデク
スのみでチェイン(サブチェイン)を構成し、該サブチ
ェインのアンカーを抑えるためのアンカーテーブルも従
来のシステムに一つからプロセッサ毎に複数個設け、該
プロセッサに最も近い(アクセス速度の速い)ローカル
メモリのサブチェインをポイントするようにした(請求
項1に対応)。更にローカルメモリ毎のサブチェイン同
士をチェインする手段を備えることで、サブチェインの
最後に到達しても、そのまま継続して次のサブチェイン
(別ローカルメモリ内のサブチェイン)に切り換わるよ
うにした(請求項2に対応)。このサブチェインの連結
には二つの方法が考えられる。一つは、サブチェインの
終端と別サブチェインの先頭を直接連結する方法であり
、もう一つはサブチェインの終端と別サブチェインの起
点アドレスを保持しているところ別プロセッサ内のアン
カーテーブルを連結し、サブチェイン同士は間接的に連
結する方法である。間接連結ではアンカーテーブルのテ
ーブル構造をセグメント管理インデクスと同じ構造にし
、該アンカーテーブル上のセグメント管理インデクスは
サブメモリセグメントの空きがない状態にしておく(空
きサブメモリセグメント数308を0にしておく)こと
で達成される。また従来技術で示したようなチェイン内
のラウンドロビンスケジューリングを本願に適用する場
合、ローカルメモリ内のサブチェイン上のスケジューリ
ングとなるが、間接接続にすることでサブチェイン内の
ポインタの張り替えが別ローカルメモリ内のサブチェイ
ンに影響しないという効果を持つ。
、従来システムに一つのグローバルなセグメント管理構
造であったのを、ローカルメモリ毎のセグメント管理構
造とし、それを全体合わせてグローバルなセグメント管
理構造を形成するようにした。具体的には、メモリセグ
メントプール(メモリセグメントの集合)をローカルメ
モリ毎に分け、該メモリセグメントをインデクスするた
めのセグメント管理インデクスも該ローカルメモリ内に
保持し、該ローカルメモリ内のセグメント管理インデク
スのみでチェイン(サブチェイン)を構成し、該サブチ
ェインのアンカーを抑えるためのアンカーテーブルも従
来のシステムに一つからプロセッサ毎に複数個設け、該
プロセッサに最も近い(アクセス速度の速い)ローカル
メモリのサブチェインをポイントするようにした(請求
項1に対応)。更にローカルメモリ毎のサブチェイン同
士をチェインする手段を備えることで、サブチェインの
最後に到達しても、そのまま継続して次のサブチェイン
(別ローカルメモリ内のサブチェイン)に切り換わるよ
うにした(請求項2に対応)。このサブチェインの連結
には二つの方法が考えられる。一つは、サブチェインの
終端と別サブチェインの先頭を直接連結する方法であり
、もう一つはサブチェインの終端と別サブチェインの起
点アドレスを保持しているところ別プロセッサ内のアン
カーテーブルを連結し、サブチェイン同士は間接的に連
結する方法である。間接連結ではアンカーテーブルのテ
ーブル構造をセグメント管理インデクスと同じ構造にし
、該アンカーテーブル上のセグメント管理インデクスは
サブメモリセグメントの空きがない状態にしておく(空
きサブメモリセグメント数308を0にしておく)こと
で達成される。また従来技術で示したようなチェイン内
のラウンドロビンスケジューリングを本願に適用する場
合、ローカルメモリ内のサブチェイン上のスケジューリ
ングとなるが、間接接続にすることでサブチェイン内の
ポインタの張り替えが別ローカルメモリ内のサブチェイ
ンに影響しないという効果を持つ。
【0009】以上の手段により、ローカルプロセッサ上
で走るプログラムからの要求は、該ローカルプロセッサ
に近いローカルメモリ内のメモリセグメントから優先的
に検索され、該ローカルメモリに空きサブメモリセグメ
ントがない場合でも継続して別ローカルメモリ内のメモ
リセグメントを検索することができる。(請求項1,2
に対応)。更に、サブチェインすべての検索の終了は、
起点となるプロセッサのサブチェインの起点アドレスと
各セグメント管理インデクス内のネクストポインタの値
が一致することで検出できる。この場合、すべてのサブ
チェインに空きメモリセグメントが存在しないため、従
来技術と同様に新たにメモリセグメントとセグメント管
理インデクスを起点となったローカルメモリ内に確保し
、該ローカルメモリ内のサブチェインの先頭に置くこと
で新たな要求への高速割当てが可能になる。
で走るプログラムからの要求は、該ローカルプロセッサ
に近いローカルメモリ内のメモリセグメントから優先的
に検索され、該ローカルメモリに空きサブメモリセグメ
ントがない場合でも継続して別ローカルメモリ内のメモ
リセグメントを検索することができる。(請求項1,2
に対応)。更に、サブチェインすべての検索の終了は、
起点となるプロセッサのサブチェインの起点アドレスと
各セグメント管理インデクス内のネクストポインタの値
が一致することで検出できる。この場合、すべてのサブ
チェインに空きメモリセグメントが存在しないため、従
来技術と同様に新たにメモリセグメントとセグメント管
理インデクスを起点となったローカルメモリ内に確保し
、該ローカルメモリ内のサブチェインの先頭に置くこと
で新たな要求への高速割当てが可能になる。
【0010】
【作用】従来方式も含め、本発明での空きメモリはメモ
リセグメント単位に分割され、該メモリセグメントを管
理するためのセグメント管理インデクスをメモリセグメ
ント毎に備えている。そして該セグメント管理インデク
スはチェイン構造を持つ。
リセグメント単位に分割され、該メモリセグメントを管
理するためのセグメント管理インデクスをメモリセグメ
ント毎に備えている。そして該セグメント管理インデク
スはチェイン構造を持つ。
【0011】本発明では、このチェインをシステム全体
の一つのチェインではなく、ローカルメモリ毎のサブチ
ェインに分けている。このサブチェインを構成するセグ
メント管理インデクスと該インデクスよりポイントされ
るメモリセグメントも同じローカルメモリに属する。更
に、サブチェインの起点アドレスを保持するアンカーテ
ーブルをプロセッサ毎に保持する(メモリ共用型マルチ
プロセッサでは、ハードウェアとの連絡用にプロセッサ
固有域をプロセッサ対応に備えており、この領域にアン
カーテーブルを置くことでプロセッサが異なってもプロ
セッサ番号を意識することなく別サブチェインをアドレ
スすることができる)。さらに本発明ではサブチェイン
同士を連結する手段を設けている。本発明における各手
段の作用としては、分けられたサブチェインはローカル
プロセッサからアクセスするのに高速なメモリセグメン
トのみを管理するのに用いられ、該サブチェインの起点
アドレスを保持したアンカーテーブルは、該ローカルプ
ロセッサからの要求と上記サブチェインを対応させるも
のである。これにより、ローカルプロセッサ上で実行す
るプログラムからのメモリ割当て要求は、該プロセッサ
のアンカーテーブルとサブチェインを経由して該ローカ
ルプロセッサに最適なローカルメモリ上のメモリセグメ
ントの割当てを優先して実行することができる。更に、
サブチェイン同士の連結手段により、サブチェイン内で
空きメモリセグメントが見つからなくても継続して別ロ
ーカルメモリ内のサブチェインへの検索を続行すること
ができる。
の一つのチェインではなく、ローカルメモリ毎のサブチ
ェインに分けている。このサブチェインを構成するセグ
メント管理インデクスと該インデクスよりポイントされ
るメモリセグメントも同じローカルメモリに属する。更
に、サブチェインの起点アドレスを保持するアンカーテ
ーブルをプロセッサ毎に保持する(メモリ共用型マルチ
プロセッサでは、ハードウェアとの連絡用にプロセッサ
固有域をプロセッサ対応に備えており、この領域にアン
カーテーブルを置くことでプロセッサが異なってもプロ
セッサ番号を意識することなく別サブチェインをアドレ
スすることができる)。さらに本発明ではサブチェイン
同士を連結する手段を設けている。本発明における各手
段の作用としては、分けられたサブチェインはローカル
プロセッサからアクセスするのに高速なメモリセグメン
トのみを管理するのに用いられ、該サブチェインの起点
アドレスを保持したアンカーテーブルは、該ローカルプ
ロセッサからの要求と上記サブチェインを対応させるも
のである。これにより、ローカルプロセッサ上で実行す
るプログラムからのメモリ割当て要求は、該プロセッサ
のアンカーテーブルとサブチェインを経由して該ローカ
ルプロセッサに最適なローカルメモリ上のメモリセグメ
ントの割当てを優先して実行することができる。更に、
サブチェイン同士の連結手段により、サブチェイン内で
空きメモリセグメントが見つからなくても継続して別ロ
ーカルメモリ内のサブチェインへの検索を続行すること
ができる。
【0012】
【実施例】以下、実施例を用いて説明する。図2はシス
テム構成図であり、ローカルプロセッサ(202a,2
02b)とローカルメモリ(203a,203b)と、
それらを結ぶバス(204a,204b)から構成され
るプロセッササブシステム(201a,201b)は、
拡張バス205により接続されており、ローカルプロセ
ッサからメモリへのアクセス時間では、同じプロセッサ
サブシステム内のローカルメモリへのアクセスと、別プ
ロセッササブシステム内のローカルメモリへのアクセス
時間は異なる。各ローカルメモリ内部は、図1に示すよ
うに構成される。
テム構成図であり、ローカルプロセッサ(202a,2
02b)とローカルメモリ(203a,203b)と、
それらを結ぶバス(204a,204b)から構成され
るプロセッササブシステム(201a,201b)は、
拡張バス205により接続されており、ローカルプロセ
ッサからメモリへのアクセス時間では、同じプロセッサ
サブシステム内のローカルメモリへのアクセスと、別プ
ロセッササブシステム内のローカルメモリへのアクセス
時間は異なる。各ローカルメモリ内部は、図1に示すよ
うに構成される。
【0013】従来技術でのメモリ(図3−301)は、
図2のシステム構成による環境では図1に示すようにロ
ーカルメモリ(203a,203b)の対で表される。 以下のローカルメモリ203aから見た時のテーブル関
係を説明する。該ローカルメモリ内は従来技術と同じメ
モリセグメント302と、セグメント管理インデクス3
04を備え、ローカルメモリ内でサブチェインを構成す
る。そして該サブチェインの起点アドレスは、プロセッ
サ毎のアンカーテーブル101a内のチェインポインタ
310aに保持している。更に該サブチェインの最後の
セグメント管理インデクス内のネクストポインタ305
aは別ローカルプロセッサのアンカーテーブルのチェイ
ンポインタ310bをポイントする。更に該アンカーテ
ーブル101aはセグメント管理インデクス304の構
造を包含しており、該アンカーテーブル内の空きサブメ
モリセグメント数308に相当するフィールド102に
は0(ゼロ)を入れておくことで、空きサブメモリセグ
メントがないセグメント管理インデクスをアンカーテー
ブル内に模擬することができる。
図2のシステム構成による環境では図1に示すようにロ
ーカルメモリ(203a,203b)の対で表される。 以下のローカルメモリ203aから見た時のテーブル関
係を説明する。該ローカルメモリ内は従来技術と同じメ
モリセグメント302と、セグメント管理インデクス3
04を備え、ローカルメモリ内でサブチェインを構成す
る。そして該サブチェインの起点アドレスは、プロセッ
サ毎のアンカーテーブル101a内のチェインポインタ
310aに保持している。更に該サブチェインの最後の
セグメント管理インデクス内のネクストポインタ305
aは別ローカルプロセッサのアンカーテーブルのチェイ
ンポインタ310bをポイントする。更に該アンカーテ
ーブル101aはセグメント管理インデクス304の構
造を包含しており、該アンカーテーブル内の空きサブメ
モリセグメント数308に相当するフィールド102に
は0(ゼロ)を入れておくことで、空きサブメモリセグ
メントがないセグメント管理インデクスをアンカーテー
ブル内に模擬することができる。
【0014】このテーブル構造を用いた空きメモリの割
当て処理を図4に示す。処理401は、該処理を実行す
るプロセッサのアンカーテーブルのチェインポインタ(
310a,310b)の領域アドレスを覚えておき、処
理402では該領域アドレスの内容、つまりセグメント
管理インデクス304のアドレスを求める。該領域アド
レスと、該インデクスアドレスを処理403で比較し、
等しい場合には全サブチェインの検索が終って空きセグ
メントがなかったものと判断し、処理404で新しいセ
グメント管理インデクスとメモリセグメントを自ローカ
ルメモリ内より確保し、処理405で自プロセッサ内の
セグメント管理インデクスチェイン(サブチェイン)の
先頭に置く。処理403で等しくない場合には、該セグ
メント管理インデクスの空きサブセグメント数308の
値により、空きサブメモリセグメントがあるか否か判定
し(処理406)、ない場合には処理402に戻り次の
セグメント管理インデクスについての処理を行う。ある
場合には、該セグメント管理インデクス内のビットマッ
プ307より該当するサブメモリセグメントのアドレス
を求め(処理407)、空きサブメモリセグメント数3
08とビットマップ307を更新する(処理408)。 これにより、要求元のプロセッサにとって速いローカル
メモリ内に空きメモリブロック(サブメモリセグメント
)を優先的に確保することができる。
当て処理を図4に示す。処理401は、該処理を実行す
るプロセッサのアンカーテーブルのチェインポインタ(
310a,310b)の領域アドレスを覚えておき、処
理402では該領域アドレスの内容、つまりセグメント
管理インデクス304のアドレスを求める。該領域アド
レスと、該インデクスアドレスを処理403で比較し、
等しい場合には全サブチェインの検索が終って空きセグ
メントがなかったものと判断し、処理404で新しいセ
グメント管理インデクスとメモリセグメントを自ローカ
ルメモリ内より確保し、処理405で自プロセッサ内の
セグメント管理インデクスチェイン(サブチェイン)の
先頭に置く。処理403で等しくない場合には、該セグ
メント管理インデクスの空きサブセグメント数308の
値により、空きサブメモリセグメントがあるか否か判定
し(処理406)、ない場合には処理402に戻り次の
セグメント管理インデクスについての処理を行う。ある
場合には、該セグメント管理インデクス内のビットマッ
プ307より該当するサブメモリセグメントのアドレス
を求め(処理407)、空きサブメモリセグメント数3
08とビットマップ307を更新する(処理408)。 これにより、要求元のプロセッサにとって速いローカル
メモリ内に空きメモリブロック(サブメモリセグメント
)を優先的に確保することができる。
【0015】なお、確保したサブメモリセグメントの解
放は処理408の逆の処理を行う。つまり解放対象のサ
ブメモリセグメントアドレスから該当のセグメント管理
インデクスを求め、該インデクス内の空きサブメモリセ
グメント数308に1を加え、ビットマップ307の該
当ビットを空き状態にすることになる。
放は処理408の逆の処理を行う。つまり解放対象のサ
ブメモリセグメントアドレスから該当のセグメント管理
インデクスを求め、該インデクス内の空きサブメモリセ
グメント数308に1を加え、ビットマップ307の該
当ビットを空き状態にすることになる。
【0016】
【発明の効果】以上により、ローカルプロセッサ(20
2a,202b)上で実行するプログラムからの要求に
より空きメモリブロックを割り当てる時、該プロセッサ
対応に保持されたアンカーテーブルから、該プロセッサ
にとってアクセス速度の速い側のローカルメモリ内のセ
グメント管理インデクスチェイン(サブチェイン)より
検索されるため、該メモリ内のサブメモリセグメントが
優先的に割当てられる。その効果は、割り当て後の該サ
ブメモリセグメントへのすべてのアクセスにおいて、無
駄な拡張バス205経由のアクセスを必要としないため
従来技術を用いるより性能向上が可能である。また、該
ローカルメモリ中に空きサブメモリセグメントが見つか
らなかった場合には、継続して別ローカルメモリ内のサ
ブチェインをたどることができるため従来技術を適用し
た場合と同等の性能を確保することができるという効果
を持つ。
2a,202b)上で実行するプログラムからの要求に
より空きメモリブロックを割り当てる時、該プロセッサ
対応に保持されたアンカーテーブルから、該プロセッサ
にとってアクセス速度の速い側のローカルメモリ内のセ
グメント管理インデクスチェイン(サブチェイン)より
検索されるため、該メモリ内のサブメモリセグメントが
優先的に割当てられる。その効果は、割り当て後の該サ
ブメモリセグメントへのすべてのアクセスにおいて、無
駄な拡張バス205経由のアクセスを必要としないため
従来技術を用いるより性能向上が可能である。また、該
ローカルメモリ中に空きサブメモリセグメントが見つか
らなかった場合には、継続して別ローカルメモリ内のサ
ブチェインをたどることができるため従来技術を適用し
た場合と同等の性能を確保することができるという効果
を持つ。
【図1】本発明の一実施例となるマルチプロセッサシス
テムのテーブル関係図。
テムのテーブル関係図。
【図2】本発明の対象となるマルチプロセッサシステム
の構成概略図。
の構成概略図。
【図3】従来技術を表したテーブル関係図。
【図4】本発明を適用した場合のメモリ割り当て処理を
示した処理フロー図。
示した処理フロー図。
202a,202b…ローカルプロセッサ、203a,
203b…ローカルメモリ、302…メモリセグメント
、303…サブメモリセグメント、304…セグメント
管理インデクス、305,305a,305b…セグメ
ント管理インデクス内のネクストポインタ、306…メ
モリセグメントへのポインタ、307…ビットマップ、
308…空きサブメモリセグメント数、101a,10
1b…アンカーテーブル、310a,310b…セグメ
ント管理インデクスへのポインタ。
203b…ローカルメモリ、302…メモリセグメント
、303…サブメモリセグメント、304…セグメント
管理インデクス、305,305a,305b…セグメ
ント管理インデクス内のネクストポインタ、306…メ
モリセグメントへのポインタ、307…ビットマップ、
308…空きサブメモリセグメント数、101a,10
1b…アンカーテーブル、310a,310b…セグメ
ント管理インデクスへのポインタ。
Claims (2)
- 【請求項1】複数のプロセッサと、複数のローカルメモ
リからなり、該複数ローカルメモリを一つのグローバル
メモリとして該複数プロセッサより共用するメモリ共用
型マルチプロセッサシステムで、上記グローバルメモリ
内の空きメモリをある管理単位(メモリセグメント)と
該管理単位のチェイン(セグメント管理インデクスチェ
イン)により管理するメモリ管理システムにおいて、該
チェインを上記ローカルメモリ毎のサブチェインに分け
、上記プロセッサには上記プロセッサにとって最もアク
セス速度の速いローカルメモリ内のサブチェインの起点
アドレスを保持し、上記プロセッサ上で走るプログラム
のメモリ割り当て要求時には該ローカルメモリのサブチ
ェインを優先して検索し空きメモリセグメントを割り当
てることを特徴とするマルチプロセッサシステムのメモ
リ管理方法。 - 【請求項2】前記ローカルメモリ内のサブチェインの終
端と、該ローカルメモリとは別のローカルメモリ内のサ
ブチェインの先頭を連結する手段を有し、上記プロセッ
サで検索したサブチェインの検索終了時には別ローカル
メモリのサブチェインを検索することを特徴とするマル
チプロセッサシステムのメモリ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1057791A JPH04245344A (ja) | 1991-01-31 | 1991-01-31 | マルチプロセッサシステムのメモリ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1057791A JPH04245344A (ja) | 1991-01-31 | 1991-01-31 | マルチプロセッサシステムのメモリ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04245344A true JPH04245344A (ja) | 1992-09-01 |
Family
ID=11754098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1057791A Pending JPH04245344A (ja) | 1991-01-31 | 1991-01-31 | マルチプロセッサシステムのメモリ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04245344A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181268A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 |
JP2017146895A (ja) * | 2016-02-19 | 2017-08-24 | イーソル株式会社 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
-
1991
- 1991-01-31 JP JP1057791A patent/JPH04245344A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009181268A (ja) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 |
JP2017146895A (ja) * | 2016-02-19 | 2017-08-24 | イーソル株式会社 | オペレーティングシステム、プログラミングシステム及びメモリ割り当て方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552337B2 (en) | Memory management and device | |
JP3155537B2 (ja) | 実記憶管理方法 | |
JP2020511706A (ja) | 行バッファ競合を低減するための動的メモリの再マッピング | |
JPH03223945A (ja) | 仮想記憶管理方法 | |
JPH1011305A (ja) | 非均等メモリ・アクセス記憶アーキテクチャを有するマルチプロセッサ・システム及びそのシステムにおけるプロセス割当て方法 | |
JPS62165250A (ja) | 仮想記憶方法 | |
WO2018032519A1 (zh) | 一种资源分配方法、装置及numa系统 | |
JPH07271674A (ja) | キャッシュ最適化の方法 | |
US6457107B1 (en) | Method and apparatus for reducing false sharing in a distributed computing environment | |
JP2778291B2 (ja) | アドレス変換レジスタ制御方式 | |
JPH04245344A (ja) | マルチプロセッサシステムのメモリ管理方法 | |
JPH10143382A (ja) | 共有メモリ型マルチプロセッサシステムの資源管理方法 | |
KR101701378B1 (ko) | 가상 머신과 파일을 공유하는 가상화 장치 및 그 방법 | |
JPH09146904A (ja) | アドレス空間共有システム | |
JPH07129518A (ja) | 計算機システム | |
JP2933628B2 (ja) | 主記憶装置管理方法および計算機システム | |
JPS63244152A (ja) | 拡張記憶装置アクセス制御装置 | |
CN115129473B (zh) | 一种基于numa架构存储系统的资源管理方法、装置及介质 | |
JPH1091527A (ja) | 記憶装置および記録媒体 | |
JP6694007B2 (ja) | 情報処理装置 | |
JPH08221317A (ja) | メモリ管理方式 | |
JPS6043756A (ja) | メモリ管理方式 | |
JPH0830512A (ja) | スレッド制御方式 | |
JP2613931B2 (ja) | バッファ制御方式 | |
JPH04291642A (ja) | キャッシュ制御方式 |