(57)【要約】      （修正有）【課題】不揮発性メモリのランダムライトアクセスの高速化を図る。【解決手段】半導体不揮発性メモリは、複数の消去単位からなる初期割当領域及び初期未使用領域を有する。ホスト側論理アドレスが順次に並ぶ最小管理単位を設定し、入力されたデータをバッファに順次に書き込み、最小管理単位毎の論理アドレスと不揮発性メモリの物理アドレスとのアドレスの変換情報を生成する。バッファの全記憶容量に対して書き込まれたデータを、書き込み予定の第１の消去単位の未書き込み領域に順次に書き込む。第１の消去単位の未書込領域がなくなると、検索された第２の消去単位の有効データを予め準備されている消去済等の第３の消去単位に書き込んで変換情報を更新して新第１の消去単位に置き換える。第２の消去単位を一括消去して新第３の消去単位の生成準備と並行して新第２の消去単位を検索する。【選択図】図２
2011128826.tif 000002
【特許請求の範囲】
【請求項１】
半導体不揮発性メモリと、
半導体揮発性メモリと、
上記半導体不揮発性メモリ及び半導体揮発メモリに対してメモリアクセスを行うコントローラ部とを有し、
上記半導体不揮発性メモリは、
システム検索領域と、
ホスト側からの全ライト状態に対応した初期割当領域と、
初期未使用領域とを有し、
上記システム検索領域、初期割当領域及び初期未使用領域の各領域は、それぞれ複数の消去単位を有し、
上記半導体揮発性メモリは、記憶データに対応したホスト側論理アドレスをそれが格納された上記半導体不揮発性メモリの最新の物理アドレスに変換する変換情報を記憶し、
上記コントローラ部は、
入出力インターフェイスと、
制御論理回路と、
バッファメモリとを有し、
上記制御論理回路は、
上記入出力インターフェイスを介してホスト側から入力された書き込みデータを上記バッファメモリに順次に書き込み、書き込みデータに割り当てられた最小管理単位毎のホスト側論理アドレスと上記半導体不揮発性メモリ側の物理アドレスとの変換情報を生成して上記半導体揮発性メモリに記憶させ第１動作と、
上記第１動作により複数分の上記最小管理単位の記憶データがバッファメモリの全記憶容量に対して書き込まれた後にかかるバッファメモリの全記憶データを上記半導体不揮発性メモリにおける予め割当られた第１の消去単位の未書き込み領域に順次に書き込む第２動作と、
上記第１動作と第２動作との繰り返しにより、上記第１の消去単位の未書込領域がなくなると、未書き込みの消去単位が２以上無いことを条件として上記半導体不揮発性メモリの上記初期割当領域及び初期未使用領域の中から検索された最も有効データの少ない第２の消去単位におけるかかる有効データを予め準備されている消去済又は未使用の第３の消去単位に書き込んで上記変換情報を更新し、かかる第３の消去単位を上記第１の消去単位に置き換える第３動作と、
上記第２の消去単位を一括消去して消去済とされた上記第３の消去単位を準備するとともに、かかる第２の消去単位の消去動作と並行して上記初期割当領域及び初期未使用領域を検索して新しい上記第２の消去単位の用意する第４動作を行い、
上記最小管理単位は、上記入出力インターフェイスを介して接続されるホスト側の全論理アドレスを複数区分に分割して構成され、順次に並ぶ複数論理アドレス分に対応した記憶データとされる、
記憶装置
【請求項２】
請求項１において、
上記入出力インターフェイスは、ハードディスクドライブ互換性の入出力インターフェイスであり、
上記半導体不揮発性メモリは、ＮＡＮＤ型フラッシュメモリであり、
上記半導体揮発性メモリは、シンクロナス・ダイナミック・ランダム・アクセス・メモリであり、
上記コントローラ部は、ＣＰＵを含むシステムＬＳＩであり、
上記コントローラ部のバッファメモリは、第１バッファメモリと第２バッファメモリとで構成され、      かかる第１バッファメモリと第２バッファメモリは、
上記第１動作と第２動作において、一方のバッファメモリを用いて上記第２動作が行われるとき他方のバッファメモリを用いて上記第１動作が同時並行して行われることが可能とされ、
上記第３動作において、一方のバッファメモリを用いて上記第２の消去単位における有効データを予め準備されている第３の消去単位に書き込むとき、他方のバッファメモリを用いて上記第２の消去単位における次の有効データの読み込みを行う、
記憶装置。
【請求項３】
請求項２において、
上記最小管理単位は、順に並ぶ１０個の論理アドレスに対応するものであり、
上記半導体不揮発性メモリは、上記最小管理単位における１０個の論理アドレスに対応した１０個の入出力部を有し、個々の入出力部に対して複数の半導体チップからなる半導体不揮発性メモリが設けられる、
記憶装置。
【請求項４】
請求項１において、
ホスト側の論理アドレスに対応した記憶データが格納された上記半導体不揮発性メモリの物理アドレスを記憶するアドレス変換情報は、
ホスト側論理アドレスに対応するアドレス変換テーブルの格納先を示す第１情報と、
ホスト側論理アドレスの物理アドレスを示す第２情報と、
上記半導体不揮発性メモリの消去単位を管理する第３情報とを含む、
記憶装置。
【請求項５】
請求項１ないし４のいずれかにおいて、
電源検出回路と、
電圧保持回路とを更に有し、
上記コントローラ部は、
電源遮断時において上記電源検出回路の電源遮断検出信号により、上記電圧保持回路の保持電圧を上記コントローラ部、半導体揮発性メモリ及び半導体不揮発性メモリの動作電圧に切り替え、上記バッファメモリと上記半導体揮発性メモリの退避対象データを読み出して上記半導体不揮発性メモリに書き込み、
電源投入時において上記電源検出回路の電源投入検出信号により、電源電圧を上記電圧保持回路の入力電圧、上記コントローラ部、半導体揮発性メモリ及び半導体不揮発性メモリの動作電圧として供給し、上記半導体不揮発性メモリに保持された退避対象データを読み出して上記バッファメモリと半導体揮発性メモリに書き込みを行う、
記憶装置。
【請求項６】
半導体不揮発性メモリを用いた記憶方法であって、
上記半導体不揮発性メモリの記憶領域は、システム検索領域と、ホスト側からの全ライト状態に対応した初期割当領域と、初期未使用領域にとに分けられ、
上記システム検索領域、初期割当領域及び初期未使用領域の各領域は、それぞれ複数の消去単位が設けられ、
ホスト側の全論理アドレスが複数区分に分割されて構成されて順次に並ぶ複数論理アドレス分が最小管理単位に設定され、
第１制御動作は、ホスト側から入力された書き込みデータをバッファメモリに順次に書き込み、かかる書き込みデータの最小管理単位毎のホスト側論理アドレスと書き込み予定の上記半導体不揮発性メモリ側の物理アドレスとのアドレスの変換情報を生成してメモリに記憶し、
第２制御動作は、上記第１制御動作により複数分の上記最小管理単位の記憶データがバッファメモリの全記憶容量に対して書き込まれた時点でかかるバッファメモリの全記憶データを上記半導体不揮発性メモリにおける上記書き込み予定の第１の消去単位の未書き込み領域に順次に書き込み、
第３制御動作は、上記第１制御動作と第２制御動作との繰り返しにより、上記第１の消去単位の未書込領域がなくなると、未書き込みの消去単位が２以上無いことを条件として上記半導体不揮発性メモリの上記初期割当領域及び初期未使用領域の中から検索された最も有効データの少ない第２の消去単位におけるかかる有効データを予め準備されている消去済又は未使用の第３の消去単位に書き込んで上記変換情報を更新し、かかる第３の消去単位を上記第１の消去単位に置き換え、
第４制御動作は、上記第２の消去単位を一括消去して消去済とされた上記第３の消去単位を準備するとともに、かかる第２の消去単位の消去動作と並行して上記初期割当領域及び初期未使用領域を検索して新しい上記第２の消去単位を用意する、
半導体不揮発性メモリの記憶方法。
【請求項７】
請求書６において、
上記最小管理単位は、順に並ぶ１０個の論理アドレスに対応するものであり、
上記半導体不揮発性メモリは、上記最小管理単位における１０個の論理アドレスに対応した１０個の入出力部を有し、個々の入出力部に対して複数の半導体チップからなる半導体不揮発性メモリが設けられる、
半導体不揮発性メモリの記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶装置と半導体不揮発性メモリの記憶方法に関し、例えば、ＮＡＮＤ型フラッシュメモリを用いてＨＤＤ置き換え可能な記憶装置（Solid State Drive;ＳＳＤ) と半導体不揮発性メモリの記憶方法に利用して有効な技術に関するものである。
【背景技術】
【０００２】
特開２００６−２５２５３５号公報には、ＮＡＮＤ型フラッシュメモリを用いて、例えばＨＤＤ置き換え可能な記憶装置が開示されている。同公報の技術では、書き込みブロックサイズより小さいサイズのデータが複数あり、書き込みが頻繁に発生すると短い期間で書き込み寿命に達してしまうという問題の解決及びデータ転送レートの向上に向けられている。この記憶装置は、不揮発性メモリにファイル管理情報部とデータ部を設け、メモリコントローラでメモリアクセスを行う。上記コントローラは、揮発性メモリを備え、電源起動時に上記不揮発性メモリのファイル管理情報部の記憶データを読み出して上記揮発性メモリに書き込み、上記不揮発性メモリへのデータの書き込み動作と読み出し動作においては、上記揮発性メモリを用いてそれに対応したファイル管理情報の読み出しや書き込みを行い、電源遮断時上記揮発性メモリの記憶データを読み出して上記不揮発性メモリのファイル管理情報部に記憶させる。本願発明者等においては、前記特開２００６−２５２５３５号公報の技術を発展させて、ランダムライトアクセスの平均速度の改善に向けて特開２００９−０６４２５１号公報において図９に示したようなＳＳＤを提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２５２５３５号公報
【特許文献２】特開２００９−０６４２５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図９に示したＳＳＤでは、ホスト論理アドレス（ＨＬＢＡ）は、１セクタ（５１２Ｂ）を最小単位として全容量分をリニア（順次）並べて先頭アドレス０から最終アドレスｍａｘまでを不揮発性メモリの全領域のうちシステム領域を除いて、複数の区分（区画０〜区画ｎ）に分割管理する。１つの区画は、例えば区画０に例示されているように不揮発性メモリの消去単位群がＬＰＢＡ０〜ＬＰＢＡＹで構成される。
【０００５】
この１つの区画は、消去単位として示されているように全ライト済み状態で使用する割当分と未使用分とで構成される。未使用分は、フリー部分と代替（不良救済）として設けれている。上記割当分と未使用分の境界は、固定ではなく矢印で示したフリー検索で既存割当ＬＰＢＡがフリーＬＰＢＡに、新しく割当られたフリーＬＰＢＡが割当分に動的に交換される。１つの消去単位（ＬＰＢＡ）は、複数のＮＡＮＤフラッシュメモリチップから構成され、ページ０（ＰＡＧＥ０）から最終ページ（ｍａｘ）までをデータ領域（論理アドレス割当分）とランダムキャッシュ領域（アドレス重複分）に区分されている。これらの区分の境界は固定で扱われる。
【０００６】
前記のように消去ブロック内にランダムキャッシュ領域を設けることにより、書き換えデータが入力されると、データ領域に空きがない場合にランダムキャッシュ領域へキャッシュアウトする。ランダムキャッシュ領域にも空きがない場合は、当該消去ブロック内に記憶されている有効データを別の消去済ブロックへコピーする。コピー後にコピー元のブロックのデータを消去することにより消去済ブロックを生成する。
【０００７】
例えば、１つの消去単位として、前記データ領域に３２ＫＢページを１２０個配置、ランダムキャッシュ領域に４ＫＢページを６４個配置し、ページアドレス及びランダムキャッシュ領域のアドレスをブロックアドレスとの関係をつけて消去単位（ブロック）で管理する。この場合、前記のようにページアドレスに対応する消去単位（ブロック）内に空きページがなくなると、別の消去済の消去単位（ブロック）へ有効データをコピーし、コピー後にコピー元の消去単位のデータを消去する動作が発生することになる。この消去動作には時間がかかるため、空きページへのライトのみの場合よりライトアクセス時間が遅くなるという問題がある。
【０００８】
ＳＳＤライト時にアドレスランダム指定で重複がある場合、フラッシュメモリ内に設けた数ＭＢ程度のキャッシュ領域の効果は小さく、その結果、パソコンのＯＳ（オペレーティング・システム）の１つであるウィンドウズ（登録商標）のイントール時などに４ＫＢ以下のライトアドレス数がフラッシュキャッシュ本数を超えてキャッシュアウトが多発して時間がかかってしまう不具合が発生する。また、ホスト論理アドレスに割当られた特定区分は、不揮発性メモリの対応する特定区分に一対一に対応しており、そのホスト論理アドレスに書き換えデータが集中すると、前記のようにライトアクセス時間が遅くなる上に比較的短い期間内で書き換え回数の制限に達してしまう。
【０００９】
この発明の目的は、ランダムライトアクセスの平均速度及び書き換え耐性の向上を可能とした記憶装置と不揮発性メモリの記憶方法を提供する。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される１つの実施例は、以下の通りである。記憶装置は、半導体不揮発性メモリ、半導体揮発性メモリ、上記半導体不揮発性メモリ及び半導体揮発メモリに対してメモリアクセスを行うコントローラ部を有する。上記半導体不揮発性メモリは、システム検索領域、ホスト側からの全ライト状態に対応した初期割当領域、初期未使用領域を有する。上記システム検索領域、初期割当領域及び初期未使用領域の各領域は、それぞれ複数の消去単位を有する。上記半導体揮発性メモリは、記憶データに対応したホスト側論理アドレスをそれが格納された上記半導体不揮発性メモリの最新の物理アドレスに変換する変換情報を記憶する。上記コントローラ部は、入出力インターフェイス、制御論理回路、バッファメモリを有する。上記制御論理回路は、第１ないし第４動作を行う。上記第１動作は、上記入出力インターフェイスを介して接続されるホスト側の全論理アドレスが複数区分に分割されて構成されて順次に並ぶ複数論理アドレス分に対応した記憶データを最小管理単位として、上記入出力インターフェイスを介してホスト側から入力された書き込みデータを上記バッファメモリに順次に書き込み、各最小管理単位毎のホスト側論理アドレスと上記半導体不揮発性メモリ側の物理アドレスとの変換情報を生成して上記半導体揮発性メモリに記憶させる。上記第２動作は、上記第１動作により複数分の上記最小管理単位の記憶データがバッファメモリの全記憶容量に対して書き込まれた後にかかるバッファメモリの全記憶データを上記半導体不揮発性メモリにおける予め割当られた第１の消去単位の未書き込み領域に順次に書き込む。上記第３動作は、上記第１動作と第２動作との繰り返しにより、上記第１の消去単位の未書込領域がなくなると、未書き込みの消去単位が２以上無いことを条件として上記半導体不揮発性メモリの上記初期割当領域及び初期未使用領域の中から検索された最も有効データの少ない第２の消去単位におけるかかる有効データを予め準備されている消去済又は未使用の第３の消去単位に書き込んで上記変換情報を更新し、かかる第３の消去単位を上記第１の消去単位に置き換える。上記第４動作は、上記第２の消去単位を一括消去して消去済とされた上記第３の消去単位を準備するとともに、かかる第２の消去単位の消去動作と並行して上記初期割当領域及び初期未使用領域を検索して新しい上記第２の消去単位を用意する。
【００１１】
本願において開示される他の１つの実施例は、以下の通りである。半導体不揮発性メモリを用いた記憶方法として、上記半導体不揮発性メモリの記憶領域は、システム検索領域と、ホスト側からの全ライト状態に対応した初期割当領域と、初期未使用領域にとに分けられる。上記システム検索領域、初期割当領域及び初期未使用領域の各領域は、それぞれ複数の消去単位が設けられる。ホスト側の全論理アドレスが複数区分に分割されて構成されて順次に並ぶ複数論理アドレス分が最小管理単位に設定される。この構成に対して、以下の第１ないし第４制御動作が行われる。第１制御動作は、ホスト側から入力された書き込みデータをバッファメモリに順次に書き込み、かかる書き込みデータの最小管理単位毎のホスト側論理アドレスと書き込み予定の上記半導体不揮発性メモリ側の物理アドレスとのアドレスの変換情報を生成してメモリに記憶する。第２制御動作は、上記第１制御動作により複数分の上記最小管理単位の記憶データがバッファメモリの全記憶容量に対して書き込まれた時点でかかるバッファメモリの全記憶データを上記半導体不揮発性メモリにおける上記書き込み予定の第１の消去単位の未書き込み領域に順次に書き込む。第３制御動作は、上記第１制御動作と第２制御動作との繰り返しにより、上記第１の消去単位の未書込領域がなくなると、未書き込みの消去単位が２以上無いことを条件として上記半導体不揮発性メモリの上記初期割当領域及び初期未使用領域の中から検索された最も有効データの少ない第２の消去単位におけるかかる有効データを予め準備されている消去済又は未使用の第３の消去単位に書き込んで上記変換情報を更新し、かかる第３の消去単位を上記第１の消去単位に置き換える。第４制御動作は、上記第２の消去単位を一括消去して消去済とされた上記第３の消去単位を準備するとともに、かかる第２の消去単位の消去動作と並行して上記初期割当領域及び初期未使用領域を検索して新しい上記第２の消去単位を用意する。
【発明の効果】
【００１２】
ホスト論理アドレスと不揮発性メモリの物理アドレスの関係制約を無くし、不揮発性メモリの領域全体から各消去単位（消去ブロック）内の空きページへ書込みが可能であるようなアドレス管理とすることにより、消去動作の発生頻度を少なくし、平均ライトアクセス時間の改善を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】この発明に係る記憶装置ＳＳＤの一実施例のブロック図である。
【図２】この発明に係る記憶装置ＳＳＤの記憶方法を説明するための一実施例のメモリマップ図である。
【図３】この発明に係る記憶装置ＳＳＤにおけるアドレス変換テーブルの一実施例の説明図である。
【図４】前記図３のＰＡＰＡＴの概念図である。
【図５】この発明に係る記憶装置ＳＳＤの代表的な動作の１つであるランダムライトアクセス動作の一例を説明するためのブロック図である。
【図６】この発明に係る記憶装置ＳＳＤの代表的な動作の他の１つであるコンパクション動作の一例を説明するためのブロック図である。
【図７】図７には、この発明に係る記憶装置ＳＳＤの代表的な動作の他の１つであるリード動作の一例を説明するためのブロック図である。
【図８】この発明に係る記憶装置ＳＳＤの一実施例の概略ブロック図である。
【図９】本願発明者等において先に検討されたＳＳＤのメモリマップ図である。
【発明を実施するための形態】
【００１４】
添付の図面に沿って、この発明の好ましい実施の形態について詳細に説明する。
【実施例】
【００１５】
図１には、この発明に係る記憶装置ＳＳＤ（Solid State Drive)の一実施例のブロック図が示されている。この実施例の記憶装置は、ＨＤＤ互換記憶装置として、特に制限されないが、半導体不揮発性メモリ（ＮＡＮＤフラッシュメモリ）ＦＬ０〜ＦＬ９と、半導体揮発性メモリＳＤＲＡＭ及び点線で示されたコントローラ部としてのシステムＬＳＩ、インターフェイスチップＳ−ＡＴＡ(Serial Advanced Technology Attachment) を１つのパッケージの中に搭載して、約３２Ｇバイトのような記憶容量を持つような記憶装置ＳＳＤとされる。Ｓ−ＡＴＡ(Serial Advanced Technology Attachment) は、パソコンにハードディスクや光ドライブを接続するためのインターフェイス規格である。
【００１６】
上記パッケージは、例えば２．５インチのハードディスクドライブ装置と同様な外形サイズ（７０．０×１００．０×９．５ｍｍ）又は３．５インチのハードディスクドライブ装置と同様な外形サイズ（１０１．６×１４６．０×２５．４ｍｍ）にされ、インターフェイス回路Ｓ−ＡＴＡに接続されるコネクタピンも上記２．５インチの又は３．５インチのハードディスクドライブ装置と同様なものが用いられる。
【００１７】
同図で点線で示したホストＨＯＳＴと、半導体不揮発性メモリＦＬ０〜ＦＬ９との間のデータのやりとりは、上記インターフェイスチップＳ−ＡＴＡ及び制御論理回路としてのシステムＬＳＩを介して行われる。システムＬＳＩは、上記インターフェイスＳ−ＡＴＡに対応して設けられ、シリアル／パラレル変換等を行う入出力回路Ｐ−ＡＴＡ及びコントローラＡＴＡＣを介して点線で示された信号経路切替回路ＲＣに接続される。信号経路切替回路ＲＣは、ＥＣＣ回路との間での信号伝達を行うセレクタＳ１、上記入出力回路Ｐ−ＡＴＡとの間で信号伝達を行うセレクタＳ２、ライトバッファＷＢ０，ＷＢ１との間で信号伝達を行うセレクタＳ４、半導体不揮発性メモリＦＬ０〜ＦＬ９に設けられたフラッシュ入出力部ＦＩＣとの間で信号伝達を行うセレクタＳ５及び半導体揮発性メモリＳＤＲＡＭに対応してメモリ制御回路ＳＤＲＡＭＣとの間で信号伝達を行うセレクタＳ３を有しており、以下に説明するメモリ動作に対応して各回路ブロック間での信号伝達を行う。
【００１８】
ＮＡＮＤフラッシュメモリ（半導体不揮発性メモリＦＬ０〜ＦＬ９）は、エラービットの発生が他のメモリデバイスに比べて比較的多く、それを許容することを前提とするデバイスである。データの書き換え及び消去を繰り返していくうちにメモリセルがデータ記憶特性が劣化し、リード時に正常データがリードできなくなることがある。そのために、記憶媒体に半導体不揮発性メモリを使用してＳＳＤを構成する場合、誤り検出・訂正回路であるＥＣＣ回路が必須となる。上記ＥＣＣ回路は、半導体不揮発性メモリＦＬ０〜ＦＬ９への書き込みデータ、半導体不揮発性メモリＦＬ０〜ＦＬ９からの読み出しデータに対してハミング符号／リード・ソロモン符号／ＢＣＨ符号などの符号化、複合化を行う。
【００１９】
上記システムＬＳＩには、メモリ動作の高速化に向けて専用制御回路ＬＯＧ１〜ＬＯＧ３が設けられる。専用制御回路ＬＯＧ１は、フリーブロック検索エンジンであり、後述する検索動作を受け持つ。専用制御回路ＬＯＧ２は、テーブル検索エンジンであり、後述する論理／物理アドレス変換テーブルの検索動作を受け持つ。専用制御回路ＬＯＧ３は、コンパクションエンジンであり、消去済の消去単位（ブロック）を生成するための後述するコンパクション動作を受け持つ。また、各種制御動作を受け持つＣＰＵ（中央処理装置）及びそのワーク領域としてのＲＡＭ、制御レジスタＲＥＧも設けられる。
【００２０】
例えば、ホストＨＯＳＴ側からは、３００ＭＢ（メガバイト）／s の速度でデータＤ１の伝送が行われる。インターフェイスチップＳ−ＡＴＡでは、１６０ＭＨｚ／１６（ビット）のようなデータＤ２に速度変換される。入出力回路Ｐ−ＡＴＡでは、８０ＭＨｚ／３２（ビット）のようなデータＤ３に速度変換される。したがって、上記信号経路切替回路ＲＣにおいては、８０ＭＨｚ／３２（ビット）のような転送速度によりＥＣＣ回路との間のデータＤ５、ライトバッファＷＢ０，１との間のデータＤ６，Ｄ７、フラッシュ入出力部ＦＩＣとの間のデータＤ８及びメモリ制御回路ＳＤＲＡＭＣとの間のデータＤ９，Ｄ１０の伝達を行うものとされる。
【００２１】
半導体揮発性メモリＳＤＲＡＭは、例えば８０ＭＨｚ／１６（ビット）でデータＤ１２の入出力を行うものであり、上記メモリ制御回路ＳＤＲＡＭＣにより３２ビットデータが１６ビットに振り分けられる。半導体不揮発性メモリＦＬ０〜ＦＬ９は、３３ＭＨｚ／８（ビット）の速度でデータＤ１１の入出力が行われる。このデータＤ１１に対応させるため、フラッシュ入出力部ＦＩＣにおいては半導体不揮発性メモリＦＬ０に例示的に示されているようにセレクタＳ７と２つのバッファＢ１，Ｂ２が設けられ、これらバッファＢ１，Ｂ２を交互に使用することでセレクタＳ６を通して入出力される８０ＭＨｚ／３２（ビット）のデータＤ８の速度に近づくよう上記データＤ１１を適合させる。
【００２２】
半導体不揮発性メモリＦＬ０〜ＦＬ９は、１回の書き込みにより最大で４ｋＢ＋４ｋＢ（８ｋＢ）のデータ書き込み（ページライト）が可能にされる。前記のように半導体不揮発性メモリＦＬ０〜ＦＬ９を１０個を並列形態に設けるようにすることにより、８ｋ×１０＝８０ｋＢ分のデータを一括して書き込むようにすることができる。これに対応して、上記ライトバッファＷＢ０，ＷＢ１は８０ｋＢの記憶容量を持つようにされる。一方、ホスト側においては、１つの論理アドレスで１セクタが指定され、５１２Ｂのデータがシリアルに入出力される。
【００２３】
中央処理装置ＣＰＵは、特に制限されないが、レジスタＲＥＧを介してホストからの動作指示等のコマンド等を受け取りＳＳＤ全体の制御動作を行う。信号経路切替回路ＲＣののセレクタＳ１〜Ｓ５の制御によりインターフェイスコントローラＡＴＡＣ、ＥＣＣ回路、ライトバッァＷＢ０，１、メモリ制御回路ＳＤＲＡＭＣ及びフラッシュ入出力部ＦＩＣの間の信号伝達経路の切替も上記ＣＰＵにより行われる。
【００２４】
図２には、この発明に係る記憶装置ＳＳＤの記憶方法を説明するための一実施例のメモリマップ図が示されている。ホスト側論理アドレスＨＬＢＡは、０からｍａｘまでのアドレス空間を有し、各論理アドレスにより１セクタ（５１２Ｂ）のデータを指定する。これに対して、前記図１で説明したように記憶装置ＳＳＤを構成する半導体不揮発性メモリＦＬ０〜ＦＬ９のそれぞれにおける最大書き込みデータ数は８ｋＢである。これらのことを前提とし、ホスト側から半導体不揮発性メモリＦＬ０〜ＦＬ９に対してランダムライトアクセスを効率よく高速に行うようにするため、ＳＳＤ側においてはホスト側論理アドレスの１０個（１０セクタ）分に対応したデータ５１２Ｂ×１０（＝５ｋＢ（キロバイト））を最小管理単位に設定する。つまり、ホスト側では論理アドレス０、１０、２０、３０、４０……（１０進法表記）のように１０個毎の論理アドレスに対応した１０個ずつのセクタをＳＳＤ側での最小管理単位として扱う。
【００２５】
１つの最小単位は、順に並ぶ論理アドレス０〜９（１０進法表記）の１０セクタ分を上記論理アドレス０〜９の順序を保持したままとして扱う。前記のように半導体不揮発性メモリＦＬ０〜ＦＬ９のように１０チャネル分の入出力部を持つために、１回の書き込みで８０ｋＢのデータの書き込みが可能である。そこで、ライトバッファＷＢ０，ＷＢ１は、前記のようにそれぞれ８０ｋＢの記憶容量を持つようにされる。したがって、ライトバッファＷＢ０，ＷＢ１は、それぞれが５ｋＢの最小管理単位を１６個分を記憶することができる。
【００２６】
同図に例示されているような５ｋＢのライトデータＷＤ１，ＷＤ２，ＷＤ３が論理アドレス順とは無関係にランダムに入力されると、最初のライトデータＷＤ１はライトバッファＷＢ０の先頭に格納され、第２番目のライトデータＷＤ２は上記ライトデータＷＤ１の次に格納され、第３番目のライトデータＷＤ３は上記ライトデータＤＷ２の次に格納されれる。このように、１６個分のライトデータＷＤ１〜ＷＤ１６（図示せず）が論理アドレスの順序とは無関係にされてライトバッファＷＢ０に入力順に従って書き込まれ、１６個目に引き続き１７個目以上のライトデータが入力されると、ライトバッファＷＢ１に前記同様に格納される。
【００２７】
ライトバッファＷＢ１へのライトデータの入力と並行して、ライトバッファＷＢ０に格納された８０ｋＢのデータは、１ページ（ＰＡＧＥ）分データとして不揮発性メモリＦＬ０〜ＦＬ９に書き込まれる。この書き込みの準備動作として、ライトバッファＷＢ０からは前記のように３２ビット（４Ｂ）の単位で順次にデータが出力されるので、フラッシュ入出力部ＦＩＣでセクタ毎にデータの分配が行われる。例えば、フラッシュインターフェイスライトデータＷＤ１の１０進法での最下位桁０に対応した論理アドレスのセクタがチャネル０に対応した不揮発性メモリＦＬ０に、同様な最下位桁１に対応した論理アドレスのセクタがチャネル１に対応した不揮発性メモリＦＬ１に、以下同様に最下位桁９に対応した論理アドレスのセクタがチャネル９に対応した不揮発性メモリＦＬ９にそれぞれ入力される。ライトデータＷＤ２，ＷＤ３においても、前記ライトデータＷＤ１と同様にして不揮発性メモリＦＬ０〜９に入力される。
【００２８】
この実施例では、不揮発性メモリの物理アドレスＢｉｄｘは、０〜ｍａｘまでのアドレス空間を有し、各物理アドレスにより１ページ（ＰＡＧＥ）分のデータを指定する。通常メモリアドレスは、２進のアドレス信号により指定される。したがって、ＳＳＤの最小管理単位も４セクタや８セクタのように２進の重みに対応して設定することが考えられる。例えば８セクタ（４ｋＢ）を最小管理単位とし、８チャンネルの不揮発性メモリＦＬ０〜７を用いて１ページ（ＰＡＧＥ）を６４ｋＢ（１２８セクタ）とすることもできる。この場合には、ホスト論理アドレス空間に対して物理アドレス空間は、前記最小管理単位により１／８（３ビット分）に縮小され、１６個の最小管理単位により１ページが構成されるので更に１／１６（４ビット分）に縮小されることになる。この結果、ホスト論理アドレス空間と不揮発性メモリの物理アドレス空間とが縮小された形態で一致し、前記図９で説明したようなランダムライトアクセスのためのフリー部分や代替（不良救済）を設けるために物理アドレスに拡張ビットを付加しなければならない。
【００２９】
この実施例のように最小管理単位を１０セクタのように設定し、それに対応して１０チャネルの不揮発性メモリＦＬ０〜９として１ページ当たりのセクタ数を１０×１６＝１６０個のように増加させることにより、前記８セクタ（４ｋＢ）を最小管理単位とした場合の物理アドレス空間内に、ホスト論理アドレス空間に格納される全データを記憶することができる記憶領域の他に余分の記憶領域を設けることができる。この記憶領域は、前記ランダムライトアクセスのためのフリー部分や代替分（不良救済）とシステム検索領域として使用される。すなわち、この実施例の物理アドレス空間は、ページ０（ＰＡＧＥ０）から最終ページ（ｍａｘ）までがシステム検索領域、初期割当領域、初期未使用領域及び代替分が割り当てられる。初期割当領域は、前記データ領域（論理アドレス割当分）であり、ホスト論理アドレス空間の全データが格納可能な記憶容量を持つ。そして、前記のような最小管理単位により生成した記憶領域が、上記初期未使用領域及び代替分に振り分けられる。
【００３０】
不揮発性メモリの前記各領域は、消去単位群として全体が示されているように複数の消去単位から構成され、消去単位の先頭は、ブロックアドレスＢｉｄｘ０とされる。同図において、代表として３つの消去単位がハッチャングが付されて、それぞれにブロックアドレスＢｉｄｘＰ，ブロックアドレスＢｉｄｘＲ，ブロックアドレスＢｉｄｘＱとして例示されている。
【００３１】
１つの消去単位（ＢＳＴ）は、ページ（ＰＡＧＥ）０から６３までの６４ページを持つようにされる。１ページ（ＰＡＧＥ）には、８０ｋＢ（１６０セクタ）が割り当てられるから、１つの消去単位には約５ＭＢ（メガバイト）にされる。ランダムライトアクセスにおいては、消去単位（ＢＳＴ）は、現書込先ＢｉｄｘＱと、次フリー候補ＢｉｄｘＰ及びフリー（未使用）ＢｉｄｘＲの３個分が用意されている。
【００３２】
現書込先ＢｉｄｘＱには、前記のようにランダムライトアクセスによるライトデータＷＤ１，ＷＤ２，ＷＤ３がライトバッファＷＢ０を介してページ単位で書き込まれる。ライトバッファＷＢ１に格納されたライトデータは、次のページに書き込まれる。このようにライトバッファＷＢ０とＷＢ１に格納された１ページ分（８０ｋＢ）が現書込先ＢｉｄｘＱに矢印で示したように順次にキャッシュアウトされる。したがって、ホスト論理アドレスで指定されるライトデータＷＤ０〜ＷＤ３は、それぞれが書き込まれたライトバッファＷＢ０の格納位置情報、かかるライトバッファＷＢ０の書込先の消去単位ＢｉｄｘＱのブロックアドレス情報及びページ情報ＰＡＧＥにより特定された物理アドレスがそれぞれに割当られる。このような物理アドレスへの変換情報は、上記ライトバッファＷＢ０へのライトデータＷＤ１，ＷＤ２，ＷＤ３等の書込毎に生成され、半導体揮発性メモリＳＤＲＡＭの変換テーブルに書き込まれる。
【００３３】
ライトバッファＷＢ０に既にライトデータＷＤ１が格納されている状態でホスト側から更新されたライトデータＷＤ１’が再度入力されると、ライトバッフＷＢ１での書き換えが行われる。これにより、更新されたライトデータＷＤ１’によって無効となるライトデータＷＤ１をフラッシュメモリに書き込んでしまうという無駄が無くなる。
【００３４】
現書込先ブロックＢｉｄｘＱにおいて、最終ページの１つ前のページ６２までのキャッシュアウトされると、逆引きバッファＢＵＦに格納されている逆引き情報位置を最終ページ６３に格納して現書込先ブロックＢｉｄｘＱを閉じる。予め確保されているフリー（未使用）ＢｉｄｘＲの消去を開始する。この消去中に次フリー候補をシステム検索領域や代替分を除いた消去単位群（初期割当領域＋初期未使用領域）の中から論理アドレスとのアドレス関係制約なくフラットに検索する。この検索は、有効データ量の最も少ないものが選ばれる。つまり、前記ランダムライトアクセスによるキャッシュアウトによって無効となるデータが発生するので、有効データが最も少ないものは、逆に言えば書き換えによって無効データにされたものが多数発生したものが選ばれる。同図では、次フリー候補ＢｉｄｘＰが検索された。このような検索動作は、例えばＣＰＵを用いて行うようにすることもできるが、高速に行うようにするためにために、図１の実施例のようにフリーブロック検索エンジンを構成する専用制御回路ＬＯＧ１が設けられている。
【００３５】
前記フリー（未使用）ＢｉｄｘＲの消去が完了すると、上記検索された次フリー候補ＢｉｄｘＰにハッチャングで示された有効データがライトバッファＷＢ０，ＷＢ１に読み出され、消去完了のフリー（未使用）ＢｉｄｘＲに順次に書き込まれる。このような有効データの移動に対応してアドレス変換テーブルも更新される。つまり、ブロックアドレスがＢｉｄｘＰは、ＢｉｄｘＲに変更され、ライトバッファの格納位置及びページアドレスも変更される。この実施例では、このような消去単位間での有効データの移し替えをコンパクション動作と呼ぶ。この時、移動される最小管理単位が１ページに満たないときには、つまり、同図に異なるハッチャングで示した２つの最小管理単位については、ライトバッファＷＢ０（又はＷＢ１）に残される。フリー（未使用）ＢｉｄｘＲは、同図では３ページ分に書き込まれた状態で、新しい現書込先とされる。このようなコンパクション動作は、例えばＣＰＵを用いて行うようにすることもできるが、高速に行うようにするためにために、図１の実施例のようにコンパクションエンジンを構成する専用制御回路ＬＯＧ３が設けられている。
【００３６】
ライトバッファＷＢ０（又はＷＢ１）には、上記のように移動できずに残された２つの最小管理単位が存在するので、ランダムライトアクセスによるホスト側からのライトデータは２つの最小管理単位の後に順に入力され、２つの最小管理単位を含めて１６個の１ページ分となったとき、つまりはランダムライトアクセスに１４個分の最小管理単位が入力されたときに上記新しい現書込先ＢｉｄｘＲの第４ページ目に書き込まれる。そして、上記次フリー候補ＢｉｄｘＰは、新しいフリー（未使用）になる。この実施例のＳＳＤのランダムライトアクセスにおいては、上記３種類の消去単位を消去単位群（初期割当領域＋初期未使用領域）の中から論理アドレスとのアドレス関係制約なくフラットに更新される。このように、ホスト論理アドレスと不揮発性メモリの物理アドレスの関係制約を無くし、不揮発性メモリの領域全体から各消去単位（消去ブロック）内の空きページへ書込みが可能であるようなアドレス管理とすることにより、消去動作の発生頻度を少なくし、平均ライトアクセス時間の改善を図ることができる。
【００３７】
発明の理解を容易にするため、単純にホスト側から最小管理単位でランダムライトアクセスが行われた例を説明したが、実際にはホスト側からは論理アドレスに対応した１セクタで書き込むこと、あるいは複数の任意のセクタ数に対してアクセスすることは当然ある。この結果、最小管理単位内の１ないし数セクタ、あるいは最小管理単位を跨ぐ数セクタでのランダムライトアクセスが発生する。
【００３８】
ホスト側からはライトデータの任意の先頭論理アドレスとセクタ数Ｎが入力される。したがって、ライトバッァＷＢ０等には、最小管理単位の持つ前記０〜９のアドレスのうち、上記先頭の論理アドレスに対応した０〜９のうちいずれか１つを指定して上記セクタ数に対応して９まで順次に書き込まれる。セクタ数Ｎが当該最小管理単位を超えるときには、次の最小管理単位に残りのセクタが０から順に入力される。この結果、ライトバッァＷＢ０等においては、前記のようなランダムライトアクセスによって最小管理単位に無効データ（無効セクタ）が含まれるものが発生する。このため、フラッシュメモリへの１ページ分の書き込みの際に、当該最小管理単位の以前の記憶情報（１０セクタ分）をフラッシュメモリから読み出し、上記ランダムライトアクセスによって入力された更新データを除いた無効データ部分に対応したセクタデータがコピーされる。このような置き換えによって、ライトバッァＷＢ０等には最小管理単位毎に常に最新データ（更新データ）が格納され、前記のような現書込先とされるフラッシュメモリに書き込まれる。このうな書き込み動作に対応して上記フラッシュメモリにおける以前のコピー元の最小管理単位は無効にされる。
【００３９】
前記論理アドレスと物理アドレスとは、最小管理単位毎の物理アドレスに対応した変換テーブルを作成すればよい。１つの最小管理単位毎には、固定的にセクタは順に並んで記憶されるので、最小管理単位毎の物理アドレスがわかれば、その中に記憶された１つのセクタを特定することができる。最も簡単な変換テーブルは、前記１０セクタ分の論理アドレスに対応して、物理アドレスを検索するようなテーブルを作成すればよい。しかしながら、３２ＧＢのような記憶容量を持つ論理アドレス空間に対して直接に変換するアドレス変換テーブルを生成するは、前記半導体揮発性メモリＳＤＲＡＭの記憶容量が増大してしまう。このようなアドレス変換のためのテーブル検索は、ＣＰＵを用いて行うようにすることもできるが、高速動作化のために、図１の実施例のようにテーブル検索エンジンを構成する専用制御回路ＬＯＧ２が設けられている。
【００４０】
図３には、この発明に係る記憶装置ＳＳＤにおけるアドレス変換テーブルの一実施例の説明図が示されている。この実施例の管理テーブルは、次のように５種類から構成される。ＰＡＰＡＴは、ページアドレス物理アドレステーブルであり、ホスト論理アドレス（ＨＬＢＡ）に対応するアドレス変換テーブルの格納先を示す。ＰＡＰＡＴは、ホスト論理アドレス６４０ｋＢ分（５ｋＢ×１２８）の物理格納先を４Ｂで示す。このＰＡＰＡＴは、不揮発性メモリ（フラッシュメモリに）に格納せず、起動時にＰＡＴとＢＳＴから揮発性メモリＳＤＲＡＭに構築し、動作中は揮発性メモリＳＤＲＡＭにて最新情報を常時管理する。
【００４１】
ＰＡＴは、ページアドレステーブルであり、ホスト論理アドレスの物理アドレスを示す。このＰＡＴは、不揮発性メモリ（フラッシュメモリに）格納され、必要に応じて揮発性メモリＳＤＲＡＭにリードされる。
【００４２】
ＢＳＴは、ブロック状態テーブルであり、不揮発性メモリの消去単位（ブロック）を複数まとめた管理情報である。ＢＳＴは、起動時に全てが展開され、揮発性メモリＳＤＲＡＭ上で最新情報を常時管理し、不揮発性メモリにも格納する。
【００４３】
ＵＤＲＶＳは、ユーザデータ逆引き情報であり、前記のようなフリー（未使用）の消去単位を生成するためのユーザデータ用の消去単位（ブロック）の移し替え（コンパクション）時，消去単位中のどの最小管理単位が有効か判定するためのテーブルへのＰＡＰＡＴインデックスとＰＡＴ内インデックス（バックポインタ情報）であり、前記図２の消去単位の最終ページ６３にまとめて記憶される。
【００４４】
ＴＲＶＳは、テーブル逆引き情報であり、テーブル用消去単位（ブロック）の前記移し替え（コンパクション）時、消去単位中に書き込んだＰＡＴ／ＢＳＴテーブル（５１２Ｂ）のＰＡＴ／ＢＳＴインデックス（バックポインタ）情報である。各ページＰＡＧＥ毎と各消去単位毎の最終ページ６３にまとめて格納される。各ページＰＡＧＥにおいては、前記のように１０×１６＝１６０個のセクタが格納されるが、最後の１６０番目のセクタに上記テーブル逆引き情報が格納される。
【００４５】
図３において、変換対象のホスト論理アドレスＨＬＢＡｘは、最小管理単位（５ｋＢ）×１２８のホストページアドレスＨＰＡｘに変換される。揮発性メモリに全展開されているＰＡＰＡＴのＨＰＡｘで指定されたアドレスには、ＢＳＴインデックスが格納されており、これを参照するとＰＡＴの物理格納先情報（ページ情報とＢＳＴインデックス）を取得することができる。揮発性メモリに全展開されているＢＳＴのＢＳＴインデックスにより指定されたアドレスには、ＰＡＴの物理先（物理ブロック情報）が取得できる。これらから不揮発性メモリのＰＡＴ（５１２Ｂ）をＰＡＴ（バッファ）にリードし、ＨＰＡｘからＰＡＴ内インデックスを換算し、ＨＰＡｘに対応するユーザデータの物理先情報ＢＳＴインデックスを取得する。揮発性メモリに全展開されているＢＳＴのＢＳＴインデックスを参照すると、データの物理先（物理ブロック情報）を取得でき、不揮発性メモリのユーザデータに至る。このようなアドレス変換により、ホスト側から目的の１つのユーザデータをリードできる。
【００４６】
図４には、前記図３のＰＡＰＡＴの概念図が示されている。ＰＡＰＡＴは、前記のようにＰＡＴ（ページアドレステーブル）自体のデバイス物理アドレステーブルであり、ＰＡＴの全体サイズが大きいために揮発性メモリ（ＳＤＲＡＭ）に常駐できない。常駐させるためには、揮発性メモリ（ＳＤＲＡＭ）の記憶容量が増大する。そこで、ＰＡＴのポインタとしてＰＡＰＡＴをＲＡＭに全展開し、ＰＡＴは必要に応じて不揮発性メモリからのリードを行う。ＰＡＰＡＴは、ＰＡＴ自体の物理先情報を揮発性メモリ（ＳＤＲＡＭ）に展開（常駐）したテーブルであり、不揮発性メモリには格納しない。起動時には、ＰＡＴとＢＳＴから最新判定して揮発性メモリ（ＳＤＲＡＭ）に構築する。
【００４７】
ホスト論理アドレスは、１０セクタ分の最小管理単位毎の物理格納先情報を４Ｂで示すようにし、例示的に示されている０〜１，１２７のようなホスト論理アドレスの連続１２８個分＝６４０ｋＢを１セクタ（５１２Ｂ）の更新単位として扱う。ＰＡＰＡＴインデックスは、揮発性メモリ（ＳＤＲＡＭ）にＨＬＢＡ順に全展開状にされてＰＡＴの物理先を示す。
【００４８】
アドレス変換のための各種情報は、最新データが１ページ分まとまると逐一不揮発性メモリに書き込まれる。つまり、ＳＤＲＡＭのテーブルにおいて、アドレス変換のための更新データが１ページ分まとまると不揮発性メモリに退避させることにより、電源遮断時等において不揮発性メモリに退避されるべきデータ量を少なくしている。
【００４９】
図５には、この発明に係る記憶装置ＳＳＤの代表的な動作の１つであるランダムライトアクセス動作の一例を説明するためのブロック図が示されている。前記のようにホストＨＯＳＴ側からのライトデータ（１）は、Ｓ−ＡＴＡ〜Ｐ−ＡＴＡ〜ＡＴＡＣ〜ＲＣを通してＷＢ０，１のうちいずれか一方（同図ではＷＢ０）に入力される。このとき、ＳＤＲＡＭにも並列してデータ格納がされる。このＷＢ０に１６個分の最小管理単位が記憶され、１６個目に引き続き１７個目以上のライトデータが入力されると、ライトバッファＷＢ１に前記同様に格納される（図示せず）。ＷＢ０に記憶された８０ｋＢのデータ（２）は、順次に読み出されてＥＣＣ回路を通してパリティビットが付加されてフラッシュ入出力部ＦＩＣを介して１０チャンネルに振り分けられて不揮発性メモリＦＬ０〜ＦＬ９の現書込先消去単位に書き込まれる。ＷＢ１に記憶された８０ｋＢのデータについても前記同様である。
【００５０】
前記のようにライトデータをＳＤＲＡＭに並列して書き込みを行うようにすることにより、ホストライトからホストリードのようにホストアクセスが切り替わる場合、ＳＤＲＡＭにＷＢ０，ＷＢ１のライトデータが存在するために、ホストライトで使用していたＷＢ０，ＷＢ１のライトデータの退避のための時間が不要であり、直ちにＷＢ０，ＷＢ１をホストリードで利用することができる。つまり、図７で後述するようにＷＢ０，ＷＢ１に不揮発性メモリＦＬ０〜ＦＬ９からのリードデータを上書きすることができる。
【００５１】
図６には、この発明に係る記憶装置ＳＳＤの代表的な他の動作の１つであるコンパクション動作の一例を説明するためのブロック図が示されている。データ（１）は、不揮発性メモリＦＬ０〜ＦＬ９の次フリー候補の消去単位から読み出される有効データであり、ＥＣＣ回路を通して誤り検出訂正が行われてＷＢ０に蓄積される。このＷＢ０に１６個分の最小管理単位が記憶され、１６個目に引き続き１７個目以上の有効データが入力されると、ライトバッファＷＢ１に前記同様に格納される（図示せず）。ＷＢ０に記憶された８０ｋＢの有効データ（２）は、順次に読み出されてＥＣＣ回路を通してパリティビットが付加されてフラッシュ入出力部ＦＩＣを介して１０チャンネルに振り分けられて不揮発性メモリＦＬ０〜ＦＬ９のフリー（未使用）消去単位に書き込まれる。ＷＢ１に記憶された８０ｋＢのデータについても同様である。
【００５２】
図７には、この発明に係る記憶装置ＳＳＤの代表的な動作の他の１つであるリード動作の一例を説明するためのブロック図が示されている。データ（１）は、不揮発性メモリＦＬ０〜ＦＬ９からホストリード要求範囲に対応した読み出しデータであり、ＥＣＣ回路を通して誤り検出訂正が行われてＷＢ０に蓄積される。このＷＢ０に蓄積された記憶されたデータ（２）がＲＣ〜ＡＴＡＣ〜Ｐ−ＡＴＡ〜Ｓ−ＡＴＡを通してホストＨＯＳＴに読み出される。
【００５３】
図８には、この発明に係る記憶装置ＳＳＤの一実施例の概略ブロック図が示されている。同図のコントローラ部は、前記図１のコントローラ部に対応し、揮発性メモリは前記ＳＤＲＡＭに対応し、不揮発性メモリは前記ＦＬ０〜ＦＬ９に対応し、不揮発性メモリＩ／Ｆは前記ＦＩＣに対応している。コントローラ部は、入力回路ＡＴＡＩＦと、ＣＰＵ及びＥＣＣが例示的に示され、論理制御回路ＬＴＣに前記ＲＣ，ＷＢ０，ＷＢ１等が含まれる。この実施例は、ＳＳＤとして前記図１では省略されている部分の一実施例が開示されている。
【００５４】
この実施例のＳＳＤには、電源検出回路ＰＤＴと電源遮断時の動作電圧を確保するためのコンデンサＣＰ及びスイッチＳＷを更に備えている。このコンデンサＣＰは、システム側において予期しない電源遮断が生じた場合でも、その蓄積電荷によって半導体不揮発性メモリやコントローラ部及び半導体揮発性メモリや電源検出回路に電圧を供給して、半導体不揮発性メモリの中断処理を含めた正常終了状態まで動作電圧や、半導体揮発性メモリの退避させるべきデータを半導体不揮発性メモリに退避させる退避時間を確保できるように動作する。コンデンサＣＰは、上記のような中断処理やデータ退避が行われるような動作電圧確保のために必要な容量値を持つようにされる。
【００５５】
上記電源検出回路ＰＤＴは、マイクロコンピュータ等のようなホスト側からの電源電圧を受けて、その電源投入と電源遮断を検出する。これらの電源投入検出信号と電源遮断検出信号は、電源投入又は電源遮断に対応したコントローラ部からの信号、あるいはコントロール線から供給される制御信号に対応してスイッチＳＷの制御や半導体不揮発性メモリと半導体揮発性メモリとの間でのデータ転送動作の指示に用いられる。
【００５６】
スイッチＳＷは、上記その電源投入と電源遮断を検出信号により切り替えられ、コンデンサＣＰが電源電圧による充電動作から、その保持電圧を記憶装置ＳＳＤの内部回路の動作電圧として供給する動作を行う。上記電源検出回路ＰＤＴは、上記コンデンサＣＰの保持電圧が有効に利用できるようにするために、コンデンサＣＰで形成された動作電圧がシステム側に逆流してしまうのを防止するような機能も持つものである。最も簡単な構成は、ダイオード等の一方向性素子を通してシステム側からの電源電圧が、記憶装置ＳＳＤの電源電圧として上記スイッチＳＷを通してコンデンサＣＰにチャージアップされるとともに、コントロール部、半導体不揮発性メモリ、半導体揮発性メモリ、インターフェイス回路Ｉ／Ｆ及び電源検出回路に伝えられる。
【００５７】
ホストシステム側において電源遮断等が発生した場合、上記のように電圧検出回路によりコントローラ部及び半導体不揮発性メモリにはコンデンサＣＰから動作電圧が維持される逆流防止が行われるとともに、インターフェイス回路Ｉ／Ｆが上記システム側からの信号に応答しないように制御され、半導体揮発性メモリに退避データが存在するときには半導体不揮発性メモリの予め決められた退避領域にかかる退避データの退避が行われる。もしも半導体不揮発性メモリへの書き込み動作中ならば、特に制限されないが、リセットコマンドが発行されて半導体不揮発性メモリの書き込み動作が中断処理される。同様に、半導体不揮発性メモリの消去動作中ならばリセットコマンドが発行されて、半導体不揮発性メモリの消去動作も中断処理される。電源遮断時にキャパシタで電圧保持期間中に退避する仕組み以外に、ＯＳ等によりホストから電源オフシーケンスで発行する特定コマンドを受けて退避する仕組みも可能である。これら両方を抱き合わせることも可能である。
【００５８】
この発明に係る記憶装置ＳＳＤにおいては、前記のようにライト制御でページアドレスの関係制約を無くし、領域全体から、各消去ブロック内の空きページへ書込みが可能であるようなアドレス管理とする。データライト時は、消去済ブロックを１つ選んでデータを入力順に書込む。消去済ブロックが無い場合は、無効ページ数が最大のブロックから有効データのみを置換領域内のブロックヘ転送、元のブロックのデータを消去、消去済ブロックと置換領域のブロックの論理アドレスを交換、空きページを持った消去ブロックをデータ領域内へ作成することで、フォーマット容量までページ書込みが可能となる。これを繰返すことで、消去動作の発生頻度を最小とし、平均ライトアクセス時間の改善を図ることができる。
【００５９】
前記記憶装置ＳＳＤを用いてパソコンのＯＳ（オペレーティング・システム）をイントールした場合、記憶装置ＳＳＤの特定の論理アドレスの範囲にのみライトアクセスが行われる可能性がある。この場合には、かかる論理アドレス範囲に対応して特定の消去単位間（物理アドレス領域）での前記のような書込／消去が繰り返して行われてしまうことが考えられる。
【００６０】
本願発明においては最小管理単位で論理アドレスと物理アドレスを変換することに着目し、ホスト側からのランダムライトアクセスの合間に、例えばＣＰＵにより記憶データの書き換えの無い消去単位に対してランダムあるいは一定の手順に従って１ないし複数の最小管理単位を読み出して、現在使用中のライトバッファＷＢ０（ＷＢ１）に書き込む。これにより、当該最小管理単位の論理アドレスを別の物理アドレスが変更され、もとの最小管理単位が無効化される。このような動作をホスト側から書き換えの無いあるいは極端に少ない消去単位に対して繰り返してランダムに実施することにより、このような消去単位においてもいずれは有効データ数が減少し、前記図２の次フリー候補として選ばれることになる。この結果、初期割当領域＋初期未使用領域）の全体について、ほぼ均等に分散させて前記書き換え（消去動作）を実施することができ、書き換え回数の制限を実質的に無くすことができる。
【００６１】
本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、最小管理単位のセクタ数は、１０の他に８等のように２進に対応したものであってよいが、物理アドレス拡張ビットを設けることなく、システム領域や未使用領域、代替領域を設ける上で１０等のように２進に対応したセクタ数＋αに増加させることが便利である。論理アドレスと物理アドレスの変換テーブルの構成は、前記実施例のような階層的に行うことにより、揮発性メモリに常駐させる変換テーブル情報量を少なくするものであればよい。前記のようなアドレス変換や、アドレス変換のための物理アドレスの更新等の制御は、ＣＰＵで行うもの、あるいは専用論理回路により実施するもの等種々の形態をとることができる。
【産業上の利用可能性】
【００６２】
この発明は、一括消去型の半導体不揮発性メモリを用い、ＨＤＤと互換性を持つようにされたＳＳＤ及び半導体不揮発性メモリの記憶方法に広く利用することができる。
【符号の説明】
【００６３】
ＨＯＳＴ…ホスト、Ｓ−ＡＴＡ…インターフェイスチップ、Ｐ−ＡＴＡ…入出力回路、ＡＴＡＣ…コントローラ、ＲＣ…信号経路切替回路、Ｓ１〜Ｓ７、ＳＤＴＡＭＣ…メモリ制御回路、ＳＤＲＡＭ…半導体揮発性メモリ、ＦＬ０〜ＦＬ９…半導体不揮発性メモリ、ＷＢ０，ＷＢ１…ライトバッファ、ＣＰＵ…中央処理装置、ＲＥＧ…レジスタ、ＲＡＭ…メモリ、ＬＯＧ１〜ＬＯＧ３…専用論理回路、
ＷＤ１〜ＷＤ３…ライトデータ、
ＰＤＴ…電源検出回路、ＳＷ…スイッチ、ＣＰ…コンデンサ、ＬＴＣ…論理制御回路。
【図１】
2011128826.tif 000003
【図２】
2011128826.tif 000004
【図３】
2011128826.tif 000005
【図４】
2011128826.tif 000006
【図５】
2011128826.tif 000007
【図６】
2011128826.tif 000008
【図７】
2011128826.tif 000009
【図８】
2011128826.tif 000010
【図９】
2011128826.tif 000011