JPWO2015182439A1 - 記憶装置、記憶システムおよび記憶装置の制御方法 - Google Patents

記憶装置、記憶システムおよび記憶装置の制御方法 Download PDF

Info

Publication number
JPWO2015182439A1
JPWO2015182439A1 JP2016523435A JP2016523435A JPWO2015182439A1 JP WO2015182439 A1 JPWO2015182439 A1 JP WO2015182439A1 JP 2016523435 A JP2016523435 A JP 2016523435A JP 2016523435 A JP2016523435 A JP 2016523435A JP WO2015182439 A1 JPWO2015182439 A1 JP WO2015182439A1
Authority
JP
Japan
Prior art keywords
write
data
address
write address
alternative
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.)
Pending
Application number
JP2016523435A
Other languages
English (en)
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
Publication of JPWO2015182439A1 publication Critical patent/JPWO2015182439A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Abstract

記憶装置がデータの書込みを高速に行う。記憶装置は、データ領域および制御部を具備する。このデータ領域において、ライトアドレスにより書込み位置が指定される。また、制御部は、ライトアドレスへのデータの書込みが指示されるとライトアドレスへのデータの書込みを行い、そのデータの書込みに失敗した場合には書込みを行ったライトアドレスと異なるアドレスを代替ライトアドレスとして生成して、その代替ライトアドレスへのデータの書込みを行う。

Description

本技術は、記憶装置、記憶システムおよび記憶装置の制御方法に関する。詳しくは、データの書込みを行う記憶装置、記憶システムおよび記憶装置の制御方法に関する。
従来より、メモリなどの記憶装置においては、ライトデータの書込みの後に、その書込みが成功したか否かを判定するためにベリファイが行われている。ここで、ベリファイとは、ライトデータを記憶装置が保持しておき、ライトアドレスへのライトデータの書込みの後に、そのライトアドレスからデータを読み出し、読み出したデータと保持しておいたライトデータとを記憶装置が照合する処理である。これらのデータが一致しない場合には、ライトエラーがメモリコントローラに通知される。
そして、ライトエラーが生じた場合には所定の例外処理が行われる。例えば、ライトコマンド送信後にライトエラーを受け取ったメモリコントローラが、新たなライトアドレスを指定したライトコマンドを再送信して、そのデータの再書込みをメモリに要求するメモリシステムが提案されている(例えば、特許文献1参照。)。
特開2003−76615号公報
しかしながら、上述の従来技術では、データの書込みを高速に行うことが困難である。上述のシステムにおいてメモリは、最初のライトアドレスへの書込みに失敗すると、ライトエラーをメモリコントローラに送信する必要がある。また、メモリコントローラは、ライトコマンド送信後にライトエラーが通知されると、新たなライトアドレスを指定したライトコマンドをメモリに再送信しなければならない。このため、データの再書込みの他、ライトエラーおよびライトコマンドのそれぞれの転送および処理に要する遅延時間が余分に生じて、その分、書込みが完了するまでの時間が長くなってしまうという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、記憶装置がデータの書込みを高速に行うことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、ライトアドレスにより書込み位置が指定されるデータ領域と、上記ライトアドレスにより上記書込み位置が指定されると当該書込み位置への上記データの書込みを行い、上記データの書込みに失敗した場合には上記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への上記データの書込みを行う制御部とを具備する記憶装置、および、その制御方法である。これにより、データの書込みに失敗した場合には、代替ライトアドレスが生成されて、その代替ライトアドレスにより指定された書込み位置へのデータの書込みが行われるという作用をもたらす。
また、この第1の側面において、上記データ領域は、ライトコマンドによって指定された上記ライトアドレスである通常ライトアドレスにより上記書込み位置が指定される通常データ領域と、上記通常ライトアドレスに対応する上記代替ライトアドレスにより上記書込み位置が指定される代替データ領域とを備え、上記制御部は、上記データの書込みに失敗した場合には上記通常ライトアドレスに対応する上記代替ライトアドレスを生成してもよい。これにより、データの書込みに失敗した場合には、通常ライトアドレスに対応する代替ライトアドレスが生成されるという作用をもたらす。
また、この第1の側面において、上記代替ライトアドレスに対して上記データの書込みを行ったか否かを示す使用フラグを上記代替ライトアドレスごとに保持する保持部をさらに具備し、上記制御部は、上記データの書込みに失敗した場合には上記書込みを行っていないことを示す上記使用フラグに係る上記代替ライトアドレスを生成してもよい。これにより、データの書込みに失敗した場合には書込みを行っていないことを示す使用フラグに係る上記代替ライトアドレスが生成されるという作用をもたらす。
また、本技術の第2の側面は、ライトアドレスによりデータの書込み位置を指定する制御装置と、上記ライトアドレスにより上記書込み位置が指定されるデータ領域と、上記ライトアドレスにより上記書込み位置が指定されると当該書込み位置への上記データの書込みを行い、上記データの書込みに失敗した場合には上記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への上記データの書込みを行う制御部とを具備する記憶システムである。これにより、データの書込みに失敗した場合には、代替ライトアドレスが生成されて、その代替ライトアドレスにより指定された書込み位置へのデータの書込みが行われるという作用をもたらす。
また、この第2の側面において、上記制御装置は、論理アドレスと物理アドレスとを対応付けて保持するアドレス変換テーブルと、上記論理アドレスに対応する上記物理アドレスを上記ライトアドレスとして取得して当該ライトアドレスにより上記書込み位置を指定し、上記代替ライトアドレスにより指定された上記書込み位置への上記データの書込みが成功した場合には上記代替ライトアドレスを上記論理アドレスに対応付けるアクセス制御部とを具備してもよい。これにより、代替ライトアドレスに対するデータの書込みが成功した場合には代替ライトアドレスが論理アドレスに対応付けられるという作用をもたらす。
また、この第2の側面において、上記データ領域は、ライトコマンドによって指定された上記ライトアドレスである通常ライトアドレスにより書込み位置が指定される通常データ領域と、上記通常ライトアドレスに対応する上記代替ライトアドレスにより上記書込み位置が指定される代替データ領域とを備え、上記制御部は、上記データの書込みに失敗した場合には上記書込みを行った上記通常ライトアドレスに対応する上記代替ライトアドレスを生成してもよい。これにより、データの書込みに失敗した場合には書込みを行った通常ライトアドレスに対応する代替ライトアドレスが生成されるという作用をもたらす。
また、この第2の側面において、上記制御部は、上記データの書込みに成功したか否かを示すエラーフラグと上記通常ライトアドレスおよび上記代替ライトアドレスのいずれを指定して上記データの書込みを行ったかを示す書込み先フラグとを上記アクセス制御部に供給し、上記アクセス制御部は、上記データの書込みに成功した旨を示す上記エラーフラグと上記代替ライトアドレスを指定して上記データの書込みを行った旨を示す上記書込み先フラグとが供給された場合には上記通常ライトアドレスに対応する上記代替ライトアドレスを生成して上記論理アドレスに対応付けてもよい。これにより、データの書込みに成功した旨を示すエラーフラグと代替ライトアドレスにデータの書込みを行った旨を示す書込み先フラグとが供給された場合には通常ライトアドレスに対応する上記代替ライトアドレスが生成されるという作用をもたらす。
また、この第2の側面において、上記制御部は、上記データの書込みに成功したか否かを示すエラーフラグと上記生成した代替ライトアドレスとを上記アクセス制御部に供給し、上記アクセス制御部は、上記データの書込みに成功した旨を示す上記エラーフラグと上記代替ライトアドレスとが供給された場合には上記供給された代替ライトアドレスを上記論理アドレスに対応付けてもよい。これにより、データの書込みに成功した旨を示すエラーフラグと代替ライトアドレスとが供給された場合には供給された代替ライトアドレスが上記論理アドレスに対応付けられるという作用をもたらす。
本技術によれば、記憶装置がデータの書込みを高速に行うことができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施の形態におけるメモリシステムの一構成例を示す全体図である。 第1の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第1の実施の形態におけるアドレス変換テーブルの一例を示す図である。 第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。 第1の実施の形態におけるメモリセルアレイの一構成例を示す図である。 第1の実施の形態における不揮発性メモリが生成するステータスの一例を示す図である。 第1の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの動作の一例を示すフローチャートである。 第1の実施の形態におけるコントローラ側ライト処理の一例を示すフローチャートである。 第1の実施の形態における不揮発性メモリの動作の一例を示すフローチャートである。 第1の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。 第1の実施の形態の変形例におけるステータスの一例を示す図である。 第1の実施の形態の変形例におけるコントローラ側ライト処理の一例を示すフローチャートである。 第1の実施の形態の変形例におけるメモリ側ライト処理の一例を示すフローチャートである。 第2の実施の形態におけるメモリセルアレイの一構成例を示す図である。 第2の実施の形態における代替ライト管理テーブルの一例を示す図である。 第2の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 第2の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(対応する代替ライトアドレスを生成してデータの書込みを行う例)
2.第2の実施の形態(未使用の代替ライトアドレスのいずれかを生成してデータの書込みを行う例)
<1.第1の実施の形態>
[メモリシステムの構成例]
図1は、第1の実施の形態におけるメモリシステムの一構成例を示す全体図である。このメモリシステムは、ホストコンピュータ100およびストレージ200を備える。ストレージ200は、メモリコントローラ300および不揮発性メモリ400を備える。なお、このメモリシステムは、特許請求の範囲に記載の記憶システムの一例である。
ホストコンピュータ100は、メモリシステム全体を制御するものである。具体的には、ホストコンピュータ100は、メモリコントローラ300に対し、論理アドレスをアクセス先として指定して、ライトデータの書込みやリードデータの読出しを指示する。
ここで、論理アドレスは、ホストコンピュータ100やメモリコントローラ300により定義されたアドレス空間において、ホストコンピュータ100がストレージ200にアクセスする際のアクセス単位ごとに割り振られたアドレスである。
メモリコントローラ300は、不揮発性メモリ400を制御するものである。このメモリコントローラ300は、ホストコンピュータ100によりライトデータの書込みが指示されると、指定された論理アドレスを物理アドレスに変換する。そして、メモリコントローラ300は、変換した物理アドレスをアクセス先として指定したライトコマンドを発行して、ライトデータとともに不揮発性メモリ400に信号線309を介して供給する。
ここで、物理アドレスは、メモリコントローラ300が不揮発性メモリ400にアクセスする際のアクセス単位ごとに不揮発性メモリ400において割り振られたアドレスである。不揮発性メモリ400の容量は、論理アドレスのアドレス空間の容量よりも大きいことが望ましい。物理アドレスに対する書込みが失敗した際に代替して論理アドレスに割り当てる分の物理アドレスを確保しておくためである。
また、メモリコントローラ300は、ホストコンピュータ100によりリードデータの読出しが指示されると、指定された論理アドレスを物理アドレスに変換する。そして、メモリコントローラ300は、変換した物理アドレスをアクセス先として指定したリードコマンドを発行して不揮発性メモリ400に信号線309を介して供給する。メモリコントローラ300は、リードデータを不揮発性メモリ400から受け取り、ホストコンピュータ100に転送する。
また、メモリコントローラ300は、不揮発性メモリ400からステータスを受け取る。ここで、ステータスは、コマンドの実行結果やメモリコントローラ300等の状況を通知する情報である。
なお、メモリコントローラ300は、特許請求の範囲に記載の制御装置の一例である。
不揮発性メモリ400は、メモリコントローラ300の制御に従って、データを記憶するものである。この不揮発性メモリ400は、メモリコントローラ300からライトコマンドおよびライトデータを受け取ると、そのライトコマンドにより指定された物理アドレスにライトデータを書き込む。また、不揮発性メモリ400は、メモリコントローラ300からリードコマンドを受け取ると、そのリードコマンドにより指定された物理アドレスからデータを読み出してメモリコントローラ300に供給する。また、不揮発性メモリ400は、ステータスを生成してメモリコントローラ300に供給する。
なお、不揮発性メモリ400がデータを記憶する構成としているが、HDD(Hard Disk Drive)など、不揮発性メモリ400以外の記憶装置がデータを記憶してもよい。また、不揮発性メモリ400は、特許請求の範囲に記載の記憶装置の一例である。
[メモリコントローラの構成例]
図2は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、ホストインターフェース301、RAM(Random Access Memory)302およびCPU(Central Processing Unit)303を備える。また、メモリコントローラ300は、ECC処理部304、ROM(Read Only Memory)305、バス306およびメモリインターフェース307を備える。
ホストインターフェース301は、メモリコントローラ300とホストコンピュータ100とがデータやコマンドを相互に交換するためのインターフェースである。RAM302は、CPU303が実行する処理において必要となるデータを一時的に保持するものである。CPU303は、メモリコントローラ300全体を制御するものである。
ECC処理部304は、データをECC(Error detection and Correction Code)に符号化し、ECCに基づいてデータにおける誤りの検出および訂正を行うものである。ECC処理部304において、例えば、BCH(Bose-Chaudhuri-Hocquenghem)符号や、RS(Reed-Solomon)符号がECCとして用いられる。また、ECC処理部304は、誤りの検出および訂正に失敗すると、リードエラーをステータスに記載してホストコンピュータ100に供給する。
ROM305は、CPU303が実行するプログラム等を記憶するものである。バス306は、ホストインターフェース301、RAM302、CPU303、ECC処理部304、ROM305およびメモリインターフェース307が相互にデータを交換するための共通の経路である。メモリインターフェース307は、メモリコントローラ300と不揮発性メモリ400とがデータやコマンドを相互に交換するためのインターフェースである。
[メモリコントローラの構成例]
図3は、第1の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。このメモリコントローラ300は、アクセス制御部311、アドレス変換テーブル312およびECC処理部304を備える。
図3におけるアクセス制御部311の機能は、図2におけるホストインターフェース301、RAM302、CPU303、ROM305およびメモリインターフェース307などにより実現される。また、図3におけるアドレス変換テーブル312は、例えば、図2におけるRAM302に保持される。
アクセス制御部311は、不揮発性メモリ400に対してデータの書込みを指示するライト処理や、データの読出しを指示するリード処理を行うものである。このアクセス制御部311は、ライトデータの書込みがホストコンピュータ100により指示されると、アドレス変換テーブル312に基づいて指定された論理アドレスを物理アドレスに変換する。そして、アクセス制御部311は、変換した物理アドレスを通常ライトアドレスとして指定したライトコマンドを発行して不揮発性メモリ400に供給する。
また、通常ライトアドレスと異なる代替ライトアドレスへのデータの書込みを行った旨を通知するステータスが不揮発性メモリ400から供給されると、アクセス制御部311は、そのステータスに基づいてアドレス変換テーブル312を更新する。更新内容の詳細については後述する。
また、アクセス制御部311は、リードデータの読出しがホストコンピュータ100により指示されると、アドレス変換テーブル312に基づいて指定された論理アドレスを物理アドレスに変換する。そして、アクセス制御部311は、変換した物理アドレスをリードアドレスとして指定したリードコマンドを発行して、不揮発性メモリ400に供給する。
アドレス変換テーブル312は、論理アドレスと物理アドレスとを対応付けたテーブルである。このアドレス変換テーブル312には、例えば、論理アドレスごとに、その論理アドレスに対応付けられた物理アドレスの有無が記録される。また、アドレス変換テーブル312には、物理アドレスごとに使用状況が記録される。物理アドレスの使用状況としては、その物理アドレスが論理アドレスに対応付けられているか否かを示す情報などが記録される。
[アドレス変換テーブルの構成例]
図4は、第1の実施の形態におけるアドレス変換テーブル312の一例を示す図である。このアドレス変換テーブル312には、例えば、論理アドレスごとに、物理アドレスと、割当ての有無を示す情報とが保持される。割当ての有無は、論理アドレスに物理アドレスが割り当てられているか否かを示すものである。初期状態は、割当て無しの状態である。データの書込み先としてホストコンピュータ100により指定された論理アドレスに物理アドレスが割り当てられていない場合には、その論理アドレスに物理アドレスが新たに割り当てられる。
ここで、メモリコントローラ300は、新たに割り当てる物理アドレスを選択する際に、必要に応じてウェアレベリングを行う。ウェアレベリングとは、不揮発性メモリ400におけるメモリセルの寿命の消耗を平準化するための処理である。ウェアレベリングを行う際には、例えば、メモリコントローラ300は、アドレスのそれぞれのアクセス頻度を記録し、アクセス頻度の少ないアドレスを優先して選択する。
また、アドレス変換テーブル312には、物理アドレスごとに、その物理アドレスのステータスを示す情報が保持される。このステータスは、物理アドレスの使用状況などを示すものであり、例えば、「使用中」、「空き」および「不良」のいずれかを示す。「使用中」は、そのステータスの物理アドレスにデータの書込みが行われることを示す。「空き」は、そのステータスの物理アドレスにデータの書込みが行われていないことを示す。「不良」は、そのステータスの物理アドレスが、寿命が尽きたなどの原因によりデータを書き込むことのできないアドレスであることを示す。
また、代替ライトアドレスへのデータの書込みに成功した旨が不揮発性メモリ400から通知された場合にメモリコントローラ300は、書込み先として指定した通常ライトアドレスのステータスを「不良」に更新する。また、メモリコントローラ300は、代替ライトアドレスを生成し、書込み先として指定された論理アドレスに対し、通常ライトアドレスの代わりに代替ライトアドレスを対応付ける。
一方、データの書込みに失敗した旨が不揮発性メモリ400から通知された場合にメモリコントローラ300は、代替ライトアドレスを生成し、書込み先として指定した通常ライトアドレスおよび代替ライトアドレスのステータスを「不良」に更新する。
[不揮発性メモリの構成例]
図5は、第1の実施の形態における不揮発性メモリ400の一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ410、メモリセルアレイ420、ドライバ430、アドレスデコーダ440、バス450、制御インターフェース460、および、メモリ制御部470を備える。
データバッファ410は、メモリ制御部470の制御に従って、ライトデータやリードデータをアクセス単位で保持するものである。メモリセルアレイ420は、マトリックス
状に配列された複数のメモリセルを備える。各々のメモリセルとして、不揮発性の記憶素
子が用いられる。具体的には、NAND型やNOR型のフラッシュメモリ、ReRAM(Resistive RAM)、PCRAM(Phase-Change RAM)、または、MRAM(Magnetoresistive RAM)などが記憶素子として用いられる。
ドライバ430は、アドレスデコーダ440により選択されたメモリセルに対してデータの書込み、または、データの読出しを行うものである。アドレスデコーダ440は、コマンドにより指定されたアドレスを解析して、そのアドレスに対応するメモリセルを選択するものである。バス450は、データバッファ410、メモリセルアレイ420、アドレスデコーダ440、メモリ制御部470および制御インターフェース460が相互にデータを交換するための共通の経路である。制御インターフェース460は、メモリコントローラ300と不揮発性メモリ400とがデータやコマンドを相互に交換するためのインターフェースである。
メモリ制御部470は、ドライバ430およびアドレスデコーダ440を制御して、データの書込み、または、読出しを行わせるものである。メモリ制御部470は、通常ライトアドレスを指定したライトコマンドを受け取ると、ライトデータをデータバッファ410に保持させる。また、メモリ制御部470は、ライトコマンドにより指定された通常ライトアドレスをアドレスデコーダ440に供給する。アドレスデコーダ440によりメモリセルが選択されると、メモリ制御部470は、ドライバ430を制御して、そのメモリセルにデータを書き込ませる。
そして、メモリ制御部470は、ドライバ430を制御して、データが書き込まれたメモリセルからデータを読み出させる。メモリ制御部470は、読み出されたデータと、データバッファ410に保持されたライトデータとを照合(ベリファイ)する。照合したデータが一致すれば、メモリ制御部470は、通常ライトアドレスへの書込みに成功した旨を通知するステータスを生成し、制御インターフェース460を介してメモリコントローラ300に供給する。
一方、不一致であれば、メモリ制御部470は、データの書込みに失敗したと判断し、代替ライトアドレスを生成する。そして、メモリ制御部470は、ドライバ430およびアドレスデコーダ440を制御して、生成した代替ライトアドレスへのライトデータの再度の書込みを行わせる。そして、メモリ制御部470は、ドライバ430を制御して、代替ライトアドレスに対応するメモリセルからデータを読み出させ、再度のベリファイを行う。このベリファイの結果に基づいてメモリ制御部470はステータスを生成し、制御インターフェース460を介してメモリコントローラ300に供給する。
また、メモリ制御部470は、リードコマンドを受け取ると、アドレスデコーダ440およびドライバ430を制御してメモリコントローラ300へリードデータを出力させる。
なお、メモリ制御部470は、特許請求の範囲に記載の制御部の一例である。
前述したように不揮発性メモリ400は、通常ライトアドレスへの書込みに失敗した際に、代替ライトアドレスを生成して、ライトエラーを通知せずに代替ライトアドレスへの書込みを行う。これにより、不揮発性メモリ400は、通常ライトアドレスの書込みに失敗した旨を通知するステータスを送信する必要がなくなる。また、メモリコントローラ300は、通常ライトアドレスを指定したライトコマンドの発行後に、代替ライトアドレスを指定したライトコマンドを発行する必要がなくなる。このため、これらのステータスおよびライトコマンドの送受信および処理に要する時間の分、データの書込み時間を短縮することができる。
[メモリセルアレイの構成例]
図6は、第1の実施の形態におけるメモリセルアレイ420の一構成例を示す図である。このメモリセルアレイ420には、通常データ領域421および代替データ領域422とが設けられる。
通常データ領域421は、通常ライトアドレスにより書込み位置が指定されるデータ領域である。この通常データ領域421には、アドレスが各々に割り当てられた複数のメモリセルが設けられ、通常ライトアドレスにより指定された書込み位置のメモリセルにデータが格納される。また、代替データ領域422は、通常ライトアドレスに対応する代替ライトアドレスにより書込み位置が指定されるデータ領域である。この代替データ領域422には、アドレスが各々に割り当てられた複数のメモリセルが設けられ、通常ライトアドレスに対応する代替ライトアドレスにより指定された書込み位置のメモリセルにデータが格納される。また、代替データ領域422において、代替ライトアドレスごとに、使用フラグが格納される。ここで、使用フラグは、代替ライトアドレスに対してデータの書込みが行われたか否かを示すフラグである。
なお、通常データ領域421および代替データ領域422からなる領域は、特許請求の範囲に記載のデータ領域の一例である。
図6における矢印は、通常ライトアドレスと代替ライトアドレスとの対応関係を示す。例えば、16進数表記で「0000」乃至「000F」の通常ライトアドレスに16進数表記で「1000」の代替ライトアドレスが対応付けられる。以下、アドレスは、特に言及のない限り、16進数で表されるものとする。
不揮発性メモリ400は、通常ライトアドレスへのデータの書込みに失敗すると、所定の演算により、その通常ライトアドレスに対応する代替ライトアドレスを生成する。例えば、16進数表記された通常ライトアドレスの最上位の桁を「1」にし、最下位の桁を「0」にする演算が行われる。この演算により、例えば、「0005」の通常ライトアドレスに対応する代替アドレスとして「1000」が生成され、「0012」の通常ライトアドレスに対応する代替ライトアドレスとして「1010」が生成される。
図7は、第1の実施の形態における不揮発性メモリ400が生成するステータスの一例を示す図である。不揮発性メモリ400は、エラーフラグおよび書込み先フラグを含むステータスを生成してメモリコントローラ300に供給する。
エラーフラグは、データの書込みに成功したか否かを示す情報である。このエラーフラグには、例えば、書込みが成功した場合に「0」の値が設定され、失敗した場合に「1」の値が設定される。また、書込み先フラグは、通常ライトアドレスおよび代替ライトアドレスのいずれを指定してデータの書込みを行ったかを示す情報である。この書込み先フラグには、例えば、通常ライトアドレスを指定してデータの書込みに成功した場合に「0」の値が設定され、代替ライトアドレスを指定してデータの書込みが行われた場合に、その成否にかかわらず「1」の値が設定される。
[メモリ制御部の構成例]
図8は、第1の実施の形態におけるメモリ制御部470の一構成例を示すブロック図である。このメモリ制御部470は、アドレスバッファ471、コマンドバッファ472、コマンドデコーダ473およびライト処理部474を備える。なお、同図において、メモリ制御部470がリード処理を行う構成は、省略されている。
アドレスバッファ471は、コマンドにより指定されたアドレスを保持するものである。通常ライトアドレスや代替ライトアドレスなどがアドレスバッファ471に保持される。コマンドバッファ472は、メモリコントローラ300からのコマンドを保持するものである。
コマンドデコーダ473は、メモリコントローラ300からのコマンドをデコードして、ドライバ430やアドレスデコーダ440を制御する制御信号を生成するものである。コマンドデコーダ473は、生成した制御信号をライト処理部474に供給する。
ライト処理部474は、ドライバ430やアドレスデコーダ440を制御して通常ライトアドレスまたは代替ライトアドレスにより指定された書込み位置へのデータの書込みを行わせるものである。このライト処理部474は、通常ライトアドレスにより指定した書込み位置へのデータの書込みを行わせた後にベリファイを行って、その書込みが成功したか否かを判断する。ライト処理部474は、データの書込みに成功した場合に、通常ライトアドレスにデータが書き込まれた旨を通知するステータスを生成してメモリコントローラ300に供給する。
一方、データの書込みに失敗した場合にライト処理部474は、書込みを行った通常ライトアドレスに対応する代替ライトアドレスを生成する。そして、ライト処理部474は、ドライバ430やアドレスデコーダ440を制御して代替ライトアドレスにより指定した書込み位置へのデータの書込みを行わせる。そして、ライト処理部474は、ベリファイを行って、その書込みが成功したか否かを判断する。ライト処理部474は、データの書込みに成功した場合に、代替ライトアドレスにデータが書き込まれた旨を通知するステータスを生成してメモリコントローラ300に供給する。一方、データの書込みに失敗した場合にライト処理部474は、データの書込みに失敗した旨を通知するステータスを生成してメモリコントローラ300に供給する。
[メモリコントローラの動作例]
図9は、第1の実施の形態におけるメモリコントローラの動作の一例を示すフローチャートである。この動作は、例えば、ストレージ200に電源が投入されたときに開始する。
メモリコントローラ300は、ホストコンピュータ100によりデータの書込みが指示されたか否かを判断する(ステップS901)。データの書込みが指示された場合には(ステップS901:Yes)、メモリコントローラ300は、コントローラ側ライト処理を実行する(ステップS910)。データの書込みが指示されていない場合(ステップS901:No)またはステップS910の後、メモリコントローラ300は、ホストコンピュータ100によりデータの読出しが指示されたか否かを判断する(ステップS902)。
データの読出しが指示された場合には(ステップS902:Yes)、メモリコントローラ300は、不揮発性メモリ400からのリードデータの誤り訂正を行い、誤り訂正後のリードデータをホストコンピュータ100に送信する(ステップS903)。データの読出しが指示されていない場合(ステップS902:No)またはステップS903の後、メモリコントローラ300は、ステップS901に戻る。
図10は、第1の実施の形態におけるコントローラ側ライト処理の一例を示すフローチャートである。メモリコントローラ300は、ライトデータを符号化する(ステップS911)。メモリコントローラ300は、アドレス変換テーブル312を使用して、ホストコンピュータ100により指定された論理アドレスを物理アドレスに変換し、通常ライトアドレスとする(ステップS912)。そして、メモリコントローラ300は、通常ライトアドレスを指定したライトコマンドと、符号化したライトデータとを不揮発性メモリ400に送信する(ステップS913)。
そして、メモリコントローラ300は、不揮発性メモリ400からのエラーフラグを参照してデータの書込みが成功したか否かを判断する(ステップS914)。例えば、エラーフラグが「0」である場合に、書込みに成功したと判断される。データの書込みに成功した(例えば、エラーフラグが「0」である)場合に(ステップS914:Yes)、メモリコントローラ300は、書込み先フラグを参照して通常ライトアドレスにデータが書き込まれたか否かを判断する(ステップS915)。例えば、書込み先フラグが「0」である場合に、通常ライトアドレスにデータが書き込まれたと判断される。
代替ライトアドレスにデータが書き込まれた(例えば、書込み先フラグが「1」である)場合に(ステップS915:No)メモリコントローラ300は、通常ライトアドレスに対応する代替ライトアドレスを生成する(ステップS916)。そして、メモリコントローラ300は、アドレス変換テーブル312において、代替ライトアドレスを、指定された論理アドレスに対応付ける(ステップS917)。また、メモリコントローラ300は、アドレス変換テーブル312において、通常ライトアドレスを「不良」のアドレスに更新する(ステップS918)。
また、データの書込みに失敗した場合に(ステップS914:No)、メモリコントローラ300は、通常ライトアドレスに対応する代替ライトアドレスを生成する(ステップS919)。また、メモリコントローラ300は、ライトエラーをホストコンピュータ100に送信する(ステップS920)。そして、メモリコントローラ300は、アドレス変換テーブル312において、通常ライトアドレスおよび代替ライトアドレスを「不良」のアドレスに更新する(ステップS921)。
通常ライトアドレスにデータが書き込まれた場合(ステップS915:Yes)、または、ステップS918、S921の後、メモリコントローラ300は、コントローラ側ライト処理を終了する。
[不揮発性メモリの動作例]
図11は、第1の実施の形態における不揮発性メモリ400の動作の一例を示すフローチャートである。この動作は、例えば、ストレージ200に電源が投入されたときに開始する。
不揮発性メモリ400は、メモリコントローラ300からライトコマンドを受信したか否かを判断する(ステップS951)。ライトコマンドを受信した場合に(ステップS951:Yes)、不揮発性メモリ400は、メモリ側ライト処理を実行する(ステップS960)。一方、ライトコマンドを受信していない場合(ステップS951:No)、または、ステップS960の後、不揮発性メモリ400は、メモリコントローラ300からリードコマンドを受信したか否かを判断する(ステップS952)。
リードコマンドを受信した場合に(ステップS952:Yes)、不揮発性メモリ400は、リードデータの読出しを行い、読み出したリードデータをメモリコントローラ300に送信する(ステップS953)。リードコマンドを受信していない場合(ステップS952:No)、または、ステップS953の後、不揮発性メモリ400は、ステップS951に戻る。
図12は、第1の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。不揮発性メモリ400は、コマンド、アドレスおよびデータを保持し(ステップS961)、通常ライトアドレスに対するデータの書込みを行う(ステップS962)。
そして、不揮発性メモリ400は、ベリファイを行い、その結果から、通常ライトアドレスにより指定された書込み位置への書込みに成功したか否かを判断する(ステップS963)。データの書込みに成功した場合に(ステップS963:Yes)、不揮発性メモリ400は、通常ライトアドレスに対するデータの書込みに成功した旨を通知するステータスを生成してメモリコントローラ300に送信する。例えば、「0」のエラーフラグと「0」の書込み先フラグとが通知される(ステップS968)。
一方、データの書込みに失敗した場合に(ステップS963:No)、不揮発性メモリ400は、通常ライトアドレスに対応する代替ライトアドレスを生成し、その代替ライトアドレスが未使用であるか否かを判断する(ステップS964)。代替ライトアドレスが未使用である場合に(ステップS964:Yes)、不揮発性メモリ400は、代替ライトアドレスにより指定した書込み位置へのデータの書込みを行う(ステップS965)。そして、不揮発性メモリ400は、ベリファイを行い、その結果から、代替ライトアドレスに対するデータの書込みに成功したか否かを判断する(ステップS966)。データの書込みに成功した場合に(ステップS966:Yes)、不揮発性メモリ400は、代替ライトアドレスに対するデータの書込みに成功した旨を通知するステータスを生成してメモリコントローラ300に送信する。例えば、「0」のエラーフラグと、「1」の書込み先フラグとが通知される(ステップS967)。
代替ライトアドレスが使用済である場合(ステップS964:No)、または、データの書込みに失敗した場合に(ステップS966:No)、不揮発性メモリ400は、ライトエラーを通知するステータスを生成してメモリコントローラ300に送信する。例えば、「1」のエラーフラグと、「1」の書込み先フラグとが通知される(ステップS969)。ステップS967、S968またはS969の後、不揮発性メモリ400はメモリ側ライト処理を終了する。
このように、本技術の第1の実施の形態によれば、不揮発性メモリ400が、通常ライトアドレスへのデータの書込み失敗時に代替ライトアドレスを生成するため、書込み失敗時にライトエラーの送信と代替ライトアドレスの受信とを行う必要がなくなる。これにより、ライトエラーの送信と代替ライトアドレスの受信とに要する遅延時間の分、データの書込み時間を短くすることができる。従って、不揮発性メモリ400は、データの書込みを高速に行うことができる。
[変形例]
第1の実施の形態では、不揮発性メモリ400は、生成した代替ライトアドレスを送信していなかったが、代替ライトアドレスを送信する構成としてもよい。変形例のメモリシステムは、不揮発性メモリ400が代替ライトアドレスを送信する点において第1の実施の形態と異なる。
図13は、第1の実施の形態の変形例におけるステータスの一例を示す図である。同図におけるaは、代替ライトアドレスに対してデータの書込みが行われた場合に通知されるステータスの一例を示す図である。この場合、不揮発性メモリ400は、エラーフラグと、書込みを行った代替ライトアドレスとを含むステータスを生成してメモリコントローラ300に通知する。同図におけるbは、通常ライトアドレスに対してデータの書込みに成功した場合、言い換えれば、代替ライトアドレスへのデータの書込みが行われなかった場合に通知されるステータスの一例を示す図である。この場合、不揮発性メモリ400は、エラーフラグを含むステータスを生成してメモリコントローラ300に通知する。
なお、変形例の不揮発性メモリ400は、書込み先フラグを通知していないが、さらに書込み先フラグを通知してもよい。この場合には、例えば、代替ライトアドレスに対してデータの書込みが行われた場合に、エラーフラグ、書込み先フラグおよび代替ライトアドレスが通知され、そうでない場合にエラーフラグおよび書込み先フラグが通知される。
図14は、第1の実施の形態の変形例におけるコントローラ側ライト処理の一例を示すフローチャートである。変形例のコントローラ側ライト処理は、ステップS916およびS919を実行せず、ステップS915の代わりにステップS922を実行する点において第1の実施の形態と異なる。
データの書込みに成功した(例えば、エラーフラグ「0」である)場合に(ステップS914:Yes)、メモリコントローラ300は、代替ライトアドレスを受信したか否かを判断する(ステップS922)。
代替ライトアドレスを受信した場合に(ステップS922:Yes)メモリコントローラ300は、アドレス変換テーブル312において、代替ライトアドレスを、ホストコンピュータ100により指定された論理アドレスに対応付ける(ステップS917)。
また、データの書込みに失敗した場合に(ステップS914:No)、メモリコントローラ300は、ライトエラーをホストコンピュータ100に送信する(ステップS920)。また、代替ライトアドレスを受信していない場合(ステップS922:No)、ステップS918、または、ステップS921の後に、メモリコントローラ300は、コントローラ側ライト処理を終了する。
図15は、第1の実施の形態の第1の変形例におけるメモリ側ライト処理の一例を示すフローチャートである。第1の変形例のメモリ側ライト処理は、ステップS967、S968およびS969の代わりにステップS970、S971およびS972を実行する点において第1の実施の形態と異なる。
通常ライトアドレスへのデータの書込みに成功した場合に(ステップS963:Yes)、不揮発性メモリ400は、通常ライトアドレスに対するデータの書込みに成功した旨を通知するステータスを生成してメモリコントローラ300に送信する。例えば、「0」のエラーフラグが通知される(ステップS971)。
また、代替ライトアドレスへのデータの書込みに成功した場合に(ステップS966:Yes)、不揮発性メモリ400は、代替ライトアドレスに対するデータの書込みに成功した旨を通知するステータスを生成してメモリコントローラ300に送信する。例えば、「0」のエラーフラグと、代替ライトアドレスとが通知される(ステップS970)。
代替ライトアドレスが使用済である場合(ステップS964:No)、または、データの書込みに失敗した場合に(ステップS966:No)、不揮発性メモリ400は、「1」のエラーフラグおよび代替ライトアドレスを通知する(ステップS972)。
このように、第1の変形例によれば、不揮発性メモリ400が生成した代替ライトアドレスをメモリコントローラ300に送信するため、メモリコントローラ300が代替ライトアドレスを生成する必要がなくなる。
<2.第2の実施の形態>
第1の実施の形態では、通常ライトアドレスと代替ライトアドレスとの対応関係を固定とし、不揮発性メモリ400は、対応する代替ライトアドレスに対してデータへの書込みを行っていた。しかし、対応関係を固定とすると、対応する代替ライトアドレスが使用済の場合に、対応しない代替ライトアドレスが未使用であっても、不揮発性メモリ400は、その代替ライトアドレスに書込みを行うことができない。このため、不揮発性メモリ400は、代替データ領域422を効率的に利用することができない。対応関係を固定とせず、未使用の代替ライトアドレスのいずれかを不揮発性メモリ400が選択して書込みを行う構成とすれば、未使用の代替ライトアドレスがなくなるまで再書込みを繰り返すことができる。第2の実施の不揮発性メモリ400は、未使用の代替ライトアドレスのいずれかを選択して、データの書込みを行う点において第1の実施の形態と異なる。
図16は、第2の実施の形態におけるメモリセルアレイ420の一構成例を示す図である。第2の実施の形態のメモリセルアレイ420には、通常データ領域421および代替データ領域422に加えて、代替ライト管理テーブル423がさらに設けられる。代替ライト管理テーブル423は、代替ライトアドレスごとに使用フラグを保持するテーブルである。また、第2の実施の形態の代替データ領域422には、使用フラグが格納されず、代替ライトアドレスごとに、データのみが格納される。
図17は、第2の実施の形態における代替ライト管理テーブル423の一例を示す図である。この代替ライト管理テーブル423には、代替ライトアドレスごとに使用フラグが保持される。なお、代替ライト管理テーブル423を保持するメモリセルは、特許請求の範囲に記載の保持部の一例である。
ここで、使用フラグが複数である場合、それらの使用フラグは、まとめて同じアドレスに格納されることが望ましい。例えば、16個の使用フラグを保持する場合、16個の使用フラグからなる16ビットのデータが、1つのアドレスに格納される。使用フラグの個数が多く、1つのアドレスに格納することができない際には、複数のアドレスに分割して格納される。例えば、32個の使用フラグを保持する場合、32個の使用フラグからなる32ビットのデータが2つに分割されて、2つのアドレスに格納される。
図18は、第2の実施の形態におけるメモリ制御部470の一構成例を示すブロック図である。第2の実施の形態のメモリ制御部470は、管理テーブルバッファ475をさらに保持する点において第1の実施の形態と異なる。
管理テーブルバッファ475は、代替ライトアドレスごとの使用フラグを保持するものである。第2の実施の形態のライト処理部474は、通常ライトアドレスへの書込みに失敗した際に、代替ライト管理テーブル423から代替ライトアドレスのそれぞれの使用フラグを読み出し、管理テーブルバッファ475に保持させる。
そして、ライト処理部474は、管理テーブルバッファ475に保持された使用フラグを参照し、未使用の代替ライトアドレスが1つ以上あれば、それらの代替ライトアドレスのいずれかに対してデータの再書込みを行う。代替ライトアドレスへの書込みに失敗した際には、使用フラグを再度参照し、未使用の代替ライトアドレスのある限り、再書込みを繰り返し行う。
また、通常ライトアドレスへの書込みに成功した場合にライト処理部474は、データの書込みに成功した旨をメモリコントローラ300に通知する。また、代替ライトアドレスへの書込みに成功した場合にライト処理部474は、データの書込みに成功した旨と、代替ライトアドレスとをメモリコントローラ300に通知する。通常ライトアドレスおよび代替ライトアドレスへの書込みに失敗した場合にライト処理部474は、データの書込みに失敗した旨と、代替ライトアドレスとをメモリコントローラ300に通知する。
図19は、第2の実施の形態におけるメモリ側ライト処理の一例を示すフローチャートである。第2の実施の形態のメモリ側ライト処理は、ステップS964の代わりにステップS981およびS982を実行する点において第1の実施の形態の変形例と異なる。
通常ライトアドレスへのデータの書込みに失敗した場合に(ステップS963:No)、不揮発性メモリ400は、代替ライト管理テーブル423を参照し(ステップS981)、未使用の代替ライトアドレスがあるか否かを判断する(ステップS982)。
未使用の代替ライトアドレスがない場合には(ステップS982:No)、不揮発性メモリ400は、ステップS972を実行する。一方、未使用の代替ライトアドレスがある場合には(ステップS982:Yes)、不揮発性メモリ400は、その代替ライトアドレスのいずれかを選択して、そのアドレスへのデータの書込みを行う(ステップS965)。
そして、不揮発性メモリ400は、代替ライトアドレスへのデータの書込みに成功したか否かを判断する(ステップS966)。代替ライトアドレスへのデータの書込みに成功した場合に(ステップS966:Yes)、不揮発性メモリ400は、ステップS970を実行し、失敗した場合に(ステップS966:No)、ステップS981に戻る。
なお、第2の変形例のコントローラ側ライト処理は、図14に例示した変形例のコントローラ側ライト処理と同様である。
このように第2の実施の形態によれば、不揮発性メモリ400は、代替ライトアドレスごとに使用フラグを保持し、未使用の代替ライトアドレスがあれば、再書込みを行うため、未使用の代替ライトアドレスがなくなるまで再書込みを繰り返し行うことができる。したがって、不揮発性メモリ400は、代替データ領域を効率的に使用することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
なお、本技術は以下のような構成もとることができる。
(1)ライトアドレスにより書込み位置が指定されるデータ領域と、
前記ライトアドレスにより前記書込み位置が指定されると当該書込み位置への前記データの書込みを行い、前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う制御部と
を具備する記憶装置。
(2)前記データ領域は、
ライトコマンドによって指定された前記ライトアドレスである通常ライトアドレスにより前記書込み位置が指定される通常データ領域と、
前記通常ライトアドレスに対応する前記代替ライトアドレスにより前記書込み位置が指定される代替データ領域と
を備え、
前記制御部は、前記データの書込みに失敗した場合には前記通常ライトアドレスに対応する前記代替ライトアドレスを生成する
前記(1)記載の記憶装置。
(3)前記代替ライトアドレスに対して前記データの書込みを行ったか否かを示す使用フラグを前記代替ライトアドレスごとに保持する保持部をさらに具備し、
前記制御部は、前記データの書込みに失敗した場合には前記書込みを行っていないことを示す前記使用フラグに係る前記代替ライトアドレスを生成する
前記(1)記載の記憶装置。
(4)ライトアドレスによりデータの書込み位置を指定する制御装置と、
前記ライトアドレスにより前記書込み位置が指定されるデータ領域と、
前記ライトアドレスにより前記書込み位置が指定されると当該書込み位置への前記データの書込みを行い、前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う制御部と
を具備する記憶システム。
(5)前記制御装置は、
論理アドレスと物理アドレスとを対応付けて保持するアドレス変換テーブルと、
前記論理アドレスに対応する前記物理アドレスを前記ライトアドレスとして取得して当該ライトアドレスにより前記書込み位置を指定し、前記代替ライトアドレスにより指定された前記書込み位置への前記データの書込みが成功した場合には前記代替ライトアドレスを前記論理アドレスに対応付けるアクセス制御部と
を具備する前記(4)記載の記憶システム。
(6)前記データ領域は、
ライトコマンドによって指定された前記ライトアドレスである通常ライトアドレスにより書込み位置が指定される通常データ領域と、
前記通常ライトアドレスに対応する前記代替ライトアドレスにより前記書込み位置が指定される代替データ領域と
を備え、
前記制御部は、前記データの書込みに失敗した場合には前記書込みを行った前記通常ライトアドレスに対応する前記代替ライトアドレスを生成する
前記(5)記載の記憶システム。
(7)前記制御部は、前記データの書込みに成功したか否かを示すエラーフラグと前記通常ライトアドレスおよび前記代替ライトアドレスのいずれを指定して前記データの書込みを行ったかを示す書込み先フラグとを前記アクセス制御部に供給し、
前記アクセス制御部は、前記データの書込みに成功した旨を示す前記エラーフラグと前記代替ライトアドレスを指定して前記データの書込みを行った旨を示す前記書込み先フラグとが供給された場合には前記通常ライトアドレスに対応する前記代替ライトアドレスを生成して前記論理アドレスに対応付ける
前記(6)記載の記憶システム。
(8)前記制御部は、前記データの書込みに成功したか否かを示すエラーフラグと前記生成した代替ライトアドレスとを前記アクセス制御部に供給し、
前記アクセス制御部は、前記データの書込みに成功した旨を示す前記エラーフラグと前記代替ライトアドレスとが供給された場合には前記供給された代替ライトアドレスを前記論理アドレスに対応付ける
前記(5)または(6)に記載の記憶システム。
(9)前記ライトアドレスにより書込み位置が指定されると当該書込み位置への前記データの書込みを行う書込み手順と、
前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う再書込み手順と
を具備する記憶装置の制御方法。
100 ホストコンピュータ
200 ストレージ
300 メモリコントローラ
301 ホストインターフェース
302 RAM
303 CPU
304 ECC処理部
305 ROM
306、450 バス
307 メモリインターフェース
311 アクセス制御部
312 アドレス変換テーブル
400 不揮発性メモリ
410 データバッファ
420 メモリセルアレイ
421 通常データ領域
422 代替データ領域
423 代替ライト管理テーブル
430 ドライバ
440 アドレスデコーダ
460 制御インターフェース
470 メモリ制御部
471 アドレスバッファ
472 コマンドバッファ
473 コマンドデコーダ
474 ライト処理部
475 管理テーブルバッファ

Claims (9)

  1. ライトアドレスにより書込み位置が指定されるデータ領域と、
    前記ライトアドレスにより前記書込み位置が指定されると当該書込み位置への前記データの書込みを行い、前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う制御部と
    を具備する記憶装置。
  2. 前記データ領域は、
    ライトコマンドによって指定された前記ライトアドレスである通常ライトアドレスにより前記書込み位置が指定される通常データ領域と、
    前記通常ライトアドレスに対応する前記代替ライトアドレスにより前記書込み位置が指定される代替データ領域と
    を備え、
    前記制御部は、前記データの書込みに失敗した場合には前記通常ライトアドレスに対応する前記代替ライトアドレスを生成する
    請求項1記載の記憶装置。
  3. 前記代替ライトアドレスに対して前記データの書込みを行ったか否かを示す使用フラグを前記代替ライトアドレスごとに保持する保持部をさらに具備し、
    前記制御部は、前記データの書込みに失敗した場合には前記書込みを行っていないことを示す前記使用フラグに係る前記代替ライトアドレスを生成する
    請求項1記載の記憶装置。
  4. ライトアドレスによりデータの書込み位置を指定する制御装置と、
    前記ライトアドレスにより前記書込み位置が指定されるデータ領域と、
    前記ライトアドレスにより前記書込み位置が指定されると当該書込み位置への前記データの書込みを行い、前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う制御部と
    を具備する記憶システム。
  5. 前記制御装置は、
    論理アドレスと物理アドレスとを対応付けて保持するアドレス変換テーブルと、
    前記論理アドレスに対応する前記物理アドレスを前記ライトアドレスとして取得して当該ライトアドレスにより前記書込み位置を指定し、前記代替ライトアドレスにより指定された前記書込み位置への前記データの書込みが成功した場合には前記代替ライトアドレスを前記論理アドレスに対応付けるアクセス制御部と
    を具備する請求項4記載の記憶システム。
  6. 前記データ領域は、
    ライトコマンドによって指定された前記ライトアドレスである通常ライトアドレスにより書込み位置が指定される通常データ領域と、
    前記通常ライトアドレスに対応する前記代替ライトアドレスにより前記書込み位置が指定される代替データ領域と
    を備え、
    前記制御部は、前記データの書込みに失敗した場合には前記通常ライトアドレスに対応する前記代替ライトアドレスを生成する
    請求項5記載の記憶システム。
  7. 前記制御部は、前記データの書込みに成功したか否かを示すエラーフラグと前記通常ライトアドレスおよび前記代替ライトアドレスのいずれを指定して前記データの書込みを行ったかを示す書込み先フラグとを前記アクセス制御部に供給し、
    前記アクセス制御部は、前記データの書込みに成功した旨を示す前記エラーフラグと前記代替ライトアドレスを指定して前記データの書込みを行った旨を示す前記書込み先フラグとが供給された場合には前記通常ライトアドレスに対応する前記代替ライトアドレスを生成して前記論理アドレスに対応付ける
    請求項6記載の記憶システム。
  8. 前記制御部は、前記データの書込みに成功したか否かを示すエラーフラグと前記生成した代替ライトアドレスとを前記アクセス制御部に供給し、
    前記アクセス制御部は、前記データの書込みに成功した旨を示す前記エラーフラグと前記代替ライトアドレスとが供給された場合には前記供給された代替ライトアドレスを前記論理アドレスに対応付ける
    請求項5記載の記憶システム。
  9. 前記ライトアドレスにより書込み位置が指定されると当該書込み位置への前記データの書込みを行う書込み手順と、
    前記データの書込みに失敗した場合には前記指定されたライトアドレスと異なるライトアドレスを代替ライトアドレスとして生成して当該代替ライトアドレスにより指定した書込み位置への前記データの書込みを行う再書込み手順と
    を具備する記憶装置の制御方法。
JP2016523435A 2014-05-26 2015-05-19 記憶装置、記憶システムおよび記憶装置の制御方法 Pending JPWO2015182439A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014107997 2014-05-26
JP2014107997 2014-05-26
PCT/JP2015/064320 WO2015182439A1 (ja) 2014-05-26 2015-05-19 記憶装置、記憶システムおよび記憶装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2015182439A1 true JPWO2015182439A1 (ja) 2017-04-20

Family

ID=54698776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016523435A Pending JPWO2015182439A1 (ja) 2014-05-26 2015-05-19 記憶装置、記憶システムおよび記憶装置の制御方法

Country Status (3)

Country Link
US (1) US10120614B2 (ja)
JP (1) JPWO2015182439A1 (ja)
WO (1) WO2015182439A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI610292B (zh) * 2015-11-19 2018-01-01 瑞鼎科技股份有限公司 驅動電路及其運作方法
JP6991084B2 (ja) * 2018-03-22 2022-01-12 キオクシア株式会社 不揮発性メモリデバイス及び制御方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204561A (ja) * 1991-11-26 1993-08-13 Hitachi Ltd フラッシュメモリを記憶媒体とした半導体ディスク
JPH06131895A (ja) * 1992-10-14 1994-05-13 Toshiba Corp 半導体メモリチップ
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JP2006107363A (ja) * 2004-10-08 2006-04-20 Toshiba Corp 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
JP2007317078A (ja) * 2006-05-29 2007-12-06 Matsushita Electric Ind Co Ltd 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034949B2 (ja) 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP5193822B2 (ja) * 2008-11-19 2013-05-08 株式会社東芝 追記型メモリデバイス

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204561A (ja) * 1991-11-26 1993-08-13 Hitachi Ltd フラッシュメモリを記憶媒体とした半導体ディスク
JPH06131895A (ja) * 1992-10-14 1994-05-13 Toshiba Corp 半導体メモリチップ
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JP2006107363A (ja) * 2004-10-08 2006-04-20 Toshiba Corp 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
JP2007317078A (ja) * 2006-05-29 2007-12-06 Matsushita Electric Ind Co Ltd 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム

Also Published As

Publication number Publication date
WO2015182439A1 (ja) 2015-12-03
US10120614B2 (en) 2018-11-06
US20170109099A1 (en) 2017-04-20

Similar Documents

Publication Publication Date Title
JP6102632B2 (ja) 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法
JP2013142947A (ja) 記憶制御装置、記憶装置および記憶制御装置の制御方法
JP5942781B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US9081662B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
KR102358177B1 (ko) 제어회로 및 제어회로를 포함하는 메모리 장치
JP5929456B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2016143085A (ja) 装置及び方法
JP2020534598A5 (ja)
CN109491828B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US20160239382A1 (en) Data Storage Device and Error Correction Method
JP5867264B2 (ja) 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
WO2015027678A1 (zh) 一种坏道修复方法及装置
JP2015011421A (ja) 記憶制御装置、記憶装置、および、その記憶制御方法
WO2015182439A1 (ja) 記憶装置、記憶システムおよび記憶装置の制御方法
JP2016031626A (ja) メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
JP2012234240A (ja) 記憶装置、コンピュータ装置、コンピュータの制御方法、およびコンピュータプログラム
JP2014022004A (ja) 記憶制御装置、記憶装置、および、それらにおける処理方法
JP2020154728A (ja) メモリシステム及びその制御方法
WO2017168905A1 (ja) メモリ制御装置、記憶装置および情報処理システム
JPWO2016088448A1 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US11061764B2 (en) Data storage device and data retrieval method
JP5845876B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2015118499A (ja) 記憶装置、メモリコントローラ、記憶装置の制御方法、および、プログラム
WO2016056290A1 (ja) メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法
WO2017158997A1 (ja) メモリコントローラ、メモリシステム、情報処理システム、メモリ制御方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190402