JPWO2009096180A1 - メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム - Google Patents

メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム Download PDF

Info

Publication number
JPWO2009096180A1
JPWO2009096180A1 JP2009521051A JP2009521051A JPWO2009096180A1 JP WO2009096180 A1 JPWO2009096180 A1 JP WO2009096180A1 JP 2009521051 A JP2009521051 A JP 2009521051A JP 2009521051 A JP2009521051 A JP 2009521051A JP WO2009096180 A1 JPWO2009096180 A1 JP WO2009096180A1
Authority
JP
Japan
Prior art keywords
partition
logical
size
address
physical
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
JP2009521051A
Other languages
English (en)
Inventor
宗 広和
広和 宗
博 櫻井
博 櫻井
浩文 中垣
浩文 中垣
須藤 正人
正人 須藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2009096180A1 publication Critical patent/JPWO2009096180A1/ja
Withdrawn legal-status Critical Current

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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

1つ以上のパーティションのサイズを変更することができる不揮発性記憶装置において、パーティションのサイズ変更を繰り返しても、アドレス管理用テーブルが複雑化しない方法を提供する。パーティションのサイズを変更する際に、変更されたパーティション以後のパーティションに対応する物理ブロックアドレスを、サイズ変更分だけ移動して論理/物理変換テーブルを更新する。こうすることで、パーティションに対応する論理アドレスも、パーティションに対応していない論理アドレスも、常に連続した状態となる。

Description

本発明は、不揮発性メモリを制御するメモリコントローラ、メモリコントローラを有する不揮発性記憶装置、及び、不揮発性記憶装置とアクセス装置とを有する不揮発性記憶システムに関する。
音楽コンテンツや、映像データなどのデジタルデータを格納する媒体には、半導体記録媒体、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。特に、半導体記録媒体は、小型かつ軽量であり、近年、大容量化、高速化、低価格化が急速に進んでいるので、ディジタルスチルカメラ、携帯電話、携帯音楽プレーヤ、テレビ、DVDレコーダをはじめとする様々な機器で利用できる。代表的な半導体記録媒体の1つであるSDメモリカード(登録商標)は、最近では8ギガバイト、16ギガバイトなどの非常に大きな容量のものが市販されている。このように不揮発性記憶装置の記憶容量が増大すると、一般的に1つの不揮発性記憶装置を複数のアプリケーションで使用するケースが増加する。
このとき、アプリケーション毎にデータの格納領域を区分するために、物理的には1つの不揮発性記憶装置の記憶領域を論理空間上で複数に分割し、分割された論理空間上の記憶領域(以下、「パーティション」という)をアプリケーション毎に割当てることができる。特許文献1は、不揮発性記憶装置に構築されたパーティションにデータが格納された状態において、パーティションの作成、削除、サイズ変更を行うための方法を開示している。
特開平5−81091号公報
(発明が解決しようとする課題)
上記従来技術では、現在使用中のパーティションに関する情報を格納する第1のテーブルと、パーティション情報のうち現在使用中のパーティションに関する情報を除いた未使用情報を格納する第2のテーブルとを用いて、パーティションの単位を指示するパーティション情報を、管理している。上記従来技術は、パーティションの作成、削除、サイズ変更のいずれかの処理を実施する度に第1のテーブル及び第2のテーブルを更新する。
パーティションの作成、削除、サイズ変更が繰り返し行われると、第1のテーブル及び第2のテーブルに登録されたパーティションが論理空間上で断片化された状態となる。このようなパーティションの断片化は、現在使用中のパーティションにおける論理的なアドレス(以下、「論理アドレス」という)を物理的なアドレス(以下、「物理アドレス」という)に変換するための論理アドレス/物理アドレス変換処理(以下、「論理/物理変換処理」という)を複雑化する。このことは、不揮発性記憶装置の主たる機能である読出し及び書込みの処理速度が定常的に低下するという問題を引き起こす。
本発明は上記の問題を解決するものであり、その目的は、パーティションのサイズ変更を繰り返してもパーティションを断片化しないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することにある。
(課題を解決するための手段)
この課題を解決するために本発明のメモリコントローラは、記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を具備するものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
この課題を解決するために本発明の不揮発性記憶装置は、記憶領域の論理アドレス空間が分割された不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を具備する。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
この課題を解決するために本発明の不揮発性記憶システムは、不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムである。前記不揮発性記憶装置は、不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を備える。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
(発明の効果)
本発明によれば、パーティションのサイズ変更を行う度に論物変換テーブルを更新するので、論物変換テーブルにおけるパーティションの断片化を防止することができる。その結果として、論理/物理変換処理の複雑化を回避できるため、本発明は、パーティションのサイズ変更を繰り返すことによる、読出し及び書込みの処理速度の低下を防ぐことができる。
従って、パーティションのサイズ変更を繰り返しても、読出し及び書込みの処理速度の低下を引き起こさないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することができる。
本発明の実施の形態における、不揮発性記憶システムの構成を示すブロック図である。 本発明の実施の形態における、不揮発性メモリ120の物理ブロックの構成を示す図である。 本発明の実施の形態における、論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の構成例を示す図である。 初期化コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 初期状態の論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の状態を示す図である。 パーティションPT0のサイズを設定したときの、テーブル112、113、及び114の状態を示す図である。 パーティションPT1、2、3のサイズを設定したときの、テーブル112、113、及び114の状態を示す図である。 書込みコマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT0への書込み後のテーブル112、113、及び114の状態を示す図である。 パーティションPT1への書込み後のテーブル112、113、及び114の状態を示す図である。 全パーティションへの書込み後のテーブル112、113、及び114の状態を示す図である。 パーティションのサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT2のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティションサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT1のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティションPT0のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティション作成コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT2のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 読出しコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
符号の説明
100 不揮発性記憶装置
110 メモリコントローラ
111 アクセスインターフェース
112 論物変換テーブル
113 空き物理ブロック管理テーブル
114 パーティション管理テーブル
115 記憶領域管理部
116 メモリインターフェース
120 不揮発性メモリ
121 システムデータ格納領域
122 データ格納領域
200 アクセス装置
以下に、本発明の実施の形態について添付の図面を参照しながら説明する。図1は、本実施の形態における不揮発性記憶システムの構成例を示している。図1の不揮発性記憶システムは、不揮発性記憶装置100及びアクセス装置200を有している。
不揮発性記憶装置100は、メモリコントローラ110、及び不揮発性メモリ120を含んでいる。
メモリコントローラ110は、アクセスインターフェース111、論物変換テーブル112、物理ブロック管理テーブル113、パーティション管理テーブル114、記憶領域管理部115、及びメモリインターフェース116を有する。
アクセスインターフェース111は、アクセス装置200とコマンドやデータを送受信するものである。
論物変換テーブル112は、論理ブロックアドレスに対応する物理ブロックアドレスを保持するテーブルである。「論理ブロック」とは、論理アドレス空間上で256kバイト(B)の単位に分けられたブロックのことである。
物理ブロック管理テーブル113は、不揮発性メモリ120内の各物理ブロックの使用状況を保持するテーブルである。
パーティション管理テーブル114は、不揮発性メモリ120に対して設定するパーティションの番号、及び各パーティションのサイズを保持するテーブルである。
記憶領域管理部115は、論物変換テーブル112、物理ブロック管理テーブル113及びパーティション管理テーブル114の更新を管理するとともに、これらテーブル112、113、及び114を用いて、データを読み書きする物理ブロックを決定するものである。
メモリインターフェース116は、不揮発性メモリ120からのデータの読出し、及び不揮発性メモリ120へのデータの書込みを制御するものである。
不揮発性メモリ120はフラッシュメモリであって、システムデータ格納領域121及びデータ格納領域122を含んでいる。システムデータ格納領域121は、不揮発性メモリ120を管理するために用いられるシステムデータを格納するものである。システムデータとして、以下のものがある。
(1)不揮発性メモリ120内の不良ブロックの位置や個数を示すデータ
(2)前述したテーブル112、テーブル113、テーブル114を揮発性メモリ(例えば、RAM)で構成する場合、不揮発性記憶装置100の電源投入後に、これらのテーブルを再構築するために必要となるアドレス管理データ
(3)格納データの誤り訂正符号のデータ
データ格納領域122は、アクセス装置200がアクセスする音楽データや映像データといったコンテンツデータ、及びファイルシステムのデータ等を格納するものである。コンテンツデータがFATファイルシステム等のファイルシステムによって管理される場合には、ファイルシステムのデータはデータ格納領域122に格納される。
アクセス装置200は、不揮発性記憶装置100に対してコマンドを送信して、データの読出し/書込みを行うものである。送信されるコマンドは、パーティションの番号、及びパーティション内での論理ブロックの位置を示す相対論理アドレス(RLA:Relative Logical Address)を含んでいる。
図2は、不揮発性メモリ120を示す模式図である。不揮発性メモリ120は、データの消去単位である物理ブロックを複数有している。物理ブロックのサイズや個数はフラッシュメモリの種類によって様々であるが、本実施の形態の不揮発性メモリ120は、例えば、PB0000〜PB1023の1024個の物理ブロックを有し、1つの物理ブロックは256kバイト(B)のデータを格納する。
次に、図3を用いて、論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の構成を説明する。図3は、テーブル112、113、114の対応関係を説明するための模式図である。
論物変換テーブル112は、例えば、論理ブロックLB0000からLB0999までの1000個の論理ブロックアドレスを保持している。不揮発性メモリ120は、1024個の物理ブロックを有しているが、その中には書込みができない不良ブロック等があるので、保持する論理ブロックアドレスの数を「1024」より少なく設定している。
論物変換テーブル112は、論理ブロックLB0000〜LB0005のそれぞれに対して、対応する物理ブロックアドレスを保持している。ここでは、例えば、論理ブロックLB0000には物理ブロックPB0001が、論理ブロックLB0001には物理ブロックPB0000が、それぞれ対応している。論理ブロックLB0006〜LB0999には対応する物理ブロックが存在しないので、物理ブロックの「未割当て」を意味する値を保持している。「未割当て」を示す値は、例えば、PB1024などの存在しない物理ブロックのアドレスとする。
物理ブロック管理テーブル113は、不揮発性メモリ120の各物理ブロックが、有効なデータを格納していない「空き」の状態であるか、有効なデータを格納している「使用中」の状態であるかを示す情報を保持している。例えば、論物変換テーブル112が保持する物理ブロックPB0000〜PB0003、PB0005、及びPB0007は「使用中」であり、その他の物理ブロックは「空き」である。
パーティション管理テーブル114は、パーティションの識別子であるパーティション番号PTn(n:0〜3の整数)、及びパーティション番号ごとにパーティションに含まれる論理ブロックの数を保持する。テーブル114は、4つのパーティションPT0〜PT3を保持しており、各パーティションに含まれる論理ブロックの数は、パーティションPT0では「2」、パーティションPT1では「3」、パーティションPT2では「0」、パーティションPT3では「1」である。
このようなテーブル112、及び114を用いて、記憶領域管理部115は、アクセス装置200が指定する論理ブロックを検出する。
図3を用いて、テーブル112の論理ブロックとテーブル114のパーティションとを対応させる方法を説明する。
例えば、アクセス装置200が、データの読み書きコマンドで、パーティションPT1及び相対論理アドレス「0」を指定したときを考える。本実施の形態において相対論理アドレスが示す値は0以上の整数であり、その値は、パーティション先頭の論理ブロックを0番目として順に数えたときに、指定する論理ブロックが何番目であるかを示している。ここで、アクセス装置200は、パーティションPT1の先頭の論理ブロックを指定している。なお、アクセス装置200は、データを読み書きするときに、サイズが「0」のパーティションを指定することはできない。
このとき記憶領域管理部115は、指定されたパーティションPT1より番号の若いパーティションのサイズを、パーティション管理テーブル114から全て検出する。ここで検出されるサイズは、パーティションPT0の「2」だけである。記憶領域管理部115は、このサイズ「2」に相対論理アドレス「0」を加えて、数値「2」を得る。記憶領域管理部115は、得られた数値「2」に基づいて、テーブル112の0番目の論理ブロックLB0000から数えて2番目である論理ブロックLB0002を検出する。これにより、アクセス装置200がパーティションPT1及び相対論理アドレス「0」で指定した論理ブロックは、論理ブロックLB0002となる。また、パーティションPT1の先頭の論理ブロックは、論理ブロックLB0002であることがわかる。
次に、アクセス装置200が、読み出しまたは書き込みコマンドで、パーティションPT1及び相対論理アドレス「2」を指定したときを考える。記憶領域管理部115は、同じ要領で数値「4」を得て、テーブル112の0番目の論理ブロックLB0000から数えて4番目である論理ブロックLB0004を検出する。この論理ブロックLB0004は、アクセス装置200が、パーティションPT1及び相対論理アドレス「2」で指定した論理ブロックである。ここで、パーティションPT1で指定できる相対論理アドレスの上限は、パーティションPT1のサイズより「1」小さい値「2」である。アクセス装置200が、パーティションPT1及び相対論理アドレス「2」で指定した論理ブロックは、パーティションPT1の終端の論理ブロックであり、パーティションPT1の終端の論理ブロックは、論理ブロックLB0004であることがわかる。
このように、記憶領域管理部115がパーティション管理テーブル114を用いることで、パーティションPT1には論理ブロックLB0002〜LB0004が対応することになる。同様にして、パーティションPT0には論理ブロックLB0000及びLB0001、パーティションPT3には論理ブロックLB0005が対応する。
以上のように本実施の形態では、データの読み書きの度に、パーティション番号及び相対論理アドレスを用いて、データの読み書き対象となる論理ブロックを検出する。
本実施の形態における不揮発性記憶システムの動作の一例を、図4〜図18を用いて説明する。まず、不揮発性記憶装置100の初期化処理について説明する。アクセス装置200は、電源投入時や不揮発性記憶装置100の装着時などに、初期化コマンドを送信する。図4は、アクセス装置200が不揮発性記憶装置100に初期化コマンドを送信したときの、不揮発性記憶装置100の動作フローである。
不揮発性記憶装置100が初期化コマンドを受信すると、記憶領域管理部115は、テーブル112、113、114を含む内部メモリのクリアや、不揮発性メモリ120の接続を確認して、ハードウェアを初期化する(S101)。その後、記憶領域管理部115は、不揮発性メモリ120のシステムデータ格納領域121に格納されているアドレス管理情報等を取得する(S102)。続いて記憶領域管理部115は、取得したアドレス管理情報をもとにして、内部メモリにテーブル112、113、及び114を作成し、初期化処理を完了する(S103)。
図5は、全てのパーティションのサイズが「0」であるときのテーブル112、113、及び114を示している。ここで、初期化処理で作成したテーブル112、113、及び114は、図5に示す状態であるとする。
まず、アクセス装置200は、パーティションのサイズを「0」より大きな値に変更する。アクセス装置200は、パーティションPT0のサイズを「2」に設定するパーティションサイズの変更コマンドを、不揮発性記憶装置100に送信する。不揮発性記憶装置100が変更コマンドを受信すると、記憶領域管理部115は、パーティションPT0のサイズが値「2」となるようにパーティション管理テーブル114を更新する。その結果、パーティション管理テーブル114は、図6に示す状態になる。図6において更新された部分には、アンダーラインを付している。以下、図6以外のテーブル112、113、及び114についても、同様にアンダーラインを付して、更新された部分を示す。
この後同様に、不揮発性記憶装置100が、パーティションPT1のサイズを値「3」に設定する変更コマンドをアクセス装置200から受信し、さらに、パーティションPT2のサイズを値「2」に、パーティションPT3のサイズを値「1」に設定する変更コマンドを順に受信する。これらのコマンドを受信すると、記憶領域管理部115は、パーティション管理テーブル114を図7に示す状態に更新する。
続いて、データ書込み処理を、図8のフローチャートを用いて説明する。アクセス装置200が不揮発性記憶装置100に対して、読み書きコマンドによってパーティションPT0の相対論理アドレスRLA「0」を指定すると、記憶領域管理部115は、指定されたパーティション番号と相対論理アドレスRLAを基にして、論理ブロックLB0000を取得する(S201)。
記憶領域管理部115は、論物変換テーブル112を参照して、論理ブロックLB0000に対応する物理ブロックを取得する(S202)。なお、図7の論物変換テーブル112では、論理ブロックLB0000に対応する物理ブロックは存在しない。
不揮発性記憶装置100は、任意の空き物理ブロック、例えば、物理ブロックPB0001を取得して、取得した物理ブロックPB0001を消去する(S203)。この後、消去した物理ブロックPB0001にアクセス装置からのデータを書き込む(S204)。ここで、アクセス装置200から受信した書込みデータのサイズが、物理ブロックPB0001のサイズである256kBよりも小さい場合には、S202で検出した物理ブロックのデータをコピーする。
記憶領域管理部115は、論理ブロックLB0000に物理ブロックPB0001が対応するように、論物変換テーブル112を更新する(S205)。これによって論物変換テーブル112は、図9に示す状態になる。さらに記憶領域管理部115は、図9に示すように物理ブロック管理テーブル113を更新し、物理ブロックPB0001の状態を「使用中」にする(S205)。
記憶領域管理部115は、S205でのテーブル112及び113の更新に基づいて、システムデータ格納領域121のアドレス管理情報等を更新する(S206)。これによって、不揮発性記憶装置100の電源を再投入したときにもS205での変更が有効となる。
続いて、アクセス装置200から受信した書込みデータを全て書込んだか否かを判定する(S207)。全てのデータを書込んだ場合には、データ書き込み処理を終了する。書込みデータが残っている場合には、S202に戻って、連続する次の論理ブロックにデータを書き込む。
次のデータ書き込み処理において、アクセス装置200が、パーティションPT1の相対論理アドレスRLAを「1」と指定すると、同様の処理によって、記憶領域管理部115は、データの書き込み先として論理ブロックLB0003を取得する。この場合も、論理ブロックLB0003に対応する物理ブロックは存在しないので、不揮発性記憶装置100は、例えば物理ブロックPB0005を取得して、アクセス装置からのデータを書き込み、テーブル112及び113を更新する。更新後のテーブル112及び113は、図10に示す状態となる。
アクセス装置200がさらにデータを書き込み、テーブル112、113、及び114が、図11に示す状態になったとする。図11は、各パーティションの全ての論理ブロックに物理ブロックが対応した状態を示している。
図12は、あるパーティションのサイズを「0」にするときの動作を説明するフローチャートである。アクセス装置200が、パーティションPT2のサイズを「0」に設定するサイズ変更コマンドを送信した場合を、図12及び図13を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、テーブル112及び114を参照し、パーティションPT2の論理ブロックに対応する物理ブロックPB0004およびPB0037を検出する(S301)。物理ブロックPB0004およびPB0037の状態が「空き」となるように、物理ブロック管理テーブル113を更新する(S302)。この更新によって、物理ブロック管理テーブル113は、図13に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT2よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションPT3の論理ブロックアドレスLB0007に対応する物理ブロックアドレスPB0002を、パーティションPT2のサイズである論理ブロック2つ分だけ、アドレスが小さい論理ブロックと対応するように移動する(S303)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0005に対応する物理ブロックアドレスが、PB0004からPB0002に変更される。また、物理ブロックアドレスPB0037が、論理ブロックアドレスLB0006に対応した状態で残っているので、アドレスLB0006に対する物理ブロックアドレスを「未割当て」を示す値に変更する。また、論理ブロックアドレスLB0007に対する物理ブロックアドレスを「未割当て」を示す値に変更する。この変更によって、論物変換テーブル112は、図13に示す状態となる。
さらに記憶領域管理部115は、パーティションPT2のサイズが値「0」となるように、パーティション管理テーブル114を更新する(S304)。この更新によって、パーティション管理テーブル114は、図13に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S305)。これによって、不揮発性記憶装置100の電源を再投入したときにもS301からS304で行った変更が有効になる。
図14は、不揮発性記憶装置100がアクセス装置200からのサイズ変更コマンドを受信したときの、動作を示すフローチャートである。アクセス装置200が、パーティションPT1のサイズを「3」から「4」に変更するサイズ変更コマンドを送信した場合を、図14及び図15を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティション管理テーブル114を参照して、パーティションPT1のサイズ「3」を変更前サイズとして認識し、この変更前サイズを通知された変更後サイズ「4」と比較して、パーティションサイズの「縮小」であるか否かを判断する(S401)。ここでは、変更後サイズが変更前サイズよりも大きいので、記憶領域管理部115は、パーティションPT1のサイズの「拡大」であると判断する。
記憶領域管理部115は、パーティションPT1のサイズが変更後サイズである値「4」となるように、パーティション管理テーブル114を更新する(S402)。この更新によって、パーティション管理テーブル114は、図15に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT1よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここで記憶領域管理部115は、パーティションPT1のサイズ増加分である論理ブロック1つ分だけアドレスが大きくなるように、パーティションPT3の論理ブロックアドレスLB0005に対応する物理ブロックアドレスPB0002を移動する(S403)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0006に物理ブロックアドレスPB0002が対応する。しかし、アドレスLB0005にもアドレスPB0002が対応した状態となっているため、アドレスLB0005に対する物理ブロックのアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図15に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S404)。これによって、不揮発性記憶装置100の電源を再投入したときにもS402からS404で行った変更が有効になる。
その後、アクセス装置200が、パーティションPT0のサイズを「2」から「1」に変更するサイズ変更コマンドを送信した場合を、図14及び図16を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティションPT0に対応する論理ブロックのうち最後尾の論理ブロックLB0001を検出する(S405)。
その後記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックアドレスLB0001から順に先頭の論理ブロックに向かって、変更前サイズと変更後サイズの差である論理ブロック1つ分だけ、論理ブロックアドレスを検出する(S406)。ここでは、アドレスLB0001だけを検出する。
さらに記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックLB0001に対応する物理ブロックPB0000を検出する(S407)。その後記憶領域管理部115は、検出された物理ブロックPB0000を「空き」となるように更新する(S408)。
記憶領域管理部115は、パーティションPT0のサイズが変更後サイズである値「1」となるように、パーティション管理テーブル114を更新する(S409)。この更新によって、パーティション管理テーブル114は、図16に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT0よりも後のパーティションに対応する物理ブロックを移動する。ここでは、パーティションPT1の論理ブロックアドレスLB0002〜LB0005に対応する物理ブロックアドレス及び「未割当て」情報、ならびにパーティションPT3の論理ブロックアドレスLB0006に対応する物理ブロックアドレスを、パーティションPT0のサイズ減少分である論理ブロック1つ分だけ、アドレスが小さい論理ブロックアドレスと対応するように移動する(S410)。さらにアドレスLB0006に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図16に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S404)。これによって、不揮発性記憶装置100の電源を再投入したときにもS405からS410で行った変更が有効になる。
次に、アクセス装置200が、パーティションPT2のサイズを「0」から「3」に変更するサイズ変更コマンドを送信した場合を、図17及び図18を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティションPT2のサイズが「3」となるように、パーティション管理テーブル114を更新する(S501)。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT2よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションPT3の論理ブロックアドレスLB0005に対応する物理ブロックアドレスPB0002を、パーティションPT2のサイズ増加分である論理ブロック3つ分だけ、アドレスが大きい論理ブロックアドレスと対応するように移動する(S502)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0008に物理ブロックアドレスPB0002が対応する。しかし、アドレスLB0005にもアドレスPB0002が対応した状態となっているため、アドレスLB0005に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図18に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S503)。これによって、不揮発性記憶装置100の電源を再投入したときにもS501及びS502で行った変更が有効になる。
最後に、アクセス装置200が、不揮発性記憶装置100からデータ読み出す処理について、図19を用いて説明する。データ読み出し処理では、既に説明したように、記憶領域管理部115は、アクセス装置200から受信したパーティション番号及び相対論理アドレスを用いて、アクセスする論理アドレスを検出する(S601)。さらに記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックに対応する物理ブロックを検出する(S602)。このようにして検出された物理ブロックにアクセスして、データを読み出す(S603)。
記憶領域管理部115は、アクセス装置200から指定されたデータを全て読出したか否かを判定する(S604)。全て読み出した場合にはデータ読み出し処理を終了する。読出しデータが残っている場合には、S602に戻って、連続する次の論理ブロックからデータを読み出す。
以上が、本発明の実施の形態についての説明である。本実施の形態では、パーティションのサイズ変更を行う度に、説明した方法で論物変換テーブル112の更新を行なうので、パーティションに対応する論理ブロックが、論物変換テーブル112上で断片化するのを防止することができる。本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体において特に有効である。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施の方法及び手段を変更することができる。以下のような場合も本発明に含まれる。
(1)本実施の形態において、不揮発性メモリ120としてフラッシュメモリを用いたが、これに限らず論理アドレスと物理アドレスを変換して管理する必要のある不揮発性メモリであれば同様に用いることができ、同様の効果を得ることができる。
(2)本実施の形態において、論理ブロックのサイズや個数、物理ブロックのサイズや個数、パーティションの個数などの数値は1例にすぎず、異なるサイズや個数であっても同様の効果を得ることができる。
(3)本実施の形態において、不揮発性記憶装置100が受信するコマンドの種類や引数は1例にすぎない。例えば、本実施の形態ではデータ書込み処理を行う度に、データを書き込む対象となるパーティションPTnの番号を指定する形式を用いたが、該パーティションPTnへ最初のデータを書き込むときにのみパーティション番号を指定しても同様の効果を得ることができる。
メモリコントローラ110が、データ格納領域122のパーティションに作成されたファイルシステム情報を管理するための、ファイルシステム管理部を備えている場合には、パーティション内における相対論理アドレスRLAを指定する必要はない。その代わりに、ファイル名FN、ファイル内オフセットFO、サイズSZ等があれば、ファイルシステム管理部がそれらを基に相対論理アドレスRLAを算出し、同様の効果を得ることができる。
(4)本実施の形態におけるメモリコントローラ110は、物理的にはマイコン(CPU)及びそのプログラムを格納するROM、ワーク用RAM、論物変換テーブル112や物理ブロック管理テーブル113やパーティション管理テーブル114用のRAM、不揮発性メモリ120にアクセスするための専用ハードウェア等から構成される。メモリコントローラ110を構成するこれらハードウェアは、1チップに集積された形で不揮発性記憶装置に実装されていてもよい。
本発明は、デジタルAV機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量の情報記録媒体に適用できる。特に、本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体に好適である。
本発明は、不揮発性メモリを制御するメモリコントローラ、メモリコントローラを有する不揮発性記憶装置、及び、不揮発性記憶装置とアクセス装置とを有する不揮発性記憶システムに関する。
音楽コンテンツや、映像データなどのデジタルデータを格納する媒体には、半導体記録媒体、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。特に、半導体記録媒体は、小型かつ軽量であり、近年、大容量化、高速化、低価格化が急速に進んでいるので、ディジタルスチルカメラ、携帯電話、携帯音楽プレーヤ、テレビ、DVDレコーダをはじめとする様々な機器で利用できる。代表的な半導体記録媒体の1つであるSDメモリカード(登録商標)は、最近では8ギガバイト、16ギガバイトなどの非常に大きな容量のものが市販されている。このように不揮発性記憶装置の記憶容量が増大すると、一般的に1つの不揮発性記憶装置を複数のアプリケーションで使用するケースが増加する。
このとき、アプリケーション毎にデータの格納領域を区分するために、物理的には1つの不揮発性記憶装置の記憶領域を論理空間上で複数に分割し、分割された論理空間上の記憶領域(以下、「パーティション」という)をアプリケーション毎に割当てることができる。特許文献1は、不揮発性記憶装置に構築されたパーティションにデータが格納された状態において、パーティションの作成、削除、サイズ変更を行うための方法を開示している。
特開平5−81091号公報
上記従来技術では、現在使用中のパーティションに関する情報を格納する第1のテーブルと、パーティション情報のうち現在使用中のパーティションに関する情報を除いた未使用情報を格納する第2のテーブルとを用いて、パーティションの単位を指示するパーティション情報を、管理している。上記従来技術は、パーティションの作成、削除、サイズ変更のいずれかの処理を実施する度に第1のテーブル及び第2のテーブルを更新する。
パーティションの作成、削除、サイズ変更が繰り返し行われると、第1のテーブル及び第2のテーブルに登録されたパーティションが論理空間上で断片化された状態となる。このようなパーティションの断片化は、現在使用中のパーティションにおける論理的なアドレス(以下、「論理アドレス」という)を物理的なアドレス(以下、「物理アドレス」という)に変換するための論理アドレス/物理アドレス変換処理(以下、「論理/物理変換処理」という)を複雑化する。このことは、不揮発性記憶装置の主たる機能である読出し及び書込みの処理速度が定常的に低下するという問題を引き起こす。
本発明は上記の問題を解決するものであり、その目的は、パーティションのサイズ変更を繰り返してもパーティションを断片化しないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することにある。
この課題を解決するために本発明のメモリコントローラは、記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を具備するものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
この課題を解決するために本発明の不揮発性記憶装置は、記憶領域の論理アドレス空間が分割された不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を具備する。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
この課題を解決するために本発明の不揮発性記憶システムは、不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムである。前記不揮発性記憶装置は、不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を備える。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
本発明によれば、パーティションのサイズ変更を行う度に論物変換テーブルを更新するので、論物変換テーブルにおけるパーティションの断片化を防止することができる。その結果として、論理/物理変換処理の複雑化を回避できるため、本発明は、パーティションのサイズ変更を繰り返すことによる、読出し及び書込みの処理速度の低下を防ぐことができる。
従って、パーティションのサイズ変更を繰り返しても、読出し及び書込みの処理速度の低下を引き起こさないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することができる。
本発明の実施の形態における、不揮発性記憶システムの構成を示すブロック図である。 本発明の実施の形態における、不揮発性メモリ120の物理ブロックの構成を示す図である。 本発明の実施の形態における、論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の構成例を示す図である。 初期化コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 初期状態の論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の状態を示す図である。 パーティションPT0のサイズを設定したときの、テーブル112、113、及び114の状態を示す図である。 パーティションPT1、2、3のサイズを設定したときの、テーブル112、113、及び114の状態を示す図である。 書込みコマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT0への書込み後のテーブル112、113、及び114の状態を示す図である。 パーティションPT1への書込み後のテーブル112、113、及び114の状態を示す図である。 全パーティションへの書込み後のテーブル112、113、及び114の状態を示す図である。 パーティションのサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT2のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティションサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT1のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティションPT0のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 パーティション作成コマンド受信後の不揮発性記憶装置の動作フローを示す図である。 パーティションPT2のサイズ変更後のテーブル112、113、及び114の状態を示す図である。 読出しコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
以下に、本発明の実施の形態について添付の図面を参照しながら説明する。図1は、本実施の形態における不揮発性記憶システムの構成例を示している。図1の不揮発性記憶システムは、不揮発性記憶装置100及びアクセス装置200を有している。
不揮発性記憶装置100は、メモリコントローラ110、及び不揮発性メモリ120を含んでいる。
メモリコントローラ110は、アクセスインターフェース111、論物変換テーブル112、物理ブロック管理テーブル113、パーティション管理テーブル114、記憶領域管理部115、及びメモリインターフェース116を有する。
アクセスインターフェース111は、アクセス装置200とコマンドやデータを送受信するものである。
論物変換テーブル112は、論理ブロックアドレスに対応する物理ブロックアドレスを保持するテーブルである。「論理ブロック」とは、論理アドレス空間上で256kバイト(B)の単位に分けられたブロックのことである。
物理ブロック管理テーブル113は、不揮発性メモリ120内の各物理ブロックの使用状況を保持するテーブルである。
パーティション管理テーブル114は、不揮発性メモリ120に対して設定するパーティションの番号、及び各パーティションのサイズを保持するテーブルである。
記憶領域管理部115は、論物変換テーブル112、物理ブロック管理テーブル113及びパーティション管理テーブル114の更新を管理するとともに、これらテーブル112、113、及び114を用いて、データを読み書きする物理ブロックを決定するものである。
メモリインターフェース116は、不揮発性メモリ120からのデータの読出し、及び不揮発性メモリ120へのデータの書込みを制御するものである。
不揮発性メモリ120はフラッシュメモリであって、システムデータ格納領域121及びデータ格納領域122を含んでいる。システムデータ格納領域121は、不揮発性メモリ120を管理するために用いられるシステムデータを格納するものである。システムデータとして、以下のものがある。
(1)不揮発性メモリ120内の不良ブロックの位置や個数を示すデータ
(2)前述したテーブル112、テーブル113、テーブル114を揮発性メモリ(例えば、RAM)で構成する場合、不揮発性記憶装置100の電源投入後に、これらのテーブルを再構築するために必要となるアドレス管理データ
(3)格納データの誤り訂正符号のデータ
データ格納領域122は、アクセス装置200がアクセスする音楽データや映像データといったコンテンツデータ、及びファイルシステムのデータ等を格納するものである。コンテンツデータがFATファイルシステム等のファイルシステムによって管理される場合には、ファイルシステムのデータはデータ格納領域122に格納される。
アクセス装置200は、不揮発性記憶装置100に対してコマンドを送信して、データの読出し/書込みを行うものである。送信されるコマンドは、パーティションの番号、及びパーティション内での論理ブロックの位置を示す相対論理アドレス(RLA:Relative Logical Address)を含んでいる。
図2は、不揮発性メモリ120を示す模式図である。不揮発性メモリ120は、データの消去単位である物理ブロックを複数有している。物理ブロックのサイズや個数はフラッシュメモリの種類によって様々であるが、本実施の形態の不揮発性メモリ120は、例えば、PB0000〜PB1023の1024個の物理ブロックを有し、1つの物理ブロックは256kバイト(B)のデータを格納する。
次に、図3を用いて、論物変換テーブル112、物理ブロック管理テーブル113、及びパーティション管理テーブル114の構成を説明する。図3は、テーブル112、113、114の対応関係を説明するための模式図である。
論物変換テーブル112は、例えば、論理ブロックLB0000からLB0999までの1000個の論理ブロックアドレスを保持している。不揮発性メモリ120は、1024個の物理ブロックを有しているが、その中には書込みができない不良ブロック等があるので、保持する論理ブロックアドレスの数を「1024」より少なく設定している。
論物変換テーブル112は、論理ブロックLB0000〜LB0005のそれぞれに対して、対応する物理ブロックアドレスを保持している。ここでは、例えば、論理ブロックLB0000には物理ブロックPB0001が、論理ブロックLB0001には物理ブロックPB0000が、それぞれ対応している。論理ブロックLB0006〜LB0999には対応する物理ブロックが存在しないので、物理ブロックの「未割当て」を意味する値を保持している。「未割当て」を示す値は、例えば、PB1024などの存在しない物理ブロックのアドレスとする。
物理ブロック管理テーブル113は、不揮発性メモリ120の各物理ブロックが、有効なデータを格納していない「空き」の状態であるか、有効なデータを格納している「使用中」の状態であるかを示す情報を保持している。例えば、論物変換テーブル112が保持する物理ブロックPB0000〜PB0003、PB0005、及びPB0007は「使用中」であり、その他の物理ブロックは「空き」である。
パーティション管理テーブル114は、パーティションの識別子であるパーティション番号PTn(n:0〜3の整数)、及びパーティション番号ごとにパーティションに含まれる論理ブロックの数を保持する。テーブル114は、4つのパーティションPT0〜PT3を保持しており、各パーティションに含まれる論理ブロックの数は、パーティションPT0では「2」、パーティションPT1では「3」、パーティションPT2では「0」、パーティションPT3では「1」である。
このようなテーブル112、及び114を用いて、記憶領域管理部115は、アクセス装置200が指定する論理ブロックを検出する。
図3を用いて、テーブル112の論理ブロックとテーブル114のパーティションとを対応させる方法を説明する。
例えば、アクセス装置200が、データの読み書きコマンドで、パーティションPT1及び相対論理アドレス「0」を指定したときを考える。本実施の形態において相対論理アドレスが示す値は0以上の整数であり、その値は、パーティション先頭の論理ブロックを0番目として順に数えたときに、指定する論理ブロックが何番目であるかを示している。ここで、アクセス装置200は、パーティションPT1の先頭の論理ブロックを指定している。なお、アクセス装置200は、データを読み書きするときに、サイズが「0」のパーティションを指定することはできない。
このとき記憶領域管理部115は、指定されたパーティションPT1より番号の若いパーティションのサイズを、パーティション管理テーブル114から全て検出する。ここで検出されるサイズは、パーティションPT0の「2」だけである。記憶領域管理部115は、このサイズ「2」に相対論理アドレス「0」を加えて、数値「2」を得る。記憶領域管理部115は、得られた数値「2」に基づいて、テーブル112の0番目の論理ブロックLB0000から数えて2番目である論理ブロックLB0002を検出する。これにより、アクセス装置200がパーティションPT1及び相対論理アドレス「0」で指定した論理ブロックは、論理ブロックLB0002となる。また、パーティションPT1の先頭の論理ブロックは、論理ブロックLB0002であることがわかる。
次に、アクセス装置200が、読み出しまたは書き込みコマンドで、パーティションPT1及び相対論理アドレス「2」を指定したときを考える。記憶領域管理部115は、同じ要領で数値「4」を得て、テーブル112の0番目の論理ブロックLB0000から数えて4番目である論理ブロックLB0004を検出する。この論理ブロックLB0004は、アクセス装置200が、パーティションPT1及び相対論理アドレス「2」で指定した論理ブロックである。ここで、パーティションPT1で指定できる相対論理アドレスの上限は、パーティションPT1のサイズより「1」小さい値「2」である。アクセス装置200が、パーティションPT1及び相対論理アドレス「2」で指定した論理ブロックは、パーティションPT1の終端の論理ブロックであり、パーティションPT1の終端の論理ブロックは、論理ブロックLB0004であることがわかる。
このように、記憶領域管理部115がパーティション管理テーブル114を用いることで、パーティションPT1には論理ブロックLB0002〜LB0004が対応することになる。同様にして、パーティションPT0には論理ブロックLB0000及びLB0001、パーティションPT3には論理ブロックLB0005が対応する。
以上のように本実施の形態では、データの読み書きの度に、パーティション番号及び相対論理アドレスを用いて、データの読み書き対象となる論理ブロックを検出する。
本実施の形態における不揮発性記憶システムの動作の一例を、図4〜図18を用いて説明する。まず、不揮発性記憶装置100の初期化処理について説明する。アクセス装置200は、電源投入時や不揮発性記憶装置100の装着時などに、初期化コマンドを送信する。図4は、アクセス装置200が不揮発性記憶装置100に初期化コマンドを送信したときの、不揮発性記憶装置100の動作フローである。
不揮発性記憶装置100が初期化コマンドを受信すると、記憶領域管理部115は、テーブル112、113、114を含む内部メモリのクリアや、不揮発性メモリ120の接続を確認して、ハードウェアを初期化する(S101)。その後、記憶領域管理部115は、不揮発性メモリ120のシステムデータ格納領域121に格納されているアドレス管理情報等を取得する(S102)。続いて記憶領域管理部115は、取得したアドレス管理情報をもとにして、内部メモリにテーブル112、113、及び114を作成し、初期化処理を完了する(S103)。
図5は、全てのパーティションのサイズが「0」であるときのテーブル112、113、及び114を示している。ここで、初期化処理で作成したテーブル112、113、及び114は、図5に示す状態であるとする。
まず、アクセス装置200は、パーティションのサイズを「0」より大きな値に変更する。アクセス装置200は、パーティションPT0のサイズを「2」に設定するパーティションサイズの変更コマンドを、不揮発性記憶装置100に送信する。不揮発性記憶装置100が変更コマンドを受信すると、記憶領域管理部115は、パーティションPT0のサイズが値「2」となるようにパーティション管理テーブル114を更新する。その結果、パーティション管理テーブル114は、図6に示す状態になる。図6において更新された部分には、アンダーラインを付している。以下、図6以外のテーブル112、113、及び114についても、同様にアンダーラインを付して、更新された部分を示す。
この後同様に、不揮発性記憶装置100が、パーティションPT1のサイズを値「3」に設定する変更コマンドをアクセス装置200から受信し、さらに、パーティションPT2のサイズを値「2」に、パーティションPT3のサイズを値「1」に設定する変更コマンドを順に受信する。これらのコマンドを受信すると、記憶領域管理部115は、パーティション管理テーブル114を図7に示す状態に更新する。
続いて、データ書込み処理を、図8のフローチャートを用いて説明する。アクセス装置200が不揮発性記憶装置100に対して、読み書きコマンドによってパーティションPT0の相対論理アドレスRLA「0」を指定すると、記憶領域管理部115は、指定されたパーティション番号と相対論理アドレスRLAを基にして、論理ブロックLB0000を取得する(S201)。
記憶領域管理部115は、論物変換テーブル112を参照して、論理ブロックLB0000に対応する物理ブロックを取得する(S202)。なお、図7の論物変換テーブル112では、論理ブロックLB0000に対応する物理ブロックは存在しない。
不揮発性記憶装置100は、任意の空き物理ブロック、例えば、物理ブロックPB0001を取得して、取得した物理ブロックPB0001を消去する(S203)。この後、消去した物理ブロックPB0001にアクセス装置からのデータを書き込む(S204)。ここで、アクセス装置200から受信した書込みデータのサイズが、物理ブロックPB0001のサイズである256kBよりも小さい場合には、S202で検出した物理ブロックのデータをコピーする。
記憶領域管理部115は、論理ブロックLB0000に物理ブロックPB0001が対応するように、論物変換テーブル112を更新する(S205)。これによって論物変換テーブル112は、図9に示す状態になる。さらに記憶領域管理部115は、図9に示すように物理ブロック管理テーブル113を更新し、物理ブロックPB0001の状態を「使用中」にする(S205)。
記憶領域管理部115は、S205でのテーブル112及び113の更新に基づいて、システムデータ格納領域121のアドレス管理情報等を更新する(S206)。これによって、不揮発性記憶装置100の電源を再投入したときにもS205での変更が有効となる。
続いて、アクセス装置200から受信した書込みデータを全て書込んだか否かを判定する(S207)。全てのデータを書込んだ場合には、データ書き込み処理を終了する。書込みデータが残っている場合には、S202に戻って、連続する次の論理ブロックにデータを書き込む。
次のデータ書き込み処理において、アクセス装置200が、パーティションPT1の相対論理アドレスRLAを「1」と指定すると、同様の処理によって、記憶領域管理部115は、データの書き込み先として論理ブロックLB0003を取得する。この場合も、論理ブロックLB0003に対応する物理ブロックは存在しないので、不揮発性記憶装置100は、例えば物理ブロックPB0005を取得して、アクセス装置からのデータを書き込み、テーブル112及び113を更新する。更新後のテーブル112及び113は、図10に示す状態となる。
アクセス装置200がさらにデータを書き込み、テーブル112、113、及び114が、図11に示す状態になったとする。図11は、各パーティションの全ての論理ブロックに物理ブロックが対応した状態を示している。
図12は、あるパーティションのサイズを「0」にするときの動作を説明するフローチャートである。アクセス装置200が、パーティションPT2のサイズを「0」に設定するサイズ変更コマンドを送信した場合を、図12及び図13を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、テーブル112及び114を参照し、パーティションPT2の論理ブロックに対応する物理ブロックPB0004およびPB0037を検出する(S301)。物理ブロックPB0004およびPB0037の状態が「空き」となるように、物理ブロック管理テーブル113を更新する(S302)。この更新によって、物理ブロック管理テーブル113は、図13に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT2よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションPT3の論理ブロックアドレスLB0007に対応する物理ブロックアドレスPB0002を、パーティションPT2のサイズである論理ブロック2つ分だけ、アドレスが小さい論理ブロックと対応するように移動する(S303)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0005に対応する物理ブロックアドレスが、PB0004からPB0002に変更される。また、物理ブロックアドレスPB0037が、論理ブロックアドレスLB0006に対応した状態で残っているので、アドレスLB0006に対する物理ブロックアドレスを「未割当て」を示す値に変更する。また、論理ブロックアドレスLB0007に対する物理ブロックアドレスを「未割当て」を示す値に変更する。この変更によって、論物変換テーブル112は、図13に示す状態となる。
さらに記憶領域管理部115は、パーティションPT2のサイズが値「0」となるように、パーティション管理テーブル114を更新する(S304)。この更新によって、パーティション管理テーブル114は、図13に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S305)。これによって、不揮発性記憶装置100の電源を再投入したときにもS301からS304で行った変更が有効になる。
図14は、不揮発性記憶装置100がアクセス装置200からのサイズ変更コマンドを受信したときの、動作を示すフローチャートである。アクセス装置200が、パーティションPT1のサイズを「3」から「4」に変更するサイズ変更コマンドを送信した場合を、図14及び図15を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティション管理テーブル114を参照して、パーティションPT1のサイズ「3」を変更前サイズとして認識し、この変更前サイズを通知された変更後サイズ「4」と比較して、パーティションサイズの「縮小」であるか否かを判断する(S401)。ここでは、変更後サイズが変更前サイズよりも大きいので、記憶領域管理部115は、パーティションPT1のサイズの「拡大」であると判断する。
記憶領域管理部115は、パーティションPT1のサイズが変更後サイズである値「4」となるように、パーティション管理テーブル114を更新する(S402)。この更新によって、パーティション管理テーブル114は、図15に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT1よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここで記憶領域管理部115は、パーティションPT1のサイズ増加分である論理ブロック1つ分だけアドレスが大きくなるように、パーティションPT3の論理ブロックアドレスLB0005に対応する物理ブロックアドレスPB0002を移動する(S403)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0006に物理ブロックアドレスPB0002が対応する。しかし、アドレスLB0005にもアドレスPB0002が対応した状態となっているため、アドレスLB0005に対する物理ブロックのアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図15に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S404)。これによって、不揮発性記憶装置100の電源を再投入したときにもS402からS404で行った変更が有効になる。
その後、アクセス装置200が、パーティションPT0のサイズを「2」から「1」に変更するサイズ変更コマンドを送信した場合を、図14及び図16を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティションPT0に対応する論理ブロックのうち最後尾の論理ブロックLB0001を検出する(S405)。
その後記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックアドレスLB0001から順に先頭の論理ブロックに向かって、変更前サイズと変更後サイズの差である論理ブロック1つ分だけ、論理ブロックアドレスを検出する(S406)。ここでは、アドレスLB0001だけを検出する。
さらに記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックLB0001に対応する物理ブロックPB0000を検出する(S407)。その後記憶領域管理部115は、検出された物理ブロックPB0000を「空き」となるように更新する(S408)。
記憶領域管理部115は、パーティションPT0のサイズが変更後サイズである値「1」となるように、パーティション管理テーブル114を更新する(S409)。この更新によって、パーティション管理テーブル114は、図16に示す状態となる。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT0よりも後のパーティションに対応する物理ブロックを移動する。ここでは、パーティションPT1の論理ブロックアドレスLB0002〜LB0005に対応する物理ブロックアドレス及び「未割当て」情報、ならびにパーティションPT3の論理ブロックアドレスLB0006に対応する物理ブロックアドレスを、パーティションPT0のサイズ減少分である論理ブロック1つ分だけ、アドレスが小さい論理ブロックアドレスと対応するように移動する(S410)。さらにアドレスLB0006に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図16に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S404)。これによって、不揮発性記憶装置100の電源を再投入したときにもS405からS410で行った変更が有効になる。
次に、アクセス装置200が、パーティションPT2のサイズを「0」から「3」に変更するサイズ変更コマンドを送信した場合を、図17及び図18を用いて説明する。不揮発性記憶装置100がサイズ変更コマンドを受信すると、記憶領域管理部115は、パーティションPT2のサイズが「3」となるように、パーティション管理テーブル114を更新する(S501)。
さらに記憶領域管理部115は、論物変換テーブル112において、パーティションPT2よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションPT3の論理ブロックアドレスLB0005に対応する物理ブロックアドレスPB0002を、パーティションPT2のサイズ増加分である論理ブロック3つ分だけ、アドレスが大きい論理ブロックアドレスと対応するように移動する(S502)。その結果、論物変換テーブル112では、論理ブロックアドレスLB0008に物理ブロックアドレスPB0002が対応する。しかし、アドレスLB0005にもアドレスPB0002が対応した状態となっているため、アドレスLB0005に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル112は、図18に示す状態となる。
これに続いて記憶領域管理部115は、システムデータ格納領域121のアドレス管理情報等の更新を行う(S503)。これによって、不揮発性記憶装置100の電源を再投入したときにもS501及びS502で行った変更が有効になる。
最後に、アクセス装置200が、不揮発性記憶装置100からデータ読み出す処理について、図19を用いて説明する。データ読み出し処理では、既に説明したように、記憶領域管理部115は、アクセス装置200から受信したパーティション番号及び相対論理アドレスを用いて、アクセスする論理アドレスを検出する(S601)。さらに記憶領域管理部115は、論物変換テーブル112を用いて、検出した論理ブロックに対応する物理ブロックを検出する(S602)。このようにして検出された物理ブロックにアクセスして、データを読み出す(S603)。
記憶領域管理部115は、アクセス装置200から指定されたデータを全て読出したか否かを判定する(S604)。全て読み出した場合にはデータ読み出し処理を終了する。読出しデータが残っている場合には、S602に戻って、連続する次の論理ブロックからデータを読み出す。
以上が、本発明の実施の形態についての説明である。本実施の形態では、パーティションのサイズ変更を行う度に、説明した方法で論物変換テーブル112の更新を行なうので、パーティションに対応する論理ブロックが、論物変換テーブル112上で断片化するのを防止することができる。本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体において特に有効である。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施の方法及び手段を変更することができる。以下のような場合も本発明に含まれる。
(1)本実施の形態において、不揮発性メモリ120としてフラッシュメモリを用いたが、これに限らず論理アドレスと物理アドレスを変換して管理する必要のある不揮発性メモリであれば同様に用いることができ、同様の効果を得ることができる。
(2)本実施の形態において、論理ブロックのサイズや個数、物理ブロックのサイズや個数、パーティションの個数などの数値は1例にすぎず、異なるサイズや個数であっても同様の効果を得ることができる。
(3)本実施の形態において、不揮発性記憶装置100が受信するコマンドの種類や引数は1例にすぎない。例えば、本実施の形態ではデータ書込み処理を行う度に、データを書き込む対象となるパーティションPTnの番号を指定する形式を用いたが、該パーティションPTnへ最初のデータを書き込むときにのみパーティション番号を指定しても同様の効果を得ることができる。
メモリコントローラ110が、データ格納領域122のパーティションに作成されたファイルシステム情報を管理するための、ファイルシステム管理部を備えている場合には、パーティション内における相対論理アドレスRLAを指定する必要はない。その代わりに、ファイル名FN、ファイル内オフセットFO、サイズSZ等があれば、ファイルシステム管理部がそれらを基に相対論理アドレスRLAを算出し、同様の効果を得ることができる。
(4)本実施の形態におけるメモリコントローラ110は、物理的にはマイコン(CPU)及びそのプログラムを格納するROM、ワーク用RAM、論物変換テーブル112や物理ブロック管理テーブル113やパーティション管理テーブル114用のRAM、不揮発性メモリ120にアクセスするための専用ハードウェア等から構成される。メモリコントローラ110を構成するこれらハードウェアは、1チップに集積された形で不揮発性記憶装置に実装されていてもよい。
本発明は、デジタルAV機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量の情報記録媒体に適用できる。特に、本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体に好適である。
100 不揮発性記憶装置
110 メモリコントローラ
111 アクセスインターフェース
112 論物変換テーブル
113 空き物理ブロック管理テーブル
114 パーティション管理テーブル
115 記憶領域管理部
116 メモリインターフェース
120 不揮発性メモリ
121 システムデータ格納領域
122 データ格納領域
200 アクセス装置

Claims (9)

  1. 記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、
    前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
    前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
    外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
    前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
    を具備するメモリコントローラ。
  2. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項1に記載のメモリコントローラ。
  3. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項1に記載のメモリコントローラ。
  4. 記憶領域の論理アドレス空間が分割された不揮発性メモリと、
    前記不揮発性メモリにアクセスするメモリコントローラと、を具備する不揮発性記憶装置であって、
    前記メモリコントローラは、
    前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
    前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
    外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
    前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
    を備える不揮発性記憶装置。
  5. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項4に記載の不揮発性記憶装置。
  6. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項4に記載の不揮発性記憶装置。
  7. 不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムであって、
    前記不揮発性記憶装置は、
    不揮発性メモリと、
    前記不揮発性メモリにアクセスするメモリコントローラと、
    を備え、
    前記メモリコントローラは、
    前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
    前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
    外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
    前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
    を備える不揮発性記憶システム。
  8. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項7に記載の不揮発性記憶システム。
  9. 前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
    請求項7に記載の不揮発性記憶システム。
JP2009521051A 2008-01-30 2009-01-28 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム Withdrawn JPWO2009096180A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008018781 2008-01-30
JP2008018781 2008-01-30
PCT/JP2009/000334 WO2009096180A1 (ja) 2008-01-30 2009-01-28 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム

Publications (1)

Publication Number Publication Date
JPWO2009096180A1 true JPWO2009096180A1 (ja) 2011-05-26

Family

ID=40912536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521051A Withdrawn JPWO2009096180A1 (ja) 2008-01-30 2009-01-28 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム

Country Status (3)

Country Link
US (1) US20100318760A1 (ja)
JP (1) JPWO2009096180A1 (ja)
WO (1) WO2009096180A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5728982B2 (ja) * 2010-02-26 2015-06-03 株式会社Jvcケンウッド 処理装置および書込方法
JP2014504381A (ja) * 2010-05-19 2014-02-20 カムレッシュ ガンディー データオブジェクトの構成
US20120054734A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Device software upgrade using a dynamically sized partition
US10048865B2 (en) * 2014-10-24 2018-08-14 Microsoft Technology Licensing, Llc Disk partition stitching and rebalancing using a partition table
KR102464801B1 (ko) 2015-04-14 2022-11-07 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
US10198461B2 (en) * 2016-05-06 2019-02-05 Masergy Communications, Inc. Data storage system
US10402092B2 (en) * 2016-06-01 2019-09-03 Western Digital Technologies, Inc. Resizing namespaces for storage devices
US10642488B2 (en) 2017-10-23 2020-05-05 Micron Technology, Inc. Namespace size adjustment in non-volatile memory devices
US10503404B2 (en) 2017-10-23 2019-12-10 Micron Technology, Inc. Namespace management in non-volatile memory devices
US10437476B2 (en) 2017-10-23 2019-10-08 Micron Technology, Inc. Namespaces allocation in non-volatile memory devices
US11580034B2 (en) 2017-11-16 2023-02-14 Micron Technology, Inc. Namespace encryption in non-volatile memory devices
US10678703B2 (en) 2017-11-16 2020-06-09 Micron Technology, Inc. Namespace mapping structual adjustment in non-volatile memory devices
US10223254B1 (en) 2017-11-16 2019-03-05 Micron Technology, Inc. Namespace change propagation in non-volatile memory devices
US10915440B2 (en) 2017-11-16 2021-02-09 Micron Technology, Inc. Namespace mapping optimization in non-volatile memory devices
US10871907B2 (en) * 2018-12-31 2020-12-22 Micron Technology, Inc. Sequential data optimized sub-regions in storage devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60017870T2 (de) * 1999-10-21 2005-06-23 Matsushita Electric Industrial Co., Ltd., Kadoma Eine halbleiterspeicherkarte-zugangsanordnung, ein rechnerlesbares aufzeichnungsmedium, initialisierungsverfahren,und eine halbleiterspeicherkarte
US6901497B2 (en) * 2000-10-27 2005-05-31 Sony Computer Entertainment Inc. Partition creating method and deleting method
US7130979B2 (en) * 2002-08-29 2006-10-31 Micron Technology, Inc. Dynamic volume management
US20050015546A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Data storage system
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
JP2008102774A (ja) * 2006-10-19 2008-05-01 Sony Corp データ記憶装置及びデータ制御方法

Also Published As

Publication number Publication date
US20100318760A1 (en) 2010-12-16
WO2009096180A1 (ja) 2009-08-06

Similar Documents

Publication Publication Date Title
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US8103820B2 (en) Wear leveling method and controller using the same
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
US8606987B2 (en) Data writing method for flash memory and controller using the same
TWI607306B (zh) 用於非揮發性儲存裝置的再編址記憶體
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US20140372685A1 (en) Memory system, data storage device, user device and data management method thereof
US20130166830A1 (en) Block management method for flash memory and controller and storage sysetm using the same
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
US9037814B2 (en) Flash memory management method and flash memory controller and storage system using the same
US9268688B2 (en) Data management method, memory controller and memory storage apparatus
JP2009525511A (ja) 多段階誤り訂正方法及び装置
JP2018101411A (ja) データストレージデバイスおよびその操作方法
US8380920B2 (en) Flash storage device and data access method of flash memory
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
TWI601141B (zh) 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置
JP2007233838A (ja) メモリシステムの制御方法
JP4558054B2 (ja) メモリシステム
KR100479170B1 (ko) 메모리 억세스 제어장치 및 방법
JP2005092678A (ja) 半導体メモリカード及び不揮発性メモリのデータ消去処理方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
KR100538338B1 (ko) 플래시 메모리의 블록 균등 분산 기법 및 이를 이용한데이터 저장 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111024

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130423