[go: up one dir, main page]

JP2007241576A - 不揮発性記憶装置およびそのデータ書込み方法 - Google Patents

不揮発性記憶装置およびそのデータ書込み方法 Download PDF

Info

Publication number
JP2007241576A
JP2007241576A JP2006061875A JP2006061875A JP2007241576A JP 2007241576 A JP2007241576 A JP 2007241576A JP 2006061875 A JP2006061875 A JP 2006061875A JP 2006061875 A JP2006061875 A JP 2006061875A JP 2007241576 A JP2007241576 A JP 2007241576A
Authority
JP
Japan
Prior art keywords
data
memory
auxiliary storage
address
held
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.)
Granted
Application number
JP2006061875A
Other languages
English (en)
Other versions
JP4418439B2 (ja
Inventor
Masanori Matsuura
正則 松浦
Yasushi Goho
靖 五寳
Shunichi Iwanari
俊一 岩成
Shinichi Tokumitsu
伸一 徳光
Masahiro Nakanishi
雅浩 中西
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 JP2006061875A priority Critical patent/JP4418439B2/ja
Priority to US11/670,670 priority patent/US20070214309A1/en
Priority to CN200710085534.9A priority patent/CN101042674A/zh
Publication of JP2007241576A publication Critical patent/JP2007241576A/ja
Application granted granted Critical
Publication of JP4418439B2 publication Critical patent/JP4418439B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ガーベッジコレクションの回数を減らし、データ書込みを高速に行うことができる不揮発性記憶装置を提供する。
【解決手段】本発明における不揮発性記憶装置110は、アクセス装置100よりセクタ単位のデータである入力データが入力される不揮発性記憶装置110であって、前記セクタ単位より大きいページ単位でデータの書込みが行われる不揮発性の主記憶メモリ130と、前記入力データを、少なくともページ単位分保持する補助記憶メモリ122と、補助記憶メモリ122が前記ページ単位以上のデータを保持しているか否かを判定するメモリ判定部を含むCPU121と、前記メモリ判定部により補助記憶メモリ122が前記ページ単位以上のデータを保持していると判定された場合に、補助記憶メモリ122に保持されているデータを、主記憶メモリ130の新たなページに前記ページ単位で書込むメモリ制御部123とを備える。
【選択図】図1

Description

本発明は、不揮発性記憶装置および不揮発性記憶装置のデータ書込み方法に関し、特に、補助記憶メモリと、ページ単位で書込みが行われる主記憶メモリとを備え、ページ単位より小さいセクタ単位のデータが入力される不揮発性記憶装置に関する。
書換え可能な不揮発性の主記憶メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードには様々な種類があり、その一つとしてSDメモリカード(登録商標)がある。
図23は、従来の不揮発性記憶装置を含む不揮発性記憶システムの構成を示すブロック図である。図23に示す不揮発性記憶システムは、デジタルスチルカメラまたはパソコン(パーソナルコンピュータ)等のアクセス装置100と、不揮発性記憶装置1110とを備える。
不揮発性記憶装置1110は、例えば、SDメモリカードであり、不揮発性の主記憶メモリ1130としてフラッシュメモリ1130と、それを制御するメモリコントローラ1120とを備える。メモリコントローラ1120は、アクセス装置100からのデータの読出しまたは書込み指示に応じて、フラッシュメモリ1130に対する読出しまたは書込みの制御を行う。
不揮発性記憶装置1110(SDメモリカード等)をパソコン等のアクセス装置100に取り付け、アクセス装置100側から不揮発性メモリ装置1110(SDメモリカード等)をリムーバブルディスクと見なしてFATファイルシステムで管理し、データのアクセスを行う場合について説明する。
FATファイルシステムは、記録デバイスへファイルまたはデータを記録する際にファイル・アロケーション・テーブル(FAT)を用いて、通常「クラスタ」ごとにデータ読み書きを指示するシステムである。クラスタは、FATファイルシステムにおけるデータ書込みの最小単位である「セクタ」を複数まとめた単位である。
フラッシュメモリ1130は、従来、フラッシュメモリ1130の書込み単位であるページサイズと、前述したFATファイルシステムにおけるデータ書込みの最小単位であるセクタサイズとが例えば512バイトで同一であった。しかしながら、近年、フラッシュメモリ1130の大容量化と高速化のニーズに伴い、ページサイズがセクタサイズより大きくなり、フラッシュメモリ1130へのデータ書込みの最小単位がセクタサイズではなくなっている。例えば、多値NANDフラッシュメモリのようにページサイズが2Kバイト(4セクタ)のフラッシュメモリ1130が主流になってきている。
セクタサイズより大きいページサイズのフラッシュメモリ1130で構成されるメモリカード等の不揮発性記憶装置1110において、論理セクタアドレスが0番地の1セクタ分のデータを書換える場合について説明する。なお、論理セクタアドレスが0〜3番地までの4セクタ分のデータが不揮発性記憶装置1110に書込み済みであるとする。
不揮発性記憶装置1110は、既にフラッシュメモリ130に書込み済みである論理セクタアドレスが1〜3番地の3セクタ分のデータを読み出し、読み出した3セクタ分のデータを、論理セクタアドレスが0番地の1セクタ分のデータとまとめて、フラッシュメモリ1130の先頭ページの空き領域に書込む。この3セクタ分の読み出しおよび書込み処理のことを、以降退避処理と呼ぶ。このような書換え処理の技術としては、例えば、特許文献1に開示されたものがある。
この「退避処理を伴う書換え手法」の処理手順の概略は以下の通りである。なお、フラッシュメモリ1130の物理ブロック内において、セクタは論理順すなわち物理ブロックの下位アドレス側(アドレス値が小さい方)から順番に、論理セクタ番号0,1,…となるように配置されている。ここで、物理ブロックとは、フラッシュメモリ1130のデータ消去の最小単位であり、1つの物理ブロックには、複数のページが含まれる。
1.アクセス装置100から指定される論理アドレスを受取るステップ。
2.論理アドレスを主記憶メモリ上の物理アドレスに変換するステップ。
3.ページに記憶されているデータの1セクタ(例えばセクタアドレスが0番地のデータ) のみを新データに書換える場合、変更されない旧データ(例えばセクタアドレスが1〜3 番地のデータ)をバッファ(SRAM)に読み出すステップ。
4.新データを、バッファ(SRAM)に書込むステップ。
5.バッファ(SRAM)に一時記憶されたデータを、前記ページを含む物理ブロックとは 別の消去済み物理ブロックに書込むステップ。
6.旧データが記録されていた物理ブロックを無効な物理ブロックに割り当てるステップ。
7.当該無効な物理ブロックの内容を消去するステップ。
以上のような手順でデータ書込みが行われる。
以上の説明からわかるように、「退避処理を伴う書換え手法」は、1セクタの書換えにもかかわらず、変更されない旧データのセクタを含む1ページ分の書込み処理が必要となる為、煩雑で時間のかかる処理となっている。
このような問題に対応したものとして、例えば、特許文献2に開示されている技術がある。
特許文献2記載の不揮発性記憶装置のフラッシュメモリは、物理ブロックのセクタ配置順は論理順という制約はなく、書込み指示がなされた順に物理ブロックの下位ページ側からデータが書込まれる。また、各セクタが書込まれたページ毎に、有効データが書込まれているか、あるいは旧データなので無効なのか、といったように、記録状態の管理がなされるものであって、「追記型書換え手法」と呼ぶことにする。
この追記型書換え手法では、アクセス装置からのデータ書込み指示の都度、データの退避処理が発生しないので、書込み自体は比較的高速に行われるが、あるタイミングでガーベッジコレクション(所定ブロックから有効なセクタのみ集めて別の消去済みブロックに書き写し、無効となったブロックを消去する処理)が必須となる。また、このガーベッジコレクションは、「退避処理を伴う書換え手法」においても行われる。
米国特許6760805号公報 特開平5−27924号公報
しかしながら、「退避処理を伴う書換え手法」および「追記型書換え手法」におけるガーベッジコレクションには比較的長い時間を要するものであり、ガーベッジコレクションが実行される回数が多いと不揮発性記憶素子の動作速度は減少することになる。
そこで、本発明は、上記問題点に鑑み、ガーベッジコレクションの回数を減らし、データ書込みを高速に行うことができる不揮発性記憶装置を提供することを目的とする。
上記目的を達成するために、本発明に係る不揮発性記憶装置は、外部よりセクタ単位のデータである入力データが入力される不揮発性記憶装置であって、前記セクタ単位より大きいページ単位でデータの書込みが行われる不揮発性の主記憶メモリと、前記入力データを、少なくともページ単位分保持する補助記憶メモリと、前記補助記憶メモリが前記ページ単位以上のデータを保持しているか否かを判定するメモリ判定手段と、前記メモリ判定手段により前記補助記憶メモリが前記ページ単位以上のデータを保持していると判定された場合に、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込むメモリ制御手段とを備える。
この構成によれば、旧データのセクタを含まないページ単位で、主記憶メモリにデータが書込まれるので、従来の旧データのセクタを含むページ単位で主記憶メモリにデータを書込む場合に比べ、無効なページの発生を低減することができる。よって、無効ページが少なくなるので、ガーベッジコレクションの回数を減らすことができる。すなわち、主記憶メモリに書込む際の退避処理を行わなくともよいので、ガーベッジコレクションの回数を減らすことができる。よって、データ書込みを高速に行うことができる。また、主記憶メモリへの書込み回数を減らすことができるので、不揮発性記憶装置の書換え寿命を向上されることができる。
また、前記補助記憶メモリは、前記入力データと、前記入力データのアドレスとを保持し、前記不揮発性記憶装置は、さらに、前記補助記憶メモリが保持するアドレスと、外部からの新たな入力データのアドレスとが一致するか否かを判定するアドレス判定手段と、前記新たな入力データの前記補助記憶メモリへの書込み、および、前記メモリ制御手段の制御を行うCPUとを備え、前記補助記憶メモリは、保持する各データの書込まれた順序を示すデータ管理フラグを保持し、前記CPUは、前記アドレス判定手段により前記補助記憶メモリが保持するアドレスと、前記新たな入力データのアドレスとが一致すると判定された場合に、前記新たな入力データを前記補助記憶メモリの前記新たな入力データと一致すると判定されたデータが保持されている領域とは異なる領域に書込み、前記CPUは、前記新たな入力データに対応する前記データ管理フラグに前記新たな入力データが前記新たな入力データと一致すると判定されたデータの後に書込まれたことを示す情報を設定し、前記CPUは、前記データ管理フラグに基づき、前記メモリ制御手段が前記主記憶メモリに書込むデータを決定してもよい。
この構成によれば、同一アドレスのデータが外部より入力された場合には、複数の同一アドレスのデータを補助記憶メモリに保持しておき、新たに入力された最新のデータのみを主記憶メモリに書込むことで、主記憶メモリへの書込み回数を減らすことができる。これにより、無効なページの発生が少なくなるので、ガーベッジコレクションの回数を減らすことができる。また、補助記憶メモリが保持するデータ管理フラグを確認することで、CPUは、補助記憶メモリに保持されている同一アドレスのデータのうち最新のデータを容易に判定することができる。また、補助記憶メモリに保持されているデータと同一アドレスの入力データを補助記憶メモリに保持されている同一アドレスのデータとは別の領域に保持する。これにより、入力データの補助記憶メモリへの書込みが失敗した場合に、少なくとも補助記憶メモリに保持されている旧データは失われないという効果がある。
また、前記補助記憶メモリは、前記入力データと、前記入力データのアドレスとを保持し、前記不揮発性記憶装置は、さらに、前記補助記憶メモリが保持するアドレスと、外部からの新たな入力データのアドレスとが一致するか否かを判定するアドレス判定手段と、前記新たな入力データの前記補助記憶メモリへの書込み、および、前記メモリ制御手段の制御を行うCPUとを備え、前記CPUは、前記アドレス判定手段により前記補助記憶メモリが保持するアドレスと、前記新たな入力データのアドレスとが一致すると判定された場合に、前記新たな入力データを前記補助記憶メモリの前記新たな入力データと一致すると判定されたデータが保持されている領域に上書きしてもよい。
この構成によれば、同一アドレスのデータが外部より入力された場合には、先に入力されたデータは、一時的に補助記憶メモリに記憶しておき、新たに同一アドレスのデータが外部より入力された時に、データを上書きする。これにより、新たに入力された最新のデータのみを主記憶メモリに書込むことができるので、主記憶メモリへの書込み回数を減らすことができる。これにより、無効なページの発生が少なくなるので、ガーベッジコレクションの回数を減らすことができる。よって、データ書込みを高速に行うことができる。また、主記憶メモリへの書込み回数が減ることにより、不揮発性記憶装置の書換え寿命を向上されることができる。また、補助記憶メモリにデータを上書きするので、補助記憶メモリの記憶容量を有効に用いることができる。
また、前記メモリ判定手段は、前記補助記憶メモリが一杯になったか否かを判定し、前記メモリ制御手段は、前記メモリ判定手段により前記補助記憶メモリが一杯になったと判定された場合に、前記補助記憶メモリが保持するデータを前記主記憶メモリに書込んでもよい。
この構成によれば、外部より入力されたデータが論理アドレス順ではなく、論理アドレスに対応する主記憶メモリの物理アドレスの途中や最後から転送されてきた場合にも、補助記憶メモリにデータを保持しておくことができる。よって、主記憶メモリの物理アドレスに対応したページ単位分の論理アドレスのデータが補助記憶メモリに保持されてから、主記憶メモリに書込みを行うことができる。よって、無効なページの発生が少なくなるので、ガーベッジコレクションの回数を減らすことができる。また、データ書込みの効率を上げることができる。
また、前記メモリ判定手段はハードウェアで構成され、前記不揮発性記憶装置は、さらに、前記メモリ判定手段による判定結果を前記CPUに通知する通知手段を備え、前記CPUは、前記通知手段により通知された前記判定結果に基づき、前記メモリ制御手段を制御し、前記CPUの制御により前記メモリ制御手段は、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込んでもよい。
この構成によれば、補助記憶メモリが一杯になったことを通知手段がCPUに通知する。これにより、CPUは、補助記憶メモリの状態を確認する処理を行わなくともよいので、CPUの処理シーケンスを簡単にすることができる。
また、前記メモリ判定手段は、前記補助記憶メモリが保持する有効な前記データ管理フラグの数に基づき、前記補助記憶メモリが一杯になったか否かを判定してもよい。
この構成によれば、メモリ判定手段は、補助記憶メモリが一杯になったか否かを容易に判定することができる。
また、前記メモリ判定手段は、前記補助記憶メモリが一杯になったか否かを判定し、前記メモリ制御手段は、前記メモリ判定手段により前記補助記憶メモリが一杯になったと判定された場合に、前記補助記憶メモリが格納するデータを前記主記憶メモリに書込み、前記CPUは、前記メモリ判定手段の判定が行われた後に、前記新たな入力データを前記補助記憶メモリに書込んでもよい。
この構成によれば、メモリ判定手段による判定の後に、新たな入力データを補助記憶メモリに書込むので、新たな入力データを補助記憶メモリに書込むことで補助記憶メモリが一杯になる場合であってもその後の処理が続行される。すなわち、補助記憶メモリが一杯の状態で、次に外部から入力されたデータのアドレスと補助記憶メモリが保持するデータとを比較してから、その後の処理を決定することができる。よって、同一アドレスのデータが来た場合は、補助記憶メモリが一杯であっても、上書きをすれば良く、補助記憶メモリに書込みに行くタイミングを遅らせることができる。これにより、不揮発性記憶装置の書込みを高速化することができる。また、補助記憶メモリの容量を有効に用いることができる。
また、前記不揮発性記憶装置は、さらに、前記入力データが、頻繁に更新されるか否かを判定する更新判定手段を備え、前記更新判定手段により頻繁に更新されると判定されたデータである特定データは、前記特定データ以外のデータと比べ、低い優先順位で前記主記憶メモリに書込まれてもよい。
この構成によれば、頻繁に更新されるデータ(ディレクトリエントリや鍵情報等)は、補助記憶メモリ内で保持し、処理の最後等に主記憶メモリに書込まれる。よって、頻繁に更新されるデータが来る度に、主記憶メモリに書込む必要がなくなり、主記憶メモリへの書換え回数を減すことができる。よって、不要な書込みが行われないので、ガーベッジコレクションの回数を減らすことができる。また、不揮発性記憶装置の寿命を延ばすことができる。
また、前記不揮発性記憶装置は、さらに、前記入力データのアドレスが、特定アドレスと一致するか否かを判定する特定アドレス判定手段を備え、前記特定アドレスを有するデータである特定データは、前記特定データ以外のデータと比べ、低い優先順位で前記主記憶メモリに書込まれてもよい。
この構成によれば、頻繁に更新される特定アドレスのデータ(FATデータ等)は、補助記憶メモリ内で保持し、処理の最後等に主記憶メモリに書込まれる。よって、頻繁に更新される特定アドレスのデータが来る度に、主記憶メモリに書込む必要がなくなり、主記憶メモリへの書換え回数を減すことができる。よって、不要な書込みが行われないので、ガーベッジコレクションの回数を減らすことができる。また、不揮発性記憶装置の寿命を延ばすことができる。
また、前記補助記憶メモリは、保持する各データが前記特定データであるか否かを示す特定領域フラグを保持してもよい。
この構成によれば、補助記憶メモリが保持する特定領域のデータを容易に判別することができる。また、複数の特定領域を任意に設定することができる。
また、前記特定データが保持される領域は、前記補助記憶メモリ内で自由に設定できてもよい。
この構成によれば、複数の特定領域を任意に設定することができる。また、任意の領域を特定領域とすることができるので補助記憶メモリの容量を有効に用いることができる。
また、前記補助記憶メモリは、保持する各データが前記補助記憶メモリに正常に書込まれたか否かを示す書込み完了フラグを保持してもよい。
この構成によれば、補助記憶メモリに正常にデータが書込まれたか否かを容易に判定することができる。よって、補助記憶メモリが保持するデータの信頼性を向上させることができる。
また、前記補助記憶メモリは、保持する各データが前記主記憶メモリに書込まれたか否かを示す転送完了フラグを保持してもよい。
この構成によれば、補助記憶メモリが保持するデータが、既に主記憶メモリに保持したデータであり上書きを行ってもよいか否かを容易に判定することができる。また、主記憶メモリに正常にデータが書込まれたか否かを容易に判定することができ、主記憶メモリが保持するデータの信頼性を向上させることができる。
また、前記補助記憶メモリは、不揮発性RAMであってもよい。
この構成によれば、補助記憶メモリにデータが書込まれた後で、主記憶メモリに当該データを書込み前において電源が落ちたとしても、補助記憶メモリにはデータが残るので不揮発性記憶装置のデータが失われることはない。また、補助記憶メモリにデータを書込んだ時点で、外部に対し、書込み完了の通知を行うことが可能となり、不揮発性記憶装置の書込み速度を向上させることができる。
また、前記補助記憶メモリは、強誘電体メモリ(FeRAM)、磁性記録式随時書込み読み出しメモリ(MRAM)、オボニックユニファイドメモリ(OUM)およびレジスタンスRAM(RRAM)であってもよい。
また、前記アドレス判定手段は、ハードウェアで構成されてもよい。
この構成によれば、アドレス判定手段はハード的に補助記憶メモリが保持しているデータのアドレスと、外部から新たに入力されたデータのアドレスとが一致するか否かの判定を行うことができ、動作速度を向上させることができる。また、CPUの処理を減らすことができる。
また、本発明に係る不揮発性記憶装置のデータ書込み方法は、外部よりセクタ単位のデータである入力データが入力され、前記セクタ単位より大きいページ単位でデータの書込みが行われる不揮発性の主記憶メモリを備える不揮発性記憶装置のデータ書込み方法であって、前記入力データを補助記憶メモリに保持する保持ステップと、前記補助記憶メモリが前記ページ単位以上のデータを保持しているか否かを判定する判定ステップと、前記判定ステップにおいて前記補助記憶メモリが前記ページ単位以上のデータを保持していると判定された場合に、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込む書込みステップとを含む。
これにより、旧データのセクタを含まないページ単位で、主記憶メモリにデータが書込まれるので、従来の旧データのセクタを含むページ単位で主記憶メモリにデータを書込む場合に比べ、無効なページの発生を低減することができる。よって、無効ページが少なくなるので、ガーベッジコレクションの回数を減らすことができる。すなわち、主記憶メモリに書込む際の退避処理を行わなくともよいので、ガーベッジコレクションの回数を減らすことができる。よって、データ書込みを高速に行うことができる。また、主記憶メモリへの書込み回数を減らすことができるので、不揮発性記憶装置の書換え寿命を向上されることができる。
なお、本発明のように、不揮発性の補助記憶メモリを使用する先行技術として特開平7−200418号公報に記載されている技術があるが、特開平7−200418号公報には前述したような退避合理化については開示されていない。
本発明は、ガーベッジコレクションの回数を減らし、データ書込みを高速に行うことができる不揮発性記憶装置を提供することができる。
以下、本発明に係る不揮発性記憶装置の実施の形態について、図面を参照しながら詳細に説明する。
(第1の実施形態)
本実施形態における不揮発性記憶装置は、アクセス装置より入力されるセクタ単位のデータを、少なくとも1ページ分補助記憶メモリに保持し、主記憶メモリにページ単位で書込みを行う。これにより、書込み回数を減らすことができる。よって、無効ページの発生を低減できるので、ガーベッジコレクションの回数を減らすごとができ、動作速度を向上させることができる。
まず、本発明の第1の実施形態おける不揮発性記憶装置の構成を説明する。
図1は、本発明の第1の実施形態における不揮発性記憶システムの構成を示すブロック図である。図1に示す不揮発性記憶システムは、不揮発性記憶装置110と、アクセス装置100とを備える。
アクセス装置100は、不揮発性記憶装置110にセクタ単位のユーザデータ(以降、単にデータ)の読出しまたは書込み命令を送る。書込み時には、アクセス装置100は、不揮発性記憶装置110に書込みデータと、書込みデータの論理アドレスを送信する。読出し時には、アクセス装置100は、不揮発性記憶装置110に読出しデータの論理アドレスを送信し、データを受信する。例えば、アクセス装置100は、デジタルスチルカメラまたはパーソナルコンピュータ等である。
不揮発性記憶装置110は、メモリコントローラ120と、不揮発性の主記憶メモリであるフラッシュメモリ130とを備える。不揮発性記憶装置110は、例えば、SDメモリカードである。
メモリコントローラ120は、アクセス装置100からの書込み命令に応じ、フラッシュメモリ130へ、アクセス装置100から入力されたデータの書込みを行う。また、メモリコントローラ120は、アクセス装置100からの読出し命令に応じ、フラッシュメモリ130からデータを読出し、アクセス装置100へ出力する。メモリコントローラ120は、CPU121と、バッファメモリ122と、メモリ制御部123とを備える。
CPU121は、アクセス装置100との送受信およびフラッシュメモリ130へのデータの書込みおよび読出しにおけるアドレス管理等全体の制御を行う。また、CPU121は、バッファメモリ122への書込み、および、メモリ制御部123の制御を行う。
バッファメモリ122は、アクセス装置100から入力された、フラッシュメモリ130へ書込まれる前のデータを一時的に記憶する補助記憶メモリである。バッファメモリ122は、アクセス装置100から入力されたセクタ単位のデータを、少なくともフラッシュメモリ130の書込み単位であるページ単位分保持する。バッファメモリ122は、不揮発性RAMであり、例えば、強誘電体メモリ(FeRAM)、磁性記録式随時書込み読み出しメモリ(MRAM)、オボニックユニファイドメモリ(OUM)およびレジスタンスRAM(RRAM)等である。なお、バッファメモリ122は、揮発性メモリ(SRAM等)であってもよい。
メモリ制御部123は、主記憶メモリ130およびバッファメモリ122へのデータの書込みおよび読出しを制御する。
なお、CPU121が実行する論理物理変換処理、すなわち、アクセス装置100が指定した論理アドレスをフラッシュメモリ130の物理アドレスに変換する処理などのアドレス管理処理は、一般的に公知の技術であるので簡単の為に説明を省略する。
フラッシュメモリ130は、セクタ単位より大きいページ単位でデータの書込みが行われる。フラッシュメモリ130は、例えば、多値NANDフラッシュメモリである。
図2は、フラッシュメモリ130の物理ブロックの構成の一例を示す図である。図2に示すフラッシュメモリ130は、8つの物理ブロック200(PB0〜PB7)から構成される。物理ブロック200は、データ消去(イレース)の最小単位であり、例えば、256Kバイトである。
図3は、物理ブロック200における物理アドレスの構成の一例を示す図である。図3に示す物理ブロック200は、128個のページ210より構成される。ページ210は、フラッシュメモリ130のデータ書込みの最小単位であり、例えば2Kバイトである。各ページ210は、2048バイトのデータ領域211と、64バイトの管理領域212とを備える。アクセス装置100からのデータ単位であるセクタ213は512バイトであり、各ページ210には4セクタ分のデータが記憶される。例えば、ページ0には、PSN0〜PSN3の4セクタ分のデータが記録される。また、管理領域212は、CPU121のアドレス管理処理に必要な情報が記憶される領域であるが、詳細な説明は省略する。
なお、図3で左上からPSN0,PSN1,…,PSN511というように物理的な配置記号を付している。PSNとはPhysical Sector Numberの頭文字をとった略号である。なお、フラッシュメモリ130は図2および図3に示す構成に限ったものではない。
図4は、バッファメモリ122に保持されるデータの構成を示す図である。図4に示すように、バッファメモリ122は物理ブロックの1セクタ分のデータと論理アドレスを一時記憶できる容量を有しており、8つのワード301を保持する。各ワード301は、データ領域302と、論理アドレス領域303と、データ管理フラグ304とを含む。データ領域302には、1セクタ分である512バイトのデータが保持される。論理アドレス領域303には、当該データのセクタ単位のアドレスが保持され、1GByte分のセクタを識別できるビット数(21ビット)を有している。データ管理フラグ304は、バッファメモリ122が保持する各データの書込まれた順序を示す情報である。すなわち、データ管理フラグ304は、同一アドレスの複数のデータがバッファメモリ122に保持されたときに、どのデータが最新であるかを示す。例えば、データ管理フラグ304は、4ビットである。図4に示すように、ワード0のデータ領域302にはデータAが保持され、論理アドレス領域303には“000000h”が保持され、データ管理フラグ領域304には“1”が設定される。当該データがバッファメモリ122に保持されている状態で、同一論理アドレスのデータBがアクセス装置100より送られてくると、ワード1のデータ領域302にはデータBが保持され、論理アドレス領域303には“000000h”が保持され、データ管理フラグ304にはワード1のデータはワード0のデータの後に書込まれたことを示す情報である“2”が設定される。これにより、CPU121は、バッファメモリ122に保持されている同一アドレスのデータのデータ管理フラグ304を確認することで、どのデータが最新のデータであるか判定することができる。
以上のように構成された、本発明の第1の実施形態における不揮発性記憶装置の動作について、以下図面を用いて説明する。
図5は、本実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。アクセス装置100から転送されたデータをバッファメモリ122が一時記憶し、その後、一時記憶されたデータをフラッシュメモリ130に書込む一連の書込み動作を、図5を用いて説明する。
図5において、不揮発性記憶装置110は、アクセス装置100からのライトコマンド(以下、WCMDと記載する)の受信待ち状態となる(S500)。CPU121は、WCMDを受信すると(S500でYes)、アクセス装置100から新たに入力されたデータの論理セクタアドレスと、バッファメモリ122に保持されているデータの論理セクタアドレスとを比較し、一致するか否かを判定する(S501)。バッファメモリ122に論理アドレスが一致するデータが無い場合、すなわち新たに入力されたデータが新規アドレスのデータである場合(S502でYes)、バッファメモリ122に1セクタ分のデータと論理セクタアドレスとが一時記憶される(S503)。バッファメモリ122に論理セクタアドレスが一致するデータがある場合、すなわち新たに入力されたデータが新規アドレスのデータでない場合(S502でNo)、CPU121は、アクセス装置100から新たに入力されたデータのデータ管理フラグ304の値を、バッファメモリ122に保持されている論理セクタアドレスが一致したデータのデータ管理フラグ304の値から1インクリメントした値にし(S504)、バッファメモリ122に1セクタ分のデータと論理セクタアドレスを一時記憶させる(S503)。次に、CPU121は、バッファメモリ122が一杯になったか否かを判定する(S505)。バッファメモリ122が一杯の場合(S505でYes)、CPU121の制御によりメモリ制御部123は、バッファメモリ122に保持されているデータをフラッシュメモリ130の書込み単位であるページ単位でフラッシュメモリ130の所定物理ブロックの新たなページに書込む(S506)。ここで、CPU121は、各データに対応するデータ管理フラグ304に基づき、フラッシュメモリ130に書込むデータを決定する。なお、所定物理ブロックとは、CPU121の論理物理変換などのアドレス管理処理によって指定した物理ブロックであり、どの物理ブロックを指定するかについては説明を省略する。
また、バッファメモリ122に空き領域がある場合は(S505でNo)、アクセス装置から転送終了コマンド(以下STOPという)が転送されたかどうかをチェックする(S507)。STOPを受信した場合には(S507でYes)、CPU121は、アクセス装置100に対して書込み完了を通知する(S508)。
なお、1セクタ分のデータをバッファメモリ122に一時記憶した時点で、アクセス装置100に対して書込み完了を通知してもよい。また、バッファメモリ122以外の他のバッファメモリを用意し、CPU121は、新たにアクセス装置100から転送されたデータを一度他のバッファメモリに取り込んでから、新たにアクセス装置100から転送されたデータの論理セクタアドレスとバッファメモリ122のデータの論理セクタアドレスとを比較し、その後の処理を実施してもよい。
以上説明した不揮発性記憶装置110の書込み処理に基づき、アクセス装置100がデータを書換える例について説明する。なお、本発明と従来の発明との差異を明確にするために、まず先に、図6を用いて本発明の不揮発性記憶装置110のデータ書換え処理の説明をし、次に図7および図8を用いて従来の不揮発性記憶装置のデータ書換え処理の説明をする。
図6は、本実施形態における不揮発性記憶装置110の書換え処理の流れを示した図である。
図6において、アクセス装置100からWCMDが3回転送される。最初のWCMDをWCMD1、次のWCMDをWCMD2、最後のWCMDをWCMD3と表記する。また、フラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLS0〜LS3の旧データLS0A〜LS3Aが保持されており、物理ブロックPB0のページ0は、データが書込まれていないとする。また、バッファメモリ122は、データを保持していないとする。なお、図6において、説明の単純化のため、バッファメモリ122が保持するワード数は5としているがこれに限らない。
WCMD1において、不揮発性記憶装置110は論理セクタアドレス0(LS0)のデータLS0Bを受信し、バッファメモリ122に一時的に記憶する。LS0Bを受信した後に、アクセス装置100よりSTOP信号が転送されると、データを受け取ったCPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスと、LS0Bの論理セクタアドレス(LS0)との比較を行い、一致するか否かを判定する。CPU121は、一致する論理アドレスのデータがないので、LS0Bをバッファメモリ122に保持する。この時、データLS0Bは新規のデータであるので、データLS0Bのデータ管理フラグ304は“1”に設定される。
次に、WCMD2において、アクセス装置100から、論理セクタアドレスLS0の1セクタ分のデータLS0Cが転送され、その後STOP信号が転送される。CPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスと、LS0Cの論理セクタアドレスとの比較を行う。WCMD1において転送されたLS0Bの論理セクタアドレス(LS0)とLS0Cの論理セクタアドレス(LS0)とは一致するので、データLS0Cに対応するデータ管理フラグ304の値を、バッファメモリ122が保持しているデータLS0Bのデータ管理フラグ304の値“1”を1インクリメントした値である“2”に設定する。CPU121は、バッファメモリ122のLS0Bが保持されている領域とは異なる領域にLS0Cと論理アドレス(LS0)とインクリメントしたデータ管理フラグ304の値“2”とを保持する。
その後、アクセス装置100は、WCMD3を転送し、引き続き論理セクタアドレス1〜3までの3セクタ分のデータ(LS1B、LS2BおよびLS3B)を転送する。LS1B、LS2BおよびLS3Bは、バッファメモリ122にLS0BおよびLS0Cに続いて順番に一時記憶される。この時、LS1B、LS2BおよびLS3Bは新規アドレスのデータであるので、LS1B、LS2BおよびLS3Bに対応するデータ管理フラグ304の値は“1”に設定される。
LS3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121からの命令により、バッファメモリ122に一時記憶されたデータをフラッシュメモリ130に転送し、書込みを行う。ここで、CPU121は、LS0BとLS0Cとは同一論理アドレスのデータであることを認識し、データ管理フラグ304を見ることでLS0Cが最新のデータであることを確認する。すなわち、CPU121は、LS0Bに対応するデータ管理フラグ304の値“1”およびLS0Cに対応するデータ管理フラグ304の値“2”から、LS0Bが古いデータ(先にバッファメモリ122に書込まれたデータ)であり無効であるという情報を得る。また、CPU121は、LS0Cが新しいデータ(後にバッファメモリ122に書込まれたデータ)であり有効であるという情報を得る。CPU121は、LS0Cが最新のデータであると判断し、LS0C、LS1B、LS2BおよびLS3Bをフラッシュメモリ130に転送し、物理ブロックPB0のページ0に一括して書込みを実施する。このように、LS0C、LS1B、LS2BおよびLS3Bの新データを一括してPB0のページ0に書込むため、旧データ(LS0A〜LS3A)の退避処理は不要となる。旧データを記憶したPB5のページ0は、ある適当なタイミングで消去されることとなるが、消去動作については簡単のため省略する。
次に、図7を用いて従来の不揮発性記憶装置の動作を説明する。図7は、従来の不揮発性記憶装置の書換え処理の流れを示す図である。
図7においても、図6と同様にWCMD1〜3がアクセス装置100から転送される。従来の不揮発性記憶装置1110は、WCMD〜STOPまでの処理単位毎にバッファメモリ1122からフラッシュメモリ1130に書込みがなされ、またこの単位毎にアクセス装置100に対して書込み完了を通知するようにしていた。また、バッファメモリ1122は1セクタ分の容量を有す。図7において、WCMD1の受信後、LS0Bをバッファメモリに一時記憶する。この時、物理ブロックPB5のページ0にLS0A〜LS3Aが既に記憶されているものとする。また新規データ書込み予定の物理ブロックPB0〜PB4は消去済ブロックであるとする。
従来の不揮発性記憶装置1110は、WCMD1のSTOPを受信した後に、バッファメモリ1122のLS0Bを物理ブロックPB0のページ0のPSN0の位置に書込むと同時に、物理ブロックPB5のページ0に記憶されている旧データLS1A〜LS3Aを、物理ブロックPB0のページ0のPSN1〜3の位置に書込む。
次に、WCMD2の直後に転送されたLS0Cをバッファメモリ1122に一時記憶し、先程と同様、STOPを受信した後に、バッファメモリ1122のLS0Cを物理ブロックPB1のページ0のPSN0の位置に書込むと同時に、物理ブロックPB0のページ0に保持されているLS1A〜LS3Aを、物理ブロックPB1のページ0のPSN1〜3の位置に書込む。
最後に、WCMD3の直後に転送されたLS1B〜LS3Bを逐次バッファメモリ1122を介してPB2〜PB4のページ0の所定セクタ記憶位置に書込むと同時に、旧データが記憶されているPB1〜PB3の対応するセクタ記憶位置から退避する。
以上、図6および図7を用いて、本発明を従来の例と対比させて書換え処理について記したが、本実施形態における不揮発性記憶装置110の方が従来の不揮発性記憶装置1110よりも退避処理が不要な分、フラッシュメモリ130への書込み回数が減るので、書換え速度が速いことがわかる。具体的には、上述した従来の不揮発性記憶装置1110は、LS0CおよびLS1B〜LS3Bの書換え例においては、5回のページライトが必要であったのに対して、本実施形態における不揮発性記憶装置110は、1回のページライトで済む。また、本実施形態における不揮発性記憶装置110は、従来と比べ書込み回数が少なく、書込みに使用するデータ領域も少なくなる。すなわち、無効ページの発生を低減することができるので、ガーベッジコレクションの回数を減らすことができる。また、フラッシュメモリ130への書込み回数が減ることにより、不揮発性記憶装置の寿命を延ばすことができる。
なお、図6および図7では、旧データが既に記憶されている例であったが、旧データが存在しない場合において説明する。図8は、旧データが存在しない場合の従来の不揮発性記憶装置の書込み処理の流れを示す図である。図8に示すようにバッファメモリ1122は、4セクタ分の容量を持つとする。
まず、WCMD1の時に物理ブロックPB0のページ0の対応するセクタ記憶位置にLS0Aを書込む。次に、WCMD2の時に物理ブロックPB0のページ1の対応するセクタ記憶位置にLS0Bを書込む。最後に、WMCD3の時にLS1B〜LS3BをPB0のページ1の対応するセクタ位置に書込む。よって、図8に示すように、旧データが存在しない場合の従来の不揮発性記憶装置は、3回のページライトで済む。すなわち、旧データが存在しない場合は、同一論理セクタアドレスのデータが保持されている場合と比べると書換え速度は速くなるが、本実施形態における不揮発性記憶装置110と比べればフラッシュメモリへの書込み回数が多く、書換え速度が遅いことがわかる。
図8に示すような同じページの異なる記憶位置に時分割的に書込む方法を、分割書込みという。例えば、2値NANDフラッシュメモリは分割書込みが可能であるが、多値NANDフラッシュメモリにおいては、信頼性を確保するために、分割書込みは保証されていない。また、分割書込みが可能である場合でも、分割書込みの回数には制限がある。従って、信頼性のある不揮発性記憶装置を実現しようとすると、図8に示すような分割書込みを適用することはできない。本実施形態における不揮発性記憶装置110の書込みは、分割書込みを使用せずに、書込み回数を減らすことができるので、信頼性と高速動作とを両立することができる。
また、本実施形態における不揮発性記憶装置110は、バッファメモリ122に、旧データ(図6の例では、LS0B)を保持しておく。これにより、当該旧データと同一の論理セクタアドレスのデータ(図6の例では、LS0C)をバッファメモリ122に書込み中に、電源が落ちる等により書込みが失敗した場合でも、旧データは失われない。
なお、上記説明では、バッファメモリ122が一杯になった時点で、フラッシュメモリ130への書込みを行っているが、バッファメモリ122に少なくとも1ページ分のデータが保持された時点で、フラッシュメモリ130への書込みを行ってもよい。この場合、CPU121は、ステップS505において、バッファメモリ122が一杯であるか否かの比較を行うのではなく、バッファメモリ122がページ単位分のデータを保持するか否かを判定する。
また、上記説明では、主記憶メモリとして多値NANDフラッシュメモリ130を用いているが、2値NANDフラッシュメモリであってもよいし、他の不揮発性メモリ(NORフラッシュメモリまたはEEPROM等)を用いてもよい。
(第2の実施形態)
第2の実施形態における不揮発性記憶装置は、バッファメモリ122に同一の論理アドレスのデータが保持されている場合には、新しいデータを旧データが保持されている領域に上書きする。これにより、バッファメモリ122の容量を有効に活用することができる。
図9は、第2の実施形態における不揮発性記憶装置の書込み処理のフローチャートである。なお、第2の実施形態のおける不揮発性記憶装置の構成は図1と同様であるので説明は省略する。
図9に示すように、第2の実施形態における不揮発性記憶装置の書込み処理は、ステップS902においてバッファメモリ122に論理セクタアドレスが一致するデータがある場合(S902でNo)に、バッファメモリ122の一致したデータが保持されている領域に新たにアクセス装置から入力された1セクタ分のデータと論理セクタアドレスとを上書きする(S906)点が第1の実施形態と異なる。ステップS906の後、アクセス装置100からSTOPが転送されたかどうかをチェックする(S907)。なお、WCMDの受信(S900)、アドレス比較(S901)、アドレスが一致しなかった後の処理(S902でYes〜S905)、ストップ受信(S907)および書込み完了通知(S908)は、第1の実施形態と同様であるので説明は省略する。
図10は、第2の実施形態における不揮発性記憶装置の書換え処理の流れを示した図である。
図10において、第1の実施形態における図6と同様にアクセス装置100からWCMDが3回転送される。また、図6と同様にフラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLS0〜LS3の旧データLS0A〜LS3Aが保持されており、物理ブロックPB0のページ0は、データが書込まれていないとする。また、バッファメモリ122は、データを保持していないとする。なお、図9において、説明の単純化のため、バッファメモリ122が保持するワード数は4としているがこれに限らない。
WCMD1において、不揮発性記憶装置110は、論理セクタアドレス0(LS0)のデータLS0Bを受信し、バッファメモリ122に一時的に記憶する。LS0Bを受信した後に、STOP信号が転送されると、データを受け取ったCPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスと、LS0Bの論理セクタアドレス(LS0)との比較を行う。一致する論理セクタアドレスがないので、CPU121は、LS0Bをバッファメモリ122に保持する。
次に、WCMD2において、アクセス装置100から、論理セクタアドレスLS0の1セクタ分のデータLS0Cが転送され、その後STOP信号が転送される。CPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスと、LS0Cの論理セクタアドレスとの比較を行う。WCMD1において転送されたLS0Bの論理セクタアドレスとLS0Cの論理セクタアドレスとは一致するので、CPU121は、新規のデータ(LS0C)をバッファメモリ122の旧データ(LS0B)が保持されている領域に上書きする。
その後、アクセス装置100は、WCMD3を転送し、引き続き論理セクタアドレス1〜3(LS1〜LS3)までの3セクタ分のデータ(LS1B、LS2BおよびLS3B)を転送する。LS1B、LS2BおよびLS3Bは新規アドレスのデータであるため、バッファメモリ122の空き領域にLS0BおよびLS0Cに続いて順番に一時記憶される。
LS3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121からの命令により、バッファメモリ122に一時記憶されたデータをフラッシュメモリ130に転送し、書込みを行う。CPU121は、LS0C、LS1B、LS2BおよびLS3Bをフラッシュメモリ130に転送し、物理ブロックPB0のページ0に一括して書込みを実施する。よって、LS0C、LS1B、LS2BおよびLS3Bの新データを一括してPB0のページ0に書込むため、旧データの退避処理は不要となる。
以上より、第2の実施形態における不揮発性記憶装置は、第1の実施形態と同様に一回のページライトでデータを書込むことができ、従来例と比較しても優れていることがわかる。また、第2の実施の形態ではバッファメモリ122に同一論理アドレスのデータが保持されている場合には、旧データが保持されている領域に新規データを上書きするため、バッファメモリ122の容量を有効活用することができる。また、データ管理フラグ304が不要になるという優位性がある。また、上記説明ではバッファメモリ122の容量を4セクタとしたが、バッファメモリ122の容量を更に増やすことによって、より多くのデータを一時的に保持し、同一アドレスのデータが来た場合に上書きすることができるので、更に書込みの効率化が可能になる。
(第3の実施形態)
第3の実施形態における不揮発性記憶装置は、バッファメモリ122が一杯になったことをCPU121に通知する通知部を備える。これにより、CPU121の処理を低減することができる。
図11は、第3の実施形態における不揮発性記憶システムの構成を示すブロック図である。なお、図1と同様の要素には同一の符号を付しており、詳細な説明は省略する。
図11に示す第3の実施形態における不揮発性記憶装置110は、メモリコントローラ120が通知部124を備える点が図1に示す第1の実施形態と異なる。通知部124は、ハードウェアで構成され、バッファメモリ122が一杯であるか否かを判定し、判定結果をCPU121に通知する。CPU121は、通知部124により通知された判定結果に基づき、メモリ制御部123を制御し、バッファメモリ122が保持するデータをフラッシュメモリ130に書込む。
図12は、第3の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。
アクセス装置100から転送されたデータをバッファメモリ122が一時記憶し、その後、一時記憶されたデータをフラッシュメモリ130に書込む一連の書込み動作を、図9を用いて説明する。
図12において、WCMD受信からバッファメモリ122が一杯であるか否かの判定(S1200〜S1205)までは、図9に示す第2の実施形態と同様である。
バッファメモリ122が一杯になった時点で(S1205でYes)、通知部124は、CPU121にバッファメモリ122が一杯であることを通知する(S1209)。CPU121はその通知信号を受けて、メモリ制御部123を使用してフラッシュメモリ130の所定物理ブロックにフラッシュメモリ130の書込み単位であるページ単位でデータを書込む(S1206)。
以上より、第3の実施形態における不揮発性記憶装置110は、通知部124がバッファメモリ122が一杯になったことをCPU121に通知する。これにより、バッファメモリ122に保持されているデータを主記憶メモリ130に書込みに行くタイミングを、CPU121がバッファメモリ122に対してデータを書込む度に確認する必要がなく、バッファメモリ122からの信号を受けるだけでよいので、CPU121の処理シーケンスを簡単にすることができる。また、通知部124がハード的にバッファメモリ122が一杯であるか否かの判定、および、CPU121への判定結果の通知を行うので、処理を高速化することができる。
(第4の実施形態)
第4の実施形態における不揮発性記憶装置は、バッファメモリ122が一杯になったか否かをデータ管理フラグ304により判定する。これにより、容易にバッファメモリ122の空き状態を判定することができる。
第4の実施形態における不揮発性記憶装置110の構成は図1と同様であり、書込み処理のフローチャートは図5と同様である。
第4の実施形態における不揮発性記憶装置110のCPU121は、図5におけるステップS505において、バッファメモリ122が保持する有効なデータ管理フラグ304の数に基づき、バッファメモリ122が一杯になったか否かを判定する点が第1の実施形態と異なる。例えば、不要なデータ(フラッシュメモリ130に書込み済みのデータ等)のデータ管理フラグ304の値を“0”に設定する。また、データが書込まれていない空き領域のデータ管理フラグ304の値も“0”に設定する。この場合、CPU121は、バッファメモリ122のデータ管理フラグ304を確認し、データ管理フラグ304が“0”のデータが無い場合に、バッファメモリ122は一杯であると判定することができる。
以上より、第4の実施形態における不揮発性記憶装置110は、データ管理フラグ304を確認することで、バッファメモリ122が一杯であるか否かをCPU121が容易に判定することがきる。これにより、バッファメモリ122が保持するデータをフラッシュメモリ130に書込みに行くタイミング決めるための、第3の実施形態で説明した通知部124等を備える必要がなくなり、不揮発性記憶装置110の回路構成を簡単にすることができる。
(第5の実施形態)
第5の実施形態における不揮発性記憶装置は、バッファメモリ122が一杯であるか否かを判定した後に、バッファメモリ122にデータに書込む。これにより、フラッシュメモリ130に書込みに行くタイミングを遅らせることができるので、バッファメモリ122の容量を有効に用いることができる。
図13は、第5の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。なお、第5の実施形態における不揮発性記憶装置110の構成は、図1と同様である。
図13において、不揮発性記憶装置110は、アクセス装置100からのライトコマンドの受信待ち状態となる(S1300)。WCMDを受信すると(S1300でYes)、CPU121は、アクセス装置100から転送されてきたデータの論理セクタアドレスと、バッファメモリ122に保持されているデータの論理セクタアドレスとを比較する(S1301)。バッファメモリ122に論理セクタアドレスが一致するデータが無い場合(S1302でYes)、CPU121は、バッファメモリ122が一杯になったか否かを判定する(S1303)。ここで、ステップS1302における不一致のアドレス数がバッファメモリ122に保持できるデータ数と一致した場合には、バッファメモリ122は、一杯であると判断される。例えば、バッファメモリ122は最大で8ワードのデータを保持するとする。バッファメモリ122に3個の有効なデータが保持されているとすると、ステップS1302における不一致のアドレス数は3個であり、バッファメモリ122に保持できるデータ数である8個と一致しない。すなわち、CPU121は、バッファメモリ122は一杯でないと判定する。また、バッファメモリ122に8個の有効なデータが保持されているとすると、ステップS1302における不一致のアドレス数は8個であり、バッファメモリ122に保持できるデータ数である8個と一致する。すなわち、CPU121は、バッファメモリ122は一杯であると判定する。
バッファメモリ122が一杯であると(S1303でYes)、バッファメモリ122からフラッシュメモリ130の所定物理ブロックにフラッシュメモリ130の書込み単位であるページ単位でデータが書込まれる(S1304)。ステップS1304の後に、バッファメモリ122にアクセス装置100から入力された1セクタ分のデータと論理セクタアドレスとが一時記憶される(S1305)。また、バッファメモリ122が一杯で無い場合(S1303でNo)は、ステップ1303の後に、バッファメモリ122にアクセス装置100から入力された1セクタ分のデータと論理セクタアドレスとが一時記憶される(S1305)。なお、バッファメモリ122に論理セクタアドレスが一致するデータがある場合(S1302でNo)の処理は、図9に示す第2の実施形態と同様であるので説明は省略する。
以上より、第5の実施形態における不揮発性記憶装置110は、バッファメモリ122が一杯であるか否かを判定した後に、バッファメモリ122への新たにアクセス装置100から入力されたデータの書込みを行う。よって、新たなにアクセス装置100から入力されたデータをバッファメモリ122に書込むことでバッファメモリ122が一杯になる場合であってもその後の処理が続行される。すなわち、バッファメモリ122が一杯の状態で、次にアクセス装置100から転送されてきたデータとバッファメモリ122が保持するデータとを比較してから、その後の処理を決定することができる。よって、同一アドレスのデータが来た場合は、バッファメモリ122が一杯であっても、上書きをすれば良く、フラッシュメモリ130に書込みに行くタイミングを遅らせることができる。また、バッファメモリ122の容量を有効に用いることができる。よって、フラッシュメモリ130への書込み回数を減らすことができる。
また、第5の実施形態における不揮発性記憶装置110は、ステップS1302における不一致のアドレス数がバッファメモリ122に保持できるデータ数と一致した場合には、バッファメモリ122は一杯であると判断する。これにより、バッファメモリ122が保持するデータをフラッシュメモリ130に書込みに行くタイミング決めるための、通知部124等を備える必要がなくなり、システムの回路構成を簡単にすることができる。さらに、ステップ1302の処理で得られる情報である不一致のアドレス数からバッファメモリ122が一杯であるか否かを判定するので、バッファメモリ122が一杯であることを示すためのフラグ等を設ける必要がなく、バッファメモリ122の容量を削減することができる。
(第6の実施形態)
第6の実施形態における不揮発性記憶装置は、頻繁に更新される論理セクタアドレスのデータのフラッシュメモリ130への書込みの優先順位を下げることで、フラッシュメモリ130への書込み回数を減らすことができる。
図14は、第6の実施形態における不揮発性記憶装置の書換え処理の流れを示した図である。なお、第6の実施形態における不揮発性記憶装置の構成は、図1と同様である。
図14において、WCMD1およびWCMD2で転送されるデータLSB0BおよびLSB0Cは、フラッシュメモリ130のある特定領域に保持される頻繁に書換えられるデータである。また、WCMD3で転送されるデータLSA0B〜LSA3Bは、写真データや音楽のデータ等連続的に書込まれるデータで、あまり頻繁に書換えられるデータではないとする。また、フラッシュメモリ130は、物理ブロックPB5のページ0に論理セクタアドレスLSA0〜LSA3のデータLSA0A〜SLA3Aを保持しており、物理ブロックPB7のページ0に論理セクタアドレスLSB0〜LSB3のデータLSB0A〜LSB3Aを保持している。さらに、フラッシュメモリ130の物理ブロックPB0のページ0および物理ブロックPB2のページ0は、データを保持していないとする。なお、図14において、説明の簡単化のため、バッファメモリ122が保持するワード数は5としているが、これに限らない。また、バッファメモリ122に保持される論理セクタアドレス303は、論理ブロックアドレス3031と、論理ページアドレス3032とを含む。
WCMD1において、不揮発性記憶装置110は論理ブロックアドレス3031が“0x03”であり論理セクタアドレス3032が“0x00”(論理セクタアドレスLSB0)のデータLSB0Bを受信し、バッファメモリ122に一時的に記憶する。アクセス装置100は、WCMD1において、データLSB0Bを転送した後に、STOP信号を転送する。データLSB0Bを受け取ったCPU121は、LSB0Bの論理セクタアドレスと、バッファメモリ122に保持されているデータの論理セクタアドレスと比較を行う。バッファメモリ122に一致する論理セクタアドレスのデータがないので、CPU121は、LSB0Bをバッファメモリに保持する。
次に、アクセス装置100は、WCMD2でLSB0Bと同一の論理セクタアドレス(論理セクタアドレスLSB0)のデータLSB0Cを転送し、その後STOP信号を転送する。この時、CPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスとLSB0Cの論理セクタアドレスとの比較を行う。WCMD1で転送されて来たLSB0Cの論理セクタアドレスと、バッファメモリ122が保持するLSB0Bの論理セクタアドレスは共にLSB0(論理ブロックアドレス3031が“0x03”および論理セクタアドレス3032が“0x00”)であり、一致するので、バッファメモリ122に保持されているLSB0BのデータをWCMD2で転送されてきたLSB0Cに上書きする。また、CPU121は、論理セクタアドレスLSB0のデータは繰り返し頻繁に更新されるデータであるか否かを判定する。論理セクタアドレスLSB0のデータは、連続してアクセス装置100から入力されたのでCPU121は、論理セクタアドレスLSB0のデータを頻繁に更新される特定データと認識し、LSB0Cが保持されているバッファメモリ122のデータおよびアドレス領域を特定領域と設定する。特定領域に保持される特定データは、特定領域以外に保持されているデータと比べ、低い優先順位でフラッシュメモリ130に書込まれることとなる。
その後、アクセス装置100は、WCMD3を転送し、論理セクタアドレスLSA0〜LSA3までの4セクタ分のデータLSA0B〜LSA3Bを転送する。データLSA0B〜LSA3Bは新規アドレスのデータであるため、バッファメモリ122に順番に一時記憶される。
LSA3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121の命令により、バッファメモリ122に一時記憶されているデータをフラッシュメモリ130に転送する。すなわち、メモリ制御部123は、LSA0B〜LSA3Bのデータをページ単位でPB0のページ0に書込む。LSB0Cについては、CPU121が頻繁に更新されるデータであると認識しているため、バッファメモリ122に留めておき、このタイミングでは転送は行わない。そして、同一論理アドレス(LSB0)のデータがアクセス装置100から転送される度に、バッファメモリ122の特定領域に保持されている論理アドレスLSB0のデータを上書きしていく。アクセス装置100からのデータの書込みが終了した時点で、バッファメモリ122の特定領域に保持されたデータは、フラッシュメモリ130へ転送され、PB2のページ0に書込まれる。
以上より、第6の実施形態における不揮発性記憶装置110は、頻繁に書換えられる特定データ(ディレクトリエントリや鍵情報等)の書込み時には、バッファメモリ122でデータを更新し、処理の最後にフラッシュメモリ130へ書込む。これにより、特定データが来る度に、フラッシュメモリ130へ書込む必要がなくなり、フラッシュメモリ130への書込みの速度を向上させることができる。またフラッシュメモリ130への書換え回数を低減することができるため、不揮発性記憶装置110の寿命も延ばすことができる。
なお、バッファメモリ122の特定領域に保持するデータをCPU121が特定する方法としては、同一論理アドレスのデータが2回以上来た場合や、ある論理アドレスのデータが一度転送された後に、他の複数セクタ分の連続アドレスが転送され、またその後に同一論理アドレスのデータが来たとき等があるが、特に限定するものではない。
また、バッファメモリ122の特定領域に保持されたデータをフラッシュメモリ130へ転送するタイミングは、アクセス装置100からの書込みが完了した後や、新たな別の論理アドレスのデータが特定アドレスのデータであると判断された後などがあるが、特に限定するものではない。
また、バッファメモリ122の設定する特定領域は、上記説明ではセクタ単位であるが、ページ単位でもよく、特に限定するものではない。
(第7の実施形態)
第7の実施形態における不揮発性記憶装置は、特定の論理セクタアドレスのデータのフラッシュメモリ130への書込みの優先順位を下げることで、フラッシュメモリ130への書込み回数を減らすことができる。
第6の実施形態では、頻繁に書換えられるデータをCPU121が判定し、頻繁に書換えられるデータのフラッシュメモリ130への書込みの優先順位を下げたが、第7の実施形態では、予め頻繁に書換えられるデータの論理セクタアドレスを特定アドレスと設定しておき、アクセス装置100より入力されたデータの論理セクタアドレスが、特定アドレスと一致するか否かを判定する。特定アドレスと判定された場合に、特定アドレスを有するデータである特定データは、特定データ以外のデータと比べ、低い優先順位でフラッシュメモリ130に書込まれる。なお、第7の実施形態における書換え処理の流れは図14と同様であり、説明は省略する。
以上より、特定アドレスのデータ(FATデータ等)の書込み時には、バッファメモリ122でデータを更新し、処理の最後にフラッシュメモリ130へ書込むために、特定アドレスのデータが来る度に、フラッシュメモリ130へ書込む必要がなくなるためフラッシュメモリ130への書込み速度を向上させることができる。またフラッシュメモリ130への書換え回数を低減することができるため、不揮発性記憶装置110の寿命も延ばすことができる。
(第8の実施形態)
第8の実施形態における不揮発性記憶装置は、バッファメモリ122に、バッファメモリ122に保持されているデータが頻繁に書換えられるデータであるか否かを示す特定領域フラグを保持する。これにより、特定領域を複数設定することができ、バッファメモリ122の容量を有効に用いることができる。
図15は、第8の実施形態における不揮発性記憶装置110のバッファメモリ122に保持されるデータの形式を示す図である。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。また、第8の実施形態における不揮発性記憶装置110の構成は、図1と同様である。
図15に示すように、第8の実施形態における不揮発性記憶装置110のバッファメモリ122は、各データに1ビットの特定領域フラグ305を含む。特定領域フラグ305は、各データが特定領域のデータであるか否かを示すフラグである。例えば、特定領域フラグ305が“0”であると通常のデータであり、特定領域フラグ305が“1”であると特定領域のデータである。特定領域のデータは、頻繁に書換えられるデータが設定され、例えば、ディレクトリエントリ、鍵情報またはFATデータ等である。例えば、図15に示すようにワード0のデータは特定領域フラグ305が“1”であるので、論理アドレス303が“000000h”のデータは特定領域のデータとなる。特定領域フラグ305が“1”である特定データは、特定データ以外のデータと比べ、低い優先順位でフラッシュメモリ130に書込まれる。
図16は、第8の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。
図16において、フラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLSA0〜LSA3のデータLSA0A〜LSA3Aが保持されており、物理ブロックPB6のページ0に論理セクタアドレスLSB0〜LSB3のデータLSB0A〜LSB3Aが保持されており、物理ブロックPB7のページ0に論理セクタアドレスLSC0〜LSC3のデータLSC0A〜LSC3Aが保持されている。また、物理ブロック0のページ0、物理ブロックPB2のページ0および物理ブロックPB4のページ0は、データが書込まれていないとする。なお、図16において、説明の単純化のため、バッファメモリ122が保持するワード数は6としているがこれに限らない。
また、WCMD1およびWCMD2において転送されるデータLSB0BおよびLSC0Bは、フラッシュメモリ130のある特定領域に保持される頻繁に書換えられるデータである。また、WCMD3で転送されるデータLSA0B〜LSA3Bは、写真データや音楽のデータ等連続的に書込まれるデータであり、あまり頻繁に書換えられるデータではないとする。
WCMD1において、不揮発性記憶装置110は論理セクタアドレスLSB0(論理ブロックアドレス“0x00”および論理ページアドレス“0x00”)のデータLSB0Bを受信し、バッファメモリ122に一時的に記憶する。アクセス装置100は、LSB0Bを転送した後に、STOP信号を転送する。データを受け取ったCPU121は、LSB0Bの論理セクタアドレスから特定アドレスのデータと認識すると共に、バッファメモリ122に保持されているデータの論理セクタアドレスとLSB0Bの論理セクタアドレスとの比較を行う。バッファメモリ122に一致する論理アドレスがないので、CPU121は、LSB0Bをバッファメモリ122に保持し、保持したデータに対応する特定領域フラグ305を“1”に設定する。ここで、CPU121が入力されたデータを特定アドレスのデータと認識する方法は、第6の実施形態のように頻繁に更新されるアドレスを判定してもよいし、第7の実施形態のように予め定めた特定アドレスとの比較により判定してもよい。
次に、WCMD2においてアクセス装置100は、LSC0Bを転送し、その後、STOP信号を転送する。CPU121は、LSC0Bの論理セクタアドレスから特定アドレスのデータと認識すると共に、バッファメモリ122に保持されているデータの論理セクタアドレスとLSC0Bの論理セクタアドレスとの比較を行う。一致する論理セクタアドレスがないので、CPU121は、LSC0Bをバッファメモリ122に保持し、保持したデータに対応する特定領域フラグ305を“1”に設定する。
その後、アクセス装置100は、WCMD3を転送し、論理セクタアドレスLSA0〜LSA3までの4セクタ分のデータLSA0B、LSA1B、LSA2BおよびLSA3Bを転送する。LSA0B〜LSA3Bは新規アドレスのデータであるため、バッファメモリ122に順番に一時記憶される。ここで、LSA0B、LSA1B、LSA2BおよびLSA3Bは、特定アドレスのデータではないので、対応する特定領域フラグ305は“0”に設定される。
LSA3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121の命令により、バッファメモリ122に一時記憶された特定領域フラグ305が“0”のデータをフラッシュメモリ130に転送する。すなわち、メモリ制御部123は、LSA0B〜LSA3Bのデータをページ単位でPB0のページ0に書込みを行う。また、CPU121が、LSB0BおよびLSC0Bが保持されているデータ領域の特定領域フラグ305が“1”になっていることを認識し、バッファメモリ122に留めておく。これにより、同一論理アドレス(LSB0およびLSC0)のデータがアクセス装置100から転送される度に、バッファメモリ122の特定領域に保持されているデータを上書きしていく。最終的にはアクセス装置100からのデータの書込みが終了した時点で、メモリ制御部123は、バッファメモリ122の特定領域フラグ305が“1”のデータをフラッシュメモリ130へ転送する。すなわち、メモリ制御部123は、LSB0Bを物理ブロックPB2のページ0に書き込み、LSC0Bを物理ブロックPB4のページ0に書込む。
以上より、第8の実施形態における不揮発性記憶装置は、頻繁に書換えられる特定のデータ(ディレクトリエントリや鍵情報等、またはFATデータ)が複数転送されて来た場合についても、CPU121が特定領域のデータであると判断し、バッファメモリ122の特定領域フラグ305を‘1’にして、その領域にデータを保持する。これにより、バッファメモリ122の特定領域の空間を自由に設定できるため、複数の特定データが転送されて来た場合でも、それぞれに特定領域を設定すればよく、バッファメモリ122の空間を効率的に使用することができる。また、フラッシュメモリ130へのデータ転送時にCPU121が特定領域フラグ305を確認するだけで、転送するべきか否かを判断することができ、CPU121が特定領域を常に把握しておく必要がなくなるため、処理シーケンスを簡単にすることができる。これにより、特定データの書換えをバッファメモリ122内で済ませることができるため、フラッシュメモリ130への書込み回数を減らすことができ、不揮発性記憶装置110の書込み速度の向上を達成することができる。また、フラッシュメモリ130への書換え回数を低減することができるため、不揮発性記憶装置110の書換え寿命も延ばすことができる。
ここで、バッファメモリ122の特定領域に保持されたデータをフラッシュメモリ130へ転送するタイミングは、アクセス装置100からの書込みが完了した後や、ある設定された数以上の論理アドレスのデータが特定アドレスのデータであると判断された後などがあるが、特に限定するものではない。
また、バッファメモリ122の一部の領域を特定領域に設定する手段は、今回は特定領域フラグ305を使用したが、CPU121内で管理しても良く、特に限定するものではない。
更に、バッファメモリ122の設定する特定領域は、今回の説明ではセクタ単位であるが、ページ単位でもかまわないし、特に限定するものではない。
(第9の実施形態)
第9の実施形態おける不揮発性記憶装置は、バッファメモリ122に正しくデータが書込まれたか否かを示す書込み完了フラグをバッファメモリ122に保持する。これにより、電源が落ちる等によりバッファメモリ122に正しくデータが書込まれなかった場合に、どのデータが有効なデータであるかを容易に判定することができ、信頼性を向上させることができる。
図17は、第9の実施形態における不揮発性記憶装置110のバッファメモリ122に保持されるデータの形式を示す図である。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。また、第9の実施形態における不揮発性記憶装置110の構成は、図1と同様である。
図17に示すように、第9の実施形態における不揮発性記憶装置110のバッファメモリ122は、各データに1ビットの書込み完了フラグ306を含む。書込み完了フラグ306は、各データがバッファメモリ122に正しく書込まれたか否かを示すフラグである。例えば、電源が落ちる等によりバッファメモリ122に正しく書込まれなかったデータの書込み完了フラグ306を“0”とし、正しくバッファメモリ122に書込まれたデータの書込み完了フラグ306を“1”とする。図17に示すワード0のデータは、書込み完了フラグ306が“0”であり、バッファメモリ122に正しく書込まれていない無効なデータである。また、ワード1のデータは、書込み完了フラグ306が“1”であり、バッファメモリ122に正しく書込まれたデータである。また、バッファメモリ122のデータをフラッシュメモリ130に転送した後に、転送したデータの書込み完了フラグ306を“0”に設定する。また、データが書込まれていない領域の書込み完了フラグ306を“0”に設定する。これにより、CPU121は、書込み完了フラグ306を確認することで、容易にバッファメモリ122のデータ保持領域の空き状態を判定することができる。
図18は、第9の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。図18において、アクセス装置100から不揮発性記憶装置110にWCMDが4回転送される。最初のWCMDをWCMD1、次のWCMDをWCMD2、その次のWCMDをWCMD3、最後のWCMDをWCMD4と表記する。また、フラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLS0〜LS3のデータLS0A〜LS3Aが保持されており、物理ブロックPB5のページ1に論理セクタアドレスLS4〜LS7のデータLS4A〜LS7Aが保持されている。また、物理ブロック0のページ0およびページ1は、データが書込まれていないとする。なお、図18において、説明の単純化のため、バッファメモリ122が保持するワード数は4としているがこれに限らない。また、バッファメモリ122は、データが書込まれていない状態であり、全てのデータ領域に対応する書込み完了フラグ306は“0”に設定されている。
WCMD1において、不揮発性記憶装置110は論理セクタアドレスLS0(“0x00”)のデータLS0Bを受信し、バッファメモリ122に一時的に記憶する。アクセス装置100は、WCMD1において、LS0Bを転送した後に、STOP信号を転送する。データLS0Bを受け取ったCPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスとLS0Bの論理セクタアドレスとの比較を行う。一致する論理セクタアドレスがないので、CPU121は、LS0Bをバッファメモリ122に保持する。この時、正しくデータが書込まれた場合には、LS0Bに対応する書込み完了フラグ306を“1”に設定する。なお、LS0Bの書込み中に電源が落ちる等により、正しくデータが書込まれなかった場合は、書込み完了フラグ306は“0”を維持する。
次に、WCMD2において、アクセス装置100は、LS1B〜LS3Bを転送し、その後STOP信号を転送する。CPU121は、LS1B〜LS3Bの論理セクタアドレスとバッファメモリ122に保持されているデータの論理セクタアドレスと比較を行い、一致しないことを確認する。CPU121は、バッファメモリ122の新しい領域にLS1B〜LS3Bを保持し、LS0Bの場合と同様に、正しくデータが書込まれた場合には、LS1B〜LS3Bに対応するバッファメモリ122の書込み完了フラグ306を“1”に設定する。LS3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121の命令により、バッファメモリ122に一時記憶されたデータをフラッシュメモリ130に転送する。すなわち、メモリ制御部123は、LSA0B〜LSA3Bをページ単位で物理ブロックPB0のページ0に書込みを行う。この時、フラッシュメモリ130への書込みが完了したデータLS0B〜LS3Bのバッファメモリ122の書込み完了フラグ306の値を“0”に設定する。この書込み完了フラグの値をCPU121が確認することにより、CUP121はバッファメモリ122の空き状況や、次にデータを書いてよいバッファメモリ122の領域を把握することができる。
WCMD3において、アクセス装置100は、2セクタ分のデータLS4BおよびLS5Bを転送し、その後STOP信号を転送する。CPU121は、WCMD1および2と同様に、LS4BおよびLS5Bの論理セクタアドレスとバッファメモリ122が保持しているデータの論理セクタアドレスとを比較する。CPU121は、バッファメモリ122に一致する論理セクタアドレスのデータがないことを確認し、LS4BおよびLS5Bをバッファメモリ122の書込み完了フラグ306が“0”の領域に保持する。この時、バッファメモリ122のLS4BおよびLS5Bに対応する書込み完了フラグ306を“1”に設定する。
WCMD4において、アクセス装置100からLS6BおよびLS7Bが転送され、バッファメモリ122の書込み完了フラグ306が“0”の領域に保持される。また、LS6BおよびLS7Bのバッファメモリ122の書込み完了フラグ306は“1”に設定される。バッファメモリ122にLS6BおよびLS7Bが保持されると、バッファメモリ122は一杯になり、WCMD2と同様の流れで、フラッシュメモリ130のPB0のページ1にデータLS4B〜LS7Bが転送される。また、LS4B〜LS7Bをフラッシュメモリ130に書込んだ後に、バッファメモリ122のLS4B〜LS7Bの書込み完了フラグ306は“0”に設定される。
以上より、第9の実施形態における不揮発性記憶装置110は、アクセス装置100より転送されたデータが、バッファメモリ122に正しく書込まれたか否かを示す書込み完了フラグ306をバッファメモリ122に保持する。これにより、バッファメモリ122に送られたデータが正しくバッファメモリ122に書込まれたかを確認することが可能となり、書込まれるデータの信頼性を向上させることができる。また、バッファメモリ122のデータをフラッシュメモリ130へ転送した後には、バッファメモリ122の書込み完了フラグ306を“0”に設定を戻すことで、CPU121は、バッファメモリ122のどの領域に、新たに転送されて来たデータを書込んだらいいかを把握することができる。よって、データ処理の効率化も達成することができる。
(第10の実施形態)
第10の実施形態における不揮発性記憶装置は、バッファメモリ122が保持するデータが、フラッシュメモリ130に正しく書込まれたか否かを示す転送完了フラグを保持する。これにより、電源が落ちる等によりフラッシュメモリ130への書込みが失敗した場合に、どのデータが正しく書込まれていないかを判定することができ、信頼性を向上させることができる。
図19は、第10の実施形態における不揮発性記憶装置110のバッファメモリ122に保持されるデータの形式を示す図である。なお、図4と同様の要素には同一の符号を付しており、詳細な説明は省略する。また、第10の実施形態における不揮発性記憶装置110の構成は図1と同様である。
図19に示すように、第10の実施形態における不揮発性記憶装置110のバッファメモリ122は、各データに1ビットの転送完了フラグ307を含む。転送完了フラグ307は、各データがバッファメモリ122からフラッシュメモリ130に正しく書込まれたか否かを示すフラグである。例えば、フラッシュメモリ130に未書込みのデータに対応する転送完了フラグ307を“0”とする。また、電源が落ちる等によりフラッシュメモリ130に正しく書込まれなかったデータに対応する転送完了フラグ307も“0”となる。また、フラッシュメモリ130に正しくバッファメモリ122に書込まれたデータに対応する転送完了フラグ307を“1”とする。例えば、図19に示すワード0のデータは、転送完了フラグ307が“0”であり、フラッシュメモリ130に未書込みのデータ、または、フラッシュメモリ130に正しく書込まれなかったデータである。また、ワード2のデータは、転送完了フラグ307が“1”であり、フラッシュメモリ130に正しく書込まれたデータである。
図20は、第10の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。
図20において、アクセス装置100からWCMDが4回転送される。最初のWCMDをWCMD1、次のWCMDをWCMD2、その次のWCMDをWCMD3、最後のWCMDをWCMD4と表記する。また、フラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLS0〜LS3のデータLS0A〜LS3Aが保持されており、物理ブロックPB5のページ1に論理セクタアドレスLS4〜LS7のデータLS4A〜LS7Aが保持されている。また、物理ブロック0のページ0およびページ1は、データが書込まれていないとする。なお、図20において、説明の単純化のため、バッファメモリ122が保持するワード数は4としているがこれに限らない。また、バッファメモリ122は、データが書込まれていない状態であり、全てのデータ領域に対応する書込み転送完了フラグ307は“1”に設定されている。
WCMD1において、不揮発性記憶装置110は論理セクタアドレスLS0(“0x00”)のデータLS0Bを受信し、バッファメモリ122に一時的に記憶する。アクセス装置100は、WCMD1において、LS0Bを転送した後に、STOP信号を転送する。データLS0Bを受け取ったCPU121は、バッファメモリ122に保持されているデータの論理セクタアドレスとLS0Bの論理セクタアドレスとの比較を行う。一致する論理セクタアドレスがないのでLS0Bをバッファメモリ122に保持する。この時、LS0Bは、フラッシュメモリ130に未書込みのデータであるので、保持したデータ領域に対応する書込み転送完了フラグ307は“0”に設定される。
次に、WCMD2で、アクセス装置100は、LS1B〜LS3Bを転送し、その後STOP信号を転送する。CPU121は、LS1B〜LS3Bの論理セクタアドレスとバッファメモリ122に保持されているデータの論理セクタアドレスとの比較を行い、一致しないことを確認する。CPU121は、バッファメモリ122の新しい領域にLS1B〜LS3Bを保持する。LS0Bの場合と同様に、フラッシュメモリ130に未書込みのデータであるので、保持したデータ領域に対応するバッファメモリ122の転送完了フラグ307は“0”に設定される。
LS3Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121の命令により、バッファメモリ122に一時記憶されたデータをフラッシュメモリ130に転送する。すなわち、メモリ制御部123は、LSA0B〜LSA3Bのデータをページ単位で物理ブロックPB0のページ0に書込む。この時、フラッシュメモリ130への書込みが完了したデータLS0B〜LS3Bのバッファメモリ122の転送完了フラグ307の値を“1”に設定する。なお、LS0B〜LS3Bの書込み中に電源が落ちる等により、書込みが失敗した場合には、転送完了フラグ307は“0”を維持する。CPU121は、転送完了フラグ307の値を確認することにより、バッファメモリ122の空き状況や、次にデータを書いてよいバッファメモリ122の領域を把握することができる。すなわち、CPU121は、転送完了フラグ307が“1”のデータは、フラッシュメモリ130に書込み済みのデータであり、新たなデータを書込むことができると判断することができる。
WCMD3において、アクセス装置100は、2セクタ分のデータLS4BおよびLS5Bを転送し、その後STOP信号を転送する。CPU121は、WCMD1および2と同様に、LS4BおよびLS5Bの論理セクタアドレスとバッファメモリ122が保持しているデータの論理セクタアドレスとを比較する。CPU121は、バッファメモリ122に一致する論理セクタアドレスのデータがないことを確認する。CPU121は、LS4BおよびLS5Bをバッファメモリ122の転送完了フラグ307が“1”の領域に保持し、LS4BおよびLS5Bに対応する転送完了フラグ307を“0”に設定する。
WCMD4において、アクセス装置100からLS6BおよびLS7Bが転送される。CPU121は、バッファメモリ122の転送完了フラグ307が“1”であるLSB2BおよびLSB3Bが保持されている領域にLS6BおよびLS7Bを保持する。また、LS6BおよびLS7Bのバッファメモリ122の転送完了フラグ307は“0”に設定される。バッファメモリ122にLS6BおよびLS7Bが保持されると、バッファメモリ122は一杯になり、WCMD2と同様の流れで、フラッシュメモリ130の物理ブロックPB0のページ1にデータLS4B〜LS7Bが転送される。また、LS4B〜LS7Bをフラッシュメモリに書込んだ後に、バッファメモリ122のLS4B〜LS7Bに対応する転送完了フラグ307は“1”に設定される。
以上より、第10の実施形態における不揮発性記憶装置は、バッファメモリ122が保持するデータが、フラッシュメモリ130に正しく書込まれたか否かを示す転送完了フラグ307を保持する。これにより、バッファメモリ122に送られたデータが正しくフラッシュメモリ130に書込まれたかを確認することが可能となり、フラッシュメモリ130に書込まれるデータの信頼性を向上させることができる。また、バッファメモリ122が保持するデータをフラッシュメモリ130へ転送した後には、転送完了フラグを“1”に設定することで、バッファメモリ122のどの領域に、新たに転送されて来たデータを書込んだらいいかをCPU121は把握することができ、データ処理の効率化も達成することができる。
(第11の実施形態)
第11の実施形態における不揮発性記憶装置は、バッファメモリ122が一杯になった時点で、バッファメモリ122が保持するデータをフラッシュメモリ130に書込む。これにより、フラッシュメモリ130への書込み回数を減らすことができる。なお、第11の実施形態における不揮発性記憶装置110の構成は、図1と同様である。
図21は、第11の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。図21において、アクセス装置100からWCMDが4回転送される。最初のWCMDをWCMD1、次のWCMDをWCMD2、その次のWCMDをWCMD3、最後のWCMDをWCMD4と表記する。また、フラッシュメモリ130の物理ブロックPB5のページ0に論理セクタアドレスLS0〜LS3のデータLS0A〜LS3Aが保持されており、物理ブロックPB5のページ1に論理セクタアドレスLS4〜LS7のデータLS4A〜LS7Aが保持されている。また、物理ブロック0のページ0およびページ1は、データが書込まれていないとする。なお、図21において、説明の単純化のため、バッファメモリ122が保持するワード数は5としているがこれに限らない。
WCMD1において、不揮発性記憶装置110は論理セクタアドレスLS0〜LS3のデータLS0B〜LS3Bを受信し、バッファメモリ122に一時的に記憶する。アクセス装置100は、4セクタ分のデータLS0B〜LS3Bを転送した後に、STOP信号を転送する。データを受け取ったCPU121は、LS0B〜LS3Bの論理セクタアドレスとバッファメモリ122に保持されている論理セクタアドレスとの比較を行い、一致する論理セクタアドレスがないので、LS0B〜LS3Bをバッファメモリ122に保持する。
次に、WCMD2において、アクセス装置100は、論理セクタアドレスLS4のデータLS4Bを転送し、その後STOP信号を転送する。CPU121は、LS4Bの論理セクタアドレスとバッファメモリ122に保持されているデータの論理セクタアドレスとの比較を行い、一致する論理アドレスがないので、LS4Bをバッファメモリ122に保持する。また同時にCPU121は、論理セクタアドレスLS4のデータLS4Bは、WCMD1で転送されたLS0B〜LS3Bの論理セクタアドレスLS0〜LS3に続く連続した論理セクタアドレスのデータであることを認識する。LS4Bが記憶された時点で、バッファメモリ122が一杯になり、CPU121は一杯になったことを認識する。メモリ制御部123は、CPU121の命令により、バッファメモリ121に一時記憶されたデータをフラッシュメモリ130に転送し、一括してPB0のページ0に書込みを実施する。この時、ページ0に保持されるデータは、論理セクタアドレスLS0〜LS3のデータLS0A〜LS3Aなので、CPU121は、LS4Bはページ単位にまだ揃っていないデータであると判断して、フラッシュメモリ130へ転送せずに、バッファメモリ122にデータを留めておく。
その後、アクセス装置100は、WCMD3を転送し、引き続き論理セクタアドレスLS5〜LS7の3セクタ分のデータLS5B〜LS7Bを転送する。LS5B〜LS7Bは新規アドレスのデータであるため、バッファメモリ122に一時記憶される。
そして、WCMD4において、アクセス装置100からLS8Bが転送され、バッファメモリ122が一杯になる。CPU121はバッファメモリ122が一杯になったことを認識して、メモリ制御部123を使用して、バッファメモリ122に一時記憶されたデータLS4B〜LS7Bをフラッシュメモリ130に転送し、一括してPB0のページ1に書込みを実施する。なお、LS8のデータは、CPU121がページ単位で揃っていないデータとしてバッファメモリ122内に留めておく。
以上より、第11の実施形態における不揮発性記憶装置110は、バッファメモリ122が一杯になった時点で、フラッシュメモリ122への書込みを行う。これにより、ページ単位よりも小さい単位で連続したデータが転送されてきた場合、または、転送されてきたデータがページの先頭ではなく、途中や最後から転送されてきた場合にも、同一ページのデータを複数回に渡ってフラッシュメモリ130に書く必要がなくなり、一回で書込むことが可能となる。よって、データの書込み効率を上げることができる。また、フラッシュメモリ130への書込み回数を減らすことができるので、フラッシュメモリ130の書換え寿命も延ばすことが可能となる。
なお、上記説明では、バッファメモリ122に保持されたデータをフラッシュメモリ130へ転送するタイミングは、バッファメモリ122が一杯になった時点としているが、アクセス装置100からの書込みが完了した後でもよいし、連続的に転送されて来たデータの論理セクタアドレスが連続的な順番でなくなった時であってもよい。
(第12の実施形態)
第12の実施形態における不揮発性記憶装置は、バッファメモリ122に保持されているデータの論理セクタアドレスと、アクセス装置100より新たに転送されたデータの論理セクタアドレスとの比較を行うハードウェアで構成されたアドレス比較部125を備える。これにより、CPU121が行う処理の負担を減らすことができる。
図22は、第12の実施形態における不揮発性記システムのブロック図である。図22に示す不揮発性記憶システムは、不揮発性記憶装置110と、アクセス装置100とを備える。図22に示す不揮発性記憶装置110は、アドレス比較部125を備える点が、図1に示す第1の実施形態と異なる。なお、図1と同様の要素には同一の符号を付しており、詳細な説明は省略する。
アドレス比較部125は、アクセス装置100より新たに転送されたデータの論理セクタアドレスと、バッファメモリ122に保持されているデータの論理セクタアドレスとを比較し、一致するか否かを判定する。また、アドレス比較部125は、ハードウェアで構成される。また、アドレス比較部125とCPU121とは専用のバスで接続される。
以上より、第12に実施形態おける不揮発性記憶装置110は、アクセス装置100から転送されたデータの論理セクタアドレスとバッファメモリ122に保持されているデータの論理セクタアドレスとを比較する専用のアドレス比較部125を備える。第1の実施形態ではCPU121がアクセス装置100から転送されたデータの論理セクタアドレスとバッファメモリ122が保持するデータの論理セクタアドレスとを比較し、その後の処理を決定する必要があるのに対し、第12の実施形態ではアドレス比較部125によりハード的に比較処理を行う。さらに、CPU121とアドレス比較部125との間に専用のバスを設けて処理を実施する。よって、CPU121の負担を減らすことができる。また、比較動作の高速化が可能である。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
本発明は、不揮発性記憶装置に適用でき、特に、静止画記録再生装置および動画記録再生装置等のポータブルAV機器、または、携帯電話等のポータブル通信機器の記録媒体に用いられる不揮発性記憶装置に適用できる。
第1の実施形態における不揮発性記憶システムのブロック図である。 フラッシュメモリ130の構成を示す図である。 フラッシュメモリ130の物理ブロックの構成を示す図である。 第1の実施形態におけるバッファメモリ122が保持するデータの構成を示す図である。 第1の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。 第1の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 従来の不揮発性記憶装置の書換え処理の流れを示す図である。 従来の不揮発性記憶装置の書換え処理の流れを示す図である。 第2の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。 第2の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第3の実施形態における不揮発性記憶システムの構成を示すブロック図である。 第3の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。 第5の実施形態における不揮発性記憶装置110の書込み処理のフローチャートである。 第6の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第8の実施形態におけるバッファメモリ122が保持するデータの構成を示す図である。 第8の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第9の実施形態におけるバッファメモリ122が保持するデータの構成を示す図である。 第9の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第10の実施形態におけるバッファメモリ122が保持するデータの構成を示す図である。 第10の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第11の実施形態における不揮発性記憶装置110の書換え処理の流れを示す図である。 第12の実施形態における不揮発性記憶システムの構成を示すブロック図である。 従来の不揮発性記憶システムの構成を示すブロック図である。
符号の説明
100 アクセス装置
110、1110 不揮発性記憶装置
120、1120 メモリコントローラ
121、1121 CPU
122、1122 バッファメモリ(補助記憶メモリ)
123、1123 メモリ制御部
124 通知部
125 アドレス比較部
130、1130 フラッシュメモリ(主記憶メモリ)
200 物理ブロック
210 ページ
211 データ領域
212 管理領域
213 セクタ
301 ワード
302 データ領域
303 論理アドレス領域
304 データ管理フラグ
305 特定領域フラグ
306 書込み完了フラグ
307 転送完了フラグ
3031 論理ブロックアドレス
3032 論理ページアドレス

Claims (17)

  1. 外部よりセクタ単位のデータである入力データが入力される不揮発性記憶装置であって、
    前記セクタ単位より大きいページ単位でデータの書込みが行われる不揮発性の主記憶メモリと、
    前記入力データを、少なくともページ単位分保持する補助記憶メモリと、
    前記補助記憶メモリが前記ページ単位以上のデータを保持しているか否かを判定するメモリ判定手段と、
    前記メモリ判定手段により前記補助記憶メモリが前記ページ単位以上のデータを保持していると判定された場合に、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込むメモリ制御手段とを備える
    ことを特徴とする不揮発性記憶装置。
  2. 前記補助記憶メモリは、前記入力データと、前記入力データのアドレスとを保持し、
    前記不揮発性記憶装置は、さらに、
    前記補助記憶メモリが保持するアドレスと、外部からの新たな入力データのアドレスとが一致するか否かを判定するアドレス判定手段と、
    前記新たな入力データの前記補助記憶メモリへの書込み、および、前記メモリ制御手段の制御を行うCPUとを備え、
    前記補助記憶メモリは、保持する各データの書込まれた順序を示すデータ管理フラグを保持し、
    前記CPUは、前記アドレス判定手段により前記補助記憶メモリが保持するアドレスと、前記新たな入力データのアドレスとが一致すると判定された場合に、前記新たな入力データを前記補助記憶メモリの前記新たな入力データと一致すると判定されたデータが保持されている領域とは異なる領域に書込み、
    前記CPUは、前記新たな入力データに対応する前記データ管理フラグに前記新たな入力データが前記新たな入力データと一致すると判定されたデータの後に書込まれたことを示す情報を設定し、
    前記CPUは、前記データ管理フラグに基づき、前記メモリ制御手段が前記主記憶メモリに書込むデータを決定する
    ことを特徴とする請求項1記載の不揮発性記憶装置。
  3. 前記補助記憶メモリは、前記入力データと、前記入力データのアドレスとを保持し、
    前記不揮発性記憶装置は、さらに、
    前記補助記憶メモリが保持するアドレスと、外部からの新たな入力データのアドレスとが一致するか否かを判定するアドレス判定手段と、
    前記新たな入力データの前記補助記憶メモリへの書込み、および、前記メモリ制御手段の制御を行うCPUとを備え、
    前記CPUは、前記アドレス判定手段により前記補助記憶メモリが保持するアドレスと、前記新たな入力データのアドレスとが一致すると判定された場合に、前記新たな入力データを前記補助記憶メモリの前記新たな入力データと一致すると判定されたデータが保持されている領域に上書きする
    ことを特徴とする請求項1記載の不揮発性記憶装置。
  4. 前記メモリ判定手段は、前記補助記憶メモリが一杯になったか否かを判定し、
    前記メモリ制御手段は、前記メモリ判定手段により前記補助記憶メモリが一杯になったと判定された場合に、前記補助記憶メモリが保持するデータを前記主記憶メモリに書込む
    ことを特徴とする請求項2または3に記載の不揮発性記憶装置。
  5. 前記メモリ判定手段はハードウェアで構成され、
    前記不揮発性記憶装置は、さらに、
    前記メモリ判定手段による判定結果を前記CPUに通知する通知手段を備え、
    前記CPUは、前記通知手段により通知された前記判定結果に基づき、前記メモリ制御手段を制御し、
    前記CPUの制御により前記メモリ制御手段は、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込む
    ことを特徴とする請求項2、3または4記載の不揮発性記憶装置。
  6. 前記メモリ判定手段は、前記補助記憶メモリが保持する有効な前記データ管理フラグの数に基づき、前記補助記憶メモリが一杯になったか否かを判定する
    ことを特徴とする請求項2記載の不揮発性記憶装置。
  7. 前記メモリ判定手段は、前記補助記憶メモリが一杯になったか否かを判定し、
    前記メモリ制御手段は、前記メモリ判定手段により前記補助記憶メモリが一杯になったと判定された場合に、前記補助記憶メモリが格納するデータを前記主記憶メモリに書込み、
    前記CPUは、前記メモリ判定手段の判定が行われた後に、前記新たな入力データを前記補助記憶メモリに書込む
    ことを特徴とする請求項3記載の不揮発性記憶装置。
  8. 前記不揮発性記憶装置は、さらに、
    前記入力データが、頻繁に更新されるか否かを判定する更新判定手段を備え、
    前記更新判定手段により頻繁に更新されると判定されたデータである特定データは、前記特定データ以外のデータと比べ、低い優先順位で前記主記憶メモリに書込まれる
    ことを特徴とする請求項1〜7のいずれか1項に記載の不揮発性記憶装置。
  9. 前記不揮発性記憶装置は、さらに、
    前記入力データのアドレスが、特定アドレスと一致するか否かを判定する特定アドレス判定手段を備え、
    前記特定アドレスを有するデータである特定データは、前記特定データ以外のデータと比べ、低い優先順位で前記主記憶メモリに書込まれる
    ことを特徴とする請求項1〜7のいずれか1項に記載の不揮発性記憶装置。
  10. 前記補助記憶メモリは、保持する各データが前記特定データであるか否かを示す特定領域フラグを保持する
    ことを特徴とする請求項8または9記載の不揮発性記憶装置。
  11. 前記特定データが保持される領域は、前記補助記憶メモリ内で自由に設定できる
    ことを特徴とする請求項8〜10のいずれか1項に記載の不揮発性記憶装置。
  12. 前記補助記憶メモリは、保持する各データが前記補助記憶メモリに正常に書込まれたか否かを示す書込み完了フラグを保持する
    ことを特徴とする請求項1〜11のいずれか1項に記載の不揮発性記憶装置。
  13. 前記補助記憶メモリは、保持する各データが前記主記憶メモリに書込まれたか否かを示す転送完了フラグを保持する
    ことを特徴とする請求項1〜12のいずれか1項に記載の不揮発性記憶装置。
  14. 前記補助記憶メモリは、不揮発性RAMである
    ことを特徴とする請求項1〜13のいずれか1項に記載の不揮発性記憶装置。
  15. 前記補助記憶メモリは、強誘電体メモリ(FeRAM)、磁性記録式随時書込み読み出しメモリ(MRAM)、オボニックユニファイドメモリ(OUM)またはレジスタンスRAM(RRAM)である
    ことを特徴とする請求項14記載の不揮発性記憶装置。
  16. 前記アドレス判定手段は、ハードウェアで構成される
    ことを特徴とする請求項2〜7のいずれか1項に記載の不揮発性記憶装置。
  17. 外部よりセクタ単位のデータである入力データが入力され、前記セクタ単位より大きいページ単位でデータの書込みが行われる不揮発性の主記憶メモリを備える不揮発性記憶装置のデータ書込み方法であって、
    前記入力データを補助記憶メモリに保持する保持ステップと、
    前記補助記憶メモリが前記ページ単位以上のデータを保持しているか否かを判定する判定ステップと、
    前記判定ステップにおいて前記補助記憶メモリが前記ページ単位以上のデータを保持していると判定された場合に、前記補助記憶メモリに保持されているデータを、前記主記憶メモリの新たなページに前記ページ単位で書込む書込みステップとを含む
    ことを特徴とするデータ書込み方法。
JP2006061875A 2006-03-07 2006-03-07 不揮発性記憶装置およびそのデータ書込み方法 Expired - Fee Related JP4418439B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006061875A JP4418439B2 (ja) 2006-03-07 2006-03-07 不揮発性記憶装置およびそのデータ書込み方法
US11/670,670 US20070214309A1 (en) 2006-03-07 2007-02-02 Nonvolatile storage device and data writing method thereof
CN200710085534.9A CN101042674A (zh) 2006-03-07 2007-03-07 非易失性存储装置及其数据写入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006061875A JP4418439B2 (ja) 2006-03-07 2006-03-07 不揮発性記憶装置およびそのデータ書込み方法

Publications (2)

Publication Number Publication Date
JP2007241576A true JP2007241576A (ja) 2007-09-20
JP4418439B2 JP4418439B2 (ja) 2010-02-17

Family

ID=38480268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006061875A Expired - Fee Related JP4418439B2 (ja) 2006-03-07 2006-03-07 不揮発性記憶装置およびそのデータ書込み方法

Country Status (3)

Country Link
US (1) US20070214309A1 (ja)
JP (1) JP4418439B2 (ja)
CN (1) CN101042674A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011021367A1 (ja) * 2009-08-21 2011-02-24 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2011248558A (ja) * 2010-05-26 2011-12-08 Hitachi Automotive Systems Ltd 自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法
JP2012063871A (ja) * 2010-09-14 2012-03-29 Univ Of Tokyo 制御装置およびデータ記憶装置
JP2013182456A (ja) * 2012-03-02 2013-09-12 Hitachi Automotive Systems Ltd 自動車用電子制御装置
JP2014154166A (ja) * 2013-02-07 2014-08-25 Seagate Technology Llc データ記憶デバイスおよびそれを操作する方法
JP2014182626A (ja) * 2013-03-19 2014-09-29 Axell Corp メモリ格納情報読出し方法及びメモリインターフェース
JP2014207010A (ja) * 2014-07-15 2014-10-30 日立オートモティブシステムズ株式会社 自動車用電子制御装置
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data
JP2020087470A (ja) * 2018-11-21 2020-06-04 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データアクセス方法、データアクセス装置、機器及び記憶媒体
KR20200109238A (ko) * 2019-03-11 2020-09-22 윈본드 일렉트로닉스 코포레이션 반도체 기억장치

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200515147A (en) * 2003-10-17 2005-05-01 Matsushita Electric Ind Co Ltd Semiconductor memory device, controller, and read/write control method thereof
WO2006098212A1 (ja) * 2005-03-15 2006-09-21 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
WO2006101123A1 (ja) * 2005-03-23 2006-09-28 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及び不揮発性記憶装置の制御情報のロード方法
US8051268B2 (en) * 2005-07-29 2011-11-01 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and nonvolatile memory address management method
WO2007083449A1 (ja) * 2006-01-20 2007-07-26 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置、不揮発性記憶システム、及び不揮発性記憶装置の不良管理方法
WO2007105688A1 (ja) * 2006-03-16 2007-09-20 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
WO2008013229A1 (fr) * 2006-07-26 2008-01-31 Panasonic Corporation dispositif de stockage non volatil, système de stockage non volatil et unité d'hôte
JP5145227B2 (ja) 2006-07-26 2013-02-13 パナソニック株式会社 不揮発性記憶装置、不揮発性記憶システム、及びホスト機器
US20100017557A1 (en) * 2006-07-26 2010-01-21 Panasonic Corporation Memory controller, nonvolatile memory device,access device, and nonvolatile memory system
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
US20080189473A1 (en) * 2007-02-07 2008-08-07 Micron Technology, Inc Mlc selected multi-program for system management
JP4315461B2 (ja) * 2007-10-30 2009-08-19 株式会社ハギワラシスコム ソリッドステートドライブ及びデータ書き込み方法
US8209465B2 (en) * 2007-10-30 2012-06-26 Hagiwara Sys-Com Co., Ltd. Data writing method
US8788740B2 (en) * 2007-12-21 2014-07-22 Spansion Llc Data commit on multicycle pass complete without error
CN101677384B (zh) * 2008-09-19 2011-03-23 鸿富锦精密工业(深圳)有限公司 数据存储管理系统及方法
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
JP2010157129A (ja) * 2008-12-27 2010-07-15 Toshiba Information Systems (Japan) Corp 半導体記憶装置
US8250293B2 (en) * 2009-01-19 2012-08-21 Qimonda Ag Data exchange in resistance changing memory for improved endurance
KR101631162B1 (ko) * 2009-06-11 2016-06-17 삼성전자주식회사 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US20140281132A1 (en) * 2013-03-15 2014-09-18 Marielle Bundukin Method and system for ram cache coalescing
WO2016038765A1 (ja) 2014-09-12 2016-03-17 パナソニックIpマネジメント株式会社 メモリデバイスおよびメモリデバイスの制御方法
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
JP2018013837A (ja) * 2016-07-19 2018-01-25 株式会社デンソー データ書き換え装置、データ書き換えプログラム
TWI661352B (zh) * 2016-09-22 2019-06-01 慧榮科技股份有限公司 資料儲存裝置及其資料寫入方法
KR20180088180A (ko) * 2017-01-26 2018-08-03 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
CN107273767A (zh) * 2017-05-19 2017-10-20 记忆科技(深圳)有限公司 一种固态硬盘数据保护方法及固态硬盘
CN107193758A (zh) * 2017-05-19 2017-09-22 记忆科技(深圳)有限公司 一种固态硬盘的映射表管理方法及固态硬盘
CN113361683B (zh) * 2021-05-18 2023-01-10 山东师范大学 一种生物仿脑存储方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08315596A (ja) * 1995-05-12 1996-11-29 Nec Corp 半導体記憶装置
JPH09282221A (ja) * 1996-04-19 1997-10-31 Hitachi Ltd 主記憶制御装置
JP2000305862A (ja) * 1999-02-19 2000-11-02 Mitsubishi Electric Corp データ記憶方法および情報処理装置
JP2005032379A (ja) * 2003-07-10 2005-02-03 Sony Corp 記録装置および方法
JP2005316835A (ja) * 2004-04-30 2005-11-10 Sony Corp 記録装置及び方法
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JP2008524705A (ja) * 2004-12-16 2008-07-10 サンディスク コーポレイション スクラッチパッドブロック

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949369A (en) * 1974-01-23 1976-04-06 Data General Corporation Memory access technique
US5471637A (en) * 1988-12-30 1995-11-28 Intel Corporation Method and apparatus for conducting bus transactions between two clock independent bus agents of a computer system using a transaction by transaction deterministic request/response protocol and burst transfer
US5526510A (en) * 1994-02-28 1996-06-11 Intel Corporation Method and apparatus for implementing a single clock cycle line replacement in a data cache unit
US5564035A (en) * 1994-03-23 1996-10-08 Intel Corporation Exclusive and/or partially inclusive extension cache system and method to minimize swapping therein
US5802583A (en) * 1996-10-30 1998-09-01 Ramtron International Corporation Sysyem and method providing selective write protection for individual blocks of memory in a non-volatile memory device
JP2000227871A (ja) * 1999-02-05 2000-08-15 Seiko Epson Corp 不揮発性記憶装置、その制御方法、および、情報記録媒体
US6571312B1 (en) * 1999-02-19 2003-05-27 Mitsubishi Denki Kabushiki Kaisha Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
US6795890B1 (en) * 1999-02-19 2004-09-21 Mitsubishi Denki Kabushiki Kaisha Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
US7240178B2 (en) * 2001-07-25 2007-07-03 Sony Corporation Non-volatile memory and non-volatile memory data rewriting method
WO2003085677A1 (fr) * 2002-04-05 2003-10-16 Renesas Technology Corp. Memoire non volatile
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08315596A (ja) * 1995-05-12 1996-11-29 Nec Corp 半導体記憶装置
JPH09282221A (ja) * 1996-04-19 1997-10-31 Hitachi Ltd 主記憶制御装置
JP2000305862A (ja) * 1999-02-19 2000-11-02 Mitsubishi Electric Corp データ記憶方法および情報処理装置
JP2005032379A (ja) * 2003-07-10 2005-02-03 Sony Corp 記録装置および方法
JP2005316835A (ja) * 2004-04-30 2005-11-10 Sony Corp 記録装置及び方法
JP2006092169A (ja) * 2004-09-22 2006-04-06 Toshiba Corp メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
JP2008524705A (ja) * 2004-12-16 2008-07-10 サンディスク コーポレイション スクラッチパッドブロック

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011021367A1 (ja) * 2009-08-21 2013-01-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
US8656110B2 (en) 2009-08-21 2014-02-18 Panasonic Corporation Non-volatile storage device, access device, and non-volatile storage system for releasing a cache object in accordance with a data matching flag
WO2011021367A1 (ja) * 2009-08-21 2011-02-24 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP2011248558A (ja) * 2010-05-26 2011-12-08 Hitachi Automotive Systems Ltd 自動車用電子制御装置及び自動車用電子制御装置におけるデータ書き込み方法
JP2012063871A (ja) * 2010-09-14 2012-03-29 Univ Of Tokyo 制御装置およびデータ記憶装置
US11360698B2 (en) 2011-09-21 2022-06-14 Hitachi Astemo, Ltd. Electronic control unit for vehicle and method of writing data
US10353594B2 (en) 2011-09-21 2019-07-16 Hitachi Automotive Systems, Ltd. Electronic control unit for vehicle and method of writing data
JP2013182456A (ja) * 2012-03-02 2013-09-12 Hitachi Automotive Systems Ltd 自動車用電子制御装置
US9892798B2 (en) 2012-09-11 2018-02-13 Seagate Technology Llc Data protection for unexpected power loss
JP2014154166A (ja) * 2013-02-07 2014-08-25 Seagate Technology Llc データ記憶デバイスおよびそれを操作する方法
JP2014182626A (ja) * 2013-03-19 2014-09-29 Axell Corp メモリ格納情報読出し方法及びメモリインターフェース
JP2014207010A (ja) * 2014-07-15 2014-10-30 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP2020087470A (ja) * 2018-11-21 2020-06-04 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド データアクセス方法、データアクセス装置、機器及び記憶媒体
JP7088897B2 (ja) 2018-11-21 2022-06-21 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド データアクセス方法、データアクセス装置、機器及び記憶媒体
US11650754B2 (en) 2018-11-21 2023-05-16 Kunlunxin Technology (Beijing) Company Limited Data accessing method, device, and storage medium
KR20200109238A (ko) * 2019-03-11 2020-09-22 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
US10937492B2 (en) 2019-03-11 2021-03-02 Winbond Electronics Corp. Semiconductor storage apparatus
KR102351933B1 (ko) 2019-03-11 2022-01-14 윈본드 일렉트로닉스 코포레이션 반도체 기억장치

Also Published As

Publication number Publication date
US20070214309A1 (en) 2007-09-13
CN101042674A (zh) 2007-09-26
JP4418439B2 (ja) 2010-02-17

Similar Documents

Publication Publication Date Title
JP4418439B2 (ja) 不揮発性記憶装置およびそのデータ書込み方法
JP5295778B2 (ja) フラッシュメモリ管理方法
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US7702846B2 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2005196736A (ja) フラッシュメモリのアドレスマッピング方法、マッピング情報管理方法及びこれらの方法を用いたフラッシュメモリ
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JPWO2006067923A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
CN106445401A (zh) 表格更新方法、存储器储存装置及存储器控制电路单元
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US20050278480A1 (en) Method of writing data into flash memory
JP5949122B2 (ja) 制御装置、記憶装置、記憶制御方法
JP3826115B2 (ja) 記憶装置、メモリ管理方法及びプログラム
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP4710274B2 (ja) メモリ装置、メモリ装置の制御方法およびデータ処理システム
JP2013033338A (ja) メモリシステム
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
JP3976764B2 (ja) 半導体ディスク装置
WO2009090692A1 (ja) 半導体記録装置及び半導体記録システム
JP5707695B2 (ja) フラッシュディスク装置
CN109407963A (zh) 一种实现存储管理的方法及装置
JP2009134514A (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091020

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: 20091104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091127

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: 20121204

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees