(57)【要約】【課題】データ書き込み中の電源断でもデータの一貫性を維持できるメモリ管理を行うにあたり、処理を単純化することの可能な、集積回路チップ、データ読み出し方法、およびデータ書き込み方法を提供する。【解決手段】データの書き換えが可能でありデータを二重化して記憶するメモリを備えた集積回路チップであって、前記メモリは、ページ単位でのデータ消去が不要で、バイト単位でのデータ書き換えが可能な不揮発性メモリであることを特徴とする。消去が不要で、バイト単位での直接書き換えが可能なＮＶＭ、例えばＦｅＲＡＭなどを利用するので、ＲＡＭへのコピーが不要となり、データ更新時は二重化されたデータの無効面を更新し、最後に有効面と無効面を切り替えるといった単純な処理に置き換えることが可能である。また、データ構造からセグメントテーブルを削除することが可能である。【選択図】図７
2007334728.tif 000002
【特許請求の範囲】
【請求項１】
データの書き換えが可能でありデータを二重化して記憶するメモリを備えた集積回路チップであって、
前記メモリは、ページ単位でのデータ消去が不要で、バイト単位でのデータ書き換えが可能な不揮発性メモリであることを特徴とする、集積回路チップ。
【請求項２】
前記不揮発性メモリは、ＦｅＲＡＭであることを特徴とする、請求項１に記載の集積回路チップ。
【請求項３】
前記不揮発性メモリのデータ構造は、
論理ブロックと物理ブロックとの対応情報と、ブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、
前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、
を含むことを特徴とする、請求項１に記載の集積回路チップ。
【請求項４】
ページ単位でのデータ消去が不要でバイト単位での書き換えが可能な不揮発性メモリと、揮発性メモリとを備えた集積回路チップからデータを読み出すデータ読み出し方法であって、
前記不揮発性メモリは、
論理ブロックと物理ブロックとの対応情報と、ブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、
前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、
を含むものであり、
前記集積回路チップを起動する起動工程と、
読み出し指定されたデータの位置を、前記不揮発性メモリ上のルートテーブルの有効面から取得し、その取得したデータを前記揮発性メモリ上のバッファへコピーする工程と、
前記揮発性メモリからデータを読み出す工程と、
を含むことを特徴とする、データ読み出し方法。
【請求項５】
前記起動工程は、
前記テーブルスイッチにより前記ルートテーブルの有効面をチェックする工程と、
前記ルートテーブルの有効面から無効面へ、前記論理ブロックに対応する前記物理ブロックの情報をコピーする工程と、
を含むことを特徴とする、請求項４に記載のデータ読み出し方法。
【請求項６】
前記不揮発性メモリは、ＦｅＲＡＭであることを特徴とする、請求項４に記載のデータ読み出し方法。
【請求項７】
ページ単位でのデータ消去が不要でバイト単位での書き換えが可能な不揮発性メモリを備えた集積回路チップに対してデータを書き込むデータ書き込み方法であって、
前記不揮発性メモリは、
論理ブロックと物理ブロックとの対応情報と、ブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、
前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、
を含むものであり、
前記集積回路チップを起動する起動工程と、
書き込み指定されたデータの位置を、前記不揮発性メモリ上のルートテーブルの無効面から取得し、新しいデータを格納した位置を示すように前記ルートテーブルの無効面を更新する工程と、
前記テーブルスイッチを反転し、前記ルートテーブルの有効面と無効面とを切り替える工程と、
を含むことを特徴とする、データ書き込み方法。
【請求項８】
前記起動工程は、
前記テーブルスイッチにより前記ルートテーブルの有効面をチェックする工程と、
前記ルートテーブルの有効面から無効面へ、前記論理ブロックに対応する前記物理ブロックの情報をコピーする工程と、
を含むことを特徴とする、請求項７に記載のデータ書き込み方法。
【請求項９】
前記不揮発性メモリは、ＦｅＲＡＭであることを特徴とする、請求項７に記載のデータ書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は集積回路チップ、データ読み出し方法、およびデータ書き込み方法にかかり、特に、データ更新中の電源断発生時に対応するためデータを二重化して保持する集積回路チップ、データ読み出し方法、およびデータ書き込み方法に関する。
【背景技術】
【０００２】
近年、ＩＣカードを用いた様々なサービス事業が展開されている。ＩＣカードではデータの保持にＮＶＭ（不揮発性メモリ）が利用されており、データ書き込み中の電源断発生時に対応するためデータを二重化して保持している。特開平１１−２５００３号公報「情報処理方法および情報処理装置」には、データ書き込み中の電源断でもデータの一貫性を維持できるメモリ管理方法が開示されている。
【０００３】
【特許文献１】特開平１１−２５００３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記背景技術で想定されているＥＥＰＲＯＭなどのページ単位の消去・書き換えを行うタイプのＮＶＭの場合、データを更新する際は、いったん更新対象のデータをＲＡＭへ転送し、それを更新してからＮＶＭへ書き戻すという処理が必要である。このように、従来の方法では、データ書き込み中の電源断に対応するためのメモリ管理に複雑な処理を必要としていた。
【０００５】
本発明は、上記背景技術が有する問題点に鑑みてなされたものであり、本発明の目的は、データ書き込み中の電源断でもデータの一貫性を維持できるメモリ管理を行うにあたり、処理を単純化することの可能な、新規かつ改良された集積回路チップ、データ読み出し方法、およびデータ書き込み方法を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の第１の観点によれば、集積回路チップが提供される。本発明の集積回路チップは、データの書き換え（読み出しおよび書き込み）が可能でありデータを二重化して記憶するメモリを備えた集積回路チップであって、前記メモリは、ページ単位でのデータ消去が不要で、バイト単位でのデータ書き換えが可能な不揮発性メモリであることを特徴とする。
【０００７】
上記背景技術において、ＩＣカード内のデータを更新する場合、ＥＥＰＲＯＭなどのＮＶＭではページ単位の消去・書き換えが必要となるため、まとまった単位でＮＶＭの上のデータをいったんＲＡＭ（揮発性メモリ）へコピーしてからＲＡＭ上でデータを更新した後で、ＮＶＭのページを消去し、書き戻すといった処理が必要となる。これに対して本発明によれば、消去が不要で、バイト単位での直接書き換えが可能なＮＶＭを利用するので、ＲＡＭへのコピーが不要となり、データ更新時は二重化されたデータの無効面を更新し、最後に有効面と無効面を切り替えるといった単純な処理に置き換えることが可能である。
【０００８】
本発明の集積回路チップにおいて、前記メモリとしては、例えばＦｅＲＡＭを利用することができる。ＦｅＲＡＭは強誘電体を利用した不揮発メモリの一種である。強誘電体とは、電圧を加えることによって物質内の自発分極（物質内に電気的な正負が生じる状態）の方向を自由に変化させ、電圧をかけなくてもその分極方向を持続させることのできる誘電体（分極により電荷を蓄え、直流電流を通さない物質）のことであり、これを記憶素子とする不揮発メモリがＦｅＲＡＭである。ＦｅＲＡＭは構造などがＤＲＡＭに似ていて、フラッシュメモリの１０倍以上に及ぶ高速な読み書きが可能である。また、信頼性の面においてもフラッシュメモリ、ＥＥＰＲＯＭに比べて格段に高い。
【０００９】
また、前記不揮発性メモリは、例えば、論理ブロックと物理ブロックとの対応情報とブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、を含むデータ構造を採用することが可能である。書き換えを実行する単位が１バイトであるため、ページ（セグメント）ごとに書き込む必要がない。その結果、データ構造からセグメントテーブルを削除することが可能となる。
【００１０】
また、本発明の集積回路チップは、ＩＣカードやデータ処理装置（携帯電話機やＰＤＡ等）に搭載されるものであってもよい。現在広く流通しており今後も普及が見込まれるＩＣカードや携帯電話等を用いて、様々なサービス事業を展開することが可能である。
【００１１】
本発明の第２の観点によれば、ページ単位でのデータ消去が不要でバイト単位での書き換えが可能な不揮発性メモリと、揮発性メモリとを備えた集積回路チップからデータを読み出すデータ読み出し方法が提供される。本発明のデータ読み出し方法は、前記集積回路チップを起動する起動工程と、読み出し指定されたデータの位置を、前記不揮発性メモリ上のルートテーブルの有効面から取得し、その取得したデータを前記揮発性メモリ上のバッファへコピーする工程と、前記揮発性メモリからデータを読み出す工程と、を含むことを特徴とする。なお、前記不揮発性メモリは、論理ブロックと物理ブロックとの対応情報と、ブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、
を含むものである。
【００１２】
前記起動工程は、例えば、前記テーブルスイッチにより前記ルートテーブルの有効面をチェックする工程と、前記ルートテーブルの有効面から無効面へ、前記論理ブロックに対応する前記物理ブロックの情報をコピーする工程と、を含むことが可能である。
【００１３】
また、前記不揮発性メモリは、例えばＦｅＲＡＭである。
【００１４】
本発明の第３の観点によれば、ページ単位でのデータ消去が不要でバイト単位での書き換えが可能な不揮発性メモリを備えた集積回路チップに対してデータを書き込むデータ書き込み方法が提供される。本発明のデータ書き込み方法は、前記集積回路チップを起動する起動工程と、書き込み指定されたデータの位置を、前記不揮発性メモリ上のルートテーブルの無効面から取得し、新しいデータを格納した位置を示すように前記ルートテーブルの無効面を更新する工程と、前記テーブルスイッチを反転し、前記ルートテーブルの有効面と無効面とを切り替える工程と、を含むことを特徴とする。なお、前記不揮発性メモリは、論理ブロックと物理ブロックとの対応情報と、ブロークントランザクション用のカウンタとをそれぞれ二重化して保持するルートテーブルと、前記ルートテーブルの有効面／無効面を示すためのテーブルスイッチと、を含むものである。
【００１５】
前記起動工程は、例えば、前記テーブルスイッチにより前記ルートテーブルの有効面をチェックする工程と、前記ルートテーブルの有効面から無効面へ、前記論理ブロックに対応する前記物理ブロックの情報をコピーする工程と、を含むことが可能である。
【００１６】
また、前記不揮発性メモリは、例えばＦｅＲＡＭである。
【発明の効果】
【００１７】
以上のように、本発明によれば、データ書き込み中に電源断が起こってもデータの一貫性を維持できるメモリ管理を行うにあたり、処理を単純化することが可能である。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照しながら、本発明にかかる集積回路チップ、データ読み出し方法、およびデータ書き込み方法の好適な実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
以下では、まずＩＣカードを用いたシステムの構成とＩＣカードの構造について説明し、さらに、ＩＣカードのブロークントランザクション処理の流れについて説明する。さらに、ＩＣカードのＮＶＭ（不揮発性メモリ）の種類について、まず、ＥＥＰＲＯＭにおけるテーブルのデータ構造、起動処理、データ読み出し処理、およびデータ書き込み処理について説明する。さらに、本実施形態に特徴的な構成として、ＩＣカードのＮＶＭ（不揮発性メモリ）がＦｅＲＡＭの場合におけるテーブルのデータ構造、起動処理、データ読み出し処理、およびデータ書き込み処理について説明する。
【００２０】
（１）システム構成（図１）
図１は、ＩＣカードを用いたシステムの構成を示す説明図である。
図１に示したシステムの一例では、集積回路チップ（ＩＣチップ）を備えたＩＣカード１００と、ＩＣカード１００との間で直接通信を行いＩＣカード１００に記録されたデータの読み出しおよび書き込みを行うリーダライタ２００と、を含んで構成される。
【００２１】
ＩＣカード１００は、データを保持するための集積回路チップ１１０を搭載している。集積回路チップ１１０は、図１に示したように、電源を切っても記憶内容を保持することができるＮＶＭ（nonvolatile memory：不揮発性メモリ）１１２と、電源を切ると記憶内容が失われるＲＡＭ（揮発性メモリの一例）１１４とを含む。ＮＶＭ１１２は、このＩＣカード１００で利用可能な様々なサービスのデータを保持する。ＲＡＭ１１４は、例えばデータの読み出し／書き込み時に一時的にデータを保持するために用いられる。
【００２２】
ＩＣカード１００は、カード型のデータ通信装置であってもよく、また、ＩＣカード機能を有する集積回路チップを携帯電話機等の情報通信端末機器（データ処理装置）に内蔵したものであってもよい。ＩＣカードが機器に内蔵される場合であっても、機器に着脱可能に構成される場合であっても、本明細書では便宜上「ＩＣカード」と称する場合がある。また、ＩＣカード機能を有する集積回路チップは、例えば携帯電話機やＰＤＡなどの携帯端末、あるいはパーソナルコンピュータ（ＰＣ）などの情報処理端末に搭載されて外部機器とデータ通信を行う。この場合、リーダライタ２００と有線あるいは無線で接続するためのインタフェース以外に、外部機器接続用のインタフェースを備えている。
【００２３】
リーダライタ２００は、ＩＣカード１００と直接通信を行い、ＩＣカード１００に記録されたデータの読み出しおよび書き込みを行う機能を有する。ＩＣカード１００とリーダライタ２００との間のデータ通信は、例えば電磁誘導の原理に基づく無線通信により実現される。リーダライタ２００はコンピュータ等の情報処理装置と一体に構成されたり、また、ケーブル等を介して通信したりする。かかる情報処理装置はサービス事業者が管理しており、ＩＣカードを用いた様々なサービス事業が展開されている。
【００２４】
（２）ブロークントランザクション処理の流れ（図２）
以下の説明では、図１に示した集積回路チップ１１０内のＮＶＭ１１２とＲＡＭ１１４におけるブロークントランザクション処理を中心に説明する。ブロークントランザクションとは、ＩＣカードにおけるデータ書き込み中の電源断のことである。図２に、ファイルシステムを単純なデータ構造とした場合の一般的な処理の流れを示す。
【００２５】
まず、ブロークントランザクション対応のためＮＶＭ上のデータを二重化する。図２において、参照符号Ａ、Ｂは、ＮＶＭ上の１ページのデータを示す。それぞれのデータにはカウンタＣ１、Ｃ２が含まれており、データＡ、Ｂのどちらが有効面であるかを示している。起動時では、カウンタＣ１が“１”であり、カウンタＣ２が“−”であり、データＡが有効面、データＢが無効面であるものとする。
【００２６】
起動時にＮＶＭ上の有効面ＡのデータがＲＡＭへコピーされる（ステップＳ１０２）。更新時にＲＡＭ上のデータが更新され、カウンタが加算される（ステップＳ１０４）。コミット時にＲＡＭ上のデータをＮＶＭの無効面Ｂへコピーする。コピーする際、ＮＶＭがＥＥＰＲＯＭである場合には、書き換え前に消去が必要であるため消去してからコピーを行う（ステップＳ１０６）。その後、有効面Ａを消去する（ステップＳ１０８）。この状態で、カウンタＣ１が“−”であり、カウンタＣ２が“２”であり、データＡが無効面、データＢが有効面となる。
【００２７】
（３）データ構造（図３）
図３は、実際のファイルシステムにおけるＥＥＰＲＯＭ上の管理テーブルのデータ構造を示す説明図である。
【００２８】
ＥＥＰＲＯＭの管理テーブルは、図３に示したように、ルートテーブルとセグメントテーブルで構成される。セグメントテーブルに論理ブロック（Ｌｉ）と物理ブロック（Ｐｉ）の対応表を持たせ、１つのセグメントテーブルをＥＥＰＲＯＭの１ページに割り当て、それぞれを二重化する。二重化したセグメントテーブルの有効／無効を示す情報をルートテーブルで保持し、ルートテーブルもまた二重化する。ルートテーブルには、セグメントテーブルの有効面（Ｓｉ）に関する情報と、上記の「（１）ブロークントランザクション処理の流れ」と同様に、ブロークントランザクション処理用のカウンタＣを保持する。
【００２９】
論理ブロックと物理ブロックの対応表がＥＥＰＲＯＭの書き換え単位である１ページに収まれば、ブロークントランザクション対応の要件を満たすことができるが、１ページ６４バイトだとするとユーザブロックを６４ブロックしか管理できないことになるため、複数のセグメントテーブルに分割し、セグメントテーブルをルートテーブルで管理する仕組みをとっている。
【００３０】
また、ルートテーブルとセグメントテーブルにはそれぞれＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）が付与されており、ＥＥＰＲＯＭからの読み出し時やＥＥＰＲＯＭへの書き込み時にＣＲＣがチェックされる。
【００３１】
（４）起動処理（図４）
図４は、起動処理を示す説明図である。
起動処理では、まず、ＥＥＰＲＯＭ上の管理テーブルの有効面をＲＡＭへコピーする。ルートテーブルのＣＲＣチェックでエラーが発生した場合、ブロークントランザクション対応処理では、両方のルートテーブルのＣＲＣとカウンタを確認してルートテーブル有効面を決定する。
【００３２】
図４に示したように、まず、ＥＥＰＲＯＭ上の両方のルートテーブルの内容を見て、消去されていない面を有効面であると判断する（ステップＳ２０２）。そして、ルートテーブル有効面をＥＥＰＲＯＭからＲＡＭへコピーする（ステップＳ２０４）。そして、ＲＡＭ上のルートテーブルにあるセグメントビットマップ（Ｓ０、Ｓ１、・・・、Ｓｎ）からセグメントテーブルの有効面を取得する（ステップＳ２０６）。そして、セグメントテーブル有効面をＥＥＰＲＯＭからＲＡＭへコピーする（ステップＳ２０８）。ステップＳ２０２、Ｓ２０４をセグメントテーブルの個数分繰り返す。
【００３３】
（５）データ読み出し処理（図５）
図５は、データ読み出し処理を示す説明図である。
データ読み出し処理では、指定されたデータの位置をＲＡＭ上の管理テーブルから取得し、そのデータを物理ブロック（ＥＥＰＲＯＭ）からバッファ（ＲＡＭ）へコピーする。
【００３４】
図５に示したように、まず、ＲＡＭ上のセグメントテーブルの情報を元に、指定された論理ブロック番号から物理ブロック番号へ変換する（ステップＳ３０２）。そして、物理ブロック番号に対応するＥＥＰＲＯＭ上の物理ブロックからデータをＲＡＭ上のバッファへコピーする（ステップＳ３０４）。
【００３５】
（６）データ書き込み処理（図６）
図６は、データ書き込み処理を示す説明図である。
データ書き込み処理では、指定されたデータの位置をＲＡＭ上の管理テーブルから取得し、新しいデータを格納した位置を示すようにＲＡＭ上の管理テーブルを更新し、その情報をＥＥＰＲＯＭへコピーする。ＥＥＰＲＯＭではコピーの前に消去を実行する。
【００３６】
まず、ＥＥＰＲＯＭ上の書き込み用バッファ（図中Ｐｎ−１）を確保し、そのバッファに指定されたデータを書き込む（ステップＳ４０２）。そして、ＲＡＭ上のセグメントテーブルにおいて、書き込み用バッファの位置を示す要素（Ｌ７）と書き込まれるデータの位置を示す要素（Ｌ１）をスワップする（ステップＳ４０４）。そして、スワップを行ったセグメントテーブルに対応する、ＲＡＭ上のルートテーブルのセグメントビットマップを反転する（ステップＳ４０６）。これにより、有効面と無効面を切り替える。
【００３７】
さらに、ＲＡＭ上のルートテーブルのカウンタをインクリメントする（ステップＳ４０８）。そして、セグメントテーブルをＲＡＭからＥＥＰＲＯＭの無効面へコピーする（ステップＳ４１０）。そして、ルートテーブルをＲＡＭからＥＥＰＲＯＭの無効面へコピーする（ステップＳ４１２）。最後に、ルートテーブル有効面を消去する。
【００３８】
ここでは、２つのセグメントテーブル要素を更新する処理を説明したが、複数のデータを書き込む場合は、書き込み用バッファへの書き込みとセグメントテーブルを更新する処理（ステップＳ４０２〜Ｓ４０６）を繰り返し実行する。最終的なＥＥＰＲＯＭへの書き込みをルートテーブルの書き換えと消去で行うことにより、複数のデータを一度に更新できる仕組みになっている。また、書き込み処理の最後のステップでＥＥＰＲＯＭへの書き込みを行うため、ＥＥＰＲＯＭを逐次更新する方式と比較して書き込み回数が抑えられている。
【００３９】
＜ＦｅＲＡＭを利用した場合のファイルシステム＞
以下では、本実施形態に特徴的なＦｅＲＡＭを利用した場合のファイルシステムについて説明する。ＦｅＲＡＭは強誘電体を利用した不揮発メモリの一種である。強誘電体とは、電圧を加えることによって物質内の自発分極（物質内に電気的な正負が生じる状態）の方向を自由に変化させ、電圧をかけなくてもその分極方向を持続させることのできる誘電体（分極により電荷を蓄え、直流電流を通さない物質）のことであり、これを記憶素子とする不揮発メモリがＦｅＲＡＭである。ＦｅＲＡＭは構造などがＤＲＡＭに似ていて、フラッシュメモリの１０倍以上に及ぶ高速な読み書きが可能である。また、信頼性の面においてもフラッシュメモリ、ＥＥＰＲＯＭに比べて格段に高い。
【００４０】
ストレージメモリとしてＦｅＲＡＭを利用した場合、ＥＥＰＲＯＭと同様にそのメモリデバイスの制約を考慮したファイルシステムを設計する必要がある。すなわち、ＥＥＰＲＯＭの場合、データの書き換えにはページ単位の消去と書き込みが必要であるが、ＦｅＲＡＭの場合、バイト単位で消去不要の書き換えが可能である。また、ＦｅＲＡＭはＥＥＰＲＯＭに比べ、データの書き換え回数が多く、書き換え処理時間が少ないことも特長である。このようなバイト単位で書き換え可能な不揮発性メモリを利用したファイルシステムを設計する場合、次のことが考えられる。
【００４１】
（ａ）１バイト単位での書き込みが可能で、書き込み時間が少ないことから、今まで書き込み処理の最後にまとめて行っていたＮＶＭ上のデータ更新を、書き込み処理の中で分散して行うことが可能となり、書き込み処理の時間を短縮できる可能性がある。
（ｂ）１バイト単位での書き込みが可能であることから、ページ（セグメント）単位でデータを管理する必要がない。データ構造が簡略化され、処理時間を短縮できる可能性がある。
（ｃ）１バイト単位での書き込みが可能で、書き換え回数が１０８回以上であることから、ＲＡＭへ転送せずにＦｅＲＡＭ上のデータを直接更新できる可能性がある。その結果、ＲＡＭの使用量を節約できる可能性がある。
【００４２】
（７）データ構造（図７）
図７に、ＦｅＲＡＭを用いた直接更新型ファイルシステムのデータ構造を示す。
【００４３】
ＦｅＲＡＭの管理テーブルは、図７に示したように、ルートテーブルのみで構成される。ルートテーブルの中に論理ブロック（Ｌｉ）と物理ブロック（Ｐｉ）の対応表と、ブロークントランザクション用のカウンタＣを保持し、二重化する。また、ルートテーブルの有効／無効を示すためのテーブルスイッチ（Ｒ）が存在する。
【００４４】
ＦｅＲＡＭの場合は、書き換えを実行する単位が１バイトであるため、ページ（セグメント）ごとに書き込む必要がない。その結果、データ構造からセグメントテーブルを削除することが可能となる。セグメントテーブルを使用しないことで、セグメントテーブル内で更新されない部分を再度同じデータで書き込むことがなくなり、メモリの書き換え回数が少なくなる。また、複数のセグメントテーブルを管理する必要がなくなり、関連する処理を削減できる。
【００４５】
（８）起動処理（図８）
図８は、起動処理を示す説明図である。
起動処理では、ＦｅＲＡＭ上の管理テーブルの有効面を、ＦｅＲＡＭ上の無効面へコピーする。データ読み出し処理では有効面にだけアクセスするため、この処理はデータ書き込み処理直前に行うことも可能である。
【００４６】
図８に示したように、まず、ＦｅＲＡＭ上のテーブルスイッチからルートテーブル有効面をチェックする（ステップＳ５０２）。そして、ルートテーブルを有効面（ＦｅＲＡＭ）から無効面（ＦｅＲＡＭ）へコピーする（ステップＳ５０４）。
【００４７】
（９）データ読み出し処理（図９）
データ読み出し処理では、指定されたデータの位置を、ＦｅＲＡＭ上のルートテーブル有効面から取得し、そのデータを物理ブロック（ＦｅＲＡＭ）からバッファ（ＲＡＭ）へコピーする。
【００４８】
図９に示したように、まず、ルートテーブル有効面の情報を元に、指定された論理ブロック番号から物理ブロック番号へ変換する（ステップＳ６０２）。そして、物理ブロック番号に対応するＦｅＲＡＭ上の物理ブロックから、データをＲＡＭ上のバッファへコピーする（ステップＳ６０４）。
【００４９】
（１０）データ書き込み処理（図１０）
データ書き込み処理では、指定されたデータの位置を、ＦｅＲＡＭ上のルートテーブル無効面から取得し、新しいデータを格納した位置を示すようにＦｅＲＡＭ上のルートテーブル無効面を更新する。最後に、ＦｅＲＡＭ上のテーブルスイッチを更新する。
【００５０】
図１０に示したように、まず、ＦｅＲＡＭ上の書き込み用バッファ（図中Ｐｎ−１）を確保し、そのバッファに指定されたデータを書き込む（ステップＳ７０２）。そして、ＦｅＲＡＭ上のルートテーブル無効面において、書き込み用バッファの位置を示す要素（Ｌ７）と書き込まれるデータの位置を示す要素（Ｌ４）をスワップする（ステップＳ７０４）。そして、ＦｅＲＡＭ上のルートテーブル無効面のカウンタをインクリメントする（ステップＳ７０６）。最後に、テーブルスイッチを反転する（ステップＳ７０８）。これにより、有効面と無効面を切り替える。
【００５１】
最終的なＦｅＲＡＭへの書き込みをテーブルスイッチで行うことにより、複数のデータを一度に更新できる仕組みになっている。複数のデータを更新する場合、書き込み用バッファとルートテーブル無効面における処理（ステップＳ７０２〜Ｓ７０６）を繰り返し実行する。
【００５２】
（本実施形態の効果）
以上説明したように、本実施形態によれば、バイト単位での直接書き換えが可能なため、ページ単位での管理が不要となり、データ構造がシンプルになる。また、ＦｅＲＡＭ上のデータを直接書き換えができるため、更新の際にＲＡＭではなく、二重化されたＦｅＲＡＭの無効面へコピーするため、ＲＡＭの使用量を削減できる。さらに、データ構造がシンプルになり、データ更新の際のＲＡＭからＦｅＲＡＭへのコピーが不要となるため、データ書き込み処理時間を短縮できる。
【００５３】
以上、添付図面を参照しながら本発明にかかる集積回路チップ、データ読み出し方法、およびデータ書き込み方法の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００５４】
例えば、上記実施形態では、ページ単位でのデータ消去が不要でバイト単位での書き換えが可能な不揮発性メモリの一例として、ＦｅＲＡＭを利用した場合について説明したが、本発明はこれに限定されない。ページ単位でのデータ消去が不要でバイト単位で書き換え可能なあらゆる不揮発性メモリ（将来開発されるものを含む。）を用いることが可能である。
【００５５】
（産業上の利用可能性）
本発明は集積回路チップ、データ読み出し方法、およびデータ書き込み方法にかかり、特に、データ更新中の電源断発生時に対応するためデータを二重化して保持する集積回路チップ、データ読み出し方法、およびデータ書き込み方法に関する。
【図面の簡単な説明】
【００５６】
【図１】ＩＣカードを用いたシステムを示す説明図である。
【図２】ブロークントランザクション処理の流れを示す説明図である。
【図３】データ構造を示す説明図である。
【図４】起動処理を示す説明図である。
【図５】データ読み出し処理を示す説明図である。
【図６】データ書き込み処理を示す説明図である。
【図７】直接更新型ファイルシステムのデータ構造を示す説明図である。
【図８】起動処理を示す説明図である。
【図９】データ読み出し処理を示す説明図である。
【図１０】データ書き込み処理を示す説明図である。
【符号の説明】
【００５７】
１００  ＩＣカード
１１０  集積回路チップ（ＩＣチップ）
１１２  ＮＶＭ
１１４  ＲＡＭ
２００  リーダライタ
【図１】
2007334728.tif 000003
【図２】
2007334728.tif 000004
【図３】
2007334728.tif 000005
【図４】
2007334728.tif 000006
【図５】
2007334728.tif 000007
【図６】
2007334728.tif 000008
【図７】
2007334728.tif 000009
【図８】
2007334728.tif 000010
【図９】
2007334728.tif 000011
【図１０】
2007334728.tif 000012