JPH0528028A - メモリ管理方式 - Google Patents
メモリ管理方式Info
- Publication number
- JPH0528028A JPH0528028A JP20391591A JP20391591A JPH0528028A JP H0528028 A JPH0528028 A JP H0528028A JP 20391591 A JP20391591 A JP 20391591A JP 20391591 A JP20391591 A JP 20391591A JP H0528028 A JPH0528028 A JP H0528028A
- Authority
- JP
- Japan
- Prior art keywords
- area
- address
- memory
- scavenging
- data movement
- 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
Abstract
(57)【要約】
【目的】 複数のタスクに共用されるメモリのメモリ管
理方式において、必要とするエリアの取得を高速に行う
と共に、管理を効率的に行うこと。 【構成】 複数のタスクに共用されるメモリのメモリ管
理方式において、空きエリア内に要求エリアを取得する
際、上位アドレス側から取得してもよいし下位アドレス
側から取得してもよいと定める。そして、いずれを採用
するかは、取得した後にスキャベンジを行うと仮定し
て、そのスキャベンジでのデータ移動量が最小のものは
どれであるかで決める。そうすれば、仮に次にスキャベ
ンジをしなければならないといった事態になった場合、
データ移動量が最小であるからスキャベンジに要する時
間は短くて済み、メモリ管理に要する全体としての時間
は短くなる。また、エリアの取得要求があった場合、今
は使用中であるがもうじき解放されるという解放予告が
なされているエリアの広さをも考慮し、もし、そのエリ
アをも含めれば要求エリアの広さに達するという場合に
は、そのエリアの解放を待って取得せしめる。
理方式において、必要とするエリアの取得を高速に行う
と共に、管理を効率的に行うこと。 【構成】 複数のタスクに共用されるメモリのメモリ管
理方式において、空きエリア内に要求エリアを取得する
際、上位アドレス側から取得してもよいし下位アドレス
側から取得してもよいと定める。そして、いずれを採用
するかは、取得した後にスキャベンジを行うと仮定し
て、そのスキャベンジでのデータ移動量が最小のものは
どれであるかで決める。そうすれば、仮に次にスキャベ
ンジをしなければならないといった事態になった場合、
データ移動量が最小であるからスキャベンジに要する時
間は短くて済み、メモリ管理に要する全体としての時間
は短くなる。また、エリアの取得要求があった場合、今
は使用中であるがもうじき解放されるという解放予告が
なされているエリアの広さをも考慮し、もし、そのエリ
アをも含めれば要求エリアの広さに達するという場合に
は、そのエリアの解放を待って取得せしめる。
Description
【0001】
【産業上の利用分野】本発明は、タスクが要求するエリ
アを高速に取得すると共に、管理を効率的に行うことが
出来るメモリ管理方式に関するものである。
アを高速に取得すると共に、管理を効率的に行うことが
出来るメモリ管理方式に関するものである。
【0002】
【従来の技術】電子計算機システムのメモリ管理方式に
は、幾つかのタスクが1つのメモリを共用出来るように
管理する方式がある。このメモリ管理方式においては、
タスクから要求があった場合、必要とする広さのエリア
だけ割り当て、タスクが終了したら返還させる。このよ
うなメモリ管理方式は、例えば、イメージスキャナーか
ら読み取ったイメージを蓄積するビットマップメモリ
を、複数のタスクで共同して使うような場合に、用いら
れている。
は、幾つかのタスクが1つのメモリを共用出来るように
管理する方式がある。このメモリ管理方式においては、
タスクから要求があった場合、必要とする広さのエリア
だけ割り当て、タスクが終了したら返還させる。このよ
うなメモリ管理方式は、例えば、イメージスキャナーか
ら読み取ったイメージを蓄積するビットマップメモリ
を、複数のタスクで共同して使うような場合に、用いら
れている。
【0003】図2は、或る時点のメモリ状態と或るタス
クからの要求エリアとを示す図である。図2において、
Mはメモリ、Uは上位アドレス側、Dは下位アドレス
側、1〜8はメモリエリア、Aは要求エリアである。図
2(イ)は、或る時点のメモリMの使用状態を示してお
り、ドットを付したエリア1,2,4,5,7は、使用
エリアであり、付してないエリアは、空きエリアであ
る。
クからの要求エリアとを示す図である。図2において、
Mはメモリ、Uは上位アドレス側、Dは下位アドレス
側、1〜8はメモリエリア、Aは要求エリアである。図
2(イ)は、或る時点のメモリMの使用状態を示してお
り、ドットを付したエリア1,2,4,5,7は、使用
エリアであり、付してないエリアは、空きエリアであ
る。
【0004】図2(ロ)は、或るタスクから出された要
求エリアAであるが、メモリMが図2(イ)の状態にあ
る時点で要求エリアAが出されると、要求エリアA以上
の広さの空きエリアがあるか否かを調べる。もし空きエ
リア6についてチェックした際、その広さが要求エリア
A以上であることが判明すると、空きエリア6から要求
エリアA分だけ取って割り当てられる。通常、その取る
方向(取得方向)は、上位アドレス側Uから取るとか、
下位アドレス側Dから取るとかと、予め定められてい
る。
求エリアAであるが、メモリMが図2(イ)の状態にあ
る時点で要求エリアAが出されると、要求エリアA以上
の広さの空きエリアがあるか否かを調べる。もし空きエ
リア6についてチェックした際、その広さが要求エリア
A以上であることが判明すると、空きエリア6から要求
エリアA分だけ取って割り当てられる。通常、その取る
方向(取得方向)は、上位アドレス側Uから取るとか、
下位アドレス側Dから取るとかと、予め定められてい
る。
【0005】図3は、要求エリアの取得の方向を示す図
である。符号は図2のものに対応し、6Aは取得エリ
ア、6Bは残り空きエリアである。図3(イ)は、図2
(イ)の空きエリア6内に要求エリアAを取得する際、
矢印で示すように下位アドレス側Dから取得した場合で
あり、図3(ロ)は、上位アドレス側Uから取得した場
合である。取得方向に応じて、空きエリア6から取得エ
リア6Aを差し引いた残り空きエリア6Bの出来る位置
が、異なることになる。
である。符号は図2のものに対応し、6Aは取得エリ
ア、6Bは残り空きエリアである。図3(イ)は、図2
(イ)の空きエリア6内に要求エリアAを取得する際、
矢印で示すように下位アドレス側Dから取得した場合で
あり、図3(ロ)は、上位アドレス側Uから取得した場
合である。取得方向に応じて、空きエリア6から取得エ
リア6Aを差し引いた残り空きエリア6Bの出来る位置
が、異なることになる。
【0006】次に別のタスクからメモリエリアの取得要
求が出された場合も、同様の手順で割り当てられるが、
もし、単独の空きエリアで要求の広さのものがなけれ
ば、スキャベンジ(使用エリアおよび空きエリアを適宜
移動して、それぞれひとまとまりになるよう詰めなおす
こと)を行い、空きエリアをまとめて広くして割り当て
る。
求が出された場合も、同様の手順で割り当てられるが、
もし、単独の空きエリアで要求の広さのものがなけれ
ば、スキャベンジ(使用エリアおよび空きエリアを適宜
移動して、それぞれひとまとまりになるよう詰めなおす
こと)を行い、空きエリアをまとめて広くして割り当て
る。
【0007】図4は、上位アドレス側および下位アドレ
ス側からスキャベンジを行ったメモリ状態を示す図であ
る。符号は、図3のものに対応している。従来、スキャ
ベンジを行う方向は、下位アドレス側から行うか、それ
とも上位アドレス側から行うかであり、いずれか一方で
行うように予め定められている(通常、下位アドレス側
から行うとしているものが多い)。図3では、両方の例
を示している。
ス側からスキャベンジを行ったメモリ状態を示す図であ
る。符号は、図3のものに対応している。従来、スキャ
ベンジを行う方向は、下位アドレス側から行うか、それ
とも上位アドレス側から行うかであり、いずれか一方で
行うように予め定められている(通常、下位アドレス側
から行うとしているものが多い)。図3では、両方の例
を示している。
【0008】図4(イ)では、取得エリア6Aを含め
て、使用エリア1,2,4,5,6A,7を上位アドレ
ス側Uに詰めてまとめたものである。空きエリア3,6
B,8は、下位アドレス側Dにまとめられる。図4
(ロ)は、逆に使用エリアを下位アドレス側Dに詰めて
まとめたものである。スキャベンジは、使用エリア内の
データを、別のエリアに移動することによって行われ
る。
て、使用エリア1,2,4,5,6A,7を上位アドレ
ス側Uに詰めてまとめたものである。空きエリア3,6
B,8は、下位アドレス側Dにまとめられる。図4
(ロ)は、逆に使用エリアを下位アドレス側Dに詰めて
まとめたものである。スキャベンジは、使用エリア内の
データを、別のエリアに移動することによって行われ
る。
【0009】空きエリアは、スキャベンジによって連続
した広いエリアとなるから、要求されている広さのエリ
アを割り当てることが出来る。それでも広さが足りなか
った場合には、割り当てることは出来ないとして、取得
失敗の信号を出して要求したタスクに知らせる。
した広いエリアとなるから、要求されている広さのエリ
アを割り当てることが出来る。それでも広さが足りなか
った場合には、割り当てることは出来ないとして、取得
失敗の信号を出して要求したタスクに知らせる。
【0010】
(問題点)しかしながら、前記した従来のメモリ管理方
式には、次のような問題点があった。第1の問題点は、
スキャベンジを予め定めた1つの方向でしか行わないの
で、スキャベンジの際のデータ移動量が多くなる場合も
あり、処理時間が長くなるという点である。第2の問題
点は、今は使用されているがもうじき解放されるエリア
があっても、現時点での空きエリアが所要広さなけれ
ば、割り当ててもらえず、改めて再度取得要求を出さな
ければならない(非効率)という点である。
式には、次のような問題点があった。第1の問題点は、
スキャベンジを予め定めた1つの方向でしか行わないの
で、スキャベンジの際のデータ移動量が多くなる場合も
あり、処理時間が長くなるという点である。第2の問題
点は、今は使用されているがもうじき解放されるエリア
があっても、現時点での空きエリアが所要広さなけれ
ば、割り当ててもらえず、改めて再度取得要求を出さな
ければならない(非効率)という点である。
【0011】(問題点の説明)まず第1の問題点につい
て説明する。図3(イ)の状態のメモリMをスキャベン
ジする際、図4(イ)のように上位アドレス側Uからス
キャベンジすると定めてあるメモリ管理方式では、使用
エリア1,2のデータは移動する必要がなく、使用エリ
ア4,5,6A,7のデータを移動すればよい。しか
し、図4(ロ)のように下位アドレス側Dからスキャベ
ンジすると定めてあるメモリ管理方式では、全ての使用
エリアのデータを移動しなければならない。使用エリア
の分布は、さまざまに変化するから、定めてある方向に
スキャベンジした方がデータ移動量が少なくて済む場合
も勿論あるが、そうでない場合もどうしても出て来る。
従って、処理時間が長くなる。
て説明する。図3(イ)の状態のメモリMをスキャベン
ジする際、図4(イ)のように上位アドレス側Uからス
キャベンジすると定めてあるメモリ管理方式では、使用
エリア1,2のデータは移動する必要がなく、使用エリ
ア4,5,6A,7のデータを移動すればよい。しか
し、図4(ロ)のように下位アドレス側Dからスキャベ
ンジすると定めてあるメモリ管理方式では、全ての使用
エリアのデータを移動しなければならない。使用エリア
の分布は、さまざまに変化するから、定めてある方向に
スキャベンジした方がデータ移動量が少なくて済む場合
も勿論あるが、そうでない場合もどうしても出て来る。
従って、処理時間が長くなる。
【0012】次に第2の問題点について説明する。もう
じき使用を終える使用エリアがあった場合には、解放予
告信号が出される。従って、現時点の空きエリアを合計
しただけでは足りなくても、解放予告されているエリア
を加えてやれば、要求の広さになることもある。しか
し、従来は現時点の空きエリアの広さが足りなければ、
タスクに拒否回答をしている。従って、タスクは、取得
要求の手続きを再度しなければならず、非効率である。
じき使用を終える使用エリアがあった場合には、解放予
告信号が出される。従って、現時点の空きエリアを合計
しただけでは足りなくても、解放予告されているエリア
を加えてやれば、要求の広さになることもある。しか
し、従来は現時点の空きエリアの広さが足りなければ、
タスクに拒否回答をしている。従って、タスクは、取得
要求の手続きを再度しなければならず、非効率である。
【0013】本発明は、以上のような問題点を解決する
ことを課題とするものである。
ことを課題とするものである。
【0014】
【課題を解決するための手段】前記課題を解決するた
め、本発明では、複数のタスクに共用されるメモリのメ
モリ管理方式において、空きエリアに要求エリアを下位
アドレス側から取得した第1の場合と上位アドレス側か
ら取得した第2の場合とを仮定し、それら各場合におい
て、メモリの最上位アドレスを基準位置としてスキャベ
ンジした時のデータ移動量と、最下位アドレスを基準位
置としてスキャベンジした時のデータ移動量とを算出
し、データ移動量が最小である取得の仕方で要求エリア
を取得することとした。
め、本発明では、複数のタスクに共用されるメモリのメ
モリ管理方式において、空きエリアに要求エリアを下位
アドレス側から取得した第1の場合と上位アドレス側か
ら取得した第2の場合とを仮定し、それら各場合におい
て、メモリの最上位アドレスを基準位置としてスキャベ
ンジした時のデータ移動量と、最下位アドレスを基準位
置としてスキャベンジした時のデータ移動量とを算出
し、データ移動量が最小である取得の仕方で要求エリア
を取得することとした。
【0015】また、複数のタスクに共用されるメモリの
メモリ管理方式において、メモリの最上位番地の次には
最下位番地がアクセスされるようなアドレス構成にする
と共に、空きエリアに要求エリアを下位アドレス側から
取得した第1の場合と上位アドレス側から取得した第2
の場合とを仮定し、それら各場合において、全ての使用
エリアブロックをスキャベンジの基準位置としてデータ
移動量を算出し、データ移動量が最小である取得の仕方
で要求エリアを取得させることとした。
メモリ管理方式において、メモリの最上位番地の次には
最下位番地がアクセスされるようなアドレス構成にする
と共に、空きエリアに要求エリアを下位アドレス側から
取得した第1の場合と上位アドレス側から取得した第2
の場合とを仮定し、それら各場合において、全ての使用
エリアブロックをスキャベンジの基準位置としてデータ
移動量を算出し、データ移動量が最小である取得の仕方
で要求エリアを取得させることとした。
【0016】更に、複数のタスクに共用されるメモリの
メモリ管理方式において、空きエリアだけでは要求エリ
アを満たさない場合には、解放予告されている使用エリ
アをも空きエリアに含めて取得可能か否かを判断し、取
得可能であれば現実に解放されるのを待って取得せしめ
ることとした。
メモリ管理方式において、空きエリアだけでは要求エリ
アを満たさない場合には、解放予告されている使用エリ
アをも空きエリアに含めて取得可能か否かを判断し、取
得可能であれば現実に解放されるのを待って取得せしめ
ることとした。
【0017】
【作 用】本発明では、複数のタスクに共用されるメ
モリのメモリ管理方式において、空きエリア内に要求エ
リアを取得する際、上位アドレス側から取得してもよい
し下位アドレス側から取得してもよいと定める。そし
て、いずれを採用するかは、取得した後にスキャベンジ
を行うと仮定して、そのスキャベンジでのデータ移動量
が最小のものはどれであるかで決める。その取得方法で
取得すれば、仮に次にスキャベンジをしなければならな
いといった事態になった場合、データ移動量が最小であ
るからスキャベンジに要する時間は短くて済み、メモリ
管理に要する全体としての時間は短くなる。
モリのメモリ管理方式において、空きエリア内に要求エ
リアを取得する際、上位アドレス側から取得してもよい
し下位アドレス側から取得してもよいと定める。そし
て、いずれを採用するかは、取得した後にスキャベンジ
を行うと仮定して、そのスキャベンジでのデータ移動量
が最小のものはどれであるかで決める。その取得方法で
取得すれば、仮に次にスキャベンジをしなければならな
いといった事態になった場合、データ移動量が最小であ
るからスキャベンジに要する時間は短くて済み、メモリ
管理に要する全体としての時間は短くなる。
【0018】なお、スキャベンジをする際の基準位置と
しては、メモリの最下位アドレスの位置と最上位アドレ
スの位置との2つの内のいずれかと決めるやり方をとっ
てもよいし、或いは、全ての使用エリアブロックのいず
れかの位置を基準位置と決めるやり方をとってもよい。
しては、メモリの最下位アドレスの位置と最上位アドレ
スの位置との2つの内のいずれかと決めるやり方をとっ
てもよいし、或いは、全ての使用エリアブロックのいず
れかの位置を基準位置と決めるやり方をとってもよい。
【0019】また、エリアの取得要求があった場合、今
は使用中であるがもうじき解放されるという解放予告が
なされているエリアの広さをも考慮し、もし、そのエリ
アをも含めれば要求エリアの広さに達するという場合に
は、解放を待って取得せしめる。それにより、現実の空
きエリアが要求エリアの広さに満たない場合には、全て
取得を拒否して再度改めて取得の手続きをさせていた従
来に比べ、効率よく取得要求を処理することが可能とな
る。
は使用中であるがもうじき解放されるという解放予告が
なされているエリアの広さをも考慮し、もし、そのエリ
アをも含めれば要求エリアの広さに達するという場合に
は、解放を待って取得せしめる。それにより、現実の空
きエリアが要求エリアの広さに満たない場合には、全て
取得を拒否して再度改めて取得の手続きをさせていた従
来に比べ、効率よく取得要求を処理することが可能とな
る。
【0020】
(第1の実施例)この実施例では、空きエリアの中に要
求エリアを取得する際、上位アドレス側Uから(図3
(ロ)参照)でも下位アドレス側Dから(図3(イ)参
照)でもよいとすると共に、スキャベンジする方向も、
メモリの上位アドレス側Uと下位アドレス側Dのいずれ
の側であってもよいと定める。そして、空きエリアの中
に要求エリアAを取得する際、次にスキャベンジを実行
すると仮定して、その時のデータ移動量が最小となるよ
うな方法を採用する。
求エリアを取得する際、上位アドレス側Uから(図3
(ロ)参照)でも下位アドレス側Dから(図3(イ)参
照)でもよいとすると共に、スキャベンジする方向も、
メモリの上位アドレス側Uと下位アドレス側Dのいずれ
の側であってもよいと定める。そして、空きエリアの中
に要求エリアAを取得する際、次にスキャベンジを実行
すると仮定して、その時のデータ移動量が最小となるよ
うな方法を採用する。
【0021】以下、本発明の実施例を図面に基づいて詳
細に説明する。図1は、本発明の第1の実施例を説明す
るフローチャートである。ステップ1…或るタスクから
エリアAを要求されたら、要求の広さ以上の空きエリア
が、単独で存在しているか否かをチェックする。ステッ
プ2…無ければ、空きエリアの合計が、要求の広さ以上
であるか否かチェックする。ステップ3…合計しても無
ければ、エリアを要求したタスクへ、取得に失敗した旨
の信号を出す。
細に説明する。図1は、本発明の第1の実施例を説明す
るフローチャートである。ステップ1…或るタスクから
エリアAを要求されたら、要求の広さ以上の空きエリア
が、単独で存在しているか否かをチェックする。ステッ
プ2…無ければ、空きエリアの合計が、要求の広さ以上
であるか否かチェックする。ステップ3…合計しても無
ければ、エリアを要求したタスクへ、取得に失敗した旨
の信号を出す。
【0022】ステップ4…もし、空きエリアを合計すれ
ば要求の広さ以上ある場合には、最も短時間で出来るや
り方でスキャベンジを行う。この実施例では、スキャベ
ンジは上位アドレス側Uか下位アドレス側Dかのいずれ
かにするが、データ移動量が少なくて済む(短時間で済
む)側にする。
ば要求の広さ以上ある場合には、最も短時間で出来るや
り方でスキャベンジを行う。この実施例では、スキャベ
ンジは上位アドレス側Uか下位アドレス側Dかのいずれ
かにするが、データ移動量が少なくて済む(短時間で済
む)側にする。
【0023】ステップ5…単独の空きエリアで要求の広
さ以上のものがあった場合と、スキャベンジして要求の
広さ以上の空きエリアがあった場合とに、このステップ
に来る。このステップからステップ9までは、空きエリ
アに対してどちら側から要求エリアAを取った方が、そ
の後に行うスキャベンジでのデータ移動量が少なくて済
むかを検討するためのステップである。ここでは説明を
具体的にするための便宜上、図2の空きエリア6に要求
エリアAを取る場合について説明する。
さ以上のものがあった場合と、スキャベンジして要求の
広さ以上の空きエリアがあった場合とに、このステップ
に来る。このステップからステップ9までは、空きエリ
アに対してどちら側から要求エリアAを取った方が、そ
の後に行うスキャベンジでのデータ移動量が少なくて済
むかを検討するためのステップである。ここでは説明を
具体的にするための便宜上、図2の空きエリア6に要求
エリアAを取る場合について説明する。
【0024】ステップ5では、図3(イ)のように空き
エリア6の下位アドレス側Dから要求エリアAを取った
と仮定して、図4(イ)のように上位アドレス側Uに使
用エリアを詰めるようスキャベンジした場合のデータ移
動量を算出する。ステップ6…図3(イ)のように空き
エリア6の下位アドレス側Dから要求エリアAを取った
と仮定して、図4(ロ)のように下位アドレス側Dに使
用エリアを詰めるようスキャベンジした場合のデータ移
動量を算出する。
エリア6の下位アドレス側Dから要求エリアAを取った
と仮定して、図4(イ)のように上位アドレス側Uに使
用エリアを詰めるようスキャベンジした場合のデータ移
動量を算出する。ステップ6…図3(イ)のように空き
エリア6の下位アドレス側Dから要求エリアAを取った
と仮定して、図4(ロ)のように下位アドレス側Dに使
用エリアを詰めるようスキャベンジした場合のデータ移
動量を算出する。
【0025】ステップ7…図3(ロ)のように空きエリ
ア6の上位アドレス側Uから要求エリアAを取ったと仮
定して、図4(イ)のように上位アドレス側Uに使用エ
リアを詰めるようスキャベンジした場合のデータ移動量
を算出する。ステップ8…図3(ロ)のように空きエリ
ア6の上位アドレス側Uから要求エリアAを取ったと仮
定して、図4(ロ)のように下位アドレス側Dに使用エ
リアを詰めるようスキャベンジした場合のデータ移動量
を算出する。
ア6の上位アドレス側Uから要求エリアAを取ったと仮
定して、図4(イ)のように上位アドレス側Uに使用エ
リアを詰めるようスキャベンジした場合のデータ移動量
を算出する。ステップ8…図3(ロ)のように空きエリ
ア6の上位アドレス側Uから要求エリアAを取ったと仮
定して、図4(ロ)のように下位アドレス側Dに使用エ
リアを詰めるようスキャベンジした場合のデータ移動量
を算出する。
【0026】ステップ9…ステップ5〜8までで算出し
たデータ移動量の中で、最も少なかった場合の取り方
で、空きエリア6の中に要求エリアAを取る。例えば、
ステップ5で算出したデータ移動量が最小であったな
ら、図3(イ)のやり方で要求エリアAを取る。
たデータ移動量の中で、最も少なかった場合の取り方
で、空きエリア6の中に要求エリアAを取る。例えば、
ステップ5で算出したデータ移動量が最小であったな
ら、図3(イ)のやり方で要求エリアAを取る。
【0027】このように、第1の実施例では、もし次に
スキャベンジを行わなければならないとなったら、その
際のデータ移動量が最小(従って、スキャベンジに要す
る時間が最小)になる方法で要求エリアAを取るので、
メモリ管理に要する全体としての時間は少なくなる。
スキャベンジを行わなければならないとなったら、その
際のデータ移動量が最小(従って、スキャベンジに要す
る時間が最小)になる方法で要求エリアAを取るので、
メモリ管理に要する全体としての時間は少なくなる。
【0028】(第2の実施例)第2の実施例は、第1の
実施例を更に発展させたものである。第1の実施例で
は、スキャベンジをする際、使用エリアを詰める位置
(以下、「基準位置」という)は、最上位アドレスか最
下位アドレスかのいずれかの位置であった。それを第2
の実施例では、そのように固定的に決められた位置とし
ないで、使用エリアのかたまり(以下「使用エリアブロ
ック」という)の内のどれか1つの位置を、基準位置と
したものである。
実施例を更に発展させたものである。第1の実施例で
は、スキャベンジをする際、使用エリアを詰める位置
(以下、「基準位置」という)は、最上位アドレスか最
下位アドレスかのいずれかの位置であった。それを第2
の実施例では、そのように固定的に決められた位置とし
ないで、使用エリアのかたまり(以下「使用エリアブロ
ック」という)の内のどれか1つの位置を、基準位置と
したものである。
【0029】次に、スキャベンジの基準位置の決め方を
説明する。例えば、第1の実施例と同様、図2(イ)の
ような状態のメモリMの空きエリア6に、要求エリアA
を取る場合について説明する。図3(イ)のように使用
エリア7に隣接して取るとすると、使用エリアブロック
は、使用エリア1,2からなる第1のブロックと、使用
エリア4,5からなる第2のブロックと、使用エリア6
B,7からなる第3のブロックとになる。
説明する。例えば、第1の実施例と同様、図2(イ)の
ような状態のメモリMの空きエリア6に、要求エリアA
を取る場合について説明する。図3(イ)のように使用
エリア7に隣接して取るとすると、使用エリアブロック
は、使用エリア1,2からなる第1のブロックと、使用
エリア4,5からなる第2のブロックと、使用エリア6
B,7からなる第3のブロックとになる。
【0030】次に、各ブロックを基準位置としてスキャ
ベンジしたと仮定し、それぞれデータ移動量を算出す
る。第1のブロックを基準位置としてスキャベンジした
場合は、図4(イ)の状態となり、第2のブロックを基
準位置としてスキャベンジした場合は、図5の状態とな
り、第3のブロックを基準位置としてスキャベンジした
場合は、図6の状態となる。使用エリアブロックがN個
あれば、N通りのデータ移動量が算出される。
ベンジしたと仮定し、それぞれデータ移動量を算出す
る。第1のブロックを基準位置としてスキャベンジした
場合は、図4(イ)の状態となり、第2のブロックを基
準位置としてスキャベンジした場合は、図5の状態とな
り、第3のブロックを基準位置としてスキャベンジした
場合は、図6の状態となる。使用エリアブロックがN個
あれば、N通りのデータ移動量が算出される。
【0031】他方、要求エリアAを図3(ロ)のように
使用エリア5に隣接して取るとした場合についても、同
様な演算をする。こちらでも、やはりN通りのデータ移
動量が算出されるから、合計2N通りのデータ移動量が
算出されることになる。それらを比較して、最小の値を
呈する場合を選択する。例えば、要求エリアAを図3
(イ)のような取り方で取って、第2のブロック(使用
エリア4,5)を基準位置とした場合に、スキャベンジ
のデータ移動量が最小であった場合、要求エリアAの取
り方は図3(イ)の取り方を採用する。そして、次にス
キャベンジする場合には、第2ブロック位置を基準位置
とする。
使用エリア5に隣接して取るとした場合についても、同
様な演算をする。こちらでも、やはりN通りのデータ移
動量が算出されるから、合計2N通りのデータ移動量が
算出されることになる。それらを比較して、最小の値を
呈する場合を選択する。例えば、要求エリアAを図3
(イ)のような取り方で取って、第2のブロック(使用
エリア4,5)を基準位置とした場合に、スキャベンジ
のデータ移動量が最小であった場合、要求エリアAの取
り方は図3(イ)の取り方を採用する。そして、次にス
キャベンジする場合には、第2ブロック位置を基準位置
とする。
【0032】なお、メモリMのどのアドレスも、等しく
スキャベンジの基準位置となり得るという扱いをするの
に伴い、メモリ内のどのアドレスも対等の地位とする処
置を講じる必要がある(第1の実施例では、最下位アド
レスと最上位アドレスとは、前または後に続くアドレス
がないという意味において、格別の地位を占めるアドレ
スであった)。
スキャベンジの基準位置となり得るという扱いをするの
に伴い、メモリ内のどのアドレスも対等の地位とする処
置を講じる必要がある(第1の実施例では、最下位アド
レスと最上位アドレスとは、前または後に続くアドレス
がないという意味において、格別の地位を占めるアドレ
スであった)。
【0033】そこで、図8に示すように、メモリMの最
上位アドレスの次のアドレスで指し示す番地は、最下位
アドレスで指し示す番地となるというようにして、リン
グ状に連続させる。なお、図8において、M0 〜M3 は
メモリMの各番地であり、M0 は最下位アドレスで指し
示される番地、M3 は最上位アドレスで指し示される番
地である。
上位アドレスの次のアドレスで指し示す番地は、最下位
アドレスで指し示す番地となるというようにして、リン
グ状に連続させる。なお、図8において、M0 〜M3 は
メモリMの各番地であり、M0 は最下位アドレスで指し
示される番地、M3 は最上位アドレスで指し示される番
地である。
【0034】図7は、最上位アドレスの次に最下位のア
ドレスにアクセスするようにするための一般的な構成で
ある。図7において、9はCPU(中央演算処理装
置)、10はアドレスデコーダ、A0 〜An-1 ,An+1
〜Am はアドレス信号、CSはチップセレクト信号、M
はメモリである。アドレスデコーダ10に入力されるア
ドレス信号の中から、An ビットの信号が省かれている
(デコードに際しては、An を無視する。言い換えれ
ば、「0」でも「1」であっても関係ないという扱いを
する。)ことにより、A0 〜An-1 の番地がリング状に
つながれる。次に、それを具体例で説明する。
ドレスにアクセスするようにするための一般的な構成で
ある。図7において、9はCPU(中央演算処理装
置)、10はアドレスデコーダ、A0 〜An-1 ,An+1
〜Am はアドレス信号、CSはチップセレクト信号、M
はメモリである。アドレスデコーダ10に入力されるア
ドレス信号の中から、An ビットの信号が省かれている
(デコードに際しては、An を無視する。言い換えれ
ば、「0」でも「1」であっても関係ないという扱いを
する。)ことにより、A0 〜An-1 の番地がリング状に
つながれる。次に、それを具体例で説明する。
【0035】図9は、第2の実施例でのアドレス信号
と、アクセスする番地との関係を示す図である。A0 と
A1 とが、図7のA0 〜An-1 に相当し、A2 が図7の
An に相当し、A3 が図7のAn+1 〜Am に相当する。
アドレスが、メモリMの最上位の番地M3 を示す「00
11」より、1つ進むと「0100」となる。しかし、
A2 の「1」は無視されるから、「000」となる。こ
れは最下位アドレス「0000」の時にA2 の「0」が
無視された「000」と同じであるから、結局、M0 番
地を指すことになる。かくして、リング状につながれ
る。
と、アクセスする番地との関係を示す図である。A0 と
A1 とが、図7のA0 〜An-1 に相当し、A2 が図7の
An に相当し、A3 が図7のAn+1 〜Am に相当する。
アドレスが、メモリMの最上位の番地M3 を示す「00
11」より、1つ進むと「0100」となる。しかし、
A2 の「1」は無視されるから、「000」となる。こ
れは最下位アドレス「0000」の時にA2 の「0」が
無視された「000」と同じであるから、結局、M0 番
地を指すことになる。かくして、リング状につながれ
る。
【0036】(第3の実施例)第3の実施例は、もうす
ぐ使用が終了するという解放予告信号が出されている場
合、そのエリアをも考慮して、タスクへのエリア割り当
てを行おうとするものである。
ぐ使用が終了するという解放予告信号が出されている場
合、そのエリアをも考慮して、タスクへのエリア割り当
てを行おうとするものである。
【0037】図10に、本発明の第3の実施例を説明す
るフローチャートを示す。ステップ1…或るタスクから
エリアAを要求されたら、要求の広さ以上の空きエリア
が、単独で存在しているか否かチェックする。
るフローチャートを示す。ステップ1…或るタスクから
エリアAを要求されたら、要求の広さ以上の空きエリア
が、単独で存在しているか否かチェックする。
【0038】ステップ2…存在していれば、その空きエ
リアの中に、上位アドレス側からとった方がいいのか下
位アドレス側から取った方がいいのかを検討して、有利
なとり方で取る。その検討は、要求エリアAを取った後
でスキャベンジすると仮定して、データ移動量を算出し
てみることであり、それが最小のものを有利と判断す
る。スキャベンジは、第1実施例のように、上位アドレ
ス側Uと下位アドレス側Dの2つを基準位置として行う
と決めてやってもよいし、第2実施例のように、任意の
使用エリアブロックを基準位置として行うと決めてやっ
てもよい。
リアの中に、上位アドレス側からとった方がいいのか下
位アドレス側から取った方がいいのかを検討して、有利
なとり方で取る。その検討は、要求エリアAを取った後
でスキャベンジすると仮定して、データ移動量を算出し
てみることであり、それが最小のものを有利と判断す
る。スキャベンジは、第1実施例のように、上位アドレ
ス側Uと下位アドレス側Dの2つを基準位置として行う
と決めてやってもよいし、第2実施例のように、任意の
使用エリアブロックを基準位置として行うと決めてやっ
てもよい。
【0039】ステップ3…単独の空きエリアでは要求エ
リアA以上の広さのものが存在しない場合には、空きエ
リアの合計が、要求エリアA以上あるか判断する。ステ
ップ4…合計しても要求エリアA以上なければ、もうじ
き使用を終了するという解放予告信号が出ている使用エ
リアがあるか否かチェックする。ステップ5…解放予告
信号が出ていなければ、要求エリアAを取れる見込みが
ないので、取得失敗信号を出す。この場合には、後に再
度、取得要求を出さなければならない。
リアA以上の広さのものが存在しない場合には、空きエ
リアの合計が、要求エリアA以上あるか判断する。ステ
ップ4…合計しても要求エリアA以上なければ、もうじ
き使用を終了するという解放予告信号が出ている使用エ
リアがあるか否かチェックする。ステップ5…解放予告
信号が出ていなければ、要求エリアAを取れる見込みが
ないので、取得失敗信号を出す。この場合には、後に再
度、取得要求を出さなければならない。
【0040】ステップ6…解放予告信号が出ている場合
には、現に存在する空きエリアの合計と解放予告されて
いる使用エリアとの合計が、要求エリアA以上の広さ有
るか否かチェックする。例えば、図2(イ)において、
空きエリア3,6,8を合計しても足りないような広さ
のエリアを要求された場合、使用エリア4について解放
予告信号が出ていれば、空きエリア3,6,8に使用エ
リア4を加えた広さが、要求エリア以上の広さあるか否
かチェックする。なお、解放予告信号が複数出されてい
れば、それに対応する複数の使用エリアを加える。無け
れば暫く待ったとしても取得出来ないから、ステップ5
に進む。
には、現に存在する空きエリアの合計と解放予告されて
いる使用エリアとの合計が、要求エリアA以上の広さ有
るか否かチェックする。例えば、図2(イ)において、
空きエリア3,6,8を合計しても足りないような広さ
のエリアを要求された場合、使用エリア4について解放
予告信号が出ていれば、空きエリア3,6,8に使用エ
リア4を加えた広さが、要求エリア以上の広さあるか否
かチェックする。なお、解放予告信号が複数出されてい
れば、それに対応する複数の使用エリアを加える。無け
れば暫く待ったとしても取得出来ないから、ステップ5
に進む。
【0041】ステップ7…解放予告されている使用エリ
アが1つ解放されるまで待つ。ステップ8…解放されて
現実に空きエリアとなったエリアと、今までの空きエリ
アとを合計したエリアが、要求エリアの広さになったか
どうかチェックする。もし、未だその広さに達していな
ければ、達するまで待つため、再びステップ7に戻る。
待てば要求エリアの広さに達することは、ステップ6の
チェックで、保証されている。
アが1つ解放されるまで待つ。ステップ8…解放されて
現実に空きエリアとなったエリアと、今までの空きエリ
アとを合計したエリアが、要求エリアの広さになったか
どうかチェックする。もし、未だその広さに達していな
ければ、達するまで待つため、再びステップ7に戻る。
待てば要求エリアの広さに達することは、ステップ6の
チェックで、保証されている。
【0042】ステップ9…この段階では、空きエリアを
合計すれば要求エリアの広さ以上になっているから、ス
キャベンジをして連続した空きエリアを作り出す。その
スキャベンジの仕方は、最も短時間で出来るやり方で行
う。最も短時間で出来るやり方とは、データ移動量が最
小のやり方のことである。それは、ステップ2での検討
と同様にして、見つけ出すことが出来る。
合計すれば要求エリアの広さ以上になっているから、ス
キャベンジをして連続した空きエリアを作り出す。その
スキャベンジの仕方は、最も短時間で出来るやり方で行
う。最も短時間で出来るやり方とは、データ移動量が最
小のやり方のことである。それは、ステップ2での検討
と同様にして、見つけ出すことが出来る。
【0043】ステップ10…前のステップで要求エリア
を取ることが出来る空きエリアが作り出されたから、そ
こに要求エリアを、下位アドレス側Dから取るか(図3
(イ)参照)、上位アドレス側Uから取るか(図3
(ロ)参照)して取る。その取り方は、ステップ2で検
討したのと同様に、次にスキャベンジすると仮定した場
合、最もデータ移動量がすくない取り方にする。以上の
ように、第3の実施例では、解放予告がされている使用
エリアをも考慮して、要求エリアの取得を行わせるの
で、エリアの取得要求を拒否して再度出させる回数が減
り、メモリ管理が効率的に行われる。
を取ることが出来る空きエリアが作り出されたから、そ
こに要求エリアを、下位アドレス側Dから取るか(図3
(イ)参照)、上位アドレス側Uから取るか(図3
(ロ)参照)して取る。その取り方は、ステップ2で検
討したのと同様に、次にスキャベンジすると仮定した場
合、最もデータ移動量がすくない取り方にする。以上の
ように、第3の実施例では、解放予告がされている使用
エリアをも考慮して、要求エリアの取得を行わせるの
で、エリアの取得要求を拒否して再度出させる回数が減
り、メモリ管理が効率的に行われる。
【0044】
【発明の効果】以上述べた如く、本発明のメモリ管理方
式によれば、スキャベンジが常に最小の時間で行われる
ので、メモリ管理を高速に行うことが出来る。また、解
放予告されている使用エリアをも考慮して、要求エリア
の取得を行わせた場合には、無駄な手続きを繰り返させ
ることがなくなるので、管理を効率よく行うことが出来
るようになる。
式によれば、スキャベンジが常に最小の時間で行われる
ので、メモリ管理を高速に行うことが出来る。また、解
放予告されている使用エリアをも考慮して、要求エリア
の取得を行わせた場合には、無駄な手続きを繰り返させ
ることがなくなるので、管理を効率よく行うことが出来
るようになる。
【図1】本発明の第1の実施例を説明するフローチャー
ト
ト
【図2】或る時点のメモリ状態と、或るタスクからの要
求エリアとを示す図
求エリアとを示す図
【図3】要求エリアの取得の方向を示す図
【図4】上位アドレス側および下位アドレス側からスキ
ャベンジを行ったメモリ状態を示す図
ャベンジを行ったメモリ状態を示す図
【図5】本発明の第2の実施例で検討するスキャベンジ
の仕方の1例を示す図
の仕方の1例を示す図
【図6】本発明の第2の実施例で検討するスキャベンジ
の仕方の1例を示す図
の仕方の1例を示す図
【図7】最上位アドレスの次に最下位のアドレスにアク
セスするようにするための一般的な構成
セスするようにするための一般的な構成
【図8】最上位アドレスの次に最下位のアドレスにアク
セスする状態を示す図
セスする状態を示す図
【図9】第2の実施例でのアドレス信号とアクセスする
番地との関係を示す図
番地との関係を示す図
【図10】本発明の第3の実施例を説明するフローチャ
ート
ート
1,2,4,5,7…使用エリア、3,6,8…空きエ
リア、9…CPU、10…アドレスデコーダ、6A…取
得エリア、6B…残り空きエリア、A…要求エリア、M
…メモリ、U…上位アドレス側、D…下位アドレス側、
リア、9…CPU、10…アドレスデコーダ、6A…取
得エリア、6B…残り空きエリア、A…要求エリア、M
…メモリ、U…上位アドレス側、D…下位アドレス側、
Claims (3)
- 【請求項1】 複数のタスクに共用されるメモリのメモ
リ管理方式において、空きエリアに要求エリアを下位ア
ドレス側から取得した第1の場合と上位アドレス側から
取得した第2の場合とを仮定し、それら各場合におい
て、メモリの最上位アドレスを基準位置としてスキャベ
ンジした時のデータ移動量と、最下位アドレスを基準位
置としてスキャベンジした時のデータ移動量とを算出
し、データ移動量が最小である取得の仕方で要求エリア
を取得することを特徴とするメモリ管理方式。 - 【請求項2】 複数のタスクに共用されるメモリのメモ
リ管理方式において、メモリの最上位番地の次には最下
位番地がアクセスされるようなアドレス構成にすると共
に、空きエリアに要求エリアを下位アドレス側から取得
した第1の場合と上位アドレス側から取得した第2の場
合とを仮定し、それら各場合において、全ての使用エリ
アブロックをスキャベンジの基準位置としてデータ移動
量を算出し、データ移動量が最小である取得の仕方で要
求エリアを取得することを特徴とするメモリ管理方式。 - 【請求項3】 複数のタスクに共用されるメモリのメモ
リ管理方式において、空きエリアだけでは要求エリアを
満たさない場合には、解放予告されている使用エリアを
も空きエリアに含めて取得可能か否かを判断し、取得可
能であれば現実に解放されるのを待って取得せしめるこ
とを特徴とするメモリ管理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20391591A JPH0528028A (ja) | 1991-07-18 | 1991-07-18 | メモリ管理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20391591A JPH0528028A (ja) | 1991-07-18 | 1991-07-18 | メモリ管理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0528028A true JPH0528028A (ja) | 1993-02-05 |
Family
ID=16481805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20391591A Pending JPH0528028A (ja) | 1991-07-18 | 1991-07-18 | メモリ管理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0528028A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006252153A (ja) * | 2005-03-10 | 2006-09-21 | Canon Inc | データ処理装置 |
-
1991
- 1991-07-18 JP JP20391591A patent/JPH0528028A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006252153A (ja) * | 2005-03-10 | 2006-09-21 | Canon Inc | データ処理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68927375T2 (de) | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem | |
CN1728118B (zh) | 资源分配管理方法和设备 | |
JPH0551942B2 (ja) | ||
KR960012357B1 (ko) | 자원의 이용가능도에 의거한 아비트레이션 방법 및 장치 | |
JPH034940B2 (ja) | ||
US5745757A (en) | Multiprocessor system with microprogrammed means for dispatching processes to processors | |
US6754658B1 (en) | Database server processing system, method, program and program storage device | |
JPH0528028A (ja) | メモリ管理方式 | |
JP2874571B2 (ja) | メモリ管理装置 | |
JP2007241922A (ja) | 共有資源利用のための調停方法及びその調停装置 | |
CN118377365B (zh) | 基于核间通信的数据处理方法、装置、芯片及电子设备 | |
JPS6155704B2 (ja) | ||
US6504549B1 (en) | Apparatus to arbitrate among clients requesting memory access in a video system and method thereof | |
JPS5858707B2 (ja) | アクセス制御装置 | |
CN111858011A (zh) | 一种多数据流任务处理方法、装置、设备及存储介质 | |
JP2613931B2 (ja) | バッファ制御方式 | |
JPS62233825A (ja) | 共有画像バツフア自動最適化使用割り付け方式 | |
US6996646B2 (en) | Bus system | |
JPH04229373A (ja) | 画像情報アクセス方式 | |
CN113127397A (zh) | 设备层级结构的处理方法、装置、电子设备及存储介质 | |
JPH02304615A (ja) | 並列ディスク制御バッファの割当て方式 | |
US20060048158A1 (en) | Methods and apparatus for aging a command | |
JPS59220843A (ja) | 動的プログラム・ロ−ド方式 | |
JPH05342135A (ja) | ファイル装置 | |
JPH03142551A (ja) | 共通バス制御方式 |