JP2023044168A - メモリコントローラ、メモリシステム、及び情報処理システム - Google Patents

メモリコントローラ、メモリシステム、及び情報処理システム Download PDF

Info

Publication number
JP2023044168A
JP2023044168A JP2021152058A JP2021152058A JP2023044168A JP 2023044168 A JP2023044168 A JP 2023044168A JP 2021152058 A JP2021152058 A JP 2021152058A JP 2021152058 A JP2021152058 A JP 2021152058A JP 2023044168 A JP2023044168 A JP 2023044168A
Authority
JP
Japan
Prior art keywords
data
memory
physical address
read
mirroring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021152058A
Other languages
English (en)
Inventor
英樹 山田
Hideki Yamada
政信 白川
Masanobu Shirakawa
奈穂美 武田
Naomi Takeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kioxia Corp
Original Assignee
Kioxia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kioxia Corp filed Critical Kioxia Corp
Priority to JP2021152058A priority Critical patent/JP2023044168A/ja
Priority to US17/695,086 priority patent/US11797232B2/en
Publication of JP2023044168A publication Critical patent/JP2023044168A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Abstract

Figure 2023044168000001
【課題】メモリシステムのレイテンシを改善させる。
【解決手段】実施形態のメモリコントローラ10は、メモリデバイス20P及び20Mを制御する。メモリコントローラ10は制御回路を含む。制御回路は、ホスト機器HDから第1の論理アドレスLA0への第1のデータDT0の書き込み要求を受信すると、第1の論理アドレスLA0に第1ビットに対応する第1の物理アドレスPA0を割り当てて、第1の物理アドレスPA0への第1のデータDT0の書き込みを第1のメモリデバイス20Pに命令し、第1の物理アドレスPA0に第2ビットに対応する第1のミラーリング物理アドレスMPA0を割り当てて、第1のミラーリング物理アドレスMPA0への第1のデータDT0の書き込みを第2のメモリデバイス20Mに命令する。第1ビットを読み出すための前記メモリセルへの読み出し回数は、第2ビットを読み出すための前記メモリセルへの読み出し回数と異なる。
【選択図】図10

Description

