JP5272013B2 - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP5272013B2 JP5272013B2 JP2010531857A JP2010531857A JP5272013B2 JP 5272013 B2 JP5272013 B2 JP 5272013B2 JP 2010531857 A JP2010531857 A JP 2010531857A JP 2010531857 A JP2010531857 A JP 2010531857A JP 5272013 B2 JP5272013 B2 JP 5272013B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- metadata
- semiconductor device
- phase change
- area
- 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 50
- 230000008859 change Effects 0.000 claims description 138
- 238000000034 method Methods 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 18
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 11
- 101150046378 RAM1 gene Proteins 0.000 description 11
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012937 correction Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 239000000463 material Substances 0.000 description 7
- 150000004770 chalcogenides Chemical class 0.000 description 6
- 230000006866 deterioration Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 101000581507 Homo sapiens Methyl-CpG-binding domain protein 1 Proteins 0.000 description 4
- 101001134861 Homo sapiens Pericentriolar material 1 protein Proteins 0.000 description 4
- 102100027383 Methyl-CpG-binding domain protein 1 Human genes 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 101001106432 Homo sapiens Rod outer segment membrane protein 1 Proteins 0.000 description 2
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 2
- 102100021424 Rod outer segment membrane protein 1 Human genes 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 229910001416 lithium ion Inorganic materials 0.000 description 2
- 239000012782 phase change material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100031584 Cell division cycle-associated 7-like protein Human genes 0.000 description 1
- 101000777638 Homo sapiens Cell division cycle-associated 7-like protein Proteins 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
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 229910052714 tellurium Inorganic materials 0.000 description 1
- PORWMNRCUJJQNO-UHFFFAOYSA-N tellurium atom Chemical compound [Te] PORWMNRCUJJQNO-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0004—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Crystallography & Structural Chemistry (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本発明は半導体装置に関し、特に、カルコゲナイド材料の状態変化に伴う抵抗値の差を利用して情報を記憶する相変化メモリ等を含んだ半導体装置に適用して有益な技術に関するものである。
例えば、NAND型フラッシュメモリでは、メモリセル駆動に必要な電圧を供給する制御線を複数のメモリセルで共有している。このため、データのプログラム動作及び読出し動作はページと呼ばれる複数ビット単位で、消去動作は複数のページからなるブロックと呼ばれる単位で夫々行われる。このようなNAND型フラッシュメモリでは、局所的な書き込みに伴う局所的なメモリ領域の劣化を防止する目的などから、通常、動作履歴の管理が行われている。
図2は、2ギガ・ビットNAND型フラッシュメモリを例としてメモリのアドレス割付け方法の一例を図示したものである。ページは、2048バイトのメイン領域MFDと64バイトのスペア領域SFDとで構成され、12ビットのカラムアドレス信号CA[11:0]を用いてバイト単位で活性化される。メイン領域MFDは、さらに四つのセクタに分割されている。以下ではこれら四つのセクタの夫々を、第一セクタまたはA領域、第二セクタまたはB領域、第三セクタまたはC領域、第四セクタまたはD領域と呼ぶことにする。セクタとは、アプリケーションやオペレーティング・システムが情報を取り扱う際の管理単位であり、その容量は一般に512バイトである。これらのセクタには、ユーザーが扱う情報が記憶される。
スペア領域SFDは、メイン領域MFDのセクタ数に応じて四つの領域で構成される。E領域は第一セクタのスペア領域、F領域は第二セクタのスペア領域、G領域は第三セクタのスペア領域、H領域は第四セクタのスペア領域である。これらのE領域〜H領域には、夫々16バイトが割り当てられ、メイン領域MFDの不良ビットが置換されたり、誤り訂正符号の冗長ビットが記憶されたりする。ブロックは、このような構成のページを64個用いて構成される。ページは6ビットのページアドレス信号PA[5:0]、ブロックは11ビットのブロックアドレス信号BA[16:6]を用いて選択される。
図3は、任意のブロックにおけるプログラム動作及び消去動作の例を示している。ここでは説明を簡単にするために、各ページ(ここではPage0〜Page63)からスペア領域が省略されている。300は、ユーザーが当該ブロックに初めて情報を書き込んだ状態である。この例では、ページ0のA領域〜C領域に、ファイルX0〜ファイルZ0が夫々保存されている。書き込まれたファイルの情報量は、夫々512バイト以下である。ページ0のD領域と、ページ1〜ページ63は空き状態(empty)である。ファイルを示す記号の添え字は、ファイルの履歴を示すものとする。例えば、ファイルXnはファイルX0がn回書換えられた状態にあること、すなわちn回更新された状態にあることを示す。状態300の時点での書き込み命令の受信回数は1回、プログラム動作(program)回数は1回、消去(erase)回数は0回である。
301は、ファイルX0がX1に更新された状態を示している。空いていたページ1のA領域に新たなファイルX1が書き込まれ、B領域〜C領域には元のファイルY0、Z0が夫々転写される。この際、古いファイルが書き込まれていたページ0は無効化される。この時点での書き込み命令の受信回数は2回、プログラム動作(program)回数は2回、消去(erase)回数は0回である。以降、順次、ファイルの更新が行われる。302は、ファイルX20がX21に更新された状態を示している。これまでに、ファイルY0、Z0もY21、Z21に夫々更新されている。これらのファイルが、ブロック内の最後のページ63に書き込まれる。状態302での書き込み命令の受信回数は64回、プログラム動作(program)回数は64回、消去(erase)回数は0回である。
さらに、ファイルX21の更新が生じた場合には、最新のファイルを書き込むための空き領域を生み出す処理が行われる。具体的には、ページ63の記憶情報をメモリアレイの外に設けられたレジスタ(310)に一旦退避させておいて、ブロック内の記憶情報を消去する(状態303)。その後、先頭のページ0のA領域に新たなファイルX22を書き込み、B領域〜C領域には元のファイルY21、Z21を夫々転写する。この結果、状態304での書き込み命令の受信回数は65回、プログラム動作(program)回数は65回、消去(erase)回数は1回となる。
NAND型フラッシュメモリがプログラム動作及び消去動作を繰り返し実行すると、メモリセルにおけるトンネル酸化膜の絶縁性が徐々に劣化し、情報の記憶に支障を来たす。そこで、メモリセルの劣化を遅らせるために、所定の消去回数に達したブロックに記憶された情報を、消去回数の少ない空きブロックに転写する処理が行われている。このような処理をwear leveling、または消去回数の平準化という。wear levelingを行うには、消去動作の実行回数を記録するためのテーブルが必要である。このテーブルは、例えば、特許文献1の図10に記載されている。本明細書の図4は、同文献と同様の消去回数テーブル14を示しており、これにはブロック毎の消去回数が記憶される。
一方、本発明者等が検討した相変化メモリを含む半導体装置においては、以下の技術が考えられる。記憶素子は、少なくともアンチモン(Sb)とテルル(Te)を含むGe−Sb−Te系、Ag−In−Sb−Te系などのカルコゲナイド材料(または、相変化材料)を記録層の材料として用いている。また、選択素子はダイオードを用いている。カルコゲナイド材料とダイオードを用いた相変化メモリのアレイ構成は、例えば、非特許文献1で述べられている。
図5は、非特許文献1のFig.2に記載されたメモリコア構成に基づき、ローカル・セル・アレイLCAの構成例を示した図である。(n+1)本のローカル・ビット線LBL0〜LBLnと、(n+1)本のワード線WL0〜WLnとの交点に、相変化材料を用いた抵抗性記憶素子Rと選択用ダイオードDとが直列接続されたメモリセルMC00〜MCnnが配置される。ローカル・ビット線LBL0〜LBLnの各々は、NMOSトランジスタMNYS0〜MNYSnを介してグローバル・ビット線GBL0に接続される。トランジスタMNYS0〜MNYSnは、夫々のゲート電極に接続されたローカル・カラム選択信号LY0〜LYnによって制御される。すなわち、トランジスタMNYS0〜MNYSnの何れか一つが活性化されて導通することにより、ローカル・ビット線LBL0〜LBLnの何れか一つがグローバル・ビット線GBL0に電気的に接続される。なお、ローカル・ビット線LBL0〜LBLnと接地電極VSSとの間には、NMOSトランジスタMND0〜MNDnが夫々挿入される。トランジスタMND0〜MNDnは、夫々のゲート電極に接続されたローカル・ビット線放電信号LBLDISにより制御される。
また、非特許文献2のFig.6には、プログラム動作におけるアルゴリズムが記載されている。このアルゴリズムは、初期化動作とベリファイ書き込み動作とで構成される。初期化動作では、一旦セット動作をした後にリセットパルスが印加される。また、このアルゴリズムを用いた書き込み動作の耐久性は最大10万回と推定されている。
「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンファレンス、ダイジェスト・オブ・テクニカル・ペーパーズ(IEEE International Solid-State Circuits Conference、 Digest of Technical Papers)」、(米国)、2007年、p.472−473
「アイ・イー・イー・イー、インターナショナル・ソリッド・ステート・サーキット・カンファレンス、ダイジェスト・オブ・テクニカル・ペーパーズ(IEEE International Solid-State Circuits Conference、 Digest of Technical Papers)」、(米国)、2007年、p.428−428
本発明者等は、本願に先立ち、カルコゲナイド材料からなる記録層とダイオードを用いた相変化メモリの大容量化を検討した。非特許文献2によれば、相変化メモリの耐久性は10万回と言われているので、チップの延命すなわち信頼度向上にはwear levelingの適用が不可欠であると考えた。そこで、NAND型フラッシュメモリにおけるプログラム動作及び消去動作を見直した。
NAND型フラッシュメモリにおけるファイルの更新は、新しいファイルが元のファイルに上書き(overwrite)されるのではなく、図3に示したように同一ページの他のファイルと共にブロック内の空きページに書き込まれていた。言い換えると、NAND型フラッシュでは、予め用意されていた代替領域(ここでは空きページ)に新たなファイルが書き込まれていた。このように代替領域を確保する必要があるため、実際に記憶できる情報量、すなわち実効的なメモリ容量は、物理的なメモリ容量よりも小さくなってしまう虞があることが判明した。よって、相変化メモリでは、その動作原理に則して、効率の良いメモリアレイ動作とwear levelingを実現することが重要であることが分かった。以下では、これらの点を留意して、相変化メモリの動作とメモリセル劣化の監視方法における課題を説明する。
相変化メモリは現在記憶している情報に関係なく、元のファイルを新しいファイルが書き換える動作が可能である。すなわち、上書き動作(overwrite)が可能であるため、NAND型フラッシュメモリのような消去動作が不要である。本明細書では、NAND型フラッシュのプログラム動作と区別するために、相変化メモリで実行される書き込み動作を上書き動作と呼ぶことにする。消去動作が不要なため、メモリセル駆動に必要な電圧を供給する制御線を共有するメモリセル数の自由度が上がり、図2に示したメモリのアドレス割付けからブロック階層を取り除くことができる。究極的にはページ階層も取り除き、例えば読出し専用メモリ(ROM:Read only memory)で広く行われている2バイト(=16ビット)単位での上書き動作や、1ビット単位での上書き動作も可能である。しかし、大容量相変化メモリを固体ストレージに適用することと、NAND型フラッシュメモリとの違いが容易に理解できるようにすることを念頭に置いて、512バイト単位(セクタ単位)での上書き動作をページ単位で管理する場合を考えた。
図6は、相変化メモリのページj〜ページ(j+1)における上書き動作の例を示している。ここでは、図3と同様に説明を簡単にするために、スペア領域が省略されている。600は、ユーザーが初めて情報を書き込んだ状態である。ページjのA領域〜C領域には、ファイルX0〜ファイルZ0が保存されている。書き込まれたファイルの情報量は、夫々512バイト以下である。ページjのD領域と、ページ(j+1)は空き状態(empty)である。状態600の時点での書き込み命令受信回数は1回、ファイルX0系の上書き動作(overwrite)回数は0回、ファイルY0系の上書き動作(overwrite)回数は0回、ファイルZ0系の上書き動作(overwrite)回数は0回である。
601は、ファイルX0がX1に更新された状態を示している。ページjのA領域に新たなファイルX1が上書きされ、B領域〜C領域には元のファイルY0、Z0が保持される。この時点での書き込み命令受信回数は2回、ファイルX0系の上書き動作(overwrite)回数は1回、ファイルY0系の上書き動作(overwrite)回数は0回、ファイルZ0系の上書き動作(overwrite)回数は0回である。以降、順次、ファイルの更新が行われる。
602は、X0系のファイルがX21に、Y0系のファイルがY21に、Z0系のファイルがZ21に夫々更新された状態を示している。この時点での書き込み命令受信回数は64回、ファイルX0系の上書き動作(overwrite)回数は21回、ファイルY0系の上書き動作(overwrite)回数は21回、ファイルZ0系の上書き動作(overwrite)回数は21回である。
次に、ファイルX21の更新が生じた場合には、ページjのA領域に新たなファイルX22が上書きされ、B領域〜C領域には元のファイルY21、Z21が保持される(状態603)。相変化メモリは10万回まで上書き動作が可能であるため、図3に示したNAND型フラッシュメモリのような空きページ(ここではページ(j+1))への書き込みは不要である。この時点での書き込み命令受信回数は65回、ファイルX0系の上書き動作(overwrite)回数は22回、ファイルY0系の上書き動作(overwrite)回数は21回、ファイルZ0系の上書き動作(overwrite)回数は21回である。
状態604では、さらにファイルの更新が繰り返され、A領域にはファイルX99957、B領域にはファイルY21、C領域にはファイルZ21が夫々記憶されている。この時、ページjの書き込み命令受信回数は10万回、ファイルX0系の上書き動作(overwrite)回数は99957回、ファイルY0系の上書き動作(overwrite)回数は21回、ファイルZ0系の上書き動作(overwrite)回数は21回である。
引き続いて、ページj内のファイルの更新が生じると、書き込み命令受信回数は10万回を超えるので、空きページ(j+1)への移動が行われる。すなわち、新たなファイルX99958がページ(j+1)に記憶され、ページjに記憶されていたファイルY21、Z21がページ(j+1)へ夫々転写される。その際に、ページjが無効化される。
以上のことから、相変化メモリの書き込み動作の特徴は、現在使用しているページを上書き動作回数の上限近くまで使い切ってから、新たな空きページに書き込んでいく点にある。NAND型フラッシュメモリのように、予め複数の代替領域が確保されることはないので、実効的なメモリ容量の増加が期待できる。しかし、状態604から状態605への遷移に見られるように、特定のファイル(ここではファイルX0系)に更新が集中すると、更新頻度の低いファイル(ここでは、ファイルY21、Z21)が記憶されている領域(ここではB領域、C領域)では、上書き動作の頻度が低いにも関わらず、新たなページへの転写が行われる。すなわち、メモリセルの劣化が進まぬうちに、当該ページ(ここではページj)の無効化が行われる。この処理は、更新頻度の低い領域にとっては本来無用のものである。
本発明は、このようなことを鑑みてなされたものであり、前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
本実施の形態による半導体装置は、メモリ領域の書き込み動作回数が階層的に管理され、これに基づいて記憶データの入れ替えが行われる不揮発性メモリを有するものとなっている。すなわち、メモリ領域が、複数の第一メモリ領域に分割管理され、各第一メモリ領域が、複数の第二メモリ領域に分割管理される。各第一メモリ領域内では、その中の複数の第二メモリ領域毎の書き込み動作回数に基づいてこの複数の第二メモリ領域の間で記憶データの入れ替えが行われる。さらに、各第一メモリ領域に対して、その中に含まれる複数の第二メモリ領域毎の書き込み動作回数のいずれか1つが代表的な書き込み動作回数として設定され、これによって複数の第一メモリ領域毎に設定された書き込み動作回数に基づいてこの複数の第一メモリ領域の間で記憶データの入れ替えが行われる。
このように階層的に書き込み動作回数を管理することで、メモリ領域の書き込み動作回数の木目細かな平準化を行うことが可能となる。また、この木目細かな平準化を効率的に行うことが可能となる。その結果、メモリの寿命低下の抑制や、メモリ使用効率の向上などが図れる。
ここで、複数の第一メモリ領域の1個に含まれる複数の第二メモリ領域毎の書き込み動作回数は、この複数の第二メモリ領域のいずれか1個の第二メモリ領域内に書き込まれることで管理されることが望ましい。すなわち、1個の第一メモリ領域に含まれる複数の第二メモリ領域において、そのいずれか一つの領域に、自身を含めたこの複数の第二メモリ領域毎の書き込み動作回数を記憶させ、他の領域に任意のユーザーデータを記憶させる。この際に、書き込み動作回数が記憶された領域とユーザーデータが記憶された領域は、その各領域の書き込み動作回数に応じて記憶データの入れ替えが行われることもある。
このように、複数の第二メモリ領域のいずれか一つの領域に書き込み動作回数を記憶させることで、この書き込み動作回数を例えば外部メモリで管理するような場合と比較して、この外部メモリの容量を削減できる。すなわち、書き込み動作回数の管理単位を小さくすればするほど、その管理に必要なメモリ容量が増加し、コストの増大を招くことになるが、このメモリ容量を外部メモリではなく自身に確保するためコストの増大を抑制することができる。さらに、この管理に必要なメモリ容量は、各第二メモリ領域毎の書き込み動作回数そのものを記憶させるのではなく、ある基準の書き込み動作回数を設けて、これとの差分値として記憶させるとよい。これによって、必要なメモリ容量の低減が図れる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、書き込み動作回数の木目細かな平準化を実現でき、メモリ使用効率の向上が図れる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
本実施の形態1では、相変化メモリのwear leveling方法を提供する。このwear levelingに際しては、NAND型フラッシュメモリのように書き込み単位(例えばセクタ単位)と異なる単位(ブロック単位)を管理単位とするのではなく、書き込み単位(例えばセクタ単位)を管理単位として上書き動作回数を監視することが主要な特徴となっている。これによって、例えば、前述した図6を例として、更新頻度が高い領域(領域A)と低い領域(領域Bまたは領域C)を入れ替えることができ、メモリ全体としての劣化を遅らせ、結果として、メモリ使用効率の向上などが図れる。
本実施の形態1では、相変化メモリのwear leveling方法を提供する。このwear levelingに際しては、NAND型フラッシュメモリのように書き込み単位(例えばセクタ単位)と異なる単位(ブロック単位)を管理単位とするのではなく、書き込み単位(例えばセクタ単位)を管理単位として上書き動作回数を監視することが主要な特徴となっている。これによって、例えば、前述した図6を例として、更新頻度が高い領域(領域A)と低い領域(領域Bまたは領域C)を入れ替えることができ、メモリ全体としての劣化を遅らせ、結果として、メモリ使用効率の向上などが図れる。
ただし、このように木目細かく上書き動作回数を監視しようとすると、上書き動作回数管理テーブルの情報量が増えてしまう。具体的には、ページ単位で監視する場合の上書き動作回数テーブルの情報量は、NAND型フラッシュメモリにおいてブロック単位で監視されていた消去回数テーブル(図4)と比べて例えば64倍となる。さらに、セクタ単位で監視する場合の上書き動作回数テーブルの情報量は、前述したブロック単位の場合と比べて256倍となる。このような管理テーブル規模の増大は、管理テーブルが通常置かれるRAM等のメモリ容量の増加に直結して、コストの増大を招く虞がある。また、この管理テーブルを用いたwear levelingを行う際に、参照する情報量の多さからその処理時間の増大を招く虞がある。
そこで、本実施の形態1におけるwear leveling方法の他の主要な特徴は、階層的な上書き動作回数の監視を用いる点にある。そして、この階層的な上書き動作回数の監視によって、上書き頻度の高い領域に記憶されたファイルを、上書き頻度の低い領域に記憶されたファイルと交換する。ここで、階層的な上書き動作回数の監視の意味するところは、例えば上位階層はページを指し、図2に示したメモリのアドレス割付けにおいて、該当するページの構成要素である4つのセクタで実行された上書き動作回数のうち、最小の値が監視される。また、下位階層はページの構成要素である4つのセクタを指し、各セクタで実行された上書き動作回数の各々が監視される。以下、これらの特徴を含む半導体装置の詳細について説明する。
《相変化メモリモジュールと相変化メモリの構成》
まず、本実施の形態1における相変化メモリモジュールと相変化メモリの構成を夫々説明する。図7は、本発明による実施の形態1の半導体装置における、相変化メモリを用いたメモリモジュールの構成例を示す図である。図7の相変化メモリモジュールPCMMDLは、相変化メモリPCM、外付けのランダム・アクセス・メモリRAM1、コントローラブロックCTLRBLKで構成される。外付けのランダム・アクセス・メモリRAM1は、SRAM(スタティック・ランダム・アクセス・メモリ)またはDRAM(ダイナミック・ランダム・アクセス・メモリ)である。コントローラブロックCTLRBLKは、マイクロ・プロセッサ・ユニットMPU、ランダム・アクセス・メモリRAM0、読出し専用メモリ(リード・オンリー・メモリ)ROM、相変化メモリインタフェイスPCMIF、ホスト機器インタフェイスHOSTIFで構成される。
まず、本実施の形態1における相変化メモリモジュールと相変化メモリの構成を夫々説明する。図7は、本発明による実施の形態1の半導体装置における、相変化メモリを用いたメモリモジュールの構成例を示す図である。図7の相変化メモリモジュールPCMMDLは、相変化メモリPCM、外付けのランダム・アクセス・メモリRAM1、コントローラブロックCTLRBLKで構成される。外付けのランダム・アクセス・メモリRAM1は、SRAM(スタティック・ランダム・アクセス・メモリ)またはDRAM(ダイナミック・ランダム・アクセス・メモリ)である。コントローラブロックCTLRBLKは、マイクロ・プロセッサ・ユニットMPU、ランダム・アクセス・メモリRAM0、読出し専用メモリ(リード・オンリー・メモリ)ROM、相変化メモリインタフェイスPCMIF、ホスト機器インタフェイスHOSTIFで構成される。
ランダム・アクセス・メモリRAM0は、SRAMまたはDRAMである。外付けのランダム・アクセス・メモリRAM1やランダム・アクセス・メモリRAM0は、相変化メモリPCMから読出した記憶情報や、相変化メモリPCMへ新たに書き込む情報を一時的に保持する。Wear levelingや誤り訂正などを行うプログラムは、読出し専用メモリROMに記憶される。マイクロ・プロセッサ・ユニットMPUは、このプログラムを読み出して、Wear levelingを実行する。コントローラブロックCTLRBLKの各ユニットは、相変化メモリインタフェイスPCMIFから相変化メモリ信号群PCMSIGを介して相変化メモリPCMと接続される。また、RAM信号群RAMSIGを介して外付けのランダム・アクセス・メモリRAM1と接続される。さらに、ホスト機器インタフェイスHOSTIFからホスト機器信号群HOSTSIGを介してホスト機器HOSTと接続される。
図8は、図7の相変化メモリPCMの概略構成例を示す要部ブロック図である。図8の相変化メモリは、ユーザー領域UFDとベンダ領域VFDの二つの領域で構成される。両領域は例えば図5に示したように、カルコゲナイド材料からなる記録層とセル選択用のダイオードで構成されたメモリセルがアレイ状に配置された構成である。図8に示したように、メイン領域MFDとスペア領域SFDを用いて、ページPGが形成される。ユーザー領域UFDやベンダ領域VFDは、8本の入出力線IO0〜IO7を介して図7に示したコントローラブロックCTLRBLKとの間で記憶情報の授受を行う。ベンダ領域VFDは、チップベンダやメモリモジュール・ベンダによって、ハード的またはソフト的に設定されるものである。例えば、ユーザー領域UFDに不良ビットが含まれている際の置換先に指定される。あるいは、管理テーブルの保存や、上書き動作回数が上限に達したユーザー領域に保持されていた情報をさらに更新する際の新たな記憶場所に使用される。
《ファイル更新情報》
次に、ファイル書換えに伴う上書き動作回数などの更新情報を説明する。図9は、本実施の形態1における相変化メモリの最小上書き動作回数テーブル91の例を示している。このテーブルは、前述の通り各ページの構成要素である4つのセクタで実行された上書き動作回数のうち、最小の値が記録されている。この最小上書き動作回数は、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、後述するメタデータの構成要素として相変化メモリPCMの各ページに分散して記憶される。或いは、これに加えて、メタデータの中から最小上書き動作回数のみを抽出して纏めたものとなる図9に示すような最小上書き動作回数テーブル91を、ベンダ領域VFDに別途保存しておいてもよい。
次に、ファイル書換えに伴う上書き動作回数などの更新情報を説明する。図9は、本実施の形態1における相変化メモリの最小上書き動作回数テーブル91の例を示している。このテーブルは、前述の通り各ページの構成要素である4つのセクタで実行された上書き動作回数のうち、最小の値が記録されている。この最小上書き動作回数は、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、後述するメタデータの構成要素として相変化メモリPCMの各ページに分散して記憶される。或いは、これに加えて、メタデータの中から最小上書き動作回数のみを抽出して纏めたものとなる図9に示すような最小上書き動作回数テーブル91を、ベンダ領域VFDに別途保存しておいてもよい。
一方、このような最小上書き動作回数は、相変化メモリモジュールPCMMDLが起動している場合、相変化メモリPCMから読み出され、図7に示したランダム・アクセス・メモリRAM0または、外付けのランダム・アクセス・メモリRAM1に記憶される。このランダム・アクセス・メモリ上に記憶された最小上書き動作回数は、後述するメタデータ上の最小上書き動作回数が更新された際に併せて更新される。そして、上書き動作回数の上限に達したページの置換や、ページ間におけるwear leveling等を実施する際の参照データとして扱われる。
すなわち、コントローラブロックCTLBLKは、最小上書き動作回数テーブル91を参照することにより上書き動作回数の上限に達したページを判別し、当該ページに記憶されているファイルを代替領域に転写する。このような動作により、将来更新されたファイルを確実に書込み、記憶することができる。また、各ページの上書き動作回数を比較することにより、所定の回数差に達したページを互いに入れ替える。このような動作により、特定ページへの上書きを抑えることができる。すなわち、ページ間でのwear levelingを実現することが可能となる。これらのページ管理は、従来のフラッシュメモリで広く行われているブロック入替えと同様な制御であるが、入替え単位がページに縮小されている点が異なる。後述するようなページ内でのセクタ間のwear levelingと組み合わせれば、より木目細かなwear levelingが実現される。特に情報量の小さなファイル(例えば一つのセクタで記憶できるような512バイト未満のファイル)を記憶する場合に、ファイル容量に等しい単位でwear levelingが実施されるので、フラッシュメモリのように必要のない領域までも置換されたり、入れ替えられたりすることがない。極論するとファイルが書き込まれたセクタだけにwearlevelingが実施されるので、それ以外のセクタにおいて書換え回数が消耗されることがなくなる。よって、長寿命の相変化メモリを実現可能となる。
図1は、ページ毎のメタデータの例を示している。100は、前述した最小上書き動作回数である。110〜113は、第一セクタ〜第四セクタ(すなわちA領域〜D領域)での上書き動作回数を記録するカウンタである。120〜123は、各セクタに記憶されている内容がファイルであるか、メタデータであるかを示す識別子である。または、各セクタ毎の論理アドレス割付を示す識別子である。
このようなメタデータは、ファイルX0〜Z0と共にページ内に記憶される。図2のページ構成に則れば、例えば図10のように第一セクタ〜第三セクタ(すなわちA領域〜C領域、1000〜1002)にはファイルX0〜Z0、第四セクタ(すなわちD領域、1003)にはメタデータが記憶される。ここで、E領域〜H領域(1010〜1013)は、メイン領域MFDにおける第一セクタ〜第四セクタ(1000〜1003)に対するスペア領域SFDである。
メイン領域MFDとスペア領域SFDの割り付けは、図10に示した形態のほかにも種々の変形が可能である。例えば図11に示すようにメイン領域とスペア領域を分割して、対となるA領域とE領域、B領域とF領域、C領域とG領域、D領域とH領域の夫々を隣接させて、第一セクタから第四セクタの順に配置することも可能である。セクタ単位でのwear levelingでは、メイン領域とスペア領域を対にして記憶情報の入れ換えが行われる。よって、本実施の形態1によるwear levelingの手順を容易に理解できるようにするために、以下では図11のページ構成を前提に説明する。
《相変化メモリモジュールの動作シーケンス及びwear leveling手順》
図12に従い、本実施の形態1による相変化メモリモジュールPCMMDLの動作シーケンスを説明する。図7に示した相変化メモリモジュールPCMMDLが起動すると、コントローラブロックCTLRBLKからの命令により、直ちに管理テーブルが相変化メモリからランダム・アクセス・メモリRAM0または外付けランダム・アクセス・メモリRAM1に読み出される(1201)。この管理テーブルは、例えばユーザー領域UFDやベンダ領域VFDの設定である。または、図7に示したようなホスト機器HOSTに組み込まれたアプリケーションやオペレーションシステムが扱う論理アドレスと、コントローラブロックCTLRBLKが扱う相変化メモリの物理アドレス(ここではページアドレス)との対応表、すなわち論理アドレス−物理アドレス変換テーブルである。さらには、図9に示したような最小上書き動作回数テーブル91である。このような管理テーブルの読み出しを完了すると、待機状態になる(1202)。この後、ホスト機器HOSTからの命令に応じた動作を行う。
図12に従い、本実施の形態1による相変化メモリモジュールPCMMDLの動作シーケンスを説明する。図7に示した相変化メモリモジュールPCMMDLが起動すると、コントローラブロックCTLRBLKからの命令により、直ちに管理テーブルが相変化メモリからランダム・アクセス・メモリRAM0または外付けランダム・アクセス・メモリRAM1に読み出される(1201)。この管理テーブルは、例えばユーザー領域UFDやベンダ領域VFDの設定である。または、図7に示したようなホスト機器HOSTに組み込まれたアプリケーションやオペレーションシステムが扱う論理アドレスと、コントローラブロックCTLRBLKが扱う相変化メモリの物理アドレス(ここではページアドレス)との対応表、すなわち論理アドレス−物理アドレス変換テーブルである。さらには、図9に示したような最小上書き動作回数テーブル91である。このような管理テーブルの読み出しを完了すると、待機状態になる(1202)。この後、ホスト機器HOSTからの命令に応じた動作を行う。
相変化メモリモジュールPCMMDLがホスト機器HOSTからシステム電源遮断命令を受信した場合(1203)、ランダム・アクセス・メモリに読み出していた管理テーブルを相変化メモリ(例えば図8のベンダ領域VFD)に書き込んでから(1204)、電源を遮断する。一方、待機状態(1202)において読出し命令を受信した場合(1210)、指定されたページ内のセクタに記憶されたファイルを、ランダム・アクセス・メモリRAM0または外付けランダム・アクセス・メモリRAM1に読み出す(1211)。読出し動作を完了した後、再び待機状態に戻る(1202)。
また、待機状態(1202)において相変化メモリモジュールPCMMDLがホスト機器HOSTから書き込み命令を受信した場合、書き込み動作の前にwear leveling1230を実行する。まず、書き込み命令で指定されたセクタが所属するページを読み出す(1220)。そして、コントローラブロックCTLRBLKは、図1に示したメタデータに記録された各セクタの上書き動作回数がwear levelingを実施するような値になっているか否かの解析を行う(1231)。ここでは、wear leveling実行条件の例として、次の二つの条件を定める。
(条件1)上書き動作回数の最大値と最小値の差が、3以上であること。
(条件2)メタデータを記憶しているセクタの上書き動作回数が、上位2番以内にあること。
条件1は、セクタ間の上書き動作回数差を一定の値に保つための条件である。条件2は、メタデータを当該領域に留めるための条件である。メタデータは常に更新されるので、メタデータを記憶する領域の上書き動作回数は、このメタデータが属するページのいずれかのセクタに書き込み命令が発行される度に1増加する。後述するWear levelingが実行されると、メタデータは上書き頻度の低い領域に移動させられる。ここでメタデータの特質を鑑みて条件2を加えることよって、メタデータが記憶された領域を、その領域の上書き動作回数が他の領域の上書き動作回数と同程度に引き上げられるまで固定することが可能になる。これにより、メタデータが上書き頻度の低い領域に移動させられた直後に再び上書き頻度の高い領域に移動させられるような事態を防止できる。
上記二つの条件を満足する場合は、wear levelingを実行する。すなわち、上書き頻度の高いファイル及びメタデータと、上書き頻度の低いファイルとの交換をランダム・アクセス・メモリ上で行う。また、この入れ替え作業に伴って上書き動作が実行されるので、メタデータにおける該当セクタの上書き動作回数カウンタの値を1増加する(1232)。さらに、最小上書き動作回数を更新する。続いて、交換されたファイルと更新されたメタデータを相変化メモリに書き込む(1233)。
次に、ランダム・アクセス・メモリ上のページ、すなわちファイルとメタデータを更新し(1241)、ここで更新されたファイルとメタデータを相変化メモリに書き込む(1242)。なお、ここでは、wear levelingを行った後に相変化メモリへの書戻しを行い(1233)、ファイルの更新およびこれに伴うメタデータの更新を行った後に再度相変化メモリへの書き込みを行っているが(1242)、勿論、これらを1回の相変化メモリへの書き込みで行うことも可能である。この場合、コントローラブロックCTLRBLKが書き込み対象となっているページのデータをランダム・アクセス・メモリに読み出した後、wear levelingと共にファイルの更新も行い、その結果を相変化メモリの当該ページに書き込むことになる。書き込み動作を完了した後、再び待機状態に戻る(1202)。
次に、このような動作シーケンスを用いた時の、書き込み動作の実行例を説明する。図13は一例として、ファイルZ0系に更新が集中した場合の状態遷移を示している。同図では、説明を簡単にするために、スペア領域は省略されている。第一列は、ホスト機器HOSTから受信した書き込み命令の数を示している。第二列〜第五列は、第一セクタ〜第四セクタに記憶されている情報を示している。第一の書き込み命令によって書き込まれた情報は、第一セクタにはファイルX0、第二セクタにはファイルY0、第三セクタにはファイルZ0、第四セクタにはメタデータMDである。
第六列〜第十四列はメタデータMDの内容を示している。これらは、図1に示したメタデータに対応している。すなわち、第六列は、当該ページに含まれる4つのセクタの上書き動作回数のうち、最小の値である。第一の書き込み命令を実行した時点では、0回である。第七列〜第十列は各セクタの上書きカウンタの値である。第一の書き込み命令を実行した時点では、0回である。第十一列〜第十四列は、各セクタに記憶されている情報の属性に対応する識別子である。識別子は10進数で記載されており、ファイルX0は0、ファイルY0は1、ファイルZ0は2、メタデータMDは3である。この識別子は、ホスト機器HOSTから入力される論理アドレスの上位部分をページアドレス、下位部分をセクタアドレスとして、このセクタアドレスを表すものとなる。
さて、このような初期状態(ここでは、書き込み命令の受信回数が1の状態)から、ファイルZ0の更新を連続して行う。2回目の書き込み命令によって、第三セクタのファイルがZ1に更新される。これに伴い、第四セクタに記憶されているメタデータも更新される。すなわち、第三及び第四の上書きカウンタの値が1に更新される。同様の動作が、3回目及び4回目の書き込み命令でも繰り返される。
次に5回目の書き込み命令を受信すると、上書きカウンタの確認において(図11の手順1231)、第一及び第二上書きカウンタの値が0で、第三及び第四上書きカウンタの値が3であるので、前述の条件1及び条件2を満たす。すなわち、上書きカウンタの最大値と最小値の差が3であり(条件1)、メタデータを記憶するセクタ(ここでは第四セクタ)の上書き動作回数が上位2番以内にある(条件2)。したがって、wear leveling(1230)が行われる。具体的には、上書き頻度の高い第四セクタに記憶されているメタデータMDが、上書き頻度の低い第一セクタに記憶されているファイルX0と交換される。同様に、上書き頻度の高い第三セクタに記憶されているファイルZ3が、上書き頻度の低い第二セクタに記憶されているファイルY0と交換される。この交換作業に伴って、各セクタで上書き動作が行われるので、メタデータMDにおける上書きカウンタの各々は、1増加される。同時に、最小上書き動作回数も1増加される。また、第一セクタ識別子はメタデータを示す3(10進数)、第二セクタ識別子はファイルZ0系を示す2(10進数)、第三セクタ識別子はファイルY0系を示す1(10進数)、第四セクタ識別子はファイルX0系を示す0(10進数)に更新される(1232)。そして、これらの結果が、相変化メモリに書き込まれる(1233)。
このようなwear levelingを完了した後に、ファイルZ3を記憶している第二セクタに新たなファイルZ4が上書きされる。これに伴い、第一及び第二上書きカウンタが1増加され、さらに上書きカウンタの最小値も1増加される。そして、これらの結果が相変化メモリに書き込まれる(1242)。以降、6回目から10回目の書き込み命令においても、Z0系のファイルとメタデータが同様に更新される。
引き続き、11回目の書き込み命令を受信すると、上書きカウンタの確認において(図12の手順1231)、第一及び第二上書きカウンタの値が7で、第三及び第四上書きカウンタの値が4であるので、前述の条件1及び条件2を満たす。すなわち、上書きカウンタの最大値と最小値の差が3であり(条件1)、メタデータMDを記憶するセクタの上書き動作回数が上位2番以内にある(条件2)。したがって、wear levelingが行われる。具体的には、上書き頻度の高い第一セクタに記憶されているメタデータMDが、上書き頻度の低い第三セクタに記憶されているファイルY0と交換される。同様に、上書き頻度の高い第二セクタに記憶されているファイルZ9が、上書き頻度の低い第四セクタに記憶されているファイルX0と交換される。この交換作業に伴って、各セクタで上書き動作が行われるので、メタデータにおける上書きカウンタの各々は、1増加される。同時に、最小上書き動作回数も1増加される。また、第一セクタ識別子はファイルY0系を示す1(10進数)、第二セクタ識別子はファイルX0系を示す0(10進数)、第三セクタ識別子はメタデータを示す3(10進数)、第四セクタ識別子はファイルZ0系を示す2(10進数)に更新される(1232)。そして、これらの結果が、相変化メモリに書き込まれる(1233)。
このようなwear levelingを完了した後に、ファイルZ9を記憶している第四セクタに新たなファイルZ10が上書きされる。これに伴い、第三及び第四上書きカウンタが1増加され、さらに上書きカウンタの最小値も1増加される。そして、これらの結果が、相変化メモリに書き込まれる(1242)。以降、12回目から16回目の書き込み命令においても、Z0系のファイルとメタデータが同様に更新される。
以上、本実施の形態1の半導体装置を用いることにより、例えば、次の五つの効果を得ることができる。
第一に、各セクタの上書き動作回数を、そのセクタが属するページのメタデータとして記憶することにより、コントローラブロックCTLRBLK内のランダム・アクセス・メモリまたは外付けランダム・アクセス・メモリに展開する管理テーブルの容量を抑制することが可能となる。よって、ランダム・アクセス・メモリ容量を抑制することが可能となり、相変化メモリモジュールの製造コストを低減することができる。
第二に、前述のメタデータにより、各ページにおけるセクタ間のwear levelingを実現することが可能となる。図12及び図13に示したように、各セクタの上書き動作回数の差が所定の値(ここでは3)になった時点でwear levelingを実行することにより、同一ページ内での各セクタ間の上書き動作回数差を抑制することが可能となる。すなわち、特定のセクタへの上書き動作の集中を回避することができる。
第三に、ユーザーが更新するファイルに加えて、メタデータもファイルと同様に記憶場所を変えることにより、常時更新されるメタデータを記憶するセクタでの上書き動作回数を抑制することが可能となる。よって、前記の第二の効果と合わせて、各セクタで均等に上書き動作を行うことが可能となり、相変化メモリの使用効率を向上させることができる。
第四に、最小上書き動作回数テーブルを用いたページ間でのwear levelingと、メタデータを用いたページ内でのセクタ間のwear levelingと組み合わせた階層的なwear levelingによって、従来のフラッシュメモリで広く行われているブロック単位でのwear levelingよりも木目細かなwear levelingを実現することが可能となる。このようなwear levelingでは、特に情報量の小さなファイル(例えば一つのセクタで記憶できるような512バイト未満のファイル)の記憶を行う際に、必要な領域だけを入れ替える動作が可能になるので、フラッシュメモリで見られるように、データを記憶していない領域をも巻き込んだwear levelingを回避することができる。よって、不必要な書換え回数の消耗が抑制されるので、長寿命の相変化メモリが実現可能となる。
第五に、前述したような階層的なwear levelingを用いることで、階層構造を用いない場合と比べて木目細かなwear levelingを効率的に実現可能になる。すなわち、便宜上、仮に128ページ構成で各ページが4セクタ構成であったとすると、セクタ階層のみでwear levelingを実施した場合、512個のセクタを対象として書換え回数を比較することになるため処理量が増大する。一方、本実施の形態のような階層構造を用いると、1個のページ内の4個のセクタと、128個のページとを対象として書換え回数を比較すればよいため、処理量を低減できる。
なお、ここでは、ページとセクタからなる2階層でwear levelingの管理を行ったが、3階層以上で管理を行うように構成することも可能である。また、ここでは、ページ間でwear levelingを管理する際に最小上書き動作回数テーブルを用いたが、必ずしも最小上書き動作回数である必要はなく、例えば、1個のページに含まれる複数のセクタにおける書換え回数のいずれか1個を代表値として、それを当該ページの上書き動作回数として管理してもよい。
(実施の形態2)
本実施の形態2では、相変化メモリのページ構成の別の例を説明する。図14は、本実施の形態2におけるページ構成例を示している。このページ構成の特徴は、相変化メモリの書き込み単位が細分化されたことに応じて、メイン領域MFDが256バイト単位に8つのA領域〜H領域(第一ユニット〜第八ユニット(1400〜1407))に分割されている点にある。また、メイン領域MFDの構成に応じて、スペア領域SFDも8つのa領域〜h領域(第一ユニット〜第八ユニット(1410〜1417))領域に分割される点にある。ここで、A領域〜H領域(a領域〜h領域)のいずれか一つ(例えばH領域(h領域))が、メタデータ用に割り当てられる。このメタデータは、図1を拡張して8つの領域を管理するような構造となっている。
本実施の形態2では、相変化メモリのページ構成の別の例を説明する。図14は、本実施の形態2におけるページ構成例を示している。このページ構成の特徴は、相変化メモリの書き込み単位が細分化されたことに応じて、メイン領域MFDが256バイト単位に8つのA領域〜H領域(第一ユニット〜第八ユニット(1400〜1407))に分割されている点にある。また、メイン領域MFDの構成に応じて、スペア領域SFDも8つのa領域〜h領域(第一ユニット〜第八ユニット(1410〜1417))領域に分割される点にある。ここで、A領域〜H領域(a領域〜h領域)のいずれか一つ(例えばH領域(h領域))が、メタデータ用に割り当てられる。このメタデータは、図1を拡張して8つの領域を管理するような構造となっている。
このようなページ構成を用いることにより、情報量の小さなファイルを数多く記憶することが可能となる。また、実施の形態1よりも、木目細かなwear levelingを行うことが可能となる。これらの効果により、相変化メモリの使用効率をさらに向上させることができる。
なお、ページ構成は、図14の形態に限定されることなく、種々の変形が可能である。例えば図15に示すように、図11と同様に書き込み単位毎にメイン領域とスペア領域を隣接配置することも可能である。また、メイン領域MFDの分割数は、8に限定されること無く、種々の変形が可能である。例えば、128バイト単位に16分割することも可能であり、これによって、さらに木目細かなwear levelingを行うことも可能となる。さらに、スペア領域のビット数は128バイトに限定されることなく、種々の変形が可能である。例えば、誤り訂正符号の冗長ビット数に応じて、書き込み単位毎に一定量のスペア領域を確保しなければならない時は、a領域〜h領域の夫々を実施の形態1と同様に32バイトとし、合計で256バイトのスペア領域とすることも可能である。このような構成により、相変化メモリの動作信頼性を向上させることができる。
(実施の形態3)
本実施の形態3では、メタデータの配置及び構成の別の例を説明する。図16は、本実施の形態3におけるメタデータの配置を示している。この配置の特徴は、二つのページ毎にメタデータを配置する点にある。同図では、ページkとページ(k+1)に共通なメタデータが、ページ(k+1)のD(k+1)領域(1607)に記憶される例が示されている。ページkのA領域〜D領域(1600〜1603)とページ(k+1)のA領域〜C領域(1604〜1606)には、ファイルT0〜Z0が順に記憶されている。なお、1610〜1617は、メイン領域が分割された領域1600〜1607に対応するスペア領域である。このような配置に応じて、メタデータには二つのページに含まれる八つのセクタ情報が記憶される。すなわち、図17に示すように、最小上書き動作回数1700の他に、八つのセクタに関する上書き動作回数1710〜1717とファイル識別子1720〜1727が記憶される。
本実施の形態3では、メタデータの配置及び構成の別の例を説明する。図16は、本実施の形態3におけるメタデータの配置を示している。この配置の特徴は、二つのページ毎にメタデータを配置する点にある。同図では、ページkとページ(k+1)に共通なメタデータが、ページ(k+1)のD(k+1)領域(1607)に記憶される例が示されている。ページkのA領域〜D領域(1600〜1603)とページ(k+1)のA領域〜C領域(1604〜1606)には、ファイルT0〜Z0が順に記憶されている。なお、1610〜1617は、メイン領域が分割された領域1600〜1607に対応するスペア領域である。このような配置に応じて、メタデータには二つのページに含まれる八つのセクタ情報が記憶される。すなわち、図17に示すように、最小上書き動作回数1700の他に、八つのセクタに関する上書き動作回数1710〜1717とファイル識別子1720〜1727が記憶される。
このようなメタデータの配置及び構成により、各セクタにおける上書き動作回数の増加を抑制することができる。あるいは、情報量が512バイトよりも大きなファイルを記憶する場合でも、効率良いwear levelingを実現することが可能となる。例えば512バイト以上1024バイト未満のファイルを記憶する場合であれば、二つのページに三つのファイルを記憶することができるので、実施の形態1と同様の効果を得ることができる。
(実施の形態4)
前述した実施の形態1において、メモリセルの上書き動作回数の上限が10万回の場合、メタデータの上書きカウンタは、セクタ毎に17ビット必要であった。例えば、従来のNAND型フラッシュメモリのように、管理単位がブロック単位のように大きい場合には、このようなビット数は特に問題とならない。しかしながら、管理単位が、セクタ単位や更に細分化された単位(例えば図14のように細分化された書き込み単位)になってくると、上書きカウンタに要するビット数、ひいてはメタデータの情報量が倍増してしまう。そこで、本実施の形態4では、上書きカウンタのビット数を削減した場合のwear levelingの例を説明する。図18は、その動作シーケンスを示すフローチャートである。この特徴は、wear leveling(1830)の前に、上書きカウンタの減算(1850)を行う点にある。同図に示したフローチャートでは、図12の手順を踏襲しているものについては、図12と同じ手順番号が記載されている。よって、以下では、図12との相違点に焦点を当てて説明する。
前述した実施の形態1において、メモリセルの上書き動作回数の上限が10万回の場合、メタデータの上書きカウンタは、セクタ毎に17ビット必要であった。例えば、従来のNAND型フラッシュメモリのように、管理単位がブロック単位のように大きい場合には、このようなビット数は特に問題とならない。しかしながら、管理単位が、セクタ単位や更に細分化された単位(例えば図14のように細分化された書き込み単位)になってくると、上書きカウンタに要するビット数、ひいてはメタデータの情報量が倍増してしまう。そこで、本実施の形態4では、上書きカウンタのビット数を削減した場合のwear levelingの例を説明する。図18は、その動作シーケンスを示すフローチャートである。この特徴は、wear leveling(1830)の前に、上書きカウンタの減算(1850)を行う点にある。同図に示したフローチャートでは、図12の手順を踏襲しているものについては、図12と同じ手順番号が記載されている。よって、以下では、図12との相違点に焦点を当てて説明する。
本実施の形態4では、上書きカウンタのビット数を一例として4ビットとする。4ビットのカウンタは、上書き動作を15回までしか記録することができない。よって、wear leveling(1830)の前に、上書きカウンタのオーバーフローを回避するための減算(1850)を行う。まず、書き込み命令で指定されたセクタが所属するページを読み出す(1220)。次に、メタデータ内のカウンタが15以上になっているか否かを確認する。15未満であれば、wear leveling(1830)に進む。15以上の場合は、カウンタの減算を行う。すなわち、4つのセクタのカウンタのうち最小値を選び出し、図1に示した最小上書き動作回数(100)に加える(1852)。次に、各カウンタから、選び出した最小値を引き、メタデータを更新する(1853)。
続いて行うwear leveling(1830)では、ファイルの交換と共に、ファイルの交換を行ったセクタのカウンタの値を1増加する(1832)。この手順1832の際には、図12の手順1232の場合と異なり、最小上書き動作回数(100)の更新は行わない。また、その後に行われる手順1841の際にも、図12の手順1241の場合と異なり、最小上書き動作回数(100)の更新は行わない。
図19は、図18に示した動作シーケンスに基づいた動作例を示している。同図では、図13と同様にファイルZ0系に更新が集中した場合の状態遷移を示している。1番目〜16番目の書き込み命令を処理した結果は、第六列の最小上書き動作回数の値が0(ゼロ)である以外は、図13と同じである。17番目〜22番目の書き込み命令についても、同様のwear levelingと書き込み動作が行われる。23番目の書き込み命令では、第一及び第二セクタのカウンタの値が15なので、カウンタの減算処理が行われる。すなわち、4つのカウンタのうち、最小値である12を最小上書き動作回数に加算する。そして、4つのカウンタから12を引く。この結果、第一及び第二セクタのカウンタは3、第三及び第四セクタのカウンタは0となる。
引き続き、wear levelingを行う。カウンタ間の差が3以上であるので、上書き頻度が高い第一及び第二セクタに記憶されているメタデータMD及びファイルZ21と、上書き頻度が低い第三及び第四セクタに記憶されているファイルY0及びX0を交換する。この結果、第一及び第二セクタのカウンタは4、第三及び第四セクタのカウンタは1となる。さらに、ファイルZ21をファイルZ22に更新することにより、第一及び第二セクタのカウンタは4、第三及び第四セクタのカウンタは2となる。
以上のカウンタ構成と動作シーケンスにより、4ビットカウンタの値を15以下に抑制しながら、セクタ間の上書き動作回数の相対値を記録することが可能となる。また、最小上書きカウンタと併用することにより、小容量のメタデータでセクタ単位(またはそれよりも小さい書き込み単位)での上書き動作回数を監視しながら、ページ内でのwearlevelingを実現することが可能となる。よって、本実施の形態4の半導体装置は、図14や図15に示したように、ページが多分割されて書き込み単位数が増えた場合に、特に好適である。
(実施の形態5)
本実施の形態5では、書き込み動作における別の動作シーケンスを説明する。図20は、本実施の形態5による動作シーケンスを示すフローチャートである。同図では、前述の図18と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
本実施の形態5では、書き込み動作における別の動作シーケンスを説明する。図20は、本実施の形態5による動作シーケンスを示すフローチャートである。同図では、前述の図18と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
まず、書き込み命令で指定されたセクタが所属するページを読み出す(1220)。次に、ファイルとメタデータの更新を行う(1841)。続いて、後続のwear levelingやファイル更新にて各カウンタの値がオーバーフローしないように、減算処理(1850)を行ってから、更新されたファイルとメタデータを相変化メモリに書き込む(1242)。この後、wear levelingを行う(2030)。ここでも、後続のファイル更新にてカウンタの値がオーバーフローしないように、手順1832と手順1233との間に、減算処理(1850)を行う。
以上の動作シーケンスにより、書き込み命令を受信してから短時間で新しいファイルを相変化メモリに書き込むことが可能となる。よって、例えば予期せぬ電源遮断が発生した場合におけるデータ消滅の可能性を低減でき、信頼性の向上が図れる。
(実施の形態6)
本実施の形態6では、上書き動作回数管理方法の別の例を説明する。図21は、本実施の形態6における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図1に示したメタデータを廃止し、図9に示した最小上書き動作回数テーブル91に加えて、セクタ毎の上書き動作回数テーブル212が併用される点にある。これらの上書き動作回数テーブルは、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、他の管理テーブルと共に図8に示した相変化メモリのベンダ領域VFDに記憶される。一方、相変化メモリモジュールPCMMDLが起動中は、相変化メモリPCMから読み出され、図7に示したランダム・アクセス・メモリRAM0または、外付けのランダム・アクセス・メモリRAM1に一時的に記憶される。そして、実施の形態1で述べたように、上書き動作回数の上限に達したページの置換や、ページ内でwear levelingを実施する際の参照データとして扱われる。
本実施の形態6では、上書き動作回数管理方法の別の例を説明する。図21は、本実施の形態6における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図1に示したメタデータを廃止し、図9に示した最小上書き動作回数テーブル91に加えて、セクタ毎の上書き動作回数テーブル212が併用される点にある。これらの上書き動作回数テーブルは、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、他の管理テーブルと共に図8に示した相変化メモリのベンダ領域VFDに記憶される。一方、相変化メモリモジュールPCMMDLが起動中は、相変化メモリPCMから読み出され、図7に示したランダム・アクセス・メモリRAM0または、外付けのランダム・アクセス・メモリRAM1に一時的に記憶される。そして、実施の形態1で述べたように、上書き動作回数の上限に達したページの置換や、ページ内でwear levelingを実施する際の参照データとして扱われる。
図22は、図21に示した上書き動作回数テーブル212を用いた動作シーケンスのフローチャートの例を示している。図12との相違点は、書き込み命令で指定されたセクタが所属するページから読み出した情報は、全てファイルである点にある(2220)。また、wear leveling(2230)においては、上書き動作の頻度が高いファイルと上書き動作の頻度が低いファイルとの交換のみを行い(2231)、その結果のみを相変化メモリに書き込む(2232)点にある。この時、更新される上書き動作回数は、前述のランダム・アクセス・メモリに書き込まれる。また、手順2231の際には、上書き動作回数テーブル212において、書き込み対象となっているページに属するセクタ分のデータ(例えばページ0の場合セクタ番号0A〜0D)が参照される。この後、ファイルを更新し(2241)、新たなファイルを相変化メモリに書き込むと共に、このファイル更新に伴いランダム・アクセス・メモリ上の上書き動作回数も更新する(2242)。
以上のような上書きテーブルの管理方法と動作シーケンスによって、次の三つの効果が得られる。第一に、実施の形態1でも述べたように、ページ毎の最小上書き動作回数とセクタ毎の最小上書き動作回数を階層的に管理することにより、ページ単位あるいはセクタ単位の木目細かなwear levelingを実現することが可能となる。また、これを効率的に実現することが可能となる。第二に、上書き動作回数をベンダ領域VFDに一括保存することにより、ユーザー領域UFDから図1に示したようなメタデータを除外することができて、より多くのファイルを記憶することが可能となる。ただし、その分、ランダム・アクセス・メモリの容量を確保する必要がある。第三に、上書き動作回数を他の管理テーブルと共にシステム起動時に読み出しておくことにより、書き込み命令を受信時に相変化メモリから読み出す情報量を削減することが可能となる。よって、書き込み動作を短時間で行うことができる。
なお、これまでの説明では、ページ毎の最小上書き動作回数テーブル91とセクタ毎の上書き動作回数テーブル212の二つをベンダ領域VFDに一括保存することを説明してきたが、これらの管理テーブルの保存方法はこの限りではなく、種々の変形が可能である。例えば、電源遮断時に相変化メモリのベンダ領域VFDに保存しておく情報を、セクタ毎の上書き動作回数テーブル212のみとすることも可能である。この場合、相変化メモリから読み出したセクタ毎の上書き動作回数テーブル212をコントローラブロックCTLRBLKが解析して、ページ毎の最小上書き動作回数テーブル91を生成すれば良い。このような記憶方法によって、ベンダ領域VFDに記憶する情報量を削減できる。削減した分を他の管理テーブルに活用することにより、相変化メモリの機能を向上させることができる。
(実施の形態7)
本実施の形態7では、上書き動作回数管理方法のさらに別の例を説明する。図23は、本実施の形態7における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図9に示した最小上書き動作回数テーブル91に加えて、4ビット幅のセクタ上書き動作回数テーブル232が併用される点にある。これらの上書き動作回数テーブルは、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、他の管理テーブルと共に図8に示した相変化メモリのベンダ領域VFDに記憶される。一方、相変化メモリモジュールPCMMDLが起動中は、相変化メモリPCMから読み出され、図7に示したランダム・アクセス・メモリRAM0または、外付けのランダム・アクセス・メモリRAM1に一時的に記憶される。そして、実施の形態1で述べたように、上書き動作回数の上限に達したページの置換や、ページ階層におけるwear levelingを実施する際の参照データとして扱われる。
本実施の形態7では、上書き動作回数管理方法のさらに別の例を説明する。図23は、本実施の形態7における相変化メモリの上書き動作回数テーブルの例を示している。同図の特徴は、図9に示した最小上書き動作回数テーブル91に加えて、4ビット幅のセクタ上書き動作回数テーブル232が併用される点にある。これらの上書き動作回数テーブルは、図7に示した相変化メモリモジュールPCMMDLの電源が遮断されている場合、他の管理テーブルと共に図8に示した相変化メモリのベンダ領域VFDに記憶される。一方、相変化メモリモジュールPCMMDLが起動中は、相変化メモリPCMから読み出され、図7に示したランダム・アクセス・メモリRAM0または、外付けのランダム・アクセス・メモリRAM1に一時的に記憶される。そして、実施の形態1で述べたように、上書き動作回数の上限に達したページの置換や、ページ階層におけるwear levelingを実施する際の参照データとして扱われる。
図24は、図23に示した上書き動作回数テーブルを用いた動作シーケンスのフローチャートの一例を示している。図22との相違点は、wear leveling(2230)の前に、上書き動作回数カウンタの減算処理(2450)を実行する点にある。これは、図18で説明したように、上書き動作回数テーブル232の構成要素である4ビット・カウンタのオーバーフローを防ぐための処理である。上書き動作回数テーブル232にて、選択されたページに対応するセクタの上書き動作回数を確認し(2451)、差が15以上であったら最小上書き動作回数テーブル91への加算(2452)と上書き動作回数テーブル232での減算処理(2453)を行う。これらの処理は、上書き動作回数テーブルが一時記憶されているランダム・アクセス・メモリ上で行われる。
以上のような上書きテーブルの管理方法と動作シーケンスによって、上書きテーブルの情報量を削減することが可能となる。よって、削減した分を他の管理テーブルに活用することにより、相変化メモリの機能を向上させることができる。また、相変化メモリモジュール内のランダム・アクセス・メモリ容量を低減することが可能となり、システムのコストを削減することができる。
(実施の形態8)
本実施の形態8では、書き込み動作における別の動作シーケンスを説明する。図25は、本実施の形態8による動作シーケンスの一例を示すフローチャートである。同図では、前述の図24と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
本実施の形態8では、書き込み動作における別の動作シーケンスを説明する。図25は、本実施の形態8による動作シーケンスの一例を示すフローチャートである。同図では、前述の図24と同一の手順については同図と同じ手順番号が記載されている。よって、以下では、前述のフローチャートとの相違点に焦点を当てて説明する。
まず、書き込み命令で指定されたセクタが所属するページを読み出す(2220)。次に、ファイルの更新を行う(2241)。続いて、後続のwear levelingやファイル更新にて各カウンタの値がオーバーフローしないように、図24と同様の減算処理(2450)を行ってから、更新されたファイルを相変化メモリに書き込む(2242)。この後、wear levelingを行う(2530)。ここでも、後続のファイル更新にてカウンタの値がオーバーフローしないように、手順2231と手順2232との間に、減算処理(2450)を行う。
以上の動作シーケンスにより、書き込み命令を受信してから短時間で新しいファイルを相変化メモリに書き込むことが可能となる。よって、例えば予期せぬ電源遮断が発生した場合におけるデータ消滅の可能性を低減できる。
(実施の形態9)
本実施の形態9では、相変化メモリモジュールの別の構成例を説明する。図26は、本実施の形態9による相変化メモリモジュールPCMMDL1の構成例を示している。この構成の特徴は、図7に示したホスト機器HOSTとコントローラブロックCTLBLKが同一チップのコントローラCTLRに集積化された点にある。
本実施の形態9では、相変化メモリモジュールの別の構成例を説明する。図26は、本実施の形態9による相変化メモリモジュールPCMMDL1の構成例を示している。この構成の特徴は、図7に示したホスト機器HOSTとコントローラブロックCTLBLKが同一チップのコントローラCTLRに集積化された点にある。
コントローラCTLRは、より具体的にはマイクロ・プロセッサ・ユニットMPU1、内蔵ランダム・アクセス・メモリRAM2、内蔵読出し専用メモリ(リード・オンリー・メモリ)ROM1、内蔵相変化メモリインタフェイスPCMIF1、内蔵ホスト機器インタフェイスHOSTIF1に加えて、特定用途の集積回路SPICとで構成される。この特定用途の集積回路SPICの数は一つに限定されず、用途に応じて機能の異なる回路を複数個搭載しても良い。このような構成により、デバイス点数を削減することが可能となり、相変化メモリPCMを用いたシステムのコストを抑制することができる。また、コントローラCTLR、相変化メモリPCM、外付けランダム・アクセス・メモリRAM1を一つのパッケージに封入すれば、より実装面積を削減することが可能となり、よりシステムのコストを抑制することができる。
(実施の形態10)
本実施の形態10では、実施の形態1〜実施の形態9で説明してきた相変化メモリを用いた応用機器の例を説明する。図27は、本実施の形態10による携帯型音楽再生機器の構成例を示している。この機器は、マイクロ・プロセッサ・ユニットMPU、音声コーデックACD、読出し専用メモリ(Read only memory)ROM、ダイナミック・ランダム・アクセス・メモリDRAM、コントローラCTRL、相変化メモリPCM、液晶パネルLCPNL、ドライバ集積回路DRVIC、タッチ・センサTCHSNSR、DC−DCコンバータDCDCC、電源制御用集積回路VCTL、リチウム・イオン二次電池BTLY、ユニバーサル・シリアル・バス端子USB、ヘッドホン端子HDPHNで構成される。このような構成において、実施の形態1〜実施の形態9で説明してきた相変化メモリを用いることにより、メモリ使用効率を向上させることが可能となる。
本実施の形態10では、実施の形態1〜実施の形態9で説明してきた相変化メモリを用いた応用機器の例を説明する。図27は、本実施の形態10による携帯型音楽再生機器の構成例を示している。この機器は、マイクロ・プロセッサ・ユニットMPU、音声コーデックACD、読出し専用メモリ(Read only memory)ROM、ダイナミック・ランダム・アクセス・メモリDRAM、コントローラCTRL、相変化メモリPCM、液晶パネルLCPNL、ドライバ集積回路DRVIC、タッチ・センサTCHSNSR、DC−DCコンバータDCDCC、電源制御用集積回路VCTL、リチウム・イオン二次電池BTLY、ユニバーサル・シリアル・バス端子USB、ヘッドホン端子HDPHNで構成される。このような構成において、実施の形態1〜実施の形態9で説明してきた相変化メモリを用いることにより、メモリ使用効率を向上させることが可能となる。
(実施の形態11)
本実施の形態11では、実施の形態1〜実施の形態8で説明してきた相変化メモリモジュールを一つのチップに集積化した場合の相変化メモリの構成例を説明する。図28は、本実施の形態11による相変化メモリPCM1の構成例を示している。このチップは、相変化メモリアレイPCMARY、内蔵ランダム・アクセス・メモリRAM3、レジスタREG、内蔵ホスト機器インタフェイスHOSTIF2、ステートマシーンSM、誤り訂正&wearleveling論理回路EWL、マイクロ・プロセッサ・ユニットMPU2で構成される。PCMARY、SM、EWL、MPU2、RAM3、REGの各々は、入出力線群IOBUSで接続される。なお、MPU2は、データ信号群DTBUS及びコマンド信号群CMDBUSにも接続されており、外部機器との間で記憶情報やコマンドの授受も行う。
本実施の形態11では、実施の形態1〜実施の形態8で説明してきた相変化メモリモジュールを一つのチップに集積化した場合の相変化メモリの構成例を説明する。図28は、本実施の形態11による相変化メモリPCM1の構成例を示している。このチップは、相変化メモリアレイPCMARY、内蔵ランダム・アクセス・メモリRAM3、レジスタREG、内蔵ホスト機器インタフェイスHOSTIF2、ステートマシーンSM、誤り訂正&wearleveling論理回路EWL、マイクロ・プロセッサ・ユニットMPU2で構成される。PCMARY、SM、EWL、MPU2、RAM3、REGの各々は、入出力線群IOBUSで接続される。なお、MPU2は、データ信号群DTBUS及びコマンド信号群CMDBUSにも接続されており、外部機器との間で記憶情報やコマンドの授受も行う。
相変化メモリアレイPCMARYは、図8に示した構成と同様にユーザー領域UFDとベンダ領域VFDとで構成される。このうち、ベンダ領域VFDには、既に図8で説明した管理テーブルの他に、前述の実施の形態で述べたwear leveling処理のうち、主にwear levelingの実施の判断を行う実行プログラムが記憶されている。内蔵ランダム・アクセス・メモリRAM3は、例えばスタティック・ランダム・アクセス・メモリである。この内蔵ランダム・アクセス・メモリRAM3には、相変化メモリアレイPCMARYから読出した記憶情報や、相変化メモリアレイPCMARYへ新たに書き込む情報が、一時的に保持される。レジスタREGは、アドレスやコマンドなどを一時記憶する。内蔵ランダム・アクセス・メモリRAM3は、データ信号群DTBUSから内蔵ホスト機器インタフェイスHOSTIF2を介して外部ホスト機器との間で記憶情報の授受を行う。レジスタREGは、コマンド信号群CMDBUSから内蔵ホスト機器インタフェイスHOSTIF2を介して外部ホスト機器との間でアドレスやコマンドなどの授受を行う。
ステートマシーンSMは、外部ホスト機器から受信したコマンドに従い、相変化メモリPCM1の動作を調停する。また、誤り訂正&wearleveling論理回路EWLは、誤り訂正処理の加えて、wear leveling処理のうちの主に入れ替え処理を専門に行う。マイクロ・プロセッサ・ユニットMPU2は主に、ベンダ領域VFDに格納された前述の実行プログラムを実行し、適宜EWLを用いながらwear levelingを行う。
このような構成を用いることで、チップ点数を削減でき、前述のwear levelingを適用した高信頼な大容量相変化メモリPCM1を用いたシステムを安価に実現することができる。また、誤り訂正処理やwear leveling処理を同一チップ内で実行することにより、チップ外部のデバイスとの読み書き動作を省略することが可能となり、処理時間の短縮を実現することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、複数の実施の形態を組み合わせることにより、各々の効果を一度に得ることができる。また、例えば、記憶素子にカルコゲナイド材料を用いた相変化メモリを前提に説明を行ったが、記憶素子の材料はカルコゲナイド材料に限定されず、消去動作が不要な記憶素子であれば、本実施の形態を適用することが可能である。例えば、MRAM(マグネトロレジスティブ・ランダム・アクセス・メモリ)に利用されているような磁気抵抗を用いたメモリにも適用可能である。さらに、フラッシュメモリであっても、プログラム動作と消去動作における選択セル数が同数であるようなアレイ構成とすれば、本実施の形態を適用することが可能である。この場合、これまでの実施の形態で述べた上書き動作が「消去動作+プログラム動作」に置き換わることになる。
また、本実施の形態の半導体装置は、一回のコマンド入力により書き込み動作が行われるメモリ領域のビット数と、書き込み動作回数などの動作履歴や記憶情報の物理アドレスなどの属性が監視されるメモリ領域のビット数とを等しく構成することが可能な半導体記憶装置を含んだものに適用可能である。
本実施の形態による半導体装置は、相変化メモリのページを構成する複数のセクタへの上書き動作回数が、当該ページ毎にメタデータとして記憶され、上書き動作回数が所定の回数に達したら、記憶されているファイルの交換作業が行われる。一般に、相変化メモリの記憶素子は、上書き動作回数を重ねると記憶素子特性が劣化し、情報の記憶に支障をきたすことが知られている。しかし、本実施の形態によれば、上書き動作回数すなわち更新回数に応じて、ファイルの記憶場所が変更されることにより、上書き動作が特定のセクタに集中しないように制御されるので、記憶素子の劣化の進行を遅らせることが可能となり、メモリ使用効率を向上することができる。また、上書き動作回数をメタデータとして相変化メモリ内に記憶することにより、セクタ毎の上書き動作回数テーブルを新たに用意する必要がなくなるので、このようなテーブルを一時記憶するためのメモリが不要となる。よって、特に、相変化メモリを用いた大容量、高信頼度の半導体装置を、低コストで実現するのに適している。
LCA ローカル・セル・アレイ
LBL0〜LBLn ローカル・ビット線
WL0〜WLn ワード線
R 抵抗性記憶素子
D 選択用ダイオード
MC00〜MCnn メモリセル
PCM,PCM1 相変化メモリ
PCMMDL,PCMMDL1 相変化メモリモジュール
MNYS0〜MNYSn,MND0〜MNDn NMOSトランジスタ
GBL0 グローバル・ビット線
LY0〜LYn ローカル・カラム選択信号
LBLDIS ローカル・ビット線放電信号
BA[16:6] ブロックアドレス信号
PA[5:0] ページアドレス信号
CA[11:0] カラムアドレス信号
MFD メイン領域
SFD スペア領域
UFD ユーザー領域
VFD ベンダ領域
IO[7:0] 入出力線
CTLRBLK コントローラブロック
CTLR コントローラ
MPU,MPU1,MPU2 マイクロ・プロセッサ・ユニット
RAM0 ランダム・アクセス・メモリ
RAM1 外付けのランダム・アクセス・メモリ
RAM2,RAM3 内蔵ランダム・アクセス・メモリ
ROM 読出し専用メモリ(リード・オンリー・メモリ)
ROM1 内蔵読出し専用メモリ(リード・オンリー・メモリ)
PCMIF 相変化メモリインタフェイス
HOSTIF ホスト機器インタフェイス
HOSTIF1,HOSTIF2 内蔵ホスト機器インタフェイス
PCMIF1 内蔵相変化メモリインタフェイス
PCMSIG 相変化メモリ信号群
RAMSIG RAM信号群
HOSTSIG ホスト機器信号群
SPIC 特定用途の集積回路
ACD 音声コーデック
DRAM ダイナミック・ランダム・アクセス・メモリ
LCPNL 液晶パネル
DRVIC ドライバ集積回路
TCHSNSR タッチ・センサ
DCDCC DC−DCコンバータ
VCTL 電源制御用集積回路
BTLY リチウム・イオン二次電池
USB ユニバーサル・シリアル・バス端子
HDPHN ヘッドホン端子
PCMARY 相変化メモリアレイ
REG レジスタ
SM ステートマシーン
EWL 誤り訂正&wearleveling論理回路
IOBUS 入出力線群
LBL0〜LBLn ローカル・ビット線
WL0〜WLn ワード線
R 抵抗性記憶素子
D 選択用ダイオード
MC00〜MCnn メモリセル
PCM,PCM1 相変化メモリ
PCMMDL,PCMMDL1 相変化メモリモジュール
MNYS0〜MNYSn,MND0〜MNDn NMOSトランジスタ
GBL0 グローバル・ビット線
LY0〜LYn ローカル・カラム選択信号
LBLDIS ローカル・ビット線放電信号
BA[16:6] ブロックアドレス信号
PA[5:0] ページアドレス信号
CA[11:0] カラムアドレス信号
MFD メイン領域
SFD スペア領域
UFD ユーザー領域
VFD ベンダ領域
IO[7:0] 入出力線
CTLRBLK コントローラブロック
CTLR コントローラ
MPU,MPU1,MPU2 マイクロ・プロセッサ・ユニット
RAM0 ランダム・アクセス・メモリ
RAM1 外付けのランダム・アクセス・メモリ
RAM2,RAM3 内蔵ランダム・アクセス・メモリ
ROM 読出し専用メモリ(リード・オンリー・メモリ)
ROM1 内蔵読出し専用メモリ(リード・オンリー・メモリ)
PCMIF 相変化メモリインタフェイス
HOSTIF ホスト機器インタフェイス
HOSTIF1,HOSTIF2 内蔵ホスト機器インタフェイス
PCMIF1 内蔵相変化メモリインタフェイス
PCMSIG 相変化メモリ信号群
RAMSIG RAM信号群
HOSTSIG ホスト機器信号群
SPIC 特定用途の集積回路
ACD 音声コーデック
DRAM ダイナミック・ランダム・アクセス・メモリ
LCPNL 液晶パネル
DRVIC ドライバ集積回路
TCHSNSR タッチ・センサ
DCDCC DC−DCコンバータ
VCTL 電源制御用集積回路
BTLY リチウム・イオン二次電池
USB ユニバーサル・シリアル・バス端子
HDPHN ヘッドホン端子
PCMARY 相変化メモリアレイ
REG レジスタ
SM ステートマシーン
EWL 誤り訂正&wearleveling論理回路
IOBUS 入出力線群
Claims (11)
- 複数の第一メモリ領域毎に分割して管理され、前記複数の第一メモリ領域のそれぞれが、更に、複数の第二メモリ領域毎に分割して管理される不揮発性メモリを有し、
前記複数の第二メモリ領域の一つには、任意のユーザーデータが書き込まれ、
前記複数の第二メモリ領域の他の一つには、メタデータが書き込まれ、
前記メタデータには、自身が属する第一メモリ領域に含まれる前記複数の第二メモリ領域のそれぞれを対象に行われたそれぞれの書き込み動作回数が含まれ、
前記メタデータに含まれる前記複数の第二メモリ領域毎の書き込み動作回数に基づいて、前記ユーザーデータが書き込まれた第二メモリ領域と前記メタデータが書き込まれた第二メモリ領域との間で記憶データの入れ替えが行われることを特徴とする半導体装置。 - 請求項1記載の半導体装置において、更に、
前記メタデータに含まれる前記複数の第二メモリ領域毎の書き込み動作回数に基づいて、そのいずれか一つの書き込み動作回数が、前記メタデータが属する第一メモリ領域の書き込み動作回数として設定され、
前記複数の第一メモリ領域毎に設定された書き込み動作回数に基づいて、前記複数の第一メモリ領域の間で記憶データの入れ替えが行われることを特徴とする半導体装置。 - 請求項1記載の半導体装置において、
前記メタデータには、更に、前記複数の第二メモリ領域のそれぞれに前記ユーザーデータおよび前記メタデータを含めたどのデータが記憶されているかを識別する識別子が含まれていることを特徴とする半導体装置。 - 請求項1記載の半導体装置において、
前記メタデータには、基準となる書き込み動作回数が含まれ、
前記複数の第二メモリ領域毎の書き込み動作回数は、前記基準となる書き込み動作回数との間の差分値として含まれていることを特徴とする半導体装置。 - 請求項1記載の半導体装置において、
前記不揮発性メモリは、抵抗値の違いによって情報を弁別する相変化メモリであることを特徴とする半導体装置。 - 複数の第一メモリ領域毎に分割して管理され、前記複数の第一メモリ領域のそれぞれが、更に、複数の第二メモリ領域毎に分割して管理される不揮発性メモリと、
前記不揮発性メモリの動作を制御するコントローラブロックとを有し、
前記複数の第二メモリ領域の一つには、任意のユーザーデータが書き込まれ、
前記複数の第二メモリ領域の他の一つには、メタデータが書き込まれ、
前記メタデータには、自身が属する第一メモリ領域に含まれる前記複数の第二メモリ領域のそれぞれを対象に行われたそれぞれの書き込み動作回数が含まれ、
前記コントローラブロックは、前記複数の第二メモリ領域のいずれかを対象とする書き込み命令を受けた際に、この対象とされる第二メモリ領域が含まれる第一メモリ領域の記憶情報を読み出し、この記憶情報の一部となる前記メタデータに含まれる前記複数の第二メモリ領域毎の書き込み動作回数をそれぞれ比較し、この比較結果に応じて前記ユーザーデータが書き込まれた第二メモリ領域と前記メタデータが書き込まれた第二メモリ領域との間で記憶データの入れ替えを行うことを特徴とする半導体装置。 - 請求項6記載の半導体装置において、
前記コントローラブロックは、マイクロ・プロセッサ・ユニットと読出し専用メモリとを含むことを特徴とする半導体装置。 - 請求項7記載の半導体装置において、
前記読出し専用メモリには、前記記憶データの入れ替えを行う際の処理手順が記載されたプログラムが書き込まれ、
前記マイクロ・プロセッサ・ユニットが前記プログラムを実行することを特徴とする半導体装置。 - 請求項6記載の半導体装置において、
前記コントローラブロックは、更に、前記メタデータに含まれる前記複数の第二メモリ領域毎の書き込み動作回数に基づいて、そのいずれか一つの書き込み動作回数を、前記メタデータが属する第一メモリ領域の書き込み動作回数として設定することで、前記複数の第一メモリ領域毎の書き込み動作回数を認識すると共に管理テーブルとして保持し、前記管理テーブルに基づいて、前記複数の第一メモリ領域の間で記憶データの入れ替えを行うことを特徴とする半導体装置。 - 請求項6記載の半導体装置において、
前記メタデータには、基準となる書き込み動作回数が含まれ、
前記複数の第二メモリ領域毎の書き込み動作回数は、前記基準となる書き込み動作回数との間の差分値として含まれていることを特徴とする半導体装置。 - 請求項6記載の半導体装置において、
前記不揮発性メモリは、抵抗値の違いによって情報を弁別する相変化メモリであることを特徴とする半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010531857A JP5272013B2 (ja) | 2008-10-01 | 2009-09-29 | 半導体装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008255935 | 2008-10-01 | ||
JP2008255935 | 2008-10-01 | ||
JP2010531857A JP5272013B2 (ja) | 2008-10-01 | 2009-09-29 | 半導体装置 |
PCT/JP2009/066944 WO2010038736A1 (ja) | 2008-10-01 | 2009-09-29 | 半導体装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013062149A Division JP5603448B2 (ja) | 2008-10-01 | 2013-03-25 | 半導体装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010038736A1 JPWO2010038736A1 (ja) | 2012-03-01 |
JP5272013B2 true JP5272013B2 (ja) | 2013-08-28 |
Family
ID=42073497
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010531857A Expired - Fee Related JP5272013B2 (ja) | 2008-10-01 | 2009-09-29 | 半導体装置 |
JP2013062149A Expired - Fee Related JP5603448B2 (ja) | 2008-10-01 | 2013-03-25 | 半導体装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013062149A Expired - Fee Related JP5603448B2 (ja) | 2008-10-01 | 2013-03-25 | 半導体装置 |
Country Status (2)
Country | Link |
---|---|
JP (2) | JP5272013B2 (ja) |
WO (1) | WO2010038736A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528287B2 (en) | 2015-10-09 | 2020-01-07 | Sony Corporation | Memory, memory controller, storage apparatus, information processing system, and control method for tracking erase count and rewrite cycles of memory pages |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5722685B2 (ja) | 2011-04-12 | 2015-05-27 | 株式会社日立製作所 | 半導体装置、不揮発性メモリ装置の制御方法 |
US8806112B2 (en) * | 2011-07-14 | 2014-08-12 | Lsi Corporation | Meta data handling within a flash media controller |
JP5792019B2 (ja) | 2011-10-03 | 2015-10-07 | 株式会社日立製作所 | 半導体装置 |
WO2015008338A1 (ja) * | 2013-07-16 | 2015-01-22 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
KR102126760B1 (ko) | 2014-04-07 | 2020-06-25 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 구동 방법 |
US9830087B2 (en) * | 2014-11-13 | 2017-11-28 | Micron Technology, Inc. | Memory wear leveling |
WO2019017017A1 (ja) * | 2017-07-18 | 2019-01-24 | ソニーセミコンダクタソリューションズ株式会社 | ウェアレベリング処理を行うメモリコントローラ |
CN114355647B (zh) * | 2021-12-17 | 2024-04-12 | 山东蓝贝思特教装集团股份有限公司 | 用于实现局部擦除的液晶书写装置电压控制系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05282880A (ja) * | 1992-01-10 | 1993-10-29 | Toshiba Corp | 半導体ディスク装置 |
JP2008171541A (ja) * | 2007-01-12 | 2008-07-24 | Ind Technol Res Inst | 相変化メモリの駆動方法とシステム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4134637B2 (ja) * | 2002-08-27 | 2008-08-20 | 株式会社日立製作所 | 半導体装置 |
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US7005665B2 (en) * | 2004-03-18 | 2006-02-28 | International Business Machines Corporation | Phase change memory cell on silicon-on insulator substrate |
-
2009
- 2009-09-29 WO PCT/JP2009/066944 patent/WO2010038736A1/ja active Application Filing
- 2009-09-29 JP JP2010531857A patent/JP5272013B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-25 JP JP2013062149A patent/JP5603448B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05282880A (ja) * | 1992-01-10 | 1993-10-29 | Toshiba Corp | 半導体ディスク装置 |
JP2008171541A (ja) * | 2007-01-12 | 2008-07-24 | Ind Technol Res Inst | 相変化メモリの駆動方法とシステム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10528287B2 (en) | 2015-10-09 | 2020-01-07 | Sony Corporation | Memory, memory controller, storage apparatus, information processing system, and control method for tracking erase count and rewrite cycles of memory pages |
Also Published As
Publication number | Publication date |
---|---|
WO2010038736A1 (ja) | 2010-04-08 |
JPWO2010038736A1 (ja) | 2012-03-01 |
JP5603448B2 (ja) | 2014-10-08 |
JP2013137861A (ja) | 2013-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5603448B2 (ja) | 半導体装置 | |
EP0691008B1 (en) | Flash memory mass storage architecture | |
TWI393140B (zh) | 在一非揮發性記憶體中儲存資料之方法 | |
US8745319B2 (en) | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store control information facilitating wear leveling | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
JP4834676B2 (ja) | オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法 | |
US10114562B2 (en) | Adaptive block allocation in nonvolatile memory | |
US9075740B2 (en) | Memory system | |
US8751731B2 (en) | Memory super block allocation | |
JP4486938B2 (ja) | メモリのページサイズおよび/またはブロックサイズとは異なるサイズを有するデータセクタを備えた不揮発性メモリシステムの処理技法 | |
US9448919B1 (en) | Data storage device accessing garbage collected memory segments | |
US9069662B2 (en) | Semiconductor device and method of controlling non-volatile memory device | |
TWI534624B (zh) | Nonvolatile memory control method and semiconductor device | |
JP2010267271A (ja) | 記憶バスインターフェイスのためのpcmメモリ | |
US20090150597A1 (en) | Data writing method for flash memory and controller using the same | |
CN103377152A (zh) | 固态硬盘的写操作控制方法及写操作装置 | |
KR20070111470A (ko) | 플래시 메모리 시스템들에서 하우스키핑 동작들의 스케쥴링 | |
CN102047230A (zh) | 混合式存储器管理 | |
KR102287760B1 (ko) | 메모리 시스템 및 상기 메모리 시스템의 동작 방법 | |
US11537318B2 (en) | Memory system and operating method thereof | |
JP2002318729A (ja) | ファイルシステムおよびその制御方法 | |
US7864579B2 (en) | Integrated circuits having a controller to control a read operation and methods for operating the same | |
WO2014185038A1 (ja) | 半導体記憶装置およびその制御方法 | |
JP2009266125A (ja) | メモリシステム | |
JP2005316793A (ja) | フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130325 |
|
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: 20130416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130513 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |