JP2017138823A - 情報処理装置、情報処理方法および撮像装置 - Google Patents
情報処理装置、情報処理方法および撮像装置 Download PDFInfo
- Publication number
- JP2017138823A JP2017138823A JP2016019643A JP2016019643A JP2017138823A JP 2017138823 A JP2017138823 A JP 2017138823A JP 2016019643 A JP2016019643 A JP 2016019643A JP 2016019643 A JP2016019643 A JP 2016019643A JP 2017138823 A JP2017138823 A JP 2017138823A
- Authority
- JP
- Japan
- Prior art keywords
- page table
- information processing
- memory
- mmu
- processing apparatus
- 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
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】メモリ管理ユニットの有効化に要する処理を削減し、起動時間を短縮する情報処理装置を提供する。
【解決手段】情報処理装置(組み込みコンピュータ)100は、仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリ130を備える。また、情報処理装置100は、メモリアクセス要求を受けたメモリ管理ユニット(MMU)111が不揮発性メモリ130に配置されたページテーブルを参照するように、MMU111を設定する設定手段を備える。
【選択図】図1
【解決手段】情報処理装置(組み込みコンピュータ)100は、仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリ130を備える。また、情報処理装置100は、メモリアクセス要求を受けたメモリ管理ユニット(MMU)111が不揮発性メモリ130に配置されたページテーブルを参照するように、MMU111を設定する設定手段を備える。
【選択図】図1
Description
本発明は、情報処理装置、情報処理方法および撮像装置に関する。
近年、仮想記憶を採用しない組み込みシステム(組み込みコンピュータ)においても、プロセッサの演算性能への要求から、MMU(Memory Management Unit:メモリ管理ユニット)を搭載した高性能プロセッサが用いられている。
MMUは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担う。そのため、MMUを搭載した組み込みコンピュータでは、たとえ仮想記憶を採用せずとも、アプリケーションプログラムの動作前にMMUを有効化し、メモリアクセス属性を適切に設定する必要がある。しかしながら、MMUを有効化するためには、メモリ上に仮想アドレスと物理アドレスとを対応付けるページテーブルを作成する処理が必要であり、それだけ起動時間が長くなってしまう。
そこで、起動時間を短縮することを目的として、特許文献1には、電源オフ時に揮発性メモリ上のページテーブルを不揮発性メモリに保存し、次回の電源オン時に、不揮発性メモリに保存されたページテーブルを揮発性メモリにコピーする技術が開示されている。
MMUは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担う。そのため、MMUを搭載した組み込みコンピュータでは、たとえ仮想記憶を採用せずとも、アプリケーションプログラムの動作前にMMUを有効化し、メモリアクセス属性を適切に設定する必要がある。しかしながら、MMUを有効化するためには、メモリ上に仮想アドレスと物理アドレスとを対応付けるページテーブルを作成する処理が必要であり、それだけ起動時間が長くなってしまう。
そこで、起動時間を短縮することを目的として、特許文献1には、電源オフ時に揮発性メモリ上のページテーブルを不揮発性メモリに保存し、次回の電源オン時に、不揮発性メモリに保存されたページテーブルを揮発性メモリにコピーする技術が開示されている。
ページテーブルをコピーする処理は、ページテーブルを作成する処理と比べて短時間で完了することができる。そのため、上記特許文献1に記載の技術では、システム起動時にページテーブルを作成してMMUを有効化する場合と比較して、起動時間の短縮が見込まれる。しかしながら、ページテーブルのコピーに要する時間は削減することができず、起動時間の短縮には限界がある。
そこで、本発明は、MMUの有効化に要する処理を削減し、起動時間を短縮することを目的とする。
そこで、本発明は、MMUの有効化に要する処理を削減し、起動時間を短縮することを目的とする。
上記課題を解決するために、本発明に係る情報処理装置の一態様は、仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリと、メモリアクセス要求を受けたメモリ管理ユニットが前記不揮発性メモリに配置された前記ページテーブルを参照するように、前記メモリ管理ユニットを設定する設定手段と、を備える。
本発明によれば、MMUの有効化に要する処理を削減し、起動時間を短縮することができる。
以下、添付図面を参照して、本発明を実施するための形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
図1は、本実施形態における情報処理装置100のハードウェア構成図である。本実施形態において、情報処理装置100は、組み込み機器の一部として機能する組み込みコンピュータである。組み込み機器としては、デジタルカメラ等の撮像装置がある。情報処理装置100が撮像装置の一部として機能する場合、撮像装置は、CMOSやCCDといった撮像素子を含んで構成される撮像部と、情報処理装置100とを少なくとも備える。
情報処理装置100は、プロセッサ110を備える。プロセッサ110は、バス120を介して不揮発性メモリ130、揮発性メモリ140およびペリフェラル群150と接続されている。
図1は、本実施形態における情報処理装置100のハードウェア構成図である。本実施形態において、情報処理装置100は、組み込み機器の一部として機能する組み込みコンピュータである。組み込み機器としては、デジタルカメラ等の撮像装置がある。情報処理装置100が撮像装置の一部として機能する場合、撮像装置は、CMOSやCCDといった撮像素子を含んで構成される撮像部と、情報処理装置100とを少なくとも備える。
情報処理装置100は、プロセッサ110を備える。プロセッサ110は、バス120を介して不揮発性メモリ130、揮発性メモリ140およびペリフェラル群150と接続されている。
不揮発性メモリ130は、例えばNOR型フラッシュメモリにより構成することができる。なお、不揮発性メモリ130は、不揮発性で且つバイト単位でのアクセスが可能であればよい。つまり、不揮発性メモリ130は、バイト単位でのアクセスを可能とするコントローラ等を設ければ、NAND型フラッシュメモリを用いることもできる。また、不揮発性メモリ130は、FeRAM(Ferroelectric RAM)やMRAM(Magnetoresistive RAM)といった不揮発性RAMであってもよい。揮発性メモリ140は、例えばSRAMやDRAMにより構成することができる。
プロセッサ110は、MMU111およびキャッシュ112を備える。また、MMU111は、ENABLEレジスタ(以下、「第一のレジスタ」という。)113と、PAGETABLE_ADDRESSレジスタ(以下、「第二のレジスタ」という。)114と、を備える。第一のレジスタ113は、MMU111の有効/無効を設定する設定レジスタである。例えば、第一のレジスタ113は、MMU111が有効である場合には「1」、無効である場合には「0」を格納する。第二のレジスタ114は、MMU111が参照するデータ構造(ページテーブル)が配置された物理アドレスを設定する設定レジスタである。
プロセッサ110の仮想アドレス空間およびバス120の物理アドレス空間は、共に4GB(4096MB)とする。MMU111は、プロセッサ110からのメモリアクセス要求を受けて、1MB単位で仮想アドレスから物理アドレスへの変換を行うと共に、その物理アドレスに応じてアクセス属性を決定する。アクセス属性は、物理アドレスへのREADアクセスの可否、WRITEアクセスの可否、命令実行の可否、キャッシュの可否に関する情報を含む。
プロセッサ110の仮想アドレス空間およびバス120の物理アドレス空間は、共に4GB(4096MB)とする。MMU111は、プロセッサ110からのメモリアクセス要求を受けて、1MB単位で仮想アドレスから物理アドレスへの変換を行うと共に、その物理アドレスに応じてアクセス属性を決定する。アクセス属性は、物理アドレスへのREADアクセスの可否、WRITEアクセスの可否、命令実行の可否、キャッシュの可否に関する情報を含む。
MMU111が無効である場合、仮想アドレスは、変換されずにそのまま物理アドレスとして扱われる。また、プロセッサ110からバス120へのアクセス属性は、READ可、WRITE可、実行可、キャッシュ不可に設定される。一方、MMU111が有効である場合、MMU111は、第二のレジスタ114によって設定されたページテーブルを参照し、参照したページテーブルの内容に基づいて、仮想アドレスから物理アドレスへの変換を行うと共にアクセス属性を決定する。
図2は、プロセッサ110からみたバス120のメモリマップ、すなわち物理アドレスのメモリマップである。物理アドレス「0x0000_0000」から「0x3FFF_FFFF」までの1GB空間に不揮発性メモリ130が、物理アドレス「0x4000_0000」から「0x7FFF_FFFF」までの1GB空間に揮発性メモリ140がマップされている。さらに、物理アドレス「0x8000_0000」から「0xBFFF_FFFF」までの1GB空間にペリフェラル群150がマップされている。
図2は、プロセッサ110からみたバス120のメモリマップ、すなわち物理アドレスのメモリマップである。物理アドレス「0x0000_0000」から「0x3FFF_FFFF」までの1GB空間に不揮発性メモリ130が、物理アドレス「0x4000_0000」から「0x7FFF_FFFF」までの1GB空間に揮発性メモリ140がマップされている。さらに、物理アドレス「0x8000_0000」から「0xBFFF_FFFF」までの1GB空間にペリフェラル群150がマップされている。
また、不揮発性メモリ130の先頭にはブートプログラム131が配置されており、続いてページテーブル132、アプリケーションプログラム133が配置されている。本実施形態では、ページテーブル132は、物理アドレス「0x0000_4000」から「0x0000_7FFF」までの空間に配置されている。したがって、第二のレジスタ114に物理アドレス「0x0000_4000」が設定されていれば、MMU111は、不揮発性メモリ130上のページテーブル132を参照することができる。
図3は、MMU111の動作を説明する図である。ページテーブル132は、仮想アドレスと物理アドレスとを対応付けるものである。上述したように、4GB(4096MB)のアドレス空間が1MBごとのセクションに分割される場合、ページテーブル132は、4096個のページテーブルエントリ(PTE)132aの配列からなる。各PTE132aは、それぞれページフレームの物理アドレスとアクセス属性とを保持する。
図3は、MMU111の動作を説明する図である。ページテーブル132は、仮想アドレスと物理アドレスとを対応付けるものである。上述したように、4GB(4096MB)のアドレス空間が1MBごとのセクションに分割される場合、ページテーブル132は、4096個のページテーブルエントリ(PTE)132aの配列からなる。各PTE132aは、それぞれページフレームの物理アドレスとアクセス属性とを保持する。
仮想アドレス0番地を先頭とする1MBの仮想アドレス空間(0x0000_0000〜0x000F_FFFF)へのアクセスでは、MMU111は、0番目のPTE(エントリ0)を参照する。エントリ0に保持された物理アドレスが「0x0000_0000」である場合、仮想アドレス「0x0000_0000」は、そのまま物理アドレス「0x0000_0000」に変換される。また、仮想アドレス「0x0000_1234」は、そのまま物理アドレス「0x0000_1234」に変換される。
また、これらの仮想アドレス0番地を先頭とする1MBの仮想アドレス空間(0x0000_0000〜0x000F_FFFF)へのアクセスのアクセス属性は、エントリ0に保持されたアクセス属性(RWXC)に従い決定される。つまり、図3に示す例では、READ可、WRITE可、命令実行可、キャッシュ可となる。
また、これらの仮想アドレス0番地を先頭とする1MBの仮想アドレス空間(0x0000_0000〜0x000F_FFFF)へのアクセスのアクセス属性は、エントリ0に保持されたアクセス属性(RWXC)に従い決定される。つまり、図3に示す例では、READ可、WRITE可、命令実行可、キャッシュ可となる。
同様に、仮想アドレス1MB番地を先頭とする1MBの仮想アドレス空間(0x0010_0000〜0x001F_FFFF)へのアクセスでは、1番目のページPTE(エントリ1)が参照される。そして、仮想アドレス4095MB番地を先頭とする1MBの仮想アドレス空間(0xFFF0_0000〜0xFFFF_FFFF)へのアクセスでは、4095番目のPTE(エントリ4095)が参照される。
なお、本実施形態では、ページテーブル132は、全てのPTE132aにおいて、仮想アドレスと物理アドレスとを一致させている。しかしながら、例えばエントリ0に保持された物理アドレスが「0x0010_0000」である場合には、仮想アドレス「0x0000_0000」は物理アドレス「0x0010_0000」に変換される。また、仮想アドレス「0x0000_1234」は物理アドレス「0x0000_1234」に変換される。このように、仮想アドレスのうち、上位はMMU111により変換され、下位は無変換となる。
なお、本実施形態では、ページテーブル132は、全てのPTE132aにおいて、仮想アドレスと物理アドレスとを一致させている。しかしながら、例えばエントリ0に保持された物理アドレスが「0x0010_0000」である場合には、仮想アドレス「0x0000_0000」は物理アドレス「0x0010_0000」に変換される。また、仮想アドレス「0x0000_1234」は物理アドレス「0x0000_1234」に変換される。このように、仮想アドレスのうち、上位はMMU111により変換され、下位は無変換となる。
次に、情報処理装置100においてアプリケーションプログラム133が実行されるまでの処理の流れについて、図4を参照しながら説明する。情報処理装置100は、プロセッサ110が必要なプログラムを読み出して実行することにより、図4に示す各処理を実現することができる。この図4の処理は、システム起動時、つまり情報処理装置100の電源投入時に実行が開始される。
まずS1において、プロセッサ110は、不揮発性メモリ130に配置されたブートプログラム131を読み出し、実行を開始する。この時点では、MMU111の第一のレジスタ113は「0」、すなわちMMU111は無効となっている。この状態で、プロセッサ110は、MMU111の第二のレジスタ114にページテーブル132の物理アドレスである「0x0000_4000」を設定する。
まずS1において、プロセッサ110は、不揮発性メモリ130に配置されたブートプログラム131を読み出し、実行を開始する。この時点では、MMU111の第一のレジスタ113は「0」、すなわちMMU111は無効となっている。この状態で、プロセッサ110は、MMU111の第二のレジスタ114にページテーブル132の物理アドレスである「0x0000_4000」を設定する。
次にS2において、プロセッサ110は、MMU111の第一のレジスタ113に「1」を設定する。つまり、MMU111を有効とする。そして、S3では、プロセッサ110は、アプリケーションプログラム133の先頭アドレスである「0x0000_8000」にジャンプすることでアプリケーションプログラム133の実行を開始する。S2においてMMU111が有効となっているため、MMU111は、メモリアクセス要求を受けて、第二のレジスタ114に設定されたページテーブル132を参照することができ、アプリケーションプログラム133を適切に実行することができる。また、アプリケーションプログラム113の実行においては、MMU111は、ページテーブル132の内容に基づく仮想アドレスから物理アドレスへの変換やアクセス権制御が可能となる。
図5は、ページテーブル132の具体的な内容を示す図である。本実施形態では、ページテーブル132は、上述したように、全てのPTE132aにおいて仮想アドレスと物理アドレスを一致させている。
図5は、ページテーブル132の具体的な内容を示す図である。本実施形態では、ページテーブル132は、上述したように、全てのPTE132aにおいて仮想アドレスと物理アドレスを一致させている。
そして、0番目から1023番目のPTE(仮想アドレス=物理アドレス「0x0000_0000」〜「0x3FFF_FFFF」、不揮発性メモリ130に対応)のアクセス属性は、READ、WRITE、命令実行、キャッシュ全て可である。また、1024番目から2047番目のPTE(仮想アドレス=物理アドレス「0x4000_0000」〜「0x7FFF_FFFF」、揮発性メモリ140に対応)のアクセス属性は、READ可、WRITE可、命令実行不可、キャッシュ可である。
また、2048番目から3071番目のPTE(仮想アドレス=物理アドレス「0x8000_0000」〜「0xBFFF_FFFF」、ペリフェラル群150に対応)のアクセス属性は、READ可、WRITE可、命令実行不可、キャッシュ不可である。さらに、3072番目から4095番目のPTE(仮想アドレス=物理アドレス「0xC000_0000」〜「0xFFFF_FFFF」、未使用領域に対応)のアクセス属性は、READ、WRITE、命令実行、キャッシュ全て不可である。
この図5に示すページテーブル132により、不揮発性メモリ130および揮発性メモリ140へのアクセスはキャッシュ可、ペリフェラル群150へのアクセスはキャッシュ不可となる。また、未使用領域へのアクセスは不可となる。このように、アプリケーションプログラム133の実行に適したアクセス属性を設定することができる。
また、2048番目から3071番目のPTE(仮想アドレス=物理アドレス「0x8000_0000」〜「0xBFFF_FFFF」、ペリフェラル群150に対応)のアクセス属性は、READ可、WRITE可、命令実行不可、キャッシュ不可である。さらに、3072番目から4095番目のPTE(仮想アドレス=物理アドレス「0xC000_0000」〜「0xFFFF_FFFF」、未使用領域に対応)のアクセス属性は、READ、WRITE、命令実行、キャッシュ全て不可である。
この図5に示すページテーブル132により、不揮発性メモリ130および揮発性メモリ140へのアクセスはキャッシュ可、ペリフェラル群150へのアクセスはキャッシュ不可となる。また、未使用領域へのアクセスは不可となる。このように、アプリケーションプログラム133の実行に適したアクセス属性を設定することができる。
次に、ページテーブル132の作成方法について説明する。
ページテーブル132は、図5に示すように多数のPTE132aからなるデータ構造を有するため、コンピュータがプログラムを実行することで作成される。また、本実施形態では、ページテーブル132は、情報処理装置100の不揮発性メモリ130に配置される。これは、予めPC等の汎用コンピュータが、プログラムを実行することでページテーブルを作成し、作成したページテーブルを情報処理装置100の不揮発性メモリ130に配置することで実現され得る。以下、ページテーブル132を作成するためのプログラム(以下、「ページテーブル作成プログラム」という。)の手順について説明する。
ページテーブル132は、図5に示すように多数のPTE132aからなるデータ構造を有するため、コンピュータがプログラムを実行することで作成される。また、本実施形態では、ページテーブル132は、情報処理装置100の不揮発性メモリ130に配置される。これは、予めPC等の汎用コンピュータが、プログラムを実行することでページテーブルを作成し、作成したページテーブルを情報処理装置100の不揮発性メモリ130に配置することで実現され得る。以下、ページテーブル132を作成するためのプログラム(以下、「ページテーブル作成プログラム」という。)の手順について説明する。
汎用コンピュータは、以下の(1)〜(7)の手順を、エントリ番号に対応するカウント値i=0からi=4095について繰り返し実行する。
(1)汎用コンピュータは、エントリiに対応する仮想アドレス空間の先頭アドレスVAiを算出する。具体的には、VAi=i*0x0010_0000である。
(2)汎用コンピュータは、エントリiの物理アドレスに、手順(1)において算出したアドレスVAiを格納する。
(3)汎用コンピュータは、アドレスVAiが、「0x0000_0000」以上「0x4000_0000」未満の範囲A内であるか否かを判定する。ここで、範囲Aとは、図3に示すように、不揮発性メモリ130がマップされた空間である。そして、汎用コンピュータは、アドレスVAiが範囲A内であると判定すると、エントリiのアクセス属性に「RWXC(READ、WRITE、命令実行、キャッシュ全て可)」を格納し、手順(7)に進む。一方、汎用コンピュータは、アドレスVAiが範囲A内ではないと判定すると、手順(4)に進む。
(1)汎用コンピュータは、エントリiに対応する仮想アドレス空間の先頭アドレスVAiを算出する。具体的には、VAi=i*0x0010_0000である。
(2)汎用コンピュータは、エントリiの物理アドレスに、手順(1)において算出したアドレスVAiを格納する。
(3)汎用コンピュータは、アドレスVAiが、「0x0000_0000」以上「0x4000_0000」未満の範囲A内であるか否かを判定する。ここで、範囲Aとは、図3に示すように、不揮発性メモリ130がマップされた空間である。そして、汎用コンピュータは、アドレスVAiが範囲A内であると判定すると、エントリiのアクセス属性に「RWXC(READ、WRITE、命令実行、キャッシュ全て可)」を格納し、手順(7)に進む。一方、汎用コンピュータは、アドレスVAiが範囲A内ではないと判定すると、手順(4)に進む。
(4)汎用コンピュータは、アドレスVAiが、「0x4000_0000」以上「0x8000_0000」未満の範囲B内であるか否かを判定する。ここで、範囲Bとは、図3に示すように、揮発性メモリ140がマップされた空間である。そして、汎用コンピュータは、アドレスVAiが範囲B内であると判定すると、エントリiのアクセス属性に「RW−C(READ可、WRITE可、命令実行不可、キャッシュ可)」を格納し、手順(7)に進む。一方、汎用コンピュータは、アドレスVAiが範囲B内ではないと判定すると、手順(5)に進む。
(5)汎用コンピュータは、アドレスVAiが、「0x8000_0000」以上「0xC000_0000」未満の範囲C内であるか否かを判定する。ここで、範囲Cとは、図3に示すように、ペリフェラル群150がマップされた空間である。そして、汎用コンピュータは、アドレスVAiが範囲C内であると判定すると、エントリiのアクセス属性に「RW−−(READ可、WRITE可、命令実行不可、キャッシュ不可)」を格納し、手順(7)に進む。一方、汎用コンピュータは、アドレスVAiが範囲C内ではないと判定すると、手順(6)に進む
(5)汎用コンピュータは、アドレスVAiが、「0x8000_0000」以上「0xC000_0000」未満の範囲C内であるか否かを判定する。ここで、範囲Cとは、図3に示すように、ペリフェラル群150がマップされた空間である。そして、汎用コンピュータは、アドレスVAiが範囲C内であると判定すると、エントリiのアクセス属性に「RW−−(READ可、WRITE可、命令実行不可、キャッシュ不可)」を格納し、手順(7)に進む。一方、汎用コンピュータは、アドレスVAiが範囲C内ではないと判定すると、手順(6)に進む
(6)汎用コンピュータは、エントリiのアクセス属性に「−−−−(READ、WRITE、命令実行、キャッシュ全て不可)」を格納し、手順(7)に進む。
(7)汎用コンピュータは、エントリiの設定を完了する。
汎用コンピュータは、エントリ0からエントリ4095までの設定を完了すると、4096個のPTE132aからなるページテーブル132を、情報処理装置100の不揮発性メモリ130に配置し、ページテーブル作成処理を終了する。
以上のように、MMUは、プロセッサが発行するメモリアクセス要求を処理するハードウェアであり、仮想アドレスから物理アドレスへの変換、アクセス権制御、キャッシュ制御などの機能を持つ。また、MMUは、メモリ上に配置されたページテーブルを参照して上記の動作を実現する。
(7)汎用コンピュータは、エントリiの設定を完了する。
汎用コンピュータは、エントリ0からエントリ4095までの設定を完了すると、4096個のPTE132aからなるページテーブル132を、情報処理装置100の不揮発性メモリ130に配置し、ページテーブル作成処理を終了する。
以上のように、MMUは、プロセッサが発行するメモリアクセス要求を処理するハードウェアであり、仮想アドレスから物理アドレスへの変換、アクセス権制御、キャッシュ制御などの機能を持つ。また、MMUは、メモリ上に配置されたページテーブルを参照して上記の動作を実現する。
MMUの代表的な利用方法に仮想記憶がある。仮想記憶は、ソフトウェアによるメモリ管理の一手法であり、ページテーブルの内容を適切に変更することで、不連続な物理メモリ領域を連続な仮想メモリ領域として扱うことを可能とする。Windows(登録商標)やLinux(登録商標)といった汎用コンピュータ向けオペレーティングシステム(OS)の多くが仮想記憶を採用しており、これらのOSはMMUを搭載したプロセッサと合わせて用いられる。近年では、組み込みコンピュータに汎用コンピュータ向けOSを搭載する事例も多く、組み込みコンピュータ向けプロセッサでも、特に高性能なプロセッサを中心に、MMUを搭載することが一般的になっている。
MMUは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担うため、たとえ仮想記憶を採用せずとも、MMUを適切な設定で有効化する必要がある。しかしながら、MMUを有効化するためには、メモリ上にページテーブルを作成する処理と、作成されたページテーブルを参照するようMMUを設定する処理とが必要である。
MMUは、仮想アドレスから物理アドレスへの変換だけでなく、アクセス権制御、キャッシュ制御などをも担うため、たとえ仮想記憶を採用せずとも、MMUを適切な設定で有効化する必要がある。しかしながら、MMUを有効化するためには、メモリ上にページテーブルを作成する処理と、作成されたページテーブルを参照するようMMUを設定する処理とが必要である。
不揮発性メモリ130にページテーブル132を配置しない従来の手法では、ページテーブル作成プログラムは、ブートプログラム131に組み込まれて実行されることになる。具体的には、ブートプログラム131の動作を説明した図4のフローチャートにおいて、S1の前にページテーブル作成プログラムが実行され、揮発性メモリ140上にページテーブルが作成されることになる。そして、揮発性メモリ140上にページテーブルが作成された後、S1に相当する処理として、第二のレジスタ114に揮発性メモリ140上のページテーブルの物理アドレスを設定することになる。
このように、MMUを有効化するまでの間にページテーブルを作成する処理が必要となると、それだけ起動時間が長くなってしまう。
このように、MMUを有効化するまでの間にページテーブルを作成する処理が必要となると、それだけ起動時間が長くなってしまう。
これに対して、本実施形態では、情報処理装置100は、仮想アドレスと物理アドレスとを対応付けるページテーブル132が配置された不揮発性メモリ130を備える。そして、情報処理装置100は、システム起動時に、MMU111がメモリアクセス要求を受けて不揮発性メモリ130に配置されたページテーブル132を参照するように、MMU111を設定する。具体的には、情報処理装置100は、第二のレジスタ114に不揮発性メモリ130上のページテーブル132の物理アドレスを設定することで、MMU111が不揮発性メモリ130に配置されたページテーブル132を参照するようにする。
このように、情報処理装置100は、システム起動時にレジスタ設定するだけで、MMU111を有効化することができる。つまり、情報処理装置100は、メモリ上にページテーブルを作成する処理を実施することなくMMU111を有効化することができる。したがって、上記従来の手法と比較して、アプリケーションプログラム133の開始までに要する時間を短縮することができる。本実施形態における情報処理装置100は、組み込み機器の一部として機能することができるため、上記組み込み機器が撮像装置である場合、電源投入から撮像開始までの時間を短縮し、起動の早い撮像装置を実現することができる。
このように、情報処理装置100は、システム起動時にレジスタ設定するだけで、MMU111を有効化することができる。つまり、情報処理装置100は、メモリ上にページテーブルを作成する処理を実施することなくMMU111を有効化することができる。したがって、上記従来の手法と比較して、アプリケーションプログラム133の開始までに要する時間を短縮することができる。本実施形態における情報処理装置100は、組み込み機器の一部として機能することができるため、上記組み込み機器が撮像装置である場合、電源投入から撮像開始までの時間を短縮し、起動の早い撮像装置を実現することができる。
また、不揮発性メモリ130は、NOR型フラッシュメモリにより構成することができる。この場合、別途コントローラ等を設けることなくバイト単位でのアクセスを高速で行うことが可能であるため、容易且つ適切にMMU111を動作させることができる。
さらに、情報処理装置100は、揮発性メモリ140を備えており、MMU111を有効化した後、不揮発性メモリ130に配置されたページテーブル132をもとに、揮発性メモリ140にページテーブルを作成してもよい。このとき、情報処理装置100は、MMU111が揮発性メモリ140に配置されたページテーブルを参照するように、MMU111の設定を変更する。つまり、情報処理装置100は、MMU111を有効化した後、不揮発性メモリ130に配置したページテーブル132を揮発性メモリ140にコピーし、第二のレジスタ114に、揮発性メモリ140上のページテーブルの物理アドレスを設定する。このように、揮発性メモリ140にページテーブルが配置されることにより、ページテーブルの内容の書き換えを高速で行うことが可能となり、MMU111をより適切に動作させることができるようになる。
さらに、情報処理装置100は、揮発性メモリ140を備えており、MMU111を有効化した後、不揮発性メモリ130に配置されたページテーブル132をもとに、揮発性メモリ140にページテーブルを作成してもよい。このとき、情報処理装置100は、MMU111が揮発性メモリ140に配置されたページテーブルを参照するように、MMU111の設定を変更する。つまり、情報処理装置100は、MMU111を有効化した後、不揮発性メモリ130に配置したページテーブル132を揮発性メモリ140にコピーし、第二のレジスタ114に、揮発性メモリ140上のページテーブルの物理アドレスを設定する。このように、揮発性メモリ140にページテーブルが配置されることにより、ページテーブルの内容の書き換えを高速で行うことが可能となり、MMU111をより適切に動作させることができるようになる。
ところで、ページテーブルは、図5に示すような1段のページテーブルであるとメモリ容量が大きくなるため、多段のページテーブルが用いられることがある。図6に2段のページテーブルの例を示す。
図6(a)に示すように、ページテーブル132が、複数のページディレクトリエントリ(PDE)の配列からなるページディレクトリテーブル132Dと、複数のPTEの配列からなるページテーブル132Eとによって構成されているものとする。この場合、システム起動時、第二のレジスタ114には、不揮発性メモリ130上のページディレクトリテーブル132Dの物理アドレスが設定される。ここで、ページディレクトリテーブル132Dの物理アドレスは「ADDR1」とする。また、ページディレクトリテーブル132DのPDEには、ページテーブル132Eの物理アドレスが格納されている。ここで、ページテーブル132Eの物理アドレスは「ADDR2」とする。
図6(a)に示すように、ページテーブル132が、複数のページディレクトリエントリ(PDE)の配列からなるページディレクトリテーブル132Dと、複数のPTEの配列からなるページテーブル132Eとによって構成されているものとする。この場合、システム起動時、第二のレジスタ114には、不揮発性メモリ130上のページディレクトリテーブル132Dの物理アドレスが設定される。ここで、ページディレクトリテーブル132Dの物理アドレスは「ADDR1」とする。また、ページディレクトリテーブル132DのPDEには、ページテーブル132Eの物理アドレスが格納されている。ここで、ページテーブル132Eの物理アドレスは「ADDR2」とする。
情報処理装置100は、MMU111を有効化した後、図6(a)に示すような多段のページテーブル132をもとに揮発性メモリ140上にページテーブルを作成する場合、以下の処理を行う。
まず、情報処理装置100は、不揮発性メモリ130上のページテーブル132を、図6(b)に示すように、揮発性メモリ140上のページテーブル142としてコピーする。このとき、ページディレクトリテーブル132Dはページディレクトリテーブル142D、ページテーブル132Eはページテーブル142Eとしてコピーされる。
次に、情報処理装置100は、ページディレクトリテーブル142DのPDEに格納されている物理アドレスを、不揮発性メモリ130上の物理アドレス「ADDR2」から揮発性メモリ140上の物理アドレスへ書き換える。図6(b)において、揮発性メモリ140上のページテーブル142Eの物理アドレスは「ADDR4」としている。このようにして、情報処理装置100は、不揮発性メモリ130上のページテーブル132をもとに、揮発性メモリ140上にページテーブル142を作成する。
まず、情報処理装置100は、不揮発性メモリ130上のページテーブル132を、図6(b)に示すように、揮発性メモリ140上のページテーブル142としてコピーする。このとき、ページディレクトリテーブル132Dはページディレクトリテーブル142D、ページテーブル132Eはページテーブル142Eとしてコピーされる。
次に、情報処理装置100は、ページディレクトリテーブル142DのPDEに格納されている物理アドレスを、不揮発性メモリ130上の物理アドレス「ADDR2」から揮発性メモリ140上の物理アドレスへ書き換える。図6(b)において、揮発性メモリ140上のページテーブル142Eの物理アドレスは「ADDR4」としている。このようにして、情報処理装置100は、不揮発性メモリ130上のページテーブル132をもとに、揮発性メモリ140上にページテーブル142を作成する。
また、情報処理装置100は、第二のレジスタ114に設定されている不揮発性メモリ130上のページディレクトリテーブル132Dの物理アドレス「ADDR1」を、揮発性メモリ140上のページディレクトリテーブル142Dの物理アドレスへ変更する。図6(b)において、揮発性メモリ140上のページディレクトリテーブル142Dの物理アドレスは「ADDR3」としている。このようにして、情報処理装置100は、MMU111がメモリアクセス要求を受けて揮発性メモリ140に配置されたページテーブル142を参照するように、MMU111の設定を変更する。
このように、ページテーブル132が多段のページテーブルである場合、整合をとりつつページテーブル132を揮発性メモリ140にコピーする。これにより、MMU111は、揮発性メモリ140上のページテーブル142を参照して適切に動作することができるようになる。なお、揮発性メモリ140上へのページテーブルの作成タイミングは、MMU111が有効化した後、ページテーブルの内容の書き換えが必要となったタイミングであってもよいし、システム起動後、予め設定した所定時間が経過したタイミングであってもよい。
このように、ページテーブル132が多段のページテーブルである場合、整合をとりつつページテーブル132を揮発性メモリ140にコピーする。これにより、MMU111は、揮発性メモリ140上のページテーブル142を参照して適切に動作することができるようになる。なお、揮発性メモリ140上へのページテーブルの作成タイミングは、MMU111が有効化した後、ページテーブルの内容の書き換えが必要となったタイミングであってもよいし、システム起動後、予め設定した所定時間が経過したタイミングであってもよい。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…情報処理装置(組み込みコンピュータ)、110…プロセッサ、111…MMU、112…キャッシュ、113…ENABLEレジスタ(第一のレジスタ)、114…PAGETABLE_ADDRESSレジスタ(第二のレジスタ)、130…不揮発性メモリ、140…揮発性メモリ
Claims (7)
- 仮想アドレスと物理アドレスとを対応付けるページテーブルが配置された不揮発性メモリと、
メモリアクセス要求を受けたメモリ管理ユニットが前記不揮発性メモリに配置された前記ページテーブルを参照するように、前記メモリ管理ユニットを設定する設定手段と、を備えることを特徴とする情報処理装置。 - 組み込み機器の一部として機能することを特徴とする請求項1に記載の情報処理装置。
- 前記不揮発性メモリは、NOR型フラッシュメモリであることを特徴とする請求項1または2に記載の情報処理装置。
- 揮発性メモリと、
前記不揮発性メモリに配置された前記ページテーブルが多段のページテーブルである場合、当該ページテーブルをもとに、前記揮発性メモリにページテーブルを作成する作成手段と、
メモリアクセス要求を受けた前記メモリ管理ユニットが前記揮発性メモリに作成された前記ページテーブルを参照するように、前記設定手段による前記メモリ管理ユニットの設定を変更する変更手段と、をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。 - 撮像手段と、
請求項1から4のいずれか1項に記載の情報処理装置と、を備えることを特徴とする撮像装置。 - メモリアクセス要求を受けたメモリ管理ユニットが不揮発性メモリに配置された仮想アドレスと物理アドレスとを対応付けるページテーブルを参照するように、前記メモリ管理ユニットを設定するステップと、
前記メモリ管理ユニットが、前記メモリアクセス要求を受けて、設定された前記ページテーブルを参照するステップと、を含むことを特徴とする情報処理方法。 - コンピュータを、請求項1から4のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016019643A JP2017138823A (ja) | 2016-02-04 | 2016-02-04 | 情報処理装置、情報処理方法および撮像装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016019643A JP2017138823A (ja) | 2016-02-04 | 2016-02-04 | 情報処理装置、情報処理方法および撮像装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017138823A true JP2017138823A (ja) | 2017-08-10 |
Family
ID=59566810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016019643A Pending JP2017138823A (ja) | 2016-02-04 | 2016-02-04 | 情報処理装置、情報処理方法および撮像装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017138823A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019200473A (ja) * | 2018-05-14 | 2019-11-21 | 富士通株式会社 | メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法 |
JP2022548888A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | データが格納されているメモリデバイスを特定するための格納されたメタデータに対するアクセス |
US11868268B2 (en) | 2019-09-17 | 2024-01-09 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11934319B2 (en) | 2019-09-17 | 2024-03-19 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
-
2016
- 2016-02-04 JP JP2016019643A patent/JP2017138823A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019200473A (ja) * | 2018-05-14 | 2019-11-21 | 富士通株式会社 | メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法 |
JP7132491B2 (ja) | 2018-05-14 | 2022-09-07 | 富士通株式会社 | メモリ制御装置、メモリ制御プログラムおよびメモリ制御方法 |
JP2022548888A (ja) * | 2019-09-17 | 2022-11-22 | マイクロン テクノロジー,インク. | データが格納されているメモリデバイスを特定するための格納されたメタデータに対するアクセス |
US11650742B2 (en) | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11868268B2 (en) | 2019-09-17 | 2024-01-09 | Micron Technology, Inc. | Mapping non-typed memory access to typed memory access |
US11934319B2 (en) | 2019-09-17 | 2024-03-19 | Micron Technology, Inc. | Memory system for binding data to a memory namespace |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3764237B1 (en) | System startup method and apparatus, electronic device and storage medium | |
JP5602638B2 (ja) | フォーマット制御を有する動的アドレス変換 | |
JP5373817B2 (ja) | フェッチ保護を有する動的アドレス変換 | |
US9471507B2 (en) | System and device for page replacement control between virtual and real memory spaces | |
KR100944142B1 (ko) | 변환 색인 버퍼 엔트리를 최적화하는 방법 및 시스템 | |
US9405703B2 (en) | Translation lookaside buffer | |
US10331457B2 (en) | Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region | |
JP6345231B2 (ja) | 外部からプログラム可能なメモリ管理ユニット | |
JP2017138823A (ja) | 情報処理装置、情報処理方法および撮像装置 | |
US11119939B2 (en) | Methods and systems for memory management of kernel and user spaces | |
JP2011509471A (ja) | フレーム管理を有する動的アドレス変換 | |
JP2008108257A (ja) | 不揮発性記憶装置 | |
JP2010165251A (ja) | 情報処理装置及びプロセッサ並びに情報処理方法 | |
US8892810B2 (en) | Semiconductor device and memory protection method | |
CN106095416B (zh) | 一种在应用程序中的跳转处理方法、装置及智能终端 | |
JP2007048296A (ja) | 複数のアドレス・キャッシュ・エントリーを無効にする方法、装置およびシステム | |
JP2013536504A (ja) | アラインメント制御 | |
US20140108719A1 (en) | Information processing apparatus | |
EP2946297A2 (en) | Overlap checking for a translation lookaside buffer (tlb) | |
US8543791B2 (en) | Apparatus and method of reducing page fault rate in virtual memory system | |
JP2009169706A (ja) | メモリ制御装置 | |
CN107025180B (zh) | 内存管理方法和装置 | |
US20140181379A1 (en) | File Reading Method, Storage Device And Electronic Device | |
KR20110078171A (ko) | 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법 | |
US11307795B2 (en) | Electronic processing devices and memory control methods thereof |