JP2010198252A - 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム - Google Patents

不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム Download PDF

Info

Publication number
JP2010198252A
JP2010198252A JP2009041578A JP2009041578A JP2010198252A JP 2010198252 A JP2010198252 A JP 2010198252A JP 2009041578 A JP2009041578 A JP 2009041578A JP 2009041578 A JP2009041578 A JP 2009041578A JP 2010198252 A JP2010198252 A JP 2010198252A
Authority
JP
Japan
Prior art keywords
memory
nonvolatile memory
writing
data
nonvolatile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009041578A
Other languages
English (en)
Inventor
Akira Sato
彰 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009041578A priority Critical patent/JP2010198252A/ja
Publication of JP2010198252A publication Critical patent/JP2010198252A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】不揮発メモリの書込みエラーが発生しても、トータルの処理時間を変えずに、書込み処理を完了させることができるようにする。
【解決手段】共通のデータバス及びアドレスバスに、特性の異なる第1の不揮発メモリ(MLC−NANDメモリ)102と第2の不揮発性メモリ素子(SLC−NANDメモし)103が接続されている。二重化書込み回路106は、CPU101からの二重化信号(イネーブル信号)に基づいて、第1の不揮発メモリ102と第2の不揮発性メモリ素子103を同時に選択し、第1の不揮発メモリ102へデータを書込むときに、第2の不揮発性メモリ素子103へ二重化したデータを書込む。
【選択図】図2

Description

この発明は、携帯端末や情報端末等の電子端末装置に搭載されて用いられる不揮発メモリ装置、不揮発メモリの書込み方法、及びその方法をコンピュータに実行させる不揮発メモリ書込みプログラムに関する。
携帯端末や情報端末等の電子端末装置では、システムのブート(起動)に必要なプログラムやアプリケーションプログラム等は不揮発メモリに格納されている。つまり、携帯端末や情報端末等の電子端末装置に不揮発メモリ及び関連部品を搭載すれば、電子端末装置の電源を投入するだけで、CPU(中央演算処理装置)が不揮発メモリからシステムのブートに必要なプログラムを所定のアドレスから順次読み出し、このシステムが自動的にブートする仕組みになっている。また、システムがブートした後に動作する各種のアプリケーションプログラム等も、同様に、不揮発メモリの所定のアドレスに格納されていて、順次読み出して所定の処理が実行されるようになっている。
また、携帯端末や情報端末等の電子端末装置は、可搬性及び電池寿命が重要な商品価値となるため、近年、これらのプログラムは、小型で大容量化が比較的容易であり、かつ、消費電力が低いMLC(Multi Level Cell)−NANDメモリと呼ばれる不揮発メモリに格納されている。なお、MLC−NANDメモリとSLC−NANDメモリの書込みコマンド等は、互換性が保たれたものも知られている。
また、不揮発メモリの所定のライトアドレスに対応するメモリ領域にライトデータを格納し、リード要求時には、リードアドレスに対応するメモリ領域のデータから多数決によりリードデータを読み出す技術も開示されている(例えば、特許文献1参照)。この技術によれば、不揮発メモリ自体にデータの多重化機能を持たせ、メモリ部がデータを記憶するメモリ領域を1つのメモリアドレス当りに3個以上割り当てているため、データの多重化を一切意識せずにライト要求されたデータを多重化して記憶することができる。さらに、このように多重化されたデータは、リードアドレスに対応してリードデータとして適宜に読み出すことができる。
特開2008−097403号公報
しかしながら、上述のMLC−NANDメモリは、メモリのプロセス微細化に伴って、プログラムの書込み/削除の書き換え可能回数の著しい低下や、プログラムの書込みエラーの発生頻度が高い等、書込みデータにおける信頼性の面からみて、不揮発メモリとしての性能低下の傾向が見られる。
また、MLC−NANDメモリは、1つのメモリセルのしきい値(Vt)を多段階に書き分ける必要があるので、書込み時間がSLC(Single Level Cell)−NANDメモリに比べて5〜10倍程度長くなる傾向がある。
つまり、不揮発メモリへの書込み時間が長くなると、必然的に書込み処理中の電源断(電池切れ)に対するリスクも高くなってくる。
また、携帯端末や情報端末等の電子端末装置におけるシステムのブートに必要なプログラムやアプリケーションプログラムは、ファームウェアのバージョンアップの際にプログラムの更新(再書込み)を行う必要がある。例えば、携帯端末の通信機能を用いてプログラムデータをダウンロードして、システムのブートに必要なプログラムやアプリケーションプログラムの更新等が行われている。このようなプログラムの更新時に、不揮発メモリの書込みエラーの発生や書込みの途中で電源断が発生すると、システムのブートやアプリケーションの動作ができなくなる虞があり、不揮発メモリへの書込みの信頼性を確保できなくなる。
また、特許文献1に記載の技術では、データの多重化を一切意識せずに、このデータを多重化して記憶することができるという利点はある。しかしながら、不揮発メモリの書込みエラーの発生や書込みの途中で電源断が発生した場合には、再書込みのために処理時間が長くなると共に、システムのブートやアプリケーションの動作ができなくなる等の問題は依然として存在する。
この発明は、上述の事情に鑑みてなされたもので、メモリの書込みエラーが発生してもトータル処理時間を変えずに書込み処理を完了できる不揮発メモリ装置、不揮発メモリの書込み方法、及びその方法をコンピュータに実行させるプログラムを提供することを第1の目的としている。
さらに、メモリへの書込み時間を短くして書込み処理中の電源断によるデータロスのリスクを低減できる不揮発メモリ装置、不揮発メモリの書込み方法、及びその方法をコンピュータに実行させるプログラムを提供することを第2の目的としている。
上記目的を達成するために、この発明の第1の構成は、不揮発メモリ装置に係り、共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリと、これら第1及び第2の不揮発メモリを一括選択し、これら第1及び第2の不揮発メモリへデータの二重化書込みを行う二重化書込み手段とを備えてなることを特徴としている。
この発明の第2の構成は、不揮発メモリへ冗長的にデータを書込む不揮発メモリへの書込み方法に係り、共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリを同時に選択する第1のステップと、一括選択された前記第1及び第2の不揮発メモリへデータの二重化書込みを行う第2のステップとを有してなることを特徴としている。
この発明の第3の構成は、不揮発メモリ書込みプログラムに係り、共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリを一括選択する第1のステップと、一括選択された前記第1及び第2の不揮発メモリへデータの二重化書込みを行う第2のステップとを有してなる不揮発メモリの書込み方法をコンピュータに実行させることを特徴としている。
この発明の構成によれば、大容量であるが信頼性の低い第1の不揮発メモリ(MLC−NANDメモリ)へデータ書込みを行う際に、小容量であるが信頼性の比較的高い第2の不揮発メモリ(SLC−NANDメモリ)を補助メモリとしてデータ書込みを二重化して実施しているため、第1の不揮発メモリ(MLC−NANDメモリ)側で書込みエラーが発生しても、処理を停止させる必要がない。しかも、第1の不揮発メモリ(MLC−NANDメモリ)と第2の不揮発メモリ(SLC−NANDメモリ)を並行してデータの書込みを行っているので、トータルの書込み時間が長くなることもない。
この発明の実施形態に適用される電子端末装置のシステム構成を示すブロック図である。 この発明の第1の実施形態に係る不揮発メモリ装置の回路構成を示すブロック図である。 図2に示す二重化書込み回路106の真理値表を示す図である。 図2に示す不揮発メモリ装置110のCPU101が書込みモードの判定を行う処理の流れを示すフローチャートである。 図4の続きのフローであって、不揮発メモリ装置110のCPU101が不揮発メモリに書込みを行う処理の流れを示すフローチャートである。 図5の続きのフローであって、不揮発メモリ装置110のCPU101が不揮発メモリへの書込みを終了したか否かを判定する処理の流れを示すフローチャートである。 図5及び図6のフローチャートの動作で二重化書込みモード(Mode=1)が設定されている場合の各信号をタイミングチャートで示した図である。
すなわち、携帯端末や情報端末等の電子端末装置で、大容量のMLC−NANDメモリ等の比較的信頼性の低い不揮発メモリを使用する場合に、小容量で信頼性の高いSLC−NANDメモリを補助的に使用する。このとき、電子端末装置のシステムにとって重要なデータを書込む際に、これら2つのデバイス(MLC−NANDメモリ及びSLC−NANDメモリ)に同時にデータを二重化して書込むことで、MLC−NANDメモリの書込みエラーが発生したときに生じる、書込み処理の遅延とデータ化けによるデータロスを防止する。したがって、この発明の不揮発メモリ装置では、MLC−NANDメモリとSLC−NANDメモリの2つのデバイスに同時に書込みを行う手段を設けることにより、より安定した信頼性の高いシステムを実現することができる。
実施形態1
以下、図面を参照して、この発明の実施形態について詳細に説明する。
図1は、この発明の第1の実施形態に適用される電子端末装置のシステム構成を示すブロック図である。電子端末装置100は、システム全体の制御を行うCPU101と、システムのブートコードやプログラムコードが格納されている大容量のMLC−NANDメモリである第1の不揮発メモリ102と、小容量のSLC−NANDメモリである第2の不揮発メモリ103と、アプリケーションを動作させるためのDRAMである揮発メモリ素子104と、各種センサや無線回路やLCDやキー入出力装置等からなる周辺回路105とを備えて構成されている。
電子端末装置100のシステムでは、ブート時において、第1の不揮発メモリ(MLC−NANDメモリ)102に格納されているデバイスプログラムやアプリケーションプログラム等が、揮発メモリ素子(DRAM)105に展開される。そして、CPU101が、揮発メモリ素子105上でアプリケーションプログラムを実行する仕組みになっている。また、CPU101は、アプリケーションプログラムの記述にしたがって、様々な周辺回路105を制御することにより、電子端末装置100に求められる各種の機能を実現している。なお、電子端末装置100が携帯端末や情報端末である場合は、可搬性と電池寿命が重要な商品価値となるため、各種のアプリケーションプログラムやユーザデータは、小型かつ大容量であって消費電力の少ない第1の不揮発メモリ(MLC−NANDメモリ)102に格納している。
また、電子端末装置100のシステムのブートに必要な起動プログラムやアプリケーションプログラムは、それらのプログラムの更新(再書込み)処理が必要となる場合がある。例えば、製品出荷後に判明したプログラムミスの修正や、アプリケーションプログラムへの機能追加等を行う場合は、電子端末装置100の通信機能を用いてプログラムデータをダウンロードして更新処理が行われる。この場合、プログラムコードが格納されている第1の不揮発メモリ(MLC−NANDメモリ)102を書き換えることになる。このとき、第1の不揮発メモリ102に対する書込み中のエラーの発生や、書込み途中に電源断(電池切れ)が発生すると、電子端末装置100のシステムのブートやアプリケーションプログラムの動作ができなくなる可能性があるので、第1の不揮発メモリ102の書込み信頼性を確保することが重要である。
このため、この実施形態の不揮発メモリ装置は、電子端末装置100にとって重要なデータを第1の不揮発メモリ(MLC−NANDメモリ)102に書き込む場合に、信頼性の高い小容量の第2の不揮発メモリ(SLC−NANDメモリ)103にも、同時刻に同じ情報の書込みを行ってデータを二重化する処理を実施している。
このとき、第1の不揮発メモリ102と第2の不揮発メモリ103は、相互の書込みコマンドに互換性があるものを選択して使用している。また、書込みデータの入力時には、第1の不揮発メモリ102と第2の不揮発メモリ103の2つのデバイスをマルチセレクトすることで、両者に同時にデータ転送を実施している。また、一般的にNANDメモリの書込み時間については、MLC−NANDメモリはSLC−NANDメモリに比べ5〜10倍程度長いため、第1の不揮発メモリ(MLC−NANDメモリ)102の書込み時間内に、第2の不揮発メモリ(SLC−NANDメモリ)103の書込み処理を終了させることができるため、データを二重化して書込んでも書込み実行時間が長くなることはない。
また、温度センサが半導体デバイスの高温を検出したときには、この半導体デバイスのジャンクションリークが増加するので、不揮発メモリにとっては書込みを行う条件が厳しくなっている。この結果、不揮発メモリに書込みエラーが発生する可能性が高くなる。このため、第1の不揮発メモリ102と第2の不揮発メモリ103でデータを二重化しておくことにより、第1の不揮発メモリ102に書込みエラーが発生した場合でも、第2の不揮発メモリ103のデータが正常に書込まれていれば、書込み処理を中断することがないので、電子端末装置100のシステム全体の安定性を高めることができる。
さらに、電子端末装置100の電池残量が少ない場合には、不揮発メモリへの書込み途中で電源断を生じる可能性が高くなるため、不揮発メモリに対する書込み時間は短いほど、書込み中の電源断によるデータロスのリスクを低減させることができる。このため、書込み時間の短いSLC−NANDメモリを第2の不揮発メモリ103として、データ二重化書込み用のバックアップ用の不揮発メモリとして利用している。このようにして、デバイス温度や電池残量等の状況をモニタしながら、この発明の不揮発メモリ装置が、必要に応じて2つの不揮発メモリへの書込み処理を実行することにより、携帯端末や情報端末等の電子端末装置におけるシステム全体の安定性を高めることができる。
次に、この発明の第1の実施形態である不揮発メモリ装置について詳細に説明する。図2は、この発明の第1の実施形態に係る不揮発メモリ装置の回路構成を示すブロック図である。図2において、図1の構成部分と同一の各部については、図1と同一の符合を付してその説明を省略又は簡略化する。不揮発メモリ装置110は、CPU101、第1の不揮発メモリ(MLC−NANDメモリ)102、第2の不揮発メモリ(SLC−NANDメモリ)103、二重化書込み回路106、電池残量モニタ107、及び温度センサ108を備えて構成されている。
CPU101は、第1の不揮発メモリ102及び第2の不揮発メモリ103のデータの読み出し/書込みを行うために、次のような信号を生成する。すなわち、第1の不揮発メモリ102を選択するための第1のチップセレクト信号(#CS1信号)、第2の不揮発メモリ103を選択するための第2のチップセレクト信号(#CS2信号)、第1の不揮発メモリ102及び第2の不揮発メモリ103への書込みを制御するためのWRITE信号(#W信号)、第1の不揮発メモリ102と第2の不揮発メモリ103の読み出しを制御するためのREAD信号(#R信号)、不揮発メモリの番地指定のためのアドレス信号とデータ信号とが複合化されたアドレスデータバス信号(AD信号)、及びシステムが第1の不揮発メモリ102への書込みデータを二重化するための二重化書込みイネーブル信号(#DPL信号)である。
上記CPU101の各信号のうち、第1の不揮発メモリ102と第2の不揮発メモリ103との間で、#W信号、#R信号、及びAD信号は共通に接続されている。また、CPU101の各信号のうち、二重化書込みイネーブル信号である#DPL信号は、#CS1信号及び#CS2信号と供に二重化書込み回路106に接続されている。また、二重化書込み回路106の出力信号である#CS2_D信号は、第2の不揮発メモリ103のチップセレクト信号として接続されている。
二重化書込み回路106は、入力信号としてCPU101の出力する二重化書込みイネーブル信号#DPLと、第1の不揮発メモリ102を選択するためのチップセレクト信号(#CS1信号)、及び第2の不揮発メモリ103を選択するためのチップセレクト信号(#CS2信号)が接続されている。また、出力信号は、第2の不揮発メモリ103をセレクトするための#CS2_D信号である。
図2に示す二重化書込み回路106は、OR回路106aとAND回路106bとによって構成されている。OR回路106aは、#CS1信号と#DPL信号の2入力信号のうち少なくとも1つの信号が非活性(High)であれば、この出力信号は非活性(High)である。また、AND回路106bは、OR回路106aの出力信号が非活性(High)のときに、入力信号である#CS2信号の論理記号が出力信号である#CS2_D信号の論理記号にそのまま反映される。つまり、#DPL信号が非活性(High)であれば、OR回路106aの出力信号は非活性(High)であるので、AND回路106bの出力信号である#CS2_D信号は、このAND回路106bの入力信号である#CS2信号が非活性(High)のときは非活性(High)となり、入力信号である#CS2信号が活性化(Low)のときは活性化(Low)となる。
図3は、図2に示す二重化書込み回路106の真理値表を示す図である。上述した論理記号の関係に従えば、#DPL信号が非活性(High:H)の場合は、二重化書込み回路106の出力信号である#CS2_D信号は、#CS2信号の論理を維持する。したがって、CPU101から第2の不揮発メモリ103を選択した場合は、そのまま、第2の不揮発メモリ103を選択するためのチップセレクト信号である#CS2信号によって、第2の不揮発メモリ103を選択することになる。
また、#DPL信号が活性化(Low)した場合は、二重化書込み回路106の出力信号である#CS2_D信号は、#CS1信号が活性化(Low)した場合でも活性化(Low)となるので、第1の不揮発メモリ102を選択するためのチップセレクト信号である#CS1信号が活性化(Low)したときは、第2の不揮発メモリ103へ入力される#CS2_D信号も#CS1信号として活性化(Low)される。この結果、CPU101から第1の不揮発メモリ102を選択した場合は、第2の不揮発メモリ103もマルチセレクトで選択されることになる。
また、電池残量モニタ107は、電池切れによるシステム電源断の可能性を判定するための信号を作り出しており、電池残量が少なくなると電池残量モニタ107から出力されるV信号は活性化(High)する。また、温度センサ108は、電子端末装置100の温度をモニタするセンサであって、高温を検出すると温度センサ108から出力されるT信号は活性化(High)する。これらのV信号とT信号は共にCPU101に入力される。
図4は、図2に示す不揮発メモリ装置110のCPU101が書込みモードの判定を行う処理の流れを示すフローチャートである。したがって、図4のフローチャートを参照しながら、不揮発メモリ装置110が行うデータ二重化書込み時において、CPU101が第1の不揮発メモリ102への書込み判定を行う処理の手順を説明する。すなわち、このフローチャートでは、不揮発メモリ装置110が書込みモードを二重化書込みで行うか、通常の書込みを行うかを判定する処理の流れを示している。これらの処理の流れは全てソフトウェア処理によって行われる。
まず、第1の不揮発メモリ102に対して書込み要求が発生すると、不揮発メモリ装置110のCPU101において書込みモードの判定処理が開始される(ステップS101)。次に、CPU101は、書込みデータの重要度が高いか否かを判定する(ステップS102)。ここで、例えば、システムブート用のプログラムの書込み等であれば重要度が高いと判断して(ステップS102でYes)、二重化書込みモードで実施するためにフラグを“Mode=1”に設定する(ステップS106)。
一方、ステップS102の判定処理において、重要度が比較的低いデータの書込みである場合は、重要度が低いと判断して(ステップS102でNo)、電池残量モニタ107の出力信号Vは正常値であるか否かを判定し(ステップS103)、出力信号Vが異常値であれば(ステップS103でNo)、二重化書込みモードで実施するためにフラグを“Mode=1”に設定する(ステップS106)。
一方、ステップS103の判定処理において、電池残量モニタ107の出力信号Vが正常値であれば(ステップS103でYes)、温度センサ108の検出温度Tは正常値であるか否かを判定し(ステップS104)、検出温度Tが異常値であれば((ステップS104でNo)、二重化書込みモードで実施するためにフラグを“Mode=1”に設定する(ステップS106)。
また、ステップS104の判定処理において、温度センサ108の検出温度Tが正常値であれば、すなわち、電池残量モニタ107の出力信号V及び温度センサ108の検出温度Tが共に正常値であれば(ステップS104でYes)、通常の書込みモードで実施するためにフラグを”Mode=0”に設定する(ステップS105)。すなわち、上述のステップS103からステップS106の処理において、電池残量モニタ107の出力信号Vは正常か(ステップS103)、温度センサの検出温度Tは正常か(ステップS104)の判定結果において、何れかが正常でない場合は、二重化書込みモードで実施するためにフラグをMode=1に設定している(ステップS106)。
図5は、図4の続きのフローであって、不揮発メモリ装置110のCPU101が不揮発メモリに書込みを行う処理の流れを示すフローチャートである。すなわち、図4のフローチャートにおいて書込みモードの判定処理が終了すると、図5のフローチャートにおいて、不揮発メモリ装置110のCPU101は、不揮発メモリへの書込み開始処理を始める(ステップS201)。
まず、不揮発メモリ装置110のCPU101は、第1の不揮発メモリ102の書込みスタートコマンドと、書込み開始アドレスとを指定する(ステップS202)、次に、図4のフローチャートのステップS106で設定した二重化書込みモード((Mode=1)であるか否かをフラグによって判定する(ステップS203)。
ここで、二重化書込みモード(Mode=1)である場合は(ステップS203でYes)、第2の不揮発メモリ103の書込みスタートコマンドと書込み開始アドレスを指定する(ステップS204)、次に、二重化書込みイネーブル信号(二重化信号)を活性化(#DPL=Low)して(ステップS205)、第1の不揮発メモリ102へのデータ書込みを行う(ステップS206)。
一方、ステップS203において二重化書込みモードでない場合(Mode=0)は(ステップS203でNo)、第2の不揮発メモリ103の書込み処理は実施せず、そのまま、第1の不揮発メモリ102へのデータの書込みを行う(ステップS206)。ここでのデータの書込みはデータのサイズにもよるが、概ね、数千回から数万回のデータ入力を行う。このようにして、最終データを入力し終えるまで繰り返してデータ入力を行い(ステップS206⇔ステップS207)、最終データを入力し終えたら(ステップS207でYes)、データ入力の完了を示すコマンドをメモリに対して発行する(ステップS208)。次に、二重化書込みイネーブル信号を非活性化(#DPL=High)する(ステップS209)。
上述の二重化書込みモード(Mode=1)の場合において、データ書込みからデータ入力完了コマンドの発行までは(ステップS206〜S208)は、#DPL信号がHであるかLであるかが異なるだけで、第1の不揮発メモリ102と第2の不揮発メモリ103をマルチに選択していても、二重化書込みを行わない場合とCPUの処理時間は全く同じになる。
図6は、図5の続きのフローであって、不揮発メモリ装置110のCPU101が不揮発メモリへの書込みを終了したか否かを判定する処理の流れを示すフローチャートである。すなわち、図6は、図5のフローにおいて、CPU101からの書込みデータ入力完了後に、不揮発メモリ内でのプログラム処理が完了したか否かをチェックするフローを示している。
まず、CPU101は、現在、二重化書込みモード(Mode=1)であるか否かを判定し(ステップS301)、二重化書込みモード(Mode=1)であれば(ステップS301でYes)、第2の不揮発メモリ103のプログラムが終了したか否かを判定する(ステップS302)。ここで、プログラムが終了したか否かの判定方法は、第2の不揮発メモリ103内のレジスタを読み出すこと等によって、処理中であるか終了したかを判別できるようになっている。
そして、第2の不揮発メモリ103のプログラムが終了したと判定されたならば(ステップS302でYes)、CPU101は、第1の不揮発メモリ102のプログラムが終了したか否かの判定を行う(ステップS303)。また、ステップS301の二重化書込みモードであるか否かの判定において、二重化書込みモードでない(Mode=0)場合は(ステップS301でNo)、第1の不揮発メモリ102についてのみ、プログラムが終了したか否かの判定を行う(ステップS303)。このようにして、ステップS303においてプログラムが終了すると(ステップS303でYes)、全ての書込み処理が終了する(ステップS304)。
ここで、第2の不揮発メモリ(SLC−NAND)103のプログラム終了判定の後に、第1の不揮発メモリ(MLC−NAND)102の判定を行う理由は、前述した通り、一般的にNANDメモリのプログラム処理時間は、MLC−NANDメモリの場合はSLC−NANDメモリに比べて5〜10倍程度長いことによるものである。つまり、2つのNANDメモリの書込みプログラムは同時動作となり、第1の不揮発メモリ102のプログラム処理時間内に、第2の不揮発メモリ103のプログラムは処理を終了するため、図6に示す処理の順序で書込み判定を行うことにより、プログラム処理の実行時間は変わらない。
図7は、図5及び図6のフローチャートの動作で二重化書込みモード(Mode=1)が設定されている場合の各信号のタイミングチャートで示した図であり、横軸に時間、縦軸に各信号の動作レベルを示している。
図7において、時間T302の間で、第1の不揮発メモリ102に対する書込み開始コマンド(CS1)と開始アドレス(CS1)の指定を行っている。このとき、第1の不揮発メモリ102は、CPU101から出力される#CS1信号及び#W信号のLowパルスでAD信号のコマンド及びアドレスを取り込む。つまり、時間T302の間において、図の白抜き部分のAD信号でコマンド及びアドレスを取り込んでいる。
次に、時間T304の間で、第2の不揮発メモリ103に対する書込み開始コマンド(CS2)と開始アドレス(CS2)の指定を行っている。このとき、第2の不揮発メモリ103は、CPU101から出力される#CS2信号を受けて、図2の二重化書込み回路106が出力する#CS2_D=#CS2のLowパルス及び#W信号のLowパルスでAD信号のコマンド及びアドレスを取り込む。つまり、時間T304の間において、図の白抜き部分のAD信号でコマンド及びアドレスを取り込んでいる。
さらに、時間T305の間において、二重化書込みモードになって#DPL信号が活性化(#DPL=Low)する。そして、この信号(つまり、#DPL=Lowの信号)を受けて、二重化書込み回路106の出力信号は、#CS2_Dの論理信号が#CS1となる。
ここで、時間T306の間はデータ書込みの時間であるが、第1の不揮発メモリ102と第2の不揮発メモリ103は、マルチセレクトの状態で書込みデータを取り込んでいる。すなわち、#CS1信号と#W信号のLowパルスでAD信号のデータを取り込んでいる。なお、時間T306の間は、データ量に応じて繰り返しデータの書込みを行う。例えば、数1千回から数万回に亘ってデータの書込みを繰り返す。
次に、時間T308の間において、データ書込み終了のコマンドによって、第1の不揮発メモリ102と第2の不揮発メモリ103は、マルチセレクトの状態でコマンドを取り込む。すなわち、#CS1信号のLowパルスと#W信号のLowパルスでAD信号のコマンドを取り込む。つまり、時間T308の間において、図の白抜き部分のAD信号でコマンドを取り込んでいる。
次に、時刻T309に達すると、二重化書込みモードを解除して、#DPL信号が非活性(#DPL=High)となる。この#DPL信号の非活性(#DPL=High)信号を受けて、二重化書込み回路106の出力信号である#CS2_Dの論理信号は#CS2となる。
以上述べたように、この実施形態に係る不揮発メモリ装置によれば、携帯端末や情報端末等の電子端末装置において、MLC−NANDメモリへの書込みを行う際に、信頼性の比較的高いSLC−NANDメモリと併用してデータ書込みを二重化して実施するため、MLC−NANDメモリ側で書込みエラーが発生しても、処理を停止させる必要がない。この結果、例えば、携帯端末の通信機能を用いてプログラムデータをダウンロードし、更新する場合においても再ダウンロードを行う必要がなくなり、通信コストを抑えることができる。
また、この実施形態に係る不揮発メモリ装置によれば、全ての書込み処理が完了した後にシステムがアイドル状態になったとき、エラーの発生したMLC−NANDメモリの領域は、MLC−NANDメモリの別領域にSLC−NANDからデータが書き戻される。このとき、エラーの発生したMLC−NANDメモリの領域と二重化されたSLC−NANDメモリの領域はテーブルで管理されている。なお、データがMLC−NANDメモリに書き戻された後は、SLC−NANDメモリの領域は消去を行う。すなわち、SLC−NANDメモリの不要なデータを消去することによって二重化書込みに再利用することができるので、SLC−NANDメモリの容量を小さくすることができる。
また、MLC−NANDメモリへの書込みを行う際に、書込み時間の短いSLC−NANDメモリとデータ書込みを二重化して実施するために、全体の書込み処理時間は二重化しない場合と同時時間で処理することができる。さらに、書込み処理中に不意の電源断が発生した場合でも、SLC−NANDメモリ側の書込み処理は、MLC−NANDメモリよりも速いため、書込み失敗のリスクを軽減することができる。すなわち、第1の実施形態の例では、MLC−NANDメモリとSLC−NANDメモリの書込み時間が5〜10倍程異なるため、書込み中において不意に電源断に遭遇してデータを失うリスクを1/5〜1/10とすることができ、システム全体の信頼性を向上させることができる。
また、上述の特許文献1の技術では、書込み時において3個以上の同じ特性のデバイスに多重化して書込み、読み出し時において3個以上のデバイスの読み出し値から、多数決で0又は1のデータを決定するもので、複数のデバイスに同時に書込みを行う点では共通性がある。しかしながら、この技術では、必要なメモリ容量の3倍以上のメモリを搭載する必要がありコストが非常に高くなる。
ところが、この実施形態の不揮発メモリ装置によれば、異なる特性を持つ2つのデバイス(大容量なMLC−NANDメモリと、小容量で信頼性が高く、かつ書込み速度の速いSLC−NANDメモリ)を同時に書込むことで、書込みの信頼性を確保しながらコストを抑えることができる。例えば、必要なメモリ容量が4Gbitである場合、上述の特許文献1の技術では、12Gbit(=4Gbit×3)以上のメモリが必要であるのに対し、この実施形態に係る不揮発メモリ装置によれば、MLC−NANDメモリの4Gbitに対し、例えば、一回のプログラムダウンロードで書き込む可能性のある最大メモリ容量で1/16の256MbitのSLC−NANDを追加したとしても、4.25Gbit(=4Gbit+256Mbit))のメモリを搭載すれば良いので、結果的にメモリコストが大幅に抑えられる。
例えば、増加メモリについては、上述の特許文献1の技術では、+8Gbitであるのに対して、この実施形態の不揮発メモリ装置の構成によれば、+256Mbitである。したがって、価格換算すると、この実施形態に係る不揮発メモリ装置は、上述の特許文献1の技術に比べて16分の1のコストとなる。
また、この実施形態の不揮発メモリ装置の構成によれば、制御回路も簡易で小さくなる。つまり、SLC−NANDメモリを小容量にできる理由は、エラーの発生したMLC−NANDメモリの情報を書き戻した後、SLC−NANDメモリは消去して再利用することができるためである。
さらに、この実施形態に係る不揮発メモリ装置によれば、電子端末装置の電池残量モニタ出力や、電子端末装置の温度モニタ出力から得られる装置情報に基づいて、書込み中の電源断のリスクや、高温時の書込みによる書込みエラーのリスクを判定し、不揮発メモリ書込み装置の回路を使用しているので、システムの信頼性をさらに向上させることができる。
実施形態2
次に、この発明の第2の実施形態である不揮発メモリ装置について説明する。上述の第1の実施形態では、一般的なNANDフラッシュメモリを用いた場合の例を示したが、これに代えて、異なる特性を持つものの、コマンドに互換性のある複数の不揮発メモリデバイスを用いて不揮発メモリ装置を実現させることもできる。
すなわち、第2の実施形態として、図1の第1の不揮発メモリ102を大容量のMLC−NORフラッシュメモリとし、図1の第2の不揮発メモリ103を小容量のSLC−NORフラッシュメモリとすることができる。動作は、上述の第1の実施形態で述べたと略同様である。MLC−NORフラッシュメモリは、SLC−NORフラッシュよりも書込み時間が長いため、不意の電源断によるデータの喪失のリスクが高いものの、SLC−NORフラッシュは、書込み時間が短いので、上記した第1の実施形態で述べたと略同様の効果を得ることができる。
実施形態3
次に、この発明の第3の実施形態である不揮発性メモリ装置について説明する。第3の実施形態としては、図1の第1の不揮発メモリ102をNORフラッシュメモリ、図1の第2の不揮発メモリ103をPCMメモリ(相変化メモリ)とすることができる。動作は、上述の第1の実施形態で述べた不揮発性メモリ装置と略同様である。NORフラッシュメモリは、PCMメモリよりも書込み時間が長いため、不意の電源断によるデータの喪失のリスクが高いが、PCMメモリは、書込み時間が非常に短いので、上述の第1の実施形態で述べたと略同様の効果を得ることができる。なお、上述の第1の実施形態、第2の実施形態、及び、この第3の実施形態においては、不揮発メモリの個数は2個以上であっても良い。
以上説明したように、上述の各種実施形態の不揮発メモリ装置は、携帯端末や情報端末等の電子端末装置において、大容量のMLC−NANDメモリに電子端末装置のシステムにとって重要なデータを書き込む際に、補助的な目的で搭載する小容量のSLC−NANDメモリにも、同時に、この重要なデータを書込むように構成されている。このとき、データ二重化回路は、MLC−NANDメモリと同じデータバス上にSLC−NANDメモリを接続している。したがって、電子端末装置のシステムにとって重要なデータを書込む際に、CPUから二重化書込み信号をデータ二重化回路に伝達し、2つのデバイス(MLC−NANDメモリとSLC−NANDメモリ)をマルチセレクトの状態にして書込みデータを2つのデバイスに伝達している。
なお、MLC−NANDメモリとSLC−NANDメモリの書込みコマンド等は、互換性が保たれたものが、市場で販売されている。
また、上述の各種実施形態の不揮発メモリ装置によれば、書込みの結果、MLC−NANDメモリ側にエラーが発生した場合でも、二重化したSLC−NANDメモリ側がエラーでなければ、そのまま次の書込み処理を継続することができる。これは、データが二重化されているために、MLC−NANDメモリのデータに不正があっても、SLC−NANDメモリの正しいデータを読み出すことができることによるものである。また、データの書込みはMLC−NANDメモリとSLC−NANDメモリは同時に実行するために処理時間は変わらない。すなわち、MLC−NANDメモリに書込みエラーが発生しても、トータルの処理時間を変えずに書込み処理を完了させることができる。
また、上述の各種実施形態の不揮発メモリ装置によれば、MLC−NANDメモリよりも書込み時間が短いSLC−NANDメモリで二重化書込みを行うため、電源断(電池切れ)によるデータロスのリスクが低くなる。すなわち、最終的には、ファームウェアのバージョンアップ等の全ての書込み処理が完了した後にファームウェアの動作の確認を行っている。エラーの発生したMLC−NANDの領域は、後でSLC−NANDメモリからMLC−NANDメモリへ書き戻しを行い、この後、SLC−NANDメモリで使用した領域の消去を行う。このため、SLC−NANDメモリを消去して二重化書込みに再利用されるため、SLC−NANDメモリのメモリ容量は小さくすることができる。
また、SLC−NANDメモリで二重化書込みを行うメリットは、MLC−NANDメモリよりもプログラムの書込み/削除の書き換え可能回数が多くなり、書込みエラーの発生頻度が低くなって書込み時間が短くなるためである。
なお、前述した不揮発メモリ書込み方法は、コンピュータがプログラム読み込むことによって実現される。したがって、上述の不揮発メモリ書込み方法の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、前述した各処理が行われる。ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disk−Red Only Memory)、DVD−ROM(Digital Versatile Disk−Red Only Memory)、半導体メモリ等をいう。
以上、この発明の実施形態を、図面を参照して詳述してきたが、この発明の具体的に構成は、これらの実施形態に限られるものではなく、この発明の趣旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。例えば、このプログラムを通信回線によって外部のコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。また、二重化書込みに限らず、必要に応じて、三重化以上の多重化書込みにしても良い。
この発明の不揮発メモリ装置は、特性の異なる2つの不揮発メモリに同じデータを二重化して書込むため、通信の信頼性が高い電子端末装置等に有効に利用することができる。
100 電子端末装置
101 CPU(演算処理装置)
102 第1の揮発メモリ素子
103 第2の揮発メモリ素子
104 揮発メモリ素子
105 周辺回路
106 二重化書込み回路
106a OR回路
106b AND回路
107 電池残量モニタ
108 温度センサ
110 不揮発メモリ装置

Claims (15)

  1. 共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリと、
    これら第1及び第2の不揮発メモリを一括選択し、これら第1及び第2の不揮発メモリへデータの二重化書込みを行う二重化書込み手段とを備えてなることを特徴とする不揮発メモリ装置。
  2. 前記二重化書込み手段は、前記第1及び第2の不揮発メモリの間で互換性のある二重化書込み信号の入力を受けると、同一データを前記第1及び第2の不揮発メモリへ書込むことを特徴とする請求項1記載の不揮発メモリ装置。
  3. 前記第1の不揮発メモリは、大容量で、かつ信頼性が比較的低いメモリからなると共に、前記第2の不揮発メモリは、小容量で、かつ信頼性が比較的高いメモリからなり、前記第1の不揮発メモリへ書込むデータを二重化して書込むための補助メモリとして機能することを特徴とする請求項1又は2記載の不揮発メモリ装置。
  4. 前記第2の不揮発メモリは、前記第1の不揮発メモリよりもデータの書込み速度が速いことを特徴とする請求項1、2又は3記載の不揮発メモリ装置。
  5. 前記第2の不揮発メモリは、前記第1の不揮発メモリよりも、プログラムの書込み/削除の書き換え可能回数が多いメモリであることを特徴とする請求項1乃至4の何れか一に記載の不揮発メモリ装置。
  6. 前記二重化書込み手段は、演算処理装置からの前記二重化書込み信号に基づいて、前記第1の不揮発メモリへ書込むデータを前記第2の不揮発メモリへ二重化して書込むことを特徴とする請求項1乃至5の何れか一に記載の不揮発メモリ装置。
  7. 前記演算処理装置は、前記第1及び第2の不揮発メモリの雰囲気温度が所定の温度より高いときに前記二重化書込み信号を生成することを特徴とする請求項6記載の不揮発メモリ装置。
  8. 前記演算処理装置は、前記第1及び第2の不揮発メモリに電源を供給する電池の残容量が所定のレベルよりも低下したときに前記二重化書込み信号を生成することを特徴とする請求項6記載の不揮発メモリ装置。
  9. 前記第1の不揮発メモリが、MLC−NANDフラッシュメモリ、MLC−NORフラッシュメモリ、又はNORフラッシュメモリからなると共に、
    前記第2の不揮発メモリが、SLC−NANDフラッシュメモリ、SLC−NORフラッシュメモリ、又はPCMメモリからなることを特徴とする請求項1乃至8の何れか一に記載の不揮発メモリ装置。
  10. 不揮発メモリへ冗長的にデータを書込む不揮発メモリへの書込み方法であって、
    共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリを一括選択する第1のステップと、
    一括選択された前記第1及び第2の不揮発メモリへデータの二重化書込みを行う第2のステップとを有してなることを特徴とする不揮発メモリの書込み方法。
  11. 不揮発メモリへ冗長的にデータを書込む不揮発メモリへの書込み方法であって、
    共通のデータバス及びアドレスバスに接続された、動作原理、アクセス方式、又は素子構造の相違に起因する記憶容量及び信頼性の異なる第1及び第2の不揮発メモリを一括選択する第1のステップと、
    書込みデータの重要度のレベルを判定する第2のステップと、
    前記書込みデータの重要度のレベルが高いときに、前記第1及び第2の不揮発メモリへの二重化書込みモードを設定する第3のステップと、
    前記第1及び第2の不揮発メモリに対して互換性のある書込みコマンドを指定する第4のステップと、
    前記書込みコマンドに基づいて、二重化書込み用のイネーブル信号を活性化する第5のステップと、
    前記イネーブル信号に基づいて、前記第1及び第2の不揮発メモリに対してデータの二重書込みを行う第6のステップとを有してなることを特徴とする不揮発メモリの書込み方法。
  12. 前記第1の不揮発メモリは、大容量で、かつ信頼性が比較的低いメモリからなると共に、前記第2の不揮発メモリは、小容量で、かつ信頼性が比較的高いメモリからなり、前記第1の不揮発メモリへ書込むデータを二重化して書込むための補助メモリとして機能することを特徴とする請求項10又は11記載の不揮発メモリの書込み方法。
  13. 前記第2の不揮発メモリは、前記第1の不揮発メモリよりもデータの書込み速度が速いことを特徴とする請求項10、11又は12記載の不揮発メモリの書込み方法。
  14. 前記第2の不揮発メモリは、前記第1の不揮発メモリよりも、プログラムの書込み/削除の書き換え可能回数が多いメモリであることを特徴とする請求項10乃至13の何れか一に記載の不揮発メモリの書込み方法。
  15. 請求項10乃至14の何れか一に記載の不揮発メモリへの書込み方法をコンピュータに実行させる不揮発メモリ書込みプログラム。
JP2009041578A 2009-02-24 2009-02-24 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム Pending JP2010198252A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009041578A JP2010198252A (ja) 2009-02-24 2009-02-24 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009041578A JP2010198252A (ja) 2009-02-24 2009-02-24 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム

Publications (1)

Publication Number Publication Date
JP2010198252A true JP2010198252A (ja) 2010-09-09

Family

ID=42822925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009041578A Pending JP2010198252A (ja) 2009-02-24 2009-02-24 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム

Country Status (1)

Country Link
JP (1) JP2010198252A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014509769A (ja) * 2011-03-02 2014-04-21 アップル インコーポレイテッド メモリ装置での温度センサの使用
US9076516B2 (en) 2012-03-23 2015-07-07 Samsung Electronics Co., Ltd. Method for programming a nonvolatile memory device
CN105262409A (zh) * 2014-07-11 2016-01-20 株式会社电装 电动机控制器和使用该电动机控制器的电动转向设备
US10061694B2 (en) 2015-09-07 2018-08-28 Toshiba Memory Corporation Memory system and method for controlling non-volatile memory
CN109491925A (zh) * 2018-09-20 2019-03-19 中山市江波龙电子有限公司 存储设备及其数据写入方法、存储装置
JP2020017262A (ja) * 2018-07-24 2020-01-30 三星電子株式会社Samsung Electronics Co.,Ltd. ソリッドステートドライブ及びそのメタデータアクセス方法
CN111897489A (zh) * 2020-06-28 2020-11-06 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质
CN111930300A (zh) * 2020-06-28 2020-11-13 深圳佰维存储科技股份有限公司 数据写入方法、装置、计算机可读存储介质及电子设备
US11055011B2 (en) 2019-08-07 2021-07-06 Samsung Electronics Co., Ltd. Storage device
US11847209B2 (en) 2019-02-18 2023-12-19 Samsung Electronics Co., Ltd. Memory device and system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014509769A (ja) * 2011-03-02 2014-04-21 アップル インコーポレイテッド メモリ装置での温度センサの使用
US9076516B2 (en) 2012-03-23 2015-07-07 Samsung Electronics Co., Ltd. Method for programming a nonvolatile memory device
US11383762B2 (en) 2014-07-11 2022-07-12 Denso Corporation Motor controller and electric power steering using same
CN105262409A (zh) * 2014-07-11 2016-01-20 株式会社电装 电动机控制器和使用该电动机控制器的电动转向设备
JP2016019449A (ja) * 2014-07-11 2016-02-01 株式会社デンソー モータ制御装置およびそれを用いた電動パワーステアリング装置
US10155533B2 (en) 2014-07-11 2018-12-18 Denso Corporation Motor controller and electric power steering using same
US10061694B2 (en) 2015-09-07 2018-08-28 Toshiba Memory Corporation Memory system and method for controlling non-volatile memory
JP2020017262A (ja) * 2018-07-24 2020-01-30 三星電子株式会社Samsung Electronics Co.,Ltd. ソリッドステートドライブ及びそのメタデータアクセス方法
CN109491925A (zh) * 2018-09-20 2019-03-19 中山市江波龙电子有限公司 存储设备及其数据写入方法、存储装置
US11847209B2 (en) 2019-02-18 2023-12-19 Samsung Electronics Co., Ltd. Memory device and system
US11055011B2 (en) 2019-08-07 2021-07-06 Samsung Electronics Co., Ltd. Storage device
CN111930300A (zh) * 2020-06-28 2020-11-13 深圳佰维存储科技股份有限公司 数据写入方法、装置、计算机可读存储介质及电子设备
CN111897489A (zh) * 2020-06-28 2020-11-06 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质
CN111897489B (zh) * 2020-06-28 2023-06-13 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP2010198252A (ja) 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
US9612824B2 (en) Firmware variable update method
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
US8086841B2 (en) BIOS switching system and a method thereof
KR101546072B1 (ko) 반도체 디스크 장치, 그것을 포함하는 컴퓨팅 시스템, 그리고 그것의 동작 방법
US8392797B2 (en) Error correcting controller, flash memory chip system, and error correcting method thereof
US9519436B1 (en) Memory erasing method, memory controller, and memory storage apparatus
JP4373943B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
TWI404054B (zh) 處理微碼程式更新錯誤的裝置及其方法
CN105389122B (zh) 数据储存器件的操作方法
KR20070060101A (ko) 무선 단말기에서의 비휘발성 메모리 관리 시스템 및 방법
US8572364B2 (en) Method and apparatus for booting from a flash memory
JP2009211204A (ja) メモリシステム
CN111399752B (zh) 不同类型存储单元的控制装置及方法
US8527733B2 (en) Memory system
JP2008251154A (ja) 不揮発性半導体記憶装置
KR20160025377A (ko) 반도체 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
JP2009176147A (ja) 電子機器および電子機器のメモリアクセス許可判別方法
CN101169754B (zh) 计算机系统及其控制方法
JP2013174976A (ja) メモリシステムおよび制御プログラムの更新方法
KR100575927B1 (ko) 이동통신 단말기에서 부팅 방법
JP2013174977A (ja) メモリシステムおよびポインタ情報の更新方法
CN116954508A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元