(57)【要約】【課題】ソフトウェアのバグによる不具合への対応策としての選択肢を増やすことができ、ソフトウェアのバグによる不具合に対して、対応の幅を拡大して解消し易くすることができる半導体装置を提供する。【解決手段】ソフトウェアのバグによる不具合への対応策として、そのソフトウェアにより得られＲＡＭ２上に格納されたバグのあるデータを、ＲＡＭ２上の別のアドレスのデータによる複数回の演算結果に書き換えるだけでなく、複写することによっても修正して対応させることにより、ソフトウェアのバグによる不具合の解決策を増やす。【選択図】    図１
2004326628.tif 000002
【特許請求の範囲】
【請求項１】
演算処理実行の手順を示すプログラムを記憶するためのプログラム領域を有し、そのプログラム領域に記憶した前記プログラムに対して読み出し専用であるマスクＲＯＭ、前記マスクＲＯＭ内のプログラムによる処理実行に係わるデータを記憶するためのデータ領域を有する書き換え可能なＲＡＭ、および前記マスクＲＯＭ内のプログラムに従って演算処理を実行する中央演算処理手段を設けた制御手段と、不揮発性を有し、前記中央演算処理手段による前記演算処理時に、前記制御手段の外部から前記中央演算処理手段に対して供給する任意のデータを記憶する不揮発性記憶手段とを備え、前記ＲＡＭは、前記中央演算処理手段による前記演算処理の結果を基に前記任意のデータ領域が書き換えられ、前記不揮発性記憶手段は、その任意データを、前記ＲＡＭにおける任意のデータ領域を書き換えるための前記演算処理時に前記中央演算処理手段へ供給するとともに、前記中央演算処理手段へ供給する前記任意データを記憶する前には、その任意データ領域が数値「０」の状態になるように初期設定されていることを特徴とする半導体装置。
【請求項２】
前記ＲＡＭは、前記中央演算処理手段による前記演算処理時の所定の処理条件を示す第１のデータと、前記中央演算処理手段による前記演算処理の結果を基に書き換えられる第２のデータとを、それぞれ別に設けられた当該の任意データ領域に有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記不揮発性記憶手段は、任意データ領域として、前記ＲＡＭ内の任意データ領域として第１のデータを有する第１のアドレスを指定するソースアドレスと、前記ＲＡＭ内の任意データ領域として第２のデータを有する第２のアドレスを指定するターゲットアドレスと、前記第１のデータと、前記第２のデータとの各演算に使用するためのマスクデータと、前記ＲＡＭ内の第２のデータの書き換え時に参照する前記演算処理の結果を切り換えるための切換データとを、それぞれ記憶するための個別のデータ領域を有することを特徴とする請求項２に記載の半導体装置。
【請求項４】
制御手段は、不揮発性記憶手段からのソースアドレスによってＲＡＭ内で選択された第１のアドレスに書き込まれた第１のデータと、前記不揮発性記憶手段からのマスクデータとで演算処理する第１の演算手段と、前記ＲＡＭ内の第２のアドレスに書き込まれた第２のデータと、前記マスクデータとで演算処理する第２の演算手段と、前記第１の演算手段で得られた演算結果と前記第２の演算手段で得られた演算結果とで更に演算処理する第３の演算手段と、前記不揮発性記憶手段からの切換データにより、前記ＲＡＭ内の第２のデータの書き換え時に参照する前記各演算処理の結果を切り換える切換手段とを備えたことを特徴とする請求項３に記載の半導体装置。
【請求項５】
第１及び第２のデータが書き込まれた制御手段と、マスクデータ、切換データ、ソースアドレス、およびターゲットアドレスの各データ領域を有する記憶手段とを備えた半導体装置であって、前記記憶手段の各データ領域に予め数値「０」を書き込み、前記数値「０」が書き込まれた前記記憶手段に、任意の前記マスクデータと前記切換データと前記ソースアドレスと前記ターゲットアドレスとを書き込み、前記制御手段を、前記ソースアドレスに基づき前記第１のデータを抽出し、前記第１のデータと前記マスクデータとで第１の演算を行い、前記ターゲットアドレスに基づき前記第２のデータを抽出し、前記第２のデータと前記マスクデータとで第２の演算を行い、前記第１の演算による第１の演算結果と前記第２の演算による第２の演算結果とで第３の演算を行い、前記切換データによって、前記第１のデータ、前記第１の演算結果、前記第３の演算による第３の演算結果のいずれを、前記第２のデータに書き込むかを切り換えるよう構成したことを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マスクＲＯＭを搭載したマイクロコンピュータを有し、そのマイクロコンピュータにより、各種電気機器の稼動を制御する半導体装置に関するものである。
【０００２】
【従来の技術】
従来から、各種電気機器には、その稼動を制御するマイクロコンピュータを有する半導体装置が組み込まれており、このようなマイクロコンピュータには、通常、内部のＣＰＵにより当該電気機器を稼動制御するための制御手順を示すプログラム等のソフトウェアが書き込まれたマスクＲＯＭが搭載されている。
【０００３】
このようなマイクロコンピュータを有する従来の半導体装置（例えば、特許文献１を参照）を、以下に説明する。
図３はマイクロコンピュータを有する従来の半導体装置の概略構成を示すブロック図である。図３に示す半導体装置１００において、１０は各種電気機器の稼動を制御するマイクロコンピュータ、１は当該電気機器を稼動制御するための制御手順を示すプログラムなどのソフトウェアが書き込まれたプログラム領域となり読み出し専用メモリであるマスクＲＯＭ、２はマスクＲＯＭ１内のプログラムに従って当該電気機器を稼動制御する際の処理実行に係わるデータを記憶するためのデータ領域を有する書き換え可能な揮発性メモリであるＲＡＭ、３はマスクＲＯＭ１にソフトウェアとして書き込まれたプログラムの手順に従って演算処理することにより当該電気機器を稼動制御する中央演算処理器であるＣＰＵ、８はマイクロコンピュータ１０がＣＰＵ３により演算処理して当該電気機器を稼動制御する際に必要な各種参照データが書き込まれた不揮発性メモリである。
【０００４】
以上のように構成された従来の半導体装置のマイクロコンピュータにおいて、そのマスクＲＯＭ１のソフトウェア不具合への対策として、マスクＲＯＭ１を取り替え等により変更せずに、ＲＡＭ２のデータ領域に作用をすることによって、上記のソフトウェア不具合を解決するための方法を、図面を参照しながら以下に説明する。
【０００５】
図４はマイクロコンピュータを有する従来の半導体装置の詳細構成を示すブロック図である。従来の半導体装置１００は、図４に示すように、マスクＲＯＭ１、ＲＡＭ２、ＣＰＵ３に加えて、ソースアドレス領域８１、マスクデータ領域８２、比較データ領域８６、マスクデータ領域８５、ターゲットアドレス領域８４に、各当該データが格納された不揮発性メモリ８と、論理演算器４、比較器９、論理演算器６、切換器７とによって構成されている。
【０００６】
マスクＲＯＭ１には、予め、ＣＰＵ３による演算処理により電気機器の各種制御をコントロールするための手順を示すプログラムを有するソフトウェアを書き込んでおく。このソフトウェアのプログラムに従って、ソースアドレス領域８１のアドレスデータによってＲＡＭ２の任意のアドレスを選び、そのアドレスに対応するＲＡＭの内容２１とマスクデータ領域８２のマスクデータとを論理演算器４により論理演算し、その演算により得られた結果と比較データ領域８６の比較データとを比較器９で比較する。
【０００７】
ターゲットアドレス領域８４のアドレスデータによって任意のＲＡＭを選び、そのＲＡＭの内容２２とマスクデータ領域８５のマスクデータとを論理演算器６により論理演算し、この演算により得られた結果に基づいて、ＲＡＭの内容２２を変更してプログラムの流れを変えるため、ＲＡＭの内容２２を書き変えるか否かを、前述の比較器９での比較結果の真偽によって切り換えることができる。
【０００８】
ここで、上記の各データの値は、使用者がプログラムによる制御手順を参照して決定し、不揮発性メモリには不揮発性メモリへの書き込みプログラムによって書き込まれ、マスクＲＯＭ内のソフトウェアは、この値をデータとして使用する。
【０００９】
以上のようにして、任意ＲＡＭの任意ビットの条件によって、別の任意ＲＡＭの任意ビットを変更できる手段を設けることにより、ソフトウェアのバグを、擬似的に修正し、マスクＲＯＭにおけるソフトウェアの不具合を解決することを実現していた。
【００１０】
このように、マスクＲＯＭ内のソフトウェアは、例えば、任意ＲＡＭの任意ビットの値に基づいて条件分岐を行い、制御処理を実行していく部分があり、このような部分において、任意ＲＡＭの任意ビットの値は使用者の判断として正しい状態であるのに、ソフトウェア不具合のために逆（誤り）の流れの方向に動作する場合がある。この時に、不具合部分であるソフトウェアは変更せずに、任意ＲＡＭの任意ビットの値に基づいて、別のビットの値を、意図的に変更（反転）させて、あたかもソフトウェアを正しい方向に動作させるようにしている。
【００１１】
ここで、例えば、任意ビットの部分がメイン値を持ち、別のビットの部分が任意ビットのメイン値に対してサブとなる値を持つような関係の場合、任意ビットの部分には機器制御の判断として使用するメインモード情報値を持ち、別のビットの部分にはサブモード情報値を持ち、これらの値を使用して、マスクＲＯＭ内のソフトウェアにより、当該機器の動作を制御していく。
【００１２】
【特許文献１】
特開２００１−１４３４９５号公報
【００１３】
【発明が解決しようとする課題】
しかしながら上記のような従来の半導体装置では、マスクＲＯＭ１におけるソフトウェアのバグを、そのソフトウェアにより得られＲＡＭ２に格納されたデータ値２１と、不揮発性メモリ８上のマスクデータ領域８２、８５のデータ値との演算および比較の処理結果により、ＲＡＭ２のデータ値２２を書き換えることのみにより、擬似的に修正する手段しか持ち得ていないため、マスクＲＯＭ１におけるソフトウェアのバグによる不具合の対応策として選択肢が少なくなり、その範囲が狭まってしまうという問題点を有していた。
【００１４】
本発明は、上記従来の問題点を解決するもので、ソフトウェアのバグによる不具合への対応策としての選択肢を増やすことができ、ソフトウェアのバグによる不具合に対して、対応の幅を拡大して解消し易くすることができる半導体装置を提供する。
【００１５】
【課題を解決するための手段】
上記の課題を解決するために本発明の請求項１に記載の半導体装置は、演算処理実行の手順を示すプログラムを記憶するためのプログラム領域を有し、そのプログラム領域に記憶した前記プログラムに対して読み出し専用であるマスクＲＯＭ、前記マスクＲＯＭ内のプログラムによる処理実行に係わるデータを記憶するためのデータ領域を有する書き換え可能なＲＡＭ、および前記マスクＲＯＭ内のプログラムに従って演算処理を実行する中央演算処理手段を設けた制御手段と、不揮発性を有し、前記中央演算処理手段による前記演算処理時に、前記制御手段の外部から前記中央演算処理手段に対して供給する任意のデータを記憶する不揮発性記憶手段とを備え、前記ＲＡＭは、前記中央演算処理手段による前記演算処理の結果を基に前記任意のデータ領域が書き換えられ、前記不揮発性記憶手段は、その任意データを、前記ＲＡＭにおける任意のデータ領域を書き換えるための前記演算処理時に前記中央演算処理手段へ供給するとともに、前記中央演算処理手段へ供給する前記任意データを記憶する前には、その任意データ領域が数値「０」の状態になるように初期設定されている構成としたことを特徴とする。
【００１６】
また、本発明の請求項２に記載の半導体装置は、請求項１に記載の半導体装置であって、前記ＲＡＭは、前記中央演算処理手段による前記演算処理時の所定の処理条件を示す第１のデータと、前記中央演算処理手段による前記演算処理の結果を基に書き換えられる第２のデータとを、それぞれ別に設けられた当該の任意データ領域に有する構成としたことを特徴とする。
【００１７】
また、本発明の請求項３に記載の半導体装置は、請求項２に記載の半導体装置であって、前記不揮発性記憶手段は、任意データ領域として、前記ＲＡＭ内の任意データ領域として第１のデータを有する第１のアドレスを指定するソースアドレスと、前記ＲＡＭ内の任意データ領域として第２のデータを有する第２のアドレスを指定するターゲットアドレスと、前記第１のデータと、前記第２のデータとの各演算に使用するためのマスクデータと、前記ＲＡＭ内の第２のデータの書き換え時に参照する前記演算処理の結果を切り換えるための切換データとを、それぞれ記憶するための個別のデータ領域を有する構成としたことを特徴とする。
【００１８】
また、本発明の請求項４に記載の半導体装置は、請求項３に記載の半導体装置であって、制御手段は、不揮発性記憶手段からのソースアドレスによってＲＡＭ内で選択された第１のアドレスに書き込まれた第１のデータと、前記不揮発性記憶手段からのマスクデータとで演算処理する第１の演算手段と、前記ＲＡＭ内の第２のアドレスに書き込まれた第２のデータと、前記マスクデータとで演算処理する第２の演算手段と、前記第１の演算手段で得られた演算結果と前記第２の演算手段で得られた演算結果とで更に演算処理する第３の演算手段と、前記不揮発性記憶手段からの切換データにより、前記ＲＡＭ内の第２のデータの書き換え時に参照する前記各演算処理の結果を切り換える切換手段とを備えた構成としたことを特徴とする。
【００１９】
また、本発明の請求項５に記載の半導体装置は、第１及び第２のデータが書き込まれた制御手段と、マスクデータ、切換データ、ソースアドレス、およびターゲットアドレスの各データ領域を有する記憶手段とを備えた半導体装置であって、前記記憶手段の各データ領域に予め数値「０」を書き込み、前記数値「０」が書き込まれた前記記憶手段に、任意の前記マスクデータと前記切換データと前記ソースアドレスと前記ターゲットアドレスとを書き込み、前記制御手段を、前記ソースアドレスに基づき前記第１のデータを抽出し、前記第１のデータと前記マスクデータとで第１の演算を行い、前記ターゲットアドレスに基づき前記第２のデータを抽出し、前記第２のデータと前記マスクデータとで第２の演算を行い、前記第１の演算による第１の演算結果と前記第２の演算による第２の演算結果とで第３の演算を行い、前記切換データによって、前記第１のデータ、前記第１の演算結果、前記第３の演算による第３の演算結果のいずれを、前記第２のデータに書き込むかを切り換えるよう構成したことを特徴とする。
【００２０】
以上により、ソフトウェアのバグによる不具合への対応策として、そのソフトウェアにより得られＲＡＭ上に格納されたバグのあるデータを、ＲＡＭ上の別のアドレスのデータによる複数回の演算結果に書き換えるだけでなく、複写することによっても修正して対応させることにより、ソフトウェアのバグによる不具合の解決策を増やすことができる。
【００２１】
【発明の実施の形態】
以下、本発明の実施の形態を示す半導体装置について、図面を参照しながら具体的に説明する。
【００２２】
図１は本実施の形態の半導体装置の構成を示すブロック図である。なお、同図において従来と同一の構成要素には同一符号を付与し説明を省略する。図１において、ソースアドレス領域８１、マスクデータ領域８２、切換データ領域８３、ターゲットアドレス領域８４は、それぞれ不揮発性メモリ８に個別に設定され、それら各領域のデータは不揮発性メモリ８上で変更することができるようになっている。マスクＲＯＭ１には、ＣＰＵ３をコントロールするプログラムからなるソフトウェアを書き込んでおく。
【００２３】
マスクＲＯＭ１内のプログラムに従って、ソースアドレス領域８１のアドレスデータによってＲＡＭ２の任意の第１のアドレス２１を選び、第１のアドレス２１内の第１のデータ２１ａとマスクデータ領域８２のマスクデータとで、演算器（１）４により論理演算をして論理演算結果（１）を得る。
【００２４】
また、ターゲットアドレス領域８４のアドレスデータによってＲＡＭ２の任意の第２のアドレス２２を選び、第２のアドレス２２内の第２のデータ２２ａとマスクデータ領域８２のマスクデータとで、演算器（２）６により論理演算をして論理演算結果（２）を得る。
【００２５】
更に、演算器（１）４による論理演算結果（１）と演算器（２）６による論理演算結果（２）とで、演算器（３）５により論理演算をして論理演算結果（３）を得る。
【００２６】
次に、切換器７により、切換データ領域８３の切換データに従って、第２のデータ２２ａを、第１のデータ２１ａもしくは論理演算結果（１）もしくは論理演算結果（３）に切り換えて変更することができるように構成しておく。
【００２７】
ここで、上記の各データの値は、使用者がプログラムによる制御手順を参照して決定し、不揮発性メモリには不揮発性メモリへの書き込みプログラムによって書き込まれ、マスクＲＯＭ内のソフトウェアは、この値をデータまたは切り換えデータとして使用する。
【００２８】
以上のように構成された半導体装置について、その動作を以下に説明する。
まず、ソースアドレス領域８１のアドレスデータによってＲＡＭ２の任意の第１のアドレス２１を選び、第１のアドレス２１内のデータ２１ａとマスクデータ領域８２のマスクデータとを論理演算器４で論理演算した演算結果（１）と、またターゲットアドレス領域８４のアドレスデータによってＲＡＭ２の任意の第２のアドレス２２を選び、その第２のアドレス２２内のデータ２２ａとマスクデータ領域８２のマスクデータとを論理演算器６で論理演算した演算結果（２）とを、更に論理演算器５で論理演算して演算結果（３）を得る。
【００２９】
例えば、それぞれ８ビットのデータで実現するとし、ソースアドレス領域８１のアドレスデータで選ばれた第１のデータ２１ａに「１０１００１０１」、マスクデータ領域８２のマスクデータに「１１１１００００」、切換データ領域８３に演算結果（３）を選択する切換データ（「０００１１１００」）が入っているとし、論理演算器４は論理反転と論理乗算を行うとすると、ソースアドレス領域８１のアドレスデータによって選ばれた第１のデータ２１ａをマスクデータ領域８２のマスクデータを論理反転した値で論理演算して演算結果（１）を出力する。この例では、最上位４ビットを０にし最下位４ビットはそのまま（「０００００１０１」）となっている。
【００３０】
また、ターゲットアドレス領域８４のアドレスデータによって選ばれた第２のデータ２２ａとマスクデータ領域８２のマスクデータとを論理演算器６で論理乗算する。この例では、再上位４ビットはそのままで最下位４ビットを０（「０００１００００」）にする。この論理乗算により演算結果（２）を出力し、更に演算結果（１）と演算結果（２）との論理演算として、論理演算器５で演算結果（１）と演算結果（２）との加算処理した演算結果（３）を、第２のアドレス２２に書き込めるようにしておく。
【００３１】
例えば、ターゲットアドレス領域８４のアドレスデータで選ばれた第２のデータ２２ａに「０００１００１０」が入っていた時に、切換データが演算結果（３）を出力選択していたとすると、第２のデータ２２ａを、演算結果（３）の内容に書き換えることができるものである。
【００３２】
以上のように本実施の形態によれば、バグのあるデータをＲＡＭ上の別のアドレスのデータを用いて修正することができ、ソフトウェアのバグを擬似的に修正することができるようにして、従来に比べてソフトウェアのバグに対する解決策を増やすことができる。
【００３３】
【発明の効果】
以上のように本発明によれば、ソフトウェアのバグによる不具合への対応策として、そのソフトウェアにより得られＲＡＭ上に格納されたバグのあるデータを、ＲＡＭ上の別のアドレスのデータによる複数回の演算結果に書き換えるだけでなく、複写することによっても修正して対応させることにより、ソフトウェアのバグによる不具合の解決策を増やすことができる。
【００３４】
そのため、ソフトウェアのバグによる不具合への対応策としての選択肢を増やすことができ、ソフトウェアのバグによる不具合に対して、対応の幅を拡大して解消し易くすることができるとともに、ソフトウェアのバグ修正を、マスクＲＯＭおよびそのデータを変更せず、かつプログラム領域の一部を、マイクロコンピュータ外部に配された不揮発性メモリに書き換えることなく、小容量の不揮発性メモリにより低コストで実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態の半導体装置の構成を示すブロック図
【図２】同実施の形態の半導体装置における動作の説明図
【図３】従来から利用されているマイクロコンピュータを有する半導体装置の概略構成を示すブロック図
【図４】従来のマイクロコンピュータを有する半導体装置の詳細構成を示すブロック図
【符号の説明】
１    マスクＲＯＭ
２    ＲＡＭ
３    ＣＰＵ
４    演算器（１）
５    演算器（３）
６    演算器（２）
７    切換器
８    不揮発性メモリ
９    比較器
１０    マイクロコンピュータ
２１    第１のアドレス
２１ａ    第１のデータ
２２    第２のアドレス
２２ａ    第２のデータ
８１    ソースアドレス領域
８２    マスクデータ領域
８３    切換データ領域
８４    ターゲットアドレス領域
８５    マスクデータ領域
８６    比較データ領域
【図１】
2004326628.tif 000003
【図２】
2004326628.tif 000004
【図３】
2004326628.tif 000005
【図４】
2004326628.tif 000006