JP5847940B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP5847940B2
JP5847940B2 JP2014525627A JP2014525627A JP5847940B2 JP 5847940 B2 JP5847940 B2 JP 5847940B2 JP 2014525627 A JP2014525627 A JP 2014525627A JP 2014525627 A JP2014525627 A JP 2014525627A JP 5847940 B2 JP5847940 B2 JP 5847940B2
Authority
JP
Japan
Prior art keywords
data
address
write
physical address
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014525627A
Other languages
English (en)
Other versions
JPWO2014013595A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5847940B2 publication Critical patent/JP5847940B2/ja
Publication of JPWO2014013595A1 publication Critical patent/JPWO2014013595A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • 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/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/004Reading or sensing circuits or methods
    • 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/0061Timing circuits or methods
    • 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/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/74Array wherein each memory cell has more than one access device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/75Array having a NAND structure comprising, for example, memory cells in series or memory elements in series, a memory element being a memory cell in parallel with an access transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/24Accessing extra cells, e.g. dummy cells or redundant cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、半導体装置に関し、例えば、不揮発性メモリ装置を含む半導体装置の技術に関する。
近年、複数のNAND型フラッシュメモリと、コントローラから構成されるSSD(Solid State Drive)がサーバー機器、Laptop PCおよびNetbook等に利用されている。NAND型フラッシュメモリには、消去回数に上限があり、データ書き込みサイズとデータ消去サイズが大きく異なることが広く知られている。特許文献1、特許文献2、特許文献3および特許文献4には、このようなNAND型フラッシュメモリの制御方法が開示されている。例えば、特許文献1には、フラッシュメモリのアドレス上を規定の順序で循環しながら書き込みアドレスを順次設定するライトポインタを備え、当該ライトポンタと論理アドレスとの対応関係や、当該ライトポインタの循環回数を用いてウエアレベリングを行う方法が示されている。また、特許文献5には、3次元構造のNAND型フラッシュメモリが開示されている。
さらに、本発明者が検討した技術には、例えば相変化メモリを含む半導体装置がある。この種のメモリは、少なくともアンチモン(Sb)とテルル(Te)を含むGe−Sb−Te系、Ag−In−Sb−Te系などのカルコゲナイド材料(または、相変化材料)を記録層の材料に使用する。また、その選択素子にはダイオードが用いられる。このように、カルコゲナイド材料とダイオードを用いた相変化メモリの特性は、例えば非特許文献1に開示されている。
図29は相変化材料を用いた抵抗性記憶素子の相変化に必要なパルス幅と温度との関係を示す図である。縦軸は温度、横軸は時間である。この記憶素子に記憶情報“0”を書き込む場合、図29に示すように、素子をカルコゲナイド材料の融点Ta以上に熱してから急冷するようなリセットパルスを印加する。冷却時間t1を短くすることにより(例えば約1nsに設定することにより)、カルコゲナイド材料は高抵抗のアモルファス(非晶質)状態となる。
逆に、記憶情報“1”を書き込む場合、記憶素子を融点Taよりも低いが、結晶化温度Tx(ガラス転移点と同じかそれよりも高い)より高い温度領域に保つようなセットパルスを印加する。これにより、カルコゲナイド材料は低抵抗の多結晶状態となる。結晶化に要する時間t2はカルコゲナイド材料の組成によって異なる。図29に示した素子の温度は、記憶素子自身が発するジュール熱、および周囲への熱拡散に依存する。
また、非特許文献2に記載されているように、相変化メモリは抵抗素子構造を小さくすると、相変化膜の状態変化に必要な電力が小さくなる。このため、相変化メモリは、原理上、微細化に向いており、研究が盛んに行われている。また、非特許文献3には、カルコゲナイド材料の低抵抗化に120ns、高抵抗化に50ns程度の時間を要する相変化メモリが記載されている。
さらに、特許文献6および特許文献7には、3次元構造の不揮発性メモリが開示されている。特許文献6には、可変抵抗素子とこれに並列接続されるトランジスタとを備えたメモリセルを積層方向に向けて直列に接続した構成が示されている。特許文献7には、可変抵抗素子とこれに直列接続されるダイオードとを備えたメモリセルを積層方向に向けて導電線を挟んで直列に接続した構成が示されている。当該構成では、例えば2個のメモリセルの間の導電線と、2個のメモリセルの外側の2本の導電線との間に電位差を与えることで、当該2個のメモリセルに対して一括して書き込み動作が行われる。
特開2008−146255号公報 特開平07−153285号公報 特許第3926985号公報 特開2004−240572号公報 国際公開第2011/114503号 国際公開第2011/074545号 特開2011−142186号公報
「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンフアレーンス、ダイジェスト・オブ・テクニカル・ペーパーズ(IEEE International Solid-State Circuits Conference、Digest of Technical Papers)」、(米国)、2007年、p.472−473 「アイ・イー・イー・イー、インターナショナル・エレクトロン・デバイシズ・ミーティング、テクニカル・ダイジェスト(IEEE International Electron Devices meeting、TECHNICAL DIGEST)」、(米国)、2001年、p.803−806 「アイ・イー・イー・イー、ジャーナル・オブ・ソリッド・ステート・サーキット(IEEE JOURNAL OF SOLID-STATE CIRCUIT)」、VOL.40、No.1、(米国)、2005年、p.293−300
本発明者らは、本願に先立ち、SSD(Solid State Drive)やメモリカードなどのストレージへ利用されているNAND型フラッシュメモリの制御方法について検討した。さらに、本発明者らは、カルコゲナイド材料からなる記録層とダイオードを用いた相変化メモリの抵抗値の特性について検討した。以下、検討内容を説明する。
《NAND型フラッシュメモリの制御方法に対する検討》
例えば、4GbitのNAND型フラッシュメモリは、(2112=2048+64)バイトからなるページと、64個のページからなるブロック(135168=131072+4096バイト)と、4096ブロックからなるチップとで構成される。SSDは、複数のNAND型フラッシュメモリと、これらフラッシュメモリを制御するコントローラとで構成される。ホストコントローラとSSDは、例えばSATA(Serial Advanced Technology Attachment)インターフェースによって接続される。
このようなSSDに向けてホストコントローラから1ページ分のデータ書込み命令が生じた場合の書込み動作について説明する。NAND型フラッシュメモリへのデータの書き込みはページ単位で行われ、データの書き込みは以下の手順により実行される。まず、コントローラは、NAND型フラッシュメモリから1ブロック分のデータ(135168バイト)を読み出す。次に、この1ブロック分のデータ(135168バイト)が格納されていたメモリ領域のデータを消去する。その後、新たに1ページ分のデータ(2112バイト)をメモリ領域に書き込む。
ここで、NAND型フラッシュメモリには、最大消去可能回数(ERASEmax)がある。この最大消去可能回数(ERASEmax)を超えると、NAND型フラッシュメモリに保存されているデータは保証されなくなり、SSDは寿命を迎える。従って、SSDの寿命を延ばすには、効率の良いデータ消去方法が必要である。
しかし、NAND型フラッシュメモリは、データの書込み単位と、データの消去単位が大きく異なっている。NAND型フラッシュメモリは、1ページ分のデータ(2112バイト)を書き込む際、64倍のデータサイズ(135168バイト)を消去する必要があり、データ消去方法が非常に非効率的と言える。その結果、NAND型フラッシュメモリを利用したSSDでは、寿命の低下が生じ易くなる。そこで、例えば、特許文献1〜特許文献4のように、寿命を向上させるための各種技術が知られているが、この場合、制御の複雑化に伴い実効的な書き込み時間等が増大する恐れがある。
このように、NAND型フラッシュメモリを利用したSSDでは、NAND型フラッシュメモリの書き込み速度や消去速度が元々低速であることに加えて、このような制御の複雑化に伴うオーバヘッドが加わるため、寿命の拡大と高速化を両立させることは容易でない。さらに、1ページ分のデータ(2112バイト)を書き込む際、1ブロック分のデータ(135168バイト)を消去する前に、この1ブロック分のデータを読み出す必要があるため、これにより書込み性能がさらに低下することも懸念される。
《抵抗変化型不揮発性メモリの制御方法に対する検討》
抵抗変化型メモリとして、相変化メモリ(Phase Change Memory)、ReRAM(Resistive RAM)などが開発されている。このような抵抗変化型メモリを用いると、NAND型フラッシュメモリを用いる場合と比べて大幅に書き込み速度を向上させることが可能になる。また、抵抗変化型メモリはデータを上書きでき、その最小単位は1バイトと小さい。つまり必要なデータサイズ分のみを書き換え可能である。ただし、このようなメモリには、書込み回数の上限値があり、この上限値が抵抗変化型メモリの寿命をきめる。このため、例えば特定のメモリセルへの書き込みが集中すると、その寿命が短くなってしまう恐れがある。
一方、不揮発性メモリへの要求性能(速度、寿命、容量)は、不揮発性メモリを利用するシステムによって異なり得る。抵抗変化型メモリは、前述したように、NAND型フラッシュメモリと比べて書き込み速度が早く、また書き換えの最小単位が小さいため、これらの特性を利用して、速度、寿命、容量等の性能をバランスよく確保するための制御方法が求められる。
また、例えば相変化メモリへの書き込みは、図29で述べたように、電流により発生するジュール熱を制御し、これによってメモリセルの抵抗値を制御することで行われる。この際に、このジュール熱による熱履歴のために生じたメモリセルの電気特性の差によって、書き換え動作後の抵抗値にばらつきが発生する恐れがある。具体的には、例えば、あるメモリセルで生じたジュール熱がその周辺のメモリセルに影響を及ぼすことにより、周辺のメモリセルの抵抗値にばらつきが生じる場合がある。さらに、このメモリセルの抵抗値のばらつき量は、書き込み情報や周辺のメモリセルの記憶情報がセットかリセットかによっても変動する恐れがある。例えば特許文献7のような単純な書き込み方法を用いた場合にはこのようなばらつきの問題が生じ得るため、書き込み方法の適正化を含めて前述した不揮発性メモリへの要求性能を確保するための制御方法を実現することが望まれる。
本発明は、このようなことを鑑みてなされたものであり、本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
本実施の形態による半導体装置は、複数のメモリセルを含む不揮発性メモリ部と、外部から入力される論理アドレスに対して物理アドレスを割り当て、前記不揮発性メモリ部の前記物理アドレスにアクセスを行う制御回路とを有する。不揮発性メモリ部は、複数の第1信号線と、複数の第1信号線と交差する複数の第2信号線と、複数の第1信号線と複数の第2信号線の交点に配置される複数のメモリセル群とを有する。複数のメモリセル群のそれぞれは、第1〜第N(Nは2以上の整数)メモリセルと、第1〜第Nメモリセルをそれぞれ選択する第1〜第Nメモリセル選択線とを有する。ここで、制御回路は、第1物理アドレスへの第1書き込み命令に応じて、第1〜第Nメモリセルの中のM個(M<N)となる第1部分にデータを書き込み、第1書き込み命令の後に生じる第1物理アドレスへの第2書き込み命令に応じて、第1〜第Nメモリセルの中の第1部分を除くM個となる第2部分にデータを書き込む。
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、不揮発性メモリセルを備えた半導体装置において、信頼性の向上等が実現可能になる。
本発明の一実施の形態による半導体装置において、それを適用した情報処理システムの概略構成例を示すブロック図である。 図1における制御回路の構成例を示すブロック図である。 図1における不揮発性メモリ装置の構成例を示すブロック図である。 図3Aにおけるチェインメモリアレイの構成例を示す回路図である。 図3Bのチェインメモリアレイの動作例を示す説明図である。 図3Bのチェインメモリアレイの別の動作例を示す説明図である。 図3Aの不揮発性メモリ装置において、その概略的な書き込み動作のタイミングの一例を示す説明図である。 図3Aの不揮発性メモリ装置において、その概略的な読み出し動作のタイミングの一例を示す説明図である。 図1の情報処理システムにおいて、電源投入時の初期シーケンスの一例を示す図である。 図1の情報処理システムにおいて、電源投入時の初期シーケンスの他の一例を示す図である。 図1のランダムアクセスメモリに格納される物理アドレステーブルの構成例を示す図である。 図1のランダムアクセスメモリに格納される物理セグメントテーブルの構成例を示す図である。 図1のランダムアクセスメモリに格納される物理セグメントテーブルの他の構成例を示す図である。 図2の制御回路や図1のランダムアクセスメモリに格納される書込み物理アドレステーブルの構成例を示す図である。 図2の制御回路や図1のランダムアクセスメモリに格納される書込み物理アドレステーブルの構成例を示す図である。 図1のランダムアクセスメモリに格納されるアドレス変換テーブルの構成例およびその初期設定後の状態例を示す図である。 図1の不揮発性メモリ装置における初期設定後の状態例を示す図である。 図1におけるブート用の不揮発性メモリ装置に格納されるSSDコンフィグレーション情報の一例を示す図である。 図1におけるブート用の不揮発性メモリ装置に格納されるSSDコンフィグレーション情報の他の一例を示す図である。 図1におけるブート用の不揮発性メモリ装置に格納されるSSDコンフィグレーション情報の更に他の一例を示す図である。 図1のメモリモジュールにおいて、制御回路から不揮発性メモリ装置に書き込まれるデータの構成例を示す図である。 図14Aにおけるデータ書き込みレイヤ情報の構成例を示す図である。 図14Aにおけるデータ書き込みレイヤ情報の構成例を示す図である。 図1のランダムアクセスメモリに格納されるアドレスマップ範囲の一例を示す図である。 図15の補足図であり、制御回路が図13AのSSDコンフィグレーション情報と図15のアドレスマップ範囲に基づいて設定した書き込み可能なメモリセルの配置例を模式的に示した図である。 図3Aおよび図3Bの不揮発性メモリ装置において、そのチェインメモリアレイへの書き込み方式の一例を示す説明図である。 図3Aおよび図3Bの不揮発性メモリ装置において、そのチェインメモリアレイへの書き込み方式の他の一例を示す説明図である。 図3Aおよび図3Bの不揮発性メモリ装置において、そのチェインメモリアレイへの書き込み方式の更に他の一例を示す説明図である。 図1の情報処理装置からメモリモジュールへライトリクエストが入力された際に、メモリモジュール内で行われる詳細な書き込み処理手順の一例を示すフロー図である。 図11Aおよび図11Bの書き込み物理アドレステーブルにおいて、その更新方法の一例を示すフロー図である。 図15等の第1物理アドレス領域に割り当てられる不揮発性メモリ装置において、その論理アドレス、物理アドレス、チップ内アドレスの対応関係の一例を示す図である。 図15等の第2物理アドレス領域に割り当てられる不揮発性メモリ装置において、その論理アドレス、物理アドレス、チップ内アドレスの対応関係の一例を示す図である。 図2の情報処理回路が不揮発性メモリ装置にデータ書き込みやデータ読み出しを行う際の物理アドレスの変化の様子の一例を示す図である。 図1の制御回路が不揮発性メモリ装置の第1物理アドレス領域へデータを書き込む際のアドレス変換テーブルの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。 図23Aに続くアドレス変換テーブルの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。 図1の制御回路が不揮発性メモリ装置の第2物理アドレス領域へデータを書き込む際のアドレス変換テーブルの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。 図23Aに続くアドレス変換テーブルの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。 図1の情報処理装置からメモリモジュールへリードリクエストが入力された際に、メモリモジュールが行うデータ読み出し動作の一例を示すフロー図である。 図13Bに示されるSSDコンフィグレーション情報を例として、ライト方法選択情報に応じたメモリモジュールの書き込み動作の一例を示すフロー図である。 図21の場合に加えて図2の情報処理回路が実行するウエアレベリング方法の一例を示すフロー図である。 図1の情報処理装置からメモリモジュールへ連続してライトリクエストが発生した際に、メモリモジュール内部でパイプライン的に実行されるデータ書き込み動作の一例を示す図である。 相変化材料を用いた抵抗性記憶素子の相変化に必要なパルス幅と温度との関係を示す図である。
以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明する。特に明示した場合を除き、それらは互いに無関係ではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等(個数、数値、量、範囲等を含む)についても同様である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の機能を有する部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
実施の形態において各ブロックを構成する回路素子は特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。さらに、これらのメモリセルには、相変化メモリ、ReRAM(Resistive Random Access Memory)のような抵抗性記憶素子を用いるものとする。
《情報処理システムの概要》
図1は、本発明の一実施の形態による半導体装置において、それを適用した情報処理システムの概略構成例を示すブロック図である。図1に示す情報処理システムは、情報処理装置(プロセッサ)CPU_CPとメモリモジュール(半導体装置)NVMMD0とを備える。情報処理装置CPU_CPは、特に限定しないがメモリモジュールNVMMD0へ保存されているデータを最小512バイト単位の論理アドレス(LAD)にて管理するホストコントローラである。情報処理装置CPU_CPは、インターフェース信号HDH_IFを通じ、このメモリモジュールNVMMD0に対してデータの読み出しや書込みを行う。メモリモジュールNVMMD0は、特に限定しないが、例えばSSD(Solid State Drive)等に該当するものである。
情報処理装置CPU_CPとメモリモジュール(半導体装置)NVMMD0を接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式、光インターフェース信号方式などがある。いうまでもなく、全ての方式を利用することができる。情報処理装置CPU_CPとメモリモジュールNVMMD0を動作させるクロック方式には、基準クロック信号REF_CLKを用いるコモンクロック方式およびソースシンクロナスクロック方式や、データ信号にクロック情報を埋め込むエンベデッドクロック方式などがある。いうまでもなく、全てのクロック方式を利用することができる。本実施の形態では、一例としてシリアルインターフェース信号方式ならびにエンベデッドクロック方式を用いるものとし、以下に動作を説明する。
情報処理装置CPU_CPから、クロック情報が埋め込まれ、シリアルデータへ変換されたリードリクエスト(RQ)やライトリクエスト(WQ)などがインターフェース信号HDH_IFを通じてメモリモジュールNVMMD0へ入力される。リードリクエスト(RQ)には論理アドレス(LAD)、データ読み出し命令(RD)、セクタカウント(SEC)などが含まれ、また、ライトリクエスト(WQ)には論理アドレス(LAD)、データ書込み命令(WRT)、セクタカウント(SEC)および書込みデータ(WDATA)などが含まれる。
メモリモジュール(半導体装置)NVMMD0は、不揮発性メモリ装置NVM10〜NVM17と、ランダムアクセスメモリRAMと、これら不揮発性メモリ装置およびランダムアクセスメモリを制御する制御回路MDLCT0を備える。不揮発性メモリ装置NVM10〜NVM17は、例えば同じ構成および性能を備えている。不揮発性メモリ装置NVM10は〜NVM17には、データ、OS、アプリケーションプログラム、SDDコンフィグレーション情報(SDCFG)を格納し、さらに情報処理装置CPU_CPのブートプログラム等が格納されている。ランダムアクセスメモリRAMは、特に限定しないが、例えばDRAM等である。
電源投入直後に、メモリモジュールNVMMD0は、内部の不揮発性メモリ装置NVM10〜NVM17と、ランダムアクセスメモリRAMと、制御回路MDLCT0の初期化の動作(所謂パワーオンリセット)を行う。さらに、メモリモジュールNVMMD0は、情報処理装置CPU_CPからのリセット信号RSTSIGを受けた際にも、内部の不揮発性メモリ装置NVM10〜NVM17と、ランダムアクセスメモリRAMと、制御回路MDLCT0の初期化を行う。
図2は、図1における制御回路の構成例を示すブロック図である。図2に示す制御回路MDLCT0は、インターフェース回路HOST_IFと、バッファBUF0〜BUF3と、書込み物理アドレステーブルNXPTBL1,NXPTBL2と、調停回路ARBと、情報処理回路MNGERと、メモリ制御回路RAMC,NVCT10〜NVCT17と、マップレジスタMAPREGと、レジスタREG1,REG2を備える。メモリ制御回路RAMCは、図1のランダムアクセスメモリRAMを直接制御し、メモリ制御回路NVCT10〜NVCT17は、図1の不揮発性メモリ装置NVM10〜NVM17をそれぞれ直接制御する。
バッファBUF0〜BUF3は、不揮発性メモリ装置NVM10〜NVM17の書き込みデータや読み出しデータを一時的に蓄える。書込み物理アドレステーブルNXPTBL1,NXPTBL2は、詳細は図11等で後述するが、次に情報処理装置CPU_CPより論理アドレスを伴う書き込み命令を受けた際に、当該論理アドレスに対して割り当てを行う物理アドレスを蓄えたテーブルであり、特に限定しないが、SRAMやレジスタ等によって実現される。マップレジスタMAPREGおよびレジスタREG1,REG2は、詳細は図13等で後述するが、メモリ空間の全体的な領域に関する情報を保持するレジスタである。なお、SDDコンフィグレーション情報(SDCFG)やブートプログラムは、メモリモジュールNVMMD0の初期設定の高速化を図るため、例えば、図2の情報処理回路MNGERに直接接続される形で制御回路MDLCT0内に配置することも可能である。
《不揮発性メモリ装置の全体構成および動作》
図3Aは、図1における不揮発性メモリ装置の構成例を示すブロック図であり、図3Bは、図3Aにおけるチェインメモリアレイの構成例を示す回路図である。図3Aに示す不揮発性メモリ装置は、図1の不揮発性メモリ装置NVM10〜NVM17のそれぞれに該当するものであり、ここでは、一例として相変化型の不揮発性メモリ(相変化メモリ)が用いられている。当該不揮発性メモリ装置は、クロック生成回路SYMD、ステータスレジスタSTREG、イレースサイズ指定レジスタNVREG、アドレス・コマンドインターフェース回路ADCMDIF、IOバッファIOBUF、制御回路CTLOG、温度センサTHMO、データ制御回路DATCTL、メモリバンクBK0〜BK3を備える。
各メモリバンクBK0〜BK3は、メモリアレイARYx(x=0〜m)と、各メモリアレイにそれぞれ対応して設けられる読み書き制御ブロックSWBx(x=0〜m)と、これらを制御する各種周辺回路を備える。当該各種周辺回路の中には、ロウアドレスラッチRADLT、カラムアドレスラッチCADLT、ロウデコーダROWDEC、カラムデコーダCOLDEC、チェイン選択アドレスラッチCHLT、チェインデコーダCHDEC、データ選択回路DSW1、データバッファDBUF0,DBUF1が含まれる。
各メモリアレイARYx(x=0〜m)は、複数のワード線WL0〜WLkと複数のビット線BL0_x〜BLi_xの交点に配置される複数のチェインメモリアレイCYと、複数のビット線BL0_x〜BLi_xのいずれかを選択してデータ線DTxに接続するビット線選択回路BSWxを備える。各読み書き制御ブロックSWBx(x=0〜m)は、データ線DTxに接続されるセンスアンプSAxおよびライトドライバWDRxと、書き込み動作時に、これらを用いてデータの検証を行う書込みデータ検証回路WVxを備える。
各チェインメモリアレイCYは、図3Bに示すように、複数の相変化メモリセルCL0〜CLnが直列に接続された構成を備え、その一端はダイオードDを介してワード線WLに接続され、他端はチェイン選択トランジスタTchを介してビット線BLに接続される。複数の相変化メモリセルCL0〜CLnは、図示は省略するが、半導体基板に対して高さ方向に積層配置される。また、各相変化メモリセルCLは、可変抵抗型の記憶素子Rと、それに並列接続されるメモリセル選択トランジスタTclを備える。記憶素子Rは、例えばカルコゲナイド材料で形成される。
図3Bの例では、2個のチェインメモリアレイCYがダイオードDを共有しており、チェインメモリアレイ選択線SL0,SL1によって各チェインメモリアレイ内のチェイン選択トランジスタTchがそれぞれ制御され、これによっていずれか一方のチェインメモリアレイが選択される。また、メモリセル選択線LY(LY0〜LYn)によって、相変化メモリセルCL0〜CLn内のメモリセル選択トランジスタTclがそれぞれ制御され、これによって各相変化メモリセルが適宜選択される。なお、チェインメモリアレイ選択線SL0,SL1およびメモリセル選択線LY0〜LYnは、チェイン制御線CHとして、図1のチェイン選択アドレスラッチCHLTおよびチェインデコーダCHDECを介して適宜駆動される。
次に、図3Aの不揮発性メモリ装置の動作について簡単に説明する。図3Aにおいて、まず、制御回路CTLOGは、アドレス・コマンドインターフェース回路ADCMDIF介して制御信号CTLを受ける。制御信号CTLは、特に限定しないが、例えば、コマンド・ラッチイネーブル信号(CLE)、チップイネーブル信号(CEB)、アドレス・ラッチ信号(ALE)、ライトイネーブル信号(WEB)、リードイネーブル信号(REB)、レディビジー信号(RBB)を含み、これらの組み合わせによって、書き込み命令又は読み出し命令が発行される。また、制御回路CTLOGは、制御信号CTLと共に、IOバッファIOBUFを介して入出力信号IOを受ける。入出力信号IOには、アドレス信号が含まれており、制御回路CTLOGは、当該アドレス信号からロウアドレスおよびカラムアドレスを抽出する。制御回路CTLOGは、当該ロウアドレス、カラムアドレス、ならびに予め定められる書き込み・読み出し単位等に基づいて、適宜内部アドレスを生成し、ロウアドレスラッチRADLT、カラムアドレスラッチCADLTならびにチェイン選択アドレスラッチCHLTにそれぞれ伝送する。
ロウデコーダROWDECは、ロウアドレスラッチRADLTの出力を受けてワード線WL0〜WLkの選択を行い、カラムデコーダCOLDECは、カラムアドレスラッチCADLTの出力を受けてビット線BL0〜BLiの選択を行う。また、チェインデコーダCHDECは、チェイン選択アドレスラッチCHLTの出力を受けて、チェイン制御線CHの選択を行う。制御信号CTLによって読み出し命令が入力された際、前述したワード線、ビット線およびチェイン制御線の組み合わせによって選択されたチェインメモリアレイCYからビット線選択回路BSW0〜BSWmを介してデータが読み出される。当該読み出されたデータは、センスアンプSA0〜SAmで増幅され、データ選択回路DSW1を介してデータバッファDBUF0(又はDBUF1)に伝送される。そして、データバッファDBUF0(又はDBUF1)上のデータは、データ制御回路DATCTLおよびIOバッファIOBUFを介して入出力信号IOに順次伝送される。
一方、制御信号CTLによって書き込み命令が入力された際、入出力信号IOには、前述したアドレス信号に続いてデータ信号が伝送され、当該データ信号は、データ制御回路DATCTLを介してデータバッファDBUF0(又はDBUF1)に入力される。データバッファDBUF0(又はDBUF1)上のデータ信号は、データ選択回路DSW1、ライトドライバWDR0〜WDRmおよびビット線選択回路BSW0〜BSWmを介して、前述したワード線、ビット線およびチェイン制御線の組み合わせによって選択されたチェインメモリアレイCYに書き込まれる。また、この際に、書込みデータ検証回路WV0〜WVmは、書き込みを行ったデータをセンスアンプSA0〜SAmを介して適宜読み出しながら書き込みレベルが十分なレベルに達したかを検証し、十分なレベルに達するまでライトドライバWDR0〜WDRmを用いて再度の書き込み動作を行う。
図4は、図3Bのチェインメモリアレイの動作例を示す説明図である。この図4を用いて、例えば、チェインメモリアレイCY1内の相変化メモリセルCL0における可変抵抗型記憶素子R0を高抵抗や低抵抗にする際の動作について説明する。チェインデコーダCHDECによって、チェインメモリアレイ選択線SL1のみが活性化(SL0=Low、SL1=High)され、チェイン選択トランジスタTch1が導通状態となる。続いて、メモリセル選択線LY0のみが非活性化(LY0=Low、LY1〜LYn=High)され、相変化メモリセルCL0のメモリセル選択トランジスタTcl0はカットオフ状態となり、残りのメモリセルCL1〜CLnのメモリセル選択トランジスタTcl1〜Tclnは導通状態となる。
次に、ワード線WL0がHighとなり、続いてビット線BL0がLowになると、電流I0がワード線WL0から、ダイオードD0、可変抵抗型記憶素子R0、メモリセル選択トランジスタTcl1〜Tclnおよびチェイン選択トランジスタTch1を経由してビット線BL0へ流れる。この電流I0が図29に示したReset電流パルスの形に制御されることで、可変抵抗型記憶素子R0は高抵抗となる。また、この電流I0が図29に示したSet電流パルスの形に制御されることで、可変抵抗型記憶素子R0は低抵抗となる。可変抵抗型記憶素子R0〜Rnの抵抗値の違いによってデータ“1”と“0”が区別される。特に限定しないが、可変抵抗型記憶素子が低抵抗になった場合に、データ“1”が記録され、高抵抗になった場合にデータ“0”が記録されるものとする。
なお、可変抵抗型記憶素子R0に記録されたデータを読み出す場合は、可変抵抗型記憶素子R0の抵抗値が変化しない程度に、データ書込みと同様の経路で電流が印加される。この場合、可変抵抗型記憶素子R0の抵抗値に応じた電圧値がセンスアンプ(この例では図3AのSA0)で検出され、データ“0”および“1”が判定される。
図5は、図3Bのチェインメモリアレイの別の動作例を示す説明図である。この図5を用いて、1チェインメモリアレイCY1内の全可変抵抗型記憶素子R0〜Rnを一括で低抵抗にする際の動作を説明する。チェインデコーダCHDECによって、チェインメモリアレイ選択線SL1のみが活性化(SL0=Low、SL1=High)され、チェイン選択トランジスタTch1が導通状態となる。続いて、メモリセル選択線LY0〜LYnが非活性化(LY0〜LYn=Low)され、メモリセルCL0〜CLnのメモリセル選択トランジスタTcl0〜Tclnはカットオフ状態となる。次に、ワード線WL0がHighとなり、続いてビット線BL0がLowになると、電流I1がワード線WL0から、ダイオードD0、可変抵抗型記憶素子R0〜Rnおよびチェイン選択トランジスタTch1を経由してビット線BL0へ流れる。この電流I1が図29に示したSet電流パルスの形に制御されることで、可変抵抗型記憶素子R0〜Rnは一括して低抵抗となる。
《チェインメモリアレイの詳細動作方式》
ここで、本実施の形態の主要な特徴の一つとなるチェインメモリアレイの動作方式について説明する。図17〜図19は、図3Aおよび図3Bの不揮発性メモリ装置において、そのチェインメモリアレイへの書き込み方式の一例を示す説明図である。本実施の形態による不揮発性メモリ装置は、例えば、ホスト(図1のCPU_CP)側からの1回の書き込み命令に応じて、チェインメモリアレイを構成する(n+1)ビットの相変化メモリセルに対して(n+1)ビットの書き込みを行う第2動作モードと、jビット(j<(n+1))の書き込みを行う第1動作モードとを備える。以降、各動作モード時の書き込み動作について説明する。なお、当該書き込み動作に伴うワード線、ビット線、チェイン制御線等の詳細な制御方法は、図4および図5の場合と同様である。
図17は、前述した第1動作モードでj=1とした場合の書き込み動作に伴うチェインメモリアレイの変化の様子の一例を示すものである。図17において、例えば、チェインメモリアレイCY0000とCY0010は同一の物理アドレス[1]に割り当てられるものとする。ここで、当該物理アドレス[1]を対象とする書き込み命令[1]が入力された場合、チェインメモリアレイCY0000,CY0010では、まず最初に、メモリセル選択線LY0が用いられる。
ここで、メモリセル選択線LY0を対象とする書き込み動作が行われる際には、それに先だって、チェインメモリアレイCY0000,CY0010では、その中の全ての相変化メモリセルを対象として一旦“1”(セット状態)の書き込み(初期書き込み又は消去と称す)が行われる。具体的には、チェインメモリアレイ選択線SL0が活性化され(SL0=High、SL1=Low)、メモリセル選択線LY0〜LYnが全て非活性化(Low)された状態で、ワード線WL0とビット線BL0_0の間、ならびにワード線WL0とビット線BL0_1の間にそれぞれ図29のSet電流パルスが印加される。そして、その後に、メモリセル選択線LY0に対応する相変化メモリセルを対象として、当該書き込み命令[1]に伴う所定のデータが書き込まれる。
この例では、当該書き込み命令[1]に伴うチェインメモリアレイCY0000用およびチェインメモリアレイCY0010用の1ビットデータが共に“0”であるものとして、チェインメモリアレイCY0000,CY0010では、共にメモリセル選択線LY0に対応する相変化メモリセル(前述したセット状態の初期書き込み(消去)に伴い“1”を保持)を対象として“0”(リセット状態)が書き込まれる。具体的には、チェインメモリアレイ選択線SL0が活性化(SL0=High、SL1=Low)され、メモリセル選択線LY0のみが非活性化(LY0=Low、LY1〜LYn=High)された状態で、ワード線WL0とビット線BL0_0の間、ならびにワード線WL0とビット線BL0_1の間にそれぞれ図29のReset電流パルスが印加される。
その後、再び当該物理アドレス[1]を対象とする書き込み命令[2]が入力された場合、今度はメモリセル選択線LY1が用いられる。この例では、当該書き込み命令[2]に伴うチェインメモリアレイCY0000用の1ビットデータが“1”であり、チェインメモリアレイCY0010用の1ビットデータが“0”であるものとする。ここで、チェインメモリアレイCY0000,CY0010におけるメモリセル選択線LY1に対応する相変化メモリセルのデータは、前述したメモリセル選択線LY0での初期書き込み(消去)に伴い予め“1”となっている。したがって、当該書き込み命令[2]に伴う1ビットデータが“1”であるチェインメモリアレイCY0000では、特に書き込み動作は行われず、チェインメモリアレイCY0010内のメモリセル選択線LY1に対応する相変化メモリセルを対象として“0”(リセット状態)が書き込まれる。具体的には、チェインメモリアレイ選択線SL0が活性化(SL0=High、SL1=Low)され、メモリセル選択線LY1のみが非活性化(LY1=Low、LY0,LY2〜LYn=High)された状態で、ワード線WL0とビット線BL0_1の間に図29のReset電流パルスが印加される。この際に、ワード線WL0とビット線BL0_0の間には、特に電流パルスは印加されない。
図17のチェインメモリアレイCY0000,CY0010内にはこのような書き込み動作が行われたあとの状態が示されている。以降も同様にして、当該物理アドレス[1]を対象として書き込み命令が入力される度に、使用するメモリセル選択線がLY2→LY3→…→LYnと遷移していき、その後、LYnからLY0に戻る際に、再度、前述した初期書き込み(消去)が行われる。
同様に、図17において、例えば、チェインメモリアレイCYk001とCYk011は同一の物理アドレス[2]に割り当てられるものとする。図17のチェインメモリアレイCYk001,CYk011内には、当該物理アドレス[2]を対象として、チェインメモリアレイCYk001,CYk011用の1ビットデータを共に“1”とする書き込み命令がn回入力されたのち、更に、当該物理アドレス[2]を対象とする書き込み命令[n+1]が入力されたあとの状態が示されている。当該書き込み命令[n+1]では、チェインメモリアレイCYk001用の1ビットデータは“1”であり、チェインメモリアレイCYk011用の1ビットデータは“0”である。チェインメモリアレイCYk001,CYk011では、当該n回の書き込み命令に応じて、一旦最初に初期書き込み(消去)が行われたのち、メモリセル選択線をLY0→LY1→…→LY(n−1)と推移しながら「1」の書き込みが行われる(ただし実際には初期書き込み以外の書き込み動作は行われない)。その後、チェインメモリアレイCYk011では、前述した1ビットデータ“0”の書き込み命令[n+1]に応じて、メモリセル選択線LYnに対応する相変化メモリセルを対象として“0”(リセット状態)が書き込まれる。
図18は、前述した第2動作モード時の書き込み動作に伴うチェインメモリアレイの変化の様子の一例を示すものである。図18において、例えば、チェインメモリアレイCYk000とCYk010は同一の物理アドレス[1]に割り当てられるものとする。ここで、当該物理アドレス[1]を対象とする書き込み命令[1]が入力された場合、チェインメモリアレイCYk000,CYk010では、まず、最初にその中の全ての相変化メモリセルを対象として一旦“1”(セット状態)の書き込み(すなわち前述した初期書き込み(消去))が行われる。そして、その後に、チェインメモリアレイCYk000,CYk010内の全ての相変化メモリセルを対象として、当該書き込み命令[1]に伴う所定のデータが書き込まれる。
この例では、当該書き込み命令[1]に伴うチェインメモリアレイCYk000用の(n+1)ビットデータが“0…00”であり、チェインメモリアレイCYk010用の(n+1)ビットデータが“0…10”となっている。ここで、チェインメモリアレイCYk000,CYk010における全相変化メモリセルのデータは、前述した初期書き込み(消去)に伴い予め“1”となっている。したがって、当該書き込み命令[1]に伴うデータが“1”のビットに対応する相変化メモリセル(ここではCYk010内のLY1に対応する相変化メモリセル)では、特に書き込み動作が行われず、それ以外の相変化メモリセルを対象として“0”(リセット状態)が書き込まれる。具体的には、例えば、非活性化するメモリセル選択線をLY0→LY1→…→LYnのように順次シフトさせながら、その都度、ワード線WLkとビット線BL0_0の間と、ワード線WLkとビット線BL0_1の間のそれぞれに図29のReset電流パルスを印加するか否かが選択される。この例では、メモリセル選択線LY1が非活性化された際のワード線WLkとビット線BL0_1の間を除いた場合でReset電流パルスが印加されることになる。
その後、再び当該物理アドレス[1]を対象とする書き込み命令[2]が入力された場合、書き込み命令[1]の場合と同様に、最初に初期書き込み(消去)が行われたのち、当該書き込み命令[2]に伴うチェインメモリアレイCYk000,CYk010用の各(n+1)ビットデータに基づいて適宜“0”(リセット状態)の書き込みが行われる。なお、ここでは、非活性化するメモリセル選択線を順次シフトさせながら“0”(リセット状態)の書き込みを行ったが、場合によっては、メモリセル選択線をシフトさせずに一括して書き込みを行うことも可能である。すなわち、例えば、メモリセル選択線LY0〜LYnを全て非活性状態とした状態で、ワード線WLkとビット線BL0_0の間にReset電流パルスを印加し、その後、メモリセル選択線LY0〜LYnをLY1を除いて全て非活性状態とした状態で、ワード線WLkとビット線BL0_1の間にReset電流パルスを印加すればよい。
図19は、前述した第1動作モードでj=2とした場合の書き込み動作に伴うチェインメモリアレイの変化の様子の一例を示すものである。図19において、例えば、チェインメモリアレイCY0000とCY0010は同一の物理アドレス[1]に割り当てられるものとする。ここで、当該物理アドレス[1]を対象とする書き込み命令[1]が入力された場合、チェインメモリアレイCY0000,CY0010では、まず最初に、2本のメモリセル選択線LY0,LY1が用いられる。
ここで、メモリセル選択線LY0,LY1を対象とする書き込み動作が行われる際には、それに先だって、チェインメモリアレイCY0000,CY0010では、その中の全ての相変化メモリセルを対象として前述した初期書き込み(消去)が行われる。そして、その後に、メモリセル選択線LY0,LY1に対応する相変化メモリセルを対象として、当該書き込み命令[1]に伴う所定のデータが書き込まれる。ここでは、当該書き込み命令[1]に伴うチェインメモリアレイCY0000用の2ビットデータが“00”であり、チェインメモリアレイCY0010用の2ビットデータが“10”である場合を例としている。具体的な書き込み動作は、非活性化するメモリセル選択線をLY0→LY1のようにシフトさせ、その都度、ワード線WL0とビット線BL0_0の間と、ワード線WL0とビット線BL0_1の間のそれぞれに図29のReset電流パルスを印加するか否かを選択することで行われる。
その後、再び当該物理アドレス[1]を対象とする書き込み命令[2]が入力された場合、今度はメモリセル選択線LY2,LY3が用いられる。この例では、当該書き込み命令[2]に伴うチェインメモリアレイCY0000用の2ビットデータが“11”であり、チェインメモリアレイCY0010用の2ビットデータが“10”である場合を例としている。図19のチェインメモリアレイCY0000,CY0010内にはこのような書き込み動作が行われたあとの状態が示されている。以降も同様にして、当該物理アドレス[1]を対象として書き込み命令が入力される度に、使用するメモリセル選択線がLY4,LY5→LY6,LY7→…と遷移していき、その後、LYn−1,LYnからLY0,LY1に戻る際に、再度、前述した初期書き込み(消去)が行われる。
以上、図17〜図19に示すようなメモリアレイの動作方式を用いることで、例えば次のような効果が得られる。
(1)前述した第1動作モード時には、(n+1)ビットのチェインメモリアレイがj(<(n+1))ビットの記憶容量を持つものとして使用されると共に、当該jビットは当該チェインメモリアレイ内で循環するように制御されるため、前述した第2動作モード時と比べて高速化と寿命の拡大が図れる。すなわち、例えば図17の場合、図18の場合と比較して、“0”(リセット状態)の書き込み対象となる最大ビット数が1/(n+1)に減るため、これに伴う書込みデータ検証動作(ベリファイ動作)も含めて書き込みに要する最大時間を短縮することができる。また、チェインメモリアレイ内の全ビットは、図17の場合には(n+1)回の書き込み命令によって1回使用されるのに対して、図18の場合には1回の書き込み命令によって1回使用されるため、図17の場合は図18の場合に比べて寿命が約(n+1)倍程度に延びる。
一方、第2動作モード時には、第1動作モード時と比べて、大容量化や低コスト化が図れる。すなわち、例えば、図17の場合には1個のチェインメモリアレイが1ビットの記憶容量を持つものとして使用されるのに対して、図18の場合には、1個のチェインメモリアレイが(n+1)ビットの記憶容量を持つものとして使用されるため、単位面積当たりの容量値が大きくなり、ビットコストを低く設定できる。これらの結果、例えば不揮発性メモリ装置内において第1動作モードで使用される領域と第2動作モードで使用される領域を設けるなど、第1動作モードと第2動作モードを適宜組み合わせることで、速度、寿命、容量等の性能をバランスよく確保することでき、ユーザの要求性能に対して柔軟に対応することが可能になる。
(2)前述した第1および第2動作モードの双方において、チェインメモリアレイ内の全てのメモリセルに対して、一旦、セット状態およびリセット状態の中の一方の状態を一括して書き込んだのち(初期書き込み(消去)ののち)、他方の状態を特定のメモリセルに書き込むような方式を用いることで、安定した書き込み動作が実現可能になる。すなわち、チェインメモリアレイ内では、まず、一括して一方の状態を書き込むことでチェインメモリアレイ内の各メモリセルの状態(抵抗値)をほぼ均一に保つことが可能になる。そして、その後に特定のメモリセルに対して他方の状態を書き込む際に、当該書き込みに伴う発熱によって当該特定のメモリセルの周辺に配置された各メモリセルは、同様の初期状態から同様の影響を受けるため、結果として、チェインメモリアレイ内における各メモリセル間の抵抗値のばらつき量を低減することができる。これによって、安定した書き込み動作が実現可能になる。特に、図17〜図19に示すような積層構造のチェインメモリアレイを用いる場合には、積層構造を用いない場合と比べて各メモリセル間がより近接配置される可能性が高いため、このような方式によってばらつき量を低減することがより有益となる。
また、さらに、ここでは、初期書き込み(消去)時にセット状態を用い、その後の特定のメモリセルに対する書き込み時にリセット状態を用いている。これによって、より安定した書き込み動作が実現可能になる。例えば、相変化メモリセルでは、通常、リセット状態よりもセット状態の方が安定している。また、図29に示したように、セット状態を書き込む際のパルス幅は、リセット状態を書き込む際のパルス幅に比べて広いため、セット状態を書き込む際には、その分だけ当該書き込み動作に伴う発熱が周辺に広がり易く、周辺の相変化メモリセルの記憶状態に影響を及ぼす可能性が高くなる。これらを鑑みると、本実施の形態の書き込み方式のように、特定の相変化メモリセルを対象としてセット状態の書き込みが生じないような方式を用いることが有益となる。本実施の形態の書き込み方式を用いると、特定の相変化メモリセルにリセット状態を書き込む際に、その周辺の相変化メモリセルは初期書き込み(消去)に伴いセット状態で安定しており、更に、リセット状態の書き込みに伴うパルス幅が狭いことから、当該書き込みに伴う熱の広がりも抑制される。
(3)前述した第1動作モードと、前述したチェインメモリアレイ内の各メモリセルに対する具体的な書き込み方式を組み合わせることで、メモリセルの寿命の向上と共に安定した書き込み動作が実現でき、信頼性の向上が図れる。
なお、図17〜図19および図3B等では、例えばn=7等とし、積層される(n+1)個の相変化メモリセルを1個のチェインメモリアレイに対応させたが、必ずしもこれに限定されるものではなく、適宜対応関係を変更することも可能である。例えば、図17において、n=3とし、順に積層される4個の相変化メモリセル(例えばCY0000に該当)と、この隣で順に積層されると共にダイオードおよびビット線を共有する4個の相変化メモリセル(例えばCY0001に該当)とを、1個のチェインメモリアレイに対応させることも可能である。この場合、当該チェインメモリアレイの初期書き込み(消去)は、チェインメモリアレイ選択線SL0,SL1を順に活性化することで2回に分けて行われる。あるいは、例えば書き込み電流を2倍の大きさに設定できるような場合には、チェインメモリアレイ選択線SL0,SL1を共に活性化することで1回で行うことも可能である。また、例えば、図17では、書き込み命令が入力される毎にメモリセル選択線を順次シフトさせたが、例えば、当該書き込み命令に伴うデータがオール“1”の場合には、当該シフトを行わないような機能を付加することも可能である。
《不揮発性メモリ装置への書き込み動作》
図6は、図3Aの不揮発性メモリ装置において、その概略的な書き込み動作のタイミングの一例を示す説明図である。ここでは、図1の不揮発性メモリ装置NVM1x(x=0〜7)のいずれかに対応する図3Aの不揮発性メモリ装置を対象に、MバイトのデータをデータバッファDBUF0を介してメモリアレイARY0〜ARYm内の相変化メモリセルに書き込む場合を例とする。なお、図6における「m*n」等の「*」は「×」(乗算)を意味するものである。
図6において、ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。この後、書き込みコマンドW10を入出力線I/Ox(x=0〜7)(図3AのIO[7:0])を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって書き込みコマンドW10が図3Aのアドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。また、書き込みコマンドW10には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図6の例ではデータバッファDBUF0が指定されている。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラムアドレスを2回(CA1、CA2)、ロウアドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCMDIFへ取り込まれ、解読される。アドレス・コマンドインターフェース回路ADCMDIFにてアドレスおよび書き込みコマンドW10を解読した結果、メモリバンクBK0への書き込み命令であることが制御回路CTLOGに伝えられると、制御回路CTLOGは、メモリバンクBK0にデータを書き込むため、メモリバンクBK0を活性化する。
アドレス・コマンドインターフェース回路ADCMDIFへ入力されたロウアドレス(RA1、RA2、RA3)およびカラムアドレス(CA1、CA2)は、制御回路CTLOGを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチRADLT、カラムアドレスラッチCADLTおよびチェイン選択アドレスラッチCHLTへ転送される。ここで書き込み動作は、最初に入力されたカラムアドレスから開始される。ロウアドレスラッチRADLTからロウアドレス(RA1、RA2、RA3)がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス(RA1、RA2、RA3)に対応したワード線WLk(ワード線WLk=High)が選択される。次に、チェイン選択アドレスラッチCHLTからチェインアドレス(CHAD)およびセルアドレス(CLAD)がチェインデコーダCHDECへ転送され、チェインデコーダCHDECによって、チェインアドレス(CHAD)およびセルアドレス(CLAD)に対応したチェインメモリアレイ選択線SLおよびメモリセル選択線LYが選択される。
続いて、カラムアドレスラッチCADLTからカラムアドレス(CA1、CA2)がカラムデコーダCOLDECへ転送され、解読される。カラムデコーダCOLDECからの解読結果は、各メモリアレイARY0〜ARYmのビット線選択回路BSW0〜BSWmへ入力され、メモリアレイARY0〜ARYm毎に一つのビット線BLi_x(x=0〜m)が選択され、データ線DT0〜DTmを介して書き込み(ライト)ドライバWDR0〜WDRmへ接続される。このような状態から、書き込みドライバWDR0〜WDRmは、データ線DT0〜DTmを介して選択されたビット線BLi_xをLow状態とし、図4および図5に示したように、相変化メモリセルCLの可変抵抗型記憶素子Rに所定の電流を流すことでこの可変抵抗型記憶素子Rを低抵抗状態や高抵抗状態にする。
相変化メモリセルCLの可変抵抗型記憶素子Rを低抵抗状態にする、すなわち記憶情報“1”を書き込む場合には、データ線DT0〜DTmを介して印加するメモリセル電流Iclはセット動作に必要な値(Iset)に制御される。相変化メモリセルCLを高抵抗状態にする、すなわち記憶情報“0”を書き込む場合には、データ線DT0〜DTmを介して印加するメモリセル電流Iclはリセット動作に必要な値(Ireset)に制御される。例えば、一つのメモリバンクの中に、書き込みドライバWDRが合計(m+1)個存在し、各メモリアレイARY0〜ARYm内で8ビットの記憶容量を持つチェインメモリアレイCYが1個ずつ選択されるものとすると、メモリバンクの中で、(m+1)バイトを単位とした書き込みを行うことができる。
次に、ハイ・レベルとなっているアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動して、ライトイネーブル信号WEBの立ち上がりエッジに同期して、記憶情報DI(1),DI(2),…,DI(M)が、入出力線I/Ox(x=0〜7)を介してそれぞれ1バイトずつ入力される。この各記憶情報DI(1),DI(2),…,DI(M)は、順次、データバッファDBUF0へ入力される。データバッファDBUF0へnバイト分のデータが入力されるたびに、n×8個分の書き込みドライバWDRを通じて、nバイト分のデータが書き込まれる。以下に、その動作を示す。
先ず、最初のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0への最初のnバイト分のデータの中で、最初の1バイト分のデータが入力された時点で、書き込みドライバWDRを通じて、カラムアドレス{CA1、CA2}によって選択された最初のnバイト分のメモリセルが低抵抗状態(消去:ERS1(1))に書き込まれる。次に、データバッファDBUF0に最初のnバイト分のデータがすべて入力された時点で、データバッファDBUF0に保持されているデータの中で“0”のデータに対応する相変化メモリセルが、書き込みドライバWDRを通じて、高抵抗状態(プログラム:PROG0(1))に書き込まれる。最後に、書込みデータ検証回路WVx(x=0〜m)は、相変化メモリセルへ書き込まれた“0”のデータを読み出し、正しく“0”が書き込まれたかを確認する(ベリファイ:VRF0(1))。これによって、最初のnバイト分のデータ書き込みが行われる。
次に、2番目のnバイト分のデータの書き込み動作を説明する。
データバッファDBUF0への2番目のnバイト分のデータの中で、最初の1バイト分のデータが入力した時点で、書き込みドライバWDRを通じて、カラムアドレス{{CA1、CA2}+(n)}によって選択された2番目のnバイト分のメモリセルが低抵抗状態(消去:ERS1(2))に書き込まれる。次に、データバッファDBUF0に2番目のnバイト分のデータがすべて入力された時点で、データバッファDBUF0に保持されているデータの中で“0”のデータに対応する相変化メモリセルが、書き込みドライバWDRを通じて、高抵抗状態(プログラム:PROG0(2))に書き込まれる。最後に、書込みデータ検証回路WVx(x=0〜m)は、相変化メモリセルへ書き込まれた“0”のデータを読み出し、正しく“0”が書き込まれたかを確認する(ベリファイ:VRF0(2))。これによって、2番目のnバイト分のデータ書き込みが行われる。
3番目のnバイト分のデータの書き込み動作も、上記の動作と同様に行われ、その際のカラムアドレスは{{CA1、CA2}+(2n)}となる。このように、開始カラムアドレス{CA1、CA2}に対して順にnの倍数を加算しながらカラムアドレスを生成し、当該カラムアドレスによってnバイト分の相変化メモリセルCLが選択される毎に、消去(ERS1)、プログラム(PROG0)およびベリファイ(VRF0)が実行される。なお、当該カラムアドレスの加算は、例えば、図3Aの制御回路CTLOGによって行われる。
このような動作により、Mバイトのデータを書き込む際は、消去(ERS1)とプログラム(PROG0)およびベリファイ(VRF0)がM/n回生じることになる。また、書き込みコマンドW10にてデータバッファDBUF1を指定した場合は、入出力線I/Ox(x=0〜7)を介してデータバッファDBUF1へ入力され、データバッファDBUF1に保持されたデータが相変化メモリセルCLへ書き込まれる。なお、図6において、書き込み実行コマンドW11は、記憶情報DI(1)〜DI(M)の入力が終わり、メモリアレイに対して実施の書き込み動作を行わせる旨を指示するための命令フォーマット上のコマンドである。ただし、図6の例では、当該書き込み実行コマンドW11を受ける前の段階で、データバッファに所定量のデータが蓄えられる度に実際の書き込み動作を行っており、これによって高速化を図っている。
また、特に限定しないが、第2動作モード時のMバイトの書き込みは、例えば1本のワード線に対して各メモリアレイARY0〜ARYm毎に1本のビット線を活性化し、これによりARY0〜ARYmからそれぞれ1個ずつチェインメモリアレイCYを選択し、当該CY内の全メモリセルを書き込み対象とすることで行われる。当該メモリアレイ構成を前提とする場合、第1動作モード時のMバイトの書き込みは、例えば各メモリアレイARY0〜ARYm毎の1本のビット線に対して複数本のワード線を順に活性化し、これによりARY0〜ARYmの中からそれぞれ複数個ずつチェインメモリアレイCYを選択し、当該CY内の1個のメモリセルを書き込み対象とすることで行われる。あるいは、例えば1本のワード線に対して各メモリアレイARY0〜ARYm毎に複数本のビット線を順に活性化し、これによりARY0〜ARYmの中からそれぞれ複数個ずつチェインメモリアレイCYを選択し、当該CY内の1個のメモリセルを書き込み対象とすることで行われる。
以上説明したように、不揮発性メモリ装置NVM1x(x=0〜7)はMバイトのデータを書き込む際には、要求されたMバイトデータサイズだけの消去(ERS1)とプログラム(PROG0)およびベリファイ(VRF0)動作を行う。つまり、消去(ERS1)のデータサイズとプログラム(PROG0)のデータサイズは等しいため、余分なアドレスのデータを消去(ERS1)する必要な無いため、高速な書き込みを実現できる。また、この書き込み動作において、図17〜図19で述べたように、上書きはせず、一旦、対象となる相変化メモリセルCLを消去状態とすることで、相変化メモリセルの抵抗値の均一化を図ることができ、安定した書き込み動作が実現できる。さらに、プログラム(PROG0)後、ベリファイ(VRF0)を行うことで、高い信頼性を保つことができる。
《不揮発性メモリ装置からの読み出し動作》
図7は、図3Aの不揮発性メモリ装置において、その概略的な読み出し動作のタイミングの一例を示す説明図である。ここでは、図1の不揮発性メモリ装置NVM1x(x=0〜7)のいずれかに対応する図3Aの不揮発性メモリ装置を対象に、指定されたデータサイズ分のデータを、メモリアレイARY0〜ARYm内の相変化メモリセルからデータバッファDBUF0を介して読み出す場合を例とする。なお、図7における「k*n」等の「*」は「×」(乗算)を意味するものである。
図7において、ロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。次に、読み出しコマンドRD4が入出力線I/Ox(x=0〜7)(図3AのIO[7:0])を介して入力されると、ライトイネーブル信号WEBの立ち上がりエッジによって、第1の読み出しコマンドRD4がアドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
次に、ハイ・レベルとなっているコマンド・ラッチイネーブル信号CLEをロウ・レベルへ、ロウ・レベルとなっているアドレス・ラッチイネーブル信号ALEをハイ・レベルに夫々駆動して、カラムアドレスを2回(CA1、CA2)、ロウアドレスを3回(RA1、RA2、RA3)に分けて順に入力する。これらのアドレスは、ライトイネーブル信号WEBの立ち上がりエッジによって、アドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
次にロウ・レベルとなっているコマンド・ラッチイネーブル信号CLEをハイ・レベルに駆動し、ハイ・レベルとなっているチップイネーブル信号CEB及びアドレス・ラッチイネーブル信号ALEをロウ・レベルに駆動する。続いて、第2の読み出しコマンドRD41を入出力線I/Ox(x=0〜7)を介して入力すると、ライトイネーブル信号WEBの立ち上がりエッジによって、第2の読み出しコマンドRD41がアドレス・コマンドインターフェース回路ADCOMIFへ取り込まれ、解読される。
コマンドRD4およびRD41には、データバッファDBUF0あるいはDBUF1を指定する情報も含まれており、図7の例ではデータバッファDBUF0を指定している。アドレス・コマンドインターフェース回路ADCOMIFにてアドレス、コマンドRD4およびコマンドRD41を解読した結果、メモリバンクBK0への読み出し命令であることが制御回路CTLOGに伝えられると、制御回路CTLOGは、メモリバンクBK0からデータを読み出すため、メモリバンクBK0を活性化する。
アドレス・コマンドインターフェース回路ADCOMIFへ入力されたロウアドレス(RA1、RA2、RA3)およびカラムアドレス(CA1、CA2)は、制御回路CTLOGを通じて、それぞれ、活性化されたメモリバンクBK0のロウアドレスラッチRADLT、カラムアドレスラッチCADLTおよびチェイン選択アドレスラッチCHLTへ転送される。ここで読み出し動作は、最初に入力されたカラムアドレスから開始される。ロウアドレスラッチRADLTからロウアドレス(RA1、RA2、RA3)がロウデコーダROWDECへ転送され、ロウデコーダROWDECによってロウアドレス(RA1、RA2、RA3)に対応したワード線WLk(ワード線WLk=High)が選択される。次に、チェイン選択アドレスラッチCHLTからチェインアドレス(CHAD)およびセルアドレス(CLAD)がチェインデコーダCHDECへ転送され、チェインデコーダCHDECによって、チェインアドレス(CHAD)およびセルアドレス(CLAD)に対応したチェインメモリアレイ選択線SLおよびメモリセル選択線LYが選択される。
続いて、カラムアドレスラッチCADLTからカラムアドレス(CA1、CA2)がカラムデコーダCOLDECへ転送され、解読される。カラムデコーダCOLDECからの解読結果は、各メモリアレイARY0〜ARYmのビット線選択回路BSW0〜BSWmへ入力され、メモリアレイARY0〜ARYm毎に一つのビット線BLi_x(x=0〜m)が選択され、データ線DT0〜DTmを介してセンスアンプSA0〜SAmへ接続される。これにより、メモリアレイARY0〜ARYm毎に1ビットの相変化メモリセルCLが選択されるため、一つのメモリバンクの中で同時に合計(m+1)ビットの相変化メモリセルCL(0ビット目からmビット目)が選択される。
メモリアレイ毎に選択された相変化メモリセルCL(0ビット目からmビット目)を対象に、ワード線からビット線(データ線DT0〜DTm)に向けて所定の読み出し電流を流すと、記憶状態に応じた電圧が生成される。センスアンプSA0〜SAmは、この際の電圧を計測し、参照電圧と比較することにより、相変化メモリセルCLへ記録された(m+1)ビット分のデータDnbyteを検出する。つまり、カラムアドレス{CA1、CA2}によって選択された最初のnバイト(=(m+1)/8)分のデータDnbyteが相変化メモリセルCLから同時に検出される。
例えばメモリアレイARY0において、ワード線WL0とビット線BL0_0の交点に位置するチェインメモリアレイCY内の所定の相変化メモリセルCLがデータ“1”を記憶しており、低抵抗状態にある場合は、ビット線BL0_0及びデータ線DT0が充電され、センスアンプSA0はその電圧からデータ“1”を検出する。一方、メモリアレイARY1において、ワード線WL0とビット線BL0_1の交点に位置するチェインメモリアレイCY内の所定の相変化メモリセルCLがデータ“0”を記憶しており、高抵抗状態にある場合は、ビット線BL0_1及びデータ線DT1は、ほぼ接地電圧VSSに保持され、センスアンプSA1はその電圧からデータ“0”を検出する。
検出された1番目のnバイト(=(m+1)/8)分のデータDnbyteはデータ選択回路DSW1を介して、コマンドRD4およびRD41によって指定されたデータバッファDBUF0へ転送される。次のnバイト分のデータは、カラムアドレス{{CA1、CA2}+(n)}によって選択され、データバッファDBUF0へ転送される。このように、開始カラムアドレス{CA1、CA2}に対して順にnの倍数を加算しながらカラムアドレスが選択され、当該選択されたカラムアドレスに対応する相変化メモリセルCLからnバイト分のデータが読み出され、データバッフDBUF0へ順次転送される。このnの倍数の加算は、例えば、図3Aの制御回路CTLOGによって行われる。指定したデータサイズがk*nバイトの時、メモリアレイARYからデータバッファDBUF0へのデータ転送がk回生じる。
相変化メモリセルCLからデータバッファDBUF0へデータ転送が行われている期間は、ハイ・レベルとなっているレディー/ビジー信号RBBはロウ・レベルとなる。このデータ転送が終了した時点で、ロウ・レベルとなっているレディー/ビジー信号RBBがハイ・レベルとなる。ここで、例えば入出力信号IOが8ビット(1バイト)の場合、データバッファDBUF0へ格納されたk*nバイト分のデータは、読み出しイネーブル信号REBの立ち下がりエッジに同期して、入出力信号IOを介してDO(1)〜DO(k*n)の順に出力される。例えば指定されたデータサイズが512バイトで、同時に選択される相変化メモリセルCLのデータサイズが16バイトで、入出力信号IOが8ビット(1バイト)の場合は、相変化メモリセルCLからデータバッファDBUF0へは合計32回(=512/16)のデータ転送が行われ、データバッファDBUF0から入出力信号IOを介してデータを出力する回数は512回となる。
また、コマンドRD4およびRD41にてデータバッファDBUF1を指定した場合は、同様に、不揮発性メモリ装置NVM1x(x=0〜7)のメモリアレイから、指定したデータサイズ(k*nバイト)分のデータが、データバッファDBUF1を介して読み出される。このように、任意のデータサイズを指定した読み出し動作では、必要なサイズ分のデータのみを効率的に読み出しことができるため、高速読み出しが実現できる。
《電源投入時の初期シーケンス》
図8Aおよび図8Bは、図1の情報処理システムにおいて、電源投入時のそれぞれ異なる初期シーケンスの一例を示す図である。図8Aは、図1のメモリモジュール(半導体装置)NVMMD0内の不揮発性メモリ装置NVM10〜NVM17に格納されているSDDコンフィグレーション情報(SDCFG)を利用した場合における電源投入時の初期シーケンスを示すものである。図8Bは、図1の情報処理装置CPU_CPから送信されたSDDコンフィグレーション情報(SDCFG)を利用した場合における電源投入時の初期シーケンスを示すものある。
まず、図8Aに示す初期シーケンスを説明する。T1の期間(PwOn)で情報処理装置CPU_CPと、メモリモジュールNVMMD0内の不揮発性メモリ装置NVM10〜NVM17と、ランダムアクセスメモリRAMと、制御回路MDLCT0へ電源投入を行い、T2の期間(RST)でリセットを行う。リセットの方法は、特に限定されないが、例えばそれぞれの内蔵回路で自動的にリセットを行う方法でも、外部にリセット端子(リセット信号RSTSIG)を有し、このリセット信号によってリセット動作を行う方法でもよい。また、例えば情報処理装置CPU_CPからインターフェース信号HDH_IFを通じて、リセット命令を制御回路MDLCT0へ入力し、リセットを行う方法でもよい。
T2のリセット期間(RST)では、情報処理装置CPU_CP、制御回路MDLCT0、不揮発性メモリ装置NVM10〜NVM17、ランダムアクセスメモリRAMの内部状態が初期化される。この際に、制御回路MDLCT0は、ランダムアクセスメモリRAMへ格納されているアドレス範囲マップ(ADMAP)および各種テーブルを初期化する。各種テーブルの中には、アドレス変換テーブル(LPTBL)、物理セグメントテーブル(PSEGTBL1,PSEGTBL2)、物理アドレステーブル(PADTBL)、および書込み物理アドレステーブル(NXPADTBL)が含まれる。
なお、当該アドレス範囲マップ(ADMAP)および各種テーブルは、詳細に関しては後述するが、簡単に説明すると次のようなものである。アドレス範囲マップ(ADMAP)は、前述した第1動作モードで使用されるアドレス領域と第2動作モードで使用されるアドレス領域の区画割りを示すものである。アドレス変換テーブル(LPTBL)は、現在の論理アドレスと物理アドレスの対応関係を示すものである。物理セグメントテーブル(PSEGTBL1,PSEGTBL2)は、各物理アドレスでの消去回数等をセグメント単位で管理するものであり、ウエアレベリング等で使用されるものである。物理アドレステーブル(PADTBL)は、現在の各物理アドレスの状態を詳細に管理するものである。書込み物理アドレステーブル(NXPADTBL)は、ウエアレベリングに基づいて、論理アドレスに対して次に割り当てるべき物理アドレスを定めたものである。ここで、当該書込み物理アドレステーブル(NXPADTBL)は、書き込み速度の高速化を図るため、その情報の一部又は全てが図2に示した書込み物理アドレステーブルNXPTBL1,NXPTBL2にコピーされている。
T2の期間が終了した後のT3の期間(MAP)では、制御回路MDLCT0は、不揮発性メモリNVM10〜NVM17へ格納されているSDDコンフィグレーション情報(SDCFG)を読み出し、図2のマップレジスタMAPREGへ転送する。次に、マップレジスタMAPREG内のSSDコンフィグレーション情報(SDCFG)を読み出し、このSSDコンフィグレーション情報(SDCFG)を利用して、前述したアドレス範囲マップ(ADMAP)を生成し、ランダムアクセスメモリRAMへ格納する。すなわち、SDDコンフィグレーション情報(SDCFG)には、前述した第1動作モードで使用されるアドレス領域と第2動作モードで使用されるアドレス領域の情報が含まれている。
さらに、制御回路MDLCT0は、マップレジスタMAPREG内のSSDコンフィグレーション情報(SDCFG)の中で2個の論理アドレス領域(LRNG1とLRNG2)が設定されていれば、これに応じた書込み物理アドレステーブル(NXPADTBL)を構築する。具体的には、例えば書込み物理アドレステーブル(NXPADTBL)内を、論理アドレス領域(LRNG1)用の書込み物理アドレステーブル(NXPADTBL1)と、論理アドレス領域(LRNG2)用の書込み物理アドレステーブル(NXPADTBL2)とに切り分ける。例えば、論理アドレス領域(LRNG1)は前述した第1動作モード用の領域に対応し、論理アドレス領域(LRNG2)は前述した第2動作モード用の領域に対応する。
特に限定しないが、書込み物理アドレステーブル(NXPADTBL)が0エントリー目から(N−1)エントリー目までのN個分のエントリーで構成されている場合、0エントリー目から(N/2−1)エントリー目までのN/2個分を書込み物理アドレステーブルNXPADTBL1とすることができる。そして、残りのN/2エントリー目からNエントリー目までの、N/2個分を書込み物理アドレステーブル(NXPADTBL2)とすることもできる。
T3の期間が終了した後のT4の期間(SetUp)では、情報処理装置CPU_CPは、メモリモジュールNVMMD0内の不揮発性メモリ装置NVM0へ格納されているブートプログラムを読み出し、情報処理装置CPU_CPを立ち上げる。T4の期間が終了した後のT5の期間(Idle)以降では、メモリモジュールNVMMD0はアイドル状態となり、情報処理装置CPU_CPからのリクエストを待つ状態となる。
次に、図8Bに示す初期シーケンスを説明する。T11の期間(PwOn)と、T21の期間(RST)では、それぞれ、図8AのT1の期間及びT2の期間と同様の動作を行う。T21の期間が終了した後のT31の期間(H2D)では、情報処理装置CPU_CPは、メモリモジュールNVMMD0へSSDコンフィグレーション情報(SDCFG)を送信し、これを受けた制御回路MDLCT0は、このSSDコンフィグレーション情報(SDCFG)を不揮発性メモリ装置NVM10〜NVM17に格納する。T31の期間が終了した後のT41の期間(MAP)、T51の期間(SetUp)、T61の期間(Idle)では、それぞれ、図8AのT3、T4、T5の期間と同様の動作を行う。
このような初期シーケンスにおいて、図8Aに示したように、SDDコンフィグレーション情報(SDCFG)がメモリモジュールNVMMD0(不揮発性メモリ装置NVM10〜NVM17)へ予め格納されていれば、高速に電源投入時の初期シーケンスを実行することができる。一方、図8Bに示したように、SDDコンフィグレーション情報(SDCFG)を情報処理装置CPU_CPからメモリモジュールNVMMD0へ伝送する場合には、情報処理システムの動作目的等に応じて、適宜、メモリモジュールNVMMD0の構成(使い方)をカスタマイズすることができる。
《物理アドレステーブルの詳細》
図9は、図1のランダムアクセスメモリに格納される物理アドレステーブルの構成例を示す図である。物理アドレステーブルPADTBLは、物理アドレスPAD(PAD[31:0])と、この各物理アドレスPADに対応した有効フラグPVLD、消去回数PERC、レイヤモード番号LYMおよびレイヤ番号LYCから構成され、図1のランダムアクセスメモリRAMに格納されている。有効フラグPVLD値が1の場合は、対応する物理アドレスPADが有効であることを示し、0の場合は無効であることを示す。例えば、論理アドレスに割り当てられる物理アドレスが書込み物理アドレステーブル(NXPADTBL)に基づいて変更された際に、変更後に割り当てられる物理アドレスPADの有効フラグPVLD値が1となり、変更前に割り当てられていた物理アドレスPADの有効フラグPVLD値が0となる。
消去回数PERCは、前述した初期書き込み(消去)が行われた回数を表す。ここで、例えば、有効フラグPVLD値が0であり、初期書き込み(消去)が行われた回数が少ない物理アドレスPADを優先的に論理アドレスに割り当てれば、消去回数PERCの値を平準化(ウエアレベリング)することができる。また、図2の情報処理回路MNGERは、図9の例では、物理アドレスPADが“00000000”〜“027FFFFF”までを第1物理アドレス領域PRNG1として、物理アドレスPADが“02800000”〜“07FFFFFF”までを第2物理アドレス領域PRNG2として認識し、物理アドレステーブルPADTBLを管理する。また、特に限定しないが、物理アドレスPAD(PAD[31:0])は、物理セグメントアドレスSGAD(PAD[31:16])と、セグメント別の物理オフセットアドレスPPAD(PAD[15:0])とから構成される。
また、レイヤモード番号LYMが“0”の場合は、チェインメモリアレイCY内の全相変化メモリセルCL0〜CLnに書き込みが行われることを示す(すなわち前述した第2動作モードであることを示す)。また、レイヤモード番号LYMが“1”の場合は、チェインメモリアレイCY内の1個の相変化メモリセルに書き込みが行われることを示す(すなわち前述した第1動作モードであることを示す)。
また、レイヤ番号LYCの値xは、図4等で示すチェインメモリアレイCY内のメモリセル選択線LYxに対応している。例えば、レイヤ番号LYCが“1”の場合、物理アドレスPADに対応するデータが、図4等で示すチェインメモリアレイCY内のメモリセル選択線LY1に選択された相変化メモリセルCL1に保持されており、有効であることを示す。
《物理セグメントテーブルの詳細》
図10Aおよび図10Bは、図1のランダムアクセスメモリに格納される物理セグメントテーブルの構成例を示す図である。図10Aは無効物理アドレスに関する物理セグメントテーブルPSEGTBL1を示し、図10Bは有効物理アドレスに関する物理セグメントテーブルPSEGTBL2を示している。特に限定しないが、物理アドレスPAD(PAD[31:0])の上位PAD[31:16]は、物理セグメントアドレスSGADを示す。また、特に限定しないが、1つの物理アドレスのメインデータサイズは512バイトで、1セグメントのメインデータサイズは65536個の物理アドレスが集まって32Mバイトとなっている。
まず、図10Aを説明する。物理セグメントテーブルPSEGTBL1は、物理セグメントアドレスSGAD(PAD[31:16])毎に、無効物理アドレス総数TNIPAと、最大消去回数MXERCおよびそれに対応する無効物理オフセットアドレスMXIPADと、最小消去回数MNERCおよびそれに対応する無効物理オフセットアドレスMNIPADとを含んでいる。無効物理アドレス総数TNIPAは、対応する物理セグメントアドレスSGAD内で無効状態となっている物理アドレスの総数であり、最大消去回数MXERCおよびその無効物理オフセットアドレスMXIPADと、最小消去回数MNERCおよびその無効物理オフセットアドレスMNIPADは、当該無効状態となっている物理アドレスの中から抽出される。そして、当該物理セグメントテーブルPSEGTBL1は、図1のランダムアクセスメモリRAMに格納される。
次に、図10Bを説明する。物理セグメントテーブルPSEGTBL2は、物理セグメントアドレスSGAD(PAD[31:16])毎に、有効物理アドレス総数TNVPAと、最大消去回数MXERCおよびそれに対応する有効物理オフセットアドレスMXVPADと、最小消去回数MNERCおよびそれに対応する有効物理オフセットアドレスMNVPADとを含んでいる。有効物理アドレス総数TNVPAは、対応する物理セグメントアドレスSGAD内で有効状態となっている物理アドレスの総数であり、最大消去回数MXERCおよびその有効物理オフセットアドレスMXVPADと、最小消去回数MNERCおよびその有効物理オフセットアドレスMNVPADは、当該有効状態となっている物理アドレスの中から抽出される。そして、当該物理セグメントテーブルPSEGTBL2は、図1のランダムアクセスメモリRAMに格納される。当該物理セグメントテーブルPSEGTBL1,PSEGTBL2は、後述するダイナックウエアレベリングやスタティックウエアレベリングを行う際に使用される。
《書込み物理アドレステーブルの詳細》
図11Aおよび図11Bは、図2の制御回路や図1のランダムアクセスメモリに格納される書込み物理アドレステーブルの構成例を示す図である。図11Aには、装置使用開始時の初期状態における書込み物理アドレステーブルNXPADTBLの状態が示され、図11Bには、内容が適宜更新された後の書込み物理アドレステーブルNXPADTBLの状態が示される。書込み物理アドレステーブルNXPADTBLは、ホスト(図1のCPU_CP)側からの論理アドレスを伴う書き込み命令を受けて不揮発性メモリ装置NVM10〜NVM17の物理アドレスにデータを書き込む際に、当該論理アドレスに対してどの物理アドレスを優先的に割り当てるかを決めるテーブルである。
当該書込み物理アドレステーブルNXPADTBLは、ここでは、複数(N)個の物理アドレスを登録できる構成となっている。ここで、当該書込み物理アドレステーブルNXPADTBL(NXPADTBL1,NXPADTBL2)は、実際に書き込み対象となる物理アドレスを定めるものであり、論理アドレスを受けてから当該テーブルを用いて物理アドレスを決定するまでの時間は、書き込み速度に影響を及ぼすことになる。そこで、当該書込み物理アドレステーブルNXPADTBL(NXPADTBL1,NXPADTBL2)の情報は、図2の制御回路MDLCT0内の書込み物理アドレステーブルNXPTBL1,NXPTBL2において保持され、そのバックアップとして図1のランダムアクセスメモリRAM内で保持される。
書込み物理アドレステーブルNXPADTBLは、エントリー番号ENUMと、書き込み物理アドレスNXPADと、この書き込み物理アドレスNXPADに対応する有効フラグNXPVLD、消去回数NXPERC、レイヤモード番号NXLYM、および書き込みレイヤ番号NXLYCから構成される。図2の制御回路MDLCT0は、SSDコンフィグレーション情報(SDCFG)の中で2個の論理アドレス領域(LRNG1とLRNG2)が定められている場合、これに対応して書込み物理アドレステーブルNXPADTBLの中も2個に分割する。ここでは、エントリー番号0から(N/2−1)のN/2個分が書込み物理アドレステーブルNXPADTBL1として管理され、エントリー番号(N/2)から(N−1)までの残りのN/2個分が書込み物理アドレステーブルNXPADTBL2として管理される。そして、論理アドレス領域(LRNG1)への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL1が利用され、論理アドレス領域(LRNG2)への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL2が利用される。
エントリー番号ENUMは、複数(N)組の書き込み物理アドレスNXPADにおけるN値(0番〜(N−1)番)を示し、このN値は書込み優先度(登録数)を示す。論理アドレス領域(LRNG1)への書き込み要求に対しては、書込み物理アドレステーブルNXPADTBL1の中のN値が小さい順から優先して使用され、論理アドレス領域(LRNG2)への書き込み要求に対しては書込み物理アドレステーブルNXPADTBL2の中のN値が小さい順から優先して使用される。また、有効フラグNXPVLDの値が0の場合は、対象となる物理アドレスは無効であることを意味し、1の場合は対象となる物理アドレスは有効であることを意味する。例えば、エントリー番号ENUMの0番が使用された場合、当該0番の有効フラグNXPVLDの値が1となるため、次に当該テーブルが参照される際にエントリー番号ENUMの0番は使用済みであることが判別でき、次は1番を使用すればよいことが分かる。
ここで、図11Aにおいて、N=32の場合を例として、書込み物理アドレステーブルNXPADTBLの初期設定(例えば図8のT1からT3)について説明する。
まず、論理アドレス領域(LRNG1)に対応して物理アドレス領域(PRNG1)が設定され、当該物理アドレス領域(PRNG1)内の“00000000”番地から“0000000F”番地までの連続した書き込み物理アドレスNXPADが、エントリー番号ENUM=0番から((32/2)−1)番までにそれぞれ登録される。また、レイヤモード番号NXLYMは“1”に設定され、書き込みレイヤ番号NXLYCは“0”に設定され、これは、図9にて説明したレイヤモード番号LYMおよびレイヤ番号LYCと同様に、第1動作モードであり、使用するメモリセル選択線はLY0であることを意味する。
同様に、論理アドレス領域(LRNG2)に対応して物理アドレス領域(PRNG2)が設定され、当該物理アドレス領域(PRNG2)内の“02800000”番地から“0280000F”番地までの連続した書き込み物理アドレスNXPADが、エントリー番号ENUM=(32/2)番から(32−1)番までにそれぞれ登録される。また、レイヤモード番号NXLYMは“0”に設定され、書き込みレイヤ番号NXLYCは“0”に設定され、これは、図9にて説明したレイヤモード番号LYMおよびレイヤ番号LYCと同様に、第2動作モードであることを意味する。そして、これらの書き込み物理アドレスNXPADに対応する有効フラグNXPVLD及び消去回数NXPERCはすべて0に設定される。
次に、この図11Aに示す状態で、情報処理装置CPU_CPからインターフェース信号HDH_IFを通じ、メモリモジュール(半導体装置)NVMMD0の論理アドレス領域(LRNG1)へ、セクタカウント(SEC)値が1(512バイト)のライトリクエスト(WQ)が(N/2)回入力された場合を想定する。この場合、それぞれのライトリクエスト(WQ)に含まれるデータは、図11Aに基づいて、不揮発性メモリ装置内の物理アドレスPAD(NXPAD)の“00000000”番地から“000000F”番地までの連続した番地に対応する箇所に書き込まれる。
さらに、情報処理装置CPU_CPからインターフェース信号HDH_IFを通じ、メモリモジュールNVMMD0の論理アドレス領域(LRNG2)へ、セクタカウント(SEC)値が1(512バイト)のライトリクエスト(WQ)が(N/2)回入力された場合を想定する。この場合、それぞれのライトリクエスト(WQ)に含まれるデータは、図11Aに基づいて、不揮発性メモリ装置内の物理アドレスPAD(NXPAD)の“02800000”番地から“0280000F”番地までの連続した番地に対応する箇所に書き込まれる。
また、別の動作例を挙げれば次のようになる。情報処理装置CPU_CPからインターフェース信号HDH_IFを通じ、メモリモジュールNVMMD0の論理アドレス領域(LRNG1)へ、セクタカウント(SEC)値が16(8Kバイト)のライトリクエスト(WQ)が1回入力された場合を想定する。この場合、このライトリクエスト(WQ)に含まれるデータは、512バイト毎の16個の物理アドレスPADへ分解され、物理アドレスPADの“00000000”番地から“0000000F”番地までの連続した番地にて、不揮発性メモリ装置へ書き込まれる。
また、情報処理装置CPU_CPからインターフェース信号HDH_IFを通じて、メモリモジュールNVMMD0の論理アドレス領域(LRNG2)へ、セクタカウント(SEC)値が16(8Kバイト)のライトリクエスト(WQ)が1回入力された場合を想定する。この場合、このライトリクエスト(WQ)に含まれるデータは、512バイト毎の16個の物理アドレスPADへ分解され、物理アドレスPADの“02800000”番地から“0280000F”番地までの、連続した番地にて、不揮発性メモリ装置へ書き込まれる。
また、このような書き込み動作の進行と共に、書込み物理アドレステーブルNXPADTBLは適宜更新され、その結果、図11Bに示すように、書き込み物理アドレスNXPAD、消去回数NXPERC、書き込みレイヤ番号NXLYC等の値は適宜変更される。この際に、書込み物理アドレステーブルNXPADTBL1内の書き込みレイヤ番号NXLYCの値は、図17等で述べた第1動作モードに伴いメモリセル選択線LYが順次シフトするためこれに応じて変更される。一方、書込み物理アドレステーブルNXPADTBL2内の書き込みレイヤ番号NXLYCの値は、図18等で述べた第2動作モードに伴い特に変更はされない。なお、当該書込み物理アドレステーブルNXPADTBLの更新は、例えば、実際にメモリアレイ内の相変化メモリセルに書き込みを行っている期間を利用して行うことが可能である。
《アドレス変換テーブルおよび不揮発性メモリ装置の初期設定》
図12Aは、図1のランダムアクセスメモリに格納されるアドレス変換テーブルの構成例およびその初期設定後の状態例を示す図であり、図12Bは、図1の不揮発性メモリ装置における初期設定後の状態例を示す図である。当該初期設定は、例えば、図8のT1(電源投入直後)の期間で制御回路MDLCT0によって行われる。
図12Aに示すアドレス変換テーブルLPTBLは、全ての論理アドレスLADを対象として、各論理アドレスLAD毎に、現在割り当てている物理アドレスPADと、その物理アドレスの有効フラグCPVLDと、その物理アドレスのレイヤ番号LYCとを管理する。初期設定後には、全論理アドレスLADに対する全物理アドレスPADは0に設定され、有効フラグCPVLDは0(無効)に設定され、レイヤ番号LYCは“0”に設定される。また、図12Bに示すように、不揮発性メモリ装置NVM10〜NVM17では、各物理アドレスPADに格納されるデータDATAは0に設定され、各物理アドレスPADに対応する論理アドレスLADおよびデータ有効フラグDVFも0に設定される。また、各物理アドレスPADに対応するレイヤ番号LYCは“0”に設定される。なお、論理アドレスLAD、データ有効フラグDVF、およびレイヤ番号LYCは、例えば不揮発性メモリ装置内に予め設けられた冗長領域を用いて記憶される。
《SSDコンフィグレーション情報の詳細》
図13A、図13Bおよび図13Cは、図1におけるブート用の不揮発性メモリ装置NVM0に格納されるSSDコンフィグレーション情報(SDCFG)のそれぞれ異なる一例を示す図である。各図において、LRNGは論理アドレス領域であり、セクタ単位(512バイト)の論理アドレスLADでの範囲を示す。CAPは論理アドレス領域LRNGにて定められた範囲の論理データの容量値を示す。論理アドレス領域LRNG1は、16進数で“0000_0000”〜“007F_FFFF”の論理アドレスLAD空間を占め、4Gバイトの容量を持つ。また、論理アドレス領域LRNG2は、16進数で“0080_0000”〜“037F_FFFF”の論理アドレス空間を占め、32Gバイトの大きさをもつ。
また、図中のCHNCELLは、例えば図3B等に示したチェインメモリアレイCY内の全相変化メモリセルCL0〜CLnの内、データの書き込み対象となるメモリセルの数を示す。例えば、図13Aおよび図13Bに示すように、CHNCELLが“18”であれば、チェインメモリアレイCY内の「8」個のメモリセルの中の「1」個に対して書き込みを行うことを示し、CHNCELLが“88”であれば、チェインメモリアレイCY内の「8」個のメモリセルの中の「8」個に書き込みを行うことを示す。また、例えば、図13Cに示すように、CHNCELLが“28”であれば、チェインメモリアレイCY内の「8」個のメモリセルの中の「2」個に書き込みを行うことを示す。
また、図中のNVMMODEが“0”の場合は、不揮発性メモリ装置NVMへデータを書き込む際に、最小消去データサイズと最小プログラムデータサイズを等しいサイズにして、書き込み動作を行えることを示し、“1”の場合は、最小消去データサイズと最小プログラムデータサイズが異なることを前提した書込み動作を行えることを示す。図中のERSSIZEは、最小消去データサイズ[バイト]を示し、PRGSIZEは最小プログラムデータサイズ[バイト]を示す。例えば、不揮発性メモリ装置NVMが抵抗変化型記憶素子であれば、図13Aまたは図13Bに示すように、NVMMODEを“0”とし、最小消去データサイズ(ERSSIZE)と最小プログラムデータサイズ(PRGSIZE)を共に512バイトのように等しいサイズにする。この場合には、高速に書き込み動作を行うことができる。
一方、不揮発性メモリ装置NVMが例えばNAND型フラッシュメモリであり、このNAND型フラッシュメモリのブロック消去サイズが512キロバイト、ページサイズが4キロバイトである場合、図13Cに示すように、NVMMODEを“1”とする。さらに、NAND型フラッシュメモリの仕様にあわせて、最小消去データサイズ(ERSSIZE)を512キロバイトとし、最小プログラムデータサイズ(PRGSIZE)を4キロバイトとすることで、従来型のNAND型フラッシュメモリへの書込み動作にも対応できる。このように、利用する不揮発性メモリ装置の仕様を反映し、柔軟に対応できる。
また、図中のTESTMODEが“1”の場合は、電源投入直後に、物理的に隣接するメモリセルに保存されているデータの保持性能を確認するテスト動作を行う。このテスト動作は、このテストを行うために予め用意した、物理的に隣接した複数のチェインメモリアレイCYから構成されるテスト領域(TESTAREA)を用いて行われる。以下に、テスト動作について説明する。
このテスト領域(TESTAREA)内の物理的に隣接した複数のチェインメモリアレイCYは、特に限定しないが25個(5チェインx5チェイン)あり、CY[1,1]〜CY[5,5]に[X,Y]配列されるものとする。先ず、その25個のチェインメモリアレイCY[1,1]〜CY[5,5]内の全相変化メモリセルの可変抵抗型記憶素子Rを高抵抗状態にする(“0”を書く)。次に、25個のチェインメモリアレイCY[1,1]〜CY[5,5]に囲まれた真ん中の1つのチェインメモリアレイCY[3,3]の全相変メモリセルの可変抵抗素子Rを低抵抗状態にする(“1”を書く)。
次に、チェインメモリアレイCY[3,3]を囲むチェインメモリアレイの中で最も隣接しているチェインメモリアレイCY[2,2]〜CY[2,4],CY[3,2],CY[3,4],CY[4,2]〜CY[4,4]の全相変化メモリセルに保持されているデータを読み出す。これら読み出したデータが、全て“0”であれば、“1”を書き込んだことによって、最も隣接するメモリセルに保持されている“0”のデータが失われないことが確認できる。
次に、チェインメモリアレイCY[3,3]を囲むチェインメモリアレイの中で、2番目に隣接しているチェインメモリアレイの全相変化メモリセルに保持されているデータを読み出す。すなわち、チェインメモリアレイCY[1,1]〜CY[1,5],CY[2,1],CY[2,5],CY[3,1],CY[3,5],CY[4,1],CY[4,5],CY[5,1]〜CY[5,5]のデータを読み出す。これら2番目に隣接しているチェインメモリアレイ内の全相変化メモリセルから読み出したデータが、全て“0”であれば、“1”を書き込んだことによって、2番目に隣接するメモリセルに保持されている“0”のデータが失われないことが確認できる。
続いて、これと同様な動作を“0”と“1”を反転した状態で行う。すなわち、25個のチェインメモリアレイCY[1,1]〜CY[5,5]に“1”を書いた状態で、真ん中の1つのチェインメモリアレイCY[3,3]に“0”を書き込み、その周辺のチェインメモリアレイCYのデータを読み出す。なお、テスト領域(TESTAREA)内の物理的に隣接した複数のチェインメモリアレイCYの数は、勿論この値に限定されるものではなく、データの保持性能を確認するために適した数値であれば良い。
図13A、図13Bおよび図13Cにおいて、TESTCELL情報は、テスティングを行うための連続したメモリセル領域(TAREA)を定めるために必要な情報である。TESTCELLが5の場合は、メモリセル領域(TAREA)の大きさは、5つの物理的に隣接した複数のチェインメモリアレイCYとなる。TESTCELL情報の値は、データの保持性能を確認するために適した数値にプログラムすると良い。
図中のECCFLGは、ECC(Error Check and Correct)を行う際のデータの単位を示している。特に限定しないが、ECCFLGが0の場合は512バイトデータを単位としてECCが行われ、ECCFLGが1の場合は2048バイトデータを単位としてECCが行われ、同様に、ECCFLGの2、3、4の場合にはそれぞれ4096バイト、8192バイト、16384バイトのデータを単位としてECCが行われる。また、ECCFLGが5、6、7、8の場合は、それぞれ、32バイト、64バイト、128バイト、256バイトのデータを単位としてECCが行われる。
記憶装置には、ハードディスク、SSD(Solid State Drive)、キャッシュメモリ及びメインメモリなど様々な記憶装置があり、データの読み出しや書き込みの単位が異なる。例えばハードディスクやSSDなどのストレージでは、512バイト以上のデータ単位で読み出しや書き込みが行われる。また、キャッシュメモリでは、そのラインサイズ単位(32バイトや64バイトなど)でメインメモリとの間でデータ読み出しやデータ書込みが行われる。このように、データ単位が異なる場合においても、ECCFLGによって、異なるデータ単位でECCを行うことができ、メモリモジュール(半導体装置)NVMMD0への要求に対して柔軟に対応できる。
また、図中のライト方法選択情報WRTFLGは、書き込み時の書き込み方法を示している。特に限定しないが、ライト方法選択情報WRTFLGが0の場合は通常方法にて書き込みを行い、WRTFLGが1の場合は反転データを書込み、ライト方法選択情報WRTFLGが2の場合は、データの書き込み前に一旦データを読み出し、その後、データを書込むことを示す。
このように、SSDコンフィグレーション情報(SDCFG)は適宜プログラム可能となっているため、メモリモジュール(半導体装置)NVMMD0に要求される機能、性能及び信頼性のレベル等に合わせて柔軟に対応することができる。
《書き込みデータの構成例》
図14Aは、図1のメモリモジュールNVMMD0において、制御回路MDLCT0から不揮発性メモリ装置NVM10〜NVM17に書き込まれるデータの構成例を示す図である。図14Bおよび図14Cは、図14Aにおけるデータ書き込みレイヤ情報の構成例を示す図である。図14Aにおいて、特に限定しないが、書き込みデータ(ページデータ)PGDATは、メインデータDArea(512バイト)と、冗長データRArea(16バイト)から構成される。冗長データRAreaには、データ反転フラグINVFLG、ライトフラグWTFLG、ECCフラグECCFLG、ステート情報STATE、エリア情報AREA、データ書き込みレイヤ情報LYN、ECCコードECC、バッドブロック情報BADBLK、予備領域RSVが含まれる。
データ反転フラグINVFLGは、制御回路MDLCT0が不揮発性メモリ装置NVM10〜NVM17へ書き込んだメインデータDAreaが元の書き込みデータの各ビットを反転させたデータかどうかを示す。データ反転フラグINVFLGに0が書き込まれた場合、元のメインデータの各ビットを反転させずにデータが書き込まれたことを示し、1が書き込まれた場合、元のメインデータの各ビットを反転させたデータが書き込まれたことを示す。
ライトフラグWTFLGは、制御回路MDLCT0が不揮発性メモリ装置NVM10〜NVM17へメインデータDAreaを書き込む際に実行した書き込み方法を示している。特に限定しないが、WTFLGに0が書き込まれた場合、通常方法にてメインデータDAreaが書き込まれたことを示し、WTFLGに1が書き込まれた場合、元のメインデータの各ビットを反転させたデータが書き込まれたことを示す。WTFLGに2が書き込まれた場合、データを書き込む前にデータを一旦読み出し、その後、書き換える必要のあるデータのみが書き込まれたことを示す。
ECCフラグECCFLGは、制御回路MDLCT0が不揮発性メモリ装置NVM10〜NVM17へメインデータDAreaを書込む際に、どの程度のメインデータDAreaのサイズに対して、ECCコードを生成したかを示している。特に限定しないが、ECCFLGに0が書き込まれた場合、512バイトのデータサイズに対してコードを生成したことを示し、ECCFLGに1が書き込まれた場合、1024バイトのデータサイズに対してコードを生成したことを示す。ECCFLGに2が書き込まれた場合、2048バイトのデータサイズに対してコードを生成したことを示し、ECCFLGに3が書き込まれた場合、32バイトのデータサイズに対してコードを生成したことを示す。
ECCコードECCは、メインデータDAreaのエラーを検出し修正するために必要なデータである。ECCは、制御回路MDLCT0が不揮発性メモリ装置NVM10〜NVM17へメインデータDAreaを書き込む際に、制御回路MDLCT0によってメインデータDAreaに対応して生成され、冗長データRAreaへ書き込まれる。ステート情報STATEは、不揮発性メモリ装置NVM10〜NVM17へ書き込まれたメインデータDAreaが、有効状態か、無効状態か、消去状態かを示す。特に限定しないが、ステート情報STATEに0が書き込まれた場合、メインデータDAreaは無効状態であることを示し、ステート情報STATEに1が書き込まれた場合、メインデータDAreaは有効状態であることを示し、ステート情報STATEに3が書き込まれた場合、メインデータDAreaは消去状態であることを示す。
エリア情報AREAは、後述する図15に示すアドレスマップ範囲(ADMAP)の中で、メインデータDAreaが書き込まれたデータが、第1物理アドレス領域PRNG1へ書き込まれたのか、第2物理アドレス領域PRNG2へ書き込まれたのかを示す情報である。特に限定しないが、エリア情報AREA値が1であれば、メインデータDAreaが第1物理アドレス領域PRNG1へ書き込まれたことを示し、エリア情報AREA値が2であれば、メインデータDAreaが第2物理アドレス領域PRNG2へ書き込まれたことを示す。
また、図14Bおよび図14Cにおいて、データ書き込みレイヤ情報LYN[n:0]は、チェインメモリアレイCY内の相変化メモリセルCL0〜CLnの中で、どのメモリセルのデータが有効に書き込まれているかを示す情報である。初期設定では、LYN[n:0]は0に設定される。この例では、チェインメモリアレイCYには、8個の相変化メモリセルCL0〜CL7が含まれている場合について示している。
データ書き込みレイヤ情報LYNは、LYN[7:0]の8ビットから構成され、LYN[7]〜LYN[0]はそれぞれ相変化メモリセルCL7〜CL0に対応している。例えば、相変化メモリセルCL0に有効なデータが書き込まれた場合は、LYN[0]に“1”が書き込まれ、それ以外は“0”が書き込まれる。また、例えば、相変化メモリセルCL1に有効なデータが書き込まれた場合は、LYN[1]に“1”が書き込まれ、それ以外は“0”が書き込まれる。以降、相変化メモリセルCL2〜CL7とLYN[2]〜LYN[7]との関係についても同様である。
図14Bの例では、LYN[0]に“1”が書き込まれ、LYN[7:1]に“0”が書き込まれているので、チェインメモリアレイCYの相変化メモリセルCL0へ有効なデータが書き込まれたことを示す。図14Cの例では、LYN[0]およびLYN[4]に“1”が書き込まれ、LYN[7:5]およびLYN[3:1]に“0”が書き込まれているので、チェインメモリアレイCYの相変化メモリセルCL0およびCL4へ有効なデータが書き込まれたことを示す。
図14Aにおいて、バッドブロック情報BADBLKは、不揮発性メモリ装置NVM10〜NVM17に書き込まれたメインデータDAreaが利用可能かどうかを示す。特に限定しないが、バッドブロック情報BADBLKに0が書き込まれた場合、メインデータDAreaは利用可能であり、1が書き込まれた場合、メインデータDAreaは利用不可能であることを示す。例えば、ECCによるエラー訂正が可能である場合、バッドブロック情報BADBLKは0となり、エラー訂正が不可能である場合、バッドブロック情報BADBLKは1となる。予備領域RSVは、制御回路MDLCT0が自由に定義できる領域として存在する。
《アドレスマップ範囲の詳細》
図15は、図1のランダムアクセスメモリに格納されるアドレスマップ範囲(ADMAP)の一例を示す図である。当該アドレスマップ範囲(ADMAP)は、図8等でも述べたように、制御回路MDLCT0が、NVM10〜NVM17へ格納されている例えば図13Aに示すSSDコンフィグレーション情報(SDCFG)を利用して生成し、ランダムアクセスメモリRAMへ格納したものである。
図16は、図15の補足図であり、制御回路MDLCT0が図13AのSSDコンフィグレーション情報と図15のアドレスマップ範囲(ADMAP)に基づいて設定した書き込み可能なメモリセルの配置例を模式的に示したものである。図16には、不揮発性メモリ装置内の一つのメモリアレイARYの例として、その配置例が示されている。図16では、ワード線WL0〜WLkとビット線BL0〜BLiの交点に図4等で示されたチェインメモリアレイCYが配置されている。ここで、ワード線WL0〜WLpとビット線BL0〜BLiからなる範囲が第1物理アドレス領域PRNG1として設定され、その交点の「●」は、チェインメモリアレイに含まれる複数のメモリセルの中で、例えば1個のメモリセルに書き込みが行われることを示す。また、ワード線WLp+1〜WLkとビット線BL0〜BLiからなる範囲が第2物理アドレス領域PRNG2として設定され、その交点の「◎」は、チェインメモリアレイに含まれる複数のメモリセルの全てに書き込みが行われることを示す。
図16におけるテスティング領域TAREAは、ビット線BLj+1からBLj+5に接続されるメモリセル領域を示し、5×ワード線数(k+1)分のメモリセルを含む。制御回路MDLCT0は、図13A等に示したSSDコンフィグレーション情報(SDCFG)のTESTCELL情報値“5”とアドレスマップ範囲(ADMAP)の情報により、テスティング領域TAREAを定める。テスティング領域TAREAには、例えば2つのモニタリング用のメモリセルMONI1およびMONI2が設定される。
図15において、LADは、情報処理装置CPU_CPからメモリモジュールNVMMD0へ入力される512バイトデータを単位とした論理アドレスである。また、PADは物理アドレスであり、制御回路MDLCT0から不揮発性メモリ装置NVM10〜NVM17へ入力されるアドレスである。図15の例では、1個の物理アドレスPAD内に、512バイトのメインデータDAreaと16バイト冗長データRAreaが備わっている。制御回路MDLCT0は、論理アドレスLADを物理アドレスPADへ変換し、不揮発性メモリ装置NVM10〜NVM17へデータを書き込む。
論理アドレス領域LRNG1は、16進数で“0000_0000”〜“007F_FFFF”の論理アドレスLAD空間を占め、4Gバイトの容量を持つ。一方、論理アドレス領域LRNG1に対応する第1物理アドレス領域PRNG1は、16進数で“0000_0000”〜“04FF_FFFF”の物理アドレスPAD空間を持っている。この第1物理アドレス領域PRNG1に対応する物理アドレスPAD空間内に存在する全メモリセルの容量は、メインデータDAreaが32Gバイト+8Gバイトで、冗長データRAreaが1Gバイト+256Mバイトである。このように、第1物理アドレス領域PRNG1内の物理アドレスPAD空間は、論理アドレスLAD空間より大きな空間を持ち、図17等で述べた第1動作モードによって動作する。
また、論理アドレス領域LRNG2は、16進数で“0080_0000”〜“037F_FFFF”の論理アドレスLAD空間を占め、32Gバイトの大きさをもつ。論理アドレス領域LRNG2へ対応する第2物理アドレス領域PRNG2は、16進数で“0500_0000”〜“09FF_FFFF”の物理アドレスPAD空間を持っている。この第2物理アドレス領域PRNG2に対応する物理アドレスPAD空間内に存在する全メモリセルの容量はメインデータDAreaが32Gバイト+8Gバイトで、冗長データRAreaが1Gバイト+256Mバイトである。このように、第2物理アドレス領域PRNG2内の物理アドレスPAD空間は、論理アドレスLAD空間より大きな空間を持ち、図18等で述べた第2動作モードによって動作する。
また、論理ブート領域LBootは、16進数で“038F_0000”〜“038F_001F”の論理アドレスLAD空間を占め、この論理ブート領域LBootへ対応する物理ブート領域PBootは、16進数で“0A00_0000”〜“0AFF_001F”の物理アドレスPAD空間を持っている。この物理ブート領域PBoot領域へはブートプログラムが格納される。さらに、ブートプログラムは情報処理装置CPU_CPによって適宜、書換え可能である。
また、論理コンフィグレーション領域LCfgは、16進数で“038F_0020”〜“038F_003F”の論理アドレスLAD空間を占め、この論理コンフィグレーション領域LCfgへ対応する物理コンフィグレーション領域PCfgは、16進数で“0A00_0020”〜“0AFF_003F”の物理アドレスPAD空間を持っている。この物理コンフィグレーション領域PCfgへはSSDコンフィグレーション情報(SDCFG)が格納される。さらに、SSDコンフィグレーション情報(SDCFG)は情報処理装置CPU_CPによって、適宜、書換え可能である。
以上説明したように、メモリモジュール(半導体装置)NVMMD0の第1物理アドレス領域PRNG1は、その論理アドレス領域LRNG1の10倍の大きさを持つため、論理アドレス領域LRNG1を用いた書き換えの許容回数は、論理アドレス領域LRNG2を用いた書き換えの許容回数の10倍となり、長寿命化が図れる。さらに、チェインメモリアレイに含まれる8つメモリセルの内、一部(例えば1つ)のメモリセルのみへ書き込みを行うため、高速書込みが実現できる。一方、メモリモジュール(半導体装置)NVMMD0の第2物理アドレス領域PRNG2は、その論理アドレス領域LRNG2と同等の大きさを持つため、論理アドレス領域LRNG1を用いる場合と比べて大容量化が図れる。さらに、ブートプログラムやSSDコンフィグレーション情報(SDCFG)は適宜プログラム可能であるため、メモリモジュールNVMMD0が要求される寿命や性能に合わせて柔軟に対応することができる。
《メモリモジュール(半導体装置)の書き込み動作フロー》
図20は、図1の情報処理装置CPU_CPからメモリモジュールNVMMD0へライトリクエスト(WREQ01)が入力された際に、メモリモジュールNVMMD0内で行われる詳細な書き込み処理手順の一例を示すフロー図である。ここでは、主に図2の情報処理回路MNGERの処理内容が示され、情報処理回路MNGERは、特に限定しないが512バイトのメインデータDAreaと16バイトの冗長データRAreaのサイズ毎に、1個の物理アドレスを対応させ、不揮発性メモリ装置NVM10〜NVM17へ書き込みを行っている。
まず、情報処理装置CPU_CPから論理アドレス値(例えばLAD=0)、データ書き込み命令(WRT)、セクタカウント値(例えばSEC=1)、および512バイトの書き込みデータ(WDATA0)が含まれる書き込みリクエスト(WQ01)が制御回路MDLCT0へ入力される。図2のインターフェース回路HOST_IFは、ライトリクエスト(WQ01)に埋め込まれているクロック情報を取り出し、シリアルデータ化されたライトリクエスト(WQ01)をパラレルデータに変換し、バッファBUF0および情報処理回路MNGERへ転送する(Step1)。
次に、情報処理回路MNGERは、論理アドレス値(LAD=0)、データ書き込み命令(WRT)及びセクタカウント値(SEC=1)を解読し、ランダムアクセスメモリRAM内のアドレス変換テーブルLPTBL(図12A)を検索する。これにより、情報処理回路MNGERは、論理アドレス値(LAD=0)の番地に格納されている現在の物理アドレス値(例えばPAD=0)と、この物理アドレス値(PAD=0)に対応した有効フラグCPVLDの値と、レイヤ番号LYCを読み出す。さらに、情報処理回路MNGERは、ランダムアクセスメモリRAM内の物理アドレステーブルPADTBL(図9)から物理アドレス値(PAD=0)に対応する消去回数値(例えばPERC=400)および有効フラグPVLD値を読み出す(Step2)。
次に、情報処理回路MNGERは、ランダムアクセスメモリRAMへ格納したアドレスマップ範囲(ADMAP)(図15)を利用し、情報処理装置CPU_CPから制御回路MDLCT0へ入力された論理アドレス値(LAD=0)が、論理アドレス領域LRNG1内の論理アドレス値であるか、又は、論理アドレス領域LRNG2内の論理アドレス値であるかを判断する。
ここで、情報処理回路MNGERは、論理アドレス値(LAD=0)が論理アドレス領域LRNG1内の論理アドレス値の場合は、図11の書き込み物理アドレステーブルNXPADTBL1を参照し、論理アドレス値(LAD=0)が論理アドレス領域LRNG2内の論理アドレス値の場合は、書き込み物理アドレステーブルNXPADTBL2を参照する。なお、実際には、前述したように、当該テーブルは、図2の書き込み物理アドレステーブルNXPTBL1,NXPTBL2に格納されている。情報処理回路MNGERは、いずれか一方の書き込み物理アドレステーブルから、書き込み優先度の高い順(すなわちエントリー番号ENUMが小さい順)に、セクタカウント値(SEC=1)で指定された個数分だけ必要なデータを読み出す。この場合は、1個分だけの書き込み物理アドレス(例えばNXPAD=100)と、この書き込み物理アドレス(NXPAD=100)に対応した有効フラグNXPVLD値と、消去回数NXPERC値と、書き込みレイヤ番号NXLYCが読み出される(Step3)。
次に、情報処理回路MNGERは、現在の物理アドレス値(PAD=0)と次に書き込み対象となる書き込み物理アドレス値(NXPAD=100)とが等しいかを判別し(Step4)、等しい場合にはStep5を実行し、異なる場合にはStep11を実行する。Step5では、情報処理回路MNGERは、不揮発性メモリ装置NVM10〜NVM17における物理アドレス値(NXPAD=100)に対応する番地に各種データを書き込む。ここでは、図14Aに示したメインデータDAreaとして書き込みデータ(WDATA0)が書き込まれ、冗長データRAreaとして、データ反転フラグINVFLG、ライトフラグWTFLG、ECCフラグECCFLG、ステート情報STATE、データ書き込みレイヤ情報LYN、ECCコードECCが書き込まれる。さらに、図12Bに示したように、物理アドレス値(NXPAD=100)に対応する論理アドレス値(LAD=0)と、有効フラグ値(DVF=1)と、レイヤ番号LYCが書き込まれる。
この際に、例えば、書き込み物理アドレステーブルNXPADTBL1から読み出した書き込みレイヤ番号NXLYCが、“10”の場合、メインデータDArea(書き込みデータ(WDATA0))と、冗長データRAreaは、各チェインメモリアレイCYの中の1個の相変化メモリセルCL0に書き込まれる。これに伴い、図14における冗長データRAreaの中のデータ書き込みレイヤ情報LYN[7:1]には“0”が書き込まれ、データ書き込みレイヤ情報LYN[0]には“1”が書き込まれる。一方、例えば、書き込み物理アドレステーブルNXPADTBL2から読み出した書き込みレイヤ番号NXLYCが、“00”の場合、メインデータDArea(書き込みデータ(WDATA0))と、冗長データRAreaは、各チェインメモリアレイCY内の全相変化メモリセルCL0〜CLnに書き込まれる。また、冗長データRAreaの中のデータ書き込みレイヤ情報LYN[7:0]へは“1”が書き込まれる。
図20において、Step11では、情報処理回路MNGERは、アドレス変換テーブルLPTBL(図12A)から読み出した物理アドレス値(PAD=0)に対応した有効フラグCPVLD値が0であるかを判定する。有効フラグCPVLD値が0の場合、論理アドレス値(LAD=0)に対応する現在の物理アドレス値(PAD=0)は無効であることを示し、これは論理アドレス値(LAD=0)に対応する物理アドレスは新しい物理アドレス値(NXPAD=100)しか存在しないことを示す。言い換えれば、新しい物理アドレス値(NXPAD=100)を論理アドレス値(LAD=0)に対してそのまま割り当てても、論理アドレス値(LAD=0)に対して重複した物理アドレス値が割り当てられることは無い。そこで、この場合、情報処理回路MNGERは、前述したStep5を実行する。
これに対して、Step11において有効フラグCPVLD値が1の場合、論理アドレス値(LAD=0)に対応する物理アドレス値(PAD=0)が未だに有効であることを示す。したがって、新しい物理アドレス値(NXPAD=100)を論理アドレス値(LAD=0)に対してそのまま割り当てた場合、論理アドレス値(LAD=0)に対して重複した物理アドレス値が存在することになる。そこで、Step13において、情報処理回路MNGERは、アドレス変換テーブルLPTBL内で論理アドレス値(LAD=0)に対応する物理アドレス値(PAD=0)の有効フラグCPVLD値を0(無効)に変更する。加えて、物理アドレステーブルPADTBL内の物理アドレス値(PAD=0)に対応する有効フラグPVLDも0(無効)にする。情報処理回路MNGERは、このようにして、論理アドレス値(LAD=0)に対応する物理アドレス値(PAD=0)を無効にした後に、前述したStep5を実行する。
Step5に続くStep6において、情報処理回路MNGERおよび/または不揮発性メモリ装置NVM10〜NVM17は、書き込みデータ(WDATA0)が正しく書き込まれたかをチェックする。正しく書き込まれた場合は、Step7を実行し、正しく書き込まれなかったらStep12を実行する。Step12では、情報処理回路MNGERおよび/または不揮発性メモリ装置NVM10〜NVM17は、書き込みデータ(WDATA0)が正しく書き込まれたかをチェックするベリファイチェック回数(Nverify)が設定回数(Nvr)以下であるかをチェックする。ベリファイチェック回数(Nverify)が設定回数(Nvr)以下であれば、再度Step5およびStep6を実行する。ベリファイチェック回数(Nverify)が設定回数(Nvr)より多い場合は、書き込み物理アドレステーブルNXPADTBL1,NXPADTBL2から読み出した書き込み物理アドレス値(NXPAD=100)へは書き込みデータ(WDATA0)を書き込めないと判断し(Step14)、再度Step3を実行する。なお、このようなデータ検証処理は、図3Aに示した不揮発性メモリ装置内の書込みデータ検証回路WV0〜WVmを用いて行われ、不揮発性メモリ装置の内部回路のみで行われる場合や、あるいはその外部(情報処理回路MNGER)と適宜連動しながら行われる場合がある。
Step6に続いてStep7では、情報処理回路MNGERは、アドレス変換テーブルLPTBLを更新する。具体的には、例えば論理アドレス値(LAD=0)の番地へ新たな物理アドレス値(NXPAD=100)を書き込み、有効フラグCPVLD値を1とし、レイヤ番号LYCに書き込みレイヤ番号NXLYCを書き込む。次のStep8では、情報処理回路MNGERは、物理アドレステーブルPADTBLを更新する。具体的には、例えば、書込み物理アドレステーブルで示される書き込み物理アドレス値(NXPAD=100)の消去回数(NXPERC)値に1を加算した新たな消去回数値を生成し、当該新たな消去回数値を物理アドレステーブルPADTBL内の対応箇所(物理アドレス値(NXPAD=100)の消去回数(PERC))に書き込み。また、物理アドレステーブルPADTBL内の有効フラグPVLDを1とし、レイヤ番号LYCに書き込みレイヤ番号NXLYCを書き込む。
Step9では、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBLへ格納されている全書き込み物理アドレスNXPADへの書き込みが完了したかどうかを判定する。書き込み物理アドレステーブルNXPADTBLへ格納されている全書き込み物理アドレスNXPADへの書き込みが完了した場合はStep10を行い、未完了の場合は情報処理装置CPU_CPからメモリモジュールNVMMD0へ向けた新たなライトリクエストを待つ。
Step10では、例えば書き込み物理アドレステーブルNXPADTBLへ格納されている全書き込み物理アドレスNXPADに対する書き込みが完了した時点で、情報処理回路MNGERは、物理セグメントテーブルPSEGTBL(図10)を更新する。すなわち、書き込み物理アドレステーブルNXPADTBL内のエントリーを全て使い切った際に物理セグメントテーブルPSEGTBLを更新し、これを用いて詳細は図21で述べるが書き込み物理アドレステーブルNXPADTBLの更新も行う。
物理セグメントテーブルPSEGTBLの更新に際し、情報処理回路MNGERは、物理アドレステーブルPADTBLにおける物理アドレスの有効フラグPVLDと消去回数PERCを参照する。そして、物理アドレステーブルPADTBL内で有効フラグPVLDが0(無効)となっている物理アドレスを対象として、各物理セグメントアドレスSGAD毎に、無効物理アドレス総数TNIPA、最大消去回数MXERCおよびその無効物理オフセットアドレスMXIPAD、最小消去回数MNERCおよびその無効物理オフセットアドレスMNIPADを更新する。また、物理アドレステーブルPADTBL内で有効フラグPVLDが1(有効)となっている物理アドレスを対象として、各物理セグメントアドレスSGAD毎に、有効物理アドレス総数TNVPA、最大消去回数MXERCおよびその有効物理オフセットアドレスMXVPAD、最小消去回数MNERCおよびその有効物理オフセットアドレスMNVPADを更新する。
さらに、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBLを更新する。書き込み物理アドレステーブルNXPADTBLの更新が終了した場合、情報処理装置CPU_CPからメモリモジュールNVMMD0へのライトリクエストを待つ。
このように、情報処理回路MNGERは、不揮発性メモリ装置NVM10〜NVM17への書き込みを行う際に、書き込み物理アドレステーブルNXPADTBLを用いて行うため、例えば、書き込みの度に物理アドレステーブルPADTBLから消去回数が少ない物理アドレスを探索するような場合と比べて高速な書き込み動作が実現可能となる。また、図2に示したように、複数個の書き込み物理アドレステーブルNXPTBL1,NXPTBL2を搭載した場合、各テーブルを独立に管理・更新することができるので、これによっても高速な書き込み動作が実現可能となる。例えば、書き込み物理アドレステーブルNXPTBL1を使っている間に書き込み物理アドレステーブルNXPTBL2を更新し、NXPTBL1を使い切った際にはNXPTBL2に移行し、NXPTBL2を使っている間にNXPTBL1の更新を行うようなことが可能となる。
《書き込み物理アドレステーブルの更新方法(ウエアレベリング方法[1])》
図21は、図11Aおよび図11Bの書き込み物理アドレステーブルにおいて、その更新方法の一例を示すフロー図である。図11Aおよび図11Bに示すように、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBLの中において、エントリー番号ENUMが0から(N/2−1)までのN/2個分を、書き込み物理アドレステーブルNXPADTBL1とし、エントリー番号EMUMが(N/2)から(N−1)までのN/2個分を書き込み物理アドレステーブルNXPADTBL2として管理する。
また、図15のアドレス範囲マップ(ADMAP)の例では、物理アドレスPADが“0000_0000”から“04FF_FFFF”までは、第1物理アドレス領域PRNG1を示し、物理アドレスPADが“0500_0000”から“09FF_FFFF”までは、第2物理アドレス領域PRNG2を示す。従って、第1物理アドレス領域PRNG1の物理セグメントアドレスSGAの範囲は“0000”から“04FF”となり、第2物理アドレス領域PRNG2の物理セグメントアドレスSGAの範囲は“0500”から“09FF”となる。
情報処理回路MNGERは、第1物理アドレス領域PRNG1の範囲内の物理アドレスPADに対して書き込み物理アドレステーブルNXPADTBL1を利用し、これを更新し、第2物理アドレス領域PRNG2の範囲内の物理アドレスPADに対して書き込み物理アドレステーブルNXPADTBL2を利用し、これを更新する。書き込み物理アドレステーブルNXPADTBLを更新するために、まず物理セグメントアドレスを決定し、次に決定された物理セグメントアドレス内の物理オフセットアドレスを決定する。図10Aに示すように、ランダムアクセスメモリRAM内の物理セグメントテーブルPSEGTBL1には、物理セグメントアドレスSGAD毎に、無効状態の物理アドレスの総数(TNIPA)と、無効状態の物理アドレスの中で最小の消去回数を持つ物理オフセットアドレス(MNIPAD)ならびにその消去回数(MNERC)が格納されている。
そこで、図21に示すように、情報処理回路MNGERは、まず、ランダムアクセスメモリRAMの物理セグメントテーブルPSEGTBL1を参照し、物理セグメントアドレスSGAD毎に、前述した無効状態の物理アドレスの総数(TNIPA)、最小の消去回数を持つ物理オフセットアドレス(MNIPAD)ならびにその消去回数(MNERC)を読み出す(Step21)。次に、物理セグメントアドレスSGAD毎の無効状態の物理アドレスの総数(TNIPA)が書き込み物理アドレステーブルNXPADTBLの登録数Nより大きな物理セグメントアドレスSGADを選択する(Step22)。さらに、この選択された物理セグメントアドレスSGAD毎の最小消去回数値(MNERC)を比較し、その最小消去回数値の中の最小値(MNERCmn)を求める(Step23)。
次に、当該最小値(MNERCmn)を持つ物理セグメントアドレス(SGADmn)とその物理オフセットアドレス(MNIPADmn)を、書き込み物理アドレステーブルNXPADTBLに登録する第1候補として決定する(Step24)。なお、Step22で選択される物理セグメントアドレスSGADを存在させるには、物理アドレス空間の大きさを論理アドレス空間の大きさより、少なくとも書き込み物理アドレステーブルNXPADTBLが登録できるアドレス分の大きさ以上にすると良い。
次に、情報処理回路MNGERは、物理アドレステーブルPADTBL(図9)を参照し、前述した物理セグメントアドレス(SGADmn)内の現在候補となっている物理オフセットアドレスPPADに対応する消去回数PERC値をランダムアクセスメモリRAMから読み出し、消去回数閾値ERCthと比較する(Step25)。当該Step25はループ処理の一部であり、その1回目には、前述した物理オフセットアドレス(MNIPADmn)が物理オフセットアドレスPPADの候補となる。消去回数PERC値が消去回数閾値ERCth以下の場合、情報処理回路MNGERは、現在候補となっている物理オフセットアドレスPPADを登録対象として確定し、Step26を行う。
一方、消去回数PERC値が消去回数閾値ERCthより大きい場合、情報処理回路MNGERは、現在候補となっている物理オフセットアドレスPPADを一旦候補から除外し、Step32を行う。Step32で、情報処理回路MNGERは、物理アドレステーブルPADTBLを参照し、前述した物理セグメントアドレス(SGADmn)内で消去回数閾値ERCth以下の消去回数を持つ無効状態の物理オフセットアドレスの数(Ninv)が、書き込み物理アドレステーブルNXPADTBLが登録できるアドレス数Nより小さいか(Ninv<N)を判定する。小さい場合はStep33を行い、大きい場合はStep34を行う。
Step34において、情報処理回路MNGERは、現在候補となっている物理オフセットアドレスPPADへ演算を行い、新たな候補となる物理オフセットアドレスPPADを生成し、Step25を再度実行する。Step34では、現在の物理オフセットアドレスPPADへp値を加算し、新たな候補となる物理オフセットアドレスPPADを求める。Step34のp値はプログラム可能であり、情報処理回路MNGERが管理する最小データサイズや、不揮発性メモリの構成によって、最適な値を選ぶと良い。本実施の形態では例えばp=8を用いている。Step33では、情報処理回路MNGERは、消去回数閾値ERCthへ、ある値アルファα分だけ加算した新たな消去回数閾値ERCthを生成し、Step25を再度実行する。
Step26では、Step25を介して登録対象となった物理オフセットアドレスPPADが第1物理アドレス領域PRNG1内のアドレスかどうかをチェックする。登録対象となった物理オフセットアドレスPPADが第1物理アドレス領域PRNG1内のアドレスであれば、Step27を実行し、第1物理アドレス領域PRNG1内のアドレスでなければ(すなわち第2物理アドレス領域PRNG2内のアドレスであれば)Step28を実行する。
Step27では、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL1に対して、登録対象となった物理オフセットアドレスPPADに前述した物理セグメントアドレス(SGADmn)を含めたアドレスを書き込み物理アドレスNXPADとして登録する。また、加えて、当該書き込み物理アドレスNXPADの有効フラグNXPVLD値(ここでは0となる)を登録し、当該書き込み物理アドレスNXPADの消去回数(PERC)値を消去回数NXPERCとして登録し、さらに、当該書き込み物理アドレスNXPADの現レイヤ番号LYCに1を加算した値を新レイヤ番号NXLYCとして登録する。書き込み物理アドレステーブルNXPADTBL1には、特に限定しないが、N/2組の登録が可能であり、エントリー番号ENUMの小さな番号から順に登録される。
レイヤ番号LYC(NXLYC)の最大値は、図3B等に示すように、チェインメモリアレイCY内に(n+1)個の相変化メモリセルがCL0〜CLnが含まれる場合、nとなる。なお、図11の書き込み物理アドレステーブルNXPADTBLの例では、レイヤ番号NXLYC=“n”となる。レイヤ番号LYC(NXLYC)が最大値nに達した際、新しいレイヤ番号LYC(NXLYC)の値は0となる。不揮発性メモリ装置NVM10〜NVM17への書き込みは、この書き込み物理アドレステーブルNXPADTBLを用いて行われるため、このように、当該テーブルの更新時にレイヤ番号LYC(NXLYC)を順次シフトさせることで、図17等で述べた第1動作モードを実現できる。
Step28では、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL2に対して、登録対象となった物理オフセットアドレスPPADに前述した物理セグメントアドレス(SGADmn)を含めたアドレスを書き込み物理アドレスNXPADとして登録する。また、加えて、当該書き込み物理アドレスNXPADの有効フラグNXPVLD値(ここでは0となる)を登録し、当該書き込み物理アドレスNXPADの消去回数(PERC)および現在のレイヤ番号LYCを、消去回数NXPERCおよびレイヤ番号NXLYCとして登録する。書き込み物理アドレステーブルNXPADTBL2には、特に限定しないが、N/2組の登録が可能であり、エントリー番号ENUMの小さな番号から順に登録される。なお、書き込み物理アドレステーブルNXPADTBL1,NXPADTBL2の登録組数は、情報処理回路MNGERによって任意に設定可能であり、不揮発性メモリ装置NVM10〜NVM17への書き込み速度が最大となるように設定すると良い。
次のStep29では、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL1の全組(全エントリー番号)に対して登録が完了したか否かをチェックする。全組の登録が完了していなければ、Step32を実行し、全組の登録が完了していれば、Step30を実行する。次のStep30では、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL2への全組の登録が完了したか否かをチェックする。全組の登録が完了していなければ、Step32を実行し、全組の登録が完了していれば、書き込み物理アドレステーブルNXPADTBLの更新を完了する(Step31)。
このような更新フローを用いると、概略的には、消去回数が最小の物理アドレスを持つ物理アドレスセグメントが定められ(Step21〜24)、当該物理アドレスセグメントの中で、当該最小の物理アドレスを起点として、消去回数が所定の閾値以下である物理アドレスが順次抽出される(Step25、Step32〜34)。この際に、抽出数が所定の登録数に満たない場合には(Step32)、消去回数の閾値を段階的に上げながら(Step33)、抽出数が所定の登録数を満たすまで(Step32、Step29,30)、同様にして物理アドレスが順次抽出される(Step25,34)。これによって、無効状態となっている物理アドレス(すなわち論理アドレスに対して現在割り当てが行われていない物理アドレス)を対象として、消去回数を平準化するためのウエアレベリング(ダイナミックウエアレベリング)が実現可能となる。
《不揮発性メモリ装置のアドレス割り付けの詳細》
図22Aは、図15等の第1物理アドレス領域PRNG1に割り当てられる不揮発性メモリ装置において、その論理アドレス、物理アドレス、チップ内アドレスの対応関係の一例を示す図である。図22Bは、図15等の第2物理アドレス領域PRNG2に割り当てられる不揮発性メモリ装置において、その論理アドレス、物理アドレス、チップ内アドレスの対応関係の一例を示す図である。
図22Aおよび図22Bには、論理アドレスLADと、物理アドレスPADと、物理アドレスCPADと、不揮発性メモリ装置NVM10〜NVM17のチップアドレスCHIPA[2:0]と、各チップ内のバンクアドレスBK[1:0]、ロウアドレスROWおよびカラムアドレスCOLとの対応関係が示されている。さらに、レイヤ番号LYCとカラムアドレスCOLとの対応関係、ロウアドレスROWとワード線WLとの対応関係、カラムアドレスCOLとビット線BL、チェインメモリアレイ選択線SLおよびメモリセル選択線LYとの対応関係がそれぞれ示されている。
特に限定しないが、不揮発性メモリNVM10〜NVM17は8チップあり、1チップの不揮発性メモリ装置には2本のチェインメモリアレイ選択線SLがあり、1個のチェインメモリアレイCYには8個のメモリセルと8本のメモリセル選択線LYがあるものとする。また、1個のメモリバンクBKには528個のメモリアレイARYがあり、1個のメモリアレイARYにて選択されるチェインメモリアレイCYは1個であるものとする。つまり、1個のメモリバンクBKの中で同時に528個のチェインメモリアレイCYが選択される。また、メモリバンクは4個である。図22Aの第1物理アドレス領域PRNG1では、1個のチェインメモリアレイCY内の8個のメモリセルの中で1個のメモリセルにのみデータを保持するものとし、図22Bの第2物理アドレス領域PRNG2では、1個のチェインメモリアレイCY内の8個のメモリセルの中の8個のメモリセルにデータを保持するものとする。
図22Aおよび図22Bに示すアドレス割り付けは、例えば、図2の情報処理回路MNGERによって行われる。図22Aにおいて、図2の情報処理回路MNGERは、データを不揮発性メモリ装置NVM10〜NVM17へ書き込む際には、書き込み物理アドレステーブルNXPADTBL1(図11)に格納されているレイヤ番号NXLYC(LYC[2:0])と物理アドレスNXPAD(PAD[31:0])と、物理アドレスCPAD[2:0]を対応付ける。また、データを不揮発性メモリ装置NVM10〜NVM17から読み出す際は、アドレス変換テーブルLPTBL(図12A)に格納されている物理アドレスPAD[31:0]と、物理アドレスPADのレイヤ番号LYC[2:0]と、物理アドレスCPAD[2:0]とを対応付ける。
レイヤ番号LYC[2:0]は、カラムアドレスCOL[2:0]へ対応しており、さらに、カラムアドレスCOL[2:0]はメモリセル選択線LY[2:0]へ対応している。レイヤ番号LYC[2:0]の値が、メモリセル選択線LY[2:0]の値となり、レイヤ番号LYC[2:0]で指定されたメモリセルへデータが書き込まれ、また、レイヤ番号LYC[2:0]で指定されたメモリセルからデータが読み出される。
物理アドレスCPAD[0]は、カラムアドレスCOL[3]へ対応し、さらに、カラムアドレスCOL[3]はチェインメモリアレイ選択線SL[0]へ対応している。物理アドレスCPAD[2:1]はカラムアドレスCOL[5:4]へ対応し、さらに、カラムアドレスCOL[5:4]はビット線BL[1:0]へ対応している。物理アドレスPAD[c+0:0]はカラムアドレスCOL[c+6:6]へ対応し、さらに、カラムアドレスCOL[c+6:6]はビット線BL[c:2]へ対応している。
物理アドレスPAD[d+c+1:c+1]はロウアドレスROW[d+c+7:c+7]へ対応し、さらに、ロウアドレスROW[d+c+7:c+7]はワード線WL[d:0]へ対応している。物理アドレスPAD[d+c+3:d+c+2]はバンクアドレスBK[d+c+9:d+c+8]へ対応し、さらに、バンクアドレスBK[d+c+9:d+c+8]はバンクアドレスBK[1:0]へ対応している。物理アドレスPAD[d+c+6:d+c+4]はチップアドレスCHIPA[d+c+12:d+c+10]へ対応し、さらに、チップアドレスCHIPA[d+c+12:d+c+10]はチップアドレスCHIPA[2:0]へ対応している。
ここで、例えば、512バイトのメインデータと16バイトの冗長データを書き込む場合を想定する。前提として、物理アドレスPAD[d+c+6:d+c+4]は3、物理アドレスPAD[d+c+3:d+c+2]は2、物理アドレスPAD[d+c+1:c+1]は8、物理アドレスCPAD[c+0:0]は0、物理アドレスCPAD[2:1]は0、物理アドレスCPAD[0]は0、レイヤ番号LYC[2:0]は0であるものとする。
この場合、図2の情報処理回路MNGERは、レイヤ番号LYCの値および物理アドレスPADの値は変化させず、物理アドレスCPAD[2:0]値を0〜7まで+1ずつ変化させ、それぞれのアドレスへ528ビットずつデータを書き込み、合計528バイトのデータを書き込む。また、同様の前提で、512バイトのメインデータと16バイトの冗長データを読み出す際、図2の情報処理回路MNGERは、レイヤ番号LYCの値および物理アドレスPADの値は変化させず、物理アドレスCPAD[2:0]値を0〜7まで+1ずつ変化させ、それぞれのアドレスから528ビットずつデータを読み出し、合計528バイトのデータを読み出す。
すなわち、この例の場合、図3Aにおいて、各メモリアレイARY0〜ARY527毎に1本のワード線WLに対して4本のビット線BLが順に選択されると共に、図3Bに示すように、ワード線WLとビット線BLの各交点に位置し、チェインメモリアレイ選択線SLによって選択される2個のチェインメモリアレイCYが選択されることになる。ただし、この際に、各チェインメモリアレイCY内で選択される相変化メモリセルは1個である。
一方、図22Bにおいて、図2の情報処理回路MNGERは、データを不揮発性メモリNVM10〜NVM17へ書き込む際は、書き込み物理アドレステーブルNXPADTBL2に格納されている物理アドレスNXPAD(PAD[31:0])および物理アドレスCPAD[2:0]と不揮発性メモリNVM10〜NVM17のアドレスとを対応付ける。また、データを不揮発性メモリ装置NVM10〜NVM17から読み出す際は、アドレス変換テーブルLPTBLに格納されている物理アドレスPAD[31:0]および物理アドレスCPAD[2:0]と不揮発性メモリ装置NVM10〜NVM17のアドレスとを対応つける。
物理アドレスCPAD[2:0]はカラムアドレスCOL[2:0]へ対応しており、さらに、カラムアドレスCOL[2:0]はメモリセル選択線LY[2:0]へ対応している。物理アドレスCPAD[2:0]の値はメモリセル選択線LY[2:0]の値となり、物理アドレスCPAD[2:0]で指定されたメモリセルへデータが書き込まれ、また、物理アドレスCPAD[2:0]で指定されたメモリセルからデータが読み出される。
物理アドレスPAD[0]はカラムアドレスCOL[3]へ対応し、さらに、カラムアドレスCOL[3]はチェインメモリアレイ選択線SL[0]へ対応している。物理アドレスPAD[a+1:1]はカラムアドレスCOL[a+4:4]へ対応し、さらに、カラムアドレスCOL[a+4:4]はビット線BL[a:0]へ対応している。物理アドレスPAD[b+a+2:a+2]はロウアドレスROW[b+a+5:a+5]へ対応し、さらに、ロウアドレスROW[b+a+5:a+5]はワード線WL[b:0]へ対応している。
物理アドレスPAD[b+a+4:b+a+3]はバンクアドレスBK[b+a+7:b+a+6]へ対応し、さらに、バンクアドレスBK[b+a+7:b+a+6]はバンクアドレスBK[1:0]へ対応している。物理アドレスPAD[b+a+7:b+a+5]はチップアドレスCHIPA[b+a+10:b+a+8]へ対応し、さらに、チップアドレスCHIPA[b+a+10:b+a+8]はチップアドレスCHIPA[2:0]へ対応している。
ここで、例えば、512バイトのメインデータと16バイトの冗長データを書き込む場合を想定する。前提として、物理アドレスPAD[b+a+7:b+a+5]は3、物理アドレスPAD[b+a+4:b+a+3]は2、物理アドレスPAD[b+a+2:a+2]は8、物理アドレスPAD[a+1:1]は0、物理アドレスPAD[0]は0、物理アドレスCPAD[2:0]は0であるものとする。
この場合、図2の情報処理回路MNGERは、物理アドレスPADの値は変化させず、物理アドレスCPAD[2:0]値を0〜7まで+1ずつ変化させ、それぞれのアドレスへ528ビットずつデータを書き込み、合計528バイトのデータを書き込む。同様の前提で512バイトのメインデータと16バイトの冗長データを読み出す際、図2の情報処理回路MNGERは、物理アドレスPADの値は変化させず、物理アドレスCPAD[2:0]値を0〜7まで+1ずつ変化させ、それぞれのアドレスから528ビットずつデータを読み出し、合計528バイトのデータを読み出す。
すなわち、この例の場合、図3Aにおいて、各メモリアレイARY0〜ARY527毎に1本のワード線WLに対して1本のビット線BLが選択されると共に、図3Bに示すように、ワード線WLとビット線BLの各交点に位置し、チェインメモリアレイ選択線SLによって選択される2個のチェインメモリアレイCY中の1個が選択されることになる。ただし、この際に、各チェインメモリアレイCY内で選択される相変化メモリセルは8個である。
図22Cは、図2の情報処理回路MNGERが不揮発性メモリ装置にデータ書き込みやデータ読み出しを行う際の物理アドレスPADおよび物理アドレスCPADの変化の様子の一例を示す図である。まず、情報処理回路MNGERは、セクタカウントSEC、物理アドレスPADおよび物理アドレスCPAD(=0)を決定し、変数qを0に設定したのち(Step41)、この物理アドレスPADが第1物理アドレス領域PRNG1内の物理アドレスかどうかをチェックする(Step42)。この物理アドレスPADが第1物理アドレス領域PRNG1内の物理アドレスではない場合は、Step48を実行する。また、この物理アドレスPADが第1物理アドレス領域PRNG1内の物理アドレスであれば、図22Aで示すアドレス変換を行い(Step43)、不揮発性メモリ装置へのデータ書き込みやデータ読み出しを行う(Step44)。
次に、情報処理回路MNGERは、変数qの値がn以上であるかをチェックし(Step45)、変数qの値がnより小さい場合は、物理アドレスCPADへ1を加算した新たな物理アドレスCPADを求め(Step47)、再度、Step43を実行し、その後Step44を実行する。変数qの値がn以上の場合は、セクタカウントSECを1つずつ減少させ、さらに変数qの値を0に設定し(Step46)、次にStep51を実行する。Step51では、セクタカウントSEC値が0以下であるかをチェックし、セクタカウントSEC値が0以下では無い場合、物理アドレスPADへ1を加算した新たな物理アドレスPADを求め(Step52)、再度、Step42へ戻り、処理を続ける。セクタカウントSEC値が0以下であればデータ書き込みやデータ読み出しを完了する(Step53)。
Step47で物理アドレスCPADへ1を加算した場合には、図22Aから分かるように、チェインメモリアレイ選択線SLまたはビット線BL(すなわちチェインメモリアレイCYの位置)が変わることになる。Step48では、情報処理回路MNGERは、図22Bで示すアドレス変換を行い(Step48)、不揮発性メモリ装置へのデータ書き込みやデータ読み出しを行う(Step49)。次に、変数qの値がr以上であるかをチェックし(Step50)、変数qの値がrより小さい場合は、物理アドレスCPADへ1を加算した新たな物理アドレスCPADを求め(Step47)、再度、Step48を実行し、その後Step49を実行する。変数qの値がr以上の場合は、Step46以降を実行する。Step47で物理アドレスCPADへ1を加算した場合には、図22Bから分かるように、メモリセル選択線LY(すなわちチェインメモリアレイCY内のメモリセルの位置)が変わることになる。
なお、Step45のn値や、Step50のr値は、プログラム可能であり、情報処理回路MNGERが管理する最小データサイズや、不揮発性メモリ装置の構成によって、最適な値を選ぶと良い。本実施の形態では例えばn=r=7を用いている。
《アドレス変換テーブルおよび不揮発性メモリ装置の更新動作例》
図23Aおよび図23Bは、図1の制御回路MDLCT0が不揮発性メモリ装置の第1物理アドレス領域PRNG1へデータを書き込む際のアドレス変換テーブルLPTBLの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。アドレス変換テーブルLPTBLは、情報処理装置CPU_CPから制御回路MDLCT0へ入力された論理アドレスLADを不揮発性メモリ装置の物理アドレスPADへ転換するためのテーブルである。
アドレス変換テーブルLPTBLは、論理アドレスLADに対応した物理アドレスPADと、当該物理アドレスの有効フラグCPVLDおよびレイヤ番号LYCから構成される。また、このアドレス変換テーブルLPTBLはランダムアクセスメモリRAMへ格納される。不揮発性メモリ装置には、物理アドレスPADに対応したデータDATAと、論理アドレスLADと、データ有効フラグDVFと、レイヤ番号LYCが格納される。
図23Aには、時間T0より後に、情報処理装置CPU_CPから制御回路MDLCT0へ論理アドレス領域LRNG1へのライトリクエストWQ0、WQ1、WQ2及びWQ3が入力されたあとの状態が示されている。具体的には、これらのライトリクエストのデータが不揮発性メモリ装置の第1物理アドレス領域PRNG1へ書き込まれた後の時間T1におけるアドレス変換テーブルLPTBL及び不揮発性メモリ装置が格納するアドレス、データおよび有効フラグおよびレイヤ番号LYCが示されている。
ライトリクエストWQ0には論理アドレス値(LAD=0)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA0)が含まれる。ライトリクエストWQ1には論理アドレス値(LAD=1)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA1)が含まれる。ライトリクエストWQ2には論理アドレス値(LAD=2)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA2)が含まれる。ライトリクエストWQ3には論理アドレス値(LAD=3)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA3)が含まれる。ライトリクエストWQ0、WQ1、WQ2及びWQ3が制御回路MDLCT0へ入力された際は、インターフェース回路HOST_IFは、これらのライトリクエストをバッファBUF0へ転送する。
次に、情報処理回路MNGERは、バッファBUF0へ格納されているライトリクエストWQ0、WQ1、WQ2及びWQ3を順に読み出す。続いて、情報処理回路MNGERは、ライトリクエストWQ0、WQ1、WQ2及びWQ3の論理アドレス値(LAD)がそれぞれ0、1、2および3であるため、これらに応じた情報を、メモリ制御回路RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLからそれぞれ読み出す。すなわち、アドレス変換テーブルLPTBLの論理アドレスLADの0番地、1番地、2番地および3番地から物理アドレス(PAD)値、有効フラグ(CPVLD)値およびレイヤ番号LYCを読みだす。
最初は、図12Aに示したように、読み出された全ての有効フラグ(CPVLD)値は0であるため、論理アドレスLADの0番地、1番地、2番地および3番地には物理アドレスPADが割り当てられていないことがわかる。次に、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL1のエントリー番号ENUMの0番から3番までに格納されている書き込み物理アドレス値(NXPAD)およびレイヤ番号NXLYCを読み出し、論理アドレスLADの0番地、1番地、2番地および3番地にそれぞれ割り当てる。この例では、エントリー番号ENUMの0番から3番までに格納された書き込み物理アドレス値(NXPAD)は、それぞれ10進数で0、1、2、3であり、レイヤ番号NXLYCは、それぞれ0、0、0、0であるものとする。
次に、情報処理回路MNGERは、ライトリクエストWQ0、1、2および3のそれぞれの書き込みデータDATA0、1、2および3に対するECCコードECC0、1、2および3を生成し、図14に示すデータフォーマットに従い不揮発性メモリ装置への書き込みデータWDATA0、1、2および3を生成する。すなわち、書き込みデータWDATA0は、書き込みデータ(DATA0)からなるメインデータDArea0とそれに対応する冗長データRArea0から構成され、書き込みデータWDATA1は、書き込みデータ(DATA1)からなるメインデータDArea1とそれに対応する冗長データRArea1から構成される。同様に、書き込みデータWDATA2は、書き込みデータ(DATA2)からなるメインデータDArea2とそれに対応する冗長データRArea2から構成され、書き込みデータWDATA3は、書き込みデータ(DATA3)からなるメインデータDArea3とそれに対応する冗長データRArea3から構成される。
情報処理回路MNGERにより、書き込みデータWDATA0、1、2および3は、不揮発性メモリ装置の4つの物理アドレスへそれぞれ書き込まれる。冗長データRArea0、1、2および3には、それぞれECCコードECC0、1、2および3が含まれる。さらに、共通に、データ反転フラグ値(INVFLG=0)、ライトフラグ値(WTFLG=0)、ECCフラグ値(ECCFLG=0)、ステート情報値(STATE=1)、エリア情報値(AREA=1)、データ書き込みレイヤ情報値(LYN=1)、バッドブロック情報値(BADBLK=0)、予備領域値(RSV=0)が含まれる。
なお、論理アドレス領域LRNG1へのライトリクエストであれば、エリア情報値(AREA)は1となり、論理アドレス領域LRNG2へのライトリクエストであれば、エリア情報値(AREA)は2となる。また、書き込み物理アドレステーブルNXPADTBL1から読み出したレイヤ番号NXLYC値が0の場合、データ書き込みレイヤ情報LYN[n:0]の中の、LYN[n:1]が0、LYN[0]が1となり、チェインメモリアレイCY内の相変化メモリセルCL0へデータが書きこまれることを示す。
さらに、情報処理回路MNGERは、書き込み物理アドレス値(NXPAD)の10進数で0、1、2および3に従い、調停回路ARBとメモリ制御回路NVCT10〜NVCT17を通じて不揮発性メモリ装置NVM10〜NVM17に書き込みを行う。すなわち、不揮発性メモリ装置NVMの物理アドレスPADの0番地へは、ライトリクエストWQ0に対応する書き込みデータWDATA0、論理アドレス値(LAD=0)、およびレイヤ番号(LYC=0)を書き込み、データ有効フラグ(DVF)値として1を書き込む。不揮発性メモリ装置NVMの物理アドレスPADの1番地へは、ライトリクエストWQ1に対応する書き込みデータWDATA1、論理アドレス値(LAD=1)、およびレイヤ番号(LYC=0)を書き込み、データ有効フラグ(DVF)値として1を書き込む。同様に、物理アドレスPADの2番地へは、書き込みデータWDATA2、論理アドレス値(LAD=2)、データ有効フラグ(DVF=1)、レイヤ番号(LYC=0)を書き込み、物理アドレスPADの3番地へは、書き込みデータWDATA3、論理アドレス値(LAD=3)、データ有効フラグ(DVF=1)、レイヤ番号(LYC=0)を書き込む。
最後に、情報処理回路MNGERは、メモリ制御回路RAMCを通じてランダムアクセスメモリRAMに保存されているアドレス変換テーブルLPTBLを更新する。すなわち、論理アドレスLADの0番地へは割り当て後の物理アドレス(PAD=0)、有効フラグ(CPVLD=1)およびレイヤ番号(LYC=0)を書き込み、論理アドレスLADの1番地へは割り当て後の物理アドレス(PAD=1)、有効フラグ(CPVLD=1)およびレイヤ番号(LYC=0)を書き込む。論理アドレスLADの2番地へは割り当て後の物理アドレス(PAD=2)、有効フラグ(CPVLD=1)およびレイヤ番号(LYC=0)を書き込み、論理アドレスLADの3番地へは割り当て後の物理アドレス(PAD=3)、有効フラグ(CPVLD=1)およびレイヤ番号(LYC=0)を書き込む。
図23Bには、時間T1より後に、情報処理装置CPU_CPから制御回路MDLCT0へライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9が入力された後の状態が示されている。具体的には、これらのライトリクエストのデータが不揮発性メモリ装置の第1物理アドレス領域PRNG1へ書き込まれた後の時間T2において、アドレス変換テーブルLPTBLおよび不揮発性メモリ装置に格納されるアドレス、データおよび有効フラグが示されている。
ライトリクエストWQ4には、論理アドレス値(LAD=0)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA4)が含まれる。ライトリクエストWQ5には、論理アドレス値(LAD=1)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA5)が含まれる。ライトリクエストWQ6には、論理アドレス値(LAD=4)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA6)が含まれる。ライトリクエストWQ7には、論理アドレス値(LAD=5)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA7)が含まれる。ライトリクエストWQ8には、論理アドレス値(LAD=2)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA8)が含まれる。ライトリクエストWQ9には、論理アドレス値(LAD=3)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA9)が含まれる。ライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9が制御回路MDLCT0へ入力された際には、インターフェース回路HOST_IFは、これらのライトリクエストをバッファBUF0へ転送する。
次に、情報処理回路MNGERは、バッファBUF0へ格納されているライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9を順に読み出す。続いて、情報処理回路MNGERは、図14に示すデータフォーマットに従い、ライトリクエストWQ4、5、6、7、8および9にそれぞれ対応する書き込みデータWDATA4、5、6、7、8および9を生成する。書き込みデータWDATA4は、書き込みデータDATA4からなるメインデータDArea4と冗長データRArea4から構成され、書き込みデータWDATA5は書き込みデータDATA5からなるメインデータDArea5と冗長データRArea5から構成される。書き込みデータWDATA6は書き込みデータDATA6からなるメインデータDArea6と冗長データRArea6から構成され、書き込みデータWDATA7は書き込みデータDATA7からなるメインデータDArea7と冗長データRArea7から構成される。書き込みデータWDATA8は書き込みデータDATA8からなるメインデータDArea8と冗長データRArea8から構成され、書き込みデータWDATA9は書き込みデータDATA9からなるメインデータDArea9と冗長データRArea9から構成される。
冗長データRArea4、5、6、7、8および9には、それぞれ、書き込みデータDATA4、5、6、7、8および9を用いて情報処理回路MNGERによって生成されたECCコードECC4、5、6、7、8および9が含まれる。さらに、共通に、データ反転フラグ値(INVFLG=0)、ライトフラグ値(WTFLG=0)、ECCフラグ値(ECCFLG=0)、ステート情報値(STATE=1)、エリア情報値(AREA=1)、バッドブロック情報値(BADBLK=0)、予備領域値(RSV=0)が含まれる。
情報処理回路MNGERにより、書き込みデータWDATA4、5、6、7、8および9は、不揮発性メモリ装置の6つの物理アドレスへそれぞれ書き込まれる。この際に、情報処理回路MNGERは、ライトリクエストWQ4、5、6、7、8および9の論理アドレス値(LAD)がそれぞれ0、1、4、5、2および3であるため、これらに応じた情報を、メモリ制御回路RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLからそれぞれ読み出す。すなわち、アドレス変換テーブルLPTBLの論理アドレスLADの0番地、1番地、4番地、5番地、2番地および3番地から、それぞれ物理アドレス値(PAD)、有効フラグ値(CPVLD)およびレイヤ番号LYCを読みだす。
図23Aのアドレス変換テーブルLPTBLにおいて、論理アドレスLADの0番地の物理アドレス値(PAD)は0、有効フラグ値(CPVLD)は1、レイヤ番号LYCは0であり、論理アドレスLADの0番地へのライトリクエストWQ4に伴い既に書き込まれている物理アドレスPADの0番地のデータを無効にする必要がある。そこで、情報処理回路MNGERは、不揮発性メモリ装置における物理アドレスPADの0番地の有効フラグ値(DVF)を0に設定する(図23Aの101→図23Bの111)。同様に、図23Aにおいて、論理アドレスLADの1番地の物理アドレス値(PAD)は1、有効フラグ値(CPVLD)は1、レイヤ番号LYCは0であり、ライトリクエストWQ5に伴い物理アドレスPADの1番地のデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの1番地の有効フラグ値(DVF)を0に設定する(図23Aの102→図23Bの112)。
また、図23Aのアドレス変換テーブルLPTBLにおいて、ライトリクエストWQ6に伴う論理アドレスLADの4番地の物理アドレス値(PAD)は0、有効フラグ値(CPVLD)は0、レイヤ番号LYCは0であり、論理アドレスLADの4番地には、物理アドレスPADが割り当てられていないことがわかる。同様に、図23Aにおいて、ライトリクエストWQ7に伴う論理アドレスLADの5番地の物理アドレス値(PAD)は0、有効フラグ値(CPVLD)は0、レイヤ番号LYCは0であり、論理アドレスLADの5番地には、物理アドレスPADが割り当てられていないことがわかる。
一方、図23のアドレス変換テーブルLPTBLにおいて、論理アドレスLADの2番地の物理アドレス値(PAD)は2、有効フラグ値(CPVLD)は1、レイヤ番号LYCは0であり、論理アドレスLADの2番地へのライトリクエストWQ8に伴い既に書き込まれている物理アドレスPADの2番地のデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの2番地の有効フラグ値(DVF)を0に設定する(図23Aの103→図23Bの113)。同様に、図23Aにおいて、論理アドレスLADの3番地の物理アドレス値(PAD)は3、有効フラグ値(CPVLD)は1、レイヤ番号LYCは0であり、ライトリクエストWQ9に伴い物理アドレスPADの3番地のデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの6番地の有効フラグ値(DVF)を0に設定する(図23Aの104→図23Bの114)。
次に、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBL1のエントリー番号ENUMの4番から9番までに格納されている書き込み物理アドレス値(NXPAD)およびレイヤ番号NXLYCを読み出し、論理アドレスLADの0番地、1番地、4番地、5番地、2番地および3番地にそれぞれ割り当てる。この例では、エントリー番号ENUMの4番から9番までに格納された書き込み物理アドレス値(NXPAD)は、それぞれ4、5、6、7、8および9であり、レイヤ番号NXLYCは、それぞれ1、1、1、1、1および1であるものとする。
続いて、情報処理回路MNGERは、書き込み物理アドレス値(NXPAD)の4、5、6、7、8および9に従い、調停回路ARBとメモリ制御回路NVCT10〜NVCT17を通じて不揮発性メモリ装置NVM10〜NVM17に書き込みを行う。すなわち、不揮発性メモリ装置NVMの物理アドレスPADの4番地へは、ライトリクエストWQ4に対応する書き込みデータWDATA4、論理アドレス値(LAD=0)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。不揮発性メモリ装置NVMの物理アドレスPADの5番地へは、ライトリクエストWQ5に対応する書き込みデータWDATA5、論理アドレス値(LAD=1)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。
また、情報処理回路MNGERは、不揮発性メモリ装置NVMの物理アドレスPADの6番地へは、ライトリクエストWQ6に対応する書き込みデータWDATA6、論理アドレス値(LAD=4)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。同様に、不揮発性メモリ装置NVMの物理アドレスPADの7番地へは、ライトリクエストWQ7に対応する書き込みデータWDATA7、論理アドレス値(LAD=5)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。
さらに、情報処理回路MNGERは、不揮発性メモリ装置NVMの物理アドレスPADの8番地へは、ライトリクエストWQ8に対応する書き込みデータWDATA8、論理アドレス値(LAD=2)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。同様に、不揮発性メモリ装置NVMの物理アドレスPADの9番地へは、ライトリクエストWQ9に対応する書き込みデータWDATA9、論理アドレス値(LAD=3)、およびレイヤ番号(LYC=1)を書き込み、データ有効フラグ(DVF)値として1を書き込む。
図24Aおよび図24Bは、図1の制御回路MDLCT0が不揮発性メモリ装置の第2物理アドレス領域PRNG2へデータを書き込む際のアドレス変換テーブルLPTBLの更新方法および不揮発性メモリ装置のデータ更新方法の一例を示す図である。ここでは、図23Aおよび図23Bの場合と同様に、アドレス変換テーブルLPTBLおよび不揮発性メモリ装置NVMの状態が示されている。
アドレス変換テーブルLPTBLは、論理アドレスLADに対応した物理アドレスPADと、当該物理アドレスの有効フラグCPVLDおよびレイヤ番号LYCから構成される。また、このアドレス変換テーブルLPTBLはランダムアクセスメモリRAMへ格納される。不揮発性メモリ装置には、物理アドレスPADに対応したデータDATAと、論理アドレスLADと、データ有効フラグDVFと、レイヤ番号LYCが格納される。ここでは、レイヤ番号LYCは、全て“0”であるため図面からは省略している。
図24Aは、時間T0より後に、情報処理装置CPU_CPから制御回路MDLCT0へ、論理アドレス領域LRNG2へのライトリクエストWQ0、WQ1、WQ2およびWQ3が入力された後の状態が示されている。具体的には、これらのライトリクエストのデータが不揮発性メモリ装置の第2物理アドレス領域PRNG2へ書き込まれた後の時間T1における、アドレス変換テーブルLPTBLおよび不揮発性メモリ装置に格納されるアドレス、データおよび有効フラグが示されている。
ライトリクエストWQ0には、16進数で論理アドレス値(LAD=“800000”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA0)が含まれる。ライトリクエストWQ1には、16進数で論理アドレス値(LAD=“800001”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA1)が含まれる。ライトリクエストWQ2には、16進数で論理アドレス値(LAD=“800002”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA2)が含まれる。ライトリクエストWQ3には、16進数で論理アドレス値(LAD=“800003”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA3)が含まれる。
ライトリクエストWQ0、WQ1、WQ2およびWQ3が制御回路MDLCT0へ入力された際、インターフェース回路HOST_IFは、これらのライトリクエストをバッファBUF0へ転送する。次に、情報処理回路MNGERは、バッファBUF0へ格納されているライトリクエストWQ0、WQ1、WQ2およびWQ3を順に読み出す。この際に、情報処理回路MNGERは、メモリ制御装置RAMCを通じてランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLを参照し、ライトリクエストWQ0、1、2および3に対応する各種情報を読み出す。具体的には、アドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地、“800001”番地、“800002”番地および“800003”番地からそれぞれ物理アドレス値(PAD)および有効フラグCPVLDを読み出す。
最初は、図12Aのように読み出された全ての有効フラグCPVLDは0であるため、論理アドレスLADの“800000”番地、“800001”番地、“800002”番地および“800003”番地には物理アドレスPADが割り当てられていないことが分かる。次に、情報処理回路MNGERは、ライトリクエストWQ0、1、2および3に対応して、図14に示すデータフォーマットに従い、不揮発性メモリ装置への書き込みデータWDATA0、1、2および3を生成する。書き込みデータWDATA0は、書き込みデータDATA0からなるメインデータDArea0とその冗長データRArea0から構成され、書き込みデータWDATA1は書き込みデータDATA1からなるメインデータDArea1とその冗長データRArea1から構成される。書き込みデータWDATA2は書き込みデータDATA2からなるメインデータDArea2とその冗長データRArea2から構成され、書き込みデータWDATA3は書き込みデータDATA3からなるメインデータDArea3とその冗長データRArea3から構成される。
冗長データRArea0、1、2および3には、それぞれ、書き込みデータDATA0、1、2および3を用いて情報処理回路MNGERによって生成されたECCコードECC0、1、2および3が含まれる。さらに共通に、データ反転フラグ値(INVFLG=0)、ライトフラグ値(WTFLG=0)、ECCフラグ値(ECCFLG=0)、ステート情報値(STATE=1)、エリア情報値(AREA=1)、バッドブロック情報値(BADBLK=0)、予備領域値(RSV=0)が含まれる。
情報処理回路MNGERにより、書き込みデータWDATA0、1、2および3は、不揮発性メモリ装置の4つの物理アドレスへそれぞれ書き込まれる。この際に、情報処理回路MNGERは、ライトリクエストWQ0〜WQ3に応じて書き込み物理アドレステーブルNXPADTBL2のエントリー番号ENUMの例えば16番から19番までに格納されている書き込み物理アドレスNXPADを読み出し、それらを各論理アドレスに割り当てる。ここでは、当該書き込み物理アドレス値(NXPAD)が、それぞれ、“2800000”、“2800001”、“2800002”および“2800003”であるものとして、情報処理回路MNGERは、これらを、論理アドレスLADの“800000”番地、“800001”番地、“800002”番地および“800003”番地にそれぞれ割り当てる。
さらに、情報処理回路MNGERは、当該書き込み物理アドレス値(NXPAD)に従い、調停回路ARBとメモリ制御回路NVCT10〜NVCT17を通じて、不揮発性メモリ装置NVM10〜NVM17に書き込みを行う。具体的には、不揮発性メモリ装置の物理アドレスPADの“2800000”番地へはライトリクエストWQ0に対応する書き込みデータWDATA0、論理アドレス値(LAD=“800000”)を書き込み、データ有効フラグDVFとして1を書き込む。不揮発性メモリ装置の物理アドレスPADの“2800001”番地へはライトリクエストWQ1に対応する書き込みデータWDATA1、論理アドレス値(LAD=“800001”)を書き込み、データ有効フラグDVFとして1を書き込む。
また、情報処理回路MNGERは、不揮発性メモリ装置の物理アドレスPADの“2800002”番地へはライトリクエストWQ2に対応する書き込みデータWDATA2、論理アドレス値(LAD=“800002”)を書き込み、データ有効フラグDVFとして1を書き込む。同様に、不揮発性メモリ装置の物理アドレスPADの“2800003”番地へはライトリクエストWQ3に対応する書き込みデータWDATA3、論理アドレス値(LAD=“800003”)を書き込み、データ有効フラグDVFとして1を書き込む。
最後に、情報処理回路MNGERは、メモリ制御回路RAMCを通じ、ランダムアクセスメモリRAMに保存されているアドレス変換テーブルLPTBLを更新する。具体的には、アドレス変換テーブルLPTBLにおける論理アドレスLADの“800000”番地へは、物理アドレス値(PAD=“2800000”)および有効フラグ値(CPVLD=1)を書き込む。また、論理アドレスLADの“800001”番地へは物理アドレス値(PAD=“2800001”)および有効フラグ値(CPVLD=1)を書き込む。同様に、論理アドレスLADの“800002”番地へは物理アドレス値(PAD=“2800002”)および有効フラグ値(CPVLD=1)を書き込み、論理アドレスLADの“800003”番地へは物理アドレス値(PAD=“2800003”)および有効フラグ値(CPVLD=1)を書き込む。
図24Bには、時間T1より後に、情報処理装置CPU_CPから制御回路MDLCT0へ、ライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9が入力された後の状態が示される。具体的には、これらのライトリクエストのデータが不揮発性メモリ装置の第2物理アドレス領域PRNG2へ書き込まれた後の時間T2における、アドレス変換テーブルLPTBLおよび不揮発性メモリ装置に格納されるアドレス、データおよび有効フラグが示されている。
ライトリクエストWQ4には、論理アドレス値(LAD=“800000”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA4)が含まれる。ライトリクエストWQ5には、論理アドレス値(LAD=“800001”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA5)が含まれる。ライトリクエストWQ6には、論理アドレス値(LAD=“800004”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA6)が含まれる。ライトリクエストWQ7には論理アドレス値(LAD=“800005”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA7)が含まれる。ライトリクエストWQ8には、論理アドレス値(LAD=“800002”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA8)が含まれる。ライトリクエストWQ9には、論理アドレス値(LAD=“800003”)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、書き込みデータ(DATA9)が含まれる。
ライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9が制御回路MDLCT0へ入力された際、インターフェース回路HOST_IFは、これらのライトリクエストをバッファBUF0へ転送する。次に、情報処理回路MNGERは、バッファBUF0へ格納されているライトリクエストWQ4、WQ5、WQ6、WQ7、WQ8およびWQ9を順に読み出す。続いて、情報処理回路MNGERは、図14に示すデータフォーマットに従い、ライトリクエストWQ4、5、6、7、8および9にそれぞれ対応する不揮発性メモリ装置への書き込みデータWDATA4、5、6、7、8および9を生成する。
書き込みデータWDATA4は、書き込みデータDATA4からなるメインデータDArea4とその冗長データRArea4から構成され、書き込みデータWDATA5は、書き込みデータDATA5からなるメインデータDArea5とその冗長データRArea5から構成される。書き込みデータWDATA6は、書き込みデータDATA6からなるメインデータDArea6とその冗長データRArea6から構成され、書き込みデータWDATA7は、書き込みデータDATA7からなるメインデータDArea7とその冗長データRArea7から構成される。書き込みデータWDATA8は、書き込みデータDATA8からなるメインデータDArea8とその冗長データRArea8から構成され、書き込みデータWDATA9は、書き込みデータDATA9からなるメインデータDArea9とその冗長データRArea9から構成される。
冗長データRArea4、5、6、7、8および9には、それぞれ、書き込みデータDATA4、5、6、7、8および9を用いて情報処理回路MNGERによって生成されたECCコードECC4、5、6、7、8および9が含まれる。さらに、共通に、データ反転フラグ値(INVFLG=0)、ライトフラグ値(WTFLG=0)、ECCフラグ値(ECCFLG=0)、ステート情報値(STATE=1)、エリア情報値(AREA=1)、バッドブロック情報値(BADBLK=0)、予備領域値(RSV=0)が含まれる。
情報処理回路MNGERにより、書き込みデータWDATA4、5、6、7、8および9は、不揮発性メモリ装置の6つの物理アドレスへそれぞれ書き込まれる。この際に、情報処理回路MNGERは、メモリ制御回路RAMCを通じてランダムアクセスメモリRAMに保存されているアドレス変換テーブルLPTBLを参照し、ライトリクエストWQ4、5、6、7、8および9に対応する各種情報をそれぞれ読み出す。具体的には、アドレス変換テーブルLPTBLの論理アドレスLADの“800000”番地、“800001”番地、“800004”番地、“800005”番地、“800002”番地および“800003”番地から、それぞれ物理アドレスPADおよび有効フラグCPVLDを読み出す。
図24Aのアドレス変換テーブルLPTBLにおいて、論理アドレスLADの“800000”番地の物理アドレス値(PAD)は“2800000”、有効フラグ値(CPVLD)は1であり、論理アドレスLADの“800000”番地へのライトリクエストWQ4に伴い、既に書き込まれている物理アドレスのデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの“2800000”番地の有効フラグDVFを0に設定する(図24Aの201→図24Bの211)。同様に、図24Aの論理アドレスLADの“800001”番地の物理アドレス値(PAD)は“2800001”、有効フラグ値(CPVLD)は1であり、ライトリクエストWQ5に伴い、既に書き込まれている物理アドレスのデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの“2800001”番地の有効フラグDVFを0に設定する(図24Aの202→図24Bの212)。
一方、図24Aのアドレス変換テーブルLPTBLにおいて、ライトリクエストWQ6に伴う論理アドレスLADの“800004”番地の物理アドレス値(PAD)は0、有効フラグ値(CPVLD)は0であり、論理アドレスLAD“800004”番地には、物理アドレスPADが割り当てられていないことが分かる。同様に、ライトリクエストWQ7に伴う論理アドレスLADの“800005”番地の物理アドレス値(PAD)は0、有効フラグ値(CPVLD)は0であり、論理アドレスLADの“800005”番地には、物理アドレスPADが割り当てられていないことが分かる。
また、図24Aのアドレス変換テーブルLPTBLにおいて、論理アドレスLADの“800002”番地の物理アドレス値(PAD)は“2800002”、有効フラグ値(CPVLD)は1であり、論理アドレスLADの“800002”番地へのライトリクエストWQ8に伴い既に書き込まれている物理アドレスを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの“2800002”番地の有効フラグ値(DVF)を0に設定する(図24Aの203→図24Bの213)。同様に、図24Aにおける論理アドレスLADの“800003”番地の物理アドレス値(PAD)は“2800003”、有効フラグ値(CPVLD)は1であり、ライトリクエストWQ9に伴い既に書き込まれている物理アドレスのデータを無効にする必要がある。そこで、情報処理回路MNGERは、物理アドレスPADの“2800003”番地の有効フラグ値(DVF)を0に設定する(図24Aの204→図24Bの214)。
次に、情報処理回路MNGERは、ライトリクエストWQ4〜WQ9に応じて書き込み物理アドレステーブルNXPADTBL2のエントリー番号ENUMの20番から25番までに格納されている書き込み物理アドレスNXPADを読み出し、それらを各論理アドレスに割り当てる。ここでは、当該書き込み物理アドレス値(NXPAD)が、それぞれ“2800004”、“2800005”、“2800006”、“2800007”、“2800008”および“2800009”であるものとする。そして、それらが論理アドレスLADの“800000”番地、“800001”番地、“800004”番地、“800005”番地、“800002”番地および“800003”番地にそれぞれ割り当てられる。
続いて、情報処理回路MNGERは、これらの物理アドレスの割り当てに従って、調停回路ARBおよびメモリ制御回路NVCT10〜NVCT17を通じて不揮発性メモリ装置NVM10〜NVM17に書き込みを行う。具体的には、不揮発性メモリ装置NVMの物理アドレスPADの“2800004”番地へはライトリクエストWQ4に対応する書き込みデータWDATA4、論理アドレス値(LAD=“800000”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。物理アドレスPADの“2800005”番地へはライトリクエストWQ5に対応する書き込みデータWDATA5、論理アドレス値(LAD=“800001”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。
同様にして、物理アドレスPADの“2800006”番地へは、ライトリクエストWQ6に対応する書き込みデータWDATA6、論理アドレス値(LAD=“800004”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。物理アドレスPADの“2800007”番地へは、ライトリクエストWQ7に対応する書き込みデータWDATA7、論理アドレス値(LAD=“800005”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。物理アドレスPADの“2800008”番地へは、ライトリクエストWQ8に対応する書き込みデータWDATA8、論理アドレス値(LAD=“800002”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。物理アドレスPADの“2800009”番地へは、ライトリクエストWQ9に対応する書き込みデータWDATA9、論理アドレス値(LAD=“800003”)が書き込まれ、データ有効フラグDVFに1が書き込まれる。そして、最後に、情報処理回路MNGERは、メモリ制御回路RAMCを通じ、ランダムアクセスメモリRAMに保存されているアドレス変換テーブルLPTBLを図24Bに示されるような状態に更新する。
《メモリモジュール(半導体装置)の読み出し動作》
図25は、図1の情報処理装置CPU_CPからメモリモジュールNVMMD0へリードリクエスト(RQ)が入力された際に、メモリモジュールNVMMD0が行うデータ読み出し動作の一例を示すフロー図である。まず、情報処理装置CPU_CPから論理アドレス値(例えばLAD=0)、データ読み出し命令(RD)、セクタカウント値(SEC=1)が含まれるリードリクエスト(RQ)が制御回路MDLCT0へ入力される。これを受けて、インターフェース回路HOST_IFは、リードリクエスト(RQ)に埋め込まれているクロック情報を取り出し、シリアルデータ化されたリードリクエスト(RQ)をパラレルデータへ変換し、バッファBUF0および情報処理回路MNGERへ転送する(Step61)。
次に、情報処理回路MNGERは、論理アドレス値(LAD=0)、データ読み出し命令(RD)およびセクタカウント値(SEC=1)を解読し、ランダムアクセスメモリRAMへ保存されているアドレス変換テーブルLPTBLを参照して、各種情報を読み出す。具体的には、アドレス変換テーブルLPTBLにおいて、論理アドレスLADの0番地に格納されている物理アドレス値PAD(例えばPAD=0)と、この物理アドレスPADに対応した有効フラグCPVLDおよびレイヤ番号LYCを読み出す(Step62)。次に、読み出した有効フラグCPVLDが1であるかどうかをチェックする(Step63)。
もし、有効フラグCPVLDが0の場合、情報処理回路MNGERは、当該論理アドレス値(LAD=0)には物理アドレスPADが割り当てられていないことを認識する。この場合、不揮発性メモリ装置NVMからデータを読み出すことができないため、情報処理回路MNGERは、エラーが発生したことをインターフェース回路HOST_IFを通じて情報処理装置CPU_CPへ伝える(Step65)。
もし、有効フラグCPVLD値が1の場合、情報処理回路MNGERは、当該論理アドレス値(LAD=0)には物理アドレス値PAD(PAD=0)が対応していると判断する。論理アドレス値(LAD=0)に対応している物理アドレス値PAD(PAD=0)が、第1物理アドレス領域PRNG1内のアドレスであれば、物理アドレス値PAD(PAD=0)と、物理アドレス値CPAD(CPAD=0)と、レイヤ番号LYCは、図22Aに示した不揮発性メモリ装置NVMのチップアドレスCHIPAと、バンクアドレスBKと、ロウアドレスROWと、カラムアドレスCOLへ変換される。一方、論理アドレス値(LAD=0)に対応している物理アドレス値(PAD=0)が、第2物理アドレス領域PRNG2内のアドレスであれば、物理アドレス値PAD(PAD=0)と、物理アドレス値CPAD(CPAD=0)は、図22Bに示した不揮発性メモリ装置NVMのチップアドレスCHIPAと、バンクアドレスBKと、ロウアドレスROWと、カラムアドレスCOLへ変換される。
さらに、物理アドレス値PAD(PAD=0)と、物理アドレス値CPADと、レイヤ番号LYCとから変換された不揮発性メモリ装置NVMのチップアドレスCHIPAと、バンクアドレスBKと、ロウアドレスROWおよびカラムアドレスCOLは、調停回路ARBおよびメモリ制御回路NVCTを通じて不揮発性メモリ装置NVMへ入力される。そして、図22Cに示した動作にしたがって、不揮発性メモリ装置NVMに格納されたデータ(RDATA0)が読み出される。データ(RDATA0)には、メインデータDArea0と冗長データRArea0が含まれ、さらに冗長データRArea0には、ライトフラグWTFLGおよびECCコードECC0が含まれる(Step64)。
次に、情報処理回路MNGERは、不揮発性メモリNVMへ格納されているSSDコンフィグレーション情報(SDCFG)内の論理アドレス領域LRNGと、この論理アドレス領域LRNGに対応したライト方法選択情報WRTFLG(図13)を読み出す。そして、論理アドレス値(LAD=0)がどの論理アドレス領域LRNGに属するかを調べ、これに対応したライト方法選択情報WRTFLGを求める。さらに、ライト方法選択情報WRTFLGの値が1かどうかをチェックする(Step66)。
ライト方法選択情報WRTFLGの値が1であれば、情報処理回路MNGERは、メインデータDArea0およびECCコードECC0の各ビットを反転させ、メインデータ(/DArea0)およびECCコード(/ECC0)を生成する(Step67)。その後、情報処理回路MNGERは、ECCコード(/ECC0)を利用して、メインデータ(/DArea0)にエラーがあるかをチェックし、エラーがあれば訂正を行い(Step68)、インターフェース回路HOST_IFを通じて情報処理装置CPU_CPへ転送する(Step69)。
一方、ライト方法選択情報WRTFLG値が1でなければ、情報処理回路MNGERは、ECCコードECC0を利用して、メインデータDArea0にエラーがあるかをチェックし、エラーがあれば訂正を行い(Step68)、インターフェース回路HOST_IFを通じて情報処理装置CPU_CPへ転送する(Step69)。
《ライト方法選択情報に応じたメモリモジュール(半導体装置)の書き込み動作》
図26は、図13Bに示されるSSDコンフィグレーション情報(SDCGF)を例として、ライト方法選択情報(WRTFLG)に応じたメモリモジュールの書き込み動作の一例を示すフロー図である。図13Bの例では、論理アドレス領域LRNG1のライト方法選択情報WRTFLGは0へ設定され、論理アドレス領域LRNG2のライト方法選択情報WRTFLGは1に設定されている。特に限定しないが、セット状態のメモリセルは“1”のビットデータを表し、リセット状態のメモリセルは“0”のビットデータを表す。
まず、情報処理装置CPU_CPから論理アドレス値(LAD)、データ書き込み命令(WRT)、セクタカウント値(SEC=1)、512バイトの書き込みデータ(DATA0)が含まれるライトリクエスト(WQ01)がインターフェース回路HOST_IFを通じて情報処理回路MNGERへ入力される(Step71)。情報処理回路MNGERは、ランダムアクセスメモリRAMへ格納されたアドレスマップ範囲(ADMAP)を利用し、論理アドレス値(LAD)が、論理アドレス領域LRNG1内の論理アドレス値であるか、あるいは、論理アドレス領域LRNG2内の論理アドレス値であるかを判断し、それぞれの論理アドレス領域LRNG1およびLRNG2のライト方法選択情報WRTFLGをチェックする(Step72)。
情報処理回路MNGERは、ライトリクエスト(WQ01)に含まれる論理アドレス値(LAD)が論理アドレス領域LRNG1内の論理アドレスLADであれば、論理アドレス領域LRNG1のライト方法選択情報WRTFLGが0に設定されているので、Step76に進んで不揮発性メモリ装置に対する書き込みを行う。すなわち、書き込みデータ(DATA0)および書き込みデータ(DATA0)に対応する冗長データ(RArea0)は、図16の第1物理アドレス領域PRNG1内の「●」で示される複数のチェインメモリアレイ内のうち、メモリセル選択線で選択された1個のメモリセルへ書き込まれる(Step76)。
一方、情報処理回路MNGERは、ライトリクエスト(WQ01)に含まれる論理アドレス値(LAD)が論理アドレス領域LRNG2内の論理アドレスLADであれば、論理アドレス領域LRNG2のライト方法選択情報WRTFLGが1へ設定されているので、Step73からStep76を実行する。すなわち、情報処理回路MNGERは、Step73で、512バイト(512x8ビット)の書き込みデータ(DATA0)の中で、“0”のビットデータおよび“1”のビットデータを数え(Step73)、“0”のビットデータの数と“1”のビットデータの数を比較する(Step74)。次に、情報処理回路MNGERは、“0”のビットデータの数が“1”のビットデータの数より大きい場合は、書き込みデータ(DATA0)の各ビットを反転させ(Step75)、Step76に進んで当該反転データを不揮発性メモリ装置に書き込む。すなわち、図16の第2物理アドレス領域PRNG2内の「◎」で示される複数のチェインメモリアレイ内の各メモリセルに対して書き込みを行う(Step76)。
このように、書き込みデータ(DATA0)の各ビットを反転させることで、“0”のビットデータの数は、512バイト(512x8ビット)の内、常に2048ビット(=4096/2)以下となる。これにより、書き込みデータの中の“1”のビットデータの数が常に1/2以下となり、書き込むデータ量を半減できる。すなわち、前述したように、メモリセルへ512バイト(512x8ビット)データを書き込む際には、一旦、512バイト(512x8ビット)のメモリセルがセット状態にされ(“1”ビットデータに消去され)、その後、必要なメモリセルがリセット状態へ書き換えられる(“0”ビットデータに書き込まれる)。この際に、図16の第2物理アドレス領域PRNG2内の「◎」で示される複数のチェインメモリアレイ内において、“0”のビットデータを半数のメモリセルへ書き込むだけで良いので、高速且つ低電力のSSDを実現できる。
また、図26のStep72において、仮に入力された論理アドレス値(LAD)が含まれる論理アドレス領域を対象として、ライト方法選択情報WRTFLGが2に設定されている場合、情報処理回路MNGERは、Step77〜Step79を実行する。すなわち、情報処理回路MNGERは、当該論理アドレス値(LAD)に対応する不揮発性メモリ装置の物理アドレスから一旦データを読み出し(Step77)、当該読み出されたデータと入力された書き込みデータ(DATA0)とを各ビット毎に比較する(Step78)。そして、この比較結果により、データが異なるビットのみを対象として不揮発性メモリ装置に対する書き込みを行う(Step79)。
なお、上記の書き込み方法では、図13Bを例として、論理アドレス領域LRNG1のライト方法選択情報WRTFLGは0に設定され、論理アドレス領域LRNG2のライト方法選択情報WRTFLGは1に設定されている場合について説明した。ただし、勿論、この場合に限らず、論理アドレス領域LRNG1のライト方法選択情報WRTFLGが1に設定された場合でも、同様の効果があるのはいうまでもない。
《ウエアレベリング方法[2]》
図27は、図21の場合に加えて図2の情報処理回路MNGERが実行するウエアレベリング方法の一例を示すフロー図である。図11に示したように、情報処理回路MNGERは、書き込み物理アドレステーブルNXPADTBLの中で、エントリー番号0から(N/2−1)までのN/2個分を書き込み物理アドレステーブルNXPADTBL1とし、エントリー番号(N/2)からNまでの残りのN/2個分を書き込み物理アドレステーブルNXPADTBL2として管理する。図21で説明したように、当該書き込み物理アドレステーブルNXPADTBLを図10Aの物理セグメントテーブルPSEGTBL1を用いて更新することによるダイナミックウエアレベリングは、無効状態の物理アドレスを対象とした動的な消去回数の平準化方法である。
しかしながら、ダイナミックウエアレベリングは、無効状態の物理アドレスが対象となるため、全体的に、無効状態の物理アドレスの消去回数と有効状態の物理アドレスの消去回数との差が段々と拡大していく場合がある。例えば、ある論理アドレス(それに対応する物理アドレス)に書き込みが行われたのち、当該物理アドレスが有効状態となり、その後、長期間に渡って当該論理アドレス(それに対応する物理アドレス)に対して書き込み命令が生じなかった場合、当該物理アドレスは、長期間に渡ってウエアレベリングの対象から外されることになる。そこで、図2の情報処理回路MNGERは、図27に示すように、無効状態の物理アドレスの消去回数と有効状態の物理アドレスの消去回数のバラツキを抑える静的な消去回数の平準化方法(スタティックウエアレベリング)を実行する。
情報処理回路MNGERは、図15のアドレス範囲マップ(ADMAP)における第1物理アドレス領域PRNG1および第2物理アドレス領域PRNG2の範囲内のそれぞれで、図27に示す静的な消去回数の平準化方法を行う。まず、情報処理回路MNGERは無効物理アドレスに関する物理セグメントテーブルPSEGTBL1(図10A)内で最大消去回数MXERCの中の最大値MXERCmxと、有効物理アドレスに関する物理セグメントテーブルPSEGTBL2(図10B)内で最小消去回数MNERCの中の最小値MNERCmnを検出する。そして、この最大値MXERCmxと最小値MNERCmnの差DIFF(=MXERCmx−MNERCmn)を求める(Step51)。
次のStep52で、情報処理回路MNGERは、無効状態の物理アドレスの消去回数と、有効状態の物理アドレスの消去回数の差の閾値DERCthを設定し、この閾値DERCthと消去回数差DIFFを比較する。消去回数差DIFFが閾値DERCthより大きい場合、情報処理回路MNGERは、消去回数の平準化行うためStep53を行い、小さい場合はStep58を行う。Step58において、情報処理回路MNGERは、物理セグメントテーブルPSEGTBL1又はPSEGTBL2が更新されたか否かを判定し、更新された場合はStep51にて再度、消去回数差DIFFを求め、いずれの物理セグメントテーブルも更新されていない場合は、再度Step58を行う。
Step53で、情報処理回路MNGERは、有効物理アドレスに関する物理セグメントテーブルPSEGTBL2内の最小消去回数MNERCの中で最も小さな消去回数から順にm個分の物理アドレスSPAD1〜SPADmを選択する。Step54では、情報処理回路MNGERは、無効物理アドレスに関する物理セグメントテーブルPSEGTBL1内の最大消去回数MXERCの中で最も大きな消去回数から順にm個分の物理アドレスDPAD1〜DPADmを候補として選択する。
Step55では、情報処理回路MNGERは、候補とされた物理アドレスDPAD1〜DPADmが、書き込み物理アドレステーブルNXPADTBLへ登録されているかを調べる。もし、候補とされた物理アドレスDPAD1〜DPADmのいずれかが、書き込み物理アドレステーブルNXPADTBLに登録されていれば、Step59においてこの物理アドレスDPAD1〜DPADmのいずれを候補から除外し、再度Step54で候補の補充を行う。もし、選択された物理アドレスDPAD1〜DPADmが、書き込み物理アドレステーブルNXPADTBLへ登録されていなければStep56を行う。
Step56では、情報処理回路MNGERは、不揮発性メモリ装置内における物理アドレスSPAD1〜SPADmのデータを物理アドレスDPAD1〜DPADmへ移動させる。Step57では、情報処理回路MNGERは、物理アドレスSPAD1〜SPADmのデータを物理アドレスDPAD1〜DPADmへ移動させたことにより、更新する必要のある全テーブルを更新する。
このようなスタティックウエアレベリングを図21に示したダイナミックウエアレベリングと併用することで、不揮発性メモリ装置NVM10〜NVM17全体で消去回数の平準化を図ることが可能となる。なお、この例では、m個分の物理アドレスのデータを移動した例を示したが、mの値は、目標性能に応じて情報処理回路MNGERによってプログラム可能であり、書き込み物理アドレステーブルNXPADTBLの登録数Nとすると例えば1≦m≦Nに設定すると良い。
《パイプライン書き込み動作》
図28は、図1の情報処理装置CPU_CPからメモリモジュールNVMMD0へ連続してライトリクエストが発生した際に、メモリモジュールNVMMD0内部でパイプライン的に実行されるデータ書き込み動作の一例を示す図である。特に限定しないが、図2の制御回路MDLCT0内のバッファBUF0〜BUF3には、それぞれN×512バイトの書き込みデータが格納できる。
図28に示すバッファ転送動作WTBUF0、1、2および3では、ライトリクエストWQがバッファBUF0、1、2および3へそれぞれ転送される。事前準備動作PREOP0、1、2および3では、バッファBUF0、1、2および3に転送された書き込みデータをそれぞれ不揮発性メモリ装置NVMへ書き込むための事前準備動作が行われる。データ書き込み動作WTNVM0、1、2および3では、バッファBUF0、1、2および3に格納された書き込みデータが、それぞれ不揮発性メモリ装置NVMへ書き込まれる。
バッファ転送動作WTBUF0、1、2および3と、事前準備動作PREOP0、1、2および3と、データ書き込み動作WTNVM0、1、2および3は、図28に示すように、制御回路MDLCT0によるパイプライン動作によって実行される。これにより、書き込み速度を向上させることが可能となる。具体的には、以下のようなパイプライン動作が行われる。
時間T0からT2の期間に発生したN回のライトリクエスト(WQ[1]〜WQ[N])はインターフェース回路HOST_IFにおいて、先ず、バッファBUF0へ転送される(WTBUF0)。バッファBUF0へ書き込みデータが格納できなくなると、時間T2からT4の期間に発生したN回のライトリクエスト(WQ[N+1]〜WQ[2N])はバッファBUF1へ転送される(WTBUF1)。バッファBUF1へ書き込みデータが格納できなくなると、時間T4からT6の期間に発生したN回のライトリクエスト(WQ[2N+1]〜WQ[3N])はバッファBUF2へ転送される(WTBUF2)。バッファBUF2へ書き込みデータが格納できなくなると、時間T6からT8の期間に発生したN回のライトリクエスト(WQ[3N+1]〜WQ[4N])はバッファBUF3へ転送される(WTBUF3)。
情報処理回路MNGERは、時間T1からT3の期間において、バッファBUF0に格納されている書き込みデータを不揮発性メモリ装置NVMへ書き込むための事前準備(PREOP0)を行う。情報処理回路MNGERが行う事前準備動作PREOP0の主な動作内容を以下に示す。なお、他の事前準備動作PREOP1、2、3も当該事前準備動作PREOP0と同様の動作となる。
(1)ライトリクエスト(WQ[1]〜WQ[N])へ含まれる論理アドレスLAD値を利用し、アドレス変換テーブルLPTBLから物理アドレスPADを読み出し、必要に応じてこの物理アドレスPADの有効フラグ(CPVLD,PVLD,DVF)値を0にし、データを無効にする。
(2)アドレス変換テーブルLPTBLを更新する。
(3)書き込み物理アドレステーブルNXPADTBLに格納されている書き込み物理アドレスNXPADを読み出し、この書き込み物理アドレスNXPADへライトリクエスト(WQ[1]〜WQ[N])に含まれる論理アドレスLADを割り当てる。
(4)物理セグメントテーブルPSEGTBLを更新する。
(5)物理アドレステーブルPADTBLを更新する。
(6)次の書き込みに備えて、書き込み物理アドレステーブルNXPADTBLを更新する。
次に、情報処理回路MNGERは、時間T3からT5の期間において、バッファBUF0に格納されている書き込みデータを不揮発性メモリ装置NVMへ書き込む(WTNVM0)。この際に、データが書き込まれた不揮発性メモリ装置NVMの物理アドレスは、上記(3)での書き込み物理アドレスNXPAD値と等しい。他のデータ書き込み動作WTNVM1、2、3もデータ書き込み動作WTNVM0と同様の動作となる。
《まとめ》
これまでの説明を反映して、本実施の形態によって得られる代表的な構成を纏めると以下のようになる。
(1)本実施の形態による半導体装置は、複数のメモリセルを含む不揮発性メモリ部と、当該不揮発性メモリ部へのアクセスを制御する制御回路とを有する。当該不揮発性メモリ部は、複数の第1信号線と、複数の第1信号線と交差する複数の第2信号線との交点に配置される複数のメモリセル群を有し、複数のメモリセル群は第1から第Nのメモリセルを有し、第1から第Nのメモリセルは、第1から第Nの第3信号線に接続される。ここで、制御回路は、1回のデータ書き込み動作の際、第1から第Nのメモリセルの中でM個(M<N)のメモリセルへデータを書き込む。
(2)前記(1)の構成において、制御回路は、1回のデータ読み出し動作の際、第1から第Nのメモリセルの中でM個(M<N)のメモリセルからデータを読み出す。
(3)前記(1)の構成において、制御回路は、Mの値をプログラム可能である。
(4)前記(1)の構成において、第1から第Nのメモリセルは直列に接続されている。
(5)前記(4)の構成において、第1から第Nのメモリセルの各々は、選択トランジスタと抵抗性記憶素子とを有し、選択トランジスタと抵抗性記憶素子とは並列に接続されている。
(6)前記(1)の構成において、制御回路は、不揮発性メモリ部の第1のアドレス毎に、第1番から第N番までの番号の中で、いずれかの番号を持つメモリセル選択番号を保持し、データ書き込みの際は、第1から第Nのメモリセルの中で、メモリセル選択番号にて指定されたメモリセルが選択され、当該選択されたメモリセルへデータを書き込む。
(7)前記(1)の構成において、制御回路は、不揮発性メモリ部の第1のアドレス毎に、第1番から第N番までの番号の中で、いずれかの番号を持つメモリセル選択番号を保持し、データ読み出しの際は、第1から第Nのメモリセルの中で、メモリセル選択番号にて指定されたメモリセルが選択され、当該選択されたメモリセルからデータを読み出す。
(8)前記(6)の構成において、不揮発性メモリ部の第1のアドレスが保持するメモリセル選択番号は、制御回路の外部から与えられる第2のアドレスに対応して同一となる第1のアドレスが割り当てられるたびに、制御回路によって、第1番から第N番まで順に変更される。
(9)また、本実施の形態による半導体装置は、複数のメモリセルを含む不揮発性メモリ部と、当該不揮発性メモリ部へのアクセスを制御する制御回路とを有する。不揮発性メモリ部は、複数のワード線と、複数のワード線と交差する複数のビット線との交点に配置される複数のメモリセル群を有する。複数のメモリセル群の各々は、直列接続された第1から第Nのメモリセルを有し、第1から第Nのメモリセルの各々は、選択トランジスタと抵抗性記憶素子とを有し、選択トランジスタと抵抗性記憶素子とは並列に接続されている。第1から第Nのメモリセルにおける選択トランジスタのゲート電極は第1から第Nゲート線に接続される。ここで、制御回路は、1回のデータ書き込み動作の際、第1から第Nのメモリセルの全メモリセルへデータを書き込む。
(10)前記(9)の構成において、制御回路は、1回のデータ読み出し動作の際、第1から第Nのメモリセルの全メモリセルからデータを読み出す。
(11)前記(1)または(9)の構成において、制御回路は、第1から第Nのメモリセルの中で、データを書き込まれたメモリセルのデータを読み出し、当該データが正しく書き込まれたかを検証する。
(12)また、本実施の形態による半導体装置は、複数のメモリセルを含む不揮発性メモリ部と、当該不揮発性メモリ部へのアクセスを制御する制御回路とを有する。不揮発性メモリ部は、複数のワード線と、複数のワード線と交差する複数のビット線との交点に配置される複数のメモリセル群を有し、複数のメモリセル群の各々は、直列接続された第1から第Nのメモリセルを有する。第1から第Nのメモリセルの各々は、選択トランジスタと抵抗性記憶素子とを有し、選択トランジスタと抵抗性記憶素子とは並列に接続され、第1から第Nのメモリセルにおける選択トランジスタのゲート電極は第1から第Nゲート線に接続される。ここで、制御回路は、不揮発性メモリ部に対して第1のアドレス領域と第2のアドレス領域を設定できる。第1のアドレス領域は、1回のデータ書き込み動作の際、第1から第Nのメモリセルの中でM個(M<N)のメモリセルへデータを書き込むことができる領域であり、第2のアドレス領域は、1回のデータ書き込み動作の際、第1から第Nのメモリセルの全メモリセルへデータを書き込むことができる領域である。
(13)前記(12)の構成において、制御回路は、第1のアドレス領域と、第2のアドレス領域の大きさをプログラム可能である。
(14)前記(1)の構成において、制御回路は、1回のデータ書き込み動作の際、第1から第Nのメモリセルの全メモリセルへ“1”のデータを書き込んだ後、第1から第Nのメモリセルの中のM個(M<N)のメモリセルの内“0”のデータのみを書き込む。
(15)前記(12)の構成において、“1”のデータは、抵抗性記憶素子を低抵抗に設定し、“0”のデータは抵抗性記憶素子を高抵抗に設定する。
(16)前記(1)の構成において、抵抗性記憶素子はカルコゲナイド材料で形成される。
(17)本実施の形態による半導体装置は、複数のメモリセルを含む不揮発性メモリ部と、当該不揮発性メモリ部へのアクセスを制御する制御回路とを有する。ここで、制御回路は、不揮発性メモリ部の第1のアドレスに対応する第1領域情報と、当該第1領域情報に対するメモリ容量情報、書き込みメモリセル数情報、テストモード情報、最小消去データサイズ情報、最小書き込みデータサイズ情報、テスト領域情報、エラー検出訂正データサイズ情報、書き込み方法選択情報を含む第1のコンフィグレーション情報とを記憶する記憶領域を有する。
(18)前記(17)の構成において、第1のコンフィグレーション情報はプログラム可能である。
(19)前記(17)の構成において、制御回路は、第1のコンフィグレーション情報の一部を利用し、不揮発性メモリ部の第1のアドレスと制御回路の外部から与えられる第3のアドレスとの対応付けを行うアドレスマップを決定する。
(20)前記(17)の構成において、制御回路は、電源が投入された直後に、アドレスマップを決定する。
(21)前記(17)の構成において、制御回路は、不揮発性メモリ部の第2のアドレスに対応する第2領域情報と、当該第2領域情報に対するメモリ容量情報、書き込みメモリセル数情報、テストモード情報、最小消去データサイズ情報、最小書き込みデータサイズ情報、テスト領域情報、エラー検出訂正データサイズ情報、書き込み方法選択情報を含む第2のコンフィグレーション情報とを記憶する記憶領域を有する。
(22)前記(21)の構成において、制御回路は、第1及び第2のコンフィグレーション情報の一部を利用し、第1領域情報と第2領域情報のそれぞれに対応する不揮発性メモリ装置の複数のメモリセルに対して書き込み許可領域を決定する。
また、以上に説明した実施の形態によって得られる主な効果は以下の通りである。
第1に、図17等で述べたように、相変化メモリのチェインメモリアレイを構成するn個のメモリセルの内のj個(j<n)のメモリセルへデータが書き込まれる第1領域を設け、入力された1個の論理アドレスに対して不揮発性メモリ装置の物理アドレスをn/j個分割り当てることで、高信頼で長寿命なメモリモジュール(半導体装置)を実現できる。
第2に、図18等で述べたように、相変化メモリのチェインメモリアレイを構成するn個のメモリセルの全部へデータが書き込まれる第2領域を設け、入力された1個の論理アドレスに対して不揮発性メモリ装置の物理アドレスを1個割り当てることで、低コストかつ大容量なメモリモジュール(半導体装置)を実現できる。
第3に、図19等で述べたように、前述した第1領域のチェインメモリアレイ上のn個のメモリセルの中で、データが書き込まれるメモリセルの数を可変に設定できるように構成することで、第1領域と第2領域の容量を可変に設定できるため、不揮発性メモリ装置を利用する情報処理システムの要求仕様に柔軟に対応できる。
第4に、図13A、図13Bおよび図13C等で述べたように、SDDコンフィグレーション情報(SDCFG)はプログラム可能なため、情報処理システムへの要求仕様に応じて、高信頼で長寿命なシステムを柔軟に構築できる。
第5に、図26等で述べたように、ライト方法選択情報等を用いてデータを圧縮することで、書き込みデータサイズを削減できるため、書き込み速度の向上が図れる。
第6に、図28等で述べたように、ライトリクエストのバッファへの格納と、書き込み事前準備と、相変化メモリへの書き込み動作をパイプライン的に処理することで、高性能な情報処理システムを実現できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、ここでは、主に相変化メモリを代表に説明を行ったが、ReRAM(Resistive RAM)等を含めて抵抗変化型のメモリであれば、同様に適用して同様の効果が得られる。また、前述した第1領域(第1動作モード)と第2領域(第2動作モード)を設けることに伴う各種効果は、抵抗変化型のメモリに限らず、例えばNAND型フラッシュメモリ等を用いた場合であっても、ある程度得ることが可能である。
ADCMDIF アドレス・コマンドインターフェース回路
ARB 調停回路
ARY メモリアレイ
BK メモリバンク
BL ビット線
BSW ビット線選択回路
BUF バッファ
CADLT カラムアドレスラッチ
CH チェイン制御線
CHDEC チェインデコーダ
CHLT チェイン選択アドレスラッチ
CL 相変化メモリセル
COLDEC カラムデコーダ
CPAD 物理アドレス
CPU_CP 情報処理装置(プロセッサ)
CPVLD 有効フラグ
CTLOG 制御回路
CY チェインメモリアレイ
D ダイオード
DATCTL データ制御回路
DBUF データバッファ
DSW データ選択回路
DT データ線
ENUM エントリー番号
HDH_IF インターフェース信号
HOST_IF インターフェース回路
IOBUF IOバッファ
LAD 論理アドレス
LRNG 論理アドレス領域
LPTBL アドレス変換テーブル
LY メモリセル選択線
LYC レイヤ番号
LYM レイヤモード番号
LYN レイヤ情報
MAPREG マップレジスタ
MDLCT 制御回路
MNERC 最小消去回数
MNGER 情報処理回路
MNIPAD 無効物理オフセットアドレス
MNVPAD 有効物理オフセットアドレス
MXERC 最大消去回数
MXIPAD 無効物理オフセットアドレス
MXVPAD 有効物理オフセットアドレス
NVCT メモリ制御回路
NVM 不揮発性メモリ装置
NVMMD メモリモジュール
NVREG イレースサイズ指定レジスタ
NXLYC レイヤ番号
NXLYM レイヤモード番号
NXPAD 書き込み物理アドレス
NXPADTBL 書込み物理アドレステーブル
NXPERC 消去回数
NXPTBL 書込み物理アドレステーブル
NXPVLD 有効フラグ
PSEGTBL 物理セグメントテーブル
PAD 物理アドレス
PADTBL 物理アドレステーブル
PERC 消去回数
PPAD 物理オフセットアドレス
PRNG 物理アドレス領域
PVLD 有効フラグ
R 記憶素子
RADLT ロウアドレスラッチ
RAM ランダムアクセスメモリ
RAMC メモリ制御回路
REF_CLK 基準クロック信号
REG レジスタ
ROWDEC ロウデコーダ
RSTSIG リセット信号
SA センスアンプ
SGAD 物理セグメントアドレス
SL チェインメモリアレイ選択線
STREG ステータスレジスタ
SWB 読み書き制御ブロック
SYMD クロック生成回路
Tch チェイン選択トランジスタ
Tcl メモリセル選択トランジスタ
THMO 温度センサ
TNIPA 無効物理アドレス総数
TNVPA 有効物理アドレス総数
WDR ライトドライバ
WL ワード線
WV 書込みデータ検証回路

Claims (14)

  1. 複数のメモリセルを含む不揮発性メモリ部と、
    外部から入力される論理アドレスに対して物理アドレスを割り当て、前記不揮発性メモリ部の前記物理アドレスにアクセスを行う制御回路とを有し、
    前記不揮発性メモリ部は、
    複数の第1信号線と、
    前記複数の第1信号線と交差する複数の第2信号線と、
    前記複数の第1信号線と前記複数の第2信号線の交点に配置される複数のメモリセル群とを有し、
    前記複数のメモリセル群のそれぞれは、
    第1〜第N(Nは2以上の整数)メモリセルと、
    前記第1〜第Nメモリセルをそれぞれ選択する第1〜第Nメモリセル選択線とを有し、
    前記制御回路は、第1物理アドレスへの第1書き込み命令に応じて、前記第1〜第Nメモリセルの中のM個(M<N)となる第1部分にデータを書き込み、前記第1書き込み命令の後に生じる前記第1物理アドレスへの第2書き込み命令に応じて、前記第1〜第Nメモリセルの中の前記第1部分を除くM個となる第2部分にデータを書き込む半導体装置。
  2. 請求項1記載の半導体装置において、
    前記制御回路は、第1動作モードと第2動作モードを備え、前記第1動作モード時には、前記第1書き込み命令に応じた前記第1部分へのデータの書き込みと、前記第2書き込み命令に応じた前記第2部分へのデータの書き込みとを行い、前記第2動作モード時には、第2物理アドレスへの第3書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個にデータを書き込み、前記第3書き込み命令の後に生じる前記第2物理アドレスへの第4書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個にデータを書き込む半導体装置。
  3. 請求項1記載の半導体装置において、
    前記制御回路は、前記物理アドレス毎に前記第1〜第Nメモリセル選択線の内のどれを選択するかを保持する第1記憶部を有する半導体装置。
  4. 請求項1記載の半導体装置において、
    前記第1〜第Nメモリセルは、半導体基板の垂直方向へ順に積層搭載され、順に直列に接続される半導体装置。
  5. 請求項4記載の半導体装置において、
    前記制御回路は、前記第1書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個に対して、一旦、第1論理レベルを一括して書き込んだのち、前記第1部分内の必要な箇所に前記第1論理レベルと異なる第2論理レベルを書き込み、前記第2書き込み命令に応じて、前記第2部分内の必要な箇所に前記第2論理レベルを書き込む半導体装置。
  6. 請求項4記載の半導体装置において、
    前記第1〜第Nメモリセルのそれぞれは、選択トランジスタと抵抗性記憶素子とを有し、
    前記選択トランジスタと前記抵抗性記憶素子は、並列に接続される半導体装置。
  7. 請求項1記載の半導体装置において、
    前記Mの値は、任意に設定可能である半導体装置。
  8. 複数のメモリセルを含む不揮発性メモリ部と、
    外部から入力される論理アドレスに対して物理アドレスを割り当て、前記不揮発性メモリ部の前記物理アドレスにアクセスを行う制御回路とを有し、
    前記不揮発性メモリ部は、
    複数のワード線と、
    前記複数のワード線と交差する複数のビット線と、
    前記複数のワード線と前記複数のビット線の交点に配置される複数のメモリセル群とを有し、
    前記複数のメモリセル群のそれぞれは、
    直列に接続される第1〜第Nメモリセルと、
    前記第1〜第Nメモリセルをそれぞれ選択する第1〜第Nメモリセル選択線とを有し、
    前記第1〜第Nメモリセルのそれぞれは、選択トランジスタと抵抗性記憶素子とを有し、
    前記選択トランジスタと前記抵抗性記憶素子は並列に接続されており、
    前記第1〜第Nメモリセルにおける前記選択トランジスタのゲート電極は、それぞれ第1〜第Nメモリセル選択線に接続され、
    前記制御回路は、前記不揮発性メモリ部に対して第1アドレス領域と第2アドレス領域とを設定でき、
    前記制御回路は、前記第1アドレス領域では、第1物理アドレスへの第1書き込み命令に応じて、前記第1〜第Nメモリセルの中のM個(M<N)となる第1部分にデータを書き込み、前記第1書き込み命令の後に生じる前記第1物理アドレスへの第2書き込み命令に応じて、前記第1〜第Nメモリセルの中の前記第1部分を除くM個となる第2部分にデータを書き込み、
    前記制御回路は、前記第2アドレス領域では、第2物理アドレスへの第3書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個にデータを書き込み、前記第3書き込み命令の後に生じる前記第2物理アドレスへの第4書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個にデータを書き込む半導体装置。
  9. 請求項8記載の半導体装置において、
    前記制御回路は、前記第1書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個に対して、一旦、第1論理レベルを一括して書き込んだのち、前記第1部分内の必要な箇所に前記第1論理レベルと異なる第2論理レベルを書き込み、前記第2書き込み命令に応じて、前記第2部分内の必要な箇所に前記第2論理レベルを書き込み、
    前記制御回路は、前記第3書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個に対して、一旦、前記第1論理レベルを一括して書き込んだのち、前記N個内の必要な箇所に前記第2論理レベルを書き込み、前記第4書き込み命令に応じて、前記第1〜第Nメモリセルの中のN個に対して、一旦、前記第1論理レベルを一括して書き込んだのち、前記N個内の必要な箇所に前記第2論理レベルを書き込む半導体装置。
  10. 請求項9記載の半導体装置において、
    前記抵抗性記憶素子は、カルコゲナイド材料で形成され、
    前記第1論理レベルは、低抵抗状態であり、
    前記第2論理レベルは、高抵抗状態である半導体装置。
  11. 請求項8記載の半導体装置において、
    前記第1アドレス領域と前記第2アドレス領域の大きさは、それぞれ任意に設定可能である半導体装置。
  12. 直列に接続されるN(Nは2以上の整数)ビットのメモリセルを持つ不揮発性メモリ部と、
    前記不揮発性メモリ部を制御する制御回路とを有し、
    前記メモリセルは、抵抗性記憶素子の抵抗値によって第1論理レベルか第2論理レベルの一方を記憶し、
    前記制御回路は、前記第Nビットのメモリセルの全てを一旦前記第1論理レベルに書き込んだのち、前記Nビットのメモリセルの中のJ番目のみを前記第2論理レベルに書き込む制御を行い、
    前記制御回路は、前記J番目の値を保持する第1記憶部を有し、前記Nビットのメモリセルに対して1個の物理アドレスと1ビットのデータを割り当て、前記物理アドレスを対象とする書き込み命令が入力される度に前記J番目の値を1〜Nの範囲で巡回させながら前記第1記憶部を更新し、前記J番目の値が前記1〜Nの範囲で1回巡回する毎に前記第Nビットのメモリセルの全てを前記第1論理レベルに書き込む制御を行う半導体装置。
  13. 請求項12記載の半導体装置において、
    前記抵抗性記憶素子は、カルコゲナイド材料で形成され、
    前記第1論理レベルは、低抵抗状態であり、
    前記第2論理レベルは、高抵抗状態である半導体装置。
  14. 請求項13記載の半導体装置において、
    前記メモリセルは、前記抵抗性記憶素子と前記抵抗性記憶素子に並列に接続される選択トランジスタとを有し、
    前記Nビットのメモリセルは、半導体基板の垂直方向へ順に積層搭載される半導体装置。
JP2014525627A 2012-07-19 2012-07-19 半導体装置 Expired - Fee Related JP5847940B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/068368 WO2014013595A1 (ja) 2012-07-19 2012-07-19 半導体装置

Publications (2)

Publication Number Publication Date
JP5847940B2 true JP5847940B2 (ja) 2016-01-27
JPWO2014013595A1 JPWO2014013595A1 (ja) 2016-06-30

Family

ID=49948449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014525627A Expired - Fee Related JP5847940B2 (ja) 2012-07-19 2012-07-19 半導体装置

Country Status (3)

Country Link
US (1) US9355719B2 (ja)
JP (1) JP5847940B2 (ja)
WO (1) WO2014013595A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5792019B2 (ja) 2011-10-03 2015-10-07 株式会社日立製作所 半導体装置
TWI555246B (zh) * 2014-11-25 2016-10-21 力晶科技股份有限公司 電阻式隨機存取記憶體結構及電阻式隨機存取記憶體的操作方法
US11217286B2 (en) 2016-06-27 2022-01-04 SK Hynix Inc. Semiconductor memory device with power down operation
KR102592359B1 (ko) 2016-06-27 2023-10-20 에스케이하이닉스 주식회사 반도체장치
US10147471B2 (en) * 2016-08-02 2018-12-04 SK Hynix Inc. Semiconductor devices and semiconductor systems
US11133042B2 (en) 2016-06-27 2021-09-28 SK Hynix Inc. Semiconductor memory system and semiconductor memory device, which can be remotely initialized
US10181346B2 (en) 2016-08-02 2019-01-15 SK Hynix Inc. Semiconductor devices and operations thereof
KR102452623B1 (ko) * 2018-02-27 2022-10-07 삼성전자주식회사 기입 레이턴시를 줄일 수 있는 저항성 메모리 장치의 동작 방법
US10983725B2 (en) * 2018-03-01 2021-04-20 Synopsys, Inc. Memory array architectures for memory queues
KR20210119678A (ko) * 2020-03-25 2021-10-06 에스케이하이닉스 주식회사 멀티 칩 패키지 및 그것의 테스트 방법
TWI830363B (zh) * 2022-05-19 2024-01-21 鈺立微電子股份有限公司 用於提供三維資訊的感測裝置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008160004A (ja) * 2006-12-26 2008-07-10 Toshiba Corp 半導体記憶装置及びその製造方法
JP2008251059A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 不揮発性半導体記憶装置およびそのデータ消去方法
WO2011074545A1 (ja) * 2009-12-17 2011-06-23 株式会社日立製作所 半導体記憶装置およびその製造方法
WO2012032730A1 (ja) * 2010-09-08 2012-03-15 株式会社日立製作所 半導体記憶装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07153285A (ja) 1993-11-29 1995-06-16 Sansei Denshi Japan Kk 不揮発性フラッシュメモリの制御方法とその装置
FR2787601A1 (fr) 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
JP4256175B2 (ja) 2003-02-04 2009-04-22 株式会社東芝 不揮発性半導体メモリ
JP2008146255A (ja) 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法
US8891298B2 (en) * 2011-07-19 2014-11-18 Greenthread, Llc Lifetime mixed level non-volatile memory system
JP2011142186A (ja) 2010-01-06 2011-07-21 Toshiba Corp 抵抗変化メモリ
WO2011114503A1 (ja) 2010-03-19 2011-09-22 株式会社 東芝 不揮発性半導体記憶装置及びその製造方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008160004A (ja) * 2006-12-26 2008-07-10 Toshiba Corp 半導体記憶装置及びその製造方法
JP2008251059A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 不揮発性半導体記憶装置およびそのデータ消去方法
WO2011074545A1 (ja) * 2009-12-17 2011-06-23 株式会社日立製作所 半導体記憶装置およびその製造方法
WO2012032730A1 (ja) * 2010-09-08 2012-03-15 株式会社日立製作所 半導体記憶装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015031365; M.KINOSHITA, et al.: 'Scalable 3-D vertical chain-cell-type phase-change memory with 4F2 poly-Si diodes' VLSI Technology(VLSIT),2012 Symposium on , 20120614, PP. 35-36, IEEE *

Also Published As

Publication number Publication date
JPWO2014013595A1 (ja) 2016-06-30
WO2014013595A1 (ja) 2014-01-23
US9355719B2 (en) 2016-05-31
US20150213889A1 (en) 2015-07-30

Similar Documents

Publication Publication Date Title
JP5847940B2 (ja) 半導体装置
CN107957958B (zh) 存储器***及其操作方法
JP5792019B2 (ja) 半導体装置
US9542344B2 (en) Datapath management in a memory controller
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
US11061769B2 (en) Storage device selectively generating parity bits according to endurance of memory cell, and method thereof
US10885992B2 (en) Memory system and operating method thereof
JP6073495B2 (ja) 半導体装置
US11243700B2 (en) Memory system for changing cell mode of memory block and operation method thereof
US11048625B2 (en) Memory system and operating method thereof
US11573891B2 (en) Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device
KR102559549B1 (ko) 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
US20190102102A1 (en) Method, system, and apparatus for improving bandwidth of storage devices
US10936484B2 (en) Memory system and operating method thereof
CN113946283B (zh) 存储器装置的分区命名空间中的部分区存储器单元处置
US11726683B2 (en) Storage system and operating method for moving data between storage devices thereof
CN112711377A (zh) 分布式存储***的存储节点及其操作方法
JP6145227B2 (ja) 半導体装置
JP5807103B2 (ja) 半導体装置
JP5620557B2 (ja) 情報処理システム
CN113689898A (zh) 存储器控制器及其操作方法

Legal Events

Date Code Title Description
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: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151125

R150 Certificate of patent or registration of utility model

Ref document number: 5847940

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees