JP2009301479A - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP2009301479A JP2009301479A JP2008157863A JP2008157863A JP2009301479A JP 2009301479 A JP2009301479 A JP 2009301479A JP 2008157863 A JP2008157863 A JP 2008157863A JP 2008157863 A JP2008157863 A JP 2008157863A JP 2009301479 A JP2009301479 A JP 2009301479A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- instruction code
- complementary
- cpu
- 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
- Hardware Redundancy (AREA)
Abstract
【課題】プログラムデータを補完する機能を備えた安価なマイクロコンピュータを提供すること。プログラムデータを補完する汎用的な機能を備えたマイクロコンピュータを提供すること。
【解決手段】命令コードデータがCPU1の実行できない未定義データであると判定された場合、マイクロコンピュータは、その未定義データを、補完データメモリ11に格納されている補完データで置き換え、プログラムデータメモリ9にその補完データを書き込むことにより、プログラムデータメモリ9に格納されているプログラムデータを修復する。一般に、コンパイラは、コンパイルの際にコンパイラのアルゴリズムに依存して同じコードを生成するという特性を有する。補完データは、このコンパイラのアルゴリズムに依存して生成される特定の命令コードデータであり、プログラムデータのうちの一部の命令コードデータである。
【選択図】図1
【解決手段】命令コードデータがCPU1の実行できない未定義データであると判定された場合、マイクロコンピュータは、その未定義データを、補完データメモリ11に格納されている補完データで置き換え、プログラムデータメモリ9にその補完データを書き込むことにより、プログラムデータメモリ9に格納されているプログラムデータを修復する。一般に、コンパイラは、コンパイルの際にコンパイラのアルゴリズムに依存して同じコードを生成するという特性を有する。補完データは、このコンパイラのアルゴリズムに依存して生成される特定の命令コードデータであり、プログラムデータのうちの一部の命令コードデータである。
【選択図】図1
Description
この発明は、プログラムデータの一部を補完する機能を備えたマイクロコンピュータに関する。
従来、障害から回復するための手段を備えたコンピュータ・システムが提案されている。このコンピュータ・システムは、プロセッサと、前記プロセッサに結合された主メモリ・サブシステムとから成り、該主メモリ・サブシステムが、データを書き込み、データを読み出す基本メモリ素子と、前記基本メモリ素子に結合され、前記プロセッサには透過的な態様で、前記基本メモリ素子から読み出されたデータを捕獲し格納するリード・バッファと、チェックポイント間のいずれかの間隔内で変更されたデータ全ての予備変更バージョンが、同一間隔の間に前記リード・バッファに捕獲されることを保証する手段と、前記リード・バッファからの前記データを前記基本メモリ素子にコピーし、障害に続いて、データ保全性またはプログラム連続性を損なうことなく、処理を再開することができる一貫したチェックポイント状態に、前記主メモリ・サブシステムが戻ることを可能にする手段と、を含む(例えば、特許文献1参照。)。
また、マイクロコンピュータの異常動作によるメモリデータ破壊を防ぐメモリ保護装置が提案されている。このメモリ保護装置は、CPUと、メインメモリと、前記CPUとデータのやり取りを行う前記メインメモリとの間にCPUからの書き込みデータを一時保管するキャッシュ機能を備えたサブメモリと、マイクロコンピュータの暴走を検出するウォッチドックタイマのクリア信号により、前記サブメモリに前記メインメモリの書き換えデータとして一時保管されたデータをメインメモリへ書き換え処理制御を行うと共にデータ更新要求である更新リクエスト信号を発生するデータ更新制御手段を備えることにより、CPUからメモリへのデータ書き込みに対しては、メインメモリへ書き込みを行わずキャッシュメモリに書き込み、ウォッチドックタイマのクリア信号が出力されるとデータ更新制御手段がメインメモリにデータの書き込みを行う(例えば、特許文献2参照。)。
また、マイクロコンピュータのノイズ対策に関する提案がある。このマイクロコンピュータは、RAM上のスタック領域に設けた1個以上のプログラムの命令実行番地の格納および取り出しを行うスタック管理部と、前記スタック領域に格納されているプログラムの命令実行番地のうち少なくとも1つが格納された時点から取り出されるまでの間にプログラム以外の要因で変更された場合に、前記スタック領域が破壊されたと判定するスタック領域検査部と、スタック領域検査部が前記スタック領域が破壊されたと判定した場合、スタックデータ破壊時の処理が記述されているプログラムを実行する演算処理部とを備える(例えば、特許文献3参照。)。
しかしながら、従来の技術では、プログラムデータを補完するために、プログラムデータを格納するメインメモリと同じ記憶容量のサブメモリを用意し、このサブメモリにプログラムデータの複製を格納しておく必要がある。そのため、CPU(Central Processing Unit)、メインメモリおよびサブメモリを含むLSI(Large Scale Integration)の面積が増大し、高価になるという問題点がある。また、通常、システムごとにプログラムデータが異なるため、システムごとにサブメモリに異なるプログラムデータの複製を格納する必要がある。そのため、従来の技術には、汎用的でないという問題点がある。
この発明は、上述した従来技術による問題点を解消するため、プログラムデータを補完する機能を備えたマイクロコンピュータを安価に提供することを目的とする。また、この発明は、プログラムデータを補完する汎用的な機能を備えたマイクロコンピュータを提供することを目的とする。
上述した課題を解決し、目的を達成するため、このマイクロコンピュータは、CPU、第1のメモリ、第2のメモリ、判定手段および書き込み手段を備える。第1メモリには、命令コードデータからなるプログラムデータが格納されている。第2メモリには、プログラムデータの一部が補完データとして格納されている。補完データは、コンパイラによって命令コードデータが生成される際にそのコンパイラのアルゴリズムに依存して生成されるデータである。CPUは、第1メモリに格納されている命令コードデータを実行する。判定手段は、第1メモリから読み出されたデータが、CPUが実行することのできない未定義のコードデータであるとされた場合に、その未定義データが補完データで置き換え可能であるか否かを判定する。書き込み手段は、未定義データが補完データで置き換え可能であるときに、その未定義データを補完データで置き換え、第1メモリにその補完データを書き込む。
このマイクロコンピュータによれば、第1メモリから読み出された未定義データが補完データで上書きされるので、第1メモリに格納されているプログラムデータが修復される。また、補完データがプログラムデータの一部の命令コードデータであるので、第2メモリの容量が第1メモリの容量よりも少なくて済む。さらに、補完データがコンパイラのアルゴリズムに依存して生成されるので、プログラムデータに依存せずにCPUの命令コードに依存した補完データが得られる。つまり、プログラムデータを補完する機能として、プログラムに依存しない、汎用的な機能が得られる。
このマイクロコンピュータによれば、プログラムデータを補完する機能を備えた安価なマイクロコンピュータが得られる。また、このマイクロコンピュータによれば、プログラムデータを補完する汎用的な機能を備えたマイクロコンピュータが得られる。
以下に添付図面を参照して、このマイクロコンピュータの好適な実施の形態を詳細に説明する。
(マイクロコンピュータの構成)
図1は、実施の形態にかかるマイクロコンピュータの構成を示すブロック図である。図1に示すように、マイクロコンピュータは、プログラムデータメモリ9から読み出された命令コードデータが、命令判定部4および未定義判定部5により、CPU1の実行できない未定義データであると判定された場合、補完データ取得部7により、補完データメモリ11に格納されている補完データを取得する。そして、マイクロコンピュータは、未定義データを補完データで置き換えて、書き込み部8により、プログラムデータメモリ9に補完データを書き込むことにより、プログラムデータメモリ9に格納されているプログラムデータを修復する。
図1は、実施の形態にかかるマイクロコンピュータの構成を示すブロック図である。図1に示すように、マイクロコンピュータは、プログラムデータメモリ9から読み出された命令コードデータが、命令判定部4および未定義判定部5により、CPU1の実行できない未定義データであると判定された場合、補完データ取得部7により、補完データメモリ11に格納されている補完データを取得する。そして、マイクロコンピュータは、未定義データを補完データで置き換えて、書き込み部8により、プログラムデータメモリ9に補完データを書き込むことにより、プログラムデータメモリ9に格納されているプログラムデータを修復する。
一般に、コンパイラは、C言語などの高級言語をマイクロコンピュータの解釈する言語に変換する際に、コンパイラのアルゴリズムに依存して同じコードを生成するという特性を有する。補完データは、このコンパイラのアルゴリズムに依存して生成される特定の命令コードデータであり、プログラムデータのうちの一部の命令コードデータである。
図2は、プログラムデータメモリに格納されたプログラムデータの一例を示す説明図である。図2に示すように、例えば、あるコンパイラを用いて高級言語をコンパイルすると、ロード命令(LDI)、比較命令(CMP)およびジャンプ命令(BNE、BGE、BLE)というパターンの命令群21,22,23,24が出現する。
図3は、未定義データを含む命令群の一例を示す説明図である。図3に示すように、命令群25において、例えば真ん中の比較命令のコードデータが解読されずに未定義データであると判定されたとする。この場合、上述したようにロード命令、比較命令およびジャンプ命令というパターンの命令群21,22,23,24が頻繁に出現することを考慮すると、未定義データの前後にロード命令とジャンプ命令があれば、未定義データが比較命令のコードデータであると推測することが可能である。このように、真ん中の命令コードデータを解読できなくても、その直前の命令コードデータ(以下、直前命令コードデータとする)と次の命令コードデータ(以下、次命令コードデータとする)がわかれば、真ん中の命令コードデータを推測することができる。
そこで、補完データメモリ11には、このような特定のパターンを有する命令群のうち、真ん中の命令コードデータが補完データとして格納されている。また、直前命令コードデータと次命令コードデータの組み合わせは、補完データを推測する際の比較用データとして、図1に示す比較データメモリ10に格納されている。
図4は、比較データメモリのデータ構造を示す説明図である。図4に示すように、比較データメモリ10には、例えば1個以上の比較用データと、各比較用データに対応する補完データのアドレスを示す補完データポインタが格納されている。図4に示す例では、例えば「LDI #xx,R1」と「BNE32 xx,R12」の組み合わせからなる比較用データと、それに対する補完データポインタとして「TBL_1」が格納されている。また、例えば「LDI #xx,R1」と「BLE32 xxx,R12」の組み合わせからなる比較用データと、それに対する補完データポインタとして「TBL_2」が格納されている。ここで、「xx」や「xxx」は、任意の値である。
図5は、補完データメモリのデータ構造を示す説明図である。図5に示すように、補完データメモリ11には、例えば1個以上の補完データが格納されている。各補完データは、比較データメモリ10において補完データポインタにより指定されたアドレスに格納されている。図5に示す例では、例えば、「TBL_0」のアドレスに「AND R1,R0」が格納されており、「TBL_1」のアドレスに「CMP R1,R0」が格納されている。
ここで、プログラムデータメモリ9は、フラッシュメモリや強誘電体メモリ(FRAM)などの書き換え可能な不揮発性メモリで構成されている。比較データメモリ10および補完データメモリ11は、例えばマスクROM(Read Only Memory)などの読み出し専用メモリで構成されている。
図1に戻り、CPU1は、データバス17を介してプログラムデータメモリ9から読み出される命令コードデータを実行する。プログラムデータメモリ9における命令コードデータのアドレスは、アドレスバス18を介してプログラムカウンタ3により与えられる。プログラムカウンタ3の更新に伴って、プログラムデータメモリ9から命令コードデータが順次読み出される。プログラムデータメモリ9から読み出された命令コードデータは、ノイズやその他の原因によって破壊されることがある。破壊されたデータは、本来のデータと異なる未定義データとなってしまう。
命令判定部4は、プログラムデータメモリ9から読み出された命令コードデータの命令内容を判定する。未定義判定部5は、プログラムデータメモリ9から読み出された命令コードデータが未定義データであるか否かを判定し、未定義データである場合にベクタ割り込み信号を出力する。
プログラムカウンタバッファ13は、今回実行する命令コードデータのアドレス(現在アドレス(異常検出アドレス))、その直前に実行された命令コードデータのアドレス(直前命令アドレス)、および次に実行される予定の命令コードデータのアドレス(次命令アドレス)を格納する3段のアドレスバッファで構成されている。プログラムカウンタバッファ13は、命令処理の実行時に、毎回、直前命令アドレス、現在アドレスおよび次命令アドレスを格納する。次命令アドレスは、現在のプログラムカウンタ3の値、すなわち現在アドレスを用いて求められる。
命令バッファ14は、命令処理の実行時に、毎回、直前命令コードデータおよび次命令コードデータを保存する。次命令コードデータは、プログラムカウンタバッファ13に格納される次命令アドレスに基づいてプログラムデータメモリ9から読み出される。スタックポインタバッファ15は、命令判定部4および未定義判定部5により命令コードデータが未定義データであると判定されたときに、その直前のスタックポインタ2の値および次のスタックポインタ2の値を保存する。
比較部6には、未定義判定部5から出力されたベクタ割り込み信号が異常信号として入力する。比較部6は、異常信号の入力によって、命令バッファ14に保存されている直前命令コードデータおよび次命令コードデータと、比較データメモリ10に格納されている比較用データを比較し、一致する組み合わせがあるか否かを判定する。比較の結果、一致する比較用データがある場合、比較部6は、検出信号と、一致した比較用データの補完データポインタを出力する。一致する比較用データがない場合、比較部6は、エラー信号を出力する。
補完データ取得部7は、検出信号の入力によって、比較部6から補完データポインタを受け取り、補完データメモリ11の該当するアドレスから補完データを取得する。補完データ取得部7は、補完信号と補完データを出力する。万一、補完データメモリ11の該当するアドレスから補完データを取得できない場合には、補完データ取得部7は、エラー信号を出力する。補完信号はステータスレジスタ部19へも出力され、ステータスレジスタ部19によって実行の状態(ステータス)を確認できる。
書き込み部8は、補完信号の入力によって、プログラムデータメモリ9の、未定義データと判定された命令コードデータが格納されている領域のデータを消去する。また、書き込み部8は、データ消去後、補完データ取得部7から補完データを受け取り、プログラムデータメモリ9の、データ消去領域に補完データを書き込む。その際、データの消去や書き込みは、プログラムデータメモリ9のデータ消去単位ごとに行われる。書き込み部8は、作業用メモリ12を用いて、データの一時保管やデータの書き換えを行う。作業用メモリ12は、例えばRAM(Random Access Memory)で構成されている。
また、マイクロコンピュータは、切り替え部16を備えている。切り替え部16は、ユーザープログラムによって上述したプログラムデータ補完機能を有効にするか無効にするかを切り替えることのできるスイッチで構成される。プログラムデータ補完機能が有効にされている場合、未定義判定部5からベクタ割り込み信号が出力されると、切り替え部16は、異常信号を出力する。異常信号が出力されると、CPU1は、命令実行処理を停止し、実行待機ステートに移行する。また、スタックポインタバッファ15にスタックポインタ2の値が保存される。
プログラムデータ補完機能が有効にされている場合に比較部6または補完データ取得部7からエラー信号が出力されると、CPU1に処理の中止またはリセットが要求される。一方、プログラムデータ補完機能が無効にされている場合、未定義判定部5からベクタ割り込み信号が出力されると、CPU1に処理の中止またはリセットが要求される。
上述した構成において、プログラムデータメモリ9は、第1メモリとしての機能を有する。比較データメモリ10および補完データメモリ11は、第2メモリとしての機能を有する。比較部6および補完データ取得部7は、第1判定手段としての機能を有する。命令判定部4および未定義判定部5は、第2判定手段としての機能を有する。書き込み部8は、書き込み手段としての機能を有する。プログラムカウンタバッファ13およびスタックポインタバッファ15は、保持手段としての機能を有する。切り替え部16は、切り替え手段としての機能を有する。
なお、比較データメモリ10と補完データメモリ11は、別々のメモリに設けられていてもよいし、同じメモリに設けられていてもよい。また、比較データメモリ10および補完データメモリ11は、書き換え可能な不揮発性メモリで構成されていてもよい。その場合、比較データメモリ10および補完データメモリ11の一方または両方がプログラムデータメモリ9と同じメモリに設けられていてもよい。
(マイクロコンピュータの動作)
図6は、実施の形態にかかるマイクロコンピュータの動作を示すフローチャートの一部であり、図7は、図6の続きを示すフローチャートである。図6に示すように、命令判定処理では、まず、今回の命令処理の実行を開始する前に、直前の命令処理の実行終了時に、プログラムカウンタバッファ13および命令バッファ14にそれぞれプログラムカウンタ3の値と命令コードデータを保存する(ステップS1、ステップS2)。これによって、直前に実行した命令コードデータのアドレスと、直前に実行した命令コードデータが保存される。その後、今回の命令処理の実行を開始する(ステップS3)。
図6は、実施の形態にかかるマイクロコンピュータの動作を示すフローチャートの一部であり、図7は、図6の続きを示すフローチャートである。図6に示すように、命令判定処理では、まず、今回の命令処理の実行を開始する前に、直前の命令処理の実行終了時に、プログラムカウンタバッファ13および命令バッファ14にそれぞれプログラムカウンタ3の値と命令コードデータを保存する(ステップS1、ステップS2)。これによって、直前に実行した命令コードデータのアドレスと、直前に実行した命令コードデータが保存される。その後、今回の命令処理の実行を開始する(ステップS3)。
今回の命令処理の実行を開始したら、プログラムカウンタバッファ13および命令バッファ14にそれぞれプログラムカウンタ3の値と命令コードデータを保存する(ステップS4、ステップS5)。これによって、今回実行する命令コードデータのアドレスと命令コードデータが保存される。次いで、今回実行する命令コードデータをデコードする(ステップS6)。そして、命令判定部4および未定義判定部5により、デコードしたデータが未定義データであるか否かを判定する(ステップS7)。
判定の結果、未定義データでなければ(ステップS7:No)、命令判定部4により、今回実行する命令がどのような命令であるかを判定する(ステップS8)。そして、CPU1は、その命令の実行処理を行う(ステップS9)。プログラムデータメモリ9から読み出された命令コードデータに異常がなければ、このように通常の処理が行われる。
一方、今回実行する命令コードデータをデコードして未定義データであるか否かを判定した結果、未定義データである場合には(ステップS7:Yes)、図7に示すように、未定義判定部5により、ベクタ割り込み信号を出力する(ステップS10)。ここでは、切り替え部16が、プログラムデータ補完機能を有効にする側に切り替えられているので、切り替え部16から異常信号が出力される(ステップS11)。それによって、CPU1は、命令実行処理を停止して実行待機ステートに移行し(ステップS12)、同時に、スタックポインタバッファ15にスタックポインタ2の値を退避する(ステップS13)。
次いで、命令バッファ14から直前命令コードデータと次命令コードデータを取り出す(ステップS14、ステップS15)。次いで、比較部6により、直前命令コードデータおよび次命令コードデータの組み合わせを、比較データメモリ10に格納されている比較用データと比較し、一致する組み合わせがあるか否かを判定する(ステップS16)。比較の結果、一致する比較用データがある場合(ステップS16:Yes)、比較部6により、その一致した比較用データの補完データポインタを取得する(ステップS17)。例えば、直前命令コードデータおよび次命令コードデータがそれぞれ「LDI #xx,R1」および「BNE32 xx,R12」である場合、図4に示す例では、補完データポインタとして「TBL_1」を取得する。
次いで、補完データ取得部7により、取得した補完データポインタに基づいて、補完データメモリ11の該当するアドレスに補完データがあるか否かを判定する(ステップS18)。その結果、補完データがある場合(ステップS18:Yes)、補完データメモリ11から該当する補完データを読み出す(ステップS19)。例えば、補完データポインタが「TBL_1」である場合、図5に示す例では、「CMP R1,R0」を取得する。
次いで、書き込み部8により、プログラムデータメモリ9の、未定義データであると判定された命令コードデータが格納されている領域のデータを消去する(ステップS20)。そして、書き込み部8により、プログラムデータメモリ9の、そのデータ消去領域に補完データを書き込む(ステップS21)。
その後、スタックポインタバッファ15から退避中のスタックポインタと、プログラムカウンタバッファ13から退避中のプログラムカウンタを復帰する(ステップS22、ステップS23)。そして、CPU1の実行待機ステートを解除し、CPU1を命令処理実行ステートへ復帰させることで処理を再開する。処理が再開されると、ステップS1に戻り、次の命令判定処理が開始される。一方、ステップS16で、一致する比較用データがない場合(ステップS16:No)、またはステップS18で、該当する補完データがない場合(ステップS18:No)には、ベクタ割り込み信号としてエラー信号を出力する(ステップS24)。それによって、CPU1に処理の中止またはリセットが要求される。
以上説明したように、本実施の形態によれば、プログラムデータメモリ9から読み出された命令コードデータが未定義データであると判定された場合、その未定義データであると判定された命令コードデータが補完データで上書きされるので、プログラムデータメモリ9に格納されているプログラムデータを修復することができる。また、補完データがプログラムデータの一部の命令コードデータであるので、比較データメモリ10の容量と補完データメモリ11の容量の合計がプログラムデータメモリ9の容量よりも少なくて済む。従って、プログラムデータを補完する機能を備えた安価なマイクロコンピュータが得られる。さらに、補完データがコンパイラのアルゴリズムに依存して生成されるので、プログラムデータに依存せずにCPU1の命令コードに依存した補完データが得られる。従って、プログラムデータを補完する機能として、プログラムに依存しない、汎用的な機能が得られる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)CPUと、前記CPUにより実行される命令コードデータを格納する第1メモリと、前記第1メモリに格納される前記命令コードデータの一部のデータからなる補完データを格納する第2メモリと、前記第1メモリから読み出された未定義データを、前記第2メモリに格納されている前記補完データで置き換え可能であるか否かを判定する第1判定手段と、前記第1判定手段の判定結果に基づいて前記第1メモリに前記補完データを書き込む書き込み手段と、を備えることを特徴とするマイクロコンピュータ。
(付記2)前記補完データは、コンパイラによって前記命令コードデータが生成される際に前記コンパイラのアルゴリズムに依存して生成されるデータであることを特徴とする付記1に記載のマイクロコンピュータ。
(付記3)前記第2メモリは、不揮発性のメモリであることを特徴とする付記1または2に記載のマイクロコンピュータ。
(付記4)前記第2メモリは、読み出し専用メモリであることを特徴とする付記1または2に記載のマイクロコンピュータ。
(付記5)前記第1メモリから読み出されたデータが未定義データであるか否かを判定する第2判定手段、をさらに備え、前記第1判定手段は、前記第2判定手段の判定結果に基づいて前記補完データの置き換えの可否を判定することを特徴とする付記1〜4のいずれか一つに記載のマイクロコンピュータ。
(付記6)前記書き込み手段による前記補完データの書き込み機能の有効および無効を切り替える切り替え手段、をさらに備えることを特徴とする付記1〜5のいずれか一つに記載のマイクロコンピュータ。
(付記7)前記第1メモリから前記未定義データが読み出されたときの前記CPUによる処理の実行状態を保持する保持手段、をさらに備え、前記書き込み手段により前記第1メモリへの前記補完データの書き込みが終了したときに、前記保持手段に保持されている実行状態を復元して前記CPUによる処理を継続することを特徴とする付記1〜6のいずれか一つに記載のマイクロコンピュータ。
(付記8)前記第1判定手段は、前記補完データの置き換え不可であると判定するときに前記CPUによる処理の実行を中止することを特徴とする付記1〜7のいずれか一つに記載のマイクロコンピュータ。
(付記9)前記第2メモリは、前記補完データとともに、前記補完データの直前に前記CPUにより実行されるべき命令コードデータおよび前記補完データの次に前記CPUにより実行されるべき命令コードデータを格納しており、前記第1判定手段は、前記未定義データの前後の命令コードデータの組み合わせと前記補完データの前後の命令コードデータの組み合わせを比較して前記補完データの置き換えの可否を判定することを特徴とする付記1〜8のいずれか一つに記載のマイクロコンピュータ。
(付記10)前記第1判定手段は、前記未定義データの前後1行以上の命令コードデータの組み合わせと前記補完データの前後の命令コードデータの組み合わせを比較することを特徴とする付記9に記載のマイクロコンピュータ。
1 CPU
4,5 第2判定手段
6,7 第1判定手段
8 書き込み手段
9 第1メモリ
10,11 第2メモリ
13,15 保持手段
16 切り替え手段
4,5 第2判定手段
6,7 第1判定手段
8 書き込み手段
9 第1メモリ
10,11 第2メモリ
13,15 保持手段
16 切り替え手段
Claims (5)
- CPUと、
前記CPUにより実行される命令コードデータを格納する第1メモリと、
前記第1メモリに格納される前記命令コードデータの一部のデータからなる補完データを格納する第2メモリと、
前記第1メモリから読み出された未定義データを、前記第2メモリに格納されている前記補完データで置き換え可能であるか否かを判定する第1判定手段と、
前記第1判定手段の判定結果に基づいて前記第1メモリに前記補完データを書き込む書き込み手段と、
を備えることを特徴とするマイクロコンピュータ。 - 前記補完データは、コンパイラによって前記命令コードデータが生成される際に前記コンパイラのアルゴリズムに依存して生成されるデータであることを特徴とする請求項1に記載のマイクロコンピュータ。
- 前記書き込み手段による前記補完データの書き込み機能の有効および無効を切り替える切り替え手段、をさらに備えることを特徴とする請求項1または2に記載のマイクロコンピュータ。
- 前記第1メモリから前記未定義データが読み出されたときの前記CPUによる処理の実行状態を保持する保持手段、をさらに備え、
前記書き込み手段により前記第1メモリへの前記補完データの書き込みが終了したときに、前記保持手段に保持されている実行状態を復元して前記CPUによる処理を継続することを特徴とする請求項1〜3のいずれか一つに記載のマイクロコンピュータ。 - 前記第2メモリは、前記補完データとともに、前記補完データの直前に前記CPUにより実行されるべき命令コードデータおよび前記補完データの次に前記CPUにより実行されるべき命令コードデータを格納しており、
前記第1判定手段は、前記未定義データの前後の命令コードデータの組み合わせと前記補完データの前後の命令コードデータの組み合わせを比較して前記補完データの置き換えの可否を判定することを特徴とする請求項1〜4のいずれか一つに記載のマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008157863A JP2009301479A (ja) | 2008-06-17 | 2008-06-17 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008157863A JP2009301479A (ja) | 2008-06-17 | 2008-06-17 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009301479A true JP2009301479A (ja) | 2009-12-24 |
Family
ID=41548280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008157863A Pending JP2009301479A (ja) | 2008-06-17 | 2008-06-17 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009301479A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5467172B1 (ja) * | 2013-09-18 | 2014-04-09 | オリバー カルトシュタイン | 情報処理システム、および情報処理方法 |
-
2008
- 2008-06-17 JP JP2008157863A patent/JP2009301479A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5467172B1 (ja) * | 2013-09-18 | 2014-04-09 | オリバー カルトシュタイン | 情報処理システム、および情報処理方法 |
US9342359B2 (en) | 2013-09-18 | 2016-05-17 | Oliver Kaltstein | Information processing system and information processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255614B2 (en) | Information processing device that accesses memory, processor and memory management method | |
JP4868216B2 (ja) | ファームウェア更新回路およびファームウェア更新方法 | |
JP5202130B2 (ja) | キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法 | |
WO2011093170A1 (ja) | メモリ管理装置及びメモリ管理方法 | |
US9710378B2 (en) | Writing an address conversion table for nonvolatile memory wear leveling | |
KR20040034540A (ko) | 대용량 저장 디바이스로 부터 펌웨어의 신뢰성 있고안전한 업데이트와 복구 | |
US8751817B2 (en) | Data processing apparatus and validity verification method | |
JP2012128643A (ja) | メモリシステム | |
JPWO2008099786A1 (ja) | メモリ障害復旧方法、情報処理装置およびプログラム | |
JP2009157542A (ja) | 情報処理装置及びそのスタックポインタ更新方法 | |
US8281112B2 (en) | Processor decoding extension instruction to store plural address extension information in extension register for plural subsequent instructions | |
KR20090091708A (ko) | 정보 처리 시스템 및 이 시스템의 기동/복구 방법 | |
JP3830867B2 (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
JP2005157528A (ja) | メモリ装置 | |
JP2009301479A (ja) | マイクロコンピュータ | |
JP4155052B2 (ja) | エミュレータ、エミュレーション方法およびプログラム | |
JP2009230479A (ja) | マイクロプロセッサ | |
JPH08137748A (ja) | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 | |
KR100928865B1 (ko) | 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치 | |
KR100575927B1 (ko) | 이동통신 단말기에서 부팅 방법 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
US11836033B2 (en) | Information processing apparatus and control method for controlling information processing apparatus | |
JP2006243810A (ja) | マイクロコンピュータシステム | |
JP4543505B2 (ja) | マイクロコンピュータの制御方法及び異常監視装置 | |
JP7091853B2 (ja) | 電子制御装置 |