JPWO2017138235A1 - メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法 - Google Patents

メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法 Download PDF

Info

Publication number
JPWO2017138235A1
JPWO2017138235A1 JP2017566533A JP2017566533A JPWO2017138235A1 JP WO2017138235 A1 JPWO2017138235 A1 JP WO2017138235A1 JP 2017566533 A JP2017566533 A JP 2017566533A JP 2017566533 A JP2017566533 A JP 2017566533A JP WO2017138235 A1 JPWO2017138235 A1 JP WO2017138235A1
Authority
JP
Japan
Prior art keywords
voltage drop
memory
drop amount
memory cell
data
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.)
Granted
Application number
JP2017566533A
Other languages
English (en)
Other versions
JP6958363B2 (ja
Inventor
晴彦 寺田
晴彦 寺田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2017138235A1 publication Critical patent/JPWO2017138235A1/ja
Application granted granted Critical
Publication of JP6958363B2 publication Critical patent/JP6958363B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital 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/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/72Array wherein the access device being a diode

Abstract

可変抵抗素子が設けられた不揮発性メモリにおいて電圧降下の増大を抑制する。メモリコントローラは、電圧降下量推定部および符号化部を具備する。このメモリコントローラにおいて電圧降下量推定部は、メモリセルまでの配線の配線抵抗と原データをメモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する。符号化部は、推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を原データに対して行う。

Description

本技術は、メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法に関する。詳しくは、可変抵抗素子が設けられたメモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法に関する。
近年の情報処理システムにおいては、補助記憶装置やストレージとして、不揮発性メモリ(NVM:Non-Volatile memory)が用いられることがある。この不揮発性メモリは、大きなサイズを単位としたデータアクセスに対応したフラッシュメモリと、小さな単位での高速なランダムアクセスが可能な不揮発性ランダムアクセスメモリ(NVRAM:Non-Volatile RAM)とに大別される。ここで、フラッシュメモリの代表例としては、NAND型フラッシュメモリが挙げられる。一方、不揮発性ランダムアクセスメモリの例としては、ReRAM(Resistive RAM)、PCRAM(Phase-Change RAM)、MRAM(Magnetoresistive RAM)などが挙げられる。これらの中で、アクセス速度が高速であることなどから、ReRAMが注目されている。
一般にReRAMでは、二次元格子状に配線されたカラム線とロウ線との交点のそれぞれに、可変抵抗素子を含むメモリセルが設けられる。ドライバは、ライトデータに基づいて書換え対象のメモリセルを選択し、カラム線とロウ線との間に電圧を印加して、選択したメモリセルの抵抗値を変化させる。このとき、ReRAMではメモリセルの抵抗値が小さいほどリーク電流が大きくなる。そこで、消費電力を低減するために、抵抗値の大きなメモリセルの個数が閾値を超えた場合にはデータを符号化(反転など)し、リーク電流の大きなメモリセル数が閾値を超えないようにするメモリコントローラが提案されている(例えば、特許文献1参照。)。
特開2007−299436号公報
上述の従来技術を適用した場合、例えば、低抵抗状態に「0」を割り当て、高抵抗状態に「1」を割り当てて、2進数で「11111000」のデータを書き込む際に、メモリコントローラが「1」(低抵抗状態)の個数を計数して閾値「4」と比較する。計数値が「4」より多いため、メモリコントローラは、データを反転して「00000111」を書き込む。ここで、データの左端からn(nは0乃至7の整数)番目のビットに対応するメモリセルまでの配線抵抗を(n+1)×Rとする。また、「1」(低抵抗状態)のメモリセルのリーク電流をILEAKとし、「0」(高抵抗状態)のメモリセルのリーク電流を「0」とする。この場合に反転前のIRドロップは15×ILEAKであるのに対し、反転後のIRドロップは、21×ILEAKとなる。
このように、上述の従来技術では、反転により、リーク電流の少ない「0」のメモリセル数が多くなって消費電力が低減する一方で、IRドロップは却って増大してしまう。このIRドロップの増大により、低電圧での動作が不安定になるという問題がある。これは、電源電圧がIRドロップにより降下しても降下後の値が一定の最低動作電圧を下回らないように、その電源電圧にある程度のマージンを持たせている場合、IRドロップの増大により、そのマージンが小さくなってしまうためである。
本技術はこのような状況に鑑みて生み出されたものであり、可変抵抗素子が設けられた不揮発性メモリにおいて電圧降下の増大を抑制することを目的とする。
本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、メモリセルまでの配線の配線抵抗と原データを上記メモリセルに保持させた際に上記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、上記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を上記原データに対して行う符号化部とを具備するメモリコントローラ、または、当該メモリコントローラの制御方法である。これにより、電圧降下量の推定値が閾値を超えた場合に所定の符号化処理が行われるという作用をもたらす。
また、この第1の側面において、上記原データは、複数の区間データを含み、上記電圧降下量推定部は、上記複数の区間データのそれぞれにおける上記配線抵抗の代表値に応じた重み係数と上記複数の区間データのそれぞれにおけるリーク電流に応じた値とに基づいて上記電圧降下量を推定してもよい。これにより、複数の区間データのそれぞれにおける配線抵抗の代表値に応じた重み係数とリーク電流に応じた値とに基づいて電圧降下量が推定されるという作用をもたらす。
また、この第1の側面において、上記メモリセルが二次元格子状に配列されたメモリセルアレイと、所定の方向に配列された上記メモリセルからなる行を駆動するロウドライバと、上記所定の方向に垂直な方向に配列された上記メモリセルからなる列を駆動するカラムドライバとをさらに具備し、上記電圧降下量推定部は、上記ロウドライバまたは上記カラムドライバから上記メモリセルまでの上記配線の配線抵抗と上記リーク電流とから上記電圧降下量を推定してもよい。これにより、ロウドライバまたはカラムドライバからの配線抵抗とリーク電流とから電圧降下量が推定されるという作用をもたらす。
また、この第1の側面において、上記メモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと上記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部をさらに具備してもよい。これにより、所定の方向および上記垂直な方向のいずれかの方向に配列されたメモリセルからなるブロックにデータが書き込まれるという作用をもたらす。
また、この第1の側面において、上記アドレス生成部は、ブロックサイズの合計が一定となる複数の上記ブロックの位置を示すアドレスをライトアドレスとして生成してもよい。これにより、一定のアクセス単位ごとにデータが書き込まれるという作用をもたらす。
また、この第1の側面において、上記メモリセルアレイは、上記ロウドライバからの配線距離と上記カラムドライバからの配線距離とが所定距離を超えない推定不要領域と上記配線距離が上記所定距離を超える推定領域とに分割され、上記電圧降下量推定部は、上記推定領域に上記原データを保持させる場合には上記電圧降下量を推定してもよい。これにより、推定不要領域において電圧降下量が推定されないという作用をもたらす。
また、この第1の側面において、上記ロウドライバは、奇数行を駆動する奇数ロウドライバと、偶数行を駆動する偶数ロウドライバとを備え、上記電圧降下量推定部は、所定の推定領域内の上記奇数行に上記原データを保持させる場合には上記奇数ロウドライバからの上記配線の配線抵抗に基づいて上記電圧降下量を推定し、上記所定の推定領域内の上記偶数行に上記原データを保持させる場合には上記偶数ロウドライバからの上記配線の配線抵抗に基づいて上記電圧降下量を推定してもよい。これにより、奇数ロウドライバおよび偶数ロウドライバにより奇数行および偶数行が駆動されるという作用をもたらす。
また、この第1の側面において、上記カラムドライバは、奇数列を駆動する奇数カラムドライバと、偶数列を駆動する偶数カラムドライバとを備え、上記電圧降下量推定部は、所定の推定領域内の上記奇数列に上記原データを保持させる場合には上記奇数カラムドライバからの上記配線の配線抵抗に基づいて上記電圧降下量を推定し、上記所定の推定領域内の上記偶数列に上記原データを保持させる場合には上記偶数カラムドライバからの上記配線の配線抵抗に基づいて上記電圧降下量を推定してもよい。これにより、奇数カラムドライバおよび偶数カラムドライバにより奇数列および偶数列が駆動されるという作用をもたらす。
また、この第1の側面において、上記符号化部は、上記所定の符号化処理において非管理情報と当該非管理情報を復号するための管理情報とを出力してもよい。これにより、符号化において管理情報が生成されるという作用をもたらす。
また、この第1の側面において、上記所定の符号化処理は、上記原データを反転する反転処理であり、上記管理情報は、上記反転処理を行ったか否かを示す反転ビットを含んでもよい。これにより、電圧降下量の推定値に基づいて反転処理が行われるという作用をもたらす。
また、この第1の側面において、上記所定の符号化処理は、上記原データのビットの順序を入れ替える入替処理であり、上記管理情報は、上記入替処理を行ったか否かを示す入替ビットを含んでもよい。これにより、電圧降下量の推定値に基づいてビットの順序が入れ替えられるという作用をもたらす。
また、この第1の側面において、上記メモリセルは、複数のビットを保持する多値メモリセルであり、上記符号化処理は、上記原データにおいて上記多値メモリセルに保持させる特定の値を上記特定の値と異なる値に置換する置換処理を含み、上記管理情報は、上記置換処理を行ったか否かを示す置換ビットを含んでもよい。これにより、電圧降下量の推定値に基づいて置換処理が行われるという作用をもたらす。
また、この第1の側面において、上記符号化部は、上記非管理情報の誤りの有無を検出するためのパリティを生成する誤り検出訂正符号化処理と上記所定の符号化処理とを行ってもよい。これにより、誤り検出訂正符号化処理がさらに実行されるという作用をもたらす。
また、この第1の側面において、上記符号化部は、上記原データの誤りの有無を検出するためのパリティを生成して上記原データとともに上記電圧降下量推定部に供給する誤り検出訂正符号化処理と上記所定の符号化処理とを行い、上記電圧降下量推定部は、上記配線抵抗と上記原データおよび上記パリティを上記メモリセルに保持させた際に上記メモリセルに生じるリーク電流とから電圧降下量を推定してもよい。これにより、誤り検出訂正符号化処理の後に所定の符号化処理が行われるという作用をもたらす。
また、本技術の第2の側面は、二次元格子状に複数のメモリセルが配列されたメモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと上記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部と、原データを符号化して上記ライトアドレスに保持させるライトデータとして供給する符号化部とを具備するメモリコントローラである。これにより、所定の方向および上記垂直な方向のいずれかの方向に配列された所定数のメモリセルにデータが書き込まれるという作用をもたらす。
また、本技術の第3の側面は、メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行ってライトデータを生成する符号化部と、前記ライトデータに基づいて前記メモリセルアレイを駆動するドライバとを具備する不揮発性メモリである。これにより、電圧降下量の推定値が閾値を超えた場合に所定の符号化処理が行われたライトデータに基づいてメモリセルアレイが駆動されるという作用をもたらす。
本技術によれば、可変抵抗素子が設けられた不揮発性メモリにおいて電圧降下の増大を抑制することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の第1の実施の形態におけるメモリシステムの一構成例を示す全体図である。 本技術の第1の実施の形態におけるメモリコントローラの一構成例を示すブロック図である。 本技術の第1の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 本技術の第1の実施の形態における電圧降下量推定部の一構成例を示すブロック図である。 本技術の第1の実施の形態における符号化部の一構成例を示すブロック図である。 本技術の第1の実施の形態における復号部の一構成例を示すブロック図である。 本技術の第1の実施の形態における不揮発性メモリの一構成例を示すブロック図である。 本技術の第1の実施の形態におけるMAU配置部の一構成例を示すブロック図である。 本技術の第1の実施の形態におけるメモリアレイユニットの一構成例を示すブロック図である。 本技術の第1の実施の形態におけるメモリセルアレイの斜視図である。 本技術の第1の実施の形態におけるメモリセルの一構成例を示す回路図である。 本技術の第1の実施の形態における可変抵抗素子の抵抗分布の一例を示す図である。 本技術の第1の実施の形態における符号化前後のデータの一例を示す図である。 比較例における符号化前後のデータの一例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラの動作の一例を示すフローチャートである。 本技術の第1の実施の形態におけるライト処理の一例を示すフローチャートである。 本技術の第1の実施の形態におけるリード処理の一例を示すフローチャートである。 本技術の第1の実施の形態の第1の変形例におけるメモリセルアレイの斜視図である。 本技術の第1の実施の形態の第2の変形例における不揮発性メモリの一構成例を示すブロック図である。 本技術の第1の実施の形態の第2の変形例におけるメモリユニットの一構成例を示すブロック図である。 本技術の第2の実施の形態における電圧降下量推定部の一構成例を示すブロック図である。 本技術の第3の実施の形態におけるメモリセルアレイ内の領域の一例を示す図である。 本技術の第4の実施の形態におけるメモリアレイユニットの一構成例を示すブロック図である。 本技術の第4の実施の形態におけるメモリセルアレイ内の領域の一例を示す図である。 本技術の第5の実施の形態におけるメモリアレイユニットの一構成例を示すブロック図である。 本技術の第5の実施の形態におけるメモリセルアレイ内の領域の一例を示す図である。 本技術の第6の実施の形態におけるメモリコントローラの機能構成例を示すブロック図である。 本技術の第6の実施の形態におけるメモリ制御部の一構成例を示すブロック図である。 本技術の第7の実施の形態における符号化部の一構成例を示すブロック図である。 本技術の第7の実施の形態における復号部の一構成例を示すブロック図である。 本技術の第7の実施の形態における符号化前後のデータの一例を示す図である。 本技術の第8の実施の形態における可変抵抗素子の抵抗分布の一例を示す図である。 本技術の第8の実施の形態における符号化部の一構成例を示すブロック図である。 本技術の第8の実施の形態における復号部の一構成例を示すブロック図である。 本技術の第8の実施の形態における符号化前後のデータの一例を示す図である。
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(電圧降下量を推定して原データを反転する例)
2.第2の実施の形態(区間データ毎の重み係数により電圧降下量を推定して原データを反転する例)
3.第3の実施の形態(行方向または列方向の電圧降下量を推定して原データを反転する例)
4.第4の実施の形態(ロウドライバを2つ設け、電圧降下量を推定して原データを反転する例)
5.第5の実施の形態(カラムドライバを2つ設け、電圧降下量を推定して原データを反転する例)
6.第6の実施の形態(ECC符号化後に電圧降下量を推定して原データを反転する例)
7.第7の実施の形態(電圧降下量を推定して原データのビットの順序を入れ替える例)
8.第8の実施の形態(電圧降下量を推定して原データに対して置換処理を行う例)
<1.第1の実施の形態>
[メモリシステムの構成例]
図1は、第1の実施の形態におけるメモリシステムの一構成例を示す全体図である。このメモリシステムは、ホストコンピュータ100およびストレージ200を備える。
ホストコンピュータ100は、メモリシステム全体を制御するものである。具体的には、ホストコンピュータ100は、コマンドおよびデータを生成してストレージ200に信号線109を介して供給する。また、ホストコンピュータ100は、信号線109を介してストレージ200から、読み出されたデータを受け取る。ここで、コマンドは、ストレージ200を制御するためのものであり、例えば、データの書込みを指示するライトコマンドや、データの読み出しを指示するリードコマンドを含む。
ストレージ200は、メモリコントローラ300および不揮発性メモリ400を備える。このメモリコントローラ300は、不揮発性メモリ400を制御するものである。メモリコントローラ300は、ホストコンピュータ100からライトコマンドおよびデータを受け取った場合には、そのデータを符号化する。以下、符号化前のデータを「原データ」と称する。そして、メモリコントローラ300は、不揮発性メモリ400に信号線309を介してアクセスして符号化したデータを書き込む。
また、ホストコンピュータ100からリードコマンドを受け取った場合、メモリコントローラ300は、不揮発性メモリ400に信号線308を介してアクセスして符号化されたデータを信号線309を介して読み出す。そして、メモリコントローラ300は、符号化されたデータを、符号化前の原データに変換(すなわち、復号)する。メモリコントローラ300は、復号したデータをホストコンピュータ100に供給する。
不揮発性メモリ400は、メモリコントローラ300の制御に従って、データを記憶するものである。例えば、ReRAMが不揮発性メモリ400として用いられる。この不揮発性メモリ400は、二次元格子状に配列された複数のメモリセルを備える。
[メモリコントローラの構成例]
図2は、第1の実施の形態におけるメモリコントローラ300の一構成例を示すブロック図である。このメモリコントローラ300は、ホストインターフェース301、RAM(Random Access Memory)302、および、CPU(Central Processing Unit)303を備える。また、メモリコントローラ300は、ECC(Error detection and Correction Code)処理部304、ROM(Read Only Memory)305、バス306およびメモリインターフェース307を備える。
ホストインターフェース301は、ホストコンピュータ100との間でデータやコマンドを相互に交換するものである。RAM302は、CPU303が実行する処理において必要となるデータを一時的に保持するものである。CPU303は、メモリコントローラ300全体を制御するものである。ROM305は、CPU303が実行するプログラム等を記憶するものである。バス306は、RAM302、CPU303、ECC処理部304、ROM305、ホストインターフェース301およびメモリインターフェース307が相互にデータを交換するための共通の経路である。メモリインターフェース307は、不揮発性メモリ400との間でデータやコマンドを相互に交換するものである。
ECC処理部304は、データを符号化または復号するものである。符号化においてECC処理部304は、ECC符号化対象データにパリティを付加することにより所定の単位で符号化する。所定の単位で符号化された個々のデータは、「符号語」と呼ばれる。そして、ECC処理部304は、符号化したデータをライトデータとして不揮発性メモリ400にバス306を介して供給する。
また、ECC処理部304は、符号化されたリードデータを元のデータに復号する。この復号において、ECC処理部304は、パリティを使用してリードデータの誤りの有無を検出して訂正する。
図3は、第1の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。このメモリコントローラ300は、電圧降下量推定部310、比較部320、符号化部330、復号部340、コマンドデコーダ350、アドレス変換部360およびアドレス変換テーブル370を備える。これらの各部は、図2のホストインターフェース301、RAM302、CPU303およびECC処理部304、ROM305、バス306およびメモリインターフェース307などにより実現される。
電圧降下量推定部310は、原データをメモリセルに保持させた際のリーク電流と、メモリセルまでの配線の配線抵抗とから、電圧降下(IRドロップ)の量を推定するものである。また、比較部320は、IRドロップの推定値を所定の閾値と比較するものである。
ここで、前述したようにReRAMではメモリセルの抵抗値が小さいほどリーク電流が大きくなる。このため、例えば、2進数で「1」を保持するメモリセルの抵抗値が「0」を保持するメモリセルより小さいとすると、「1」のメモリセルのリーク電流の方が大きくなる。以下、「1」のメモリセルのリーク電流をILEAKとし、「0」のメモリセルのリーク電流はほとんど無視できる程度に小さいものとする。
また、メモリセルまでの配線の配線抵抗は、その配線距離が長くなるほど大きくなる。例えば、原データが8ビットで、先頭ビットに対応するメモリセルが最も配線距離が短く、末尾ビットに近づくほど配線距離が長くなるものとする。この場合、末尾ビットに近いほど、そのビットに対応するメモリセルまでの配線の配線抵抗が大きくなる。このため、先頭からn(nは0乃至7の整数)ビット目のメモリセルに対応する配線抵抗を(n+1)×Rと表すことができる。ここで、Rは、隣接するメモリセル間の配線の配線抵抗である。この配線抵抗とリーク電流とから、原データを書き込んだメモリセルのIRドロップVDROPは次の式により求められる。
Figure 2017138235
上式において、Iは、先頭からn番目のビットを保持するメモリセルのリーク電流である。例えば、n番目のビットが「1」である場合に、そのビットを保持するメモリセルのリーク電流IとしてILEAKの値が用いられる。一方、n番目のビットが「0」である場合に、そのビットを保持するメモリセルのリーク電流Iとして「0」の値が用いられる。
式1のIRドロップVDROPは、例えば、閾値ILEAK(Th×R)と比較される。ここで、Thは、所定の実数である。この閾値をIRドロップVDROPが超えるか否かは、次の式により求められる。
Figure 2017138235
は、ILEAKまたは「0」であるため、式2は、次の式に簡易化することができる。
Figure 2017138235
上式において、bは、nビット目の値である。kは、bに対応する重み係数である。上式の右辺(IRドロップ)は、ビットbと、重み係数kとの重み付け加算により求められる。このビットごとの重み係数は、メモリコントローラ300内の参照テーブルなどに予め保持される。なお、重み係数をメモリコントローラ300でなく不揮発性メモリ400に保持しておき、システム起動時などにメモリコントローラ300が読み出す構成であってもよい。
電圧降下量推定部310は、重み付け加算により式3の右辺を算出してIRドロップの推定値として比較部320に供給する。そして、比較部320は、推定値と閾値Thとを比較して比較結果を示すビットを反転ビットとして符号化部330に供給する。この反転ビットは、原データを反転するか否かを示す。例えば、IRドロップの推定値を所定の閾値を超える場合に、反転することを示す「1」の値が反転ビットに設定され、推定値が所定の閾値以下の場合に、反転しないことを示す「0」の値が反転ビットに設定される。
符号化部330は、原データを符号化するものである。この符号化部330は、反転ビットに基づいて原データを反転する処理と、パリティを生成する処理とを行う。この符号化部330は、反転ビットが「1」の場合に原データを反転して反転データを生成する。一方、符号化部330は、反転ビットが「0」の場合に原データを反転しない。この反転符号化処理により生成された原データまたは反転データと反転ビットとからなるデータを以下、「ECC符号化対象データ」と称する。
そして、符号化部330は、ECC符号化対象データに基づいて、ECC符号化対象データの誤りを検出および訂正するためのパリティを生成する。符号化部330は、ECC符号化対象データおよびパリティからなるデータをライトデータとして不揮発性メモリ400に供給する。
なお、符号化部330は、8ビットの単位で符号化しているが、符号化の単位は、8ビットに限定されない。
復号部340は、不揮発性メモリ400からのリードデータを復号するものである。この復号部340は、符号化部330における処理に対応する処理を実行し、原データを復号する。そして、復号部340は、復号した原データをホストコンピュータ100に供給する。
コマンドデコーダ350は、ホストコンピュータ100からのコマンドをデコードしてリクエストを生成するものである。このコマンドデコーダ350は、生成したリクエストを不揮発性メモリ400に供給する。
アドレス変換部360は、アドレス変換テーブル370を参照して物理アドレスと論理アドレスとを相互に変換するものである。ここで、論理アドレスは、ホストコンピュータ100が定義するアドレス空間において、ホストコンピュータ100がストレージ200にアクセスする際のアクセス単位の領域ごとに割り振られたアドレスである。また、物理アドレスは、前述したように不揮発性メモリ400においてアクセス単位ごとに割り当てられたアドレスである。なお、アドレス変換部360は、特許請求の範囲に記載のアドレス生成部の一例である。
アドレス変換テーブル370は、論理アドレスと物理アドレスとを対応付けたテーブルである。
[電圧降下量推定部の構成例]
図4は、第1の実施の形態における電圧降下量推定部310の一構成例を示すブロック図である。この電圧降下量推定部310は、乗算部311、重み係数供給部313および加算部314を備える。
乗算部311は、ビットごとに、そのビットに重み係数を乗算するものである。この乗算部311は、複数の乗算器312を備える。n個目の乗算器312は、ビットbと、重み係数kとを乗算して加算部314に供給する。
重み係数供給部313は、ビットのそれぞれに重み係数を供給するものである。この重み係数供給部313は、n個目の乗算器312に重み係数kを供給する。
加算部314は、乗算器312のそれぞれの乗算結果を加算するものである。この加算部314は、加算結果をIRドロップの推定値として比較部320に供給する。
[符号化部の構成例]
図5は、第1の実施の形態における符号化部330の一構成例を示すブロック図である。この符号化部330は、ライト側反転部331およびECC符号化部332を備える。
ライト側反転部331は、反転ビットに基づいて原データを反転するものである。このライト側反転部331は、反転ビットが「1」である場合に原データを反転し、その反転データおよび反転ビットをECC符号化対象データとしてECC符号化部332に供給する。一方、反転ビットが「0」である場合にライト側反転部331は、原データを反転せずに、その原データおよび反転ビットをECC符号化対象データとしてECC符号化部332に供給する。このECC符号化対象データにおける反転ビット以外のデータ(すなわち、原データまたは反転データ)を以下、「非管理情報」と称する。また、ライト側反転部331による反転処理を以下、「反転符号化」と称する。
ECC符号化部332は、ECC符号化対象データに基づいて、そのECC符号化対象データの誤りを検出および訂正するためのパリティを生成するものである。このECC符号化部332は、ECC符号化対象データおよびパリティからなる誤り検出訂正符号(ECC)をライトデータとして不揮発性メモリ400に供給する。ECCとして、例えば、BCH(Bose Chaudhuri Hocquenghem)符号や、RS(Reed-Solomon)符号などが用いられる。以下、反転ビットおよびパリティからなるデータを「管理情報」と称する。また、ECCへの符号化を以下、「ECC符号化」と称する。
[復号部の構成例]
図6は、第1の実施の形態における復号部340の一構成例を示すブロック図である。この復号部340は、リード側反転部341およびECC復号部342を備える。
ECC復号部342は、リードデータを復号するものである。このECC復号部342は、ECCをリードデータとして不揮発性メモリ400から取得する。そして、ECC復号部342は、ECC内のパリティを用いてECC符号化対象データの誤りの有無を検出し、誤りがあった場合に、その誤りを訂正する。そして、ECC復号部342は、誤りを検出および訂正したデータをECC復号データとしてリード側反転部341に供給する。このECC復号データは、非管理情報(原データまたは反転データ)と反転ビットとを含む。
リード側反転部341は、非管理情報を反転ビットに基づいて反転するものである。このリード側反転部341は、反転ビットが「1」である場合に非管理情報を反転し、原データとしてホストコンピュータ100に供給する。一方、反転ビットが「0」である場合にリード側反転部341は、非管理情報を反転せずに、そのまま原データとしてホストコンピュータ100に供給する。
[不揮発性メモリの構成例]
図7は、第1の実施の形態における不揮発性メモリ400の一構成例を示すブロック図である。この不揮発性メモリ400は、データバッファ410、MAU配置部420、アドレスデコーダ430、バス440、制御インターフェース450およびメモリ制御部460を備える。
データバッファ410は、メモリ制御部460の制御に従って、ライトデータやリードデータを保持するものである。
MAU配置部420には、複数のメモリアレイユニットが設けられる。メモリアレイユニットのそれぞれには、メモリセルアレイおよびドライバが設けられる。
アドレスデコーダ430は、リクエストにより指定されたアドレスをデコードするものである。このアドレスデコーダ430はアドレスのデコードによりロウアドレスRAおよびカラムアドレスCAを生成してMAU配置部420に供給する。
バス440は、データバッファ410、MAU配置部420、アドレスデコーダ430、制御インターフェース450およびメモリ制御部460が相互にデータを交換するための共通の経路である。制御インターフェース450は、メモリコントローラ300と不揮発性メモリ400とがデータやコマンドを相互に交換するためのインターフェースである。
メモリ制御部460は、メモリアレイユニットを制御して、データの書込み、または、読出しを行わせるものである。
図8は、第1の実施の形態におけるMAU配置部420の一構成例を示す図である。このMAU配置部420には、複数のメモリアレイユニット500が配置される。
[メモリアレイユニットの構成例]
図9は、第1の実施の形態におけるメモリアレイユニット500の一構成例を示すブロック図である。このメモリアレイユニット500は、カラムドライバ510、ロウドライバ520およびメモリセルアレイ530を備える。メモリセルアレイ530には、二次元格子状に複数のメモリセル540が配列される。以下、所定方向に配列されたメモリセル540の集合を「行」と称し、その方向に垂直な方向に配列されたメモリセル540の集合を「列」と称する。
ライトデータは、ブロックと呼ばれるアクセス単位で書き込まれるものとする。このブロックは、例えば、行方向に並んだ所定数のメモリセル540から構成される。
メモリセル540は、データを記憶するものである。メモリセル540のそれぞれは、列方向に沿って配線されたカラム線と、行方向に沿って配線されたロウ線とに接続される。例えば、メモリセル540は、8×8の計64個設けられる。そして、p(pは0乃至7の整数)番目の行に属するメモリセル540のそれぞれは、ロウ線RLpを介してロウドライバ520に接続される。また、q(qは0乃至7の整数)番目の列に属するメモリセル540のそれぞれは、カラム線CLqを介してカラムドライバ510に接続される。なお、メモリセル540の個数は、64個に限定されない。
また、ロウ線RLpと、カラム線CLqとに接続されたメモリセル540には、例えば、「pq」のアドレスが割り当てられる。
ロウドライバ520は、アドレスデコーダ430からのロウアドレスRAと、メモリ制御部460からの制御信号とに従ってロウを駆動するものである。ここで、ロウアドレスRAは、アクセス対象のロウの位置を示す。また、制御信号は、セット信号、リセット信号またはセンス信号などである。
カラムドライバ510は、アドレスデコーダ430からのカラムアドレスCAと制御信号とライトデータWDとに基づいてロウを駆動するものである。ここで、カラムアドレスCAは、アクセス対象のカラムの位置を示す。また、カラムドライバ510は、センス信号に従ってリードデータRDを読み出してデータバッファ410に保持させる。
書込みにおいてロウドライバ520は、ロウアドレスRAに基づいて選択したロウに選択行電圧を印加し、それ以外のロウに非選択行電圧を印加する。また、カラムドライバ510は、カラムアドレスCAに基づいて選択したカラムに選択列電圧を印加し、それ以外のカラムに非選択列電圧を印加する。
ここで、選択された行と選択された列との両方に属するメモリセル540を以下、「選択セル」と称する。また、選択された行と、選択されていない列とに属するメモリセル540を「半選択セル」と称する。選択されていない行と、選択されていない列とに属するメモリセル540を「非選択セル」と称する。
選択セルの両端には、選択行電圧と選択列電圧との差分の線間電圧が印加される。この線間電圧の大きさや、極性を制御することにより、選択セルをセット、リセット、あるいはセンスすることができる。以下、セットする際の線間電圧を「セット電圧」と称し、リセットする際の線間電圧を「リセット電圧」と称し、センスする際の線間電圧を「センス電圧」と称する。
図10は、第1の実施の形態におけるメモリセルアレイ530の斜視図である。メモリセルアレイ530において、カラム線CLqが設けられた配線層と、ロウ線RLpが設けられた配線層とが半導体基板上に積層される。そして、ロウ線とカラム線との交差点において、カラム線とロウ線とに挟まれる位置にメモリセル540が配置される。このような不揮発性メモリは、クロスポイント型メモリと呼ばれる。
[メモリセルの構成例]
図11は、第1の実施の形態におけるメモリセル540の一構成例を示す回路図である。このメモリセル540は、双方向ダイオード541と可変抵抗素子542とを備える。双方向ダイオード541の一端は、ロウ線RL0に接続され、他端は、可変抵抗素子542に接続される。可変抵抗素子542の一端は、双方向ダイオード541に接続され、他端は、カラム線CL0に接続される。
双方向ダイオード541は、カラム線とビット線との間の線間電圧に応じた電流を供給するものである。例えば、線間電圧が所定値を超える場合に、双方向ダイオード541は、導通状態に遷移して所定の電流閾値Ithを超える電流を可変抵抗素子542に流す。一方、線間電圧が所定値以下の場合に双方向ダイオード541は、非導通状態に遷移して電流閾値Ith以下の電流を可変抵抗素子542に流す。可変抵抗素子542は、電流の方向に応じて抵抗値が変化する素子である。なお、線間電圧に応じて導通状態および非導通状態の一方から他方に遷移する選択素子であれば、双方向ダイオード541以外の素子(トランジスタなど)を双方向ダイオード541の代わりに設けてもよい。
図12は、第1の実施の形態における可変抵抗素子542の抵抗分布の一例を示す図である。同図における縦軸は、メモリセル540のセル数であり、横軸は、抵抗値である。メモリセル540では、その抵抗分布は、抵抗の閾値Rrefを境に2つに分けられている。これらの分布は、低抵抗状態(LRS:Low-Resistance State)および高抵抗状態(HRS:High-Resistance State)と呼ばれる。LRSには、例えば、「1」の論理値が割り当てられ、HRSには「0」が割り当てられる。また、LRSのメモリセル540をHRSに遷移させる処理を以下、「リセット」と称し、HRSのメモリセル540をLRSに遷移させる処理を以下、「セット」と称する。また、メモリセル540に保持された値を読み出すことを「センス」と称する。
ここで、メモリセル540に流れるリーク電流は、一般に、メモリセル540内の可変抵抗素子542の抵抗値が低いほど大きくなる。すなわち、LRSのメモリセル540のリーク電流は、HRSよりも大きくなる。
なお、LRSに「1」をHRSに「0」を割り当てているが、逆に、LRSに「0」をHRSに「1」を割り当ててもよい。この場合には、電圧降下量推定部310において、ビットbを反転した値と、重み係数kとが重み付け加算される。
図13は、第1の実施の形態における符号化前後のデータの一例を示す図である。同図におけるaは、原データの一例を示す図であり、同図におけるbは、反転データの一例を示す図である。また、同図におけるcは、ECC符号化対象データの一例を示す図であり、同図におけるdは、ライトデータの一例を示す図である。
まず、メモリコントローラ300は、原データを反転せずにメモリセルに保持させた際のIRドロップを推定する。原データを2進数で「00000111」とすると、LRSの5乃至7ビット目でリーク電流ILEAKが生じる。したがって、IRドロップは、式1より21ILEAKと推定される。簡易化した式3を用いる場合には、推定値として「21」が算出される。
ここで、閾値Thは、例えば、「18」(ILEAK)に設定されるものとする。この場合、IRドロップの推定値が閾値Thを超えるために、メモリコントローラ300は、原データを反転し、図13におけるbに例示するように反転データ「11111000」を生成する。この反転データのIRドロップは、式1より15ILEAKと推定される。このように、反転により、反転前と比較してIRドロップが減少する。
そして、メモリコントローラ300は、図13におけるdに例示するように、「1」を設定した反転ビットと反転データ(非管理情報)とをECC符号化対象データとし、同図におけるdに例示するようにパリティを生成する。このように、非管理情報(原データまたは反転データ)と、管理情報(反転ビットおよびパリティ)とからなるライトデータがメモリセルに書き込まれる。
図14は、比較例における符号化前後のデータの一例を示す図である。この比較例では、「1」の個数が閾値(例えば、「4」)を超える場合に、メモリシステムが原データを反転するものとする。同図におけるaは、原データの一例を示す図であり、同図におけるbは、反転データの一例を示す図である。
原データが「11111000」の場合に比較例のメモリシステムは、「1」の個数が閾値を超えるために反転し、反転データ「00000111」を生成する。反転前の原データを書き込んだ際のIRドロップは、式1より15ILEAKである。これに対して、反転データを書き込んだ際のIRドロップは、式1より21ILEAKであり、反転によりIRドロップが増大してしまう。
これに対してメモリコントローラ300は、IRドロップを推定し、その推定値が閾値を超える場合に原データを反転してIRドロップを閾値以下に減少させるため、IRドロップの増大を抑制することができる。
IRドロップの増大を抑制することにより、低電圧におけるエラー発生率を低減することができる。また、電源電圧のマージンを大きくすることができる。また、マージンを維持しつつ、書込みに要する遅延時間を短くして書込み帯域幅を広くすることができる。また、マージンを維持しつつ、メモリセルの微細化や、メモリセルの積層数の増大などにより、ビット当たりのコストを低減することができる。
[メモリコントローラの動作例]
図15は、第1の実施の形態におけるメモリコントローラ300の動作の一例を示すフローチャートである。この動作は、例えば、メモリシステムに電源が投入されたときに開始される。
メモリコントローラ300は、ホストコンピュータ100からライトコマンドを受信したか否かを判断する(ステップS901)。ライトコマンドを受信した場合に(ステップS901:Yes)、メモリコントローラ300は、ライトデータを書き込むためのライト処理を実行する(ステップS910)。
ライトコマンドを受信していない場合に(ステップS901:No)、メモリコントローラ300は、リードコマンドを受信したか否かを判断する(ステップS902)。リードコマンドを受信した場合に(ステップS902:Yes)、メモリコントローラ300は、リードデータを読み出すためのリード処理を実行する(ステップS920)。
リードコマンドを受信していない場合(ステップS902:No)、ステップS910またはS920の後にメモリコントローラ300は、ステップS901以降を繰り返し実行する。
図16は、第1の実施の形態におけるライト処理の一例を示すフローチャートである。メモリコントローラ300は、原データおよびライトアドレスを取得し(ステップS911)、ビットbと重み係数kとの重み付け加算により電圧降下量を推定する(ステップS912)。
メモリコントローラ300は、電圧降下量の推定値が閾値以下であるか否かを判断する(ステップS913)。推定値が閾値以下である場合に(ステップS913:Yes)、メモリコントローラ300は、「0」の反転ビットおよび原データをECCに符号化する(ステップS914)。一方、推定値が閾値を超える場合に(ステップS913:No)、メモリコントローラ300は、原データを反転し(ステップS916)、「1」の反転ビットおよび反転データをECCに符号化する(ステップS917)。
ステップS914またはS917の後にメモリコントローラ300は、ライトリクエストにより、符号化したライトデータを不揮発性メモリ400に書き込む(ステップS915)。
図17は、第1の実施の形態におけるリード処理の一例を示すフローチャートである。メモリコントローラ300は、リードアドレスを取得し(ステップS921)、リードリクエストによりリードデータを不揮発性メモリ400から取得する(ステップS922)。そして、メモリコントローラ300は、パリティを用いてリードデータ(ECC)を復号する(ステップS923)。
メモリコントローラ300は、復号したデータ内の反転ビットが「0」であるか否かを判断する(ステップS924)。反転ビットが「0」である場合に(ステップS924:Yes)、メモリコントローラ300は、非管理情報を原データとしてホストコンピュータ100に送信する(ステップS925)。一方、反転ビットが「1」である場合に(ステップS924:No)、メモリコントローラ300は、非管理情報を反転し(ステップS926)、反転した非管理情報を原データとしてホストコンピュータ100に送信する(ステップS927)。
このように、本技術の第1の実施の形態によれば、メモリシステムは、電圧降下量を推定し、その推定値が閾値を超える場合に原データを反転するため、電圧降下量の増大を抑制することができる。
[第1の変形例]
上述の第1の実施の形態では、メモリコントローラ300は、カラム線の配線層と、ロウ線の配線層とを積層したクロスポイント型の不揮発性メモリを制御していたが、制御対象の不揮発性メモリはクロスポイント型に限定されない。例えば、V3D(Vertical 3 Dimension)型であってもよい。この第1の実施の形態における第1の変形例の不揮発性メモリ400は、V3D型である点において第1の実施の形態と異なる。
図18は、第1の実施の形態の第1の変形例におけるメモリセルアレイ530の斜視図である。半導体基板上に、ロウ線RLpが積層され、その積層方向に沿ってカラム線CLqがロウ線を貫通する。そして、カラム線を通すロウ線上のスルーホールの内面と、カラム線の側面とに挟まれる位置に、メモリセル540が形成される。
このように、本技術の第1の実施の形態の第1の変形例によれば、V3D型の不揮発性メモリ400に保持させた際の電圧降下量を推定するため、V3D型の不揮発性メモリ400における電圧降下量の増大を抑制することができる。
[第2の変形例]
上述の第1の実施の形態では、複数のメモリアレイユニット500で、データバッファ410およびアドレスデコーダ430を共有していたが、これらを共有せずに、メモリアレイユニットごとに設けてもよい。この第1の実施の形態における第2の変形例の不揮発性メモリ400は、メモリアレイユニットごとにデータバッファおよびアドレスデコーダを設けた点において第1の実施の形態と異なる。
図19は、第1の実施の形態の第2の変形例における不揮発性メモリ400の一構成例を示すブロック図である。この第2の変形例の不揮発性メモリ400の構成は、MAU配置部420、データバッファ410およびアドレスデコーダ430の代わりに複数のメモリユニット600を備える点において第1の実施の形態と異なる。
図20は、第1の実施の形態の第2の変形例におけるメモリユニット600の一構成例を示すブロック図である。このメモリユニット600は、データバッファ610、メモリアレイユニット620およびアドレスデコーダ630を備える。メモリアレイユニット620ごとに、データバッファ610およびアドレスデコーダ630を設けることにより、データのバッファリングやアドレスのデコード処理を並列に実行することができ、アクセス速度を向上させることができる。
このように、本技術の第1の実施の形態における第2の変形例の不揮発性メモリ400は、メモリアレイユニット620ごとに、データバッファ610およびアドレスデコーダ630を設けたため、アクセス速度を向上させることができる。
<2.第2の実施の形態>
上述の第1の実施の形態では、メモリコントローラ300は、原データにおいてビットごとに重み係数kを乗算してIRドロップを推定していたが、原データのビット数が増大するほど、計算量が増大してしまう。計算量が増大するほど、推定を行う回路の回路規模、計算時間や消費電力が増大するため、計算量を低減することが望ましい。この第2の実施の形態のメモリコントローラ300は、IRドロップを推定する際の計算量を低減した点において第1の実施の形態と異なる。
図21は、第2の実施の形態における電圧降下量推定部310の一構成例を示すブロック図である。この第2の実施の形態の電圧降下量推定部310は、複数の計数部315をさらに備える点において第1の実施の形態と異なる。
第2の実施の形態において、原データは、複数の区間データに分割して処理される。例えば、1000ビットの原データが、それぞれ100ビットからなる10個の区間データに分割される。
計数部315は、i(iは、0乃至9の整数)番目の区間データ内の「1」のビットの個数を計数するものである。計数部315は、計数値cを乗算部311に供給する。この計数値cは、区間データを保持させたメモリセルのリーク電流の和に応じた値である。
第2の実施の形態の重み係数供給部313は、区間データごとに、その区間データ内のビットのそれぞれに対応する配線抵抗の代表値に応じた重み係数kを供給する。例えば、区間データ内の100ビットに対応する100個の配線抵抗の平均値や中央値に応じた値が、その区間の重み係数として用いられる。
第2の実施の形態の乗算部311は、計数値cと重み係数kとを乗算する。第2の実施の形態の加算部314は、それらの乗算値を加算して比較部320に供給する。第2の実施の形態の電圧降下量推定部310および比較部320における処理は、次の式により表される。
Figure 2017138235
このように、第2の実施の形態のメモリコントローラ300は、区間データごとに重み係数を設定し、重み付け加算を行うため、ビットごとに重み係数を設定して重み付け加算を行う第1の実施の形態と比較して計算量を低減することができる。
例えば、第1の実施の形態のメモリコントローラ300が1000ビットを重み付け加算する場合、乗算回数は1000回となり、加算回数は999回となる。
これに対し、第2の実施の形態のメモリコントローラ300が1000ビットを重み付け加算する場合、10個の計数部315のそれぞれの加算回数は、区間データが100ビットであるため、99回である。また、乗算回数は、区間データが10個であるため10回である。また、加算部314の加算回数は、9回である。したがって、加算回数は、999(=99×10+9)回であり、乗算回数は10回である。
上述したように、加算回数が変わらず、乗算回数が1000回から10回に低減するため、全体の計算量が低減する。
このように、本技術の第2の実施の形態によれば、メモリコントローラ300は、区間データごとの重み係数により重み付け加算を行って電圧降下量を推定するため、ビットごとの重み係数により重み付け加算する場合よりも計算量を低減することができる。
<3.第3の実施の形態>
上述の第1の実施の形態では、メモリコントローラ300は、原データにおいてロウ線の配線距離を考慮して電圧降下量を推定していた。しかし、メモリセルはカラム線にも接続されているため、カラム線の配線距離も考慮した方が、電圧降下量を正確に推定することができる。この第3の実施の形態のメモリコントローラ300は、カラム線およびロウ線の両方の配線距離に基づいて電圧降下量を推定する点において第1の実施の形態と異なる。
図22は、第3の実施の形態におけるメモリセルアレイ530内の領域の一例を示す図である。この第3の実施の形態のメモリセルアレイ530は、推定不要領域Aと、列方向推定領域Bと、行方向推定領域Cとに分割される。
推定不要領域Aは、カラムドライバ510からの距離とロウドライバ520からの距離とが所定距離dth以下の矩形領域である。それらの配線距離が所定距離dth以下であるため、推定不要領域の電圧降下量は、他の領域(列方向推定領域Bおよび行方向推定領域C)と比較して少なく、電圧降下量を考慮する必要性に乏しい。このため、第3の実施の形態の電圧降下量推定部310は、推定不要領域Aに書き込まれるデータについて、電圧降下量の推定を行わない。
この推定不要領域Aには、管理情報(反転ビットおよびパリティ)を保持させることが望ましい。これは、管理情報は、電圧降下量に応じて反転されることが無く、電源電圧のマージンに与える影響が軽減されないためである。実装においては、管理情報の書込みの際にアドレス変換部360が、空いている物理アドレスのうち推定不要領域Aのアドレスを論理アドレスに対応付ける。なお、管理情報の書込み先を推定不要領域Aに限定せず、メモリコントローラ300が列方向推定領域Bや行方向推定領域Cに書き込む構成であってもよい。また、メモリコントローラ300が管理情報を推定不要領域Aに優先的に書き込み、推定不要領域Aに空きがなくなった際に、列方向推定領域Bや行方向推定領域Cに書き込む構成であってもよい。
また、列方向推定領域Bは、点Pと点Pとを結ぶ線分により分割される2つの領域のうち、カラムドライバ510に隣接する領域である。ここで、点Pは、カラムドライバ510およびロウドライバ520の両方からの距離が所定距離dthの点である。また、点Pは、カラムドライバ510およびロウドライバ520の両方からの距離がメモリセルアレイ530内において最大の点である。
一方、行方向推定領域Cは、点Pと点Pとを結ぶ線分により分割される2つの領域のうち、ロウドライバ520に隣接する領域である。
これらの列方向推定領域Bおよび行方向推定領域Cには、非管理情報を保持させることが望ましい。
また、点Pおよび点Pを通る対角線により分割される2つの領域のうちカラムドライバ510に隣接する方に、列方向に配列されたメモリセルからなるブロックBLが敷き詰められる。また、ブロックBLのブロックサイズは、ロウドライバ520からの距離が遠いほど大きい。
一方、点Pおよび点Pを通る対角線により分割される2つの領域のうちロウドライバ520に隣接する方に、行方向に配列されたメモリセルからなるブロックBLが敷き詰められる。また、ブロックBLのブロックサイズは、カラムドライバ510からの距離が遠いほど大きい。
上述したように、それぞれのブロックのサイズが異なるため、仮に個々のブロックをアクセス単位とすると、アクセス単位が一定に揃わなくなる。一般にECCの種類により、符号長として用いることができる数値に制限があるため、アクセス単位が一定でないと、ECCに符号化することができなくなるおそれがある。そこで、アドレス変換部360は、合計のブロックサイズが一定になるように、複数のブロックの物理アドレスを組み合わせて指定する。例えば、アクセス単位を8ビットとする場合、アドレス変換部360は、ブロックサイズが1ビットのブロックのアドレスとブロックサイズが7ビットのブロックのアドレスとを組み合わせて指定する。
また、列方向推定領域Bにおいては、カラムドライバ510からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが列方向に細長いブロックに書き込まれる。
また、行方向推定領域Cにおいては、ロウドライバ520からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが行方向に細長いブロックに書き込まれる。
また、列方向に細長いブロックに書き込む際に、カラムドライバ510の代わりにロウドライバ520がデータバッファ410からライトデータを取得する。そして、ロウドライバ520は、ライトデータおよびロウアドレスに基づいてロウ線を駆動する。一方、行方向に細長いブロックに書き込む際には、カラムドライバ510がデータバッファ410からライトデータを取得する。
なお、推定不要領域Aを設けず、メモリセルアレイ530を列方向推定領域Bおよび行方向推定領域Cのみに分割する構成であってもよい。
このように、本技術の第3の実施の形態によれば、列方向推定領域Bにおいてメモリコントローラ300が列方向に配列されたメモリセルからなるブロックの単位で書き込むため、カラム線の配線距離に応じた電圧降下量の増大を抑制することができる。
<4.第4の実施の形態>
上述の第1の実施の形態では、ロウドライバを1つのみ設けていたが、この構成では、不揮発性メモリの高密度化に伴って隣接するロウ線の線間距離が短くなり、実装が困難になるおそれがある。この第4の実施の形態におけるメモリアレイユニット500は、ロウ線の線間距離を長くした点において第1の実施の形態と異なる。
図23は、第4の実施の形態におけるメモリアレイユニット500の一構成例を示すブロック図である。この第4の実施形態のメモリアレイユニット500は、ロウドライバを2つ備える点において第1の実施の形態と異なる。例えば、ロウドライバ520の代わりに、左側ロウドライバ550および右側ロウドライバ580が設けられる。
左側ロウドライバ550は、奇数行を駆動するものであり、右側ロウドライバ580は、偶数行を駆動するものである。このようにロウドライバを2つ備えることにより、1つのみ備える場合と比較して、ドライバ当たりの列数が少なくなるため、ロウ線のそれぞれの線間距離を長くすることができる。これにより、不揮発性メモリを高密度化することができる。あるいは、実装が容易となる。
なお、左側ロウドライバ550は、特許請求の範囲に記載の奇数ロウドライバの一例であり、右側ロウドライバ580は、特許請求の範囲に記載の偶数ロウドライバの一例である。
図24は、第4の実施の形態におけるメモリセルアレイ530内の領域の一例を示す図である。この第4の実施の形態のメモリセルアレイ530は、奇数行推定不要領域A、列方向推定領域B、偶数行推定不要領域C、右側両方向推定領域D、行方向推定領域E、および、左側両方向推定領域Fとに分割される。
奇数行推定不要領域Aは、カラムドライバ510からの配線距離と左側ロウドライバ550からの配線距離とが所定距離dth以下の矩形領域である。左側ロウドライバ550に接続された奇数行の配線距離が所定距離dth以下であるため、その奇数行の電圧降下量は、比較的少なく、電圧降下量を考慮する必要性に乏しい。このため、第4の実施の形態の電圧降下量推定部310は、奇数行推定不要領域Aの奇数行に書き込むデータについて電圧降下量の推定を行わない。一方、奇数行推定不要領域Aの偶数行については、右側ロウドラバ580からの配線距離に応じた重み係数により電圧降下量が推定される。
偶数行推定不要領域Cは、カラムドライバ510からの配線距離と右側ロウドライバ580からの配線距離とが所定距離dth以下の矩形領域である。右側ロウドライバ580に接続された偶数行の配線距離が所定距離dth以下であるため、その偶数行の電圧降下量は、比較的少なく、電圧降下量を考慮する必要性に乏しい。このため、第4の実施の形態の電圧降下量推定部310は、偶数行推定不要領域Cの偶数行に書き込むデータについて電圧降下量の推定を行わない。一方、偶数行推定不要領域Cの奇数行については、左側ロウドライバ550からの配線距離に応じた重み係数により電圧降下量が推定される。
奇数行推定不要領域Aの奇数行と、偶数行推定不要領域Cの偶数行とには、管理情報を保持することが望ましい。それ以外の領域には、非管理情報を保持することが望ましい。
また、奇数行推定不要領域Aおよび偶数行推定不要領域C以外の領域は、点Pおよび点Pを結ぶ線分と、点Pおよび点Pを結ぶ線分とにより4つに分割される。ここで、点Pは、カラムドライバ510および左側ロウドライバ550の両方からの距離が所定距離dthの点である。また、点Pは、カラムドライバ510および左側ロウドライバ550の両方からの距離がメモリセルアレイ530内において最大の点である。点Pは、カラムドライバ510および右側ロウドライバ580の両方からの距離が所定距離dthの点である。また、点Pは、カラムドライバ510および右側ロウドライバ580の両方からの距離がメモリセルアレイ530内において最大の点である。
4つの領域のうちカラムドライバ510に隣接する領域が列方向推定領域Bであり、右側ロウドライバ580に隣接する領域が右側両方向推定領域Dである。また、4つの領域のうち左側ロウドライバ550に隣接する領域が左側両方向推定領域Fであり、残りの領域が行方向推定領域Eである。
また、メモリセルアレイ530を、点PおよびPを通る対角線により2つに分割した場合を考える。これらの領域のうち左側ロウドライバ550に隣接する方の領域内の奇数行において、行方向に配列されたメモリセルからなるブロックBLrwが設けられる。図24において一点鎖線で囲まれた白丸からなる部分は、奇数行のブロックBLrwを示す。このブロックBLrwのブロックサイズは、カラムドライバ510から遠いほど大きくなる。
次に、メモリセルアレイ530を、点PおよびPを通る対角線により2つに分割した場合を考える。これらの領域のうち右側ロウドライバ580に隣接する方の領域内の偶数行において、行方向に配列されたメモリセルからなるブロックBLrbが設けられる。図24において一点鎖線で囲まれた黒丸からなる部分は、偶数行のブロックBLrbを示す。このブロックBLrbのブロックサイズは、カラムドライバ510から遠いほど大きくなる。
また、点PおよびPを通る対角線により分割される領域のうちカラムドライバ510に隣接する方の領域において、列方向に配列された白丸の位置のメモリセルからなるブロックBLcwが設けられる。このブロックBLcwのブロックサイズは、左側ロウドライバ550から遠いほど大きくなる。
一方、点PおよびPを通る対角線により分割される領域のうちカラムドライバ510に隣接する方の領域において、列方向に配列された黒丸の位置のメモリセルからなるブロックBLcbが設けられる。このブロックBLcbのブロックサイズは、右側ロウドライバ580から遠いほど大きくなる。
上述したように、ブロックのサイズが異なるため、第3の実施の形態と同様に、アクセス単位が一定となるように複数のブロックの物理アドレスが指定される。
また、左側両方向推定領域Fの偶数行(黒丸)と、列方向推定領域Bと、右側両方向推定領域Dの奇数行(白丸)とについては、カラムドライバ510からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが列方向に細長いブロックに書き込まれる。
また、左側両方向推定領域Fおよび行方向推定領域Eの奇数行(白丸)については、左側ロウドライバ550からの配線距離に応じた重み係数により電圧降下量が推定される。右側両方向推定領域Dおよび行方向推定領域Eの偶数行(黒丸)については、右側ロウドライバ580からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが行方向に細長いブロックに書き込まれる。
このように、本技術の第4の実施の形態によれば、ロウドライバを2つ設けたため、ロウドライバが1つのみの場合と比較してロウ線の線間距離を長くすることができる。
<5.第5の実施の形態>
上述の第4の実施の形態では、カラムドライバを1つのみ設けていたが、この構成では、不揮発性メモリの高密度化に伴って隣接するカラム線の線間距離が短くなり、実装が困難になるおそれがある。この第5の実施の形態におけるメモリアレイユニット500は、カラム線の線間距離を長くした点において第4の実施の形態と異なる。
図25は、第5の実施の形態におけるメモリアレイユニット500の一構成例を示すブロック図である。この第5の実施形態のメモリアレイユニット500は、カラムドライバを2つ備える点において第4の実施の形態と異なる。例えば、カラムドライバ510の代わりに、上側カラムドライバ560および下側カラムドライバ570が設けられる。
上側カラムドライバ560は、奇数列を駆動するものであり、下側カラムドライバ570は、偶数列を駆動するものである。このようにカラムドライバを2つ備えることにより、1つのみ備える場合と比較して、ドライバ当たりの行数が少なくなるため、カラム線のそれぞれの線間距離を長くすることができる。これにより、不揮発性メモリを高密度化することができる。あるいは、実装が容易となる。
なお、上側カラムドライバ560は、特許請求の範囲に記載の奇数カラムドライバの一例であり、下側カラムドライバ570は、特許請求の範囲に記載の偶数カラムドライバの一例である。
また、カラムドライバおよびロウドライバを2つずつ設けているが、カラムドライバを2つ、ロウドライバを1つのみ設ける構成であってもよい。
図26は、第5の実施の形態におけるメモリセルアレイ530内の領域の一例を示す図である。この第5の実施の形態のメモリセルアレイ530は、推定不要領域A、上側行方向推定領域B、右側列方向推定領域C、下側行方向推定領域Dおよび左側列方向推定領域Eに分割される。
推定不要領域Aは、点P、P、PおよびPを頂点とする矩形の領域である。ここで、点Pは、上側カラムドライバ560および左側ロウドライバ550からの距離が所定距離dthの点である。点Pは、上側カラムドライバ560および右側ロウドライバ580からの距離が所定距離dthの点である。点Pは、下側カラムドライバ570および右側ロウドライバ580からの距離が所定距離dthの点である。点Pは、下側カラムドライバ570および左側ロウドライバ550からの距離が所定距離dthの点である。
推定不要領域A以外の領域は、点PおよびPを通る対角線と、点PおよびPを通る対角点とにより4つに分割される。この4つの領域のうち上側カラムドライバ560に隣接する領域が上側行方向推定領域Bであり、右側ロウドライバ580に隣接する領域が右側列方向推定領域Cである。また、4つの領域のうち下側カラムドライバ570に隣接する領域が下側行方向推定領域Dであり、左側ロウドライバ550に隣接する領域が左側列方向推定領域Eである。
推定不要領域Aには、管理情報を保持することが望ましい。それ以外の領域には、非管理情報を保持することが望ましい。
また、メモリセルアレイ530を対称な2つの対角線により4つに分割した場合を考える。これらの4つの領域のうち上側カラムドライバ560に隣接する領域には、行方向に配列されたメモリセルからなるブロックが敷き詰められる。このブロックのブロックサイズは、下側カラムドライバ570から遠いほど大きくなる。また、その4つの領域のうち下側カラムドライバ570に隣接する領域にも、行方向に配列されたメモリセルからなるブロックが敷き詰められる。このブロックのブロックサイズは、上側カラムドライバ560から遠いほど大きくなる。
対称な2つの対角線により分割される4つの領域のうち右側ロウドライバ580に隣接する領域には、列方向に配列されたメモリセルからなるブロックが敷き詰められる。このブロックのブロックサイズは、左側ロウドライバ550から遠いほど大きくなる。また、その4つの領域のうち左側ロウドライバ550に隣接する領域にも、列方向に配列されたメモリセルからなるブロックが敷き詰められる。このブロックのブロックサイズは、右側ロウドライバ580から遠いほど大きくなる。
上述したように、ブロックのサイズが異なるため、第3の実施の形態と同様に、アクセス単位が一定となるように複数のブロックの物理アドレスが指定される。
推定不要領域Aにおいては、電圧降下量が推定されず、反転符号化が行われない。また、上側行方向推定領域Bおよび下側行方向推定領域Dの奇数行においては、左側ロウドライバ550からの配線距離に応じた重み係数により電圧降下量が推定される。一方、上側行方向推定領域Bおよび下側行方向推定領域Dの偶数行においては、右側ロウドライバ580からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが行方向に細長いブロックに書き込まれる。
また、右側列方向推定領域Cおよび左側列方向推定領域Eの奇数列においては、上側カラムドライバ560からの配線距離に応じた重み係数により電圧降下量が推定される。一方、それらの領域の偶数列においては、下側カラムドライバ570からの配線距離に応じた重み係数により電圧降下量が推定される。そして、符号化されたデータが列方向に細長いブロックに書き込まれる。
このように、本技術の第5の実施の形態によれば、カラムドライバを2つ設けたため、カラムドライバが1つのみの場合と比較してカラム線の線間距離を長くすることができる。
<6.第6の実施の形態>
上述の第1の実施の形態では、電圧降下量を推定して反転符号化してから、ECC符号化を行っていた。しかし、このECC符号化におけるパリティは、電圧降下量推定の後に生成されるため、電圧降下量の増大を抑制するための反転符号化が行われないという問題がある。このパリティについても電圧降下量を推定して反転符号化することが望ましい。この第6の実施の形態のメモリシステムは、パリティについても反転符号化する点において第1の実施の形態と異なる。
図27は、第6の実施の形態におけるメモリコントローラ300の機能構成例を示すブロック図である。この第6の実施の形態のメモリコントローラ300は、電圧降下量推定部310、比較部320、ライト側反転部331およびリード側反転部341を備えない点において第1の実施の形態と異なる。このメモリコントローラ300は、原データを反転せずにECC符号化を行って不揮発性メモリ400に供給する。
図28は、第6の実施の形態におけるメモリ制御部460の一構成例を示すブロック図である。このメモリ制御部460は、電圧降下量推定部461、比較部462、ライト側反転部463、ライト処理部464、リード側反転部465、リード処理部466およびリクエストデコーダ467を備える。
リクエストデコーダ467は、リクエストをデコードするものである。このリクエストデコーダ467は、デコード結果をライト処理部464およびリード処理部466に供給する。
電圧降下量推定部461、比較部462、ライト側反転部463およびリード側反転部465の構成は、第1の実施の形態の電圧降下量推定部310、比較部320、ライト側反転部331およびリード側反転部341と同様である。ライト側反転部463は、ECC符号化されたライトデータを反転符号化し、バス440に供給する。
ライト処理部464は、制御信号(セット信号やリセット信号)により反転符号化されたデータをライトアドレスに書き込むものである。リード処理部466は、制御信号(センス信号)により、ライトアドレスからリードデータを読み出すものである。
なお、第6の実施の形態において、上述の第2乃至第5の各実施の形態の構成を適用することができる。特に、電圧降下量の推定を行わない推定不要領域が設けられる第3乃至第5の実施の形態を適用する際には、その推定不要領域に反転ビットを書き込み、反転ビット以外のデータを残りの領域に書き込むことが望ましい。また、第6の実施の形態において、不揮発性メモリ400が反転符号化を行っているが、メモリコントローラ300が、ECC符号化後に反転符号化をさらに行う構成としてもよい。
このように、本技術の第6の実施の形態によれば、メモリシステムがECC符号化を行ってから反転符号化を行うことにより、パリティについても電圧降下量を推定して符号化することができる。
<7.第7の実施の形態>
上述の第1の実施の形態では、電圧降下量が閾値を超えないように、原データを反転していたが、電圧降下量を閾値以下に抑制することができるのであれば、反転符号化以外の符号化を行ってもよい。例えば、ビットごとに、順序を入れ替える符号化を行ってもよい。この第7の実施の形態のメモリコントローラ300は、ビットごとに、順序を入れ替える符号化を反転符号化の代わりに行う点において第1の実施の形態と異なる。
図29は、第7の実施の形態における符号化部330の一構成例を示すブロック図である。この第7の実施の形態の符号化部330は、ライト側反転部331の代わりにライト側入替部333を備える点において第1の実施の形態と異なる。
ライト側入替部333は、原データにおいてビットごとに順序を入れ替える処理を入替符号化として行うものである。このライト側入替部333は、比較部320から比較結果を入替ビットとして受け取る。入替ビットが「1」の場合にライト側入替部333は、原データのnビット目を、7−nビット目に入れ替える処理をビットのそれぞれについて行う。ライト側入替部333は、入れ替え後のデータを入替データとして入替ビットとともに不揮発性メモリ400に供給する。
一方、入替ビットが「0」の場合にライト側入替部333は、原データを入替ビットとともに不揮発性メモリ400に供給する。
図30は、第7の実施の形態における復号部340の一構成例を示すブロック図である。この第7の実施の形態の復号部340は、リード側反転部341の代わりにリード側入替部343を備える点において第1の実施の形態と異なる。このリード側入替部343の構成は、ライト側入替部333と同様である。
図31は、第7の実施の形態における符号化前後のデータの一例を示す図である。同図におけるaは、原データの一例を示す図であり、同図におけるbは、入替データの一例を示す図である。また、同図におけるcは、ECC符号化対象データの一例を示す図であり、同図におけるdは、ライトデータの一例を示す図である。
まず、メモリコントローラ300は、原データを反転せずにメモリセルに保持させた際のIRドロップを推定する。原データを2進数で「00000111」とすると、IRドロップは21ILEAKと推定される。
IRドロップの推定値が閾値を超える場合にメモリコントローラ300は、入替符号化を行い、図13におけるbに例示するように入替データ「11100000」を生成する。この反転データのIRドロップは、式1より6ILEAKと推定される。このように、反転により、反転前と比較してIRドロップが減少する。
そして、メモリコントローラ300は、図13におけるcに例示するように、「1」を設定した入替ビットと入替データ(非管理情報)とをECC符号化対象データとし、同図におけるdに例示するようにパリティを生成する。
このように、本技術の第7の実施の形態によれば、メモリシステムは、電圧降下量を推定し、その推定値が閾値を超える場合に原データにおいてビットのそれぞれの順序を入れ替えるため、電圧降下量の増大を抑制することができる。
<8.第8の実施の形態>
上述の第1の実施の形態では、不揮発性メモリ400として2値メモリセルを設けていたが多値メモリセルを設けてもよい。この第5の実施の形態のメモリシステムは、多値メモリセルを備える点において第1の実施の形態と異なる。
図32は、第8の実施の形態における可変抵抗素子542の抵抗分布の一例を示す図である。同図における縦軸は、メモリセル540のセル数であり、横軸は、抵抗値である。メモリセル540では、その抵抗分布は、2つの閾値Rref_LおよびRref_Hにより3つに分けられている。LRSおよびHRSの間の抵抗値の状態は、中抵抗状態(MRS:Middle-Resistance State)と呼ばれる。例えば、LRSに「2」が割り当てられ、MRSに「1」が割り当てられ、HRSに「0」が割り当てられる。
図33は、第8の実施の形態における符号化部330の一構成例を示すブロック図である。この第8の実施の形態の符号化部330は、ライト側反転部331の代わりに、ライト側データ置換部334を備える点において第1の実施の形態と異なる。
ライト側データ置換部334は、原データにおいてLRSに対応する値「2」を、HRSに対応する値「0」に置換し、「0」を「2」に置換するものである。MRSに対応する「1」については、置換は行われない。10進数で「2」および「0」を2進数で表すと「10」および「00」であるため、これらの一方を他方に置き換える置換処理では、2ビットの一方のみを反転する部分的な反転処理が行われる。
このライト側データ置換部334は、比較部320から比較結果を置換ビットとして受け取る。置換ビットが「1」の場合にライト側データ置換部334は、原データの置換処理を行う。そして、ライト側データ置換部334は、置換処理後のデータを置換データとして置換ビットとともに不揮発性メモリ400に供給する。
一方、置換ビットが「0」の場合ライト側データ置換部334は、原データを置換ビットとともに不揮発性メモリ400に供給する。
図34は、第8の実施の形態における復号部340の一構成例を示すブロック図である。この第8の実施の形態の復号部340は、リード側反転部341の代わりにリード側データ置換部344を備える点において第1の実施の形態と異なる。このリード側データ置換部344の構成は、ライト側データ置換部334と同様である。
図35は、第8の実施の形態における符号化前後のデータの一例を示す図である。同図におけるaは、原データの一例を示す図であり、同図におけるbは、置換データの一例を示す図である。また、同図におけるcは、ECC符号化対象データの一例を示す図であり、同図におけるdは、ライトデータの一例を示す図である。
まず、メモリコントローラ300は、置換処理を行わずに原データをメモリセルに保持させた際のIRドロップを推定する。原データを2進数で「0000000001011010」とする。2ビットごとに原データを区切って10進数で表すと、「00001122」である。この原データにおいて「1」(MRS)のメモリセルのリーク電流をILEAK、「2」(LRS)のメモリセルのリーク電流を2ILEAKとすると、IRドロップは41ILEAKと推定される。
IRドロップの推定値が閾値を超える場合にメモリコントローラ300は、置換処理を行い、図35におけるbに例示するように入替データ「22221100」を生成する。この反転データのIRドロップは、31ILEAKと推定される。このように、置換処理により、IRドロップが減少する。
このように、本技術の第8の実施の形態によれば、電圧降下量の推定値に基づいてHRSに対応する値をLRSに対応する値に置き換えるため、多値メモリセルを設けたメモリシステムにおいて、電圧降下量の増大を抑制することができる。
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
なお、本技術は以下のような構成もとることができる。
(1)メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、
前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行う符号化部と
を具備するメモリコントローラ。
(2)前記原データは、複数の区間データを含み、
前記電圧降下量推定部は、前記複数の区間データのそれぞれにおける前記配線抵抗の代表値に応じた重み係数と前記複数の区間データのそれぞれにおけるリーク電流に応じた値とに基づいて前記電圧降下量を推定する
前記(1)記載のメモリコントローラ。
(3)前記メモリセルが二次元格子状に配列されたメモリセルアレイと、
所定の方向に配列された前記メモリセルからなる行を駆動するロウドライバと、
前記所定の方向に垂直な方向に配列された前記メモリセルからなる列を駆動するカラムドライバと
をさらに具備し、
前記電圧降下量推定部は、前記ロウドライバまたは前記カラムドライバから前記メモリセルまでの前記配線の配線抵抗と前記リーク電流とから前記電圧降下量を推定する
前記(1)または(2)に記載のメモリコントローラ。
(4)前記メモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと前記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部をさらに具備する
前記(3)記載のメモリコントローラ。
(5)前記アドレス生成部は、ブロックサイズの合計が一定となる複数の前記ブロックの位置を示すアドレスをライトアドレスとして生成する
前記(4)記載のメモリコントローラ。
(6)前記メモリセルアレイは、前記ロウドライバからの配線距離と前記カラムドライバからの配線距離とが所定距離を超えない推定不要領域と前記配線距離が前記所定距離を超える推定領域とに分割され、
前記電圧降下量推定部は、前記推定領域に前記原データを保持させる場合には前記電圧降下量を推定する
前記(4)または(5)に記載のメモリコントローラ。
(7)前記ロウドライバは、
奇数行を駆動する奇数ロウドライバと、
偶数行を駆動する偶数ロウドライバと
を備え、
前記電圧降下量推定部は、所定の推定領域内の前記奇数行に前記原データを保持させる場合には前記奇数ロウドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定し、前記所定の推定領域内の前記偶数行に前記原データを保持させる場合には前記偶数ロウドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定する
前記(6)記載のメモリコントローラ。
(8)前記カラムドライバは、
奇数列を駆動する奇数カラムドライバと、
偶数列を駆動する偶数カラムドライバと
を備え、
前記電圧降下量推定部は、所定の推定領域内の前記奇数列に前記原データを保持させる場合には前記奇数カラムドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定し、前記所定の推定領域内の前記偶数列に前記原データを保持させる場合には前記偶数カラムドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定する
前記(6)または(7)に記載のメモリコントローラ。
(9)前記符号化部は、前記所定の符号化処理において非管理情報と当該非管理情報を復号するための管理情報とを出力する
前記(1)から(8)のいずれかに記載のメモリコントローラ。
(10)前記所定の符号化処理は、前記原データを反転する反転処理であり、
前記管理情報は、前記反転処理を行ったか否かを示す反転ビットを含む
前記(9)記載のメモリシステム。
(11)前記所定の符号化処理は、前記原データのビットの順序を入れ替える入替処理であり、
前記管理情報は、前記入替処理を行ったか否かを示す入替ビットを含む
前記(9)記載のメモリコントローラ。
(12)前記メモリセルは、複数のビットを保持する多値メモリセルであり、
前記符号化処理は、前記原データにおいて前記多値メモリセルに保持させる特定の値を前記特定の値と異なる値に置換する置換処理を含み、
前記管理情報は、前記置換処理を行ったか否かを示す置換ビットを含む
前記(9)記載のメモリコントローラ。
(13)前記符号化部は、前記非管理情報の誤りの有無を検出するためのパリティを生成する誤り検出訂正符号化処理と前記所定の符号化処理とを行う
前記(9)記載のメモリコントローラ。
(14)前記符号化部は、前記原データの誤りの有無を検出するためのパリティを生成して前記原データとともに前記電圧降下量推定部に供給する誤り検出訂正符号化処理と前記所定の符号化処理とを行い、
前記電圧降下量推定部は、前記配線抵抗と前記原データおよび前記パリティを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する
前記(1)から(12)のいずれかに記載のメモリコントローラ。
(15)二次元格子状に複数のメモリセルが配列されたメモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと前記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部と、
原データを符号化して前記ライトアドレスに保持させるライトデータとして供給する符号化部と
を具備するメモリコントローラ。
(16)メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、
前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行ってライトデータを生成する符号化部と、
前記ライトデータに基づいて前記メモリセルアレイを駆動するドライバと
を具備する不揮発性メモリ。
(17)メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定手順と、 前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行う符号化手順と
を具備するメモリコントローラの制御方法。
100 ホストコンピュータ
200 ストレージ
300 メモリコントローラ
301 ホストインターフェース
302 RAM
303 CPU
304 ECC処理部
305 ROM
306、440 バス
307 メモリインターフェース
310、461 電圧降下量推定部
311 乗算部
312 乗算器
313 重み係数供給部
314 加算部
315 計数部
320、462 比較部
330 符号化部
331、463 ライト側反転部
332 ECC符号化部
333 ライト側入替部
334 ライト側データ置換部
340 復号部
341、465 リード側反転部
342 ECC復号部
343 リード側入替部
344 リード側データ置換部
350 コマンドデコーダ
360 アドレス変換部
370 アドレス変換テーブル
400 不揮発性メモリ
410、610 データバッファ
420 MAU配置部
430、630 アドレスデコーダ
450 制御インターフェース
460 メモリ制御部
464 ライト処理部
466 リード処理部
467 リクエストデコーダ
500、620 メモリアレイユニット
510 カラムドライバ
520 ロウドライバ
530 メモリセルアレイ
540 メモリセル
541 双方向ダイオード
542 可変抵抗素子
550 左側ロウドライバ
560 上側カラムドライバ
570 下側カラムドライバ
580 右側ロウドライバ
600 メモリユニット

Claims (17)

  1. メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、
    前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行う符号化部と
    を具備するメモリコントローラ。
  2. 前記原データは、複数の区間データを含み、
    前記電圧降下量推定部は、前記複数の区間データのそれぞれにおける前記配線抵抗の代表値に応じた重み係数と前記複数の区間データのそれぞれにおけるリーク電流に応じた値とに基づいて前記電圧降下量を推定する
    請求項1記載のメモリコントローラ。
  3. 前記メモリセルが二次元格子状に配列されたメモリセルアレイと、
    所定の方向に配列された前記メモリセルからなる行を駆動するロウドライバと、
    前記所定の方向に垂直な方向に配列された前記メモリセルからなる列を駆動するカラムドライバと
    をさらに具備し、
    前記電圧降下量推定部は、前記ロウドライバまたは前記カラムドライバから前記メモリセルまでの前記配線の配線抵抗と前記リーク電流とから前記電圧降下量を推定する
    請求項1記載のメモリコントローラ。
  4. 前記メモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと前記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部をさらに具備する
    請求項3記載のメモリコントローラ。
  5. 前記アドレス生成部は、ブロックサイズの合計が一定となる複数の前記ブロックの位置を示すアドレスをライトアドレスとして生成する
    請求項4記載のメモリコントローラ。
  6. 前記メモリセルアレイは、前記ロウドライバからの配線距離と前記カラムドライバからの配線距離とが所定距離を超えない推定不要領域と前記配線距離が前記所定距離を超える推定領域とに分割され、
    前記電圧降下量推定部は、前記推定領域に前記原データを保持させる場合には前記電圧降下量を推定する
    請求項4記載のメモリコントローラ。
  7. 前記ロウドライバは、
    奇数行を駆動する奇数ロウドライバと、
    偶数行を駆動する偶数ロウドライバと
    を備え、
    前記電圧降下量推定部は、所定の推定領域内の前記奇数行に前記原データを保持させる場合には前記奇数ロウドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定し、前記所定の推定領域内の前記偶数行に前記原データを保持させる場合には前記偶数ロウドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定する
    請求項6記載のメモリコントローラ。
  8. 前記カラムドライバは、
    奇数列を駆動する奇数カラムドライバと、
    偶数列を駆動する偶数カラムドライバと
    を備え、
    前記電圧降下量推定部は、所定の推定領域内の前記奇数列に前記原データを保持させる場合には前記奇数カラムドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定し、前記所定の推定領域内の前記偶数列に前記原データを保持させる場合には前記偶数カラムドライバからの前記配線の配線抵抗に基づいて前記電圧降下量を推定する
    請求項6記載のメモリコントローラ。
  9. 前記符号化部は、前記所定の符号化処理において非管理情報と当該非管理情報を復号するための管理情報とを出力する
    請求項1記載のメモリコントローラ。
  10. 前記所定の符号化処理は、前記原データを反転する反転処理であり、
    前記管理情報は、前記反転処理を行ったか否かを示す反転ビットを含む
    請求項9記載のメモリコントローラ。
  11. 前記所定の符号化処理は、前記原データのビットの順序を入れ替える入替処理であり、
    前記管理情報は、前記入替処理を行ったか否かを示す入替ビットを含む
    請求項9記載のメモリコントローラ。
  12. 前記メモリセルは、複数のビットを保持する多値メモリセルであり、
    前記符号化処理は、前記原データにおいて前記多値メモリセルに保持させる特定の値を前記特定の値と異なる値に置換する置換処理を含み、
    前記管理情報は、前記置換処理を行ったか否かを示す置換ビットを含む
    請求項9記載のメモリコントローラ。
  13. 前記符号化部は、前記非管理情報の誤りの有無を検出するためのパリティを生成する誤り検出訂正符号化処理と前記所定の符号化処理とを行う
    請求項9記載のメモリコントローラ。
  14. 前記符号化部は、前記原データの誤りの有無を検出するためのパリティを生成して前記原データとともに前記電圧降下量推定部に供給する誤り検出訂正符号化処理と前記所定の符号化処理とを行い、
    前記電圧降下量推定部は、前記配線抵抗と前記原データおよび前記パリティを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する
    請求項1記載のメモリコントローラ。
  15. 二次元格子状に複数のメモリセルが配列されたメモリセルアレイにおいて所定の方向に配列されたメモリセルからなるブロックの位置を示すアドレスと前記所定の方向に垂直な方向に配列されたメモリセルからなるブロックの位置を示すアドレスとのいずれかをライトアドレスとして生成するアドレス生成部と、
    原データを符号化して前記ライトアドレスに保持させるライトデータとして供給する符号化部と
    を具備するメモリコントローラ。
  16. メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定部と、
    前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行ってライトデータを生成する符号化部と、
    前記ライトデータに基づいて前記メモリセルアレイを駆動するドライバと
    を具備する不揮発性メモリ。
  17. メモリセルまでの配線の配線抵抗と原データを前記メモリセルに保持させた際に前記メモリセルに生じるリーク電流とから電圧降下量を推定する電圧降下量推定手順と、
    前記推定された電圧降下量が所定の閾値を超える場合には所定の符号化処理を前記原データに対して行う符号化手順と
    を具備するメモリコントローラの制御方法。
JP2017566533A 2016-02-08 2016-12-01 メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法 Active JP6958363B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016021813 2016-02-08
JP2016021813 2016-02-08
PCT/JP2016/085740 WO2017138235A1 (ja) 2016-02-08 2016-12-01 メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法

Publications (2)

Publication Number Publication Date
JPWO2017138235A1 true JPWO2017138235A1 (ja) 2018-11-29
JP6958363B2 JP6958363B2 (ja) 2021-11-02

Family

ID=59563251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017566533A Active JP6958363B2 (ja) 2016-02-08 2016-12-01 メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法

Country Status (3)

Country Link
US (1) US10664343B2 (ja)
JP (1) JP6958363B2 (ja)
WO (1) WO2017138235A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107844716A (zh) * 2017-11-15 2018-03-27 深圳佰维存储科技股份有限公司 一种固态硬盘掉电保护装置
US10916324B2 (en) * 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
KR20220148866A (ko) 2020-03-03 2022-11-07 마이크론 테크놀로지, 인크 메모리 셀을 위한 카운터 기반 감지 증폭기 방법
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0737378A (ja) * 1993-07-19 1995-02-07 Nec Corp メモリ素子
JP2007140750A (ja) * 2005-11-16 2007-06-07 Renesas Technology Corp 直交変換回路
JP2007299436A (ja) * 2006-04-27 2007-11-15 Sony Corp 記憶装置の記録方法
US20090237979A1 (en) * 2008-03-21 2009-09-24 Kabushiki Kaisha Toshiba Semiconductor memory device and semiconductor memory system
WO2012002931A1 (en) * 2010-06-29 2012-01-05 Hewlett-Packard Development Company, L.P. Method and system for encoding data for storage in a memory array
US20130272078A1 (en) * 2012-04-16 2013-10-17 Sony Corporation Storage controlling apparatus, memory system, information processing system and storage controlling method
WO2015182100A1 (ja) * 2014-05-26 2015-12-03 パナソニックIpマネジメント株式会社 半導体記憶装置
WO2016013285A1 (ja) * 2014-07-24 2016-01-28 ソニー株式会社 メモリコントローラおよびメモリコントローラの制御方法
WO2017138234A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756917B2 (en) * 2001-09-28 2010-07-13 Baseline, Llc Two wire communication apparatus and method
WO2004077556A1 (ja) * 2003-02-26 2004-09-10 Sanyo Electric Co., Ltd. 半導体集積回路装置及びその電源配線方法
JP4487237B2 (ja) * 2003-12-25 2010-06-23 エルピーダメモリ株式会社 半導体装置
US7457156B2 (en) * 2004-09-02 2008-11-25 Micron Technology, Inc. NAND flash depletion cell structure
JP4989872B2 (ja) 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置
JP4054347B2 (ja) * 2005-12-16 2008-02-27 シャープ株式会社 不揮発性半導体記憶装置
JP4398945B2 (ja) * 2006-02-23 2010-01-13 シャープ株式会社 不揮発性半導体記憶装置及びデータ書き換え方法
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
CN101542632B (zh) * 2007-06-01 2012-12-26 松下电器产业株式会社 电阻变化型存储装置
KR101539297B1 (ko) * 2009-01-05 2015-07-24 삼성전자주식회사 반도체 장치, 이를 포함하는 반도체 시스템, 및 반도체 장치의 전압 공급방법
US9582354B2 (en) 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0737378A (ja) * 1993-07-19 1995-02-07 Nec Corp メモリ素子
JP2007140750A (ja) * 2005-11-16 2007-06-07 Renesas Technology Corp 直交変換回路
JP2007299436A (ja) * 2006-04-27 2007-11-15 Sony Corp 記憶装置の記録方法
US20090237979A1 (en) * 2008-03-21 2009-09-24 Kabushiki Kaisha Toshiba Semiconductor memory device and semiconductor memory system
JP2009230796A (ja) * 2008-03-21 2009-10-08 Toshiba Corp 半導体記憶装置及び半導体記憶システム
WO2012002931A1 (en) * 2010-06-29 2012-01-05 Hewlett-Packard Development Company, L.P. Method and system for encoding data for storage in a memory array
US20130097396A1 (en) * 2010-06-29 2013-04-18 Erik Ordentlich Method and system for encoding data for storage in a memory array
US20130272078A1 (en) * 2012-04-16 2013-10-17 Sony Corporation Storage controlling apparatus, memory system, information processing system and storage controlling method
JP2013239142A (ja) * 2012-04-16 2013-11-28 Sony Corp 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
WO2015182100A1 (ja) * 2014-05-26 2015-12-03 パナソニックIpマネジメント株式会社 半導体記憶装置
WO2016013285A1 (ja) * 2014-07-24 2016-01-28 ソニー株式会社 メモリコントローラおよびメモリコントローラの制御方法
WO2017138234A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法

Also Published As

Publication number Publication date
WO2017138235A1 (ja) 2017-08-17
US20190034266A1 (en) 2019-01-31
US10664343B2 (en) 2020-05-26
JP6958363B2 (ja) 2021-11-02

Similar Documents

Publication Publication Date Title
WO2017138235A1 (ja) メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法
TWI627634B (zh) 記憶體中錯誤校正碼操作
US10741245B2 (en) Resistive memory device and resistive memory system including a plurality of layers, and method of operating the system
US8510633B2 (en) Semiconductor storage device and method of operating the same
CN110580926A (zh) 均衡存储器件的误码率的方法
KR102254102B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US10031865B2 (en) Memory system, storage device, and method for controlling memory system
JP2011165301A (ja) フラッシュメモリ装置及びその読み出し方法
JP6510758B2 (ja) リファレンスセルを含む不揮発性メモリ装置及びそれのデータ管理方法
US11081178B2 (en) Memory, information processing system, and method of controlling memory
JP6891817B2 (ja) メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
KR20180000593A (ko) 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
TW202244931A (zh) 在記憶體單元之讀取期間識別記憶體單元之程式化模式
JP6657634B2 (ja) 符号化装置、メモリシステム、通信システムおよび符号化方法
CN117642823A (zh) 集成电路存储器装置中错误校正码技术的选择性及动态部署
EP3579235B1 (en) Method of equalizing bit error rates of memory device
TW202242881A (zh) 基於讀取記憶體單元期間所獲得之單元統計數據識別記憶體單元之程式化模式
TW202244936A (zh) 在不同模式中之適應性地程式化記憶體單元以最佳化效能
US20140025907A1 (en) Storage control apparatus, storage apparatus, and processing methods thereof
KR20160059050A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20190332322A1 (en) Memory system including resistive variable memory device and operating method thereof
US20130044011A1 (en) Encoding data based on weight constraints
JP2016062463A (ja) メモリシステム、誤り訂正装置、および誤り訂正方法
KR101816642B1 (ko) 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법
CN111326190B (zh) 相变随机存取存储器单元阵列及其写入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210920

R151 Written notification of patent or utility model registration

Ref document number: 6958363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151