JP6102800B2 - メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 - Google Patents
メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 Download PDFInfo
- Publication number
- JP6102800B2 JP6102800B2 JP2014041749A JP2014041749A JP6102800B2 JP 6102800 B2 JP6102800 B2 JP 6102800B2 JP 2014041749 A JP2014041749 A JP 2014041749A JP 2014041749 A JP2014041749 A JP 2014041749A JP 6102800 B2 JP6102800 B2 JP 6102800B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- block
- management information
- error
- substitution
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1044—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 with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06—COMPUTING; CALCULATING OR 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
Description
という作用をもたらす。
1.第1の実施の形態(メモリコントローラの例)
2.第2の実施の形態(アドレス変換機能を備えるメモリコントローラの例)
3.第3の実施の形態(代替処理の発生に伴い、代替管理情報が生成される例)
4.第4の実施の形態(不揮発性メモリのページが複数のバンクよりなる場合の例)
5.第5の実施の形態(不揮発性メモリのページが複数のバンクよりなる、アドレス変換機能を備えるメモリコントローラの例)
6.第6の実施の形態(第1の代替処理をメモリコントローラで行い、第2の代替処理をホストコンピュータが行う場合の例)
7.変形例
[情報処理システムの構成]
図1は、本技術の実施の形態における機能構成例を示す図である。ホストコンピュータ100は、プロセッサ110と、メモリコントローラインターフェース109とを備える。プロセッサ110は、ホストコンピュータ100の全体の動作を制御する。メモリコントローラインターフェース109は、メモリコントローラ200とのやり取りを行うインターフェースである。ホストコンピュータ100は、メモリコントローラ200との間で、メモリコントローラインターフェース109を介して、データのリードまたはライトを要求するコマンドを発行する。ホストコンピュータ100とメモリコントローラ200を接続するインターフェースとしては、SATA、PCI Express、eMMC、USBなどを利用することができる。なお、ホストコンピュータ100は、図示しないROM、RAM等のメモリなども備える。
上述した処理により、メモリコントローラ200は、メモリ300内の不揮発性メモリに記憶された第1および第2代替管理情報にアクセスすることなく代替処理を行うことができる。
図3は、本技術の実施の形態におけるメモリの構成例を示す図である。メモリ300は、前述したメモリコントローラインターフェース309のほか、制御部310と、不揮発性メモリ320とを備える。制御部310は、メモリコントローラ200より送出された制御コマンドに従って、不揮発性メモリ320に対しリード、ライト動作を行う。不揮発性メモリ320は、データブロック領域330と代替ブロック領域340を備える。データブロック領域330は、通常時のデータ保存に使用するデータ保存ブロックよりなる領域である。代替ブロック領域340は、エラーブロックを代替するための代替ブロックよりなる領域である。
ここで、本技術の実施の形態における代替処理について説明する。通常、メモリコントローラは、図4に表したデータ保存ブロックに含まれるデータ保存ページに対しデータの書込みおよび読出しすなわちアクセスを行う。データ保存ページがエラーページとなった場合、メモリコントローラ200は、このエラーページの代わりに同じブロックに属する代替ページを用いてアクセスを行うよう変更する。この処理が、第1の代替処理である。
m=131072、d=8192、b=32、e=2とすることができる。
また、ページサイズを4096バイト、ブロックサイズを32ページにした場合には、
m=16384、d=1024、b=32、e=2とすることができる。
図5は、本技術の第1の実施の形態における第1代替管理情報例を示す図である。本技術の実施の形態における第1代替管理情報は、データ保存ページ(すなわち、代替元)を管理する第1アドレス変換テーブルと代替ページ(すなわち、代替先)を管理する第1管理フラグ情報とにより構成される。同図におけるaは、第1アドレス変換テーブルを表し、同図におけるbは、第1管理フラグ情報を表している。第1アドレス変換テーブルは、ブロック内のデータ保存ページと同数のページ管理情報を有する。このページ管理情報は、当該データ保存ページがエラーページであり代替されているか否かを示す代替ページフラグと、代替されている場合に代替先のページアドレスを示す代替ページアドレスとを含んでいる。第1管理フラグ情報は、ブロック内の代替ページと同数のページ管理情報を有する。このページ管理情報は、代替ページが使用されているか否かを示す代替ページ使用フラグを含んでいる。第1アドレス変換テーブルのページ管理情報である代替ページアドレスは、ブロックの先頭ページからのオフセットページアドレスや複数存在する代替ページのいずれかを示すビット情報を用いることができる。
図7は、本技術の第1の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100よりライトコマンドを受け取ると、メモリコントローラ200は、ライト処理を開始する。なお、このライトコマンドは、ライト対象の指定ページアドレスとライトデータとを含んでいる。まず、ブロック選択処理(ステップ910)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ書込み処理(ステップS920)を実行する。ライト処理が複数のページにわたる場合に、次の書込みページが存在する場合は(ステップS932:Yes)、再度ページ書込みを実行する(ステップS920)。先に選択したブロック内で、次のページが存在しない場合は(ステップS932:No)、処理はステップS935に移る。ライト処理が複数のブロックにわたる場合に、次の書込みブロックが存在する場合は(ステップS935:Yes)、再度S910からの処理を繰り返す。次の書込みブロックが存在しない場合は(ステップS935:No)、本ライト処理を終了する。
図11は、本技術の第1の実施の形態におけるリード処理手順の一例を示す図である。ホストコンピュータ100よりリードコマンドを受け取ると、メモリコントローラ200は、リード処理を開始する。なお、このリードコマンドは、指定ページアドレスを含んでいる。まず、ブロック選択処理(ステップ960)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ読出し処理(ステップS970)を実行する。リード処理が複数のページにわたる場合に、次の読出しページが存在する場合は(ステップS982:Yes)、再度ページ読出し処理(ステップS970)を実行する。先に選択したブロック内で、次の読出しページが存在しない場合は(ステップS982:No)、処理はステップS985に移る。リード処理が複数のブロックにわたる場合に、次の読出しブロックが存在する場合は(ステップS985:Yes)、再度ステップS960からの処理を繰り返す。次の読出しブロックが存在しない場合は(ステップS985:No)、本リード処理を終了する。
上述の第1の実施の形態では、論理ページをそのまま物理ページとして使用していたが、本技術の第2の実施の形態では、メモリコントローラ200が論理ページアドレスから物理ページアドレスへのアドレス変換機能を備える。不揮発性メモリを使用した情報システムでは、特定のページにアクセスが集中する場合がある。このような場合に、アクセスを他のページに分散させるため、メモリコントローラにアドレス変換機能が付加される。ホストコンピュータ100より指定されたページのアドレスを論理ページアドレスとし、不揮発性メモリ320上のページのアドレスを物理ページアドレスとする。両者の対応関係を適宜変更してデータを再配置し、特定ページへのアクセス集中を分散させる。さらに、本実施の形態では、ブロック単位のアドレス変換機能も備える。第1および第2の代替処理は、これらのアドレス変換機能の一部として実現される。ページ単位のアドレス変換と第1の代替処理を行うアドレス変換部は、第1代替処理部250に含まれる。ブロック単位のアドレス変換と第2の代替処理を行うアドレス変換部は、第2代替処理部260に含まれる。なお、これらのアドレス変換部は、特許請求の範囲に記載のアドレス変換部の一例である。
図14は、本技術の第2の実施の形態における第1代替管理情報の一例を示す図である。本技術の実施の形態における第1代替管理情報は、論理ページ管理情報を含む第1アドレス変換テーブルと物理ページ管理情報を含む第1管理フラグ情報とにより構成される。同図におけるaは、第1アドレス変換テーブルを表し、同図におけるbは、第1管理フラグ情報を表している。第1アドレス変換テーブルは、ブロック内のデータ保存ページと同数の論理ページ管理情報を有する。この論理ページ管理情報は、当該論理ページに対して割り当てられた物理ページアドレスを含んでいる。また、物理ページアドレスは、ブロックの先頭ページからのオフセットアドレスとすることができる。第1管理フラグ情報は、ブロック内のページと同数の物理ページ管理情報を有する。この物理ページ管理情報は、データ保存ページと代替ページとでは異なっている。データ保存ページでは、当該ページのアドレスが論理ページアドレスに対応する物理ページアドレスとして割り当て済みであるか否かを示す物理ページ使用フラグと当該ページがエラーページであることを示す物理ページ不良フラグとを含んでいる。代替ページでは、当該ページが代替ページとして割り当て済みであることを示す代替ページ使用フラグと当該ページがエラーページであることを示す代替ページ不良フラグとを含んでいる。
図16は、本技術の第2の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100よりライトコマンドを受け取ると、メモリコントローラ200は、ライト処理を開始する。なお、このライトコマンドは、ライト対象の論理ページアドレスとライトデータとを含んでいる。まず、メモリコントローラ200は、物理ブロックアドレス取得(ステップS811)を実行する。これは、第2代替管理情報の第2アドレス変換テーブルから物理ブロックアドレスを取得することにより行う。次に、ページ書込み処理(ステップS820)を実行する。ライト処理が複数のページにわたる場合に、次の書込みページが存在する場合は(ステップS832:Yes)、再度ページ書込みを実行する(ステップS820)。先に取得したブロック内において、次の書込みページが存在しない場合は(ステップS835:No)、処理はステップS835に移る。ライト処理が複数のブロックにわたる場合に、次の書込みブロックが存在する場合は(ステップS835:Yes)、再度S811からの処理を繰り返す。次の書込みブロックが存在しない場合は(ステップS835:No)、本ライト処理を終了する。
図19は、本技術の第2の実施の形態におけるリード処理手順の一例を示す図である。ホストコンピュータ100よりリードコマンドを受け取ると、メモリコントローラ200は、リード処理を開始する。なお、このリードコマンドは、リード対象の論理ページアドレスを含んでいる。まず、物理ブロックアドレス取得(ステップS861)を実行する。これは、第2代替管理情報の第2アドレス変換テーブルから物理ブロックアドレスを取得することにより行う。次に、この物理ブロックアドレスに対応する物理ブロック使用フラグを検索する。このフラグがONすなわちブロックが使用中である場合は(ステップS881:Yes)、ページ読出し処理(ステップS870)を実行する。リード処理が複数のページにわたる場合に、次の読出しページが存在する場合は(ステップS882:Yes)、再度ページ読出し処理(ステップS870)を実行する。先に取得したブロック内に、次の読出しページが存在しない場合は(ステップS882:No)、処理はステップS885に移る。
上述の第1および第2の実施の形態では、第1および第2代替管理情報がメモリコントローラ200などに予め保持されていた。本技術の第3の実施の形態では、代替処理の発生時に動的に第1および第2代替管理情報が生成される。ここで、代替管理情報の生成とは、初期値として代替が発生していない状態の代替管理情報を作成することである。代替管理情報の生成後は、代替が発生するたびに、新たな代替管理情報を追加することとなる。
図21は、本技術の第3の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100よりライトコマンドを受け取ると、メモリコントローラ200は、ライト処理を開始する。なお、このライトコマンドは、ライト対象の指定ページアドレスとライトデータとを含んでいる。まず、ブロック選択処理(ステップS710)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ書込み処理(ステップS720)を実行する。ライト処理が複数のページにわたる場合に、次の書込みページが存在する場合は(ステップS752:Yes)、再度ページ書込みを実行する(ステップS720)。先に選択したブロック内で、次の書込みページが存在しない場合は(ステップS752:No)、処理はステップS755に移る。ライト処理が複数のブロックにわたる場合に、次の書込みブロックが存在する場合は(ステップS755:Yes)、再度S710からの処理を繰り返す。次の書込みブロックが存在しない場合は(ステップS755:No)、本ライト処理を終了する。
図25は、本技術の第3の実施の形態におけるリード処理手順の一例を示す図である。ホストコンピュータ100よりリードコマンドを受け取ると、メモリコントローラ200は、リード処理を開始する。なお、このリードコマンドは、指定ページアドレスを含んでいる。まず、ブロック選択処理(ステップ760)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ読出し処理(ステップS770)を実行する。リード処理が複数のページにわたる場合に、次の読出しページが存在する場合は(ステップS782:Yes)、再度ページ読出し処理(ステップS770)を実行する。先に選択したブロック内で、次の読出しページが存在しない場合は(ステップS782:No)、処理はステップS785に移る。リード処理が複数のブロックにわたる場合に、次の読出しブロックが存在する場合は(ステップS785:Yes)、再度ステップS760からの処理を繰り返す。次の読出しブロックが存在しない場合は(ステップS785:No)、本リード処理を終了する。
上述の第1および第2の実施の形態では、不揮発性メモリのページがアクセスの最小単位であったが、本技術の第4の実施の形態は、不揮発性メモリのページがさらに複数のバンクにより構成された場合の実施の形態である。
システムとしての機能構成やメモリコントローラ200、メモリ300の構成は、本技術の第1の実施の形態と同様であるため、以下では説明を省略する。
図28は、本技術の第4の実施の形態における不揮発性メモリの領域構成例を示す図である。図28は、不揮発性メモリ320内のページが、8個のバンクにより構成された場合の例である。メモリコントローラ200からは、バンク単位でアクセス可能である。一方ホストコンピュータとは、ページ単位でデータの入出力を行い、高速な書込み及び読出しに対応することができる。また、本技術の第4の実施の形態では、第1の代替処理は、バンク単位の代替処理となる。具体的には、データ保存ページのバンクでエラーが発生した場合、代替ページに属する同じバンク番号のバンクと代替する。なお、エラーブロックの代替は、前述した第2の代替処理と同じとすることができる。なお、ページがさらに複数のバンクにより構成される不揮発性メモリは、特許請求の範囲に記載の不揮発性メモリの一例である。
m=16384、d=1024、b=32、e=2とすることができる。
図30は、本技術の第4の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100よりライトコマンドを受け取ると、メモリコントローラ200は、ライト処理を開始する。なお、このライトコマンドは、ライト対象の指定ページアドレスとライトデータとを含んでいる。まず、ブロック選択処理(ステップ610)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ書込み処理(ステップS620)を実行する。ライト処理が複数のページにわたる場合に、次の書込みページが存在する場合は(ステップS632:Yes)、再度ページ書込みを実行する(ステップS620)。先に選択したブロック内で、次の書込みページが存在しない場合は(ステップS632:No)、処理はステップS635に移る。ライト処理が複数のブロックにわたる場合に、次の書込みブロックが存在する場合は(ステップS635:Yes)、再度S610からの処理を繰り返す。次の書込みブロックが存在しない場合は(ステップS635:No)、本ライト処理を終了する。
図34は、本技術の第4の実施の形態におけるリード処理手順の一例を示す図である。ホストコンピュータ100よりリードコマンドを受け取ると、メモリコントローラ200は、リード処理を開始する。なお、このリードコマンドは、指定ページアドレスを含んでいる。まず、ブロック選択処理(ステップS660)を実行し、指定ページアドレスに対応するブロックを選択する。次に、ページ読出し処理(ステップS670)を実行する。リード処理が複数のページにわたる場合に、次の読出しページが存在する場合は(ステップS682:Yes)、再度ページ読出し処理(ステップS670)を実行する。先に選択したブロック内で、次の読出しページが存在しない場合は(ステップS682:No)、処理はステップS685に移る。リード処理が複数のブロックにわたる場合に、次の読出しブロックが存在する場合は(ステップS685:Yes)、再度ステップS660からの処理を繰り返す。次の読出しブロックが存在しない場合は(ステップS685:No)、本リード処理を終了する。
上述の第4の実施の形態では、論理ページをそのまま物理ページとして使用していたが、本技術の第5の実施の形態では、メモリコントローラ200が論理ページアドレスから物理ページアドレスへのアドレス変換機能を備える。
図38は、本技術の第5の実施の形態におけるライト処理の処理手順の一例を示す図である。ホストコンピュータ100よりライトコマンドを受け取ると、メモリコントローラ200は、ライト処理を開始する。なお、このライトコマンドは、ライト対象の論理ページアドレスとライトデータとを含んでいる。まず、メモリコントローラ200は、各バンクの物理ブロックアドレス取得(ステップS511)を実行する。これは、第2代替管理情報の第2アドレス変換テーブルから物理ブロックアドレスを取得することにより行う。次に、ページ書込み処理(ステップS520)を実行する。ライト処理が複数のページにわたる場合に、次の書込みページが存在する場合は(ステップS532:Yes)、再度ページ書込み処理を実行する(ステップS520)。先に取得したブロック内で、次の書込みページが存在しない場合(ステップS532:No)は、処理はステップS535に移る。ライト処理が複数のブロックにわたる場合に、次の書込みブロックが存在する場合は(ステップS535:Yes)、再度S511からの処理を繰り返す。次の書込みブロックが存在しない場合は(ステップS535:No)、本ライト処理を終了する。
図41は、本技術の第5の実施の形態におけるリード処理手順の一例を示す図である。ホストコンピュータ100よりリードコマンドを受け取ると、メモリコントローラ200は、リード処理を開始する。なお、このリードコマンドは、リード対象の指定ページアドレスを含んでいる。まず、各バンクの物理ブロックアドレス取得(ステップS561)を実行する。これは、第2代替管理情報の第2アドレス変換テーブルから物理ブロックアドレスを取得することにより行う。次に、この物理ブロックアドレスに対応する物理ブロック使用フラグを検索する。このフラグがONすなわちブロックが使用中である場合は(ステップS581:Yes)、ページ読出し処理(ステップS570)を実行する。リード処理が複数のページにわたる場合に、次の読出しページが存在する場合は(ステップS582:Yes)、再度ページ読出し処理(ステップS570)を実行する。先に取得したブロック内に、次の読出しページが存在しない場合は(ステップS582:No)、処理はステップS585に移る。
上述の第1乃至第5の実施の形態では、メモリコントローラ200が、第1および第2の代替処理を行っていた。これに対し、本技術の第6の実施の形態では、第1の代替処理をメモリコントローラで行い、第2の代替処理をホストコンピュータが行う。この場合、ホストコンピュータによるファイルシステム管理情報に第2代替管理情報を含ませて、ブロック単位の代替処理を行うことも可能となる。
図44は、本技術の第6の実施の形態におけるホストコンピュータによるライト処理手順の一例を示す図である。ホストコンピュータ100は、ライト対象ページが属するブロックについて、対応する第2代替管理情報の代替ブロックフラグを検索する。このフラグがONすなわち代替を生じている場合は(ステップS412:Yes)、代替ブロックアドレスを使用して以降の処理を行うよう設定する(ステップS413)。つまり、代替ブロックのページアドレスを使用して、ライト処理を行う。一方、代替を生じていない場合は(ステップS412:No)、指定ブロックアドレスを使用して以降の処理を行うよう設定する(ステップS414)。つまり、ライト対象ページのアドレスを使用してライト処理を行う。ホストコンピュータ100は、以上の処理により得られたページアドレスをライトコマンドに含め、メモリコントローラ270に対し発行する(ステップS415)。メモリコントローラ270からの応答を待ち、書込みエラーが返されなかった場合は(ステップS416:No)、ライト処理を終了する。
図48は、本技術の第6の実施の形態におけるホストコンピュータによるリード処理手順の一例を示す図である。ホストコンピュータ100は、リード対象ページが属するブロックについて、対応する第2代替管理情報の代替ブロックフラグを検索する。このフラグがONすなわち代替を生じている場合は(ステップS462:Yes)、代替ブロックアドレスを使用して以降の処理を行うよう設定する(ステップS463)。つまり、代替ブロックのページアドレスを使用して、リード処理を行う。一方、代替を生じていない場合は(ステップS462:No)、指定ブロックアドレスを使用して以降の処理を行うよう設定する(ステップS464)。つまり、リード対象ページのアドレスを使用して以降の処理を行う。ホストコンピュータ100は、以上の処理により得られたページアドレスをリードコマンドに含め、メモリコントローラ270に対し発行する(ステップS465)。メモリコントローラ270からのリードデータ入力(ステップS466)を待って、リード処理を終了する。
[第1代替管理情報の一部を代替管理情報バッファに転送する例]
第1代替管理情報は、各ブロックの管理情報の集合体であるため、その一部のみを取出すことが可能である。そこで、ホストコンピュータ100による処理に必要となるブロックの管理情報だけを代替管理情報バッファ230に転送し、使用する構成とすることもできる。
エラーブロックが生じると第2の代替処理が行われるため、このブロックに関する第1代替管理情報は今後参照されることはない。そのため、第2の代替処理が行われるたびにこの不要となった第1代替管理情報を削除する構成としてもよい。
総ページ数に対する代替ページ数の割合を使用する不揮発性メモリにおける総ページ数当たりのエラーページ発生割合の期待値に近い構成にすることも可能である。同様に、総ブロック数に対する代替ブロック数の割合を使用する不揮発性メモリにおける総ブロック数当たりのエラーブロック発生割合の期待値に近い構成にすることも可能である。このような構成とすることにより、必要以上に代替ページおよびブロックを用意することなく、予想されるエラー発生に適応可能な代替機能を提供することができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
(1)不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際には前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替し、前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替するメモリコントローラ。
(2)前記エラーページと前記代替ページとの対応関係を示す第1の管理情報を保持する第1の管理情報バッファと、
前記代替ページが不足したブロックと前記代替ブロックとの対応関係を示す第2の管理情報を保持する第2の管理情報バッファと
を具備する前記(1)に記載のメモリコントローラ。
(3)前記エラーページが最初に発生したときに前記第1の管理情報を作成し、前記代替ページが不足するブロックが最初に発生したときに前記第2の管理情報を作成する前記(2)に記載のメモリコントローラ。
(4)指定されたページの論理アドレスをページの物理アドレスに変換し、前記エラーページを代替する際には前記エラーページの物理アドレスに代えて前記代替ページの物理アドレスに論理アドレスを変換し、前記代替ページが不足したときには前記代替ブロックに属するページの物理アドレスに論理アドレスを変換するアドレス変換部を具備する前記(1)または(2)に記載のメモリコントローラ。
(5)前記ページはさらに複数のバンクからなり、前記エラーページを代替する際には前記代替ページに属するバンクによって当該エラーページに属するエラーバンクをバンク単位で代替し、前記エラーページの属するブロックにおいて前記代替ページに属するバンクが不足したときには前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページに属するバンクによって前記エラーバンクを代替する前記(1)から(4)のいずれかに記載のメモリコントローラ。
(6)不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際には前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替し、前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替するメモリコントローラと
を具備する記憶装置。
(7)前記不揮発性メモリは、前記ブロックに割り当てられた前記代替ページ数が前記ブロックに含まれるページ数におけるエラーページの発生数の期待値と略一致するよう構成され、前記代替ブロック数が全ブロック数に対する前記代替ページが不足したブロックの発生数の期待値と略一致するよう構成される前記(6)に記載の記憶装置。
(8)前記不揮発性メモリは、前記エラーページと前記代替ページとの対応関係を示す第1の管理情報と前記代替ページが不足したブロックと前記代替ブロックとの対応関係を示す第2の管理情報とを記憶し、
前記メモリコントローラは、
前記第1の管理情報を保持する第1の管理情報バッファと、
前記第2の管理情報を保持する第2の管理情報バッファと
を備える前記(6)に記載の記憶装置。
(9)不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際には前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替し、前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替するメモリコントローラと、
前記メモリコントローラを介して前記不揮発性メモリにアクセスするホストコンピュータと
を具備する情報処理システム。
(10)不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際には前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替するメモリコントローラと、
前記メモリコントローラを介して前記不揮発性メモリにアクセスするホストコンピュータと
を具備し、
前記ホストコンピュータは、前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックにアクセス先を変更して当該代替ブロックに属するページによって前記エラーページを代替する
情報処理システム。
(11)不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際には前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する手順と、
前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替する手順と
を具備する不揮発性メモリの制御方法。
109 メモリコントローラインターフェース
110 プロセッサ
200 メモリコントローラ
210 制御部
220 データバッファ
230 代替管理情報バッファ
250 第1代替処理部
260 第2代替処理部
270 メモリコントローラ
300 メモリ
309 メモリコントローラインターフェース
310 制御部
320 不揮発性メモリ
330 データブロック領域
340 代替ブロック領域
Claims (11)
- 不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際に前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する第1代替処理部と、
前記エラーページの属するブロックにおいて前記代替ページが不足したときに前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替する第2代替処理部と、
前記代替ページと前記エラーページとの関係を表した第1の管理情報を前記ブロックごとに保持するバッファと、
前記第1の管理情報に基づいて前記第1代替処理部に前記代替を行わせ、前記代替ページが不足したときに当該代替ページが不足したブロックであるエラーブロックに対応する前記第1の管理情報を前記バッファから削除するとともに前記代替ブロックと前記エラーブロックとの関係を表した第2の管理情報に基づいて前記第2代替処理部に前記代替を行わせる制御部と
を具備するメモリコントローラ。 - 前記バッファは、
前記第1の管理情報を保持する第1の管理情報バッファと、
前記第2の管理情報を保持する第2の管理情報バッファと
を備える請求項1記載のメモリコントローラ。 - 前記エラーページが最初に発生したときに前記第1の管理情報を作成し、前記代替ページが不足するブロックが最初に発生したときに前記第2の管理情報を作成する請求項1記載のメモリコントローラ。
- 指定されたページの論理アドレスをページの物理アドレスに変換し、前記エラーページを代替する際には前記エラーページの物理アドレスに代えて前記代替ページの物理アドレスに論理アドレスを変換し、前記代替ページが不足したときには前記代替ブロックに属するページの物理アドレスに論理アドレスを変換するアドレス変換部をさらに具備する請求項1記載のメモリコントローラ。
- 前記ページはさらに複数のバンクからなり、
前記第1代替処理部は、前記エラーページを代替する際に前記代替ページに属するバンクによって当該エラーページに属するエラーバンクをバンク単位で代替し、
前記第2代替処理部は、前記エラーページの属するブロックにおいて前記代替ページに属するバンクが不足したときに前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページに属するバンクによって前記エラーバンクを代替する
請求項1記載のメモリコントローラ。 - 不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際に前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する第1代替処理部と、
前記エラーページの属するブロックにおいて前記代替ページが不足したときに前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替する第2代替処理部と、
前記代替ページと前記エラーページとの関係を表した第1の管理情報を前記ブロックごとに保持するバッファと、
前記第1の管理情報に基づいて前記第1代替処理部に前記代替を行わせ、前記代替ページが不足したときに当該代替ページが不足したブロックであるエラーブロックに対応する前記第1の管理情報を前記バッファから削除するとともに前記代替ブロックと前記エラーブロックとの関係を表した第2の管理情報に基づいて前記第2代替処理部に前記代替を行わせる制御部と
を備えるメモリコントローラと
を具備する記憶装置。 - 前記不揮発性メモリは、前記ブロックに割り当てられた前記代替ページ数が前記ブロックに含まれるページ数におけるエラーページの発生数の期待値と略一致するよう構成され、前記代替ブロック数が全ブロック数に対する前記代替ページが不足したブロックの発生数の期待値と略一致するよう構成される請求項6記載の記憶装置。
- 前記不揮発性メモリは、前記第1の管理情報と前記第2の管理情報とを記憶し、
前記バッファは、
前記第1の管理情報を保持する第1の管理情報バッファと、
前記第2の管理情報を保持する第2の管理情報バッファと
を備える請求項6記載の記憶装置。 - 不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際に前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する第1代替処理部と、
前記エラーページの属するブロックにおいて前記代替ページが不足したときに前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替する第2代替処理部と、
前記代替ページと前記エラーページとの関係を表した第1の管理情報を前記ブロックごとに保持するバッファと、
前記第1の管理情報に基づいて前記第1代替処理部に前記代替を行わせ、前記代替ページが不足したときに当該代替ページが不足したブロックであるエラーブロックに対応する前記第1の管理情報を前記バッファから削除するとともに前記代替ブロックと前記エラーブロックとの関係を表した第2の管理情報に基づいて前記第2代替処理部に前記代替を行わせる制御部と
を備えるメモリコントローラと、
前記メモリコントローラを介して前記不揮発性メモリにアクセスするホストコンピュータと
を具備する情報処理システム。 - 不揮発性メモリと、
前記不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際に前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する第1代替処理部と、
前記代替ページと前記エラーページとの関係を表した第1の管理情報を前記ブロックごとに保持するバッファと、
前記第1の管理情報に基づいて前記第1代替処理部に前記代替を行わせ、前記代替ページが不足したときに当該代替ページが不足したブロックであるエラーブロックに対応する前記第1の管理情報を前記バッファから削除する制御部と
を具備するメモリコントローラと、
前記メモリコントローラを介して前記不揮発性メモリにアクセスするホストコンピュータと
を具備し、
前記ホストコンピュータは、前記エラーページの属するブロックにおいて前記代替ページが不足したときには前記エラーページの属するブロックとは異なる代替ブロックにアクセス先を変更して当該代替ブロックに属するページによって前記エラーページを代替する
情報処理システム。 - 第1の代替処理部が、不揮発性メモリの複数のページからなるブロックにおいてエラーページを代替する際に前記エラーページの属するブロックに割り当てられた代替ページによって前記エラーページを代替する処理を行う第1代替処理手順と、
制御部が、前記第1の管理情報をバッファに保持させる手順と、
第2の代替処理部が、前記エラーページの属するブロックにおいて前記代替ページが不足したときに前記エラーページの属するブロックとは異なる代替ブロックを新たに確保して当該代替ブロックに属するページによって前記エラーページを代替する処理を行う第2代替処理手順と、
制御部が、前記代替ページが不足したときに当該代替ページが不足したブロックであるエラーブロックに対応する前記第1の管理情報を前記バッファから削除するとともに前記代替ブロックと前記エラーブロックとの関係を表した第2の管理情報に基づいて前記第2代替処理部に前記代替を行わせる制御手順と
を具備する不揮発性メモリの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014041749A JP6102800B2 (ja) | 2014-03-04 | 2014-03-04 | メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 |
US14/620,939 US9582411B2 (en) | 2014-03-04 | 2015-02-12 | Memory controller, storage apparatus, information processing system, and control method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014041749A JP6102800B2 (ja) | 2014-03-04 | 2014-03-04 | メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015166993A JP2015166993A (ja) | 2015-09-24 |
JP6102800B2 true JP6102800B2 (ja) | 2017-03-29 |
Family
ID=54017480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014041749A Active JP6102800B2 (ja) | 2014-03-04 | 2014-03-04 | メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9582411B2 (ja) |
JP (1) | JP6102800B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190102319A1 (en) * | 2016-03-16 | 2019-04-04 | Sony Corporation | Memory controller, memory system, information processing system, memory control method, and program |
CN111863117B (zh) * | 2020-07-08 | 2022-04-29 | 上海威固信息技术股份有限公司 | 一种闪存错误页比例评估模型及方法 |
CN111863110B (zh) * | 2020-07-08 | 2022-04-29 | 上海威固信息技术股份有限公司 | 一种基于比特错误率的闪存错误页比例评估模型及方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4475194A (en) * | 1982-03-30 | 1984-10-02 | International Business Machines Corporation | Dynamic replacement of defective memory words |
JP3928500B2 (ja) | 2002-02-26 | 2007-06-13 | 株式会社日立製作所 | メモリ装置 |
JP4433792B2 (ja) * | 2003-12-26 | 2010-03-17 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP4357305B2 (ja) * | 2004-01-09 | 2009-11-04 | 株式会社バッファロー | 外部記憶装置 |
KR100572328B1 (ko) * | 2004-07-16 | 2006-04-18 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
TWI311250B (en) * | 2006-05-02 | 2009-06-21 | Novatek Microelectronics Corp | Method for memory page memagement |
JP2008090451A (ja) * | 2006-09-29 | 2008-04-17 | Toshiba Corp | 記憶装置 |
JP4939234B2 (ja) * | 2007-01-11 | 2012-05-23 | 株式会社日立製作所 | フラッシュメモリモジュール、そのフラッシュメモリモジュールを記録媒体として用いたストレージ装置及びそのフラッシュメモリモジュールのアドレス変換テーブル検証方法 |
JP2008204041A (ja) * | 2007-02-19 | 2008-09-04 | Hitachi Ltd | ストレージ装置及びデータ配置制御方法 |
JP4897524B2 (ja) * | 2007-03-15 | 2012-03-14 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのライト性能低下防止方法 |
TWI358068B (en) * | 2007-10-19 | 2012-02-11 | Phison Electronics Corp | Writing method for non-volatile memory and control |
JP4829202B2 (ja) * | 2007-11-02 | 2011-12-07 | 株式会社日立製作所 | 記憶装置及びメモリ制御方法 |
US8321625B2 (en) * | 2007-12-05 | 2012-11-27 | Densbits Technologies Ltd. | Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith |
US8259498B2 (en) * | 2008-12-08 | 2012-09-04 | Infinite Memory Ltd. | Continuous address space in non-volatile-memories (NVM) using efficient management methods for array deficiencies |
TWI420308B (zh) * | 2010-10-13 | 2013-12-21 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
JP5720210B2 (ja) * | 2010-12-02 | 2015-05-20 | 富士通株式会社 | アクセス制御装置、誤り訂正制御方法およびストレージ装置 |
TWI459393B (zh) * | 2011-01-19 | 2014-11-01 | Phison Electronics Corp | 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置 |
US8756398B2 (en) * | 2011-02-18 | 2014-06-17 | Synopsys Inc. | Partitioning pages of an electronic memory |
US9058288B2 (en) * | 2011-04-03 | 2015-06-16 | Apple Inc. | Redundant storage in non-volatile memory by storing redundancy information in volatile memory |
GB2479076C (en) * | 2011-05-03 | 2014-08-13 | Broadcom Corp | Uplink transmission power control mechanism |
KR102072449B1 (ko) * | 2012-06-01 | 2020-02-04 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법 |
-
2014
- 2014-03-04 JP JP2014041749A patent/JP6102800B2/ja active Active
-
2015
- 2015-02-12 US US14/620,939 patent/US9582411B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9582411B2 (en) | 2017-02-28 |
JP2015166993A (ja) | 2015-09-24 |
US20150254133A1 (en) | 2015-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI670594B (zh) | 資料儲存裝置 | |
CN101788955B (zh) | 闪存数据的存取方法及其储存系统与控制器系统 | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN103608866B (zh) | 用于闪存存储器的数据擦除方法及装置 | |
JP6102800B2 (ja) | メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 | |
CN101546282B (zh) | 用于在处理器中执行写拷贝的方法和设备 | |
US20180081797A1 (en) | Wear-leveling nandflash memory reading/writing method | |
JP2005500592A5 (ja) | ||
CN105589811A (zh) | 数据储存装置与操作方法 | |
JP5969130B2 (ja) | 情報処理装置 | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
JP2014157391A (ja) | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 | |
WO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、記録媒体 | |
US20170160988A1 (en) | Memory system that carries out an atomic write operation | |
JP5093294B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US20210103445A1 (en) | Method and apparatus for preprocessing data transfer commands | |
JP4242245B2 (ja) | フラッシュrom制御装置 | |
US11467970B1 (en) | Metadata management in non-volatile memory devices using in-memory journal | |
CN107122124B (zh) | 数据处理方法及装置 | |
US20150067237A1 (en) | Memory controller, semiconductor memory system, and memory control method | |
CN112416811B (zh) | 基于数据关联度的垃圾回收方法、闪存及装置 | |
JP2011008570A5 (ja) | ||
JP4888333B2 (ja) | フラッシュディスク装置 | |
JP2020170477A (ja) | 記憶装置、その制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151228 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170106 |
|
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: 20170131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170213 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6102800 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |