JP2014098978A - メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法 - Google Patents

メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法 Download PDF

Info

Publication number
JP2014098978A
JP2014098978A JP2012249435A JP2012249435A JP2014098978A JP 2014098978 A JP2014098978 A JP 2014098978A JP 2012249435 A JP2012249435 A JP 2012249435A JP 2012249435 A JP2012249435 A JP 2012249435A JP 2014098978 A JP2014098978 A JP 2014098978A
Authority
JP
Japan
Prior art keywords
priority
unit
write
temperature
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
JP2012249435A
Other languages
English (en)
Inventor
Haruhiko Terada
晴彦 寺田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012249435A priority Critical patent/JP2014098978A/ja
Priority to US14/039,000 priority patent/US9135165B2/en
Priority to CN201310542744.1A priority patent/CN103810110B/zh
Publication of JP2014098978A publication Critical patent/JP2014098978A/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/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
    • 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
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
    • 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
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7211Wear leveling

Landscapes

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

Abstract

【課題】不揮発性メモリにおいて消耗の度合いを適切に平準化する。
【解決手段】それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、複数の測定領域の各々で測定された温度を取得する。優先度決定部が、実行された書込処理により生じた単位領域の消耗の度合いである消耗度と前記単位領域を含む測定領域の温度とに応じて前記単位領域ごとの優先度を決定する。書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する。
【選択図】図5

Description

