JPH11296392A - 1チップマイクロコンピュータ - Google Patents

1チップマイクロコンピュータ

Info

Publication number
JPH11296392A
JPH11296392A JP10097287A JP9728798A JPH11296392A JP H11296392 A JPH11296392 A JP H11296392A JP 10097287 A JP10097287 A JP 10097287A JP 9728798 A JP9728798 A JP 9728798A JP H11296392 A JPH11296392 A JP H11296392A
Authority
JP
Japan
Prior art keywords
data
ecc
user data
eeprom
ecc data
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.)
Granted
Application number
JP10097287A
Other languages
English (en)
Other versions
JP3230485B2 (ja
Inventor
Kiyoshi Fukushima
清 福嶋
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP09728798A priority Critical patent/JP3230485B2/ja
Priority to US09/286,973 priority patent/US6604214B1/en
Priority to KR1019990012535A priority patent/KR100323236B1/ko
Priority to DE19916120A priority patent/DE19916120A1/de
Publication of JPH11296392A publication Critical patent/JPH11296392A/ja
Application granted granted Critical
Publication of JP3230485B2 publication Critical patent/JP3230485B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microcomputers (AREA)
  • Detection And Correction Of Errors (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 ECCデータ作成時におけるユーザの作業負
担を軽減することができるとともに、ECCデータに基
づくEEPROM書き込み時間の増加がなく、かつ、メ
モリ容量を削減できる1チップマイクロコンピュータを
提供する。 【解決手段】 開示される1チップマイクロコンピュー
タは、ユーザデータからECCデータを生成するための
プログラムを格納したファームROM5と、EEPRO
M8に対するユーザデータとECCデータとの書き込み
を制御するEEPROM制御回路7とを備え、CPU2
がユーザデータからファームROM5のプログラムによ
って生成したECCデータともとのユーザデータとを、
EEPROM制御回路7の制御に応じてEEPROM8
のユーザデータ領域83とECCデータ領域84とに格
納し、ユーザデータ領域83のユーザデータとECCデ
ータ領域84のECCデータとを読み出して誤り訂正の
処理を順次行うように構成されいる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、ECC(Error
Correction Code )データを内部的に生成、付加するこ
とが可能な1チップマイクロコンピュータに関する。
【0002】
【従来の技術】EEPROM(Electrically Erasable
Programmable Read Only Memory )はデータの消去,書
き換えが可能なメモリ(電気的に一括して消去可能なフ
ラッシュEEPROMを含む)であって、1チップマイ
クロコンピュータ等において、プログラムの格納用等と
して多く用いられている。EEPROMにおける保持デ
ータの信頼性を向上するためには、ユーザデータにEC
Cデータを付加して記録し、読み出されたユーザデータ
についてECCデータを用いて誤り訂正を行うことが有
効である。従来、このようなECCデータの付加は、ユ
ーザデータから専用のソフトウエアを使用してECCデ
ータを生成して、ユーザデータとともにEEPROMに
格納することによって行われていた。例えば、自動車の
エンジン制御などに使用される1チップマイクロコンピ
ュータは、制御プログラムによってエンジンの回転数や
燃料噴射などの重要な制御を行っている。この制御プロ
グラムを記憶しているROM(Read Only Memory)の内
容がなんらかの理由によって変化した場合、1チップマ
イクロコンピュータは異常な処理を行うことになるの
で、危険な状態を招きかねない。そのため、ユーザがR
OMにユーザデータ(プログラムなど)を記憶させると
き、ECCデータを付加して記憶させておいて、1チッ
プマイクロコンピュータがユーザデータを読み出したと
き1ビットの誤りであれば訂正して処理し、2ビット以
上の誤りであれば異常表示を行うなどの処理を行うよう
にしている。
【0003】さらに、ROMに記憶させたユーザデータ
(プログラム)にバグが発見されたとき、自動車メーカ
は、販売済みの自動車を回収して1チップマイクロコン
ピュータを交換する作業が必要になる。この場合、RO
MをマスクROMなどのような書き換え不可能なROM
で構成していると、自動車メーカは1チップマイクロコ
ンピュータを含むエンジン制御ユニットごと交換しなけ
ればならないが、そうすると、ユニット代だけでなく、
取り替えコストもかかるので、莫大な損失を受けること
になる。そこで、1チップマイクロコンピュータのRO
MをEEPROMで構成しておけば、自動車メーカはエ
ンジン制御ユニットのコネクタを介してプログラムを書
き換えるだけで済むので、バグ対応費用を大幅に低減で
きる。
【0004】図20は、EEPROMにおける従来のE
CCデータの生成・付加方法の説明図である。以下、図
20を参照して、従来技術を説明する。まず、ユーザは
ECCデータ作成のために、所定のプログラムを作成す
る(同図(a)101)。いま、ユーザデータ102と
して、00000H〜0FFFFHまでのデータを入力
したものとする。ユーザは、作成されたプログラムによ
って、ユーザデータ102に基づいて専用のソフトウエ
アを用いてECCデータを生成する(同図(a)10
3)。これによって、ECCデータ104として、10
000H〜14FFFHまでのデータが生成される。次
に、ユーザデータ102にECCデータ104を付加し
て、書き込みデータ105として00000H〜14F
FFHまでのデータを生成し、図示されないマイクロコ
ンピュータに内蔵するEEPROMに対する書き込み
(同図(a)106)を行う。この際におけるデータの
書き込みは、専用のライタまたはオンボード書き込みに
よって実行される。同図20(b)は、EEPROM上
のアドレスマップを示したものであって、ユーザデータ
として、00000H〜0FFFFHが割り当てられ、
ECCデータとして、10000H〜14FFFHが割
り当てられている。ECCデータのボリュームは、16
ビットデータの場合5ビット必要であり、このため、同
図(b)に示すようなデータ領域が必要になる。
【0005】
【発明が解決しようとする課題】しかしながら、上記従
来のECCデータの生成・付加方法にあっては、ユーザ
データの処理とは別にECCデータを生成するようにし
ていたため、ユーザデータを基にECCデータを生成す
る専用ソフトウエアが必要である、という問題があっ
た。また、ECCデータは、ユーザデータの後のアドレ
スにマッピングされるため、00000H〜0FFFF
Hのユーザデータに加えて、ECCデータとして100
00H〜14FFFHのデータを書き込むので、このた
め、書き込み時間が約30パーセント増加するという問
題があった。さらに、ECCデータによって書き込みデ
ータが全体として約30パーセント増加するため、シス
テム全体の外部メモリ容量を約30パーセント増加しな
ければならないという問題があった。
【0006】また、論理回路で構成したECCデータの
生成回路を、1チップマイクロコンピュータに内蔵した
構成も既に知られている。近年において、1チップマイ
クロコンピュータのデータバスの幅は増加する傾向にあ
り、従来、8ビット幅であったものが、32ビット幅や
64ビット幅に変わりつつある。そこでECCデータの
生成回路を論理回路で構成すると、データバス幅が増加
するのに伴って、回路規模は指数関数的に増加し、半導
体チップに占める面積が増加する。EEPROMを1チ
ップマイクロコンピュータのプログラム格納用に用いる
場合、ECCデータの生成回路は、プログラムを格納す
る際にのみ使用するものであって、プログラム実行時に
は使用されない回路である。それにもかかわらず、回路
規模の大きいECCデータの生成回路を内蔵すること
は、1チップマイクロコンピュータのコストパフォーマ
ンスを悪化させる原因になる。
【0007】この発明は、上述の事情に鑑みてなされた
ものであって、ECCデータ作成時におけるユーザの作
業負担を軽減することができるとともに、ECCデータ
に基づくEEPROM書き込み時間の増加がなく、か
つ、メモリ容量を削減できる1チップマイクロコンピュ
ータを提供することを目的としている。
【0008】
【課題を解決するための手段】上記課題を解決するため
に、請求項1記載の発明は、ユーザデータと該ユーザデ
ータに対応するECCデータとを格納するEEPROM
を備え、該ユーザデータとECCデータとから誤り訂正
を行ったユーザデータを発生するように構成されている
1チップマイクロコンピュータに係り、ユーザデータか
らECCデータを生成するためのプログラムを格納した
記憶手段と、上記EEPROMに対するユーザデータと
ECCデータとの書き込みを制御する制御手段とを備
え、CPUがユーザデータから該記憶手段のプログラム
によって生成したECCデータともとのユーザデータと
を、上記制御手段の制御に応じて上記EEPROMのユ
ーザデータ領域とECCデータ領域とに格納し、該ユー
ザデータ領域のユーザデータとECC領域のECCデー
タとを読み出して誤り訂正の処理を順次行うように構成
されてなることを特徴としている。
【0009】また、請求項2記載の発明は、請求項1記
載の1チップマイクロコンピュータに係り、外部から上
記CPUの内部レジスタへ順次所定量のユーザデータを
格納するステップと、上記EEPROM内のユーザデー
タレジスタへ上記所定量ずつユーザデータを転送するス
テップと、上記CPUが格納されている所定量のユーザ
データからECCデータを生成するステップと、上記E
EPROM内のECCデータレジスタへ該ECCデータ
を転送するステップと、該ユーザデータレジスタのユー
ザデータとECCデータレジスタのECCデータとを、
それぞれ上記EEPROMの同じアドレスのユーザデー
タ領域とECCデータ領域とに書き込むステップとを順
次実行し、該EEPROMの同じアドレスのユーザデー
タとECCデータとを読み出して誤り訂正の処理を順次
行うように構成されていることを特徴としている。
【0010】また、請求項3記載の発明は、請求項1記
載の1チップマイクロコンピュータに係り、外部から上
記制御手段内のユーザデータスタックレジスタに所定量
のユーザデータを格納するステップと、外部から上記C
PUの内部レジスタへ所定量のユーザデータを格納する
ステップと、最初の処理サイクルにおいて、最初のアド
レスのユーザデータを上記制御手段内のユーザデータレ
ジスタに転送するステップと、該ユーザデータレジスタ
のユーザデータを上記EEPROM内のユーザデータ領
域に格納するステップとを実行し、次の処理サイクル以
降において、上記CPUが前回の処理サイクルで格納さ
れている所定量のユーザデータからECCデータを生成
するステップと、上記制御手段内のECCデータスタッ
クレジスタに該ECCデータを転送するステップと、上
記EEPROM内のユーザデータレジスタにユーザデー
タを転送するとともにECCデータレジスタに該ECC
データを転送するステップと、EEPROMのECCデ
ータ領域に対する書き込みアドレスを−1するステップ
と、上記ユーザデータレジスタのユーザデータとECC
データレジスタのECCデータとを、それぞれ上記EE
PROMのユーザデータ領域とECCデータ領域とに書
き込むステップとを繰り返して実行し、最後の処理サイ
クルにおいて、上記CPUが前回の処理サイクルにおい
て格納されている所定量のユーザデータからECCデー
タを生成するステップと、制御手段内のECCデータス
クックレジスタに該ECCデータを転送するステップ
と、上記EEPROM内のECCデータレジスタに該E
CCデータを転送するステップと、上記EEPROM内
のECCデータ領域に対する書き込みアドレスを−1す
るステップと、該ECCデータレジスタのECCデータ
を上記EEPROMのECCデータ領域に書き込むステ
ップとを実行し、該EEPROMの同じアドレスのユー
ザデータとECCデータとを読み出して誤り訂正の処理
を順次行うように構成されていることを特徴としてい
る。
【0011】また、請求項4記載の発明は、請求項1記
載の1チップマイクロコンピュータに係り、外部から上
記制御手段内のユーザデータスタックレジスタに所定量
のユーザデータを格納するステップと、外部から上記C
PUの内部レジスタへ所定量のユーザデータを格納する
ステップと、最初の処理サイクルにおいて、最初のアド
レスのユーザデータを上記制御手段内のユーザデータレ
ジスタに転送するステップと、該ユーザデータレジスタ
のユーザデータを上記EEPROM内のユーザデータ領
域に格納するステップとを実行し、次の処理サイクル以
降において、上記CPUが前回の処理サイクルで格納さ
れている所定量のユーザデータからECCデータを生成
するステップと、上記制御手段内のECCデータスタッ
クレジスタに該ECCデータを転送するステップと、上
記EEPROM内のユーザデータレジスタにユーザデー
タを転送するとともにECCデータレジスタに該ECC
データを転送するステップと、上記ユーザデータレジス
タのユーザデータとECCデータレジスタのECCデー
タとを、それぞれ上記EEPROMのユーザデータ領域
とECCデータ領域とに書き込むステップとを繰り返し
て実行し、最後の処理サイクルにおいて、上記CPUが
前回の処理サイクルにおいて格納されている所定量のユ
ーザデータからECCデータを生成するステップと、制
御手段内のECCデータスクックレジスタに該ECCデ
ータを転送するステップと、上記EEPROM内のEC
Cデータレジスタに該ECCデータを転送するステップ
と、該ECCデータレジスタのECCデータを上記EE
PROMのECCデータ領域に書き込むステップとを実
行し、該EEPROMのユーザデータと該ユーザデータ
のアドレスに+1したアドレスのECCデータとを読み
出して誤り訂正の処理を順次行うように構成されている
ことを特徴としている。
【0012】また、請求項5記載の発明は、請求項1記
載の1チップマイクロコンピュータに係り、外部から上
記制御手段内のスタックレジスタへ順次所定量のユーザ
データを転送するステップと、上記CPUの内部レジス
タへ順次所定量のユーザデータを格納するステップと、
該所定量のユーザデータをEEPROM内のユーザデー
タレジスタに転送するステップと、上記スタックレジス
タのユーザデータを該スタックアドレスに対応するRA
M領域に格納するステップとを実行するとともに、上記
CPUが該RAM領域のデータからECCデータを生成
するステップと、該ECCデータをEEPROM内のE
CCデータレジスタに転送するステップとを繰り返して
実行し、上記制御手段から上記EEPROMのユーザデ
ータ領域のアドレスとECCデータ領域のアドレスとを
出力するステップと、上記ユーザデータレジスタのユー
ザデータとECCデータレジスタのECCデータとをE
EPROMのユーザデータ領域とECCデータ領域のそ
れぞれの指定アドレスに格納するステップとを繰り返し
て実行し、該EEPROMの同じアドレスのユーザデー
タとECCデータとを読み出して誤り訂正の処理を順次
行うように構成されていることを特徴としている。
【0013】さらにまた、請求項6記載の発明は、ユー
ザデータと該ユーザデータに対応するECCデータとを
格納するEEPROMを備え、該ユーザデータとECC
データとから誤り訂正を行ったユーザデータを発生する
ように構成されている1チップマイクロコンピュータに
係り、ユーザデータからECCデータを生成するための
プログラムを内蔵し、該プログラムを用いて入力ユーザ
データから対応するECCデータを生成する処理を装置
内部において行うようにしたことを特徴としている。
【0014】また、請求項7記載の発明は、請求項6記
載の発明に係る1チップマイクロコンピュータであっ
て、外部から順次所定量のユーザデータを入力して、上
記CPUが順次該所定量のユーザデータからECCデー
タを生成し、上記ユーザデータと対応するECCデータ
とを、それぞれ上記EEPROMの同じアドレスのユー
ザデータ領域とECCデータ領域とに書き込むととも
に、該EEPROMの同じアドレスのユーザデータとE
CCデータとを読み出して誤り訂正の処理を順次行うよ
うに構成されていることを特徴としている。
【0015】また、請求項8記載の発明は、請求項6記
載の発明に係る1チップマイクロコンピュータであっ
て、外部から順次所定量のユーザデータを入力して、上
記CPUが順次該所定量のユーザデータから1処理サイ
クル後までにECCデータを生成し、上記ユーザデータ
と対応する1処理サイクル後のECCデータとを、それ
ぞれ上記EEPROMのユーザデータ領域と−1したア
ドレスのECCデータ領域とに書き込むとともに、該E
EPROMの同じアドレスのユーザデータとECCデー
タとを読み出して誤り訂正の処理を順次行うように構成
されていることを特徴としている。
【0016】また、請求項9記載の発明は、請求項6記
載の発明に係る1チップマイクロコンピュータであっ
て、外部から順次所定量のユーザデータを入力して、上
記CPUが順次該所定量のユーザデータから1処理サイ
クル後までにECCデータを生成し、上記ユーザデータ
と対応する1処理サイクル後のECCデータとを、それ
ぞれ上記EEPROMの同じアドレスのユーザデータ領
域とECCデータ領域とに書き込むとともに、該EEP
ROMのユーザデータと+1したアドレスのECCデー
タとを読み出して誤り訂正の処理を順次行うように構成
されていることを特徴としている。
【0017】また、請求項10記載の発明は、請求項6
記載の発明に係る1チップマイクロコンピュータであっ
て、外部から順次所定量のユーザデータを入力して、上
記CPUが逐次該所定量のユーザデータからECCデー
タを生成するとともに、次のユーザデータの入力時まで
にECCデータの生成を終了しないときは無効データを
出力し、上記ユーザデータと対応する有効なECCデー
タとを、それぞれ上記EEPROMの同じアドレスのユ
ーザデータ領域とECCデータ領域とに書き込むととも
に、該EEPROMの同じアドレスのユーザデータとE
CCデータとを読み出して誤り訂正の処理を順次行うよ
うに構成されていることを特徴としている。
【0018】
【作用】この発明の構成では、外部からユーザデータを
入力して、CPUが内部プログラムに基づいて順次、所
定量のユーザデータからECCデータを生成して、ユー
ザデータと対応するECCデータとを、それぞれEEP
ROMのユーザデータ領域とECCデータ領域とに格納
するようにしたので、外部的にECCデータを生成して
付加する場合と比べて、ユーザの負担が大幅に減少する
とともに、ECCデータ作成のために、作成したECC
データを一旦格納する外部メモリを必要としないので、
システム的に装置のコストを低減することができ、さら
に、EEPROMに対して、ユーザデータとECCデー
タとを同時に書き込むので、ECCデータを外部メモリ
から書き込む場合と比べて、EEPROMに対するデー
タ書き込み時間を低減することができる。
【0019】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行なう。図1は、この発明の一実施例である
1チップマイクロコンピュータの電気的構成を示す図、
図2は、EEPROM制御回路の構成例を示す図、図3
は、データラッチ選択制御回路の構成例を示す図、図4
は、書き込み信号生成回路の構成例を示す図、図5は、
書き込み信号生成回路の動作タイミングを示す図、図
6,図7は、この例の第1の動作例を示すフローチャー
ト、図8は、第1の動作例における書き込み時のタイミ
ングチャート、図9,図10は、この例の第2の動作例
を示すフローチャート、図11は、書き込み時ECCア
ドレスをシフトする場合のタイミングチャート、図12
は、書き込み時ECCアドレスをシフトする場合のEE
PROMアドレス生成回路の構成例を示す図、図13,
図14は、この例の第3の動作例を示すフローチャー
ト、図15は、読み出し時ECCアドレスをシフトする
場合のタイミングチャート、図16は、読み出し時EC
Cアドレスをシフトする場合のEEPROMアドレス生
成回路の構成例を示す図、図17,図18は、この例の
第4の動作例を示すフローチャート、図19は、第4の
動作例における書き込み時のタイミングチャートであ
る。この例の1チップマイクロコンピュータは、図1に
示すように、入出力ポート1と、CPU(Central Proc
essing Unit )2と、アドレスバス3と、データバス4
と、ファームROM5と、RAM(Random Access Memo
ry)6と、EEPROM制御回路7と、EEPROM8
と、誤り訂正回路9と、データ選択回路10とから概略
構成されている。
【0020】入出力ポート1は、外部との間でデータの
入出力を行う複数の端末ポートからなっている。CPU
2は、プログラムによって与えられる命令の解釈と実行
を制御することによって、この例の1チップマイクロコ
ンピュータの全体の動作を制御する。アドレスバス3
は、この例の1チップマイクロコンピュータの各部の間
で、アドレス信号を転送する。データバス4は16ビッ
ト幅からなり、この例の1チップマイクロコンピュータ
の各部の間で、データ信号を転送する。ファームROM
5は、1チップマイクロコンピュータの動作に必要なフ
ァームウエア(マイクロプログラム)を格納するもので
あって、この例の場合は特にECCデータ生成用プログ
ラムを収容している。RAM6は、主としてCPU2の
作業領域として用いられる随時読み出し書き込みメモリ
である。
【0021】EEPROM制御回路7は、EEPROM
8の書き込み,読み出しを制御するものであって、後述
する内容を有するとともに、データスタックのために、
ユーザデータスタックレジスタ71とECCデータスタ
ックレジスタ72とを有している。EEPROM8は、
電気的手段によって情報の書き込み,消去が可能な固定
記憶素子であって、データ書き込みのために、ユーザデ
ータレジスタ81とECCデータレジスタ82とを有す
るとともに、データ格納のために、ユーザデータ領域8
3とECCデータ領域84とを有している。なお、EE
PROM8は、通常のEEPROMとフラッシュEEP
ROMのいずれでもよい。誤り訂正回路9は、データに
付加されているECCデータによって、データの誤りを
検出して訂正する。データ選択回路10は、32ビット
からなる誤り訂正回路9の出力を上位16ビットと下位
16ビットとに分割して、交互にデータバス4に転送す
る。
【0022】また、上記EEPROM制御回路7は、図
2に示すように、アドレスバス11と、データバス12
と、データラッチ選択制御回路13と、アドレスnのデ
ータラッチ14と、アドレスn+2のデータラッチ15
と、ECCのデータラッチ16と、書き込み信号生成回
路17と、EEPROMアドレス生成回路18とを含ん
で構成されている。ここでは、外部からのユーザデータ
のアドレスnを基準に説明する。アドレスバス11は、
アドレスバス3の一部であって、アドレス信号を転送す
る。データバス12は、データバス4の一部であって、
データ信号を転送する。データラッチ選択制御回路13
は、データバス12上のデータを、アドレスnのデータ
ラッチ14,アドレスn+2のデータラッチ15,EC
Cのデータラッチ16において選択的にラッチするため
の制御信号DL1,DL2,DL3を、アドレスバス1
1の情報に従って発生するものであって、その構成は後
述する。アドレスnのデータラッチ14は、制御信号D
L1がアクティブのとき、データバス12上のアドレス
nとn+1の2バイト(16ビット)のデータをラッチ
するものであって、アドレスのビット1が“0”のと
き、データをラッチしてEEPROM8のメモリセルへ
出力する。
【0023】アドレスn+2のデータラッチ15は、制
御信号DL2がアクティブのとき、データバス12上の
アドレスn+2とn+3の2バイト(16ビット)のデ
ータをラッチするものであって、アドレスのビット1が
“1”のとき、データをラッチしてEEPROM8のメ
モリセルへ出力する。ECCのデータラッチ16は、制
御信号DL3がアクティブのとき、データバス12上の
下位6ビットのデータをラッチするものであって、EC
Cアドレスが出力されたとき、データをラッチしてEE
PROM8のメモリセルへ出力する。
【0024】書き込み信号生成回路17は、アドレスバ
ス11の情報とデータバス12の情報とから、EEPR
OM8に対する書き込み開始を制御するための書き込み
セット信号と、書き込み終了を制御するための書き込み
リセット信号とを発生するものであって、その構成は後
述する。EEPROMアドレス生成回路18は、アドレ
スバス11の情報からEEPROM8に対するアドレス
を生成するものであって、アドレスバス11のビット2
〜15を、EEPROM8のデータ領域(ユーザメモ
リ)用のアドレスデコーダ(不図示)を介して、EEP
ROM8のデータ領域のアドレス0〜13として与え、
アドレスバス11のビット2〜15をディクリメント回
路(不図示)とEEPROM8のECCデータ領域のア
ドレスデコーダ(不図示)を介して、EEPROM8の
ECCデータ領域のアドレス0〜13として与える。な
お、このようなアドレスの変換を行うのは、アドレス信
号がバイト単位(8ビット)であるのに対して、EEP
ROM8の32ビットの入出力データに対応する対応す
るアドレスとしては、最下位の2ビットが不要なためで
ある。なお、アドレスnのデータラッチ14とアドレス
n+2のデータラッチ15は、データが16ビット幅な
ので、外部のアドレスnに対しては、それぞれn,n+
1と、n+2,n+3のアドレスのデータをラッチす
る。
【0025】データラッチ選択制御回路13は、図3に
示すように、アドレスバス131と、ノア回路132
と、インバータ133と、ノア回路134とを含んで構
成されている。アドレスバス131は、アドレスバス1
1の一部であって、アドレス信号を転送する。ノア回路
132は、EEPROM8のデータ領域を表すアドレス
バスのビット1と、ECCデータ領域を示すアドレスバ
ス131のビット16とがインアクティブのとき、アド
レスnのデータラッチ14に対する制御信号DL1を出
力する。インバータ133とノア回路134は、EEP
ROM8のデータ領域を表すアドレスバスのビット1が
アクティブで、ECCデータ領域を示すアドレスバス1
31のビット16とがインアクティブのとき、アドレス
n+2のデータラッチ15に対する制御信号DL2を出
力する。一方、アドレスバス131のビット16がアク
ティブのときは、ECCのデータラッチ16に対する制
御信号DL3を出力する。
【0026】書き込み信号生成回路17は、図4に示す
ように、アドレスバス171と、データバス172と、
アドレスデコーダ173と、FF(Flip Flop )174
と、FF175と、インバータ176と、アンド回路1
77とを含んで構成されている。書き込み信号生成回路
17の動作は、図5のタイミングチャートによって示さ
れる。アドレスバス171は、アドレスバス11の一部
であって、アドレス信号を転送する。データバス172
はデータバス12の一部であって、データ信号を転送す
る。アドレスデコーダ173は、CPU2の出力したア
ドレスバス171上のアドレスが、EEPROM8に対
する書き込み信号の生成を指示する、予め設定されてい
る特定のアドレスと一致したことを検出したとき、アド
レス一致信号を出力する。FF174とFF175は、
アドレス一致信号が出力されたとき、それぞれデータバ
ス172のデータビット0とデータビット1をラッチす
る。これによって、データビット1に応じて書き込みリ
セット信号が出力され、データビット0が出力されたと
き、書き込みリセット信号が出力されていないことを条
件として、アンド回路177から書き込みセット信号が
出力される。EEPROM8では、書き込みセット信号
によって書き込みパルスを立ち上げ、書き込みリセット
信号によって書き込みパルスを立ち下げることによっ
て、書き込みパルスがアクティブの期間にユーザデータ
とECCデータの書き込みを行う。
【0027】次に、図6,図7,図8を参照して、この
例の第1の動作例を説明する。この第1の動作例は、E
EPROM8の書き込みが遅いため、書き込みパルス幅
内でECCデータを生成できる場合の処理方法を示して
いる。ユーザデータを収容した外部のファイル(不図
示)における、ユーザデータの最初のアドレスと最後の
アドレスとが予め指定されているものとする。最初のア
ドレスから入出力ポート1へユーザデータを入力し(ス
テップS1)、データバス4を介してCPU2の内部レ
ジスタ群21へユーザデータを格納する(ステップS
2)処理を繰り返すことによって、4バイトデータを格
納した(ステップS3)後、内部レジスタ群21からデ
ータバス4を介してEEPROM制御回路7内のユーザ
データスタックレジスタ71へユーザデータを転送し
(ステップS4)、さらにEEPROM8内のユーザデ
ータレジスタ81にユーザデータを転送する(ステップ
S5)。
【0028】一方、CPU2はファームROM5に格納
したECC生成プログラムを読み出して実行することに
よって、格納した4バイトデータによってECCデータ
を生成し(ステップS6)、データバス4を介してEE
PROM制御回路7内のECCデータスタックレジスタ
72へECCデータを転送し(ステップS7)、さらに
EEPROM8内のECCデータレジスタ82へECC
データを転送する(ステップS8)。そして、EEPR
OM制御回路7からEEPROM8へ書き込みセット信
号を与える(ステップS9)ことによって、ユーザデー
タレジスタ81のユーザデータとECCデータレジスタ
82のECCデータとを、それぞれEEPROM8のユ
ーザデータ領域83とECCデータ領域84に書き込む
処理を、4バイトデータのすべてのデータ書き込みが終
了するまで繰り返して行い(ステップS10)、書き込
み終了時、EEPROM8へ書き込みリセット信号を与
える(ステップS11)。4バイトデータの処理を終了
したとき、ユーザデータのアドレスを+4して(ステッ
プS13)、再びステップS5,S8から処理を繰り返
し、最後のアドレスになった(ステップS12)とき処
理を終了する。
【0029】この場合の各データの書き込みタイミング
は、図8に例示されるようになる。すなわち、最初、ポ
ート1から4バイトのユーザデータを書き込みデータ
(データ0〜データ3)として入力することによって、
このデータがデータバス4に連続して出力されている。
これを所定のタイミングでEEPROM8内のユーザデ
ータレジスタ81に転送し、さらにCPU2においてデ
ータ0〜データ3からのECCデータの生成が終了し
て、EEPROM8内のECCデータレジスタ82に転
送されたとき、書き込みパルスを発生して、EEPRO
M8に書き込む。EEPROM8のデータを読み出すと
きは、同一アドレスからユーザデータとECCデータと
を読み出すことによって、対応するユーザデータ部分と
ECCデータ部分とを読み出すことができるので、誤り
訂正回路9ではこれによって誤り訂正の処理を行うこと
ができる。
【0030】次に、図9,図10,図11及び図12を
参照して、この例の第2の動作例について説明する。こ
の第2の動作例は、EEPROM8の書き込みが速いた
め、書き込みパルス幅内でECCデータを生成できない
場合であって、書き込み時ECCアドレスをシフトする
場合の処理方法を示している。ユーザデータを収容した
外部のファイル(不図示)における、ユーザデータの最
初のアドレスと最後のアドレスとが予め指定されてい
る。最初のアドレスから入出力ポート1へユーザデータ
を入力し(ステップP1)、データバス4を介してEE
PROM制御回路7内のユーザデータスタックレジスタ
71へユーザデータを転送し(ステップP2)、さらに
入力されたデータをデータバス4を介してCPU2の内
部レジスタ群21へ格納する(ステップP3)処理を繰
り返すことによって、4バイトデータを格納した(ステ
ップP4)後、この4バイトデータが最初のアドレスに
対応するものであった(ステップP5)ときは、ユーザ
データスタックレジスタ71からEEPROM8内のユ
ーザデータレジスタ81へユーザデータを転送し(ステ
ップP6)、EEPROM制御回路7からEEPROM
8へ書き込みセット信号を出力して(ステップP7)、
EEPROM8に対する書き込みを行って、書き込みが
終了した(ステップP8)とき、EEPROM制御回路
7からEEPROM8へ書き込みリセット信号を出力し
(ステップP9)、次にアドレスを+4して(ステップ
P10)、再びステップP1に戻って、外部からの4バ
イトデータの入力から繰り返して実行する。
【0031】4バイトデータの格納終了時、アドレスが
最初のアドレスに対応するものでなく(ステップP
5)、最終のアドレスに対応するものでない(ステップ
P11)ときは、CPU2が前回の処理サイクルで格納
されている4バイトデータからECCデータを生成して
(ステップP12)、データバス4を介してEEPRO
M制御回路7内のECCデータスタックレジスタ72へ
ECCデータを転送し(ステップP13)、EEPRO
M8内のユーザデータレジスタ81へユーザデータスタ
ックレジスタ71からユーザデータを転送し、ECCデ
ータレジスタ82へECCデータスタックレジスタ72
からECCデータを転送し(ステップP14)、EEP
ROM8のECCデータ領域のアドレスを−1シフトし
(ステップP15)、EEPROM8への書き込みセッ
ト信号を出力して(ステップP16)、EEPROM8
のユーザデータ領域83にユーザデータレジスタ81か
らユーザデータを書き込み、ECCデータ領域84にE
CCデータレジスタ82からECCデータの書き込みを
行う。そして書き込みが終了した(ステップP17)と
き、EEPROM8への書き込みリセット信号を出力し
(P18)、ステップP10に戻って、アドレスを+4
シフトして(ステップP10)、再びステップP1に戻
って、外部からの4バイトデータの入力から繰り返して
実行する。ステップP11において、最後のアドレスに
なったときは、CPU2が格納した4バイトデータから
ECCデータを生成し(ステップP19)、データバス
4を介してEEPROM制御回路7内のECCデータス
タックレジスタ72へECCデータを転送し(ステップ
P20)、EEPROM8内のECCデータレジスタ8
2へECCデータを転送し(ステップP21)、EEP
ROM8のECCデータ領域84のアドレスを−1シフ
トし(ステップP22)、EEPROM8への書き込み
セット信号を出力して(ステップP23)ECCデータ
の書き込みを行う。そして書き込みが終了した(ステッ
プP24)とき、処理を終了する。
【0032】書き込み時ECCアドレスをシフトする場
合の各データの書き込みタイミングは、図11に例示さ
れるようになる。すなわち、ポート1から4バイトから
なるページ単位に、ユーザデータを、ページアドレス
0,1,2,…,n,…,最終アドレスの順にEEPR
OM8内のユーザデータレジスタ81に転送するととも
に、これに基づいて1サイクル遅れて生成された対応す
るECCデータを、順次1アドレスずつシフトしてEE
PROM8のECCデータレジスタ82に転送し、書き
込みパルスに応じて、それぞれEEPROM8のユーザ
データ領域83とECCデータ領域84に書き込む。誤
り訂正処理のためにEEPROM8のデータを読み出す
ときは、EEPROM8の同一アドレスから、ユーザデ
ータと、ECCデータとを読み出すことによって、対応
するユーザデータ部分とECCデータ部分とを同時に読
み出すことができる。
【0033】書き込み時ECCアドレスをシフトする場
合の、EEPROM制御回路7における、EEPROM
アドレス生成回路18は、図12に示すように、アドレ
スバス181と、ディクリメント回路182とを含んで
構成されている。アドレスバス181は、アドレスバス
11の一部であって、アドレス信号を転送する。ディク
リメント回路182は、アドレスバス181のアドレス
から1減算して出力する。EEPROM8へは、32ビ
ットのユーザデータと、6ビットのECCデータとを同
時に書き込むので、アドレスバス181のビット2〜1
5を、EEPROM8のユーザデータ領域83の書き込
みアドレスとして、EEPROM8のアドレス0〜13
に与え、アドレスバス181のビット2〜15を、ディ
クリメント回路182を介して1を減算して、EEPR
OM8のECCデータ領域84の書き込み用として、E
EPROM8のアドレス0〜13に与える。このような
変換を行うのは、アドレス信号がバイト単位(8ビッ
ト)であるのに対して、EEPROM8の32ビットの
入出力データに対応する対応するアドレスとしては、最
下位の2ビットが不要なためである。
【0034】次に、図13,図14,図15及び図16
を参照して、この例の第3の動作例について説明する。
この第3の動作例は、EEPROM8の書き込みが速い
ため、書き込みパルス幅内でECCデータを生成できな
い場合であって、読み出し時ECCアドレスをシフトす
る場合の処理方法を示している。ユーザデータを収容し
た外部の20イル(不図示)における、ユーザデータの
最初のアドレスと最後のアドレスとが予め指定されてい
る。最初のアドレスから入出力ポート1へユーザデータ
を入力し(ステップR1)、データバス4を介してEE
PROM制御回路7内のユーザデータスタックレジスタ
71へユーザデータを転送し(ステップR2)、さらに
入力されたデータをデータバス4を介してCPU2の内
部レジスタ群21へ格納する(ステップR3)処理を繰
り返すことによって、4バイトデータを格納した(ステ
ップR4)後、この4バイトデータが最初のアドレスに
対応するものであった(ステップR5)ときは、ユーザ
データスタックレジスタ71からEEPROM8内のユ
ーザデータレジスタ81へユーザデータを転送し(ステ
ップR6)、EEPROM制御回路7からEEPROM
8へ書き込みセット信号を出力して(ステップR7)、
EEPROM8に対する書き込みを行って、書き込みが
終了した(ステップR8)とき、EEPROM制御回路
7からEEPROM8へ書き込みリセット信号を出力し
(ステップR9)、次にアドレスを+4して(ステップ
R10)、再びステップR1に戻って、外部からの4バ
イトデータの入力から繰り返して実行する。
【0035】4バイトデータの格納終了時、アドレスが
最初のアドレスに対応するものでなく(ステップR
5)、最終のアドレスに対応するものでない(ステップ
R11)ときは、CPU2が格納した4バイトデータか
らECCデータを生成して(ステップR12)、データ
バス4を介してEEPROM制御回路7内のECCデー
タスタックレジスタ72へECCデータを転送し(ステ
ップR13)、EEPROM8内のユーザデータレジス
タ81へユーザデータスタックレジスタ71からユーザ
データを転送し、ECCデータレジスタ82へECCデ
ータスタックレジスタ72からECCデータを転送し
(ステップR14)、EEPROM8への書き込みセッ
ト信号を出力して(ステップR15)、EEPROM8
のユーザデータ領域83にユーザデータレジスタ81か
らユーザデータを書き込み、ECCデータ領域84にE
CCデータ領域82からECCデータの書き込みを行
う。そして書き込みが終了した(ステップR16)と
き、EEPROM8への書き込みリセット信号を出力し
(R17)、ステップR10に戻って、アドレスを+4
シフトして(ステップR10)、再びステップR1に戻
って、外部からの4バイトデータの入力から繰り返して
実行する。ステップR11において、最後のアドレスに
なったときは、CPU2が格納した4バイトデータから
ECCデータを生成し(ステップR18)、データバス
4を介してEEPROM制御回路7内のECCデータス
タックレジスタ72へECCデータを転送し(ステップ
P19)、EEPROM8内のECCデータレジスタ8
2へECCデータを転送し(ステップR20)、EEP
ROM8への書き込みセット信号を出力して(ステップ
R21)ECCデータの書き込みを行う。そして書き込
みが終了した(ステップR22)とき、処理を終了す
る。
【0036】読み出し時ECCアドレスをシフトする場
合の各データの書き込みタイミングは、図15に例示さ
れるようになる。すなわち、ポート1から4バイトから
なるページ単位に、ユーザデータを、ページアドレス
0,1,2,…,n,…,最終アドレスの順にEEPR
OM8内のユーザデータレジスタ81に転送するととも
に、これに基づいて1サイクル遅れて生成された対応す
るECCデータを、順次EEPROM8のユーザデータ
レジスタ81に転送し、書き込みパルスに応じて、それ
ぞれEEPROM8の同一アドレスのユーザデータ領域
83とECCデータ領域84に書き込む。したがって、
この場合は、ページアドレスnのユーザデータに対応す
るECCデータは、ECCデータ領域84のアドレスn
+1に書き込まれる。誤り訂正処理のためにEEPRO
M8のデータを読み出すときは、EEPROM8のユー
ザデータ領域83のアドレスnと、ECCデータ領域8
4のアドレスn+1とを読み出すことによって、対応す
るユーザデータ部分とECCデータ部分とを同時に読み
出すことができる。
【0037】読み出し時ECCアドレスをシフトする場
合の、EEPROM制御回路7における、EEPROM
アドレス生成回路18Aは、図16に示すように、アド
レスバス183と、ディクリメント回路184とを含ん
で構成されている。アドレスバス183は、アドレスバ
ス11の一部であって、アドレス信号を転送する。ディ
クリメント回路184は、アドレスバス183のアドレ
スから1減算して出力する。EEPROM8からは、3
2ビットのユーザデータと、6ビットのECCデータと
を同時に読み出す必要があるので、アドレスバス183
のビット2〜15を、EEPROM8のユーザデータ領
域83の読み出しアドレスとして、EEPROM8のア
ドレス0〜13に与え、アドレスバス183のビット2
〜15を、ディクリメント回路184を介して1を減算
して、EEPROM8のECCデータ領域84の読み出
し用として、EEPROM8のアドレス0〜13に与え
る。このような変換を行うのは、アドレス信号がバイト
単位(8ビット)であるのに対して、EEPROM8の
32ビットの入出力データに対応する対応するアドレス
としては、最下位の2ビットが不要なためである。
【0038】次に、図17,図18及び図19を参照し
て、この例の第4の動作例について説明する。この第4
の動作例は、EEPROM8の書き込みが速いため、書
き込みパルス幅内でECCデータを生成できない場合
に、EEPROM8のECCデータ領域側に、ファーム
ROM5のプログラムに基づくCPU2の処理によっ
て、書き込みアドレスをインクリメントする、書き込み
アドレスインクリメンタの機能を設ける際の処理方法を
示している。ユーザデータを収容した外部のファイル
(不図示)における、ユーザデータの最初のアドレスと
最後のアドレスとが予め指定されている。最初のアドレ
スから入出力ポート1へユーザデータを入力して(ステ
ップQ1)、データバス4を介してEEPROM制御回
路7内のユーザデータスタックレジスタ71へユーザデ
ータを転送するとともに(ステップQ2)、入出力ポー
ト1からのユーザデータをデータバス4を介してCPU
2の内部レジスタ群21へ格納する(ステップQ3)処
理を繰り返すことによって、4バイトデータを格納した
(ステップQ4)後、ユーザデータスタックレジスタ7
1から4バイトデータをEEPROM8内のユーザデー
タレジスタ81へ転送する(ステップQ5)。
【0039】一方、ステップQ5で最初の4バイトデー
タをEEPROM8内のユーザデータレジスタ81へ転
送したとき、内部レジスタ群21からデータバス4を介
してユーザデータスタックレジスタ71に対応するアド
レスのRAM6の領域へ4バイトデータを格納する(ス
テップQ6)。そして、データバス4を介してユーザデ
ータスタックアドレスが示すRAM6の領域から4バイ
トデータを読み出してCPU2へ転送する(ステップQ
7)。これによってCPU2は、4バイトデータからE
CCデータを生成して(ステップQ8)、データバス4
を介してEEPROM制御回路7内の対応するアドレス
のECCデータスタックレジスタ72へECCデータを
転送し(ステップQ9)、さらにEEPROM8内のE
CCデータレジスタ82へECCデータを転送して、ス
タックアドレスをディクリメントする(ステップQ1
1)処理を繰り返して行う。そして、EEPROM制御
回路7からEEPROM8のユーザデータ領域83とE
CCデータ領域84のアドレスを出力し(ステップQ1
2)、EEPROM8への書き込みセット信号を出力し
て(ステップQ13)書き込みを行い、書き込み完了
(ステップQ14)時、書き込みリセット信号を出力し
て(ステップQ15)書き込みを終了する処理を、アド
レスを4インクリメントし(ステップQ17)ながら繰
り返し実行する。ユーザデータが最終アドレスになった
(ステップQ16)とき、ECCデータスタックレジス
タ72からEEPROM8内のECCデータレジスタ8
2へECCデータを転送して、転送終了した(ステップ
Q18)とき、書き込みセット信号を出力して(ステッ
プQ19)EEPROM8のECCデータ領域84に対
する書き込みを行って、書き込みが完了した(ステップ
Q20)とき、書き込みリセット信号を出力する(ステ
ップQ21)処理を、ECCデータ領域84の最終アド
レスになる(ステップQ22)まで行って、処理を終了
する。
【0040】第4の動作例の場合の各データの書き込み
タイミングは、図19に例示されるようになる。すなわ
ち、ポート1からユーザデータを、4バイトからなるペ
ージ単位に、ページアドレス0,1,2,…,n,…,
最終アドレスの順にEEPROM8内のユーザデータレ
ジスタ81に転送するとともに、これに基づいて生成さ
れたECCデータを、生成された時点で順次EEPRO
M8のECCデータレジスタ82に転送する。ユーザデ
ータは書き込みパルスに応じてそのままEEPROM8
のユーザデータ領域83に書き込まれるが、ECCデー
タに対しては、最初に生成されたECCアドレス0への
書き込み(1),(2)は、ECCデータ生成の遅れに
基づくディフォルト値なので書き込みは行われず、次の
ECCアドレス0への書き込み以降のデータが、書き込
みパルスに応じて、EEPROM8の所定のアドレスの
ECCデータ領域84に書き込まれる。
【0041】この動作例の場合は、CPU2によるEC
Cデータの生成が、次のECCデータの書き込みのため
のアドレスのインクリメントまでに間に合わなかったと
きは、CPU2はディフォルト値を出力し、EEPRO
M制御回路7は、この場合は、EEPROM8のECC
領域84への書き込みを行わないようにする。ディフォ
ルト値としては、例えば最初のECCデータが生成され
るまではオール1を用い、以後は、前回のECCデータ
をそのままディフォルト値として出力する。誤り訂正処
理のためにEEPROM8のデータを読み出すときは、
同一アドレスから、ユーザデータと、ECCデータとを
読み出すことによって、対応するユーザデータ部分とE
CCデータ部分とを読み出すことができる。
【0042】このようにこの例によれば、ECCデータ
を作成する際に、外部のソフトウエアによる処理を行う
のでなく、1チップマイクロコンピュータの内部のソフ
トウエアによって処理を行うので、外部からECCデー
タを書き込む必要がなく、外部からの書き込みデータ量
が少なくなり、したがって、書き込みデータを転送する
際のエラーが減少し、データの信頼性を向上することが
できる。さらにこの場合、EEPROMに対して外部か
ら書き込むデータ量が減少することによって、データの
書き込み時間が減少し、生産性が向上する。EEPRO
Mにデータ書き込む外部装置の実装メモリは、ECCデ
ータの分を必要とせず、書き込もうとするユーザデータ
の分だけあればよいので、この外部装置のコストの負担
が少ない。
【0043】以上、この発明の実施例を図面により詳述
してきたが、具体的な構成はこの実施例に限られたもの
ではなく、この発明の要旨を逸脱しない範囲の設計の変
更等があってもこの発明に含まれる。例えば、この発明
の適用は、1チップマイクロコンピュータに限られるも
のでなく、EEPROMを内蔵してプログラムを外部的
に格納するコンピュータに対して、一般的に応用可能な
のもである。
【0044】
【発明の効果】以上説明したように、この発明の構成に
よれば、EEPROMにECCデータを付加したデータ
からなるプログラムを格納して、プログラム読み出し時
誤り訂正を行う1チップマイクロコンピュータ等におい
て、1チップマイクロコンピュータ等の内部でECCデ
ータを生成するようにしたので、外部的にECCデータ
を生成して付加する場合と比べて、ユーザの負担が大幅
に減少する。また、ECCデータ作成のために、作成し
たECCデータを一旦格納する外部メモリを必要としな
いので、システム的に装置のコストを低減できる。さら
に、EEPROMに対して、ユーザデータとECCデー
タとを同時に書き込むので、ECCデータを外部メモリ
から書き込む場合と比べて、EEPROMに対するデー
タ書き込み時間を低減することができる。
【0045】また、従来のようにECCデータの生成を
論理回路で構成したECCデータ生成回路で行う場合と
異なり、ECCデータの生成用のファームROMを追加
するだけでよいので、回路規模が大幅に増加することが
なく、1チップマイクロコンピュータのチップサイズを
増大させることもない。また、ECCデータの生成処理
は、プログラム格納時にのみ動作し、通常のプログラム
実行時には、ECCデータの生成処理のファームROM
は動作しない。また、プログラム実行時には、論理回路
で構成した誤り訂正回路を用いて誤りの検出と訂正の処
理を行うので、通常のプログラム処理速度を低下させる
ことはない。
【0046】また、通常、EEPROMにデータを書き
込む場合、RAMに比べて数100倍〜数1000倍の
書き込み時間を必要とする。この発明では、外部から受
け取るユーザデータを複数バイトまとめてEEPROM
に書き込んだり、複数バイトのユーザデータとECCデ
ータとをまとめてEEPROMに書き込むようにしたの
で、ユーザデータを高速に受信でき、また書き込み時間
を利用してECCデータを計算することが同時並行的に
処理可能になる。
【図面の簡単な説明】
【図1】この発明の一実施例である1チップマイクロコ
ンピュータの電気的構成を示す図である。
【図2】EEPROM制御回路の構成例を示す図であ
る。
【図3】データラッチ選択制御回路の構成例を示す図で
ある。
【図4】書き込み信号生成回路の構成例を示す図であ
る。
【図5】書き込み信号生成回路の動作タイミングを示す
図である。
【図6】この例の第1の動作処理手順を示すフローチャ
ートである。
【図7】この例の第1の動作処理手順を示すフローチャ
ートである。
【図8】第1の動作例における書き込み時のタイミング
チャートを示す図である。
【図9】この例の第2の動作処理手順を示すフローチャ
ートである。
【図10】この例の第2の動作処理手順を示すフローチ
ャートである。
【図11】書き込み時ECCアドレスをシフトする場合
のタイミングチャートを示す図である。
【図12】書き込み時ECCアドレスをシフトする場合
のEEPROMアドレス生成回路の構成例を示す図であ
る。
【図13】この例の第3の動作例のフローチャートを示
す図である。
【図14】この例の第3の動作例のフローチャートを示
す図(2) である。
【図15】読み出し時ECCアドレスをシフトする場合
のタイミングチャートを示す図である。
【図16】読み出し時ECCアドレスをシフトする場合
のEEPROMアドレス生成回路の構成例を示す図であ
る。
【図17】この例の第4の動作処理手順を示すフローチ
ャートである。
【図18】この例の第4の動作処理手順を示すフローチ
ャートである。
【図19】第4の動作例における書き込み時のタイミン
グチャートを示す図である。
【図20】EEPROMにおける従来のECCデータの
生成・付加方法を説明するための説明図である。
【符号の説明】
1 入出力ポート 2 CPU 21 内部レジスタ群 3 アドレスバス 4 データバス 5 ファームROM(記憶手段) 6 RAM 7 EEPROM制御回路(制御手段) 71 ユーザデータスタックレジスタ 72 ECCデータスタックレジスタ 8 EEPROM 81 ユーザデータレジスタ 82 ECCデータレジスタ 83 ユーザデータ領域 84 ECデータ領域 9 誤り訂正回路 10 データ選択回路

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 ユーザデータと該ユーザデータに対応す
    るECCデータとを格納するEEPROMを備え、該ユ
    ーザデータとECCデータとから誤り訂正を行ったユー
    ザデータを発生するように構成されている1チップマイ
    クロコンピュータにおいて、 ユーザデータからECCデータを生成するためのプログ
    ラムを格納した記憶手段と、前記EEPROMに対する
    ユーザデータとECCデータとの書き込みを制御する制
    御手段とを備え、CPUがユーザデータから該記憶手段
    のプログラムによって生成したECCデータともとのユ
    ーザデータとを、前記制御手段の制御に応じて前記EE
    PROMのユーザデータ領域とECCデータ領域とに格
    納し、該ユーザデータ領域のユーザデータとECC領域
    のECCデータとを読み出して誤り訂正の処理を順次行
    うように構成されてなることを特徴とする1チップマイ
    クロコンピュータ。
  2. 【請求項2】 外部から前記CPUの内部レジスタへ順
    次所定量のユーザデータを格納するステップと、前記E
    EPROM内のユーザデータレジスタへ前記所定量ずつ
    ユーザデータを転送するステップと、前記CPUが格納
    されている所定量のユーザデータからECCデータを生
    成するステップと、前記EEPROM内のECCデータ
    レジスタへ該ECCデータを転送するステップと、該ユ
    ーザデータレジスタのユーザデータとECCデータレジ
    スタのECCデータとを、それぞれ前記EEPROMの
    同じアドレスのユーザデータ領域とECCデータ領域と
    に書き込むステップとを順次実行し、 該EEPROMの同じアドレスのユーザデータとECC
    データとを読み出して誤り訂正の処理を順次行うように
    構成されていることを特徴とする請求項1記載の1チッ
    プマイクロコンピュータ。
  3. 【請求項3】 外部から前記制御手段内のユーザデータ
    スタックレジスタに所定量のユーザデータを格納するス
    テップと、外部から前記CPUの内部レジスタへ所定量
    のユーザデータを格納するステップと、最初の処理サイ
    クルにおいて、最初のアドレスのユーザデータを前記制
    御手段内のユーザデータレジスタに転送するステップ
    と、該ユーザデータレジスタのユーザデータを前記EE
    PROM内のユーザデータ領域に格納するステップとを
    実行し、次の処理サイクル以降において、前記CPUが
    前回の処理サイクルで格納されている所定量のユーザデ
    ータからECCデータを生成するステップと、前記制御
    手段内のECCデータスタックレジスタに該ECCデー
    タを転送するステップと、前記EEPROM内のユーザ
    データレジスタにユーザデータを転送するとともにEC
    Cデータレジスタに該ECCデータを転送するステップ
    と、EEPROMのECCデータ領域に対する書き込み
    アドレスを−1するステップと、前記ユーザデータレジ
    スタのユーザデータとECCデータレジスタのECCデ
    ータとを、それぞれ前記EEPROMのユーザデータ領
    域とECCデータ領域とに書き込むステップとを繰り返
    して実行し、 最後の処理サイクルにおいて、前記CPUが前回の処理
    サイクルにおいて格納されている所定量のユーザデータ
    からECCデータを生成するステップと、制御手段内の
    ECCデータスクックレジスタに該ECCデータを転送
    するステップと、前記EEPROM内のECCデータレ
    ジスタに該ECCデータを転送するステップと、前記E
    EPROM内のECCデータ領域に対する書き込みアド
    レスを−1するステップと、該ECCデータレジスタの
    ECCデータを前記EEPROMのECCデータ領域に
    書き込むステップとを実行し、 該EEPROMの同じアドレスのユーザデータとECC
    データとを読み出して誤り訂正の処理を順次行うように
    構成されていることを特徴とする請求項1記載の1チッ
    プマイクロコンピュータ。
  4. 【請求項4】 外部から前記制御手段内のユーザデータ
    スタックレジスタに所定量のユーザデータを格納するス
    テップと、外部から前記CPUの内部レジスタへ所定量
    のユーザデータを格納するステップと、最初の処理サイ
    クルにおいて、最初のアドレスのユーザデータを前記制
    御手段内のユーザデータレジスタに転送するステップ
    と、該ユーザデータレジスタのユーザデータを前記EE
    PROM内のユーザデータ領域に格納するステップとを
    実行し、次の処理サイクル以降において、前記CPUが
    前回の処理サイクルで格納されている所定量のユーザデ
    ータからECCデータを生成するステップと、前記制御
    手段内のECCデータスタックレジスタに該ECCデー
    タを転送するステップと、前記EEPROM内のユーザ
    データレジスタにユーザデータを転送するとともにEC
    Cデータレジスタに該ECCデータを転送するステップ
    と、前記ユーザデータレジスタのユーザデータと前記E
    CCデータレジスタのECCデータとを、それぞれ前記
    EEPROMのユーザデータ領域とECCデータ領域と
    に書き込むステップとを繰り返して実行し、 最後の処理サイクルにおいて、前記CPUが前回の処理
    サイクルにおいて格納されている所定量のユーザデータ
    からECCデータを生成するステップと、制御手段内の
    ECCデータスクックレジスタに該ECCデータを転送
    するステップと、前記EEPROM内のECCデータレ
    ジスタに該ECCデータを転送するステップと、該EC
    CデータレジスタのECCデータを前記EEPROMの
    ECCデータ領域に書き込むステップとを実行し、該E
    EPROMのユーザデータと該ユーザデータのアドレス
    に+1したアドレスのECCデータとを読み出して誤り
    訂正の処理を順次行うように構成されていることを特徴
    とする請求項1記載の1チップマイクロコンピュータ。
  5. 【請求項5】 外部から前記制御手段内のスタックレジ
    スタへ順次所定量のユーザデータを転送するステップ
    と、前記CPUの内部レジスタへ順次所定量のユーザデ
    ータを格納するステップと、該所定量のユーザデータを
    EEPROM内のユーザデータレジスタに転送するステ
    ップと、前記スタックレジスタのユーザデータを該スタ
    ックアドレスに対応するRAM領域に格納するステップ
    とを実行するとともに、前記CPUが該RAM領域のデ
    ータからECCデータを生成するステップと、該ECC
    データをEEPROM内のECCデータレジスタに転送
    するステップとを繰り返して実行し、 前記制御手段から前記EEPROMのユーザデータ領域
    のアドレスとECCデータ領域のアドレスとを出力する
    ステップと、前記ユーザデータレジスタのユーザデータ
    とECCデータレジスタのECCデータとをEEPRO
    Mのユーザデータ領域とECCデータ領域のそれぞれの
    指定アドレスに格納するステップとを繰り返して実行
    し、該EEPROMの同じアドレスのユーザデータとE
    CCデータとを読み出して誤り訂正の処理を順次行うよ
    うに構成されていることを特徴とする請求項1記載の1
    チップマイクロコンピュータ。
  6. 【請求項6】 ユーザデータと該ユーザデータに対応す
    るECCデータとを格納するEEPROMを備え、該ユ
    ーザデータとECCデータとから誤り訂正を行ったユー
    ザデータを発生するように構成されている1チップマイ
    クロコンピュータにおいて、ユーザデータからECCデ
    ータを生成するためのプログラムを内蔵し、該プログラ
    ムを用いて入力ユーザデータから対応するECCデータ
    を生成する処理を装置内部において行うようにしたこと
    を特徴とする1チップマイクロコンピュータ。
  7. 【請求項7】 外部から順次所定量のユーザデータを入
    力して、前記CPUが順次該所定量のユーザデータから
    ECCデータを生成し、前記ユーザデータと対応するE
    CCデータとを、それぞれ前記EEPROMの同じアド
    レスのユーザデータ領域とECCデータ領域とに書き込
    むとともに、該EEPROMの同じアドレスのユーザデ
    ータとECCデータとを読み出して誤り訂正の処理を順
    次行うように構成されていることを特徴とする請求項6
    記載の1チップマイクロコンピュータ。
  8. 【請求項8】 外部から順次所定量のユーザデータを入
    力して、前記CPUが順次該所定量のユーザデータから
    1処理サイクル後までにECCデータを生成し、前記ユ
    ーザデータと対応する1処理サイクル後のECCデータ
    とを、それぞれ前記EEPROMのユーザデータ領域と
    −1したアドレスのECCデータ領域とに書き込むとと
    もに、該EEPROMの同じアドレスのユーザデータと
    ECCデータとを読み出して誤り訂正の処理を順次行う
    ように構成されていることを特徴とする請求項6記載の
    1チップマイクロコンピュータ。
  9. 【請求項9】 外部から順次所定量のユーザデータを入
    力して、前記CPUが順次該所定量のユーザデータから
    1処理サイクル後までにECCデータを生成し、前記ユ
    ーザデータと対応する1処理サイクル後のECCデータ
    とを、それぞれ前記EEPROMの同じアドレスのユー
    ザデータ領域とECCデータ領域とに書き込むととも
    に、該EEPROMのユーザデータと+1したアドレス
    のECCデータとを読み出して誤り訂正の処理を順次行
    うように構成されていることを特徴とする請求項6記載
    の1チップマイクロコンピュータ。
  10. 【請求項10】 外部から順次所定量のユーザデータを
    入力して、前記CPUが逐次該所定量のユーザデータか
    らECCデータを生成するとともに、次のユーザデータ
    の入力時までにECCデータの生成を終了しないときは
    無効データを出力し、前記ユーザデータと対応する有効
    なECCデータとを、それぞれ前記EEPROMの同じ
    アドレスのユーザデータ領域とECCデータ領域とに書
    き込むとともに、該EEPROMの同じアドレスのユー
    ザデータとECCデータとを読み出して誤り訂正の処理
    を順次行うように構成されていることを特徴とする請求
    項6記載の1チップマイクロコンピュータ。
JP09728798A 1998-04-09 1998-04-09 1チップマイクロコンピュータ Expired - Fee Related JP3230485B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP09728798A JP3230485B2 (ja) 1998-04-09 1998-04-09 1チップマイクロコンピュータ
US09/286,973 US6604214B1 (en) 1998-04-09 1999-04-06 One-chip microcomputer capable of internally producing ECC data
KR1019990012535A KR100323236B1 (ko) 1998-04-09 1999-04-09 Ecc데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터
DE19916120A DE19916120A1 (de) 1998-04-09 1999-04-09 Ein-Chip-Mikrocomputer, der ECC-Daten intern erzeugen kann

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP09728798A JP3230485B2 (ja) 1998-04-09 1998-04-09 1チップマイクロコンピュータ

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001108991A Division JP3544951B2 (ja) 2001-04-06 2001-04-06 1チップマイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH11296392A true JPH11296392A (ja) 1999-10-29
JP3230485B2 JP3230485B2 (ja) 2001-11-19

Family

ID=14188303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09728798A Expired - Fee Related JP3230485B2 (ja) 1998-04-09 1998-04-09 1チップマイクロコンピュータ

Country Status (4)

Country Link
US (1) US6604214B1 (ja)
JP (1) JP3230485B2 (ja)
KR (1) KR100323236B1 (ja)
DE (1) DE19916120A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941505B2 (en) 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
WO2011081240A1 (ko) * 2009-12-28 2011-07-07 (주) 인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380131B1 (en) 2001-01-19 2008-05-27 Xilinx, Inc. Copy protection without non-volatile memory
US7191339B1 (en) * 2001-09-10 2007-03-13 Xilinx, Inc. System and method for using a PLD identification code
KR100645058B1 (ko) * 2004-11-03 2006-11-10 삼성전자주식회사 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
US7464241B2 (en) * 2004-11-22 2008-12-09 Intel Corporation Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
US20060218467A1 (en) * 2005-03-24 2006-09-28 Sibigtroth James M Memory having a portion that can be switched between use as data and use as error correction code (ECC)
US7716497B1 (en) 2005-06-14 2010-05-11 Xilinx, Inc. Bitstream protection without key storage
TWI385666B (zh) 2007-05-25 2013-02-11 Realtek Semiconductor Corp 適用於快閃記憶體之資料結構、及其資料寫入方法及資料讀取方法
US8924819B2 (en) * 2009-01-23 2014-12-30 Macronix International Co., Ltd. Memory device and operation method thereof
TWI404067B (zh) * 2009-02-27 2013-08-01 Macronix Int Co Ltd 記憶體裝置及其操作方法
US8427193B1 (en) 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits
US8386990B1 (en) 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
US8418006B1 (en) 2010-12-07 2013-04-09 Xilinx, Inc. Protecting a design for an integrated circuit using a unique identifier
US9684559B1 (en) * 2014-04-25 2017-06-20 Altera Corporation Methods and apparatus for storing error correction information on a memory controller circuit
KR20170143084A (ko) 2016-06-17 2017-12-29 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
TWI680375B (zh) * 2018-08-23 2019-12-21 慧榮科技股份有限公司 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法
KR20200092036A (ko) * 2019-01-24 2020-08-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201736A (ja) 1988-02-08 1989-08-14 Mitsubishi Electric Corp マイクロコンピュータ
DE3833300A1 (de) 1988-09-30 1990-04-05 Claude Marchand Chromatographiesaeulen-abschlusseinrichtung
US5293388A (en) * 1990-11-13 1994-03-08 Hewlett-Packard Company Compression/decompress with ECC data flow architecture
JPH0729395A (ja) 1993-06-25 1995-01-31 Mitsubishi Electric Corp Eeprom装置
JPH1089217A (ja) * 1996-09-17 1998-04-07 Honda Motor Co Ltd 車両用盗難防止装置
US6026014A (en) * 1996-12-20 2000-02-15 Hitachi, Ltd. Nonvolatile semiconductor memory and read method
TW407234B (en) * 1997-03-31 2000-10-01 Hitachi Ltd Semiconductor memory device, non-volatile semiconductor memory device and data reading method thereof
US6145069A (en) * 1999-01-29 2000-11-07 Interactive Silicon, Inc. Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941505B2 (en) 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method
WO2011081240A1 (ko) * 2009-12-28 2011-07-07 (주) 인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법
KR101139187B1 (ko) 2009-12-28 2012-04-26 (주)인디링스 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
KR100323236B1 (ko) 2002-02-19
JP3230485B2 (ja) 2001-11-19
DE19916120A1 (de) 1999-10-28
KR19990083088A (ko) 1999-11-25
US6604214B1 (en) 2003-08-05

Similar Documents

Publication Publication Date Title
JP3230485B2 (ja) 1チップマイクロコンピュータ
JPS5855528B2 (ja) アドレス発生装置
US6546517B1 (en) Semiconductor memory
JPS6259822B2 (ja)
US20090271593A1 (en) Patching device for patching rom code, method for patching rom code, and electronic device utilizing the same
JP3544951B2 (ja) 1チップマイクロコンピュータ
US20100146224A1 (en) Request processing device, request processing system, and access testing method
JPH0969064A (ja) 外部メモリーシステム
JPH04162300A (ja) 半導体メモリ
US6363469B1 (en) Address generation apparatus
JPH08115268A (ja) メモリ回路装置
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ
JPS6142304B2 (ja)
JPS59170943A (ja) プログラム修正ロ−ド方式
CN115390769A (zh) 数据存储方法、装置、电子设备及存储介质
KR20000074229A (ko) 차량의 엔진 이씨유에서의 프로그램 다운 로딩장치
JPS60214043A (ja) パイプライン制御回路
JP3177975B2 (ja) 1チップマイクロコンピュータ
JPS61288243A (ja) コンペアアンドスワツプ命令処理方式
CN111858429A (zh) 一种axi4转avalon总线的方法、装置、终端及存储介质
JPS59110098A (ja) デ−タ記憶装置の誤り訂正装置
JPH0955077A (ja) Icメモリカード
JPH11194975A (ja) メモリシステム
JPH06149559A (ja) ワンチップマイクロコンピュータ
JPH03130996A (ja) Eepromの初期設定方式

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080914

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090914

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 9

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees