複数のブロックで構成された不揮発性半導体メモリと、前記不揮発性半導体メモリに接続されており、ブロックにデータを書き込むこと及びブロックからデータをイレースするイレース処理をブロックに対して行うよう構成されているコントローラとを有し、A前記コントローラは、ブロックにデータを最近プログラムした時刻である最近プログラム時刻と、ブロックに対してイレース処理を最近行った時刻である最近イレース時刻との少なくとも一方を表す情報を各ブロックについて含んだ管理情報を記憶しており、B前記コントローラは、b1ブロックの前記最近プログラム時刻と前記最近イレース時刻の少なくとも一方を基に、そのブロックにデータをプログラムするタイミングを制御する、及び/又は、b2ブロックの前記最近プログラム時刻を基に、そのブロックに対してイレース処理を行うタイミングを制御する、半導体記憶装置。請求項1記載の半導体記憶装置であって、前記b2において、前記コントローラは、前記最近プログラム時刻からの時間であるプログラム経過時間が第1の値以上のブロックである対象ブロックにイレース処理を行う、半導体記憶装置。請求項2記載の半導体記憶装置であって、各ブロックは、複数のページで構成されており、ブロック単位でイレース処理が行われページ単位でプログラムが行われるタイプのブロックであり、前記b2に関して、ブロックの前記最近プログラム時刻は、そのブロックの最終ページにデータが最近プログラムされた時刻であり、前記対象ブロックは、論理アドレスに割り当てられている物理アドレスから特定されるページである有効ページを含んでいない無効ブロックである、半導体記憶装置。請求項3記載の半導体記憶装置であって、前記第1の値は、前記複数のブロックの前記プログラム経過時間に基づく値である、半導体記憶装置。請求項4記載の半導体記憶装置であって、C前記コントローラが、信頼性の低下したおそれがありデータがプログラムされているブロックである危険ブロックを検出し、前記b2において、前記コントローラは、前記対象ブロックとして、前記複数のブロックのうち、前記危険ブロックでなく無効ブロックを優先的に選択する、半導体記憶装置。請求項5記載の半導体記憶装置であって、前記b2において、前記コントローラは、b21無効ブロックが選択された回数であるブロック選択数が第2の値未満であれば、無効ブロックを前記対象ブロックとして選択し、前記ブロック選択数を更新し、b22前記ブロック選択数が前記第2の値以上であれば、前記危険ブロックを前記対象ブロックとして選択し、前記ブロック選択数を初期値に戻す、半導体記憶装置。請求項6記載の半導体記憶装置であって、前記危険ブロックは、障害ビットの数が障害ビット閾値以上であるブロックであり、前記Cにおいて、前記コントローラは、複数の障害ビット閾値のうちブロックのプログラム経過時間に対応した障害ビット閾値を特定し、そのブロックの障害ビット数がその特定された障害ビット閾値以上であれば、そのブロックが危険ブロックであると検出する、半導体記憶装置。請求項7記載の半導体記憶装置であって、前記プログラム経過時間として、最終ページにデータを最近プログラムした時刻からの時間である第1の時間の他に、最終ページ以外のページにデータを最近プログラムした時刻からの時間である第2の時間があり、前記Cに関しての前記プログラム経過時間は、前記第2の時間である、半導体記憶装置。請求項1記載の半導体記憶装置であって、前記b1において、前記コントローラは、前記最近イレース時刻からの時間であるイレース経過時間が第3の値未満のイレース済みブロックである対象ブロックにデータをプログラムする、半導体記憶装置。請求項9記載の半導体記憶装置であって、前記b1において、前記コントローラは、前記イレース経過時間が第3の値以上のブロックにイレース処理を行うことで、そのブロックを前記対象ブロックとする、半導体記憶装置。請求項9記載の半導体記憶装置であって、各ブロックは、複数のページで構成されており、ブロック単位でイレース処理が行われページ単位でプログラムが行われるタイプのブロックであり、前記b1に関して、ブロックの前記最近プログラム時刻は、そのブロックの先頭ページにデータが最近プログラムされた時刻である、半導体記憶装置。請求項9記載の半導体記憶装置であって、前記b1において、前記コントローラは、b11少なくとも先頭ページにデータがプログラムされており最終ページにデータがプログラムされていないブロックである途中プログラムブロックが無い場合、前記対象ブロックとして前記イレース済みブロックを選択し、b12前記途中プログラムブロックがある場合、前記途中プログラムブロックの最近プログラム時刻からの時間が第4の値未満であれば、そのプログラム済みの最後尾のページの次のページにデータをプログラムする、半導体記憶装置。請求項12記載の半導体記憶装置であって、前記b2において、前記コントローラは、前記最近プログラム時刻からの時間であるプログラム経過時間が第1の値以上のブロックにイレース処理を行い、それにより、そのブロックが前記イレース済みブロックとなる、半導体記憶装置。複数のブロックで構成された不揮発性半導体メモリの記憶制御方法であって、Aa1ブロックにデータを最近プログラムした時刻である最近プログラム時刻と、ブロックに対してイレース処理を最近行った時刻である最近イレース時刻との少なくとも一方を基に、そのブロックにデータをプログラムするタイミングを制御する、及び/又は、a2ブロックの前記最近プログラム時刻を基に、そのブロックに対してイレース処理を行うタイミングを制御し、Bブロックにデータをプログラムした場合に、そのブロックの最近プログラム時刻を更新する、及び/又は、ブロックに対してイレース処理を行った場合に最近イレース時刻を更新する、記憶制御方法。複数のブロックで構成された不揮発性半導体メモリと通信するためのインターフェース装置と、記憶資源と、前記インターフェース装置及び前記記憶資源に接続されているプロセッサとを有し、前記記憶資源は、ブロックにデータを最近プログラムした時刻である最近プログラム時刻と、ブロックに対してイレース処理を最近行った時刻である最近イレース時刻との少なくとも一方を表す情報を各ブロックについて含んだ管理情報を記憶し、A前記プロセッサは、a1ブロックの前記最近プログラム時刻と前記最近イレース時刻の少なくとも一方を基に、そのブロックにデータをプログラムするタイミングを制御する、及び/又は、a2ブロックの前記最近プログラム時刻を基に、そのブロックに対してイレース処理を行うタイミングを制御し、B前記プロセッサは、ブロックにデータをプログラムした場合に、そのブロックの最近プログラム時刻を更新する、及び/又は、ブロックに対してイレース処理を行った場合に最近イレース時刻を更新する、半導体記憶装置のコントローラ。例えば、不揮発性半導体メモリ典型的にはフラッシュメモリは、複数のブロックより構成され、このブロックを最小イレース単位としている。そして、前述した通り、イレースとプログラムの繰り返しの処理により酸化絶縁膜に電子トラップ及び正孔トラップが生成されるため、ブロック毎にイレース回数の上限が設けられている。一般的に、半導体メモリは、上書きが不可であり、プログラム済みの領域についてイレースが実施されなければ、その領域に再度プログラムすることができない。従って、データがプログラムされているブロックに新たなデータをプログラムする際、必ずイレースがプログラムとセットで実施される。そのため、記憶装置は、ブロックについてイレースを実施した回数以下、ブロックイレース回数と記すをブロック別に管理し、ブロックイレース回数の上限を超えたブロックについては、データ保持期間具体的には、データを信頼性を持って保持できる期間を超えたとして、そのブロックを使用不可とし予備ブロックを代替えとして割り当てる。特定のブロック群に対して、イレースとプログラムが集中した場合、短期間でブロックイレース回数が上限に達し使用不可となるブロックが多数生じてしまう可能性がある。そして、それらのブロックには、予備ブロックを割り当てる必要があるため、予備ブロックが早急に枯渇してしまう。つまり、特定のブロック群へのアクセス集中により、予備ブロックの枯渇が早まり、記憶装置の寿命が短縮してしまうことがある。記憶装置は、このような特定のブロック群に対してプログラムとアクセスが集中するのを防止するため、ブロックへのプログラム処理を分散させ、ブロック毎のイレース回数を平準化する処理を実施する以下、この処理をウェアレベリングと記す。ウェアレベリングは、記憶装置に搭載するブロックのイレース回数の平均値に対して、より少ないイレース回数のブロックへ優先的にデータをプログラムするものである。このため、記憶装置が搭載するブロックのブロックイレース回数の平均値がXXは1以上の整数であり、記憶装置が搭載するブロックの中にブロックイレース回数がYYは、Y<Xを満たす整数であるブロック以下、対象ブロックと記すが存在する場合、この対象ブロックが優先的に使用されることになる。このため、この対象ブロックには、プログラムとイレースが短期間に繰り返される可能性が生じる。一般に、ブロックに対するイレースからそのブロックにデータをプログラムするまでの時間以下、EP間隔と記すが短い方がデータ保持期間は長い。このため、或るブロックのブロックイレース回数が少なくても、そのブロックが優先的に繰り返し使用されることにより、そのブロックについてプログラムからイレースまでの時間以下、PE間隔と記すが短くなることがある。故に、そのブロックのブロックイレース回数が上限値に達していなくても、データ保持期間が経過してしまっているブロックが短時間で多数生じる可能性がある。これにより、記憶装置の寿命が短縮されてしまう可能性が高まる。つまり、ブロックイレース回数をカウントする、及びウェアレベリングだけでは、記憶装置の信頼性を維持することが困難となる場合がある。従って、本発明の目的は、不揮発半導体メモリを記憶媒体とした半導体記憶装置の高信頼化と長寿命化を実現することにある。半導体記憶装置は、ブロックにデータを最近プログラムした時刻である最近プログラム時刻と、ブロックに対してイレース処理を最近行った時刻である最近イレース時刻との少なくとも一方を表す情報を不揮発性半導体メモリの各ブロックについて含んだ管理情報を記憶している。半導体記憶装置は、b1ブロックの最近プログラム時刻と最近イレース時刻の少なくとも一方を基に、そのブロックにデータをプログラムするタイミングを制御する、及び/又は、b2ブロックの最近プログラム時刻を基に、そのブロックに対してイレース処理を行うタイミングを制御する。例えば、半導体記憶装置は、ウェアレベリングによるイレース回数の平準化を実施しながらも半導体記憶装置の通常処理であるプログラムとイレースの各処理の時間的間隔を制御し、最小時間を確保して良い。また、例えば、半導体記憶装置は、各ブロックに対し、プログラムとイレースの各処理の時間的間隔を上位装置例えばホスト計算機からの要求に対して可能な限り長く確保するように制御して良い。また、例えば、データリテンション特性の悪いブロックを検出した際には、半導体記憶装置は、そのブロックの使用頻度を下げるように制御して良い。これにより、電子トラップおよび正孔トラップの減少が期待され、故に、リテンション特性の回復が期待される。本発明によれば、半導体記憶装置の高信頼化と長寿命化を図ることができる。以下、本発明の幾つかの実施例を説明する。なお、以下の説明では、xxxテーブルの表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すためにxxxテーブルをxxx情報と呼ぶことができる。また、以下の説明では、要素を特定するための識別情報として、番号が使用されるが、識別情報として、番号に代えて又は加えて他種の識別情報例えば英文字が使用されて良い。また、以下の説明では、プログラムを主語として処理を説明する場合があるが、プログラムは、プロセッサ例えばCPUCentralProcessingUnitによって実行されることで、定められた処理を、適宜に記憶資源例えばメモリ及び/又は通信インターフェイス装置例えば通信ポートを用いながら行うため、処理の主語がプロセッサとされても良い。プログラムを主語として説明された処理は、そのプロセッサを有する装置例えば、記憶制御装置、記憶装置が行う処理としても良い。また、プロセッサは、CPUのようなマイクロプロセッサに代えて又は加えて、処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各装置にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ、又は、コンピュータ読取可能な記憶メディアであっても良い。また、管理計算機は、一以上の計算機で構成されて良い。例えば、管理計算機が情報を表示する場合、或いは、管理計算機が表示用情報を遠隔の計算機に送信する場合、一つの計算機が管理計算機である。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機表示を表示用計算機が行う場合は表示用計算機を含んで良いが、管理計算機である。また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号のみを用いることとし、同種の要素を区別して説明する場合には、参照符号共通符号と個別符号の組合せを用いることがある。図1は、本発明の第1実施例に係る半導体記憶装置100を含んだ計算機システム1の構成例を示す。なお、半導体メモリは典型的にはFMFlashMemoryであるため、以下、半導体記憶装置をFMモジュールと言う。計算機システム1は、ホスト計算機10と、管理計算機11と、半導体記憶装置以下、FMFlashMemoryモジュールと言う100とを有する。FMモジュール100は、内蔵する第1のFE-IFFrontEndInterface111を介してホスト計算機10に接続され、内蔵する第2のFE-IFを介して111を介して管理計算機11に接続される。FMモジュール100とホスト計算機10間の通信のプロトコルと、FMモジュール100と管理計算機11間の通信のプロトコルは、同じであっても異なっていても良い。ホスト計算機10は、例えば、業務システムの中核をなすコンピュータ、ファイルサーバー、もしくは多数のFMモジュール100が接続されるストレージ装置である。ホスト計算機10は、例えば、図示省略の、プロセッサ、メモリ、ネットワークインターフェース、及びローカル入出力用のデバイス等のハードウェア資源を備えている。また、ホスト計算機10は、デバイスドライバ、OSOperatingSystem、管理プログラム、及びアプリケーションプログラム等のソフトウェア資源も備えている。ホスト計算機10のプロセッサが各種プログラムソフトウェア資源を実行することができる。例えば、ホスト計算機10のプロセッサがアプリケーションプログラムを実行することで、ホスト計算機10が、FMモジュール100との通信を行う、及びFMモジュール100に対するデータのリードライトコマンドを発行することができる。また、例えば、ホスト計算機10のプロセッサが管理用プログラムを実行することで、ホスト計算機10が、FMモジュール100の使用状況、及び処理状況等の管理情報を取得することができる。また、ホスト計算機10は、FMモジュール100の管理単位、制御方法の指定、及び制御方法の変更をすることができる。管理計算機11は、計算機システム1全体を管理することができる。管理計算機11は、例えば、図示省略の、キーボードやマウスなどの入力装置、プロセッサ、液晶ディスプレイ装置などの表示装置、及びメモリ等の記憶資源を備えている。その記憶資源には、各種プログラムが記憶され、このプログラムがプロセッサにより実行され、各種機能が実現される。FMモジュール100は、FMコントローラ110と、複数個の不揮発性半導体メモリチップ以下、単にメモリチップと言う120を備える。複数のメモリチップ120を基に複数のRAIDグループが構成されても良い。RAIDグループは、2以上のメモリチップ120で構成されて良い。RAIDグループを基に、論理ボリュームが構成されて良い。論理ボリュームは、ホスト計算機10に提供されても良いし、ホスト計算機10に提供されない種類の論理ボリューム例えばプールを構成する論理ボリュームであるプールボリュームであっても良い。プールボリュームは、2以上の領域以下、実領域に分割されて良い。実領域は、ThinProvisoningに従う仮想的な論理ボリュームを構成する仮想領域に割り当てられて良い。プールを構成する複数のプールボリュームのうちの少なくとも1つは、FMモジュール100に接続されている外部のストレージ装置図示せずの論理ボリュームがマッピングされた仮想的な論理ボリュームであっても良い。FMコントローラ110は、本実施例では、FMモジュール100に内蔵されたコントローラであるが、FMモジュール100の外部に存在する計算機であっても良い。FMコントローラ110は、FE-IFFrontEndInterface111と、データ転送を相互に行うスイッチ112と、記憶資源例えば、データバッファ113と、RAMRandomAccessMemory114と、プロセッサ115と、FM-IFFlashMemoryInterface116とを備えている。スイッチ112は、プロセッサ115、RAM114、データバッファ113、FE-IF111、及びFM-IF116を接続し、データをアドレス又はIDによってルーティングし転送する。FE-IF111は、スイッチ112を介してFMコントローラ110の各構成要素と、ホスト計算機10及び管理計算機11とを接続する。FE-IF111は、ホスト計算機10から、リードライトコマンド、及び対象の論理的な格納位置を指定するLBALogicalBlockAddressを受信する。ライトコマンドをホスト計算機10から受けたFE-IF111は、ホスト計算機10からライトデータも受信する。また、FE-IF111は、ホスト計算機10及び管理計算機11から、FMモジュール100に対する制御用のコマンド等を受領し、そのコマンドに応じてFMモジュール100を制御する。また、FE-IF111は、FMモジュール100の処理状況、利用状況、及び現在の設定値等を、ホスト計算機10及び管理計算機11に通知する。データバッファ113は、FMコントローラ110でのデータ転送処理途中の一時的なデータを格納する。RAM114は、具体的にはDRAMDynamicRandomAccessMemoryなどの揮発性メモリである。RAM114は、FMモジュール100で用いられるメモリチップ120の管理情報1140、及び各DMADirectMemoryAccessが用いる転送制御情報を含んだ転送リスト等を格納する。なお、RAM114は、データを格納するデータバッファ113の機能の一部又は全てを含み、データの一時的な格納先として用いることもできる。プロセッサ115は、スイッチ112を介してFMコントローラ110の各構成要素と接続され、RAM114に記憶されたプログラム及び管理情報を基に、FMコントローラ110の全体を制御する。また、プロセッサ115は、定期的な情報取得、及び割り込み受信機能等により、FMコントローラ110の全体を監視する。FM-IF116は、複数バス例えば16本によってメモリチップ120と接続される。各バスには複数例えば2本のメモリチップ120を接続される。各バスに接続された各メモリは、CE信号に基づき独立して制御される。FM-IF116は、プロセッサ115から指示されるリードライトコマンドに応じて処理する。このときFM-IF116は、コマンドの対象を物理アドレスによって指示される。PBAを受領したFM-IF116は、このPBAから必要なメモリチップ120ブロック、ページを算出し、メモリチップ120に対してブロック、及びページを指定して、リードライトコマンドを処理する。FM-IF116は、リード処理時には、メモリチップ120からデータをリードし、データバッファ113に転送する。また、FM-IF116は、ライト処理時には、ライトデータをデータバッファ113から呼び出し、メモリチップ120にライトする。また、FM-IF116は、ECCErrorCorrectingCode生成回路、ECCによるデータ損失検出回路、及びECC訂正回路を有している。FM-IF116は、ライト処理時にはデータに対してECCを付加してライトする。また、FM-IF116は、データ呼び出し時にはECCによるデータ損失検出回路によって、メモリチップ120からの呼び出しデータを検査する。データ損失が検出された際には、FM-IF116は、ECC訂正回路によってデータ訂正を行い、訂正bit数をプロセッサ115に通知する為、訂正bit数をRAM114に記憶する。以上説明した、FE-IF111、スイッチ112、データバッファ113、RAM114、プロセッサ115、及びFM-IF116は、ASICApplicationSpecificIntegratedCircuitやFPGAとして、一つの半導体素子内で構成してもよいし、複数の個別専用ICを相互に接続した構成であってもよい。図2は、メモリチップ120の構成例を示す。メモリチップ120は、複数例えば、4096個のブロック202で構成される。各ブロック202は、複数のページで構成される。メモリチップ120は、ブロック単位でイレース処理が行われ、ページ単位でデータのリード/プログラムが行われる。メモリチップ120は、例えば、ブロック単位でデータのイレースが可能なNAND型のフラッシュメモリである。フラッシュメモリは、NAND型でなくて良い例えばNOR型でも良い。メモリチップ120は、レジスタ201を備える。レジスタ201は、ページサイズ例えば4KB付加ECC用の予備領域以上の記憶容量を持つレジスタである。メモリチップ120は、FM-IF116からのリードライトコマンドの指示に従って処理する。ライト処理において、メモリチップ120は、まず、FM-IF116より、ライトコマンド及びライト先情報例えば、ライトコマンドの対象ブロック、ページ番号、及びページ内のプログラム開始位置を表す情報を受信する。次に、メモリチップ120は、FM-IF116より転送されるライトデータを、ページ内のプログラム開始位置アドレス順に、レジスタ201に格納する。その後、レジスタ201は、FM-IF116からデータ転送完了のコマンドを受領すると、レジスタ201に格納されたデータを、指定されたメモリチップ120ページにライトプログラムする。リード処理において、メモリチップ120は、まず、FM-IF116からリードコマンド及びリード元情報例えば、リードコマンドの対象のブロック、及びページ番号を受信する。次に、メモリチップ120は、指定されたブロック202のページに格納されたデータをリードし、レジスタ201に格納する。その後、レジスタ201は、レジスタ201に格納されたデータを、FM-IF116に対して転送する。図3は、ブロック202の内部構成例を示す。ブロック202は、複数例えば128ページのページ301に分かれており、データの読み出し、及びデータのライトは、ページ単位でのみ処理可能である。また、ブロック202内のページ301を書き込む順序は規定されており、図では、ページ1から順番に連続的にデータが書き込まれる。FMモジュール100では、ホスト計算機10が指定するLBAと、FMモジュール100の内部における物理的な記憶位置を指定するアドレスPBAPhysicalBlockAddressとを、それぞれ別のアドレス体系によって管理すると共に、LBAとPBAとの対応関係をテーブル情報として管理する図5参照。FMモジュール100では、また、ライト済みページへの上書きを行うことができず、そのページが属するブロックに対してイレース処理を実施しなければ、再びそのページにライトすることはできない。従って、データを更新する際には、更新前にLBAに対応付けられていたページを新たなページに変更し、その新たなページにデータをライトする。ホスト計算機10は、このように、LBAに新たなページが対応付けられたことは分からない。なお、更新前にLBAに対応付けられていたページは無効ページとなる。また、PBAはFMモジュール100の任意のページを一意に指定でき、少なくとも1ブロック分のデータサイズ範囲内はページ番号順にアドレスが連続するアドレス体系である。例えば、あるブロックの3ページ目を指定するPBAに対して1ページ分のデータサイズをインクリメントすると4ページ目を指定するPBAとなる。図4は、ページ301に格納されるデータの例を示す。ページ301は、一定bit数のデータを記憶する。ページ301には、データ401に加えてFM-IF116で付加されたECCErrorCorrectingCode402を格納している。ECCは、保護するデータ401以下、保護データと言うに対して隣接して記憶される。データ1401と、データ1401に付加されたECC402を1セットとして、ECCCWを構成するように記憶される。なお、図4には1ページにECCCWを4個格納した構成について示したが、ページサイズや、ECCの性能訂正可能bit数に合わせて、任意の数とすることができる。また、上記構成においてデータ損失障害とは、1つのECCCW当たりの障害ビット数が、そのECCCWを構成するECCの訂正可能なbit数を超過した際に生じる現象である。以上、FMモジュール100の構成、及びFMモジュール100のデータの記憶構成について説明した。図5は、アドレス変換テーブル500の一例を示す。アドレス変換テーブル500は、FMモジュール100のRAM114に記憶された管理情報1140のうちの1つである。アドレス変換テーブル500は、ページ図5の例では4KB毎に、LBA501と、PBA502とを対応付けて管理する。LBA501は、1ページに記憶されるデータの先頭アドレスを示す。PBA502は、メモリチップ120を構成するページを一意に特定するアドレスを示す。なお、PBA502が対応付けられていない場合、LBA501には、未割当であることを示す情報が格納される。本実施例では、FMコントローラ110は、LBA501に対応するページに新たなデータが書かれる度に、そのLBA501に、そのLBA501に対応付けられているPBA502に代えて新たなPBA502を対応付ける。FMコントローラ110は、ホスト計算機10から指定されたLBA501に新たなPBA502を対応付けて、アドレス変換テーブル500に登録する。なお、図5では、ページサイズ単位でLBA501とPBAと502とを対応付けた例を示したが、本発明はこの単位に限定されるものではない。例えば、LBA501とPBA502とを、ブロックサイズの単位で対応付けることもできる。続いて、本実施例における特徴的な時間制御を実施する為の管理情報について説明する。図6は、ブロック管理テーブル600の一例を示す。ブロック管理テーブル600は、FMモジュール100のRAM114に記憶された管理情報のうちの1つであるブロック管理テーブル600は、ブロック図6の例では1MB202毎に、PBAGroup601、チップ番号602、ブロック番号603、イレース回数604、前回イレース日時605、Firstページプログラム日時606、Lastページプログラム日時607、最終プログラムページ608、及び無効ページ数609を対応付けて管理する。PBAGroup601は、ブロック202図2参照の先頭アドレス先頭PBAを示す。チップ番号602は、ブロック202を有するメモリチップ120の番号を示す。本実施例においては、図6に示すように、アドレスが早いPBAGroup601から順番に、アドレスの早いチップ番号602を順番に対応付けている。ブロック番号603は、ブロックの番号を示す。本実施例においては、図6に示すように、アドレスが早いPBAGroup601から順番に、アドレスの早いブロック番号603を順番に対応付けている。イレース回数604は、Block番号603により特定されるブロックに実施されたイレース処理の回数を示す。ここでイレース処理とは、ブロック202に存在する全てのデータをイレースすること、及び、ブロック202にデータが存在しなくてもブロック202内のデータを再イレースすることを示す。本実施例においては、イレース処理が実施される度に、イレース回数604が1ずつインクリメントされる。前回イレース日時605は、ブロック番号603により特定されるブロックに対してイレース処理が最近実施された日時を示す。本実施例においては、ブロックに対してイレース処理をした時に、そのイレース処理の日時が前回イレース日時605として登録される。Firstページプログラム日時606は、ブロック番号603により特定されるブロックの先頭ページに対してデータがプログラムされた日時を示す。ここでプログラムとは、レジスタ201からブロック202ページ301にデータが書き込まれることを示す。本実施例においては、先頭ページにデータがプログラムされる時に、そのプログラムの日時が、Firstページプログラム日時606として登録される。なお、先頭ページに対してプログラムが実施されていないブロックには全ページイレース状態、又は、未書き込みであることを示す値が、Firstページプログラム日時606に登録される。以後、ホスト計算機10からFMモジュール100にデータを書き込むことをライトと言い、FMモジュール100内においてデータを書き込むことをプログラムと言う。Lastページプログラム日時607は、ブロック番号603により特定されるブロック202の最終ページにデータがプログラムされた日時を示す。本実施例においては、最終ページにデータがプログラムされる度に、そのプログラム時の日時がLastページプログラム日時607として登録される。なお、最終ページへのプログラムが実施されていないブロック202に関しては、ブロック内の全ページへの書き込みが未完了であることを示す値が、Lastページプログラム日時607として登録される。最終プログラムページ608は、ブロック番号603により特定されるブロックにおいて、現時点までにプログラムが終了したページの番号を示す。本実施例においては、この最終プログラムページ608の値を1つインクリメントすることで、次のプログラム先のページ301が特定される。なお、ブロック202内の全ページ301にデータがプログラムされている場合、最終プログラムページ608には、最終ページの番号が登録される。なお、そのブロック202には、イレース処理がされるまでデータをプログラムすることができない。無効ページ数609は、ブロック番号603により特定されるブロック202のうちの無効ページLBA501に対応づけられていないページの数を示す。メモリチップ120は、上書き更新不可の為、ホスト計算機10がLBA501に対してデータ更新を行う際、LBA501に対して新たなPBA502が対応付けられる図5参照。そして、この新たに対応付けられたPBA502に対応するページ301に、データがプログラムされる。このため、更新前のデータをプログラムしたページ301は、LBA501との対応付けを失い、ホスト計算機10から参照されることのない無効ページとなる。本実施例では、こうした無効ページの数がブロック202毎に管理され、この無効ページの数に基づいて、後述するリクラメーションの対象とするブロック202が選定される。以上が、ブロック管理テーブル600についての説明である。なお、本実施例では、図6に示す全ての情報を用いる例について説明するが、ブロック管理テーブル600は、必ずしも図6に示す全種類の情報により構築されている必要はない。メモリチップ120への命令間隔制御における制御対象としてプログラムとイレースの間の時間、イレースとプログラムの間の時間、イレースと次回イレースの間の時間、及びプログラムと次回プログラムの間の時間等複数が考えられるが、このうち制御対象とする時間により、図6に示す各情報欄の一部のみにより構築されるとしてもよい。例えば、制御対象をプログラムとイレースの間の時間とした場合、ブロック管理テーブル600は、Lastページプログラム日時607のみにより構築されるとしてもよい。また、テーブル600のサイズは大きくなるが、ページ毎に、プログラム日時を表す情報がテーブル600に登録されても良い。そして、PE間隔或いはEP間隔について、プログラム日時は、必ずしも先頭又は最終のページのプログラム日時ではなく、先頭及び最終のページ以外のプログラムの日時が、PE間隔或いはEP間隔についてのプログラム日時として採用されても良い。また、ブロック管理テーブル600の各種情報601~609は、必ずしも、RAM113に記録されなくてもよい。例えば、PBAGroup601、チップ番号602、ブロック番号603、イレース回数604、前回イレース日時605、Firstページプログラム日時606、及びLastページプログラム日時607については、行ごとに、この行に含まれているブロック番号603により特定されるブロック202の最終ページに記録するとしてもよい。1つのブロック2021つのページ301について、データがプログラムされてからイレースされるまでの時間PE間隔は、長い方が良い。本実施例では、FMコントローラ110は、あるブロック202にプログラムされているデータをイレースしようとするとき、このイレース処理の対象のブロック202を構成するページ301のうち、最後のページ301にデータがプログラムされた時間であるLastページプログラム日時607から現時点までの時間を検出し、この時間が、ある閾値以下、PE閾値以上である場合、イレース処理の対象のブロック202にプログラムされているデータをイレースする。このようにすると、ブロック202を構成する全ページ301のPE間隔を、PE閾値以上となるように制御することができる。それは、最後のページ301よりも前のページ301は、データがプログラムされてから現時点までの時間が、最後のページ301よりも必ず長くなるからである。つまり、ブロック202について最後のページ301のPE間隔が、そのブロック202について最短のPE間隔となり、そのブロック202について最初のページ301のPE間隔が、そのブロック202んついて最長のPE間隔となる。ページ301又はセル:ページ301を構成する単位毎に、プログラム日時を管理することが望ましいが、管理情報が膨大となってしまう。ブロック202を構成する全てのページのプログラム日時を管理するのではなく、本実施例の様に、最終ページについてプログラム日時を管理し、これに基づきPE間隔を算出することで、管理情報1140のサイズが膨大となるのを防止しつつ、ブロック202を構成する全てのページについてPE間隔をPE閾値以上に制御することができる。また、ページ301は、データがイレースされてからプログラムされるまでの時間EP間隔は、短い方が良い。本実施例では、データをプログラムしようとしているブロック202プログラム対象のブロックの前回Erase日時605から現時点までの時間を検出し、この時間が、ある閾値以下、EP閾値以下である場合、プログラム対象のブロック202にデータをプログラムする。これにより、EP間隔をEP閾値以下に制御することができる。なお、EP間隔前回Erase日時605から現時点までの時間がEP閾値を越えているブロック202がある場合、FMコントローラ110は、そのブロック202にデータがプログラムされていなくても、そのブロック202に対してイレース処理を実行する。これにより、前回Erase日時605が現在日時に更新されるので、EP間隔が初期値例えばゼロにリセットされる。図7は、ウェアレベリング管理キュー700の一例を示す。ウェアレベリング管理キュー700は、RAM114に記憶された管理情報の1つである。ウェアレベリング管理キュー700は、ブロック202PBAGroupのイレース回数を一定数毎にレベル分けにより管理する。ウェアレベリング管理キュー700は、イレース回数範囲701と、PBAGroup702とを関連付けて管理する。イレース回数範囲701は、イレース回数の範囲イレース回数の上限及び下限の少なくとも一方を示す。図7では、FMモジュール100に搭載された全ブロック202のイレース回数の統計例えば平均値に基づき、5つのレベルに分けた例が示されている。つまり、イレース回数範囲は、FMモジュール100に搭載された全ブロック202のイレース回数の平均値によって異なる。イレース回数範囲は、定期的に又は不定期的に更新されて良い。図7では、例えば、最もイレース回数の少ないレベルイレース回数範囲は、平均値より201回以上イレース回数の少ない範囲であり、以後、イレース回数:200回毎にイレース範囲が区切られている。ブロックのイレース回数を平準化するウェアレベリングでは、イレース回数の少ないブロック群から優先してブロックを利用することでなるべく小さいレベルに属するブロックを優先的に利用することで、イレース回数の平準化を実現する。PBAGroup702は、イレース回数範囲701に属するブロック202の先頭アドレスを示す。PBAGroup702は、FIFOfirstInFirstOut型のキューとして登録されており、キューの最後尾に新たにPBAGroup702が登録される。そして、ブロック利用時には、時系列的に最も前に登録されたブロックが使用され、先に登録された全ブロックが利用されるまで、キューの最後尾に登録されたブロックは選択されない。なお、本実施例では、図7に示すイレース回数を200回毎に5段階にレベル分けする例について示したが、本発明はこのレベル分けに限定されるものではない。例えば、要求されるイレース回数の平準化の精度により、如何なる範囲でも分類することもできる。また、イレース回数範囲は必ずしも均等でなくて良い。例えば、或るイレース回数範囲は200回であるが、別のイレース回数範囲は150回でも良い。以上が、本実施例で用いられる管理情報についての説明である。図8は、RAM114に記憶されるプログラムの例を示す。RAM114には、I/OInputOutputプログラム1141、リクラメーションプログラム1142、及びイレースプログラム1143が記憶される。これらプログラムは、プロセッサ115により実行されることにより、各種機能が実現される。これら、プログラムの詳しい説明は、フローチャートを用いて後述する。図9は、イレース処理の制御の概要を示す。FMコントローラ110は、FMモジュール100が搭載する各メモリチップ120を構成するブロック202の無効ページ数609をチェックし、無効ページ数609が基準値より多いブロックを検出するステップS1。基準値は、所定の閾値でも良いし、或いは、全ブロック202の無効ページ数の平均値であっても良い。つまり、S1では、無効ページ数が絶対的及び/又は相対的に多いブロックが検出される。ここでは、ブロック202Aが検出されたとする。次に、FMコントローラ110は、検出したブロック202AのLastページプログラム日時607から現時点までの時間を算出し、その算出した時間経過時間がPE閾値以上であるかをチェックするS2。図示の例によれば、PE閾値は3hh:時間である。ブロック202Aは、Lastページプログラム日時607が2010/4.14/9:00である。現在時刻が2010/4.14/13:00であることから、現在までの時間は4hである。この場合、FMコントローラ110は、ブロック202Aは、最後にプログラムされてからの時間がPE閾値以上となっていると判断する。従って、FMコントローラ110は、ブロック202Aに対してイレース処理を実行するS3。一方、FMコントローラ110は、ブロック202Bを検出してもS5、ブロック202Bについてはイレース処理を行わない。すなわち、ブロック202BのLastページプログラム日時607は2010/4.14/11:00であり、現在時刻が2010/4.14/13:00であることから、現在までの時間は2hである。その時間2hは、PE閾値3h以上ではない。このため、FMコントローラ110は、ブロック202Bに対してイレース処理を実施しないS6。FMコントローラ110は、ブロック202Bに関しては、Lastページプログラム日時607から現在までの時間がPE閾値以上となった場合、ブロック202Bに対してイレース処理を実行する。このように、Lastページプログラム日時607から現在日時までの時間がPE閾値以上ではないブロックに対して、イレース処理が行われない。このため、ブロックのPE間隔がPE閾値になるよう保証される。図10は、プログラム処理の制御の概要を示す。FMコントローラ110は、イレース処理後にデータが書き込まれていないブロック以下、イレース済みブロック202Cを検出するS11。FMコントローラ110は、そのブロック202Cの前回イレース日時605から現時点までの時間を算出し、算出した時間が、EP閾値以下か否かをチェックするS12。図示の例では、EP閾値が5hである。ブロック202Cの前回イレース日時605が2010/4.15/9:00である。現在時刻が2010/4.15/13:00であることから、現在までの時間経過時間は4hである。この場合、FMコントローラ110は、ブロック202Cの前回イレース日時605からの時間がEP閾値以下であると判断する。この場合、FMコントローラ110は、ブロック202Cの先頭ページにデータをプログラムするS13。一方、FMコントローラ110は、イレース済みブロック202Dを検出してもS14、ブロック202Dの先頭ページにデータをプログラムせず、ブロック202Dに対してイレース処理を行う。具体的には、ブロック202Dの前回イレース日時605は2010/4.15/5:00である。現在時刻が2010/4.15/13:00であることから、現在までの時間は8hである。この場合、FMコントローラ110は、ブロック202Dの前回イレース日時605からの時間8hがEP閾値を超えていると判断するS15。この場合、FMコントローラ110は、ブロック202Dの先頭ページにデータをプログラムせず、ブロック202Dに対してイレース処理を行うS16。このように、前回イレース日時605からの時間がEP閾値を超えているイレース済みブロックの先頭ページにデータが書き込まれない。このため、EP間隔がEP閾値を超えているブロックが生じてしまうことを回避することができる。以下、本実施例で行われる処理の詳細を説明する。図11は、プログラム処理のフローの一例を示す。プロセッサ115は、例えば、I/Oプログラム1141を実行することにより、図11を参照して説明する処理を行うことができる。FMモジュール100は、ホスト計算機10よりライト対象のデータ、及びライト対象領域を指定するLBAを含んだライトコマンドを受信するS1101。より具体的には、FE-IF111を介して、ライトコマンドが、ホスト計算機10からプロセッサ115に通知される。次に、プロセッサ115は、FE-IF111にライト対象のデータを、データバッファ113に書き込むよう指示する。FE-IF111は、ホスト計算機10からのライト対象のデータをデータバッファ113にプログラムする。次に、プロセッサ115は、S1101にて受信したLBAに対応付けるPBAを取得するS1102。この処理は、本実施例の特徴的な処理であるため、詳細については後述する。プロセッサ115が、FM-IF116にECCの生成を指示するS1103。次に、FM-IF116は、ライト対象のデータを、データバッファ113よりECCの保護データ長単位で読み出し、FM-IF116の内部のECC生成回路により、保護データ長毎にECCを算出し、データバッファ113にプログラムする。プロセッサ115は、ステップS1103にて生成したECCとS1101にて受領したライト対象のデータを、データバッファ113からメモリチップ120に転送し、プログラムを実施するS1104。具体的には、プロセッサ115は、FM-IF116にライト対象のデータ、及びそれに対して生成したECCを、メモリチップ120に転送し、FM-IF116にプログラムを実施するように指示する。次に、指示を受けたFM-IF116は、データバッファ113よりライト対象のデータとECCを読み出し、メモリチップ120に転送し、メモリチップ120にプログラムを指示する。メモリチップ120は、その指示に従い、データをプログラムする。データのプログラム先は、S1102で特定されたPBAに対応するページである。S1101にて受領したLBAと、S1102にて取得したPBAの対応付けの為、プロセッサ115は、アドレス変換テーブル図5参照を更新するS1105。この処理により、ホスト計算機10からのLBAに対して対応付けられたPBAの取得が可能となる。具体的には、プロセッサ115が、アドレス変換テーブル500から、ライトコマンドで指定されているLBAに適合するLBA501を探索し、見つかったLBA501に対応するPBA502として、S1102にて取得したPBAを登録する。プロセッサ115は、ブロック管理テーブル600を更新するS1106。具体的には、下記が行われる。S1106-1プロセッサ115が、S1102にて取得したPBAに適合するPBAGroupを、ブロック管理テーブル600から探す。S1106-2次に、プロセッサ115は、S1102にて取得したPBAのブロック図11の説明において対象ブロックにおける、S1104にてプログラム先となったページ、のページ番号301を取得する。プロセッサ115は、そのページ番号301を、最終プログラムページ608として登録する。S1106-3なお、プロセッサ115は、このページ番号301が対象ブロック202の先頭ページであるとき、ブロック管理テーブル600の該当するFirstページプログラム日時606として、現在日時を表す情報を登録する。或いは、プロセッサ115は、ページ番号301が対象ブロック202の最終ページであるとき、Lastページプログラム日時607として現在日時を表す情報を登録する。以上が、プログラム処理の概要である。次に、本実施例の1つの特徴であるステップS1102について、図12を用いて説明する。イレース処理が実施されてから長い時間が経過、又はページにデータをプログラムしてから長い時間が経過してしまうと、ページ301において初期閾値電圧が変動してしまい、プログラム時にフローティングゲートに対して適切な量の電荷を加えることが困難となり、格納データの信頼性が低下してしまうおそれがある。こうしたメモリチップ120の特性に対して、本実施例では、前回イレース日時からの経過時間、及び先頭ページをプログラムしてからの経過時間を一定時間以内とする制御を行う。図12は、ステップS1102のフローの一例を示す。プロセッサ115が、途中プログラムブロック群から候補ブロックを選択するS1201。具体的には、プロセッサ115が、ブロック管理テーブル600を参照し、最終プログラムページ608が最終ページを示していない複数のブロック202から任意に1つのブロックを選択する。ここで、最終プログラムページ608が最終ページを示していないブロック202が、図12の説明で言う途中プログラムブロックであり、任意に選択された1つのブロックが、図12の説明で言う候補ブロックである。なお、S1201において、プロセッサ115は、イレース回数604が基準値所定の閾値、又は、複数のブロックのイレース回数に基づいて得られた値以上のブロックを、候補ブロックになり得る途中書きブロックとして良い。これにより、イレース回数604が少ないブロック202に対して優先的にプログラムできるので、イレースからの時間経過により生じるデータ保持信頼性の低下を軽減できる。プロセッサ115は、候補ブロックを選択できるか否かを判断するS1202。候補ブロックが取得できる場合S1202:Yes、プロセッサ115は、選択した候補ブロックのFirstページプログラム日時606を特定するS1203。プロセッサ115は、Firstページプログラム日時606から現在までの経過時間を算出するS1204。プロセッサ115は、S1204で算出した経過時間が、予め設定された閾値以下、PP閾値以下かどうかを判断するS1205。経過時間がPP閾値以下である場合S1205:Yes、プロセッサ115は、候補ブロックの最終プログラムページの次のページのPBAを特定するS1206。S1204で算出された時間経過がPP閾値以下である場合、信頼性は保たれているからである。S1204で算出された経過時間がPP閾値を超えている場合S1205:No、プロセッサ115は、S1201で選択したブロックを途中プログラムブロック群から外すS1207。S1204で算出された経過時間がPP閾値を超えている場合、信頼性低下が許容範囲外であるおそれがあるからである。S1207では、具体的には、例えば、プロセッサ115は、S1201で選択したブロックについて、最終プログラムページ608として、最終ページの値を登録し、Lastページプログラム日時607として、現在日時を表す情報を登録して良い。一方、候補ブロックを選択できない場合典型的には、途中プログラムブロックが無い場合S1202:No、プロセッサ115は、ウェアリング管理キュー700を参照して、イレース回数が基準値未満であるブロックを選択するS1208。メモリチップ120は、前述の通り、EP時間が長いと信頼性が低下する特性を有する。この為、プログラムの直前にイレースを実施する制御方法が高信頼化に有効である。しかし、本実施例では、メモリチップ120のイレースにかかる時間はプログラムやリードの時間と比べて長いという特性に基づき、FMモジュール100の性能向上を目的として、イレース処理が施されたブロックが予め用意される。本実施例では、複数のイレース済みブロックが、ウェアレベリング管理キュー700に、イレース回数に応じてレベル分けをして登録される。S1208では、例えば、イレース回数範囲のレベルがなるべく小さいブロックが選択される。プロセッサ115は、S1208で選択したブロックの前回イレース日時605を特定するS1209。プロセッサ115は、S1209で特定した前回イレース日時605から現時点までの経過時間を算出するS1210。プロセッサ115は、S1210で算出した経過時間がEP閾値以下かどうかをチェックするS1211。S1210で算出した経過時間がEP閾値以下である場合S1212:Yes、プロセッサ115は、S1208で取得したブロックのFirstページのPBAを特定するS1213。プロセッサ115は、S1210で算出した経過時間がEP閾値以下でない場合S1212:No、S1208で選択したブロックに対して、イレース処理を実行するS1212。この処理により、前回イレース日時605から現時点までの経過時間が初期値例えばゼロにリセットされることになる。プロセッサ115は、S1212でイレース処理が実行されたブロックのFirstページのPBAを特定するS1213。S1211及びS1212によれば、S1213で特定されたPBAに対応するページを有するブロックは、前回イレース日時605から現時点までの経過時間がEP閾値以下であるブロックであることが保証される。S1206又はS1213で特定されたPBAに対応するページに、図11のS1104でデータがプログラムされる。次に、リード処理について説明する。図13は、リード処理のフローの一例を示す。FMコントローラ110は、ホスト計算機10から、リード対象となるLBA図13の説明で対象LBAを指定したリードコマンドを受信するS1301。プロセッサ115は、アドレス変換テーブル500を参照し、対象LBAに割り当てられたPBAを特定するS1302。プロセッサ115は、S1302にて特定したPBAに対応するページからデータをリードするS1303。具体的には、プロセッサ115が、FM-IF116に対して、リード命令を発行する。命令を受けたFM-IF116は、PBAが示すページを有するメモリチップ120に対して、ブロック202とページ301を指定してデータをリードする。FM-IF116は、S1303でリードしたデータに付随するECC用いて、リードしたデータの整合性を検査する。この検査にて誤りが検出されれば、FM-IF116は、ECCを用いてリードしたデータを修正するS1304。FM-IF116は、リードしたデータをホスト計算機10に転送する。S1304にてデータを修正したのであれば、修正したデータをホスト計算機10に転送するS1305。以上が、本実施例におけるリード処理の説明である。次に、本実施例におけるリクラメーション処理を説明する。リクラメーション処理は、ホスト計算機10からの要求の他にライト処理によっても副次的に生じる。まず、リクラメーション処理の開始契機を説明する。前述の通り、メモリチップ120は、一旦、ページにデータをプログラムすると上書きできないという特性をもつ。この為、同一のLBAに対してライトが実施された際、最終プログラムページの次のページにデータがプログラムされ、アドレス変換テーブル500には、そのLBAに対応するPBAとして、更新前データがプログラムされているページのPBAから、新たにデータがプログラムされたページのPBAが登録される。この制御により、ホスト計算機10に、PBAが変更されたことを意識させることなくデータの更新が実施される。上述の更新ライトが実施されると、更新ライトの度に新たなページを使用する為、FMモジュール100内のプログラムが可能なページが減る。この為、本実施例のFMモジュール100は、FMモジュール100内のプログラムが可能なページが一定量以下となった場合に、リクラメーション処理を実施する。リクラメーション処理は、例えば、プロセッサ115がリクラメーションプログラム1142を実行することによって実施される。具体的には、リクラメーション処理では、下記が実行される。x1プロセッサ115は、基準値以上の無効ページを有するブロックを探す。ここで言う基準値は、所定の閾値であっても良いし、複数のブロックの無効ページ数に基づく値例えば平均値であっても良い。つまり、ここでは、無効ページ数が絶対的又は相対的に多いブロックが探される。無効ページとは、アドレス変換テーブル500にてLBAが対応付けられていないページであって、データがプログラム済みのページである。x2次に、プロセッサは、x1で見つかったブロックに含まれる有効ページアドレス変換テーブル500にてLBAに対応付けられているページ内のデータを他ブロックのページにコピーし、アドレス変換テーブル500のLBAとの対応付けをコピー先のページに更新する。この処理により、x1で見つかったブロック内の全ページが無効ページとされる。つまり、そのブロックが無効ブロックとされる。無効ブロックは、全てのページが無効ページであるブロックである言い換えれば、LBAに割り当てられたPBAから特定される有効ページを含まないブロックである。無効ブロックが、イレース処理されて良いブロックである。本実施例のリクラメーション処理では、複数の無効ブロックイレース対象候補であるブロックが管理され、無効ブロックに対するイレース処理は、イレース済みブロックの数が閾値以下となった場合に実施されて良い。なお、その閾値は、FMモジュール100のライト性能に合わせて決定されて良い。一方で、メモリチップ120の特性によれば、PE間隔プログラムからイレースまでの経過時間が短いと、セルの酸化絶縁膜に生成される電子及び正孔トラップの個数が、PE間隔が長い場合と比べて多数生じる。この為、PE間隔が短いブロックの信頼性は低いおそれがある。上記特性に対し、本実施例では、リクラメーション契機にて生じるイレース処理において、PE間隔がPE閾値以下のブロックについてはイレース処理が実施されない。例外として、イレース済みブロックの数が枯渇していれば、イレース済みブロックを確保するために、Lastページプログラム日時607からの経過時間がPE閾値以下のブロックに対してイレース処理が施されて良い。その際、イレース処理が施されるブロックは、Lastページプログラム日時607からの経過時間がPE閾値以下の複数のブロックのうち、Lastページプログラム日時607からの経過時間が最も長いブロックで良い。なお、イレース処理は、例えば、イレースプログラム1143をプロセッサ115が行うことにより行われて良い。図14は、リクラメーション処理のフローの一例を示す。リクラメーション処理は、所定のイベントが検出されたとき、例えば、FMモジュール100内のイレース済みブロックの数が所定の閾値以下となったことが検出されたときに、開始される。プロセッサ115は、ブロック管理テーブル600より、無効ページ数609が絶対的又は相対的に多いブロックを特定するS1401。S1401で選択されるブロックは、最終ページにデータがプログラム済みのブロックでよい。プロセッサ115は、S1401にて特定したブロック図14の説明において候補ブロックのLastページプログラム日時607を特定するS1402。プロセッサ115が、S1402にて特定したLastページプログラム日時607の値と現在の日時の差を算出することで、候補ブロックについて、Lastページプログラム日時607からの経過時間を得るS1403。プロセッサ115は、S1403にて算出した経過時間がPE閾値未満かどうかをチェックするS1404。S1403で得た経過時間がPE閾値未満の場合S1404:Yes、候補ブロックをキャンセルしS1405、再度S1401を行う。S1405で、プロセッサ115は、キャンセルした候補ブロックが再度選択されないよう、例えば、キャンセルした候補ブロックの番号をRAM114に書込んで良い。S1405のような処理が行われる理由は、S1403で得た経過時間がPE閾値未満のブロックは、データ保持に関する信頼性が低下しているおそれがあるからである。一方、S1403で得た経過時間がPE閾値以上の場合S1404:No、プロセッサ115は、候補ブロック内の全ての有効ページのデータを他のブロックのページにコピーするS1406。そして、プロセッサ115は、候補ブロックの有効ページのPBAに対応付けられているLBAに、そのPBAに代えて、コピー先ページのPBAを対応付けるアドレス変換テーブル500の更新。この処理により、候補ブロック内の全ページが無効ページとなる。つまり、候補ブロックが無効ブロックとなる。なお、S1401にて取得した候補ブロックが既に無効ブロックであった場合、このステップを実行する必要はなく、プロセッサ115は、S1404の処理の次に、S1407の処理を実行することができる。プロセッサ115は、S1406にて作成した無効ブロックに対してイレース処理を実施する。S1407。プロセッサ115は、S1406にてイレース処理を実施したブロックのイレース回数604に1を加算する。そして、プロセッサ115は、加算後のイレース回数に基づき、イレース済みブロック候補ブロックを、ウェアレベリング管理キュー700に登録するS1408。これにより、候補ブロックは、候補ブロックの加算後のイレース回数が属するイレース回数範囲のレベルに関連付けられる。以上が、本実施例におけるリクラメーション処理の説明である。なお、本実施例では、Lastページプログラム日時607からの経過時間がPE閾値と比較されるが、比較される経過時間は、これに限定されない。例えば、Firstページプログラム日時606からの現時点までの経過時間がPE閾値と比較されても良い。また、Lastページプログラム日時607は、実測値でなくても良く、例えば、Firstページプログラム日時606から予測された値であっても良い。ここまで述べたように、本実施例では、Lastページプログラム日時607からの経過時間がPE閾値以上のブロックにイレース処理が施され、その経過時間がPE閾値未満のブロックにはイレース処理が施されない。また、前回イレース日時605からの経過時間がEP閾値以下のブロックの先頭ページにデータがプログラムされ、その経過時間がEP閾値を超えているブロックの先頭ページにはデータがプログラムされないそのブロックにイレース処理が施されてから、そのブロックの先頭ページにデータがプログラムされる。また、Firstページプログラム日時606から経過時間がPP閾値以下の場合に、データが最終プログラムページの次のページにプログラムされる。以上の制御により、FMモジュール100のデータ保持に関する信頼性の低下を抑えることができる。また、PE間隔がPE閾値以上であることが確保されるので、イレース回数が上限に達してしまう時期を遅くすることが図れ、以って、FMモジュール100の高寿命化が期待できる。以下、実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略するなお、これは、実施例3についても同様である。実施例1では、PE間隔の最小時間PE閾値が規定されるが、実施例2では、PE閾値が規定されることに代えて、ホスト計算機10からのコマンドに対して個々のブロックについて可能な限りPE間隔を確保するよう制御が実施される。図15は、PE間隔管理キュー1500の一例を示す。PE間隔管理キュー1500は、RAM114に記憶された管理情報の一つである、PE間隔管理キュー1500は、Lastページプログラム日時から現在日時までの経過時間以下、プログラム経過時間と言うによりグループ分けし、各グループの経過時間範囲内に該当する無効ブロックのPBAGroupを登録した管理情報である。PE間隔管理キュー1500は、プログラム経過時間1501と、PBAGroup1502より構成される。プログラム経過時間1501は、プログラム経過時間を示す情報である。図15の例によれば、プログラム経過時間が4つのレベルに分けられている。プログラム経過時間が最も長いレベルに属するブロック群として、プログラム経過時間が30分以上であるブロック群があり、次に、プログラム経過時間が20分以上29分以下であるブロック群のように、プログラム経過時間の一定の範囲毎にブロックが分類される。本実施例では、プログラム経過時間は、分オーダーまで管理され、秒オーダーについて管理されないが、プログラム経過時間の単位は分までに限定されないで良い。PBAGroup1502は、プログラム経過時間レベル範囲毎に該当するブロックを示すPBAGroup1502の先頭アドレスを格納する。PBAGroup1502はFIFO型のキューとして登録されており、ブロックは新たにキューの最後尾に登録される。実施例2では、PE間隔管理キュー1500を用いて無効ブロックが管理される。無効ブロック数が一定数以下となった際に、無効ブロック生成処理例えばリクラメーション処理により無効ブロックが作成され、生成された無効ブロックが、その無効ブロックのプログラム経過時間を基に、PE間隔管理キュー1500に登録される。これらの詳細は後述する。また、実施例2では、PE間隔管理キュー1500は、定期的又は不定期的に、例えば10分毎に更新される。具体的には、FMコントローラ110が、PE間隔管理キュー1500を更新する都度に、その更新した時刻から現在までの時間を測定する。FMコントローラ110は、時点T測定された時間が10分経過した時点での無効ブロックのプログラム経過時間が、時点Tにおいてその無効ブロックが属するレベルよりも上のレベルに属していれば、その無効ブロックの先頭ページのPBAを、上のレベルのキューの最後尾に登録する。なお、本実施例では、10分経過毎にキュー1500が変更されるが、キュー1500の更新は、10分経過毎に限定されない。例えば1秒単位でキュー1500が更新されてもよい。次に、本実施例における無効ブロック生成処理について説明する。図16は、第2実施例における、ブロックの利用サイクルを示した概要図である。データ記録ブロック群1601は、有効ページを含むブロックを概念的に示すブロック群である。FMコントローラ110は、ブロック管理テーブル600からデータ記録ブロック群1601を把握する。また、FMコントローラ110は、無効ブロック群1602に登録されたブロック数が一定数以下となった際、データ記録ブロック群1601の中から、無効ページが基準値以上のブロックつまり、無効ページが絶対的に又は相対的に多いブロックを選択する。その選択されたブロックが、リクラメーション候補ブロックである。そして、FMコントローラ110は、リクラメーション候補ブロックの全ての有効ページを、他のブロックのページにコピーする。次に、FMコントローラ110は、リクラメーション候補ブロックの有効ページが対応していたLBAの対応先を、リクラメーション候補ブロックの有効ページからそれのコピー先ページに変更する。これにより、リクラメーション候補ブロックの全有効ページが無効ページとなる。その結果、リクラメーション候補ブロックは無効ブロックとなる。こうして生成された無効ブロックは、無効ブロック群1602に登録される。無効ブロック群1602には、無効ブロック全ページが無効ページとなったブロックが登録されたブロック群である。FMコントローラ110は、無効ブロックを、その無効ブロックのプログラム経過時間が該当する、PE間隔管理キュー1500のレベルに、登録する。FMコントローラ110は、イレース済みブロック群1603を構成するブロックの数が一定数以下となった際、無効ブロック群1602の中からプログラム経過時間が基準値以上のブロックを選択し、選択した無効ブロックに対してイレース処理をすることで、イレース済みブロックを生成する。こうして生成されたイレース済みブロックは、イレース済みブロック群1603に登録される。なお、プログラム経過時間の基準値は、プログラム経過時間の所定のPE閾値でも良いし、無効ブロック群1602を構成する複数の無効ブロックのプログラム経過時間に基づく値例えば平均値であっても良い。つまり、選択される無効ブロックは、プログラム経過時間が絶対的又は相対的に長い無効ブロックである。イレース済みブロック群1603は、イレース済みのブロックが登録されたブロック群である。FMコントローラ110は、ウェアレベリング管理キュー700にイレース済みブロックを登録する。FMコントローラ110は、ホスト計算機10からのライトコマンドが生じ、途中プログラムブロック最終ページまでデータが記録されておらず、記録可能なページを持つブロックが一定数以下となった際、イレース済みブロック群1603の中からイレース回数が基準値以下のブロックを選択し、ホスト計算機10から受領したライトデータを、その選択したブロック内ページにプログラムする。これにより、そのブロックは、データ記録ブロック途中プログラムブロックとなる。なお、イレース回数の基準値は、イレース回数の所定の閾値でも良いし、イレース済みブロック群1603を構成する複数のイレース済みブロックのイレース回数に基づく値例えば平均値であっても良い。つまり、選択されるイレース済みブロックは、イレース回数が絶対的又は相対的に少ないイレース済みブロックである。以下、実施例2で行われる処理を詳細に説明する。図17は、無効ブロック生成処理のフローの一例を示す。プロセッサ115は、例えば、無効ブロック生成プログラム1144図19参照を実行することで、図17で説明する処理を行うことができる。プロセッサ115は、データ記録ブロック群から無効ブロックの候補以下、無効候補ブロックを選択するS1701。具体的には、プロセッサ115が、ブロック管理テーブル600を参照し、無効ページ数609に格納された値が絶対的又は相対的に多いブロックを無効候補ブロックとして選択する。このとき、プロセッサ115は、テーブル600から、最も無効ページ数の多いブロックを無効候補ブロックとして選択してもよい。また、無効ブロック生成対象の基準として、無効ページ数の閾値があり、プロセッサ115は、無効ページ数609に登録された値が閾値以上のブロックを無効候補ブロックとして選択してもよい。プロセッサ115は、S1701にて選択した無効候補ブロックにのLastページプログラム日時607を特定するS1702。プロセッサ115は、S1702にて特定したLastページプログラム日時607から現在までの経過時間プログラム経過時間を算出するS1703。プロセッサ115は、S1701で選択した無効候補ブロック内の全有効ページを他のブロックの空きページ有効データでも無効データでもない、データが記録されていないページにコピーし、コピー元の有効ページが対応付けられていたLBAの対応先を、コピー元の有効ページからそれのコピー先ページに変更するS1704。この処理により無効候補ブロック内の全ページは無効ページとなり、無効候補ブロックは無効ブロックとなる。プロセッサ115は、PE間隔管理キュー1500における、S1704にて算出したプログラム経過時間が該当するレベルに、無効ブロック全ページが無効ページとなった候補ブロックを登録するS1705。例えば、S1703にて算出されたプログラム経過時間が12分であった場合、プロセッサ115は、PE間隔管理キュー1500における、PE間隔10分以上19分以内の行に、無効候補ブロックの先頭ページのPBAを記録する。以上が、本実施例における無効ブロック生成処理の説明である。次に、本実施例におけるイレース処理について説明する。図18は、イレース処理のフローの一例を示す。イレース処理の最初のステップにおいて、プロセッサ115は、PE間隔管理キュー1500を参照し、最もプロセッサ経過時間の長いレベルよりブロックを選択するS1801。図18の説明において、S1801で選択されたブロックをイレース候補ブロックと言う。より具体的には、プロセッサ115が、PE間隔管理キュー1500を参照し、最もプロセッサ経過時間の長いレベル最上位レベル図15の例では30分以上の先頭ブロックグループに登録された全ブロックのうち、最も過去に登録されたブロックを特定する。このとき、最上位レベルに登録されたブロックがない場合、プロセッサ115が、次に上位のレベル図15の例では20分以上29分以内よりブロックを選択する。このように、ブロックを特定できない場合は、プロセッサ115は、1段階レベルを下げ、そのレベルからよりブロックを選択する。このように、ブロックが取得できるまで、ブロックの探索範囲が、順にプロセッサ経過時間の低いレベルに変更される。プロセッサ115は、ブロック管理テーブル600を参照し、イレース候補ブロックが該当する行のイレース回数604の値を特定するS1802。プロセッサ115は、FM-IF116に、イレース候補ブロックを示すPBAとイレースコマンドを通知し、FM-IF116が、イレース候補ブロックを含むチップに対して、ブロック番号を通知し、且つ、イレースコマンドを送信するS1803。プロセッサ115は、S1802にて特定したイレース回数を1インクリメントするS1804。これにより、イレース候補ブロックの新たなイレース回数が決定される。プロセッサ115は、S1804にて算出したイレース回数を用いて、ウェアレベリング管理キュー700の該当するレベルに、S1803にてイレース処理を実施した候補ブロックイレース済みブロックを登録する。また、新たなイレース回数がブロック管理テーブル600イレース回数604に登録されるS1805。実施例2によれば、プログラム経過時間が長い無効ブロックに対して優先的にイレース処理を施す。これにより、全ブロックのPE間隔がより長くされることが図れる。この結果、短いPE間隔時に生じる電子トラップ及び正孔トラップの数が低減され、高信頼化が期待される。また、こうした高信頼化により、データの記憶に使用不可と判断されるブロックを減らし、利用可能なブロックのイレース回数の上限を実質的に増やすことができるため、FMモジュール100の長寿命化が期待できる。なお、実施例1におけるPE間隔の最小時間規定と、本実施例におけるPE間隔を可能な限り確保する制御つまり実施例1と実施例2は、組み合わせて実施されてもよい。ここまで、通常処理の中でPE間隔の最小時間を制限し実施例1、またはPE間隔を長く制御する実施例2例について述べてきた。PE間隔の短縮により電子トラップおよび正孔トラップが多量に発生するのを抑え、不揮発性半導体メモリのデータ保持に関する信頼性データ保持信頼性の低下を防ぐことが期待できる。実施例3では、稼働中にデータ保持信頼性が低いブロックが検出され、そのブロックのPE間隔を長くすることで、生じた正孔トラップおよび電子トラップを減らし、データ保持信頼性を向上させることが期待できる。つまり、本実施例により、使用不可となるブロックを減少することができる。不揮発性半導体メモリは、一般にデータの保持期間が有限である。このため、一定期間毎にデータをリードし他所にコピーする処理を行うことが望ましい。こうした処理は、一般にリフレッシュ処理と呼ばれる。また、不揮発性半導体メモリは、データ記録後の時間経過とともに障害ビット数が増加する。このため、FMコントローラ110は、定期的又は不定期的にFMモジュール100内の全記憶領域をリードし、各ページに生じている障害ビット数を検査することができる。この処理を、本実施例においてベリファイ処理と呼ぶ。図20は、経過日数と障害ビット閾値との関係を表すテーブルの一例を示す。データをプログラムしてから日数が経過すると、メモリの障害ビットは増加していく。このため、図20に示すテーブル2000によれば、経過日数2001例えば或るページ例えば先頭ページ又は最終ページにデータをプログラムしてから現在までの日数の値が長いと、障害ビット閾値2002は高い。障害ビット閾値は、障害ビット数の閾値である。本実施例では、リード処理ホスト計算機10からのリードコマンドの処理、リフレッシュ処理およびベリファイ処理の少なくとも1つの処理において、FMコントローラ110は、ブロックについての経過日数例えば或るページ例えば先頭ページ又は最終ページにデータをプログラムしてから現在までの日数に対応する障害ビット閾値2002を特定する。FMコントローラ110は、障害ビット数または、ブロック内全ECCCWの平均障害bit数が障害ビット閾値以上のブロック以下、危険ブロックと言うを検出する。より具体的には、FMコントローラ110は、まず前述の何れかの処理においてブロック内のページからデータをリードする。そして、FMコントローラ110は、そのページを構成するECC毎の障害ビット数を取得する。次に、FMコントローラ110は、障害ビット数が障害ビット閾値以上となったブロックを危険ブロックとして特定する。なお、障害ビット閾値は、ECCで修正可能なbit数以下の値で良い。危険ブロックと判断されたブロックは、実施例2で述べた無効ブロック生成処理の対象となる。FMコントローラ110は、危険ブロックに含まれる全ページのデータを別のブロックにコピーし、アドレス変換テーブル500を更新する。この処理により、危険ブロックが無効ブロックとなる。そして、FMコントローラ110は、その無効ブロックを危険ブロック管理キュー図示せずに登録する。危険ブロック管理キューは、FIFO型のキューであり、ブロックをキューに登録する際には、キューの最後尾に登録する。実施例3では実施例2と同様に、無効ブロックはPE間隔管理キュー1500に登録される。図21は、管理画面2100の一例を示す。管理画面2100は、管理計算機11に表示される画面である。管理計算機11は、複数又は一のFMモジュール100を管理している。管理画面2100には、管理計算機11が管理している複数のFMモジュール100のIDモジュールリストが表示される。モジュールリストのうちの1以上のFMモジュールIDをユーザが選択することができる。管理画面2100は、時間表示エリア2101を有し、この画面2100上の前面に、ブロック表示画面2102が表示される。この画面2102には、複数のFMモジュールIDからユーザにより選択されたFMモジュールに関する情報が表示される。管理計算機11が、複数のFMモジュール100から管理情報を収集しており、その管理情報の全部又は一部が、画面2100及び2102の少なくとも一方に表示されて良い。時間表示エリア2101には、許容最小PE間隔及び許容最大EP間隔が表示される。この許容最小PE間隔つまりPE閾値及び許容最大EP間隔つまりEP閾値は、本実施例では、この管理画面2100からユーザは変更できないが、これらの閾値のうちの少なくとも1つがユーザによってこの画面2100から変更されても良い。ブロック表示画面2102は、モジュールリストからユーザに選択されたFMモジュールIDに対応するFMモジュールについて、総ブロック数及び危険ブロック数を表示する。総ブロック数は、ユーザに選択されたFMモジュール100が有するブロックの総数であり、危険ブロック数は、それらのブロックのうちの危険ブロックの数である。危険ブロックは、前述したように、障害ビット数が障害ビット閾値以上となったブロックである。図22は、イレース処理のフローの一例を示す。本実施例では、前述したように、障害ビット数が障害ビット閾値以上であるブロックが危険ブロックとして管理される。FMコントローラ110は、危険ブロックを、なるべくイレース対象とならないようにする。なぜなら、メモリチップ120は、データがプログラムされた状態で放置すると、次回プログラム時の記録データに生ずる障害ビット数が減少するという特性を有するからである。危険ブロックは、そのブロックのプログラム経過時間が所定時間を経過した後、イレース対象のブロックとなるように制御される。プロセッサ115は、FMモジュール100が管理するブロック選択数が、所定の閾値未満かどうかを判断するS2201。このとき閾値は、例えば10万である。ブロック選択数が閾値未満である場合S2201:Yes、実施例2と同様に、プロセッサ115は、PE間隔管理キュー1500より無効ブロックを選択S2202する。プロセッサ115は、ブロック選択数を1インクリメントする。従って、前述のブロック選択数とは、危険ブロックでない無効ブロックが選択された回数を示す。S2204~S2207までの処理は、実施例2のS1802~S1805図18参照とほぼ同じであるため、説明を省略する。一方、ブロック選択数が所定の閾値以上の場合S2201:No、プロセッサ115は、危険ブロック管理キューよりブロック図22の説明においてイレース候補ブロックを取得するS2208。ブロック選択数がゼロから閾値以上に増えたということは、ブロック選択数がゼロから閾値以上に増えるまでの時間だけ危険ブロックは選択されずに放置されていたことを意味する。故に、危険ブロックにおいて次回プログラム時の記録データに生ずる障害ビット数が減少する可能性がある。危険ブロックは、望ましくは何らかのデータがプログラム済みのブロックである。プロセッサ115は、ブロック選択数を初期値例えば0とするS2209。これにより、以後、ブロック選択数が再び閾値以上に増えるまで、危険ブロックがイレース候補ブロックとして選択されることは無い。S2209の後、プロセッサ115は、S2204の処理を行う。図23は、リード処理のフローの一例を示す。S2301~S2304までの処理は、図13のS1301~S1304と、ほぼ同じであるため説明を省略する。プロセッサ115は、リード元のブロックの障害ビット数を特定するS2305。プロセッサ115は、リード元ブロックのプログラム経過日数に対応する障害ビット閾値を図20に示したテーブル2000から特定し、S2305で特定した障害ビット数が特定された障害ビット閾値未満かどうかをチェックするS2306。障害ビット数が障害ビット閾値未満である場合S2306:Yes、プロセッサ115は、修正したデータをホスト計算機10に転送するS1305。一方、特定した障害ビット数が障害ビット閾値以上の場合S2306:No、プロセッサ115は、リード元ブロックを危険ブロックとして登録するS2307。実施例3によれば、危険ブロックではない無効ブロックよりも低い頻度で危険ブロックがイレース候補ブロックとして選択される。これにより、危険ブロックのPE間隔が延長される。PE間隔が延長されると、危険ブロックの酸化膜内にある電子トラップおよび正孔トラップのデトラップが行われ、危険ブロックのデータ保持能力は回復し、再度データ保持信頼性を維持可能となる。これにより、使用不可となるブロックが減り、利用可能なイレース回数が増加し、FMモジュール100の長寿命化が期待される。なお、上記の説明によれば、危険ブロックは、障害ビット数が障害ビット閾値以上のブロックであるが、障害ビット数と障害ビット閾値の比較は、データ単位、ページ単位、ブロック単位、など、所定の単位で行われて良い。また、危険ブロックは、障害ビット数が障害ビット閾値以上のブロックに代えて又は加えて、下記の1及び2のうちの少なくとも1つに該当するブロックであっても良い。1プログラムにかかる時間が第1の基準値未満である。ブロックが劣化すると、酸化絶縁膜にホールができる。FGフローティングゲートにN個の電子をいれたつもりが、FGにはN個未満しか入らず、残りは酸化絶縁膜のホールに入るおそれがある。この場合、注入される電子の数は、N個未満で済むので、プログラムにかかる時間は短くなる。第1の基準値は、所定の閾値であっても良いし、複数のブロックのプログラム時間プログラムに要した時間に基づく値例えば平均値であっても良い。つまり、この1は、プログラムにかかる時間が絶対的又は相対的に長いということで良い。2イレースにかかる時間が第2の基準値未満である。ブロックが劣化すると、イレース処理においてなかなか電子がFGから出ていかない。第2の基準値は、所定の閾値であっても良いし、複数のブロックのイレース時間イレース処理に要した時間に基づく値例えば平均値であっても良い。つまり、この2は、イレースにかかる時間が絶対的又は相対的に短いということで良い。以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されない。例えば、LBAは、多段であっても良い。例えば、ホスト計算機10から指定されるLBAは、論理ボリュームにおける領域の第1段のLBAであって、第1段のLBAには、FMモジュール100が認識する第2段のLBAが対応付けられていて、第2段のLBAに、PBAが対応付けられても良い。多段であっても、第1段のLBAに間接的にPBAが対応付けられる。また、例えば、実施例3は、実施例1及び2を含むが、実施例2を含まないでも良い。この場合、例えば、図22のS2202では、無効ページが絶対的又は相対的に多いブロックが選択され、S2203で、ブロック選択数が1インクリメントされても良い。