(57)【要約】コードが格納されるメモリ（２）を管理して、コードをプロセッサ（１）によって実行させるために、当該実行対象となるコードが記憶されているメモリ（２）が有効である旨を設定するメモリ管理ユニット（１０）は、コードの正当性を検証するために用いられる検証鍵を検証鍵保持部（１５）に格納する。そして、コードがメモリ（２）に格納されてプロセッサ（１）による実行が可能になった場合に、検証鍵保持部（１５）に格納された検証鍵およびコードに付与された検証情報を用いて、コードの正当性を検証し、正当性が検証された場合には、メモリ（２）が有効である旨を設定し、正当性が検証されなかった場合には、メモリ（２）が有効である旨を設定しないように制御する。
2003104948.tif 000002
【特許請求の範囲】
【請求項１】
コードが格納されるメモリを管理して、前記コードをプロセッサによって実行させるために、当該実行対象となるコードが記憶されているメモリが有効である旨を設定するメモリ管理ユニットであって、
前記コードの正当性を検証するために用いられる検証鍵を格納する検証鍵格納手段と、
前記コードが前記メモリに格納されて前記プロセッサによる実行が可能になった場合に、前記検証鍵格納手段によって格納された検証鍵および前記コードに付与された検証情報を用いて、前記コードの正当性を検証する検証手段と、
前記検証手段によって正当性が検証された場合には、前記メモリが有効である旨を設定し、前記検証手段によって正当性が検証されなかった場合には、前記メモリが有効である旨を設定しないように制御する制御手段と、
を備えたことを特徴とするメモリ管理ユニット。
【請求項２】
コードが格納されるメモリを管理して、前記コードをプロセッサによって実行させるために、当該実行対象となるコードが記憶されているメモリが有効である旨を設定するメモリ管理ユニットであって、
暗号化されたコードを復号するために用いられる復号鍵を格納する復号鍵格納手段と、
前記暗号化されたコードが前記メモリに格納された場合に、当該メモリから前記暗号化されたコードを読み出し、前記復号鍵格納手段によって格納された復号鍵を用いて復号して、前記メモリに再格納する復号手段と、
前記復号手段によって復号されたコードが再格納された前記メモリが有効である旨を設定する制御手段と、
を備えたことを特徴とするメモリ管理ユニット。
【請求項３】
前記メモリ管理ユニットは、前記プロセッサによるコードの実行に際して、当該プロセッサから入力された仮想アドレスを、前記メモリ上のアドレスである物理アドレスに変換して、当該変換した物理アドレスを前記メモリに対して出力するものであることを特徴とする請求の範囲第１項または第２項に記載のメモリ管理ユニット。
【請求項４】
前記メモリ管理ユニットは、前記プロセッサによるコードの実行に際して、当該プロセッサから入力された仮想アドレスを、前記メモリ上のアドレスである物理アドレスとして、前記メモリに対して出力するものであることを特徴とする請求の範囲第１項または第２項に記載のメモリ管理ユニット。
【請求項５】
前記コードは、機械語によって記述され、前記プロセッサとしてのＣＰＵによって解釈されて実行されるプログラムであることを特徴とする請求の範囲第１項または第２項に記載のメモリ管理ユニット。
【請求項６】
メモリに格納されてプロセッサによって実行されるコードの正当性を、当該コードに付与された検証情報に基づいて検証するコード検証装置であって、
前記コードの正当性を検証するために前記検証情報に対応して用いられる検証鍵を格納する検証鍵格納手段と、
前記コードが前記メモリに格納されて前記プロセッサによる実行が可能になった場合に、前記検証鍵格納手段によって格納された検証鍵および前記コードに付与された検証情報を用いて、前記コードの正当性を検証する検証手段と、
前記検証手段によって正当性が検証された場合には、前記プロセッサによる前記コードの実行を許可し、前記検証手段によって正当性が検証されなかった場合には、前記プロセッサによる前記コードの実行を拒絶する制御手段と、
を備えたことを特徴とするコード検証装置。
【請求項７】
メモリに格納されている暗号化されたコードを、プロセッサによって実行させるために復号するコード復号装置であって、
前記暗号化されたコードを復号するために用いられる復号鍵を格納する復号鍵格納手段と、
前記暗号化されたコードが前記メモリに格納された場合に、当該メモリから前記暗号化されたコードを読み出し、前記復号鍵格納手段によって格納された復号鍵を用いて復号して、前記メモリに再格納する復号手段と、
前記復号手段によって復号されて前記メモリに再格納されたコードを実行するように前記プロセッサを制御する制御手段と、
を備えたことを特徴とするコード復号装置。
【発明の詳細な説明】
技術分野
この発明は、パーソナルコンピュータや移動体通信端末などの情報処理装置に組み込まれるメモリ管理ユニット、コード検証装置およびコード復号装置に関し、特に、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるメモリ管理ユニット、コード検証装置およびコード復号装置に関するものである。
背景技術
従来より、パーソナルコンピュータや移動体通信端末などの情報処理装置においては、正当性が保証された安全なコード（機械語によって記述され、ＣＰＵによって解釈されて実行されるプログラム）が装置上で実行されることが求められている。つまり、ハードディスクなどへのインストール前あるいはインストール後に悪意の第三者によって改ざんされ、安全性に問題があるコードが、メモリに格納されて装置上で実行されることがないようにする必要がある。
そして、かかる必要性に対する従来技術として、▲１▼情報処理装置に検証用ソフトウェアを追加し、コードにあらかじめ付与されている検証情報を用いて、コードの実行前にコードの正当性を検証する手法や、▲２▼情報処理装置に復号用ソフトウェアを追加し、あらかじめ暗号化されたコードを実行前に復号することによって、コードの正当性を担保する手法が、従来から一般的におこなわれている。
しかしながら、上記の従来技術は、ソフトウェアによってコードの正当性を検証または担保するものであるため、検証用ソフトウェアや復号用ソフトウェア自体が改ざんされる危険性が多分にあり、必ずしも、正当性が保証された安全なコードを情報処理装置上で実行することができないという問題点があった。
すなわち、検証用ソフトウェア自体が改ざんされた場合には、検証の成否に関係なくコードが実行されてしまうおそれがあり、また、復号用ソフトウェア自体が改ざんされた場合には、復号したコードを実行前に改ざんされてしまうおそれある結果、上記の従来技術では、必ずしも、正当性が保証された安全なコードを情報処理装置上で実行することができなかった。
このソフトウェアによる問題点を解決するために、▲１▼情報処理装置内のメモリに付加した特別な検証用ハードウェアによって、プロセッサのメモリ割り当て単位であるページごとに、ページ上に配置されたコードを検証する手法や、▲２▼情報処理装置内のプロセッサに付加した特別な復号用ハードウェアによって、フェッチしたコードを復号する手法も考えられが、このようなハードウェアを簡単には開発することができないという問題点がある。
つまり、メモリに特別な検証用ハードウェアを付加することや、プロセッサに特別な復号用ハードウェアを付加することは、言い換えれば、メモリのチェック部分やプロセッサの入口部分に新たなインテリジェンスを追加することであるので、プロセッサやメモリのアーキテクチャを大幅に変更する必要が生じ、簡単には開発することができなかった。
このように、パーソナルコンピュータや移動体通信端末などの情報処理装置では、いかにして正当性が保証された安全なコードを装置上で実行するかが極めて重要な課題になっており、望ましくは、プロセッサやメモリのアーキテクチャを変更することなく、これを簡単かつ確実に解決することができるハードウェアが必要とされている。
そこで、この発明は、上述した従来技術による問題点を解決するためになされたものであり、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるメモリ管理ユニット、コード検証装置およびコード復号装置を提供することを目的としている。
発明の開示
本発明は、コードが格納されるメモリを管理して、コードをプロセッサによって実行させるために、当該実行対象となるコードが記憶されているメモリが有効である旨を設定するメモリ管理ユニットであって、コードの正当性を検証するために用いられる検証鍵を検証鍵格納手段に格納する。そして、コードがメモリに格納されてプロセッサによる実行が可能になった場合に、検証鍵格納手段によって格納された検証鍵およびコードに付与された検証情報を用いて、コードの正当性を検証し、正当性が検証された場合には、メモリが有効である旨を設定し、正当性が検証されなかった場合には、メモリが有効である旨を設定しないように制御する。
このため、本発明によれば、インストール前あるいはインストール後に悪意の第三者によって改ざんされたために、安全性に問題があるコードについては、コードの実行直前である水際（つまり、仮想ページから物理ページへのアドレス変換を有効とするタイミング）において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニットによって、コードが正当でない旨が確実に検証されるので、プロセッサによる実行を回避することができる。また、このような検証機能を有するメモリ管理ユニットは、プロセッサやメモリのアーキテクチャを変更する必要がないので、検証機能を有するプロセッサやメモリを開発することに比較して、簡単に開発することができる。したがって、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
また、本発明は、コードが格納されるメモリを管理して、コードをプロセッサによって実行させるために、当該実行対象となるコードが記憶されているメモリが有効である旨を設定するメモリ管理ユニットであって、暗号化されたコードを復号するために用いられる復号鍵を復号鍵格納手段に格納する。そして、暗号化されたコードがメモリに格納された場合に、当該メモリから暗号化されたコードを読み出し、復号鍵格納手段によって格納された復号鍵を用いて復号して、メモリに再格納し、さらに、復号されたコードが再格納されたメモリが有効である旨を設定する。
このため、本発明によれば、コードの実行直前である水際において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニットによって、暗号化されたコードが復号されるので、復号されたコードについては、正当性が担保されたコード（インストール前あるいはインストール後における悪意の第三者による改ざんがなかったコード）として実行することができる。また、このような復号機能を有するメモリ管理ユニットは、プロセッサやメモリのアーキテクチャを変更する必要がないので、復号機能を有するプロセッサやメモリを開発することに比較して、簡単に開発することができる。したがって、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
また、本発明のメモリ管理ユニットは、プロセッサによるコードの実行に際して、当該プロセッサから入力された仮想アドレスを、メモリ上のアドレスである物理アドレスに変換して、当該変換した物理アドレスをメモリに対して出力するものである。
このため、本発明によれば、パーソナルコンピュータ、ワークステーションまたは移動体通信端末など、仮想アドレスから物理アドレスへのアドレス変換をおこなう情報処理装置に適用して、かかる情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
また、本発明のメモリ管理ユニットは、プロセッサによるコードの実行に際して、当該プロセッサから入力された仮想アドレスを、メモリ上のアドレスである物理アドレスとして、メモリに対して出力するものである。
このため、本発明によれば、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置に適用して、かかる情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
また、本発明において、コードは、機械語によって記述され、プロセッサとしてのＣＰＵによって解釈されて実行されるプログラムである。
このため、本発明によれば、情報処理装置上で基本ソフトとして実行される極めて重要なコードについて、プロセッサやメモリのアーキテクチャを変更することなく、正当性を簡単かつ確実に保証することが可能になる。
また、本発明は、メモリに格納されてプロセッサによって実行されるコードの正当性を、当該コードに付与された検証情報に基づいて検証するコード検証装置であって、コードの正当性を検証するために検証情報に対応して用いられる検証鍵を検証鍵格納手段に格納する。そして、コードがメモリに格納されてプロセッサによる実行が可能になった場合に、検証鍵格納手段によって格納された検証鍵およびコードに付与された検証情報を用いて、コードの正当性を検証し、正当性が検証された場合には、プロセッサによるコードの実行を許可し、正当性が検証されなかった場合には、プロセッサによるコードの実行を拒絶する。
このため、本発明によれば、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
また、本発明は、メモリに格納されている暗号化されたコードを、プロセッサによって実行させるために復号するコード復号装置であって、暗号化されたコードを復号するために用いられる復号鍵を復号鍵格納手段に格納する。そして、暗号化されたコードがメモリに格納された場合に、当該メモリから暗号化されたモードを読み出し、復号鍵格納手段によって格納された復号鍵を用いて復号して、メモリに再格納し、さらに、復号されてメモリに再格納されたコードを実行するようにプロセッサを制御する。
このため、本発明によれば、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
発明を実施するための最良の形態
以下、添付図面を参照して、本発明に係るメモリ管理ユニット、コード検証装置およびコード復号装置の好適な実施の形態を詳細に説明する。なお、以下では、実施の形態１〜４として、本発明に係るメモリ管理ユニットについて、種々の実施の形態を説明した後に、他の実施の形態として、本発明に係るコード検証装置およびコード復号装置並びに種々の変形例を説明し、最後に、本発明の効果を説明する。
（実施の形態１）
本実施の形態１では、パーソナルコンピュータ、ワークステーションまたは移動体通信端末などの情報処理端末に通常搭載されるメモリ管理ユニット（ＭＭＵ：Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）に、プロセッサによって実行されるコードの正当性を検証するための検証機能を追加した場合を説明する。なお、ここでは、本実施の形態１に係るメモリ管理ユニットが適用されるシステムの概要および主たる特徴とを説明した後に、メモリ管理ユニットの構成を説明し、最後に、このシステムによる処理の手順を説明することとする。
［実施の形態１：システムの概要および主たる特徴］
まず最初に、本実施の形態１に係るメモリ管理ユニットが適用されるシステムの概要および主たる特徴を説明する。第１図は、本実施の形態１に係るメモリ管理ユニットが適用されるシステムの構成を示すブロック図である。同図に示すように、このシステムは、パーソナルコンピュータ、ワークステーションまたは移動体通信端末などの情報処理端末の一部分であって、プロセッサ１と、メモリ２および検証情報用メモリ３との間に、メモリ管理ユニット１０を設け、これらをアドレスバス４およびデータバス５によって接続して構成される。
このうち、プロセッサ１は、メモリ２に格納されたコード（機械語によって記述され、ＣＰＵによって解釈されて実行されるプログラム）を実行し、この実行に際して、メモリ２に格納されたデータを読み書きする処理部（例えば、ＣＰＵなど）である。また、メモリ２は、プロセッサ１が使用するコードやデータを格納する記憶部である。また、メモリ管理ユニット１０は、メモリ２を管理して、主に、コードをプロセッサ１によって実行させるために、当該実行対象となるコードが記憶されているメモリ２が有効である旨を設定する処理部である。なお、検証情報用メモリ３は、後述する検証情報を格納する記憶部である。
ここで、このシステムによる概略的な処理の流れを簡単に説明すると、まず最初に、プロセッサ１は、メモリ管理ユニット１０を介して、メモリ割り当て単位である所定のページ（例えば、４Ｋｂｙｔｅｓ）ごとに、コードをメモリ２に格納する。続いて、メモリ管理ユニット１０によって、当該コードが格納されたメモリが有効である旨が設定されると、プロセッサ１は、当該コードに対応する仮想アドレスをメモリ管理ユニット１０に出力する。そして、メモリ管理ユニット１０は、プロセッサ１から入力された仮想アドレスを、メモリ２上のアドレスである物理アドレスに変換してメモリ２に対して出力し、これによって、メモリ２上の対応するコードがプロセッサ１によって実行されることとなる。
このように、図１に示したシステムは、概略的に、メモリ２に格納されたコードをプロセッサ１によって実行するものであるが、このコードには、コードの正当性を検証するために用いられる検証情報（例えば、電子署名や電子証明書など）が付与されている。つまり、このシステムは、メモリ管理ユニット１０が、コードに付与された検証情報を用いてコードの正当性を検証することによって、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるようにしている点に、主たる特徴がある。
この主たる特徴を簡単に説明すると、メモリ管理ユニット１０は、コードの正当性を検証するために用いられる検証鍵をあらかじめ記憶している。そして、プロセッサ１は、メモリ２にコードを格納する際に、当該コードに付与された検証情報を検証情報用メモリ３に格納する。このようにして、メモリ２に格納されたコードについてプロセッサ１による実行が可能になった場合に、メモリ管理ユニット１０は、あらかじめ記憶した検証鍵および検証情報用メモリ２に格納された検証情報を用いて、コードの正当性を検証する。そして、正当性が検証された場合には、メモリ２が有効である旨を設定し、正当性が検証されなかった場合には、メモリ２が有効である旨を設定しないように制御する。
このため、インストール前あるいはインストール後に悪意の第三者によって改ざんされたために、安全性に問題があるコードについては、コードの実行直前である水際（つまり、仮想ページから物理ページへのアドレス変換を有効とするタイミング）において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニット１０によって、コードが正当でない旨が確実に検証されるので、プロセッサ１による実行を回避することができる。また、このような検証機能を有するメモリ管理ユニット１０は、プロセッサ１やメモリ２のアーキテクチャを変更する必要がないので、検証機能を有するプロセッサ１やメモリ２を開発することに比較して、簡単に開発することができる。
このようなことから、本実施の形態１に係るメモリ管理ユニット１０によれば、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるという上記した主たる特徴が発揮されることとなる。
ここで、メモリ管理ユニット１０の構成の説明に入る前に、本実施の形態１におけるアドレス空間を簡単に説明する。第３図は、本実施の形態１におけるアドレス空間を説明するための図である。本実施の形態１に係るメモリ管理ユニット１０は、プロセッサ１によるコードの実行に際して、プロセッサ１から入力された仮想アドレスを、メモリ２上のアドレスである物理アドレスに変換して、当該変換した物理アドレスをメモリ２に対して出力するものである。つまり、本実施の形態１に係るメモリ管理ユニット１０が適用される情報処理装置は、パーソナルコンピュータ、ワークステーションまたは移動体通信端末など、仮想アドレスから物理アドレスへのアドレス変換をおこなうシステムである。
そして、本実施の形態１におけるアドレス空間は、例えば、第３図に示すように、仮想アドレス空間の上位半分が、アドレス変換された上で、メモリ２に割り当てられ（例えば、４Ｋｂｙｔｅｓごとに割り当てられ）、仮想アドレス空間の下位半分が、アドレス変換されずに、検証情報用メモリ３に割り当てられることによって形成される。ただし、同図では、説明の便宜のために、仮想アドレス空間を上位と下位の半分に分けており、また、通常はアドレス変換されずにメモリ２上に置かれるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を省略している。
なお、図１に示したシステムにおいては、メモリ２と検証情報用メモリ３とを別々に設けているが、特定のＩ／Ｏポートに値を出力することによって、メモリ２の一部が検証情報用メモリ３に置き換わるように（つまり、バンク切替形式として）、システムを構成するようにしてもよく、また、検証情報用メモリ３を、メモリ空間ではなくＩ／Ｏ空間に割り当てるように、構成してもよい。
また、本実施の形態１では、メモリ２の割り当て単位である単位メモリを、４Ｋｂｙｔｅｓ固定長のページとして説明しているが、この単位メモリを可変長にしてもよく、さらに、メモリ２全体を一つの単位メモリとしてもよい。
［実施の形態１：メモリ管理ユニットの構成］
次に、第１図に示したメモリ管理ユニット１０の構成を説明する。第２図は、本実施の形態１に係るメモリ管理ユニット１０の構成を示すブロック図である。同図に示すように、このメモリ管理ユニット１０は、ページテーブル１１と、アドレス変換部１２と、実行／有効ビット設定部１３と、検証鍵設定部１４と、検証鍵保持部１５と、検証部１６とからなる。なお、検証鍵保持部１５は、請求の範囲に記載の「検証鍵格納手段」に対応し、検証部１６は、請求の範囲に記載の「検証手段」に対応し、実行／有効ビット設定部１３は、請求の範囲に記載の「制御手段」に対応する。
このうち、ページテーブル１１は、プロセッサ１によるコードの格納に際して、プロセッサ１に獲得される複数のエントリからなるテーブルである。そして、このエントリは、メモリ割り当ての単位である４Ｋｂｙｔｅｓのページごとに用意され、第２図に示すように、始点仮想アドレス、始点物理アドレス、実行ビットおよび有効ビットからなる。
つまり、エントリとは、「始点物理アドレス」から始まる４Ｋｂｙｔｅｓの物理ページが、「始点仮想アドレス」から始まる４Ｋｂｙｔｅｓの仮想ページに対応付けられていることを示すものである。そして、「実行ビット」は、対応する物理／仮想ページに、データではなくコードが格納されいることを示し、また、「有効ビット」は、対応する物理／仮想ページが有効であることを示すものである。なお、ページは、固定長ではなく可変長であってもよいが、その場合には、エントリにサイズを表す情報を格納することとなる。
アドレス変換部１２は、ページテーブル１１にしたがって、仮想アドレスを物理アドレスに変換する処理部である。具体的には、プロセッサ１によるコードの実行に際して、プロセッサ１から入力された仮想アドレスに該当するエントリをページテーブル１１から検索し、該当するエントリが存在する場合には、対応する物理アドレスに変換してメモリ２に対して出力し、一方、該当するエントリが存在しない場合には、プロセッサ１に対してアドレス変換例外を通知する。
なお、ページテーブル１１の該当するエントリにおいて、実行ビットおよび有効ビットが設定されている場合には、対応する物理／仮想ページへのコード（機械語命令）フェッチのための読みだしのみを許可し、書き込みや、データアクセスのための読み書きは許可しないように動作する。
実行／有効ビット設定部１３は、後述する検証部１６による検証の結果に応じて、ページテーブル１１の対応するエントリ内の実行ビットおよび有効ビットを設定する処理部である。具体的には、検証部１６によってコードの正当性が検証された場合には、実行ビットおよび有効ビットが設定され（検証対象のコードが格納された物理／仮想ページが有効である旨が設定され）、プロセッサ１によるコードの実行が許可される。なお、検証部１６によってコードの正当性が検証されなかった場合には、実行ビットおよび有効ビットは設定されず、プロセッサ１によるコードの実行は拒絶されることとなる。
検証鍵設定部１４は、検証鍵保持部１５に対して、メモリ管理ユニット１０の外部から検証鍵の出し入れをおこなう処理部であり、検証鍵保持部１５は、検証部１６によるコードの検証に用いられる検証鍵を保持する記憶部であり、検証部１７は、コードがメモリ２に格納されてプロセッサ１による実行が可能になった場合に、検証鍵保持部１５に記憶された検証鍵および検証情報用メモリ３に格納された検証情報を用いて、コードの正当性を検証する処理部である。
つまり、検証部１６は、ページテーブル１１の所定のエントリについて、プロセッサ１から実行／有効ビットの設定指示を受けると、メモリ２の対応する物理ページ上のコードに付与されている検証情報を検証情報用メモリ３から読み出すとともに、このコードに対応する検証鍵を検証鍵保持部１５から読み出し、この検証情報および検証鍵を用いて、正当性が保証された安全なコードである否かを検証する。なお、検証方式や検証鍵については、例えば、公開鍵技術に基づく電子署名や証明書に含まれる公開鍵など、コードが第三者によって改ざんされていないことを保証し得る、あらゆる手法を採用することができる。
そして、検証部１６は、コードが正当である旨を検証した場合には、実行／有効ビット設定部１３に対して、実行／有効ビットの設定を指示し、一方、コードが正当である旨が検証されなかった場合には、実行／有効ビット設定部１３に対して実行／有効ビットの設定を指示することなく、プロセッサ１に対して例外を通知する。このようにして、プロセッサ１に例外が通知された場合には、プロセッサ１によるコードの実行は拒絶されることとなる。
なお、近年のシステムは、複数のタスク（プログラム）を見かけ上は並行して、すなわちマルチタスクで動作させる場合が多いが、このような場合には、タスクの切替時に、検証鍵設定部１４の制御によって、検証鍵保持部１５に格納されている検証鍵を、タスクに応じた検証鍵に入れ替えることとなる。
［実施の形態１：システムによる処理の手順］
次に、本実施の形態１におけるシステムによって実行される処理の手順を説明する。なお、ここでは、システムの処理として、プロセッサ１によってコードがメモリ２に格納されて、メモリ管理ユニット１０によって実行／有効ビットが設定されるに至るまでの処理を説明する。
第４図は、本実施の形態１におけるシステムの処理を説明するためのフローチャートである。同図に示すように、まず最初に、プロセッサ１は、メモリ管理ユニット１０のページテーブル１１から未使用のエントリを獲得するとともに、メモリ２からは、未使用の物理ページを獲得する（ステップＳ４０１およびＳ４０２）。そして、プロセッサ１は、獲得したエントリに、始点仮想アドレスおよび始点物理アドレスを設定する（ステップＳ４０３）。
続いて、プロセッサ１は、ハードディスクなどのデータ記憶部（ディスク）からコードを読み込んで、このコードをステップＳ４０２において獲得した物理ページに格納するとともに、このコードに付与されている検証情報を検証情報用メモリ３に格納する（ステップＳ４０４およびＳ４０５）。そして、プロセッサ１は、メモリ管理ユニット１０に対して、実行／有効ビットの設定を指示する（ステップＳ４０６）。
一方、かかる設定指示を受けたメモリ管理ユニット１０は、設定指示に係るコードに対応する検証情報を、検証情報用メモリ３から読み込むとともに、この検証情報に対応する検証鍵を、検証鍵保持部１５から読み込む（ステップＳ４０７およびＳ４０８）。そして、メモリ管理ユニット１０の検証部１６は、読み込んだ検証情報および検証鍵を用いて、設定指示に係るコードの正当性を検証する（ステップＳ４０９）。
この検証によって、コードが正当である旨が検証された場合には（ステップＳ４１０肯定）、検証部１６は、実行／有効ビット設定部１３に対して、実行／有効ビットの設定を指示し、実行／有効ビット設定部１３は、検証対象のコードに関するページテーブル１１内のエントリにおいて、実行ビットおよび有効ビットを設定する（ステップＳ４１１）。これによって、検証対象であるコードについて、プロセッサ１による実行が許可されることとなる。
これとは反対に、コードが正当である旨が検証されなかった場合には（ステップＳ４１０否定）、検証部１６は、実行／有効ビット設定部１３に対して実行／有効ビットの設定を指示することなく、プロセッサ１に対して例外を通知する（ステップＳ４１２）。これによって、検証対象であるコードについて、プロセッサ１による実行が拒絶されることとなる。
上述してきたように、本実施の形態１によれば、メモリ管理ユニット１０は、コードの正当性を検証するために用いられる検証鍵を検証鍵保持部１５に格納する。そして、コードがメモリ２に格納されてプロセッサ１による実行が可能になった場合に、検証鍵保持部１５に格納された検証鍵およびコードに付与された検証情報（検証情報用メモリ３に格納された検証情報）を用いて、コードの正当性を検証し、正当性が検証された場合には、メモリ２が有効である旨を設定し、正当性が検証されなかった場合には、メモリ２が有効である旨を設定しないように制御する。したがって、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
（実施の形態２）
ところで、上記した実施の形態１では、プロセッサ１から入力された仮想アドレスを物理アドレスに変換してメモリ２に対して出力するメモリ管理ユニット１０を説明したが、本発明はこれに限定されるものではなく、プロセッサ１から入力された仮想アドレスを変換することなく、物理アドレスとしてメモリ２に対して出力するメモリ管理ユニットについても、同様に適用することができる。
つまり、上記実施の形態１では、パーソナルコンピュータ、ワークステーションまたは移動体通信端末など、仮想アドレスから物理アドレスへのアドレス変換をおこなう情報処理装置に適用されるメモリ管理ユニット１０を説明したが、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置についても、同様に適用することができる。
そこで、本実施の形態２では、仮想アドレスから物理アドレスへのアドレス変換をおこなわないシステムについて適用されるメモリ管理ユニットを説明する。第５図は、本実施の形態２に係るメモリ管理ユニットの構成を示すブロック図であり、第６図は、本実施の形態２におけるアドレス空間を説明するための図である。なお、上記実施の形態１に示した各部と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
本実施の形態２に係るメモリ管理ユニット２０は、上記したように、プロセッサ１から入力された仮想アドレスを変換することなく、物理アドレスとしてメモリ２に対して出力するものである。すなわち、第６図に示すように、本実施の形態２におけるアドレス空間は、第２図に示した実施の形態２におけるアドレス空間と相違し、仮想アドレスと物理アドレスとが一致している。
また、メモリ管理ユニット２０は、第５図に示すように、仮想アドレスを物理アドレスに変換する処理部（第２図に示したアドレス変換部１２）が存在せず、ページテーブル２１の各エントリにおいても、始点仮想アドレスが存在せず、始点物理アドレスのみが存在する。なお、ページテーブル２１内のエントリは、物理ページの個数分だけ存在することとなる。
したがって、このメモリ管理ユニット２０は、プロセッサ１によるコードの実行に際して、プロセッサ１から入力された仮想アドレスを、メモリ２上のアドレスである物理アドレスとして、メモリ２に対して出力することとなる。なお、このメモリ管理ユニット２０による検証処理は、第４図に示したメモリ管理ユニット１０による処理（同図ステップＳ４０７〜Ｓ４１２）と同様である。
このように、本実施の形態２に係るメモリ管理ユニット２０によれば、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置についても、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
（実施の形態３）
ところで、上記した実施の形態１および２では、コードの実行前にコードの正当性を検証するメモリ管理ユニット１０または２０によって、コードの正当性を簡単かつ確実に保証する場合を説明したが、あらかじめ暗号化されたコードを実行前に復号することによっても、実施の形態１および２と同様に、コードの正当性を簡単かつ確実に保証することができる。
そこで、本実施の形態３では、あらかじめ暗号化されたコードを実行前に復号することによって、コードの正当性を簡単かつ確実に保証するメモリ管理ユニットを説明する。なお、ここでは、本実施の形態３に係るメモリ管理ユニットが適用されるシステムの概要および主たる特徴とを説明した後に、メモリ管理ユニットの構成を説明し、最後に、このシステムによる処理の手順を説明することとする。
［実施の形態３：システムの概要および主たる特徴］
まず最初に、本実施の形態３に係るメモリ管理ユニットが適用されるシステムの概要および主たる特徴とを説明する。第７図は、本実施の形態３に係るメモリ管理ユニットが適用されるシステムの構成を示すブロック図である。同図に示すように、このシステムは、プロセッサ１と、メモリ２との間に、メモリ管理ユニット３０を設け、これらをアドレスバス４およびデータバス５によって接続して構成される。なお、上記実施の形態１に示した各部と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
この第７図に示したシステムは、概略的には、第１図に示したシステムと同様、メモリ２に格納されたコードをプロセッサ１によって実行するものであるが、第１図に示したシステムに比較して、検証情報用メモリ３が存在しない点と、同図に示したメモリ管理ユニット１０とは機能が異なるメモリ管理ユニット３０を備える点とが相違する。つまり、本実施の形態３では、コードがあらかじめ暗号化されており、メモリ管理ユニット３０が、あらかじめ暗号化されたコードを復号することによって、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるようにしている点に、主たる特徴がある。
この主たる特徴を簡単に説明すると、メモリ管理ユニット３０は、暗号化されたコードを復号するための復号鍵をあらかじめ記憶し、プロセッサ１がメモリ２に暗号化されたコードを格納した場合には、この格納されたコードについて復号鍵による復号を試行する。そして、この復号されたコードをメモリ２に再格納するとともに、メモリ２が有効である旨を設定することによって、プロセッサ１によるコードの実行を許可する。なお、暗号化されたコードが復号されなかった場合には、メモリ２が有効である旨を設定されず、プロセッサ１によるコードの実行は拒絶されることとなる。
このため、コードの実行直前である水際（つまり、仮想ページから物理ページへのアドレス変換を有効とするタイミング）において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニット３０によって、暗号化されたコードが復号されるので、復号されたコードについては、正当性が担保されたコード（インストール前あるいはインストール後における悪意の第三者による改ざんがなかったコード）として実行することができる。また、このような復号機能を有するメモリ管理ユニット３０は、プロセッサ１やメモリ２のアーキテクチャを変更する必要がないので、復号機能を有するプロセッサ１やメモリ２を開発することに比較して、簡単に開発することができる。
このようなことから、本実施の形態３に係るメモリ管理ユニット３０によれば、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することができるという上記した主たる特徴が、実施の形態１および２に係るメモリ管理ユニット３０と同様に発揮されることとなる。
なお、本実施の形態３にメモリ管理ユニット３０は、上記実施の形態１に係るメモリ管理ユニット１０と同様、プロセッサ１から入力された仮想アドレスを物理アドレスに変換してメモリ２に対して出力するものである。つまり、このメモリ管理ユニット３０は、パーソナルコンピュータ、ワークステーションまたは移動体通信端末など、仮想アドレスから物理アドレスへのアドレス変換をおこなう情報処理装置に適用され、本実施の形態３におけるアドレス空間は、第３図に示したものと同様になる。
［実施の形態３：メモリ管理ユニットの構成］
次に、第７図に示したメモリ管理ユニット３０の構成を説明する。第８図は、本実施の形態３に係るメモリ管理ユニット３０の構成を示すブロック図である。同図に示すように、このメモリ管理ユニット３０は、ページテーブル３１と、アドレス変換部３２と、実行／有効ビット設定部３３と、復号鍵設定部３４と、復号鍵保持部３５と、復号部３６とからなる。なお、復号鍵保持部３５は、請求の範囲に記載の「復号鍵格納手段」に対応し、復号部３６は、請求の範囲に記載の「復号手段」に対応し、実行／有効ビット設定部３３は、請求の範囲に記載の「制御手段」に対応する。
このうち、ページテーブル３１およびアドレス変換部３２は、上記実施の形態１で説明したページテーブル１１およびアドレス変換部１２と、それぞれ同様の機能を果たすものである。
実行／有効ビット設定部３３も、上記実施の形態１で説明した実行／有効ビット設定部３３と、ほぼ同様の機能を果たすものであるが、復号部３６の処理に応じて、ページテーブル３１の対応するエントリ内の実行ビットおよび有効ビットを設定する点が異なる。すなわち、実行／有効ビット設定部３３は、復号部３６によってコードが復号され、復号されたコードがメモリ２に再格納されると、ページテーブル３１の対応するエントリ内の実行ビットおよび有効ビットを設定する（復号されたコードが格納された物理／仮想ページが有効である旨を設定する）。
復号鍵設定部３４は、復号鍵保持部３５に対して、メモリ管理ユニット１０の外部から復号鍵の出し入れをおこなう処理部であり、復号鍵保持部３５は、暗号化されたコードの復号に用いられる復号鍵を保持する記憶部であり、復号部３７は、暗号化されたコードがメモリ２に格納された場合に、復号鍵保持部３５に記憶された復号鍵を用いて、暗号化されたコードを復号する処理部である。
つまり、復号部３７は、ページテーブル３１の所定のエントリについて、プロセッサ１から実行／有効ビットの設定指示を受けると、メモリ２の対応する物理ページ上の暗号化されたコードを読み出すとともに、このコードに対応する復号鍵を復号鍵保持部３５から読み出し、暗号化されたコードを復号鍵を用いて復号する。なお、暗号化および復号化の方式については、例えば、いわゆる共通鍵暗号方式、公開鍵暗号方式など、任意の手法を採用することができる。
そして、復号部３６は、コードを復号した場合には、復号したコードをメモリ２に再格納するとともに、実行／有効ビット設定部３３に対して、実行／有効ビットの設定を指示する。
なお、近年のシステムは、複数のタスク（プログラム）を見かけ上は並行して、すなわちマルチタスクで動作させる場合が多いが、このような場合には、タスクの切替時に、公開鍵設定部３４の制御によって、公開鍵保持部３５に格納されている公開鍵を、タスクに応じた公開鍵に入れ替えることとなる。
［実施の形態３：システムによる処理の手順］
次に、本実施の形態３におけるシステムによって実行される処理の手順を説明する。なお、ここでは、システムの処理として、暗号化されたコードがプロセッサ１によってメモリ２に格納されて、メモリ管理ユニット３０によって実行／有効ビットが設定されるに至るまでの処理を説明する。
第９図は、本実施の形態３におけるシステムの処理を説明するためのフローチャートである。同図に示すように、まず最初に、プロセッサ１は、メモリ管理ユニット３０のページテーブル３１から未使用のエントリを獲得するとともに、メモリ２からは、未使用の物理ページを獲得する（ステップＳ９０１およびＳ９０２）。そして、プロセッサ１は、獲得したエントリに、始点仮想アドレスおよび始点物理アドレスを設定する（ステップＳ９０３）。
続いて、プロセッサ１は、ハードディスクなどのデータ記憶部（ディスク）から暗号化されたコードを読み込んで、この暗号化されたコードをステップＳ９０２において獲得した物理ページに格納する（ステップＳ９０４）。そして、プロセッサ１は、メモリ管理ユニット３０に対して、実行／有効ビットの設定を指示する（ステップＳ９０５）。
一方、かかる設定指示を受けたメモリ管理ユニット３０は、設定指示に係るコードに対応するメモリ２上の物理ページから、暗号化されたコードを読み込むとともに、このコードに対応する復号鍵を、復号鍵保持部３５から読み込む（ステップＳ９０６およびＳ９０７）。そして、メモリ管理ユニット３０の復号部３６は、暗号化されているコードを復号鍵を用いて復号する（ステップＳ９０８）。
続いて、メモリ管理ユニット３０の復号部３６は、復号したコードをメモリ２に再格納するとともに、実行／有効ビット設定部３３に対して、実行／有効ビットの設定を指示し（ステップＳ９０９）、実行／有効ビット設定部３３は、復号対象のコードに関するページテーブル３１内のエントリにおいて、実行ビットおよび有効ビットを設定する（ステップＳ９１０）。これによって、復号対象であるコードについて、プロセッサ１による実行が許可されることとなる。
上述してきたように、本実施の形態３によれば、メモリ管理ユニット３０は、暗号化されたコードを復号するために用いられる復号鍵を復号鍵保持部３５に格納する。そして、暗号化されたコードがプロセッサ１によってメモリ２に格納された場合に、メモリ２から暗号化されたコードを読み出し、復号鍵保持部３５に格納された復号鍵を用いて復号してメモリ２に再格納し、さらに、復号されたコードが再格納されたメモリ２が有効である旨を設定する。したがって、上記した実施の形態１および２と同様に、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
（実施の形態４）
ところで、上記した実施の形態３では、プロセッサ１から入力された仮想アドレスを物理アドレスに変換してメモリ２に対して出力するメモリ管理ユニット３０を説明したが、本発明はこれに限定されるものではなく、プロセッサ１から入力された仮想アドレスを変換することなく、物理アドレスとしてメモリ２に対して出力するメモリ管理ユニットについても、同様に適用することができる。つまり、上記本実施の形態２と同様、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置についても、同様に適用することができる。
そこで、本実施の形態４では、仮想アドレスから物理アドレスへのアドレス変換をおこなわないシステムについて適用されるメモリ管理ユニットであって、上記実施の形態３と同様の効果を発揮するメモリ管理ユニットを説明する。第１０図は、本実施の形態４に係るメモリ管理ユニットの構成を示すブロック図である。なお、上記実施の形態３に示した各部と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
本実施の形態４に係るメモリ管理ユニット４０は、上記したように、プロセッサ１から入力された仮想アドレスを変換することなく、物理アドレスとしてメモリ２に対して出力するものである。すなわち、第６図に示したものと同様、本実施の形態４におけるアドレス空間は、仮想アドレスと物理アドレスとが一致したものとなる。
また、メモリ管理ユニット４０は、第１０図に示すように、仮想アドレスを物理アドレスに変換する処理部（第８図に示したアドレス変換部３２）が存在せず、ページテーブル４１の各エントリにおいても、始点仮想アドレスが存在せず、始点物理アドレスのみが存在する。なお、ページテーブル４１内のエントリは、物理ページの個数分だけ存在することとなる。
したがって、このメモリ管理ユニット４０は、上記した実施の形態２に係るメモリ管理ユニット２０と同様、プロセッサ１によるコードの実行に際して、プロセッサ１から入力された仮想アドレスを、メモリ２上のアドレスである物理アドレスとして、メモリ２に対して出力することとなる。なお、このメモリ管理ユニット４０による復号処理は、第９図に示したメモリ管理ユニット３０（実施の形態３に係るメモリ管理ユニット３０）による処理（同図ステップＳ９０６〜Ｓ９１０）と同様である。
このように、本実施の形態４に係るメモリ管理ユニット４０によれば、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置についても、上記した実施の形態３と同様に、プロセッサ１やメモリ２のアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能になる。
（他の実施の形態）
さて、これまで本発明の実施の形態について説明したが、本発明は上述した実施の形態以外にも、請求の範囲に記載した技術的思想の範囲内において種々の異なる実施の形態にて実施されてもよいものである。
例えば、本実施の形態１および２では、メモリ管理ユニット１０または２０に検証機能を追加した場合を説明したが、本発明はこれに限定されるものではなく、検証機能のみを担うハードウェア（請求の範囲に記載の「コード検証装置」に対応する。）をメモリ管理ユニット１０または２０とは別個に設け、かかるハードウェアが、メモリ管理ユニット１０または２０の動作と協働して、コードの検証をおこなうようにしてもよい。
同様に、本実施の形態３および４では、メモリ管理ユニット３０または４０に復号機能を追加した場合を説明したが、本発明はこれに限定されるものではなく、復号機能のみを担うハードウェア（請求の範囲に記載の「コード復号装置」に対応する。）をメモリ管理ユニット３０または４０とは別個に設け、かかるハードウェアが、メモリ管理ユニット３０または４０の動作と協働して、コードの検証をおこなうようにしてもよい。
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。同様に、各種の入力用画面の内容についても、任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上説明したように、本発明によれば、インストール前あるいはインストール後に悪意の第三者によって改ざんされたために、安全性に問題があるコードについては、コードの実行直前である水際（つまり、仮想ページから物理ページへのアドレス変換を有効とするタイミング）において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニットによって、コードが正当でない旨が確実に検証されるので、プロセッサによる実行を回避することができる。また、このような検証機能を有するメモリ管理ユニットは、プロセッサやメモリのアーキテクチャを変更する必要がないので、検証機能を有するプロセッサやメモリを開発することに比較して、簡単に開発することができる。したがって、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なメモリ管理ユニットが得られるという効果を奏する。
また、本発明によれば、コードの実行直前である水際において、悪意の第三者にとっては手が届かないハードウェアであるメモリ管理ユニットによって、暗号化されたコードが復号されるので、復号されたコードについては、正当性が担保されたコード（インストール前あるいはインストール後における悪意の第三者による改ざんがなかったコード）として実行することができる。また、このような復号機能を有するメモリ管理ユニットは、プロセッサやメモリのアーキテクチャを変更する必要がないので、復号機能を有するプロセッサやメモリを開発することに比較して、簡単に開発することができる。したがって、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なメモリ管理ユニットが得られるという効果を奏する。
また、本発明によれば、パーソナルコンピュータ、ワークステーションまたは移動体通信端末など、仮想アドレスから物理アドレスへのアドレス変換をおこなう情報処理装置に適用して、かかる情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なメモリ管理ユニットが得られるという効果を奏する。
また、本発明によれば、ＰＨＳ端末、携帯端末またはＰＤＡなど、仮想アドレスから物理アドレスへのアドレス変換をおこなわない情報処理装置に適用して、かかる情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なメモリ管理ユニットが得られるという効果を奏する。
また、本発明によれば、情報処理装置上で基本ソフトとして実行される極めて重要なコードについて、プロセッサやメモリのアーキテクチャを変更することなく、正当性を簡単かつ確実に保証することが可能なメモリ管理ユニットが得られるという効果を奏する。
また、本発明によれば、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なコード検証装置が得られるという効果を奏する。
また、本発明によれば、プロセッサやメモリのアーキテクチャを変更することなく、情報処理装置上で実行されるコードの正当性を簡単かつ確実に保証することが可能なコード復号装置が得られるという効果を奏する。
産業上の利用可能性
以上のように、本発明に係るメモリ管理ユニット、コード検証装置およびコード復号装置は、パーソナルコンピュータ、ワークステーション、ＰＨＳ端末、携帯端末、移動体通信端末またはＰＤＡなど、プロセッサによって実行されるコードの正当性を保証する必要がある情報処理装置に適する。
【図面の簡単な説明】
第１図は、本実施の形態１に係るメモリ管理ユニットが適用されるシステムの構成を示すブロック図であり、第２図は、本実施の形態１に係るメモリ管理ユニットの構成を示すブロック図であり、第３図は、本実施の形態１におけるアドレス空間を説明するための図であり、第４図は、本実施の形態１におけるシステムの処理を説明するためのフローチャートであり、第５図は、本実施の形態２に係るメモリ管理ユニットの構成を示すブロック図であり、第６図は、本実施の形態２におけるアドレス空間を説明するための図であり、第７図は、本実施の形態３に係るメモリ管理ユニットが適用されるシステムの構成を示すブロック図であり、第８図は、本実施の形態３に係るメモリ管理ユニットの構成を示すブロック図であり、第９図は、本実施の形態３におけるシステムの処理を説明するためのフローチャートであり、第１０図は、本実施の形態４に係るメモリ管理ユニットの構成を示すブロック図である。
【図１】
2003104948.tif 000003
【図２】
2003104948.tif 000004
【図３】
2003104948.tif 000005
【図４】
2003104948.tif 000006
【図５】
2003104948.tif 000007
【図６】
2003104948.tif 000008
【図７】
2003104948.tif 000009
【図８】
2003104948.tif 000010
【図９】
2003104948.tif 000011
【図１０】
2003104948.tif 000012
【国際調査報告】
2003104948.tif 000013
2003104948.tif 000014