JPH0520199A - 複数のmmuをサポートするメモリ管理方法 - Google Patents

複数のmmuをサポートするメモリ管理方法

Info

Publication number
JPH0520199A
JPH0520199A JP3176603A JP17660391A JPH0520199A JP H0520199 A JPH0520199 A JP H0520199A JP 3176603 A JP3176603 A JP 3176603A JP 17660391 A JP17660391 A JP 17660391A JP H0520199 A JPH0520199 A JP H0520199A
Authority
JP
Japan
Prior art keywords
mmu
entry
mmus
memory
size
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.)
Pending
Application number
JP3176603A
Other languages
English (en)
Inventor
Tokushi Ito
徳嗣 伊藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3176603A priority Critical patent/JPH0520199A/ja
Publication of JPH0520199A publication Critical patent/JPH0520199A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 MMUに依存する情報やルーチンをテーブル
に登録し、テーブルの切り替えによりMMUに対する操
作を動的に切り替えられる複数のMMUをサポートする
メモリ管理方法を得る。 【方法】 MMUの各テーブルやエントリのサイズ情
報、及びMMUの各テーブルを操作するテーブル操作ル
ーチン群をテーブルに登録し、MMUに関する操作をす
る場合に、OSがMMUの種類を判別して、それに対応
したMMUのテーブル操作ルーチン群を登録されたテー
ブルの内から選択し、MMUに対する操作を切り替える
ようにしたことを特徴としている。 【効果】 MMUの変更に伴うOSに対する改修を容易
に実現することが可能となり、またMMUが異なる場合
にも、同等の機能を有するOSを一本化することができ
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、仮想記憶を持つOS
(OperatingSystem:オペレーティングシステム)内で
MMU(Memory Management Unit:主記憶装置)に依存
しないメモリ管理方法に関するものである。
【0002】
【従来の技術】通常、MMUはOSメモリを管理する場
合の処理を助けるハードウェアである。一般に仮想記憶
を持つOSでは、各タスクごとに独立した仮想記憶空間
を割り当てている。これらの仮想記憶空間と物理メモリ
との間のマッピング、及びこのマッピングの正当性のチ
ェックなどを行うものがMMUである。
【0003】図3はCPUがMMUを介してメモリを参
照する場合におけるCPU周辺の構成を示すブロック図
である。図において、1はCPU(中央処理装置)、2
はMMU(主記憶装置)、3はメモリである。図3に示
される構成のブロック図で、CPU1がメモリ3を参照
する場合には、MMU2を介して仮想アドレス4を物理
アドレス5に変換した後に、メモリ3から命令又はデー
タ6を取り出すようにしている。
【0004】図4はMMUが仮想アドレスを物理アドレ
スに変換する一例を説明するためのブロック図である。
図4はページを管理単位とするMMUにおける仮想アド
レスと物理アドレスとの変換例を示している。MMUは
複数レベルの変換テーブル、すなわちドメインテーブル
22,セグメントテーブル23,ページテーブル24を
用いてアドレスの変換を行う。各レベルのテーブル22
〜24のエントリ25〜27は次のレベルのテーブルの
開始アドレスを持っている。最上位のドメインテーブル
22はCPU内の特殊なレジスタであるRP(ルートポ
インタ)21によりアドレスされ、最下位のページテー
ブル24のエントリ27は物理メモリ(物理ページ)2
8の開始アドレスを持っている。
【0005】仮想アドレス29はテーブルのレベル+1
に等しいビットフィールド30〜33に分けられ、最下
位のビットフィールド33以外のビットフィールド30
〜32は各テーブル22〜24のエントリ25〜27を
インデックスする。最下位のビットフィールド33は物
理ページ中のオフセットである。MMUは上記のような
階層構造のテーブルをたどることにより、仮想アドレス
を物理アドレスに変換する。
【0006】図5は図4のMMUの各レベルのテーブル
をOSが作成する場合を説明するためのフローチャート
である。図において、34〜40は処理過程を示すステ
ップである。
【0007】次に、図4に示されるブロック図の動作に
ついて説明する。図4に示される各レベルのテーブル2
2〜24のエントリ25〜27には次のレベルのテーブ
ルを指すポインタが正当なものかどうかを示すフィール
ドあり、MMUはこれによって次のレベルの正当性を判
断する。次のレベルが正当でない場合に、MMUは割り
込みを発生してOSにその旨を通知する。OSはMMU
からの割り込みにより、物理メモリ28が割り当てられ
ていないことを知ると、その仮想アドレス29へのアク
セスが不正でない限り、空いている物理メモリ28を割
り当てようとする。
【0008】図5に示されるフローチャートにおいて、
ドメインテーブル22がない場合にはドメインテーブル
用メモリを用意し(ステップ34)、RP21にアドレ
スを設定(セット)する(ステップ35)。次にセグメ
ントテーブル23がない場合にはセグメントテーブル用
メモリを用意し(ステップ36)、そのアドレスをドメ
インテーブル22のエントリ25に設定(セット)する
(ステップ37)。さらに、ページテーブル24がない
場合にはページテーブル用メモリを用意し(ステップ3
8)、そのアドレスをセグメントテーブル23のエント
リ26に設定(セット)する(ステップ39)。最後
に、空き物理ページの開始アドレスをページテーブル2
4のエントリ27に設定(セット)する(ステップ4
0)。
【0009】
【発明が解決しようとする課題】従来、MMUが仮想ア
ドレスを物理アドレスに変換する場合のように、MMU
に関する操作をする場合に、MMUの種類によって各テ
ーブルやエントリのサイズ及び構成はそれぞれ異なって
いるので、仮想記憶空間の間に物理メモリをはり付ける
場合には、各テーブルを直接に操作しなければならな
い。そのために、各MMUに固有のテーブルのサイズや
エントリのサイズ、エントリ中の各フィールドの位置な
どを意識したプログラムコードが必要となり、それゆ
え、MMUに関する操作をする場合に、MMUが個々に
異なることによって同等の機能を有するOSを一本化す
ることができないという問題点があった。
【0010】この発明は上記のような問題点を解消する
ためになされたもので、OSがMMUの種類を判別し、
それに対応したMMUのテーブル操作ルーチン群を選択
できるようにした複数のMMUをサポートするメモリ管
理方法を得ることを目的とする。
【0011】
【課題を解決するための手段】この発明に係る複数のM
MUをサポートするメモリ管理方法は、MMUの各テー
ブルやエントリのサイズ情報、及びMMUの各テーブル
を操作するテーブル操作ルーチン群をテーブルに登録
し、MMUに関する操作をする場合に、OSがMMUの
種類を判別して、それに対応したMMUのテーブル操作
ルーチン群を登録されたテーブルの内から選択し、MM
Uに対する操作を切り替えるようにしたものである。
【0012】
【作用】この発明における複数のMMUをサポートする
メモリ管理方法は、MMUの各テーブル用のメモリの割
り当ては、登録されたテーブルの情報に基づいて行い、
またMMUの各テーブルのエントリに対する操作も、登
録されたテーブル上のルーチンを用いて行うようにす
る。
【0013】
【実施例】以下、この発明の一実施例を図について説明
する。図1はこの発明の実施例である複数のMMUをサ
ポートするメモリ管理方法に使用するMMUに関する情
報を登録するテーブルを示す図である。図1に示される
テーブルには、各テーブルのサイズ情報10、例えばペ
ージテーブルサイズ7,ページテーブルエントリ数8,
ページテーブルエントリのサイズ9などのサイズ情報1
0や、各テーブルエントリのテーブル操作ルーチン群1
1を登録する。テーブル操作ルーチン群11はページテ
ーブル操作ルーチン群12、セグメントテーブル操作ル
ーチン群13、ドメインテーブル操作ルーチン群14に
分かれている。各テーブルエントリのテーブル操作ルー
チンはエントリ中のビットフィールド位置とその内容に
ついてプログラムコード中で暗に示している。これらの
ルーチンはテーブルエントリをダイレクトに操作するも
のであり、MMUの各テーブルを操作する必要のある他
のルーチンはテーブルを参照し、これらのルーチンを呼
び出すべきである。
【0014】上記テーブルに登録すべき情報としては、
下記に示すようなものがある。 ・各テーブルのサイズ ・各テーブルのエントリ数 ・各テーブルのエントリのサイズ ・ページテーブルの各ビットフィールドに対する操作
(set,get) ・セグメントテーブルの各ビットフィールドに対する操
作(set,get) ・ドメインテーブルの各ビットフィールドに対する操作
(set,get) ・仮想アドレスから各テーブルに対するインデックスを
求めるルーチン
【0015】この発明による複数のMMUをサポートす
るメモリ管理方法では、上記テーブルを配列の一要素
(MMU−A15,MMU−B16)とし、サポートす
るMMUの種類分の配列要素を持つ配列を定義し、この
配列に各MMUに対する情報を登録する。OSはこの配
列の一要素を選択することにより、動的にMMUに対す
る操作を切り替えるようにしている。
【0016】図2は図1のテーブルに登録された情報を
使用したプログラムコードを示す図である。図2はプロ
グラムコードをC言語で示した例を表わしている。上述
したように、OSはMMUの種類を判別して、それに対
応したMMUのテーブルを選択してテーブル選択17を
行う。OSがMMUの各レベルのテーブルを用意する場
合には、テーブルに登録されたテーブルサイズを用いて
メモリを確保するメモリ確定18を行い、テーブル中の
エントリはエントリサイズと仮想アドレスから取り出さ
れたインデックスより求めるエントリのアドレス計算1
9を行う。
【0017】MMUの各テーブルのエントリを操作する
場合には、テーブルに登録されたルーチンをコールして
エントリの操作(設定)20を行う。コールされたルー
チンはエントリのサイズと操作すべきビットフィールド
を知っており、これに対してデータの設定や取り出しを
行う。このようにしてテーブルに登録しておいた情報を
用い、MMUに直接に関係したプログラムコードを覆い
隠す。
【0018】なお、上記実施例においてテーブルに登録
されているテーブル操作ルーチンは、異なるMMU間、
異なるテーブル間で共用するようにしても良い。
【0019】また、上記実施例においてMMUの情報の
テーブルは配列にする必要はなく、これらの間接的なル
ーチンコールをマクロ化し、直接的なルーチンコールに
見せかけても良い。
【0020】
【発明の効果】以上のように、この発明の複数のMMU
をサポートするメモリ管理方法は、MMUの各テーブル
やエントリのサイズ情報、及びMMUの各テーブルを操
作するテーブル操作ルーチン群をテーブルに登録し、M
MUに関する操作をする場合に、OSがMMUの種類を
判別して、それに対応したMMUのテーブル操作ルーチ
ン群を登録されたテーブルの内から選択し、MMUに対
する操作を切り替えるようにしたので、MMUのテーブ
ル操作をOSの他の部分から完全に切り離すことができ
るために、MMUの変更に伴うOSに対する改修を容易
に実現することが可能となり、またMMUが異なる場合
にも、同等の機能を有するOSを一本化することができ
るなどの優れた効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施例である複数のMMUをサポー
トするメモリ管理方法に使用するMMUに関する情報を
登録するテーブルを示す図である。
【図2】図1のテーブルに登録された情報を使用したプ
ログラムコードを示す図である。
【図3】CPUがMMUを介してメモリを参照する場合
におけるCPU周辺の構成を示すブロック図である。
【図4】MMUが仮想アドレスを物理アドレスに変換す
る一例を説明するためのブロック図である。
【図5】図4のMMUの各レベルのテーブルをOSが作
成する場合を説明するためのフローチャートである。
【符号の説明】
1 CPU(中央処理装置) 2 MMU(主記憶装置) 3 メモリ 4 仮想アドレス 5 物理アドレス 6 命令又はデータ 7 ページテーブルサイズ 8 ページテーブルエントリ数 9 ページテーブルエントリのサイズ 10 サイズ情報 11 テーブル操作ルーチン群 12 ページテーブル操作ルーチン群 13 セグメントテーブル操作ルーチン群 14 ドメインテーブル操作ルーチン群 15 MMU−A 16 MMU−B 17 テーブル選択 18 メモリ確定 19 エントリのアドレス計算 20 エントリの操作(設定) 21 RP(ルートポインタ) 22 ドメインテーブル 23 セグメントテーブル 24 ページテーブル 25,26,27 エントリ 28 物理メモリ(物理ページ) 29 仮想アドレス 30〜33 ビットフィールド 34〜40 ステップ

Claims (1)

  1. 【特許請求の範囲】 【請求項1】 MMUに依存する情報やルーチンである
    各レベルのテーブルに関するサイズ情報や、各レベルの
    テーブル操作ルーチン群が登録されたテーブルを備え、
    MMUに関する操作をする場合に、OSがMMUの種類
    を判別し、それに対応したMMUのテーブル操作ルーチ
    ン群を、サポートしているMMUの種類分ある上記登録
    されたテーブルの内から一つを選択し、MMUに対する
    操作を切り替えることを特徴とする複数のMMUをサポ
    ートするメモリ管理方法。
JP3176603A 1991-07-17 1991-07-17 複数のmmuをサポートするメモリ管理方法 Pending JPH0520199A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3176603A JPH0520199A (ja) 1991-07-17 1991-07-17 複数のmmuをサポートするメモリ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3176603A JPH0520199A (ja) 1991-07-17 1991-07-17 複数のmmuをサポートするメモリ管理方法

Publications (1)

Publication Number Publication Date
JPH0520199A true JPH0520199A (ja) 1993-01-29

Family

ID=16016458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3176603A Pending JPH0520199A (ja) 1991-07-17 1991-07-17 複数のmmuをサポートするメモリ管理方法

Country Status (1)

Country Link
JP (1) JPH0520199A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522748A (ja) * 2010-03-15 2013-06-13 アーム・リミテッド 階層的な変換テーブル制御

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013522748A (ja) * 2010-03-15 2013-06-13 アーム・リミテッド 階層的な変換テーブル制御
US8799621B2 (en) 2010-03-15 2014-08-05 Arm Limited Translation table control

Similar Documents

Publication Publication Date Title
US6023749A (en) Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
US6542919B1 (en) Operating system for use with protection domains in a single address space
US6505286B1 (en) User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
KR101729503B1 (ko) 계층 변환 테이블 제어
US4943913A (en) Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
US5426748A (en) Guest/host extended addressing method and means with contiguous access list entries
US5873127A (en) Universal PTE backlinks for page table accesses
EP0058844A2 (en) Address generator for multiple virtual address spaces
JPH05233458A (ja) コンピュータシステムのメモリ管理装置
JPH04299440A (ja) 共有レジスタ制御方式
JPH05233425A (ja) メモリ管理装置
US20070239960A1 (en) Data processor and IP module for data processor
JPS62165250A (ja) 仮想記憶方法
JPH0552540B2 (ja)
US5437016A (en) Apparatus and method for translating logical addresses for virtual machines
JPH0683710A (ja) プログラム及びデータの処理方法
CN100419671C (zh) 一种建立操作模式的处理器以及在处理器中建立操作模式的方法
US4984150A (en) Virtual memory control management system
JPH0520199A (ja) 複数のmmuをサポートするメモリ管理方法
JPH06100987B2 (ja) アドレス変換制御方法
JP3456727B2 (ja) データ処理装置
KR0162759B1 (ko) 인텔 처리기의 메모리 관리 유니트를 이용한 확장된 가상주소공간 구축방법
JPS592938B2 (ja) メモリ ワ−クスペ−ス アンドレツシングホウホウオヨビソウチ
JPH05151084A (ja) Tlbエントリクリア方式