実施形態は、メモリコントローラ、メモリシステム、及び情報処理システムに関する。
データ冗長化技術の一種としてミラーリング技術が知られている。
特許第5894167号公報 特開2021-043912号公報
メモリシステムのレイテンシを改善させる。
実施形態のメモリコントローラは、第1及び第2のメモリデバイスを制御する。第1及び第2のメモリデバイスのそれぞれは、第1ビットと第2ビットとを含む複数ビットデータを記憶するメモリセルを含む。メモリコントローラは、外部のホスト機器から受信したデータを第1のメモリデバイスと第2のメモリデバイスとを用いて二重化して保存する制御回路を含む。制御回路は、ホスト機器から第1の論理アドレスへの第1のデータの書き込み要求を受信すると、第1の論理アドレスに、第1ビットに対応する第1の物理アドレスを割り当てて、第1の物理アドレスへの第1のデータの書き込みを、第1のメモリデバイスに命令し、第1の物理アドレスに、第2ビットに対応する第1のミラーリング物理アドレスを割り当てて、第1のミラーリング物理アドレスへの第1のデータの書き込みを、第2のメモリデバイスに命令する。第1ビットを読み出すための前記メモリセルへの読み出し回数は、第2ビットを読み出すための前記メモリセルへの読み出し回数と異なる。
第1実施形態に係る情報処理システムの構成の一例を示すブロック図。 第1実施形態に係るメモリコントローラの構成の一例を示すブロック図。 第1実施形態に係るメモリデバイスの構成の一例を示すブロック図。 第1実施形態に係るメモリデバイスが備えるメモリセルアレイの回路構成の一例を示す回路図。 第1実施形態に係るメモリデバイスが備えるメモリセルアレイの平面レイアウトの一例を示す平面図。 第1実施形態に係るメモリデバイスが備えるメモリセルアレイの断面構造の一例を示す、図5のVI-VI線に沿った断面図。 第1実施形態に係るメモリデバイスが備えるメモリピラーの断面構造の一例を示す、図6のVII-VII線に沿った断面図。 第1実施形態に係るメモリシステムにおけるメモリセルトランジスタの閾値電圧分布及びデータの割り当ての一例を示す模式図。 第1実施形態に係るメモリシステムの書き込み動作の一例を示すフローチャート。 第1実施形態に係るメモリシステムの書き込み動作の具体例を示す概略図。 第1実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。 第1実施形態に係るメモリシステムの読み出し動作の具体例を示す概略図。 第1実施形態に係るメモリシステムの読み出し動作における読み出し回数の一例を示すテーブル。 第1実施形態の変形例における書き込み動作の具体例を示す概略図。 第1実施形態の変形例における読み出し動作の具体例を示す概略図。 第2実施形態に係るメモリシステムの読み出し動作の一例を示すフローチャート。 第3実施形態に係るメモリデバイスの構成の一例を示すブロック図。 第3実施形態に係るメモリデバイスが備えるメモリセルアレイの構成の一例を示すブロック図。 シフトレジスタ型不揮発性メモリの書き込み動作の一例を示す概略図。 シフトレジスタ型不揮発性メモリの読み出し動作の一例を示す概略図。 第3実施形態に係るメモリシステムの書き込み動作の具体例を示す概略図。 第3実施形態に係るメモリシステムの読み出し動作の具体例を示す概略図。 第3実施形態に係るメモリシステムの読み出し動作におけるシフト回数の一例を示すテーブル。 第4実施形態の第1の例に係る情報処理システムの構成の一例を示すブロック図。 第4実施形態の第2の例に係る情報処理システムの構成の一例を示すブロック図。
以下に、実施形態について図面を参照して説明する。各実施形態は、発明の技術的思想を具体化するための装置や方法を例示している。図面は、模式的又は概念的なものである。各図面の寸法や比率などは、必ずしも現実のものと同一とは限らない。構成の図示は、図を見易くするために適宜省略されている。図面に付加されたハッチングは、構成要素の素材や特性とは必ずしも関連していない。本明細書において、X方向、Y方向、及びZ方向は、互いに交差する方向を示している。また、略同一の機能及び構成を有する構成要素には、同一の符号が付されている。参照符号に付加された数字やアルファベットは、同じ参照符号により参照され、且つ類似した要素同士を区別するために使用される。
[1]第1実施形態
以下に、第1実施形態に係る情報処理システム1について説明する。
[1-1]構成
[1-1-1]情報処理システム1の構成
図1は、第1実施形態に係る情報処理システム1の構成の一例を示すブロック図である。図1に示すように、情報処理システム1は、ホスト機器HD及びメモリシステムMSを含む。ホスト機器HDは、パーソナルコンピュータ、携帯情報端末、サーバーなどの電子機器である。メモリシステムMSは、メモリカード、SSD(solid state drive)などの半導体ストレージデバイスである。メモリシステムMSは、メモリコントローラ10と、メモリデバイス20P及び20Mとを含む。
メモリコントローラ10は、例えば、SoC(System On a Chip)として構成される半導体集積回路である。メモリコントローラ10は、バスHBを介してホスト機器HDに接続される。メモリコントローラ10は、ホスト機器HDから受信した要求に基づいて各メモリデバイス20を制御する。メモリコントローラ10は、チャネルCH1及びCH2を介してそれぞれメモリデバイス20P及び20Mを制御し、2つのメモリデバイス20P及び20Mを用いてデータを二重化して保存するミラーリング機能を有する。
メモリデバイス20は、データを不揮発に記憶する記憶装置である。第1実施形態では、メモリデバイス20がNAND型フラッシュメモリである場合を例に説明する。メモリデバイス20Pは、メモリコントローラ10によりプリンシパル記憶領域として使用される。メモリデバイス20Mは、メモリコントローラ10によりミラーリング記憶領域として使用される。以下では、メモリデバイス20Pのことを、“プリンシパル記憶領域20P”とも呼ぶ。メモリデバイス20Mのことを、“ミラーリング記憶領域20M”とも呼ぶ。メモリシステムMSのデータの読み出し及び書き込みの単位のことを、“ページ”と呼ぶ。
[1-1-2]メモリコントローラ10の構成
図2は、第1実施形態に係るメモリコントローラ10の構成の一例を示すブロック図である。図2に示すように、メモリコントローラ10は、例えば、ホストインターフェース(ホストI/F)11、メモリインターフェース(メモリI/F)12、制御回路13、ミラーリングアドレス割り当て回路14、ECC(Error Correction Code)回路15、データバッファ16、及び内部バスIBを含む。
ホストI/F11は、ホスト機器HDとメモリコントローラ10との間のインターフェース規格に従った通信を行うハードウェアインターフェースである。ホストI/F11は、バスHBを介してホスト機器HDと接続される。ホストI/F11がサポートするインターフェース規格は、SATA(Serial Advanced Technology Attachment)、PCIeTM(PCI Express)などである。ホストI/F11は、ホスト機器HDから受信したデータや要求などを内部バスIBに出力する。ホストI/F11は、メモリデバイス20から受信したデータや制御回路13により生成された応答などをホスト機器HDへ送信する。
メモリI/F12は、メモリデバイス20とメモリコントローラ10との間のインターフェース規格に従った通信を行うハードウェアインターフェースである。メモリI/F12がサポートするインターフェース規格は、例えば、NANDインターフェース規格である。メモリI/F12は、チャネルCH1を介してメモリデバイス20P(プリンシパル記憶領域)と接続され、チャネルCH2を介してメモリデバイス20M(ミラーリング記憶領域)と接続される。メモリI/F12は、ホスト機器HDから受信したデータや制御回路13により生成された命令などをメモリデバイス20へ送信する。メモリI/F12は、メモリデバイス20から受信したデータや応答などを内部バスIBに出力する。
制御回路13は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などを含み、メモリコントローラ10の各構成要素を統括的に制御する。メモリコントローラ10の動作は、CPUがROMに格納されたファームウェアを実行することにより実現される。RAMは、CPUの作業領域として使用される揮発性メモリであり、ルックアップテーブル(LUT)17を記憶する。LUT17は、ページの論理アドレスLAとページの物理アドレスPAとを関連付ける管理テーブルであり、メモリシステムMSのシステムデータの一種である。LUT17は、“アドレス変換テーブル”や、“論理アドレス/物理アドレス変換テーブル”と呼ばれてもよい。ホスト機器HDは、論理アドレスLAを指定して、データの書き込み/読み出しをメモリコントローラ10に要求する。制御回路13は、ホスト機器HDから書き込み要求を受信した場合に、ホスト機器HDから受信した論理アドレスLAに対してデータの書き込み先の物理アドレスPAを割り当てて、割り当てられた物理アドレスPAをLUT17に記録する。そして、制御回路13は、物理アドレスPAを指定して、データの書き込みをメモリデバイス20に命令する。制御回路13は、ホスト機器HDから読み出し要求を受信した場合に、ホスト機器HDから受信した論理アドレスLAを、LUT17を用いて物理アドレスPAに変換する。そして、制御回路13は、物理アドレスPAを指定して、データの読み出しをメモリデバイス20に命令する。
ミラーリングアドレス割り当て回路14は、物理アドレスPAに対して、ミラーリング物理アドレスMPAを割り当てる。“ミラーリング物理アドレスMPA”は、ミラーリング記憶領域20Mに割り当てられた物理アドレスのことを示している。一方で、ホスト機器HDから受信した論理アドレスLAに割り当てられた物理アドレスPAは、プリンシパル記憶領域20Pに割り当てられた物理アドレスのことを示している。なお、ミラーリング物理アドレスMPAは、LUT17に記録されてもよいし、物理アドレスPAを用いた計算により導出されてもよい。以下では、読み出し動作時に参照されるミラーリング物理アドレスMPAが、物理アドレスPAを用いた計算により取得される場合を例に説明する。
ECC回路15は、ECC処理を実行する回路である。ECC処理は、符号化及び復号を含む。具体的には、書き込み動作において、ECC回路15は、ホスト機器HDから受信したデータを符号化してECCフレームを生成する。ECCフレームは、ECC回路15によって符号化及び復号されるデータの単位である。ECCフレームは、1ページデータ毎に生成され、メモリデバイス20に書き込まれる。ECCフレームは、情報部と冗長部とを含む。情報部は、符号化されたデータである。冗長部は、誤り訂正符号、又はパリティと呼ばれる。読み出し動作において、ECC回路15は、メモリデバイス20から読み出されたECCフレームを復号する。復号にあたって、ECC回路15は、読み出されたECCフレームのパリティを用いて、読み出されたECCフレームの情報部の誤りを訂正する。ECC回路15の符号化方式は、BCH(Bose-Chaudhuri-Hocquenghem)符号、RS(Reed-Solomon)符号、LDPC(Low-Density Parity-Check)符号などである。
データバッファ16は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリである。データバッファ16は、ホスト機器HDからホストI/F11を介して受信したデータや、メモリデバイス20からメモリI/F12を介して受信したデータを一時的に記憶する。なお、データバッファ16は、ECCフレームを一時的に記憶してもよい。データバッファ16は、メモリコントローラ10に外部接続されてもよい。
[1-1-3]メモリデバイス20の構成
図3は、第1実施形態に係るメモリデバイス20の構成の一例を示すブロック図である。図3に示すように、メモリデバイス20、例えば、メモリインターフェース(メモリI/F)21、シーケンサ22、メモリセルアレイ23、ドライバモジュール24、ロウデコーダモジュール25、及びセンスアンプモジュール26を含む。
メモリI/F21は、チャネルCHを介してメモリコントローラ10と接続されるハードウェアインターフェースである。メモリI/F21は、メモリデバイス20とメモリコントローラ10との間のインターフェース規格に従った通信を行う。メモリI/F21がサポートするインターフェース規格は、例えば、NANDインターフェース規格である。
シーケンサ22は、メモリデバイス20の全体の動作を制御する制御回路である。シーケンサ22は、メモリI/F21を介して受信したコマンドに基づいてドライバモジュール24、ロウデコーダモジュール25、及びセンスアンプモジュール26などを制御して、読み出し動作、書き込み動作、消去動作などを実行する。
メモリセルアレイ23は、複数のメモリセルの集合を含む記憶回路である。メモリセルアレイ23は、複数のブロックBLK0~BLKn(nは1以上の整数)を含む。ブロックBLKは、例えば、データの消去単位として使用される。また、メモリセルアレイ23には、複数のビット線及び複数のワード線が設けられる。各メモリセルは、例えば1本のビット線と1本のワード線とに関連付けられる。各メモリセルは、ワード線WLを識別するアドレスと、ビット線BLを識別するアドレスとに基づいて識別される。
ドライバモジュール24は、読み出し動作、書き込み動作、消去動作などで使用される電圧を生成するドライバ回路である。ドライバモジュール24は、複数の信号線を介してロウデコーダモジュール25に接続される。ドライバモジュール24は、メモリI/F21を介して受信したページアドレスに基づいて、複数の信号線の各々に印加する電圧を変更し得る。
ロウデコーダモジュール25は、メモリI/F21を介して受信したロウアドレスをデコードするデコーダである。ロウデコーダモジュール25は、デコード結果に基づいてメモリセルアレイ23のロウ方向(1つのブロックBLK)を選択する。そして、ロウデコーダモジュール25は、選択したブロックBLKに設けられた複数の配線(ワード線WLなど)に、複数の信号線に印加された電圧をそれぞれ転送する。
センスアンプモジュール26は、読み出し動作において、ビット線BLの電圧に基づいて、選択されたブロックBLKから読み出されたデータをセンスするセンス回路である。センスアンプモジュール26は、読み出したデータを、メモリI/F21を介してメモリコントローラ10に送信する。また、センスアンプモジュール26は、書き込み動作において、ビット線BL毎に、メモリセルMCに書き込むデータに応じた電圧を印加し得る。
[1-1-4]メモリセルアレイ23の回路構成
図4は、第1実施形態に係るメモリデバイス20が備えるメモリセルアレイ23の回路構成の一例を示す回路図である。図4は、メモリセルアレイ23に含まれた複数のブロックBLKのうち1つのブロックBLKを表示している。図4に示すように、ブロックBLKは、例えば、5つのストリングユニットSU0~SU4を含む。
各ストリングユニットSUは、ビット線BL0~BLm(mは1以上の整数)にそれぞれ関連付けられた複数のNANDストリングNSを含む。各NANDストリングNSは、例えばメモリセルトランジスタMT0~MT7、並びに選択トランジスタSTD及びSTSを含む。各メモリセルトランジスタMTは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタSTD及びSTSのそれぞれは、読み出し動作及び書き込み動作におけるストリングユニットSUの選択に使用される。
各NANDストリングNSのメモリセルトランジスタMT0~MT7は、直列に接続される。選択トランジスタSTDのドレインは、関連付けられたビット線BLに接続される。選択トランジスタSTDのソースは、直列に接続されたメモリセルトランジスタMT0~MT7の一端に接続される。選択トランジスタSTSのドレインは、直列に接続されたメモリセルトランジスタMT0~MT7の他端に接続される。選択トランジスタSTSのソースは、ソース線SLに接続される。
同一のブロックBLKのメモリセルトランジスタMT0~MT7のそれぞれの制御ゲートは、それぞれワード線WL0~WL7に接続される。ストリングユニットSU0の複数の選択トランジスタSTDのそれぞれのゲートは、選択ゲート線SGD0に接続される。ストリングユニットSU1の複数の選択トランジスタSTDのそれぞれのゲートは、選択ゲート線SGD1に接続される。ストリングユニットSU2の複数の選択トランジスタSTDのそれぞれのゲートは、選択ゲート線SGD2に接続される。ストリングユニットSU3の複数の選択トランジスタSTDのそれぞれのゲートは、選択ゲート線SGD3に接続される。ストリングユニットSU4の複数の選択トランジスタSTDのそれぞれのゲートは、選択ゲート線SGD4に接続される。複数の選択トランジスタSTSのそれぞれのゲートは、選択ゲート線SGSに接続される。
ビット線BL0~BLmには、それぞれ異なるカラムアドレスが割り当てられる。各ビット線BLは、複数のブロックBLK間で同一のカラムアドレスが割り当てられたNANDストリングNSにより共有される。ワード線WL0~WL7のそれぞれは、ブロックBLK毎に設けられる。ソース線SLは、例えば、複数のブロックBLK間で共有される。
なお、メモリセルアレイ23の回路構成は、以上で説明された構成に限定されない。各ブロックBLKが含むストリングユニットSUの個数や、各NANDストリングNSが含むメモリセルトランジスタMT並びに選択トランジスタSTD及びSTSの個数は、それぞれ任意の個数でもよい。本明細書では、1つのストリングユニットSU内で共通のワード線WLに接続された複数のメモリセルトランジスタMTの集合のことを、“セルユニットCU”と呼ぶ。セルユニットCUは、各メモリセルトランジスタMTが1ビットデータを記憶する場合に、“1ページデータ”を記憶する。セルユニットCUは、メモリセルトランジスタMTが記憶するデータのビット数に応じて、2ページデータ以上を記憶し得る。
[1-1-5]メモリセルアレイ23の構造
以下に、第1実施形態に係るメモリデバイス20が備えるメモリセルアレイ23の構造の一例について説明する。メモリセルアレイ23において、X方向はワード線WLの延伸方向に対応し、Y方向はビット線BLの延伸方向に対応し、Z方向はメモリデバイス20の形成に使用される半導体基板30の表面に対する鉛直方向に対応している。
(メモリセルアレイ23の平面レイアウト)
図5は、第1実施形態に係るメモリデバイス20が備えるメモリセルアレイ23の平面レイアウトの一例を示す平面図である。図5は、1つのブロックBLK(すなわち、ストリングユニットSU0~SU4)を含む領域を表示している。図5に示すように、メモリセルアレイ23は、例えば、複数のスリットSLT、複数のスリットSHE、複数のメモリピラーMP、複数のビット線BL、及び複数のコンタクトCVを含む。
各スリットSLTは、X方向に沿って延伸して設けられた部分を有する部材である。複数のスリットSLTは、Y方向に並んでいる。スリットSLTによって区切られた領域のそれぞれが、1つのブロックBLKに対応する。各スリットSLTは、Y方向に隣り合う配線(例えば、ワード線WL0~WL7、並びに選択ゲート線SGD及びSGS)を分断している。また、各スリットSLTは、コンタクトLI及びスペーサSPを含む。コンタクトLIは、X方向に沿って延伸して設けられた部分を有する導電体である。コンタクトLIは、ソース線SLの一部として使用される。スペーサSPは、コンタクトLIの側面に設けられた絶縁体である。コンタクトLIは、スペーサSPの組によってY方向に挟まれている。コンタクトLIと、当該コンタクトLIとY方向に隣り合う導電体との間は、スペーサSPによって離隔及び絶縁される。
各スリットSHEは、X方向に沿って延伸して設けられた部分を有する部材である。複数のスリットSHEは、Y方向に並んでいる。メモリセルアレイ23では、スリットSLT及びSHEによって区切られた領域のそれぞれが、1つのストリングユニットSUに対応する。本例では、4つのスリットSHEが隣り合うスリットSLTの間のそれぞれに配置され、各ブロックBLKが5つのストリングユニットSUを有している。各スリットSHEは、例えば、絶縁体が埋め込まれた構造を有する。各スリットSHEは、Y方向に隣り合う配線(少なくとも、選択ゲート線SGD)を分断している。
各メモリピラーMPは、1つのNANDストリングNSとして機能する。複数のメモリピラーMPは、隣り合う2つのスリットSLTの間の領域において、例えば、24列の千鳥状に配置される。そして、本例では、紙面の上側から数えて、5列目のメモリピラーMPと、10列目のメモリピラーMPと、15列目のメモリピラーMPと、20列目のメモリピラーMPとのそれぞれに、1つのスリットSHEが重なっている。
各ビット線BLは、Y方向に沿って延伸して設けられた部分を有する。複数のビット線は、X方向に並んでいる。各ビット線BLは、ストリングユニットSU毎に少なくとも1つのメモリピラーMPと重なるように配置される。本例では、各メモリピラーMPに、2本のビット線BLが重なって配置されている。メモリピラーMPに重なっている複数のビット線BLのうち1つのビット線BLと、当該メモリピラーMPとの間には、コンタクトCVが設けられる。各メモリピラーMPは、関連付けられたコンタクトCVを介して、対応するビット線BLと電気的に接続される。本例では、スリットSHEと接触しているメモリピラーMPとビット線BLとの間のコンタクトCVが、省略されている。
メモリセルアレイ23では、以上で説明されたレイアウトが、Y方向に繰り返し配置される。なお、メモリセルアレイ23の平面レイアウトは、その他のレイアウトであってもよい。例えば、隣り合うスリットSLTの間に設けられたメモリピラーMPやスリットSHEなどの個数及び配置は、適宜変更され得る。隣り合うスリットSLTの間に形成されるストリングユニットSUの個数は、隣り合うスリットSLTの間に配置されたスリットSHEの数に基づいて変更され得る。各メモリピラーMPと重なるビット線BLの数は、1つ若しくは3つ以上であってもよい。
(メモリセルアレイ23の断面構造)
図6は、第1実施形態に係るメモリデバイス20が備えるメモリセルアレイ23の断面構造の一例を示す、図5のVI-VI線に沿った断面図である。図6に示すように、メモリデバイス20は、例えば、半導体基板30、導電体層31~35、及び絶縁体層40~44を含む。
半導体基板30は、例えば、P型の半導体基板である。半導体基板30の上に、絶縁体層40が設けられる。絶縁体層40は、半導体基板30上に形成されたロウデコーダモジュール25やセンスアンプモジュール26などに接続される回路を覆い、複数層により構成され得る。絶縁体層40の上には、導電体層31が設けられる。導電体層31の上には、絶縁体層41が設けられる。絶縁体層41の上には、導電体層32と絶縁体層42とが交互に積層される。最上層の導電体層33の上には、絶縁体層43が設けられる。絶縁体層43の上には、導電体層34が設けられる。導電体層34の上には、絶縁体層44が設けられる。絶縁体層44の上には、導電体層35が設けられる。
導電体層32、33及び34のそれぞれは、例えば、XY平面に沿って広がった板状に形成される。導電体層35は、例えば、Y方向に延伸したライン状に形成される。導電体層31は、ソース線SLとして使用される。導電体層32は、選択ゲート線SGSとして使用される。積層された8層の導電体層33は、下層側から順に、それぞれワード線WL0~WL7として使用される。導電体層34は、選択ゲート線SGDとして使用される。導電体層35は、ビット線BLとして使用される。図示せぬ領域において、複数の導電体層35は、X方向に沿って並んでいる。導電体層32、33及び34のそれぞれは、例えばタングステンを含む。導電体層35は、例えば銅を含む。
各メモリピラーMPは、Z方向に沿って延伸して設けられ、絶縁体層41~43、及び導電体層32~34を貫通している。メモリピラーMPの底部は、導電体層31に達している。メモリピラーMPと導電体層32とが交差した部分が、選択トランジスタSTSとして機能する。メモリピラーMPと1つの導電体層33とが交差した部分が、1つのメモリセルトランジスタMTとして機能する。メモリピラーMPと導電体層34とが交差した部分が、選択トランジスタSTDとして機能する。
また、各メモリピラーMPは、例えば、コア部材50、半導体層51、積層膜52を含む。コア部材50は、Z方向に沿って延伸して設けられる。コア部材50の上端は、導電体層34よりも上層に含まれる。コア部材50の下端は、導電体層31が設けられた配線層に含まれる。半導体層51は、コア部材50の周囲を覆っている。半導体層51の一部が、メモリピラーMPの側面を介して、導電体層31に接触している。積層膜52は、半導体層51と導電体層31とが接触した部分を除いて、半導体層51の側面及び底面を覆っている。コア部材50は、絶縁体を含む。半導体層51は、例えばシリコンを含む。
メモリピラーMP内の半導体層51の上には、柱状のコンタクトCVが設けられる。図示された領域には、5つのメモリピラーMPのうち、2つのメモリピラーMPにそれぞれ対応する2つのコンタクトCVが表示されている。コンタクトCVの上には、1つの導電体層35が接触している。1つの導電体層35には、スリットSLT及びSHEによって区切られた空間のそれぞれにおいて、1つのコンタクトCVが接続される。
スリットSLTは、XZ平面に沿って設けられた部分を有し、導電体層32~34及び絶縁体層41~43を分断している。スリットSLT内のコンタクトLIは、スリットSLTに沿って設けられる。コンタクトLIの下端は、導電体層31と接触している。コンタクトLIは、ソース線SLの一部として使用される。スペーサSPは、少なくとも、コンタクトLIと導電体層32~34との間に設けられる。コンタクトLIと、導電体層32~34との間は、スペーサSPによって離隔及び絶縁される。スリットSHEは、XZ平面に沿って設けられた部分を有し、少なくとも導電体層34を分断している。
(メモリピラーMPの断面構造)
図7は、第1実施形態に係るメモリデバイス20が備えるメモリピラーMPの断面構造の一例を示す、図6のVII-VII線に沿った断面図である。図7は、半導体基板30の表面に平行且つ導電体層33を含む層におけるメモリピラーMPの断面構造を表示している。図7に示すように、積層膜52は、例えば、トンネル絶縁膜53、絶縁膜54、及びブロック絶縁膜55を含む。
導電体層33を含む断面において、コア部材50は、メモリピラーMPの中央部分に設けられる。半導体層51は、コア部材50の側面を囲っている。トンネル絶縁膜53は、半導体層51の側面を囲っている。絶縁膜54は、トンネル絶縁膜53の側面を囲っている。ブロック絶縁膜55は、絶縁膜54の側面を囲っている。導電体層33は、ブロック絶縁膜55の側面を囲っている。トンネル絶縁膜53及びブロック絶縁膜55の各々は、例えば、酸化シリコンを含んでいる。絶縁膜54は、例えば窒化シリコンを含んでいる。
以上で説明されたメモリピラーMPにおいて、半導体層51が、メモリセルトランジスタMT0~MT7並びに選択トランジスタSTD及びSTSのチャネル(電流経路)として使用される。絶縁膜54が、メモリセルトランジスタMTの電荷蓄積層として使用される。メモリデバイス20は、メモリセルトランジスタMT0~MT7並びに選択トランジスタSTD及びSTSをオンさせることによって、ビット線BLとコンタクトLIとの間でメモリピラーMPを介した電流を流すことが出来る。
[1-1-6]データの割り当て
図8は、第1実施形態に係るメモリシステムMSにおけるメモリセルトランジスタMTの閾値電圧分布及びデータの割り当ての一例を示す模式図である。縦軸の“NMTs”は、メモリセルトランジスタMTの個数を示している。横軸の“Vth”は、メモリセルトランジスタMTの閾値電圧を示している。図8に示すように、各メモリセルトランジスタMTが4ビットデータを記憶する場合、すなわち1つのセルユニットCUが4ページデータを記憶する場合、メモリセルトランジスタMTの閾値電圧分布は、16種類のステートを有する。本明細書では、この16種類のステートのことを、閾値電圧の低い方から順に、それぞれ“S0”、“S1”、“S2”、“S3”、“S4”、“S5”、“S6”、“S7”、“S8”、“S9”、“S10”、“S11”、“S12”、“S13”、“S14”及び“S15”ステートと呼ぶ。“S0”~“S15”ステートのそれぞれには、互いに異なる4ビットデータが割り当てられる。以下に、“S0”~“S15”ステートのそれぞれに対するデータの割り当ての一例を羅列する。
(例)ステート名:“最上位(Top)ビット/上位(Upper)ビット/中位(Middle)ビット/下位(Lower)ビット”データ
“S0”ステート:“1111”データ
“S1”ステート:“0111”データ
“S2”ステート:“0011”データ
“S3”ステート:“1011”データ
“S4”ステート:“1001”データ
“S5”ステート:“0001”データ
“S6”ステート:“0101”データ
“S7”ステート:“1101”データ
“S8”ステート:“1100”データ
“S9”ステート:“0100”データ
“S10”ステート:“0000”データ
“S11”ステート:“1000”データ
“S12”ステート:“1010”データ
“S13”ステート:“0010”データ
“S14”ステート:“0110”データ
“S15”ステート:“1110”データ
読み出し電圧は、隣り合うステートの間のそれぞれに設定される。具体的には、 “S0”及び“S1”ステートの間に、読み出し電圧R1が設定される。 “S1”及び“S2”ステートの間に、読み出し電圧R2が設定される。“S2”及び“S3”ステートの間に、読み出し電圧R3が設定される。“S3”及び“S4”ステートの間に、読み出し電圧R4が設定される。“S4”及び“S5”ステートの間に、読み出し電圧R5が設定される。“S5”及び“S6”ステートの間に、読み出し電圧R6が設定される。“S6”及び“S7”ステートの間に、読み出し電圧R7が設定される。“S7”及び“S8”ステートの間に、読み出し電圧R8が設定される。“S8”及び“S9”ステートの間に、読み出し電圧R9が設定される。“S9”及び“S10”ステートの間に、読み出し電圧R10が設定される。“S10”及び“S11”ステートの間に、読み出し電圧R11が設定される。“S11”及び“S12”ステートの間に、読み出し電圧R12が設定される。“S12”及び“S13”ステートの間に、読み出し電圧R13が設定される。“S13”及び“S14”ステートの間に、読み出し電圧R14が設定される。“S14”及び“S15”ステートの間に、読み出し電圧R15が設定される。
下位ビットで構成される1ページデータ(下位ページデータ)は、読み出し電圧R8を用いた1回の読み出しによって確定する。つまり、読み出し電圧R1乃至読み出し電圧R15のうち1つの読み出し電圧によって下位ページデータは確定し、下位ページデータの読み出しにおける読み出し回数は1回である。中位ビットで構成される1ページデータ(中位ページデータ)は、読み出し電圧R4及びR12を用いた2回の読み出しによって確定する。つまり、読み出し電圧R1乃至読み出し電圧R15のうち2つの読み出し電圧によって中位ページデータは確定し、中位ページデータの読み出しにおける読み出し回数は2回である。上位ビットで構成される1ページデータ(上位ページデータ)は、読み出し電圧R2、R6、R10及びR14を用いた4回の読み出しによって確定する。つまり、読み出し電圧R1乃至読み出し電圧R15のうち4つの読み出し電圧によって上位ページデータは確定し、上位ページデータの読み出しにおける読み出し回数は4回である。最上位ビットで構成される1ページデータ(最上位ページデータ)は、読み出し電圧R1、R3、R5、R7、R9、R11、R13及びR15を用いた8回の読み出しによって確定する。つまり、読み出し電圧R1乃至読み出し電圧R15のうち8つの読み出し電圧によって最上位ページデータは確定し、最上位ページデータの読み出しにおける読み出し回数は8回である。以下では、下位ページデータの読み出し動作のことを、“下位読み出し”と呼ぶ。中位ページデータの読み出し動作のことを、“中位読み出し”と呼ぶ。上位ページデータの読み出し動作のことを、“上位読み出し”と呼ぶ。最上位ページデータの読み出し動作のことを、“最上位読み出し”と呼ぶ。
以上で説明されたデータの割り当ては、下位/中位/上位/最上位読み出しにおける読み出し回数がそれぞれ1回/2回/4回/8回であることから、例えば、“1-2-4-8coding”と呼ばれる。第1実施形態に係るメモリシステムMSで使用されるデータの割り当てでは、1つのセルユニットCUが記憶する複数ページデータが、読み出し回数の少ない群と、読み出し回数の多い群とに分類される。本例では、下位及び中位ページが、読み出し回数の少ない群に対応し、上位及び最上位ページが、読み出し回数の多い群に対応する。第1実施形態に係るメモリシステムMSは、このように、ページ毎の読み出し回数に偏りを有するデータの割り当てを利用する。
なお、メモリセルトランジスタMTが4ビットデータを記憶する場合のデータの割り当ては、その他の割り当てであってもよい。また、後述されるメモリシステムMSの動作は、各メモリセルトランジスタMTには2ビット、3ビット又は5ビット以上のデータを記憶し、且つページ毎の読み出し回数に偏りを有する場合にも適用され得る。
[1-2]動作
[1-2-1]書き込み動作
図9は、第1実施形態に係るメモリシステムMSの書き込み動作の一例を示すフローチャートである。以下に、図9を参照して、第1実施形態に係るメモリシステムMSの書き込み動作について、メモリコントローラ10の動作に注目して説明する。
ホスト機器HDからホストI/F11を介してデータDTと書き込み要求とを受信すると、メモリコントローラ10の制御回路13は、図9の一連の処理を開始する(開始)。本例において、“データDT”は、1ページデータである。書き込み要求は、データDTの書き込み先を指定する論理アドレスLAを含む。
まず、制御回路13は、データDTをデータバッファ16に格納する(ST10)。
次に、制御回路13は、論理アドレスLAに物理アドレスPAを割り当てる(ST11)。言い換えると、制御回路13は、LUT17に基づいて、論理アドレスLAに未使用の物理アドレスPAを割り当てる。
次に、制御回路13は、データDTを符号化してECCフレームEFを生成する(ST12)。制御回路13は、データDTの符号化に、ECC回路15を使用する。ECCフレームEFは、データDTと、データDTに基づいて生成されたパリティとを含む。
次に、制御回路13は、ECCフレームEFをデータバッファ16に格納する(ST13)。
次に、制御回路13は、物理アドレスPAを指定して、ECCフレームEFの書き込みをプリンシパル記憶領域20Pに命令する(ST14)。具体的には、制御回路13は、ECCフレームEFと、物理アドレスPAと、書き込み命令とを、メモリI/F12を介してプリンシパル記憶領域20Pに送信する。本実施形態において、書き込み命令とは、例えば、書き込みコマンドである。すると、ECCフレームEFと、物理アドレスPAと、書き込み命令とを受信したプリンシパル記憶領域20Pは、物理アドレスPAを対象として、ECCフレームEFの書き込みを開始する。
次に、制御回路13は、物理アドレスPAにミラーリング物理アドレスMPAを割り当てる(ST15)。制御回路13は、ミラーリング物理アドレスMPAの割り当てに、ミラーリングアドレス割り当て回路14を使用する。第1実施形態において、ミラーリング物理アドレスMPAが割り当てられるページは、物理アドレスPAが割り当てられるページと異なっている。具体的には、ミラーリングアドレス割り当て回路14は、物理アドレスPAに対応するページが読み出し回数の少ない群に含まれる場合に、読み出し回数の多い群に含まれたページのいずれかにミラーリング物理アドレスMPAを割り当てる。一方で、ミラーリングアドレス割り当て回路14は、物理アドレスPAに対応するページが読み出し回数の多い群に含まれる場合に、読み出し回数の少ない群に含まれたページのいずれかにミラーリング物理アドレスMPAを割り当てる。ミラーリングアドレス割り当て回路の動作の具体例については後述する。
次に、制御回路13は、ミラーリング物理アドレスMPAを指定して、ECCフレームEFの書き込みをミラーリング記憶領域20Mに命令する(ST16)。具体的には、制御回路13は、ECCフレームEFと、ミラーリング物理アドレスMPAと、書き込み命令とを、メモリI/F12を介してミラーリング記憶領域20Mに送信する。すると、ECCフレームEFと、ミラーリング物理アドレスMPAと、書き込み命令とを受信したミラーリング記憶領域20Mは、ミラーリング物理アドレスMPAを対象として、ECCフレームEFの書き込みを開始する。なお、ST14の処理と、ST15及びST16の処理とは、並列に実行されてもよい。
次に、制御回路13は、プリンシパル記憶領域20Pからの書き込み完了の通知と、ミラーリング記憶領域20Mからの書き込み完了の通知とのそれぞれを受信するまで待機する(ST17)。
次に、制御回路13は、プリンシパル記憶領域20Pとミラーリング記憶領域20Mとのそれぞれの書き込み結果に応じてLUT17を更新する(ST18)。すなわち、制御回路13は、ST14とST16の処理によって書き込みに成功した物理アドレスPAを、論理アドレスLAに関連付けてLUT17に記憶させる。
次に、制御回路13は、書き込み完了をホスト機器HDに通知する(ST19)。
ST19の処理の後に、制御回路13は、データバッファ16に格納されたECCフレームEFを破棄して、図9の一連の処理を終了する(終了)。
(書き込み動作の具体例)
図10は、第1実施形態に係るメモリシステムMSの書き込み動作の具体例を示す概略図である。以下に、図10を参照して、第1実施形態において、ホスト機器HDがデータDT0~DT3の書き込みをメモリシステムMSに要求する場合について説明する。本例において、データDT0~DT3のそれぞれは、1ページデータに対応している。
ホスト機器HDは、メモリシステムMSに書き込みを要求する4ページ分のデータDT0、DT1、DT2及びDT3に、それぞれ論理アドレスLA0、LA1、LA2及びLA3を割り当てている。
メモリシステムMSがホスト機器HDからデータDT0~DT3の書き込み要求を受信した後に、メモリコントローラ10は、図9のST11の処理を実行することによって、論理アドレスLA0に物理アドレスPA0を割り当てて(図10の“LA0:PA0”)、論理アドレスLA1に物理アドレスPA1を割り当てて(図10の“LA1:PA1”)、論理アドレスLA2に物理アドレスPA2を割り当てて(図10の“LA2:PA2”)、論理アドレスLA3に物理アドレスPA3を割り当てる(図10の“LA3:PA3”)。
物理アドレスPA0の書き込み先ページは、下位(Lower)ページ(図10の“L”)である。物理アドレスPA1の書き込み先ページは、中位(Middle)ページ(図10の“M”)である。物理アドレスPA2の書き込み先ページは、上位(Upper)ページ(図10の“U”)である。物理アドレスPA3の書き込み先ページは、最上位(Top)ページ(図10の“T”)である。なお、データDTを示す箱に付加されたハッチングの線間隔は、狭いほど読み出し回数が多く、広いほど読み出し回数が少ないことを表現している。
そして、メモリコントローラ10は、図9のST12の処理を実行することによって、データDT毎にパリティを含むECCフレームEFを生成する。
それから、メモリコントローラ10は、図9のST14の処理を実行することによって、データDT0~DT3のそれぞれのECCフレームを用いた4ページデータの書き込みを、物理アドレスPA0~PA3を指定して、プリンシパル記憶領域20Pに命令する。プリンシパル記憶領域20Pは、この4ページデータの書き込みを、物理アドレスPA0~PA3に関連付けられた同一のセルユニットCUを対象として実行する。
また、メモリコントローラ10は、図9のST15の処理を実行することによって、物理アドレスPA0~PA3(データDT0~DT3)に、それぞれミラーリング物理アドレスMPA0、MPA1、MPA2及びMPA3を割り当てる。ミラーリング物理アドレスMPA0の書き込み先ページは、下位ページから最上位ページに変更される(図10の“L→T”)。ミラーリング物理アドレスMPA1の書き込み先ページは、中位ページから上位ページに変更される(図10の“M→U”)。ミラーリング物理アドレスMPA2の書き込み先ページは、上位ページから中位ページに変更される(図10の“U→M”)。ミラーリング物理アドレスMPA3の書き込み先ページは、最上位ページから下位ページに変更される(図10の“T→L”)。
つまり、物理アドレスPAの書き込み先が読み出し回数の少ない群のページ(例えば、下位/中位ページ)である場合に、ミラーリング物理アドレスMPAの書き込み先が、読み出し回数の多い群のページ(例えば、上位/最上位ページ)に変更される。一方で、物理アドレスPAの書き込み先が読み出し回数の多い群のページである場合に、ミラーリング物理アドレスMPAの書き込み先が、読み出し回数の少ない群のページに変更される。本例では、メモリコントローラ10は、物理アドレスPAに関連付けられたページの読み出し回数が最も少ない場合に、ミラーリング物理アドレスMPAを、読み出し回数が最も多いページに変更している。また、メモリコントローラ10は、物理アドレスPAに関連付けられたページの読み出し回数が2番目に少ない場合に、ミラーリング物理アドレスMPAを、読み出し回数が2番目に多いページに変更している。
そして、メモリコントローラ10は、図9のST16の処理を実行することによって、データDT0~DT3のそれぞれのECCフレームを用いた4ページデータの書き込みを、ミラーリング物理アドレスMPA0~MPA3を指定して、ミラーリング記憶領域20Mに命令する。ミラーリング記憶領域20Mは、この4ページデータの書き込みを、ミラーリング物理アドレスMPA0~MPA3に関連付けられた同一のセルユニットCUを対象として実行する。
[1-2-2]読み出し動作
図11は、第1実施形態に係るメモリシステムMSの読み出し動作の一例を示すフローチャートである。以下に、第1実施形態に係るメモリシステムMSの読み出し動作について、メモリコントローラ10の動作に注目して説明する。
ホスト機器HDから読み出し要求を受信すると、メモリコントローラ10の制御回路13は、図11の一連の処理を開始する(開始)。読み出し要求は、データDTの読み出し先を指定する論理アドレスLAを含む。
まず、制御回路13は、論理アドレスLAを物理アドレスPAに変換する(ST20)。具体的には、制御回路13は、LUT17を参照して、ホスト機器HDから受信した論理アドレスLAに関連付けられた物理アドレスPAを取得する。
次に、制御回路13は、物理アドレスPAからミラーリング物理アドレスMPAを算出する(ST21)。制御回路13は、ミラーリング物理アドレスMPAの算出に、ミラーリングアドレス割り当て回路14を使用する。
次に、制御回路13は、物理アドレスPAとミラーリング物理アドレスMPAのうち、優位な方を選択する(ST22)。優位であるか否かの判定は、物理アドレスPAを読み出した場合の読み出し回数と、ミラーリング物理アドレスMPAを読み出した場合の読み出し回数に基づいている。制御回路13は、物理アドレスPA及びミラーリング物理アドレスMPAのうち読み出し回数の小さい方のアドレスを優位であると判定する。なお、以下の説明では、物理アドレスPA及びミラーリング物理アドレスMPAのうち、ST22の処理により選択された方の物理アドレスのことを“選択アドレス”とも呼び、ST22の処理により選択されなかった方の物理アドレスのことを“非選択アドレス”とも呼ぶ。
ST22の処理において、物理アドレスPAが選択された場合(ST22:PA選択)、制御回路13は、物理アドレスPAの読み出しを実施する(ST23)。すなわち、制御回路13は、物理アドレスPAの方が優位であることが確認された場合に、物理アドレスPAと読み出し命令とを、メモリI/F12を介してプリンシパル記憶領域20Pに送信する。本実施形態において、読み出し命令とは、例えば、読み出しコマンドである。すると、物理アドレスPAと読み出し命令とを受信したプリンシパル記憶領域20Pは、物理アドレスPAに関連付けられたセルユニットCUからデータ(ECCフレームEF)を読み出して、メモリコントローラ10に送信する。プリンシパル記憶領域20Pから読み出されたECCフレームは、例えば、データバッファ16に一時的に格納される。ST23の処理が完了すると、制御回路13は、ST25の処理に進む。
ST22の処理において、ミラーリング物理アドレスMPAが選択された場合(ST22:MPA選択)、制御回路13は、ミラーリング物理アドレスMPAの読み出しを実施する(ST24)。すなわち、制御回路13は、ミラーリング物理アドレスMPAの方が優位であることが確認された場合に、ミラーリング物理アドレスMPAと読み出し命令とを、メモリI/F12を介してミラーリング記憶領域20Mに送信する。すると、ミラーリング物理アドレスMPAと読み出し命令とを受信したミラーリング記憶領域20Mは、ミラーリング物理アドレスMPAに関連付けられたセルユニットCUからデータ(ECCフレームEF)を読み出して、メモリコントローラ10に送信する。ミラーリング記憶領域20Mから読み出されたECCフレームは、例えば、データバッファ16に一時的に格納される。ST24の処理が完了すると、制御回路13は、ST25の処理に進む。
ST25の処理において、制御回路13は、読み出されたECCフレームEFを復号する。この“読み出されたECCフレームEF”は、ST25の処理の前にST23の処理が実行されている場合に、プリンシパル記憶領域20Pから読み出されたECCフレームに対応し、ST25の処理の前にST24の処理が実行されている場合に、ミラーリング記憶領域20Mから読み出されたECCフレームに対応する。なお、制御回路13は、ECCフレームEFの復号に失敗した場合に、リトライシーケンスを実行し得る。本例では、ST25の処理において、ECCフレームEFの復号が成功する場合について説明する。リトライシーケンスが発生する場合の動作の一例については、第2実施形態で説明する。
読み出されたECCフレームEFの復号に成功すると、制御回路13は、訂正されたデータDTをデータバッファ16に格納する(ST26)。
そして、制御回路13は、データバッファ16のデータDTをホスト機器HDに出力する(ST27)。第1実施形態のST27の処理においてホスト機器HDに出力されるデータDTは、ST27の処理の前にST23の処理が実行されている場合に、物理アドレスPAから読み出されたECCフレームEFの復号により訂正されたデータDTに対応し、ST27の処理の前にST24の処理が実行されている場合に、ミラーリング物理アドレスMPAから読み出されたECCフレームEFの復号により訂正されたデータDTに対応する。
S27の処理の後に、制御回路13は、データバッファ16のデータDTを破棄して、図11の一連の処理を終了する(終了)。
(読み出し動作の具体例)
図12は、第1実施形態に係るメモリシステムMSの読み出し動作の具体例を示す概略図である。以下に、図12を参照して、第1実施形態において、ホスト機器HDが1ページデータの読み出しをメモリシステムMSに要求する場合について説明する。
本例において、メモリシステムMSは、プリンシパル記憶領域20P及びミラーリング記憶領域20Mを用いて、データDT0、DT1、DT2及びDT3を二重化して保存している。具体的には、プリンシパル記憶領域20Pは、データDT0、DT1、DT2及びDT3を、それぞれ物理アドレスPA0、PA1、PA2及びPA3に記憶している。ミラーリング記憶領域20Mは、データDT0、DT1、DT2及びDT3を、それぞれミラーリング物理アドレスMPA0、MPA1、MPA2及びMPA3に記憶している。
そして、データDT0は、プリンシパル記憶領域20Pにおいて下位(Lower)ページ(図12の“L”)に記憶され、ミラーリング記憶領域20Mにおいて最上位(Top)ページ(図12の“T”)に記憶されている。データDT1は、プリンシパル記憶領域20Pにおいて中位(Middle)ページ(図12の“M”)に記憶され、ミラーリング記憶領域20Mにおいて上位(Upper)ページ(図12の“U”)に記憶されている。データDT2は、プリンシパル記憶領域20Pにおいて上位ページに記憶され、ミラーリング記憶領域20Mにおいて中位ページに記憶されている。データDT3は、プリンシパル記憶領域20Pにおいて最上位ページに記憶され、ミラーリング記憶領域20Mにおいて下位ページに記憶されている。なお、データDTを示す箱に付加されたハッチングの線間隔は、狭いほど読み出し回数が多く、広いほど読み出し回数が少ないことを表現している。
メモリシステムMSがホスト機器HDから読み出し要求を受信した後に、メモリコントローラ10は、図11のST22の処理を実行することによって、読み出しを指示するアドレス(記憶領域)を選択する。本例に沿ってST22の処理を言い換えると、ST22の処理において、制御回路13は、読み出し対象の物理アドレスPAが下位ページ又は中位ページであるか否かを確認する。すなわち、制御回路13は、読み出し対象の物理アドレスPAが、読み出し回数の少ない群に対応するか否かを確認する。
読み出し対象の物理アドレスPAが下位ページ又は中位ページである場合(ST22:YES)、制御回路13は、物理アドレスPAを選択して、プリンシパル記憶領域20Pに読み出し命令を送信する。すると、プリンシパル記憶領域20Pは、読み出し回数の少ない群である下位又は中位読み出しを実行する。
一方で、読み出し対象の物理アドレスPAが下位ページ又は中位ページでない場合(ST22:NO)、制御回路13は、ミラーリング物理アドレスMPAを選択して、ミラーリング記憶領域20Mに読み出し命令を送信する。すなわち、メモリコントローラ10は、読み出し対象の物理アドレスPAが読み出し回数の多い群に含まれた上位又は最上位ページである場合に、読み出したいページと同じデータが読み出し回数の少ない群に記憶されているミラーリング記憶領域20Mを対象として読み出しを実行する。
[1-3]第1実施形態の効果
以上で説明されたように、第1実施形態に係るメモリシステムMSは、ミラーリング記憶領域20Mに写しを記憶させるページを、プリンシパル記憶領域20Pと読み出し回数の異なるページに設定する。具体的には、メモリシステムMSは、ホスト機器HDから下位ページデータの書き込みを要求された場合に、受信したデータをプリンシパル記憶領域20Pの下位ページに書き込む。一方で、下位ページデータの写しは、ミラーリング記憶領域20Mの最上位ページに書き込まれる。中位ページデータは、プリンシパル記憶領域20Pの中位ページに書き込まれる。一方で、中位ページデータの写しがミラーリング記憶領域20Mの上位ページに書き込まれる。上位ページデータは、プリンシパル記憶領域20Pの上位ページに書き込まれる。一方で、上位ページデータの写しは、ミラーリング記憶領域20Mの中位ページに書き込まれる。最上位ページデータは、プリンシパル記憶領域20Pの最上位ページに書き込まれる。一方で、最上位ページデータの写しは、ミラーリング記憶領域20Mの下位ページに書き込まれる。
図13は、第1実施形態に係るメモリシステムMSの読み出し動作における読み出し回数の一例を示すテーブルである。図13に示すように、ホスト機器HDから下位読み出しを要求された場合、下位ページデータの記憶先で必要な読み出し回数は、プリンシパル記憶領域20Pにおいて1回であり、ミラーリング記憶領域20Mにおいて8回である。同様に、ホスト機器HDから中位読み出しを要求された場合、中位ページデータの記憶先で必要な読み出し回数は、プリンシパル記憶領域20Pにおいて2回であり、ミラーリング記憶領域20Mにおいて4回である。ホスト機器HDから上位読み出しを要求された場合、上位ページデータの記憶先で必要な読み出し回数は、プリンシパル記憶領域20Pにおいて4回であり、ミラーリング記憶領域20Mにおいて2回である。ホスト機器HDから最上位読み出しを要求された場合、最上位ページデータの記憶先で必要な読み出し回数は、プリンシパル記憶領域20Pにおいて8回であり、ミラーリング記憶領域20Mにおいて1回である。
そして、第1実施形態に係るメモリシステムMSは、ホスト機器HDから要求されたデータの読み出しを、読み出し回数の小さい方の記憶領域で実行する。具体的には、第1実施形態に係るメモリシステムMSは、読み出し回数が少ない群に対応する下位及び中位読み出しが要求された場合にプリンシパル記憶領域20Pからデータを読み出し、読み出し回数が多い群に対応する上位及び最上位読み出しが要求された場合にミラーリング記憶領域20Mからデータを読み出す。
つまり、第1実施形態に係るメモリシステムMSにおいて、下位/中位/上位/最上位読み出しのそれぞれが実行された場合の読み出し回数の平均は、(1+2+2+1)/4=1.5回である。一方で、通常の1-2-4-8codingの読み出しにおいて、下位/中位/上位/最上位読み出しのそれぞれが実行された場合の読み出し回数の平均は、(1+2+4+8)/4=3.75回である。このように、第1実施形態に係るメモリシステムMSは、書き込み時に書き込むアドレスと、読み出し時に選択するアドレスとをプリンシパル記憶領域20Pとミラーリング記憶領域20Mとの間で適宜変更することによって、同じページに写しを書き込む場合よりも、読み出し動作におけるレイテンシを改善させることができる。
また、読み出し回数が少ないページは、エラービットの発生確率が低いため、読み出し回数が多いページよりも高い信頼性を有する。そして、第1実施形態に係るメモリシステムMSでは、同じデータが、プリンシパル記憶領域20Pとミラーリング記憶領域20Mとのいずれかで、読み出し回数が小さいページに書き込まれている。その結果、メモリシステムMSでは、ホスト機器HDから受信した何れのデータも信頼性の高いページに書き込むことができ、データの信頼性を向上させることができる。また、メモリシステムMSは、データの信頼性の高いページに対する読み出しを実行することから、リトライシーケンスの発生を抑制することができ、レイテンシの低下を抑制することができる。
[1-4]第1実施形態の変形例
第1実施形態に係るメモリシステムMSでは、ミラーリングアドレス割り当て回路14が、物理アドレスPAとミラーリング物理アドレスMPAとの間で書き込み先のページを変更する場合について説明したが、これに限定されない。ミラーリングアドレス割り当て回路14は、物理アドレスPAとミラーリング物理アドレスMPAとの間で書き込み先のワード線WLのアドレスを変更してもよい。以下に、第1実施形態の変形例について、第1実施形態と異なる点を説明する。
[1-4-1]書き込み動作
図14は、第1実施形態の変形例における書き込み動作の具体例を示す概略図である。以下に、図14を参照して、第1実施形態の変形例において、ホスト機器HDが1ブロックBLK分のデータセットDTS0~DTS7の書き込みをメモリシステムMSに要求する場合について説明する。
なお、データセットDTSは、1つのセルユニットCUに記憶させるデータの単位である。データセットDTSは、例えば、4ページデータを含んでいる。また、本例では、ワード線WL0~WL3が“第1ワード線群GR1”に分類され、ワード線WL4~WL7が第2ワード線群GR2に分類されている。図6に示すように、第1ワード線群GR1は、下層側に配置された4本のワード線WLを含み、第2ワード線群GR2は、上層側に配置された4本のワード線WLを含んでいる。本例では、データの信頼性が、端部に設けられたワード線WL0及びWL7で最も低く、端部から離れるほど高くなる場合について説明する。データセットDTSを示す箱に付加されたハッチングの線間隔は、広いほどデータの信頼性が高く、狭いほどデータの信頼性が低いことを表現している。
ホスト機器HDは、メモリシステムMSに書き込みを要求する1ブロックBLK分のデータセットDTS0~DTS7のそれぞれに、論理アドレス群を割り当てる。各論理アドレス群は、1つのセルユニットCU分に対応する複数の論理アドレスLAを含む。
メモリシステムMSがホスト機器HDからデータセットDTS0~DTS7の書き込み要求を受信した後に、メモリコントローラ10は、図9のST11の処理を実行する。具体的には、メモリコントローラ10は、データセットDTS0~DTS7のそれぞれの論理アドレス群に、物理アドレス群を割り当てる。各物理アドレス群は、1つのセルユニットCUに割り当てられた複数の物理アドレスPAを含む。本例において、メモリコントローラ10は、データセットDTS0~DTS7を、それぞれワード線WL0~WL7に対応する物理アドレス群に割り当てている(割り当て先WL)。つまり、データセットDTS0~DTS3は、第1ワード線群GR1に関連付けられ、データセットDTS4~DTS7は、第2ワード線群GR2に関連付けられている。
そして、メモリコントローラ10は、図9のST12の処理を実行することによって、データセットDTS0~DTS7の1ページデータ毎にパリティが付加された複数のECCフレームセットEFSを生成する。それから、メモリコントローラ10は、図9のST14の処理を実行することによって、各データセットDTSのECCフレームセットEFSを用いたワード線WL毎の書き込みを、プリンシパル記憶領域20Pに適宜命令する。
また、メモリコントローラ10は、図9のST15の処理を実行することによって、物理アドレス群に、それぞれミラーリング物理アドレス群を割り当てる。本例では、データセットDTSの割り当て先のワード線WLが、第1ワード線群GR1と第2ワード線群GR2との間で入れ替えられている。具体的には、データセットDTS0~DTS3のそれぞれの割り当て先のワード線WLが、ワード線WL4~WL7にそれぞれ変更されている。また、データセットDTS4~DTS7のそれぞれの割り当て先のワード線WLが、ワード線WL0~WL3にそれぞれ変更されている。これにより、第1実施形態の変形例では、プリンシパル記憶領域20Pにおける書き込み先が信頼性の高いワード線WLである場合に、ミラーリング記憶領域20Mにおける書き込み先が信頼性の低いワード線WLに変更される。それから、メモリコントローラ10は、図9のST16の処理を実行することによって、各データセットDTSのECCフレームセットEFSを用いたワード線WL毎の書き込みを、ミラーリング記憶領域20Mに適宜命令する。
[1-4-2]読み出し動作
図15は、第1実施形態の変形例に係るメモリシステムの読み出し動作の具体例を示す概略図である。以下に、図15を参照して、第1実施形態の変形例において、ホスト機器HDがワード線WL0~WL7の読み出しをメモリシステムMSに要求する場合について説明する。
本例において、メモリシステムMSは、プリンシパル記憶領域20P及びミラーリング記憶領域20Mを用いて、データセットDTS0、DTS1、DTS2、DTS3、DTS4、DTS5、DTS6及びDTS7を二重化して保存している。具体的には、データセットDTS0~DTS3は、プリンシパル記憶領域20Pにおいてワード線WL0~WL3にそれぞれ対応して記憶され、ミラーリング記憶領域20Mにおいてワード線WL4~WL7にそれぞれ対応して記憶されている。データセットDTS4~DTS7は、プリンシパル記憶領域20Pにおいてワード線WL4~WL7にそれぞれ対応して記憶され、ミラーリング記憶領域20Mにおいてワード線WL0~WL3にそれぞれ対応して記憶されている。なお、データDTを示す箱に付加されたハッチングの線間隔は、広いほどデータの信頼性が高く、狭いほどデータの信頼性が低いことを表現している。
メモリシステムMSがホスト機器HDから読み出し要求を受信した後に、メモリコントローラ10は、図11のST22の処理を実行することによって、読み出しを指示するアドレス(記憶領域)を選択する。本例に沿ってST22の処理を言い換えると、ST22の処理において、制御回路13は、読み出し対象の物理アドレスPAが高信頼性WL群であるか否かを確認する。
読み出し対象の物理アドレスPAが高信頼性WL群である場合(ST22:YES)、制御回路13は、物理アドレスPAを選択して、プリンシパル記憶領域20Pに読み出し命令を送信する。すなわち、メモリコントローラは、高信頼性WL群(例えば、ワード線WL2~WL5)に対応するセルユニットCUのデータが要求された場合に、要求されたデータをプリンシパル記憶領域20Pから読み出す。
一方で、読み出し対象の物理アドレスPAが高信頼性WL群でない場合(ST22:NO)、制御回路13は、ミラーリング物理アドレスMPAを選択して、ミラーリング記憶領域20Mに読み出し命令を送信する。すなわち、メモリコントローラ10は、読み出し対象の物理アドレスPAが低信頼性WL群に含まれたワード線WLに対応する場合に、読み出したいページと同じデータが高信頼性WL群に記憶されているミラーリング記憶領域20Mを対象として読み出しを実行する。言い換えると、メモリコントローラは、低信頼性WL群(例えば、ワード線WL0、WL1、WL6及びWL7)に対応するセルユニットCUのデータが要求された場合に、要求されたデータをミラーリング記憶領域20Mから読み出す。
[1-4-3]第1実施形態の変形例の効果
第1実施形態の変形例に係るメモリシステムMSは、以上で説明されたように書き込み動作及び読み出し動作を実行することによって、データの信頼性を向上させることができる。データの信頼性が向上すると、リトライシーケンスの発生が抑制される。従って、第1実施形態の変形例に係るメモリシステムMSは、メモリシステムMSのレイテンシの低下をさらに抑制することができる。
なお、第1実施形態の変形例は、第1実施形態と組み合わせることが可能である。第1実施形態の変形例と第1実施形態との組み合わせは、レイテンシを改善し、且つデータの信頼性を向上することができる。第1実施形態の変形例と第1実施形態とが組み合わされた場合、ワード線WLのアドレスとページとのそれぞれに優先度が設定され、その優先度に基づいて最適な書き込み先や読み出し先が選択されてもよい。
[2]第2実施形態
第2実施形態に係るメモリシステムMSは、第1実施形態と同様の構成を有する。第2実施形態に係るメモリシステムMSは、読み出し動作においてECCフレームEFの復号に失敗した場合に、プリンシパル記憶領域20Pとミラーリング記憶領域20Mとを利用して、レイテンシを改善する。以下に、第2実施形態に係るメモリシステムMSについて、第1実施形態と異なる点を説明する。
[2-1]読み出し動作
図16は、第2実施形態に係るメモリシステムMSの読み出し動作の一例を示すフローチャートである。以下に、図16を参照して、第2実施形態に係るメモリシステムMSの読み出し動作について、メモリコントローラ10の動作に注目して説明する。
第2実施形態に係るメモリシステムMSの読み出し動作は、第1実施形態に対して、ST25から先の処理が異なる。制御回路13は、ST25の処理において、選択アドレスから読み出されたECCフレームEFの復号を実施すると、図16の一連の処理を開始する。
まず、制御回路13は、復号に成功したか否かを確認する(ST30)。つまり、ECC回路15が選択アドレスから読み出されたECCフレームEFの復号に成功したか否かが、制御回路13により確認される。
ST30の処理において、復号に成功したことが確認された場合(ST30:YES)、制御回路13は、第1実施形態と同様に、訂正されたデータDTをデータバッファ16に格納する(ST26)。ST26の処理が完了すると、制御回路13は、ST27の処理に進む。
ST30の処理において、復号に成功しなかったこと(すなわち、復号に失敗したこと)が確認された場合(ST30:YES)、制御回路13は、選択アドレスのリトライシーケンスと、非選択アドレスの読み出し及び復号とを並列に実施する(ST31)。制御回路13は、リトライシーケンスにおいて、シフトリードや、Vthトラッキングなどを実行する。シフトリードは、読み出し電圧をシフトさせた読み出しである。Vthトラッキングは、複数回の読み出しの結果に基づいて、最適な読み出し電圧を算出する動作である。そして、制御回路13は、リトライシーケンスにおいて、シフトリードやVthトラッキングなどにより読み出されたECCフレームEFを復号する。なお、制御回路13は、リトライシーケンスにおいて、軟判定復号を実行してもよい。“非選択アドレスの読み出し及び復号”は、図11に示されたST22の処理により物理アドレスPAが選択された場合に、ミラーリング物理アドレスMPAの読み出し及び復号(図11に示されたST24及びST25の処理)に対応し、図11に示されたST22の処理によりミラーリング物理アドレスMPAが選択された場合に、物理アドレスPAの読み出し及び復号(図11に示されたST23及びST25の処理)に対応する。
そして、制御回路13は、選択アドレスのリトライシーケンスと、非選択アドレスの読み出し及び復号とのうち、先に復号に成功した方の訂正されたデータDTをデータバッファ16に格納する(ST32)。ST32の処理が完了すると、制御回路13は、ST27の処理に進む。
ST27の処理において、制御回路13は、データバッファ16のデータDTをホスト機器HDに出力する。第2実施形態のST27の処理においてホスト機器HDに出力されるデータDTは、ST27の処理の前にST26の処理が実行されている場合に、選択アドレスから読み出されたECCフレームEFの復号により訂正されたデータDTに対応し、ST27の処理の前にST31及びST32の処理が実行されている場合に、選択アドレスのリトライシーケンスと非選択アドレスの読み出し及び復号のうち先に復号に成功した方の訂正されたデータに対応する。
S27の処理の後に、制御回路13は、データバッファ16のデータDTを破棄して、図16の一連の処理を終了する(終了)。第2実施形態に係るメモリシステムMSのその他の動作は、第1実施形態と同様である。
[2-2]第2実施形態の効果
以上で説明されたように、第2実施形態に係るメモリシステムMSは、読み出されたECCフレームEFの復号に失敗した場合に、プリンシパル記憶領域20Pとミラーリング記憶領域20Mとのうち選択アドレスに対するリトライシーケンスと、非選択アドレスに対する読み出しとを並列に実行する。そして、メモリシステムMSは、ECCフレームEFの復号に早く成功した方のデータを、ホスト機器HDに出力する。これにより、第2実施形態に係るメモリシステムMSは、初回の読み出し(復号)に失敗した場合におけるレイテンシの悪化を抑制することができる。
[3]第3実施形態
第3実施形態に係るメモリシステムMSは、シフトレジスタ型不揮発性メモリであるメモリデバイス20aを、メモリコントローラ10により制御する構成を有する。シフトレジスト型不揮発性メモリは、ページ単位のデータの書き込み及び読み出しを、先入れ先出し(FIFO:First-in First-out)方式、又は先入れ後出し(LIFO:Last-in First-out)方式で実行するように構成される。以下に、第3実施形態に係るメモリシステムMSについて、第1実施形態と異なる点を説明する。
[3-1]メモリデバイス20aの構成
図17は、第3実施形態に係るメモリデバイス20aの構成の一例を示すブロック図である。図17は、メモリデバイス20aがFIFO方式のシフトレジスタ型不揮発性メモリである場合を例示している。図17に示すように、メモリデバイス20aは、メモリセルアレイ23a、入力部群61、シフト制御回路62、書き込み制御回路63、出力部群64、及び読み出し制御回路65を含む。
メモリセルアレイ23aは、複数のメモリセルの集合を含む記憶回路である。メモリセルアレイ23aは、複数のブロックBLKaを含む。メモリデバイス20aは、ブロックBLKaに含まれるページ単位で、データの書き込み及び読み出しを、FIFO方式で実行する。第3実施形態では、説明を簡潔にするために、各ブロックBLKaが4ページデータ(ページPG0~PG3)を記憶する場合を例として説明する。ブロックBLKaは、シフトレジスタの複数のステージとしてそれぞれ機能する複数の層を含む。つまり、1つの層が、シフトレジスタのステージの1つとして機能する。メモリデバイス20aは、個々の層に格納されているデータを最初のステージに対応する層から最後のステージに対応する層へ向かう方向に層単位でシフトさせることができる。そして、メモリデバイス20aは、最初のステージに対応する層においてデータを書き込むことができ、最後のステージに対応する層においてデータを読み出すことができる。
入力部群61は、複数の入力部を含む。複数の入力部は、それぞれ複数のブロックBLKaの入力側に接続される。各入力部は、書き込み回路とシフト回路とを含む。入力部の書き込み回路は、シフトレジスタの最初のステージに設けられた複数のメモリセルに、1ビットデータを書き込むことができる。入力部のシフト回路は、後述されるメモリストリングMHの各々にシフト電流を流すことができる。
シフト制御回路62は、入力部群61のシフト回路を制御する。シフト制御回路62は、メモリデバイス20aに入力されたアドレスに基づいて、何れかのブロックBLKaを選択する。そして、シフト制御回路62は、選択したブロックBLKaに接続された入力部のシフト回路を用いて、当該ブロックBLKaの層単位のデータを、最初のステージから最後のステージへ向かう方向に層単位でシフトさせることができる。
書き込み制御回路63は、入力部群61の書き込み回路を制御する。書き込み制御回路63は、メモリコントローラ10からデータ(入力データ)が入力され、メモリデバイス20aに入力されたアドレスに基づいて何れかのブロックBLKaを選択する。そして、書き込み制御回路63は、選択されたブロックBLKaに接続された入力部の書き込み回路を用いて、当該ブロックBLKaの最初のステージに設けられた複数のメモリセルに、データを書き込むことができる。
出力部群64は、複数の出力部を含む。複数の出力部は、それぞれ複数のブロックBLKaの出力側に接続される。FIFO方式のメモリシステムMSaでは、入力部群61と出力部群64との間に、メモリセルアレイ23aが接続される。各出力部は、センス回路とラッチ回路とを含む。出力部のセンス回路は、最後のステージに設けられた複数のメモリセルに記憶されたデータを読み出すことができる。出力部のラッチ回路は、センス回路により読み出されたデータを一時的に保持する。なお、シフトレジスタ型不揮発性メモリにおいて、ブロックBLKaからのデータの読み出しは、読み出しに応じてデータが破壊される破壊読み出しである。
読み出し制御回路65は、出力部群64のセンス回路を制御する。読み出し制御回路65は、メモリデバイス20aに入力されたアドレスに基づいて何れかのブロックBLKaを選択する。そして、読み出し制御回路65は、選択されたブロックBLKaに接続された出力部のセンス回路を用いて、当該ブロックBLKaの最後のステージに設けられた複数のメモリセルのデータを読み出し、読み出したデータ(出力データ)をメモリコントローラ10に出力することができる。
なお、第3実施形態では、プリンシパル記憶領域として使用されるメモリデバイス20aのことを、“プリンシパル記憶領域20aP”と呼ぶ。ミラーリング記憶領域として使用されるメモリデバイス20aのことを、“ミラーリング記憶領域20aM”と呼ぶ。
(メモリセルアレイ23aの構成)
図18は、第3実施形態に係るメモリデバイス20aが備えるメモリセルアレイ23aの構成の一例を示すブロック図である。図5は、1つのブロックBLKaを示し、入力部群61及び出力部群64を併せて表示している。図18に示すように、ブロックBLKaは、論理的に区分され、例えば、複数の層L0~L15を含む。ブロックBLKaの層L0~L15は、各ブロックBLKaに含まれる複数のデータ保持シフト列によって実現される。ブロックBLKaは、複数のデータ保持シフト列として、複数のメモリストリングMH0~MHm(mは1以上の整数)を含む。
各メモリストリングMHは、例えば、複数のメモリセルMC0~MC15を含む。各メモリセルMCは、1ビットデータを記憶可能に構成される。メモリセル0~MC15は、直列に接続され、それぞれ層L0~L15に対応して設けられる。FIFO方式では、各メモリストリングMHのメモリセルMC0が出力部群64に接続され、各メモリストリングMHのメモリセルMC15が入力部群61に接続される。同じブロックBLKa内で同じ層に設けられた複数のメモリセルMCは、シフトレジスタの1つのステージとして扱われる。入力部群61に最も近い層L15は、シフトレジスタの最初のステージとして使用される。出力部群64に最も近い層L0は、シフトレジスタの最後のステージとして使用される。
各ページPGは、隣接する幾つかの層の集合を含む。例えば、ページPG0は、層L0~L3に設けられた複数のメモリセルMC0~MC3により構成される。ページPG1は、層L4~L7に設けられた複数のメモリセルMC4~MC7により構成される。ページPG2は、層L8~L11に設けられた複数のメモリセルMC8~MC11により構成される。ページPG3は、層L12~L15に設けられた複数のメモリセルMC12~MC
15により構成される。1つのページPGのサイズは、ECCフレームのサイズに基づいて設計される。つまり、ECCフレームのサイズに基づいて、メモリストリングMHの本数と、1ページPGを構成する層数とは適宜変更され得る。
なお、シフトレジスタ型不揮発性メモリでは、“0”及び“1”ビットデータが、メモリセルMCの2状態にそれぞれ割り当てられても良いし、隣接するメモリセルMCとの状態の差分に基づいて“0”ビットデータと“1”ビットデータとを記憶してもよい。各ブロックBLKaは、データの判定基準として使用される参照層を有していてもよい。参照層は、例えば、ブロックBLKaの読み出し動作において最初に読み出される層(例えば、層L0)に配置され得る。
[3-2]動作
以下に、シフトレジスタ型不揮発性メモリの動作の概要について説明してから、第3実施形態に係るメモリシステムMSの書き込み動作及び読み出し動作について説明する。
[3-2-1]シフトレジスタ型不揮発性メモリの動作の概要
(シフトレジスタ型不揮発性メモリの書き込み動作)
図19は、シフトレジスタ型不揮発性メモリの書き込み動作の一例を示す概略図である。図19の(a)、(b)、(c)及び(d)は、シフトレジスタ型不揮発性メモリの書き込み動作における処理の一部を抽出して示している。以下に、図19を参照して、シフトレジスタ型不揮発性メモリの書き込み動作の一例を説明する。
まず、図19の(a)に示すように、1層分のデータの書き込み処理が実行される。具体的には、例えば、メモリデバイス20aがシフトレジスタ型不揮発性メモリの一種である磁壁移動メモリである場合、入力部群61の書き込み回路が、メモリセルMC15に書き込むデータに応じた磁界を発生させる。すると、最上位の層L15のメモリセルMC15に磁界を与えられ、メモリセルMC15の極性が、書き込むデータに応じて変化する。これにより、メモリセルMC15に所望のデータが書き込まれた状態になる。
次に、図19の(b)に示すように、1層分のシフト処理が実行される。例えば、入力部群61のシフト回路が、各メモリストリングMHにシフト電流を流す。すると、メモリストリングMH内で書き込み済みのデータが、最上位の層L15から最下位の層L0への方向に、1層分シフトする。
次に、図19の(c)に示すように、1層分のデータの書き込み処理が実行される。図19の(c)におけるデータの書き込み方法は、図19の(a)における書き込み処理と同様である。この書き込み処理が完了すると、ブロックBLKaは、層L14のメモリセルMC14に図19の(a)で書き込まれたデータが記憶され、層L15のメモリセルMC15に図19の(c)で書き込まれたデータが記憶された状態になる。
次に、図19の(d)に示すように、1層分のシフト処理が実行される。このシフト処理が完了すると、ブロックBLKaは、層L13のメモリセルMC13に図19の(a)で書き込まれたデータが記憶され、層L14のメモリセルMC14に図19の(c)で書き込まれたデータが記憶された状態になる。
以上で説明されたように、シフトレジスタ型不揮発性メモリの書き込み動作では、1層分の書き込み処理と1層分のシフト処理とが繰り返し実行される。つまり、各メモリストリングMHでは、先に書き込まれたデータの記憶位置が次にデータが書き込まれると奥側に移動される。そして、1層分の書き込み処理と1層分のシフト処理とが繰り返し実行されることによって、ブロックBLKa内の全層に、データが書き込まれる。
(シフトレジスタ型不揮発性メモリの読み出し動作)
図20は、シフトレジスタ型不揮発性メモリの読み出し動作の一例を示す概略図である。図20の(a)、(b)及び(c)は、シフトレジスタ型不揮発性メモリの読み出し動作における処理の一部を抽出して示している。以下に、図20を参照して、シフトレジスタ型不揮発性メモリの読み出し動作の一例を説明する。
まず、図20の(a)に示すように、1層分のデータの読み出し処理が実行される。具体的には、例えば、メモリデバイス20aが磁壁移動メモリである場合、センス回路が、磁気センサを備える。磁気センサの抵抗値は、最下位の層L0のメモリセルMC0の極性に基づいて変化する。そして、例えば、入力部群61が、各メモリストリングMHに読み出し電流を流す。これにより、出力部群64のセンス回路が、磁気センサの抵抗値に基づいてデータを判定することができる。判定されたデータは、出力部群64のラッチ回路に保持される。その後、ラッチ回路に保持されたデータが、ホスト機器HDに適宜出力される。
次に、図20の(b)に示すように、1層分のシフト処理が実行される。シフト処理の内容は、書き込み動作と同様である。これにより、メモリストリングMHで書き込み済みのデータが、最上位の層L15から最下位の層L0への方向に、1層分シフトし、シフト処理の前にメモリセルMC0に記憶されていたデータが破棄される。なお、読み出し電流は、データのシフトが発生しないように、シフト電流よりも小さい電流に設定される。
次に、図20の(c)に示すように、1層分のデータの読み出し処理が実行される。図20の(c)におけるデータの読み出し方法は、図20の(a)における読み出し処理と同様である。
以上で説明されたように、シフトレジスタ型不揮発性メモリの読み出し動作では、1層分の読み出し処理と1層分のシフト処理とが繰り返し実行される。そして、1層分の読み出し処理と1層分のシフト処理とが繰り返し実行されることによって、ブロックBLKa内の全層のデータが読み出される。
FIFO方式のメモリデバイス20aは、ブロックBLKaに最初に書き込まれたデータを、最初に読み出すことができる。一方で、FIFO方式のメモリデバイス20aは、ブロックBLKaの最後に書き込まれたデータを、先に書き込まれたデータが読み出されてからでないと読み出すことができない。このため、シフトレジスタ型不揮発性メモリの読み出し動作は、データが記憶されている層が出力側に近い層であるほどレイテンシが小さく、出力側から遠い層であるほどレイテンシが大きくなる。このように、シフトレジスタ型不揮発性メモリは、読み出すページ毎にレイテンシのばらつきを有している。
なお、シフトレジスタ型不揮発性メモリにおいて、データの読み出しは、読み出しに応じてデータが破壊される破壊読み出しである。このため、読み出し対象のページがブロックBLKaに含まれた一部のページである場合においても、選択されたブロックBLKaに対する全てのページを対象とした読み出しが実行される。つまり、1つの書き込み済みブロックBLKaを読み出し対象のブロックBLKaとして読み出し動作を実行する場合、ブロックBLKaに含まれる層数分のシフト動作が実行される。その後、読み出されたデータが、メモリデバイス20aに書き戻される。読み出されたデータが書き戻されるブロックBLKaは、読み出されたデータが記憶されたブロックBLKaと同じであってもよいし、異なっていてもよい。書き戻しに使用されるデータとしては、メモリコントローラ10のECC処理によりエラー訂正されたデータが使用されてもよいし、メモリデバイス20aから読み出されたデータが使用されてもよい。
[3-2-2]書き込み動作
図21は、第3実施形態に係るメモリシステムMSの書き込み動作の具体例を示す概略図である。以下に、図21を参照して、第3実施形態において、ホスト機器HDがデータDT0~DT3の書き込みをメモリシステムMSに要求する場合について説明する。本例において、データDT0~DT3のそれぞれは、1ページデータに対応している。
ホスト機器HDは、データDT0を、ページPG0を指定する論理アドレスLAに割り当てている。ホスト機器HDは、データDT1を、ページPG1を指定する論理アドレスLAに割り当てている。ホスト機器HDは、データDT2を、ページPG2を指定する論理アドレスLAに割り当てている。ホスト機器HDは、データDT3を、ページPG3を指定する論理アドレスLAに割り当てている。なお、メモリセルMCを示す箱に付加されたハッチングの線間隔は、狭いほど読み出し(シフト)回数が多いページであり、広いほど読み出し(シフト)回数が少ないページであることを表現している。
メモリシステムMSがホスト機器HDからデータDT0~DT3の書き込み要求を受信した後に、メモリコントローラ10は、図9のST11の処理を実行することによって、論理アドレスLAに物理アドレスPAを割り当てる。そして、メモリコントローラ10は、図9のST12の処理を実行することによって、データDT毎にパリティを含むECCフレームを生成する。それから、メモリコントローラ10は、図9のST14の処理を実行することによって、データDT0~DT3のそれぞれのECCフレームを用いた4ページデータの書き込みを、ページPG0~PG3にそれぞれ対応する物理アドレスPAを指定して、プリンシパル記憶領域20aPに命令する。すると、プリンシパル記憶領域20aPは、データDT0~DT3の書き込みを、選択されたブロックBLKaを対象として実行する。
また、メモリコントローラ10は、図9のST15の処理を実行することによって、データDT0~DT3の物理アドレスPAに、それぞれミラーリング物理アドレスMPAを割り当てる。データDT0に割り当てられたミラーリング物理アドレスMPAの書き込み先ページは、ページPG0からページPG3に変更される。データDT1に割り当てられたミラーリング物理アドレスMPAの書き込み先ページは、ページPG1からページPG2に変更される。データDT2に割り当てられたミラーリング物理アドレスMPAの書き込み先ページは、ページPG2からページPG1に変更される。データDT3に割り当てられたミラーリング物理アドレスMPAの書き込み先ページは、ページPG3からページPG0に変更される。つまり、プリンシパル記憶領域20aPとミラーリング記憶領域20Mとの間で、データDT0~DT3の書き込みに対するブロックBLKa内のページPGの割り当てが反転されている。
そして、メモリコントローラ10は、図9のST16の処理を実行することによって、データDT0~DT3のそれぞれのECCフレームを用いた4ページデータの書き込みを、ページPG0~PG3にそれぞれ対応するミラーリング物理アドレスMPAを指定して、ミラーリング記憶領域20aMに命令する。すると、ミラーリング記憶領域20aMは、データDT0~DT3の書き込みを、選択されたブロックBLKaを対象として実行する。
[3-2-3]読み出し動作
図22は、第3実施形態に係るメモリシステムMSの読み出し動作の具体例を示す概略図である。以下に、図22を参照して、第3実施形態において、ホスト機器HDが1ページデータの読み出しをメモリシステムMSに要求する場合について説明する。本例において、データDT0~DT3のそれぞれは、1ページデータに対応している。
本例において、メモリシステムMSは、プリンシパル記憶領域20aP及びミラーリング記憶領域20aMを用いて、データDT0、DT1、DT2及びDT3を二重化して保存している。具体的には、プリンシパル記憶領域20aPは、データDT0を層L0~L3のメモリセルMC0~MC3に記憶し、データDT1を層L4~L7のメモリセルMC4~MC7に記憶し、データDT2を層L8~L11のメモリセルMC8~MC11に記憶し、データDT3を層L12~L15のメモリセルMC12~MC15に記憶している。一方で、プリンシパル記憶領域20aPは、データDT0を層L12~L15のメモリセルMC12~MC15に記憶し、データDT1を層L8~L11のメモリセルMC8~MC11に記憶し、データDT2を層L4~L7のメモリセルMC4~MC7に記憶し、データDT3を層L0~L3のメモリセルMC0~MC3に記憶している。なお、データDTを示す箱に付加されたハッチングの線間隔は、狭いほど読み出し(シフト)回数が多く、広いほど読み出し(シフト)回数が少ないことを表現している。
メモリシステムMSがホスト機器HDから読み出し要求を受信した後に、メモリコントローラ10は、図11のST22の処理を実行することによって、読み出しを指示するアドレス(記憶領域)を選択する。本例に沿ってST22の処理を言い換えると、ST22の処理において、制御回路13は、読み出し対象の物理アドレスPAがページPG0又はPG1であるか否かを確認する。すなわち、制御回路13は、読み出し対象の物理アドレスPA(物理位置)が、読み出し(シフト)回数の少ない群に対応するか否かを確認する。
読み出し対象の物理アドレスPAがページPG0又はページPG1である場合(ST22:YES)、制御回路13は、物理アドレスPAを選択して、プリンシパル記憶領域20aPに読み出し命令を送信する。すると、プリンシパル記憶領域20aPは、読み出し回数の少ない群であるPG0又はPG1読み出しを実行する。
一方で、読み出し対象の物理アドレスPAがページPG0又はページPG1でない場合(ST22:NO)、制御回路13は、ミラーリング物理アドレスMPAを選択して、ミラーリング記憶領域20aMに読み出し命令を送信する。すなわち、メモリコントローラ10は、読み出し対象の物理アドレスPAが読み出し(シフト)回数の多い群に含まれたページPG2又はPG3である場合に、読み出したいページと同じデータが読み出し(シフト)回数の少ない群に記憶されているミラーリング記憶領域20aMを対象として読み出しを実行する。
[3-3]第3実施形態の効果
以上で説明されたように、第3実施形態に係るメモリシステムMSは、シフトレジスタ型不揮発性メモリにおいて、第1実施形態と同様に、ミラーリング記憶領域20Mに写しを記憶させるページを、プリンシパル記憶領域20aPと読み出し回数の異なるページに設定する。言い換えると、第3実施形態に係るメモリシステムMSは、ミラーリング記憶領域20Mにおける写しデータの書き込み先が、プリンシパル記憶領域20aPの書き込み位置(位相)に対してずらされている。
図23は、第3実施形態に係るメモリシステムMSの読み出し動作におけるシフト回数の一例を示すテーブルである。図23に示すように、ホスト機器HDからPG0読み出しを要求された場合、ページPG0のデータを記憶するアドレスの読み出しに必要なシフト回数は、プリンシパル記憶領域20aPにおいて4回であり、ミラーリング記憶領域20aMにおいて16回である。同様に、ホスト機器HDからPG1読み出しを要求された場合、ページPG1のデータを記憶するアドレスの読み出しに必要なシフト回数は、プリンシパル記憶領域20aPにおいて8回であり、ミラーリング記憶領域20aMにおいて12回である。ホスト機器HDからPG2読み出しを要求された場合、ページPG2のデータを記憶するアドレスの読み出しに必要なシフト回数は、プリンシパル記憶領域20aPにおいて12回であり、ミラーリング記憶領域20aMにおいて8回である。ホスト機器HDからPG3読み出しを要求された場合、ページPG3のデータを記憶するアドレスの読み出しに必要なシフト回数は、プリンシパル記憶領域20aPにおいて16回であり、ミラーリング記憶領域20aMにおいて4回である。
そして、第3実施形態に係るメモリシステムMSは、第1実施形態と同様に、ホスト機器HDから要求されたデータの読み出しを、シフト回数の小さい方の記憶領域で実行する。具体的には、第3実施形態に係るメモリシステムMSは、シフト回数が少ない群に対応するPG0及びPG1読み出しが要求された場合にプリンシパル記憶領域20aPからデータを読み出し、シフト回数が多い群に対応するPG2及びPG3読み出しが要求された場合にミラーリング記憶領域20aMからデータを読み出す。
つまり、第3実施形態に係るメモリシステムMSにおいて、プリンシパル記憶領域20aPとミラーリング記憶領域20aMのうちプリンシパル記憶領域20aPだけからPG0/PG1/PG2/PG3読み出しのそれぞれが実行された場合の読み出し回数の平均は、(4+8+12+16)/4=10回である。一方で、ミラーリング記憶領域20aMにおいてプリンシパル記憶領域20aPと同じ物理位置にデータの写しが記憶される場合に、PG0/PG1/PG2/PG3読み出しのそれぞれが実行された場合の読み出し回数の平均は、(4+8+8+4)/4=6回である。このように、第3実施形態に係るメモリシステムMSは、書き込み時に書き込むアドレスと、読み出し時に選択するアドレスとをプリンシパル記憶領域20aPとミラーリング記憶領域20aMとの間で適宜変更することによって、同じ物理位置に写しを書き込む場合よりもレイテンシを改善させることができる。
[3-4]第3実施形態の変形例
第3実施形態で説明された動作は、LIFO方式のメモリデバイス20aに対しても適用可能である。LIFO方式のメモリデバイス20aは、最初のステージに対応する層においてデータを書き込み及び読み出しを行う。簡潔に述べると、LIFO方式のメモリデバイス20aでは、入力部群61と出力部群64とのそれぞれが、メモリセルアレイ23aの一方側に接続される。また、シフト制御回路62が、ブロックBLKaの層単位のデータを、最初のステージから最後のステージへ向かう方向に層単位でシフトさせることと、最後のステージから最初のステージへ向かう方向に層単位でシフトさせることとの両方を実行し得る。例えば、LIFO方式のメモリデバイス20aは、データを書き込む場合に、最初のステージから最後のステージへ向かう方向に層単位でシフトさせ、データを読み出す場合に、最後のステージから最初のステージへ向かう方向に層単位でシフトさせる。これにより、LIFO方式のメモリデバイス20aが実現される。
なお、ミラーリング機能を構成する2つのメモリデバイス20aとして、FIFO方式のメモリデバイス20aとLIFO方式のメモリデバイス20aとが組み合わされてもよい。FIFO方式のメモリデバイス20aとLIFO方式のメモリデバイス20aとが組み合わされた場合には、メモリコントローラ10からミラーリングアドレス割り当て回路14が省略されてもよい。この場合、ページデータを記憶する物理位置が、プリンシパル記憶領域20aPとミラーリング記憶領域20aMとの間で同じになる。一方で、FIFO方式とLIFO方式との間では、同じ層位置における読み出し回数が反転している。その結果、FIFO方式のメモリデバイス20aとLIFO方式のメモリデバイス20aとの組み合わせは、第3実施形態と同様に、レイテンシを改善することができる。
[4]第4実施形態
第4実施形態に係る情報処理システム1は、メモリコントローラ10に相当する機能とメモリデバイス20に相当する機能とが、異なる装置に割り当てられた構成を有する。以下に、第4実施形態の第1の例に係る情報処理システム1aと第4実施形態の第2の例に係る情報処理システム1bとのそれぞれについて、第1実施形態と異なる点を説明する。
[4-1]第1の例に係る情報処理システム1a
図24は、第4実施形態の第1の例に係る情報処理システム1aの構成の一例を示すブロック図である。図24に示すように、情報処理システム1aは、ホスト機器HD、複数のデータサーバーSV1及びSV2、並びに中継装置70を備える。
データサーバーSVは、大容量のデータを不揮発に記憶することが可能な記憶装置を有するコンピュータであり、第1実施形態のメモリデバイス20と類似した機能を有する。データサーバーSV1及びSV2は、例えば、第1実施形態のプリンシパル記憶領域20P及びミラーリング記憶領域20Mにそれぞれ対応している。中継装置70は、ホスト機器HDとデータサーバーSV1及びSV2との間の通信を中継する装置であり、第1実施形態のメモリコントローラ10と類似した機能を有する。例えば、中継装置70は、ミラーリングアドレス割り当て回路71及びレイテンシ判断回路72を備えている。
ミラーリングアドレス割り当て回路71は、第1実施形態のミラーリングアドレス割り当て回路14と類似した機能を有する。ミラーリングアドレス割り当て回路71は、ホスト機器HDから受け取った書き込み要求に基づいて、論理アドレスLAに物理アドレスPAを割り当てる。そして、ミラーリングアドレス割り当て回路71は、第1実施形態と同様に、同じデータがレイテンシの小さいアドレスとレイテンシの大きいアドレスとの組み合わせになるように、物理アドレスPAとミラーリング物理アドレスMPAとを関連付ける。
レイテンシ判断回路72は、ホスト機器HDから受け取った読み出し要求に基づいて、論理アドレスLAに関連付けられた物理アドレスPAと、当該物理アドレスPAに基づいて算出されたミラーリング物理アドレスMPAとのうち、レイテンシが小さい方のアドレスを選択する。そして、レイテンシ判断回路72は、選択したアドレス(プリンシパル記憶領域20P又はミラーリング記憶領域20M)に対してデータの読み出しを命令する。
[4-2]第2の例に係る情報処理システム1b
図25は、第4実施形態の第2の例に係る情報処理システム1bの構成の一例を示すブロック図である。図25に示すように、情報処理システム1bは、ホスト機器HD、中継装置70、及び複数のデータセンターDS1及びDS2を備える。
データセンターDSは、大容量のデータを不揮発に記憶するデータサーバーの集合であり、第1実施形態のメモリデバイス20と類似した機能を有する。データセンターDS1及びDS2は、例えば、第1実施形態のプリンシパル記憶領域20P及びミラーリング記憶領域20Mにそれぞれ対応している。第4実施形態の第2の例の中継装置70は、ホスト機器HDとデータセンターDS1及びDS2との間の通信を、ネットワークNWを介して中継する。中継装置70が備えるミラーリングアドレス割り当て回路71とレイテンシ判断回路72の構成及び動作は、第4実施形態の第1の例と同様である。
[4-3]第4実施形態の効果
以上のように、第4実施形態では、複数のデータサーバーSV又は複数のデータセンターDSにデータが多重化されて記憶されている場合に、第1実施形態と同様に、レイテンシの小さいアドレスが選択されてデータが読み出される。その結果、第4実施形態の第1の例に係る情報処理システム1aと、第2の例に係る情報処理システム1bとのそれぞれは、第1実施形態と同様に、レイテンシを改善することができる。なお、情報処理システム1aは、中継装置70に、各々がミラーリング記憶領域20Mとして機能する複数のデータサーバーSVが接続されてもよい。同様に、情報処理システム1bは、中継装置70に、各々がミラーリング記憶領域20Mとして機能する複数のデータセンターDSがネットワークNWを介して接続されてもよい。また、第4実施形態は、第2実施形態や第3実施形態と組み合わされてもよい。
[5]その他
なお、メモリコントローラ10の動作の一部又は全部は、制御回路13がファームウェアを実行することによって実現されてもよいし、メモリコントローラ10が備える専用のハードウェアによって実現されてもよい。上実施形態において、ミラーリングアドレス割り当て回路14に割り当てられた動作は、制御回路13によって処理されてもよい。LUT17は、メモリシステムMS内のRAMに記憶されてもよいし、メモリデバイス20に不揮発に記憶されてもよい。メモリデバイス20に記憶されている場合に、LUT17は、メモリシステムMSがパワーオンされた際に、メモリシステムMSのRAMに読み出される。第1実施形態で説明されたメモリセルアレイ23において、複数のメモリセルトランジスタMTは、二次元に配置されてもよい。ホスト機器HDとメモリコントローラ10とは、無線で接続されてもよいし有線で接続されてもよい。同様に、中継装置70とデータサーバーSVとの間と、中継装置70とデータセンターDSとの間は、無線で接続されてもよいし、有線で接続されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことが出来る。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1,1a,1b…情報処理システム、10…メモリコントローラ、11…ホストインターフェース、12…メモリインターフェース、13…制御回路、14…ミラーリングアドレス割り当て回路、15…ECC回路、16…データバッファ、17…ルックアップテーブル、20,20a…メモリデバイス、20P…プリンシパル記憶領域、20M…ミラーリング記憶領域、21…メモリインターフェース、22…シーケンサ、23,23a…メモリセルアレイ、24…ドライバモジュール、25…ロウデコーダモジュール、26…センスアンプモジュール、30…半導体基板、31~35…導電体層、40~44…絶縁体層、50…コア部材、51…半導体層、52…積層膜、53…トンネル絶縁膜、54…絶縁膜、55…ブロック絶縁膜、61…入力部群、62…シフト制御回路、63…書き込み制御回路、64…出力部群、65…読み出し制御回路、70…中継装置、CH…チャネル、BLK…ブロック、SU…ストリングユニット、BL…ビット線、WL…ワード線、SL…ソース線、SGD,SGS…選択ゲート線、MT…メモリセルトランジスタ、STD,STS…選択トランジスタ、LA…論理アドレス、PA…物理アドレス、MPA…ミラーリング物理アドレス、DT…データ、EF…ECCフレーム、DTS…データセット、EFS…ECCフレームセット、GR…ワード線群、MH…メモリストリング、MC…メモリセル、PG…ページ、SV…データサーバー、DS…データセンター

Claims (11)

  1. 第1ビットと第2ビットとを含む複数ビットデータを記憶するメモリセルをそれぞれが備える第1及び第2のメモリデバイスを制御するメモリコントローラであって、
    外部のホスト機器から受信したデータを前記第1のメモリデバイスと前記第2のメモリデバイスとを用いて二重化して保存する制御回路を備え、
    前記制御回路は、前記ホスト機器から第1の論理アドレスへの第1のデータの書き込み要求を受信すると、
    前記第1の論理アドレスに、前記第1ビットに対応する第1の物理アドレスを割り当てて、前記第1の物理アドレスへの前記第1のデータの書き込みを、前記第1のメモリデバイスに命令し、
    前記第1の物理アドレスに、前記第2ビットに対応する第1のミラーリング物理アドレスを割り当てて、前記第1のミラーリング物理アドレスへの前記第1のデータの書き込みを、前記第2のメモリデバイスに命令し、
    前記第1ビットを読み出すための前記メモリセルへの読み出し回数は、前記第2ビットを読み出すための前記メモリセルへの読み出し回数と異なる、
    メモリコントローラ。
  2. 前記制御回路は、前記ホスト機器から第2の論理アドレスへの第2のデータの書き込み要求を受信すると、
    前記第2の論理アドレスに、前記第2ビットに対応する第2の物理アドレスを割り当てて、前記第2の物理アドレスへの前記第2のデータの書き込みを、前記第1のメモリデバイスに命令し、
    前記第2の物理アドレスに、前記第1ビットに対応する第2のミラーリング物理アドレスを割り当てて、前記第2のミラーリング物理アドレスへの前記第2のデータの書き込みを、前記第2のメモリデバイスに命令し、
    前記制御回路は、前記第1のデータと前記第2のデータとの組を、前記第1のメモリデバイスの第1のメモリセルと、前記第2のメモリデバイスの第2のメモリセルとのそれぞれに記憶させる、
    請求項1に記載のメモリコントローラ。
  3. 前記第1ビットを読み出すための前記メモリセルへの読み出し回数は、前記第2ビットを読み出すための前記メモリセルへの読み出し回数よりも小さく、
    前記制御回路は、
    前記ホスト機器から前記第1の論理アドレスへの読み出し要求を受信すると、前記第1の物理アドレスへの前記第1のデータの読み出しを、前記第1のメモリデバイスに命令し、
    前記ホスト機器から前記第2の論理アドレスへの読み出し要求を受信すると、前記第2のミラーリング物理アドレスへの前記第2のデータの読み出しを、前記第2のメモリデバイスに命令する、
    請求項2に記載のメモリコントローラ。
  4. 前記制御回路は、
    前記第1のメモリデバイスにおける前記第1のメモリセルの物理位置と、前記第2のメモリデバイスにおける前記第2のメモリセルの物理位置とが異なるように、前記第1のミラーリング物理アドレス及び前記第2のミラーリング物理アドレスを割り当てる、
    請求項2に記載のメモリコントローラ。
  5. 前記第1のメモリデバイスが備える複数の前記メモリセルと、前記第2のメモリデバイスが備える複数の前記メモリセルとのそれぞれは、第1のグループと、前記第1のグループよりも信頼性の高い第2のグループとに分類され、
    前記制御回路は、前記ホスト機器から第3の論理アドレスへの第3のデータの書き込み要求を受信すると、
    前記第3の論理アドレスに、第3の物理アドレスを割り当てて、前記第3の物理アドレスへの前記第3のデータの書き込みを、前記第1のメモリデバイスに命令し、
    前記第3の物理アドレスが前記第1のグループのメモリセルに関連付けられている場合に、前記第3の論理アドレスに、前記第2のグループのメモリセルに関連付けられた第3のミラーリング物理アドレスを割り当てて、前記第3のミラーリング物理アドレスへの前記第3のデータの書き込みを、前記第2のメモリデバイスに命令し、
    前記第3の物理アドレスが前記第2のグループのメモリセルに関連付けられている場合に、前記第3の論理アドレスに、前記第1のグループのメモリセルに関連付けられた第4のミラーリング物理アドレスを割り当てて、前記第4のミラーリング物理アドレスへの前記第3のデータの書き込みを、前記第2のメモリデバイスに命令する、
    請求項4に記載のメモリコントローラ。
  6. 前記制御回路は、前記第1のメモリデバイスにおける前記第1の物理アドレスへの前記第1のデータの読み出しに失敗したことを検知すると、
    前記第1のメモリデバイスに対する前記第1の物理アドレスへの前記第1のデータの読み出しのリトライシーケンスと、前記第2のメモリデバイスに対する前記第1のミラーリング物理アドレスへの前記第1のデータの読み出しシーケンスとを並列に実行し、前記リトライシーケンスと前記読み出しシーケンスとのうち、先に読み出しに成功した方のデータを前記ホスト機器に送信する、
    請求項3に記載のメモリコントローラ。
  7. 第1層と第2層とを含む複数の層毎に1ビットデータを記憶するシフトレジスタをそれぞれが備える第1及び第2のメモリデバイスを制御するメモリコントローラであって、
    外部のホスト機器から受信したデータを前記第1のメモリデバイスと前記第2のメモリデバイスとを用いて二重化して保存する制御回路を備え、
    前記制御回路は、前記ホスト機器から第1の論理アドレスへの第1のデータの書き込み要求を受信すると、
    前記第1の論理アドレスに、前記第1層に対応する第1の物理アドレスを割り当てて、前記第1の物理アドレスへの前記第1のデータの書き込みを、前記第1のメモリデバイスに命令し、
    前記第1の物理アドレスに、前記第2層に対応する第1のミラーリング物理アドレスを割り当てて、前記第1のミラーリング物理アドレスへの前記第1のデータの書き込みを、前記第2のメモリデバイスに命令する、
    メモリコントローラ。
  8. 前記制御回路は、前記ホスト機器から第2の論理アドレスへの第2のデータの書き込み要求を受信すると、
    前記第2の論理アドレスに、前記第2層に対応する第2の物理アドレスを割り当てて、前記第2の物理アドレスへの前記第2のデータの書き込みを、前記第1のメモリデバイスに命令し、
    前記第2の物理アドレスに、前記第1層に対応する第2のミラーリング物理アドレスを割り当てて、前記第2のミラーリング物理アドレスへの前記第2のデータの書き込みを、前記第2のメモリデバイスに命令する、
    請求項7に記載のメモリコントローラ。
  9. 前記制御回路は、
    前記ホスト機器から前記第1の論理アドレスへの読み出し要求を受信すると、前記第1の物理アドレスへの前記第1のデータの読み出しを、前記第1のメモリデバイスに命令し、
    前記ホスト機器から前記第2の論理アドレスへの読み出し要求を受信すると、前記第2のミラーリング物理アドレスへの前記第2のデータの読み出しを、前記第2のメモリデバイスに命令する、
    請求項8に記載のメモリコントローラ。
  10. 請求項1乃至請求項9の何れかに記載のメモリコントローラと、
    前記第1のメモリデバイスと、
    前記第2のメモリデバイスと、を備える、
    メモリシステム。
  11. 請求項1乃至請求項9の何れかに記載のメモリコントローラと、
    前記第1のメモリデバイスを備える第1のデータサーバーと、
    前記第2のメモリデバイスを備える第2のデータサーバーと、を備える、
    情報処理システム。
JP2021152058A 2021-09-17 2021-09-17 メモリコントローラ、メモリシステム、及び情報処理システム Pending JP2023044168A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021152058A JP2023044168A (ja) 2021-09-17 2021-09-17 メモリコントローラ、メモリシステム、及び情報処理システム
US17/695,086 US11797232B2 (en) 2021-09-17 2022-03-15 Memory controller, memory system, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021152058A JP2023044168A (ja) 2021-09-17 2021-09-17 メモリコントローラ、メモリシステム、及び情報処理システム

Publications (1)

Publication Number Publication Date
JP2023044168A true JP2023044168A (ja) 2023-03-30

Family

ID=85573114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021152058A Pending JP2023044168A (ja) 2021-09-17 2021-09-17 メモリコントローラ、メモリシステム、及び情報処理システム

Country Status (2)

Country Link
US (1) US11797232B2 (ja)
JP (1) JP2023044168A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240020223A1 (en) * 2022-07-18 2024-01-18 Micron Technology, Inc. Center allocation data structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010026961A (ja) 2008-07-24 2010-02-04 Canon Inc 制御装置、制御方法、及びプログラム
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
JP6034183B2 (ja) * 2012-12-27 2016-11-30 株式会社東芝 半導体記憶装置
KR102369402B1 (ko) * 2017-09-20 2022-03-02 삼성전자주식회사 스토리지 장치, 이의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템
US10642517B2 (en) 2018-02-02 2020-05-05 Western Digital Technologies, Inc. Adjustable performance parameters for SSDs
JP7449179B2 (ja) 2019-09-12 2024-03-13 キオクシア株式会社 メモリシステム
JP2021043912A (ja) 2019-09-13 2021-03-18 キオクシア株式会社 メモリシステム

Also Published As

Publication number Publication date
US11797232B2 (en) 2023-10-24
US20230087010A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
CN108701484B (zh) 三维存储器阵列的独立nand的冗余阵列
US9983928B2 (en) Apparatuses and methods including error correction code organization
CN108121673B (zh) 控制器以及包括控制器和非易失性存储器件的存储设备
US9928138B2 (en) Memory system
JP6131207B2 (ja) 半導体記憶装置
US20160247581A1 (en) Memory system, memory controller and memory control method
JP2009080651A (ja) 半導体記憶装置、及びその制御方法
US10915394B1 (en) Schemes for protecting data in NVM device using small storage footprint
US20180211707A1 (en) Semiconductor memory device and method of controlling semiconductor memory device
US9798475B2 (en) Memory system and method of controlling nonvolatile memory
KR102479483B1 (ko) 메모리 시스템 및 이의 동작 방법
US11099927B2 (en) Memory system
JP2021047721A (ja) メモリシステムおよび方法
US10289475B2 (en) Memory system
JP2023044168A (ja) メモリコントローラ、メモリシステム、及び情報処理システム
US20160072529A1 (en) Storage device and memory control method
US10102071B2 (en) Storage device that restores data lost during a subsequent data write
US11086718B2 (en) Memory system
US20170075758A1 (en) Memory system and method of controlling nonvolatile memory
US9424929B1 (en) Memory system and memory control method
JP2014134843A (ja) メモリシステム
US11960355B2 (en) Memory system
JP7471883B2 (ja) メモリシステム
US11699499B2 (en) Memory system including parities written to dummy memory cell groups
JP2021149622A (ja) メモリシステム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20230106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240314