JP6497393B2 - メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 - Google Patents
メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 Download PDFInfo
- Publication number
- JP6497393B2 JP6497393B2 JP2016556464A JP2016556464A JP6497393B2 JP 6497393 B2 JP6497393 B2 JP 6497393B2 JP 2016556464 A JP2016556464 A JP 2016556464A JP 2016556464 A JP2016556464 A JP 2016556464A JP 6497393 B2 JP6497393 B2 JP 6497393B2
- Authority
- JP
- Japan
- Prior art keywords
- write
- writing
- refresh
- page
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0026—Bit-line or column circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0035—Evaluating degradation, retention or wearout, e.g. by counting writing cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/401—Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C2211/406—Refreshing of dynamic cells
- G11C2211/4061—Calibration or ate or cycle tuning
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/79—Array wherein the access device being a transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/82—Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
Description
本技術は、メモリコントローラに関する。詳しくは、不揮発メモリに対するデータの書込みを行うメモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法に関する。
従来、情報処理システムの記憶装置に不揮発メモリが使用されている。この不揮発メモリには、EEPROM(Electrically Erasable and Programmable Read Only Memory)やReRAM(Resistance Random Access Memory)などが該当する。これらの不揮発メモリは、電源がオフとなって、電力の供給が絶たれた場合であっても、記憶されたデータを維持することができる。
しかし、これらの不揮発メモリにおいて、記憶されたデータが破壊される現象が知られている。例えば、ReRAMは、メモリセル内の記憶素子の抵抗値を高抵抗の状態または低抵抗の状態とし、これらの抵抗値の状態を論理値に対応させてデータの記憶を行うメモリである。この記憶素子の抵抗値が時間の経過とともに変化し、上述した高抵抗の状態および低抵抗の状態を判別することができなくなる場合が生じる。この場合、記憶されたデータが破壊に至ることとなる。
この対策として、メモリセルに記憶されたデータをデータ一時保管領域に保管して、メモリセルの記憶データの消去を行う。その後、一時保管領域に保管されていたデータの書戻しを行う、いわゆるリフレッシュを行う記憶装置が提案されている(例えば、特許文献1参照。)。
上述の従来技術では、複数のメモリセルからなるデータ記憶ブロック毎にこのブロック内で行われた書換え回数をカウントする。このカウント値が所定の回数に達した場合に、ブロック単位で上述したリフレッシュを行っている。このため、ブロックのサイズに等しいサイズの一時保管領域が必要となり、メモリチップのサイズの増大を招くという問題があった。
本技術はこのような状況に鑑みて生み出されたものであり、データの一時保管を行うことなくリフレッシュを行い、不揮発メモリにおけるデータの破壊を防ぐことを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、上記保持された上記書込み回数情報に基づいて上記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、上記ページに対して書込みを行う際に上記判断の結果により上記リフレッシュが必要となる場合には上記書込みに加えて上記リフレッシュをさらに行う書込み制御部とを具備するメモリコントローラである。これにより、書込み回数情報に基づいて書込みの際にリフレッシュを行うという作用をもたらす。
また、この第1の側面において、上記書込み回数情報保持部は、上記ページ毎に上記書込み回数情報を保持してもよい。これにより、ページ毎に書込み回数情報が保持されるという作用をもたらす。
また、この第1の側面において、上記書込み回数情報保持部は、複数の上記ページからなるブロック毎に上記書込み回数情報を保持してもよい。これにより、ブロック毎に書込み回数情報が保持されるという作用をもたらす。
また、この第1の側面において、上記判断部は、上記保持された上記書込み回数情報が所定の閾値よりも大きい場合に上記リフレッシュが必要と判断してもよい。これにより、書込み回数が所定の閾値よりも大きい場合にリフレッシュが必要と判断されるという作用をもたらす。
また、この第1の側面において、上記書込み制御部は、上記ページに記憶されているデータの読出しを行って当該読み出したデータの各ビットの値を反転させたデータを上記ページに書き込むことにより上記リフレッシュを行ってもよい。これにより、記憶されているデータの反転データが書き込まれることによりリフレッシュが行われるという作用をもたらす。
また、この第1の側面において、上記書込み制御部は、全ビットが同一の値であるページサイズの第1のデータと上記第1のデータの全ビットを反転させた第2のデータとを上記ページに対して順に書き込むことにより上記リフレッシュを行ってもよい。これにより、全ビットが同一の値である第1のデータとこれを反転させた第2のデータとを順に書き込むことによりリフレッシュが行われるという作用をもたらす。
また、この第1の側面において、上記書込み回数のカウントを行い、上記書込み制御部において上記リフレッシュを伴わない上記書込みが行われた場合には上記カウントに基づく上記書込み回数により上記保持された上記書込み回数情報を更新し、上記書込み制御部において上記リフレッシュを伴う上記書込みが行われた場合には上記保持された上記書込み回数情報を初期化するカウント部をさらに具備してもよい。これにより、書込み回数のカウントが行われ、書込み制御部におけるリフレッシュの有無に基づいて書込み回数情報の更新または初期化が行われるという作用をもたらす。
また、この第1の側面において、上記ページ毎の書込みの累計回数である書込み累計回数情報を保持する書込み累計回数情報保持部と、上記保持された上記書込み累計回数情報に基づいて書込みの累計回数が多いページと書込みの累計回数が少ないページとの間で一方のページから読み出したデータを他方のページに書き込むデータ入替えを制御するデータ入替え制御部と、上記書込みの累計回数のカウントを行い、当該カウントに基づく上記書込みの累計回数により上記保持された上記書込み累計回数情報を更新する累計カウント部とをさらに具備し、上記判断部は、上記リフレッシュが必要か否かの判断を上記データ入替えの際にさらに行ってもよい。これにより、データ入替えにおける書込みの際にもリフレッシュが行われるという作用をもたらす。
また、本技術の第2の側面は、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、上記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、上記保持された上記書込み回数情報に基づいて上記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、上記ページに対して書込みを行う際に上記判断の結果により上記リフレッシュが必要となる場合には上記書込みに加えて上記リフレッシュをさらに行う書込み制御部とを具備する記憶装置である。これにより、書込み回数情報に基づいて書込みの際にリフレッシュを行うという作用をもたらす。
また、本技術の第3の側面は、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、上記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、上記保持された上記書込み回数情報に基づいて上記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、上記ページに対して書込みを行う際に上記判断の結果により上記リフレッシュが必要となる場合には上記書込みに加えて上記リフレッシュをさらに行う書込み制御部とを備える記憶装置と、上記記憶装置にアクセスするホストコンピュータとを具備する情報処理システムである。これにより、書込み回数情報に基づいて書込みの際にリフレッシュを行うという作用をもたらす。
また、本技術の第4の側面は、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報に基づいて上記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断手順と、上記ページに対して書込みを行う際に上記判断の結果により上記リフレッシュが必要となる場合には上記書込みに加えて上記リフレッシュをさらに行う書込み制御手順とを具備するメモリの制御方法である。これにより、書込み回数情報に基づいて書込みの際にリフレッシュを行うという作用をもたらす。
本技術によれば、データの一時保管を行うことなくリフレッシュを行い、不揮発メモリにおけるデータの破壊を防ぐという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(データを反転することによりリフレッシュを行う場合の例)
2.第2の実施の形態(全ビット「0」および全ビット「1」にすることによりリフレッシュを行う場合の例)
3.第3の実施の形態(メモリにおいてリフレッシュの制御を行う場合の例)
4.第4の実施の形態(ウェアレベリングを行う場合の例)
5.変形例
1.第1の実施の形態(データを反転することによりリフレッシュを行う場合の例)
2.第2の実施の形態(全ビット「0」および全ビット「1」にすることによりリフレッシュを行う場合の例)
3.第3の実施の形態(メモリにおいてリフレッシュの制御を行う場合の例)
4.第4の実施の形態(ウェアレベリングを行う場合の例)
5.変形例
[情報処理システムの構成]
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とを備える。
図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システムは、ホストコンピュータ100と、メモリコントローラ200と、メモリ300とを備える。
ホストコンピュータ100は、プロセッサ110と、メモリコントローラインターフェース109とを備える。このホストコンピュータ100は、画像処理等の処理を行うものである。このホストコンピュータ100は、メモリコントローラ200を介してメモリ300にアクセスする。この際、ホストコンピュータ100は、メモリコントローラ200に対して書込みまたは読出し等のコマンドを発行してアクセスを行う。
プロセッサ110は、ホストコンピュータ100の全体を制御するものである。メモリコントローラインターフェース109は、メモリコントローラ200との間のやり取りを行うものである。
メモリコントローラ200は、ホストインターフェース209と、制御部210と、メモリインターフェース208とを備える。このメモリコントローラ200は、メモリ300を制御するものである。また、このメモリコントローラ200は、ホストコンピュータ100が発行したコマンドを解釈し、メモリ300に対して書込みリクエストまたは読出しリクエストを要求する。
ホストインターフェース209は、ホストコンピュータ100との間のやり取りを行うものである。制御部210は、上述したコマンドに基づく制御等を行うものである。メモリインターフェース208は、メモリ300との間のやり取りを行うものである。
メモリ300は、メモリコントローラインターフェース309と、メモリデバイス制御部310と、メモリセルアレイ320とを備える。このメモリ300は、ホストコンピュータ100における処理に必要なデータの記憶を行うものである。
メモリコントローラインターフェース309は、メモリコントローラ200との間のやり取りを行うものである。メモリデバイス制御部310は、上述したリクエストに基づいてメモリセルアレイ320に対する書込みおよび読出しを制御するものである。メモリセルアレイ320は、2次元に配置されたメモリセルにより構成され、データの記憶を行うものである。このメモリセルアレイ320は、ページサイズにより分割されたページを単位としてページアドレスによりアクセスされる。このページは、例えば、2Kバイトの大きさである。なお、メモリセルアレイ320には、不揮発メモリであるReRAMを想定する。
[情報処理システムにおける書込みおよび読出し処理]
ホストコンピュータ100は、書込みを行う際に、書込みコマンドとこれに付随する書込みデータ、書込み先ページアドレスおよび書込みページ数をメモリコントローラ200に対して発行する。メモリコントローラ200の制御部210は、発行された書込みコマンドを解釈し、これに付随する書込みデータ、書込み先ページアドレスおよび書込みページ数に基づいてメモリ300に対して書込みリクエストを要求する。メモリ300のメモリデバイス制御部310は、このリクエストに基づいてメモリセルアレイ320に対して書込みを行う。
ホストコンピュータ100は、書込みを行う際に、書込みコマンドとこれに付随する書込みデータ、書込み先ページアドレスおよび書込みページ数をメモリコントローラ200に対して発行する。メモリコントローラ200の制御部210は、発行された書込みコマンドを解釈し、これに付随する書込みデータ、書込み先ページアドレスおよび書込みページ数に基づいてメモリ300に対して書込みリクエストを要求する。メモリ300のメモリデバイス制御部310は、このリクエストに基づいてメモリセルアレイ320に対して書込みを行う。
一方、読出しの際には、ホストコンピュータ100は、読出しコマンドとこれに付随する読出し先ページアドレスおよび読出しページ数をメモリコントローラ200に対して発行する。メモリコントローラ200の制御部210は、このコマンドを解釈して、これに付随する読出し先ページアドレスおよび読出しページ数に基づいてメモリ300に対して読出しリクエストを要求する。メモリ300のメモリデバイス制御部310は、このリクエストに基づいてメモリセルアレイ320から読出しを行い、読み出したデータをメモリコントローラ200に対して出力する。メモリコントローラ200の制御部210はこの出力されたデータをホストコンピュータ100に対して読出しデータとして出力する。
[メモリコントローラの制御部の構成]
図2は、本技術の第1の実施の形態における制御部210の構成例を示す図である。この制御部210は、読出し制御部211と、書込み制御部212と、ECC処理部213と、書込み回数情報保持部214と、カウント部215と、判断部216とを備える。なお、バス207は、上記制御部210の各部を相互に接続するものである。
図2は、本技術の第1の実施の形態における制御部210の構成例を示す図である。この制御部210は、読出し制御部211と、書込み制御部212と、ECC処理部213と、書込み回数情報保持部214と、カウント部215と、判断部216とを備える。なお、バス207は、上記制御部210の各部を相互に接続するものである。
読出し制御部211は、メモリ300に対するデータの読出しを行うものである。この読出し制御部211は、ホストコンピュータ100が発行した読出しコマンドに基づいて読出しリクエストを生成し、メモリ300に対して要求することにより読出しを行う。
書込み回数情報保持部214は、メモリ300に対する書込み回数を書込み回数情報として保持するものである。ここで、書込み回数とは、メモリ300のメモリセルアレイ320におけるページ毎の書込み回数である。書込み回数情報保持部214は、メモリセルアレイ320におけるページ数と同数の書込み回数情報を保持する。この書込み回数情報保持部214として、不揮発メモリにより構成されたメモリ装置を使用することができる。また、書込み回数情報保持部214として、SRAM等の揮発性メモリにより構成されたメモリ装置を使用してもよい。この場合には、メモリ300のメモリセルアレイ320内に書込み回数情報を保存する領域を設ける必要がある。そして、情報処理システムの起動時に、メモリコントローラ200は、メモリセルアレイ320から書込み回数情報を読み出して書込み回数情報保持部214に保持させる初期動作を行う。また、情報処理システムの停止の際には、メモリコントローラ200は、書込み回数情報保持部214から書込み回数情報を読み出してメモリセルアレイ320に保存する必要がある。
判断部216は、書込み回数情報保持部214に保持された書込み回数に基づいて、リフレッシュが必要か否かを判断するものである。ここで、リフレッシュとは、メモリセルアレイ320のページを構成する全てのメモリセルの値を反転させる処理である。リフレッシュが必要か否かの判断は、例えば、ページにおける書込み回数が所定の閾値よりも大きいか否かに基づいて行うことができる。
書込み制御部212は、メモリ300に対するデータの書込みを行うものである。また、この書込み制御部212は、書込みを行う際に判断部216の判断の結果によりリフレッシュが必要となる場合には書込みに加えてリフレッシュをさらに行う。書込み制御部212は、ホストコンピュータ100が発行した書込みコマンドに基づいて書込みリクエストを生成して、メモリ300に対して要求することにより書込みを行う。この書込みに加えてリフレッシュをさらに行う場合には、書込み制御部212は、書込みリクエストに代えて後述するリフレッシュ書込みリクエストをメモリ300に対して要求する。これらのリクエストに基づいて、メモリ300において書込みおよびリフレッシュが行われる。
カウント部215は、書込み回数のカウントを行い、書込み回数情報保持部214に保持された書込み回数情報の更新および初期化を行うものである。このカウント部215は、書込み制御部212においてリフレッシュを伴わない書込みが行われた場合には、書込み回数のカウントおよび書込み回数情報の更新を行う。この書込み回数のカウントは、例えば、次の手順により行うことができる。まず、カウント部215は、書込み回数情報保持部214から書込みが行われたページに対応する書込み回数の読出しを行う。次に、この読み出した書込み回数に値「1」を加算することによりカウントを行う。このカウントに基づく書込み回数は、新たな書込み回数情報として書込み回数情報保持部214に保持される。これにより、書込み回数情報の更新が行われる。
一方、書込み制御部212において書込みに加えてリフレッシュが行われた場合には、カウント部215は、書込み回数情報の初期化を行う。この書込み回数情報の初期化は、例えば、値「0」を新たな書込み回数情報として、書込み回数情報保持部214に保持させることにより行うことができる。
ECC処理部213は、ホストコンピュータ100から出力された書込みデータにパリティを付加してECC符号にする符号化と、ECC符号から元のデータを取り出す復号とを行うものである。この復号の際、データの誤りの訂正を行う。メモリ300に対する書込みを行う際には、書込み制御部212は、ECC処理部213に対して、書込みコマンドに付随する書込みデータのECC符号化を行わせる。書込み制御部212は、このECC符号化した書込みデータを新たな書込みデータとしてリクエストを生成し、メモリ300に対して要求する。また、メモリ300に対する読出しを行う際には、読出し制御部211は、読出しリクエストに基づいてメモリ300から出力されたデータに対する復号および誤りの訂正をECC処理部213に行わせる。その後、復号および誤りの訂正がされたデータを読出しデータとしてホストコンピュータ100に対して出力する。
なお、これら読出し制御部211等のメモリコントローラ200内の各ブロックは、専用のハードウェアにより構成される場合およびソフトウェアによりこれらの機能が実現される場合のどちらの形態であってもよい。
[メモリセルの構成]
図3は、本技術の第1の実施の形態におけるメモリセルの構成例を示す図である。同図は、メモリセルアレイ320であるReRAMのメモリセルの構成を表したものである。同図に表したように、記憶素子321およびMOSFET322により1ビットのメモリセル323が構成される。なお、MOSFET322は記憶素子321を駆動するトランジスタである。記憶素子321の一端は共通の信号線であるプレート線に接続され、記憶素子321の他端はMOSFET322のドレイン端子に接続されている。MOSFET322のゲート端子は複数のワード線の内の1本に接続され、ソース端子は複数のビット線の内の1本に接続されている。ワード線およびビット線は、メモリセル323を構成するMOSFET322に対してXYマトリクス状に配線されている。これにより、ワード線およびビッド線からそれぞれ1本を選択して信号を入力することにより、1個のメモリセル323が選択されてデータの書込みまたは読出しが行われる。例えば、同図において左端に記載されたメモリセル323を選択する場合には、ワード線#1およびビット線#1を選択する。
図3は、本技術の第1の実施の形態におけるメモリセルの構成例を示す図である。同図は、メモリセルアレイ320であるReRAMのメモリセルの構成を表したものである。同図に表したように、記憶素子321およびMOSFET322により1ビットのメモリセル323が構成される。なお、MOSFET322は記憶素子321を駆動するトランジスタである。記憶素子321の一端は共通の信号線であるプレート線に接続され、記憶素子321の他端はMOSFET322のドレイン端子に接続されている。MOSFET322のゲート端子は複数のワード線の内の1本に接続され、ソース端子は複数のビット線の内の1本に接続されている。ワード線およびビット線は、メモリセル323を構成するMOSFET322に対してXYマトリクス状に配線されている。これにより、ワード線およびビッド線からそれぞれ1本を選択して信号を入力することにより、1個のメモリセル323が選択されてデータの書込みまたは読出しが行われる。例えば、同図において左端に記載されたメモリセル323を選択する場合には、ワード線#1およびビット線#1を選択する。
記憶素子321は、データを記憶する素子である。この記憶素子321は、印加された電圧の極性により抵抗値が変化する。例えば、記憶素子321のプレート線に接続された端子を基準として、記憶素子321の他の端子に正の極性となる電圧(書込み電圧)を印加することにより記憶素子321を高抵抗の状態にすることができる。逆に、記憶素子321の他の端子に負の極性となる書込み電圧を印加することにより記憶素子321を低抵抗の状態にすることができる。なお、以後の説明では、高抵抗の状態をHRS(High Resistance State)、低抵抗の状態をLRS(Low Resistance State)と称する。これら2つの状態を論理値に対応させて、データの記憶が行われる。例えば、記憶素子321がLRSの場合を値「0」、記憶素子321がHRSの場合を値「1」とすることができる。また、記憶素子321のLRSおよびHRSの2つの状態は、電源の供給が無くても保持される。
同図の左端のメモリセル323を例に挙げて、メモリセル323に対する書込み方法について説明する。メモリセル323に値「1」書き込む際には、ワード線#1にオン電圧を印加してMOSFET322をオン状態にするとともに、ビット線#1にプレート線に対して正の極性となる書込み電圧を印加する。これにより、記憶素子321は、HRSとなり、値「1」が書き込まれる。一方、メモリセル323に値「0」書き込む際には、ワード線#1にオン電圧を印加するとともに、ビット線#1にプレート線に対して負の極性となる電圧を印加する。これにより、記憶素子321は、LRSとなり、値「0」が書き込まれる。このようにして、メモリセル323に対する書込みを行うことができる。
なお、上述した書込みは、複数のメモリセル323に対して同時に行われる。例えば、ワード線#1にオン電圧を印加し、ビット線#1乃至#nに対して書込みデータに応じた極性の電圧を印加する。これにより、ワード線#1に接続されたn個のメモリセル323に対して書込みを行うことができる。この1度の書込み処理により書込み可能なメモリセル323の数が前述したページサイズに該当する。
なお、メモリセル323に対するデータの読出しは、記憶素子321に対して書込み電圧より低い電圧を印加して流れる電流を測定し、LRSおよびHRSを判断することにより行う。
記憶素子321には、書込みに対して寿命が存在する。すなわち、書込みを繰り返すと、記憶素子321自体が破壊に至る。そのため、不必要な書込みを減らす必要があり、ReRAMにおいては、次のような書込み処理が行われる。まず、書込みに先立ってメモリセルに記憶されているデータを読み出すプレリードを行う。書込みデータとプレリードにより得られたデータ(以下、プレリードデータと称する。)とが異なる場合にのみ当該メモリセルに対する書込みを行う。このような書込み処理により、不必要な書込みを防ぎ、書込みに起因する記憶素子321の早期の破壊を回避することができる。
一方、記憶素子321は、その抵抗値が時間の経過とともに変化する。例えば、値「1」を書き込んでHRSとしていた記憶素子321の抵抗値が時間の経過とともに低下してLRSおよびHRSを判断するための閾値に近い値に変化する。このような場合、データの読出しを行っても、事前に書き込んだデータの正常な読出しができないおそれがある。このように、ReRAMには、上述した記憶素子321の破壊とは別に、時間の経過に伴う記憶データの破壊が発生する。これを防止するため、記憶データの再書込みを行ってデータの書直しを行う必要がある。しかし、上述のように、プレリードデータと書込みデータとが異なるビットにのみ書込みが行われるため、メモリセルに記憶されたデータを再度書き込んでも、このデータの書直しは実行されない。そこで、メモリセルに記憶されている値を反転させる処理であるリフレッシュを行う必要がある。
このリフレッシュはデータの書込み後に当該データの破壊を生じる時間が経過する前に実行する必要がある。しかし、同じページに属するメモリセルであっても書込み後の経過時間が異なる状態が発生する。プレリードデータと書込みデータとが異なるビットにのみ書込みが行われるためである。例えば、ページに対してm回の書込みを行った場合、各ビットにおける書込み回数は0乃至mの範囲でばらつくことになる。このような場合であっても記憶素子321における記憶データの破壊を防ぐため、ページ毎の書込み回数を保持し、この書込み回数が所定の閾値を超えた場合に、当該ページに対してリフレッシュを行う。この閾値は、ページにおけるメモリセルのデータが1度も書き換えられなかった場合を想定し、データの破壊に至る時間に基づいて設定する必要がある。このリフレッシュを行うため、メモリコントローラ200は、リフレッシュ書込みリクエストをメモリ300に対して要求する。
[書込み方法]
図4は、本技術の第1の実施の形態におけるデータの書込みを示す図である。同図は、メモリデバイス制御部310が行う書込み処理である書込み処理401を表したものである。メモリデバイス制御部310は、メモリコントローラ200からの書込みリクエストに基づいて書込み処理401を実行する。便宜上、ページサイズは8ビットを想定する。なお、同図においては、書込みデータをW、プレリードデータをRと表現している。書込み処理401は、セット処理およびリセット処理により行うことができる。ここで、セット処理とは、書込み対象のビットの値を「1」から「0」に変更する処理である。また、リセット処理とは、書込み対象のビットの値を「0」から「1」に変更する処理である。これらはいずれもマスクデータに基づいて行われる。このマスクデータは、ページサイズとおなじサイズであり、ページにおけるセット処理またはリセット処理の対象となるビットの位置を特定するためのデータである。同図においては、マスクデータにおける値「0」のビットに対応するページのビットに対してセット処理またはリセット処理が行われ、マスクデータにおける値「1」のビットに対応するページのビットに対しては、これらの処理が行われない。
図4は、本技術の第1の実施の形態におけるデータの書込みを示す図である。同図は、メモリデバイス制御部310が行う書込み処理である書込み処理401を表したものである。メモリデバイス制御部310は、メモリコントローラ200からの書込みリクエストに基づいて書込み処理401を実行する。便宜上、ページサイズは8ビットを想定する。なお、同図においては、書込みデータをW、プレリードデータをRと表現している。書込み処理401は、セット処理およびリセット処理により行うことができる。ここで、セット処理とは、書込み対象のビットの値を「1」から「0」に変更する処理である。また、リセット処理とは、書込み対象のビットの値を「0」から「1」に変更する処理である。これらはいずれもマスクデータに基づいて行われる。このマスクデータは、ページサイズとおなじサイズであり、ページにおけるセット処理またはリセット処理の対象となるビットの位置を特定するためのデータである。同図においては、マスクデータにおける値「0」のビットに対応するページのビットに対してセット処理またはリセット処理が行われ、マスクデータにおける値「1」のビットに対応するページのビットに対しては、これらの処理が行われない。
まず、書込みデータおよびプレリードデータからセット処理用マスクデータおよびリセット処理用マスクデータを生成する。セット処理用マスクデータは、プレリードデータのビット毎の否定演算の結果と書込みデータとについてビット毎の論理和演算を行うことにより算出することができる。これを論理式で表すと次式のような演算となる。
SData=W|〜R
ただし、SDataは、セット処理用マスクデータを表す。|および〜はそれぞれビット毎の論理和演算およびビット毎の否定演算を表す演算子である。また、リセット処理用マスクデータは、書込みデータのビット毎の否定演算の結果とプレリードデータとについてビット毎の論理和演算を行うことにより算出することができる。これを論理式で表すと次式のような演算となる。
RData=〜W|R
ただし、RDataは、リセット処理用マスクデータを表す。
SData=W|〜R
ただし、SDataは、セット処理用マスクデータを表す。|および〜はそれぞれビット毎の論理和演算およびビット毎の否定演算を表す演算子である。また、リセット処理用マスクデータは、書込みデータのビット毎の否定演算の結果とプレリードデータとについてビット毎の論理和演算を行うことにより算出することができる。これを論理式で表すと次式のような演算となる。
RData=〜W|R
ただし、RDataは、リセット処理用マスクデータを表す。
これらのマスクデータを作成後、セット処理およびリセット処理を順に行う。これにより書込み処理401を実行することができる。
[リフレッシュ書込み方法]
図5は、本技術の第1の実施の形態におけるリフレッシュ書込みを示す図である。同図は、メモリデバイス制御部310が行うリフレッシュ書込みの処理を表したものである。同図のリフレッシュ書込みは、後述する反転処理402および2度の書込み処理401により構成される。このうち反転処理402および前段の書込み処理401がリフレッシュの処理に該当する。
図5は、本技術の第1の実施の形態におけるリフレッシュ書込みを示す図である。同図は、メモリデバイス制御部310が行うリフレッシュ書込みの処理を表したものである。同図のリフレッシュ書込みは、後述する反転処理402および2度の書込み処理401により構成される。このうち反転処理402および前段の書込み処理401がリフレッシュの処理に該当する。
同図の処理について説明する。まず、メモリデバイス制御部310は、プレリードを行ってプレリードデータを取得する。次に、メモリデバイス制御部310は、このプレリードデータに対して反転処理402を実行する。これは、取得したプレリードデータに対してビット毎の否定演算を行うことにより実行される。次に、メモリデバイス制御部310は、反転処理を行ったプレリードデータを書込みデータとする書込み処理401を実行する。これにより、ページにおける全てのメモリセルのデータを反転することができる。次にメモリデバイス制御部310は、データが反転されたメモリセルに対して書込み処理401を実行する。これにより、所望のデータの書込みを行うことができる。なお、これらの書込み処理401において生成されるセット処理およびリセット処理用マスクデータは、同図に表した通りである。
このように、本技術の実施の形態では、リフレッシュを書込みに付随して行う方式を採用している。これに対して、書込みとは別にリフレッシュを行う方式では、リフレッシュのためのデータの読出し、読み出したデータの退避および書き戻しを行う手順を要する。このため、データの退避のための一時記憶領域が必要となる。また、リフレッシュのためプレリードデータを反転させたデータの書込みを行った後、元のデータを再度書き込む必要があるため、本技術の実施の形態と比較して、書込み回数が増加する。
[書込み処理]
図6は、本技術の第1の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータから書込みコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、メモリコントローラ200は、書込み対象となるページの書込み回数情報を取得する(ステップS901)。次に、メモリコントローラ200は、取得した書込み回数情報に基づいて、書込み回数が所定の閾値より大きいか否かについて判断する(ステップS902)。その結果、書込み回数が閾値より大きくない場合には(ステップS902:No)、メモリコントローラ200は、メモリ300に対して書込みリクエストを要求し、書込みを行う(ステップS903)。次に、メモリコントローラ200は、書込み回数をインクリメントし、新たな書込み情報として書込み回数情報保持部214に保持させて、書込み情報を更新する(ステップS904)。その後、ステップS908の処理に移行する。
図6は、本技術の第1の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータから書込みコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、メモリコントローラ200は、書込み対象となるページの書込み回数情報を取得する(ステップS901)。次に、メモリコントローラ200は、取得した書込み回数情報に基づいて、書込み回数が所定の閾値より大きいか否かについて判断する(ステップS902)。その結果、書込み回数が閾値より大きくない場合には(ステップS902:No)、メモリコントローラ200は、メモリ300に対して書込みリクエストを要求し、書込みを行う(ステップS903)。次に、メモリコントローラ200は、書込み回数をインクリメントし、新たな書込み情報として書込み回数情報保持部214に保持させて、書込み情報を更新する(ステップS904)。その後、ステップS908の処理に移行する。
一方、書込み回数が閾値より大きい場合には(ステップS902:Yes)、メモリコントローラ200は、メモリ300に対してリフレッシュ書込みリクエストを要求し、リフレッシュ書込みを行う(ステップS905)。次に、メモリコントローラ200は、値「0」の書込み回数情報を書込み回数情報保持部に保持させて、書込み情報を初期化し(ステップS906)、ステップS908の処理に移行する。ステップS908において、メモリコントローラ200は、全てのページについて書込み処理が終了したか否かを判断する(ステップS908)。その結果、全てのページについて書込み処理が終了した場合には(ステップS908:No)、メモリコントローラ200は、書込み処理を終了する。一方、次に書込みを行うページが存在する場合には(ステップS908:Yes)、メモリコントローラ200は、再度ステップS901からの処理を実行する。
このように、本技術の第1の実施の形態によれば、ページ毎の書込み回数に基づいてリフレッシュが必要か否かを判断してリフレッシュを行うことにより、ページを構成する全てのメモリセルの値が反転されて、メモリセルのデータの破壊を防ぐことができる。また、このリフレッシュは、書込み処理に伴って行われるため、リフレッシュの際のメモリセルに記憶されたデータの退避は不要となり、データ退避のための一時記憶装置を削除することができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、メモリセルのデータを反転させることによりリフレッシュを行っていた。これに対し、本技術の第2の実施の形態では、メモリセルに全ビット「0」および全ビット「1」のデータを順に書き込むことによりリフレッシュを行う。これにより、リフレッシュ処理を簡略化することができる。
上述の第1の実施の形態では、メモリセルのデータを反転させることによりリフレッシュを行っていた。これに対し、本技術の第2の実施の形態では、メモリセルに全ビット「0」および全ビット「1」のデータを順に書き込むことによりリフレッシュを行う。これにより、リフレッシュ処理を簡略化することができる。
[リフレッシュ書込み方法]
図7は、本技術の第2の実施の形態におけるリフレッシュ書込みを示す図である。同図のリフレッシュ書込みは、メモリセルの全ビットに値「0」を書き込む値「0」書込み処理403、メモリセルの全ビットに値「1」を書き込む値「1」書込み処理404および書込み処理401により構成される。このうち値「0」書込み処理403および値「1」書込み処理404が本技術の第2の実施の形態におけるリフレッシュの処理に該当する。同図の処理について説明する。まず、メモリデバイス制御部310は、プレリードを行ってプレリードデータを取得する。次に、メモリデバイス制御部310は、値「0」書込み処理403を実行する。これは、プレリードデータを反転してセット処理用マスクデータを生成し、これを用いてセット処理を行うことにより実行される。これによりメモリセルの全ビットに値「0」が書き込まれる。
図7は、本技術の第2の実施の形態におけるリフレッシュ書込みを示す図である。同図のリフレッシュ書込みは、メモリセルの全ビットに値「0」を書き込む値「0」書込み処理403、メモリセルの全ビットに値「1」を書き込む値「1」書込み処理404および書込み処理401により構成される。このうち値「0」書込み処理403および値「1」書込み処理404が本技術の第2の実施の形態におけるリフレッシュの処理に該当する。同図の処理について説明する。まず、メモリデバイス制御部310は、プレリードを行ってプレリードデータを取得する。次に、メモリデバイス制御部310は、値「0」書込み処理403を実行する。これは、プレリードデータを反転してセット処理用マスクデータを生成し、これを用いてセット処理を行うことにより実行される。これによりメモリセルの全ビットに値「0」が書き込まれる。
次に、メモリデバイス制御部310は、値「1」書込み処理404を実行する。これは、全ビットが値「0」のリセット処理用マスクデータを用いてリセット処理を行うことにより実行される。これによりメモリセルの全ビットに値「1」が書き込まれる。次にメモリデバイス制御部310は、全ビットに値「1」が書き込こまれたメモリセルに対して書込み処理401を実行する。これにより、所望のデータの書込みを行うことができる。なお、これらの書込み処理において生成されるセット処理およびリセット処理用マスクデータは、同図に表した通りである。これらマスクデータの生成は比較的容易であるため、図5において説明したリフレッシュ書込みリクエストと比較して、簡便な処理にすることができる。また、図7における書込み処理401においては、リセット処理を省略してもよい。この場合には、さらに簡便な処理にすることができる。
これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300と同様であるため、説明を省略する。
このように、本技術の第2の実施の形態によれば、リフレッシュのためのマスクデータの生成を簡略化することができ、簡便な処理によりリフレッシュを行うことができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、リフレッシュの制御をメモリコントローラ200が行っていた。これに対し、本技術の第3の実施の形態では、メモリ300がリフレッシュの制御を行う。これにより、メモリコントローラ200における処理を簡略化することができる。
上述の第1の実施の形態では、リフレッシュの制御をメモリコントローラ200が行っていた。これに対し、本技術の第3の実施の形態では、メモリ300がリフレッシュの制御を行う。これにより、メモリコントローラ200における処理を簡略化することができる。
[メモリの構成]
図8は、本技術の第3の実施の形態におけるメモリ300の構成例を示す図である。同図のメモリ300は、メモリデバイス制御部310およびメモリセルアレイ320をそれぞれメモリデバイス制御部330およびメモリセルアレイ340に変更した点において、図1において説明したメモリ300と異なっている。
図8は、本技術の第3の実施の形態におけるメモリ300の構成例を示す図である。同図のメモリ300は、メモリデバイス制御部310およびメモリセルアレイ320をそれぞれメモリデバイス制御部330およびメモリセルアレイ340に変更した点において、図1において説明したメモリ300と異なっている。
メモリデバイス制御部330は、書込み制御部332と、カウント部335と、判断部336とを備える。なお、バス339は、上記メモリデバイス制御部330の各部を相互に接続するものである。
判断部336は、メモリセルアレイ340に保持された書込み回数に基づいて前述したリフレッシュが必要か否かを判断するものである。
書込み制御部332は、メモリコントローラ200が要求した書込みリクエストに基づいて、メモリセルアレイ340に対するデータの書込みを行うものである。また、この書込み制御部332は、書込みを行う際に判断部336の判断の結果によりリフレッシュが必要となる場合には、リフレッシュ書込みを行う。これらのメモリセルアレイ340に対する書込みおよびリフレッシュ書込みは、図4および図5において説明した書込み処理およびリフレッシュ書込み処理により行うことができる。
カウント部335は、書込み回数のカウントを行い、カウント後の書込み回数により後述するメモリセルアレイ340に保持された書込み回数情報を更新するものである。
[メモリセルアレイの構成]
図9は、本技術の第3の実施の形態におけるメモリセルアレイ340の構成例を示す図である。同図は、メモリセルアレイ340の構成を模式的に表したものであり、メモリセルアレイ340は、ページ毎にデータを保持するデータ領域343と、書込み回数情報を保持する書込み回数情報保持領域344とを備える。
図9は、本技術の第3の実施の形態におけるメモリセルアレイ340の構成例を示す図である。同図は、メモリセルアレイ340の構成を模式的に表したものであり、メモリセルアレイ340は、ページ毎にデータを保持するデータ領域343と、書込み回数情報を保持する書込み回数情報保持領域344とを備える。
なお、これ以外のメモリコントローラ200およびメモリ300の構成は、本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300と同様であるため説明を省略する。なお、書込み回数情報保持領域344は、特許請求の範囲に記載の書込み回数情報保持部の一例である。
この様なメモリ300を備えるシステムにおけるデータの書込みについて説明する。ホストコンピュータ100から書込みコマンドが発行されると、メモリコントローラ200は、これに基づく書込みリクエストをメモリ300に対して要求する。メモリ300のメモリデバイス制御部330は、要求されたリクエストに基づいてメモリセルアレイ340に対してデータの書込みを行う。その際、対象となるページについてリフレッシュが必要か否かを判断し、リフレッシュが必要な場合には、リフレッシュ書込みを行う。これにより、メモリコントローラ200は、リフレッシュ処理に介在すること無く書込み処理を行うことができる。
このように、本技術の第3の実施の形態によれば、メモリ300がリフレッシュの制御を行う。このため、メモリコントローラ200におけるリフレッシュのための処理を省略することができ、メモリコントローラ200の処理を簡略化することができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、不揮発メモリにより構成された記憶装置によるシステムを想定していた。これに対し、本技術の第4の実施の形態では、この記憶装置にウェアレベリング機能を持たせたシステムを想定する。これにより、ウェアレベリング機能を有するシステムにおいてもリフレッシュ処理を行い、メモリセルのデータの破壊を防ぐことができる。
上述の第1の実施の形態では、不揮発メモリにより構成された記憶装置によるシステムを想定していた。これに対し、本技術の第4の実施の形態では、この記憶装置にウェアレベリング機能を持たせたシステムを想定する。これにより、ウェアレベリング機能を有するシステムにおいてもリフレッシュ処理を行い、メモリセルのデータの破壊を防ぐことができる。
[ウェアレベリング処理]
ウェアレベリング処理とは、アクセス単位であるページ毎の書込み回数を平準化する処理である。前述のようにReRAMの書込みには寿命が存在する。書換え頻度の高いデータが特定のページに保存された場合、当該ページは他のページより書込み回数が増加する。このため、当該ページのメモリセルは他のページに対して比較的短時間で記憶素子が破壊され、保存されていたデータが消失する。これを防ぎ、システムの信頼性を向上させるため、書換え頻度の高いデータが特定のページに偏って保存されないようにページ毎の書込み回数の平準化を行う。具体的には、ページ毎の書込みの累計回数である書込み累計回数に基づいて、書込みの累計回数が多いページと書込みの累計回数が少ないページとの間でそれぞれのページに記憶されたデータの入替えを行う。このデータの入替えは、対象となるページおいて、一方のページから読み出したデータを他方のページに書き込むことにより行うことができる。
ウェアレベリング処理とは、アクセス単位であるページ毎の書込み回数を平準化する処理である。前述のようにReRAMの書込みには寿命が存在する。書換え頻度の高いデータが特定のページに保存された場合、当該ページは他のページより書込み回数が増加する。このため、当該ページのメモリセルは他のページに対して比較的短時間で記憶素子が破壊され、保存されていたデータが消失する。これを防ぎ、システムの信頼性を向上させるため、書換え頻度の高いデータが特定のページに偏って保存されないようにページ毎の書込み回数の平準化を行う。具体的には、ページ毎の書込みの累計回数である書込み累計回数に基づいて、書込みの累計回数が多いページと書込みの累計回数が少ないページとの間でそれぞれのページに記憶されたデータの入替えを行う。このデータの入替えは、対象となるページおいて、一方のページから読み出したデータを他方のページに書き込むことにより行うことができる。
[システムの構成]
図10は、本技術の第4の実施の形態における制御部210の構成例を示す図である。同図の制御部210は、ウェアレベリング制御部217、書込み累計回数情報保持部218および累計カウント部219をさらに備える点において、図2において説明した制御部210と異なっている。これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300と同様であるため、説明を省略する。
図10は、本技術の第4の実施の形態における制御部210の構成例を示す図である。同図の制御部210は、ウェアレベリング制御部217、書込み累計回数情報保持部218および累計カウント部219をさらに備える点において、図2において説明した制御部210と異なっている。これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態において説明したメモリコントローラ200およびメモリ300と同様であるため、説明を省略する。
書込み累計回数情報保持部218は、ページ毎の書込み累計回数情報を保持するものである。
累計カウント部219は、書込み累計回数のカウントを行うものである。また、この累計カウント部219は、カウント後の書込み累計回数による書込み累計回数情報保持部218に保持された書込み累計回数情報の更新も行う。この累計カウント部219におけるカウントは、書込み制御部212において書込みが行われた際に行われ、例えば、次の手順により行うことができる。まず、累計カウント部219は、書込み累計回数情報保持部218から書込みが行われたページに対応する書込み累計回数の読出しを行う。次に、この読み出した書込み累計回数に値「1」を加算することによりカウントを行う。このカウントに基づく書込み累計回数は、新たな書込み累計回数情報として書込み累計回数情報保持部218に保持される。これにより、書込み累計回数情報の更新が行われる。
ウェアレベリング制御部217は、メモリ300に対して、ウェアレベリング処理を行うものである。このウェアレベリング処理は、次のように行うことができる。まず、ウェアレベリング制御部217は、書込み累計回数情報保持部218から書込み累計回数情報を読み出して、ページ毎の書込み累計回数を比較し、書込み累計回数が多いページおよび少ないページを抽出する。次に、ウェアレベリング制御部217は、読出し制御部211に対してこれらのページからのデータの読出しを行わせる。次に、ウェアレベリング制御部217は、読み出されたデータを入れ替えて、対象のページに対して書込みを行う。この書込みは、書込み制御部212により行われる。これにより、ウェアレベリングを行うことができる。なお、ウェアレベリング制御部217は、特許請求の範囲に記載の入替え制御部の一例である。
判断部216は、データの入替えの際にも書込み回数情報保持部214に保持された書込み回数に基づくリフレッシュが必要か否かを判断する。
書込み制御部212は、データ入替えにおける書込みを行う際にも判断部216の判断の結果によりリフレッシュが必要となる場合には書込みに加えてリフレッシュをさらに行う。
カウント部215は、データ入替えにおける書込みが行われた際にも書込み回数のカウントを行い、書込み回数情報保持部214に保持された書込み回数情報の更新または初期化を行う。
[書込み処理]
図11は、本技術の第4の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータから書込みコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、メモリコントローラ200は、書込み対象となるページの書込み回数情報および書込み累計回数情報を取得する(ステップS951)。次に、メモリコントローラ200は、書込み回数が所定の閾値より大きいか否かについて判断する(ステップS952)。その結果、書込み回数が閾値より大きくない場合には(ステップS952:No)、メモリコントローラ200は、メモリ300に対して書込みリクエストを要求し、書込みを行う(ステップS953)。その後、メモリコントローラ200は、書込み回数情報を更新し(ステップS954)、ステップS957の処理に移行する。
図11は、本技術の第4の実施の形態における書込み処理の処理手順の一例を示す図である。ホストコンピュータから書込みコマンドが発行されると、メモリコントローラ200は、本処理を開始する。まず、メモリコントローラ200は、書込み対象となるページの書込み回数情報および書込み累計回数情報を取得する(ステップS951)。次に、メモリコントローラ200は、書込み回数が所定の閾値より大きいか否かについて判断する(ステップS952)。その結果、書込み回数が閾値より大きくない場合には(ステップS952:No)、メモリコントローラ200は、メモリ300に対して書込みリクエストを要求し、書込みを行う(ステップS953)。その後、メモリコントローラ200は、書込み回数情報を更新し(ステップS954)、ステップS957の処理に移行する。
一方、書込み回数が閾値より大きい場合には(ステップS952:Yes)、メモリコントローラ200は、メモリ300に対してリフレッシュ書込みリクエストを要求し、リフレッシュ書込みを行う(ステップS955)。その後、メモリコントローラ200は、書込み回数情報を初期化し(ステップS956)、ステップS957の処理に移行する。ステップS957において、メモリコントローラ200は、書込み累計回数情報を更新する(ステップS657)。次に、メモリコントローラ200は、全てのページについて書込み処理が終了したか否かを判断する(ステップS958)。その結果、全てのページについて書込み処理が終了した場合には(ステップS958:No)、メモリコントローラ200は、書込み処理を終了する。一方、次に書込みを行うページが存在する場合には(ステップS958:Yes)、メモリコントローラ200は、再度ステップS951からの処理を実行する。
このように、本技術の第4の実施の形態によれば、ウェアレベリング処理に伴う書込みにおいてリフレッシュを行うことにより、ウェアレベリング機能を有するシステムにおいてもメモリセルのデータの破壊を防ぐことができる。
<変形例>
[第1の変形例]
上述の第1の実施の形態および第2の実施の形態では、リフレッシュ書込みリクエストによりリフレッシュを行っていた。これに対し、複数のリクエストを組み合わせて、リフレッシュを行ってもよい。図5において説明したリフレッシュを例に挙げて説明する。リフレッシュ対象のページからデータを読み出すための読出しリクエストおよび読み出したデータを反転したデータを書き込むための書込みリクエストの2つのリクエストにより、リフレッシュを行う方式を採ることができる。同様に、図7においては、全ビットが値「0」のデータの書込みを要求するリクエストおよび全ビットが値「1」のデータの書込みを要求するリクエストの2つのリクエストにより、リフレッシュを行う方式を採ることができる。これにより、リフレッシュ書込みのリクエストの処理を省略することができ、メモリデバイス制御部310における処理を簡略化することができる。
[第1の変形例]
上述の第1の実施の形態および第2の実施の形態では、リフレッシュ書込みリクエストによりリフレッシュを行っていた。これに対し、複数のリクエストを組み合わせて、リフレッシュを行ってもよい。図5において説明したリフレッシュを例に挙げて説明する。リフレッシュ対象のページからデータを読み出すための読出しリクエストおよび読み出したデータを反転したデータを書き込むための書込みリクエストの2つのリクエストにより、リフレッシュを行う方式を採ることができる。同様に、図7においては、全ビットが値「0」のデータの書込みを要求するリクエストおよび全ビットが値「1」のデータの書込みを要求するリクエストの2つのリクエストにより、リフレッシュを行う方式を採ることができる。これにより、リフレッシュ書込みのリクエストの処理を省略することができ、メモリデバイス制御部310における処理を簡略化することができる。
[第2の変形例]
上述の実施の形態では、ページ単位でアクセスする不揮発メモリを使用し、ページ毎に書込み回数を管理してリフレッシュを行っていた。これに対し、複数のページにより構成されるブロックを単位として書込み回数を管理してリフレッシュを行ってもよい。例えば、2Kバイトのページサイズに対し、ブロックサイズを128Kバイトにして書込みおよびリフレッシュを行うことができる。これにより、メモリ300に記憶するデータのサイズに合わせて書込み等の処理におけるデータのサイズを変更することができ、システムの利便性を向上させることができる。
上述の実施の形態では、ページ単位でアクセスする不揮発メモリを使用し、ページ毎に書込み回数を管理してリフレッシュを行っていた。これに対し、複数のページにより構成されるブロックを単位として書込み回数を管理してリフレッシュを行ってもよい。例えば、2Kバイトのページサイズに対し、ブロックサイズを128Kバイトにして書込みおよびリフレッシュを行うことができる。これにより、メモリ300に記憶するデータのサイズに合わせて書込み等の処理におけるデータのサイズを変更することができ、システムの利便性を向上させることができる。
[第3の変形例]
上述の実施の形態では、判断部216または、判断部336においてリフレッシュが必要か否かの判断を行う際の閾値をメモリ300における全ての領域において共通の値としていた。これに対しメモリ300における記憶領域を分割してそれぞれの領域において異なる閾値を設定して判断を行ってもよい。そして、書込みの発生頻度の高いデータおよび書込みの発生頻度の低いデータをそれぞれ異なる領域に記憶させて管理する。この際、書込みの発生頻度の低いデータを保持する領域には、書込みの発生頻度の高いデータを保持する領域よりも小さな閾値を設定する。書込みの発生頻度の低いデータは、書込みが行われる時間間隔が長くなるため、より少ない書込み回数によりリフレッシュを行う必要があるためである。これにより、データの書込み頻度に応じたリフレッシュを行うことができ、システムの信頼性を向上させることができる。
上述の実施の形態では、判断部216または、判断部336においてリフレッシュが必要か否かの判断を行う際の閾値をメモリ300における全ての領域において共通の値としていた。これに対しメモリ300における記憶領域を分割してそれぞれの領域において異なる閾値を設定して判断を行ってもよい。そして、書込みの発生頻度の高いデータおよび書込みの発生頻度の低いデータをそれぞれ異なる領域に記憶させて管理する。この際、書込みの発生頻度の低いデータを保持する領域には、書込みの発生頻度の高いデータを保持する領域よりも小さな閾値を設定する。書込みの発生頻度の低いデータは、書込みが行われる時間間隔が長くなるため、より少ない書込み回数によりリフレッシュを行う必要があるためである。これにより、データの書込み頻度に応じたリフレッシュを行うことができ、システムの信頼性を向上させることができる。
[第4の変形例]
上述の実施の形態では、ECC処理部213において同一の誤り訂正処理の方式を使用していた。これに対し、複数の誤り訂正処理の方式を有する構成とし、必要に応じてこれらを入れ替えて使用してもよい。この際、使用する誤り訂正処理の誤り訂正能力に応じてリフレッシュが必要か否かの判断を行う際の閾値を変更することができる。例えば、誤り訂正能力の高い方式を使用する際には、閾値をより大きな値に変更する。リフレッシュを実行する間隔が長くなることによりメモリセルにおいてデータの破壊が発生したとしても、高い誤り訂正能力をもつ誤り訂正処理により、読み出したデータの誤りの訂正が可能となるためである。これにより、リフレッシュに伴う書込み回数を削減することができ、システムの信頼性を向上することができる。
上述の実施の形態では、ECC処理部213において同一の誤り訂正処理の方式を使用していた。これに対し、複数の誤り訂正処理の方式を有する構成とし、必要に応じてこれらを入れ替えて使用してもよい。この際、使用する誤り訂正処理の誤り訂正能力に応じてリフレッシュが必要か否かの判断を行う際の閾値を変更することができる。例えば、誤り訂正能力の高い方式を使用する際には、閾値をより大きな値に変更する。リフレッシュを実行する間隔が長くなることによりメモリセルにおいてデータの破壊が発生したとしても、高い誤り訂正能力をもつ誤り訂正処理により、読み出したデータの誤りの訂正が可能となるためである。これにより、リフレッシュに伴う書込み回数を削減することができ、システムの信頼性を向上することができる。
以上のように、本技術の実施の形態によれば、データの退避を行うことなくリフレッシュを行い、不揮発メモリにおけるデータの破壊を防ぐことができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
なお、本技術は以下のような構成もとることができる。
(1)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備するメモリコントローラ。
(2)前記書込み回数情報保持部は、前記ページ毎に前記書込み回数情報を保持する前記(1)に記載のメモリコントローラ。
(3)前記書込み回数情報保持部は、複数の前記ページからなるブロック毎に前記書込み回数情報を保持する前記(1)に記載のメモリコントローラ。
(4)前記判断部は、前記保持された前記書込み回数情報が所定の閾値よりも大きい場合に前記リフレッシュが必要と判断する前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記書込み制御部は、前記ページに記憶されているデータの読出しを行って当該読み出したデータの各ビットの値を反転させたデータを前記ページに書き込むことにより前記リフレッシュを行う前記(1)から(4)のいずれかに記載のメモリコントローラ。
(6)前記書込み制御部は、全ビットが同一の値であるページサイズの第1のデータと前記第1のデータの全ビットを反転させた第2のデータとを前記ページに対して順に書き込むことにより前記リフレッシュを行う前記(1)から(4)のいずれかに記載のメモリコントローラ。
(7)前記書込み回数のカウントを行い、前記書込み制御部において前記リフレッシュを伴わない前記書込みが行われた場合には前記カウントに基づく前記書込み回数により前記保持された前記書込み回数情報を更新し、前記書込み制御部において前記リフレッシュを伴う前記書込みが行われた場合には前記保持された前記書込み回数情報を初期化するカウント部をさらに具備する前記(1)から(6)のいずれかに記載のメモリコントローラ。
(8)前記ページ毎の書込みの累計回数である書込み累計回数情報を保持する書込み累計回数情報保持部と、
前記保持された前記書込み累計回数情報に基づいて書込みの累計回数が多いページと書込みの累計回数が少ないページとの間で一方のページから読み出したデータを他方のページに書き込むデータ入替えを制御するデータ入替え制御部と、
前記書込みの累計回数のカウントを行い、当該カウントに基づく前記書込みの累計回数により前記保持された前記書込み累計回数情報を更新する累計カウント部と
をさらに具備し、
前記判断部は、前記リフレッシュが必要か否かの判断を前記データ入替えの際にさらに行う
前記(7)に記載のメモリコントローラ。
(9)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備する記憶装置。
(10)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(10)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断手順と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御手順と
を具備するメモリの制御方法。
(1)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備するメモリコントローラ。
(2)前記書込み回数情報保持部は、前記ページ毎に前記書込み回数情報を保持する前記(1)に記載のメモリコントローラ。
(3)前記書込み回数情報保持部は、複数の前記ページからなるブロック毎に前記書込み回数情報を保持する前記(1)に記載のメモリコントローラ。
(4)前記判断部は、前記保持された前記書込み回数情報が所定の閾値よりも大きい場合に前記リフレッシュが必要と判断する前記(1)から(3)のいずれかに記載のメモリコントローラ。
(5)前記書込み制御部は、前記ページに記憶されているデータの読出しを行って当該読み出したデータの各ビットの値を反転させたデータを前記ページに書き込むことにより前記リフレッシュを行う前記(1)から(4)のいずれかに記載のメモリコントローラ。
(6)前記書込み制御部は、全ビットが同一の値であるページサイズの第1のデータと前記第1のデータの全ビットを反転させた第2のデータとを前記ページに対して順に書き込むことにより前記リフレッシュを行う前記(1)から(4)のいずれかに記載のメモリコントローラ。
(7)前記書込み回数のカウントを行い、前記書込み制御部において前記リフレッシュを伴わない前記書込みが行われた場合には前記カウントに基づく前記書込み回数により前記保持された前記書込み回数情報を更新し、前記書込み制御部において前記リフレッシュを伴う前記書込みが行われた場合には前記保持された前記書込み回数情報を初期化するカウント部をさらに具備する前記(1)から(6)のいずれかに記載のメモリコントローラ。
(8)前記ページ毎の書込みの累計回数である書込み累計回数情報を保持する書込み累計回数情報保持部と、
前記保持された前記書込み累計回数情報に基づいて書込みの累計回数が多いページと書込みの累計回数が少ないページとの間で一方のページから読み出したデータを他方のページに書き込むデータ入替えを制御するデータ入替え制御部と、
前記書込みの累計回数のカウントを行い、当該カウントに基づく前記書込みの累計回数により前記保持された前記書込み累計回数情報を更新する累計カウント部と
をさらに具備し、
前記判断部は、前記リフレッシュが必要か否かの判断を前記データ入替えの際にさらに行う
前記(7)に記載のメモリコントローラ。
(9)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備する記憶装置。
(10)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(10)ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断手順と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御手順と
を具備するメモリの制御方法。
100 ホストコンピュータ
109、309 メモリコントローラインターフェース
110 プロセッサ
200 メモリコントローラ
208 メモリインターフェース
209 ホストインターフェース
210 制御部
211 読出し制御部
212、332 書込み制御部
213 ECC処理部
214 書込み回数情報保持部
215、335 カウント部
216、336 判断部
217 ウェアレベリング制御部
218 書込み累計回数情報保持部
219 累計カウント部
300 メモリ
310 メモリデバイス制御部
320、340 メモリセルアレイ
321 記憶素子
322 MOSFET
323 メモリセル
330 メモリデバイス制御部
343 データ領域
344 書込み回数情報保持領域
109、309 メモリコントローラインターフェース
110 プロセッサ
200 メモリコントローラ
208 メモリインターフェース
209 ホストインターフェース
210 制御部
211 読出し制御部
212、332 書込み制御部
213 ECC処理部
214 書込み回数情報保持部
215、335 カウント部
216、336 判断部
217 ウェアレベリング制御部
218 書込み累計回数情報保持部
219 累計カウント部
300 メモリ
310 メモリデバイス制御部
320、340 メモリセルアレイ
321 記憶素子
322 MOSFET
323 メモリセル
330 メモリデバイス制御部
343 データ領域
344 書込み回数情報保持領域
Claims (11)
- ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備するメモリコントローラ。 - 前記書込み回数情報保持部は、前記ページ毎に前記書込み回数情報を保持する請求項1記載のメモリコントローラ。
- 前記書込み回数情報保持部は、複数の前記ページからなるブロック毎に前記書込み回数情報を保持する請求項1記載のメモリコントローラ。
- 前記判断部は、前記保持された前記書込み回数情報が所定の閾値よりも大きい場合に前記リフレッシュが必要と判断する請求項1記載のメモリコントローラ。
- 前記書込み制御部は、前記ページに記憶されているデータの読出しを行って当該読み出したデータの各ビットの値を反転させたデータを前記ページに書き込むことにより前記リフレッシュを行う請求項1記載のメモリコントローラ。
- 前記書込み制御部は、全ビットが同一の値であるページサイズの第1のデータと前記第1のデータの全ビットを反転させた第2のデータとを前記ページに対して順に書き込むことにより前記リフレッシュを行う請求項1記載のメモリコントローラ。
- 前記書込み回数のカウントを行い、前記書込み制御部において前記リフレッシュを伴わない前記書込みが行われた場合には前記カウントに基づく前記書込み回数により前記保持された前記書込み回数情報を更新し、前記書込み制御部において前記リフレッシュを伴う前記書込みが行われた場合には前記保持された前記書込み回数情報を初期化するカウント部をさらに具備する請求項1記載のメモリコントローラ。
- 前記ページ毎の書込みの累計回数である書込み累計回数情報を保持する書込み累計回数情報保持部と、
前記保持された前記書込み累計回数情報に基づいて書込みの累計回数が多いページと書込みの累計回数が少ないページとの間で一方のページから読み出したデータを他方のページに書き込むデータ入替えを制御するデータ入替え制御部と、
前記書込みの累計回数のカウントを行い、当該カウントに基づく前記書込みの累計回数により前記保持された前記書込み累計回数情報を更新する累計カウント部と
をさらに具備し、
前記判断部は、前記リフレッシュが必要か否かの判断を前記データ入替えの際にさらに行う
請求項7記載のメモリコントローラ。 - ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を具備する記憶装置。 - ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリと、
前記不揮発メモリの書込み回数である書込み回数情報を保持する書込み回数情報保持部と、
前記保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断部と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御部と
を備える記憶装置と、
前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。 - ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断する判断手順と、
前記ページに対して書込みを行う際に前記判断の結果により前記リフレッシュが必要となる場合には前記書込みに加えて前記リフレッシュをさらに行う書込み制御手順と
を具備するメモリの制御方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014223312 | 2014-10-31 | ||
JP2014223312 | 2014-10-31 | ||
PCT/JP2015/078267 WO2016067846A1 (ja) | 2014-10-31 | 2015-10-06 | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016067846A1 JPWO2016067846A1 (ja) | 2017-08-10 |
JP6497393B2 true JP6497393B2 (ja) | 2019-04-10 |
Family
ID=55857190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016556464A Expired - Fee Related JP6497393B2 (ja) | 2014-10-31 | 2015-10-06 | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9978448B2 (ja) |
JP (1) | JP6497393B2 (ja) |
KR (1) | KR20170078592A (ja) |
WO (1) | WO2016067846A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6765331B2 (ja) * | 2017-03-24 | 2020-10-07 | キオクシア株式会社 | メモリシステム |
JP6826066B2 (ja) * | 2018-03-19 | 2021-02-03 | 株式会社東芝 | 管理装置、情報処理装置およびメモリ制御方法 |
US10475519B2 (en) * | 2018-03-23 | 2019-11-12 | Micron Technology, Inc. | Methods for detecting and mitigating memory media degradation and memory devices employing the same |
US10672486B2 (en) | 2018-08-21 | 2020-06-02 | Micron Technology, Inc. | Refreshing data stored at a memory component based on a memory component characteristic component |
US11244717B2 (en) | 2019-12-02 | 2022-02-08 | Micron Technology, Inc. | Write operation techniques for memory systems |
JP2021179672A (ja) | 2020-05-11 | 2021-11-18 | ソニーセミコンダクタソリューションズ株式会社 | メモリモジュール |
US11579797B2 (en) * | 2021-04-29 | 2023-02-14 | Micron Technology, Inc. | Memory sub-system refresh |
CN114333940A (zh) * | 2021-11-22 | 2022-04-12 | 腾讯科技(深圳)有限公司 | 存储器的刷新方法、装置、计算机设备和存储介质 |
CN115954026B (zh) * | 2023-03-10 | 2023-07-28 | 长鑫存储技术有限公司 | 刷新次数确定方法及设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09288614A (ja) * | 1996-04-22 | 1997-11-04 | Mitsubishi Electric Corp | 半導体集積回路装置、半導体記憶装置およびそのための制御回路 |
JP4335659B2 (ja) | 2003-12-19 | 2009-09-30 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP5049733B2 (ja) * | 2007-10-17 | 2012-10-17 | 株式会社東芝 | 情報処理システム |
US7924628B2 (en) * | 2007-11-14 | 2011-04-12 | Spansion Israel Ltd | Operation of a non-volatile memory array |
JP2009129070A (ja) * | 2007-11-21 | 2009-06-11 | Hitachi Ltd | フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム |
US8799549B2 (en) * | 2009-02-13 | 2014-08-05 | Infortrend Technology, Inc. | Method for transmitting data between two computer systems |
CN104040634A (zh) | 2012-01-12 | 2014-09-10 | 索尼公司 | 存储控制装置、存储装置、信息处理系统及其处理方法 |
JP5853906B2 (ja) * | 2012-08-24 | 2016-02-09 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
-
2015
- 2015-10-06 JP JP2016556464A patent/JP6497393B2/ja not_active Expired - Fee Related
- 2015-10-06 US US15/520,263 patent/US9978448B2/en active Active
- 2015-10-06 WO PCT/JP2015/078267 patent/WO2016067846A1/ja active Application Filing
- 2015-10-06 KR KR1020177006320A patent/KR20170078592A/ko not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20170316826A1 (en) | 2017-11-02 |
KR20170078592A (ko) | 2017-07-07 |
WO2016067846A1 (ja) | 2016-05-06 |
JPWO2016067846A1 (ja) | 2017-08-10 |
US9978448B2 (en) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6497393B2 (ja) | メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 | |
CN111078131B (zh) | 使用交叉写入分开晶片平面 | |
US9158681B1 (en) | Process and apparatus to reduce declared capacity of a storage device by conditionally trimming | |
CN103853582B (zh) | 闪存更新方法 | |
US9864545B2 (en) | Open erase block read automation | |
US9396132B2 (en) | Storage control device and system to improve data retention in variable resistance memory cells | |
US11282564B1 (en) | Selective wordline scans based on a data state metric | |
KR20220104240A (ko) | 사전 판독 및 판독 임계 전압 최적화 | |
US11609712B2 (en) | Write operations to mitigate write disturb | |
US10929303B2 (en) | Data storage device utilizing virtual blocks to improve performance and data storage method thereof | |
JP2016143085A (ja) | 装置及び方法 | |
KR20220089854A (ko) | Ufs 장치 및 ufs 장치의 동작 방법 | |
US20140301132A1 (en) | Storage control device, storage device, information processing system, and processing method thereof | |
CN114530173A (zh) | 存储器系统及其操作方法 | |
US11237976B2 (en) | Memory system, memory controller and meta-information storage device | |
US9524112B2 (en) | Process and apparatus to reduce declared capacity of a storage device by trimming | |
US11561725B2 (en) | System and operating method thereof | |
JP6027567B2 (ja) | キャッシュメモリおよびプロセッサシステム | |
JP6107625B2 (ja) | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 | |
US9563362B2 (en) | Host system and process to reduce declared capacity of a storage device by trimming | |
CN113377285B (zh) | 用于读取干扰的预测性媒体管理 | |
US10073685B2 (en) | Methods of system optimization by over-sampling read | |
WO2017061153A1 (ja) | メモリ、メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法 | |
US20250013529A1 (en) | Data protection with time-varying in-situ data refresh | |
US11416401B2 (en) | Memory system and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180824 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190225 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6497393 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |