JP3702515B2 - フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット - Google Patents
フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット Download PDFInfo
- Publication number
- JP3702515B2 JP3702515B2 JP31524495A JP31524495A JP3702515B2 JP 3702515 B2 JP3702515 B2 JP 3702515B2 JP 31524495 A JP31524495 A JP 31524495A JP 31524495 A JP31524495 A JP 31524495A JP 3702515 B2 JP3702515 B2 JP 3702515B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- block
- flash memory
- data
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、複数のフラッシュメモリ素子で構成されるフラッシュメモリユニットに格納されているデータの変更を制御するフラッシュメモリ制御方法及びフラッシュメモリ制御ユニットに関する。
【0002】
データ処理を行う本体装置は、高速でデータを処理する中央処理装置と、処理に必要なデータを中央処理装置に供給し、また中央処理装置から出力される処理結果を保持する主記憶装置から構成される。
【0003】
主記憶装置は中央処理装置の処理速度に追随して動作する必要があるため、一般的に動作速度が速く任意のアドレスで読み書き出来る比較的安価なダイナミックメモリ素子(以下、「DRAM」と略す)や高価ではあるがリフレッシュ処理が不要なスタティックメモリ素子(以下、「SRAM」と略す)等のランダムアクセスメモリ素子(以下、「RAM」と略す)を用いて構成される。
【0004】
これらのRAMは電源の供給が途絶えると保持するデータを喪失する揮発性の記憶素子であるため、保存する必要があるデータは磁気ディスクや磁気テープ等の非揮発性の記憶媒体に保存し格納している。
【0005】
しかしながら、これらの記憶媒体に記録するためには振動に弱い、機械的に動作する駆動装置が必要なため、振動のある環境下では非揮発性のフラッシュメモリ素子を用いたフラッシュメモリユニットが補助記憶媒体として用いられる。
【0006】
ところが、フラッシュメモリ素子はデータを書き込む前に、素子毎に決められたブロック(例えば、64KByte )の単位で、一旦書き込まれているデータを消去する必要があり、消去に要する所要時間が長く(例えば、0.3s)、データの読出し時間(例えば、200ns)に比して書込時間が長い(例えば、6μs)という特徴があるため書込方法の効率化が必要である。
【0007】
【従来の技術】
図10はアドレス変換テーブルの構成図であり、図11はレジスタ及びカウンタの構成図であり、図12は従来例の構成図であり、図13は従来例の空きブロック管理テーブルの構成図であり、図14は従来例のフローチャート図(その1)であり、図15は従来例のフローチャート図(その2)であり、図16は従来例のフローチャート図(その3)であり、図17は従来例のフローチャート図(その4)である。
【0008】
図12の従来例の構成図において、1はメモリ制御ユニットであり、2は本体装置であり、3はフラッシュメモリユニットであって、メモリ制御ユニット1と本体装置2とはアドレス線91及び制御線93を介して接続され、本体装置2とフラッシュメモリユニット3とはデータ線95を介して接続され、メモリ制御ユニット1とフラッシュメモリユニット3とはアドレス線92及び制御線94を介して接続される。
【0009】
メモリ制御ユニット1は、論理アドレスレジスタ40と、物理アドレスレジスタ50と、変更前アドレスレジスタ51と、変更先アドレスレジスタ52と、アドレス変換テーブル60と、空きブロック管理テーブル70’と、制御回路80と、データ長カウンタ81とから構成され、本体装置2に指示されてフラッシュメモリユニット3と本体装置2の間のデータ転送を制御するユニットである。
【0010】
本体装置2は、図示されないプロセッサ及び主記憶回路から構成され、フラッシュメモリユニット3の領域の先頭アドレスを示す論理アドレスとデータの転送量を示すデータ長とを指定して、図示されない主記憶回路とフラッシュメモリユニット3の間のデータ転送をメモリ制御ユニット1に指示する装置である。
【0011】
フラッシュメモリユニット3は、複数のフラッシュメモリ素子で構成され、メモリ制御ユニット1に制御されて本体装置1から転送されたデータが格納され、格納されているデータが本体装置1に送出されるユニットであって、本例ではフラッシュメモリ素子31〜3nのN個の素子から構成されている。
【0012】
論理アドレスレジスタ40は、アドレス線91を介して本体装置2に接続され、アドレス線45を介してアドレス変換テーブル60に接続され、アドレス線46を介して物理アドレスレジスタ50に接続され、図示されない制御線を介して制御回路80に接続され、本体装置2から送出された論理アドレス(アドレス変換テーブル60の領域を指定するための論理ブロックアドレスと、ブロック内のワードアドレスとを図11に示される如く結合したアドレス)が保持されるレジスタである。
【0013】
物理アドレスレジスタ50は、アドレス線54を介して変更前アドレスレジスタ51と変更先アドレスレジスタ52とに接続され、アドレス線46を介して論理アドレスレジスタ40に接続され、図示されない制御線を介して制御回路80に接続され、物理アドレス(フラッシュメモリユニット3の領域を指定するための物理ブロックアドレスと、ブロック内のワードアドレスとを図11に示される如く結合したアドレスであって、ワードアドレスは論理アドレスと物理アドレスとで共通)を保持されるレジスタである。
【0014】
変更前アドレスレジスタ51は、アドレス線51を介してアドレス変換テーブル60と接続され、アドレス線54を介して物理アドレスレジスタ50と接続され、図示されない制御線を介して制御回路80に接続され、フラッシュメモリユニットの、現用ブロック(変更前データの格納されているブロック)の物理ブロックアドレスが保持されるレジスタである。
【0015】
変更先アドレスレジスタ52は、アドレス線54を介して物理アドレスレジスタ50と接続され、図示されない制御線を介して制御回路80に接続され、フラッシュメモリユニットの、交代ブロック(変更後データの格納されるブロック)の物理ブロックアドレスが保持されるレジスタである。
【0016】
アドレス変換テーブル60は、アドレス線45を介して論理アドレスレジスタ40の論理ブロックアドレス部に接続され、アドレス線65を介して変更前アドレスレジスタ51に接続され、図示されない制御線を介して制御回路80に接続され、図10に示される如く論理ブロックアドレスで指定される領域に物理ブロックアドレスが格納されているテーブルである。
【0017】
空きブロック管理テーブル70’は、図示されない制御線を介して制御回路80に接続され、図13に示される如く物理ブロックアドレスで指定される領域に使用表示フラグ(フラッシュメモリユニット3の、前記物理ブロックアドレスで指定されるブロックが使用中の場合には‘1’を、初期状態及び使用中で無い場合には‘0’を表示するフラグ)と、消去済フラグ(フラッシュメモリユニット3の、前記物理ブロックアドレスで指定されるブロックが初期状態及び消去済、即ち、消去することなく書込み可能な場合には‘1’を、消去されておらず書込みの前に消去が必要な場合には‘0’を表示するフラグ)とが保持されているテーブルである。
【0018】
データ長カウンタ81は、制御線93を介して本体装置2と接続され、図示されない制御線を介して制御回路80に接続され、本体装置2から送出されたデータ長(本体装置2とフラッシュメモリユニット3の間の転送データ量)が保持され、本体装置2とフラッシュメモリユニット3の間でデータ転送が行われる際、転送量を計数するカウンタである。
【0019】
制御回路80は、制御線93を介して本体装置2と接続され、制御線94を介してフラッシュメモリユニット3と接続され、図示されない制御線を介して論理アドレスレジスタ40と物理アドレスレジスタ50と変更前アドレスレジスタ51と変更先アドレスレジスタ52とアドレス変換テーブル60と空きブロック管理テーブル70’と、データ長カウンタ81とに接続され、フラッシュメモリユニット3と本体装置2の間のデータ転送を制御する回路である。
【0020】
従来例について、図10〜図17を参照しながら説明する。尚、以下の説明において、同一部分または相当部分については同一符号を付す。
最初に、本体装置2から変更データの格納先領域の先頭を示す論理アドレスと、変更データのデータ長と、変更を指示する指示語とがメモリ制御ユニット1に送出され、論理アドレスは論理アドレスレジスタ40に、データ長はデータ長カウンタ81に、指示語は制御回路80に設定され、ステップS2に進む。(ステップS1)
制御回路80により、論理アドレスレジスタ40の論理ブロックアドレス部がアドレス変換テーブル60に入力され、現用ブロックの物理ブロックアドレスが出力されて変更前アドレスレジスタ51に設定され、ステップS3に進む。(ステップS2)
制御回路80により、空きブロック管理テーブル70の使用表示フラグが‘0’の領域が1ブロックづつ検索され、検索中のブロックを示す物理ブロックアドレスが検索の都度変更先アドレスレジスタ52に設定される。未使用のブロックが検出されない場合、即ち交代ブロックが無い場合には現用ブロックに保持されているデータを書き替えるためにステップS28に進み、未使用のブロックが検出された場合、即ち交代ブロックが有る場合には変更先アドレスレジスタ52に設定されたアドレスが交代ブロックの物理ブロックアドレスとされ、現用ブロックのデータを、変更対象領域にあるデータのみ変更データに置き換えて、交代ブロックにコピー(異なるブロックの間で、ワードアドレスが同一の領域に保持されるデータが同一のデータとなる様に転送する)するためにステップS6に進む。(ステップS3〜S5)
制御回路80により、消去済フラグがチェックされ、‘0’即ち、交代ブロックが消去されていない場合には消去のためステップS25に進み、‘1’即ち、交代ブロックが消去されている場合には書込のためステップS7に進む。(ステップS6)
制御回路80により物理アドレスレジスタ50のワードアドレス部に0が設定される。(ステップS7)
制御回路80により、現用ブロックの変更対象領域以外の領域のデータが交代ブロックに以下の手順でコピーされる。即ち、
論理アドレスレジスタ40のワードアドレス部と物理アドレスレジスタ50のワードアドレス部が一致するまで繰り返し、
物理アドレスレジスタ50の物理ブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ50の物理ブロックアドレス部が変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ50のワードアドレス部が+1され、
論理アドレスレジスタ40のワードアドレス部と物理アドレスレジスタ50のワードアドレス部が一致するとステップS13に進む。(ステップS8〜S12)
制御回路80により、物理アドレスレジスタ50のブロックアドレス部に変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスが転送され、ステップS14に進む。(ステップS13)
制御回路80により、本体装置2にデータ送出が依頼され、本体装置2から送出されたデータが、フラッシュメモリユニット3の物理アドレスレジスタ50で指定された交代ブロックの変更対象領域に以下の手順で1語づつ格納される。即ち、
制御回路80により、データ長カウンタ81が0になるまで繰り返して、
フラッシュメモリユニット3の物理アドレスレジスタ50で指定された領域に本体装置2から送出されたデータが書込まれ、同時に物理アドレスレジスタ50のワードアドレス部が+1され、データ長カウンタ81が−1され、
データ長カウンタ81が0になるとステップS17に進む。(ステップS14〜S16)
制御回路80により、物理アドレスレジスタ50のブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理ブロックアドレスが転送され、ステップS18に進む。(ステップS17)
制御回路80により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
物理アドレスレジスタ50のワードアドレス部がブロックの最終アドレスを越して最終アドレスの次のアドレスを示す0となるまで繰り返し、
物理アドレスレジスタ50の物理ブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ50の物理ブロックアドレス部が変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ50のワードアドレス部が+1され、
物理アドレスレジスタ50のワードアドレス部が0になるとステップS22に進む。(ステップS18〜S21)
制御回路80により、空きブロック管理テーブル70’の変更前アドレスレジタ51で指定される領域に保持される現用ブロックの使用表示フラグに‘0’ が、消去済フラグに‘0’が書き込まれ、変更先アドレスレジスタ52で指定される領域に保持される交代ブロックの使用表示フラグに‘1’が、消去済フラグに‘0’が書き込まれ、アドレス変換テーブル60の論理アドレスレジスタ40で指定される領域に変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスが格納され処理を終了する。(ステップS22〜S25)
空きブロック管理テーブル70’は、制御回路80により、フラッシュメモリユニット3に対するアクセスがなされていない時にチェックされ、消去済フラグに‘0’が、使用表示フラグに‘0’が設定されているブロックが選択されて、フラッシュメモリユニット3の前記ブロックが消去される。
【0021】
制御回路80により、物理アドレスレジスタ50のブロックアドレス部に変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット3の物理アドレスレジスタ50で指定されるブロックが消去され、消去が完了するとステップS7に進む。(ステップS26〜S28)
制御回路80により、現用ブロックの変更対象領域以外の領域に保持されるデータが図示されないバッファメモリにコピーされ、本体装置2から送出された変更データが、前記図示されないバッファメモリの変更対象領域に格納され、1ブロック分のデータが揃うと、制御回路80により現用ブロックに対して消去が指示され、消去が完了すると前記図示されないバッファメモリからフラッシュメモリユニット3の現用ブロックに1ブロック分のデータがコピーされ、処理を終了する。(ステップS29〜S33)
【0022】
【発明が解決しようとする課題】
上述した様に、フラッシュメモリユニットの中に未使用のブロックが存在する場合であっても、未使用のブロックが消去される前にデータ転送が指示され、変更データの転送に先立ちブロックの消去を行わねばならなくなる場合が生じるという問題があった。
【0023】
更に、フラッシュメモリユニットが複数のブロックからなるフラッシュメモリ素子で構成される場合には、同一フラッシュメモリ素子に対して、異なるブロックであっても消去と書込みを同時には出来ないため、前述した方法を使用できないという問題があった。
【0024】
本発明は、フラッシュメモリユニットが複数のブロックからなるフラッシュメモリ素子で構成される場合も含んで、フラッシュメモリユニットに対するアクセスの頻度が上がった場合も未使用のブロックを確実に短時間で消去し、フラッシュメモリの書換え時間を短縮する方法を提供することを目的とする。
【0025】
【課題を解決するための手段】
図1は本発明の原理図である。図1において、
1はメモリ制御ユニットであり、2は本体装置であり、3はフラッシュメモリユニットであって、メモリ制御ユニット1と本体装置2とはアドレス線91及び制御線93を介して接続され、本体装置2とフラッシュメモリユニット3とはデータ線95を介して接続され、メモリ制御ユニット1とフラッシュメモリユニット3とはアドレス線92及び制御線94を介して接続される。
【0026】
メモリ制御ユニット1は論理アドレス保持手段4と、物理アドレス保持手段5と、アドレス変換手段6と、空きブロック管理手段7と、メモリ制御手段8と、変更データ書込領域生成手段9と、ブロックアドレス保持手段Aとから構成され、本体装置2の指示に基づき、フラッシュメモリユニット3と本体装置2の間のデータ転送を制御するユニットである。
【0027】
本体装置2は図示されないプロセッサ及び主記憶回路から構成され、フラッシュメモリユニット3から読み出したデータを処理し、処理した結果得られたデータを主記憶回路に一旦保持し、フラッシュメモリユニット3の格納先領域の先頭を示す論理アドレスと、格納するデータのデータ長とを指定してデータ転送をメモリ制御ユニットに指示する装置である。
【0028】
フラッシュメモリユニット3は複数のフラッシュメモリ素子から構成され、メモリ制御ユニット1に制御されて本体装置2から転送されたデータを格納し、格納しているデータを本体装置2に送出するユニットであって、本例ではフラッシュメモリ素子3a〜3nのN個の素子から構成されている。
【0029】
本体装置2より送出された書換えデータ格納先の先頭領域を示す論理アドレスが論理アドレス保持手段4に設定され、書換えデータのデータ長と書換えを指示する指示語とがメモリ制御手段8に設定されると、メモリ制御手段8により論理アドレス保持手段4に保持された論理ブロックアドレスがアドレス変換手段6に入力され、アドレス変換手段6から出力された現用ブロックを示す物理ブロックアドレスが変更前物理ブロックアドレスとして物理アドレス保持手段5に設定される。
【0030】
次に、前記変更前物理ブロックアドレスがブロックアドレス保持手段Aに転送され、前記変更前物理ブロックアドレスの素子アドレス部が+1され素子内ブロックアドレスと結合されて空きブロック管理手段7を検索する際のアドレスとされる。
【0031】
前記アドレスを1づつ更新しながら、最終アドレスに到達した場合には0に戻って、前記アドレスが前記変更前物理ブロックアドレスの素子アドレス部の示す値と一致するまで空きブロック管理手段7が検索される。
【0032】
使用表示フラグが未使用を表示している領域が読み出されると、前記領域を指定するアドレスが交代ブロックを示す変更先物理ブロックアドレスとして物理アドレス保持手段5に保持される。
【0033】
メモリ制御手段8により、フラッシュメモリユニット3の変更前物理ブロックアドレスにワードアドレス0を付加したアドレスを先頭として、変更前物理ブロックアドレスに論理アドレスのワードアドレス部を付加したアドレスの直前までの領域のデータが、また、フラッシュメモリユニット3の変更前物理ブロックアドレスに、変更データ書込領域生成手段により論理アドレスのワードアドレス部にデータ長を加え更に1を加えて生成したワードアドレスを付加したアドレスを先頭として、変更前物理ブロックの最終アドレスまでの領域のデータが読み出され、フラッシュメモリユニット3の変更先物理ブロックの対応する領域にコピーされる。
【0034】
変更先物理ブロックアドレスの素子アドレスが変更前物理ブロックアドレスの素子アドレスと異なる場合には、メモリ制御手段により、変更前物理ブロックアドレスで指定される現用ブロックに消去が指示され、同時にフラッシュメモリユニット3の変更先物理ブロックの書換えデータ格納領域に本体装置2から転送されたデータが格納され、更に空きブロック管理手段7に保持されている変更前物理ブロックの使用状況を表示する使用表示フラグが未使用とされ、変更先物理ブロックの使用状況を表示する使用表示フラグが使用中とされ、アドレス変換手段6に保持されている変更前物理ブロックアドレスが変更先物理ブロックアドレスと置き換えられて処理を終了する。
【0035】
変更先物理ブロックアドレスの素子アドレスが変更前物理ブロックアドレスの素子アドレスと等しい場合には、メモリ制御手段により、フラッシュメモリユニット3の変更先物理ブロックの書換えデータ格納領域に本体装置2から転送されたデータが格納され、次いで変更前物理ブロックアドレスで指定される現用ブロックに消去が指示され、同時に空きブロック管理手段7に保持されている変更前物理ブロックの使用状況を表示する使用表示フラグが未使用とされ、変更先物理ブロックの使用状況を表示する使用表示フラグが使用中とされ、アドレス変換手段6に保持されている変更前物理ブロックアドレスが変更先物理ブロックアドレスと置き換えられて処理を終了する。
【0036】
使用表示フラグが未使用を表示している領域が検出されない場合は、メモリ制御手段8により、フラッシュメモリユニット3の現用ブロックに保持されている変更対象外のデータが図示されないバッファメモリにコピーされ、本体装置2から転送された変更データが図示されないバッファメモリの変更対象領域に格納された後、フラッシュメモリユニット3の現用ブロックに消去が指示され、消去が終了すると、前記バッファメモリからフラッシュメモリユニット3の現用ブロックにデータがコピーされて処理を終了する。
【0037】
【発明の実施の形態】
図2は本発明の第1の実施の形態構成図であり、図3は本発明の第1の実施の形態レジスタ及びカウンタの構成図であり、図4は本発明の第1の実施の形態空きブロック管理テーブルの構成図であり、図5は本発明の第1の実施の形態フローチャート図(その1)であり、図6は本発明の第1の実施の形態フローチャート図(その2)であり、図7は本発明の第1の実施の形態フローチャート図(その3)であり、図8は本発明の第1の実施の形態フローチャート図(その4)であり、図9は本発明の第1の実施の形態フローチャート図(その5)である。
【0038】
図2において、従来例の構成図(図12)で用いられている符号と同一の符号は従来例の構成図(図12)で果たしているのと同一の機能を表している。
図2の本発明の第1の実施の形態構成図において、1はメモリ制御ユニットであり、2は本体装置であり、3はフラッシュメモリユニットであって、メモリ制御ユニット1と本体装置2とはアドレス線91及び制御線93を介して接続され、本体装置2とフラッシュメモリユニット3とはデータ線95を介して接続され、メモリ制御ユニット1とフラッシュメモリユニット3とはアドレス線92及び制御線94を介して接続される。
【0039】
メモリ制御ユニット1は論理アドレスレジスタ40と、物理アドレスレジスタ50と、変更前アドレスレジスタ51と、変更先アドレスレジスタ52と、アドレス変換テーブル60と、空きブロック管理テーブル70と、制御回路80と、データ長カウンタ81と、素子アドレスレジスタ53と、ブロックアドレスカウンタA0と、加算回路90とから構成され、本体装置2の指示に基づき、フラッシュメモリユニット3と本体装置2の間のデータ転送を制御するユニットである。
【0040】
空きブロック管理テーブル70は図示されない制御線を介して制御回路80に接続され、図4に示される如く物理ブロックアドレスで指定される領域に、フラッシュメモリユニット3の前記物理ブロックアドレスで指定されるブロックが使用中であるか否かを表示する使用表示フラグが格納されているテーブルである。
【0041】
加算回路90はアドレス線46を介して論理アドレスレジスタ40と物理アドレスレジスタ50とに接続され、データ長を示す制御線82を介してデータ長カウンタ81と接続され、制御回路80により論理アドレスレジスタ40に保持されるワードアドレス部の値にデータ長カウンタ81に保持されるデータ長を加え、更に+1された値を生成し、物理アドレスレジスタ50に対して出力する回路である。
【0042】
素子アドレスレジスタ53は、アドレス線54を介して変更前アドレスレジスタ51及びブロックアドレスカウンタA0に接続され、変更前アドレスレジスタに保持されるブロックアドレスの素子アドレス部が設定されるレジスタである。
【0043】
ブロックアドレスカウンタA0は、アドレス線54を介して素子アドレスレジスタ53と接続され、素子内ブロックを示すビットと結合されてブロックアドレスを表示し、制御回路80に制御されて1づつ歩進し、フラッシュメモリユニットを構成するブロックの最終に達した後はフラッシュメモリユニットを構成するブロックの先頭から歩進するカウンタである。
【0044】
本発明の第1の実施例について、図2〜図11を参照しながら説明する。
最初に、本体装置2から書換えデータの格納先領域の先頭を示す論理アドレスと、書換えデータのデータ長と、書換えを指示する指示語とがメモリ制御ユニット1に送出され、論理アドレスは論理アドレスレジスタ40に、データ長はデータ長カウンタ81に、指示語は制御回路80に設定され、ステップS2に進む。(ステップS1)
制御回路80により、論理アドレスレジスタ40の論理ブロックアドレス部がアドレス変換テーブルに入力され、現用ブロックの物理ブロックアドレスが出力されて変更前アドレスレジスタ51に設定され、ステップS3に進む。(ステップS2)
制御回路80により、変更前アドレスレジスタ51に保持される現用ブロックの物理ブロックアドレスの中の素子アドレスが素子アドレスレジスタ53に転送され、更に、素子アドレスに+1されたアドレスがブロックアドレスカウンタA0に転送され、ブロックアドレスカウンタA0の素子内ブロックアドレスに0が設定され、ステップS5に進む。(ステップS3〜S4)
制御回路80により、素子アドレスレジスタ53に保持される素子アドレスと一致するまでブロックアドレスカウンタA0が1づつ歩進され、空きブロック管理テーブル70のブロックアドレスカウンタA0により指定される領域が検索され、使用表示フラグが‘0’のブロックが検出される、即ち、現用ブロックと交代ブロックとが異なる素子の中に存在する場合にはステップS8に進み、使用表示フラグが‘0’のブロックが検出できない、即ち、現用ブロックと交代ブロックとが異なる素子の中に存在しない場合にはステップS29に進む。(ステップS5〜S7)
制御回路80により、物理アドレスレジスタ50のワードアドレス部に0が設定され、ステップS9に進む。(ステップS8)
制御回路80により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
論理アドレスレジスタ40のワードアドレス部と物理アドレスレジスタ50のワードアドレス部が一致するまで繰り返し、
物理アドレスレジスタ50の物理ブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ50の物理ブロックアドレス部が変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ50のワードアドレス部が+1され、
論理アドレスレジスタ40のワードアドレス部と物理アドレスレジスタ50のワードアドレス部が一致するとステップS14に進む。(ステップS9〜S13)
制御回路80により、物理アドレスレジスタ50のワードアドレス部に論理アドレスレジスタのワードアドレス部の値とデータ長カウンタ81に保持されるデータ長と1を加えた値が設定され、ステップS15に進む。(ステップS14)制御回路80により、変更のある部分を除いた現用ブロックから交代ブロックへのデータのコピーが以下の手順で行われる。即ち、
物理アドレスレジスタ50のワードアドレス部がブロックの最終アドレスを越して最終アドレスの次のアドレスを示す‘0’となるまで繰り返し、
物理アドレスレジスタ50の物理ブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理ブロックアドレスが転送され、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域からデータが読み出されると同時に、物理アドレスレジスタ50の物理ブロックアドレス部が変更先アドレスレジスタ52に保持されている交代ブロックの物理ブロックアドレスで置き換えられ、フラッシュメモリユニット3の物理アドレスレジスタ50で指定される領域に前記データが格納されて、その都度、物理アドレスレジスタ50のワードアドレス部が+1され、
物理アドレスレジスタ50のワードアドレス部が‘0’になるとステップS19に進む。(ステップS15〜S18)
制御回路80により、ブロックアドレスカウンタA0の上位の素子アドレス部が素子アドレスレジスタ53の値と一致するか否かチェックされ、一致する場合には交代ブロックが現用ブロックと同一素子内にあるためステップS32に進み、異なる場合には交代ブロックが異なる素子内にあるためステップS20に進む。(ステップS19)
制御回路80により、物理アドレスレジスタ50で指定されるフラッシュメモリユニットの領域に対し消去が指示されると同時に、空きブロック管理テーブル70の変更前アドレスレジスタ51により指定される現用ブロックの状況を表示する使用表示フラグに未使用を示す‘0’が設定され、変更先アドレスレジスタ52により指定される交代ブロックの状況を表示する使用表示フラグに使用中を示す‘1’が設定され、アドレス変換テーブル60の論理アドレスレジスタ40で指定される領域に変更先物理ブロックアドレスが設定され、ステップS25に進む。(ステップS20〜S24)
制御回路80により本体装置2にデータ送出が依頼され、本体装置2から送出されたデータが、フラッシュメモリユニット3の物理アドレスレジスタ50で指定された交代ブロックの変更データ格納領域に以下の手順で1語づつ格納される。即ち、
制御回路80により、データ長カウンタ81が0になるまで繰り返して、
フラッシュメモリユニット3の物理アドレスレジスタ50で指定された領域に本体装置2から送出されたデータが書込まれ、同時に物理アドレスレジスタ50のワードアドレス部が+1され、データ長カウンタ81がマイナス1され、
データ長カウンタ81が0になるとステップS28に進む。(ステップS25〜S27)
制御回路80により、フラッシュメモリユニット3の消去完了が確認され、処理を終了する。(ステップS28)
制御回路80により、素子アドレスレジスタ53に保持される素子アドレスに1加えた値と一致するまでブロックアドレスカウンタA0が1づつ歩進され、空きブロック管理テーブル70のブロックアドレスカウンタA0により指定される領域が検索され、使用表示フラグが‘0’のブロックが検出される、即ち、交代ブロックが同一素子の中に存在する場合にはステップS8に進み、使用表示フラグが‘0’のブロックが検出できない、即ち、交代ブロックが存在しない場合にはステップS41に進む。(ステップS29〜S31)
制御回路80により、物理アドレスレジスタの物理ブロックアドレス部に変更先アドレスレジスタ52の値が、ワードアドレス部に論理アドレスレジスタのワードアドレス部のデータが設定され、ステップS33に進む。(ステップS32)
制御回路80により本体装置2にデータ送出が依頼され、本体装置2から送出されたデータが、フラッシュメモリユニット3の物理アドレスレジスタ50で指定された交代ブロックの変更データ格納領域に以下の手順で1語づつ格納される。即ち、
制御回路80により、データ長カウンタ81が0になるまで繰り返して、
フラッシュメモリユニット3の物理アドレスレジスタ50で指定された領域に本体装置2から送出されたデータが書込まれ、同時に物理アドレスレジスタ50のワードアドレス部が+1され、データ長カウンタ81がマイナス1され、
データ長カウンタ81が0になるとステップS36に進む。(ステップS33〜S35)
制御回路80により、物理アドレスレジスタ50のブロックアドレス部に変更前アドレスレジスタ51に保持されている現用ブロックの物理アドレスが転送され、ステップS37に進む。(ステップS36)
制御回路80により、物理アドレスレジスタ50で指定されるフラッシュメモリユニットの領域に対し消去が指示されると同時に、空きブロック管理テーブルの変更前アドレスレジスタ51により指定される現用ブロックの状況を表示する使用表示フラグに未使用を示す‘0’が 設定され、変更先アドレスレジスタ52により指定される交代ブロックの状況を表示する使用表示フラグに使用中を示す‘1’が設定され、アドレス変換テーブル60の論理アドレスレジスタ40で指定される領域に変更先物理ブロックアドレスが設定され、ステップS28に進む。(ステップS37〜S40)
制御回路80により、変更のある部分を除いた現用ブロックから図示されないバッファメモリへのデータのコピーが行われ、本体装置2から送出されたデータが、前記図示されないバッファメモリの変更データ格納領域に格納される。
【0045】
1ブロック分のデータが揃うと、制御回路80により現用ブロックに対して消去が指示され、消去が完了すると前記図示されないバッファメモリからフラッシュメモリユニット3の現用ブロックに1ブロック分のデータがコピーされ、処理を終了する。(ステップS41〜S45)
【0046】
【発明の効果】
以上説明した様に、本発明によれは交代ブロックが現用ブロックと異なる素子の中にある場合には、現用ブロックの消去と、交代ブロックへの変更データの書込み,アドレス変換テーブル及び空きブロック管理テーブルの更新を同時に処理することが出来、交代ブロックと現用ブロックが同一の素子の中にある場合には現用ブロックの消去とアドレス変換テーブル及び空きブロック管理テーブルの更新を同時に処理することが出来るため、フラッシュメモリユニットの書替えが短時間となり、また、書替え終了後には確実に消去済の交代ブロックが容易出来るという工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の原理図
【図2】 本発明の第1の実施の形態構成図
【図3】 本発明の第1の実施の形態レジスタ及びカウンタの構成図
【図4】 本発明の第1の実施の形態空きブロック管理テーブルの構成図
【図5】 本発明の第1の実施の形態フローチャート図(その1)
【図6】 本発明の第1の実施の形態フローチャート図(その2)
【図7】 本発明の第1の実施の形態フローチャート図(その3)
【図8】 本発明の第1の実施の形態フローチャート図(その4)
【図9】 本発明の第1の実施の形態フローチャート図(その5)
【図10】 アドレス変換テーブルの構成図
【図11】 レジスタ及びカウンタの構成図
【図12】 従来例の構成図
【図13】 従来例の空きブロック管理テーブルの構成図
【図14】 従来例のフローチャート図(その1)
【図15】 従来例のフローチャート図(その2)
【図16】 従来例のフローチャート図(その3)
【図17】 従来例のフローチャート図(その4)
【符号の説明】
1 メモリ制御ユニット
2 本体装置
3 フラッシュメモリユニット
4 論理アドレス保持手段
5 物理アドレス保持手段
6 アドレス変換手段
7 空きブロック管理手段
8 メモリ制御手段
9 変更データ書込領域生成手段
40 論理アドレスレジスタ
50 物理アドレスレジスタ
51 変更前アドレスレジスタ
52 変更先アドレスレジスタ
53 素子アドレスレジスタ
60 アドレス変換テーブル
70,70’ 空きブロック管理テーブル
80 制御回路
81 データ長カウンタ
90 加算回路
A0 ブロックアドレスカウンタ
31,3n フラッシュメモリ素子
91,92,45,46,54,55,65 アドレス線
93,94,82 制御線
95 データ線
Claims (5)
- 複数のフラッシュメモリ素子から構成されるフラッシュメモリユニットに対するデータ転送の転送領域が、前記転送領域の先頭を示す論理アドレスと転送データ量を示すデータ長で指定され、該論理アドレスがアドレス変換されて得られる物理アドレスでフラッシュメモリユニットの読出しと書込みが制御されるフラッシュメモリ制御方法であって、
論理アドレスで指定される物理アドレスを持つ、変更前のデータが保持される現用ブロックとは異なるブロックを交代ブロックとし、現用ブロックの変更対象領域以外の領域に保持されているデータを交代ブロックにコピーし、次に現用ブロックの消去を指示すると同時に変更データを交代ブロックの変更対象領域に転送し、論理アドレスで指定されるブロックの物理アドレスを交代ブロックの物理アドレスに置き換えることを特徴とするフラッシュメモリ制御方法。 - 現用ブロックの先頭アドレスと変更対象領域の先頭アドレスの直前のアドレスにより指定される領域のデータを交代ブロックにコピーし、
物理アドレスとデータ長とから生成された変更対象領域の最終アドレスの直後のアドレスと現用ブロックの最終アドレスにより指定される領域のデータを交代ブロックにコピーし、
物理アドレスのブロックアドレス部を現用ブロックを示すブロックアドレスから交代ブロックのブロックアドレスに置き換えたアドレスを先頭アドレスとし、
データ長で指定される転送量の変更データを交代ブロックに格納することを特徴とする請求項1に記載のフラッシュメモリ制御方法。 - 物理アドレスのブロックアドレス部をフラッシュメモリ素子を示す素子アドレスと素子内ブロックアドレスとに区分し、
現用ブロックと異なる素子アドレスの範囲を対象として交代ブロックを検索し、前記範囲で交代ブロックが検出出来ない場合に同一素子アドレスの範囲を対象として交代ブロックを検索することを特徴とする、請求項1に記載のフラッシュメモリ制御方法。 - 論理アドレス保持手段と物理アドレス保持手段と空きブロック管理手段とアドレス変換手段とメモリ制御手段とから構成され、論理アドレス保持手段に保持される論理アドレスからアドレス変換手段により物理アドレスを生成して物理アドレス保持手段に保持し、データ長で指定されるデータの転送量をメモリ制御手段に保持し、該物理アドレスを現用ブロックのアドレスとして空きブロック管理手段により交代ブロックのアドレスを検索し、現用ブロックのアドレスと交代ブロックのアドレスとデータ長とで複数のフラッシュメモリ素子で構成されるフラッシュメモリユニットに対するデータ転送を制御するフラッシュメモリ制御ユニットであって、
変更データ書込領域生成手段を有して論理アドレスのワードアドレス部とデータ長とから変更データ格納領域の最終ワードアドレスの直後のアドレスを生成し、現用ブロックのアドレスのワードアドレス部と置換したアドレスと交代ブロックのアドレスのワードアドレス部と置換したアドレスとを生成し、現用ブロックの変更対象領域以外の領域に保持されているデ−タを交代ブロックにコピーし、交代ブロックの素子アドレスが現用ブロックの素子アドレスと異なる場合に、現用ブロックに消去を指示し、同時に変更データを交代ブロックの変更対象領域に転送することを特徴とするフラッシュメモリ制御ユニット。 - 物理アドレスのブロックアドレス部と、前記ブロックアドレス部の中のフラッシュメモリ素子を示す素子アドレスとを保持するブロックアドレス保持手段を有し、
現用ブロックと異なる素子アドレスの範囲を対象として交代ブロックを検索し、前記範囲で交代ブロックが検出出来ない場合に同一素子アドレスの範囲を対象として交代ブロックを検索することを特徴とする、請求項4に記載のフラッシュメモリ制御ユニット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31524495A JP3702515B2 (ja) | 1995-12-04 | 1995-12-04 | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31524495A JP3702515B2 (ja) | 1995-12-04 | 1995-12-04 | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09161491A JPH09161491A (ja) | 1997-06-20 |
JP3702515B2 true JP3702515B2 (ja) | 2005-10-05 |
Family
ID=18063111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31524495A Expired - Fee Related JP3702515B2 (ja) | 1995-12-04 | 1995-12-04 | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3702515B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999031592A1 (fr) * | 1997-12-16 | 1999-06-24 | Tdk Corporation | Systeme de memoire flash |
JP4315488B2 (ja) * | 1998-06-30 | 2009-08-19 | ソニー株式会社 | データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法 |
GB2349242A (en) * | 1999-04-20 | 2000-10-25 | Inventec Corp | Flash memory architecture and rewrite method |
JP2001006379A (ja) | 1999-06-16 | 2001-01-12 | Fujitsu Ltd | 複写、移動機能を有するフラッシュメモリ |
JP4772214B2 (ja) * | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
JP4812192B2 (ja) * | 2001-07-27 | 2011-11-09 | パナソニック株式会社 | フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法 |
KR100479170B1 (ko) * | 2002-06-14 | 2005-03-28 | 주식회사 포인칩스 | 메모리 억세스 제어장치 및 방법 |
WO2004031966A1 (ja) * | 2002-10-02 | 2004-04-15 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置の制御方法 |
JP4188744B2 (ja) * | 2003-04-08 | 2008-11-26 | 株式会社ルネサステクノロジ | メモリカード |
KR100533682B1 (ko) | 2003-12-26 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
KR101416879B1 (ko) * | 2008-10-06 | 2014-08-07 | 삼성전자주식회사 | 비휘발성 메모리의 동작 방법 |
-
1995
- 1995-12-04 JP JP31524495A patent/JP3702515B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09161491A (ja) | 1997-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100871027B1 (ko) | 데이터 기록 장치 및 플래시 메모리에 대한 데이터 기입방법 | |
US10078449B2 (en) | Flash memory architecture with separate storage of overhead and user data | |
KR100307894B1 (ko) | 컴퓨터시스템의플래시eeprom주메모리 | |
US5905993A (en) | Flash memory card with block memory address arrangement | |
JP3706167B2 (ja) | 半導体ディスク装置 | |
JP4399029B2 (ja) | 半導体不揮発性大容量記憶メモリ内の自動摩耗レベリングによるシステム・データ制御の方法およびアーキテクチャ | |
US6170066B1 (en) | Power-off recovery management for sector based flash media managers | |
JP3534585B2 (ja) | フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置 | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
US20060149902A1 (en) | Apparatus and method for storing data in nonvolatile cache memory considering update ratio | |
JPH05233426A (ja) | フラッシュ・メモリ使用方法 | |
JP2001051889A (ja) | 不揮発性半導体記憶装置を用いたファイルシステム | |
JP2007317224A (ja) | メモリシステム | |
JPH10124381A (ja) | 半導体記憶装置 | |
JP3702515B2 (ja) | フラッシュメモリ制御方法及びフラッシュメモリ制御ユニット | |
JP3421581B2 (ja) | 不揮発性半導体メモリを用いた記憶装置 | |
JP2003058417A (ja) | 記憶装置 | |
TW201621668A (zh) | 資料儲存裝置及其資料寫入方法 | |
JPH05150913A (ja) | フラツシユメモリを記憶媒体としたシリコンデイスク | |
JPH0955091A (ja) | フラッシュメモリ装置 | |
JP2004206615A (ja) | 記憶装置 | |
JPH10289144A (ja) | メモリの制御方法 | |
JP2004126945A (ja) | 記憶装置及びその制御方法 | |
JP2005222531A (ja) | データ記録装置及びデータ記録方法 | |
JPH08272654A (ja) | ファイル管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041224 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050711 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080729 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090729 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100729 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100729 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110729 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110729 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120729 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120729 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130729 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |