JP2008242503A - メモリ管理装置及び方法、並びにプログラム - Google Patents

メモリ管理装置及び方法、並びにプログラム Download PDF

Info

Publication number
JP2008242503A
JP2008242503A JP2007077553A JP2007077553A JP2008242503A JP 2008242503 A JP2008242503 A JP 2008242503A JP 2007077553 A JP2007077553 A JP 2007077553A JP 2007077553 A JP2007077553 A JP 2007077553A JP 2008242503 A JP2008242503 A JP 2008242503A
Authority
JP
Japan
Prior art keywords
page
data
memory management
unit
management device
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
Application number
JP2007077553A
Other languages
English (en)
Other versions
JP2008242503A5 (ja
JP5224706B2 (ja
Inventor
Yojiro Tagawa
陽次郎 田川
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 JP2007077553A priority Critical patent/JP5224706B2/ja
Priority to US12/047,560 priority patent/US8335893B2/en
Priority to KR1020080026128A priority patent/KR100975825B1/ko
Publication of JP2008242503A publication Critical patent/JP2008242503A/ja
Publication of JP2008242503A5 publication Critical patent/JP2008242503A5/ja
Application granted granted Critical
Publication of JP5224706B2 publication Critical patent/JP5224706B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

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

Abstract

【課題】アクセス速度の異なる記憶手段を有するストレージデバイスにアクセスする際に、記憶領域が限定されることなく、データをアクセス速度が高速な記憶手段に割り振ることが可能なメモリ管理装置を提供する。
【解決手段】ストレージデバイス100は、コントローラ103、BLCフラッシュメモリ104、BLCフラッシュメモリ104よりもアクセス速度が低速なMLCフラッシュメモリ105を備える。また、データを書き込む際に指定される論理ページとBLCフラッシュメモリ104,MLCフラッシュメモリ105上の物理ページとが対応付けられたページ割り当て情報を格納する。そして、アクセス速度の異なるフラッシュメモリ104,105のいずれか一方にデータを書き込む場合、指定された論理ページに対応するページ割り当て情報に基づいて、高速なBLCフラッシュメモリ104にデータを書き込む。
【選択図】図1

Description

本発明は、アクセス速度の異なる記憶手段を有するストレージデバイスをブロックデバイスとして使用し、任意のデータをアクセス速度が高速な記憶手段に割り振ることができるメモリ管理装置及び方法、並びにプログラムに関する。
技術に関する。
従来、デジタルカメラ等のストレージメディアとしてフラッシュメモリが広く利用されている。フラッシュメモリには、1個のメモリセルに2つの値をとる2値型フラッシュメモリと、3つ以上の値をとる多値型フラッシュメモリとがある。多値型フラッシュメモリは、2値型フラッシュメモリと比べて単位セルあたりの記憶容量が増えるために、低コストで大容量化を実現できるという利点がある。一方、多値型フラッシュメモリは、多値化のための制御が複雑になるためにアクセス速度が低速になるという欠点がある。
近年、この多値型フラッシュメモリと2値型フラッシュメモリを組み合わせたハイブリッドタイプのフラッシュメモリが提案されている。ハイブリッドタイプのフラッシュメモリにより、大容量化とアクセス速度の高速化を低コストで実現することができる。
また、2値型及び多値型のフラッシュメモリを混載し、管理データを2値型フラッシュメモリに、ユーザデータを多値型フラッシュメモリにそれぞれ格納する記憶装置が提案されている(例えば、特許文献1参照)。さらに、2値型及び多値型の複数タイプのフラッシュメモリを使用し、使用目的にしたがって各タイプのメモリ領域を区別してアクセスできるデータ記憶システムが提案されている(例えば、特許文献2参照)。
デジタルカメラのストレージメディアとしてフラッシュメモリを使用する場合、ホストシステムはFATファイルシステムを用いて画像ファイルをフラッシュメモリに格納する。FATファイルシステムでは、フラッシュメモリがファイルアロケーションテーブル、ディレクトリエントリ領域、及びデータ領域に分けて使用される。このうち、ファイルアロケーションテーブルとディレクトリエントリ領域は、あらゆるファイルアクセスにおいてアクセスされる領域である。特に、大容量のストレージメディアでは、これら2つの領域へのアクセス頻度が多くなる傾向にあり、これらの領域へのアクセス速度がファイルアクセス速度に大きく影響する。
一方、特定のファイルを高速領域に配置したいという要求がある。例えば、デジタルカメラなどで大量のファイルを管理する場合、どのディレクトリに何番の画像ファイルが格納されているかを管理するためのカタログファイルと呼ばれる管理用のファイルが作成される(例えば、特許文献3参照)。この管理用のファイルは、撮影画像の新規生成及び画像の閲覧のために頻繁に参照又は記録される。さらには、この管理用のファイルには、例えばデジタルカメラの電源起動時に次に生成するファイルの番号を決定するための情報等も格納されているために、電源起動後に最初の撮影が可能かどうかを判別するためには必ずアクセスしなければならない。したがって、撮影及び再生動作の高速化、並びに起動してから撮影可能になるまでの時間を短縮するためには、このような管理用ファイルのデータ領域なども高速領域に配置されることが好ましい。
特開2001−306393号公報 特開平11−31102号公報 特開平9−44394号公報
しかしながら、上記特許文献2記載のデータ記憶システムでは、ホストシステムが、当該ホストシステムから見たアドレスによって高速領域と低速領域を区別してアクセスするというものである。このため、ホストシステムは、書き込むデータを所望のアクセス速度で書き込む場合、データを配置するアドレスが限定されるという問題がある。
また、FATファイルシステムを用いる場合、高速領域に配置することが好ましいと思われるファイルアロケーションテーブルやディレクトリエントリ領域は、メディアの容量、フォーマット、ファイルの状況に応じて任意のアドレスに配置される。このため、上述したデータ記憶システムのようにアドレスによって高速領域と低速領域の配置が固定される場合は、FATファイルシステムで使用する任意の領域を高速領域に配置することができないという問題がある。
一方、ファイルシステムのクライアントが任意のファイルを高速領域への配置するためには、FATファイルシステムが専用のコマンドを用意する必要がある。また、一般的に標準的なI/Fを使用することが前提であるファイルシステムのI/Fとしては好ましくないという問題がある。
また、FATファイルシステムのI/Fに任意のファイルを高速領域に配置するコマンドを用意したとしても、ファイルシステムのクライアントが常に高速アクセスしたいファイルを認識できるとは限らない。そのため、高速アクセスしたいファイルを高速領域に配置することが難しいという問題がある。
本発明の目的は、アクセス速度の異なる記憶手段を有するストレージデバイスにアクセスする際に、記憶領域が限定されることなく、データをアクセス速度が高速な記憶手段に割り振ることが可能なメモリ管理装置及び方法並びにプログラムを提供することにある。
上記目的を達成するために、請求項1記載のメモリ管理装置は、所定のアクセス速度でのアクセスが可能な第1の記憶手段と、前記所定のアクセス速度より低速なアクセス速度でのアクセスが可能な第2の記憶手段と、前記第1及び前記第2の記憶手段を複数の物理ページで構成されたユニットの単位で管理し、当該物理ページにデータを書き込む制御手段とを備えるメモリ管理装置において、前記データを書き込む際に指定される論理ページと前記物理ページとが対応付けられたページ割り当て情報を格納する格納手段を備え、前記制御手段は、前記第1又は前記第2の記憶手段のいずれか一方にデータを書き込む場合、指定された論理ページに対応するページ割り当て情報に基づいて、前記第1の記憶手段に前記データを書き込むことを特徴とする。
上記目的を達成するために、請求項10記載のメモリ管理方法は、所定のアクセス速度でのアクセスが可能な第1の記憶手段と、前記所定のアクセス速度より低速なアクセス速度でのアクセスが可能な第2の記憶手段を複数の物理ページで構成されたユニットの単位で管理する管理工程と、前記データを書き込む際に指定される論理ページと前記物理ページとが対応付けられたページ割り当て情報を前記第1及び前記第2の記憶手段のいずれか一方に格納する格納工程と、前記第1又は前記第2の記憶手段のいずれか一方にデータを書き込む場合、指定された論理ページに対応するページ割り当て情報に基づいて、前記第1の記憶手段に前記データを書き込む書込工程とを備えることを特徴とする。
上記目的を達成するために、請求項12記載のメモリ管理システムは、請求項1乃至9のいずれか1項に記載のメモリ管理装置に接続され、所定のファイルシステムが動作するホストシステムを備えるメモリ管理システムにおいて、前記ホストシステムは、前記所定のファイルシステムによるフォーマットの時に、当該所定のファイルシステムに用いられる管理領域を第1の記憶手段に指定することを特徴とする。
上記目的を達成するために、請求項13記載のメモリ管理システムは、請求項1乃至9のいずれか1項に記載のメモリ管理装置に接続され、所定のファイルシステムが動作するホストシステムを備えるメモリ管理システムにおいて、前記所定のファイルシステムによるファイル及びディレクトリの生成の際時に、当該所定のファイルシステムに用いられる管理領域を第1の記憶手段に指定することを特徴とする。
本発明によれば、アクセス速度の異なる記憶手段を有するストレージデバイスにデータを書き込む場合、データを書き込むアドレスを限定することなく、データを高速アクセスが可能な記憶領域に割り振ることが可能となる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本発明の第1の実施形態に係るメモリ管理装置を含むメモリ管理システムの構成例を示すブロック図である。
図1において、メモリ管理システムは、例えば、ホストシステム101と、ストレージデバイス100とで構成される。ホストシステム101は、不図示のファイルシステム、ブロックデバイスドライバなどが実装されている。
ホストシステム101は、例えば、ストレージデバイス100を内蔵又は装着可能なデジタルカメラ等の機器側のCPU(Central Processing Unit)である。ストレージデバイス100は、ホストシステム101に対してブロックデバイスとしての機能を提供する。ブロックデバイスは、複数バイトからなるデータブロックを1つの単位としてデータの入出力を行なうストレージメディアであり、例えばフラッシュメモリ等で構成される。
ストレージデバイス100は、ホストインターフェース(I/F)部102、コントローラ103、BLC(Binary Level Cell:2値型)フラッシュメモリ104、MLC(Multi-Level Cell:多値型)フラッシュメモリ105、RAM106を備える。
ホストI/F102は、ホストシステム101、コントローラ103、及びRAM106に接続されている。ホストI/F102は、ストレージデバイス100とホストシステム101との間のバスの制御、RAM106上に配置されるバッファへのデータの読み書き等の制御を行う。
コントローラ103は、BLCフラッシュメモリ104、MLCフラッシュメモリ105、及びRAM106に接続される。コントローラ103は、ストレージデバイス100内のフラッシュメモリ104,105の制御、後述する論理ページ割り当てテーブルの管理などを行う。
MLCフラッシュメモリ105は、BLCフラッシュメモリ104よりもアクセス速度が低速である。RAM106は、ホストシステム101とのデータの受け渡しのためのバッファとして、また論理ページ割り当てテーブル等を保持するために用いられる。
次に、BLCフラッシュメモリ104及びMLCフラッシュメモリ105の内部のメモリマップを図2(a)及び図2(b)を参照して説明する。
図2は、図1の各フラッシュメモリ内部のメモリマップを示す図であり、(a)はBLCフラッシュメモリ104、(b)はMLCフラッシュメモリ105である。
BLCフラッシュメモリ104及びMLCフラッシュメモリ105は、それぞれ複数の消去ブロック(例えば、ページ#0〜ページ#M−1)で構成されるユニットの単位で管理される。BLCフラッシュメモリ104は、ユニット#0からユニット#X−1までのX個のユニットがある。MLCフラッシュメモリ105は、ユニット#Xからユニット#X+YまでのY個のユニットがある。各ユニットの内部は、ユニット構成150に示すように、ページ#0からページ#M−1までのM個の物理ページ(物理ブロック)に分割されて管理されている。物理ページは、ブロックデバイスとして使用される連続のバイト列データである。通常、512バイトの整数倍のバイト数が1ページとして管理される。本実施の形態におけるストレージデバイス100内には((X+Y)×M)個の物理ページが存在することになる。
次に、上記各ユニットの属性情報を管理するユニット管理テーブルについて説明する。
図3は、ユニット管理テーブルの詳細を示す図である。
ユニット管理テーブル200は、BLCフラッシュメモリ104及びMLCフラッシュメモリ105にあるすべてのユニットを管理するための管理情報であり、BLCフラッシュメモリ104上の所定のユニットに保持されている。
ユニット管理テーブル200は、不良ユニットビットマップ221、消去済みユニットビットマップ222を備える。不良ユニットビットマップ221は、BLCフラッシュメモリ104及びMLCフラッシュメモリ105にあるすべてのユニット(ユニット#0〜ユニット#X+YのX+Y個のユニット)のうちの不良ユニットの情報をビット値として保持する。消去済みユニットビットマップ222は、BLCフラッシュメモリ104及びMLCフラッシュメモリ105にあるすべてのユニットのうちの消去済みユニットの情報をビット値として保持する。
また、ユニット管理テーブル200は、BLCフラッシュメモリ104及びMLCフラッシュメモリ105にある全てのユニットに対応するユニット管理情報(ユニット#0管理情報223〜ユニット#X+Y管理情報226)を保持する。
ユニット管理情報240は、ユニット#0管理情報223〜ユニット#X+Y管理情報226のうちの1つである。ユニット管理情報240は、有効ページ数241、空きページ数242、消去待ちページ数243、次の空きページエントリ244、物理ページ割り当てテーブル245、及びユニット消去回数246で構成される。
有効ページ数241は、ユニット内の有効ページ数を表している。空きページ数242は、有効ページ数241の内、未だ割り当てられていない書き込み可能な空きページの数を表している。消去待ちページ数243は、物理ページに一旦データの書き込みが行われ、その後、その物理ページが上書きされたか、別の空きページにデータが移動したために、消去待ち状態になっている物理ページの数を示している。消去待ちページが発生する処理については後述する。次の空きページエントリ244は、当該ユニット内で次に割り当てられる空きページのエントリ番号(アドレス)を示している。
物理ページ割り当てテーブル245は、当該ユニット上に配置される物理ページがそれぞれ何番の論理ページ(論理ブロック)に割り当てられているかを示すテーブルである。本実施の形態では、ユニットがM個のページで構成されるので、この物理ページ割り当てテーブル245はM個のエントリ(アドレス領域)を有するテーブルとなる。この物理ページ割り当てテーブル245のエントリが0xFFFFFFFFである場合は当該物理ページが空きページであることを示す。また、この物理ページ割り当てテーブル245のエントリ番号が0xFFFFFFF0である場合は当該物理ページが消去待ちページであることを示す。この物理ページ割り当てテーブル245のエントリが0x00000000から0xFFFFFF00までは、当該物理ページが割り当てられている論理ページ番号(論理アドレス)を示す。
ユニット消去回数246は、当該ユニットの消去回数を表している。ユニット消去回数は、各ユニットの消去回数が均等になるように、論理ページとユニットの割り当てを管理するために用いられる。
次に、論理ページ割り当てテーブルについて説明する。
図4は、論理ページ割り当てテーブルの詳細を示す図である。
論理ページ割り当てテーブル300は、ストレージデバイス100がホストシステム101に対して提供するストレージサービスにおいて用いられる論理ページの情報を格納するためのテーブルである。この論理ページ割り当てテーブル300は、BLCフラッシュメモリ104上の所定のユニットに保持される。ホストシステム101は、ストレージデバイス100にアクセスする際に、論理ページを指定することによって、BLCフラッシュメモリ104及び/又はMLCフラッシュメモリ105上の所定の物理ページへのアクセスを行う。
論理ページ割り当てテーブル300は、ページ#0割り当て情報エントリ301〜ページ#N+1割り当て情報エントリ306、・・・で構成され、それぞれが当該ページの割り当て情報エントリである。ページ割り当て情報エントリ310は、ページ割り当て情報エントリのビットアサインを示している。
ページ割り当て情報エントリ310内のステータス311は、論理ページの物理ページへの割り当て状況を示すビット値であり、“1”で割り当て済み状態、“0”で未割り当て状態を示す。未割り当て状態の論理ページは、初期化後、一度もホストシステム101から書き込みが行われていない状態の論理ページを示すものである。ホストシステム101が未割り当て状態の論理ページに対してデータ読み出しを行った場合は、コントローラ103はRAM106上の読み込みページバッファに0xFFの値でフィルしてホストシステム101に対してデータ渡す。
速度指定312は、ユーザが指定することが可能な論理ページの指定速度を示すビット値であり、“0”で速度指定無し、“1”で高速指定を示すものである。ユニット速度313は、当該論理ページが現在割り当てられている物理ページが存在するユニットの速度を示すビット値であり、“0”で低速ユニット、“1”で高速ユニット、を示すものである。本実施の形態では、低速ユニットはMLCフラッシュメモリ105上のユニットを意味し、高速ユニットはBLCフラッシュメモリ104上のユニットを意味する。これにより、任意の物理ページを高速又は低速に割り当てるように指定することができる。速度指定312は、予めユーザが指定することができる。
ユニット番号314は、当該論理ページが現在割り当てられている(対応付けられている)物理ページが存在するユニット番号である。ページオフセット315は、当該論理ページが現在割り当てられている物理ページのユニット上のページオフセット番号を示す。アクセス回数316は、当該論理ページへのアクセス回数を示す値が格納されている。平均アクセス間隔317には、当該ページへのアクセス間隔の平均時間が格納されている。アクセス回数316及び平均アクセス間隔317は、後述するページアクセス頻度の判定に用いられる。
コントローラ103は、ホストシステム101から指定された論理ページ番号(論理アドレス)を論理ページ割り当てテーブルの内容に基づいてアドレス変換する。そして、この変換アドレスに対応する物理ページ番号(物理アドレス)を使用して、BLCフラッシュメモリ104、MLCフラッシュメモリ105に対するデータの読み出し、書込み及び消去を行う。
次に、ホストシステム101とストレージデバイス100との間の通信で用いられるコマンドについて説明する。
図5は、ストレージデバイス100がサポートするコマンドの一覧を示す図である。
ストレージデバイス100は、ホストシステム101からのコマンドとして、「Initialize」、「Page read」、「Page write」、「Set page fast」の4つのコマンドをサポートしている。それぞれのコマンドは0から3個のパラメータを伴って使用される。
「Initialize」コマンドは、コマンド番号0x00で指定されるコマンドである。この「Initialize」コマンドは、図示のようにパラメータ無しで用いられ、ストレージデバイスの全領域を初期状態に設定するために用いられる。
「Page read」コマンドは、コマンド番号0x10で指定されるコマンドである。この「Page read」コマンドは、指定した論理ページのデータを読み出すために用いられる。「Page read」コマンドは、第一パラメータに読み出し開始位置を指定する開始論理ページ番号が、第二パラメータに読み出しページ数がそれぞれ指定される。ホストシステム101は、「Page read」コマンド及びパラメータを送信後、ストレージデバイス100から所定の読み出しデータを受信する。
「Page write」コマンドは、コマンド番号0x20で指定されるコマンドである。この「Page write」コマンドは、指定した論理ページのデータを書き込むために用いられる。「Page write」コマンドは、第一パラメータに書き込み開始位置を指定する開始論理ページ番号が、第二パラメータに書き込みページ数がそれぞれ指定される。ホストシステム101は、「Page write」コマンド及びパラメータを送信後、ストレージデバイス100に対して所定の書き込みデータを送信する。
「Page rate」コマンドは、コマンド番号0x40で指定されるコマンドである。この「Page rate」コマンドは、指定した論理ページのアクセス速度を指定するために用いられる。「Page rate」コマンドは、第一パラメータにアクセス速度を指定する開始論理ページ番号が、第二パラメータにアクセス速度を指定するページ数が、第三パラメータにアクセス速度がそれぞれ指定される。第三パラメータのアクセス速度は“1”が高速、“0”が通常を意味する。
次に、ストレージデバイス100の初期化処理について説明する。
ストレージデバイス100は使用される際に、まず初期化処理を行う。通常、初期化処理はストレージデバイスを製造する工場で出荷前に行われるものである。
ホストシステム101は、図5に示した「Initialize」コマンドをストレージデバイス100に対して送信する。ストレージデバイス100において、コントローラ103は、ホストI/F102を介して「Initialize」コマンドを受信すると初期化処理を開始する。
図6は、コントローラ103により実行されるストレージデバイス100の初期化処理の詳細を示すフローチャートである。
コントローラ103は、BLCフラッシュメモリ104及びMLCフラッシュメモリ105に配置される全ブロック(ユニット)の消去を行う(ステップS401)。次に、コントローラ103は、ユニット管理テーブル200の初期化処理を行う(ステップS402)。そして、コントローラ103は、論理ページ割り当てテーブル300の初期化処理を行い(ステップS403)、本処理を終了する。
図6のステップS402におけるユニット管理テーブル200の初期化処理の詳細について図7を用いて説明する。
図7は、図6のステップS402におけるユニット管理テーブル200の初期化処理の詳細を示すフローチャートである。
まず、コントローラ103は、不良ユニットビットマップ221の初期化を行う(ステップS411)。次に、消去済みユニットビットマップ222をすべて“1”にセットしてすべてのユニットを消去済み状態にする(ステップS412)。
次に、すべてのユニットのユニット管理情報240の初期化を、ステップS414からステップS420までのステップを繰り返すことにより行う。まず、コントローラ103は、有効ページ数241の領域にユニットの総ページ数をセットし(ステップS414)、空きページ数242の領域にユニットの総ページ数をセットする(ステップS415)。
次に、コントローラ103は、消去待ちページ数243の領域に“0”をセットし(ステップS416)、次の空きページエントリ244の領域に“0”をセットする(ステップS417)。次に、コントローラ103は、物理ページ割り当てテーブル245の全エントリに0xFFFFFFFFをセットし(ステップS418)、消去回数246の領域に1をセットする(ステップS419)。工場出荷時の始めての消去のであれば1をセットし、それ以後の初期化処理であれば既存の値に1加算した値を格納する。そして、ユニット#0からユニット#X+Yまでのすべてのユニットに対して処理が終了したか否かを判別し(ステップS420)、すべてのユニットに対して処理が終了したときはリターンする。
次に、図6のステップS403における論理ページ割り当てテーブルの初期化処理の詳細について図8を用いて説明する。
図8は、図6のステップS403における論理ページ割り当てテーブル300の初期化処理の詳細を示すフローチャートである。
すべての論理ページのページ割り当て情報エントリ310(例えば、ページ#0割り当て情報エントリ301〜ページ#2割り当て情報エントリ303)の初期化を、ステップS432からステップS439までのステップを繰り返すことにより行う。
まず、コントローラ103は、ステータス311のビット値をゼロ(未割り当て状態)にセットする(ステップS432)。次に、速度指定312のビット値を“0”(指定無し)にセットする(ステップS433)。次に、ユニット速度313のビット値を“0”(低速ユニット)にセットする(ステップS434)。次に、ユニット番号314に0xFFFFをセットする(ステップS435)。次に、ページオフセット315に0xFFFFをセットする(ステップS436)。次に、アクセス回数316の値を“0”にセットする(ステップS437)。次に、平均アクセス間隔317の値を“0”sec(0xFFFF)にセットする(ステップS438)。そして、ページ0からのすべてのページに対する処理が終了したか否かを判別し(ステップS439)、すべての論理ページのページ割り当て情報エントリ310に対して処理が行われたときはリターンする。
次に、ホストシステム101がストレージデバイス100からデータの読み出しを行う場合の処理の流れについて説明する。
ホストシステム101は、図5に示した「Page read」コマンドをストレージデバイス100に対して送信する。「Page read」コマンドは、パラメータ「開始論理ページ番号」及び「ページ数」を伴って転送される。
ストレージデバイス100において、コントローラ103は、ホストI/F102を介して「Page read」コマンド、「開始論理ページ番号」及び「ページ数」を受信するとデータ読み出し処理を開始する。コントローラ103は、「Page read」コマンドと一緒に受信した「開始論理ページ番号」及び「ページ数」のパラメータを基に、データを読み出す論理ページの指定を行う。
図9は、コントローラ103により実行されるデータ読み出し処理の詳細を示すフローチャートである。
「Page read」コマンドの「開始論理ページ番号」から「ページ数」で指定された論理ページすべてに対して、ステップS602からステップS607までの処理が実行される。
まず、コントローラ103は、論理ページ割り当てテーブル300から当該ページのページ割り当て情報エントリ310を取得する(ステップS602)。次に、取得したページ割り当て情報エントリ310のステータス311のビット値を判定する(ステップS603)。ステータス311のビット値が“0”であれば当該論理ページは未割り当て状態と判断し、ステップS610へ移行する。一方、ステータス311のビット値が“1”であれば当該論理ページは割り当て済み状態と判断し、ステップS604へ移行する。
ステップS610では、RAM106上に存在する当該論理ページの読み出しのためのページバッファ領域を0xFFでフィルする。すなわち、割り当てられていない論理ページに対しては、データが書き込まれた実績がないので、フラッシュメモリの消去状態である0xFFの値をすべてのバイトの値として返すものである。
ステップS604では、ページ割り当て情報エントリ310からユニット番号314、ページオフセット315の値をそれぞれ取得する(ステップS604)。次に、取得したユニット番号、ページオフセットの位置に相当する物理ページの場所をBLCフラッシュメモリ104若しくはMLCフラッシュメモリ105から特定して、特定した物理ページからページデータを読み出す。読み出されたページデータは当該論理ページの読み出しのための読み出しページバッファに格納される(ステップS605)。読み出しページバッファはRAM106上に確保されている。
次に、論理ページ割り当てテーブル300上の当該ページデータに対応するページ割り当て情報エントリ310のアクセス回数316の値を1インクリメントすると共に、平均アクセス間隔317の値を更新する(ステップS606)。そして、ステップS601からステップS607までの処理が終了し、指定された論理ページのデータ読み出しがすべて終了するとループを抜ける(ステップS607でYES)。
コントローラ103は、ホストI/F102に対してレディフラグをセットして(ステップS608)、本処理を終了する。レディフラグがセットされると、ホストシステム101とホストI/F102との通信が開始され、指定されたページのデータの転送が行われる。
次に、ホストシステム101がストレージデバイス100に対してデータの書き込みを行う場合の処理の流れについて説明する。
ホストシステム101は、図5に示した「Page write」コマンドをストレージデバイス100に対して送信する。「Page write」コマンドは、パラメータ「開始論理ページ番号」、「ページ数」、及び当該ページの書き込みデータを伴って転送される。
ストレージデバイス100において、コントローラ103は、ホストI/F102を介して「Page write」コマンド、「開始論理ページ番号」、及び「ページ数」を受信するとデータ書き込み処理を開始する。ホストI/F102は、コマンド、パラメータに続いて送信される当該ページの書き込みデータを受信すると、RAM106上に存在する当該論理ページの書き込みのためのページバッファ領域に当該書き込みデータを格納する。
図10は、コントローラ103により実行されるデータ書き込み処理の詳細を示すフローチャートである。
「Page write」コマンドの「開始論理ページ番号」から「ページ数」で指定された論理ページすべてに対して、ステップS702からステップS704までの処理が実行される。
まず、コントローラ103は、当該論理ページの開始論理ページ番号と書き込みデータを引数にしてページ書き込み処理を実行する(ステップS702)。ページ書き込み処理の詳細については後述する。
ステップS702のページ書き込み処理が終了すると、論理ページ割り当てテーブル300上の当該論理ページに対応するページ割り当て情報エントリ310のアクセス回数316及び平均アクセス間隔317の値をそれぞれ更新する。ステップS702からステップS704までの処理が終了し、指定された論理ページの書き込みがすべて終了するとループを抜ける(ステップS704)。
次に、コントローラ103は、ホストI/F102に対してレディフラグをセットして(ステップS705)、ホストシステム101に対して書き込み処理が終了したことを通知する。次に、ステップS702のページ書き込み処理において生成されるGCキューに登録されているすべてのユニットに対して、ステップS707からステップS709までの処理が実行される。
まず、当該ユニットのユニット管理情報240を参照して消去待ちページ数243の値を取得し、予め設定されている閾値と比較する(ステップS707)。この結果、消去待ちページ数243が閾値よりも小さい場合は(ステップS707でNO)、後述するガバレッジコレクション処理(ステップS708)をスキップしてステップS709へ移行する。一方、消去待ちページ数243が閾値よりも大きい場合は(ステップS707でYES)、ガバレッジコレクション処理(ステップS708)を実行してステップS709へ移行する。このガバレッジコレクション処理はデータ書き込みを行う毎に実行される。
ステップS706からステップS709までの処理が終了し、GCキューに登録されているすべてのユニットに対して処理が終了するとループを抜ける(ステップS709でYES)。
次に、図10のステップS702におけるページ書き込み処理の詳細について図11を用いて説明する。
図11は、図10のステップS702におけるページ書き込み処理の詳細を示すフローチャートである。
まず、コントローラ103は、当該論理ページの開始論理ページ番号と書き込みデータを引数にして、論理ページ割り当てテーブル300から当該論理ページに対応するページ割り当て情報エントリ310を取得する(ステップS801)。次に、取得したページ割り当て情報エントリ310の情報を元に、書き込み先ページ速度判定処理を行う(ステップS802)。この書き込み先ページ速度判定処理の詳細については後述する。
ステップS802の書き込み先ページ速度判定処理において、高速が決定されていた場合は(ステップS803でYES)、ステップS804の高速物理ページ割り当て処理へ移行する。一方、書き込み先ページ速度判定処理において低速ページに決定されるか又は指定なしの場合は(ステップS803でNO)、ステップS811の低速物理ページ割り当て処理へ移行する。
ステップS804の高速物理ページ割り当て処理及びステップS811の低速物理ページ割り当て処理では、それぞれBLCフラッシュメモリ104及びMLCフラッシュメモリ105からページ書き込みのための物理ページが割り当てられる。ステップS804及びステップS811における物理ページ割り当て処理の詳細については後述する。
次に、コントローラ103は、RAM106上の書き込みページバッファにある当該ページの書き込みデータを、アクセス速度が指定された物理ページに書き込む(ステップS805)。次に、論理ページ割り当てテーブル300上の当該ページに対応するページ割り当て情報エントリ310のユニット番号314及びページオフセット315の領域に対して、割り当てた物理ページの位置を指す値を書き込み、論理ページ割り当てテーブルを更新する。
次に、コントローラ103は、ページ割り当て情報エントリ310のステータス311のビット値を判定する(ステップS807)。ステータス311のビット値が“0”であれば当該論理ページは未割り当て状態と判断し、ステップS812へ移行する。ステータス311のビット値が“1”であれば当該論理ページは割り当て済み状態と判断し、ステップS808へ移行する。
ステップS812では、コントローラ103は、論理ページ割り当てテーブル300上のページ割り当て情報エントリ310のステータス311のビット値を“1”にセットしてリターンする。ステップS808では、以前の書き込みデータ(元データ)が保持されていた物理ページについて、当該ユニットのユニット管理情報240の物理ページ割り当てテーブル245の当該物理ページのエントリを0xFFFFFFF0にセットする。さらに消去待ちページ数243の値を1インクリメント(+1)して消去待ちに変更する。
次に、コントローラ103は、当該ユニットのユニット番号をGCキューに追加し、ガバレッジコレクションの対象の候補となるユニットとして保管して(ステップS809)、リターンする。
次に、図11のステップS802における書き込み先ページ速度判定処理の詳細について図12を用いて説明する。
図12は、図11のステップS802における書き込み先ページ速度判定処理の詳細を示すフローチャートである。
まず、コントローラ103は、データの書き込み先となる論理ページに対応するページ割り当て情報エントリ310を論理ページ割り当てテーブル300から取得する(ステップS821)。
次に、コントローラ103は、ページ割り当て情報エントリ310上の速度指定312のビット値を判定する(ステップS822)。速度指定312のビット値が“1”であれば予め高速指定がなされていると判断し、書き込み先の論理ページを高速に決定して(ステップS825)、リターンする。一方、速度指定312のビット値が“0”であれば予め高速指定がなされていないか又はなんら指定されていないと判断し、ステップS823に移行する。
ステップS823では、コントローラ103は、ページ割り当て情報エントリ310上のアクセス回数316の値を判定する。アクセス回数316の値が所定値よりも大きい場合は(ステップS823でYES)、ステップS824に移行する。一方、アクセス回数316の値が所定値よりも小さい場合は(ステップS823でNO)、書き込み先の論理ページを低速に決定して(ステップS826)、リターンする。
ステップS824では、コントローラ103は、ページ割り当て情報エントリ310上の平均アクセス間隔317の値を評価する。平均アクセス間隔317の値が所定値よりも小さい場合は(ステップS824でYES)、ステップS825に移行する。一方、平均アクセス間隔317の値が所定値よりも大きい場合は(ステップS824でNO)、ステップS826に移行する。
本処理により、図13に示す条件で物理ページが高速領域に割り当てられることとなる。すなわち、速度指定が高速でなくともアクセス回数が多く且つ平均アクセス間隔が小さい場合、データの書き込み先を高速ページ(BLCフラッシュメモリ)に決定するので、頻繁にアクセスされるページをアクセス頻度に応じて高速領域に割り振ることができる。
次に、図11のステップS804及びステップS811における物理ページ割り当て処理の詳細について図14を用いて説明する。
図14は、物理ページ割り当て処理の詳細を示すフローチャートである。
まず、コントローラ103は、ユニット管理テーブル200上のユニット管理情報240に対して検索を行い、空きページのあるユニットを見つける(ステップS841)。ここで、割り当てたい物理ページが高速ページである場合は、ユニット#0からユニット#X−1までのユニット管理情報240を検索対象とする。割り当てたい物理ページが低速ページ(MLCフラッシュメモリ)である場合は、ユニット#Xからユニット#X+Yまでのユニット管理情報240を検索対象とする。空きページのあるユニットが見つかったときは、当該ユニットのユニット管理情報240上の空きページ数242の値から1デクリメント(−1)する(ステップS842)。
次に、コントローラ103は、当該ユニットのユニット管理情報240上の次の空きページエントリ244の値を戻り値にセットし(ステップS843)、次の空きページエントリ244の値に1インクリメント(+1)する(ステップS844)。そして、当該ユニットの物理ページ割り当てテーブル245上の割り当て物理ページに、該当する物理ページのエントリに割り当てる論理ページの番号をセットして(ステップS845)、リターンする。本処理により、コントローラ103は、戻り値として割り当てページエントリを返す。
次に、図10のステップS708におけるガバレッジコレクション処理の詳細について図15を用いて説明する。
図15は、図10のステップS708におけるガバレッジコレクション処理の詳細を示すフローチャートである。当該ユニットの物理ページすべてに対して、ステップS902からステップS907までの処理が実行される。
まず、コントローラ103は、物理ページ割り当てテーブル245からループ毎に順に物理ページのエントリを取得する(ステップS902)。取得したエントリが0xFFFFFFFFであるときは、当該ページは空きページであるとみなして(ステップS903でYES)、ステップS904〜S906をスキップしてループを継続する。一方、取得したエントリが0xFFFFFFF0であるときは、当該ページは消去待ちページであるとみなして(ステップS904でYES)、ステップS905,S906をスキップしてループを継続する。
ステップS905では、コントローラ103は、当該物理ページに書き込まれているページデータをRAM106上の読み出しページバッファに読み出す。次に、読み出したページデータを別の物理ページに移すためにページ書き込み処理を実行する(ステップS906)。このページ書き込み処理は、上述した図11に示した処理と同様の処理である。
なお、読み出したページデータを別の物理ページに移す場合、移動後の物理ページに割り当てられた論理ページのアクセス速度を移動前の速度に指定にするかまたは移動後の物理ページに割り当てられた論理ページのアクセス速度をアクセス頻度に応じて指定する。また、論理ページに対応する書き込みデータを移動後の物理ページに書き込むと共に、論理ページ割り当てテーブル300を更新する。
物理ページ割り当てテーブル245のすべてのエントリに対して、ステップS902からステップS907までの処理が終了するとループを抜ける(ステップS907でYES)。
ステップS908では、コントローラ103は、すべての物理ページへの処理が終わると当該ユニット上には有効なデータは残っていない状態になるので、ユニット物理消去を行う。ユニット物理消去は、BLCフラッシュメモリ104若しくはMLCフラッシュメモリ105の当該消去ブロックを物理的に消去する。次に、ユニット論理消去処理を行う(ステップS909)。ユニット論理消去処理の詳細については後述する。
次に、図15のステップS909におけるユニット論理消去処理の詳細について図16を用いて説明する。
図16は、図15のステップS909におけるユニット論理消去処理の詳細を示すフローチャートである。
まず、コントローラ103は、ユニット管理テーブル200の消去済みユニットビットマップ222上の当該ユニットのビット値を“1”にセットする(ステップS951)。次に、当該ユニットのユニット管理情報240上の有効ページ数241にユニットの総ページ数であるMをセットする(ステップS952)。次に、当該ユニットのユニット管理情報240上の空きページ数242にユニットの総ページ数であるMをセットする(ステップS953)。
次に、コントローラ103は、当該ユニットのユニット管理情報240上の消去待ちページ数243に“0”をセットする(ステップS954)。次に、当該ユニットのユニット管理情報240上の次の空きページエントリ244に“0”をセットする(ステップS955)。次に、当該ユニットのユニット管理情報240上の物理ページ割り当てテーブル245のすべてのエントリに0xFFFFFFFFFをセットする。さらに、当該ユニットのユニット管理情報240上の消去回数246の値を1インクリメント(+1)する。これにより、当該ユニットのユニット管理情報240が消去状態となる。
次に、ホストシステム101からストレージデバイス100に対して論理ページへのアクセス速度を指定する処理の流れについて説明する。
ホストシステム101は、図5に示した「Page rate」コマンドをストレージデバイス100に対して送信する。「Page rate」コマンドはパラメータ「開始論理ページ番号」、「ページ数」、及び「アクセス速度」を伴って転送される。ストレージデバイス100において、コントローラ103は、ホストI/F102を介して「Page rate」コマンド、「開始論理ページ番号」、「ページ数」、及び「速度」のパラメータを受信すると、論理ページへのアクセス速度の指定処理を開始する。
図17は、コントローラ103により実行されるページのアクセス速度指定処理の詳細を表したフローチャートである。
コントローラ103は、「Page rate」コマンドと一緒に受信した「開始論理ページ番号」及び「ページ数」のパラメータを基に、アクセス速度を指定する論理ページの指定を行う。指定された論理ページすべてに対して、ステップS1002からステップS1004までの処理が実行される。
まず、コントローラ103は論理ページ割り当てテーブル300より当該ページのページ割り当て情報エントリ310を取得する(ステップS1002)。次に、当該ページのページ割り当て情報エントリ310のユニット速度313のビット値にパラメータ「アクセス速度」の値をセットする(ステップS1003)。
ステップS1002からステップS1004までの処理を繰り返すことにより、指定された論理ページの速度指定がすべて終了するとループを抜ける(ステップS1004でYES)。次に、コントローラ103は、ホストI/F102に対してレディフラグをセットする(ステップS1005)。レディフラグがセットされると、ホストシステム101とホストI/F102の通信が開始され、アクセス速度指定が終了したことをホストシステム101に通知する。
予めアクセス速度が指定されている場合は、本処理により、データ書き込み時に、指定されたアクセス速度が物理ページに割り当てられる。また、アクセス状況に応じて、上書き又はガバレッジコレクション処理が発生して論理ページの割り当てられている物理ページの位置が変更になるときに、速度判定に応じた物理ページに割り当てられる。
次に、ホストシステム101上で動作するファイルシステムがストレージデバイス100を論理フォーマットするときの処理について説明する。
図18は、ホストシステム101上で動作するファイルシステムのフォーマット処理を示すフローチャートである。図19は、FATファイルシステムでフォーマットされているブロックデバイスの内部のデータ構造を示す図である。
ホストシステム101は、MBR1101〜ルートディレクトリエントリ1106の配置されるべきセクタの論理ページを「Page rate」コマンドを用いて高速ページに指定する(ステップS1201〜ステップS1204)。
次に、ホストシステム101は、MBR1101〜ルートディレクトリエントリ1106の値を「Page write」コマンドを用いて書き換えることによって、FATファイルシステムの初期状態にする(ステップS1205〜ステップS1208)。そして、ファイルシステムのフォーマット処理を終了する。この「Page write」コマンドが実行されることにより、ステップS1201〜ステップS1204において指定された論理ページはすべて高速ページとしてBLCフラッシュメモリ104上の物理ページへ配置される。すなわち、フォーマットが実行されると、ファイルシステムで用いられる管理領域のMBR1101〜ルートディレクトリエントリ(RootDir)1106といった、頻繁にアクセスされる可能性の高い記憶領域が高速ページに配置されることとなる。
FATファイルシステムにおいて、ファイルやディレクトリを生成する場合には、ルートディレクトリエントリ1106又は不図示のサブディレクトリ領域にディレクトリエントリを生成して配置する必要がある。したがって、ルートディレクトリエントリ1106以外にも、サブディレクトリを作成してファイルを配置させる場合、論理ページを予め「Page rate」コマンドを用いて高速ページに指定することが可能である。この論理ページは、サブディレクトリ領域として使用するクラスタ位置に相当する。これにより、随時生成されるサブディレクトリ領域も、高速ページに配置することが可能となる。
このようにして、ルートディレクトリエントリ及びサブディレクトリエントリが高速ページに配置されることによって、FATファイルシステムにおけるディレクトリエントリのパースの処理が高速になる。そして、ファイル名の検索や新規生成ファイルの名前重複検査処理が高速になり、ファイルアクセスの相対的な高速化を実現することができる。
上記第1の実施の形態によれば、アクセス速度の異なる記憶手段(又は記憶領域)を有するストレージデバイスにアクセスする際に、データを書き込む記憶領域が限定されることなく、任意のデータをアクセス速度が高速な記憶手段等に割り振ることが可能となる。また、記憶領域に対するアクセス頻度を記録し、頻繁にアクセスされる記憶領域を高速な記憶領域に割り振ることができ、アクセス頻度の高いデータやファイルのアクセスを効果的に高速化することが可能となる。
また、データの上書きやガバレッジコレクション処理等によって論理ページ(論理ブロック)と物理ページ(物理ブロック)の割り当てが変更になった場合においても、所望のアクセス速度を有する記憶領域にファイルやデータの配置を維持することが可能となる。
次に、本発明の第2の実施形態について説明する。
本発明の第2の実施の形態に係るメモリ管理装置は、その構成(図1〜図5)が上記第1の実施の形態に係るメモリ管理装置と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
上述した第1の実施形態では、図10に示すように、ストレージデバイス100がデータ書き込み処理を行うタイミングでガバレッジコレクション処理を行った。本第2の実施形態では、ガバレッジコレクション処理をデータ書き込み時毎に行わず、バックグラウンド処理として非同期に行うものである。これにより、書き込み時の処理を軽減することが可能となり、相対的に書き込み時の処理時間が短くなる。
第2の実施形態における、ホストシステム101からストレージデバイス100に対してデータの書き込みを行う場合の処理の流れについて説明する。
ホストシステム101は、図5に示した「Page write」コマンドをストレージデバイス100に対して送信する。「Page write」コマンドは、パラメータ「開始論理ページ番号」、「ページ数」、及び当該ページの書き込みデータを伴って転送される。
ストレージデバイス100において、コントローラ103は、ホストI/F102を介して「Page write」コマンド、「開始論理ページ番号」、及び「ページ数」を受信するとデータ書き込み処理を開始する。ホストI/F102は、コマンド、パラメータに続いて送信される当該ページの書き込みデータを受信すると、RAM106上に存在する当該論理ページの書き込みのためのページバッファ領域に当該書き込みデータを格納する。
図20は、本発明の第2の実施形態におけるストレージデバイス100のコントローラ103により実行されるデータの書き込み処理の詳細を示すフローチャートである。なお、図20のステップS702からステップS705までの処理は、図10のステップS702からステップS705までの処理と同じであるため、その説明を省略する。
次に、バックグラウンドで実行されるガバレッジコレクション(GC)処理について説明する。
図21は、コントローラ103によりバックグラウンドで実行されるガバレッジコレクション処理の詳細を示すフローチャートである。図21のステップS707からステップS709までの処理は、図10のステップS707からステップS709までの処理と同じであるため、その説明を省略する。
図21に示すガバレッジコレクション処理は、所定の時間間隔毎に、定期的に行われるものである。なお、このガバレッジコレクション処理は、定期的に実行する代わりに、ストレージデバイス100へのアクセスが所定回数実施される毎に行ってもよい。
次に、本発明の第3の実施形態について説明する。
本発明の第3の実施の形態に係るメモリ管理装置は、その構成(図1〜図5)が上記第1の実施の形態に係るメモリ管理装置と同じであり、第1の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。以下に、上記第1の実施の形態と異なる点のみを説明する。
上述した第1の実施形態では、図17に示すように、ホストシステム101が「Page rate」コマンドでページ速度を指定した場合に、当該ページのページ割り当て情報エントリ310の速度指定312のビット値を変更するのみであった。
本第3の実施形態では、「Page rate」コマンドでページ速度を指定した場合に、当該ページのページ割り当て情報エントリ310の速度指定312のビット値を変更する。それと共に、当該ページに既に有効データが書き込まれていたときは、そのデータを指定された高速ページに移動する処理を行う。これにより、「Page rate」コマンドを書き込み済みのページに対して指定した場合においても、指定した高速ページに随時割り当てを変更することが可能となる。
本第3の実施形態における、ホストシステム101からストレージデバイス100に対して論理ページの速度を指定する処理の流れについて説明する。
ホストシステム101は、図5に示した「Page rate」コマンドをストレージデバイス100に対して送信する。「Page rate」コマンドは、パラメータ「開始論理ページ番号」、「ページ数」、及び「速度」を伴って転送される。コントローラ103は、ホストI/F102を介して「Page rate」コマンド、「開始論理ページ番号」、「ページ数」、及び「アクセス速度」のパラメータを受信する。そうすると、論理ページへのアクセス速度の指定処理を開始する。
図22は、本発明の第3の実施形態におけるストレージデバイス100のコントローラ103により実行されるページ速度指定処理の詳細を示すフローチャートである。
コントローラ103は、「Page read」コマンドと一緒に受信した「開始論理ページ番号」及び「ページ数」のパラメータを基に、アクセス速度を指定する論理ページの指定を行う。指定された論理ページすべてに対して、ステップS1002,S1501〜S1504,S1003,S1004のステップが実行される。なお、ステップS1501〜ステップS1505を除く処理は、上述した図17に示した処理と同じであるため、その説明を省略する。
ステップS1501では、コントローラ103は、当該ページのページ割り当て情報エントリ310のステータス311のビット値が“0”であれば、当該ページは空きページであるとみなしてステップS1003へ移行する。ステップS1502では、当該ページのページ割り当て情報エントリ310のユニット速度313が「Page rate」コマンドで指定された速度と同じであれば、ステップS1003へ移行する。
ステップS1503では、当該ページに既に書き込まれてあるページデータをRAM106上のページバッファに読み出す。次に、読み出したページデータを別の物理ページに移すためにページ書き込み処理を実行する(ステップS1504)。このページ書き込み処理は、図11に示した処理と同じである。
上記実施の形態においては、図9のステップ606及び図10のステップ703において論理ページ割り当てテーブル300上のページ割り当て情報エントリ310のアクセス回数316及び平均アクセス間隔317の値の更新を行った。しかしながら、ストレージデバイス100の用途によっては、データ書き込み処理においてのみ若しくはデータ読み出し処理においてのみ、アクセス回数316及び平均アクセス間隔317の値の更新を行うようにしてもよい。
データ書き込み処理においてのみアクセス回数316及び平均アクセス間隔317の値の更新を行うようにすれば、頻繁に書き込みを行うページについて高速領域に配置されるという効果を奏する。また、データ読み出し処理においてのみアクセス回数316及び平均アクセス間隔317の値の更新を行うようにすれば、頻繁に読み出しを行うページについて高速領域に配置されるという効果を奏する。
上記各実施形態においては、MLCフラッシュメモリ及びBLCフラッシュメモリを用いてストレージデバイスを構成したが、この限りではない。例えば、HDDを用いて第二のメモリ領域を構成してもよい。
また、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、又はインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
本発明の第1の実施形態に係るメモリ管理装置を含むメモリ管理システムの構成例を示すブロック図である。 図1の各フラッシュメモリ内部のメモリマップを示す図であり、(a)はBLCフラッシュメモリ、(b)はMLCフラッシュメモリである。 ユニット管理テーブルの詳細を示す図である。 論理ページ割り当てテーブルの詳細を示す図である。 ストレージデバイスがサポートするコマンドの一覧を示す図である。 コントローラにより実行されるストレージデバイスの初期化処理の詳細を示すフローチャートである。 図6のステップS402におけるユニット管理テーブルの初期化処理の詳細を示すフローチャートである。 図6のステップS403における論理ページ割り当てテーブルの初期化処理の詳細を示すフローチャートである。 コントローラにより実行されるデータ読み出し処理の詳細を示すフローチャートである。 コントローラにより実行されるデータ書き込み処理の詳細を示すフローチャートである。 図10のステップS702におけるページ書き込み処理の詳細を示すフローチャートである。 図11のステップS802における書き込み先ページ速度判定処理の詳細を示すフローチャートである。 速度指定の条件を示す図である。 物理ページ割り当て処理の詳細を示すフローチャートである。 図10のステップS708におけるガバレッジコレクション処理の詳細を示すフローチャートである。 図15のステップS909におけるユニット論理消去処理の詳細を示すフローチャートである。 コントローラにより実行されるページのアクセス速度指定処理の詳細を表したフローチャートである。 ホストシステム101上で動作するファイルシステムのフォーマット処理を示すフローチャートである。 FATファイルシステムでフォーマットされているブロックデバイスの内部のデータ構造を示す図である。 本発明の第2の実施形態におけるストレージデバイスのコントローラにより実行されるデータの書き込み処理の詳細を示すフローチャートである。 コントローラによりバックグラウンドで実行されるガバレッジコレクション処理の詳細を示すフローチャートである。 本発明の第3の実施形態におけるストレージデバイスのコントローラにより実行されるページ速度指定処理の詳細を示すフローチャートである。
符号の説明
100 ストレージデバイス
101 ホストシステム
102 ホストI/F
103 コントローラ
104 BLC(Binary Level Cell:2値型)フラッシュメモリ
105 MLC(Multi-Level Cell:多値型)フラッシュメモリ
106 RAM

Claims (13)

  1. 所定のアクセス速度でのアクセスが可能な第1の記憶手段と、前記所定のアクセス速度より低速なアクセス速度でのアクセスが可能な第2の記憶手段と、前記第1及び前記第2の記憶手段を複数の物理ページで構成されたユニットの単位で管理し、当該物理ページにデータを書き込む制御手段とを備えるメモリ管理装置において、
    前記データを書き込む際に指定される論理ページと前記物理ページとが対応付けられたページ割り当て情報を格納する格納手段を備え、
    前記制御手段は、前記第1又は前記第2の記憶手段のいずれか一方にデータを書き込む場合、指定された論理ページに対応するページ割り当て情報に基づいて、前記第1の記憶手段に前記データを書き込むことを特徴とするメモリ管理装置。
  2. 前記制御手段は、前記データが前記第1の記憶手段に書き込まれるように、前記ページ割り当て情報におけるアクセス速度の指定を高速にすることを特徴とする請求項1記載のメモリ管理装置。
  3. 前記論理ページへのアクセス頻度を判定するアクセス頻度の判定手段を更に備え、
    前記制御手段は、前記アクセス頻度の判定手段によりアクセス頻度が高いと判定された場合、前記データが前記第1の記憶手段に書き込まれるように、前記ページ割り当て情報におけるアクセス速度の指定を高速にすることを特徴とする請求項1又は2記載のメモリ管理装置。
  4. 前記ページ割り当て情報に基づいて前記論理ページが前記物理ページに未割り当てか否かを判別する判別手段と、
    前記判別手段により割り当て済みと判別された論理ページの元データが保持されていた物理ページを消去待ちページに変更する変更手段と、
    前記消去待ちページの数が閾値を超えたときに、当該物理ページに書き込まれているデータを別の物理ページに移すと共に、前記ユニットの管理情報を変更して消去状態にするガバレッジコレクション処理を実行するガバレッジコレクション処理手段とを更に備えることを特徴とする請求項1乃至3のいずれか1項に記載のメモリ管理装置。
  5. 前記ガバレッジコレクション処理手段は、前記データの書き込みを行う毎に前記ガバレッジコレクション処理を実行することを特徴とする請求項4記載のメモリ管理装置。
  6. 前記ガバレッジコレクション処理手段は、バックグラウンド処理として定期的に前記ガバレッジコレクション処理を実行することを特徴とする請求項4記載のメモリ管理装置。
  7. 前記制御手段は、前記ガバレッジコレクション処理手段により前記物理ページに書き込まれているデータを別の物理ページに移す場合、移動後の物理ページに割り当てられた論理ページのアクセス速度を移動前のアクセス速度に指定にすることを特徴とする請求項4乃至6のいずれか1項に記載のメモリ管理装置。
  8. 前記制御手段は、前記ガバレッジコレクション処理手段により前記物理ページに書き込まれているデータを別の物理ページに移す場合、移動後の物理ページに割り当てられた論理ページのアクセス速度をアクセス頻度に応じて指定することを特徴とする請求項4乃至6のいずれか1項に記載のメモリ管理装置。
  9. 前記制御手段は、前記論理ページに対してアクセス速度が指定された場合は、当該論理ページに対応する書き込みデータを前記移動後の物理ページに書き込むと共に、前記ページ割り当て情報を更新することを特徴とする請求項7又は8記載のメモリ管理装置。
  10. 所定のアクセス速度でのアクセスが可能な第1の記憶手段と、前記所定のアクセス速度より低速なアクセス速度でのアクセスが可能な第2の記憶手段を複数の物理ページで構成されたユニットの単位で管理する管理工程と、
    前記データを書き込む際に指定される論理ページと前記物理ページとが対応付けられたページ割り当て情報を前記第1及び前記第2の記憶手段のいずれか一方に格納する格納工程と、
    前記第1又は前記第2の記憶手段のいずれか一方にデータを書き込む場合、指定された論理ページに対応するページ割り当て情報に基づいて、前記第1の記憶手段に前記データを書き込む書込工程とを備えることを特徴とするメモリ管理方法。
  11. 請求項10記載のメモリ管理方法をコンピュータに実行させるためのコンピュータに読み取り可能なプログラム。
  12. 請求項1乃至9のいずれか1項に記載のメモリ管理装置に接続され、所定のファイルシステムが動作するホストシステムを備えるメモリ管理システムにおいて、
    前記ホストシステムは、前記所定のファイルシステムによるフォーマットの際に、当該所定のファイルシステムに用いられる管理領域を第1の記憶手段に指定することを特徴とするメモリ管理システム。
  13. 請求項1乃至9のいずれか1項に記載のメモリ管理装置に接続され、所定のファイルシステムが動作するホストシステムを備えるメモリ管理システムにおいて、
    前記所定のファイルシステムによるファイル及びディレクトリの生成の際に、当該所定のファイルシステムに用いられる管理領域を第1の記憶手段に指定することを特徴とするメモリ管理システム。
JP2007077553A 2007-03-23 2007-03-23 記憶装置及び記憶装置の制御方法 Expired - Fee Related JP5224706B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007077553A JP5224706B2 (ja) 2007-03-23 2007-03-23 記憶装置及び記憶装置の制御方法
US12/047,560 US8335893B2 (en) 2007-03-23 2008-03-13 Storage device, system, and method that determines a physical address of a memory unit allocated to a logical address or allocates a logical address to a physical address of a memory unit, based on access speed information of the logical address
KR1020080026128A KR100975825B1 (ko) 2007-03-23 2008-03-21 기억장치, 기억 시스템 및 기억 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007077553A JP5224706B2 (ja) 2007-03-23 2007-03-23 記憶装置及び記憶装置の制御方法

Publications (3)

Publication Number Publication Date
JP2008242503A true JP2008242503A (ja) 2008-10-09
JP2008242503A5 JP2008242503A5 (ja) 2010-05-06
JP5224706B2 JP5224706B2 (ja) 2013-07-03

Family

ID=39775886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007077553A Expired - Fee Related JP5224706B2 (ja) 2007-03-23 2007-03-23 記憶装置及び記憶装置の制御方法

Country Status (3)

Country Link
US (1) US8335893B2 (ja)
JP (1) JP5224706B2 (ja)
KR (1) KR100975825B1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157218A (ja) * 2008-12-29 2010-07-15 John Rudelic 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置
JP2011159044A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
JP2011159069A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 半導体記憶装置及びその制御方法
JP2014513848A (ja) * 2011-05-15 2014-06-05 アップル インコーポレイテッド Lsb及びmsbページにおける選択的データ記憶
US8868853B2 (en) 2009-08-12 2014-10-21 Nec Corporation Data processing device, data recording method and data recording program
US9146693B2 (en) 2013-02-14 2015-09-29 Panasonic Intellectual Property Management Co., Ltd. Storage control device, storage system, and storage control method
WO2016006067A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 メモリモジュールおよび情報処理システム
JP2020177413A (ja) * 2019-04-17 2020-10-29 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
JPWO2021079535A1 (ja) * 2019-10-23 2021-04-29

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090876A (ja) * 2006-09-29 2008-04-17 Toshiba Corp 不揮発性半導体記憶装置
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8566508B2 (en) * 2009-04-08 2013-10-22 Google Inc. RAID configuration in a flash memory data storage device
US8595572B2 (en) 2009-04-08 2013-11-26 Google Inc. Data storage device with metadata command
JP4682353B2 (ja) * 2009-08-25 2011-05-11 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US8255656B2 (en) * 2009-09-15 2012-08-28 Phison Electronics Corp. Storage device, memory controller, and data protection method
US8712984B2 (en) * 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US9003101B1 (en) * 2011-06-29 2015-04-07 Western Digital Technologies, Inc. Prioritized access for media with heterogeneous access rates
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
US9552295B2 (en) 2012-09-25 2017-01-24 Empire Technology Development Llc Performance and energy efficiency while using large pages
JP6146087B2 (ja) * 2013-03-28 2017-06-14 富士通株式会社 ストレージ制御プログラム,ストレージ制御方法,ストレージシステム及びその階層制御装置
WO2014192051A1 (ja) * 2013-05-27 2014-12-04 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2015126518A2 (en) 2014-02-20 2015-08-27 Rambus Inc. High performance persistent memory
US20150301930A1 (en) * 2014-04-18 2015-10-22 HGST Netherlands B.V. File storage via physical block addresses
JP6789788B2 (ja) * 2016-12-12 2020-11-25 株式会社メガチップス メモリ装置、コントローラ、ホスト装置、データ処理システム、制御プログラム、メモリ装置の動作方法及びホスト装置の動作方法
US10095417B1 (en) * 2016-12-13 2018-10-09 EMC IP Holding Company LLC Method and system for improving flash storage read performance in partially programmed blocks
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
US10403366B1 (en) 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
WO2020014869A1 (zh) * 2018-07-17 2020-01-23 华为技术有限公司 处理i/o请求的方法及设备
TWI701552B (zh) * 2019-03-22 2020-08-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN115933997B (zh) * 2023-01-30 2023-06-13 南京芯驰半导体科技有限公司 数据访问方法、相关设备及存储介质
CN116339643B (zh) * 2023-05-26 2023-08-04 苏州浪潮智能科技有限公司 一种磁盘阵列的格式化方法、装置、设备和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1131102A (ja) * 1997-07-14 1999-02-02 Toshiba Corp データ記憶システム及び同システムに適用するアクセス制御方法
JP2000173281A (ja) * 1998-12-04 2000-06-23 Sony Corp 半導体記憶装置
JP2001006374A (ja) * 1999-06-17 2001-01-12 Hitachi Ltd 半導体記憶装置及びシステム
JP2001210082A (ja) * 2000-01-24 2001-08-03 Mitsubishi Electric Corp 不揮発性半導体記憶装置およびデータ記憶システム
JP2001306393A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3715690B2 (ja) 1995-08-02 2005-11-09 キヤノン株式会社 マルチメディアデータファイリングシステム
KR20010105824A (ko) * 2000-05-18 2001-11-29 서진원 인터넷의 웹사이트 게시판을 이용한 자동광고시스템
JP2004199380A (ja) * 2002-12-18 2004-07-15 Nec Access Technica Ltd マイクロプロセッサの高速メモリアクセス方式及び高速メモリアクセス装置
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
KR100704037B1 (ko) 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
JP4749766B2 (ja) * 2005-05-25 2011-08-17 京セラ株式会社 情報記憶装置及び情報記憶方法
US7461229B2 (en) * 2006-05-23 2008-12-02 Dataram, Inc. Software program for managing and protecting data written to a hybrid solid-state disk drive
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1131102A (ja) * 1997-07-14 1999-02-02 Toshiba Corp データ記憶システム及び同システムに適用するアクセス制御方法
JP2000173281A (ja) * 1998-12-04 2000-06-23 Sony Corp 半導体記憶装置
JP2001006374A (ja) * 1999-06-17 2001-01-12 Hitachi Ltd 半導体記憶装置及びシステム
JP2001210082A (ja) * 2000-01-24 2001-08-03 Mitsubishi Electric Corp 不揮発性半導体記憶装置およびデータ記憶システム
JP2001306393A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010157218A (ja) * 2008-12-29 2010-07-15 John Rudelic 不揮発性メモリに置き換えるためにramメモリオブジェクトをプロファイルする方法及び装置
US8868853B2 (en) 2009-08-12 2014-10-21 Nec Corporation Data processing device, data recording method and data recording program
JP2011159044A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 不揮発性メモリのコントローラ及び不揮発性メモリの制御方法
JP2011159069A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 半導体記憶装置及びその制御方法
US8140741B2 (en) 2010-01-29 2012-03-20 Kabushiki Kaisha Toshiba Semiconductor storage device and control method thereof
US8171254B2 (en) 2010-01-29 2012-05-01 Kabushiki Kaisha Toshiba Memory controller and memory control method
US8275935B2 (en) 2010-01-29 2012-09-25 Kabushiki Kaisha Toshiba Semiconductor storage device and control method thereof
JP2014513848A (ja) * 2011-05-15 2014-06-05 アップル インコーポレイテッド Lsb及びmsbページにおける選択的データ記憶
US9146693B2 (en) 2013-02-14 2015-09-29 Panasonic Intellectual Property Management Co., Ltd. Storage control device, storage system, and storage control method
WO2016006067A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 メモリモジュールおよび情報処理システム
JPWO2016006067A1 (ja) * 2014-07-09 2017-04-27 株式会社日立製作所 メモリモジュールおよび情報処理システム
US10037168B2 (en) 2014-07-09 2018-07-31 Hitachi, Ltd. Memory module and information processing system
JP2020177413A (ja) * 2019-04-17 2020-10-29 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
JP7252821B2 (ja) 2019-04-17 2023-04-05 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
JPWO2021079535A1 (ja) * 2019-10-23 2021-04-29
WO2021079535A1 (ja) * 2019-10-23 2021-04-29 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
US11768628B2 (en) 2019-10-23 2023-09-26 Sony Interactive Entertainment Inc. Information processing apparatus
JP7403554B2 (ja) 2019-10-23 2023-12-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置

Also Published As

Publication number Publication date
KR100975825B1 (ko) 2010-08-13
US8335893B2 (en) 2012-12-18
US20080235467A1 (en) 2008-09-25
JP5224706B2 (ja) 2013-07-03
KR20080086828A (ko) 2008-09-26

Similar Documents

Publication Publication Date Title
JP5224706B2 (ja) 記憶装置及び記憶装置の制御方法
US11573701B2 (en) Memory device and host device
US10120795B2 (en) Wear-leveling nandflash memory reading/writing method
JP5708216B2 (ja) フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US20140059273A1 (en) Host apparatus and memory device
JP2005222550A (ja) フラッシュメモリのリマッピング方法
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
WO2005015406A1 (ja) 半導体メモリカード、アクセス装置及びアクセス方法
JP2006277737A (ja) アドレス予測機能をもつ不揮発性記憶装置
CN102227729A (zh) 仅向主机呈现与定义的主机性能相兼容的文件的存储器件
JP2008070975A (ja) データ保存装置及びデータ保存方法
JP5385835B2 (ja) データ記録装置
JP2011076441A (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP2009205591A (ja) アクセスモジュール、情報記録モジュール、及び情報記録システム
JP7262977B2 (ja) 記録装置及びその制御方法、並びにプログラム
JP5161989B2 (ja) 情報記録装置、情報記録方法及び情報記録用プログラム
JP5697398B2 (ja) ファイル管理装置、ファイル管理方法、及びコンピュータプログラム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP5958440B2 (ja) 仮想テープ制御装置、仮想テープ装置、制御方法、プログラムおよび記録媒体
JP4881469B1 (ja) 情報処理装置、及び情報処理方法
US20090319587A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP2020109591A (ja) 情報処理装置、その制御方法およびプログラム
JP2009093712A (ja) 記録再生装置及び記録再生方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100323

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130206

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: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130312

R151 Written notification of patent or utility model registration

Ref document number: 5224706

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees