JP5889462B2 - 半導体装置、不揮発性メモリ装置の制御方法 - Google Patents
半導体装置、不揮発性メモリ装置の制御方法 Download PDFInfo
- Publication number
- JP5889462B2 JP5889462B2 JP2015063654A JP2015063654A JP5889462B2 JP 5889462 B2 JP5889462 B2 JP 5889462B2 JP 2015063654 A JP2015063654 A JP 2015063654A JP 2015063654 A JP2015063654 A JP 2015063654A JP 5889462 B2 JP5889462 B2 JP 5889462B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- write
- control circuit
- physical address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000004065 semiconductor Substances 0.000 title claims description 28
- 238000000034 method Methods 0.000 title description 63
- 230000004044 response Effects 0.000 claims description 5
- 230000015654 memory Effects 0.000 description 172
- 230000010365 information processing Effects 0.000 description 73
- 230000008859 change Effects 0.000 description 53
- 238000012545 processing Methods 0.000 description 45
- 239000000872 buffer Substances 0.000 description 38
- 230000008569 process Effects 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 101150108487 pst2 gene Proteins 0.000 description 13
- 238000012546 transfer Methods 0.000 description 10
- 239000000463 material Substances 0.000 description 9
- 150000004770 chalcogenides Chemical class 0.000 description 8
- 238000010200 validation analysis Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 101100396286 Homo sapiens IER3 gene Proteins 0.000 description 6
- 102100036900 Radiation-inducible immediate-early gene IEX-1 Human genes 0.000 description 6
- 101100524516 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA2 gene Proteins 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 101000836906 Homo sapiens Signal-induced proliferation-associated protein 1 Proteins 0.000 description 5
- 101100033865 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) RFA1 gene Proteins 0.000 description 5
- 102100027163 Signal-induced proliferation-associated protein 1 Human genes 0.000 description 5
- AAOVKJBEBIDNHE-UHFFFAOYSA-N diazepam Chemical compound N=1CC(=O)N(C)C2=CC=C(Cl)C=C2C=1C1=CC=CC=C1 AAOVKJBEBIDNHE-UHFFFAOYSA-N 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 101100420776 Arabidopsis thaliana SYN1 gene Proteins 0.000 description 3
- VUDQSRFCCHQIIU-UHFFFAOYSA-N DIF1 Natural products CCCCCC(=O)C1=C(O)C(Cl)=C(OC)C(Cl)=C1O VUDQSRFCCHQIIU-UHFFFAOYSA-N 0.000 description 3
- 101150001108 DIF1 gene Proteins 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000012782 phase change material Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 101100261173 Arabidopsis thaliana TPS7 gene Proteins 0.000 description 2
- GLQOALGKMKUSBF-UHFFFAOYSA-N [amino(diphenyl)silyl]benzene Chemical compound C=1C=CC=CC=1[Si](C=1C=CC=CC=1)(N)C1=CC=CC=C1 GLQOALGKMKUSBF-UHFFFAOYSA-N 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000002425 crystallisation Methods 0.000 description 2
- 230000008025 crystallization Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000002844 melting Methods 0.000 description 2
- 230000008018 melting Effects 0.000 description 2
- 229910052714 tellurium Inorganic materials 0.000 description 2
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 208000000785 Invasive Pulmonary Aspergillosis Diseases 0.000 description 1
- 229910052787 antimony Inorganic materials 0.000 description 1
- WATWJIUSRGPENY-UHFFFAOYSA-N antimony atom Chemical compound [Sb] WATWJIUSRGPENY-UHFFFAOYSA-N 0.000 description 1
- 230000036506 anxiety Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000009477 glass transition Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- PORWMNRCUJJQNO-UHFFFAOYSA-N tellurium atom Chemical compound [Te] PORWMNRCUJJQNO-UHFFFAOYSA-N 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は、半導体メモリやICなどの半導体装置の技術に関し、特に、不揮発性メモリ装置と制御回路装置とを含んで成る装置(メモリモジュール)及びその情報処理システムにおける、制御回路装置による不揮発性メモリ装置の制御方法に適用して有効な技術に関する。
不揮発性メモリ装置として、例えば、NAND型フラッシュメモリ(SSDなど)、抵抗変化型不揮発性メモリ(相変化メモリやReRAMなど)、等がある。
[(1)NAND型フラッシュメモリ]
NAND型フラッシュメモリは、SSD(Solid State Drive)やメモリカードなどのストレージ装置へ利用されている。複数のNAND型フラッシュメモリとコントローラとから構成されるSSDは、サーバー機器、ラップトップPC、ネットブック(ノートPC)などへ利用されている。
NAND型フラッシュメモリは、SSD(Solid State Drive)やメモリカードなどのストレージ装置へ利用されている。複数のNAND型フラッシュメモリとコントローラとから構成されるSSDは、サーバー機器、ラップトップPC、ネットブック(ノートPC)などへ利用されている。
NAND型フラッシュメモリについては、例えば、非特許文献4などに記載されている。非特許文献4に示されるNAND型フラッシュメモリでは、消去回数の上限があり、また、データ書き込みサイズとデータ消去サイズが大きく異なる。
NAND型フラッシュメモリの制御方法については、例えば、特許文献1,2,3,4などに開示されている。
NAND型フラッシュメモリの特性を挙げると、(1)メモリ領域の消去回数の上限があること、(2)データ書き込みサイズ(「ページ」)とデータ消去サイズ(「ブロック」)とが大きく異なること、及び(3)上書き不可能であること(一旦読み出して消去した後にまとめて書き込むといった動作が必要であること)、等がある。特に上記(1)は装置の寿命の問題に関連し、上記(2),(3)はデータ書き込み等の非効率性(処理効率)の問題に関連する。
[(2)抵抗変化型不揮発性メモリ(相変化メモリ等)]
抵抗変化型不揮発性メモリとして、相変化メモリ(Phase Change Memory)、抵抗変化メモリ(ReRAM:Resistive RAM)、等が開発されている。
抵抗変化型不揮発性メモリとして、相変化メモリ(Phase Change Memory)、抵抗変化メモリ(ReRAM:Resistive RAM)、等が開発されている。
相変化メモリの特性を挙げると、(1)メモリ領域の書き込み回数の上限があること、(2)データ書き込みサイズとデータ消去サイズとが同じで小さいこと、(3)上書き可能であること、(4)データ書き込み後のメモリセル(素子)の抵抗値にバラツキが生じ得ること、等がある。特に上記(1)は装置の寿命の問題に関連し、上記(2),(3)はデータ書き込み等の効率性(処理効率)の問題に関連し、上記(4)はデータ読み出し等の不安定性(信頼性)の問題に関連する。
相変化メモリにおけるデータ消去動作としては、例えば、図16に示すように、制御回路から対象のメモリ領域に対して一様にリセットパルス(1601)を印加し、これにより対象メモリセルの値(抵抗値)を同じ(例えば記憶情報‘1’)にする。
更に、本発明者等が検討した技術として、例えば相変化メモリを含む半導体装置においては、以下の技術が考えられる。
記憶素子は、少なくともアンチモン(Sb)とテルル(Te)を含むGe−Sb−Te系、Ag−In−Sb−Te系などのカルコゲナイド材料(または相変化材料)を記録層の材料として用いている。また、選択素子はダイオードを用いている。このように、カルコゲナイド材料とダイオードを用いた相変化メモリ(メモリセル)の特性については、例えば非特許文献1で述べられている。
図16において、従来技術例として、相変化材料を用いた抵抗性記憶素子(相変化メモリセル)における相変化に必要なパルス幅と温度との関係を示す。この記憶素子に記憶情報‘0’を書き込む場合、素子をカルコゲナイド材料の融点Ta以上に熱してから急冷するようなリセットパルス(1601)を印加する。冷却時間t1を短く、例えば約1nsに設定することにより、カルコゲナイド材料は高抵抗のアモルファス(非晶質)状態となる。逆に、記憶情報‘1’を書き込む場合、記憶素子を融点Taよりも低く、ガラス転移点と同じかそれよりも高い結晶化温度Txよりも高い温度領域に保つようなセットパルス(1602)を印加することにより、カルコゲナイド材料は低抵抗の多結晶状態となる。結晶化に要する時間t2はカルコゲナイド材料の組成によって異なる。図16に示した素子の温度は、記憶素子自身が発するジュール熱、及び周囲への熱拡散に依存する。
また、非特許文献2に記載されているように、相変化メモリは、抵抗素子構造を小さくすると、相変化膜の状態変化に必要な電力が小さくなる。このため、原理上、微細化に向いており、研究が盛んに行われている。
また、非特許文献3には、カルコゲナイド材料の低抵抗化に120ns、高抵抗化に50ns程度の時間を要する相変化メモリが記載されている。
「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンファレーンス、ダイジェスト・オブ・テクニカル・ペーパーズ(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, No1, JANUARY 2005)」、(米国)、2005年、p.293−300
NAND型フラッシュのデータシート(TC58NVG2S3ETA00)
前述のように、不揮発性メモリ装置として、NAND型フラッシュメモリ、抵抗変化型不揮発性メモリ(相変化メモリ)、等のいずれにおいても、寿命、信頼性、処理効率、等の面に関して、それぞれ利点以外に問題点や改善余地がある。
本発明者等は、(1)NAND型フラッシュメモリ(その制御方法など)について、及び更に、(2)抵抗変化型不揮発性メモリ(カルコゲナイド材料から成る記録層とダイオードを用いた相変化メモリの抵抗値の特性など)について、それぞれ以下のように検討した。
[(1)NAND型フラッシュメモリの検討]
例えば4GbitのNAND型フラッシュメモリ(非特許文献4等)は、2048+64=2112バイトから成るページと、64個のページから成るブロック(131072+4096=135168バイト)と、4096ブロックから成るチップとで構成されている。
例えば4GbitのNAND型フラッシュメモリ(非特許文献4等)は、2048+64=2112バイトから成るページと、64個のページから成るブロック(131072+4096=135168バイト)と、4096ブロックから成るチップとで構成されている。
また、SSDは、複数のNAND型フラッシュメモリと、これらのフラッシュメモリを制御するコントローラ(フラッシュコントローラ)とで構成されている。またホストコントローラ(情報処理装置)とSSD(フラッシュコントローラ)とはSATAインターフェースによって接続されている。ホストコントローラからSSDへ1ページ分のデータ書込み命令が生じた場合のメモリ(NAND型フラッシュメモリ)へのデータ書込み動作について以下に説明する。
上記メモリへのデータ書込みはページ単位で行われ、当該データ書込みの際、コントローラは、一旦、メモリから1ブロック分のデータ(135168バイト)を読み出し、この1ブロック分のデータを消去した後に、新たな1ページ分のデータ(2112バイト)を書き込む、といった動作の必要がある。即ち、上記データ書込みは、[ブロック読出動作]+[ブロック消去動作]+[ページ書込動作]により実現される。
また上記NAND型フラッシュメモリには、最大消去可能回数(EMAXとする)があり、この最大消去可能回数EMAXを超えてしまうと、当該メモリに保存されているデータは保証されなくなり、即ち当該メモリを利用したSSD等は寿命を迎えることになる。従って、SSD等の寿命を延ばすためには、効率良いデータ消去方法(データ消去の制御を含む方式)が必要である。
しかしながら、上記メモリでは、前述のようにデータ書込み単位(ページ)とデータ消去単位(ブロック)とが大きく異なっており、例えば1ページ分のデータ(2112バイト)を書き込む際に、その64倍のデータサイズである1ブロック分(135168バイト)を消去する必要がある。即ち、データ消去を含む処理動作が非常に非効率的であり、当該メモリを利用したSSD等の寿命を改善することは困難であると判明した。
更には、上記1ページ分のデータ(2112バイト)を書き込む際に1ブロック分のデータ(135168バイト)を消去する前に、この1ブロック分のデータを読み出す必要があり、書込み性能が劣化することが判明した。
[(2)抵抗変化型不揮発性メモリ(相変化メモリ等)の検討]
抵抗変化型不揮発性メモリである相変化メモリ等のメモリは、前述のように、データ書き込み回数の上限値はあるが、データの上書きが可能であり、その最小単位は1バイトと小さく、つまり必要なデータサイズ分のみを書き換え可能であることが判明した。
抵抗変化型不揮発性メモリである相変化メモリ等のメモリは、前述のように、データ書き込み回数の上限値はあるが、データの上書きが可能であり、その最小単位は1バイトと小さく、つまり必要なデータサイズ分のみを書き換え可能であることが判明した。
そこで本発明の課題の1つは、上記相変化メモリ等の抵抗変化型不揮発性メモリの特性(利点)を用いて、当該メモリ及びその制御回路を備えて成るメモリモジュール(装置)の長寿命化を図ることである。
更に、特に相変化メモリについて検討した内容を以下に示す。相変化メモリへのデータ書込みでは、電流により発生するジュール熱を制御することにより相変化メモリセルの抵抗値を制御する。このジュール熱による熱履歴のために生じたメモリセルの電気特性の差によって、通常の書換え動作後の抵抗値にバラツキが発生するという問題があることが判明した。また、メモリセルへデータを上書きする場合においては、書換え後の状態の差異によって、抵抗値が変動するため、メモリセル間の抵抗バラツキが大きくなり、特性に大きな影響を及ぼすことが判明した。
そこで本発明の課題の1つは、上記相変化メモリ等のメモリ及びその制御回路を備えて成るメモリモジュール(装置)に関して、制御回路からメモリへのデータ書込み等の方法を工夫することにより、長寿命化や高信頼性などを図ることである。
以上のような検討を踏まえ、本発明の主な目的は、メモリを含んで構成される半導体装置などに係わり、長寿命化や高信頼性などを実現できる技術を提供することである。
上記目的を達成するため、本発明のうち代表的な形態は、メモリ装置及び制御回路(コントローラ)を含んで構成されるメモリモジュール(半導体装置)等であって、以下に示す構成を有することを特徴とする。
本形態の半導体装置は、不揮発性メモリ装置と不揮発性メモリ装置へのアクセスを行う制御回路装置とを含んで成る半導体装置であって、不揮発性メモリ装置は、上書き可能な特性であり、制御回路装置は、不揮発性メモリ装置のアドレス領域へのデータの書込と消去のサイズを同じにするように、所定の管理情報を用いて制御を行い、外部からの、第1種のアドレス及び書込みデータを伴うデータ書込みの要求に対し、当該第1種のアドレスに対して当該第1種のアドレスとは独立に不揮発性メモリ装置の連続的な第2種のアドレスを割当てる制御を行い、前記要求が、第1種のアドレスに対して割当てられている第2種のアドレスに対応する第1の領域の書込みデータに対する上書き要求である場合、データ上書き動作を行わずに、(a)第1の領域の書込みデータの消去動作、または当該第1の領域のフラグ値を無効状態に設定する無効化動作と、(b)第1の領域とは別に割当てられる第2の領域に対応する第2種のアドレスに対する書込みデータの書込動作、または当該第2の領域のフラグ値を有効状態に設定する有効化動作と、の2種類の動作のセットによりデータ書込みを実現する。
本発明のうち代表的な形態によれば、メモリを含んで構成される半導体装置などに係わり、長寿命化や高信頼性などを実現できる。
(1)特に、不揮発性メモリ装置の領域のデータ消去回数などのバラツキを抑え平準化する仕組みにより、不揮発性メモリ装置に関する長寿命化を実現できる。
(2)特に、不揮発性メモリ装置が上書き可能な方式であっても上書きせずに、[消去]+[書込動作]によりデータ書込みを実現し、抵抗変化型メモリセルの状態(抵抗値)のバラツキを抑える(一定に揃える)仕組みにより、読み出し処理性能を高め、高信頼性を実現できる。
(3)特に、情報処理装置(ホスト)からの論理アドレスに対して不揮発性メモリ装置の物理アドレスを連続的に割当てて使用し、メモリの物理アドレス等の領域ごとのデータ消去回数のバラツキを抑え平準化する仕組みにより、長寿命かつ高信頼性を実現できる。
(4)特に、データ書込みでパイプライン処理を行う仕組みにより、更に高性能を実現できる。
以下、図1〜図16を用いて、本発明の実施の形態として、不揮発性メモリ装置、不揮発性メモリ装置と制御回路とを含んで成るメモリモジュール(半導体装置)、及びメモリモジュールと情報処理装置とを含んで成る情報処理システム、並びに、それら装置・システムにおける不揮発性メモリ装置へのデータ書込み等に関する制御方法、等について説明する。
<特徴等>
本発明及び実施の形態は、以下のような特徴要素を有する構成である。
本発明及び実施の形態は、以下のような特徴要素を有する構成である。
(A)基本方式(データ書込み方式):
本半導体装置(メモリモジュール)において、制御回路からメモリ装置(不揮発性メモリ装置)へのデータ書込みを含む処理動作の制御に係わる以下のような方式(構成)を採用する。メモリ装置としては、例えば相変化メモリ等の抵抗変化型不揮発性記憶装置を採用する。この場合、前述の特性{(1)書込み回数の上限、(2)書込と消去のサイズが同じ、(3)上書き可能、(4)書込みメモリセル抵抗値バラツキ、等}を有する。制御回路は、情報処理装置(ホスト)からのデータの書き込みや読み出しの要求/指示を受け、メモリ装置に対するデータの書き込みや読み出しの処理動作を制御する。
本半導体装置(メモリモジュール)において、制御回路からメモリ装置(不揮発性メモリ装置)へのデータ書込みを含む処理動作の制御に係わる以下のような方式(構成)を採用する。メモリ装置としては、例えば相変化メモリ等の抵抗変化型不揮発性記憶装置を採用する。この場合、前述の特性{(1)書込み回数の上限、(2)書込と消去のサイズが同じ、(3)上書き可能、(4)書込みメモリセル抵抗値バラツキ、等}を有する。制御回路は、情報処理装置(ホスト)からのデータの書き込みや読み出しの要求/指示を受け、メモリ装置に対するデータの書き込みや読み出しの処理動作を制御する。
本方式では、制御回路からメモリ装置へのデータ書込みにおいて、たとえデータ上書き要求であったとしても(メモリ装置が上書き可能な形式であっても)、データ上書き動作は行わずに、下記のように、(a)第1の領域/アドレスに対する[消去動作/無効化動作]+(b)第2の領域/アドレスに対する[書込動作/有効化動作]、という2種類の動作のセットによりデータ書込みを実現する。即ち、(a)[消去動作/無効化動作]では、メモリ装置の該当の第1の領域/アドレスのデータのメモリセルの状態を一旦アモルファスあるいは結晶状態のいずれかの状態へ設定する動作(「消去動作」)、ないし、その状態(消去状態)に対応したフラグ値を設定する動作(「無効化動作」)を行う。それと共に、(b)[書込動作/有効化動作]では、書込みデータを上記第1の領域/アドレスとは別の第2の領域/アドレスのメモリセルへ書き込む動作(「書込動作」)、ないし、その状態(書込状態)に対応したフラグ値を設定する動作(「有効化動作」)を行う。
例えば、「消去動作」はメモリセルの情報ビット(抵抗値)を同じ値になるようにリセットする動作、「無効化動作」は当該第1の領域/アドレスに対応するフラグ値を0にする動作、「書込動作」はメモリセルの情報ビットを書込みデータに応じた0または1にセットする動作、「有効化動作」は当該第2の領域/アドレスに対応するフラグ値を1にする動作である。
(B)単位・サイズ:
制御回路等は、上記(a)[消去動作]におけるデータ消去単位のサイズと、上記(b)[書込動作]におけるデータ書き込み単位のサイズと、が等しくなるように、所定のサイズの単位でアドレス情報などを管理し、当該単位でメモリ装置に対するデータ消去及び書込み等を制御する。制御回路は、上記単位として、例えば、メモリ装置の物理アドレス領域(セクタ)の単位と、連続する複数の物理アドレス領域(セクタ)の集まりによる単位(物理セグメント)との各単位のアドレス情報を管理する(例えば物理アドレステーブル、物理セグメントテーブル)。
制御回路等は、上記(a)[消去動作]におけるデータ消去単位のサイズと、上記(b)[書込動作]におけるデータ書き込み単位のサイズと、が等しくなるように、所定のサイズの単位でアドレス情報などを管理し、当該単位でメモリ装置に対するデータ消去及び書込み等を制御する。制御回路は、上記単位として、例えば、メモリ装置の物理アドレス領域(セクタ)の単位と、連続する複数の物理アドレス領域(セクタ)の集まりによる単位(物理セグメント)との各単位のアドレス情報を管理する(例えば物理アドレステーブル、物理セグメントテーブル)。
(C)フラグ情報:
制御回路等は、上記(a)、(b)の動作のための情報管理を行う。制御回路は、メモリ装置における物理アドレス等の単位の領域ごとに、当該領域及びその格納データの有効/無効状態を表すフラグ情報を管理する。そして、制御回路は、上記(a)+(b)の動作において、例えば、(a)動作で第1の領域の該当データを消去/無効化した場合は対応するフラグ値を0にし、(b)動作で第2の領域に書込みデータを書き込んだ場合は対応するフラグ値を1にする。
制御回路等は、上記(a)、(b)の動作のための情報管理を行う。制御回路は、メモリ装置における物理アドレス等の単位の領域ごとに、当該領域及びその格納データの有効/無効状態を表すフラグ情報を管理する。そして、制御回路は、上記(a)+(b)の動作において、例えば、(a)動作で第1の領域の該当データを消去/無効化した場合は対応するフラグ値を0にし、(b)動作で第2の領域に書込みデータを書き込んだ場合は対応するフラグ値を1にする。
(D)回数情報:
制御回路等は、メモリ領域全体における物理アドレス等の単位の領域ごとに、データの消去回数(もしくは書込回数)の情報管理を行う。例えば上記(a)[消去動作]の実行ごとに、消去回数をカウントアップする。あるいは(b)[書込動作]の実行ごとに書込回数をカウントアップする。なお(a)と(b)がセットで対応するので、消去回数の概念と書込回数の概念とが対応する。
制御回路等は、メモリ領域全体における物理アドレス等の単位の領域ごとに、データの消去回数(もしくは書込回数)の情報管理を行う。例えば上記(a)[消去動作]の実行ごとに、消去回数をカウントアップする。あるいは(b)[書込動作]の実行ごとに書込回数をカウントアップする。なお(a)と(b)がセットで対応するので、消去回数の概念と書込回数の概念とが対応する。
(E)第1のテーブル:
制御回路等は、上記回数やフラグの情報を用いて、メモリ領域全体における使用(消去や書込)のバラツキを抑え平準化するように、次にデータを書込む対象(先)となるアドレス/領域を選択(決定)する。制御回路は、上記次の書込み先を選択するためのアドレス情報(例えば物理アドレス情報)を管理する(例えば第1のテーブル:書込み物理アドレステーブル)。アドレス/領域ごとに、上記回数やフラグの情報などを対応付けて管理する。特に制御回路内に第1のテーブルを保持することにより処理高速化を図る。
制御回路等は、上記回数やフラグの情報を用いて、メモリ領域全体における使用(消去や書込)のバラツキを抑え平準化するように、次にデータを書込む対象(先)となるアドレス/領域を選択(決定)する。制御回路は、上記次の書込み先を選択するためのアドレス情報(例えば物理アドレス情報)を管理する(例えば第1のテーブル:書込み物理アドレステーブル)。アドレス/領域ごとに、上記回数やフラグの情報などを対応付けて管理する。特に制御回路内に第1のテーブルを保持することにより処理高速化を図る。
例えば、制御回路は、将来のデータ書込み要求に備えて事前に、上記次の書込み先のアドレスの候補もしくは優先使用対象とするための複数の物理アドレスなどの情報を第1のテーブルに登録しておき随時更新する。例えば、制御回路は、上記第1のテーブルに対しアドレス情報を登録する際、アドレス/領域ごとの上記回数が少なく、上記フラグ値が0(無効)の物理アドレス等を、優先的に登録する。例えば、制御回路は、消去回数などの値を所定の閾値と比較し、閾値より小さいアドレス/領域を登録する。例えば最小の消去回数の物理セグメントのアドレス(対応する複数の物理アドレス)を登録する。
制御回路は、次のデータ書込みの際、第1のテーブルの情報を参照し、特に、上記回数の少ないアドレス、上記フラグ値が0(無効)のアドレスを、次の書込み先のアドレス(第2の領域/アドレス)として割当てて使用するように選択(決定)する。これにより、メモリ領域全体の使用(消去や書込)のバラツキを抑え平準化する。また例えば、制御回路は、複数のデータ書込み要求に対して、第1のテーブルに登録されている複数のアドレス情報の中から例えば上から順(優先順)に複数を選択して使用する。
(F)連続的なアドレスの割当:
制御回路は、メモリ領域における連続的(シーケンシャル)なアドレス(物理アドレス等)へデータを書き込むように情報管理及び制御を行う。制御回路は、前記次のデータ書込み先のアドレス/領域を選択(決定)し前記(a)第1の領域の[消去動作]+(b)第2の領域の[書込動作]を行うにあたり、例えば、メモリ領域全体の複数の物理アドレスの中から物理アドレス値の順に連続的に割当てて使用する。例えば物理アドレス値を最初から最後まで使い切った場合は最初の物理アドレス値に戻って同様に繰り返し使用する。特に前記セットの動作で、使用済みの第1の領域に対して未使用の第2の領域を選択する場合も、第1、第2の領域で連続したアドレスとなるようにする。例えば、本装置の使用開始時から、上記のようにメモリ領域を連続的なアドレスで使用し続ける。上記により、メモリ領域の使用(消去や書込)が平準化される。
制御回路は、メモリ領域における連続的(シーケンシャル)なアドレス(物理アドレス等)へデータを書き込むように情報管理及び制御を行う。制御回路は、前記次のデータ書込み先のアドレス/領域を選択(決定)し前記(a)第1の領域の[消去動作]+(b)第2の領域の[書込動作]を行うにあたり、例えば、メモリ領域全体の複数の物理アドレスの中から物理アドレス値の順に連続的に割当てて使用する。例えば物理アドレス値を最初から最後まで使い切った場合は最初の物理アドレス値に戻って同様に繰り返し使用する。特に前記セットの動作で、使用済みの第1の領域に対して未使用の第2の領域を選択する場合も、第1、第2の領域で連続したアドレスとなるようにする。例えば、本装置の使用開始時から、上記のようにメモリ領域を連続的なアドレスで使用し続ける。上記により、メモリ領域の使用(消去や書込)が平準化される。
(G)論理アドレス−物理アドレス:
制御回路等は、外部の情報処理装置(ホスト)からの要求における論理アドレスと、メモリ装置の物理アドレスと、の対応関係(割当)を情報管理する(例えばアドレス変換テーブル)。特に、論理アドレス空間の大きさよりも物理アドレス空間の大きさに余裕を確保した構成とする。例えば、前記(a)動作の際、無効化動作として第1の領域のフラグ値の更新(1から0へ変更)のみ行い、時間的に後で、消去動作として第1の領域のデータ削除処理を行う。
制御回路等は、外部の情報処理装置(ホスト)からの要求における論理アドレスと、メモリ装置の物理アドレスと、の対応関係(割当)を情報管理する(例えばアドレス変換テーブル)。特に、論理アドレス空間の大きさよりも物理アドレス空間の大きさに余裕を確保した構成とする。例えば、前記(a)動作の際、無効化動作として第1の領域のフラグ値の更新(1から0へ変更)のみ行い、時間的に後で、消去動作として第1の領域のデータ削除処理を行う。
(H)各種テーブル:
また、制御回路は、前記各種の情報管理のためのテーブル情報を、制御回路内部に備えるメモリ装置内、もしくは、制御回路外部でメモリモジュール内部に備えるメモリ装置内に保有し管理する。例えば、前記物理アドレス、前記物理セグメント、前記フラグ、及び前記回数の情報などを管理するテーブルや、前記論理アドレスと物理アドレスの対応関係(変換)を管理するテーブルや、前記次の書込み先のアドレスを選択するための第1のテーブルなどを保有する。
また、制御回路は、前記各種の情報管理のためのテーブル情報を、制御回路内部に備えるメモリ装置内、もしくは、制御回路外部でメモリモジュール内部に備えるメモリ装置内に保有し管理する。例えば、前記物理アドレス、前記物理セグメント、前記フラグ、及び前記回数の情報などを管理するテーブルや、前記論理アドレスと物理アドレスの対応関係(変換)を管理するテーブルや、前記次の書込み先のアドレスを選択するための第1のテーブルなどを保有する。
また、制御回路は、制御回路側で保有する上記テーブル情報に対応した内容の情報を、メモリ装置側の領域内に、例えば物理アドレス等の単位の領域ごとに格納して管理する。
(I)処理例:
制御回路は、情報処理装置(ホスト)からのデータ書込み要求(例えば、論理アドレス、書込みデータ、サイズ、等を伴う)に対して、前記管理情報(テーブル)を参照し、論理アドレスに関係付け(割当)られる物理アドレス、及びフラグや回数などの情報を読み出し、書込みデータの書込み先とする物理アドレス(第2のアドレス/領域)を選択(決定)する。例えば、制御回路は、メモリ装置のデータ格納済みの状態(フラグ値が1(有効))の物理アドレス(第1の領域)に対するデータ書込み要求(上書き要求)である場合、当該アドレスとは別の新たにデータ書込みが可能な状態(フラグ値が0(無効))である連続的な物理アドレス(第2の領域)を、第1のテーブルの複数のアドレスの中から、次の書込み先として選択(決定)する。制御回路は、上記次のアドレス(第2の領域)を選択すると、上記第1の領域の該当データに対する(a)[消去動作/無効化動作]を行い、それと共に、上記次のアドレス(第2の領域)への書込みデータの(b)[書込動作/有効化動作]を行う。
制御回路は、情報処理装置(ホスト)からのデータ書込み要求(例えば、論理アドレス、書込みデータ、サイズ、等を伴う)に対して、前記管理情報(テーブル)を参照し、論理アドレスに関係付け(割当)られる物理アドレス、及びフラグや回数などの情報を読み出し、書込みデータの書込み先とする物理アドレス(第2のアドレス/領域)を選択(決定)する。例えば、制御回路は、メモリ装置のデータ格納済みの状態(フラグ値が1(有効))の物理アドレス(第1の領域)に対するデータ書込み要求(上書き要求)である場合、当該アドレスとは別の新たにデータ書込みが可能な状態(フラグ値が0(無効))である連続的な物理アドレス(第2の領域)を、第1のテーブルの複数のアドレスの中から、次の書込み先として選択(決定)する。制御回路は、上記次のアドレス(第2の領域)を選択すると、上記第1の領域の該当データに対する(a)[消去動作/無効化動作]を行い、それと共に、上記次のアドレス(第2の領域)への書込みデータの(b)[書込動作/有効化動作]を行う。
(J)パイプライン処理:
制御回路は、情報処理装置(ホスト)からのデータ書込み要求及び書込みデータを、制御回路内部(または制御回路外部でメモリモジュール内部)に備える所定のバッファメモリ装置などに転送(格納)する第1の処理単位・動作と、上記書込みデータを前記メモリ装置の次の書込み先のアドレスへ書き込むための所定の事前準備の処理(少なくとも次の書込み先のアドレスの決定を含む)を行う第2の処理単位・動作と、上記バッファメモリ装置の書込みデータを、メモリ装置の次の書込み先のアドレスへ書き込む第3の処理単位・動作とを、パイプライン処理する。
制御回路は、情報処理装置(ホスト)からのデータ書込み要求及び書込みデータを、制御回路内部(または制御回路外部でメモリモジュール内部)に備える所定のバッファメモリ装置などに転送(格納)する第1の処理単位・動作と、上記書込みデータを前記メモリ装置の次の書込み先のアドレスへ書き込むための所定の事前準備の処理(少なくとも次の書込み先のアドレスの決定を含む)を行う第2の処理単位・動作と、上記バッファメモリ装置の書込みデータを、メモリ装置の次の書込み先のアドレスへ書き込む第3の処理単位・動作とを、パイプライン処理する。
また上記パイプライン処理では、前記(a)[消去動作]と(b)[書込動作]とで、別のパイプライン処理単位に分けて行ってもよい。
(K)構成例:
本メモリモジュール(MM0)である半導体装置は、例えば、制御回路装置(SC0)と、複数の不揮発性メモリ装置(NVM)と、ランダムアクセスメモリ(RM)と、を備える。制御回路装置(SC0)内部に、前記次の書込み先のアドレス情報を格納する第1のテーブルを保持する。ランダムアクセスメモリ(RM)内部に、前記不揮発性メモリ装置(NVM)の物理アドレス等の管理情報、対応するフラグや回数の管理情報、データ書込み要求の論理アドレス情報と不揮発性メモリ装置(NVM)の物理アドレス情報との対応関係(変換)の管理情報などを格納する第2のテーブルを保持する。制御回路装置(SC0)は、情報処理装置(CC)とのインタフェース回路、情報処理回路、バッファメモリ装置、及びメモリ制御回路などを有する。
本メモリモジュール(MM0)である半導体装置は、例えば、制御回路装置(SC0)と、複数の不揮発性メモリ装置(NVM)と、ランダムアクセスメモリ(RM)と、を備える。制御回路装置(SC0)内部に、前記次の書込み先のアドレス情報を格納する第1のテーブルを保持する。ランダムアクセスメモリ(RM)内部に、前記不揮発性メモリ装置(NVM)の物理アドレス等の管理情報、対応するフラグや回数の管理情報、データ書込み要求の論理アドレス情報と不揮発性メモリ装置(NVM)の物理アドレス情報との対応関係(変換)の管理情報などを格納する第2のテーブルを保持する。制御回路装置(SC0)は、情報処理装置(CC)とのインタフェース回路、情報処理回路、バッファメモリ装置、及びメモリ制御回路などを有する。
(L)第2の平準化方法:
制御回路は、無効状態(0)の物理アドレスの最大消去回数と、有効状態(1)の物理アドレスの最小消去回数との差を求め、この差が所定の閾値よりも大きい場合は、このような差を小さくするために(消去回数を平準化するために)、有効状態(1)の物理アドレスに関する最大消去回数の物理アドレスのデータを、無効状態(0)の物理アドレスに関する最大消去回数の物理アドレスへ移動させる。
制御回路は、無効状態(0)の物理アドレスの最大消去回数と、有効状態(1)の物理アドレスの最小消去回数との差を求め、この差が所定の閾値よりも大きい場合は、このような差を小さくするために(消去回数を平準化するために)、有効状態(1)の物理アドレスに関する最大消去回数の物理アドレスのデータを、無効状態(0)の物理アドレスに関する最大消去回数の物理アドレスへ移動させる。
(M)初期化:
制御回路は、例えば、装置使用開始時あるいは電源オン直後(起動時)に、制御回路内部及びランダムアクセスメモリ等に格納されている各管理情報のテーブルの内容を初期化し、また不揮発性メモリ装置に格納されている管理情報の内容を初期化する。また、制御回路は、起動終了時(電源オフ直前)には、各テーブル情報を不揮発性メモリ装置内に保存する。また、制御回路は、起動時には、不揮発性メモリ装置内に保存されている各テーブル情報を読み出して再現し、前回の続きの状態から制御を開始する。
制御回路は、例えば、装置使用開始時あるいは電源オン直後(起動時)に、制御回路内部及びランダムアクセスメモリ等に格納されている各管理情報のテーブルの内容を初期化し、また不揮発性メモリ装置に格納されている管理情報の内容を初期化する。また、制御回路は、起動終了時(電源オフ直前)には、各テーブル情報を不揮発性メモリ装置内に保存する。また、制御回路は、起動時には、不揮発性メモリ装置内に保存されている各テーブル情報を読み出して再現し、前回の続きの状態から制御を開始する。
<実施の形態1>
図1〜図11を用いて、実施の形態1の情報処理システムについて説明する。実施の形態1は、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレス(PA)毎のデータ消去動作(消去回数(EC))に関する第1の平準化方法(動的な平準化方法)を含む構成である。この平準化とは、NVM領域のデータ消去動作のバラツキを抑え平準化することを指す。
図1〜図11を用いて、実施の形態1の情報処理システムについて説明する。実施の形態1は、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレス(PA)毎のデータ消去動作(消去回数(EC))に関する第1の平準化方法(動的な平準化方法)を含む構成である。この平準化とは、NVM領域のデータ消去動作のバラツキを抑え平準化することを指す。
[システム]
図1は、実施の形態1の情報処理システムのブロック構成例を示す。本情報処理システムは、情報処理装置CCと、メモリモジュールMM0とが接続される構成である。情報処理装置CCは、本実施の形態では、メモリモジュールMM0へ読み書き保存されるデータを最小512バイト単位の論理アドレスLAで管理するホストコントローラ(CPUチップ等)である。メモリモジュールMM0は、不揮発性ストレージ装置である半導体装置である。
図1は、実施の形態1の情報処理システムのブロック構成例を示す。本情報処理システムは、情報処理装置CCと、メモリモジュールMM0とが接続される構成である。情報処理装置CCは、本実施の形態では、メモリモジュールMM0へ読み書き保存されるデータを最小512バイト単位の論理アドレスLAで管理するホストコントローラ(CPUチップ等)である。メモリモジュールMM0は、不揮発性ストレージ装置である半導体装置である。
情報処理装置CCは、インターフェース信号HDH_IFを通じて、メモリモジュールMM0に対してデータの読み出しや書き込みを行う。情報処理装置CCから、クロック情報が埋め込まれシリアルデータへ変換されたリードリクエストRQやライトリクエストWQなどが、インターフェース信号HDH_IFを通じて、メモリモジュールMM0へ入力される。情報処理装置CCとメモリモジュールMM0とを接続する信号方式には、シリアルインターフェース信号方式、パラレルインターフェース信号方式や光インターフェース信号方式などがあり、全方式を適用可能である。また、情報処理装置CCとメモリモジュールMM0とを動作させるクロック方式として、コモンクロック方式、ソースシンクロナスクロック方式、エンベデッドクロック方式などがあり、全クロック方式を適用可能である。本実施の形態では、エンベデッドクロック方式でありシリアルインターフェース信号方式による動作例を説明する。
リードリクエストRQには、論理アドレス(値)LA、データ読み出し命令RD、セクタカウントSECなどが含まれ、また、ライトリクエストWQには、論理アドレス(値)LA、データ書込み命令WT、セクタカウントSEC、及び書込みデータWDATAなどが含まれる。
メモリモジュールMM0は、複数(本例では8個)の不揮発性メモリ装置NVM{NVM10〜NVM17}と、ランダムアクセスメモリRMと、これらのメモリを制御する制御回路SC0と、を有する構成である。制御回路SC0は、ストレージコントローラ等と言い換え可能である。
本実施の形態の不揮発性メモリ装置NVMは、後述の相変化メモリPM(図3)を採用する。複数(8個)の不揮発性メモリ装置NVM10(#1)〜NVM17(#8)は、本例では同じ構成・性能を持つ。
制御回路SC0内には、後述の書込み物理アドレステーブルNXPAT(図7)などが格納されている。また、ランダムアクセスメモリRM内には、後述の物理アドレステーブルPAT(図5)、物理セグメントテーブルPST{PST1,PST2}(図6)、アドレス変換テーブルATT(図8)、等が格納されている。制御回路SC0内及びランダムアクセスメモリRM内に各種管理情報のテーブルを保有することにより、アドレス決定などの処理が効率化される。
[制御回路]
図2は制御回路SC0の構成例を示す。制御回路SC0は、インターフェース回路HIFと、バッファBUF{BUF0〜BUF3}(バッファメモリ装置)と、ブート用不揮発性メモリ装置NVM0と、書込み物理アドレステーブルNXPATと、調停回路ARBと、情報処理回路MNGと、NVM{NVM10〜NVM17}をそれぞれ直接制御するメモリ制御装置NC{NC0〜NC7}と、ランダムアクセスメモリRMを直接制御するメモリ制御装置RMCと、を有する構成である。図2の構成例では、複数(4個)のバッファBUF{BUF0〜BUF3}を有する。
図2は制御回路SC0の構成例を示す。制御回路SC0は、インターフェース回路HIFと、バッファBUF{BUF0〜BUF3}(バッファメモリ装置)と、ブート用不揮発性メモリ装置NVM0と、書込み物理アドレステーブルNXPATと、調停回路ARBと、情報処理回路MNGと、NVM{NVM10〜NVM17}をそれぞれ直接制御するメモリ制御装置NC{NC0〜NC7}と、ランダムアクセスメモリRMを直接制御するメモリ制御装置RMCと、を有する構成である。図2の構成例では、複数(4個)のバッファBUF{BUF0〜BUF3}を有する。
情報処理回路MNGは、制御回路SC0内の書込み物理アドレステーブルNXPAT を管理し、また、ランダムアクセスメモリRM内の物理アドレステーブルPAT、物理セグメントテーブルPST、及びアドレス変換テーブルATTなどを管理する。
[揮発性メモリ装置NVM(相変化メモリPM)]
図3は、本実施の形態で図1の不揮発性メモリ装置NVM{NVM10〜NVM17}として使用する例である、相変化メモリPMのブロック構成例を示す。相変化メモリPMは、クロック生成回路SYMD、ステータスレジスタSTREG、アドレス・コマンドインターフェース回路ADCMDIF、入出力バッファIOBUF、制御回路CNTLOGIC、温度センサTHMO、データ制御回路DATACTL、及び複数のメモリバンクBK{BK0〜BK3}、等を有する構成である。各メモリバンクBKにおいては、複数のメモリアレイARY{ARY0〜m}、ロウアドレスラッチRADLT、カラムアドレスラッチCADLT、ロウデコーダROWDEC、カラムデコーダCOLDEC、データ選択回路DSW1、及びデータバッファDBUF0,DBUF1、等が含まれる構成である。各メモリアレイARYにおいては、複数のメモリセルc(相変化型メモリ素子)、ビット線選択回路BSW、センスアンプSA、及びライトドライバWDR、等が含まれる構成である。
図3は、本実施の形態で図1の不揮発性メモリ装置NVM{NVM10〜NVM17}として使用する例である、相変化メモリPMのブロック構成例を示す。相変化メモリPMは、クロック生成回路SYMD、ステータスレジスタSTREG、アドレス・コマンドインターフェース回路ADCMDIF、入出力バッファIOBUF、制御回路CNTLOGIC、温度センサTHMO、データ制御回路DATACTL、及び複数のメモリバンクBK{BK0〜BK3}、等を有する構成である。各メモリバンクBKにおいては、複数のメモリアレイARY{ARY0〜m}、ロウアドレスラッチRADLT、カラムアドレスラッチCADLT、ロウデコーダROWDEC、カラムデコーダCOLDEC、データ選択回路DSW1、及びデータバッファDBUF0,DBUF1、等が含まれる構成である。各メモリアレイARYにおいては、複数のメモリセルc(相変化型メモリ素子)、ビット線選択回路BSW、センスアンプSA、及びライトドライバWDR、等が含まれる構成である。
アドレス・コマンドインターフェース回路ADCMDIFに入力される制御信号CTLは、コマンド・ラッチイネーブルCLE、チップイネーブル信号CEB、アドレス・ラッチ信号ALE、ライトイネーブル信号WEB、リードイネーブル信号REB、レディビジー信号RBB、等の信号から構成される。入出力バッファIOBUFに入力される入出力信号(IO信号)(8ビット)では、コマンド、アドレス、及び書き込みデータが入力され、読み出しデータが出力される。
本実施の形態において各ブロックを構成する回路素子は、例えば、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。更に、上記相変化メモリPMのように、メモリセルは、抵抗性記憶素子を用いている(ReRAMなどを用いてもよい)(特性は図16と同様)。なお、不揮発性メモリ装置NVMとしては、上記相変化メモリPMに限らず、前述同様の特性を持つ他の種類のメモリ装置を適用することができる。
[初期シーケンス]
図4は、本情報処理システム(図1)の電源投入(オン)時の初期シーケンス例を示す。t1期間(PwOn)で、情報処理装置CC、メモリモジュールMM0内の不揮発性メモリ装置NVM{NVM10〜NVM17}、ランダムアクセスメモリRM、及び制御回路SC0へ電源投入する。
図4は、本情報処理システム(図1)の電源投入(オン)時の初期シーケンス例を示す。t1期間(PwOn)で、情報処理装置CC、メモリモジュールMM0内の不揮発性メモリ装置NVM{NVM10〜NVM17}、ランダムアクセスメモリRM、及び制御回路SC0へ電源投入する。
t2期間(Reset)では、情報処理装置CC、制御回路SC0、不揮発性メモリ装置NVM{NVM10〜NVM17}、及びランダムアクセスメモリRMとそれらの内部状態を、リセット(初期設定)する。このリセット方法は、特に限定しないが、それぞれの内蔵回路で自動的にリセットを行う方法でもよいし、あるいは、外部にリセット端子を持ちこのリセット信号(図1、RSTSIG,RESET)によってリセット動作を行う方法でもよいし、情報処理装置CCからインターフェース信号HDH_IFを通じてリセット命令を制御回路SC0へ入力してリセットを行う方法でもよい。
制御回路SC0は、ランダムアクセスメモリRM(図1)に格納されているアドレス変換テーブルATT、物理セグメントテーブルPST1,PST2、及び物理アドレステーブルPATを初期化し、更に不揮発性メモリ装置NVM(格納情報)及び書込み物理アドレステーブルNXPATを初期化する。
t2期間が終了した後のt3期間(SetUp)では、情報処理装置CCは、制御回路SC0内のブート用不揮発性メモリNVM0に格納されているブートプログラムを読み出し、情報処理装置CCを立ち上げる。
t3期間が終了した後のt4期間(Idle)以降では、メモリモジュールMM0は、アイドル状態となり、情報処理装置CCからのリクエストを待つ状態となる。
制御回路SC0は、装置使用開始時、あるいは電源オン直後(起動時)などに、上記t1,t2のように、各テーブル(PAT、PST、ATT)の内容を初期化し、更に、不揮発性メモリ装置NVMの格納情報、及び制御回路SC0内の書込み物理アドレステーブルNXPATの内容を初期化する。初期化の処理では、例えば装置使用開始の場合、図7(a)、図8などのように、値に0を設定する。
また、制御回路SC0は、起動終了時(電源オフ直前)には、上記各テーブル情報を不揮発性メモリ装置NVM内に保存する。また、制御回路SC0は、起動時に、NVM内に保存されている各テーブル情報を読み出して再現し、前回の続きの状態から制御を開始する。
[物理アドレステーブルPAT]
図5は、RMに格納されている物理アドレステーブルPATの構成例を示している。PATは、物理アドレスPA(PA[31:0])と、当該物理アドレスPAに対応した、有効フラグVF、及び消去回数ECとを有して構成される。本実施の形態では、物理アドレスPA(PA[31:0])(32ビット)は、上位12ビットによる物理セグメントアドレスPSA(PA[31:20])と、下位20ビットによる物理アドレス(PA[19:0])(なお32ビットのPAとの区別のためPPAとする)と、を有して構成される。
図5は、RMに格納されている物理アドレステーブルPATの構成例を示している。PATは、物理アドレスPA(PA[31:0])と、当該物理アドレスPAに対応した、有効フラグVF、及び消去回数ECとを有して構成される。本実施の形態では、物理アドレスPA(PA[31:0])(32ビット)は、上位12ビットによる物理セグメントアドレスPSA(PA[31:20])と、下位20ビットによる物理アドレス(PA[19:0])(なお32ビットのPAとの区別のためPPAとする)と、を有して構成される。
有効フラグVFの値は、0または1であり、0がinvalid(無効状態)を示し、1がvalid(有効状態)を示す。無効(0)は、アドレス未割当、次書込み使用可(データ消去可)、初期状態、等の意味にも対応付けられる。有効(1)は、アドレス割当済み、次書込み使用不可(データ消去不可)、等の意味にも対応付けられる。また、0から1にすることを「有効化」、1から0にすることを「無効化」とする。
本実施の形態では、有効フラグVF=0(無効)の物理アドレスPAを無効物理アドレスIPAとし、VF=1(有効)の物理アドレスPAを有効物理アドレスVPAとして管理する。
消去回数EC(EraseCount)は、対応する物理アドレスPA領域単位で今までにデータ消去動作された回数(ないし対応するデータ書込動作された回数)を示す。消去回数ECは、例えば、NVMの使用開始時をEC=0として、制御回路SC0によるデータ消去動作ごとに累積でカウントアップされる。
[物理セグメントテーブルPST]
図6は、RMに格納されている物理セグメントテーブルPST{PST1,PST2}の構成例を示す。PSTは、物理セグメントアドレスPSA(図5)に関する管理テーブルであり、図6(a)は、無効物理アドレスIPAに関する物理セグメントテーブルPST1を示し、図6(b)は、有効物理アドレスVPAに関する物理セグメントテーブルPST2を示す。
図6は、RMに格納されている物理セグメントテーブルPST{PST1,PST2}の構成例を示す。PSTは、物理セグメントアドレスPSA(図5)に関する管理テーブルであり、図6(a)は、無効物理アドレスIPAに関する物理セグメントテーブルPST1を示し、図6(b)は、有効物理アドレスVPAに関する物理セグメントテーブルPST2を示す。
図6(a)において、物理セグメントテーブルPST1は、物理セグメントアドレスPSA(PA[31:20])と、当該PSA内の無効物理アドレスIPAの総数TNIPAと、当該PSA内の無効物理アドレスIPAの中で最大消去回数ECmaxを持つ無効物理アドレスIPAmaxと、当該最大消去回数ECmaxと、当該PSA内の無効物理アドレスIPAの中で最小消去回数ECminを持つ無効物理アドレスIPAminと、当該最小消去回数ECminと、を有して構成される。
図6(b)において、物理セグメントテーブルPST2は、物理セグメントアドレスPSA(PA[31:20])と、当該PSA内の有効物理アドレスVPAの総数TNVPAと、当該PSA内の有効物理アドレスVPAの中で最大消去回数ECmaxを持つ有効物理アドレスVPAmaxと、当該最大消去回数ECmaxと、当該PSA内の有効物理アドレスVPAの中で最小消去回数ECminを持つ有効物理アドレスVPAminと、当該最小消去回数ECminと、を有して構成される。
なお、複数のセクタのECの総計により、セグメント単位での消去回数ECも管理される。また、TNVPA例に示すように、1セグメントを構成するN個のセクタ(PA)からIPA数(TNIPA)を引くとVPA数(TNVPA)になる。
[単位・サイズ]
本実施の形態で用いる各種の単位やサイズの構成例についてまとめると以下である。図1のNVM(PM)の領域における、1物理アドレスPA領域=1セクタ=512バイトである。また、1物理セグメントアドレスPSA領域は、20ビット分(2048個)のPA(セクタ)の連続的な集まりによる単位であり、1メガバイト(2048×512バイト)である。図5,図6のように、12ビット分(4096個)の物理セグメントアドレスPSA(0〜FFF)を有し、20ビット分の物理アドレスPA(0〜F_FFFF)を有する。
本実施の形態で用いる各種の単位やサイズの構成例についてまとめると以下である。図1のNVM(PM)の領域における、1物理アドレスPA領域=1セクタ=512バイトである。また、1物理セグメントアドレスPSA領域は、20ビット分(2048個)のPA(セクタ)の連続的な集まりによる単位であり、1メガバイト(2048×512バイト)である。図5,図6のように、12ビット分(4096個)の物理セグメントアドレスPSA(0〜FFF)を有し、20ビット分の物理アドレスPA(0〜F_FFFF)を有する。
本方式では、(a)[消去動作]、(b)[書込動作]のデータサイズは等しく、例えばセクタやセグメントの単位である(任意に可変である)。なお本方式ではNAND型フラッシュメモリ等におけるページやブロックといった単位は使わない。セクタやセグメントなどの単位(呼称)は、適用するメモリに応じて他の単位(呼称)に言い換え可能である。
情報処理装置CC(ホスト)からみた論理アドレスLA空間(特にストレージアドレス)に対して、アドレス変換テーブルATTを用いて、図1のNVMの物理アドレスPA空間が関係付けられる。特に、LA空間の大きさよりもPA空間の大きさに余裕を確保する構成とする。これにより、その余裕分のPA領域を用いて、消去動作などの効率性が高まる。例えば余裕分のPA領域でVF=0(無効)とし、データの消去動作と書込動作とを非同期で行うことができる。例えば先に無効化(VF=0)されたPA領域を後でデータ消去動作すること等ができる。
[書込み物理アドレステーブルNXPAT]
図7は、制御回路SC0に格納されている書込み物理アドレステーブルNXPATを示す。図7(a)は、装置使用開始時のNXPATの初期設定例を示す。図7(a)は、NXPATの内容の更新状態例を示す。NXPATは、不揮発性メモリ装置NVM{NVM10〜NVM17}へデータを書き込む際に次に使用するNVMの物理アドレスPA(NXPA)を決定(選択)するために用いるテーブルである。NXPATは、複数(N)組の物理アドレスPA(NXPA)の情報の登録に対応している。
図7は、制御回路SC0に格納されている書込み物理アドレステーブルNXPATを示す。図7(a)は、装置使用開始時のNXPATの初期設定例を示す。図7(a)は、NXPATの内容の更新状態例を示す。NXPATは、不揮発性メモリ装置NVM{NVM10〜NVM17}へデータを書き込む際に次に使用するNVMの物理アドレスPA(NXPA)を決定(選択)するために用いるテーブルである。NXPATは、複数(N)組の物理アドレスPA(NXPA)の情報の登録に対応している。
NXPATは、エントリー番号ENUMと、物理アドレスNXPA(32ビット)と、当該NXPAに対応した、有効フラグNXVF、及び消去回数NXECと、を有する構成である。エントリー番号ENUMは、複数(N)組のNXPAにおけるN値(0番〜N−1番)を示し、このN値は書込み優先度(登録数)を示す。このN値が小さい順から優先で使用される。NXPA,NXVF,NXECは、図7のPATの情報に基づいた値が格納される。
図7(a)のNXPATの初期設定(例えば図4のt1)では、ENUM=0番からN−1番まで順にそれぞれ物理アドレスNXPAの0番地からN−1番地が設定される。そしてこれらの物理アドレスNXPAに対応する有効フラグNXVF及び消去回数NXECはすべて0に設定される。消去回数NXECは、PATのECと同様に、NVMの使用開始時を0とした場合である。
[最大書込サイズ、N値]
なお、本実施の形態で、(b)[書込動作]のデータサイズ(例えば1セクタ=512バイト)とは別に、制御回路CS0からNVMのメモリセル群に対して一度に書き込みできる最大のサイズ(「最大書込サイズ」)は、例えば図3のNVMの[チップあたりのバッファのサイズ]×[並列チップ数]=M×512バイト(セクタ)、である。例えばM=16×8=128である(128個の物理アドレスPA分)。このように一度に並列でMセクタ分のデータ書き込みができる構成に対応して、書込み物理アドレステーブルNXPATに、少なくともN=M個分の書込み物理アドレス情報を登録・保持させるとよい。
なお、本実施の形態で、(b)[書込動作]のデータサイズ(例えば1セクタ=512バイト)とは別に、制御回路CS0からNVMのメモリセル群に対して一度に書き込みできる最大のサイズ(「最大書込サイズ」)は、例えば図3のNVMの[チップあたりのバッファのサイズ]×[並列チップ数]=M×512バイト(セクタ)、である。例えばM=16×8=128である(128個の物理アドレスPA分)。このように一度に並列でMセクタ分のデータ書き込みができる構成に対応して、書込み物理アドレステーブルNXPATに、少なくともN=M個分の書込み物理アドレス情報を登録・保持させるとよい。
[アドレス変換テーブルATT,NVM情報]
図8(a)は、RMに格納されているアドレス変換テーブルATTの構成例を示す。図8(b)は、図8(a)のATTの内容に対応して、不揮発性メモリ装置NVM側に格納される情報を示す。図8(a),(b)は、NVM使用開始時の初期設定状態例を示している。ATTは、情報処理装置CCから制御回路SC0へ入力(指定)された論理アドレスLAを、不揮発性メモリ装置NVMの物理アドレスPAへ変換するために使用するテーブルであり、LAとPAの対応関係が設定される。
図8(a)は、RMに格納されているアドレス変換テーブルATTの構成例を示す。図8(b)は、図8(a)のATTの内容に対応して、不揮発性メモリ装置NVM側に格納される情報を示す。図8(a),(b)は、NVM使用開始時の初期設定状態例を示している。ATTは、情報処理装置CCから制御回路SC0へ入力(指定)された論理アドレスLAを、不揮発性メモリ装置NVMの物理アドレスPAへ変換するために使用するテーブルであり、LAとPAの対応関係が設定される。
アドレス変換テーブルATTは、論理アドレスLA、物理アドレスPA(現在の物理アドレスCPA)、当該PAの有効フラグVF(CPAに対応する有効フラグCVF)、等を有して成る。有効フラグ値VF(CVF)は、図5のVFと同様である。VF=0(無効)は、当該LAに対してPAが割当てられていないこと(未割当)を示し、VF=1(有効)は、当該LAに対して当該PAが割当てられていること(割当済み)を示す。
NVM使用開始時の初期設定時(例えば図4のt1)、図8(a)のように、ATTの全PAと当該PAの有効フラグVFが0に設定される。
図8(b)の不揮発性メモリ装置NVM{NVM10〜NVM17}の情報は、物理アドレスPA、データDATA、論理アドレスLA、データ有効フラグDVF(DVF情報格納領域)、等を有して成る。これらNVM情報はATT側と対応した内容の情報が格納される。上記DATAは、PAに対応する領域(データ格納領域)である。上記LAは、LA情報格納領域である。上記DVFは、当該PA,DATAに対応した、DVF情報の格納領域である。NVM側のDVFは、ATT側のVFと対応関係を有する。不揮発性メモリ装置NVM内に管理情報を格納・管理することにより、アドレス決定などの処理が効率化される。
NVM使用開始時の初期設定時(例えば図4のt1)は、図8(b)のように、NVM情報は、全PAに対応する全DATA、全LA、及び全DVFが0に設定される。
なおNVM使用開始後においては、電源投入時、各テーブル情報では、データ書き込み(格納)済みのPAに関する情報は保存されている。
[ライトリクエスト]
情報処理装置CCからインターフェース信号HDH_IFを通じてメモリモジュールMM0へライトリクエストWQが入力された場合における不揮発性メモリ装置NVMへのデータ書き込み例は以下である。
情報処理装置CCからインターフェース信号HDH_IFを通じてメモリモジュールMM0へライトリクエストWQが入力された場合における不揮発性メモリ装置NVMへのデータ書き込み例は以下である。
WQに含まれるセクタカウントSECは、1物理アドレスPA領域(=1セクタ=512バイト)ごとに1カウントとし、セクタ単位のデータ書き込みを何回繰り返すかを指定する情報である。例えばSEC=1の場合、512バイト分のサイズのデータ書込みを示す。
ある動作例として、SEC=1のライトリクエストWQがN回入力された場合(WQ#1〜WQ#N)、それぞれのライトリクエストWQに含まれるデータ(WDATA)は、NVMのN個の物理アドレスPA領域(セクタ)へ書き込まれる。このために使用されるPAは、書込み物理アドレステーブルNXPATに登録されている物理アドレスNXPAの中から選択(決定)される。例えば、NXPAT(図7(a))のN個のNXPAによる0番地からN−1番地までの各領域へ順に書き込まれる。
別の動作例として、例えばSEC=16(=8Kバイト)のライトリクエストWQが1回入力された場合、このライトリクエストWQに含まれるデータ(WDATA)は、NVMの物理アドレスPA領域(セクタ)へのN=16個の512バイトごとの書込みデータとして分解され、N=16個の各PA領域(セクタ)へ格納される。このために使用されるPAは、NXPATのN個のNXPAの中から選択され、例えば0番地からN−1番地までの各領域へ順に書き込まれる。
[データ書込み処理]
図9は、情報処理装置CCからメモリモジュールMM0の制御回路SC0へライトリクエストWQが入力された際にMM0(SC0)が行うデータ書込み動作の処理フロー例を示す。本実施の形態では、SC0内の情報処理回路MNGは、複数(8個)のNVM{NVM10〜NVM17}の中(メモリ領域)へ、前述の512バイトのサイズの物理アドレスPA領域(セクタ)毎に書込みデータ(WDATA)を書き込む。例えばライトリクエストWQ01は、論理アドレス値LA=0、データ書込み命令WT、セクタカウントSEC=1、512バイト単位の書込みデータWDATA(WDATA01)、が含まれるとする。図9の各処理主体は主にSC0(MNG)である。また図9は、制御回路SC0が備える書込み物理アドレステーブルNXPATが1つの場合(図2)の処理例である。
図9は、情報処理装置CCからメモリモジュールMM0の制御回路SC0へライトリクエストWQが入力された際にMM0(SC0)が行うデータ書込み動作の処理フロー例を示す。本実施の形態では、SC0内の情報処理回路MNGは、複数(8個)のNVM{NVM10〜NVM17}の中(メモリ領域)へ、前述の512バイトのサイズの物理アドレスPA領域(セクタ)毎に書込みデータ(WDATA)を書き込む。例えばライトリクエストWQ01は、論理アドレス値LA=0、データ書込み命令WT、セクタカウントSEC=1、512バイト単位の書込みデータWDATA(WDATA01)、が含まれるとする。図9の各処理主体は主にSC0(MNG)である。また図9は、制御回路SC0が備える書込み物理アドレステーブルNXPATが1つの場合(図2)の処理例である。
(Step101) ライトリクエストWQ(WQ01)が入力されると、インターフェース回路HIFは、WQに埋め込まれているクロック情報を取り出し、シリアルデータ化されたWQをパラレルデータへ変換し、バッファBUF0、及び情報処理回路MNGへ転送する。
(Step102) 次に、情報処理回路MNGは、上記WQ(WQ01)のLA(=0),WT,SEC(=1)を解読し、ランダムアクセスメモリRMの情報(ATT,PST,PAT)におけるLA=0番地に対応して格納されている現在の物理アドレス値CPA(=0)情報と、この値CPA(=0)に対応した有効フラグ値VF(CVF)(例えば0)及び消去回数値EC(例えば500)情報を読み出す。
(Step103) 次に、SC0(MNG)は、書込み物理アドレステーブルNXPATから、書込み優先度の高い順、即ちENUM値の小さい順に、セクタカウントSECで指定された個数分(例えば1個分)だけ、書込み物理アドレスNXPA(例えばNXPA=100)と、このNXPAに対応したNXVF及びNXECの値を読み出す。
(Step104) 次に、SC0(MNG)は、上記Step102の現在物理アドレス値CPA(例:0)と上記Step103の書込み物理アドレスNXPA(例:100)とを比較し、等しい場合(Yes)はStep107へ、異なる場合(No)はStep105へ移る。
(Step105) Step105の場合、SC0(MNG)は、Step104の現在物理アドレス値CPA(例:0)に対応した有効フラグ値CVFが0であるかどうかを判定する。CVF=0の場合(Yes)は、当該論理アドレスLA(例:0)に対応するNVMの中のPA(CPA)(例:0)が無効であることを示し、これは当該LA(例:0)に対応させるPAとしては新しい物理アドレスPA(NEWPA)(例:100)しか存在しないことを示すため、Step107へ移る。「新しい物理アドレス(PA)」をNEWPAとする。上記CVF=1の場合(No)は、当該論理アドレスLA(例:0)に対応する物理アドレスCPA(例:0)が有効(未だに有効)であることを示すため、Step106へ移る。
(Step106) Step106では、SC0(MNG)は、上記論理アドレスLA(例:0)に対応するNVMの新しい物理アドレスPA(NEWPA)(例:100)へ当該書込みデータWDATA01を書き込むために、現在物理アドレスCPA(例:0)に対応する有効フラグ値CVFを0(無効)へ変更し、更に対応して、物理アドレステーブルPAT内の当該物理アドレスCPA(例:0)の有効フラグVFを0(無効)に変更する。このようにStep106でLAに対応するCPAを無効化した後、Step107へ移る。
(Step107) Step107では、SC0(MNG)は、不揮発性メモリ装置NVM{NVM10〜NVM17}の中の上記物理アドレスCPA=NXPA(例:100)の領域へ、当該書込みデータWDATA01と、当該NXPAに対応する論理アドレス値LA(例:0)及び有効フラグ値VF(NXVF)(例:1)とを書き込む。
(Step108) 続いてStep108では、SC0(MNG)は、RM(ATT)の論理アドレスLA(例:0)の領域に、上記Step107で書き込んだNVMのLA(例:0)に対応するPA(NXPA)(例:100)及びVF(CVF)(例:1)情報を書き込む。
(Step109) 次のStep109では、MNGは、RM内の物理アドレステーブルPATの内容を更新する。即ち、MNGは、物理アドレスNXPA(例:100)に対応する消去回数値NXECを1つ増加させた新たな消去回数値EC(NEWEC)を生成させ、RM内のPAT内の当該物理アドレスPA(例:100)に対応する消去回数値ECを、上記新たな消去回数値NEWECとなるように書き換え(即ちECのカウントアップ)、当該PAの有効フラグVFを1(有効)にする。
(Step110) Step110では、SC0(MNG)は、書込み物理アドレステーブルNXPATに登録されているN個のすべての物理アドレスNXPAへの書込み(使用)が完了した状態かどうか(次に使用候補となるNXPAのエントリが無いか有るか)を判定する。特に、NXPATの全NXPAへの書込みが完了した状態(エントリ無し)の場合(Yes)はStep111へ移り、未完了(エントリ有り)の場合(No)は最初に戻って情報処理装置CCからメモリモジュールMM0へのライトリクエストWQを待つ。
(Step111) Step111では、上記NXPATの全NXPAの書込みが完了した時点で、MNGは、物理アドレステーブルPATのPAの有効フラグVF及び消去回数ECの情報を利用し、物理セグメントテーブルPST内の当該物理セグメントアドレスPSA(対応する複数のPA)に関する各情報を求め、無効物理アドレスIPAに関する物理セグメントテーブルPST1を更新する。即ち、MNGは、PST1内の当該PSAにおける前述のTNIPA,IPAmax,ECmax,IPAmin,ECminの値を求め、PST1を更新する。また上記同様に、MNGは、有効物理アドレスVPAに関する物理セグメントテーブルPST2内の当該PSAにおける前述のTNVPA,VPAmax,ECmax,VPAmin,ECminの値を求め、PST2を更新する。
(Step112) Step112では、更に、MNGは、書込み物理アドレステーブルNXPATの内容を更新する(後述、図10等)。Step112のNXPATの更新が終了すると、最初に戻って情報処理装置CCからメモリモジュールMM0へのライトリクエストWQを待つ。
[NXPAT更新処理]
図10では、図9のStep112に対応した、情報処理回路MNGがデータをNVMへ書き込むために必要な書込み物理アドレステーブルNXPATの更新の処理フロー例を示す。MM0は、NXPATを更新するために、まず物理セグメントアドレスPSAを決定し、次にこのPSA内の物理アドレスPAを決定する、という流れになる。ランダムアクセスメモリRMには、前述の図6のPST1,2のように、物理セグメントアドレスPSA毎に、無効物理アドレスIPAの総数TNIPA、有効物理アドレスVPAの総数TNVPA、IPA,VPAの中で消去回数ECの最小値ECminを持つ物理アドレスIPAmin,VPAmin、及び当該最小消去回数ECmin、といった情報が格納されている。
図10では、図9のStep112に対応した、情報処理回路MNGがデータをNVMへ書き込むために必要な書込み物理アドレステーブルNXPATの更新の処理フロー例を示す。MM0は、NXPATを更新するために、まず物理セグメントアドレスPSAを決定し、次にこのPSA内の物理アドレスPAを決定する、という流れになる。ランダムアクセスメモリRMには、前述の図6のPST1,2のように、物理セグメントアドレスPSA毎に、無効物理アドレスIPAの総数TNIPA、有効物理アドレスVPAの総数TNVPA、IPA,VPAの中で消去回数ECの最小値ECminを持つ物理アドレスIPAmin,VPAmin、及び当該最小消去回数ECmin、といった情報が格納されている。
(Step201) まず、MNGは、RM(PST1等)から、物理セグメントアドレスPSA毎に、無効物理アドレス総数TNIPAと、これらの無効物理アドレスIPA(対応PA)、IPAmin及びECminなどの情報を読み出す。
(Step202) 次に、MNGは、上記PSAの中から、上記読み出されたPSA毎のTNIPAが書込み物理アドレステーブルNXPATの登録数Nよりも大きい(TNIPA>N)という条件を満たすPSA(対応PA)を選択する。
(Step203) 更に、MNGは、上記選択されたPSA毎の最小消去回数値ECminを比較し、当該ECminの中の最小値(MINECminとする)を求める。
(Step204) 次に、MNGは、上記最小値MINECminを持つ物理セグメントアドレスPSA及び対応する物理アドレスPAから、書込み物理アドレステーブルNXPATを更新するための、物理セグメントアドレスPSA(TPSAとする)及び対応する物理アドレスPA(TPAとする)を決定する。
上記Step202で選択される物理セグメントアドレスPSAを存在させるには、NVMにおける物理アドレス(PA)空間の大きさを、論理アドレス(LA)空間の大きさよりも、少なくともNXPATが登録できるアドレス分(N分)の大きさ以上にすると良い。
(Step205) 次に、MNGは、上記更新用の物理セグメントアドレスTPSA内の物理アドレスTPAに対応する消去回数値ECをRM内から読み出し、所定の消去回数閾値(th1とする)と比較する。EC≦th1の場合(Yes)は、現在の物理アドレスCPA(TPA)への書込みを許可し、Step206へ移る。EC>th1の場合(No)は、上記書込みを禁止し、Step209へ移る。
(Step209) Step209では、MNGは、現在の物理セグメントアドレスPSA内で、消去回数閾値th1以下の消去回数ECを持つ無効物理アドレスIPAの数(n1とする)が、書込み物理アドレステーブルNXPATが登録できるアドレスの数(N)よりも小さいかどうか(n1<N)を判定する。小さい場合(Yes)はStep212へ、大きい場合はStep210へ移る。
(Step210) Step210では、現在の物理アドレスCPA(TPA)へ1を加算した連続する新しい物理アドレスCPA(TPA)を生成し、Step205へ戻る。
(Step211) Step211では、消去回数閾値th1へ所定値α分だけ加算した、新しい消去回数閾値th1を生成し、Step205へ戻る。
(Step206) Step206では、MNGが、書込み物理アドレステーブルNXPATへ、現在の物理アドレスCPA(TPA)情報と、当該CPA(TPA)に対応した有効フラグ値VF及び消去回数値EC情報とを登録する。NXPATには、図7のようにN組の登録が可能であり、本実施の形態でStep206では、エントリ番号ENUMの小さな順にN組分の情報が登録される。
また本実施の形態では、上記N値は、MNGによって任意に設定可能であり、特に、不揮発性メモリ装置NVM{NVM10〜NVM17}への書込み速度が最大となるように設定すると良い。
(Step207) 次のStep207では、MNGは、書込み物理アドレステーブルNXPATへの上記全N組の情報の登録が完了したかをチェックする。未完了の場合(No)はStep209へ移り、完了の場合(Yes)はStep208へ移る。
(Step208) Step208では、MNGは、書込み物理アドレステーブルNXPATの更新を完了する。
[更新例]
図11は、アドレス変換テーブルATT及び不揮発性メモリ装置NVM{NVM10〜NVM17}の情報の更新状態例を示す。図11(a)は、図8のATT及びNVMの初期状態に対して、制御回路SC0がNVMへライトリクエストWQ(WQ1〜WQ3)によるデータWDATAを書き込んだ後(NVM使用開始後)の状態を示している。更に図11(b)は、図11(a)の状態の後に、続いて、制御回路SC0がNVMへライトリクエストWQ(WQ4〜WQ9)によるデータWDATAを書き込んだ後の状態を示している。図8と同様に、ATT及びNVMに格納される各アドレス、データ、及びフラグ等の値を示している。
図11は、アドレス変換テーブルATT及び不揮発性メモリ装置NVM{NVM10〜NVM17}の情報の更新状態例を示す。図11(a)は、図8のATT及びNVMの初期状態に対して、制御回路SC0がNVMへライトリクエストWQ(WQ1〜WQ3)によるデータWDATAを書き込んだ後(NVM使用開始後)の状態を示している。更に図11(b)は、図11(a)の状態の後に、続いて、制御回路SC0がNVMへライトリクエストWQ(WQ4〜WQ9)によるデータWDATAを書き込んだ後の状態を示している。図8と同様に、ATT及びNVMに格納される各アドレス、データ、及びフラグ等の値を示している。
図11(a)で、本例では、まず情報処理装置CCから制御回路SC0へ例えば4つのライトリクエストWQ0,WQ1,WQ2,WQ3が入力され、これらWQ({論理アドレスLA,データ書込み命令WT,セクタカウントSEC,書込みデータWDATA})のデータ(WDATA0〜WDATA3)がNVMへ書き込まれた場合である。第1のライトリクエストWQ0には{LA=0,WT,SEC=1,WDATA0}が含まれる。第2のライトリクエストWQ1には{LA=1,WT,SEC=1,WDATA1}が含まれる。第3のライトリクエストWQ2には{LA=2,WT,SEC=1,WDATA2}が含まれる。第4のライトリクエストWQ3には{LA=3,WT,SEC=1,WDATA3}が含まれる。
上記WQ0〜WQ3が制御回路SC0へ入力された際、インターフェース回路HIFは、これらのライトリクエストWQをバッファBUF0へ転送する。次に、情報処理回路MNGは、バッファBUF0へ格納されているWQ0〜WQ3を順に読み出す。次に、MNGは、WQ0〜WQ3の論理アドレス値LAがそれぞれ0,1,2,3であるため、メモリ制御装置RMCを通じて、RMに格納されているアドレス変換テーブルATTの論理アドレスLAの0番地、1番地、2番地、及び3番地から、対応する物理アドレス値PA(CPA)及び有効フラグ値VF(CVF)を読み出す。最初は図8のように読み出された全てのVF(CVF)は0(無効)であるため、LA=0〜3番地にはPAが割り当てられていないことがわかる。
次に、MNGは、書込み物理アドレステーブルNXPAT(図7)のエントリ番号ENUMの0番から3番まで(4つのRQに対応した4個分)に格納されている物理アドレス値NXPA(本例では図7(a)のNXPA=0,1,2,3)を読み出し、当該物理アドレス値NXPAを、図11(a)のATTのLA,CPAに示すように、論理アドレスLAの0〜3番地に対して割り当てる。
更に、MNGは、上記物理アドレス値NXPA(0〜3)に従い、調停回路ARB及びメモリ制御装置NC{NC0〜NC7}を通じて、図11(b)に示すように、不揮発性メモリ装置NVMの物理アドレスPA=0番地の領域に対しては、第1のライトリクエストWQ0のデータWDATA0及びLA=0,DVF=1の情報を書き込む(101)。同様に、PA=1へWQ1のWDATA1,LA=1,DVF=1を書き込み(102)、PA=2へWQ2のWDATA2,LA=2,DVF=1を書き込み(103)、PA=3へWQ3のWDATA3、LA=3,DVF=1を書き込む(104)。
最後に、MNGは、上記801〜804に対応して、メモリ制御装置RMCを通じて、RMのアドレス変換テーブルATTの論理アドレスLA=0に対しては、図11(a)のように、物理アドレス値CPA=0、及び有効フラグ値CVF=1を書き込む。同様に、LA=1へCPA=1,CVF=1を書き込み、LA=2へCPA=2,CVF=1を書き込み、LA=3へCPA=3,CVF=1を書き込む。
図11(b)で、情報処理装置CCから制御回路SC0へ、更に6つのライトリクエストWQ4,WQ5,WQ6,WQ7,WQ8,WQ9が入力され、これらのWQのデータ(WDATA4〜WDATA9)がNVMへ書き込まれた後の状態である。第5のライトリクエストWQ4には{LA=0,WT,SEC=1,WDATA4}が含まれる。第6のライトリクエストWQ5には{LA=1,WT,SEC=1,WDATA5}が含まれる。第7のライトリクエストWQ6には{LA=4,WT,SEC=1,WDATA6}が含まれる。第8のライトリクエストWQ7には{LA=5,WT,SEC=1,WDATA7}が含まれる。第9のライトリクエストWQ8には{LA=2,WT,SEC=1,WDATA8}が含まれる。第10のライトリクエストWQ9には{LA=3,WT,SEC=1,WDATA9}が含まれる。
上記6つのライトリクエストWQ4〜WQ9が制御回路SC0へ入力された際、インターフェース回路HIFは、これらのWQをバッファBUF0へ転送する。次に、情報処理回路MNGは、上記バッファBUF0へ格納されているWQ4〜WQ9を順に読み出す。次に、MNGは、WQ4〜WQ9のLAがそれぞれ0,1,4,5,2,3であるため、メモリ制御装置RMCを通じて、RMのアドレス変換テーブルATTのLA=0番地、1番地、4番地、5番地、2番地、及び3番地から、それぞれ物理アドレス値PA(CPA)及び有効フラグ値VF(CVF)を読み出す。
そして以下(1)〜(6)のようにまず[無効化動作](NVMのデータ有効フラグ値DVFを0にすること等)が実施される。
(1)WQ4に関して、図11(a)のように、ATTのLA=0に対応する物理アドレス値CPA=0、有効フラグ値CVF=1(有効、割当済)であり、まず、既に書き込まれている当該物理アドレスPA=0のデータ(WDATA0)を無効にするために、情報処理回路MNGは、NVMのPA=0のDVFを0に設定する(1から0へ更新する。101→111)。
(2)またWQ5に関して、ATTのLA=1に対応するCPA=1,CVF=1であり、既に書き込まれているPA=1のデータ(WDATA1)を無効にするために、NVMのPA=1のDVFを0にする(102→112)。
(3)次にWQ6に関して、図11(a)のように、ATTのLA=4に対応するCPA=0,CVF=0(無効、未割当)であり、LA=4には物理アドレスPAが割り当てられていないことがわかる(105)。
(4)またWQ7に関して、ATTのLA=5に対応するCPA=0,CVF=0であり、LA=5には物理アドレスPAが割り当てられていないことがわかる(106)。
(5)次にWQ8に関して、ATTのLA=2に対応するCPA=2,CVF=1であり、既に書き込まれているNVMのPA=2のデータ(WDATA2)を無効にするために、NVMのPA=2のDVFを0にする(103→113)。
(6)またWQ9に関して、ATTのLA=3に対応するCPA=3,CVF=1であり、既に書き込まれているPA=3のデータ(WDATA3)を無効にするために、NVMのPA=3のDVFを0にする(104→114)。
上記無効化動作の後、情報処理回路MNGは、以下のようにWQのデータWDATA及び対応情報をNVMの領域へ書き込む。
MNGは、上記WQ4〜WQ9の論理アドレス値LAがそれぞれ0,1,4,5,2,3であるため、書込み物理アドレステーブルNXPAT(図7)のエントリ番号ENUMの4番から9番まで(6つのWQに対応した6個分)に格納されている物理アドレス値NXPA=4,5,6,7,8,9を読み出し、当該NXPAを、図11(b)のLA,CPAのように、LAの0番地、1番地、4番地、5番地、2番地、及び3番地に対して割り当てる。
更に、MNGは、上記物理アドレス値NXPA(4〜9)に従い、調停回路ARB及びメモリ制御装置NC{NC0〜NC7}を通じて、不揮発性メモリ装置NVM{NVM10〜17}のPA=4番地の領域に対しては、ライトリクエストWQ4のデータWDATA4、論理アドレス値LA=0、及びデータ有効フラグ値DVF=1を書き込む(115)。同様に、PA=5へWQ5のWDATA5,LA=1,DVF=1を書き込み(116)、PA=6へWQ6のWDATA6,LA=4,DVF=1を書き込み(117)、PA=7へWQ7のWDATA7,LA=5,DVF=1を書き込み(118)、PA=8へWQ8のWDATA8,LA=2,DF=1を書き込み(119)、PA=9へWQ9のWDATA9,LA=3,DVF=1を書き込む(120)。
[消去動作+書込動作]
本方式で、(a)[消去動作/無効化動作]+(b)[書込動作/有効化動作]のセット動作の例は以下である。1回の1PA(セクタ)分のデータ書込動作の際、新規のデータ書き込みの場合など、有効フラグVF=0のアドレスへの書き込みの場合は、当然ながら消去動作を伴わず即時に書き込みされる。上書き要求の場合など、有効フラグVF=1のアドレスへの書き込みの場合は、当該第1のアドレス領域には上書きせず、無効化動作(VF(DVF)値の更新(1→0))、及びデータ消去(全ビットのリセット)が行われ、続いて、第1のアドレス領域とは別の連続的な第2のアドレス領域(VF=0である次の書込み物理アドレスNXPAの領域)に対する書込みデータの書き込み動作、及び有効化動作(VF(DVF)値の更新(0→1))が行われる。
本方式で、(a)[消去動作/無効化動作]+(b)[書込動作/有効化動作]のセット動作の例は以下である。1回の1PA(セクタ)分のデータ書込動作の際、新規のデータ書き込みの場合など、有効フラグVF=0のアドレスへの書き込みの場合は、当然ながら消去動作を伴わず即時に書き込みされる。上書き要求の場合など、有効フラグVF=1のアドレスへの書き込みの場合は、当該第1のアドレス領域には上書きせず、無効化動作(VF(DVF)値の更新(1→0))、及びデータ消去(全ビットのリセット)が行われ、続いて、第1のアドレス領域とは別の連続的な第2のアドレス領域(VF=0である次の書込み物理アドレスNXPAの領域)に対する書込みデータの書き込み動作、及び有効化動作(VF(DVF)値の更新(0→1))が行われる。
なお変形例として、上記セット動作につき、[消去動作]と[書込動作]の順序を逆にすることもできる。また、[消去動作]については、前述のように、無効化(フラグ値更新)のみ行っておき、時間的に後でデータ消去(リセット)を行うようにすることもできる。
本実施の形態では、相変化メモリPMであるため、[消去動作]では、データ消去対象の全メモリセルの各々の状態を一旦アモルファスあるいは結晶状態のいずれかへ設定するリセット動作を行う。リセット動作により全メモリセルの情報値を‘1’にする(図16)。
[効果等]
以上のように、実施の形態1によれば、制御回路SC0により、書込み物理アドレステーブルNXPAT等の管理に基づき、情報処理装置CCからのデータ書込み要求(WQ)に対して不揮発性メモリ装置NVM(相変化メモリPM)の次の書込み先のアドレス(NXPA)を選択(決定)し、NVM領域の使用(書込・消去)のバラツキを抑え平準化する仕組みにより、前述のNAND型フラッシュメモリ及び抵抗変化型不揮発性メモリの問題点(回数上限による寿命、データ書き込み等の非効率性、データ読み出し信頼性など)に関して改善でき、長寿命化、高信頼性、高処理性能などを実現できる。
以上のように、実施の形態1によれば、制御回路SC0により、書込み物理アドレステーブルNXPAT等の管理に基づき、情報処理装置CCからのデータ書込み要求(WQ)に対して不揮発性メモリ装置NVM(相変化メモリPM)の次の書込み先のアドレス(NXPA)を選択(決定)し、NVM領域の使用(書込・消去)のバラツキを抑え平準化する仕組みにより、前述のNAND型フラッシュメモリ及び抵抗変化型不揮発性メモリの問題点(回数上限による寿命、データ書き込み等の非効率性、データ読み出し信頼性など)に関して改善でき、長寿命化、高信頼性、高処理性能などを実現できる。
特に、上書き可能なNVM(PM)に対して上書き動作せずに、消去と書込のサイズを同じにして、(a)[消去動作]+(b)[書込動作]によりデータ書込みを実現し、抵抗変化型メモリセルの状態(抵抗値)のバラツキを抑える(一定に揃える)仕組みにより、読み出し処理性能を高め、高信頼性を実現できる。
特に、情報処理装置CCからの論理アドレスLAに対して、NVMの物理アドレスPAを連続的に割当てて使用し(LA値に依らずに連続的なPA値を割当て使用し)、メモリ領域ごとの消去回数ECのバラツキを抑え平準化する仕組みにより、長寿命かつ高信頼性を実現できる。
NVM領域は、装置使用開始時から、例えば図11のようにPAの小さい順(0,1,……)に連続的に使用されてゆく(使用に応じて消去回数ECが1ずつ増えてゆく)。かつ、NVMの既存の格納データに対する上書き動作はせずに(例えば101〜104)、無効化動作(111〜114)等、及びNXPATに基づく新しい物理アドレスPAへのデータ書き込み動作(例えば115〜120)等によって、データ書込み動作が実現されている。これにより、NVM領域への書込・消去のバラツキを抑え平準化している。この平準化により、NVM(相変化メモリPM)の長寿命化などが実現される。
<実施の形態2>
図12等を用いて、実施の形態2の情報処理システムについて説明する。実施の形態2では、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレスPA毎のデータ消去動作(消去回数EC)に関する第2の平準化方法(静的な平準化方法)について示す。なお実施の形態2は、システム構成などは実施の形態1(図1等)と同様であり、制御回路SC0などにおける処理内容が異なる。
図12等を用いて、実施の形態2の情報処理システムについて説明する。実施の形態2では、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレスPA毎のデータ消去動作(消去回数EC)に関する第2の平準化方法(静的な平準化方法)について示す。なお実施の形態2は、システム構成などは実施の形態1(図1等)と同様であり、制御回路SC0などにおける処理内容が異なる。
実施の形態1の図9,図10等で示した第1の平準化方法は、無効物理アドレスIPAに対する動的な消去回数ECの平準化方法である。この動的な平準化方法では、本メモリモジュールMM0の使用に伴い、NVM領域の消去回数ECに関し、無効物理アドレスIPAの消去回数ECと有効物理アドレスVPAの消去回数ECとの差が大きくなる場合があり得る。そのため、実施の形態2(図12等)では、上記IPAのECとVPAのECとのバラツキ(差)を抑える、静的な平準化方法について示す。実施の形態2では、消去回数ECを平準化させるため、NVMの物理アドレスPA間でのデータ移動動作(図12のStep306等)を行う。有効物理アドレスVPAの中で消去回数ECの少ない有効物理アドレスVPAは、書き換わる頻度の少ない論理アドレスLAに対するデータを保持していることを示している。そこで、消去回数ECの少ない有効物理アドレスVPA領域と、消去回数ECの多い無効物理アドレスIPA領域とでデータを移動(交換)させ、新たに消去回数ECの少ない無効物理アドレスIPAnew領域を作りだすことによって、その後の、データ書込みが消去回数ECの少ない無効物理アドレスIPAnew領域へ発生し、物理アドレスPA毎の消去回数ECを平準化できる。
[平準化方法]
図12は、制御回路SC0(情報処理回路MNG)が実行する、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレスPA毎の消去回数ECのバラツキを抑え平準化する処理フローを示す。
図12は、制御回路SC0(情報処理回路MNG)が実行する、不揮発性メモリ装置NVM(相変化メモリPM)の物理アドレスPA毎の消去回数ECのバラツキを抑え平準化する処理フローを示す。
(Step301) まずStep301で、情報処理回路MNGは、図6(a)の物理セグメントテーブルPST1内の無効物理アドレスIPAに関する最大消去回数ECmaxの中の最大値MAXECmaxと、図6(b)の物理セグメントテーブルPST2内の有効物理アドレスVPAに関する最小消去回数ECminの中の最小値MINECminとの差(差分DIF1とする:DIF1=MAXECmax−MINECmin)を求める。
(Step302) 次にStep302で、MNGは、無効物理アドレスIPAの消去回数ECと有効物理アドレスVPAの消去回数ECとの差(差分DIF2とする)に関する所定の閾値th2を設定し、当該差分DIF2と閾値th2とを比較する(DIF2>th2)。差分DIF2が閾値th2よりも大きい場合(DIF2>th2)は、消去回数ECの平準化を行うため次のStep303へ、小さい場合(DIF2≦th2)は、Step308へ進む。
(Step308) Step308では、MNGは、物理セグメントテーブルPST(PST1あるいはPST2)が更新されたかを判定し、更新された場合(Yes)は、Step301へ戻り、再度、差分DIF1を求め、いずれの物理セグメントテーブルPSTも更新されていない場合(No)はStep308を再度行う。
(Step303) Step303で、MNGは、物理セグメントテーブルPST2内の有効物理アドレスVPAに関する最小消去回数ECminの中で、最も小さな消去回数ECを持つ物理セグメントアドレスVPSAminを選択し、更に、選択された物理セグメントアドレスVPSAmin内の物理アドレスPAの中で、小さな消去回数ECを持つ物理アドレスPAから順に、複数(mとする)個分の物理アドレスPA(VPA)を選択する。これを選択有効物理アドレスSVPA{SVPA1〜SVPAm}とする。
(Step304) Step304では、MNGは、物理セグメントテーブルPST1内の無効物理アドレスIPAに関する最大消去回数ECmaxの中で、最も小さな消去回数ECを持つ物理セグメントアドレスIPSAminを選択し、更に、選択された物理セグメントアドレスIPSAmin内の物理アドレスPAの中で、大きな消去回数ECを持つ物理アドレスPAから順に、複数(mとする)個分の物理アドレスPA(IPA)を選択する。これを選択無効物理アドレスSIPA{SIPA1〜SIPAm}とする。
(Step305) Step305では、MNGは、上記Step304の選択無効物理アドレスSIPA{SIPA1〜SIPAm}が、書込み物理アドレステーブルNXPATに登録されているかどうかを調べる。上記SIPAがNXPATに登録されている場合(Yes)は、Step309で、上記現在の選択無効物理アドレスSIPA{SIPA1〜SIPAm}を、最小値を持つ物理アドレスPAの候補から外し、Step304へ戻る。上記SIPAがNXPATに登録されていない場合(No)はStep306へ進む。
(Step306) Step306では、MNGは、上記Step303の選択有効物理アドレスSVPA{SVPA1〜SVPAm}のデータを、上記Step304の選択無効物理アドレスSIPA{SIPA1〜SIPAm}へ移動させる。
(Step307) Step307では、上記Step306で選択有効物理アドレスSVPA{SVPA1〜SVPAm}のデータを選択無効物理アドレスSIPA{SIPA1〜SIPAm}へ移動させたことによって、更新する必要のある全テーブルを更新する。
上記例では、m個分の物理アドレスPAのデータを移動した。このm値は、例えば目標性能に応じて情報処理回路MNGによってプログラム(設定)が可能であり、前述のNXPATの登録数Nに対しては、1≦m≦Nに設定すると良い。
以上のように、実施の形態2によれば、静的な平準化方法により、NVM領域のIPAとVPAとのECのバラツキを抑え平準化させるようにデータ移動を行う仕組みであるため、長寿命化などを実現できる。
<実施の形態3>
図13等を用いて、実施の形態3の情報処理システムについて説明する。実施の形態3では、実施の形態1または2の構成を前提として、メモリモジュールMM0(制御回路SC0)による不揮発性メモリ装置NVMへのデータ書込みに関するパイプライン処理を行う構成である。
図13等を用いて、実施の形態3の情報処理システムについて説明する。実施の形態3では、実施の形態1または2の構成を前提として、メモリモジュールMM0(制御回路SC0)による不揮発性メモリ装置NVMへのデータ書込みに関するパイプライン処理を行う構成である。
[パイプライン書込み動作]
図13は、情報処理装置CCからメモリモジュールMM0へ連続して複数のライトリクエストWQが発生した場合における、メモリモジュールMM0内でパイプライン処理が実行されるデータ書込み動作の一例を示す。横の時間軸でT0等はパイプライン処理単位(動作)に関するタイミングを示す。
図13は、情報処理装置CCからメモリモジュールMM0へ連続して複数のライトリクエストWQが発生した場合における、メモリモジュールMM0内でパイプライン処理が実行されるデータ書込み動作の一例を示す。横の時間軸でT0等はパイプライン処理単位(動作)に関するタイミングを示す。
また、本実施の形態では、制御回路SC0の複数のバッファBUF{BUF0〜BUF3}(図2)には、それぞれ、N×512バイトの書込みデータ(WDATA)が格納できる構成である。なおこのNは前述のNXPATの登録数Nと対応関係である。
図13で、WTBUFはバッファ転送動作(バッファBUFへのデータ(WDATA)の転送(格納))を示す。例として、バッファ転送動作WTBUF0,WTBUF1,WTBUF2,WTBUF3の4つの動作では、ライトリクエストWQ(WDATAを含む)を、バッファBUF0,BUF1,BUF2,BUF3へそれぞれ転送する。例えばWTBUF0はT0からT2の期間で行われる。
PREOPは事前準備動作を示し、WTBUFによりバッファBUFに転送(格納)された書込みデータ(WDATA)を、不揮発性メモリ装置NVMへ書込むための所定の事前準備動作(対応する情報処理を含む)を示す。例として、事前準備動作PREOP0,PREOP1,PREOP2,PREOP3の4つの動作では、バッファBUF0,BUF1,BUF2,BUF3に転送された各書込みデータ(WDATA)を、それぞれNVMへ書込むための事前準備動作を示す。例えばPREOP0はT0の少し後のT1からT3の期間で行われる。
WTNVMはデータ書込み動作を示し、バッファBUFに格納されたPREOP済み状態の書込みデータ(WDATA)を不揮発性メモリ装置NVMの領域へ書き込む動作を示す。例として、データ書込み動作WTNVM0,WTNVM1,WTNVM2,WTNVM3の4つの動作では、バッファBUF0,BUF1,BUF2,BUF3に格納された各PREOP済み状態の書込みデータ(WDATA)を、それぞれNVM領域へ書き込む動作を示す。例えばWTNVM0は、PREOP0終了時のT3からT5の期間で行われる。
バッファ転送動作WTBUF0〜WTBUF3と、事前準備動作PREOP0〜PREOP3と、データ書込み動作WTNVM0〜WTNVM3との3種類の動作は、制御回路SC0によってパイプライン動作が実現される。したがって書込み速度を向上することができる。
図2の制御回路SC0の構成に対応した図13のパイプライン処理詳細例は以下である。例えばT0〜T2の期間に発生した複数(N)回のライトリクエストWQ(1)〜WQ(N)は、インターフェース回路HIFでまず第1のバッファBUF0へ転送される(WTBUF0)。第1のバッファBUF0へ書込みデータ(WDATA)が格納できない状態(バッファサイズ上限など)になると、次のT2〜T4の期間に発生した複数(N)回のライトリクエストWQ(N+1)〜WQ(2N)は、第2のバッファBUF1へ転送される(WTBUF1)。また第2のバッファBUF1へ書込みデータが格納できない状態になると、次のT4〜T6の期間に発生した複数(N)回のライトリクエストWQ(2N+1)〜WQ(3N)は、第3のバッファBUF2へ転送される(WTBUF2)。また第3のバッファBUF2へ書込みデータが格納できない状態になると、次のT6〜T8の期間に発生した複数(N)回のライトリクエストWQ(3N+1)〜WQ(4N)は、第4のバッファBUF3へ転送される(WTBUF3)。なお上記NはNXPATの登録数Nと対応関係である。
情報処理回路MNGは、T1〜T3の期間において、バッファBUF0に格納されている書込みデータ(WDATA)をNVMへ書込むための事前準備動作PREOP0を行う。情報処理回路MNGが行う事前準備動作PREOP0の処理内容例を以下に示す。
(1)上記ライトリクエストWQ(1)〜(N)に含まれる論理アドレス値LAを利用し、アドレス変換テーブルATTから、当該LAに関係付けられる物理アドレスPAを読み出し、必要に応じてこのPAの有効フラグ値VF(対応データ有効フラグ値DVF)を0にして対応データDATAを無効にする。
(2)アドレス変換テーブルATTを更新する。
(3)書込み物理アドレステーブルNXPATに格納されている物理アドレスNXPAを読み出し、このアドレスNXPAへ、ライトリクエストWQ(1)〜(N)に含まれる論理アドレスLAを割り当てる。
(4)物理セグメントテーブルPST(PST1,PST2)を更新する。
(5)物理アドレステーブルPATを更新する。
(6)次の書き込みに備えて、書込み物理アドレステーブルNXPATを更新する。
他の事前準備動作PREOP1〜PREOP3についても上記PREOP0と同様である。
次に、情報処理回路MNGは、T3からT5の期間において、バッファBUF0に格納されている書込みデータ(WDATA)を不揮発性メモリ装置NVMへ書き込むデータ書込み動作WTNVM0を行う。この際、データ(WDATA)が書き込まれるNVMの物理アドレスPAは、上記(3)で割り当てた物理アドレス値NXPAと等しい。
他のデータ書込み動作WTNVM1〜WTNVM3も上記WTNVM0と同様である。
なお、PA領域ごとのデータ消去動作を行う場合、事前準備動作PREOPで行ってもよいし、データ書込み動作WTNVMで行うようにしてもよい。また、パイプライン処理において、前記(a)[消去動作],(b)[書込動作]で別の処理単位に分けて行ってもよい。
以上のように、実施の形態3では、制御回路SC0がライトリクエストWQ(WDATA)のバッファBUFへの格納動作(WTBUF)と、書込みの事前準備動作(PREOP)と、NVM(相変化メモリ)へのデータ書込み動作(WTNVM)とをパイプライン処理する仕組みにより、前述の実施の形態1等の効果に加え、更に高性能を実現できる。
<データ読み出し動作>
図14は、情報処理装置CCからメモリモジュールMM0へリードリクエストRQ(図1)が入力された際における、メモリモジュールMM0が行うデータ読み出し動作の処理フロー例を示している。なお本読み出し処理は各実施の形態で概略同様である。
図14は、情報処理装置CCからメモリモジュールMM0へリードリクエストRQ(図1)が入力された際における、メモリモジュールMM0が行うデータ読み出し動作の処理フロー例を示している。なお本読み出し処理は各実施の形態で概略同様である。
(Step401) 情報処理装置CCから制御回路SC0へ例えばリードリクエストRQ01{論理アドレス値LA(例:0)、データ読み出し命令RD、セクタカウント値SEC(例:1)}が入力されたとする。読み出し対象データをRDATA01とする。インターフェース回路HIFは、リードリクエストRQ01に埋め込まれているクロック情報を取り出し、シリアルデータ化されたリードリクエストRQ01をパラレルデータへ変換し、バッファBUF0及び情報処理回路MNGへ転送する。
(Step402) 次に、情報処理回路MNGは、RQ01における論理アドレス値LA(例:0)、データ読み出し命令RD、及びセクタカウントSEC(例:1)を解読し、RMに格納されているアドレス変換テーブルATT内のLA=0番地に格納されている物理アドレス値PA(CPA)(例:0)と、このPA(CPA)(例:0)に対応した有効フラグ値CVFとを読み出す。
(Step403) 次に、情報処理回路MNGは、上記読み出した有効フラグ値CVFが1であるかどうかをチェックする。
(Step405) 上記CVF=0の場合(No)は、LA=0番地には物理アドレスPAが割り当てられていないことを示し、不揮発性メモリ装置NVMからデータを読み出すことができない。そのため、情報処理回路MNGは、エラーが発生したことを、インターフェース回路HIFを通じて情報処理装置CCへ伝える。
(Step404) 上記CVF=1の場合(Yes)は、LA=0番地には物理アドレスPA=0番地が対応(割当)していることを示す。そのため、情報処理回路MNGは、調停回路ARB及びメモリ制御装置NC{NC0〜NC7}を通じて、不揮発性メモリ装置NVM{NVM10〜NVM17}の当該PA=0番地から、データ(RDATA01)を読み出す。更に、読み出されたデータ(RDATA01)は、メモリ制御装置NC{NC0〜NC7}、調停回路ARB、情報処理回路MNG、及びインターフェース回路HIFを通じて、情報処理装置CCへ転送される。
<実施の形態4>
図15は、実施の形態4における制御回路SC1の構成を示す。制御回路SC1は、図2の制御回路SC0の変形例であり、異なる点として、複数(4個)の書込み物理アドレステーブルNXPAT0〜NXPAT3を備える構成である。NXPAT0〜NXPAT3は、図7と同様に、それぞれ複数(N)の物理アドレスNXPAの情報を登録する。即ち全体の登録数としてはN×4である。
図15は、実施の形態4における制御回路SC1の構成を示す。制御回路SC1は、図2の制御回路SC0の変形例であり、異なる点として、複数(4個)の書込み物理アドレステーブルNXPAT0〜NXPAT3を備える構成である。NXPAT0〜NXPAT3は、図7と同様に、それぞれ複数(N)の物理アドレスNXPAの情報を登録する。即ち全体の登録数としてはN×4である。
実施の形態4の制御回路SC1のように複数の書込み物理アドレステーブルNXPAT(NXPAT0〜NXPAT3)を備える場合、MNGはそれぞれのテーブルNXPATを独立に管理し更新処理(図10と同様)を行う。よって、複数の不揮発性メモリ装置NVM{NVM10〜NVM17}に対する書込みデータ転送速度が向上する等の効果がある。
[他の実施の形態]
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
例えばNVM領域の物理アドレスPA値の割当て使用の方法については、前述では、装置使用開始時から図8,図11のようにNVMのPA値を最初から小さい順(0,1,……)に使用してゆき、NVMの最後のPAまで一旦使い切った場合は最初のPA(0)に戻って同様に使用を繰り返す構成であるが、最初にPAを使用し始める順序はこれに限らなくてもよい。例えばPAの大きい順でもよいし、例えば飛び飛び(非連続的)のPAを使用してもよい。いずれの場合でも、NXPATに消去回数ECなどが小さいアドレス(NXPA)を登録する仕組みにより、前述同様に書込・消去のバラツキの平準化による同様の効果(長寿命化など)を実現できる。
本情報処理システム(制御回路SC0)は、前記無効化動作されたPA領域について、時間的に後で明示的に格納データの消去動作を行ってもよい。後で消去動作を行うことにより、書込み時にはフラグ値の更新のみで済むため、書き込み性能が高速化される。特にLA空間の大きさを考慮してNVMのPA空間の大きさに余裕を設ける構成の場合は、上記時間的に後で消去動作をしやすく、有用である。
消去回数ECの管理(更新)については、無効化または対応するデータ消去動作またはデータ書き込み動作などのタイミングに応じて行えばよい。また本仕組みでは、消去動作と書込動作とがセットであり回数的に対応関係であるから、ECは、書込回数などと捉えることが可能である。またECのカウントは、MM0(NVM)の使用開始時から累積でカウントすることに限らなくてもよい。所定の範囲内でカウントをやり直す構成でも、その範囲内で平準化の作用を持つため、相応の長寿命化などの効果が得られる。
本発明は、不揮発性メモリ装置及びその情報処理システムなどに利用可能である。
CC…情報処理装置(ホスト)、MM0…メモリモジュール、NVM{NVM10〜NVM17}…不揮発性メモリ装置、NVM0…ブート用不揮発性メモリ装置、RM…ランダムアクセスメモリ、SC0,SC1…制御回路、HIF…インターフェース回路、BUF{BUF0〜BUF3}…バッファ、ARB…調停回路、MNG…情報処理回路、RMC,NC{NC0〜NC7}…メモリ制御装置、NXPAT,NXPAT0〜NXPAT3…書込み物理アドレステーブル、PST{PST1,PST2}…物理セグメントテーブル、PAT…物理アドレステーブル、ATT…アドレス変換テーブル、PM…相変化メモリ。
Claims (7)
- 不揮発性メモリ装置と前記不揮発性メモリ装置へのアクセスを行う制御回路装置とを含んで成る半導体装置であって、
前記制御回路装置は、外部からの、第1種のアドレスである第1アドレス及び第1データを含む第1書込み要求に対し、当該第1種のアドレスに対して当該第1種のアドレスとは独立に前記不揮発性メモリ装置の第2種のアドレスを割当てる制御を行い、
前記制御回路装置は、前記第1書込み要求の第1アドレスに対する第2種のアドレスである第2アドレスを割り当て、
外部から前記制御回路装置へ入力される第2書込み要求に含まれる前記第1種のアドレスである第3アドレスに対する第2種のアドレスである第4アドレスを、前記不揮発性メモリ装置の前記第2アドレスへの前記第1データの前記第1書込み動作中に、割り当てる、半導体装置。 - 請求項1記載の半導体装置において、
前記制御回路装置は、第1のテーブルを装備しており、前記第1書込み動作中に、N個分(Nは1以上)の前記第2種のアドレスを前記第1のテーブルへ登録する、半導体装置。 - 請求項2記載の半導体装置において、
前記制御回路装置は、前記不揮発性メモリ装置へのデータの書込と消去を行い、前記第2種のアドレスの中で、すでに、データが消去されているアドレスを、前記第1のテーブルへ登録する、半導体装置。 - 請求項3記載の半導体装置において、
前記制御回路装置は、前記第1種のアドレスへ、前記第1のテーブルへ登録された前記第2種のアドレスを割り当て、前記不揮発性メモリ装置の当該第2種のアドレスへデータを書込む、半導体装置。 - 請求項2記載の半導体装置において、
前記半導体装置は、外部から前記制御回路装置へ入力される書込み要求に含まれるデータを保持するメモリ装置を装備しており、
前記メモリ装置の容量は、前記第1のテーブルへ登録されたN個分(Nは1以上)の前記第2種のアドレスによって、書き込まれるデータの容量以上である、半導体装置。 - 請求項5記載の半導体装置において、
前記制御回路装置に前記メモリ装置を装備している、半導体装置。 - 請求項2記載の半導体装置において、
前記制御回路装置によって、前記N値はプログラム可能である、半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015063654A JP5889462B2 (ja) | 2015-03-26 | 2015-03-26 | 半導体装置、不揮発性メモリ装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015063654A JP5889462B2 (ja) | 2015-03-26 | 2015-03-26 | 半導体装置、不揮発性メモリ装置の制御方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011088032A Division JP5722685B2 (ja) | 2011-04-12 | 2011-04-12 | 半導体装置、不揮発性メモリ装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015146209A JP2015146209A (ja) | 2015-08-13 |
JP5889462B2 true JP5889462B2 (ja) | 2016-03-22 |
Family
ID=53890374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015063654A Expired - Fee Related JP5889462B2 (ja) | 2015-03-26 | 2015-03-26 | 半導体装置、不揮発性メモリ装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5889462B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
KR100621631B1 (ko) * | 2005-01-11 | 2006-09-13 | 삼성전자주식회사 | 반도체 디스크 제어 장치 |
JP2008123314A (ja) * | 2006-11-14 | 2008-05-29 | Nec Electronics Corp | 半導体記憶装置への情報記録方法及び情報記録システム |
US8645617B2 (en) * | 2008-12-09 | 2014-02-04 | Rambus Inc. | Memory device for concurrent and pipelined memory operations |
JP5010723B2 (ja) * | 2010-09-22 | 2012-08-29 | 株式会社東芝 | 半導体記憶制御装置 |
-
2015
- 2015-03-26 JP JP2015063654A patent/JP5889462B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015146209A (ja) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5722685B2 (ja) | 半導体装置、不揮発性メモリ装置の制御方法 | |
JP5792019B2 (ja) | 半導体装置 | |
KR101300657B1 (ko) | 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법 | |
US20190050153A1 (en) | Routing data blocks during thermal throttling | |
JP5847940B2 (ja) | 半導体装置 | |
JP5756622B2 (ja) | 半導体装置 | |
JP6166476B2 (ja) | メモリモジュールおよび情報処理システム | |
JPWO2006067923A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 | |
KR20100016987A (ko) | 상 변화 메모리를 포함하는 컴퓨팅 시스템 | |
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US20180024744A1 (en) | Data storage devices and computing systems including the same | |
JP6073495B2 (ja) | 半導体装置 | |
JP6360627B2 (ja) | 不揮発性メモリの制御方法、制御装置、および半導体記憶装置 | |
US20220206920A1 (en) | Data Routing Techniques to Delay Thermal Throttling | |
JP5889462B2 (ja) | 半導体装置、不揮発性メモリ装置の制御方法 | |
WO2014203316A1 (ja) | 情報処理装置、制御回路、制御プログラム、及び制御方法 | |
JP5807103B2 (ja) | 半導体装置 | |
JP5620557B2 (ja) | 情報処理システム | |
JP2011128826A5 (ja) | 記憶装置、システムlsi及びデータ処理方法 | |
JP2014139862A (ja) | 半導体装置、および記憶装置 |
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: 20160209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5889462 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |