JP2010049713A - フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム - Google Patents
フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム Download PDFInfo
- Publication number
- JP2010049713A JP2010049713A JP2009273034A JP2009273034A JP2010049713A JP 2010049713 A JP2010049713 A JP 2010049713A JP 2009273034 A JP2009273034 A JP 2009273034A JP 2009273034 A JP2009273034 A JP 2009273034A JP 2010049713 A JP2010049713 A JP 2010049713A
- Authority
- JP
- Japan
- Prior art keywords
- block
- entry
- file
- data
- feprom
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【解決手段】(a)各ブロックにデータ領域を画成し(データ領域はデータ領域エリアに論
理的に分割)、(b)各ブロックにブロック構造体を画成し(ブロック構造体はヘッダと割
当てテーブルを有し、ヘッダはブロックに特定情報を含み、割当てテーブルは、データ領域エリアに対応するエントリと、対応するデータ領域エリアに関連した情報を含む)、(c)割当てテーブルエントリを割当て、(d)データ領域エリアを割当て、(e)割当てられたデ
ータ領域エリアに関連したデータを、割当てられた割当てテーブルエントリに書込み、(f)割当てられたデータ領域エリアにデータを書込み、(g)書込む間にエラーを検出し、(h)
エラー検出時に割当てテーブルエントリを割当て解除状態にセットし、エラーが検出されなくなるまで上記段階(c)、(d)、(e)、(f)を繰り返す方法。
【選択図】図33
Description
ことが含まれる。
本発明の別の目的は、ブロック消去可能なFEPromにおいてブロックを消去した回数を追跡する方法を提供することである。
本発明の更に別の目的は、データを記憶するためのブロックを割り当てる方法を提供することである。
本発明の更に別の目的は、ブロック消去可能なFEPromのためのファイルシステムを提供することである。
ましい実施例において、ブロックヘッダと、ブロック割り当てテーブルと、データ記憶エリアと、データを記憶すべきブロックを選択するためのブロック割り当てルーチンと、ブロック割り当てテーブルのエントリ及びデータ記憶エリアの一部分を選択するためのデータエリア割り当てルーチンと、データを記憶するための記憶ルーチンとを有したブロック消去可能なFEPromを具備している。又、このシステムは、好ましい実施例において、ブロック消去可能なFEPromのためのファイルシステムを実施するファイルマネージャを備えている。
6によって示されたように互いに向かって成長する。ブロック割り当て構造体のAllocエントリは、ブロックの対応領域に対するオフセット2310−2315を含んでいる。好ましい実施例においては、ブロック割り当て構造体が、その領域に記憶されたデータに対して特定のデータを含んでいる。
データ構造体
struct BlockAllocation
{
struct
{
byte Status;
byte Offset[3];
word Len;
} Alloc [ ];
dword BootRecordPtr
dword EraseCount;
word BlockSeq;
word BlockSeqChecksum;
word Status;
}
定義
Alloc ブロック内の領域を定める可変長さアレイ構造体
Status 領域の状態
ビット#
5-2 1111 未使用
1011 中間状態
0111 自由
0011 割り当てられた
0001 割り当て解除された
0010 取って代わられた
0000 ゼロ
7-6 11 未使用エントリ
10 最終エントリ
00 非最終エントリ
Offset この領域のブロックの開始に対するオフセット
Len 領域の長さ( 単位バイト)
BootRecordPtr FEPromがファイル記憶装置として使用されるとき
に記録をブートするための処理
EraseCount ブロックを消去した回数
Blockseq FEProm内のブロックの論理シーケンス
BlockSeqChecksum ブロックシーケンス番号のチェック和
Status
ビット#
1-0 11 ブロックにないブート記録(FEProm がファイルシステム
データを含むとき)
10 ブロックのブート記録
00 取って代わられたブート記録
15-10 110000 レディ
0XXXXX QueuedForErasure
111111 消去された
111110 UpdateInProcess
111100 スペアブロック
111000 ReclaimationInProcess
000000 リアタイアされた
FEPromマネージャは、Allocエントリを追加し、自由スペース内の第1位置を指すように可変オフセットをセットし、変数Lenを領域の長さにセットし、そして割り当てられたことを指示するように変数Statusをセットすることによりブロック内のデータ領域を割り当てる。FEPromマネージャは、対応するAllocエントリにおける変数Statusを割り当て解除された状態にセットすることにより領域の割り当て解除を行う。割り当て解除されたスペースは一般に再割り当てには使用できない。というのは、非FNULL値にセットされているからである。割り当て解除されたスペースは、再割り当てされる前にFNULLにセットされる。割り当て解除されたスペースをFNULLにセットしそして割り当てに使用できるようにするプロセスは、ブロックリクレイミングである。割り当て解除されたスペースは、割り当てられた領域を第2のブロックにコピーしそして第2のブロックのAllocエントリを新たなオフセットを指すようにセットすることによりリクレイミングされる。ブロックのリクレイミングプロセスは、第2ブロックのAllocエントリがブロックヘッダに対しコピー元ブロックにあったのと同じ位置になるように確保する。FEPromマネージャは、論理ブロックシーケンス番号であるヘッダの変数BlockSeqを使用して、データの特定の論理ブロックを識別する。リクレイミング中に、ブロックがコピーされるときには、物理的なブロック番号が変化するが、論理的なブロックシーケンス番号は変化しない。
る。このルーチンに対する入力パラメータは、その領域に記憶すべきデータと、データの長さである。このルーチンは、割り当てられた領域にハンドルを返送する。或いは又、このルーチンはデータを書き込まず、単にスペースを割り当てる。このルーチンは、ブロックが領域に対して充分な自由スペースと、追加のAllocエントリとを有すると仮定する。図35は、Allocエントリのステータスに対する状態図である。Allocエントリは、次のステータスのうちの1つである。即ち、未使用、割り当てられた状態、割り当て解除された状態、取って代わられた状態、自由、又はゼロである。又、エントリは、割り当てが処理中である間は移行状態にある。エントリが未使用である場合には、Allocアレイの最後のエントリを通過しており、即ちアレイの一部分ではない。エントリが割り当てられた場合には、それに対応する領域が現在割り当てられる。エントリが割り当て解除される場合には、それに対応する領域が不要であるが、その領域はまだリクレイミングされていない。エントリが取って代わられる場合には、別のAllocエントリ(単数又は複数)がその同じデータ領域に対応する。リクレイミング中、取って代わられたエントリにあるデータは無視される。というのは、別のエントリ(単数又は複数)がデータ領域を指すからである。エントリが自由の場合には、それに対応する領域がリクレイミングされており、新たな領域がブロックに追加されたときにAllocエントリを再使用することが出来る。エントリがゼロの場合には、エントリへの書き込み中に問題が生じており、消去されるまで使用されない。エントリが割り当てにおいてプロセス移行状態にある場合には、エントリにおけるデータの若干は有効であるが必ずしも全部ではない。
ステムは割り当てを終了する。
が充分な自由スペースを有しているかどうかを決定する前に、リクレイミング基準に合致するブロックに対してブロックリクレイミングを実行する。別の実施例においては、充分な自由スペースがないと決定されるまでリクレイミングは行われない。ブロック2802においては、少なくとも1つのブロックが選択された場合に、領域を保持するに充分な自由スペースが単一ブロックにあり、システムはブロック2803に続き、さもなくば、システムはブロック2804に続く。ブロック2803において、システムは、選択されたブロックのどれが最も低い消去カウントを有するかを決定し、そのブロックを割り当てると共に、システムはブロックの割り当てを終了する。ブロック2804においては、システムは、領域データを保持するに充分な自由スペースを有する1組のブロックを選択する。ブロック2805においては、全自由スペースと割り当て解除されたスペースがデータを保持するに充分でないか或いはあまりに多数の部分がある場合に、システムはブロック2807へ続き、さもなくば、システムはブロック2806へ続く。領域データを単一ブロックに記憶しなければならない場合には、2つのブロックを選択すると、部分が多数になり過ぎる。又、データを多数のブロックに記憶すべき場合には、リクレイミングが適当である。ブロック2806において、システムは選択されたブロックを割り当て、ブロックの割り当てが終了する。ブロック2807において、全てのブロックがリクレイミングされた場合には、FEPromにはデータを記憶するに充分な余裕がなく、ブロックの割り当てが終了するか、さもなくば、システムはブロック2808へ続く。ブロック2808において、システムはブロックをリクレイミングし、ブロック2801へ進んで、新たな充分な自由スペースがあるかどうかを決定する。
ンドルに対するプレースホルダーとして必要とされず、除去されている。Alloc〔4〕エントリの位置状態は、それがAllocアレイにおける最終エントリであることを指示する。
クの状態をレディにセットする。ブロック3012では、システムは、リクレイミングされるべきブロックの状態を消去のための待ち行列にセットする。ブロック3011についての処理が完了した後であって且つブロック3012についての処理が完了する前に、スペアブロックと、リクレイミングされるべきブロックの両方は有効データを有している。ブロック3012についての処理が完了する前に処理が中断した場合には、FEPromは、同じ論理シーケンス番号を有する2つのブロックを含む。システムは、好ましくは、FEPromの初期化中にこの状態をチェックする。このときに、システムはブロック3012の処理を完了することができる。ブロック3013では、システムは、スペアブロック(以下で述べる)の状態を表すように変数PhysicalBlockNum、FirstFreeByteOffset、LenDeallocateSpace及びAllocStructCnt in BlockData〔Seq〕を更新する。ブロック3014では、システムは、スペアブロックのリストを調整するようにDriveRecを更新し、リクレイミングが終了となる(以下で述べる)。
データ構造
struct DriveRec
{ word BlockCnt
word SpareBlockCnt
dword BlockSize
word RootDirPtr
word SpareBlockPtr 〔 〕
}
struct ConfigRec
{
word WriteAccessCntThreshold
word EraseCntThreshold
word BlockReclamationThreshold
word BlockEraseLevelingThreshold
}
struct BlockRec
{
byte Flags
word PhysicalBlockNum
dword FirstFreeByteOffset
dword LenDeallocatedSpace
word AllocStructCnt
dword BlockEraseCnt
word FirstUseableAllocEntry
word FreeAllocEntryCnt
} BlockData 〔 〕
定義
BlockCnt FEProm内の物理ブロックの数
BlockSize ブロック内のバイトの数
RootDirPtr FEPromをファイル記憶装置として使用した時のルート
ディレクトリを含むデータ領域へのハンドル
SpareBlockPtr 〔 〕 予備ブロックの物理ブロックの数を含む可変長アレイ
SpareBlockCnt 予備ブロックの数
WriteAccessCntThreshold ブロックを再利用すべきか否かをシステムに決定させる
FEProm への書込みの数
EraseCntThreshold ブロックレベル化を行うべきか否かをシステムに決定
させる FEProm への消去の数
BlockReclamationThreshold ブロック再利用をトリガする割当て解除スペースと
ブロックサイズとの比
BlockEraseLevelingThreshold ブロック間のレベル化プロセスをトリガする最小及び
最大消去数間の差
PhysicalBlockNum 論理的ブロックを含む物理ブロックの数
FirstFreeByteOffset 空きスペースの最初のバイトの物理ブロック内の
オフセット
LenDeallocatedSpace 物理ブロック内の割当て解除済領域の合計の長さ
FirstUseableAllocEntry ブロック内の最初の使用可能な Allocエントリ索引
FreeAllocEntryCnt Alloc エントリの数
BlockEraseCnt 物理ブロックが消去された回数
FEPromが最初にロードされる時、FEProm管理者は FEProm を走査して表Bに示す内部データを初期化する。構造 DriveRec は装置に関するデータを含み、構造ConfigRec は構成パラメタに関するデータを含み、アレイ BlockDataは FEProm 内の各物理ブロック毎のデータを有するエントリを含む。アレイBlockDataはブロック変換キャッシュである。初期
化中、 FEProm 管理者はアレイ BlockData内の各変数及び構造 DriveRec 内の予備ブロックに関する変数を初期化する。構造DriveRec内の他の変数はシステム定義された変数である。好ましい実施例では、FEProm管理者は、これらのデータ構造内の領域データの型に特定の情報を記憶している。例えばもし FEProm がファイル記憶装置として使用されていれば、データ構造はルートディレクトリへのハンドルを含むことができる。図31は、好ましい実施例における初期化プロセスの流れ図である。この手順は、 FEProm 上の各ブロック毎にブロック割当て構造を走査することによってDriveRec 及び BlockData構造を初期
化する。システムはブロック2701乃至2709をループして各ブロック毎のデータを読む。ブロック2701ではシステムは、現在アクセスされている物理ブロックを指示する索引iを初期化する。ブロック2702において、もし索引iが FEProm 内のブロックの数より大きければ、全てのブロックは走査されたのでありシステムはブロック2710へ進み、そうでない場合にはシステムはブロック2703へ進む。ブロック2703では、システムは索引iによって指示されたブロックの見出しを読む。ブロック2704では、システムは DriveRec 及び BlockData〔i〕データを更新する。もしそのブロックが予備ブロックであれば、システムは SpareBlockCntをインクリメントさせ、そのブロックをSpareBlockPtrアレイに追加する。好ましい実施例では、システムはこれらの領域内に記
憶されているデータに特定の情報をも走査する。例えばもし FEProm をファイルシステムとして使用していて、そのブロックがブートレコードを含んでいれば、システムは BootRecPtr をセットし、ブートレコードを読み、そして RootDirPtr をセットする。
索引iに変数 PhysicalBlockNum をセットする。ブロック2708では、システムは索引jをインクリメントさせて次の Allocエントリを指示させ、ブロック2706へループする。ブロック2710では、システムはブロック使用をレベル化する。システムは BlockDataアレイを走査して最大 BlockEraseCntを有するブロック及び最小 BlockEraseCntを有するブロックを決定する。次いでシステムはブロック間でデータをスワップ(交換)する。システムは先ず最大ブロックを予備ブロックへ複写する。次にシステムは最大ブロック
を消去する。システムは最小ブロックからのデータを消去されたブロックへ複写し、そして好ましくは複写しながらブロック再利用を遂行する。システムは最小ブロックを消去し、予備ブロックからのデータを最小ブロックへ複写し、そして好ましくは複写中にブロック再利用を遂行する。
FEProm 管理者はそのブロックを割当て解除された状態にセットする。次いでFEProm 管
理者は、図33に示す領域割当てプロセスを再始動させることによって、データを異なるデータ領域へ書込むことを試みる。
ファイルシステム
本発明は、 FEProm 装置に対してディレクトリをベースとする階層ファイルシステムを提供する。階層ファイルシステムは論理的グルーピング内にファイルを記憶させる。好ましい実施例は、ディレクトリ階層及び内部ファイル記憶の両者を実現するためにリンクされたリストデータ構造を使用する。
27を有し、サブディレクトリレコード「メリー」108は次に低いレベルのファイルレコードのリンクされたリスト142を指し示すポインタ128を有している。リンクされたリスト142は、ポインタ129及び130によってリンクされているファイルレコード「 LETTER1.DOC」110、「LETTER2.DOC 」111及び「LETTER3.DOC 」112からなる。右上のテンプレート10は図面を通して使用されるレコードレイアウトを示す。好ましい実施例では図2に示すレコードは、以下に説明するように DirEntry 及び FileEntry構造である。
206は、ファイルを構成する範囲のリンクされたリストから物理的に除去されていない。そうではなく、レコードの削除を指示するようにレコードのステータスをセットすることによって範囲レコードR4 206は論理的に除去されているのである。
るように、ファイルシステムの識別に関するある一般的な情報、 FEProm をアクセスすることができるファイルシステムのバージョン番号、ルートディレクトリを指し示すポインタ、及び付加的なデータを含む。表Dに示す第1及び第2の構造は、 DirEntry 構造及び
FileEntry構造である。これらの構造の1つが各ディレクトリ及びファイル毎に割当てられる。これらの構造は同一である。変数SiblingPtr はディレクトリ階層の同一レベルの
DirEntry 構造及びFileEntry 構造のリンクされたリスト内の次の同胞を指し示す。変数PrimaryPtr 及び SecondaryPtr は以下に詳述する。第3の構造は、 FileInfo 構造であ
る。各ファイル範囲は関連 FileInfo 構造を有している。変数PrimaryPtr はファイルの
FileInfo 構造を指し示す。
データ構造
struct BootRecord
{ word Signature;
dword SerialNumber;
word FFSWriteVersion;
word FFSReadVersion;
word TotalBlockCount;
word SpareBlockCount;
dword BlockLen;
dword RootDirectoryPtr;
word Status;
byte VolumeLabelLen;
word BootCodeLen;
byte VolumeLabel 〔 〕;
byte BootCode〔 〕;
}
定義
Signature 媒体がこのファイルシステムを支援することを指示する値
SerialNumber VolumeLabel との組合せは特定 FEProm の独特な識別子である
FFSWriteVersion このボリュームへ書込むために要求されるファイルシステムの
高バイトにおけるバージョン番号及び低バイトにおける改定番号FFSReadVersion このボリュームを読出すために要求されるファイルシステムの
最早バージョンの高バイトにおけるバージョン番号及び低バイト
における改定番号
TotalBlockCount FEProm内の予備ブロックを含むブロックの合計数
SpareBlockCount ブロック再利用及びエラー回復に使用可能なブロックの数
BlockLen バイトで表したブロックの長さ
RootDirectoryPtr ルートディレクトリを指し示すポインタ
Status ファイル名フォーマットを指定するデータ
VolumeLabelLen ボリュームラベル内の文字の数
BootCodeLen ブートコードアレイ内のバイトの数。もし0ならば媒体は
ブート不能
VolumeLabel 〔 〕 ボリュームラベル
BootCode〔 〕 オペレーティングシステムに関するブートコード
表 D
データ構造
struct DirEntry
{
word Status;
dword SiblingPtr;
dword PrimaryPtr;
dword SecondaryPtr;
byte Attributes;
word Time;
word Date;
byte NameLen;
byte Name〔8〕;
byte Ext 〔3〕;
}
struct FileEntry
{
word Status;
dword SiblingPtr;
dword PrimaryPtr;
dword SecondaryPtr;
byte Attributes;
word Time;
word Date;
byte NameLen;
byte Name〔8〕;
byte Ext 〔3〕;
}
struct FileInfo
{
word Status;
dword ExtentPtr;
dword PrimaryPtr;
dword SecondaryPtr;
byte Attributes;
word Time;
word Date;
word ExtentLen;
word UncomprssedExtentLen;
}
定義
Name ディレクトリ/ファイル名
Ext ファイル拡張
Status
bit #
0 1:レコードはディレクトリ構造内に存在(存在)
0:レコードはディレクトリ構造から削除済(削除済)
1 1:レコードは現属性、日付、及び時間データを含む
( ATDRecent )
0:レコードは置換されたデータを含むか、またはデータを
含まない( ATDSuperseded )
3 - 2 11:未定義
10:FileInfo
01:FileEntry
00:DirEntry
4 1: PrimaryPtr は有効ではない
0: PrimaryPtr は有効 ( PrimaryPtrValid )
5 1: SecondaryPtr は有効ではない
0: SecondaryPtr は有効 ( SecondaryPtrValid )
6 1: SiblingPtr/ExtentPtr は有効ではない
0: SiblingPtr/ExtentPtr は有効
( SiblingPtrValid/ExtentPtrValid )
DirEntry
15 - 7 保留
FileEntry
7 1:ファイルは圧縮されていない
0:ファイルは圧縮されている
15 - 8 圧縮アルゴリズムの識別
FileInfo
7 1:ファイルは圧縮されていない
0:ファイルは圧縮されている
8 1:範囲は圧縮されたブロックの最初のセグメントを含まない
0:範囲は圧縮されたブロックの最初のセグメントを含む
9 1:範囲は圧縮されたブロックの最後のセグメントを含まない
0:範囲は圧縮されたブロックの最後のセグメントを含む
15 - 10 保留
SiblingPtr 同胞連鎖内の次の DirEntry または FileEntryを指すポインタ
ExtentPtr FileInfoEntry に対応付けられた範囲を指すポインタ
PrimaryPtr DirEntry:ディレクトリ階層内の次に低いレベルの最初の
DirEntry またはFileEntryを指す
FileEntry :ファイルに対応付けられた FileInfo エントリの
リンクされたリストを指す
FileInfo:ファイルのための次のFileInfo エントリを指す
SecondaryPtr DirEntry:ディレクトリのための次の DirEntry エントリを指す
;SecondaryPtrを除くこのエントリの全内容は有効で
はなく、無視される
FileEntry :ファイルのための次のFileEntryエントリを指す
;SecondaryPtrを除くこのエントリの全内容は有効
ではなく、無視される
FileInfo:ファイルのための次のFileInfo エントリを指す
Attributes 読出し専用、読出し/書込み等のようなファイル属性
Time 創成または変更の時刻
Date 創成または変更の日付
NameLen バイトで表した名前及び拡張の長さ
Name〔8〕 名前
Ext 〔3〕 拡張
ExtentLen バイトで表した範囲の長さ
本発明のファイルシステムは、ディレクトリ及びファイル構造をブロック消去可能な FEProm 内のブロック境界を横切って分散させる。ファイルシステムは、FEProm内の記憶装置の割当て及び割当て解除に FEProm 管理者を使用する。ファイルシステムは、上述したように、リンクされたリスト内のポインタとしてハンドルを使用する。以下の説明では「ハンドル」及び「ポインタ」を互換可能に使用する。図30は、図2のディレクトリ階層の一部のブロック割当て例を示す。図30に示した部分はディレクトリ「ルート」、ディレクトリ「 DOS」、ディレクトリ「ワード」、ファイル「 AUTOEXEC.BAT 」、及びファイル「 COMMAND.COM」のための DirEntry 及び FileEntryレコードからなっている。ブロック0はディレクトリ「 DOS」及びディレクトリ「ワード」を含み、ブロック 12 はディレクトリ「ルート」及びファイル「 COMMAND.COM」を含み、そしてブロック 14 はファイル「 AUTOEXEC.BAT 」を含んでいる。
ための DirEntry を含み、領域2430はディレクトリ「ワード」のための DirEntry を含む。ブロック0 2401は、見出し2404、領域2420に対応する Alloc〔0〕エントリ2421、及び領域2430に対応する Alloc〔1〕エントリ2431をも含む。ブロック12 2402は領域2410及び2450を含む。領域2410はディレクトリ「ルート」のための DirEntry を含み、領域2450はファイル「 COMMAND.COM」のための FileEntryを含む。ブロック12 2402は、ブロック見出し2405、領域2410に対応する Alloc〔0〕エントリ2411、及び領域2450に対応する Alloc〔1〕エントリ2451をも含む。ブロック14 2403は、領域2490及び2440を含む。領域2490はブートレコードを含み、領域2440はファイル「 AUTOEXEC.BAT 」のための FileEntryを含む。ブロック14 2403は、ブロック見出し2406、領域2490に対応する Alloc〔0〕エントリ2491、及び領域2440に対応する Alloc〔1〕エントリ2441をも含む。
SiblingPtr 2423はディレクトリ「ワード」のための Alloc〔1〕エントリ2431を指し示す。 Alloc〔1〕エントリ2431は、領域2430のオフセットを含む変数「オフセット」2432を含む。領域2430はディレクトリ「ワード」のための DirEntry を含む。ディレクトリ「ワード」の SiblingPtr 2433はファイル「 AUTOEXEC.BAT 」のための Alloc〔1〕エントリ2441を指し示す。 Alloc〔1〕エントリ2441は、領域2440のオフセットを含む変数「オフセット」2442を含む。領域2440はファイル「 AUTOEXEC.BAT 」のための FileEntryを含む。ファイル「 AUTOEXEC.BAT 」のためのポインタ SiblingPtr 2443はファイル「 COMMAND.COM」のための Alloc〔1〕エントリ2451を指し示す。 Alloc〔1〕エントリ2451は、領域2450のオフセットを含む変数「オフセット」2452を含む。領域2450はファイル「 COMMAND.COM」のための FileEntryを含む。 SiblingPtr 2453は FNULLにセットされ、リンクされたリストの終わりを指示する。
のアドレスを含むように変数Cをセットする。例えば、パスネーム“\P\C”は、ルートディレクトリのサブディレクトリであるPのサブディレクトリであるディレクトリCが創成されることを意味する。図8はディレクトリCがPの最初のサブディレクトリである
場合を示し、図9はディレクトリCがPの最初のサブディレクトリではない場合を示す。図8及び9において、実線はディレクトリCを追加する前のディレクトリ構造を示し、点線はディレクトリCが追加された後のディレクトリ構造を示す。
クトリ追加ルーチンに酷似している。主要な相違点はブロック803において、レコードがファイルであることを指示するように変数「ステータス」がセットされることである。
ExtentLenが範囲の長さを含むようにセットされる。ブロック1005Bでは FI −>「ステータス」が、「存在」、 ATDRecent、 FileInfo 、及び ExtentPtrvalid にセットされる。ブロック1006ではシステムは、拡張すべきファイルの FileEntryレコードを探知し、そのレコードのアドレスに FE をセットする。好ましい実施例では、システムは新範囲及び FileInfo レコードを割当てる前に FileEntryレコードを探知して、何等かの割当てが行われる前にファイルが存在するようにしている。
テムは FileEntryレコード及び FileInfo レコードの PrimaryPtr または SecondaryPtr を追跡する。有効 SecondaryPtr は、 PrimaryPtr によって指し示されるレコードが、 SecondaryPtr によって指し示されるレコード内のデータによって置換されたことを指示する。ブロック1007においてシステムは、ポインタ next-ptr を FileEntryレコードを指し示すポインタに等しくセットする。ブロック1008Aでは、ポインタ prev-ptr が
next-ptr に等しくセットされる。ファイル内の最後の FileInfo レコードが探知されると、ポインタ prev-ptr はそのレコードを指し示すポインタを含む。ブロック1009では、もしSecondaryPtr が有効であることを next-ptr によって指し示されるレコードのステータスが指示していれば、 PrimaryPtr によって指し示されるレコード内のデータは置換されたのであり、システムはブロック1011へ進み、そうでない場合はシステムはブロック1010へ進む。ブロック1010においてシステムは next-ptr を、 next-ptr によって指し示されるレコードの PrimaryPtr に等しくセットしてリンクされたリスト内の次のレコードを指し示すポインタを入手し、ブロック1012へ進む。ブロック1011ではシステムは next-ptr を、 next-ptr によって指し示されるレコードの SecondaryPtr に等しくセットしてリンクされたリスト内の次のレコードを指し示すポインタを入手し、ブロック1008Aへ進む。ブロック1012では、もし next-ptr が有効であれば、リンクされたリストの終わりに達したのであり、システムはブロック1013へ進み、そうでない場合にはシステムは1008Aへ戻ってリンクされたリスト内の次のレコードを処理する。ブロック1013ではシステムは prev-ptr によって指し示されるレコードの PrimaryPtr を、 FI を指し示すポインタに等しくセットしてファイルの拡張を遂行する。ブロック1014においてシステムはprev-ptrによって指し示されるレコードの「ステータス」をPrimaryPtrValidに等しくセットしてルーチンを終了する。
である。このルーチンのパラメタは、変更された関連範囲を持つためのFileInfoブロックのアドレスであるRと、新データのための範囲内へのオフセットであるextent-offsetと
、新データである new-data と、新データの長さであるdata-lengthとである。少なくともあるブロックが消去されるまでは、FEPromは1回書込み装置であるから、データが記憶される領域は、ファイルへの更新が発生する時には再書込みはできない。以下に説明するように好ましい実施例では更新されるデータは FEProm の異なる領域へ書込まれる。
セットされる。新範囲は、レコードR2 1412によって指し示される区分である新D2 1404に対応する新データに割当てられる。レコードR 1410の SecondaryPtr は FileInfo R1 1411を指し示し、R 1410の PrimaryPtr が置換されたことを指示する。 FileInfo レコードR3 1413の PrimaryPtr は FileInfo レコードR 1410の PrimaryPtr 内に含まれている値にセットされてリンクを完了する。ファイル更新ルーチンは、ブロック内に3つの新 Allocエントリを追加するための範囲を含む十分なスペースが存在することに依存する。これら3つの Allocエントリは、1つの領域ではなく3つの領域内に範囲を再定義する。もし十分なスペースが存在しなければ、ブロックの再利用によって空きスペースを発生させることができ、ファイル更新ルーチンを呼出すことができる。しかし、もし十分な空きスペースが存在しなければ、その範囲内のデータは新範囲へ移動させられる。もしデータが移動させられれば、新データは古データと統合され、1つだけの FileInfo レコードを有する新ブロック内の1領域へ書込まれる。古ブロック内の領域は割当て解除される。好ましい実施例では、 FEProm 管理者は既存領域の部分を指し示すAlloc エントリの追加を支援する。図17の例は、ブロックへ追加する3つの新Alloc エントリを必要とし、これらはD1、D2、及びD3に関連付けられた新たに定義された領域に対応する。D2のための Allocエントリは割当て解除され、D1及びD3のための Allocエントリが割当てられる。区分D1、D2、及びD3からなる領域に対応する古い Allocエントリのステータスは、それが置換されたことを指示するようにセットされる。置換済のステータスは、 Allocエントリが本質的に対応領域を用いずに割当て解除されることを指示する。
る。ブロック1203においてシステムはある領域を新データに割当て、 R2NewDataをその領域のアドレスにセットする。ブロック1204では、3つのAllocエントリが割当て
られる。これらのエントリはD1、D2、及びD3を指し示すように初期化される。D1
、D2、及びD3からなる領域を指し示す Allocエントリのステータスは置換にセットされる。ブロック1205においてシステムはR2NewDataによってアドレスされた新領域へ new-data を書込む。システムはブロック1206乃至1208Aにおいてデータを FileInfo レコードR2内にセットする。ブロック1206においてシステムは、R2−> ExtentPtrを新データのための領域を指し示すポインタに等しくセットする。ブロック12
07では、R2−> ExtentLenを新領域の長さに等しくセットする。ブロック1208においては、R2−> PrimaryPtr がR3を指し示すポインタにセットされる。ブロック1208Aにおいてシステムは、ExtentPtr 及び PrimaryPtr が有効であることを指示するようにR2−>「ステータス」をセットする。
ExtentPtrをセットする。ブロック1213ではR1−> ExtentLenをD3領域の長さに等しくセットする。ブロック1214においてシステムは、R1−> PrimaryPtr をR2を指し示すポインタにセットする。ブロック1214Aでは、ExtentPtr 及び PrimaryPtr が有効であることを指示するようにR1−>「ステータス」をセットする。
図21は、 FEProm からディレクトリを削除するルーチンの流れ図である。ファイルを削除するルーチンは、対応付けられた FileInfo レコードが割当て解除されること以外は同一である。このルーチンは、DirEntry のステータスを、それが削除されることを指示
するようにセットする。ブロック1801においてシステムは、削除すべきディレクトリを探知し、そのディレクトリのアドレスを含むように変数「ポインタD」をセットする。ブロック1802では、そのディレクトリを削除することを指示するようにD−>「ステ
ータス」をセットする。
することによって変更される。図23は、名前が“ B.DAT”に変更される時の、“ D.DAT”のためのファイルエントリを実線で、また変更を点線で示してある。新エントリはFileInfo エントリ、ディレクトリ構造、及び古いエントリに対応付けられた範囲のリンクさ
れたリストを指し示す。
ステータス」をセットし、古いエントリの置換を完了させてルーチンを終了させる。
及び時刻」フィールドが FNULLにセットされている第1のFileInfo エントリを選択することによって変更される。もしこのようなフィールドが存在しなければ、新しいFileInfo エントリが創成され、選択される。次いでシステムは「属性、日付、及び時刻」フィールドを選択された FileInfo エントリ内にセットする。先に最新の「属性、日付、及び時刻」データを記憶していたFileInfoエントリは、 ATDSupereseded にセットされているステータスを有している。入力パラメタはパスネーム及び属性データである。ブロック2101においてシステムはディレクトリ構造を通して探索してファイルを探知し、 FileEntryを指し示すように変数Pをセットする。ブロック2102においてもしP−>「ステータス」が ATDRecentを指示していれば、 FileEntryは最新の属性データを含んでおり、システムはブロック2103に進み、そうでない場合にはシステムはブロック2104に進む。ブロック2103においてシステムは変数Xを変数Pにセットして図25のブロック2111に進む。ブロック2104ではシステムは変数CをP−> PrimaryPtr に等しくセットする。システムはブロック2105乃至2108をループして最新の属性データを指示しているステータスを有するFileInfoエントリを探索する。ブロック2105においてもしSecondaryPtr が有効であることをC−>「ステータス」が指示していれば、シス
テムはブロック2106へ進み、そうでない場合はシステムはブロック2107へ進む。ブロック2106では変数CはC−>SecondaryPtr にセットされて置換されるエントリを指し示すようにされ、ブロック2105へループバックされる。ブロック2107にお
いてもしC−>「ステータス」が ATDRecentを指示していればFileInfoエントリは最新の属性データを含んでいるのであり、システムはブロック2109へ進み、そうでない場合にはシステムはブロック2108へ進む。ブロック2108においてシステムは変数CをC−> PrimaryPtr に等しくセットし、ブロック2105へループバックする。ブロック2109においてはシステムは変数Xを変数Cにセットし、図25のブロック2111へ進む。
Y−>「ステータス」が指示していれば、システムはブロック2115へ進み、そうでなければブロック2116へ進む。ブロック2115では変数YがY−> SecondaryPtr に等しくセットされ、ブロック2114へループバックされる。ブロック2116においてもしY−>「ステータス」が ATDRecentにセットされていればシステムはブロック2117へ進み、そうでなければブロック2112へ戻される。ブロック2117においてもしY−>「属性」、Y−>「日付」、及びY−>「時刻」が FNULLに等しければシステムはブロック2118へ進み、そうでなければブロック2112へループバックされる。ブロック2118において、Y−>「属性」、Y−>「日付」及びY−>「時刻」は新しい属性データにセットされる。ブロック2119ではX−>「ステータス」が ATDSupersededに等しくセットされ、ルーチンは完了する。
102 「DOS」サブディレクトリ
103 「ワード」サブディレクトリ
104 「AUTOEXEC.BAT」ファイル
105 「COMMAND.COM」ファイル
106 「FORMATEXE」ファイル
107 「デービッド」サブディレクトリ
108 「メリー」サブディレクトリ
109 「LETTER1.DOC」ファイル
110 「LETTER1.DOC」ファイル
111 「LETTER2.DOC」ファイル
112 「LETTER3.DOC」ファイル
113 「ビル」ディレクトリ
120−132 ポインタ
140−142 リンクされたリスト
200−202 ファイル
203−206 範囲レコード
211−214 範囲
301 FEProm
302 ブロック
2302 ブロック割り当て構造体
2303 データ領域
2304 自由スペース
2310−2315 オフセット
Claims (2)
- ブロック消去可能で一回書き込み多数回読み取りのメモリ内のデータ領域を参照する方法において、前記メモリはメモリ位置のブロックに分割され、各ブロックは論理ブロック番号及び物理ブロック番号を有し、各ブロックは割り当てアレイ及びデータ領域を含み、前記割り当てアレイは前記データ領域に対応するエントリを備え、前記方法は、
前記ブロック消去可能で一回書き込み多数回読み取りのメモリのブロックに割り当てアレイを記憶するステップであって、各割り当てアレイエントリは、前記ブロック内の前記対応するデータ領域のオフセットを含むとともにインデックスを有する、割り当てアレイを記憶するステップと、
論理ブロック番号、対応する物理ブロック番号、及び物理スタートアドレスを、各ブロックにつきブロック変換キャッシュに記憶するステップと、
前記ブロック消去可能で一回書き込み多数回読み取りのメモリのブロック内のデータ領域を、論理ブロック番号及び割り当てアレイエントリのインデックスにより指定するステップと、
ブロックの物理ブロック番号を、前記ブロック変換キャッシュを使用して前記論理ブロック番号から決定するステップ、
ブロックの物理スタートアドレスを、前記決定された物理ブロック番号から決定するステップ、
前記決定された物理ブロック番号を備えるブロック内の前記指定されたデータ領域のオフセットを、前記割り当てアレイエントリのインデックスから取り出すステップ、及び
前記取り出されたオフセットを前記ブロックの前記物理スタートアドレスに追加することにより、前記指定されたデータ領域の物理アドレスを生成するステップ
により、前記指定されたデータ領域の物理アドレスを生成するステップと
を含む方法。 - ブロック消去可能で一回書き込み多数回読み取りのメモリ内のブロックを参照する方法において、前記メモリはメモリ位置のブロックに分割され、各ブロックは論理ブロック番号及び物理ブロック番号を有し、各ブロックは割り当てアレイ及びデータ領域を含み、前記割り当てアレイは前記データ領域に対応するエントリを備え、前記方法は、
前記ブロック消去可能で一回書き込み多数回読み取りのメモリの各ブロックに論理ブロック番号を記憶するステップと、
初期化の際に、各ブロック内の前記論理ブロック番号を読み出し、各ブロックにつき、前記論理ブロック番号及び対応する物理ブロック番号をブロック変換キャッシュに記憶するステップと、
前記ブロック消去可能で一回書き込み多数回読み取りのメモリのブロックを論理ブロック番号により指定するステップと、
前記ブロックの物理ブロック番号を、前記ブロック変換キャッシュを使用して前記論理ブロック番号から決定するステップ、及び
前記ブロックの物理スタートアドレスを、前記決定された物理ブロック番号から決定するステップ
により、前記指定されたブロックの物理アドレスを生成するステップと
を含む方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/828,763 US6256642B1 (en) | 1992-01-29 | 1992-01-29 | Method and system for file system management using a flash-erasable, programmable, read-only memory |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009081080A Division JP4858789B2 (ja) | 1992-01-29 | 2009-03-30 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010049713A true JP2010049713A (ja) | 2010-03-04 |
JP4608588B2 JP4608588B2 (ja) | 2011-01-12 |
Family
ID=25252682
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01398093A Expired - Lifetime JP3825479B2 (ja) | 1992-01-29 | 1993-01-29 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2006130477A Pending JP2006209807A (ja) | 1992-01-29 | 2006-05-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2006130478A Expired - Lifetime JP4365385B2 (ja) | 1992-01-29 | 2006-05-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2008214841A Expired - Lifetime JP4485586B2 (ja) | 1992-01-29 | 2008-08-25 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009081080A Expired - Lifetime JP4858789B2 (ja) | 1992-01-29 | 2009-03-30 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009273034A Expired - Lifetime JP4608588B2 (ja) | 1992-01-29 | 2009-12-01 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009273033A Expired - Lifetime JP4608587B2 (ja) | 1992-01-29 | 2009-12-01 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009273039A Expired - Lifetime JP4608589B2 (ja) | 1992-01-29 | 2009-12-01 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2011012551A Expired - Lifetime JP4836217B2 (ja) | 1992-01-29 | 2011-01-25 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2011173783A Pending JP2011222051A (ja) | 1992-01-29 | 2011-08-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01398093A Expired - Lifetime JP3825479B2 (ja) | 1992-01-29 | 1993-01-29 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2006130477A Pending JP2006209807A (ja) | 1992-01-29 | 2006-05-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2006130478A Expired - Lifetime JP4365385B2 (ja) | 1992-01-29 | 2006-05-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2008214841A Expired - Lifetime JP4485586B2 (ja) | 1992-01-29 | 2008-08-25 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009081080A Expired - Lifetime JP4858789B2 (ja) | 1992-01-29 | 2009-03-30 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009273033A Expired - Lifetime JP4608587B2 (ja) | 1992-01-29 | 2009-12-01 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2009273039A Expired - Lifetime JP4608589B2 (ja) | 1992-01-29 | 2009-12-01 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2011012551A Expired - Lifetime JP4836217B2 (ja) | 1992-01-29 | 2011-01-25 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
JP2011173783A Pending JP2011222051A (ja) | 1992-01-29 | 2011-08-09 | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム |
Country Status (5)
Country | Link |
---|---|
US (3) | US6256642B1 (ja) |
EP (1) | EP0557736B1 (ja) |
JP (10) | JP3825479B2 (ja) |
CA (3) | CA2088442C (ja) |
DE (1) | DE69333906T2 (ja) |
Families Citing this family (215)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251324B (en) * | 1990-12-31 | 1995-05-10 | Intel Corp | File structure for a non-volatile semiconductor memory |
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
JP3407317B2 (ja) * | 1991-11-28 | 2003-05-19 | 株式会社日立製作所 | フラッシュメモリを使用した記憶装置 |
JP3587204B2 (ja) * | 1991-11-28 | 2004-11-10 | 株式会社日立製作所 | 記憶装置 |
US5471604A (en) * | 1992-10-30 | 1995-11-28 | Intel Corporation | Method for locating sector data in a memory disk by examining a plurality of headers near an initial pointer |
US5535369A (en) * | 1992-10-30 | 1996-07-09 | Intel Corporation | Method for allocating memory in a solid state memory disk |
US5416782A (en) * | 1992-10-30 | 1995-05-16 | Intel Corporation | Method and apparatus for improving data failure rate testing for memory arrays |
US5337275A (en) * | 1992-10-30 | 1994-08-09 | Intel Corporation | Method for releasing space in flash EEPROM memory array to allow the storage of compressed data |
US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
US5740395A (en) * | 1992-10-30 | 1998-04-14 | Intel Corporation | Method and apparatus for cleaning up a solid state memory disk storing floating sector data |
US5452311A (en) * | 1992-10-30 | 1995-09-19 | Intel Corporation | Method and apparatus to improve read reliability in semiconductor memories |
US5448577A (en) * | 1992-10-30 | 1995-09-05 | Intel Corporation | Method for reliably storing non-data fields in a flash EEPROM memory array |
US5822781A (en) * | 1992-10-30 | 1998-10-13 | Intel Corporation | Sector-based storage device emulator having variable-sized sector |
US5479633A (en) * | 1992-10-30 | 1995-12-26 | Intel Corporation | Method of controlling clean-up of a solid state memory disk storing floating sector data |
US5357475A (en) * | 1992-10-30 | 1994-10-18 | Intel Corporation | Method for detaching sectors in a flash EEPROM memory array |
JP3641280B2 (ja) * | 1992-10-30 | 2005-04-20 | インテル・コーポレーション | フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法 |
US5473753A (en) * | 1992-10-30 | 1995-12-05 | Intel Corporation | Method of managing defects in flash disk memories |
US5369616A (en) * | 1992-10-30 | 1994-11-29 | Intel Corporation | Method for assuring that an erase process for a memory array has been properly completed |
US5835933A (en) * | 1993-02-19 | 1998-11-10 | Intel Corporation | Method and apparatus for updating flash memory resident firmware through a standard disk drive interface |
US5740349A (en) * | 1993-02-19 | 1998-04-14 | Intel Corporation | Method and apparatus for reliably storing defect information in flash disk memories |
US5581723A (en) * | 1993-02-19 | 1996-12-03 | Intel Corporation | Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array |
US5586285A (en) * | 1993-02-19 | 1996-12-17 | Intel Corporation | Method and circuitry for increasing reserve memory in a solid state memory disk |
US5455800A (en) * | 1993-02-19 | 1995-10-03 | Intel Corporation | Apparatus and a method for improving the program and erase performance of a flash EEPROM memory array |
US5603036A (en) * | 1993-02-19 | 1997-02-11 | Intel Corporation | Power management system for components used in battery powered applications |
US5640529A (en) * | 1993-07-29 | 1997-06-17 | Intel Corporation | Method and system for performing clean-up of a solid state disk during host command execution |
US5490264A (en) * | 1993-09-30 | 1996-02-06 | Intel Corporation | Generally-diagonal mapping of address space for row/column organizer memories |
SG49632A1 (en) * | 1993-10-26 | 1998-06-15 | Intel Corp | Programmable code store circuitry for a nonvolatile semiconductor memory device |
US5765175A (en) * | 1994-08-26 | 1998-06-09 | Intel Corporation | System and method for removing deleted entries in file systems based on write-once or erase-slowly media |
US5754817A (en) * | 1994-09-29 | 1998-05-19 | Intel Corporation | Execution in place of a file stored non-contiguously in a non-volatile memory |
US5809558A (en) * | 1994-09-29 | 1998-09-15 | Intel Corporation | Method and data storage system for storing data in blocks without file reallocation before erasure |
JPH08137634A (ja) * | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
US5563828A (en) * | 1994-12-27 | 1996-10-08 | Intel Corporation | Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays |
JP2734391B2 (ja) * | 1995-01-18 | 1998-03-30 | 日本電気株式会社 | 不揮発性メモリのファイル管理装置 |
US5724592A (en) * | 1995-03-31 | 1998-03-03 | Intel Corporation | Method and apparatus for managing active power consumption in a microprocessor controlled storage device |
TW355905B (en) * | 1995-09-12 | 1999-04-11 | Matsushita Electric Ind Co Ltd | Coding method, coding equipment, wavelet converter and wavelet inverter |
US6014724A (en) * | 1995-10-27 | 2000-01-11 | Scm Microsystems (U.S.) Inc. | Flash translation layer block indication map revision system and method |
US5860082A (en) * | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
JPH09319645A (ja) | 1996-05-24 | 1997-12-12 | Nec Corp | 不揮発性半導体記憶装置 |
US5845296A (en) * | 1996-07-10 | 1998-12-01 | Oracle Corporation | Method and apparatus for implementing segmented arrays in a database |
KR0185954B1 (ko) * | 1996-09-30 | 1999-05-15 | 삼성전자주식회사 | 휴대형 단말기기의 메모리 관리방법 |
US5832493A (en) * | 1997-04-24 | 1998-11-03 | Trimble Navigation Limited | Flash file management system |
JP3640154B2 (ja) * | 1997-09-30 | 2005-04-20 | ソニー株式会社 | 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム |
JP3319361B2 (ja) * | 1997-09-30 | 2002-08-26 | ソニー株式会社 | 記憶装置、データ処理装置及びデータ処理方法 |
US5983239A (en) * | 1997-10-29 | 1999-11-09 | International Business Machines Corporation | Storage management system with file aggregation supporting multiple aggregated file counterparts |
US6021415A (en) * | 1997-10-29 | 2000-02-01 | International Business Machines Corporation | Storage management system with file aggregation and space reclamation within aggregated files |
US6098074A (en) * | 1997-10-29 | 2000-08-01 | International Business Machines Corporation | Storage management system with file aggregation |
US6094585A (en) * | 1997-11-14 | 2000-07-25 | Lucent Technologies Inc. | CDMA forward link power overload control in a base station |
US6092163A (en) * | 1998-12-04 | 2000-07-18 | W. Quinn Associates, Inc. | Pageable filter driver for prospective implementation of disk space quotas |
US6038636A (en) * | 1998-04-27 | 2000-03-14 | Lexmark International, Inc. | Method and apparatus for reclaiming and defragmenting a flash memory device |
DE19819205A1 (de) * | 1998-04-29 | 1999-11-04 | Siemens Ag | Datenhaltungssystem für persistente Daten |
US6883063B2 (en) * | 1998-06-30 | 2005-04-19 | Emc Corporation | Method and apparatus for initializing logical objects in a data storage system |
US6542909B1 (en) | 1998-06-30 | 2003-04-01 | Emc Corporation | System for determining mapping of logical objects in a computer system |
US6393540B1 (en) | 1998-06-30 | 2002-05-21 | Emc Corporation | Moving a logical object from a set of source locations to a set of destination locations using a single command |
US7383294B1 (en) | 1998-06-30 | 2008-06-03 | Emc Corporation | System for determining the mapping of logical objects in a data storage system |
JP3511916B2 (ja) * | 1998-11-17 | 2004-03-29 | 松下電器産業株式会社 | 記録再生装置 |
JP4173642B2 (ja) | 1999-02-22 | 2008-10-29 | 株式会社ルネサステクノロジ | メモリカードのデータ書き込み方法 |
US6742078B1 (en) * | 1999-10-05 | 2004-05-25 | Feiya Technology Corp. | Management, data link structure and calculating method for flash memory |
ATE390788T1 (de) | 1999-10-14 | 2008-04-15 | Bluearc Uk Ltd | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen |
DE19960114A1 (de) * | 1999-12-08 | 2001-06-13 | Heidenhain Gmbh Dr Johannes | Verfahren zum Speichern von Daten in einer Datei eines Datenspeichersystems |
US7051054B1 (en) * | 2000-05-30 | 2006-05-23 | Dphi Acquisitions, Inc. | Method and apparatus for emulating read/write file system on a write-once storage disk |
US6704835B1 (en) | 2000-09-26 | 2004-03-09 | Intel Corporation | Posted write-through cache for flash memory |
US7013455B1 (en) * | 2000-10-19 | 2006-03-14 | International Business Machines Corporation | System for automatically altering environment variable to run proper executable file by removing references to all except one duplicate file in the path sequence |
KR20020032803A (ko) * | 2000-10-27 | 2002-05-04 | 구자홍 | 스트리밍 서비스를 위한 파일 구조 |
JP4401565B2 (ja) * | 2000-12-12 | 2010-01-20 | キヤノン株式会社 | 記録装置及び管理方法 |
US6740603B2 (en) * | 2001-02-01 | 2004-05-25 | Texas Instruments Incorporated | Control of Vmin transient voltage drift by maintaining a temperature less than or equal to 350° C. after the protective overcoat level |
JP2003196142A (ja) * | 2001-12-25 | 2003-07-11 | Sony Corp | ライトワンス型メモリ装置及びファイル管理方法 |
PL351784A1 (en) * | 2002-01-21 | 2003-07-28 | Advanced Digital Broadcast Ltd | System for of storing data and method of recording them in that system |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US7085879B2 (en) * | 2002-02-27 | 2006-08-01 | Microsoft Corporation | Dynamic data structures for tracking data stored in a flash memory device |
US7010662B2 (en) * | 2002-02-27 | 2006-03-07 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US6901499B2 (en) * | 2002-02-27 | 2005-05-31 | Microsoft Corp. | System and method for tracking data stored in a flash memory device |
US7072910B2 (en) * | 2002-03-22 | 2006-07-04 | Network Appliance, Inc. | File folding technique |
US7155464B2 (en) * | 2002-03-29 | 2006-12-26 | Panasas, Inc. | Recovering and checking large file systems in an object-based data storage system |
US6895464B2 (en) * | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
US6968439B2 (en) | 2002-08-29 | 2005-11-22 | Micron Technology, Inc. | Single segment data object management |
US7130979B2 (en) * | 2002-08-29 | 2006-10-31 | Micron Technology, Inc. | Dynamic volume management |
US6970969B2 (en) * | 2002-08-29 | 2005-11-29 | Micron Technology, Inc. | Multiple segment data object management |
US7108605B2 (en) * | 2002-09-30 | 2006-09-19 | Igt | EPROM file system in a gaming apparatus |
US7457822B1 (en) | 2002-11-01 | 2008-11-25 | Bluearc Uk Limited | Apparatus and method for hardware-based file system |
US8041735B1 (en) | 2002-11-01 | 2011-10-18 | Bluearc Uk Limited | Distributed file system and method |
US7093101B2 (en) * | 2002-11-21 | 2006-08-15 | Microsoft Corporation | Dynamic data structures for tracking file system free space in a flash memory device |
US7610442B2 (en) | 2002-12-24 | 2009-10-27 | Lg Electronics Inc. | Dual journaling store method and storage medium thereof |
US7032090B2 (en) * | 2003-04-08 | 2006-04-18 | International Business Machines Corporation | Method, system, and apparatus for releasing storage in a fast replication environment |
CA2426619A1 (en) * | 2003-04-25 | 2004-10-25 | Ibm Canada Limited - Ibm Canada Limitee | Defensive heap memory management |
US7827375B2 (en) * | 2003-04-30 | 2010-11-02 | International Business Machines Corporation | Defensive heap memory management |
US7069402B2 (en) * | 2003-06-02 | 2006-06-27 | International Business Machines Corporation | Host-independent incremental backup method, apparatus, and system |
CN100390817C (zh) * | 2003-06-10 | 2008-05-28 | 大唐微电子技术有限公司 | 动态逻辑分区并控制访问权限的ic智能卡及其实现方法 |
DE10332831B4 (de) * | 2003-07-18 | 2009-07-30 | Siemens Ag | Verfahren zur Darstellung einer Dateistruktur |
CN100511181C (zh) * | 2003-08-29 | 2009-07-08 | 松下电器产业株式会社 | 非易失性存储装置及其写入方法 |
US20050086430A1 (en) * | 2003-10-17 | 2005-04-21 | International Business Machines Corporation | Method, system, and program for designating a storage group preference order |
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US7437695B1 (en) | 2004-03-03 | 2008-10-14 | Xilinx, Inc. | Method of memory and run-time efficient hierarchical timing analysis in programmable logic devices |
US7117473B1 (en) | 2004-03-03 | 2006-10-03 | Xilinx, Inc. | System for creating a physical hierarchy of a chip without restriction by invading a logical hierarchy of logic blocks |
US7073149B2 (en) * | 2004-03-03 | 2006-07-04 | Xilinx, Inc. | System for representing the logical and physical information of an integrated circuit |
US20060026377A1 (en) * | 2004-07-27 | 2006-02-02 | Somsubhra Sikdar | Lookup interface for array machine context data memory |
US9171100B2 (en) * | 2004-09-22 | 2015-10-27 | Primo M. Pettovello | MTree an XPath multi-axis structure threaded index |
US9639554B2 (en) * | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US8321439B2 (en) | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US8606830B2 (en) * | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
US7457909B2 (en) * | 2005-01-14 | 2008-11-25 | Angelo Di Sena | Controlling operation of flash memories |
US20060184718A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct file data programming and deletion in flash memories |
US7877539B2 (en) * | 2005-02-16 | 2011-01-25 | Sandisk Corporation | Direct data file storage 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 |
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
US7698704B2 (en) * | 2005-02-17 | 2010-04-13 | International Business Machines Corporation | Method for installing operating system on remote storage: flash deploy and install zone |
EP1701262B1 (en) * | 2005-03-08 | 2007-12-12 | Robert Bosch Gmbh | Method and device of rewriting a sector storing the bootloader code in a sector erasable semiconductor memory means |
US20080162782A1 (en) * | 2005-06-15 | 2008-07-03 | Nagarajan Suresh | Using Transacted Writes and Caching Mechanism to Improve Write Performance in Multi-Level Cell Flash Memory |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
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 |
US7627733B2 (en) * | 2005-08-03 | 2009-12-01 | Sandisk Corporation | Method and system for dual mode access for storage devices |
US7552271B2 (en) | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
US7558906B2 (en) | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US7669003B2 (en) * | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored data files |
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 |
US7664742B2 (en) | 2005-11-14 | 2010-02-16 | Pettovello Primo M | Index data structure for a peer-to-peer network |
US7877540B2 (en) * | 2005-12-13 | 2011-01-25 | Sandisk Corporation | Logically-addressed file storage methods |
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 |
US7831783B2 (en) * | 2005-12-22 | 2010-11-09 | Honeywell International Inc. | Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems |
US20070174309A1 (en) * | 2006-01-18 | 2007-07-26 | Pettovello Primo M | Mtreeini: intermediate nodes and indexes |
US7783686B2 (en) * | 2006-06-16 | 2010-08-24 | Microsoft Corporation | Application program interface to manage media files |
US7603387B2 (en) * | 2006-06-16 | 2009-10-13 | Microsoft Corporation | Techniques to manage media files |
US20080077590A1 (en) * | 2006-09-22 | 2008-03-27 | Honeywell International Inc. | Efficient journaling and recovery mechanism for embedded flash file systems |
US8489817B2 (en) | 2007-12-06 | 2013-07-16 | Fusion-Io, Inc. | Apparatus, system, and method for caching data |
WO2008070813A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US9063181B2 (en) * | 2006-12-29 | 2015-06-23 | Electro Industries/Gauge Tech | Memory management for an intelligent electronic device |
US9885739B2 (en) | 2006-12-29 | 2018-02-06 | Electro Industries/Gauge Tech | Intelligent electronic device capable of operating as a USB master device and a USB slave device |
US8285757B2 (en) * | 2007-01-31 | 2012-10-09 | Agency For Science, Technology And Research | File system for a storage device, methods of allocating storage, searching data and optimising performance of a storage device file system |
US7991942B2 (en) * | 2007-05-09 | 2011-08-02 | Stmicroelectronics S.R.L. | Memory block compaction method, circuit, and system in storage devices based on flash memories |
US7765426B2 (en) | 2007-06-07 | 2010-07-27 | Micron Technology, Inc. | Emerging bad block detection |
JP2009003784A (ja) * | 2007-06-22 | 2009-01-08 | Toshiba Corp | 不揮発性メモリの制御装置及び制御方法及び記憶装置 |
US8082387B2 (en) * | 2007-10-29 | 2011-12-20 | Micron Technology, Inc. | Methods, systems, and devices for management of a memory system |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
JP2010003150A (ja) * | 2008-06-20 | 2010-01-07 | Nec Personal Products Co Ltd | メモリコントローラおよびフラッシュメモリのデータ管理方法 |
CN101334797B (zh) * | 2008-08-04 | 2010-06-02 | 中兴通讯股份有限公司 | 一种分布式文件系统及其数据块一致性管理的方法 |
US8347055B2 (en) * | 2009-06-30 | 2013-01-01 | Incard S.A. | Method to defrag a memory of an IC card |
US20110004720A1 (en) * | 2009-07-02 | 2011-01-06 | Chun-Ying Chiang | Method and apparatus for performing full range random writing on a non-volatile memory |
US8588364B2 (en) | 2009-08-19 | 2013-11-19 | J. Morita Manufacturing Corporation | Medical X-ray apparatus |
WO2011031796A2 (en) * | 2009-09-08 | 2011-03-17 | Fusion-Io, Inc. | Apparatus, system, and method for caching data on a solid-state storage device |
EP2476079A4 (en) | 2009-09-09 | 2013-07-03 | Fusion Io Inc | APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION |
US9223514B2 (en) | 2009-09-09 | 2015-12-29 | SanDisk Technologies, Inc. | Erase suspend/resume for memory |
US8289801B2 (en) | 2009-09-09 | 2012-10-16 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction management in a storage device |
US9122579B2 (en) | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US8601222B2 (en) | 2010-05-13 | 2013-12-03 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8631028B1 (en) | 2009-10-29 | 2014-01-14 | Primo M. Pettovello | XPath query processing improvements |
USD712289S1 (en) | 2009-12-01 | 2014-09-02 | Electro Industries/Gauge Tech | Electronic meter |
US8677203B1 (en) * | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US20110203944A1 (en) * | 2010-02-20 | 2011-08-25 | Todd Edward Singer | Combination food storage bag and container with soaker pad |
JP5407945B2 (ja) | 2010-03-05 | 2014-02-05 | 株式会社デンソー | 充電制御システム |
US9396104B1 (en) | 2010-03-22 | 2016-07-19 | Seagate Technology, Llc | Accessing compressed data of varying-sized quanta in non-volatile memory |
US8725934B2 (en) | 2011-12-22 | 2014-05-13 | Fusion-Io, Inc. | Methods and appratuses for atomic storage operations |
WO2012016089A2 (en) | 2010-07-28 | 2012-02-02 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
DK2605789T3 (da) | 2010-08-17 | 2019-09-16 | Ambrx Inc | Modificerede relaxinpolypeptider og anvendelser deraf |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US9141526B2 (en) * | 2010-09-16 | 2015-09-22 | International Business Machines Corporation | Reclaiming units by searching units for a predetermined criterion and storing data from a valid subunit |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US9208071B2 (en) | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
CN103262054B (zh) | 2010-12-13 | 2015-11-25 | 桑迪士克科技股份有限公司 | 用于自动提交存储器的装置、系统和方法 |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
WO2012100087A2 (en) | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
JP5917163B2 (ja) * | 2011-01-27 | 2016-05-11 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム並びに記憶媒体 |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
WO2012116369A2 (en) | 2011-02-25 | 2012-08-30 | Fusion-Io, Inc. | Apparatus, system, and method for managing contents of a cache |
US8966191B2 (en) | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US9563555B2 (en) | 2011-03-18 | 2017-02-07 | Sandisk Technologies Llc | Systems and methods for storage allocation |
JP5451682B2 (ja) * | 2011-05-20 | 2014-03-26 | 株式会社東海理化電機製作所 | フラッシュメモリ装置 |
KR20130043445A (ko) * | 2011-10-20 | 2013-04-30 | 삼성전자주식회사 | 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법 |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10359972B2 (en) | 2012-08-31 | 2019-07-23 | Sandisk Technologies Llc | Systems, methods, and interfaces for adaptive persistence |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10318495B2 (en) | 2012-09-24 | 2019-06-11 | Sandisk Technologies Llc | Snapshots for a non-volatile device |
US10509776B2 (en) | 2012-09-24 | 2019-12-17 | Sandisk Technologies Llc | Time sequence data management |
KR102011135B1 (ko) | 2012-12-11 | 2019-08-14 | 삼성전자주식회사 | 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법 |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
JP2014206967A (ja) * | 2013-03-18 | 2014-10-30 | 株式会社Genusion | 記憶装置 |
US10102144B2 (en) | 2013-04-16 | 2018-10-16 | Sandisk Technologies Llc | Systems, methods and interfaces for data virtualization |
US10558561B2 (en) | 2013-04-16 | 2020-02-11 | Sandisk Technologies Llc | Systems and methods for storage metadata management |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US9842128B2 (en) | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US10019320B2 (en) | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for distributed atomic storage operations |
US10073630B2 (en) | 2013-11-08 | 2018-09-11 | Sandisk Technologies Llc | Systems and methods for log coordination |
US9547553B1 (en) | 2014-03-10 | 2017-01-17 | Parallel Machines Ltd. | Data resiliency in a shared memory pool |
US9781027B1 (en) | 2014-04-06 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods to communicate with external destinations via a memory network |
US9529622B1 (en) | 2014-12-09 | 2016-12-27 | Parallel Machines Ltd. | Systems and methods for automatic generation of task-splitting code |
US9690713B1 (en) | 2014-04-22 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for effectively interacting with a flash memory |
US9477412B1 (en) | 2014-12-09 | 2016-10-25 | Parallel Machines Ltd. | Systems and methods for automatically aggregating write requests |
US9927470B2 (en) | 2014-05-22 | 2018-03-27 | Electro Industries/Gauge Tech | Intelligent electronic device having a memory structure for preventing data loss upon power loss |
US9639473B1 (en) | 2014-12-09 | 2017-05-02 | Parallel Machines Ltd. | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location |
US9781225B1 (en) | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
US9753873B1 (en) | 2014-12-09 | 2017-09-05 | Parallel Machines Ltd. | Systems and methods for key-value transactions |
US9632936B1 (en) | 2014-12-09 | 2017-04-25 | Parallel Machines Ltd. | Two-tier distributed memory |
US9946607B2 (en) | 2015-03-04 | 2018-04-17 | Sandisk Technologies Llc | Systems and methods for storage error management |
US10009438B2 (en) | 2015-05-20 | 2018-06-26 | Sandisk Technologies Llc | Transaction log acceleration |
US10528287B2 (en) * | 2015-10-09 | 2020-01-07 | Sony Corporation | Memory, memory controller, storage apparatus, information processing system, and control method for tracking erase count and rewrite cycles of memory pages |
US10162552B2 (en) * | 2016-03-31 | 2018-12-25 | EMC IP Holding Company LLC | System and method for quasi-compacting garbage collection |
KR102670432B1 (ko) | 2017-02-08 | 2024-05-28 | 브리스톨-마이어스 스큅 컴퍼니 | 약동학적 인핸서를 포함하는 변형된 렐락신 폴리펩티드 및 그의 용도 |
KR20190001300A (ko) * | 2017-06-27 | 2019-01-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법 |
USD939988S1 (en) | 2019-09-26 | 2022-01-04 | Electro Industries/Gauge Tech | Electronic power meter |
CN111522507B (zh) * | 2020-04-14 | 2021-10-01 | 中山大学 | 一种低延迟的文件系统地址空间管理方法、系统及介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62102385A (ja) * | 1985-10-29 | 1987-05-12 | Toshiba Corp | 携帯可能媒体 |
JPS62131354A (ja) * | 1985-12-03 | 1987-06-13 | Sharp Corp | Icカ−ドに於ける情報書き込み制御方法 |
JPS62283496A (ja) * | 1986-05-31 | 1987-12-09 | Canon Inc | プログラマブルリ−ドオンリメモリの書き込み回数管理方式 |
JPS62283497A (ja) * | 1986-05-31 | 1987-12-09 | Canon Inc | メモリ書き込み制御方法 |
JPS63129586A (ja) * | 1986-11-19 | 1988-06-01 | Matsushita Electric Ind Co Ltd | 情報記憶装置 |
JPS63200398A (ja) * | 1987-02-16 | 1988-08-18 | Hitachi Ltd | 情報処理装置 |
JPS63233448A (ja) * | 1986-05-29 | 1988-09-29 | 松下電器産業株式会社 | 記憶領域割付方法及びその装置 |
JPS6488652A (en) * | 1987-09-29 | 1989-04-03 | Fujitsu Ltd | Directory constituting system |
JPH01180688A (ja) * | 1988-01-12 | 1989-07-18 | Toshiba Corp | 携帯可能電子装置 |
JPH01276495A (ja) * | 1988-04-28 | 1989-11-07 | Hitachi Ltd | Eepromの制御方式 |
JPH02188000A (ja) * | 1989-01-13 | 1990-07-24 | Sharp Corp | 不揮発性メモリ内蔵マイクロコンピュータ |
JPH02292798A (ja) * | 1989-04-13 | 1990-12-04 | Sundisk Corp | フラッシュEEpromシステム |
JPH0322046A (ja) * | 1989-06-19 | 1991-01-30 | Matsushita Graphic Commun Syst Inc | 追記型記憶媒体を用いたファイルの管理方法 |
JPH0325798A (ja) * | 1989-06-23 | 1991-02-04 | Ricoh Co Ltd | Eepromを使用した記憶装置 |
EP0439920A2 (en) * | 1990-01-31 | 1991-08-07 | Hewlett-Packard Company | System and method for memory management in a microcomputer |
JPH0527924A (ja) * | 1991-07-12 | 1993-02-05 | Internatl Business Mach Corp <Ibm> | 半導体メモリを用いた外部記憶システム及びその制御方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4435752A (en) * | 1973-11-07 | 1984-03-06 | Texas Instruments Incorporated | Allocation of rotating memory device storage locations |
US4408273A (en) | 1980-05-27 | 1983-10-04 | International Business Machines Corporation | Method and means for cataloging data sets using dual keyed data sets and direct pointers |
DE3173549D1 (en) | 1981-03-16 | 1986-03-06 | Ibm | Improvements to digital data processing apparatus |
US4724517A (en) | 1982-11-26 | 1988-02-09 | Inmos Limited | Microcomputer with prefixing functions |
US4507752A (en) | 1983-02-22 | 1985-03-26 | International Business Machines Corporation | In-place index compression |
US4630234A (en) | 1983-04-11 | 1986-12-16 | Gti Corporation | Linked list search processor |
US4606002A (en) | 1983-05-02 | 1986-08-12 | Wang Laboratories, Inc. | B-tree structured data base using sparse array bit maps to store inverted lists |
JPS62128391A (ja) * | 1985-11-30 | 1987-06-10 | Toshiba Corp | 携帯可能電子装置 |
US4953122A (en) | 1986-10-31 | 1990-08-28 | Laserdrive Ltd. | Pseudo-erasable and rewritable write-once optical disk memory system |
US5060147A (en) | 1987-05-01 | 1991-10-22 | General Electric Company | String length determination on a distributed processing system |
US4942541A (en) * | 1988-01-22 | 1990-07-17 | Oms, Inc. | Patchification system |
US5132853A (en) * | 1988-02-08 | 1992-07-21 | International Business Machines Corporation | Allocation procedures for optical disk recorders |
US4939598A (en) * | 1988-02-08 | 1990-07-03 | International Business Machines Corporation | Managing data storage space on large capacity record media |
US4953080A (en) | 1988-04-25 | 1990-08-28 | Hewlett-Packard Company | Object management facility for maintaining data in a computer system |
JPH01286199A (ja) * | 1988-05-12 | 1989-11-17 | Hitachi Ltd | 書替え可能な不揮発性メモリ書替え装置 |
US5268870A (en) * | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5161256A (en) * | 1988-08-26 | 1992-11-03 | Kabushiki Kaisha Toshiba | Method and system for allocating file area in memory area of ic card |
US4989132A (en) | 1988-10-24 | 1991-01-29 | Eastman Kodak Company | Object-oriented, logic, and database programming tool with garbage collection |
US5115504A (en) | 1988-11-01 | 1992-05-19 | Lotus Development Corporation | Information management system |
US5029125A (en) * | 1989-03-07 | 1991-07-02 | Drexler Technology Corporation | Method of reading and writing files on nonerasable storage media |
US5491807A (en) | 1989-03-20 | 1996-02-13 | International Business Machines Corporation | System and method for worm volume management of new and updated data files using variable threshold block addresses |
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
JP2646813B2 (ja) * | 1990-07-30 | 1997-08-27 | 松下電器産業株式会社 | ディジタル映像信号記録方法 |
US5247516A (en) * | 1991-03-28 | 1993-09-21 | Sprint International Communications Corp. | Configurable composite data frame |
US5229992A (en) * | 1991-03-28 | 1993-07-20 | Sprint International Communications Corp. | Fixed interval composite framing in integrated services networks |
-
1992
- 1992-01-29 US US07/828,763 patent/US6256642B1/en not_active Expired - Fee Related
-
1993
- 1993-01-29 CA CA002088442A patent/CA2088442C/en not_active Expired - Lifetime
- 1993-01-29 CA CA002325812A patent/CA2325812C/en not_active Expired - Fee Related
- 1993-01-29 JP JP01398093A patent/JP3825479B2/ja not_active Expired - Lifetime
- 1993-01-29 DE DE69333906T patent/DE69333906T2/de not_active Expired - Lifetime
- 1993-01-29 EP EP93101396A patent/EP0557736B1/en not_active Expired - Lifetime
- 1993-01-29 CA CA002325810A patent/CA2325810C/en not_active Expired - Fee Related
-
1995
- 1995-06-07 US US08/488,548 patent/US5898868A/en not_active Expired - Lifetime
- 1995-06-07 US US08/473,763 patent/US5634050A/en not_active Expired - Lifetime
-
2006
- 2006-05-09 JP JP2006130477A patent/JP2006209807A/ja active Pending
- 2006-05-09 JP JP2006130478A patent/JP4365385B2/ja not_active Expired - Lifetime
-
2008
- 2008-08-25 JP JP2008214841A patent/JP4485586B2/ja not_active Expired - Lifetime
-
2009
- 2009-03-30 JP JP2009081080A patent/JP4858789B2/ja not_active Expired - Lifetime
- 2009-12-01 JP JP2009273034A patent/JP4608588B2/ja not_active Expired - Lifetime
- 2009-12-01 JP JP2009273033A patent/JP4608587B2/ja not_active Expired - Lifetime
- 2009-12-01 JP JP2009273039A patent/JP4608589B2/ja not_active Expired - Lifetime
-
2011
- 2011-01-25 JP JP2011012551A patent/JP4836217B2/ja not_active Expired - Lifetime
- 2011-08-09 JP JP2011173783A patent/JP2011222051A/ja active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62102385A (ja) * | 1985-10-29 | 1987-05-12 | Toshiba Corp | 携帯可能媒体 |
JPS62131354A (ja) * | 1985-12-03 | 1987-06-13 | Sharp Corp | Icカ−ドに於ける情報書き込み制御方法 |
JPS63233448A (ja) * | 1986-05-29 | 1988-09-29 | 松下電器産業株式会社 | 記憶領域割付方法及びその装置 |
JPS62283496A (ja) * | 1986-05-31 | 1987-12-09 | Canon Inc | プログラマブルリ−ドオンリメモリの書き込み回数管理方式 |
JPS62283497A (ja) * | 1986-05-31 | 1987-12-09 | Canon Inc | メモリ書き込み制御方法 |
JPS63129586A (ja) * | 1986-11-19 | 1988-06-01 | Matsushita Electric Ind Co Ltd | 情報記憶装置 |
JPS63200398A (ja) * | 1987-02-16 | 1988-08-18 | Hitachi Ltd | 情報処理装置 |
JPS6488652A (en) * | 1987-09-29 | 1989-04-03 | Fujitsu Ltd | Directory constituting system |
JPH01180688A (ja) * | 1988-01-12 | 1989-07-18 | Toshiba Corp | 携帯可能電子装置 |
JPH01276495A (ja) * | 1988-04-28 | 1989-11-07 | Hitachi Ltd | Eepromの制御方式 |
JPH02188000A (ja) * | 1989-01-13 | 1990-07-24 | Sharp Corp | 不揮発性メモリ内蔵マイクロコンピュータ |
JPH02292798A (ja) * | 1989-04-13 | 1990-12-04 | Sundisk Corp | フラッシュEEpromシステム |
JPH0322046A (ja) * | 1989-06-19 | 1991-01-30 | Matsushita Graphic Commun Syst Inc | 追記型記憶媒体を用いたファイルの管理方法 |
JPH0325798A (ja) * | 1989-06-23 | 1991-02-04 | Ricoh Co Ltd | Eepromを使用した記憶装置 |
EP0439920A2 (en) * | 1990-01-31 | 1991-08-07 | Hewlett-Packard Company | System and method for memory management in a microcomputer |
JPH04213129A (ja) * | 1990-01-31 | 1992-08-04 | Hewlett Packard Co <Hp> | メモリ管理システム及びメモリ管理方法 |
JPH0527924A (ja) * | 1991-07-12 | 1993-02-05 | Internatl Business Mach Corp <Ibm> | 半導体メモリを用いた外部記憶システム及びその制御方法 |
Also Published As
Publication number | Publication date |
---|---|
US5634050A (en) | 1997-05-27 |
DE69333906T2 (de) | 2006-05-24 |
JP2011103137A (ja) | 2011-05-26 |
JP2010049712A (ja) | 2010-03-04 |
JP4836217B2 (ja) | 2011-12-14 |
JP2006209808A (ja) | 2006-08-10 |
CA2088442C (en) | 2003-04-15 |
EP0557736A2 (en) | 1993-09-01 |
JP4858789B2 (ja) | 2012-01-18 |
JP2010049714A (ja) | 2010-03-04 |
CA2325812A1 (en) | 1993-07-30 |
CA2325812C (en) | 2001-12-18 |
EP0557736A3 (ja) | 1994-02-09 |
JPH07191892A (ja) | 1995-07-28 |
EP0557736B1 (en) | 2005-11-16 |
JP3825479B2 (ja) | 2006-09-27 |
JP2009146458A (ja) | 2009-07-02 |
JP4485586B2 (ja) | 2010-06-23 |
JP2006209807A (ja) | 2006-08-10 |
JP2008282429A (ja) | 2008-11-20 |
DE69333906D1 (de) | 2005-12-22 |
JP4608588B2 (ja) | 2011-01-12 |
CA2325810A1 (en) | 1993-07-30 |
CA2325810C (en) | 2001-08-21 |
JP2011222051A (ja) | 2011-11-04 |
JP4608589B2 (ja) | 2011-01-12 |
JP4365385B2 (ja) | 2009-11-18 |
US6256642B1 (en) | 2001-07-03 |
US5898868A (en) | 1999-04-27 |
JP4608587B2 (ja) | 2011-01-12 |
CA2088442A1 (en) | 1993-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4608588B2 (ja) | フラッシュ消去可能なプログラマブル・リードオンリメモリを用いてファイルシステムをマネージする方法及びシステム | |
US5392427A (en) | System for updating data stored on a flash-erasable, programmable, read-only memory (FEPROM) based upon predetermined bit value of indicating pointers | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US9311015B2 (en) | Storage system capable of managing a plurality of snapshot families and method of operating thereof | |
US7610434B2 (en) | File recording apparatus | |
EP0688450B1 (en) | Flash file system | |
KR100453053B1 (ko) | 플래쉬 메모리용 파일 시스템 | |
US6381176B1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
KR101329068B1 (ko) | 블록 관리를 가지는 비휘발성 메모리 | |
US20070294490A1 (en) | System and Method of Updating a Memory to Maintain Even Wear | |
KR20070060070A (ko) | 최적화된 순차적인 클러스터 관리용 에프에이티 분석 | |
JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
US6938140B2 (en) | System and method for linear object reallocation in place | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
Wiseman | The SMITE object oriented backing store | |
Wiseman | ROYAL SIGNALS AND RADAR ESTABLISSHMENT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100624 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100909 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101008 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 3 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131015 Year of fee payment: 3 |