JP2014238767A - メモリ制御装置、メモリ制御方法及びプログラム - Google Patents
メモリ制御装置、メモリ制御方法及びプログラム Download PDFInfo
- Publication number
- JP2014238767A JP2014238767A JP2013121897A JP2013121897A JP2014238767A JP 2014238767 A JP2014238767 A JP 2014238767A JP 2013121897 A JP2013121897 A JP 2013121897A JP 2013121897 A JP2013121897 A JP 2013121897A JP 2014238767 A JP2014238767 A JP 2014238767A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- memory allocation
- information
- area
- secured
- 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
Links
Images
Abstract
Description
以下、本発明を各種電子機器に組み込まれる汎用のマイクロコンピュータシステムの一部に適用した第1の実施形態について図面を参照して詳細に説明する。
以下図6乃至図8に示す処理は、CPU11がここでは図示しないプログラムメモリに記憶されている動作プログラムを読出し、上記メモリ12をワークメモリとして使用することで実行する内容である。
図7においては、処理当初にメモリ確保情報テーブルレジスタ12Bで空いているものがあるか否かを判断する(ステップS201)。サイズが「0」となっているテーブルは、使用していないテーブルとして取扱う。
図9(1)はメモリ12の初期状態を示し、各レジスタ12A〜12Dが揃ってクリアされている状態を示す。
次に10KBのメモリ領域を確保する場合、CPU11は図7の上記ステップS201を介して上記ステップS202で空きのメモリ確保情報番号を示す変数aに空いているテーブルの番号「2」を設定する。
空き容量Δ=メモリ確保番号nのメモリアドレス−メモリ確保番号mのメモリアドレス
−メモリ確保番号mのサイズ …(1)
として算出する(ステップS213)。
空き容量Δa=メモリ確保領域開始アドレスA+メモリ領域サイズW
−メモリ確保番号mのメモリアドレス−メモリ確保番号mのサイズ …(2)
空き容量Δb=先頭メモリ確保情報のメモリ確保番号のメモリアドレス
−メモリ確保領域開始アドレスA …(3)
として、ΔaとΔbのより大きい方を空き容量Δとする。
メモリ確保情報テーブルレジスタ12Bのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ12Bのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ12Bのn番目のテーブルの前のメモリ確保番号(本来はm)に変数aの値を設定する。
「メモリ確保領域m→メモリ確保領域n」の状態から、
「メモリ確保領域m→メモリ確保領域a→メモリ確保領域n」の状態となる。
上記と同様にして図9(4)、図9(5)、図10(1)で示すようにメモリ確保領域12Eのアドレス位置を順次更新しながら30KB分、40KB分、10KB分の領域を順次確保していく。
アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
サイズ =今回のメモリ確保サイズS
前のメモリ確保番号=m
次のメモリ確保番号=0(メモリ確保領域12Eの最後尾)
として設定する。
アドレス=メモリ確保領域開始アドレスA
サイズ =今回のメモリ確保サイズS
前のメモリ確保番号=0(先頭)
次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ12Bのn番目のテーブルの前のメモリ確保番号(本来は0)に変数aの値を設定する。
図8においては、処理当初にメモリ確保情報テーブルレジスタ12Bでメモリアドレスを検索し、与えられたメモリ解放アドレスに該当するメモリ確保番号rを取得する(ステップS301)。ここでは、メモリ確保領域12Eのアドレス「0x05000」番地に関するメモリ確保情報テーブルレジスタ12Bの「2」番目のテーブルが該当するため、メモリ確保番号を示す変数rは「2」となる。
その後、前のメモリ解放情報レジスタ12Dの内容を参照し、メモリ確保番号rで示される領域のサイズの方が大きいか否かを判断する(ステップS302)。
・メモリ確保番号rの前のメモリ確保番号をt、次のメモリ確保番号をuとして、
・メモリ確保番号rのテーブルのクリア
・メモリ確保番号tの次のメモリ加来真穂番号=u
・メモリ確保番号uの前のメモリ確保番号=t
の各処理を一括して実行し、メモリ確保領域12Eのアドレス「0x05000」番地から10KB分のメモリ解放が実行される。
図8においては、処理当初にメモリ確保情報テーブルレジスタ12Bでメモリアドレスを検索し、与えられたメモリ解放アドレスに該当するメモリ確保番号rとして「4」を取得する(ステップS301)。
・メモリ確保番号「4」の前のメモリ確保番号を3、次のメモリ確保番号を5として、
・メモリ確保番号「4」のテーブルのクリア
・メモリ確保番号3の次のメモリ確保番号=5
・メモリ確保番号5の前のメモリ確保番号=3
の各処理を一括して実行し、メモリ確保領域12Eのアドレス「0x0F000」番地から40KB分のメモリ解放が実行される。
図7において、上記ステップS201でメモリ確保情報テーブルレジスタ12Bで空いているテーブルがあると判断すると、CPU11は次いで上記ステップS202で空きのメモリ確保情報番号を示す変数aに例えば先頭側の空いているテーブルの番号「2」を設定する。
・アドレス=メモリ確保番号m(=「1」)のアドレス
+メモリ確保番号m(=「1」)のサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m(=「1」)
・次のメモリ確保番号=n(=「3」)
とし、さらにメモリ確保情報テーブルレジスタ12Bのn(=「3」)番目のテーブルの前のメモリ確保番号に変数aの値「2」を設定する。
図7において、上記ステップS201でメモリ確保情報テーブルレジスタ12Bで空いているテーブルがあると判断すると、CPU11は次いで上記ステップS202で空きのメモリ確保情報番号を示す変数aに例えば先頭側の空いているテーブルの番号「4」を設定する。
・アドレス=メモリ確保番号m(=「3」)のアドレス
+メモリ確保番号m(=「3」)のサイズ
・サイズ =今回のメモリ確保サイズS(=20KB)
・前のメモリ確保番号=m(=「3」)
・次のメモリ確保番号=n(=「5」)
とし、さらにメモリ確保情報テーブルレジスタ12Bのn(=「5」)番目のテーブルの前のメモリ確保番号に変数aの値「4」を設定する。
以下、本発明を各種電子機器に組み込まれる汎用のマイクロコンピュータシステムの一部に適用した第2の実施形態について図面を参照して詳細に説明する。
図12(B)に示すように上記第2先頭メモリ確保番号レジスタ22Bは、探索方向変更アドレス以降の先頭メモリ確保番号を保持する。
図12(C)に示すように上記最後尾メモリ確保情報レジスタ22Cは、最後尾のメモリ確保番号を保持する。
以下図17乃至図21に示す処理は、CPU21がここでは図示しないプログラムメモリに記憶されている動作プログラムを読出し、上記メモリ22をワークメモリとして使用することで実行する内容である。
ここで空いているテーブルがないと判断した場合には、メモリ確保の数が多すぎてあらたな確保を行なうことができず、確保の失敗(エラー)として、この図18及び図19の処理を終了する。
メモリ確保情報テーブルレジスタ22Dの1番目のテーブルについて、
・アドレス=メモリ確保領域22Gの先頭アドレスA
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=0
とすると共に、前のメモリ確保情報レジスタ22Eの値、先頭メモリ確保番号レジスタ22Aの値、及び最後尾メモリ確保情報レジスタ22Cの値をいずれも「1」とする。
(I:メモリ確保番号mのメモリアドレスが探索変更アドレスBよりも小さい場合)
(I-1:次のメモリ確保番号nが「0」(データがなく、メモリ番号mが最後尾)の場合)
空き容量Δ=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−メモリ確保番号mのメモリアドレス−メモリ確保番号mのサイズ
…(4-1)
(I-2:次のメモリ確保番号nが探索方向変更アドレスBよりも大きい場合)
空き容量Δa=探索方向変更アドレスB−メモリ確保番号mのメモリアドレス
−メモリ確保番号mのサイズ
空き容量Δb=先頭メモリ確保番号のメモリアドレス−メモリ確保領域開始アドレスA
上記ΔaとΔbのうちの大きい方を空き容量Δとする …(4-2)
(I-3:上記以外)
空き容量Δ=メモリ確保番号nのメモリアドレス−メモリ確保番号mのメモリアドレス
−メモリ確保番号mのサイズ …(4-3)
(II:メモリ確保番号mのメモリアドレスが探索変更アドレスB以上の場合)
(II-1:次のメモリ確保番号nが「0」(データがなく、メモリ番号mが最後尾)の場合)
空き容量Δ=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−メモリ確保番号mのメモリアドレス−メモリ確保番号mのサイズ
…(4-4)
(II-2:上記以外)
空き容量Δ=メモリ確保番号nのメモリアドレス−メモリ確保番号mのメモリアドレス
−メモリ確保番号mのサイズ …(4-5)
として算出する(ステップS513)。
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ22Dのn番目の前のメモリ確保番号(本来はm)に変数aの値を設定する。
「メモリ確保領域m→メモリ確保領域n」の状態から、
「メモリ確保領域m→メモリ確保領域a→メモリ確保領域n」の状態となる。
(III:上記式(4−1)、(4−4)の場合)
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=0(最後尾)
とする。
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0(先頭)
・次のメモリ確保番号=先頭メモリ確保番号レジスタ22Aのメモリ確保番号
とし、さらにメモリ確保情報テーブルレジスタ22Dの番号を先頭メモリ確保番号レジスタ22Aのメモリ確保番号とした情報の前のメモリ確保番号(本来は0)に変数aの値を設定する。
(VI-1:上記空き容量Δaの方が同Δbより大きい場合)
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ22Dのn番目の前のメモリ確保番号(本来はm)に変数aの値を設定する。
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=先頭メモリ確保番号レジスタ22Aの値
とし、さらにメモリ確保情報テーブルレジスタ22Dの番号を先頭メモリ確保番号レジスタ22Aのメモリ確保番号とした情報の前のメモリ確保番号(本来は0)に変数aの値を設定する。
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ22Dのn番目の前のメモリ確保番号(本来はm)に変数aの値を設定する。
(VII-1:次のメモリ確保番号nが「0」(データがなく、メモリ番号mが最後尾)の場合)
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来は0)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=0
とする。
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来はn)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス+メモリ確保番号mのサイズ
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=n
とし、さらにメモリ確保情報テーブルレジスタ22Dのn番目の前のメモリ確保番号(本来はm)に変数aの値を設定する。
図20は、大きいサイズ用のメモリ確保の処理内容を示すフローチャートである。その処理当初に、CPU21はメモリ確保情報テーブルレジスタ22Dで空いているものがあるか否かを判断する(ステップS601)。サイズが「0」となっているテーブルは、使用していないテーブルとして取扱う。
ここで空いているテーブルがないと判断した場合には、メモリ確保の数が多すぎてあらたな確保を行なうことができないため、確保の失敗(エラー)として、この図20の処理を終了する。
メモリ確保情報テーブルレジスタ22Dの1番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=0
とすると共に、
前のメモリ確保番号=1
先頭メモリ確保番号=1
最後尾メモリ確保番号=1
探索方向変更アドレス以降の先頭メモリ確保番号=1
とした上で、今回確保したアドレスをCPU21に返して、実際のメモリ確保を実行する。
(VIII:最後尾メモリ確保番号が「0」の(1つも確保していない)場合)
空き容量Δ=メモリ確保領域のサイズWとする。
(IX-1:前のメモリ確保情報pが「0」ではない場合)
空き容量Δa=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−メモリ確保番号mのアドレス−メモリ確保番号mのサイズ
Δb=メモリ確保番号mのアドレス−メモリ確保番号pのアドレス
−メモリ確保番号pのサイズ
としてΔaとΔbの大きい方を空き容量Δとする。
空き容量Δa=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−メモリ確保番号mのアドレス−メモリ確保番号mのサイズ
Δb=メモリ確保番号mのアドレス−メモリ確保領域開始アドレスA
としてΔaとΔbの大きい方を空き容量Δとする。
空き容量Δ=メモリ確保番号mのアドレス−メモリ確保領域開始アドレスA
とする。
空き容量Δ=メモリ確保番号mのアドレス−メモリ確保番号pのアドレス
−メモリ確保番号pのサイズ
とする。
(XII:最後尾メモリ確保番号が「0」の(1つも確保していない)場合)
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
・ −今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=0
とする。
(XIII-1:メモリ確保番号pが「0」ではない場合)
(XIII-1-1:上記IX-1で空き容量Δaの方が空き容量Δbよりも大きい場合)
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来は0)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=0
とする。
メモリ確保情報テーブルレジスタ22Dのp番目のテーブルの次のメモリ確保番号(本来はm)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=p
・次のメモリ確保番号=m
とし、さらにメモリ確保情報テーブルレジスタ22Dのm番目の前のメモリ確保番号(本来はp)に変数aの値を設定する。
(XIII-2-1:上記IX-1で空き容量Δaの方が空き容量Δbよりも大きい場合)
メモリ確保情報テーブルレジスタ22Dのm番目のテーブルの次のメモリ確保番号(本来は0)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保領域開始アドレスA+メモリ確保領域のサイズW
−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=m
・次のメモリ確保番号=0
とする。
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=m
とし、メモリ確保情報テーブルレジスタ22Dのm番目の前のメモリ確保番号(本来は0)に変数aの値を設定する。
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=0
・次のメモリ確保番号=m
とし、メモリ確保情報テーブルレジスタ22Dのm番目の前のメモリ確保番号(本来は0)に変数aの値を設定する。
空き容量Δ=メモリ確保番号mのアドレス−メモリ確保番号pのアドレス
−メモリ確保番号pのサイズ
とし、メモリ確保情報テーブルレジスタ22Dのp番目のテーブルの次のメモリ確保番号(本来はm)に変数aの値を設定し、
メモリ確保情報テーブルレジスタ22Dのa番目のテーブルについて、
・アドレス=メモリ確保番号mのアドレス−今回のメモリ確保サイズS
・サイズ =今回のメモリ確保サイズS
・前のメモリ確保番号=p
・次のメモリ確保番号=m
とし、さらにメモリ確保情報テーブルレジスタ22Dのm番目の前のメモリ確保番号(本来はp)に変数aの値を設定する。
「メモリ確保番号p→メモリ確保番号m」から、
「メモリ確保番号p→メモリ確保番号a→メモリ確保番号m」となる。
上述した如く、確保しようとするデータの領域サイズが予め設定された容量より大きいと判断した場合には、常にメモリ確保領域22Gの最後尾から検索することで、小さい容量で確保されたメモリ領域から離れたアドレス位置から探索できるため、迅速にメモリ確保できる可能性を高めることができる。
図21においては、処理当初にメモリ確保情報テーブルレジスタ22Dでメモリアドレスを検索し、与えられたメモリ解放アドレスに該当するメモリ確保番号rを取得する(ステップS701)。
・メモリ確保番号rの前のメモリ確保番号をt、次のメモリ確保番号をuとして、
・メモリ確保番号rのテーブルのクリア
・メモリ確保番号tの次のメモリ確保番号=u
・メモリ確保番号uの前のメモリ確保番号=t
の各処理を一括して実行し、今回のメモリ確保領域22Gのメモリ確保番号rに該当するメモリ確保領域の解放が実行される。
請求項1記載の発明は、データを確保するための領域を有するメモリと、上記メモリに確保されたデータに関するアクセス単位の情報をテーブル化して保持する情報テーブル保持手段と、上記メモリで直前に確保したデータの情報を保持する前確保情報保持手段と、上記メモリで直前に解放したデータの情報を保持する前解放情報保持手段と、上記情報テーブル保持手段の保持するテーブルを参照し、上記前確保情報保持手段及び上記前解放情報保持手段の各保持内容に基づいて、次に上記メモリにデータを確保する領域を探索するメモリ制御手段とを具備したことを特徴とする。
Claims (9)
- データを確保するための領域を有するメモリと、
上記メモリに確保されたデータに関するアクセス単位の情報をテーブル化して保持する情報テーブル保持手段と、
上記メモリで直前に確保したデータの情報を保持する前確保情報保持手段と、
上記メモリで直前に解放したデータの情報を保持する前解放情報保持手段と、
上記情報テーブル保持手段の保持するテーブルを参照し、上記前確保情報保持手段及び上記前解放情報保持手段の各保持内容に基づいて、次に上記メモリにデータを確保する領域を探索するメモリ制御手段と
を具備したことを特徴とするメモリ制御装置。 - 上記メモリ制御手段は、確保しようとする領域が予め設定したサイズより大きいか否かを判断し、予め設定したサイズより大きくないと判断した場合には、上記メモリの一方の端部から所定の範囲内を優先し、上記前確保情報保持手段及び上記前解放情報保持手段の各保持内容に基づいて次にデータを確保する領域を探索し、予め設定したサイズより大きいと判断した場合には、上記メモリの他方の端部から次にデータを確保する領域を探索することを特徴とする請求項1記載のメモリ制御装置。
- 上記情報テーブル保持手段は、上記メモリ内においてデータを確保した領域の先頭アドレスと、確保したデータのサイズと、当該確保したデータの前に確保した情報テーブルの番号と、当該確保したデータの次に確保した情報テーブルの番号とを保持することを特徴とする請求項1または2記載のメモリ制御装置。
- 上記前確保情報保持手段は、上記メモリで直前に確保したデータの情報をテーブル化して保持する上記情報テーブル保持手段のテーブル番号を保持することを特徴とする請求項1または2記載のメモリ制御装置。
- 上記前解放情報保持手段は、上記メモリで直前に解放したデータの情報をテーブル化して保持していた上記情報テーブル保持手段のテーブル番号の前に確保した情報テーブルの番号、または次に確保した情報テーブルの番号のいずれか一方と、解放したデータの最大サイズとを保持することを特徴とする請求項1または2記載のメモリ制御装置。
- データを確保するための領域を有するメモリを備えた装置でのメモリ制御方法であって、
上記メモリに確保されたデータに関するアクセス単位の情報をテーブル化して保持させる情報テーブル保持工程と、
上記メモリで直前に確保したデータの情報を保持させる前確保情報保持工程と、
上記メモリで直前に解放したデータの情報を保持させる前解放情報保持工程と、
上記情報テーブル保持工程で保持したテーブルを参照し、上記前確保情報保持工程及び上記前解放情報保持工程での各保持内容に基づいて、次に上記メモリにデータを確保する領域を探索するメモリ制御工程と
を有したことを特徴とするメモリ制御方法。 - 上記メモリ制御工程は、確保しようとする領域が予め設定したサイズより大きいか否かを判断し、予め設定したサイズより大きくないと判断した場合には、上記メモリの一方の端部から所定の範囲内を優先し、上記前確保情報保持工程及び上記前解放情報保持工程での各保持内容に基づいて次にデータを確保する領域を探索し、予め設定したサイズより大きいと判断した場合には、上記メモリの他方の端部から次にデータを確保する領域を探索することを特徴とする請求項6記載のメモリ制御方法。
- データを確保するための領域を有するメモリを備えた装置が内蔵したコンピュータが実行するプログラムであって、
上記コンピュータを、
上記メモリに確保されたデータに関するアクセス単位の情報をテーブル化して保持する情報テーブル保持手段、
上記メモリで直前に確保したデータの情報を保持する前確保情報保持手段、
上記メモリで直前に解放したデータの情報を保持する前解放情報保持手段、及び
上記情報テーブル保持手段の保持するテーブルを参照し、上記前確保情報保持手段及び上記前解放情報保持手段の各保持内容に基づいて、次に上記メモリにデータを確保する領域を探索するメモリ制御手段
として機能させることを特徴とするプログラム。 - 上記メモリ制御手段は、確保しようとする領域が予め設定したサイズより大きいか否かを判断し、予め設定したサイズより大きくないと判断した場合には、上記メモリの一方の端部から所定の範囲内を優先し、上記前確保情報保持手段及び上記前解放情報保持手段の各保持内容に基づいて次にデータを確保する領域を探索し、予め設定したサイズより大きいと判断した場合には、上記メモリの他方の端部から次にデータを確保する領域を探索することを特徴とする請求項8記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013121897A JP6155867B2 (ja) | 2013-06-10 | 2013-06-10 | メモリ制御装置、メモリ制御方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013121897A JP6155867B2 (ja) | 2013-06-10 | 2013-06-10 | メモリ制御装置、メモリ制御方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014238767A true JP2014238767A (ja) | 2014-12-18 |
JP2014238767A5 JP2014238767A5 (ja) | 2016-05-26 |
JP6155867B2 JP6155867B2 (ja) | 2017-07-05 |
Family
ID=52135864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013121897A Expired - Fee Related JP6155867B2 (ja) | 2013-06-10 | 2013-06-10 | メモリ制御装置、メモリ制御方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6155867B2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05158784A (ja) * | 1991-12-03 | 1993-06-25 | Fujitsu Ltd | メモリの獲得・解放方法 |
JPH0991195A (ja) * | 1995-09-25 | 1997-04-04 | Kawasaki Steel Corp | ブロックメモリ管理装置 |
JP2000163309A (ja) * | 1998-11-24 | 2000-06-16 | Nec Corp | メモリ管理方法およびメモリ管理装置、並びに記録媒体 |
JP2000311110A (ja) * | 1999-04-28 | 2000-11-07 | Nec Corp | メモリ管理装置 |
JP2005157714A (ja) * | 2003-11-26 | 2005-06-16 | Kyocera Mita Corp | メモリ管理システム |
-
2013
- 2013-06-10 JP JP2013121897A patent/JP6155867B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05158784A (ja) * | 1991-12-03 | 1993-06-25 | Fujitsu Ltd | メモリの獲得・解放方法 |
JPH0991195A (ja) * | 1995-09-25 | 1997-04-04 | Kawasaki Steel Corp | ブロックメモリ管理装置 |
JP2000163309A (ja) * | 1998-11-24 | 2000-06-16 | Nec Corp | メモリ管理方法およびメモリ管理装置、並びに記録媒体 |
JP2000311110A (ja) * | 1999-04-28 | 2000-11-07 | Nec Corp | メモリ管理装置 |
JP2005157714A (ja) * | 2003-11-26 | 2005-06-16 | Kyocera Mita Corp | メモリ管理システム |
Also Published As
Publication number | Publication date |
---|---|
JP6155867B2 (ja) | 2017-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353586B2 (en) | Memory device and host device | |
US20140181378A1 (en) | Control device, control method, and program | |
JP4758794B2 (ja) | メモリ領域割り当て制御装置、メモリ領域割り当て制御プログラム、及びメモリ領域割り当て制御方法 | |
CN109189323B (zh) | 扩容方法及设备 | |
JP2006277737A (ja) | アドレス予測機能をもつ不揮発性記憶装置 | |
CN109447253B (zh) | 显存分配的方法、装置、计算设备及计算机存储介质 | |
CN108196870A (zh) | 升级方法及装置 | |
CN109508235B (zh) | 一种内存池管理方法、装置及计算机可读存储介质 | |
JP2006294023A (ja) | ファイルシステム管理装置及び方法 | |
US20120011166A1 (en) | Skip list generation | |
JP5849794B2 (ja) | ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム | |
JP6155867B2 (ja) | メモリ制御装置、メモリ制御方法及びプログラム | |
CN106293498B (zh) | 一种数据拷贝的方法及设备 | |
US11782637B2 (en) | Prefetching metadata in a storage system | |
US20160139959A1 (en) | Information processing system, method and medium | |
US20120136871A1 (en) | Skip list generation | |
US20190155657A1 (en) | Resource assignment method using cda protocol in distributed processing environment and distributed processing device applying the same | |
US7441093B2 (en) | Segmentation management using a rolling window technique | |
JP2006079463A (ja) | 時系列データ記録用バッファ管理方法、装置、システムおよびプログラム | |
WO2014203315A1 (ja) | 情報処理装置、制御回路、制御プログラム、及び制御方法 | |
CN111913812B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114996014A (zh) | 基于ion分配器的内存分配方法、装置和电子设备 | |
CN110659312B (zh) | 数据处理的方法、装置、设备和计算机存储介质 | |
JP4410271B2 (ja) | メモリ制御装置 | |
EP2085886A1 (en) | Memory management device applied to shared-memory multiprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160404 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160404 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170131 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170303 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170509 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170522 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6155867 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |