JP3565687B2 - 半導体記憶装置およびその制御方法 - Google Patents
半導体記憶装置およびその制御方法 Download PDFInfo
- Publication number
- JP3565687B2 JP3565687B2 JP21172697A JP21172697A JP3565687B2 JP 3565687 B2 JP3565687 B2 JP 3565687B2 JP 21172697 A JP21172697 A JP 21172697A JP 21172697 A JP21172697 A JP 21172697A JP 3565687 B2 JP3565687 B2 JP 3565687B2
- Authority
- JP
- Japan
- Prior art keywords
- sector
- write
- deterioration
- data
- sectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
この発明は、例えばフラッシュメモリを用いた半導体ディスク装置等の半導体記憶装置およびその制御方法に関するものであり、より詳細には、メモリ素子が劣化した場合に縮退運転を行う半導体記憶装置およびその制御方法に関するものである。
【0002】
【従来の技術】
従来、半導体装置として、例えばフラッシュメモリを用いた半導体ディスク装置が知られている。
【0003】
かかる半導体ディスク装置に使用されるフラッシュメモリ素子は、書き込みや読み出しを繰り返すことによってビットが劣化してしまう場合がある。そして、フラッシュメモリ素子のビットが劣化した場合には、そのビットに対してはそれ以降の書き込みや読み出しができなくなってしまい、このため、読み出し時にデータエラー(すなわち、書き込みデータと読み出しデータとが一致しない現象)が発生する。
【0004】
これに対して、フラッシュメモリ素子から読み出したデータが正しいか否かを検出する制御技術として、ECC(Error Correction Code) 制御と称される技術が、従来より知られている。この技術によれば、フラッシュメモリ素子からデータを読み出した際にデータエラーの発生の有無を検出することができ、さらに、検出されたデータエラーがCOR(Correctable Error ;すなわち訂正可能なデータエラー)或いはUNC(Uncorrectable Error ;すなわち訂正不可能なデータエラー)のどちらであるのかを判断することができる。そして、検出されたデータエラーがCORであった場合には、その読み出しデータを訂正することができる。
【0005】
従来の半導体ディスク装置では、ECC制御によってフラッシュメモリ素子のビットの劣化が検出された場合には、そのビットが属するセクタを使用禁止とし、かかるセクタ(以下「劣化セクタ」と記す)に代えて予め設けられた代替セクタを使用することとしていた。
【0006】
【発明が解決しようとする課題】
図12は、従来の半導体ディスク装置の一構成例を概念的に示すブロック図である。また、図13は、かかる半導体ディスク装置の動作を説明するためのフローチャートである。
【0007】
半導体ディスク装置1200の外部からディスクコントローラ1220に入力されたコマンド情報およびアドレス情報は、ホストインタフェース1221およびマイクロCPUインタフェース1222を介して、マイクロコントローラ部1230内のマイクロCPU(Central Processing Unit )1231に送られる(S1301)。
【0008】
そして、このコマンド情報が書き込み命令である場合には(S1302)、マイクロCPU1231は、外部から入力された主データを、ホストインタフェース1221を介して、データバッファ1223へ入力する(S1303)。そして、マイクロCPU1231からはコマンド情報およびアドレス情報が、データバッファ1223からは主データが、それぞれフラッシュメモリインタフェース1225に送られる(S1304)。続いて、ECC制御部1226が、フラッシュメモリインタフェース1225から主データを取り込んでECCデータを作成し、このECCデータをフラッシュメモリインタフェース1225に送る(S1305)。そして、このフラッシュメモリインタフェース1225内で、シリアルデータが作成される(S1306)。
【0009】
図14は、フラッシュメモリインタフェース1225内で作成されるシリアルデータの構成を示す概念図である。同図に示したように、このシリアルデータは、例えば4ビットのアドレス情報と、例えば8ビットのコマンド情報と、例えば512バイトの主データと、例えば11バイトのECCデータとから構成される。
【0010】
かかるシリアルデータは、フラッシュメモリインタフェース1225から出力されて、フラッシュメモリ部1210内の10個のメモリ素子M(0)〜M(9)にそれぞれ並列に入力される。そして、各メモリ素子M(0)〜M(9)は、このシリアルデータ内のアドレス情報が自己の記憶領域内のセクタに対応するものである場合には、そのセクタにシリアルデータを書き込む(S1307)。
【0011】
図15は、各メモリ素子M(0)〜M(9)内のセクタ構成を示す概念図である。同図に示したように、各メモリ素子M(0)〜M(9)は、m+1個のセクタS(0)〜S(m)を備えている。そして、上述のシリアルデータは、これらの各セクタS(0)〜S(m)のうち、アドレス情報で指定されたセクタに記憶される。
【0012】
一方、ステップS1302において、マイクロCPU1231に取り込まれたコマンド情報が読み出し命令である場合には、このマイクロCPU1231は、アドレス情報をフラッシュメモリインタフェース1225に転送する(S1308)。そして、フラッシュメモリインタフェース1225は、このアドレスに対応するセクタに記憶されたシリアルデータを読み出す(S1309)。続いて、ECC制御部1226が、このシリアルデータ中の主データおよびECCデータをフラッシュメモリインタフェース1225から読み出して、データエラーの発生の有無を検出する(S1310)。そして、データエラーのうちCORの発生が検出されたときは、そのエラーを訂正して、フラッシュメモリインタフェース1225に送る(S1310)。一方、UNCが検出されたときは、マイクロCPU1231は、データがUNCであることを示すフラグ(以下「エラーフラグ」と記す)をセットする。その後、データ転送制御部1224の制御により、フラッシュメモリインタフェース1225内のデータ(CORが発生した場合には訂正後のデータ)が、データバッファ1223およびホストインタフェース1221を介して、半導体ディスク装置1200の外部に出力される(S1311)。
【0013】
また、この半導体ディスク装置1200では、データエラー(CORまたはUNC)が所定回数以上検出されたセクタを、劣化セクタであると判断する。そして、その後の書き込みでは、その劣化セクタに代えて、代替セクタD(0)〜D(n)(図15参照)のいずれかを使用する。ここで、代替セクタD(0)〜D(n)を使用することとした場合には、管理情報領域1501(図15参照)に、かかる劣化セクタのアドレス情報とともに、この劣化セクタに代えて使用される代替セクタのアドレス情報が記憶される(S1312)。これにより、その後の書き込み処理において、外部からディスクコントローラ1220に入力されたアドレス情報が劣化セクタのアドレスである場合には、この劣化セクタに対応する代替セクタにシリアルデータが書き込まれる。
【0014】
このように、従来の半導体ディスク装置1200では、劣化セクタが発生した場合には、この劣化セクタに代えて代替セクタを使用することにより、装置の信頼性の維持を図っていた。
【0015】
しかしながら、かかる半導体ディスク装置1200では、上述のように、訂正不可能なデータエラー(すなわちUNC)が発生する場合があるので、一個のメモリ素子内の多数のセクタがほぼ同時に劣化したような場合には大量のデータエラーが同時に発生し、データが消失することとなる。このため、従来の半導体ディスク装置1200には、装置の信頼性が不十分であるという欠点があった。
【0016】
また、この半導体ディスク装置1200では、いずれか1個のメモリ素子における劣化セクタの数が代替セクタの数を超えた場合には、劣化セクタに対する代替ができなくなってしまい、これにより素子全体が使用できなくなってしまう。このため、このようなメモリ素子では、劣化していないセクタも使用できなくなってしまうので、素子全体としての寿命も非常に短くなってしまうという欠点があった。
【0017】
なお、ここではフラッシュメモリを用いた半導体ディスク装置を例にとって説明したが、このような欠点は、劣化が問題となるメモリ素子を使用しているものであれば他の種類の半導体記憶装置でも生じ得る。
【0018】
以上のような理由により、劣化が問題となるメモリ素子を使用した半導体記憶装置の信頼性を向上させ且つ寿命を長くするための技術が嘱望されていた。
【0019】
【課題を解決するための手段】
(1)第1の発明は、通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいてメモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置に関する。
そして、メモリ素子の書き込み・読み出しエラーの発生状況をセクタ毎に記憶するデータエラー情報管理テーブルと、このデータエラー情報管理テーブルに記憶された書き込み・読み出しエラーの発生状況に基づいてセクタの劣化を検出し且つ劣化したセクタの個数に基づいてメモリ素子の劣化を検出する劣化検出部と、劣化検出部によって劣化が検出されたセクタのアドレス情報をいずれかの予備セクタのアドレス情報に変換することによってこの劣化セクタが使用されないようにするためにメモリ素子毎に設けられた管理情報領域と、劣化検出部によって劣化が検出されたメモリ素子が使用されないようにアドレス情報を変換するアドレス変換テーブルとを備え、書き込み・読み出しエラーの発生状況が、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方であることを特徴とする。
【0020】
第1の発明によれば、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方に基づいて劣化を検出するとしたので、1個のメモリ素子全体におけるエラー発生数で判断する場合よりもデータの喪失を有効に防止することができ、且つ、非劣化セクタが多数個残っているにも拘わらずメモリ素子全体の使用が停止されるという不都合を回避できる。
【0021】
(2)第2の発明は、通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいてメモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置に関する。
そして、メモリ素子の書き込み・読み出しエラーの発生状況をセクタ毎に記憶するデータエラー情報管理テーブルと、このデータエラー情報管理テーブルに記憶された書き込み・読み出しエラーの発生状況に基づいてセクタの劣化を検出し且つ劣化したセクタの個数に基づいてメモリ素子の劣化を検出する劣化検出部と、劣化検出部によって劣化が検出されたセクタのアドレス情報をいずれかの予備セクタのアドレス情報に変換することによってこの劣化セクタが使用されないようにするために、メモリ素子毎に設けられた管理情報領域と、劣化検出部によって劣化が検出されたメモリ素子が使用されないようにアドレス情報を変換するアドレス変換テーブルとを備え、書き込み・読み出しエラーの発生状況が、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方であることを特徴とする。
【0022】
第2の発明によれば、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方に基づいて劣化を検出するとしたので、1個のメモリ素子全体におけるエラー発生数で判断する場合よりもデータの喪失を有効に防止することができ、且つ、非劣化セクタが多数個残っているにも拘わらずメモリ素子全体の使用が停止されるという不都合を回避できる。
【0023】
(3)第3の発明は、通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいてメモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置の制御方法に関する。
そして、メモリ素子の書き込み・読み出しエラーの発生状況をデータエラー情報管理テーブルに記憶する第1のステップと、この第1のステップでデータエラー情報管理テーブルに記憶された書き込み・読み出しエラーの発生状況に基づいて劣化検出部がセクタの劣化を検出する第2のステップと、劣化検出部によって劣化が検出されたセクタのアドレス情報をいずれかの予備セクタのアドレス情報に変換することによってこの劣化セクタが使用されないようにするためにメモリ素子毎に設けられた管理情報領域を書き換える第3のステップと、劣化したセクタの個数に基づいて劣化検出部がメモリ素子の劣化を検出する第4のステップと、この第4のステップで劣化検出部が劣化を検出したメモリ素子が使用されないようにアドレス変換テーブルのアドレス情報を書き換える第5のステップとを備え、書き込み・読み出しエラーの発生状況が、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方であることを特徴とする。
【0024】
第3の発明によれば、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方に基づいて劣化を検出するとしたので、1個のメモリ素子全体におけるエラー発生数で判断する場合よりもデータの喪失を有効に防止することができ、且つ、非劣化セクタが多数個残っているにも拘わらずメモリ素子全体の使用が停止されるという不都合を回避できる。
【0025】
(4)第4の発明は、通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいてメモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置の制御方法に関する。
そして、メモリ素子の書き込み・読み出しエラーの発生状況をデータエラー情報管理テーブルに記憶する第1のステップと、この第1のステップでデータエラー情報管理テーブルに記憶された書き込み・読み出しエラーの発生状況に基づいて、劣化検出部がセクタの劣化を検出する第2のステップと、劣化検出部によって劣化が検出されたセクタのアドレス情報をいずれかの予備セクタのアドレス情報に変換することによってこの劣化セクタが使用されないようにするためにメモリ素子毎に設けられた管理情報領域を書き換える第3のステップと、劣化したセクタの個数に基づいて、劣化検出部がメモリ素子の劣化を検出する第4のステップと、この第4のステップで劣化検出部が劣化を検出したメモリ素子が使用されないように、アドレス変換テーブルのアドレス情報を書き換える第5のステップとを備え、書き込み・読み出しエラーの発生状況が、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方であることを特徴とする。
【0026】
第4の発明によれば、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方に基づいて劣化を検出するとしたので、1個のメモリ素子全体におけるエラー発生数で判断する場合よりもデータの喪失を有効に防止することができ、且つ、非劣化セクタが多数個残っているにも拘わらずメモリ素子全体の使用が停止されるという不都合を回避できる。
【0029】
【発明の実施の形態】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、この発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎないことを理解されたい。
【0030】
第1の実施の形態
まず、この発明の第1の実施の形態に係る半導体記憶装置およびその制御方法について、フラッシュメモリを用いた半導体ディスク装置を例にとって説明する。
【0031】
図1は、この実施の形態に係る半導体ディスク装置の構成を概略的に示すブロック図である。
【0032】
同図に示したように、この半導体ディスク装置100は、フラッシュメモリ部110と、ディスクコントローラ部120と、マイクロコントローラ部130とを備えている。
【0033】
フラッシュメモリ部110は、10個のメモリ素子M(0)〜M(9)を備えている。これらのメモリ素子M(0)〜M(9)は、それぞれ、外部から入力されるシステムクロック信号(図示せず)のタイミングに従い、フラッシュメモリインタフェース125(後述)との間でシリアルデータの送受信を行う。なお、各メモリ素子M(0)〜M(9)のセクタ構成は、従来の場合(図15参照)と同様であるので説明を省略する。
【0034】
ディスクコントローラ部120において、ホストインタフェース121は、半導体ディスク装置100の外部との間でアドレス情報やコマンド情報、主データ等を転送するためのインタフェースである。また、マイクロCPUインタフェース122は、ディスクコントローラ部120とマイクロコントローラ部130(後述)との間でアドレス情報やコマンド情報、制御信号等を転送するためのインタフェースである。
【0035】
データバッファ123は、フラッシュメモリインタフェース125とホストインタフェース121との間で主データ等を転送するためのバッファである。
【0036】
データ転送制御部124は、フラッシュメモリインタフェース125がデータバッファ123およびホストインタフェース121を介して外部とのデータ転送を行う際に、このフラッシュメモリインタフェース125の動作を制御する。
【0037】
フラッシュメモリインタフェース125は、データ書き込み時には、アドレス情報、コマンド情報、主データおよびECCデータを用いてシリアルデータを作成し、フラッシュメモリ部110に送る。また、データ読み出し時には、フラッシュメモリ部110からシリアルデータを入力して主データおよびECCデータを抽出してECC制御部126(後述)に送る動作や、かかる主データ(またはECC制御部126から入力した訂正後の主データ)をデータバッファ123に対して出力する動作等を行う。なお、シリアルデータの構成は、従来の場合(図14参照)と同様であるので、説明を省略する。
【0038】
ECC制御部126は、データ書き込み時には、フラッシュメモリインタフェース125から書き込みデータを取り込んでECCデータを作成し、フラッシュメモリインタフェース125に送る。また、データ読み出し時には、主データおよびECCデータをフラッシュメモリインタフェース125から入力してデータエラーの発生の有無を検出する動作や、CORの発生が検出されたときに主データを訂正する動作等を行う。
【0039】
データエラー情報管理テーブル127は、データエラーの発生回数を、CORとUNCとに分けて、各メモリ素子M(0)〜M(9)の各セクタごとに記憶する。
【0040】
図2は、データエラー情報管理テーブル127の構成を示す概念図である。同図において、物理メモリ番号「0」,「1」,・・・,「9」は、それぞれ、メモリ素子M(0),M(1),・・・,M(9)に対応させて付されている。また、セクタ番号は、それぞれ、各メモリ素子M(0)〜M(9)に設けられたm+1個のセクタS(0)〜S(m)とn+1個の代替セクタD(0)〜D(n)と(図15参照)に対応させて付されている。そして、これらのセクタごとに、CORの発生回数およびUNCの発生回数が記憶される。ここで、CORの発生回数およびUNCの発生回数の書き換えは、マイクロCPU131(後述)によって行われる。
【0041】
一方、図1において、アドレス変換テーブル128は、メモリ素子M(0)〜M(9)のいずれか一個以上が使用されないこととなった場合(後述)に、アドレス情報中のメモリ番号を、物理メモリ番号から論理メモリ番号に変換する。
【0042】
図3は、かかるアドレス変換テーブル128の構成を示す概念図である。同図に示したように、このアドレス変換テーブル128は、メモリ素子M(0)〜M(9)のいずれかが使用されくなった場合に使用され、例えば、物理メモリ番号kのメモリ素子が使用されなくなった場合には(このとき、使用できるメモリ素子の個数は9となる)、他の各メモリ素子(物理番号0〜k−1,k+1〜9)の各メモリ素子に対応させて、論理メモリ番号0〜8が順次書き込まれる(図3参照)。そして、外部のホストコンピュータ(図示せず)から入力されたアドレス情報中のメモリ番号を物理メモリ番号に変換して出力する。また、使用されないメモリ素子が増加した場合には、論理メモリ番号がさらに書き換えられる。なお、アドレス変換を行うか否かの判断および論理メモリ番号の書き換えは、マイクロCPU131(後述)が行う。
【0043】
図1に示したマイクロコントローラ部130において、マイクロCPU131は、ホストインタフェース121およびマイクロCPUインタフェース122を介して外部から入力したコマンド情報やアドレス情報等に基づいて、フラッシュメモリ部110およびディスクコントローラ部120の動作を制御する。
【0044】
また、プログラムメモリ132は、マイクロCPU131を動作させるためのプログラムが格納されている。また、このプログラムメモリ132は、アドレス変換テーブル128を用いたアドレス変換処理を行うか否かを設定するためのフラグとしての縮退運転要/否フラグ(図示せず)と、出力データが正常データかエラーデータかを示すエラーフラグとを有している。
【0045】
次に、この実施の形態に係る半導体ディスク装置100の動作について、図4のフローチャートを用いて説明する。
【0046】
まず、従来の場合と同様、半導体ディスク装置100の外部から、ホストインタフェース121を介して、コマンド情報およびアドレス情報が入力される。これらの情報は、マイクロCPUインタフェース122を介して、マイクロコントローラ部130内のマイクロCPU131に送られる(S401)。
【0047】
次に、マイクロCPU131が、コマンド情報の内容を解読する(S402)。そして、このコマンド情報が書き込み命令である場合には、外部から、主データが入力される(S403)。この主データは、ホストインタフェース121を介してデータバッファ123に入力される。
【0048】
続いて、マイクロCPU131は、縮退運転要/否フラグの状態をチェックする(S404)。そして、縮退運転要/否グラフが「要」となっているときは、アドレス情報から抽出した物理メモリ番号をアドレス変換テーブル128に送り、このアドレス変換テーブル128から変換後のメモリ番号(すなわち論理メモリ番号)を受け取る(S405)。一方、この縮退運転要/否フラグが「否」となっているときには、アドレス情報の変換を行うことなく、アドレス情報、コマンド情報および主データをフラッシュメモリインタフェースに送る(S406)。
【0049】
ECC制御部126は、フラッシュメモリインタフェース125から主データを取り込んでECCデータを作成し、フラッシュメモリインタフェース125に送る(S407)。そして、このフラッシュメモリインタフェース125内で、従来と同様のシリアルデータ(図14参照)が作成される(S408)。
【0050】
かかるシリアルデータは、フラッシュメモリインタフェース125からフラッシュメモリ部110内の10個のメモリ素子M(0)〜M(9)に、それぞれ並列に入力される。各メモリ素子M(0)〜M(9)は、シリアルデータに含まれるアドレス情報内のメモリ番号が自己のメモリ番号と一致する場合には、このシリアルデータを取り込む。そして、シリアルデータのアドレス情報によって指定されているセクタに、このシリアルデータを書き込む(S409)。ここで、この実施の形態に係る各メモリ素子M(0)〜M(9)では、従来のメモリ素子の場合(図15参照)と同様、アドレス情報に対応するセクタが劣化セクタである場合には、管理情報領域1501の内容に従って、代替セクタD(0)〜D(n)のいずれかにシリアルデータが書き込まれる。
【0051】
一方、ステップS402において、コマンド情報が読み出し命令である場合には、マイクロCPU131は、縮退運転要/否フラグの状態をチェックする(S410)。そして、この縮退運転要/否グラフが「否」となっているときは、アドレス情報をそのままフラッシュメモリインタフェースに送る(S412)。一方、縮退運転要/否グラフが「要」となっているときは、アドレス情報に含まれる物理メモリ番号をアドレス変換テーブル128に送った後、このアドレス変換テーブル128から変換後のメモリ番号(すなわち論理メモリ番号)を受け取り(S411)、かかる論理メモリ番号を含むアドレス情報をコマンド情報とともにフラッシュメモリインタフェースに送る(S412)。
【0052】
フラッシュメモリインタフェース125は、このアドレスに対応するセクタに記憶されたシリアルデータを読み出す(S413)。このときも、上述の書き込み動作の場合と同様、代替セクタD(0)〜D(9)のいずれかが使用されているときは、管理情報領域1501の内容に従って、かかる代替セクタからの読み出しが行われる。
【0053】
次に、ECC制御部126が、このシリアルデータ中の主データおよびECCデータをフラッシュメモリインタフェース125から読み出して、データエラーの発生の有無をチェックする(S414)。そして、データエラーのうちCORの発生が検出されたときは、そのエラーを訂正して、フラッシュメモリインタフェース125に送る(S414)。一方、ECC制御部126によってUNCが検出されたときは、マイクロCPU131は、データがUNCであることを示すエラーフラグをセットする(S414)。
【0054】
続いて、上述のエラーチェック(S414)でデータエラーが検出されたか否かを判断する(S415)。そして、データエラーの検出があった場合には、続いて、データエラー情報管理テーブル127の書き換えを行う(S416)。ここで、このデータエラー情報管理テーブル127の書き換えは、エラーが発生した各セクタのCOR発生回数またはUNC発生回数を、「1」ずつ増加させることによって行う。
【0055】
次に、マイクロCPU131が、このデータエラー情報管理テーブル127を用いて、各セクタのCOR発生回数およびUNC発生回数を所定のしきい値(以下「データエラー発生回数しきい値」と称す)と比較する。そして、COR発生回数またはUNC発生回数の少なくとも一方がデータエラー発生回数しきい値を越えたセクタは、劣化したと判断する(S417)。劣化セクタが検出された場合には、従来の場合と同様にして、その後の書き込み動作で代替セクタを使用するための情報が管理情報領域1501(図15参照)に格納される(S418)。さらに、このようにして新たな劣化セクタが検出された場合、マイクロCPU131は、この劣化セクタが属するメモリ素子について、劣化セクタの総数を計数し、この計数値を所定のしきい値(以下「セクタ数しきい値」と称す)と比較する。そして、劣化セクタの総数がセクタ数しきい値を超えている場合には、かかるメモリ素子が劣化したと判断する(S419)。さらに、このようにして新たな劣化メモリ素子が検出された場合には、マイクロCPU131は、上述のようにして、アドレス変換テーブル128の論理メモリ番号を書き換える(S420)。
【0056】
その後、データ転送制御部124の制御により、フラッシュメモリインタフェース125内のデータ(ECCによる訂正がある場合は訂正後のデータ)が、データバッファ123およびホストインタフェース121を介して、半導体ディスク装置100の外部に出力される(S421)。
【0057】
なお、ECC制御部126によってUNCが検出されたときにも、エラーデータがそのまま出力される。このとき、出力データが正常データであるのかエラーデータであるのかの判断は、プログラムメモリ132のエラーフラグを外部から読み出すことによって行う。
【0058】
以上説明したように、この実施の形態に係る半導体ディスク装置100によれば、データエラー情報管理テーブル127に記憶された書き込み・読み出しエラーの発生状況に基づいて各メモリ素子M(0)〜M(9)ごとに劣化セクタの発生状況を正確に判断することができる。そして、アドレス変換テーブル128を用いて、劣化セクタの発生数が多いメモリ素子の使用を中止することとしたので、メモリ素子の故障によるデータの大量喪失を防止することが可能となる。
【0059】
また、メモリ素子全体としての故障や半導体ディスク装置全体としての故障の可能性を早期に予想することができるので、予め書き込みデータのバックアップを取るといった対応策も可能となり、これによってもデータの大量喪失を防止することができる。
【0060】
なお、この実施の形態では、COR発生回数またはUNC発生回数の少なくとも一方がデータエラー発生回数しきい値を越えたセクタを劣化したと判断したが、他の判断方法を採ることも可能である。例えば、COR発生回数とUNC発生回数とでデータエラー発生回数しきい値を変えることとしたり、COR発生回数とUNC発生回数との和がデータエラー発生回数しきい値を越えたときに劣化したと判断することとしてもよい。
【0061】
第2の実施の形態
次に、この発明の第2の実施の形態に係る半導体記憶装置およびその制御方法について、フラッシュメモリを用いた半導体ディスク装置を例にとって説明する。
【0062】
この実施の形態に係る半導体ディスク装置は、セクタが劣化したか否かの判断を、COR発生確率およびUNC発生確率によって行う点で、上述の第1の実施の形態と異なる。
【0063】
なお、半導体ディスク装置100の全体構成およびアドレス変換テーブル128の構成は、第1の実施の形態の場合(図1および図3参照)と同様であるので、説明を省略する。
【0064】
図5は、この実施の形態に係るデータエラー情報管理テーブル127の構成を示す概念図である。同図に示したように、この実施の形態に係るデータエラー情報管理テーブル127は、CORの発生回数およびUNCの発生回数に加えて書き込み回数および読み出し回数を記憶することとした点で、上述の第1の実施の形態の場合(図2参照)と異なる。
【0065】
図6は、この実施の形態に係る半導体ディスク装置100の動作を説明するためのフローチャートである。
【0066】
まず、第1の実施の形態の場合(図4)と同様、コマンド情報およびアドレス情報がホストインタフェース121およびマイクロCPUインタフェース122を介してマイクロCPU131に入力され(S401)、このマイクロCPU131がコマンド情報の内容を解読する(S402)。
【0067】
そして、このコマンド情報が書き込み命令である場合には、マイクロCPU131は、第1の実施の形態の場合と同様、主データの入力(S403)および縮退運転要/否フラグのチェック(S404)を行い、縮退運転要/否フラグが「要」となっている場合はアドレス変換テーブル128を用いてメモリ番号を物理メモリ番号に変換した後(S405)、アドレス情報、コマンド情報および主データをフラッシュメモリインタフェースに送る(S406)。そして、ECC制御部126が主データを用いてECCデータを作成した後(S407)、フラッシュメモリインタフェース125がシリアルデータ(図14参照)を作成し(S408)、このシリアルデータを上述のアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)に書き込む(S409)。
【0068】
ここで、この実施の形態では、シリアルデータの書き込みが終了した後で、データエラー情報管理テーブル127の書き換えを行う(S601)。すなわち、書き込みを行ったセクタの「書き込み回数」を「1」増加させる。
【0069】
一方、ステップS402において、コマンド情報が読み出し命令である場合には、第1の実施の形態の場合と同様にして、マイクロCPU131が縮退運転要/否フラグの状態をチェックし(S410)、「要」の場合にはメモリ番号を物理メモリ番号に変換した後(S411)、アドレス情報をフラッシュメモリインタフェース125に送る(S412)。そして、フラッシュメモリインタフェース125がアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)からシリアルデータを読み出し(S413)、ECC制御部126によるデータエラーの検出および訂正とマイクロCPU131によるエラーフラグのセットとを行う(S414)。
【0070】
このような読み出し動作に続いて、この実施の形態では、データエラー情報管理テーブル127の書き換えを行う(S602)。この書き換えでは、読み出しを行ったセクタの「読み出し回数」をそれぞれ「1」増加させるとともに、上述のエラーチェック(S416)でエラーが検出されたセクタの「COR発生回数」または「UNC発生回数」を「1」増加させる。
【0071】
次に、この実施の形態では、マイクロCPU131が、データエラー情報管理テーブル127を用いて、セクタごとに、下式(1),(2)を用いて、COR発生確率およびUNC発生確率を算出する(S603)。
【0072】
【数1】
【0073】
【数2】
【0074】
そして、各セクタのCOR発生確率およびUNC発生確率を所定のしきい値(以下「データエラー発生確率しきい値」と称す)と比較する。そして、COR発生確率またはUNC発生確率の少なくとも一方がデータエラー発生確率しきい値を越えたセクタは、劣化したと判断する(S604)。劣化セクタが検出された場合には、第1の実施の形態の場合と同様にして、その後の書き込み動作で代替セクタを使用するための情報を管理情報領域1501(図15参照)に格納し(S418)、この劣化セクタが属するメモリ素子における劣化セクタの総数を計数してセクタ数しきい値と比較し、さらに、劣化セクタの総数がセクタ数しきい値を超えている場合にはメモリ素子が劣化したと判断して(S419)アドレス変換テーブル128の論理メモリ番号を書き換える(S420)。
【0075】
その後、第1の実施の形態の場合と同様、フラッシュメモリインタフェース125内のデータ(ECCによる訂正がある場合は訂正後のデータ)が、データバッファ123およびホストインタフェース121を介して、半導体ディスク装置100の外部に出力される(S421)。
【0076】
このように、この実施の形態では、セクタが劣化したか否かの判断を、COR発生確率およびUNC発生確率によって行うこととした。従って、例えば他のセクタに比べてデータエラーの発生回数は少ないが書き込み回数や読み出し回数も少ないようなセクタについても劣化したか否かの判断を行うことができるので、劣化セクタの発生状況を、より正確に判断することができる。
【0077】
また、アドレス変換テーブル128を用いて劣化セクタの発生数が多いメモリ素子を使用しないようにできる点や、メモリ素子全体としての故障や半導体ディスク装置全体としての故障の可能性を早期に予想することができる点は、上述の第1の実施の形態と同様である。
【0078】
なお、この実施の形態では、COR発生回数またはUNC発生回数の少なくとも一方がデータエラー発生確率しきい値を越えたセクタを劣化したと判断したが、他の判断方法を採ることも可能である。例えば、COR発生確率とUNC発生確率とでデータエラー発生確率しきい値を変えることとしたり、CORとUNCとを区別することなくデータエラー発生確率を算出することとしてもよい。
【0079】
第3の実施の形態
次に、この発明の第3の実施の形態に係る半導体記憶装置およびその制御方法について、この発明をフラッシュメモリを用いた半導体ディスク装置を例にとって説明する。
【0080】
この実施の形態に係る半導体ディスク装置は、セクタが劣化したか否かの判断を、所定の書き込み・読み出し回数(例えば1万回)ごとのエラー発生回数(COR或いはUNC)によって行う点で、上述の各実施の形態と異なる。
【0081】
なお、半導体ディスク装置100の全体構成およびアドレス変換テーブル128の構成は、第1の実施の形態の場合(図1および図3参照)と同様であるので、説明を省略する。
【0082】
図7は、この実施の形態に係るデータエラー情報管理テーブル127の構成を示す概念図である。同図に示したように、この実施の形態に係るデータエラー情報管理テーブル127は、書き込み回数および読み出し回数を記憶するとともに、CORの発生時回数およびUNCの発生時回数を記憶する。ここで、CORの発生時回数とは、所定の書き込み・読み出し回数(ここでは1万回とする)ごとのCORの発生回数をいう。すなわち、書き込み回数と読み出し回数との和が1回目〜10000回目のときに発生したCORの数は、記憶領域C1 にセクタごとに記憶される。また、書き込み回数と読み出し回数との和が10001回目〜20000回目のときに発生したCORの数は、記憶領域C2 にセクタごとに記憶される。同様に、UNCの発生時回数とは、所定の書き込み・読み出し回数ごとのUNCの発生回数をいい、書き込み・読み出し回数の10000回ごとに記憶領域U1 〜Uh にそれぞれ記憶される。
【0083】
図8は、この実施の形態に係る半導体ディスク装置100の動作を説明するためのフローチャートである。
【0084】
まず、上述の各実施の形態の場合(図4、図6参照)と同様、コマンド情報およびアドレス情報がホストインタフェース121およびマイクロCPUインタフェース122を介してマイクロCPU131に入力され(S401)、このマイクロCPU131がコマンド情報の内容を解読する(S402)。
【0085】
そして、このコマンド情報が書き込み命令である場合には、マイクロCPU131は、上述の各実施の形態の場合と同様、主データの入力(S403)および縮退運転要/否フラグのチェック(S404)を行い、縮退運転要/否フラグが「要」となっている場合はアドレス変換テーブル128を用いてメモリ番号を物理メモリ番号に変換した後(S405)、アドレス情報、コマンド情報および主データをフラッシュメモリインタフェースに送る(S406)。そして、ECC制御部126が主データを用いてECCデータを作成した後(S407)、フラッシュメモリインタフェース125がシリアルデータ(図14参照)を作成し(S408)、このシリアルデータを上述のアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)に書き込む(S409)。
【0086】
さらに、第2の実施の形態の場合と同様にして、シリアルデータの書き込みが終了した後で、データエラー情報管理テーブル127の「書き込み回数」の書き換えを行う(S601)。
【0087】
一方、ステップS402において、コマンド情報が読み出し命令である場合には、第1の実施の形態の場合と同様にして、マイクロCPU131が縮退運転要/否フラグの状態をチェックし(S410)、「要」の場合にはメモリ番号を物理メモリ番号に変換した後(S411)、アドレス情報をフラッシュメモリインタフェース125に送る(S412)。そして、フラッシュメモリインタフェース125がアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)からシリアルデータを読み出し(S413)、ECC制御部126によるデータエラーの検出および訂正とマイクロCPU131によるエラーフラグのセットとを行う(S414)。
【0088】
続いて、マイクロCPU131の制御により、データエラー情報管理テーブル127の書き換えを行う(S602)。この書き換えでは、まず、読み出しを行ったセクタの「読み出し回数」を、それぞれ「1」増加させる。そして、上述のエラーチェック(S414)でエラーが検出されたセクタの「COR発生時回数」または「UNC発生時回数」の書き換えを行う(S801)。上述したように、この書き換えでは、該当するセクタの書き込み回数と読み出し回数との和が1万回以下ときは記憶領域C1 の記憶値を「1」増加させ、10001回以上20000回以下のときは記憶領域C2 の記憶値を「1」増加させる。
【0089】
続いて、この実施の形態では、マイクロCPU131が、このデータエラー情報管理テーブル127を用いて、CORの発生時回数およびUNCの発生時回数を所定のしきい値(以下「データエラー発生時回数しきい値」と称す)と比較する(S801)。そして、COR発生時回数またはUNC発生時回数の少なくとも一方がデータエラー発生時回数しきい値を越えたセクタは、劣化したと判断する(S802)。ここで、劣化セクタが検出された場合には、第1の実施の形態の場合と同様にして、その後の書き込み動作で代替セクタを使用するための情報を管理情報領域1501(図15参照)に格納し(S418)、この劣化セクタが属するメモリ素子における劣化セクタの総数を計数してセクタ数しきい値と比較し、さらに、劣化セクタの総数がセクタ数しきい値を超えている場合にはメモリ素子が劣化したと判断して(S419)、アドレス変換テーブル128の論理メモリ番号を書き換える(S420)。
【0090】
その後、第1の実施の形態の場合と同様、フラッシュメモリインタフェース125内のデータ(ECCによる訂正がある場合は訂正後のデータ)が、データバッファ123およびホストインタフェース121を介して、半導体ディスク装置100の外部に出力される(S421)。
【0091】
このように、この実施の形態では、セクタが劣化したか否かの判断を、COR発生時回数およびUNC発生時回数によって行うこととした。従って、メモリ素子M(0)〜M(9)として、書き込み・読み出しの回数が一定数を超えた後にデータエラーの発生頻度が急激に増加する特性を有するものが使用される場合に、劣化セクタの発生状況を正確に判断することができる。
【0092】
また、アドレス変換テーブル128を用いて劣化セクタの発生数が多いメモリ素子を使用しないようにできる点や、メモリ素子全体としての故障や半導体ディスク装置全体としての故障の可能性を早期に予想することができる点は、上述の第1の実施の形態と同様である。
【0093】
なお、この実施の形態では、COR発生時回数またはUNC発生時回数の少なくとも一方がデータエラー発生時回数しきい値を越えたセクタを劣化したと判断したが、他の判断方法を採ることも可能である。例えば、COR発生時回数とUNC発生時回数とでデータエラー発生時回数しきい値を変えることとしたり、COR発生時回数およびUNC発生時回数がともにデータエラー発生時回数しきい値を越えたときに劣化したと判断することとしてもよい。
【0094】
また、COR、UNCの発生時回数に代えて、これらのデータエラーの連続発生回数によってセクタの劣化を判断することとしてもよい。このような判断方法によっても、書き込み・読み出しの回数が一定数を超えた後にデータエラーの発生頻度が急激に増加する特性のメモリ素子M(0)〜M(9)が使用される場合に、劣化セクタの発生状況を正確に判断することができる。このような判断方法は、上述の第1の実施の形態で使用したデータエラー情報管理テーブル127(図2参照)の発生回数に代えて連続発生回数を記憶するものを使用し、第1の実施の形態の場合とほぼ同様の制御(図4参照)を行うことにより、実現することができる。
【0095】
第4の実施の形態
次に、この発明の第4の実施の形態に係る半導体記憶装置およびその制御方法について、フラッシュメモリを用いた半導体ディスク装置を例にとって説明する。
【0096】
この実施の形態に係る半導体ディスク装置は、メモリ素子が劣化した場合に、かかる劣化メモリ素子の各セクタに代えて他のメモリ素子の代替セクタを使用することとした点が、上述の第1の実施の形態と異なる。
【0097】
なお、半導体ディスク装置100の全体構成およびデータエラー情報管理テーブル127の構成は、第1の実施の形態の場合(図1および図2参照)と同様であるので、説明を省略する。
【0098】
図9は、各メモリ素子M(0)〜M(9)内のセクタ構成を示す概念図である。同図(A)に示したように、各メモリ素子M(0)〜M(9)は、m+1個のセクタS(0)〜S(m)と、n+1個の代替セクタD(0)〜D(n)と、管理情報領域901とを備えている。後述するように、劣化メモリ素子が無い場合は、各メモリ素子M(0)〜M(9)の代替セクタD(0)〜D(n)は、すべて、当該メモリ素子内に設けられたセクタS(0)〜S(m)の代替に使用される(図9(A)参照)。一方、劣化メモリ素子が存在する場合(すなわち縮退運転時)には、劣化していないメモリ素子の代替セクタD(0)〜D(n)は、一部がそのメモリ素子用の代替に使用され、他は劣化メモリ素子用の代替に使用される(図9(B)参照)。図9(B)に示した例では、劣化していないメモリ素子に設けられた代替セクタの内、x個の代替セクタD(0)〜D(x−1)はそのメモリ素子用の代替に使用され、他の代替セクタD(x)〜D(n)は劣化メモリ素子用の代替に使用される。なお、管理情報領域901には、そのメモリ素子内で発生した劣化セクタの代替に使用される代替セクタD(0)〜D(x−1)についての情報のみが記憶され、他の劣化メモリ素子の代替に使用される代替セクタD(x)〜D(n)の情報は記憶されない。
【0099】
図10は、この実施の形態に係るアドレス変換の原理を説明するための概念図である。同図に示したように、このアドレス変換テーブル128は、例えば、メモリ素子M(j)(すなわち物理メモリ番号が「j」のメモリ素子)が使用されなくなった場合には、他の各メモリ素子M(0)〜M(j−1),M(j+1)〜M(9)内の代替セクタが割り振られる。すなわち、メモリ素子M(j)内に設けられたセクタS(0)〜S(g)に代えてメモリ素子M(0)の代替セクタD(x)〜D(x+g)を使用し、メモリ素子M(j)内に設けられたセクタS(g+1)〜S(2g)に代えてメモリ素子M(1)の代替セクタD(x)〜D(x+g)を使用し、以下同様にして各メモリ素子M(2)〜M(j−1),M(j+1)〜M(9)の代替セクタを任意の個数ずつ割り当てる。なお、劣化メモリ素子が増加した場合には、残りの各メモリ素子の代替セクタがさらに割り振られる。
【0100】
図11は、この実施の形態に係る半導体ディスク装置100の動作を説明するためのフローチャートである。
【0101】
まず、第1の実施の形態の場合(図4)と同様、コマンド情報およびアドレス情報がホストインタフェース121およびマイクロCPUインタフェース122を介してマイクロCPU131に入力され(S401)、このマイクロCPU131がコマンド情報の内容を解読する(S402)。
【0102】
そして、このコマンド情報が書き込み命令である場合には、マイクロCPU131は、上述の各実施の形態の場合と同様、主データの入力(S403)および縮退運転要/否フラグのチェック(S404)を行い、縮退運転要/否フラグが「要」となっている場合はアドレス変換テーブル128を用いてメモリ番号を物理メモリ番号に変換した後(S405)、アドレス情報、コマンド情報および主データをフラッシュメモリインタフェースに送る(S406)。そして、ECC制御部126が主データを用いてECCデータを作成した後で(S407)、フラッシュメモリインタフェース125がシリアルデータ(図14参照)を作成し(S408)、このシリアルデータを上述のアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)に書き込む(S409)。
【0103】
一方、ステップS402において、コマンド情報が読み出し命令である場合には、第1の実施の形態の場合と同様にして、マイクロCPU131が縮退運転要/否フラグの状態をチェックする(S410)。そして、この縮退要/否フラグが「要」の場合には、上述のアドレス情報をアドレス変換テーブル128に送り、図10に示したようなアドレス情報の変換を行う(S1101)。すなわち、図10に示したように劣化メモリ素子をM(j)とすると、アドレス情報中のメモリ番号が「0」〜「j−1」および「j+1」〜「9」の場合は変換の前後でアドレス情報値は同一となり、また、アドレス情報中のメモリ番号が「j」の場合は図10に示したようにしてメモリ番号およびセクタ番号の書き換えが行われる。
【0104】
続いて、変換後のアドレス情報が、フラッシュメモリインタフェース125に送られる(S412)。そして、フラッシュメモリインタフェース125がアドレス情報に対応するセクタ(このセクタが劣化しているときは所定の代替セクタ)からシリアルデータを読み出し(S413)、ECC制御部126によるデータエラーの検出および訂正とマイクロCPU131によるエラーフラグのセットとを行う(S414)。
【0105】
続いて、上述のエラーチェック(S414)でデータエラーが検出されたか否かを判断し(S415)、データエラーの検出があった場合には上述の第1の実施の形態の場合と同様にしてデータエラー情報管理テーブル127の書き換えを行う(S416)。そして、第1の実施の形態の場合と同様にして、CORの発生回数およびUNCの発生回数をデータエラー発生回数しきい値と比較することによって劣化したか否かを判断し(S417)、劣化セクタが検出された場合には管理情報領域901の情報を書き換える(S418)。さらに、第1の実施の形態の場合と同様にして、この劣化セクタが属するメモリ素子が劣化したか否かを判断し(S419)、メモリ素子が劣化した場合はアドレス変換テーブル128の情報を書き換える(S420)。
【0106】
その後、第1の実施の形態の場合と同様、フラッシュメモリインタフェース125内のデータ(ECCによる訂正がある場合は訂正後のデータ)が、データバッファ123およびホストインタフェース121を介して、半導体ディスク装置100の外部に出力される(S421)。
【0107】
このように、この実施の形態では、劣化メモリ素子が発生した場合には、他のメモリ素子の代替セクタを用いてシリアルデータの記憶を行うこととした。このため、この実施の形態によれば、劣化メモリ素子が発生した場合にフラッシュメモリ部110の記憶容量の低減を抑制することができる。
【0108】
また、劣化セクタの発生状況を正確に判断することができる点、アドレス変換テーブル128を用いて劣化セクタの発生数が多いメモリ素子を使用しないようにできる点、メモリ素子全体としての故障や半導体ディスク装置全体としての故障の可能性を早期に予想することができる点は、上述の各実施の形態と同様である。
【0109】
なお、この実施の形態では、上述の第1の実施の形態と同様、CORまたはUNCの発生回数をデータエラー発生回数しきい値と比較することによってセクタの劣化を判断することとしたが、CORまたはUNCの発生確率とデータエラー発生確率しきい値との比較(すなわち第2の実施の形態と同じ方法)や、CORまたはUNCの発生時回数とデータエラー発生時回数しきい値との比較(すなわち第3の実施の形態と同じ方法)によってセクタの劣化を判断することとしてもよい。
【0110】
また、以上説明した実施の形態では、それぞれ、セクタの劣化を1種類の方法で判断したが、複数種類の判断方法を組み合わせることとしてもよい。例えば、データエラー発生確率しきい値を用いた判断とデータエラー発生時回数しきい値を用いた判断とを両方行うこととし、一方のデータエラー発生確率またはデータエラー発生時回数の一方或いは両方がしきい値を超えた場合に、劣化セクタであると判断することとしてもよい。
【0111】
【発明の効果】
以上詳細に説明したように、この発明によれば、劣化が問題となるメモリ素子を使用した半導体記憶装置の信頼性を向上させることができ且つ寿命を長くすることができる。
【図面の簡単な説明】
【図1】第1の実施の形態に係る半導体記憶装置の構成を概略的に示すブロック図である。
【図2】第1の実施の形態におけるデータエラー情報管理テーブルの構成を示す概念図である。
【図3】第1の実施の形態におけるアドレス変換テーブルの構成を示す概念図である。
【図4】第1の実施の形態に係る半導体記憶装置の動作を説明するためのフローチャートである。
【図5】第2の実施の形態に係るデータエラー情報管理テーブルの構成を示す概念図である。
【図6】第2の実施の形態に係る半導体記憶装置の動作を説明するためのフローチャートである。
【図7】第3の実施の形態におけるデータエラー情報管理テーブルの構成を示す概念図である。
【図8】第3の実施の形態に係る半導体記憶装置の動作を説明するためのフローチャートである。
【図9】第4の実施の形態における各メモリ素子のセクタ構成を示す概念図である。
【図10】第4の実施の形態に係るアドレス変換の原理を説明するための概念図である。
【図11】第4の実施の形態に係る半導体記憶装置の動作を説明するためのフローチャートである。
【図12】従来の半導体記憶装置の一構成例を概念的に示すブロック図である。
【図13】従来の半導体記憶装置の動作を説明するためのフローチャートである。
【図14】従来の半導体記憶装置におけるフラッシュメモリインタフェース内で作成されるシリアルデータの構成を示す概念図である。
【図15】従来の半導体記憶装置のフラッシュメモリ部に設けられた各メモリ素子内のセクタ構成を示す概念図である。
【符号の説明】
100 半導体ディスク装置
110 フラッシュメモリ部
120 ディスクコントローラ部
121 ホストインタフェース
122 マイクロCPUインタフェース
123 データバッファ
124 データ転送制御部
125 フラッシュメモリインタフェース
126 ECC制御部
127 データエラー情報管理テーブル
128 アドレス変換テーブル
130 マイクロコントローラ部
131 マイクロCPU
132 プログラムメモリ
Claims (4)
- 通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいて前記メモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置において、
前記メモリ素子の書き込み・読み出しエラーの発生状況を前記セクタ毎に記憶するデータエラー情報管理テーブルと、
このデータエラー情報管理テーブルに記憶された前記書き込み・読み出しエラーの発生状況に基づいて前記セクタの劣化を検出し且つ劣化した前記セクタの個数に基づいて前記メモリ素子の劣化を検出する劣化検出部と、
前記劣化検出部によって劣化が検出された前記セクタのアドレス情報をいずれかの前記予備セクタのアドレス情報に変換することによって、この劣化セクタが使用されないようにするために、前記メモリ素子毎に設けられた管理情報領域と、
前記劣化検出部によって劣化が検出された前記メモリ素子が使用されないように、前記アドレス情報を変換するアドレス変換テーブルとを備え、
前記書き込み・読み出しエラーの発生状況が、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方である、
ことを特徴とする半導体記憶装置。 - 通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいて前記メモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置において、
前記メモリ素子の書き込み・読み出しエラーの発生状況を前記セクタ毎に記憶するデータエラー情報管理テーブルと、
このデータエラー情報管理テーブルに記憶された前記書き込み・読み出しエラーの発生状況に基づいて前記セクタの劣化を検出し且つ劣化した前記セクタの個数に基づいて前記メモリ素子の劣化を検出する劣化検出部と、
前記劣化検出部によって劣化が検出された前記セクタのアドレス情報をいずれかの前記予備セクタのアドレス情報に変換することによって、この劣化セクタが使用されないようにするために、前記メモリ素子毎に設けられた管理情報領域と、
前記劣化検出部によって劣化が検出された前記メモリ素子が使用されないように、前記アドレス情報を変換するアドレス変換テーブルとを備え、
前記書き込み・読み出しエラーの発生状況が、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方である、
ことを特徴とする半導体記憶装置。 - 通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいて前記メモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置の制御方法において、
前記メモリ素子の書き込み・読み出しエラーの発生状況をデータエラー情報管理テーブルに記憶する第1のステップと、
この第1のステップで前記データエラー情報管理テーブルに記憶された前記書き込み・読み出しエラーの発生状況に基づいて、劣化検出部が前記セクタの劣化を検出する第2のステップと、
前記劣化検出部によって劣化が検出された前記セクタのアドレス情報をいずれかの前記予備セクタのアドレス情報に変換することによって、この劣化セクタが使用されないようにするために、前記メモリ素子毎に設けられた管理情報領域を書き換える第3のステップと、
劣化した前記セクタの個数に基づいて、前記劣化検出部が前記メモリ素子の劣化を検出する第4のステップと、
この第4のステップで前記劣化検出部が劣化を検出した前記メモリ素子が使用されないように、アドレス変換テーブルの前記アドレス情報を書き換える第5のステップとを備え、
前記書き込み・読み出しエラーの発生状況が、所定回数の書き込み・読み出し動作ごとに発生した訂正可能な書き込み・読み出しエラーの回数または訂正不可能な書き込み・読み出しエラーの回数の少なくとも一方である、
ことを特徴とする半導体記憶装置の制御方法。 - 通常セクタ或いは予備セクタとして使用される複数個のセクタを有するメモリ素子を複数個備えた記憶部と、外部から入力されたアドレス情報に基づいて前記メモリ素子に対するデータの書き込み・読み出しを行う制御部とを具備する半導体記憶装置の制御方法において、
前記メモリ素子の書き込み・読み出しエラーの発生状況をデータエラー情報管理テーブルに記憶する第1のステップと、
この第1のステップで前記データエラー情報管理テーブルに記憶された前記書き込み・読み出しエラーの発生状況に基づいて、劣化検出部が前記セクタの劣化を検出する第2のステップと、
前記劣化検出部によって劣化が検出された前記セクタのアドレス情報をいずれかの前記予備セクタのアドレス情報に変換することによって、この劣化セクタが使用されないようにするために、前記メモリ素子毎に設けられた管理情報領域を書き換える第3のステップと、
劣化した前記セクタの個数に基づいて、前記劣化検出部が前記メモリ素子の劣化を検出する第4のステップと、
この第4のステップで前記劣化検出部が劣化を検出した前記メモリ素子が使用されないように、アドレス変換テーブルの前記アドレス情報を書き換える第5のステップとを備え、
前記書き込み・読み出しエラーの発生状況が、訂正可能な書き込み・読み出しエラーが連続して発生した回数または訂正不可能な書き込み・読み出しエラーが連続して発生した回数の少なくとも一方である、
ことを特徴とする半導体記憶装置の制御方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21172697A JP3565687B2 (ja) | 1997-08-06 | 1997-08-06 | 半導体記憶装置およびその制御方法 |
| US09/028,130 US6119245A (en) | 1997-08-06 | 1998-02-23 | Semiconductor storage device and method of controlling it |
| KR1019980029947A KR19990023238A (ko) | 1997-08-06 | 1998-07-24 | 반도체 기억장치 및 그 제어방법 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21172697A JP3565687B2 (ja) | 1997-08-06 | 1997-08-06 | 半導体記憶装置およびその制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1153266A JPH1153266A (ja) | 1999-02-26 |
| JP3565687B2 true JP3565687B2 (ja) | 2004-09-15 |
Family
ID=16610593
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21172697A Expired - Fee Related JP3565687B2 (ja) | 1997-08-06 | 1997-08-06 | 半導体記憶装置およびその制御方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6119245A (ja) |
| JP (1) | JP3565687B2 (ja) |
| KR (1) | KR19990023238A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014147865A1 (en) | 2013-03-18 | 2014-09-25 | Kabushiki Kaisha Toshiba | Information processing system, control program, and information processing device |
Families Citing this family (130)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3782840B2 (ja) | 1995-07-14 | 2006-06-07 | 株式会社ルネサステクノロジ | 外部記憶装置およびそのメモリアクセス制御方法 |
| WO1997032253A1 (fr) * | 1996-02-29 | 1997-09-04 | Hitachi, Ltd. | Dispositif de memoire a semi-conducteur presentant des cellules defaillantes |
| JP3233079B2 (ja) * | 1997-09-30 | 2001-11-26 | ソニー株式会社 | データ処理システム及びデータ処理方法 |
| US6446223B1 (en) * | 1998-09-09 | 2002-09-03 | Hitachi, Ltd. | Storage system and method for controlling the same |
| US7243185B2 (en) * | 2004-04-05 | 2007-07-10 | Super Talent Electronics, Inc. | Flash memory system with a high-speed flash controller |
| WO2001022232A1 (en) * | 1999-09-17 | 2001-03-29 | Hitachi, Ltd. | Storage where the number of error corrections is recorded |
| US20080195798A1 (en) * | 2000-01-06 | 2008-08-14 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems and Methods Thereof |
| JP4031190B2 (ja) * | 2000-09-29 | 2008-01-09 | 株式会社東芝 | メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置 |
| US6418068B1 (en) * | 2001-01-19 | 2002-07-09 | Hewlett-Packard Co. | Self-healing memory |
| JP4818812B2 (ja) * | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
| JP4766781B2 (ja) * | 2001-06-20 | 2011-09-07 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置 |
| US20030056141A1 (en) * | 2001-09-18 | 2003-03-20 | Lai Chen Nan | Control method used in and-gate type system to increase efficiency and lengthen lifetime of use |
| US6643195B2 (en) | 2002-01-11 | 2003-11-04 | Hewlett-Packard Development Company, Lp. | Self-healing MRAM |
| JP4012420B2 (ja) * | 2002-03-12 | 2007-11-21 | 株式会社日立製作所 | 磁気ディスク装置及びディスク制御装置 |
| US20050120265A1 (en) * | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
| US7152138B2 (en) * | 2004-01-30 | 2006-12-19 | Hewlett-Packard Development Company, L.P. | System on a chip having a non-volatile imperfect memory |
| US20110029723A1 (en) * | 2004-08-06 | 2011-02-03 | Super Talent Electronics, Inc. | Non-Volatile Memory Based Computer Systems |
| US7149119B2 (en) * | 2004-09-30 | 2006-12-12 | Matrix Semiconductor, Inc. | System and method of controlling a three-dimensional memory |
| US7519852B2 (en) * | 2005-05-12 | 2009-04-14 | International Business Machines Corporation | Apparatus, system, and method for redirecting an instruction pointer to recovery software instructions |
| WO2007010829A1 (ja) * | 2005-07-15 | 2007-01-25 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法 |
| JP4991131B2 (ja) * | 2005-08-12 | 2012-08-01 | 株式会社東芝 | 半導体記憶装置 |
| DE102005040916A1 (de) * | 2005-08-30 | 2007-03-08 | Robert Bosch Gmbh | Speicheranordnung und Betriebsverfahren dafür |
| DE102005045400A1 (de) * | 2005-09-23 | 2007-03-29 | Robert Bosch Gmbh | Datenverarbeitungssystem und Betriebsverfahren dafür |
| US7631245B2 (en) * | 2005-09-26 | 2009-12-08 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
| US8291295B2 (en) | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
| US7450466B2 (en) | 2005-09-29 | 2008-11-11 | Hynix Semiconductor Inc. | Data input device of semiconductor memory device |
| KR100780622B1 (ko) * | 2005-09-29 | 2007-11-29 | 주식회사 하이닉스반도체 | 반도체메모리소자의 데이터 입력장치 |
| US7587655B2 (en) * | 2005-10-26 | 2009-09-08 | Infineon Technologies Ag | Method of transferring signals between a memory device and a memory controller |
| FR2894709A1 (fr) * | 2005-12-13 | 2007-06-15 | Gemplus Sa | "detecteur de destruction anormale de secteur memoire" |
| US7609561B2 (en) * | 2006-01-18 | 2009-10-27 | Apple Inc. | Disabling faulty flash memory dies |
| US7512847B2 (en) * | 2006-02-10 | 2009-03-31 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
| JP4487978B2 (ja) * | 2006-06-28 | 2010-06-23 | セイコーエプソン株式会社 | 半導体記憶装置管理システム、プログラム、半導体記憶装置の管理方法 |
| JP4842719B2 (ja) * | 2006-06-28 | 2011-12-21 | 株式会社日立製作所 | ストレージシステム及びそのデータ保護方法 |
| US20080046641A1 (en) * | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
| US20080046630A1 (en) * | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
| KR100802059B1 (ko) * | 2006-09-06 | 2008-02-12 | 삼성전자주식회사 | 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법 |
| US7836380B2 (en) * | 2006-10-31 | 2010-11-16 | Intel Corporation | Destination indication to aid in posted write buffer loading |
| JP5160777B2 (ja) * | 2006-12-19 | 2013-03-13 | 矢崎エナジーシステム株式会社 | 車両運行情報解析システム |
| JP5057796B2 (ja) * | 2007-02-14 | 2012-10-24 | 株式会社東芝 | 半導体メモリ情報蓄積装置とその不良部位対処方法 |
| US7802114B2 (en) * | 2007-03-16 | 2010-09-21 | Spansion Llc | State change sensing |
| JP5105351B2 (ja) * | 2007-04-10 | 2012-12-26 | 株式会社メガチップス | 不揮発性半導体記憶装置 |
| US7958301B2 (en) * | 2007-04-10 | 2011-06-07 | Marvell World Trade Ltd. | Memory controller and method for memory pages with dynamically configurable bits per cell |
| JP2008310896A (ja) | 2007-06-15 | 2008-12-25 | Spansion Llc | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 |
| US8060798B2 (en) * | 2007-07-19 | 2011-11-15 | Micron Technology, Inc. | Refresh of non-volatile memory cells based on fatigue conditions |
| WO2009037697A2 (en) | 2007-09-20 | 2009-03-26 | Densbits Technologies Ltd. | Improved systems and methods for determining logical values of coupled flash memory cells |
| US8365040B2 (en) | 2007-09-20 | 2013-01-29 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
| US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
| WO2009053961A2 (en) * | 2007-10-25 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
| WO2009072105A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications |
| WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
| US8751726B2 (en) | 2007-12-05 | 2014-06-10 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
| WO2009074979A2 (en) * | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
| US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
| WO2009078006A2 (en) | 2007-12-18 | 2009-06-25 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
| US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
| US8310229B2 (en) * | 2008-03-26 | 2012-11-13 | Olympus Ndt | Intelligent eddy current array probe with embedded firing sequence memory |
| JP5218228B2 (ja) * | 2008-04-23 | 2013-06-26 | 新東工業株式会社 | 搬送装置及びブラスト加工装置 |
| US8031521B1 (en) * | 2008-05-20 | 2011-10-04 | Marvell International Ltd. | Reprogramming non-volatile memory devices for read disturbance mitigation |
| US8010738B1 (en) * | 2008-06-27 | 2011-08-30 | Emc Corporation | Techniques for obtaining a specified lifetime for a data storage device |
| US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
| US8316201B2 (en) * | 2008-12-18 | 2012-11-20 | Sandisk Il Ltd. | Methods for executing a command to write data from a source location to a destination location in a memory device |
| US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
| US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
| US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
| US8305812B2 (en) | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
| US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
| US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
| US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
| US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
| US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
| US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
| US8607124B2 (en) | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
| US8443263B2 (en) * | 2009-12-30 | 2013-05-14 | Sandisk Technologies Inc. | Method and controller for performing a copy-back operation |
| US8595411B2 (en) * | 2009-12-30 | 2013-11-26 | Sandisk Technologies Inc. | Method and controller for performing a sequence of commands |
| KR101648531B1 (ko) * | 2010-02-12 | 2016-08-17 | 삼성전자주식회사 | 불휘발성 메모리 시스템과 이의 동작 방법 |
| US8341502B2 (en) | 2010-02-28 | 2012-12-25 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
| US9104610B2 (en) | 2010-04-06 | 2015-08-11 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
| US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
| US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
| US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
| US8621321B2 (en) | 2010-07-01 | 2013-12-31 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
| US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
| US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
| US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
| US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
| US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
| US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
| US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
| US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
| US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
| US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
| US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
| US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
| US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
| US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
| US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
| US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
| US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
| JP2013122793A (ja) | 2011-12-09 | 2013-06-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
| US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
| US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
| US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
| US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
| US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
| US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
| US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
| US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
| US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
| US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
| US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
| US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
| US9372750B2 (en) | 2013-11-01 | 2016-06-21 | Qualcomm Incorporated | Method and apparatus for non-volatile RAM error re-mapping |
| US9378081B2 (en) * | 2014-01-02 | 2016-06-28 | Qualcomm Incorporated | Bit remapping system |
| US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
| US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
| US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
| US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
| US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
| US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
| US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
| US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
| US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
| US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
| US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
| US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
| JP2018195243A (ja) * | 2017-05-22 | 2018-12-06 | ルネサスエレクトロニクス株式会社 | 半導体装置、及び半導体装置の制御方法 |
| US11093164B2 (en) * | 2019-08-27 | 2021-08-17 | Micron Technology, Inc. | Handling bad blocks generated during a block erase operation |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69024086T2 (de) * | 1989-04-13 | 1996-06-20 | Sundisk Corp | EEprom-System mit Blocklöschung |
| US5867642A (en) * | 1995-08-10 | 1999-02-02 | Dell Usa, L.P. | System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas |
| WO1997032253A1 (fr) * | 1996-02-29 | 1997-09-04 | Hitachi, Ltd. | Dispositif de memoire a semi-conducteur presentant des cellules defaillantes |
-
1997
- 1997-08-06 JP JP21172697A patent/JP3565687B2/ja not_active Expired - Fee Related
-
1998
- 1998-02-23 US US09/028,130 patent/US6119245A/en not_active Expired - Lifetime
- 1998-07-24 KR KR1019980029947A patent/KR19990023238A/ko not_active Ceased
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2014147865A1 (en) | 2013-03-18 | 2014-09-25 | Kabushiki Kaisha Toshiba | Information processing system, control program, and information processing device |
| US9619170B2 (en) | 2013-03-18 | 2017-04-11 | Kabushiki Kaisha Toshiba | Information processing system having a data migration log |
| US9811277B2 (en) | 2013-03-18 | 2017-11-07 | Toshiba Memory Corporation | Information processing system |
| US10089027B2 (en) | 2013-03-18 | 2018-10-02 | Toshiba Memory Corporation | Information processing system |
Also Published As
| Publication number | Publication date |
|---|---|
| US6119245A (en) | 2000-09-12 |
| JPH1153266A (ja) | 1999-02-26 |
| KR19990023238A (ko) | 1999-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3565687B2 (ja) | 半導体記憶装置およびその制御方法 | |
| TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI579696B (zh) | 資料重建方法與系統及其記憶體控制電路單元 | |
| TWI592869B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
| TW201539455A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
| TWI489466B (zh) | 記憶體抹除方法、記憶體控制器與記憶體儲存裝置 | |
| US10983858B2 (en) | Data writing method, memory control circuit unit and memory storage device | |
| TWI459393B (zh) | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 | |
| TWI611410B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN102063266A (zh) | 非易失存储器控制器与用于将当前数据写入非易失存储器的方法 | |
| TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
| CN114327265A (zh) | 读取干扰检查方法、存储器存储装置及控制电路单元 | |
| TWI537734B (zh) | 資料保護方法、記憶體控制器與記憶體儲存裝置 | |
| TWI404071B (zh) | 能識別快閃記憶體中錯誤資料的控制電路及儲存系統與方法 | |
| TWI506634B (zh) | 資料存取方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
| US20130219246A1 (en) | Method and Apparatus for Detecting Free Page and a Method and Apparatus for Decoding Error Correction Code Using the Method and Apparatus for Detecting Free Page | |
| JP2013171343A (ja) | ストレージデバイス | |
| CN106325764B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN112051963A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
| JP6600815B2 (ja) | 記録装置、および情報処理装置 | |
| TWI553477B (zh) | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
| JP2008077783A (ja) | 記憶データ処理装置、記憶装置、記憶データ処理プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040427 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040520 |
|
| 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: 20040608 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040608 |
|
| 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: 20080618 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090618 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100618 Year of fee payment: 6 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110618 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120618 Year of fee payment: 8 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130618 Year of fee payment: 9 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |