(57)【要約】【課題】ＣＰＵ等の負担なしに効果的に必要な保護レベルの設定と、汎用性の向上とソフトウェア開発の効率化を提供する。【解決手段】ＭＭＵを有するＣＰＵに搭載可能にされるオペレーティングシステムである。第１物理アドレスに対応した第１論理アドレス空間を割り当てる第１ＴＬＢを作成して第１保護レベルとする。上記第１物理アドレスを含んでそれよりも大きな第２物理アドレスに対応した第２論理アドレス空間を割り当てる第２ＴＬＢを作成して第２保護レベルとする。タスクの生成時に、そのタスクに指定された保護レベルに対応したＴＬＢに対応した論理アドレス空間をアクセスする。タスクの切り替え時に、切り替わったタスクの保護レベルに対応したＴＬＢに切り替えて当該論理アドレス空間をアクセスする。実行中のタスクに指定された保護レベルに対応した論理アドレス空間に違反したメモリアクセスを検出してメモリアクセス違反処理を行う。【選択図】図１
2010267077.tif 000002
【特許請求の範囲】
【請求項１】
ＭＭＵを有するＣＰＵに搭載可能にされ、
第１物理アドレスに対応した第１論理アドレス空間を割り当てる第１アドレス変換テーブルを作成して第１保護レベルとする第１ステップと、
上記第１物理アドレスを含んでそれよりも大きな第２物理アドレスに対応した第２論理アドレス空間を割り当てる第２アドレス変換テーブルを作成して第２保護レベルとする第２ステップと、
タスクの生成時に、そのタスクに指定された保護レベルに対応したアドレス変換テーブルに対応した論理アドレス空間をアクセスする第３ステップと、
タスクの切り替え時に、切り替わったタスクの保護レベルに対応したアドレス変換テーブルに切り替えて当該論理アドレス空間をアクセスする第４ステップと、
実行中のタスクに指定された保護レベルに対応した論理アドレス空間に違反したメモリアクセスを検出してメモリアクセス違反処理を行う第５ステップと、
を有するオペレーティングシステム。
【請求項２】
請求項１において、
上記第１ステップと第２ステップとの論理アドレス空間の関係と同様に入れ子構造にされた１ないし複数の上位の保護レベル及びそれに対応したアドレス変換テーブルを搭載されるシステムに応じて作成する第６ステップを更に有する、
オペレーティングシステム。
【請求項３】
上記物理メモリと上記複数の論理アドレス空間は、最下位アドレスが共通にされ、
複数の保護レベルに対応したベースアドレスがそれぞれ異なり、
上記複数のアドレス変換テーブルは、上記複数の保護レベルにそれぞれ対応した複数のベースアドレスが存在する１つのアドレス変換テーブルとされる、
オペレーティングシステム。
【請求項４】
請求項２において、
上記第１及び第２物理アドレスを含む複数の物理アドレスは、少なくともいずれか１つが第１アドレス空間と第２アドレス空間を有し、第１アドレス空間と第２アドレス空間が連続しないものも含む、
オペレーティングシステム。
【請求項５】
請求項２において、
上記複数のアドレス変換テーブルは、ＭＭＵの外部メモリに保存され、
上記ＭＭＵは、上記アドレス変換テーブルの一部を取り込むキャッシュを有し、
上記第４ステップにおいて、上記切り替え後のタスクの保護レベルが、切り替え前のタクスの保護レベルより下位のときには上記キャッシュに存在するアドレス変換テーブルを破棄する第７ステップを更に有する、
オペレーティングシステム。
【請求項６】
請求項５において、
上記キャッシュに格納されている論理アドレス以外の論理アドレスにアクセスするメモリアクセス例外処理を行う第８ステップを更に有し、
第８ステップにおいて、上記外部メモリに保存され、当該タスクの保護レベルに対応したアドレス変換テーブルに上記論理アドレスが有るときには当該論理アドレスを含むアドレス変換テーブルを上記キャッシュにロードし、上記論理アドレスが無いときに第５ステップに対応した上記メモリアクセス違反処理を行う、
オペレーティングシステム。
【請求項７】
ＭＭＵを用いて以下の処理をソフトウェアで行うようにするメモリ保護方法。
（１）第１物理アドレスに対応した第１論理アドレス空間を割り当てる第１アドレス変換テーブルを作成して第１保護レベルとする。
（２）上記第１物理アドレスを含んでそれよりも大きな第２物理アドレスに対応した第２論理アドレス空間を割り当てる第２アドレス変換テーブルを作成して第２保護レベルとする。
（３）上記第１ステップと第２ステップとの論理アドレス空間の関係と同様に入れ子構造にされた上位の保護レベル及びそれに対応したアドレス変換テーブルを搭載されるシステムに応じて作成する。
（４）タスクの生成時に、そのタスクに指定された保護レベルに対応したアドレス変換テーブルに対応した論理アドレス空間をアクセスする。
（５）タスクの切り替え時に、切り替わったタスクの保護レベルに対応したアドレス変換テーブルに切り替えて当該論理アドレス空間をアクセスする。
（６）実行中のタスクに指定された保護レベルに対応した論理アドレス空間に違反したメモリアクセスを検出してメモリアクセス違反処理を行う。
【請求項８】
請求項７において、
上記ソフトウェアは、オペレーティングシステムであるメモリ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、オペレーティングシステムとメモリ保護方法に関し、例えばＭＭＵ（メモリ・マネジメント・ユニット）を備えたＣＰＵ（中央処理装置）のメモリ保護機能に利用して有効な技術に関するものである。
【背景技術】
【０００２】
マイクロコンピュータにメモリ保護機能を持たせた例として、特許文献１がある。このマイクロコンピュータは、保護設定レジスタ、メモリアクセス制御装置等を設けてメモリアクセス制御の信頼性を向上させるものである。
【０００３】
特権モードとユーザーモードの２つの保護レベルを備えたＣＰＵがある。一方、ＭＭＵを用いた仮想記憶方式がある。ＭＭＵは、複数のプロセスが同時に走行するタイムシェアリングシステムにおいて、プロセスごとに仮想メモリを割り当てることにより、あるプロセスが別のプロセスの物理メモリに誤ってアクセスすることがないので記憶保護の機能も持つことができる。仮想記憶方式には、複数のプロセスが論理アドレス空間を排他的に使用しながら同時に走行する単一仮想記憶モードと、複数のプロセスが論理アドレス空間を共有して使用しながら走行する多重仮想記憶モードが知られている。この多重仮想記憶モードでは、ある論理アドレスはプロセスにより異なった物理アドレスに変換させることができる。ＭＭＵは、複数のプロセスが同時に走行するタイムシェアリングシステムにおいて、プロセスごとに仮想メモリを割り当てることにより、あるプロセスが別のプロセスの物理メモリに誤ってアクセスすることがないので記憶保護の機能も持つことができる。このようなＣＰＵ及びＭＭＵを備えたマイクロコンピュータに関しては、非特許文献１がある。
【０００４】
組み込みシステム向けのリアルタイムカーネル（オペレーティングシステム）として、T-Kernelが知られている。T-Kernelは、ＣＰＵの有する４段階の保護レベルを前提としており、例えば前記のように２つの保護レベルしか持たないＣＰＵに対しては、レベル０〜２を特権モードにし、レベル３をユーザーモードに割り当てることが非特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２８７１０３号公報
【非特許文献】
【０００６】
【非特許文献１】（株）ルネサステクノロジ、ＳＨ７７２９Ｒハードウェアニュアル、メモリマネジメントユニット（ＭＭＵ）  ３−１〜３−５［平成２１年４月２０日検索］、インターネット＜ＵＲＬ：http://documentation.renesas.com/jpn/products/mpumcu/rjj09b0088_sh7729r.pdf ＞
【非特許文献２】社団法人トロン協会、ＹＲＰユビキタス・ネットワーク研究所  ＩＴＲＯＮからＴ−Ｋｅｒｎｅｌへのミドルウェア移行ガイド、４．３タスクの保護レベルについて、７頁、［平成２１年４月２０日検索］、インターネット＜ＵＲＬ：http://www.assoc.toron.org/jpn/others/migrationguid.pdf ＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
メモリ保護の機能はＣＰＵのハードウェアとしての機能であるため、ＣＰＵの品種により、実現可能な保護のレベル数が異なる。例えば、特権モードとユーザモードの二段階にしか対応しない前記非特許文献１のようなＣＰＵでは、前記非特許文献２のようなリアルタイムＯＳ（オペレーティングシステム）であるT-Kernelの４段階の保護レベルを実現することができない。前記のようにＣＰＵの品種により保護レベルの実際の有効なレベル数が異なるという事は、ソフトウェアの移植性を損ない、ミドルウェアの流通の妨げとなる。実際には、移植性や流通を考慮すると、この機能を積極的に使用することができなくなるという問題を有する。
【０００８】
前記のように２つの保護レベルしか持たないＣＰＵに対して、レベル０〜２を特権モードにし、レベル３をユーザーモードに割り当てる場合、システムの動作状態を考慮すると、インターネットを介して取得するもののように信頼性が保証されていないゲーム、地図、その他に対応したアプレット層を前記ユーザーモードにし、リアルタイムＯＳ等に対応したシステム層、ＵＳＢメモリ制御、ＨＤＤ制御、その他等に対応したデバイス層及びプラウザ等対応したアプリケーション層を上記特権モードにすればよい。しかしながら、基本ソフトウェアとミドルウェアをシステムプラットホーム（またはシステム基盤）として設計構築する設計開発時においては、システム層、デバイス層及びプラウザが同じ範疇の保護レベルとなり、バグ発生時に際して、各層が相互に影響し合うので原因究明と対策に膨大な時間を費やしてしまうという問題を有する。
【０００９】
前記特許文献１のようにメモリ保護機能をＣＰＵ自身に持たせる構成では、ハードウェアの負担が大きくなる。適用範囲を広くするために考えられる最大の保護レベルを組み込むものとすると、簡単なシステムでは過剰なハードウェアを搭載することとなってしまい無駄が多くなる。そして、既存のＣＰＵ等の大半が使用できないという問題を有する。
【００１０】
この発明の目的は、ＣＰＵ等の負担なしに効果的に必要な保護レベルの設定を実現したオペレーティングシステムとメモリ保護方法を提供することにある。この発明の他の目的は、汎用性の向上と搭載するソフトウェア開発の効率化を可能としたオペレーティングシステムとメモリ保護方法を提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される１つの実施例は、以下の通りである。
【発明の効果】
【００１２】
ＣＰＵ等のハードウェアの負担なしに効果的に必要な保護レベルの設定を実現することができる。この保護レベルを用いてシステムプラットホーム等の設計開発の効率化が可能となる。
【図面の簡単な説明】
【００１３】
【図１】この発明に係るメモリ保護方法の一実施例の説明図である。
【図２】この発明に係るメモリ保護方法の他の一実施例の説明図である。
【図３】この発明に係るメモリ保護方法の他の一実施例の説明図である。
【図４】この発明に係るメモリ保護方法の一実施例の説明図である。
【図５】図４に対応したアドレス変換テーブルの一実施例の説明図である。
【図６】この発明に係るＯＳの一実施例が組み込まれた端末機器の概略図である。
【図７】この発明に係る保護レベルの具体的な説明図である。
【図８】この発明に係る保護レベル間の非可逆的なアクセス制限の説明図である。
【図９】この発明に係る多階層の保護レベルを実現するＯＳの制御を説明するためのフローチャート図である。
【発明を実施するための形態】
【００１４】
添付の図面に沿って、この発明の好ましい実施の形態について詳細に説明する。
【実施例】
【００１５】
図１には、この発明に係るメモリ保護方法の一実施例の説明図が示されている。この発明に係るメモリ保護方法では、メモリ・マネジメント・ユニット（以下、単にＭＭＵという）とそれを制御するオペレーティングシステム（以下、単にＯＳという）が用いられる。ここで、前記非特許文献１等にもあるようにＭＭＵは物理メモリを有効に利用するために考え出された機能であり、プログラムのサイズが物理メモリより少ない場合、プログラムのすべてを物理メモリへマッピングすることが可能である。プログラムのサイズが増大し、物理メモリに収まらない場合、プログラムを分割して実行に必要な部分を随時物理メモリへマッピングする必要が生じる。この物理メモリへのマッピングをプログラム自身が考えながら実行していては、プログラムにかかる負担が増大する。この負担を軽減するために物理メモリへのマッピングを一括して行おうとして生まれた考えが仮想記憶方式である。
【００１６】
前記のように仮想メモリ（論理メモリ）から物理メモリへのマッピングには、ＭＭＵが用いられる。ＭＭＵは通常ＯＳが管理しており、プログラムが必要する論理メモリを円滑に物理メモリへマッピングできるように物理メモリの入れ替えを行う。仮想記憶方式ではプログラムごとに論理メモリが割り当てられる。ＭＭＵは複数の仮想メモリを効率よく物理メモリへマッピングする働きをする。さらにあるプログラムが別のプロセスの物理メモリに誤ってアクセスしないようなメモリ保護機能も備わっている。
【００１７】
ＭＭＵの機能は、理論的にはソフトウェアのみでも実現可能だが、プログラムが物理メモリへアクセスするたびにソフトウェアで変換を行っていたのでは効率が悪くなる。そのためハードウェア上にアドレス変換をするためのアドレス変換テーブル（以下、ＴＬＢという）を持ち、頻繁に使用されるアドレス変換情報をＴＬＢに置いている。
【００１８】
ＭＭＵがイネーブルのとき、論理アドレス空間はページという単位に分割され、そのページ単位で物理アドレスに変換される。外部メモリ上のアドレス変換テーブルには、論理アドレスに対応する物理アドレスや記憶保護コードなどの付加情報が格納されている。ＴＬＢはアドレス変換の高速化のために外部メモリ上のアドレス変換テーブルの内容をキャッシングするのに使われる。アクセスされた論理アドレスがＴＬＢに登録されている場合にはＴＬＢヒットとなり、ＴＬＢから対応する物理アドレスページ管理情報が読み出され物理アドレスが決定される。アクセスされた論理アドレスがＴＬＢに登録されていない場合には、ＴＬＢミス例外が発生し、処理がＴＬＢミス例外処理ルーチンに移る。ＴＬＢミス例外処理ルーチンでは外部メモリ上のアドレス変換テーブルを検索し、対応する物理アドレス、ページ管理情報をＴＬＢに登録する。前記ルーチンから復帰後、ＴＬＢミス例外を発生させた命令を再実行する。
【００１９】
従来の仮想記憶方式には前記単一仮想記憶モードと多重仮想記憶モードとがある。ＭＭＵ制御レジスタにより選択が可能である。単一仮想記憶モードでは、複数のプログラムが論理アドレス空間を排他的に使用しながら同時に走行し、ある論理アドレスに対応する物理アドレスは一意に定まる。多重仮想記憶モードでは、複数のプログラムが論理アドレス空間を共有しながら走行するため、ある論理アドレスはプログラムにより異なった物理アドレスに変換され得る。多重仮想記憶モードの場合、論理アドレス空間は複数のプログラムに共有されるから、それぞれのプログラムを区別するためにアドレス空間識別子（ＡＳＩＤ）が設けられている。
【００２０】
本願発明では、前記仮想記憶方式に新規な機能を加えて前記ＭＭＵを用いて複数のプログラムに対応した論理アドレスを物理アドレスに変換する。図１に示されたように物理メモリに対して入れ子構造にされた複数の論理メモリ空間が割り当てられる。すなわち、物理メモリ上の領域１０１は論理メモリ空間１１１に割り当てられる。この論理メモリ空間１１１が最低の保護レベルに相当する。物理メモリ上の領域１０２と既に割り当て済みの物理メモリ上の領域１０１は論理メモリ空間１０２へ割り当てられる。物理メモリ上の領域１０３は先の物理メモリ上の領域１０１、１０２とともに論理メモリ空間１１３へ割り当てられる。すべての物理メモリ上の領域は論理メモリ空間１１４へ割り当てられる。この論理メモリ空間１１４が最高の保護レベルに相当する。この構成は、前記多重仮想記憶モードと異なり、プログラムを区別するためにアドレス空間識別子は共通にされる。
【００２１】
プログラムの実行単位（タスク）に任意の保護レベルを設定し、この発明に係るＯＳはタスクの切り替え時に、そのタスクの保護レベルの論理メモリ空間への切り替えを行う。該論理メモリ空間は入れ子構造となっているので、タスクは自身の保護レベル以下のメモリにはアクセスできるが、自身の保護レベル以上のメモリにはアクセスすることができない。
【００２２】
上記非可逆的なアクセス制限を設けることで、保護レベルの低いタスクによって生じた不具合が保護レベルの高いタスクへ影響を及ぼすことを防止する。また、不具合の原因究明においては不具合の生じているタスクの属する保護レベルから下位の保護レベルを調べることで足りる。したがって、基本ソフトウェアとミドルウェアをシステムプラットホーム等として設計構築する設計開発時等においては、バグ発生時に際して、調査対象範囲が絞り込まれるためバグ等の不具合の原因探求が短時間かつ容易にできる。
【００２３】
図２には、この発明に係る他の一実施例を示す説明図が示されている。この実施例では一つの論理メモリ空間に割り当てる物理メモリが連続でない場合に適用される。すなわち、物理メモリ上で互いに不連続な関係にある領域１０１Ａ、１０１Ｂ、１０１Ｃはそれぞれ一つの論理メモリ空間１１１に割り当てられる。物理メモリの領域１０２に上記領域１０１Ａ、１０１Ｂ、１０１Ｃを含ませて論理メモリ空間１１２が割り当てられる。以下、論理メモリ空間１１３，１１４も前記同様に入れ子構造に割り当てられる。
【００２４】
物理メモリが連続であれば管理は容易であるが、領域の分割を静的に行う必要がある。図２のように、前記領域１０１Ａ、１０１Ｂ、１０１Ｃのように非連続であっても、動的に任意の論理メモリ空間１１１への割り当てが可能となり、メモリを効率よく使用できる。例えば前記領域１０１ＡがＲＯＭ（リード・オンリー・メモリ）、同１０１ＢがＲＡＭ（ランダム・アクセス・メモリ）、同１０１Ｃが電気的に消去可能な不揮発性メモリ等の他のメモリであるものを一つの論理メモリ空間１１１に置きたい場合に有効である。
【００２５】
図３には、この発明に係る他の一実施例の説明図である。この実施例では、物理メモリは２つの入れ子構造の論理メモリ空間に割り当てられる。物理メモリは領域０１０１から１０１４と、領域１０１１から１０１４の２つに分けられる。一つの物理メモリ上の領域０１０１から０１０４は入れ子構造の論理メモリ空間１１１から１１４に割り当てられる。他方の物理メモリ上の領域１０１１から１０１４は入れ子構造の論理メモリ空間１２１から１２４に割り当てられる。この場合には、２つの入れ子構造の論理メモリ空間１１１から１１４と入れ子構造の論理メモリ空間１２１から１２４とは、異なるアドレス空間識別子が割り当てられる。
【００２６】
この構成では、並列的な２つの論理メモリ空間に異なるＯＳを搭載して１つのマイクロコンピュータ等の電子端末を実現する場合に有効である。このようにプログラムの大きな単位を並列な空間で独立させ、各々の論理メモリ空間を入れ子構造にすることによって、保護レベルの実現が可能となる。
【００２７】
図４には、この発明に係るメモリ保護方法の一実施例の説明図である。この実施例は図１に対応しており、各保護レベルがそれぞれ独立に（分離して）示されている。この実施例では、特に制限されないが、物理メモリと論理メモリ空間とが同一となるように示されている。すなわち、物理アドレスの最下位は最下位論理アドレスに対応されている。また、物理アドレスの最上位は最上位保護レベル０のベースアドレスに対応している。
【００２８】
物理メモリの最下位からアドレスＡＤＲ＿Ａまでの領域が領域Ａとされる。前記領域Ａは論理メモリ空間では同じく最下位からベースアドレスＡＤＲ＿Ａまでに対応され、最下位保護レベル３にされる。物理メモリＡＤＲ＿Ａ＋１からアドレスＡＤＲ＿Ｂまでの領域が領域Ｂとされる。前記領域Ａ＋Ｂは論理メモリ空間では同じく最下位からベースアドレスＡＤＲ＿Ｂまでに対応される。前記領域Ａ＋Ｂは保護レベル２にされる。物理メモリＡＤＲ＿Ｂ＋１からアドレスＡＤＲ＿Ｃまでの領域が領域Ｃとされる。前記領域Ａ＋Ｂ＋Ｃは論理メモリ空間では同じく最下位からベースアドレスＡＤＲ＿Ｃまでに対応される。前記領域Ａ＋Ｂ＋Ｃは保護レベル１にされる。そして、物理メモリＡＤＲ＿Ｃ＋１からアドレスＡＤＲ＿Ｄまでの領域が領域Ｄとされる。前記領域Ａ＋Ｂ＋Ｃ＋Ｄは論理メモリ空間では同じく最下位からベースアドレスＡＤＲ＿Ｄまでに対応される。前記領域Ａ＋Ｂ＋Ｃ＋Ｄは保護レベル０にされる。
【００２９】
図５には、前記図４に対応したアドレス変換テーブルの一実施例の説明図が示されている。前記図４のように上位の保護レベルの一部が下位の保護レベルと同じなので、４つの保護レベルに対応したアドレス変換が一つのテーブルに集約されている。つまり、図５に示された一つのアドレス変換テーブルには共通の最下位アドレスと各保護レベル０〜３にそれぞれ対応したベースアドレスベースアドレスＡＤＲ＿Ｄ〜ＡＤＲ＿Ａが設けられている。このような変換テーブルを用いることによってＴＢＬを小さなメモリ容量に効率よく格納させることができる。
【００３０】
各保護レベル０〜３毎にアドレス変換テーブルが作成されるが、前記多重仮想記憶モードとは異なり、アドレス空間識別子（ＡＳＩＤ）が同一にされる。このようにアドレス空間識別子（ＡＳＩＤ）が同一にされることによって、各保護レベル０〜３のテーブルの重複部分のデータは同一となるので、前記のようにテーブルを一つに重ね合わせることが可能になり、１つのＴＬＢに複数のベースアドレスＡＤＲ＿Ｄ〜ＡＤＲ＿Ａが存在することになる。プログラムの実行時に、タスクのディスパッチや割込み、例外などにより保護レベルが変更される際、アドレス変換テーブルのベースアドレスが変更される。保護レベルが上位から下位に変更される際には、同時にＭＭＵのキャッシュに格納されているＴＬＢが破棄される。
【００３１】
図６には、この発明に係るＯＳの一実施例が組み込まれた端末機器の概略図が示されている。この実施例の端末機器は、例えば携帯電話装置等のようなモバイル端末装置であり、前記ＭＭＵを備えたＣＰＵ（ＳＨ）と通信Ｉ／Ｆ（インターフェース）及び外部装置Ｉ／Ｆ（インターフェース）を有する。同図では図示されていないが、前記端末機器は、前記物理メモリに対応した記憶回路も当然搭載されている。前記通信Ｉ／Ｆは、ネットワークに接続されて前記のようなゲーム等の各種プログラムを取得することができる。前記外部装置Ｉ／Ｆは、ハードディスクのような外部ディスクやＵＳＢメモリ等と接続される。前記ＣＰＵ（ＳＨ）内に存するＭＭＵをこの発明に係るＯＳは用いて論理メモリ空間を入れ子状に配置することによってインターネットのようなネットワークへの接続機能を保持しつつ、必要な保護レベルの設定によって高い信頼性も実現することができる。
【００３２】
図７には、この発明に係る保護レベルの具体的な説明図が示されている。保護レベルの低い方から順にアプレット層、アプリケーション層、デバイス層、システム層と呼ぶこととし、アプレット層に属するタスクとしてはゲーム、地図等のインターネットを介して取得するような信頼性が保障されていないものが挙げられる。同様にアプリケーション層に属するタスクはブラウザが、デバイス層に属するタスクはＵＳＢメモリ制御、ＨＤＤ制御等が、システム層に属するタスクは組み込みシステム向けリアルタイムＯＳ（Ｔ−ｋｅｒｎｅｌ）が挙げられる。
【００３３】
図８には、前図７で示した各層において保護レベル間の非可逆的なアクセス制限を図示されている。最も保護レベルの高いシステム層は自身より保護レベルの低いデバイス層、アプリケーション層、アプレット層へのアクセスが可能である。次に保護レベルの高いデバイス層は自身より保護レベルの低いアプリケーション層、アプレット層へのアクセスが可能であるが、自身より保護レベルの高いシステム層へのアクセスは不可である。最も保護レベルの低いアプレット層は自身より保護レベルの低い層がないためアクセスは自身の層に属するタスクに限られる。したがって、信頼性の疑わしいゲーム等のプログラムを取得してもシステム動作に重大な影響を及ぼすような事態には至らないので、信頼性の高い端末機器の実現が可能となる。
【００３４】
図９には、この発明に係る前記多階層の保護レベルを実現するＯＳの制御を説明するためのフローチャート図が示されている。
【００３５】
ステップ（１）は、初期化動作である。この初期化において、複数の各保護レベルに対
応したアドレス変換テーブルの作成が行われる。たとえば、前記図５のようなアドレス変換テーブルが作成される。
【００３６】
ステップ（２）は、イベントを待つ状態である。発生するイベントに対応して、ステップ（３）のタスク生成、ステップ（４）のタスク切り替え、またはステップ（７）のメモリアクセス例外へ移行する。
【００３７】
ステップ（３）のタスク生成では、タスクの生成時にタスクの固有のデータに指定されたそのタスクの保護レベルが設定される。保護レベル設定後はステップ（２）のイベントを待つ状態へ戻る。
【００３８】
ステップ（４）のタスク切り替えでは、タスクの切り替え時にＭＭＵのアドレス変換テーブルのベースアドレスを切り替わったタスクの保護レベルのアドレス変換テーブルの旧タスクについてはＭＭＵ内に記憶されたアドレス変換テーブルのベースアドレスに書き換える。次にステップ（５）において切り替え後のタスクの保護レベルが（Ａ）が切り替え前のタスクの保護レベル（Ｂ）よりも低い場合（Ａ＜Ｂ）は、ステップ（６）に移行して、ＭＭＵのアドレス変換テーブルのキャッシュをパージ（旧データの破棄）し、ステップ（２）のイベントを待つ状態へ戻る。切り替え後のタスクの保護レベル（Ａ）が切り替え後のタスクの保護レベル（Ｂ）よりも高い場合（Ａ＞Ｂ）は、アドレス変換テーブルのキャッシュは維持してステップ（２）のイベントを待つ状態へ戻る。
【００３９】
ステップ（７）のメモリアクセス例外では、例外の発生したアドレスが、実行中のタスク（例外を起こしたタスク）の保護レベルのメモリ領域内か否かを判断する。例外発生アドレス（Ｃ）が実行中タスクの保護レベルのメモリ領域（Ｄ）内であった場合（Ｃ⊆Ｄ）は、ステップ（８）へ移行して、アドレス変換テーブルから例外が発生したアドレスのデータをキャッシュにロードし、ステップ（２）の  イベントを待つ状態へ戻る。例外発生アドレス（Ｃ）が実行中タスクの保護レベルのメモリ領域（Ｄ）外であった場合（Ｃ⊇Ｄ）は、ステップ（９）に移行して、メモリアクセス違反として、その処理（ユーザ定義）を実行し、ステップ（２）のイベントを待つ状態へ戻る。
【００４０】
ＭＭＵに設けられたキャッシュは、記憶容量が小さいのでＴＢＬの一部しか格納できない。このため、前記ステップ（７）のようなメモリアクセス例外処理が必要となる。ステップ（９）のメモリアクセス違反処理においては、当然に例外の発生したアドレスに対するアクセスが行われない。そして、例えば、基本ソフトウェアとミドルウェアをシステムプラットホーム等のデバッグ時において、ＣＰＵに対して割り込み等により違反状態を保持させるようにも用いることができる。
【００４１】
以上説明した本願発明に係るＯＳ及びメモリ保護方法においては、前記のように論理メモリ空間が入れ子構造に配置される。この入れ子構造の論理メモリ空間は、外側の論理メモリ空間のタスクは内側の論理メモリ空間にアクセスすることが可能となる。論理メモリ空間は仮想的に実現する保護レベルに一対一対応し、外側の空間ほど保護レベルが高くなる。タスクは自身の保護レベルに応じて、対応する論理メモリ空間に属する。論理メモリ空間の切り替えは、ＯＳ(T-Kernel)によりタスク切り替え時に行われるので、ユーザが意識することはない。結果として、タスクは自身の保護レベル以下のメモリ空間にのみアクセスが可能となり、任意数の保護レベルの実現が可能となる。保護レベルを多重論理空間の入れ子構造により仮想的に実現することにより、ハードウェアの仕様に依存せず任意の数の保護レベルを実現できる。前記非特許文献１に記載されるようなマイコンに対して前記リアルタイムＯＳであるT-Kernelの４階層の保護レベルを実現することができる。また、ハードウェアへの依存性がなくなるため、保護レベルを利用したソフトウェアの移植性や流通性が向上される。
【００４２】
上記のようにハードウェアによって２階層の保護レベルを有するＣＰＵに、本願発明に係るＭＭＵをＯＳにより制御して４階層の保護レベルを実現する場合、両者に矛盾がないようにする必要がある。最も簡単な構成は、ＣＰＵの有するハードウェアによる保護レベルを無効にすればよい。ＣＰＵの有するハードウェアによる保護レベルを生かしつつ、本願発明に係るＭＭＵをＯＳによりそれと異なる階層の保護レベルを実現する場合には、上記ＣＰＵの有するハードウェアによる保護レベルの境界と、上記本願発明に係るＭＭＵをＯＳにより設定される保護レベルの１つの境界とが一致していてればよい。
【００４３】
非特許文献１に記載されているようなＣＰＵに適用する場合、特権モードに図７に示した前記デバイス層、システム層を割り当て、ユーザーモードに前記図７に示したアプリケーション層及びアプレット層を割り当てる。あるいは、特権モードに図７に示した前記デバイス層、システム層及アプリケーション層を割り当て、ユーザーモードに前記図７に示したアプレット層を割り当てる。特権モードの中でも前記３階層に保護レベルが設定されているので、前記システム開発時のデバッグが容易になる。
【００４４】
この発明は、ＯＳレスのシステム、または保護レベルに対応する機能を持たないＯＳでも、本提案の論理メモリ管理機能を独立に実装することにより、ハードウェアに依存しない多重の保護レベルを実現できる。つまり、本願発明に係るメモリ保護方法は、ＭＭＵをＯＳ以外のソフトウェアでも実現できるものである。
【００４５】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。前記実施例では保護レベルを４段階に設定して説明しているが、本発明における保護レベルの設定についてはこの４段階に限定されるものではない。たとえば、２レベルでもよい。前記非特許文献１のＣＰＵの固定的な２レベルに比べて保護領域を自由に設定できる点で柔軟性を有している。また、５以上の多段階の保護レベルも任意に可能である。この発明に用いられるＣＰＵとＭＭＵの具体的構成は、前記非特許文献１に記載されているようなもののほか、同様な機能を持つものであればよい。また、異なる保護レベルに対応する複数の論理メモリ空間の最下位を前記実施例のように必ずしも同一にする必要はない。
【産業上の利用可能性】
【００４６】
この発明は、ＭＭＵを有するＣＰＵに搭載されるオペレーティングシステムとＭＭＵを用いたメモリ保護方法として広く利用できる。
【符号の説明】
【００４７】
１０１〜１０４，０１０１〜０１０４，１１０１〜１１０４…物理メモリ上の領域、１１１〜１１４，１２１〜１２４…論理メモリ空間、Ａ，Ｂ，Ｃ，Ｄ…物理メモリ上の領域，論理メモリ空間。
【図１】
2010267077.tif 000003
【図２】
2010267077.tif 000004
【図３】
2010267077.tif 000005
【図４】
2010267077.tif 000006
【図５】
2010267077.tif 000007
【図６】
2010267077.tif 000008
【図７】
2010267077.tif 000009
【図８】
2010267077.tif 000010
【図９】
2010267077.tif 000011