(57)【特許請求の範囲】
【請求項１】
命令デコーダの誤解読の発生の判定について、前記命令デコーダが出力するマイクロ命令コードをエンコードしたエンコード命令コードを前記命令デコーダが取り込んだ読み出し命令コードと比較対照するように構成してあることを特徴とするマイクロコンピュータにおける命令読み出し処理装置。
【請求項２】
プログラムカウンタが指示する命令実行アドレスにおいてプログラムメモリーから読み出した命令コードを命令レジスタに一時記憶させ、命令デコーダにおいて前記命令レジスタの読み出し命令コードを解読してマイクロ命令コードとしてマイクロ命令レジスタに一時記憶させ、そのマイクロ命令レジスタからマイクロコントローラにマイクロ命令コードを送出するように構成された命令読み出し処理装置において、前記命令レジスタが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成する命令エンコーダと、前記エンコード命令コードと前記命令レジスタの読み出し命令コードとを入力して比較対照し不一致のときに解読異常検出信号を生成出力する命令比較器とを備えていることを特徴とするマイクロコンピュータにおける命令読み出し処理装置。
【請求項３】
前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をリセット信号としてシステム各部に出力するように構成してあることを特徴とする請求項１または請求項２に記載のマイクロコンピュータにおける命令読み出し処理装置。
【請求項４】
前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をプログラムカウンタに対しては状態保持信号として出力し、マイクロ命令レジスタに対しては無効化信号として出力するように構成してあることを特徴とする請求項１から請求項３までのいずれかに記載のマイクロコンピュータにおける命令読み出し処理装置。
【請求項５】
前記比較対照によって出力される解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにシステム各部にリセット信号を出力するように構成してあることを特徴とする請求項４に記載のマイクロコンピュータにおける命令読み出し処理装置。
【請求項６】
前記命令比較器から出力される解読異常検出信号を入力し、その解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにリセット信号を出力する状態保持カウンタを備えていることを特徴とする請求項２に記載のマイクロコンピュータにおける命令読み出し処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータにおける命令読み出し処理装置にかかわり、特には、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダにおいて誤解読が発生したときのシステム暴走などの不都合を解消するための技術に関する。
【０００２】
【従来の技術】
図４は従来の技術におけるマイクロコンピュータの命令読み出し処理装置４００の構成を示すブロック図である。図４において、符号の１１はプログラムカウンタ、１２はプログラムメモリー、１３は命令レジスタ、１４は命令デコーダ、１５はマイクロ命令レジスタである。プログラムカウンタ１１は、命令実行アドレスをプログラムメモリー１２に与える。プログラムメモリー１２においてプログラムカウンタ１１によって指示された命令実行アドレスの命令コードが読み出され、命令レジスタ１３に転送される。命令デコーダ１４は、命令レジスタ１３における読み出し命令コードＩｎｓｔ（ｒ）  を解読（デコード）し、その解読によるマイクロ命令コードμＩをマイクロ命令レジスタ１５に転送する。マイクロ命令レジスタ１５のマイクロ命令コードμＩは、マイクロコントローラの各部に対して制御信号等として出力されることにより、結果として、プログラムメモリー１２から読み出された命令の実行が行われる。
【０００３】
【発明が解決しようとする課題】
上記のように構成された図４に示す従来技術のマイクロコンピュータにおける命令読み出し処理装置４００においては、プログラムメモリー１２から読み出され、命令レジスタ１３に一時記憶され、命令デコーダ１４によって解読されることによって生成されてマイクロ命令レジスタ１５に転送されたマイクロ命令コードμＩが、プログラムメモリー１２からの読み出し命令コードＩｎｓｔ（ｒ）  を正しく解読したものかどうかを判定するようにはなっておらず、また、解読異常に対する安全確保を行うようにはなっていない。
【０００４】
そのため、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダで誤解読が発生しても、その誤解読によるマイクロ命令コードがそのまま出力され、それに基づいたマイクロ命令がマイクロコントローラで実行されてしまうため、システムでは異常動作、誤動作を誘発し、最悪の場合にはシステム全体が暴走してしまうという不都合を有している。
【０００５】
命令デコーダによる解読が正常に行われたかそれとも誤った解読であったかを検出する対策について、いくつかの提案が行われている（例えば、特開昭６３−８５８３１号公報、特開平５−２６５４号公報、特開平５−３５８９２号公報参照）。すなわち、命令デコーダによる解読の結果得られたマイクロ命令コードをある比較基準データと比較対照することにより、解読の正常／異常を判定するようにしている。
【０００６】
しかしながら、以上のいずれの公報の技術も、比較基準データ（固有の属性データ、比較用データ、プログラムカウンタカウント値）をあらかじめ特定のメモリ（属性データ記憶手段、ＣＲＯＭ、比較用データメモリ、設定回路）に登録設定してあって、解読後のマイクロ命令コードと前記特定のメモリから読み出した比較基準データとを比較するものである。しかしながら、この特定のメモリに登録設定されている比較基準データは、厳密には、プログラムメモリーに格納されている命令コードとは形態上、別のものである。両者間には、あらかじめ、１対１の対応関係を確保しているが、それでも、それはあくまで対応しているだけであって、全く同じものではあり得ない。別言すれば、両者の物理レベルが相違している。すなわち、そもそも格納場所が相違しているし、格納形態も相違しているからである。さらには、その格納は、あらかじめのものであって、過去のものであり、また、固定的なものであり、問題となっている命令デコーダの解読が正常か否かの判定を行う今の時点とは、時間的に全く無関係のものである。別言すれば、リアルタイムのものではない。加えて、特定のメモリから比較基準データを読み出すときに、上記のような急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して、その特定のメモリからの読み出しに誤動作が生じる可能性が残っている。また、別途に特定のメモリを設けることには、スペース面やコスト面での負担増となる。
【０００７】
本発明は上記した課題の解決を図るべく創作したものであって、プログラムメモリーから読み出した命令コードに対する命令デコーダでの解読が正常に行われたか否かの判定を高精度に、そして簡単な構成をもって実現することを目的としている。
【０００８】
【課題を解決するための手段】
上記した課題の解決を図ろうとするマイクロコンピュータにおける命令読み出し処理装置についての本発明は、命令デコーダが出力するマイクロ命令コードに対して逆変換のエンコードを施してエンコード命令コードを生成し、そのエンコード命令コードを読み出し命令コードと比較対照することに基づいて、命令デコーダにおける誤解読の発生の有無を判定するように構成したものである。
【０００９】
本発明による作用は次のとおりである。命令デコーダが入力するのが読み出し命令コードである。命令デコーダは、読み出し命令コードを入力し、所定の規則に従って解読（デコード）を行ってマイクロ命令コードを生成出力する。ここで、読み出し命令コードとマイクロ命令コードとは原因と結果との関係にある。その原因である読み出し命令コードを結果であるマイクロ命令コードに変換するのに用いる所定の規則の役割を担っているのが命令デコーダである。読み出し命令コードとマイクロ命令コードとは因果の関係にあるが、デコードという性質上、両者の形態（次元）は当然に異なっている。したがって、命令デコーダによる解読が正常に行われた否かを判定するのに、マイクロ命令コードと読み出し命令コードとを直接に比較対照しても意味がない。デコードによって形態が変容したマイクロ命令コードを元の読み出し命令コードと同じ形態に戻すと、初めて比較対照が意義のあるものとなる。
【００１０】
そこで、命令デコーダが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成し、そのようにして生成したエンコード命令コードを元の読み出し命令コードと比較対照することとしている。マイクロ命令コードをエンコード命令コードにエンコードする規則は、命令デコーダによる読み出し命令コードをマイクロ命令コードにデコード（解読）するときの規則に対して、同一の論理における逆変換の関係となっている。結果として、マイクロ命令コードをエンコードして生成したエンコード命令コードの形態は、命令デコーダがデコード（解読）を行った元の読み出し命令コードの形態と同一次元（態様）のものとなる。したがって、エンコード命令コードと読み出し命令コードとの比較対照は、正確には直接的なものではなくエンコードを介しての間接的なものであるが、そのエンコード自体は比較対照のために必要不可欠であるので、その実質は、直接的な比較対照となっている。
【００１１】
ここで、重要なことは、形態上における直接か間接かということではなく、むしろ、比較対照される両者が、直接的な因果関係をもつものとなっているということである。従来技術のように、比較基準データがあらかじめ特定のメモリに登録設定されているというのとは異なる。すなわち、いまデコードしたものをその場で直ちにエンコードしたものを比較基準データとしているのである。この比較基準データがエンコード命令コードであるが、これは、ダイナミックかつリアルタイムに生成されたものである。
【００１２】
以上のように、原因と結果とであるリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとの実質的に直接の比較対照を行うので、しかも、エンコードを介しての物理レベル（形態：次元）を一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、命令デコーダの解読エラーの判定の精度を大幅に改善することができる。しかも、そのための構成は比較的簡単なものでよい。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を総括的に説明する。
【００１４】
本願第１の発明のマイクロコンピュータにおける命令読み出し処理装置は、命令デコーダの誤解読の発生の判定について、前記命令デコーダが出力するマイクロ命令コードをエンコードしたエンコード命令コードを前記命令デコーダが取り込んだ読み出し命令コードと比較対照するように構成したものとなっている。
【００１５】
この第１の発明の構成は、上記の〔課題を解決するための手段〕の項の構成を別の表現形態で記述したものに相当し、それによる作用については、同じく上記の〔課題を解決するための手段〕の項で説明したのと実質的に同様のものとなる。すなわち、原因と結果とである互いにリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとを、物理レベル（形態：次元）を一致させた状態で実質的に直接的に比較対照するので、間接的かつ物理レベル不一致の比較対照である従来技術に比べて、命令デコーダの解読エラーの判定の精度の大幅な改善が可能となっている。
【００１６】
本願第２の発明のマイクロコンピュータにおける命令読み出し処理装置は、プログラムカウンタが指示する命令実行アドレスにおいてプログラムメモリーから読み出した命令コードを命令レジスタに一時記憶させ、命令デコーダにおいて前記命令レジスタの読み出し命令コードを解読してマイクロ命令コードとしてマイクロ命令レジスタに一時記憶させ、そのマイクロ命令レジスタからマイクロコントローラにマイクロ命令コードを送出するように構成された命令読み出し処理装置において、前記命令レジスタが出力するマイクロ命令コードをエンコードしてエンコード命令コードを生成する命令エンコーダと、前記エンコード命令コードと前記命令レジスタの読み出し命令コードとを入力して比較対照し不一致のときに解読異常検出信号を生成出力する命令比較器とを備えているという構成になっている。これは、上記の第１の発明をより具体的レベルで記述したものに相当している。
【００１７】
この第２の発明による作用は次のとおりである。命令デコーダは、命令レジスタにおける読み出し命令コードを解読（デコード）してマイクロ命令コードを生成し、そのマイクロ命令コードをマイクロ命令レジスタに転送格納するが、これと並行して、命令エンコーダはマイクロ命令レジスタを逆変換の状態でエンコードしてエンコード命令コードを生成し、命令比較器に出力する。命令比較器は、命令デコーダの入力側の命令レジスタにおける読み出し命令コードと、命令デコーダの出力側の命令エンコーダからのエンコード命令コードとを入力して、これら読み出し命令コードとエンコード命令コードとを比較対照し、不一致と判定したときには、解読異常検出信号を生成して出力する。
【００１８】
したがって、上記の第１の発明の場合と同様に、原因と結果とである互いにリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとを、物理レベル（形態：次元）を一致させた状態で実質的に直接的に比較対照することとなり、従来技術に比べて、命令デコーダの解読エラーの判定の精度の大幅な改善が可能となっている。
【００１９】
本願第３の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第１・第２の発明において、前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をリセット信号としてシステム各部に出力するように構成してある。
【００２０】
この第３の発明による作用は次のとおりである。エンコード命令コードと読み出し命令コードとが不一致のときは、命令デコーダによる解読に異常が発生したことを意味するが、この場合には、解読異常検出信号をリセット信号として出力してシステム各部をリセットする。したがって、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダに誤解読が発生した場合には、システム全体を初期化してしまうので、予期せぬ誤解読による異常な命令によって、システムで異常動作や誤動作を誘発したり、最悪の場合にシステムが暴走してしまうといった不都合な事態を未然に防止することが可能となる。
【００２１】
本願第４の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第１〜第３の発明において、前記エンコード命令コードと読み出し命令コードとの比較対照の結果、両者が不一致のときに生成出力する解読異常検出信号をプログラムカウンタに対しては状態保持信号として出力し、マイクロ命令レジスタに対しては無効化信号として出力するように構成したものとなっている。
【００２２】
この第４の発明による作用は次のとおりである。電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダにおいて誤解読が発生したときに、上記の第３の発明のように解読異常検出信号をリセット信号としてシステム全体を初期化すると、それまでの動作やデータが無駄になってしまうが、この第４の発明のように、解読異常検出信号を状態保持信号としてプログラムカウンタに与えて、プログラムカウンタの命令実行アドレスを現状態に保持するとともに、解読異常検出信号を無効化信号としてマイクロ命令レジスタに与えて、マイクロ命令レジスタの内容を強制的にＮＯＰ命令（何も実行しない命令）に切り換えて、その状態を保持する。そして、命令デコーダにおける誤解読の状態が解消されると、状態保持信号および無効化信号の出力が停止され、プログラムカウンタは命令実行アドレスのインクリメントを再開し、マイクロ命令レジスタは命令デコーダからの正しく解読されたマイクロ命令コードを一時記憶する動作を再開する。その結果として、システムは、解読異常が発生した直前の命令に対する直後の命令から動作を再開することになる。したがって、それまでにおいて実行した動作および各部において蓄積していたデータを失うことがなく、システムの動作の再開を効率的に行うことが可能となる。
【００２３】
本願第５の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第４の発明において、前記比較対照によって出力される解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにシステム各部にリセット信号を出力するように構成したものとなっている。
【００２４】
この第５の発明による作用は次のとおりである。上記の第４の発明においては、命令デコーダにおける誤解読が解消されない限りは、システムの動作を先に進めることなく現状態を保持する状態がいつまでも継続することとなり、これでは、結局、外見上、システムが暴走しているのと同じ状況になってしまう。
【００２５】
そこで、現状態保持の状態が所定時間を越えて継続することとなるに至った段階では、その現状態保持の状態を中断させることとしたものである。すなわち、上記の外見上のシステム暴走状態を回避し、システムを初期化することとしたものである。命令デコーダでの誤解読発生までの動作および蓄積されたデータをなるべく生かすようにするととともに、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、安全性を確保するために、システム全体を初期化する。これによって、命令デコーダの誤解読発生に起因して派生する不都合な事態を、そのときの状況の変化にダイナミックに適応させて、最適にコントロールすることが可能となる。
【００２６】
本願第６の発明のマイクロコンピュータにおける命令読み出し処理装置は、上記の第２の発明において、前記命令比較器から出力される解読異常検出信号を入力し、その解読異常検出信号を入力している期間において基準クロックをカウントし、そのカウント値が所定の基準値に達したときにリセット信号を出力する状態保持カウンタを備えているという構成になっている。これは、上記の第５の発明をより具体的レベルで記述したものに相当している。また、上記の第２の発明において、新たな構成要素として、状態保持カウンタを備えたことを記述している。
【００２７】
この第６の発明による作用は次のとおりである。状態保持カウンタは、電圧変動や電磁波によるノイズ障害などの影響のために命令比較器から解読異常検出信号が出力されている期間においては、基準クロックをカウントする。誤解読が継続する限りにおいて、基準クロックのカウントアップは継続するが、そのカウント値が所定の基準値に達すると、状態保持カウンタはリセット信号を出力して、システムの全体を初期化する。すなわち、誤解読発生までの動作および蓄積されたデータをなるべく生かすことを原則とするが、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、システム全体をリセットして安全性を確保することとしている。これにより、命令デコーダの誤解読発生に起因して派生する不都合な事態に対してそのときの状況の変化にダイナミックに適応的に対処することが可能となる。
【００２８】
（具体的な実施の形態）
以下、本発明のマイクロコンピュータにおける命令読み出し処理装置の具体的な実施の形態について、図面を用いて詳細に説明する。
【００２９】
（実施の形態１）
図１は実施の形態１におけるマイクロコンピュータの命令読み出し処理装置１００の構成を示すブロック図である。図１において、符号の１１は命令実行アドレスを出力するプログラムカウンタ、１２はプログラムを実行する上で必要な多数の命令コード（データを含む）がそれぞれ所定のアドレスにおいて格納されており、プログラムカウンタ１１によって指示された命令実行アドレスに従って対応する命令コードが読み出されるように構成されたプログラムメモリー、１３はプログラムメモリー１２から読み出された命令コードすなわち読み出し命令コードＩｎｓｔ（ｒ）  を一時的に記憶しておく命令レジスタ、１４は命令レジスタ１３における読み出し命令コードＩｎｓｔ（ｒ）  を読み出し、所定の規則に従って解読を行ってマイクロ命令コードμＩとして出力する命令デコーダ、１５は命令デコーダ１４から出力されてくるマイクロ命令コードμＩを一時的に記憶するとともに図示しないマイクロコントローラへと出力するためのマイクロ命令レジスタであり、以上の構成要素１１〜１５については図４に示した従来技術の場合と同様のものとなっている。
【００３０】
そして、新たな構成要素として、符号の１６は命令デコーダ１４から出力されてくるマイクロ命令コードμＩを、命令デコーダ１４が解読を行う規則と同じ範疇で逆変換の状態でエンコードしてエンコード命令コードＩｎｓｔ（ｅ）  として出力する命令エンコーダ、１７は命令レジスタ１３に一時記憶されている読み出し命令コードＩｎｓｔ（ｒ）  と命令エンコーダ１６によるエンコード命令コードＩｎｓｔ（ｅ）  とを入力して、両者の比較対照を行って両者が一致するか否かを判定し、不一致のときは命令解読異常と判定して解読異常検出信号Ｓｅｒｒ  を生成し、これをマイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力する命令比較器である。
【００３１】
次に、上記のように構成された実施の形態１の命令読み出し処理装置１００の動作を説明する。
【００３２】
プログラムカウンタ１１が出力する命令実行アドレスに従ってプログラムメモリー１２から命令コードＩｎｓｔ（ｒ）  が読み出され、命令レジスタ１３に転送されて一時記憶される。命令デコーダ１４は、命令レジスタ１３から読み出し命令コードＩｎｓｔ（ｒ）  を入力して所定の規則に従って解読を行い、その解読によって得られたマイクロ命令コードμＩをマイクロ命令レジスタ１５に転送する。マイクロ命令レジスタ１５のマイクロ命令コードμＩは、マイクロコントローラの各部に対して制御信号等として出力されることにより、プログラムメモリー１２から読み出された命令の実行が行われる。
【００３３】
このとき、命令エンコーダ１６は命令デコーダ１４から出力されたマイクロ命令コードμＩを入力して所定の規則に従って解読とは逆変換である符号化すなわちエンコードを行い、その結果をエンコード命令コードＩｎｓｔ（ｅ）  として命令比較器１７に出力する。命令比較器１７においては、命令エンコーダ１６からのエンコード命令コードＩｎｓｔ（ｅ）  を入力するとともに命令レジスタ１３からの読み出し命令コードＩｎｓｔ（ｒ）  を入力し、両者が一致するか否かを判定する。
【００３４】
急激な電圧変動がない場合や、外部からの電磁波の侵入や内部での電磁波の発生がなくて、ノイズ障害などの影響がない場合に、命令レジスタ１３における読み出し命令コードＩｎｓｔ（ｒ）  に対する命令デコーダ１４による解読が正常に行われたときには、発生命令レジスタ１３における読み出し命令コードＩｎｓｔ（ｒ）  に対する命令デコーダ１４による解読が正常に行われる。あるいは、たとえ急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などの影響に起因して命令デコーダに誤解読が発生しても、その影響が小さい場合には、命令デコーダ１４による解読が正常に行われる。このように、命令デコーダ１４による解読が正常に行われた場合には、その命令デコーダ１４による解読結果としてのマイクロ命令コードμＩに対する命令エンコーダ１６によるエンコード命令コードＩｎｓｔ（ｅ）  は、命令レジスタ１３における読み出し命令コードＩｎｓｔ（ｒ）  と一致することになる。このときは、命令比較器１７は、その一致判定の結果、解読異常検出信号Ｓｅｒｒ  の出力は行わない。したがって、この命令読み出し処理装置１００は、通常動作を継続させることになり、プログラムカウンタ１１はその命令実行アドレスをインクリメントする。
【００３５】
しかし、電圧変動や電磁波によるノイズ障害などの影響が大きいために命令デコーダ１４において誤解読が発生し、その結果として、命令エンコーダ１６によるマイクロ命令コードμＩのエンコード結果であるエンコード命令コードＩｎｓｔ（ｅ）  が読み出し命令コードＩｎｓｔ（ｒ）  と不一致となる場合がある。このときは、命令比較器１７は、その不一致判定の結果として、解読異常検出信号Ｓｅｒｒ  を生成して出力する。
【００３６】
本実施の形態１においては、この解読異常検出信号Ｓｅｒｒ  は、マイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力される。この解読異常検出信号Ｓｅｒｒ  の出力先や使用目的は、システムの条件や使用目的や仕様等に応じて任意に定めてよい。プログラムカウンタ１１にリセット信号として出力した場合には、プログラムカウンタ１１がプログラムメモリー１２に与える命令実行アドレスが初期化される。
【００３７】
もう少し詳しく説明すると、次のようになる。電圧変動や電磁波によるノイズ障害などの影響がなければ、命令デコーダ１４には誤解読は生じないし、もし、電圧変動や電磁波によるノイズ障害などの影響があっても命令デコーダ１４で誤解読が生じないときには、命令エンコーダ１６でも誤符号は生じないとみなしてよい。したがって、一般的には、電圧変動や電磁波によるノイズ障害などの影響がない限りは、命令比較器１７における命令レジスタ１３からの読み出し命令コードＩｎｓｔ（ｒ）  と命令エンコーダ１６からのエンコード命令コードＩｎｓｔ（ｅ）  とは一致する。
【００３８】
また、電圧変動や電磁波によるノイズ障害などの影響が大きくて、命令デコーダ１４に誤解読が発生したときは、命令エンコーダ１６で誤符号が発生する可能性も増すが、もし誤符号が発生したとしても、誤解読したマイクロ命令コードμＩが誤符号によって却って正しいエンコード命令コードＩｎｓｔ（ｅ）  に変換されてしまうといった偶然的な可能性はほとんど皆無となるはずである。したがって、命令デコーダ１４で誤解読が発生したときは、エンコード命令コードＩｎｓｔ（ｅ）  は必然的に読み出し命令コードＩｎｓｔ（ｒ）  と不一致となり、結果として、誤解読の検出を正しく行うことができるのである。
【００３９】
以上のようにして、本実施の形態１の命令読み出し処理装置１００によれば、予期しない誤解読による異常な命令のためにシステムが異常動作・誤動作することや暴走することを防止し、解読異常に対する安全性を充分に確保することができる。
【００４０】
特に、本発明のこの実施の形態１においては、命令デコーダ１４による解読が正常に行われたか否かの判定において互いに比較対照すべき２つの要素の関係性が、原因と結果との関係になっていることに特徴がある。すなわち、比較対照の一方の要素は、命令レジスタ１３の読み出し命令コードＩｎｓｔ（ｒ）  から命令デコーダ１４によって解読されたマイクロ命令コードμＩを、さらに命令エンコーダ１６によってエンコードしたエンコード命令コードＩｎｓｔ（ｅ）  である。比較対照のもう一方の要素は、エンコード命令コードＩｎｓｔ（ｅ）  の元のマイクロ命令コードμＩのさらに元の読み出し命令コードＩｎｓｔ（ｒ）  である。したがって、これら読み出し命令コードＩｎｓｔ（ｒ）  とエンコード命令コードＩｎｓｔ（ｅ）  とは原因と結果とであるリアルタイムの密接不可分・不即不離の関係となっている。
【００４１】
なお、命令デコーダ１４を境にして、その入力側の読み出し命令コードＩｎｓｔ（ｒ）  と出力側のマイクロ命令コードμＩとを直接に比較対照しないのは、命令デコーダ１４での解読すなわちデコードによって、マイクロ命令コードμＩのコード形態が読み出し命令コードＩｎｓｔ（ｒ）  のコード形態から変容し、直接に比較対照できないためである。比較対照するには、コード形態を統一化すること、つまりは同じ次元に合わせる必要がある。そこで、命令デコーダ１４と命令比較器１７との間に命令エンコーダ１６を介在させ、この命令エンコーダ１６によってマイクロ命令コードμＩを、読み出し命令コードＩｎｓｔ（ｒ）  と同じコード形態のエンコード命令コードＩｎｓｔ（ｅ）  へと戻しているのである。命令デコーダ１４が読み出し命令コードＩｎｓｔ（ｒ）  をマイクロ命令コードμＩに変換するときの規則と、命令エンコーダ１６がマイクロ命令コードμＩをエンコード命令コードＩｎｓｔ（ｅ）  に変換するときの規則とは同じ次元に立っている。この結果として、原因としての読み出し命令コードＩｎｓｔ（ｒ）  と結果としてのエンコード命令コードＩｎｓｔ（ｅ）  とを直接に比較対照することができるようになっているのである。
【００４２】
別の角度から解釈すると、命令レジスタ１３と命令デコーダ１４と命令エンコーダ１６と命令比較器１７とがループ構造となっている。それは、時間的に相関があるものどうしの比較対照を行うものであり、一般的な自動制御のフィードバックループに似たものとなっている。
【００４３】
以上のように、原因である読み出し命令コードＩｎｓｔ（ｒ）  と結果であるエンコード命令コードＩｎｓｔ（ｅ）  とを比較対照するので、さらに端的にいうと、リアルタイムな密接不可分・不即不離の関係である原因と結果との直接的な比較対照となっているので、しかも、エンコードを介しての物理レベルを一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、命令デコーダ１４の解読エラーの判定の精度を大幅に改善することができている。
【００４４】
さらに、本実施の形態１においては、従来技術のように、あらかじめ、プログラムメモリー１２における命令コードＩｎｓｔ（ｒ）  と１対１の対応関係のもとで定められた比較基準データを特定のメモリに登録しておく必要がない。すなわち、１対１の対応関係で比較基準データを作成し、それを特定のメモリに不揮発の状態で登録しておくのは、スペース面やコスト面での負担増となるが、本実施の形態１によれば、そのような負担増は解消することが可能となっており、命令デコーダ１４の誤解読に起因するシステムの異常動作や誤動作や、最悪の場合のシステムの暴走といった不都合な事態を未然に防止する機能を、比較的簡単な構成で実現することができる。
【００４５】
（実施の形態２）
図２は実施の形態２におけるマイクロコンピュータの命令読み出し処理装置２００の構成を示すブロック図である。図１において、符号の１１から１７までについては、上記の実施の形態１（図１）の場合と同一構成要素を指示しているので、ここでは要素名称のみを示すこととする。すなわち、符号の１１はプログラムカウンタ、１２はプログラムメモリー、１３は命令レジスタ、１４は命令デコーダ、１５はマイクロ命令レジスタ、１６は命令エンコーダ、１７は命令比較器、Ｉｎｓｔ（ｒ）  は読み出し命令コード、μＩはマイクロ命令コード、Ｉｎｓｔ（ｅ）  はエンコード命令コード、Ｓｅｒｒ  は解読異常検出信号である。
【００４６】
本実施の形態２においては、新たな構成として、命令比較器１７においてエンコード命令コードＩｎｓｔ（ｅ）  と読み出し命令コードＩｎｓｔ（ｒ）  との比較対照の結果が不一致のときに出力する解読異常検出信号Ｓｅｒｒ  を、プログラムカウンタ１１に対しては状態保持信号Ｓｈｏｌｄとして出力し、マイクロ命令レジスタ１５に対しては無効化信号Ｓｎｕｌｌとして出力するように構成されている。
【００４７】
また、プログラムカウンタ１１は、命令比較器１７から状態保持信号Ｓｈｏｌｄを入力したときには、命令実行アドレスのインクリメントを中断して、現在（直前）の命令実行アドレスをそのまま保持するように構成されている。また、マイクロ命令レジスタ１５は、命令比較器１７から無効化信号Ｓｎｕｌｌを入力したときには、その内部状態をＮＯＰ命令（何も実行しない命令）を出力する状態に強制的に切り換え、かつその状態を保持するように構成されている。
【００４８】
上記の実施の形態１との比較でいうと、実施の形態１の場合には、エンコード命令コードＩｎｓｔ（ｅ）  が読み出し命令コードＩｎｓｔ（ｒ）  と不一致であることをもって命令デコーダ１４の誤解読を検出したとき出力する解読異常検出信号Ｓｅｒｒ  をマイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックにリセット信号等として出力するものであったが、本実施の形態２では、システム全体をリセットするのではなく、命令比較器１７において不一致が解消されて一致の状態に戻るまでは、システム全体の現状態を保持することとしたものとなっている。
【００４９】
次に、上記のように構成された実施の形態２の命令読み出し処理装置２００の動作を説明する。
【００５０】
急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダに誤解読が発生したとき、命令比較器１７は解読異常検出信号Ｓｅｒｒ  を生成し、それをプログラムカウンタ１１に対しては状態保持信号Ｓｈｏｌｄとして出力し、マイクロ命令レジスタ１５に対しては無効化信号Ｓｎｕｌｌとして出力する。状態保持信号Ｓｈｏｌｄを入力したプログラムカウンタ１１は、直前（現在）の命令実行アドレスをインクリメントすることなく、そのまま保持する。一方、無効化信号Ｓｎｕｌｌを入力したマイクロ命令レジスタ１５は、命令デコーダ１４から出力されてきたマイクロ命令コードμＩを無視し、ＮＯＰ命令を出力する状態に強制的に切り換えられ、その状態を保持する。マイクロコントローラは、マイクロ命令レジスタ１５におけるＮＯＰ命令のマイクロ命令コードを読み出すので、前の命令の実行を行った後は、何も動作せず、元の状態をそのまま保つことになる。以上の相乗により、システム全体として、前命令の実行後の状態を保持し、誤解読に起因しての誤動作や暴走状態を回避する。それまでの動作の履歴やデータも保持する。
【００５１】
なお、必要に応じて、状態保持信号Ｓｈｏｌｄを命令読み出し処理装置２００以外のシステムを構成するブロックへ出力し、現在状態を維持させるようにしてもよい。
【００５２】
命令実行アドレスがロックされたプログラムカウンタ１１は前と同じ命令実行アドレスをプログラムメモリー１２に与える。プログラムメモリー１２から読み出されて命令レジスタ１３に格納される命令コードは、元と同じものを保持する。命令デコーダ１４は、その同じ読み出し命令コードＩｎｓｔ（ｒ）  を再度解読してマイクロ命令コードμＩを生成し、それをマイクロ命令レジスタ１５および命令エンコーダ１６に出力する。命令エンコーダ１６はマイクロ命令コードμＩを再度エンコードする。命令比較器１７はエンコード命令コードＩｎｓｔ（ｅ）  と読み出し命令コードＩｎｓｔ（ｒ）  との再度の比較対照を行う。不一致の状態が継続する限り、上記の動作を繰り返し行う。すなわち、命令比較器１７からプログラムカウンタ１１に対しては状態保持信号Ｓｈｏｌｄが出力される状態が継続し、マイクロ命令レジスタ１５に対しては無効化信号Ｓｎｕｌｌが出力される状態が継続する。
【００５３】
このような状態において、命令デコーダ１４における誤解読の状態が解消されると、命令比較器１７では、エンコード命令コードＩｎｓｔ（ｅ）  と読み出し命令コードＩｎｓｔ（ｒ）  の一致を検出し、状態保持信号Ｓｈｏｌｄおよび無効化信号Ｓｎｕｌｌの出力を停止する。これにより、プログラムカウンタ１１は命令実行アドレスをインクリメントする動作を再開し、マイクロ命令レジスタ１５は命令デコーダ１４からの正しく解読されたマイクロ命令コードμＩを一時記憶する動作を再開する。その結果として、システムは、解読異常が発生した直前の命令の直後の命令から動作を再開することになる。
【００５４】
本実施の形態２においては、電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダ１４において誤解読が発生したときには、実施の形態１の場合のようにシステム全体を初期化しないで、現状態を保持し、命令デコーダ１４の動作が正常に復帰したときには、保持状態に転換したときの命令の次の命令から動作を再開することとしているので、それまでにおいて実行した動作および各部において蓄積していたデータを失うことがなく、したがって、システムの動作の再開を効率的に行うことができる。
【００５５】
（実施の形態３）
上記の実施の形態２の場合においては、命令デコーダ１４の誤解読の状態が続く限りにおいて現在状態を保持する状態が継続するように構成してあるため、誤解読の状態が長く続く場合には、現在状態を保持する状態も長時間にわたって続くこととなり、これでは、結局、外見上、システムが暴走しているのと同じ状況になってしまう。本実施の形態３は、このような不都合を解消するものとして構成されている。
【００５６】
図３は実施の形態３におけるマイクロコンピュータの命令読み出し処理装置３００の構成を示すブロック図である。図３において、符号の１１から１７までについては、上記の実施の形態２（図２）の場合と同一構成要素を指示しているので、ここでは要素名称のみを示すこととする。すなわち、符号の１１はプログラムカウンタ、１２はプログラムメモリー、１３は命令レジスタ、１４は命令デコーダ、１５はマイクロ命令レジスタ、１６は命令エンコーダ、１７は命令比較器、Ｉｎｓｔ（ｒ）  は読み出し命令コード、μＩはマイクロ命令コード、Ｉｎｓｔ（ｅ）  はエンコード命令コード、Ｓｅｒｒ  は命令比較器１７が出力する解読異常検出信号、Ｓｈｏｌｄはプログラムカウンタ１１に入力される状態保持信号、Ｓｎｕｌｌはマイクロ命令レジスタ１５に入力される無効化信号である。
【００５７】
本実施の形態３においては、新たな構成として、状態保持カウンタ１８を設けている。すなわち、命令比較器１７からの解読異常検出信号Ｓｅｒｒ  を状態保持信号Ｓｈｏｌｄとして入力し、それを入力している期間においては、基準クロックＣＬＫをカウントし、そのカウント値が所定の基準値１９に達したときに、リセット信号ＲＳＴとして出力する状態保持カウンタ１８を設けてある。この状態保持カウンタ１８は、状態保持信号Ｓｈｏｌｄがアクティブからインアクティブに反転したときには、ゼロクリアされるようになっている。
【００５８】
次に、上記のように構成された実施の形態３の命令読み出し処理装置３００の動作を説明する。命令比較器１７において不一致が判定されたときに、プログラムカウンタ１１に状態保持信号Ｓｈｏｌｄを出力し、マイクロ命令レジスタ１５に無効化信号Ｓｎｕｌｌを出力するが、このときの動作は上記の実施の形態２の場合と同様である。本実施の形態３においては、その動作に加えて、次のような動作を行う。すなわち、状態保持カウンタ１８は、命令比較器１７から出力される解読異常検出信号Ｓｅｒｒ  を状態保持信号Ｓｈｏｌｄとして入力し、その状態保持信号Ｓｈｏｌｄが入力されている期間においては基準クロックＣＬＫをカウントする。そして、その基準クロックＣＬＫのカウント値が所定の基準値１９に達するまでは、状態保持カウンタ１８はリセット信号ＲＳＴを生成しないが、カウント値が所定の基準値１９に達したときには、リセット信号ＲＳＴを生成して出力する。そして、実施の形態１の場合と同様に、この状態保持カウンタ１８から出力されるリセット信号ＲＳＴは、マイクロコンピュータおよびマイクロコントローラを含めたシステム全体での所要のブロックに出力される。
【００５９】
なお、このリセット信号ＲＳＴの出力先や使用目的は、システムの条件や使用目的や仕様等に応じて任意に定めてよい。リセット信号ＲＳＴをプログラムカウンタ１１に出力した場合には、プログラムカウンタ１１がプログラムメモリー１２に与える命令実行アドレスが初期化される。
【００６０】
以上のように、本実施の形態３によれば、電圧変動や電磁波によるノイズ障害などの影響のために命令デコーダ１４において誤解読が発生したときに、状態保持信号Ｓｈｏｌｄおよび無効化信号Ｓｎｕｌｌの継続的な出力のためにシステムの現在状態保持が長時間続くときに、その継続の状態を一定の限度内で中断して、上記の外見的なシステム暴走状態を回避し、システムを初期化することとしたものである。すなわち、誤解読を起こした命令デコーダ１４の正常復帰のチャンスを待つことでそれまでの動作の履歴や蓄積されたデータをなるべく生かすようにすることを原則にするととともに、それが生かせない程度の長い時間にわたって正常復帰が果たされないときには、安全性を確保するために、システム全体を初期化するものである。換言すれば、状況の変化にダイナミックに適応させて、最適なコントロールを可能とするのである。
【００６１】
【発明の効果】
マイクロコンピュータにおける命令読み出し処理装置についての本発明によれば、原因と結果とであるリアルタイムに密接不可分・不即不離の関係となっている読み出し命令コードとエンコード命令コードとの実質的に直接の比較対照を行うので、しかも、エンコードを介しての物理レベル（形態：次元）を一致させた状態での比較対照となっているので、間接的でしかも物理レベルが不一致の比較対照である従来技術に比べて、急激な電圧変動や外部から侵入した電磁波または内部で発生した電磁波によるノイズ障害などに起因して命令デコーダにおいて誤解読が発生した場合に、その誤解読の判定の精度を大幅に改善することができ、誤解読に起因して派生する不都合を抑制して、信頼性の高いシステムを構築することができ、しかも、そのことを比較的簡単な構成をもって実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図２】本発明の実施の形態２におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図３】本発明の実施の形態３におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【図４】従来の技術におけるマイクロコンピュータにおける命令読み出し処理装置の構成を示すブロック図
【符号の説明】
１１…プログラムカウンタ
１２…プログラムメモリー
１３…命令レジスタ
１４…命令デコーダ
１５…マイクロ命令レジスタ
１６…命令エンコーダ
１７…命令比較器
１８…状態保持カウンタ
１９…所定の基準値
１００…実施の形態１の命令読み出し処理装置
２００…実施の形態２の命令読み出し処理装置
３００…実施の形態３の命令読み出し処理装置
μＩ…マイクロ命令コード
Ｉｎｓｔ（ｒ）  …読み出し命令コード
Ｉｎｓｔ（ｅ）  …エンコード命令コード
Ｓｅｒｒ  …解読異常検出信号
Ｓｈｏｌｄ…状態保持信号
Ｓｎｕｌｌ…無効化信号
ＣＬＫ…基準クロック
ＲＳＴ…リセット信号
【図１】
0003614753.tif 000002
【図２】
0003614753.tif 000003
【図３】
0003614753.tif 000004
【図４】
0003614753.tif 000005