(57)【特許請求の範囲】
【請求項１】
各々が物理ブロックを書き込み単位として複数有してなる物理セクタを消去単位として複数有してなる物理メモリおよび当該物理メモリの物理セクタと対応付けた仮想セクタを複数有してなる仮想メモリを用いてデータの読み書きを管理するメモリ管理方式であって、
前記仮想セクタのアドレスと単一または複数の前記物理セクタのアドレスとを当該仮想セクタのアドレス毎に対応付けるセクタアドレス管理手段と、
このセクタアドレス管理手段により前記仮想セクタのアドレスと対応付けた複数の物理セクタの各アドレスの対応付けのタイミングの順序を管理する順序管理手段と、
前記物理セクタに属する物理ブロックの使用状態を示すブロック情報を管理するブロック情報管理手段と、
データ書き込み対象の仮想メモリアドレスで示される物理ブロックのアドレスを計算する第１の計算手段と、
前記書き込み対象の仮想メモリアドレスで示される仮想セクタのアドレスを計算する第２の計算手段と、
前記ブロック情報管理手段により管理されるブロック情報および前記順序管理手段により管理される順序に基づいて、前記第２の計算手段により計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられる物理セクタの各アドレスおよび前記第１の計算手段により計算したアドレスと対応する使用状態にある物理ブロックのうち最も遅い順序で前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられた物理セクタのアドレスより後の順序で前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして検出するセクタアドレス検出手段とを有し、
前記セクタアドレス管理手段は、前記セクタアドレス検出手段によりアドレスが検出されなかった場合に、属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを前記計算した仮想セクタのアドレスと新たに対応付け、
前記順序管理手段は、この新たに対応付けられた物理セクタのアドレスが前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、
前記新たに対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして指定するセクタアドレス指定手段を有し、
前記ブロック情報管理手段は、前記セクタアドレス指定手段により指定されたアドレスおよび前記第１の計算手段により計算した物理ブロックのアドレスで特定される物理ブロックのブロック情報を使用状態を示す情報に書き換える
ことを特徴とするメモリ管理方式。
【請求項２】
前記セクタアドレス管理手段は、属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを任意の仮想セクタのアドレスと新たに対応付け、
前記順序管理手段は、この新たに対応付けられた物理セクタのアドレスが前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、
前記ブロック情報管理手段は、前記セクタアドレス管理手段により前記任意の仮想セクタのアドレスと対応付けられ前記新たに対応付けられたアドレスと異なるアドレスで示される物理セクタに属する物理ブロックのうち、前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスで示される物理ブロックのブロック情報を当該物理ブロックのアドレスと同一のアドレスを有し前記新たに対応付けられたアドレスで示される物理セクタに属する物理ブロックに反映させ、
前記セクタアドレス管理手段は、前記任意の仮想セクタのアドレスと前記反映元の物理セクタのアドレスとの対応付けを消去することを特徴とする請求項１に記載のメモリ管理方式。
【請求項３】
前記セクタアドレス管理手段は、任意の仮想セクタのアドレスと対応付けられる物理セクタのアドレスのうち最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスを検索し、
前記ブロック情報管理手段は、前記任意の仮想セクタのアドレスと対応付けられ前記検索されたアドレスと異なるアドレスで示される物理セクタに属する物理ブロックのうち、前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスで示される物理ブロックのブロック情報を当該物理ブロックのアドレスと同一のアドレスを有し前記検索されたアドレスで示される物理セクタに属する物理ブロックに反映させ、
前記セクタアドレス管理手段は、前記任意の仮想セクタのアドレスと前記反映元の物理セクタのアドレスとの対応付けを消去することを特徴とする請求項１に記載のメモリ管理方式。
【請求項４】
不揮発性メモリを備え、この不揮発性メモリにおける各々が物理ブロックを書き込み単位として複数有してなる物理セクタを消去単位として複数有してなる物理メモリおよび当該物理メモリの物理セクタと対応付けた仮想セクタを複数有してなる仮想メモリを用いてデータの読み書きを管理するメモリ管理装置であって、
前記仮想セクタのアドレスと単一または複数の前記物理セクタのアドレスとを当該仮想セクタのアドレス毎に対応付けるセクタアドレス管理手段と、
このセクタアドレス管理手段により前記仮想セクタのアドレスと対応付けた複数の物理セクタの各アドレスの対応付けのタイミングの順序を管理する順序管理手段と、
前記物理セクタに属する物理ブロックの使用状態を示すブロック情報を管理するブロック情報管理手段と、
データ書き込み対象の仮想メモリアドレスで示される物理ブロックのアドレスを計算する第１の計算手段と、
前記書き込み対象の仮想メモリアドレスで示される仮想セクタのアドレスを計算する第２の計算手段と、
前記ブロック情報管理手段により管理されるブロック情報および前記順序管理手段により管理される順序に基づいて、前記第２の計算手段により計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられる物理セクタの各アドレスおよび前記第１の計算手段により計算したアドレスと対応する使用状態にある物理ブロックのうち最も遅い順序で前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられた物理セクタのアドレスより後の順序で前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして検出するセクタアドレス検出手段とを備え、
前記セクタアドレス管理手段は、前記セクタアドレス検出手段によりアドレスが検出されなかった場合に、属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを前記計算した仮想セクタのアドレスと新たに対応付け、
前記順序管理手段は、この新たに対応付けられた物理セクタのアドレスが前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、
前記新たに対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして指定するセクタアドレス指定手段を備え、
前記ブロック情報管理手段は、前記セクタアドレス指定手段により指定されたアドレスおよび前記第１の計算手段により計算した物理ブロックのアドレスで特定される物理ブロックのブロック情報を使用状態を示す情報に書き換える
ことを特徴とするメモリ管理装置。
【請求項５】
前記セクタアドレス管理手段は、属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを任意の仮想セクタのアドレスと新たに対応付け、
前記順序管理手段は、この新たに対応付けられた物理セクタのアドレスが前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、
前記ブロック情報管理手段は、前記セクタアドレス管理手段により前記任意の仮想セクタのアドレスと対応付けられ前記新たに対応付けられたアドレスと異なるアドレスで示される物理セクタに属する物理ブロックのうち、前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスで示される物理ブロックのブロック情報を当該物理ブロックのアドレスと同一のアドレスを有し前記新たに対応付けられたアドレスで示される物理セクタに属する物理ブロックに反映させ、
前記セクタアドレス管理手段は、前記任意の仮想セクタのアドレスと前記反映元の物理セクタのアドレスとの対応付けを消去することを特徴とする請求項４に記載のメモリ管理装置。
【請求項６】
前記セクタアドレス管理手段は、任意の仮想セクタのアドレスと対応付けられる物理セクタのアドレスのうち最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスを検索し、
前記ブロック情報管理手段は、前記任意の仮想セクタのアドレスと対応付けられ前記検索されたアドレスと異なるアドレスで示される物理セクタに属する物理ブロックのうち、前記計算した仮想セクタのアドレスに対して前記セクタアドレス管理手段により最も遅い順序で対応付けられたと前記順序管理手段により管理されるアドレスで示される物理ブロックのブロック情報を当該物理ブロックのアドレスと同一のアドレスを有し前記検索されたアドレスで示される物理セクタに属する物理ブロックに反映させ、
前記セクタアドレス管理手段は、前記任意の仮想セクタのアドレスと前記反映元の物理セクタのアドレスとの対応付けを消去することを特徴とする請求項４に記載のメモリ管理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、消去単位が、複数の書き込み単位により構成される不揮発性メモリにおけるメモリ管理方式およびメモリ管理装置に関する。
【０００２】
【従来の技術】
従来技術においては、システムからみたメモリ（仮想メモリ）の消去単位（セクタ）に対する不揮発性メモリ上のメモリ（物理メモリ）のセクタ（物理セクタ）の対応付けは、仮想セクタに対して、一つの物理セクタを対応づける方法であった。
【０００３】
【発明が解決しようとする課題】
しかしながら、仮想メモリに対応付けられる物理セクタ上の、既にデータライトが成されている書き込み単位領域（ブロック）に対してオーバライトが発生する場合には、データがライトされてない新しい物理セクタを用意して、この新しい物理セクタ上に、更新すべきブロックデータと、オーバライトされるべきブロックが属しているセクタ上のオーバライトされるべきブロック以外のブロックデータをライトし、仮想セクタと既存の物理セクタの対応づけを消去して、新しい物理セクタに対する対応付けをする必要があるので、オーバライトブロック以外のブロックデータを新しい物理セクタにライトする必要がある分データライトの処理時間が長くなるとともに、使用するメモリ容量が大きくなる問題があった。
【０００４】
本発明は上記の問題を解決するためになされたものであり、メモリの読み書きに係る処理時間を短縮し、また、メモリ資源を効率よく使うことが可能になるメモリ管理方式およびメモリ管理装置を提供することを目的とする。
【０００５】
すなわち、本発明に係わるメモリ管理方式は、各々が物理ブロックを書き込み単位として複数有してなる物理セクタを消去単位として複数有してなる物理メモリおよび当該物理メモリの物理セクタと対応付けた仮想セクタを複数有してなる仮想メモリを用いてデータの読み書きを管理するメモリ管理方式であって、仮想セクタのアドレスと単一または複数の物理セクタのアドレスとを当該仮想セクタのアドレス毎に対応付けるセクタアドレス管理手段と、このセクタアドレス管理手段により仮想セクタのアドレスと対応付けた複数の物理セクタの各アドレスの対応付けのタイミングの順序を管理する順序管理手段と、物理セクタに属する物理ブロックの使用状態を示すブロック情報を管理するブロック情報管理手段と、データ書き込み対象の仮想メモリアドレスで示される物理ブロックのアドレスを計算する第１の計算手段と、書き込み対象の仮想メモリアドレスで示される仮想セクタのアドレスを計算する第２の計算手段と、ブロック情報管理手段により管理されるブロック情報および順序管理手段により管理される順序に基づいて、第２の計算手段により計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられる物理セクタの各アドレスおよび第１の計算手段により計算したアドレスと対応する使用状態にある物理ブロックのうち最も遅い順序で計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられた物理セクタのアドレスより後の順序で計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして検出するセクタアドレス検出手段とを有し、セクタアドレス管理手段は、セクタアドレス検出手段によりアドレスが検出されなかった場合に属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを計算した仮想セクタのアドレスと新たに対応付け、順序管理手段は、この新たに対応付けられた物理セクタのアドレスが計算した仮想セクタのアドレスに対してセクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、新たに対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして指定するセクタアドレス指定手段を有し、ブロック情報管理手段は、セクタアドレス指定手段により指定されたアドレスおよび第１の計算手段により計算した物理ブロックのアドレスで特定される物理ブロックのブロック情報を使用状態を示す情報に書き換えることを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面により本発明の実施形態について説明する。
【００１６】
図１は、本発明の実施形態に係わるメモリ制御装置の構成を示す図である。
【００１７】
図1に示すように、このメモリ制御装置は、不揮発性メモリ１、メモリ管理部２、メモリインタフェース３およびシステム制御部４で構成される。
【００１８】
メモリ管理部２は、システムを制御するシステム制御部４に対して、メモリ管理部２に対するコマンド（命令）を示す信号を転送するコマンドバス１１、仮想メモリアドレスバス１２およびデータバス１３を介して接続され、このメモリ管理部２に対してメモリインタフェース３が、メモリインタフェース３に対するコマンドを示す信号を転送するメモリアクセスコマンドバス１４、物理メモリアドレスバス１５およびメモリ管理部２とメモリインタフェース３との間でデータを転送するメモリデータバス１６を介して接続され、このメモリインタフェース３に対して不揮発性メモリ１がメモリバス１７を介して接続される。
【００１９】
メモリバス１７は、不揮発性メモリ１に対して読み書きのアクセスするためのアクセスコマンド（処理命令）を示す信号を転送する。
【００２０】
仮想メモリアドレスバス１２は、仮想メモリ上の仮想メモリアドレスを示す信号をシステム制御部４からメモリ管理部２に転送する。
【００２１】
物理メモリアドレスバス１５は、不揮発性メモリ１上の物理メモリアドレスを示す信号をメモリ管理部２からメモリインタフェース３に転送する。
【００２２】
データバス１３は、不揮発性メモリ１に対して読み書きするデータを、メモリ管理部２を介してシステム制御部４とメモリインタフェース３の間で転送する。
【００２３】
メモリ管理部２は、システム制御部４より転送されるコマンドと仮想メモリアドレスに応じて、アクセスコマンドおよび物理メモリアドレスをメモリインタフェース３に転送するとともに、不揮発性メモリ１に書き込むデータをメモリインタフェース３に転送し、不揮発性メモリ１から読み出したデータを、システム制御部４に転送する。
【００２４】
メモリインタフェース３は、メモリバス１７を介して不揮発性メモリ１に対してアクセス処理をする。
【００２５】
図２は、前記実施形態に係わるメモリ制御装置に備えられるメモリ管理部２の構成を示す図である。
【００２６】
図２に示すように、メモリ管理部２は、メモリ制御部２１、データバッファ２２、セクタアドレス変換テーブル２３、セクタアドレス変換制御部２４、ブロック情報テーブル２５およびブロック情報制御部２６で構成される。
【００２７】
そして、メモリ制御部２１に対してデータバッファ２２が接続されるとともに、メモリ制御部２１に対して、システム制御部４からコマンドバス１１、仮想メモリアドレスバス１２が接続されるとともに、メモリインタフェース３に対して物理メモリアドレスバス１５およびアクセスコマンドバス１１が接続され、データバッファ２２に対して、システム制御部４からデータバス１３が接続され、このデータバッファ２２からメモリインタフェース３に対して、メモリデータバス１６が接続される。
【００２８】
また、メモリ制御部２１に対してセクタアドレス変換テーブル２３がセクタアドレス変換制御部２４を介して接続されるとともに、ブロック情報テーブル２５がブロック情報制御部２６を介して接続される。
【００２９】
セクタアドレス変換テーブル２３は、仮想メモリのセクタ単位アドレス（仮想セクタアドレス）と物理メモリのセクタ単位アドレス（物理セクタアドレス）の対応付けを示すデータを記憶するメモリである。
【００３０】
ブロック情報テーブル２５は、物理セクタアドレス内に設定される複数の物理ブロックの使用状態を示すデータすなわちブロックが使用されている状態であるか、または使用されていない状態であるかを示すデータ（ブロック情報）を記憶するメモリである。
【００３１】
セクタアドレス変換制御部２４は、セクタアドレス変換テーブル２３において仮想メモリに属する全ての仮想セクタアドレスをインデックス値として、各仮想セクタアドレスと対応付けられる一つまたは複数の物理セクタアドレスを登録、削除および読み出しを行い、また、セクタアドレス変換テーブル２３に登録されていない物理セクタアドレスを検索する。
【００３２】
ブロック情報制御部２６は、ブロック情報テーブル２５において物理メモリに属する全ての物理セクタアドレスをインデックス値として物理セクタアドレスに属する各物理ブロックに対して、ブロック情報を登録、削除、更新および読み出しをする。
【００３３】
メモリ制御部２１は、システム制御部４からのコマンドに応じて、メモリ制御部２１とブロック情報制御部２６を制御し、仮想メモリアドレスに基づいて適当な物理メモリアドレスに変更し、不揮発性メモリ１に対するアクセスコマンドを転送し、また、データバッファ２２を介して不揮発性メモリ１に対して読み書きするデータの転送制御をする。
【００３４】
データバッファ２２は、システム制御部４と不揮発性メモリ１とのデータ転送速度の調停を行う。
【００３５】
図３は、前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブル２３の構成を示す図である。
【００３６】
図３に示すように、セクタアドレス変換テーブル２３は、仮想セクタアドレスと物理セクタアドレスとの対応関係を管理するテーブルデータであり、仮想メモリ内の全ての仮想セクタアドレスが登録される仮想セクタアドレスインデックス（ｐ１）内の一つの仮想セクタアドレスが、一つの物理セクタアドレスまたは複数の物理セクタアドレスで構成された物理セクタアドレス群内のそれぞれの物理セクタアドレスと対応付けられる構成である。
【００３７】
つまり、図３に示すセクタアドレス変換テーブル２３の場合には、仮想セクタアドレス“０”が、物理セクタアドレス“３”、“８”、“Ｎ”および“α”で構成された物理セクタアドレス群（ｐ２）に対応付けられることを示し、この物理セクタアドレス群内の各物理セクタアドレスの配列は登録順番すなわち仮想セクタアドレスに対応付けられた順番に従った配列である。
【００３８】
つまり、物理セクタアドレス群（ｐ２）の左端の物理セクタアドレス“３”は最初に仮想セクタアドレス“０“に対応付けられた物理セクタアドレスを示し、右端の物理セクタアドレス”α“は、最後に仮想セクタアドレス”０“に対応付けられた物理セクタアドレスを示している。この場合、物理セクタアドレスの大小は登録順番と関係ない。
【００３９】
仮想セクタアドレスと物理セクタアドレスとの対応付けは、図３に示す仮想セクタアドレス“１”のように物理セクタアドレスが全く対応付けられていない場合には、仮想セクタアドレスに対して新規に物理セクタアドレスを対応付けることでなされ、また、仮想セクタアドレス“２”のように既に仮想セクタアドレスに対して物理セクタアドレスが対応付けられる場合で、新しい物理セクタアドレス“１８”を物理セクタ“９”の後に登録したい場合には、ｐ３に示すように物理セクタアドレス群内において物理セクタアドレスの登録順番を変更して登録または最終物理セクタアドレスの直後の登録順番として物理セクタアドレス群内の新たな物理セクタアドレスとして追加することでなされる。
【００４０】
また、仮想セクタアドレスと物理セクタアドレスの対応付けを無くすには、ｐ４に示すように物理セクタアドレス群から各物理セクタアドレスを削除することでなされる。
【００４１】
図４は、前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブル２３による仮想メモリと物理メモリの対応付けの例を示す図である。
【００４２】
図４に示すように、仮想メモリのそれぞれの仮想セクタアドレスを示す仮想メモリセクタアドレスマップと、物理メモリのそれぞれの物理セクタアドレスを示す物理メモリセクタアドレスマップにおいて、一つの仮想セクタに対して一つまたは複数の物理セクタが対応付けられる。
【００４３】
なお、図４に示される仮想メモリセクタアドレスマップの０セクタ、1セクタ、２セクタ、・・・、Ｌ−１セクタおよびＬセクタは、仮想セクタアドレス“０”、“１”、“２”、・・、“Ｌ−１”および“Ｌ”を示す領域を示し、物理メモリセクタアドレスマップの０セクタ、1セクタ、２セクタ、・・・、Ｎ−１セクタおよびＮセクタは、物理セクタアドレス“０”、・・“Ｎ−１”および“Ｎ”を示す領域である。
【００４４】
また、一つの物理セクタすなわち物理セクタアドレスで区別される各物理セクタは、ｐ１１で示すように複数の物理ブロックで構成され、それぞれの物理ブロックが物理ブロックアドレスで区別される。
【００４５】
つまり、図４に示される各物理ブロックの０ブロック、１ブロック、・・・、Ｍ−１ブロックおよびＭブロックは、物理セクタ内の物理ブロックアドレス“０”、“１”、・・、“Ｍ−１”および“Ｍ”を示す領域である。
【００４６】
図５は、前記実施形態に係わる仮想セクタと物理セクタとの対応付けの例を示す図である。
【００４７】
図５に示すように、仮想セクタ（ｐ２１）は複数の仮想ブロック（ｐ２２）で構成され、それぞれの仮想ブロックが仮想ブロックアドレスで区別される。
【００４８】
そして、各仮想ブロックが、ｐ２３に示す物理ブロック群の各物理ブロックと対応付けられることになる。
【００４９】
各仮想ブロックの０ブロック、1ブロック、・・・、Ｍ−１ブロックおよびＭブロックは、仮想セクタ内の仮想ブロックアドレス“０”、・・、“Ｍ−１”および“Ｍ”を示す領域である。
【００５０】
そして、仮想セクタ内の仮想ブロックである０ブロックは、この仮想ブロックアドレスの値と同一の物理ブロックアドレス値である０ブロックが属する物理セクタ（８セクタの０ブロック目）と対応付けられる。
【００５１】
つまり、これらの各仮想ブロックが、同じアドレス値をもつ物理ブロックと対応付けられることで、仮想セクタが、物理ブロックが属する一つまたは複数の物理セクタと対応付けられることになる。
【００５２】
図６は、前記実施形態に係わるメモリ制御装置に備えられるブロック情報テーブル２５の構成を示す図である。
【００５３】
図６に示すように、このブロック情報テーブル２５は、セクタアドレス変換テーブル２３に登録された各物理セクタアドレスに属する全ての物理ブロックに関する物理ブロック情報を管理するテーブルである。
【００５４】
このブロック情報テーブル２５は、物理メモリ内の全ての物理セクタアドレスが登録される物理セクタアドレスインデックス（ｐ３１）、この物理セクタアドレスインデックスの各物理セクタアドレスに属する全ての物理ブロックアドレスが登録される物理ブロックアドレスインデックス（ｐ３２）、および物理セクタアドレスインデック各物理ブロックの物理ブロック情報を記憶する物理ブロック情報記憶領域で構成され、物理セクタアドレス群を一つめのインデックスとし、物理ブロックアドレス群を二つめのインデックスとしてブロック情報記憶領域が参照される。
【００５５】
例えば、ｐ３３で示すブロック記憶領域は、物理セクタアドレスが“０”である物理セクタ内のブロックアドレスが“Ｍ”である物理ブロックのブロック情報記憶領域である。
【００５６】
このブロック情報記憶領域に記憶される物理ブロック情報は、参照元の物理セクタアドレス及び物理ブロックアドレスから導かれる物理メモリアドレスに対してデータの書き込みがなされたかどうかを示す情報であり、既にライト（書き込み）済の状態の場合には、”１”のフラグが記憶され、未ライトつまりデータの書き込みがなされていない状態の場合には、”０”のフラグが記憶される。
【００５７】
また、ｐ３４で示すように、任意の物理セクタアドレスに対応する特定の物理ブロックのブロック情報を“０”または“１”に更新することができる。また、ｐ３５で示される領域、つまり、任意の物理セクタアドレスに対応する全ての物理ブロックのブロック情報を登録することができ、ｐ３６で示される領域、つまり、任意の物理セクタアドレスに対応する全ての物理ブロックのブロック情報を削除することができる。
【００５８】
つまり、仮想セクタアドレスと複数の物理セクタアドレスを対応付けることのできるセクタアドレス変換テーブル２３と対応付けた物理セクタアドレスの各ブロックの使用状態を知ることのできるブロック情報テーブル２５により、一つの仮想セクタが複数の物理セクタと対応付けられるので、一つの仮想セクタを一つの物理セクタのみに対応付ける必要が無いことから、オーバライト時にメモリ上のデータ移動の発生が少ない高速なメモリライトができる。
【００５９】
また、任意のブロック毎に使用状態が“０”と“１“のフラグで示されることにより、システムに見合ったブロック単位で管理を行うことが可能になるので、ブロック情報テーブル２５のメモリ容量を削減できる。
【００６０】
次に、前記構成によるメモリ制御装置の処理について説明する。
【００６１】
まず、メモリ制御装置によるメモリライト（書き込み）処理について説明する。
【００６２】
図７は、前記実施形態に係わるメモリ制御装置によるメモリライト処理（その１）を示すフローチャートである。
【００６３】
図８は、前記実施形態に係わるメモリ制御装置によるメモリライト処理（その２）を示すフローチャートである。
【００６４】
図７および図８に示すように、まず、システム制御部４よりコマンドバス１１を介してメモリ制御部２１のメモリ管理部２にライト命令が与えられるとともに、仮想メモリアドレスバス１２を介して仮想メモリアドレスがメモリ制御部２１に転送されると、仮想メモリアドレスがメモリ制御部２１により仮想セクタアドレスＡと仮想ブロックアドレス（仮想ブロックオフセットアドレス）Ｂとに分けられる（ステップＡ１）。
【００６５】
なお、この仮想ブロックアドレスＢに基づいて、ブロック情報テーブル上の物理ブロックアドレスインデックス上で同じアドレス値をもつ物理ブロックアドレスが検索されて物理ブロックアドレスＢとして取り扱われることになる。
【００６６】
次に、セクタアドレス変換制御部２４によりセクタアドレス変換テーブル２３が読み出されて、このセクタアドレス変換テーブル２３と仮想セクタアドレスＡとが照合されて、該仮想セクタアドレスＡに対応付けられる一つまたは複数の物理セクタアドレスで構成される物理セクタアドレス群Ｃが検索されて、この物理セクタアドレス群Ｃが存在するかどうかが判断される（ステップＡ２，Ａ３）。
【００６７】
ステップＡ３で「ＹＥＳ」と判断される、つまり仮想セクタアドレスＡに物理セクタアドレス群Ｃが対応付けられる場合には、ブロック情報制御部２６によりブロック情報テーブル２５が読み出されて、このブロック情報テーブル２５において、物理セクタアドレス群Ｃに属する各物理セクタアドレスおよび仮想ブロックアドレスＢと同じアドレスの物理ブロックアドレス（物理ブロックオフセットアドレス）に基づいて、各物理ブロックの中に未ライトブロックすなわちブロック情報が“０”である物理ブロックが含まれているかどうかが判断され、未ライトブロックが含まれていれば、そのうち一つの物理ブロックが属する物理セクタアドレスが物理セクタアドレスＤとして検出されてセクタアドレス変換テーブル２３での検索が終了される（ステップＡ４，Ａ５）。
【００６８】
図９は、前記実施形態に係わるメモリライト処理において未ライトブロックが存在する物理セクタアドレスＤが検出される例を示す図である。
【００６９】
つまり、図９に示すように、セクタアドレス変換テーブル２３において、仮想セクタアドレスＡに対応付けられる物理セクタアドレス群Ｃに属する各物理セクタアドレスが、ｐ４１に示すように、その登録順番の古い順から“３”、“８”および“Ｎ”である場合で、仮想ブロックアドレスＢが“Ｍ−１”である場合には、検索の対象となる物理ブロックはｐ４２で囲まれた検索列となり、検索する順番は、ｐ４３に示すように物理セクタアドレス群Ｃに属する各物理セクタアドレスの登録順番の新しい方から古い方に向かう順番となる、つまり物理セクタアドレスが“Ｎ”で物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ４４）から検索され、次に物理セクタアドレスが“８”で、物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ４５）が検索され、最後に物理セクタアドレスが“３”で、物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ４６）が検索対象となる。
【００７０】
そして、物理セクタアドレスの登録順番に従って、検索列のなかで登録順番が最新のライト済ブロックに対応する物理セクタアドレスの直前にある登録順番の物理セクタアドレスに対応する未ライトブロック、つまり、物理セクタアドレスが“８”で、物理ブロックアドレスが“Ｍ−１”のブロック（ｐ４５）が未ライトブロックとして検出され、検出される物理セクタアドレスＤは“８”となる。
【００７１】
なお、未ライトブロックの検索方法は、検索順番に従って最初に検出された未ライトブロックに対応する物理セクタアドレスを物理セクタアドレスＤとして検出する方法としてもよく、この場合、図９に示す、ブロック情報テーブル２５から検出される物理セクタアドレスＤは“Ｎ”となる。
【００７２】
図１０は、前記実施形態に係わるメモリライト処理において未ライトブロックが存在する物理セクタアドレスＤを検出できない例を示す図である。
【００７３】
図１０で示すように、メモリセクタアドレス群Ｃの各要素セクタアドレスが登録の古い順から“３”、“８”および“Ｎ”で構成され、仮想ブロックアドレスＢが“Ｍ”である場合には、検索列はｐ５１で示す検索列となり、登録の新しい物理セクタアドレスに対応したブロック（ｐ５２）から順番に検索する。この場合、検索されたブロックが全てライト済である、すなわち検索された全ての物理ブロックのブロック情報が全て“１”であり、検索列の中で登録順番が最新のライト済ブロックが検索されるまでに未ライトブロックが検出されないので、検出される物理セクタアドレスＤは無しとなる。
【００７４】
図１１は、前記実施形態に係わるブロック情報テーブル２５内のブロック情報の更新処理を示す図である。
【００７５】
つまり、図１１に示すように、検出された物理セクタアドレスＤが“８”であり、仮想ブロックアドレスＢが“Ｍ−１”である場合には、更新すべきブロック情報テーブル２５のブロック情報はｐ６１で示すブロックであるので、このブロック情報が“０”から“１”に書き換えられる、つまり未ライトブロックからライト済ブロックに更新される。
【００７６】
一方、ステップＡ３で「ＮＯ」と判断される、つまり仮想セクタアドレスＡに物理セクタアドレス群Ｃが対応付けられていない場合、または、ステップＡ４で「ＮＯ」と判断される、すなわち未ライトブロックである物理セクタアドレスＤが検出されない場合には、仮想セクタアドレスＡに対して書き込みに使用する未ライトブロックが対応付けられていないことになるので、データがライト可能な未ライトブロックを新たに得る。つまり、セクタアドレス変換テーブル２３に登録されていない物理セクタアドレスがブロック情報テーブル２５に新たに登録されて、この物理セクタアドレスが物理セクタアドレスＤとして設定される（ステップＡ６）。
【００７７】
ここで物理セクタアドレスＤの各ブロックはライト済であった可能性があるので、メモリインタフェース３を通じて物理セクタアドレスＤに対して消去処理すなわち物理セクタアドレスＤに属するブロックのブロック情報をすべて“０”に書き換える処理がなされる（ステップＡ７）。
【００７８】
そして、この物理セクタアドレスＤが、セクタアドレス変換制御部２４を介してセクタアドレス変換テーブル２３に仮想セクタアドレスＡに対応する新規物理セクタアドレスとして物理メモリセクタアドレス群Ｃの末尾の登録順番である物理セクタアドレスの直後の登録順番で登録され（ステップＡ８）、この新規物理セクタアドレスに属する各物理ブロックが未ライトブロックである物理ブロックとしてブロック情報制御部２６を介してブロック情報テーブル２５に登録される（ステップＡ９）。
【００７９】
図１２は、前記実施形態に係わるブロック情報テーブル２５に対する新規物理セクタアドレスの登録処理と、この登録処理に伴うブロック情報の更新処理を示す図である。
【００８０】
つまり、図１２に示すように、ステップＡ６で追加された新規物理セクタアドレスＤが“α”であった場合には、ステップＡ７により物理セクタアドレスＤ（＝“α”）に属するブロック情報が消去処理され、ｐ７１に示すように物理セクタアドレスＤ（＝α）の全ブロック情報は未ライトブロックとなり、ステップＡ８により、既存のブロック情報テーブル２５（ｐ７２）に新規物理セクタアドレスに属する各物理ブロックが登録される。
【００８１】
そして、未ライトブロックの検索対象の仮想ブロックアドレスＢが“Ｍ”であった場合には、物理セクタアドレスが“α”で、物理ブロックアドレスが“Ｍ”である物理ブロック（ｐ７３）の情報が未ライトブロックからライト済ブロックに更新され、すなわち“０”から“１”に書き換えられる。
【００８２】
ステップＡ５で「ＹＥＳ」と判断される、つまり物理セクタアドレスＤが検出された場合、または、ステップＡ８により新規物理セクタアドレスに属する物理ブロックがブロック情報テーブル２５に登録されると、物理セクタアドレスＤおよび物理ブロックアドレスＢから物理メモリアドレスＥが計算され、メモリインタフェース３を介してメモリライトつまり不揮発性メモリ１に対するデータの書き込みを指示するメモリアクセスコマンドが転送されて物理メモリアドレスＥに対してデータバッファ２２にあるシステム制御部４からのブロックデータが転送される（ステップＡ１０，Ａ１１）。
【００８３】
そして、ブロック情報制御部２６を介してブロック情報テーブル２５に登録される物理セクタアドレスＤと物理ブロックアドレスＢとに対応する物理ブロックのブロック情報がライト済を示す“１”に更新される（ステップＡ１２）。
【００８４】
つまり、メモリライト処理により、ライトすべき仮想セクタアドレスに対応付けられた物理セクタアドレス群の中から適当な未ライトブロックが存在する物理セクタアドレスが検出されるので、新規に物理セクタを割り当てる必要がないメモリ資源の有効活用が可能となる。
加えて、セクタアドレス変換テーブル２３では、仮想セクタのアドレスに対する物理セクタのアドレスの対応付けの順番を管理し、データライト処理の際には仮想ブロックアドレスＢと物理セクタアドレス群Ｃとで示される物理ブロックのうち仮想セクタアドレスＡと最も遅い順番で対応付けられた物理セクタのアドレスで特定される物理ブロックをデータライト対象の物理ブロックとする。
また、データライト処理の際に新たな物理セクタのアドレスを仮想セクタのアドレスと対応付けた場合には、この物理セクタのアドレスを仮想セクタのアドレスと対応付けた順番が最新であるとして管理する。よってデータライト処理の際には、ブロック情報テーブル２５で管理する同一の物理ブロックアドレスと対応する物理ブロック群のうち、新しくデータライトを行なった物理ブロックの仮想セクタアドレスとの対応付けの順番より古い順番で当該仮想セクタアドレスと対応付けられたアドレスで示される物理ブロックのブロック情報を更新する必要がなくなる。
【００８５】
次に、メモリ制御装置によるメモリリード（読み出し）処理について説明する。
【００８６】
図１３は、前記実施形態に係わるメモリ制御装置によるメモリリード処理（その１）を示すフローチャートである。
【００８７】
図１４は、前記実施形態に係わるメモリ制御装置によるメモリリード処理（その２）を示すフローチャートである。
【００８８】
図１３および図１４に示すように、まず、システム制御部４よりコマンドバス１１を介してメモリ管理部２にメモリリード命令（読み出し命令）が与えられるとともに、仮想メモリアドレスバス１２を介して仮想メモリアドレスがメモリ制御部２１に転送されると、仮想メモリアドレスがメモリ制御部２１により仮想セクタアドレスＡと仮想ブロックアドレスＢとに分けられる（ステップＢ１）。
【００８９】
次に、セクタアドレス変換制御部２４によりセクタアドレス変換テーブル２３が読み出されて、このセクタアドレス変換テーブル２３と仮想セクタアドレスＡとが照合されて、該仮想セクタアドレスＡに対応付けられる一つまたは複数の物理セクタアドレスで構成される物理セクタアドレス群Ｃが存在するかどうかが判断される（ステップＢ２，Ｂ３）。
【００９０】
ステップＢ３で「ＹＥＳ」と判断される、つまり仮想セクタアドレスＡに物理セクタアドレス群Ｃが対応付けられる場合には、ブロック情報制御部２６によりブロック情報テーブル２５が読み出されて、このブロック情報テーブル２５において、物理セクタアドレス群Ｃに属する各物理セクタアドレスおよび仮想ブロックアドレスＢと同じアドレス値の物理ブロックアドレスＢに基づいて、各ブロックの中にライト済ブロックすなわちブロック情報が“１”であるブロックが含まれているかどうかが判断され、ライト済ブロックが含まれていれば、そのうち一つの物理ブロックが属する物理セクタアドレスが物理セクタアドレスＤとして検出され、ライト済ブロックが含まれていない場合には、検索列のなかでいずれかの物理ブロックが属する物理セクタアドレスが物理セクタアドレスＤとして検出される（ステップＢ４）。
【００９１】
図１５は、前記実施形態に係わるメモリリード処理においてライト済ブロックが存在する物理セクタアドレスＤが検出される例を示す図である。
【００９２】
つまり、図１５に示すように、仮想セクタアドレスＡに対応付けられる物理セクタアドレス群Ｃに属する各物理セクタアドレスが、その登録順番の古い順から“３”，“８”および“Ｎ”である場合で、仮想ブロックアドレスＢが“Ｍ−１”である場合には、検索の対象となる物理ブロックはｐ８１で示す検索列となり、検索する順番は、物理セクタアドレス群Ｃに属する各物理セクタアドレスの登録順番の新しい方から古い方に、つまり物理セクタアドレスが“Ｎ”で物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ８２）から検索され、次に物理セクタアドレスが“８”で、物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ８３）が検索され、最後に物理セクタアドレスが“３”で、物理ブロックアドレスが“Ｍ−１”で対応付けられる物理ブロック（ｐ８４）が検索されることになる。
【００９３】
そして、物理セクタアドレスの登録順番に従って、検索列のなかで最初に検出されたライト済ブロック、つまり、物理セクタアドレスが“８”、物理ブロックアドレスが“Ｍ−１”のブロック（ｐ８３）がライト済ブロックとして検出され、検出される物理セクタアドレスＤは“８”となる。
【００９４】
図１６は、前記実施形態に係わるメモリリード処理においてライト済ブロックが存在する物理セクタアドレスＤが検出されない例を示す図である。
【００９５】
図１６で示すように、メモリセクタアドレス群Ｃの各要素セクタアドレスが登録の古い順から“３”、“８”および“Ｎ”で構成され、仮想ブロックアドレスＢが“１”である場合には、検索列はｐ９１で示す検索列となり、登録の新しい物理セクタアドレスに対応したブロックから順番にｐ９２、ｐ９３およびｐ９４で示す物理ブロックが順番に検索される。この場合、検索されたブロックが未ライトブロックである、すなわちブロック情報が“１”であるライト済ブロックが検出されないので、検索列において最初に検出された未ライトブロック（ｐ９２）が属する物理セクタアドレス、つまり検索列のブロックが属する最新の物理セクタアドレスつまり物理セクタアドレス“Ｎ”が物理セクタアドレスＤとして検出される。
【００９６】
なお、ここで検出される物理セクタアドレスＤは検索列の物理ブロックが属する最新の物理セクタアドレスに限らずに、検出条件を変えることにより、検索列（ｐ９１）に属するいずれかの物理ブロックに属する物理セクタアドレスが物理セクタアドレスＤとして検出されてもよい。
【００９７】
一方、ステップＢ３で「ＮＯ」と判断される、つまり仮想セクタアドレスＡに物理セクタアドレス群Ｃが対応付けられていない場合には、仮想セクタアドレスＡに対して物理ブロックが対応付けられていないことになるので、データリードが可能な物理ブロックを新たに得るためにセクタアドレス変換制御部２４からセクタアドレス変換テーブル２３に登録されていない物理セクタアドレスがブロック情報テーブル２５に追加登録され、この物理セクタアドレスが物理セクタアドレスＤとして設定される（ステップＢ５）。
【００９８】
なお、この設定された物理セクタアドレスＤの各ブロックはライト済であった可能性があるので、メモリインタフェース３を通じて物理セクタアドレスＤに対する消去処理がなされる（ステップＢ６）。
【００９９】
そして、この物理セクタアドレスＤが、セクタアドレス変換制御部２４を介してセクタアドレス変換テーブル２３に仮想セクタアドレスＡに対応する新規物理セクタアドレスとして物理メモリセクタアドレス群Ｃの末尾の登録順番である物理セクタアドレスの直後の登録順番で登録され（ステップＢ７）、この新規物理セクタアドレスに属する各物理ブロックが未ライトブロックである物理ブロックとしてブロック情報制御部２６を介してブロック情報テーブル２５に登録される（ステップＢ８）。
【０１００】
図１７は、前記実施形態に係わるブロック情報テーブル２５に対する新規物理セクタアドレスの登録処理を示す図である。
【０１０１】
つまり、図１７に示すように、ステップＢ５で追加された新規物理セクタアドレスＤの値が“γ”であった場合には、ステップＢ６により物理セクタアドレスＤ（＝“γ”）に属するブロック情報が消去処理され、ｐ１０１で示すように物理セクタアドレスＤ（＝“γ”）の全ブロック情報は未ライトブロックとなり、ステップＢ８により、既存のブロック情報テーブル２５（ｐ１０２）に新規物理セクタアドレスに属する各物理ブロックが登録される。
【０１０２】
ステップＢ４で物理セクタアドレスＤが検出された場合、または、ステップＢ８により新規物理セクタアドレスに属する物理ブロックがブロック情報テーブル２５に登録された場合には、物理セクタアドレスＤおよび物理ブロックアドレスＢから物理メモリアドレスＥが計算され、メモリインタフェース３を介して不揮発性メモリ１にデータリードを指示するメモリアクセスコマンドが転送されて物理メモリアドレスＥに対してデータバッファ２２にあるシステム制御部４からのブロックデータが転送される（ステップＢ９，Ｂ１０）。
【０１０３】
つまり、このメモリリード処理では、セクタアドレス変換テーブル２３で未だ対応付けられてない仮想セクタアドレスに全ブロックが未使用の物理セクタアドレスを対応付けることにより、同仮想セクタアドレスにデータライトを行う場合に、新規物理セクタの対応付け処理が不要となることから、ライト処理速度が向上する。
【０１０４】
図１８は、前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その１）を示すフローチャートである。
【０１０５】
図１９は、前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その２）を示すフローチャートである。
【０１０６】
図２０は、前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その３）を示すフローチャートである。
【０１０７】
このメモリ結合処理は、仮想メモリアドレスで指定される仮想セクタアドレスがセクタアドレス変換テーブル２３により複数の物理セクタアドレスと対応付けられる場合、複数の物理セクタアドレスの各有効ブロック（最も新しい物理セクタアドレスに属する物理ブロック）を一つの物理セクタアドレスに属する各物理ブロックに結合する命令である。
【０１０８】
なお、結合先の物理セクタアドレスは、新規物理セクタアドレスと既存の物理セクタアドレスを任意に選択できるものとする。
【０１０９】
図１８〜図２０に示すように、まず、システム制御部４よりコマンドバス１１を介してメモリ管理部２にメモリ結合命令が与えられるとともに、仮想メモリアドレスバス１２を介して仮想メモリアドレスがメモリ制御部２１に転送されると、仮想メモリアドレスがメモリ制御部２１により仮想セクタアドレスＡと仮想ブロックアドレスＢとに分けられる（ステップＣ１）。
【０１１０】
次に、セクタアドレス変換制御部２４によりセクタアドレス変換テーブル２３が読み出されて、このセクタアドレス変換テーブル２３において、仮想セクタアドレスＡに対応付けられる物理セクタアドレス群Ｈが検索されて（ステップＣ２）、この物理セクタアドレス群Ｈから結合元である結合元物理セクタアドレス群Ｃが任意決定される（ステップＣ３）。なお、この結合元物理セクタアドレス群Ｃにおける各物理セクタアドレスの登録順番は連続したものであるとする。
【０１１１】
次に、結合元物理セクタアドレス群Ｃが二つ以上の物理セクタアドレスで構成される物理セクタアドレス群であるかどうかが判断される（ステップＣ４）。
【０１１２】
このステップＣ４で「ＮＯ」と判断されれば、結合すべき物理セクタアドレス群が存在しないので終了処理がなされるが、「ＹＥＳ」と判断されれば、結合先となる結合先物理セクタアドレスＦが、結合元物理セクタアドレス群Ｃのうちの一つであるのか、結合元物理セクタアドレス群Ｃに属さない新規の物理セクタアドレスであるかどうかが判断される（ステップＣ５）。
【０１１３】
ステップＣ５で「ＹＥＳ」と判断される、すなわち、結合元物理セクタアドレス群Ｃから一つの物理セクタアドレスが結合先物理セクタアドレスＦとして使用される場合には、結合元物理セクタアドレス群Ｃの中で最新登録の物理セクタアドレス、例えば結合元物理セクタアドレス群Ｃを構成する各物理セクタアドレスが“３”、“８”および“Ｎ”である場合には、物理セクタアドレス“Ｎ”が結合先物理セクタアドレスＦとして選択される（ステップＣ６）。
【０１１４】
結合先物理セクタアドレスＦの選択方法は、物理セクタアドレス群Ｃの直後の物理セクタアドレスを選択する方法としてもよく、この場合、仮想メモリアドレスに対応する物理セクタアドレス群Ｈを構成する各物理セクタアドレスが“３”、“８”、“Ｎ”、および“Ｋ”であって、この中で結合元物理セクタアドレス群Ｃを構成する各物理セクタアドレスが“３”、“８”および“Ｎ”である場合には、物理セクタアドレス“Ｋ”が結合先物理セクタアドレスＦとして選択される。
【０１１５】
なお、物理セクタアドレス群Ｈの最新物理セクタアドレスが結合先物理セクタアドレスＦそのものであった場合、例えば、物理セクタアドレス群Ｈを構成する各物理セクタアドレスと、結合元物理セクタアドレス群Ｃを構成する各物理セクタアドレスがともに“３”、“８”および“Ｎ”である場合には、物理セクタアドレス“Ｎ”が結合先物理セクタアドレスＦとして選択される。
【０１１６】
ステップＣ５で「ＮＯ」と判断される、つまり、結合先物理セクタアドレスＦが結合元物理セクタアドレス群Ｃに含まれないと指定された場合には、セクタアドレス変換テーブル２３に登録されていない物理セクタアドレスがブロック情報テーブル２５に追加登録されて、この物理セクタアドレスが結合先物理セクタアドレスＦとして設定される（ステップＣ７）。
【０１１７】
ここで、結合先物理セクタアドレスＦの各ブロックはライト済であった可能性があるので、メモリインタフェース３を通じて結合先物理セクタアドレスＦに対して消去処理がなされる（ステップＣ８）。
【０１１８】
そして、この物理セクタアドレスＤが、セクタアドレス変換制御部２４を介してセクタアドレス変換テーブル２３に仮想セクタアドレスＡに対応する新規物理セクタアドレスとして物理メモリセクタアドレス群Ｃの末尾の登録順番である物理セクタアドレスの直後の登録順番で登録され（ステップＣ９）、この新規物理セクタアドレスに属する各物理ブロックが未ライトブロックである物理ブロックとしてブロック情報制御部２６を介してブロック情報テーブル２５に登録される（ステップＣ１０）。
【０１１９】
図２１は、前記実施形態に係わるメモリ結合処理におけるブロック情報テーブル２５での登録処理および削除処理を示す図である。
【０１２０】
つまり、図２１に示すように、ｐ１１１〜ｐ１１３に示される結合元物理セクタアドレス“３”、“８”および“Ｎ”に属する各物理ブロックに対して、ｐ１１４で示されるように結合先物理セクタアドレス“α”に属する各物理ブロックが未ライトブロックとしてブロック情報テーブル２５にそれぞれ登録される。
【０１２１】
次に、結合元物理セクタアドレス群Ｃに属する各物理ブロックの中から最新のライト済ブロックを検索する対象となる物理ブロックアドレスの範囲である、物理ブロックアドレス範囲Ｉが指定されて、物理ブロックアドレス範囲Ｉの初期値（＝“０”）が設定される（ステップＣ１１）。なお、任意に選択した物理ブロックアドレスだけを選択することもできる。
【０１２２】
そして、指定された物理ブロックアドレス範囲Ｉの先頭の物理ブロックアドレスである各物理セクタアドレスのブロック情報が未ライトブロックであるかライト済ブロックであるかどうかが判別され、最初に判別されたライト済ブロックに属する物理セクタアドレスが、物理セクタアドレスＤとして検出される（ステップＣ１２）。
【０１２３】
図２２は、前記実施形態に係わるメモリ結合処理においてライト済ブロックが存在する物理セクタアドレスＤを検出する例を示す図である。
【０１２４】
つまり、図２２に示すように、結合元物理セクタアドレス群Ｃに属する各物理セクタアドレスが、その登録順番の古い順から“３”、“８”および“Ｎ”である場合で、物理ブロックアドレス範囲Ｉの先頭の物理ブロックアドレスが“０”である場合には、検索の対象となるブロックはｐ１２１で囲まれた検索列となり、検索される順番は、物理セクタアドレス群Ｃに属する各物理セクタアドレスの登録順番の新しい方から古い方に、つまり物理セクタアドレスが“Ｎ”で物理ブロックアドレスが“０”で対応付けられる物理ブロック（ｐ１２２）から検索され、次に、物理セクタアドレスが“８”で、物理ブロックアドレスが“０”で対応付けられる物理ブロック（ｐ１２３）が検索され、最後に物理セクタアドレスが“３”で、物理ブロックアドレスが“０”で対応付けられる物理ブロック（ｐ１２４）が検索されることになる。
【０１２５】
そして、物理セクタアドレスの登録順番に従って、検索列のなかで最初に検出されたライト済ブロック、つまり、物理セクタアドレスが“８”で、物理ブロックアドレスが“０”である物理ブロックがライト済ブロックとして検出され、この検索列において検出されたライト済ブロックが属する物理セクタアドレスである物理セクタアドレスＤは“８”となる。
【０１２６】
図２３は、前記実施形態に係わるメモリ結合処理においてライト済ブロックが存在する物理セクタアドレスＤが検出されない例を示す図である。
【０１２７】
つまり、図２３に示すように、メモリセクタアドレス群Ｃの各要素セクタアドレスが登録の古い順から“３”，”８”および“Ｎ”で構成され、物理ブロックアドレスＢが“１”である場合には、検索列はｐ１３１で囲まれた検索列となり、登録順番の新しい物理セクタアドレスに対応したブロックから順番に検索される。この場合、検索されたブロックが未ライトブロックである、すなわちライト済ブロックが検出されないので、物理セクタアドレスＤは検出されない。
【０１２８】
そして、ステップＣ１２により物理セクタアドレスＤが検出されたかどうかが判断され（ステップＣ１３）、「ＹＥＳ」と判断された場合には、この物理セクタアドレスＤと、物理ブロックアドレス範囲Ｉのなかで現在検索対象となっている各物理ブロックが属する物理ブロックアドレスから物理メモリアドレスＥが計算されるとともに、結合先物理セクタアドレスＦと、物理ブロックアドレス範囲Ｉのなかで現在検索対象となっている物理ブロックが属する物理ブロックアドレスから物理メモリアドレスＧが計算され、メモリインタフェース３を介して物理メモリアドレスＥから物理メモリアドレスＧに対してブロックデータが反映（コピー）される。ただし、物理メモリアドレスＥとＦが同じアドレスであればデータコピーの必要はない（ステップＣ１４）。
【０１２９】
そして、ブロック情報制御部２６を介してブロック情報テーブル２５に登録される物理セクタアドレスＦの物理ブロックアドレス範囲Ｉに対応するブロック情報がライト済を示すブロック情報すなわち“１”に更新される（ステップＣ１５）。
【０１３０】
つまり、図２１に示すように、物理セクタアドレス群Ｃにおける最新ライト済ブロックのデータがコピーされる毎に、ｐ１１４で示された物理セクタアドレス“α”に属する各物理ブロックの中から、ステップＣにより検索された結果ライト済ブロックが存在する物理ブロックアドレスと同一の物理ブロックのブロック情報が、ｐ１１５で示されるブロック情報である“１”に更新される。
【０１３１】
次に、物理ブロックアドレスが、物理ブロックアドレス範囲Ｉにおける最後のブロックアドレスつまり物理ブロックアドレスＭであるかどうかが判断され（ステップＣ１６）、このステップＣで「ＮＯ」と判断される、すなわち物理ブロックアドレスが物理セクタアドレスアドレスＭでなく、検索すべき物理ブロックアドレスに属する物理ブロックが残っている場合には、現在検索対象となっている物理ブロックアドレスの値に１を加えた物理ブロックアドレスに属する各物理ブロックのブロック情報の判別が引き続きなされる（ステップＣ１６→Ｃ１７→Ｃ１２）。
【０１３２】
図２４は、前記実施形態に係わるメモリ結合処理において、最新ライト済ブロックの検出例を示す図である。
【０１３３】
図２４に示すように、物理ブロックアドレス範囲Ｉの先頭が“０”で、同じく最後が“Ｍ”である場合で、検索順番が、物理ブロックアドレス“Ｎ”、“８”そして“３”の順番である場合には、ｐ１３２で示す物理ブロックが、各物理ブロックアドレスに属する物理ブロックの中から最新ライト済ブロックとして検出される物理ブロックとなる。
【０１３４】
次に、ブロック情報制御部２６を介してブロック情報テーブル２５に登録される結合元物理セクタアドレス群Ｃに属する物理ブロックの全ブロック情報が消去すなわち“０”に更新処理される（ステップＣ１８）。ただし、結合先物理セクタアドレスＦが結合元物理セクタアドレス群Ｃに属する物理セクタアドレスの中で最新の登録アドレスであれば、物理セクタアドレスＦに属する物理ブロック情報の消去はなされない。
【０１３５】
そして、結合元物理セクタアドレス群Ｃに対する物理ブロックアドレス範囲Ｉ毎の最新ライト済ブロックのデータは、全て結合先物理セクタアドレスＦの物理ブロックに存在するので、セクタアドレス変換制御部２４を介してセクタアドレス変換テーブル２３から結合元物理セクタアドレス群Ｃが削除される（ステップＣ１９）。
【０１３６】
ただし、結合先物理セクタアドレスＦが結合元物理セクタアドレス群Ｃの中で最新登録の物理セクタアドレスであれば、物理セクタアドレスＦの削除はなされない。
【０１３７】
つまり、図２１に示すように、物理セクタアドレス群Ｃの各物理セクタアドレスが“３”、“８”および“Ｎ”である場合には、ステップＣ１９により、ｐ１１１〜ｐ１１３で示される物理セクタアドレス、つまり“３”、“８”および“Ｎ”の全てがブロック情報テーブル２５およびセクタアドレス変換テーブル２３から削除されるが、結合先物理セクタアドレスＦが結合元物理セクタアドレス群Ｃの中の最新登録アドレスである“Ｎ”であれば、ｐ１１１とｐ１１２で示される物理セクタアドレスつまり“３”と“８”のみがブロック情報テーブル２５およびセクタアドレス変換テーブル２３から削除される。
【０１３８】
図２５は、前記実施形態に係わるメモリ結合処理においてセクタアドレス変換テーブル２３での登録処理および削除処理を示す図である。
【０１３９】
図２５に示すように、仮想セクタアドレスＡが“０”であり、この仮想セクタアドレス“０”がセクタアドレス変換テーブル２３により物理セクタアドレス群Ｈに属する物理セクタアドレス“３”、“８”、“Ｎ”および“Ｋ”で対応付けられ、結合先物理セクタアドレスＦが“α”であり、結合元物理セクタアドレス群Ｃに属する各物理セクタアドレスの“３”、“８”および“Ｎ”が選択された場合、新規物理セクタアドレス“α”は、ｐ１４１で示される結合元物理セクタアドレス群Ｃの末尾の物理セクタアドレス“Ｎ”の直後（ｐ１４２）に登録される。
【０１４０】
その結果、仮想セクタアドレス“０”は、一時的に物理セクタアドレス群“３”、“８”、“Ｎ”、“α”および“Ｋ”と対応付けられる。
【０１４１】
この場合には、図２０に示すステップＣ１９の処理により、ｐ１４１で示す結合元物理セクタアドレス群Ｃ“３”，”８”および”Ｎ”の登録が消去されることになり（ｐ１４３）、その結果、仮想セクタアドレスＡはアドレス変換テーブルで物理セクタアドレス群Ｈの物理セクタアドレスの“α”と”Ｋ”に対応付けられることになる。
【０１４２】
また、結合元物理セクタアドレス群Ｃが“３”、“８”および“Ｎ”であり、結合先物理セクタアドレスＦが既存物理セクタアドレス“Ｎ”であり、仮想セクタアドレスＡが“０”であり、仮想セクタアドレスＡはアドレス変換テーブルで物理セクタアドレス群Ｈに属する物理セクタアドレスの“３”、“８”、“Ｎ”および“Ｋ”で対応付けられる場合には、図２０に示すステップＣ１９の処理により結合元物理セクタアドレス群Ｃに属する物理セクタアドレスの“３”および“８”の登録が消去されることになり（ｐ１４４）、その結果、仮想セクタアドレスＡはアドレス変換テーブルで物理セクタアドレス群Ｈに属する物理セクタアドレスの”Ｎ”と“Ｋ”に対応付けられることになる。
【０１４３】
また、結合元物理セクタアドレス群Ｃに属する物理セクタアドレスが“３”、“８”および“Ｎ”であり、結合先物理セクタアドレスＦが既存の物理セクタである“Ｋ”であり、仮想セクタアドレスＡが“０”であり、仮想セクタアドレスＡはアドレス変換テーブルで物理セクタアドレス群Ｈに属する物理セクタアドレスの“３”、“８”、“Ｎ”および“Ｋ”に対応付けられる場合、図２０に示すステップＣ１９の処理により、ｐ１４１で示す結合元物理セクタアドレス群Ｃに属する物理セクタアドレスの“３”、“８”および“Ｎ”の登録が消去されることになり（ｐ１４３）、その結果、仮想セクタアドレスＡはアドレス変換テーブルで物理セクタアドレス群Ｈに属する物理セクタアドレスの“Ｋ”に対応付けられることになる。
【０１４４】
図２６は、前記実施形態に係わるメモリ結合処理において、結合対象となる物理ブロックアドレスを任意に選択する場合の処理を示すフローチャートである。
【０１４５】
なお、図２６に示すフローチャートは、図１８〜図２０に示すフローチャートの一部を置き換えたものである。
【０１４６】
まず、図２６に示すように、まず、結合先セクタアドレスの選択処理すなわち図１９に示すステップＣ１〜Ｃ１０と同様の処理がなされると（ステップＣ２０）、結合の対象とすべき物理ブロックアドレス群Ｊの範囲が任意に設定される（ステップＣ２１）。ここで物理ブロックアドレス群Ｊの設定方法は特に問わない。例えば、図１８に示すステップＣ１の処理において分けられる物理ブロックアドレスＢが使用されてもよいし、データバス１３を介して物理ブロックアドレス群Ｊの情報を得ることで設定がなされてもよい。
【０１４７】
そして、結合対象となる物理ブロックアドレスを示す物理ブロックアドレス範囲Ｉに基づいて物理ブロックアドレス群Ｊの先頭要素が設定され（ステップＣ２２）、結合処理すなわち図２０に示すステップＣ１２〜Ｃ１５と同様の処理がなされる（ステップＣ２３）。なお、ステップＣ２３において、最新ライト済の物理セクタアドレスが検出されたかどうかが判断される場合、つまり、図２０に示すステップＣ１２と同様の処理により物理セクタアドレスＤが検出されないと判断された場合には、物理ブロックアドレス範囲Ｊにおいて現在結合処理がなされている物理ブロックアドレス値に対して１を加えた物理ブロックアドレスに係る結合処理がなされる（ステップＣ１３→Ｃ１７→Ｃ１２）。
【０１４８】
そして、ステップＣ２３までの処理終了後に、物理ブロックアドレス範囲Ｉが物理ブロックアドレス群Ｊの最終要素であるかどうかの判断がなされ（ステップＣ２４）、「ＹＥＳ」と判断されると終了処理がなされ、「ＮＯ」と判断される。つまり最終要素で無ければ、物理ブロックアドレス範囲Ｊにおいて現在結合処理がなされている物理ブロックアドレス値に対して１を加えた物理ブロックアドレスに係る結合処理がなされる（ステップＣ２４→Ｃ２５→Ｃ２３）。
【０１４９】
なお、図２０に示すステップＣ１８およびＣ１９の処理はなされない。これは、図１８〜図２０に示す結合処理が結合元の物理セクタアドレスに属する全ブロックに対する処理なのに対して、一部分の物理ブロックアドレスの範囲において結合処理がなされるため、結合処理が終了しても結合元の物理セクタアドレスに属する各物理ブロックの中に有効ブロックつまり結合先物理セクタアドレスに属する物理ブロックに対して結合処理がなされていない物理ブロックが存在する可能性があるためである。
【０１５０】
つまり、このメモリ結合処理により、セクタアドレス変換テーブル２３とブロック情報テーブル２５により複数の物理セクタアドレスとを対応付けられた仮想セクタアドレスが一つの物理セクタアドレスと対応づけられるので、メモリ資源を状況に応じて有効に使用することができる。
加えて、セクタアドレス変換テーブル２３では、前述したように仮想セクタのアドレスに対する物理セクタのアドレスの対応付けの順番を管理し、メモリ結合処理の際には仮想ブロックアドレスＢと結合元物理セクタアドレス群Ｃで示される物理セクタのうち仮想セクタアドレスＡと最も遅い順番で対応付けられた物理セクタのアドレスで示される物理ブロックのブロック情報を結合先物理セクタアドレスＦに属する物理ブロックへの反映対象のブロック情報とする。
よってメモリ結合処理の際にはブロック情報テーブル２５で管理する結合元物理セクタアドレス群Ｃで示される物理ブロックのうちブロック情報が結合先物理セクタアドレスＦに属する物理ブロックに反映された物理ブロックのブロック情報を更新する必要がなくなる。
【０１５１】
図３２は、従来のメモリ制御装置において、全ブロックに対して任意のデータライトを行った仮想セクタに対してオーバライトする時の例を示した図であり、同図（ａ）は、仮想セクタに対してデータを書き込む前の状態を示す図であり、同図（ｂ）は、仮想セクタに対してデータを書き込む際の物理セクタに対する処理を示す図である。
【０１５２】
まず、図３２（ａ）において、既に全ブロックに対して任意のデータライトがなされた仮想セクタＧは物理セクタＸとセクタアドレス変換制御部２４により対応付けられる。ここで、仮想セクタＧの０番ブロックに任意のブロックデータ（Ｐ１５１）をライトすると仮定すると、既に実際にライトすべき物理セクタＸ上のｐ１５２で示す物理ブロックはライト済であるので、ブロックデータ（ｐ１５１）は、新たに用意された、物理ブロックが全て未ライトブロックである物理セクタＹ上の、０番ブロックつまり物理ブロックアドレスが“０”である物理ブロック（ｐ１５３）にライトされ、物理セクタＸ上のライト対象外の全ブロックすなわち仮想セクタＧの１番ブロックからＭ番ブロックまでのブロック群に対応付けられていたｐ１５４に示す物理ブロック群のブロックデータが、新たに対応付けられた物理セクタＹの１番ブロックからＭ番ブロックである物理ブロック群（ｐ１５５）にコピーされ、図３２（ｂ）に示すようにセクタアドレス変換制御部２４により仮想セクタＧと物理セクタＸとの対応付けが無くなり、新しい物理セクタＹが仮想セクタと対応付けられる。
【０１５３】
つまり、物理メモリへの一つのブロックのライト時間をｘ、リード時間をｙ、一つのセクタがＭ個のブロックで構成されていると仮定すると、ブロックデータのライト処理に要したメモリアクセス合計時間Ｔ１は、
【数１】
0003699942.tif 000002
となる。
【０１５４】
図２７は、本発明の実施形態に係わるメモリ制御装置において、全ブロックに対して任意のデータライトを行った仮想セクタに対してオーバライトする時の例を示した図であり、同図（ａ）は、仮想セクタに対して一つ目のデータを書き込む前の状態を示す図であり、同図（ｂ）は、仮想セクタに対して一つ目のデータを書き込む際の物理セクタに対する処理および二つめのデータを書き込む前の状態を示す図であり、同図（ｃ）は、仮想セクタに対して二つめのデータを書き込む際の物理セクタに対する処理を示す図である。
【０１５５】
まず、図２７（ａ）において、既に全ブロックに対して任意のデータライトがなされた仮想セクタＧは物理セクタＸとセクタアドレス変換制御部２４により１対１で対応付けられる。ここで、仮想セクタＧの０番ブロックに任意のブロックデータ（ｐ１６１）をライトするものと仮定する。
【０１５６】
このとき、既に実際にライトすべき物理メモリ上の物理ブロック（ｐ１６２）はライト済であるので、図２７（ｂ）に示すように、セクタアドレス変換制御部２４により新しい物理セクタＹが用意され、ブロックデータ（ｐ１６１）が物理セクタＹ上の０番ブロックつまり物理ブロックアドレスが“０”である物理ブロック（ｐ１６３）にライトされ、セクタアドレス変換制御部２４により仮想セクタＧに対して物理セクタＹが新たに対応付けられる。このとき、仮想セクタＧと物理セクタＸとの対応付けは残ったままであるので、仮想セクタＧが物理セクタＸと物理セクタＹがともに対応付けられることになる。更に仮想セクタＧの０番ブロックに対応付けられる物理セクタＸの０番ブロック（ｐ１６２）と、同じく仮想セクタＧの０番ブロックに対応付けられる物理セクタＹの０番ブロック（ｐ１６３）のどちらのブロックに書き込まれたデータが有効すなわち最新ライト済のデータであるかを判別するためにブロック情報制御部２６でブロック情報が管理される。
【０１５７】
図３２と同様に、物理メモリへの一つのブロックのライト時間をｘ、リード時間をｙとし、一つのセクタがＭ個のブロックで構成されていると仮定すると、ブロックデータのライト処理終了までに要したメモリアクセス合計時間Ｔ２は、
【数２】
0003699942.tif 000003
となる。
【０１５８】
なお、この場合、物理セクタＸの１番ブロックからＭ番ブロックまでのブロックデータ（ｐ１６７）は仮想セクタＧの１番ブロックからＭ番ブロックまでに対応付けられることになる。
【０１５９】
更に、図２７（ｂ）において、仮想セクタＧの１番ブロックに任意のデータ（ｐ１６４）をライトすると仮定する。
【０１６０】
この場合、実際にライトすべき物理セクタＹ上の１番ブロック（ｐ１６５）は空であるので、図２７（ｃ）で示すように、新規ブロックデータ（ｐ１６４）が物理セクタＹ上の１番ブロック（ｐ１６５）にライトされ、物理セクタＸ上の１番ブロック（ｐ１６６）と物理セクタＹ上の１番ブロック（ｐ１６５）のどちらのブロックに書き込まれたデータが有効であるかを判別するためにブロック情報制御部２６でブロック情報が管理される。
【０１６１】
なお、物理セクタＸの２番ブロックからＭ番ブロックまでのブロックデータ（ｐ１６８）は仮想セクタＧの２番ブロックからＭ番ブロックまでに対応付けられることになる。
【０１６２】
この場合、新規ブロックデータ（ｐ１６４）のライト処理終了までに要したメモリアクセス合計時間Ｔ３は、
【数３】
0003699942.tif 000004
となる。
【０１６３】
図２８は、前記実施形態に係わるポインタ式ブロック情報テーブル２５の構成を示す図である。
【０１６４】
図２８に示すように、このポインタ式ブロック情報テーブル２５は、図６に示すフラグ式ブロック情報テーブル２５に代わって用いられるものであり、メモリ制御装置において、セクタ内のランダムブロックプログラムすなわち物理ブロック毎のブロック情報管理処理が禁止されている不揮発性メモリ１、および不揮発性メモリ１に対して自らランダムブロックプログラムが禁止されている場合に用いられるブロック情報テーブル２５である。
【０１６５】
このポインタ式ブロック情報テーブル２５では、ブロック情報制御部２６からの制御により、物理セクタアドレスをインデックス値としてこのインデックスに対応して未ライト、もしくはライト済の連続した物理ブロックの範囲の情報を、登録（ｐ１７１）、更新（ｐ１７２）および削除（ｐ１７３）することが可能であり、テーブル値すなわち物理ブロックの情報は各物理セクタに対するライト済の最終物理ブロックアドレス値もしくは、未ライトの先頭物理ブロックアドレス値である。
【０１６６】
例えば、ポインタ式のブロック情報テーブル２５に未ライトの先頭物理ブロックアドレス値を登録する場合で、ｐ１７４で示された物理セクタアドレスと物理ブロックアドレス値との関係は、物理セクタアドレスＢが物理ブロックアドレスβから最終ブロックまで未使用状態なことを示し、ｐ１７５で示された物理セクタアドレスと物理ブロックアドレス値との関係は、物理セクタアドレスＡが物理ブロックアドレスαからセクタの最終ブロックまで未使用状態なことを示している。
【０１６７】
また、ポインタ式のブロック情報テーブル２５にライト済の最終物理ブロックアドレスを登録する場合で、ｐ１７４で示された物理セクタアドレスと物理ブロックアドレス値との関係は、物理セクタアドレスＢが先頭ブロックから物理ブロックアドレスβまで使用状態にあることを示し、ｐ１７５で示された物理セクタアドレスと物理ブロックアドレス値との関係は、物理セクタアドレスＡが先頭ブロックから物理ブロックアドレスαまで使用状態にあることを示している。ただし、全ての物理ブロックが未使用である場合には、例えば“−１”などの、使用しない物理ブロックアドレス値を割り当てるものとする。
【０１６８】
図２９は、前記実施形態に係わるポインタ式ブロック情報テーブル２５における仮想セクタと物理セクタの各物理ブロックとの対応を示す図であり、同図（ａ）は、仮想セクタが一つの物理セクタの各物理ブロックと対応付けられた場合を示す図であり、同図（ｂ）は、仮想セクタが複数の物理セクタの各物理ブロックと対応付けられた場合を示す図である。
【０１６９】
この、仮想セクタと物理セクタの各物理ブロックとの対応とは、セクタアドレス変換テーブル２３において、仮想セクタＫ（ｐ１８１）が、それに対する登録順番の古い方から物理セクタアドレスＢ，Ａの順番で対応付けられると仮定した仮想セクタＫが、図２８のｐ１７４、ｐ１７５で示すように物理セクタアドレスＡ，Ｂと対応付けられる場合に、仮想セクタの各ブロックと、物理セクタの各物理ブロックとの対応を示している。
【０１７０】
なお、仮想セクタと物理セクタで共通となるブロックアドレス値は、未使用先頭ブロックオフセットアドレス値が登録されているものとし、“α”および“β”は最大物理ブロックアドレス“Ｍ”以外のブロックアドレス値であるものとする。
【０１７１】
図２９（ａ）に示すように、“α”＞“β”の場合には、ｐ１８２で示すように、仮想セクタＫの０ブロックからβ−１ブロックまでは物理セクタアドレスＢの０ブロックからβ−１ブロックが対応し、ｐ１８３で示すように、“β”ブロックから“α−1”ブロックまでは物理セクタアドレスＡの“β”ブロックから“α−1”ブロックが対応し、ｐ１８４で示すように、“α”から“Ｍ”ブロックまでは未使用ブロックで対応づけられる。
【０１７２】
また、図２９（ｂ）に示すように、“α”≦“β”の場合には、ｐ１８５で示すように、仮想セクタＫの“０”ブロックから“β−１”ブロックまでは物理セクタアドレスＢの“０”ブロックから“β−１”までが対応し、また、ｐ１８６で示すように、“β”から“Ｍ”ブロックまでは未使用ブロックで対応づけられる。
【０１７３】
つまり、図２９（ａ）に示すような場合には、仮想セクタＫと対応付けられる物理セクタアドレスＡのブロックアドレスの範囲が、同じく仮想セクタＫと対応付けられる物理セクタアドレスＢの範囲と重複しないために、仮想セクタＫの各仮想ブロックは物理セクタアドレスＡおよび物理セクタアドレスＢに属する各物理ブロックと対応付けられるが、図２９（ｂ）に示すような場合には、仮想セクタと対応付けられる物理セクタアドレスＡのブロックアドレスの範囲が、同じく仮想セクタと対応付けられる物理セクタアドレスＢの範囲に含まれてしまうために、仮想セクタＫの各仮想ブロックは物理セクタアドレスＡの各物理ブロックとは対応付けられずに、物理セクタアドレスＢに属する各物理ブロックのみと対応付けられることになる。
【０１７４】
図３０は、前記実施形態に係わるメモリ制御装置によるメモリイレーズ処理を示すフローチャートである。
【０１７５】
図３０に示すように、まず、システム制御部４よりコマンドバス１１を介してメモリ管理部２にメモリイレーズ命令（消去命令）が与えられるとともに、仮想メモリアドレスバス１２を介して仮想メモリアドレスがメモリ制御部２１に転送されると、仮想メモリアドレスがメモリ制御部２１により仮想セクタアドレスＡと仮想ブロックアドレスＢとに分けられる（ステップＤ１）。
【０１７６】
次に、セクタアドレス変換制御部２４によりセクタアドレス変換テーブル２３が読み出されて、このセクタアドレス変換テーブル２３と仮想セクタアドレスＡとが照合されて、該仮想セクタアドレスＡに対応付けられる一つまたは複数の物理セクタアドレスで構成される物理セクタアドレス群Ｃが存在するかどうかが判断される（ステップＤ２，Ｄ３）。
【０１７７】
ステップＤ３で「ＮＯ」と判断される、すなわち仮想セクタアドレスＡに対応付けられる物理セクタアドレス群Ｃが存在しない場合には、仮想セクタアドレスＡがどの物理セクタとも対応付けられてなく、つまりイレーズ対象が無いので終了処理がなされる。
【０１７８】
一方、ステップＤ３で「ＹＥＳ」と判断される、すなわち仮想セクタアドレスＡに対応付けられる物理セクタアドレス群Ｃが存在する場合には、ブロック情報制御部２６を介してブロック情報テーブル２５に登録される物理セクタアドレス群Ｃの全ブロック情報が消去すなわち“０”に更新処理される（ステップＤ４）。
【０１７９】
そして、セクタアドレス変換制御部２４を介してセクタアドレス変換テーブル２３から物理セクタアドレス群Ｃが削除される（ステップＤ５）。
【０１８０】
このメモリイレーズ処理により、仮想セクタアドレスＡは全ての物理セクタアドレスとの対応付けがなされなくなる。この時、仮想セクタアドレスＡをリードすると、対応する物理ブロックアドレス群が存在しないことになるので、消去処理が行われた適当な物理セクタアドレスの各ブロックデータが転送されることになる。
【０１８１】
つまり、このメモリイレーズ処理により、セクタアドレス変換テーブル２３とブロック情報テーブル２５からイレーズすべき仮想セクタアドレスに関する情報を削除するだけで、対応付けられた物理セクタアドレス群のメモリ上のデータ消去を行うことにより、イレーズ処理速度が向上する。
【０１８２】
図３１は、前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブル２３におけるメモリコピー処理およびメモリ移動処理を示す図である。
【０１８３】
このメモリコピー処理とは、コピー元の仮想セクタアドレスに対応付けられる物理セクタアドレス群を、このコピー元の仮想セクタアドレスとの対応付けを残したままで、コピー先の仮想セクタアドレスにも対応付ける処理のことであり、このメモリコピー処理によりコピー元の仮想セクタアドレスに対応付けられる全ての物理ブロック情報がコピー先の仮想セクタアドレスにも対応付けられることになる。
【０１８４】
また、メモリ移動処理とは、移動元の仮想セクタアドレスに対応付けられる物理セクタアドレス群を、移動元の仮想セクタアドレスとの対応付けを無くすとともにコピー先の仮想セクタアドレスに対応付ける処理のことであり、このメモリ移動処理により移動元の仮想セクタアドレスに対応付けられる全ての物理ブロック情報が移動先の仮想セクタアドレスに対応付けられることになる。
【０１８５】
なお、ここでは、転送元仮想セクタ、転送先仮想セクタおよびコピーか移動かの指定手段は問わないものとする。
【０１８６】
まず、メモリ制御装置によるメモリコピー処理について説明する。
【０１８７】
図３１に示すように、セクタアドレス変換テーブル２３において、転送元仮想セクタアドレスＡに物理セクタアドレス群（ｐ１９１）の“３”、“８”および“Ｎ”と対応付けられ、また、転送先仮想セクタアドレスＢが別の物理セクタアドレス群（ｐ１９２）と対応付けられている場合で、仮想セクタアドレスＡに対応付けられる全ブロックデータを仮想セクタアドレスＢにコピーする場合、つまり、システム制御部４よりコマンドバス１１を介してメモリ管理部２にメモリコピー命令が与えられるとともに、仮想メモリアドレスバス１２を介してコピー元およびコピー先の仮想メモリアドレスがメモリ制御部２１に転送されると、仮想セクタアドレスＢに対応付けられる、つまりｐ１９２に示す物理セクタアドレス群の全物理ブロックのブロック情報が削除され、ｐ１９１に示す物理セクタアドレス群の全データ、すなわち物理セクタアドレス“３”、“８”、“Ｎ”に属しており、かつ、仮想セクタアドレスＡと対応付けられる全ての物理ブロックアドレスおよびそのブロック情報が仮想セクタアドレスＢに対応付けられる。
【０１８８】
この時、仮想セクタアドレスＢは仮想セクタアドレスＡと同じ物理セクタと対応付けられることになるので、該物理セクタのブロックデータを変更する場合には、変更する物理セクタの全ブロックデータをコピーした新規物理セクタを用いて処理され、セクタアドレス変換テーブル２３における登録を置き換えることで処理されるものとする。
【０１８９】
次に、メモリ制御装置によるメモリ移動処理について説明する。
【０１９０】
同じく、セクタアドレス変換テーブル２３において、セクタアドレス変換テーブル２３において、転送元仮想セクタアドレスＣに物理セクタアドレス群（ｐ１９３）の“９”、“２”および“５”と対応付けられ、また、転送先仮想セクタアドレスＤが別の物理セクタアドレス群（ｐ１９４）と対応付けられている場合で、仮想セクタアドレスＢに対応付けられる全ブロックデータを仮想セクタアドレスＢに移動させる場合、つまり、システム制御部４よりコマンドバス１１を介してメモリ管理部２にメモリ移動命令が与えられるとともに、仮想メモリアドレスバス１２を介して移動元および移動先の仮想メモリアドレスがメモリ制御部２１に転送されると、仮想セクタアドレスＤに対応付けられる、つまりｐ１９４に示す物理セクタアドレス群の全物理ブロックのブロック情報およびが削除され、ｐ１９３に示す物理セクタアドレス群の全データ、すなわち物理セクタアドレス“９”、“２”、“５”に属しており、かつ、仮想セクタアドレスＣと対応付けられる全ての物理ブロックアドレスおよびそのブロック情報が仮想セクタアドレスＤに対応付けられるとともに、仮想セクタアドレスＣと物理セクタアドレス群（ｐ１９３）との対応付けがなくなる。
【０１９１】
つまり、これらのメモリコピー処理またはメモリ移動処理により、任意の仮想セクタから任意の仮想セクタに全ブロックデータをコピーする場合、または任意の仮想セクタから任意の仮想セクタに全ブロックデータを移動する場合であっても、不揮発性メモリ１上でのデータコピーまたはデータ移動が発生しないので、処理を高速化することができる。
【０１９２】
したがって、前記構成のメモリ制御装置によれば、セクタアドレス変換テーブル２３およびブロック情報テーブル２５により、一つの仮想セクタが複数の物理セクタと対応付けられた上で、メモリライト処理により、ライトすべき仮想セクタアドレスに対応付けられた物理セクタアドレス群中から適当な未ライトブロックが存在する物理セクタアドレスが検出され、また、メモリリード処理により、ライトすべき仮想セクタアドレスに対応付けられた物理セクタアドレス群中から適当なライト済ブロックが存在する物理セクタアドレスが検出され、また、メモリ結合処理により、セクタアドレス変換テーブル２３とブロック情報テーブル２５で複数の物理セクタアドレスとを対応付けられた仮想セクタアドレスが、一つの物理セクタアドレスと対応づけられ、また、メモリイレーズ処理により、イレーズすべき仮想セクタアドレスに対する物理セクタアドレス群が削除され、また、メモリコピー処理及びメモリ移動処理により、セクタアドレス変換テーブル２３上の仮想セクタアドレスと物理セクタアドレスの対応付けの情報が書き換えられるので、メモリの読み書きに係る処理時間を短縮し、また、メモリ資源を効率よく使うことが可能になる。
【０１９３】
【発明の効果】
以上のように、本発明に係わるメモリ管理方式によれば、各々が物理ブロックを書き込み単位として複数有してなる物理セクタを消去単位として複数有してなる物理メモリおよび当該物理メモリの物理セクタと対応付けた仮想セクタを複数有してなる仮想メモリを用いてデータの読み書きを管理するメモリ管理方式であって、仮想セクタのアドレスと単一または複数の物理セクタのアドレスとを当該仮想セクタのアドレス毎に対応付けるセクタアドレス管理手段と、このセクタアドレス管理手段により仮想セクタのアドレスと対応付けた複数の物理セクタの各アドレスの対応付けのタイミングの順序を管理する順序管理手段と、物理セクタに属する物理ブロックの使用状態を示すブロック情報を管理するブロック情報管理手段と、データ書き込み対象の仮想メモリアドレスで示される物理ブロックのアドレスを計算する第１の計算手段と、書き込み対象の仮想メモリアドレスで示される仮想セクタのアドレスを計算する第２の計算手段と、ブロック情報管理手段により管理されるブロック情報および順序管理手段により管理される順序に基づいて、第２の計算手段により計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられる物理セクタの各アドレスおよび第１の計算手段により計算したアドレスと対応する使用状態にある物理ブロックのうち最も遅い順序で計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられた物理セクタのアドレスより後の順序で計算した仮想セクタのアドレスに対してセクタアドレス管理手段により対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして検出するセクタアドレス検出手段とを有し、セクタアドレス管理手段は、セクタアドレス検出手段によりアドレスが検出されなかった場合に属する全ての物理ブロックが未使用状態にある物理セクタのアドレスを計算した仮想セクタのアドレスと新たに対応付け、順序管理手段は、この新たに対応付けられた物理セクタのアドレスが計算した仮想セクタのアドレスとセクタアドレス管理手段により最も遅い順序で対応付けられたとして管理し、新たに対応付けられた物理セクタのアドレスを書き込み対象の物理セクタのアドレスとして指定するセクタアドレス指定手段を有し、ブロック情報管理手段は、セクタアドレス指定手段により指定されたアドレスおよび第１の計算手段により計算した物理ブロックのアドレスで特定される物理ブロックのブロック情報を使用状態を示す情報に書き換えることになる。
【０１９８】
したがって、本発明は不揮発性メモリの読み書きに係る処理時間を短縮し、また、メモリ資源を効率よく使うことが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係わるメモリ制御装置の構成を示す図。
【図２】前記実施形態に係わるメモリ制御装置に備えられるメモリ管理部の構成を示す図。
【図３】前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブルの構成を示す図。
【図４】前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブルによる仮想メモリと物理メモリの対応付けの例を示す図。
【図５】前記実施形態に係わる仮想セクタと物理セクタとの対応付けの例を示す図。
【図６】前記実施形態に係わるメモリ制御装置に備えられるブロック情報テーブルの構成を示す図。
【図７】前記実施形態に係わるメモリ制御装置によるメモリライト処理（その１）を示すフローチャート。
【図８】前記実施形態に係わるメモリ制御装置によるメモリライト処理（その２）を示すフローチャート。
【図９】前記実施形態に係わるメモリライト処理において未ライトブロックが存在する物理セクタアドレスＤが検出される例を示す図。
【図１０】  前記実施形態に係わるメモリライト処理において未ライトブロックが存在する物理セクタアドレスＤを検出できない例を示す図。
【図１１】前記実施形態に係わるブロック情報テーブル内のブロック情報の更新処理を示す図。
【図１２】前記実施形態に係わるブロック情報テーブルに対する新規物理セクタアドレスの登録処理と、この登録処理に伴うブロック情報の更新処理を示す図。
【図１３】前記実施形態に係わるメモリ制御装置によるメモリリード処理（その１）を示すフローチャート。
【図１４】前記実施形態に係わるメモリ制御装置によるメモリリード処理（その２）を示すフローチャート。
【図１５】前記実施形態に係わるメモリリード処理においてライト済ブロックが存在する物理セクタアドレスＤが検出される例を示す図。
【図１６】  前記実施形態に係わるメモリリード処理においてライト済ブロックが存在する物理セクタアドレスＤが検出されない例を示す図。
【図１７】前記実施形態に係わるブロック情報テーブルに対する新規物理セクタアドレスの登録処理を示す図。
【図１８】前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その１）を示すフローチャート。
【図１９】前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その２）を示すフローチャート。
【図２０】前記実施形態に係わるメモリ制御装置によるメモリ結合処理（その３）を示すフローチャート。
【図２１】前記実施形態に係わるメモリ結合処理におけるブロック情報テーブルでの登録処理および削除処理を示す図。
【図２２】前記実施形態に係わるメモリ結合処理においてライト済ブロックが存在する物理セクタアドレスＤを検出する例を示す図。
【図２３】前記実施形態に係わるメモリ結合処理においてライト済ブロックが存在する物理セクタアドレスＤが検出されない例を示す図。
【図２４】前記実施形態に係わるメモリ結合処理において、最新ライト済ブロックの検出例を示す図。
【図２５】  前記実施形態に係わるメモリ結合処理においてセクタアドレス変換テーブルでの登録処理および削除処理を示す図。
【図２６】  前記実施形態に係わるメモリ結合処理において、結合対象となる物理ブロックアドレスを任意に選択する場合の処理を示すフローチャート。
【図２７】  本発明の実施形態に係わるメモリ制御装置において、全ブロックに対して任意のデータライトを行った仮想セクタに対してオーバライトする時の例を示した図であり、同図（ａ）は、仮想セクタに対して一つ目のデータを書き込む前の状態を示す図であり、同図（ｂ）は、仮想セクタに対して一つ目のデータを書き込む際の物理セクタに対する処理および二つめのデータを書き込む前の状態を示す図であり、同図（ｃ）は、仮想セクタに対して二つめのデータを書き込む際の物理セクタに対する処理を示す図。
【図２８】前記実施形態に係わるポインタ式ブロック情報テーブルの構成を示す図。
【図２９】前記実施形態に係わるポインタ式のブロック情報テーブルにおける仮想セクタと物理セクタの各物理ブロックとの対応を示す図であり、同図（ａ）は、仮想セクタが一つの物理セクタの各物理ブロックと対応付けられた場合を示す図であり、同図（ｂ）は、仮想セクタが複数の物理セクタの各物理ブロックと対応付けられた場合を示す図。
【図３０】前記実施形態に係わるメモリ制御装置によるメモリイレーズ処理を示すフローチャート。
【図３１】前記実施形態に係わるメモリ制御装置に備えられるセクタアドレス変換テーブルにおけるメモリコピー処理およびメモリ移動処理を示す図。
【図３２】  従来のメモリ制御装置において、全ブロックに対して任意のデータライトを行った仮想セクタに対してオーバライトする時の例を示した図であり、同図（ａ）は、仮想セクタに対してデータを書き込む前の状態を示す図であり、同図（ｂ）は、仮想セクタに対してデータを書き込む際の物理セクタに対する処理を示す図。
【符号の説明】
１・・・不揮発性メモリ
２・・・メモリ管理部
３・・・メモリインタフェース
４・・・システム制御部
１１・・・コマンドバス
１２・・・仮想メモリアドレスバス
１３・・・データバス
１４・・・メモリアクセスコマンドバス
１５・・・物理メモリアドレスバス
１６・・・メモリデータバス
１７・・・メモリバス
２１・・・メモリ制御部
２２・・・データバッファ
２３・・・セクタアドレス変換テーブル
２４・・・セクタアドレス変換制御部
２５・・・ブロック情報テーブル
２６・・・ブロック情報制御部
【図１】
0003699942.tif 000005
【図２】
0003699942.tif 000006
【図３】
0003699942.tif 000007
【図４】
0003699942.tif 000008
【図５】
0003699942.tif 000009
【図６】
0003699942.tif 000010
【図７】
0003699942.tif 000011
【図８】
0003699942.tif 000012
【図９】
0003699942.tif 000013
【図１０】
0003699942.tif 000014
【図１１】
0003699942.tif 000015
【図１２】
0003699942.tif 000016
【図１３】
0003699942.tif 000017
【図１４】
0003699942.tif 000018
【図１５】
0003699942.tif 000019
【図１６】
0003699942.tif 000020
【図１７】
0003699942.tif 000021
【図１８】
0003699942.tif 000022
【図１９】
0003699942.tif 000023
【図２０】
0003699942.tif 000024
【図２１】
0003699942.tif 000025
【図２２】
0003699942.tif 000026
【図２３】
0003699942.tif 000027
【図２４】
0003699942.tif 000028
【図２５】
0003699942.tif 000029
【図２６】
0003699942.tif 000030
【図２７】
0003699942.tif 000031
【図２８】
0003699942.tif 000032
【図２９】
0003699942.tif 000033
【図３０】
0003699942.tif 000034
【図３１】
0003699942.tif 000035
【図３２】
0003699942.tif 000036