JP2000057039A - アクセス制御方法及び装置及びファイルシステム及び情報処理装置 - Google Patents

アクセス制御方法及び装置及びファイルシステム及び情報処理装置

Info

Publication number
JP2000057039A
JP2000057039A JP21947998A JP21947998A JP2000057039A JP 2000057039 A JP2000057039 A JP 2000057039A JP 21947998 A JP21947998 A JP 21947998A JP 21947998 A JP21947998 A JP 21947998A JP 2000057039 A JP2000057039 A JP 2000057039A
Authority
JP
Japan
Prior art keywords
access
block
address
request
storage medium
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.)
Withdrawn
Application number
JP21947998A
Other languages
English (en)
Inventor
Shigeo Suzuki
茂夫 鈴木
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP21947998A priority Critical patent/JP2000057039A/ja
Priority to US09/363,822 priority patent/US6526472B2/en
Publication of JP2000057039A publication Critical patent/JP2000057039A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【課題】アドレスによるアクセスが可能な記憶媒体に対
してブロック単位のアクセスを行うファイルシステムに
おいて、データの読み出し時には該記憶媒体から直接ユ
ーザプログラムのメモリ領域へデータ転送することを可
能とする。 【解決手段】ファイル管理部3及びバッファキャッシュ
管理部4は、ユーザプログラム1より指示されるアクセ
ス要求に基づいてFlashROM7にブロック単位の
アクセスを行うためのアクセス情報を生成する。ここ
で、アクセス要求がデータの読み出し要求であった場
合、Flashディスクドライバ部6は、アクセス情報
によって指定されるブロックに基づいて、FlashR
OM7へのアクセスアドレスを算出し、算出されたアク
セスアドレスでFlashROM7からデータを読み出
す。そして、バッファキャッシュ管理部4は、得られた
データを前記ユーザプログラムの管理するメモリ領域へ
直接に転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はアクセス制御方法及
び装置及びファイルシステム及び情報処理装置に関す
る。更に詳しくは、FlashROMをデータ格納領域
として用いるのに好適なアクセス制御方法及び装置、該
アクセス制御方法実行するファイルシステム及び情報処
理装置に関するものである。
【0002】
【従来の技術】一般に、ファイルシステムにおいては、
フロッピーディスク装置やハードディスク装置などの二
次記憶装置をデータ格納領域として用いる。また、これ
らの二次記憶装置としては、512バイトまたは102
4バイトといったブロック単位でランダムアクセス可能
なものが一般的である。
【0003】これら二次記憶装置は、アクセス速度が遅
い、またブロック単位でのアクセスしかできないといっ
た特性がある。そのため、そのような二次記憶装置を利
用するファイルシステムでは、RAMなどのメモリ上に
バッファキャッシュを用意し、実際の二次記憶装置への
アクセス頻度を抑えることでパフォーマンスの向上を図
るとともに、ファイルシステム利用者(ユーザプログラ
ム)がブロック単位ではない自由な単位でのアクセスを
行えるようにしている。
【0004】一方、近年では、ファイルシステムのデー
タ格納領域に、上記の二次記憶装置の代わりに、Fla
shROMを利用することも行われてきている。この場
合、FlashROMをブロック単位でランダムリード
/ライト可能にする特殊なソフトウェアドライバ(これ
をFlashディスクドライバと呼ぶことにする)を用
意し、上記の二次記憶装置(フロッピーディスク装置や
ハードディスク装置)とまったく同様のインタフェース
でのアクセス可能としている。このためFlashディ
スクドライバを利用するファイルシステムにおいても、
従来のフロッピーディスク装置やハードディスク装置を
データ格納領域としてきたファイルシステムがそのまま
の形態で利用されているのが一般的である。
【0005】
【発明が解決しようとする課題】しかしながら、Fla
shROMをデータ格納領域とするファイルシステム
を、従来のバッファキャッシュを用いるファイルシステ
ムで実現すると、FlashROMの特性を活かすこと
が難しく、いくつかの問題点が生じている。
【0006】FlashROMは、一般にライト動作に
は特殊なコマンドシーケンスを必要とするものの、リー
ド動作は通常のメモリと同様に直接アクセスが可能であ
る。またリードアクセス速度もRAMよりは遅いもの
の、ディスク装置に比べれば遙かに高速である。
【0007】このような特性にもかかわらず、従来のフ
ァイルシステムでは、ファイルシステム利用者(ユーザ
プログラム)がたとえリード処理しか行なわない場合で
も、まずはブロック単位でバッファキャッシュにデータ
を読み出し、そこから利用者のメモリ領域にコピーする
という手順がとられることになる。このため、以下のよ
うな問題が生じる。
【0008】(1)リード動作において、FlashR
OMから利用者のメモリ領域に直接コピーが可能である
にもかかわらず、バッファキャッシュへの無駄なコピー
が介在する。従って、リード動作に不要な処理時間が加
わることになる。
【0009】(2)リード処理しか行なっていないブロ
ックに対してもバッファキャッシュを割り当ててしま
う。すなわち、リード動作に不要なバッファキャッシュ
の割当てが行われてしまい、メモリの利用効率が低下す
る。この結果、ライト処理用に必要となるバッファキャ
ッシュ領域など他のメモリ領域への圧迫も生じる。
【0010】本発明は上記の問題に鑑みてなされたもの
であり、その目的とするところは、アドレスによるアク
セスが可能な記憶媒体に対してブロック単位のアクセス
を行うファイルシステムにおいて、データの読み出し時
には該記憶媒体から直接ユーザプログラムのメモリ領域
へデータ転送可能とすることにある。
【0011】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の一態様によるアクセス制御方法は、たとえ
ば以下の工程を備える。すなわち、アドレス単位でのア
クセスが可能な記憶媒体のためのアクセス制御方法であ
って、ユーザプログラムより指示されるアクセス要求に
基づいて前記記憶媒体にブロック単位のアクセスを行う
ためのブロックアクセス情報を生成する生成工程と、前
記アクセス要求がデータ読み出し要求であった場合、前
記ブロックアクセス情報で指定されるアクセス先のブロ
ックに基づいて、前記記憶媒体へのアクセスアドレスを
算出する算出工程と、前記算出工程で算出されたアクセ
スアドレスでもって前記記憶媒体をアクセスし、得られ
たデータを前記ユーザプログラムの管理するメモリ領域
へ転送する転送工程とを備える。
【0012】また、上記の目的を達成するための本発明
の他の態様によるアクセス制御装置は、たとえば以下の
構成を備える。すなわち、アドレス単位でのアクセスが
可能な記憶媒体のためのアクセス制御装置であって、ユ
ーザプログラムより指示されるアクセス要求に基づいて
前記記憶媒体にブロック単位のアクセスを行うためのブ
ロックアクセス情報を生成する生成手段と、前記アクセ
ス要求がデータ読み出し要求であった場合、前記ブロッ
クアクセス情報で指定されるアクセス先のブロックに基
づいて、前記記憶媒体へのアクセスアドレスを算出する
算出手段と、前記算出手段で算出されたアクセスアドレ
スでもって前記記憶媒体をアクセスし、得られたデータ
を前記ユーザプログラムの管理するメモリ領域へ転送す
る転送手段とを備える。
【0013】
【発明の実施の形態】以下、添付図面にしたがって本発
明に係る実施形態を詳細に説明する。
【0014】図1は本実施形態によるファイルシステム
の概念図である。図1において、1はファイルシステム
を利用するユーザプログラム、2はファイルシステムを
実現するファイルシステムプログラムである。
【0015】3はユーザプログラム1からの要求を受付
け、ファイル名などで指定されたファイルをオープン、
クローズする処理、新規ファイルの作成/既存ファイル
の削除処理、ファイル上のどの位置からリード/ライト
するかを示すファイルポインタの管理、ディレクトリ構
造の管理、などを行なうファイル管理部である。なお、
ファイル管理部3に関しては、ツリー構造のディレクト
リであっても単一ディレクトリ構造であっても構わな
い。また、空き領域をリストで管理してもビットマップ
で管理しても構わない。また、ファイルをMS−DOS
の用にファイル割り当てテーブル(FAT:File Alloca
tion Table)で管理してもUNXIのようにiノードで
管理しても構わない。これらファイル管理の細かい実現
方法は本発明を制限するものではない。なお、iノード
やFATはディスクブロックに書き込まれるものであ
り、本実施形態ではFlashROMに書き込まれる。
【0016】4はバッファキャッシュ管理部、5はバッ
ファキャッシュ管理部4により管理されるバッファキャ
ッシュである。バッファキャッシュ管理部4は、データ
格納領域となるFlashROMへのリード/ライトア
クセスを、必要に応じてバッファキャッシュ5を介して
行なうように処理する。6はデータ格納領域となるFl
ashROMを、フロッピーディスクやハードディスク
のような二次記憶装置のように、512バイト、102
4バイトといったブロック単位でランダムリード/ライ
ト処理を可能とするFlashディスクドライバ部であ
る。7は当該ファイルシステムのデータ格納領域となる
FlashROMである。
【0017】図2は上述の機能構成を実現するための概
略のハード構成を示すブロック図である。図2におい
て、101はCPUであり、上述のユーザプログラム1
やファイルシステムプログラム2を実行する。102は
RAMであり、上述のユーザプログラム1やファイルシ
ステムプログラム2のプログラムコードを格納するほ
か、上述のバッファキャッシュ5としての領域を提供す
る。7はデータ格納領域となるFlashROMであ
り、RAM102と同様に通常のメモリ空間(CPU1
01によって直接的にアクセスが可能なメモリ空間)に
マップされている。103はCPU101、Flash
ROM7、RAM102を接続するシステムバスであ
る。
【0018】FlashROM7は一般的に次のような
特徴を持つ。リード動作においては通常のRAMと同様
に直接アクセスすることが可能である。ライト動作にお
いては一度イレースしてからでないと行なえない。ま
た、RAMのようにCPUが直接ライトできるわけでは
なく、特殊なコマンド列をFlashROM7に発行す
る形で行なう。また一度書き込んだ場所に上書きする場
合にも一度イレースしなければならない。またイレース
は64Kバイトといった単位(この単位をユニットと呼
ぶことにする)でしか行なうことができない。そしてイ
レース回数が10万回程度までしか保証されていない。
【0019】上記のような特徴を持つFlashROM
7をディスク装置のように扱えるようにするFlash
ディスクドライバ部6は以下のような処理を行なう。
【0020】図3は本実施形態によるFlashROM
の管理単位を説明する図である。一般に、ディスク装置
は512バイト、1024バイトといったブロック単位
で扱われる。したがって、FlashROM7も図3に
示すように、各ユニットをブロック単位(本例では51
2バイト)に分割して、それぞれに実ブロック番号を割
り当てて管理する。
【0021】このような管理を実現するために、仮想ブ
ロック番号と実ブロック番号をマッピングするマッピン
グテーブルを用意する。図4は本実施形態におけるマッ
ピングテーブルの一例を示す図である。201はマッピ
ングテーブルであり、仮想ブロック番号と実ブロック番
号を対にして格納する。Flashディスクドライバ部
6の利用者(ここでは、バッファキャッシュ管理部4)
は、仮想ブロック番号を指定することで仮想的なディス
ク装置を扱うことになる。
【0022】更に、Flashディスクドライバ部6
は、実ブロック及びユニットを管理するためにユニット
管理テーブルを備える。図5は本実施形態におけるFl
ashROM管理のためのユニット管理テーブルの例を
示す図である。ユニット管理テーブル202は、Fla
shROM7上の各ユニット毎に、ユニットの状態(イ
レース回数)、またそれに含まれる各実ブロックのデー
タ書き込み状態を記録したものである。なお、実ブロッ
クのデータ書込み状態に関しては、当該実ブロックに書
込まれているデータが有効である状態(アクティブ状
態)か、無効である状態(ガベージ状態)か、或いはま
だデータが書き込まれていない状態(フリー状態)の何
れであるかを示す情報が記録される。なお、これらマッ
ピングテーブル201やユニット管理テーブル202
は、本実施形態では、システムの立ち下げ時にFlas
hROMの所定のブロックに格納され、立ち上げ時にR
AM上へロードされて用いられるものとするが、別の方
法を用いてもかまわないことはいうまでもない。
【0023】以下、FlashROMにおけるユニット
のサイズを64Kバイト、実ブロックのサイズを512
バイトとして説明する。この場合、1ユニットには、1
28の実ブロックが入ることになる。そして、ユニッ
ト、ブロックともにゼロから番号付けされているものと
する。
【0024】Flashディスクドライバ部6の初期状
態としては、全ユニットがイレースされ、すべての実ブ
ロックがフリー状態となり、マッピングテーブル201
もすべて空きの状態となる。
【0025】初期状態のとき、利用者から、例えば、仮
想ブロック番号3(以下、仮想ブロック[3]と表記す
る)へのライト要求が発行されると、まず対象となるユ
ニットが選ばれる。この場合、最もイレース回数の少な
いユニットを選択する。ここで、ユニット番号2(ユニ
ット[2]と表記する)が選ばれたとする。そして、す
べてフリー状態になっている実ブロックの先頭から使用
していく。ユニット[2]の先頭の実ブロック番号は2
56であるから、この例の場合は、実ブロック番号25
6のブロック(実ブロック[256]と表記する)が選
択される。この実ブロック[256]にデータの書き込
み処理を行ない、実ブロック[256]をアクティブ状
態とする。最後にマッピングテーブル201の仮想ブロ
ック[3]のエントリに実ブロック番号256を書込
む。
【0026】以降の上書きでないライト処理において
は、ユニット[2]内の実ブロックが順次選択される。
すなわち実ブロック[257]、実ブロック[25
8]、…と順に使用して上記と同様の処理によってデー
タの書込みが行なわれていく。そして、ユニット[2]
を使いきると、また新しいユニットを上記と同様に選択
し、同様の処理を繰り返していく。
【0027】一方、上書きのライト要求が発行された場
合、例えば再び仮想ブロック[3]へのライト要求が発
行された場合には、まずマッピングテーブル201によ
りマッピングされている実ブロック[256]をガベー
ジ状態として無効化する(ユニット管理テーブル202
の対応するエントリを更新する)。そして、上記の上書
きでないライト処理と同様に、新しい実ブロックを得
て、データの書き込み処理を行ない、当該ブロックをア
クティブ状態とし、マッピングテーブル201の仮想ブ
ロック[3]のエントリをその新しい実ブロックに更新
する。
【0028】さて、上記のような上書きのライト処理を
繰り返すとガベージ状態の実ブロックが増え、フリー状
態の実ブロックが減っていく。したがって、あるタイミ
ングでガベージコレクションを行なう必要がある。
【0029】ガベージコレクションでは、フリー状態の
実ブロックが無くガベージ状態の実ブロックの多いユニ
ット、そしてイレース回数の少ないユニットが対象とな
る。このような条件のユニットは、ユニット管理テーブ
ル202を参照して見つけることができる。そして、ま
ず、ガベージコレクションの対象ユニット内にあるアク
ティブ状態の実ブロックの内容をすべて、他ユニット内
のフリー状態の実ブロックにコピーし、コピー先の実ブ
ロックをアクティブ状態とし、マッピングテーブル20
1の対応するエントリの更新を行なう。これらがすべて
終了とすると、その対象ユニットをイレースし、ユニッ
ト管理テーブル202内の当該ユニットのイレース回数
を更新し、そのユニットに属するすべての実ブロックを
フリー状態とする(ユニット管理テーブル202に対応
するエントリを更新する)。
【0030】なお、上記のガベージコレクション処理
は、周期的に行なうようにしてもフリー状態の実ブロッ
ク数がある閾値以下になった時に行なうようにしても構
わない。ガベージコレクションの細かい実現方法は本発
明を制限するものではない。
【0031】リード要求が発行された場合には、マッピ
ングテーブル201を参照することにより、指定された
仮想ブロックにマップされている実ブロックを得て、そ
のデータ内容を利用者のメモリ領域にコピーする。
【0032】以上がFlashディスクドライバ部6の
処理である。本実施形態では、上記のようなライト処
理、リード処理に加えて、実ブロックのメモリアドレス
を獲得する処理(アドレス獲得処理)を有する。このア
ドレス獲得処理により、リード処理において、利用者が
実ブロックの先頭のメモリアドレスを獲得し、直接実ブ
ロックの内容を読み出すことを可能とする。これによ
り、Flashディスクドライバ部6の利用者が、通常
のリード要求のように、利用者のメモリ領域を指定して
そこに実ブロック内のデータをコピーしてもらうのでは
なく、利用者が実ブロックの先頭のメモリアドレスを獲
得し、直接実ブロックの内容を読み出すことを可能とす
る。なお、本実施形態では、Flashディスクドライ
バ部6の利用者はバッファキャッシュ管理部4であり、
利用者のメモリ領域はバッファキャッシュとなる。ただ
し、これら利用者やそのメモリ領域が、Flashディ
スクドライバ部6の利用形態に応じて変化することは理
解され得ることである。
【0033】リード処理において、利用者から実ブロッ
クのメモリアドレスを獲得する要求(アドレス獲得要
求)が発行されると、Flashディスクドライバ部6
はマッピングテーブル201を参照して、指定された仮
想ブロックにマップされている実ブロック番号を得る。
そして、この実ブロック番号からメモリアドレスを計算
する。例えば、FlashROM7がメモリアドレス0
x80000000からスタートしていたとして、実ブ
ロック番号が3だったとする。この場合、ブロックサイ
ズが512バイト(0x200バイト)なので、実ブロ
ック[3]の先頭アドレスは0x80000000+0
x200*3=0x80000600となる。そして、
この計算結果を実ブロックのメモリアドレスとして利用
者に返す。
【0034】次に、本実施形態におけるリード、ライト
の動作について更に詳細に説明する。
【0035】ユーザプログラム1が、ファイルオープ
ン、クローズ、リード、ライト、作成、削除といった要
求を発行すると、ファイル管理部3がそれを受け付け、
対応する処理を行なう。そしてその際、データ格納領域
(本例の場合はFlashROM7)へのリード/ライ
トアクセスが必要になると、それらは通常バッファキャ
ッシュ管理部4を介して行なわれる。図6はバッファキ
ャッシュ管理部によるバッファキャッシュの管理形態を
説明する図である。バッファキャッシュ管理部4では、
図6のように、ブロック単位でバッファキャッシュを管
理しており、このブロック単位のバッファキャッシュを
キャッシュブロックと呼ぶことにする。キャッシュブロ
ックは1ブロック分のデータ領域と、ブロック番号を格
納するエントリと、そのブロックがダーティ状態(キャ
ッシュがモディファイされていて実体と内容が異なって
いる状態)かどうかを示すエントリを持つ。そしてLR
U(Least Recently Used)リストでリンクされて管理さ
れる。バッファキャッシュの領域は、システム初期化時
に固定的に領域を確保しても構わないし、OSなどによ
り提供される汎用のメモリアロケーション手段を用いて
も構わない。
【0036】上記のような処理のうち、まずはすでにあ
るファイルAが存在し、ユーザプログラム1がそのファ
イルAのオープンを終え、リード処理を開始したところ
からを例として説明する。図7は、本実施形態における
ファイルのリード処理を説明するフローチャートであ
る。なお、ファイルAはブロック(仮想ブロックに対応
する)[256],[257]の二つのブロックで構成
され、また、これらブロック[256],[257]
は、Flashディスクドライバ部6で実ブロック
[4],[5]にマッピングされていたとする。なお、
ファイルAが[256]及び[257]に存在すること
の管理は、ファイル管理部3が行い、iノード方式であ
ればiノードにより管理し、FAT方式であればFAT
により管理することになる。
【0037】ステップS11で、ファイル管理部3がリ
ード要求を受け付けると、要求に対応するブロック番号
を割り出す。リード要求が、ファイルAの先頭から12
8バイトをユーザプログラム1の0x40000000
から始まるデータ領域に読み出す、というものだったと
する。この場合、対応するブロックはブロック[25
6]となる。次に、ステップS12に進み、ファイル管
理部3はバッファキャッシュ管理部4に対してリード要
求を発行する。このときの引数は、ブロック番号256
と、ブロックの先頭からのオフセット値0バイトと、デ
ータ領域のアドレス0x40000000と、読み出し
サイズ128バイトの4つである。
【0038】ステップS13で、リード要求を受けたバ
ッファキャッシュ管理部4は、管理中のキャッシュブロ
ックを調べることにより、ブロック[256]に対応す
るキャッシュブロックがすでに管理されているかどうか
を判断する。すでに対応するキャッシュブロックが存在
する場合には(以下、そのキャッシュブロックをキャッ
シュブロック[256]と呼ぶ)、ステップS14から
ステップS20に進み、存在しない場合にはステップS
15に進む。
【0039】リード要求されたブロックに対応するキャ
ッシュバッファが存在しない場合は、要求されたブロッ
クに対応する実ブロックのアドレスを得て、このアドレ
スによってFlashROMをアクセスする。まず、ス
テップS15で、バッファキャッシュ管理部4は、Fl
ashディスクドライバ部6に対して、ブロック[25
6]のアドレス獲得要求を発行する。アドレス獲得要求
を受けたFlashディスクドライバ部6は、ステップ
S16において、マッピングテーブル201を参照して
仮想ブロック[256]に対応する実ブロック番号を得
て(本例では「4」)、この実ブロック番号に基づいて
メモリアドレスを計算する。本例では、0x80000
000+0x200×4=0x80000800が得ら
れ、このアドレス値をバッファキャッシュ管理部4に返
す。
【0040】次に、ステップS17において、メモリア
ドレスを得たバッファキャッシュ管理部4は、ステップ
S13で受け取った引数(オフセット値、データ領域ア
ドレス、読出しサイズ)にしたがったメモリコピー処理
を行なう。本例の場合、オフセット値0バイト、データ
領域のアドレス0x40000000、読み出しサイズ
128バイトで、実ブロック[4]のメモリアドレスが
0x80000800なので、ソースアドレス0x80
000800、ディスティネーションアドレス0x40
000000、サイズ128バイトのメモリコピーを行
なう。なお、上記の例ではオフセット値が0の場合を説
明したが、例えばオフセット値が64バイト(0x4
0)だった場合には、ソースアドレスが0x80000
800+0x40=0x80000840となる。この
ように、FlashROM7から直接ユーザプログラム
1のデータ領域にデータがコピーされることになる。
【0041】一方、ステップS14において、すでにキ
ャッシュブロック[256]が存在していると判断され
た場合は、ステップS20に進む。ステップS20にお
いて、バッファキャッシュ管理部4は、ステップS13
で受け取った引数(オフセット値、データ領域アドレ
ス、読出しサイズ)にしたがったメモリコピー処理を行
なう。ただし、この場合、ステップS17とは異なり、
ソースアドレスは実ブロックのメモリアドレスではなく
キャッシュブロック内のデータ領域のアドレスとなる。
例えば、キャッシュブロック[256]内のデータ領域
の先頭アドレスが0x20000000だったとして、
オフセット値が0バイトだった場合には、ソースアドレ
スが0x20000000となり、オフセット値が64
バイトだった場合には、ソースアドレスが0x2000
0000+0x40=0x20000040となる。こ
のように、バッファキャッシュがすでにある場合には、
バッファキャッシュからユーザプログラム1のデータ領
域にデータがコピーされることになる。
【0042】次に、すでにあるファイルAが存在し、ユ
ーザプログラム1がファイルAのオープンを終え、ライ
ト処理を開始した場合を例にあげて、本実施形態のライ
ト処理を説明する。図8及び図9は本実施形態によるラ
イト処理の手順を説明するフローチャートである。ファ
イルAはブロック(仮想ブロックに対応する)[25
6],[257]の二つのブロックで構成され、また、
これらブロック[256],[257]は、Flash
ディスクドライバ部6で実ブロック[4],[5]にマ
ッピングされていたとする。
【0043】ステップS31で、ファイル管理部3がラ
イト要求を受け付けると、マッピングテーブル201を
参照して要求に対応するブロック番号を割り出す。い
ま、ライト要求が、ユーザプログラム1の0x4000
0000から始まるデータ領域の内容を、ファイルAの
先頭から128バイト書込む、というものだったとす
る。この場合、書き込みの対象となるブロックはブロッ
ク[256]となる。次に、ステップS32に進み、フ
ァイル管理部3はバッファキャッシュ管理部4に対して
ライト要求を発行する。このときの引数は、ブロック番
号256と、ブロックの先頭からのオフセット値0バイ
トと、データ領域のアドレス0x40000000と、
書込みサイズ128バイトの4つである。
【0044】ステップS33で、ライト要求を受けたバ
ッファキャッシュ監理部4は、管理中のキャッシュブロ
ックを調べ、ブロック[256]に対応するキャッシュ
ブロックがすでに管理されているかどうかを判断する。
すでに対応するキャッシュブロック[256]が存在す
る場合には、ステップS34からステップS41に進
み、存在しない場合にはステップS35に進む。
【0045】対応するキャッシュブロックが存在しない
場合は、ステップS35以降の処理により、対応する実
ブロックのデータをキャッシュブロックにキャッシュし
てデータの書き込みを行う。まず、ステップS35にお
いて、バッファキャッシュ管理部4は、バッファキャッ
シュ5内に新しいキャッシュブロックを獲得する。ステ
ップS36で、新たなキャッシュブロックの獲得が成功
したかどうか(フリーのキャッシュブロックがあったか
どうか)を調べる。そして、獲得できなかった場合には
ステップS37から図9のステップS50に進む。一
方、キャッシュブロックを獲得できた場合にはステップ
S37からステップS38に進む。
【0046】ステップS38において、バッファキャッ
シュ管理部4は、獲得したキャッシュブロックのエント
リの「ブロック番号」に256をセットし、LRUリス
トにリンクする。以下、ブロック番号を256に設定さ
れたキャッシュブロックをキャッシュブロック[25
6]という。そして、ステップS39で、Flashデ
ィスクドライバ部6に対して、ブロック[256]のリ
ード要求を発行する。なお、この際、キャッシュブロッ
ク[256]のデータ領域に読み出したデータを書き込
むように指定する。
【0047】要求を受けたFlashディスクドライバ
部6は、ステップS40で、上述したリード処理によ
り、仮想ブロック[256]に対応する実ブロックから
指定されたデータ領域に1ブロック分のデータをコピー
する。そして、このリード処理が終了するとステップS
41に進む。
【0048】ステップS41で、バッファキャッシュ管
理部4は、ステップS33で受け取った引数(オフセッ
ト値、データ領域アドレス、書込みサイズ)にしたがっ
てメモリコピー処理を行なう。たとえば、キャッシュブ
ロック[256]内のデータ領域の先頭アドレスを0x
20000000だったとすると、本例の場合、オフセ
ット値0バイト、データ領域のアドレス0x40000
000、書込みサイズ128バイトなので、ソースアド
レス0x40000000、ディスティネーションアド
レス0x20000000、サイズ128バイトのメモ
リコピーを行なう。なお、例えばオフセット値が64バ
イトだった場合には、ディスティネーションアドレスが
0x20000000+0x40=0x2000004
0となる。このように、ユーザプログラム1のデータ領
域からキャッシュブロック[256]のデータ領域にデ
ータがコピーされることになる。最後にステップS42
で、バッファキャッシュ管理部4は、キャッシュブロッ
ク[256]のエントリの「ダーティ」に“Yes”に
相当する値をセットする。
【0049】一方、新しいキャッシュブロックを獲得で
きなかったため、図9のステップS50に進んだ場合、
バッファキャッシュ管理部4は、現在管理中のキャッシ
ュブロックのうち、もっとも昔にアクセスされたものを
LRUリストの先頭から取り出し、ダーティ状態か調べ
る。なお、LRUリストの先頭にリンクされているキャ
ッシュブロックは。もっとも昔に使用されたキャッシュ
ブロックであることを示す。ダーティ状態であった場合
には、ステップS51からステップS52に進み、ダー
ティ状態でなかった場合にはステップS54に進む。
【0050】ダーティ状態であった場合、当該キャッシ
ュブロックのデータをフラッシュする前に、そのデータ
をFlashROM7に書き込む必要がある。そのた
め、まず、ステップS52で、バッファキャッシュ管理
部4は、Flashディスクドライバ部6に対してライ
ト要求を発行する。要求を受けたFlashディスクド
ライバ部6は、ステップS53で、指定された仮想ブロ
ックに対して上述した、上書きによるライト処理を行な
う。ライト処理が終了すると、ステップS54で、バッ
ファキャッシュ管理部4は、LRUリストの先頭から取
り出したそのキャッシュブロックを新しいキャッシュブ
ロックとして獲得し、図8のステップS38に戻る。
【0051】なお、上述の例の場合、FlashROM
7へのライト処理が行なわれるのは、新しいキャッシュ
ブロックが獲得できなかった場合だけであるが、ダーテ
ィ状態のキャッシュブロックの内容をFlashROM
へライトしダーティでないようにする、いわゆるSYN
C処理を行なっても構わない。また、SYNC処理をフ
ァイルクローズのタイミングで行なっても、10秒に1
回というように周期的に行なっても構わない。これらS
YNC処理の実現方式は、本発明を制限するものではな
い。
【0052】以上のように、本実施形態のファイルシス
テムにおいては、ファイル管理部3が、ユーザプログラ
ム1からのファイルオープン、クローズ、リード、ライ
ト、作成、削除といった要求を受け付け、それに対応し
た処理を行う。ここで、データ格納領域(FlashR
OM7)へのリードアクセスが発生した場合、バッファ
キャッシュ管理部4、Flashディスクドライバ部6
により次のような制御が実行される。すなわち、対応す
るデータがバッファキャッシュ5の中に無ければ、Fl
ashROM7から直接ユーザプログラムのメモリ領域
にメモリコピーによりデータを転送し、バッファキャッ
シュ5に対応するデータが存在する場合はバッファキャ
ッシュからユーザプログラムのメモリ領域にそのデータ
を転送する。なお、FlashROMをブロック単位で
アクセスするディスクとして疑似的に扱うFlashデ
ィスクドライバ部6は、FlashROMからユーザプ
ログラムへの直接的なデータ転送が実行される際に、F
lashROM中の対応するメモリアドレスを獲得す
る。そして、バッファキャッシュ管理部4は、そのアド
レスをもとにメモリコピーを実行しデータの直接転送を
実現する。
【0053】また、ライトアクセスが発生した場合に
は、バッファキャッシュ管理部4及びFlashディス
クドライバ部6により、一般的なファイルシステムと同
様な、バッファキャッシュ5を介してのライト処理が行
なわれる。
【0054】以上のように動作する本実施形態によれ
ば、あるブロックに対して、ユーザプログラムがリード
処理しか行なっていない場合には、バッファキャッシュ
領域の割り当ては行われない。このため、無駄がなく実
行効率も良いファイルシステムを提供することができ
る。
【0055】また、前述の説明から明らかなように、こ
の実施形態によれば、特別なハードウェアを必要とせず
に上述した処理を実行することができる。
【0056】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複写機,ファクシミリ装置
など)に適用してもよい。
【0057】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0058】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0059】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0060】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0061】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0062】
【発明の効果】以上説明したように、本発明によれば、
アドレスによるアクセスが可能な記憶媒体に対してブロ
ック単位のアクセスを行うファイルシステムにおいて、
データの読み出し時には該記憶媒体から直接ユーザプロ
グラムのメモリ領域へデータ転送することが可能とな
る。このため、読み出し時にはブロック単位のデータを
一時的に格納するためのバッファ領域を確保する必要が
なくなり、メモリの利用効率が向上する。
【0063】
【図面の簡単な説明】
【図1】本実施形態によるファイルシステムの概念図で
ある。
【図2】上述の機能構成を実現するための概略のハード
構成を示すブロック図である。
【図3】本実施形態によるFlashROMの管理単位
を説明する図である。
【図4】本実施形態におけるマッピングテーブルの一例
を示す図である。
【図5】本実施形態におけるFlashROM管理のた
めのユニット管理テーブルの例を示す図である。
【図6】バッファキャッシュ管理部によるバッファキャ
ッシュの管理形態を説明する図である。
【図7】本実施形態におけるファイルのリード処理を説
明するフローチャートである。
【図8】本実施形態によるライト処理の手順を説明する
フローチャートである。
【図9】本実施形態によるライト処理の手順を説明する
フローチャートである。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 アドレス単位でのアクセスが可能な記憶
    媒体のためのアクセス制御方法であって、 ユーザプログラムより指示されるアクセス要求に基づい
    て前記記憶媒体にブロック単位のアクセスを行うための
    ブロックアクセス情報を生成する生成工程と、 前記アクセス要求がデータ読み出し要求であった場合、
    前記ブロックアクセス情報で指定されるアクセス先のブ
    ロックに基づいて、前記記憶媒体へのアクセスアドレス
    を算出する算出工程と、 前記算出工程で算出されたアクセスアドレスでもって前
    記記憶媒体をアクセスし、得られたデータを前記ユーザ
    プログラムの管理するメモリ領域へ転送する転送工程と
    を備えることを特徴とするアクセス制御方法。
  2. 【請求項2】 前記アクセス要求がデータの書き込み要
    求であった場合に、該要求によって指定される前記記憶
    媒体のブロックの内容を一時的にバッファに保持する保
    持工程と、 アクセス要求によってデータの読み出しが要求されたブ
    ロックが前記バッファに保持されているか否かを判定す
    る判定工程とを更に備え、 前記転送工程は、前記アクセス対象のブロックが前記バ
    ッファに保持されていると判定された場合は、該当デー
    タを前記バッファから前記ユーザプログラムの管理する
    メモリ領域へ転送することを特徴とする請求項1に記載
    のアクセス制御方法。
  3. 【請求項3】 前記転送工程は、前記算出工程で算出さ
    れたアドレスをソースアドレスとし、前記ユーザプログ
    ラムの管理するメモリ領域をディスティネーションアド
    レスとしてメモリコピーを実行することを特徴とする請
    求項1に記載のアクセス制御方法。
  4. 【請求項4】 前記記憶媒体はフラッシュメモリであ
    り、 前記ブロックは、前記フラッシュメモリの消去単位を所
    定数に分割したものであることを特徴とする請求項1乃
    至3のいずれかに記載のアクセス制御方法。
  5. 【請求項5】 前記生成工程で生成されるブロックアク
    セス情報が指定するブロックを前記フラッシュメモリ上
    の実際のブロックに対応づけるマッピングテーブルを更
    に備え、 前記算出工程は、前記ブロックアクセス情報で指定され
    るアクセス先のブロックと前記マッピングテーブルとか
    ら実際のアクセス先ブロックを得て、該実際のアクセス
    先ブロックを前記フラッシュメモリへのアクセスアドレ
    スに換算することを特徴とする請求項4に記載のアクセ
    ス制御方法。
  6. 【請求項6】 アドレス単位でのアクセスが可能な記憶
    媒体のためのアクセス制御装置であって、 ユーザプログラムより指示されるアクセス要求に基づい
    て前記記憶媒体にブロック単位のアクセスを行うための
    ブロックアクセス情報を生成する生成手段と、 前記アクセス要求がデータ読み出し要求であった場合、
    前記ブロックアクセス情報で指定されるアクセス先のブ
    ロックに基づいて、前記記憶媒体へのアクセスアドレス
    を算出する算出手段と、 前記算出手段で算出されたアクセスアドレスでもって前
    記記憶媒体をアクセスし、得られたデータを前記ユーザ
    プログラムの管理するメモリ領域へ転送する転送手段と
    を備えることを特徴とするアクセス制御装置。
  7. 【請求項7】 前記アクセス要求がデータの書き込み要
    求であった場合に、該要求によって指定される前記記憶
    媒体のブロックの内容を一時的に保持する保持手段と、 アクセス要求によってデータの読み出しが要求されたブ
    ロックが前記保持手段に保持されているか否かを判定す
    る判定手段とを更に備え、 前記転送手段は、前記アクセス対象のブロックが前記保
    持手段に保持されていると判定された場合は、該当デー
    タを該保持手段から前記ユーザプログラムの管理するメ
    モリ領域へ転送することを特徴とする請求項6に記載の
    アクセス制御装置。
  8. 【請求項8】 前記転送手段は、前記算出手段で算出さ
    れたアドレスをソースアドレスとし、前記ユーザプログ
    ラムの管理するメモリ領域をディスティネーションアド
    レスとしてメモリコピーを実行することを特徴とする請
    求項6に記載のアクセス制御装置。
  9. 【請求項9】 前記記憶媒体はフラッシュメモリであ
    り、 前記ブロックは、前記フラッシュメモリの消去単位を所
    定数に分割したものであることを特徴とする請求項6乃
    至8のいずれかに記載のアクセス制御装置。
  10. 【請求項10】 前記生成手段で生成されるブロックア
    クセス情報が指定するブロックを前記フラッシュメモリ
    上の実際のブロックに対応づけるマッピングテーブルを
    更に備え、 前記算出手段は、前記ブロックアクセス情報で指定され
    るアクセス先のブロックと前記マッピングテーブルとか
    ら実際のアクセス先ブロックを得て、該実際のアクセス
    先ブロックを前記フラッシュメモリへのアクセスアドレ
    スに換算することを特徴とする請求項9に記載のアクセ
    ス制御装置。
  11. 【請求項11】 請求項1乃至5のいずれかに記載のア
    クセス制御方法を実行するファイルシステム。
  12. 【請求項12】 請求項1乃至5のいずれかに記載のア
    クセス制御方法を実行する情報処理装置。
  13. 【請求項13】 アドレス単位でのアクセスが可能な記
    憶媒体へのアクセスをコンピュータに実行させるための
    制御プログラムを格納するコンピュータ可読メモリであ
    って、 ユーザプログラムより指示されるアクセス要求に基づい
    て前記記憶媒体にブロック単位のアクセスを行うための
    ブロックアクセス情報を生成する生成工程のコードと、 前記アクセス要求がデータ読み出し要求であった場合、
    前記ブロックアクセス情報で指定されるアクセス先のブ
    ロックに基づいて、前記記憶媒体へのアクセスアドレス
    を算出する算出工程のコードと、 前記算出工程で算出されたアクセスアドレスでもって前
    記記憶媒体をアクセスし、得られたデータを前記ユーザ
    プログラムの管理するメモリ領域へ転送する転送工程の
    コードとを備えることを特徴とするコンピュータ可読メ
    モリ。
JP21947998A 1998-08-03 1998-08-03 アクセス制御方法及び装置及びファイルシステム及び情報処理装置 Withdrawn JP2000057039A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21947998A JP2000057039A (ja) 1998-08-03 1998-08-03 アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US09/363,822 US6526472B2 (en) 1998-08-03 1999-07-30 Access control method, access control apparatus and computer readable memory storing access control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21947998A JP2000057039A (ja) 1998-08-03 1998-08-03 アクセス制御方法及び装置及びファイルシステム及び情報処理装置

Publications (1)

Publication Number Publication Date
JP2000057039A true JP2000057039A (ja) 2000-02-25

Family

ID=16736090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21947998A Withdrawn JP2000057039A (ja) 1998-08-03 1998-08-03 アクセス制御方法及び装置及びファイルシステム及び情報処理装置

Country Status (2)

Country Link
US (1) US6526472B2 (ja)
JP (1) JP2000057039A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1410400A4 (en) * 2000-11-30 2006-04-26 Bitmicro Networks Inc PARALLEL DELETION OPERATIONS IN STORAGE SYSTEMS
JP2007193883A (ja) * 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
CN100341000C (zh) * 2004-07-28 2007-10-03 群联电子股份有限公司 利用闪存作为缓冲区的方法
JP2008140059A (ja) * 2006-11-30 2008-06-19 Canon Inc データ入出力装置
US7430632B2 (en) 2004-03-11 2008-09-30 Samsung Electronics Co., Ltd. Data management apparatus and method for determining a response time in flash memory devices
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
JP2015103012A (ja) * 2013-11-25 2015-06-04 株式会社東芝 ファイルアクセスシステム
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720928B2 (en) * 2000-06-02 2010-05-18 Hewlett-Packard Development Company, L.P. Centralized fine-grained enhancements for distributed table driven I/O mapping
EP1220229B1 (en) * 2000-12-29 2009-03-18 STMicroelectronics S.r.l. An electrically modifiable, non-volatile, semiconductor memory which can keep a datum stored until an operation to modify the datum is completed
JP2002207620A (ja) * 2001-01-10 2002-07-26 Toshiba Corp ファイルシステム及び該システムにおけるデータキャッシング方法
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US20030046482A1 (en) * 2001-08-28 2003-03-06 International Business Machines Corporation Data management in flash memory
US7356641B2 (en) 2001-08-28 2008-04-08 International Business Machines Corporation Data management in flash memory
JP4175881B2 (ja) * 2002-12-25 2008-11-05 スパンション エルエルシー 不揮発性メモリの記憶方法及び記憶装置
US20040128414A1 (en) * 2002-12-30 2004-07-01 Rudelic John C. Using system memory as a write buffer for a non-volatile memory
DE10317147A1 (de) * 2003-04-14 2004-10-28 Nec Electronics (Europe) Gmbh Sicheres Speichersystem mit Flash-Speichern und Cache-Speicher
WO2005050453A1 (ja) 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. ファイル記録装置
US7428557B2 (en) * 2004-03-22 2008-09-23 Microsoft Corporation Efficient data transfer to/from storage medium of computing device
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
US7568075B2 (en) * 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
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
US9063181B2 (en) * 2006-12-29 2015-06-23 Electro Industries/Gauge Tech Memory management for an intelligent electronic device
US7657701B2 (en) * 2007-01-03 2010-02-02 The General Electric Company System and method of flash memory wear leveling using distributed write cycles
US20080229154A1 (en) * 2007-03-13 2008-09-18 Esteves James I Self-referencing redundancy scheme for a content addressable memory
US7814276B2 (en) * 2007-11-20 2010-10-12 Solid State System Co., Ltd. Data cache architecture and cache algorithm used therein
US9594679B2 (en) * 2008-05-01 2017-03-14 Sandisk Il Ltd. Flash cache flushing method and system
TWI428747B (zh) * 2008-12-12 2014-03-01 Silicon Motion Inc 非揮發性記憶體資料管理方法及使用該方法之非揮發性儲存裝置
US8806144B2 (en) 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US7898859B2 (en) * 2009-06-15 2011-03-01 Micron Technology, Inc. Use of emerging non-volatile memory elements with flash memory
USD712289S1 (en) 2009-12-01 2014-09-02 Electro Industries/Gauge Tech Electronic meter
US10049040B2 (en) 2011-01-21 2018-08-14 Seagate Technology Llc Just in time garbage collection
US8874872B2 (en) 2011-01-21 2014-10-28 Seagate Technology Llc Garbage collection management in memories
KR101954995B1 (ko) * 2011-04-27 2019-05-31 시게이트 테크놀로지 엘엘씨 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
TWI587136B (zh) * 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
US8825944B2 (en) 2011-05-23 2014-09-02 International Business Machines Corporation Populating strides of tracks to demote from a first cache to a second cache
US8400335B2 (en) 2011-07-21 2013-03-19 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8669889B2 (en) 2011-07-21 2014-03-11 International Business Machines Corporation Using variable length code tables to compress an input data stream to a compressed output data stream
US8692696B2 (en) 2012-01-03 2014-04-08 International Business Machines Corporation Generating a code alphabet of symbols to generate codewords for words used with a program
US9021201B2 (en) 2012-01-17 2015-04-28 International Business Machines Corporation Demoting partial tracks from a first cache to a second cache
US8966178B2 (en) * 2012-01-17 2015-02-24 International Business Machines Corporation Populating a first stride of tracks from a first cache to write to a second stride in a second cache
US8825957B2 (en) * 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using an occupancy of valid tracks in strides in the second cache to consolidate strides in the second cache
US8825953B2 (en) * 2012-01-17 2014-09-02 International Business Machines Corporation Demoting tracks from a first cache to a second cache by using a stride number ordering of strides in the second cache to consolidate strides in the second cache
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
US9836243B1 (en) * 2016-03-31 2017-12-05 EMC IP Holding Company LLC Cache management techniques
USD939988S1 (en) 2019-09-26 2022-01-04 Electro Industries/Gauge Tech Electronic power meter

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2938732B2 (ja) * 1993-11-10 1999-08-25 松下電送システム株式会社 メモリ管理装置とこれを用いたファクシミリ装置
US5603001A (en) * 1994-05-09 1997-02-11 Kabushiki Kaisha Toshiba Semiconductor disk system having a plurality of flash memories
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US6092170A (en) * 1996-11-29 2000-07-18 Mitsubishi Denki Kabushiki Kaisha Data transfer apparatus between devices

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1410400A4 (en) * 2000-11-30 2006-04-26 Bitmicro Networks Inc PARALLEL DELETION OPERATIONS IN STORAGE SYSTEMS
US7430632B2 (en) 2004-03-11 2008-09-30 Samsung Electronics Co., Ltd. Data management apparatus and method for determining a response time in flash memory devices
CN100341000C (zh) * 2004-07-28 2007-10-03 群联电子股份有限公司 利用闪存作为缓冲区的方法
JP2007193883A (ja) * 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法
JP2008140059A (ja) * 2006-11-30 2008-06-19 Canon Inc データ入出力装置
US11907538B2 (en) 2008-02-28 2024-02-20 Memory Technologies Llc Extended utilization area for a memory device
US11550476B2 (en) 2008-02-28 2023-01-10 Memory Technologies Llc Extended utilization area for a memory device
US11829601B2 (en) 2008-02-28 2023-11-28 Memory Technologies Llc Extended utilization area for a memory device
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US11182079B2 (en) 2008-02-28 2021-11-23 Memory Technologies Llc Extended utilization area for a memory device
US11494080B2 (en) 2008-02-28 2022-11-08 Memory Technologies Llc Extended utilization area for a memory device
US9983800B2 (en) 2009-06-04 2018-05-29 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11775173B2 (en) 2009-06-04 2023-10-03 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11733869B2 (en) 2009-06-04 2023-08-22 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
JP2015511350A (ja) * 2012-01-26 2015-04-16 メモリー テクノロジーズ リミティド ライアビリティ カンパニー 不揮発性大容量メモリ・システムによるキャッシュ移動を提供するための装置および方法
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11797180B2 (en) 2012-01-26 2023-10-24 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module
US11782647B2 (en) 2012-04-20 2023-10-10 Memory Technologies Llc Managing operational state data in memory module
US10042586B2 (en) 2012-04-20 2018-08-07 Memory Technologies Llc Managing operational state data in memory module
JP2015103012A (ja) * 2013-11-25 2015-06-04 株式会社東芝 ファイルアクセスシステム

Also Published As

Publication number Publication date
US6526472B2 (en) 2003-02-25
US20020166022A1 (en) 2002-11-07

Similar Documents

Publication Publication Date Title
JP2000057039A (ja) アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US6938144B2 (en) Address conversion unit for memory device
US6604168B2 (en) Flash eeprom management using ratio of used to unused sectors
US7010555B2 (en) System and method for compacting a computer system heap
US6886085B1 (en) Method and apparatus for efficient virtual memory management
TWI394164B (zh) 在快閃記憶體系統中可中斷的快取清空
JP5147280B2 (ja) 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法
US20110191095A1 (en) Method and system for efficient emulation of multiprocessor address translation on a multiprocessor
US20080235477A1 (en) Coherent data mover
JP2006079543A (ja) メモリ管理装置
US6950837B2 (en) Method for using non-temporal streaming to improve garbage collection algorithm
JPH0973412A (ja) データ転送方法及びメモリ管理装置
US5920895A (en) Mapped file input/output with delayed zeroing
US6510495B1 (en) Data write method into nonvolatile memory, information processing device and recording medium
WO2012016783A1 (en) A method of managing computer memory, corresponding computer program product; and data storage device therefor
KR20100016174A (ko) 데이터-스머글링을 위한 저장 장치와 방법
JP3727982B2 (ja) フラッシュrom管理方法及び装置
JP2000172562A (ja) 情報処理装置
JP3903678B2 (ja) 計算機システムのダンプ処理方法
US7937552B2 (en) Cache line reservations
JP2004220575A (ja) カード型メモリのインターフェース回路、その回路を搭載したasic、及びそのasicを搭載した画像形成装置
US6918023B2 (en) Method, system, and computer program product for invalidating pretranslations for dynamic memory removal
JP4506292B2 (ja) キャッシュ制御方法およびデータ処理システム並びにその処理プログラム
JP3703181B2 (ja) フラッシュrom管理方法及び装置
JPH07271645A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051004