JP3750494B2 - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP3750494B2 JP3750494B2 JP2000192278A JP2000192278A JP3750494B2 JP 3750494 B2 JP3750494 B2 JP 3750494B2 JP 2000192278 A JP2000192278 A JP 2000192278A JP 2000192278 A JP2000192278 A JP 2000192278A JP 3750494 B2 JP3750494 B2 JP 3750494B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- comparison
- microcomputer
- written
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Microcomputers (AREA)
- Debugging And Monitoring (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
【発明の属する技術分野】
本発明は、マスクROMを搭載したマイクロコンピュータのソフトウエアのバグに対する不具合を解決する半導体装置に関するものである。
【0002】
【従来の技術】
近年、マスクROMを搭載したマイクロコンピュータのソフトウエアのバグ対策に関しては、マスクROMの変更等によるプログラム領域の変更による解決が一般的になされている。
【0003】
以下に従来のマスクROMを搭載したマイクロコンピュータのソフトウエアのバグに対する不具合対策方法について説明する。
【0004】
従来、マスクROMを搭載したマイクロコンピュータのソフトウエアのバグに対する不具合対策は、マスクROMを再度作成し直すか、マスクROM内のプログラム領域の一部をマイクロコンピュータ外部の不揮発性メモリに書き換えておいて、その不揮発性メモリの内容を書き換えることによって解決する方法がとられている。マイクロコンピュータの構成を図5に示す。図5において、51はプログラム領域の読み出し専用メモリでマスクROM、52はデータ領域の揮発性のメモリでRAM、53は中央演算処理器でCPU、50は上記構成を内蔵したマイクロコンピュータである。
【0005】
以上のように構成された従来マイクロコンピュータのマスクROMのソフトウエアの不具合の対策について、以下その動作について説明する。
【0006】
まず、マスクROM51を搭載したマイクロコンピュータ50のソフトウエア部にバグが存在していた場合、その不具合解決方法は、マスクROM51の再変更を行うか、マスクROM51内のプログラム領域の一部を、マイクロコンピュータ外部に配された不揮発性メモリに書き換えることによって実現していた。
【0007】
【発明が解決しようとする課題】
しかしながら上記の従来の構成では、マスクROM51を搭載したマイクロコンピュータ50にソフトウエアのバグが存在する場合、マイクロコンピュータ自体をウエハーの状態から再度拡散工程を経て作成し直さなければならなく、これには、時間と費用が多く必要とされるという問題点を有していた。また、プログラム領域の一部を、マイクロコンピュータ50外部に配された不揮発性メモリに書き換える場合も、多量の不揮発性メモリを必要とし、多くの費用が必要とされる問題を有していた。
【0008】
本発明は上記従来の問題点を解決するもので、マスクROMを変更せず、かつプログラム領域の一部を、マイクロコンピュータ外部に配された不揮発性メモリに書き換えることなく、ソフトウエアのバグによる不具合を解決することができる半導体装置を提供することを目的とする。
【0009】
【課題を解決するための手段】
この目的を達成するために本発明の半導体装置は、プログラムが記憶されたプログラム領域を有するマスクROMと、前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと、中央演算処理手段とを備えた制御手段と、前記メモリ内の第1のアドレスを指定するソースアドレスと、前記第1のアドレスに書き込まれた第1のデータの所定のビットの値を読み出すための第1のマスクデータと、前記第1のマスクデータと前記第1のデータとで演算処理した演算の結果データと比較するための比較データと、前記メモリ内の第2のアドレスを指定するターゲットアドレスと、前記第2のアドレスに書き込まれた第2のデータと演算するための第2のマスクデータとを記憶する記憶手段とを備えたものである。
【0010】
この構成によって、マスクROMを変更せずに、ソフトウエアのバグによる不具合を解決することができる。
【0011】
【発明の実施の形態】
本発明の請求項1〜6に記載の発明は、プログラムが記憶されたプログラム領域を有するマスクROMと前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと中央演算処理手段とを備えた制御手段と、前記メモリにおける任意のデータ領域を書き換え可能な任意のデータを記憶する記憶手段とを備えたものであり、マスクROMを変更せずに、ソフトウエアのバグによる不具合を解決することができるという作用を有する。
【0012】
以下、本発明の実施の形態について、図面を用いて説明する。
【0013】
(実施の形態1)
マイクロコンピュータを備えた電子機器が誤動作した際や、マイクロコンピュータによって動作する機能を一部変更したい場合、マイクロコンピュータ内のソフトウェアを修正する必要がある。従来ではマスクROMを作成し直すなどの大コストがかかる処理を行っていたが、本実施の形態では、このようなソフトウェアの修正に対して、マイクロコンピュータ内のRAM(データ領域)における、例えばバグの原因となっている誤ったデータを、マイクロコンピュータに外部接続した不揮発性メモリーによって、RAM内のデータを低コストで正しいデータに書き換えるというものである。このような不揮発性メモリは予め電子機器内に搭載され、マイクロコンピュータと接続されている。そして、電子機器が誤動作した時に、不揮発性メモリーに、任意の、RAMにおけるデータ修正を行うアドレスを特定するソースアドレスデータやターゲットアドレスデータ、実際にデータ修正を行う際に用いるマスクデータや比較データなどを、使用者やマイクロコンピュータ開発者によって書き込まれる。これらのデータが書き込まれた後、電子機器本体の電源を投入することで、RAMのデータの書き換えが行われる。なお、以下の説明では使用者やマイクロコンピュータ開発者を簡略化して、マイクロコンピュータ開発者として明記する。
【0014】
なお、不揮発性メモリをマイクロコンピュータに接続し、前述の各データを書き込んでいない状態の時、つまりRAMのデータを書き換え可能なデータを記憶する前は、不揮発性メモリの各アドレスには数値「0」が書き込まれている。
【0015】
図1は本発明の実施の形態1における半導体装置の構成を示すブロック図、図2は同実施の形態の具体構成を模式的に示したブロック図である。
【0016】
図において、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とが配され、それぞれマイクロコンピュータ開発者や使用者によってデータを変更することができるものである。なお、これらのデータがマイクロコンピュータ開発者によって書き込まれるのは、本機器において誤動作が発生しマイクロコンピュータ10のバグが発覚した時で、データが書き込まれる前はそれぞれのデータとして「0」が書き込まれている。
【0017】
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のデータである。
【0018】
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は書き換えられない。
【0019】
6は第2のデータ22aと第2のマスクデータ84とで論理演算する第2の演算手段である第2の演算器で、本実施の形態では論理加算の処理を行うものとしたが、これに限定されるものではない。1はマイクロコンピュータ10の内部に設けられたマスクROM(ROM=Read Only Memory)で、CPU3をコントロールするソフトウエアが書き込まれている。第2の演算器6は、第2のデータ22aにおける所定ビットの値が正しくない値である場合に、所定ビットが正しい値に設定された第2のマスクデータ84と論理演算を行い、第2のデータ22aの所定ビットを正しい値に修正するものである。
【0020】
上記マスクROM1、RAM2、CPU3、第1の演算器4、比較器5、第2の演算器6、切換器7はマイクロコンピュータ10内に設けられている。
【0021】
マイクロコンピュータ開発者は、マイクロコンピュータ10のバグの原因となっているRAM2におけるアドレスやビット、バグがあるアドレスやビットを抽出するためのソースアドレス81や第1のマスクデータ82、バグの有無を確認するための比較データ83、RAM内のデータを書き換えるための第2のマスクデータ84、ターゲットアドレス85は、予め解っているものとし、不揮発性メモリ8に必要なデータを予め書き込んでおく。
【0022】
以上のように構成された本実施の形態の半導体装置について、図1及び図2を用いてその動作を説明する。
【0023】
まず、マイクロコンピュータ10には、予め不揮発性メモリ8が接続された状態で機器内に組み込まれている。不揮発性メモリ8内の全てのアドレスには、組み込み当初は「0」が書き込まれていて、RAM2内のデータを不用意に書き換えないようにしている。
【0024】
次に、マイクロコンピュータ10が誤動作したり、マイクロコンピュータ10の機能の一部を変更したい時、マイクロコンピュータ10内のソフトウェアの一部を変更する必要がある。本実施の形態では、マイクロコンピュータ10内のデータ領域をRAM2で構成しているため、任意に書き換えることが可能である。書き換えるためには、書き換えるためのデータや、書き換えるアドレスを特定するためのデータを、マイクロコンピュータ開発者が不揮発性メモリ8に書き込むことで、RAM2内のデータを書き換えることが可能になる。
【0025】
不揮発性メモリ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にするよう制御する。
【0026】
比較器5における比較の結果、第1の演算器4のデータと比較データ83とが一致した場合は、切換器7をONにして第2のデータ22aを書き換える。また、比較器5における比較の結果、第1の演算器4のデータと比較データ83とが不一致である場合は、切換器7をOFFにして第2のデータ22aを書き換えない。
【0027】
一方で、不揮発性メモリ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は何等変更されない。
【0028】
ここで、第1のデータ21aと第2のデータ22aとはそれぞれ対になって動作するものであり、第1のデータ21aの条件に基づいて、前記条件に応じた結果を第2のデータ22aとして出力するものである。
【0029】
以上の動作について、以下図2を用いて詳述する。
【0030】
まず、不揮発性メモリ8に書き込まれている各データについて説明する。
【0031】
図2において、RAM2内の各データや不揮発性メモリ8内の各データはそれぞれ8ビットのデータで実現している。マイクロコンピュータ開発者はマイクロコンピュータ10を搭載した機器の誤動作から、マイクロコンピュータ10内にバグがあることを認識し、その誤動作の状態に基づき例えばRAM2に書き込まれた内容を書き記したRAMマップを用いて、RAM2内におけるバグがあると思われる第2のアドレス22の第2のデータ22aを特定する。次に、マイクロコンピュータ開発者は、第2のデータ22aと、第2のデータ22aと対になって動作する第1のデータ21aとを不揮発性メモリ8によって特定するために、第1のアドレス21に対応するアドレスを不揮発性メモリ8内のソースアドレス81に書き込み、第2のアドレス22に対応するアドレスを不揮発性メモリ8内のターゲットアドレス85に書き込む。
【0032】
また、第1のアドレス21には第1のデータ21aとして「01000101」が書き込まれていることはマイクロコンピュータ開発者は既に解っており、バグがある第2のデータ22aの所定ビットに対応した、第1のデータ21aにおける所定ビットの値を第1の演算器4で抽出するための第1のマスクデータ82として「00000100」を不揮発性メモリ8に書き込む。
【0033】
さらに、第1のマスクデータ82によって抽出したビットの値と比較するための比較データ83「00000100」を、不揮発性メモリ8に書き込む。この比較データ83は、バグがあると思われる第2のデータ22aにおけるビットに対応した、第1のデータ21aにおける所定ビットの値と一致するデータとなっている。つまり、第1のマスクデータ82を用いて第1のデータ21aから所定ビットの値を抽出し、そのビットの値が所望の値であるかどうかを確認するものである。
【0034】
また、マイクロコンピュータ開発者は、第1のデータ21aの条件に基づいてその結果が第2のデータ22aとして出力されることは既に解っており、その第2のデータ22a「00000010」が書き込まれている第2のアドレス22を、例えばRAMマップを用いて特定する。そして、バグ修正時に第2のアドレス22を不揮発性メモリ8によって指定するために、第2のアドレス22に対応するアドレスを、不揮発性メモリ8内のターゲットアドレス85に書き込む。
【0035】
さらに、ターゲットアドレス85によって特定した第2のアドレス22の第2のデータ22aにおける、バグがあると思われる所定のビットを、他の値に書き換えるための第2のマスクデータ84「00100000」を、不揮発性メモリ8に書き込む。
【0036】
以下、図2を用いて動作を説明する。
【0037】
まず、本機器が誤動作し、マイクロコンピュータにバグがあると判断された時は、マイクロコンピュータ開発者や使用者によって不揮発性メモリ8に、ソースアドレス81と第1のマスクデータ82と比較データ83と第2のマスクデータ84とターゲットアドレス85を書き込む。そして、ソースアドレス81によって選ばれた第1のデータ21a「01000101」と第1のマスクデータ82「00000100」とを、第1の演算器4で論理乗算を行う。ここで、第1のマスクデータ82は、第1のデータ21aと論理乗算することで第1のデータ21aにおける所定のビット(本例では最下位から数えて3ビット目)の値を抽出するようなデータとなっている。よって論理乗算の結果は「00000100」となる。その演算結果「00000100」と比較データ83「00000100」とを比較器5で比較する。ここで、比較器5で比較データ83と第1の演算器4の演算結果とを比較するのは、第1の演算器4において抽出した所定ビットの値が、所望の値であるか否かを確認するためである。
【0038】
一方、ターゲットアドレス85によって、RAM2内の第2のアドレス22を選び、その第2のアドレス22に書き込まれた第2のデータ22aと第2のマスクデータ84とを、第2の演算器6で論理演算する。例えば、ターゲットアドレス85で選ばれた第2のアドレス22の第2のデータ22aとして「00000010」、第2のマスクデータ84として「00100000」が入っている状態で、それぞれのデータを第2の演算器6で論理加算を行う。その論理加算の結果は「00100010」となる。
【0039】
そして、前述の比較器5における比較の結果、第1の演算器4の演算結果と比較データ83とが一致した場合は、切換器7をONにし、第1の演算器4の演算結果と比較データ83とが不一致の場合は、切換器7をOFFにする。切換器7がOFFの場合、つまり第2のデータ22aを修正する必要がない場合は、第2の演算器6の演算結果は第2のデータ22aに反映されずデータは何等変更されないが、切換器7がONの場合は、前述の第2の演算器6の演算結果に基づき、第2のデータ22a内の所定のビットを、正しい値に書き換える。本実施の形態では、第2のデータ22aに演算前に書き込まれていたデータ「00000010」を、第2の演算器6の演算結果である「00100010」に書き換える。つまり、第2のデータ22aの左から3ビット目の値が本来「1」でないといけないものが、「0」となっていたため、第2の演算器6の演算結果により「1」に書き換える。
【0040】
以上のように本実施の形態によれば、第2のデータ22aの所定のビットの値にバグがあった場合、予めマイクロコンピュータ10に接続された不揮発性メモリ8に、データを書き換えるための任意のアドレスやデータを書き込むことで、第2のデータ22aの所定ビットの値を書き換えるようにしたことにより、マイクロコンピュータ10のソフトウェアバグを修正することができるので、マイクロコンピュータにおけるバグ修正を、小容量の不揮発性メモリによる、低コストでの実現が可能であるという優れた効果が得られる。
【0041】
(実施の形態2)
次に、本発明の半導体装置を用いた一例を実施の形態2として説明する。本実施の形態で示す用例は、ビデオテープレコーダーに一般的に用いられている誤消去防止爪検出による動作制御を行うマイクロコンピュータのバグ修正である。
【0042】
マイクロコンピュータを備えたビデオテープレコーダーが誤動作した際や、マイクロコンピュータによって動作する機能を一部変更したい場合、マイクロコンピュータ内のソフトウェアを修正する必要がある。従来ではマスクROMを作成し直すなどの大コストがかかる処理を行っていたが、本実施の形態では、このようなソフトウェアの修正に対して、マイクロコンピュータ内のRAM(データ領域)における、例えばバグの原因となっている誤ったデータを、マイクロコンピュータに外部接続した不揮発性メモリーによって、RAM内のデータを低コストで正しいデータに書き換えるというものである。このような不揮発性メモリは予めビデオテープレコーダー内に搭載され、マイクロコンピュータと接続されている。そして、ビデオテープレコーダーが誤動作した時に、不揮発性メモリーに、任意の、RAMにおけるデータ修正を行うアドレスを特定するソースアドレスデータやターゲットアドレスデータ、実際にデータ修正を行う際に用いるマスクデータや比較データなどを、使用者やマイクロコンピュータ開発者によって書き込まれる。これらのデータが書き込まれた後、ビデオテープレコーダーの電源を投入することで、RAMのデータの書き換えが行われる。
【0043】
なお、不揮発性メモリをマイクロコンピュータに接続し、前述の各データを書き込んでいない状態の時、つまりRAMのデータを書き換え可能なデータを記憶する前は、不揮発性メモリの各アドレスには数値「0」が書き込まれている。
【0044】
図3はビデオテープレコーダーに用いるテープカセットの外観を示す斜視図で、同図(a)は誤消去防止爪が有る(記録可能状態)テープカセット、同図(b)は誤消去防止爪が無い(記録不可能状態)テープカセットを示している。31はテープカセット、32は爪の有無や開閉式の扉などで構成される誤消去防止検出部である。
【0045】
図4は本実施の形態の構成を示すブロック図であり、説明の便宜上、実施の形態1で用いたマスクROMとCPUの描画を省いた。図4において、20は電子機器の動作を制御する制御手段であるマイクロコンピュータ、8はマイクロコンピュータ20に接続しマイクロコンピュータ20内のバグを修正するデータを記憶した記憶手段である不揮発性メモリである。不揮発性メモリ8の内部には、RAM2における第1のデータ41が記録された任意のアドレスを特定するソースアドレス81、第1のデータ41と論理演算を行う第1のマスクデータ82、第1の演算器4の演算結果と比較する比較データ83、第2のデータ42と論理演算を行う第2のマスクデータ84、第2のデータ42のアドレスを特定するターゲットアドレス85とが配されており、各データはマイクロコンピュータ開発者によって任意のデータに変更することができるものである。なお、不揮発性メモリ8は、予めマイクロコンピュータ20に接続した状態にしておき、本機器が誤動作してマイクロコンピュータ20にバグがあると判明した時に、マイクロコンピュータ開発者が上記各データを不揮発性メモリ8に書き込むものである。
【0046】
2はデータ領域を有する書き換え可能なメモリであるRAM(Random Access Memory)で、41及び42はRAM2内のデータ領域(アドレス)に書き込まれた第1及び第2のデータである。
【0047】
4は不揮発性メモリー8からの第1のマスクデータ82と第1のデータ41とを論理演算する第1の演算手段である第1の演算器で、本実施の形態では乗算器としたが、後述する第1の選択データ86によって例えば加算器にも設定可能であり、その他の論理演算器にも対応できるものであり、これらに限定されるものではない。
【0048】
5は第1の演算器4の演算結果と比較データ83とを比較し後述する切換器7のON/OFF切換制御を行う比較手段である比較器で、本実施の形態では第1の演算器4の演算結果と比較データ83とが一致した場合に切換器7をON状態にするよう動作している。つまり、第1の演算器4によって抽出された第1のデータ41の所定ビットの値が、所望データである比較データ83との一致性を確認している。
【0049】
7は比較器5の比較結果により開放(OFF)/接続(ON)切換を行う切換手段である切換器で、後述する第2の演算器6の演算結果を第2のデータ42に書き込むか否かを切り替えるものである。
【0050】
6は第2のデータ42と第2のマスクデータ84とで論理演算する第2の演算手段である第2の演算器で、本実施の形態では乗算器としたが、後述する第2の選択データ87によって例えば加算器にも設定可能であり、その他の論理演算器にも対応できるものであり、これらに限定されるものではない。86は第1の演算器4を乗算器か加算器のいずれかを選択可能な第1の選択データ、87は第2の演算器6を乗算器か加算器のいずれかを選択可能な第2の選択データであり、第1及び第2の選択データ86及び87において、「01h」に設定された時は乗算器を指定し、「02h」に設定された時は加算器を指定する。
【0051】
マイクロコンピュータ20内には、RAM2、第1の演算器4、比較器5、第2の演算器6、切換器7がそれぞれ設けられている。
【0052】
以上のように構成された本実施の形態の半導体装置について、以下その動作について説明する。
【0053】
図3に示すように、ビデオテープレコーダーに用いられるテープカセット31には、誤消去防止検出部32(本実施の形態では爪)がカセット側面に付いており、その爪が付いていると記録可能であり(図3(a))、その爪がなければ(図3(b))記録をしてはいけないという規則性がある。このようなテープカセットを用いるビデオテープレコーダのコントロールには、マスクROMを搭載したマイクロコンピュータを使用している。
【0054】
上記構成において例えば、ビデオテープレコーダのソフトウエアに、誤消去防止用の爪が付いていない(折れている)にもかかわらず、記録動作を行ってしまうという誤動作が発覚したとする。このような誤動作の原因としては検出メカニズムの故障なども考えられるが、本実施の形態での説明はマイクロコンピュータ内のソフトウェアのバグによる誤動作を前提としている。上記のように、ソフトウェアバグの原因による誤動作は、ソフトウェアにおいて誤消去防止爪が付いていない(折れている)時にフラグが「1」になる「誤消去防止フラグ」と、誤消去防止フラグが「1」になっている時に記録動作を行わないよう制御する「記録開始フラグ」との関係に誤りがある場合に生じる。なお、「記録開始フラグ」が「1」の時は記録動作を開始し、「0」の時は記録動作を開始しない。
【0055】
本来、誤消去防止フラグが「1」になっている(誤消去防止爪が折れている)時は、記録開始フラグは「0」(記録動作を開始しない)であることが正常であるにも関わらず、記録開始フラグが「1」になっている(記録動作を開始する)という状態になっていると、ビデオテープレコーダは前述のような誤動作を引き起こしてしまう。この時、本装置を働かせて、誤消去防止フラグが「1」になっていたら、記録開始フラグを「0」にする(記録動作を行わない)という動作をさせるように、RAMのデータ領域における記録開始フラグの部分を書き換えるよう動作させる。その結果、ソフトウエアのバグが解消され、再度、マスクROMを作成しなおす必要がなくなるというものである。
【0056】
以下に具体動作について図4を用いて詳述する。
【0057】
図4において、まず、不揮発性メモリ8はマイクロコンピュータ20に接続された状態でビデオテープレコーダ内に配される。この時の不揮発性メモリ8の全てのアドレスには、「0」の値が既に書き込まれているため、RAM2内のデータを不用意に書き換える動作は行われない。このようなビデオテープレコーダにおいて、誤消去防止検出部32の爪が無いにも関わらず、記録動作を開始してしまう誤動作が発生し、マイクロコンピュータ20のバグが原因であることが発覚すると、マイクロコンピュータ開発者は、以下の手順に従って、不揮発性メモリ8に各データを予め書き込む。
【0058】
マイクロコンピュータ開発者は、前提としてRAM2内における、誤消去防止フラグが書き込まれているアドレスやビット、記録開始フラグが書き込まれているアドレスやビットは、予め解っているものとする。そして、これら既知の情報に基づき、誤消去防止フラグがRAM2におけるアドレス「16C5h」番地の左から2ビット目に第1のデータ41として書き込み、記録開始フラグがアドレス「3A67h」番地の左から6ビット目に第2のデータ42として書き込むとすると、マイクロコンピュータ開発者は不揮発性メモリ8に、任意のアドレスとしてソースアドレス81「16C5h」、第1のマスクデータ82として第1のデータ41における左から2ビット目を読み出すためのデータ「01000000」、比較データ83として第1の演算器4の演算結果と比較するためのデータ「01000000」、第2のマスクデータ84として第2のデータ42の左から6ビット目を書き換えるためのデータ「11111011」、ターゲットアドレス85として第2のデータ42のアドレスを特定するための「3A67h」をそれぞれ書き込んでおく。
【0059】
ここで、比較データ83には、第1の演算器4の演算結果と比較して、誤消去防止フラグが「1」の時の第1のデータ41と第1のマスクデータ82との演算結果と一致するデータを書き込む。つまり、誤消去防止フラグが「1」の時における、第2のデータ42を修正するためである。誤消去防止フラグが「0」の時(つまり誤消去防止爪が有る場合)については、第2のデータ42を修正する必要がないので、第1の演算器4の演算結果と比較データ83とが不一致の場合は、第2のデータ42は変更されない。なお、不揮発性メモリ8へのデータの書き込みは、専用の書き込み装置を用いて書き込むなど方法がある。
【0060】
そして、第1の選択データ86には、第1の演算器4が乗算器として動作するように「01h」、第2の選択データ87には第2の演算器6が乗算器として動作するように「01h」をそれぞれ書き込んでおく。また、第2のマスクデータ84には、第2の演算器6において乗算処理された時に、第2のデータ42の左から6ビット目を「1」から「0」に書き換えるようなデータ「11111011」を書き込んでおく。
【0061】
そして、不揮発性メモリ8のソースアドレス81によりRAM2の任意のアドレス「16C5h」が指定され、そのアドレスに書き込まれている第1のデータ41「01000000」を読み出す。読み出した第1のデータ41は第1の演算器4に入力され、第1の演算器4において、第1のデータ41「01000000」と、不揮発性メモリ8における第1のマスクデータ82「01000000」とを乗算処理する。つまり、第1のデータ41における誤消去防止フラグが書き込まれているビットの値を抽出する。その演算結果は「01000000」となり、その演算結果は比較器5に入力される。比較器5は、第1の演算器4の演算結果「01000000」と、不揮発性メモリ8における比較データ83「01000000」とを比較し、各々のデータが一致(つまり、誤消去防止フラグ(左から2ビット目)が1になっている時)しているため、切換器7をONになるよう制御する。
【0062】
一方で、ターゲットアドレス85「3A67h」によって、RAM2における第2のデータ42のアドレスを特定し、第2のデータ42「00000100」を第2の演算器6に読み出す。第2の演算器6で、第2のデータ42「00000100」とマスクデータ84「11111011」とを乗算処理する。その乗算結果は「00000000」となる。つまり、修正したいビット(左から6ビット目)の値を「1」から「0」にするものであり、修正したいビット以外のビットについては、第2の演算器6における演算によって値が変更されないように全て「1」となっている。
【0063】
そして、切換器7がONである時は、第2の演算器6の演算結果「00000000」が第2のデータ42に書き込まれる。この時、第2の演算器6で演算される前の第2のデータ42は、記録開始フラグ(左から6ビット目)が「1」になっていたが、第2の演算器6の演算結果に書き換えられることにより、第2のデータ42の記録開始フラグが「0」になる。その結果、第1のデータ41における誤消去防止フラグ(左から2ビット目)が「1」になっていたら、第2のデータ42における記録開始フラグ(左から6ビット目)が「0」になるという動作になるので、誤消去防止用の爪が付いていないのに記録してしまうというバグが解消されたことになる。
【0064】
このようにしてバグを修正したマイクロコンピュータ20をビデオテープレコーダーで動作させると、誤消去防止検出部32が有るテープカセット31(図3(a)参照)では、操作者の録画指令により記録動作を行い、誤消去防止検出部32が無いテープカセット31(図3(b)参照)では、操作者の誤った録画指令を行っても記録動作が行われない正常動作となる。
【0065】
以上のように本実施の形態によれば、不揮発性メモリ8に、第1及び第2のマスクデータ82及び84とソースアドレス81と比較データ83とターゲットアドレス85の任意のデータを書き込み、ソースアドレス81によってRAM2内の第1のデータ41を抽出し、誤消去防止フラグが書き込まれている第1のデータ41の中から第1のマスクデータ82によって誤消去防止フラグを読み出し、比較データ83と比較し、比較データ83と一致した時は、記録開始フラグが書き込まれている第2のデータ42と第2のマスクデータ84とを第2の演算器6で演算した結果を、第2のデータ42に書き込むことにより、誤消去防止フラグが「1」になっている時は記録開始フラグを「0」にするように第2のデータ42を修正することができるものであり、マイクロコンピュータにおけるバグ修正を、小容量の不揮発性メモリによる、低コストでの実現が可能であるという優れた効果が得られる。
【0066】
また、不揮発性メモリ8には、マイクロコンピュータ開発者によってバグに応じたソースアドレス、ターゲットアドレスの指定や、各データ設定を行うことができるので、様々なバグに対して、マスクROMを変更せずにバグの修正を行うことができるものである。
【0067】
なお、本実施の形態において、第1及び第2の演算器4及び6を乗算器として説明したが、不揮発性メモリ8内の第1及び第2の選択データ86及び87を変更することで、第1及び第2の演算器のいずれか一方または両方を加算器などに設定することが可能である。また、本実施の形態においては乗算器と加算器のみに切り換え可能な構成としたが、除算器などの他の論理演算器に設定することも可能である。
【0068】
【発明の効果】
以上のように本発明は、マスクROMを変更せず、かつプログラム領域の一部を、マイクロコンピュータ外部に配された不揮発性メモリに書き換えることなく、ソフトウエアのバグ修正を、小容量の不揮発性メモリによる低コストでの実現が可能であるという優れた効果が得られるものである。
【0069】
また、マイクロコンピュータのバグを修正する際、マイクロコンピュータ自体をウエハーの状態から再度拡散工程を経て作成し直すような作業が不要となり、コストを大幅に低減させることができるという優れた効果が得られるものである。
【図面の簡単な説明】
【図1】本発明の実施の形態1における半導体装置の構成を示すブロック図
【図2】同実施の形態1における半導体装置の動作説明のため模式的に示したブロック図
【図3】本発明の実施の形態2における半導体装置を説明するためのテープカセットの外観構成を示す斜視図
【図4】同実施の形態の半導体装置の構成を示すブロック図
【図5】従来の半導体装置の構成を示すブロック図
【符号の説明】
1 マスクROM
2 RAM
3 CPU
4 第1の演算器
5 比較器
6 第2の演算器
7 切換器
8 不揮発性メモリ
10、20 マイクロコンピュータ
21 第1のアドレス
21a 第1のデータ
22 第2のアドレス
22a 第2のデータ
81 ソースアドレス
82 第1のマスクデータ
83 比較データ
84 第2のマスクデータ
85 ターゲットアドレス
Claims (3)
- プログラムが記憶されたプログラム領域を有するマスクROMと、
前記プログラムの動作に用いるデータを記憶したデータ領域を有する書き換え可能なメモリと、
中央演算処理手段とを備えた制御手段と、
前記メモリ内の第1のアドレスを指定するソースアドレスと、前記第1のアドレスに書き込まれた第1のデータの所定のビットの値を読み出すための第1のマスクデータと、前記第1のマスクデータと前記第1のデータとで演算処理した演算の結果データと比較するための比較データと、前記メモリ内の第2のアドレスを指定するターゲットアドレスと、前記第2のアドレスに書き込まれた第2のデータと演算するための第2のマスクデータとを記憶する記憶手段と
を備えたことを特徴とする半導体装置。 - 制御手段は、メモリ内のソースアドレスによって選択された任意の第1のアドレスに書き込まれた第1のデータと前記記憶手段からの第1のマスクデータとで演算処理する第1の演算手段と、
前記第1の演算手段の演算結果と前記記憶手段からの比較データとの比較を行う比較手段と、
前記比較手段の比較結果によりON/OFFを切り換えられる切換手段と、
前記メモリ内の第2のアドレスに書き込まれた第2のデータと前記記憶手段からの第2のマスクデータとで演算処理する第2の演算手段と
を備えたことを特徴とする請求項1記載の半導体装置。 - 数値「0」が書き込まれた前記記憶手段に任意の前記第1及び第2のマスクデータと前記比較データと前記ソースアドレスと前記ターゲットアドレスとを書き込むことで、前記制御手段は、前記ソースアドレスに基づき前記第1のデータを抽出し、前記第1のデータと前記第1のマスクデータとで第1の演算を行い、前記第1の演算結果と前記比較データとを比較し、前記ターゲットアドレスに基づき前記第2のデータを抽出し、前記第2のデータと前記第2のマスクデータとで第2の演算を行い、前記比較の結果によって前記第2の演算結果を前記第2のデータに書き込むか否かを切り換えることを特徴とする請求項1乃至2記載の半導体装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000192278A JP3750494B2 (ja) | 1999-08-31 | 2000-06-27 | 半導体装置 |
US09/649,067 US6377493B1 (en) | 1999-08-31 | 2000-08-29 | Semiconductor apparatus |
EP00118714A EP1081595B1 (en) | 1999-08-31 | 2000-08-30 | Semiconductor apparatus |
DE60009999T DE60009999T2 (de) | 1999-08-31 | 2000-08-30 | Halbleitervorrichtung |
KR1020000050731A KR100723097B1 (ko) | 1999-08-31 | 2000-08-30 | 반도체 장치 |
CNB001268686A CN1206658C (zh) | 1999-08-31 | 2000-08-31 | 半导体装置 |
US10/093,800 US6487129B2 (en) | 1999-08-31 | 2002-03-11 | Semiconductor apparatus |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-244718 | 1999-08-31 | ||
JP24471899 | 1999-08-31 | ||
JP2000192278A JP3750494B2 (ja) | 1999-08-31 | 2000-06-27 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001143495A JP2001143495A (ja) | 2001-05-25 |
JP3750494B2 true JP3750494B2 (ja) | 2006-03-01 |
Family
ID=26536874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000192278A Expired - Fee Related JP3750494B2 (ja) | 1999-08-31 | 2000-06-27 | 半導体装置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US6377493B1 (ja) |
EP (1) | EP1081595B1 (ja) |
JP (1) | JP3750494B2 (ja) |
KR (1) | KR100723097B1 (ja) |
CN (1) | CN1206658C (ja) |
DE (1) | DE60009999T2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3750494B2 (ja) * | 1999-08-31 | 2006-03-01 | 松下電器産業株式会社 | 半導体装置 |
JP2003044305A (ja) * | 2001-07-26 | 2003-02-14 | Sony Corp | 電子装置および修正方法 |
CA2987744C (en) | 2008-08-01 | 2022-11-15 | The Johns Hopkins University | Psma-binding agents and uses thereof |
CN101604248B (zh) * | 2009-07-20 | 2012-09-26 | 北京海尔集成电路设计有限公司 | 一种修正只读存储器中程序的嵌入式系统及其实现方法 |
CN103875039A (zh) * | 2011-09-01 | 2014-06-18 | 杭州海存信息技术有限公司 | 现场修复系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4651275A (en) * | 1981-07-02 | 1987-03-17 | Texas Instruments Incorporated | Microcomputer having read/write memory for combined macrocode and microcode storage |
JPS6310234A (ja) | 1986-07-01 | 1988-01-16 | Canon Inc | 割込み処理装置 |
JPH01192096A (ja) | 1988-01-27 | 1989-08-02 | Mitsubishi Electric Corp | 半導体装置 |
JPH0314083A (ja) * | 1989-06-12 | 1991-01-22 | Toshiba Corp | 携帯可能電子装置 |
JPH05233266A (ja) * | 1992-02-18 | 1993-09-10 | Nec Home Electron Ltd | 情報処理装置 |
JP3810805B2 (ja) | 1992-09-19 | 2006-08-16 | ソニー株式会社 | 情報修正システム |
EP0615187B1 (en) | 1993-03-11 | 2000-09-20 | Olympus Optical Co., Ltd. | One-chip microcomputer system having function for substantially correcting contents of program |
JPH0764784A (ja) | 1993-08-31 | 1995-03-10 | Nec Corp | マイクロコンピュータ |
JP3904244B2 (ja) * | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
JP3563768B2 (ja) * | 1994-05-31 | 2004-09-08 | 株式会社ルネサステクノロジ | Romプログラム変更装置 |
JP3059076B2 (ja) * | 1995-06-19 | 2000-07-04 | シャープ株式会社 | 不揮発性半導体記憶装置 |
TW318932B (ja) * | 1995-12-28 | 1997-11-01 | Hitachi Ltd | |
US5958065A (en) | 1997-02-18 | 1999-09-28 | Micron Electronics, Inc. | Content addressable bit replacement memory |
JP3750494B2 (ja) * | 1999-08-31 | 2006-03-01 | 松下電器産業株式会社 | 半導体装置 |
US6941505B2 (en) * | 2000-09-12 | 2005-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
-
2000
- 2000-06-27 JP JP2000192278A patent/JP3750494B2/ja not_active Expired - Fee Related
- 2000-08-29 US US09/649,067 patent/US6377493B1/en not_active Expired - Lifetime
- 2000-08-30 EP EP00118714A patent/EP1081595B1/en not_active Expired - Lifetime
- 2000-08-30 KR KR1020000050731A patent/KR100723097B1/ko not_active IP Right Cessation
- 2000-08-30 DE DE60009999T patent/DE60009999T2/de not_active Expired - Lifetime
- 2000-08-31 CN CNB001268686A patent/CN1206658C/zh not_active Expired - Fee Related
-
2002
- 2002-03-11 US US10/093,800 patent/US6487129B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR20010070043A (ko) | 2001-07-25 |
US6487129B2 (en) | 2002-11-26 |
KR100723097B1 (ko) | 2007-05-30 |
CN1291773A (zh) | 2001-04-18 |
US20020093853A1 (en) | 2002-07-18 |
US6377493B1 (en) | 2002-04-23 |
CN1206658C (zh) | 2005-06-15 |
EP1081595A2 (en) | 2001-03-07 |
EP1081595B1 (en) | 2004-04-21 |
JP2001143495A (ja) | 2001-05-25 |
EP1081595A3 (en) | 2001-04-25 |
DE60009999T2 (de) | 2005-04-21 |
DE60009999D1 (de) | 2004-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5568641A (en) | Powerfail durable flash EEPROM upgrade | |
US6601132B2 (en) | Nonvolatile memory and method of writing data thereto | |
KR100415371B1 (ko) | 컴퓨터 | |
JP2002351685A (ja) | 不揮発性メモリのデータ更新方法及び制御装置 | |
US7478207B2 (en) | Control system with a write filter for protection of data | |
JP3830867B2 (ja) | シングルチップマイクロコンピュータおよびそのブート領域切り替え方法 | |
JP3750494B2 (ja) | 半導体装置 | |
JPH10214203A (ja) | 情報処理装置 | |
JPH05225076A (ja) | 共通情報管理方法及びシステム | |
JP4734582B2 (ja) | 不揮発性メモリのデータ更新方法、制御装置、及びデータ更新プログラム | |
JPH03149536A (ja) | カメラのデータ記憶装置 | |
JP3019346B2 (ja) | データ処理装置 | |
JPH0784894A (ja) | 不揮発性メモリの書き込み方法 | |
JP2005128613A (ja) | 画像形成装置 | |
JP2731047B2 (ja) | プログラムのオペランドチェック方式 | |
JPH0728707A (ja) | 不揮発性メモリのデ−タ保護方法 | |
JPH07168769A (ja) | 不揮発性メモリに対するデータ更新方法 | |
JP2000057000A (ja) | フラッシュメモリ内蔵マイクロコンピュータ | |
JPH0317760A (ja) | データ書込み確認方式 | |
JP2002259152A (ja) | フラッシュメモリ書換方法 | |
JPH03266154A (ja) | 情報処理装置 | |
JPS6234262A (ja) | 不揮発性メモリアクセス方式 | |
JPS6348698A (ja) | メモリ格納制御装置 | |
JPH02189694A (ja) | マイクロコンピュータ | |
JP2002007159A (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050701 |
|
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: 20051115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051128 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091216 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101216 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111216 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121216 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131216 Year of fee payment: 8 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |