JP3614753B2 - マイクロコンピュータにおける命令読み出し処理装置 - Google Patents

マイクロコンピュータにおける命令読み出し処理装置 Download PDF

Info

Publication number
JP3614753B2
JP3614753B2 JP2000085784A JP2000085784A JP3614753B2 JP 3614753 B2 JP3614753 B2 JP 3614753B2 JP 2000085784 A JP2000085784 A JP 2000085784A JP 2000085784 A JP2000085784 A JP 2000085784A JP 3614753 B2 JP3614753 B2 JP 3614753B2
Authority
JP
Japan
Prior art keywords
instruction
code
read
output
instruction code
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
Application number
JP2000085784A
Other languages
English (en)
Other versions
JP2001273136A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2000085784A priority Critical patent/JP3614753B2/ja
Publication of JP2001273136A publication Critical patent/JP2001273136A/ja
Application granted granted Critical
Publication of JP3614753B2 publication Critical patent/JP3614753B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、マイクロコンピュータにおける命令読み出し処理装置にかかわり、特には、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダにおいて誤解読が発生したときのシステム暴走などの不都合を解消するための技術に関する。
【0002】
【従来の技術】
図4は従来の技術におけるマイクロコンピュータの命令読み出し処理装置400の構成を示すブロック図である。図4において、符号の11はプログラムカウンタ、12はプログラムメモリー、13は命令レジスタ、14は命令デコーダ、15はマイクロ命令レジスタである。プログラムカウンタ11は、命令実行アドレスをプログラムメモリー12に与える。プログラムメモリー12においてプログラムカウンタ11によって指示された命令実行アドレスの命令コードが読み出され、命令レジスタ13に転送される。命令デコーダ14は、命令レジスタ13における読み出し命令コードInst(r) を解読(デコード)し、その解読によるマイクロ命令コードμIをマイクロ命令レジスタ15に転送する。マイクロ命令レジスタ15のマイクロ命令コードμIは、マイクロコントローラの各部に対して制御信号等として出力されることにより、結果として、プログラムメモリー12から読み出された命令の実行が行われる。
【0003】
【発明が解決しようとする課題】
上記のように構成された図4に示す従来技術のマイクロコンピュータにおける命令読み出し処理装置400においては、プログラムメモリー12から読み出され、命令レジスタ13に一時記憶され、命令デコーダ14によって解読されることによって生成されてマイクロ命令レジスタ15に転送されたマイクロ命令コードμIが、プログラムメモリー12からの読み出し命令コードInst(r) を正しく解読したものかどうかを判定するようにはなっておらず、また、解読異常に対する安全確保を行うようにはなっていない。
【0004】
そのため、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダで誤解読が発生しても、その誤解読によるマイクロ命令コードがそのまま出力され、それに基づいたマイクロ命令がマイクロコントローラで実行されてしまうため、システムでは異常動作、誤動作を誘発し、最悪の場合にはシステム全体が暴走してしまうという不都合を有している。
【0005】
命令デコーダによる解読が正常に行われたかそれとも誤った解読であったかを検出する対策について、いくつかの提案が行われている(例えば、特開昭63−85831号公報、特開平5−2654号公報、特開平5−35892号公報参照)。すなわち、命令デコーダによる解読の結果得られたマイクロ命令コードをある比較基準データと比較対照することにより、解読の正常/異常を判定するようにしている。
【0006】
しかしながら、以上のいずれの公報の技術も、比較基準データ(固有の属性データ、比較用データ、プログラムカウンタカウント値)をあらかじめ特定のメモリ(属性データ記憶手段、CROM、比較用データメモリ、設定回路)に登録設定してあって、解読後のマイクロ命令コードと前記特定のメモリから読み出した比較基準データとを比較するものである。しかしながら、この特定のメモリに登録設定されている比較基準データは、厳密には、プログラムメモリーに格納されている命令コードとは形態上、別のものである。両者間には、あらかじめ、1対1の対応関係を確保しているが、それでも、それはあくまで対応しているだけであって、全く同じものではあり得ない。別言すれば、両者の物理レベルが相違している。すなわち、そもそも格納場所が相違しているし、格納形態も相違しているからである。さらには、その格納は、あらかじめのものであって、過去のものであり、また、固定的なものであり、問題となっている命令デコーダの解読が正常か否かの判定を行う今の時点とは、時間的に全く無関係のものである。別言すれば、リアルタイムのものではない。加えて、特定のメモリから比較基準データを読み出すときに、上記のような急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して、その特定のメモリからの読み出しに誤動作が生じる可能性が残っている。また、別途に特定のメモリを設けることには、スペース面やコスト面での負担増となる。
【0007】
本発明は上記した課題の解決を図るべく創作したものであって、プログラムメモリーから読み出した命令コードに対する命令デコーダでの解読が正常に行われたか否かの判定を高精度に、そして簡単な構成をもって実現することを目的としている。
【0008】
【課題を解決するための手段】
上記した課題の解決を図ろうとするマイクロコンピュータにおける命令読み出し処理装置についての本発明は、命令デコーダが出力するマイクロ命令コードに対して逆変換のエンコードを施してエンコード命令コードを生成し、そのエンコード命令コードを読み出し命令コードと比較対照することに基づいて、命令デコーダにおける誤解読の発生の有無を判定するように構成したものである。
【0009】
本発明による作用は次のとおりである。命令デコーダが入力するのが読み出し命令コードである。命令デコーダは、読み出し命令コードを入力し、所定の規則に従って解読(デコード)を行ってマイクロ命令コードを生成出力する。ここで、読み出し命令コードとマイクロ命令コードとは原因と結果との関係にある。その原因である読み出し命令コードを結果であるマイクロ命令コードに変換するのに用いる所定の規則の役割を担っているのが命令デコーダである。読み出し命令コードとマイクロ命令コードとは因果の関係にあるが、デコードという性質上、両者の形態(次元)は当然に異なっている。したがって、命令デコーダによる解読が正常に行われた否かを判定するのに、マイクロ命令コードと読み出し命令コードとを直接に比較対照しても意味がない。デコードによって形態が変容したマイクロ命令コードを元の読み出し命令コードと同じ形態に戻すと、初めて比較対照が意義のあるものとなる。
【0010】
そこで、命令デコーダが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成し、そのようにして生成したエンコード命令コードを元の読み出し命令コードと比較対照することとしている。マイクロ命令コードをエンコード命令コードにエンコードする規則は、命令デコーダによる読み出し命令コードをマイクロ命令コードにデコード(解読)するときの規則に対して、同一の論理における逆変換の関係となっている。結果として、マイクロ命令コードをエンコードして生成したエンコード命令コードの形態は、命令デコーダがデコード(解読)を行った元の読み出し命令コードの形態と同一次元(態様)のものとなる。したがって、エンコード命令コードと読み出し命令コードとの比較対照は、正確には直接的なものではなくエンコードを介しての間接的なものであるが、そのエンコード自体は比較対照のために必要不可欠であるので、その実質は、直接的な比較対照となっている。
【0011】
ここで、重要なことは、形態上における直接か間接かということではなく、むしろ、比較対照される両者が、直接的な因果関係をもつものとなっているということである。従来技術のように、比較基準データがあらかじめ特定のメモリに登録設定されているというのとは異なる。すなわち、いまデコードしたものをその場で直ちにエンコードしたものを比較基準データとしているのである。この比較基準データがエンコード命令コードであるが、これは、ダイナミックかつリアルタイムに生成されたものである。
【0012】
以上のように、原因と結果とであるリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとの実質的に直接の比較対照を行うので、しかも、エンコードを介しての物理レベル(形態:次元)を一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、命令デコーダの解読エラーの判定の精度を大幅に改善することができる。しかも、そのための構成は比較的簡単なものでよい。
【0013】
【発明の実施の形態】
以下、本発明の実施の形態を総括的に説明する。
【0014】
本願第1の発明のマイクロコンピュータにおける命令読み出し処理装置は、命令デコーダの誤解読の発生の判定について、前記命令デコーダが出力するマイクロ命令コードをエンコードしたエンコード命令コードを前記命令デコーダが取り込んだ読み出し命令コードと比較対照するように構成したものとなっている。
【0015】
この第1の発明の構成は、上記の〔課題を解決するための手段〕の項の構成を別の表現形態で記述したものに相当し、それによる作用については、同じく上記の〔課題を解決するための手段〕の項で説明したのと実質的に同様のものとなる。すなわち、原因と結果とである互いにリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとを、物理レベル(形態:次元)を一致させた状態で実質的に直接的に比較対照するので、間接的かつ物理レベル不一致の比較対照である従来技術に比べて、命令デコーダの解読エラーの判定の精度の大幅な改善が可能となっている。
【0016】
本願第2の発明のマイクロコンピュータにおける命令読み出し処理装置は、プログラムカウンタが指示する命令実行アドレスにおいてプログラムメモリーから読み出した命令コードを命令レジスタに一時記憶させ、命令デコーダにおいて前記命令レジスタの読み出し命令コードを解読してマイクロ命令コードとしてマイクロ命令レジスタに一時記憶させ、そのマイクロ命令レジスタからマイクロコントローラにマイクロ命令コードを送出するように構成された命令読み出し処理装置において、前記命令レジスタが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成する命令エンコーダと、前記エンコード命令コードと前記命令レジスタの読み出し命令コードとを入力して比較対照し不一致のときに解読異常検出信号を生成出力する命令比較器とを備えているという構成になっている。これは、上記の第1の発明をより具体的レベルで記述したものに相当している。
【0017】
この第2の発明による作用は次のとおりである。命令デコーダは、命令レジスタにおける読み出し命令コードを解読(デコード)してマイクロ命令コードを生成し、そのマイクロ命令コードをマイクロ命令レジスタに転送格納するが、これと並行して、命令エンコーダはマイクロ命令レジスタを逆変換の状態でエンコードしてエンコード命令コードを生成し、命令比較器に出力する。命令比較器は、命令デコーダの入力側の命令レジスタにおける読み出し命令コードと、命令デコーダの出力側の命令エンコーダからのエンコード命令コードとを入力して、これら読み出し命令コードとエンコード命令コードとを比較対照し、不一致と判定したときには、解読異常検出信号を生成して出力する。
【0018】
したがって、上記の第1の発明の場合と同様に、原因と結果とである互いにリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとを、物理レベル(形態:次元)を一致させた状態で実質的に直接的に比較対照することとなり、従来技術に比べて、命令デコーダの解読エラーの判定の精度の大幅な改善が可能となっている。
【0019】
本願第3の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第1・第2の発明において、前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をリセット信号としてシステム各部に出力するように構成してある。
【0020】
この第3の発明による作用は次のとおりである。エンコード命令コードと読み出し命令コードとが不一致のときは、命令デコーダによる解読に異常が発生したことを意味するが、この場合には、解読異常検出信号をリセット信号として出力してシステム各部をリセットする。したがって、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダに誤解読が発生した場合には、システム全体を初期化してしまうので、予期せぬ誤解読による異常な命令によって、システムで異常動作や誤動作を誘発したり、最悪の場合にシステムが暴走してしまうといった不都合な事態を未然に防止することが可能となる。
【0021】
本願第4の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第1〜第3の発明において、前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をプログラムカウンタに対しては状態保持信号として出力し、マイクロ命令レジスタに対しては無効化信号として出力するように構成したものとなっている。
【0022】
この第4の発明による作用は次のとおりである。電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダにおいて誤解読が発生したときに、上記の第3の発明のように解読異常検出信号をリセット信号としてシステム全体を初期化すると、それまでの動作やデータが無駄になってしまうが、この第4の発明のように、解読異常検出信号を状態保持信号としてプログラムカウンタに与えて、プログラムカウンタの命令実行アドレスを現状態に保持するとともに、解読異常検出信号を無効化信号としてマイクロ命令レジスタに与えて、マイクロ命令レジスタの内容を強制的にNOP命令(何も実行しない命令)に切り換えて、その状態を保持する。そして、命令デコーダにおける誤解読の状態が解消されると、状態保持信号および無効化信号の出力が停止され、プログラムカウンタは命令実行アドレスのインクリメントを再開し、マイクロ命令レジスタは命令デコーダからの正しく解読されたマイクロ命令コードを一時記憶する動作を再開する。その結果として、システムは、解読異常が発生した直前の命令に対する直後の命令から動作を再開することになる。したがって、それまでにおいて実行した動作および各部において蓄積していたデータを失うことがなく、システムの動作の再開を効率的に行うことが可能となる。
【0023】
本願第5の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第4の発明において、前記比較対照によって出力される解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにシステム各部にリセット信号を出力するように構成したものとなっている。
【0024】
この第5の発明による作用は次のとおりである。上記の第4の発明においては、命令デコーダにおける誤解読が解消されない限りは、システムの動作を先に進めることなく現状態を保持する状態がいつまでも継続することとなり、これでは、結局、外見上、システムが暴走しているのと同じ状況になってしまう。
【0025】
そこで、現状態保持の状態が所定時間を越えて継続することとなるに至った段階では、その現状態保持の状態を中断させることとしたものである。すなわち、上記の外見上のシステム暴走状態を回避し、システムを初期化することとしたものである。命令デコーダでの誤解読発生までの動作および蓄積されたデータをなるべく生かすようにするととともに、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、安全性を確保するために、システム全体を初期化する。これによって、命令デコーダの誤解読発生に起因して派生する不都合な事態を、そのときの状況の変化にダイナミックに適応させて、最適にコントロールすることが可能となる。
【0026】
本願第6の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第2の発明において、前記命令比較器から出力される解読異常検出信号を入力し、その解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにリセット信号を出力する状態保持カウンタを備えているという構成になっている。これは、上記の第5の発明をより具体的レベルで記述したものに相当している。また、上記の第2の発明において、新たな構成要素として、状態保持カウンタを備えたことを記述している。
【0027】
この第6の発明による作用は次のとおりである。状態保持カウンタは、電圧変動や電磁波によるノイズ障害などの影響のために命令比較器から解読異常検出信号が出力されている期間においては、基準クロックをカウントする。誤解読が継続する限りにおいて、基準クロックのカウントアップは継続するが、そのカウント値が所定の基準値に達すると、状態保持カウンタはリセット信号を出力して、システムの全体を初期化する。すなわち、誤解読発生までの動作および蓄積されたデータをなるべく生かすことを原則とするが、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、システム全体をリセットして安全性を確保することとしている。これにより、命令デコーダの誤解読発生に起因して派生する不都合な事態に対してそのときの状況の変化にダイナミックに適応的に対処することが可能となる。
【0028】
(具体的な実施の形態)
以下、本発明のマイクロコンピュータにおける命令読み出し処理装置の具体的な実施の形態について、図面を用いて詳細に説明する。
【0029】
(実施の形態1)
図1は実施の形態1におけるマイクロコンピュータの命令読み出し処理装置100の構成を示すブロック図である。図1において、符号の11は命令実行アドレスを出力するプログラムカウンタ、12はプログラムを実行する上で必要な多数の命令コード(データを含む)がそれぞれ所定のアドレスにおいて格納されており、プログラムカウンタ11によって指示された命令実行アドレスに従って対応する命令コードが読み出されるように構成されたプログラムメモリー、13はプログラムメモリー12から読み出された命令コードすなわち読み出し命令コードInst(r) を一時的に記憶しておく命令レジスタ、14は命令レジスタ13における読み出し命令コードInst(r) を読み出し、所定の規則に従って解読を行ってマイクロ命令コードμIとして出力する命令デコーダ、15は命令デコーダ14から出力されてくるマイクロ命令コードμIを一時的に記憶するとともに図示しないマイクロコントローラへと出力するためのマイクロ命令レジスタであり、以上の構成要素11〜15については図4に示した従来技術の場合と同様のものとなっている。
【0030】
そして、新たな構成要素として、符号の16は命令デコーダ14から出力されてくるマイクロ命令コードμIを、命令デコーダ14が解読を行う規則と同じ範疇で逆変換の状態でエンコードしてエンコード命令コードInst(e) として出力する命令エンコーダ、17は命令レジスタ13に一時記憶されている読み出し命令コードInst(r) と命令エンコーダ16によるエンコード命令コードInst(e) とを入力して、両者の比較対照を行って両者が一致するか否かを判定し、不一致のときは命令解読異常と判定して解読異常検出信号Serr を生成し、これをマイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力する命令比較器である。
【0031】
次に、上記のように構成された実施の形態1の命令読み出し処理装置100の動作を説明する。
【0032】
プログラムカウンタ11が出力する命令実行アドレスに従ってプログラムメモリー12から命令コードInst(r) が読み出され、命令レジスタ13に転送されて一時記憶される。命令デコーダ14は、命令レジスタ13から読み出し命令コードInst(r) を入力して所定の規則に従って解読を行い、その解読によって得られたマイクロ命令コードμIをマイクロ命令レジスタ15に転送する。マイクロ命令レジスタ15のマイクロ命令コードμIは、マイクロコントローラの各部に対して制御信号等として出力されることにより、プログラムメモリー12から読み出された命令の実行が行われる。
【0033】
このとき、命令エンコーダ16は命令デコーダ14から出力されたマイクロ命令コードμIを入力して所定の規則に従って解読とは逆変換である符号化すなわちエンコードを行い、その結果をエンコード命令コードInst(e) として命令比較器17に出力する。命令比較器17においては、命令エンコーダ16からのエンコード命令コードInst(e) を入力するとともに命令レジスタ13からの読み出し命令コードInst(r) を入力し、両者が一致するか否かを判定する。
【0034】
急激な電圧変動がない場合や、外部からの電磁波の侵入や内部での電磁波の発生がなくて、ノイズ障害などの影響がない場合に、命令レジスタ13における読み出し命令コードInst(r) に対する命令デコーダ14による解読が正常に行われたときには、発生命令レジスタ13における読み出し命令コードInst(r) に対する命令デコーダ14による解読が正常に行われる。あるいは、たとえ急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などの影響に起因して命令デコーダに誤解読が発生しても、その影響が小さい場合には、命令デコーダ14による解読が正常に行われる。このように、命令デコーダ14による解読が正常に行われた場合には、その命令デコーダ14による解読結果としてのマイクロ命令コードμIに対する命令エンコーダ16によるエンコード命令コードInst(e) は、命令レジスタ13における読み出し命令コードInst(r) と一致することになる。このときは、命令比較器17は、その一致判定の結果、解読異常検出信号Serr の出力は行わない。したがって、この命令読み出し処理装置100は、通常動作を継続させることになり、プログラムカウンタ11はその命令実行アドレスをインクリメントする。
【0035】
しかし、電圧変動や電磁波によるノイズ障害などの影響が大きいために命令デコーダ14において誤解読が発生し、その結果として、命令エンコーダ16によるマイクロ命令コードμIのエンコード結果であるエンコード命令コードInst(e) が読み出し命令コードInst(r) と不一致となる場合がある。このときは、命令比較器17は、その不一致判定の結果として、解読異常検出信号Serr を生成して出力する。
【0036】
本実施の形態1においては、この解読異常検出信号Serr は、マイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力される。この解読異常検出信号Serr の出力先や使用目的は、システムの条件や使用目的や仕様等に応じて任意に定めてよい。プログラムカウンタ11にリセット信号として出力した場合には、プログラムカウンタ11がプログラムメモリー12に与える命令実行アドレスが初期化される。
【0037】
もう少し詳しく説明すると、次のようになる。電圧変動や電磁波によるノイズ障害などの影響がなければ、命令デコーダ14には誤解読は生じないし、もし、電圧変動や電磁波によるノイズ障害などの影響があっても命令デコーダ14で誤解読が生じないときには、命令エンコーダ16でも誤符号は生じないとみなしてよい。したがって、一般的には、電圧変動や電磁波によるノイズ障害などの影響がない限りは、命令比較器17における命令レジスタ13からの読み出し命令コードInst(r) と命令エンコーダ16からのエンコード命令コードInst(e) とは一致する。
【0038】
また、電圧変動や電磁波によるノイズ障害などの影響が大きくて、命令デコーダ14に誤解読が発生したときは、命令エンコーダ16で誤符号が発生する可能性も増すが、もし誤符号が発生したとしても、誤解読したマイクロ命令コードμIが誤符号によって却って正しいエンコード命令コードInst(e) に変換されてしまうといった偶然的な可能性はほとんど皆無となるはずである。したがって、命令デコーダ14で誤解読が発生したときは、エンコード命令コードInst(e) は必然的に読み出し命令コードInst(r) と不一致となり、結果として、誤解読の検出を正しく行うことができるのである。
【0039】
以上のようにして、本実施の形態1の命令読み出し処理装置100によれば、予期しない誤解読による異常な命令のためにシステムが異常動作・誤動作することや暴走することを防止し、解読異常に対する安全性を充分に確保することができる。
【0040】
特に、本発明のこの実施の形態1においては、命令デコーダ14による解読が正常に行われたか否かの判定において互いに比較対照すべき2つの要素の関係性が、原因と結果との関係になっていることに特徴がある。すなわち、比較対照の一方の要素は、命令レジスタ13の読み出し命令コードInst(r) から命令デコーダ14によって解読されたマイクロ命令コードμIを、さらに命令エンコーダ16によってエンコードしたエンコード命令コードInst(e) である。比較対照のもう一方の要素は、エンコード命令コードInst(e) の元のマイクロ命令コードμIのさらに元の読み出し命令コードInst(r) である。したがって、これら読み出し命令コードInst(r) とエンコード命令コードInst(e) とは原因と結果とであるリアルタイムの密接不可分・不即不離の関係となっている。
【0041】
なお、命令デコーダ14を境にして、その入力側の読み出し命令コードInst(r) と出力側のマイクロ命令コードμIとを直接に比較対照しないのは、命令デコーダ14での解読すなわちデコードによって、マイクロ命令コードμIのコード形態が読み出し命令コードInst(r) のコード形態から変容し、直接に比較対照できないためである。比較対照するには、コード形態を統一化すること、つまりは同じ次元に合わせる必要がある。そこで、命令デコーダ14と命令比較器17との間に命令エンコーダ16を介在させ、この命令エンコーダ16によってマイクロ命令コードμIを、読み出し命令コードInst(r) と同じコード形態のエンコード命令コードInst(e) へと戻しているのである。命令デコーダ14が読み出し命令コードInst(r) をマイクロ命令コードμIに変換するときの規則と、命令エンコーダ16がマイクロ命令コードμIをエンコード命令コードInst(e) に変換するときの規則とは同じ次元に立っている。この結果として、原因としての読み出し命令コードInst(r) と結果としてのエンコード命令コードInst(e) とを直接に比較対照することができるようになっているのである。
【0042】
別の角度から解釈すると、命令レジスタ13と命令デコーダ14と命令エンコーダ16と命令比較器17とがループ構造となっている。それは、時間的に相関があるものどうしの比較対照を行うものであり、一般的な自動制御のフィードバックループに似たものとなっている。
【0043】
以上のように、原因である読み出し命令コードInst(r) と結果であるエンコード命令コードInst(e) とを比較対照するので、さらに端的にいうと、リアルタイムな密接不可分・不即不離の関係である原因と結果との直接的な比較対照となっているので、しかも、エンコードを介しての物理レベルを一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、命令デコーダ14の解読エラーの判定の精度を大幅に改善することができている。
【0044】
さらに、本実施の形態1においては、従来技術のように、あらかじめ、プログラムメモリー12における命令コードInst(r) と1対1の対応関係のもとで定められた比較基準データを特定のメモリに登録しておく必要がない。すなわち、1対1の対応関係で比較基準データを作成し、それを特定のメモリに不揮発の状態で登録しておくのは、スペース面やコスト面での負担増となるが、本実施の形態1によれば、そのような負担増は解消することが可能となっており、命令デコーダ14の誤解読に起因するシステムの異常動作や誤動作や、最悪の場合のシステムの暴走といった不都合な事態を未然に防止する機能を、比較的簡単な構成で実現することができる。
【0045】
(実施の形態2)
図2は実施の形態2におけるマイクロコンピュータの命令読み出し処理装置200の構成を示すブロック図である。図1において、符号の11から17までについては、上記の実施の形態1(図1)の場合と同一構成要素を指示しているので、ここでは要素名称のみを示すこととする。すなわち、符号の11はプログラムカウンタ、12はプログラムメモリー、13は命令レジスタ、14は命令デコーダ、15はマイクロ命令レジスタ、16は命令エンコーダ、17は命令比較器、Inst(r) は読み出し命令コード、μIはマイクロ命令コード、Inst(e) はエンコード命令コード、Serr は解読異常検出信号である。
【0046】
本実施の形態2においては、新たな構成として、命令比較器17においてエンコード命令コードInst(e) と読み出し命令コードInst(r) との比較対照の結果が不一致のときに出力する解読異常検出信号Serr を、プログラムカウンタ11に対しては状態保持信号Sholdとして出力し、マイクロ命令レジスタ15に対しては無効化信号Snullとして出力するように構成されている。
【0047】
また、プログラムカウンタ11は、命令比較器17から状態保持信号Sholdを入力したときには、命令実行アドレスのインクリメントを中断して、現在(直前)の命令実行アドレスをそのまま保持するように構成されている。また、マイクロ命令レジスタ15は、命令比較器17から無効化信号Snullを入力したときには、その内部状態をNOP命令(何も実行しない命令)を出力する状態に強制的に切り換え、かつその状態を保持するように構成されている。
【0048】
上記の実施の形態1との比較でいうと、実施の形態1の場合には、エンコード命令コードInst(e) が読み出し命令コードInst(r) と不一致であることをもって命令デコーダ14の誤解読を検出したとき出力する解読異常検出信号Serr をマイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力するものであったが、本実施の形態2では、システム全体をリセットするのではなく、命令比較器17において不一致が解消されて一致の状態に戻るまでは、システム全体の現状態を保持することとしたものとなっている。
【0049】
次に、上記のように構成された実施の形態2の命令読み出し処理装置200の動作を説明する。
【0050】
急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダに誤解読が発生したとき、命令比較器17は解読異常検出信号Serr を生成し、それをプログラムカウンタ11に対しては状態保持信号Sholdとして出力し、マイクロ命令レジスタ15に対しては無効化信号Snullとして出力する。状態保持信号Sholdを入力したプログラムカウンタ11は、直前(現在)の命令実行アドレスをインクリメントすることなく、そのまま保持する。一方、無効化信号Snullを入力したマイクロ命令レジスタ15は、命令デコーダ14から出力されてきたマイクロ命令コードμIを無視し、NOP命令を出力する状態に強制的に切り換えられ、その状態を保持する。マイクロコントローラは、マイクロ命令レジスタ15におけるNOP命令のマイクロ命令コードを読み出すので、前の命令の実行を行った後は、何も動作せず、元の状態をそのまま保つことになる。以上の相乗により、システム全体として、前命令の実行後の状態を保持し、誤解読に起因しての誤動作や暴走状態を回避する。それまでの動作の履歴やデータも保持する。
【0051】
なお、必要に応じて、状態保持信号Sholdを命令読み出し処理装置200以外のシステムを構成するブロックへ出力し、現在状態を維持させるようにしてもよい。
【0052】
命令実行アドレスがロックされたプログラムカウンタ11は前と同じ命令実行アドレスをプログラムメモリー12に与える。プログラムメモリー12から読み出されて命令レジスタ13に格納される命令コードは、元と同じものを保持する。命令デコーダ14は、その同じ読み出し命令コードInst(r) を再度解読してマイクロ命令コードμIを生成し、それをマイクロ命令レジスタ15および命令エンコーダ16に出力する。命令エンコーダ16はマイクロ命令コードμIを再度エンコードする。命令比較器17はエンコード命令コードInst(e) と読み出し命令コードInst(r) との再度の比較対照を行う。不一致の状態が継続する限り、上記の動作を繰り返し行う。すなわち、命令比較器17からプログラムカウンタ11に対しては状態保持信号Sholdが出力される状態が継続し、マイクロ命令レジスタ15に対しては無効化信号Snullが出力される状態が継続する。
【0053】
このような状態において、命令デコーダ14における誤解読の状態が解消されると、命令比較器17では、エンコード命令コードInst(e) と読み出し命令コードInst(r) の一致を検出し、状態保持信号Sholdおよび無効化信号Snullの出力を停止する。これにより、プログラムカウンタ11は命令実行アドレスをインクリメントする動作を再開し、マイクロ命令レジスタ15は命令デコーダ14からの正しく解読されたマイクロ命令コードμIを一時記憶する動作を再開する。その結果として、システムは、解読異常が発生した直前の命令の直後の命令から動作を再開することになる。
【0054】
本実施の形態2においては、電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダ14において誤解読が発生したときには、実施の形態1の場合のようにシステム全体を初期化しないで、現状態を保持し、命令デコーダ14の動作が正常に復帰したときには、保持状態に転換したときの命令の次の命令から動作を再開することとしているので、それまでにおいて実行した動作および各部において蓄積していたデータを失うことがなく、したがって、システムの動作の再開を効率的に行うことができる。
【0055】
(実施の形態3)
上記の実施の形態2の場合においては、命令デコーダ14の誤解読の状態が続く限りにおいて現在状態を保持する状態が継続するように構成してあるため、誤解読の状態が長く続く場合には、現在状態を保持する状態も長時間にわたって続くこととなり、これでは、結局、外見上、システムが暴走しているのと同じ状況になってしまう。本実施の形態3は、このような不都合を解消するものとして構成されている。
【0056】
図3は実施の形態3におけるマイクロコンピュータの命令読み出し処理装置300の構成を示すブロック図である。図3において、符号の11から17までについては、上記の実施の形態2(図2)の場合と同一構成要素を指示しているので、ここでは要素名称のみを示すこととする。すなわち、符号の11はプログラムカウンタ、12はプログラムメモリー、13は命令レジスタ、14は命令デコーダ、15はマイクロ命令レジスタ、16は命令エンコーダ、17は命令比較器、Inst(r) は読み出し命令コード、μIはマイクロ命令コード、Inst(e) はエンコード命令コード、Serr は命令比較器17が出力する解読異常検出信号、Sholdはプログラムカウンタ11に入力される状態保持信号、Snullはマイクロ命令レジスタ15に入力される無効化信号である。
【0057】
本実施の形態3においては、新たな構成として、状態保持カウンタ18を設けている。すなわち、命令比較器17からの解読異常検出信号Serr を状態保持信号Sholdとして入力し、それを入力している期間においては、基準クロックCLKをカウントし、そのカウント値が所定の基準値19に達したときに、リセット信号RSTとして出力する状態保持カウンタ18を設けてある。この状態保持カウンタ18は、状態保持信号Sholdがアクティブからインアクティブに反転したときには、ゼロクリアされるようになっている。
【0058】
次に、上記のように構成された実施の形態3の命令読み出し処理装置300の動作を説明する。命令比較器17において不一致が判定されたときに、プログラムカウンタ11に状態保持信号Sholdを出力し、マイクロ命令レジスタ15に無効化信号Snullを出力するが、このときの動作は上記の実施の形態2の場合と同様である。本実施の形態3においては、その動作に加えて、次のような動作を行う。すなわち、状態保持カウンタ18は、命令比較器17から出力される解読異常検出信号Serr を状態保持信号Sholdとして入力し、その状態保持信号Sholdが入力されている期間においては基準クロックCLKをカウントする。そして、その基準クロックCLKのカウント値が所定の基準値19に達するまでは、状態保持カウンタ18はリセット信号RSTを生成しないが、カウント値が所定の基準値19に達したときには、リセット信号RSTを生成して出力する。そして、実施の形態1の場合と同様に、この状態保持カウンタ18から出力されるリセット信号RSTは、マイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックに出力される。
【0059】
なお、このリセット信号RSTの出力先や使用目的は、システムの条件や使用目的や仕様等に応じて任意に定めてよい。リセット信号RSTをプログラムカウンタ11に出力した場合には、プログラムカウンタ11がプログラムメモリー12に与える命令実行アドレスが初期化される。
【0060】
以上のように、本実施の形態3によれば、電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダ14において誤解読が発生したときに、状態保持信号Sholdおよび無効化信号Snullの継続的な出力のためにシステムの現在状態保持が長時間続くときに、その継続の状態を一定の限度内で中断して、上記の外見的なシステム暴走状態を回避し、システムを初期化することとしたものである。すなわち、誤解読を起こした命令デコーダ14の正常復帰のチャンスを待つことでそれまでの動作の履歴や蓄積されたデータをなるべく生かすようにすることを原則にするととともに、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、安全性を確保するために、システム全体を初期化するものである。換言すれば、状況の変化にダイナミックに適応させて、最適なコントロールを可能とするのである。
【0061】
【発明の効果】
マイクロコンピュータにおける命令読み出し処理装置についての本発明によれば、原因と結果とであるリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとの実質的に直接の比較対照を行うので、しかも、エンコードを介しての物理レベル(形態:次元)を一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダにおいて誤解読が発生した場合に、その誤解読の判定の精度を大幅に改善することができ、誤解読に起因して派生する不都合を抑制して、信頼性の高いシステムを構築することができ、しかも、そのことを比較的簡単な構成をもって実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図2】本発明の実施の形態2におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図3】本発明の実施の形態3におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図4】従来の技術におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【符号の説明】
11…プログラムカウンタ
12…プログラムメモリー
13…命令レジスタ
14…命令デコーダ
15…マイクロ命令レジスタ
16…命令エンコーダ
17…命令比較器
18…状態保持カウンタ
19…所定の基準値
100…実施の形態1の命令読み出し処理装置
200…実施の形態2の命令読み出し処理装置
300…実施の形態3の命令読み出し処理装置
μI…マイクロ命令コード
Inst(r) …読み出し命令コード
Inst(e) …エンコード命令コード
Serr …解読異常検出信号
Shold…状態保持信号
Snull…無効化信号
CLK…基準クロック
RST…リセット信号

