(57)【要約】【課題】ＮＡＮＤ型フラッシュメモリに記憶されるファイルを保護しながら、メモリ制御に係る処理負荷を低減する。【解決手段】メモリセルアレイ２５，３５を含む複数のシリコンダイ２０，３０、を有し、複数のシリコンダイ２０，３０のうち同時に一のシリコンダイのみを書き込み可能なダイとして選択可能であり、且つ、複数のシリコンダイ２０，３０のそれぞれに独立して電圧を供給可能なＮＡＮＤ型フラッシュメモリ１４を制御する方法。複数のダイ２０，３０それぞれの記憶領域Ａｐ１，Ａｐ２が、同一のファイルを記憶する。ファイルの書き換えをするとき、選択されたダイ２０の記憶領域Ａｐ１に対して書き換えを行う。終了処理において、選択されたダイ２０の書き換えの内容を、選択されたダイ２０以外のダイ３０の記憶領域Ａｐ２に反映する。【選択図】図１
2020181325.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能であり、且つ、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能なＮＡＮＤ型フラッシュメモリを制御する方法であって、
少なくとも起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶しており、
前記複数のシリコンダイから一のシリコンダイを選択し、
前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行い、
終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する方法。
【請求項２】
乱数を生成し、該乱数に基づいて前記一のシリコンダイを選択する請求項１に記載の方法。
【請求項３】
前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域の前記書き換えを行ったブロックの識別情報を記憶し、前記終了処理において、前記識別情報に基づいて、前記書き換えを行ったブロックのみについて、前記書き換えの内容を前記選択されたシリコンダイ以外の前記複数のシリコンダイの前記所定の記憶領域に反映する請求項１または２に記載の方法。
【請求項４】
前記ファイルは、プログラムコードを含む請求項１から３の何れか一項に記載の方法。
【請求項５】
前記複数のシリコンダイは、それぞれ前記ファイルを記憶する複数の前記所定の記憶領域を含み、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記複数の前記所定の記憶領域の何れか一つに対して書き換えを行う請求項１から３の何れか一項に記載の方法。
【請求項６】
前記複数の前記所定の記憶領域は、それぞれ、記憶されているファイルの書き換えの順序を示す情報を記憶し、前記ファイルの書き換えをするとき、前記情報に基づいて、最も早く書き換えられた前記所定の記憶領域を優先して書き換える請求項５に記載の方法。
【請求項７】
ファイルを読み出すとき、最も遅く書き換えられた前記所定の記憶領域に対してエラー検出処理を行い、エラーが検出された場合は、前記選択されたシリコンダイの他の前記所定の記憶領域に対して前記ファイルの書き換えをする請求項６に記載の方法。
【請求項８】
リセット時において、前記終了処理を実行した後、起動する処理を実行する請求項１から７の何れか一項に記載の方法。
【請求項９】
メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能であり、且つ、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能なＮＡＮＤ型フラッシュメモリと、
前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行うプロセッサと、
を備える装置であって、
前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶しており、
前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択し、前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行い、前記プロセッサは、前記装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する装置。
【請求項１０】
光学系と、
前記光学系により結像した被写体像を撮像する撮像素子と、
メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能であり、且つ、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能なＮＡＮＤ型フラッシュメモリと、
前記撮像素子が撮像した前記被写体像を取得するとともに、前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行うプロセッサと、
を備える撮像装置であって、
前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記撮像装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶しており、
前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択し、前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行い、前記プロセッサは、前記撮像装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する撮像装置。
【請求項１１】
光学系、前記光学系により結像した被写体像を撮像する撮像素子、メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能であり、且つ、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能なＮＡＮＤ型フラッシュメモリ、及び、前記撮像素子が撮像した前記被写体像を取得するとともに、前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行うプロセッサを含む撮像装置であって、前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記撮像装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶しており、前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択し、前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行い、前記プロセッサは、前記撮像装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する撮像装置を備える移動体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ＮＡＮＤ型フラッシュメモリを制御する方法、装置、撮像装置及び移動体に関する。
【背景技術】
【０００２】
電気的に消去及び書き換えが可能な不揮発性の半導体メモリとして、ＮＡＮＤ型フラッシュメモリがある。ＮＡＮＤ型フラッシュメモリは、携帯電話及び車載カメラ等を含む種々の装置の記憶装置として使用されている。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、書き換え及び消去を繰り返すとセルの劣化が生じる。特定のブロックに書き換え及び消去が集中すると、そのブロックの劣化が早くなる。このため、従来ＮＡＮＤ型フラッシュメモリでは、書き換えをメモリ内で平準化させるウェアレベリング、及び、不良ブロックの検出及び管理等の処理が行われる（例えば、特許文献１参照）。ＮＡＮＤ型フラッシュメモリのウェアレベリング及び不良ブロックの追跡のためには、ＵＢＩ（Unsorted Block Image）ファイルシステム等の処理に負荷のかかるファイルシステムが使用される。また、従来ＮＡＮＤ型フラッシュメモリでは、プログラムファイルが格納されたブロック等、特定のブロックを、誤りによる書き換えから保護するためにブロックする、ブロックロック制御が行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１６０１９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来のＮＡＮＤ型フラッシュメモリに格納されるプログラム及びデータ等のファイルを保護するための種々の機構は、処理負荷が高いため装置の性能を低下させること、及び、多くのメモリ資源を消費することがある。ＮＡＮＤ型フラッシュメモリの書き換え及び消去等に係る処理は、単純且つメモリ資源を多く消費しないことが好ましい。
【０００６】
したがって、これらの点に着目してなされた本開示の目的は、ファイルを保護しながら、メモリ制御に係る処理負荷を低減することができるＮＡＮＤ型フラッシュメモリの制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本開示の方法は、ＮＡＮＤ型フラッシュメモリを制御する方法である。ＮＡＮＤ型フラッシュメモリは、メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能である。前記ＮＡＮＤ型フラッシュメモリは、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能である。なこの方法では、少なくとも起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶している。この方法は、前記複数のシリコンダイから一のシリコンダイを選択することを含む。この方法は、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行うことを含む。この方法は、終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映することを含む。
【０００８】
本開示の装置は、ＮＡＮＤ型フラッシュメモリと、プロセッサとを備える。前記ＮＡＮＤ型フラッシュメモリは、メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能である。前記ＮＡＮＤ型フラッシュメモリは、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能である。前記プロセッサは、前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行う。前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶している。前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択する。前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行う。前記プロセッサは、前記装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する。
【０００９】
本開示の撮像装置は、光学系と、撮像素子と、ＮＡＮＤ型フラッシュメモリと、プロセッサとを備える。前記撮像素子は、前記光学系により結像した被写体像を撮像する。前記フラッシュメモリは、メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能である。前記ＮＡＮＤ型フラッシュメモリは、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能である。前記プロセッサは、前記撮像素子が撮像した前記被写体像を取得するとともに、前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行う。前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記撮像装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶している。前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択する。前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行う。前記プロセッサは、前記撮像装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する。
【００１０】
本開示の移動体は、撮像装置を備える。前記撮像装置は、光学系と、撮像素子と、ＮＡＮＤ型フラッシュメモリと、プロセッサとを備える。前記撮像素子は、前記光学系により結像した被写体像を撮像する。前記フラッシュメモリは、メモリセルアレイを含む複数のシリコンダイを有し、該複数のシリコンダイのうち同時に一のシリコンダイのみを書き込み可能なシリコンダイとして選択可能である。前記ＮＡＮＤ型フラッシュメモリは、前記複数のシリコンダイのそれぞれに独立して電圧を供給可能である。前記プロセッサは、前記撮像素子が撮像した前記被写体像を取得するとともに、前記ＮＡＮＤ型フラッシュメモリに対して、読み出し及び書き込みの制御を行う。前記ＮＡＮＤ型フラッシュメモリは、少なくとも前記撮像装置の起動時において、前記複数のシリコンダイそれぞれの前記メモリセルアレイの物理的に固定された所定の記憶領域が、同一のファイルを記憶している。前記プロセッサは、前記複数のシリコンダイから一のシリコンダイを選択する。前記プロセッサは、前記ファイルの書き換えをするとき、前記選択されたシリコンダイの前記所定の記憶領域に対して書き換えを行う。前記プロセッサは、前記撮像装置の終了処理において、前記選択されたシリコンダイの前記所定の記憶領域に対する前記書き換えの内容を、前記選択されたシリコンダイ以外の前記シリコンダイの前記所定の記憶領域に反映する。
【発明の効果】
【００１１】
本開示のＮＡＮＤ型フラッシュメモリを制御する方法、装置、撮像装置及び移動体によれば、ＮＡＮＤ型フラッシュメモリに記憶されるファイルを保護しながら、メモリ制御に係る処理負荷を低減することができる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係るＮＡＮＤ型フラッシュメモリを搭載した装置の概略構成の一例を示すブロック図である。
【図２】図１のＮＡＮＤ型フラッシュメモリの記憶領域の一例を示す図である。
【図３】図１のＮＡＮＤ型フラッシュメモリにプログラムファイルを記憶する場合の記憶領域の配置の一例を示す図である。
【図４】ＲＡＭに記憶されるブロック更新情報の一例を示す図である。
【図５】図１の装置の起動処理の一例を示すフローチャートである。
【図６】図１の装置のＮＡＮＤ型フラッシュメモリへの書き込み処理の一例を示すフローチャートである。
【図７】図１の装置の終了処理の一例を示すフローチャートである。
【図８】図１の装置のリセット時の処理の一例を示すフローチャートである。
【図９】第２実施形態に係る装置に搭載されるＮＡＮＤ型フラッシュメモリの記憶領域の配置の一例を示す図である。
【図１０】図９のＮＡＮＤ型フラッシュメモリに書き込まれる１ページのデータの構成例を示す図である。
【図１１】図９のＮＡＮＤ型フラッシュメモリのデータの書き込み処理の一例を示すフローチャートである。
【図１２】図９のＮＡＮＤ型フラッシュメモリの起動時におけるデータの読み出し処理の一例を示すフローチャートである。
【図１３】ＮＡＮＤ型フラッシュメモリを搭載した撮像装置の概略構成の一例を示すブロック図である。
【図１４】ＮＡＮＤ型フラッシュメモリを搭載した撮像装置を搭載する車両の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図面を参照して説明する。なお、以下の説明で用いられる図は模式的なものである。図面上の寸法比率等は現実のものとは必ずしも一致していない。
【００１４】
［第１実施形態］
本開示の第１実施形態に係る装置１０は、コンピュータ、ゲーム機、携帯電話、撮像装置、音楽プレーヤ、カーナビゲーションシステム等の種々の情報処理装置を含む。
【００１５】
（装置の構成）
図１に示すように、装置１０は、プロセッサ１１、ＲＯＭ（Read‐Only Memory）１２、ＲＡＭ（Random Access Memory）１３及びＮＡＮＤ型フラッシュメモリ１４を含む。装置１０は、その種類に応じて、さらに、表示装置、入出力装置、及び、センサ等を有してよい。
【００１６】
プロセッサ１１は、ＲＯＭ１２、ＲＡＭ１３及びＮＡＮＤ型フラッシュメモリ１４に記憶されたプログラム及びデータに従って、種々の処理を実行する。プロセッサ１１は、演算装置、命令または情報を格納するレジスタ及び周辺回路を含む。プロセッサ１１は、ＲＯＭ１２及びＲＡＭ１３の少なくとも一部を含んでよい。プロセッサ１１には、特定のプログラムを読み込ませて特定の機能を実行する汎用のプロセッサ、特定の処理に特化した専用のプロセッサが含まれる。専用のプロセッサには、特定用途向けＩＣ（ＡＳＩＣ；Application Specific Integrated Circuit）が含まれる。プロセッサ１１には、プログラマブルロジックデバイス（ＰＬＤ；Programmable Logic Device）が含まれる。ＰＬＤには、ＦＰＧＡ（Field-Programmable Gate Array）が含まれる。プロセッサ１１は、一つまたは複数のプロセッサが協働するＳｏＣ（System-on-a-Chip）、及びＳｉＰ（System In a Package）のいずれかであってよい。
【００１７】
ＲＯＭ１２は、不揮発性の記憶素装置である。ＲＯＭ１２は、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable Programmable ROM）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、ＮＯＲ型フラッシュメモリ等を含む。ＲＯＭ１２は、プロセッサ１１に内蔵されてよい。ＲＯＭ１２には、装置１０の起動用のプログラムを含むプログラム及びデータが記憶されることができる。
【００１８】
ＲＡＭ１３は、揮発性の記憶装置である。ＲＡＭ１３は、一時的な記憶領域を提供する。ＲＡＭ１３は、ＤＲＡＭ（Dynamic Random Access Memory）及びＳＲＡＭ（Static Random Access Memory）を含む。ＤＲＡＭは、ＳＤＲＡＭ（Synchronous Dynamic Ramdom Access Memory）を含む。ＲＡＭ１３は、プロセッサ１１に内蔵されてよい。ＲＡＭ１３は、ＮＡＮＤ型フラッシュメモリ１４から読み出したファイルの展開、書き換え対象のブロックのデータの一時保存、ブロック更新情報の格納等に使用される。
【００１９】
ＮＡＮＤ型フラッシュメモリ１４は、複数のシリコンダイである第１のダイ２０及び第２のダイ３０を含んで構成される。以下において、ＮＡＮＤ型フラッシュメモリ１４は、２つのシリコンダイを有するものとして説明する。ＮＡＮＤ型フラッシュメモリ１４は、３つ以上のシリコンダイを有してよい。ＮＡＮＤ型フラッシュメモリ１４は、同じ構造の第１のダイ２０及び第２のダイ３０を含む複数のシリコンダイが、スタックされて構成されてよい。本願のシリコンダイは、メモリセルがアレイ状に形成されている。シリコンダイは、メモリチップと言い換えることができる。
【００２０】
第１のダイ２０は、入出力回路２１、コントローラ２２、周辺回路２３、電圧発生回路２４、及び、第１のメモリセルアレイ２５を含む。
【００２１】
入出力回路２１は、プロセッサ１１との間で信号等を送受信するインタフェースを構成する。入出力回路２１は、外部端子を介してＮＡＮＤ型フラッシュメモリ１４の外部と接続される。外部端子には、電源用の外部端子、グランド用の外部端子、ダイ選択用の外部端子、データ入出力用の外部端子、及び、制御信号用を入力するための外部端子を含んでよい。第１のダイ２０は、入出力回路２１を介して、プロセッサ１１からダイの選択情報を受信する。第１のダイ２０は、プロセッサ１１により選択されている場合に、読み出し、書き込み、及び、消去等の指示を、プロセッサ１１から受信する。
【００２２】
コントローラ２２は、入出力回路２１を介してプロセッサ１１からの指示を受け取り、第１のダイ２０全体を制御する。コントローラ２２は、プロセッサ１１からの第１のダイ２０が選択されたことを示す信号を受け取ったとき、プロセッサ１１から受信する読み出し、書き込み、及び、消去等の指示を実行する。コントローラ２２は、プロセッサ１１から第２のダイ３０が選択されたことを示す信号を受け取ったとき、第１のメモリセルアレイ２５に対して、読み出し、書き込み、及び、消去を含む何れの処理も行わない。コントローラ２２は、第２のダイ３０が選択されているとき、第１のメモリセルアレイ２５を外部から電気的に切り離す。
【００２３】
周辺回路２３は、アドレスレジスタ、選択回路、バッファ等を含む。アドレスレジスタは、入出力回路２１を介してアドレスデータを受け取る。選択回路は、第１のメモリセルアレイ２５に対して書き込み及び読み出しを行う際の行及び列を選択する。バッファは、読み出し及び書き込みを行うデータを保持する。
【００２４】
プロセッサ１１により第１のダイ２０が選択されているとき、電圧発生回路２４は、第１のメモリセルアレイ２５に対して、データの読み出し、書き込み、及び、消去等を行うために必要となる種々の電圧を発生させる。第２のダイ３０が選択され、第１のダイ２０が選択されていないとき、電圧発生回路２４は電圧の供給を停止してよい。これにより、第１のメモリセルアレイ２５は、プロセッサ１１及び第２のダイ３０から電気的に切り離される。このように、第１のダイ２０の第１のメモリセルアレイ２５は、第２のダイ３０から独立して電圧を供給されることができる。
【００２５】
第１のメモリセルアレイ２５は、行方向及び列方向に２次元に配列されたメモリセルを含む。第１のメモリセルアレイ２５は、複数のブロックと呼ばれる領域を含む。ブロックは、データを消去することができる最小の記憶領域である。ブロックは、複数のページを含む。ページは、データの書き込み及び読み出しが実行される最小の記憶領域である。各ブロックは、例えば、６４のページを含む。各ページは、例えば２０４８バイトのメモリセルを含む。
【００２６】
第２のダイ３０は、入出力回路３１、コントローラ３２、周辺回路３３、電圧発生回路３４、及び、第２のメモリセルアレイ３５を含む。これらの構成要素は、第１のダイ２０の入出力回路２１、コントローラ２２、周辺回路２３、電圧発生回路２４、及び、第１のメモリセルアレイ２５と同じに構成されるので、説明を省略する。
【００２７】
プロセッサ１１は、第１のダイ２０及び１つ以上の第２のダイ３０のうち、同時に１つのシリコンダイのみを書き込み可能なシリコンダイとして選択することができる。第１のダイ２０または第２のダイ３０の選択は、ダイ切り替えコマンドにより実行することができる。図２に示すように、第１のダイ２０と第２のダイ３０とは、同じ数のブロックで構成される。プロセッサ１１は、ダイ切り替えコマンドにより選択した一方のダイのメモリセルアレイのみに対して、書き込み、読み出し及び消去等の操作することができる。例えば、図２では、第１のダイ２０が選択され、第１のダイ２０のブロック０〜１０２３のみが操作の対象となる。図２において破線で示される選択されていない第２のダイ３０のブロック０〜１０２３は、プロセッサ１１から操作されることはできない。第１のダイ２０のブロックと第２のダイ３０のブロックとは、同じブロック番号（０〜１０２３）で制御されうる。
【００２８】
なお、図２において、ブロック１００４〜１０２３は、スペア領域のブロックを示す。スペア領域は、普段使用されない予備の領域である。スペア領域は、後述の図３及び図９で、第１のスペア領域Ａｓ１及び第２のスペア領域Ａｓ２として示される。
【００２９】
上述のように、互いに電気的に切り離されて制御され、独立して電圧を供給可能な複数のシリコンダイを有するＮＡＮＤ型フラッシュメモリが、近年メモリ製造事業者から提供されている（例えば、ウィンボンド・エレクトロニクス社製のSpiStack Flash等）。本開示は、このようなＮＡＮＤ型フラッシュメモリを使用して、記憶されるファイルを保護しながら、メモリ制御に係る処理負荷を低減することができるＮＡＮＤ型フラッシュメモリの制御方法と、この制御方法を使用する装置１０とを提案する。このようなＮＡＮＤ型フラッシュメモリの使用方法および制御方法は、以下に説明される。
【００３０】
（ＮＡＮＤ型フラッシュメモリの使用方法）
本実施形態では、図３に示すように、第１のダイ２０及び第２のダイ３０の同じブロック番号を有するブロックが、プログラムファイルを記憶する第１のプログラム記憶領域Ａｐ１及び第２のプログラム記憶領域Ａｐ２として割り当てられる。プログラムファイルは、プログラムコードを含む。第１のプログラム記憶領域Ａｐ１及び第２のプログラム記憶領域Ａｐ２は、それぞれ、互いに対応する第１のメモリセルアレイ２５及び第２のメモリセルアレイ３５内の物理的に固定された所定の記憶領域に位置する。
【００３１】
第１のプログラム記憶領域Ａｐ１及び第２のプログラム記憶領域Ａｐ２は、装置１０が使用する同一のプログラムファイルを記憶することができる。すなわち、装置１０は、同じプログラムファイルをＮＡＮＤ型フラッシュメモリ１４内に２重に記憶することができる。第１のプログラム記憶領域Ａｐ１及び第２のプログラム記憶領域Ａｐ２は、同じ物理アドレスに同一のプログラムファイルを記憶することができる。少なくとも、装置１０の起動時において、第１のダイ２０及び第２のダイ３０のそれぞれの第１のメモリセルアレイ２５及び第２のメモリセルアレイ３５の物理的に固定された所定の記憶領域は、同一のプログラムファイルを記憶する。すなわち、第１のダイ２０の記憶領域と第２のダイ３０の記憶領域とは、「ミラー化」されている。装置１０の起動時とは、装置１０に電源が投入されたとき、または、装置１０がリセット操作を受けて終了処理を行った後の再起動したときを意味する。
【００３２】
第１のダイ２０及び第２のダイ３０に記憶されるプログラムファイルの何れか一方は、装置１０が起動したとき、プロセッサ１１によってＲＡＭ１３に読み出される。他方のプログラムファイルは、バックアップ用のプログラムファイルとなる。ＲＡＭ１３に読み出されるプログラムファイルを記憶するＮＡＮＤ型フラッシュメモリ１４の記憶領域（第１のプログラム記憶領域Ａｐ１及び第２のプログラム記憶領域ＡＰ２の何れか）を「正面」と呼ぶことができる。バックアップに用いられるプログラムファイルを記憶する記憶領域を「副面」と呼ぶことができる。ＮＡＮＤ型フラッシュメモリ１４は、プログラムファイルを「複数面」で記憶しているということができる。
【００３３】
装置１０の起動後において、プログラムファイルを書き換える必要が生じることがある。プロセッサ１１は第１のダイ２０及び第２のダイ３０の何れか１つを選択し、ＮＡＮＤ型フラッシュメモリ１４の所定の記憶領域に記憶されたプログラムファイルに書き換え（消去及び書き込み）をすることができる。以下では、選択されたシリコンダイが、第１のダイ２０であるものとして説明する。
【００３４】
ＲＡＭ１３は、選択されたシリコンダイのブロック更新情報を記憶する領域を有する。図４は、ブロック更新情報の一例を示す。プロセッサ１１は、第１のダイ２０の第１のプログラム記憶領域Ａｐ１の何れかのブロックを書き換えたとき、書き換えられたブロックに対応するＲＡＭ１３内の更新対象ブロック記録フラグ４１−１〜４１−ｎに例えば「１」を書き込み、フラグをセットする。ｎは、第１のプログラム記憶領域Ａｐ１のブロックの数である。更新対象ブロック記録フラグ４１−１〜４１−ｎは、書き換えを行ったブロックの識別情報である。「更新対象ブロック記録フラグ」は、図４で「更新記録フラグ」と表示する。さらに、プロセッサ１１は、ＲＡＭ１３内のＳＹＮＣフラグ４０に例えば「１」を書き込み、フラグをセットする。フラグがセットされていないとき、更新対象ブロック記録フラグ４１−１〜４１−ｎ及びＳＹＮＣフラグ４０は、例えば「０」が入力されている。したがって、ＲＡＭ１３には、第２のダイ３０の第１のプロクラム記憶領域Ａｐ１の何れのブロックが書き換えられたかの情報が格納される。
【００３５】
装置１０が終了処理をするとき、プロセッサ１１は、ＲＡＭ１３のブロック更新情報を参照する。プロセッサ１１は、ＲＡＭ１３に記憶されたブロック更新情報のＳＹＮＣフラグ４０がセットされているとき、プログラムファイルに書き換えが有ったと判断して、書き換えられていない第２のダイ３０の第２のプログラム記憶領域Ａｐ２の書き換えを行う。具体的には、プロセッサ１１は、更新対象ブロック記録フラグ４１−１〜４１−ｎを参照し、フラグがセットされているブロックの情報を、書き換えられた第１のダイ２０からＲＡＭ１３に読み出す。プロセッサ１１は、第２のダイ３０の対応するブロックにＲＡＭ１３に読み出されたブロックの情報を書き込む。これにより、選択された第１のダイ２０の第１のプログラム記憶領域Ａｐ１に対する書き換えの内容が、第２のダイ３０の第２のプログラム記憶領域Ａｐ２に反映される。
【００３６】
ＮＡＮＤ型フラッシュメモリ１４が、第１のダイ２０及び第２のダイ３０以外にシリコンダイを有する場合、プロセッサ１１はそのシリコンダイに対しても、第２のダイ３０に対する処理と同じ処理を実行する。
【００３７】
装置１０をリセットするとき、プロセッサ１１は、上記終了処理後に電源をオフにすることなく、再び起動処理を行う。再起動後の第１のダイ２０の第１のプログラム記憶領域Ａｐ１と第２のダイ３０の第２のプログラム記憶領域Ａｐ２とは、同一のプログラムファイルを記憶する。
【００３８】
以下において、第１実施形態に係るＮＡＮＤ型フラッシュメモリ１４の制御方法が、フローチャートに基づいてより詳しく説明される。
【００３９】
（起動処理）
装置１０の起動処理について図５を参照して説明する。装置１０の起動処理は、装置１０の利用者により装置１０の動作を開始させる操作をトリガーとして開始される。装置１０の動作を開始させる操作には、装置１０の電源スイッチをオンにする操作が含まれる。
【００４０】
まず、装置１０の動作を開始させる操作がなされると、プロセッサ１１が起動され、ブート起動処理を行う（ステップＳ１０１）。すなわち、プロセッサ１１は、プロセッサ１１内のマスクＲＯＭ又はＮＯＲフラッシュメモリ等のＲＯＭ１２に格納された起動プログラムを実行する。プログラムの起動時、ＲＡＭ１３の更新ブロック情報に含まれる更新対象ブロック記録フラグ４１−１〜４１−ｎ及びＳＹＮＣフラグ４０は、設定されていない状態（例えば、「０」が入力された状態）にある。
【００４１】
次に、プロセッサ１１は、起動プログラムに従って、乱数を生成する（ステップＳ１０２）。乱数は、疑似乱数でもよい。乱数の生成には、公知の乱数生成器を使用することができる。プロセッサ１１は、乱数生成器を内蔵してよい。
【００４２】
プロセッサ１１は、ステップＳ１０２で生成した乱数に基づいて、ＮＡＮＤ型フラッシュメモリ１４の選択するシリコンダイとして第１のダイ２０及び第２のダイ３０の何れかを決定してダイ切り替えを行う（ステップＳ１０３）。プロセッサ１１は、例えば、生成した乱数を２で割った余りが０のとき第１のダイ２０を選択し、余りが１のとき第２のダイ３０を選択してよい。以下では、第１のダイ２０が選択されたものとする。
【００４３】
プロセッサ１１は、選択された第１のダイ２０の第１のプログラム記憶領域Ａｐ１からプログラムファイルを読み出して、ＲＡＭ１３上に展開する（ステップＳ１０４）。ＲＡＭ１３上に展開するとは、ＲＡＭ１３上にコピーをすることを意味する。プロセッサ１１は、プログラムカウンタに記憶されるメモリ番地を、プログラムファイルが展開されたＲＡＭ１３上のメモリ番地に書き換える。以降において、プログラムファイルのプログラムは、ＲＡＭ１３上に展開されたプログラムに従って実行される（ステップＳ１０５）。
【００４４】
（書き変え処理）
次に、図６を参照して、プログラムファイルの書き換えの処理について説明する。従来のＮＡＮＤ型フラッシュメモリにおいて、プログラムファイルを格納する記憶領域は、意図しない書き換えを防止するためブロックロック機能によって保護される。この記憶領域を書き換えるためには、ブロックを解除（アンロック）する処理が必要となる。これに対して、本開示のＮＡＮＤ型フラッシュメモリ１４では、ブロックロック及びアンロックの処理を行わない。
【００４５】
まず、プロセッサ１１は、第１のプログラム記憶領域Ａｐ１の書き換え対象となるプログラムファイルのブロックを消去する（ステップＳ２０１）。プログラムファイルの特定のページを上書きするとき、プロセッサ１１は当該ページが含まれるブロックのすべてのページの内容を、ＲＡＭ１３に読み出して一時的に保存し、当該ブロック全体を消去する。書き込みを行うページが複数のブロックに跨る場合、プロセッサ１１は、複数のブロックについてＲＡＭ１３に読み出して、第１のプログラム記憶領域Ａｐ１から消去する。
【００４６】
次に、プロセッサ１１は、消去したブロックに対して書き込みを行う（ステップＳ２０２）。プロセッサ１１は、ＲＡＭ１３に読み出したデータについてＲＡＭ１３上で書き換えを行ってから、ステップＳ２０１で消去済みのブロックに対して改めて書き込むことができる。
【００４７】
プロセッサ１１は、ステップＳ２０２で書き込みを行ったブロックについて、ＲＡＭ１３のブロック更新情報中の対応する更新対象ブロック記録フラグ４１−１〜４１−ｎのフラグをセットする（ステップＳ２０３）。
【００４８】
プロセッサ１１は、ステップＳ２０２でブロックの書き込みを行ったとき、ステップＳ２０３で更新対象ブロック記録フラグ４１−１〜４１−ｎのフラグをセットした後、ＳＹＮＣフラグ４０をセットする。ＳＹＮＣフラグ４０をセットするのは、ステップＳ２０３の前でもよい。
【００４９】
装置１０の起動後に複数回ブロックの書き換えが発生する場合、ステップＳ２０１〜Ｓ２０４の処理が複数回実行される。更新対象ブロック記録フラグ４１−１〜４１−ｎは、対応するブロックが一度でも書き換えられるとフラグがセットされた状態となる。ＳＹＮＣフラグ４０は、何れかのブロックが一度でも書き換えられていれば、フラグがセットされた状態となる。
【００５０】
（終了処理）
次に、図７を参照して、装置１０の終了処理について説明する。装置１０の終了処理は、装置１０の動作を終了させる利用者の操作をトリガーとして開始される。装置１０の動作を終了させる利用者の操作には、装置１０の電源スイッチをオフにする操作等が含まれる。
【００５１】
装置１０のプロセッサ１１は、装置１０の動作を終了させる操作がなされたことを検出すると、ＲＡＭ１３に記憶されたブロック更新情報において、ＳＹＮＣフラグ４０がセットされているか否かを確認する（ステップＳ３０１）。
【００５２】
ステップＳ３０１でＳＹＮＣフラグ４０がセットされているとき、プロセッサ１１は、更新対象ブロック記録フラグ４１−１〜４１−ｎの状態を取得する。プロセッサ１１は、セットされた更新対象ブロック記録フラグ４１−１〜４１−ｎに対応するブロックの全てのデータをＲＡＭ１３に読み出す（ステップＳ３０２）。
【００５３】
ステップＳ３０２でブロックのデータをＲＡＭ１３に読み出した後、プロセッサ１１は、書き込み対象のダイを切り替える（ステップＳ３０３）。すなわち、図６のフローチャートで書き込みを行ったシリコンダイが、第１のダイ２０の場合、プロセッサ１１はダイ切り替えコマンドにより書き込み対象のダイを第２のダイ３０に切り替える。これによって、第１のダイ２０の第１のメモリセルアレイ２５は、プロセッサ１１から電気的に切り離される。プロセッサ１１から操作可能なシリコンダイは第２のダイ３０のみとなる。
【００５４】
次に、プロセッサ１１は、第２のダイ３０の書き換えの対象となるブロックのデータを更新する（ステップＳ３０４）。具体的には、プロセッサ１１は、ＲＡＭ１３に格納されたブロック更新情報に基づいて、書き換えの対象となるブロックのデータを消去する。プロセッサ１１は、データが消去されたブロックに、ステップＳ３２でＲＡＭ１３に読み出した第１のダイ２０の対応するブロックのデータを書き込む。
【００５５】
ステップＳ３０４の後、プロセッサ１１は装置１０の電源をオフにする所定の処理を実行する（ステップＳ３０５）。ステップＳ３０１において、ＳＹＮＣフラグ４０がセットされていないとき（ステップＳ３０1:Ｎｏ）、プロセッサ１１は、更新するブロックがないので、そのままステップＳ３０５の処理に進む。
【００５６】
ＮＡＮＤ型フラッシュメモリ１４が、第１のダイ２０及び第２のダイ３０以外の更なるシリコンダイを有する場合、上記終了処理において、プロセッサ１１は、ステップＳ３０３及びステップＳ３０４を連続して行う処理を、更なるシリコンダイに対して繰り返す。これにより、全てのシリコンダイに対して、第１のプログラム記憶領域Ａｐ１に対応するプログラム記憶領域のデータが更新され、第１のダイ２０に対して行ったプログラムファイルの変更が反映される。
【００５７】
（リセット処理）
利用者が、装置１０をリセットしたときの処理を、図８を参照して説明する。プロセッサ１１は、リセット命令を受け取ると、ステップＳ４０１〜ステップＳ４０４の処理を実行する。ステップＳ４０１〜ステップＳ４０４は、図７の終了処理のステップＳ３０１〜ステップＳ３０４と同じなので説明を省略する。
【００５８】
プロセッサ１１は、ステップＳ４０４の後、又は、ステップＳ４０１でＳＹＮＣフラグ４０が設定されていないとき、起動処理（ステップＳ４０５）を実行する。起動処理は、図５のフローチャートに示される処理と同じである。これにより、装置１０は再起動される。
【００５９】
上述の図５〜図８に基づく説明では、起動時にダイ切り替え（ステップＳ１０３）により選択した第１のダイ２０のプログラムをＲＡＭ１３上に展開した（ステップＳ１０４）。また、同じ第１のダイ２０を装置１０が起動後動作中の消去及び書き込み（ステップＳ２０１、Ｓ２０２）を行う対象とした。しかし、装置１０が動作中の消去及び書き込みの対象とするシリコンダイは、プログラムの展開に用いた第１のダイ２０とは異なる第２のダイ３０としてもよい。その場合、プロセッサ１１は、ステップＳ２０１の前に、ダイ切り替え処理を実行する。
【００６０】
以上説明したように、本実施形態のＮＡＮＤ型フラッシュメモリ１４を制御する方法によれば、異なるシリコンダイ上に配置される２つの記憶領域内に、同一のプログラムファイルがそれぞれ保持される。装置１０の起動後は、一方のプログラムファイルのみを書き換え、装置１０の終了処理時に他方のプログラムファイルに変更内容を反映することができる。
【００６１】
上述のようなＮＡＮＤ型フラッシュメモリ１４を制御する方法は、種々の優れた効果を有する。
【００６２】
第１に、本実施形態のＮＡＮＤ型フラッシュメモリ１４の制御方法では、電気的に分離された第１のダイ２０の第１のメモリセルアレイ２５と第２のダイ３０の第２のメモリセルアレイ３５とのそれぞれに、プログラムファイルが記憶されている。これによって、例えば、一方のプログラムファイルが、プログラムの誤動作、又は、書き換え中の電力の瞬断などにより壊れても、書き換え対象でない他方のプログラムファイルは、書き換え前の状態ではあるものの保護される。したがって、壊れていない方のプログラムファイルを用いて、装置１０を動作させることが可能になる。
【００６３】
従来のＮＡＮＤ型フラッシュメモリでも、プログラムファイルを異なる記憶領域に複数配置することは可能であった。しかし、プログラムが誤動作した場合にバックアップのプログラムファイルに対する意図しない書き換えが生じないように、ブロックロックと呼ばれる書き換えからの保護をしなくてはならなかった。また、従来のＮＡＮＤ型フラッシュメモリでも、複数の異なるダイにプログラムファイルを配置することは、可能であった。しかし、従来は各メモリセルアレイに対する電源が異なるダイの間で分離されていなかったので、電力の瞬断等により複数のプログラムが同時に破壊される虞があった。
【００６４】
これに対して、本実施形態のＮＡＮＤ型フラッシュメモリ１４の制御方法では、複数のプログラムファイルを保持するとき、プログラムを保護するための複雑な制御を必要としないで、プログラフファイルを保護することができる。このため、ＮＡＮＤ型フラッシュメモリ１４の制御が単純となり、プロセッサ１１の処理負荷を低減することができる。
【００６５】
第２に、本実施形態のＮＡＮＤ型フラッシュメモリ１４の制御方法では、第１のダイ２０と第２のダイ３０とのそれぞれにプログラムファイルを持つ。これにより、メモリセルの劣化により一方のプログラファイルを格納するセルが不良となっても、他方のプログラムファイルでバックアップすることができる。このため、本実施形態のＮＡＮＤ型フラッシュメモリ１４は、従来のＮＡＮＤ型フラッシュメモリで行われているウェアレベリング制御を行わない。
【００６６】
ウェアレベリング処理は、ＮＡＮＤ型フラッシュメモリの各ブロックの書き換え回数を記録し、書き換え回数の少ないブロックを優先的に使用する複雑な処理を行う。また、従来のＮＡＮＤ型フラッシュメモリを使用する場合、プロセッサから指定されるアドレスと、メモリセルアレイ状の物理的なアドレスとの変換テーブルが必要となる。この変換テーブルは、常に書き換えなければならない。さらに、ウェアレベリングを実行するためのファイルシステムは、ＮＡＮＤ型フラッシュメモリ内に記憶される。このため、ウェアレベリング処理は、負荷が大きく、且つ、多くのメモリ資源を使用していた。
【００６７】
これに対して、本開示のＮＡＮＤ型フラッシュメモリ１４の制御方法では、ウェアレベリング制御を行わないので、制御が単純になりプロセッサ１１の処理負荷を低減するとともに、ＮＡＮＤ型フラッシュメモリ１４のメモリ資源を有効に利用することができる。
【００６８】
第３に、本開示のＮＡＮＤ型フラッシュメモリ１４の制御方法によれば、第１のダイ２０の第１のプログラム記憶領域Ａｐ１に加えられた変更は、装置１０の終了時のみに第２のダイ３０の第２のプログラム記憶領域Ａｐ２に反映される。
【００６９】
これに対して、従来のＮＡＮＤ型フラッシュメモリにおいて、プログラムファイルを２重に保持する場合、一方のプログラムファイルを書き換えた後、逐次他方のプログラムファイルを書き換えて、双方のプログラムを最新の状態に維持することが行われる。このような方法では、それぞれのプログラムが最新の状態に維持されるものの、データの書き換え回数が多くなり、メモリセルを早く劣化させる虞がある。
【００７０】
本実施形態のＮＡＮＤ型フラッシュメモリ１４の制御方法では、起動時に書き換え対象のシリコンダイとして選択されなかったシリコンダイ（上述の実施例では第２のダイ３０）の書き換えを終了処理のときのみ行っている。これによって、シリコンダイの書き換えの頻度を低減することができる。さらに、第１のダイ２０及び第２のダイ３０の何れを書き換え対象のダイとするかを、乱数を生成して生成した乱数に基づいて決定することにより、第１のダイ２０と第２のダイ３０との間で、書き換えの頻度を均等化することができる。これによって、第１のダイ２０及び第２のダイ３０の双方の径年劣化を低減することができる。
【００７１】
以上説明したように、本実施形態のＮＡＮＤ型フラッシュメモリ１４の制御方法は、ＮＡＮＤ型フラッシュメモリ１４に記憶されるファイルを保護しながら、メモリ制御に係る処理負荷を低減することができる。
【００７２】
［第２実施形態］
第１実施形態のＮＡＮＤ型フラッシュメモリ１４は、プログラムファイルのみを記憶していた。第２実施形態に係る装置１０のＮＡＮＤ型フラッシュメモリ１４は、プログラムに加えプログラム以外のデータを記憶する。第２実施形態において、装置１０の基本的な構成は第１実施形態と同じであるので、同一の構成要素には同一の参照符号を付して、説明を省略する。
【００７３】
図９は、第２実施形態に係る装置１０のＮＡＮＤ型フラッシュメモリ１４の記憶領域の構成を示す。第１のダイ２０は、第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２を含む。第２のダイ３０は、第３のデータ記憶領域Ａｄ３及び第４のデータ記憶領域Ａｄ４を含む。第１〜第４のデータ記憶領域Ａｄ１〜Ａｄ４は、同じデータファイルを記憶するためのものである。データファイルは、プログラムファイルよりも頻繁に書き換えが発生する。そのため、データを記憶する記憶領域は、プログラムファイルを記憶する記憶領域よりも劣化が生じ易い。このため、本実施形態では、同じデータファイルを４重に保持する。第１及び第２のデータ記憶領域Ａｄ１，Ａｄ２は、第１のメモリセルアレイ２５上で物理的な位置が固定された所定の記憶領域である。第３及び第４のデータ記憶領域Ａｄ３，Ａｄ４は、第２のメモリセルアレイ３５上で物理的な位置が固定された所定の記憶領域である。第１のダイ２０及び第２のダイ３０は、３つ以上の同じデータファイルを記憶する記憶領域を有してよい。ＮＡＮＤ型フラッシュメモリ１４は、同じデータファイルを記憶する記憶領域を有するさらなるシリコンダイを有してよい。
【００７４】
図１０は、第１のダイ２０又は第２のダイ３０のデータファイルが記憶される領域のデータの構成の一例を示す。例えば、図１０は、第１のダイ２０に記憶される１ページのデータとする。ＲＯＭアドレスは、ＮＡＮＤ型フラッシュメモリ１４上の物理アドレスである。ＲＯＭアドレス0x04000000で指定される記憶領域は、第１のデータ記憶領域Ａｄ１に含まれる。ＲＯＭアドレス0X04000800で指定される記憶領域は、第２のデータ記憶領域Ａｄ２に含まれる。第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２は、それぞれ、書き換え識別番号、ＣＲＣ３２領域及びデータ領域を有する。書き換え識別番号及びＣＲＣ３２領域に含まれる情報を、ヘッダ情報と呼ぶ。
【００７５】
書き換え識別番号は、書き換えの順序を示す番号である。プロセッサ１１は、書き換え識別番号により異なるデータ記憶領域間で更新されたタイミングの前後関係を識別することができる。書き換え識別番号は、第１のデータ記憶領域Ａｄ１と第２のデータ記憶領域Ａｄ２との間で、時系列で後から書き換えられた方に１ずつ大きい値が与えられている。書き換え識別番号は、ページ単位ではなくブロック単位で持たせることも可能である。データファイルの書き換えは、第１実施形態と同様に、起動時に選択された一方のシリコンダイに対してのみ行われる。
【００７６】
第１のダイ２０において、データファイルを書き換えるとき、プロセッサ１１は、書き換え識別番号を参照し、書き換えのタイミングが時系列で前となる、書き換え識別番号の小さいデータ記憶領域のデータファイルを書き換える。データ記憶領域の書き換えは、第１実施形態におけるプログラム記憶領域の書き換えと同様に実行される。プロセッサ１１は、データファイルを書き換えるとき、データ記憶領域の書き換え識別番号に所定数、例えば２を加える。所定数は、１つのシリコンダイが３つ以上のデータ記憶領域を含むとき、３以上の数とすることができる。
【００７７】
第２実施形態においても、記憶領域の書き換えを行った場合は、第１実施形態と同様に、書き換えられた記憶領域を含むブロックを示すブロック更新情報がＲＡＭ１３に記憶される。
【００７８】
図１０の「ＣＲＣ３２」は、３２ビットの巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check）によるエラー検出処理に用いるＣＲＣ値を記憶する領域（「ＣＲＣ３２領域」と呼ぶ）である。「データ」は、記憶対象のデータファイルが記憶される領域（「データ領域」と呼ぶ）である。
【００７９】
プロセッサ１１は、データファイルを読み出すとき、書き換え識別番号が大きく時系列で後に記憶された方のデータ記憶領域（例えば、第１のデータ記憶領域Ａｄ１）のデータ領域に対して、ＣＲＣ３２値の演算を行う。演算の結果得られるＣＲＣ３２値とＣＲＣ３２領域に記憶されたＣＲＣ３２値が一致する場合、プロセッサ１１は、そのデータ記憶領域のデータファイルを、第１のダイ２０のデータファイルとする。演算の結果得られるＣＲＣ３２値とＣＲＣ３２領域に記憶されたＣＲＣ３２値が一致しない場合、プロセッサ１１は、エラーが検出されたものと判断する。この場合、プロセッサ１１は、データファイルが壊れている可能性が高いので、他方のデータ記憶領域（例えば、第２のデータ記憶領域Ａｄ２）のデータファイルを第１のダイ２０のデータファイルとする。
【００８０】
第２のダイ３０の第３のデータ記憶領域Ａｄ３及び第４のデータ記憶領域Ａｄ４は、第１のダイ２０の第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２と同様に構成され、同様な方法でデータファイルの書き込み及び読み出しを行うことができる。
【００８１】
以下において、第２実施形態に係るＮＡＮＤ型フラッシュメモリ１４の制御方法を、フローチャートを用いてより詳しく説明する。
【００８２】
（書き換え処理）
図１１を参照して、データファイルの書き換えの処理について説明する。書き換え処理の前に、第１実施形態と同じ起動処理が実行され、書き換え可能なシリコンダイが選択されている。以下では、書き換え可能なシリコンダイとして、第１のダイ２０が選択されているものとする。
【００８３】
データファイルの書き換えを行うとき、プロセッサ１１は、第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２の書き換え識別番号を取得し、書き換え識別番号が小さく、時系列で早く書き換えられたデータ記憶領域を探索する（ステップＳ５０１）。第１のダイ２０が３つ以上のデータ記憶領域を有する場合、プロセッサ１１は、最も早く書き換えられた最も書き換え識別番号の小さいデータ記憶領域を優先して、データ記憶領域を探索する。以下のステップでは、書き換え識別番号が小さい方のデータ領域を、第１のデータ記憶領域Ａｄ１とする。
【００８４】
次に、プロセッサ１１は、第１のデータ記憶領域Ａｄ１の書き換え対象のページを含むブロックの全てのページの内容を、ＲＡＭ１３読み出して一時的に保存し、当該ブロックを第１のデータ記憶領域Ａｄ１から消去する（ステップＳ５０２）。
【００８５】
プロセッサ１１は、消去したブロックに対して書き込みを行う（ステップＳ５０３）。具体的には、プロセッサ１１は、ＲＡＭ１３に読み出したデータについてＲＡＭ１３上で書き換えを行ってから、ステップＳ５０２で消去済みのブロックに対して改めて書き込むことができる。
【００８６】
プロセッサ１１は、書き込みを行ったブロックに含まれるページにヘッダ情報を付与する（ステップＳ５０４）。プロセッサ１１は、書き込みを行ったブロックに含まれるページの書き換え識別番号に、書き換え前の値に２を加えた番号を設定する。さらに、プロセッサ１１は、データ領域に対してＣＲＣ３２値の演算を行い、算出したＣＲＣ値をＣＲＣ３２領域に保存する。
【００８７】
プロセッサ１１は、ステップＳ５０３で書き込みを行ったブロックについて、ＲＡＭ１３のブロック更新情報中の対応する更新対象ブロック記録フラグ４１−１〜４１−ｎのフラグをセットする（ステップＳ５０５）。
【００８８】
プロセッサ１１は、ステップＳ５０３でブロックの書き込みを行ったとき、ステップＳ５０４で更新対象ブロック記録フラグ４１−１〜４１−ｎのフラグをセットした後、ＳＹＮＣフラグ４０をセットする。ＳＹＮＣフラグ４０をセットするのは、ステップＳ５０４の前でもよい。
【００８９】
以上により、ＲＡＭ１３に更新対象ブロック情報が保存される。これにより、プロセッサ１１は、装置１０の終了処理及びリセット処理のとき、第１実施形態と同様に、データの書き込みを行っていないシリコンダイ（例えば、第２のダイ３０）に対して、変更されたブロックの変更内容を反映させることができる。
【００９０】
（起動時のデータファイル読み出し処理）
次に、図１２を参照して、装置１０の起動時において、データファイルをＲＡＭ１３に読み出す処理を説明する。
【００９１】
装置１０の起動後、プロセッサ１１は、図５のステップＳ１０２と同様に、乱数を生成する（ステップＳ６０１）。プロセッサ１１は、図５のステップＳ１０３と同様に、生成した乱数に基づいて書き込み可能なシリコンダイとして選択されるダイの切り替えを行う（ステップＳ６０２）。以下のステップで、選択されたダイを第１のダイ２０とする。
【００９２】
プロセッサ１１は、選択された第１のダイ２０の第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２を、ＲＡＭ１３上に読み出す（ステップＳ６０３）。
【００９３】
プロセッサ１１は、第１のデータ記憶領域Ａｄ１及び第２のデータ記憶領域Ａｄ２の書き換え識別番号の大きい方のデータ記憶領域（例えば、第１のデータ記憶領域Ａｄ１）のＣＲＣ３２値を演算する。プロセッサ１１は、演算の結果得られたＣＲＣ３２値とＣＲＣ３２領域に記憶されたＣＲＣ３２値と比較する（ステップＳ６０４）。
【００９４】
ＣＲＣ３２値の比較の結果、ＣＲＣエラーが検出されない場合（ステップＳ６０５：Ｎｏ）、プロセッサ１１は、このデータ記憶領域のデータファイルを使用して処理を行う（ステップＳ６０６）。
【００９５】
ＣＲＣ３２値の比較の結果、ＣＲＣエラーが検出された場合（ステップＳ６０５：Ｙｅｓ）、プロセッサ１１は、ＲＡＭ１３上に読み出された他のデータ記憶領域があるか確認する（ステップＳ６０７）。本実施例では、ＲＡＭ１３上に２つのデータ記憶領域が読み出されているので、ステップＳ６０７は、Ｙｅｓに分岐する。しかし、１つのシリコンダイに１つのデータ記憶領域のみが配置される場合もある。そのような場合、ステップＳ６０７は、Ｎｏに分岐する。
【００９６】
ステップＳ６０７でＹｅｓに分岐した場合、プロセッサ１１は、ＲＡＭ１３上に読み出されている他のデータ記憶領域（例えば、第２のデータ記憶領域Ａｄ２）に記憶されたデータファイルを使用する（ステップＳ６０８）。これにより、プロセッサ１１は、最新のデータファイルの１つ前に更新されたデータファイルを使用することができる。
【００９７】
ステップＳ６０７でＮｏに分岐した場合、プロセッサ１１は、ダイ切り替え処理を行い、第２のダイ３０のデータ記憶領域（例えば、第３のデータ記憶領域Ａｄ３）のデータファイルを、ＲＡＭ１３に読み出して使用する（ステップＳ６０９）。
【００９８】
本実施形態によれば、プロセッサ１１は、書き換えの頻度が高いデータファイルについて、ＮＡＮＤ型フラッシュメモリ１４のシリコンダイごとに、複数のデータ記憶領域を配置することが可能になる。これにより、ＮＡＮＤ型フラッシュメモリ１４に、シリコンダイの数とシリコンダイ毎のデータ記憶領域の数とを掛け合わせた数のデータファイルを重複して保持することができる。仮に、最新の更新されたデータファイルが壊れた場合でも、プロセッサ１１は、少なくともその１つ前に更新されたデータファイルを利用することが可能になる。また、ＮＡＮＤ型フラッシュメモリ１４に対して、プロセッサ１１がウェアレベリング処理を行わなくとも、プロセッサ１１は、経年劣化等による不良ブロックの発生等に対して、データ記憶領域の切り替え又はダイ切り替えにより対応することが可能になる。
【００９９】
［撮像装置］
本開示のＮＡＮＤ型フラッシュメモリ１４の制御方法は、撮像装置に適用することができる。図１３を参照して、本開示のＮＡＮＤ型フラッシュメモリ１４の制御方法を採用する撮像装置５０の概略構成を説明する。
【０１００】
撮像装置５０は、光学系５１、撮像素子５２、プロセッサ５３、ＲＯＭ５４、ＲＡＭ５５、ＮＡＮＤ型フラッシュメモリ５６、及び、入出力部５７を有する。
【０１０１】
光学系５１は、光軸Ｏを有する少なくとも１つのレンズを含んで構成される。光学系５１は、絞り及び赤外線カットフィルタ等を含んでよい。光学系５１は、撮像装置５０の外部の被写体の像を、撮像素子５２の受光面上に結像させる。
【０１０２】
撮像素子５２は、受光面上に結像した被写体の像を電気信号に変換して出力する。撮像素子５２は、例えば、ＣＣＤイメージセンサ（Charge-Coupled Device Image Sensor）、又は、ＣＭＯＳイメージセンサ（Complementary MOS Image Sensor）を含んで構成される。
【０１０３】
プロセッサ５３は、撮像素子５２が撮像した被写体像を取得して、種々の画像処理を実行する。また、プロセッサ５３は、ＮＡＮＤ型フラッシュメモリ５６に対して、読み出し及び書き換えの制御を行う。プロセッサ５３がＮＡＮＤ型フラッシュメモリ５６に対して行う制御の内容は、第１実施形態及び第２実施形態のプロセッサ１１が、ＮＡＮＤ型フラッシュメモリ１４に対して行う制御と同じとすることができる。
【０１０４】
ＲＯＭ５４は、不揮発性の記憶素装置である。ＲＡＭ５５は、揮発性の記憶装置である。ＲＯＭ５４及びＲＡＭ５５は、プロセッサ５３が実行する処理のために、種々のプログラム及びデータを記憶する。ＲＯＭ５４及びＲＡＭ５５は、プロセッサ５３に内蔵されてよい。
【０１０５】
ＮＡＮＤ型フラッシュメモリ５６は、第１実施形態のＮＡＮＤ型フラッシュメモリ１４と同じ又は類似の記憶素子である。
【０１０６】
入出力部５７は、撮像装置５０の外部の装置との入出力を行うインタフェースである。入出力部５７は、コネクタ、アンテナ、及び、通信処理用の回路等を含んでよい。プロセッサ５３は、入出力部５７を介して外部の表示装置等に、画像情報を出力することができる。また、プロセッサ５３は、入出力部５７を介して外部装置からの命令を受け取ることができる。
【０１０７】
［車両及び車載カメラ］
図１４は、撮像装置５０を移動体６０に搭載した様子を示す。移動体６０に搭載された撮像装置５０は、移動体６０の、例えば前方を撮像する。撮像装置５０の撮像方向は移動体６０の前方に限られず、移動体６０の側方又は後方を撮像してもよいし、移動体６０の内部を撮像してもよい。ここで、「移動体」は、車両、船舶、飛行体等を含む。車両は、例えば、乗用車、トラック、バス、自動二輪車等の道路上を走行する車両等を含む。
【０１０８】
本開示のＮＡＮＤ型フラッシュメモリ５６の制御方法は、処理が簡単で処理に係る負荷が軽く、且つ、メモリ資源を有効利用できるため、車両等の移動体６０に搭載される小型の撮像装置５０に適している。また、車載の撮像装置５０では、故障等により使用不能になり難いことが求められる。本開示のＮＡＮＤ型フラッシュメモリ５６の制御方法は、ＮＡＮＤ型フラッシュメモリ５６上にプログラムファイル及びデータファイルを複数保持するので、瞬断等の影響を受け難く、常に利用することができる可能性が高い。
【０１０９】
本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は修正を行うことが容易であることに注意されたい。従って、これらの変形又は修正は本開示の範囲に含まれることに留意されたい。例えば、各構成部又は各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の構成部又はステップなどを１つに組み合わせたり、或いは分割したりすることが可能である。本開示に係る実施形態について装置を中心に説明してきたが、本開示に係る実施形態は装置の各構成部が実行するステップを含む方法としても実現し得るものである。本開示に係る実施形態は装置が備えるプロセッサにより実行される方法、プログラム、又はプログラムを記録した記憶媒体としても実現し得るものである。本開示の範囲にはこれらも包含されるものと理解されたい。
【符号の説明】
【０１１０】
１０    装置
１１    プロセッサ
１２    ＲＯＭ
１３    ＲＡＭ
１４    ＮＡＮＤ型フラッシュメモリ
２０    第１のダイ
２１    入力回路
２２    コントローラ
２３    周辺回路
２４    電圧発生回路
２５    第１のメモリセルアレイ
３０    第２のダイ
３１    入力回路
３２    コントローラ
３３    周辺回路
３４    電圧発生回路
３５    第２のメモリセルアレイ
４０    ＳＹＮＣフラグ
４１１〜４１−ｎ    更新対象ブロック記録フラグ
５０    撮像装置
５１    光学系
５２    撮像素子
５３    プロセッサ
５４    ＲＯＭ
５５    ＲＡＭ
５６    ＮＡＮＤ型フラッシュメモリ
５７    入出力部
６０    移動体
Ａｐ１    第１のプログラム記憶領域
Ａｐ２    第２のプログラム記憶領域
Ａｄ１    第１のデータ記憶領域
Ａｄ２    第２のデータ記憶領域
Ａｄ３    第３のデータ記憶領域
Ａｄ４    第４のデータ記憶領域
Ａｓ１    第１のスペア領域
Ａｓ２    第２のスペア領域
【図１】
2020181325.tif 000003
【図２】
2020181325.tif 000004
【図３】
2020181325.tif 000005
【図４】
2020181325.tif 000006
【図５】
2020181325.tif 000007
【図６】
2020181325.tif 000008
【図７】
2020181325.tif 000009
【図８】
2020181325.tif 000010
【図９】
2020181325.tif 000011
【図１０】
2020181325.tif 000012
【図１１】
2020181325.tif 000013
【図１２】
2020181325.tif 000014
【図１３】
2020181325.tif 000015
【図１４】
2020181325.tif 000016