説明

情報処理装置及び情報処理方法、並びにコンピュータ・プログラム

【課題】 可能な限り書き込みを同一ページで行なわせるようにすることで、書き込み時間の長期化や書き込み動作中の電源遮断の問題を解決する。
【解決手段】 複数の論理アドレスに書き込みが発生したとき、空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう。その結果、書き込みページ数を削減することで書き込み時間の削減を行なうようにする。なお、同一ページに入りきらないバイト数の書き込みが必要である場合には、次の空いているページに書き込みを行なうが、このときも同様なアルゴリズムを動作させ、可能な限りそのページに書き込みを行なわせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、消去後に書き込み動作を行なうメモリに対するデータ書き込み動作を行なう情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、複数バイトからなるページ単位で消去書き込み動作を一括して行なうメモリに対するデータ書き込み動作を行なう情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、ICカード若しくはカード互換機能を搭載した機器のように、受信信号の電力によって動作して受信信号に基づいたメモリ・アクセス動作を行なう情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに係り、特に、ページ単位での消去書き込み動作を効率的に行ない、より高速なトランザクション・スピードを実現する情報処理装置及び情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【0003】
ICカードを使用するRFIDシステムに代表される非接触・近接通信システムは、操作上の手軽さから、広範に普及している。例えば、暗証コードやその他の個人認証情報、電子チケットなどの価値情報などをICカードに格納しておくことにより、キャッシュ・ディスペンサやコンサート会場の出入口、駅の改札口などにおいて、入場者や乗車者の認証処理を行なうことができる。例えば、定期券等価の非接触式ICカード及びプリペイド方式に対応した非接触式ICカードを利用する乗客に対して、乗車経路に応じた適切な運賃を徴収することができる(例えば、特許文献1を参照のこと)。
【0004】
この種の無線通信には、一般に、電磁誘導の原理に基づいて実現される。すなわち、メモリ機能を有するICカードと、ICカードのメモリに対して読み書きアクセスをするカード・リーダ/ライタで構成され、1次コイルとしてのICカード側のループ・コイルと2次コイルとしてのカード・リーダ/ライタ側のアンテナが系として1個のトランスを形成している。そして、カード・リーダ/ライタ側からICカードに対して、電力と情報を同じく電磁誘導作用により伝送し、ICカード側では供給された電力によって駆動してカード・リーダ/ライタ側からの質問信号に対して応答することができる。したがって、ICカード自体は、バッテリなどの駆動電源を持つ必要がない。
【0005】
ICカードの一般的な使用方法は、利用者がICカードをカード・リーダ/ライタをかざすことによって行なわれる。カード・リーダ/ライタ側では常にICカードをポーリングしており外部のICカードを発見することにより、両者間の通信動作が開始する。
【0006】
最近では、微細化技術の向上とも相俟って、比較的大容量のメモリを持つICカードが出現している。大容量メモリ付きのICカードによれば、メモリ空間上にファイル・システムを展開し、複数のアプリケーションを同時に格納しておくことにより、1枚のICカードを複数の用途に利用することができる。例えば、1枚のICカード上に、電子決済を行なうための電子マネーや、特定のコンサート会場に入場するための電子チケットなど、複数のアプリケーションを格納しておくことにより、1枚のICカードをさまざまな用途に適用させることができる(例えば、非特許文献1を参照のこと)。また、ICカード内に複数のエリアを設けて、電子マネー情報とともにポイント情報、サービス内容の情報を記憶させて、プレミアムサービスを客に対して実施することができる(例えば、特許文献2を参照のこと)。ここで言う電子マネーや電子チケットは、利用者が提供する資金に応じて発行される電子データを通じて決済(電子決済)される仕組み、又はこのような電子データ自体を指す。
【0007】
ICカード自体は、基本的にはバッテリなど駆動電源を持たない(前述)。このため、内蔵メモリにはEEPROM(Electrically Erasable&Programmable ROM)など、「フラッシュ・メモリ」と呼ばれる無電源状態でもデータを保持し続けることができる不揮発性メモリが使用される。この種の不揮発性メモリは、データ領域を一旦消去した後に書き込みが可能な状態となる。フラッシュ・メモリは、一般に、SRAMやDRAMなどの他の書き換え可能な半導体メモリに比べて、消去及び書き込みに時間がかかる(数ミリ秒程度)。また、そのメモリ空間は、通常、複数バイトからなるページ単位に分割して構成されている。同じページ内であれば、複数バイトの書き込みも1回の書き込み動作で完結することができる。
【0008】
鉄道の自動改札などでは、非接触ICカード・システムが導入されており、ICカードやカード互換機能を搭載したPDAなどを自動改札に翳しして、アクセス・コントロールすることが行なわれている。この場合、ゲートでの人待ちの問題を回避するためには、100ミリ秒程度でICカード内のメモリへ読み書き動作を完了するという、非常に高速なトランザクション・スピードが必要とされるが、不揮発性メモリの書き込み速度がネックになることが多い。
【0009】
例えば、リーダ/ライタからのデータの受信処理とEEPROMの消去処理を少なくとも部分的に並行して実行することにより、関連する書き込みコマンドを処理するのに必要な時間を短縮することができる(例えば、特許文献3を参照のこと)。しかしながら、非接触ICカード・システムは、リーダ/ライタより供される限定されたエネルギにて動作しているため、EEPROM84に対し無造作に同時書き込みを行なうことは通信性能の犠牲に繋がる。
【0010】
ページ構造のメモリに対しては、複数バイトの書き込みが発生しても、同一ページ内であれば非常に高速に書き込み動作を行なうことができるが(上述)、異なるページにまたがって書き込みが発生した場合には、関連するページ数分だけ書き込み動作が必要となるので、それに対応した書き込み時間が必要となってしまう。
【0011】
また、ICカードがカード・リーダ/ライタから離れ、あるいはその他の原因により電磁波の受信状態が不良になった場合には、十分な駆動電力が得られなくなる。したがって、複数のページに渡って長時間の書き込みを行なうと、書き込み途中に電源が遮断されて、書き込みデータが破壊される可能性が高くなる。
【0012】
同じデータ量であっても、書き込みに使用するページ数が多いほど(すなわち、より多くのページに分散してデータが配置されると)、その分だけ書き込み時間が長くなるとともに、書き込みの最中に電源が遮断する危険が増す。
【0013】
また、ICカード内のメモリ空間は、データを読み出すリーダ/ライタ(若しくはホスト)側が使用する論理アドレスと、メモリ内の物理アドレスをマッピングにより対応付けてアドレス指定するようになっている。ここで、特定の論理アドレスへのデータ書き込みが集中的に発生しても特定の物理ブロックへのデータ書き込みが集中しないように、データの書き込み、消去が行なわれる物理ブロックを分散化するマッピング方法について提案がなされている(例えば、特許文献4、特許文献5を参照のこと)。また、すべての物理ブロック内にその物理ブロックの管理に必要な物理ブロック管理情報を保持しておくことにより、何らかの原因でマッピング・テーブルが破壊されても、各物理ブロックの管理情報を読み出してマッピング・テーブルを高速に回復することができる(例えば、特許文献6を参照のこと)。
【0014】
しかしながら、これらで提案されているメモリ・マッピング方法は書き込みデータが複数のページにまたがって配置されることによる書き込み時間の長期化や書き込み動作中の電源遮断の問題を解決するものではない。
【0015】
【特許文献1】特開平7−37132号公報
【特許文献2】特開平9−204484号公報
【特許文献3】特表2003−533807号公報
【特許文献4】特開平5−241741号公報
【特許文献5】特開平5−27924号公報
【特許文献6】特開平8−77074号公報
【非特許文献1】「無線ICタグのすべて ゴマ粒チップでビジネスが変わる」(106〜107頁、RFIDテクノロジ編集部、日経BP社、2004年4月20日発行)
【発明の開示】
【発明が解決しようとする課題】
【0016】
本発明の目的は、複数バイトからなるページ単位で消去書き込み動作を一括して行なうメモリに対するデータ書き込み動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0017】
本発明のさらなる目的は、ICカード若しくはカード互換機能を搭載した機器のように、受信信号の電力によって動作して受信信号に基づいたメモリ・アクセス動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0018】
本発明のさらなる目的は、ページ単位での書き込み動作を効率的に行ない、より高速なトランザクション・スピードを実現することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【0019】
本発明のさらなる目的は、ページ単位での消去書き込み動作を行なうメモリに対し、書き込みデータが複数のページにまたがって配置されることによる書き込み時間の長期化や書き込み動作中の電源遮断の確率を低下させることができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0020】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、ページ単位での消去書き込み可能なメモリへのアクセス動作を行なう情報処理装置であって、前記メモリにおけるメモリ空間の論理アドレスと物理アドレスの対応関係を管理する管理テーブルと、論理アドレスが指定されたメモリへのアクセス要求を受信処理する受信処理部と、指定された論理アドレスに対応する物理アドレスを前記管理テーブル上で探索し、前記メモリ上の該当する物理アドレスにアクセスするメモリ・アクセス制御部とを備えている。
【0021】
ここで言う情報処理装置は、受信信号から得られる電力により駆動するとともに受信信号に基づいてメモリへのアクセス動作を行なう。すなわち、情報処理装置無線通信部及び、データ送受信機能とデータ処理部を有するICチップを内蔵する非接触ICカード、表面に端子を有する接触ICカード、接触/非接触ICカードと同様の機能を有するICチップを携帯電話機、PHS(Personal Handyphone System)、PDA(Personal Digital Assistance)などの情報通信端末装置に内蔵した装置であり、RFIDシステムを利用して、比較的近距離に限定される機器間で価値情報などの非接触なデータ伝送を実現するものである。以下では、これらを総称して、単に「ICカード」と呼ぶこともある。
【0022】
例えば、鉄道の自動改札などでは、非接触ICカード・システムが導入されている。このような適用例では、ゲートでの人待ちの問題を回避するためには、100ミリ秒程度でICカード内のメモリへ読み書き動作を完了するという、非常に高速なトランザクション・スピードが必要とされるが、不揮発性メモリの書き込み速度がネックになることが多い。ところが、ICカードへのアクセス速度は通信距離とトレードオフの関係にある。比較的離れた距離でICカードとリーダ/ライタ間で通信を行なうことができれば、ユーザにとって操作性はよいが、十分な受信電力が得られないため、メモリへのアクセス速度は低下する。
【0023】
ここで、メモリ空間は、通常、複数バイトからなるページ単位に分割して構成されている。同じページ内であれば、複数バイトの書き込みも1回の書き込み動作で完結することができる、また、ページ単位でのデータ書き込みに関しては動作が保証されている。しかしながら、異なるページにまたがって書き込みが発生した場合には、関連するページ数分だけ書き込み動作が必要となるので、それに対応した書き込み時間が必要となってしまう。したがって、書き込みを行なっている最中に電源が瞬断することによりデータが破壊される確率を低下することができる。
【0024】
そこで、本発明では、論理アドレスという概念を導入し、可能な限り書き込みを同一ページに行なわせるようにした。これにより高速書き込み機能を提供するとともに、電源瞬断時に書き込む前のデータを保証する機能を提供することができる。
【0025】
具体的には、メモリ・アクセス制御部は、複数の論理アドレスに書き込みが発生したとき、空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう。その結果、書き込みページ数を削減することで書き込み時間の削減を行なうようにする。なお、同一ページに入りきらないバイト数の書き込みが必要である場合には、次の空いているページに書き込みを行なうが、このときも同様なアルゴリズムを動作させ、書き込みページ数を削減可能である。
【0026】
また、書き込みバイト数がページ・サイズに満たない場合には、余りのバイト数以下のバイト数が使われているページを見つけ出し、それらのデータを合わせて同一ページに書き込みを行なうことにより、書き込むページが有効に使われるようにする。このようなデータ書き込みアルゴリズムを適用することで、空きページの確保ができる可能性を増大させ、高速書き込みアルゴリズムを有効に活用させることが可能となる。
【0027】
但し、このようなデータ書き込みアルゴリズムを実行する場合、リンク・テーブル上で物理アドレスから論理アドレスを検索する必要性がある。この検索時間を削減するために、論理アドレスがどの物理アドレスにリンクしているかを示すリンク・テーブルとともに、物理アドレスがどの論理アドレスからリンクさせられているか示す逆引きテーブルを用意するようにしてもよい。
【0028】
また、本発明の第2の側面は、ページ単位での消去書き込み可能なメモリへのアクセス動作を行なうための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記メモリにおけるメモリ空間の論理アドレスと物理アドレスの対応関係を管理テーブルを用いて管理するアドレス管理ステップと、
論理アドレスが指定されたメモリへのアクセス要求を受信処理する受信処理ステップと、
指定された論理アドレスに対応する物理アドレスを前記管理テーブル上で探索し、前記メモリ上の該当する物理アドレスにアクセスするメモリ・アクセス制御ステップとを備え、
メモリ・アクセス制御ステップでは、複数の論理アドレスに書き込みが発生したとき、前記管理テーブル上で空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なうことを特徴とするコンピュータ・プログラムである。
【0029】
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る情報処理装置と同様の作用効果を得ることができる。
【発明の効果】
【0030】
本発明によれば、複数バイトからなるページ単位で消去書き込み動作を一括して行なうメモリに対するデータ書き込み動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0031】
また、本発明によれば、ICカード若しくはカード互換機能を搭載した機器のように、受信信号の電力によって動作して受信信号に基づいたメモリ・アクセス動作を好適に行なうことができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0032】
また、本発明によれば、ページ単位での書き込み動作を効率的に行ない、より高速なトランザクション・スピードを実現することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0033】
また、本発明によれば、ページ単位での消去書き込み動作を行なうメモリに対し、論理アドレスの仕組みを導入することにより、可能な限り書き込みを同一ページで行なわせるようにすることで、書き込み時間の長期化や書き込み動作中の電源遮断の問題を解決することができる、優れた情報処理装置及び情報処理方法、並びにコンピュータ・プログラムを提供することができる。
【0034】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【0035】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0036】
本発明は、RFIDシステムを利用して比較的近距離に限定される機器間で価値情報などの非接触なデータ伝送を実現することを目的とするものである。RFIDシステム自体は、局所でのみ適用可能な無線通信手段の一例として当業界において広く知られている。タグとリーダライタの間の通信方法には、電磁結合方式、電磁誘導方式、電波通信方式などが挙げられる。
【0037】
A.システム構成:
図1には、本発明を適用可能な非接触ICカード通信システムの構成を模式的に示している。
【0038】
この非接触カード・システムは、カード・リーダ/ライタ1と、ICカード2と、コントローラ3で構成され、カード・リーダ/ライタ1とICカード2との間では、電磁波を利用して非接触で、データの送受信が行なわれる。すなわち、カード・リーダ/ライタ1がICカード2に所定のコマンドを送信し、ICカード2は受信したコマンドに対応する処理を行なう。そして、ICカード2は、その処理結果に対応する応答データをカード・リーダ/ライタ1に送信する。
【0039】
カード・リーダ/ライタ1は、所定のインターフェース(例えば、RS−485Aの規格などに準拠したもの)を介してコントローラ3に接続されている。コントローラ3は、カード・リーダ/ライタ1に対し制御信号を供給することで、所定の処理を行なわせる。
【0040】
図2には、図1に示したカード・リーダ/ライタ1の構成例を示している。
【0041】
ICチップ・モジュール21は、データの処理を行なうDPU(Data Processing Unit)31と、ICカード2への送信信号及びICカード2からの受信信号の処理を行なうSPU(Signal Processing Unit)32と、コントローラ3との通信を行なうSCC(Serial Communication Controller)33と、データの処理に必要な情報をあらかじめ記憶しているROM部41並びに処理中の作業データを一時的に記憶するRAM部42を含んだメモリ部34で構成され、これらの機能モジュールがバスを介して相互接続されている。また、このバスには、所定のデータを記憶するフラッシュ・メモリ22も接続されている。
【0042】
DPU31は、ICカード2への送信コマンドをSPU32に出力するとともに、ICカード2から受信した応答データをSPU32から受け取り、所定のデータ処理を行なう。
【0043】
SPU32は、ICカード2への送信コマンドに対し、例えばBPSK(BiPhase Shift Keying)などの変調処理を行なった後、変調回路23に出力するとともに、ICカード2からの応答データを復調回路25から受け取り、そのデータに対し、BPSKなどの所定の復調処理を行なう。
【0044】
変調回路23は、発振器26より供給された所定の周波数(例えば13.56MHz)の搬送波を、SPU32より供給されたデータでASK(Amplitude Shift Keying)変調し、生成された変調波をアンテナ27から電磁波としてICカード2に出力する。このとき、変調回路23は、変調度を1未満にして、ASK変調を行なう。すなわち、データがロー・レベルのときにおいても、十分な変調波の振幅を確保することができる。
【0045】
復調回路25は、アンテナ27を介して受信した変調波(ASK変調波)を復調し、復調されたデータをSPU32に出力するようになされている。
【0046】
図3には、図1に示したICカード2の構成例を示している。このICカードは、ICチップ・モジュール51と、ループ上のアンテナ53とで構成される。
【0047】
ICチップ・モジュール51は、カード・リーダ/ライタ1から送信された変調波を、アンテナ53を介して受信する。なお、コンデンサ52は、アンテナ53とともにLC回路を構成し、所定の周波数(キャリア周波数)の電磁波に同調(共振)するようになされている。
【0048】
図示のように、ICチップ・モジュール51内は、アナログ部回路60と、論部回路80で構成される。アナログ部回路60では、RF送受信信号の処理、で減供給、電圧検出、RF受信信号のクロック検出などが行なわれる。また、論理部回路80では、RF信号によるデータ伝送のプロトコル制御、RF信号の変復調処理、コマンド処理、暗号処理、EEPROMなどの内蔵不揮発性メモリの管理などが行なわれる。
【0049】
図4には、アナログ部回路60の内部構成を示している。
【0050】
整流器(Rectifier(若しくはASK検波部))61は、CP端子とグランド間にあるコンデンサと相俟って、リーダ/ライタ側で送信データによって振幅変調された変調波から直流電圧を取得するとともに、その振幅成分を検波する。また、整流器61により取り出された直流電圧を伝送する搬送路上には、定格以上の電流の発生から回路の破壊を防ぐために、過電流保護回路(Protector)63が挿設されている。
【0051】
電源電圧制御部(VoltageRegulator)64は、電磁誘導によりアンテナ・コイルの端子に生じた誘導電圧が整流器にて直流化された後、参照電圧生成部(Voltage Reference)65で設定される参照電圧を用いて、安定化された一定の電源電圧を生成する。
【0052】
クロック検出部(Clock Detector)66は、リーダ/ライタから送信される振幅変調波から、キャリア成分のみを抽出し、カード内部で使用されるクロックを抽出する。
【0053】
復調部(Demodulator)67は、ASK検波兼用整流器(Rectifier)で検波された振幅成分を2値化して、論理部回路80へ送出する。
【0054】
変調部(Modulator)68は、ICカード51のアンテナ・コイル53に対し、負荷変動を与える。論理部回路80で生成される送信データでこの変調部を駆動することにより、外部のリーダ/ライタへデータを返信することができる。
【0055】
図5には、論理部回路80の内部構成を示している。
【0056】
論理部回路80は、CPU(Central Processing Unit)81による統括的な制御下で動作する。ROM(Read Only Memory)82には、CPU81において実行するプログラム・コードが格納されている。CPU81は、RAM(Random Access Memory)83を作業エリアに用いて、プログラム・コードによって規定される処理を実行する。CPU81は、論理部回路80内の各部とは内部バス経由で相互接続され、各種の指令を発行する。またCPU81は、クロックギア89経由で供給されるクロック周波数に基づいて動作する。
【0057】
クロックギア89は、外部から供給されるクロック周波数clkを逓倍(あるいは分周並びに分周信号の周波数合成)により、CPU81駆動用の所要のクロック周波数を得る。
【0058】
EEPROM84は、電子マネーなどの価値情報や、ICカードを利用したサービスを実現するためのデータを格納する不揮発性メモリであり、データ領域を一旦消去した後に書き込みが可能な状態となるが、SRAMやDRAMなどの他の書き換え可能な半導体メモリに比べて、消去及び書き込みに時間がかかる(数ミリ秒程度)。そのメモリ空間は、通常、複数バイトからなるページ単位に分割して構成されている。但し、複数バンク構成は一例であり、メモリ空間は1バンク構成であってもよい。同じページ内であれば、複数バイトの書き込みも1回の書き込み動作で完結することができる。このメモリ空間への書き込み動作の詳細については、後述に譲る。
【0059】
また、EEPROM84は、書き込み動作に必要なチャージポンプや書き込み用のバッファ・メモリなどの周辺回路が備わっているが、複数のバンクに分割されている。それぞれのバンクは、CPU81に独立にインターフェースされており、CPU81からはすべてのバンクを同時に書き込むことができるようになっている(但し、複数バンク構成の場合)。
【0060】
SPU86は、アナログ部回路60とメモリ間でデータの受け渡しを行なう。データ受信時は、サンプリング・クロックの抽出を行ない、そのサンプリング・クロックに基づきデータを8ビットのシフトレジスタに取り込み、RAM83内部の受信バッファへDMA転送する。また、データ送信時には、RAM83内部の送受信バッファから8ビットずつシフトレジスタに転送し、サンプリング・レートに従ってシリアル・データとして送出する。
【0061】
暗号処理部(Enc/Decrypt)85は、リーダ/ライタとの間で送受信されるデータ系列の暗号処理を行なう。データ系列の暗号処理ではCBCモードが良く使われるが、その際、暗号文の信憑性を確認するチェック・データを作るために、CBCモードで使われた鍵を変換した鍵により暗号演算を行なう。暗号処理の高速化のため、受信電力が十分である場合には、これらの処理を複数のバンクで並列化するようにしてもよい(但し、複数バンク構成の場合)。
【0062】
CRC論理部87は、送受信されるデータを巡回冗長コード(CRC:Cyclic Redundancy Code)を用いてエラー訂正処理を行なう。データ送信時には、送信データにCRCを付加し、データ受信時には、受信データに付加されているCRCを用いてエラー検出並びに訂正を行なう。
【0063】
I/O部88は、アナログ部回路60とのインターフェースであり、SPU86はI/O部88を経由してアナログ部回路60とメモリ間でデータの受け渡しを行なう。
【0064】
B.データ伝送動作:
ICカードがリーダ/ライタからデータを受信し、EEPROMから読み出したデータを送信するまでの処理手順は以下の通りとなる。
【0065】
1)ICカードがリーダ/ライタの出力する磁界領域に翳される。
【0066】
2)LSIを動作させる為に十分な電圧が得られる領域では、クロックが生成され、マスクROMのプログラムが起動する。その後、初期化処理が終わると、リーダライタからの受信データを待機する状態になる。
【0067】
3)リーダ/ライタからASK変調された変調波を検出したら、この振幅変化が復調部で2値化され、SPU内部でクロック抽出を行ないながらデータの受信を行なう。
【0068】
4)SPU86内部では、データの受信を行ないながら、あらかじめ設定しておいたシンクコードの検出を行ない、シンクコードが検出されたらRAM83内部の受信バッファ領域に受信データをDMA転送します。
【0069】
5)SPU86内部では、受信しているデータのCRCを同時に計算し、誤りがあれば再び3の受信データ待ちに戻ります。誤りが無ければDMAを解除し、CPU81に制御を移す。
【0070】
6)CPU81は、RAM83内部の受信データを解析し、そのコマンドに従った動作を行ない、返信データを送信バッファに用意する。また、受信エネルギも併せて解析し、エネルギの余裕度がある限りは、クロックの高速化や書き込みや暗号化などの並列処理を行なう。
【0071】
7)送信バッファに用意された送信データは、SPU86へ1バイトずつDMA転送される。SPU86では、シリアル・データに変換しながら変調部に送出する。
【0072】
8)変調部68では、アンテナ・コイル53の返信データに応じた負荷変動をアンテナ・コイル53に与え、その結果、返信データを送信する。リーダ/ライタ側では、この負荷変動を検出して、カードからの返信データとして処理する。
【0073】
9)リーダ/ライタの磁界領域であれば、再び3の受信データ待ちに戻る。
【0074】
C.メモリ・システム
EEPROM84は、電子マネーなどの価値情報や、ICカードを利用したサービスを実現するためのデータを格納する不揮発性メモリである。この項では、EEPROM84で構成されるメモリ・システムにおける書き込み動作について説明する。
【0075】
EEPROM84は、データ領域を一旦消去した後に書き込みが可能な状態となる。SRAMやDRAMなどの他の書き換え可能な半導体メモリに比べて、消去及び書き込みに時間がかかる(数ミリ秒程度)。
【0076】
また、そのメモリ空間は、通常、複数バイトからなるページ単位に分割して構成されている。同じページ内であれば、複数バイトの書き込みも1回の書き込み動作で完結することができる。ところが、異なるページにまたがって書き込みが発生した場合には、関連するページ数分だけ書き込み動作が必要となるので、それに対応した書き込み時間が必要となってしまう。
【0077】
そこで、本実施形態では、論理アドレスという概念を導入し、可能な限り書き込みを同一ページに行なわせるようにした。これにより、高速書き込み機能を提供するとともに、電源が瞬断したときであっても書き込む前のデータを保証する機能を提供する。物理アドレスと論理アドレスとの対応関係を記述した管理テーブルを複数備え、メモリ・アクセス時には信憑性が高く且つ新しい方の管理テーブルを参照して物理アドレスにアクセスするようにする。
【0078】
図6には、本実施形態に係るメモリ・システムの基本構成を示している。図示のメモリ・システムの実態である物理アドレス空間には、保存すべきデータを格納するデータ領域の他に、このデータ領域における消去書き込み動作の単位であるページ毎に物理的な配置を管理する管理テーブルが設けられている。
【0079】
ここで言う管理テーブルは、論理アドレスと物理アドレスの紐付け関係をページ単位で記述したテーブルであり、コンピュータ分野において広く知られるMS−DOS(Microsoft−Disk Operating System)(登録商標)のファイル・システムにおいて、ファイル空間上の各データ単位(例えば「セクタ」)の物理的な配置を管理するFAT(File Allocation Table)に相当する。本明細書中では、不揮発性メモリにおける管理テーブルのことを、「リンク・テーブル」とも呼ぶ。
【0080】
図示の例では、説明の便宜上、論理アドレスと物理アドレスの単位を1バイトとする。また、1つの物理ページは4バイトで構成され、ページ単位で消去書き込み動作が一括して行なわれる。論理アドレスは#0番地から#N−1番地までのN番地からなる。また、物理アドレスは、$0番地から$M−1番地までのM番地からなる。物理アドレスの先頭から順に4バイトずつ区切られ、各物理ページP0、P1、P2…を構成している。そして、リンク・テーブルでは、論理アドレスがどの物理アドレスにリンクしているかを示している。M≧Nであれば、本発明に係るデータ書き込みアルゴリズムを動作させることが可能である。
【0081】
リーダ/ライタなどのICカード外のシステムからICカード内のメモリ・システムに対する読み書きやその他のアクセス動作は、基本的に、論理アドレス空間上で行なわれる。そして、メモリ空間上では、バイト単位でアドレスを指定することができるが、メモリに対する消去書き込み動作はページ単位で行なわれる。
【0082】
ある論理アドレスを読み出するためには、リンク・テーブルの論理アドレスのエントリ・ポイントに格納されているアドレスを読み出す。その後、読み出されたアドレスに格納されているデータを読み出すことで、論理アドレスを読み出すことになる。
【0083】
次に、ある論理アドレスに書き込みを行なうことを考える。この場合、リンク・テーブルのエントリ・ポイントに格納されているアドレスに直接書いてしまうと、電源が書き込み途中に瞬断したときにデータ内容が破壊されたままになってしまう。リンク・テーブルのデータが破壊されると、配置情報が失われることから、メモリ・システム全体にアクセスできなくなってしまうことになる。そこで、論理アドレスがマップされていないページを検索し、そのページ内に書き込みを行ない、その後、リンク・テーブルのエントリ・ポイントに格納されるアドレスを書き込んだブロック・アドレスを格納することを行なう。
【0084】
本実施形態では、リンク・テーブルは2面用意されていて、それぞれの面の中にカウンタ(CT)が用意されており、リンク・テーブルを更新する度に、交信した面のCTをインクリメントする。したがって、いずれの面のCTの値が大きいかによって、最新の管理テーブルが分かるようになっている。このリンク・テーブルにおいても電源の瞬断が起こったときにも直前のデータ内容を保証するために、古い管理テーブルに新しいリンク関係と更新されたカウンタ値とCRCなどのエラー・チェック・コードを書き込み、完全に書き込まれたことを以ってリンク・テーブルを更新することを行なう。
【0085】
なお、特開平11−25003号公報には、消去書き込み動作時における突発的な電源遮断の対策として、ルート・テーブルを2ページの対からなる2面構成とし、各ページを交互に有効ページ及び無効ページとして用い、データの保全を図るという方法について提案がなされている。
【0086】
本実施形態に係るデータ書き込みアルゴリズムでは、複数の論理アドレスに書き込みが発生したとき、空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう。その結果、書き込みページ数を削減することで書き込み時間の削減を行なうようにする。なお、同一ページに入りきらないバイト数の書き込みが必要である場合には、次の空いているページに書き込みを行なうが、このときも同様なアルゴリズムを動作させ、可能な限りそのページに書き込みを行なわせる。
【0087】
また、書き込みバイト数がページ・サイズに満たない場合には(上述のように、可能な限り空きページにデータ書き込みを繰り返し行なった結果、最後にページ・サイズに満たないデータが残った場合を含む)、余りのバイト数以下のバイト数が使われているページを見つけ出し、それらのデータを合わせて同一ページに書き込みを行なうことにより、書き込むページが有効に使われるようにする。このようにすることにより、空きページの確保ができる可能性を増大させ、高速書き込みアルゴリズムを有効に活用させることが可能となる。
【0088】
但し、この場合、リンク・テーブル上で物理アドレスから論理アドレスを検索する必要性がある。この検索時間を削減するために、論理アドレスがどの物理アドレスにリンクしているかを示すリンク・テーブルとともに、物理アドレスがどの論理アドレスからリンクさせられているか示す逆引きテーブルを用意するようにしてもよい。
【0089】
ここで、書き込みサイズがちょうどページ・サイズとなる場合のデータ書き込み動作の具体例について、図7及び図8を参照しながら説明する。同図では1ページは4バイトとする。
【0090】
図7のリンク・テーブルに示すように、各論理アドレス#0、#1、#2、#3、…は、それぞれ物理アドレス$0、$5、$8、$13にリンクしている。ここで、#0、#1、#2、#3へ新規のデータD0〜D3の書き込みを行なうとする。
【0091】
図示の例では、データ書き込み対象となっている論理アドレス#0、#1、#2、#3は論理アドレス空間上では連続しているが、物理アドレス空間では、それぞれ別々の物理ページP0、P1、P2、P3にマッピングされている。
【0092】
このような場合、リンク・テーブルを検索して、物理ページP4上に、データ書き込みバイト数である4バイト分の物理アドレス$16〜$19が空いていることを把握する。そして、物理ページP4上の物理アドレス$16〜$19へ書き込み要求されているデータ#0〜#3の書き込みを行なう。
【0093】
そして、リンク・テーブルの古い方に新しいリンク関係とインクリメントされたカウンタ値(CT+1)、並びにエラー・チェック・コード(CRC)を書き込んで書き込み動作を完了する(図8を参照のこと)。
【0094】
次に、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作の具体例について、図9及び図10を参照しながら説明する。同図では1ページは4バイトとする。
【0095】
図9のリンク・テーブルに示すように、各論理アドレス#0、#1、#2、#3、…は、それぞれ物理アドレス$0、$5、$8、$13、…にリンクしている。ここで、#0へ新規のデータD0の書き込み、すなわち1バイト分のデータ書き込みを行なうとする。
【0096】
まず、リンク・テーブルを検索し、物理ページP4が空いていることを把握する。
【0097】
さらに、ページ・サイズからデータ書き込みバイト数を引いた3バイト分だけが使用されている物理ページをリンク・テーブル上で探索する。図示の例では、$13、$14、$15の3バイトだけ使用されている物理ページP3が見つけ出される。物理アドレス$13、$14、$15には、それぞれ論理アドレス#3、#K、#N−1のデータが書き込まれている。
【0098】
そして、新規の書き込みデータ#0と、物理ページP3上の3バイト分のデータ#3、#K、#N−1を空いている物理ページP4上の各物理アドレスS16〜$19へ書き込む。
【0099】
そして、リンク・テーブルの古い方に新しいリンク関係とインクリメントされたカウンタ値(CT+1)、並びにエラー・チェック・コード(CRC)を書き込んで書き込み動作を完了する(図10を参照のこと)。
【0100】
このように論理アドレス1バイト分のデータ書き込み時に他の論理アドレスのデータを他の物理アドレスにコピーすることで、1ページ分の空きページを確保することができる。
【0101】
次に、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作についての他の具体例について、図11及び図12を参照しながら説明する。同図では1ページは4バイトとする。
【0102】
図11のリンク・テーブルに示すように、各論理アドレス#0、#1、#2、…は、それぞれ物理アドレス$0、$5、$8、…にリンクしている。ここで、#0へ新規のデータD0の書き込み、すなわち1バイト分のデータ書き込みを行なうとする。
【0103】
まず、リンク・テーブルを検索し、物理ページP4が空いていることを把握する。
【0104】
さらに、データ書き込みバイト数がページ・サイズに満たない物理ページを、リンク・テーブル上で探索する。このとき、各物理ページにおけるデータ書き込みバイトの総数が、ページ・サイズから今回のデータ書き込みバイト数を引いた3バイト分となるように探索する。図示の例では、論理アドレス#1の1バイトのみが物理アドレス$5に書き込まれた物理ページP1、並びに論理アドレス#K及び#N−1の2バイトが物理アドレス$14及び$15に書き込まれた物理ページP3が見つけ出される。
【0105】
そして、新規の書き込みデータ#0と、物理ページP1上の1バイト分のデータ#1、及び物理ページP3上の2バイト分の#K、#N−1を、空いている物理ページP4上の各物理アドレスS16〜$19へ書き込む。
【0106】
そして、リンク・テーブルの古い方に新しいリンク関係とインクリメントされたカウンタ値(CT+1)、並びにエラー・チェック・コード(CRC)を書き込んで書き込み動作を完了する(図12を参照のこと)。
【0107】
このように物理アドレス1バイト分のデータ書き込みを行なうときに他の論理アドレスのデータを他の物理アドレスにコピーすることで、1ページ分の空きページを確保することができる。
【0108】
図13には、本実施形態に係るデータ書き込み処理の手順をフローチャートの形式で示している。以下では、書き込み要求データのバイト数をNw、1ページのバイト数をPs、残りの書き込みデータのバイト数をRw、実際に書き込むデータのバイト数をAwとする。
【0109】
まず、残りの書き込みバイト数Rwの初期値として、書き込み要求のバイト数Nwを代入する(ステップS1)。
【0110】
そして、残りの書き込みバイト数Rwがページ・サイズのバイト数Ps以上であるかどうかをチェックする(ステップS2)。
【0111】
残りの書き込みバイト数Rwがページ・サイズのバイト数Ps以上である場合には、リンク・テーブルを参照して、空いている物理ページを探索する(ステップS3)。書き込み要求されているデータのうちページ・サイズ分のバイト数Psだけ、見つけ出された空き物理ページP1に書き込む(ステップS4)。
【0112】
次いで、残りの書き込みバイト数を、書き込みが終わったページ・サイズ分のバイト数Psだけ減じて(ステップS5)、リンク・テーブルの内容を更新する(ステップS6)。その後、ステップS2に戻り、残りの書き込みデータについての処理を繰り返し行なう。
【0113】
一方、残りの書き込みバイト数Rwがページ・サイズのバイト数Psに満たない場合には(ステップS2)、残りの書き込みバイト数Rwが0すなわち書き込み動作が完了しているかどうかをチェックする(ステップS7)。残りの書き込みバイト数Rwが0であれば、本処理ルーチン全体を終了する。
【0114】
残りの書き込みデータが残っている場合には、リンク・テーブルを参照して、空いている物理ページを探索する(ステップS8)。そして、ページ・サイズのバイト数Psから残りのデータ書き込みバイト数Rwを引いた空きバイト数を持つ物理ページを探索する(ステップS9)。ない場合には、Ps−Rwバイト以下でPs−Rwに最も近い物理ページを検索する。ここでは、Ps−Rwに相当する空きバイト数を持つ物理ページとしてP2が見つけ出されたとする。
【0115】
ここで、物理アドレスから論理アドレスを検索する検索時間を削減するために、物理アドレスがどの論理アドレスからリンクさせられているか示す逆引きテーブルを使用してもよい。
【0116】
次いで、Rwバイト分の残りの書き込みデータと、物理ページP2内のデータを併せて、空きページP1へ書き込みを行なう(ステップS10)。そして、リンク・テーブルの内容を更新した後(ステップS11)、本処理ルーチン全体を終了する。
【0117】
なお、上述した実施形態では、論理アドレスと物理アドレスの単位を1バイトとして説明したが、複数バイトを1ブロックとして考えた場合においても本実施形態に係るデータ書き込みアルゴリズムは適用可能である。
【0118】
また、リンク・テーブルは説明の便宜上1ページ分の長さを想定したが、1ページ分で表現しきれない場合は、複数の長さで構成することや階層構造をとることも可能である。
【産業上の利用可能性】
【0119】
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0120】
本明細書では、ICカードに内蔵された不揮発性メモリに対するデータの消去書き込み動作を例にとって本発明の実施形態について説明したが、本発明の要旨はこれに限定されるものではない。すなわち、複数のページにまたがる消去書き込み動作時における書き込み時間や、書き込み動作中における突発的な電源遮断によるデータ破壊の問題は、ICカードのような非接触通信装置に限るものではない。例えば、消去書き込み式の不揮発性メモリを内蔵した携帯電話機やその他の情報機器においても、複数のページにまたがる消去書き込み動作時における書き込み時間が長期化するという問題があり、本発明によって同様に解決することができる。
【0121】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【図面の簡単な説明】
【0122】
【図1】図1は、本発明を適用可能な非接触ICカード通信システムの構成を模式的に示した図である。
【図2】図2は、図1に示したカード・リーダ/ライタ1の構成例を示した図である。
【図3】図3は、図1に示したICカード2の構成例を示した図である。
【図4】図4は、アナログ部回路60の内部構成を示した図である。
【図5】図5は、論理部回路80の内部構成を示した図である。
【図6】図6は、本発明に係るメモリ・システムの基本構成例を示した図である。
【図7】図7は、書き込みサイズがちょうどページ・サイズとなる場合のデータ書き込み動作の具体例を示した図である。
【図8】図8は、書き込みサイズがちょうどページ・サイズとなる場合のデータ書き込み動作の具体例を示した図である。
【図9】図9は、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作の具体例を示した図である。
【図10】図10は、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作の具体例を示した図である。
【図11】図11は、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作の具体例を示した図である。
【図12】図12は、書き込みサイズがページ・サイズ未満となる場合のデータ書き込み動作の具体例を示した図である。
【図13】図13は、データ書き込み処理の手順を示したフローチャートである。
【符号の説明】
【0123】
1…カード・リーダ/ライタ
2…ICカード
3…コントローラ
21…ICチップ・モジュール
22…フラッシュ・メモリ
23…変調回路
25…復調回路
26…発振器
27…アンテナ
31…DPU
32…SPU
33…SCC
34…メモリ部
41…ROM部
42…RAM部
51…ICチップ・モジュール
52…コンデンサ
53…ループ・アンテナ
60…アナログ部回路
61…整流器
62…エネルギ監視部
63…過電流保護回路
64…電源電圧制御部
65…参照電圧生成部
66…クロック検出部
67…復調部
68…変調部
80…論理部回路
81…CPU
82…ROM
83…RAM
84…EEPROM
85…SPU
86…暗号処理部
87…CRC論理部
88…I/O部
89…クロックギア

【特許請求の範囲】
【請求項1】
ページ単位での消去書き込み可能なメモリへのアクセス動作を行なう情報処理装置であって、
前記メモリにおけるメモリ空間の論理アドレスと物理アドレスの対応関係を管理する管理テーブルと、
論理アドレスが指定されたメモリへのアクセス要求を受信処理する受信処理部と、
指定された論理アドレスに対応する物理アドレスを前記管理テーブル上で探索し、前記メモリ上の該当する物理アドレスにアクセスするメモリ・アクセス制御部とを備え、
メモリ・アクセス制御部は、複数の論理アドレスに書き込みが発生したとき、前記管理テーブル上で空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう、
ことを特徴とする情報処理装置。
【請求項2】
前記受信処理部は、受信信号を受信処理するとともに受信信号から駆動電力を取り出し、受信信号から得られる電力により駆動するとともに受信信号に基づいてメモリへのアクセス動作を行なう、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
書き込み要求されたデータが同一ページに入りきらないバイト数の書き込みが必要である場合には、前記メモリ・アクセス制御部は、可能な限りそのページに書き込みを行なわせるように、次の空いているページに書き込みを行なう、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
書き込み要求されたデータの書き込みバイト数がページ・サイズに満たない場合には、前記メモリ・アクセス制御部は、余りのバイト数以下のバイト数が使われているページを見つけ出し、それらのデータを併せて同一ページに書き込みを行なう、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記管理テーブルは、論理アドレスがどの物理アドレスにリンクしているかを示すリンク・テーブルと、物理アドレスがどの論理アドレスからリンクさせられているか示す逆引きテーブルを備える、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項6】
複数の管理テーブルを備え、
前記メモリ・アクセス制御部は信憑性が高く且つ新しい方の管理テーブルを参照して前記メモリ上の物理アドレスにアクセスする、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項7】
ページ単位での消去書き込み可能なメモリへのアクセス動作を行なう情報処理方法であって、
前記メモリにおけるメモリ空間の論理アドレスと物理アドレスの対応関係を管理テーブルで管理するアドレス管理ステップと、
論理アドレスが指定されたメモリへのアクセス要求を受信処理する受信処理ステップと、
指定された論理アドレスに対応する物理アドレスを前記管理テーブル上で探索し、前記メモリ上の該当する物理アドレスにアクセスするメモリ・アクセス制御ステップとを備え、
メモリ・アクセス制御ステップでは、複数の論理アドレスに書き込みが発生したとき、前記管理テーブル上で空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう、
ことを特徴とする情報処理方法。
【請求項8】
前記受信処理ステップでは、受信信号を受信処理するとともに受信信号から駆動電力を取り出し、受信信号から得られる電力により駆動するとともに受信信号に基づいてメモリへのアクセス動作を行なう、
ことを特徴とする請求項7に記載の情報処理方法。
【請求項9】
書き込み要求されたデータが同一ページに入りきらないバイト数の書き込みが必要である場合には、前記メモリ・アクセス制御ステップでは、可能な限りそのページに書き込みを行なわせるように、次の空いているページに書き込みを行なう、
ことを特徴とする請求項7に記載の情報処理方法。
【請求項10】
書き込み要求されたデータの書き込みバイト数がページ・サイズに満たない場合には、前記メモリ・アクセス制御ステップでは、余りのバイト数以下のバイト数が使われているページを見つけ出し、それらのデータを併せて同一ページに書き込みを行なう、
ことを特徴とする請求項7に記載の情報処理方法。
【請求項11】
前記アドレス管理ステップでは、論理アドレスがどの物理アドレスにリンクしているかを示すリンク・テーブルと、物理アドレスがどの論理アドレスからリンクさせられているか示す逆引きテーブルを管理する、
ことを特徴とする請求項7に記載の情報処理方法。
【請求項12】
前記アドレス管理ステップでは複数の管理テーブルを管理し、
前記メモリ・アクセス制御ステップでは、信憑性が高く且つ新しい方の管理テーブルを参照して前記メモリ上の物理アドレスにアクセスする、
ことを特徴とする請求項7に記載の情報処理方法。
【請求項13】
ページ単位での消去書き込み可能なメモリへのアクセス動作を行なうための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記メモリにおけるメモリ空間の論理アドレスと物理アドレスの対応関係を管理テーブルで管理するアドレス管理ステップと、
論理アドレスが指定されたメモリへのアクセス要求を受信処理する受信処理ステップと、
指定された論理アドレスに対応する物理アドレスを前記管理テーブル上で探索し、前記メモリ上の該当する物理アドレスにアクセスするメモリ・アクセス制御ステップとを備え、
メモリ・アクセス制御ステップでは、複数の論理アドレスに書き込みが発生したとき、前記管理テーブル上で空きページを検索し、可能な限りその空いているページ内にデータの書き込みを行なう、
ことを特徴とするコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2006−107379(P2006−107379A)
【公開日】平成18年4月20日(2006.4.20)
【国際特許分類】
【出願番号】特願2004−296773(P2004−296773)
【出願日】平成16年10月8日(2004.10.8)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】