JPH06349286A - フラッシュメモリ用書き込み制御方法および制御装置 - Google Patents

フラッシュメモリ用書き込み制御方法および制御装置

Info

Publication number
JPH06349286A
JPH06349286A JP13465693A JP13465693A JPH06349286A JP H06349286 A JPH06349286 A JP H06349286A JP 13465693 A JP13465693 A JP 13465693A JP 13465693 A JP13465693 A JP 13465693A JP H06349286 A JPH06349286 A JP H06349286A
Authority
JP
Japan
Prior art keywords
data
entry
flash memory
write
written
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.)
Pending
Application number
JP13465693A
Other languages
English (en)
Inventor
Yoshitaka Kuroda
剛毅 黒田
Makoto Tazumi
誠 田積
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP13465693A priority Critical patent/JPH06349286A/ja
Publication of JPH06349286A publication Critical patent/JPH06349286A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【目的】 フラッシュメモリ(不揮発性)への書き込み
時間を短縮する書き込み制御方法および装置を提供す
る。 【構成】 書き込み要求が発生すると、書き込むべき
データと同じアドレスに既に書き込まれているデータと
を比較し、書き込みに際しての消去が不必要のときはそ
のまま書き込む。 フラッシュメモリからなる主記憶とキャッシュメモリ
を有するシステムにおいて、コヒーレンシプロトコル制
御部は、書き込みに際しての消去の必要性により、コヒ
ーレンシプロトコルをライトスルー方式とコピーバック
方式との切り替えを行う。エントリリプレース選択部
は、第1にダーティビットが全てリセットされているエ
ントリを優先して選択し、第2にダーティビットが全て
セットされているエントリを選択する。この2つの選択
に従ってエントリリプレース制御部は、エントリをリプ
レースする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリへの書き込みに
関し、特に電気的に消去可能なフラッシュメモリの書き
込み制御の方法および装置に関する。
【0002】
【従来の技術】従来、例えば『日経エレクトロニクス』
1992 2-17,no.547,pp.133-186 に記載されているごと
く、書き込みのあるある種の不揮発性メモリ(EEPROM,
フラッシュメモリなど)に新規作成や書き換えで新たに
データを書き込むこととなる場合には、直接新たなデー
タをそのまま書き込むこと(オーバーライト)を行なわ
ず、それに先立ちメモリの値を全て1に揃える消去動作
(以下、単に「消去」という)といわれるものを行なっ
ていた。(そのような性質を有する不揮発性メモリとし
てはフラッシュメモリが代表的であること、MNOS型SRAM
等の消去動作なしに書き込みが可能な不揮発性メモリと
容易に区別可能なことを考慮の上、本明細書ではかかる
性質を有する不揮発性メモリをフラッシュメモリとい
う。)ところでこの消去は、電源喪失時でも記憶内容が
破壊されない等のこのメモリの特質上、プログラム動作
で行うことはできない。このため、いったんフラッシュ
メモリに書き込みがなされた後に、同じアドレス(番
地)に新たなデータの書き込み要求が発生すると、この
先に書き込まれたメモリを全て一度消去した上で新たに
書き込み要求のあったデータを書き込むという繁雑な手
順をふんでいる。しかもこの際、読み込みと書き込みは
バイト単位で行えるが消去は設備や各種の制約の都合上
ブロック単位(2バイト以上)またはチップ全体でしか
行えない。このため、同一消去ブロック上の書き込み対
象のアドレスでないアドレスのデータは、消去されても
差し障りがないようにいったん退避させ、消去終了後に
再度書き込むという余計な作業まで行なっていた。
【0003】
【発明が解決しようとする課題】しかしながら、消去は
読み出しに対して3〜4桁も遅いので、上記のような方
法では、フラッシュメモリの書き込み性能が大きく劣化
することとなる。ひいては、計算機のフラッシュメモリ
へのアクセスも遅れることとなる。本発明はかかる課題
に鑑み、フラッシュメモリの特性を有効に利用すること
によりデータ書き込み時間を大幅に短縮可能なメモリ制
御方法およびメモリ制御装置を提供することを目的とし
てなされたものである。
【0004】
【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明においては、フラッシュメモリに既
に書き込まれているデータと該データの書き込まれてい
るアドレスへ新規に書き込もうとするデータの各ビット
を比較しビットの組合せから消去が必要かどうかを判定
するステップと、前記ステップの結果、消去を必要とし
ないと判定された場合には書き込み前の消去を省略して
新規に書き込むデータをオーバーライトするステップと
を有していることを特徴とするフラッシュメモリ用書き
込み制御方法としている。
【0005】請求項2の発明においては、フラッシュメ
モリと、前記フラッシュメモリへ新規に書き込むデータ
およびそのアドレスを格納する書き込みデータ格納部
と、新規に書き込むデータが書き込まれるべきフラッシ
ュメモリ上のアドレスに既に書き込まれた上記憶されて
いるデータを読み出すデータ読み出し部と、前記データ
読み出し部が読み出したデータを格納する読み出しデー
タ格納部と、前記書き込みデータ格納部のデータと前記
読み出しデータ格納部のデータの相応するアドレスの各
ビット値を比較して消去を必要とするビットの組み合せ
の有無を判定する書き込み判定部と、前記書き込み判定
部が消去を必要とするビットの組み合せが無いと判定し
たときには、フラッシュメモリへの書き込み前の消去を
省略して新規に書き込むデータをそのまま書き込むデー
タ書き込み部と、同じく前記書き込み判定部が消去が必
要であると判定したときには、フラッシュメモリの消去
されるアドレスのデータを退避させた上で消去を行わ
せ、消去終了後に新規に書き込むデータおよび退避して
いたデータのうち必要なものの書き込みを行わせる書き
込み消去制御部とを備えたことを特徴とするフラッシュ
メモリ用書き込み制御装置としている。
【0006】請求項3の発明においては、フラッシュメ
モリとキャッシュメモリとコヒーレンシプロトコルによ
りこれら両メモリが記憶すべきデータの一貫性を保つべ
く作用するコヒーレンシ部とを有する構成において、フ
ラッシュメモリへ書き込むデータとキャッシュメモリ上
のデータとを比較するステップと、前記コヒーレンシ部
が採用するコヒーレンシプロトコルを前記判定するステ
ップの結果に応じて所定の手順で切り替えるステップと
を有していることを特徴とするフラッシュメモリ用書き
込み制御方法としている。
【0007】請求項4の発明においては、新規に書き込
むデータとフラッシュメモリ上のデータとを比較して、
書き込みに際しての消去の必要性を所定の手順で判定す
るステップと、前記判定の結果消去を必要としないとさ
れた場合にはキャッシュメモリ上の該当するエントリの
コヒーレンシプロトコルをライトスルー方式にして、新
規に書き込むデータをキャッシュメモリに書き込んだ直
後にフラッシュメモリにも書き込むステップと、同じく
消去を必要とすると判定された場合にはキャッシュメモ
リ上の該当するエントリのコヒーレンシプロトコルをコ
ピーバック方式にして、新規に書き込むデータをキャッ
シュメモリのみに書き込み、フラッシュメモリに書き込
むのはキャッシュメモリ上の該当するエントリがリプレ
ースされるときまで延期するステップとを有しているこ
とを特徴とする請求項3記載のフラッシュメモリ用書き
込み制御方法としている。
【0008】請求項5の発明においては、キャッシュメ
モリと、前記キャッシュメモリと前記フラッシュメモリ
とのデータの一貫性をコヒーレンシプロトコルに従って
保持するコヒーレンシ部と、前記書き込み判定部の判定
結果に従って前記コヒーレンシ部の使用するコヒーレン
シプロトコルを切り替えるコヒーレンシプロトコル制御
部とを備えたことを特徴とする請求項2記載のフラッシ
ュメモリ用書き込み制御装置としている。
【0009】請求項6の発明においては、キャッシュメ
モリ上のデータがフラッシュメモリ上のデータと一致し
ていない場合にはその旨を表すダーティビットをセット
するステップと、 キャッシュメモリのエントリのリプ
レースが必要になった場合にダーティビットがセットさ
れていないエントリがプレースの対象として優先して選
択されるステップと、ダーティビットがセットされてい
ないエントリがないときにはエントリ内の全てにダーテ
ィビットがセットされているエントリが次に優先して選
択されるステップと、ダーティビットがセットされてい
ないエントリが選択されたときはフラッシュメモリ上の
リプレースの対象となっているデータをキャッシュメモ
リ上の当該エントリにオーバーライトし、リプレースさ
れるキャッシュメモリのエントリに記憶されていたデー
タはフラッシュメモリに書き戻さないステップと、ダー
ティビットが全てセットされているエントリが選択され
たときは当該エントリに記憶されているデータをフラッ
シュメモリ上に書き戻し、フラッシュメモリ上のリプレ
ースの対象となっているデータを新たにキャッシュメモ
リのリプレースされるべきエントリに書き込むステップ
とを有していることを特徴とする請求項4に記載のフラ
ッシュメモリ用書き込み制御方法としている。
【0010】請求項7の発明においては、前記コヒーレ
ンシ部の制御のもとでキャッシュメモリ上のデータがフ
ラッシュメモリ上のデータと一致していない場合にはそ
の旨を表すダーティビットをセットするダーティビット
セット部と、キャッシュメモリのエントリのリプレース
が必要になった場合にダーティビットがセットされてい
ないエントリをリプレースの対象として優先して選択
し、かかるエントリがないときは全てのダーティビット
がセットされているエントリを次に優先して選択するリ
プレースエントリ選択部と、前記リプレースエントリ選
択部がダーティビットがセットされていないエントリを
選択したときはフラッシュメモリ上のリプレースの対象
となっているデータをキャッシュメモリ上の当該エント
リにオーバーライトし、リプレースされるキャッシュメ
モリのエントリに記憶されていたデータはフラッシュメ
モリに書き戻さず、全てのビットにダーティビットがセ
ットされているエントリが選択されたときは当該エント
リに記憶されているデータをフラッシュメモリ上に書き
戻し、フラッシュメモリ上のリプレースの対象となって
いるデータを新たにキャッシュメモリのリプレースされ
るべきエントリに書き込むエントリリプレース制御部と
を備えたことを特徴とする請求項5記載のフラッシュメ
モリ用書き込み制御装置としている。
【0011】
【作用】請求項1の発明においては、既にデータが書き
込まれているフラッシュメモリに、新規作成、新規発生
や書き換え要求により新たにデータを書き込む必要が生
じた場合に、既に書き込まれているデータと該データの
書き込まれているアドレス(address,記憶位置, 番地)
へ新規に書き込もうとするデータの各ビットを比較して
書き込みに先立っての消去の必要性の有無が判定され
る。消去を必要とするビットの組み合せがないと判定さ
れた場合には書き込み前の消去を省略して新規に書き込
むデータをオーバーライト(直接そのまま書き込むこ
と)する。
【0012】請求項2の発明においては、書き込みデー
タ格納部はフラッシュメモリに新規に書き込むデータお
よびそのアドレスを格納(少なくも必要な時間だけは記
憶)する。データ読み出し部は、新規に書き込むデータ
が書き込まれるべきフラッシュメモリ上のアドレスに既
に書き込まれた上記憶されているデータを読み出す。読
み出しデータ格納部は、前記データ読み出し部が読み出
したデータを格納する。書き込み判定部は、前記書き込
みデータ格納部のデータと読み出しデータ格納部のデー
タの各ビットを比較して消去を必要とするビットの組み
合せの有無を判定する。データ書き込み部は、前記書き
込み判定部が消去を必要とするビットの組み合せがない
と判定するとフラッシュメモリの書き込み前の消去を省
略して新規に書き込むデータをオーバーライトする。書
き込み消去制御部は、前記書き込み判定部が消去が必要
と判定したときには、フラッシュメモリの消去されるア
ドレスのデータをいったん退避させた上で消去を行わ
せ、消去終了後に新規に書き込むデータおよび退避して
いたデータのうち必要なものをフラッシュメモリに書き
込ませる。
【0013】請求項3の発明においては、フラッシュメ
モリとキャッシュメモリとコヒーレンシプロトコル(co
herency protocol, 一貫性保持用規則)によりこれら両
メモリが記憶すべきデータの一貫性を保つべく作用する
コヒーレンシ部とを有する構成において、フラッシュメ
モリへ書き込むデータとフラッシュメモリ上のデータを
比較して、消去の必要性が判定される。次いで、前記コ
ヒーレンシ部が採用するコヒーレンシプロトコルが、前
記判定するステップの結果に応じて所定の手順で切り替
えられる。
【0014】請求項4の発明においては、新規に書き込
むデータとフラッシュメモリ上のデータとを比較して書
き込みに際しての消去の必要性が所定の手順で判定され
る。その結果消去を必要としないと判定された場合に
は、キャッシュメモリ上の該当するエントリのコヒーレ
ンシプロトコルをライトスルー方式にしてデータをキャ
ッシュメモリに書き込んだ直後にフラッシュメモリにも
書き込みがなされる。消去を必要とすると判定された場
合には、キャッシュメモリ上の該当するエントリのコヒ
ーレンシプロトコルをコピーバック方式にしてデータを
キャッシュメモリのみに書き込み、フラッシュメモリに
書き込むのは該当するエントリがリプレースされるとき
まで延期する。
【0015】請求項5の発明においては、コヒーレンシ
プロトコル制御部は前記書き込み判定部の書き込みに際
しての消去の必要性の有無の結果によってコヒーレンシ
プロトコルを切り替える。コヒーレンシ部は、この切り
換えられたプロトコルに従ってキャッシュメモリとフラ
ッシュメモリのデータの一貫性を保持する。請求項6の
発明においては、キャッシュメモリ上のデータがフラッ
シュメモリ上のデータと一致していない場合にはその旨
を表すダーティビットがセットされる。キャッシュメモ
リのエントリのリプレースが必要になった場合に、ダー
ティビットがセットされていないエントリがレプレース
の対象として優先して選択される。ダーティビットがセ
ットされていないエントリがないときには、エントリ内
の全てにダーティビットがセットされているエントリが
次に優先して選択される。ダーティビットがセットされ
ていないエントリが選択されると、フラッシュメモリ上
のリプレースの対象となっているデータをキャッシュメ
モリの当該エントリにオーバーライトし、キャッシュメ
モリのレプレースされたエントリに記憶されていたデー
タはフラッシュメモリに書き戻さない。ダーティビット
が全てセットされているエントリが選択されると、キャ
ッシュメモリ上の当該エントリのデータをフラッシュメ
モリ上に書き戻し、しかる後レプレースの対象となって
いるフラッシュメモリ上のデータが新たにキャッシュメ
モリのエントリに書き込まれる。
【0016】請求項7の発明においては、ダーティビッ
ト部が、コヒーレンシ部の制御のもとで、キャッシュメ
モリ上のデータがフラッシュメモリ上のデータと一致し
ていない場合には、その旨を表すダーティビットをセッ
トする。リプレースエントリ選択部は、キャッシュメモ
リのエントリのリプレースが必要になった場合、ダーテ
ィビットがセットされていないエントリをリプレースの
対象として優先して選択し、かかるエントリがないとき
には、全てのダーティビットがセットされているエント
リを次に優先して選択する。エントリリプレース制御部
は、前記リプレースエントリ選択部がダーティビットが
セットされていないエントリを選択した場合には、フラ
ッシュメモリ上のリプレースの対象となっているデータ
をキャッシュメモリの当該エントリにオーバーライト
し、キャッシュメモリのリプレースの対象とされたエン
トリに記憶されていたデータをフラッシュメモリに書き
戻さない。全てのダーティビットがセットされているエ
ントリが選択された場合は、キャッシュメモリ上の当該
エントリのデータをフラッシュメモリ上に書き戻し、し
かる後レプレースの対象となっているフラッシュメモリ
上のデータが新たにキャッシュメモリの当該エントリに
書き込まれる。
【0017】
【実施例】以下、本発明を実施例に基づいて説明する。
図1は、本発明に係るメモリ制御装置の一実施例の構成
図である。本図に示すように本実施例のフラッシュメモ
リ用書き込み制御装置及び方法は、CPU部1と、キャ
ッシュメモリ(cache memory, 高速一時記憶装置)2
と、主記憶装置用のフラッシュメモリ3と、書き込みデ
ータ格納部4と、読み出しデータ格納部5と、データ書
き込み部7とデータ読み出し部8と消去制御部9とを内
蔵したデータ制御部6と、書き込み判定部10と、退避
メモリ11と、コヒーレンシプロトコル制御部12と、
リプレースエントリ選択部13と、エントリリプレース
制御部14と、キャッシュ制御部15とを備えたCPU
システムに関するものである。
【0018】ここに、フラッシュメモリ3は、複数ブロ
ックまたはチップ全体でしかフラッシュメモリの消去が
行えず、またビット値を0から1に書き換えるには消去
が必要であり、逆の1から0への変化は書き込み動作で
行える。また、既に書き込まれているデータのビット値
と新しく書き込まれるデータのビット値が同じ値の場合
には、そもそも当該アドレスには書き込みが必要でな
い。このため、図4の判定表(a)に示すように、既に
書き込まれているデータのビット値が0であり、当該ア
ドレスに新たに書き込むべきデータのビット値が1であ
ることが1カ所もない場合のみフラッシュメモリの消去
なしに新規なデータの書き込みができることとなる。
(なお、ここに「新しく書き込まれるデータ」とは、
「既に書き込まれているデータ」とは区別するためかか
る表現をしているものであり、必ずしも「新規に作成さ
れ、発生し、その結果として新しく追加して記憶される
データ」に限定されず、「書き換えアドレスの変更等で
書き込まれる以前からどこかで記憶されているデータ」
等も含む。)書き込みデータ格納部4は、CPU部1か
らの書き込みデータそのものおよびそのアドレスを保持
する。読み出しデータ格納部5は、書き込みアドレスに
格納されているフラッシュメモリ3上のデータを保持す
る。データ書き込み部7は、CPU部1からの書き込み
データおよびそのアドレスを書き込みデータ格納部4に
格納すると同時に、キャッシュヒットしていればデータ
をキャッシュメモリ2に書き込む。データ読み出し部8
は、書き込みアドレスに格納されているフラッシュメモ
リ上のデータを読み出した上で、これを読み出しデータ
格納部5に格納する。書き込み判定部10は、書き込み
データ格納部4のデータと読み出しデータ格納部5の相
応するアドレスのデータの各ビット値を比較して、消去
の単位たる複数ブロック毎に消去を必要とするビットが
有るか否かを判定する。消去制御部9は、フラッシュメ
モリに対してオーバーライト以外の書き込みの必要性が
発生すると、書き込みアドレスを含む消去の対象となる
ブロックの既に書き込まれているデータを退避メモリ1
1に退避させ、この後フラッシュメモリ3の当該ブロッ
クを消去する。そして、この上で新しく書き込むデータ
および退避させたデータのうち書き込みアドレス以外の
データをフラッシュメモリ3に書き込ませる。データ制
御部6は、データ書き込み部7、データ読み出し部8、
消去制御部9を内蔵し、更にこれらと書き込み判定部1
0を制御する。キャッシュ制御部15は、CPU部1か
らのアクセスに対してヒット/ミスヒットの判定、ダー
ティビット(1ブロック毎に立てる)のセット/リセッ
ト(1を立てる/0にする)等のキャッシュの適切な作
用のための基本的な制御を行なう。コヒーレンシプロト
コル制御部12は、書き込み判定部10の判定結果に従
い、消去が不要な書き込みの場合には書き込みデータを
キャッシュおよびフラッシュメモリにそのまま書き込
み、消去が必要な書き込みの場合にはそのデータをキャ
ッシュメモリにのみ書き込ませる。エントリリプレース
制御部14は、キャッシュメモリ内のエントリ(entry,
アドレスタグにより区分けをされており、複数のブロッ
クからなる記憶用のライン)のリプレース要求(主記憶
たるフラッシュメモリ3のデータを新しく記憶し、今あ
るデータは追い出すこと。)が発生すると、第1にエン
トリ内の全ブロックに対してダーティビットがリセット
されているエントリをリプレースの対象として優先して
選択し、エントリ内のデータをフラッシュメモリ3に書
き戻さずに、新たにフラッシュメモリ上のデータをエン
トリに格納し、全ブロックにダーティビットセットされ
ていないエントリがない場合にはエントリ内のダーティ
ビットがついたブロックの数が多い順にリプレースの対
象として選択し、そのエントリ内のデータをフラッシュ
メモリ3に書き戻し、新たにフラッシュメモリ3上のデ
ータをキャッシュメモリ2のエントリに記憶させる。
【0019】次に上記メモリ制御装置の動作について、
図2および図3のフローチャートを参照しながら説明す
る。まず、CPU部1からメモリアクセスがあり、その
内容が書き込み要求であり(s1)、キャッシュ制御部
15がキャッシュヒット(s2)と判定した場合につい
て説明する。
【0020】CPU部1より書き込み要求が発生する
と、データ書き込み部7はこの要求のあったデータたる
書き込みデータおよびその書き込まれるべきアドレスを
書き込みデータ格納部4に格納し、併せて書き込みデー
タをキャッシュメモリ2に格納する(s3)。データ読
み出し部8は、フラッシュメモリ3上の書き込み要求ア
ドレスのデータを読み出した上で読み出しレジスタ部5
に格納する。次に書き込み判定部10は、書き込みデー
タ格納部4のデータと読み出しデータ格納部5のデータ
とを比較して、前者のデータをフラッシュメモリ2に書
き込むに際して消去を必要とするビット(値を0から1
へ変換することとなるビット)の有無を消去単位毎に判
定する(s4)。図4の(b)上欄に示すようにかかる
ビットがない場合には、コヒーレンシプロトコル制御部
12はライトスループロトコルを採り、このプロトコル
のもとキャッシュメモリ2に書き込まれたデータを即座
にフラッシュメモリ3にオーバーライトする(s5)。
この上でキャッシュ制御部15はダーティビットをリセ
ットする(s6)。また図4の(b)下欄に示すように
消去を必要とするビットの組み合せが1つでもある場合
には、コピーバックプロトコルを採り、このプロトコル
のもとキャッシュ制御部15はダーティビットをセット
し(s7)、フラッシュメモリ3への書き込みはエント
リのリプレースが発生するまで遅延される。(このた
め、ライトスループロトコルの場合に比較して複数回の
アクセスがあったときには、フラッシュメモリ3への書
き込みの回数が減ることとなる。)なお、データ制御部
6は、書き込み判定部10、データ書き込み部7、デー
タ読み出し部8の上記動作を制御する。
【0021】CPU部1からのアクセスが書き込み動作
であり、キャッシュ制御部15がキャッシュミスヒット
と判定した場合について説明する(s2)(s3)。C
PU部1より書き込み要求が発生すると、データ書き込
み部7は書き込みデータおよびそのアドレスを書き込み
データ格納部4に格納するが、キャッシュメモリ2には
書き込まない。データ読み出し部8は、フラッシュメモ
リ3上の書き込み要求アドレスのデータを読み出し、こ
れを読み出しデータ格納部5に格納する。次に書き込み
判定部10は、書き込みデータ格納部4のデータと読み
出しデータ格納部5のデータとを比較して、消去の必要
性の有無を判定する(s8)。消去が不必要の場合に
は、データ書き込み部7は書き込みデータ格納部4のデ
ータをフラッシュメモリ2にそのまま書き込む(s
9)。また、消去が必要な場合には、消去制御部9が書
き込みアドレスを含む消去の際の単位となる複数ブロッ
クのデータを退避メモリ部11に退避させた上で(s1
0)フラッシュメモリ3の当該ブロックの既に記憶され
ているデータを消去し(s12)、しかる後書き込みデ
ータ(s7)を書き込み、また書き込みアドレス以外の
退避させていたデータをフラッシュメモリ3に再度書き
込む(s13)。
【0022】CPU部1からのアクセスが読み出し動作
であり(s14)、キャッシュ制御部15がキャッシュ
ヒットと判定した場合について説明する(s15)。デ
ータ読み出し部8が、キャッシュメモリからデータを読
み出しCPU部1に出力する(s15)。CPU部1か
らのアクセスが読み出し動作であり、キャッシュ制御部
15がキャッシュミスヒットと判定した場合について説
明する。
【0023】フラッシュメモリ3からデータを読み出
し、これをキャッシュメモリ2に格納せずに直接CPU
部1に出力する(s16)。次にエントリのリプレース
要求が発生した場合の制御について説明する。まず、リ
プレースエントリ選択部13は、キャッシュメモリ2の
エントリ内の各ブロックのダーティビットの論理和およ
び論理積をとり、第1に論理和が0のエントリが存在す
る場合にはそのエントリをリプレースの対象として選択
する(t1)。かかる論理和が0のエントリが存在しな
い場合には論理積が1のエントリを第2のリプレース対
象とする(t2)。また、かかるエントリもなければ、
ダーティビットのセットされている数の多いエントリを
選択する(t3)。なお、リプレース対象が複数存在し
たり、上記第1若しくは第2の選択条件に合致するエン
トリが複数存在する場合には、LRU(least receitly
used,最後に参照された時刻が古いのを優先する。)法
やランダム法などの既存アルゴリズムを用いて決定す
る。エントリリプレース制御部14は、論理和が0のエ
ントリが存在する場合にはフラッシュメモリ3上のデー
タをそのエントリにオーバーライトする(t4)。論理
和が0のエントリが存在しない場合は消去制御部9がリ
プレースエントリを含むフラッシュメモリ上の消去の対
象となるブロックのデータを退避メモリ11にいったん
退避させ(t5)、当該ブロックの消去を実行した後
(t6)、書き込みデータ(t7)を書き込み、次いで
退避メモリ11に退避しているデータのうち書き込みデ
ータのアドレス以外のデータをフラッシュメモリに書き
込む(t8)。
【0024】それは、以下の理由による。通常キャッシ
ュメモリのリプレースはエントリ単位で行われるが、エ
ントリに含まれる複数のブロック全てにダーティビット
がリセットされていなければ、当該データはフラッシュ
メモリに存在するためキャッシュメモリ2から消去して
も問題はない。このため、リードだけが行われライトが
行われないのでフラッシュメモリに書き戻す必要がな
い。
【0025】次に、ダーティビットがエントリ内で1つ
以上セットされている場合は、もしそのエントリにダー
ティビットがセットされていないブロックがあると、そ
こには今後セットされる可能性がある。このため、その
エントリをリプレースの対象として選択してフラッシュ
メモリに書き戻すと、その後ダーティビットがセットさ
れていなかったブロックに書き込み要求が発生した場合
にはフラッシュメモリから再度キャッシュメモリに読み
込みがなされ、このためそのエントリに記憶されている
データがコピーバックされるときにまたフラッシュメモ
リの消去が必要となる。従ってダーティビットが全てセ
ットされているエントリから、そしてかかるエントリが
なければその数の多いエントリから先にレプレースする
方が消去の回数は削減されることによる。
【0026】以上、本発明を実施例に基づき説明した
が、本発明は何も上記実施例に限定されないのは勿論で
ある。すなわち例えば、 フラッシュメモリとは、書き込みに際してその内容の
如何によっては消去が必要な不揮発性メモリという意味
であり、EPPROM(electrically programamable read onl
y memory) 、EEPROM(electrically erasable) 等をも含
む。 実施例では、0から1への書き込みは消去なしにはで
きないものとしたが、逆に1から0への書き込みが消去
なしにはできないものであってもよい。 本発明を採用したシステムとして、CPUの主記憶装
置としてフラッシュメモリを採用し、更にキャッシュメ
モリを有する計算機を例にとって説明したが、これも何
も計算機に限定されず、主記憶装置とその予備の記憶装
置とを有する純粋なファイルシステムとしてもよい。ま
た、CPUの主記憶装置の全てがフラッシュメモリでな
く、フラッシュメモリを採用している部分についてのみ
本発明を採用するものであってもよい。予備の記憶装置
は、部分的にはキャッシュメモリ以外の他のものであっ
てもよい。 キャッシュメモリのダーティビットは1つのブロック
に1つ持つものとしているが、これも消去の際の一単位
をどのようにするかや記憶するデータの内容によって、
2ブロックに1つ等、適宜最適な方式が選択されえるの
は勿論である。 請求項3及び請求項4の発明におけるフラッシュメモ
リへ書き込みデータとキャッシュメモリ上のデータとを
比較するステップの内容としては、各データのビット値
が0か1を直接比較すること、キャッシュメモリのブロ
ック毎のダーティビットにより間接的に比較することの
他、書き込みが全く新しい入力データであるためキャッ
シュメモリに比較対象となるデータがないような場合の
検出等をも含む概念であるのは当然である。 請求項3及び請求項4の発明におけるコヒーレンシプ
ロトコルとしては、基本的にはライトスルー方式とコピ
ーバック方式であるが、全ての主記憶がフラッシュメモ
リとは限らないこと、全くの新規発生データの書き込み
がありえること、銀行における預金者リストのごとく重
要なデータは主記憶が複数あること等のため、適宜小変
更がなされてもよいのは勿論である。
【0027】
【発明の効果】以上説明したように各請求項の発明によ
れば、書き込みに先立ち消去が必要な不揮発性メモリに
書き込み要求が発生すると、直接的若しくは間接的に既
に書き込まれているデータと書き込もうとするデータと
を比較して、消去を必要としなければ、書き込もうとす
るデータをそのまま書き込むこととなるので、書き込み
要求によるデータの退避および消去が必ずしも発生しな
い。このため、書き込みが高速化される。
【0028】また、請求項3、請求項4及び請求項5の
発明においては、フラッシュメモリにそのままオーバー
ライトできる場合には、キャッシュメモリのコヒーレン
シプロトコルをライトスルーにして、キャッシュメモリ
への書き込みと同時にフラッシュメモリへも書き込みを
行ない、オーバーライトできない場合には、そのコヒー
レンシプロトコルをコピーバックにすることにより、消
去が必要となる書き込みをまとめ、その結果不揮発性メ
モリへの書き込みが高速となる。
【0029】また、請求項6及び請求項7の発明におい
ては、CPUとフラッシュメモリとの間にキャッシュメ
モリを設けた場合にリプレース要求が発生したときに、
第1にキャッシュメモリのダーティビットがセットされ
ていないエントリを優先してリプレースし、第2にダー
ティビットが全てセットされているエントリを優先して
リプレースする。これにより、フラッシュメモリの消去
(データの退避およびブロック消去)の回数を低減さ
せ、ひいてはそれへの書き込みが高速となる。
【0030】更にまた、各請求項の発明、特に請求項
4、請求項5、請求項6及び請求項7の発明は、CPU
のフラッシュメモリへのより高速なアクセスが可能とな
る。
【図面の簡単な説明】
【図1】本発明に係るフラッシュメモリ用の書き込み制
御装置及び制御方法の一実施例を採用した計算機システ
ムの構成図である。
【図2】上記実施例の動作流れ図である。
【図3】上記実施例の動作流れ図である。
【図4】(a)フラッシュメモリへの書き込みに際し
て、消去が必要となるビット値の組み合わせ表である。 (b)同じく、消去が必要となる場合と不必要な場合の
既に書き込まれているデータと書き込みデータの例であ
る。
【符号の説明】
1 CPU部 2 キャッシュメモリ 3 フラッシュメモリ 4 書き込みデータ格納部 5 読み出しデータ格納部 6 データ制御部 7 データ書き込み部 8 データ読み出し部 9 消去制御部 10 書き込み判定部 11 退避メモリ 12 コヒーレンシプロトコル制御部 13 リプレースエントリ選択部 14 エントリリプレース制御部 15 キャッシュ制御部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 フラッシュメモリに既に書き込まれてい
    るデータと該データの書き込まれているアドレスへ新規
    に書き込もうとするデータの各ビットを比較しビットの
    組合せから消去が必要かどうかを判定するステップと、 前記判定の結果、消去を必要としないと判定された場合
    には書き込み前の消去を省略して新規に書き込むデータ
    をオーバーライトするステップとを有していることを特
    徴とするフラッシュメモリ用書き込み制御方法。
  2. 【請求項2】 フラッシュメモリと、 前記フラッシュメモリへ新規に書き込むデータおよびそ
    のアドレスを格納する書き込みデータ格納部と、 新規に書き込むデータが書き込まれるべきフラッシュメ
    モリ上のアドレスに既に書き込まれた上記憶されている
    データを読み出すデータ読み出し部と、 前記データ読み出し部が読み出したデータを格納する読
    み出しデータ格納部と、 前記書き込みデータ格納部のデータと前記読み出しデー
    タ格納部のデータの相応するアドレスの各ビット値を比
    較して消去を必要とするビットの組み合せの有無を判定
    する書き込み判定部と、 前記書き込み判定部が消去を必要とするビットの組み合
    せが無いと判定したときには、フラッシュメモリへの書
    き込み前の消去を省略して新規に書き込むデータをその
    まま書き込むデータ書き込み部と、 同じく前記書き込み判定部が消去が必要であると判定し
    たときには、フラッシュメモリの消去されるアドレスの
    データを退避させた上で消去を行わせ、消去終了後に新
    規に書き込むデータおよび退避していたデータのうち必
    要なものの書き込みを行わせる書き込み消去制御部とを
    備えたことを特徴とするフラッシュメモリ用書き込み制
    御装置。
  3. 【請求項3】 フラッシュメモリとキャッシュメモリと
    コヒーレンシプロトコルによりこれら両メモリが記憶す
    べきデータの一貫性を保つべく作用するコヒーレンシ部
    とを有する構成において、 フラッシュメモリへ書き込むデータとキャッシュメモリ
    上のデータとを比較するステップと、 前記コヒーレンシ部が採用するコヒーレンシプロトコル
    を、前記判定するステップの結果に応じて所定の手順で
    切り替えるステップとを有していることを特徴とするフ
    ラッシュメモリ用書き込み制御方法。
  4. 【請求項4】 新規に書き込むデータとフラッシュメモ
    リ上のデータとを比較して、書き込みに際しての消去の
    必要性を所定の手順で判定するステップと、 前記判定の結果、消去を必要としないとされた場合には
    キャッシュメモリ上の該当するエントリのコヒーレンシ
    プロトコルをライトスルー方式にして、新規に書き込む
    データをキャッシュメモリに書き込んだ直後にフラッシ
    ュメモリにも書き込むステップと、 同じく消去を必要とすると判定された場合にはキャッシ
    ュメモリ上の該当するエントリのコヒーレンシプロトコ
    ルをコピーバック方式にして、新規に書き込むデータを
    キャッシュメモリのみに書き込み、フラッシュメモリに
    書き込むのはキャッシュメモリ上の該当するエントリが
    リプレースされるときまで延期するステップとを有して
    いることを特徴とする請求項3記載のフラッシュメモリ
    用書き込み制御方法。
  5. 【請求項5】 キャッシュメモリと、 前記キャッシュメモリと前記フラッシュメモリとのデー
    タの一貫性をコヒーレンシプロトコルに従って保持する
    コヒーレンシ部と、 前記書き込み判定部の判定結果に従って前記コヒーレン
    シ部の使用するコヒーレンシプロトコルを切り替えるコ
    ヒーレンシプロトコル制御部とを備えたことを特徴とす
    る請求項2記載のフラッシュメモリ用書き込み制御装
    置。
  6. 【請求項6】 キャッシュメモリ上のデータがフラッシ
    ュメモリ上のデータと一致していない場合にはその旨を
    表すダーティビットをセットするステップと、キャッシ
    ュメモリのエントリのリプレースが必要になった場合
    に、ダーティビットがセットされていないエントリがレ
    プレースの対象として優先して選択されるステップと、 ダーティビットがセットされていないエントリがないと
    きには、エントリ内の全てにダーティビットがセットさ
    れているエントリが次に優先して選択されるステップ
    と、 ダーティビットがセットされていないエントリが選択さ
    れたときはフラッシュメモリ上のリプレースの対象とな
    っているデータをキャッシュメモリ上の当該エントリに
    オーバーライトし、リプレースされるキャッシュメモリ
    のエントリに記憶されていたデータはフラッシュメモリ
    に書き戻さないステップと、 ダーティビットが全てセットされているエントリが選択
    されたときは、当該エントリに記憶されているデータを
    フラッシュメモリ上に書き戻し、フラッシュメモリ上の
    リプレースの対象となっているデータを新たにキャッシ
    ュメモリのリプレースされるべきエントリに書き込むス
    テップとを有していることを特徴とする請求項4に記載
    のフラッシュメモリ用書き込み制御方法。
  7. 【請求項7】 前記コヒーレンシ部の制御のもとでキャ
    ッシュメモリ上のデータがフラッシュメモリ上のデータ
    と一致していない場合には、その旨を表すダーティビッ
    トをセットするダーティビットセット部と、 キャッシュメモリのエントリのリプレースが必要になっ
    た場合に、ダーティビットがセットされていないエント
    リをリプレースの対象として優先して選択し、かかるエ
    ントリがないときは、全てのダーティビットがセットさ
    れているエントリを次に優先して選択するリプレースエ
    ントリ選択部と、 前記リプレースエントリ選択部がダーティビットがセッ
    トされていないエントリを選択したときは、フラッシュ
    メモリ上のリプレースの対象となっているデータをキャ
    ッシュメモリ上の当該エントリにオーバーライトし、リ
    プレースされるキャッシュメモリのエントリに記憶され
    ていたデータはフラッシュメモリに書き戻さず、全ての
    ビットにダーティビットがセットされているエントリが
    選択されたときは、当該エントリに記憶されているデー
    タをフラッシュメモリ上に書き戻し、フラッシュメモリ
    上のリプレースの対象となっているデータを新たにキャ
    ッシュメモリのリプレースされるべきエントリに書き込
    むエントリリプレース制御部とを備えたことを特徴とす
    る請求項5記載のフラッシュメモリ用書き込み制御装
    置。
JP13465693A 1993-06-04 1993-06-04 フラッシュメモリ用書き込み制御方法および制御装置 Pending JPH06349286A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13465693A JPH06349286A (ja) 1993-06-04 1993-06-04 フラッシュメモリ用書き込み制御方法および制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13465693A JPH06349286A (ja) 1993-06-04 1993-06-04 フラッシュメモリ用書き込み制御方法および制御装置

Publications (1)

Publication Number Publication Date
JPH06349286A true JPH06349286A (ja) 1994-12-22

Family

ID=15133485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13465693A Pending JPH06349286A (ja) 1993-06-04 1993-06-04 フラッシュメモリ用書き込み制御方法および制御装置

Country Status (1)

Country Link
JP (1) JPH06349286A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000090678A (ja) * 1998-09-10 2000-03-31 Hitachi Ltd 不揮発性メモリ及びシステム
JP2003036201A (ja) * 2001-07-24 2003-02-07 Sony Corp メモリアクセス管理装置
JP2003234000A (ja) * 2002-02-08 2003-08-22 Matsushita Electric Ind Co Ltd 半導体集積回路装置、icカードおよび検査装置
EP1653340A1 (en) 2004-10-27 2006-05-03 Sony Corporation Storage device and information processing system
JP2007528079A (ja) * 2004-03-08 2007-10-04 サンディスク コーポレイション フラッシュコントローラのキャッシュ構造
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
JP2009020833A (ja) * 2007-07-13 2009-01-29 Internatl Business Mach Corp <Ibm> データをキャッシュする技術
US7571282B2 (en) 2005-07-29 2009-08-04 Sony Corporation Computer system having a flash memory storage device
JP2010097333A (ja) * 2008-10-15 2010-04-30 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7779199B2 (en) 2005-10-20 2010-08-17 Sony Corporation Storage device, computer system, and data writing method
US9076533B2 (en) 2012-05-30 2015-07-07 Samsung Electronics Co., Ltd. Method of reprogramming nonvolatile memory comprising marking some cells as blanks

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000090678A (ja) * 1998-09-10 2000-03-31 Hitachi Ltd 不揮発性メモリ及びシステム
JP2003036201A (ja) * 2001-07-24 2003-02-07 Sony Corp メモリアクセス管理装置
JP2003234000A (ja) * 2002-02-08 2003-08-22 Matsushita Electric Ind Co Ltd 半導体集積回路装置、icカードおよび検査装置
JP2007528079A (ja) * 2004-03-08 2007-10-04 サンディスク コーポレイション フラッシュコントローラのキャッシュ構造
US9678877B2 (en) 2004-03-08 2017-06-13 Sandisk Technologies Llc Flash controller cache architecture
EP1653340A1 (en) 2004-10-27 2006-05-03 Sony Corporation Storage device and information processing system
US7571282B2 (en) 2005-07-29 2009-08-04 Sony Corporation Computer system having a flash memory storage device
US7779199B2 (en) 2005-10-20 2010-08-17 Sony Corporation Storage device, computer system, and data writing method
US7890695B2 (en) 2005-10-20 2011-02-15 Sony Corporation Storage device, computer system, and data writing method
JP2008242944A (ja) * 2007-03-28 2008-10-09 Toshiba Corp 統合メモリ管理装置及び方法
JP2009020833A (ja) * 2007-07-13 2009-01-29 Internatl Business Mach Corp <Ibm> データをキャッシュする技術
JP2010097333A (ja) * 2008-10-15 2010-04-30 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9076533B2 (en) 2012-05-30 2015-07-07 Samsung Electronics Co., Ltd. Method of reprogramming nonvolatile memory comprising marking some cells as blanks

Similar Documents

Publication Publication Date Title
US8041878B2 (en) Flash file system
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
JP5192228B2 (ja) フラッシュコントローラのキャッシュ構造
KR100725390B1 (ko) 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US10496334B2 (en) Solid state drive using two-level indirection architecture
US8909870B2 (en) Cache evictions from data cache based on content of address translation table cache and address translation table
JP2004318940A (ja) 記憶装置
JP5536655B2 (ja) キャッシュメモリ、メモリシステム及びデータコピー方法
US20040083348A1 (en) Method and apparatus for performing block caching in a non-volatile memory system
US7698495B2 (en) Computer system having logically ordered cache management
JP2013200889A (ja) 揮発性メモリおよび不揮発性メモリを有するハイブリッド固体メモリシステム
JPH07146820A (ja) フラッシュメモリの制御方法及び、それを用いた情報処理装置
US20100318726A1 (en) Memory system and memory system managing method
JPH06349286A (ja) フラッシュメモリ用書き込み制御方法および制御装置
JP2001147855A (ja) 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体
US20030046482A1 (en) Data management in flash memory
JP4175881B2 (ja) 不揮発性メモリの記憶方法及び記憶装置
US11392489B2 (en) Data storage device and non-volatile memory control method
JP5036078B2 (ja) 記憶装置
JPH08315596A (ja) 半導体記憶装置
EP3948550B1 (en) An apparatus, method and computer program for managing memory page updates within non-volatile memory
JPH0784886A (ja) キャッシュメモリ制御方法およびキャッシュメモリ制御装置
JP2009211152A (ja) 情報処理装置、メモリシステムおよびその制御方法