JP5529794B2 - マイクロコンピュータ及び異常メモリアクセス検出方法 - Google Patents
マイクロコンピュータ及び異常メモリアクセス検出方法 Download PDFInfo
- Publication number
- JP5529794B2 JP5529794B2 JP2011080536A JP2011080536A JP5529794B2 JP 5529794 B2 JP5529794 B2 JP 5529794B2 JP 2011080536 A JP2011080536 A JP 2011080536A JP 2011080536 A JP2011080536 A JP 2011080536A JP 5529794 B2 JP5529794 B2 JP 5529794B2
- Authority
- JP
- Japan
- Prior art keywords
- parity
- parity bit
- memory
- access
- microcomputer
- 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.)
- Expired - Fee Related
Links
Images
Description
図1は、本実施の形態に係るマイクロコンピュータ100の構成を示すブロック図である。マイクロコンピュータ100は、メモリ110、CPU120、XOR処理器130、パリティ生成回路140、AND回路112、113、及びパリティ比較回路150を備えている。
2−1.動作フロー
図2は、本形態に係るマイクロコンピュータ100の動作を示すフローチャートである。図1及び図2を参照して、本形態に係るマイクロコンピュータ100の動作フローを説明する。尚、アクセスデータ幅は8ビットあるいは16ビットであり、XOR処理器130が用いる係数は、8ビットの場合“1”であり、16ビットの場合“3”であるとする。
図3は、本実施の形態に係るマイクロコンピュータ100が図4に示されるプログラムを実行する場合の動作例を示すフローチャートである。図3及び図4を参照して、本実施の形態の動作の一例を説明する。
CPU120が図4に示されるプログラムの実行を開始すると、まず、関数func1が呼び出される。
3行目で、char型の変数Aに“0”が設定される。この場合、メモリ110のデータ領域110A中の第1アドレスにデータ“0”が書き込まれる(ステップS203)。アクセス対象がchar型の変数A(8ビット)であるため(ステップS205;Yes)、XOR処理器130は、8ビット用の係数“1”と書き込みデータ“0”とのXOR演算を実行し、XOR演算結果“1”をパリティ生成回路140に出力する(ステップS206)。本例では、パリティ生成回路140は、偶数パリティモードでパリティビットを生成するとする。この場合、パリティ生成回路140は、XOR演算結果“1”に基づいて、パリティビット“1”を生成する(ステップS208)。生成されたパリティビット“1”は、メモリ110のパリティ領域110B中の対応アドレスに格納される(ステップS210)。
4行目で、演算のため、変数Aの値が参照される。この場合、メモリ110のデータ領域110A中の第1アドレスからデータ“0”が読み出される(ステップS204)。アクセス対象がchar型の変数A(8ビット)であるため(ステップS205;Yes)、XOR処理器130は、8ビット用の係数“1”と読み出しデータ“0”とのXOR演算を実行し、XOR演算結果“1”をパリティ生成回路140に出力する(ステップS206)。パリティ生成回路140は、XOR演算結果“1”に基づいて、パリティビット“1”を生成する(ステップS208)。パリティ比較回路150は、本ステップS303で生成されたパリティビット“1”(第1パリティビットPR1)と、ステップS302で格納された対応するパリティビット“1”(第2パリティビットPR2)とを比較する(ステップS211)。両者は一致するため(ステップS211;Yes)、読み出しアクセス処理は正常に終了する。
関数func1が終了し、処理は関数mainに戻る。
次に、関数func2が呼び出される。ここで、正常動作の場合(ステップS306;Yes、ステップS307〜S309)と、異常メモリアクセスが発生する場合(ステップS306;No、ステップS310)の2通りを考える。
まず、正常動作の場合、9行目で、int型の変数Bに“8”が設定される。この場合、メモリ110のデータ領域110A中の第1アドレスにデータ“8”が書き込まれる(ステップS203)。アクセス対象がint型の変数B(16ビット)であるため(ステップS205;No)、XOR処理器130は、16ビット用の係数“3”と書き込みデータ“8”とのXOR演算を実行し、XOR演算結果“11”をパリティ生成回路140に出力する(ステップS206)。パリティ生成回路140は、XOR演算結果“11”に基づいて、パリティビット“1”を生成する(ステップS208)。生成されたパリティビット“1”は、メモリ110のパリティ領域110B中の対応アドレスに格納される(ステップS210)。
10行目で、演算のため、変数Bの値が参照される。この場合、メモリ110のデータ領域110A中の第1アドレスからデータ“8”が読み出される(ステップS204)。アクセス対象がint型の変数B(16ビット)であるため(ステップS205;No)、XOR処理器130は、16ビット用の係数“3”と読み出しデータ“8”とのXOR演算を実行し、XOR演算結果“11”をパリティ生成回路140に出力する(ステップS206)。パリティ生成回路140は、XOR演算結果“11”に基づいて、パリティビット“1”を生成する(ステップS208)。パリティ比較回路150は、本ステップS308で生成されたパリティビット“1”(第1パリティビットPR1)と、ステップS307で格納された対応するパリティビット“1”(第2パリティビットPR2)とを比較する(ステップS211)。両者は一致するため(ステップS211;Yes)、読み出しアクセス処理は正常に終了する。
関数func2が終了し、処理は関数mainに戻る。
10行目で、演算のため、変数Bの値が参照される。この場合、メモリ110のデータ領域110A中の第1アドレスから、上記ステップS302で書き込まれたデータ“0”が読み出される(ステップS204)。しかしながら、アクセス対象がint型の変数B(16ビット)であるため(ステップS205;No)、XOR処理器130は、16ビット用の係数“3”と読み出しデータ“0”とのXOR演算を実行し、XOR演算結果“3”をパリティ生成回路140に出力する(ステップS206)。パリティ生成回路140は、XOR演算結果“3”に基づいて、パリティビット“0”を生成する(ステップS208)。パリティ比較回路150は、本ステップS310で生成されたパリティビット“0”(第1パリティビットPR1)と、上記ステップS302で格納された対応するパリティビット“1”(第2パリティビットPR2)とを比較する(ステップS211)。両者は不一致であるため(ステップS211;No)、パリティ比較回路150は、CPU120に割り込み信号106を出力する(ステップS212)。割り込み信号106を受け取ると、CPU120は、メモリアクセスにおいて異常が発生したと判断し、異常発生に対応する処理を行う(ステップS213)。
以上に説明されたように、本実施の形態のマイクロコンピュータ100によれば、メモリ110に対する異常アクセスや不正アクセスの発生を検出することが可能である。例えば、アクセス対象の変数型の不一致を検出することができる。このとき、上述の特許文献1のようにパリティモードを切り替える必要はない。すなわち、本実施の形態によれば、余計な命令コードを追加することなく、マイクロコンピュータ100における異常メモリアクセスの発生を検出することが可能となる。
101 アドレスバス
102 データバス
103 メモリ書き込み信号
104 メモリ読み出し信号
105 データバスサイズ指定信号
106 割り込み信号
110 メモリ
110A データ領域
110B パリティ領域
112 AND回路
113 AND回路
120 CPU
130 XOR処理器
131 XOR演算結果
140 パリティ生成回路
150 パリティ比較回路
Claims (5)
- メモリと、
前記メモリにアクセスするCPUと、
前記メモリへのアクセス発生時、アクセス対象データのデータ幅に依存して異なる係数と前記アクセス対象データとのXOR演算を行うXOR処理器と、
前記XOR演算の演算結果に基づいて、前記アクセス対象データに関連するパリティビットを生成するパリティ生成回路と、
前記パリティ生成回路によって生成される前記パリティビットである第1パリティビットと、前記メモリから読み出される前記パリティビットである第2パリティビットとを受け取るパリティ処理回路と
を備え、
書き込みアクセス時、前記パリティ処理回路は、前記第1パリティビットを前記メモリに書き込み、
読み出しアクセス時、前記パリティ処理回路は、前記第1パリティビットと前記第2パリティビットとを比較し、前記第1パリティビットと前記第2パリティビットとが不一致である場合、割り込み信号を前記CPUに出力する
マイクロコンピュータ。 - 請求項1に記載のマイクロコンピュータであって、
前記メモリへのアクセス発生時、前記CPUは、前記アクセス対象データの前記データ幅を示すサイズ指定信号を前記XOR処理器へ出力し、
前記XOR処理器は、前記サイズ指定信号で指定される前記データ幅に応じて、前記係数を決定する
マイクロコンピュータ。 - 請求項2に記載のマイクロコンピュータであって、
前記アクセス対象データの前記データ幅に応じて決定する前記係数の値が、全て異なっている
マイクロコンピュータ。 - 請求項1乃至3のいずれか一項に記載のマイクロコンピュータであって、
前記パリティ生成回路が前記パリティビットを生成する際のパリティモードは、偶数パリティモードあるいは奇数パリティモードのいずれかに固定される
マイクロコンピュータ。 - マイクロコンピュータにおけるハードウェア又はソフトウェア起因の異常メモリアクセス検出方法であって、
前記マイクロコンピュータは、
メモリと、
前記メモリにアクセスするCPUと
を備え、
前記異常メモリアクセス検出方法は、
前記メモリへのアクセス発生時、アクセス対象データのデータ幅に依存して異なる係数と前記アクセス対象データとのXOR演算を行うステップと、
前記XOR演算の演算結果に基づいて、前記アクセス対象データに関連するパリティビットを生成するステップと、
書き込みアクセス時、前記生成されたパリティビットを第1パリティビットとして前記メモリに書き込むステップと、
読み出しアクセス時、前記生成されたパリティビットである第1パリティビットと前記メモリから読み出される前記パリティビットである第2パリティビットとを比較するステップと、
前記第1パリティビットと前記第2パリティビットとが不一致である場合、割り込み信号を前記CPUに出力するステップと
を含む
マイクロコンピュータにおける異常メモリアクセス検出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011080536A JP5529794B2 (ja) | 2011-03-31 | 2011-03-31 | マイクロコンピュータ及び異常メモリアクセス検出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011080536A JP5529794B2 (ja) | 2011-03-31 | 2011-03-31 | マイクロコンピュータ及び異常メモリアクセス検出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012216046A JP2012216046A (ja) | 2012-11-08 |
JP5529794B2 true JP5529794B2 (ja) | 2014-06-25 |
Family
ID=47268761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011080536A Expired - Fee Related JP5529794B2 (ja) | 2011-03-31 | 2011-03-31 | マイクロコンピュータ及び異常メモリアクセス検出方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5529794B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0561777A (ja) * | 1991-08-30 | 1993-03-12 | Nec Corp | 記憶制御回路 |
JPH0612273A (ja) * | 1992-06-26 | 1994-01-21 | Nec Corp | データメモリ監視方式 |
-
2011
- 2011-03-31 JP JP2011080536A patent/JP5529794B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012216046A (ja) | 2012-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6050083B2 (ja) | 半導体装置 | |
JP5014899B2 (ja) | 再構成可能デバイス | |
EP2124154B1 (en) | Bus signal control circuit and signal processing circuit having bus signal control circuit | |
US20160147586A1 (en) | Device and method for executing a program, and method for storing a program | |
US20140344643A1 (en) | Hybrid memory protection method and apparatus | |
JP2008139908A (ja) | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 | |
KR20110025524A (ko) | 반도체 메모리 장치 및 그것의 데이터 처리 방법 | |
JP5451087B2 (ja) | 障害処理装置および方法 | |
US10366018B2 (en) | Control apparatus with access monitoring unit configured to request interrupt process | |
WO2017053003A1 (en) | Technologies for software attack detection using encoded access intent | |
CN113656230B (zh) | 故障诊断电路、方法、装置及计算机可读存储介质 | |
JP5529794B2 (ja) | マイクロコンピュータ及び異常メモリアクセス検出方法 | |
JP4555713B2 (ja) | エラー通知方法及び情報処理装置 | |
JP6332134B2 (ja) | メモリ診断回路 | |
US20140006880A1 (en) | Apparatus and control method | |
JP2010102565A (ja) | 二重化制御装置 | |
JP5446931B2 (ja) | 誤り検出訂正装置及びメモリ装置 | |
JP2009009270A (ja) | 論理検証装置、論理検証方法 | |
JP4382128B2 (ja) | 情報処理装置、および、その誤演算検出方法 | |
JP5632804B2 (ja) | バス診断機能を備えた制御装置 | |
JP5325032B2 (ja) | 多重系システムの高信頼性制御装置 | |
JP6358122B2 (ja) | マイクロコンピュータ | |
JP2012160149A (ja) | 二重化回路、半導体装置およびテスト方法 | |
JP6918267B2 (ja) | ボトルネック検出装置及びボトルネック検出プログラム | |
JP2021166424A (ja) | 保護リレー装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140312 |
|
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: 20140401 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5529794 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |