JP5749237B2 - 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法 - Google Patents

不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法 Download PDF

Info

Publication number
JP5749237B2
JP5749237B2 JP2012230293A JP2012230293A JP5749237B2 JP 5749237 B2 JP5749237 B2 JP 5749237B2 JP 2012230293 A JP2012230293 A JP 2012230293A JP 2012230293 A JP2012230293 A JP 2012230293A JP 5749237 B2 JP5749237 B2 JP 5749237B2
Authority
JP
Japan
Prior art keywords
nvm
address
information
operating parameter
health information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012230293A
Other languages
English (en)
Other versions
JP2013097789A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2013097789A publication Critical patent/JP2013097789A/ja
Application granted granted Critical
Publication of JP5749237B2 publication Critical patent/JP5749237B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices

Description

本文献は、不揮発性メモリの正常性(health)情報を取得して使用するためのシステム及び方法に関する。
大容量記憶装置には、フラッシュメモリ(例えば、NANDフラッシュメモリ及びNORフラッシュメモリ)などの、様々な種類の不揮発性メモリ(「NVM」)を使用することができる。例えば、(ポータブルメディアプレーヤなどの)消費者向け電子機器は、音楽、ビデオ、画像、及びその他のメディア又はタイプの情報を含むデータを記憶するためにフラッシュメモリを使用する。
一部のフラッシュメモリシステムでは、ホストシステムが論理ブロックアドレス(LBA)の読み取り動作及びプログラム動作を要求し、このLBAがフラッシュメモリの物理ブロックアドレスにマッピング又は変換される。このマッピングにより、ホストオペレーティングシステムが、ディスクドライブと同様の方法でフラッシュメモリにアクセスできるようになる。フラッシュメモリは、ランダムアクセス方式で一度に1バイト又は1ワードを読み取り又はプログラムすることができるが、通常は一度に1ブロックが消去される。新たに消去されたブロックから開始して、このブロック内のあらゆるバイトをプログラムすることができる。バイトは、一旦プログラムされると、通常はブロック全体が消去されるまで再プログラムすることができない。フラッシュメモリの消去プログラムのサイクル数には限りがあるので、フラッシュメモリの寿命を引き延ばすには、消去プログラムのサイクル数を最小にすることが望ましい。
上述したフラッシュメモリの固有の特性を背景として、フラッシュメモリ及びその他のNVMの正常性情報を効率的に取得して使用できるシステム、方法及び装置が必要とされている。
不揮発性フラッシュメモリ(NVM)の正常性(health)情報を取得して使用するためのシステム及び方法を開示する。本発明の実施形態は、ホスト及び不揮発性メモリパッケージを有するシステムで動作することができる。ホストは揮発性メモリを含み、論理対物理マッピングの維持、プログラムの発行、NVMパッケージに対するコマンドの読み取り又は消去、及びウェアレベリング及びガベージコレクションの実行などの不揮発性メモリの機能を実行することができる。ホストは、本発明の実施形態による正常性データベースを維持することもできる。NVMパッケージは、ホストに通信可能に結合され、メモリコントローラ及び(NANDフラッシュなどの)不揮発性メモリを含むことができる。いくつかの実施形態では、NVMパッケージが、誤り訂正符号エンジンを含むこともできる。
正常性データベースは、NVMに関する情報を記憶することができる。すなわち、NVM内の(ページ又はブロックなどの)物理的位置ごとに、この物理的位置に特有の正常性情報がデータベースに記憶される。データベースに記憶される正常性情報は、NVMの特定のアドレス位置にアクセスするために使用する様々なソフトウェア及び/又はハードウェアパラメータを指定するアドレス固有の正常性情報とすることができる。正常性情報は、例えば、ページの正確性、閾値電圧、読み取り、プログラム及び消去を行うために必要なサイクル時間及び/又はサイクル数、使用する誤り訂正符号などを含むことができる。正常性情報は、メモリコントローラにより生成することができるが、ホストによって保持されるデータベースに記憶される。正常性情報をホスト上に記憶することはできるが、ホストは、NVMを管理するために正常性情報を解釈し、修正し、又は使用することは決してない。
ホストは、NVMにアクセスしたいと望む場合、(読み取りコマンド又はプログラムコマンドなどの)アクセスコマンド、アドレス及びアドレス固有の正常性情報を含むコマンドパケットを構築し、このコマンドパケットをメモリコントローラに提供することができる。ホストは、正常性情報データベースにアクセスして、コマンドパケットに含めるためのアドレスに基づいてアドレス固有の正常性情報を取り出す。メモリコントローラは、コマンドパケットを受け取ると正常性情報を抽出し、NVM内のアクセスされる物理的位置に対して指定されたソフトウェア及び/又はハードウェアパラメータに従ってアクセス要求を実行することができる。
コマンドが実行された後、メモリコントローラは、アクセス要求を実行するために1又はそれ以上の動作パラメータに変更が必要であったかどうかを判定することができる。変更が必要であった場合、メモリコントローラは正常性情報を更新し、この更新した正常性情報及びNVMアドレスをホスト装置へ送信することができる。その後、ホストは、更新した正常性情報をデータベースに記憶することができる。
全体を通じて同じ参照番号が同じ部分を示す添付図面とともに以下の詳細な説明を検討すれば、本発明の上記の及びその他の態様、その特質及び様々な特徴がより明らかになるであろう。
本発明の様々な実施形態による、ホストとメモリコントローラを有するNVMパッケージとを含む例示的なシステムを示す図である。 本発明の様々な実施形態による例示的なシステムを示す図である。 本発明の様々な実施形態による例示的なデータ構造を示す図である。 本発明のいくつかの実施形態による、正常性情報を取得して使用する例示的な処理を示すフローチャートである。
図1は、NVMパッケージ104及びホスト102を含むシステム100を示す図である。ホスト102は、メモリコントローラ106と、ホストインターフェイス110と、対応するNVMs128a〜nを有するメモリチップ112a〜nとを含むことができるNVMパッケージ104に正常性情報を提供するように構成することができる。例えば、システム例100に示すように、ホスト102は、NVMパッケージ104に正常性情報を提供することができ、NVMパッケージ104は、この正常性情報を使用して(読み取り動作、プログラム動作、消去動作などの)アクセス要求及び(ウェアレベリング及びガベージコレクションなどの)メモリ管理機能を実行し、これによりシステム100の性能、信頼性及び/又は電力使用を改善することができる。NVMパッケージ104は正常性情報を更新し、これをホスト102に戻して正常性情報データベースに記憶されるようにすることもできる。
ホスト102は、ポータブルメディアプレーヤ、携帯電話機、ポケットサイズパーソナルコンピュータ、携帯情報端末(「PDA」)、デスクトップコンピュータ、ラップトップコンピュータ、及び/又はタブレットコンピュータ装置などの様々なホスト装置及び/又はシステムのいずれかとすることができる。NVMパッケージ104は、(例えば、メモリチップ112a〜n内に)NVM128a〜nを含むことができ、ボールグリッドアレイパッケージ又はその他の好適な種類の集積回路(「IC」)パッケージとすることができる。NVMパッケージ104は、ホスト102の一部であっても、及び/又はこれとは別個のものであってもよい。例えば、ホスト102を基板レベルの装置とし、NVMパッケージ104を、この基板レベルの装置上に取り付けられたメモリサブシステムとすることができる。他の実施形態では、NVMパッケージ104を、(SATAなどの)有線インターフェイス又は(Bluetooth(登録商標)などの)無線インターフェイスを使用してホスト102に結合することができる。
ホスト102は、NVMパッケージ104と相互作用するように構成されたホストコントローラ114を含むことができる。例えば、ホスト102は、読み取り動作、プログラム動作及び消去動作などの様々なアクセス要求をNVMパッケージ104に送信することができる。ホストコントローラ114は、ソフトウェア及び/又はファームウェア命令の実行に基づいて動作を行うように構成された1又はそれ以上のプロセッサ及び/又はマイクロプロセッサを含むことができる。これに加えて及び/又はこれとは別に、ホストコントローラ114は、様々な動作を行うように構成された特定用途向け集積回路(「ASIC」)などのハードウェアベースの構成要素を含むこともできる。ホストコントローラ114は、NVMパッケージ104に送信する(コマンド、データなどの)情報を、ホスト102とNVMパッケージ104の間で共用される通信プロトコルに従ってフォーマットすることができる。
ホスト102は、揮発性メモリ108を含む記憶要素134を含むことができる。揮発性メモリ108は、キャッシュメモリ又はRAMなどの様々な揮発性メモリタイプのいずれかとすることができる。ホスト102は、揮発性メモリ108を使用して、メモリ動作を実行し、及び/又はNVMパッケージ104から読み取っている及び/又はNVMパッケージ104に書き込んでいるデータを一時的に記憶することができる。例えば、揮発性メモリ108は、NVMパッケージ104に送信するメモリ動作の待ち行列を一時的に記憶すること、又はNVMパッケージ104から受け取ったデータを記憶することができる。また、揮発性メモリ108は、本発明の実施形態による正常性情報データベースを記憶することもできる。ホストコントローラ114は、正常性情報データベースにアクセスして、メモリコントローラ106に出すコマンドに含めるためのアドレス固有の正常性情報を取り出すことができる。十分な量の揮発性メモリをNVMパッケージ104内に保持するとコストが掛かり過ぎるので、NVMパッケージ104上の揮発性メモリとは対照的に、一般的にはホスト102上の揮発性メモリ内に正常性情報データベースを保持することが必要である。
ホスト102は、通信チャネル116を介して、ホストインターフェイス110及びメモリコントローラ106を使用してNVMパッケージ104と通信することができる。通信チャネル116は、双方向通信に適したいずれのバスであってもよい。通信チャネル116は、固定式であっても、着脱式であっても、又は無線方式であってもよい。例えば、通信チャネル116は、ユニバーサルシリアルバス(USB)、シリアルアドバンスドテクノロジ(SATA)バス、又はその他のあらゆる好適なバスとすることができる。
メモリコントローラ106は、ソフトウェア命令及び/又はファームウェア命令の実行に基づいて動作を行うように構成された1又はそれ以上のプロセッサ及び/又はマイクロプロセッサ120を含むことができる。これに加えて及び/又はこれとは別に、メモリコントローラ106は、様々な動作を行うように構成されたASICなどのハードウェアベースの構成要素を含むこともできる。メモリコントローラ106は、ホスト102によって出されたコマンドを実行することなどの様々な動作を行うことができる。
ホストコントローラ114及びメモリコントローラ106は、単独で又は組み合わせて、ガベージコレクション及びウェアレベリングなどの様々なメモリ管理機能を実行することができる。メモリコントローラ106が少なくともいくつかのメモリ管理機能を実行するように構成された実施構成では、NVMパッケージ104を、「managed NVM」(又はNANDフラッシュメモリの場合には「managed NAND」)と呼ぶことができる。これは、NVNパッケージ104の外部にあるホストコントローラ114がNVMパッケージ104のメモリ管理機能を実行する「raw NVM」(又はNANDフラッシュメモリの場合には「raw NAND」)とは対照的なものとすることができる。
いくつかの実施形態では、メモリコントローラ106を、メモリチップ112a〜nと同じパッケージに組み込むことができる。他の実施形態では、メモリコントローラ106を、ホスト102と別個の又は同じパッケージ内に物理的に配置することができる。いくつかの実施形態では、メモリコントローラ106を省き、通常はメモリコントローラ106によって行われる(ガベージコレクション及びウェアレベリングなどの)全てのメモリ管理機能を(ホストコントローラ114などの)ホストコントローラによって行うことができる。
メモリコントローラ106は、揮発性メモリ122を含むことができる。揮発性メモリ122は、キャッシュメモリ又はRAMなどの様々な揮発性メモリタイプのいずれかとすることができる。メモリコントローラ106は、揮発性メモリ122を使用して、アクセス要求を実行し、及び/又はメモリチップ112a〜n内のNVM128a〜nから読み取っているデータ及びここに書き込んでいるデータを一時的に記憶することができる。例えば、揮発性メモリ122はファームウェアを記憶することができ、メモリコントローラ106は、このファームウェアを使用して、NVMパッケージ104上の(読み取り/プログラム動作などの)動作を行うことができる。揮発性メモリ122は、NVMパッケージ104内のNVMに関連する正常性情報を一時的に記憶することもできる。メモリコントローラ106は、NVM128a〜nを使用して、デバッグログ、命令、及びNVMパッケージ104が動作するために使用するファームウェアなどの様々な情報を永続的に記憶することができる。
メモリコントローラ106は、永続的データ記憶に使用できるNVMs128a〜nに、共有内部バス126を使用してアクセスすることができる。NVMパッケージ104内には1つの共有内部バス126しか示していないが、NVMパッケージは、1つよりも多くの共有内部バスを含むことができる。各内部バスは、メモリチップ112a〜nに関して示すように(2個、3個、4個、8個、32個などの)複数のメモリチップに接続することができる。メモリチップ112a〜nは、積層構成を含む様々な構成で物理的に配置することができ、いくつかの実施形態によれば集積回路(IC)チップとすることができる。
NVM128a〜nは、フローティングゲート技術又は電荷トラップ技術に基づくNANDフラッシュメモリ、NORフラッシュメモリ、消去可能プログラム可能読み取り専用メモリ(「EPROM」)、電気的消去可能プログラム可能読み取り専用メモリ(「EEPROM」)、強誘電性RAM(「FRAM(登録商標)」)、磁気抵抗性RAM(「MRAM」)、相変化メモリ(「PCM」)などの様々なNVMのいずれか、又はこれらのいずれかの組み合わせとすることができる。
図2は、電子装置200のブロック図であり、この図には、様々な実施形態によるシステム100(図1)のファームウェア、ソフトウェア及び/又はハードウェア構成要素のいくつかをより詳細に示すことができる。電子装置200は、図1に関連して上述した特徴及び機能のいずれかを有することができ、逆もまた同様である。図示のように、破線で層の境界を定めている。どの構成要素が境界線内に入るかについての描写は例示にすぎず、1又はそれ以上の構成要素が異なる層に属することもできると理解されたい。
電子装置200は、ファイルシステム210、ホストコントローラ212、NVMバスコントローラ216、メモリコントローラ220、及びNVM230を含むことができる。いくつかの実施形態では、ファイルシステム210及びホストコントローラ212をソフトウェア又はファームウェアモジュールとすることができ、NVMバスコントローラ216、メモリコントローラ220及びNVM230をハードウェアモジュールとすることができる。従って、これらの実施形態では、ホストコントローラ212が、NVMインターフェイス218のソフトウェア又はファームウェアの側面を表すことができ、NVMバスコントローラ216が、NVMインターフェイス218のハードウェアの側面を表すことができる。
ファイルシステム210は、ファイルアロケーションテーブル(「FAT」)ファイルシステム又は階層型ファイルシステムプラス(「HFS+」)などのいずれかの好適な種類のファイルシステムを含むことができ、電子装置200のオペレーティングシステムの一部(例えば、図1のSoC制御回路112の一部)とすることもできる。いくつかの実施形態では、ファイルシステム210が、ページの論理対物理マッピングを行うフラッシュファイルシステムを含むことができる。これらの実施形態では、ファイルシステム210が、以下で説明するホストコントローラ212の機能の一部又は全部を実行することができ、従ってファイルシステム210とホストコントローラ212は、別個のモジュールであっても又はそうでなくてもよい。
ファイルシステム210は、アプリケーション及びオペレーティングシステムのファイル及びフォルダ構造を管理することができる。ファイルシステム210は、電子装置200上で実行されるアプリケーション又はオペレーティングシステムの制御下で動作することができ、このアプリケーション又はオペレーティングシステムが、NVM230から情報を読み取ること又はNVM230に情報を記憶することを要求した場合、ホストコントローラ212に書き込み及び読み取りコマンドを提供することができる。ファイルシステム210は、各書き込み又は読み取りコマンドとともに、ユーザデータをどこから読み取るべきか又はどこに書き込むべきかを示すための、論理ページアドレス及びページをオフセットしたLBAなどの論理アドレスを提供することができる。
ファイルシステム210は、NVMと直接的に互換性がない読み取り及び書き込み要求をホストコントローラ212に提供することができる。例えば、論理アドレスには、ハードドライブベースのシステムに特有の規則又はプロトコルを使用することができる。ハードドライブベースのシステムは、フラッシュメモリとは異なり、最初にブロックの消去を行わずに記憶域を上書きすることができる。さらに、ハードドライブは、装置の寿命を延ばすためにウェアレベリングを必要としなくてよい。従って、NVMインターフェイス218は、メモリ固有の、ベンダー固有の、又はこれらの両方のあらゆる機能を実行して、ファイルシステム要求の処理及びその他の管理機能をNVMに適した形で行うことができる。
ホストコントローラ212は、トランスレーションレイヤ214を含むことができる。いくつかの実施形態では、トランスレーションレイヤ214をフラッシュトランスレーションレイヤ(「FTL」)とすることができ、又はこのFTLを含むことができる。書き込みコマンド時には、トランスレーションレイヤ214が、提供された論理アドレスを、NVM上の空いている消去済みの物理的位置にマッピングすることができる。読み取りコマンド時には、トランスレーションレイヤ214が、提供された論理アドレスを使用して、要求されるデータが記憶されている場所の物理アドレスを特定することができる。各NVMは、NVMのサイズ又はベンダーに応じて異なるレイアウトを有することができるので、このマッピング動作は、メモリ及び/又はベンダー固有のものとなり得る。トランスレーションレイヤ214は、論理対物理アドレスマッピングに加え、他のあらゆる好適な機能を実行することもできる。例えば、トランスレーションレイヤ214は、ガベージコレクション(「GC」)及びウェアレベリングなどの、フラッシュトランスレーションレイヤに特有のものとすることができる他の機能のいずれかを実行することができる。
例えば、トランスレーションレイヤ214は、ガベージコレクションを実行して、NVM230のプログラム済みブロックを消去のために解放することができる。解放され消去されると、このメモリ位置を使用して、例えばファイルシステム210から受け取った新たなユーザデータを記憶することができる。場合によっては、GCプロセスが、プログラム済みブロックから消去済みのメモリ位置を有する別のブロックに有効なデータをコピーして、これによりプログラム済みブロック内の有効データを無効化することに関与することができる。プログラム済みブロック内のメモリ位置が全て無効になると、トランスレーションレイヤ214は、NVMバスコントローラ216に、これらのプログラム済みブロック上で消去動作を行うように指示することができる。本明細書で使用する「有効なデータ」とは、(LBAなどの)1又はそれ以上の論理アドレスに対応する直近の書き込み要求に応答してプログラムされたユーザデータを意味することができ、従って1又はそれ以上の論理アドレスに対応する有効なバージョンのユーザデータとすることができる。
ホストコントローラ212は、アドレス固有の正常性情報を記憶するための正常性データベース215を含むことができる。正常性データベース215は、NVM230内の物理的位置に対応する情報の参照テーブルを含むことができる。ファイルシステム210が、ホストコントローラ212にコマンド及び論理アドレスを送ると、トランスレーションレイヤ214が、NVM230内の物理的位置を特定し、ホストコントローラ212が、この物理的位置を使用して、正常性データベース215からアドレス固有の正常性情報を取得する。いくつかの実施形態では、ホストコントローラ212が、メモリコントローラ220に提供するコマンドパケットに、正常性データベース215から取得した正常性情報を含める。この実施形態では、ホストコントローラ212が、データ検索エージェントとして機能し、正常性情報を使用してNVMの管理上の決定を行うことはない。ホストコントローラ212は、メモリコントローラ220から受け取った正常性情報を使用して正常性データベース215を更新することにより、データ投入エージェントとして機能することもできる。
メモリコントローラ220は、正常性情報を生成し、これを正常性データベース215に記憶する。この結果、メモリコントローラ220のみが正常性情報を解釈して使用することができる。ホストコントローラ212は、正常性情報をデータベース215に記憶することはできるが、これを使用してNVMの管理上の決定を行うことはできない。
(図1の揮発性メモリ108内に存在できる)正常性データベースに記憶された正常性情報は、NVMインターフェイス218又はホストインターフェイス110の下流のソフトウェア及び/又はハードウェア構成要素が、NVM230のあらゆる特定の物理的位置に対するコマンド要求をより効率的に処理できるようにする情報とすることができる。例えば、正常性情報は、例えばNVMパッケージ104上に存在するECCエンジンがいずれの誤り訂正符号を実施すべきかを指定することができる。別の例として、正常性情報は、プログラム電圧、プログラム/検証サイクルの数、及びNVM内の特定の物理的位置に必要なプログラム分解能などの、メモリコントローラハードウェアの設定を記憶することができる。
正常性情報は、NVMの一部の劣化及び/又は障害の可能性を示すあらゆるデータを含むことができる。一般に、正常性情報は、NVMの効率的かつ信頼できる使用に関する決定を行うために使用できる、NVMに関するあらゆるデータを含むことができる。メモリコントローラ106又は220は、重要な性能及び較正パラメータを記憶することにより、コマンド要求を実行する方法を、不必要な待ち時間及びデータ破損を避けるように変更することができる。
1つの特定の例では、正常性情報を使用して、ホストにより開始される読み取り動作を事前に補正することができる。ホストは、NVMの(ブロックなどの)特定の部分の読み取り動作を開始することができる。メモリコントローラは、この読み取り動作を受け取って、NVMの(ブロック又はページなどの)物理アドレスに関連する正常性情報を調べることができる。正常性情報は、ブロックを読み取った最後の時間、及び読み取り動作に複数の読み取りサイクルが必要であったことを示すことができる。例えば、読み取り動作に8回の読み取りサイクルを要し、使用した各読み取りサイクルで徐々に読み取り条件を変更した(例えば、閾値電圧値を徐々にシフトさせた)かもしれない。この正常性情報に基づいて、メモリコントローラは、最後の既知の成功した(単複の)読み取り条件を使用して、要求される物理的位置上の読み取り動作を実行すると決定することができる。読み取り動作がうまくいった場合、メモリコントローラは、その物理的位置(ブロックなど)に関する正常性情報をそのままホストに戻すことができる。しかしながら、読み取り動作にさらなる読み取りサイクルが必要であった場合、メモリコントローラは、その物理的位置(ブロックなど)に関する正常性情報を更新し、この更新した正常性情報をホストに戻すことができる。
別の例では、正常性情報を使用して、ホストがプログラム動作を開始した時にNVMの一部をより効率的にプログラムすることができる。(NANDフラッシュメモリなどの)NVMは、時間、使用(読み取り/プログラムサイクル数など)、及び動作温度とともに劣化する傾向にある。この劣化は、例えばメモリセルの閾値電圧の変位の形で表れることがある。従って、正常性情報は、NVMの一部のこれらの重要なパラメータを追跡することができる。メモリコントローラ106は、NVM128a〜nの特定部分にデータをプログラムする要求をホスト102から受け取ると、このメモリ部分に関する正常性情報を参照して、プログラム済みのセルがどれほどの程度及びどれほど速く劣化しそうであるかを判断することができる。例えば、ホスト102が、(例えば、正常性情報内の時間、温度、及びサイクルデータによって示される)すぐに劣化しそうなメモリ部分に対してプログラム動作を開始した場合、メモリコントローラ106は、プログラム電圧を、予想閾値電圧ドリフトを補償するように変化させるよう決定することができる。
いくつかの実施形態による、取得して使用できる正常性情報のさらなる例として、NVMの一部における不良ビット数、DLLタイミング設定、及び/又はデータのプログラム又は読み取りに必要なサイクル時間又はサイクル数を反映するビット誤り率データを挙げることができる。検出されたエラーを補正するためのメモリ装置の容量を示すことができるページの正確性に関して正常性情報を蓄積することもできる。例えば、エラーの訂正に必要な誤り訂正符号(「ECC」)サイクルの数、又は(高ビットフリップECC、低ビットフリップECC、ソフトウェアECCなどの)使用するECC技術が、NVMの一部の正常性を示すことができる。
ホストコントローラ212は、(プログラム、読み取り及び消去コマンドなどの)NVMアクセスコマンドを完了するために、NVMバスコントローラ216と相互連結することができる。NVMバスコントローラ216は、メモリコントローラ220へのハードウェアインターフェイスとして機能し、バスプロトコル、データ転送率及びその他の仕様を使用してメモリコントローラ220と通信することができる。
NVMインターフェイス218は、本明細書では「メタデータ」と呼ぶこともあるメモリ管理データに基づいてNVM230を管理することができる。このメタデータは、ホストコントローラ212によって生成することも、又はホストコントローラ212の制御下で動作するモジュールによって生成することもできる。例えば、メタデータは、論理アドレスと物理アドレスの間のマッピング、不良ブロック管理、ウェアレベリング、データエラーを検出又は訂正するために使用する誤り訂正符号(「ECC」)データ、又はこれらのいずれかの組み合わせを管理するために使用するあらゆる情報を含むことができる。メタデータは、ファイルシステム210により提供されるデータ、及び論理アドレスなどのユーザデータを含むことができる。従って、一般に「メタデータ」は、ユーザデータについての又はユーザデータに関する、或いは不揮発メモリの動作及びメモリ位置を管理するために一般的に使用されるあらゆる情報を意味することができる。いくつかの実施形態では、メタデータ及び正常性情報が互いに排他的である。
NVMインターフェイス218は、NVM230にメタデータを記憶するように構成することができる。いくつかの実施形態では、NVMインターフェイス218が、ユーザデータに関連するメタデータを、ユーザデータが記憶されているメモリ位置と同じメモリ位置(ページなど)に記憶することができる。例えば、NVMインターフェイス218は、ユーザデータ、その関連する論理アドレス、及びユーザデータのためのECCデータをNVM230の1又はそれ以上のメモリ位置に記憶することができる。NVMインターフェイス218は、ユーザデータに関する他の種類のメタデータを同じメモリ位置に記憶することもできる。
NVMインターフェイス218は、NVM230に正常性情報を記憶することもできる。NVMインターフェイス218は、正常性データベース215のコンテンツをNVM230に定期的に、又は電源切断イベント中(例えば装置をオフにした時)に記憶することができる。NVM230に正常性情報を記憶した場合、電源投入中にこの情報を取り出して正常性データベース215に投入することができる。
NVMインターフェイス218は論理アドレスを記憶して、NVM230の電源投入時又はNVM230の動作中に、電子装置200がその位置にどのようなデータが存在するかを判断できるようにすることができる。具体的に言えば、ファイルシステム210は、ユーザデータをその物理的位置ではなくその論理的位置に従って参照できるので、NVMインターフェイス218は、ユーザデータと論理アドレスをともに記憶してこれらの関連性を維持することができる。このようにして、たとえNVM230内の物理対論理マッピングを維持するインデックステーブルが期限切れになっても、NVMインターフェイス218は、例えば電子装置200の電源投入時又は再起動時に依然として正しいマッピングを判断することができる。
図3は、(図1のホスト102などの)ホスト装置と(図1のメモリコントローラ106などの)メモリコントローラの間で転送できるコマンドパケット300の例示的な図である。コマンドパケット300は、コマンドアクセス要求331、アドレス333、正常性情報335、データ337、及びメタデータ339を含むことができる。コマンドアクセス要求331は、例えば読み取り要求、プログラム要求又は消去要求などの、ホスト装置によってメモリコントローラに提供されるあらゆる好適な命令とすることができる。アドレス333は、アクセスされるNVM内の(単複の)物理アドレスとすることができる。例えば、この(単複の)アドレスは、(トランスレーションレイヤ214などの)トランスレーションレイヤから導出することができる。
コマンドパケットは、正常性情報335を含むこともできる。正常性情報335は、アドレス333に関連付けることができ、従って本明細書ではアドレス固有の正常性情報と呼ぶことができる。ホストコントローラは、このアドレス固有の正常性情報を(正常性データベース215などの)正常性データベースから取り出して、これをコマンドパケット300に含めることができる。メモリコントローラは、コマンドパケット300を受け取ると、正常性情報335を抽出し、これを処理し、これに応じてコマンドアクセス要求331を実行することができる。いくつかの実施形態によれば、正常性情報335が、ページの正確性、閾値電圧、NVMの該当部分を読み取り、プログラムし、又は消去するために必要なサイクル時間及び/又はサイクル数などの、アドレス固有のNVM正常性インジケータを含むことができる。他の実施形態では、正常性情報335を正常性等級とすることができ、この正常性等級は、個々のNVM正常性インジケータから計算したNVMの一般化した正常性指示とすることができる。正常性情報335は、メモリコントローラ220に特有のものとすることができ、従ってメモリコントローラのみがこれを解釈して使用することができる。従って、どのメーカーがメモリコントローラ及びNVMを生産したかに関わらず、メモリコントローラは、コマンドパケット300に含まれる正常性情報を受け取り、これを処理して使用することができる。さらに、ホストコントローラは、正常性情報の内容については全く知ることができない。
データ構造330は、データ337及びメタデータ339を含むこともできる。例えば、アクセス要求がプログラム要求である場合、データ337は、NVMに対してプログラムされたデータであることができる。データ337は、あらゆる好適な種類のデータとすることができる。ホスト装置がメディアプレーヤである実施形態では、データ337が、(楽曲、ビデオ、画像、eブックなどの)1又はそれ以上のメディアファイルを表すことができる。メタデータ339は、論理アドレスと物理アドレスの間のマッピング管理、不良ブロック管理、ウェアレベリング、データエラーを検出して補正するために使用される誤り訂正符号(「ECC」)データ、又はこれらのいずれかの組み合わせを管理するために使用されるあらゆる情報を含むことができる。
例示的なコマンドプログラム要求では、メモリコントローラが、最初のバスサイクルで(図1の通信チャネル116などの)通信チャネルを介してホスト装置からプログラムコマンドパケットを受け取り、これをコマンドレジスタ(揮発性メモリ122など)に記憶することができる。次に、1又はそれ以上のバスサイクルを使用して、揮発性メモリのアドレスレジスタにアドレス333を入力することができる。次に、ページバッファ内にデータ337及びメタデータ339をロードして、アドレスレジスタに記憶されたNVMのアドレスにプログラムすることができる。
例示的なコマンド読み取り要求では、メモリコントローラが、最初のバスサイクルで通信チャネルを介してホスト装置からコマンド読み取りパケットを取り出してコマンドレジスタに記憶することができる。1又はそれ以上のバスサイクルを使用して、アドレスレジスタにアドレス333を入力することができる。次に、NVMのアドレス333に記憶されたデータをページバッファに転送し、バスの準備ができたらホストに転送することができる。
図4は、本発明の実施形態による、システムが正常性情報をどのように使用するかについてのステップを示す例示的なフローチャートである。このシステムは、とりわけ(ホスト102などの)ホスト装置、(メモリコントローラ106などの)メモリコントローラ、及び(NVM128などの)NVMを含むことができる。ステップ410において、NVMの正常性情報データベースが少なくとも1つの記憶要素内に保持される。この少なくとも1つの記憶要素は、ホスト装置に付随する揮発性メモリとすることができる。正常性情報データベースは、物理アドレス固有の正常性情報を記憶する。
ステップ420において、メモリコントローラにコマンドが提供され、各コマンドは、コマンドアクセス要求、アドレス、及びアドレス固有の正常性情報を含む。ホスト装置は、(トランスレーションレイヤ214などの)トランスレーションレイヤから物理アドレスを取得することによってコマンドをパッケージ化し、この物理アドレスを使用して正常性情報データベースからアドレス固有の正常性情報を取り出すことができる。このホストにより編成されるコマンドパケットは、図3に関連して上述したコマンドパケットと同様のものとすることができる。
ステップ430において、メモリコントローラが、コマンドからアドレス固有の正常性情報を抽出することができる。ステップ440において、メモリコントローラが、このアドレス固有の正常性情報に従ってアクセス要求を実行することができる。例えば、メモリコントローラは、NVMの物理アドレスに対するコマンドを実行する際に、アドレス固有の正常性情報内に存在するあらゆるハードウェア及び/又はソフトウェアパラメータを考慮する。プログラムコマンドが実行されている場合、正常性情報は、プログラミングをどれほど細かく調整すべきかを指定することができ、又は所与の位置に関するプログラム時間又は最終的なプログラム電圧レベルをどのようにすべきかを指定することができる。コントローラは、この情報を使用して、その意図される位置に最も適した形でデータをプログラムすることができる。
ステップ450において、アドレス固有の正常性情報に従ってアクセス要求が実行されたかどうかを判定する。アドレス固有の正常性情報に従ってアクセス要求が実行された場合、プロセスはステップ480において終了する。アドレス固有の正常性情報に従ってアクセス要求が実行されなかった場合、プロセスはステップ460へ進む。例えば、アドレス固有の正常性情報に含まれているパラメータとは異なるソフトウェア及び/又はハードウェアパラメータがアクセス要求の実行に必要な場合に、プロセスはステップ460へ進むことができる。例えば、メモリコントローラは、使用した実際のパラメータを正常性情報が示唆するパラメータと比較することができる。
ステップ460において、メモリコントローラは、変更した(単複の)パラメータをパケット内にパッケージ化することによって正常性情報を更新し、これをホスト装置に提供することができる。パケットは、アドレス及び更新済みの正常性情報を含むことができる。ステップ470において、ホスト装置は、メモリコントローラから受け取った変更済みの(単複の)パラメータを使用して、正常性情報データベース内の正常性情報を更新することができる。
図4に示すステップは例示にすぎず、既存のステップを修正又は省略すること、追加のステップを加えること、いくつかのステップの順序を変更することができると理解されたい。
不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法について説明したが、本発明の思想及び範囲から逸脱することなく多くの変更を行うことができると理解されたい。既知のものではなくすなわち後から考案される、当業者から見た本主題からのわずかな変化も、同等に特許請求の範囲に含まれることが明確に企図される。従って、現在当業者に公知の、及び将来的に当業者に知られる明白な置換は、規定の構成要素の範囲に含まれると定義される。
説明した本発明の実施形態は、限定ではなく例示目的で示したものである。

Claims (20)

  1. 不揮発性メモリ(NVM)と、
    前記NVMに第1のバスを介して通信可能に結合されたメモリコントローラと、
    前記メモリコントローラに第2のバスを介して通信可能に結合された、少なくとも1つの記憶要素を有するホスト装置と、を備え、
    前記ホスト装置が、
    前記少なくとも1つの記憶要素内に、アドレス固有の正常性情報を記憶した前記NVMの正常性情報データベースを保持し
    クセス要求、アドレス及びアドレス固有の正常性情報を含むコマンドを、前記第2のバスを介して前記メモリコントローラに送信し、
    前記メモリコントローラが、さらに、
    前記コマンドから前記アドレス固有の正常性情報を抽出し、
    前記アドレス固有の正常性情報を処理して少なくとも1つのNVM動作パラメータを取得し、
    前記少なくとも1つのNVM動作パラメータに従って前記アクセス要求を実行する、ように構成される、ことを特徴とするシステム。
  2. 前記不揮発性メモリが、NANDフラッシュメモリを含む、ことを特徴とする請求項1に記載のシステム。
  3. 前記メモリコントローラがさらに、前記アドレス固有の正常性情報を更新し、該更新したアドレス固有の正常性情報を前記ホスト装置に提供する、ことを特徴とする請求項1に記載のシステム。
  4. 前記ホスト装置が、さらに、前記更新したアドレス固有の正常性情報を前記正常性情報データベースに記憶する、ことを特徴とする請求項3に記載のシステム。
  5. 前記ホスト装置が、前記正常性情報データベースに記憶されたいずれのアドレス固有の正常性情報とも関係なく動作する、ことを特徴とする請求項1に記載のシステム。
  6. 前記ホスト装置が、前記正常性情報データベース内のいずれのアドレス固有の正常性情報も単独で修正しない、ことを特徴とする請求項1に記載のシステム。
  7. 前記アドレス固有の正常性情報が、誤り訂正パラメータ、プログラムパラメータ、読み取りパラメータ、又はこれらのあらゆる組み合わせを含む、ことを特徴とする請求項1に記載のシステム。
  8. 前記ホスト装置が、さらに、
    ファイルシステムからファイルシステムコマンドを受け取り、
    前記ファイルシステムコマンドから、アクセスすべき物理アドレスを判断し、
    前記正常性情報データベースにアクセスして、前記物理アドレスに対応するアドレス固有の正常性情報を取り出し、
    前記取り出したアドレス固有の正常性情報及び前記物理アドレスを、前記メモリコントローラに提供する前記コマンドに組み入れる、ことを特徴とする請求項1に記載のシステム。
  9. 不揮発性メモリ(NVM)と通信するメモリコントローラにより実施される方法であって、
    アクセス要求と、
    アドレスと、
    前記アドレスに関連するアドレス固有の正常性情報と、
    を含むコマンドをメモリコントローラにおいてホスト装置から受け取るステップであって、前記アドレス固有の正常性情報は、前記ホスト装置内に含まれるメモリに保存される正常性情報データベースで保持される、ステップと、
    前記アドレス固有の正常性情報を処理して少なくとも1つのNVM動作パラメータを取得するステップと、
    前記少なくとも1つのNVM動作パラメータに従って前記アクセス要求を実行するステップと、を含むことを特徴とする方法。
  10. 前記アクセス要求を実行するために前記少なくとも1つのNVM動作パラメータに変更が必要であったかどうかを判定するステップと、
    前記アクセス要求を実行するために前記少なくとも1つのNVM動作パラメータに変更が必要であったと判定された場合、前記少なくとも1つのNVM動作パラメータに前記変更を含めるように前記正常性情報を更新するステップと、
    前記更新した正常性情報及び前記アドレスを前記ホスト装置に送信するステップと、をさらに含むことを特徴とする請求項9に記載の方法。
  11. 前記少なくとも1つのNVM動作パラメータが、誤り訂正符号(ECC)パラメータを含む、ことを特徴とする請求項9に記載の方法。
  12. 前記少なくとも1つのNVM動作パラメータが、読み取りパラメータを含む、ことを特徴とする請求項9に記載の方法。
  13. 前記少なくとも1つのNVM動作パラメータが、プログラムパラメータを含む、ことを特徴とする請求項9に記載の方法。
  14. 前記アクセス要求が、読み取り要求又はプログラム要求である、ことを特徴とする請求項9に記載の方法。
  15. ホストと通信するためのインターフェイスと、
    不揮発性メモリ(NVM)と、
    前記インターフェイス及び前記NVMに結合されたコントローラと、を含み、
    前記コントローラが、
    前記インターフェイスから、アクセス要求、アドレス及び正常性情報を含むコマンドを受け取り、前記正常性情報は、前記アドレスに関連する前記NVMの少なくとも一部の劣化の可能性を示す情報を含み、
    前記正常性情報を処理して少なくとも1つのNVM動作パラメータを取得し、
    前記少なくとも1つのNVM動作パラメータに従って前記アクセス要求を実行する、ことを特徴とする不揮発性メモリパッケージ。
  16. 前記コントローラが、さらに、
    前記アクセス要求を実行するために前記少なくとも1つのNVM動作パラメータに変更が必要であったかどうかを判定し、
    前記アクセス要求を実行するために前記少なくとも1つのNVM動作パラメータに変更が必要であったと判定された場合、前記少なくとも1つのNVM動作パラメータに前記変更を含めるように前記正常性情報を更新し、
    前記更新した正常性情報及び前記アドレスを前記インターフェイスに送信する、ことを特徴とする請求項15に記載の不揮発性メモリパッケージ。
  17. 前記少なくとも1つのNVM動作パラメータが、誤り訂正符号(ECC)パラメータを含む、ことを特徴とする請求項15に記載の不揮発性メモリパッケージ。
  18. 前記少なくとも1つのNVM動作パラメータが、読み取りパラメータを含む、ことを特徴とする請求項15に記載の不揮発性メモリパッケージ。
  19. 前記少なくとも1つのNVM動作パラメータが、プログラムパラメータを含む、ことを特徴とする請求項15に記載の不揮発性メモリパッケージ。
  20. 記コントローラに結合された誤り訂正符号(ECC)エンジンをさらに含み、前記コントローラが、前記ECCエンジンに前記ECCパラメータを使用するように指示する、ことを特徴とする請求項17に記載の不揮発性メモリパッケージ。
JP2012230293A 2011-10-31 2012-09-28 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法 Active JP5749237B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/285,145 US10359949B2 (en) 2011-10-31 2011-10-31 Systems and methods for obtaining and using nonvolatile memory health information
US13/285,145 2011-10-31

Publications (2)

Publication Number Publication Date
JP2013097789A JP2013097789A (ja) 2013-05-20
JP5749237B2 true JP5749237B2 (ja) 2015-07-15

Family

ID=47044822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012230293A Active JP5749237B2 (ja) 2011-10-31 2012-09-28 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法

Country Status (7)

Country Link
US (1) US10359949B2 (ja)
EP (1) EP2587362B1 (ja)
JP (1) JP5749237B2 (ja)
KR (1) KR101394845B1 (ja)
CN (1) CN103092764B (ja)
TW (1) TWI511151B (ja)
WO (1) WO2013066518A1 (ja)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751755B2 (en) 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
WO2013147865A1 (en) * 2012-03-30 2013-10-03 Intel Corporation A mechanism for saving and retrieving micro-architecture context
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9921980B2 (en) 2013-08-12 2018-03-20 Micron Technology, Inc. Apparatuses and methods for configuring I/Os of memory for hybrid memory modules
JP6102632B2 (ja) * 2013-08-14 2017-03-29 ソニー株式会社 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
US9639463B1 (en) * 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9946656B2 (en) 2013-08-30 2018-04-17 Hewlett Packard Enterprise Development Lp Completion packet return based on eviction or flush
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
US9619381B2 (en) * 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
US9558107B2 (en) 2013-12-24 2017-01-31 International Business Machines Corporation Extending useful life of a non-volatile memory by health grading
US9418721B2 (en) * 2014-01-21 2016-08-16 International Business Machines Corporation Determining and storing bit error rate relationships in spin transfer torque magnetoresistive random-access memory (STT-MRAM)
US9406368B2 (en) 2014-01-21 2016-08-02 International Business Machines Corporation Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM)
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
KR20150112075A (ko) * 2014-03-26 2015-10-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9653184B2 (en) 2014-06-16 2017-05-16 Sandisk Technologies Llc Non-volatile memory module with physical-to-physical address remapping
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US20160018998A1 (en) * 2014-07-17 2016-01-21 Sandisk Enterprise Ip Llc Methods and Systems for Scalable Reliability Management of Non-Volatile Memory Modules
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9990467B2 (en) * 2014-10-24 2018-06-05 Samsung Electronics Co., Ltd. Electronic system with health monitoring mechanism and method of operation thereof
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US9785570B2 (en) * 2015-03-09 2017-10-10 Samsung Electronics Co., Ltd. Memory devices and modules
KR20160112439A (ko) 2015-03-19 2016-09-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 동작 방법
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US9891833B2 (en) * 2015-10-22 2018-02-13 HoneycombData Inc. Eliminating garbage collection in nand flash devices
CN106779008A (zh) * 2015-11-23 2017-05-31 杭州海康威视数字技术股份有限公司 Sd卡、摄像机和sd卡可靠性预警系统
US10437483B2 (en) * 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
KR20170073792A (ko) * 2015-12-18 2017-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180061557A (ko) * 2016-11-29 2018-06-08 삼성전자주식회사 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치
US11003381B2 (en) * 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US10147475B1 (en) 2017-05-09 2018-12-04 Micron Technology, Inc. Refresh in memory based on a set margin
CN107220185A (zh) * 2017-05-23 2017-09-29 建荣半导体(深圳)有限公司 基于闪存的数据存储方法、装置以及闪存芯片
US10921984B2 (en) * 2017-06-14 2021-02-16 Western Digital Technologies, Inc. Protection of user data in data storage devices using preemptive health reporting
JP6785204B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
US10936205B2 (en) 2017-10-05 2021-03-02 International Business Machines Corporation Techniques for retention and read-disturb aware health binning
US10824352B2 (en) 2017-12-06 2020-11-03 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
KR20190068902A (ko) * 2017-12-11 2019-06-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR102507302B1 (ko) * 2018-01-22 2023-03-07 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20190093361A (ko) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 호스트 및 메모리 컨트롤러를 포함하는 전자 시스템 및 이의 동작 방법
US10699791B2 (en) 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory
CN110955609A (zh) * 2018-09-26 2020-04-03 北京忆恒创源科技有限公司 用于多流、开放通道存储设备的演进的自动流跟踪(east)
KR102589402B1 (ko) 2018-10-04 2023-10-13 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
US10936456B1 (en) 2019-02-20 2021-03-02 Apple Inc. Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns
KR20210006664A (ko) * 2019-07-09 2021-01-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11150812B2 (en) * 2019-08-20 2021-10-19 Micron Technology, Inc. Predictive memory management
CN111722799B (zh) * 2020-05-28 2024-02-09 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备及可读存储介质
US11429480B2 (en) 2020-08-31 2022-08-30 Micron Technology, Inc. Method of demand scrubbing by placing corrected data in memory-side cache
JP7102482B2 (ja) * 2020-10-23 2022-07-19 キオクシア株式会社 メモリシステムおよび制御方法
WO2022094776A1 (en) * 2020-11-04 2022-05-12 Alibaba Group Holding Limited Error detection, prediction and handling techniques for system-in-package memory architectures
US20220238175A1 (en) * 2021-01-28 2022-07-28 Micron Technology, Inc. Bit retiring to mitigate bit errors

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5127014A (en) * 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
US5517626A (en) * 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
EP0553338B1 (en) * 1991-08-16 1999-10-13 Cypress Semiconductor Corp. High-performance dynamic memory system
US5452418A (en) * 1992-04-24 1995-09-19 Digital Equipment Corporation Method of using stream buffer to perform operation under normal operation mode and selectively switching to test mode to check data integrity during system operation
US5353256A (en) * 1993-06-30 1994-10-04 Intel Corporation Block specific status information in a memory device
US5488691A (en) * 1993-11-17 1996-01-30 International Business Machines Corporation Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes
US5737744A (en) * 1995-10-13 1998-04-07 Compaq Computer Corporation Disk array controller for performing exclusive or operations
US20080320209A1 (en) * 2000-01-06 2008-12-25 Super Talent Electronics, Inc. High Performance and Endurance Non-volatile Memory Based Storage Systems
US6854121B2 (en) * 2001-02-16 2005-02-08 Canon U.S.A., Inc. Command interface to object-based architecture of software components for extending functional and communicational capabilities of network devices
US7210004B2 (en) * 2003-06-26 2007-04-24 Copan Systems Method and system for background processing of data in a storage system
US20050210304A1 (en) * 2003-06-26 2005-09-22 Copan Systems Method and apparatus for power-efficient high-capacity scalable storage system
KR100555881B1 (ko) 2004-07-21 2006-03-03 오준택 잠열저장물질을 함유한 마이크로캡슐의 제조방법
US9171585B2 (en) * 2005-06-24 2015-10-27 Google Inc. Configurable memory circuit system and method
US20070094445A1 (en) * 2005-10-20 2007-04-26 Trika Sanjeev N Method to enable fast disk caching and efficient operations on solid state disks
US7861122B2 (en) 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US20090070654A1 (en) * 2006-02-09 2009-03-12 International Business Machines Corporation Design Structure For A Processor System With Background Error Handling Feature
US7512847B2 (en) 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008198310A (ja) 2007-02-15 2008-08-28 Megachips Lsi Solutions Inc ビットエラーの修復方法および情報処理装置
US8706932B1 (en) * 2007-08-30 2014-04-22 Virident Systems, Inc. Replaceable non-volatile memory apparatus with a plurality of pluggable electrical connectors
WO2009072104A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8892831B2 (en) 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
US7805511B1 (en) 2008-04-30 2010-09-28 Netapp, Inc. Automated monitoring and reporting of health issues for a virtual server
GB2476776B (en) 2008-10-22 2012-07-11 Techtronic Floor Care Tech Ltd Handheld vacuum cleaner
JP5134569B2 (ja) * 2009-02-23 2013-01-30 ラピスセミコンダクタ株式会社 メモリ装置
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
JP4843693B2 (ja) 2009-03-30 2011-12-21 株式会社東芝 記憶装置
US8316173B2 (en) * 2009-04-08 2012-11-20 International Business Machines Corporation System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention
US8812770B2 (en) * 2009-07-13 2014-08-19 Microsoft Corporation Health reporting from non-volatile block storage device to processing device
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8255006B1 (en) * 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
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
US8737138B2 (en) * 2010-11-18 2014-05-27 Micron Technology, Inc. Memory instruction including parameter to affect operating condition of memory
WO2012112820A2 (en) * 2011-02-16 2012-08-23 Medicity, Inc. Sending healthcare information securely
KR20140096044A (ko) * 2011-09-29 2014-08-04 코그노산테 홀딩스, 엘엘씨 건강 정보의 지능형 라우팅을 위한 방법 및 시스템