本技術は、メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法に関する。詳しくは、書込回数に上限があるメモリを制御するためのメモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法に関する。
近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ(NVM:Non-Volatile memory)が用いられることがある。一般に、不揮発性メモリを構成するメモリセルは、経年劣化のほか、データの書込みにより消耗し、一定の書込回数に達するとエラーの発生率が許容値を超えて寿命が尽きることが知られている。
このように寿命のある不揮発性メモリにおいて特定のアドレスに書込みが集中すると、そのアドレスに対応するメモリセルが消耗して寿命が先に尽きてしまい、使用不能なメモリセル数が増加するおそれがある。そこで、不揮発性メモリにおいては、それぞれのメモリセルの消耗の度合いを平準化する処理が行われることが多い。この処理はウェアレベリング処理と呼ばれる。
ウェアレベリング処理において、フラッシュメモリ内のアドレスごとにデータを書き込んだ回数を記録しておき、書込みの際に、書込回数の少ないアドレスを優先して書込み対象とするメモリコントローラが提案されている(例えば、特許文献1参照。)。1回の書込みによるメモリセルの消耗の度合いを一定とすると、書込回数の少ないアドレスのメモリセルほど書込みによる消耗の度合いが低く、残りの寿命が長い。このため、書込回数の少ないアドレスにデータを優先して書き込むことにより、それぞれのメモリセルの消耗の度合いが平準化される。
特許第4863749号公報
しかしながら、上述の従来技術では、メモリセルの消耗の度合いを平準化することができないおそれがある。不揮発性メモリにおいては、温度が高いほど書込みに要する電圧が低くなり、また、温度が高いほどデータ保持特性(いわゆる、リテンション)が低下することが知られている。このため、温度によらず一定の電圧を用いて書込みを行うと、温度が高いメモリセルには必要以上の書込電圧が印加され、そのメモリセルの消耗の度合いが高くなる(すなわち、残りの書込回数が減少する)可能性がある。
ところが、上述のメモリコントローラでは、温度に関らず、書込みによる消耗の度合いを一定としてウェアレベリング処理を行っている。このため、メモリセルのそれぞれの温度に差があると、その差に応じてメモリセルのそれぞれの消耗の度合いにも差が生じ、その結果、消耗の度合いが平準化されなくなるという問題がある。
本技術はこのような状況に鑑みて生み出されたものであり、不揮発性メモリにおいて消耗の度合いを適切に平準化することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部とを具備するメモリ制御装置、および、メモリ制御方法である。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、上記消耗度が高いほど低く、上記温度が高いほど低い値を上記優先度として決定してもよい。これにより、消耗度が高いほど低く、温度が高いほど低い値が優先度として決定されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、上記消耗度が高いほど低く、上記温度が高いほど高い値を上記優先度として決定してもよい。これにより、消耗度が高いほど低く、温度が高いほど高い値が優先度として決定されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、所定の閾値温度を超える温度の上記測定領域に含まれる上記単位領域において上記優先度を所定の値に決定してもよい。これにより、所定の閾値温度を超える温度の測定領域に含まれる単位領域において優先度が所定の値に決定されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、上記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には上記優先度を決定してもよい。これにより、特徴量が所定量を超えた場合には優先度が決定されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、電源が投入されたときに上記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を上記優先度として決定してもよい。これにより、電源が投入されたときに特徴量が所定量を超えていない場合には所定の値が優先度として決定されるという作用をもたらす。
また、この第1の側面において、上記書込処理部により上記書込処理が実行されたときの上記単位領域の温度に応じた値を上記消耗度として上記優先度決定部に供給する消耗度供給部をさらに具備してもよい。これにより、書込処理が実行されたときの単位領域の温度に応じた値が消耗度として優先度決定部に供給されるという作用をもたらす。
また、この第1の側面において、上記複数の単位領域のうち上記消耗度の高い単位領域のデータと上記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより上記複数の単位領域の各々における上記消耗度を平準化するデータ交換処理部をさらに具備してもよい。これにより、データ交換処理の実行により複数の単位領域の各々における消耗度が平準化されるという作用をもたらす。
また、この第1の側面において、上記データ交換処理部は、上記消耗度取得部により上記消耗度が取得されるたびに上記複数の単位領域の各々の上記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して上記差分が上記所定の閾値より大きい場合に上記データ交換処理を実行してもよい。これにより、消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きい場合にデータ交換処理が実行されるという作用をもたらす。
また、この第1の側面において、上記データ交換処理部は、所定の温度を超えていない上記測定領域において上記データ交換処理を実行してもよい。これにより、所定の温度を超えてない測定領域においてデータ交換処理が実行されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、所定の周期が経過するたびに上記優先度を決定してもよい。これにより、所定の周期が経過するたびに優先度が決定されるという作用をもたらす。
また、この第1の側面において、前回優先度が決定されたときから上記一定周期が経過したときまでの上記メモリに対する書込回数である通算書込回数が所定回数より多い場合には上記優先度を決定してもよい。これにより、通算書込回数が所定回数より多い場合には優先度が決定されるという作用をもたらす。
また、この第1の側面において、上記優先度決定部は、前回優先度が決定されたときから上記一定周期が経過したときまでの上記メモリの消耗の度合いである通算消耗度が所定値より高い場合には上記優先度を決定してもよい。これにより、通算消耗度が所定値より高い場合には優先度が決定されるという作用をもたらす。
また、この第1の側面において、上記複数の単位領域の各々には物理アドレスが割り振られており、上記書込処理部は、上記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると上記優先度の高い単位領域の物理アドレスを優先して上記論理アドレスに割り当てて当該割り当てた物理アドレスを上記書込み先としてもよい。これにより、優先度の高い単位領域の物理アドレスが優先して論理アドレスに割り当ててられるという作用をもたらす。
また、本技術の第2の側面は、データの書込処理を指示するホストコンピュータと、それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として上記指示された書込処理を実行する書込処理部とを具備する情報処理システムである。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
また、本技術の第3の側面は、それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、上記複数の測定領域の各々で測定された温度を取得する温度取得部と、実行された書込処理により生じた上記単位領域の消耗の度合いである消耗度と上記単位領域を含む上記測定領域の温度とに応じて上記単位領域ごとの優先度を決定する優先度決定部と、上記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部とを具備するメモリシステムである。これにより、消耗度と温度とに応じて決定された優先度の高い単位領域が優先してデータの書込み先とされるという作用をもたらす。
本技術によれば、不揮発性メモリにおいて消耗の度合いを適切に平準化することができるという優れた効果を奏し得る。
第1の実施の形態における情報処理システムの一構成例を示すブロック図である。 第1の実施の形態における不揮発性メモリチップの一構成例を示すブロック図である。 第1の実施の形態におけるセルアレイの一構成例を示す図である。 第1の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。 第1の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第1の実施の形態における温度情報保持部に保持されるデータの一例を示す図である。 第1の実施の形態における書込回数保持部に保持されるデータの一例を示す図である。 第1の実施の形態における書込優先度保持部に保持されるデータの一例を示す図である。 第1の実施の形態における制御処理部の一構成例を示すブロック図である。 第1の実施の形態におけるアドレス変換テーブルの一例を示す図である。 第1の実施の形態におけるメモリコントローラの動作の一例を示すフローチャートである。 第1の実施の形態における書込優先度決定処理を示すフローチャートである。 第1の実施の形態におけるライト処理の一例を示すフローチャートである。 第1の実施の形態におけるデータ交換処理の一例を示すフローチャートである。 第1の実施の形態の第1の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。 第1の実施の形態の第2の変形例における制御処理部の動作の一例を示すフローチャートである。 第1の実施の形態の第2の変形例における書込優先度決定部の動作の一例を示すフローチャートである。 第1の実施の形態の第4の変形例におけるデータ交換処理の一例を示すフローチャートである。 第1の実施の形態の第5の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。 第1の実施の形態の第6の変形例におけるメモリコントローラの動作の一例を示すフローチャートである。 第2の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 第2の実施の形態における消耗度テーブルの一例を示す図である。 第2の実施の形態における累計消耗度保持部に保持されるデータの一例を示す図である。 第2の実施の形態における制御処理部の一構成例を示すブロック図である。 第2の実施の形態における書込優先度決定処理の一例を示すフローチャートである。 第2の実施の形態におけるライト処理の一例を示すフローチャートである。 第2の実施の形態におけるデータ交換処理の一例を示すフローチャートである。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(書込回数と温度とに応じて書込優先度を決定する例)
2.第2の実施の形態(累計消耗度と温度とに応じて書込優先度を決定する例)
<1.第1の実施の形態>
[情報処理システムの構成例]
図1は、第1の実施の形態における情報処理システムの一構成例を示すブロック図である。この情報処理システムは、ホストコンピュータ100およびメモリシステム200を備える。このメモリシステム200は、メモリコントローラ300と複数の不揮発性メモリチップ400とを備える。
ホストコンピュータ100は、メモリシステム200を制御するものである。具体的には、ホストコンピュータ100は、アクセス先の論理アドレスを指定するコマンドを発行して、そのコマンドやデータを信号線109を介してメモリシステム200に供給する。また、ホストコンピュータ100は、メモリシステム200から読み出されたデータを受け取る。ここで、コマンドは、メモリシステム200を制御するためのものであり、例えば、データのライト処理を指示するライトコマンドや、データのリード処理を指示するリードコマンドを含む。また、論理アドレスは、ホストコンピュータ100が定義するアドレス空間において、ホストコンピュータ100がメモリシステム200にアクセスする際のアクセス単位の領域ごとに割り振られたアドレスである。このアクセス単位の領域を以下、「セクタ」と称する。各々のセクタのサイズは、例えば、4KB(kilobyte)である。
メモリコントローラ300は、不揮発性メモリチップ400を制御するものである。このメモリコントローラ300は、論理アドレスを指定するライトコマンドを受け取る。また、メモリコントローラ300は、不揮発性メモリチップ400の各々から温度情報を受け取る。この温度情報は、不揮発性メモリチップにおいて測定された温度を示す情報である。メモリコントローラ300は、ライトコマンドに従って、温度情報を使用してライト処理を実行する。温度情報の使用方法の詳細については後述する。このライト処理においては、論理アドレスが物理アドレスに変換され、その物理アドレスにデータが書き込まれる。
ここで、物理アドレスは、メモリコントローラ300が不揮発性メモリチップ400にアクセスする際のアクセス単位ごとに不揮発性メモリチップ400において割り振られたアドレスである。メモリコントローラ300が不揮発性メモリチップ400にアクセスする単位は、例えば、セクタと同一であるものとする。この場合、不揮発性メモリチップ400において、セクタごとに物理アドレスが割り当てられる。
例えば、メモリシステム200が不揮発性メモリチップ400を4つ備え、それぞれの容量が2GB(Gigabyte)である場合、合計の容量は16GBであり、メモリシステム200全体のセクタ数は222個となる。この場合、メモリシステム200は、22ビットの論理アドレスおよび物理アドレスにより管理される。
また、メモリコントローラ300は、論理アドレスを指定するリードコマンドを受け取ると、その論理アドレスを物理アドレスに変換し、その物理アドレスからデータを読み出す。そして、メモリコントローラ300は、読み出したデータをリードデータとしてホストコンピュータ100に出力する。
なお、メモリコントローラ300によるアクセス単位のサイズをホストコンピュータ100によるアクセス単位と同一としているが、異なるサイズとしてもよい。
[不揮発性メモリチップの構成例]
不揮発性メモリチップ400は、メモリコントローラ300の制御に従ってデータを保持するものである。
図2は、不揮発性メモリチップ400の一構成例を示すブロック図である。この不揮発性メモリチップ400は、制御インターフェース410と、不揮発性メモリ制御部420と、複数のセルアレイ430と、各々のセルアレイ430に設けられた温度センサ440とを備える。
制御インターフェース410は、メモリコントローラ300との間でコマンド、ライトデータ、リードデータ、および、温度情報などをやりとりするインターフェースである。
不揮発性メモリ制御部420は、不揮発性メモリチップ400の各々を制御するものである。この不揮発性メモリ制御部420は、ライトコマンドに従って、セルアレイ430にデータを書込み、リードコマンドに従ってセルアレイ430からデータを読み出す。また、不揮発性メモリ制御部420は、それぞれの温度センサ440の測定値を取得し、各々の測定値から温度情報を生成し、制御インターフェース410を介してメモリコントローラ300に出力する。
セルアレイ430は、アレイ状に配列された複数のメモリセルを含むものである。各々のメモリセルとして、例えば、可変抵抗素子を用いるReRAM(Resistance RAM)が用いられる。なお、不揮発性の記憶素子であれば、ReRAM以外のメモリセルを使用してもよい。例えば、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)を使用してもよい。
温度センサ440は、セルアレイ430の温度を測定するものである。温度の測定は、例えば、一定の周期で行われる。それぞれの温度センサ440は、温度の測定値を不揮発性メモリ制御部420に供給する。
なお、セルアレイ430ごとに温度センサ440が設けられる構成としているが、メモリシステム200全体で複数の測定領域の温度を測定することができるのであれば、この構成に限定されない。例えば、複数のセルアレイ430に対して1つの温度センサ440を設けてもよいし、1つのセルアレイ430を複数の測定領域に分割して、それぞれの領域に温度センサ440を設けてもよい。また、不揮発性メモリチップ400全体を1つの測定領域として、不揮発性メモリチップ400ごとに1つの温度センサ440を設けてもよい。
[セルアレイの構成例]
図3は、セルアレイ430の一構成例を示す図である。セルアレイ430は、n(nは2以上の整数)個のセクタを有し、それぞれのセクタは、セクタのサイズに応じた個数の複数のメモリセルを有する。そして、セクタごとに物理アドレスが割り振られる。
[メモリコントローラの構成例]
図4は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、RAM(Random Access Memory)301、CPU(Central Processing Unit)302、ECC処理部303およびROM(Read Only Memory)304を備える。また、メモリコントローラ300は、ホストインターフェース305、バス306および不揮発性メモリインターフェース307を備える。
RAM301は、CPU302が実行する処理において必要となるデータを一時的に保持するものである。CPU302は、メモリコントローラ300全体を制御するものである。
ECC処理部303は、ライトデータを符号化し、また、リードデータを復号するものである。このECC処理部303は、例えば、ライトデータの誤りを検出および訂正するための冗長データを生成し、ライトデータおよび冗長データからなる符号にライトデータを変換(すなわち、符号化)する。また、ECC処理部303は、その冗長データを使用して、リードデータにおける誤りを検出および訂正する。
ROM304は、CPU302が実行するプログラム等を記憶するものである。ホストインターフェース305は、ホストコンピュータ100との間でデータやコマンドを相互に交換するものである。バス306は、RAM301、CPU302、ECC処理部303、ROM304、ホストインターフェース305および不揮発性メモリインターフェース307が相互にデータを交換するための共通の経路である。不揮発性メモリインターフェース307は、不揮発性メモリチップ400との間でライトデータ、リードデータ、コマンド、および、温度情報を相互に交換するものである。
図5は、第1の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。このメモリコントローラ300は、温度情報取得部311、温度情報保持部312、書込回数供給部313、書込回数保持部314、書込優先度決定部315、書込優先度保持部316、および、制御処理部320を備える。図5における機能の各々は、図4における構成の各々により実現される。
温度情報取得部311は、不揮発性メモリチップ400により生成されたセルアレイごとの温度情報を取得するものである。温度情報取得部311は、取得した温度情報を温度情報保持部312に保持させる。温度情報保持部312は、セルアレイごとの温度情報を保持するものである。なお、温度情報取得部311は、特許請求の範囲に記載の温度取得部の一例である。
書込回数供給部313は、セクタごとの書込回数を供給するものである。書込回数供給部313は、制御処理部320から、データが書き込まれたアドレスである書込アドレスを受け取るたびに、書込アドレスに対応するセクタの書込回数をカウントアップする。書込回数供給部313は、その計数値を書込回数保持部314に保持させる。また、書込回数供給部313は、書込アドレスを受け取るたびに、最後に書込優先度を計算した時点から現在までのメモリシステム200への書込回数である通算書込回数をカウントアップして書込回数保持部314に保持させる。書込回数保持部314は、通算書込回数とセクタごとの書込回数とを保持するものである。
書込優先度決定部315は、セクタの消耗度とセクタの温度とに応じてセクタごとに書込優先度を決定するものである。ここで、書込優先度は、データを書き込む際のそれぞれのセクタの優先順位を示すものであり、書込優先度が高いセクタに対して優先してデータが書き込まれる。
メモリセルの温度が一定であれば、ライト処理1回当たりの消耗の度合いは一定であるから、消耗度は、書込回数の増加に比例して高くなる。このため、例えば、書込回数が消耗度として用いられる。書込優先度決定部315は、書込回数と温度とに応じて、例えば、次の式1を使用してセクタ毎に書込優先度を決定する。
Figure 2014098978
式1において、Pは優先度を求める対象である対象セクタの書込優先度であり、αは、メモリセルの特性によって定められる所定の係数である。また、Tは、対象セクタを含むセルアレイの温度であり、Nは、対象セクタの書込回数である。Tの単位は、例えば、度(℃)である。
式1の使用により、消耗度(例えば、書込回数)が高いほど低く、温度が高いほど低い値の書込優先度が求められる。この書込優先度の高いメモリセルに優先してデータを書き込むことにより、メモリセルの消耗が適切に平準化される。
なお、書込回数が多いほど低く、温度が高いほど低い値の書込優先度が得られるのであれば、書込優先度決定部315は、式1以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部315は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式1などを使用して書込回数および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部315に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
ここで、式1などにより適切な書込優先度が得られる根拠について説明する。不揮発性メモリでは、データの書込みに必要な書込電圧が、温度が高いほど低くなることが知られている。例えば、150℃において必要な書込電圧は、25℃において必要な書込電圧の0.6倍程度となる。このため、想定温度(25℃など)より高い温度(150℃など)になったときにおいて、想定温度のときの書込電圧でメモリセルを書き込むと、書込電圧が過剰であるためにメモリセルの消耗の度合いが高くなるおそれがある。また、温度が高いほどデータ保持特性が低下することが知られている。これらから、温度が高いほど、実行されるライト処理によるメモリセルの消耗度が高くなることが予測される。したがって、温度が高いセクタほど、書込優先度を低くすることが望ましい。
一方、書込回数が多いほど、今までの消耗の度合いが高いことが推測されるため、書込回数が多いセクタほど書込優先度を低くすることが望ましい。以上より、温度が高いほど、また、書込回数が多いほど、書込優先度を低くすることにより、適切に消耗が平準化される。
例えば、25℃の環境下において、10万回の書込寿命が保証されたメモリセルAおよびBを考える。このメモリセルAおよびBのそれぞれに1万回データを書き込むと、温度条件が同じであれば、いずれのメモリセルにおいても、残りの寿命は9万回と推測される。
しかし、メモリセルAおよびBのそれぞれの温度が異なる場合、今後のライト処理による消耗が同一とならず、残りの寿命が同一とならないおそれがある。例えば、メモリセルAの温度はメモリセルBよりも高いものとする。この状態において、書込回数はメモリセルA、Bとも1万回であるものの、前述したように温度の上昇に伴ってライト処理による消耗度が高くなる傾向があるため、メモリセルAにおいて、今後の消耗が大きくなり、残りの寿命は9万回より短くなるおそれがある。このため、書込回数のみに基づいて、メモリセルAおよびBの書込優先度を同じ値にして書込みを行うと、メモリセルAの方が先に寿命が尽きてしまうおそれがある。そこで、メモリコントローラ300が式1などを使用して、これからの消耗が少なくなる方の低温のメモリセルBにおいて優先的に書込みを行うことにより、メモリセルの消耗度を適切に平準化することができる。
書込優先度決定部315は、セクタごとに決定した書込優先度を書込優先度保持部316に保持させる。また、書込優先度決定部315は、書込優先度を算出した場合に書込回数保持部314における通算書込回数を初期値(例えば、0)に更新する。書込優先度保持部316は、セクタごとの書込優先度を保持するものである。
制御処理部320は、書込優先度の高いセクタを優先してデータの書込先として書込処理を行うものである。具体的には、制御処理部320は、ライトコマンドが発行されると、そのコマンドにより指定された論理アドレスに、空きのセクタのうち書込優先度の高いセクタの物理アドレスを優先して割り当てる。そして、制御処理部320は、その割り当てた物理アドレスにデータを書き込み、そのアドレスを書込アドレスとして書込回数供給部313に出力する。
ここで、使用中のセクタは、論理アドレスに割り当てる対象とはならないため、使用中のセクタにおいて特定のセクタに書込みが集中すると、そのセクタの消耗のみが進んで、各々のセクタの消耗度が平準化されなくなるおそれがある。そこで、制御処理部320は、書込回数の異なるセクタの各々に書き込まれたデータを互いに入れ替えるデータ交換処理をさらに実行することが望ましい。これにより、書込み頻度の高いデータは、消耗度(例えば、書込回数)の高いセクタに移動し、書込み頻度の低いデータは、消耗度(例えば、書込回数)の低いセクタに移動する。データ交換後は、消耗度の低いセクタに煩雑に書込みが行われて消耗が進むようになり、消耗度の高いセクタでは書込みが少なく消耗があまり進行しなくなる。この結果、消耗度が平準化される。
データ交換処理において、制御処理部320は、書込回数の多いセクタと少ないセクタとの間で、データを交換する。例えば、使用中のセクタのうち、書込回数が最大のセクタと最小のセクタとの間でデータが交換される。制御処理部320は、データを交換したセクタのそれぞれのアドレスを書込アドレスとして書込回数供給部313に出力する。
図6は、第1の実施の形態における温度情報保持部312に保持される温度情報の一例を示す図である。この温度情報保持部312には、不揮発性メモリチップ400内のセルアレイ430ごとに取得された温度情報が保持される。例えば、メモリシステム200内の不揮発性メモリチップ400の個数が4個であり、不揮発性メモリチップ400内のセルアレイ430の個数がm個である場合、温度情報保持部312内に、4m個の温度情報が保持される。
図7は、第1の実施の形態における書込回数保持部314に保持されるデータの一例を示す図である。この書込回数保持部314には、不揮発性メモリチップ400内のセクタごとに書込回数が保持される。例えば、メモリシステム200内のセルアレイ430の個数が4m個であり、セルアレイ430ごとのセクタ数がn個である場合、セクタ数は4m×n個となり、4m×n個の書込回数が保持される。また、書込回数保持部314には、通算書込回数が保持される。
図8は、第1の実施の形態における書込優先度保持部316に保持されるデータの一例を示す図である。この書込優先度保持部316には、不揮発性メモリチップ400内のセクタごとに書込回数が保持される。例えば、メモリシステム200内のセクタ数が4m×n個である場合、4m×n個の書込優先度が保持される。
[制御処理部の構成例]
図9は、第1の実施の形態における制御処理部320の一構成例を示すブロック図である。この制御処理部320は、書込処理部321、アドレス変換テーブル322、および、データ交換処理部323を備える。
書込処理部321は、書込優先度の高いセクタを優先して書込み先として書込処理を行うものである。この書込処理部321は、ホストコンピュータ100からライトコマンドを受け取ると、アドレス変換テーブル322を参照して、そのライトコマンドにより指定された論理アドレスに物理アドレスが割り当てられているか否かを判断する。割当てがあれば、書込処理部321は、対応する物理アドレスにライトデータを書き込む。一方、割当てがなければ、書込処理部321は、空いている物理アドレスのうち、書込優先度が高いセクタを優先して論理アドレスに割り当て、その物理アドレスにライトデータを書き込む。また、書込処理部321は、物理アドレスの割当てに基づいて、アドレス変換テーブル322を更新する。アドレス変換テーブル322は、論理アドレスと物理アドレスとを対応付けて保持するものである。
データ交換処理部323は、データ交換処理を実行するものである。データ交換処理部323は、データの書込みが行われるたびに、データ交換処理を実行するか否かを判断する。例えば、データ交換処理部323は、セクタのそれぞれの書込回数の最大値と最小値との差分を算出し、その差分が所定の閾値W1を超えるか否かにより、データ交換処理を実行するか否かを判断する。
データ交換処理を実行する場合、データ交換処理部323は、例えば、書込回数が最大のセクタと最小のセクタとの間でデータを交換する。具体的には、データ交換処理部323は書込回数が最大のセクタの物理アドレスPAmaxと最小のセクタの物理アドレスPAmimとからデータを読み出して保持する。そして、データ交換処理部323は、物理アドレスPAmaxから読み出したデータを物理アドレスPAmimに書き込み、物理アドレスPAmimから読み出したデータを物理アドレスPAmaxに書き込む。また、データ交換処理部323は、交換前において物理アドレスPAmaxに対応していた論理アドレスに、物理アドレスPAmimを割り当て、交換前において物理アドレスPAminに対応していた論理アドレスに、物理アドレスPAmaxを割り当てる。
なお、データ交換処理は、消耗度(例えば、書込回数)の異なる複数のセクタでデータを交換する処理であれば、書込回数が最大のセクタと最小のセクタとの間でデータを交換する処理に限定されない。データ交換処理部323は、例えば、書込回数の平均値を求め、その平均値のM(Mは1より大きな実数)倍以上の書込回数のセクタと、平均値のN(Nは1未満の実数)倍以下の書込回数のセクタとの間でデータ交換を行ってもよい。
[アドレス変換テーブルの構成例]
図10は、第1の実施の形態におけるアドレス変換テーブル322の一例を示す図である。アドレス変換テーブル322には、例えば、論理アドレスごとに、物理アドレスと、割当ての有無を示す情報とが保持される。割当ての有無は、論理アドレスに物理アドレスが割り当てられているか否かを示すものである。初期状態は、割当て無しの状態である。データの書込みが行われるときに論理アドレスに物理アドレスが割り当てられていない場合には、論理アドレスに物理アドレスが割り当てられる。
また、アドレス変換テーブル322には、物理アドレスごとに、その物理アドレスのステータスを示す情報が保持される。このステータスは、物理アドレスの使用状況などを示すものであり、例えば、「使用中」、「空き」および「不良」のいずれかを示す。「使用中」は、そのステータスの物理アドレスに論理アドレスが割り当てられてデータが書き込まれていることを示す。「空き」は、そのステータスの物理アドレスにデータが書き込まれていないことを示す。「不良」は、そのステータスの物理アドレスに対応するセクタが、寿命の尽きた不良セクタであることを示す。
書込処理部321は、ライトコマンドにより指定された論理アドレスについて、物理アドレスの割当てがあるか否かを判断する。割当てがなければ、書込処理部321は、空きのステータスの物理アドレスのうち最も書込優先度の高いものを物理アドレスに割り当て、論理アドレスに対応付けて保持させる。
例えば、論理アドレスLAに物理アドレスが割り当てられておらず、物理アドレスPAを含む複数の物理アドレスが空きのステータスであり、そのうち物理アドレスPAの書込優先度が最も高い場合を考える。論理アドレスLAを指定するライトコマンドが発行されると、メモリコントローラ300は、空きの物理アドレスの中から、書込優先度が最も高い物理アドレスPAを論理アドレスLAに割り当てる。アドレス変換テーブル322には、論理アドレスLAに対応付けて、物理アドレスPAと、割当て有りを示す情報とが保持される。また、物理アドレスPAのステータスは「使用中」に更新される。
[メモリコントローラの動作例]
図11は、第1の実施の形態におけるメモリコントローラ300の動作の一例を示すフローチャートである。この動作は、例えば、メモリコントローラ300に電源が投入されたときに開始する。メモリコントローラ300は、電源投入時である場合と、前回の書込優先度決定処理の実行時から一定の周期が経過した場合とのいずれかに該当するか否かを判断する(ステップS901)。
ここで、一般に、ライトコマンドやリードコマンドは、ホストからの命令に対し、即応性が高いことが要求される。このため、図11のフローチャートにおいて、ライトコマンドやリードコマンドに対して求められる応答時間は、例えば、ナノ秒やマイクロ秒の単位の時間である。一方、書込優先度については、短く見積もってもミリ秒単位の時間でしか、書込優先度が顕著に変化しないように式1を定義しておけば十分に消耗度が平準化される。このため、書込優先度の更新は、S901のように一定周期ごとに行うことが適切と考えられる。
電源投入時である場合、または、一定の周期が経過した場合(ステップS901:Yes)、メモリコントローラ300は、セクタごとの書込優先度を決定するための書込優先度決定処理を実行する(ステップS910)。
電源投入時でなく、かつ、一定の周期が経過してもいない場合(ステップS901:No)、または、ステップS910の後、メモリコントローラ300は、ホストコンピュータ100からライトコマンドを受信したか否かを判断する(ステップS902)。
ライトコマンドを受信したのであれば(ステップS902:Yes)、メモリコントローラ300は、不揮発性メモリチップ400にデータを書き込む処理であるライト処理を実行する(ステップS920)。そして、メモリコントローラ300は、書込優先度が異なる物理アドレスの各々に書き込まれたデータを互いに入れ替える処理であるデータ交換処理を実行する(ステップS930)。
ライトコマンドを受信していない場合(ステップS902:No)、または、ステップS930の後、メモリコントローラ300は、ホストコンピュータ100からリードコマンドを受信したか否かを判断する(ステップS903)。リードコマンドを受信したのであれば(ステップS903:Yes)、メモリコントローラ300は、リードコマンドで指定された論理アドレスに対応する物理アドレスからデータを読み出すリード処理を実行する。メモリコントローラ300は、読み出したデータをリードデータとしてホストコンピュータ100に出力する(ステップS904)。
リードコマンドを受信していない場合(ステップS903:No)、または、ステップS904の後、メモリコントローラ300は、ステップS901に戻る。
図12は、第1の実施の形態における書込優先度決定処理の一例を示すフローチャートである。メモリコントローラ300における書込優先度決定部315は、各々のセクタの温度情報を温度情報保持部312から読み出すことにより取得する(ステップS911)。そして、書込優先度決定部315は、セルアレイの温度の最大値と最小値との差分を求め、その差分が閾値T1を越えている否かを判断する(ステップS912)。差分が閾値T1を越えていれば(ステップS912:Yes)、書込優先度決定部315は、最後に書込優先度を計算した時点から現在までのメモリシステム200への通算書込回数を書込回数保持部314から読み出すことにより取得する(ステップS913)。そして、書込優先度決定部315は、通算書込回数が閾値W1'を越えているか否かを判断する(ステップS914)。通算書込回数が閾値W1'を越えていれば(ステップS914:Yes)、書込優先度決定部315は、各々のセクタの書込回数を書込回数保持部314から読み出すことにより取得する(ステップS915)。書込優先度決定部315は、式1などを使用して、温度と書込回数とに応じてセクタごとの書込優先度を決定して書込優先度保持部316に保持させる。また、書込優先度決定部315は、通算書込回数を初期値(例えば、0)にする(ステップS916)。ステップS912およびS914を実行することにより、書込優先度を算出する頻度を低減することができる。差分が閾値T1未満である場合(ステップS912:No)、通算書込回数が閾値W1'以下である場合(ステップS914:No)、または、ステップS915の後、書込優先度決定部315は、書込優先度決定処理を終了する。
なお、ステップS912において、温度の最大値と最小値との差分が閾値T1より大きいか否かを判断しているが、温度分布から算出された特徴量であれば、差分以外の特徴量が閾値T1を超えているか否かを判断してもよい。特徴量としては、最大値と最小値との差分のほか、温度の最大値や最小値が用いられる。また、書込優先度決定部315は、特徴量(例えば、差分)が閾値T1を越えており、かつ、通算書込回数が閾値W1'を越えている場合に、書込優先度を算出している。しかし、書込優先度決定部315は、特徴量が閾値T1を越えている場合、または、通算書込回数が閾値W1'を越えている場合に、書込優先度を算出する構成としてもよい。さらに、書込優先度決定部315は、ステップS912とステップS914を必ずしも実行する必要はなく、ステップS912およびステップS914のいずれか一方のみを実行する構成や、いずれも実行しない構成としてもよい。ここで、通算書込回数を閾値と比較するステップS914を実行しない場合には、その通算書込回数を取得するためのステップS913も実行する必要はなくなる。
図13は、第1の実施の形態におけるライト処理の一例を示すフローチャートである。メモリコントローラ300における制御処理部320は、アドレス変換テーブル322を参照して、ライトコマンドにより指定された論理アドレスに対応する物理アドレスがあるか否かを判断する(ステップS921)。
対応する物理アドレスがない場合(ステップS921:No)、制御処理部320は、書込優先度の高い空きのセクタの物理アドレスを優先して、指定された論理アドレスに割り当てる(ステップS922)。
対応する物理アドレスがある場合(ステップS921:Yes)、または、ステップS922の後、制御処理部320は、指定された論理アドレスに対応する物理アドレスへのデータの書込みを行う(ステップS923)。そして、制御処理部320は、書込みを行った物理アドレスを書込回数供給部313に通知する。書込回数供給部313は、書込回数保持部314に保持された、その物理アドレスの書込回数を更新する。また、書込回数供給部313は、書込回数保持部314に保持された通算書込回数を更新する(ステップS924)。ステップS924の後、制御処理部320は、ライト処理を終了する。
図14は、第1の実施の形態におけるデータ交換処理の一例を示すフローチャートである。制御処理部320は、データが書き込まれたセクタの各々の書込回数のうち最大値と最小値とを求めて、それらの差分を算出する(ステップS931)。制御処理部320は、算出した差分が所定の閾値W1を超えているか否かを判断する(ステップS932)。
差分が閾値W1を超えていれば(ステップS932:Yes)、制御処理部320は、書込回数の多いセクタと少ないセクタとの間でデータを交換する(ステップS933)。制御処理部320は、データを交換したセクタのそれぞれの書込回数を更新する(ステップS934)。
差分が閾値W1未満の場合(ステップS932:No)、または、ステップS934の後、制御処理部320は、データ交換処理を終了する。
このように、本技術の第1の実施の形態によれば、メモリコントローラ300は、消耗度と温度とに応じて決定した書込優先度の高いセクタを書込み先として、データを書き込むことができる。実行されるライト処理による消耗度が温度に応じて変わるため、温度とこれまでの消耗度とに応じてデータを書き込むことにより、それぞれのセクタの消耗度を適切に平準化することができる。
[第1の変形例]
第1の実施の形態では、メモリコントローラ300は、ライト処理のたびにデータ交換処理を実行する構成としていたが、ライト処理の実行頻度の増大に応じてデータ交換処理の実行頻度も増大し、メモリセルの消耗が進むおそれがある。このため、メモリコントローラ300は、データ交換処理を一定の周期で行ってもよい。第1の変形例のメモリコントローラ300は、一定の周期でデータ交換処理を実行する点において第1の実施の形態と異なる。
図15は、第1の変形例のメモリコントローラ300の動作の一例を示すフローチャートである。変形例のメモリコントローラ300の動作は、データ交換処理(ステップS930)を、ライト処理(ステップS920)の後ではなく、一定の周期で実行する点において第1の実施の形態と異なる。具体的には、一定の周期が経過すると(ステップS901:Yes)、メモリコントローラ300は、書込優先度決定処理(ステップS910)を実行し、ライト処理(ステップS930)を実行する。
[第2の変形例]
第1の実施の形態では、メモリコントローラ300は、書込優先度決定処理とライト処理やリード処理などのアクセス制御処理とを順に実行していたが、書込優先度決定処理とアクセス制御処理とを並列に実行してもよい。第2の変形例のメモリコントローラ300は、書込優先度決定処理とアクセス制御処理とを並列に実行する点において第1の実施の形態と異なる。
具体的には、制御処理部320が図16に例示するようにアクセス制御処理およびデータ交換処理を実行し、その一方で書込優先度決定部315が図17に例示するように書込優先度決定を一定周期で実行する。
図16は、第2の変形例の制御処理部320の動作の一例を示すフローチャートである。この動作は、ステップS901およびS910を実行しない点以外は、図11に例示したメモリコントローラ300の動作と同様である。
図17は、第2の変形例の書込優先度決定部315の動作の一例を示すフローチャートである。この動作は、ステップS902、S903、S904、S920およびS930を実行しない点以外は図11に例示したメモリコントローラ300の動作と同様である。
なお、第1の変形例においても、第2の変形例と同様に、制御処理部320は、アクセス制御処理およびデータ交換処理と優先度決定処理とを並列に実行してもよい。
[第3の変形例]
第1の実施の形態では、メモリコントローラ300は、温度が高いほど書込優先度を低くしていたが、逆に温度が高いほど書込優先度を高くしてもよい。第3の変形例のメモリコントローラ300は、温度が高いほど書込優先度を高くする点において第1の実施の形態と異なる。
具体的には、書込優先度決定部315は、式1の代わりに次の式2を使用して書込優先度を算出する。
Figure 2014098978
式2において、P'は優先度を求める対象である対象セクタの書込優先度であり、αは、メモリセルの特性によって定められる所定の係数である。また、Tは、対象セクタを含むセルアレイの温度であり、Nは、対象セクタの書込回数である。Tの単位は、例えば、度(℃)である。
式2の使用により、消耗度(例えば、書込回数)が高いほど低く、温度が高いほど高い値の書込優先度が求められる。ここで、メモリセルの温度が高いほど、一度の書込みに要する時間(いわゆるレイテンシ)が短くなることが知られている。このため、式2などを使用して、温度が高いほど書込優先度を高くすることにより、消耗度を平準化しつつ、書込みにおけるレイテンシを短くする(言い換えれば、アクセス速度を早くする)ことができる。
なお、書込回数が多いほど低く、温度が高いほど高い値の書込優先度が得られるのであれば、書込優先度決定部315は、式2以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部315は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式2などを使用して書込回数および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部315に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
また、メモリセルが規定の特性を満たし、安全に動作することが保証される温度閾値Tmaxを越えると、そのメモリセルにおいて書込み時に許容値を越える数のエラーが発生してデータが正常に書き込まれないおそれがある。そこで、書込優先度決定部315は、セルアレイの温度がTmaxを越えている場合には、そのセルアレイのセクタの優先度を最小にしてもよい。具体的には、書込優先度決定部315は式2の代わりに次の式3を使用して書込優先度を算出する。これにより、過熱によりデータが正常に書き込まれなくなることが防止される。
Figure 2014098978
[第4の変形例]
第1の実施の形態では、メモリコントローラ300は、セルアレイの温度に関りなくデータ交換処理を実行していたが、所定の温度以下のセルアレイにおいてデータ交換処理を実行することもできる。第4の変形例のメモリコントローラ300は、所定の温度以下のセルアレイにおいてデータ交換処理を実行する点において第1の実施の形態と異なる。
図18は、第4の変形例におけるデータ交換処理の一例を示すフローチャートである。第4の変形例のデータ交換処理は、ステップS931およびS933の代わりにステップS961、S962およびS963を実行する点において図14に例示した第1の実施の形態と異なる。
制御処理部320は、各々のセルアレイの温度情報を温度情報保持部312から取得して、温度が所定温度以下のセルアレイの識別番号を保持しておく(ステップS961)。制御処理部320は、保持した識別番号を参照し、その識別番号のセルアレイ内のセクタにおける書込回数のうち最大値と最小値とを求めて、それらの差分を算出する(ステップS962)。そして、制御処理部320は、算出した差分が所定の閾値W1を超えているか否かを判断する(ステップS932)。差分が閾値W1を超えていれば(ステップS932:Yes)、制御処理部320は、保持した識別番号を参照し、その識別番号のセルアレイ内のセクタのうち、書込回数の多いセクタと少ないセクタとの間でデータを交換する(ステップS963)。そして、制御処理部320は、ステップS934を実行する。
前述したように、温度が高いほどメモリセルの消耗度が高くなるため、温度が所定温度より高いメモリセルを避けてデータ交換処理を実行することにより、消耗度がより適切に平準化される。
[第5の変形例]
第1の実施の形態では、メモリコントローラ300は、電源投入時に書込優先度を初期化していなかったが、電源投入時に規定値(例えば、0)に書込優先度を初期化してもよい。第5の変形例のメモリコントローラ300は、電源投入時に書込優先度を初期化する点において第1の実施の形態と異なる。
図19は、第5の変形例のメモリコントローラ300の動作の一例を示すフローチャートである。第5の変形例のメモリコントローラ300の動作は、ステップS901の代わりにステップS905およびS906を実行する点において図11に例示した第1の実施の形態と異なる。
電源が投入されると、メモリコントローラ300は、規定値により各セクタの書込優先度を初期化する(ステップS905)。そして、メモリコントローラ300は、前回の書込優先度決定処理の実行時または初期化時から一定周期が経過したか否かを判断する(ステップS906)。一定周期が経過したのであれば(ステップS906:Yes)、メモリコントローラ300は、ステップS910を実行し、一定周期が経過していなければ(ステップS906:No)、メモリコントローラ300は、ステップS902を実行する。
なお、ステップS905においてメモリコントローラ300は、規定値を初期値としているが、電源遮断前に最後に決定された書込優先度を初期値としてもよい。この場合、例えば、メモリコントローラ300は、不揮発性のメモリからなる書込優先度記憶部をさらに具備し、電源が遮断されると、書込優先度保持部316に保持された書込優先度の各々を読み出して書込優先度記憶部に記憶しておく。そして、メモリコントローラ300は、電源投入時に、書込優先度記憶部から書込優先度を読み出して、初期値として書込優先度保持部316に保持させる。
[第6の変形例]
第1の実施の形態では、メモリコントローラ300は、電源投入時に書込優先度を初期化していなかったが、電源投入時に所定の温度条件が満たされたときに書込優先度を初期化してもよい。第6の変形例のメモリコントローラ300は、電源投入時に所定の温度条件が満たされたときに書込優先度を初期化する点において第1の実施の形態と異なる。
図20は、第6の変形例のメモリコントローラ300の動作の一例を示すフローチャートである。第5の変形例のメモリコントローラ300の動作は、ステップS901の代わりにステップS905、S906、S907およびS908を実行する点において図11に例示した第1の実施の形態と異なる。
電源が投入されると、メモリコントローラ300は、各々のセルアレイの温度情報を温度情報保持部312から取得する(ステップS907)。書込優先度決定部315は、セルアレイの温度の特徴量(最大値と最小値との差分など)を求め、その差分が閾値T1を越えている否かを判断する(ステップS908)。差分が閾値T1を越えていなければ(ステップS908:No)、メモリコントローラ300は、規定値により各セクタの書込優先度を初期化する(ステップS905)。そして、メモリコントローラ300は、前回の書込優先度決定処理の実行時または初期化時から一定周期が経過したか否かを判断する(ステップS906)。
差分が閾値T1を越えていた場合(ステップS908:Yes)、または、一定周期が経過した場合(ステップS905:Yes)、メモリコントローラ300は、ステップS910を実行する。一定周期が経過していなければ(ステップS905:No)、メモリコントローラ300は、ステップS902を実行する。
<2.第2の実施の形態>
[メモリコントローラの構成例]
第1の実施の形態では、ライト処理の各々において温度が一定であると想定して、書込回数自体を消耗度として用いていたが、実際にはライト処理の各々の時点の温度が異なることがある。ライト処理の各々において温度が異なる場合には、ライト処理ごとの消耗度も異なる値となる。したがって、ライト処理ごとに、そのときの温度に応じた消耗度を求めることが望ましい。第2の実施の形態のメモリコントローラ300は、ライト処理ごとに、そのときの温度に応じた消耗度を求める点において第1の実施の形態と異なる。
図21は、第2の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。第2の実施の形態のメモリコントローラ300は、書込回数供給部313および書込回数保持部314の代わりに消耗度テーブル317、累計消耗度供給部318、および、累計消耗度保持部319を備える点において第1の実施の形態と異なる。
消耗度テーブル317は、温度ごとに1回のライト処理による消耗度を保持するテーブルである。前述したように、メモリセルにおいて、温度が高いほど寿命は短くなり、1回のライト処理による消耗度は高くなる傾向がある。この傾向に基づいて、例えば、温度ごとの寿命を予め求めておき、その寿命が低いほど高い値が1回のライト処理における消耗度として消耗度テーブルに保持される。例えば、ある温度における寿命の逆数に比例した値が、その温度の消耗度として保持される。
累計消耗度供給部318は、セクタごとに、ライト処理の各々における消耗度を累計した値を累計消耗度として供給するものである。累計消耗度供給部318は、制御処理部320から書込アドレスを受け取ると、その書込アドレスに対応するセクタの温度を温度情報保持部312から読み出す。そして、累計消耗度供給部318は、読み出した温度に対応する消耗度を消耗度テーブル317から取得する。そして、累計消耗度供給部318は、その書込アドレスに対応するセクタの累計消耗度に、取得した消耗度を加えた値を新たな累計消耗度として算出し、累計消耗度保持部319に保持させる。また、累計消耗度供給部318は、書込アドレスを受け取るたびに、最後に書込優先度を計算した時点から現在までのメモリシステム200における消耗度の累計である通算消耗度を更新して累計消耗度保持部319に保持させる。累計消耗度保持部319は、通算消耗度とセクタごとの累計消耗度とを保持するものである。
なお、累計消耗度供給部318は、特許請求の範囲に記載の消耗度供給部の一例である。また、累計消耗度供給部318は、温度に応じた消耗度を消耗度テーブル317から取得する構成としているが、この構成に限定されない。例えば、累計消耗度供給部318は、温度をXとし、消耗度をYとして所定の関数Y(X)を定義し、そのY(X)を使用して、温度から消耗度を算出してもよい。Y(X)の各係数の値は、例えば、測定された複数の(X,Y)との誤差が最も少なくなる値を求める関数近似法により求められる。
第2の実施の形態の書込優先度決定部315は、累計消耗度と温度とに応じた値を書込優先度としてセクタごとに求める。書込優先度決定部315は、例えば、次の式4を使用してセクタ毎に書込優先度を決定する。また、書込優先度決定部315は、書込優先度を算出した場合に累計消耗度保持部319における通算消耗度を初期値(例えば、0)に更新する。
Figure 2014098978
式4において、Pは優先度を求める対象である対象セクタの書込優先度であり、αはメモリセルの特性によって定められる所定の係数である。また、Tは、対象セクタを含むセルアレイの温度であり、Wは、対象セクタの累計消耗度である。
前述したように1回のライト処理によるメモリセルの消耗度は一定でなく、温度が高いほど高くなる傾向にある。このため、メモリコントローラ300は、ライト処理の実行のたびに温度に応じた消耗度を取得することにより、これまでのライト処理による消耗度を正確に求めることができる。
なお、累計消耗度が多いほど低く、温度が高いほど低い値の書込優先度が得られるのであれば、書込優先度決定部315は、式4以外の数式により、書込優先度を求めてもよい。また、書込優先度決定部315は数式を使用して書込優先度を算出する構成としているが、この構成に限定されない。例えば、予め式4などを使用して累計消耗度および温度の組合せごとに書込優先度を求めておき、その組合せと書込優先度とを対応付けたテーブルを書込優先度決定部315に保持しておき、そのテーブルを参照して書込優先度を取得してもよい。
図22は、第2の実施の形態における消耗度テーブル317の一例を示す図である。消耗度テーブル317には、温度ごとに、その温度の書込寿命の逆数を、必要に応じて正規化した値が一回のライト処理における消耗度として保持される。正規化は、例えば、ある温度の書込寿命を基準として行われる。
温度が20℃のメモリセルにおいて寿命が100万回であり、温度が30℃のメモリセルにおいて寿命が80万回である場合を考える。この場合、例えば、20℃のときの寿命を基準として、それぞれの寿命の逆数に、20℃のときの寿命を乗じることにより正規化が行われる。この結果、100万回の逆数を正規化した1.00が20℃のときの消耗度として保持され、80万回の逆数を正規化した1.25が30℃のときの消耗度として保持される。
図23は、第2の実施の形態における累計消耗度保持部319に保持されるデータの一例を示す図である。この累計消耗度保持部319には、不揮発性メモリチップ400内のセクタごとに累計消耗度が保持される。例えば、メモリシステム200内のセクタ数が4m×n個である場合、4m×n個の累計消耗度が保持される。また、累計消耗度保持部319には、通算消耗度が保持される。
図24は、第2の実施の形態における制御処理部320の一構成例を示すブロック図である。第2の実施の形態の制御処理部320の構成は、データ交換処理部323の代わりにデータ交換処理部324を備える点において第1の実施の形態と異なる。
データ交換処理部324の構成は、書込回数の代わりに累計消耗度をセクタごとに取得し、それらの最大値と最小値との差分が所定の閾値W2を超えるか否かにより、データ交換処理を実行するか否かを判断する点において第1の実施の形態と異なる。
図25は、第2の実施の形態における書込優先度決定処理の一例を示すフローチャートである。第2の実施の形態の書込優先度決定処理は、ステップS913、S914およびS915の代わりにステップS917、S918およびS919を実行する点において第1の実施の形態と異なる。
書込優先度決定部315は、温度情報の取得(ステップS911)の後、セルアレイの温度の特徴量(最大値と最小値との差分など)が閾値T2を越えている否かを判断する(ステップS912)。差分が閾値T2を越えていれば(ステップS912:Yes)、書込優先度決定部315は、最後に書込優先度を計算した時点から現在までのメモリシステム200における通算消耗度を累計消耗度保持部319から取得する(ステップS917)。そして、書込優先度決定部315は、通算消耗度が閾値W2'を越えている否かを判断する(ステップS918)。通算消耗度が閾値W2'を越えるのであれば(ステップS918:Yes)、書込優先度決定部315は、各々のセクタの累計消耗度を累計消耗度保持部319から取得する(ステップS919)。書込優先度決定部315は、式4などを使用して、温度と累計消耗度とに応じてセクタごとの書込優先度を決定して書込優先度保持部316に保持させる。また、書込優先度決定部315は、通算消耗度を初期値(例えば、0)にする(ステップS916)。ステップS912およびS918を実行することにより、書込優先度を算出する頻度を低減することができる。差分が閾値T2未満である場合(ステップS912:No)、通算消耗度数が閾値W2'未満である場合(ステップS918:No)、または、ステップS919の後、書込優先度決定部315は、書込優先度決定処理を終了する。
なお、書込優先度決定部315は、特徴量(例えば、差分)が閾値T2を越えており、かつ、通算消耗度が閾値W2'を越えている場合に、書込優先度を算出している。しかし、書込優先度決定部315は、特徴量が閾値T2を越えている場合、または、通算消耗度が閾値W2'を越えている場合に、書込優先度を算出する構成としてもよい。さらに、書込優先度決定部315は、ステップS912およびステップS918を必ずしも実行する必要はなく、ステップS912およびステップS918のいずれか一方のみを実行する構成や、いずれも実行しない構成としてもよい。ここで、通算消耗度を閾値と比較するステップS918を実行しない場合には、その通算消耗度を取得するためのステップS917も実行する必要はなくなる。
図26は、第2の実施の形態におけるライト処理の一例を示すフローチャートである。第2の実施の形態のライト処理は、ステップS924の代わりにステップS925乃至S927を実行する点において第1の実施の形態と異なる。制御処理部320は、データの書込み(ステップS923)の後、データの書込み先のセクタの温度を温度情報保持部312から取得する(ステップS925)。制御処理部320は、取得した温度に対応する消耗度を消耗度テーブル317から取得する(ステップS926)。そして、制御処理部320は、書込みを行った物理アドレスを累計消耗度供給部318に通知する。累計消耗度供給部318は、累計消耗度保持部319に保持された、その物理アドレスの累計消耗度を更新する。また、累計消耗度供給部318は、累計消耗度保持部319に保持された通算消耗度を更新する(ステップS927)。ステップS927の後、制御処理部320は、ライト処理を終了する。
図27は、第2の実施の形態におけるデータ交換処理の一例を示すフローチャートである。制御処理部320は、セクタの各々の累計消耗度のうち最大値と最小値とを求めて、それらの差分を算出する(ステップS935)。制御処理部320は、算出した差分が所定の閾値W2を超えているか否かを判断する(ステップS936)。
差分が閾値W2を超えていれば(ステップS936:Yes)、制御処理部320は、累計消耗度の多いセクタと少ないセクタとの間でデータを交換する(ステップS937)。制御処理部320は、データを交換したセクタのそれぞれの温度を温度情報保持部312から取得する(ステップS938)。制御処理部320は、取得した温度のそれぞれに対応する消耗度を消耗度テーブル317から取得する(ステップS939)。制御処理部320は、取得した消耗度に基づいて、データを交換したセクタのそれぞれの累計消耗度を更新する(ステップS940)。
差分が閾値W2未満の場合(ステップS936:No)、または、ステップS940の後、制御処理部320は、データ交換処理を終了する。
なお、第2の実施の形態においても、第1の実施の形態と同様に、第1乃至第6の変形例を適用することができる。図18に例示した第4の変形例を図27に例示した第2の実施形態のデータ交換処理に適用する場合、S961で温度情報を取得済みであるため、ステップS938は省略することができる。
このように、本技術の第2の実施の形態によれば、メモリコントローラ300は、ライト処理が実行されたときの温度に応じた値を消耗度として求めるため、ライト処理ごとに温度が異なる場合であっても、これまでの消耗度を正確に求めることができる。これにより、メモリセルの各々の消耗度が適切に平準化される。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disk)、メモリカード、ブルーレイディスク(Blu-ray Disc(登録商標))等を用いることができる。
なお、本技術は以下のような構成もとることができる。
(1)それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリ制御装置。
(2)前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど低い値を前記優先度として決定する
前記(1)記載のメモリ制御装置。
(3)前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど高い値を前記優先度として決定する
前記(1)記載のメモリ制御装置。
(4)前記優先度決定部は、所定の閾値温度を超える温度の前記測定領域に含まれる前記単位領域において前記優先度を所定の値に決定する
前記(3)記載のメモリ制御装置。
(5)前記優先度決定部は、前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には前記優先度を決定する
前記(1)乃至(4)のいずれかに記載のメモリ制御装置。
(6)前記優先度決定部は、電源が投入されたときに前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を前記優先度として決定する
前記(1)乃至(5)のいずれかに記載のメモリ制御装置。
(7)前記書込処理部により前記書込処理が実行されたときの前記単位領域の温度に応じた値を前記消耗度として前記優先度決定部に供給する消耗度供給部をさらに具備する
前記(1)乃至(6)のいずれかに記載のメモリ制御装置。
(8)前記複数の単位領域のうち前記消耗度の高い単位領域のデータと前記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより前記複数の単位領域の各々における前記消耗度を平準化するデータ交換処理部をさらに具備する
前記(7)記載のメモリ制御装置。
(9)前記データ交換処理部は、前記消耗度取得部により前記消耗度が取得されるたびに前記複数の単位領域の各々の前記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して前記差分が前記所定の閾値より大きい場合に前記データ交換処理を実行する
前記(8)記載のメモリ制御装置。
(10)前記データ交換処理部は、所定の温度を超えていない前記測定領域において前記データ交換処理を実行する
前記(8)記載のメモリ制御装置。
(11)前記優先度決定部は、所定の周期が経過するたびに前記優先度を決定する
前記(1)乃至(9)のいずれかに記載のメモリ制御装置。
(12)前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリに対する書込回数である通算書込回数が所定回数より多い場合には前記優先度を決定する
前記(11)記載のメモリ制御装置。
(13)前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリの消耗の度合いである通算消耗度が所定値より高い場合には前記優先度を決定する
前記(11)記載のメモリ制御装置。
(14)前記複数の単位領域の各々には物理アドレスが割り振られており、
前記書込処理部は、前記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると前記優先度の高い単位領域の物理アドレスを優先して前記論理アドレスに割り当てて当該割り当てた物理アドレスを前記書込み先とする
前記(1)乃至(13)のいずれかに記載のメモリ制御装置。
(15)それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
を具備するメモリシステム。
(16)データの書込処理を指示するホストコンピュータと、
それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
前記優先度の高い単位領域を優先してデータの書込み先として前記指示された書込処理を実行する書込処理部と
を具備する情報処理システム。
(17)それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、前記複数の測定領域の各々で測定された温度を取得する温度取得手順と、
優先度決定部が、実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定手順と、
書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理手順と
を具備するメモリ制御方法。
100 ホストコンピュータ
200 メモリシステム
300 メモリコントローラ
301 RAM
302 CPU
303 ECC処理部
304 ROM
305 ホストインターフェース
306 バス
307 不揮発性メモリインターフェース
311 温度情報取得部
312 温度情報保持部
313 書込回数供給部
314 書込回数保持部
315 書込優先度決定部
316 書込優先度保持部
317 消耗度テーブル
318 累計消耗度供給部
319 累計消耗度保持部
320 制御処理部
321 書込制御部
322 アドレス変換テーブル
323、324 データ交換処理部
400 不揮発性メモリチップ
410 制御インターフェース
420 不揮発性メモリ制御部
430 セルアレイ
440 温度センサ

