[go: up one dir, main page]

JP5270924B2 - 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 - Google Patents

固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 Download PDF

Info

Publication number
JP5270924B2
JP5270924B2 JP2008018788A JP2008018788A JP5270924B2 JP 5270924 B2 JP5270924 B2 JP 5270924B2 JP 2008018788 A JP2008018788 A JP 2008018788A JP 2008018788 A JP2008018788 A JP 2008018788A JP 5270924 B2 JP5270924 B2 JP 5270924B2
Authority
JP
Japan
Prior art keywords
memory block
sub
block
memory
offset
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.)
Expired - Fee Related
Application number
JP2008018788A
Other languages
English (en)
Other versions
JP2009181268A (ja
Inventor
高 剛 小
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008018788A priority Critical patent/JP5270924B2/ja
Priority to US12/358,370 priority patent/US8429354B2/en
Publication of JP2009181268A publication Critical patent/JP2009181268A/ja
Application granted granted Critical
Publication of JP5270924B2 publication Critical patent/JP5270924B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法に関し、特に、マルチプロセッサを備える固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法に関する。
近年、複数のプロセッサとメモリから構成されるマルチプロセッサアーキテクチャを採用するマルチプロセッサシステムが知られている。
マルチプロセッサアーキテクチャでは、テストアンドセット命令を用いた排他制御用のメモリ領域として1バイト程度の小さなメモリブロックを動的に割り当てる必要がある。
従来のマルチプロセッサシステムでは、割り当てられるメモリブロックを固定長とし、メモリブロック管理領域として「排他制御用のメモリ領域」と「未使用領域の先頭へのポインタ」の組及び「次の未使用領域へのポインタ」と「アプリケーションに割り当てられるメモリ領域の実態」の組を設定し、アプリケーションに割り当てられる固定長のメモリブロックを未使用領域のポインタと接続するリンクリストによって管理される。
しかし、このようなマルチプロセッサシステムでは、アプリケーションに割り当てられるメモリブロック毎にメモリブロック管理領域が設定されるので、1バイト程度の小さなメモリブロックに記憶できないメモリアドレスがメモリ領域に設定され、メモリの使用効率が低下するという問題がある。
これに対して、特許文献1の固定長メモリブロック管理方法が知られている。特許文献1のメモリブロック管理方法は、ビットマップによって管理する。
しかし、特許文献1の固定長メモリブロック管理方法では、ビットマップを用いて空き領域の探索が行われるので、メモリブロック割当処理に時間を要し、マルチプロセッサシステムの処理効率が低下するという問題がある。
一方、従来のマルチプロセッサシステムでは、複数のプロセッサが同時にメモリブロックにアクセスすることを防ぐために、各プロセッサは、メモリブロック管理領域の排他的なアクセス権(以下、「ロック」という)を獲得する。
しかし、このようなマルチプロセッサシステムでは、メモリブロック管理領域全体に対してロックを獲得するので、一方のプロセッサによってロックが獲得された場合には、他方のプロセッサはロックが解除されるまで待機し、マルチプロセッサシステムの処理効率が低下するという問題がある。
また、このようなマルチプロセッサシステムでは、メモリブロック管理領域を動的に確保するときにメモリブロック管理領域の開始アドレスが確定せず、メモリブロックを解放するときにもメモリブロック管理領域を設定する必要があるので、アプリケーション側の設定項目が増加し、アプリケーションの負荷が増加するという問題がある。
特開平8−221317号公報
本発明の目的は、アプリケーションの負荷を増加させることなく、メモリの使用効率及びマルチプロセッサシステムの処理効率を向上させることである。
本発明の第1態様によれば、
アプリケーションを実行する複数のプロセッサと、
前記複数のプロセッサに共有され、アプリケーションプログラム、初期化プログラム及びアクセス権割当プログラムを記憶するメモリと、を備え、
前記各プロセッサは、
前記アプリケーションプログラムを起動することによって前記アプリケーションを実行するアプリケーション実行手段と、
前記初期化プログラムを起動することによって、前記メモリに複数のサブブロックを含むメモリブロック管理領域を設定する初期化手段と、
前記アクセス権割当プログラムを起動することによって、前記初期化手段によって設定されたサブブロックのメモリブロックのアクセス権を前記アプリケーション実行手段に割り当てるアクセス権割当手段と、を有することを特徴とする固定長メモリブロック管理装置
が提供される。
本発明の第2態様によれば、
アプリケーションを実行する複数のプロセッサと、前記複数のプロセッサに共有されるメモリを備えるマルチプロセッサシステムの固定長メモリブロック管理装置の制御方法であって、
前記メモリに複数のサブブロックを含むメモリブロック管理領域を設定し、
前記複数のサブブロックうちの所定のサブブロックの排他制御権を獲得し、
当該サブブロックのメモリブロックのアクセス権を前記アプリケーションに割り当てることを特徴とする固定長メモリブロック管理装置の制御方法
が提供される。
本発明によれば、アプリケーションの負荷を増加させることなく、メモリの使用効率及びマルチプロセッサシステムの処理効率を向上させることができる。
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
はじめに、本発明の実施例1について説明する。
はじめに、本発明の実施例1に係る固定長メモリブロック管理装置100の構成について説明する。
図1は、本発明の実施例1に係る固定長メモリブロック管理装置100の構成を示すブロック図である。
本発明の実施例1に係る固定長メモリブロック管理装置100は、複数のプロセッサ101及びメモリ102を備えている。
各プロセッサ101は、メモリ102に記憶されたアプリケーションプログラム102Aを起動することによってアプリケーション実行手段101Aを実現し、初期化プログラム102Bを起動することによって初期化手段101Bを実現し、アクセス権割当プログラム102Cを起動することによってアクセス権割当手段101Cを実現し、アクセス権解放プログラム102Dを起動することによってアクセス権解放手段101Dを実現する。 各プロセッサ101は、固有のプロセッサ識別情報P0〜Pxを有する。
アプリケーション実行手段101Aは、アプリケーションプログラム102Aに従って、所定の処理を行うためのアプリケーションを実行する。
初期化手段101Bは、初期化プログラム102Bに従って、メモリ102に複数のサブブロックを含むメモリブロック管理領域を設定するための初期化処理を行う。
アクセス権割当手段101Cは、アクセス権割当プログラム102Cに従って、メモリブロックのアクセス権をアプリケーション実行手段101Aに割り当てるアクセス権割当処理を行う。
アクセス権解放手段101Dは、アクセス権解放プログラム102Dに従って、アプリケーション実行手段101Aによって指定されたメモリブロックのアクセス権を解放するアクセス権解放処理を行う。
メモリ102は、各プロセッサ101によって共有されている。メモリ102は、アプリケーションプログラム102A、初期化プログラム102B、アクセス権割当プログラム102C及びアクセス権解放プログラム102Dを記憶する。メモリ102は、各プロセッサ101のワーキングメモリとしても機能する。
図2は、本発明の実施例1に係るメモリ102に設定されるメモリブロック管理領域の構造を示す概略図である。
メモリブロック管理領域は、連続したメモリ領域に設定された複数のサブブロック1〜nを含む。例えば、各サブブロックの容量(以下、「サブブロックサイズ」という)は256バイトである。
各サブブロック1〜nは、アプリケーション実行手段101Aによって指定されたサブブロックサイズの整数倍の値を開始アドレスとする。各サブブロック1〜nは、排他制御権用メモリブロック、第1オフセット用メモリブロック、第2オフセット用メモリブロック及び複数の割当用メモリブロック1〜mを有する。例えば、各メモリブロックの容量(以下、「メモリブロックサイズ」という)は1バイトである。
排他制御権用メモリブロックは、排他制御権が設定されているか否かを示す値が設定されるメモリブロックである。サブブロック1の排他制御権用メモリブロックに排他制御権が与えられていることを示す値(例えば、“1”)が設定されているときには、各プロセッサ101の各手段101A〜Dの何れかにサブブロックの排他制御権が与えられる。排他制御権が設定されている間は、排他制御権を獲得したプロセッサ101の各手段101A〜Dの何れか1つのアクセスのみが許可される。
第1オフセット用メモリブロックは、次のサブブロックの開始アドレスに対するオフセット(以下、「第1オフセット」という)が設定されるメモリブロックである。
第2オフセット用メモリブロックは、アプリケーション実行手段101Aにアクセス権が割り当てられていないメモリブロックの開始アドレスに対するオフセット(以下、「第2オフセット」という)が設定されるメモリブロックである。
割当用メモリブロック1〜mは、アクセス権が割り当てられたアプリケーション実行手段101Aによってアクセスされるメモリブロックである。
次に、本発明の実施例1に係る固定長メモリブロック管理装置100の動作について説明する。なお、本発明の実施例1では、固定長メモリブロック管理装置100が3つのプロセッサ101(P0〜P2)を備え、サブブロックサイズが256バイトであり、メモリブロックサイズが1バイトである場合について例示する。
図3は、本発明の実施例1に係る初期化処理の処理手順を示すフローチャートである。
本発明の実施例1に係る初期化処理は、アプリケーション実行手段101Aによってサブブロック数及びサブブロックサイズが指定された後に、初期化手段101Bによって行われる処理である。以下、アプリケーション実行手段101Aによってサブブロック数3が指定された場合について例示する。
はじめに、初期化手段101Bは、アプリケーション実行手段101Aによって指定されたサブブロックサイズを整数倍し、当該整数倍された値を開始アドレスに設定し、当該開始アドレスからアプリケーション実行手段101Aによって指定されたサブブロック数分の領域(以下、「メモリブロック管理領域」という)をメモリ102に設定する(S301)。本発明の実施例1では、図4に示されるように、サブブロックサイズ256の整数倍(例えば、“0xXXXX0000”)が開始アドレスに設定され、当該開始アドレスから256×3=768バイトの領域がメモリ管理領域に設定される。
次に、初期化手段101Bは、S301において設定されたメモリブロック管理領域をアプリケーション実行手段101Aによって指定されたサブブロック数で分割することによって複数のサブブロック1〜nを設定する(S302)。このとき、初期化手段101Bは、各サブブロック1〜nに固有のサブブロック識別情報S1〜Snを設定する。また、各サブブロック1〜n(S1〜Sn)には、次にアクセスされるサブブロックの開始アドレスに対する第1オフセットを記憶する第1オフセット用メモリブロック、アプリケーション実行手段101Aに割り当てられていないメモリブロックの開始アドレスに対する第2オフセットを記憶する第2オフセット用メモリブロック及びアプリケーション実行手段101Aに割り当てられる割当用メモリブロック1〜mが設定される。本発明の実施例1では、図4に示されるように、サブブロック1〜3に分割され、各サブブロック1〜3(S1〜S3)が設定される。
次に、初期化手段101Bは、初期化サブブロックを設定する(S303)。本発明の実施例1では、図4に示されるように、先頭のサブブロック1が初期化サブブロックに設定される。
次に、初期化手段101Bは、S303において設定された初期化サブブロックの第1オフセット用メモリブロックに、次にアクセスされるサブブロックの開始アドレスに対するサブブロックサイズ単位の第1オフセットを設定する(S304)。本発明の実施例1では、図4に示されるように、サブブロック1の第1オフセット用メモリブロックにサブブロック3(S3)の開始アドレスに対する第1オフセット“2”が設定される。
次に、初期化手段101Bは、初期化サブブロックの全ての割当用メモリブロック1〜mに、初期化サブブロックの先頭アドレスから次のメモリブロックの開始アドレスに対するメモリブロックサイズ単位のオフセットを設定する(S305)。このとき、初期化サブブロックの終端の割当用メモリブロックmには“NULL”が設定される。本発明の実施例1では、サブブロック1の割当用メモリブロック1〜252に値“4”〜“255”が設定され、サブブロック1の割当用メモリブロック253に値“NULL”が設定される。
次に、初期化手段101Bは、初期化サブブロックの第2オフセット用メモリブロックに、初期化サブブロックの開始アドレスからアクセス権が割り当てられていない割当用メモリブロック(以下、「未割当メモリブロック」という)のうち先頭の未割当メモリブロックの開始アドレスに対するオフセット(以下、「第2オフセット」という)を設定する(S306)。本発明の実施例1では、図4に示されるように、サブブロック1(S1)の第2オフセット用メモリブロックに値“3”が設定される。
次に、全てのサブブロックの初期化が終了していない場合には(S307−NO)、初期化手段101Bは、次にアクセスされるサブブロックを初期化サブブロックに設定する(S308)。本発明の実施例1では、図4に示されるように、サブブロック3(S3)が初期化ブロックに設定される。
次に、初期化手段101Bは、S308において設定された初期化サブブロックの第1オフセット用メモリブロックにサブブロックサイズを単位とする第1オフセットを設定し、S305へ進む(S309)。本発明の実施例1では、図4に示されるように、サブブロック3の第1オフセット用メモリブロックに直前のサブブロック2(S2)の開始アドレスに対する第1オフセット“−1”が設定される。
一方、全てのサブブロックの初期化が終了した場合には(S307−YES)、メモリブロック管理領域の開始アドレスをアプリケーション実行手段101Aに出力する(S310)。本発明の実施例1では、サブブロック3(S3)に続いてサブブロック2(S2)の初期化が終了した場合には、図4に示されるように、アドレス“0xXXXX0000”が出力される。
本発明の実施例1に係る初期化処理は、S310の後に終了する。
図5は、本発明の実施例1に係るアクセス権割当処理の処理手順を示すフローチャートである。
本発明の実施例1に係るアクセス権割当処理は、初期化処理が行われた後に、アクセス権割当手段101Cによって行われる処理である。本発明の実施例1では、識別情報P1を有するプロセッサ101(P1)がアクセス権割当手段101Cを実現する場合について例示する。
はじめに、アクセス権割当手段101Cは、メモリ管理領域のサブブロック数を算出する(S501)。本発明の実施例1では、先頭のサブブロック1の第1オフセット用メモリブロックの値“2”に1を加算するサブブロック数3を算出する。
次に、アクセス権割当手段101Cは、アプリケーションプログラム102Aを起動したプロセッサ101の識別情報を獲得する(S502)。本発明の実施例1では、識別情報P1が獲得される。
次に、S502において獲得されたプロセッサ識別情報の数字部分をS501において算出されたサブブロック数で割ったときの余り(a)を算出する(S503)。本発明の実施例1では、a=1/3=1が算出される。
次に、サブブロック識別情報にS503において算出されたaに対応するサブブロックa(Sa)をアプリケーション実行手段101Aによって最初にアクセスされるサブブロック(以下、「割当サブブロック」という)に設定する(S504)。本発明の実施例1では、サブブロック1(S1)が割当サブブロックに設定される。
次に、アクセス権割当手段101Cは、割当サブブロックの排他制御権を獲得する(S505)。このとき、アクセス権割当手段101Cは、割当サブブロックの排他制御権用メモリブロックに排他制御権が与えられていることを示す値(例えば、“1”)を設定する。本発明の実施例1では、図6(A)に示されるように、サブブロック1(S1)の排他制御権用メモリブロックに値“1”が設定される。
次に、アクセス権割当手段101Cは、割当サブブロックの第2オフセット用メモリブロックに設定された第2オフセットを読み出す(S506)。
ここで、本発明の実施例1では、サブブロック1(S1)の全ての割当用メモリブロック(割当用メモリブロック1〜253)が割当済のときに、図6(B)に示されるように、サブブロック1(S1)の第2オフセット用メモリブロックの値“NULL”が読み出される。
すなわち、S506において読み出された第2オフセットがNULLであるので(S507−YES)、アクセス権割当手段101Cは、S505において獲得された割当サブブロックの排他制御権を解放する(S508)。このとき、アクセス権割当手段101Cは、割当サブブロックの排他制御権用メモリブロックに設定された値を削除する。
次に、アクセス権割当手段101Cは、割当サブブロックの第1オフセット用メモリブロックに設定された第1オフセットを読み出す(S509)。本発明の実施例1では、図6(B)に示されるように、サブブロック1(S1)の第1オフセット用メモリブロックの値“2”が読み出される。
次に、アクセス権割当手段101Cは、次にアクセスされるサブブロックの開始アドレスを算出する(S510)。本発明の実施例1では、サブブロック3(S3)の開始アドレス“0xXXXX0200”が算出される。
次に、アクセス権割当手段101Cは、S510において開始アドレスが算出されたサブブロックを割当サブブロックに設定し、S505へ進む(S511)。本発明の実施例1では、サブブロック3(S3)が割当サブブロックに設定される。
一方、本発明の実施例1では、サブブロック1(S1)の割当用メモリブロック(割当用メモリブロック1〜253)の割当用メモリブロック1が未割当のとき、図6(A)に示されるように、S506でサブブロック1(S1)の第2オフセット用メモリブロックの値“3”が読み出される。
すなわち、S506において読み出された第2オフセットがNULLでないので(S507−NO)、アクセス権割当手段101Cは、割当サブブロックに設定されたサブブロックの開始アドレス及びS506において読み出された第2オフセット用メモリブロックの値を用いて先頭の未割当メモリブロックの開始アドレスを算出する(S512)。本発明の実施例1では、図6(A)に示されるように、サブブロック1(S1)の開始アドレス“0xXXXX0000”とサブブロック1(S1)の第2オフセット用メモリブロックの値“3”を加算し、アドレス“0xXXXX0003”が算出される。
次に、アクセス権割当手段101Cは、S512において算出された開始アドレスが示す未割当メモリブロックの値を獲得する(S513)。本発明の実施例1では、図6(A)に示されるように、アドレス“0xXXXX0003”を開始アドレスとする割当用メモリブロック1の値“4”が獲得される。
次に、アクセス権割当手段101Cは、S513において獲得された未割当メモリブロックの値を割当サブブロックの第2オフセット用メモリブロックに設定する(S514)。本発明の実施例1では、図6(A)に示されるように、サブブロック1(S1)の第2オフセット用メモリブロックに値“4”が設定される。
次に、アクセス権割当手段101Cは、S505において獲得された割当サブブロックの排他制御権を解放する(S508)。このとき、アクセス権割当手段101Cは、割当サブブロックの排他制御権用メモリブロックに設定された値を削除する。
次に、アクセス権割当手段101Cは、S512において算出された開始アドレスをアプリケーション実行手段101Aに出力する(S516)。本発明の実施例1では、図6(A)に示されるように、アドレス“0xXXXX0003”が出力される。
本発明の実施例1に係るアクセス権割当処理は、S516の後に終了する。
なお、本発明の実施例1に係るアクセス権割当処理は、複数のプロセッサ101(P0〜Px)によって並行に行われても良い。
図7は、本発明の実施例1に係るアクセス権解放処理の処理手順を示すフローチャートである。
本発明の実施例1に係るアクセス権解放処理は、アプリケーションの実行が終了した後に、アクセス権解放手段101Dによって行われる処理である。なお、アプリケーション実行手段101Aは、アプリケーションの実行を終了するときに、アクセス権が解放されるメモリブロック(以下、「解放メモリブロック」という)の開始アドレスを指定する。なお、本発明の実施例1では、解放メモリブロックがサブブロック1(S1)の割当用メモリブロック1である場合について例示する。
はじめに、アクセス権解放手段101Dは、解放メモリブロックの開始アドレスをサブブロックサイズで割ったときの余り(b)を算出する(S701)。本発明の実施例1では、図8に示されるように、b=0xXXXX0003mod256=3が算出される。
次に、アクセス権解放手段101Dは、解放メモリブロックの開始アドレスとS701において算出されたbとの差(c)を算出する(S702)。本発明の実施例1では、図8に示されるように、c=0xXXXX0003−3=0xXXXX0000が算出される。
アクセス権解放手段101Dは、S702において算出されたcを開始アドレスとするサブブロックを解放サブブロックとして特定する(S703)。本発明の実施例4では、図8に示されるように、サブブロック1(S1)が解放サブブロックに特定される。
次に、アクセス権解放手段101Dは、S703において特定された解放サブブロックの排他制御権を獲得する(S704)。このとき、アクセス権解放手段101Dは、解放サブブロックの排他制御権用メモリブロックに排他制御権が与えられていることを示す値(例えば、“1”)を設定する。本発明の実施例1では、図8に示されるように、サブブロック1(S1)の排他制御権用メモリブロックに値“1”が設定される。
次に、アクセス権解放手段101Dは、解放サブブロックの第2オフセット用メモリブロックに設定された第2オフセットを読み出す(S705)。本発明の実施例1では、図8に示されるように、サブブロック1(S1)の第2オフセット用メモリブロックの値“4”が読み出される。
次に、アクセス権解放手段101Dは、S703において読み出された第2オフセットを解放メモリブロックに設定する(S706)。本発明の実施例1では、図8に示されるように、サブブロック1(S1)の割当用メモリブロック1に値“4”が設定される。
次に、アクセス権解放手段101Dは、解放サブブロックの開始アドレスから解放メモリブロックの開始アドレスに対するオフセットを算出し、当該算出されたオフセットを第2オフセット用メモリブロックに設定する(S707)。本発明の実施例1では、図8に示されるように、サブブロック1(S1)の第2オフセット用メモリブロックに値“3”が設定される。
次に、アクセス権解放手段101Dは、S704において獲得された排他制御権を解放する(S708)。このとき、アクセス権解放手段101Dは、解放サブブロックの排他制御権用メモリブロックに設定された値を削除する。
本発明の実施例1に係るアクセス権解放処理は、S708の後に終了する。
なお、本発明の実施例1に係るアクセス権解放処理は、複数のプロセッサ101(P0〜Px)によって並行に行われても良い。
本発明の実施例1によれば、プロセッサ識別情報に基づいて割当メモリブロックが特定されることによって各プロセッサ101のアクセスが分散されるので、排他制御権が設定されている間の待ち時間が短縮され、アプリケーションの負荷を増加させることなく、メモリの使用効率及びマルチプロセッサシステムの処理効率を向上させることができる。
また、本発明の実施例1によれば、次にアクセスされる未割当メモリブロックの開始アドレスに対するオフセットが未割当メモリブロックに設定されるので、メモリの使用効率を向上させることができる。
また、本発明の実施例1によれば、次にアクセスされる割当メモリブロックがサブブロックの開始アドレスからのオフセットによって示されるので、メモリブロックサイズの大きさに関わらず、管理することができる。
また、本発明の実施例1によれば、同一のメモリ管理領域へのアクセスが同時に発生した場合であっても、アクセスされるサブブロックが異なる場合には排他制御権が設定されている間の待ち時間が発生しないので、マルチプロセッサシステムの処理効率を向上させることができる。
また、本発明の実施例1によれば、サブブロックの開始アドレスがサブブロックサイズの整数倍の値であるので、アクセス権解放処理におけるアプリケーション実行手段101の指定項目を低減することができ、ひいては、メモリの使用効率を向上させることができる。
本発明の実施例1に係る固定長メモリブロック管理装置100の構成を示すブロック図である。 本発明の実施例1に係るメモリ102に設定されるメモリブロック管理領域の構造を示す概略図である。 本発明の実施例1に係る初期化処理の処理手順を示すフローチャートである。 本発明の実施例1に係る初期化処理におけるメモリブロック管理領域の構造を示す概略図である。 本発明の実施例1に係るアクセス権割当処理の処理手順を示すフローチャートである。 本発明の実施例1に係るアクセス権割当処理におけるメモリブロック管理領域の構造を示す概略図である。 本発明の実施例1に係るアクセス権解放処理の処理手順を示すフローチャートである。 本発明の実施例1に係るアクセス権解放処理におけるメモリブロック管理領域の構造を示す概略図である。
符号の説明
100 固定長メモリブロック管理装置
101〜10Z プロセッサ
101A アプリケーション実行手段
101B 初期化手段
101C アクセス権割当手段
101D アクセス権解放手段
102 メモリ
102A アプリケーションプログラム
102B 初期化プログラム
102C アクセス権割当プログラム
102D アクセス権解放プログラム

Claims (5)

  1. アプリケーションを実行する複数のプロセッサと、
    前記複数のプロセッサに共有されるメモリと、を備え、
    各プロセッサは、
    前記アプリケーションを実行するアプリケーション実行手段と、
    前記メモリに、固定長のサブブロックサイズを有する複数のサブブロックを含むメモリブロック管理領域を設定し、
    各サブブロックに、前記サブブロックに対する排他制御権が設定される排他制御権用メモリブロックと、次にアクセスされるサブブロックの開始アドレスに対する第1オフセットを記憶する第1オフセット用メモリブロックと、前記アプリケーション実行手段に割り当てられる割当用メモリブロックと、前記割当用メモリブロックのうち、前記アプリケーション実行手段に未だ割り当てられていない割当用メモリブロックの開始アドレスに対する第2オフセットを記憶する第2オフセット用メモリブロックと、を設定する初期化手段と、
    前記初期化手段によって設定された前記サブブロック内の前記割当用メモリブロックのアクセス権を前記アプリケーション実行手段に割り当てるアクセス権割当手段とを有する、
    ことを特徴とする固定長メモリブロック管理装置。
  2. 前記アプリケーション実行手段は、前記アクセス権が解放されるメモリブロックの開始アドレスを指定し、
    前記プロセッサは、前記指定されたアドレスに従ってサブブロックを特定し、前記サブブロックの排他制御権を獲得し、前記メモリブロックのアクセス権を解放するアクセス権解放手段を更に有する、請求項1に記載の固定長メモリブロック管理装置。
  3. 前記アプリケーション実行手段は、前記サブブロックサイズと、サブブロック数とを指定し、
    前記初期化手段は、前記指定されたサブブロックサイズを整数倍した値を開始アドレスに設定し、前記開始アドレスから前記指定されたサブブロック数分の領域を、前記メモリブロック管理領域として、前記メモリに設定する、請求項1または2に記載の固定長メモリブロック管理装置。
  4. 前記初期化手段は、前記メモリブロック管理領域を、前記指定されたサブブロック数で分割することによって、前記複数のサブブロックを設定する、請求項3に記載の固定長メモリブロック管理装置。
  5. アプリケーションを実行する複数のプロセッサと、前記複数のプロセッサに共有されるメモリとを備える、マルチプロセッサシステムの固定長メモリブロック管理装置の制御方法であって、
    前記メモリに、固定長のサブブロックサイズを有する複数のサブブロックを含むメモリブロック管理領域を設定し、
    各サブブロックに、前記サブブロックに対する排他制御権が設定される排他制御権用メモリブロックと、次にアクセスされるサブブロックの開始アドレスに対する第1オフセットを記憶する第1オフセット用メモリブロックと前記アプリケーション実行手段に割り当てられる割当用メモリブロックと、前記割当用メモリブロックのうち、前記アプリケーション実行手段に未だ割り当てられていない割当用メモリブロックの開始アドレスに対する第2オフセットを記憶する第2オフセット用メモリブロックと、を設定し、
    前記サブブロック内の前記割当用メモリブロックのアクセス権を前記アプリケーションに割り当てる、ことを特徴とする固定長メモリブロック管理装置の制御方法。
JP2008018788A 2008-01-30 2008-01-30 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法 Expired - Fee Related JP5270924B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008018788A JP5270924B2 (ja) 2008-01-30 2008-01-30 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
US12/358,370 US8429354B2 (en) 2008-01-30 2009-01-23 Fixed length memory block management apparatus and method for enhancing memory usability and processing efficiency

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008018788A JP5270924B2 (ja) 2008-01-30 2008-01-30 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2009181268A JP2009181268A (ja) 2009-08-13
JP5270924B2 true JP5270924B2 (ja) 2013-08-21

Family

ID=40900402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008018788A Expired - Fee Related JP5270924B2 (ja) 2008-01-30 2008-01-30 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法

Country Status (2)

Country Link
US (1) US8429354B2 (ja)
JP (1) JP5270924B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467514B1 (ko) * 2010-05-14 2014-12-01 삼성전자 주식회사 사용자 응답 시간을 고려한 메모리 관리 장치 및 방법
JP2012093882A (ja) 2010-10-26 2012-05-17 Toshiba Corp メモリ管理装置、マルチプロセッサシステム、及びメモリ管理方法
US8671261B2 (en) * 2011-04-14 2014-03-11 Microsoft Corporation Lightweight random memory allocation
US8463948B1 (en) * 2011-07-01 2013-06-11 Intel Corporation Method, apparatus and system for determining an identifier of a volume of memory
US8868876B2 (en) 2011-12-28 2014-10-21 International Business Machines Corporation Dedicated large page memory pools
US9424027B2 (en) 2013-07-29 2016-08-23 Ralph Moore Message management system for information transfer within a multitasking system
WO2017016616A1 (en) * 2015-07-30 2017-02-02 Hewlett-Packard Development Company, L.P. Memory access control method and system
CN109308269B (zh) * 2017-07-26 2021-02-23 华为技术有限公司 一种内存管理方法及装置
CN110851183B (zh) * 2018-08-20 2024-04-12 联想企业解决方案(新加坡)有限公司 在多处理器体系结构中快速启动处理器的方法
JP7448585B2 (ja) * 2022-05-31 2024-03-12 トヨタ自動車株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62118454A (ja) * 1985-11-19 1987-05-29 Nec Corp デ−タ処理装置におけるバツフアリソ−ス管理方式
JPH02162439A (ja) * 1988-12-15 1990-06-22 Fujitsu Ltd 共有メモリのフリーリスト管理方式
US5060144A (en) * 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
JP3102495B2 (ja) * 1989-12-28 2000-10-23 株式会社日立製作所 仮想記憶管理方法
ES2047774T3 (es) * 1990-07-20 1994-03-01 Siemens Nixdorf Inf Syst Procedimiento para impedir desviaciones inadmisibles del protocolo de desarrollo de una aplicacion en un sistema de intercambio de datos.
JPH04245344A (ja) * 1991-01-31 1992-09-01 Hitachi Ltd マルチプロセッサシステムのメモリ管理方法
JPH08221317A (ja) 1995-02-15 1996-08-30 Toshiba Corp メモリ管理方式
US6175900B1 (en) * 1998-02-09 2001-01-16 Microsoft Corporation Hierarchical bitmap-based memory manager
JP3438603B2 (ja) * 1998-09-01 2003-08-18 日本電気株式会社 加入者データ収容装置
US6353829B1 (en) * 1998-12-23 2002-03-05 Cray Inc. Method and system for memory allocation in a multiprocessing environment
JP3454747B2 (ja) * 1999-03-30 2003-10-06 日立ソフトウエアエンジニアリング株式会社 空バッファ管理方法
JP2001236249A (ja) 2000-02-24 2001-08-31 Nec Corp メモリ管理装置およびメモリ管理方法
US6490662B1 (en) * 2000-04-29 2002-12-03 Hewlett-Packard Company System and method for enhancing the reliability of a computer system by combining a cache sync-flush engine with a replicated memory module
US6922744B1 (en) * 2001-08-09 2005-07-26 Unisys Corporation Communal lock processing system for multiprocessor computer system
US6986003B1 (en) * 2001-08-09 2006-01-10 Unisys Corporation Method for processing communal locks
JP3832341B2 (ja) * 2001-12-27 2006-10-11 日本電気株式会社 メモリプール管理方式
US6718451B2 (en) 2002-01-31 2004-04-06 Intel Corporation Utilizing overhead in fixed length memory block pools
JP3884990B2 (ja) * 2002-04-26 2007-02-21 富士通株式会社 マルチプロセッサ装置
US6820176B2 (en) * 2002-05-02 2004-11-16 International Business Machines Corporation System, method, and computer program product for reducing overhead associated with software lock monitoring
EP1376370B1 (en) * 2002-06-28 2017-06-14 Oracle America, Inc. Mechanism for starvation avoidance while maintaining cache consistency in computer systems
US7844665B2 (en) * 2004-04-23 2010-11-30 Waratek Pty Ltd. Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
JP4376692B2 (ja) * 2004-04-30 2009-12-02 富士通株式会社 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ
US7930694B2 (en) * 2004-09-08 2011-04-19 Oracle America, Inc. Method and apparatus for critical section prediction for intelligent lock elision
US7516291B2 (en) * 2005-11-21 2009-04-07 Red Hat, Inc. Cooperative mechanism for efficient application memory allocation
US7752417B2 (en) * 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US20080120477A1 (en) * 2006-10-05 2008-05-22 Holt John M Contention detection with modified message format
US8316190B2 (en) * 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
JP2009181213A (ja) * 2008-01-29 2009-08-13 Toshiba Corp メモリ管理装置

Also Published As

Publication number Publication date
JP2009181268A (ja) 2009-08-13
US8429354B2 (en) 2013-04-23
US20090193212A1 (en) 2009-07-30

Similar Documents

Publication Publication Date Title
JP5270924B2 (ja) 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
JP5466568B2 (ja) 資源管理方法、資源管理プログラム、および、資源管理装置
US8893145B2 (en) Method to reduce queue synchronization of multiple work items in a system with high memory latency between processing nodes
WO2011080041A1 (en) Work item distribution in multi-core data processing system
US10152259B2 (en) System and method for allocating and deallocating an address range corresponding to a first and a second memory between processors
TW200925871A (en) Dynamic logical data channel assignment using time-grouped allocations
US20150154054A1 (en) Information processing device and method for assigning task
US9489295B2 (en) Information processing apparatus and method
US20100299672A1 (en) Memory management device, computer system, and memory management method
KR101950759B1 (ko) 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러
CN112650577A (zh) 内存管理方法和装置
JPWO2008149657A1 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
US9678752B2 (en) Scheduling apparatus and method of dynamically setting the size of a rotating register
JP7217341B2 (ja) プロセッサおよびレジスタの継承方法
JP2008033838A (ja) メモリ管理装置及びメモリ管理方法
JP2011039790A (ja) 仮想マシンイメージ転送装置及び方法及びプログラム
EP2085886A1 (en) Memory management device applied to shared-memory multiprocessor
KR20220010036A (ko) 메모리 관리 방법 및 관련 제품
KR101891264B1 (ko) 비휘발성 메모리 상의 메모리 객체 처리 방법 및 메모리 객체 처리 장치
JP6344022B2 (ja) 演算処理装置および演算処理装置の制御方法
Iyengar Dynamic storage allocation on a multiprocessor.
CN108694125B (zh) 在多处理器环境中在多个任务当中分配共享的存储器
JP2007034514A (ja) 情報処理装置
JP5692341B2 (ja) マルチプロセッサシステム、制御方法、および制御プログラム
JP2017156907A (ja) 情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130327

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: 20130419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130510

LAPS Cancellation because of no payment of annual fees