(57)【特許請求の範囲】
【請求項１】
複数のフラッシュメモリ素子から構成されるフラッシュメモリユニットに対するデータ転送の転送領域が、前記転送領域の先頭を示す論理アドレスと転送データ量を示すデータ長で指定され、該論理アドレスがアドレス変換されて得られる物理アドレスでフラッシュメモリユニットの読出しと書込みが制御されるフラッシュメモリ制御方法であって、
論理アドレスで指定される物理アドレスを持つ、変更前のデータが保持される現用ブロックとは異なるブロックを交代ブロックとし、現用ブロックの変更対象領域以外の領域に保持されているデータを交代ブロックにコピーし、次に現用ブロックの消去を指示すると同時に変更データを交代ブロックの変更対象領域に転送し、論理アドレスで指定されるブロックの物理アドレスを交代ブロックの物理アドレスに置き換えることを特徴とするフラッシュメモリ制御方法。
【請求項２】
現用ブロックの先頭アドレスと変更対象領域の先頭アドレスの直前のアドレスにより指定される領域のデータを交代ブロックにコピーし、
物理アドレスとデータ長とから生成された変更対象領域の最終アドレスの直後のアドレスと現用ブロックの最終アドレスにより指定される領域のデータを交代ブロックにコピーし、
物理アドレスのブロックアドレス部を現用ブロックを示すブロックアドレスから交代ブロックのブロックアドレスに置き換えたアドレスを先頭アドレスとし、
データ長で指定される転送量の変更データを交代ブロックに格納することを特徴とする請求項１に記載のフラッシュメモリ制御方法。
【請求項３】
物理アドレスのブロックアドレス部をフラッシュメモリ素子を示す素子アドレスと素子内ブロックアドレスとに区分し、
現用ブロックと異なる素子アドレスの範囲を対象として交代ブロックを検索し、前記範囲で交代ブロックが検出出来ない場合に同一素子アドレスの範囲を対象として交代ブロックを検索することを特徴とする、請求項１に記載のフラッシュメモリ制御方法。
【請求項４】
論理アドレス保持手段と物理アドレス保持手段と空きブロック管理手段とアドレス変換手段とメモリ制御手段とから構成され、論理アドレス保持手段に保持される論理アドレスからアドレス変換手段により物理アドレスを生成して物理アドレス保持手段に保持し、データ長で指定されるデータの転送量をメモリ制御手段に保持し、該物理アドレスを現用ブロックのアドレスとして空きブロック管理手段により交代ブロックのアドレスを検索し、現用ブロックのアドレスと交代ブロックのアドレスとデータ長とで複数のフラッシュメモリ素子で構成されるフラッシュメモリユニットに対するデータ転送を制御するフラッシュメモリ制御ユニットであって、
変更データ書込領域生成手段を有して論理アドレスのワードアドレス部とデータ長とから変更データ格納領域の最終ワードアドレスの直後のアドレスを生成し、現用ブロックのアドレスのワードアドレス部と置換したアドレスと交代ブロックのアドレスのワードアドレス部と置換したアドレスとを生成し、現用ブロックの変更対象領域以外の領域に保持されているデ−タを交代ブロックにコピーし、交代ブロックの素子アドレスが現用ブロックの素子アドレスと異なる場合に、現用ブロックに消去を指示し、同時に変更データを交代ブロックの変更対象領域に転送することを特徴とするフラッシュメモリ制御ユニット。
【請求項５】
物理アドレスのブロックアドレス部と、前記ブロックアドレス部の中のフラッシュメモリ素子を示す素子アドレスとを保持するブロックアドレス保持手段を有し、
現用ブロックと異なる素子アドレスの範囲を対象として交代ブロックを検索し、前記範囲で交代ブロックが検出出来ない場合に同一素子アドレスの範囲を対象として交代ブロックを検索することを特徴とする、請求項４に記載のフラッシュメモリ制御ユニット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のフラッシュメモリ素子で構成されるフラッシュメモリユニットに格納されているデータの変更を制御するフラッシュメモリ制御方法及びフラッシュメモリ制御ユニットに関する。
【０００２】
データ処理を行う本体装置は、高速でデータを処理する中央処理装置と、処理に必要なデータを中央処理装置に供給し、また中央処理装置から出力される処理結果を保持する主記憶装置から構成される。
【０００３】
主記憶装置は中央処理装置の処理速度に追随して動作する必要があるため、一般的に動作速度が速く任意のアドレスで読み書き出来る比較的安価なダイナミックメモリ素子（以下、「ＤＲＡＭ」と略す）や高価ではあるがリフレッシュ処理が不要なスタティックメモリ素子（以下、「ＳＲＡＭ」と略す）等のランダムアクセスメモリ素子（以下、「ＲＡＭ」と略す）を用いて構成される。
【０００４】
これらのＲＡＭは電源の供給が途絶えると保持するデータを喪失する揮発性の記憶素子であるため、保存する必要があるデータは磁気ディスクや磁気テープ等の非揮発性の記憶媒体に保存し格納している。
【０００５】
しかしながら、これらの記憶媒体に記録するためには振動に弱い、機械的に動作する駆動装置が必要なため、振動のある環境下では非揮発性のフラッシュメモリ素子を用いたフラッシュメモリユニットが補助記憶媒体として用いられる。
【０００６】
ところが、フラッシュメモリ素子はデータを書き込む前に、素子毎に決められたブロック（例えば、６４KByte ）の単位で、一旦書き込まれているデータを消去する必要があり、消去に要する所要時間が長く（例えば、０．３ｓ）、データの読出し時間（例えば、２００ｎｓ）に比して書込時間が長い（例えば、６μｓ）という特徴があるため書込方法の効率化が必要である。
【０００７】
【従来の技術】
図１０はアドレス変換テーブルの構成図であり、図１１はレジスタ及びカウンタの構成図であり、図１２は従来例の構成図であり、図１３は従来例の空きブロック管理テーブルの構成図であり、図１４は従来例のフローチャート図（その１）であり、図１５は従来例のフローチャート図（その２）であり、図１６は従来例のフローチャート図（その３）であり、図１７は従来例のフローチャート図（その４）である。
【０００８】
図１２の従来例の構成図において、１はメモリ制御ユニットであり、２は本体装置であり、３はフラッシュメモリユニットであって、メモリ制御ユニット１と本体装置２とはアドレス線９１及び制御線９３を介して接続され、本体装置２とフラッシュメモリユニット３とはデータ線９５を介して接続され、メモリ制御ユニット１とフラッシュメモリユニット３とはアドレス線９２及び制御線９４を介して接続される。
【０００９】
メモリ制御ユニット１は、論理アドレスレジスタ４０と、物理アドレスレジスタ５０と、変更前アドレスレジスタ５１と、変更先アドレスレジスタ５２と、アドレス変換テーブル６０と、空きブロック管理テーブル７０’と、制御回路８０と、データ長カウンタ８１とから構成され、本体装置２に指示されてフラッシュメモリユニット３と本体装置２の間のデータ転送を制御するユニットである。
【００１０】
本体装置２は、図示されないプロセッサ及び主記憶回路から構成され、フラッシュメモリユニット３の領域の先頭アドレスを示す論理アドレスとデータの転送量を示すデータ長とを指定して、図示されない主記憶回路とフラッシュメモリユニット３の間のデータ転送をメモリ制御ユニット１に指示する装置である。
【００１１】
フラッシュメモリユニット３は、複数のフラッシュメモリ素子で構成され、メモリ制御ユニット１に制御されて本体装置１から転送されたデータが格納され、格納されているデータが本体装置１に送出されるユニットであって、本例ではフラッシュメモリ素子３１〜３ｎのＮ個の素子から構成されている。
【００１２】
論理アドレスレジスタ４０は、アドレス線９１を介して本体装置２に接続され、アドレス線４５を介してアドレス変換テーブル６０に接続され、アドレス線４６を介して物理アドレスレジスタ５０に接続され、図示されない制御線を介して制御回路８０に接続され、本体装置２から送出された論理アドレス（アドレス変換テーブル６０の領域を指定するための論理ブロックアドレスと、ブロック内のワードアドレスとを図１１に示される如く結合したアドレス）が保持されるレジスタである。
【００１３】
物理アドレスレジスタ５０は、アドレス線５４を介して変更前アドレスレジスタ５１と変更先アドレスレジスタ５２とに接続され、アドレス線４６を介して論理アドレスレジスタ４０に接続され、図示されない制御線を介して制御回路８０に接続され、物理アドレス（フラッシュメモリユニット３の領域を指定するための物理ブロックアドレスと、ブロック内のワードアドレスとを図１１に示される如く結合したアドレスであって、ワードアドレスは論理アドレスと物理アドレスとで共通）を保持されるレジスタである。
【００１４】
変更前アドレスレジスタ５１は、アドレス線５１を介してアドレス変換テーブル６０と接続され、アドレス線５４を介して物理アドレスレジスタ５０と接続され、図示されない制御線を介して制御回路８０に接続され、フラッシュメモリユニットの、現用ブロック（変更前データの格納されているブロック）の物理ブロックアドレスが保持されるレジスタである。
【００１５】
変更先アドレスレジスタ５２は、アドレス線５４を介して物理アドレスレジスタ５０と接続され、図示されない制御線を介して制御回路８０に接続され、フラッシュメモリユニットの、交代ブロック（変更後データの格納されるブロック）の物理ブロックアドレスが保持されるレジスタである。
【００１６】
アドレス変換テーブル６０は、アドレス線４５を介して論理アドレスレジスタ４０の論理ブロックアドレス部に接続され、アドレス線６５を介して変更前アドレスレジスタ５１に接続され、図示されない制御線を介して制御回路８０に接続され、図１０に示される如く論理ブロックアドレスで指定される領域に物理ブロックアドレスが格納されているテーブルである。
【００１７】
空きブロック管理テーブル７０’は、図示されない制御線を介して制御回路８０に接続され、図１３に示される如く物理ブロックアドレスで指定される領域に使用表示フラグ（フラッシュメモリユニット３の、前記物理ブロックアドレスで指定されるブロックが使用中の場合には‘１’を、初期状態及び使用中で無い場合には‘０’を表示するフラグ）と、消去済フラグ（フラッシュメモリユニット３の、前記物理ブロックアドレスで指定されるブロックが初期状態及び消去済、即ち、消去することなく書込み可能な場合には‘１’を、消去されておらず書込みの前に消去が必要な場合には‘０’を表示するフラグ）とが保持されているテーブルである。
【００１８】
データ長カウンタ８１は、制御線９３を介して本体装置２と接続され、図示されない制御線を介して制御回路８０に接続され、本体装置２から送出されたデータ長（本体装置２とフラッシュメモリユニット３の間の転送データ量）が保持され、本体装置２とフラッシュメモリユニット３の間でデータ転送が行われる際、転送量を計数するカウンタである。
【００１９】
制御回路８０は、制御線９３を介して本体装置２と接続され、制御線９４を介してフラッシュメモリユニット３と接続され、図示されない制御線を介して論理アドレスレジスタ４０と物理アドレスレジスタ５０と変更前アドレスレジスタ５１と変更先アドレスレジスタ５２とアドレス変換テーブル６０と空きブロック管理テーブル７０’と、データ長カウンタ８１とに接続され、フラッシュメモリユニット３と本体装置２の間のデータ転送を制御する回路である。
【００２０】
従来例について、図１０〜図１７を参照しながら説明する。尚、以下の説明において、同一部分または相当部分については同一符号を付す。
最初に、本体装置２から変更データの格納先領域の先頭を示す論理アドレスと、変更データのデータ長と、変更を指示する指示語とがメモリ制御ユニット１に送出され、論理アドレスは論理アドレスレジスタ４０に、データ長はデータ長カウンタ８１に、指示語は制御回路８０に設定され、ステップＳ２に進む。（ステップＳ１）
制御回路８０により、論理アドレスレジスタ４０の論理ブロックアドレス部がアドレス変換テーブル６０に入力され、現用ブロックの物理ブロックアドレスが出力されて変更前アドレスレジスタ５１に設定され、ステップＳ３に進む。（ステップＳ２）
制御回路８０により、空きブロック管理テーブル７０の使用表示フラグが‘０’の領域が１ブロックづつ検索され、検索中のブロックを示す物理ブロックアドレスが検索の都度変更先アドレスレジスタ５２に設定される。未使用のブロックが検出されない場合、即ち交代ブロックが無い場合には現用ブロックに保持されているデータを書き替えるためにステップＳ２８に進み、未使用のブロックが検出された場合、即ち交代ブロックが有る場合には変更先アドレスレジスタ５２に設定されたアドレスが交代ブロックの物理ブロックアドレスとされ、現用ブロックのデータを、変更対象領域にあるデータのみ変更データに置き換えて、交代ブロックにコピー（異なるブロックの間で、ワードアドレスが同一の領域に保持されるデータが同一のデータとなる様に転送する）するためにステップＳ６に進む。（ステップＳ３〜Ｓ５）
制御回路８０により、消去済フラグがチェックされ、‘０’即ち、交代ブロックが消去されていない場合には消去のためステップＳ２５に進み、‘１’即ち、交代ブロックが消去されている場合には書込のためステップＳ７に進む。（ステップＳ６）
制御回路８０により物理アドレスレジスタ５０のワードアドレス部に０が設定される。（ステップＳ７）
制御回路８０により、現用ブロックの変更対象領域以外の領域のデータが交代ブロックに以下の手順でコピーされる。即ち、
論理アドレスレジスタ４０のワードアドレス部と物理アドレスレジスタ５０のワードアドレス部が一致するまで繰り返し、
物理アドレスレジスタ５０の物理ブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ５０の物理ブロックアドレス部が変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ５０のワードアドレス部が＋１され、
論理アドレスレジスタ４０のワードアドレス部と物理アドレスレジスタ５０のワードアドレス部が一致するとステップＳ１３に進む。（ステップＳ８〜Ｓ１２）
制御回路８０により、物理アドレスレジスタ５０のブロックアドレス部に変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスが転送され、ステップＳ１４に進む。（ステップＳ１３）
制御回路８０により、本体装置２にデータ送出が依頼され、本体装置２から送出されたデータが、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された交代ブロックの変更対象領域に以下の手順で１語づつ格納される。即ち、
制御回路８０により、データ長カウンタ８１が０になるまで繰り返して、
フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された領域に本体装置２から送出されたデータが書込まれ、同時に物理アドレスレジスタ５０のワードアドレス部が＋１され、データ長カウンタ８１が−１され、
データ長カウンタ８１が０になるとステップＳ１７に進む。（ステップＳ１４〜Ｓ１６）
制御回路８０により、物理アドレスレジスタ５０のブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理ブロックアドレスが転送され、ステップＳ１８に進む。（ステップＳ１７）
制御回路８０により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
物理アドレスレジスタ５０のワードアドレス部がブロックの最終アドレスを越して最終アドレスの次のアドレスを示す０となるまで繰り返し、
物理アドレスレジスタ５０の物理ブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ５０の物理ブロックアドレス部が変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ５０のワードアドレス部が＋１され、
物理アドレスレジスタ５０のワードアドレス部が０になるとステップＳ２２に進む。（ステップＳ１８〜Ｓ２１）
制御回路８０により、空きブロック管理テーブル７０’の変更前アドレスレジタ５１で指定される領域に保持される現用ブロックの使用表示フラグに‘０’  が、消去済フラグに‘０’が書き込まれ、変更先アドレスレジスタ５２で指定される領域に保持される交代ブロックの使用表示フラグに‘１’が、消去済フラグに‘０’が書き込まれ、アドレス変換テーブル６０の論理アドレスレジスタ４０で指定される領域に変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスが格納され処理を終了する。（ステップＳ２２〜Ｓ２５）
空きブロック管理テーブル７０’は、制御回路８０により、フラッシュメモリユニット３に対するアクセスがなされていない時にチェックされ、消去済フラグに‘０’が、使用表示フラグに‘０’が設定されているブロックが選択されて、フラッシュメモリユニット３の前記ブロックが消去される。
【００２１】
制御回路８０により、物理アドレスレジスタ５０のブロックアドレス部に変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定されるブロックが消去され、消去が完了するとステップＳ７に進む。（ステップＳ２６〜Ｓ２８）
制御回路８０により、現用ブロックの変更対象領域以外の領域に保持されるデータが図示されないバッファメモリにコピーされ、本体装置２から送出された変更データが、前記図示されないバッファメモリの変更対象領域に格納され、１ブロック分のデータが揃うと、制御回路８０により現用ブロックに対して消去が指示され、消去が完了すると前記図示されないバッファメモリからフラッシュメモリユニット３の現用ブロックに１ブロック分のデータがコピーされ、処理を終了する。（ステップＳ２９〜Ｓ３３）
【００２２】
【発明が解決しようとする課題】
上述した様に、フラッシュメモリユニットの中に未使用のブロックが存在する場合であっても、未使用のブロックが消去される前にデータ転送が指示され、変更データの転送に先立ちブロックの消去を行わねばならなくなる場合が生じるという問題があった。
【００２３】
更に、フラッシュメモリユニットが複数のブロックからなるフラッシュメモリ素子で構成される場合には、同一フラッシュメモリ素子に対して、異なるブロックであっても消去と書込みを同時には出来ないため、前述した方法を使用できないという問題があった。
【００２４】
本発明は、フラッシュメモリユニットが複数のブロックからなるフラッシュメモリ素子で構成される場合も含んで、フラッシュメモリユニットに対するアクセスの頻度が上がった場合も未使用のブロックを確実に短時間で消去し、フラッシュメモリの書換え時間を短縮する方法を提供することを目的とする。
【００２５】
【課題を解決するための手段】
図１は本発明の原理図である。図１において、
１はメモリ制御ユニットであり、２は本体装置であり、３はフラッシュメモリユニットであって、メモリ制御ユニット１と本体装置２とはアドレス線９１及び制御線９３を介して接続され、本体装置２とフラッシュメモリユニット３とはデータ線９５を介して接続され、メモリ制御ユニット１とフラッシュメモリユニット３とはアドレス線９２及び制御線９４を介して接続される。
【００２６】
メモリ制御ユニット１は論理アドレス保持手段４と、物理アドレス保持手段５と、アドレス変換手段６と、空きブロック管理手段７と、メモリ制御手段８と、変更データ書込領域生成手段９と、ブロックアドレス保持手段Ａとから構成され、本体装置２の指示に基づき、フラッシュメモリユニット３と本体装置２の間のデータ転送を制御するユニットである。
【００２７】
本体装置２は図示されないプロセッサ及び主記憶回路から構成され、フラッシュメモリユニット３から読み出したデータを処理し、処理した結果得られたデータを主記憶回路に一旦保持し、フラッシュメモリユニット３の格納先領域の先頭を示す論理アドレスと、格納するデータのデータ長とを指定してデータ転送をメモリ制御ユニットに指示する装置である。
【００２８】
フラッシュメモリユニット３は複数のフラッシュメモリ素子から構成され、メモリ制御ユニット１に制御されて本体装置２から転送されたデータを格納し、格納しているデータを本体装置２に送出するユニットであって、本例ではフラッシュメモリ素子３ａ〜３ｎのＮ個の素子から構成されている。
【００２９】
本体装置２より送出された書換えデータ格納先の先頭領域を示す論理アドレスが論理アドレス保持手段４に設定され、書換えデータのデータ長と書換えを指示する指示語とがメモリ制御手段８に設定されると、メモリ制御手段８により論理アドレス保持手段４に保持された論理ブロックアドレスがアドレス変換手段６に入力され、アドレス変換手段６から出力された現用ブロックを示す物理ブロックアドレスが変更前物理ブロックアドレスとして物理アドレス保持手段５に設定される。
【００３０】
次に、前記変更前物理ブロックアドレスがブロックアドレス保持手段Ａに転送され、前記変更前物理ブロックアドレスの素子アドレス部が＋１され素子内ブロックアドレスと結合されて空きブロック管理手段７を検索する際のアドレスとされる。
【００３１】
前記アドレスを１づつ更新しながら、最終アドレスに到達した場合には０に戻って、前記アドレスが前記変更前物理ブロックアドレスの素子アドレス部の示す値と一致するまで空きブロック管理手段７が検索される。
【００３２】
使用表示フラグが未使用を表示している領域が読み出されると、前記領域を指定するアドレスが交代ブロックを示す変更先物理ブロックアドレスとして物理アドレス保持手段５に保持される。
【００３３】
メモリ制御手段８により、フラッシュメモリユニット３の変更前物理ブロックアドレスにワードアドレス０を付加したアドレスを先頭として、変更前物理ブロックアドレスに論理アドレスのワードアドレス部を付加したアドレスの直前までの領域のデータが、また、フラッシュメモリユニット３の変更前物理ブロックアドレスに、変更データ書込領域生成手段により論理アドレスのワードアドレス部にデータ長を加え更に１を加えて生成したワードアドレスを付加したアドレスを先頭として、変更前物理ブロックの最終アドレスまでの領域のデータが読み出され、フラッシュメモリユニット３の変更先物理ブロックの対応する領域にコピーされる。
【００３４】
変更先物理ブロックアドレスの素子アドレスが変更前物理ブロックアドレスの素子アドレスと異なる場合には、メモリ制御手段により、変更前物理ブロックアドレスで指定される現用ブロックに消去が指示され、同時にフラッシュメモリユニット３の変更先物理ブロックの書換えデータ格納領域に本体装置２から転送されたデータが格納され、更に空きブロック管理手段７に保持されている変更前物理ブロックの使用状況を表示する使用表示フラグが未使用とされ、変更先物理ブロックの使用状況を表示する使用表示フラグが使用中とされ、アドレス変換手段６に保持されている変更前物理ブロックアドレスが変更先物理ブロックアドレスと置き換えられて処理を終了する。
【００３５】
変更先物理ブロックアドレスの素子アドレスが変更前物理ブロックアドレスの素子アドレスと等しい場合には、メモリ制御手段により、フラッシュメモリユニット３の変更先物理ブロックの書換えデータ格納領域に本体装置２から転送されたデータが格納され、次いで変更前物理ブロックアドレスで指定される現用ブロックに消去が指示され、同時に空きブロック管理手段７に保持されている変更前物理ブロックの使用状況を表示する使用表示フラグが未使用とされ、変更先物理ブロックの使用状況を表示する使用表示フラグが使用中とされ、アドレス変換手段６に保持されている変更前物理ブロックアドレスが変更先物理ブロックアドレスと置き換えられて処理を終了する。
【００３６】
使用表示フラグが未使用を表示している領域が検出されない場合は、メモリ制御手段８により、フラッシュメモリユニット３の現用ブロックに保持されている変更対象外のデータが図示されないバッファメモリにコピーされ、本体装置２から転送された変更データが図示されないバッファメモリの変更対象領域に格納された後、フラッシュメモリユニット３の現用ブロックに消去が指示され、消去が終了すると、前記バッファメモリからフラッシュメモリユニット３の現用ブロックにデータがコピーされて処理を終了する。
【００３７】
【発明の実施の形態】
図２は本発明の第１の実施の形態構成図であり、図３は本発明の第１の実施の形態レジスタ及びカウンタの構成図であり、図４は本発明の第１の実施の形態空きブロック管理テーブルの構成図であり、図５は本発明の第１の実施の形態フローチャート図（その１）であり、図６は本発明の第１の実施の形態フローチャート図（その２）であり、図７は本発明の第１の実施の形態フローチャート図（その３）であり、図８は本発明の第１の実施の形態フローチャート図（その４）であり、図９は本発明の第１の実施の形態フローチャート図（その５）である。
【００３８】
図２において、従来例の構成図（図１２）で用いられている符号と同一の符号は従来例の構成図（図１２）で果たしているのと同一の機能を表している。
図２の本発明の第１の実施の形態構成図において、１はメモリ制御ユニットであり、２は本体装置であり、３はフラッシュメモリユニットであって、メモリ制御ユニット１と本体装置２とはアドレス線９１及び制御線９３を介して接続され、本体装置２とフラッシュメモリユニット３とはデータ線９５を介して接続され、メモリ制御ユニット１とフラッシュメモリユニット３とはアドレス線９２及び制御線９４を介して接続される。
【００３９】
メモリ制御ユニット１は論理アドレスレジスタ４０と、物理アドレスレジスタ５０と、変更前アドレスレジスタ５１と、変更先アドレスレジスタ５２と、アドレス変換テーブル６０と、空きブロック管理テーブル７０と、制御回路８０と、データ長カウンタ８１と、素子アドレスレジスタ５３と、ブロックアドレスカウンタＡ０と、加算回路９０とから構成され、本体装置２の指示に基づき、フラッシュメモリユニット３と本体装置２の間のデータ転送を制御するユニットである。
【００４０】
空きブロック管理テーブル７０は図示されない制御線を介して制御回路８０に接続され、図４に示される如く物理ブロックアドレスで指定される領域に、フラッシュメモリユニット３の前記物理ブロックアドレスで指定されるブロックが使用中であるか否かを表示する使用表示フラグが格納されているテーブルである。
【００４１】
加算回路９０はアドレス線４６を介して論理アドレスレジスタ４０と物理アドレスレジスタ５０とに接続され、データ長を示す制御線８２を介してデータ長カウンタ８１と接続され、制御回路８０により論理アドレスレジスタ４０に保持されるワードアドレス部の値にデータ長カウンタ８１に保持されるデータ長を加え、更に＋１された値を生成し、物理アドレスレジスタ５０に対して出力する回路である。
【００４２】
素子アドレスレジスタ５３は、アドレス線５４を介して変更前アドレスレジスタ５１及びブロックアドレスカウンタＡ０に接続され、変更前アドレスレジスタに保持されるブロックアドレスの素子アドレス部が設定されるレジスタである。
【００４３】
ブロックアドレスカウンタＡ０は、アドレス線５４を介して素子アドレスレジスタ５３と接続され、素子内ブロックを示すビットと結合されてブロックアドレスを表示し、制御回路８０に制御されて１づつ歩進し、フラッシュメモリユニットを構成するブロックの最終に達した後はフラッシュメモリユニットを構成するブロックの先頭から歩進するカウンタである。
【００４４】
本発明の第１の実施例について、図２〜図１１を参照しながら説明する。
最初に、本体装置２から書換えデータの格納先領域の先頭を示す論理アドレスと、書換えデータのデータ長と、書換えを指示する指示語とがメモリ制御ユニット１に送出され、論理アドレスは論理アドレスレジスタ４０に、データ長はデータ長カウンタ８１に、指示語は制御回路８０に設定され、ステップＳ２に進む。（ステップＳ１）
制御回路８０により、論理アドレスレジスタ４０の論理ブロックアドレス部がアドレス変換テーブルに入力され、現用ブロックの物理ブロックアドレスが出力されて変更前アドレスレジスタ５１に設定され、ステップＳ３に進む。（ステップＳ２）
制御回路８０により、変更前アドレスレジスタ５１に保持される現用ブロックの物理ブロックアドレスの中の素子アドレスが素子アドレスレジスタ５３に転送され、更に、素子アドレスに＋１されたアドレスがブロックアドレスカウンタＡ０に転送され、ブロックアドレスカウンタＡ０の素子内ブロックアドレスに０が設定され、ステップＳ５に進む。（ステップＳ３〜Ｓ４）
制御回路８０により、素子アドレスレジスタ５３に保持される素子アドレスと一致するまでブロックアドレスカウンタＡ０が１づつ歩進され、空きブロック管理テーブル７０のブロックアドレスカウンタＡ０により指定される領域が検索され、使用表示フラグが‘０’のブロックが検出される、即ち、現用ブロックと交代ブロックとが異なる素子の中に存在する場合にはステップＳ８に進み、使用表示フラグが‘０’のブロックが検出できない、即ち、現用ブロックと交代ブロックとが異なる素子の中に存在しない場合にはステップＳ２９に進む。（ステップＳ５〜Ｓ７）
制御回路８０により、物理アドレスレジスタ５０のワードアドレス部に０が設定され、ステップＳ９に進む。（ステップＳ８）
制御回路８０により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
論理アドレスレジスタ４０のワードアドレス部と物理アドレスレジスタ５０のワードアドレス部が一致するまで繰り返し、
物理アドレスレジスタ５０の物理ブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ５０の物理ブロックアドレス部が変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ５０のワードアドレス部が＋１され、
論理アドレスレジスタ４０のワードアドレス部と物理アドレスレジスタ５０のワードアドレス部が一致するとステップＳ１４に進む。（ステップＳ９〜Ｓ１３）
制御回路８０により、物理アドレスレジスタ５０のワードアドレス部に論理アドレスレジスタのワードアドレス部の値とデータ長カウンタ８１に保持されるデータ長と１を加えた値が設定され、ステップＳ１５に進む。（ステップＳ１４）制御回路８０により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
物理アドレスレジスタ５０のワードアドレス部がブロックの最終アドレスを越して最終アドレスの次のアドレスを示す‘０’となるまで繰り返し、
物理アドレスレジスタ５０の物理ブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ５０の物理ブロックアドレス部が変更先アドレスレジスタ５２に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ５０のワードアドレス部が＋１され、
物理アドレスレジスタ５０のワードアドレス部が‘０’になるとステップＳ１９に進む。（ステップＳ１５〜Ｓ１８）
制御回路８０により、ブロックアドレスカウンタＡ０の上位の素子アドレス部が素子アドレスレジスタ５３の値と一致するか否かチェックされ、一致する場合には交代ブロックが現用ブロックと同一素子内にあるためステップＳ３２に進み、異なる場合には交代ブロックが異なる素子内にあるためステップＳ２０に進む。（ステップＳ１９）
制御回路８０により、物理アドレスレジスタ５０で指定されるフラッシュメモリユニットの領域に対し消去が指示されると同時に、空きブロック管理テーブル７０の変更前アドレスレジスタ５１により指定される現用ブロックの状況を表示する使用表示フラグに未使用を示す‘０’が設定され、変更先アドレスレジスタ５２により指定される交代ブロックの状況を表示する使用表示フラグに使用中を示す‘１’が設定され、アドレス変換テーブル６０の論理アドレスレジスタ４０で指定される領域に変更先物理ブロックアドレスが設定され、ステップＳ２５に進む。（ステップＳ２０〜Ｓ２４）
制御回路８０により本体装置２にデータ送出が依頼され、本体装置２から送出されたデータが、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された交代ブロックの変更データ格納領域に以下の手順で１語づつ格納される。即ち、
制御回路８０により、データ長カウンタ８１が０になるまで繰り返して、
フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された領域に本体装置２から送出されたデータが書込まれ、同時に物理アドレスレジスタ５０のワードアドレス部が＋１され、データ長カウンタ８１がマイナス１され、
データ長カウンタ８１が０になるとステップＳ２８に進む。（ステップＳ２５〜Ｓ２７）
制御回路８０により、フラッシュメモリユニット３の消去完了が確認され、処理を終了する。（ステップＳ２８）
制御回路８０により、素子アドレスレジスタ５３に保持される素子アドレスに１加えた値と一致するまでブロックアドレスカウンタＡ０が１づつ歩進され、空きブロック管理テーブル７０のブロックアドレスカウンタＡ０により指定される領域が検索され、使用表示フラグが‘０’のブロックが検出される、即ち、交代ブロックが同一素子の中に存在する場合にはステップＳ８に進み、使用表示フラグが‘０’のブロックが検出できない、即ち、交代ブロックが存在しない場合にはステップＳ４１に進む。（ステップＳ２９〜Ｓ３１）
制御回路８０により、物理アドレスレジスタの物理ブロックアドレス部に変更先アドレスレジスタ５２の値が、ワードアドレス部に論理アドレスレジスタのワードアドレス部のデータが設定され、ステップＳ３３に進む。（ステップＳ３２）
制御回路８０により本体装置２にデータ送出が依頼され、本体装置２から送出されたデータが、フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された交代ブロックの変更データ格納領域に以下の手順で１語づつ格納される。即ち、
制御回路８０により、データ長カウンタ８１が０になるまで繰り返して、
フラッシュメモリユニット３の物理アドレスレジスタ５０で指定された領域に本体装置２から送出されたデータが書込まれ、同時に物理アドレスレジスタ５０のワードアドレス部が＋１され、データ長カウンタ８１がマイナス１され、
データ長カウンタ８１が０になるとステップＳ３６に進む。（ステップＳ３３〜Ｓ３５）
制御回路８０により、物理アドレスレジスタ５０のブロックアドレス部に変更前アドレスレジスタ５１に保持されている現用ブロックの物理アドレスが転送され、ステップＳ３７に進む。（ステップＳ３６）
制御回路８０により、物理アドレスレジスタ５０で指定されるフラッシュメモリユニットの領域に対し消去が指示されると同時に、空きブロック管理テーブルの変更前アドレスレジスタ５１により指定される現用ブロックの状況を表示する使用表示フラグに未使用を示す‘０’が  設定され、変更先アドレスレジスタ５２により指定される交代ブロックの状況を表示する使用表示フラグに使用中を示す‘１’が設定され、アドレス変換テーブル６０の論理アドレスレジスタ４０で指定される領域に変更先物理ブロックアドレスが設定され、ステップＳ２８に進む。（ステップＳ３７〜Ｓ４０）
制御回路８０により、変更のある部分を除いた現用ブロックから図示されないバッファメモリへのデータのコピーが行われ、本体装置２から送出されたデータが、前記図示されないバッファメモリの変更データ格納領域に格納される。
【００４５】
１ブロック分のデータが揃うと、制御回路８０により現用ブロックに対して消去が指示され、消去が完了すると前記図示されないバッファメモリからフラッシュメモリユニット３の現用ブロックに１ブロック分のデータがコピーされ、処理を終了する。（ステップＳ４１〜Ｓ４５）
【００４６】
【発明の効果】
以上説明した様に、本発明によれは交代ブロックが現用ブロックと異なる素子の中にある場合には、現用ブロックの消去と、交代ブロックへの変更データの書込み，アドレス変換テーブル及び空きブロック管理テーブルの更新を同時に処理することが出来、交代ブロックと現用ブロックが同一の素子の中にある場合には現用ブロックの消去とアドレス変換テーブル及び空きブロック管理テーブルの更新を同時に処理することが出来るため、フラッシュメモリユニットの書替えが短時間となり、また、書替え終了後には確実に消去済の交代ブロックが容易出来るという工業的効果がある。
【図面の簡単な説明】
【図１】  本発明の原理図
【図２】  本発明の第１の実施の形態構成図
【図３】  本発明の第１の実施の形態レジスタ及びカウンタの構成図
【図４】  本発明の第１の実施の形態空きブロック管理テーブルの構成図
【図５】  本発明の第１の実施の形態フローチャート図（その１）
【図６】  本発明の第１の実施の形態フローチャート図（その２）
【図７】  本発明の第１の実施の形態フローチャート図（その３）
【図８】  本発明の第１の実施の形態フローチャート図（その４）
【図９】  本発明の第１の実施の形態フローチャート図（その５）
【図１０】  アドレス変換テーブルの構成図
【図１１】  レジスタ及びカウンタの構成図
【図１２】  従来例の構成図
【図１３】  従来例の空きブロック管理テーブルの構成図
【図１４】  従来例のフローチャート図（その１）
【図１５】  従来例のフローチャート図（その２）
【図１６】  従来例のフローチャート図（その３）
【図１７】  従来例のフローチャート図（その４）
【符号の説明】
１  メモリ制御ユニット
２  本体装置
３  フラッシュメモリユニット
４  論理アドレス保持手段
５  物理アドレス保持手段
６  アドレス変換手段
７  空きブロック管理手段
８  メモリ制御手段
９  変更データ書込領域生成手段
４０  論理アドレスレジスタ
５０  物理アドレスレジスタ
５１  変更前アドレスレジスタ
５２  変更先アドレスレジスタ
５３  素子アドレスレジスタ
６０  アドレス変換テーブル
７０，７０’  空きブロック管理テーブル
８０  制御回路
８１  データ長カウンタ
９０  加算回路
Ａ０  ブロックアドレスカウンタ
３１，３ｎ  フラッシュメモリ素子
９１，９２，４５，４６，５４，５５，６５  アドレス線
９３，９４，８２  制御線
９５  データ線
【図１】
0003702515.tif 000002
【図２】
0003702515.tif 000003
【図３】
0003702515.tif 000004
【図４】
0003702515.tif 000005
【図５】
0003702515.tif 000006
【図６】
0003702515.tif 000007
【図７】
0003702515.tif 000008
【図８】
0003702515.tif 000009
【図９】
0003702515.tif 000010
【図１０】
0003702515.tif 000011
【図１１】
0003702515.tif 000012
【図１２】
0003702515.tif 000013
【図１３】
0003702515.tif 000014
【図１４】
0003702515.tif 000015
【図１５】
0003702515.tif 000016
【図１６】
0003702515.tif 000017
【図１７】
0003702515.tif 000018