(57)【特許請求の範囲】
【請求項１】
ＣＰＵ、フラッシュメモリ、ＲＡＭのそれぞれと互いにバスを介して接続された回路であって、
前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存する書き替えデータ制御回路と、
前記ＣＰＵへのウェイトの発生、解除を行うウェイト制御回路と、
前記フラッシュメモリ内の前記指定バイト以外の前記ページのデータを前記フラッシュメモリから前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するページデータ制御回路と、
前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリに書き込むデータセット制御回路と、
前記書き込み後のフラッシュメモリと前記ＲＡＭのページデータを比較するベリファイ回路と、
該ベリファイ回路によりベリファイエラーとなったデータとそのアドレスを前記ＲＡＭに保存するデータ保存制御回路と、
前記ベリファイエラー発生時に前記ＣＰＵへエラーフラグを通知するエラーフラグ発生回路とを備え、
前記ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、前記フラッシュメモリに対するページ単位の書き替えを、前記ＣＰＵの複数ステップの制御により行うのが効率的であるか、前記書き替えデータ制御回路、前記ページデータ制御回路及び前記データセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、前記複数の回路の制御により行うのが効率的であると判断した場合に、前記ＣＰＵが前記書き替えデータ制御回路に前記フラッシュメモリの書き替え命令を伝達する
ことを特徴とするフラッシュメモリ書き替え回路。
【請求項２】
ＣＰＵ、フラッシュメモリ、ＲＡＭのそれぞれと互いにバスを介して接続された回路であって、
前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存する書き替えデータ制御回路と、
前記ＣＰＵへのウェイトの発生、解除を行うウェイト制御回路と、
前記フラッシュメモリ内の前記指定バイト以外の前記ページのデータを前記フラッシュメモリから前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するページデータ制御回路と、
前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリに書き込むデータセット制御回路と、
前記フラッシュメモリ内のＥＣＣ回路による２ビットエラーとなったデータとそのアドレスを前記ＲＡＭに保存するデータ保存制御回路と、
２ビットエラー発生時に前記ＣＰＵへエラーフラグを通知するエラーフラグ発生回路とを備え、
前記ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、前記フラッシュメモリに対するページ単位の書き替えを、前記ＣＰＵの複数ステップの制御により行うのが効率的であるか、前記書き替えデータ制御回路、前記ページデータ制御回路及び前記データセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、前記複数の回路の制御により行うのが効率的であると判断した場合に、前記ＣＰＵが前記書き替えデータ制御回路に前記フラッシュメモリの書き替え命令を伝達する
ことを特徴とするフラッシュメモリ書き替え回路。
【請求項３】
フラッシュメモリと、
ＣＰＵと、
ＲＡＭと、
前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存する書き替えデータ制御回路と、
前記フラッシュメモリ内の前記指定バイト以外の前記ページのデータを前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するページデータ制御回路と、
前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリに書き込むデータセット制御回路を有し、バイト単位のフラッシュメモリの書き替えを行うフラッシュメモリ書き替え回路
とを少なくとも備え、
前記ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、前記フラッシュメモリに対するページ単位の書き替えを、前記ＣＰＵの複数ステップの制御により行うのが効率的であるか、前記書き替えデータ制御回路、前記ページデータ制御回路及び前記データセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、前記複数の回路の制御により行うのが効率的であると判断した場合に、前記ＣＰＵが前記書き替えデータ制御回路に前記フラッシュメモリの書き替え命令を伝達する
ことを特徴とするＩＣカード用ＬＳＩ。
【請求項４】
前記フラッシュメモリはＥＣＣ回路を有し、
前記フラッシュメモリ書き替え回路は、該ＥＣＣ回路から２ビットエラーの信号を受け取る
ことを特徴とする請求項３に記載のＩＣカード用ＬＳＩ。
【請求項５】
カード基板と、
ＣＰＵ、フラッシュメモリ、ＲＡＭ、前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存する書き替えデータ制御回路、前記フラッシュメモリ内の前記指定バイト以外の前記ページのデータを前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するページデータ制御回路、前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリに書き込むデータセット制御回路を有するフラッシュメモリ書き替え回路とを備え、前記カード基板に搭載されたＬＳＩと、
該カード基板に搭載された外部端子と、該外部端子と前記ＬＳＩチップ上のパッドとを接続する前記カード基板上に設けられた基板配線と、
前記ＬＳＩチップ、前記カード基板、前記基板配線及び前記外部端子の一部を被覆するカバーフィルムとを少なくとも備え、
前記ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、前記フラッシュメモリに対するページ単位の書き替えを、前記ＣＰＵの複数ステップの制御により行うのが効率的であるか、前記書き替えデータ制御回路、前記ページデータ制御回路及び前記データセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、前記複数の回路の制御により行うのが効率的であると判断した場合に、前記ＣＰＵが前記書き替えデータ制御回路に前記フラッシュメモリの書き替え命令を伝達する
ことを特徴とするＩＣカード。
【請求項６】
前記ＬＳＩチップ上のフラッシュメモリはＥＣＣ回路を有し、
前記ＬＳＩチップは、該ＥＣＣ回路から２ビットエラーの信号を受け取る手段を有することを特徴とする請求項５に記載のＩＣカード。
【請求項７】
ＣＰＵ、フラッシュメモリ、ＲＡＭのそれぞれがバスを介して互いに接続されたフラッシュメモリ書き替え回路において、
前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取るステップと、
前記書き替えを行うページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存するステップと、
前記ＣＰＵへウェイトを発生させるステップと、
前記フラッシュメモリから前記指定バイト以外の前記ページのデータを前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するステップと、
前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリのページアドレスにセットするステップと、
前記フラッシュメモリのデータの書き替えを行うステップと、
前記ＣＰＵへのウェイトを解除するステップと、
前記ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、前記フラッシュメモリに対するページ単位の書き替えを、前記ＣＰＵの複数ステップの制御により行うのが効率的であるか、前記書き替え命令を受け取るステップ、前記指定バイトのデータを前記ＲＡＭに保存するステップ、前記ＲＡＭに新たなページデータを準備するステップ、前記新たなページデータを前記フラッシュメモリのページアドレスにセットするステップ、及び前記フラッシュメモリのデータの書き替えを行うステップを含む一連のステップにより行うのが効率的であるか、を判断するステップとを少なくとも含み、
前記ＣＰＵが、前記フラッシュメモリに対するページ単位の書き替えを前記一連のステップにより行うのが効率的であると判断した場合に、前記書き替え命令を受け取るステップが実行される
ことを特徴とするフラッシュメモリ書き替え方法。
【請求項８】
前記書き替え後のフラッシュメモリと前記ＲＡＭのページデータを比較するステップを更に含むことを特徴とする請求項７に記載のフラッシュメモリ書き替え方法。
【請求項９】
前記書き替え後のフラッシュメモリと前記ＲＡＭのページデータが異なっていた場合、
該異なったデータ及びそのアドレスを前記ＲＡＭに保存するステップと、
前記ＣＰＵへエラーフラグを発生させるステップと、
前記ＣＰＵのウェイトを解除するステップ
とを更に含むことを特徴とする請求項８に記載のフラッシュメモリ書き替え方法。
【請求項１０】
フラッシュメモリ内のデータを読み込むときに、フラッシュメモリ内のＥＣＣ回路により２ビットエラーが発生した場合、
エラーとなったデータ及びそのアドレスを前記ＲＡＭに保存するステップと、
前記ＣＰＵへエラーフラグを発生させるステップと、
前記ＣＰＵのウェイトを解除するステップ
とを更に含むことを特徴とする請求項７〜９のいずれか１項に記載のフラッシュメモリ書き替え方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードの情報書き替え方法に関し、特にフラッシュメモリＩＣカードを対象として情報データを書き替える場合のフラッシュメモリ書き替え回路、ＩＣカード用ＬＳＩ、ＩＣカード及びフラッシュメモリ書き替え方法に関するものである。
【０００２】
【従来の技術】
図７に一般的なＩＣカード用ＬＳＩ４１の構成を示す。ＬＳＩ１４上のメモリとしてフラッシュメモリ１４を図示したが、フラッシュメモリ１４の代わりに図８に示すようにＥＥＰＲＯＭ等を使用しても良い。まず、図８のメモリとしてＥＥＰＲＯＭ１７を使用している場合の書き替え方法を説明する。ＣＰＵ１１が、ＥＥＰＲＯＭ１７内の書き替える指定バイトのデータ及びアドレスをバス１０を介して指定する。データを書き替える指定バイトはＣＰＵ１１に直接指定されるので、指定バイト毎の書き替えが可能である。しかし、面積が大きくなるため、ＩＣカードのように最大チップ面積が決まっているようなシステムには大容量化の要求に応えることができない。従って、１６キロバイト程度までのＩＣカードによく使用されている。一方、図７に示すフラッシュメモリ１４を使用したＩＣカード４１では、１２８キロバイト程度までの要求に応えることができる。しかし、通常、フラッシュメモリ１４はブロック単位での書き替えを行うため、指定バイト単位の書き替えを行う際は特別なフローで行わなければならない。
【０００３】
フラッシュメモリ１４の書き替え方法を、図７を参照しつつ、図９のフローチャート及び図１０のデータフロー図を用いて説明する。
【０００４】
（イ）図９のステップＳ３０１において、ＣＰＵ１１の命令により、フラッシュメモリ１４内のデータを書き替える指定バイトｂｋを含むページＰｍを、バス１０を介してフラッシュメモリ１４からＲＡＭ１２に保存する。ここでいう１ページとは、６４バイトを１単位（ブロック）としたものである。通常フラッシュメモリはこのようにブロック（ページ）単位で書き替えを行う。
【０００５】
（ロ）次に、ステップＳ３０２において、ＣＰＵ１１の命令により、ＲＡＭ１２に保存したページデータＰｍに、バス１０を介して書き替えを行う指定バイトのデータｂｋを上書きする。この上書きされた新たなページデータＰｍが新たにフラッシュメモリ１４にセットされるデータとなる。
【０００６】
（ハ）次に、ステップＳ３０３において、ＣＰＵ１１の命令により、ＲＡＭ１２に準備された新たなページデータＰｍを、バス１０を介してフラッシュメモリ１４のページアドレスにセットする。
【０００７】
（ニ）次に、ステップＳ３０４において、ＣＰＵ１１の命令により、フラッシュメモリ１４のページデータＰｍの書き替えが行われる。
【０００８】
【発明が解決しようとする課題】
ＥＥＰＲＯＭでは、直接書き替える指定バイトのデータ、アドレスを指定し、１ステップで書き替えが可能であったのに対し、フラッシュメモリのバイト書き替えは、上記のように複数のステップが必要となる。このため、プログラム開発者は数バイトの指定データ保存の場合においても書き替え箇所を含む１ページ分の全部のバイトのデータの取り扱い（１ページ書き替え）を意識してアプリケーションを作成しなければならなかった。
【０００９】
上記のように、ＥＥＰＲＯＭは、１ステップでバイト単位の書き替えが可能であるが、容量が小さく、フラッシュメモリは大容量に対応できるが、バイト単位の書き替えに数ステップ要するという問題があった。
【００１０】
上記の問題を鑑み、本発明は、１ステップでフラッシュメモリのバイト単位の書き替えを可能とするフラッシュメモリ書き替え回路、このフラッシュメモリ書き替え回路を有するＩＣカード用ＬＳＩ、ＩＣカード、フラッシュメモリ書き替え方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
ＣＰＵ、フラッシュメモリ、ＲＡＭのそれぞれと互いにバスを介して接続された回路であって、（イ）ＣＰＵからフラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータをＲＡＭに保存する書き替えデータ制御回路と、（ロ）ＣＰＵへのウェイトの発生、解除を行うウェイト制御回路と、（ハ）フラッシュメモリ内の指定バイト以外のページのデータをフラッシュメモリからＲＡＭに送り、ＲＡＭに新たなページデータを準備するページデータ制御回路と、（ニ）ＲＡＭに準備された新たなページデータをフラッシュメモリに書き込むデータセット制御回路とを少なくとも備え、ＣＰＵが、フラッシュメモリの書き替えるデータの量により、フラッシュメモリに対するページ単位の書き替えを、ＣＰＵの複数ステップの制御により行うのが効率的であるか、書き替えデータ制御回路、ページデータ制御回路及びデータセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、複数の回路の制御により行うのが効率的であると判断した場合に、ＣＰＵが書き替えデータ制御回路にフラッシュメモリの書き替え命令を伝達するフラッシュメモリ書き替え回路であることを要旨とする。
【００１２】
第１の特徴に係るフラッシュメモリ書き替え回路によると、ＣＰＵは書き替え命令をフラッシュメモリ書き替え回路に与えるだけで、バイト単位の書き替えを行うことができる。アプリケーションプログラム開発者は、１ステップでフラッシュメモリのバイト単位の書き替えを行うことが可能となり、開発手順を短縮することができる。
【００１３】
又、第１の特徴に係るフラッシュメモリ書き替え回路は、（ホ）書き込み後のフラッシュメモリとＲＡＭのページデータを比較するベリファイ回路と、（へ）ベリファイ回路によりベリファイエラーとなったデータとそのアドレスをＲＡＭに保存するデータ保存制御回路と、（ト）ベリファイエラー発生時にＣＰＵへエラーフラグを通知するエラーフラグ発生回路とを更に備えていてもよい。
【００１４】
ここで「ベリファイエラー」とは、ＲＡＭに準備した書き替える新たなページデータとページデータを書き替えた後のフラッシュメモリ内のデータが一致しないことをいう。
【００１５】
このフラッシュメモリ書き替え回路によると、ベリファイエラーが発生したときに、ベリファイエラーとなったデータとそのアドレスをＲＡＭに保存し、エラーが発生したことをＣＰＵに通知することができる。
【００１６】
又、第１の特徴に係るフラッシュメモリ書き替え回路における（チ）データ保存制御回路は、フラッシュメモリ内のＥＣＣ回路による２ビットエラーとなったデータとそのアドレスをＲＡＭに保存し、（リ）エラーフラグ発生回路は、２ビットエラー発生時にＣＰＵへエラーフラグを通知してもよい。
【００１７】
ここで「ＥＣＣ回路」とは、エラー検査・訂正機構（Error Check and Correct）回路のことである。ＥＣＣ回路は、メモリエラーの検出を行い、エラーが発生した場所を特定し、これを正しい値に訂正する。しかし、ＥＣＣ回路は、１ビットエラーの場合は自動的に訂正できるが、２ビットエラーの場合は訂正ができない。本発明では２ビットエラーの場合は、エラーフラグを発生させ、書き込みを中止する。
【００１８】
このフラッシュメモリ書き替え回路によると、ＥＣＣ回路を有するフラッシュメモリからの２ビットエラーを受け取り、書き込みを中止することができる。
【００１９】
本発明の第２の特徴は、（イ）ＣＰＵと、（ロ）フラッシュメモリと、（ハ）ＲＡＭと、（ニ）ＣＰＵからフラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータをＲＡＭに保存する書き替えデータ制御回路と、フラッシュメモリ内の指定バイト以外のページのデータをＲＡＭに送り、ＲＡＭに新たなページデータを準備するページデータ制御回路と、ＲＡＭに準備された新たなページデータをフラッシュメモリに書き込むデータセット制御回路を有し、バイト単位のフラッシュメモリの書き替えを行うフラッシュメモリ書き替え回路とを少なくとも備え、ＣＰＵが、フラッシュメモリの書き替えるデータの量により、フラッシュメモリに対するページ単位の書き替えを、ＣＰＵの複数ステップの制御により行うのが効率的であるか、書き替えデータ制御回路、ページデータ制御回路及びデータセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、複数の回路の制御により行うのが効率的であると判断した場合に、ＣＰＵが書き替えデータ制御回路にフラッシュメモリの書き替え命令を伝達するＩＣカード用ＬＳＩであることを要旨とする。
【００２０】
第２の特徴に係るＩＣカード用ＬＳＩによると、アプリケーションプログラム開発者は、１ステップでフラッシュメモリのバイト単位の書き替えを行うことが可能となり、開発手順を短縮することができる。
【００２１】
又、第２の特徴に係るＩＣカード用ＬＳＩのフラッシュメモリはＥＣＣ回路を有し、フラッシュメモリ書き替え回路は、ＥＣＣ回路から２ビットエラーの信号を受け取ってもよい。
【００２２】
このＩＣカード用ＬＳＩによると、ＥＣＣ回路を有するフラッシュメモリからの２ビットエラーを受け取り、書き込みを中止することができる。
【００２３】
本発明の第３の特徴は、（イ）カード基板と、（ロ）ＣＰＵ、フラッシュメモリ、ＲＡＭ、前記ＣＰＵから前記フラッシュメモリの書き替え命令を受け取り、書き替えるページにおいて書き替えるデータ量に対応する指定バイトのデータを前記ＲＡＭに保存する書き替えデータ制御回路、前記フラッシュメモリ内の前記指定バイト以外の前記ページのデータを前記ＲＡＭに送り、前記ＲＡＭに新たなページデータを準備するページデータ制御回路、前記ＲＡＭに準備された新たなページデータを前記フラッシュメモリに書き込むデータセット制御回路を有するフラッシュメモリ書き替え回路とを備え、前記カード基板に搭載されたＬＳＩと、（ハ）該カード基板に搭載された外部端子と、（ニ）該外部端子と前記ＬＳＩチップ上のパッドとを接続する前記カード基板上に設けられた基板配線と、（ホ）前記ＬＳＩチップ、前記カード基板、前記基板配線及び前記外部端子の一部を被覆するカバーフィルムとを少なくとも備え、ＣＰＵが、フラッシュメモリの書き替えるデータの量により、フラッシュメモリに対するページ単位の書き替えを、ＣＰＵの複数ステップの制御により行うのが効率的であるか、書き替えデータ制御回路、ページデータ制御回路及びデータセット制御回路を含む複数の回路の制御により行うのが効率的であるか、を判断し、複数の回路の制御により行うのが効率的であると判断した場合に、ＣＰＵが書き替えデータ制御回路にフラッシュメモリの書き替え命令を伝達するＩＣカードであることを要旨とする。
【００２４】
ここで「外部端子」とは、ＶＤＤ端子やＲＳＴ端子等の外部装置（リーダ、ライター等）とデータのやりとりを行う端子のことである。
【００２５】
第３の特徴に係るＩＣカードによると、ＣＰＵは書き替え命令をフラッシュメモリ書き替え回路に与えるだけで、バイト単位の書き替えを行うことができる。
アプリケーションプログラム開発者は、１ステップでフラッシュメモリのバイト単位の書き替えを行うことが可能となり、開発手順を短縮することができる。
【００２６】
又、第３の特徴に係るＩＣカードは、ＬＳＩチップ上のフラッシュメモリはＥＣＣ回路を有し、ＬＳＩチップはＥＣＣ回路から２ビットエラーの信号を受け取る手段を有してもよい。
このＩＣカードによると、ＥＣＣ回路を有するフラッシュメモリからの２ビットエラーを受け取り、書き込みを中止することができる。
【００２７】
本発明の第４の特徴は、ＣＰＵ、フラッシュメモリ、ＲＡＭのそれぞれがバスを介して互いに接続されたフラッシュメモリ書き替え回路において、（イ）ＣＰＵからフラッシュメモリの書き替え命令を受け取るステップと、（ロ）書き替えを行うページにおいて書き替えるデータ量に対応する指定バイトのデータをＲＡＭに保存するステップと、（ハ）ＣＰＵへウェイトを発生させるステップと、（ニ）フラッシュメモリから指定バイト以外のページのデータをＲＡＭに送り、ＲＡＭに新たなページデータを準備するステップと、（ホ）ＲＡＭに準備された新たなページデータをフラッシュメモリのページアドレスにセットするステップと、（へ）フラッシュメモリのデータの書き替えを行うステップと、（ト）ＣＰＵへのウェイトを解除するステップと、（ト）ＣＰＵが、前記フラッシュメモリの書き替えるデータの量により、フラッシュメモリに対するページ単位の書き替えを、ＣＰＵの複数ステップの制御により行うのが効率的であるか、書き替え命令を受け取るステップ、指定バイトのデータをＲＡＭに保存するステップ、ＲＡＭに新たなページデータを準備するステップ、新たなページデータをフラッシュメモリのページアドレスにセットするステップ、及びフラッシュメモリのデータの書き替えを行うステップを含む一連のステップにより行うのが効率的であるか、を判断するステップとを少なくとも含み、ＣＰＵが、フラッシュメモリに対するページ単位の書き替えを一連のステップにより行うのが効率的であると判断した場合に、書き替え命令を受け取るステップが実行されるフラッシュメモリ書き替え方法であることを要旨とする。
【００２８】
第４の特徴に係るフラッシュメモリ書き替え方法によると、ＣＰＵは書き替え命令をフラッシュメモリ書き替え回路に与えるだけで、バイト単位の書き替えを行うことができる。アプリケーションプログラム開発者は、１ステップでフラッシュメモリのバイト単位の書き替えを行うことが可能となり、開発手順を短縮することができる。
【００２９】
又、第４の特徴に係るフラッシュメモリ書き替え方法は、（チ）書き替え後のフラッシュメモリとＲＡＭのページデータを比較するステップを更に含んでもよい。
【００３０】
このフラッシュメモリ書き替え方法によると、書き替え後のフラッシュメモリと新たに準備されたＲＡＭ上のデータを比較し、データの整合性を確認することができる。
【００３１】
更に、第４の特徴に係るフラッシュメモリ書き替え方法は、書き替え後のフラッシュメモリとＲＡＭのページデータが異なっていた場合、（リ）異なったデータ及びそのアドレスをＲＡＭに保存するステップと、（ヌ）ＣＰＵへエラーフラグを発生させるステップと、（ル）ＣＰＵのウェイトを解除するステップとを更に含んでもよい。
【００３２】
このフラッシュメモリ書き替え方法によると、ベリファイエラーが発生したとき、ベリファイエラーとなったデータとそのアドレスをＲＡＭに保存し、エラーが発生したことをＣＰＵに通知することができる。
【００３３】
更に、第４の特徴に係るフラッシュメモリ書き替え方法は、フラッシュメモリ内のデータを読み込むときに、フラッシュメモリ内のＥＣＣ回路により２ビットエラーが発生した場合、（ヲ）エラーとなったデータ及びそのアドレスをＲＡＭに保存するステップと、（ワ）ＣＰＵへエラーフラグを発生させるステップと、（カ）ＣＰＵのウェイトを解除するステップとを更に含んでもよい。
【００３４】
このフラッシュメモリ書き替え方法によると、ＥＣＣ回路を有するフラッシュメモリからの２ビットエラーを受け取り、書き込みを中止することができる。
【００４３】
【発明の実施の形態】
次に、図面を参照して、本発明の第１及び第２の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分は同一又は類似の符号を付している。ただし、図面は模式的なものであり、各寸法の比率等は現実のものとは異なることに留意すべきである。従って、具体的な寸法等は以下の説明を参酌して判断すべきものである。また図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００４４】
（第１の実施の形態）
図１（ａ）は、第１の実施の形態に係るＩＣカードの構成を示す模式的な平面図で、図１（ｂ）に示す上部カバーフィルム９２及びスペーサ９１を除去した状態に対応する。ＩＣカード１００は、カード基板９０と、カード基板９０に搭載されたＩＣカード用ＬＳＩ４０、ＶＤＤ端子６１、ＲＳＴ端子６２、ＣＬＫ端子６３、Ｉ／Ｏ端子６４、ＧＮＤ端子６５とを有する。更に、カード基板９０上には基板配線７１〜７５が形成されている。ＩＣカード用ＬＳＩ４０は、半導体チップ上にＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、フラッシュメモリ１４、コプロセッサ１５、ＲＡＮＤＯＭ１６、フラッシュメモリ書き替え回路１を集積化し、更に半導体チップの周辺部には端子６１、６２、…、６５とデータのやりとりをするボンディングパッドであるＶＤＤ端子パッド２１、ＲＳＴ端子パッド２２、ＣＬＫ端子パッド２３、Ｉ／Ｏ端子パッド２４、ＧＮＤ端子パッド２５を配置している。図１（ｂ）に示すように、カード基板９０の一面側には、スペーサ９１が接着されている。スペーサ９１は、ＩＣカード用ＬＳＩ４０の入るくり抜き部を有し、ＩＣカード用ＬＳＩ４０は、このスペーサ９１のくり抜き部の内部においてカード基板９０に接着されている。そして、ＩＣカード１００は、ＩＣカード用ＬＳＩ４０を搭載したカード基板９０にスペーサ９１を挟んで、その両面側をそれぞれ上部カバーフィルム９２と下部カバーフィルム９３により覆われている。図１（ｂ）はＩＣカードの一例であり、他の構造でも構わないことは勿論である。
【００４５】
ＣＰＵ１１は、フラッシュメモリ書き替え回路１に書き込み命令を与える等の制御処理を行う。ＲＡＭ１２は、データ処理用のメモリである。ＲＯＭ１３は、管理規定のプログラムが焼き付けられている。フラッシュメモリ１４は、電気的にブロック単位で消去・再書き込み可能な読み出し専用の不揮発性メモリのことであり、ＥＥＰＲＯＭに比べ容量が大きい。コプロセッサ１５は、補助機能を分担するプロセッサである。浮動小数点演算を専門に処理する浮動小数点装置（ＦＰＵ）がその代表である。ＲＡＮＤＯＭ１６は、ＣＰＵ、ＲＡＭ、ＲＯＭ等以外の制御ロジックである。
【００４６】
ＶＤＤ端子パッド２１は、電源を供給するボンディングパッドであり、基板配線７１、ボンディングワイヤ８１を介してＶＤＤ端子６１と接続されている。ＲＳＴ端子パッド２２は、ＬＳＩ上の各回路ブロック１、１１、１２、…、１６を初期状態にするリセット信号を受け取るボンディングパッドであり、基板配線７２、ボンディングワイヤ８２を介してＲＳＴ端子６２と接続されている。ＣＬＫ端子パッド２３は、ＬＳＩ上の各回路ブロック１、１１、１２、…、１６を動作させるための同期用の周期信号を受け取るボンディングパッドであり、基板配線７３、ボンディングワイヤ８３を介してＣＬＫ端子６３と接続されている。Ｉ／Ｏ端子パッド２４は、データ入出力信号を受け取るボンディングパッドであり、基板配線７４、ボンディングワイヤ８４を介してＩ／Ｏ端子６４と接続されている。ＧＮＤ端子パッド２５は、信号用（保安用）接地用ボンディングパッドであり、基板配線７５、ボンディングワイヤ８５を介してＧＮＤ端子６５と接続されている。
【００４７】
フラッシュメモリ書き替え回路１は、図２に示すように、書き替えデータ制御回路３１、ウェイト制御回路３２、ページデータ制御回路３３、データセット制御回路３４、ベリファイ回路３５、データセット終了判別回路３６、エラーフラグ発生回路３７、データ保存制御回路３８から構成されている。
【００４８】
書き替えデータ制御回路３１は、バス１０を介して、ＣＰＵ１１からフラッシュメモリ１４の書き替え命令を受け取り、書き替える指定バイトのデータをＲＡＭ１２に保存する。又、ウェイト制御回路３２へＣＰＵ１１にウェイトを発生させるように指示し、ページデータ制御回路３３へバイトデータをＲＡＭ１２に保存したことを通知する。ウェイト制御回路３２は、ＣＰＵ１１へのウェイトの発生、解除を行う。ページデータ制御回路３３は、バス１０を介して、フラッシュメモリ１４内の書き替えるページの指定バイト以外のバイトのデータをＲＡＭ１２に送り、保存する。データセット制御回路３４は、ＲＡＭ１２に準備した新たなページデータを、バス１０を介してフラッシュメモリ１４に書き込む。データセット終了判別回路３６は、フラッシュメモリ１４を監視し、１ページ分の新たなデータがセットされ、書き替えが終了したときにベリファイ回路３５へ通知を行う。ベリファイ回路３５は、バス１０を介して、フラッシュメモリ１４とＲＡＭ１２の値を比較する。値が異なっていた場合、データ保存制御回路３８へ通知し、値が同じである場合は、ウェイト制御回路３２へ通知する。データ保存制御回路３８は、エラーが発生したことをエラーフラグ発生回路３７へ通知し、エラーとなったデータとそのアドレスをバス１０を介してＲＡＭ１２に保存する。エラーフラグ発生回路３７は、ＣＰＵ１１へエラーフラグを通知し、ウェイト制御回路３２へＣＰＵ１１のウェイトを解除するよう通知する。
【００４９】
図３、図４を用いて、フラッシュメモリ書き替え方法について説明する。
【００５０】
（イ）まず、フラッシュメモリの書き替えるデータの量により、ページ単位の書き替えが効率的であるかバイト単位の書き替えが効率的であるか、ＣＰＵ１１が判断する。ここでいうページ単位とは、一定数のバイトを一つの固まりとして扱うブロック単位をいい、例えば、６４バイトを１ページとして扱う。ページ単位の書き替えを選択した場合は、従来通りの方法で、ＣＰＵ１１が制御を行い、フラッシュメモリの書き替えを行う。バイト単位の書き替えを選択した場合、ステップＳ１０１において、ＣＰＵ１１からフラッシュメモリ書き替え回路１の書き替えデータ制御回路３１へ書き替え命令が伝達される。
【００５１】
（ロ）次に、ステップＳ１０２において、ＣＰＵ１１から書き替え命令を受け取った書き替えデータ制御回路３１は、書き替えを行うページＰｍの書き替える指定バイトｂｋのデータを、バス１０を介してＲＡＭ１２に保存する。図４では、斜線で示されているバイトｂｋが書き替えを行う指定バイトであり、フラッシュメモリ書き替え回路１により、バス１０を介してＲＡＭ１２にセットされる。
【００５２】
（ハ）次に、書き替えデータ制御回路３１は、ウェイト制御回路３１にＣＰＵ１１へのウェイトを発生させるよう通知を行う。ステップＳ１０３において、ウェイト制御回路３１は、ＣＰＵ１１へウェイトを発生させる。これにより、ＣＰＵ１１は、ウェイト解除命令が与えられるまで、動作を停止する。図４では、フラッシュメモリ書き替え回路１からＣＰＵ１１へウェイトを発生させるステップ（Ｓ１０３）が図示されている。
【００５３】
（ニ）次に、ステップＳ１０４において、ページデータ制御回路３３が、フラッシュメモリ１４内のデータを書き替えるバイトのあるページＰｍを、バス１０を介してＲＡＭ１２に送り、保存する。このとき保存するページＰｍのデータにデータを書き替える指定バイトｂｋのデータは含まれない。即ち、図４で、ページデータの点描されている部分のバイト…、ｂｋ−２、ｂｋ−１、ｂｋ＋１、ｂｋ＋２、…のデータのみをＲＡＭ１２にセットする。この結果、バイトｂｋはステップＳ１０２で保存されたデータに置き換えられた新たなページデータＰｍがＲＡＭ１２に準備される。
【００５４】
（ホ）次に、ステップＳ１０５において、データセット制御回路３４は、ＲＡＭ１２に準備された新たなページデータＰｍをフラッシュメモリのページアドレスにセットする。そして、ステップＳ１０６において、フラッシュメモリ１４が新たなページデータＰｍにデータ書き替えが行われる。
【００５５】
（へ）データセット終了判別回路３６は、フラッシュメモリ１４を監視し、新たなデータがセットされたときにベリファイ回路３５へ通知を行う。ステップＳ１０６において、フラッシュメモリ１４が新たなページデータＰｍへのデータの書き替えが行われたので、データセット終了判別回路３６は、ベリファイ回路２５へ通知を行う。ステップＳ１０７において、ベリファイ回路２５は、フラッシュメモリ１４とＲＡＭ１２のデータを比較する。
【００５６】
（ト）ステップＳ１０８において、フラッシュメモリ１４とＲＡＭ１２の値が異なる場合、ベリファイエラーが発生する。この場合は、ステップＳ１１０に進み、ベリファイ回路３５は、データ保存制御回路３８へ通知を行う。ステップＳ１１０において、データ保存制御回路３８は、エラーとなったデータ及びそのアドレスを、バス１０を介してＲＡＭ１２に保存する。そして、エラーフラグ発生回路３７へ通知を行う。ステップＳ１１１において、エラーフラグ発生回路３７はＣＰＵ１１へエラーフラグを発生させる。又、ウェイト制御回路３２へウェイトを解除するよう通知する。そして、ステップＳ１１２において、ウェイト制御回路３２はＣＰＵ１１のウェイトを解除する。
【００５７】
（チ）又、ステップＳ１０８において、フラッシュメモリ１４とＲＡＭ１２の値が同じである場合、ベリファイエラーは発生せず、ベリファイ回路３５はウェイト制御回路３２へ通知する。そして、ステップＳ１０９において、ウェイト制御回路３２はＣＰＵ１１のウェイトを解除する。
【００５８】
第１の実施の形態に係るフラッシュメモリ書き替え回路を用いて、フラッシュメモリの書き替えを行うと、ＣＰＵは書き替え命令をフラッシュメモリ書き替え回路に与えるだけで、書き替えを行うことができる。このように、従来のＥＥＰＲＯＭの書き替えと同様に、ＣＰＵが書き替え命令を与えるという１ステップでフラッシュメモリの書き替えを実施できることとなる。アプリケーションプログラム開発者は、１ステップでフラッシュメモリのバイト単位の書き替えを行うことが可能となり、開発手順を短縮することができる。又、第１の実施の形態に係るフラッシュメモリ書き替え回路によると、ベリファイエラーが発生したときに、ベリファイエラーとなったデータとそのアドレスをＲＡＭに保存し、エラーが発生したことをＣＰＵに通知することができる。
【００５９】
（第２の実施の形態）
第２の実施の形態に係るＩＣカードは、第１の実施の形態に係るＩＣカードのフラッシュメモリ内にＥＣＣ回路が内蔵されたものである。
【００６０】
第２の実施の形態に係るフラッシュメモリ書き替え回路のブロック図を図５に示す。図５に示すフラッシュメモリ書き替え回路１は、書き替えデータ制御回路３１、ウェイト制御回路３２、ページデータ制御回路３３、データセット制御回路３４、ベリファイ回路３５、データセット終了判別回路３６、エラーフラグ発生回路３７、データ保存制御回路３８からなる。これらは、第１の実施の形態で説明したものと同様であるので、ここでは説明を省略する。
【００６１】
第２の実施の形態に係るＩＣカードにおけるフラッシュメモリ１４は、ＥＣＣ回路５０を内蔵している。ＥＣＣ回路５０は、メモリエラーの検出を行う。１ビットエラーの場合は、エラーが発生した場所を特定し、これを正しい値に訂正することが可能であるが、２ビットエラーの場合は訂正することができないので、２ビットエラーを示す信号を発生する。第２の実施の形態におけるフラッシュメモリ書き替え回路１は、エラーフラグ発生回路３７が、この２ビットエラー信号を受け取る。
【００６２】
第２の実施の形態に係るフラッシュメモリ書き替え方法について図６を用いて説明する。
【００６３】
（イ）ステップＳ２０１〜Ｓ２０３までは第１の実施の形態における図３のステップＳ１０１〜Ｓ１０３と同様であるので、説明を省略する。
【００６４】
（ロ）ステップＳ２０４において、ページデータ制御回路３３がフラッシュメモリ１４内のデータを読み込むときに、フラッシュメモリ１４内のＥＣＣ回路５０がデータエラーの有無を確認する。１ビットエラーの場合は、ＥＣＣ回路５０が自動的に正しい値に訂正する。しかし、２ビットエラーが発生している場合は、ＥＣＣ回路５０により訂正ができないので、ステップＳ２１１に進む。ステップＳ２１１では、ＥＣＣ回路５０からデータ保存制御回路３８が２ビットエラー信号を受け取り、エラーとなったデータ及びそのアドレスをＲＡＭ１２に保存する。又、エラーとなったことをエラーフラグ発生回路３７に通知する。ステップＳ２１２において、エラーフラグ発生回路３７はＣＰＵ１１へエラーフラグを発生させる。又、ウェイト制御回路３２へウェイトを解除するように通知する。そして、ステップＳ２１３において、ウェイト制御回路３２はＣＰＵ１１のウェイトを解除する。
【００６５】
（ハ）又、ステップＳ２０４において、２ビットエラーが発生しなかった場合は、ステップＳ２０５に進み、ページデータ制御回路３３が、フラッシュメモリ１４内のデータを書き替えるバイトを含むページをＲＡＭ１２に送り、保存する。
【００６６】
（ニ）次のステップＳ２０６〜Ｓ２１０までは、第１の実施の形態における図３のステップＳ１０５〜１０９と同様であるので、説明を省略する。
【００６７】
第２の実施の形態に係るＩＣカードでは、ＥＣＣ回路を内蔵したフラッシュメモリを使用した際の２ビットエラーが発生した際、そのエラーデータ及びアドレスを保存し、ＣＰＵ１１へエラーを通知する。このため、２ビットエラーが発生した場合は書き込みを中止することができる。
【００６８】
（その他の実施の形態）
本発明は上記の第１及び第２の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。
この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００６９】
例えば、本発明の第１及び第２の実施の形態に係るフラッシュメモリ書き替え回路は、複数の回路を含んでいるが、二つ以上の回路の機能を一つにまとめた回路を用いても構わないし、逆に、一つの回路の機能を二つ以上の回路に分割した回路を用いても構わない。
【００７０】
又、本発明の第１及び第２の実施の形態に係るフラッシュメモリ書き替え方法において、１ページは６４バイトとして説明したが、フラッシュメモリの性質により１ページに含まれるバイト数は６４バイトに限らず、様々な値をとる。
【００７１】
又、本発明の第１及び第２の実施の形態に係るフラッシュメモリ書き替え方法は、図３又は図６に示した順番で行うよう説明をしたが、ＣＰＵへウェイトを発生させるタイミングやエラー発生時にエラーデータを保存するタイミング等は、書き替えの流れに支障を期たさなければこの順番でなくても構わない。
【００７２】
又、本発明の第１及び第２の実施の形態に係るフラッシュメモリ書き替え方法では、書き替えるバイトが１バイトであるときについて説明したが、一度に書き替えるバイトは、同ページ内であれば、例えば３バイトでも１０バイトでも構わない。この際、書き替えるバイト数は、書き替えデータ制御回路により認識している。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【００７３】
【発明の効果】
本発明によると、１ステップでフラッシュメモリのバイト単位の書き替えを可能とするフラッシュメモリ書き替え回路、このフラッシュメモリ書き替え回路を有するＩＣカード用ＬＳＩ、ＩＣカード、フラッシュメモリ書き替え方法を提供することが出来る。
【図面の簡単な説明】
【図１】（ａ）は、本発明の第１の実施の形態に係るＩＣカードの構成を示すブロック図である。（ｂ）は、（ａ）で説明したＩＣカードの断面図の一例である。
【図２】本発明の第１の実施の形態に係るフラッシュメモリ書き替え回路のブロック図である。
【図３】本発明の第１の実施の形態に係るフラッシュメモリ書き替え方法を示すフローチャートである。
【図４】本発明の第１の実施の形態に係るフラッシュメモリ書き替え方法を示すデータフロー図である。
【図５】本発明の第２の実施の形態に係るフラッシュメモリ書き替え回路のブロック図である。
【図６】本発明の第２の実施の形態に係るフラッシュメモリ書き替え方法を示すフローチャートである。
【図７】従来のＩＣカードの構成を示すブロック図である。
【図８】従来のＥＥＰＲＯＭ書き替え方法を示すデータフロー図である。
【図９】従来のフラッシュメモリ書き替え方法を示すフローチャートである。
【図１０】従来のフラッシュメモリ書き替え方法を示すデータフロー図である。
【符号の説明】
１  フラッシュメモリ書き替え回路
１０  バス
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  フラッシュメモリ
１５  コプロセッサ
１６  ＲＡＮＤＯＭ
１７  ＥＥＰＲＯＭ
２１  ＶＤＤ端子パッド
２２  ＲＳＴ端子パッド
２３  ＣＬＫ端子パッド
２４  Ｉ／Ｏ端子パッド
２５  ＧＮＤ端子パッド
３１  書き替えデータ制御装置
３２  ウェイト制御回路
３３  ページデータ制御回路
３４  データセット制御回路
３５  ベリファイ回路
３６  データセット終了判別回路
３７  エラーフラグ発生回路
３８  データ保存制御回路
４０  ＩＣカード用ＬＳＩ
４１  従来型ＩＣカード用ＬＳＩ
５０  ＥＣＣ回路
６１  ＶＤＤ端子
６２  ＲＳＴ端子
６３  ＣＬＫ端子
６４  Ｉ／Ｏ端子
６５  ＧＮＤ端子
７１、７２、…、７５  基板配線
８１、８２、…、８５  ボンディングワイヤ
９０  カード基板
９１  スペーサ
９２  上部カバーフィルム
９３  下部カバーフィルム
１００  ＩＣカード
【図１】
0004564215.tif 000002
【図２】
0004564215.tif 000003
【図３】
0004564215.tif 000004
【図４】
0004564215.tif 000005
【図５】
0004564215.tif 000006
【図６】
0004564215.tif 000007
【図７】
0004564215.tif 000008
【図８】
0004564215.tif 000009
【図９】
0004564215.tif 000010
【図１０】
0004564215.tif 000011