JP5579003B2 - アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法 - Google Patents

アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法 Download PDF

Info

Publication number
JP5579003B2
JP5579003B2 JP2010212435A JP2010212435A JP5579003B2 JP 5579003 B2 JP5579003 B2 JP 5579003B2 JP 2010212435 A JP2010212435 A JP 2010212435A JP 2010212435 A JP2010212435 A JP 2010212435A JP 5579003 B2 JP5579003 B2 JP 5579003B2
Authority
JP
Japan
Prior art keywords
address
memory
physical
conversion
information
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.)
Active
Application number
JP2010212435A
Other languages
English (en)
Other versions
JP2012068840A (ja
Inventor
実 中出
信一 戸田
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 Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
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
Priority to JP2010212435A priority Critical patent/JP5579003B2/ja
Application filed by Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to US13/806,498 priority patent/US9009579B2/en
Priority to CN201180031504.4A priority patent/CN102959526B/zh
Priority to KR1020127033474A priority patent/KR101449231B1/ko
Priority to EP11826615.4A priority patent/EP2620875B1/en
Priority to PCT/JP2011/063695 priority patent/WO2012039169A1/ja
Priority to ES11826615.4T priority patent/ES2662127T3/es
Publication of JP2012068840A publication Critical patent/JP2012068840A/ja
Application granted granted Critical
Publication of JP5579003B2 publication Critical patent/JP5579003B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Description

本発明は、アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法に関するものである。
RAM(Random Access Memory)等のページ単位毎(例えば、数kバイト毎)に区切られた物理メモリへCPU(Central Processing Unit:中央処理演算装置)がアクセスするために、仮想アドレスが用いられる場合がある。仮想アドレスとは、不連続な物理メモリの領域を仮想的に連続とした仮想メモリのアドレスであり、物理アドレスとは異なる。そのため、CPUが仮想アドレスを用いる場合、メモリ管理装置(Memory Management Unit、以下、「MMU」という。)が、仮想アドレスを物理アドレスに変換することによって、CPUによる物理メモリへのアクセスを可能としている。
MMUは、物理アドレスを仮想アドレスに変換するための変換テーブルであるページテーブルを、RAMからページ索引バッファ(Translation Look-aside Buffer、以下、「TLB」という。)に読み込み(ロードし)、該ページテーブルを用いてCPUからアクセス要求があった仮想アドレスを物理アドレスに変換している。
ページテーブルは、図6の模式図に示すように、物理メモリ50のメモリページ毎にアクセスするためのメモリページエントリが設けられ、各メモリページエントリには、対応するメモリページの仮想アドレス及び物理アドレスが記述されている。MMU52に設けられたTLB54には、物理メモリ50に記憶されているページテーブル情報から必要なモリページエントリが読み込まれ、記憶される。
また、メモリページエントリには、「読み」、「書き」、及び「実行」等を示すメモリ保護属性が記述されている。特許文献1に記載の技術は、MMUに読み込まれるページテーブルのメモリページエントリのメモリ保護属性の保護ビットに値を設定することによって、あるタスクしか使用しない大域変数を他のタスクが間違って書き換えてしまい、タスクが暴走してしまうことを防ぐことを可能とする技術である。
特開平10−289158号公報
一方、図6の模式図に示されるMMU52のTLB54に読み込まれたページテーブルの破損、及びMMU52の故障等により、CPU56がMMU52を介して物理メモリ50へ正常にアクセスできない場合には、CPU56の停止(ハングアップ)、暴走、又は接続されている他の装置への出力値の突変等、CPU56の動作が異常となる可能性がある。
本発明は、このような事情に鑑みてなされたものであって、メモリ管理装置に設けられたバッファに読み込まれた変換テーブルを用いて、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できるアドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法を提供することを目的とする。
上記課題を解決するために、本発明のアドレス変換検査装置は以下の手段を採用する。
すなわち、本発明に係るアドレス変換検査装置は、物理メモリのアドレスである物理アドレスと仮想メモリのアドレスである仮想アドレスとを変換するための変換テーブルに基づいて、前記仮想アドレスと前記物理アドレスとを変換するメモリ管理装置と、前記メモリ管理装置に設けられ、前記変換テーブルを示す変換テーブル情報を記憶するバッファと、前記メモリ管理装置外に設けられ、前記変換テーブル情報、及び前記変換テーブル情報に付加され、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常の有無を検出するための異常検出情報を記憶している記憶手段と、前記異常検出情報に基づいて、前記異常の有無を検出する異常検出手段と、を備える。
本発明によれば、メモリ管理装置によって、物理メモリのアドレスである物理アドレスと仮想メモリのアドレスである仮想アドレスとを変換するための変換テーブルに基づいて、仮想アドレスと物理アドレスとが変換される。メモリ管理装置に設けられたバッファには、上記変換に用いられる変換テーブルを示す変換テーブル情報が記憶される。
物理メモリとは、例えばRAM等であり、仮想メモリとは、不連続な物理メモリの領域を仮想的に連続としたメモリである。そして、中央処理演算装置が仮想アドレスを用いる場合は、仮想アドレスを用いて物理メモリに直接アクセスできないため、メモリ管理装置によって変換テーブルに基づいて仮想アドレスと物理アドレスとが変換される。この変換によって、中央処理演算装置は物理メモリにアクセス可能とされている。
ところで、変換テーブル情報は、メモリ管理装置に設けられているバッファに読み込まれる前には、メモリ管理装置外に設けられている記憶手段に記憶されている。該記憶手段には、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常の有無を検出するための異常検出情報が、変換テーブル情報に付加されて記憶されている。
そして、異常検出手段によって、上記異常検出情報に基づいて、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常の有無が検出される。
このように、本発明は、変換テーブル情報に付加されている異常検出情報を用いて、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常の有無を検出するので、メモリ管理装置に設けられたバッファに読み込まれた変換テーブルを用いて、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
また、本発明のアドレス変換検査装置は、前記異常検出情報が、前記変換テーブル情報により示される前記変換テーブルに基づいて生成された、巡回冗長検査(Cyclic Redundancy Check)に用いるCRC値であり、前記異常検出手段が、前記バッファに前記変換テーブル情報と共に異常検出情報が読み込まれる前に、読み込みの対象となる前記変換テーブル情報により示される前記変換テーブルに基づいて新たなCRC値を生成し、前記異常検出情報としてのCRC値と該新たなCRC値との異同を検出してもよい。
本発明によれば、異常検出情報は、変換テーブル情報により示される前記変換テーブルに基づいて生成された、巡回冗長検査に用いるCRC値である。そして、異常検出手段は、バッファに変換テーブル情報と共に異常検出情報が読み込まれる前に、読み込みの対象となる変換テーブル情報により示される変換テーブルに基づいて新たなCRC値を生成し、異常検出情報としてのCRC値と該新たなCRC値との異同を検出する。
これにより、本発明は、バッファに読み込まれた変換テーブルの破損の有無が検出できるので、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
また、本発明のアドレス変換検査装置は、前記異常検出情報を前記変換テーブルに対してページ単位で付加してもよい。
本発明によれば、一般的に、物理メモリはページ単位に区切られ、変換テーブルは、中央処理演算装置がページ単位で物理メモリにアクセスできるように生成されているため、異常検出情報が、変換テーブルに対してページ単位で付加される。
これにより、本発明は、ページ単位で変換テーブルの破損の有無を検査することができる。
また、本発明のアドレス変換検査装置は、前記物理メモリの予め定められた物理アドレスに予め定められた値が記憶され、前記異常検出情報を、前記予め定められた物理アドレスと前記仮想アドレスとを変換するための情報とし、前記異常検出手段が、前記バッファに読み込まれた前記異常検出情報を用いて、前記予め定められた物理アドレスに対応する前記仮想アドレスによって、前記物理メモリに記憶されている値を読み出し、読み出した該値と前記予め定められた値との異同を検出してもよい。
本発明によれば、物理メモリは、予め定められた物理アドレスに予め定められた値が記憶され、異常検出情報は、上記予め定められた物理アドレスと仮想アドレスとを変換するための情報とされている。
そして、異常検出手段によって、バッファに読み込まれた異常検出情報を用いて、予め定められた物理アドレスに対応する仮想アドレスによって、物理メモリに記憶されている値が読み出され、読み出された該値と予め定められた値との異同が検出される。すなわち、メモリ管理装置が入力された仮想アドレスを正しく物理アドレスに変換できる場合は、読み出された値と予め定められた値とが同じとなる一方、メモリ管理装置が入力された仮想アドレスを正しく物理アドレスに変換できない場合は、読み出された値と予め定められた値とが異なる。
これにより、本発明は、メモリ管理装置による仮想メモリと物理メモリとの変換の異常の有無を検出できるので、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
また、上記課題を解決するために、本発明の中央処理演算装置は以下の手段を採用する。
すなわち、本発明に係る中央処理演算装置は、上記記載のアドレス変換検査装置を備えた中央処理演算装置であって、前記アドレス変換検査装置が備える前記異常検出手段によって、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常が検出された場合に、実行中のプログラムを停止させる。
本発明によれば、中央処理演算装置は、上記記載のアドレス変換検査装置を備えている。そして、中央処理演算装置は、アドレス変換検査装置が備える異常検出手段によって、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常が検出された場合に、実行中のプログラムを停止させる。
これにより、本発明は、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常を原因として、中央処理演算装置の動作が異常となること防止することができる。
さらに、上記課題を解決するために、本発明のアドレス変換検査方法は以下の手段を採用する。
すなわち、本発明に係るアドレス変換検査方法は、物理メモリのアドレスである物理アドレスと仮想メモリのアドレスである仮想アドレスとを変換するための変換テーブルを示す変換テーブル情報を外部の記憶手段からバッファへ記憶し、該バッファに記憶した変換テーブル情報に基づいて、前記仮想アドレスと前記物理アドレスとを変換するメモリ管理装置にアクセスする中央処理演算装置のアドレス変換検査方法であって、前記変換テーブル情報に付加され、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常の有無を検出するための異常検出情報に基づいて、前記異常の有無を検出する。
本発明によれば、変換テーブル情報に付加されている異常検出情報を用いて、メモリ管理装置による仮想アドレスと物理アドレスとの変換の異常の有無を検出するので、メモリ管理装置に設けられたバッファに読み込まれた変換テーブルを用いて、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
本発明によれば、メモリ管理装置に設けられたバッファに読み込まれた変換テーブルを用いて、中央処理演算装置が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる、という優れた効果を有する。
本発明の第1実施形態に係る情報処理装置の電気系の要部構成を示す図である。 本発明の第1実施形態に係るRAMに記憶されているページテーブル情報及び異常検出情報の構成を示す模式図である。 本発明の第1実施形態に係るアドレス変換検査プログラムの処理の流れを示すフローチャートである。 本発明の第2実施形態に係るRAMに記憶されているページテーブル情報及び異常検出情報の構成を示す模式図である。 本発明の第2実施形態に係るアドレス変換検査プログラムの処理の流れを示すフローチャートである。 従来のMMUによる処理の説明に要する模式図である。
以下に、本発明に係るアドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法の一実施形態について、図面を参照して説明する。
〔第1実施形態〕
以下、本発明の第1実施形態について説明する。
図1は、本実施形態に係る情報処理装置10の電気的構成を示すブロック図である。
情報処理装置10は、情報処理装置10全体の動作を司るCPU12、CPU12による各種プログラムの実行時のワークエリア等として用いられる物理メモリであるRAM14、各種プログラムや各種情報(データ)等が予め記憶されたROM(Read Only Memory)16、各種プログラム及び各種情報を記憶する記憶手段としてのHDD(Hard Disk Drive)18を備えている。なお、記憶手段としては、HDD18に限らず、フラッシュROM等、データを記憶できるものであれば他の記憶手段を用いてもよい。
CPU12は、プログラムを実行するためのプログラム実行部22、及び後述するCPU例外(ページフォルト)通知が入力された場合に、実行しているプログラムの停止処理を行う例外処理部24を備えている。
また、CPU12は、仮想アドレスと物理アドレスとを変換するための変換テーブル(以下、「ページテーブル」という。)に基づいて、CPU12から出力される仮想アドレスを物理アドレスに変換するMMU20に内部バス40を介して接続されている。
ページテーブルは、図2に示すように、物理メモリであるRAM14のページ単位毎(メモリページ♯1〜♯N(Nは整数))に設けられたメモリページエントリ(メモリページ♯1エントリ〜メモリページ♯Nエントリ)を複数含んでいる。なお、メモリページエントリは、対応するメモリページの仮想アドレス、物理アドレス、並びに「読み」、「書き」、「実行」、及び全ての権限を持つユーザのアクセスのみを受け付ける「スーパーユーザモード」等を示すメモリ保護属性が記述されている。
MMU20は、TLB26、アドレス変換部28、メモリ保護部30を備えている。
TLB26は、ページテーブルを示すページテーブル情報を記憶する。より具体的には、TLB26は、RAM14に記憶されているページテーブル情報からCPU12で実行されるプログラムに応じて必要とされるメモリページエントリを読み込み、記憶する。
アドレス変換部28は、TLB26に読み込まれたページテーブル情報を用いて仮想アドレスと物理アドレスとの変換処理を行う。
メモリ保護部30は、アドレス変換部28によって仮想アドレスから変換された物理アドレスでは、物理メモリにアクセスできない不正アクセスの有無を検出し、不正アクセスを検出した場合に、不正アクセスであることを示す信号であるCPU例外通知をCPU12へ出力する。
なお、ページテーブル情報は、予めHDD18に記憶されており、情報処理装置10の動作が開始されると、HDD18からRAM14に送信され、記憶される。そして、RAM14に記憶されたページテーブル情報は、CPU12で実行されるプログラムに応じてTLB26に読み込まれる。
また、情報処理装置10は、キーボード及びマウス等から構成され、各種操作の入力を受け付ける操作入力部32、例えば液晶ディスプレイ装置等の画像表示部34を備えている。なお、操作入力部32は、キーボード及びマウス等に限らず、プッシュボタン等、情報処理装置10に対する操作の入力を受け付けるものであれば、他の入力装置であってもよい。また、画像表示部34は、液晶ディスプレイ等に限らず、LED(Light Emitting Diode)等情報処理装置10を使用するユーザに種々の情報を報知できるものであれば、他の表示装置であってもよい。
さらに、情報処理装置10は、通信回線36を介して他の情報処理装置や、情報処理装置10によって制御される他の装置等の外部装置と接続され、該外部装置との各種情報の入出力を行う入出力処理部38を備えている。
なお、通信回線36は、電気事業者によって提供される広域通信回線又はLAN(Local Area Network)等の構内通信網、又は外部パス等であり、有線回線又は無線回線の何れであってもよい。
これらMMU20、RAM14、ROM16、HDD18、操作入力部32、画像表示部34、及び入出力処理部38は、内部バス40を介して相互に電気的に接続されている。従って、CPU12はMMU20を介して、RAM14、ROM16、及びHDD18へのアクセス、操作入力部32に対する操作状態の把握、画像表示部34に対する画像の表示、及び入出力処理部38を介した外部装置との各種情報の送受信等を各々行なうことができる。
ここで、MMU20のTLB26に読み込まれたページテーブルの破損、及びMMU20の故障等により、CPU12がMMU20を介してRAM14へ正常にアクセスできない場合には、CPU12の停止、暴走、又は接続されている他の装置への出力値の突変等、CPU12の動作が異常となる可能性がある。そのため、本第1実施形態に係るMMU20のTLB26には、ページテーブル情報、及びMMU20による仮想アドレスと物理アドレスとの変換の異常の有無を検出するための異常検出情報がRAM14から読み込まれる。
本第1実施形態に係る異常検出情報は、ページテーブル情報により示されるページテーブルに基づいて生成された、巡回冗長検査(Cyclic Redundancy Check)に用いるCRC値である。なお、CRC値を生成する方法としては、従来既知の方法を用いればよく、本第1実施形態ではその説明を省略する。
そして、図2に示すようにCRC値は、物理メモリであるRAM14のメモリページ♯1〜♯Nに各々対応するメモリページ♯1エントリ〜メモリページ♯Nエントリ毎に設けられている。すなわち、CRC値は、RAM14のページ単位毎に生成される。
そして、本第1実施形態に係るCPU12は、TLB26にページテーブル情報が読み込まれる前に、該ページテーブル情報に付加されている異常検出情報に基づいて、MMU20による仮想アドレスと物理アドレスとの変換の異常の有無を検出するアドレス変換検査処理を行う。
次に、本第1実施形態に係る情報処理装置10の作用を説明する。
図3は、RAM14に記憶されているページテーブル情報が、TLB26に異常検出情報と共に読み込まれる前に、CPU12によって実行されるアドレス変換検査プログラムの処理の流れを示すフローチャートであり、該プログラムはHDD18の所定領域に予め記憶されている。
ステップ100では、TLB26に読み込まれる対象となるページテーブル情報のメモリページエントリ毎に該メモリページエントリに基づいて新たなCRC値を生成する。
次のステップ102では、TLB26に読み込まれる対象となるページテーブル情報の異常検出情報としてのCRC値とステップ100で生成した新たなCRC値とをメモリページエントリ毎に比較する。
次のステップ104では、異常検出情報としてのCRC値と新たなCRC値とが異なるか否かを判定し、肯定判定の場合、読み込みの対象となっているページデータ情報をTLB26に読み込ませることなく、ステップ106へ移行する一方、否定判定の場合は、読み込みの対象となっているページテーブル情報をTLB26に読み込ませ、本プログラムを終了する。
すなわち、ステップ104で肯定判定となる場合は、TLB26に読み込まれたページデータ情報により示されるページデータが何らかの理由により破損していることを検出したこととなる。なお、ページテーブルの破損の原因は、不正なプログラムによるページテーブルの書き換え、RAM14に生じた、例えば放射線の影響による一過性のエラーによりページテーブルのビット化け等である。
ステップ106では、実行中のプログラムが有るか否かを判定し、肯定判定の場合は、ステップ108へ移行する一方、否定判定の場合は、ステップ110へ移行する。
ステップ108では、プログラム実行部22で実行中のプログラムを停止させ、ステップ110へ移行する。
ステップ110では、ページデータの破損の発生、並びに実行中のプログラムを停止させた場合には、停止させたプログラムの名称等を画像表示部34の画面へ表示させることで報知する報知処理を行った後に、本プログラムを終了する。また、該報知処理において、破損を検出したメモリページエントリを報知してもよい。
なお、異常検出情報としてのCRC値は、ページテーブル情報が生成されると共に生成され、HDD18に記憶されてもよいし、CPU12を初期化する毎、ページテーブルの属性を変更する毎、又はページテーブル情報をTLB26に読み込ませる毎に生成し、更新されてもよい。
特に、ページテーブル情報が生成されると共にCRC値を生成し、HDD18に記憶した場合にCRC値が異なることが検出されると、ページテーブルは、HDD18からRAM14を介してTLB26に読み込まれる過程で破損したと考えられる。
また、属性が変更される等、内容が時々刻々変化するページテーブルに対しては、ページテーブル情報をRAM14からTLB26に読み込む毎にCRC値を生成しなければならない。
以上説明したように、本第1実施形態に係る情報処理装置10は、MMU20によって、物理アドレスと仮想アドレスとを変換するための変換テーブルに基づいて、仮想アドレスと物理アドレスとが変換される。なお、MMU20に設けられているTLB26には、変換テーブルを示す変換テーブル情報が記憶される。
変換テーブル情報は、TLB26に読み込まれる前には、MMU20外に設けられているRAM14に、MMU20による仮想アドレスと物理アドレスとの変換の異常の有無を検出するための異常検出情報が付加されて記憶されている。
そして、CPU12は、異常検出情報に基づいて、MMU20による仮想アドレスと物理アドレスとの変換の異常の有無を検出する。
このように、本第1実施形態に係るCPU12は、ページテーブル情報に付加されている異常検出情報を用いて、MMU20による仮想アドレスと物理アドレスとの変換の異常の有無を検出するので、MMU20に設けられたTLB26に読み込まれたページテーブルを用いて、CPU12が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
また、本第1実施形態に係る異常検出情報は、ページテーブル情報により示されるページテーブルに基づいて生成された、巡回冗長検査に用いるCRC値であり、TLB26にページテーブル情報が読み込まれる前に、読み込みの対象となるページテーブル情報により示されるページテーブルに基づいて新たなCRC値を生成し、異常検出情報としてのCRC値と該新たなCRC値との異同を検出する。
これにより、本第1実施形態に係るCPU12は、TLB26に読み込まれたページテーブルの破損の有無が検出できるので、CPU12が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
また、本第1実施形態に係る異常検出情報は、ページテーブルに対してページ単位で付加されるので、ページ単位でページテーブルの破損の有無を検査することができる。
さらに、本第1実施形態に係るCPU12は、MMU20による仮想アドレスと物理アドレスとの変換の異常が検出された場合に、実行中のプログラムを停止させるので、MMU20による仮想アドレスと物理アドレスとの変換の異常を原因として、CPU12の動作が異常となることを防止することができる。
〔第2実施形態〕
以下、本発明の第2実施形態について説明する。
なお、本第2実施形態に係る情報処理装置10の構成は、図1に示される第1実施形態に係る情報処理装置10の構成と同様であるので説明を省略する。
本第2実施形態では、物理メモリであるRAM14の予め定められた物理アドレスに予め定められた値(以下、「マジックパターン」という。)を記憶させ、異常検出情報を予め定められた物理アドレスと仮想アドレスとを変換するための情報とする。
すなわち、本第2実施形態に係る異常検出情報は、図4に示すように、マジックパターンが記憶されているメモリページ♯α(αは、1〜Nとは異なる整数)にアクセスするためのメモリページエントリであり、該メモリページエントリがページテーブル情報に付加されている。なお、本第2実施形態に係るメモリページ♯αには、マジックパターンの一例として0x5A5A5A5Aが記憶されている。また、RAM14に記憶されているマジックパターンと同じ情報が、後述するアドレス変換検査プログラムに予め記述されている。
なお、情報処理装置10の構成として、CPU12がMMU20を介さずにRAM14への書き込みが可能であれば、RAM14へのマジックパターンの書き込みは、MMU20を動作させる前に行うことが望ましいが、これに限らず、MMU20の動作開始後にRAM14にマジックパターンを書き込んでもよい。
また、マジックパターンは、所定時間間隔毎に変更されてもよいし、マジックパターンが書き込まれる物理アドレスも、所定時間間隔毎に変化されてもよい。
次に、本第2実施形態に係る情報処理装置10の作用を説明する。
図5は、本第2実施形態に係る異常検出処理を行う場合に、CPU12のプログラム実行部22によって実行されるアドレス変換検査プログラムの処理の流れを示すフローチャートであり、該プログラムはHDD18の所定領域に予め記憶されている。なお、アドレス変換検査プログラムは、予め定められた時間間隔毎(例えば、10分毎)に、HDD18からRAM14に送信、記憶されて、実行される。
まず、ステップ300では、異常検出情報としてのメモリページエントリの仮想アドレスにアクセスすることによって、異常検出情報がTLB26に読み込まれているか否かを判定し、肯定判定の場合は、ステップ304へ移行する一方、否定判定の場合は、ステップ302へ移行する。すなわち、アクセスできない場合は、異常検出情報がTLB26に読み込まれていない場合であり、アクセスできる場合は、異常検出情報がTLB26に読み込まれている場合である。
ステップ302では、異常検出情報としてのメモリページエントリがTLB26に読み込まれていないため、異常検出情報をRAM14からTLB26に読み込ませる。
ステップ304では、RAM14に記憶されているマジックパターンを読み込むための仮想アドレスをMMU20に出力し、TLB26に読み込ませた異常検出情報としてのメモリページエントリに基づいて仮想アドレスを物理アドレスに変換させ、RAM14からマジックナンバーを読み出す。
次のステップ306では、アドレス変換検査プログラムに予め記述されているマジックパターンとRAM14から読み出したマジックパターンとの異同を検出する。すなわち、本ステップでは、アドレス変換検査プログラムに予め記述されているマジックパターンとRAM14から読み出したマジックパターンとが一致するか否かを判定し、肯定判定の場合は、本プログラムを終了する一方、否定判定の場合は、ステップ308へ移行する。
なお、MMU20が入力された仮想メモリを正しく物理メモリに変換できている場合は、RAM14から読み出されたマジックパターンとアドレス変換検査プログラムに予め記述されているマジックパターンとが同じとなる一方、MMU20が入力された仮想メモリを正しく物理メモリに変換できない場合は、RAM14から読み出されたマジックパターンとアドレス変換検査プログラムに予め記述されているマジックパターンとが異なる。RAM14から読み出されたマジックパターンとアドレス変換検査プログラムに予め記述されているマジックパターンとが異なる場合は、MMU20による仮想メモリと物理メモリとの変換に異常、すなわち、MMU20に故障が生じていると考えられる。
ステップ308では、実行中のプログラムが有るか否かを判定し、肯定判定の場合は、ステップ310へ移行する一方、否定判定の場合は、ステップ312へ移行する。
ステップ310では、プログラム実行部22で実行中のプログラムを停止させる。
ステップ312では、マジックパターンが不一致とであったこと、及び実行中のプログラムを停止させた場合には、停止させたプログラムの名称等を画像表示部34の画面へ表示させることで報知する報知処理を行った後に、本プログラムを終了する。
なお、上記ステップ304で、マジックパターンをRAM14から読み出すことができなかった場合も、ステップ306では、マジックパターンが不一致であったとして、その後の処理を継続する。マジックパターンをRAM14から読み出すことができなかった場合も、MMU20による仮想メモリと物理メモリとの変換に異常、すなわち、MMU20に故障が生じていると考えられる。
以上説明したように、本第2実施形態に係る情報処理装置10は、物理メモリの予め定められた物理アドレスにマジックパターンを記憶し、異常検出情報を上記予め定められた物理アドレスと仮想アドレスとを変換するための情報としている。そして、本第2実施形態に係るCPU12は、TLB26に読み込まれた異常検出情報を用いて、予め定められた物理アドレスに対応する仮想アドレスによって、物理メモリに記憶されている値を読み出し、読み出された値とマジックパターンとの異同を検出する。
これにより、本第2実施形態に係るCPU12は、MMU20による仮想メモリと物理メモリとの変換の異常の有無を検出できるので、CPU12が物理メモリへ正常にアクセスできるか否かを他のプログラムを実行したままで検査できる。
以上、本発明を、上記各実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記各実施形態に多様な変更または改良を加えることができ、該変更または改良を加えた形態も本発明の技術的範囲に含まれる。
例えば、上記各実施形態では、物理メモリをRAM14とする場合について説明したが、本発明は、これに限定されるものではなく、物理メモリをRAM14及びHDD18とする形態としてもよい。
また、上記各実施形態では、報知処理として画像表示装置を介して報知する場合について説明したが、本発明は、これに限定されるものではなく、例えば、入出力処理部28に印刷装置が接続されている場合には、該印刷装置に報知内容を記した文章を紙媒体等に画像として形成させることで報知する形態、又は不図示のスピーカで音声として報知させる形態としてもよい。
10 情報処理装置
12 CPU
14 RAM
20 MMU
26 TLB
30 メモリ保護部

Claims (3)

  1. 物理メモリのアドレスである物理アドレスと仮想メモリのアドレスである仮想アドレスとを変換するための変換テーブルに基づいて、前記仮想アドレスと前記物理アドレスとを変換するメモリ管理装置と、
    前記メモリ管理装置に設けられ、前記変換テーブルを示す変換テーブル情報を記憶するバッファと、
    前記メモリ管理装置外に設けられ、前記変換テーブル情報、及び前記変換テーブル情報に付加され、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常の有無を検出するための異常検出情報を記憶している記憶手段と、
    前記異常検出情報に基づいて、前記異常の有無を検出する異常検出手段と、
    を備え、
    前記物理メモリは、予め定められた物理アドレスに予め定められた値が記憶され、
    前記異常検出情報は、前記予め定められた物理アドレスと前記仮想アドレスとを変換するための情報であり、
    前記異常検出手段は、前記バッファに読み込まれた前記異常検出情報を用いて、前記予め定められた物理アドレスに対応する前記仮想アドレスによって、前記物理メモリに記憶されている値を読み出し、読み出した該値と前記予め定められた値との異同を検出するアドレス変換検査装置。
  2. 請求項1に記載のアドレス変換検査装置を備えた中央処理演算装置であって、
    前記アドレス変換検査装置が備える前記異常検出手段によって、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常が検出された場合に、実行中のプログラムを停止させる中央処理演算装置。
  3. 物理メモリのアドレスである物理アドレスと仮想メモリのアドレスである仮想アドレスとを変換するための変換テーブルを示す変換テーブル情報を外部の記憶手段からバッファへ記憶し、該バッファに記憶した変換テーブル情報に基づいて、前記仮想アドレスと前記物理アドレスとを変換するメモリ管理装置にアクセスする中央処理演算装置のアドレス変換検査方法であって、
    前記変換テーブル情報に付加され、前記メモリ管理装置による前記仮想アドレスと前記物理アドレスとの変換の異常の有無を検出するための異常検出情報に基づいて、前記異常の有無を検出するために、
    前記物理メモリは、予め定められた物理アドレスに予め定められた値が記憶され、
    前記異常検出情報は、前記予め定められた物理アドレスと前記仮想アドレスとを変換するための情報であり、
    前記バッファに読み込まれた前記異常検出情報を用いて、前記予め定められた物理アドレスに対応する前記仮想アドレスによって、前記物理メモリに記憶されている値を読み出し、読み出した該値と前記予め定められた値との異同を検出するアドレス変換検査方法。
JP2010212435A 2010-09-22 2010-09-22 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法 Active JP5579003B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2010212435A JP5579003B2 (ja) 2010-09-22 2010-09-22 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
CN201180031504.4A CN102959526B (zh) 2010-09-22 2011-06-15 地址变换检查装置、中央处理运算装置及地址变换检查方法
KR1020127033474A KR101449231B1 (ko) 2010-09-22 2011-06-15 어드레스 변환 검사 장치, 중앙 처리 연산 장치, 및 어드레스 변환 검사 방법
EP11826615.4A EP2620875B1 (en) 2010-09-22 2011-06-15 Address translation inspection device, central processing device, and address translation inspection method
US13/806,498 US9009579B2 (en) 2010-09-22 2011-06-15 Address translation checking device, central processing unit, and address translation checking method
PCT/JP2011/063695 WO2012039169A1 (ja) 2010-09-22 2011-06-15 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
ES11826615.4T ES2662127T3 (es) 2010-09-22 2011-06-15 Dispositivo de inspección de traducción de dirección, dispositivo de procesamiento central y procedimiento de inspección de traducción de dirección

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010212435A JP5579003B2 (ja) 2010-09-22 2010-09-22 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法

Publications (2)

Publication Number Publication Date
JP2012068840A JP2012068840A (ja) 2012-04-05
JP5579003B2 true JP5579003B2 (ja) 2014-08-27

Family

ID=45873666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010212435A Active JP5579003B2 (ja) 2010-09-22 2010-09-22 アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法

Country Status (7)

Country Link
US (1) US9009579B2 (ja)
EP (1) EP2620875B1 (ja)
JP (1) JP5579003B2 (ja)
KR (1) KR101449231B1 (ja)
CN (1) CN102959526B (ja)
ES (1) ES2662127T3 (ja)
WO (1) WO2012039169A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102002900B1 (ko) 2013-01-07 2019-07-23 삼성전자 주식회사 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법
GB2536200B (en) * 2015-03-02 2021-08-18 Advanced Risc Mach Ltd Memory management
GB2536199B (en) * 2015-03-02 2021-07-28 Advanced Risc Mach Ltd Memory management
US11010241B2 (en) * 2019-01-09 2021-05-18 Arm Limited Translation protection in a data processing apparatus
US11243864B2 (en) 2019-09-17 2022-02-08 International Business Machines Corporation Identifying translation errors
CN114860627B (zh) * 2022-07-06 2022-09-30 沐曦集成电路(上海)有限公司 基于地址信息动态生成页表的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61166653A (ja) * 1985-01-19 1986-07-28 Panafacom Ltd アドレス変換エラー処理方法
JPH04338847A (ja) * 1991-05-16 1992-11-26 Nec Ibaraki Ltd アドレス変換バッファ診断装置
JPH05151104A (ja) * 1991-11-29 1993-06-18 Toshiba Corp データ処理装置
JPH05165730A (ja) * 1991-12-12 1993-07-02 Fujitsu Ltd データ処理装置
US5568415A (en) * 1993-02-19 1996-10-22 Digital Equipment Corporation Content addressable memory having a pair of memory cells storing don't care states for address translation
JPH09223070A (ja) * 1996-02-19 1997-08-26 Hitachi Ltd データ変換回路
JPH10289158A (ja) 1997-04-11 1998-10-27 Hitachi Ltd タスク管理装置
JPH11175409A (ja) * 1997-12-05 1999-07-02 Nec Corp メモリ制御方式
JP3959870B2 (ja) * 1998-10-12 2007-08-15 株式会社日立製作所 ディスク内容障害回復方法及び計算装置
US6901540B1 (en) * 1999-11-08 2005-05-31 International Business Machines Corporation TLB parity error recovery
US6609181B2 (en) * 2000-05-11 2003-08-19 Goodrich Corporation Memory management unit with programmable EDAC descriptors
US20040015753A1 (en) * 2002-07-16 2004-01-22 Patella Benjamin J. Detection of bit errors in content addressable memories
JP4068948B2 (ja) * 2002-11-25 2008-03-26 富士フイルム株式会社 記録媒体カートリッジおよびその記録再生装置
US20040117590A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corp. Aliasing support for a data processing system having no system memory
JP2005196680A (ja) * 2004-01-09 2005-07-21 Ricoh Co Ltd コンピュータシステム
US7366829B1 (en) * 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
JP4447977B2 (ja) 2004-06-30 2010-04-07 富士通マイクロエレクトロニクス株式会社 セキュアプロセッサ、およびセキュアプロセッサ用プログラム。
JP4297846B2 (ja) * 2004-07-27 2009-07-15 富士通株式会社 アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法
US8806177B2 (en) * 2006-07-07 2014-08-12 International Business Machines Corporation Prefetch engine based translation prefetching

Also Published As

Publication number Publication date
KR20130038881A (ko) 2013-04-18
JP2012068840A (ja) 2012-04-05
KR101449231B1 (ko) 2014-10-08
CN102959526A (zh) 2013-03-06
EP2620875A4 (en) 2015-02-25
CN102959526B (zh) 2015-08-19
US20130104013A1 (en) 2013-04-25
US9009579B2 (en) 2015-04-14
EP2620875B1 (en) 2018-01-17
EP2620875A1 (en) 2013-07-31
WO2012039169A1 (ja) 2012-03-29
ES2662127T3 (es) 2018-04-05

Similar Documents

Publication Publication Date Title
JP5579003B2 (ja) アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
JP5473841B2 (ja) 中央処理演算装置、及び異常検査方法
US10025649B2 (en) Data error detection in computing systems
CN104885063B (zh) 针对转译后备缓冲器(tlb)的重叠检查
US20150199279A1 (en) Method and system for method for tracking transactions associated with a system memory management unit of a portable computing device
CN103678053A (zh) 计算机自检方法和系统
US8006028B2 (en) Enabling memory module slots in a computing system after a repair action
CH716656A2 (it) Sistema e metodo di generazione e archivazione di metadati specifici dell'informatica forense.
JP2007199845A (ja) メモリ破壊検出方法および装置
US9262274B2 (en) Persistent data across reboots
JP2006040140A (ja) 情報処理装置及びマルチヒット制御方法
JPWO2012108020A1 (ja) ログ記録装置
US20120047504A1 (en) Methods, systems, and computer program products for maintaining a resource based on a cost of energy
JP2013205972A (ja) エミュレーション装置、及びエミュレーションプログラム
US11853598B2 (en) Software memory tagging for heap overflow protection
US20230236868A1 (en) Register Caching for Efficient Virtual Machine Introspection
TW201928981A (zh) 記憶體整體測試之系統及其方法
EP4336364A1 (en) Pseudo lock-step execution across cpu cores
JP2018157453A (ja) 異常判定装置、異常判定プログラム及び異常判定システム
JP2008065745A (ja) 記憶装置
JP2004038553A (ja) データ処理装置
JP2016081291A (ja) アクセス検査装置及び情報処理システム
GB2369908A (en) DRAM memory page operation method replacing faulty memory pages
JP2013175077A (ja) 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム
JP2013137832A (ja) ログ記録装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131105

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140514

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140708

R151 Written notification of patent or utility model registration

Ref document number: 5579003

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250