Claims (6)

  1. 命令デコーダの誤解読の発生の判定について、前記命令デコーダが出力するマイクロ命令コードをエンコードしたエンコード命令コードを前記命令デコーダが取り込んだ読み出し命令コードと比較対照するように構成してあることを特徴するマイクロコンピュータにおける命令読み出し処理装置。
  2. プログラムカウンタが指示する命令実行アドレスにおいてプログラムメモリーから読み出した命令コードを命令レジスタに一時記憶させ、命令デコーダにおいて前記命令レジスタの読み出し命令コードを解読してマイクロ命令コードとしてマイクロ命令レジスタに一時記憶させ、そのマイクロ命令レジスタからマイクロコントローラにマイクロ命令コードを送出するように構成された命令読み出し処理装置において、前記命令レジスタが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成する命令エンコーダと、前記エンコード命令コードと前記命令レジスタの読み出し命令コードとを入力して比較対照し不一致のときに解読異常検出信号を生成出力する命令比較器とを備えていることを特徴するマイクロコンピュータにおける命令読み出し処理装置。
  3. 前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をリセット信号としてシステム各部に出力するように構成してあることを特徴する請求項1または請求項2に記載のマイクロコンピュータにおける命令読み出し処理装置。
  4. 前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をプログラムカウンタに対しては状態保持信号として出力し、マイクロ命令レジスタに対しては無効化信号として出力するように構成してあることを特徴する請求項1から請求項3までのいずれかに記載のマイクロコンピュータにおける命令読み出し処理装置。
  5. 前記比較対照によって出力される解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにシステム各部にリセット信号を出力するように構成してあることを特徴する請求項4に記載のマイクロコンピュータにおける命令読み出し処理装置。
  6. 前記命令比較器から出力される解読異常検出信号を入力し、その解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにリセット信号を出力する状態保持カウンタを備えていることを特徴する請求項2に記載のマイクロコンピュータにおける命令読み出し処理装置。
