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

メモリ管理装置

Info

Publication number
JPH05257811A
JPH05257811A JP5003937A JP393793A JPH05257811A JP H05257811 A JPH05257811 A JP H05257811A JP 5003937 A JP5003937 A JP 5003937A JP 393793 A JP393793 A JP 393793A JP H05257811 A JPH05257811 A JP H05257811A
Authority
JP
Japan
Prior art keywords
address
access
thread
area
page
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
JP5003937A
Other languages
English (en)
Other versions
JP3454854B2 (ja
Inventor
Mitsuo Saito
光男 斎藤
Shigehiro Asano
滋博 浅野
Shiyoukou Shin
承昊 申
Hiroshi Nozue
浩志 野末
Kenichi Maeda
賢一 前田
Hideo Segawa
英生 瀬川
Toshio Okamoto
利夫 岡本
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 JP00393793A priority Critical patent/JP3454854B2/ja
Priority to US08/021,098 priority patent/US5627987A/en
Publication of JPH05257811A publication Critical patent/JPH05257811A/ja
Priority to US08/753,944 priority patent/US5890189A/en
Application granted granted Critical
Publication of JP3454854B2 publication Critical patent/JP3454854B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 【目的】 複数の領域に分割され、その中を複数のスレ
ッドが実行するアドレス空間の管理を行ない、メモリア
クセスに対してアクセス権の制御を適切に行なう。 【構成】 論理アドレスから物理アドレスへの変換を行
なう機能を有するもので、TLB(ページテーブルのキ
ャッシュ)31中に、論理アドレスに対するアクセスを
許すスレッドの番号と領域の番号と許すアクセスの方法
を組にしたものであるアクセスコントロールリストを複
数格納し、これらのアクセスコントロールリストのスレ
ッド番号と領域番号の組のうち、現在実行中のスレッド
の番号15とそのスレッドが現在実行しているプログラ
ムの存在している領域の番号12を組み合わせたものに
一致するものを比較器34〜36で検出し、ここで一致
するものが検出されるとTLBヒット16として出力す
るようにしている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリアクセスを制御
するメモリ管理装置に関するものである。
【0002】
【従来の技術】近年、ネットワーク技術の発達や並列計
算機技術の発展により、例えばサーバ・クライアント型
プログラミングのように、複数のプログラムがデータを
共有し、協調しあって処理を進める方式が広がって来
た。
【0003】この方式では、それぞれのプログラムは、
仮想記憶の技術を用いて別々のアドレス空間におかれて
いるため、データを共有するためにはオペレーティング
システム(OS)を介してデータのやりとりをしなけれ
ばならず、OSのオ−バヘッドにより処理速度が遅くな
ってしまうという欠点があった。
【0004】そこで、一つのアドレス空間内に、実行主
体であるスレッドを複数走らせ、スレッド間のデータの
共有を、OSのオーバヘッドなしでおこなうという方式
もおこなわれている。
【0005】この方式は、もともとスレッド間の保護を
考えていないものであるため、あるスレッドが使ってい
るデータを他のスレッドから保護しようとすると、オー
バヘッドの大きい方法を採らなければならない。
【0006】すなわち、アドレス空間ごとの保護機能を
利用してスレッド毎に別々のアドレス空間を割り当て、
それぞれのアドレス空間に、そのスレッドからアクセス
できる部分だけを置くことになる。これはかなりオーバ
ヘッドが大きく実用的ではない。以上が第1の問題点、
つまり1つのプログラム中でスレッドごとに許されるア
クセスの種類を変えることができないという問題点であ
る。
【0007】さらにスレッド毎にアドレス空間を作るた
めには、それぞれの仮想空間ごとにページテーブルを用
意しなければならず、同じプログラムは別々のアドレス
空間内でも同じ位置に置かなければならないが、こうす
ると複数のスレッドで共通にアクセスできる領域につい
ても、アクセスが許されるスレッド全てが、同じ論理−
物理アドレスの変換情報を重複してぺージテーブル中に
持たなければならないため、ページテーブルとして使う
メモリが無駄である。
【0008】もちろん、複数のスレッドで共通にアクセ
スできる領域の、許されるアクセス方法が同じであれ
ば、それらのスレッドで、一つのページテーブルの部分
を共有することは出来、ページテーブルとして使うメモ
リの無駄をなくすことが出来るが、この場合でもTLB
(Translation Look-aside Buffer) のようなページテー
ブルのキャッシュを使っている場合には、無駄が発生
し、アドレス変換の平均速度を低下させる。
【0009】その理由を説明すると、まず、ページテー
ブルのキャッシュの1エントリは、ページテーブルの情
報とスレッド番号を組にして持っているため、スレッド
が違えば、ページテーブルの情報が全く同じでも、異な
るキャッシュエントリを使うことになる。
【0010】したがって、同じ論理−物理アドレス対を
なすが、スレッド番号の異なるものがキャッシュの複数
のエントリを占有してしまうことになり、ページテーブ
ルのキャッシュ内に格納できる物理アドレスの種類が少
なくなってしまい、キャッシュの大きさが小さくなった
のと同等に、アドレス変換の速度の低下が起こる。
【0011】さらに、複数のページテーブルに置かれた
同じページに対する情報を管理しなければならないた
め、ページングの処理が複雑になるという問題点があ
る。例えば、複数のスレッドが同じ物理ページをそれぞ
れの仮想アドレス空間にマッピングしている時に、その
ページをページアウトしようとすると、その物理ページ
をマッピングしている全ての仮想空間を探して、そのペ
ージに対応するページテーブルのエントリを無効化する
処理が必要になる。
【0012】また、ページインする時も、ページインし
ようとしている物理ページを共有する全てのアドレス空
間の、そのページに対応するページテーブルのエントリ
を直さなければならない。これらの処理時間が平均アド
レス変換時間に加算される。以上が第2の問題点、つま
り、ページテーブルや、ページテーブルのキャッシュの
メモリが無駄になり、かつ、管理が複雑になり非効率で
あるという問題点である。
【0013】さらに、別の方法として一つのアドレス空
間を複数の領域に分けて、スレッドがどの領域のプログ
ラムを実行しているかによって、そのスレッドの持つ権
限を変える、ということが、アプリケーションによって
は有効である。例えば、領域Aのデータを変えられるの
は、別のある領域Bにあるプログラムを実行しているス
レッドに限る(領域Cにあるプログラムを実行している
スレッドは領域Aのデータを変えられない)ようにすれ
ば、領域Aのデータを、一定の条件を保ちながら変更す
ることが可能となる。領域Aにデータベースのデータ、
領域Bにデータベースのプログラムでそのデータへのア
クセスルーチンを入れておけば、デ−タベ−ス処理に関
して、データベースのデータを保護しつつ、且つ、OS
を介することなく、そのデータをアクセスできるため、
高速なアクセスが可能となる。
【0014】しかし、従来のメモリ管理装置(例えばイ
ンテル社の80486プロセッサ)では、一つのスレッ
ドが実行するプログラムの範囲をセグメント方式等を利
用することによって限定し、かつ、コールゲートを利用
して異なるアクセスレベルに移ることによってアクセス
権限を変えることは出来たが、アクセスレベルは、順序
関係を持ち、レベルが上がった場合にはそのレベル以下
でアクセス可能な領域は全てアクセスできるというもの
であり、かつハードウェアによってレベルの数を限定さ
れてしまうため、アプリケーションプログラムとOSと
カーネルといったような順序関係をもったアクセス権の
制御しか利用できないなど柔軟性に欠けるという欠点が
あった。
【0015】以上が第三の問題点、つまり一つのアドレ
ス空間中に複数の領域に分けてプログラムやデータ等を
配置した場合、領域毎に許されるアクセスの種類を柔軟
に変えることができないという問題点である。
【0016】
【発明が解決しようとする課題】このように、従来のメ
モリ管理装置で、一つのアドレス空間内を実行する複数
の実行主体(スレッド)の間で保護を行おうとすると、
同じ物理ページをマッピングしているアドレス空間が多
数あるため、ページングを行なう場合には、全てのアド
レス空間を探して、そのページがマッピングされている
ものを見つけ、それらに対してページングの処理を行な
わなければならない等、オーバヘッドが大きいという第
1の問題点があった。
【0017】さらに、同じ物理アドレスに対してページ
テーブル中の多くのエントリを占有するために、他の物
理アドレスに対するアドレス変換を阻害することにな
り、また、ページテーブルのエントリが複数のプログラ
ムから共有されているか否かに関わらず無効化されてし
まい、エントリを満たすための不必要な処理が行なわれ
る欠点があった。また、複数のプログラムが持つアクセ
スの権利の正しさを同時に検査しなければならない場合
に、係る検査にかかる処理が複雑になってしまうという
欠点があった。つまり、ページテーブルやページテーブ
ルキャッシュに同じ情報が複数置かれてしまい、メモリ
が無駄になり、キャッシュの効果が薄れ、非効率である
という第2の問題点があった。
【0018】また、一つのアドレス空間を複雑の領域に
分けて、スレッドがどの領域のプログラムを実行してい
るかによって、そのスレッドの権限を変える、というこ
とは、従来のメモリ管理装置では、柔軟に行なえないと
いう第3の問題点があった。
【0019】本発明は、上記事情に鑑みなされたもの
で、複数のプログラムで共有されるアドレス空間の管理
を行ない、メモリアクセスに対してアクセス権限の制御
を適切に行なうことが出来、しかもアドレス変換時間を
延長することもないメモリ管理装置を提供することを目
的とする。
【0020】
【課題を解決するための手段】上記第一の問題点を解決
する本発明に係るメモリ管理装置は、複数のスレッド
(実行主体)を起動して仮想空間に割り付けられたプロ
グラムを並行して実行する計算機に設けられ、論理アド
レスから物理アドレスへの変換を行なうものであって、
現在プログラムを実行しているスレッドの番号を記憶す
る手段と、前記論理アドレスをどのスレッドがアクセス
可能かを示す情報を記憶する手段と、前記スレッド番号
を持つスレッドが前記論理アドレスへアクセスしようと
する場合に前記アクセス可能かを示す情報を用いて前記
アクセスをしようとしているスレッドにアクセスの権限
があるか否かを検証する検証手段とを具備し、この検証
手段によりアクセスの正当性が保証された場合に前記論
理アドレスから物理アドレスへの変換結果を出力するこ
とを特徴とする。
【0021】上記第二の問題点を解決する本発明に係る
メモリ管理装置は、仮想空間に割り付けられたプログラ
ムを実行する計算機に設けられ、アドレス変換テーブル
に保持されている複数のアドレスに対して指示されたア
ドレスとの一致を検出し、該一致が検出された際に前記
指示されたアドレスと対になるアドレスを出力する手段
を有するものであって、前記アドレス変換テーブル中の
アドレス対の各々に対して複数個のアクセス保護情報を
記憶する手段と、前記複数個のアクセス保護情報を参照
し、実行中のプログラムの仮想空間内の位置からのある
いはプログラムを実行中のスレッド(実行主体)による
前記指示されたアドレスへのアクセスが許可されるか否
かを検証する手段と、前記検証結果を出力する手段とを
具備したことを特徴とする。
【0022】上記第三の問題点を解決する本発明に係る
メモリ管理装置は、複数の領域に分割された仮想空間に
割り付けられたプログラムを実行する計算機に設けら
れ、論理アドレスから物理アドレスへの変換を行なうも
のであって、前記論理アドレスをアクセスするプログラ
ムの置かれている領域がどれであるかを検知する手段
と、前記論理アドレスが前記仮想空間中のどの領域に置
かれているプログラムからアクセス可能かを表す情報を
記憶する手段と、プログラム実行中に前記論理アドレス
へのアクセス命令が出現した場合に前記アクセス可能か
を表す情報を用いて前記アクセス命令が置かれている領
域からのアクセスが正当か否かを検証する検証手段とを
具備し、この検証手段によりアクセスの正当性が保証さ
れた場合に、前記論理アドレスから物理アドレスへの変
換結果を出力することを特徴とする。
【0023】
【作用】第1の発明によれば、メモリ管理装置中にアド
レス空間中の各領域(位置)に対してスレッドごとのア
クセス可否を示す情報があり、更に現在実行中のスレッ
ドを識別できるので、現在実行中のスレッドがアクセス
先の領域(位置)にアクセスできる権限があるかの検証
を行うことで、同じアドレス空間中の異なるスレッドご
とのアクセス制御が可能となる。
【0024】ここで、スレッドとは実行主体であり、C
PUの割り合て単位である。つまりOSはスレッド番号
ごとにCPUのレジスタ等のメモリ以外に現在の実行を
制御する情報を管理する。OS中にはこれらの情報を退
避するメモリ領域があり、スレッドを切り替える時はこ
の領域の内容とCPUのレジスタ等とを入れかえること
で実行の切替えを実現する。コンテクストとも呼ばれ
る。
【0025】第2の発明によれば、メモリ管理装置中の
ページテーブル(論理アドレスと物理アドレスの対応
表)の各エントリに対応して複数のアクセス保護情報を
保持することができるので、従来の方式のように単一の
アクセス情報しか保持できないもので構成するのと比較
してページテーブル及びそのキャッシュのメモリ使用量
が大巾に減り、効率が向上する。
【0026】第3の発明によれば、メモリ管理装置中に
アドレス空間の各領域(位置)に対してどの領域からア
クセスできるかを示す情報があり、更に現在実行中の領
域を識別できるので、現在実行中のプログラムがアクセ
ス先の領域(位置)にアクセスできる権限があるかの検
証が行え、同じアドレス空間中の異なる領域ごとのアク
セス制御が可能となる。
【0027】
【実施例】
[実施例1]以下、本発明の一実施例を図面に従い説明
する。
【0028】図1は、同実施例のメモリ管理装置の全体
構成を示すものである。この場合、メモリ管理装置1
は、アドレス変換装置2、TLB(Translation Look-as
ide Buffer) チェック装置3、スレッド番号記憶部4、
ORゲート5からなるProtection fault信号生成回路か
ら構成されている。
【0029】そして、メモリ管理装置1は、図示しない
CPUから論理ページ番号、すなわち論理アドレスの上
位20ビット11、現在実行中の命令が存在する論理ア
ドレスつまり、一命令前のプログラムカウンタPC(以
下LPCと略す)の上位20ビット12、CPUのメモ
リアクセスのモードの3ビット13を取り込み、物理ペ
ージ番号、すなわち物理アドレスの上位20ビット14
を出力するようにしている。この場合、現在実行してい
るスレッド番号をスレッド番号記憶部4に保存するとと
もに、論理アドレスの上位20ビット11、LPCの上
位20ビット12、CPUのメモリアクセスモードの3
ビット13およびスレッド番号記憶部4に記憶されてい
る現在実行しているスレッド番号が、アドレス変換装置
2とTLBチェック装置3に同時に与えられ、2つのモ
ジュールが同じアドレス変換を並行して行なうようにな
る。
【0030】ここで、アドレス変換装置2は、ページテ
ーブル(主記憶上に存在するアドレス変換テーブル)を
使って論理ページ番号を物理ページ番号に変換する。一
方、TLBチェック装置3は、TLB内にキャッシュさ
れている論理アドレスと物理アドレスの対応の中に目的
とする論理アドレスが存在するかを調べ、見つかった時
にはそれに対応する物理ページ番号を出力するととも
に、アドレス変換装置2に対してTLBヒットを16を
送る。
【0031】そして、アドレス変換装置2がTLBヒッ
ト16を受けとった時は、論理ページ番号を物理ページ
番号に変換するアドレス変換操作を中止する。また、T
LBチェック装置3が、目的とする論理ページ番号をT
LB内で見つけられなかった時は、TLBmissの信号線
17をアサートし、アドレス変換装置2によって変換が
行なわれるのを待ち、最終段である第3段目のアドレス
変換テーブルのエントリが見つかったところで、その内
容をTLBに保存し、その中から物理ページ番号を出力
する。アドレス変換装置2において、目的の論理アドレ
スに対応するページテーブルエントリが存在しないこと
が判明した場合は、ページフォルト18を発生してCP
Uに割り込む。また、両モジュールのいずれかにおい
て、アドレス変換の最中に、そのアドレスに対するアク
セスが許されないということが判明した時には、プロテ
クションフォルト19を発生しCPUに割り込む。
【0032】図2は、TLBチェック装置3の概略構成
を示すものである。この場合、TLB31のエントリの
構成要素は、論理ページ番号311、物理ページ番号3
12、ページの属性を示す5個のフラグ313、31
4、315、316、317と、3組のスレッド番号3
18、LPC上位20ビット319、これらスレッドに
対して許されるアクセスの種類であるRWX(Rは読み
込み権,Wは書き込み権,Xは実行権を示す)のパーミ
ッションの組からなっている。以下の説明では、スレッ
ド番号318、LPC上位20ビット319、RWXの
パーミッションの組を、アクセス・コントロール・リス
ト、略してACLと呼ぶことにする。このALCは、ど
のプログラムがどの論理ページ上のコードを実行してい
る時に、これからアクセスしようとする論理ページに対
してどのようなアクセスが許されているかということを
示すものである。
【0033】この場合、TLBエントリにはさらにフラ
グ領域があり、フラグ(V)313はTLBのエントリ
が有効であるか否かを示すバリッドフラグ、フラグ
(D)314はページが変更されたかを示すダーティフ
ラグ、フラグ(R)315はページがアクセスされたか
を示すリファレンスドフラグ、フラグ(M)316はペ
ージに対するACLがTLB内に存在する3組以外に存
在するか否かを示すモアフラグ、フラグ(E)317は
ページのACLのチェックを行なうかどうかを示すイネ
ーブルフラグEからなっている。また、ACLは、スレ
ッド番号318、LPC上位20ビット319に対して
3個のフラグ320、321、322を持っている。こ
の場合、フラグ(PE)320はスレッド番号の比較を
行なうか否かを示し、フラグ(TE)321はLPC上
位20ビットによる比較を行なうか否かを示し、フラグ
(B)322はスレッド番号の比較を行なう際にスレッ
ド番号の一致のみを調べるか、あるいはスレッド番号の
大小関係を調べるかを示している。
【0034】しかして、外部からの論理ページ番号の2
0ビット11によりTLB31のエントリを特定する
と、スレッド番号の20ビット15、LPCの上位20
ビット12、CPUのアクセスモードの3ビット13が
連結器32、33で連結され、43ビットの出力331
が得られ、これとTLB31内にキャッシュされている
ACLとの比較が3個の比較器34、35、36を使っ
て行われるようになる。ここで、LPCの上位20ビッ
ト12は、後述する仮想空間の領域の領域番号の一例で
ある。
【0035】図3は、比較器34、35、36の概略構
成を示している。この場合、比較器34、35、36
は、まったく同じものなので、ここでは比較器34につ
いてのみ述べると、加算器341、342、アンドゲー
ト343〜346、オアゲート347、348、ノアゲ
ート349、350から構成されている。
【0036】そして、このような比較器34は、ACL
のフラグ(PE)320を0にすることで、スレッド番
号によるアクセス条件のチェックを省くことができ、全
てのスレッドに共通のアクセス許可を与えることができ
るようにしている。また、フラグ(TE)321を0に
した場合は、LPCの値によるアクセス条件の判定を行
なわず、ACLのエントリに書かれているスレッド番号
をもつスレッドは、LPCの値に関わらず、そのページ
へのアクセス許可を与えることができるようにしてい
る。また、フラグ(B)322を1にした場合は、現在
実行されているスレッド番号がACLのプログラム番号
よりも大きいか等しい時に、スレッド番号によるアクセ
ス条件を満たしているものとし、フラグ(B)322が
0の時は、二つのスレッド番号が等しい時に限り、スレ
ッド番号によるアクセス条件を満たすようにしている。
また、フラグ(B)322を1にすることにより、スレ
ッド番号をリング保護におけるレベルとして使い、スレ
ッド番号が大きいスレッドに対してより強い権利を与え
るようにしている。
【0037】そして、比較器32は、2本の出力信号線
351、352を有している。ここで、出力信号線35
2の出力は、現在実行されているスレッドのスレッド番
号とACL内に書かれているスレッド番号がマッチし、
且つ一つ前のプログラムカウンタPC(LPC)の上位
20ビットがACL内のプログラムカウンタLPCの上
位20ビットの値にマッチした場合にアサートされる。
すなわち、CPUによるメモリアクセスの条件がこのA
CLの条件と一致していることを示すようにしている。
また、出力信号線351の出力は、出力信号線352の
出力がアサートされ、且つCPUによるメモリアクセス
が、ACLによって許可されている種類のものであった
時にアサートされる。つまり、出力信号線351の出力
がアサートされれば、メモリアクセスは許可されること
になる。
【0038】そして、図2に戻って、各比較器34、3
5、36の出力信号線351の出力の論理和をとった結
果が1であれば、TLBエントリ内の3つのACLのう
ちの一つによってアクセスが許されたことになるので、
物理ページ番号14をイネーブルし、TLBヒット信号
線16がアサートされる。また、各比較器34、35、
36の出力信号線352の出力の論理和をとった結果が
1であり、出力信号線351の出力の論理和をとった結
果が0の場合は、TLBエントリ内の3つのACLのう
ち、現在のメモリアクセスの条件に一致するものが存在
するが、CPUによるメモリアクセスのモードがこのA
CLによって許されていない種類のものであったことを
示している。この場合には、信号線38がアサートさ
れ、プロテクションフォルト191がアサートされる。
【0039】また、比較器34、35、36の出力信号
線352の出力の論理和をとった結果が0であり、TL
Bエントリのモアフラグ316が0の場合は、現在のメ
モリアクセス条件に一致するACLが存在しないことを
示している。この場合は信号線40がアサートされ、プ
ロテクションフォルト191がアサートされる。
【0040】TLBエントリのイネーブルフラグ317
の値が0のときは、信号線41がアサートされTLBヒ
ット信号線16がアサートされる。よってACLのチェ
ックに関係なく物理ページ番号14を出力する。また、
TLBがヒットしなかった場合には、前述のようにTL
Bmiss信号線17がアサートされる。同時に動作してい
るアドレス変換装置2によって物理ページ番号が判明す
る可能性が残されているので、その結果を待つと同時に
ACLがチェックされる。
【0041】さらにTLBにはヒットしたがACLのエ
ントリにはヒットせず、かつモアビット(M)316が
1の場合はACLmiss信号線20がアサートされる。同
時に動作しているアドレス変換装置2によってACLが
チェックされる。次に、図4はアドレス変換装置2の概
略構成を示している。
【0042】この場合、第1段目のアドレス変換装置2
1、第2段目のアドレス変換装置22、第3段目のアド
レス変換装置23により構成されている。そして、この
ようなアドレス変換装置2は、スレッド番号の20ビッ
ト15、LPCの上位20ビット12、CPUのアクセ
スモードの3ビット13と論理ページ番号の20ビット
11を取り込み、論理ページ番号の20ビット11に対
応する物理ページのページテーブルエントリ24を出力
するようにしている。また、TLBヒット16、プロテ
クションフォルト191を受け取った場合はアドレス変
換を中止するようにもしている。さらに、アドレス変換
の途中で、目的とする論理ページに対応する物理ページ
が存在するが、アクセスのモードが許されない種類のも
のであることが判明した場合にはプロテクションフォル
ト192を出力し、アドレス変換の途中で目的とする論
理ページに対応する物理ページが存在しないことが判明
した場合にはページフォルト18を出力するようにして
いる。第1段目のアドレス変換装置21では、ルートポ
インタ25と論理ページ番号の上位7ビット111を使
って第1段ページテーブルのエントリを決定する。
【0043】第2段アドレス変換装置22では、第1段
アドレス変換装置21によって判明した第2段ページテ
ーブルの先頭アドレス26と論理ページ番号の上位8ビ
ット目から上位13ビット目までの7ビットによって示
されるページテーブル内のエントリ番号112を使って
第2段ページテーブルのエントリを決定する。
【0044】第3段アドレス変換装置23では、第2段
アドレス変換装置22によって判明した第3段ページテ
ーブルの先頭アドレス27と論理ページ番号の下位6ビ
ットで示されるページテーブル内のエントリ番号113
を使って第3段ページテーブルのエントリを決定する。
図5は、第1段目アドレス変換装置21および第2段目
のアドレス変換装置22の概略構成を示している。
【0045】この場合、アドレス変換装置21、22
は、スレッド番号の20ビット15、LPCの上位20
ビット12、CPUのアクセスモードの3ビット13を
連結させた43ビットの信号線211、TLBヒット1
6、論理ページ番号の連続する7ビットの部分111
(112)、ルートポインタ25(先頭アドレス26)
を取り込み、このうちの論理ページ番号の連続する7ビ
ットの部分111(112)、ルートポインタ25(先
頭アドレス26)をアドレス合成器212で合成するこ
とにより、この論理ページ番号に対するページテーブル
エントリ213のアドレスを得るようにしている。
【0046】ページテーブルエントリ213は、次レベ
ルページテーブルへのポインタ2131、3種類のフラ
グ2132〜2134、3組のACL、そのページテー
ブルエントリに対するACLが3組を越える場合に残り
のACLの置かれている場所を指すポインタ2135に
よって構成されている。
【0047】ここで、3種類のフラグ2132〜213
4のうちバリッドフラグ(V)2132は、ページテー
ブルエントリが有効であるかを示している。モアフラグ
(M)2133は、そのページに対応するACLがペー
ジテーブルエントリ内に存在する3組以外に存在するか
否かを示している。イネーブルフラグ(E)2134
は、ACLのチェックを行なうか否かを示している。
【0048】ページテーブルエントリの位置が決まる
と、バリッドフラグ2132の内容を調べ、この値が0
であれば、ページフォルト18を出力し、アドレス変換
中止装置227を起動し、アドレス変換を中止する。
【0049】また、43ビットの信号線211の入力と
3個のACLの内容214、215、216を3つの比
較器217、218、219を使って同時に比較し、こ
の比較の結果によりアクセスが許可されることが判明し
た場合は、信号220がアサートされ、次レベルページ
テーブルへのポインタ2131の値がイネーブルされ
る。また、アクセスが不許可であることが判明した場合
は、信号221がアサートされプロテクションフォルト
192が出力される。
【0050】一方、現在のアクセス条件に一致するAC
Lが3つのものの中から見つからなかった場合は、モア
フラグ2133を調べる。そして、モアフラグ2133
が0であった場合には、ACLが他にないことを示して
いるので、アクセスの許可がなされないことになり、信
号223がアサートされ、プロテクションフォルト19
2を出力するようになる。また、モアフラグ2133が
1であった場合は他にもACLが存在していることにな
るので、信号224がアサートされ、ACL切替装置2
25を使って、次ACLへのポインタ2135によって
指示されている次ページテーブルエントリ226のAC
Lの組に切替えて再び比較を行なうようになる。
【0051】この場合、ポインタ2135によって指示
されているACLの組の中に現在のアクセス条件に一致
するものがさらになかった場合には、モアビット226
2が1であるかを調べ、1であれば、再びACL切替装
置225によって次ACLへのポインタ2261によっ
て指される次ページテーブルエントリのACLの組に切
替えて再比較するようになる。なお、TLBヒット16
を受け取った場合はアドレス変換中止装置227により
変換処理を中止するようになる。図6は、第3段目のア
ドレス変換装置23の概略構成を示している。
【0052】この場合、アドレス変換装置23は、スレ
ッド番号の20ビット15、LPCの上位20ビット1
2、CPUのアクセスモードの3ビット13を連結させ
た43ビットの信号線231、TLBヒット16、論理
ページ番号の下位6ビットの部分113、先頭アドレス
27を取り込み、このうちの論理ページ番号の下位6ビ
ットの部分113と先頭アドレス27とをアドレス合成
器232で合成することにより、この論理ページ番号に
対応するページテーブルエントリ233のアドレスを得
るようにしている。
【0053】ページテーブルエントリ233は、物理ペ
ージ番号2331、5種類のフラグ2332〜233
6、3組のACL、そのページテーブルエントリに対す
るACLが3組を越える場合に残りのACLの置かれて
いる場所を指すポインタ2337によって構成されてい
る。
【0054】ここで、3種類のフラグ2132〜213
4のうちバリッドフラグ(V)2332はページテーブ
ルエントリが有効であるかを示している。ダーティフラ
グ(D)2333はページが変更されたか否かを示して
いる。リファレンスドフラグ(R)2334はページに
対してアクセスがなされたか否かを示している。モアフ
ラグ(M)2335はページに対応するACLがペ−ジ
テーブルエントリ内に存在する3組以外に存在するか否
かを示している。そして、イネーブルフラグ(E)23
36はACLのチェックを行なうか否かを示している。
【0055】ページテーブルエントリの位置が決まる
と、バリッドフラグ2332の内容を調べ、この値が0
であれば、ページフォルト18を出力し、アドレス変換
中止装置247を起動しアドレス変換を中止する。
【0056】また、43ビットの信号線231の入力と
3個のACLの内容234、235、236を3つの比
較器237、238、239を使って同時に比較し、こ
の比較の結果によりアクセスが許可されることが判明し
た場合は、信号240がアサートされ、物理ページ番号
2331とフラグ2332〜2336の組と3つのAC
Lの内容234〜236を連結した192ビットの出力
2338がイネーブルされる。また、アクセスが不許可
であることが判明した場合は、信号241がアサートさ
れ、プロテクションフォルト192が出力される。
【0057】一方、現在のアクセス条件に一致するAC
Lが3つのものの中から見つからなかった場合は、モア
フラグ2335を調べる。モアフラグ2335が0であ
った場合には、ACLが他にはないことを示しているの
で、アクセスの許可がなされないことになり、信号24
2がアサートされ、プロテクションフォルト192を出
力するようになる。また、モアフラグ2335が1であ
った場合は他にもACLが存在していることになるの
で、信号243がアサートされ、ACL切替装置245
を使って、次ACLへのポインタ2337によって指示
されている次ページテーブルエントリ246のACLの
組に切替えて、再び比較を行なう。
【0058】この場合、ポインタ2135によって指示
されているACLの組の中に現在のアクセス条件に一致
するものがさらになかった場合には、モアビット226
2が1であるかを調べ、1であれば、再びACL切替装
置245によって次ACLへのポインタ2461によっ
て指されるACLの組に切替えて再び比較を行なうよう
になる。
【0059】図7は、ACLの組を一回切替えた後の比
較によってアクセスが許可されることが判明した場合の
状態を示すもので、図6と同一部分には同符号を付して
示している。この場合、ページテーブルエントリ233
の物理ページ番号2331とフラグ2332〜2336
の組とページテーブルエントリ246の3つのACLの
内容247〜249を連結した192ビットの出力24
62がイネーブルされるようになる。
【0060】本実施例では、メモリ管理装置中のページ
テーブルのエントリ中に記載するACLはLPCの上位
20ビット固定であるが、この場合、アクセス元の領域
の大きさが固定される。領域の大きさを可変または複数
の領域をまとめて1つのACLで表現できれば柔軟性が
増す。その場合には図12のように1つのACL中にさ
らにマスク領域322(最大でLPC上位ビット数と同
じビット数)を設け、このマスクに従って比較を行うよ
うにすればよい。ACL中のスレッド番号についても同
様なマスク領域をさらに付加すれば複数のスレッドをグ
ループでまとめたアクセス制御が可能となる。
【0061】また、図3においてアクセス権の検証を行
う比較器の構成でスレッド番号及びLPCの比較を行う
のに、減算器341、342を用いているが、ここを論
理演算器に置きかえてもよい。この場合、一例として減
算器342のかわりにAND演算器とする。そしてアド
レス空間の上位をOSなどのシステムに、下位をアプリ
ケーションのプログラムに配置する構成とする。LPC
上位20ビット319に16進数で80000が入って
いるとLPC上位20ビット12の値が16進数で80
000以上の場合、AND演算器の出力は1になる。つ
まり、システムプログラムからのアクセスは許可され、
アプリケーションのプログラムからのアクセスは拒否さ
れる。このように種々の論理演算器及びその組合せに置
きかえることが可能になる。
【0062】また、本実施例では、論理アドレスから物
理アドレスを求めるのに3段のアドレス変換装置を利用
し、かつ、各段においてACLのチェックを行っている
が、最終段のみACLチェックを行い第1段、第2段に
おいてはACLのチェックを行わない構成も取り得る。 [実施例2]
【0063】以上第1の実施例では、従来の第1、第
2、第3の問題点を解決する手段をまとめて示したが、
ここで、上記実施例のうち、従来の第1の問題点を解決
する手段を取り出し、第2の実施例として説明する。ま
ずアクセス権限の判定に関して説明する。
【0064】図8において、論理アドレス空間80の中
には、複数のスレッド81、82が存在している。ペー
ジテーブル85は図2の一部を取り出したものである。
スレッド番号1を持つスレッド81が、あるアドレスの
メモリをアクセスする命令83を実行しようとする。こ
こで命令83は、16進数表記で1234番地のデ−タ
をロ−ドしてくることを意味する。まず、ページテーブ
ル85の中から、アクセスしようとするアドレスが存在
するページに対応するエントリが選ばれる。次に、スレ
ッド番号検出部86によって、現在実行中のスレッド番
号が検出され、このスレッド番号に一致するスレッド番
号を持った保護情報のエントリが選択される。
【0065】このエントリの中に書いてある、そのスレ
ッドに許されるアクセスの種類は、アクセスの種類検出
部84に入力される。84は、実行されつつあるアクセ
スの種類が、スレッドに許されるアクセスの種類に含ま
れるか否かを検出し、その結果を物理アドレス/プロテ
クション・フォルト信号出力部87に送る。87は、ア
クセスが許される場合は、アクセスされようとしている
論理ページの番号に対応する物理ページの番号と、論理
ページ内のオフセットを合わせて物理アドレスとして出
力する。アクセスが許されない場合は、プロテクション
フォルト信号を出力する。
【0066】図8のページテーブル85の内容による
と、論理ページ番号が1であるページは、スレッド1か
らは読み書きが出来るが実行は出来ず、スレッド2から
は読み書きが出来ないが実行は出来る、というようにな
っている。このように、一つのアドレス空間内を走る複
数のスレッドについて、別々のアクセス権限を与えるこ
とが出来る。
【0067】さらに詳しく説明すると、スレッドがある
論理ページをアクセスしようとすると、ページテーブル
の中の、前記論理ページに対応するエントリが選択さ
れ、まず、前記論理ページが有効かどうか、さらに有効
な場合に物理メモリが割り当てられているか否かを、フ
ラグによってページフォルト検出部88が検出し、もし
無効の場合や割り当てられていない場合は、ページフォ
ルトとして割り込み信号を発生する。
【0068】それ以外の場合は、そのエントリの中に複
数存在する、アクセスを許すスレッドの番号のフィール
ドのうちで、現在実行中のスレッド番号と一致するもの
が存在するかどうかを、比較器を使って検出する。比較
器を複数用意して並列に比較すると、比較のための時間
が一回比較する時間で済むことになる。
【0069】一致するフィールドが存在しない場合は、
プロテクションフォルトとして、割り込み信号を出力す
る。一致するフィールドがあった場合は、スレッドが行
なおうとしているアクセスの種類が、そのスレッドに許
されているアクセスの種類に含まれているかどうかを、
比較器を用いて検出する。この比較は、スレッド番号の
一致を検出することと同時に行なうことで比較時間を短
縮することが出来る。含まれていることが検出されなけ
ればプロテクションフォルトとして、割り込み信号を出
力する。含まれていることが検出されたときは、アクセ
スされつつある論理ページに対応する物理ページ番号を
出力する。
【0070】OSがスケジュ−リングによって、一つの
アドレス空間の中で実行するスレッドを切り替える場合
は、メモリ管理装置内のスレッド番号記憶部に保存され
ている、実行中のスレッドの番号を変更する。これによ
り、これ以降のアドレス変換時は、変更後のスレッド番
号と、その論理ページをアクセス出来るスレッド番号の
一致を調べることになる。 一つのアドレス空間の中を
実行する複数のスレッドに関するページテーブルは、一
つにまとまっているため、OSがページングを行なう時
は、前記ページテーブルの該当するエントリの、論理−
物理アドレスの対応の部分の、物理アドレスの部分を書
き換え、そのエントリに対応する物理ページが存在する
かどうかを示すフラグを更新するだけでよい。 [実施例3]さらに、第1の実施例のうち、従来の第3
の問題点を解決する手段を取り出し、第3の実施例とし
て説明する。まず、アクセス権限の判定に関して説明す
る。
【0071】図9において、論理アドレス空間90は、
複数の領域91、92、93に分割されている。ページ
テーブル96は図2の一部を取り出したものである。領
域91の中のプログラムを実行中に、あるアドレスのメ
モリをアクセスする命令94を実行しようとすると、ま
ず、ページテーブル96の中から、アクセスしようとす
るアドレスの存在するページに対応するエントリが選ば
れる。次に、領域番号検出部97によって、現在実行さ
れつつあるプログラムの存在する領域の領域番号を検出
し、この領域番号に一致する領域番号を持った保護情報
のエントリが選択される。
【0072】このエントリの中に書いてある、その領域
内のプログラムに対して許されるアクセスの種類は、ア
クセスの種類検出部95に入力される。95は、実行さ
れつつあるアクセスの種類が、その領域内のプログラム
に対して許されるアクセスの種類に含まれるか否かを検
出し、その結果を物理アドレス/プロテクション・フォ
ルト信号出力部98に送る。98は、アクセスが許され
る場合は、アクセスされようとしている論理ページの番
号に対応する物理ページの番号と、論理ページ内のオフ
セットを合わせて物理アドレスとして出力する。アクセ
スが許されない場合は、プロテクションフォルト信号を
出力する。
【0073】図9のページテーブル96の内容による
と、論理ページ番号が10であるページは、領域1から
は読み書きは出来ないが実行は出来、領域2からは読み
書きは出来るが実行は出来ない、となっている。このよ
うに、一つの論理アドレス空間内の複数のプログラム
に、別々のアクセス権限を与えることが出来る。
【0074】なお、論理アドレス空間を分割する領域の
大きさは、1バイト単位、ページ単位、1メガバイト単
位など、どのような単位でも構わない。また、ページの
大きさも、好きなように決めても構わない。
【0075】さらに詳しく説明すると、スレッドが実行
しているプログラムが置かれている領域によって、アク
セス権限を変える場合は、実行中の命令の存在するアド
レスつまり1つ前のプログラムカウンタの上位何ビット
かを、現在実行されているプログラムの領域の番号とし
て使用する。
【0076】まず、アクセスされようとしてる論理ペー
ジが有効かどうか、さらに有効な場合に物理メモリが割
り当てられているか否かを、フラグによってページフォ
ルト検出部99で検出し、もし無効の場合や割り当てら
れていない場合は、ページフォルトとして割り込み信号
を発生する。
【0077】次に、アクセスを行なうプログラムが置か
れている領域の領域番号と、ページテーブル中の論理−
物理アドレスの各対応毎に記憶されている、アクセスを
許す領域の番号が一致するかどうかを、比較器を使って
検出する。一致する領域番号がない場合は、プロテクシ
ョンフォルトとして、割り込み信号を出力する。一致す
る番号があった場合は、これから実行されようとしてい
るアクセスの種類が、その領域から許されるアクセスの
種類に含まれているかどうかを比較器を用いて検出す
る。含まれていることが検出されなければプロテクショ
ンフォルトとして割り込み信号を出力する。含まれてい
ることが検出された時は、アクセスされつつある論理ペ
ージに対応する物理ページの番号を出力する。 [実施例4]さらに第1の実施例のうち、従来の第3の
問題点を解決する部分の変形例を第4の実施例として説
明する。まず、アクセス権限の判定に関して説明する。
【0078】図10において、論理アドレス空間100
は、複数の領域101、102、103に分割されてい
る。領域101の中のプログラムを実行中に、あるアド
レスのメモリをアクセスする命令104を実行しようと
すると、領域番号検出部108によって現在実行されつ
つあるプログラムの存在する領域の領域番号を検出す
る。次に、その領域番号を利用してACLテーブル10
7の対応する領域番号のACLエントリを選択する。次
にアクセスしようとするアドレスの存在するページ番号
を持った保護情報のエントリが選択される。
【0079】このエントリの中に書いてあるアクセス先
ページに対して許されるアクセスの種類はアクセスの種
類検出部105に入力される。105は実行されつつあ
るアクセスの種類が、そのアクセス先のページに対して
許されるアクセスの種類に含まれるか否かを検出しても
し許されない場合はプロテクションフォルト信号を出力
する。
【0080】図10のACLテーブル107の内容によ
ると、領域番号が1である領域からは論理ページ番号1
0へは読み書きはできないが実行のみ出来、論理ページ
番号11へは読み書きができるが、実行は出来ない、と
なっている。このように、一つの論理アドレス空間内の
複数のプログラムに、別々のアクセス権限を与えること
が出来る。
【0081】なお、論理アドレス空間を分割する領域の
大きさは、1バイト単位、ページ単位、1メガバイト単
位など、どのような単位でも構わない。また、ページの
大きさも、好きなように決めても構わない。
【0082】更に詳しく説明すると、スレッドが実行し
ているプログラムが置かれている領域によって、アクセ
ス権限を変える場合は、実行中の命令の存在するアドレ
ス、つまり1つ前のプログラムカウンタの上位何ビット
かを、現在実行されているプログラムの領域の番号とし
て使用する。
【0083】まず、アクセスされようとしてる論理ペー
ジが有効かどうか、さらに有効な場合に物理メモリが割
り当てられているか否かをページテーブル106のフラ
グによってページフォルト検出部110が検出し、もし
無効の場合や割り当てられていない場合は、ページフォ
ルトとして割り込み信号を発生する。
【0084】次に、アクセスを行なう先の論理ページ番
号と、ACLテーブル107中の、アクセスを行なうプ
ログラムが置かれている領域の領域番号毎に記憶されて
いる、アクセスを許す論理ページの番号が一致するかど
うかを、比較器を使って検出する。一致する論理ページ
番号がない場合は、プロテクションフォルトとして、割
り込み信号を出力する。一致する番号があった場合は、
これから実行されようとしているアクセスの種類が、そ
のページに対して許されるアクセスの種類に含まれてい
るかどうかを比較器を用いて検出する。含まれているこ
とが検出されなければプロテクションフォルトとして割
り込み信号を出力する。プロテクションフォルト信号が
出力されないことで含まれていることが検出された時
は、アクセスされつつある論理ページに対応する物理ペ
ージの番号を物理アドレス出力部109から出力する。
【0085】また、図10におけるACLテーブル10
7中のACLエントリはアクセス先の論理ページ番号と
そのページに対するアクセスの種類の対で記載されてい
るが、アクセス先の領域番号とその領域に対するアクセ
スの種類の対で記載してもよい。その場合、図11のよ
うになりACLテーブル107が112のように変更さ
れ、新たに設ける領域番号検出部111によって、アク
セス先のアドレスに相当する領域番号を検出して、AC
Lテーブル112の対応するエントリを選択する。あと
の処理は図10の場合と同様である。
【0086】なお、第3の実施例では領域2中の論理ア
ドレスに対して領域1中のプログラムからアクセスでき
るかという検証方法を、本実施例では領域1中のプログ
ラムを実行中に領域2中の論理アドレスに対してアクセ
スできるかという検証方法を採っているが、ページテー
ブルをハッシュを用いて構成することにより両者を融合
した検証方法も採り得る。また、本実施例でページテー
ブル106とACLテーブル107を別々に設けている
のは、メモリ容量の節約のためである。
【0087】このように上記第1〜第4の実施例によれ
ば、論理アドレス空間を共有する複数のスレッドが、複
数の領域におかれているプログラムを実行することによ
って行なうメモリアクセスに対して、TLBやページテ
ーブル中の一つのエントリにACLを複数個格納して対
応させるようにしたので、同じ物理アドレスに対して多
くのエントリを占有することがなく、しかも複数のエン
トリが論理アドレスと物理アドレスの対を重複して持つ
ことがなくなる。従って、ページテーブル占有するメモ
リの量が減少する。また、TLB(ページテーブルのキ
ャッシュ)中に格納されている論理アドレスの範囲が広
くなり、TLBのヒット率を向上することができる。ま
た、TLBやページテーブル中の複数のACLのそれぞ
れと、現在実行中のスレッドのスレッド番号と実行され
ているプログラムの置かれている領域番号の組の比較を
同時に行なうことができる。このため、アドレス変換の
時間は、従来のメモリ管理装置と同等にできる。
【0088】また、上記実施例によれば、TLBを検索
中に発生したミスを、アドレスのミスと、ACLのミス
に分けることが可能となり、また、TLBのアドレスを
格納する部分と、ACLを格納する部分を、独立にペー
ジテーブル中の情報と入れ換えることができる。これに
より、TLBの一つのエントリ内に、そのエントリに対
応する論理ページに対するACLをすべて格納できない
場合でも、当該エントリを無効化せず、ACLの部分の
みを入れ換えることができる。従って、TLBミスの処
理にかかる時間を短縮することができる。これは特に、
論理アドレスを共有するスレッドあるいはプログラムの
置かれている領域の数が、一つのエントリ中に格納でき
る数より多い場合に有効である。
【0089】なお、上記実施例では、ページテーブルが
保持する複数個のACLについて、スレッド番号と領域
番号の組と、その組に許可するアクセスの種類が一つづ
つ組み合わさせている場合を示したが、複数のスレッド
番号と領域番号の組に対して、共通に許可するアクセス
の種類を一つだけ記憶するようにしても良いし、複数の
スレッド番号に対して領域番号と許可するアクセスの種
類を各一つ共通に記憶しても、複数の領域番号に対して
スレッド番号と許可するアクセスの種類を各一つ共通に
記憶しても良い。スレッドあるいは領域毎に個別に許さ
れるアクセス方法を記憶させればきめ細かいアクセス権
制御ができ、一方、アクセスを許すスレッドあるいは領
域の集合に共有させて許されるアクセス方法を一つ記憶
させればアクセス権制御のきめ細かさは多少落ちるが、
ページテーブルとして使用されるメモリの量が節約でき
る。
【0090】また、上記実施例では保護の最小単位を物
理ページ単位としたが、メモリ管理装置が管理できる大
きさであればどのような大きさが単位であっても、また
セグメントのように可変量であっても良い。
【0091】その他、TLBが保持するページテーブル
の一つのエントリに複数個のACLを保持するという第
2の発明は、どのように情報が格納されている場合にも
適用可能であることはもとより、ACLの内容として、
上記のスレッド番号と、領域番号であるLPC上位20
ビットの組以外でも適用可能であり、また、各信号発生
回路および制御回路の構成、各種制御信号の与え方など
も種々変更して実施することができる。また実施例4の
ようにページテーブルとACLテーブルを別々に分ける
ことにより、全体のメモリ量を減らすこともできる。
【0092】また、上記実施例によれば、アクセスの権
利の正しさを検証するため、スレッドを識別する番号だ
けでなく、スレッド毎のメモリアクセスの仕方を示すア
クセス情報のエントリを設けることが可能となり、メモ
リアクセスに対してきめ細かいアクセス権制御を行なう
ことが可能になる。
【0093】また、上記実施例によれば、メモリアクセ
ス毎にスレッド番号あるいは領域番号の全部又は一部を
マスクしてグループ化し一致の検出を行なうことが可能
となる。これはメモリアクセスに対してグループ化した
アクセス権制御を行なうようにできる。そのため、効率
的なアクセス権制御を行うことができる。
【0094】また、上記実施例によれば、スレッド番号
あるいは領域番号の一致を検出するだけでなく、大小関
係が成立する等、所定の論理演算結果が真となる場合を
一致が得られたとすることができ、メモリアクセスに対
してプログラム間の又はスレッド間の相対的なアクセス
権制御を行なうようにできる。
【0095】
【発明の効果】本発明は、以上に説明したように構成さ
れているので、以下に記載するような効果を奏する。
【0096】まず、ページテーブル内の論理−物理アド
レスの対応に対して、どのスレッドがその論理アドレス
に対してアクセス可能かという情報を記憶する手段を設
けることにより、一つのアドレス空間内を実行する複数
のスレッド同士の保護を、ページテーブルのために使用
するメモリの量を無駄にすることなく、行なうことが出
来る。
【0097】更に、1つの論理−物理アドレス対に対し
て複数個のアクセス保護情報を記憶すれば、一つの論理
−物理アドレスの対応を記憶するために使われるメモリ
の量が少なくなるため、TLBに置くことができる論理
−物理アドレスの対応の数が増え、キャッシュのヒット
率が上がるため、平均のアドレス変換時間が短縮され
る。
【0098】そして、一つのアドレス空間を複数の領域
に分割し、ページテーブル内の一つの論理−物理アドレ
スの対応に対して、どの領域に存在するプログラムを実
行した時に、その論理アドレスに対してアクセス可能か
という情報を1個以上記憶する手段を設けることによ
り、一つのアドレス空間内に存在する複数のプログラム
に対して別々のアクセス権限を与えることが出来る。こ
れにより、あるデータをアクセスするためには、必ず、
ある特定のアクセスプログラムを介してしか行われない
ようにすることができる。
【0099】また、一つのアドレス空間を複数の領域に
分割し、かつ複数のスレッドを実行させる場合に、ペー
ジテーブル内の論理−物理アドレスの対応に対して、ど
のスレッドがどの領域に置かれているプログラムを実行
している時に、その論理ページに対してアクセス可能か
という情報を記憶する手段を設けることにより、上で述
べた効果が同時に達成される。
【0100】上記のアクセス可能か否かを示す複数の情
報を、並行して検証すれば、一つの論理−物理アドレス
の対応に対して複数の保護情報があっても、アクセス権
のチェックは保護情報が1個しかない場合と同じ時間で
行なうことができる。
【0101】尚、どのスレッドがアクセス可能かを示す
情報のなかのスレッド番号と、アクセスしようとしてい
るスレッドのスレッド番号の一致を調べてアクセスの正
当性を検証する際に、スレッド番号の一部をマスクする
機能を具備すれば、スレッド番号のグルーピングが可能
となるため、複数のスレッドに対して同じ権限を与えた
い場合にページテーブルに置かなければならない情報の
量とチェック時間を節約することが出来る。
【0102】同様に、検証の際に、どのスレッドがアク
セス可能かを示す情報のなかのスレッド番号と、アクセ
スしようとしているスレッドのスレッド番号についての
論理演算の結果に基づきスレッド番号が一致したと見倣
す機能を具備することによって、スレッド番号のグルー
ピングが可能となるため、複数のスレッドに対して同じ
権限を与えたい場合にページテーブルに置かなければな
らない情報の量とチェック時間を節約することが出来
る。このようなグルーピングは領域番号についても同様
に実現できる。
【0103】さらに、TLB(ページテーブルのキャッ
シュ)を検索中に発生したミスを、アドレスのミスと、
ACL(保護情報)のミスに分けることが可能となり、
また、TLBのアドレスを格納する部分と、ACLを格
納する部分を、独立にページテーブル中の情報と入れ換
えることができる。これにより、TLBの一つの論理ペ
−ジに対応するエントリ内に、その論理ページに対する
ACLをすべて格納できない場合でも、当該エントリを
無効化せず、ACLの部分のみを入れ換えることができ
る。従って、TLBミスの処理にかかる時間及び保護情
報ミスの処理にかかる時間を短縮することができる。
【0104】このように本発明によれば、一回のアドレ
ス変換に要する時間は従来と同等で、ページテーブルの
ヒット率が向上し、ミス処理にかかる時間を短縮できる
ことから、全体としてアドレス変換時間を短縮できるこ
とになり、また、複数のスレッドが複数の領域に分割さ
れたアドレス空間を実行する時の保護を、スレッド番号
と領域番号によってOSの介在なしで柔軟に管理するこ
とが出来るようになる。
【図面の簡単な説明】
【図1】 本発明のメモリ管理装置の一実施例を示す概
略構成図。
【図2】 図1に示す実施例に用いられるTLBチェッ
ク装置の概略構成を示す図。
【図3】 図2に示すTLBチェック装置に用いられる
比較器の概略構成を示す図。
【図4】 図1に示す実施例に用いられるアドレス変換
装置の概略構成を示す図。
【図5】 図4に示すアドレス変換装置に用いられる第
1段および第2段目のアドレス変換装置の概略構成を示
す図。
【図6】 図4に示すアドレス変換装置に用いられる第
3段目のアドレス変換装置の概略構成を示す図。
【図7】 図6に示すアドレス変換装置の動作を説明す
るための図。
【図8】 本発明のメモリ管理装置の第2の実施例を示
す概略構成図。
【図9】 本発明のメモリ管理装置の第3の実施例を示
す概略構成図。
【図10】 本発明のメモリ管理装置の第4の実施例を
示す概略構成図。
【図11】 第4の実施例の変形例を示す概略構成図。
【図12】 スレッド番号あるいは領域番号の全部また
は一部をマスクする構成の一例を示す図。
【符号の説明】
1…メモリ管理装置 2…アドレス変換装置 3…TLBチェック装置 4…スレッド番号記憶部 21、22、23…アドレス変換器 25…ルートポインタ 212、232…アドレス合成器 217〜219、237〜239…比較器 225、245…ACL切替え装置 227、247…アドレス変換中止装置 31…TLB 32、33…連結器 34、35、36…比較器 80、90、100…論理アドレス空間 81、82…スレッド 83、94、104…実行しようとしている命令 84、95、105…アクセスの種類検出部 85、96、106…ページテーブル 86…スレッド番号検出部 87、98…物理アドレス/プロテクション・フォルト
信号出力部 88、99、110…ページフォルト検出部 91、92、93、101、102、103…領域 97、108…実行しようとしている命令が存在するア
ドレスを含む領域の番号検出部 107、112…ACLテーブル 109…物理アドレス出力部 111…アクセスしようとする先のアドレスを含む領域
の番号検出部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 野末 浩志 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 前田 賢一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 瀬川 英生 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 岡本 利夫 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 複数のスレッドを起動して仮想空間に割
    り付けられたプログラムを並行して実行する計算機に設
    けられ、論理アドレスから物理アドレスへの変換を行な
    うメモリ管理装置であって、 現在プログラムを実行しているスレッドの番号を記憶す
    る手段と、 前記論理アドレスをどのスレッドがアクセス可能かを示
    す情報を記憶する手段と、 前記スレッド番号を持つスレッドが前記論理アドレスへ
    アクセスしようとする場合に前記アクセス可能かを示す
    情報を用いて前記アクセスをしようとしているスレッド
    にアクセスの権限があるか否かを検証する検証手段とを
    具備し、 この検証手段によりアクセスの正当性が保証された場合
    に前記論理アドレスから物理アドレスへの変換結果を出
    力することを特徴とするメモリ管理装置。
  2. 【請求項2】 検証手段において、どのスレッドがアク
    セス可能かを示す情報のなかのスレッド番号と、アクセ
    スしようとしているスレッドのスレッド番号の一致を調
    べる際に、スレッド番号の全部又は一部をマスクする手
    段を具備することを特徴とする請求項1記載のメモリ管
    理装置。
  3. 【請求項3】 検証手段において、どのスレッドがアク
    セス可能かを示す情報のなかのスレッド番号と、アクセ
    スしようとしているスレッドのスレッド番号について所
    定の論理演算を行い、論理演算結果が真であった場合に
    スレッド番号が一致したと見倣す手段を具備することを
    特徴とする請求項1記載のメモリ管理装置。
  4. 【請求項4】 複数の領域に分割された仮想空間に割り
    付けられたプログラムを実行する計算機に設けられ、論
    理アドレスから物理アドレスへの変換を行なうメモリ管
    理装置であって、 前記論理アドレスをアクセスするプログラムの置かれて
    いる領域がどれであるかを検知する手段と、 前記論理アドレスが前記仮想空間中のどの領域に置かれ
    ているプログラムからアクセス可能かを表す情報を記憶
    する手段と、 プログラム実行中に前記論理アドレスへのアクセス命令
    が出現した場合に前記アクセス可能かを表す情報を用い
    て前記アクセス命令が置かれている領域からのアクセス
    が正当か否かを検証する検証手段とを具備し、 この検証手段によりアクセスの正当性が保証された場合
    に、前記論理アドレスから物理アドレスへの変換結果を
    出力することを特徴とするメモリ管理装置。
  5. 【請求項5】 検証手段において、どの領域からのアク
    セスが可能かを示す情報のなかの領域番号と、アクセス
    しようとしているプログラムの置かれている領域の領域
    番号の一致を調べる際に、領域番号の全部又は一部をマ
    スクする手段を具備することを特徴とする請求項4記載
    のメモリ管理装置。
  6. 【請求項6】 検証手段において、どの領域からのアク
    セスが可能かを示す情報のなかの領域番号と、アクセス
    しようとしているプログラムの置かれている領域の領域
    番号について所定の論理演算を行い、論理演算結果が真
    であった場合に領域番号が一致したと見倣す手段を具備
    することを特徴とする請求項4記載のメモリ管理装置。
  7. 【請求項7】 仮想空間に割り付けられたプログラムを
    実行する計算機に設けられ、アドレス変換テーブルに保
    持されている複数のアドレスに対して指示されたアドレ
    スとの一致を検出し、該一致が検出された際に前記指示
    されたアドレスと対になるアドレスを出力する手段を有
    するメモリ管理装置であって、 前記アドレス変換テーブル中のアドレス対の各々に対し
    て複数個のアクセス保護情報を記憶する手段と、 前記複数個のアクセス保護情報を参照し、実行中のプロ
    グラムの仮想空間内の位置からのあるいはプログラムを
    実行中の実行主体による前記指示されたアドレスへのア
    クセスが許可されるか否かを検証する手段と、 前記検証結果を出力する手段とを具備したことを特徴と
    するメモリ管理装置。
  8. 【請求項8】 仮想空間に割り付けられたプログラムを
    実行する計算機に設けられ、 アドレス変換テーブルに保持されている複数のアドレス
    に対して指示されたアドレスとの一致を検出し、該一致
    が検出された際に前記指示されたアドレスと対になるア
    ドレスを出力する手段と、 前記アドレス変換テーブルの一部を置くキャッシュメモ
    リを有するメモリ管理装置であって、 前記アドレス変換テーブル中に設けられ、アドレス対の
    各々に対して複数で可変個のアクセス保護情報を記憶す
    る第1の記憶手段と、 前記キャッシュメモリ中に設けられ、アドレス対に各々
    に対して複数で固定個のアクセス保護情報を記憶する第
    2の記憶手段と、 前記第2の記憶手段中の複数のアクセス保護情報を検証
    する検証手段と、 前記検証手段で検証できなかった場合に、前記キャッシ
    ュメモリ中の第2の記憶手段の内容のみを、前記アドレ
    ス変換テーブル中の第1の記憶手段の内容の一部と入れ
    換える手段を具備したことを特徴とするメモリ管理装
    置。
JP00393793A 1991-11-29 1993-01-13 メモリ管理装置及び方法 Expired - Fee Related JP3454854B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP00393793A JP3454854B2 (ja) 1992-01-16 1993-01-13 メモリ管理装置及び方法
US08/021,098 US5627987A (en) 1991-11-29 1993-02-23 Memory management and protection system for virtual memory in computer system
US08/753,944 US5890189A (en) 1991-11-29 1996-12-03 Memory management and protection system for virtual memory in computer system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2604092 1992-01-16
JP4-26040 1992-09-04
JP00393793A JP3454854B2 (ja) 1992-01-16 1993-01-13 メモリ管理装置及び方法

Publications (2)

Publication Number Publication Date
JPH05257811A true JPH05257811A (ja) 1993-10-08
JP3454854B2 JP3454854B2 (ja) 2003-10-06

Family

ID=29272080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00393793A Expired - Fee Related JP3454854B2 (ja) 1991-11-29 1993-01-13 メモリ管理装置及び方法

Country Status (1)

Country Link
JP (1) JP3454854B2 (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868471B1 (en) 1999-04-20 2005-03-15 Nec Corporation Memory address space extension device and storage medium storing therein program thereof
JP2007122305A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd 仮想計算機システム
JP2007226786A (ja) * 2006-02-23 2007-09-06 Internatl Business Mach Corp <Ibm> 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
JP2008515069A (ja) * 2004-09-30 2008-05-08 インターナショナル・ビジネス・マシーンズ・コーポレーション プロセッサ・リソースの仮想化のためのシステムおよび方法
JP2009516310A (ja) * 2005-12-30 2009-04-16 インテル・コーポレーション メモリページをプログラムに対応付けるページカラーリング
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
JP2010086410A (ja) * 2008-10-01 2010-04-15 Canon Inc メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
US7882318B2 (en) 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
JP2013140477A (ja) * 2012-01-04 2013-07-18 Toyota Motor Corp 情報処理装置及びメモリアクセス管理方法
JP2015527661A (ja) * 2012-08-02 2015-09-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated 単一のページテーブルエントリ内の複数のセットの属性フィールド
JP2016513836A (ja) * 2013-03-05 2016-05-16 クアルコム,インコーポレイテッド ハードウェアテーブルウォーク(hwtw)を実行する際にいくつかの条件下でレジスタの内容に対する許可のないアクセスを防止するための方法および装置
JP2018073301A (ja) * 2016-11-02 2018-05-10 日立オートモティブシステムズ株式会社 車両制御装置
JP2018524691A (ja) * 2015-06-16 2018-08-30 エイアールエム リミテッド アドレス変換
EP3504629A4 (en) * 2016-08-29 2020-05-13 Intel Corporation IMPROVEMENT OF MEMORY ACCESS AUTHORIZATION BASED ON THE CURRENT AUTHORIZATION LEVEL PER PAGE
US10802729B2 (en) 2015-06-16 2020-10-13 Arm Limited Apparatus and method for sharing pages including enforcing ownership rights independently of privilege level
US10838877B2 (en) 2015-06-16 2020-11-17 Arm Limited Protected exception handling
CN119538215A (zh) * 2024-10-15 2025-02-28 清华大学 基于内存访问控制列表的软件安全保护方法及装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868471B1 (en) 1999-04-20 2005-03-15 Nec Corporation Memory address space extension device and storage medium storing therein program thereof
JP2008515069A (ja) * 2004-09-30 2008-05-08 インターナショナル・ビジネス・マシーンズ・コーポレーション プロセッサ・リソースの仮想化のためのシステムおよび方法
JP2007122305A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd 仮想計算機システム
JP2009516310A (ja) * 2005-12-30 2009-04-16 インテル・コーポレーション メモリページをプログラムに対応付けるページカラーリング
JP4759059B2 (ja) * 2005-12-30 2011-08-31 インテル・コーポレーション メモリページをプログラムに対応付けるページカラーリング
JP2007226786A (ja) * 2006-02-23 2007-09-06 Internatl Business Mach Corp <Ibm> 別のプロセスのプロセス・ローカル・ストレージにアクセスする方法、装置、コンピュータ・プログラム、およびコンピュータ実装方法
US7882318B2 (en) 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
JP2009104555A (ja) * 2007-10-25 2009-05-14 Intel Corp Vt環境で動作するソフトウェアエージェントの改竄防止、方法および装置
JP2010086410A (ja) * 2008-10-01 2010-04-15 Canon Inc メモリ保護方法、情報処理装置、メモリ保護プログラム及びメモリ保護プログラムを記録した記録媒体
JP2013140477A (ja) * 2012-01-04 2013-07-18 Toyota Motor Corp 情報処理装置及びメモリアクセス管理方法
JP2015527661A (ja) * 2012-08-02 2015-09-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated 単一のページテーブルエントリ内の複数のセットの属性フィールド
JP2018041485A (ja) * 2012-08-02 2018-03-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 単一のページテーブルエントリ内の複数のセットの属性フィールド
JP2019109906A (ja) * 2012-08-02 2019-07-04 クゥアルコム・インコーポレイテッドQualcomm Incorporated 単一のページテーブルエントリ内の複数のセットの属性フィールド
JP2016513836A (ja) * 2013-03-05 2016-05-16 クアルコム,インコーポレイテッド ハードウェアテーブルウォーク(hwtw)を実行する際にいくつかの条件下でレジスタの内容に対する許可のないアクセスを防止するための方法および装置
JP2018524691A (ja) * 2015-06-16 2018-08-30 エイアールエム リミテッド アドレス変換
US10802729B2 (en) 2015-06-16 2020-10-13 Arm Limited Apparatus and method for sharing pages including enforcing ownership rights independently of privilege level
US10838877B2 (en) 2015-06-16 2020-11-17 Arm Limited Protected exception handling
US10936504B2 (en) 2015-06-16 2021-03-02 Arm Limited Apparatus and method for address translation and control of whether an access request is rejected based on an ownership table indicating an owner process for a block of physical addresses
EP3504629A4 (en) * 2016-08-29 2020-05-13 Intel Corporation IMPROVEMENT OF MEMORY ACCESS AUTHORIZATION BASED ON THE CURRENT AUTHORIZATION LEVEL PER PAGE
JP2018073301A (ja) * 2016-11-02 2018-05-10 日立オートモティブシステムズ株式会社 車両制御装置
WO2018084024A1 (ja) * 2016-11-02 2018-05-11 日立オートモティブシステムズ株式会社 車両制御装置
US10967813B2 (en) 2016-11-02 2021-04-06 Hitachi Automotive Systems, Ltd. Vehicle control device
CN119538215A (zh) * 2024-10-15 2025-02-28 清华大学 基于内存访问控制列表的软件安全保护方法及装置

Also Published As

Publication number Publication date
JP3454854B2 (ja) 2003-10-06

Similar Documents

Publication Publication Date Title
US5280614A (en) Apparatus and method for controlling access to data using domains
JP3454854B2 (ja) メモリ管理装置及び方法
KR102903252B1 (ko) 메모리 시스템에 저장된 메모리 보호 테이블을 사용하는 메모리 보호 유닛
US7882318B2 (en) Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
US4800489A (en) Paged memory management unit capable of selectively supporting multiple address spaces
US4763250A (en) Paged memory management unit having variable number of translation table levels
EP1966706B1 (en) Identifier associated with memory locations for managing memory accesses
US8560806B2 (en) Using a multiple stage memory address translation structure to manage protected micro-contexts
US20140201822A1 (en) Method and system for permitting access to resources based on instructions of a code tagged with an identifier assigned to a domain
EP3830719B1 (en) Binary search procedure for control table stored in memory system
JPH03220648A (ja) データ処理システム
KR100995146B1 (ko) 개선된 메모리 엑세스 보안을 제공하는 메모리에 디바이스엑세스를 제어하기 위한 시스템 및 방법
JPS6248258B2 (ja)
JP3607540B2 (ja) プログラム単位メモリアクセス属性管理方式
US4766537A (en) Paged memory management unit having stack change control register
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
JPH03154949A (ja) ストアされたデータのプロテクシヨン方法及びシステム
KR910002557B1 (ko) 기억보호장치
CA2029628A1 (en) Translation look aside buffer with parallel exception checking and update bypass
US6889308B1 (en) Method and apparatus for protecting page translations
JPH01125638A (ja) キャッシュメモリ装置
JPH024016B2 (ja)
JPH0337217B2 (ja)
JPS61105654A (ja) アドレス変換制御方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080725

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090725

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090725

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100725

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees