JP5180726B2 - 記憶装置およびデータ書き込み制御方法 - Google Patents

記憶装置およびデータ書き込み制御方法 Download PDF

Info

Publication number
JP5180726B2
JP5180726B2 JP2008198024A JP2008198024A JP5180726B2 JP 5180726 B2 JP5180726 B2 JP 5180726B2 JP 2008198024 A JP2008198024 A JP 2008198024A JP 2008198024 A JP2008198024 A JP 2008198024A JP 5180726 B2 JP5180726 B2 JP 5180726B2
Authority
JP
Japan
Prior art keywords
data
block
page
replacement
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.)
Active
Application number
JP2008198024A
Other languages
English (en)
Other versions
JP2010039509A (ja
Inventor
慎一 廣澤
広昭 福丸
敬 梅原
譲 高橋
義弘 中野
守 市村
芳巳 藤又
克裕 小原
幹 阿部
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.)
Hitachi Ltd
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Solutions 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 Hitachi Ltd, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2008198024A priority Critical patent/JP5180726B2/ja
Publication of JP2010039509A publication Critical patent/JP2010039509A/ja
Application granted granted Critical
Publication of JP5180726B2 publication Critical patent/JP5180726B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、半導体メモリへのデータ書き込み制御技術に関する。
近年、半導体メモリを記憶媒体とする補助記憶装置が脚光を浴びている。特に電気的に消去可能で再書き込み可能な不揮発性半導体メモリ(例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)や、その一種であるフラッシュメモリ)を用いたものが、情報機器の補助記憶装置の主流となっている。
このフラッシュメモリは、データを書き換えるために、既に書き込まれているデータをいったん消去した後に、新たにデータを書き込まなければならない。また、データの書き込み単位と消去(書き換え)単位が同じではなく、消去単位の方が極めて大きいという特徴がある。従って、一度書込んだデータを書き換えるためには、他の多くのデータも同時に消去しなければならない。
ここで、このフラッシュメモリ上において書き換えを行うデータ容量は様々な容量が考えられるが、小容量のデータしか書き換えをしない場合、書き換えを行うデータ容量に対し、極めて大きなメモリ領域のデータを消去しなければならない。このフラッシュメモリのデータ書き換え回数には制限があるため、小容量のデータの書き換えしか行わないのに、大きなメモリ領域のデータを消去するという動作を繰り返すと、許容データ書き換え回数が充分確保できないおそれがある。つまり、このメモリ装置の限られたデータ書き換え回数を有効活用できないという問題が発生する。また、前記したとおり、データ書き換えの際には、メモリ装置上のデータ消去を行わなくてはならないため、メモリ装置に対する応答性能が低下するという問題がある。
このような問題を解決するため、データ書き換え時に旧データを残したまま、更新データを別エリアに書き込む技術も提案されている。このように旧データを残したまま更新データを書き込む場合、更新データの書き込み中や、旧データの消去前に電源オフ等の異常発生時におけるデータの整合性を確保する必要がある。このような課題を解決するため、異常発生時には、このヘッダ領域の情報を参照して、どちらのエリアのデータが有効かを判断することで、どちらのデータをもとにデータを復元すればよいかを判断する技術が提案されている(特許文献1参照)。
特許第3497066号
しかし、前記した技術は、記憶するデータ量の倍の容量のメモリ装置が必要となる。つまり、前記した技術は、フラッシュメモリを2つのエリアに分割し、データの有効性を示すヘッダ領域を設け、更新データを書き込む際には、その2つの領域に交互に書き込んでいく。つまり、メモリ装置の半分以下の容量のデータしか記憶できないため、このメモリ装置の備えるメモリ容量を有効活用できていない。さらに、この技術は、2つのエリアを交互に使用するため、新たなデータを書き込む場合、旧データを必ず消去しなければならない。例えば、フラッシュメモリのエリアAにデータa(1番目のデータ)が書き込まれ、エリアBにデータb(2番目のデータ)が書き込まれている場合において、さらにデータc(3番目のデータ)を書き込むとき、エリアAのデータa(1番目のデータ)を消去してからでないと、データc(3番目のデータ)を書き込むことができない。つまり、この技術において、3番目以降のデータ書き込み(データ書き換え)の際には、メモリ装置上のデータ消去を行わなくてはならないため、メモリ装置に対する応答性能が低下するという問題がある。
そこで、本発明は、前記した課題を解決し、フラッシュメモリ等、書き込み単位に比べて消去単位の方が極めて大きい半導体メモリにおいて、異常発生時のデータの復元性を確保しつつ、データ書き込み時の応答性能の低下を防止し、かつ、メモリ容量の有効活用を図ることを目的とする。
前記した課題を解決するため、本発明は、半導体メモリのブロックがそれぞれデータページと交替ページとを備え、また、半導体メモリのブロック群は、データブロックと、交替ブロックとを備える構成とした。ここで半導体メモリのメモリ制御部は、ホスト装置等の外部装置からのデータ書き込み要求(上書き要求)を受け付けたとき、データブロックの交替ページにデータを書き込んでいく。そして、書き込みデータの量に対し、この交替ページのデータ容量が不足するとき、このデータブロックから読み出したデータを書き込み要求のデータで更新したデータを交替ブロックに書き込む。このようにすることで、データ書き込み(書き換え)のたびに、既存のデータを消去する必要がなくなるので、データ書き込み時の半導体メモリの応答性能の低下を防止できる。特に、書き込むデータ量が少ない場合、同じブロック内の交替ページにデータを書き込んでいけばよいので、メモリ容量を無駄なく利用でき、かつ、データ書き込み時の半導体メモリの応答性能もあまり低下しない。なお、データブロックに書き込まれた更新前のデータは、後で消去する。これにより、半導体メモリの限られたメモリ容量を有効活用できる。また、このデータブロックのデータは、そのデータが書き込まれる記憶領域の論理アドレスおよび所定のカウンタナンバからなる管理データを含む。そして、メモリ制御部が、このデータブロックのデータを読み出し、更新後のデータを交替ブロックに書き込むとき、読み出したデータに含まれる管理データにおける論理アドレスはそのままで、そのカウンタナンバを更新したもの(例えば、カウンタナンバをインクリメントしたもの)を含めて書き込む。そして、電源オフ等の異常発生時には、このカウンタナンバを参照することで、どちらのデータを用いてデータを復元すればよいかを判断することができる。例えば、交替ブロックへのデータ書き込み中(または、交替ブロックへのデータ書き込み後であるがデータブロックのデータを消去する前)に電源オフ等発生し、半導体メモリ上に同じ論理アドレスのデータが複数の物理アドレスに存在した場合でも、このカウンタナンバを参照することで、どちらのデータを用いればよいかを判断できる。なお、同じ論理アドレスのデータが複数あった場合において、これらのデータのうち、最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みがあるとき、当該最終のデータページにデータの書き込みのある物理アドレスを選択して、データを復元する。
本発明によれば、フラッシュメモリ等、書き込み単位に比べて消去単位の方が極めて大きい半導体メモリにおいて、データの復元性を確保しつつ、データ書き込み時の応答性能を向上し、かつ、メモリ容量の有効活用を図ることができる。
≪概要≫
以下に、本発明を実施するための最良の形態(以下、実施の形態とする)を説明する。まず、本実施の形態の記憶装置において前提とする半導体メモリの構成と、この半導体メモリへのデータ書き込み処理の概要を説明する。なお、以下の説明においてこの半導体メモリは、フラッシュメモリ等の不揮発性半導体メモリであるものとして説明する。
図1は、本実施の形態の記憶装置における半導体メモリの内部構成を例示した図である。ここでは、半導体メモリ2内に構築されている論理的記憶領域を示している。この半導体メモリ2にアクセスする外部装置(ホスト装置等)からは、この論理的記憶領域が認識される。
ブロック21はデータ消去の最小単位を示す。このブロック21は、データ読み出しおよび書き込みの最小単位であるページ211から構成される。図1においては、半導体メモリ2の論理的記憶領域は、1つ以上のブロック21で構成されており、ブロック21は1つ以上のページ211により構成されている。すなわち、半導体メモリ2の論理的記憶領域は、ブロック1からブロックm(整数)までのm個の各ブロック21を有し、それぞれのブロックは、ページ1からページn(整数)までのn個のページを有している。
次に、この半導体メモリ2へのデータ書き込みの制御方法を、図2〜図4に基づいて説明する。図2〜図4は、本実施の形態の半導体メモリの状態を概念的に示した図である。図2は、本実施の形態の半導体メモリの初期状態を示した図である。図3は、本実施の形態の半導体メモリのブロック交替後、旧ブロック消去前の状態を示した図である。図4は、本実施の形態の半導体メモリのブロック交替後、旧ブロック消去後の状態を示した図である。
図2に示すように、半導体メモリ2の記憶領域は、大きくデータブロック22と交替ブロック23に分けられる。データブロック22は、データを記憶する1以上のブロック群から構成され、ブロック1からブロックp(整数)までのブロックを有している。各ブロックは、図示のようにデータページ222と交替ページ223で構成されている。
データページ222は、ページ1からページq(整数)までのデータを保持するページを有していて、交替ページ223は、ページ(q+1)からページn(整数)までを有している。この交替ページ223は、データページ222に対する上書きデータを書き込むためのページである。なお、このデータページ222に記憶されるデータは、管理データ2222を有する。この管理データ2222は、当該データが書き込まれた記憶領域の論理アドレスとカウンタナンバとを含む。この管理データ2222について、詳細は後記するが、電源オフ等の異常発生後、データを復元するときに用いられる。
また、交替ブロック23は、データブロック22の交替ページ223に上書きデータを書き込もうとしたが、容量が多く書き込みきれなかったとき、データブロック22の上書き処理後のデータを移し変えるためのブロック群である。この交替ブロック23は、ブロック(p+1)からブロックm(整数)までのブロックであり、各ブロックは、ページ1からページn(整数)までの消去済みページ232で構成されている。
ここで、データページ222は、外部装置からの指示に従いデータを読み書きすることができる領域である。このデータページ222には、半導体メモリ2の制約上から上書きができないため、この半導体メモリ2のメモリ制御部1(後記する図5参照)の制御による上書きデータは、交替ページ223に書き込まれる。そして、メモリ制御部1は、交替ページ223に書き込めないときには、図3に示すように、交替ブロック23をデータブロック22に割り当ててデータを書き込む。例えば、データページ222の非上書きデータを、交替ページ223に書き込まれるはずだった上書きデータで更新したデータを、符号231に示すブロック(p+1)に書き込む。つまり、メモリ制御部1は、データブロック22への上書き処理後のデータを交替ブロック23から割り当てたブロックに書き込む。そして、メモリ制御部1は、以降、このブロックをデータブロック22として用いる。
なお、ここで、図3に示すように、交替ブロック23から割り当てたブロックにデータを書き込むとき、このデータの管理データ2322を含める。この管理データ2322は、このデータの更新元となったデータブロック22のブロック(例えば、符号221に示すブロック1)の管理データ2222と同じ論理アドレスを持ち、この管理データ2222のカウンタナンバをインクリメントしたものである。つまり、この管理データ2322は、管理データ2222のカウンタナンバが「0」のとき、この管理データ2222と同じ論理アドレスと、このカウンタナンバをインクリメントしたもの(カウンタナンバ「1」)とを含むものである。
このようにして交替ブロック23のブロックに更新データを書き込んだ後、メモリ制御部1は、図4に示すように、このデータの更新元となったデータブロック22のブロック221のデータを消去して(消去済みページ224)、交替ブロック23として用いる。
つまり、メモリ制御部1は、上書きデータの量が少なければ同じブロック内に用意された交替ページ223にデータを書き込む。一方、上書きデータの量が多ければ、メモリ制御部1は、上書き対象のデータをデータブロック22から読み出し、読み出したデータを上書きデータで更新したものを交替ブロック23のブロックに書き込む(つまり、データの交替を行う)。よって、データ書き込みのたびに、既存のデータを消去する必要がなくなるので、データ書き込み時の半導体メモリの応答性能の低下を防止できる。そして、データブロック222に書き込まれていた更新前データについては、後でデータを消去する。ここで、データの交替を行ったときには、そのデータの管理データにそのデータの論理アドレスと、更新のたびにインクリメントするカウンタナンバとを含める。このようにすることで、例えば、図3に示すようなブロック交替後、旧ブロック消去前に電源オフ等が発生し、半導体メモリ2の更新前後のデータが並存する場合でも、メモリ制御部1がこのカウンタナンバを参照することで、どちらのデータをもとにデータを復元すればよいかを判断することができる。
なお、図2〜図4に示した半導体メモリ2のブロックp(つまり、データブロック22の末尾のブロック)およびページq(つまり、ブロック内のデータページ222の末尾のページ)は、例えば、この半導体メモリ2を含む記憶装置の製造時に初期値として設定される。このブロックpとページqの設定方法については、特に限定しないが、この記憶装置のメモリ上に予め設定しておくことや、この記憶装置のマイクロプロセッサへデバッガを接続して行うようにすることが考えられる。また、外部装置から予め決められたコマンドを発行して設定するで実現可能である。また、ブロックp、ページqを可変としてテーブル管理することも可能であるが、本実施の形態例では簡単化のために固定値として扱う。
なお、前記した図2〜図4に示すようなデータの書き込み制御は、メモリ制御部1が、このメモリ制御部1の備える各テーブルを参照することで実行する。このメモリ制御部1が備える各テーブルの詳細は後記する。
≪構成≫
次に、このような半導体メモリ2を含む記憶装置について説明する。図5は、本実施の形態の記憶装置のハードウェア構成例を示した図である。なお、本実施の形態の記憶装置は、外部のホスト装置からの指示に基づき、記憶装置内の半導体メモリ2のデータの読み出しや書き込みを行うものとして説明する。
記憶装置6は、データバス4を介して、ホスト装置3とアクセス可能に接続される。この記憶装置6は、ホスト装置3からの指示に基づいて、半導体メモリ2のデータの書き込みや読み出しを行う装置である。ホスト装置3は、記憶装置6に対してデータの書き込みや読み出し指示を行うコンピュータである。データバス4は、例えば、SCSI(Small Computer System Interface)やATA(Advanced Technology Attachment)等である。
記憶装置6は、メモリ制御部1と半導体メモリ2とを備える。メモリ制御部1と半導体メモリ2とのデータのやり取りは、データバス5によって行われる。
<メモリ制御部>
メモリ制御部1は、マイクロプロセッサ11と、メモリI/F(インターフェース)制御部12と、ホストI/F制御部13と、メモリ14とを備える。
マイクロプロセッサ11は、半導体メモリ2内に、記憶装置6の物理的記憶領域に対応する論理的記憶領域を構築するとともに、この論理的記憶領域へのデータの書き込みおよび読み出しを制御する。
メモリI/F制御部12は、マイクロプロセッサ11からの指示により半導体メモリ2とのアクセス制御を行う。なお、マイクロプロセッサ11から半導体メモリ2を直接制御可能であれば、メモリI/F制御部12は必ずしも必要ではない。
ホストI/F制御部13は、ホスト装置3からのデータの書き込みおよび読み出し指示に従って、ホスト装置3とのデータの送受信を制御する。ホスト装置3からのデータの書き込みおよび読み出し指示は、半導体メモリ2内に構築された論理的記憶領域に対して行われるものである。
メモリ14は、論理/物理変換テーブル(論理/物理変換情報)141と、次回書き込みページ管理テーブル(ページ管理情報)142と、交替ブロックリストテーブル(交替ブロック情報)143と、消去回数管理テーブル144と、消去候補管理テーブル145とを備える。このメモリ14は、SRAM(Static Random Access Memory)やDRAM(Dynamic RAM)またはMRAM(Magneto-resistive RAM)等のメモリ素子を使用することができる。なお、各テーブルの初期値は、記憶装置6の初期化時にマイクロプロセッサ11が設定するものとする。
<論理/物理変換テーブル>
メモリ14の論理/物理変換テーブル141は、この半導体メモリ2の論理的記憶領域のアドレス(論理アドレス)ごとに、この論理アドレスに対応する半導体メモリ2上の物理アドレスを示した情報である。図6は、図5の論理/物理変換テーブルの構成例を示した図である。図6の(a)は、初期状態の論理/物理変換テーブル、(b)は、ページ書き換え後の論理/物理変換テーブル、(c)は、ブロック交替後の論理/物理変換テーブルを例示した図である。この論理/物理変換テーブル141は、論理アドレス1410と、この論理アドレス1410に対応する半導体メモリ2上の物理アドレス1411とを含んで構成される。この物理アドレス1411は、半導体メモリ2のブロック番号とページ番号とにより記述される。この物理アドレス1411は、半導体メモリ2上のデータの書き込み処理により値が変わり、例えば、図6の(a)に示す初期状態からページ書き換え後、(b)に示す状態になり、ブロック交替後、(c)に示す状態になる。図5のメモリ制御部1が、このように書き換えられた論理/物理変換テーブル141を参照することで、ホスト装置3からデータの読み出しまたは書き込み(上書き)指示を受け付けたとき、半導体メモリ2上の最新データが書き込まれた記憶領域に対しデータの読み出しや書き込み(上書き)を行うことができる。
<次回書き込みページ管理テーブル>
次回書き込みページ管理テーブル142は、ブロックごとに、当該ブロックにおいて次に書き込むページの先頭アドレスを示した情報である。図7は、図5の次回書き込みページ管理テーブルの構成例を示した図である。図7の(a)は、初期状態の次回書き込みページ管理テーブル、(b)は、ページ書き換え後の次回書き込みページ管理テーブル、(c)は、ブロック交替後の次回書き込みページ管理テーブルを例示した図である。次回書き込みページ管理テーブル142は、各ブロックの番号を示すブロック番号1420と、このブロックに次回書き込むべきページである次回書き込みページ1421とを含んで構成される。この次回書き込みページ管理テーブル142は、例えば、図7(a)に示す初期状態からページ書き換え後、(b)に示す状態になり、ブロック交替後、(c)に示すような状態になる。メモリ制御部1が、このように書き換えられた次回書き込みページ管理テーブル142を参照することで、ホスト装置3からデータの書き込み指示を受け付けたとき、同じ記憶領域に重複してデータを書き込むことがなくなる。
<交替ブロックリストテーブル>
交替ブロックリストテーブル143は、交替ブロック23(図2〜図4参照)のうち、次にデータブロック22として割り当てるブロックを示した情報である。図8は、図5の交替ブロックリストテーブルの構成例を示した図である。図8の(a)は、初期状態の交替ブロックリストテーブル、(b)は、ページ書き換え後の交替ブロックリストテーブルを例示した図である。この交替ブロックリストテーブル143は、使用可能な交替ブロック23のブロック番号が使用する順番に並んでおり、例えば、交替ブロック23の「ブロック(p+1)」が使用されると、図8の(a)に示す初期状態の交替ブロックリストテーブルから、この「ブロック(p+1)」の情報が消去される。そして、「ブロック(p+2)」が繰り上がり、(b)に示す状態になる。メモリ制御部1が、このような交替ブロックリストテーブル143を参照することで、次にどのブロックをデータブロック22として割り当ればよいかを判断できる。
<消去回数管理テーブル>
消去回数管理テーブル144は、各ブロックの消去回数を示した情報である。図9は、図5の消去回数管理テーブルの構成例を示した図である。図9の(a)は、初期状態の消去回数管理テーブル、(b)は、ブロック交替後の消去回数管理テーブルを例示した図である。この消去回数管理テーブル144は、各ブロックのブロック番号1440と、このブロックの消去回数1441とを含んで構成される。例えば、図9(a)に示す「ブロック1」のデータが消去されると、(b)に示すように、この消去回数管理テーブル144のブロック1の消去回数が「1」加算される。
<消去候補管理テーブル>
消去候補管理テーブル145は、データ消去待ちブロックのブロック番号を消去順に並べた情報である。図10は、図5の消去候補管理テーブルの構成例を示した図である。図10(a)は、初期状態の消去候補管理テーブル、(b)はブロック交替後の消去候補管理テーブルを例示した図である。この消去候補管理テーブル145は、例えば、「ブロック1」に書き込まれていたデータが交替ブロック23から割り当てた別のブロックへ移されたとき(ブロック交替がされたとき)と、図10(b)に示すように、消去候補管理テーブル145に「ブロック1」の情報が追加される。メモリ制御部1が、このような消去候補管理テーブル145を参照することで、次に、どのブロックのデータを消去すればよいか(つまり、どのブロックを交替ブロック23に割り当てればよいか)を判断することができる。
≪処理手順≫
次に、適宜、図5〜図10を参照しつつ、図11〜図14のフローチャートに基づいて、メモリ制御部1のマイクロプロセッサ11(図5参照)の処理手順を説明する。
<書き込み処理>
図11は、図5のマイクロプロセッサによる半導体メモリへの書き込み処理手順を示したフローチャートである。まず、図11を用いて、マイクロプロセッサ11による半導体メモリ2への書き込み処理を説明する。
図5のマイクロプロセッサ11は、ホストI/F制御部13を介して、ホスト装置3から論理アドレス、データ、データサイズを含む書き込み指示を受信する(S700)。
次に、マイクロプロセッサ11は、データの書き込み先となる半導体メモリ2の物理アドレスを確認するために、S700で受信した論理アドレスをキーとして、論理/物理変換テーブル141(図6参照)を参照し、該当する物理アドレスを特定する(S701)。
例えば、論理/物理変換テーブル141の状態が図6(a)の初期状態のときに、ホスト装置3から受信した書き込み指示に含まれる論理アドレスが「1」であった場合、マイクロプロセッサ11は、物理アドレスとして「ブロック1」を特定する。
次に、マイクロプロセッサ11は、特定したブロック内のどのページに書込めばよいかを確認するために、次回書き込みページ管理テーブル142(図7参照)を参照し、交替ページの先頭の物理アドレス(次回書き込みページ)を特定する(S702)。
例えば、次回書き込みページ管理テーブル142が図7(a)に示す初期状態であり、マイクロプロセッサ11が、S701にて特定した物理アドレスが「ブロック1」の場合、次回書き込みページは「q+1」となる。
次に、マイクロプロセッサ11は、交替ページの空き容量が充分であるかを確認するために、S702で特定した先頭の次回書き込みページと書き込むデータの必要ページ数との和が、n(1ブロックあたりの最大ページ数)以下か否かを判断する(S703)。つまり、マイクロプロセッサ11は、当該ブロックの交替ページの容量が、書き込みデータの量以下であるか否かを判断する。
S703で比較した結果、マイクロプロセッサ11が、S702で特定した先頭の次回書き込みページと書き込むデータの必要ページ数との和がn(1ブロックあたりの最大ページ数)以下であると判断したとき(S703のYes)、つまり、この交替ページにデータが書き込めると判断したとき、マイクロプロセッサ11は、次回書き込みページ管理テーブル142の値を、書き込むページ数を加算した値へ更新する(S704)。
例えば、S702でマイクロプロセッサ11が特定した「ブロック1」の次回書き込みページが「q+1」であり、書き込むデータの必要ページ数が1ページであれば、「q+1+1=q+2」となる。従って、マイクロプロセッサ11は、図7(b)に示すように、図7(a)の次回書き込みページ管理テーブル142の「ブロック1」の次回書き込みページを「q+2」へ更新する。つまり、交替ページの開始ページを「q+2」にする。これにより、次回以降、「ブロック1」に対する書き込みは、この「q+2」から行われるようになる。
次に、マイクロプロセッサ11は、S702にて特定した交替ページの中の次回書き込みページにデータを書き込む(S705)。そして、マイクロプロセッサ11は、データの書き込み先の論理アドレスに対し、実際にデータを書き込んだ半導体メモリ2の物理アドレスとの関連付けるため、論理/物理変換テーブル141における当該論理アドレスに対する物理アドレスを更新する(S706)。
例えば、S702にて特定した次回書き込みページが「q+1」であれば、図6(b)に示すように、論理/物理変換テーブル141の論理アドレス「1」に対する物理アドレスを「ブロック1」の「ページ(q+1)」に更新する。このようにすることで、以降、このマイクロプロセッサ11が、この半導体メモリ2の論理アドレス「1」のデータに対する読み出しを受け付けたとき、以前は物理アドレスが「ブロック1」の「ページ2」に対し読み出しを行っていたが、物理アドレスが「ブロック1」の「ページ(q+1)」に対し読み出しを行うようになる。つまり、マイクロプロセッサ11は、当該論理アドレスのデータを交替ページからデータを読み出すようになる。
このようにしてデータの書き込み処理を行った後、マイクロプロセッサ11は、ホストI/F制御部13を介して、ホスト装置3にデータの書き込み終了を報告する(S707)。
なお、S703において、マイクロプロセッサ11が、S702で特定した先頭の次回書き込みページと、書き込むデータの必要ページ数との和がn(1ブロックあたりの最大ページ数)より大きいと判断したとき(S703のNo)、ブロック交替処理を実行し(S710)、ホスト装置3に書き込み終了を報告する(S707)。このブロック交替処理については、図12を用いて後記する。
<ブロック交替処理>
次に、図11のS707のブロック交替処理について、図12を用いて説明する。図12は、図5のマイクロプロセッサによる半導体メモリのブロック交替処理手順を示したフローチャートである。
まず、マイクロプロセッサ11は、論理/物理変換テーブル141(図6参照)を参照して、書き込み要求のデータにより更新されるデータである交替元ブロックのデータを読み出す。つまり、マイクロプロセッサ11は、論理/物理変換テーブル141を参照して、交替元ブロックに関連付けられた全ページのデータを読み出す(S711)。読み出したデータは、メモリ14(図5参照)に記憶しておく。
例えば、「ブロック1」が交替元ブロックである場合において、論理/物理変換テーブル141が図6(b)に示す状態のときは、マイクロプロセッサ11は、この「ブロック1」に関連付けされている全ページ(ページ1、ページ(q+1)、…、ページq)のデータを読み出す。
そして、マイクロプロセッサ11は、この読み出したデータに含まれる管理データ(図3の管理データ2222参照)のカウンタナンバをインクリメントした管理データを作成する(S712)。つまり、マイクロプロセッサ11は、読み出したデータに含まれる管理データの論理アドレスと同じ論理アドレスを持ち、この管理データのカウンタナンバをインクリメントした新たな管理データを作成する。
例えば、マイクロプロセッサ11は、図3に示す「ブロック1」の先頭ページ「ページ1」から管理データ2222を読み出したとき、この管理データ2222に含まれる論理アドレスが同じで、カウンタナンバを「0」から「1」にインクリメントした管理データ2322を新たに作成する。この作成した管理データ2322は、メモリ14(図5参照)に記憶しておく。
次に、マイクロプロセッサ11は、S711で読み出したデータのうち、図11のS700の処理において受信したデータに該当するページのデータを更新する(S713)。更新したデータはメモリ14に記憶しておく。
例えば、マイクロプロセッサ11が、「ブロック1」に関連付けされている全ページ(ページ1、ページ(q+1)、…、ページq)のデータのうち、図11のS700の処理において受信したデータに該当するページが「ページ(q+1)」であれば、その「ページ(q+1)」の部分のデータを更新する。そして、この更新したデータをメモリ14に記憶しておく。
そして、マイクロプロセッサ11は、交替先ブロックを確認するために、交替ブロックリストテーブル143(図8参照)を参照し、交替ブロック23の中の1つのブロックを特定し、交替ブロックリストテーブル143を更新する(S714)。
例えば、マイクロプロセッサ11は、交替ブロックリストテーブル143の状態が図8(a)に示す状態であれば、そのトップに登録されている「ブロック(p+1)」を特定する。そして、図8(b)に示すように、交替ブロックリストテーブル143からこの「ブロック(p+1)」を削除し、「ブロック(p+2)」以降を繰り上げる。
ここで、マイクロプロセッサ11は、次回書き込みページ管理テーブル142を参照し、特定したブロックの次回書き込みページを特定する(S715)。つまり、マイクロプロセッサ11は、S714で特定したブロック内のどのページに書込めばよいかを確認する。
例えば、S714にて、マイクロプロセッサ11が、交替ブロック23の中の「ブロック(p+1)」を交替先ブロックとして特定したとき、次回書き込みページ管理テーブル142が、図7(b)の状態であるならば、次回書き込みページは「1」となる。なお、ブロック交替の場合、交替先ブロックはデータがすべて消去された状態なので、このような次回書き込みページ管理テーブル142の参照処理を省いて、この交替先ブロックのページ「1」から書き込むようにしてもよい。
次に、マイクロプロセッサ11は、S712で作成した管理データおよびS713で更新したデータをメモリ14から読み出し、特定した交替先ブロックにデータを書き込む(S716)。なお、ここでのデータの書き込み開始ページは、S715で特定した次回書き込みページである。マイクロプロセッサ11は、データ書き込みが終了したら、マイクロプロセッサ11は、次回書き込みページ管理テーブル142に内容に書き込み完了したページ数を加算することで更新する(S717)。
例えば、次回書き込みページ管理テーブル142の状態が、図7(b)の状態であり、「ブロック(p+1)」に対しqページ分のデータを書き込んだとき、マイクロプロセッサ11は、図7(c)に示すように次回書き込みページ管理テーブル142の「ブロック(p+1)」に対する次回書き込みページを「q+1」に更新する。これにより、次回以降、「ブロック(p+1)」に対する書き込みは、この「q+1」から行われるようになる。
次に、マイクロプロセッサ11は、データの書き込み先の論理アドレスに対し、実際にデータを書き込んだ半導体メモリ2の物理アドレスとの関連付けるため、論理/物理変換テーブル141における当該論理アドレスに対する物理アドレスを更新する(S718)。
例えば、論理/物理変換テーブル141の状態が、図6(b)に示す状態である場合において、「ブロック1」の交替先ブロックを「ブロック(p+1)」としたとき、図6(c)に示すように、論理/物理変換テーブル141の物理アドレスにおける「ブロック1」を「ブロック(p+1)」に更新する。このようにすることで、例えば、このマイクロプロセッサ11が、この半導体メモリ2の論理アドレス「1」のデータに対する読み出しを受け付けたとき、物理アドレスが「ブロック(p+1)」の「ページ1」に対し読み出しを行うようになる。つまり、マイクロプロセッサ11は、交替先ブロックに対し読み出しを行うようになる。なお、この論理/物理変換テーブル141において、「ブロック(p+1)」のページは、元のページの順(つまり、ページ1、ページ2、…、ページ3という順)に並べられる。
この後、マイクロプロセッサ11は、交替元ブロックを再度使用可能とするために、消去候補管理テーブル145に交替元ブロックを追加する(S719)。例えば、マイクロプロセッサ11は、消去候補管理テーブル145が、図10(a)に示す初期状態であり、交替元ブロックが「ブロック1」であったとき、図10(b)に示すように消去候補管理テーブル145に「ブロック1」を追加する。このように消去候補管理テーブル145に登録されたブロックは、マイクロプロセッサ11がデータを消去し、再度データが書き込み可能なようにする。
<データの読み出し処理>
なお、ホスト装置3からデータの読み出し指示を受け付けたときには、以下のような処理を実行する。まず、マイクロプロセッサ11は、ホストI/F制御部13を介して、ホスト装置3から論理アドレス、データサイズを受信する。
そして、マイクロプロセッサ11は、読み出すデータの物理アドレスを特定するために、ホスト装置3から指定された論理アドレスをキーとして、論理/物理変換テーブル141を参照して、読み出すデータの物理アドレスを特定する。
次に、マイクロプロセッサ11は、この特定した物理アドレスをもとに、半導体メモリ2からメモリI/F制御部12を介してデータを読み出す。そして、マイクロプロセッサ11は、読み出したデータを、ホストI/F制御部13を介してホスト装置3に送信する。
<消去処理>
次に、図13を用いて、データ消去処理の流れを説明する。図13は、図5のマイクロプロセッサによる半導体メモリのデータ消去処理手順を示したフローチャートである。
マイクロプロセッサ11は、ホスト装置3からデータの書き込みや読み出しの要求が無いときに、以下のようにして、消去候補管理テーブル145に登録されているブロックのデータ消去処理を実施する。
まず、マイクロプロセッサ11は、消去候補管理テーブル145(図10参照)を参照し、対象となるブロックがあるか否かを判定する(S800)。ここで、対象となるブロックがない場合は(S800のNo)、処理を終了する。一方、対象となるブロックがある場合は(S800のYes)、マイクロプロセッサ11は、消去回数管理テーブル144(図9参照)に対し、当該ブロックの消去回数を1つ加算する(S801)。
例えば、マイクロプロセッサ11は、図10(b)に示すように消去候補管理テーブル145に、対象ブロックとして「ブロック1」があり、消去回数管理テーブル144の状態が図9(a)に示す状態だったとき、この「ブロック1」の消去回数を「0」から「1」に変更する(図9(b)参照)。
次に、マイクロプロセッサ11は、当該ブロックのデータを消去する(S802)。そして、マイクロプロセッサ11は、消去候補管理テーブル145にある、消去済みブロックの情報を削除し、消去候補管理テーブル145を更新する(S803)。
例えば、消去候補管理テーブル145が図10(b)に示す状態だったとき、マイクロプロセッサ11は、この「ブロック1」のデータを削除し、図10(a)に示す状態に戻す。この後、マイクロプロセッサ11は、S800に戻り、消去候補管理テーブル145に対象となるブロックが無くなるまで処理を続ける。
このようにして、マイクロプロセッサ11は、データ交替処理後にデータ交替元のブロックからデータを消去することで、このブロックに再度データを書き込むことができる。
<論理/物理変換テーブル復元処理>
次に、図14を用いて、記憶装置6の電源オフ等により、メモリ14が初期化された場合における、管理データを用いた論理/物理変換テーブル141の復元処理の流れを説明する。図14は、図5のマイクロプロセッサによる論理/物理変換テーブルの復元処理手順を示したフローチャートである。
マイクロプロセッサ11は、半導体メモリ2のデータブロック22(図2〜図4参照)から管理データを読み出す(S900)。読み出した管理データはメモリ14に記憶しておく。
次に、マイクロプロセッサ11は、論理/物理変換テーブル141に、この読み出した管理データに含まれる論理アドレスと同じ論理アドレスがあるか否かを判断する(S901)。つまり、マイクロプロセッサ11は、読み出した管理データに含まれる論理アドレスとその論理アドレスに対応する物理アドレスとを復元中の論理/物理変換テーブル141に書き込んでいくが、既に同じ論理アドレスの管理データが論理/物理変換テーブル141に書き込まれているか否かを判断する。
ここで、マイクロプロセッサ11は、論理/物理変換テーブル141に、S900で読み出した論理アドレスと同じ論理アドレスがないと判断した場合(S901のNo)、S900で読み出した管理データを用いて、この論理/物理変換テーブル141を更新する(S906)。つまり、論理/物理変換テーブル141に、同じ論理アドレスがない場合、半導体メモリ2の状態は、前記した図2に示す初期状態、または、図4に示すブロック交替後、旧ブロック消去後状態であると推測される。よって、マイクロプロセッサ11は、S900で読み出した管理データを用いて論理/物理変換テーブル141を更新する。
ここでの、管理データを用いた論理/物理変換テーブル141の更新は、以下のようにして行われる。すなわち、まず、マイクロプロセッサ11は、S900で読み出した管理データに含まれる論理アドレスを論理/物理変換テーブル141に書き込む。そして、この論理/物理変換テーブル141におけるこの論理アドレスに対応する物理アドレスとして、この管理データの読み出し元の記憶領域の物理アドレスを書き込む。
次に、マイクロプロセッサ11は、まだ、半導体メモリ2のすべてのデータブロック22の管理データを読み出していないとき(S908のNo)、S900へ戻る。一方、マイクロプロセッサ11は、半導体メモリ2のすべてのデータブロック22の管理データを読み出したとき(S908のYes)、処理を終了する。
一方、S901の処理において、マイクロプロセッサ11が読み出した管理データの論理アドレスと同じ論理アドレスが、論理/物理変換テーブル141に既に存在している場合(S901のYes)、同じ論理アドレスとなったブロックの管理データのカウンタナンバを読み出す(S902)。つまり、(1)S900で読み出した管理データのカウンタナンバと、(2)この管理データの論理アドレスと同じ論理アドレスの管理データのカウンタナンバとをメモリ14から読み出す。なお、このように同じ論理アドレスの管理データが複数ある半導体メモリ2の状態は、ブロック交替中の状態、または、図3に示すブロック交替後、旧ブロック消去前の状態であると推測される。よって、マイクロプロセッサ11は、この同じ論理アドレスを持つ管理データのカウンタナンバの比較を行い、新しい方のカウンタナンバのデータを読み出す(S903)。
次に、マイクロプロセッサ11は、S903で読み出したデータの最終ページ(ページq)、すなわち、最終のデータページの書き込みがあるか否かを判断する(S904)。ここで、最終ページが書き込みされていれば(S904のYes)、当該ブロックに対し正常に書き込みが終了したデータと判断できるため、マイクロプロセッサ11は、カウンタナンバが新しい方の管理データの物理アドレスを有効と判断する(S905)。そして、マイクロプロセッサ11は、この有効と判断した管理データを用いて論理/物理変換テーブル141を更新する(S906)。
一方、S913において最終ページ(ページq)に書き込みされていなければ(S904のNo)、新しいカウンタナンバのブロックのデータは、正常に書き込みが終了していないデータと判断できるため、カウンタナンバが古い方の管理データの物理アドレスを有効と判断する(S907)。すなわち、マイクロプロセッサ11は、カウンタナンバが古い方の管理データにより更新された論理/物理変換テーブル141を保持したまま、S908へ進む。
このようにすることで、マイクロプロセッサ11は、交替ブロックへのデータ書き込み中(または、交替ブロックへのデータ書き込み後であるがデータブロックのデータを消去する前)に電源オフ等の異常が発生して、論理/物理変換テーブル141の復元が必要になった場合において、半導体メモリ2上に同じ論理アドレスのデータが複数存在したときでも、どのデータの物理アドレスを用いて論理/物理変換テーブル141を復元すればよいかを判断できる。つまり、データ復元を行いやすくなる。
なお、前記した実施の形態において、記憶装置6内の半導体メモリ2の数は複数個であってもよい。この場合、論理/物理変換テーブル141(図2参照)は、ブロック番号とページ番号の他に、この半導体メモリ2の識別情報であるチップ番号を追加する。このようにすることで、記憶装置6内に半導体メモリ2が複数ある場合にも、メモリ制御部1はこの複数の半導体メモリ2に対し、前記したようなデータの読み出し処理および書き込み処理を実行できる。
なお、前記した実施の形態において、管理データに含まれるカウンタナンバは、ブロック交替処理を行うたびに値を「1」ずつインクリメントすることとしたが、例えば、「2」以上ずつインクリメントするようにしてもよい。
本実施の形態の記憶装置における半導体メモリの内部構成を例示した図である。 本実施の形態の半導体メモリの初期状態を示した図である。 本実施の形態の半導体メモリのブロック交替後、旧ブロック消去前の状態を示した図である。 本実施の形態の半導体メモリのブロック交替後、旧ブロック消去後の半導体メモリの状態を示した図である。 本実施の形態の記憶装置のハードウェア構成例を示した図である。 図5の論理/物理変換テーブルの構成例を示した図である。 図5の次回書き込みページ管理テーブルの構成例を示した図である。 図5の交替ブロックリストテーブルの構成例を示した図である。 図5の消去回数管理テーブルの構成例を示した図である。 図5の消去候補管理テーブルの構成例を示した図である。 図5のマイクロプロセッサによる半導体メモリへの書き込み処理手順を示したフローチャートである。 図5のマイクロプロセッサによる半導体メモリのブロック交替処理手順を示したフローチャートである。 図5のマイクロプロセッサによる半導体メモリのデータ消去処理手順を示したフローチャートである。 図5のマイクロプロセッサによる論理/物理変換テーブルの復元処理手順を示したフローチャートである。
符号の説明
1 メモリ制御部
2 半導体メモリ
3 ホスト装置
4,5 データバス
6 記憶装置
11 マイクロプロセッサ
12 メモリI/F制御部
13 ホストI/F制御部
14 メモリ
21 ブロック
22 データブロック
23 交替ブロック
141 論理/物理変換テーブル(論理/物理変換情報)
142 次回書き込みページ管理テーブル(ページ管理情報)
143 交替ブロックリストテーブル(交替ブロック情報)
144 消去回数管理テーブル
145 消去候補管理テーブル
222 データページ
223 交替ページ
2222,2322 管理データ

Claims (4)

  1. 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きなブロックの単位でデータの消去を行う不揮発性半導体メモリと、外部装置からの指示に従い、前記不揮発性半導体メモリの記憶領域に対するデータの読み出しまたは書き込みを制御するメモリ制御部とを備える記憶装置であって、
    前記不揮発性半導体メモリの記憶領域のブロック群は、データブロックと、交替ブロックとに分けられ、
    前記それぞれのブロックは、前記所定の単位で書き込まれたデータを記憶するデータページと、このデータページのデータに対する上書きデータの書き込みを受け付ける交替ページとを備え、
    前記データページに書き込まれたデータは、そのデータの論理アドレスおよび所定のカウンタナンバを示した管理データを含み、
    前記メモリ制御部は、
    前記不揮発性半導体メモリの記憶領域の論理アドレスごとに、この論理アドレスに対応する前記記憶領域の物理アドレスを示した論理/物理変換情報と、
    前記交替ブロックの物理アドレスを示した交替ブロック情報と、
    前記ブロックごとに、このブロックに上書きデータを書き込むときの交替ページを示したページ管理情報とを記憶し、
    前記外部装置から、前記上書きデータの書き込み指示を受け付けたとき、前記書き込み指示に含まれる論理アドレスと、前記論理/物理変換情報とを参照して、前記論理アドレスに対応するデータブロックの物理アドレスを特定し、
    前記ページ管理情報を参照して、前記特定した物理アドレスのデータブロックにおける前記上書きデータの書き込み先となる交替ページを特定し、
    前記上書きデータの容量が、前記特定した交替ページのデータ容量以下の場合、この特定した交替ページに前記上書きデータを書き込み、
    前記上書きのデータの容量が、前記特定した交替ページの容量を超える場合、前記特定した物理アドレスのデータブロックに書き込まれたデータを読み出し、この読み出したデータに含まれる管理データから、この管理データに含まれるカウンタナンバの値を更新した新たなカウンタナンバと、前記管理データに含まれる論理アドレスと同じ論理アドレスとを含む新たな管理データを作成し、
    前記特定した物理アドレスのデータブロックに書き込まれたデータを前記上書きデータで更新したデータを作成し、
    前記作成したデータに、前記作成した管理データを含めて前記交替ブロック情報に示される交替ブロックに書き込み、
    初期化された前記論理/物理変換情報を復元するとき、
    前記記憶領域の各データブロックに書き込まれたデータを読み出し、この読み出したデータそれぞれの管理データに含まれる前記論理アドレスと、そのデータの読み出し元である記憶領域の物理アドレスとを用いて、前記論理/物理変換情報を復元し、
    前記読み出したデータの管理データに含まれる論理アドレスを参照して、同じ論理アドレスのデータが複数あった場合、これらのデータのうち、
    最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みがあるとき、当該最終のデータページにデータの書き込みのある物理アドレスを選択して、前記論理/物理変換情報を復元し、
    前記最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みが無いとき、前記同じ論理アドレスのデータのうち、前記最終のデータページにデータの書き込みがあるデータを選択して前記論理/物理変換情報を復元することを特徴とする記憶装置。
  2. 前記メモリ制御部は、
    新たなデータを前記記憶領域に書き込んだとき、
    前記論理/物理変換情報における前記データの論理アドレスに対応する物理アドレスを、前記データを書き込んだ記憶領域の物理アドレスに更新し、
    前記データの書き込み先が、前記交替ページの場合、
    さらに、前記ページ管理情報に示される前記交替ページを、前記上書きデータが書き込まれたページの次のページに更新し、
    前記データの書き込み先が、前記交替ブロックの場合、
    さらに、前記交替ブロック情報から、前記データを書き込んだブロックの物理アドレスを削除することを特徴とする請求項1に記載の記憶装置。
  3. 前記メモリ制御部は、
    前記交替ブロック情報に示される交替ブロックに、前記データを書き込んだ後、
    前記特定したデータブロックに記憶されているデータを消去することを特徴とする請求項2に記載の記憶装置。
  4. 記憶領域に対するデータの書き込みを所定の単位で行うと共に、その所定の単位よりデータ量が大きなブロックの単位でデータの消去を行う不揮発性半導体メモリに対するデータ書き込み制御方法であって、
    前記不揮発性半導体メモリの記憶領域のブロック群は、データブロックと、交替ブロックとに分けられ、
    前記それぞれのブロックは、前記所定の単位で書き込まれたデータを記憶するデータページと、このデータページのデータに対する上書きデータの書き込みを受け付ける交替ページとを備え、
    前記データページに書き込まれたデータは、そのデータの論理アドレスおよび所定のカウンタナンバを示した管理データを含み、
    前記不揮発性半導体メモリの記憶領域の論理アドレスごとに、この論理アドレスに対応する前記記憶領域の物理アドレスを示した論理/物理変換情報と、
    前記交替ブロックの物理アドレスを示した交替ブロック情報と、
    前記ブロックごとに、このブロックに上書きデータを書き込むときの交替ページを示したページ管理情報とを記憶し、前記不揮発性半導体メモリの記憶領域に対するデータの読み出しまたは書き込みを制御するメモリ制御部が、
    前記外部装置から、前記上書きデータの書き込み指示を受け付けたとき、前記書き込み指示に含まれる論理アドレスと、前記論理/物理変換情報とを参照して、前記論理アドレスに対応するデータブロックの物理アドレスを特定し、
    前記ページ管理情報を参照して、前記特定した物理アドレスのデータブロックにおける前記上書きデータの書き込み先となる交替ページを特定し、
    前記上書きデータの容量が、前記特定した交替ページのデータ容量以下の場合、この特定した交替ページに前記上書きデータを書き込み、
    前記上書きのデータの容量が、前記特定した交替ページの容量を超える場合、前記特定した物理アドレスのデータブロックに書き込まれたデータを読み出し、この読み出したデータに含まれる管理データから、この管理データに含まれるカウンタナンバの値を更新した新たなカウンタナンバと、前記管理データに含まれる論理アドレスと同じ論理アドレスとを含む新たな管理データを作成し、
    前記特定した物理アドレスのデータブロックに書き込まれたデータを前記上書きデータで更新したデータを作成し、
    前記作成したデータに、前記作成した管理データを含めて前記交替ブロック情報に示される交替ブロックに書き込み、
    初期化された前記論理/物理変換情報を復元するとき、
    前記記憶領域の各データブロックに書き込まれたデータを読み出し、この読み出したデータそれぞれの管理データに含まれる前記論理アドレスと、そのデータの読み出し元である記憶領域の物理アドレスとを用いて、前記論理/物理変換情報を復元し、
    前記読み出したデータの管理データに含まれる論理アドレスを参照して、同じ論理アドレスのデータが複数あった場合、これらのデータのうち、
    最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みがあるとき、当該最終のデータページにデータの書き込みのある物理アドレスを選択して、前記論理/物理変換情報を復元し、
    前記最新のカウンタナンバの管理データを含むデータの読み出し元である記憶領域の物理アドレスのブロックの最終のデータページにデータの書き込みが無いとき、前記同じ論理アドレスのデータのうち、前記最終のデータページにデータの書き込みがあるデータを選択して前記論理/物理変換情報を復元することを特徴とするデータ書き込み制御方法。
JP2008198024A 2008-07-31 2008-07-31 記憶装置およびデータ書き込み制御方法 Active JP5180726B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008198024A JP5180726B2 (ja) 2008-07-31 2008-07-31 記憶装置およびデータ書き込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008198024A JP5180726B2 (ja) 2008-07-31 2008-07-31 記憶装置およびデータ書き込み制御方法

Publications (2)

Publication Number Publication Date
JP2010039509A JP2010039509A (ja) 2010-02-18
JP5180726B2 true JP5180726B2 (ja) 2013-04-10

Family

ID=42012035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008198024A Active JP5180726B2 (ja) 2008-07-31 2008-07-31 記憶装置およびデータ書き込み制御方法

Country Status (1)

Country Link
JP (1) JP5180726B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6260395B2 (ja) * 2014-03-27 2018-01-17 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
CN110399325B (zh) * 2019-07-30 2023-05-30 江西理工大学 一种基于iic总线协议的改进型ip核

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
JP4665539B2 (ja) * 2005-01-31 2011-04-06 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム

Also Published As

Publication number Publication date
JP2010039509A (ja) 2010-02-18

Similar Documents

Publication Publication Date Title
JP4837731B2 (ja) プログラム可能な耐久度を有するフラッシュメモリ
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
JP3892851B2 (ja) メモリカード及び半導体装置
JP5026213B2 (ja) ストレージ装置及びデータ重複排除方法
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
JP6007332B2 (ja) ストレージシステム及びデータライト方法
JP5480913B2 (ja) 記憶装置、およびメモリコントローラ
JP2008226149A (ja) ストレージシステム及びストレージシステムのライト性能低下防止方法
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
WO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2005242897A (ja) フラッシュディスク装置
US20100318726A1 (en) Memory system and memory system managing method
JP2008159013A (ja) 半導体記憶装置
JP4253272B2 (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP2012128545A (ja) メモリコントローラ、及びデータ記録装置
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US20100030947A1 (en) High-speed solid state storage system
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
JP5180726B2 (ja) 記憶装置およびデータ書き込み制御方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP4661369B2 (ja) メモリコントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130111

R150 Certificate of patent or registration of utility model

Ref document number: 5180726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150