Also Published As

Publication number Publication date
KR20130047578A (ko) 2013-05-08
TW201324520A (zh) 2013-06-16
US20130111298A1 (en) 2013-05-02
KR101394845B1 (ko) 2014-05-13
CN103092764A (zh) 2013-05-08
EP2587362A3 (en) 2013-08-28
EP2587362B1 (en) 2018-10-24
CN103092764B (zh) 2016-12-21
US10359949B2 (en) 2019-07-23
JP2013097789A (ja) 2013-05-20
TWI511151B (zh) 2015-12-01
EP2587362A2 (en) 2013-05-01
WO2013066518A1 (en) 2013-05-10

Similar Documents

Publication Publication Date Title
JP5749237B2 (ja) 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法
TWI673606B (zh) 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
KR101930092B1 (ko) 데이터 이용가능성의 마운트타임 조정
US11036421B2 (en) Apparatus and method for retaining firmware in memory system
US9239785B2 (en) Stochastic block allocation for improved wear leveling
US20130173954A1 (en) Method of managing bad storage region of memory device and storage device using the method
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US20120089767A1 (en) Storage device and related lock mode management method
US20200050368A1 (en) Memory system and operation method for determining availability based on block status
US10963175B2 (en) Apparatus and method for searching valid data in memory system
US11269722B2 (en) Apparatus for diagnosing memory system and operating method thereof
US20150052415A1 (en) Data storage device, operating method thereof and data processing system including the same
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
US20210026777A1 (en) Apparatus and method for managing meta data in memory system
KR20200011832A (ko) 메모리 시스템에서의 데이터 처리 방법 및 장치
US11656785B2 (en) Apparatus and method for erasing data programmed in a non-volatile memory block in a memory system
US10942848B2 (en) Apparatus and method for checking valid data in memory system
TWI651650B (zh) 記憶體管理方法及使用所述方法的儲存控制器
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR20200016076A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012037971A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
US11694728B2 (en) Storage device and operating method thereof

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140407

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150513

R150 Certificate of patent or registration of utility model

Ref document number: 5749237

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250