(57)【要約】【課題】読み出し書き込み可能な不揮発性メモリに書き込みを実行する際の処理時間を短縮すると同時に、メモリ容量の効率的な利用をも併せて実現する技術を提供する。【解決手段】１回の書き込み処理の対象となるページを複数備える半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成することにより、読み書き可能な半導体記憶装置のデータを管理する方法。ブロックが作成されたブロック作成済領域と、ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在するとき、一部使用済ページの未使用領域を、当該未使用領域と同じ大きさを有するブロック甲が作成された領域として取り扱うと共に、未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成し、当該ブロックにデータを書き込む。【選択図】      図４
2004326706.tif 000002
【特許請求の範囲】
【請求項１】
１回の書き込み処理の対象となるページを複数備える半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成することにより、読み書き可能な半導体記憶装置のデータを管理する方法において、
ブロックが作成されたブロック作成済領域と、前記ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在するとき、
前記一部使用済ページの前記未使用領域を、当該未使用領域と同じ大きさを有するブロック甲が作成された領域として取り扱うと共に、
前記未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成し、当該ブロックにデータを書き込む
ことを特徴とするデータ管理方法。
【請求項２】
請求項１に記載のデータ管理方法において、前記ブロック甲に対し、前記ブロック甲以外のブロックに付与する識別子と同じ系列に属する識別子を付与することを特徴とするデータ管理方法。
【請求項３】
請求項１に記載のデータ管理方法において、前記ブロック甲に対し、前記ブロック甲以外のブロックに対して付与する識別子と互いに独立した系列に属する識別子を付与することを特徴とするデータ管理方法。
【請求項４】
請求項１に記載のデータ管理方法において、前記ブロック甲が作成される領域が存在することを、前記半導体装置に接続された他の装置に通知することを特徴とするデータ管理方法。
【請求項５】
１回の書き込み処理の対象となるページを複数備える読み書き可能な半導体記憶装置、及び、前記半導体記憶装置に対する読み書きを制御する処理装置を備える半導体装置の前記処理装置にて実行されるプログラムにおいて、
前記半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成するブロック作成処理を含むプログラムであって、
ブロックが作成されたブロック作成済領域と、前記ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在する場合、
前記一部使用済ページの前記未使用領域に、当該未使用領域と同じ大きさを有するブロック甲を作成する処理と
前記未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成する第１のブロック作成処理と、
を前記ブロック作成処理として前記処理装置に実行させることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、前記ブロック甲に対し、前記ブロック甲以外のブロックと同じ系列に属する識別子を付与することを特徴とするプログラム。
【請求項７】
請求項５に記載プログラムにおいて、前記ブロック甲に対し、前記ブロック甲以外のブロックと互いに独立した系列に属する識別子を付与することを特徴とするプログラム。
【請求項８】
請求項５に記載のプログラムにおいて、前記ブロック甲が作成される領域が存在することを、前記半導体装置に接続された他の装置に通知する処理を更に含むことを特徴とするプログラム。
【請求項９】
請求項５に記載のプログラムにおいて、
前記ブロック作成処理として、前記一部使用済ページが存在する場合、当該一部使用済ページの未使用領域の先頭を起点としてブロックを作成する第２のブロック作成処理と、
前記第１及び第２のブロック作成処理の一方を選択する処理と
を更に含むことを特徴とするプログラム。
【請求項１０】
請求項５に記載のプログラムにおいて、前記ブロック作成処理は、前記半導体装置の外部の装置から受ける指示に応じてブロックを作成することを特徴とするプログラム。
【請求項１１】
請求項５に記載のプログラムにおいて、前記半導体装置はＩＣカードであることを特徴とするプログラム。
【請求項１２】
請求項５乃至１１のいずれかに記載のプログラムを記録した記憶媒体。
【請求項１３】
請求項１２に記載の記憶媒体を備え、前記プログラムに従って動作する前記半導体装置。
【請求項１４】
１回の書き込み処理の対象となるページを複数備える読み書き可能な半導体記憶装置、及び、前記半導体記憶装置に対する読み書きを制御する処理装置を備える半導体装置において、
前記半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成する半導体装置であって、
ブロックが作成されたブロック作成済領域と、前記ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在する場合、
前記一部使用済ページの前記未使用領域に、当該未使用領域と同じ大きさを有するブロック甲を作成する手段と
前記未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成する第１のブロック作成手段と、
を備えることを特徴とする半導体装置。
【請求項１５】
請求項１３及び１４のいずれかに記載の半導体装置を備えるＩＣカード。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＩＣカード及びＩＣカードを用いた情報処理に関し、特にＩＣカードに内蔵される読み出し書き込み可能な不揮発性メモリに対するデータの書き込み方式に関する。
【０００２】
【従来の技術】
ＩＣカードではＥＥＰＲＯＭ（ｅｒｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅａｎｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）のような読み出し書き込み可能な不揮発性メモリにデータを書き込んでいる。
【０００３】
一般に、ＥＥＰＲＯＭのような読み出し書き込み可能な不揮発性メモリに対する書き込みの処理はページ単位に実行される。書き込もうとするデータが書き込み中のページに収まらない場合、残りのデータは次のページに書き込まれる。
【０００４】
図６を参照してＩＣカードでのＥＥＰＲＯＭに対する書き込み方式を説明する。空のＥＥＰＲＯＭにブロックＢ１、Ｂ２、…、Ｂ５の順に書き込みを行ったものとする。ブロックＢ１及びＢ２は共に１ページよりも小さいブロックであるが、ブロックＢ１を書き込む際には、ページ１に対して書き込みを行うだけで処理が終了しているのに対して、ブロックＢ２を書き込む際には、ページ１及びページ２の両方に対して書き込みを行っている。また、ブロックＢ４は２ページに収まる大きさであるが、ページ２〜４の３ページに対して書き込み処理を行っている。
【０００５】
一方、ブロックの大きさは格納するデータの大きさに依存し、書き込み処理の単位となるページの大きさとは無関係に設定される。このため、同じ大きさのブロックの書き込みであっても、ページ内における書き込みを開始した位置によって書き込み処理を行うページ数が１回増減することがある。
【０００６】
現在のＩＣカードにおいて、読み出し書き込み可能な不揮発性メモリとして広く用いられているＥＥＰＲＯＭは、１ページに対する１回の書き込み処理につき３〜５ｍｓの書き込み時間が必要である。このため、ＩＣカードへの書き込み処理に要する時間を短縮するためには、書き込み処理の対象となるページの数を抑えることが望ましい。
【０００７】
特許文献１に記載の技術では、書き込みしようとするデータに対し、その実際の大きさよりも大きくなる最小の個数のページ全体をひとつのブロックとして割り当ててデータを格納している
【０００８】
【特許文献１】
特許第３０８８８６６号公報（第００１２段落）
【０００９】
【発明が解決しようとする課題】
特許文献１に記載の技術によれば、正味のデータを書き込んだ領域と未使用の領域とがひとつのブロックとして取り扱われることとなる。このため、この未使用領域のみを指定して取り扱うことができず、その結果、メモリ容量の利用が非効率的になってしまうという問題がある。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、読み出し書き込み可能な不揮発性メモリに書き込みを実行する際の処理時間を短縮すると同時に、メモリ容量の効率的な利用をも併せて実現する技術を提供する。
【００１１】
【課題を解決するための手段】
上述の課題を解決するため、本発明は以下の技術を提供する。
【００１２】
第１の側面としては、１回の書き込み処理の対象となるページを複数備える半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成することにより、読み書き可能な半導体記憶装置のデータを管理する方法において、ブロックが作成されたブロック作成済領域と、ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在するとき、一部使用済ページの未使用領域を、当該未使用領域と同じ大きさを有するブロック甲が作成された領域として取り扱うと共に、未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成し、当該ブロックにデータを書き込むことを特徴とするデータ管理方法を提供する。ここで、読み書き可能な半導体記憶装置としては例えばＥＥＰＲＯＭがある。
【００１３】
ブロック甲に対し、ブロック甲以外のブロックに付与する識別子と同じ系列に属する識別子を付与することとしてもよい。この場合、ブロック甲は、従来のブロックと同じコマンドで外部装置からアクセスされることになる。
【００１４】
または、ブロック甲に対し、ブロック甲以外のブロックに対して付与する識別子と互いに独立した系列に属する識別子を付与することとしてもよい。この場合、ブロック甲にアクセスするには専用のコマンドを新しく設ける必要があるが、従来のブロックに対して付与される識別子を消費しないで済むという利点がある。
【００１５】
ブロック甲が作成される領域が存在することを、半導体装置に接続された他の装置に通知することとすれば、他の装置がブロック甲の作成を前提としたコマンドを発行することが可能となる。
【００１６】
第２の側面としては、１回の書き込み処理の対象となるページを複数備える読み書き可能な半導体記憶装置、及び、半導体記憶装置に対する読み書きを制御する処理装置を備える半導体装置の処理装置にて実行されるプログラムにおいて、半導体記憶装置に対し、ページの一部乃至複数のページを用いて、書き込もうとするデータの大きさに応じたブロックを作成するブロック作成処理を含むプログラムであって、ブロックが作成されたブロック作成済領域と、ブロック作成済領域以外の領域である未使用領域との両方を含むページである一部使用済ページが存在する場合、一部使用済ページの未使用領域に、当該未使用領域と同じ大きさを有するブロック甲を作成する処理と、未使用領域のみからなる未使用ページの先頭を起点としてブロックを作成する第１のブロック作成処理とをブロック作成処理として処理装置に実行させることを特徴とするプログラムを提供する。
【００１７】
ブロック甲に対し、ブロック甲以外のブロックと同じ系列に属する識別子を付与することとしてもよいし、ブロック甲以外のブロックと互いに独立した系列に属する識別子を付与することとしてもよい。また、ブロック甲が作成される領域が存在することを、半導体装置に接続された他の装置に通知する処理を更に含むこととしてもよい。
【００１８】
ブロック作成処理として、一部使用済ページが存在する場合、当該一部使用済ページの未使用領域の先頭を起点としてブロックを作成する第２のブロック作成処理と、第１及び第２のブロック作成処理の一方を選択する処理とを更に含むこととしてもよい。第１のブロック作成処理は処理時間の短縮に向いているが、メモリ容量の効率的な使用には向いていない。これに対し、第２のブロック作成処理は処理時間の点については不利なものの、メモリ容量を効率的に使用することが出来る。書き込みを行うデータの内容等に応じてこれらの処理を選択して用いることにより、両者を補完することができる。
【００１９】
第１及び第２のブロック作成処理を含むブロック作成処理は、半導体装置の外部の装置から受ける指示に応じてブロックを作成することとしてもよい。
【００２０】
更に、本発明は、上述のプログラムを記録した記憶媒体、この記憶媒体を備え、プログラムに従って動作する半導体装置を提供する。第１及び第２のブロック作成処理はハードウェアとして実装されてもよい。また、このような半導体装置を備えるＩＣカードを提供する。
【００２１】
【発明の実施の形態】
本発明の一実施の形態であるＩＣカードについて説明する。図１を参照すると、ＩＣカード１００内にはＩＣチップ１が搭載されている。ＩＣチップ１上には、揮発性メモリ（以下ＲＡＭと記す）２、制御プログラムが格納された読出し専用不揮発性メモリ（以下ＲＯＭと記す）３、書き込み又は書換る情報を格納する読み出し書込み可能不揮発性メモリ（以下ＥＥＰＲＯＭと記す）４、制御プログラムに従って演算処理を実行し、各部の動作を制御する演算処理部５、及び、通信対象となる上位装置２００との間で情報交換を行うインタフェース６が設けられている。
【００２２】
上位装置２００からＩＣカード１００のＥＥＰＲＯＭ４にデータを書き込む過程の概略について説明する。図２に示すように、ＩＣカード１００がインタフェース６を介して上位装置２００より受け取った書き込み情報は、一旦ＲＡＭ２に保存され、続いて演算処理部５内に設けられる書き込み用揮発性メモリ７に移動され、最後にＥＥＰＲＯＭ４に書き込まれる。
【００２３】
書き込み用揮発性メモリ７の大きさはＩＣチップ固有の大きさである。従ってＲＡＭ２に格納された書き込み情報がＥＥＰＲＯＭ４の書き込み単位、即ちページを超える場合、図３に示す通り、書き込み情報はＥＥＰＲＯＭ４の書き込み単位毎に分割されＥＥＰＲＯＭ４に順次書き込まれる。
【００２４】
図４を参照して、ＩＣカード１００への書き込み処理について更に説明する。
【００２５】
上位装置２００からＩＣカード１００にデータを書き込む際、まず書き込みモードを選択する（ステップＳ１）。書き込みモードは処理時間の短縮を優先する時間優先モードと、メモリ容量の効率的な利用を優先する要領優先モードがある。この選択は、上位装置２００からの指示によるものでもよいし、書き込みされるデータの内容や、上位装置２００の種類等に応じて、ＩＣカード１００が選択してもよい。
【００２６】
時間優先モードの場合、最後尾のページが書き込み済みの領域と未使用領域の両方を含む一部使用済ページの場合、その未使用領域と同じ大きさのブロックがその未使用領域に作成される（ステップＳ３）。以下、未使用領域に作成されるブロックを空ブロックと呼ぶ。このとき、空ブロックに対して識別子Ａが付与される。尚、最後尾のページの終端と実ブロックの終端が一致する場合、このページに未使用領域は残っていないが、この場合、空ブロックは作成しない。続いて、ＩＣカード１００は、空ブロックを作成したページの次ページの先頭を、書き込もうとするデータを格納するためのブロックを作成する際の起点として選択する（ステップＳ４）。以下、空ブロックに対し、データを格納したブロックを実ブロックと呼ぶ。
【００２７】
容量優先モードの場合、未使用領域の先頭が起点として選択される（ステップＳ５）。多くの場合、ここで選択される未使用領域は、一部の領域にデータを書き込んだ一部使用済ページの未使用領域の先頭が起点となるであろう。
【００２８】
ステップＳ４またはＳ５にて選択した起点から、書き込みするデータの要領に応じた大きさの実ブロックを作成する（ステップＳ６）。データの大きさに応じて１乃至複数のページにひとつの実ブロックが作成される。実ブロックに対して識別子Ｂが付与される。
【００２９】
識別子Ａ及びＢは互いに異なる識別子である。識別子Ａ及びＢは、同じひとつの系列に属する識別子であってもよい。この場合、ＩＣカード１００や上位装置２００は、空ブロックを実ブロックと同様に参照することができる。即ち、上位装置２００が空ブロックにアクセスする際に、実ブロックと同じコマンドを用いて行うことができる。ただし、この場合は空ブロックについても識別子Ａと同系列の識別子を消費することになる。
【００３０】
あるいは、識別子Ａ及びＢは、互いに独立したふたつの系列に属する識別子であってもよい。この場合、空ブロックにアクセスするためには専用のコマンドを用いる必要があるが、実ブロック用の識別子を消費しないという利点がある。
【００３１】
図５を参照して説明する。図中、ブロックＡ１、Ａ２、…、Ａ５は実ブロックであり、ブロックＲ１、Ｒ２は空ブロックである。ブロックＡ１はページ１の先頭を起点とするためどちらのモードで作成しても同様に作成される。ブロックＡ２及びＡ４は時間優先モードで作成されたブロックである。どちらも、空ブロック（ブロックＲ１、Ｒ２）を作成した後に作成された。ブロックＡ３及びＡ５は容量優先モードで作成されたブロックである。このため、直前に作成されたブロックの末尾に続いて作成されている。
【００３２】
時間優先モードについて更に説明する。この動作モードでは、ブロックを作成するメモリ開始位置がＥＥＰＲＯＭの書き込み単位（ページ）開始位置にない場合に、次の書き込み単位開始位置までの空き領域に空き領域と同じ大きさのブロックを設けている。これにより、ブロック内の書き込み処理時間が冗長になる問題を解決している。
【００３３】
図５と図６を比較して従来技術による書き込み動作との相違を説明する。図６を参照すると、ブロックＢ２の書き込み処理時間は、ページ１から２にまたがっているため２ページ分必要である。これに対し、図５を参照すると、本発明での書き込み処理時間は、実ブロックＡ１作成後の空き領域を埋める空ブロックＲ１を作成した後、ページ２の中に収まる実ブロックＡ２を作成するため１ページ分ですむ。
【００３４】
同様に、ブロックＢ４の書き込み処理時間は、ページ２、３、４にまたがっているため３ページ分必要であるが、実ブロックＡ３作成後の空き領域を埋める空ブロックＲ２を作成した後、ページ４、５の中に収まる実ブロックＡ４を作成するため２ページ分ですむ。
【００３５】
このように、時間優先モードによる書き込み動作は、従来の方法に比べるとメモリの使用効率は下がるが、書き込み処理時間の点からは効率的になる。
【００３６】
また、上述したように空ブロックＲ１及びＲ２には固有の識別子が与えられ、独立したブロックとして扱われる。このため、この識別子を介して後から内容を更新することができる。結果として、時間優先モードによるメモリの使用効率の悪化を抑制することができる。
【００３７】
更に、容量優先モードでは、メモリの使用効率を優先し、ブロックＡ３、ブロックＡ５のようにページの空き領域の先頭からブロックを作成し、ページにまたがるブロックを作成することも可能である。
【００３８】
時間優先モードと容量優先モードとを適宜選択することにより、上位装置２００は使用目的に合わせて、データをＥＥＰＲＯＭに記憶させることができる。例えば、書き込みの頻度が高いデータについては時間優先モードで書き込み処理を行い、頻度が低いデータについては容量優先モードで行うといったように、データの種別で動作モードを選択することが考えられる。また、上位装置２００の種類に応じて動作モードを選択することも考えられる。
【００３９】
以上、本発明を実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、当業者の通常の知識の範囲内でその変更や改良が可能であることは勿論である。
【００４０】
例えば、本発明が接触型ＩＣカード、非接触型ＩＣカードのどちらにも適用可能であることは、当業者には明らかである。また、読み書き可能な記憶装置として、ＥＥＰＲＯＭの代わりにフラッシュメモリを用いてもよい。
【００４１】
【発明の効果】
本発明によれば、書き込み単位開始位置から書き込みを行うブロックを作成する、即ち時間優先モードで書き込むことにより、上位装置は書き込み単位開始位置より情報を書き込むことが可能となる。この記憶される情報は書き込み効率が高いため、結果として書き込み処理を含むＩＣカードの総合処理時間を最小にすることが可能となる。現在、ＩＣカードに求められている重要課題の１つとしてＩＣカード処理時間の短縮があり、特に非接触型ＩＣカードでは更に重要であるため、本発明は有効な手段となる。
【００４２】
また、時間優先モードで書き込み処理を実行すると、空ブロックが作成されるが、空ブロックには識別子が付与されており、後からその内容を更新することができる。従って、メモリの使用効率の悪化を抑制することができる。
【００４３】
更に、書き込み効率を重要視しないでデータを書き込む場合、即ち容量優先モードで書き込むことにより、上位装置はメモリ効率を優先するブロックを作成することも選択することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るＩＣカード１００の基本構成を示したブロック図である。
【図２】一般的なＩＣカードのＥＥＰＲＯＭへの情報書き込み処理フローを示した模式図である。
【図３】ＥＥＰＲＯＭの書き込み単位を超える情報のＥＥＰＲＯＭ書き込み処理フローを示した模式図である。
【図４】ＩＣカード１００の書き込み処理を説明するためのフローチャートである。
【図５】本発明のＩＣカード１のＥＥＰＲＯＭ４内部におけるブロック配置を示した模式図である。
【図６】従来のＩＣカードのＥＥＰＲＯＭ内部における一般的なブロック配置を示した模式図である。
【符号の説明】
１  ＩＣチップ
２  揮発性メモリ（ＲＡＭ）
３  読出し専用不揮発性メモリ（ＲＯＭ）
４  読出し書込み可能不揮発性メモリ（ＥＥＰＲＯＭ）
５  演算処理部
６  インタフェース
７  書込み用揮発性メモリ
１００  ＩＣカード
２００  上位装置（端末）
【図１】
2004326706.tif 000003
【図２】
2004326706.tif 000004
【図３】
2004326706.tif 000005
【図４】
2004326706.tif 000006
【図５】
2004326706.tif 000007
【図６】
2004326706.tif 000008