JP2021111427A - 記憶装置及びその制御方法 - Google Patents

記憶装置及びその制御方法 Download PDF

Info

Publication number
JP2021111427A
JP2021111427A JP2020004298A JP2020004298A JP2021111427A JP 2021111427 A JP2021111427 A JP 2021111427A JP 2020004298 A JP2020004298 A JP 2020004298A JP 2020004298 A JP2020004298 A JP 2020004298A JP 2021111427 A JP2021111427 A JP 2021111427A
Authority
JP
Japan
Prior art keywords
data
read
temperature
write
volatile memory
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
JP2020004298A
Other languages
English (en)
Inventor
康之 植田
Yasuyuki Ueda
康之 植田
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020004298A priority Critical patent/JP2021111427A/ja
Priority to US17/017,982 priority patent/US11429536B2/en
Publication of JP2021111427A publication Critical patent/JP2021111427A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

Landscapes

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

Abstract

【課題】記憶装置において正常なデータがリードされる確率を高くする。【解決手段】本実施形態に係る記憶装置は、不揮発性メモリと、温度を測定するセンサと、センサによって測定された温度にしたがって不揮発性メモリを制御するコントローラとを含む。コントローラは、不揮発性メモリに対するデータのライト処理時にセンサによって測定された温度に基づいてライト方式を選択し、データに対するライト方式を含む管理データを生成し、ライト方式によりデータを不揮発性メモリへライトし、データのリード処理時に、管理データからデータに対するライト方式を取得し、ライト方式によりデータを不揮発性メモリからリードする。【選択図】 図1

Description

本実施形態は、記憶装置及びその制御方法に関する。
記憶装置は、コントローラの制御にしたがって不揮発性メモリにデータをライトする。ライト処理時の温度によっては、不揮発性メモリに記憶されているデータが正常にリードされない場合がある。コントローラは、不揮発性メモリから正常にデータをリードされなかった場合、リトライリードを実行し、正常なデータのリードを試みる。
米国特許出願公開第2019/0043566号明細書 米国特許出願公開第2018/68891号明細書 特開2010−92521号公報
本実施形態は、記憶装置において正常なデータがリードされる確率を高くすることを目的とする。
本実施形態によれば、記憶装置は、不揮発性メモリと、温度を測定するセンサと、センサによって測定された温度にしたがって不揮発性メモリを制御するコントローラとを含む。コントローラは、不揮発性メモリに対するデータのライト処理時にセンサによって測定された温度に基づいてライト方式を選択し、データに対するライト方式を含む管理データを生成し、ライト方式によりデータを不揮発性メモリへライトし、データのリード処理時に、管理データからデータに対するライト方式を取得し、ライト方式によりデータを不揮発性メモリからリードする。
本実施形態に係るメモリシステムの構成の一例を示すブロック図。 本実施形態に係るコントローラの機能構成の一例を示すブロック図。 本実施形態に係る管理データの一例を示す図。 本実施形態に係る記憶装置のライト処理の一例を示すフローチャート。 本実施形態に係る属性選択部の処理の第1の例を示すフローチャート。 本実施形態に係る属性選択部の処理の第2の例を示すフローチャート。 本実施形態に係る記憶装置のリード処理の一例を示すフローチャート。 ライト処理時の動作温度と、リード処理時の動作温度と、温度依存リトライリードの実行状態と、標準リトライリードの実行状態との関係を例示する図。
以下、図面を参照して、本実施形態について具体的に説明する。なお、以下の説明において、実質的に同一の構成要素及び機能については、同一符号を付し、必要に応じて説明を行う。
図1は、本実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステムは、記憶装置1を含む。記憶装置1は、例えばSSD(Solid State Drive)である。記憶装置1は、例えばHDD(Hard Disk Drive)、USB(Universal Serial Bus)メモリ、メモリカード、HDDとSSDとを含むハイブリッド型ストレージシステム、光ディスクデバイスなどでもよい。記憶装置1は、外部の情報処理装置2と通信可能に接続される。
記憶装置1は、不揮発性メモリ3と、インタフェース部4と、コントローラ5とを備える。
不揮発性メモリ3は、例えばNAND型フラッシュメモリである。不揮発性メモリ3は、他の不揮発性半導体メモリでもよい。例えば、不揮発性メモリ3は、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory:磁気抵抗メモリ)、PRAM(Phasechange Random Access Memory:相変化メモリ)、ReRAM(Resistive Random Access Memory:抵抗変化型メモリ)、FeRAM(Ferroelectric Random Access Memory)、または、3次元構造の半導体メモリなどでもよい。不揮発性メモリ3は、複数のメモリチップC1〜Cn(nは2以上の整数)を備える。一つのメモリチップCl(lは、1〜nのいずれか)は、一つの温度センサTSlを備える。温度センサTSlは、対応するメモリチップClの温度を測定し、測定値を出力する。
不揮発性メモリ3に対するデータのリード及びライトは、ページと呼ばれる単位で実行され得る。不揮発性メモリ3に対するデータのライトは、ブログラミングと表記されてもよい。不揮発性メモリ3に対するデータのイレーズは、ブロックと呼ばれる単位で実行され得る。ブロックの1単位は、複数のページを含む。不揮発性メモリ3に対するデータのリード及びライトが複数のページ単位で、イレーズが複数のブロック単位で、それぞれ実行されてもよい。
インタフェース部4は、記憶装置1と情報処理装置2とを通信可能に接続するハードウェアインタフェースである。インタフェース部4は、コントローラ5に含まれていてもよい。
コントローラ5は、情報処理装置2からインタフェース部4経由でコマンドを受信した場合に、受信したコマンドに応じて不揮発性メモリ3を制御する。
コントローラ5は、メモリ6、温度センサ7、プロセッサ26、バッファメモリ27、リード/ライトコントローラ28を備える。
メモリ6は、例えばDRAM(Dynamic Rondom Access Memory)またはSRAM(Static Rondom Access Memory)である。メモリ6は、例えばメインメモリとして使用される。メモリ6は、例えば、コントローラ5が不揮発性メモリ3よりも高速にアクセス可能である。メモリ6は、コントローラ5によって生成される管理データ22を記憶している。管理データ22は、図3を用いて後で具体的に説明する。
温度センサ7は、温度を測定し、測定値を出力する。
プロセッサ26は、例えば、メモリ6に記憶されたファームウェアFWを実行する。プロセッサ26は、メモリ6、温度センサ7、バッファメモリ27、リード/ライトコントローラ28などを制御する。
バッファメモリ27は、例えば、ラッチ回路である。バッファメモリ27は、レジスタ、DRAM、または、SRAMなどでもよい。バッファメモリ27は、リード/ライトコントローラ28が不揮発性メモリ3からリードしたデータを記憶する。また、バッファメモリ27は、リード/ライトコントローラ28が不揮発性メモリ3へライトするデータを記憶する。また、バッファメモリ27は、例えば、コントローラ5の複数の構成要素の間でやり取りするデータの一時保存領域として使用される。
リード/ライトコントローラ28は、不揮発性メモリ3に対するデータのリードおよびライトを制御する。また、リード/ライトコントローラ28は、不揮発性メモリ3に対するイレーズを制御する。具体的には、リード/ライトコントローラ28は、不揮発性メモリ3からリードしたデータをバッファメモリ27に記憶させる。また、リード/ライトコントローラ28は、バッファメモリ27に記憶されているデータを不揮発性メモリ3へライトする。
次に、コントローラ5の詳細な機能構成について説明する。図2は、本実施形態に係るコントローラ5の機能構成の一例を示すブロック図である。コントローラ5は、アドレス変換部8、温度算出部9、属性選択部10、設定部11、ライト部12、ライト属性取得部13、リード部14、ライト属性判断部15、リード温度判断部16、標準リトライリード部17、温度リトライリード部18、エラー訂正部19、ウェアレベリング部20、ガベージコレクション部21を備える。なお、アドレス変換部8、温度算出部9、属性選択部10、設定部11、ライト部12、ライト属性取得部13、リード部14、ライト属性判断部15、リード温度判断部16、標準リトライリード部17、温度リトライリード部18、エラー訂正部19、ウェアレベリング部20、ガベージコレクション部21のうちの少なくとも一部は、コントローラ5とは異なる別の構成要素により実現されてもよい。
コントローラ5は、インタフェース部4経由で、例えば、ライトコマンドと論理アドレスとデータとを受信すると、エラー訂正部19を用いてデータに対してECCを付加する。また、コントローラ5は、アドレス変換データ23を用いて論理アドレスを物理アドレスへ変換する(アドレス変換)。そして、コントローラ5は、ECCが付加されたデータを、不揮発性メモリ3における物理アドレスの示す位置へライトする処理を実行する。
コントローラ5は、論理アドレスと物理アドレスとを関連付けるアドレス変換データ23を管理している。
コントローラ5は、インタフェース部4経由で、例えば、リードコマンド及び論理アドレスを受信すると、アドレス変換データ23を用いて論理アドレスを物理アドレスへ変換する(アドレス変換)。また、コントローラ5は、物理アドレスが示す不揮発性メモリ3における物理的なデータの記憶位置からデータをリードする。そして、コントローラ5は、エラー訂正部19を用いてリードしたデータに対してエラー訂正を実行する。コントローラ5は、エラー訂正されたデータを、インタフェース部4経由で情報処理装置2へ送信する。
アドレス変換部8は、アドレス変換データ23を用いて、論理アドレスを物理アドレスへ変換する。物理アドレスは、不揮発性メモリ3における物理的なデータの記憶位置を指定する。コントローラ5は、物理アドレスが指定する物理的なデータの記憶位置からユーザデータをリードし、または、当該物理的なデータの記憶位置へユーザデータをライトする。
温度算出部9は、温度センサTS1〜TSnおよび温度センサ7から測定値を取得する。温度算出部9は、例えば、ライト処理時に、温度センサTS1〜TSnおよび温度センサ7から取得した測定値に基づいて、動作温度を算出する。また、温度算出部9は、例えば、リード処理時に、温度センサTS1〜TSnおよび温度センサ7から取得した測定値に基づいて、リード温度判断部16において第3の閾値と比較される動作温度を算出する。温度算出部9が算出する動作温度は、例えば、温度センサTS1〜TSnおよび温度センサ7から取得した測定値の平均値としてもよい。また、温度算出部9が算出する動作温度は、メモリチップから受信した測定値に対して重み付けをして算出されてもよい。また、温度算出部9が算出する動作温度は、温度センサ7の測定値の重みよりも温度センサTS1〜TSnの測定値の重みを大きくして算出されてもよい。
属性選択部10は、ライト処理時に、温度算出部9によって算出された動作温度に基づいて、ライト属性(ライト方式、モード)を選択する。ライト属性には、信頼性の高いライト属性(以下、高信頼のライト属性という)と高信頼のライト属性よりも信頼性が低いがデータの記憶効率の高いライト属性(以下、標準のライト属性という)とがある。高信頼のライト属性として、例えば、SLC(Single Level Cell)方式、多重化方式が用いられる。標準のライト属性として、例えば、MLC(Multi Level Cell)方式、TLC(Triple Level Cell)方式、多重化しない方式が用いられる。ここで、多重化とは、例えば、同じデータを複数個記憶する方式をいう。多重化においては、複数個のデータのうちのいくつかのデータがリード不可となっても、他のデータがリード可能であればデータを取り出すことができる。また、多重化においては、複数個のデータのうちのいくつかのデータの一部分がリード不可となっても、複数個のデータのうちのリード可能な他の一部分からデータを修復することで、データを取り出すことができる。
設定部11は、温度算出部9によって算出された動作温度と、論理アドレスまたは物理アドレスとを関連付けて、温度データ25としてメモリ6に記憶させる。また、設定部11は、ライト処理時に属性選択部10によって選択されたライト属性と、論理アドレスまたは物理アドレスとを関連付けて、属性データ24としてメモリ6に記憶させる。
ライト部12は、ライト処理時に、不揮発性メモリ3におけるライト先の物理アドレスの示す位置に対して、ユーザデータを、属性選択部10によって選択されたライト属性に対応する方式によりライトする。
ライト属性取得部13は、リード処理時に、属性データ24を参照し、リード対象の論理アドレスまたは物理アドレスに関連付けられているライト属性を取得する。
リード部14は、リード処理時に、リード対象の物理アドレスの示す不揮発性メモリ3の位置のデータを、ライト属性取得部13によって取得されたライト属性に対応する方式によりリードする。
ライト属性判断部15は、リード部14によってリードされたデータが正常ではない場合に、管理データ22内でリード対象の論理アドレスまたは物理アドレスに関連付けられているライト属性が標準のライト属性(すなわち、MLC方式またはTLC方式)であるか、または、高信頼のライト属性(すなわち、SLC方式または多重化方式)であるかを判断する。
リード温度判断部16は、ライト属性判断部15によってライト属性が高信頼のライト属性であると判断された場合に、リード処理時の動作温度が第3の閾値以上か否かを判断する。
標準リトライリード部17は、例えば、リード部14によってリードされたデータが正常ではなく、かつ、リード対象の論理アドレスまたは物理アドレスに対応するライト属性が標準のライト属性の場合に、動作温度に依存しない標準リトライリードを実行する。動作温度に依存しない標準リトライリードとは、例えば、温度を用いることなくパラメータまたは参照テーブルを更新し、リードを実行することをいう。また、標準リトライリード部17は、例えば、リード部14によってリードされたデータが正常ではなく、かつ、リード対象の論理アドレスまたは物理アドレスに対応するライト属性が高信頼のライト属性であり、かつ、リード処理時の動作温度が第3の閾値未満の場合に、リードを実行する(標準リトライリード)。
温度リトライリード部18は、例えば、リード部14によってリードされたデータが正常ではなく、かつ、リード対象の論理アドレスまたは物理アドレスに対応するライト属性が高信頼のライト属性であり、かつ、リード処理時の動作温度が第3の閾値以上の場合に、温度依存リトライリードを実行する。温度依存リトライリードとは、例えば、温度を用いてリードに用いられるパラメータまたは参照テーブルを更新し、リードを実行することをいう。
エラー訂正部19は、例えば、リード部14、または、標準リトライリード部17、または、温度リトライリード部18によってリードされたデータが正常か否か判断する。また、エラー訂正部19は、例えば、リード部14、または、標準リトライリード部17、または、温度リトライリード部18によってリードされたデータに対するエラー訂正を行う。例えば、リードされたデータには、ECC(Error Correction Code)が付されているとする。この場合、エラー訂正部19は、ECCに基づいてリードされたデータのエラーを訂正する。
ウェアレベリング部20は、不揮発性メモリ3における各ブロックの消耗度を平滑化するための処理を実行する(ウェアレベリング)。ウェアレベリング部20は、ウェアレベリングのために、不揮発性メモリ3からデータをリードし、その後、不揮発性メモリ3へライトする。
ガベージコレクション部21は、不揮発性メモリ3の不要になった領域を解放するための処理を実行する(ガベージコレクション)。ガベージコレクション部21は、ガベージコレクションのために、不揮発性メモリ3のブロックからデータをリードし、ブロックに対するイレーズと他のブロックへのデータのライトを行う。
ウェアレベリングおよびガベージコレクションのためのリード処理時におけるライト属性取得部13、リード部14、エラー訂正部19、ライト属性判断部15、温度算出部9、リード温度判断部16、標準リトライリード部17、温度リトライリード部18の動作を説明する。ウェアレベリングおよびガベージコレクションのためのリード処理時において、ライト属性取得部13は、ライト属性を取得する。リード部14は、不揮発性メモリ3からデータをリードする。エラー訂正部19は、リードされたデータが正常か否か判断する。ライト属性判断部15は、リードされたデータが正常ではない場合にライト属性を判断する。温度算出部9は、リードされたデータが正常ではない場合にリード処理時の動作温度を算出する。リード温度判断部16は、リード処理時の動作温度が第3の閾値以上か否かを判断する。標準リトライリード部17は、リードされたデータが正常ではなく、かつ、ライト属性判断部15によって判断されたライト属性が標準のライト属性の場合に、標準リトライリードを実行する。標準リトライリード部17は、リードされたデータが正常ではなく、かつ、ライト属性判断部15によって判断されたライト属性が高信頼のライト属性であり、かつ、リード処理時の動作温度が第3の閾値以上ではない場合に、標準リトライリードを実行する。温度リトライリード部18は、リードされたデータが正常ではなく、かつ、ライト属性判断部15によって判断されたライト属性が高信頼のライト属性であり、かつ、リード処理時の動作温度が第3の閾値以上の場合に、温度依存リトライリードを実行する。
ウェアレベリングおよびガベージコレクションのためのライト処理時における温度算出部9、設定部11、ライト部12の動作を説明する。ウェアレベリングおよびガベージコレクションのためのライト処理時において、温度算出部9は、ライト処理時の動作温度を算出する。属性選択部10は、ライト処理時のライト属性を選択する。設定部11は、動作温度と論理アドレスまたは物理アドレスとを関連付けて温度データ25としてメモリ6に記憶させる。また、設定部11は、属性選択部10によって選択されたライト属性と論理アドレスまたは物理アドレスとを関連付けて属性データ24としてメモリ6に記憶させる。ライト部12は、属性選択部10によって選択されたライト属性に対応する方式によりデータを不揮発性メモリ3にライトする。
次に、管理データ22について具体的に説明する。図3は、本実施形態に係る管理データ22のデータ構造の一例を示す図である。
管理データ22を用いて、コントローラ5は、論理アドレスまたは物理アドレスから、対応するライト処理時の動作温度またはライト属性を特定可能である。コントローラ5は、例えば記憶装置1の起動時に、不揮発性メモリ3から管理データ22をリードし、メモリ6へライトする。コントローラ5は、メモリ6の管理データ22が更新されると、例えば所定のタイミングまたは記憶装置1が停止される前などに、メモリ6の管理データ22を不揮発性メモリ3へライトバックする。
管理データ22は、アドレス変換データ23と、属性データ24と、温度データ25とを含む。
アドレス変換データ23は、論理アドレスと物理アドレスとを関連付けている。本実施形態において、論理アドレスはLBA(Logical Block Addressing)としてもよい。論理アドレスに対応する物理アドレスはPBA(Physical Block Addressing)としてもよい。アドレス変換データ23は、例えば、LBA[K]と物理アドレスPA[a]とを関連付けており、LBA[L]と物理アドレスPA[b]とを関連付けており、LBA[M]と当該LBA[M]に対応する不揮発性メモリ3の物理アドレスとを関連付けている。
属性データ24は、論理アドレスまたは物理アドレスと、当該論理アドレスまたは物理アドレスの示す領域に対するライト属性(モード)とを関連付けている。属性データ24は、例えば、LBA[0]、LBA[1]、LBA[M]のそれぞれとTLC方式とを関連付けている。また、属性データ24は、例えば、LBA[K]とSLC方式とを関連付けている。また、属性データ24は、例えば、LBA[L]、LBA[L+1]のそれぞれと多重化方式とを関連付けている。また、属性データ24は、例えば、多重化方式と関連付けられているLBA[L]に対して、LBA[L+1]を多重化先として関連付けている。同様に、属性データ24は、例えば、多重化方式と関連付けられているLBA[L+1]に対して、LBA[L]を多重化先として関連付けている。ここで、多重化先とは、多重化方式において、あるLBAに記憶されているデータと同じデータを記憶している他のLBAを意味する。図3の属性データ24は、LBA[L]とLBA[L+1]とに同じデータが記憶されていることを示している。
温度データ25は、論理アドレスまたは物理アドレスと、当該論理アドレスまたは物理アドレスに対するライト処理時に温度算出部9によって算出された動作温度とを関連付けている。温度データ25は、例えば、物理アドレスPA[a]とライト処理時の動作温度TW[0]とを関連付けている。温度データ25は、例えば、物理アドレスPA[b]とライト処理時の動作温度TW[1]とを関連付けている。
図4は、本実施形態に係る記憶装置1のライト処理の一例を示すフローチャートである。
例えば、記憶装置1が情報処理装置2からライトコマンド、ライト先の論理アドレス、ユーザデータを受信すると(開始)、アドレス変換部8は、アドレス変換データ23を用いて、ライト先の論理アドレスをライト先の物理アドレスへ変換し、アドレス変換の完了を設定部11およびライト部12へ通知する(S401)。また、温度算出部9は、温度センサTS1〜TSn,7から取得した測定値に基づいて、ライト処理時の動作温度を算出し、動作温度算出の完了を属性選択部10へ通知する(S402)。
温度算出部9から動作温度算出の完了の通知を受けると、属性選択部10は、S402で温度算出部9が算出したライト処理時の動作温度と所定の閾値とを比較し、ライト処理時の動作温度に対応するライト属性を選択し、ライト属性選択の完了を設定部11およびライト部12へ通知する(S403)。ライト属性を選択する処理は、図5および図6を用いて後で詳細に説明する。
アドレス変換部8からアドレス変換の完了を受け、かつ、属性選択部10からライト属性選択の完了の通知を受けると、設定部11は、記憶装置1が情報処理装置2から受信した論理アドレスまたはS401でアドレス変換部8が変換した物理アドレスに対して、S402で算出された動作温度およびS403で選択されたライト属性を関連付けて管理データ22としてメモリ6に記憶させる(S404)。
アドレス変換部8からアドレス変換の完了の通知を受け、かつ、属性選択部10からライト属性選択の完了の通知を受けると、ライト部12は、S403で選択されたライト属性に対応する方式により、S401でアドレス変換部8が変換したライト先の物理アドレスで示される位置に、ユーザデータをライトする(S405)。そして、処理は終了する(終了)。
なお、本実施形態において、図4の処理は、記憶装置1が情報処理装置2からライトコマンドを受信してユーザデータを記憶する場合に実行されてもよい。また図4の処理は、記憶装置1の内部処理でコントローラ5がユーザデータを不揮発性メモリ3にライトする場合に実行されてもよい。
図5は、本実施形態に係るライト属性を選択する処理の第1の例を示すフローチャートである。
ライト処理時の動作温度が算出されると(開始)、属性選択部10は、動作温度が第1の閾値以上か否か判断する(S501)。
動作温度が第1の閾値以上の場合、属性選択部10は、ライト属性として、MLC方式またはSLC方式を選択する(S502A)。そして、処理は終了する(終了)。
動作温度が第1の閾値未満の場合、属性選択部10は、ライト属性として、SLC方式を選択する(S502B)。そして、処理は終了する(終了)。
図6は、本実施形態に係るライト属性を選択する処理の第2の例を示すフローチャートである。
ライト処理時の動作温度が算出されると(開始)、属性選択部10は、動作温度が第2の閾値以上か否か判断する(S601)。
動作温度が第2の閾値以上の場合、属性選択部10は、ライト属性として、多重化しない方式を選択する(S602A)。そして、処理は終了する(終了)。
動作温度が第2の閾値未満の場合、属性選択部10は、ライト属性として、多重化方式を選択する(S602B)。そして、処理は終了する(終了)。
なお、上記図5の処理と図6の処理との双方が、ライト属性の選択のために実行されてもよい。
図7は、本実施形態に係る記憶装置1のリード処理の一例を示すフローチャートである。
例えば、記憶装置1が情報処理装置2からリードコマンドおよび論理アドレスを受信すると(開始)、アドレス変換部8は、アドレス変換データ23に基づいて、受信した論理アドレスを物理アドレスへ変換し、アドレス変換の完了をライト属性取得部13へ通知する(S701)。
アドレス変換部8からアドレス変換の完了の通知を受けると、ライト属性取得部13は、属性データ24を参照し、記憶装置1が情報処理装置2から受信した論理アドレスまたはS701でアドレス変換部8が変換した物理アドレスに対応するライト属性を取得し、ライト属性取得の完了をリード部14へ通知する(S702)。
ライト属性取得部13からライト属性取得の完了の通知を受けると、リード部14は、S701でアドレス変換部8が変換した物理アドレスで示される位置のデータを、S702でライト属性取得部13が取得したライト属性に対応する方式によりリードし、リード完了の通知をエラー訂正部19へ通知する(S703)。
リード部14、または、温度依存リトライリード部18、または、標準リトライリード部17からリード完了の通知を受けると、エラー訂正部19は、リード部14、または、温度依存リトライリード部18、または、標準リトライリード部17によってリードされたデータが正常か否かを判断し、データが正常ではない場合、実行命令をライト属性判断部15へ通知する(S704)。
リード部14、または、温度依存リトライリード部18、または、標準リトライリード部17によってリードされたデータが正常な場合、処理は終了する(終了)。
エラー訂正部19から実行命令を受けると、ライト属性判断部15は、属性データ24の中から、記憶装置1が情報処理装置2から受信した論理アドレスまたはS701でアドレス変換部8が変換した物理アドレスに対応するライト属性を取得する。ライト属性判断部15は、取得したライト属性が高信頼のライト属性の場合に、実行命令を温度算出部9へ通知し、取得したライト属性が標準のライト属性の場合に、実行命令を標準リトライリード部17へ通知する(S705)。
温度算出部9は、ライト属性判断部15から実行命令を受けた場合に、リード処理時の動作温度を算出し、動作温度算出の完了をリード温度判断部16に通知する(S706)。
温度算出部9から動作温度算出の完了の通知を受けると、リード温度判断部16は、リード処理時の動作温度が第3の閾値以上か否かを判断する。リード温度判断部16は、リード処理時の動作温度が第3の閾値以上の場合に、実行命令を温度リトライリード部18へ通知し、リード処理時の動作温度が第3の閾値以上ではない場合に、実行命令を標準リトライリード部17へ通知する。
温度リトライリード部18は、リード温度判断部16から実行命令を受けた場合に、S705でライト属性判断部15が判断したライト属性のSLC方式または多重化方式により温度依存リトライリードを実行し、リード完了の通知をエラー訂正部19へ通知する(S708)。
標準リトライリード部17は、ライト属性判断部15から実行命令を受けた場合、または、リード温度判断部16から実行命令を受けた場合に、S705でライト属性判断部15が判断したライト属性に対応する方式により標準依存リトライリードを実行し、リード完了の通知をエラー訂正部19へ通知する(S709)。
この図7の処理では、温度依存リトライリードは、ライト属性が高信頼のライト属性の場合に実行され、ライト属性が標準のライト属性の場合にはスキップされ、実行されない。
本実施形態において、図7の処理は、記憶装置1が情報処理装置2からリードコマンドを受信して不揮発性メモリ3からデータをリードする場合に実行されてもよい。また、図7の処理は、記憶装置1の内部処理でコントローラ5がデータを不揮発性メモリ3からリードする場合に実行されてもよい。
記憶装置1の内部処理の例として、ウェアレベリング部20によるウェアレベリング、ガベージコレクション部21によるガベージコレクション、および、その他のバックグラウンドオペレーションがある。
図8は、ライト処理時の動作温度と、リード処理時の動作温度と、温度依存リトライリードの実行状態と、標準リトライリードの実行状態との関係を例示する図である。
この図8においては、ライト処理時の動作温度(Tw)が第1の閾値未満の場合を低温と表記し、ライト処理時の動作温度が低温の場合のライト属性として、SLC方式が関連付けられている。ライト処理時の動作温度が第1の閾値以上の場合を高温と表記し、ライト処理時の動作温度が高温の場合のライト属性として、TLC方式が関連付けられている。
また、図8においては、リード処理時の動作温度(Tr)が第3の閾値未満の場合を低温と表記し、リード処理時の動作温度が第3の閾値以上の場合を高温と表記している。
パターンP1のように、ライト処理時の動作温度が低温であり、リード処理時の動作温度が低温の場合、コントローラ5は、温度依存リトライリードを実行せず、標準リトライリードを実行する。
パターンP2のように、ライト処理時の動作温度が低温であり、リード処理時の動作温度が高温の場合、コントローラ5は、温度依存リトライリードを実行し、標準リトライリードを実行しない。
パターンP3のように、ライト処理時の動作温度が高温であり、リード処理時の動作温度が低温の場合、コントローラ5は、温度依存リトライリードを実行せず、標準リトライリードを実行する。
パターンP4のように、ライト処理時の動作温度が高温であり、リード処理時の動作温度が高温の場合、コントローラ5は、温度依存リトライリードを実行せず、標準リトライリードを実行する。
この図8で示すように、本実施形態に係る記憶装置1では、ライト処理時の動作温度が低温であり、リード処理時の動作温度が高温の場合に、リード処理時の温度の測定を必要とする温度依存リトライリードが実行され、その他の場合に、温度依存リトライリードよりも高速な標準リトライリードが実行される。このため、本実施形態では、温度依存リトライリードの実行回数を削減することができる。
以上説明した本実施形態に係る記憶装置1は、ライト処理時に、動作温度に基づいてライト属性を判断し、属性データ24および温度データ25を生成する。記憶装置1は、リード処理時に、ライト属性に対応する方式によりデータをリードする。記憶装置1は、リードされたデータが正常でなく、かつ、ライト属性が標準のライト属性の場合に、ライト属性に対応する方式により標準リトライリードを実行する。記憶装置1は、リードされたデータが正常でなく、かつ、ライト属性が高信頼のライト属性であり、かつ、リード時の動作温度が第3の閾値以上ではない場合に、標準リトライリードを実行する。記憶装置1は、リードされたデータが正常でなく、かつ、ライト属性が高信頼のライト属性であり、かつ、リード時の動作温度が第3の閾値以上の場合に、温度依存リトライリードを実行する。これにより、本実施形態においては、例えば、ライト処理時に動作温度が低いなどの理由でライトされるデータの信頼性が低くなる可能性がある場合であっても、ライト属性に対応する方式により正常なデータを高確率でリードすることができる。
以下において、本実施形態に係る記憶装置1と比較例の記憶装置とを対比し、本実施形態に係る記憶装置1の有効性を説明する。
不揮発性メモリにおいては、ライト処理時の温度の影響を受けてライトされたデータの信頼性が低下し、ライト処理時の温度と異なる温度でデータをリードする場合に、データがリード不可となる場合がある。より具体的に説明すると、例えば、低温動作時にTLC方式で不揮発性メモリにライトされたデータは、高温動作時に正常にリードされにくい場合がある。このようにデータをリードできない場合に正常なデータをリードするための救済として、リトライリードがある。
比較例の記憶装置は、不揮発性メモリに所定の方式でデータをライトし、正常なデータがリードされなかった場合に、リード処理時の温度にしたがって温度依存リトライリードを実行するものとする。このような比較例の記憶装置では、ライト時の温度は考慮されないため、エラー訂正しても正常なデータが得られず、リード処理時の温度の測定が必要になる温度依存リトライリードが実行される回数が多くなり、リード処理のレイテンシが大きくなる場合がある。
これに対して、本実施形態に係る記憶装置1は、動作温度にしたがって信頼性の高いライト属性を選択し、選択したライト属性に対応する方式によりデータをライトし、リード処理においてライト属性に対応する方式によりデータをリードする。さらに、本実施形態に係る記憶装置1は、リトライリードを実行する場合に、ライト処理時の動作温度とリード処理時の動作温度とに適した温度依存リトライリード、または、標準リトライリードを選択し、実行することができる。このため、本実施形態に係る記憶装置1では、比較例の記憶装置よりも、正常なデータを高い確率でリードすることができ、リトライリードの回数を低減させることができる。
比較例の記憶装置では、リトライリード時に、S705のライト属性判断部15による判断がないため、ライト処理時の動作温度が高温の場合であっても、リード処理時の動作温度が高温であれば、温度依存リトライリードが実行される。しかしながら、本実施形態に係る記憶装置1は、ライト処理時の動作温度が高温の場合には、リード処理時の動作温度に関係なく、温度依存リトライリードよりも高速に処理可能な標準リトライリードを実行する。これにより、リード処理のレイテンシが大きくなることを防止することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…記憶装置
2…情報処理装置
3…不揮発性メモリ
4…インタフェース部
5…コントローラ
6…メモリ
7,TS1〜TSn…温度センサ
8…アドレス変換部
9…温度算出部
10…属性選択部
11…設定部
12…ライト部
13…ライト属性取得部
14…リード部
15…ライト属性判断部
16…リード温度判断部
17…標準リトライリード部
18…温度リトライリード部
19…エラー訂正部
20…ウェアレベリング部
21…ガベージコレクション部
22…管理データ
23…アドレス変換データ
24…属性データ
25…温度データ
C1〜Cn…メモリチップ

Claims (7)

  1. 不揮発性メモリと、
    温度を測定するセンサと、
    前記センサによって測定された前記温度にしたがって前記不揮発性メモリを制御するコントローラと、
    を具備し、
    前記コントローラは、
    前記不揮発性メモリに対するデータのライト処理時に前記センサによって測定された前記温度に基づいてライト方式を選択し、
    前記データに対する前記ライト方式を含む管理データを生成し、
    前記ライト方式により前記データを前記不揮発性メモリへライトし、
    前記データのリード処理時に、前記管理データから前記データに対する前記ライト方式を取得し、
    前記ライト方式により前記データを前記不揮発性メモリからリードする、
    記憶装置。
  2. 前記コントローラは、前記ライト処理時の前記温度が第1の閾値未満の場合に、前記データに対してSLC(Single Level Cell)方式を選択し、前記ライト処理時の前記温度が前記第1の閾値以上の場合に、前記不揮発性メモリの1メモリセルに対して複数ビットの情報を記憶可能なライト方式を選択する、
    請求項1の記憶装置。
  3. 前記コントローラは、前記ライト処理時の前記温度が第2の閾値未満の場合に、前記データに対して多重化方式を選択し、前記ライト処理時の前記温度が前記第2の閾値以上の場合に、前記多重化しない方式を選択する、
    請求項1または請求項2の記憶装置。
  4. 前記コントローラは、
    前記不揮発性メモリからリードされた前記データが正常か否かを判断し、
    前記データが正常ではないと判断された場合に、前記データに対する前記ライト方式が第1のライト方式であるか、または、前記第1のライト方式よりも信頼性の低い第2のライト方式であるか、を判断し、
    前記ライト方式が前記第1のライト方式の場合に、前記リード処理時に前記センサによって測定された前記温度が第3の閾値以上か否か判断し、
    前記リード処理時の前記温度が前記第3の閾値以上の場合に、前記温度に依存するリトライリードを実行し、
    前記ライト方式が前記第2のライト方式の場合に、または、前記リード処理時の前記温度が前記第3の閾値未満の場合に、前記温度に依存しないリトライリードを実行する、
    請求項1ないし請求項3のうちのいずれか1項の記憶装置。
  5. 前記管理データは、
    前記データに関する論理アドレスと物理アドレスとを関連付けたアドレス変換データと、
    前記データに関する前記論理アドレスまたは前記物理アドレスと、前記ライト方式とを関連付けた属性データと、
    を具備する、請求項1ないし請求項4のうちのいずれか1項の記憶装置。
  6. 前記リード処理および前記ライト処理は、前記コントローラが前記不揮発性メモリに対して実行する内部処理である、請求項1ないし請求項5のうちのいずれか1項の記憶装置。
  7. 不揮発性メモリと、温度を測定するセンサと、コントローラとを具備する記憶装置の制御方法において、
    前記コントローラにより、前記不揮発性メモリに対するデータのライト処理時に前記センサによって測定された前記温度に基づいてライト方式を選択することと、
    前記データに対する前記ライト方式を含む管理データを生成することと、
    前記ライト方式により前記データを前記不揮発性メモリへライトすることと、
    前記データのリード処理時に、前記管理データから前記データに対する前記ライト方式を取得することと、
    前記ライト方式により前記データを前記不揮発性メモリからリードすることと、
    を具備する、方法。
JP2020004298A 2020-01-15 2020-01-15 記憶装置及びその制御方法 Pending JP2021111427A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020004298A JP2021111427A (ja) 2020-01-15 2020-01-15 記憶装置及びその制御方法
US17/017,982 US11429536B2 (en) 2020-01-15 2020-09-11 Storage device which selects write scheme based on measured temperature and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020004298A JP2021111427A (ja) 2020-01-15 2020-01-15 記憶装置及びその制御方法

Publications (1)

Publication Number Publication Date
JP2021111427A true JP2021111427A (ja) 2021-08-02

Family

ID=76762115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020004298A Pending JP2021111427A (ja) 2020-01-15 2020-01-15 記憶装置及びその制御方法

Country Status (2)

Country Link
US (1) US11429536B2 (ja)
JP (1) JP2021111427A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11892928B2 (en) * 2020-12-28 2024-02-06 Western Digital Technologies, Inc. Delayed thermal throttling and associated data routing techniques

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5227133B2 (ja) 2008-10-06 2013-07-03 株式会社日立製作所 半導体記憶装置
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US9645177B2 (en) * 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US9514987B1 (en) 2015-06-19 2016-12-06 International Business Machines Corporation Backside contact to final substrate
JP2018156696A (ja) 2017-03-15 2018-10-04 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10146460B1 (en) * 2017-06-01 2018-12-04 Apple Inc. Programming schemes for avoidance or recovery from cross-temperature read failures
US10395728B2 (en) 2018-06-26 2019-08-27 Intel Corporation Demarcation voltage determination via write and read temperature stamps
KR20200143107A (ko) * 2019-06-14 2020-12-23 삼성전자주식회사 스토리지 장치의 구동 방법 및 이를 수행하는 스토리지 장치

Also Published As

Publication number Publication date
US20210216472A1 (en) 2021-07-15
US11429536B2 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
JP4901987B1 (ja) 記憶装置、電子機器及び誤りデータの訂正方法
US10698762B2 (en) Data reading method and storage controller
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8621139B2 (en) Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same
US8949690B2 (en) Memory controller
US10372619B2 (en) Data backup method, data recovery method and storage controller
WO2018132396A1 (en) Directed sanitization of memory
US10860247B2 (en) Data writing method and storage controller
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US8966157B2 (en) Data management method, memory controller and memory storage apparatus
TW201947402A (zh) 記憶體管理方法以及儲存控制器
US20100262892A1 (en) Data access method for flash meory and storage system and controller thereof
US8607123B2 (en) Control circuit capable of identifying error data in flash memory and storage system and method thereof
JP7395388B2 (ja) メモリシステム及びその制御方法
US9990152B1 (en) Data writing method and storage controller
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
US10509583B1 (en) Memory management method and storage controller
JP4242245B2 (ja) フラッシュrom制御装置
US11366751B2 (en) Storage device and storage control method
US11429536B2 (en) Storage device which selects write scheme based on measured temperature and control method
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN108108118B (zh) 数据写入方法以及存储控制器
JP4332132B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法