トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 半導体装置
【発明者】 【氏名】平田 陽一

【氏名】清野 祥子

【要約】 【課題】ソフトウェアのバグに対して、その不具合のあるプログラム領域を修正するのではなくデータ領域の情報によってデータ領域を正しい値に修正する手段で不具合を解決する場合、従来技術ではメイン処理に一度だけしか実行することができなかった。そのため、各処理との同期がとれない場合に不具合が修正できないことがあった。

【解決手段】本半導体装置では、データ領域の条件によってデータ領域を正しい値に修正する処理をモジュール化し、そのモジュールをあらかじめ複数個用意しておく。それぞれについて動作・不動作を自由に選択することで、同期合わせが必要な不具合に対しても、プログラム領域ではなくデータ領域の条件によってデータ領域を正しい値に修正する手段で不具合を解決することが可能になる。
【特許請求の範囲】
【請求項1】 プログラムが記憶されたプログラム領域を有するマスクROMと、前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと、中央演算処理手段とを備えた制御手段と、前記メモリにおけるデータ領域を書き換え可能なデータを記憶する記憶手段とを備え、前記記憶手段に指定IDを有し、前記マスクROMに起動IDを有し、前記指定IDと前記起動IDとが一致した時に前記メモリ内のデータの書き換え動作を行うことを特徴とする半導体装置。
【請求項2】 記憶手段は、メモリ内の第1のアドレスを指定するソースアドレスと、前記第1のアドレスに書き込まれた第1のデータの所定のビットの値を読み出すための第1のマスクデータと、前記演算の結果データと比較するための比較データと、前記メモリ内の第2のアドレスを指定するターゲットアドレスと、前記第2のアドレスに書き込まれた第2のデータと演算するための第2のマスクデータと、マスクROM内のメインプログラムを起動させる指定IDとを備えたことを特徴とする請求項1記載の半導体装置。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、マスクROMを搭載したマイクロコンピュータのソフトウエアのバグに対して、マスクROMを変更せずにデータ領域に作用をすることによって、ソフトウエアのバグによる不具合を解決する方法に関するものである。
【0002】
【従来の技術】マイクロコンピュータの全体構成を図3に示す。図3において、1はプログラム領域の読み出し専用メモリでマスクROM(Read Only Memory)、2はデータ領域の揮発性のメモリでRAM(Random Acsess Memory)、3は中央演算処理器でCPU(Central Processing Unit)である。
【0003】上記のようなマイクロコンピュータを備えた電子機器が誤動作した際や、マイクロコンピュータによって動作する機能を一部変更したい場合、マイクロコンピュータ内のソフトウェアを修正する必要がある。従来ではマスクROMを作成し直すなどの大コストがかかる処理を行っていたが、本実施の形態では、このようなソフトウェアの修正に対して、マイクロコンピュータ内のRAM(データ領域)における、例えばバグの原因となっている誤ったデータを、マイクロコンピュータに外部接続した不揮発性メモリによって、RAM内のデータを低コストで正しいデータに書き換えるというものである。このような不揮発性メモリは予め電子機器内に搭載され、マイクロコンピュータと接続されている。そして、電子機器が誤動作した時に、不揮発性メモリに、RAMにおけるデータ修正を行うアドレスを特定するソースアドレスデータやターゲットアドレスデータ、実際にデータ修正を行う際に用いるマスクデータや比較データなどを、使用者やマイクロコンピュータ開発者によって書き込まれる。なお、以下の説明では使用者やマイクロコンピュータ開発者を簡略化して、マイクロコンピュータ開発者として明記する。
【0004】なお、不揮発性メモリをマイクロコンピュータに接続し、前述の各データを書き込んでいない状態の時は、不揮発性メモリの各アドレスには「0」が書き込まれている。そうすることにより、マイクロコンピュータ内の正しいデータを誤って書き換えるようなことはない。
【0005】図4は従来の半導体装置の構成を示すブロック図である。
【0006】図において、10は各種電子機器に搭載され機器の動作制御などを行う制御手段であるマイクロコンピュータ、8はマイクロコンピュータ10の外部に設けられマイクロコンピュータ10と接続されている記憶手段である不揮発性メモリである。不揮発性メモリ8の内部には後述するRAM2における第1のアドレス21を特定するソースアドレス81、RAM2の第1のアドレス21内の第1のデータ21aにおける所定のビットを抽出するために演算処理を行う第1のマスクデータ82、前述の演算結果と比較する比較データ83、前述の比較結果によりRAM2における第2のアドレス22内の第2のデータ22aにおける所定のビットを他の値に書き換えるための第2のマスクデータ84、後述する第2のアドレス22を特定するターゲットアドレス85とが配され、それぞれマイクロコンピュータ開発者や使用者によってデータを変更することができるものである。なお、これらのデータがマイクロコンピュータ開発者や使用者によって書き込まれるのは、本機器において誤動作が発生した時で、データが書き込まれる前はそれぞれのデータには「0」が書き込まれている。
【0007】3はマイクロコンピュータ10内に設けられ各種演算処理動作を行う中央演算処理装置(以下、CPUと記す)、2はマイクロコンピュータ10内に設けられマスクROM1に記録されたプログラムとともにマスクROM1を介してCPU3を制御するデータを記録した書き換え可能なメモリであるRAM(Random Access Memory)で、21及び22はRAM2内のデータ領域である第1及び第2のアドレスであり、第1のアドレス21に書き込まれた第1のデータ21aが特定のデータの時、第2のアドレス22に書き込まれた第2のデータ22aが所定の結果を出力するようになっている。21a及び22aは第1及び第2のアドレス21及び22にそれぞれ書き込まれている第1及び第2のデータである。
【0008】4は不揮発性メモリ8からの第1のマスクデータ82と第1のデータ21aとを論理演算し第1のデータ21aにおける所定のビットを抽出する第1の演算手段である第1の演算器、5は第1の演算器4の演算結果と不揮発性メモリ8からの比較データ83とを比較する比較手段である比較器、7は比較器5の比較結果により開放(OFF)/接続(ON)切換を行う切換手段である切換器で、後述する第2の演算器6の演算結果を第2のデータ22aと書き換えるか否かを切り替えるものである。本構成の切換器7は、比較器5の比較結果が真(第1の演算器4の演算結果と比較データ83とが一致している場合)はONとなり、第2の演算器6の演算結果に基づき第2のデータ22aの所定ビットが正しい値に書き換えられるが、比較器5の比較結果が偽(第1の演算器4の演算結果と比較データ83とが不一致の場合)は切換器7はOFFとなり、第2のデータ22aは書き換えられない。
【0009】6は第2のデータ22aと第2のマスクデータ84とで論理演算する第2の演算手段である第2の演算器、1はマイクロコンピュータ10の内部に設けられたマスクROM(ROM=Read Only Memory)で、CPU3をコントロールするソフトウエアが書き込まれている。第2の演算器6は、第2のデータ22aにおける所定ビットの値が正しくない値である場合に、所定ビットが正しい値に設定された第2のマスクデータ84と論理演算を行い、第2のデータ22aの所定ビットを正しい値に修正するものである。
【0010】上記マスクROM1、RAM2、CPU3、第1の演算器4、比較器5、第2の演算器6、切換器7はマイクロコンピュータ10内に設けられている。
【0011】マイクロコンピュータ開発者は、マイクロコンピュータ10のバグの原因となっているRAM2におけるアドレスやビット、バグがあるアドレスやビットを抽出するためのソースアドレス81や第1のマスクデータ82、バグの有無を確認するための比較データ83、RAM内のデータを書き換えるための第2のマスクデータ84、ターゲットアドレス85は、予め解っているものとし、不揮発性メモリ8に必要なデータを予め書き込んでおく。
【0012】以上のように構成された従来の半導体装置について、図面を用いてその動作を説明する。
【0013】まず、マイクロコンピュータには、予め不揮発性メモリが接続された状態で機器内に組み込まれている。不揮発性メモリ内の全てのアドレスには、組み込み当初は「0」が書き込まれていて、RAM内のデータを書き換えないようにしている。
【0014】次に、マイクロコンピュータ10が誤動作したり、マイクロコンピュータの機能の一部を変更したい時、マイクロコンピュータ内のソフトウェアの一部を変更する必要がある。本構成では、マイクロコンピュータ10内のデータ領域をRAMで構成しているため、任意に書き換えることが可能である。書き換えるためには、書き換えるためのデータや、書き換えるアドレスを特定するためのデータを、マイクロコンピュータ開発者が不揮発性メモリ8に書き込むことで、RAM2内のデータを書き換えることが可能になる。
【0015】不揮発性メモリ8に各データを書き込むと、不揮発性メモリ8内のソースアドレス81によって、RAM2内の第1のアドレス21を選び、その第1のアドレス21に書き込まれた第1のデータ21aと、不揮発性メモリ8内の第1のマスクデータ82とを、第1の演算器4で論理演算し、第1のデータ21aにおける所定のビットを読み出す。その演算結果と比較データ83とを比較器5で比較する。その比較結果に応じて、切換器7を切り換えるよう制御している。比較データ83は、その所定ビットの値が、第1の演算器4の演算結果の所定ビットの値と一致するようなデータを書き込んでおき、この比較データ83と第1の演算器4の演算結果とが一致した時は、第2のアドレス22の第2のデータ22aの所定ビットの値を修正できるよう、切換器7をONにするよう制御する。
【0016】比較器5における比較の結果、第1の演算器4のデータと比較データ83とが一致した場合は、切換器7をONにして第2のデータ22aを書き換える。また、比較器5における比較の結果、第1の演算器4のデータと比較データ83とが不一致である場合は、切換器7をOFFにして第2のデータ22aを書き換えない。
【0017】一方で、不揮発性メモリ8内のターゲットアドレス85によってRAM2内の第2のアドレス22を指定し、第2のアドレス22内の第2のデータ22aの所定のビットを第2の演算器6に読み出す。第2の演算器6では、不揮発性メモリ8内の第2のマスクデータ84と論理演算を行い、切換器7に出力している。ここで、切換器7がONの場合は第2の演算器6の演算結果を第2のデータ22aに書き込む(所定ビットを書き換える)が、切換器7がOFFの場合は第2の演算器6の演算結果は第2のデータ22aに書き込まれず、第2のデータ22aは何等変更されない。
【0018】ここで、第1のデータ21aと第2のデータ22aとはそれぞれ対になって動作するものであり、第1のデータ21aの条件に基づいて、前記条件に応じた結果を第2のデータ22aとして出力するものである。
【0019】
【発明が解決しようとする課題】しかしながら上記の従来の構成では、RAM2内の第1のデータ21の情報によって、第2のデータ22を正しい値に修正する手段をメイン処理に一度だけしか実行することができなかった。そのため、メイン処理内の各サブルーチンとの同期がとれない場合に不具合が修正できないことがあった。
【0020】本発明は上記従来の問題点を解決するもので、データ領域の条件によってデータ領域を正しい値に修正する処理をあらかじめメインプログラムの複数箇所で設定することで、同期合わせが必要な不具合に対しても、データ領域をタイミングよく修正することによってソフトウエアのバグによる不具合を解決することを目的とする。
【0021】
【課題を解決するための手段】この目的を達成するために本発明の半導体装置は、プログラムが記憶されたプログラム領域を有するマスクROMと、前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと、中央演算処理手段とを備えた制御手段と、前記メモリにおけるデータ領域を書き換え可能なデータを記憶する記憶手段とを備え、前記記憶手段に指定IDを有し、前記マスクROMに起動IDを有し、前記指定IDと前記起動IDとが一致した時に前記メモリ内のデータの書き換え動作を行う構成を有している。
【0022】この構成によって、同期合わせが必要な不具合に対しても、データ領域をタイミング良く修正することによってソフトウエアのバグによる不具合を解決することができる。
【0023】
【発明の実施の形態】本発明の請求項1に記載の発明は、プログラムが記憶されたプログラム領域を有するマスクROMと、前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと、中央演算処理手段とを備えた制御手段と、前記メモリにおけるデータ領域を書き換え可能なデータを記憶する記憶手段とを備え、前記記憶手段に指定IDを有し、前記マスクROMに起動IDを有し、前記指定IDと前記起動IDとが一致した時に前記メモリ内のデータの書き換え動作を行うものであり、このような構成により、同期合わせが必要なソフトウェアのバグによる不具合に対しても、マスクROMを変更せずに不具合を解決することができるという作用を有する。
【0024】以下、本発明の実施の形態について、図1から図2を用いて説明する。
【0025】(実施の形態1)マイクロコンピュータを備えた電子機器が誤動作した際や、マイクロコンピュータによって動作する機能を一部変更したい場合、マイクロコンピュータ内のソフトウェアを修正する必要がある。従来ではマスクROMを作成し直すなどの大コストがかかる処理を行っていたが、本実施の形態では、このようなソフトウェアの修正に対して、マイクロコンピュータ内のRAM(データ領域)における、例えばバグの原因となっている誤ったデータを、マイクロコンピュータに外部接続した不揮発性メモリによって、RAM内のデータを低コストで正しいデータに書き換えるというものである。このような不揮発性メモリは予め電子機器内に搭載され、マイクロコンピュータと接続されている。そして、電子機器が誤動作した時に、不揮発性メモリに、RAMにおけるデータ修正を行うアドレスを特定するソースアドレスデータやターゲットアドレスデータ、実際にデータ修正を行う際に用いるマスクデータや比較データなどを、使用者やマイクロコンピュータ開発者によって書き込まれる。これらのデータが書き込まれた後、電子機器本体の電源を投入することで、RAMのデータの書き換えが行われる。なお、以下の説明では使用者やマイクロコンピュータ開発者を簡略化して、マイクロコンピュータ開発者として明記する。
【0026】なお、不揮発性メモリをマイクロコンピュータに接続し、前述の各データを書き込んでいない状態の時、つまりRAMのデータを書き換え可能なデータを記憶する前は、不揮発性メモリの各アドレスには数値「0」が書き込まれている。
【0027】図1は本発明の実施の形態1における半導体装置の構成を示すブロック図、図2は同実施の形態の具体構成を模式的に示したブロック図である。
【0028】図において、10は各種電子機器に搭載され機器の動作制御などを行う制御手段であるマイクロコンピュータ、8はマイクロコンピュータ10の外部に設けられマイクロコンピュータ10と接続されている記憶手段である不揮発性メモリである。不揮発性メモリ8の内部には後述するRAM2における第1のアドレス21を特定するソースアドレス81、RAM2の第1のアドレス21内の第1のデータ21aにおける所定のビットを抽出するために演算処理を行う第1のマスクデータ82、前述の演算結果と比較する比較データ83、前述の比較結果によりRAM2における第2のアドレス22内の第2のデータ22aにおける所定のビットを他の値に書き換えるための第2のマスクデータ84、後述する第2のアドレス22を特定するターゲットアドレス85、指定ID86とが配され、それぞれマイクロコンピュータ開発者や使用者によってデータを変更することができるものである。なお、これらのデータがマイクロコンピュータ開発者によって書き込まれるのは、本機器において誤動作が発生しマイクロコンピュータ10のバグが発覚した時で、データが書き込まれる前はそれぞれのデータとして「0」が書き込まれている。
【0029】1はマスクROMで、CPU3をコントロールするソフトウエアを書き込んでおき、そのメインプログラム上では、設定位置に対応した起動IDnを複数箇所で設定しておく。メインプログラム実行中にある任意の起動IDnが設定された場合、起動IDnと指定ID86とを比較器9で比較する。得られた比較結果が真である場合、ソースアドレスデータ81によってRAM2の任意のアドレスを選び、RAM2におけるバグ修正処理を行う。また、比較器9で得られた比較結果が偽である場合、RAM2におけるバグ修正処理は動作させない。
【0030】3はマイクロコンピュータ10内に設けられ各種演算処理動作を行う中央演算処理装置(以下、CPUと記す)、2はマイクロコンピュータ10内に設けられマスクROM1に記録されたプログラムとともにマスクROM1を介してCPU3を制御するデータを記録した書き換え可能なメモリであるRAM(Random Access Memory)で、21及び22はRAM2内のデータ領域である第1及び第2のアドレスであり、第1のアドレス21に書き込まれた第1のデータ21aが特定のデータの時、第2のアドレス22に書き込まれた第2のデータ22aが所定の結果を出力するようになっている。21a及び22aは第1及び第2のアドレス21及び22にそれぞれ書き込まれている第1及び第2のデータである。
【0031】4は不揮発性メモリ8からの第1のマスクデータ82と第1のデータ21aとを論理演算し第1のデータ21aにおける所定のビットを抽出する第1の演算手段である第1の演算器で、本実施の形態では乗算動作を行うものとしたが、これに限定されるものではない。5は第1の演算器4の演算結果と不揮発性メモリ8からの比較データ83とを比較する比較手段である比較器、7は比較器5の比較結果により開放(OFF)/接続(ON)切換を行う切換手段である切換器で、後述する第2の演算器6の演算結果を第2のデータ22aと書き換えるか否かを切り替えるものである。本実施の形態の切換器7は、比較器5の比較結果が真(第1の演算器4の演算結果と比較データ83とが一致している場合)はONとなり、第2の演算器6の演算結果に基づき第2のデータ22aの所定ビットが正しい値に書き換えられるが、比較器5の比較結果が偽(第1の演算器4の演算結果と比較データ83とが不一致の場合)は切換器7はOFFとなり、第2のデータ22aは書き換えられない。
【0032】6は第2のデータ22aと第2のマスクデータ84とで論理演算する第2の演算手段である第2の演算器で、本実施の形態では論理加算の処理を行うものとしたが、これに限定されるものではない。1はマイクロコンピュータ10の内部に設けられたマスクROM(ROM=Read Only Memory)で、CPU3をコントロールするソフトウエアが書き込まれている。第2の演算器6は、第2のデータ22aにおける所定ビットの値が正しくない値である場合に、所定ビットが正しい値に設定された第2のマスクデータ84と論理演算を行い、第2のデータ22aの所定ビットを正しい値に修正するものである。
【0033】上記マスクROM1、RAM2、CPU3、第1の演算器4、比較器5、第2の演算器6、切換器7はマイクロコンピュータ10内に設けられている。
【0034】マイクロコンピュータ開発者は、マイクロコンピュータ10のバグの原因となっているRAM2におけるアドレスやビット、バグがあるアドレスやビットを抽出するためのソースアドレス81や第1のマスクデータ82、バグの有無を確認するための比較データ83、RAM内のデータを書き換えるための第2のマスクデータ84、ターゲットアドレス85は、予め解っているものとし、不揮発性メモリ8に必要なデータを予め書き込んでおく。
【0035】以上のように構成された本実施の形態の半導体装置について、図1及び図2を用いてその動作を説明する。
【0036】まず、不揮発性メモリ8を用いたRAM2内のバグ修正について説明する。
【0037】マイクロコンピュータには、予め不揮発性メモリが接続された状態で機器内に組み込まれている。不揮発性メモリ内の全てのアドレスには、組み込み当初は「0」が書き込まれていて、RAM内のデータを書き換えないようにしている。
【0038】次に、マイクロコンピュータ10が誤動作したり、マイクロコンピュータの機能の一部を変更したい時、マイクロコンピュータ内のソフトウェアの一部を変更する必要がある。本実施の形態では、マイクロコンピュータ10内のデータ領域をRAMで構成しているため、任意に書き換えることが可能である。書き換えるためには、書き換えるためのデータや、書き換えるアドレスを特定するためのデータを、マイクロコンピュータ開発者が不揮発性メモリ8に書き込むことで、RAM2内のデータを書き換えることが可能になる。
【0039】不揮発性メモリ8に各データを書き込むと、不揮発性メモリ8内のソースアドレス81によって、RAM2内の第1のアドレス21を選び、その第1のアドレス21に書き込まれた第1のデータ21aと、不揮発性メモリ8内の第1のマスクデータ82とを、第1の演算器4で論理演算し、第1のデータ21aにおける所定のビットを読み出す。その演算結果と比較データ83とを比較器5で比較する。その比較結果に応じて、切換器7を切り換えるよう制御している。比較データ83は、その所定ビットの値が、第1の演算器4の演算結果の所定ビットの値と一致するようなデータを書き込んでおき、この比較データ83と第1の演算器4の演算結果とが一致した時は、第2のアドレス22の第2のデータ22aの所定ビットの値を修正できるよう、切換器7をONにするよう制御する。
【0040】比較器5における比較の結果、第1の演算器4のデータと比較データ83とが一致した場合は、切換器7をONにして第2のデータ22aを書き換える。また、比較器5における比較の結果、第1の演算器4のデータと比較データ83とが不一致である場合は、切換器7をOFFにして第2のデータ22aを書き換えない。
【0041】一方で、不揮発性メモリ8内のターゲットアドレス85によってRAM2内の第2のアドレス22を指定し、第2のアドレス22内の第2のデータ22aの所定のビットを第2の演算器6に読み出す。第2の演算器6では、不揮発性メモリ8内の第2のマスクデータ84と論理演算を行い、切換器7に出力している。ここで、切換器7がONの場合は第2の演算器6の演算結果を第2のデータ22aに書き込む(所定ビットを書き換える)が、切換器7がOFFの場合は第2の演算器6の演算結果は第2のデータ22aに書き込まれず、第2のデータ22aは何等変更されない。
【0042】ここで、第1のデータ21aと第2のデータ22aとはそれぞれ対になって動作するものであり、第1のデータ21aの条件に基づいて、前記条件に応じた結果を第2のデータ22aとして出力するものである。
【0043】次に、同期合わせが必要なソフトウェアバグの修正方法について、図1及び図2を用いて説明する。
【0044】まず、メインプログラム10aの実行中に、起動ID10bが「0」に設定された場合、起動ID10bと指定ID86とを比較器9で比較する。例えば、それぞれ8ビットのデータで実現するとし、起動ID0に「00000000」、指定ID86に「00000001」が入っているとする。起動ID10bと指定ID86とを比較器9で比較した結果、各々のデータは不一致であるので、前述のRAM2のデータ領域22のバグを修正する処理は動作しない。
【0045】次に、メインプログラム10aの実行中に、起動ID10bが「1」に設定された場合、同様に起動ID10bと指定ID86とを比較器9で比較する。起動ID10bに「00000001」が入っているとすると、起動ID10bと指定ID86とを比較器9で比較した結果、それぞれのIDは一致しているので、切換器11をONにし、演算ソフトウェア10dを起動して、前述のRAM2のデータ領域22のバグを修正する処理は動作する。
【0046】以上のように本実施の形態によれば、メインプログラム上に複数箇所で起動IDを設定し、不揮発性メモリ内に任意RAMの値を変更する指定ID領域を設けることで、メインプログラムの、RAMのデータを変更したい場所でRAMのデータを変更することができるので、同期合わせが必要なソフトウェアバグに対しても、不具合を解決することができる。
【0047】
【発明の効果】以上のように本発明は、マスクROM搭載のマイクロコンピュータにおいて、同期合わせが必要なソフトウエアのバグに対しても、マスクROMを変更せずに不具合を解決することができ、また、プログラム領域でなくデータ領域に作用するために、小容量の不揮発性メモリによる低い費用での実現が可能であるという優れた効果が得られる。
【出願人】 【識別番号】000005821
【氏名又は名称】松下電器産業株式会社
【出願日】 平成12年6月26日(2000.6.26)
【代理人】 【識別番号】100097445
【弁理士】
【氏名又は名称】岩橋 文雄 (外2名)
【公開番号】 特開2002−7159(P2002−7159A)
【公開日】 平成14年1月11日(2002.1.11)
【出願番号】 特願2000−190910(P2000−190910)