JP2001306384A - 情報記憶領域の管理方法 - Google Patents

情報記憶領域の管理方法

Info

Publication number
JP2001306384A
JP2001306384A JP2000125585A JP2000125585A JP2001306384A JP 2001306384 A JP2001306384 A JP 2001306384A JP 2000125585 A JP2000125585 A JP 2000125585A JP 2000125585 A JP2000125585 A JP 2000125585A JP 2001306384 A JP2001306384 A JP 2001306384A
Authority
JP
Japan
Prior art keywords
page
data
memory
rewrites
rewriting
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.)
Pending
Application number
JP2000125585A
Other languages
English (en)
Inventor
Tanitake Hirano
平野晋健
Kenichiro Saito
斎藤賢一郎
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2000125585A priority Critical patent/JP2001306384A/ja
Publication of JP2001306384A publication Critical patent/JP2001306384A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 不揮発性メモリへの書き換え回数を均一化
し、一部領域に集中するのを避ける。 【解決手段】 メモリを数バイト毎のブロック単位(ペ
ージ単位)で管理し、ページ毎に書き換え回数を累積す
ることで各ページの書き換え回数を均一化し、動的に割
り振る仮想ページ番号と実アドレスとを関連付けるメモ
リ・アロケーション・テーブル(MAT)を揮発性メモ
リ(RAM)上に生成することで、MATを格納したメ
モリへの書き換えが集中するのを避けるようにしたもの
である。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はICカードのような
携帯可能な情報処理装置に使用される不揮発性メモリを
有するICモジュールにおける記憶装置の情報記憶領域
の管理方法に関する。
【0002】
【従来の技術】まず、ICモジュールが装填される例と
して、ICカードの機能について説明すると、図6に示
すように、リーダ/ライタ1からICカード2に対して
コマンド(命令)を送信し、これを受信したICカード
は、命令を解釈して書き込み/読み出し等の処理を実行
し、処理結果をレスポンスとしてリーダ/ライタ1へ返
すようになっている。
【0003】図7に示すように、ICカード2は、CP
U11、RAM12、ROM13、不揮発性メモリ14
を有しており、ROM12に記憶されているプログラム
をCPU11に読み込んでリーダ/ライタ1から送信さ
れる命令をI/Oポートを通して受信すると、命令とと
もに送信されたデータを読み込み、不揮発性メモリ14
内に格納されているデータを読み出して処理し、データ
更新してI/Oポートを通してリーダ/ライタ1に対し
てレスポンスを出力する。
【0004】データを格納する不揮発性メモリは、メモ
リ領域の確保と開放を繰り返し実行することで、メモリ
空き領域を再利用しており、一般的には、ファイル・ア
ロケーション・テーブル(FAT)をメモリ上に格納し
てファイルの管理を行っている。
【0005】
【発明が解決しようとする課題】ところで、不揮発性メ
モリに格納されているデータを書き換える時に新しいペ
ージが必要になった場合は、同時にFATを更新する必
要があり、FATを格納したメモリ領域の書き換えが頻
繁に行われる。例えば、特定データAを100回書き換
え、さらに別のデータBを100回書き換えた場合、F
ATは最大で200回書き換わることになり、FATを
格納しているメモリ領域に書き換えが集中してしまう。
ICカードにおいては物理的に保証されている書き換え
耐久数、例えば、10万回のような回数があるが、通常
の使用においてはそれ程頻繁には書き換えは生じないの
で問題はない。しかし、ICカードが普及して頻繁に使
われるようになると、FATを格納しているメモリ領域
に書き換えが集中するため、書き換え耐久数を超えて更
新対象のメモリ・エリアのデータが異常な値となり、デ
ータとしての価値が失われ、更新前のデータも失われる
場合が考えられる。
【0006】本発明は上記課題を解決するためのもので
あり、不揮発性メモリへの書き換え回数を均一化し、一
部領域に集中するのを避けることを目的とする。
【0007】
【課題を解決するための手段】本発明は、不揮発性メモ
リをブロック単位(ページ)で管理して各ページに少な
くとも仮想ページ番号、仮想ページの更新回数、ページ
毎のデータ書き換え累積回数回数を付加し、メモリの初
期化時に、仮想ページ番号と実アドレスとを関連付ける
メモリ・アロケーション・テーブル(MAT)を揮発性
メモリ上に生成することで、MATを格納したメモリへ
の書き換えが集中するのを避けるようにし、データ読み
出し時は、仮想ページの更新回数の最も大きい値のペー
ジを検索して最新のデータを読み出し、データ書き換え
時は、メモリ空き領域リストの中からデータ書き換え累
積回数が最も少ない未使用ページを検知してデータ書き
換えを行うことで、各ページの書き換え回数を均一化す
るようにしたことを特徴とする。
【0008】
【発明の実施の形態】以下、本発明の実施の形態につい
て説明する。
【0009】本発明は、図6、図7で説明したICカー
ド等に装填されるICモジュールに使用される不揮発性
メモリの記憶領域の管理方法であり、メモリを数バイト
毎のブロック単位(以下、ページ)で管理し、ページ毎
に書き換え回数を累積して各ページの書き換え回数を均
一化し、動的に割り振る仮想ページ番号と実アドレスと
を関連付けるメモリ・アロケーション・テーブル(MA
T)を揮発性メモリ(RAM)上に生成することで、M
ATを格納したメモリへの書き換えが集中するのを避け
るようにしたものである。
【0010】図1は不揮発性メモリにおけるページのデ
ータ構造を説明する図、図2は仮想ページ番号、メモリ
・アロケーション・テーブル(MAT)、空き領域リス
ト(FAL)、実アドレスの関係を説明する図、図3は
メモリアクセス前のMAT、FALの初期化手順を説明
する図である。図1において、各ページにはデータ本体
以外に、仮想ページ番号(vP)、仮想ページの更新回
数vPC(同じ仮想ページ番号を持つページが存在した
時、この値が大きい方を最新と判断する)、1ページ内
に収まらないデータを格納した際、続きのデータを格納
する仮想ページ番号(NvP)、このページの書き換え
累積回数(WrC)、ページ全体(ただしWrCを含ま
ない)の正当性を確認するためのブロック・チェック・
コード(BCC)が付加されている。なお、vPC、W
rCはそれぞれ更新回数、書き換え累積回数を計数する
カウンタの計数値である。そして、データを読み出す際
には、vPCの最も大きい値のページを検索して最新の
データを読み出し、データを更新する際には、WrCの
最も小さい値のページを検索して書き換え回数の最も少
ないページを用いて書き換えることにより、各ページの
書き換え回数を均一化する。
【0011】図2において、メモリアクセス(読み出し
/書き込み)開始前に、メモリ・アロケーション・テー
ブル(MAT)と空き領域リスト(FAL)をRAM上
に作成し、同様にRAM上において1ページ目から順に
1、2、3……のように仮想ページ番号vPを展開す
る。図では実メモリ7ページ分が示されており、それぞ
れデータ以外にvP、vPC、NvP、BCC、WrC
が付されている。なお、仮想ページ番号vPが「00」
の場合は初期状態(未使用領域)である。そして、仮想
ページ番号vPと実メモリのアドレスはMATで関連付
けられ、ここでは、仮想ページ番号vP1〜3がMAT
により、それぞれ先頭アドレス8100、8080、8
0C0のページに対応している。仮想ページ番号vP4
〜7は未使用領域としてFALに入っていて、FALは
WrCの小さい順にソートされている。図示の例ではv
P4、vP5が書き換え回数0、vP5〜vP7が書き
換え回数1である。このようにソートしておけばWrC
の小さいページの検索を迅速に行うことができる。
【0012】次に、図3によりメモリアクセス前のMA
T、FALをRAM上に作成する初期化について説明す
る。初期化はICカードを活性化するときに1回だけ行
われる処理である。まず、初期値アドレス(ここでは8
000h)をCurとし(ステップS1)、仮想ページ
番号vPが「00」か否かみてCurのページが初期状
態(未使用領域)か否か判断する(ステップS2)。v
Pが「00」であればそのCurのページは初期状態で
あるので空き領域リスト(FAL)に追加する(ステッ
プS3)。vPが「00」でなければ使用されていたペ
ージであるので、ブロック・チェック・コード(BC
C)を確認する(ステップS4)。BCCが異常であれ
ば空き領域リスト(FAL)に追加し、BCCが正常で
あれば、MATの更新処理を行う。すなわち、MAT
[Cur.vP](MATの中にあるページ)が初期状
態(MATの中にCurのvPが無い)か否か判断し
(ステップS5)、MATの中に既にCurと同じ仮想
番号vPのものが入っていれば、更新回数vPCを比較
してどちらが新しいか否かを判断する(ステップS
6)。MAT[Cur.vP](すでにMATの中にあ
ったページ)の更新回数が小さいと、このページのデー
タは古いと判断してMAT[Cur.vP]のページを
FALに追加する(ステップS7)。MAT[Cur.
vP]の更新回数の方が大きいか同じであれば、Cur
のページの方が古いのでFALに追加する。そして、ス
テップS5においてMAT[Cur.vP]が初期状
態、あるいはステップS7においてすでにMATの中に
あったページをFALに追加したときは、Curのペー
ジをMAT[Cur.vP]に追加し(ステップS
8)、次いで、Curのアドレスにページサイズ分を追
加したアドレスをCurとする更新処理を行う(ステッ
プS9)。そして、Curが最終ページに達しているか
否か判断し(ステップS10)、最終ページに達してい
なければステップS2に戻って同様の処理を繰り返し、
Curが最終ページに達していれば処理は終了する。こ
うして、全ページについてMAT、FALによりvPと
対応付けが行われる。
【0013】次に、データの読み出し/書き込み処理に
ついて説明する。 〔データの読み出し〕 (1)仮想ページ番号とページ先頭からのオフセット値
を指定する。 (2)MATを参照し、実際のアドレスのベースアドレ
スを取得し、このベースアドレス値にオフセット値を加
算することで実アドレスを算出して指定した仮想ページ
番号に対応するページのデータを読みだす。 〔データの書き込み〕 FALを参照し、WrCによりその中で書き込み回数
の最も少ない空きページを検知する。 検知した空きページの仮想ページ番号を指定した仮想
ページ番号(元の仮想ページ番号)に変更し、続きのデ
ータを格納した仮想ページ番号も変更する。そして、元
の仮想ページ番号を参照して、更新回数vPCに1を加
算して新しいページ(検索した空きページ)に記録し、
新しいページ自身の書き換え累積回数WrCに1を加え
て記録し、最後にBCCを更新してメモリに書き込む。 上記の書き込みが成功した時点で、当該仮想ページ
番号のMAT情報を新しいページの情報で更新する。 古いページを書き換え累積回数に応じてFALに登録
する。 上記のステップで検索した空きページ(pA)の書
き換え累積回数が、ある一定の値に達していた場合、使
用中領域のうち、書き換え回数がより少ないページ(p
B)を探しだし、pBの内容をpAにコピーする。この
とき、pA書き換え累積回数と更新回数に1を加算す
る。pBは空きページとして上記のステップで利用さ
れる。
【0014】次に図4、図5によりデータの書き換えの
例について説明する。図4は図2を初期状態として、上
記〔データの書き込み〕の手順に沿って、vP2だけ書
き換えた状態を示し、図5は続いて図4からvP1を書
き換えた状態を示している。図2ではvP2はアドレス
8080のページに対応し、このデータを書き換える場
合、上記〔データの書き込み〕のステップにより、書
き込み回数の最も少ない仮想ページ番号vP4(アドレ
ス81C0)の空きページを検知する。次いで、ステッ
プにより仮想ページ番号「00」を「02」に変更
し、vPCに1を加算して「01」とし、NvPを「F
F」から「03」に変更し、累積回数WrC「000
0」を「0001」とし、BCCを更新して書き込む。
次いで、ステップによりvP2のアドレスを81C0
とし、vP4〜vP7をWrCの小さい順にソートして
FALに登録し、図4の状態となる。
【0015】続いてvP1を書き換えた図5を参照する
と、上記ステップにより、書き込み回数の最も少ない
仮想ページ番号vP4(アドレス8180)の空きペー
ジを検知する。次いで、ステップにより仮想ページ番
号「00」を「01」に変更し、元のvPCに1を加算
して「02」とし、NvP「FF」は変更せず、累積回
数WrC「0000」を「0001」とし、BCCを更
新して書き込む。次いで、ステップによりvP1のア
ドレスを8180とし、vP4〜vP7をWrCの小さ
い順にソートしてFALに登録して図5の状態となる。
【0016】
【発明の効果】以上のように本発明によれば、メモリア
クセス前にMATとFALをRAM上に作成するため、
MAT、FAL更新のためのメモリ書き換えが発生せ
ず、書き込み累積回数が少ない順に書き込むため、書き
込み回数をページ毎に均一化することができる。
【図面の簡単な説明】
【図1】 不揮発性メモリにおけるページのデータ構造
を説明する図である。
【図2】 仮想ページ番号、MAT、FAL、実アドレ
スの関係を説明する図である。
【図3】 MAT、FALの初期化手順を説明する図で
ある。
【図4】 図2の状況から仮想ページ番号vP2を更新
した後の状態を示す図である。
【図5】 図4の状況から仮想ページ番号vP1を更新
した後の状態を示す図である。
【図6】 リーダ/ライタとICカードの通信を説明す
る図である。
【図7】 ICカードの構成を説明する図である。
【符号の説明】
1…リーダ/ライタ、2…ICカード、11…CPU、
12…RAM、13…ROM、14…不揮発性メモリ、
MAT…メモリ・アロケーション・テーブル、FAL…
空き領域リスト。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B025 AD01 AD04 AD05 AE01 AE08 5B060 AA06 AA09 AA14 CA11 MM02 5B082 CA01 CA08 EA01 JA08 5L106 AA10 CC37

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 不揮発性メモリをブロック単位(ペー
    ジ)で管理して各ページに少なくとも仮想ページ番号、
    仮想ページの更新回数、ページ毎のデータ書き換え累積
    回数を付加し、メモリの初期化時に、仮想ページ番号と
    実アドレスとを関連付けるメモリ・アロケーション・テ
    ーブル、データ書き換え累積回数が少ない順にソートし
    たメモリ空き領域リストを揮発性メモリ上に生成するよ
    うにしたことを特徴とする情報記憶領域の管理方法。
  2. 【請求項2】 データ読み出し時は、仮想ページの更新
    回数の最も大きい値のページを検索して最新のデータを
    読み出し、データ書き換え時は、メモリ空き領域リスト
    の中からデータ書き換え累積回数が最も少ない未使用ペ
    ージを検知してデータ書き換えを行うことを特徴とする
    請求項1記載の情報記憶領域の管理方法。
  3. 【請求項3】 さらに各ページにブロック・チェック・
    コードが付加され、ブロック・チェック・コードが正常
    のときメモリへのデータ書き換えを行うことを特徴とす
    る請求項2記載の情報記憶領域の管理方法。
  4. 【請求項4】 データ書き換えを行った時、メモリ・ア
    ロケーション・テーブルの仮想ページの情報を更新する
    ことを特徴とする請求項1記載の情報記憶領域の管理方
    法。
  5. 【請求項5】 メモリ空き領域リストの中から検知され
    たデータ書き換え累積回数が最も少ない未使用ページの
    書き換え累積回数が所定値に達しているとき、メモリ使
    用領域のうち、書き換え累積回数が前記所定値より少な
    い使用ページを検索し、前記使用ページの内容を前記未
    使用ページにコピーし、前記使用ページを未使用ページ
    としてデータ書き換えに利用することを特徴とする請求
    項2記載の情報記憶領域の管理方法。
JP2000125585A 2000-04-26 2000-04-26 情報記憶領域の管理方法 Pending JP2001306384A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000125585A JP2001306384A (ja) 2000-04-26 2000-04-26 情報記憶領域の管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000125585A JP2001306384A (ja) 2000-04-26 2000-04-26 情報記憶領域の管理方法

Publications (1)

Publication Number Publication Date
JP2001306384A true JP2001306384A (ja) 2001-11-02

Family

ID=18635513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000125585A Pending JP2001306384A (ja) 2000-04-26 2000-04-26 情報記憶領域の管理方法

Country Status (1)

Country Link
JP (1) JP2001306384A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100390817C (zh) * 2003-06-10 2008-05-28 大唐微电子技术有限公司 动态逻辑分区并控制访问权限的ic智能卡及其实现方法
US7451266B2 (en) 2003-04-10 2008-11-11 Renesas Technology Corp. Nonvolatile memory wear leveling by data replacement processing

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451266B2 (en) 2003-04-10 2008-11-11 Renesas Technology Corp. Nonvolatile memory wear leveling by data replacement processing
CN100390817C (zh) * 2003-06-10 2008-05-28 大唐微电子技术有限公司 动态逻辑分区并控制访问权限的ic智能卡及其实现方法

Similar Documents

Publication Publication Date Title
US7009896B2 (en) Apparatus and method for managing bad blocks in a flash memory
KR100380955B1 (ko) 파일 시스템, 데이터 관리 방법 및 기록 매체
US8954649B2 (en) Garbage collection in storage devices based on flash memories
US8667213B2 (en) Flash management techniques
US11782632B2 (en) Selective erasure of data in a SSD
JP5367159B2 (ja) Biosイメージマネージャ
KR100849446B1 (ko) 기억 장치, 메모리 관리 장치, 메모리 관리 방법, 및 컴퓨터-판독가능한 기록 매체
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
JPH07191892A (ja) フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム
WO2006107095A1 (ja) 計算機システム、メモリ管理方法、およびそのプログラム
JPH08195093A (ja) 不揮発性メモリのファイル管理装置
EP0439920A2 (en) System and method for memory management in a microcomputer
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
KR20030036133A (ko) 고속 데이터 액세스를 유지하면서 ram 크기를감소시키는 방법 및 장치
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
US7167964B1 (en) Memory defragmentation in chipcards
JP2001306384A (ja) 情報記憶領域の管理方法
EP2267725A1 (en) Memory device for managing the recovery of a non volatile memory
JP2000030375A (ja) データ処理システム、アクセス装置及び記録媒体
JPH0778485A (ja) 不揮発性半導体記憶装置とデータ書換/読出方法
JP2001084180A (ja) ファイル管理装置
JP2828354B2 (ja) データベース管理装置
JP4423849B2 (ja) データ保護システム、データ保護プログラム及びデータ保護方法
JP3978720B2 (ja) データ記憶方法
US11150940B2 (en) System and method for recording transaction associated with a page-oriented non-volatile memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091027

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091120