(57)【要約】  通常処理に付随してリフレッシュを実行すると規格制約により十分なリフレッシュ時間を確保できず、長期間リフレッシュされなかった領域でデータが消失してしまう。アクセスモジュール（１３０）が不揮発性記憶モジュール（１００）から不揮発性メモリ（１２０）のデータ状態を受け取り、データ状態よりメンテナンス要否を判断し、かつアクセスモジュール（１３０）のシステム状態よりメンテナンス実行可否を判断する。通常処理に付随させずにデータメンテナンスを実行することで、十分なメンテナンス実行時間を確保し、データ保持特性を高めることができる。
2011013351.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶メモリを含む不揮発性記憶装置へアクセスするアクセス装置であって、
前記不揮発性記憶装置から取得した前記不揮発性メモリの前記データ保持状態に基づいて、前記不揮発性メモリに対するデータのメンテナンス処理の要否を判断するとともに、
前記アクセス装置のシステム状態と前記メンテナンス処理の要否とに基づいて、メンテナンス処理の実行可否を決定し、
メンテナンス実行を決定した場合、前記不揮発性記憶装置に対して、メンテナンス実行命令を発行する適応型命令部、
を備えるアクセス装置。
【請求項２】
前記適応型命令部は、
前記アクセス装置のシステム状態を監視するシステムステータス監視部と、
前記システムステータス監視部の監視結果と前記メンテナンス処理の要否とに基づいて、前記メンテナンス実行可否を決定するメンテナンス判断部と、
前記メンテナンス判断部の決定結果に応じて、前記不揮発性記憶装置に対してメンテナンス実行命令を発行する命令発行部と、
を備える、
請求項１に記載のアクセス装置。
【請求項３】
前記システムステータス監視部は、前記アクセス装置の処理状態を監視し、通常処理が行われていないと判断した場合、メンテナンス処理が実行可能な状態であることを、前記メンテナンス判断部に通知し、
前記メンテナンス判断部は、前記メンテナンス処理が要である場合に、前記システムステータス監視部からメンテナンス処理が実行可能な状態であることを通知されると、前記メンテナンス実行を決定し、
前記命令発行部は、前記メンテナンス実行が決定された場合、前記不揮発性記憶装置に対してメンテナンス実行命令を発行する、
請求項２に記載のアクセス装置。
【請求項４】
前記メンテナンス判断部は、前記メンテナンス処理が必要な前記不揮発性メモリのアドレスを保持し、前記システムステータス監視部により前記メンテナンス処理が実行可能である状態を通知された場合、保持しているアドレスから前記メンテナンス処理を実行するアドレスを選択し、
前記命令発行部は、前記メンテナンス判断部により選択された前記不揮発性メモリのアドレスに対して、前記メンテナンス処理を実行するための前記メンテナンス実行命令を発行する、
請求項１に記載のアクセス装置。
【請求項５】
前記アクセス装置のシステム制御を行うシステム制御部をさらに備え、
前記メンテナンス判断部は、前記メンテナンス処理が必要な前記不揮発性メモリのアドレスを保持し、保持している前記不揮発性メモリのアドレスに関する情報を前記システム制御部に通知する、
請求項１に記載のアクセス装置。
【請求項６】
前記アクセス装置に電源を供給する電源部をさらに備え、
前記システム制御部は、前記保持している前記不揮発性メモリのアドレスに関する情報に基づいて、前記電源部により最低限確保すべきバッテリ残量を決定し、決定した最低限のバッテリ量を保持するように、前記電源部および前記アクセス装置に対する制御を行う、
請求項５に記載のアクセス装置。
【請求項７】
前記不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備え、
前記メンテナンス判断部は、前記データ管理情報格納部の情報を参照することで、前記不揮発性メモリのデータ状態に応じて、前記保持しているアドレスのメンテナンス処理順序を変更する、
請求項４に記載のアクセス装置。
【請求項８】
前記不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備え、
前記メンテナンス判断部は、前記データ管理情報格納部の情報を参照することで、前記不揮発性メモリのデータ状態に応じて、前記不揮発性記憶装置より前記不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的に前記メンテナンス処理が必要なアドレスを決定し保持する、
請求項４に記載のアクセス装置。
【請求項９】
前記メンテナンス処理は、前記不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である、
請求項１から８のいずれかに記載のアクセス装置。
【請求項１０】
アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置に用いられ、前記不揮発性記憶装置の不揮発性メモリに対してデータの読み出し処理／書き込み処理を行うメモリコントローラであって、
前記不揮発性メモリから読み出したデータに含まれる誤りの数を計測し、前記読み出したデータに含まれる誤りを訂正する誤り訂正部と、
前記誤り訂正部で計測された誤りの数が基準値以上の場合、前記アクセス装置に対して、前記不揮発性メモリにおいてメンテナンス処理が必要であることを示すメンテナンス要求を発行するメンテナンス要求部と、
を備え、
前記メンテナンス要求部は、前記不揮発性メモリに保持されているデータ状態に応じて動的にメンテナンス要求の基準値を変更し、
前記メンテナンス処理は、前記不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である、
メモリコントローラ。
【請求項１１】
アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置であって、
データを記憶する不揮発性メモリと、
請求項１０に記載のメモリコントローラと、
を備える不揮発性記憶装置。
【請求項１２】
不揮発性メモリと、該メモリへのデータの読み出し処理／書き込み処理を行うメモリコントローラとを有する不揮発性記憶装置と、
前記不揮発性記憶メモリを含む前記不揮発性記憶装置と通信可能なアクセス装置とを備える不揮発性記憶システムにおいて、
請求項１１に記載の不揮発性記憶装置と、
請求項１から９のいずれかに記載のアクセス装置とを備える不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置へデータの書き換えを行うアクセス装置、不揮発性メモリを制御するメモリコントローラ、前記不揮発性メモリとメモリコントローラを備えた不揮発性記憶装置、及び前記アクセス装置と前記不揮発性記憶装置を構成要素とする不揮発性記憶システムに関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置（不揮発性記憶モジュール）は、半導体メモリカードを中心にその需要が広まっている。不揮発性記憶モジュールは、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として広く利用され、さらに近年は前述のような民生用途だけでなく、例えば、放送局向けのプロ用動画記録機器にも用いられており、その用途は拡大している。
この不揮発性記憶モジュールは、不揮発性の主記憶メモリとして、フラッシュメモリを備え、フラッシュメモリを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラや携帯電話本体等のアクセス装置（アクセスモジュール）からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものである。【０００３】
フラッシュメモリは、記憶単位であるメモリセルアレイへの書き込み（データ書き込み）や消去（データ消去）に比較的長い時間を必要とするため、複数のメモリセルに記憶保持されているデータを、一括して消去したり書き込んだりできる構造となっている。具体的には、フラッシュメモリは、複数の物理ブロック（消去単位）から構成され、各物理ブロックは、複数のページ（書き込み単位）を含んでいる。フラッシュメモリでは、消去は物理ブロック単位で行われ、書き込みはページ単位で行われる。
近年、フラッシュメモリは、大容量化と低コスト化への要望に対応して、多値ＮＡＮＤフラッシュメモリのように１つのメモリセルに２ビット又はそれ以上の情報が記憶できる品種が主流となってきている。ところが、このような多値ＮＡＮＤフラッシュメモリは、従来の２値ＮＡＮＤフラッシュメモリに比べデータ保持特性が悪く、今後のメモリ大容量化に伴いメモリセルの信頼性を確保することが課題となっている。【０００４】
従来、不揮発性メモリの信頼性を高めるために、不揮発性記憶モジュールでは、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）等を利用し、データが誤っている場合は、そのデータを補正する技術が用いられている。ところが、不揮発性メモリから読み出されたデータは、ＥＣＣにより誤り訂正が行われているものの、長期間読み出されないメモリセルのデータには、誤りが蓄積され、やがて、ＥＣＣによる訂正が不可能となってしまうことがある。また、特定のメモリセルが集中して読み出される場合、同一メモリセルアレイの他のメモリセル内で閾値電圧が変化し、読み出し不良（Ｒｅａｄ  Ｄｉｓｔｕｒｂ）が発生することもある。
このような問題に対応するためには、不揮発性メモリに対して、定期的にデータをリフレッシュ（再書き込み）する等、データを保持するよう何らかのメンテナンス処理を実行する必要がある。特許文献１に開示されている技術では、不揮発性メモリ内のデータ読み出し時にエラー数を計数し、エラー数が基準値を超えていれば、不揮発性記憶モジュールの電源投入時または初期化処理に付随して不揮発性メモリのデータをリフレッシュする。これにより、上記従来技術では、不揮発性メモリに記録されたデータの信頼性を一定以上に保ち、かつ、リフレッシュ処理によりデータ読み出し処理速度およびデータ書き込み処理速度が低下しないよう工夫がなされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−９０７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法では、電源投入時や初期化処理といった通常処理に付随してリフレッシュを実行するため、不揮発性メモリのメモリ領域の広範囲のデータ領域をリフレッシュする必要がある場合、リフレッシュ処理の実行時間が長くなり、規格制約を守れなくなるという課題がある。このとき、規格制約に収まるようリフレッシュ時間を制限すると、十分なリフレッシュ時間を確保できず長期間リフレッシュされなかった領域でデータが消失してしまうおそれがある。また、フラッシュメモリの多値化に伴うデータ保持特性の悪化によって、上述のようなデータ消失の危険性は今後更に増大する。
一方、リフレッシュ等のデータメンテナンス処理実行には、ある程度の電力消費を伴うため、特に、ポータブル機器においては、バッテリの残量も考慮した上でメンテナンス処理を実行することが望ましい。ところが、従来技術においては、メンテナンス実行に際し、バッテリ残量等の条件は考慮されていない。【０００７】
そこで、本発明は、上記問題点を鑑み、データ保持特性を高め、かつ、ポータブル機器を含む多様な機器への適用性を高めたアクセス装置、不揮発性記憶装置、不揮発性記憶装置に用いられるメモリコントローラおよび不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明は、不揮発性記憶メモリを含む不揮発性記憶装置へアクセスするアクセス装置であって、適応型命令部を備える。
適応型命令部は、不揮発性記憶装置から取得した不揮発性メモリのデータ保持状態に基づいて、不揮発性メモリに対するデータのメンテナンス処理の要否を判断するとともに、アクセス装置のシステム状態とメンテナンス処理の要否とに基づいて、メンテナンス処理の実行可否を決定し、メンテナンス実行を決定した場合、不揮発性記憶装置に対して、メンテナンス実行命令を発行する。
このアクセス装置では、適応型命令部により、アクセス装置のシステム状態に基づいて、メンテナンス処理が実行可否を決定し、メンテナンス実行を決定した場合、不揮発性記憶装置に対して、メンテナンス実行命令が発行されるので、例えば、アクセス装置と不揮発性記憶装置から構成される不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンス処理を実行することができる。【０００９】
その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、不揮発性記憶装置におけるデータ保持特性を高めることができる。
第２の発明は、第１の発明であって、適応型命令部は、システムステータス監視部と、メンテナンス判断部と、命令発行部と、を備える。
システムステータス監視部は、アクセス装置のシステム状態を監視する。メンテナンス判断部は、システムステータス監視部の監視結果とメンテナンス処理の要否とに基づいて、メンテナンス実行可否を決定する。命令発行部は、メンテナンス判断部の決定結果に応じて、不揮発性記憶装置に対してメンテナンス実行命令を発行する。
第３の発明は、第２の発明であって、システムステータス監視部は、アクセス装置の処理状態を監視し、通常処理が行われていないと判断した場合、メンテナンス処理が実行可能な状態であることを、メンテナンス判断部に通知する。メンテナンス判断部は、メンテナンス処理が「要」である場合に、システムステータス監視部からメンテナンス処理が実行可能な状態であることを通知されると、メンテナンス実行を決定する。命令発行部は、メンテナンス実行が決定された場合、不揮発性記憶装置に対してメンテナンス実行命令を発行する。【００１０】
このアクセス装置では、適応型命令部により、アクセス装置のシステム状態に基づいて、メンテナンス処理の実行可否を決定し、メンテナンス処理が「要」（必要）である場合、不揮発性記憶装置に対して、メンテナンス実行命令が発行されるので、例えば、アクセス装置と不揮発性記憶装置から構成される不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンス処理を実行することができる。
その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、不揮発性記憶装置におけるデータ保持特性を高めることができる。
なお、「通常処理」とは、不揮発性記憶装置に対する初期化処理、データ読み出し処理、データ書き出し処理等のアクセス装置と不揮発性記憶装置との間で所定以上の通信量が発生する処理をいう。つまり、このアクセス装置では、「通常処理が行われていない」状態で、不揮発性記憶装置に対してメンテナンス処理を行うので、アクセス装置と不揮発性記憶装置とにより構成される不揮発性記憶システムにおける処理パフォーマンスを低下させることなく、メンテナンス処理を実行することができる。【００１１】
第４の発明は、第１の発明であって、メンテナンス判断部は、メンテナンス処理が必要な不揮発性メモリのアドレスを保持し、システムステータス監視部によりメンテナンス処理が実行可能である状態を通知された場合、保持しているアドレスからメンテナンス処理を実行するアドレスを選択する。命令発行部は、メンテナンス判断部により選択された不揮発性メモリのアドレスに対して、メンテナンス処理を実行するためのメンテナンス実行命令を発行する。
第５の発明は、第１の発明であって、アクセス装置のシステム制御を行うシステム制御部をさらに備える。メンテナンス判断部は、メンテナンス処理が必要な不揮発性メモリのアドレスを保持し、保持している不揮発性メモリのアドレスに関する情報をシステム制御部に通知する。【００１２】
第６の発明は、第５の発明であって、アクセス装置に電源を供給する電源部をさらに備える。
システム制御部は、保持している不揮発性メモリのアドレスに関する情報に基づいて、電源部により最低限確保すべきバッテリ残量を決定し、決定した最低限のバッテリ量を保持するように、電源部およびアクセス装置に対する制御を行う。
このアクセス装置では、バッテリ残量等のシステム管理状態を監視しながら、メンテナンス処理の実行可否を判断するため、例えば、メンテナンス処理の途中で、バッテリがなくなり、メンテナンス処理の途中でバッテリ残量がなくなりメンテナンス処理の途中でシステムダウンするリスクを低減することができる。
第７の発明は、第４の発明であって、不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備える。メンテナンス判断部は、データ管理情報格納部の情報を参照することで、不揮発性メモリのデータ状態に応じて、保持しているアドレスのメンテナンス処理順序を変更する。【００１３】
このアクセス装置では、不揮発性メモリのデータ状態に応じて、メンテナンス処理順序を変更するので、例えば、メンテナンス処理をする必要性の高い不揮発性メモリのメモリ領域から順番にメンテナンス処理を実行することができる。その結果、このアクセス装置では、データ保持特性を高めることができる。
第８の発明は、第４の発明であって、不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備える。メンテナンス判断部は、データ管理情報格納部の情報を参照することで、不揮発性メモリのデータ状態に応じて、不揮発性装置より不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的にメンテナンス処理が必要なアドレスを決定し保持する。
このアクセス装置では、アクセス装置が管理している不揮発性メモリのデータ状態に応じて、不揮発性装置より不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的にメンテナンス処理が必要なアドレスを決定し保持することができるので、メンテナンス処理を、アクセス装置主導で行うことができる。例えば、アクセス装置が、不揮発性記憶メモリの所定のアドレスに対する書き込み履歴を管理することで、不揮発性メモリのどのアドレスに対してメンテナンス処理を行うべきかを、アクセス装置単独で判断することができる。これにより、不揮発性メモリに対するデータ保持性を高めることができる。【００１４】
第９の発明は、第１から第８のいずれかの発明であって、メンテナンス処理は、不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である。
第１０の発明は、アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置に用いられ、不揮発性記憶装置の不揮発性メモリに対してデータの読み出し処理／書き込み処理を行うメモリコントローラであって、誤り訂正部と、メンテナンス要求部と、を備える。
誤り訂正部は、不揮発性メモリから読み出したデータに含まれる誤りの数を計測し、読み出したデータに含まれる誤りを訂正する。メンテナンス要求部は、誤り訂正部で計測された誤りの数が基準値以上の場合、アクセス装置に対して、不揮発性メモリにおいてメンテナンス処理が必要であることを示すメンテナンス要求を発行する。【００１５】
そして、メンテナンス要求部は、不揮発性メモリに保持されているデータ状態に応じて動的にメンテナンス要求の基準値を変更する。また、メンテナンス処理は、不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である。
第１１の発明は、アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置であって、データを記憶する不揮発性メモリと、第１０の発明であるメモリコントローラと、を備える。
第１２の発明は、不揮発性メモリと、該メモリへのデータの読み出し処理／書き込み処理を行うメモリコントローラとを有する不揮発性記憶装置と、不揮発性記憶メモリを含む前記不揮発性記憶装置と通信可能なアクセス装置とを備える不揮発性記憶システムにおいて、第１１の発明である不揮発性記憶装置と、第１から第９のいずれかの発明であるアクセス装置とを備える不揮発性記憶システムである。
【発明の効果】
【００１６】
本発明によれば、アクセス装置が不揮発性記憶装置から不揮発性メモリの状態を受け取り、不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンスを実行できる。その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、データ保持特性を高めることができる。さらに、バッテリ残量等のシステム管理状態を確実にメンテナンスが完了されるよう制御することもできる。
これによって、ポータブル機器等においても確実なデータメンテナンス処理実行が可能になる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る不揮発性記憶システム１０００の概略構成図
【図２】不揮発性記憶モジュール１００におけるデータメンテナンス要求発行のフローチャート
【図３】適応型命令部１５０におけるデータメンテナンス命令発行のフローチャート
【図４】不揮発性記憶モジュール１００におけるデータメンテナンス実行のフローチャート
【図５】第２実施形態に係る不揮発性記憶システム２０００の概略構成図
【図６】適応型命令部５３０におけるシステム制御通知及びデータメンテナンス命令発行のフローチャート
【図７】第３実施形態に係る不揮発性記憶システム３０００の概略構成図
【図８】適応型命令部７１０におけるアドレス優先度付け及びデータメンテナンス命令発行のフローチャート
【図９】適応型命令部７１０における自発的データメンテナンス命令発行のフローチャート
【図１０】第４実施形態に係る不揮発性記憶システム４０００の概略構成図
【図１１】不揮発性記憶モジュール１００Ａにおけるメンテナンス要否判断及びメンテナンス要求発行のフローチャート
【図１２】第５実施形態に係る不揮発性記憶システム５０００の概略構成図
【図１３】命令発行部１２１１におけるデータ読み出し命令発行のフローチャート
【発明を実施するための形態】
【００１８】
本発明の実施形態について、以下、図面を参照しながら説明する。なお、各実施形態において、以前に説明した符号の説明は省略する。
［第１実施形態］
＜１．１：不揮発性記憶システムの構成＞
図１は、本発明の第１実施形態に係る不揮発性記憶システム１０００を示すブロック図である。
本実施形態に係る不揮発性記憶システム１０００は、図１に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）１３０と、を備え、不揮発性記憶モジュール１００とアクセスモジュール１３０とは、バスＢ１により接続されており、相互に通信することができる。
【００１９】
不揮発性記憶モジュール１００は、メモリコントローラ１１０と、不揮発性メモリ１２０と、を含む。
アクセスモジュール１３０は、バスＢ１および不揮発性記憶モジュール１００のメモリコントローラ１１０を介して、不揮発性メモリ１２０に対して、ユーザデータ（以下、単に「データ」という）の読み書き命令、論理アドレスおよびデータを送信する。
（１．１．１：メモリコントローラ１１０の内部構成）
まず、メモリコントローラ１１０の内部構成について説明する。
メモリコントローラ１１０は、不揮発性記憶モジュール１００を制御するものであり、ホストインターフェース部（ホストＩ／Ｆ部）１１１と、ＣＰＵ１１２と、読み書き制御部１１３と、誤り訂正部１１４と、メンテナンス要求部１１５とを含み、各機能部は、図１に示すように内部バスＢ２により接続されている。なお、メモリコントローラ１１０において、各機能部は、必ずしもバス接続されている必要はなく、各機能部の全部または一部が直接接続されるものであってもよい。
【００２０】
ホストＩ／Ｆ部１１１は、アクセスモジュール１３０から不揮発性記憶モジュール１００へ送信されるデータ読み書き命令やデータ等を受信し、また、不揮発性記憶モジュール１００からアクセスモジュール１３０へデータ等を送信する。
ＣＰＵ１１２は、ワーク用ＲＡＭ（不図示）やプログラムを格納したＲＯＭ（不図示）を用いて、メモリコントローラ１１０の全体制御を行う。
読み書き制御部１１３は、不揮発性メモリ１２０へのデータの読み書きを制御する。
誤り訂正部１１４は、不揮発性メモリ１２０へ書き込まれるデータに対しＥＣＣを算出し、また、不揮発性メモリ１２０から読み出されるデータに対しては、ＥＣＣを用いて誤り検出・訂正及び誤り計数を行う。誤り訂正部１１４の機能は、ＣＰＵ１１２によって、ソフトウェア処理で実現することもできる。
【００２１】
メンテナンス要求部１１５は、誤り訂正部１１４による誤り計数結果を用いて、不揮発性メモリ１２０内の読み出された領域（ブロック単位）のメンテナンス要否を判断し、メンテナンスが必要であると判断した場合は、メンテナンス実行要求をアクセスモジュール１３０へ送信する。
メンテナンス要求には、メンテナンス必要ブロックの論理アドレスが含まれ、メンテナンス要求は、ホストＩ／Ｆ部１１１を通じてアクセスモジュール１３０へ送信される。
（１．１．２：アクセスモジュール１３０の内部構成）
次に、アクセスモジュール１３０の内部構成について説明する。
アクセスモジュール１３０は、システム制御部１４０と、適応型命令部１５０と、を備える。
【００２２】
システム制御部１４０は、読み書き命令等の実行制御やその他システム状態の管理等、アクセスモジュール１３０の全体を制御する。
適応型命令部１５０の内部構成について説明する。
適応型命令部１５０は、システムステータス監視部１５１と、メンテナンス判断部１５２と、命令発行部１５４と、を有する。
システムステータス監視部１５１は、アクセスモジュール１３０のシステムステータス（データ転送を行っているか等）の状態を監視し、システムステータスの状態に関する情報をメンテナンス判断部１５２に通知する。
メンテナンス判断部１５２は、メンテナンス要求部１１５より送信されたメンテナンス要求に含まれる論理アドレスをメンテナンス実行リスト１５３に保持し、システムステータス監視部１５１より通知されたシステムステータスの状態に関する情報に基づいて、アクセスモジュール１３０が不揮発性記憶モジュール１００との間で通常処理（初期化処理、データ読み出し処理、データ書き出し処理等）を行っていないことを検知すると、「メンテナンス実行可能」と判断する。
【００２３】
その際、適応型命令部１５０の命令発行部１５４は、メンテナンス実行リスト１５３に保持されているアドレスに対してリフレッシュ等のデータ保持用メンテナンス処理を実行させるためのメンテナンス実行命令を生成する。そして、適応型命令部１５０は、不揮発性記憶モジュール１００へ、命令発行部１５４が生成したメンテナンス実行命令を送信する。
メンテナンス実行命令には、メンテナンス実行リスト１５３に保持されているメンテナンスが必要なブロック（以下、「メンテナンス必要ブロック」という）の論理アドレスが含まれ、メンテナンス実行命令は、ホストＩ／Ｆ部１１１を通じて不揮発性記憶モジュール１００へ送信される。
＜１．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム１０００における、データメンテナンス実行サイクルを図２〜図４に示すフローチャートを用いて説明する。
【００２４】
図２は、不揮発性記憶モジュール１００における、データメンテナンス要求サイクルを示す。図３は、アクセスモジュール１３０の適応型命令部１５０における、データメンテナンス命令発行サイクルを示す。図４は、不揮発性記憶モジュール１００における、データメンテナンス実行サイクルを示す。
なお、簡単のため、本実施形態におけるデータメンテナンスに関わる操作の流れについてのみ説明する。
（１．２．１：データメンテナンス要求サイクル）
（Ｓ２０１）：
不揮発性記憶システム１０００では、図２に示すように、アクセスモジュール１３０から不揮発性記憶モジュール１００に対し、読み出しデータのアドレス（論理アドレス）を含む有効なデータ読み出し命令が発行されると、読み書き制御部１１３は、不揮発性メモリ１２０内の指定されたアドレス（アクセスモジュール１３０から指示された論理アドレスに対応する物理アドレス）からデータとそのデータのＥＣＣとを読み出し、誤り訂正部１１４に送る。
【００２５】
誤り訂正部１１４は、読み出されたデータに対し誤り検出及び誤り数の計数を行い、誤りがあればデータを訂正する。誤り訂正処理が完了すると、ＣＰＵ１１２は、データを誤り訂正部１１４からアクセスモジュール１３０へ送信し、データ読み出し処理を完了する（Ｓ２０１）。
（Ｓ２０２、Ｓ２０３）：
不揮発性記憶システム１０００において、データ読み出し処理が完了すると、読み出したデータに対しメンテナンスの要否が判断される。
まず、誤り訂正部１１４は、データの誤りの有無を判断し（Ｓ２０２）、誤りがあれば、メンテナンス要求部１１５に誤り数を通知する（Ｓ２０３）。一方、誤りがなければ、誤り訂正部１１４は、メンテナンス要否判断を終了する。
（Ｓ２０４、Ｓ２０５）：
メンテナンス要求部１１５は、通知された誤り数より、読み出した領域のメンテナンス要否判断を行う。メンテナンス要否は、誤り数が基準値以上であるか否かによって判断され（Ｓ２０４）、基準値以上であれば、メンテナンス要求部１１５は、アクセスモジュール１３０へメンテナンス要求を送信し（Ｓ２０５）、メンテナンス要否判断を終了する。一方、誤り数が基準値未満であれば、メンテナンス不要と判断し、メンテナンス要否判断を終了させる。
【００２６】
（１．２．２：データメンテナンス命令発行サイクル）
次に、アクセスモジュール１３０が不揮発性記憶モジュール１００からメンテナンス要求を受信してからメンテナンス実行命令を発行するまでの流れを、図３を用いて説明する。
（Ｓ３０１、Ｓ３０２）：
アクセスモジュール１３０が不揮発性記憶モジュール１００よりメンテナンス要求を受信すると（Ｓ３０１）、メンテナンス判断部１５２は、メンテナンス実行リスト１５３に、メンテナンス要求に含まれているメンテナンス必要ブロックの論理アドレスを登録する（Ｓ３０２）。なお、不揮発性記憶モジュール１００からアクセスモジュール１３０に送信されるメンテナンス要求には、メンテナンス必要ブロックを特定するための情報と、メンテナンス処理が実行された場合の不揮発性記憶モジュール１００での処理時間に関する情報と、を含めることが好ましい。「メンテナンス必要ブロックを特定するための情報」とは、例えば、メンテナンス必要ブロックの論理アドレスや、メンテナンス必要ブロックの開始論理アドレスとメンテナンス必要ブロックのサイズや、メンテナンス必要ブロックの開始論理アドレスとメンテナンス必要ブロックの終了論理アドレス等である。
（Ｓ３０３〜Ｓ３０５）：
システムステータス監視部１５１は、メンテナンス実行リスト１５３にアドレスが保持されていれば、システム制御部１４０より不揮発性記憶システム１０００のシステムステータスを取得し（Ｓ３０３）、システムが通常処理中かどうかを判定する（Ｓ３０４）。
【００２７】
システムステータス監視部１５１は、システムステータスが通常処理中であると判定した場合、一定期間待機し（Ｓ３０５）、再びシステムステータスの取得を行う（Ｓ３０３）。
（Ｓ３０６〜Ｓ３０８）：
システムステータス監視部１５１は、システムステータスが通常処理中でないと判定した場合、システムステータス監視部１５１は、メンテナンス実行可能状態であることをメンテナンス判断部１５２に通知する（Ｓ３０６）。そして、メンテナンス判断部１５２は、メンテナンス実行リスト１５３に保持しているメンテナンス必要ブロックのアドレスを用いて、メンテナンス実行命令するよう命令発行部１５４に指示する。命令発行部１５４は、メンテナンス判断部１５２からの指示に従い、メンテナンス実行命令を作成し出力する（Ｓ３０７）。
【００２８】
適応型命令部１５０は、命令発行部１５４が生成したメンテナンス実行命令を不揮発性記憶モジュール１００へ送信する（Ｓ３０８）。
（Ｓ３０９〜Ｓ３１１）：
その後、アクセスモジュール１３０が不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ３０９）、メンテナンス判断部１５２は、メンテナンスを実行完了したアドレスをメンテナンス実行リスト１５３より削除する（Ｓ３１０）。
ここで、メンテナンス実行リスト１５３に登録済みアドレスの有無を確認し（Ｓ３１１）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し、データメンテナンス命令発行サイクルを終了する。一方、登録されているアドレスが存在すれば、システム状態の取得（Ｓ３０３）に戻る。
【００２９】
（１．２．３：データメンテナンス実行サイクル）
次に、不揮発性記憶モジュール１００がアクセスモジュール１３０からメンテナンス実行命令を受信してからメンテナンス処理を実行完了するまでの流れを、図４を用いて説明する。
（Ｓ４０１〜Ｓ４０３）：
不揮発性記憶モジュール１００がアクセスモジュール１３０からメンテナンス実行命令を受信すると（Ｓ４０１）、読み書き制御部１１３は、メンテナンス実行命令に含まれる不揮発性メモリ１２０の指定されたアドレス（論理アドレス）のデータに対し、リフレッシュ等のメンテナンス処理を実行する（Ｓ４０２）。具体的には、読み書き制御部１１３は、論理アドレス／物理アドレス変換処理を行うことで、メンテナンス実行命令に含まれる不揮発性メモリ１２０の指定されたアドレス（論理アドレス）を、その論理アドレスに対応する不揮発性メモリ１２０の物理アドレスに変換する。そして、読み書き制御部１１３は、論理アドレス／物理アドレス変換処理により取得された不揮発性メモリ１２０の物理アドレスのデータに対して、リフレッシュ等のメンテナンス処理を実行する。
【００３０】
メンテナンス処理が完了すると、不揮発性記憶モジュール１００は、アクセスモジュール１３０へメンテナンス完了通知を送信し（Ｓ４０３）、メンテナンス処理を終了する。
メンテナンス完了通知には、メンテナンス処理を実行完了した不揮発性メモリ１２０のブロックの論理アドレスが含まれる。
本実施形態に係る不揮発性記憶システム１０００では、メンテナンス要否を判断する誤り数の基準値は、誤り訂正能力の限界値に基づいて設定され、かつ、データ保持期間や処理速度への影響も考慮して決定される。
以上により、本実施形態に係る不揮発性記憶システム１０００においては、システムの通常処理に付随せず、十分な時間を確保した上でデータメンテナンスを実行することで、データ消失の危険を回避し、データ保持特性を高めることができる。
【００３１】
なお、誤り数の単位は、ビット単位としてもよいし、複数ビットを単位としたシンボル単位としてもよい。
また、システムステータスは、システムステータス監視部１５１により取得してもよいし、システム制御部１４０から適応型命令部１５０に通知するようにしてもよい。
また、メンテナンス要求には、単一ブロックのアドレスだけでなく、複数ブロックの論理アドレスを単位として含めるようにしてもよい。その場合、メンテナンス実行リスト１５３にアドレスを登録する際に、メンテナンスの必要な領域がブロック単位なのか複数ブロック単位なのかを示す情報も登録するようにしてもよい。
また、メンテナンス実行命令は、単一ブロックアドレス毎に発行されるものに限定されることはなく、例えば、不揮発性記憶システム１０００において、複数ブロックのアドレスをまとめて一つのメンテナンス実行命令を発行するようにしてもよい。
【００３２】
また、メンテナンス処理は、単一ブロックアドレス毎に実行されるだけでなく、複数のブロックから構成される論理ブロックを単位として実行してもよい。
また、不揮発性記憶システム１０００において、アクセスモジュール１３０が、複数の不揮発性記憶モジュール１００に接続される場合、メンテナンス判断部１５２は、複数の不揮発性記憶モジュール１００のそれぞれに対応するメンテナンス実行リスト１５３を保持するようにしてもよい。この場合、例えば、複数の不揮発性記憶モジュール１００のそれぞれに個別のＩＤ（識別子）を割り振り、メンテナンス判断部１５２は、当該ＩＤ（識別子）により、メンテナンス実行リスト１５３を管理するようにすれば、１つのアクセスモジュール１３０で、複数の不揮発性記憶モジュール１００を管理することができる。
［第２実施形態］
＜２．１：不揮発性記憶システムの構成＞
図５に、本発明の第２実施形態に係る不揮発性記憶システム２０００のブロック図を示す。
【００３３】
不揮発性記憶システム２０００は、図５に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）５００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール５００とは、バスＢ１により接続されており、相互に通信することができる。
本実施形態において、第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は第１実施形態と同じ構成である。アクセスモジュール５００は、システム制御部５１０と、電源部５２０と、適応型命令部５３０と、を含む。
電源部５２０は、アクセスモジュール５００だけでなく不揮発性記憶モジュール１００へも電力を供給する。
【００３４】
システム制御部５１０は、読み書き命令等の実行制御や電源部５２０の電源管理、その他システム状態の管理等、アクセスモジュール５００の全体を制御する。
適応型命令部５３０について、第１実施形態との差異を説明する。
適応型命令部５３０は、メンテナンス判断部５３１を含む。
メンテナンス判断部５３１は、第１実施形態のメンテナンス判断部１５２の機能に加え、メンテナンス実行リスト１５３が更新された際に保持しているアドレス数からメンテナンス実行必要回数を決定し、システム制御部５１０に通知することができる。
＜２．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム２０００における、データメンテナンス実行サイクルを、図６に示すフローチャートを用いて説明する。
【００３５】
図６は、アクセスモジュール５００の適応型命令部５３０における、データメンテナンス命令発行サイクルを示す。なお、簡単のため、第１実施形態と同様の箇所は説明を省略する。
（２．２．１：データメンテナンス要求サイクル）
（Ｓ６０１、Ｓ６０２）：
不揮発性記憶システム２０００では、図６に示すように、まず、アクセスモジュール５００が、不揮発性記憶モジュール１００からメンテナンス要求を受信する（Ｓ６０１）。そして、メンテナンス判断部５３１がメンテナンス実行リスト１５３にメンテナンス必要ブロックの論理アドレスを登録する（Ｓ６０２）。
（Ｓ６０３）：
メンテナンス判断部５３１は、メンテナンス実行リスト１５３に登録されているアドレス数より、メンテナンス実行必要回数を決定し、システム制御部５１０に通知する（Ｓ６０３）。
【００３６】
システム制御部５１０は、通知されたメンテナンス実行必要回数を基にその回数分のメンテナンス処理を実行するのに最低限確保すべきバッテリ残量を決定し、その残量を保持するよう電源部５２０及びシステム全体を管理する。
（Ｓ６０４）：
次に、メンテナンス処理が実行される（Ｓ６０４）。なお、Ｓ６０４での処理は、第１実施形態で説明した図３におけるＳ３０３〜Ｓ３０８の処理と同様である。
（Ｓ６０５〜Ｓ６０８）：
メンテナンス処理が完了し、アクセスモジュール５００が、不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ６０５）、メンテナンス判断部５３１は、メンテナンスを実行完了したアドレスをメンテナンス実行リスト１５３より削除する（Ｓ６０６）。
【００３７】
ここで、メンテナンス判断部５３１は、メンテナンス実行リスト１５３に登録済みアドレスの有無を確認し（Ｓ６０７）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し、メンテナンス実行必要回数が０回であることをシステム制御部５１０に通知する（Ｓ６０８）。
この通知により、システム制御部５１０は、バッテリ残量確保等のシステム制約を解除する。つまり、この段階で、さらなるメンテナンス実行は不要であると判断できるので、システム制御部５１０は、バッテリ残量確保するために、例えば、不揮発性記憶システム２０００を省電力モードで動作させていたのを通常のモード（省電力モードではないモード）での動作にするよう制御することができる。
一方、Ｓ６０７において登録されているアドレスが存在すれば、メンテナンス実行必要回数を通知するステップ（Ｓ６０３）に戻る。
【００３８】
以上により、本実施形態の不揮発性記憶システム２０００では、メンテナンス実行状況をシステム制御に反映させることで、例えば、予めバッテリの残量を確保しておく等、必要なメンテナンス処理を確実に完了できるようにシステムを制御することができる。その結果、不揮発性記憶システム２０００では、データ保持特性を高めることが可能である。
なお、メンテナンス判断部５３１で決定されるメンテナンス実行必要回数は、リストに登録されているアドレス数としてもよいし、複数ブロックアドレスをまとめて一つのメンテナンス実行命令を発行することを考慮して決定された数にしてもよい。
なお、システム制御部５１０で決定される確保すべきバッテリ残量は、アクセスモジュール５００に接続されている不揮発性記憶モジュール１００の不揮発性メモリの種別やブロック長の設定等に基づいて算出されるものであってもよいし、システム制御部５１０が予め算出した１回のメンテナンスに必要な消費電力に関する情報を保持しておき、その保持している情報によって決定されるものであってもよい。
【００３９】
なお、システム制御部５１０は、バッテリ残量を確保するため、省電力モードへの移行条件を変更してもよい。例えば、システム制御部５１０は、バッテリ残量がＸ１％以下になると、省電力モードに移行するという条件を、バッテリ残量がＸ２％以下（Ｘ２＞Ｘ１２）になると、省電力モードに移行するという条件に変更し、バッテリ残量がなくなるまでのマージンを大きくすることで、より確実にメンテナンス処理を実行することができる（メンテナンス処理の途中でバッテリ残量がなくなりメンテナンス処理の途中でシステムダウンするリスクを低減することができる）。また、アクセスモジュール５００が表示部を備える場合は、システム制御部５１０は、バッテリ残量表示を変更してユーザに電源供給を促すようにしてもよい。
また、システム制御部５１０は、保持しているバッテリ残量が確保すべき残量に近づいてきたと判断した場合、通常処理実行前に、優先して必要なメンテナンス処理を全て完了するよう制御するようにしてもよい。
【００４０】
［第３実施形態］
＜３．１：不揮発性記憶システムの構成＞
図７に、本発明の第３実施形態に係る不揮発性記憶システム３０００のブロック図を示す。
本実施形態に係る不揮発性記憶システム３０００は、図７に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）７００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール７００とは、バスＢ１により接続されており、相互に通信することができる。
第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は、第１実施形態と同じ構成である。
【００４１】
アクセスモジュール７００は、システム制御部１４０と、適応型命令部７１０と、メモリ７２０と、を含む。
メモリ７２０は、データ管理情報格納部７２１を含む。
データ管理情報格納部７２１には、不揮発性メモリ１２０に保持されているデータの重要度や、不揮発性メモリ１２０への書き込み履歴（書き込んだ時間情報）等がアドレスと共に保持されている。これらはアクセスモジュール７００が不揮発性メモリ１２０にデータを書き込む際に更新される。
適応型命令部７１０について、第１実施形態との差異を説明する。
適応型命令部７１０は、メンテナンス判断部７１１を含む。
メンテナンス判断部７１１は、第１実施形態のメンテナンス判断部１５２の機能に加え、メンテナンス実行リスト７１２に保持している複数のアドレスのそれぞれのアドレスを、優先度を付与して、登録する。このアドレスに付与された優先度は、メンテナンス処理を実行するときの優先度であり、優先度の高いアドレスからメンテナンス処理が実行される。優先度の付与において、適応型命令部７１０は、データ管理情報格納部７２１に保持されているデータ重要度等の情報を参照する。適応型命令部７１０は、メンテナンス実行命令を作成する際は、メンテナンス実行リスト７１２において、優先度の高いアドレス（論理アドレス）から順にメンテナンス処理が実行されるようにメンテナンス実行命令を作成する。
【００４２】
＜３．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム３０００における、データメンテナンス実行サイクルを図８に示すフローチャートを用いて説明する。
（３．２．１：データメンテナンス実行サイクル（その１））
図８は、アクセスモジュール７００の適応型命令部７１０における、データメンテナンス命令発行サイクルを示す。なお、簡単のため、第１実施形態と同様の箇所は説明を省略する。また、データ管理情報格納部７２１には、不揮発性メモリ１２０にデータを書き込む際に登録されたデータ重要度等の情報が、保持されているものとする。
（Ｓ８０１〜Ｓ８０３）：
不揮発性記憶システム３０００では、図８に示すように、まず、アクセスモジュール７００が、不揮発性記憶モジュールからメンテナンス要求を受信する（Ｓ８０１）。そして、メンテナンス判断部７１１がメンテナンス実行リスト７１２にメンテナンス必要ブロックの論理アドレスを登録する（Ｓ８０２）。このとき、メンテナンス判断部７１１は、データ管理情報格納部７２１に保持されているデータ重要度等の情報を参照し、登録したアドレスに対し、メンテナンス実行の優先度を付与する（Ｓ８０３）。
【００４３】
例えば、登録した論理アドレスのデータ重要度をデータ管理情報格納部７２１から検索し、重要度が高く設定されていれば優先度も高く登録する。
（Ｓ８０４）：
次に、システム状態の取得が行われる（Ｓ８０４）。なお、Ｓ８０４での処理は、第１実施形態で説明した図３におけるＳ３０３〜Ｓ３０５の処理と同様である。
（Ｓ８０５〜Ｓ８０７）：
システムステータスが通常処理中でなければ、システムステータス監視部１５１は、メンテナンス実行可能状態であることをメンテナンス判断部７１１に通知する（Ｓ８０５）。そして、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に保持しているメンテナンス必要ブロックのアドレスで優先度の高いものからメンテナンス実行命令を生成するよう命令発行部１５４に指示し、命令発行部１５４は、メンテナンス判断部７１１の指示に従い、メンテナンス実行命令を生成し出力する（Ｓ８０６）。そして、適応型命令部７１０は、命令発行部１５４が生成したメンテナンス実行命令を不揮発性記憶モジュール１００へ送信する（Ｓ８０７）。
（Ｓ８０８〜Ｓ８１０）：
その後、アクセスモジュール７００が不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ８０８）、メンテナンス判断部７１１は、メンテナンスを実行完了したアドレス、及びその優先度をメンテナンス実行リスト７１２より削除する（Ｓ８０９）。
【００４４】
ここで、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に登録済みアドレスの有無を確認し（Ｓ８１０）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し処理を終了する。一方、登録されているアドレスが存在すれば、システム状態取得処理（Ｓ８０４）に戻る。
（３．２．１：データメンテナンス実行サイクル（その２））
また、本実施形態の不揮発性記憶システム３０００における、別のデータメンテナンス実行サイクルを、図９に示すフローチャートを用いて説明する。なお、簡単のため、本実施形態で先に述べたデータメンテナンス実行サイクルと同様の箇所は説明を省略する。
（Ｓ９０１）：
不揮発性記憶システム３０００では、図９に示すように、まず、メンテナンス判断部７１１が、データ管理情報格納部７２１に保持されている書き込み履歴（前回当該アドレスにデータを書き込んだ時間情報）を取得する（Ｓ９０１）。
（Ｓ９０２、９０３）：
メンテナンス判断部７１１は、書き込み履歴から経過時間を算出し、経過時間がデータ保持のための基準値以上であるか否かを判定し（Ｓ９０２）、基準値以上であると判定した場合は、メンテナンス実行リスト７１２にアドレスとその優先度とを登録する（Ｓ９０３）。
【００４５】
ここで、基準値は、不揮発性メモリ１２０のデータ保持特性により設定されるものであり、初期化時等に不揮発性記憶モジュール１００とアクセスモジュール７００との間でデータ保持特性等のデバイス情報を交換することで、アクセスモジュール７００は、決定された基準値を予め取得・保持しているものとする。
（Ｓ９０４〜Ｓ９０７）：
その後、不揮発性記憶システム３０００において、メンテナンス処理が実行され、アクセスモジュール７００が、不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ９０４）、メンテナンス判断部７１１は、メンテナンスを実行完了したアドレス及びその優先度をメンテナンス実行リスト７１２より削除し（Ｓ９０５）、さらに、データ管理情報格納部７２１の書き込み履歴を更新する（Ｓ９０６）。
【００４６】
ここで、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に登録済みアドレスの有無を確認し（Ｓ９０７）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し処理を終了する。一方、登録されているアドレスが存在すれば、システム状態取得処理（Ｓ９０４）に戻る。
以上により、本実施形態に係る不揮発性記憶システム３０００においては、アクセスモジュール７００が重要データの論理アドレスを管理し、メンテナンス実行の際に重要なものから処理するように優先度を付けることで、重要なデータをより確実に保持できるようになる。
さらに、不揮発性記憶システム３０００において、アクセスモジュール７００が書き込み履歴を論理アドレス毎に管理し、書き込み後長時間経過したものについては、不揮発性記憶モジュール１００からのメンテナンス要求がなくても自発的にメンテナンスを行うことで、データ読み出しが長時間行われていない不揮発性メモリ１２０のデータ領域についても、データ消失の危険を回避させることができる。
【００４７】
なお、データ重要度は、重要なデータにのみフラグを立ててもよいし、複数の重要度レベルを設定してもよい。
また、データ重要度は単一ブロックのアドレス毎に設定してもよいし、複数ブロックの論理アドレスを単位として設定してもよい。
また、メンテナンス実行の優先度は、メンテナンス実行リスト７１２に保持せず、メンテナンス実行の都度、データ管理情報格納部７２１に格納されている情報を参照するようにしてもよい。
また、データ重要度や書き込み履歴は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域に書き込まれたデータについてのみ保持するようにしてもよい。
【００４８】
［第４実施形態］
＜４．１：不揮発性記憶システムの構成＞
図１０に、本発明の第４実施形態に係る不揮発性記憶システム４０００のブロック図を示す。
不揮発性記憶システム４０００は、図１０に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００Ａと、アクセスモジュール（アクセス装置）１３０と、を備え、不揮発性記憶モジュール１００Ａとアクセスモジュール１３０とは、バスＢ１により接続されており、相互に通信することができる。
本実施形態において、第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
【００４９】
アクセスモジュール１３０は、第１実施形態と同じ構成である。
不揮発性記憶モジュール１００Ａは、メモリコントローラ１０１０と、不揮発性メモリ１０２０と、を含む。
不揮発性メモリ１０２０には、第３実施形態で示したメモリ７２０と同様に、データ管理情報格納部１０２１が含まれる。
データ管理情報格納部１０２１には、不揮発性メモリ１２０に保持されているデータの重要度等がアドレスと共に保持されている。これらは、アクセスモジュール１３０が不揮発性メモリ１２０にデータを書き込む際、データと共に書き込まれる。
次に、メモリコントローラ１０１０について、第１実施形態との差異を説明する。
メモリコントローラ１０１０は、メンテナンス要求部１０１１を含む。
【００５０】
メンテナンス要求部１０１１は、第１実施形態のメンテナンス要求部１１５の機能に加え、読み出したデータのメンテナンス要否を判断する際、データ管理情報格納部１０２１に保持されているデータ重要度等の情報を参照し、参照した情報に基づいて、メンテナンス要否の判断基準を動的に変更する。
＜４．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム４０００における、データメンテナンス要求サイクルを、図１１に示すフローチャートを用いて説明する。
（４．２．１：データメンテナンス要求サイクル）
図１１は、不揮発性記憶モジュール１００Ａにおける、データメンテナンス要求サイクルを示す。なお簡単のため、前述の実施形態と同様の箇所は説明を省略する。
（Ｓ１１０１〜Ｓ１１０３）：
不揮発性記憶システム４０００では、図１１に示すように、データ読み出し処理（Ｓ１１０１）からデータの誤り数通知（Ｓ１１０３）までは、第１実施形態と同様である。
（Ｓ１１０４）：
メンテナンス要求部１０１１は、誤り訂正部１１４から誤り数を通知されると、データ管理情報格納部１０２１を参照して読み出したデータの重要度等を取得し、得られた重要度に合わせてメンテナンス要否の基準値を設定する（Ｓ１１０４）。
（Ｓ１１０５、Ｓ１１０６）：
その後、メンテナンス要求部１０１１は、誤り数が基準値以上であるか否かによってメンテナンス要否を判断する（Ｓ１１０５）。そして、誤り数が基準値以上であれば、メンテナンス要求部１０１１は、アクセスモジュール１３０へメンテナンス要求を送信し（Ｓ１１０６）、メンテナンス要否判断を終了する。一方、誤り数が基準値未満であれば、メンテナンス要求部１０１１は、メンテナンス不要と判断し、メンテナンス要否判断を終了する。
【００５１】
以上により、本実施形態に係る不揮発性記憶システム４０００においては、メンテナンス要否の基準値をデータの重要度によって動的に変更することで、重要なデータに関してのみ誤り数が訂正限界値に達しないよう余裕をもってメンテナンス要求を行え、効率よくデータ保持特性を向上できる。
また、不揮発性記憶システム４０００では、データ重要度等の管理情報を不揮発性メモリ１０２０に保持することで、異なるアクセスモジュール間で管理情報を共有でき、より確実に重要なデータを消失しないよう保持することができる。この場合は、アクセスモジュール１３０が電源断時等に最新のデータ管理情報を不揮発性メモリ１０２０に格納し、また、アクセスモジュール１３０は、初期化時に不揮発性メモリ１２０からデータ管理情報を読み出す。
【００５２】
なお、データ重要度は、重要なデータにのみフラグを立ててもよいし、複数の重要度レベルを設定してもよい。
また、データ重要度は、単一ブロックのアドレス毎に設定してもよいし、複数ブロックの論理アドレスを単位として設定してもよい。
また、メンテナンス要否の基準値は、重要なものとそうでないものとを示す２値の情報により設定されるものであってもよいし、データ重要度の設定に合わせて複数の基準値により設定されるものであってもよい。ただし、重要なデータに関しても、不必要なメンテナンスが発生しないような基準値を設定することが望ましい。
また、データ重要度は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域に書き込まれたデータについてのみ保持するようにしてもよい。
【００５３】
［第５実施形態］
＜５．１：不揮発性記憶システムの構成＞
図１２に、本発明の第５実施形態に係る不揮発性記憶システム５０００のブロック図を示す。
本実施形態に係る不揮発性記憶システム５０００は、図１２に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）１２００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール１２００とは、バスＢ１により接続されており、相互に通信することができる。
第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は、第１実施形態と同じ構成である。
【００５４】
アクセスモジュール１２００は、適応型命令部１２１０と、メモリ１２２０と、を含む。
メモリ１２２０は、データ管理情報格納部１２２１を含む。
データ管理情報格納部１２２１には、不揮発性メモリ１２０へのアクセス履歴（メモリに対し読み書きした時間情報）等がアドレスと共に保持されている。これらはアクセスモジュール１２００が不揮発性メモリ１２０にデータを読み書きする際に更新される。
適応型命令部１２１０について、第１実施形態との差異を説明する。
適応型命令部１２１０は、命令発行部１２１１を含む。
命令発行部１２１１は、第１実施形態の命令発行部１５４の機能に加え、以下の処理を実行する。すなわち、命令発行部１２１１は、データ管理情報格納部１２２１に保持されているアクセス履歴を参照し、長時間データの書き込みも読み出しもされていない領域を検出し、検出した当該領域（長時間データの書き込みも読み出しもされていない領域）を処理対象とするデータ読み出し命令を発行する。これにより、不揮発性モジュール１００に対して、図２に示すデータメンテナンス要求サイクルを実行させることができ、長時間アクセスされていない領域でメンテナンスが必要な領域がないかを確認することができる。
【００５５】
＜５．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム５０００における、データ読み出し実行サイクルを図１３に示すフローチャートを用いて説明する。
（５．２．１：データ読み出しサイクル）
図１３は、アクセスモジュール１２００の命令発行部１２１１における、データ読み出し命令発行サイクルを示す。
（Ｓ１３０１）：
不揮発性記憶システム５０００では、図１３に示すように、まず、命令発行部１２１１が、データ管理情報格納部１２２１に保持されているアクセス履歴（前回当該アドレスに対しデータを読み書きした時間情報）を取得する（Ｓ１３０１）。
（Ｓ１３０２、１３０３）：
命令発行部１２１１は、アクセス履歴から経過時間を算出し、経過時間がデータ保持のための基準値以上であるか否かを判定する（Ｓ１３０２）。命令発行部１２１１は、基準値以上であると判定した場合は、当該アドレスに対するデータ読み出し命令を作成し（Ｓ１３０３）、作成した当該データ読み出し命令を不揮発性記憶モジュール１００に対し発行する（Ｓ１３０４）。
【００５６】
ここで、基準値は、不揮発性メモリ１２０のデータ保持特性により設定されるものであり、初期化時等に不揮発性記憶モジュール１００とアクセスモジュール１２００との間でデータ保持特性等のデバイス情報を交換することで、アクセスモジュール１２００は、決定された基準値を予め取得・保持しているものとする。
（Ｓ１３０５〜Ｓ１３０６）：
その後、不揮発性記憶システム５０００において、データ読み出し処理が実行され（Ｓ１３０５）、読み出しが完了すると命令発行部１２１１は、読み出したアドレスに対してアドレスデータ管理情報格納部１２２１のアクセス履歴を更新する（Ｓ１３０６）。
以上により、本実施形態に係る不揮発性記憶システム５０００においては、アクセスモジュール１２００が不揮発性メモリ１２０へのアクセス履歴を論理アドレス毎に管理し、長時間アクセスされていない領域が存在する場合、当該領域へのデータ読み出し命令（当該領域を処理対象とする読み出し命令）を発行する。これにより、不揮発性記憶システム５０００では、不揮発性モジュール１００に対して、長時間アクセスされていない領域でメンテナンスが必要な領域がないかを確認させることができ、データ消失の危険を回避させることができる。
【００５７】
なお、不揮発性記憶システム５０００において、アクセス履歴は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域のデータについてのみ保持するようにしてもよい。
また、不揮発性記憶システム５０００において、データ読み出し命令を発行する際は、単一ブロックのアドレス毎にデータを読み出すようにしてもよいし、複数ブロックの論理アドレスを単位として読み出すようにしてもよい。
［他の実施形態］
なお、上記実施形態で説明した不揮発性記憶システム、不揮発性記憶モジュールおよびアクセスモジュールにおいて、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
【００５８】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【００５９】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００６０】
本発明にかかる不揮発性記憶システムは、フラッシュメモリの多値化に伴う不揮発性メモリのデータ保持期間低下等に起因するデータ消失を防ぐ方法を提案したものである。
これは半導体メモリカードのみならず、不揮発性メモリを備えた静止画記録再生装置や動画記録再生装置及び携帯情報端末等においても有用である。
【符号の説明】
【００６１】
１０００、２０００、３０００、４０００、５０００  不揮発性記憶システム
１００、１００Ａ  不揮発性記憶モジュール（不揮発性記憶装置）
１１０、１０１０  メモリコントローラ
１１１  ホストＩ／Ｆ部
１１２  ＣＰＵ
１１３  読み書き制御部
１１４  誤り訂正部
１１５、１０１１  メンテナンス要求部
１２０、１０２０  不揮発性メモリ
１３０、５００、７００、１２００  アクセスモジュール（アクセス装置）
１４０  システム制御部
１５０、５３０、７１０、１２１０  適応型命令部
１５１  システムステータス監視部
１５２、５３１、７１１  メンテナンス判断部
１５３、７１２  メンテナンス実行リスト
１５４，１２１１  命令発行部
５２０  電源部
７２０  メモリ、１２２０
７２１、１０２１、１２２１  データ管理情報格納部
【図１】
2011013351.tif 000003
【図２】
2011013351.tif 000004
【図３】
2011013351.tif 000005
【図４】
2011013351.tif 000006
【図５】
2011013351.tif 000007
【図６】
2011013351.tif 000008
【図７】
2011013351.tif 000009
【図８】
2011013351.tif 000010
【図９】
2011013351.tif 000011
【図１０】
2011013351.tif 000012
【図１１】
2011013351.tif 000013
【図１２】
2011013351.tif 000014
【図１３】
2011013351.tif 000015
【手続補正書】
【提出日】平成23年6月3日(2011.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
不揮発性記憶メモリを含む不揮発性記憶装置へアクセスするアクセス装置であって、
前記不揮発性記憶装置から取得した前記不揮発性メモリの前記データ保持状態に基づいて、前記不揮発性メモリに対するデータのメンテナンス処理の要否を判断するとともに、
前記アクセス装置のシステム状態と前記メンテナンス処理の要否とに基づいて、メンテナンス処理の実行可否を決定し、
メンテナンス実行を決定した場合、前記不揮発性記憶装置に対して、メンテナンス実行命令を発行する適応型命令部、
を備えるアクセス装置。
【請求項２】
前記適応型命令部は、
前記アクセス装置のシステム状態を監視するシステムステータス監視部と、
前記システムステータス監視部の監視結果と前記メンテナンス処理の要否とに基づいて、前記メンテナンス実行可否を決定するメンテナンス判断部と、
前記メンテナンス判断部の決定結果に応じて、前記不揮発性記憶装置に対してメンテナンス実行命令を発行する命令発行部と、
を備える、
請求項１に記載のアクセス装置。
【請求項３】
前記システムステータス監視部は、前記アクセス装置の処理状態を監視し、通常処理が行われていないと判断した場合、メンテナンス処理が実行可能な状態であることを、前記メンテナンス判断部に通知し、
前記メンテナンス判断部は、前記メンテナンス処理が要である場合に、前記システムステータス監視部からメンテナンス処理が実行可能な状態であることを通知されると、前記メンテナンス実行を決定し、
前記命令発行部は、前記メンテナンス実行が決定された場合、前記不揮発性記憶装置に対してメンテナンス実行命令を発行する、
請求項２に記載のアクセス装置。
【請求項４】
前記メンテナンス判断部は、前記メンテナンス処理が必要な前記不揮発性メモリのアドレスを保持し、前記システムステータス監視部により前記メンテナンス処理が実行可能である状態を通知された場合、保持しているアドレスから前記メンテナンス処理を実行するアドレスを選択し、
前記命令発行部は、前記メンテナンス判断部により選択された前記不揮発性メモリのアドレスに対して、前記メンテナンス処理を実行するための前記メンテナンス実行命令を発行する、
請求項２に記載のアクセス装置。
【請求項５】
前記アクセス装置のシステム制御を行うシステム制御部をさらに備え、
前記メンテナンス判断部は、前記メンテナンス処理が必要な前記不揮発性メモリのアドレスを保持し、保持している前記不揮発性メモリのアドレスに関する情報を前記システム制御部に通知する、
請求項２に記載のアクセス装置。
【請求項６】
前記アクセス装置に電源を供給する電源部をさらに備え、
前記システム制御部は、前記保持している前記不揮発性メモリのアドレスに関する情報に基づいて、前記電源部により最低限確保すべきバッテリ残量を決定し、決定した最低限のバッテリ量を保持するように、前記電源部および前記アクセス装置に対する制御を行う、
請求項５に記載のアクセス装置。
【請求項７】
前記不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備え、
前記メンテナンス判断部は、前記データ管理情報格納部の情報を参照することで、前記不揮発性メモリのデータ状態に応じて、前記保持しているアドレスのメンテナンス処理順序を変更する、
請求項４に記載のアクセス装置。
【請求項８】
前記不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備え、
前記メンテナンス判断部は、前記データ管理情報格納部の情報を参照することで、前記不揮発性メモリのデータ状態に応じて、前記不揮発性記憶装置より前記不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的に前記メンテナンス処理が必要なアドレスを決定し保持する、
請求項４に記載のアクセス装置。
【請求項９】
前記メンテナンス処理は、前記不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である、
請求項１から８のいずれかに記載のアクセス装置。
【請求項１０】
アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置に用いられ、前記不揮発性記憶装置の不揮発性メモリに対してデータの読み出し処理／書き込み処理を行うメモリコントローラであって、
前記不揮発性メモリから読み出したデータに含まれる誤りの数を計測し、前記読み出したデータに含まれる誤りを訂正する誤り訂正部と、
前記誤り訂正部で計測された誤りの数が基準値以上の場合、前記アクセス装置に対して、前記不揮発性メモリにおいてメンテナンス処理が必要であることを示すメンテナンス要求を発行するメンテナンス要求部と、
を備え、
前記メンテナンス要求部は、前記不揮発性メモリに保持されているデータ状態に応じて動的にメンテナンス要求の基準値を変更し、
前記メンテナンス処理は、前記不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である、
メモリコントローラ。
【請求項１１】
アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置であって、
データを記憶する不揮発性メモリと、
請求項１０に記載のメモリコントローラと、
を備える不揮発性記憶装置。
【請求項１２】
不揮発性メモリと、該メモリへのデータの読み出し処理／書き込み処理を行うメモリコントローラとを有する不揮発性記憶装置と、
前記不揮発性記憶メモリを含む前記不揮発性記憶装置と通信可能なアクセス装置とを備える不揮発性記憶システムにおいて、
請求項１１に記載の不揮発性記憶装置と、
請求項１から９のいずれかに記載のアクセス装置とを備える不揮発性記憶システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置へデータの書き換えを行うアクセス装置、不揮発性メモリを制御するメモリコントローラ、前記不揮発性メモリとメモリコントローラを備えた不揮発性記憶装置、及び前記アクセス装置と前記不揮発性記憶装置を構成要素とする不揮発性記憶システムに関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置（不揮発性記憶モジュール）は、半導体メモリカードを中心にその需要が広まっている。不揮発性記憶モジュールは、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として広く利用され、さらに近年は前述のような民生用途だけでなく、例えば、放送局向けのプロ用動画記録機器にも用いられており、その用途は拡大している。
この不揮発性記憶モジュールは、不揮発性の主記憶メモリとして、フラッシュメモリを備え、フラッシュメモリを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラや携帯電話本体等のアクセス装置（アクセスモジュール）からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものである。
【０００３】
フラッシュメモリは、記憶単位であるメモリセルアレイへの書き込み（データ書き込み）や消去（データ消去）に比較的長い時間を必要とするため、複数のメモリセルに記憶保持されているデータを、一括して消去したり書き込んだりできる構造となっている。具体的には、フラッシュメモリは、複数の物理ブロック（消去単位）から構成され、各物理ブロックは、複数のページ（書き込み単位）を含んでいる。フラッシュメモリでは、消去は物理ブロック単位で行われ、書き込みはページ単位で行われる。
近年、フラッシュメモリは、大容量化と低コスト化への要望に対応して、多値ＮＡＮＤフラッシュメモリのように１つのメモリセルに２ビット又はそれ以上の情報が記憶できる品種が主流となってきている。ところが、このような多値ＮＡＮＤフラッシュメモリは、従来の２値ＮＡＮＤフラッシュメモリに比べデータ保持特性が悪く、今後のメモリ大容量化に伴いメモリセルの信頼性を確保することが課題となっている。
【０００４】
従来、不揮発性メモリの信頼性を高めるために、不揮発性記憶モジュールでは、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）等を利用し、データが誤っている場合は、そのデータを補正する技術が用いられている。ところが、不揮発性メモリから読み出されたデータは、ＥＣＣにより誤り訂正が行われているものの、長期間読み出されないメモリセルのデータには、誤りが蓄積され、やがて、ＥＣＣによる訂正が不可能となってしまうことがある。また、特定のメモリセルが集中して読み出される場合、同一メモリセルアレイの他のメモリセル内で閾値電圧が変化し、読み出し不良（Ｒｅａｄ  Ｄｉｓｔｕｒｂ）が発生することもある。
このような問題に対応するためには、不揮発性メモリに対して、定期的にデータをリフレッシュ（再書き込み）する等、データを保持するよう何らかのメンテナンス処理を実行する必要がある。特許文献１に開示されている技術では、不揮発性メモリ内のデータ読み出し時にエラー数を計数し、エラー数が基準値を超えていれば、不揮発性記憶モジュールの電源投入時または初期化処理に付随して不揮発性メモリのデータをリフレッシュする。これにより、上記従来技術では、不揮発性メモリに記録されたデータの信頼性を一定以上に保ち、かつ、リフレッシュ処理によりデータ読み出し処理速度およびデータ書き込み処理速度が低下しないよう工夫がなされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−９０７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法では、電源投入時や初期化処理といった通常処理に付随してリフレッシュを実行するため、不揮発性メモリのメモリ領域の広範囲のデータ領域をリフレッシュする必要がある場合、リフレッシュ処理の実行時間が長くなり、規格制約を守れなくなるという課題がある。このとき、規格制約に収まるようリフレッシュ時間を制限すると、十分なリフレッシュ時間を確保できず長期間リフレッシュされなかった領域でデータが消失してしまうおそれがある。また、フラッシュメモリの多値化に伴うデータ保持特性の悪化によって、上述のようなデータ消失の危険性は今後更に増大する。
一方、リフレッシュ等のデータメンテナンス処理実行には、ある程度の電力消費を伴うため、特に、ポータブル機器においては、バッテリの残量も考慮した上でメンテナンス処理を実行することが望ましい。ところが、従来技術においては、メンテナンス実行に際し、バッテリ残量等の条件は考慮されていない。
【０００７】
そこで、本発明は、上記問題点を鑑み、データ保持特性を高め、かつ、ポータブル機器を含む多様な機器への適用性を高めたアクセス装置、不揮発性記憶装置、不揮発性記憶装置に用いられるメモリコントローラおよび不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の発明は、不揮発性記憶メモリを含む不揮発性記憶装置へアクセスするアクセス装置であって、適応型命令部を備える。
適応型命令部は、不揮発性記憶装置から取得した不揮発性メモリのデータ保持状態に基づいて、不揮発性メモリに対するデータのメンテナンス処理の要否を判断するとともに、アクセス装置のシステム状態とメンテナンス処理の要否とに基づいて、メンテナンス処理の実行可否を決定し、メンテナンス実行を決定した場合、不揮発性記憶装置に対して、メンテナンス実行命令を発行する。
このアクセス装置では、適応型命令部により、アクセス装置のシステム状態に基づいて、メンテナンス処理が実行可否を決定し、メンテナンス実行を決定した場合、不揮発性記憶装置に対して、メンテナンス実行命令が発行されるので、例えば、アクセス装置と不揮発性記憶装置から構成される不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンス処理を実行することができる。
【０００９】
その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、不揮発性記憶装置におけるデータ保持特性を高めることができる。
第２の発明は、第１の発明であって、適応型命令部は、システムステータス監視部と、メンテナンス判断部と、命令発行部と、を備える。
システムステータス監視部は、アクセス装置のシステム状態を監視する。メンテナンス判断部は、システムステータス監視部の監視結果とメンテナンス処理の要否とに基づいて、メンテナンス実行可否を決定する。命令発行部は、メンテナンス判断部の決定結果に応じて、不揮発性記憶装置に対してメンテナンス実行命令を発行する。
第３の発明は、第２の発明であって、システムステータス監視部は、アクセス装置の処理状態を監視し、通常処理が行われていないと判断した場合、メンテナンス処理が実行可能な状態であることを、メンテナンス判断部に通知する。メンテナンス判断部は、メンテナンス処理が「要」である場合に、システムステータス監視部からメンテナンス処理が実行可能な状態であることを通知されると、メンテナンス実行を決定する。命令発行部は、メンテナンス実行が決定された場合、不揮発性記憶装置に対してメンテナンス実行命令を発行する。
【００１０】
このアクセス装置では、適応型命令部により、アクセス装置のシステム状態に基づいて、メンテナンス処理の実行可否を決定し、メンテナンス処理が「要」（必要）である場合、不揮発性記憶装置に対して、メンテナンス実行命令が発行されるので、例えば、アクセス装置と不揮発性記憶装置から構成される不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンス処理を実行することができる。
その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、不揮発性記憶装置におけるデータ保持特性を高めることができる。
なお、「通常処理」とは、不揮発性記憶装置に対する初期化処理、データ読み出し処理、データ書き出し処理等のアクセス装置と不揮発性記憶装置との間で所定以上の通信量が発生する処理をいう。つまり、このアクセス装置では、「通常処理が行われていない」状態で、不揮発性記憶装置に対してメンテナンス処理を行うので、アクセス装置と不揮発性記憶装置とにより構成される不揮発性記憶システムにおける処理パフォーマンスを低下させることなく、メンテナンス処理を実行することができる。
【００１１】
第４の発明は、第２の発明であって、メンテナンス判断部は、メンテナンス処理が必要な不揮発性メモリのアドレスを保持し、システムステータス監視部によりメンテナンス処理が実行可能である状態を通知された場合、保持しているアドレスからメンテナンス処理を実行するアドレスを選択する。命令発行部は、メンテナンス判断部により選択された不揮発性メモリのアドレスに対して、メンテナンス処理を実行するためのメンテナンス実行命令を発行する。
第５の発明は、第２の発明であって、アクセス装置のシステム制御を行うシステム制御部をさらに備える。メンテナンス判断部は、メンテナンス処理が必要な不揮発性メモリのアドレスを保持し、保持している不揮発性メモリのアドレスに関する情報をシステム制御部に通知する。
【００１２】
第６の発明は、第５の発明であって、アクセス装置に電源を供給する電源部をさらに備える。
システム制御部は、保持している不揮発性メモリのアドレスに関する情報に基づいて、電源部により最低限確保すべきバッテリ残量を決定し、決定した最低限のバッテリ量を保持するように、電源部およびアクセス装置に対する制御を行う。
このアクセス装置では、バッテリ残量等のシステム管理状態を監視しながら、メンテナンス処理の実行可否を判断するため、例えば、メンテナンス処理の途中で、バッテリがなくなり、メンテナンス処理の途中でバッテリ残量がなくなりメンテナンス処理の途中でシステムダウンするリスクを低減することができる。
第７の発明は、第４の発明であって、不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備える。メンテナンス判断部は、データ管理情報格納部の情報を参照することで、不揮発性メモリのデータ状態に応じて、保持しているアドレスのメンテナンス処理順序を変更する。
【００１３】
このアクセス装置では、不揮発性メモリのデータ状態に応じて、メンテナンス処理順序を変更するので、例えば、メンテナンス処理をする必要性の高い不揮発性メモリのメモリ領域から順番にメンテナンス処理を実行することができる。その結果、このアクセス装置では、データ保持特性を高めることができる。
第８の発明は、第４の発明であって、不揮発性メモリ内のデータ管理情報を保持するデータ管理情報格納部をさらに備える。メンテナンス判断部は、データ管理情報格納部の情報を参照することで、不揮発性メモリのデータ状態に応じて、不揮発性装置より不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的にメンテナンス処理が必要なアドレスを決定し保持する。
このアクセス装置では、アクセス装置が管理している不揮発性メモリのデータ状態に応じて、不揮発性装置より不揮発性メモリのデータ状態に関する情報を受け取らなくても自発的にメンテナンス処理が必要なアドレスを決定し保持することができるので、メンテナンス処理を、アクセス装置主導で行うことができる。例えば、アクセス装置が、不揮発性記憶メモリの所定のアドレスに対する書き込み履歴を管理することで、不揮発性メモリのどのアドレスに対してメンテナンス処理を行うべきかを、アクセス装置単独で判断することができる。これにより、不揮発性メモリに対するデータ保持性を高めることができる。
【００１４】
第９の発明は、第１から第８のいずれかの発明であって、メンテナンス処理は、不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である。
第１０の発明は、アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置に用いられ、不揮発性記憶装置の不揮発性メモリに対してデータの読み出し処理／書き込み処理を行うメモリコントローラであって、誤り訂正部と、メンテナンス要求部と、を備える。
誤り訂正部は、不揮発性メモリから読み出したデータに含まれる誤りの数を計測し、読み出したデータに含まれる誤りを訂正する。メンテナンス要求部は、誤り訂正部で計測された誤りの数が基準値以上の場合、アクセス装置に対して、不揮発性メモリにおいてメンテナンス処理が必要であることを示すメンテナンス要求を発行する。
【００１５】
そして、メンテナンス要求部は、不揮発性メモリに保持されているデータ状態に応じて動的にメンテナンス要求の基準値を変更する。また、メンテナンス処理は、不揮発性メモリに対するリフレッシュ処理および／又はウェアレベリング処理である。
第１１の発明は、アクセス装置からの指示によりデータの読み出し処理／書き込み処理を行う不揮発性記憶装置であって、データを記憶する不揮発性メモリと、第１０の発明であるメモリコントローラと、を備える。
第１２の発明は、不揮発性メモリと、該メモリへのデータの読み出し処理／書き込み処理を行うメモリコントローラとを有する不揮発性記憶装置と、不揮発性記憶メモリを含む前記不揮発性記憶装置と通信可能なアクセス装置とを備える不揮発性記憶システムにおいて、第１１の発明である不揮発性記憶装置と、第１から第９のいずれかの発明であるアクセス装置とを備える不揮発性記憶システムである。
【発明の効果】
【００１６】
本発明によれば、アクセス装置が不揮発性記憶装置から不揮発性メモリの状態を受け取り、不揮発性記憶システムの状態に合わせて通常処理に付随せずデータメンテナンスを実行できる。その結果、十分な実行時間を確保した上でメンテナンス処理を実行することができ、データ保持特性を高めることができる。さらに、バッテリ残量等のシステム管理状態を確実にメンテナンスが完了されるよう制御することもできる。
これによって、ポータブル機器等においても確実なデータメンテナンス処理実行が可能になる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る不揮発性記憶システム１０００の概略構成図
【図２】不揮発性記憶モジュール１００におけるデータメンテナンス要求発行のフローチャート
【図３】適応型命令部１５０におけるデータメンテナンス命令発行のフローチャート
【図４】不揮発性記憶モジュール１００におけるデータメンテナンス実行のフローチャート
【図５】第２実施形態に係る不揮発性記憶システム２０００の概略構成図
【図６】適応型命令部５３０におけるシステム制御通知及びデータメンテナンス命令発行のフローチャート
【図７】第３実施形態に係る不揮発性記憶システム３０００の概略構成図
【図８】適応型命令部７１０におけるアドレス優先度付け及びデータメンテナンス命令発行のフローチャート
【図９】適応型命令部７１０における自発的データメンテナンス命令発行のフローチャート
【図１０】第４実施形態に係る不揮発性記憶システム４０００の概略構成図
【図１１】不揮発性記憶モジュール１００Ａにおけるメンテナンス要否判断及びメンテナンス要求発行のフローチャート
【図１２】第５実施形態に係る不揮発性記憶システム５０００の概略構成図
【図１３】命令発行部１２１１におけるデータ読み出し命令発行のフローチャート
【発明を実施するための形態】
【００１８】
本発明の実施形態について、以下、図面を参照しながら説明する。なお、各実施形態において、以前に説明した符号の説明は省略する。
［第１実施形態］
＜１．１：不揮発性記憶システムの構成＞
図１は、本発明の第１実施形態に係る不揮発性記憶システム１０００を示すブロック図である。
本実施形態に係る不揮発性記憶システム１０００は、図１に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）１３０と、を備え、不揮発性記憶モジュール１００とアクセスモジュール１３０とは、バスＢ１により接続されており、相互に通信することができる。
【００１９】
不揮発性記憶モジュール１００は、メモリコントローラ１１０と、不揮発性メモリ１２０と、を含む。
アクセスモジュール１３０は、バスＢ１および不揮発性記憶モジュール１００のメモリコントローラ１１０を介して、不揮発性メモリ１２０に対して、ユーザデータ（以下、単に「データ」という）の読み書き命令、論理アドレスおよびデータを送信する。
（１．１．１：メモリコントローラ１１０の内部構成）
まず、メモリコントローラ１１０の内部構成について説明する。
メモリコントローラ１１０は、不揮発性記憶モジュール１００を制御するものであり、ホストインターフェース部（ホストＩ／Ｆ部）１１１と、ＣＰＵ１１２と、読み書き制御部１１３と、誤り訂正部１１４と、メンテナンス要求部１１５とを含み、各機能部は、図１に示すように内部バスＢ２により接続されている。なお、メモリコントローラ１１０において、各機能部は、必ずしもバス接続されている必要はなく、各機能部の全部または一部が直接接続されるものであってもよい。
【００２０】
ホストＩ／Ｆ部１１１は、アクセスモジュール１３０から不揮発性記憶モジュール１００へ送信されるデータ読み書き命令やデータ等を受信し、また、不揮発性記憶モジュール１００からアクセスモジュール１３０へデータ等を送信する。
ＣＰＵ１１２は、ワーク用ＲＡＭ（不図示）やプログラムを格納したＲＯＭ（不図示）を用いて、メモリコントローラ１１０の全体制御を行う。
読み書き制御部１１３は、不揮発性メモリ１２０へのデータの読み書きを制御する。
誤り訂正部１１４は、不揮発性メモリ１２０へ書き込まれるデータに対しＥＣＣを算出し、また、不揮発性メモリ１２０から読み出されるデータに対しては、ＥＣＣを用いて誤り検出・訂正及び誤り計数を行う。誤り訂正部１１４の機能は、ＣＰＵ１１２によって、ソフトウェア処理で実現することもできる。
【００２１】
メンテナンス要求部１１５は、誤り訂正部１１４による誤り計数結果を用いて、不揮発性メモリ１２０内の読み出された領域（ブロック単位）のメンテナンス要否を判断し、メンテナンスが必要であると判断した場合は、メンテナンス実行要求をアクセスモジュール１３０へ送信する。
メンテナンス要求には、メンテナンス必要ブロックの論理アドレスが含まれ、メンテナンス要求は、ホストＩ／Ｆ部１１１を通じてアクセスモジュール１３０へ送信される。
（１．１．２：アクセスモジュール１３０の内部構成）
次に、アクセスモジュール１３０の内部構成について説明する。
アクセスモジュール１３０は、システム制御部１４０と、適応型命令部１５０と、を備える。
【００２２】
システム制御部１４０は、読み書き命令等の実行制御やその他システム状態の管理等、アクセスモジュール１３０の全体を制御する。
適応型命令部１５０の内部構成について説明する。
適応型命令部１５０は、システムステータス監視部１５１と、メンテナンス判断部１５２と、命令発行部１５４と、を有する。
システムステータス監視部１５１は、アクセスモジュール１３０のシステムステータス（データ転送を行っているか等）の状態を監視し、システムステータスの状態に関する情報をメンテナンス判断部１５２に通知する。
メンテナンス判断部１５２は、メンテナンス要求部１１５より送信されたメンテナンス要求に含まれる論理アドレスをメンテナンス実行リスト１５３に保持し、システムステータス監視部１５１より通知されたシステムステータスの状態に関する情報に基づいて、アクセスモジュール１３０が不揮発性記憶モジュール１００との間で通常処理（初期化処理、データ読み出し処理、データ書き出し処理等）を行っていないことを検知すると、「メンテナンス実行可能」と判断する。
【００２３】
その際、適応型命令部１５０の命令発行部１５４は、メンテナンス実行リスト１５３に保持されているアドレスに対してリフレッシュ等のデータ保持用メンテナンス処理を実行させるためのメンテナンス実行命令を生成する。そして、適応型命令部１５０は、不揮発性記憶モジュール１００へ、命令発行部１５４が生成したメンテナンス実行命令を送信する。
メンテナンス実行命令には、メンテナンス実行リスト１５３に保持されているメンテナンスが必要なブロック（以下、「メンテナンス必要ブロック」という）の論理アドレスが含まれ、メンテナンス実行命令は、ホストＩ／Ｆ部１１１を通じて不揮発性記憶モジュール１００へ送信される。
＜１．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム１０００における、データメンテナンス実行サイクルを図２〜図４に示すフローチャートを用いて説明する。
【００２４】
図２は、不揮発性記憶モジュール１００における、データメンテナンス要求サイクルを示す。図３は、アクセスモジュール１３０の適応型命令部１５０における、データメンテナンス命令発行サイクルを示す。図４は、不揮発性記憶モジュール１００における、データメンテナンス実行サイクルを示す。
なお、簡単のため、本実施形態におけるデータメンテナンスに関わる操作の流れについてのみ説明する。
（１．２．１：データメンテナンス要求サイクル）
（Ｓ２０１）：
不揮発性記憶システム１０００では、図２に示すように、アクセスモジュール１３０から不揮発性記憶モジュール１００に対し、読み出しデータのアドレス（論理アドレス）を含む有効なデータ読み出し命令が発行されると、読み書き制御部１１３は、不揮発性メモリ１２０内の指定されたアドレス（アクセスモジュール１３０から指示された論理アドレスに対応する物理アドレス）からデータとそのデータのＥＣＣとを読み出し、誤り訂正部１１４に送る。
【００２５】
誤り訂正部１１４は、読み出されたデータに対し誤り検出及び誤り数の計数を行い、誤りがあればデータを訂正する。誤り訂正処理が完了すると、ＣＰＵ１１２は、データを誤り訂正部１１４からアクセスモジュール１３０へ送信し、データ読み出し処理を完了する（Ｓ２０１）。
（Ｓ２０２、Ｓ２０３）：
不揮発性記憶システム１０００において、データ読み出し処理が完了すると、読み出したデータに対しメンテナンスの要否が判断される。
まず、誤り訂正部１１４は、データの誤りの有無を判断し（Ｓ２０２）、誤りがあれば、メンテナンス要求部１１５に誤り数を通知する（Ｓ２０３）。一方、誤りがなければ、誤り訂正部１１４は、メンテナンス要否判断を終了する。
（Ｓ２０４、Ｓ２０５）：
メンテナンス要求部１１５は、通知された誤り数より、読み出した領域のメンテナンス要否判断を行う。メンテナンス要否は、誤り数が基準値以上であるか否かによって判断され（Ｓ２０４）、基準値以上であれば、メンテナンス要求部１１５は、アクセスモジュール１３０へメンテナンス要求を送信し（Ｓ２０５）、メンテナンス要否判断を終了する。一方、誤り数が基準値未満であれば、メンテナンス不要と判断し、メンテナンス要否判断を終了させる。
【００２６】
（１．２．２：データメンテナンス命令発行サイクル）
次に、アクセスモジュール１３０が不揮発性記憶モジュール１００からメンテナンス要求を受信してからメンテナンス実行命令を発行するまでの流れを、図３を用いて説明する。
（Ｓ３０１、Ｓ３０２）：
アクセスモジュール１３０が不揮発性記憶モジュール１００よりメンテナンス要求を受信すると（Ｓ３０１）、メンテナンス判断部１５２は、メンテナンス実行リスト１５３に、メンテナンス要求に含まれているメンテナンス必要ブロックの論理アドレスを登録する（Ｓ３０２）。なお、不揮発性記憶モジュール１００からアクセスモジュール１３０に送信されるメンテナンス要求には、メンテナンス必要ブロックを特定するための情報と、メンテナンス処理が実行された場合の不揮発性記憶モジュール１００での処理時間に関する情報と、を含めることが好ましい。「メンテナンス必要ブロックを特定するための情報」とは、例えば、メンテナンス必要ブロックの論理アドレスや、メンテナンス必要ブロックの開始論理アドレスとメンテナンス必要ブロックのサイズや、メンテナンス必要ブロックの開始論理アドレスとメンテナンス必要ブロックの終了論理アドレス等である。
（Ｓ３０３〜Ｓ３０５）：
システムステータス監視部１５１は、メンテナンス実行リスト１５３にアドレスが保持されていれば、システム制御部１４０より不揮発性記憶システム１０００のシステムステータスを取得し（Ｓ３０３）、システムが通常処理中かどうかを判定する（Ｓ３０４）。
【００２７】
システムステータス監視部１５１は、システムステータスが通常処理中であると判定した場合、一定期間待機し（Ｓ３０５）、再びシステムステータスの取得を行う（Ｓ３０３）。
（Ｓ３０６〜Ｓ３０８）：
システムステータス監視部１５１は、システムステータスが通常処理中でないと判定した場合、システムステータス監視部１５１は、メンテナンス実行可能状態であることをメンテナンス判断部１５２に通知する（Ｓ３０６）。そして、メンテナンス判断部１５２は、メンテナンス実行リスト１５３に保持しているメンテナンス必要ブロックのアドレスを用いて、メンテナンス実行命令するよう命令発行部１５４に指示する。命令発行部１５４は、メンテナンス判断部１５２からの指示に従い、メンテナンス実行命令を作成し出力する（Ｓ３０７）。
【００２８】
適応型命令部１５０は、命令発行部１５４が生成したメンテナンス実行命令を不揮発性記憶モジュール１００へ送信する（Ｓ３０８）。
（Ｓ３０９〜Ｓ３１１）：
その後、アクセスモジュール１３０が不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ３０９）、メンテナンス判断部１５２は、メンテナンスを実行完了したアドレスをメンテナンス実行リスト１５３より削除する（Ｓ３１０）。
ここで、メンテナンス実行リスト１５３に登録済みアドレスの有無を確認し（Ｓ３１１）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し、データメンテナンス命令発行サイクルを終了する。一方、登録されているアドレスが存在すれば、システム状態の取得（Ｓ３０３）に戻る。
【００２９】
（１．２．３：データメンテナンス実行サイクル）
次に、不揮発性記憶モジュール１００がアクセスモジュール１３０からメンテナンス実行命令を受信してからメンテナンス処理を実行完了するまでの流れを、図４を用いて説明する。
（Ｓ４０１〜Ｓ４０３）：
不揮発性記憶モジュール１００がアクセスモジュール１３０からメンテナンス実行命令を受信すると（Ｓ４０１）、読み書き制御部１１３は、メンテナンス実行命令に含まれる不揮発性メモリ１２０の指定されたアドレス（論理アドレス）のデータに対し、リフレッシュ等のメンテナンス処理を実行する（Ｓ４０２）。具体的には、読み書き制御部１１３は、論理アドレス／物理アドレス変換処理を行うことで、メンテナンス実行命令に含まれる不揮発性メモリ１２０の指定されたアドレス（論理アドレス）を、その論理アドレスに対応する不揮発性メモリ１２０の物理アドレスに変換する。そして、読み書き制御部１１３は、論理アドレス／物理アドレス変換処理により取得された不揮発性メモリ１２０の物理アドレスのデータに対して、リフレッシュ等のメンテナンス処理を実行する。
【００３０】
メンテナンス処理が完了すると、不揮発性記憶モジュール１００は、アクセスモジュール１３０へメンテナンス完了通知を送信し（Ｓ４０３）、メンテナンス処理を終了する。
メンテナンス完了通知には、メンテナンス処理を実行完了した不揮発性メモリ１２０のブロックの論理アドレスが含まれる。
本実施形態に係る不揮発性記憶システム１０００では、メンテナンス要否を判断する誤り数の基準値は、誤り訂正能力の限界値に基づいて設定され、かつ、データ保持期間や処理速度への影響も考慮して決定される。
以上により、本実施形態に係る不揮発性記憶システム１０００においては、システムの通常処理に付随せず、十分な時間を確保した上でデータメンテナンスを実行することで、データ消失の危険を回避し、データ保持特性を高めることができる。
【００３１】
なお、誤り数の単位は、ビット単位としてもよいし、複数ビットを単位としたシンボル単位としてもよい。
また、システムステータスは、システムステータス監視部１５１により取得してもよいし、システム制御部１４０から適応型命令部１５０に通知するようにしてもよい。
また、メンテナンス要求には、単一ブロックのアドレスだけでなく、複数ブロックの論理アドレスを単位として含めるようにしてもよい。その場合、メンテナンス実行リスト１５３にアドレスを登録する際に、メンテナンスの必要な領域がブロック単位なのか複数ブロック単位なのかを示す情報も登録するようにしてもよい。
また、メンテナンス実行命令は、単一ブロックアドレス毎に発行されるものに限定されることはなく、例えば、不揮発性記憶システム１０００において、複数ブロックのアドレスをまとめて一つのメンテナンス実行命令を発行するようにしてもよい。
【００３２】
また、メンテナンス処理は、単一ブロックアドレス毎に実行されるだけでなく、複数のブロックから構成される論理ブロックを単位として実行してもよい。
また、不揮発性記憶システム１０００において、アクセスモジュール１３０が、複数の不揮発性記憶モジュール１００に接続される場合、メンテナンス判断部１５２は、複数の不揮発性記憶モジュール１００のそれぞれに対応するメンテナンス実行リスト１５３を保持するようにしてもよい。この場合、例えば、複数の不揮発性記憶モジュール１００のそれぞれに個別のＩＤ（識別子）を割り振り、メンテナンス判断部１５２は、当該ＩＤ（識別子）により、メンテナンス実行リスト１５３を管理するようにすれば、１つのアクセスモジュール１３０で、複数の不揮発性記憶モジュール１００を管理することができる。
［第２実施形態］
＜２．１：不揮発性記憶システムの構成＞
図５に、本発明の第２実施形態に係る不揮発性記憶システム２０００のブロック図を示す。
【００３３】
不揮発性記憶システム２０００は、図５に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）５００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール５００とは、バスＢ１により接続されており、相互に通信することができる。
本実施形態において、第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は第１実施形態と同じ構成である。アクセスモジュール５００は、システム制御部５１０と、電源部５２０と、適応型命令部５３０と、を含む。
電源部５２０は、アクセスモジュール５００だけでなく不揮発性記憶モジュール１００へも電力を供給する。
【００３４】
システム制御部５１０は、読み書き命令等の実行制御や電源部５２０の電源管理、その他システム状態の管理等、アクセスモジュール５００の全体を制御する。
適応型命令部５３０について、第１実施形態との差異を説明する。
適応型命令部５３０は、メンテナンス判断部５３１を含む。
メンテナンス判断部５３１は、第１実施形態のメンテナンス判断部１５２の機能に加え、メンテナンス実行リスト１５３が更新された際に保持しているアドレス数からメンテナンス実行必要回数を決定し、システム制御部５１０に通知することができる。
＜２．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム２０００における、データメンテナンス実行サイクルを、図６に示すフローチャートを用いて説明する。
【００３５】
図６は、アクセスモジュール５００の適応型命令部５３０における、データメンテナンス命令発行サイクルを示す。なお、簡単のため、第１実施形態と同様の箇所は説明を省略する。
（２．２．１：データメンテナンス要求サイクル）
（Ｓ６０１、Ｓ６０２）：
不揮発性記憶システム２０００では、図６に示すように、まず、アクセスモジュール５００が、不揮発性記憶モジュール１００からメンテナンス要求を受信する（Ｓ６０１）。そして、メンテナンス判断部５３１がメンテナンス実行リスト１５３にメンテナンス必要ブロックの論理アドレスを登録する（Ｓ６０２）。
（Ｓ６０３）：
メンテナンス判断部５３１は、メンテナンス実行リスト１５３に登録されているアドレス数より、メンテナンス実行必要回数を決定し、システム制御部５１０に通知する（Ｓ６０３）。
【００３６】
システム制御部５１０は、通知されたメンテナンス実行必要回数を基にその回数分のメンテナンス処理を実行するのに最低限確保すべきバッテリ残量を決定し、その残量を保持するよう電源部５２０及びシステム全体を管理する。
（Ｓ６０４）：
次に、メンテナンス処理が実行される（Ｓ６０４）。なお、Ｓ６０４での処理は、第１実施形態で説明した図３におけるＳ３０３〜Ｓ３０８の処理と同様である。
（Ｓ６０５〜Ｓ６０８）：
メンテナンス処理が完了し、アクセスモジュール５００が、不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ６０５）、メンテナンス判断部５３１は、メンテナンスを実行完了したアドレスをメンテナンス実行リスト１５３より削除する（Ｓ６０６）。
【００３７】
ここで、メンテナンス判断部５３１は、メンテナンス実行リスト１５３に登録済みアドレスの有無を確認し（Ｓ６０７）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し、メンテナンス実行必要回数が０回であることをシステム制御部５１０に通知する（Ｓ６０８）。
この通知により、システム制御部５１０は、バッテリ残量確保等のシステム制約を解除する。つまり、この段階で、さらなるメンテナンス実行は不要であると判断できるので、システム制御部５１０は、バッテリ残量確保するために、例えば、不揮発性記憶システム２０００を省電力モードで動作させていたのを通常のモード（省電力モードではないモード）での動作にするよう制御することができる。
一方、Ｓ６０７において登録されているアドレスが存在すれば、メンテナンス実行必要回数を通知するステップ（Ｓ６０３）に戻る。
【００３８】
以上により、本実施形態の不揮発性記憶システム２０００では、メンテナンス実行状況をシステム制御に反映させることで、例えば、予めバッテリの残量を確保しておく等、必要なメンテナンス処理を確実に完了できるようにシステムを制御することができる。その結果、不揮発性記憶システム２０００では、データ保持特性を高めることが可能である。
なお、メンテナンス判断部５３１で決定されるメンテナンス実行必要回数は、リストに登録されているアドレス数としてもよいし、複数ブロックアドレスをまとめて一つのメンテナンス実行命令を発行することを考慮して決定された数にしてもよい。
なお、システム制御部５１０で決定される確保すべきバッテリ残量は、アクセスモジュール５００に接続されている不揮発性記憶モジュール１００の不揮発性メモリの種別やブロック長の設定等に基づいて算出されるものであってもよいし、システム制御部５１０が予め算出した１回のメンテナンスに必要な消費電力に関する情報を保持しておき、その保持している情報によって決定されるものであってもよい。
【００３９】
なお、システム制御部５１０は、バッテリ残量を確保するため、省電力モードへの移行条件を変更してもよい。例えば、システム制御部５１０は、バッテリ残量がＸ１％以下になると、省電力モードに移行するという条件を、バッテリ残量がＸ２％以下（Ｘ２＞Ｘ１）になると、省電力モードに移行するという条件に変更し、バッテリ残量がなくなるまでのマージンを大きくすることで、より確実にメンテナンス処理を実行することができる（メンテナンス処理の途中でバッテリ残量がなくなりメンテナンス処理の途中でシステムダウンするリスクを低減することができる）。また、アクセスモジュール５００が表示部を備える場合は、システム制御部５１０は、バッテリ残量表示を変更してユーザに電源供給を促すようにしてもよい。
また、システム制御部５１０は、保持しているバッテリ残量が確保すべき残量に近づいてきたと判断した場合、通常処理実行前に、優先して必要なメンテナンス処理を全て完了するよう制御するようにしてもよい。
【００４０】
［第３実施形態］
＜３．１：不揮発性記憶システムの構成＞
図７に、本発明の第３実施形態に係る不揮発性記憶システム３０００のブロック図を示す。
本実施形態に係る不揮発性記憶システム３０００は、図７に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）７００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール７００とは、バスＢ１により接続されており、相互に通信することができる。
第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は、第１実施形態と同じ構成である。
【００４１】
アクセスモジュール７００は、システム制御部１４０と、適応型命令部７１０と、メモリ７２０と、を含む。
メモリ７２０は、データ管理情報格納部７２１を含む。
データ管理情報格納部７２１には、不揮発性メモリ１２０に保持されているデータの重要度や、不揮発性メモリ１２０への書き込み履歴（書き込んだ時間情報）等がアドレスと共に保持されている。これらはアクセスモジュール７００が不揮発性メモリ１２０にデータを書き込む際に更新される。
適応型命令部７１０について、第１実施形態との差異を説明する。
適応型命令部７１０は、メンテナンス判断部７１１を含む。
メンテナンス判断部７１１は、第１実施形態のメンテナンス判断部１５２の機能に加え、メンテナンス実行リスト７１２に保持している複数のアドレスのそれぞれのアドレスを、優先度を付与して、登録する。このアドレスに付与された優先度は、メンテナンス処理を実行するときの優先度であり、優先度の高いアドレスからメンテナンス処理が実行される。優先度の付与において、適応型命令部７１０は、データ管理情報格納部７２１に保持されているデータ重要度等の情報を参照する。適応型命令部７１０は、メンテナンス実行命令を作成する際は、メンテナンス実行リスト７１２において、優先度の高いアドレス（論理アドレス）から順にメンテナンス処理が実行されるようにメンテナンス実行命令を作成する。
【００４２】
＜３．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム３０００における、データメンテナンス実行サイクルを図８に示すフローチャートを用いて説明する。
（３．２．１：データメンテナンス実行サイクル（その１））
図８は、アクセスモジュール７００の適応型命令部７１０における、データメンテナンス命令発行サイクルを示す。なお、簡単のため、第１実施形態と同様の箇所は説明を省略する。また、データ管理情報格納部７２１には、不揮発性メモリ１２０にデータを書き込む際に登録されたデータ重要度等の情報が、保持されているものとする。
（Ｓ８０１〜Ｓ８０３）：
不揮発性記憶システム３０００では、図８に示すように、まず、アクセスモジュール７００が、不揮発性記憶モジュールからメンテナンス要求を受信する（Ｓ８０１）。そして、メンテナンス判断部７１１がメンテナンス実行リスト７１２にメンテナンス必要ブロックの論理アドレスを登録する（Ｓ８０２）。このとき、メンテナンス判断部７１１は、データ管理情報格納部７２１に保持されているデータ重要度等の情報を参照し、登録したアドレスに対し、メンテナンス実行の優先度を付与する（Ｓ８０３）。
【００４３】
例えば、登録した論理アドレスのデータ重要度をデータ管理情報格納部７２１から検索し、重要度が高く設定されていれば優先度も高く登録する。
（Ｓ８０４）：
次に、システム状態の取得が行われる（Ｓ８０４）。なお、Ｓ８０４での処理は、第１実施形態で説明した図３におけるＳ３０３〜Ｓ３０５の処理と同様である。
（Ｓ８０５〜Ｓ８０７）：
システムステータスが通常処理中でなければ、システムステータス監視部１５１は、メンテナンス実行可能状態であることをメンテナンス判断部７１１に通知する（Ｓ８０５）。そして、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に保持しているメンテナンス必要ブロックのアドレスで優先度の高いものからメンテナンス実行命令を生成するよう命令発行部１５４に指示し、命令発行部１５４は、メンテナンス判断部７１１の指示に従い、メンテナンス実行命令を生成し出力する（Ｓ８０６）。そして、適応型命令部７１０は、命令発行部１５４が生成したメンテナンス実行命令を不揮発性記憶モジュール１００へ送信する（Ｓ８０７）。
（Ｓ８０８〜Ｓ８１０）：
その後、アクセスモジュール７００が不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ８０８）、メンテナンス判断部７１１は、メンテナンスを実行完了したアドレス、及びその優先度をメンテナンス実行リスト７１２より削除する（Ｓ８０９）。
【００４４】
ここで、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に登録済みアドレスの有無を確認し（Ｓ８１０）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し処理を終了する。一方、登録されているアドレスが存在すれば、システム状態取得処理（Ｓ８０４）に戻る。
（３．２．２：データメンテナンス実行サイクル（その２））
また、本実施形態の不揮発性記憶システム３０００における、別のデータメンテナンス実行サイクルを、図９に示すフローチャートを用いて説明する。なお、簡単のため、本実施形態で先に述べたデータメンテナンス実行サイクルと同様の箇所は説明を省略する。
（Ｓ９０１）：
不揮発性記憶システム３０００では、図９に示すように、まず、メンテナンス判断部７１１が、データ管理情報格納部７２１に保持されている書き込み履歴（前回当該アドレスにデータを書き込んだ時間情報）を取得する（Ｓ９０１）。
（Ｓ９０２、９０３）：
メンテナンス判断部７１１は、書き込み履歴から経過時間を算出し、経過時間がデータ保持のための基準値以上であるか否かを判定し（Ｓ９０２）、基準値以上であると判定した場合は、メンテナンス実行リスト７１２にアドレスとその優先度とを登録する（Ｓ９０３）。
【００４５】
ここで、基準値は、不揮発性メモリ１２０のデータ保持特性により設定されるものであり、初期化時等に不揮発性記憶モジュール１００とアクセスモジュール７００との間でデータ保持特性等のデバイス情報を交換することで、アクセスモジュール７００は、決定された基準値を予め取得・保持しているものとする。
（Ｓ９０４〜Ｓ９０７）：
その後、不揮発性記憶システム３０００において、メンテナンス処理が実行され、アクセスモジュール７００が、不揮発性記憶モジュール１００よりメンテナンス完了通知を受信すると（Ｓ９０４）、メンテナンス判断部７１１は、メンテナンスを実行完了したアドレス及びその優先度をメンテナンス実行リスト７１２より削除し（Ｓ９０５）、さらに、データ管理情報格納部７２１の書き込み履歴を更新する（Ｓ９０６）。
【００４６】
ここで、メンテナンス判断部７１１は、メンテナンス実行リスト７１２に登録済みアドレスの有無を確認し（Ｓ９０７）、登録されているアドレスがなければ、全てのメンテナンス実行が完了したと判断し処理を終了する。一方、登録されているアドレスが存在すれば、システム状態取得処理（Ｓ９０４）に戻る。
以上により、本実施形態に係る不揮発性記憶システム３０００においては、アクセスモジュール７００が重要データの論理アドレスを管理し、メンテナンス実行の際に重要なものから処理するように優先度を付けることで、重要なデータをより確実に保持できるようになる。
さらに、不揮発性記憶システム３０００において、アクセスモジュール７００が書き込み履歴を論理アドレス毎に管理し、書き込み後長時間経過したものについては、不揮発性記憶モジュール１００からのメンテナンス要求がなくても自発的にメンテナンスを行うことで、データ読み出しが長時間行われていない不揮発性メモリ１２０のデータ領域についても、データ消失の危険を回避させることができる。
【００４７】
なお、データ重要度は、重要なデータにのみフラグを立ててもよいし、複数の重要度レベルを設定してもよい。
また、データ重要度は単一ブロックのアドレス毎に設定してもよいし、複数ブロックの論理アドレスを単位として設定してもよい。
また、メンテナンス実行の優先度は、メンテナンス実行リスト７１２に保持せず、メンテナンス実行の都度、データ管理情報格納部７２１に格納されている情報を参照するようにしてもよい。
また、データ重要度や書き込み履歴は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域に書き込まれたデータについてのみ保持するようにしてもよい。
【００４８】
［第４実施形態］
＜４．１：不揮発性記憶システムの構成＞
図１０に、本発明の第４実施形態に係る不揮発性記憶システム４０００のブロック図を示す。
不揮発性記憶システム４０００は、図１０に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００Ａと、アクセスモジュール（アクセス装置）１３０と、を備え、不揮発性記憶モジュール１００Ａとアクセスモジュール１３０とは、バスＢ１により接続されており、相互に通信することができる。
本実施形態において、第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
【００４９】
アクセスモジュール１３０は、第１実施形態と同じ構成である。
不揮発性記憶モジュール１００Ａは、メモリコントローラ１０１０と、不揮発性メモリ１０２０と、を含む。
不揮発性メモリ１０２０には、第３実施形態で示したメモリ７２０と同様に、データ管理情報格納部１０２１が含まれる。
データ管理情報格納部１０２１には、不揮発性メモリ１２０に保持されているデータの重要度等がアドレスと共に保持されている。これらは、アクセスモジュール１３０が不揮発性メモリ１２０にデータを書き込む際、データと共に書き込まれる。
次に、メモリコントローラ１０１０について、第１実施形態との差異を説明する。
メモリコントローラ１０１０は、メンテナンス要求部１０１１を含む。
【００５０】
メンテナンス要求部１０１１は、第１実施形態のメンテナンス要求部１１５の機能に加え、読み出したデータのメンテナンス要否を判断する際、データ管理情報格納部１０２１に保持されているデータ重要度等の情報を参照し、参照した情報に基づいて、メンテナンス要否の判断基準を動的に変更する。
＜４．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム４０００における、データメンテナンス要求サイクルを、図１１に示すフローチャートを用いて説明する。
（４．２．１：データメンテナンス要求サイクル）
図１１は、不揮発性記憶モジュール１００Ａにおける、データメンテナンス要求サイクルを示す。なお簡単のため、前述の実施形態と同様の箇所は説明を省略する。
（Ｓ１１０１〜Ｓ１１０３）：
不揮発性記憶システム４０００では、図１１に示すように、データ読み出し処理（Ｓ１１０１）からデータの誤り数通知（Ｓ１１０３）までは、第１実施形態と同様である。
（Ｓ１１０４）：
メンテナンス要求部１０１１は、誤り訂正部１１４から誤り数を通知されると、データ管理情報格納部１０２１を参照して読み出したデータの重要度等を取得し、得られた重要度に合わせてメンテナンス要否の基準値を設定する（Ｓ１１０４）。
（Ｓ１１０５、Ｓ１１０６）：
その後、メンテナンス要求部１０１１は、誤り数が基準値以上であるか否かによってメンテナンス要否を判断する（Ｓ１１０５）。そして、誤り数が基準値以上であれば、メンテナンス要求部１０１１は、アクセスモジュール１３０へメンテナンス要求を送信し（Ｓ１１０６）、メンテナンス要否判断を終了する。一方、誤り数が基準値未満であれば、メンテナンス要求部１０１１は、メンテナンス不要と判断し、メンテナンス要否判断を終了する。
【００５１】
以上により、本実施形態に係る不揮発性記憶システム４０００においては、メンテナンス要否の基準値をデータの重要度によって動的に変更することで、重要なデータに関してのみ誤り数が訂正限界値に達しないよう余裕をもってメンテナンス要求を行え、効率よくデータ保持特性を向上できる。
また、不揮発性記憶システム４０００では、データ重要度等の管理情報を不揮発性メモリ１０２０に保持することで、異なるアクセスモジュール間で管理情報を共有でき、より確実に重要なデータを消失しないよう保持することができる。この場合は、アクセスモジュール１３０が電源断時等に最新のデータ管理情報を不揮発性メモリ１０２０に格納し、また、アクセスモジュール１３０は、初期化時に不揮発性メモリ１２０からデータ管理情報を読み出す。
【００５２】
なお、データ重要度は、重要なデータにのみフラグを立ててもよいし、複数の重要度レベルを設定してもよい。
また、データ重要度は、単一ブロックのアドレス毎に設定してもよいし、複数ブロックの論理アドレスを単位として設定してもよい。
また、メンテナンス要否の基準値は、重要なものとそうでないものとを示す２値の情報により設定されるものであってもよいし、データ重要度の設定に合わせて複数の基準値により設定されるものであってもよい。ただし、重要なデータに関しても、不必要なメンテナンスが発生しないような基準値を設定することが望ましい。
また、データ重要度は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域に書き込まれたデータについてのみ保持するようにしてもよい。
【００５３】
［第５実施形態］
＜５．１：不揮発性記憶システムの構成＞
図１２に、本発明の第５実施形態に係る不揮発性記憶システム５０００のブロック図を示す。
本実施形態に係る不揮発性記憶システム５０００は、図１２に示すように、不揮発性記憶モジュール（不揮発性記憶装置）１００と、アクセスモジュール（アクセス装置）１２００と、を備え、不揮発性記憶モジュール１００とアクセスモジュール１２００とは、バスＢ１により接続されており、相互に通信することができる。
第１実施形態と同様の構成要素については、図１と同じ番号を付し説明を省略する。
不揮発性記憶モジュール１００は、第１実施形態と同じ構成である。
【００５４】
アクセスモジュール１２００は、適応型命令部１２１０と、メモリ１２２０と、を含む。
メモリ１２２０は、データ管理情報格納部１２２１を含む。
データ管理情報格納部１２２１には、不揮発性メモリ１２０へのアクセス履歴（メモリに対し読み書きした時間情報）等がアドレスと共に保持されている。これらはアクセスモジュール１２００が不揮発性メモリ１２０にデータを読み書きする際に更新される。
適応型命令部１２１０について、第１実施形態との差異を説明する。
適応型命令部１２１０は、命令発行部１２１１を含む。
命令発行部１２１１は、第１実施形態の命令発行部１５４の機能に加え、以下の処理を実行する。すなわち、命令発行部１２１１は、データ管理情報格納部１２２１に保持されているアクセス履歴を参照し、長時間データの書き込みも読み出しもされていない領域を検出し、検出した当該領域（長時間データの書き込みも読み出しもされていない領域）を処理対象とするデータ読み出し命令を発行する。これにより、不揮発性記憶モジュール１００に対して、図２に示すデータメンテナンス要求サイクルを実行させることができ、長時間アクセスされていない領域でメンテナンスが必要な領域がないかを確認することができる。
【００５５】
＜５．２：不揮発性記憶システムの動作＞
以上のように構成された不揮発性記憶システム５０００における、データ読み出し実行サイクルを図１３に示すフローチャートを用いて説明する。
（５．２．１：データ読み出しサイクル）
図１３は、アクセスモジュール１２００の命令発行部１２１１における、データ読み出し命令発行サイクルを示す。
（Ｓ１３０１）：
不揮発性記憶システム５０００では、図１３に示すように、まず、命令発行部１２１１が、データ管理情報格納部１２２１に保持されているアクセス履歴（前回当該アドレスに対しデータを読み書きした時間情報）を取得する（Ｓ１３０１）。
（Ｓ１３０２、１３０３）：
命令発行部１２１１は、アクセス履歴から経過時間を算出し、経過時間がデータ保持のための基準値以上であるか否かを判定する（Ｓ１３０２）。命令発行部１２１１は、基準値以上であると判定した場合は、当該アドレスに対するデータ読み出し命令を作成し（Ｓ１３０３）、作成した当該データ読み出し命令を不揮発性記憶モジュール１００に対し発行する（Ｓ１３０４）。
【００５６】
ここで、基準値は、不揮発性メモリ１２０のデータ保持特性により設定されるものであり、初期化時等に不揮発性記憶モジュール１００とアクセスモジュール１２００との間でデータ保持特性等のデバイス情報を交換することで、アクセスモジュール１２００は、決定された基準値を予め取得・保持しているものとする。
（Ｓ１３０５〜Ｓ１３０６）：
その後、不揮発性記憶システム５０００において、データ読み出し処理が実行され（Ｓ１３０５）、読み出しが完了すると命令発行部１２１１は、読み出したアドレスに対してアドレスデータ管理情報格納部１２２１のアクセス履歴を更新する（Ｓ１３０６）。
以上により、本実施形態に係る不揮発性記憶システム５０００においては、アクセスモジュール１２００が不揮発性メモリ１２０へのアクセス履歴を論理アドレス毎に管理し、長時間アクセスされていない領域が存在する場合、当該領域へのデータ読み出し命令（当該領域を処理対象とする読み出し命令）を発行する。これにより、不揮発性記憶システム５０００では、不揮発性記憶モジュール１００に対して、長時間アクセスされていない領域でメンテナンスが必要な領域がないかを確認させることができ、データ消失の危険を回避させることができる。
【００５７】
なお、不揮発性記憶システム５０００において、アクセス履歴は、全てのデータについて保持する必要はなく、特定のデータ種別や、特定の領域のデータについてのみ保持するようにしてもよい。
また、不揮発性記憶システム５０００において、データ読み出し命令を発行する際は、単一ブロックのアドレス毎にデータを読み出すようにしてもよいし、複数ブロックの論理アドレスを単位として読み出すようにしてもよい。
［他の実施形態］
なお、上記実施形態で説明した不揮発性記憶システム、不揮発性記憶モジュールおよびアクセスモジュールにおいて、各ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されても良いし、一部又は全部を含むように１チップ化されても良い。
【００５８】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
【００５９】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【産業上の利用可能性】
【００６０】
本発明にかかる不揮発性記憶システムは、フラッシュメモリの多値化に伴う不揮発性メモリのデータ保持期間低下等に起因するデータ消失を防ぐ方法を提案したものである。
これは半導体メモリカードのみならず、不揮発性メモリを備えた静止画記録再生装置や動画記録再生装置及び携帯情報端末等においても有用である。
【符号の説明】
【００６１】
１０００、２０００、３０００、４０００、５０００  不揮発性記憶システム
１００、１００Ａ  不揮発性記憶モジュール（不揮発性記憶装置）
１１０、１０１０  メモリコントローラ
１１１  ホストＩ／Ｆ部
１１２  ＣＰＵ
１１３  読み書き制御部
１１４  誤り訂正部
１１５、１０１１  メンテナンス要求部
１２０、１０２０  不揮発性メモリ
１３０、５００、７００、１２００  アクセスモジュール（アクセス装置）
１４０  システム制御部
１５０、５３０、７１０、１２１０  適応型命令部
１５１  システムステータス監視部
１５２、５３１、７１１  メンテナンス判断部
１５３、７１２  メンテナンス実行リスト
１５４，１２１１  命令発行部
５２０  電源部
７２０、１２２０  メモリ
７２１、１０２１、１２２１  データ管理情報格納部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2011013351.tif 000016
【図２】
2011013351.tif 000017
【図３】
2011013351.tif 000018
【図４】
2011013351.tif 000019
【図５】
2011013351.tif 000020
【図６】
2011013351.tif 000021
【図７】
2011013351.tif 000022
【図８】
2011013351.tif 000023
【図９】
2011013351.tif 000024
【図１０】
2011013351.tif 000025
【図１１】
2011013351.tif 000026
【図１２】
2011013351.tif 000027
【図１３】
2011013351.tif 000028
【国際調査報告】
2011013351.tif 000029
2011013351.tif 000030
2011013351.tif 000031
2011013351.tif 000032
2011013351.tif 000033