Claims (17)

  1. それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
    実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
    前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
    を具備するメモリ制御装置。
  2. 前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど低い値を前記優先度として決定する
    請求項1記載のメモリ制御装置。
  3. 前記優先度決定部は、前記消耗度が高いほど低く、前記温度が高いほど高い値を前記優先度として決定する
    請求項1記載のメモリ制御装置。
  4. 前記優先度決定部は、所定の閾値温度を超える温度の前記測定領域に含まれる前記単位領域において前記優先度を所定の値に決定する
    請求項3記載のメモリ制御装置。
  5. 前記優先度決定部は、前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えた場合には前記優先度を決定する
    請求項1記載のメモリ制御装置。
  6. 前記優先度決定部は、電源が投入されたときに前記測定領域の温度に基づいて特徴量を求めて当該特徴量が所定量を超えていない場合には所定の値を前記優先度として決定する
    請求項1記載のメモリ制御装置。
  7. 前記書込処理部により前記書込処理が実行されたときの前記単位領域の温度に応じた値を前記消耗度として前記優先度決定部に供給する消耗度供給部をさらに具備する
    請求項1記載のメモリ制御装置。
  8. 前記複数の単位領域のうち前記消耗度の高い単位領域のデータと前記消耗度の低い単位領域のデータとを互いに入れ替えるデータ交換処理を実行することにより前記複数の単位領域の各々における前記消耗度を平準化するデータ交換処理部をさらに具備する
    請求項7記載のメモリ制御装置。
  9. 前記データ交換処理部は、前記消耗度取得部により前記消耗度が取得されるたびに前記複数の単位領域の各々の前記消耗度のうちの最大値と最小値との間の差分が所定の閾値より大きいか否かを判断して前記差分が前記所定の閾値より大きい場合に前記データ交換処理を実行する
    請求項8記載のメモリ制御装置。
  10. 前記データ交換処理部は、所定の温度を超えていない前記測定領域において前記データ交換処理を実行する
    請求項8記載のメモリ制御装置。
  11. 前記優先度決定部は、所定の周期が経過するたびに前記優先度を決定する
    請求項1記載のメモリ制御装置。
  12. 前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリに対する書込回数である通算書込回数が所定回数より多い場合には前記優先度を決定する
    請求項11記載のメモリ制御装置。
  13. 前記優先度決定部は、前回優先度が決定されたときから前記一定周期が経過したときまでの前記メモリの消耗の度合いである通算消耗度が所定値より高い場合には前記優先度を決定する
    請求項11記載のメモリ制御装置。
  14. 前記複数の単位領域の各々には物理アドレスが割り振られており、
    前記書込処理部は、前記物理アドレスが割り当てられていない論理アドレスへのデータの書込みが指示されると前記優先度の高い単位領域の物理アドレスを優先して前記論理アドレスに割り当てて当該割り当てた物理アドレスを前記書込み先とする
    請求項1記載のメモリ制御装置。
  15. それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
    前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
    実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
    前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理部と
    を具備するメモリシステム。
  16. データの書込処理を指示するホストコンピュータと、
    それぞれが複数の単位領域を含む複数の測定領域を有するメモリと、
    前記複数の測定領域の各々で測定された温度を取得する温度取得部と、
    実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定部と、
    前記優先度の高い単位領域を優先してデータの書込み先として前記指示された書込処理を実行する書込処理部と
    を具備する情報処理システム。
  17. それぞれが複数の単位領域を含む複数の測定領域を有するメモリにおいて温度取得部が、前記複数の測定領域の各々で測定された温度を取得する温度取得手順と、
    優先度決定部が、実行された書込処理により生じた前記単位領域の消耗の度合いである消耗度と前記単位領域を含む前記測定領域の温度とに応じて前記単位領域ごとの優先度を決定する優先度決定手順と、
    書込処理部が、前記優先度の高い単位領域を優先してデータの書込み先として書込処理を実行する書込処理手順と
    を具備するメモリ制御方法。
JP2012249435A 2012-11-13 2012-11-13 メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法 Pending JP2014098978A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012249435A JP2014098978A (ja) 2012-11-13 2012-11-13 メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US14/039,000 US9135165B2 (en) 2012-11-13 2013-09-27 Memory control apparatus, memory system, information processing system, and memory control method
CN201310542744.1A CN103810110B (zh) 2012-11-13 2013-11-05 存储器控制装置、存储器系统和信息处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012249435A JP2014098978A (ja) 2012-11-13 2012-11-13 メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2014098978A true JP2014098978A (ja) 2014-05-29

Family

ID=50682849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012249435A Pending JP2014098978A (ja) 2012-11-13 2012-11-13 メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法

Country Status (3)

Country Link
US (1) US9135165B2 (ja)
JP (1) JP2014098978A (ja)
CN (1) CN103810110B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016212745A (ja) * 2015-05-12 2016-12-15 株式会社東芝 半導体装置
JP2020046761A (ja) * 2018-09-14 2020-03-26 株式会社東芝 管理装置、情報処理装置およびメモリ制御方法
JP2020144974A (ja) * 2017-11-16 2020-09-10 慧榮科技股▲分▼有限公司 メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ
JP2023509125A (ja) * 2020-01-02 2023-03-07 レベル スリー コミュニケーションズ,エルエルシー 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法
DE112021008365T5 (de) 2021-12-14 2024-08-08 Hitachi Astemo, Ltd. Elektronische fahrzeugbordvorrichtung und lebensdauer-vorhersageverfahren für nichtflüchtigen speicher

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9395924B2 (en) * 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9703505B2 (en) * 2013-12-30 2017-07-11 Teradata Us, Inc. Management of data in multi-storage systems that can include non-volatile and volatile storages
US9177654B2 (en) * 2014-03-26 2015-11-03 Burst Corporation Solid-state memory device with plurality of memory cards
US9760136B2 (en) * 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US10073629B2 (en) 2016-12-13 2018-09-11 International Business Machines Corporation Memory transaction prioritization
US9799387B1 (en) * 2016-12-21 2017-10-24 Globalfoundries Singapore Pte. Ltd. Integrated circuits with programmable memory cells and methods for programming the same
US10909271B2 (en) * 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
CN108563397B (zh) 2018-01-04 2021-08-24 威盛电子股份有限公司 存储装置以及数据保存方法
US11516042B2 (en) * 2018-07-19 2022-11-29 Panasonic Intellectual Property Management Co., Ltd. In-vehicle detection system and control method thereof
US11264086B2 (en) * 2019-09-02 2022-03-01 SK Hynix Inc. Memory controller and operating method thereof
KR20210055376A (ko) * 2019-11-07 2021-05-17 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN111813339B (zh) * 2020-07-03 2023-08-15 深圳市国微电子有限公司 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US20030081337A1 (en) * 2001-10-31 2003-05-01 Kazushi Tanimoto Method and apparatus for controlling write operation in a disk drive
JP4477429B2 (ja) * 2003-11-05 2010-06-09 富士通マイクロエレクトロニクス株式会社 半導体集積回路
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US8078918B2 (en) * 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
JP4575484B2 (ja) * 2008-09-26 2010-11-04 株式会社東芝 記憶装置及び記憶装置の制御方法
JP4844639B2 (ja) * 2009-02-19 2011-12-28 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4843693B2 (ja) * 2009-03-30 2011-12-21 株式会社東芝 記憶装置
US8051241B2 (en) * 2009-05-07 2011-11-01 Seagate Technology Llc Wear leveling technique for storage devices
CN101587745B (zh) * 2009-06-23 2012-11-07 成都市华为赛门铁克科技有限公司 数据读写方法和非易失性存储介质
KR101662273B1 (ko) * 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
WO2011065957A1 (en) * 2009-11-30 2011-06-03 Hewlett-Packard Development Company, L.P. Remapping for memory wear leveling
CN102141943A (zh) * 2010-01-28 2011-08-03 建兴电子科技股份有限公司 闪存装置及其数据保护方法
US8213255B2 (en) * 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
US8356137B2 (en) * 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority
KR101080191B1 (ko) * 2010-03-18 2011-11-07 스티븐 상근 오 웨어레벨링 방법
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US9798654B2 (en) * 2011-09-15 2017-10-24 International Business Machines Corporation Retention management for phase change memory lifetime improvement through application and hardware profile matching
US9690694B2 (en) * 2011-09-27 2017-06-27 Sandisk Technologies, Llc Apparatus, system, and method for an address translation layer
JP2013122793A (ja) * 2011-12-09 2013-06-20 Toshiba Corp 不揮発性半導体記憶装置
US20130290611A1 (en) * 2012-03-23 2013-10-31 Violin Memory Inc. Power management in a flash memory
US20130282962A1 (en) * 2012-04-20 2013-10-24 SMART Storage Systems, Inc. Storage control system with flash configuration and method of operation thereof
JP5787840B2 (ja) * 2012-07-26 2015-09-30 株式会社東芝 記憶システムおよび記憶システムのデータ書き込み方法
US8873323B2 (en) * 2012-08-16 2014-10-28 Transcend Information, Inc. Method of executing wear leveling in a flash memory device according to ambient temperature information and related flash memory device
US8902669B2 (en) * 2012-11-08 2014-12-02 SanDisk Technologies, Inc. Flash memory with data retention bias
KR101431215B1 (ko) * 2012-12-04 2014-08-19 성균관대학교산학협력단 반도체 메모리 장치, 리프레쉬 방법 및 시스템
US20140172325A1 (en) * 2012-12-14 2014-06-19 Virtium Technology, Inc. Life monitoring in solid-state drive
US9396755B2 (en) * 2013-02-20 2016-07-19 Kabushiki Kaisha Toshiba Temperature-defined data-storage policy for a hybrid disk drive

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016212745A (ja) * 2015-05-12 2016-12-15 株式会社東芝 半導体装置
JP2020144974A (ja) * 2017-11-16 2020-09-10 慧榮科技股▲分▼有限公司 メモリデバイスにおけるリフレッシュ管理を実行するための方法、関連するメモリデバイス及びそのコントローラ
JP2020046761A (ja) * 2018-09-14 2020-03-26 株式会社東芝 管理装置、情報処理装置およびメモリ制御方法
JP2023509125A (ja) * 2020-01-02 2023-03-07 レベル スリー コミュニケーションズ,エルエルシー 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法
JP7318899B2 (ja) 2020-01-02 2023-08-01 レベル スリー コミュニケーションズ,エルエルシー 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法
DE112021008365T5 (de) 2021-12-14 2024-08-08 Hitachi Astemo, Ltd. Elektronische fahrzeugbordvorrichtung und lebensdauer-vorhersageverfahren für nichtflüchtigen speicher

Also Published As

Publication number Publication date
CN103810110B (zh) 2017-07-11
US9135165B2 (en) 2015-09-15
CN103810110A (zh) 2014-05-21
US20140136752A1 (en) 2014-05-15

Similar Documents

Publication Publication Date Title
JP2014098978A (ja) メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US9465537B2 (en) Memory system and method of controlling memory system
US9263088B2 (en) Data management for a data storage device using a last resort zone
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5923844B2 (ja) ソリッドステートドライブのメモリ装置への論理的アドレスの適応マッピング
US9798654B2 (en) Retention management for phase change memory lifetime improvement through application and hardware profile matching
JP6139807B2 (ja) ストレージ装置、ストレージ装置の制御方法、及びプログラムを記憶するコンピュータ読み取り可能な不揮発性記憶媒体
JP6149598B2 (ja) 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR101952001B1 (ko) 저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템 및 그 동작 방법
WO2013191977A2 (en) Variability aware wear leveling
US20130290600A1 (en) Data storage based upon temperature considerations
JP5768654B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US20170147216A1 (en) Method and system for memory management and memory storage device thereof
US20100257307A1 (en) Data management method and flash memory storage system and controller using the same
US20190391914A1 (en) Memory management method and storage controller
US20150268859A1 (en) Memory controller, storage apparatus, information processing system, and control method for the same
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2011070346A (ja) メモリシステム
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20170003897A1 (en) Memory management method, memory control circuit unit and memory storage apparatus
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP6711281B2 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP5447617B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法
JP2013068993A (ja) メモリコントローラ