(57)【要約】  １つ以上のパーティションのサイズを変更することができる不揮発性記憶装置において、パーティションのサイズ変更を繰り返しても、アドレス管理用テーブルが複雑化しない方法を提供する。パーティションのサイズを変更する際に、変更されたパーティション以後のパーティションに対応する物理ブロックアドレスを、サイズ変更分だけ移動して論理／物理変換テーブルを更新する。こうすることで、パーティションに対応する論理アドレスも、パーティションに対応していない論理アドレスも、常に連続した状態となる。
2009096180.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を具備するメモリコントローラ。
【請求項２】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項３】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項４】
記憶領域の論理アドレス空間が分割された不揮発性メモリと、
前記不揮発性メモリにアクセスするメモリコントローラと、を具備する不揮発性記憶装置であって、
前記メモリコントローラは、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を備える不揮発性記憶装置。
【請求項５】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項４に記載の不揮発性記憶装置。
【請求項６】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項４に記載の不揮発性記憶装置。
【請求項７】
不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムであって、
前記不揮発性記憶装置は、
不揮発性メモリと、
前記不揮発性メモリにアクセスするメモリコントローラと、
を備え、
前記メモリコントローラは、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を備える不揮発性記憶システム。
【請求項８】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項７に記載の不揮発性記憶システム。
【請求項９】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項７に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを制御するメモリコントローラ、メモリコントローラを有する不揮発性記憶装置、及び、不揮発性記憶装置とアクセス装置とを有する不揮発性記憶システムに関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データなどのデジタルデータを格納する媒体には、半導体記録媒体、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。特に、半導体記録媒体は、小型かつ軽量であり、近年、大容量化、高速化、低価格化が急速に進んでいるので、ディジタルスチルカメラ、携帯電話、携帯音楽プレーヤ、テレビ、ＤＶＤレコーダをはじめとする様々な機器で利用できる。代表的な半導体記録媒体の１つであるＳＤメモリカード（登録商標）は、最近では８ギガバイト、１６ギガバイトなどの非常に大きな容量のものが市販されている。このように不揮発性記憶装置の記憶容量が増大すると、一般的に１つの不揮発性記憶装置を複数のアプリケーションで使用するケースが増加する。
このとき、アプリケーション毎にデータの格納領域を区分するために、物理的には１つの不揮発性記憶装置の記憶領域を論理空間上で複数に分割し、分割された論理空間上の記憶領域（以下、「パーティション」という）をアプリケーション毎に割当てることができる。特許文献１は、不揮発性記憶装置に構築されたパーティションにデータが格納された状態において、パーティションの作成、削除、サイズ変更を行うための方法を開示している。
【特許文献１】特開平５−８１０９１号公報
【発明の開示】
【０００３】
（発明が解決しようとする課題）
上記従来技術では、現在使用中のパーティションに関する情報を格納する第１のテーブルと、パーティション情報のうち現在使用中のパーティションに関する情報を除いた未使用情報を格納する第２のテーブルとを用いて、パーティションの単位を指示するパーティション情報を、管理している。上記従来技術は、パーティションの作成、削除、サイズ変更のいずれかの処理を実施する度に第１のテーブル及び第２のテーブルを更新する。
パーティションの作成、削除、サイズ変更が繰り返し行われると、第１のテーブル及び第２のテーブルに登録されたパーティションが論理空間上で断片化された状態となる。このようなパーティションの断片化は、現在使用中のパーティションにおける論理的なアドレス（以下、「論理アドレス」という）を物理的なアドレス（以下、「物理アドレス」という）に変換するための論理アドレス／物理アドレス変換処理（以下、「論理／物理変換処理」という）を複雑化する。このことは、不揮発性記憶装置の主たる機能である読出し及び書込みの処理速度が定常的に低下するという問題を引き起こす。
【０００４】
本発明は上記の問題を解決するものであり、その目的は、パーティションのサイズ変更を繰り返してもパーティションを断片化しないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することにある。
（課題を解決するための手段）
この課題を解決するために本発明のメモリコントローラは、記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を具備するものである。
【０００５】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
【０００６】
この課題を解決するために本発明の不揮発性記憶装置は、記憶領域の論理アドレス空間が分割された不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を具備する。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
【０００７】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
【０００８】
この課題を解決するために本発明の不揮発性記憶システムは、不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムである。前記不揮発性記憶装置は、不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を備える。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
【０００９】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
（発明の効果）
本発明によれば、パーティションのサイズ変更を行う度に論物変換テーブルを更新するので、論物変換テーブルにおけるパーティションの断片化を防止することができる。その結果として、論理／物理変換処理の複雑化を回避できるため、本発明は、パーティションのサイズ変更を繰り返すことによる、読出し及び書込みの処理速度の低下を防ぐことができる。
【００１０】
従って、パーティションのサイズ変更を繰り返しても、読出し及び書込みの処理速度の低下を引き起こさないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における、不揮発性記憶システムの構成を示すブロック図である。
【図２】本発明の実施の形態における、不揮発性メモリ１２０の物理ブロックの構成を示す図である。
【図３】本発明の実施の形態における、論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の構成例を示す図である。
【図４】初期化コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図５】初期状態の論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の状態を示す図である。
【図６】パーティションＰＴ０のサイズを設定したときの、テーブル１１２、１１３、及び１１４の状態を示す図である。
【図７】パーティションＰＴ１、２、３のサイズを設定したときの、テーブル１１２、１１３、及び１１４の状態を示す図である。
【図８】書込みコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図９】パーティションＰＴ０への書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１０】パーティションＰＴ１への書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１１】全パーティションへの書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１２】パーティションのサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１３】パーティションＰＴ２のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１４】パーティションサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１５】パーティションＰＴ１のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１６】パーティションＰＴ０のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１７】パーティション作成コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１８】パーティションＰＴ２のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１９】読出しコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【符号の説明】
【００１２】
１００  不揮発性記憶装置
１１０  メモリコントローラ
１１１  アクセスインターフェース
１１２  論物変換テーブル
１１３  空き物理ブロック管理テーブル
１１４  パーティション管理テーブル
１１５  記憶領域管理部
１１６  メモリインターフェース
１２０  不揮発性メモリ
１２１  システムデータ格納領域
１２２  データ格納領域
２００  アクセス装置
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の実施の形態について添付の図面を参照しながら説明する。図１は、本実施の形態における不揮発性記憶システムの構成例を示している。図１の不揮発性記憶システムは、不揮発性記憶装置１００及びアクセス装置２００を有している。
不揮発性記憶装置１００は、メモリコントローラ１１０、及び不揮発性メモリ１２０を含んでいる。
メモリコントローラ１１０は、アクセスインターフェース１１１、論物変換テーブル１１２、物理ブロック管理テーブル１１３、パーティション管理テーブル１１４、記憶領域管理部１１５、及びメモリインターフェース１１６を有する。
アクセスインターフェース１１１は、アクセス装置２００とコマンドやデータを送受信するものである。【００１４】
論物変換テーブル１１２は、論理ブロックアドレスに対応する物理ブロックアドレスを保持するテーブルである。「論理ブロック」とは、論理アドレス空間上で２５６ｋバイト（Ｂ）の単位に分けられたブロックのことである。
物理ブロック管理テーブル１１３は、不揮発性メモリ１２０内の各物理ブロックの使用状況を保持するテーブルである。
パーティション管理テーブル１１４は、不揮発性メモリ１２０に対して設定するパーティションの番号、及び各パーティションのサイズを保持するテーブルである。
記憶領域管理部１１５は、論物変換テーブル１１２、物理ブロック管理テーブル１１３及びパーティション管理テーブル１１４の更新を管理するとともに、これらテーブル１１２、１１３、及び１１４を用いて、データを読み書きする物理ブロックを決定するものである。【００１５】
メモリインターフェース１１６は、不揮発性メモリ１２０からのデータの読出し、及び不揮発性メモリ１２０へのデータの書込みを制御するものである。
不揮発性メモリ１２０はフラッシュメモリであって、システムデータ格納領域１２１及びデータ格納領域１２２を含んでいる。システムデータ格納領域１２１は、不揮発性メモリ１２０を管理するために用いられるシステムデータを格納するものである。システムデータとして、以下のものがある。
（１）不揮発性メモリ１２０内の不良ブロックの位置や個数を示すデータ
（２）前述したテーブル１１２、テーブル１１３、テーブル１１４を揮発性メモリ（例えば、ＲＡＭ）で構成する場合、不揮発性記憶装置１００の電源投入後に、これらのテーブルを再構築するために必要となるアドレス管理データ
（３）格納データの誤り訂正符号のデータ
データ格納領域１２２は、アクセス装置２００がアクセスする音楽データや映像データといったコンテンツデータ、及びファイルシステムのデータ等を格納するものである。コンテンツデータがＦＡＴファイルシステム等のファイルシステムによって管理される場合には、ファイルシステムのデータはデータ格納領域１２２に格納される。【００１６】
アクセス装置２００は、不揮発性記憶装置１００に対してコマンドを送信して、データの読出し／書込みを行うものである。送信されるコマンドは、パーティションの番号、及びパーティション内での論理ブロックの位置を示す相対論理アドレス（ＲＬＡ：Ｒｅｌａｔｉｖｅ  Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）を含んでいる。
図２は、不揮発性メモリ１２０を示す模式図である。不揮発性メモリ１２０は、データの消去単位である物理ブロックを複数有している。物理ブロックのサイズや個数はフラッシュメモリの種類によって様々であるが、本実施の形態の不揮発性メモリ１２０は、例えば、ＰＢ００００〜ＰＢ１０２３の１０２４個の物理ブロックを有し、１つの物理ブロックは２５６ｋバイト（Ｂ）のデータを格納する。
次に、図３を用いて、論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の構成を説明する。図３は、テーブル１１２、１１３、１１４の対応関係を説明するための模式図である。【００１７】
論物変換テーブル１１２は、例えば、論理ブロックＬＢ００００からＬＢ０９９９までの１０００個の論理ブロックアドレスを保持している。不揮発性メモリ１２０は、１０２４個の物理ブロックを有しているが、その中には書込みができない不良ブロック等があるので、保持する論理ブロックアドレスの数を「１０２４」より少なく設定している。
論物変換テーブル１１２は、論理ブロックＬＢ００００〜ＬＢ０００５のそれぞれに対して、対応する物理ブロックアドレスを保持している。ここでは、例えば、論理ブロックＬＢ００００には物理ブロックＰＢ０００１が、論理ブロックＬＢ０００１には物理ブロックＰＢ００００が、それぞれ対応している。論理ブロックＬＢ０００６〜ＬＢ０９９９には対応する物理ブロックが存在しないので、物理ブロックの「未割当て」を意味する値を保持している。「未割当て」を示す値は、例えば、ＰＢ１０２４などの存在しない物理ブロックのアドレスとする。【００１８】
物理ブロック管理テーブル１１３は、不揮発性メモリ１２０の各物理ブロックが、有効なデータを格納していない「空き」の状態であるか、有効なデータを格納している「使用中」の状態であるかを示す情報を保持している。例えば、論物変換テーブル１１２が保持する物理ブロックＰＢ００００〜ＰＢ０００３、ＰＢ０００５、及びＰＢ０００７は「使用中」であり、その他の物理ブロックは「空き」である。
パーティション管理テーブル１１４は、パーティションの識別子であるパーティション番号ＰＴｎ（ｎ：０〜３の整数）、及びパーティション番号ごとにパーティションに含まれる論理ブロックの数を保持する。テーブル１１４は、４つのパーティションＰＴ０〜ＰＴ３を保持しており、各パーティションに含まれる論理ブロックの数は、パーティションＰＴ０では「２」、パーティションＰＴ１では「３」、パーティションＰＴ２では「０」、パーティションＰＴ３では「１」である。【００１９】
このようなテーブル１１２、及び１１４を用いて、記憶領域管理部１１５は、アクセス装置２００が指定する論理ブロックを検出する。
図３を用いて、テーブル１１２の論理ブロックとテーブル１１４のパーティションとを対応させる方法を説明する。
例えば、アクセス装置２００が、データの読み書きコマンドで、パーティションＰＴ１及び相対論理アドレス「０」を指定したときを考える。本実施の形態において相対論理アドレスが示す値は０以上の整数であり、その値は、パーティション先頭の論理ブロックを０番目として順に数えたときに、指定する論理ブロックが何番目であるかを示している。ここで、アクセス装置２００は、パーティションＰＴ１の先頭の論理ブロックを指定している。なお、アクセス装置２００は、データを読み書きするときに、サイズが「０」のパーティションを指定することはできない。【００２０】
このとき記憶領域管理部１１５は、指定されたパーティションＰＴ１より番号の若いパーティションのサイズを、パーティション管理テーブル１１４から全て検出する。ここで検出されるサイズは、パーティションＰＴ０の「２」だけである。記憶領域管理部１１５は、このサイズ「２」に相対論理アドレス「０」を加えて、数値「２」を得る。記憶領域管理部１１５は、得られた数値「２」に基づいて、テーブル１１２の０番目の論理ブロックＬＢ００００から数えて２番目である論理ブロックＬＢ０００２を検出する。これにより、アクセス装置２００がパーティションＰＴ１及び相対論理アドレス「０」で指定した論理ブロックは、論理ブロックＬＢ０００２となる。また、パーティションＰＴ１の先頭の論理ブロックは、論理ブロックＬＢ０００２であることがわかる。
次に、アクセス装置２００が、読み出しまたは書き込みコマンドで、パーティションＰＴ１及び相対論理アドレス「２」を指定したときを考える。記憶領域管理部１１５は、同じ要領で数値「４」を得て、テーブル１１２の０番目の論理ブロックＬＢ００００から数えて４番目である論理ブロックＬＢ０００４を検出する。この論理ブロックＬＢ０００４は、アクセス装置２００が、パーティションＰＴ１及び相対論理アドレス「２」で指定した論理ブロックである。ここで、パーティションＰＴ１で指定できる相対論理アドレスの上限は、パーティションＰＴ１のサイズより「１」小さい値「２」である。アクセス装置２００が、パーティションＰＴ１及び相対論理アドレス「２」で指定した論理ブロックは、パーティションＰＴ１の終端の論理ブロックであり、パーティションＰＴ１の終端の論理ブロックは、論理ブロックＬＢ０００４であることがわかる。【００２１】
このように、記憶領域管理部１１５がパーティション管理テーブル１１４を用いることで、パーティションＰＴ１には論理ブロックＬＢ０００２〜ＬＢ０００４が対応することになる。同様にして、パーティションＰＴ０には論理ブロックＬＢ００００及びＬＢ０００１、パーティションＰＴ３には論理ブロックＬＢ０００５が対応する。
以上のように本実施の形態では、データの読み書きの度に、パーティション番号及び相対論理アドレスを用いて、データの読み書き対象となる論理ブロックを検出する。
本実施の形態における不揮発性記憶システムの動作の一例を、図４〜図１８を用いて説明する。まず、不揮発性記憶装置１００の初期化処理について説明する。アクセス装置２００は、電源投入時や不揮発性記憶装置１００の装着時などに、初期化コマンドを送信する。図４は、アクセス装置２００が不揮発性記憶装置１００に初期化コマンドを送信したときの、不揮発性記憶装置１００の動作フローである。【００２２】
不揮発性記憶装置１００が初期化コマンドを受信すると、記憶領域管理部１１５は、テーブル１１２、１１３、１１４を含む内部メモリのクリアや、不揮発性メモリ１２０の接続を確認して、ハードウェアを初期化する（Ｓ１０１）。その後、記憶領域管理部１１５は、不揮発性メモリ１２０のシステムデータ格納領域１２１に格納されているアドレス管理情報等を取得する（Ｓ１０２）。続いて記憶領域管理部１１５は、取得したアドレス管理情報をもとにして、内部メモリにテーブル１１２、１１３、及び１１４を作成し、初期化処理を完了する（Ｓ１０３）。
図５は、全てのパーティションのサイズが「０」であるときのテーブル１１２、１１３、及び１１４を示している。ここで、初期化処理で作成したテーブル１１２、１１３、及び１１４は、図５に示す状態であるとする。【００２３】
まず、アクセス装置２００は、パーティションのサイズを「０」より大きな値に変更する。アクセス装置２００は、パーティションＰＴ０のサイズを「２」に設定するパーティションサイズの変更コマンドを、不揮発性記憶装置１００に送信する。不揮発性記憶装置１００が変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ０のサイズが値「２」となるようにパーティション管理テーブル１１４を更新する。その結果、パーティション管理テーブル１１４は、図６に示す状態になる。図６において更新された部分には、アンダーラインを付している。以下、図６以外のテーブル１１２、１１３、及び１１４についても、同様にアンダーラインを付して、更新された部分を示す。
この後同様に、不揮発性記憶装置１００が、パーティションＰＴ１のサイズを値「３」に設定する変更コマンドをアクセス装置２００から受信し、さらに、パーティションＰＴ２のサイズを値「２」に、パーティションＰＴ３のサイズを値「１」に設定する変更コマンドを順に受信する。これらのコマンドを受信すると、記憶領域管理部１１５は、パーティション管理テーブル１１４を図７に示す状態に更新する。【００２４】
続いて、データ書込み処理を、図８のフローチャートを用いて説明する。アクセス装置２００が不揮発性記憶装置１００に対して、読み書きコマンドによってパーティションＰＴ０の相対論理アドレスＲＬＡ「０」を指定すると、記憶領域管理部１１５は、指定されたパーティション番号と相対論理アドレスＲＬＡを基にして、論理ブロックＬＢ００００を取得する（Ｓ２０１）。
記憶領域管理部１１５は、論物変換テーブル１１２を参照して、論理ブロックＬＢ００００に対応する物理ブロックを取得する（Ｓ２０２）。なお、図７の論物変換テーブル１１２では、論理ブロックＬＢ００００に対応する物理ブロックは存在しない。
不揮発性記憶装置１００は、任意の空き物理ブロック、例えば、物理ブロックＰＢ０００１を取得して、取得した物理ブロックＰＢ０００１を消去する（Ｓ２０３）。この後、消去した物理ブロックＰＢ０００１にアクセス装置からのデータを書き込む（Ｓ２０４）。ここで、アクセス装置２００から受信した書込みデータのサイズが、物理ブロックＰＢ０００１のサイズである２５６ｋＢよりも小さい場合には、Ｓ２０２で検出した物理ブロックのデータをコピーする。【００２５】
記憶領域管理部１１５は、論理ブロックＬＢ００００に物理ブロックＰＢ０００１が対応するように、論物変換テーブル１１２を更新する（Ｓ２０５）。これによって論物変換テーブル１１２は、図９に示す状態になる。さらに記憶領域管理部１１５は、図９に示すように物理ブロック管理テーブル１１３を更新し、物理ブロックＰＢ０００１の状態を「使用中」にする（Ｓ２０５）。
記憶領域管理部１１５は、Ｓ２０５でのテーブル１１２及び１１３の更新に基づいて、システムデータ格納領域１２１のアドレス管理情報等を更新する（Ｓ２０６）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ２０５での変更が有効となる。
続いて、アクセス装置２００から受信した書込みデータを全て書込んだか否かを判定する（Ｓ２０７）。全てのデータを書込んだ場合には、データ書き込み処理を終了する。書込みデータが残っている場合には、Ｓ２０２に戻って、連続する次の論理ブロックにデータを書き込む。【００２６】
次のデータ書き込み処理において、アクセス装置２００が、パーティションＰＴ１の相対論理アドレスＲＬＡを「１」と指定すると、同様の処理によって、記憶領域管理部１１５は、データの書き込み先として論理ブロックＬＢ０００３を取得する。この場合も、論理ブロックＬＢ０００３に対応する物理ブロックは存在しないので、不揮発性記憶装置１００は、例えば物理ブロックＰＢ０００５を取得して、アクセス装置からのデータを書き込み、テーブル１１２及び１１３を更新する。更新後のテーブル１１２及び１１３は、図１０に示す状態となる。
アクセス装置２００がさらにデータを書き込み、テーブル１１２、１１３、及び１１４が、図１１に示す状態になったとする。図１１は、各パーティションの全ての論理ブロックに物理ブロックが対応した状態を示している。【００２７】
図１２は、あるパーティションのサイズを「０」にするときの動作を説明するフローチャートである。アクセス装置２００が、パーティションＰＴ２のサイズを「０」に設定するサイズ変更コマンドを送信した場合を、図１２及び図１３を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、テーブル１１２及び１１４を参照し、パーティションＰＴ２の論理ブロックに対応する物理ブロックＰＢ０００４およびＰＢ００３７を検出する（Ｓ３０１）。物理ブロックＰＢ０００４およびＰＢ００３７の状態が「空き」となるように、物理ブロック管理テーブル１１３を更新する（Ｓ３０２）。この更新によって、物理ブロック管理テーブル１１３は、図１３に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ２よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションＰＴ３の論理ブロックアドレスＬＢ０００７に対応する物理ブロックアドレスＰＢ０００２を、パーティションＰＴ２のサイズである論理ブロック２つ分だけ、アドレスが小さい論理ブロックと対応するように移動する（Ｓ３０３）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスが、ＰＢ０００４からＰＢ０００２に変更される。また、物理ブロックアドレスＰＢ００３７が、論理ブロックアドレスＬＢ０００６に対応した状態で残っているので、アドレスＬＢ０００６に対する物理ブロックアドレスを「未割当て」を示す値に変更する。また、論理ブロックアドレスＬＢ０００７に対する物理ブロックアドレスを「未割当て」を示す値に変更する。この変更によって、論物変換テーブル１１２は、図１３に示す状態となる。【００２８】
さらに記憶領域管理部１１５は、パーティションＰＴ２のサイズが値「０」となるように、パーティション管理テーブル１１４を更新する（Ｓ３０４）。この更新によって、パーティション管理テーブル１１４は、図１３に示す状態となる。
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ３０５）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ３０１からＳ３０４で行った変更が有効になる。
図１４は、不揮発性記憶装置１００がアクセス装置２００からのサイズ変更コマンドを受信したときの、動作を示すフローチャートである。アクセス装置２００が、パーティションＰＴ１のサイズを「３」から「４」に変更するサイズ変更コマンドを送信した場合を、図１４及び図１５を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティション管理テーブル１１４を参照して、パーティションＰＴ１のサイズ「３」を変更前サイズとして認識し、この変更前サイズを通知された変更後サイズ「４」と比較して、パーティションサイズの「縮小」であるか否かを判断する（Ｓ４０１）。ここでは、変更後サイズが変更前サイズよりも大きいので、記憶領域管理部１１５は、パーティションＰＴ１のサイズの「拡大」であると判断する。【００２９】
記憶領域管理部１１５は、パーティションＰＴ１のサイズが変更後サイズである値「４」となるように、パーティション管理テーブル１１４を更新する（Ｓ４０２）。この更新によって、パーティション管理テーブル１１４は、図１５に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ１よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここで記憶領域管理部１１５は、パーティションＰＴ１のサイズ増加分である論理ブロック１つ分だけアドレスが大きくなるように、パーティションＰＴ３の論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスＰＢ０００２を移動する（Ｓ４０３）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００６に物理ブロックアドレスＰＢ０００２が対応する。しかし、アドレスＬＢ０００５にもアドレスＰＢ０００２が対応した状態となっているため、アドレスＬＢ０００５に対する物理ブロックのアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１５に示す状態となる。【００３０】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ４０４）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ４０２からＳ４０４で行った変更が有効になる。
その後、アクセス装置２００が、パーティションＰＴ０のサイズを「２」から「１」に変更するサイズ変更コマンドを送信した場合を、図１４及び図１６を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ０に対応する論理ブロックのうち最後尾の論理ブロックＬＢ０００１を検出する（Ｓ４０５）。
その後記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックアドレスＬＢ０００１から順に先頭の論理ブロックに向かって、変更前サイズと変更後サイズの差である論理ブロック１つ分だけ、論理ブロックアドレスを検出する（Ｓ４０６）。ここでは、アドレスＬＢ０００１だけを検出する。【００３１】
さらに記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックＬＢ０００１に対応する物理ブロックＰＢ００００を検出する（Ｓ４０７）。その後記憶領域管理部１１５は、検出された物理ブロックＰＢ００００を「空き」となるように更新する（Ｓ４０８）。
記憶領域管理部１１５は、パーティションＰＴ０のサイズが変更後サイズである値「１」となるように、パーティション管理テーブル１１４を更新する（Ｓ４０９）。この更新によって、パーティション管理テーブル１１４は、図１６に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ０よりも後のパーティションに対応する物理ブロックを移動する。ここでは、パーティションＰＴ１の論理ブロックアドレスＬＢ０００２〜ＬＢ０００５に対応する物理ブロックアドレス及び「未割当て」情報、ならびにパーティションＰＴ３の論理ブロックアドレスＬＢ０００６に対応する物理ブロックアドレスを、パーティションＰＴ０のサイズ減少分である論理ブロック１つ分だけ、アドレスが小さい論理ブロックアドレスと対応するように移動する（Ｓ４１０）。さらにアドレスＬＢ０００６に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１６に示す状態となる。【００３２】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ４０４）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ４０５からＳ４１０で行った変更が有効になる。
次に、アクセス装置２００が、パーティションＰＴ２のサイズを「０」から「３」に変更するサイズ変更コマンドを送信した場合を、図１７及び図１８を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ２のサイズが「３」となるように、パーティション管理テーブル１１４を更新する（Ｓ５０１）。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ２よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションＰＴ３の論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスＰＢ０００２を、パーティションＰＴ２のサイズ増加分である論理ブロック３つ分だけ、アドレスが大きい論理ブロックアドレスと対応するように移動する（Ｓ５０２）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００８に物理ブロックアドレスＰＢ０００２が対応する。しかし、アドレスＬＢ０００５にもアドレスＰＢ０００２が対応した状態となっているため、アドレスＬＢ０００５に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１８に示す状態となる。【００３３】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ５０３）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ５０１及びＳ５０２で行った変更が有効になる。
最後に、アクセス装置２００が、不揮発性記憶装置１００からデータ読み出す処理について、図１９を用いて説明する。データ読み出し処理では、既に説明したように、記憶領域管理部１１５は、アクセス装置２００から受信したパーティション番号及び相対論理アドレスを用いて、アクセスする論理アドレスを検出する（Ｓ６０１）。さらに記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックに対応する物理ブロックを検出する（Ｓ６０２）。このようにして検出された物理ブロックにアクセスして、データを読み出す（Ｓ６０３）。【００３４】
記憶領域管理部１１５は、アクセス装置２００から指定されたデータを全て読出したか否かを判定する（Ｓ６０４）。全て読み出した場合にはデータ読み出し処理を終了する。読出しデータが残っている場合には、Ｓ６０２に戻って、連続する次の論理ブロックからデータを読み出す。
以上が、本発明の実施の形態についての説明である。本実施の形態では、パーティションのサイズ変更を行う度に、説明した方法で論物変換テーブル１１２の更新を行なうので、パーティションに対応する論理ブロックが、論物変換テーブル１１２上で断片化するのを防止することができる。本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体において特に有効である。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施の方法及び手段を変更することができる。以下のような場合も本発明に含まれる。【００３５】
（１）本実施の形態において、不揮発性メモリ１２０としてフラッシュメモリを用いたが、これに限らず論理アドレスと物理アドレスを変換して管理する必要のある不揮発性メモリであれば同様に用いることができ、同様の効果を得ることができる。
（２）本実施の形態において、論理ブロックのサイズや個数、物理ブロックのサイズや個数、パーティションの個数などの数値は１例にすぎず、異なるサイズや個数であっても同様の効果を得ることができる。
（３）本実施の形態において、不揮発性記憶装置１００が受信するコマンドの種類や引数は１例にすぎない。例えば、本実施の形態ではデータ書込み処理を行う度に、データを書き込む対象となるパーティションＰＴｎの番号を指定する形式を用いたが、該パーティションＰＴｎへ最初のデータを書き込むときにのみパーティション番号を指定しても同様の効果を得ることができる。【００３６】
メモリコントローラ１１０が、データ格納領域１２２のパーティションに作成されたファイルシステム情報を管理するための、ファイルシステム管理部を備えている場合には、パーティション内における相対論理アドレスＲＬＡを指定する必要はない。その代わりに、ファイル名ＦＮ、ファイル内オフセットＦＯ、サイズＳＺ等があれば、ファイルシステム管理部がそれらを基に相対論理アドレスＲＬＡを算出し、同様の効果を得ることができる。
（４）本実施の形態におけるメモリコントローラ１１０は、物理的にはマイコン（ＣＰＵ）及びそのプログラムを格納するＲＯＭ、ワーク用ＲＡＭ、論物変換テーブル１１２や物理ブロック管理テーブル１１３やパーティション管理テーブル１１４用のＲＡＭ、不揮発性メモリ１２０にアクセスするための専用ハードウェア等から構成される。メモリコントローラ１１０を構成するこれらハードウェアは、１チップに集積された形で不揮発性記憶装置に実装されていてもよい。
【産業上の利用可能性】
【００３７】
本発明は、デジタルＡＶ機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量の情報記録媒体に適用できる。特に、本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体に好適である。
【図１】
2009096180.tif 000003
【図２】
2009096180.tif 000004
【図３】
2009096180.tif 000005
【図４】
2009096180.tif 000006
【図５】
2009096180.tif 000007
【図６】
2009096180.tif 000008
【図７】
2009096180.tif 000009
【図８】
2009096180.tif 000010
【図９】
2009096180.tif 000011
【図１０】
2009096180.tif 000012
【図１１】
2009096180.tif 000013
【図１２】
2009096180.tif 000014
【図１３】
2009096180.tif 000015
【図１４】
2009096180.tif 000016
【図１５】
2009096180.tif 000017
【図１６】
2009096180.tif 000018
【図１７】
2009096180.tif 000019
【図１８】
2009096180.tif 000020
【図１９】
2009096180.tif 000021
【手続補正書】
【提出日】平成21年5月18日(2009.5.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を具備するメモリコントローラ。
【請求項２】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項３】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項１に記載のメモリコントローラ。
【請求項４】
記憶領域の論理アドレス空間が分割された不揮発性メモリと、
前記不揮発性メモリにアクセスするメモリコントローラと、を具備する不揮発性記憶装置であって、
前記メモリコントローラは、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を備える不揮発性記憶装置。
【請求項５】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項４に記載の不揮発性記憶装置。
【請求項６】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項４に記載の不揮発性記憶装置。
【請求項７】
不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムであって、
前記不揮発性記憶装置は、
不揮発性メモリと、
前記不揮発性メモリにアクセスするメモリコントローラと、
を備え、
前記メモリコントローラは、
前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、
前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、
外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、
前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、
を備える不揮発性記憶システム。
【請求項８】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項７に記載の不揮発性記憶システム。
【請求項９】
前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新する、
請求項７に記載の不揮発性記憶システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを制御するメモリコントローラ、メモリコントローラを有する不揮発性記憶装置、及び、不揮発性記憶装置とアクセス装置とを有する不揮発性記憶システムに関する。
【背景技術】
【０００２】
音楽コンテンツや、映像データなどのデジタルデータを格納する媒体には、半導体記録媒体、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。特に、半導体記録媒体は、小型かつ軽量であり、近年、大容量化、高速化、低価格化が急速に進んでいるので、ディジタルスチルカメラ、携帯電話、携帯音楽プレーヤ、テレビ、ＤＶＤレコーダをはじめとする様々な機器で利用できる。代表的な半導体記録媒体の１つであるＳＤメモリカード（登録商標）は、最近では８ギガバイト、１６ギガバイトなどの非常に大きな容量のものが市販されている。このように不揮発性記憶装置の記憶容量が増大すると、一般的に１つの不揮発性記憶装置を複数のアプリケーションで使用するケースが増加する。
このとき、アプリケーション毎にデータの格納領域を区分するために、物理的には１つの不揮発性記憶装置の記憶領域を論理空間上で複数に分割し、分割された論理空間上の記憶領域（以下、「パーティション」という）をアプリケーション毎に割当てることができる。特許文献１は、不揮発性記憶装置に構築されたパーティションにデータが格納された状態において、パーティションの作成、削除、サイズ変更を行うための方法を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−８１０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記従来技術では、現在使用中のパーティションに関する情報を格納する第１のテーブルと、パーティション情報のうち現在使用中のパーティションに関する情報を除いた未使用情報を格納する第２のテーブルとを用いて、パーティションの単位を指示するパーティション情報を、管理している。上記従来技術は、パーティションの作成、削除、サイズ変更のいずれかの処理を実施する度に第１のテーブル及び第２のテーブルを更新する。
パーティションの作成、削除、サイズ変更が繰り返し行われると、第１のテーブル及び第２のテーブルに登録されたパーティションが論理空間上で断片化された状態となる。このようなパーティションの断片化は、現在使用中のパーティションにおける論理的なアドレス（以下、「論理アドレス」という）を物理的なアドレス（以下、「物理アドレス」という）に変換するための論理アドレス／物理アドレス変換処理（以下、「論理／物理変換処理」という）を複雑化する。このことは、不揮発性記憶装置の主たる機能である読出し及び書込みの処理速度が定常的に低下するという問題を引き起こす。
【０００５】
本発明は上記の問題を解決するものであり、その目的は、パーティションのサイズ変更を繰り返してもパーティションを断片化しないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することにある。
【課題を解決するための手段】
【０００６】
この課題を解決するために本発明のメモリコントローラは、記憶領域の論理アドレス空間が分割された不揮発性メモリにアクセスするメモリコントローラであって、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を具備するものである。
【０００７】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
【０００８】
この課題を解決するために本発明の不揮発性記憶装置は、記憶領域の論理アドレス空間が分割された不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を具備する。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
【０００９】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
【００１０】
この課題を解決するために本発明の不揮発性記憶システムは、不揮発性記憶装置と、前記不揮発性記憶装置にアクセスするアクセス装置と、を具備する不揮発性システムである。前記不揮発性記憶装置は、不揮発性メモリと、前記不揮発性メモリにアクセスするメモリコントローラと、を備える。前記メモリコントローラは、前記論理アドレス空間を分割するパーティションの番号、及び前記パーティションのサイズを保持するパーティション管理テーブルと、前記不揮発性メモリの論理アドレスに前記不揮発性メモリの物理アドレスを対応付ける論物変換テーブルと、外部からパーティションの変更コマンドを受信したときに、前記パーティション管理テーブルにおける前記パーティションのサイズを変更するとともに、前記パーティションのサイズの変更量に応じて前記論物変換テーブルにおける論理アドレスと物理アドレスとの対応付けを変更する記憶領域管理部と、前記記憶領域管理部が前記論物変換テーブルから取得した物理アドレスを用いて前記不揮発性メモリにアクセスするメモリインターフェースと、を備えるものである。
【００１１】
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの拡大であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの拡大分だけアドレスの大きい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
ここで前記記憶領域管理部は、前記変更コマンドがパーティションのサイズの縮小であるときに、前記パーティションのサイズが指定されたサイズとなるように前記パーティション管理テーブルを更新し、サイズが変更されるパーティション以降のパーティションに対応する物理ブロックのアドレスが、サイズの縮小分だけアドレスの小さい論理ブロックのアドレスに対応するように前記論物変換テーブルを更新するようにしてもよい。
【発明の効果】
【００１２】
本発明によれば、パーティションのサイズ変更を行う度に論物変換テーブルを更新するので、論物変換テーブルにおけるパーティションの断片化を防止することができる。その結果として、論理／物理変換処理の複雑化を回避できるため、本発明は、パーティションのサイズ変更を繰り返すことによる、読出し及び書込みの処理速度の低下を防ぐことができる。
従って、パーティションのサイズ変更を繰り返しても、読出し及び書込みの処理速度の低下を引き起こさないメモリコントローラ、不揮発性記憶装置、及びアクセス装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における、不揮発性記憶システムの構成を示すブロック図である。
【図２】本発明の実施の形態における、不揮発性メモリ１２０の物理ブロックの構成を示す図である。
【図３】本発明の実施の形態における、論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の構成例を示す図である。
【図４】初期化コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図５】初期状態の論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の状態を示す図である。
【図６】パーティションＰＴ０のサイズを設定したときの、テーブル１１２、１１３、及び１１４の状態を示す図である。
【図７】パーティションＰＴ１、２、３のサイズを設定したときの、テーブル１１２、１１３、及び１１４の状態を示す図である。
【図８】書込みコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図９】パーティションＰＴ０への書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１０】パーティションＰＴ１への書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１１】全パーティションへの書込み後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１２】パーティションのサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１３】パーティションＰＴ２のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１４】パーティションサイズ変更コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１５】パーティションＰＴ１のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１６】パーティションＰＴ０のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１７】パーティション作成コマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【図１８】パーティションＰＴ２のサイズ変更後のテーブル１１２、１１３、及び１１４の状態を示す図である。
【図１９】読出しコマンド受信後の不揮発性記憶装置の動作フローを示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施の形態について添付の図面を参照しながら説明する。図１は、本実施の形態における不揮発性記憶システムの構成例を示している。図１の不揮発性記憶システムは、不揮発性記憶装置１００及びアクセス装置２００を有している。
不揮発性記憶装置１００は、メモリコントローラ１１０、及び不揮発性メモリ１２０を含んでいる。
メモリコントローラ１１０は、アクセスインターフェース１１１、論物変換テーブル１１２、物理ブロック管理テーブル１１３、パーティション管理テーブル１１４、記憶領域管理部１１５、及びメモリインターフェース１１６を有する。
アクセスインターフェース１１１は、アクセス装置２００とコマンドやデータを送受信するものである。
【００１５】
論物変換テーブル１１２は、論理ブロックアドレスに対応する物理ブロックアドレスを保持するテーブルである。「論理ブロック」とは、論理アドレス空間上で２５６ｋバイト（Ｂ）の単位に分けられたブロックのことである。
物理ブロック管理テーブル１１３は、不揮発性メモリ１２０内の各物理ブロックの使用状況を保持するテーブルである。
パーティション管理テーブル１１４は、不揮発性メモリ１２０に対して設定するパーティションの番号、及び各パーティションのサイズを保持するテーブルである。
記憶領域管理部１１５は、論物変換テーブル１１２、物理ブロック管理テーブル１１３及びパーティション管理テーブル１１４の更新を管理するとともに、これらテーブル１１２、１１３、及び１１４を用いて、データを読み書きする物理ブロックを決定するものである。
【００１６】
メモリインターフェース１１６は、不揮発性メモリ１２０からのデータの読出し、及び不揮発性メモリ１２０へのデータの書込みを制御するものである。
不揮発性メモリ１２０はフラッシュメモリであって、システムデータ格納領域１２１及びデータ格納領域１２２を含んでいる。システムデータ格納領域１２１は、不揮発性メモリ１２０を管理するために用いられるシステムデータを格納するものである。システムデータとして、以下のものがある。
（１）不揮発性メモリ１２０内の不良ブロックの位置や個数を示すデータ
（２）前述したテーブル１１２、テーブル１１３、テーブル１１４を揮発性メモリ（例えば、ＲＡＭ）で構成する場合、不揮発性記憶装置１００の電源投入後に、これらのテーブルを再構築するために必要となるアドレス管理データ
（３）格納データの誤り訂正符号のデータ
データ格納領域１２２は、アクセス装置２００がアクセスする音楽データや映像データといったコンテンツデータ、及びファイルシステムのデータ等を格納するものである。コンテンツデータがＦＡＴファイルシステム等のファイルシステムによって管理される場合には、ファイルシステムのデータはデータ格納領域１２２に格納される。
【００１７】
アクセス装置２００は、不揮発性記憶装置１００に対してコマンドを送信して、データの読出し／書込みを行うものである。送信されるコマンドは、パーティションの番号、及びパーティション内での論理ブロックの位置を示す相対論理アドレス（ＲＬＡ：Ｒｅｌａｔｉｖｅ  Ｌｏｇｉｃａｌ  Ａｄｄｒｅｓｓ）を含んでいる。
図２は、不揮発性メモリ１２０を示す模式図である。不揮発性メモリ１２０は、データの消去単位である物理ブロックを複数有している。物理ブロックのサイズや個数はフラッシュメモリの種類によって様々であるが、本実施の形態の不揮発性メモリ１２０は、例えば、ＰＢ００００〜ＰＢ１０２３の１０２４個の物理ブロックを有し、１つの物理ブロックは２５６ｋバイト（Ｂ）のデータを格納する。
次に、図３を用いて、論物変換テーブル１１２、物理ブロック管理テーブル１１３、及びパーティション管理テーブル１１４の構成を説明する。図３は、テーブル１１２、１１３、１１４の対応関係を説明するための模式図である。
【００１８】
論物変換テーブル１１２は、例えば、論理ブロックＬＢ００００からＬＢ０９９９までの１０００個の論理ブロックアドレスを保持している。不揮発性メモリ１２０は、１０２４個の物理ブロックを有しているが、その中には書込みができない不良ブロック等があるので、保持する論理ブロックアドレスの数を「１０２４」より少なく設定している。
論物変換テーブル１１２は、論理ブロックＬＢ００００〜ＬＢ０００５のそれぞれに対して、対応する物理ブロックアドレスを保持している。ここでは、例えば、論理ブロックＬＢ００００には物理ブロックＰＢ０００１が、論理ブロックＬＢ０００１には物理ブロックＰＢ００００が、それぞれ対応している。論理ブロックＬＢ０００６〜ＬＢ０９９９には対応する物理ブロックが存在しないので、物理ブロックの「未割当て」を意味する値を保持している。「未割当て」を示す値は、例えば、ＰＢ１０２４などの存在しない物理ブロックのアドレスとする。
【００１９】
物理ブロック管理テーブル１１３は、不揮発性メモリ１２０の各物理ブロックが、有効なデータを格納していない「空き」の状態であるか、有効なデータを格納している「使用中」の状態であるかを示す情報を保持している。例えば、論物変換テーブル１１２が保持する物理ブロックＰＢ００００〜ＰＢ０００３、ＰＢ０００５、及びＰＢ０００７は「使用中」であり、その他の物理ブロックは「空き」である。
パーティション管理テーブル１１４は、パーティションの識別子であるパーティション番号ＰＴｎ（ｎ：０〜３の整数）、及びパーティション番号ごとにパーティションに含まれる論理ブロックの数を保持する。テーブル１１４は、４つのパーティションＰＴ０〜ＰＴ３を保持しており、各パーティションに含まれる論理ブロックの数は、パーティションＰＴ０では「２」、パーティションＰＴ１では「３」、パーティションＰＴ２では「０」、パーティションＰＴ３では「１」である。
【００２０】
このようなテーブル１１２、及び１１４を用いて、記憶領域管理部１１５は、アクセス装置２００が指定する論理ブロックを検出する。
図３を用いて、テーブル１１２の論理ブロックとテーブル１１４のパーティションとを対応させる方法を説明する。
例えば、アクセス装置２００が、データの読み書きコマンドで、パーティションＰＴ１及び相対論理アドレス「０」を指定したときを考える。本実施の形態において相対論理アドレスが示す値は０以上の整数であり、その値は、パーティション先頭の論理ブロックを０番目として順に数えたときに、指定する論理ブロックが何番目であるかを示している。ここで、アクセス装置２００は、パーティションＰＴ１の先頭の論理ブロックを指定している。なお、アクセス装置２００は、データを読み書きするときに、サイズが「０」のパーティションを指定することはできない。
【００２１】
このとき記憶領域管理部１１５は、指定されたパーティションＰＴ１より番号の若いパーティションのサイズを、パーティション管理テーブル１１４から全て検出する。ここで検出されるサイズは、パーティションＰＴ０の「２」だけである。記憶領域管理部１１５は、このサイズ「２」に相対論理アドレス「０」を加えて、数値「２」を得る。記憶領域管理部１１５は、得られた数値「２」に基づいて、テーブル１１２の０番目の論理ブロックＬＢ００００から数えて２番目である論理ブロックＬＢ０００２を検出する。これにより、アクセス装置２００がパーティションＰＴ１及び相対論理アドレス「０」で指定した論理ブロックは、論理ブロックＬＢ０００２となる。また、パーティションＰＴ１の先頭の論理ブロックは、論理ブロックＬＢ０００２であることがわかる。
次に、アクセス装置２００が、読み出しまたは書き込みコマンドで、パーティションＰＴ１及び相対論理アドレス「２」を指定したときを考える。記憶領域管理部１１５は、同じ要領で数値「４」を得て、テーブル１１２の０番目の論理ブロックＬＢ００００から数えて４番目である論理ブロックＬＢ０００４を検出する。この論理ブロックＬＢ０００４は、アクセス装置２００が、パーティションＰＴ１及び相対論理アドレス「２」で指定した論理ブロックである。ここで、パーティションＰＴ１で指定できる相対論理アドレスの上限は、パーティションＰＴ１のサイズより「１」小さい値「２」である。アクセス装置２００が、パーティションＰＴ１及び相対論理アドレス「２」で指定した論理ブロックは、パーティションＰＴ１の終端の論理ブロックであり、パーティションＰＴ１の終端の論理ブロックは、論理ブロックＬＢ０００４であることがわかる。
【００２２】
このように、記憶領域管理部１１５がパーティション管理テーブル１１４を用いることで、パーティションＰＴ１には論理ブロックＬＢ０００２〜ＬＢ０００４が対応することになる。同様にして、パーティションＰＴ０には論理ブロックＬＢ００００及びＬＢ０００１、パーティションＰＴ３には論理ブロックＬＢ０００５が対応する。
以上のように本実施の形態では、データの読み書きの度に、パーティション番号及び相対論理アドレスを用いて、データの読み書き対象となる論理ブロックを検出する。
本実施の形態における不揮発性記憶システムの動作の一例を、図４〜図１８を用いて説明する。まず、不揮発性記憶装置１００の初期化処理について説明する。アクセス装置２００は、電源投入時や不揮発性記憶装置１００の装着時などに、初期化コマンドを送信する。図４は、アクセス装置２００が不揮発性記憶装置１００に初期化コマンドを送信したときの、不揮発性記憶装置１００の動作フローである。
【００２３】
不揮発性記憶装置１００が初期化コマンドを受信すると、記憶領域管理部１１５は、テーブル１１２、１１３、１１４を含む内部メモリのクリアや、不揮発性メモリ１２０の接続を確認して、ハードウェアを初期化する（Ｓ１０１）。その後、記憶領域管理部１１５は、不揮発性メモリ１２０のシステムデータ格納領域１２１に格納されているアドレス管理情報等を取得する（Ｓ１０２）。続いて記憶領域管理部１１５は、取得したアドレス管理情報をもとにして、内部メモリにテーブル１１２、１１３、及び１１４を作成し、初期化処理を完了する（Ｓ１０３）。
図５は、全てのパーティションのサイズが「０」であるときのテーブル１１２、１１３、及び１１４を示している。ここで、初期化処理で作成したテーブル１１２、１１３、及び１１４は、図５に示す状態であるとする。
【００２４】
まず、アクセス装置２００は、パーティションのサイズを「０」より大きな値に変更する。アクセス装置２００は、パーティションＰＴ０のサイズを「２」に設定するパーティションサイズの変更コマンドを、不揮発性記憶装置１００に送信する。不揮発性記憶装置１００が変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ０のサイズが値「２」となるようにパーティション管理テーブル１１４を更新する。その結果、パーティション管理テーブル１１４は、図６に示す状態になる。図６において更新された部分には、アンダーラインを付している。以下、図６以外のテーブル１１２、１１３、及び１１４についても、同様にアンダーラインを付して、更新された部分を示す。
この後同様に、不揮発性記憶装置１００が、パーティションＰＴ１のサイズを値「３」に設定する変更コマンドをアクセス装置２００から受信し、さらに、パーティションＰＴ２のサイズを値「２」に、パーティションＰＴ３のサイズを値「１」に設定する変更コマンドを順に受信する。これらのコマンドを受信すると、記憶領域管理部１１５は、パーティション管理テーブル１１４を図７に示す状態に更新する。
【００２５】
続いて、データ書込み処理を、図８のフローチャートを用いて説明する。アクセス装置２００が不揮発性記憶装置１００に対して、読み書きコマンドによってパーティションＰＴ０の相対論理アドレスＲＬＡ「０」を指定すると、記憶領域管理部１１５は、指定されたパーティション番号と相対論理アドレスＲＬＡを基にして、論理ブロックＬＢ００００を取得する（Ｓ２０１）。
記憶領域管理部１１５は、論物変換テーブル１１２を参照して、論理ブロックＬＢ００００に対応する物理ブロックを取得する（Ｓ２０２）。なお、図７の論物変換テーブル１１２では、論理ブロックＬＢ００００に対応する物理ブロックは存在しない。
不揮発性記憶装置１００は、任意の空き物理ブロック、例えば、物理ブロックＰＢ０００１を取得して、取得した物理ブロックＰＢ０００１を消去する（Ｓ２０３）。この後、消去した物理ブロックＰＢ０００１にアクセス装置からのデータを書き込む（Ｓ２０４）。ここで、アクセス装置２００から受信した書込みデータのサイズが、物理ブロックＰＢ０００１のサイズである２５６ｋＢよりも小さい場合には、Ｓ２０２で検出した物理ブロックのデータをコピーする。
【００２６】
記憶領域管理部１１５は、論理ブロックＬＢ００００に物理ブロックＰＢ０００１が対応するように、論物変換テーブル１１２を更新する（Ｓ２０５）。これによって論物変換テーブル１１２は、図９に示す状態になる。さらに記憶領域管理部１１５は、図９に示すように物理ブロック管理テーブル１１３を更新し、物理ブロックＰＢ０００１の状態を「使用中」にする（Ｓ２０５）。
記憶領域管理部１１５は、Ｓ２０５でのテーブル１１２及び１１３の更新に基づいて、システムデータ格納領域１２１のアドレス管理情報等を更新する（Ｓ２０６）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ２０５での変更が有効となる。
続いて、アクセス装置２００から受信した書込みデータを全て書込んだか否かを判定する（Ｓ２０７）。全てのデータを書込んだ場合には、データ書き込み処理を終了する。書込みデータが残っている場合には、Ｓ２０２に戻って、連続する次の論理ブロックにデータを書き込む。
【００２７】
次のデータ書き込み処理において、アクセス装置２００が、パーティションＰＴ１の相対論理アドレスＲＬＡを「１」と指定すると、同様の処理によって、記憶領域管理部１１５は、データの書き込み先として論理ブロックＬＢ０００３を取得する。この場合も、論理ブロックＬＢ０００３に対応する物理ブロックは存在しないので、不揮発性記憶装置１００は、例えば物理ブロックＰＢ０００５を取得して、アクセス装置からのデータを書き込み、テーブル１１２及び１１３を更新する。更新後のテーブル１１２及び１１３は、図１０に示す状態となる。
アクセス装置２００がさらにデータを書き込み、テーブル１１２、１１３、及び１１４が、図１１に示す状態になったとする。図１１は、各パーティションの全ての論理ブロックに物理ブロックが対応した状態を示している。
【００２８】
図１２は、あるパーティションのサイズを「０」にするときの動作を説明するフローチャートである。アクセス装置２００が、パーティションＰＴ２のサイズを「０」に設定するサイズ変更コマンドを送信した場合を、図１２及び図１３を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、テーブル１１２及び１１４を参照し、パーティションＰＴ２の論理ブロックに対応する物理ブロックＰＢ０００４およびＰＢ００３７を検出する（Ｓ３０１）。物理ブロックＰＢ０００４およびＰＢ００３７の状態が「空き」となるように、物理ブロック管理テーブル１１３を更新する（Ｓ３０２）。この更新によって、物理ブロック管理テーブル１１３は、図１３に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ２よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションＰＴ３の論理ブロックアドレスＬＢ０００７に対応する物理ブロックアドレスＰＢ０００２を、パーティションＰＴ２のサイズである論理ブロック２つ分だけ、アドレスが小さい論理ブロックと対応するように移動する（Ｓ３０３）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスが、ＰＢ０００４からＰＢ０００２に変更される。また、物理ブロックアドレスＰＢ００３７が、論理ブロックアドレスＬＢ０００６に対応した状態で残っているので、アドレスＬＢ０００６に対する物理ブロックアドレスを「未割当て」を示す値に変更する。また、論理ブロックアドレスＬＢ０００７に対する物理ブロックアドレスを「未割当て」を示す値に変更する。この変更によって、論物変換テーブル１１２は、図１３に示す状態となる。
【００２９】
さらに記憶領域管理部１１５は、パーティションＰＴ２のサイズが値「０」となるように、パーティション管理テーブル１１４を更新する（Ｓ３０４）。この更新によって、パーティション管理テーブル１１４は、図１３に示す状態となる。
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ３０５）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ３０１からＳ３０４で行った変更が有効になる。
図１４は、不揮発性記憶装置１００がアクセス装置２００からのサイズ変更コマンドを受信したときの、動作を示すフローチャートである。アクセス装置２００が、パーティションＰＴ１のサイズを「３」から「４」に変更するサイズ変更コマンドを送信した場合を、図１４及び図１５を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティション管理テーブル１１４を参照して、パーティションＰＴ１のサイズ「３」を変更前サイズとして認識し、この変更前サイズを通知された変更後サイズ「４」と比較して、パーティションサイズの「縮小」であるか否かを判断する（Ｓ４０１）。ここでは、変更後サイズが変更前サイズよりも大きいので、記憶領域管理部１１５は、パーティションＰＴ１のサイズの「拡大」であると判断する。
【００３０】
記憶領域管理部１１５は、パーティションＰＴ１のサイズが変更後サイズである値「４」となるように、パーティション管理テーブル１１４を更新する（Ｓ４０２）。この更新によって、パーティション管理テーブル１１４は、図１５に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ１よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここで記憶領域管理部１１５は、パーティションＰＴ１のサイズ増加分である論理ブロック１つ分だけアドレスが大きくなるように、パーティションＰＴ３の論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスＰＢ０００２を移動する（Ｓ４０３）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００６に物理ブロックアドレスＰＢ０００２が対応する。しかし、アドレスＬＢ０００５にもアドレスＰＢ０００２が対応した状態となっているため、アドレスＬＢ０００５に対する物理ブロックのアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１５に示す状態となる。
【００３１】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ４０４）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ４０２からＳ４０４で行った変更が有効になる。
その後、アクセス装置２００が、パーティションＰＴ０のサイズを「２」から「１」に変更するサイズ変更コマンドを送信した場合を、図１４及び図１６を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ０に対応する論理ブロックのうち最後尾の論理ブロックＬＢ０００１を検出する（Ｓ４０５）。
その後記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックアドレスＬＢ０００１から順に先頭の論理ブロックに向かって、変更前サイズと変更後サイズの差である論理ブロック１つ分だけ、論理ブロックアドレスを検出する（Ｓ４０６）。ここでは、アドレスＬＢ０００１だけを検出する。
【００３２】
さらに記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックＬＢ０００１に対応する物理ブロックＰＢ００００を検出する（Ｓ４０７）。その後記憶領域管理部１１５は、検出された物理ブロックＰＢ００００を「空き」となるように更新する（Ｓ４０８）。
記憶領域管理部１１５は、パーティションＰＴ０のサイズが変更後サイズである値「１」となるように、パーティション管理テーブル１１４を更新する（Ｓ４０９）。この更新によって、パーティション管理テーブル１１４は、図１６に示す状態となる。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ０よりも後のパーティションに対応する物理ブロックを移動する。ここでは、パーティションＰＴ１の論理ブロックアドレスＬＢ０００２〜ＬＢ０００５に対応する物理ブロックアドレス及び「未割当て」情報、ならびにパーティションＰＴ３の論理ブロックアドレスＬＢ０００６に対応する物理ブロックアドレスを、パーティションＰＴ０のサイズ減少分である論理ブロック１つ分だけ、アドレスが小さい論理ブロックアドレスと対応するように移動する（Ｓ４１０）。さらにアドレスＬＢ０００６に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１６に示す状態となる。
【００３３】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ４０４）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ４０５からＳ４１０で行った変更が有効になる。
次に、アクセス装置２００が、パーティションＰＴ２のサイズを「０」から「３」に変更するサイズ変更コマンドを送信した場合を、図１７及び図１８を用いて説明する。不揮発性記憶装置１００がサイズ変更コマンドを受信すると、記憶領域管理部１１５は、パーティションＰＴ２のサイズが「３」となるように、パーティション管理テーブル１１４を更新する（Ｓ５０１）。
さらに記憶領域管理部１１５は、論物変換テーブル１１２において、パーティションＰＴ２よりも後のパーティションに対応する物理ブロックアドレスを移動する。ここでは、パーティションＰＴ３の論理ブロックアドレスＬＢ０００５に対応する物理ブロックアドレスＰＢ０００２を、パーティションＰＴ２のサイズ増加分である論理ブロック３つ分だけ、アドレスが大きい論理ブロックアドレスと対応するように移動する（Ｓ５０２）。その結果、論物変換テーブル１１２では、論理ブロックアドレスＬＢ０００８に物理ブロックアドレスＰＢ０００２が対応する。しかし、アドレスＬＢ０００５にもアドレスＰＢ０００２が対応した状態となっているため、アドレスＬＢ０００５に対する物理ブロックアドレスを「未割当て」を示す値に更新する。この更新によって、論物変換テーブル１１２は、図１８に示す状態となる。
【００３４】
これに続いて記憶領域管理部１１５は、システムデータ格納領域１２１のアドレス管理情報等の更新を行う（Ｓ５０３）。これによって、不揮発性記憶装置１００の電源を再投入したときにもＳ５０１及びＳ５０２で行った変更が有効になる。
最後に、アクセス装置２００が、不揮発性記憶装置１００からデータ読み出す処理について、図１９を用いて説明する。データ読み出し処理では、既に説明したように、記憶領域管理部１１５は、アクセス装置２００から受信したパーティション番号及び相対論理アドレスを用いて、アクセスする論理アドレスを検出する（Ｓ６０１）。さらに記憶領域管理部１１５は、論物変換テーブル１１２を用いて、検出した論理ブロックに対応する物理ブロックを検出する（Ｓ６０２）。このようにして検出された物理ブロックにアクセスして、データを読み出す（Ｓ６０３）。
【００３５】
記憶領域管理部１１５は、アクセス装置２００から指定されたデータを全て読出したか否かを判定する（Ｓ６０４）。全て読み出した場合にはデータ読み出し処理を終了する。読出しデータが残っている場合には、Ｓ６０２に戻って、連続する次の論理ブロックからデータを読み出す。
以上が、本発明の実施の形態についての説明である。本実施の形態では、パーティションのサイズ変更を行う度に、説明した方法で論物変換テーブル１１２の更新を行なうので、パーティションに対応する論理ブロックが、論物変換テーブル１１２上で断片化するのを防止することができる。本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体において特に有効である。
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施形態に限定されないのはもちろんである。本発明の趣旨を逸脱しない範囲で実施の方法及び手段を変更することができる。以下のような場合も本発明に含まれる。
【００３６】
（１）本実施の形態において、不揮発性メモリ１２０としてフラッシュメモリを用いたが、これに限らず論理アドレスと物理アドレスを変換して管理する必要のある不揮発性メモリであれば同様に用いることができ、同様の効果を得ることができる。
（２）本実施の形態において、論理ブロックのサイズや個数、物理ブロックのサイズや個数、パーティションの個数などの数値は１例にすぎず、異なるサイズや個数であっても同様の効果を得ることができる。
（３）本実施の形態において、不揮発性記憶装置１００が受信するコマンドの種類や引数は１例にすぎない。例えば、本実施の形態ではデータ書込み処理を行う度に、データを書き込む対象となるパーティションＰＴｎの番号を指定する形式を用いたが、該パーティションＰＴｎへ最初のデータを書き込むときにのみパーティション番号を指定しても同様の効果を得ることができる。
【００３７】
メモリコントローラ１１０が、データ格納領域１２２のパーティションに作成されたファイルシステム情報を管理するための、ファイルシステム管理部を備えている場合には、パーティション内における相対論理アドレスＲＬＡを指定する必要はない。その代わりに、ファイル名ＦＮ、ファイル内オフセットＦＯ、サイズＳＺ等があれば、ファイルシステム管理部がそれらを基に相対論理アドレスＲＬＡを算出し、同様の効果を得ることができる。
（４）本実施の形態におけるメモリコントローラ１１０は、物理的にはマイコン（ＣＰＵ）及びそのプログラムを格納するＲＯＭ、ワーク用ＲＡＭ、論物変換テーブル１１２や物理ブロック管理テーブル１１３やパーティション管理テーブル１１４用のＲＡＭ、不揮発性メモリ１２０にアクセスするための専用ハードウェア等から構成される。メモリコントローラ１１０を構成するこれらハードウェアは、１チップに集積された形で不揮発性記憶装置に実装されていてもよい。
【産業上の利用可能性】
【００３８】
本発明は、デジタルＡＶ機器や携帯電話端末、パーソナルコンピュータ等の電子機器に用いられる大容量の情報記録媒体に適用できる。特に、本発明は、大容量化が進むフラッシュメモリを用いた半導体記録媒体に好適である。
【符号の説明】
【００３９】
１００  不揮発性記憶装置
１１０  メモリコントローラ
１１１  アクセスインターフェース
１１２  論物変換テーブル
１１３  空き物理ブロック管理テーブル
１１４  パーティション管理テーブル
１１５  記憶領域管理部
１１６  メモリインターフェース
１２０  不揮発性メモリ
１２１  システムデータ格納領域
１２２  データ格納領域
２００  アクセス装置
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009096180.tif 000022
【図２】
2009096180.tif 000023
【図３】
2009096180.tif 000024
【図４】
2009096180.tif 000025
【図５】
2009096180.tif 000026
【図６】
2009096180.tif 000027
【図７】
2009096180.tif 000028
【図８】
2009096180.tif 000029
【図９】
2009096180.tif 000030
【図１０】
2009096180.tif 000031
【図１１】
2009096180.tif 000032
【図１２】
2009096180.tif 000033
【図１３】
2009096180.tif 000034
【図１４】
2009096180.tif 000035
【図１５】
2009096180.tif 000036
【図１６】
2009096180.tif 000037
【図１７】
2009096180.tif 000038
【図１８】
2009096180.tif 000039
【図１９】
2009096180.tif 000040
【国際調査報告】
2009096180.tif 000041
2009096180.tif 000042
2009096180.tif 000043
2009096180.tif 000044