JP2000085784A 2000-03-27 2000-03-27 マイクロコンピュータにおける命令読み出し処理装置 Expired - Fee Related JP3614753B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000085784A JP3614753B2 (ja) 2000-03-27 2000-03-27 マイクロコンピュータにおける命令読み出し処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000085784A JP3614753B2 (ja) 2000-03-27 2000-03-27 マイクロコンピュータにおける命令読み出し処理装置

Publications (2)

Publication Number Publication Date
JP2001273136A JP2001273136A (ja) 2001-10-05
JP3614753B2 true JP3614753B2 (ja) 2005-01-26

Family

ID=18602049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000085784A Expired - Fee Related JP3614753B2 (ja) 2000-03-27 2000-03-27 マイクロコンピュータにおける命令読み出し処理装置

Country Status (1)

Country Link
JP (1) JP3614753B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140912B2 (en) 2006-11-02 2012-03-20 Nec Corporation Semiconductor integrated circuits and method of detecting faults of processors
JP2008158826A (ja) * 2006-12-25 2008-07-10 Sharp Corp 半導体集積回路

Also Published As

Publication number Publication date
JP2001273136A (ja) 2001-10-05

Similar Documents

Publication Publication Date Title
US4752930A (en) Watch dog timer
US5838896A (en) Central processing unit for preventing program malfunction
JP3202497B2 (ja) 情報処理装置
JP3614753B2 (ja) マイクロコンピュータにおける命令読み出し処理装置
RU2249247C2 (ru) Защита ядра вычислительного устройства от несанкционированных изменений извне
JP2003085123A (ja) メモリ制御装置及びシリアルメモリ
JP2008262437A (ja) プロセッサシステムおよび例外処理方法
KR970004098B1 (ko) 비교기를 갖는 타이머 회로
KR100239438B1 (ko) 오동작 방지 기능을 갖는 중앙 처리 장치
US20040019773A1 (en) Illegal instruction processing method and processor
JP4647276B2 (ja) 半導体回路装置
US7533412B2 (en) Processor secured against traps
JP3097672B2 (ja) メモリ制御回路
KR100498917B1 (ko) 오토 벡터 생성 회로
JPH09114658A (ja) マイクロコンピュータ
JP3183982B2 (ja) ディジタル制御装置
JP2001188688A (ja) 暴走検知回路
US6845443B2 (en) Method of processing a repeat block efficiently in a processor wherein the repeat count is not decremented in a specific case to prevent error in execution
US7571379B2 (en) Method and system for configuring registers in microcontrollers, and corresponding computer-program product
KR910006027Y1 (ko) 시스템 다운 방지회로
JPS61202234A (ja) アドレス制御回路
JPH0795279B2 (ja) Eprom内蔵型マイクロコンピュータ
JPS6370343A (ja) マイクロコンピユ−タ
JPH05250209A (ja) マイクロコンピュータの誤動作防止回路
JPH07160539A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
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: 20041005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041027

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees