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

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

Info

Publication number
JP3544951B2
JP3544951B2 JP2001108991A JP2001108991A JP3544951B2 JP 3544951 B2 JP3544951 B2 JP 3544951B2 JP 2001108991 A JP2001108991 A JP 2001108991A JP 2001108991 A JP2001108991 A JP 2001108991A JP 3544951 B2 JP3544951 B2 JP 3544951B2
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.)
Expired - Fee Related
Application number
JP2001108991A
Other languages
English (en)
Other versions
JP2002007226A (ja
Inventor
清 福嶋
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 Electronics Corp
Original Assignee
NEC Electronics 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 Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2001108991A priority Critical patent/JP3544951B2/ja
Publication of JP2002007226A publication Critical patent/JP2002007226A/ja
Application granted granted Critical
Publication of JP3544951B2 publication Critical patent/JP3544951B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

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

  1. ユーザデータと該ユーザデータに対応するECCデータとを書き込み記憶するEEPROMと、中央演算処理装置(以下CPUという)と、該CPUが前記ユーザデータから前記ECCデータを生成するためのプログラムを格納する記憶手段と、前記ユーザデータと前記ECCデータを前記EEPROMに書き込む制御を行う制御手段とを備え、
    外部から前記CPU内にある内部レジスタに、前記ユーザデータを格納する第1のステップと、前記ユーザデータを前記CPU内にある内部レジスタから読み出して前記制御手段内にあるユーザデータスタックレジスタに格納する第2のステップを実行し、
    前記CPUは前記記憶手段からECCデータを生成するためのプログラムを順次読み出して、前記内部レジスタに格納したユーザデータに基づきECCデータを生成する第3のステップを実行し、
    次に、前記制御手段内にあるECCデータスタックレジスタに、前記第3のステップで生成したECCデータを格納する第4のステップを実行し、
    前記制御手段内のユーザデータスタックレジスタとECCデータスタックレジスタからそれぞれユーザデータとECCデータを読み出して、前記EEPROM内にあるユーザデータレジスタとECCデータレジスタに転送する第5のステップを実行し、
    前記制御手段から出力する書き込みアドレスと書き込み制御信号に従って、前記EEPROM内のユーザデータ領域とECCデータ領域に書き込む第6のステップを実行し、
    さらに前記第1のステップから第6のステップを繰り返し実行して、前記EEPROMの全ユーザデータ領域とECCデータ領域に書き込みを行う、書き込み処理を実行し、
    読み出し処理においては、前記制御手段から前記EEPROMへ出力するアドレスに従って、前記EEPROMから同じアドレスのユーザデータとECCデータを読み出して、誤り訂正手段に転送し、誤り訂正を行って読み出すように構成していることを特徴とする1チップマイクロコンピュータ。
  2. ユーザデータと該ユーザデータに対応するECCデータとを書き込み記憶するEEPROMと、CPUと、該CPUが前記ユーザデータから前記ECCデータを生成するためのプログラムを格納する第1の記憶手段と、前記ユーザデータ及び前記ECCデータを前記EEPROMに書き込む制御を行う制御手段と、前記ECCデータを作成するための前記ユーザデータを格納する第2の記憶手段とを備え、
    外部から前記制御手段内にあるユーザデータスタックレジスタに、前記ユーザデータを格納する第1のステップと、
    前記ユーザデータを前記CPU内にある内部レジスタに格納する第2のステップと、
    前記制御手段内のユーザデータスタックレジスタからユーザデータを前記EEPROM内にあるユーザデータレジスタに転送する第3のステップと、
    前記EEPROM内のユーザデータレジスタとECCデータレジスタから前記ユーザデータとECCデータを前記EEPROM内のユーザデータ領域とECCデータ領域に書き込む第4のステップと、
    前記第4のステップと並行して、前記第2の記憶手段に前記ユーザデータを書き込み記憶し、前記第2の記憶手段から前記ユーザデータを前記CPUに転送し、前記CPUが前記第1の記憶手段からECCデータを生成するためのプログラムを順次読み出して、前記ユーザデータに基づきECCデータを生成し、前記制御手段内のECCデータスタックレジスタに前記CPUで作成したECCデータを転送し、前記制御手段内のECCデータスタックレジスタから前記EEPROM内のECCデータレジスタに前記ECCデータを転送する第5のステップを実行し、
    読み出し処理においては、前記EEPROMからユーザデータとECCデータを読み出して、誤り訂正手段に転送し、誤り訂正を行って読み出すように構成していることを特徴とする1チップマイクロコンピュータ。
  3. 前記EEPROM内のユーザデータレジスタとECCデータレジスタから前記ユーザデータとECCデータを前記EEPROM内のユーザデータ領域とECCデータ領域に書き込む際に、前記CPUが作成するECCデータが生成されていない場合には、予め決められた固定値をECCデータとして供給する手段を備えることを特徴とする請求項2記載の1チップマイクロコンピュータ。
  4. 前記EEPROM内のユーザデータ領域とECCデータ領域に全ユーザデータと全ECCデータの書き込み終了は、それぞれの最終アドレスを検知することによって判定する手段を備えることを特徴とする請求項2又は3記載の1チップマイクロコンピュータ。
JP2001108991A 2001-04-06 2001-04-06 1チップマイクロコンピュータ Expired - Fee Related JP3544951B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2002007226A JP2002007226A (ja) 2002-01-11
JP3544951B2 true JP3544951B2 (ja) 2004-07-21

Family

ID=18961030

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3544951B2 (ja)

Also Published As

Publication number Publication date
JP2002007226A (ja) 2002-01-11

Similar Documents

Publication Publication Date Title
JP3230485B2 (ja) 1チップマイクロコンピュータ
JPS5855528B2 (ja) アドレス発生装置
US7428610B2 (en) Writing to flash memory
JPS58151648A (ja) プログラムパツチ手段を有するデ−タ処理装置
JP3544951B2 (ja) 1チップマイクロコンピュータ
JPH0969064A (ja) 外部メモリーシステム
JPH04162300A (ja) 半導体メモリ
JPH03142800A (ja) 電気的消去・書き込み可能なプログラマブル・リード・オンリー・メモリ
CN111858429B (zh) 一种axi4转avalon总线的方法、装置、终端及存储介质
US11494262B2 (en) Electronic device having one-time-programmable (OTP) memory and method for writing and reading OTP memory
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ
JPH08115268A (ja) メモリ回路装置
JP2518333B2 (ja) 記憶装置
JPH0756640B2 (ja) 記憶装置
CN115390769A (zh) 数据存储方法、装置、电子设备及存储介质
JPH0675863A (ja) 誤り検出修正機能付メモリファイル
CN115374027A (zh) 利用c程序指针及函数参数实现单片机任意io口线操作的方法
JPH038029A (ja) マイクロプログラム制御装置
JPS6142304B2 (ja)
JPH04233052A (ja) 二重化メモリ装置
JPH0519820A (ja) プログラマブルコントローラ
JPS6288040A (ja) マイクロプログラム制御装置
JPH02144633A (ja) コントロールストレージのエラー訂正装置
JPS59170943A (ja) プログラム修正ロ−ド方式
JPS61288243A (ja) コンペアアンドスワツプ命令処理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040127

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: 20040316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040406

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080416

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090416

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100416

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110416

Year of fee payment: 7

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: 20110416

Year of fee payment: 7

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: 20120416

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120416

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees