JP5929456B2 - 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 - Google Patents

記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Download PDF

Info

Publication number
JP5929456B2
JP5929456B2 JP2012093521A JP2012093521A JP5929456B2 JP 5929456 B2 JP5929456 B2 JP 5929456B2 JP 2012093521 A JP2012093521 A JP 2012093521A JP 2012093521 A JP2012093521 A JP 2012093521A JP 5929456 B2 JP5929456 B2 JP 5929456B2
Authority
JP
Japan
Prior art keywords
verification
history information
area
memory
status
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
JP2012093521A
Other languages
English (en)
Other versions
JP2013222315A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2012093521A priority Critical patent/JP5929456B2/ja
Priority to US13/827,926 priority patent/US9170893B2/en
Priority to CN201310122226.4A priority patent/CN103377140B/zh
Publication of JP2013222315A publication Critical patent/JP2013222315A/ja
Application granted granted Critical
Publication of JP5929456B2 publication Critical patent/JP5929456B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本技術は、記憶制御装置に関する。詳しくは、不揮発性メモリのための記憶制御装置、記憶装置、情報処理システム、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
NANDフラッシュメモリやReRAM(Resistance RAM)などの不揮発性メモリにおいては、選択されたワードラインに接続されたメモリセルに対して一括して書込みや消去が行われる。データの書込み時または消去時には、データの信頼性を保証するために、メモリセルへの書込み動作または消去動作の実行後、検証(ベリファイ)読出しをする方式が用いられている。製造プロセスに起因するばらつきの影響によって、メモリセルへの書込み動作または消去動作と検証読出しの実行を1回実行しただけでは正しく書込み動作または消去動作が終了しないことがある。この場合、書込み動作または消去動作と検証読出しの実行とが複数回繰り返して実行されることになる。
一方、NANDフラッシュメモリやReRAMにおいてデータを誤りなく記録または読み出しを行うために、メモリチップ内部もしくはメモリコントローラに誤り訂正機能を有している。この誤り訂正機能を利用することにより、ある程度のエラーの発生を許容して、上述の繰り返し回数を減らして、データの書込みまたは消去を高速化する方法も提案されている(例えば、特許文献1乃至3参照。)。
特開平06−131884号公報 特開2002−048783号公報 特開平10−222995号公報
上述の従来技術では、誤り訂正機能を前提とすることにより、ある程度のエラーの発生を許容して、データの書込みまたは消去の高速化を図っている。しかしながら、上述の従来技術では、書込み動作または消去動作と検証読出しの実行との繰返しの程度を予測することができず、メモリセルの性質を把握することができなかった。そのため、メモリに対する要求性能に合わせてメモリの使用領域を選択することができなかった。
本技術はこのような状況に鑑みて生み出されたものであり、メモリに対する要求性能に合わせてメモリの使用領域を選択することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリにおけるライト後の検証の実行回数を含むステータスを上記メモリから取得するステータス取得部と、上記ステータスの履歴を履歴情報として上記メモリの所定の領域毎に関連付けて保持する履歴情報保持部と、上記メモリにおいて新たな領域を使用する際には上記履歴情報に従って条件に合致した領域を選択する領域選択部とを具備する記憶制御装置またはその記憶制御方法である。これにより、ライト後の検証の履歴情報に従って条件に合致した領域をメモリにおいて選択するという作用をもたらす。
また、この第1の側面において、上記領域選択部は、上記条件として高速性が要求されている場合には上記履歴情報における上記検証の実行回数に基づいて領域を選択するようにしてもよい。これにより、高速性という条件に合致した領域をメモリにおいて選択するという作用をもたらす。この場合において、特に、上記履歴情報において上記検証の実行回数がより少ない領域を選択するようにしてもよい。
また、この第1の側面において、上記ステータス取得部は、上記ステータスとして上記検証において検出されたエラー数を受け取り、上記領域選択部は、上記条件として高信頼性が要求されている場合には上記履歴情報における上記検出されたエラー数に基づいて領域を選択するようにしてもよい。これにより、高信頼性という条件に合致した領域をメモリにおいて選択するという作用をもたらす。この場合において、特に、上記履歴情報において上記検出されたエラー数がより少ない領域を選択するようにしてもよい。
また、この第1の側面において、上記メモリに対して新たなライトを行う際には上記履歴情報に従ってパラメータを指定するパラメータ指定部をさらに具備してもよい。これにより、指定されたパラメータによりライトを実行するという作用をもたらす。
また、この第1の側面において、上記パラメータ指定部は、ライト後の検証において許容されるエラー数を上記パラメータとして指定するようにしてもよい。これにより、指定された許容エラー数を上限としてライトを実行するという作用をもたらす。
また、この第1の側面において、上記ステータス取得部は、上記ステータスとして上記検証において検出されたエラー数を受け取り、上記パラメータ指定部は、上記履歴情報に含まれる上記検出されたエラー数に従って上記許容されるエラー数を上記パラメータとして指定するようにしてもよい。これにより、過去のライト時に検出されたエラー数に従って許容エラー数を指定してライトを実行するという作用をもたらす。
また、この第1の側面において、上記パラメータ指定部は、ライトの際に上記メモリにおいて印加すべきパルスの電圧レベルの初期値を上記パラメータとして指定するようにしてもよい。これにより、指定された電圧レベルを初期値としてパルスを印加してライトを実行するという作用をもたらす。
また、この第1の側面において、上記履歴情報保持部は、上記パラメータとして指定した電圧レベルの初期値を上記履歴情報として保持し、上記パラメータ指定部は、上記履歴情報に含まれる上記電圧レベルの初期値に従って新たなライトの際に上記メモリにおいて印加すべきパルスの電圧レベルの初期値を上記パラメータとして指定するようにしてもよい。これにより、過去のライト時の電圧レベルの初期値に従って、新たなライトの電圧レベルの初期値を指定してライトを実行するという作用をもたらす。
また、本技術の第2の側面は、メモリアレイと、上記メモリアレイにおけるライト後の検証を実行する検証部と、上記検証の実行回数を計数する検証回数カウンタと、上記検証の実行回数を含むステータスを取得するステータス取得部と、上記ステータスの履歴を履歴情報として上記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、上記メモリアレイにおいて新たな領域を使用する際には上記履歴情報に従って条件に合致した領域を選択する領域選択部とを具備する記憶装置である。これにより、メモリアレイにおけるライト後の検証の履歴情報に従って条件に合致した領域をメモリにおいて選択するという作用をもたらす。
また、この第2の側面において、上記検証において検出されたエラー数を計数する検出エラー数カウンタをさらに具備し、上記ステータス取得部は、上記ステータスとして上記検出されたエラー数を受け取り、上記領域選択部は、上記条件として高信頼性が要求されている場合には上記履歴情報において上記検出されたエラー数がより少ない領域を選択するようにしてもよい。これにより、高信頼性という条件に合致した領域をメモリにおいて選択するという作用をもたらす。
また、本技術の第3の側面は、メモリアレイと、上記メモリアレイにおけるライト後の検証を実行する検証部と、上記検証の実行回数を計数する検証回数カウンタと、上記検証の実行回数を含むステータスを取得するステータス取得部と、上記ステータスの履歴を履歴情報として上記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、上記メモリアレイにおいて新たな領域を使用する際には上記履歴情報に従って条件に合致した領域を選択する領域選択部と、上記メモリアレイに対するライトコマンドを発行するホストコンピュータとを具備する情報処理システムである。これにより、新たに発行したライトコマンドを実行する際、メモリアレイにおけるライト後の検証の履歴情報に従って条件に合致した領域をメモリにおいて選択するという作用をもたらす。
本技術によれば、メモリに対する要求性能に合わせてメモリの使用領域を選択することができるという優れた効果を奏し得る。
本技術の第1の実施の形態における情報処理システムの一構成例を示す図である。 本技術の第1の実施の形態における記憶制御部200の機能構成例を示す図である。 本技術の第1の実施の形態における不揮発性メモリ300の一構成例を示す図である。 本技術の第1の実施の形態における不揮発性メモリ300に記憶されるデータ構成例を示す図である。 本技術の第1の実施の形態におけるアドレス変換テーブル221の一構成例を示す図である。 本技術の第1の実施の形態における履歴情報管理テーブル222の一構成例を示す図である。 本技術の第1の実施の形態における記憶制御部200のライトコマンド処理手順の一例を示す流れ図である。 本技術の第1の実施の形態における記憶制御部200の論理ページライト処理の処理手順例を示す流れ図である。 本技術の実施の形態における記憶制御部200のライト処理の処理手順例を示す流れ図である。 本技術の実施の形態における不揮発性メモリ300のプログラム動作の処理手順例を示す流れ図である。 本技術の実施の形態における不揮発性メモリ300の消去動作の処理手順例を示す流れ図である。 本技術の第2の実施の形態における情報処理システムの一構成例を示す図である。 本技術の第2の実施の形態における不揮発性メモリ301および302に記憶されるデータ構成例を示す図である。 本技術の第2の実施の形態におけるアドレス変換テーブル221の一構成例を示す図である。 本技術の第2の実施の形態における、不揮発性メモリ301の履歴情報管理テーブル222の一構成例を示す図である。 本技術の第2の実施の形態における、不揮発性メモリ302の履歴情報管理テーブル222の一構成例を示す図である。 本技術の第2の実施の形態における記憶制御部200の論理ページライト処理の処理手順例を示す流れ図である。 本技術の第3の実施の形態における不揮発性メモリ301または302の一構成例を示す図である。 本技術の第3の実施の形態における不揮発性メモリ301の履歴情報管理テーブル222の一構成例を示す図である。 本技術の第3の実施の形態における不揮発性メモリ302の履歴情報管理テーブル222の一構成例を示す図である。 本技術の第3の実施の形態における不揮発性メモリ300のプログラム動作の処理手順例を示す流れ図である。 本技術の第3の実施の形態における不揮発性メモリ300の消去動作の処理手順例を示す流れ図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(検証実行回数と検出エラー数を履歴情報に含む例)
2.第2の実施の形態(複数のNVMを組み合わせて使用する例)
3.第3の実施の形態(検証実行回数と印加パルスの開始レベルを履歴情報に含む例)
<1.第1の実施の形態>
[情報処理システムの構成]
図1は、本技術の第1の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ホストコンピュータ100と、記憶制御部200と、不揮発性メモリ(NVM:Non-Volatile Memory)300とから構成される。記憶制御部200および不揮発性メモリ300はストレージシステムを構成する。
ホストコンピュータ100は、不揮発性メモリ300に対してデータのリードまたはライトを要求するコマンドを発行するものである。
記憶制御部200は、ホストコンピュータ100と通信してコマンドを受信し、不揮発性メモリ300へのデータ書込みおよび不揮発性メモリ300からのデータ読出しを実行するものである。記憶制御部200は、ライトコマンドを受信した場合、ホストコンピュータ100から受信したデータを、不揮発性メモリ300に書き込む。また、記憶制御部200は、リードコマンドを受信した場合、不揮発性メモリ300からデータを読み出してホストコンピュータ100に転送する。
ホストコンピュータ100がライトコマンド、リードコマンドを実行するとき、記憶制御部200内で、データの位置情報を表すアドレスとして論理アドレスが用いられる。論理アドレスは、例えば512バイトでアドレッシングされるものとする。ホストコンピュータ100が、ライトコマンドやリードコマンドを実行するときには、アクセスを開始する先頭論理アドレスおよびデータサイズを指定する。データサイズで指定される値は、512×nバイトで表されるnである。
記憶制御部200は、プロセッサ210と、RAM220と、ROM230と、ECC処理部240と、ホストインターフェース201と、NVMインターフェース203とを備える。
プロセッサ210は、記憶制御部200全体の制御を行うものである。このプロセッサ210は、ROM230に格納されたソフトウェアを実行する。RAM220は、揮発性のメモリであり、プロセッサ210のワーキングメモリや、不揮発性メモリ300を管理するデータを一時的に保持するための領域として用いられる。また、RAM220は、ホストコンピュータ100と記憶制御部200との間で転送されるデータを一時的に保持するための領域や、記憶制御部200と不揮発性メモリ300との間で転送されるデータを一時的に保持するための領域としても用いられる。ROM230は、ストレージシステムを制御するためのソフトウェアプログラムを格納するメモリである。
ECC処理部240は、不揮発性メモリ300に記録されるデータのエラー訂正コード(ECC:Error Correcting Code)の生成、および、不揮発性メモリ300から読み出したデータのエラー訂正処理を実行するものである。
不揮発性メモリ300は、不揮発性のメモリであり、ストレージシステムの記憶領域として動作する。この不揮発性メモリ300では、ホストコンピュータ100からのライトコマンドに基づくライト処理として、プログラム動作および消去動作を行う。プログラム動作においては、任意の値が不揮発性メモリ300のメモリアレイの指定された領域に書き込まれる。消去動作では不揮発性メモリ300のメモリアレイの指定された領域が消去される。プログラム動作および消去動作の何れにおいても、直後に検証(ベリファイ)のための読出しが行われ、プログラム動作および消去動作が確実に行われたか否かが確認される。
ホストインターフェース201は、ホストコンピュータ100と接続され、ホストコンピュータ100からのコマンドの受信、および、ホストコンピュータ100とのデータの受送信を実行するものである。
NVMインターフェース203は、不揮発性メモリ300と接続され、不揮発性メモリ300に対する指示の送信、ライトデータの送信、および、リードデータの受信を実行するものである。
[記憶制御部の機能構成]
図2は、本技術の第1の実施の形態における記憶制御部200の機能構成例を示す図である。ここでは、記憶制御部200の機能構成として、アドレス変換テーブル221と、履歴情報管理テーブル222と、ステータス取得部211と、ページ選択部212と、パラメータ指定部213とが示されている。なお、ここでは、実施の形態に関連性のある機能にフォーカスして示しており、通常のメモリアクセスに関する機能については省略している。
アドレス変換テーブル221は、論理アドレスから物理アドレスへ変換するためのテーブルである。ホストコンピュータ100からのコマンドにおいては通常の場合、論理アドレスが用いられるため、このアドレス変換テーブル221を用いて物理アドレスへの変換が行われる。
履歴情報管理テーブル222は、不揮発性メモリ300におけるライト処理の履歴情報を保持して管理するためのテーブルである。この履歴情報としては、後述するように、不揮発性メモリ300からのステータスを用いることができる。なお、この履歴情報管理テーブル222は、特許請求の範囲に記載の履歴情報保持部の一例である。
これらアドレス変換テーブル221および履歴情報管理テーブル222は、ストレージシステムに電源が供給されていない間は、不揮発性メモリ300の予め定められた位置に記憶されている。記憶制御部200は、電源投入時の初期化処理において、予め定められた位置から2つのテーブルを読み出し、それらをRAM220に一時的に保持する。記憶制御部200は、ホストコンピュータ100から電源遮断を予告されると、2つのテーブルを不揮発性メモリ300の定められた位置に書き込む。予期せぬ電源遮断の影響を最小限に抑えるため、一定の処理ごとにデータを不揮発性メモリ300に書き込む処理を行うことが望ましい。なお、アドレス変換テーブル221および履歴情報管理テーブル222の具体的な構成については後述する。
ステータス取得部211は、不揮発性メモリ300におけるライト後のステータスを不揮発性メモリ300から取得するものである。この第1の実施の形態においては、ステータスとして、検証を実行した回数(検証実行回数)、および、検証により検出されたエラー数(検出エラー数)を想定する。ここで、エラー数とは、エラーを生じたビットの数をいう。このステータス取得部211によって取得されたステータスは、アドレス変換テーブル221および履歴情報管理テーブル222の更新のために用いられる。
ページ選択部212は、不揮発性メモリ300において新たな領域を使用する際に、履歴情報管理テーブル222に保持された履歴情報に従って、条件に合致した物理ページを選択するものである。ここにいう条件とは、ページの属性に関する条件であり、例えば、高信頼性や、高速性などの条件をいう。この条件の指定は、ホストコンピュータ100からライト時に指定することができる。また、ホストコンピュータ100からライト時に指定された論理アドレスに基づいて、その論理アドレスの属する領域の性質から推定するようにしてもよい。例えば、その論理アドレスがファイル管理領域に属する場合には、高信頼性が要求されるものと推定することができる。ページ選択部212は、新たな物理ページを選択して論理ページに割り当てる場合、アドレス変換テーブル221に物理ページと論理ページの組合せを登録する。
パラメータ指定部213は、不揮発性メモリ300に対してライト処理を指示する際に、ライト処理に使用されるパラメータを指定するものである。この第1の実施の形態においては、パラメータとして、ライト処理の検証の際に許容されるエラー数(許容エラー数)を想定する。上述のように、記憶制御部200はECC処理部240を有しており、このECC処理部240において訂正可能な範囲であればある程度のエラーは許容することも可能である。そこで、この第1の実施の形態では、ライト処理を指示する際に許容エラー数をパラメータとして指定できるようにしている。
[不揮発性メモリの構成]
図3は、本技術の第1の実施の形態における不揮発性メモリ300の一構成例を示す図である。この不揮発性メモリ300は、メモリアレイ310と、データバッファ320と、検証部330と、検証回数カウンタ340と、検証成否判定部350と、検出エラー数カウンタ360と、許容エラー数レジスタ370と、制御部390とを備えている。
また、この不揮発性メモリ300は、記憶制御部200との間のインターフェースである制御インターフェース309を備えている。この制御インターフェース309は、記憶制御部200からのコマンドや物理アドレスおよびパラメータの受信、メモリアレイ310へのライトデータの受信、メモリアレイ310からのリードデータの送信、制御データの受送信などを行う。
メモリアレイ310は、不揮発性のメモリセルアレイであり、ビット毎に2値の何れかの値を記憶するメモリセルが2次元状に多数配列されている。このメモリアレイ310にアクセスするホストコンピュータ100からのコマンドの単位は物理ページ単位である。物理ページには物理ページアドレスが割り振られている。
データバッファ320は、記憶制御部200から出力されたライトデータ、および、メモリアレイ310から読み出されたリードデータを一時的に保持するバッファである。
検証部330は、メモリアレイ310に書き込んだライトデータの検証(ベリファイ)処理を実行するものである。検証回数カウンタ340は、検証部330において検証処理を実行した回数をカウントするものである。
検出エラー数カウンタ360は、検証動作時に検出されたエラー数、すなわちエラーを生じたビット数をカウントするものである。許容エラー数レジスタ370は、記憶制御部200から受信した許容エラー数をパラメータとして一時的に保持するレジスタである。検証成否判定部350は、許容エラー数レジスタ370に保持されたパラメータと、検出エラー数カウンタ360でカウントされた数とに基づいて、記憶制御部200から指示されたライト処理が、最終的に成功したか否かを判定するものである。
制御部390は、メモリアレイ310に対するデータの書込み、消去、読出し処理の制御を行うものである。
[不揮発性メモリにおけるデータ構成]
図4は、本技術の第1の実施の形態における不揮発性メモリ300に記憶されるデータ構成例を示す図である。不揮発性メモリ300にアクセスするホストコンピュータ100からのコマンドの単位は物理ページ単位である。この例では、物理ページが512バイト(4096ビット)であることを想定している。また、ECC処理部240は、512バイトのデータに対して52ビットのエラー訂正コードを生成する。したがって、物理ページの全体の長さは4148ビットになる。このエラー訂正コードは、512バイトのデータにおいて4ビットの訂正能力があることを想定している。
[アドレス変換テーブルの構成]
図5は、本技術の第1の実施の形態におけるアドレス変換テーブル221の一構成例を示す図である。このアドレス変換テーブル221では、論理ページの論理アドレスに関連付けて、それぞれデータフラグおよび物理ページアドレスが保持されている。
データフラグは、対応する論理アドレスに有効なデータが書き込まれているか否かを示すフラグである。このデータフラグは、有効なデータが書き込まれていれば「True」を示し、有効なデータが書き込まれていなければ「False」を示す。データフラグが「False」を示す場合には、物理ページアドレスには有効なアドレスは保持されない。
[履歴情報管理テーブル222の構成]
図6は、本技術の第1の実施の形態における履歴情報管理テーブル222の一構成例を示す図である。この履歴情報管理テーブル222は、不揮発性メモリ300の状態およびライト処理の履歴情報を、不揮発性メモリ300の物理ページアドレス毎に関連付けて保持する。
ここで、不揮発性メモリ300の状態とは、物理ページの使用状態であり、「使用中」、「空き」、「未消去」の3つの値をとる。「使用中」は、該当する物理ページアドレスに有効なデータが書き込まれており、アドレス変換テーブル221によって管理されている物理ページアドレスであることを示す。「空き」は、該当する物理ページアドレスは消去動作が実行済みであり、プログラム動作が実行可能である物理ページアドレスであることを示す。「未消去」は、該当する物理ページアドレスに無効なデータが残っている状態であり、プログラム動作を実行する前に、消去動作の実行が必要である物理ページアドレスであることを示す。
ライト処理の履歴情報として、この第1の実施の形態では、プログラム動作および消去動作のそれぞれについて、検証における検出エラー数および検証実行回数を過去3回に遡って保持している。これらは、不揮発性メモリ300からのステータスとして得られるものである。
[情報処理システムの動作]
図7は、本技術の第1の実施の形態における記憶制御部200のライトコマンド処理手順の一例を示す流れ図である。ここでは、ホストコンピュータ100から記憶制御部200にライトコマンドが発行された際の、記憶制御部200の動作を示している。このライトコマンドによって、記憶制御部200は、先頭論理アドレス、データサイズ、および、ライトデータを受信する。このうち、ライトデータはRAM220に一時的に保持される。
プロセッサ210は、ライトコマンドにおいて実行するライト処理を、先頭論理アドレスおよびデータサイズに基づいて、論理ページ単位に分割する(ステップS931)。これにより、ライトコマンドにおいて実行するライト処理が全て完了するまで、以下の処理を論理ページ単位で繰返し実行する(ステップS932)。
論理ページ単位のライト処理において、プロセッサ210は、処理対象となる論理ページを決定する(ステップS933)。例えば、ステップS932において分割した論理ページで未処理のもののうち、最も小さい論理アドレスを有する論理ページを処理対象として決定する。
そして、プロセッサ210は、ステップS933で決定された処理対象の論理ページに対して、RAM220に保持していた1ページ(512バイト)分のライトデータについて、不揮発性メモリ300にライト処理を指示する(ステップS940)。このライト処理の詳細については後述する。
ライト処理が完了すると、プロセッサ210は、ライト処理の対象となったページに関する情報をアドレス変換テーブル221において更新する(ステップS935)。更新されるアドレス変換テーブル221の情報は、データフラグおよび物理ページアドレスである。データフラグは、更新前の値が「False」である場合は、「True」に更新され、更新前の値が「True」である場合は、そのまま「True」が維持される。物理ページアドレスの値は、データをライトした物理ページアドレスに更新される。更新後、プロセッサ210は、アドレス変換テーブル221を不揮発性メモリ300に記録する。
図8は、本技術の第1の実施の形態における記憶制御部200の論理ページライト処理(ステップS940)の処理手順例を示す流れ図である。記憶制御部200は、ステップS933において処理対象として決定された論理ページについて、不揮発性メモリ300に対してライト処理を実行するよう指示する(ステップS950)。その際、プロセッサ210は、要求される条件に合う物理ページアドレスを不揮発性メモリ300から検索して選択する。
そして、ライト処理の処理結果としてステータスが不揮発性メモリ300から戻ってくると、プロセッサ210はそのステータスに基づいて履歴情報管理テーブル222を更新する(ステップS942)。
すなわち、履歴情報管理テーブル222において、プログラム動作を実行した物理ページアドレスの「プログラム」の「検出エラー数」および「検証実行回数」を、プログラム動作のステータスに含まれる検出エラー数および検証実行回数によって更新する。さらに、プログラム動作を実行した物理ページアドレスの「状態」は、プログラム動作が正常終了した場合は「使用中」に、異常終了した場合は「未消去」に更新する。
また、履歴情報管理テーブル222において、消去動作を実行した物理ページアドレスの「消去」の「検出エラー数」および「検証実行回数」を、消去動作のステータスに含まれる検出エラー数および検証実行回数によって更新する。さらに、消去動作を実行した物理ページアドレスの「状態」は、消去動作が正常終了した場合は「空き」に、異常終了した場合は「未消去」に更新する。
プロセッサ210は、履歴情報管理テーブル222を更新した後、その履歴情報管理テーブル222を不揮発性メモリ300に記録する。
ステータスに含まれる検証結果が、検証成功を示していれば(ステップS943:Yes)、ライト処理が正常に終了したものとして論理ページのライト処理を終了する。一方、検証失敗を示している場合には(ステップS943:No)、ステップS950に戻って不揮発性メモリ300に対してライト処理を実行するよう指示する。
図9は、本技術の実施の形態における記憶制御部200のライト処理(ステップS950)の処理手順例を示す流れ図である。プロセッサ210は、ライトデータが、信頼性の高い物理ページに記録されることが要求されているかを判定する(ステップS951)。高い信頼性が要求されると判断された場合は(ステップS951:Yes)、高信頼性のデータライトが可能な物理ページを検索し、プログラム動作を実行する物理ページとして選択する(ステップS952)。
ここでは、履歴情報管理テーブル222を参照して、プログラム動作実行時の検証による検出エラー数が少ない物理ページを、信頼性が高い物理ページとみなして検索する。履歴情報として最近の実行結果を重視し、検索結果に影響が大きくなるように重み付けを行う。以下では、図6に示した例を用いて説明する。
プロセッサ210は、状態が「空き」であり、次式で計算される値X1が最も小さくなる物理ページを、物理ページアドレス「0x00000000」(「0x」以下に続く数字は16進数を表す。以下、これに同じ。)から順に検索する。
X1=「1回前のプログラム動作時の検出エラー数」×3
+「2回前のプログラム動作時の検出エラー数」×2
+「3回前のプログラム動作時の検出エラー数」×1
状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+2」の物理ページアドレスを選択する。
なお、ECC処理部240の誤り訂正能力は4ビットと仮定しているため、履歴情報管理テーブル222において「プログラム動作時の検出エラー数」が「4」以上を示す物理ページは、不良が発生した物理ページとみなして、検索の対象としない。以下のステップS955およびS957においても同様である。
プロセッサ210は、ステップS952において選択した物理ページに対してプログラム動作を行う(ステップS953)。ここでは、高信頼性を要求する場合のパラメータとして、検証動作時の許容エラー数を「0」と指定する。
ステップS951において、高い信頼性が要求されないと判断された場合は(ステップS951:No)、プロセッサ210は、ライトデータが、高速なデータライトが要求されているかを判定する(ステップS954)高速なデータライトが要求されると判断された場合は(ステップS954:Yes)、高速なデータライトが可能な物理ページを検索し、プログラム動作を実行する物理ページとして選択する(ステップS955)。
ここでは、履歴情報管理テーブル222を参照して、プログラム動作実行時の検証実行回数が少ない物理ページを、高速なデータライトが可能な物理ページとみなして検索する。履歴情報として最近の実行結果を重視し、検索結果に影響が大きくなるように重み付けを行う。以下では、図6に示した例を用いて説明する。
プロセッサ210は、状態が「空き」であり、次式で計算される値X2が最も小さくなる物理ページを、物理ページアドレス「0x00000000」から順に検索する。
X2=「1回前のプログラム動作時の検証実行回数」×3
+「2回前のプログラム動作時の検証実行回数」×2
+「3回前のプログラム動作時の検証実行回数」×1
状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+1」の物理ページアドレスを選択する。
プロセッサ210は、ステップS955において選択した物理ページに対してプログラム動作を行う(ステップS956)。ここでは、高速性を要求する場合のパラメータとして、検証動作時の許容エラー数を「4」と指定する。検証動作時の許容エラー数が大きい値である方が、不揮発性メモリ300で実行されるプログラム動作の処理が早く終わることが期待されるが、ECC処理部240の誤り訂正能力は4ビットと仮定しているため、許容されるエラー数の最大値は「4」だからである。
ステップS954において、高速性が要求されないと判断された場合は(ステップS954:No)、プロセッサ210は、高信頼性および高速性の何れにも該当しない物理ページを検索する(ステップS957)。ここでは、プロセッサ210は、履歴情報管理テーブル222を参照して、ステップS952またはS955の検索においてヒットしにくい物理ページを検索する。
プロセッサ210は、状態が「空き」であり、「1回前のプログラム動作時の検出エラー数」が「3」である物理ページを、物理ページアドレス「0x00000000」から順に検索する。存在しない場合は、「2回前のプログラム動作時の検出エラー数」が「3」である物理ページ、「3回前のプログラム動作時の検出エラー数」が「3」である物理ページを順に検索する。それも存在しない場合には、「1回前のプログラム動作時の検出エラー数」が「2」である物理ページ、「2回前のプログラム動作時の検出エラー数」が「2」である物理ページ、「3回前のプログラム動作時の検出エラー数」が「2」である物理ページを順に検索する。図6に示した例では、物理ページアドレスが「k+3」の物理ページが選択される。
プロセッサ210は、ステップS957において選択した物理ページに対してプログラム動作を行う(ステップS958)。ここでは、高信頼性および高速性を要求しない場合のパラメータとして、ステップS957で検索した物理ページの「1回前のプログラム動作時の検出エラー数」をそのまま利用して、検証動作時の許容エラー数を「3」と指定する。
ステップS953、S956またはS958においてプログラム動作が実行されると、プロセッサ210はプログラム動作によってライトデータが無効となった物理ページに対して消去動作を実行する(ステップS959)。
この消去動作を実行する際に、プロセッサ210が指定する「許容される検出エラー数」は、消去動作の直前のプログラム動作に準じて、以下の条件で指定される。ステップS953のプログラム動作後の消去動作であれば、「許容される検出エラー数」は「0」が指定される。ステップS956のプログラム動作後の消去動作であれば、「許容される検出エラー数」は「4」が指定される。ステップS958のプログラム動作後の消去動作であれば、「許容される検出エラー数」は「0」が指定される。
この処理手順例では、高信頼性や高速性が要求される旨の判断を行っているが、これらは、ホストコンピュータ100がライトコマンドを発行する際にそのパラメータとして指定することができる。また、その判断は、記憶制御部200が独自に行ってもよい。例えば、ストレージシステムとしてFAT(File Allocation Table)方式が採用されている場合を想定する。FAT方式では、ファイルアロケーションテーブルはファイルの位置情報を示すテーブルであり、データが破損するとファイルが読めなくなることがある。このファイルアロケーションテーブルは、特定の論理アドレス領域に対して書き込まれる。ホストコンピュータ100がライトコマンドにおいて指定する論理アドレスがファイルアロケーションテーブルの論理アドレス領域であった場合、記憶制御部200は、高信頼性が要求されるライトであるものとして処理を実行することができる。また、記憶制御部200が扱うアドレス変換テーブル221や履歴情報管理テーブル222に対する書込みについて、高信頼性が要求されるものとして扱っても構わない。
図10は、本技術の実施の形態における不揮発性メモリ300のプログラム動作(ステップS953、S956およびS958)の処理手順例を示す流れ図である。不揮発性メモリ300は記憶制御部200からのプログラム動作の指示を制御インターフェース309において受信すると、プログラム動作を開始する。プログラム動作の開始時には、検証回数カウンタ340の保持する数は「0」に初期化されている。
許容エラー数レジスタ370には、制御インターフェース309においてパラメータとして受信された許容エラー数が保持される(ステップS911)。また、データバッファ320には、制御インターフェース309において受信されたライトデータが保持される(ステップS912)。
そして、制御インターフェース309において受信された物理アドレスが制御部390に転送されて、メモリアレイ310上の指定された物理アドレスに対して、データバッファ320に保持されているライトデータが書き込まれる(ステップS913)。ライトデータが確実に書き込まれたか否かを検証するために、その物理ページアドレスからデータが読み出され、検証部330において、データバッファに保持されているライトデータと比較される(ステップS914)。その結果、一致しないビットについては、その数が検出エラー数カウンタ360において計数される。また、検証回数カウンタ340の検証回数が1つ加算される。
検出エラー数カウンタ360において計数された検出エラー数と、許容エラー数レジスタ370に保持されている許容エラー数とが検証成否判定部350において比較され、検出エラー数が許容範囲内であるか否かが判断される(ステップS915)。その結果、検出エラー数が許容エラー数以下である場合には(ステップS915:Yes)、正常終了となる。この場合、検出エラー数カウンタ360において計数された検出エラー数と、検証回数カウンタ340に保持された検証回数とが記憶制御部200にステータスとして転送される(ステップS916)。
ステップS915において検出エラー数が許容エラー数より大きいと判断された場合には、検証回数カウンタ340に保持された検証実行回数と不揮発性メモリ300の製造時に予め定められている検証動作最大実行回数とが比較される(ステップS917)。その結果、検証実行回数が検証動作最大実行回数より小さい場合には、ステップS913以降の処理手順を繰り返す(ステップS917:Yes)。一方、検証実行回数が検証動作最大実行回数以上となった場合には(ステップS917:No)、異常終了となる。この場合、検出エラー数カウンタ360において計数された検出エラー数と、検証回数カウンタ340に保持された検証回数とが記憶制御部200にステータスとして転送される(ステップS918)。
図11は、本技術の実施の形態における不揮発性メモリ300の消去動作(ステップS959)の処理手順例を示す流れ図である。不揮発性メモリ300は記憶制御部200からの消去動作の指示を制御インターフェース309において受信すると、消去動作を開始する。消去動作の開始時には、検証回数カウンタ340の保持する数は「0」に初期化されている。
許容エラー数レジスタ370には、制御インターフェース309においてパラメータとして受信された許容エラー数が保持される(ステップS921)。
そして、制御インターフェース309において受信された物理アドレスが制御部390に転送されて、メモリアレイ310上の指定された物理アドレスにおいて消去が行われる(ステップS923)。消去が確実に行われたか否かを検証するために、その物理ページアドレスからデータが読み出され、検証部330において、消去後のデータとして期待されるデータ(例えば、全ビット「1」)と比較される(ステップS924)。その結果、一致しないビットについては、その数が検出エラー数カウンタ360において計数される。また、検証回数カウンタ340の検証回数が1つ加算される。
検出エラー数カウンタ360において計数された検出エラー数と、許容エラー数レジスタ370に保持されている許容エラー数とが検証成否判定部350において比較され、検出エラー数が許容範囲内であるか否かが判断される(ステップS925)。その結果、検出エラー数が許容エラー数以下である場合には(ステップS925:Yes)、正常終了となる。この場合、検出エラー数カウンタ360において計数された検出エラー数と、検証回数カウンタ340に保持された検証回数とが記憶制御部200にステータスとして転送される(ステップS926)。
ステップS925において検出エラー数が許容エラー数より大きいと判断された場合には、検証回数カウンタ340に保持された検証実行回数と不揮発性メモリ300の製造時に予め定められている検証動作最大実行回数とが比較される(ステップS927)。その結果、検証実行回数が検証動作最大実行回数より小さい場合には、ステップS923以降の処理手順を繰り返す(ステップS927:Yes)。一方、検証実行回数が検証動作最大実行回数以上となった場合には(ステップS927:No)、異常終了となる。この場合、検出エラー数カウンタ360において計数された検出エラー数と、検証回数カウンタ340に保持された検証回数とが記憶制御部200にステータスとして転送される(ステップS928)。
このように、本技術の第1の実施の形態によれば、プログラムおよび消去時の検証の履歴情報に基づいて、高信頼性や高速性などの条件に合致するように、ライト処理対象の物理ページを選択することができる。また、ライト処理のパラメータとして検証動作時の許容エラー数を指定する際、プログラムおよび消去時の検証の履歴情報を用いることができる。例えば、プログラム動作において高信頼性および高速性を要求しない場合のパラメータとして、「1回前のプログラム動作時の検出エラー数」を利用して、検証動作時の許容エラー数を指定することができる。
<2.第2の実施の形態>
[情報処理システムの構成]
図12は、本技術の第2の実施の形態における情報処理システムの一構成例を示す図である。この第2の実施の形態の情報処理システムは、第1の実施の形態のものと異なり、2つの不揮発性メモリ301および302を備える。これに対応して、記憶制御部200にも、それぞれNVMインターフェース204および205が設けられている。
不揮発性メモリ301および302のそれぞれの構成は、図3において説明した第1の実施の形態の不揮発性メモリ300と同様である。また、不揮発性メモリ301および302におけるそれぞれの動作も、図10および11により説明した処理手順と同様である。
[不揮発性メモリにおけるデータ構成]
図13は、本技術の第2の実施の形態における不揮発性メモリ301および302に記憶されるデータ構成例を示す図である。上述のように、不揮発性メモリ300にアクセスするホストコンピュータ100からのコマンドの単位は物理ページ単位であり、この実施の形態においても、物理ページが512バイト(4096ビット)であることを想定している。
ただし、この実施の形態では、物理ページを2分割してそれぞれ不揮発性メモリ301および302に記憶する。すなわち、同図のaに示すように物理ページの前半の2048ビットが不揮発性メモリ301に記憶され、同図のbに示すように物理ページの後半の2048ビットが不揮発性メモリ302に記憶される。512バイトのデータに対する52ビットのエラー訂正コードは、不揮発性メモリ302のデータ(256バイト)に続く領域に記憶する。不揮発性メモリ301のデータに続く領域には、例えば全部「1」を示すビットが記憶される。なお、ここではエラー訂正コードを不揮発性メモリ302に記憶する例を示したが、反対に不揮発性メモリ301に記憶するようにしてもよい。
[アドレス変換テーブルの構成]
図14は、本技術の第2の実施の形態におけるアドレス変換テーブル221の一構成例を示す図である。このアドレス変換テーブル221では、論理ページの論理アドレスに関連付けて、それぞれデータフラグ、第1物理ページアドレスおよび第2物理ページアドレスが保持されている。第1物理ページアドレスは不揮発性メモリ301における物理ページアドレスを示し、第2物理ページアドレスは不揮発性メモリ302における物理ページアドレスを示す。すなわち、物理ページの前半のデータが記憶される不揮発性メモリ301の物理アドレスが第1物理ページアドレスとして示され、物理ページの後半のデータが記憶される不揮発性メモリ302の物理アドレスが第2物理ページアドレスとして示される。
なお、データフラグについては第1の実施の形態と同様であり、対応する論理アドレスに有効なデータが不揮発性メモリ301および302に書き込まれているか否かを示す。
[履歴情報管理テーブル222の構成]
図15および図16は、本技術の第2の実施の形態における履歴情報管理テーブル222の一構成例を示す図である。第1の実施の形態では1つの不揮発性メモリ300に対して履歴情報を保持したが、この第2の実施の形態では2つの不揮発性メモリ301および302に対してそれぞれ履歴情報を保持する。図15では、不揮発性メモリ301における第1物理ページアドレス毎に関連付けて、不揮発性メモリ301の状態およびライト処理の履歴情報を保持している。図16では、不揮発性メモリ302における第2物理ページアドレス毎に関連付けて、不揮発性メモリ302の状態およびライト処理の履歴情報を保持している。
履歴情報管理テーブル222に保持される不揮発性メモリ301または302の状態およびライト処理の履歴情報の項目は、第1の実施の形態において説明したものと同様である。
[情報処理システムの動作]
上述のように、この第2の実施の形態は、2つの不揮発性メモリ301および302を備える点で第1の実施の形態とは異なるが、それ以外の点では第1の実施の形態と同様である。したがって、第2の実施の形態における動作は、2つの不揮発性メモリ301および302に対する処理を行う点を除き、第1の実施の形態と同様である。すなわち、図7、図8、図10および図11の処理手順においては、第1の実施の形態の場合と同様である。
図17は、本技術の第2の実施の形態における記憶制御部200の論理ページライト処理(ステップS940)の処理手順例を示す流れ図である。記憶制御部200は、ステップS933において処理対象として決定された論理ページについて、不揮発性メモリ301に対してライト処理を実行するよう指示する(ステップS944)。その際、プロセッサ210は、要求される条件に合う物理ページアドレスを不揮発性メモリ301から検索して選択する。
そして、ライト処理の処理結果としてステータスが不揮発性メモリ301から戻ってくると、プロセッサ210はそのステータスに基づいて履歴情報管理テーブル222を更新する(ステップS945)。更新処理の内容は上述の第1の実施の形態と同様である。
プロセッサ210は、履歴情報管理テーブル222を更新した後、その履歴情報管理テーブル222を不揮発性メモリ300に記録する。
ステータスに含まれる検証結果が、検証成功を示していれば(ステップS946:Yes)、不揮発性メモリ301に対するライト処理が正常に終了したものとして、不揮発性メモリ302に対するライト処理に進む。一方、検証失敗を示している場合には(ステップS946:No)、ステップS944に戻って不揮発性メモリ301に対してライト処理を実行するよう指示する。
不揮発性メモリ301に対するライト処理が正常に終了すると、記憶制御部200は、ステップS933において処理対象として決定された論理ページについて、不揮発性メモリ302に対してライト処理を実行するよう指示する(ステップS947)。その際、プロセッサ210は、要求される条件に合う物理ページアドレスを不揮発性メモリ302から検索して選択する。
そして、ライト処理の処理結果としてステータスが不揮発性メモリ302から戻ってくると、プロセッサ210はそのステータスに基づいて履歴情報管理テーブル222を更新する(ステップS948)。更新処理の内容は上述の第1の実施の形態と同様である。
プロセッサ210は、履歴情報管理テーブル222を更新した後、その履歴情報管理テーブル222を不揮発性メモリ300に記録する。
ステータスに含まれる検証結果が、検証成功を示していれば(ステップS949:Yes)、ライト処理が正常に終了したものとして論理ページのライト処理を終了する。一方、検証失敗を示している場合には(ステップS949:No)、ステップS947に戻って不揮発性メモリ302に対してライト処理を実行するよう指示する。
第1の実施の形態では図9において不揮発性メモリ300の物理ページを選択したが、この第2の実施の形態では不揮発性メモリ301および302の両者について物理ページを選択する。
図9のステップS952において、プロセッサ210は、履歴情報管理テーブル222を参照して、プログラム動作実行時の検証による検出エラー数が少ない物理ページを、信頼性が高い物理ページとみなして検索する。図15に示した例では、不揮発性メモリ301について、状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+2」の物理ページアドレスを選択する。また、図16に示した例では、不揮発性メモリ302について、状態が「空き」である物理ページアドレスが「j」、「j+2」、「j+3」のみである場合、プロセッサ210は「j+2」の物理ページアドレスを選択する。
図9のステップS955において、プロセッサ210は、履歴情報管理テーブル222を参照して、プログラム動作実行時の検証実行回数が少ない物理ページを、高速なデータライトが可能な物理ページとみなして検索する。図15に示した例では、不揮発性メモリ301について、状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+1」の物理ページアドレスを選択する。また、図16に示した例では、不揮発性メモリ302について、状態が「空き」である物理ページアドレスが「j」、「j+2」、「j+3」のみである場合、プロセッサ210は「j」の物理ページアドレスを選択する。
図9のステップS957において、プロセッサ210は、履歴情報管理テーブル222を参照して、ステップS952またはS955の検索においてヒットしにくい物理ページを検索する。図15に示した例では、不揮発性メモリ301について、物理ページアドレスが「k+3」の物理ページが選択される。また、プロセッサ210は、この物理ページと組み合わせて使う不揮発性メモリ302の物理ページとして、状態が「空き」であり、次式で計算される値X3を満たす「1回前のプログラム動作時の検出エラー数」となる物理ページを検索する。その際、物理ページアドレス「0x00000000」から順に検索される。検索してヒットしない場合には、値X3を1つずつ減算して、ヒットするまで検索する。
X3=4−
(不揮発性メモリ301のページの)「1回前のプログラム動作時の検出エラー数」
上式における「4」は、ECC処理部240の誤り訂正能力のビット数である。図15に示した例では、不揮発性メモリ301について、物理ページアドレスが「k+3」の物理ページが選択されるため、値X3は「1」となる。そして、図16に示した例では、物理ページアドレスが「j」のエントリが「1」を示しているため、プロセッサ210は「j」の物理ページアドレスを選択する。
このように、本技術の第2の実施の形態によれば、物理ページを複数の不揮発性メモリ301および302に分散記憶することにより、より精細に最適な物理ページの選択を行うことができる。
<3.第3の実施の形態>
上述の第1および第2の実施の形態では、検証による検出エラー数を利用してページを選択し、また、ライト処理のパラメータとして許容エラー数を指定していた。この第3の実施の形態では、不揮発性メモリとしてReRAM(Resistance RAM)を想定し、セルに対してパルスを印加する際の電圧レベルを利用してページを選択し、また、ライト処理のパラメータとして電圧レベルを指定する例について説明する。
ReRAMのメモリアレイにデータのライト処理を実行するとき、メモリセルに対してパルスを印加することによりメモリセルの抵抗値を変化させて、データを記録する。パルスを印加する際の手法として、データのライト処理と検証を繰り返すサイクルにおいて、検証でエラーとなったセルに対して、印加するパルスの電圧を段階的に高くするDSIP(Direct Sense In Programming)が提案されている。このDSIPについては、例えば、「Wataru Otsuka, et al, "A 4Mb Conductive-Bridge Resistive Memory with 2.3GB/s Read-Throughput and 216MB/s Program-Throughput," ISSCC pp.20-21」(2011年2月)に開示されている。メモリセルの性質として、高い電圧をかけることによりセルの抵抗値を短時間で変化させることは可能であるが、メモリセルのデータ保持特性が悪くなることが知られている。DSIPは、同一物理ページ内のセルにおける製造プロセスに起因するばらつきや、データの書き込み頻度によるばらつきを考慮し、メモリセルの保持特性を維持できるようにした手法である。すなわち、低い電圧で抵抗変化させることが可能なセルには低い電圧のパルスでデータを書き込み、高い電圧のパルスが必要なセルには高い電圧でデータを書き込むものである。
情報処理システムとしての構成および記憶制御部200の機能構成は第1または第2の実施の形態と同様であるため、説明を省略する。不揮発性メモリは第1の実施の形態のように1つでもよく、第2の実施の形態のように複数でもよい。以下では、第2の実施の形態と同様に、2つの不揮発性メモリ301および302を備えることを想定する。
[不揮発性メモリの構成]
図18は、本技術の第3の実施の形態における不揮発性メモリ301または302の一構成例を示す図である。この第3の実施の形態における不揮発性メモリ301または302は、第1または第2の実施の形態の不揮発性メモリにおける検出エラー数カウンタ360および許容エラー数レジスタ370を備えずに、新たに電圧レベルカウンタ380を備える。電圧レベルカウンタ380は、DSIPによりパルスを印加する際の電圧レベルを保持するカウンタである。
制御部390は、プログラム動作または消去動作の際には、指定された物理ページアドレスのセルに対して、DSIPでパルスを印加する。ここでは、最大4回のパルスが印加されることを想定し、4回の印加されるパルスを、電圧の小さい順にレベル1からレベル4とする。記憶制御部200はプログラム動作または消去動作を実行する際のパラメータとして、レベル1からレベル4の何れかを指定することができる。制御部390は、パラメータとして指定された電圧レベルを電圧レベルカウンタ380に保持する。制御部390は電圧レベルカウンタ380に保持された電圧レベルを開始レベルとして、DSIPによってパルスを印加してプログラム動作または消去動作を実行する。
[不揮発性メモリにおけるデータ構成]
本技術の第3の実施の形態における不揮発性メモリ301および302に記憶されるデータ構成は、図13により説明した第2の実施の形態におけるデータ構成と同様である。
[アドレス変換テーブルの構成]
本技術の第3の実施の形態におけるアドレス変換テーブル221の構成は、図14により説明した第2の実施の形態におけるアドレス変換テーブル221と同様である。
[履歴情報管理テーブル222の構成]
図19および図20は、本技術の第3の実施の形態における履歴情報管理テーブル222の一構成例を示す図である。図19では、不揮発性メモリ301における第1物理ページアドレス毎に関連付けて、不揮発性メモリ301の状態およびライト処理の履歴情報を保持している。図20では、不揮発性メモリ302における第2物理ページアドレス毎に関連付けて、不揮発性メモリ302の状態およびライト処理の履歴情報を保持している。
上述の第1および第2の実施の形態では、ライト処理の履歴情報として、検証における検出エラー数および検証実行回数を保持していたが、この第3の実施の形態では、印加パルス電圧の開始レベルおよび検証実行回数を保持する。履歴情報のうち、検証実行回数は、不揮発性メモリ301または302からのステータスとして得られるものである。一方、印加パルス電圧の開始レベルは、不揮発性メモリ301または302に対するパラメータとして指定したものである。
[情報処理システムの動作]
本技術の第3の実施の形態における情報処理システムの動作は、基本的には上述の第1または第2の実施の形態のものと同様である。すなわち、記憶制御部200のライトコマンド処理手順は、図7により説明したものと同様である。
また、記憶制御部200の論理ページライト処理手順は、図17により説明したものと同様である。ただし、ステップS945において履歴情報管理テーブル222を更新する際、「プログラム」の「開始レベル」を、プログラム動作を実行したときにパラメータとして指定した開始レベルの値に更新する。同様に、「消去」の「開始レベル」を、消去動作を実行したときにパラメータとして指定した開始レベルの値に更新する。また、ステップS948において履歴情報管理テーブル222を更新する際も同様の動作を行う。
また、記憶制御部200のライト処理手順は、図9により説明したものと同様である。ただし、ステップS952において高信頼性のデータライトが可能な物理ページを検索する際には、プログラム動作時の開始レベルが小さい値で、かつ、検証実行回数が少ない物理ページを、信頼性が高い物理ページと見なして検索をする。履歴情報として最近の実行結果を重視し、検索結果に影響が大きくなるように重み付けを行う。以下では、図19および図20に示した例を用いて説明する。
プロセッサ210は、状態が「空き」であり、次式で計算される値X4が最も小さくなる物理ページを、物理ページアドレス「0x00000000」から順に検索する。
X4=(「1回前のプログラム動作時の検証実行回数」
+「1回前のプログラム動作時の開始レベル」)×3
+(「2回前のプログラム動作時の検証実行回数」
+「2回前のプログラム動作時の開始レベル」)×2
+(「3回前のプログラム動作時の検証実行回数」
+「3回前のプログラム動作時の開始レベル」)×1
図19に示した例では、不揮発性メモリ301について、状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+2」の物理ページアドレスを選択する。また、図20に示した例では、不揮発性メモリ302について、状態が「空き」である物理ページアドレスが「j」、「j+2」、「j+3」のみである場合、プロセッサ210は「j+2」の物理ページアドレスを選択する。
また、ステップS953において高信頼性のデータライト動作を実行する際、パラメータとして、開始レベル「1」を指定する。
また、ステップS955において高速なデータライトが可能な物理ページを検索する際には、プログラム動作実行時の検証実行回数が少ない物理ページを、高速なデータライトが可能な物理ページとみなして検索する。履歴情報として最近の実行結果を重視し、検索結果に影響が大きくなるように重み付けを行う。プロセッサ210は、状態が「空き」であり、上述の値X2が最も小さくなる物理ページを、物理ページアドレス「0x00000000」から順に検索する。図19に示した例では、不揮発性メモリ301について、状態が「空き」である物理ページアドレスが「k+1」、「k+2」、「k+3」のみである場合、プロセッサ210は「k+1」の物理ページアドレスを選択する。また、図20に示した例では、不揮発性メモリ302について、状態が「空き」である物理ページアドレスが「j」、「j+2」、「j+3」のみである場合、プロセッサ210は「j」の物理ページアドレスを選択する。
また、ステップS956において高速性のデータライト動作を実行する際、パラメータとして、次式で計算される値X5を開始レベルとして指定する。この値X5は、1回前の実行結果に基づいて検証実行回数が1回で終了することが期待される開始レベルを示している。
X5=「1回前のプログラム動作時の検証実行回数」
+「1回前のプログラム動作時の開始レベル」−1
また、ステップS957では、ステップS952またはS955の検索においてヒットしにくい物理ページを検索する。プロセッサ210は、履歴情報管理テーブル222を検索して、状態が「空き」であり、「1回前のプログラム動作時の検証実行回数」が「4」である物理ページを、物理ページアドレス「0x00000000」から順に検索する。存在しない場合は、「2回前のプログラム動作時の検証実行回数」が「4」である物理ページ、「3回前のプログラム動作時の検証実行回数」が「4」である物理ページを順に検索する。それも存在しない場合には、「1回前のプログラム動作時の検証実行回数」が「3」である物理ページ、「2回前のプログラム動作時の検証実行回数」が「3」である物理ページ、「3回前のプログラム動作時の検証実行回数」が「3」である物理ページを順に検索する。図19に示した例では、不揮発性メモリ301について、物理ページアドレスが「k+3」の物理ページが選択される。また、図20に示した例では、不揮発性メモリ302について、状態が「空き」である物理ページアドレスが「j」、「j+2」、「j+3」のみである場合、プロセッサ210は「j+2」の物理ページアドレスを選択する。
また、ステップS958においてデータライト動作を実行する際、高信頼性または高速性を要求しない場合のパラメータとして、開始レベル「1」を指定する。
また、ステップS959において消去動作を実行する際、プロセッサ210が指定する「開始レベル」は、消去動作の直前のプログラム動作に準じて、以下の条件で指定される。ステップS953のプログラム動作後の消去動作であれば、「開始レベル」は「1」が指定される。ステップS956のプログラム動作後の消去動作であれば、次式で計算される値X6を開始レベルとして指定する。この値X6は、消去動作後の検証実行回数が短時間で終了することが期待される開始レベルを示している。
X6=「1回前の消去動作時の検証実行回数」
+「1回前の消去動作時の開始レベル」−1
ステップS958のプログラム動作後の消去動作であれば、「開始レベル」は「1」が指定される。
図21は、本技術の第3の実施の形態における不揮発性メモリ300のプログラム動作(ステップS953、S956およびS958)の処理手順例を示す流れ図である。不揮発性メモリ300は記憶制御部200からのプログラム動作の指示を制御インターフェース309において受信すると、プログラム動作を開始する。プログラム動作の開始時には、検証回数カウンタ340の保持する数は「0」に初期化されている。
データバッファ320には、制御インターフェース309において受信されたライトデータが保持される(ステップS961)。また、電圧レベルカウンタ380には、制御インターフェース309においてパラメータとして受信された印加パルス電圧の開始レベルが保持される(ステップS962)。
そして、制御インターフェース309において受信された物理アドレスが制御部390に転送されて、メモリアレイ310上の指定された物理アドレスに対して、電圧レベルカウンタ380に保持された開始レベルのパルスが印加される。これにより、データバッファ320に保持されているライトデータが書き込まれる(ステップS963)。ライトデータが確実に書き込まれたか否かを検証するために、その物理ページアドレスからデータが読み出され、検証部330において、データバッファに保持されているライトデータと比較される(ステップS964)。また、検証回数カウンタ340の検証回数が1つ加算される。
検証成否判定部350において、検証部330の検証結果が判定され、検出エラーがない場合には(ステップS965:No)、正常終了となる。この場合、検証回数カウンタ340に保持された検証回数が記憶制御部200にステータスとして転送される(ステップS966)。
ステップS965において検出エラーがあると判断された場合には、その際に印加された電圧レベルが最上レベルの「4」であるか否かが判断される(ステップS967)。その結果、印加された電圧レベルが最上レベルでない場合には(ステップS967:No)、電圧レベルカウンタ380のレベルを1段階高く設定して(ステップS969)、ステップS963以降の処理手順を繰り返す。一方、印加された電圧レベルが最上レベルである場合には(ステップS967:Yes)、異常終了となる。この場合、検証回数カウンタ340に保持された検証回数が記憶制御部200にステータスとして転送される(ステップS968)。
図22は、本技術の第3の実施の形態における不揮発性メモリ300の消去動作(ステップS959)の処理手順例を示す流れ図である。不揮発性メモリ300は記憶制御部200からの消去動作の指示を制御インターフェース309において受信すると、消去動作を開始する。消去動作の開始時には、検証回数カウンタ340の保持する数は「0」に初期化されている。
電圧レベルカウンタ380には、制御インターフェース309においてパラメータとして受信された印加パルス電圧の開始レベルが保持される(ステップS972)。
そして、制御インターフェース309において受信された物理アドレスが制御部390に転送されて、メモリアレイ310上の指定された物理アドレスに対して、電圧レベルカウンタ380に保持された開始レベルのパルスが印加される(ステップS973)。これにより、消去動作が行われる。消去動作が確実に書き込まれたか否かを検証するために、その物理ページアドレスからデータが読み出され、検証部330において、消去後のデータとして期待されるデータ(例えば、全ビット「1」)と比較される(ステップS974)。また、検証回数カウンタ340の検証回数が1つ加算される。
検証成否判定部350において、検証部330の検証結果が判定され、検出エラーがない場合には(ステップS975:No)、正常終了となる。この場合、検証回数カウンタ340に保持された検証回数が記憶制御部200にステータスとして転送される(ステップS976)。
ステップS975において検出エラーがあると判断された場合には、その際に印加された電圧レベルが最上レベルの「4」であるか否かが判断される(ステップS977)。その結果、印加された電圧レベルが最上レベルでない場合には(ステップS977:No)、電圧レベルカウンタ380のレベルを1段階高く設定して(ステップS979)、ステップS973以降の処理手順を繰り返す。一方、印加された電圧レベルが最上レベルである場合には(ステップS977:Yes)、異常終了となる。この場合、検証回数カウンタ340に保持された検証回数が記憶制御部200にステータスとして転送される(ステップS978)。
このように、本技術の第3の実施の形態によれば、ReRAMの印加電圧の開始レベルを含む履歴情報に基づいて、高信頼性や高速性などの条件に合致するように、ライト処理対象の物理ページを選択することができる。また、ライト処理のパラメータとして印加電圧の開始レベルを指定する際、プログラムおよび消去時の検証の履歴情報を用いることができる。例えば、プログラム動作において高速性を要求する場合のパラメータとして、消去動作後の検証実行回数が短時間で終了することが期待される開始レベルを指定することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得部と、
前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて保持する履歴情報保持部と、
前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
を具備する記憶制御装置。
(2)前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報における前記検証の実行回数に基づいて領域を選択する
前記(1)に記載の記憶制御装置。
(3)前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報において前記検証の実行回数がより少ない領域を選択する
前記(1)または(2)に記載の記憶制御装置。
(4)前記ステータス取得部は、前記ステータスとして前記検証において検出されたエラー数を受け取り、
前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報における前記検出されたエラー数に基づいて領域を選択する
前記(1)から(3)のいずれかに記載の記憶制御装置。
(5)前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報において前記検出されたエラー数がより少ない領域を選択する
前記(4)に記載の記憶制御装置。
(6)前記メモリに対して新たなライトを行う際には前記履歴情報に従ってパラメータを指定するパラメータ指定部をさらに具備する前記(1)から(5)のいずれかに記載の記憶制御装置。
(7)前記パラメータ指定部は、ライト後の検証において許容されるエラー数を前記パラメータとして指定する
前記(6)に記載の記憶制御装置。
(8)前記ステータス取得部は、前記ステータスとして前記検証において検出されたエラー数を受け取り、
前記パラメータ指定部は、前記履歴情報に含まれる前記検出されたエラー数に従って前記許容されるエラー数を前記パラメータとして指定する
前記(7)に記載の記憶制御装置。
(9)前記パラメータ指定部は、ライトの際に前記メモリにおいて印加すべきパルスの電圧レベルの初期値を前記パラメータとして指定する
前記(6)に記載の記憶制御装置。
(10)前記履歴情報保持部は、前記パラメータとして指定した電圧レベルの初期値を前記履歴情報として保持し、
前記パラメータ指定部は、前記履歴情報に含まれる前記電圧レベルの初期値に従って新たなライトの際に前記メモリにおいて印加すべきパルスの電圧レベルの初期値を前記パラメータとして指定する
前記(9)に記載の記憶制御装置。
(11)メモリアレイと、
前記メモリアレイにおけるライト後の検証を実行する検証部と、
前記検証の実行回数を計数する検証回数カウンタと、
前記検証の実行回数を含むステータスを取得するステータス取得部と、
前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
を具備する記憶装置。
(12)前記検証において検出されたエラー数を計数する検出エラー数カウンタをさらに具備し、
前記ステータス取得部は、前記ステータスとして前記検出されたエラー数を受け取り、
前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報において前記検出されたエラー数がより少ない領域を選択する
前記(11)に記載の記憶装置。
(13)メモリアレイと、
前記メモリアレイにおけるライト後の検証を実行する検証部と、
前記検証の実行回数を計数する検証回数カウンタと、
前記検証の実行回数を含むステータスを取得するステータス取得部と、
前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と、
前記メモリアレイに対するライトコマンドを発行するホストコンピュータと
を具備する情報処理システム。
(14)メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得手順と、
前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて履歴情報保持に保持させる履歴情報保持手順と、
前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択手順と
を具備する記憶制御方法。
100 ホストコンピュータ
200 記憶制御部
201 ホストインターフェース
203〜205 NVMインターフェース
210 プロセッサ
211 ステータス取得部
212 ページ選択部
213 パラメータ指定部
220 RAM
221 アドレス変換テーブル
222 履歴情報管理テーブル
230 ROM
240 ECC処理部
300〜302 不揮発性メモリ(NVM)
309 制御インターフェース
310 メモリアレイ
320 データバッファ
330 検証部
340 検証回数カウンタ
350 検証成否判定部
360 検出エラー数カウンタ
370 許容エラー数レジスタ
380 電圧レベルカウンタ
390 制御部

Claims (12)

  1. メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
    を具備し、
    前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報における前記検証の実行回数に基づいて領域を選択する
    記憶制御装置。
  2. 前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報において前記検証の実行回数がより少ない領域を選択する
    請求項記載の記憶制御装置。
  3. メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
    を具備し、
    前記ステータス取得部は、前記ステータスとして前記検証において検出されたエラー数を受け取り、
    前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報における前記検出されたエラー数に基づいて領域を選択する
    記憶制御装置。
  4. 前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報において前記検出されたエラー数がより少ない領域を選択する
    請求項記載の記憶制御装置。
  5. メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
    前記メモリに対して新たなライトを行う際には前記履歴情報に従ってパラメータを指定するパラメータ指定部と
    を具備し、
    前記パラメータ指定部は、ライト後の検証において許容されるエラー数を前記パラメータとして指定する
    記憶制御装置。
  6. 前記ステータス取得部は、前記ステータスとして前記検証において検出されたエラー数を受け取り、
    前記パラメータ指定部は、前記履歴情報に含まれる前記検出されたエラー数に従って前記許容されるエラー数を前記パラメータとして指定する
    請求項記載の記憶制御装置。
  7. メモリアレイと、
    前記メモリアレイにおけるライト後の検証を実行する検証部と、
    前記検証の実行回数を計数する検証回数カウンタと、
    前記検証の実行回数を含むステータスを取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
    を具備し、
    前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報における前記検証の実行回数に基づいて領域を選択する
    記憶装置。
  8. メモリアレイと、
    前記メモリアレイにおけるライト後の検証を実行する検証部と、
    前記検証の実行回数を計数する検証回数カウンタと、
    前記検証の実行回数を含むステータスを取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と
    を具備し、
    前記検証において検出されたエラー数を計数する検出エラー数カウンタをさらに具備し、
    前記ステータス取得部は、前記ステータスとして前記検出されたエラー数を受け取り、
    前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報において前記検出されたエラー数がより少ない領域を選択する
    記憶装置。
  9. メモリアレイと、
    前記メモリアレイにおけるライト後の検証を実行する検証部と、
    前記検証の実行回数を計数する検証回数カウンタと、
    前記検証の実行回数を含むステータスを取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と、
    前記メモリアレイに対するライトコマンドを発行するホストコンピュータと
    を具備し、
    前記領域選択部は、前記条件として高速性が要求されている場合には前記履歴情報における前記検証の実行回数に基づいて領域を選択する
    情報処理システム。
  10. メモリアレイと、
    前記メモリアレイにおけるライト後の検証を実行する検証部と、
    前記検証の実行回数を計数する検証回数カウンタと、
    前記検証の実行回数を含むステータスを取得するステータス取得部と、
    前記ステータスの履歴を履歴情報として前記メモリアレイの所定の領域毎に関連付けて保持する履歴情報保持部と、
    前記メモリアレイにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択部と、
    前記メモリアレイに対するライトコマンドを発行するホストコンピュータと
    を具備し、
    前記ステータス取得部は、前記ステータスとして前記検証において検出されたエラー数を受け取り、
    前記領域選択部は、前記条件として高信頼性が要求されている場合には前記履歴情報における前記検出されたエラー数に基づいて領域を選択する
    情報処理システム。
  11. メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得手順と、
    前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて履歴情報保持に保持させる履歴情報保持手順と、
    前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択手順と
    を具備し、
    前記領域選択手順において、前記条件として高速性が要求されている場合には前記履歴情報における前記検証の実行回数に基づいて領域を選択する
    記憶制御方法。
  12. メモリにおけるライト後の検証の実行回数を含むステータスを前記メモリから取得するステータス取得手順と、
    前記ステータスの履歴を履歴情報として前記メモリの所定の領域毎に関連付けて履歴情報保持に保持させる履歴情報保持手順と、
    前記メモリにおいて新たな領域を使用する際には前記履歴情報に従って条件に合致した領域を選択する領域選択手順と
    を具備し、
    前記ステータス取得手順において、前記ステータスとして前記検証において検出されたエラー数を受け取り、
    前記領域選択部手順において、前記条件として高信頼性が要求されている場合には前記履歴情報における前記検出されたエラー数に基づいて領域を選択する
    記憶制御方法。
JP2012093521A 2012-04-17 2012-04-17 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 Expired - Fee Related JP5929456B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012093521A JP5929456B2 (ja) 2012-04-17 2012-04-17 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US13/827,926 US9170893B2 (en) 2012-04-17 2013-03-14 Method and system for selecting region of a nonvolatile memory
CN201310122226.4A CN103377140B (zh) 2012-04-17 2013-04-10 存储控制设备、存储设备、信息处理系统和处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012093521A JP5929456B2 (ja) 2012-04-17 2012-04-17 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Publications (2)

Publication Number Publication Date
JP2013222315A JP2013222315A (ja) 2013-10-28
JP5929456B2 true JP5929456B2 (ja) 2016-06-08

Family

ID=49326191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012093521A Expired - Fee Related JP5929456B2 (ja) 2012-04-17 2012-04-17 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法

Country Status (3)

Country Link
US (1) US9170893B2 (ja)
JP (1) JP5929456B2 (ja)
CN (1) CN103377140B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015135603A (ja) * 2014-01-17 2015-07-27 株式会社東芝 ストレージ装置及びデータを書き込む記憶領域を選択する方法
US9922718B2 (en) * 2014-05-22 2018-03-20 Seagate Technology Llc Flash command that reports a count of cell program failures
JP6577302B2 (ja) 2015-08-28 2019-09-18 東芝メモリ株式会社 メモリシステム
US10788998B2 (en) 2017-07-07 2020-09-29 Sap Se Logging changes to data stored in distributed data storage system
US11133831B2 (en) * 2019-10-29 2021-09-28 Seagate Technology Llc Code rate adaptation
US11132244B2 (en) 2019-11-14 2021-09-28 Seagate Technology Llc Block health checking
CN113835617B (zh) * 2020-06-23 2024-09-06 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
TWI758944B (zh) * 2020-06-23 2022-03-21 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置
CN113094294B (zh) * 2021-04-12 2024-02-13 深圳忆联信息系统有限公司 Ssd异常掉电处理方法、装置、计算机设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3178909B2 (ja) * 1992-01-10 2001-06-25 株式会社東芝 半導体メモリ装置
JP3178912B2 (ja) 1992-10-14 2001-06-25 株式会社東芝 半導体メモリチップ
US6038679A (en) * 1994-11-30 2000-03-14 International Business Machines Corporation Adaptive data recovery method and apparatus
JP3941149B2 (ja) 1996-12-03 2007-07-04 ソニー株式会社 半導体不揮発性記憶装置
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
JP3937214B2 (ja) * 1999-09-17 2007-06-27 株式会社ルネサステクノロジ エラー訂正回数を記録する記憶装置
JP2001134495A (ja) * 1999-11-05 2001-05-18 Sony Corp マルチメディア情報の読み出し方法、マルチメディア情報の読み出し装置、記憶媒体ドライブ装置、伝送媒体、情報ストリーム、電子機器
JP3735498B2 (ja) * 1999-11-09 2006-01-18 株式会社東芝 情報記録媒体、情報記録装置、情報記録方法
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP2002048783A (ja) 2000-08-01 2002-02-15 Ando Corp フレッシュコンクリートの単位水量推定方法
US7082494B1 (en) * 2002-12-24 2006-07-25 Western Digital Technologies, Inc. Disk drive executing a preemptive multitasking operating system comprising tasks of varying priority
JP4073799B2 (ja) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ メモリシステム
US8391070B2 (en) * 2008-12-02 2013-03-05 Spansion Llc Moving program verify level for programming of memory
US7325157B2 (en) * 2003-11-03 2008-01-29 Samsung Electronics Co., Ltd Magnetic memory devices having selective error encoding capability based on fault probabilities
US7536625B2 (en) * 2004-06-30 2009-05-19 Seagate Technology Llc Maintaining data integrity in a data storage system
JP2007122831A (ja) * 2005-10-31 2007-05-17 Fujitsu Ltd 記憶装置、制御方法及びプログラム
KR20090078999A (ko) * 2008-01-16 2009-07-21 삼성전자주식회사 외란 상태에 따른 적응적 기록 방법 및 이를 이용한 저장장치
JP2010040144A (ja) * 2008-08-07 2010-02-18 Toshiba Corp 不揮発性半導体記憶システム
US8195899B2 (en) * 2008-09-26 2012-06-05 Micron Technology, Inc. Memory cell operation
JP5292052B2 (ja) * 2008-10-21 2013-09-18 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置とその書き込み方法
US8254177B2 (en) * 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
CN101800077B (zh) * 2009-02-11 2012-04-18 北京兆易创新科技有限公司 一种对闪存进行数据编程的方法和装置
US8026544B2 (en) * 2009-03-30 2011-09-27 Sandisk Technologies Inc. Fabricating and operating a memory array having a multi-level cell region and a single-level cell region
JP2011059907A (ja) * 2009-09-09 2011-03-24 Nec Corp 端末装置及びそれに用いる不揮発メモリ管理方法並びにそのプログラム
JP2011070346A (ja) * 2009-09-25 2011-04-07 Toshiba Corp メモリシステム
KR101596827B1 (ko) * 2009-10-14 2016-02-23 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8819503B2 (en) * 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8990538B2 (en) * 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
US8451662B2 (en) * 2011-03-03 2013-05-28 Micron Technology, Inc. Reading memory cell history during program operation for adaptive programming
JP5364750B2 (ja) * 2011-03-25 2013-12-11 株式会社東芝 メモリシステム、及び不揮発性メモリデバイスの制御方法

Also Published As

Publication number Publication date
JP2013222315A (ja) 2013-10-28
CN103377140B (zh) 2018-02-16
US9170893B2 (en) 2015-10-27
US20130275818A1 (en) 2013-10-17
CN103377140A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
TWI663512B (zh) 重讀頁面資料方法
JP5853899B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5839048B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
JP5853906B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
CN103136067A (zh) 存储控制器、存储设备、信息处理系统以及存储控制方法
CN103793335B (zh) 存储控制设备、存储设备、信息处理系统及存储控制方法
JP5853973B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
WO2013108456A1 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
JP6107625B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP5845876B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2017168905A1 (ja) メモリ制御装置、記憶装置および情報処理システム
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
WO2019244417A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
JPWO2020031435A1 (ja) 記憶制御装置、記憶装置および記憶制御方法
JPWO2015182439A1 (ja) 記憶装置、記憶システムおよび記憶装置の制御方法
WO2017158997A1 (ja) メモリコントローラ、メモリシステム、情報処理システム、メモリ制御方法およびプログラム
WO2022158120A1 (ja) コントローラ、不揮発性記憶装置、および、制御方法
JP2013114521A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2013143118A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2015118499A (ja) 記憶装置、メモリコントローラ、記憶装置の制御方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151225

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R151 Written notification of patent or utility model registration

Ref document number: 5929456

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees