JP2000347940A - メモリ管理装置 - Google Patents

メモリ管理装置

Info

Publication number
JP2000347940A
JP2000347940A JP11161703A JP16170399A JP2000347940A JP 2000347940 A JP2000347940 A JP 2000347940A JP 11161703 A JP11161703 A JP 11161703A JP 16170399 A JP16170399 A JP 16170399A JP 2000347940 A JP2000347940 A JP 2000347940A
Authority
JP
Japan
Prior art keywords
space
logical address
address
definition
module
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
Application number
JP11161703A
Other languages
English (en)
Other versions
JP4331325B2 (ja
Inventor
Hirobumi Tanaka
博文 田中
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP16170399A priority Critical patent/JP4331325B2/ja
Publication of JP2000347940A publication Critical patent/JP2000347940A/ja
Application granted granted Critical
Publication of JP4331325B2 publication Critical patent/JP4331325B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 プログラムで直接記述したコードやデータの
中でタスクにとって不必要なコードやデータが記憶され
ているメモリ領域に対して当該タスクが直接アクセスす
ることを禁止することができるメモリ管理装置を提供す
る。 【解決手段】 配置手段104は、プログラムに関する
情報を記述しているモジュール情報101とモジュール
の集合を示すセクション定義102と論理アドレス空間
に属するセクションを定義する空間定義103とを用い
て論理アドレス空間にモジュールを配置する。マッピン
グ手段106は、配置されたモジュールを論理アドレス
空間ごとにマッピングしてアドレス変換表105を作成
する。アドレス変換表切り換え手段107は、タスク切
り換えの指示に応じてそのタスクに対応する論理アドレ
ス空間のアドレス変換表105に切り換える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスクシス
テムで用いられるメモリ管理装置に関するものである。
【0002】
【従来の技術】近年、読み出し専用メモリ(ROM)に
プログラムコードを配置した、いわゆる組み込み型マイ
クロコンピュータ制御システムにおいて、対象システム
の複雑化に伴いプログラムサイズが増大しており、マル
チタスクシステムを構成することが通例となっている。
マルチタスクシステムにおいて、あるタスクが他のタス
クで用いられる記憶情報を破壊するようなバグを持って
いる場合、バグの追求は非常に困難なため、解決に膨大
な時間を要する。
【0003】最近の機器組み込み用マイクロプロセッサ
には、実行段階で機能する保護機構が搭載されつつあ
る。そこで、上記のような問題を解決するため、そのよ
うな保護機構を利用して、バグが発生しうるプログラム
を非特権モードで動作させ、バグが発生しえないプログ
ラムを特権モードで動作させることによってマルチタス
クシステムの誤動作を防止する方法が考えられる。
【0004】しかし、この方法では各プログラムを特権
モードおよび非特権モードのいずれで動作させるかを決
定することが困難である。また、同じモードで動作する
プログラム同士は互いに破壊することができるため、完
全に問題を解決することはできない。
【0005】また、ワークステーションやパーソナルコ
ンピュータ等のコンピュータの分野では、メモリ管理装
置(MMU)を利用して各タスクを別の論理アドレス空
間で動作させ、タスク間でメモリに直接アクセスできな
いようにすることによってこの問題を解決しているもの
がある。最近の機器組み込み用マイクロプロセッサの中
にはメモリ管理装置を搭載しているものもあるため、こ
のようなマイクロプロセッサでは、上記の問題を解決す
るためにコンピュータと同じようにタスク間でメモリに
直接アクセスできないように構成することが考えられ
る。
【0006】しかし、組み込み型マイクロコンピュータ
制御システムでは、多くのタスクがコードやデータを共
有して密接に協調して動作するため、機器組み込み用マ
イクロプロセッサにおいては、別々の論理アドレス空間
にタスクを分割することは非常に困難である。
【0007】ただし、同じ問題はコンピュータの分野に
も存在し、従来のメモリ管理装置においては、タスク間
で直接アクセス可能な共有メモリを実現している。
【0008】図9は例えば特開平7−93210号公報
に記載されている共有メモリ管理方式を用いて共有メモ
リを実現するための従来のメモリ管理装置の一構成例を
示すブロック図である。
【0009】図9に示すメモリ管理装置800は、メモ
リ領域情報801および空間情報802を保持してい
る。メモリ領域情報801には、メモリ領域を識別する
ためのメモリ領域識別子とそのメモリ領域識別子が示す
メモリ領域のメモリサイズ等のメモリ領域に関する情報
とがメモリ領域ごとに記述されている。空間情報802
には、論理アドレス空間を識別するための空間識別子と
その空間識別子が示す論理アドレス空間に属するメモリ
領域とが論理アドレス空間ごとに記述されている。
【0010】このメモリ管理装置800は、アドレス変
換表803、マッピング手段804およびアドレス変換
表切り換え手段805を備える。マッピング手段804
は、アドレス変換表803を作成することによってメモ
リ領域を論理アドレス空間にマッピングする。アドレス
変換表803は、各論理アドレス空間ごとに設けられ、
物理アドレスと論理アドレスとの間の変換を行う際に物
理アドレスと論理アドレスとの対応関係を指示する。ア
ドレス変換表切り換え手段805は、タスクを切り換え
る時にアドレス変換表803を切り換えることによって
論理アドレス空間を切り換える。
【0011】図9に示す従来のメモリ管理装置800に
おいては、タスクが発行する共有メモリのマッピング要
求に応じてマッピング手段804が起動される。マッピ
ング手段804は、マッピングすべき共有メモリについ
てメモリ領域情報801を参照し、マッピングすべき論
理アドレス空間について空間情報802を参照し、そし
てアドレス変換表803を作成することによって、共有
メモリのメモリ領域を論理アドレス空間にマッピングす
る。さらに、別のタスクで共有メモリのマッピング要求
が発行された場合にも、図9のメモリ管理装置800
は、同様の処理を行う。このように、複数のタスク間で
共有可能なメモリ領域を論理アドレス空間にマッピング
することによって、アドレス変換表切り換え手段805
が論理アドレス空間を切り換えてもメモリ領域を共有す
ることが可能となる。
【0012】
【発明が解決しようとする課題】しかしながら、上記の
ように構成された従来のメモリ管理装置800において
は、タスクからの要求によって確保して共有しているメ
モリ領域では、各タスクが動的に確保してアクセスする
バッファメモリやデータ構造に関してタスク間で共有で
きるのみであるため、プログラムで直接記述したコード
やデータについては共有することができず、問題の解決
にはならない。
【0013】本発明の目的は、プログラムを変更するこ
となく必要なモジュールのみ必要なタスク間で共有さ
せ、それ以外はタスク間でメモリに直接アクセスでき
ず、メモリに記憶されているタスクの内容が破壊される
のを防止して信頼性の高いシステムを容易に構築するこ
とができるメモリ管理装置を提供することである。
【0014】
【課題を解決するための手段】(1)第1の発明 第1の発明に係るメモリ管理装置は、メモリの物理アド
レスを複数の論理アドレスへ対応付けるメモリ管理装置
であって、複数の論理アドレス空間を複数のモジュール
との対応関係を示す第1の定義に基づいて、複数の論理
アドレス空間のそれぞれにモジュールを配置する配置手
段と、複数のモジュールの物理アドレスを示すモジュー
ル情報に基づいて、配置手段によりモジュールが配置さ
れた論理アドレス空間の論理アドレスへ物理アドレスを
対応付けるマッピング手段と、タスクの切り換え指示に
応答して、マッピング手段により対応付けられた複数の
論理アドレス空間の切り換えを行う論理アドレス空間切
り換え手段とを備えたものである。
【0015】本発明に係るメモリ管理装置においては、
配置手段により第1の定義に基づいて複数の論理アドレ
ス空間のそれぞれにモジュールが配置され、配置された
論理アドレス空間の論理アドレスへ物理アドレスがモジ
ュール情報に基づいてマッピング手段により対応付けら
れる。そのため、切り換え手段によりタスクの切り換え
指示に応答して論理アドレス空間の切り換えが行われれ
ば、切り換え前後の論理アドレス空間とモジュールとの
対応関係がそれぞれ第1の定義に示されているように定
まる。したがって、異なるタスクにおいて必要とされる
同一のモジュールが第1の定義により異なるタスクに共
通に対応することが示されていればその同一のモジュー
ルは共有することができる。しかし、共有されるモジュ
ール以外のモジュールは、異なるタスクの一方にのみ対
応することが第1の定義で示されているので共有されな
い。それにより、必要なモジュール以外は異なるタスク
間でメモリに直接アクセスすることを禁止し、必要なモ
ジュールのみ異なるタスク間で共有させることができ
る。
【0016】(2)第2の発明 第2の発明に係るメモリ管理装置は、第1の発明に係る
メモリ管理装置の構成において、第1の定義は、複数の
論理アドレス空間にそれぞれ所属するセクションを定義
する空間定義と、各セクションに所属する一または複数
のモジュールを定義するセクション定義とを含むもので
ある。
【0017】この場合、論理アドレス空間でのモジュー
ルの配置は、配置手段によりモジュールの集合を示すセ
クション単位で決定される。そのため、モジュールが属
するセクションごとにモジュールの取り扱い規定を別々
に設けることができ、同じ機能を持ちながら異なる取り
扱い規定としなければならないモジュールを、取り扱い
規定の異同に係わらず、複数のタスク間で共有すること
ができるようになる。
【0018】(3)第3の発明 第3の発明に係るメモリ管理装置は、第1または第2の
発明に係るメモリ管理装置の構成において、論理アドレ
ス空間切り換え手段は、複数の論理アドレス空間のそれ
ぞれに複数のタスクのいずれかを対応付ける第2の定義
に基づいて、複数の論理アドレス空間の切り換えを行う
ものである。
【0019】この場合、論理アドレス空間切り換え手段
により、論理アドレス空間とモジュールとの対応関係を
規定しない第2の定義に基づきタスクの切り換え指示に
応じた論理アドレス空間の切り換えが行われる。そのた
め、タスク切り換え時にタスクの切り換え前後で論理ア
ドレス空間が同じ場合には、論理アドレス空間の切り換
えを行わないようにすることができる。すなわち、異な
るタスク間で同一の論理アドレス空間全体を共有するこ
とができる。
【0020】(4)第4の発明 第4の発明に係るメモリ管理装置は、第1〜第3のいず
れかの発明に係るメモリ管理装置の構成において、対応
付けに応じて論理アドレスと物理アドレスとの間のアド
レス変換を行うアドレス変換手段と、周辺装置からのメ
モリアクセス要求を受け付ける要求受付手段と、要求受
付手段がメモリアクセス要求を受け付けた場合、アドレ
ス変換手段によって物理アドレスと論理アドレスとの間
のアドレス変換が可能な状態のときには、アドレス変換
手段を用いて論理アドレスに基づくメモリアクセスを行
い、アドレス変換手段によるアドレス変換が不可能な状
態のときには、物理アドレスに基づくメモリアクセスを
行うメモリアクセス手段とをさらに備えたものである。
【0021】この場合、デバッガからのメモリアクセス
要求を要求受付手段が受け付けた場合、メモリアクセス
手段によりアドレス変換手段のアドレス変換が可能なと
きには論理アドレスに基づくメモリアクセスが行われ、
不可能なときには物理アドレスに基づくメモリアクセス
が行われる。そのため、アドレス変換手段の状態によら
ずメモリアクセスを行うことができ、例えばアドレス変
換手段のマッピングが終了していないためアドレス変換
手段が動作することができなくても周辺装置からのメモ
リアクセス要求に対し矛盾なく対応することができる。
【0022】
【発明の実施の形態】(実施の形態1)以下、本発明の
実施の形態1におけるメモリ管理装置について説明す
る。図1は、実施の形態1におけるメモリ管理装置の一
構成例を示すブロック図である。
【0023】図1のメモリ管理装置100は、複数のモ
ジュール情報101、複数のセクション定義102およ
び複数の空間定義103を保持している。
【0024】モジュール情報101は、モジュールを識
別するためのモジュール識別子と、そのモジュール識別
子が示すモジュールのコードやデータのサイズ等のプロ
グラムに関する情報とをモジュールごとに記述してい
る。
【0025】また、セクション定義102は、セクショ
ンを識別するためのセクション識別子と、そのセクショ
ン識別子が示すセクションに所属する1つまたは複数の
モジュールを識別するためのモジュール識別子とをセク
ションごとに定義する。
【0026】さらに、空間定義103は、論理アドレス
空間を識別するための空間識別子と、その空間識別子が
示す論理アドレス空間に所属する1つまたは複数のセク
ションを識別するためのセクション識別子と、その空間
識別子が示す論理アドレス空間に切り換えるタスクを識
別するタスク識別子とを論理アドレス空間ごとに定義す
る。
【0027】メモリ管理装置100は、配置手段10
4、複数のアドレス変換表105、マッピング手段10
6およびアドレス変換表切り換え手段107を備える。
【0028】配置手段104は、モジュール情報101
とセクション定義102と空間定義103とに基づき、
複数の論理アドレス空間のそれぞれに所属するセクショ
ンを読み取り、複数の論理アドレス空間のそれぞれのセ
クションについてモジュールの配置を決定する。すなわ
ち、配置手段104は、複数の論理アドレス空間のそれ
ぞれにおいてモジュールの配置を決定する。
【0029】マッピング手段106は、アドレス変換表
105を作成することによって、論理アドレス空間ごと
に配置されているモジュールについて論理アドレスと物
理アドレスとの対応関係を決定するためのマッピングを
行う。
【0030】複数のアドレス変換表105のそれぞれ
は、複数の論理アドレス空間の中の1つと一対一に対応
しており、そのためそれぞれ複数のタスクの中の1つと
一対に一に対応しており、対応する論理アドレス空間
(タスク)における論理アドレスと物理アドレスとの対
応関係を示している。
【0031】アドレス変換表切り換え手段107は、タ
スクの切り換え指示に応じて、アドレス変換表105を
切り換える。アドレス変換表105が論理アドレス空間
と一対一に対応していることからアドレス変換表105
の切り換えは論理アドレス空間の切り換えを意味する。
【0032】なお、配置手段104、マッピング手段1
06およびアドレス変換表切り換え手段107は、CP
U(中央演算処理装置)がROM(リードオンリメモ
リ)等の記憶装置に記憶されたプログラムをRAM(ラ
ンダムアクセスメモリ)等のメモリ上で実行することに
より実現される。また、モジュール情報101、セクシ
ョン定義102および空間定義103は、ファイルとし
てROM、ハードディスク装置等の記憶装置に予め記憶
される。さらに、アドレス変換表105は、マッピング
手段106により作成された後、RAM、ハードディス
ク装置等の記憶装置に格納される。
【0033】図2は、メモリ管理装置100が保持して
いるモジュール情報101、セクション定義102およ
び空間定義103の一例を示す概念図である。図3は、
メモリ管理装置100が行ったマッピングの一例を示す
概念図である。
【0034】図2のモジュール情報101には、「モジ
ュール1」、「モジュール2」および「モジュール3」
というモジュールをそれぞれ示すモジュール識別子21
1〜213と、各モジュール識別子211〜213が示
すモジュールのコードアドレス、コードサイズ、データ
アドレスおよびデータサイズとが記述されている。
【0035】セクション定義102には、「セクション
1」、「セクション2」および「セクション3」という
セクションをそれぞれ示すセクション識別子221〜2
23と、各セクション識別子221〜223が示すセク
ションにそれぞれ属する「モジュール1」、「モジュー
ル2」および「モジュール3」というモジュールをそれ
ぞれ示すモジュール識別子211〜213とが定義され
ている。
【0036】空間定義103には、「空間1」および
「空間2」という論理アドレス空間をそれぞれ示す空間
識別子231,232と、各空間識別子231,232
が示す論理アドレス空間に属する「セクション1」、
「セクション2」および「セクション3」というセクシ
ョンをそれぞれ示すセクション識別子221〜223
と、各空間識別子231,232が示す論理アドレス空
間が属する「タスク1」および「タスク2」というタス
クをそれぞれ示すタスク識別子241,242とが定義
されている。
【0037】図2に示すモジュール情報101とセクシ
ョン定義102と空間定義103とを用いて、空間識別
子231,232で示される「空間1」および「空間
2」という論理アドレス空間について、それぞれ表1お
よび表2に示すアドレス変換表を作成することによっ
て、図3に示すマッピングを行う。
【0038】
【表1】
【0039】
【表2】
【0040】なお、図3においては、2つの論理アドレ
ス空間LA,LBと物理アドレス空間PSとの対応関係
が示されている。本例では、論理アドレス空間LAが
「空間1」に相当し、論理アドレス空間LBが「空間
2」に相当する。
【0041】図3に示すマッピングを行うために、メモ
リ管理装置100はシステム初期化時に、マッピング手
段106を起動する。起動されたマッピング手段106
は、さらに配置手段104を起動する。
【0042】配置手段104は、空間定義103を参照
し、空間識別子231により示される「空間1」という
論理アドレス空間にセクション識別子221により示さ
れる「セクション1」が所属することを読み取る。
【0043】次に配置手段104は、セクション定義1
02を参照し、セクション識別子221により示される
「セクション1」にモジュール識別子211により示さ
れる「モジュール1」が所属することを読み取る。
【0044】さらに、配置手段104は、モジュール情
報101を参照し、モジュール識別子211により示さ
れる「モジュール1」のコードアドレス、コードサイ
ズ、データアドレスおよびデータサイズを読み取る。そ
して、配置手段104は、モジュール識別子211によ
り示される「モジュール1」のコードアドレスおよびデ
ータアドレスを、空間識別子231により示される「空
間1」という論理アドレス空間上に配置する。それによ
り、「モジュール1」が「空間1」に配置される。
【0045】次に、配置手段104は、空間識別子23
1により示される「空間1」という論理アドレス空間に
セクション識別子222により示される「セクション
2」が所属することを読み取り、「セクション1」の場
合と同様に、空間定義103とセクション定義102と
モジュール情報101に基づき、モジュール識別子21
2により示される「モジュール2」のコードアドレスと
データアドレスとを空間識別子231により示される
「空間1」という論理アドレス空間上に配置する。それ
により、「モジュール2」が「空間1」に配置される。
【0046】同様に、配置手段104は、空間定義10
3を参照し、空間識別子232により示される「空間
2」という論理アドレス空間にセクション識別子222
により示される「セクション2」が所属することを読み
取り、空間定義103とセクション定義102とモジュ
ール情報101に基づき、モジュール識別子212に示
される「モジュール2」のコードアドレスとデータアド
レスとを空間識別子232により示される「空間2」と
いう論理アドレス空間上に配置する。それにより、「モ
ジュール2」が「空間2」に配置される。
【0047】また、配置手段104は、空間定義103
を参照し、空間識別子232により示される「空間2」
という論理アドレス空間にセクション識別子223によ
り示される「セクション3」が所属することを読み取
り、空間定義103とセクション定義102とモジュー
ル情報101に基づき、モジュール識別子213により
示される「モジュール3」のコードアドレスとデータア
ドレスとを空間識別子232により示される「空間2」
という論理アドレス空間上に配置する。それにより、
「モジュール3」が「空間2」に配置される。
【0048】マッピング手段106は、空間識別子23
1により示される「空間1」という論理アドレス空間に
おいて、配置手段104によってコードアドレスおよび
データアドレスが配置された論理アドレスに物理アドレ
スを対応させ、表1に示すアドレス変換表105を作成
する。
【0049】次に、マッピング手段106は、空間識別
子232により示される「空間2」という論理アドレス
空間において、配置手段104によってコードおよびデ
ータが配置された論理アドレスに物理アドレスを対応さ
せ、表2に示すアドレス変換表105を作成する。
【0050】上記の場合、「空間1」および「空間2」
の両方にモジュール識別子212により示される「モジ
ュール2」が所属しているので、配置手段104は、論
理アドレス空間LAの論理アドレス「0x110000
00」および「0x21000000」に「モジュール
2」のコードアドレスおよびデータアドレスをそれぞれ
配置する。それにより、マッピング手段106は、物理
アドレス「0x80001000」を論理アドレス空間
LAの論理アドレス「0x11000000」および論
理アドレス空間LBの論理アドレス「0x110000
00」へマッピングする。
【0051】同様に、マッピング手段106は、物理ア
ドレス「0x90001000」を論理アドレス空間L
Aの論理アドレス「0x21000000」および論理
アドレス空間LBの論理アドレス「0x2100000
0」へマッピングする。
【0052】このように、図3の論理アドレス空間L
A,LBと物理アドレス空間PSとの対応関係が決定さ
れる。
【0053】マッピング手段106は、これらアドレス
変換表105を作成する際に、空間定義103を参照し
てタスクと論理アドレス空間との関連づけを行ってい
る。アドレス変換表切り換え手段107は、表1が「タ
スク1」に対応し、表2が「タスク2」に対応するとい
う情報を保持している。
【0054】システム初期化終了後、アドレス変換表切
り換え手段107は、タスクの切り換え指示に応じて、
表1および表2に示したようなアドレス変換表105の
切り換えを行う。
【0055】例えば、タスク識別子241により示され
る「タスク1」を行った後に、タスク識別子242によ
り示される「タスク2」を行う場合、アドレス変換表切
り換え手段107は、アドレス変換表105を、空間識
別子231により示される「空間1」という論理アドレ
ス空間に対応した表1から空間識別子232により示さ
れる「空間2」という論理アドレス空間に対応した表2
へと切り換える。つまり、アドレス変換表切り換え手段
107は、アドレス変換表105を切り換えることによ
って、「空間1」から「空間2」への切り換えを行って
いる。
【0056】本実施の形態のメモリ管理装置100によ
れば、配置手段104およびマッピング手段106によ
って、「空間1」および「空間2」という異なる論理ア
ドレス空間に所属する同一の「モジュール2」が同一の
物理アドレスに割り付けられるように、論理アドレス空
間ごとにマッピングが行われる。それにより、タスクの
切り換えに応じてアドレス変換表切り換え手段107が
「空間1」および「空間2」の切り換えを行っても「モ
ジュール2」を共通に使用することができる。つまり、
メモリ管理装置100では、タスク識別子241により
示される「タスク1」およびタスク識別子242により
示される「タスク2」のような互いに異なる2つのタス
クが同一の「モジュール2」を共有することができる。
【0057】なお、図2では、「モジュール1」〜「モ
ジュール3」と「セクション1」〜「セクション3」と
が一対一で対応する場合について説明したが、図4に示
すようにセクション識別子224により示される1つの
「セクション4」にモジュール識別子211,212に
より示される複数の「モジュール1」および「モジュー
ル2」が対応し、セクション識別子225により示され
る1つの「セクション5」にモジュール識別子212,
213により示される複数の「モジュール2」および
「モジュール3」が対応し、セクション識別子226に
より示される「セクション6」にモジュール識別子21
4により示される「モジュール4」が対応するように構
成することができる。
【0058】例えば「セクション4」を特権モードで取
り扱われるモジュールの集合と定義し、別の「セクショ
ン5」を非特権モードで取り扱われるモジュールの集合
と定義することにより、「セクション4」および「セク
ション5」で「モジュール2」の取り扱い規定を別々に
設けることができる。それにより、同じ機能を持ちなが
ら異なる取り扱い規定としなければならないモジュール
を、空間識別子233,234によりぞれぞれ示される
「空間3」および「空間4」という論理アドレス空間に
おいて、タスク識別子243,244により示される
「タスク3」および「タスク4」の間で共有することが
できる。
【0059】本実施の形態では、アドレス変換表105
およびアドレス変換表切り換え手段107は論理アドレ
ス空間切り換え手段に相当し、セクション定義102お
よび空間定義103が第1の定義に相当する。
【0060】(実施の形態2)図5は本発明の実施の形
態2におけるメモリ管理装置の一構成例を示すブロック
図である。
【0061】図5に示すメモリ管理装置400は、複数
のアドレス変換表405、配置手段404、マッピング
手段406およびアドレス変換表切り換え手段407を
備える。
【0062】図5のメモリ管理装置400は、図1のメ
モリ管理装置100と同様に複数のモジュール情報10
1と複数のセクション定義102と複数の空間定義40
3とを保持している。
【0063】図5に示すメモリ管理装置400は、図1
に示すメモリ管理装置200と異なり、複数のタスク定
義408をさらに保持している。メモリ管理装置400
は、タスク定義408を保持しているので、アドレス変
換表切り換え手段407の機能がメモリ管理装置100
のアドレス変換表切り換え手段107と相違する。ま
た、タスク定義408の有無に伴い空間定義403の内
容が空間定義103の内容と相違する。それら空間定義
103,403の内容の相違に伴い、メモリ管理装置1
00とメモリ管理装置400との間で、配置手段404
およびマッピング手段406の機能ならびにアドレス変
換表405の内容が配置手段104およびマッピング手
段106の機能ならびにアドレス変換表105の内容と
相違する。
【0064】タスク定義408は、タスクごとに、タス
クに所属する論理アドレス空間を識別するための空間識
別子を定義する。そのため、空間定義403は、メモリ
管理装置100の空間定義103とは異なり、空間識別
子が示す論理アドレス空間が所属するタスクを識別する
タスク識別子を定義せず、空間識別子とその空間識別子
が示す論理アドレス空間に所属するセクションを識別す
るためのセクション識別子とを定義する。
【0065】アドレス変換表405は、モジュール情報
101、セクション定義102および空間定義403に
基づき作成される。複数のアドレス変換表405は、そ
れぞれ複数の論理アドレス空間の中の1つと一対一に対
応しており、対応する論理アドレス空間における論理ア
ドレスと物理アドレスとの対応関係を示している。
【0066】配置手段404およびマッピング手段40
6はこのアドレス変換表405を作成する。その際、配
置手段404は、モジュール情報101とセクション定
義102と空間定義403とに基づき、複数の論理アド
レス空間のそれぞれに所属するセクションを読み取り、
複数の論理アドレス空間のそれぞれのセクションについ
てモジュールの配置を決定する。マッピング手段406
は、アドレス変換表405を作成することによって、各
論理アドレス空間における論理アドレスと物理アドレス
との対応関係を決定するためのマッピングを行う。
【0067】アドレス変換表切り換え手段407は、タ
スクの切り換え指示に応じて、タスク定義408に基づ
き、アドレス変換表405を切り換える。
【0068】図6は、メモリ管理装置400が保持して
いるモジュール情報101、セクション定義102、空
間定義403およびタスク定義408の一例を示す概念
図である。
【0069】図6のモジュール情報101およびセクシ
ョン定義102の構成は、それぞれ図2の同一符号のも
のと同様である。
【0070】図6に示す空間定義403には、「空間
1」および「空間2」という論理アドレス空間をそれぞ
れ示す空間識別子531,532と、各空間識別子53
1,532が示す論理アドレス空間に所属する「セクシ
ョン1」、「セクション2」および「セクション3」と
いうセクションをそれぞれ示すセクション識別子221
〜223とが定義されている。
【0071】タスク定義408には、3つの「タスク
1」、「タスク2」および「タスク3」というタスクを
識別するためのタスク識別子541〜543と、各タス
ク識別子541〜543がそれぞれ示すタスクに所属す
る「空間1」および「空間2」という論理アドレス空間
を識別するための空間識別子531,532とが定義さ
れている。
【0072】メモリ管理装置400においては、図6に
示すモジュール情報101、セクション定義102およ
び空間定義403を用いて空間識別子531,532で
それぞれ示される「空間1」および「空間2」という論
理アドレス空間について、実施の形態1のメモリ管理装
置100と同様に、表1および表2に示すアドレス変換
表を作成することによって、マッピングを行う。
【0073】図3に示すマッピングを行うためにメモリ
管理装置400はシステム初期化時に、マッピング手段
406を起動する。起動されたマッピング手段406
は、さらに配置手段404を起動する。
【0074】配置手段404は、空間定義403を参照
し、空間識別子531で示される「空間1」という論理
アドレス空間にセクション識別子221で示される「セ
クション1」が所属することを読み取る。
【0075】次に配置手段404は、セクション定義1
02を参照し、セクション識別子221で示される「セ
クション1」にモジュール識別子211で示される「モ
ジュール1」が所属することを読み取る。さらに、配置
手段404は、モジュール情報101を参照し、モジュ
ール識別子221で示される「モジュール1」のコード
アドレス、コードサイズ、データアドレスおよびデータ
サイズを読み取る。
【0076】そして、配置手段404は、モジュール識
別子221で示される「モジュール1」のコードアドレ
スとデータアドレスとを、空間識別子531で示される
「空間1」という論理アドレス空間上に配置する。それ
により、「空間1」に「モジュール1」が配置される。
【0077】次に、配置手段404は、空間識別子53
1で示される「空間1」という論理アドレス空間にセク
ション識別子222で示される「セクション2」が所属
することを読み取り、「セクション1」の場合と同様
に、空間定義403とセクション定義102とモジュー
ル情報101の定義と記述に基づき、モジュール識別子
212で示される「モジュール2」のコードアドレスと
データアドレスとを空間識別子531で示される「空間
1」という論理アドレス空間上に配置する。それによ
り、「空間1」に「モジュール2」が配置される。
【0078】同様に、配置手段404は、空間定義40
3を参照し、空間識別子532で示される「空間2」と
いう論理アドレス空間にセクション識別子222で示さ
れる「セクション2」が所属することを読み取り、空間
定義403とセクション定義102とモジュール情報1
01とに基づき、モジュール識別子212で示される
「モジュール2」のコードアドレスとデータアドレスと
を空間識別子532で示される「空間2」という論理ア
ドレス空間上に配置する。それにより、「空間2」に
「モジュール2」が配置される。
【0079】また、配置手段404は、空間定義403
を参照し、空間識別子532で示される「空間2」とい
う論理アドレス空間にセクション識別子223で示され
る「セクション3」が所属することを読み取り、空間定
義403とセクション定義102とモジュール情報10
1に基づき、モジュール識別子213で示される「モジ
ュール3」のコードアドレスとデータアドレスとを空間
識別子532で示される「空間2」という論理アドレス
空間上に配置する。それにより、「空間2」に「モジュ
ール3」が配置される。
【0080】マッピング手段406は、空間識別子53
1で示される「空間1」という論理アドレス空間におい
て、配置手段404によってコードアドレスおよびデー
タアドレスが配置された論理アドレスに物理アドレスを
対応させ、表1に示すアドレス変換表105を作成す
る。
【0081】次に、マッピング手段406は、空間識別
子532で示される「空間2」という論理アドレス空間
において、配置手段404によってコードアドレスおよ
びデータアドレスが配置された論理アドレスに物理アド
レスを対応させ、表2に示すアドレス変換表105を作
成する。
【0082】上記の場合、「空間1」および「空間2」
の両方にモジュール識別子212で示される「モジュー
ル2」が所属しているので、配置手段404は、論理ア
ドレス空間LAの論理アドレス「0x1100000
0」および論理アドレス空間LBの論理アドレス「0x
21000000」に「モジュール2」のコードおよび
データをそれぞれ配置する。それにより、マッピング手
段406は、物理アドレス「0x80001000」を
空間識別子531で示される「空間1」という論理アド
レス空間の論理アドレス「0x11000000」およ
び空間識別子532で示される「空間2」という論理ア
ドレス空間の論理アドレス「0x11000000」へ
マッピングする。
【0083】同様に、マッピング手段406は、物理ア
ドレス「0x900001000」を「空間1」という
論理アドレス空間の論理アドレス「0x2100000
00」および「空間2」という論理アドレス空間の論理
アドレス「0x21000000」へマッピングする。
【0084】このように、図3の論理アドレス空間L
A,LBと物理アドレス空間PSとの対応関係と同じよ
うに、空間識別子532で示される「空間2」という論
理アドレス空間LA,LBと物理アドレス空間PSとの
対応関係が決定される。
【0085】システム初期化終了後、アドレス変換表切
り換え手段407は、タスクの切り換え指示に応じて表
1および表2に示したようなアドレス変換表405の切
り換えを行う。その際、アドレス変換表405がタスク
と論理アドレス空間との関係を規定していないので、ア
ドレス変換表切り換え手段407は、タスク定義408
を参照する。
【0086】例えばタスク識別子541で示される「タ
スク1」を実行した後に、タスク識別子543で示され
る「タスク3」を実行する場合、タスク定義408によ
って「タスク1」が空間識別子531で示される「空間
1」という論理アドレス空間に関連づけられているとと
もに「タスク3」が空間識別子543で示される「空間
2」という論理アドレス空間に関連づけられているの
で、アドレス変換表切り換え手段407は、空間識別子
531で示される「空間1」に対応した表1から空間識
別子532で示される「空間2」に対応した表2へと切
り換える。
【0087】一方、タスク識別子541で示される「タ
スク1」を実行した後にタスク識別子542で示される
「タスク2」を実行する場合、タスク定義408によっ
て「タスク1」が「空間1」に関連づけられているとと
もに「タスク2」が「空間1」に関連づけられているの
で、タスク識別子541,542でそれぞれ示される
「タスク1」および「タスク2」が空間識別子531で
示される「空間1」という同じ論理アドレス空間を用い
るため、アドレス変換表切り換え手段407はアドレス
変換表405の切り換えを行わない。
【0088】本実施の形態のメモリ管理装置400は、
以上のように構成されており、実施の形態1のメモリ管
理装置100と同様の効果を奏する。
【0089】さらに、本実施の形態のメモリ管理装置4
00によれば、タスク識別子541〜543でそれぞれ
示される「タスク1」〜「タスク3」と空間識別子53
1,532でそれぞれ示される論理アドレス空間の関連
のみを示しかつ論理アドレス空間とモジュール識別子2
11〜213で示される「モジュール1」〜「モジュー
ル3」との対応関係を定義しないタスク定義408に基
づき、アドレス変換表切り換え手段407がタスクの切
り換え指示に応じた論理アドレス空間の切り換えを行
う。
【0090】それにより、タスクの切り換え前後で論理
アドレス空間が同じ場合には、アドレス変換表405の
切り換えを行わないことによって、論理アドレス空間の
切り換えを行わないようにすることができる。つまり、
メモリ管理装置400は、異なるタスク識別子541,
542で示される「タスク1」および「タスク2」の間
で空間識別子531で示される「空間1」という論理ア
ドレス空間531の全体を共有することができる。
【0091】本実施の形態では、配置手段404および
マッピング手段406が配置・マッピング手段に相当
し、アドレス変換表405およびアドレス変換表切り換
え手段407が論理アドレス空間切り換え手段に相当
し、タスク定義408が第2の定義に相当する。
【0092】(実施の形態3)図7は本発明の実施の形
態3におけるメモリ管理装置の一構成例を示すブロック
図である。
【0093】図7に示すメモリ管理装置600が図5に
示すメモリ管理装置400と異なるのは、要求受付手段
609とメモリアクセス手段610とをさらに備えてい
る点である。図7において図5と同一または相当する部
分に同一符号を付している。
【0094】メモリ管理装置600の要求受付手段60
9は、デバッガからの要求を受け付ける。メモリアクセ
ス手段610は、要求受付手段609がメモリアクセス
要求を受け付けたときに、アドレス変換動作の状態に応
じてメモリアクセスを実行する。
【0095】図7のメモリ管理装置600におけるアド
レス変換表405の作成とアドレス変換表405の切り
換えは、図5のメモリ管理装置400と同様に実行され
る。
【0096】メモリ管理装置600の要求受付手段60
9は、デバッグ時に、例えばブレークポイント設定等の
メモリリード/ライト処理をデバッガが行う場合に、デ
バッガからのアクセス要求を受け付ける。メモリアクセ
ス要求を受け付けた要求受付手段609はメモリアクセ
ス手段610を起動する。メモリアクセス手段610
は、アドレス変換表405を用いたアドレス変換が可能
なときには、アドレス変換表405を用いて論理アドレ
スを物理アドレスに変換してメモリアクセスを行う。
【0097】一方、メモリアクセス手段610は、例え
ばシステム初期化が終了していない等の理由によりアド
レス変換表405を用いたアドレス変換が不可能な状態
のときにはアドレス変換表405を用いずに、直接に物
理アドレスに基づくメモリアクセスを行う。
【0098】本実施の形態のメモリ管理装置600によ
れば、アドレス変換表405の状態によらずメモリアク
セスを行うことができ、例えばシステム初期化が終了し
ていないためにアドレス変換表405を用いて動作する
ことができなくてもデバッガからのメモリアクセス要求
に対し矛盾なく対応することができる。
【0099】本実施の形態では、アドレス変換表405
がアドレス変換手段に相当する。なお、実施の形態3の
説明においては、要求受付手段609がデバッガからの
要求を受け付ける場合について説明したが、要求受付手
段609が受け付けるメモリアクセス要求はデバッガか
らの要求に限られるものではなく、メモリ管理装置60
0の周辺装置からのメモリアクセス要求であればよい。
【0100】また、実施の形態3のメモリ管理装置60
0は実施の形態2のメモリ管理装置400に要求受付手
段609とメモリアクセス手段610とをさらに備えて
構成したが、図8に示すメモリ管理装置700のよう
に、実施の形態1のメモリ管理装置100に要求受付手
段609とメモリアクセス手段610とをさらに備えて
構成することもできる。なお、図8において図1と同一
または相当する部分に同一符号を付している。
【0101】なお、実施の形態1〜3のメモリ管理装置
100,400,600,700においては、配置手段
104,404によって、共有するモジュールを異なる
論理アドレス空間における同一論理アドレスに配置して
同一のモジュールの論理アドレスを同一の物理アドレス
に割り付けているが、共有するモジュールを異なる論理
アドレス空間における異なる論理アドレスに配置して同
一のモジュールの論理アドレスを同一の物理アドレスに
割り付けるようにしてもよい。
【0102】また、実施の形態1〜3においては、モジ
ュール情報101にプログラムのコードおよびデータの
みに関する情報が記述されている場合について示したが
スタックや初期値を有するデータ等の情報が記述されて
いてもよく、これらの情報をマッピングすることができ
る。
【0103】
【発明の効果】本発明に係るメモリ管理装置によれば、
必要なモジュール以外は異なるタスク間でメモリに直接
アクセスすることを禁止し、必要なモジュールのみ異な
るタスク間で共有させることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるメモリ管理装置の
一構成例を示すブロック図
【図2】図1のメモリ管理装置が保持するモジュール情
報とセクション定義と空間定義の一例を示す概念図
【図3】図1のメモリ管理装置が行うマッピングの一例
を示す概念図
【図4】図1のメモリ管理装置が保持するモジュール情
報とセクション定義と空間定義の他の例を示す概念図
【図5】本発明の実施の形態2によるメモリ管理装置の
一構成例を示すブロック図
【図6】図5のメモリ管理装置が保持するモジュール情
報とセクション定義と空間定義とタスク定義の一例を示
す概念図
【図7】本発明の実施の形態3によるメモリ管理装置の
一構成例を示すブロック図
【図8】本発明の実施の形態3によるメモリ管理装置の
他の構成例を示すブロック図
【図9】従来のメモリ管理装置の一構成例を示すブロッ
ク図
【符号の説明】
100,400,600,700 メモリ管理装置 101,101a モジュール情報 102,102a セクション定義 103,103a,403,403a 空間定義 104,404 配置手段 105,405 アドレス変換表 106,406 マッピング手段 107,407 アドレス変換表切り換え手段 408 タスク定義 609 要求受付手段 610 メモリアクセス手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 メモリの物理アドレスを複数の論理アド
    レスへ対応付けるメモリ管理装置であって、 複数の論理アドレス空間と複数のモジュールとの対応関
    係を示す第1の定義に基づいて、複数の論理アドレス空
    間のそれぞれにモジュールを配置する配置手段と、 複数のモジュールの物理アドレスを示すモジュール情報
    に基づいて、前記配置手段によりモジュールが配置され
    た論理アドレス空間の論理アドレスへ物理アドレスを対
    応付けるマッピング手段と、 タスクの切り換え指示に応答して、前記マッピング手段
    により対応付けられた前記複数の論理アドレス空間の切
    り換えを行う論理アドレス空間切り換え手段とを備えた
    ことを特徴とするメモリ管理装置。
  2. 【請求項2】 前記第1の定義は、前記複数の論理アド
    レス空間にそれぞれ所属するセクションを定義する空間
    定義と、各セクションに所属する一または複数のモジュ
    ールを定義するセクション定義とを含むことを特徴とす
    る請求項1記載のメモリ管理装置。
  3. 【請求項3】 前記論理アドレス空間切り換え手段は、
    前記複数の論理アドレス空間のそれぞれに複数のタスク
    のいずれかを対応付ける第2の定義に基づいて、前記複
    数の論理アドレス空間の切り換えを行うことを特徴とす
    る請求項1または2記載のメモリ管理装置。
  4. 【請求項4】 前記マッピング手段の対応付けに応じて
    論理アドレスと物理アドレスとの間のアドレス変換を行
    うアドレス変換手段と、 周辺装置からのメモリアクセス要求を受け付ける要求受
    付手段と、 前記要求受付手段がメモリアクセス要求を受け付けた場
    合、前記アドレス変換手段によって物理アドレスと論理
    アドレスとの間のアドレス変換が可能な状態のときに
    は、前記アドレス変換手段を用いて論理アドレスに基づ
    くメモリアクセスを行い、前記アドレス変換手段による
    アドレス変換が不可能な状態のときには、物理アドレス
    に基づくメモリアクセスを行うメモリアクセス手段とを
    さらに備えたことを特徴とする請求項1〜3のいずれか
    に記載のメモリ管理装置。
JP16170399A 1999-06-08 1999-06-08 メモリ管理装置 Expired - Fee Related JP4331325B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16170399A JP4331325B2 (ja) 1999-06-08 1999-06-08 メモリ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16170399A JP4331325B2 (ja) 1999-06-08 1999-06-08 メモリ管理装置

Publications (2)

Publication Number Publication Date
JP2000347940A true JP2000347940A (ja) 2000-12-15
JP4331325B2 JP4331325B2 (ja) 2009-09-16

Family

ID=15740279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16170399A Expired - Fee Related JP4331325B2 (ja) 1999-06-08 1999-06-08 メモリ管理装置

Country Status (1)

Country Link
JP (1) JP4331325B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021533455A (ja) * 2018-07-31 2021-12-02 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 仮想化用のgpuタスクコンテナとしてのvmid

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54161237A (en) * 1978-06-12 1979-12-20 Hitachi Ltd Address converting method
JPH02114343A (ja) * 1988-10-25 1990-04-26 Matsushita Electric Ind Co Ltd 共用メモリ管理方式
JPH02116940A (ja) * 1988-10-27 1990-05-01 Fujitsu Ltd 間接ポインタを用いたページ共有方式
JPH03154945A (ja) * 1989-11-13 1991-07-02 Hitachi Ltd 共有メモリ管理方式
JPH0512125A (ja) * 1991-07-04 1993-01-22 Nec Corp アドレス変換方式
JPH0934790A (ja) * 1995-07-20 1997-02-07 Fujitsu Ltd プログラムの共用装置と方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54161237A (en) * 1978-06-12 1979-12-20 Hitachi Ltd Address converting method
JPH02114343A (ja) * 1988-10-25 1990-04-26 Matsushita Electric Ind Co Ltd 共用メモリ管理方式
JPH02116940A (ja) * 1988-10-27 1990-05-01 Fujitsu Ltd 間接ポインタを用いたページ共有方式
JPH03154945A (ja) * 1989-11-13 1991-07-02 Hitachi Ltd 共有メモリ管理方式
JPH0512125A (ja) * 1991-07-04 1993-01-22 Nec Corp アドレス変換方式
JPH0934790A (ja) * 1995-07-20 1997-02-07 Fujitsu Ltd プログラムの共用装置と方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021533455A (ja) * 2018-07-31 2021-12-02 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 仮想化用のgpuタスクコンテナとしてのvmid
JP7123235B2 (ja) 2018-07-31 2022-08-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 仮想化用のgpuタスクコンテナとしてのvmid
US11467870B2 (en) 2018-07-31 2022-10-11 Advanced Micro Devices, Inc. VMID as a GPU task container for virtualization

Also Published As

Publication number Publication date
JP4331325B2 (ja) 2009-09-16

Similar Documents

Publication Publication Date Title
JP3546678B2 (ja) マルチos構成方法
US7712104B2 (en) Multi OS configuration method and computer system
EP0192232B1 (en) Data processing apparatus
US7543126B2 (en) Apparatus, system, and method for implementing protected virtual memory subcontexts
US4779187A (en) Method and operating system for executing programs in a multi-mode microprocessor
US5561788A (en) Method and system for executing programs using memory wrap in a multi-mode microprocessor
US4825358A (en) Method and operating system for executing programs in a multi-mode microprocessor
US5887189A (en) Microcontroller system for performing operations of multiple microcontrollers
US7213125B2 (en) Method for patching virtually aliased pages by a virtual-machine monitor
US4943913A (en) Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
JPH0290330A (ja) プログラム構成方式
US20140337585A1 (en) Page table management
JP2009211698A (ja) データ処理装置および処理回路上で実行される仮想機械によるセキュア・メモリへのアクセス制御方法
JPS6248258B2 (ja)
WO2001046800A2 (en) Dual-mode processor
JP2005509946A (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US20100082929A1 (en) Memory protection method, information processing apparatus, and computer-readable storage medium that stores memory protection program
JP5491102B2 (ja) データプロセッサ
JP2005512228A (ja) 強化されたメモリアクセスセキュリティを提供する、メモリに対するデバイスのアクセスを制御するシステムおよび方法
JP4026667B2 (ja) マルチos構成方法
US20050022192A1 (en) Apparatus and method for simultaneous multi-thread processing
US7555627B2 (en) Input-output control apparatus, input-output control method, process control apparatus and process control method
US8091090B2 (en) Method for providing scratch registers for use by a virtual-machine monitor
KR20010078371A (ko) 컴퓨터 시스템 프로세서의 현재 특권 레벨 승격 방법 및컴퓨터 시스템의 인스트럭션 실행 방법
JP2001142737A (ja) メモリ管理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090519

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees