[go: up one dir, main page]

JP3524428B2 - 記憶装置、記憶システム、メモリ管理方法及び記録媒体 - Google Patents

記憶装置、記憶システム、メモリ管理方法及び記録媒体

Info

Publication number
JP3524428B2
JP3524428B2 JP11222299A JP11222299A JP3524428B2 JP 3524428 B2 JP3524428 B2 JP 3524428B2 JP 11222299 A JP11222299 A JP 11222299A JP 11222299 A JP11222299 A JP 11222299A JP 3524428 B2 JP3524428 B2 JP 3524428B2
Authority
JP
Japan
Prior art keywords
data
block
address
empty
memory
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.)
Expired - Fee Related
Application number
JP11222299A
Other languages
English (en)
Other versions
JP2000305839A (ja
Inventor
強 高橋
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.)
Tokyo Electron Device Ltd
Original Assignee
Tokyo Electron Device 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 Tokyo Electron Device Ltd filed Critical Tokyo Electron Device Ltd
Priority to JP11222299A priority Critical patent/JP3524428B2/ja
Priority to US09/551,722 priority patent/US6477616B1/en
Publication of JP2000305839A publication Critical patent/JP2000305839A/ja
Application granted granted Critical
Publication of JP3524428B2 publication Critical patent/JP3524428B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、記録媒体を用いた
データ処理システム及び記録媒体へのアクセスを行うた
めのプログラムを記憶したコンピュータ読み取り可能な
プログラム記録媒体に関する。
【0002】
【従来の技術】コンピュータ等によりアクセス(データ
の読み書き及び消去)可能な記録媒体として、EEPR
OM(Electrically Erasable/Programable Read Only
Memory)フラッシュメモリが用いられている。フラッシ
ュメモリは、データの消去が所定の記憶容量の単位(一
般に「ブロック」と呼ばれる)で行われる。
【0003】フラッシュメモリのうち、特にNAND型
のものは、データの記憶が正常に行えない不良ブロック
の発生を製造段階で十分に防止することが困難である。
このため、従来より、各ブロックに割り当てられる物理
アドレスとは別個の連続した論理アドレスを正常なブロ
ックに動的に割り当て、論理アドレスとの対応関係を表
すアドレス変換テーブルを作成する等して、アドレスが
不連続となることによる外部からのアクセス手順の複雑
化を回避している。
【0004】ただ、ブロックに割り当てられた全ての論
理アドレスと物理アドレスとの対応関係を表すアドレス
変換テーブルを作成した場合、フラッシュメモリの記憶
容量が大きくなるほど、アドレス変換テーブルが含むデ
ータの量も大きくなる。このため、アドレス変換テーブ
ルを記憶するための記憶装置もより記憶容量が大きいも
のとしなければならなくなり、装置の構成が複雑とな
る。
【0005】そこで、従来より、各ブロックを複数のゾ
ーンに分類し、アドレス変換テーブルは、これらのゾー
ンのうちの一つに属するブロックについて、論理アドレ
ス及び物理アドレスの対応関係を表すようにする、とい
う手法が用いられていた。この場合、他のゾーンに属す
るブロックへのアクセスの要求があったときは、そのゾ
ーンに属するブロックの論理アドレス及び物理アドレス
の対応関係を表すようにアドレス変換テーブルを作成し
直す、という手法が用いられていた。
【0006】
【発明が解決しようとする課題】しかし、アドレス変換
テーブルを作成し直す処理には、一つのゾーンに属する
ブロック全体を検索する処理が含まれるので、処理時間
が増大する。また、一般に、OS(Operating System)
の制御の下にフラッシュメモリの記憶内容を管理する場
合には、OSが管理する各データとこれらデータが記憶
されている論理アドレスとの対応関係を示すFAT(Fi
le Allocation Table)等がフラッシュメモリに書き込
まれる。このため、FAT等にアクセスするためのアド
レス変換テーブルの作成の処理が発生する頻度が更に増
大する。
【0007】この発明は上記実状に鑑みてなされたもの
で、データにアクセスする際にアドレス変換テーブルを
作成する頻度が少ない記憶装置、記憶システム、メモリ
管理方法を提供することを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明の第1の観点にかかる記憶装置は、各々が複
数のゾーンのいずれかに属し、物理アドレスを割り当て
られた、データを記憶するための複数のメモリブロック
を含む記憶手段と、前記メモリブロックに記憶されてい
る前記データを読み出して外部に出力する読み出し手段
と、を備え、所定の前記ゾーンに属する前記メモリブロ
ックは、前記記憶手段に記憶されているデータと該デー
タが記憶されているメモリブロックの論理アドレスとの
対応関係を表すデータ配置テーブルを記憶するデータ配
置記憶手段を備え、前記読み出し手段は、前記論理アド
レスと、前記データ配置テーブルを記憶する前記メモリ
ブロックの物理アドレスとの対応関係を表す情報を格納
する第1のアドレス変換テーブルを作成して記憶する第
1のテーブル記憶手段と、外部からの指示に応答し、前
記第1のアドレス変換テーブルに基づいて、前記データ
配置テーブルを記憶するメモリブロックの物理アドレス
を特定し、特定した物理アドレスが示す前記メモリブロ
ックより前記データ配置テーブルを読み出し、外部に供
給するデータ配置テーブル検索手段と、読み出し対象の
前記データを示す論理アドレスを外部より取得し、取得
した前記論理アドレスに基づいて、該論理アドレスが示
すメモリブロックが属するゾーンを特定するゾーン特定
手段と、前記論理アドレスと、前記ゾーン特定手段が特
定したゾーンに属する前記メモリブロックの物理アドレ
スとの対応関係を表す情報を格納する第2のアドレス変
換テーブルを自己が記憶しているか否かを判別し、記憶
していないと判別したとき、前記第2のアドレス変換テ
ーブルを作成して記憶する第2のテーブル記憶手段と、
前記第2のアドレス変換テーブルに基づいて、読み出し
対象の前記データの論理アドレスが示す物理アドレスを
特定し、特定した物理アドレスが示す前記メモリブロッ
クに格納されている前記データを読み出して出力するデ
ータ検索手段と、前記データ検索手段が特定した物理ア
ドレス及び該物理アドレスを示す論理アドレスを互いに
対応づけて記憶するアクセス履歴記憶手段と、を備え、
前記データ検索手段は、前記アクセス履歴記憶手段が記
憶する論理アドレス及び物理アドレスに基づいて、前記
データ配置テーブル検索手段が特定した論理アドレスが
示す物理アドレスを特定する手段を備える、ことを特徴
とする。
【0009】このような記憶装置によれば、データ配置
テーブルが格納されたブロックの論理アドレスを表す第
1のアドレス変換テーブルは、ゾーン特定手段が特定し
たゾーンの如何に関わらず記憶され続ける。このため、
既に記憶されているアドレス変換テーブルが、データ配
置テーブルへのアクセスのために書き換えられるという
事態は発生しない。このため、データにアクセスする処
理の遅延が防止される。
【0010】また、データ配置テーブル以外のデータに
アクセスする場合であっても、アクセス履歴記憶手段が
記憶する論理アドレス及び物理アドレスが示すブロック
に記憶されたデータへのアクセスであれば、第2のアド
レス変換テーブルの作成が行われる必要はなくなる。従
って、データにアクセスする処理は更に効率的となる。
【0011】前記記憶装置は、例えば、データを記憶し
ていない前記メモリブロックから構成される空きブロッ
クを示す情報を格納する空きブロックテーブルを記憶す
る空きブロックテーブル記憶手段と、書き込み対象のデ
ータ及び論理アドレスが自己に供給されたとき、前記空
きブロックテーブルに登録されている空きブロックの中
から書き込み対象の空きブロックを選択する空きブロッ
ク選択手段と、書き込み対象の前記データを前記空きブ
ロック選択手段により選択された空きブロックに書き込
む空きブロック書込手段と、書き込み対象の前記データ
を書き込んだ空きブロックの物理アドレスと、前記空き
ブロック選択手段に供給された論理アドレスとの対応付
けを表すように前記第2のアドレス変換テーブルを更新
する手段と、を備える、ことにより、データの書き込み
を行うものであってもよい。
【0012】また、本発明の第2の観点にかかる記憶装
置は、各々が複数のゾーンのいずれかに属し、物理アド
レスを割り当てられた、データを記憶するための複数の
メモリブロックを含む記憶手段と、前記メモリブロック
に記憶されている前記データを読み出して外部に出力す
る読み出し手段と、を備え、所定の前記ゾーンに属する
前記メモリブロックは、前記記憶手段に記憶されている
データと該データが記憶されているメモリブロックの論
理アドレスとの対応関係を表すデータ配置テーブルを記
憶するデータ配置記憶手段を備え、前記読み出し手段
は、前記論理アドレスと、前記データ配置テーブルを記
憶する前記メモリブロックの物理アドレスとの対応関係
を表す情報を格納する第1のアドレス変換テーブルを作
成して記憶する第1のテーブル記憶手段と、外部からの
指示に応答し、前記第1のアドレス変換テーブルに基づ
いて、前記データ配置テーブルを記憶するメモリブロッ
クの物理アドレスを特定し、特定した物理アドレスが示
す前記メモリブロックより前記データ配置テーブルを読
み出し、外部に供給するデータ配置テーブル検索手段
と、読み出し対象の前記データを示す論理アドレスを外
部より取得し、取得した前記論理アドレスに基づいて、
該論理アドレスが示すメモリブロックが属するゾーンを
特定するゾーン特定手段と、前記論理アドレスと、前記
ゾーン特定手段が特定したゾーンに属する前記メモリブ
ロックの物理アドレスとの対応関係を表す情報を格納す
る第2のアドレス変換テーブルを自己が記憶しているか
否かを判別し、記憶していないと判別したとき、前記第
2のアドレス変換テーブルを作成して記憶する第2のテ
ーブル記憶手段と、前記第2のアドレス変換テーブルに
基づいて、読み出し対象の前記データの論理アドレスが
示す物理アドレスを特定し、特定した物理アドレスが示
す前記メモリブロックに格納されている前記データを読
み出して出力するデータ検索手段と、を備える、ことを
特徴とする記憶装置であって、データを記憶していない
前記メモリブロックから構成される空きブロックを示す
情報を格納する空きブロックテーブルを記憶する空きブ
ロックテーブル記憶手段と、書き込み対象のデータ及び
論理アドレスが自己に供給されたとき、前記空きブロッ
クテーブルに登録されている空きブロックの中から書き
込み対象の空きブロックを選択する空きブロック選択手
段と、書き込み対象の前記データを前記空きブロック選
択手段により選択された空きブロックに書き込む空きブ
ロック書込手段と、書き込み対象の前記データを書き込
んだ空きブロックの物理アドレスと、前記空きブロック
選択手段に供給された論理アドレスとの対応付けを表す
ように前記第2のアドレス変換テーブルを更新する手段
と、をさらに備え、前記空きブロックテーブルは、前記
データ配置テーブルを記憶する前記メモリブロックを含
むゾーンに属する空きブロックを示す情報を格納する第
1の空きブロックテーブルと、いずれかのゾーンに属す
る空きブロックを示す情報を格納する第2の空きブロッ
クテーブルと、を含み、前記空きブロックテーブル記憶
手段は、前記ゾーン特定手段が特定したゾーンに属する
空きブロック情報を格納する前記第2の空きブロックテ
ーブルを自己が記憶しているか否かを判別し、記憶して
いないと判別したとき、前記第2の空きブロックテーブ
ルを作成して記憶する手段を備え、前記空きブロック選
択手段は、書き込み対象のデータ及び論理アドレスが自
己に供給されたとき、前記第2の空きブロックテーブル
に登録されている空きブロックのうちから書き込み対象
の空きブロックを選択する手段を備え、前記空きブロッ
ク書込手段が書き込んだ前記データと、前記空きブロッ
ク選択手段に供給された論理アドレスとの対応付けを表
すように更新された前記データ配置テーブルを、前記第
1の空きブロックテーブルに登録されている空きブロッ
クに書き込む手段と、更新された前記データ配置テーブ
ルを記憶している前記メモリブロックが空きブロックで
あることを表さないように前記第1の空きブロックテー
ブルを更新する手段と、を備える、ことを特徴とする。
このような記憶装置によっても、データ配置テーブルが
格納されたブロックの論理アドレスを表す第1のアドレ
ス変換テーブルは、ゾーン特定手段が特定したゾーンの
如何に関わらず記憶され続ける。このため、既に記憶さ
れているアドレス変換テーブルが、データ配置テーブル
へのアクセスのために書き換えられるという事態は発生
しない。このため、データにアクセスする処理の遅延が
防止される。また、データ配置テーブルを更新する際、
データ配置テーブルを記憶するメモリブロックに変更が
生じる場合も、ゾーン特定手段が特定したゾーンの如何
に関わらず記憶されている第1の空きブロックテーブル
を用いて新たなメモリブロックの割り当てが行われる。
一方、データをメモリブロックに書き込む場合は、ゾー
ン特定手段が特定したゾーン内の空きブロックを示する
第2の空きブロックテーブルを用いて新たなメモリブロ
ックの割り当てが行われる。従って、空きブロックテー
ブル記憶手段の記憶容量が少ない場合であっても、デー
タの書き込みやデータ配置テーブルの更新の処理が効率
的に行われる。なお、前記データ検索手段が特定した物
理アドレス及び該物理アドレスを示す論理アドレスを互
いに対応づけて記憶するアクセス履歴記憶手段を備えて
もよく、前記データ検索手段は、前記アクセス履歴記憶
手段が記憶する論理アドレス及び物理アドレスに基づい
て、前記データ配置テーブル検索手段が特定した論理ア
ドレスが示す物理アドレスを特定する手段を備えてもよ
い。
【0013】前記空きブロックテーブルは、例えば、前
記空きブロックに循環的に付された順序を示す情報を含
むものであってもよく、最も新しくデータが格納された
空きブロックの次にデータを格納されるべき空きブロッ
クを指定する起点情報を記憶する手段を備えてもよい。
この場合、前記空きブロック選択手段は、書き込み対象
のデータ及び論理アドレスが自己に供給されたとき、前
記起点情報が示す空きブロック以降の空きブロックを、
前記空きブロックテーブルが示す順序に従って順次選択
する手段を備えるものとすれば、空きブロックへの書き
込みは循環的(サイクリック)になされるので、特定の
メモリブロックへの書き込みの集中が回避される。この
ため、メモリブロックが書き込み回数の増大により劣化
するようなものであるような場合には、特定のメモリブ
ロックが集中的に劣化する事態が防止される。
【0014】前記起点情報は、例えば、最も新しくデー
タが格納された空きブロックの次にデータを格納される
べき前記空きブロックの一部に記憶されていてもよい。
この場合、前記空きブロック書込手段は、書き込み対象
の前記データを書き込んだ前記空きブロックに記憶され
ている前記起点情報を消去する手段と、最も新しくデー
タを書き込んだ空きブロックの次の順序が付されている
空きブロックの前記一部に前記起点情報を書き込む手段
と、を備えることにより、起点情報の移動を行うように
すればよい。
【0015】前記メモリブロックは、例えば、データ領
域と冗長領域から構成されてもよい。この場合、前記起
点情報は、最も新しくデータが格納された空きブロック
の次にデータを格納されるべき前記空きブロックの前記
冗長領域に格納されているものとすればよい。
【0016】また、この発明の第の観点に係る記憶シ
ステムは、各々が複数のゾーンのいずれかに属し、物理
アドレスを割り当てられた、データを記憶するための複
数のメモリブロックを含む記憶手段と、前記メモリブロ
ックに記憶されている前記データを読み出して外部に出
力する読み出し手段と、を備え、所定の前記ゾーンに属
する前記メモリブロックは、前記記憶手段に記憶されて
いるデータと該データが記憶されているメモリブロック
の論理アドレスとの対応関係を表すデータ配置テーブル
を記憶するデータ配置記憶手段を備え、前記読み出し手
段は、前記論理アドレスと、前記データ配置テーブルを
記憶する前記メモリブロックの物理アドレスとの対応関
係を表す情報を格納する第1のアドレス変換テーブルを
作成して記憶する第1のテーブル記憶手段と、前記第1
のアドレス変換テーブルに基づいて、前記データ配置テ
ーブルを記憶するメモリブロックの物理アドレスを特定
し、特定した物理アドレスが示す前記メモリブロックよ
り前記データ配置テーブルを読み出すデータ配置テーブ
ル検索手段と、前記データ配置テーブル検索手段が読み
出した前記データ配置テーブルに基づいて、読み出し対
象の前記データを示す論理アドレスを特定する論理アド
レス検索手段と、前記論理アドレス検索手段が特定した
前記論理アドレスに基づいて、該論理アドレスが示すメ
モリブロックが属するゾーンを特定するゾーン特定手段
と、前記論理アドレスと、前記ゾーン特定手段が特定し
たゾーンに属する前記メモリブロックの物理アドレスと
の対応関係を表す情報を格納する第2のアドレス変換テ
ーブルを自己が記憶しているか否かを判別し、記憶して
いないと判別したとき、前記第2のアドレス変換テーブ
ルを作成して記憶する第2のテーブル記憶手段と、前記
第2のアドレス変換テーブルに基づいて、前記論理アド
レス検索手段が特定した論理アドレスが示す物理アドレ
スを特定し、特定した物理アドレスが示す前記メモリブ
ロックに格納されている前記データを読み出して出力す
るデータ検索手段と、前記データ検索手段が特定した物
理アドレス及び該物理アドレスを示す論理アドレスを互
いに対応づけて記憶するアクセス履歴記憶手段と、を備
え、前記データ検索手段は、前記アクセス履歴記憶手段
が記憶する論理アドレス及び物理アドレスに基づいて、
前記データ配置テーブル検索手段が特定した論理アドレ
スが示す物理アドレスを特定する手段を備える、ことを
特徴とする。
【0017】このような記憶システムによれば、データ
配置テーブルが格納されたブロックの論理アドレスを表
す第1のアドレス変換テーブルは、ゾーン特定手段が特
定したゾーンの如何に関わらず記憶され続ける。このた
め、既に記憶されているアドレス変換テーブルが、デー
タ配置テーブルへのアクセスのために書き換えられると
いう事態は発生しない。このため、データにアクセスす
る処理の遅延が防止される。また、データ配置テーブル
以外のデータにアクセスする場合であっても、アクセス
履歴記憶手段が記憶する論理アドレス及び物理アドレス
が示すブロックに記憶されたデータへのアクセスであれ
ば、第2のアドレス変換テーブルの作成が行われる必要
はなくなる。従って、データにアクセスする処理は更に
効率的となる。また、この発明の第4の観点に係る記憶
システムは、各々が複数のゾーンのいずれかに属し、物
理アドレスを割り当てられた、データを記憶するための
複数のメモリブロックを含む記憶手段と、前記メモリブ
ロックに記憶されている前記データを読み出して外部に
出力する読み出し手段と、を備え、所定の前記ゾーンに
属する前記メモリブロックは、前記記憶手段に記憶され
ているデータと該データが記憶されているメモリブロッ
クの論理アドレスとの対応関係を表すデータ配置テーブ
ルを記憶するデータ配置記憶手段を備え、前記読み出し
手段は、前記論理アドレスと、前記データ配置テーブル
を記憶する前記メモリブロックの物理アドレスとの対応
関係を表す情報を格納する第1のアドレス変換テーブル
を作成して記憶する第1のテーブル記憶手段と、前記第
1のアドレス変換テーブルに基づいて、前記データ配置
テーブルを記憶するメモリブロックの物理アドレスを特
定し、特定した物理アドレスが示す前記メモリブロック
より前記データ配置テーブルを読み出すデータ配置テー
ブル検索手段と、前記データ配置テーブル検索手段が読
み出した前記データ配置テーブルに基づいて、読み出し
対象の前記データを示す論理アドレスを特定する論理ア
ドレス検索手段と、前記論理アドレス検索手段が特定し
た前記論理アドレスに基づいて、該論理アドレスが示す
メモリブロックが属するゾーンを特定するゾーン特定手
段と、前記論理アドレスと、前記ゾーン特定手段が特定
したゾーンに属する前記メモリブロックの物理アドレス
との対応関係を表す情報を格納する第2のアドレス変換
テーブルを自己が記憶しているか否かを判別し、記憶し
ていないと判別したとき、前記第2のアドレス変換テー
ブルを作成して記憶する第2のテーブル記憶手段と、前
記第2のアドレス変換テーブルに基づいて、前記論理ア
ドレス検索手段が特定した論理アドレスが示す物理アド
レスを特定し、特定した物理アドレスが示す前記メモリ
ブロックに格納されている前記データを読み出して出力
するデータ検索手段と、を備える、ことを特徴とする記
憶システムであって、データを記憶していない前記メモ
リブロックから構成される空きブロックを示す情報を格
納する空きブロックテーブルを記憶する空きブロックテ
ーブル記憶手段と、書き込み対象のデータ及び論理アド
レスが自己に供給されたとき、前記空きブロックテーブ
ルに登録されている空きブロックの中から書き込み対象
の空きブロックを選択する空きブロック選択手段と、書
き込み対象の前記データを前記空きブロック選択手段に
より選択された空きブロックに書き込む空きブロック書
込手段と、書き込み対象の前記データを書き込んだ空き
ブロックの物理アドレスと、前記空きブロック選択手段
に供給された論理アドレスとの対応付けを表すように前
記第2のアドレス変換テーブルを更新する手段と、をさ
らに備え、前記空きブロックテーブルは、前記データ配
置テーブルを記憶する前記メモリブロックを含むゾーン
に属する空きブロックを示す情報を格納する第1の空き
ブロックテーブルと、いずれかのゾーンに属する空きブ
ロックを示す情報を格納する第2の空きブロックテー
ルと、を含み、前記空きブロックテーブル記憶手段は、
前記ゾーン特定手段が特定したゾーンに属する空きブロ
ック情報を格納する前記第2の空きブロックテーブルを
自己が記憶しているか否かを判別し、記憶していないと
判別したとき、前記第2の空きブロックテーブルを作成
して記憶する手段を備え、前記空きブロック選択手段
は、書き込み対象のデータ及び論理アドレスが自己に供
給されたとき、前記第2の空きブロックテーブルに登録
されている空きブロックのうちから書き込み対象の空き
ブロックを選択する手段を備え、前記空きブロック書込
手段が書き込んだ前記データと、前記空きブロック選択
手段に供給された論理アドレスとの対応付けを表すよう
に更新された前記データ配置テーブルを、前記第1の空
きブロックテーブルに登録されている空きブロックに書
き込む手段と、更新された前記データ配置テーブルを記
憶している前記メモリブロックが空きブロックであるこ
とを表さないように前記第1の空きブロックテーブルを
更新する手段と、をさらに備える、ことを特徴とする。
【0018】また、この発明の第の観点に係るメモリ
管理方法は、メモリからのデータの読み出しを管理する
メモリ管理方法であり、前記メモリは、各々が複数のゾ
ーンのいずれかに属し、物理アドレスを割り当てられ
た、前記データを記憶するための複数のメモリブロック
を含み、所定の前記ゾーンに属する前記メモリブロック
が、前記データと前記データが記憶されているメモリブ
ロックの論理アドレスとの対応関係を表すデータ配置テ
ーブルを記憶するものであって、前記論理アドレスと、
前記データ配置テーブルを記憶する前記メモリブロック
の物理アドレスとの対応関係を表す情報を格納する第1
のアドレス変換テーブルを作成して記憶する第1のテー
ブル記憶ステップと、外部からの指示に応答し、前記第
1のアドレス変換テーブルに基づいて、前記データ配置
テーブルを記憶するメモリブロックの物理アドレスを特
定し、特定した物理アドレスが示す前記メモリブロック
より前記データ配置テーブルを読み出し、外部に供給す
るデータ配置テーブル検索ステップと、読み出し対象の
前記データを示す論理アドレスを外部より取得し、取得
した前記論理アドレスに基づいて、該論理アドレスが示
すメモリブロックが属するゾーンを特定するゾーン特定
ステップと、前記論理アドレスと、前記ゾーン特定ステ
ップで特定されたゾーンに属する前記メモリブロックの
物理アドレスとの対応関係を表す情報を格納する第2の
アドレス変換テーブルを自己が記憶しているか否かを判
別し、記憶していないと判別したとき、前記第2のアド
レス変換テーブルを作成して記憶する第2のテーブル記
憶ステップと、前記第2のアドレス変換テーブルに基づ
いて、読み出し対象の前記データの論理アドレスが示す
物理アドレスを特定し、特定した物理アドレスが示す前
記メモリブロックに格納されている前記データを読み出
して出力するデータ検索ステップと、前記データ検索ス
テップで特定された物理アドレス及び該物理アドレスを
示す論理アドレスを互いに対応づけて記憶するアクセス
履歴記憶ステップと、備え、前記データ検索ステップ
は、前記アクセス履歴記憶ステップで記憶された論理ア
ドレス及び物理アドレスに基づいて、前記データ配置テ
ーブル検索ステップで特定された論理アドレスが示す物
理アドレスを特定するステップを含む、ことを特徴とす
る。
【0019】このようなメモリ管理方法によれば、デー
タ配置テーブルが格納されたブロックの論理アドレスを
表す第1のアドレス変換テーブルは、ゾーン特定ステッ
プで特定されたゾーンの如何に関わらず記憶され続け
る。このため、既に記憶されているアドレス変換テーブ
ルが、データ配置テーブルへのアクセスのために書き換
えられるという事態は発生しない。このため、データに
アクセスする処理の遅延が防止される。また、データ配
置テーブル以外のデータにアクセスする場合であって
も、アクセス履歴記憶手段が記憶する論理アドレス及び
物理アドレスが示すブロックに記憶されたデータへのア
クセスであれば、第2のアドレス変換テーブルの作成が
行われる必要はなくなる。従って、データにアクセスす
る処理は更に効率的となる。また、この発明の第6の観
点に係るメモリ管理方法は、メモリからのデータの読み
出しを管理するメモリ管理方法であり、前記メモリは、
各々が複数のゾーンのいずれかに属し、物理アドレスを
割り当てられた、前記データを記憶するための複数のメ
モリブロックを含み、所定の前記ゾーンに属する前記メ
モリブロックが、前記データと前記データが記憶されて
いるメモリブロックの論理アドレスとの対応関係を表す
データ配置テーブルを記憶するものであって、前記論理
アドレスと、前記データ配置テーブルを記憶する前記メ
モリブロックの物理アドレスとの対応関係を表す情報を
格納する第1のアドレス変換テーブルを作成して記憶す
る第1のテーブル記憶ステップと、外部からの指示に応
答し、前記第1のアドレス変換テーブルに基づいて、前
記データ配置テーブルを記憶するメモリブロックの物理
アドレスを特定し、特定した物理アドレスが示す前記メ
モリブロックより前記データ配置テーブルを読み出し、
外部に供給するデータ配置テーブル検索ステップと、読
み出し対象の前記データを示す論理アドレスを外部より
取得し、取得した前記論理アドレスに基づいて、該論理
アドレスが示すメモリブロックが属するゾーンを特定す
るゾーン特定ステップと、前記論理アドレスと、前記ゾ
ーン特定ステップで特定されたゾーンに属する前記メモ
リブロックの物理アドレスとの対応関係を表す情報を格
納する第2のアドレス変換テーブルを記憶しているか否
かを判別し、記憶していないと判別したとき、前記第2
のアドレス変換テーブルを作成して記憶する第2のテー
ブル記憶ステップと、前記第2のアドレス変換テーブル
に基づいて、読み出し対象の前記データの論理アドレス
が示す物理アドレスを特定し、特定した物理アドレスが
示す前記メモリブロックに格納されている前記データを
読み出して出力するデータ検索ステップと、を備える、
ことを特徴とするメモリ管理方法であって、データを記
憶していない前記メモリブロックから構成される空きブ
ロックを示す情報を格納する空きブロックテーブルを記
憶する空きブロックテーブル記憶ステップと、書き込み
対象のデータ及び論理アドレスが供給されたとき、前記
空きブロックテーブルに登録されている空きブロックの
中から書き込み対象の空きブロックを選択する空きブロ
ック選択ステップと、書き込み対象の前記データを前記
空きブロック選択ステップで選択された空きブロックに
書き込む空きブロック書込ステップと、書き込み対象の
前記データを書き込んだ空きブロックの物理アドレス
と、前記空きブロック選択手段に供給された論理アドレ
スとの対応付けを表すように前記第2のアドレス変換テ
ーブルを更新するステップと、をさらに備え、前記空き
ブロックテーブルは、前記データ配置テーブルを記憶す
る前記メモリブロックを含むゾーンに属する空きブロッ
クを示す情報を格納する第1の空きブロックテーブル
と、いずれかのゾーンに属する空きブロックを示す情報
を格納する第2の空きブロックテーブルと、を含み、前
記空きブロックテーブル記憶ステップでは、前記ゾーン
特定ステップで特定されたゾーンに属する空きブロック
情報を格納する前記第2の空きブロックテーブルを記憶
してい るか否かを判別し、記憶していないと判別したと
き、前記第2の空きブロックテーブルを作成して記憶
し、前記空きブロック選択ステップは、書き込み対象の
データ及び論理アドレスが供給されたとき、前記第2の
空きブロックテーブルに登録されている空きブロックの
うちから書き込み対象の空きブロックを選択するステッ
プを備え、前記空きブロック書込ステップで書き込んだ
前記データと、書き込み対象のデータの論理アドレスと
して供給された論理アドレスとの対応付けを表すように
更新された前記データ配置テーブルを、前記第1の空き
ブロックテーブルに登録されている空きブロックに書き
込むステップと、更新された前記データ配置テーブルを
記憶している前記メモリブロックが空きブロックである
ことを表さないように前記第1の空きブロックテーブル
を更新するステップと、をさらに備える、ことを特徴と
する。
【0020】また、この発明の第の観点に係るコンピ
ュータ読み取り可能な記録媒体は、各々が複数のゾーン
のいずれかに属し、物理アドレスを割り当てられた、前
記データを記憶するための複数のメモリブロックを含
み、所定の前記ゾーンに属する前記メモリブロックが、
前記データと前記データが記憶されているメモリブロッ
クの物理アドレスを示す論理アドレスとの対応関係を表
すデータ配置テーブルを記憶することを特徴とするメモ
リに接続されたコンピュータを、前記論理アドレスと、
前記データ配置テーブルを記憶する前記メモリブロック
の物理アドレスとの対応関係を表す情報を格納する第1
のアドレス変換テーブルを作成して記憶する第1のテー
ブル記憶手段と、外部の指示に応答し、前記第1のアド
レス変換テーブルに基づいて、前記データ配置テーブル
を記憶するメモリブロックの物理アドレスを特定し、特
定した物理アドレスが示す前記メモリブロックより前記
データ配置テーブルを読み出し、外部に供給するデータ
配置テーブル検索手段と、読み出し対象の前記データを
示す論理アドレスを外部より取得し、取得した前記論理
アドレスに基づいて、該論理アドレスが示すメモリブロ
ックが属するゾーンを特定するゾーン特定手段と、前記
論理アドレスと、前記ゾーン特定手段が特定したゾーン
に属する前記メモリブロックの物理アドレスとの対応関
係を表す情報を格納する第2のアドレス変換テーブルを
自己が記憶しているか否かを判別し、記憶していないと
判別したとき、前記第2のアドレス変換テーブルを作成
して記憶する第2のテーブル記憶手段と、前記第2のア
ドレス変換テーブルに基づいて、読み出し対象の前記デ
ータの論理アドレスが示す物理アドレスを特定し、特定
した物理アドレスが示す前記メモリブロックに格納され
ている前記データを読み出して出力するデータ検索手段
と、前記データ検索手段が特定した物理アドレス及び該
物理アドレスを示す論理アドレスを互いに対応づけて記
憶するアクセス履歴記憶手段と、して機能させるための
プログラムを記録したコンピュータ読み取り可能な記録
媒体であって、前記データ検索手段は、前記アクセス履
歴記憶手段が記憶する論理アドレス及び物理アドレスに
基づいて、前記データ配置テーブル検索手段が特定した
論理アドレスが示す物理アドレスを特定する手段を備え
る、ことを特徴とする。
【0021】このような記録媒体に格納されたプログラ
ムを実行するコンピュータによれば、データ配置テーブ
ルが格納されたブロックの論理アドレスを表す第1のア
ドレス変換テーブルは、特定されたゾーンの如何に関わ
らず記憶され続ける。このため、既に記憶されているア
ドレス変換テーブルが、データ配置テーブルへのアクセ
スのために書き換えられるという事態は発生しない。こ
のため、データにアクセスする処理の遅延が防止され
る。また、データ配置テーブル以外のデータにアクセス
する場合であっても、アクセス履歴記憶手段が記憶する
論理アドレス及び物理アドレスが示すブロックに記憶さ
れたデータへのアクセスであれば、第2のアドレス変換
テーブルの作成が行われる必要はなくなる。従って、デ
ータにアクセスする処理は更に効率的となる。また、こ
の発明の第8の観点に係るコンピュータ読み取り可能な
記録媒体は、各々が複数のゾーンのいずれかに属し、物
理アドレスを割り当てられた、前記データを記憶するた
めの複数のメモリブロックを含み、所定の前記ゾーンに
属する前記メモリブロックが、前記データと前記データ
が記憶されているメモリブロックの物理アドレスを示す
論理アドレスとの対応関係を表すデータ配置テーブルを
記憶することを特徴とするメモリに接続されたコンピュ
ータを、前記論理アドレスと、前記データ配置テーブル
を記憶する前記メモリブロックの物理アドレスとの対応
関係を表す情報を格納する第1のアドレス変換テーブル
を作成して記憶する第1のテーブル記憶手段と、外部の
指示に応答し、前記第1のアドレス変換テーブルに基づ
いて、前記データ配置テーブルを記憶するメモリブロッ
クの物理アドレスを特定し、特定した物理アドレスが示
す前記メモリブロックより前記データ配置テーブルを読
み出し、外部に供給するデータ配置テーブル検索手段
と、読み出し対象の前記データを示す論理アドレスを外
部より取得し、取得した前記論理アドレスに基づいて、
該論理アドレスが示すメモリブロックが属するゾーンを
特定するゾーン特定手段と、前記論理アドレスと、前記
ゾーン特定手段が特定したゾーンに属する前記メモリブ
ロックの物理アドレスとの対応関係を表す情報を格納す
る第2のアドレス変換テーブルを自己が記憶しているか
否かを判別し、記憶していないと判別したとき、前記第
2のアドレス変換テーブルを作成して記憶する第2のテ
ーブル記憶手段と、前記第2のアドレス変換テーブルに
基づいて、読み出し対象の前記データの論理アドレスが
示す物理アドレスを特定し、特定した物理アドレスが示
す前記メモリブロックに格納されている前記データを読
み出して出力するデータ検索手段と、して機能させるた
めのプログラムを記録したコンピュータ読み取り可能な
記録媒体であって、前記プログラムは、前記コンピュー
タを、データを記憶していない前記メモリブロックから
構成される空きブロックを示す情報を格納する空きブロ
ックテーブルを記憶する空きブロックテーブル記憶手段
と、書き込み対象のデータ及び論理アドレスが自己に供
給されたとき、前記空きブロックテーブルに登録されて
いる空きブロックの中から書き込み対象の空きブロック
を選択する空きブロック選択手段と、書き込み対象の前
記データを前記空きブロック選択手段により選択された
空きブロックに書き込む空きブロック書込手段と、書き
込み対象の前記データを書き込んだ空きブロックの物理
アドレスと、前記空きブロック選択手段に供給された論
理アドレスとの対応付けを表すように前記第2のアドレ
ス変換テーブルを更新する手段としてさらに機能させる
プログラムを含み、前記空きブロックテーブルは、前記
データ配置テーブルを記憶する前記メモリブロックを含
むゾーンに属する空きブロックを示す情報を格納する第
1の空きブロックテーブルと、いずれかのゾーンに属す
る空きブロックを示す情報を格納する第2の空きブロッ
クテーブルと、を含み、前記空きブロックテーブル記憶
手段は、前記ゾーン特定手段が特定したゾーンに属する
空きブロック情報を格納する前記第2の空きブロックテ
ーブルを自己が記憶しているか否 かを判別し、記憶して
いないと判別したとき、前記第2の空きブロックテーブ
ルを作成して記憶する手段を備え、前記空きブロック選
択手段は、書き込み対象のデータ及び論理アドレスが自
己に供給されたとき、前記第2の空きブロックテーブル
に登録されている空きブロックのうちから書き込み対象
の空きブロックを選択する手段を備え、前記プログラム
は、前記コンピュータを、前記空きブロック書込手段が
書き込んだ前記データと、前記空きブロック選択手段に
供給された論理アドレスとの対応付けを表すように更新
された前記データ配置テーブルを、前記第1の空きブロ
ックテーブルに登録されている空きブロックに書き込む
手段と、更新された前記データ配置テーブルを記憶して
いる前記メモリブロックが空きブロックであることを表
さないように前記第1の空きブロックテーブルを更新す
る手段としてさらに機能させるプログラムを含む、こと
を特徴とする。
【0022】
【発明の実施の形態】以下、この発明の実施の形態を、
フラッシュメモリを備えた記憶システムを例とし、図面
を参照して説明する。
【0023】図1は、この発明の実施の形態にかかる記
憶システムの物理的構成を示すブロック図である。図示
するように、この記憶システムは、メモリユニット1
と、コンピュータ2とから構成されている。メモリユニ
ット1は、コンピュータ2が備えるスロットを介して、
コンピュータ2に着脱可能に装着されている。コンピュ
ータ2が備えるスロットは、例えば、PCMCIAバス
を中継するためのPCMCIAスロットからなる。
【0024】メモリユニット1は、フラッシュメモリ1
1及びコントローラ12からなる。
【0025】フラッシュメモリ11は、例えば、EEP
ROM(Electrically Erasable/Programable Read Onl
y Memory)等の記憶装置からなる。フラッシュメモリ1
1は、コントローラ12が行うアクセスに応答し、コン
ピュータ2から供給されたデータの記憶と、記憶してい
るデータのコンピュータ2への供給と、記憶しているデ
ータの消去とを行う。
【0026】フラッシュメモリ11が有する記憶領域
は、例えば図2に示すように65536個のページから
なり、各々のページは528バイトの記憶容量を有す
る。各ページに含まれるメモリセルには、連続的に0か
ら527までの番地が与えられている。
【0027】各ページは、図示するように、先頭から5
12バイトの領域を占めるデータ領域と、末尾16バイ
トを占める冗長部とから構成される。データ領域には、
本来のデータ(コンピュータ2から供給され書き込まれ
るデータや、コンピュータ2に供給される対象となるデ
ータ)が格納され、冗長部には、本来のデータの内容が
破壊されていないことを確認するためのエラーチェック
コード等が格納される。
【0028】そして、各ページは、先頭から16ページ
単位で1つのブロックを構成する。各ブロックは8キロ
バイトの記憶容量を有し、記憶領域全体は、4096個
のブロックから構成され、先頭から連続的に0から40
95までの物理ブロックアドレスを与えられている。各
々のブロックに属する各ページには、連続的に0から1
5までのページアドレスが付与されている。
【0029】また、各々のブロックに属する各ページの
冗長部には、そのブロックに割り当てられている論理ブ
ロックアドレスの値が格納される。論理ブロックアドレ
スは、フラッシュメモリ11が後述する動作により読み
書きされるときに、コントローラ12により、データ読
み書きの単位として認識される単位である。論理ブロッ
クアドレスが割り当てられているブロックの総量は、フ
ラッシュメモリ11が物理的に備えるブロックの総量よ
り小さい所定量、例えば4000個である。
【0030】そして、フラッシュメモリ11の各ブロッ
クは、複数のゾーンへと更に分類されている。具体的に
は、ブロックアドレスが0〜1023までの1024個
のブロックが第1のゾーン(ゾーン0)を構成し、ブロ
ックアドレスが1024〜2047までの1024個の
ブロックが第2のゾーン(ゾーン1)を構成し、ブロッ
クアドレスが2048〜3071までの1024個のブ
ロックが第3のゾーン(ゾーン2)を構成し、残る10
24個のブロックが第4のゾーン(ゾーン3)を構成す
る。そして、ゾーン0、ゾーン1、ゾーン2、及びゾー
ン3には、順に、0、1、2及び3のゾーンアドレスが
付与されている。(なお、本明細書及び図面において、
末尾に文字”h”を付した数字は、16進数を表す。)
【0031】各ゾーンに属するブロックに割り当てられ
る論理ブロックアドレスがとり得る値の範囲は、CPU
121が実行するプログラムにより予め定められてい
る。具体的には、例えば、ゾーン0、1、2及び3に属
するブロックに割り当てられる論理ブロックアドレス
は、順に、0000h以上03E7h以下、03E8h
以上07CFh以下、07D1h以上0BB7h以下、
0BB8h以上0F9Fh以下、の範囲の値をとるよう
に定められている。
【0032】フラッシュメモリ11は、メモリユニット
1のコントローラ12より、特定のブロックのデータを
消去するよう指示されると、当該ブロックに含まれるす
べてのメモリセルの記憶内容をリセットする(例えば、
フラッシュメモリ11がNAND型のフラッシュメモリ
からなる場合は、各メモリセルの記憶値を「1」とす
る)。
【0033】また、フラッシュメモリ11の記憶領域に
は、後述する処理により、ディレクトリと、FAT(Fi
le Allocation Table)とが作成される。ディレクトリ
及びFATは、フラッシュメモリ11の記憶領域のゾー
ン0に属する256個のブロック内に作成される。そし
て、ディレクトリ及びFATが格納されるブロックに
は、論理ブロックアドレスとして先頭の256個のアド
レス(すなわち、0000h以上00FFh以下のアド
レス)が付される。
【0034】図3は、ディレクトリ、FAT及び論理ブ
ロックアドレスの相互の対応関係を示す図である。図示
するように、ディレクトリ及びFATが記憶された論理
ブロックアドレスは、例えば、CPU121が記憶する
ディレクトリポインタによって示されている。
【0035】ディレクトリは、フラッシュメモリ11内
に記憶されているファイル(すなわち、一括して扱うべ
きものとしてコンピュータ2が指定するデータの集合)
のファイル名と、そのファイルの先頭部分が記憶されて
いる論理ブロックアドレス及びページアドレスとを示す
テーブルである。
【0036】FATは、フラッシュメモリ11の記憶領
域内でのファイルの配置を示すテーブルであり、ファイ
ルが1つのページ内に収まらないとき、図3に示すよう
に、後続の部分を記憶するページが属するブロックの論
理ブロックアドレス及び当該ページのページアドレスを
それぞれ示すものである。ファイルの最終部分が記憶さ
れているページのページアドレスは、図3に示すよう
に、終了コード(EC)を付されることによって、その
ページアドレスが最終部分を表すものであることが示さ
れる。
【0037】コントローラ12は、図1に示すように、
CPU(Central Processing Unit)121と、ROM
(Read Only Memory)122と、SRAM(Static Ran
domAccess Memory)123とを備えている。CPU12
1は、ROM122、SRAM123及びフラッシュメ
モリ11に接続されており、また、コンピュータ2が備
えるPCMCIAスロットを介してコンピュータ2に着
脱可能に接続されている。
【0038】CPU121は、コントローラ12の製造
者等によって予めROM122に格納されているプログ
ラムの処理に従って、後述する処理を行う。そして、C
PU121は、アクセス装置を構成するコンピュータ2
から供給される命令を取得すると、その命令を実行す
る。CPU121が実行する命令には、フラッシュメモ
リ11にアクセスする命令が含まれる。
【0039】SRAM123は、CPU121の作業領
域として用いられ、また、退避用メモリ領域と、CPU
121が後述する処理により作成するBSI(Block Se
archIndex)及びBPT(Block Pointer Table)とを格
納する。
【0040】退避用メモリ領域は、後述するデータ書き
込みの処理において、書き込みを行う対象のページを含
むブロックに格納されているデータを一時的に格納する
ための記憶領域である。
【0041】BSIは、ファイル管理用BSIと、一般
用BSIとより構成されている。ファイル管理用BSI
は、フラッシュメモリ11の記憶領域のうちのゾーン0
に属する各ブロックについて、そのうちいずれが空きブ
ロック(すなわち、リセットされた状態にあるブロッ
ク)であるかを特定する情報を格納する。一般用BSI
は、フラッシュメモリ11の記憶領域のうちの1個のゾ
ーンに属する各ブロックについて、そのうちいずれが空
きブロックであるかを特定する情報を格納する。ファイ
ル管理用BSI及び一般用BSIは、いずれも、コント
ローラ12の後述する処理に従って作成及び更新され、
SRAM123に格納される。
【0042】また、CPU121は、後述する処理によ
り、一般用BSIがいずれのゾーンに属する空きブロッ
クを特定しているかを示す情報を記憶するかを示すゾー
ン情報を作成し、SRAM123に格納する。
【0043】フラッシュメモリ11の各ブロックの総数
が1024個ずつであるときの一般用BSIの構造の一
例を図4に示す(ファイル管理用BSIのデータ構造も
一般用BSIと実質的に同一である)。図示するよう
に、一般用BSIはいずれも128バイトのデータから
なり、先頭のビットから順に、ゾーン情報が示すゾーン
の先頭のブロックから1024個目のブロックに順に1
対1に対応づけられており、対応づけられたブロックが
空きブロックであるとき”1”、空きブロックでないと
き”0”を格納する。
【0044】BPTは、ファイル管理用BPTと、一般
用BPTとより構成されている。ファイル管理用BPT
は、ディレクトリ及びFATを格納している各ブロック
について、その論理ブロックアドレス及び物理ブロック
アドレスの対応関係を示す情報を格納するものである。
一般用BPTは、BSIが空きブロックを特定している
ゾーンと同一のゾーン(すなわち、SRAM123に格
納されているゾーン情報が示すゾーン)に属する各ブロ
ックについて、その論理ブロックアドレス及び物理ブロ
ックアドレスの対応関係を示す情報を格納するものであ
る。一般用BPTがゾーン0に属するブロックの論理ブ
ロックアドレス及び物理ブロックアドレスの対応関係を
示している場合、ディレクトリ及びFATを格納してい
る各ブロックについて、その論理ブロックアドレス及び
物理ブロックアドレスの対応関係は、ファイル管理用B
PT及び一般用BPTの両方により表される。ファイル
管理用BPT及び一般用BPTは、いずれも、CPU1
21による後述の処理に従って作成あるいは更新され、
SRAM123に格納される。
【0045】ファイル管理用BPT及び一般用BPT
は、各々、SRAM123の記憶領域中の所定の論理的
位置を占め、各々の論理ブロックアドレスに対応付けら
れた物理ブロックアドレスを記憶するための記憶領域を
備える。
【0046】ファイル管理用BPT及び一般用BPT
は、具体的には、例えば図5に示すデータ構造を有す
る。すなわち、例えば、ファイル管理用BPTは、図示
するように、先頭から1ワード毎に付されたアドレスが
0000h〜00FFhである、合計256ワードの記
憶領域を備える。また、一般用BPTは、例えば、各々
のゾーンに属するブロックを示す論理ブロックアドレス
の総数が1000個である場合、例えば図示するよう
に、先頭から1ワード毎に付されたアドレスが1000
h〜13E7hである、合計1000ワードの記憶領域
を備える。
【0047】そして、ファイル管理用BPTを形成する
記憶領域に付された各々のアドレスは論理ブロックアド
レスに等しい。そして、各々のアドレスを付された1ワ
ードの記憶領域に格納されている内容は、当該アドレス
が示す論理ブロックアドレスに対応付けられているブロ
ックの物理ブロックアドレスを表す。
【0048】一方、一般用BPTを形成する記憶領域に
付された各々のアドレスは、論理ブロックアドレスと、
一般用BPTを形成する記憶領域に付されたアドレスの
最小値(オフセット値)との和から、上述のゾーン情報
が示すゾーンの番号に03E8h(すなわち、10進数
1000)を乗じた数を差し引いた値に等しい。そし
て、各々のアドレスを付された1ワードの記憶領域に格
納されている内容は、当該アドレスが示す論理ブロック
アドレスに対応付けられているブロックの物理ブロック
アドレスを表す。
【0049】具体的には、例えば図5に示すように、ア
ドレス1001hを付された記憶領域に値”0A10
h”が格納されており、オフセット値が1000hであ
り、ゾーン情報がゾーン2を表しているとする。この場
合は、物理ブロックアドレスが0A10hであるブロッ
クには、論理ブロックアドレスとして07D1hが対応
付けられている。
【0050】ただし、各々のアドレスを付された記憶領
域に格納されている内容が所定の値を表す場合(例え
ば、図示するように、値”0FFFh”を表す場合)
は、その値を格納している記憶領域のアドレスが示す論
理ブロックアドレスには、物理ブロックアドレスが対応
付けられていないことを表す。
【0051】コンピュータ2はパーソナルコンピュータ
等からなり、PCMCIAスロットを備え、OS及びド
ライバを表すプログラムデータを記憶し、電源投入後、
OSを実行する。そして、PCMCIAスロットにメモ
リユニット1が装着されたことを検知すると、OSの処
理に従ってドライバを起動する。
【0052】ドライバの処理を行うコンピュータ2は、
コントローラ12に上述の命令を供給したり、フラッシ
ュメモリ11に書き込む対象のデータを供給して、CP
U121に、フラッシュメモリ11へのアクセスを行わ
せる。そして、自らが供給した命令に従ってCPU12
1がフラッシュメモリ11から読み出して自らに供給し
たデータを、CPU121より取得する。
【0053】(動作)次に、この記憶システムの動作
を、図6〜図11を参照して説明する。図6は、初期処
理を示すフローチャートである。図7は、データ読み出
しの処理を示すフローチャートである。図8は、一般用
BSI・一般用BPTの作成の処理を示すフローチャー
トである。図9は、データ書き込みの処理を示すフロー
チャートである。図10は、FAT更新の処理を示すフ
ローチャートである。図11は、データ転記の処理を示
すフローチャートである。
【0054】(初期処理)この記憶システムが起動する
と、メモリユニット1のコントローラ12のCPU12
1は、図6に示す初期処理を実行する。初期処理を開始
すると、CPU121は、SRAM123の記憶領域の
うち、BPT及びBSIを格納する部分の初期化を行う
(ステップS101)。
【0055】ステップS101においてCPU121
は、具体的には、SRAM123の記憶領域のうちファ
イル管理用BPT及び一般用BPTを格納する部分につ
いて、1ワード毎に付された上述のアドレスにより示さ
れる各区画に、物理ブロックアドレスが対応付けられて
いないことを示す所定の値(例えば、上述の値”0FF
Fh”)を書き込む。また、ファイル管理用BSI及び
一般用BSIを格納する部分のビットの論理値を、すべ
て”0”とする。また、ゾーン情報を格納する部分に
は、ゾーン0を示すゾーン情報を格納する。
【0056】次に、CPU121は、フラッシュメモリ
11のゾーン0に属する各ブロックのうち、未だ冗長部
に格納されているデータを読み出されていないブロック
であって最も物理ブロックアドレスが若いものを特定
し、特定されたブロックに属するページの冗長部に格納
されているデータを読み出す(ステップS102)。
【0057】次に、CPU121は、ステップS102
で読み出したデータに基づき、ステップS102でデー
タを読み出したブロックが空きブロックであるか否かを
判別する(ステップS103)。具体的には、例えば、
ステップS102で読み出したデータに、所定の形式の
空きブロックコードが格納されているか否かを判別す
る。そして、空きブロックでないと判別すると、CPU
121は、処理をステップS106に移す。
【0058】一方、空きブロックであると判別すると、
CPU121は、その空きブロックを示す物理ブロック
アドレスから、ファイル管理用BSIを格納するための
SRAM123の記憶領域中、その物理ブロックアドレ
スを示すビットの位置を算出し、そのビットの論理値
を”1”に書き換える(ステップS104)。また、一
般用BSIを格納するためのSRAM123の記憶領域
中、その物理ブロックアドレスを示すビットの位置も算
出し、そのビットの論理値も”1”に書き換える(ステ
ップS105)。ステップS104及びS105の処理
を終えると、CPU121は処理をステップS109に
移す。
【0059】一方、ステップS106で、CPU121
は、ステップS102で読み出したデータのうちに、先
頭の256個に属する論理ブロックアドレス、すなわ
ち、”0000h”以上”00FFh”以下の論理ブロ
ックアドレスが含まれているか否かを判別する。
【0060】そして、含まれていないと判別すると、一
般用BPTを格納するためのSRAM123の記憶領域
中、フラッシュメモリ11から読み出した論理ブロック
アドレスに相当するアドレスを付された部分に、その論
理ブロックアドレスを読み出したブロックの物理ブロッ
クアドレスを書き込み(ステップS107)、処理をス
テップS109に移す。これにより、一般用BPTに、
物理ブロックアドレスと論理ブロックアドレスとの対応
付けを示す新たな情報が追加される。
【0061】一方、含まれていると判別すると、ファイ
ル管理用BPTを格納するためのSRAM123の記憶
領域中、フラッシュメモリ11から読み出した論理ブロ
ックアドレスに相当するアドレスを付された部分に、そ
の論理ブロックアドレスを読み出したブロックの物理ブ
ロックアドレスを書き込み(ステップS108)、処理
をステップS109に移す。これにより、ファイル管理
用BPTに、物理ブロックアドレスと論理ブロックアド
レスとの対応付けを示す新たな情報が追加される。
【0062】ステップS109で、CPU121は、ス
テップS102で冗長部に格納されているデータを読み
とられたブロックの次のブロックがフラッシュメモリ1
1のゾーン0に存在するか否かを判別する。そして、存
在すると判別すると処理をステップS102に戻し、存
在しないと判別すると、初期処理を終了する。
【0063】以上説明した初期処理により、ゾーン0の
一般用BSI及びゾーン0の一般用BPTと、ファイル
管理用BSIと、ファイル管理用BPTとが作成され
る。
【0064】(データ読み出しの処理)初期処理が終了
すると、メモリユニット1のCPU121は、コンピュ
ータ2より、フラッシュメモリ11へのアクセスの指示
を受け付ける。コンピュータ2は、CPU121にフラ
ッシュメモリ11からのデータの読み出しを指示すると
きは、まず、ディレクトリ及びFATを読み出すため、
読み出しを指示する命令と、ディレクトリ及びFATが
記憶されているブロックの論理ブロックアドレスを、C
PU121に供給する(図7、ステップS201)。
【0065】データの読み出しを指示する命令と、論理
ブロックアドレスとを供給されたCPU121は、論理
ブロックアドレスをキーとしてファイル管理用BPTを
検索し、ディレクトリ及びFATが記憶されているブロ
ックの物理ブロックアドレスを索出し、当該物理ブロッ
クアドレスが示すブロックよりディレクトリ及びFAT
を読み出して、コンピュータ2に供給する(ステップS
202)。コンピュータ2は、自己に供給されたディレ
クトリ及びFATを一時記憶する。
【0066】コンピュータ2は、CPU121よりディ
レクトリ及びFATを供給されると、データを読み出す
対象のファイルのファイル名をキーとして、CPU12
1より供給されたディレクトリを検索し、そのファイル
名を有するファイルの内容が格納されている先頭のペー
ジの論理ブロックアドレス及びページアドレスを索出す
る(ステップS203)。
【0067】また、コンピュータ2は、ステップS20
3で索出した論理ブロックアドレス及びページアドレス
をキーとして、CPU121から供給されたFATを検
索し、ディレクトリから論理ブロックアドレス及びペー
ジアドレスを索出されたページに後続するページの論理
ブロックアドレス及びページアドレスがあれば、すべて
索出し、該当するページが連続する順序を特定する(ス
テップS204)。
【0068】そして、コンピュータ2は、ステップS2
03及びS204で索出されたページの記憶内容を読み
出すため、読み出しを指示する命令と、ステップS20
3及びS204で索出されたページであって未だデータ
を読み出されていないページのうち先頭のページの論理
ブロックアドレス及びページアドレスとを、CPU12
1に供給する(ステップS205)。
【0069】CPU121は、ステップS205で、読
み出しを指示する命令と、論理ブロックアドレス及びペ
ージアドレスを供給されると、供給された論理ブロック
アドレスを割り当てられるゾーンを特定する(ステップ
S206)。
【0070】そして、CPU121は、SRAM123
に格納されているゾーン情報を読み出し、読み出したゾ
ーン情報が示すゾーンと、ステップS205で特定した
ゾーンとが一致するか否かを判別する(ステップS20
7)。
【0071】そして、両者が一致するとステップS20
7で判別したとき、CPU121は、処理をステップS
209に移す。一方、一致しないと判別したとき、CP
U121は、ステップS206で特定したゾーン(すな
わち、読み出す対象のブロックが属するゾーン)につい
て、図8に示す一般用BSI・一般用BPT作成の処理
を行って、新たなBSI及び一般用BPTを作成する
(ステップS208)。
【0072】図8の処理を開始するとCPU121は、
ステップS206で特定されたゾーンに属する各ブロッ
クのうち、未だ冗長部に格納されているデータを読み出
されていないブロックであって最も物理ブロックアドレ
スが若いものを特定し、特定されたブロックに属するペ
ージの冗長部に格納されているデータを読み出す(図
8、ステップS301)。
【0073】次に、CPU121は、ステップS301
で読み出したデータに基づき、ステップS103と実質
的に同一の手法により、ステップS301でデータを読
み出したブロックが空きブロックであるか否かを判別す
る(ステップS302)。
【0074】そして、空きブロックでないと判別する
と、CPU121は、処理をステップS304に移す。
一方、空きブロックであると判別すると、CPU121
は、その空きブロックを示す物理ブロックアドレスか
ら、一般用BSIを格納するためのSRAM123の記
憶領域中、その物理ブロックアドレスを示すビットの位
置を算出し、そのビットの論理値を”1”に書き換え
(ステップS303)、処理をステップS305に移
す。
【0075】ステップS304で、CPU121は、一
般用BPTを格納するためのSRAM123の記憶領域
中、ステップS301でフラッシュメモリ11から読み
出したデータに含まれる論理ブロックアドレスに相当す
るアドレスを付された部分に、その論理ブロックアドレ
スを読み出したブロックの物理ブロックアドレスを書き
込み、処理をステップS305に移す。これにより、一
般用BPTに、物理ブロックアドレスと論理ブロックア
ドレスとの対応付けを示す新たな情報が追加される。
【0076】ステップS305で、CPU121は、冗
長部に格納されているデータをステップS301で読み
とられたブロックの次のブロックが、ステップS206
で特定されたゾーンに存在するか否かを判別する。そし
て、存在すると判別すると処理をステップS301に戻
し、存在しないと判別すると、SRAM123に、ステ
ップS206で特定されたゾーンを示すゾーン情報を書
き込んで(ステップS306)、一般用BSI・一般用
BPT作成の処理を終了する。
【0077】ステップS208で一般用BSI・一般用
BPT作成の処理を完了したCPU121は、図7に示
すステップS209へと処理を進める。ステップS20
9で、CPU121は、ステップS205でコンピュー
タ2より供給された論理ブロックアドレスをキーとして
一般用BPTを検索し、その論理ブロックアドレスに対
応付けられた物理ブロックアドレスを索出する。そし
て、CPU121は、ステップS209で索出した物理
ブロックアドレス及びページアドレスが示すページより
データを読み出して、コンピュータ2に供給する(ステ
ップS210)。
【0078】コンピュータ2は、CPU121より読み
出し対象のデータを供給されると、ステップS203及
びS204で索出されたページのうちに未だデータを読
み出されていないページがあるか否かを判別する(ステ
ップS211)。そして、該当するページがあると判別
したときは処理をステップS205に戻し、ないと判別
したときは処理を終了する。
【0079】以上説明したステップS201〜S211
の処理により、フラッシュメモリ11よりデータが読み
出され、コンピュータ2へと供給される。この記憶シス
テムにおいては、ディレクトリやFATを読み出す処理
のためにファイル管理用BPTが作成し直される、とい
ったことがない。このため、データの読み出しの処理の
間にBPTの作成をやり直す回数の増加や、BPTの作
成をやり直す処理の時間の増加が防止される。
【0080】(データ書き込みの処理)また、フラッシ
ュメモリ11へのデータの書き込みを行う場合、まず、
コンピュータ2は、ディレクトリ及びFATを読み出す
ため、上述のステップS201と同様に、読み出しを指
示する命令と、ディレクトリ及びFATが記憶されてい
るブロックの論理ブロックアドレスを、CPU121に
供給する(図9、ステップS401)。
【0081】データの読み出しを指示する命令と、論理
ブロックアドレスとを供給されたCPU121は、上述
のステップS202と実質的に同一の処理を行うことに
よりディレクトリ及びFATを読み出して、コンピュー
タ2に供給する(ステップS402)。コンピュータ2
は、自己に供給されたディレクトリ及びFATを一時記
憶する。
【0082】次に、コンピュータ2は、フラッシュメモ
リ11に書き込む対象のファイルのファイル名をキーと
して、CPU121より供給されたディレクトリを検索
し、そのファイル名を有するファイルの内容が格納され
ている先頭のページの論理ブロックアドレス及びページ
アドレスを索出する(ステップS403)。
【0083】そして、当該論理ブロックアドレス及びペ
ージアドレスが索出されたか否かを判別する(ステップ
S404)。そして、あると判別したときは、ステップ
S403で索出した論理ブロックアドレス及びページア
ドレスをキーとして、CPU121から供給されたFA
Tを検索し、ディレクトリから論理ブロックアドレス及
びページアドレスを索出されたページに後続するページ
の論理ブロックアドレス及びページアドレスがあれば、
すべて索出し、該当するページが連続する順序を特定し
(ステップS405)、処理をステップS407に移
す。
【0084】一方、ないと判別したとき、この記憶シス
テムは、図10に示すFAT更新の処理を行う(ステッ
プS406)。図10の処理を開始すると、まず、コン
ピュータ2は、CPU121に、フラッシュメモリ11
へのデータの書き込みを指示する命令と、ディレクトリ
及びFATが格納されるブロックの論理ブロックアドレ
スとを供給する(ステップS501)。
【0085】なお、コンピュータ2は、例えば、ステッ
プS401でコンピュータ2に供給されたディレクトリ
及びFATを解析して、データが書き込まれていないペ
ージの論理ブロックアドレス及びページアドレスを特定
する。そして、特定した論理ブロックアドレス及びペー
ジアドレスが示すページに書き込み対象のデータを書き
込むことを決定する。そして更に、自己が一時記憶して
いるディレクトリ及びFATを、当該決定の結果を表す
ように更新する。これにより、フラッシュメモリ11に
新たに書き込むべきディレクトリ及びFATが作成され
る。
【0086】一方、データの書き込みを指示する命令
と、ディレクトリ及びFATが格納されるブロックの論
理ブロックアドレスとを供給されたCPU121は、新
たなディレクトリ及びFATを格納するための256個
の空きブロックの物理ブロックアドレスを、ファイル管
理用BSIより索出する(ステップS502)。
【0087】そして、CPU121はファイル管理用B
SIにもアクセスし、ファイル管理用BSIの内容が、
ステップS502で物理ブロックアドレスを索出された
ブロックが空きブロックであることを表さないように、
ファイル管理用BSIの内容を書き換える(ステップS
503)。
【0088】次に、CPU121は、コンピュータ2
に、書き込む対象のデータを供給するよう指示し、コン
ピュータ2は、この指示に従って、自己が一時記憶する
ディレクトリ及びFATをCPU121に供給する。そ
して、CPU121は、コンピュータ2より供給された
ディレクトリ及びFATを、ステップS502で物理ブ
ロックアドレスを索出されたブロックの先頭以降に順次
書き込む(ステップS504)。また、ステップS50
4において、CPU121は、ステップS502で物理
ブロックアドレスを索出されたブロックの各ページの冗
長部に、ステップS501でコンピュータ2から供給さ
れた論理ブロックアドレスを書き込む。
【0089】また、CPU121はファイル管理用BP
Tにもアクセスし、ファイル管理用BPTのうち、ステ
ップS402でFAT及びディレクトリの読み出しの対
象としたブロックの物理ブロックアドレスが格納されて
いる記憶領域に、S504での書き込みが完了したブロ
ックの物理ブロックアドレスを上書きする(ステップS
505)。これにより、ステップS402で読み出され
たFAT及びディレクトリ(以下、「古いFAT等」と
呼ぶ)が格納されているブロックに従前対応付けられて
いた論理ブロックアドレスは、新たに書き込みが完了し
たブロックに対応付けられる。
【0090】ステップS505の処理が完了すると、C
PU121はFAT更新の処理を終了する。FAT更新
の処理が終わると、CPU121は、コンピュータ2に
FAT更新の処理が完了したことを通知する。
【0091】コンピュータ2は、ステップS404の処
理の後、ステップS405の処理を終え又はCPU12
1よりFAT更新の処理の完了を通知されると、CPU
121に、フラッシュメモリ11へのデータの書き込み
を指示する命令と、書き込む対象のファイルに含まれる
データを書き込むページの論理ブロックアドレス及びペ
ージアドレスとを供給する(図9、ステップS40
7)。
【0092】なお、ステップS407でコンピュータ2
からCPU121に供給される論理ブロックアドレス及
びページアドレスは、(a)ステップS403で索出さ
れた論理ブロックアドレス及びページアドレスが示すペ
ージのうち、未だデータが書き換えられていない先頭の
ページ、又は、(b)ステップS406のFAT更新の
処理において新たなディレクトリ及びFATを作成する
際に、新たにデータを書き込むことと決定したページの
うち、未だデータを格納されていない先頭のページ、を
示すものであればよい。
【0093】ステップS407でデータの書き込みを指
示する命令と、論理ブロックアドレス及びページアドレ
スとを供給されたCPU121は、供給された論理ブロ
ックアドレスを割り当てられているゾーンを特定する
(ステップS408)。そして、CPU121は、SR
AM123に格納されているゾーン情報を読み出し、読
み出したゾーン情報が示すゾーンと、ステップS408
で特定したゾーンとが一致するか否かを判別する(ステ
ップS409)。
【0094】そして、両者が一致するとステップS40
9で判別したとき、CPU121は、処理をステップS
411に移す。一方、一致しないと判別したとき、CP
U121は、ステップS408で特定したゾーンを、上
述のステップS206で特定されたものと同一に扱っ
て、図8の一般用BSI・一般用BPT作成の処理と実
質的に同一の処理を行い、新たなBSI及び一般用BP
Tを作成し(ステップS410)、処理をステップS4
11に移す。
【0095】ステップS411で、CPU121は、ス
テップS407で自己に供給された論理ブロックアドレ
スをキーとして一般用BPTを検索し、その論理ブロッ
クアドレスに対応づけられた物理ブロックアドレスを索
出する。そして、CPU121は、ステップS411で
物理ブロックアドレスが索出されたか否かを判別する
(ステップS412)。
【0096】そして、索出されなかったと判別すると、
CPU121は、SRAM123の退避用メモリ領域に
格納されているデータを消去する(具体的には、例え
ば、退避用メモリ領域に格納されているデータの各ビッ
トをすべて値”1”に更新する)ことにより、退避用メ
モリ領域の初期化を行い(ステップS413)、処理を
ステップS415に移す。一方、索出されたと判別する
と、CPU121は、索出された物理ブロックアドレス
が示すブロックに格納されているデータを読み出して、
SRAM123の退避用メモリ領域に格納し(ステップ
S414)、処理をステップS415に移す。
【0097】ステップS415で、CPU121は、新
たにデータを書き込むための1個の空きブロックの物理
ブロックアドレスを、一般用BSIより索出する。そし
て、CPU121は、図11に示すデータ転記の処理を
行う(ステップS416)。
【0098】データ転記の処理を開始すると、CPU1
21は、後述のステップS603及びS604の処理で
データを書き込む対象のページを示す変数を格納するレ
ジスタ(書き込み用レジスタ)の使用を宣言し、書き込
み用レジスタに、ステップS415で索出されたブロッ
クの先頭ページのページアドレスを格納する(図11、
ステップS601)。
【0099】次に、CPU121は、書き込み用レジス
タに現に格納されているページアドレスが、ステップS
407でコンピュータ2から供給されたページアドレス
と一致するか否かを判別する(ステップS602)。
【0100】そして、一致すると判別すると、CPU1
21は、コンピュータ2に、書き込む対象のファイルに
含まれるデータのうち、書き込み用レジスタに格納され
ているページアドレスが示すページに格納すべき部分を
供給するよう指示し、コンピュータ2は、この指示に従
って、該当するデータをCPU121に供給する。CP
U121は、コンピュータ2より供給されたこのデータ
を、ステップS415で索出された物理ブロックアドレ
ス及び書き込み用レジスタに格納されているページアド
レスとより特定されるページに書き込み(ステップS6
03)、処理をステップS605に移す。
【0101】一方、ステップS602において、2個の
ページアドレスが一致しないと判別すると、CPU12
1は、ステップS414で退避用メモリ領域に転記した
データのうち、転記元のブロック(すなわち、ステップ
S414でデータを読み出したブロック)中、書き込み
用レジスタに格納されているページアドレスと同一のペ
ージアドレスが示すページに格納されていた部分を、退
避用メモリ領域から読み出す。そして、CPU121
は、読み出したデータを、ステップS415で索出され
た物理ブロックアドレス及び書き込み用レジスタに格納
されているページアドレスとより特定されるページに書
き込み(ステップS604)、処理をステップS605
に移す。
【0102】ステップS605で、CPU121は、書
き込み用レジスタに格納されているページアドレスが、
書き込み対象のブロックの最終ページを示しているか否
かを判別する。そして、示していないと判別すると、書
き込み用レジスタに格納されているページアドレスをイ
ンクリメントする(ステップS606)。すなわち、書
き込み用レジスタに格納されているページアドレスを、
現に格納されているページアドレスが示すページの次の
ページを示すように更新する。ステップS606の処理
を終えると、CPU121は、処理をステップS602
に戻す。
【0103】一方、ステップS605で、書き込み用レ
ジスタに格納されているページアドレスが、書き込み対
象のブロックの最終ページを示していると判別すると、
CPU121はデータ転記の処理を終了し、図9に示す
ステップS418に処理を進める。
【0104】ステップS418で、CPU121は一般
用BPTにアクセスし、一般用BPTのうち、ステップ
S411で索出された物理ブロックアドレスが格納され
ている記憶領域に、ステップS417のデータ転記の処
理で新たにデータが書き込まれたブロックの物理ブロッ
クアドレスを上書きする。ただし、ステップS411で
物理ブロックアドレスが索出されなかった場合は、一般
用BPTのうち、物理ブロックアドレスが対応付けられ
ていないことを示す所定の値(例えば、上述の値”0F
FFh”)が格納されている記憶領域に上書きする。
【0105】これにより、新たにデータを書き込まれた
ブロックを示す物理ブロックアドレスには、ステップS
411で検索された物理ブロックアドレスに従前対応付
けられていた論理ブロックアドレス、又は従前いずれの
物理ブロックアドレスにも対応付けられていなかった論
理ブロックアドレスが、新たに対応付けられる。
【0106】次に、CPU121は、ステップS411
において物理ブロックアドレスが索出されたかを再び判
別し(ステップS419)、索出されなかったと判別す
ると、処理を後述のステップS422に移す。
【0107】一方、索出されたと判別すると、CPU1
21は、ステップS411で索出された物理ブロックア
ドレスが示すブロック(すなわち、データ転記の処理に
おける転記元のブロック)をリセットし、リセットした
ブロックに属するページの冗長部に、空きブロックコー
ドを書き込む(ステップS420)。次いで、CPU1
21は一般用BSIにもアクセスし、ステップS420
でリセットされたブロックが空きブロックであることを
表すように、一般用BSIの内容を書き換え(ステップ
S421)、コンピュータ2に書き込みの完了を通知す
る。
【0108】ステップS421でCPU121より通知
を受けたコンピュータ2は、フラッシュメモリ11に書
き込む対象のページがまだ残っているか否かを判別する
(ステップS422)。そして、残っていると判別する
と処理をステップS407に戻す。一方、残っていない
と判別したとき、この記憶システムは、図11に示すF
AT更新の処理と実質的に同一の処理を再度行って(ス
テップS423)、データ書き込みの処理を終了する。
【0109】ただし、ステップS423のFAT更新の
処理において、コンピュータ2は、ステップS407で
CPU121に供給した論理ブロックアドレス及びペー
ジアドレスが書き込み対象のデータのファイル名に対応
付けられるように、自己が一時記憶しているディレクト
リ及びFATを更新することにより、新たに書き込むべ
きディレクトリ及びFATを作成する。
【0110】以上説明した処理により、コンピュータ2
から供給されたデータがフラッシュメモリ11に格納さ
れる。また、一般用BSIの内容が、データの書き込み
の結果新たに生じた空きブロック及び消滅した空きブロ
ックを示すよう変更される。また、ファイル管理用BS
Iの内容は、FAT等の更新の結果ゾーン0に新たに生
じた空きブロック及び消滅した空きブロックを示すよう
変更される。一方、一般用BPTの内容も変更され、新
たに空きブロックとなったブロックに割り当てられてい
た論理ブロックアドレスが、そのブロックに従前から記
録されていたデータの転記を受けたブロックに新たに割
り当てられる。また、ファイル管理用BPTの内容は、
古いFAT等が格納されているブロックに従前割り当て
られていた論理ブロックアドレスが、更新後のFAT及
びディレクトリを新たに格納したブロックに新たに割り
当てられるよう変更される。
【0111】なお、この記憶システムの構成は、上述の
ものに限られない。例えば、フラッシュメモリ11の記
憶領域のゾーンの数、ブロックの数、1ブロック当たり
のページの数、各ページの記憶容量、データ領域及び冗
長部の記憶容量は、いずれも任意である。また、フラッ
シュメモリ11は、EEPROMから構成されるもので
ある必要はなく、コンピュータにより読み書き可能な任
意の記憶装置であってよい。
【0112】また、ディレクトリ及びFATが格納され
るゾーンはゾーン0である必要はなく、いずれか所定の
ゾーンであればよい。そして、この記憶システムは、図
6に示す初期処理においては、ディレクトリ及びFAT
が格納されているゾーンの一般用BPTを作成するよう
にすればよい。また、ディレクトリ及びFATが格納さ
れるブロックの論理アドレスは上述の値である必要はな
く、また、ディレクトリ及びFATが格納されるブロッ
クは256個である必要はなく、任意の個数であってよ
い。また、ディレクトリ及びFATが記憶されているブ
ロックに割り当てられる論理ブロックアドレスの値も上
述の値に限られず、予め任意に定められた値が割り当て
られてよい。
【0113】また、フラッシュメモリ11の記憶領域内
においてデータが格納されている記憶領域を示す情報の
形式は任意である。従って、例えば、フラッシュメモリ
11の記憶領域の大きさに相当する大きさの仮想の記憶
領域を、シリンダ、ヘッド及びセクタの3段階の階層に
従って区分した場合の各区画を表すCHS(Cylinder-H
ead-Sector)形式の情報を、物理ブロックアドレス及び
ページアドレスに代えて用いてもよい。また、論理ブロ
ックアドレスがCHS形式に従っていてもよい。
【0114】また、CPU121は、CPU121が過
去にアクセスしたデータについて、そのデータが格納さ
れているページの論理ブロックアドレス及び物理ブロッ
クアドレスを互いに対応づけてSRAM123に格納し
たり、あるいは自己が記憶するようにしてもよい。
【0115】これにより、例えば、フラッシュメモリ1
1に格納されているファイルのファイル名が階層構造を
有するように構成されている場合において、同一階層に
属する異なるファイルのデータを連続して読み出す処理
の高速化が図られる。すなわち、(a)ファイル名が、
1個以上の階層の名称を含んでいて、(b)各々の階層
の名称をファイル名とするファイル(フォルダ)が、そ
の階層の直近の下位の階層を表すフォルダの論理的位置
(すなわち、論理ブロックアドレス及びページアドレ
ス)及び名称(フォルダ名)を格納している、ような場
合において、同一階層に属する異なるファイルのデータ
を連続して読み出す処理が高速化される。
【0116】以下、具体的に説明すると、例えば、マイ
クロソフト社のMS−DOS(商標)により管理される
ファイルの場合、ファイルは、記号「¥」で区切られた
文字列から構成されるフォルダ名により特定され、2個
の記号「¥」に挟まれた文字列が階層の名称を構成し、
ファイル名の先頭に近い文字列ほど上位の階層を示すも
のである。
【0117】そして、ファイルの内容が格納されている
先頭ページの論理ブロックアドレス及ページアドレスを
特定するためには、ファイル名に含まれる最上位の階層
を示すフォルダ名を有するフォルダについて、その論理
的位置をFATを用いて特定して読み出す。次に、読み
出したフォルダに含まれるフォルダ名及びそのフォルダ
名を有する下位のフォルダの論理的位置を特定して読み
出す。以下、ファイルの内容の論理的位置が特定される
まで、順次下位のフォルダのフォルダ名及び論理的位置
を特定して読み出す動作を繰り返す。
【0118】このように、ファイル名が階層構造を有す
る場合、フォルダを読み出す処理として上述のステップ
S201〜S211の処理を行う記憶システムは、ファ
イルを読み出すために連続して読み出される複数のフォ
ルダが、フラッシュメモリ11の互いに異なるゾーンに
格納されていると、各々のフォルダを読み出す度に、ス
テップS208における一般用BSI・一般用BPTの
作成を行う。このため、このようなファイルが同一階層
内に複数あるときは、これらの各ファイルの内容を連続
して読み出す場合は、読み出しの処理の時間に占める一
般用BSI・一般用BPT作成の処理の比率が大きくな
り、読み出しの処理の所要時間が増大する。
【0119】しかし、CPU121が、自己が過去にア
クセスしたデータが格納されているページの論理ブロッ
クアドレス及び物理ブロックアドレスを互いに対応づけ
てSRAM123に格納したり、あるいは自己が記憶す
るようにしたとする。そして、ステップS207での判
別の後、ステップS208に処理を移す前に、CPU1
21が、SRAM123又はCPU121自身が記憶し
ているこの論理ブロックアドレス及び物理ブロックアド
レスを検索し、コンピュータ2より供給された論理ブロ
ックアドレスに対応づけられた物理ブロックアドレスが
索出された場合は、索出された物理ブロックアドレスを
ステップS209で索出されたものとして扱うことを決
定し、処理をステップS210に移すようにする。
【0120】すると、SRAM123に格納されている
一般用BPTが論理ブロックアドレスと物理ブロックア
ドレスとの対応関係を示すゾーンと、読み出す対象のフ
ォルダないしファイルが格納されているゾーンとが異な
っていても、読み出す対象のフォルダないしファイルの
論理ブロックアドレス及び物理ブロックアドレスがSR
AM123あるいはCPU121に記憶されていれば、
ステップS208の処理が回避される。従って、読み出
しの処理の所要時間が短縮される。
【0121】例えば、2個のファイル(ファイル名が"\
work0\teldevice\ddc\data0\file000.dat"であるファイ
ル、及びファイル名が"\work0\teldevice\ddc\data0\fi
le001.dat"であるファイル)を連続して読み出す場合を
例として説明する。
【0122】この場合において、フォルダ名が"work
0"、"teldevice"、"ddc"及び"data0"であるフォルダ
が、順に、ゾーン1、ゾーン2、ゾーン3及びゾーン0
に格納されていて、ファイル名が"file000.dat"及び"fi
le001.dat"であるファイルがいずれもゾーン1に格納さ
れているとする。
【0123】このときCPU121は、(1)ディレク
トリ及びFATを読み、(2)次いで、フォルダ名が"w
ork0"、"teldevice"、"ddc"及び"data0"であるフォル
ダ、ファイル名が"file000.dat"であるファイルを順に
読み、(3)次いで再びディレクトリ及びFATを読
み、(4)次いで、フォルダ名が"work0"、"teldevic
e"、"ddc"及び"data0"であるフォルダ及びファイル名
が"file001.dat"であるファイルを順に読む、という動
作を行う。
【0124】このため、CPU121は、順に、ゾーン
0、1、2、3、0、1、0、1、2、3、0及び1に
アクセスする必要がある。従って、フォルダを読み出す
処理として上述のステップS201〜S211の処理を
行う記憶システムのCPU121は、一般用BPTの作
成を上述の(2)及び(4)の動作で各5回、計10回
行う必要がある。
【0125】しかし、SRAM123あるいはCPU1
21が、フォルダ名"work0"、"teldevice"、"ddc"及び"
data0"のフォルダが格納されているページの論理ブロッ
クアドレス及び物理ブロックアドレスを互いに対応づけ
て記憶し、ステップS207での判別の後、ステップS
208に処理を移す前に、CPU121が、SRAM1
23又はCPU121自身が記憶しているこれらの論理
ブロックアドレス及び物理ブロックアドレスを索出し
て、ステップS209で索出されたものとして扱うよう
にすれば、上述の(4)での5回の一般用BPTの作成
が省略される。
【0126】なお、SRAM123やCPU121は、
CPU121が過去にアクセスしたデータ全ての論理ブ
ロックアドレス及び物理ブロックアドレスを記憶する必
要はない。従って、例えば、SRAM123が、CPU
121が過去にアクセスしたデータ全ての論理ブロック
アドレス及び物理ブロックアドレスを記憶するための所
定の記憶領域を備え、CPU121は、この記憶領域に
格納し得る限度において、自己が過去にアクセスしたデ
ータの論理ブロックアドレス及び物理ブロックアドレス
をこの記憶領域に格納するようにしてもよい。
【0127】また、上述のステップS406やS423
の処理においてファイル管理用BSIを検索して空きブ
ロックの物理ブロックアドレスを索出するとき、また、
上述のステップS415の処理において一般用BSIを
検索して空きブロックの物理ブロックアドレスを索出す
るとき、CPU121は、ステップS406、S417
及びS423の処理において最後にデータが書き込まれ
た空きブロックの次のブロック以降の空きブロックを、
ゾーン毎に、物理ブロックアドレスが若いものから順次
索出する(ただし、後続の空きブロックがないときは、
先頭の空きブロックを索出する)ようにしてもよい。
【0128】この場合、CPU121は、具体的には、
例えば、フラッシュメモリ11の記憶領域の各々のゾー
ンについて、ゾーンステップS406、S417及びS
423において最後にデータが書き込まれた空きブロッ
クの物理ブロックアドレスをフラッシュメモリ11の当
該ゾーンの所定の記憶領域に書き込むようにする。そし
て、ステップS406、S415及びS423におい
て、書き込みをする対象のゾーンの当該記憶領域に格納
されている物理ブロックアドレスを読み出し、読み出し
た物理ブロックアドレスが示す空きブロックの次のブロ
ック以降の先頭の空きブロックを索出するようにする。
ただし、書き込みをする対象のゾーン内に該当する空き
ブロックがない場合は、当該ゾーンに属するブロックの
うち最も物理ブロックアドレスが若いものを索出するも
のとする。
【0129】これにより、空きブロックへの書き込み
は、ゾーン毎にサイクリックになされる。このため、特
定のブロックのみデータ更新の頻度が高くなることがな
くなるので、特定のブロックの性能が劣化する事態が防
止される。
【0130】また、CPU121は、例えば、ステップ
S406、S417及びS423において最後にデータ
が書き込まれた空きブロックの次のブロック以降で同一
ゾーン内の先頭の空きブロック(ただし、ない場合は同
一ゾーン内の先頭の空きブロック)をファイル管理用B
SIあるいは一般用BSIを検索することにより特定
し、特定された空きブロックの冗長部に、当該空きブロ
ックが次に書き込みの対象となる空きブロックであるこ
とを示すマークデータを書き込むようにしてもよい。
【0131】この場合は、ステップS406、S415
及びS423において、CPU121がフラッシュメモ
リ11の記憶領域の各ブロックの冗長部を検索してマー
クデータを索出し、マークデータが索出された空きブロ
ック以降の空きブロックを、物理ブロックアドレスが若
いものから順次索出するようにすれば、空きブロックへ
の書き込みは、ゾーン毎にサイクリックになされる。
【0132】なお、マークデータとしては、具体的に
は、フラッシュメモリ11がNAND型のEEPROM
である場合、例えば値”00h”以外の、16進表記で
2桁となる所定の値を用いるようにして、当該マークデ
ータが書き込まれた空きブロックのデータ領域にデータ
を書き込むようにすれば、当該マークデータが書き込ま
れている部分を値”00h”で上書きすることにより、
マークデータは除去される。このため、マークデータを
除去するために空きブロックの記憶内容の消去を実行す
るといった操作は不要となる。
【0133】以上、この発明の実施の形態を説明した
が、この発明の記憶システムは、専用のシステムによら
ず、通常のコンピュータシステムを用いて実現可能であ
る。例えば、フラッシュメモリ11を装着するスロット
を備えるパーソナルコンピュータに上述の動作を実行す
るためのプログラムを格納した媒体(フロッピーディス
ク、CD−ROM等)から該プログラムをインストール
することにより、上述の処理を実行する記憶システムを
構成することができる。
【0134】また、コンピュータにプログラムを供給す
るための媒体は、通信媒体(通信回線、通信ネットワー
ク、通信システムのように、一時的且つ流動的にプログ
ラムを保持する媒体)でも良い。例えば、通信ネットワ
ークの掲示板(BBS)に該プログラムを掲示し、これ
をネットワークを介して配信してもよい。そして、この
プログラムを起動し、OSの制御下に、他のアプリケー
ションプログラムと同様に実行することにより、上述の
処理を実行することができる。
【0135】なお、OSが処理の一部を分担する場合、
あるいは、OSが本願発明の1つの構成要素の一部を構
成するような場合には、記録媒体には、その部分をのぞ
いたプログラムを格納してもよい。この場合も、この発
明では、その記録媒体には、コンピュータが実行する各
機能又はステップを実行するためのプログラムが格納さ
れているものとする。
【0136】
【発明の効果】以上説明したように、この発明によれ
ば、データにアクセスする際にアドレス変換テーブルを
作成する頻度が少ない記憶装置、記憶システム、メモリ
管理方法が実現される。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる記憶システムの構
成を示すブロック図である。
【図2】フラッシュメモリの記憶領域の論理的構造を模
式的に示す図である。
【図3】ディレクトリ及びFATのデータ構造を模式的
に示す図である。
【図4】一般用BSI及びファイル管理用BSIのデー
タ構造を模式的に示す図である。
【図5】BPTのデータ構造を模式的に示す図である。
【図6】初期処理を示すフローチャートである。
【図7】データ読み出しの処理を示すフローチャートで
ある。
【図8】一般用BSI・一般用BPTの作成の処理を示
すフローチャートである。
【図9】データ書き込みの処理を示すフローチャートで
ある。
【図10】FAT更新の処理を示すフローチャートであ
る。
【図11】データ転記の処理を示すフローチャートであ
る。
【符号の説明】
1 メモリユニット 11 フラッシュメモリ 12 コントローラ 121 CPU 122 ROM 123 SRAM 2 コンピュータ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平9−212411(JP,A) 特開 平9−81332(JP,A) 特開 平8−147202(JP,A) 特開 平11−96068(JP,A) 欧州特許出願公開896280(EP,A 1) (58)調査した分野(Int.Cl.7,DB名) G06F 12/00 - 12/02

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】各々が複数のゾーンのいずれかに属し、物
    理アドレスを割り当てられた、データを記憶するための
    複数のメモリブロックを含む記憶手段と、 前記メモリブロックに記憶されている前記データを読み
    出して外部に出力する読み出し手段と、を備え、 所定の前記ゾーンに属する前記メモリブロックは、前記
    記憶手段に記憶されているデータと該データが記憶され
    ているメモリブロックの論理アドレスとの対応関係を表
    すデータ配置テーブルを記憶するデータ配置記憶手段を
    備え、 前記読み出し手段は、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 外部からの指示に応答し、前記第1のアドレス変換テー
    ブルに基づいて、前記データ配置テーブルを記憶するメ
    モリブロックの物理アドレスを特定し、特定した物理ア
    ドレスが示す前記メモリブロックより前記データ配置テ
    ーブルを読み出し、外部に供給するデータ配置テーブル
    検索手段と、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索手段と、前記データ検索手段が特定した物理アドレス及び該物理
    アドレスを示す論理アドレスを互いに対応づけて記憶す
    るアクセス履歴記憶手段と、を備え、 前記データ検索手段は、前記アクセス履歴記憶手段が記
    憶する論理アドレス及び物理アドレスに基づいて、前記
    データ配置テーブル検索手段が特定した論理アドレスが
    示す物理アドレスを特定する手段を備える、 ことを特徴とする記憶装置。
  2. 【請求項2】データを記憶していない前記メモリブロッ
    クから構成される空きブロックを示す情報を格納する空
    きブロックテーブルを記憶する空きブロックテーブル記
    憶手段と、 書き込み対象のデータ及び論理アドレスが自己に供給さ
    れたとき、前記空きブロックテーブルに登録されている
    空きブロックの中から書き込み対象の空きブロックを選
    択する空きブロック選択手段と、 書き込み対象の前記データを前記空きブロック選択手段
    により選択された空きブロックに書き込む空きブロック
    書込手段と、 書き込み対象の前記データを書き込んだ空きブロックの
    物理アドレスと、前記空きブロック選択手段に供給され
    た論理アドレスとの対応付けを表すように前記第2のア
    ドレス変換テーブルを更新する手段と、をさらに備え
    る、 ことを特徴とする請求項1に記載の記憶装置。
  3. 【請求項3】各々が複数のゾーンのいずれかに属し、物
    理アドレスを割り当てられた、データを記憶するための
    複数のメモリブロックを含む記憶手段と、 前記メモリブロックに記憶されている前記データを読み
    出して外部に出力する読み出し手段と、を備え、 所定の前記ゾーンに属する前記メモリブロックは、前記
    記憶手段に記憶されているデータと該データが記憶され
    ているメモリブロックの論理アドレスとの対応関係を表
    すデータ配置テーブルを記憶するデータ配置記憶手段を
    備え、 前記読み出し手段は、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 外部からの指示に応答し、前記第1のアドレス変換テー
    ブルに基づいて、前記データ配置テーブルを記憶するメ
    モリブロックの物理アドレスを特定し、特定した物理ア
    ドレスが示す前記メモリブロックより前記データ配置テ
    ーブルを読み出し、外部に供給するデータ配置テーブル
    検索手段と、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索手段と、を備える、 ことを特徴とする記憶装置であって、 データを記憶していない前記メモリブロックから構成さ
    れる空きブロックを示す情報を格納する空きブロックテ
    ーブルを記憶する空きブロックテーブル記憶手段と、 書き込み対象のデータ及び論理アドレスが自己に供給さ
    れたとき、前記空きブロックテーブルに登録されている
    空きブロックの中から書き込み対象の空きブロックを選
    択する空きブロック選択手段と、 書き込み対象の前記データを前記空きブロック選択手段
    により選択された空きブロックに書き込む空きブロック
    書込手段と、 書き込み対象の前記データを書き込んだ空きブロックの
    物理アドレスと、前記空きブロック選択手段に供給され
    た論理アドレスとの対応付けを表すように前記第2のア
    ドレス変換テーブルを更新する手段と、をさらに備え、 前記空きブロックテーブルは、前記データ配置テーブル
    を記憶する前記メモリブロックを含むゾーンに属する空
    きブロックを示す情報を格納する第1の空きブロックテ
    ーブルと、いずれかのゾーンに属する空きブロックを示
    す情報を格納する第2の空きブロックテーブルと、を含
    み、 前記空きブロックテーブル記憶手段は、前記ゾーン特定
    手段が特定したゾーンに属する空きブロック情報を格納
    する前記第2の空きブロックテーブルを自己が記憶して
    いるか否かを判別し、記憶していないと判別したとき、
    前記第2の空きブロックテーブルを作成して記憶する手
    段を備え、 前記空きブロック選択手段は、書き込み対象のデータ及
    び論理アドレスが自己に供給されたとき、前記第2の空
    きブロックテーブルに登録されている空きブロックのう
    ちから書き込み対象の空きブロックを選択する手段を備
    え、 前記空きブロック書込手段が書き込んだ前記データと、
    前記空きブロック選択手段に供給された論理アドレスと
    の対応付けを表すように更新された前記データ配置テー
    ブルを、前記第1の空きブロックテーブルに登録されて
    いる空きブロックに書き込む手段と、 更新された前記データ配置テーブルを記憶している前記
    メモリブロックが空きブロックであることを表さないよ
    うに前記第1の空きブロックテーブルを更新する手段
    と、を備える、 ことを特徴とする記憶装置。
  4. 【請求項4】前記データ検索手段が特定した物理アドレ
    ス及び該物理アドレスを示す論理アドレスを互いに対応
    づけて記憶するアクセス履歴記憶手段を備え、 前記データ検索手段は、前記アクセス履歴記憶手段が記
    憶する論理アドレス及び物理アドレスに基づいて、前記
    データ配置テーブル検索手段が特定した論理アドレスが
    示す物理アドレスを特定する手段を備える、 ことを特徴とする請求項3に記載の記憶装置。
  5. 【請求項5】前記空きブロックテーブルは、前記空きブ
    ロックに循環的に付された順序を示す情報を含むもので
    あり、 最も新しくデータが格納された空きブロックの次にデー
    タを格納されるべき空きブロックを指定する起点情報を
    記憶する手段を備え、 前記空きブロック選択手段は、書き込み対象のデータ及
    び論理アドレスが自己に供給されたとき、前記起点情報
    が示す空きブロック以降の空きブロックを、前記空きブ
    ロックテーブルが示す順序に従って順次選択する手段を
    備える、 ことを特徴とする請求項2、3又は4に記載の記憶装
    置。
  6. 【請求項6】前記起点情報は、最も新しくデータが格納
    された空きブロックの次にデータを格納されるべき前記
    空きブロックの一部に記憶されており、 前記空きブロック書込手段は、 書き込み対象の前記データを書き込んだ前記空きブロッ
    クに記憶されている前記起点情報を消去する手段と、 最も新しくデータを書き込んだ空きブロックの次の順序
    が付されている空きブロックの前記一部に前記起点情報
    を書き込む手段と、を備える、 ことを特徴とする請求項5に記載の記憶装置。
  7. 【請求項7】前記メモリブロックは、データ領域と冗長
    領域から構成され、前記起点情報は、最も新しくデータ
    が格納された空きブロックの次にデータを格納されるべ
    き前記空きブロックの前記冗長領域に格納されている、 ことを特徴とする請求項6に記載の記憶装置。
  8. 【請求項8】各々が複数のゾーンのいずれかに属し、物
    理アドレスを割り当てられた、データを記憶するための
    複数のメモリブロックを含む記憶手段と、 前記メモリブロックに記憶されている前記データを読み
    出して外部に出力する読み出し手段と、を備え、 所定の前記ゾーンに属する前記メモリブロックは、前記
    記憶手段に記憶されているデータと該データが記憶され
    ているメモリブロックの論理アドレスとの対応関係を表
    すデータ配置テーブルを記憶するデータ配置記憶手段を
    備え、 前記読み出し手段は、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 前記第1のアドレス変換テーブルに基づいて、前記デー
    タ配置テーブルを記憶するメモリブロックの物理アドレ
    スを特定し、特定した物理アドレスが示す前記メモリブ
    ロックより前記データ配置テーブルを読み出すデータ配
    置テーブル検索手段と、 前記データ配置テーブル検索手段が読み出した前記デー
    タ配置テーブルに基づいて、読み出し対象の前記データ
    を示す論理アドレスを特定する論理アドレス検索手段
    と、 前記論理アドレス検索手段が特定した前記論理アドレス
    に基づいて、該論理アドレスが示すメモリブロックが属
    するゾーンを特定するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、前記論理
    アドレス検索手段が特定した論理アドレスが示す物理ア
    ドレスを特定し、特定した物理アドレスが示す前記メモ
    リブロックに格納されている前記データを読み出して出
    力するデータ検索手段と、前記データ検索手段が特定した物理アドレス及び該物理
    アドレスを示す論理アドレスを互いに対応づけて記憶す
    るアクセス履歴記憶手段と、を備え、 前記データ検索手段は、前記アクセス履歴記憶手段が記
    憶する論理アドレス及び物理アドレスに基づいて、前記
    データ配置テーブル検索手段が特定した論理アドレスが
    示す物理アドレスを特定する手段を備える、 ことを特徴とする記憶システム。
  9. 【請求項9】メモリからのデータの読み出しを管理する
    メモリ管理方法であり、前記メモリは、各々が複数のゾ
    ーンのいずれかに属し、物理アドレスを割り当てられ
    た、前記データを記憶するための複数のメモリブロック
    を含み、所定の前記ゾーンに属する前記メモリブロック
    が、前記データと前記データが記憶されているメモリブ
    ロックの論理アドレスとの対応関係を表すデータ配置テ
    ーブルを記憶するものであって、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶ステップと、 外部からの指示に応答し、前記第1のアドレス変換テー
    ブルに基づいて、前記データ配置テーブルを記憶するメ
    モリブロックの物理アドレスを特定し、特定した物理ア
    ドレスが示す前記メモリブロックより前記データ配置テ
    ーブルを読み出し、外部に供給するデータ配置テーブル
    検索ステップと、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定ステップと、 前記論理アドレスと、前記ゾーン特定ステップで特定さ
    れたゾーンに属する前記メモリブロックの物理アドレス
    との対応関係を表す情報を格納する第2のアドレス変換
    テーブルを自己が記憶しているか否かを判別し、記憶し
    ていないと判別したとき、前記第2のアドレス変換テー
    ブルを作成して記憶する第2のテーブル記憶ステップ
    と、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索ステップと、前記データ検索ステップで特定された物理アドレス及び
    該物理アドレスを示す論理アドレスを互いに対応づけて
    記憶するアクセス履歴記憶ステップと、備え、 前記データ検索ステップは、前記アクセス履歴記憶ステ
    ップで記憶された論理アドレス及び物理アドレスに基づ
    いて、前記データ配置テーブル検索ステップで特定され
    た論理アドレスが示す物理アドレスを特定するステップ
    を含む、 ことを特徴とするメモリ管理方法。
  10. 【請求項10】各々が複数のゾーンのいずれかに属し、
    物理アドレスを割り当てられた、前記データを記憶する
    ための複数のメモリブロックを含み、所定の前記ゾーン
    に属する前記メモリブロックが、前記データと前記デー
    タが記憶されているメモリブロックの物理アドレスを示
    す論理アドレスとの対応関係を表すデータ配置テーブル
    を記憶することを特徴とするメモリに接続されたコンピ
    ュータを、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 外部の指示に応答し、前記第1のアドレス変換テーブル
    に基づいて、前記データ配置テーブルを記憶するメモリ
    ブロックの物理アドレスを特定し、特定した物理アドレ
    スが示す前記メモリブロックより前記データ配置テーブ
    ルを読み出し、外部に供給するデータ配置テーブル検索
    手段と、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索手段と、前記データ検索手段が特定した物理アドレス及び該物理
    アドレスを示す論理アドレスを互いに対応づけて記憶す
    るアクセス履歴記憶手段と、 して機能させるためのプログラムを記録したコンピュー
    タ読み取り可能な記録媒体であって、 前記データ検索手段は、前記アクセス履歴記憶手段が記
    憶する論理アドレス及び物理アドレスに基づいて、前記
    データ配置テーブル検索手段が特定した論理アドレスが
    示す物理アドレスを特定する手段を備える、 ことを特徴とする記録媒体。
  11. 【請求項11】各々が複数のゾーンのいずれかに属し、
    物理アドレスを割り当てられた、データを記憶するため
    の複数のメモリブロックを含む記憶手段と、 前記メモリブロックに記憶されている前記データを読み
    出して外部に出力する読み出し手段と、を備え、 所定の前記ゾーンに属する前記メモリブロックは、前記
    記憶手段に記憶されているデータと該データが記憶され
    ているメモリブロックの論理アドレスとの対応関係を表
    すデータ配置テーブルを記憶するデータ配置記憶手段を
    備え、 前記読み出し手段は、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 前記第1のアドレス変換テーブルに基づいて、前記デー
    タ配置テーブルを記憶するメモリブロックの物理アドレ
    スを特定し、特定した物理アドレスが示す前記メモリブ
    ロックより前記データ配置テーブルを読み出すデータ配
    置テーブル検索手段と、 前記データ配置テーブル検索手段が読み出した前記デー
    タ配置テーブルに基づいて、読み出し対象の前記データ
    を示す論理アドレスを特定する論理アドレス検索手段
    と、 前記論理アドレス検索手段が特定した前記論理アドレス
    に基づいて、該論理アドレスが示すメモリブロックが属
    するゾーンを特定するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、前記論理
    アドレス検索手段が特定した論理アドレスが示す物理ア
    ドレスを特定し、特定した物理アドレスが示す前記メモ
    リブロックに格納されている前記データを読み出して出
    力するデータ検索手段と、を備える、 ことを特徴とする記憶システムであって、 データを記憶していない前記メモリブロックから構成さ
    れる空きブロックを示す情報を 格納する空きブロックテ
    ーブルを記憶する空きブロックテーブル記憶手段と、 書き込み対象のデータ及び論理アドレスが自己に供給さ
    れたとき、前記空きブロックテーブルに登録されている
    空きブロックの中から書き込み対象の空きブロックを選
    択する空きブロック選択手段と、 書き込み対象の前記データを前記空きブロック選択手段
    により選択された空きブロックに書き込む空きブロック
    書込手段と、 書き込み対象の前記データを書き込んだ空きブロックの
    物理アドレスと、前記空きブロック選択手段に供給され
    た論理アドレスとの対応付けを表すように前記第2のア
    ドレス変換テーブルを更新する手段と、をさらに備え、 前記空きブロックテーブルは、前記データ配置テーブル
    を記憶する前記メモリブロックを含むゾーンに属する空
    きブロックを示す情報を格納する第1の空きブロックテ
    ーブルと、いずれかのゾーンに属する空きブロックを示
    す情報を格納する第2の空きブロックテーブルと、を含
    み、 前記空きブロックテーブル記憶手段は、前記ゾーン特定
    手段が特定したゾーンに属する空きブロック情報を格納
    する前記第2の空きブロックテーブルを自己が記憶して
    いるか否かを判別し、記憶していないと判別したとき、
    前記第2の空きブロックテーブルを作成して記憶する手
    段を備え、 前記空きブロック選択手段は、書き込み対象のデータ及
    び論理アドレスが自己に供給されたとき、前記第2の空
    きブロックテーブルに登録されている空きブロックのう
    ちから書き込み対象の空きブロックを選択する手段を備
    え、 前記空きブロック書込手段が書き込んだ前記データと、
    前記空きブロック選択手段に供給された論理アドレスと
    の対応付けを表すように更新された前記データ配置テー
    ブルを、前記第1の空きブロックテーブルに登録されて
    いる空きブロックに書き込む手段と、 更新された前記データ配置テーブルを記憶している前記
    メモリブロックが空きブロックであることを表さないよ
    うに前記第1の空きブロックテーブルを更新する手段
    と、をさらに備える、 ことを特徴とする記憶システム。
  12. 【請求項12】メモリからのデータの読み出しを管理す
    るメモリ管理方法であり、前記メモリは、各々が複数の
    ゾーンのいずれかに属し、物理アドレスを割り当てられ
    た、前記データを記憶するための複数のメモリブロック
    を含み、所定の前記ゾーンに属する前記メモリブロック
    が、前記データと前記データが記憶されているメモリブ
    ロックの論理アドレスとの対応関係を表すデータ配置テ
    ーブルを記憶するものであって、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶ステップと、 外部からの指示に応答し、前記第1のアドレス変換テー
    ブルに基づいて、前記データ配置テーブルを記憶するメ
    モリブロックの物理アドレスを特定し、特定した物理ア
    ドレスが示す前記メモリブロックより前記データ配置テ
    ーブルを読み出し、外部に供給するデータ配置テーブル
    検索ステップと、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定ステップと、 前記論理アドレスと、前記ゾーン特定ステップで特定さ
    れたゾーンに属する前記メモリブロックの物理アドレス
    との対応関係を表す情報を格納する第2のアドレス変換
    テーブルを記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶ステップと、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索ステップと、を備える、 ことを特徴とするメモリ管理方法であって、 データを記憶していない前記メモリブロックから構成さ
    れる空きブロックを示す情報を格納する空きブロックテ
    ーブルを記憶する空きブロックテーブル記憶ステップ
    と、 書き込み対象のデータ及び論理アドレスが供給されたと
    き、前記空きブロックテーブルに登録されている空きブ
    ロックの中から書き込み対象の空きブロックを選択する
    空きブロック選択ステップと、 書き込み対象の前記データを前記空きブロック選択ステ
    ップで選択された空きブロックに書き込む空きブロック
    書込ステップと、 書き込み対象の前記データを書き込んだ空きブロックの
    物理アドレスと、前記空きブロック選択手段に供給され
    た論理アドレスとの対応付けを表すように前記第2のア
    ドレス変換テーブルを更新するステップと、をさらに備
    え、 前記空きブロックテーブルは、前記データ配置テーブル
    を記憶する前記メモリブロックを含むゾーンに属する空
    きブロックを示す情報を格納する第1の空きブロックテ
    ーブルと、いずれかのゾーンに属する空きブロックを示
    す情報を格納する第2の空きブロックテーブルと、を含
    み、 前記空きブロックテーブル記憶ステップでは、前記ゾー
    ン特定ステップで特定されたゾーンに属する空きブロッ
    ク情報を格納する前記第2の空きブロックテーブルを記
    憶しているか否かを判別し、記憶していないと判別した
    とき、前記第2の空きブロックテーブルを作成して記憶
    し、 前記空きブロック選択ステップは、書き込み対象のデー
    タ及び論理アドレスが供給されたとき、前記第2の空き
    ブロックテーブルに登録されている空きブロックのうち
    から書き込み対象の空きブロックを選択するステップを
    備え、 前記空きブロック書込ステップで書き込んだ前記データ
    と、書き込み対象のデータの論理アドレスとして供給さ
    れた論理アドレスとの対応付けを表すように更新された
    前記データ配置テーブルを、前記第1の空きブロックテ
    ーブルに登録されている空きブロックに書き込むステッ
    プと、 更新された前記データ配置テーブルを記憶している前記
    メモリブロックが空きブロックであることを表さないよ
    うに前記第1の空きブロックテーブルを更新するステッ
    プと、をさらに備える、 ことを特徴とするメモリ管理方法。
  13. 【請求項13】各々が複数のゾーンのいずれかに属し、
    物理アドレスを割り当てられた、前記データを記憶する
    ための複数のメモリブロックを含み、所定の前記ゾーン
    に属する前記メモリブロックが、前記データと前記デー
    タが記憶されているメモリブロックの物理アドレスを示
    す論理アドレスとの対応関係を表すデータ配置テーブル
    を記憶することを特徴とするメモリに接続されたコンピ
    ュータを、 前記論理アドレスと、前記データ配置テーブルを記憶す
    る前記メモリブロックの物理アドレスとの対応関係を表
    す情報を格納する第1のアドレス変換テーブルを作成し
    て記憶する第1のテーブル記憶手段と、 外部の指示に応答し、前記第1のアドレス変換テーブル
    に基づいて、前記データ配置テーブルを記憶するメモリ
    ブロックの物理アドレスを特定し、特定した物理アドレ
    スが示す前記メモリブロックより前記データ配置テーブ
    ルを読み出し、外部に供給するデータ配置テーブル検索
    手段と、 読み出し対象の前記データを示す論理アドレスを外部よ
    り取得し、取得した前記論理アドレスに基づいて、該論
    理アドレスが示すメモリブロックが属するゾーンを特定
    するゾーン特定手段と、 前記論理アドレスと、前記ゾーン特定手段が特定したゾ
    ーンに属する前記メモリブロックの物理アドレスとの対
    応関係を表す情報を格納する第2のアドレス変換テーブ
    ルを自己が記憶しているか否かを判別し、記憶していな
    いと判別したとき、前記第2のアドレス変換テーブルを
    作成して記憶する第2のテーブル記憶手段と、 前記第2のアドレス変換テーブルに基づいて、読み出し
    対象の前記データの論理アドレスが示す物理アドレスを
    特定し、特定した物理アドレスが示す前記メモリブロッ
    クに格納されている前記データを読み出して出力するデ
    ータ検索手段と、 して機能させるためのプログラムを記録したコンピュー
    タ読み取り可能な記録媒体であって、 前記プログラムは、前記コンピュータを、データを記憶
    していない前記メモリブロックから構成される空きブロ
    ックを示す情報を格納する空きブロックテーブルを記憶
    する空きブロックテーブル記憶手段と、書き込み対象の
    データ及び論理アドレスが自己に供給されたとき、前記
    空きブロックテーブルに登録されている空きブロックの
    中から書き込み対象の空きブロックを選択する空きブロ
    ック選択手段と、書き込み対象の前記データを前記空き
    ブロック選択手段により選択された空きブロックに書き
    込む空きブロック書込手段と、書き込み対象の前記デー
    タを書き込んだ空きブロックの物理アドレスと、前記空
    きブロック選択手段に供給された論理アドレスとの対応
    付けを表すように前記第2のアドレス変換テーブルを更
    新する手段としてさらに機能させるプログラムを含み、 前記空きブロックテーブルは、前記データ配置テーブル
    を記憶する前記メモリブロックを含むゾーンに属する空
    きブロックを示す情報を格納する第1の空きブロックテ
    ーブルと、いずれかのゾーンに属する空きブロックを示
    す情報を格納する第2の空きブロックテーブルと、を含
    み、 前記空きブロックテーブル記憶手段は、前記ゾーン特定
    手段が特定したゾーンに属する空きブロック情報を格納
    する前記第2の空きブロックテーブルを自己が記憶して
    いるか否かを判別し、記憶していないと判別したとき、
    前記第2の空きブロックテーブルを作成して記憶する手
    段を備え、 前記空きブロック選択手段は、書き込み対象のデータ及
    び論理アドレスが自己に供給されたとき、前記第2の空
    きブロックテーブルに登録されている空きブロックのう
    ちから書き込み対象の空きブロックを選択する手段を備
    え、 前記プログラムは、前記コンピュータを、前記空きブロ
    ック書込手段が書き込んだ前記データと、前記空きブロ
    ック選択手段に供給された論理アドレスとの対応付けを
    表すように更新された前記データ配置テーブルを、前記
    第1の空きブロックテーブルに登録されている空きブロ
    ックに書き込む手段と、更新された前記データ配置テー
    ブルを記憶している前記メモリブロックが空きブロック
    であることを表さないように前記第1の空きブロックテ
    ーブルを更新する手段としてさらに機能させるプログラ
    ムを含む、 ことを特徴とする記録媒体。
JP11222299A 1999-04-20 1999-04-20 記憶装置、記憶システム、メモリ管理方法及び記録媒体 Expired - Fee Related JP3524428B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP11222299A JP3524428B2 (ja) 1999-04-20 1999-04-20 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US09/551,722 US6477616B1 (en) 1999-04-20 2000-04-18 Storage device, storage system, memory management method, recording medium, and computer data signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11222299A JP3524428B2 (ja) 1999-04-20 1999-04-20 記憶装置、記憶システム、メモリ管理方法及び記録媒体

Publications (2)

Publication Number Publication Date
JP2000305839A JP2000305839A (ja) 2000-11-02
JP3524428B2 true JP3524428B2 (ja) 2004-05-10

Family

ID=14581320

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11222299A Expired - Fee Related JP3524428B2 (ja) 1999-04-20 1999-04-20 記憶装置、記憶システム、メモリ管理方法及び記録媒体

Country Status (2)

Country Link
US (1) US6477616B1 (ja)
JP (1) JP3524428B2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6742078B1 (en) * 1999-10-05 2004-05-25 Feiya Technology Corp. Management, data link structure and calculating method for flash memory
US6424975B1 (en) * 2000-01-07 2002-07-23 Trg Products, Inc. FAT file system in palm OS computer
EP1130516A1 (en) * 2000-03-01 2001-09-05 Hewlett-Packard Company, A Delaware Corporation Address mapping in solid state storage device
JP3574078B2 (ja) 2001-03-16 2004-10-06 東京エレクトロンデバイス株式会社 記憶装置と記憶装置制御方法
US7155560B2 (en) * 2001-06-27 2006-12-26 Intel Corporation Method and apparatus for storing data in flash memory
JP2003016763A (ja) * 2001-06-29 2003-01-17 Toshiba Corp ディスクアクセス装置及びディスクアクセス方法
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
US6675276B2 (en) * 2001-11-13 2004-01-06 Eastman Kodak Company Method for providing extensible dos-fat system structures on one-time programmable media
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
JP4238514B2 (ja) * 2002-04-15 2009-03-18 ソニー株式会社 データ記憶装置
US20060143365A1 (en) * 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP3919779B2 (ja) 2003-08-29 2007-05-30 キヤノン株式会社 電子写真画像形成装置
JP4521245B2 (ja) * 2004-10-29 2010-08-11 富士フイルム株式会社 記憶デバイス制御装置及びプログラム
JP2006133882A (ja) * 2004-11-02 2006-05-25 Canon Inc 情報処理装置及び方法
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
US8140795B2 (en) * 2005-02-28 2012-03-20 Lenovo (Singapore) Pte. Ltd. Hard disk drive with write-only region
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
CN101263462B (zh) 2005-08-03 2012-05-16 桑迪士克股份有限公司 具有区块管理的非易失性存储器
JP2007101605A (ja) * 2005-09-30 2007-04-19 Eastman Kodak Co フォント管理装置
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
JP5135696B2 (ja) * 2006-03-23 2013-02-06 パナソニック株式会社 電子機器、及びオブジェクト管理方法
KR100809318B1 (ko) 2006-04-04 2008-03-05 삼성전자주식회사 파일 관리 장치 및 방법
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
KR100885783B1 (ko) * 2007-01-23 2009-02-26 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US20090254729A1 (en) * 2008-04-07 2009-10-08 Skymedi Corporation Method of wear leveling for a non-volatile memory
CN101751391A (zh) * 2008-12-01 2010-06-23 扬智科技股份有限公司 建立文件信息表的方法
JP4816740B2 (ja) * 2009-02-09 2011-11-16 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US9396104B1 (en) * 2010-03-22 2016-07-19 Seagate Technology, Llc Accessing compressed data of varying-sized quanta in non-volatile memory
US10055267B2 (en) * 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62194555A (ja) * 1986-02-21 1987-08-27 Nec Corp コンパイラの作業フアイル仮想化方式
US5812814A (en) * 1993-02-26 1998-09-22 Kabushiki Kaisha Toshiba Alternative flash EEPROM semiconductor memory system
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5715455A (en) * 1995-05-18 1998-02-03 International Business Machines Corporation Apparatus and method for storing file allocation table efficiently in memory
JPH1049986A (ja) * 1996-08-05 1998-02-20 Sony Corp 記録媒体、記録又は再生装置、記録又は再生方法
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function

Also Published As

Publication number Publication date
US6477616B1 (en) 2002-11-05
JP2000305839A (ja) 2000-11-02

Similar Documents

Publication Publication Date Title
JP3524428B2 (ja) 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US7831783B2 (en) Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems
USRE46404E1 (en) Flash memory management method
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
US7734862B2 (en) Block management for mass storage
US8489854B1 (en) Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US7861028B2 (en) System and method for configuration and management of flash memory
US6587915B1 (en) Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
US7594062B2 (en) Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area
US5717886A (en) Semiconductor disk device and memory management method
US9563375B2 (en) Method for storing metadata of log-structured file system for flash memory
JP2734391B2 (ja) 不揮発性メモリのファイル管理装置
JP2005242897A (ja) フラッシュディスク装置
US6938140B2 (en) System and method for linear object reallocation in place
US20150052292A1 (en) Method for erasing data entity in memory module
CN107239526A (zh) 文件系统实现方法、碎片整理方法、操作位置定位方法
KR20070024504A (ko) 기억 장치, 메모리 관리 방법 및 프로그램
JP2009205689A (ja) フラッシュディスク装置
EP1139210B1 (en) Method of logic partitioning of a nonvolatile memory array
JP4242245B2 (ja) フラッシュrom制御装置
JP5057887B2 (ja) データ更新装置及びデータ更新方法及びデータ更新プログラム
US20050149493A1 (en) Data recording apparatus and data recording method
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
JPH10289144A (ja) メモリの制御方法
CN119690333A (zh) 文件系统空间的优化方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040212

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees