JP5066894B2 - 記憶媒体制御装置 - Google Patents

記憶媒体制御装置 Download PDF

Info

Publication number
JP5066894B2
JP5066894B2 JP2006301900A JP2006301900A JP5066894B2 JP 5066894 B2 JP5066894 B2 JP 5066894B2 JP 2006301900 A JP2006301900 A JP 2006301900A JP 2006301900 A JP2006301900 A JP 2006301900A JP 5066894 B2 JP5066894 B2 JP 5066894B2
Authority
JP
Japan
Prior art keywords
block
address
information
physical
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006301900A
Other languages
English (en)
Other versions
JP2008117299A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2006301900A priority Critical patent/JP5066894B2/ja
Publication of JP2008117299A publication Critical patent/JP2008117299A/ja
Application granted granted Critical
Publication of JP5066894B2 publication Critical patent/JP5066894B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、NAND型フラッシュメモリ(Flash Memory)などの不揮発性記憶媒体からの情報の読出しを制御する記憶媒体制御装置に関する。
近年、各種の電子機器において、不揮発性記憶媒体(例えば、ROMなどの不揮発性メモリ)にブートプログラムなどの処理プログラムが記憶されるようになっており、機器の起動時に、不揮発性メモリからブートプログラムなどの処理プログラムが読み出される。
このような不揮発性メモリとしては、記憶データの書き換えが可能なフラッシュメモリ(Flash Memory)が多用されている。このフラッシュメモリとしては、NOR型フラッシュメモリが一般的であるが、ビット単価が比較的安く、主としてデータストレージに用いられるNAND型フラッシュメモリの利用が検討されている。
NAND型フラッシュメモリでは、データの書き出し及び読み出しがブロック単位で行なわれることから、NAND型フラッシュメモリを使用するシステムでは、NAND型フラッシュメモリに記憶しているブートコードを、一旦、RAM(例えば、SRAM)上に格納し、このRAMから読み出すようにしており、このために、SRAMが一体に設けられているNAND型フラッシュメモリも提供されている。
ところで、NAND型フラッシュメモリでは、製造過程などにおいて不良ブロックがランダムに発生することが知られており、NAND型フラッシュメモリからデータなどを読み出す場合、そのブロックが不良ブロックではなく、また、記憶されているデータが正常であることが保証されている必要がある。
ここから、特許文献1では、予め複数のブロックに同一のブートプログラムを書き込むと共に読み出し用の制御回路を設け、CPUからブートプログラムを要求されたときに、制御回路によって読み出しブロックの良否を判定し、不良でなければ該当ブロックに記憶されているブートプログラムを読み出して出力し、不良ブロックであるときには、同じブートプログラムが記憶されている他のブロックの良否判定を行なうように提案している。
特許文献2では、エラー訂正回路を設けると共に、複数セットのブートアッププログラムを不揮発性メモリに格納し、選択したセットのブートアッププログラムを揮発性メモリに転送し、このセットに対するエラー検出、エラー訂正を行い、エラー訂正回路によってエラー訂正ができないときには、他のセットを順次選択して揮発性メモリに転送し、エラーの発生していないセットをCPUに転送するように提案している。また、特許文献2の提案では、ブートアップ制御シーケンサーを設けて、ブートアッププログラムをCPUに転送するまでは、CPUを待機状態とすることにより、システムの立ち上がり平均時間を短縮するように提案している。
特開2005−215824号公報 特開2005−275697号公報
しかしながら、複数のメモリブロックにブートプログラムを格納していると、不揮発性メモリ上のブートプログラムの格納アドレスと、ソフトウェア上のメモリアドレスが一致しないことが生じ、CPUから不揮発性メモリに対して絶対アドレスによるアクセスが困難となり、これに対する対処が必要となる。
これと共に、NAND型フラッシュメモリ上に同一のデータを多重に記憶すると、使用効率が悪化し、実質的なビット単価が高くなってしまうことになる。
また、メモリブロックの良否判定を行なうことにより不良判定がなされると、他のメモリブロックに対して改めて不良判定を行なう必要があり、このために、ブート時間が長くなると共に、装置ごとにブート時間にばらつきが生じることになってしまう。
本発明は上記事実に鑑みてなされたものであり、不揮発性記憶媒体にブロック単位で書き込まれている情報をブロック単位で管理するときに、不良ブロックが生じているときにも、同一の情報を複数のブロックに記憶すること無く適正なデータの読出しを可能とする記憶媒体制御装置を提供することを目的とする。
上記目的を達成するために本発明は、予め設定された容量を1つのブロックとして総記憶容量に応じた数のブロックがアドレス順に設定され、ブロック単位でデータの書き込み及び読み出しが行なわれると共に使用可否情報を含む格納情報が管理される不揮発性記憶媒体と、前記不揮発性記憶媒体について、前記ブロックごとの前記使用可否情報に基づき使用不可となっているブロックに対する代替のブロックのアドレスが設定されたブロックアドレス変換情報を、前記ブロックごとの前記使用可否情報から前記アドレス順に連続するブロックの中で最初に使用可となっているブロックに、前記不揮発性記憶媒体の前記ブロックアドレス変換情報を格納する格納手段と、前記不揮発性記憶媒体に対する情報の書込み及び読出しの要求時に指定されるアドレスを、前記不揮発性記憶媒体の前記ブロックのアドレスに変換する際、前記使用不可となっている前記ブロックについて、前記ブロックアドレス変換情報に基づき前記不揮発性記憶媒体上の対応するブロックのアドレスに変換するブロックアドレス変換手段と、前記不揮発性記憶媒体に対する前記情報の書込みの要求及び読出しの要求に基づき、前記不揮発性記憶媒体に対する情報の読み出し及び書き込みを制御する記憶媒体制御手段と、前記使用可否情報に基づき、前記不揮発性記憶媒体の前記ブロックアドレス変換情報を更新する際、更新前の前記ブロックアドレス変換情報を記憶した前記ブロックに対してアドレス順に連続するブロックの中で次に使用可となっているブロックに、前記更新するブロックアドレス変換情報を格納した状態で、前記更新前のブロックアドレス変換情報を格納している前記ブロックを無効化した後、前記無効化したブロックに前記更新するブロックアドレス変換情報を格納した状態にしてから、前記無効化した前記ブロックを有効化する更新手段と、を含む。
この発明によれば、ブロック単位でデータが管理される不揮発性記憶媒体を用いて、CPUなどからデータの読出し要求などがあったときに、ブロックアドレス変換手段が、CPUが指定するアドレスを、該当するブロックのアドレスに変換する。
これにより、例えば、使用が不可となった不良ブロックが生じて、該当ブロック内のデータを別のブロックに格納していても、アドレスに該当するブロックを迅速にかつ簡単に選択してデータの読出し等の処理を行うことができる。
このときに、不良ブロックの発生を考慮して、同一のデータを複数のブロックに格納する必要がないので、不揮発性記憶媒体の利用効率の低下を抑えることができる。
また、本発明は、ブロックアドレス変換手段が、予め不揮発性記憶媒体の前記ブロックごとの使用可否情報に応じて設定されているブロックアドレス変換情報に基づいてアドレス変換を行う。
すなわち、使用可否情報から書き込み、読み出し要求時に指定されるアドレスに対応するブロックのアドレスを明確にするブロックアドレス変換情報を設定する。これにより、このブロックアドレス変換情報を用いて、正確にアドレスに対応するブロックのアドレスを取得することができる。
このような本発明においては、前記ブロックアドレス変換手段が、前記ブロックアドレス変換情報に基づ、前記要求時に指定されるアドレスに対する前記ブロックのアドレスを特定する変換テーブルを作成し、該変換テーブルに基づいてアドレス変換を行うことができ、前記変換テーブルが装置起動時に作成されることが好ましい。
また、本発明において、ブロックアドレス変換情報が、格納情報に含まれる使用可否情報から使用不可となっているブロックに対する代替ブロック設定する
すなわち、本発明では、使用不可となった不良ブロックに対して代替ブロックを設定し、不良ブロックに対する代替ブロックのアドレスをブロックアドレス変換情報に含ませる。
また、本発明では、ブロックアドレス変換情報を、アドレス順で不揮発性記憶媒体の先頭のブロックに格納し使用可否情報から先頭のブロックが使用不可であるときに、アドレス順に連続するブロックの中で最初に使用可となっているブロックに、ブロックアドレス変換情報を格納する。
すなわち、ブロックアドレス変換情報の納場所として、アドレス順で最初に使用可となっているブロックを用いる。
さらに、更新手段は、ブロックアドレス変換情報が記憶されるブロックに連続するブロックの中で最初に使用可となっているブロックに、更するブロックアドレス変換情報を格納した状態で、更新前のブロックアドレス情報を格納していたブロックを無効化し、無効化したブロックに更新するブロックアドレス変換情報を格納した後、無効化したブロックを有効化する。
すなわち、ブロックアドレス変換情報を格納しているブロックの次不良ブロックでないブロックに、更新するブロックアドレス変換情報を格納した状態で、更新前のブロックアドレス変換情報を格納したブロックを無効化して更新するブロックアドレス変換情報を格納する。この状態で、無効化していたブロックを有効化することにより、ブロックアドレス情報を消失させってしまうことなく、確実に更新することができる。
以上説明したように本発明によれば、NAND型フラッシュメモリなどのブロック単位で管理される不揮発記憶媒体を用いるときに、記憶容量の実質的な低下を生じさせることなく、不良ブロックが発生しても、確実なデータの読出しなどが可能となるという優れた効果が得られる。
以下に、図面を参照しながら本発明の実施の形態を説明する。
〔第1の実施の形態〕
図1には、本発明の基本構成とするシステムコントローラ10の概略構成を示している。このシステムコントローラ10は、CPU12及び、SRAM等を用いたRAM14等を備え、CPU12とRAM14等が、コントロールバス、アドレスバス及びデータバスを含んで構成されているバス16によって接続されている。
このシステムコントローラ10は、各種の電子機器に設けられ、CPU12が予め設定されたプログラムに基づいた制御処理等を実行する。
システムコントローラ10は、ブートコードなどの各種のプログラムを記憶するROMとして、不揮発性メモリの一種であるNAND型フラッシュメモリ(Flash Memory、以下、フラッシュメモリ18とする)が設けられている。このフラッシュメモリ18では、格納されているデータの保存と共に、データの書込み及び更新等が可能となっている。
システムコントローラ10では、システム起動時に、CPU12がフラッシュメモリ18に格納されているブートコードを読み込んで、このブートコードに基づいた処理を実行することにより立ち上がる。
このフラッシュメモリ18では、予め設定されたメモリ容量(ブロックサイズ、例えば64KB)を一つのブロックとして、記憶容量に応じたブロック数が設けられている。また、フラッシュメモリ18では、ブロック単位で情報の書込み及び読み取りが行なわれるようになっている。
このシステムコントローラ10には、フラッシュメモリ18を制御するNAND型フラッシュメモリコントローラ(以下、メモリコントローラ20とする)が設けられており、フラッシュメモリ18は、メモリコントローラ20を介してバス16に接続している。
CPU12では、ブートコードなどを読み出すときに、例えばブートコードが記憶されているメモリ領域の論理アドレスを指定する。このとき、フラッシュメモリ18では、ブロック単位でデータの書込み及び読出しが行なわれることから、メモリコントローラ20では、論理アドレスに対して、フラッシュメモリ18上のブロックごとの物理アドレスを設定し、この物理アドレスに基づいてフラッシュメモリ18を制御し、CPU12が要求するデータを読み出す。
また、データ(ブートコード)は、ブロック単位で読み出されることから、CPU12では、例えば、フラッシュメモリ18から読み出したデータを、RAM14上に展開して、RAM14から展開したデータを順に読み込む。
なお、フラッシュメモリ18にSRAMが設けられているときには、RAM14に換えてフラッシュメモリ18内のSRAM上にデータを展開して、SRAMからデータを読み取るものであってもよい。
ところで、図2に示されるように、システムコントローラ10に設けているメモリコントローラ20は、NANDインターフェイスモジュール(NAND I/Fモジュール)22及び、アドレス変換部24が形成されている。
フラッシュメモリ18(図2では図示省略)に記憶されているブートコードなどのデータを読み出すときには、CPU12などのバスマスターから、制御信号、アドレス信号が入力され、これに基づいたデータ信号が出力される。
メモリコントローラ20では、アドレス変換部24にアドレス信号が入力される。このアドレス信号は、論理アドレスとなっており、アドレス変換部24では、この論理アドレスを、フラッシュメモリ18に対応する物理アドレスに変換する。このとき、フラッシュメモリ18では、ブロック単位でデータ管理が行なわれており、アドレス変換部24では、ブロックごとに設定される物理ブロックアドレスに変換して、NANDインターフェイスモジュール22へ出力する。
NANDインターフェイスモジュール22は、制御信号とアドレス変換部24から入力される物理ブロックアドレスに基づいて、フラッシュメモリ18の該当するブロックに格納されているデータを読み出す。
このように、フラッシュメモリ18では、データの読出し及び書き込みを、1ブロック分ずつ行なわれるようになっており、ここから、CPU12では、フラッシュメモリ18の物理ブロックアドレスに対応する論理アドレスを設定し、論理アドレスを、物理ブロックアドレスに変換する。
図3(A)には、論理アドレスから論理ブロックアドレスに変換するマップの一例を示しており、例えば、CPU12がこのマップを記憶し、論理アドレスを論理ブロックアドレスに変換し、アドレス変換部24で論理ブロックアドレスを物理ブロックアドレスに変換することにより、容易に論理アドレスに応じた物理ブロックのデータを読み出すことができる。
なお、このような論理アドレスを論理ブロックアドレスに変換する処理は、メモリコントローラ20で行うものであっても良い。
また、図3(B)には、アドレス変換部24で論理−物理アドレス変換に用いるLUT(Look Up table)とする変換テーブルの一例を示しており、図3(C)には、フラッシュメモリ18内の物理ブロックごとのデータマップの一例を示している。
ここで、以下では、一例としてフラッシュメモリ18の各ブロックのサイズ(記憶容量)を64KB(216Byte)として、論理ブロックアドレスが00h、01h、02h、03h、・・・の論理ブロックLBを論理ブロックLB、LB、LB、LB、・・・とし、物理ブロックアドレスが00h、01h、02h、03h、・・・の物理ブロックPBを物理ブロックPB、PB、PB、PB、・・・として説明する。
アドレス変換部24では、論理ブロックアドレスが入力されることにより、フラッシュメモリ18上の物理ブロックアドレスに変換し、NANDインターフェイスモジュール22は、この物理ブロックアドレスに基づいてデータの読出しを行なう。
これにより、例えば、論理ブロックアドレス01hの論理ブロックLB(論理ブロックLB)のデータの読出しが要求されることにより、論理ブロックLBに対応する物理ブロックPBのデータDataが読み出される。
一方、NAND型フラッシュメモリを用いているフラッシュメモリ18では、製造過程や経時的に不良ブロックが発生する可能性がある。この不良ブロックでは、データの書込みを行ったとしても、読出しの不良、データ化け等を生じ、これにより、例えば、ブートコードが格納されたブロックに不良が生じると、システムコントローラ10が立ち上がらなくなる起動不良を生じさせてしまう。
ここで、メモリコントローラ20では、不良ブロックでない(良ブロック)の物理ブロックPBのみを使用してデータを書き込む。すなわち、フラッシュメモリ18にデータを書き込むときや、データが書き込まれている物理ブロックPBから不良ブロックが検出されると、不良ブロックでなく(良ブロック)かつ空きとなっている物理ブロックPBから、不良ブロックに対するブロック(以下、代替ブロックとする)を設定し、不良ブロックに格納されているデータを、代替ブロックとなる物理ブロックPBに格納する。なお、不良ブロックの検出及び、フラッシュメモリ18内でのデータの書き換え(更新)についての一例は、別の実施形態で詳述する。
一方、代替ブロックとする物理ブロックPBにデータを格納すると、論理ブロックLBと物理ブロックPBの間で不一致が生じ、論理−物理アドレスの適正な変換が困難となる。すなわち、図3(B)の変換テーブル上で不整合が生じる。
ここから、本実施の形態では、不良ブロックとなった物理ブロックPBと不良ブロックに対する代替ブロックとする物理ブロックPBを示すテーブル(以下、代替ブロックテーブルとする)を作成し、この代替ブロックテーブルを用いて、論理ブロックアドレス−物理ブロックアドレス変換のあとに、物理ブロックアドレス−物理ブロックアドレス変換を行うか、論理ブロックアドレス−物理ブロックアドレス変換を行うようにしている。
これにより、メモリコントローラ20では、フラッシュメモリ18からのデータの読出し要求があったときには、不良ブロックに対する代替ブロックテーブルを参照しながら、要求に基づいたデータの読出しを行なう。
図4には、メモリコントローラ20で適用する代替ブロックテーブルの一例を示している。この代替ブロックテーブルでは、不良ブロックごとにテーブル番号を付与し、不良ブロックとなった物理ブロックPBと、代替ブロックとする物理ブロックPBの情報を格納している。
なお、図4では、物理ブロックPBが不良ブロックとなっており、この物理ブロックPBに対して、代替ブロックとして物理ブロックPB5が設定されていることを示している。
ここで、図5には、この代替ブロックテーブルを用いた論理ブロックアドレス−物理ブロックアドレス変換の一例を示している。なお、このフローチャートでは、論理ブロックアドレス=物理ブロックアドレスを基本としており、これにより、不良ブロックに対しては、論理ブロックアドレス≠物理ブロックアドレスとなる。
このフローチャートは、論理ブロックアドレスが入力されることにより実行され、最初のステップ100では、論理ブロックアドレスを読み込み、次のステップ102では、例えば、図3(B)に示す標準の変換テーブルを用いて論理ブロックアドレスから物理ブロックアドレスを仮設定する。これにより、最初の論理ブロックLBに対して、物理ブロックPBが仮設定される。
この後、ステップ104では、テーブル番号を初期値(テーブル番号=0)に設定し、ステップ106では、物理ブロックPBがテーブル番号に対応する不良ブロックであるか否か、仮設定した物理ブロックPBが不良ブロックであるか否かを確認する。
ここで、不良ブロックと一致しないときには、ステップ106で否定判定してステップ108へ移行し、現在のテーブル番号が最終であるか否かを確認し、テーブル番号が最終の番号であるときには、ステップ108で肯定判定して終了する。
これにより、論理ブロックLBに対して物理ブロックPBが設定されて、この論理ブロックLBに対するアドレス変換(ブロック変換)を終了する。
また、テーブル番号が最終番号でないときには、ステップ108で否定判定してステップ110へ移行し、次のテーブル番号に設定した後、ステップ106へ移行し、仮設定した物理ブロックが次のテーブルの不良ブロックの物理ブロック番号と一致するか否かを確認する。
ここで、仮設定した物理ブロックが、いずれかのテーブル番号の不良ブロックの物理ブロックと一致すると、ステップ106で肯定判定してステップ112へ移行する。
このステップ112では、該当テーブル番号の代替ブロックの物理ブロックを読み出し、代替ブロックの物理ブロックを、論理ブロックに対する物理ブロックに設定する。
すなわち、図4に示される代替ブロックテーブルが作成されているとき、論理ブロックLBのデータが要求されたときには、この論理ブロックLBに対応する物理ブロックPBが不良ブロックに設定されているので、論理ブロックLBに対しては、代替ブロックとして設定されている物理ブロックPBにアドレス変換される。
これにより、同一のデータを複数のブロックに格納することによるメモリ領域の使用効率の低下を防止しながら、各ブロックについての良否判定を順に行なうときに比べて、データを読み出すための処理時間の短縮を図ることができる。
なお、ここでは、論理アドレスではなく、論理ブロックアドレスを用いてデータの処理(読出し)を要求するように説明したが、論理アドレスでデータの読み出しを要求されるもので当ても良い。このときには、論理アドレスと1ブロック分のデータ量に基づいて物理ブロックアドレスを設定した後に、図5の処理を行うものであれば良い。たとえば、1ブロック分の記憶容量が64KB(216Byte)であるときには、入力された論理アドレスを16bit分右シフトして論理ブロックアドレスを設定し、この論理ブロックアドレスに基づいて物理ブロックを仮設定するなどの任意の方法を適用することができる。
一方、不良ブロックと、不良ブロックに対する代替ブロックのテーブルを用いて、論理−物理アドレス変換用の変換テーブル(以下、代替変換テーブルとする)を作成し、この代替変換テーブルを用いて論理−物理アドレス変換(論理−物理ブロック変換)を行なうものであっても良い。
例えば、図3(B)の変換テーブルと図4の代替ブロックテーブルから、図6(A)に示される代替変換テーブルが得られる。この代替変換テーブルでは、図6(B)に示されるように、フラッシュメモリ18上で物理ブロックPBが不良ブロックとなっており、この代替ブロックとして物理ブロック番号PBが設定されていることを示す。
これにより、例えば、論理ブロックLB1のデータが要求されることにより、物理ブロックPBの代替ブロックとなっている物理ブロックPB5に格納されているデータDataが読み出される。
一方、論理−物理ブロック変換は、書き換え可能な不揮発性メモリ(以下、ROMとする)を用いて行なうものであっても良い。このときには、例えば、図7(A)に示されるように、論理アドレス又は論理ブロックアドレスを、ROM上の物理アドレス(Address)とし、対応するフラッシュメモリ18内の物理ブロックアドレスを、該当アドレス内のデータ(Data)として記憶する。
このときには、図7(B)に示されるように、アドレス変換部24に、ROM26と、論理アドレスをROM上の物理アドレスに変換するアドレス変換手段28を設け、このアドレス変換手段28から出力されるROM26上の物理アドレスに基づいて、ROM26から該当アドレスのデータを読み出す。このときのデータがフラッシュメモリ18の物理ブロックアドレスであることにより、論理−物理アドレス変換がなされる。
このように構成することにより、例えば、メモリコントローラ20を、ROM26が含まれるASICなどの素子によって構成することができる。
このように、代替ブロックテーブルを作成して、この代替ブロックテーブル又は、代替ブロックテーブルに基づいた代替変換テーブルを用いて、論理−物理ブロック変換(論理−物理アドレス変換)を行うことにより、個々のブロックについて、例えば、図5のフローチャートに相当するソフトウェアを用いて不良ブロックとなっているか否かを確認するときと比較して、論理−物理アドレス変換を行うときの変換時間の短縮、データ読出し等の処理時間の短縮を図ることができる。
〔第2の実施の形態〕
次に本発明の第2の実施の形態を説明する。なお、第2の実施の形態の基本的構成は、前記した第1の実施の形態と同じであり、第2の実施の形態において第1の実施の形態と同一の構成には、同一の符号を付与してその説明を省略する。
図8には、第2の実施の形態に係るシステムコントローラ30の概略構成を示している。このシステムコントローラ30は、SRAMなどの記憶媒体(以下、RAM32とする)を備えており、このRAM32が、メモリコントローラ20Aに接続している。
また、システムコントローラ30には、情報の書き換えが可能な不揮発性メモリ(例えば、EEPROMなど)としてROM34が設けられている。メモリコントローラ20Aは、このROM34に代替ブロックテーブルを記憶するようにしている。
メモリコントローラ20Aは、ROM34に記憶される不良ブロックに対する代替ブロックの情報(代替ブロックテーブル)に基づいて、論理−物理アドレス変換に用いる変換テーブル(代替変換テーブル)を作成し、作成した代替変換テーブルをRAM32に格納するようにしている。
これにより、RAM32の代替変換テーブルから、論理アドレス(又は論理ブロックアドレス)に対応するフラッシュメモリ18上の物理ブロックアドレス(ないし物理ブロック)が得られるようにしている。
例えば、メモリコントローラ30では、論理−物理アドレス変換を行うアドレス変換部24(図8では図示省略、図2参照)で、論理アドレスをRAM32上の変換テーブルのアドレスに変換し、変換したアドレスに基づいたデータをRAM32から読み出すことにより、論理アドレス(論理ブロックアドレス)に対応するフラッシュメモリ18上の物理ブロックアドレス(物理ブロック)が得られる。
なお、このようなメモリコントローラ20AとRAM32は、ひとつのASIC(Application Specific Integrated Circuit)内に形成することができる。また、フラッシュメモリ(NAND型フラッシュメモリ)18には、通常の記憶領域と別に、SRAMが設けられているものがあり、このようなフラッシュメモリ18を用いるときには、このフラッシュメモリ18内のSRAMをRAM32として使用することもできる。
システムコントローラ30に設けているメモリコントローラ20Aでは、CPU12の起動に先立って、RAM32上に代替変換テーブルを作成し、CPU12からフラッシュメモリ18に記憶されているブートコードなどの読出しが要求されたときに、このRAM32に格納した代替変換テーブルを用いる。
次に、第2の実施の形態の作用として、システムコントローラ30での代替変換テーブルの作成を説明する。なお、メモリコントローラ20Aの基本的構成は、第1の実施の形態に適用したメモリコントローラ20と同等となっている。
ここで、図9(A)には、予めROM34に格納される代替ブロックテーブルの一例を示している。この代替ブロックテーブルは、ROM34上の代替ブロックテーブルのベースアドレスをベースアドレスTBTBとし、例えば、不良ブロックのアドレス(物理ブロックアドレス)と代替ブロックのアドレス(物理ブロックアドレス)を2Byteで格納している。また、この代替ブロックテーブルでは、終端の不良ブロックと代替ブロックのデータ(アドレス)を同一の値(ここでは、一例としてFFh)としている。
また、図9(B)、図9(C)には、RAM32に形成する代替変換テーブルの一例を示している。この代替変換テーブルでは、RAM32上のベースアドレスをベースアドレスLUTBとして、フラッシュメモリ18の物理ブロックPBのアドレス(ブロックアドレス)を2Byteで格納している。
さらに、システムコントローラ20Aでは、論理ブロックのアドレス(論理ブロックアドレス)が、フラッシュメモリ18の物理ブロックのアドレス(物理ブロックアドレス)としている。
このときの代替変換テーブルは、論理ブロックアドレス00hに対応する物理ブロックアドレスが格納されるRAM32上のアドレスは、「LUTB+00h」となるようにしている。なお、図9(B)は、不良ブロックが検出されていないときの代替変換テーブルを示し、図9(C)は図9(A)の代替ブロックテーブルに基づいて作成された代替変換テーブルを示している。
フラッシュメモリ18の不良ブロックが経時的に増加する可能性があるので、RAM32及びROM34には、これを見越した領域を予め確保している。例えば、一般的なNAND型フラッシュメモリでは、製造過程などで発生する初期の不良ブロックが、全記憶容量に対して2%以下であり、また、10万回の消去/書込みに対して発生する不良ブロックは1.8%以下であり、ここから、全記憶容量に対して3.8%以下の不良ブロックに対応可能となるように、RAM32及びROM34に記憶領域を確保できるようにすれば良い。
図10には、第2の実施の形態における代替変換テーブルの作成処理の概略を示している。このフローチャートでは、最初のステップ120で論理ブロックのアドレスAddの初期値(ここではAdd=00h)を設定し、ステップ122では、このアドレスAddに対応するRAM上のアドレス(LUTB+Add)に、Addを格納する。
次のステップ124では、論理ブロックのアドレスAddが代替変換テーブルのサイズ以下か否かを確認し、肯定判定されることにより、ステップ126へ移行し、次の論理ブロックのアドレスに設定する。これにより、論理ブロックのアドレスAddがAdd=01hにセットされ、この論理ブロックに対応するRAM32のアドレスに、フラッシュメモリ18上の物理ブロックのアドレスとして「01h」が格納される。
このようにして、論理ブロックのアドレスAddが代替変換テーブルのサイズに達すると、ステップ124で否定判定されて、RAM32に代替ブロックテーブルの情報を付加する前のLUTとなる代替変換テーブル(変換テーブル)が作成される。図9(B)には、このときの代替変換テーブルの概略を示している。
変換テーブルを作成するとステップ128では、アドレスAddに初期値を設定し(Add=0)、ステップ130では、代替ブロックテーブルからこのアドレスAddに対応する不良ブロックのデータと、代替ブロックのデータを読み込み、ステップ132で不良ブロックのデータと代替ブロックのデータが一致しているか否かを確認する。
ここで、不良ブロックに対して代替ブロックが設定されているときには、不良ブロックを示すデータ(アドレス)と、代替ブロックを示すデータ(アドレス)が異なることから、不一致であるときには、ステップ132で否定判定してステップ134へ移行する。このステップ134では、不良ブロックのアドレスに対応する代替変換テーブル内のデータとして、代替ブロックのデータを格納する。
これにより、図9(C)に示されるように、不良ブロックのアドレスが「01」であり、このアドレスに対応する代替ブロックのアドレスが「05h」であるときには、代替変換テーブルが形成されているRAM32のアドレス「LUTB+01h」に、代替ブロックのアドレス「05h」が格納される。
この後、図10のフローチャートでは、ステップ136で、代替ブロックテーブルの次のアドレスAddを設定し、ステップ130へ移行する。
ここで、代替ブロックテーブルでは、終端の不良ブロックと代替ブロックのデータを同じにしており、ステップ132で肯定判定されることにより、代替ブロックテーブル内の全ての不良ブロックに対する代替ブロックの設定が終了したと判断して、代替変換テーブルの作成を終了する。これにより、図9(C)に示されように、代替ブロックテーブルの情報(図9(A)参照)に基づいた代替変換テーブルが得られる。
このようにして、予め代替変換テーブルを作成することにより、CPU12がフラッシュメモリ18からブートコードを読み込んでシステムコントローラ30や、システムコントローラ30が設けられている装置を起動するときに、迅速で正確な起動が可能となる。これと共に、フラッシュメモリ18の不良ブロックが起因して、起動不良が生じてしまうことがない。
一方、前記したように、代替ブロックテーブルは、ROM34でなく、フラッシュメモリ18上に形成することができる。このとき、代替ブロックテーブルは、フラッシュメモリ18内の少なくとも一つの物理ブロックPBを用いる必要があるが、代替ブロックテーブルに用いる物理ブロックPBが不良ブロックとなると、代替ブロックテーブルを移動する必要があり、これに伴って、他の物理ブロックに格納しているデータの更新や、代替ブロックテーブルの更新が必要となる。
ここで、第3の実施の形態として、フラッシュメモリ18への代替ブロックテーブルの格納及び、フラッシュメモリ18に格納しているデータの更新、代替ブロックテーブルの更新を説明する。
〔第3の実施の形態〕
図11には、第3の実施の形態に係るシステムコントローラ40の概略構成を示している。なお、システムコントローラ40の基本構成は、前記したシステムコントローラ10又はシステムコントローラ30と同じであり、ここでは、先ず、代替ブロックテーブルを用いた論理−物理アドレス変換についての説明は省略する。
システムコントローラ40には、メモリコントローラ20Bが設けられ、このメモリコントローラ20Bにフラッシュメモリ18とRAM32が接続されている。このようなメモリコントローラ20BはRAM32と一体でASICを用いて形成することができる。
このメモリコントローラ20Bでは、代替ブロックテーブルを、フラッシュメモリ18上に形成するようにしている。
図12(A)には、第3の実施の形態でのフラッシュメモリ18のマップを示している。フラッシュメモリ18をプログラムROMとして用いるときには、先頭の物理ブロックPBに、論理ブロックLBに対応するデータ(ブートコードなどのプログラム)が格納されるようになっているが、本実施の形態では、この先頭の物理ブロックPBに、代替ブロックテーブルを格納するようにしている。また、本実施の形態では、代替ブロックテーブルは、不良ブロックを除く最初の物理ブロックPBに格納されるようにしている。
一方、代替ブロックテーブルを、先頭の物理ブロックPBに格納することにより、この物理ブロックPBに入れられるべきデータDataは、終端の物理ブロックPBに格納される。すなわち、フラッシュメモリ18に、物理ブロックPBから物理ブロックPBまでのN+1個の物理ブロックPBが設けられているときには、論理ブロックLBに対応するデータDataが、物理ブロックPBに格納されるようにしている。
図12(B)には、このときの代替ブロックテーブルを示している。この代替ブロックテーブルでは、実際のデータが格納されていない物理ブロックPBを不良ブロックとみなして、代替ブロックとして物理ブロックPBを割り当てている。
ここで、例えば、代替ブロックテーブルの更新などを行ったときに、代替ブロックテーブルを格納していた物理ブロックPBが不良ブロックとなると、代替ブロックテーブルを次の物理ブロックPBに格納する。このときに、格納先の物理ブロックPBに格納されているデータを、終端側の空き物理ブロックPBへ移動する。
すなわち、図12(C)に示されるように、物理ブロックPBが不良ブロックとなると、代替ブロックテーブルを次の物理ブロックPBに格納する。このとき、この物理ブロックPBに格納されていたデータDataを、終端側の空きブロックとなっている物理ブロックPBN−1へ移動する。
これにより、新たに物理ブロックPBに格納される代替ブロックテーブルは、図12(D)に示されるように、物理ブロックPB、PBを不良ブロックとみなして、物理ブロックPB、PBのそれぞれの代替ブロックとして物理ブロックPB、PBN−1が設定される。
さらに、図12(E)に示されるように、物理ブロックPB、PBが不良ブロックと判定されたときには、代替ブロックテーブルを、良ブロックの最初となる物理ブロックPBに格納し、この物理ブロックPBに格納されていたデータDataを物理ブロックPBN−2へ移動する。
これに伴い、図12(F)に示されるように、物理ブロックPB、PBを不良ブロックとすると共に、物理ブロックPBを不良ブロックとみなした代替ブロックテーブルが作成される。
一方、フラッシュメモリ18では、NAND型フラッシュメモリルを用いており、図13(A)に示されるように、NAND型フラッシュメモリは、管理用の単位ブロックが、メインエリア42とスペアエリア44によって構成されており、メインエリア42には、データが格納され、スペアエリア44には、管理情報が格納される。なお、ここでは、2つのメインエリア42A、42Bと、スペアエリア44A、44Bによって一つの単位ブロックが形成されており、メインエリア42Aの管理情報がスペアエリア44Aに格納され、メインエリア42Bの管理情報がスペアエリア44Bに格納される。
図13(B)には、スペアエリア44の概略構成を示している。スペアエリア44は、16Byteで構成され、8Byte〜10Byteには、スペアエリア44対応するメインエリア42のECCコードが格納され、11〜12Byteにスペアエリア44のECCコードが格納されるようになっている。
また、このスペアエリア44では、0〜1の2Byteの領域に、スペアエリア44が対応するメインエリア42が不良ブロックであるか否かを判断可能とする情報(Invalid Block Info)が格納されている。
ここから、フラッシュメモリ18では、スペアエリア44の最初の2Byte分の情報を読み出すことにより、対応するメインエリア42(物理ブロックPB)が不良ブロックである否かを判断することができ、不良ブロックと判断されたメインエリア42が形成する物理ブロックPBに対して代替ブロックを設定すれば良い。
なお、この情報(Invalid Block Info)は、格納されているデータが「FFFFh」であるときにのみ良ブロックであり、これ以外の情報(≠FFFFh)であるときには不良ブロックであることを示す。
一方、スペアエリア44では、2〜4の3Byte及び14、15の2Byte分が、ユーザーエリア(Usable Area)となっており、実際にフラッシュメモリ18を使用するときに、フラグ等の利用に割り当てることができるようになっている。
ここで、本実施の形態では、14、15の2Byte分を有効判定エリア46として、該当するメインエリア42に格納されているデータが有効に設定されているか無効に設定されているかの情報(Valid Data Info)を格納する。
このとき、メインエリア42のデータが有効とするときに、有効判定エリア46のデータを「00FFh」とし、利用判定エリア46のデータが、これ以外の値(≠00FFh)であるときには、メインエリア42のデータを無効とするように規定している。
図14には、このように設定したときのスペアエリア44の状態と、これに対する有効/無効をまとめて示している。この図14に示されるように、本実施の形態では、スペアエリア44の先頭の2Byte(0−1Byte)のデータによって、メインエリア42に格納される代替ブロックテーブルなどのデータが無効な不良ブロックか否かを判定し、不良ブロックであるときには、メインエリア42のデータは無効となる。また、不良ブロックでないとき(良ブロックであるとき)には、有効判定エリア46の情報(Valid Data Info)から、メインエリア42のデータを有効とするか無効とするかの設定が可能となっている。
なお、フラッシュメモリ18(NAND型フラッシュメモリ)では、初期化を行なうときに、全てのbitのデータを「1」とするようになっており、スペアエリア44内のユーザーエリアのデータが初期化されることにより、有効判定エリア46は、「FFFFh」となり、メインエリア42内のデータを無効としている。
メモリコントローラ20Bは、フラッシュメモリ18内に格納している代替ブロックテーブルの更新や、物理ブロックPB間でのデータの移動、データの更新(プログラムアップデート)などを行なうときに、スペアエリア44に設定している有効判定エリア46を用いる。
ここで、物理ブロックPBを用いて、物理ブロックPBに格納されている代替ブロックテーブルTBTDを更新して、更新した代替ブロックテーブルTBTDを格納する。このときに、更新した代替ブロックテーブルTBTDを、一旦、物理ブロックPB格納した後、物理ブロックPBへ移動するものとしている。
図15(A)、図15(B)及び図15(C)に示されるように、このときの初期状態(更新前の状態、図15(A)のステップ140)では、物理ブロックPBのメインエリア42に代替ブロックテーブルTBTDが格納され、有効判定エリア46の情報(Valid Data Info)は「00FFh」となっている(図15(B)参照)。
ここで、先ず、ステップ142で物理ブロックPBのデータを消去(初期化)する。これにより、物理ブロックPBのメインエリア42では、各Byteのデータが「FFh」となると共に、有効判定エリア46のデータが「FFFFh」となる(図15(C)参照)。
次に、ステップ144では、更新した代替ブロックテーブルTBTDを物理ブロックPBのメインエリア42に格納すると共に、物理ブロックPBの有効判定エリア46に、物理ブロックPBのデータを有効とする情報「00FFh」を書き込む(図15(C)参照)。
このとき、物理ブロックBLのメインエリア42に、代替ブロックテーブルTBTDが残っており、また、有効判定エリア46のデータが「00FFh」となっていることにより、物理ブロックPB、PBの何れも有効となっているが、代替ブロックデータを、最初の物理ブロックPBに格納するとした設定により、この時点では、物理ブロックPBに格納している代替ブロックテーブルTBTDが有効となっている。
この後、物理ブロックPBへ代替ブロックテーブルTBTDを格納する。物理ブロックPBへ代替ブロックテーブルTBTDを格納するときには、先ず、ステップ146で物理ブロックPBの有効判定エリア46に、物理ブロックPBのデータを無効とするデータ(例えば、「0000h」)を書き込む。
この有効判定エリア46へデータの書込みを行なうときには、所定のデータをオーバーライトする。これにより、書込み途中で電源が遮断されたとしても、書込みが完了してなければ、物理ブロックPBの代替ブロックテーブルTBTDが有効となっており、書込みが完了していれば、その瞬間に、物理ブロックPBのデータが無効となり、物理ブロックPBのデータ(代替ブロックテーブルTBTD)が有効となるので、代替ブロックテーブルが消失して、システムコントローラ40が起動しなくなってしまうのを確実に防止することができる。
次に、ステップ148では、物理ブロックPBのデータを消去し、ステップ150で、物理ブロックPBのメインエリア42に、代替ブロックテーブルTBTDを格納すると共に、物理ブロックPBの有効判定エリア46に、物理ブロックPBを有効とするデータ「00FFh」を書き込む。
ここで、物理ブロックPBの有効判定エリア46に「00FFh」が書き込まれることにより、物理ブロックPBに格納した代替ブロックデータTBTDが有効となり、更新された代替ブロックテーブルTBTDを用いた論理−物理アドレス変換が可能となる。
このようにして、代替ブロックテーブルTBTDの更新を行うことにより、更新途中で、システムダウンや電源が遮断されるなどの支障が生じても、更新前の代替ブロックテーブルTBTD又は、更新された代替ブロックテーブルTBTDの何れかが必ず有効となる。なお、代替ブロックテーブルTBTDが有効となったままであれば、起動時に、再度、代替ブロックテーブルTBTDの更新を行うようにすれば良い。
一方、以上の説明では、代替ブロックテーブルの更新を例に説明したが、これに限らず、フラッシュメモリ18の各物理ブロックPBに格納しているデータの更新、ソフトウェアのアップデートなどに適用することもできる。
ここで、図16及び図17を参照しながら、フラッシュメモリ18に格納しているソフトウェアの更新を説明する。なお、図16(A)に示されるように、ここでは、一例として物理ブロックPBに格納されているソフトウェアSWを更新するものとし、このときに、物理ブロックPBが不良ブロック、物理ブロックPBが空きとなっており、代替ブロックテーブルTBTDは、別に設けているROM(例えばROM34)に格納されているものとしている。
また、このソフトウェアSWは、ブートコードなどであり、図17(A)に示されるように、CPU12が起動時に最初に読み取るリセットポインタとなる論理ブロックLBに対応する物理ブロックPBにソフトウェアSWが格納されるようになっている。
図16(A)に示すように、このような条件でソフトウェアSWのアップデートを行なうときのフラッシュメモリ18は、物理ブロックPBにソフトウェアSWが格納され、物理ブロックPBにDataが格納されている。また、物理ブロックPB、PBには、Data、Dataが格納されている。
図16(B)には、このときの代替ブロックテーブルTBTDを示しており、この代替ブロックテーブルTBTDでは、物理ブロックPBを不良ブロックとして、この物理ブロックPBの代替ブロックとして物理ブロックPBが設定されている。
図17(A)には、この代替ブロックテーブルTSTDに基づいて設定される代替変換テーブルLUTDを示しており、この代替変換テーブルLUTDでは、リセットポインタとなる論理ブロックLBを物理ブロックPBに変換するように設定されていると共に、論理ブロックLB、LB、LBがそれぞれ物理ブロックPB、PB、PBに変換されるように設定されている。
ここで、図16(C)に示されるように、最初は、物理ブロックPBに格納されているソフトウェアSWを、空き(未使用状態)となっている物理ブロックPBにコピーする。これにより、物理ブロックPB、PBにソフトウェアSWが格納された状態となっており、このときに、代替ブロックテーブルTBTDが変更されず、論理ブロックLBに対する物理ブロックPBとして物理ブロックPBが設定されていることにより、物理ブロックPBに格納されているソフトウェアSWが有効となっている。
ここ状態で、図16(D)に示されるように、代替ブロックテーブルTBTDを更新し、物理ブロックPBの代替ブロックとして物理ブロックPBを設定するように代替ブロックテーブルの更新を行う。これにより、代替変換テーブルLUTDが更新される。
図17(B)には、このときに更新された代替変換テーブルLUTDを示しており、この代替変換テーブルLUTDでは、論理ブロックLBを、物理ブロックPBにアドレス変換されるように設定される。
この後、図17(E)に示されるように、物理ブロックPBに格納されているソフトウェアSWを消去し(物理ブロックPBの初期化)、次に、図17(F)に示されるように、物理ブロックPBに新たなソフトウェアSWを格納する。
物理ブロックPBへ新たなソフトウェアSWの格納が終了すると、図17(G)に示されるように、物理ブロックPBを有効とするように代替ブロックテーブルTBTDを更新する。すなわち、物理ブロックPBを代替ブロックテーブルから消去し、代替ブロックテーブルTBTDをソフトウェアSWの更新前に戻す(図16(B)参照)。
これにより、図17(C)に示されるように、代替変換テーブルLUTDが更新され、論理ブロックPBが、更新したソフトウェアSWを格納した物理ブロックPBに変換されるように設定される。
このようにして、ソフトウェアSWの更新が行われることにより、例えば、更新途中でシステムコントローラ40の電源が遮断されるなどしても、ソフトウェアSWが消滅してしまうことが無く、また、CPU12が再起動した時に、少なくとも更新前のソフトウェアSWを確実に読み取ることができるので、CPU12やシステムコントローラ40、システムコントローラ40が設けられている装置に起動不良が生じてしまうことがない。
なお、以上説明した本実施の形態は、本発明の構成を限定するものではない。本発明は、記憶媒体としてNAND型フラッシュメモリ18を例に説明したが、本発明はこれに限るものではなく、例えば、ハードディスクドライブ(HDD)など、書き換え可能な不揮発性記憶媒体であり、かつ、ブロック単位でデータの管理が行なわれる任意の構成の記憶媒体及び、記憶媒体を用いた任意のシステムに適用することができる。
第1の実施の形態に係るシステムコントローラの一例を示す概略構成図である。 メインコントローラの一例を示す概略構成図である。 (A)はCPUなどに設けられる論理アドレスに対する論理ブロックアドレスのマップの一例を示す概略図、(B)は論理−物理アドレス変換に用いる変換テーブル(LUT)の一例を示し、(C)は(B)の変換テーブルに対応するフラッシュメモリのマップを示す概略図である。 第1の実施の形態に係る代替ブロックテーブルの一例を示す概略図である。 第1の実施の形態に係る論理−物理アドレス変換の一例を示す流れ図である。 (A)は変換テーブルと代替ブロックテーブルに基づいて作成される代替変換テーブルの一例を示す概略図、(B)は(A)に対応したフラッシュメモリのマップを示す概略図である。 (A)はROMに代替変換テーブルを形成する時のマップの一例を示す概略図、(B)は(A)のRAMを用いるときのアドレス変換部の構成の一例を示す概略図である。 第2の実施の形態に係るシステムコントローラの一例を示す概略図である。 (A)はROMに形成する代替ブロックテーブルの一例を示す概略図、(B)はRAMに作成される変換テーブルを示す概略図、(C)は(A)及び(B)からRAMに作成される代替変換テーブルを示す概略図である。 第2の実施の形態に係る代替変換テーブルの作成の一例を示す流れ図である。 第3の実施の形態に係るシステムコントローラの一例を示す概略構成図である。 (A)、(C)及び(E)は代替ブロックテーブルを設けたときのフラッシュメモリのマップを示す概略図、(B)、(D)及び(F)は、(A)、(C)及び(D)に対応する代替ブロックテーブルを示す概略図である。 (A)はフラッシュメモリに形成される物理ブロックの一例を示す概略図、(B)は物理ブロックに形成されるスペアエリアの構成を示す概略図である。 スペアエリアの情報に基づいた物理ブロックの有効/無効を示す図表である。 (A)はフラッシュメモリに設けた代替ブロックテーブルの更新処理の一例を示す流れ図、(B)は(A)の処理に伴う物理ブロックPBの状態変化を示す概略図、(C)は(A)の処理に伴う物理ブロックPBの状態変化を示す概略図である。 (A)、(C)、(E)及び(F)はソフトウェアの更新を行うときのフラッシュメモリのマップを示す概略図、(B)は(A)に対応する代替ブロックテーブルを示す概略図、(D)は(C)に対応する代替ブロックテーブルを示す概略図、(G)は(F)に対応する代替ブロックテーブルを示す概略図である。 (A)は図16(B)に対応する代替変換テーブルを示す概略図、(B)は図16(D)に対応する代替変換テーブルを示す概略図、(C)は図16(G)に対応する代替変換テーブルを示す概略図である。
符号の説明
10、30、40 システムコントローラ
12 CPU
18 フラッシュメモリ(不揮発性記憶媒体)
20、20A、20B メモリコントローラ(記憶媒体制御手段、更新手段、ブロックアドレス変換手段)
22 NANDインターフェイスモジュール
24 アドレス変換部(ブロックアドレス変換手段)
32 RAM
34 ROM(記憶手段)
42 メインエリア
44 スペアエリア
46 有効エリア

Claims (3)

  1. 予め設定された容量を1つのブロックとして総記憶容量に応じた数のブロックがアドレス順に設定され、ブロック単位でデータの書き込み及び読み出しが行なわれると共に使用可否情報を含む格納情報が管理される不揮発性記憶媒体と、
    前記不揮発性記憶媒体について、前記ブロックごとの前記使用可否情報に基づき使用不可となっているブロックに対する代替のブロックのアドレスが設定されたブロックアドレス変換情報を、前記ブロックごとの前記使用可否情報から前記アドレス順に連続するブロックの中で最初に使用可となっているブロックに、前記不揮発性記憶媒体の前記ブロックアドレス変換情報を格納する格納手段と、
    前記不揮発性記憶媒体に対する情報の書込み及び読出しの要求時に指定されるアドレスを、前記不揮発性記憶媒体の前記ブロックのアドレスに変換する際、前記使用不可となっている前記ブロックについて、前記ブロックアドレス変換情報に基づき前記不揮発性記憶媒体上の対応するブロックのアドレスに変換するブロックアドレス変換手段と、
    前記不揮発性記憶媒体に対する前記情報の書込みの要求及び読出しの要求に基づき、前記不揮発性記憶媒体に対する情報の読み出し及び書き込みを制御する記憶媒体制御手段と、
    前記使用可否情報に基づき、前記不揮発性記憶媒体の前記ブロックアドレス変換情報を更新する際、更新前の前記ブロックアドレス変換情報を記憶した前記ブロックに対してアドレス順に連続するブロックの中で次に使用可となっているブロックに、前記更新するブロックアドレス変換情報を格納した状態で、前記更新前のブロックアドレス変換情報を格納している前記ブロックを無効化した後、前記無効化したブロックに前記更新するブロックアドレス変換情報を格納した状態にしてから、前記無効化した前記ブロックを有効化する更新手段と、
    を含む記憶媒体制御装置。
  2. 前記ブロックアドレス変換手段が、前記ブロックアドレス変換情報に基づき、前記要求時に指定されるアドレスに対応する前記ブロックのアドレスを特定する変換テーブルを作成し、該変換テーブルに基づいてアドレス変換を行う請求項1に記載の記憶媒体制御装置。
  3. 前記変換テーブルが装置起動時に作成される請求項2に記載の記憶媒体制御装置。
JP2006301900A 2006-11-07 2006-11-07 記憶媒体制御装置 Expired - Fee Related JP5066894B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006301900A JP5066894B2 (ja) 2006-11-07 2006-11-07 記憶媒体制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006301900A JP5066894B2 (ja) 2006-11-07 2006-11-07 記憶媒体制御装置

Publications (2)

Publication Number Publication Date
JP2008117299A JP2008117299A (ja) 2008-05-22
JP5066894B2 true JP5066894B2 (ja) 2012-11-07

Family

ID=39503143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006301900A Expired - Fee Related JP5066894B2 (ja) 2006-11-07 2006-11-07 記憶媒体制御装置

Country Status (1)

Country Link
JP (1) JP5066894B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5559616B2 (ja) * 2010-06-17 2014-07-23 ラピスセミコンダクタ株式会社 半導体メモリ装置
US9128822B2 (en) * 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
JP5748887B2 (ja) * 2014-06-06 2015-07-15 ラピスセミコンダクタ株式会社 半導体メモリ装置
JP6708762B1 (ja) * 2019-01-29 2020-06-10 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR20230010754A (ko) * 2021-02-08 2023-01-19 양쯔 메모리 테크놀로지스 씨오., 엘티디. L2P(Logical to Physical) 테이블의 캐싱을 위한 온-다이 SRAM(Static Random Access Memory)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000285001A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 半導体フラッシュメモリ装置及びその制御方法
JP2001142774A (ja) * 1999-11-11 2001-05-25 Toshiba Corp メモリカード及び同カードに適用されるアドレス変換方法
JP4654531B2 (ja) * 2001-04-20 2011-03-23 パナソニック電工株式会社 ブロック消去型記憶媒体の管理装置
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
JP4534498B2 (ja) * 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
KR100533683B1 (ko) * 2004-02-03 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법

Also Published As

Publication number Publication date
JP2008117299A (ja) 2008-05-22

Similar Documents

Publication Publication Date Title
KR100531192B1 (ko) 비휘발성 메모리의 제어방법
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US6687784B2 (en) Controller for controlling nonvolatile memory unit
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20060282610A1 (en) Flash memory with programmable endurance
US8239612B2 (en) Memory controller, flash memory system with memory controller, and control method of flash memory
US20110238629A1 (en) Uncorrectable error handling schemes for non-volatile memories
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
US8775758B2 (en) Memory device and method for performing a write-abort-safe firmware update
TW201232258A (en) Memory system and operation method thereof
JP4301301B2 (ja) 不揮発性半導体記憶装置およびその管理方法
US11314586B2 (en) Data storage device and non-volatile memory control method
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5066894B2 (ja) 記憶媒体制御装置
JP2007280108A (ja) 記憶媒体制御装置、記憶媒体制御方法、プログラム
JP4242245B2 (ja) フラッシュrom制御装置
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11218164B2 (en) Data storage device and non-volatile memory control method
JP4794530B2 (ja) 半導体装置および携帯電話
US6646917B1 (en) Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2005115562A (ja) フラッシュrom制御装置
JP4840415B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2004326523A (ja) 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法
JP4332132B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120404

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5066894

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees