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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
中でタスクにとって不必要なコードやデータが記憶され
ているメモリ領域に対して当該タスクが直接アクセスす
ることを禁止することができるメモリ管理装置を提供す
る。 【解決手段】 配置手段104は、プログラムに関する
情報を記述しているモジュール情報101とモジュール
の集合を示すセクション定義102と論理アドレス空間
に属するセクションを定義する空間定義103とを用い
て論理アドレス空間にモジュールを配置する。マッピン
グ手段106は、配置されたモジュールを論理アドレス
空間ごとにマッピングしてアドレス変換表105を作成
する。アドレス変換表切り換え手段107は、タスク切
り換えの指示に応じてそのタスクに対応する論理アドレ
ス空間のアドレス変換表105に切り換える。
Description
テムで用いられるメモリ管理装置に関するものである。
プログラムコードを配置した、いわゆる組み込み型マイ
クロコンピュータ制御システムにおいて、対象システム
の複雑化に伴いプログラムサイズが増大しており、マル
チタスクシステムを構成することが通例となっている。
マルチタスクシステムにおいて、あるタスクが他のタス
クで用いられる記憶情報を破壊するようなバグを持って
いる場合、バグの追求は非常に困難なため、解決に膨大
な時間を要する。
には、実行段階で機能する保護機構が搭載されつつあ
る。そこで、上記のような問題を解決するため、そのよ
うな保護機構を利用して、バグが発生しうるプログラム
を非特権モードで動作させ、バグが発生しえないプログ
ラムを特権モードで動作させることによってマルチタス
クシステムの誤動作を防止する方法が考えられる。
モードおよび非特権モードのいずれで動作させるかを決
定することが困難である。また、同じモードで動作する
プログラム同士は互いに破壊することができるため、完
全に問題を解決することはできない。
ンピュータ等のコンピュータの分野では、メモリ管理装
置(MMU)を利用して各タスクを別の論理アドレス空
間で動作させ、タスク間でメモリに直接アクセスできな
いようにすることによってこの問題を解決しているもの
がある。最近の機器組み込み用マイクロプロセッサの中
にはメモリ管理装置を搭載しているものもあるため、こ
のようなマイクロプロセッサでは、上記の問題を解決す
るためにコンピュータと同じようにタスク間でメモリに
直接アクセスできないように構成することが考えられ
る。
制御システムでは、多くのタスクがコードやデータを共
有して密接に協調して動作するため、機器組み込み用マ
イクロプロセッサにおいては、別々の論理アドレス空間
にタスクを分割することは非常に困難である。
も存在し、従来のメモリ管理装置においては、タスク間
で直接アクセス可能な共有メモリを実現している。
に記載されている共有メモリ管理方式を用いて共有メモ
リを実現するための従来のメモリ管理装置の一構成例を
示すブロック図である。
リ領域情報801および空間情報802を保持してい
る。メモリ領域情報801には、メモリ領域を識別する
ためのメモリ領域識別子とそのメモリ領域識別子が示す
メモリ領域のメモリサイズ等のメモリ領域に関する情報
とがメモリ領域ごとに記述されている。空間情報802
には、論理アドレス空間を識別するための空間識別子と
その空間識別子が示す論理アドレス空間に属するメモリ
領域とが論理アドレス空間ごとに記述されている。
換表803、マッピング手段804およびアドレス変換
表切り換え手段805を備える。マッピング手段804
は、アドレス変換表803を作成することによってメモ
リ領域を論理アドレス空間にマッピングする。アドレス
変換表803は、各論理アドレス空間ごとに設けられ、
物理アドレスと論理アドレスとの間の変換を行う際に物
理アドレスと論理アドレスとの対応関係を指示する。ア
ドレス変換表切り換え手段805は、タスクを切り換え
る時にアドレス変換表803を切り換えることによって
論理アドレス空間を切り換える。
おいては、タスクが発行する共有メモリのマッピング要
求に応じてマッピング手段804が起動される。マッピ
ング手段804は、マッピングすべき共有メモリについ
てメモリ領域情報801を参照し、マッピングすべき論
理アドレス空間について空間情報802を参照し、そし
てアドレス変換表803を作成することによって、共有
メモリのメモリ領域を論理アドレス空間にマッピングす
る。さらに、別のタスクで共有メモリのマッピング要求
が発行された場合にも、図9のメモリ管理装置800
は、同様の処理を行う。このように、複数のタスク間で
共有可能なメモリ領域を論理アドレス空間にマッピング
することによって、アドレス変換表切り換え手段805
が論理アドレス空間を切り換えてもメモリ領域を共有す
ることが可能となる。
ように構成された従来のメモリ管理装置800において
は、タスクからの要求によって確保して共有しているメ
モリ領域では、各タスクが動的に確保してアクセスする
バッファメモリやデータ構造に関してタスク間で共有で
きるのみであるため、プログラムで直接記述したコード
やデータについては共有することができず、問題の解決
にはならない。
となく必要なモジュールのみ必要なタスク間で共有さ
せ、それ以外はタスク間でメモリに直接アクセスでき
ず、メモリに記憶されているタスクの内容が破壊される
のを防止して信頼性の高いシステムを容易に構築するこ
とができるメモリ管理装置を提供することである。
レスを複数の論理アドレスへ対応付けるメモリ管理装置
であって、複数の論理アドレス空間を複数のモジュール
との対応関係を示す第1の定義に基づいて、複数の論理
アドレス空間のそれぞれにモジュールを配置する配置手
段と、複数のモジュールの物理アドレスを示すモジュー
ル情報に基づいて、配置手段によりモジュールが配置さ
れた論理アドレス空間の論理アドレスへ物理アドレスを
対応付けるマッピング手段と、タスクの切り換え指示に
応答して、マッピング手段により対応付けられた複数の
論理アドレス空間の切り換えを行う論理アドレス空間切
り換え手段とを備えたものである。
配置手段により第1の定義に基づいて複数の論理アドレ
ス空間のそれぞれにモジュールが配置され、配置された
論理アドレス空間の論理アドレスへ物理アドレスがモジ
ュール情報に基づいてマッピング手段により対応付けら
れる。そのため、切り換え手段によりタスクの切り換え
指示に応答して論理アドレス空間の切り換えが行われれ
ば、切り換え前後の論理アドレス空間とモジュールとの
対応関係がそれぞれ第1の定義に示されているように定
まる。したがって、異なるタスクにおいて必要とされる
同一のモジュールが第1の定義により異なるタスクに共
通に対応することが示されていればその同一のモジュー
ルは共有することができる。しかし、共有されるモジュ
ール以外のモジュールは、異なるタスクの一方にのみ対
応することが第1の定義で示されているので共有されな
い。それにより、必要なモジュール以外は異なるタスク
間でメモリに直接アクセスすることを禁止し、必要なモ
ジュールのみ異なるタスク間で共有させることができ
る。
メモリ管理装置の構成において、第1の定義は、複数の
論理アドレス空間にそれぞれ所属するセクションを定義
する空間定義と、各セクションに所属する一または複数
のモジュールを定義するセクション定義とを含むもので
ある。
ルの配置は、配置手段によりモジュールの集合を示すセ
クション単位で決定される。そのため、モジュールが属
するセクションごとにモジュールの取り扱い規定を別々
に設けることができ、同じ機能を持ちながら異なる取り
扱い規定としなければならないモジュールを、取り扱い
規定の異同に係わらず、複数のタスク間で共有すること
ができるようになる。
発明に係るメモリ管理装置の構成において、論理アドレ
ス空間切り換え手段は、複数の論理アドレス空間のそれ
ぞれに複数のタスクのいずれかを対応付ける第2の定義
に基づいて、複数の論理アドレス空間の切り換えを行う
ものである。
により、論理アドレス空間とモジュールとの対応関係を
規定しない第2の定義に基づきタスクの切り換え指示に
応じた論理アドレス空間の切り換えが行われる。そのた
め、タスク切り換え時にタスクの切り換え前後で論理ア
ドレス空間が同じ場合には、論理アドレス空間の切り換
えを行わないようにすることができる。すなわち、異な
るタスク間で同一の論理アドレス空間全体を共有するこ
とができる。
れかの発明に係るメモリ管理装置の構成において、対応
付けに応じて論理アドレスと物理アドレスとの間のアド
レス変換を行うアドレス変換手段と、周辺装置からのメ
モリアクセス要求を受け付ける要求受付手段と、要求受
付手段がメモリアクセス要求を受け付けた場合、アドレ
ス変換手段によって物理アドレスと論理アドレスとの間
のアドレス変換が可能な状態のときには、アドレス変換
手段を用いて論理アドレスに基づくメモリアクセスを行
い、アドレス変換手段によるアドレス変換が不可能な状
態のときには、物理アドレスに基づくメモリアクセスを
行うメモリアクセス手段とをさらに備えたものである。
要求を要求受付手段が受け付けた場合、メモリアクセス
手段によりアドレス変換手段のアドレス変換が可能なと
きには論理アドレスに基づくメモリアクセスが行われ、
不可能なときには物理アドレスに基づくメモリアクセス
が行われる。そのため、アドレス変換手段の状態によら
ずメモリアクセスを行うことができ、例えばアドレス変
換手段のマッピングが終了していないためアドレス変換
手段が動作することができなくても周辺装置からのメモ
リアクセス要求に対し矛盾なく対応することができる。
実施の形態1におけるメモリ管理装置について説明す
る。図1は、実施の形態1におけるメモリ管理装置の一
構成例を示すブロック図である。
ジュール情報101、複数のセクション定義102およ
び複数の空間定義103を保持している。
別するためのモジュール識別子と、そのモジュール識別
子が示すモジュールのコードやデータのサイズ等のプロ
グラムに関する情報とをモジュールごとに記述してい
る。
ンを識別するためのセクション識別子と、そのセクショ
ン識別子が示すセクションに所属する1つまたは複数の
モジュールを識別するためのモジュール識別子とをセク
ションごとに定義する。
空間を識別するための空間識別子と、その空間識別子が
示す論理アドレス空間に所属する1つまたは複数のセク
ションを識別するためのセクション識別子と、その空間
識別子が示す論理アドレス空間に切り換えるタスクを識
別するタスク識別子とを論理アドレス空間ごとに定義す
る。
4、複数のアドレス変換表105、マッピング手段10
6およびアドレス変換表切り換え手段107を備える。
とセクション定義102と空間定義103とに基づき、
複数の論理アドレス空間のそれぞれに所属するセクショ
ンを読み取り、複数の論理アドレス空間のそれぞれのセ
クションについてモジュールの配置を決定する。すなわ
ち、配置手段104は、複数の論理アドレス空間のそれ
ぞれにおいてモジュールの配置を決定する。
105を作成することによって、論理アドレス空間ごと
に配置されているモジュールについて論理アドレスと物
理アドレスとの対応関係を決定するためのマッピングを
行う。
は、複数の論理アドレス空間の中の1つと一対一に対応
しており、そのためそれぞれ複数のタスクの中の1つと
一対に一に対応しており、対応する論理アドレス空間
(タスク)における論理アドレスと物理アドレスとの対
応関係を示している。
スクの切り換え指示に応じて、アドレス変換表105を
切り換える。アドレス変換表105が論理アドレス空間
と一対一に対応していることからアドレス変換表105
の切り換えは論理アドレス空間の切り換えを意味する。
06およびアドレス変換表切り換え手段107は、CP
U(中央演算処理装置)がROM(リードオンリメモ
リ)等の記憶装置に記憶されたプログラムをRAM(ラ
ンダムアクセスメモリ)等のメモリ上で実行することに
より実現される。また、モジュール情報101、セクシ
ョン定義102および空間定義103は、ファイルとし
てROM、ハードディスク装置等の記憶装置に予め記憶
される。さらに、アドレス変換表105は、マッピング
手段106により作成された後、RAM、ハードディス
ク装置等の記憶装置に格納される。
いるモジュール情報101、セクション定義102およ
び空間定義103の一例を示す概念図である。図3は、
メモリ管理装置100が行ったマッピングの一例を示す
概念図である。
ュール1」、「モジュール2」および「モジュール3」
というモジュールをそれぞれ示すモジュール識別子21
1〜213と、各モジュール識別子211〜213が示
すモジュールのコードアドレス、コードサイズ、データ
アドレスおよびデータサイズとが記述されている。
1」、「セクション2」および「セクション3」という
セクションをそれぞれ示すセクション識別子221〜2
23と、各セクション識別子221〜223が示すセク
ションにそれぞれ属する「モジュール1」、「モジュー
ル2」および「モジュール3」というモジュールをそれ
ぞれ示すモジュール識別子211〜213とが定義され
ている。
「空間2」という論理アドレス空間をそれぞれ示す空間
識別子231,232と、各空間識別子231,232
が示す論理アドレス空間に属する「セクション1」、
「セクション2」および「セクション3」というセクシ
ョンをそれぞれ示すセクション識別子221〜223
と、各空間識別子231,232が示す論理アドレス空
間が属する「タスク1」および「タスク2」というタス
クをそれぞれ示すタスク識別子241,242とが定義
されている。
ョン定義102と空間定義103とを用いて、空間識別
子231,232で示される「空間1」および「空間
2」という論理アドレス空間について、それぞれ表1お
よび表2に示すアドレス変換表を作成することによっ
て、図3に示すマッピングを行う。
ス空間LA,LBと物理アドレス空間PSとの対応関係
が示されている。本例では、論理アドレス空間LAが
「空間1」に相当し、論理アドレス空間LBが「空間
2」に相当する。
リ管理装置100はシステム初期化時に、マッピング手
段106を起動する。起動されたマッピング手段106
は、さらに配置手段104を起動する。
し、空間識別子231により示される「空間1」という
論理アドレス空間にセクション識別子221により示さ
れる「セクション1」が所属することを読み取る。
02を参照し、セクション識別子221により示される
「セクション1」にモジュール識別子211により示さ
れる「モジュール1」が所属することを読み取る。
報101を参照し、モジュール識別子211により示さ
れる「モジュール1」のコードアドレス、コードサイ
ズ、データアドレスおよびデータサイズを読み取る。そ
して、配置手段104は、モジュール識別子211によ
り示される「モジュール1」のコードアドレスおよびデ
ータアドレスを、空間識別子231により示される「空
間1」という論理アドレス空間上に配置する。それによ
り、「モジュール1」が「空間1」に配置される。
1により示される「空間1」という論理アドレス空間に
セクション識別子222により示される「セクション
2」が所属することを読み取り、「セクション1」の場
合と同様に、空間定義103とセクション定義102と
モジュール情報101に基づき、モジュール識別子21
2により示される「モジュール2」のコードアドレスと
データアドレスとを空間識別子231により示される
「空間1」という論理アドレス空間上に配置する。それ
により、「モジュール2」が「空間1」に配置される。
3を参照し、空間識別子232により示される「空間
2」という論理アドレス空間にセクション識別子222
により示される「セクション2」が所属することを読み
取り、空間定義103とセクション定義102とモジュ
ール情報101に基づき、モジュール識別子212に示
される「モジュール2」のコードアドレスとデータアド
レスとを空間識別子232により示される「空間2」と
いう論理アドレス空間上に配置する。それにより、「モ
ジュール2」が「空間2」に配置される。
を参照し、空間識別子232により示される「空間2」
という論理アドレス空間にセクション識別子223によ
り示される「セクション3」が所属することを読み取
り、空間定義103とセクション定義102とモジュー
ル情報101に基づき、モジュール識別子213により
示される「モジュール3」のコードアドレスとデータア
ドレスとを空間識別子232により示される「空間2」
という論理アドレス空間上に配置する。それにより、
「モジュール3」が「空間2」に配置される。
1により示される「空間1」という論理アドレス空間に
おいて、配置手段104によってコードアドレスおよび
データアドレスが配置された論理アドレスに物理アドレ
スを対応させ、表1に示すアドレス変換表105を作成
する。
子232により示される「空間2」という論理アドレス
空間において、配置手段104によってコードおよびデ
ータが配置された論理アドレスに物理アドレスを対応さ
せ、表2に示すアドレス変換表105を作成する。
の両方にモジュール識別子212により示される「モジ
ュール2」が所属しているので、配置手段104は、論
理アドレス空間LAの論理アドレス「0x110000
00」および「0x21000000」に「モジュール
2」のコードアドレスおよびデータアドレスをそれぞれ
配置する。それにより、マッピング手段106は、物理
アドレス「0x80001000」を論理アドレス空間
LAの論理アドレス「0x11000000」および論
理アドレス空間LBの論理アドレス「0x110000
00」へマッピングする。
ドレス「0x90001000」を論理アドレス空間L
Aの論理アドレス「0x21000000」および論理
アドレス空間LBの論理アドレス「0x2100000
0」へマッピングする。
A,LBと物理アドレス空間PSとの対応関係が決定さ
れる。
変換表105を作成する際に、空間定義103を参照し
てタスクと論理アドレス空間との関連づけを行ってい
る。アドレス変換表切り換え手段107は、表1が「タ
スク1」に対応し、表2が「タスク2」に対応するとい
う情報を保持している。
り換え手段107は、タスクの切り換え指示に応じて、
表1および表2に示したようなアドレス変換表105の
切り換えを行う。
る「タスク1」を行った後に、タスク識別子242によ
り示される「タスク2」を行う場合、アドレス変換表切
り換え手段107は、アドレス変換表105を、空間識
別子231により示される「空間1」という論理アドレ
ス空間に対応した表1から空間識別子232により示さ
れる「空間2」という論理アドレス空間に対応した表2
へと切り換える。つまり、アドレス変換表切り換え手段
107は、アドレス変換表105を切り換えることによ
って、「空間1」から「空間2」への切り換えを行って
いる。
れば、配置手段104およびマッピング手段106によ
って、「空間1」および「空間2」という異なる論理ア
ドレス空間に所属する同一の「モジュール2」が同一の
物理アドレスに割り付けられるように、論理アドレス空
間ごとにマッピングが行われる。それにより、タスクの
切り換えに応じてアドレス変換表切り換え手段107が
「空間1」および「空間2」の切り換えを行っても「モ
ジュール2」を共通に使用することができる。つまり、
メモリ管理装置100では、タスク識別子241により
示される「タスク1」およびタスク識別子242により
示される「タスク2」のような互いに異なる2つのタス
クが同一の「モジュール2」を共有することができる。
ジュール3」と「セクション1」〜「セクション3」と
が一対一で対応する場合について説明したが、図4に示
すようにセクション識別子224により示される1つの
「セクション4」にモジュール識別子211,212に
より示される複数の「モジュール1」および「モジュー
ル2」が対応し、セクション識別子225により示され
る1つの「セクション5」にモジュール識別子212,
213により示される複数の「モジュール2」および
「モジュール3」が対応し、セクション識別子226に
より示される「セクション6」にモジュール識別子21
4により示される「モジュール4」が対応するように構
成することができる。
り扱われるモジュールの集合と定義し、別の「セクショ
ン5」を非特権モードで取り扱われるモジュールの集合
と定義することにより、「セクション4」および「セク
ション5」で「モジュール2」の取り扱い規定を別々に
設けることができる。それにより、同じ機能を持ちなが
ら異なる取り扱い規定としなければならないモジュール
を、空間識別子233,234によりぞれぞれ示される
「空間3」および「空間4」という論理アドレス空間に
おいて、タスク識別子243,244により示される
「タスク3」および「タスク4」の間で共有することが
できる。
およびアドレス変換表切り換え手段107は論理アドレ
ス空間切り換え手段に相当し、セクション定義102お
よび空間定義103が第1の定義に相当する。
態2におけるメモリ管理装置の一構成例を示すブロック
図である。
のアドレス変換表405、配置手段404、マッピング
手段406およびアドレス変換表切り換え手段407を
備える。
モリ管理装置100と同様に複数のモジュール情報10
1と複数のセクション定義102と複数の空間定義40
3とを保持している。
に示すメモリ管理装置200と異なり、複数のタスク定
義408をさらに保持している。メモリ管理装置400
は、タスク定義408を保持しているので、アドレス変
換表切り換え手段407の機能がメモリ管理装置100
のアドレス変換表切り換え手段107と相違する。ま
た、タスク定義408の有無に伴い空間定義403の内
容が空間定義103の内容と相違する。それら空間定義
103,403の内容の相違に伴い、メモリ管理装置1
00とメモリ管理装置400との間で、配置手段404
およびマッピング手段406の機能ならびにアドレス変
換表405の内容が配置手段104およびマッピング手
段106の機能ならびにアドレス変換表105の内容と
相違する。
クに所属する論理アドレス空間を識別するための空間識
別子を定義する。そのため、空間定義403は、メモリ
管理装置100の空間定義103とは異なり、空間識別
子が示す論理アドレス空間が所属するタスクを識別する
タスク識別子を定義せず、空間識別子とその空間識別子
が示す論理アドレス空間に所属するセクションを識別す
るためのセクション識別子とを定義する。
101、セクション定義102および空間定義403に
基づき作成される。複数のアドレス変換表405は、そ
れぞれ複数の論理アドレス空間の中の1つと一対一に対
応しており、対応する論理アドレス空間における論理ア
ドレスと物理アドレスとの対応関係を示している。
6はこのアドレス変換表405を作成する。その際、配
置手段404は、モジュール情報101とセクション定
義102と空間定義403とに基づき、複数の論理アド
レス空間のそれぞれに所属するセクションを読み取り、
複数の論理アドレス空間のそれぞれのセクションについ
てモジュールの配置を決定する。マッピング手段406
は、アドレス変換表405を作成することによって、各
論理アドレス空間における論理アドレスと物理アドレス
との対応関係を決定するためのマッピングを行う。
スクの切り換え指示に応じて、タスク定義408に基づ
き、アドレス変換表405を切り換える。
いるモジュール情報101、セクション定義102、空
間定義403およびタスク定義408の一例を示す概念
図である。
ョン定義102の構成は、それぞれ図2の同一符号のも
のと同様である。
1」および「空間2」という論理アドレス空間をそれぞ
れ示す空間識別子531,532と、各空間識別子53
1,532が示す論理アドレス空間に所属する「セクシ
ョン1」、「セクション2」および「セクション3」と
いうセクションをそれぞれ示すセクション識別子221
〜223とが定義されている。
1」、「タスク2」および「タスク3」というタスクを
識別するためのタスク識別子541〜543と、各タス
ク識別子541〜543がそれぞれ示すタスクに所属す
る「空間1」および「空間2」という論理アドレス空間
を識別するための空間識別子531,532とが定義さ
れている。
示すモジュール情報101、セクション定義102およ
び空間定義403を用いて空間識別子531,532で
それぞれ示される「空間1」および「空間2」という論
理アドレス空間について、実施の形態1のメモリ管理装
置100と同様に、表1および表2に示すアドレス変換
表を作成することによって、マッピングを行う。
管理装置400はシステム初期化時に、マッピング手段
406を起動する。起動されたマッピング手段406
は、さらに配置手段404を起動する。
し、空間識別子531で示される「空間1」という論理
アドレス空間にセクション識別子221で示される「セ
クション1」が所属することを読み取る。
02を参照し、セクション識別子221で示される「セ
クション1」にモジュール識別子211で示される「モ
ジュール1」が所属することを読み取る。さらに、配置
手段404は、モジュール情報101を参照し、モジュ
ール識別子221で示される「モジュール1」のコード
アドレス、コードサイズ、データアドレスおよびデータ
サイズを読み取る。
別子221で示される「モジュール1」のコードアドレ
スとデータアドレスとを、空間識別子531で示される
「空間1」という論理アドレス空間上に配置する。それ
により、「空間1」に「モジュール1」が配置される。
1で示される「空間1」という論理アドレス空間にセク
ション識別子222で示される「セクション2」が所属
することを読み取り、「セクション1」の場合と同様
に、空間定義403とセクション定義102とモジュー
ル情報101の定義と記述に基づき、モジュール識別子
212で示される「モジュール2」のコードアドレスと
データアドレスとを空間識別子531で示される「空間
1」という論理アドレス空間上に配置する。それによ
り、「空間1」に「モジュール2」が配置される。
3を参照し、空間識別子532で示される「空間2」と
いう論理アドレス空間にセクション識別子222で示さ
れる「セクション2」が所属することを読み取り、空間
定義403とセクション定義102とモジュール情報1
01とに基づき、モジュール識別子212で示される
「モジュール2」のコードアドレスとデータアドレスと
を空間識別子532で示される「空間2」という論理ア
ドレス空間上に配置する。それにより、「空間2」に
「モジュール2」が配置される。
を参照し、空間識別子532で示される「空間2」とい
う論理アドレス空間にセクション識別子223で示され
る「セクション3」が所属することを読み取り、空間定
義403とセクション定義102とモジュール情報10
1に基づき、モジュール識別子213で示される「モジ
ュール3」のコードアドレスとデータアドレスとを空間
識別子532で示される「空間2」という論理アドレス
空間上に配置する。それにより、「空間2」に「モジュ
ール3」が配置される。
1で示される「空間1」という論理アドレス空間におい
て、配置手段404によってコードアドレスおよびデー
タアドレスが配置された論理アドレスに物理アドレスを
対応させ、表1に示すアドレス変換表105を作成す
る。
子532で示される「空間2」という論理アドレス空間
において、配置手段404によってコードアドレスおよ
びデータアドレスが配置された論理アドレスに物理アド
レスを対応させ、表2に示すアドレス変換表105を作
成する。
の両方にモジュール識別子212で示される「モジュー
ル2」が所属しているので、配置手段404は、論理ア
ドレス空間LAの論理アドレス「0x1100000
0」および論理アドレス空間LBの論理アドレス「0x
21000000」に「モジュール2」のコードおよび
データをそれぞれ配置する。それにより、マッピング手
段406は、物理アドレス「0x80001000」を
空間識別子531で示される「空間1」という論理アド
レス空間の論理アドレス「0x11000000」およ
び空間識別子532で示される「空間2」という論理ア
ドレス空間の論理アドレス「0x11000000」へ
マッピングする。
ドレス「0x900001000」を「空間1」という
論理アドレス空間の論理アドレス「0x2100000
00」および「空間2」という論理アドレス空間の論理
アドレス「0x21000000」へマッピングする。
A,LBと物理アドレス空間PSとの対応関係と同じよ
うに、空間識別子532で示される「空間2」という論
理アドレス空間LA,LBと物理アドレス空間PSとの
対応関係が決定される。
り換え手段407は、タスクの切り換え指示に応じて表
1および表2に示したようなアドレス変換表405の切
り換えを行う。その際、アドレス変換表405がタスク
と論理アドレス空間との関係を規定していないので、ア
ドレス変換表切り換え手段407は、タスク定義408
を参照する。
スク1」を実行した後に、タスク識別子543で示され
る「タスク3」を実行する場合、タスク定義408によ
って「タスク1」が空間識別子531で示される「空間
1」という論理アドレス空間に関連づけられているとと
もに「タスク3」が空間識別子543で示される「空間
2」という論理アドレス空間に関連づけられているの
で、アドレス変換表切り換え手段407は、空間識別子
531で示される「空間1」に対応した表1から空間識
別子532で示される「空間2」に対応した表2へと切
り換える。
スク1」を実行した後にタスク識別子542で示される
「タスク2」を実行する場合、タスク定義408によっ
て「タスク1」が「空間1」に関連づけられているとと
もに「タスク2」が「空間1」に関連づけられているの
で、タスク識別子541,542でそれぞれ示される
「タスク1」および「タスク2」が空間識別子531で
示される「空間1」という同じ論理アドレス空間を用い
るため、アドレス変換表切り換え手段407はアドレス
変換表405の切り換えを行わない。
以上のように構成されており、実施の形態1のメモリ管
理装置100と同様の効果を奏する。
00によれば、タスク識別子541〜543でそれぞれ
示される「タスク1」〜「タスク3」と空間識別子53
1,532でそれぞれ示される論理アドレス空間の関連
のみを示しかつ論理アドレス空間とモジュール識別子2
11〜213で示される「モジュール1」〜「モジュー
ル3」との対応関係を定義しないタスク定義408に基
づき、アドレス変換表切り換え手段407がタスクの切
り換え指示に応じた論理アドレス空間の切り換えを行
う。
アドレス空間が同じ場合には、アドレス変換表405の
切り換えを行わないことによって、論理アドレス空間の
切り換えを行わないようにすることができる。つまり、
メモリ管理装置400は、異なるタスク識別子541,
542で示される「タスク1」および「タスク2」の間
で空間識別子531で示される「空間1」という論理ア
ドレス空間531の全体を共有することができる。
マッピング手段406が配置・マッピング手段に相当
し、アドレス変換表405およびアドレス変換表切り換
え手段407が論理アドレス空間切り換え手段に相当
し、タスク定義408が第2の定義に相当する。
態3におけるメモリ管理装置の一構成例を示すブロック
図である。
示すメモリ管理装置400と異なるのは、要求受付手段
609とメモリアクセス手段610とをさらに備えてい
る点である。図7において図5と同一または相当する部
分に同一符号を付している。
9は、デバッガからの要求を受け付ける。メモリアクセ
ス手段610は、要求受付手段609がメモリアクセス
要求を受け付けたときに、アドレス変換動作の状態に応
じてメモリアクセスを実行する。
レス変換表405の作成とアドレス変換表405の切り
換えは、図5のメモリ管理装置400と同様に実行され
る。
9は、デバッグ時に、例えばブレークポイント設定等の
メモリリード/ライト処理をデバッガが行う場合に、デ
バッガからのアクセス要求を受け付ける。メモリアクセ
ス要求を受け付けた要求受付手段609はメモリアクセ
ス手段610を起動する。メモリアクセス手段610
は、アドレス変換表405を用いたアドレス変換が可能
なときには、アドレス変換表405を用いて論理アドレ
スを物理アドレスに変換してメモリアクセスを行う。
ばシステム初期化が終了していない等の理由によりアド
レス変換表405を用いたアドレス変換が不可能な状態
のときにはアドレス変換表405を用いずに、直接に物
理アドレスに基づくメモリアクセスを行う。
れば、アドレス変換表405の状態によらずメモリアク
セスを行うことができ、例えばシステム初期化が終了し
ていないためにアドレス変換表405を用いて動作する
ことができなくてもデバッガからのメモリアクセス要求
に対し矛盾なく対応することができる。
がアドレス変換手段に相当する。なお、実施の形態3の
説明においては、要求受付手段609がデバッガからの
要求を受け付ける場合について説明したが、要求受付手
段609が受け付けるメモリアクセス要求はデバッガか
らの要求に限られるものではなく、メモリ管理装置60
0の周辺装置からのメモリアクセス要求であればよい。
0は実施の形態2のメモリ管理装置400に要求受付手
段609とメモリアクセス手段610とをさらに備えて
構成したが、図8に示すメモリ管理装置700のよう
に、実施の形態1のメモリ管理装置100に要求受付手
段609とメモリアクセス手段610とをさらに備えて
構成することもできる。なお、図8において図1と同一
または相当する部分に同一符号を付している。
100,400,600,700においては、配置手段
104,404によって、共有するモジュールを異なる
論理アドレス空間における同一論理アドレスに配置して
同一のモジュールの論理アドレスを同一の物理アドレス
に割り付けているが、共有するモジュールを異なる論理
アドレス空間における異なる論理アドレスに配置して同
一のモジュールの論理アドレスを同一の物理アドレスに
割り付けるようにしてもよい。
ュール情報101にプログラムのコードおよびデータの
みに関する情報が記述されている場合について示したが
スタックや初期値を有するデータ等の情報が記述されて
いてもよく、これらの情報をマッピングすることができ
る。
必要なモジュール以外は異なるタスク間でメモリに直接
アクセスすることを禁止し、必要なモジュールのみ異な
るタスク間で共有させることができる。
一構成例を示すブロック図
報とセクション定義と空間定義の一例を示す概念図
を示す概念図
報とセクション定義と空間定義の他の例を示す概念図
一構成例を示すブロック図
報とセクション定義と空間定義とタスク定義の一例を示
す概念図
一構成例を示すブロック図
他の構成例を示すブロック図
ク図
Claims (4)
- 【請求項1】 メモリの物理アドレスを複数の論理アド
レスへ対応付けるメモリ管理装置であって、 複数の論理アドレス空間と複数のモジュールとの対応関
係を示す第1の定義に基づいて、複数の論理アドレス空
間のそれぞれにモジュールを配置する配置手段と、 複数のモジュールの物理アドレスを示すモジュール情報
に基づいて、前記配置手段によりモジュールが配置され
た論理アドレス空間の論理アドレスへ物理アドレスを対
応付けるマッピング手段と、 タスクの切り換え指示に応答して、前記マッピング手段
により対応付けられた前記複数の論理アドレス空間の切
り換えを行う論理アドレス空間切り換え手段とを備えた
ことを特徴とするメモリ管理装置。 - 【請求項2】 前記第1の定義は、前記複数の論理アド
レス空間にそれぞれ所属するセクションを定義する空間
定義と、各セクションに所属する一または複数のモジュ
ールを定義するセクション定義とを含むことを特徴とす
る請求項1記載のメモリ管理装置。 - 【請求項3】 前記論理アドレス空間切り換え手段は、
前記複数の論理アドレス空間のそれぞれに複数のタスク
のいずれかを対応付ける第2の定義に基づいて、前記複
数の論理アドレス空間の切り換えを行うことを特徴とす
る請求項1または2記載のメモリ管理装置。 - 【請求項4】 前記マッピング手段の対応付けに応じて
論理アドレスと物理アドレスとの間のアドレス変換を行
うアドレス変換手段と、 周辺装置からのメモリアクセス要求を受け付ける要求受
付手段と、 前記要求受付手段がメモリアクセス要求を受け付けた場
合、前記アドレス変換手段によって物理アドレスと論理
アドレスとの間のアドレス変換が可能な状態のときに
は、前記アドレス変換手段を用いて論理アドレスに基づ
くメモリアクセスを行い、前記アドレス変換手段による
アドレス変換が不可能な状態のときには、物理アドレス
に基づくメモリアクセスを行うメモリアクセス手段とを
さらに備えたことを特徴とする請求項1〜3のいずれか
に記載のメモリ管理装置。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021533455A (ja) * | 2018-07-31 | 2021-12-02 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | 仮想化用のgpuタスクコンテナとしてのvmid |
Citations (6)
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 | プログラムの共用装置と方法 |
-
1999
- 1999-06-08 JP JP16170399A patent/JP4331325B2/ja not_active Expired - Fee Related
Patent Citations (6)
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)
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 |