(57)【要約】      （修正有）【課題】メモリ管理ユニットの有効化に要する処理を削減し、起動時間を短縮する情報処理装置を提供する。【解決手段】情報処理装置（組み込みコンピュータ）１００は、仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリ１３０を備える。また、情報処理装置１００は、メモリアクセス要求を受けたメモリ管理ユニット（ＭＭＵ）１１１が不揮発性メモリ１３０に配置されたページテーブルを参照するように、ＭＭＵ１１１を設定する設定手段を備える。【選択図】図１
2017138823.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリと、
メモリアクセス要求を受けたメモリ管理ユニットが前記不揮発性メモリに配置された前記ページテーブルを参照するように、前記メモリ管理ユニットを設定する設定手段と、を備えることを特徴とする情報処理装置。
【請求項２】
組み込み機器の一部として機能することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記不揮発性メモリは、ＮＯＲ型フラッシュメモリであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
揮発性メモリと、
前記不揮発性メモリに配置された前記ページテーブルが多段のページテーブルである場合、当該ページテーブルをもとに、前記揮発性メモリにページテーブルを作成する作成手段と、
メモリアクセス要求を受けた前記メモリ管理ユニットが前記揮発性メモリに作成された前記ページテーブルを参照するように、前記設定手段による前記メモリ管理ユニットの設定を変更する変更手段と、をさらに備えることを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
撮像手段と、
請求項１から４のいずれか１項に記載の情報処理装置と、を備えることを特徴とする撮像装置。
【請求項６】
メモリアクセス要求を受けたメモリ管理ユニットが不揮発性メモリに配置された仮想アドレスと物理アドレスとを対応付けるページテーブルを参照するように、前記メモリ管理ユニットを設定するステップと、
前記メモリ管理ユニットが、前記メモリアクセス要求を受けて、設定された前記ページテーブルを参照するステップと、を含むことを特徴とする情報処理方法。
【請求項７】
コンピュータを、請求項１から４のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法および撮像装置に関する。
【背景技術】
【０００２】
近年、仮想記憶を採用しない組み込みシステム（組み込みコンピュータ）においても、プロセッサの演算性能への要求から、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ：メモリ管理ユニット）を搭載した高性能プロセッサが用いられている。
ＭＭＵは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担う。そのため、ＭＭＵを搭載した組み込みコンピュータでは、たとえ仮想記憶を採用せずとも、アプリケーションプログラムの動作前にＭＭＵを有効化し、メモリアクセス属性を適切に設定する必要がある。しかしながら、ＭＭＵを有効化するためには、メモリ上に仮想アドレスと物理アドレスとを対応付けるページテーブルを作成する処理が必要であり、それだけ起動時間が長くなってしまう。
そこで、起動時間を短縮することを目的として、特許文献１には、電源オフ時に揮発性メモリ上のページテーブルを不揮発性メモリに保存し、次回の電源オン時に、不揮発性メモリに保存されたページテーブルを揮発性メモリにコピーする技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２７７１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ページテーブルをコピーする処理は、ページテーブルを作成する処理と比べて短時間で完了することができる。そのため、上記特許文献１に記載の技術では、システム起動時にページテーブルを作成してＭＭＵを有効化する場合と比較して、起動時間の短縮が見込まれる。しかしながら、ページテーブルのコピーに要する時間は削減することができず、起動時間の短縮には限界がある。
そこで、本発明は、ＭＭＵの有効化に要する処理を削減し、起動時間を短縮することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る情報処理装置の一態様は、仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリと、メモリアクセス要求を受けたメモリ管理ユニットが前記不揮発性メモリに配置された前記ページテーブルを参照するように、前記メモリ管理ユニットを設定する設定手段と、を備える。
【発明の効果】
【０００６】
本発明によれば、ＭＭＵの有効化に要する処理を削減し、起動時間を短縮することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態における情報処理装置のハードウェア構成図である。
【図２】物理アドレスのメモリマップである。
【図３】ＭＭＵの動作を説明する図である。
【図４】情報処理装置の動作を説明するフローチャートである。
【図５】ページテーブルの具体的な内容を説明する図である。
【図６】多段のページテーブルの一例である。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
図１は、本実施形態における情報処理装置１００のハードウェア構成図である。本実施形態において、情報処理装置１００は、組み込み機器の一部として機能する組み込みコンピュータである。組み込み機器としては、デジタルカメラ等の撮像装置がある。情報処理装置１００が撮像装置の一部として機能する場合、撮像装置は、ＣＭＯＳやＣＣＤといった撮像素子を含んで構成される撮像部と、情報処理装置１００とを少なくとも備える。
情報処理装置１００は、プロセッサ１１０を備える。プロセッサ１１０は、バス１２０を介して不揮発性メモリ１３０、揮発性メモリ１４０およびペリフェラル群１５０と接続されている。
【０００９】
不揮発性メモリ１３０は、例えばＮＯＲ型フラッシュメモリにより構成することができる。なお、不揮発性メモリ１３０は、不揮発性で且つバイト単位でのアクセスが可能であればよい。つまり、不揮発性メモリ１３０は、バイト単位でのアクセスを可能とするコントローラ等を設ければ、ＮＡＮＤ型フラッシュメモリを用いることもできる。また、不揮発性メモリ１３０は、ＦｅＲＡＭ（Ferroelectric RAM）やＭＲＡＭ（Magnetoresistive RAM）といった不揮発性ＲＡＭであってもよい。揮発性メモリ１４０は、例えばＳＲＡＭやＤＲＡＭにより構成することができる。
【００１０】
プロセッサ１１０は、ＭＭＵ１１１およびキャッシュ１１２を備える。また、ＭＭＵ１１１は、ＥＮＡＢＬＥレジスタ（以下、「第一のレジスタ」という。）１１３と、ＰＡＧＥＴＡＢＬＥ＿ＡＤＤＲＥＳＳレジスタ（以下、「第二のレジスタ」という。）１１４と、を備える。第一のレジスタ１１３は、ＭＭＵ１１１の有効／無効を設定する設定レジスタである。例えば、第一のレジスタ１１３は、ＭＭＵ１１１が有効である場合には「１」、無効である場合には「０」を格納する。第二のレジスタ１１４は、ＭＭＵ１１１が参照するデータ構造（ページテーブル）が配置された物理アドレスを設定する設定レジスタである。
プロセッサ１１０の仮想アドレス空間およびバス１２０の物理アドレス空間は、共に４ＧＢ（４０９６ＭＢ）とする。ＭＭＵ１１１は、プロセッサ１１０からのメモリアクセス要求を受けて、１ＭＢ単位で仮想アドレスから物理アドレスへの変換を行うと共に、その物理アドレスに応じてアクセス属性を決定する。アクセス属性は、物理アドレスへのＲＥＡＤアクセスの可否、ＷＲＩＴＥアクセスの可否、命令実行の可否、キャッシュの可否に関する情報を含む。
【００１１】
ＭＭＵ１１１が無効である場合、仮想アドレスは、変換されずにそのまま物理アドレスとして扱われる。また、プロセッサ１１０からバス１２０へのアクセス属性は、ＲＥＡＤ可、ＷＲＩＴＥ可、実行可、キャッシュ不可に設定される。一方、ＭＭＵ１１１が有効である場合、ＭＭＵ１１１は、第二のレジスタ１１４によって設定されたページテーブルを参照し、参照したページテーブルの内容に基づいて、仮想アドレスから物理アドレスへの変換を行うと共にアクセス属性を決定する。
図２は、プロセッサ１１０からみたバス１２０のメモリマップ、すなわち物理アドレスのメモリマップである。物理アドレス「０ｘ００００＿００００」から「０ｘ３ＦＦＦ＿ＦＦＦＦ」までの１ＧＢ空間に不揮発性メモリ１３０が、物理アドレス「０ｘ４０００＿００００」から「０ｘ７ＦＦＦ＿ＦＦＦＦ」までの１ＧＢ空間に揮発性メモリ１４０がマップされている。さらに、物理アドレス「０ｘ８０００＿００００」から「０ｘＢＦＦＦ＿ＦＦＦＦ」までの１ＧＢ空間にペリフェラル群１５０がマップされている。
【００１２】
また、不揮発性メモリ１３０の先頭にはブートプログラム１３１が配置されており、続いてページテーブル１３２、アプリケーションプログラム１３３が配置されている。本実施形態では、ページテーブル１３２は、物理アドレス「０ｘ００００＿４０００」から「０ｘ００００＿７ＦＦＦ」までの空間に配置されている。したがって、第二のレジスタ１１４に物理アドレス「０ｘ００００＿４０００」が設定されていれば、ＭＭＵ１１１は、不揮発性メモリ１３０上のページテーブル１３２を参照することができる。
図３は、ＭＭＵ１１１の動作を説明する図である。ページテーブル１３２は、仮想アドレスと物理アドレスとを対応付けるものである。上述したように、４ＧＢ（４０９６ＭＢ）のアドレス空間が１ＭＢごとのセクションに分割される場合、ページテーブル１３２は、４０９６個のページテーブルエントリ（ＰＴＥ）１３２ａの配列からなる。各ＰＴＥ１３２ａは、それぞれページフレームの物理アドレスとアクセス属性とを保持する。
【００１３】
仮想アドレス０番地を先頭とする１ＭＢの仮想アドレス空間（０ｘ００００＿００００〜０ｘ０００Ｆ＿ＦＦＦＦ）へのアクセスでは、ＭＭＵ１１１は、０番目のＰＴＥ（エントリ０）を参照する。エントリ０に保持された物理アドレスが「０ｘ００００＿００００」である場合、仮想アドレス「０ｘ００００＿００００」は、そのまま物理アドレス「０ｘ００００＿００００」に変換される。また、仮想アドレス「０ｘ００００＿１２３４」は、そのまま物理アドレス「０ｘ００００＿１２３４」に変換される。
また、これらの仮想アドレス０番地を先頭とする１ＭＢの仮想アドレス空間（０ｘ００００＿００００〜０ｘ０００Ｆ＿ＦＦＦＦ）へのアクセスのアクセス属性は、エントリ０に保持されたアクセス属性（ＲＷＸＣ）に従い決定される。つまり、図３に示す例では、ＲＥＡＤ可、ＷＲＩＴＥ可、命令実行可、キャッシュ可となる。
【００１４】
同様に、仮想アドレス１ＭＢ番地を先頭とする１ＭＢの仮想アドレス空間（０ｘ００１０＿００００〜０ｘ００１Ｆ＿ＦＦＦＦ）へのアクセスでは、１番目のページＰＴＥ（エントリ１）が参照される。そして、仮想アドレス４０９５ＭＢ番地を先頭とする１ＭＢの仮想アドレス空間（０ｘＦＦＦ０＿００００〜０ｘＦＦＦＦ＿ＦＦＦＦ）へのアクセスでは、４０９５番目のＰＴＥ（エントリ４０９５）が参照される。
なお、本実施形態では、ページテーブル１３２は、全てのＰＴＥ１３２ａにおいて、仮想アドレスと物理アドレスとを一致させている。しかしながら、例えばエントリ０に保持された物理アドレスが「０ｘ００１０＿００００」である場合には、仮想アドレス「０ｘ００００＿００００」は物理アドレス「０ｘ００１０＿００００」に変換される。また、仮想アドレス「０ｘ００００＿１２３４」は物理アドレス「０ｘ００００＿１２３４」に変換される。このように、仮想アドレスのうち、上位はＭＭＵ１１１により変換され、下位は無変換となる。
【００１５】
次に、情報処理装置１００においてアプリケーションプログラム１３３が実行されるまでの処理の流れについて、図４を参照しながら説明する。情報処理装置１００は、プロセッサ１１０が必要なプログラムを読み出して実行することにより、図４に示す各処理を実現することができる。この図４の処理は、システム起動時、つまり情報処理装置１００の電源投入時に実行が開始される。
まずＳ１において、プロセッサ１１０は、不揮発性メモリ１３０に配置されたブートプログラム１３１を読み出し、実行を開始する。この時点では、ＭＭＵ１１１の第一のレジスタ１１３は「０」、すなわちＭＭＵ１１１は無効となっている。この状態で、プロセッサ１１０は、ＭＭＵ１１１の第二のレジスタ１１４にページテーブル１３２の物理アドレスである「０ｘ００００＿４０００」を設定する。
【００１６】
次にＳ２において、プロセッサ１１０は、ＭＭＵ１１１の第一のレジスタ１１３に「１」を設定する。つまり、ＭＭＵ１１１を有効とする。そして、Ｓ３では、プロセッサ１１０は、アプリケーションプログラム１３３の先頭アドレスである「０ｘ００００＿８０００」にジャンプすることでアプリケーションプログラム１３３の実行を開始する。Ｓ２においてＭＭＵ１１１が有効となっているため、ＭＭＵ１１１は、メモリアクセス要求を受けて、第二のレジスタ１１４に設定されたページテーブル１３２を参照することができ、アプリケーションプログラム１３３を適切に実行することができる。また、アプリケーションプログラム１１３の実行においては、ＭＭＵ１１１は、ページテーブル１３２の内容に基づく仮想アドレスから物理アドレスへの変換やアクセス権制御が可能となる。
図５は、ページテーブル１３２の具体的な内容を示す図である。本実施形態では、ページテーブル１３２は、上述したように、全てのＰＴＥ１３２ａにおいて仮想アドレスと物理アドレスを一致させている。
【００１７】
そして、０番目から１０２３番目のＰＴＥ（仮想アドレス＝物理アドレス「０ｘ００００＿００００」〜「０ｘ３ＦＦＦ＿ＦＦＦＦ」、不揮発性メモリ１３０に対応）のアクセス属性は、ＲＥＡＤ、ＷＲＩＴＥ、命令実行、キャッシュ全て可である。また、１０２４番目から２０４７番目のＰＴＥ（仮想アドレス＝物理アドレス「０ｘ４０００＿００００」〜「０ｘ７ＦＦＦ＿ＦＦＦＦ」、揮発性メモリ１４０に対応）のアクセス属性は、ＲＥＡＤ可、ＷＲＩＴＥ可、命令実行不可、キャッシュ可である。
また、２０４８番目から３０７１番目のＰＴＥ（仮想アドレス＝物理アドレス「０ｘ８０００＿００００」〜「０ｘＢＦＦＦ＿ＦＦＦＦ」、ペリフェラル群１５０に対応）のアクセス属性は、ＲＥＡＤ可、ＷＲＩＴＥ可、命令実行不可、キャッシュ不可である。さらに、３０７２番目から４０９５番目のＰＴＥ（仮想アドレス＝物理アドレス「０ｘＣ０００＿００００」〜「０ｘＦＦＦＦ＿ＦＦＦＦ」、未使用領域に対応）のアクセス属性は、ＲＥＡＤ、ＷＲＩＴＥ、命令実行、キャッシュ全て不可である。
この図５に示すページテーブル１３２により、不揮発性メモリ１３０および揮発性メモリ１４０へのアクセスはキャッシュ可、ペリフェラル群１５０へのアクセスはキャッシュ不可となる。また、未使用領域へのアクセスは不可となる。このように、アプリケーションプログラム１３３の実行に適したアクセス属性を設定することができる。
【００１８】
次に、ページテーブル１３２の作成方法について説明する。
ページテーブル１３２は、図５に示すように多数のＰＴＥ１３２ａからなるデータ構造を有するため、コンピュータがプログラムを実行することで作成される。また、本実施形態では、ページテーブル１３２は、情報処理装置１００の不揮発性メモリ１３０に配置される。これは、予めＰＣ等の汎用コンピュータが、プログラムを実行することでページテーブルを作成し、作成したページテーブルを情報処理装置１００の不揮発性メモリ１３０に配置することで実現され得る。以下、ページテーブル１３２を作成するためのプログラム（以下、「ページテーブル作成プログラム」という。）の手順について説明する。
【００１９】
汎用コンピュータは、以下の（１）〜（７）の手順を、エントリ番号に対応するカウント値ｉ＝０からｉ＝４０９５について繰り返し実行する。
（１）汎用コンピュータは、エントリｉに対応する仮想アドレス空間の先頭アドレスＶＡｉを算出する。具体的には、ＶＡｉ＝ｉ＊０ｘ００１０＿００００である。
（２）汎用コンピュータは、エントリｉの物理アドレスに、手順（１）において算出したアドレスＶＡｉを格納する。
（３）汎用コンピュータは、アドレスＶＡｉが、「０ｘ００００＿００００」以上「０ｘ４０００＿００００」未満の範囲Ａ内であるか否かを判定する。ここで、範囲Ａとは、図３に示すように、不揮発性メモリ１３０がマップされた空間である。そして、汎用コンピュータは、アドレスＶＡｉが範囲Ａ内であると判定すると、エントリｉのアクセス属性に「ＲＷＸＣ（ＲＥＡＤ、ＷＲＩＴＥ、命令実行、キャッシュ全て可）」を格納し、手順（７）に進む。一方、汎用コンピュータは、アドレスＶＡｉが範囲Ａ内ではないと判定すると、手順（４）に進む。
【００２０】
（４）汎用コンピュータは、アドレスＶＡｉが、「０ｘ４０００＿００００」以上「０ｘ８０００＿００００」未満の範囲Ｂ内であるか否かを判定する。ここで、範囲Ｂとは、図３に示すように、揮発性メモリ１４０がマップされた空間である。そして、汎用コンピュータは、アドレスＶＡｉが範囲Ｂ内であると判定すると、エントリｉのアクセス属性に「ＲＷ−Ｃ（ＲＥＡＤ可、ＷＲＩＴＥ可、命令実行不可、キャッシュ可）」を格納し、手順（７）に進む。一方、汎用コンピュータは、アドレスＶＡｉが範囲Ｂ内ではないと判定すると、手順（５）に進む。
（５）汎用コンピュータは、アドレスＶＡｉが、「０ｘ８０００＿００００」以上「０ｘＣ０００＿００００」未満の範囲Ｃ内であるか否かを判定する。ここで、範囲Ｃとは、図３に示すように、ペリフェラル群１５０がマップされた空間である。そして、汎用コンピュータは、アドレスＶＡｉが範囲Ｃ内であると判定すると、エントリｉのアクセス属性に「ＲＷ−−（ＲＥＡＤ可、ＷＲＩＴＥ可、命令実行不可、キャッシュ不可）」を格納し、手順（７）に進む。一方、汎用コンピュータは、アドレスＶＡｉが範囲Ｃ内ではないと判定すると、手順（６）に進む
【００２１】
（６）汎用コンピュータは、エントリｉのアクセス属性に「−−−−（ＲＥＡＤ、ＷＲＩＴＥ、命令実行、キャッシュ全て不可）」を格納し、手順（７）に進む。
（７）汎用コンピュータは、エントリｉの設定を完了する。
汎用コンピュータは、エントリ０からエントリ４０９５までの設定を完了すると、４０９６個のＰＴＥ１３２ａからなるページテーブル１３２を、情報処理装置１００の不揮発性メモリ１３０に配置し、ページテーブル作成処理を終了する。
以上のように、ＭＭＵは、プロセッサが発行するメモリアクセス要求を処理するハードウェアであり、仮想アドレスから物理アドレスへの変換、アクセス権制御、キャッシュ制御などの機能を持つ。また、ＭＭＵは、メモリ上に配置されたページテーブルを参照して上記の動作を実現する。
【００２２】
ＭＭＵの代表的な利用方法に仮想記憶がある。仮想記憶は、ソフトウェアによるメモリ管理の一手法であり、ページテーブルの内容を適切に変更することで、不連続な物理メモリ領域を連続な仮想メモリ領域として扱うことを可能とする。Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）といった汎用コンピュータ向けオペレーティングシステム（ＯＳ）の多くが仮想記憶を採用しており、これらのＯＳはＭＭＵを搭載したプロセッサと合わせて用いられる。近年では、組み込みコンピュータに汎用コンピュータ向けＯＳを搭載する事例も多く、組み込みコンピュータ向けプロセッサでも、特に高性能なプロセッサを中心に、ＭＭＵを搭載することが一般的になっている。
ＭＭＵは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担うため、たとえ仮想記憶を採用せずとも、ＭＭＵを適切な設定で有効化する必要がある。しかしながら、ＭＭＵを有効化するためには、メモリ上にページテーブルを作成する処理と、作成されたページテーブルを参照するようＭＭＵを設定する処理とが必要である。
【００２３】
不揮発性メモリ１３０にページテーブル１３２を配置しない従来の手法では、ページテーブル作成プログラムは、ブートプログラム１３１に組み込まれて実行されることになる。具体的には、ブートプログラム１３１の動作を説明した図４のフローチャートにおいて、Ｓ１の前にページテーブル作成プログラムが実行され、揮発性メモリ１４０上にページテーブルが作成されることになる。そして、揮発性メモリ１４０上にページテーブルが作成された後、Ｓ１に相当する処理として、第二のレジスタ１１４に揮発性メモリ１４０上のページテーブルの物理アドレスを設定することになる。
このように、ＭＭＵを有効化するまでの間にページテーブルを作成する処理が必要となると、それだけ起動時間が長くなってしまう。
【００２４】
これに対して、本実施形態では、情報処理装置１００は、仮想アドレスと物理アドレスとを対応付けるページテーブル１３２が配置された不揮発性メモリ１３０を備える。そして、情報処理装置１００は、システム起動時に、ＭＭＵ１１１がメモリアクセス要求を受けて不揮発性メモリ１３０に配置されたページテーブル１３２を参照するように、ＭＭＵ１１１を設定する。具体的には、情報処理装置１００は、第二のレジスタ１１４に不揮発性メモリ１３０上のページテーブル１３２の物理アドレスを設定することで、ＭＭＵ１１１が不揮発性メモリ１３０に配置されたページテーブル１３２を参照するようにする。
このように、情報処理装置１００は、システム起動時にレジスタ設定するだけで、ＭＭＵ１１１を有効化することができる。つまり、情報処理装置１００は、メモリ上にページテーブルを作成する処理を実施することなくＭＭＵ１１１を有効化することができる。したがって、上記従来の手法と比較して、アプリケーションプログラム１３３の開始までに要する時間を短縮することができる。本実施形態における情報処理装置１００は、組み込み機器の一部として機能することができるため、上記組み込み機器が撮像装置である場合、電源投入から撮像開始までの時間を短縮し、起動の早い撮像装置を実現することができる。
【００２５】
また、不揮発性メモリ１３０は、ＮＯＲ型フラッシュメモリにより構成することができる。この場合、別途コントローラ等を設けることなくバイト単位でのアクセスを高速で行うことが可能であるため、容易且つ適切にＭＭＵ１１１を動作させることができる。
さらに、情報処理装置１００は、揮発性メモリ１４０を備えており、ＭＭＵ１１１を有効化した後、不揮発性メモリ１３０に配置されたページテーブル１３２をもとに、揮発性メモリ１４０にページテーブルを作成してもよい。このとき、情報処理装置１００は、ＭＭＵ１１１が揮発性メモリ１４０に配置されたページテーブルを参照するように、ＭＭＵ１１１の設定を変更する。つまり、情報処理装置１００は、ＭＭＵ１１１を有効化した後、不揮発性メモリ１３０に配置したページテーブル１３２を揮発性メモリ１４０にコピーし、第二のレジスタ１１４に、揮発性メモリ１４０上のページテーブルの物理アドレスを設定する。このように、揮発性メモリ１４０にページテーブルが配置されることにより、ページテーブルの内容の書き換えを高速で行うことが可能となり、ＭＭＵ１１１をより適切に動作させることができるようになる。
【００２６】
ところで、ページテーブルは、図５に示すような１段のページテーブルであるとメモリ容量が大きくなるため、多段のページテーブルが用いられることがある。図６に２段のページテーブルの例を示す。
図６（ａ）に示すように、ページテーブル１３２が、複数のページディレクトリエントリ（ＰＤＥ）の配列からなるページディレクトリテーブル１３２Ｄと、複数のＰＴＥの配列からなるページテーブル１３２Ｅとによって構成されているものとする。この場合、システム起動時、第二のレジスタ１１４には、不揮発性メモリ１３０上のページディレクトリテーブル１３２Ｄの物理アドレスが設定される。ここで、ページディレクトリテーブル１３２Ｄの物理アドレスは「ＡＤＤＲ１」とする。また、ページディレクトリテーブル１３２ＤのＰＤＥには、ページテーブル１３２Ｅの物理アドレスが格納されている。ここで、ページテーブル１３２Ｅの物理アドレスは「ＡＤＤＲ２」とする。
【００２７】
情報処理装置１００は、ＭＭＵ１１１を有効化した後、図６（ａ）に示すような多段のページテーブル１３２をもとに揮発性メモリ１４０上にページテーブルを作成する場合、以下の処理を行う。
まず、情報処理装置１００は、不揮発性メモリ１３０上のページテーブル１３２を、図６（ｂ）に示すように、揮発性メモリ１４０上のページテーブル１４２としてコピーする。このとき、ページディレクトリテーブル１３２Ｄはページディレクトリテーブル１４２Ｄ、ページテーブル１３２Ｅはページテーブル１４２Ｅとしてコピーされる。
次に、情報処理装置１００は、ページディレクトリテーブル１４２ＤのＰＤＥに格納されている物理アドレスを、不揮発性メモリ１３０上の物理アドレス「ＡＤＤＲ２」から揮発性メモリ１４０上の物理アドレスへ書き換える。図６（ｂ）において、揮発性メモリ１４０上のページテーブル１４２Ｅの物理アドレスは「ＡＤＤＲ４」としている。このようにして、情報処理装置１００は、不揮発性メモリ１３０上のページテーブル１３２をもとに、揮発性メモリ１４０上にページテーブル１４２を作成する。
【００２８】
また、情報処理装置１００は、第二のレジスタ１１４に設定されている不揮発性メモリ１３０上のページディレクトリテーブル１３２Ｄの物理アドレス「ＡＤＤＲ１」を、揮発性メモリ１４０上のページディレクトリテーブル１４２Ｄの物理アドレスへ変更する。図６（ｂ）において、揮発性メモリ１４０上のページディレクトリテーブル１４２Ｄの物理アドレスは「ＡＤＤＲ３」としている。このようにして、情報処理装置１００は、ＭＭＵ１１１がメモリアクセス要求を受けて揮発性メモリ１４０に配置されたページテーブル１４２を参照するように、ＭＭＵ１１１の設定を変更する。
このように、ページテーブル１３２が多段のページテーブルである場合、整合をとりつつページテーブル１３２を揮発性メモリ１４０にコピーする。これにより、ＭＭＵ１１１は、揮発性メモリ１４０上のページテーブル１４２を参照して適切に動作することができるようになる。なお、揮発性メモリ１４０上へのページテーブルの作成タイミングは、ＭＭＵ１１１が有効化した後、ページテーブルの内容の書き換えが必要となったタイミングであってもよいし、システム起動後、予め設定した所定時間が経過したタイミングであってもよい。
【００２９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３０】
１００…情報処理装置（組み込みコンピュータ）、１１０…プロセッサ、１１１…ＭＭＵ、１１２…キャッシュ、１１３…ＥＮＡＢＬＥレジスタ（第一のレジスタ）、１１４…ＰＡＧＥＴＡＢＬＥ＿ＡＤＤＲＥＳＳレジスタ（第二のレジスタ）、１３０…不揮発性メモリ、１４０…揮発性メモリ
【図１】
2017138823.tif 000003
【図２】
2017138823.tif 000004
【図３】
2017138823.tif 000005
【図４】
2017138823.tif 000006
【図５】
2017138823.tif 000007
【図６】
2017138823.tif 000008