(57)【要約】      （修正有）【課題】半導体記憶装置において、処理性能の向上が可能な制御技術を提供する。【解決手段】命令解釈部６０は、コマンドを解釈し、セクタアドレスを抽出する。アドレス変換テーブル記憶部７０は、セクタアドレスの集合とページアドレスと管理情報とを対応付けて記憶する。特殊セクタ記憶部８０は、特殊セクタアドレスを記憶する。アドレス変換テーブル管理部６１は、コマンドがデータのアクセスを要求する場合、セクタアドレスを用いてアドレス変換テーブル記憶部７０の管理情報を参照して、ページ内に特殊セクタがあるか否かを判定する。判定結果が否定的であれば、アクセス制御部６４は、フラッシュメモリ素子にアクセスし、判定結果が肯定的であれば、特殊セクタ管理部６２は、セクタアドレスが特殊セクタアドレスとして特殊セクタ記憶部８０に記憶されているか否かを判定し、判定結果に応じて、特殊応答データ作成部６３は、応答データを作成する。【選択図】図２
2011060007.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの記憶領域における論理的な記憶位置を示すセクタアドレスの集合と、前記不揮発性メモリの記憶領域における物理的な記憶位置をページ単位で示すページアドレスと、前記ページに不良セクタ及びTRIMのコマンドによりトリムされたトリムセクタのうち少なくとも一方である特殊セクタがあるか否かを示す管理情報とを対応付けて記憶する第１記憶部と、
指定されたセクタアドレスへのアクセスが要求された場合、前記管理情報を参照して、当該セクタアドレスに対応する前記ページアドレスによって特定される前記ページに前記特殊セクタがあるか否かを判定する第１判定部と、
前記ページに前記特殊セクタがある場合、所定の応答データを作成する作成部と、
前記ページに前記特殊セクタがない場合、前記セクタアドレスに対応する、前記不揮発性メモリの記憶位置にアクセスする制御部とを備える
ことを特徴とする制御装置。
【請求項２】
指定された第１セクタアドレスについて特殊セクタの登録が要求された場合、当該セクタアドレスに対応する前記ページアドレスによって特定される前記ページに前記特殊セクタがあることを示すよう、前記第１記憶部に記憶された前記管理情報を更新する第１更新部を更に備える
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記管理情報は、前記ページに前記特殊セクタがない、前記ページ全てに前記特殊セクタがある又は前記ページの一部に前記特殊セクタがあるかのいずれかを示し、
前記第１更新部は、
前記第１セクタアドレスについて特殊セクタの登録が要求された場合、当該第１セクタアドレスの登録によって、当該セクタアドレスに対応する前記ページアドレスによって特定される前記ページ全てに前記特殊セクタがあることになるか否かを判定する第２判定部と、
前記ページ全てに前記特殊セクタを含むことになると判定された場合、前記ページ全てに前記特殊セクタがあることを示すよう、前記第１記憶部に記憶された前記管理情報を更新し、前記ページの一部に前記特殊セクタがあると判定された場合、前記ページの一部に前記特殊セクタがあることを示すよう、前記第１記憶部に記憶された前記管理情報を更新する第２更新部とを有する
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記特殊セクタのセクタアドレスを記憶する第２記憶部を更に備え、
前記第１判定部は、
指定されたセクタアドレスへのアクセスが要求された場合、前記管理情報を参照して、当該セクタアドレスに対応する前記ページアドレスによって特定される前記ページに前記特殊セクタがあるか否かを判定する第３判定部と、
前記ページに前記特殊セクタがあると判定された場合、前記セクタアドレスが前記第２記憶部に記憶されているか否かを判定する第４判定部とを有し、
前記作成部は、前記セクタアドレスが前記第２記憶部に記憶されていると判定された場合、前記応答データを作成し、
前記制御部は、前記セクタアドレスが前記第２記憶部に記憶されていないと判定された場合、前記セクタアドレスに対応する前記記憶位置にアクセスする
ことを特徴とする請求項３に記載の制御装置。
【請求項５】
指定された第１セクタアドレスについて前記特殊セクタの登録が要求された場合、前記第１セクタアドレスを前記第２記憶部に記憶させる記憶制御部を更に備える
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記記憶制御部は、指定された第１セクタアドレスについて前記特殊セクタの登録が要求された場合且つ前記第１セクタアドレスの登録によって、当該第１セクタアドレスに対応する前記ページアドレスによって特定される前記ページ全てに前記特殊セクタがあることにはならないと判定された場合、前記第１セクタアドレスを前記第２記憶部に記憶させる
ことを特徴とする請求項５に記載の制御装置。
【請求項７】
前記記憶制御部は、指定された第１セクタアドレスについて前記特殊セクタの登録が要求された場合且つ前記第１セクタアドレスの登録によって、当該第１セクタアドレスに対応する前記ページアドレスによって特定される前記ページ全てに前記特殊セクタがあることになると判定された場合、前記ページアドレスに対応する全ての前記セクタアドレスを前記第２記憶部から削除する
ことを特徴とする請求項６に記載の制御装置。
【請求項８】
前記第３判定部は、指定されたセクタアドレスへのデータの書き込みが要求された場合前記管理情報を参照して、前記ページに前記特殊セクタがあるか否かを判定し、
前記制御部は、前記セクタアドレスが前記第２記憶部に記憶されていると判定された場合、前記セクタアドレスに対応する前記記憶位置にアクセスして、前記データを書き込み、
前記作成部は、前記セクタアドレスが前記第２記憶部に記憶されていると判定された場合、前記データの書き込みが終了した旨を示す前記応答データを作成し、
前記記憶制御部は、前記セクタアドレスが前記第２記憶部に記憶されている場合、当該セクタアドレスを前記第２記憶部から削除する
ことを特徴とする請求項７に記載の制御装置。
【請求項９】
前記第１更新部は、
指定されたセクタアドレスへのデータの書き込みが要求された場合且つ前記セクタアドレスが前記第２記憶部に記憶されていると判定された場合、前記セクタアドレスに対応する前記ページアドレスに対応する他のセクタアドレスが前記第２記憶部に記憶されているか否かを判定する第５判定部と、
前記他のセクタアドレスが前記第２記憶部に記憶されていないと判定された場合、前記ページに前記特殊セクタがないことを示すよう、前記第１記憶部に記憶された前記管理情報を更新し、前記他のセクタアドレスが前記第２記憶部に記憶されていると判定された場合、前記ページの一部に前記特殊セクタがあることを示すよう、前記第１記憶部に記憶された前記管理情報を更新する第３更新部とを更に有する
ことを特徴とする請求項８に記載の制御装置。
【請求項１０】
前記第３判定部は、指定されたセクタアドレスへのデータの書き込みが要求された場合、前記管理情報を参照して、前記ページに前記特殊セクタがない、前記ページ全てに前記特殊セクタがある又は前記ページの一部に前記特殊セクタがあるかを判定し、
前記記憶制御部は、前記ページ全てに前記特殊セクタがあると判定された場合、前記セクタアドレスに対応する前記ページアドレスに対応する他のセクタアドレスを前記第２記憶部に記憶させる
ことを特徴とする請求項９に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関する。
【背景技術】
【０００２】
例えば、ホスト機器で利用する記憶装置をＨＤＤ(Hard Disk Drive)からフラッシュメモリなどの半導体記憶装置に置換する場合、ＨＤＤに記憶されたデータをフラッシュメモリにコピーすることが考えられている。このＨＤＤに不良セクタがあった場合、不良セクタの記憶位置を示すセクタアドレスから読み出されたデータは、復元不能な誤ったデータとして読み出される（例えば特許文献１参照）。このため、フラッシュメモリにコピーされた後、フラッシュメモリにおいてそのセクタアドレスに対応するデータの格納場所にアクセスする際には、不良セクタへのアクセスとして、なんらかの対策が必要である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２９３１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、不良セクタとフラッシュメモリにおけるデータの格納場所との対応関係をテーブルに登録しておき、フラッシュメモリにアクセスする際には、アクセス毎に、テーブルを参照して、アクセスする対象の格納場所が、不良セクタに相当するか否かを判断することが考えられる。しかし、ＨＤＤにおいて不良セクタが発生する可能性は低いため、アクセスする対象の格納場所が不良セクタに相当する可能性も低い。それにも関らず、アクセスの度に、テーブルを参照して、不良セクタに相当するか否かを判断することは、非効率である。このため、半導体記憶装置において、不良セクタなどの特殊なセクタへのアクセスに際して、全体の処理性能を向上させることが望まれていた。
【０００５】
本発明は、上記に鑑みてなされたものであって、半導体記憶装置において、処理性能の向上が可能な制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、制御装置であって、不揮発性メモリの記憶領域における論理的な記憶位置を示すセクタアドレスの集合と、前記不揮発性メモリの記憶領域における物理的な記憶位置をページ単位で示すページアドレスと、前記ページに不良セクタ及びTRIMのコマンドによりトリムされたトリムセクタのうち少なくとも一方である特殊セクタがあるか否かを示す管理情報とを対応付けて記憶する第１記憶部と、指定されたセクタアドレスへのアクセスが要求された場合、前記管理情報を参照して、当該セクタアドレスに対応する前記ページアドレスによって特定される前記ページに前記特殊セクタがあるか否かを判定する第１判定部と、前記ページに前記特殊セクタがある場合、所定の応答データを作成する作成部と、前記ページに前記特殊セクタがない場合、前記セクタアドレスに対応する、前記不揮発性メモリの記憶位置にアクセスする制御部とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、半導体記憶装置において、処理性能の向上が可能になる。
【図面の簡単な説明】
【０００８】
【図１】半導体記憶装置５０のハードウェア構成を例示する図。
【図２】制御部５１の機能的構成を例示する図。
【図３】アドレス変換テーブル記憶部７０のデータ構成を例示する図。
【図４】特殊セクタ記憶部８０のデータ構成を例示する図。
【図５】不良セクタを新たに登録する処理の手順を示すフローチャート。
【図６】トリムセクタを新たに登録する処理の手順を示すフローチャート。
【図７】トリムセクタを新たに登録する処理の手順を示すフローチャート。
【図８】フラッシュメモリ素子５２からデータを読み出す処理の手順を示すフローチャート。
【図９】フラッシュメモリ素子５２にデータを書き込む処理の手順を示すフローチャート。
【図１０】フラッシュメモリ素子５２にデータを書き込む処理の手順を示すフローチャート。
【図１１】フラッシュメモリ素子５２にデータを書き込む処理の手順を示すフローチャート。
【図１２】不良セクタ記憶部と、トリムセクタ記憶部とのデータ構成を各々例示する図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる制御装置の一実施の形態を詳細に説明する。
【００１０】
ここで、半導体記憶装置のハードウェア構成について図１を用いて説明する。本実施の形態にかかる半導体記憶装置５０は、制御装置である制御部５１とフラッシュメモリ素子５２とを備える。フラッシュメモリ素子５２は、例えば、NAND型フラッシュメモリで用いられる記憶素子である。制御部５１は、プログラムを実行することにより装置全体を制御するＣＰＵ（Central Processing Unit）５３と、各種データや各種プログラムを記憶するＲＡＭ（Random Access Memory）５４と、上位装置であるホスト機器との通信を制御するホストＩ／Ｆ（interface）５５と、フラッシュメモリとの間でデータ転送を制御するフラッシュメモリＩ／Ｆ（不図示）とを有する。
【００１１】
このような構成において、半導体記憶装置５０は、ホストＩ／Ｆ５５を介してホスト機器と通信し、ホスト機器からの要求を示すコマンドに応じて、ホスト機器から送信されるデータをフラッシュメモリ素子５２に記憶したり、フラッシュメモリ素子５２から読み出したデータをホスト機器に送信したり、特殊な処理を必要とするセクタ（特殊セクタという）を登録したりする。特殊な処理とは、特殊セクタへのアクセスが要求された際に、対応付けられた応答のデータ（応答データ）を返す処理である。応答の内容については後述する。特殊セクタとは、例えば、不良セクタや、TRIMのコマンドによりトリムされたセクタ(トリムセクタという) である。TRIMのコマンドについては、例えば、ATA TRIMの場合は以下の文献を参考にすれば良いため、ここではその説明を省略する。また、TRIMコマンドはATA TRIMのコマンドに限られず、他の規格のTRIMのコマンドであってもよい。
http://www.t13.org/Documents/UploadedDocuments/docs2009/d2015r1a-ATAATAPI_Command_Set_-_2_ACS-2.pdf
【００１２】
尚、ホスト機器からのコマンドの解釈は、ＲＡＭ５４に記憶されたプログラムをＣＰＵ５３が実行することで実現される。ホスト機器から送信されるコマンドには、フラッシュメモリ素子５２へのデータの読み出しやフラッシュメモリ素子５２からのデータの書き込みなどのアクセスを要求するものや、特殊セクタの登録を要求するものなどがある。
【００１３】
ここで、データの格納場所について説明する。半導体記憶装置５０内では、データの格納場所は、フラッシュメモリ素子５２の記憶領域における物理的な記憶位置を示すアドレス（物理ブロックアドレスという）で表現される。一方、ホスト機器が半導体記憶装置５０に対して発行するコマンドでは、データの格納場所は、フラッシュメモリ素子５２の記憶領域における物理的な記憶位置とは異なる論理的な記憶位置を示すアドレス（論理ブロックアドレス又はセクタアドレスという）で表現される。
【００１４】
データの格納場所の大きさは、ホスト機器では通常512バイトを単位として扱うため、セクタアドレスは512バイトの単位の記憶領域を指定するのに用いられる。この512バイト単位の記憶領域をセクタと呼ぶ。これに対して、フラッシュメモリ素子５２においてデータを読み書きする単位は、通常2048バイトや4096バイト等の512の2のベキ乗倍の大きさである。この単位の記憶領域をページと呼ぶ。
【００１５】
フラッシュメモリ素子５２の1ページには、セクタアドレスの連続した領域が割当てられる。セクタアドレスがNビットで表現され、1ページの大きさが(512 x 2^n)バイト で表現される時、セクタアドレスから物理ブロックアドレスに変換するためには、まずセクタアドレスの上位(N-n)ビットから、フラッシュメモリ素子５２内の対応するページを特定し、下位nビットでページ内の記憶位置を特定すれば良い。即ち、セクタアドレスの上位(N-n)ビットは、フラッシュメモリ素子５２の記憶領域における論理的な記憶位置を示すセクタアドレスの集合であるといえる。また、物理ブロックアドレスは、フラッシュメモリ素子５２内における物理的な記憶位置をページ単位で示すアドレス（ページアドレスという）を上位に、ページ内の記憶位置を下位にして結合したものである。
【００１６】
半導体記憶装置５０内では、物理ブロックアドレスと、ホスト機器が発行するコマンドにおけるセクタアドレスとの対応関係は、フラッシュメモリ素子５２へのデータの書き込みが行なわれる度に変化する。またあるセクタが正確なデータを記憶できなくなった場合でも、セクタアドレスを他の物理ブロックアドレスに対応付ければ良いため、不良セクタとしてそのセクタを特別扱いする必要はない。
【００１７】
ところが、例えば、ホスト機器で利用する記憶装置をＨＤＤから半導体記憶装置５０に置換する場合などでは、ＨＤＤの全ての内容が半導体記憶装置５０にコピーされる。この時ＨＤＤに不良セクタが含まれる場合には、その不良セクタもコピー対象となる。ＨＤＤの不良セクタのセクタアドレスに対応する、フラッシュメモリ素子５２での物理ブロックアドレスにアクセスする際に、不良セクタへのアクセスとしてエラーを返す必要がある。このため、半導体記憶装置５０は、不良セクタの登録を要求するコマンドをホスト機器から受信すると、当該コマンドに応じて、不良セクタを登録し、登録された不良セクタへのアクセスを要求するコマンドをホスト機器から受信した場合には、エラーを示す応答データをホスト機器に返す。このように不良セクタについては特殊な処理を必要とする。トリムセクタについても同様に特殊な処理を必要とする。このような機能は半導体記憶装置５０の制御部５１によって実現される。以下、制御部５１の機能的構成について具体的に説明する。
【００１８】
図２は、制御部５１の機能的構成を例示する図である。制御部５１は、命令解釈部６０と、アドレス変換テーブル管理部６１と、特殊セクタ管理部６２と、特殊応答データ作成部６３と、データアクセス制御部６４と、データ選択部６５と、応答出力部６６とを有する。また、制御部５１は、アドレス変換テーブル記憶部７０と、特殊セクタ記憶部８０とを有する。これらの記憶部は、例えばＲＡＭ５４に記憶される。また、これらの記憶部のうち少なくとも一方は、バックアップのために、定期的又は任意のタイミングでフラッシュメモリ素子５２へ記憶されるようにしても良い。
【００１９】
命令解釈部６０は、ホストＩ／Ｆ５５を介してホスト機器から受信したコマンドを解釈する。ホスト機器から送信されるコマンドは、データの読み出しを要求する場合には、引数として、読み出し対象のセクタアドレスを含み、データの書き込みを要求する場合には、書き込み対象のデータと、書き込み対象のセクタアドレスとを含み、特殊セクタの登録を要求する場合、登録対象のセクタアドレスを含む。また、特殊セクタとしてトリムセクタの登録を要求する場合には、引数として更にセクタ数を含む。このように、コマンドでは、アクセス対象の登録対象のセクタがセクタアドレスによって指定される。命令解釈部６０は、このようなコマンドを解釈し、当該コマンドに応じて、読み出し対象や書き出し対象であるアクセス対象のセクタアドレスや、登録対象のセクタアドレスや、セクタ数や、書き込み対象のデータを適宜抽出する。
【００２０】
アドレス変換テーブル管理部６１は、物理ブロックアドレス出力部７１と、特殊セクタ有無情報出力部７２とを有し、アドレス変換テーブル記憶部７０へのエントリの記憶や削除やエントリへのアクセスを制御することにより、アドレス変換テーブル記憶部７０を管理する。アドレス変換テーブル記憶部７０は、セクタアドレスの上位(N-n)ビットに対応するページアドレスとの対応関係を記憶すると共に、管理情報を対応付けて記憶する。管理情報とは、ページ内に含まれるセクタのうち、特殊セクタの有無を示す情報である。図３は、アドレス変換テーブル記憶部７０のデータ構成を例示する図である。同図に示されるアドレス変換テーブル記憶部７０では、ページアドレス単位、即ち、ページ単位で管理情報が記憶される。
【００２１】
尚、管理情報は、特殊セクタの有無のみを示すように１ビットの情報であっても良いし、特殊セクタの種類として不良セクタかトリムセクタかを区別可能にするために、複数ビットの情報であっても良い。更に、アドレス変換テーブル記憶部７０のエントリに対するパリティビットを管理情報に持たせて、これを誤り検出に役立てても良い。また、不良セクタとトリムセクタとを区別可能にする場合、1ページ内のセクタが全てトリムセクタである場合と、一部分のみがトリムセクタで残りが通常のセクタである場合とを更に区別可能にしても良い。具体的には、例えば、管理情報は2ビットの情報であるとし、例えば、その値が「00」である場合、特殊セクタがないことを示し、その値が「01」である場合、特殊セクタとして不良セクタがあることを示し、その値が「10」である場合、ページの一部に特殊セクタとしてトリムセクタがあることを示し、その値が「11」である場合、1ページ全てに特殊セクタとしてトリムセクタがあることを示すように管理情報を構成する。以降では、管理情報についてこれらの４値を取り扱う例について説明する。
【００２２】
アドレス変換テーブル管理部６１は、ホスト機器から送信されたコマンドがデータの読み出し又はデータの書き込みを要求する場合、命令解釈部６０が抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブル記憶部７０を参照して、当該キーに対応するページアドレス及び管理情報を取得する。このページアドレスと、命令解釈部６０が抽出したセクタアドレスの下位nビットとが結合される物理ブロックアドレスを物理ブロックアドレス出力部７１はデータアクセス制御部６４に出力する。特殊セクタ有無情報出力部７２は、特殊セクタがあることが管理情報によって示される場合、当該管理情報を特殊セクタ管理部６２に出力する。また、アドレス変換テーブル管理部６１は、ホスト機器から送信されたコマンドが特殊セクタの登録を要求する場合、命令解釈部６０が抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブル記憶部７０を参照して、当該キーに対応するエントリであるページアドレスの管理情報に値を適宜書き込むことにより、管理情報を適宜更新する。
【００２３】
特殊セクタ管理部６２は、特殊セクタ記憶部８０へのエントリの記憶や削除やエントリへのアクセスを制御することにより、特殊セクタ記憶部８０を管理する。特殊セクタ記憶部８０は、特殊セクタのセクタアドレス（特殊セクタアドレスという）と、特殊セクタの種類とを対応付けて記憶する。図４は、特殊セクタ記憶部８０のデータ構成を例示する図である。同図では、特殊セクタアドレスは、特殊セクタ記憶部８０に記憶される順に配列されている。しかし、特殊セクタアドレスは、セクタアドレス順にソートされて記憶されるようにしても良い。また、トリムセクタのように、特殊セクタ記憶部８０への登録や削除が頻繁に発生する可能性が高い場合には、リスト構造や木構造などの形式で特殊セクタアドレスが記憶されるようにしても良い。
【００２４】
特殊セクタ管理部６２は、ホスト機器から送信されたコマンドがデータの読み出し又はデータの書き込みを要求する場合、特殊セクタ有無情報出力部７２から出力された管理情報を受け取ると、命令解釈部６０が抽出したセクタアドレスが、特殊セクタアドレスとして特殊セクタ記憶部８０に記憶されているか否かを判定する。これにより、特殊セクタ管理部６２は、命令解釈部６０が抽出したセクタアドレスが、特殊セクタのアドレスであるか否かを判定する。尚、このような判定を、特殊セクタ有無情報出力部７２から特殊セクタ管理部６２に管理情報が出力されない場合には、特殊セクタ管理部６２は行わない。即ち、命令解釈部６０が抽出したセクタアドレスが特殊セクタアドレスである可能性が高い場合に、特殊セクタ管理部６２は、当該セクタアドレスが特殊セクタアドレスであるか否かの判定を行い、当該セクタアドレスが特殊セクタアドレスである可能性がない場合には、当該判定を行わないことで、当該判定を効率的に行うことができる。そして、特殊セクタ管理部６２は、命令解釈部６０が抽出したセクタアドレスが特殊セクタアドレスであると判定した場合、特殊セクタ有無情報出力部７２から出力された管理情報を特殊応答データ作成部６３に出力する。
【００２５】
また、特殊セクタ管理部６２は、ホスト機器から送信されたコマンドが特殊セクタの登録を要求する場合、命令解釈部６０が抽出したセクタアドレスを用いて、特殊セクタ記憶部８０にセクタアドレス及び特殊セクタの種類を対応付けて特殊セクタ記憶部８０に記憶させる。尚、コマンドに応じたトリムセクタの登録によって、ページの一部にトリムセクタがある状態から1ページ全てにトリムセクタがある状態に遷移する場合には、特殊セクタ管理部６２は、当該ページについて特殊セクタ記憶部８０に記憶されているセクタアドレスの全てを削除する。
【００２６】
特殊応答データ作成部６３は、命令解釈部６０が抽出したセクタアドレスが特殊セクタアドレスであると特殊セクタ管理部６２が判定した場合に、特殊セクタの種類に応じた応答データを作成する。具体的には、特殊セクタ記憶部８０に当該セクタアドレスと対応付けられて記憶されている特殊セクタの種類が不良セクタである場合には、特殊応答データ作成部６３は、エラーを示す応答データを作成する。また、特殊セクタの種類がトリムセクタである場合には、特殊応答データ作成部６３は、ATA TRIMコマンドの取り扱いに関する規格で定められた応答データを作成する。例えば、特定の定数(例えば「0」など)や、乱数などがある。また、命令解釈部６０が抽出したセクタアドレスに対応する物理ブロックアドレスに記憶されているデータを応答データとしても良い。この場合、特殊応答データ作成部６３は、フラッシュメモリ素子５２にアクセスして、当該物理ブロックアドレスに記憶されているデータを読み出す。
【００２７】
データアクセス制御部６４は、フラッシュメモリ素子５２にアクセスして、物理ブロックアドレス出力部７１が出力したブロックアドレスに記憶されたデータを読み出したり、当該ブロックアドレスに、命令解釈部６０が抽出した書き込み対象のデータを書き込んだりする。
【００２８】
データ選択部６５は、データアクセス制御部６４が読み出したデータや、特殊応答データ作成部６３が作成した応答データを応答出力部６６に出力する。尚、特殊セクタの種類がトリムセクタである場合には、特殊応答データ作成部６３は、上述の規格で定められた応答データ又はフラッシュメモリ素子５２にアクセスして読み出したデータを応答データとして選択してこれを応答出力部６６に出力するようにしても良い。
【００２９】
応答出力部６６は、ホスト機器から送信されたコマンドがデータの読み出しを要求する場合、データ選択部６５が出力した応答データを、ホストＩ／Ｆ５５を介してホスト機器に送信する。また、応答出力部６６は、ホスト機器から送信されたコマンドがデータの書き込みを要求する場合且つデータの書き込みが終了した場合、データの書き込みが終了した旨を示す応答データをホストＩ／Ｆ５５を介してホスト機器に送信する。また、応答出力部６６は、ホスト機器から送信されたコマンドが特殊セクタの登録を要求する場合且つ特殊セクタの登録が終了した場合、特殊セクタの登録が終了した旨を示す応答データをホストＩ／Ｆ５５を介してホスト機器に送信する。
【００３０】
以上のような構成において、ホスト機器から受信したコマンドが特殊セクタの登録を要求する場合、制御部５１は、当該コマンドから抽出したセクタアドレスに対応するページアドレスの管理情報に値を書き込んだり、特殊セクタの種類に応じて、当該セクタアドレスを特殊セクタの種類と対応付けて特殊セクタ記憶部８０に記憶したりする。また、ホスト機器から受信したコマンドがデータの読み出しを要求する場合、制御部５１は、当該コマンドから抽出したセクタアドレスが特殊セクタアドレスであれば、所定の応答データを作成し、それ以外であれば、当該コマンドに従ってデータをフラッシュメモリ素子５２から読み出す。また、ホスト機器から受信したコマンドがデータの書き込みを要求する場合、当該コマンドから抽出したセクタアドレスが特殊セクタアドレスであり特殊セクタの種類が不良セクタであれば、制御部５１は、エラーを示す応答データを作成する。また、この場合、当該コマンドから抽出したセクタアドレスが特殊セクタアドレスであり特殊セクタの種類がトリムセクタであれば、制御部５１は、当該コマンドに応じて、当該セクタアドレスに対応するフラッシュメモリ素子５２の記憶位置にデータを書き込むと共に、当該セクタアドレスを正常なセクタのセクタアドレスとして取り扱いを変更する。尚、当該コマンドから抽出したセクタアドレスが特殊セクタアドレスでなければ、制御部５１は、当該コマンドに従ってデータをフラッシュメモリ素子５２に書き込む。
【００３１】
次に、本実施の形態にかかる半導体記憶装置５０の行う処理の手順について説明する。まず、不良セクタを新たに登録する処理の手順について図５を用いて説明する。半導体記憶装置５０の制御部５１は、命令解釈部６０の機能により、ホスト機器から受信したコマンドを解釈し、当該コマンドが不良セクタの登録を要求するものである場合、引数として含まれる登録対象のセクタアドレスを抽出する。そして、制御部５１は、アドレス変換テーブル管理部６１の機能により、抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブルを参照して、当該キーに対応するエントリであるページアドレスの管理情報に、特殊セクタとして不良セクタがあることを示す「01」を書き込む（ステップＳ１）。続いて、制御部５１は、特殊セクタ管理部６２の機能により、コマンドから抽出したセクタアドレスと、不良セクタであることを示すように特殊セクタの種類とを対応付けて特殊セクタ記憶部８０に記憶することにより、不良セクタを新たに登録する（ステップＳ２）。このとき、制御部５１は、想定される登録数が少なければ登録が要求された順にセクタアドレスを記憶するようにしても良いし、セクタアドレス順にソートしても良い。その後、制御部５１は、応答出力部６６の機能により、不良セクタの登録が完了した旨を示す応答をホスト機器に送信する（ステップＳ３）。
【００３２】
次に、トリムセクタを新たに登録する処理の手順について説明する。まず、セクタ数が「１」である場合にトリムセクタを新たに登録する処理の手順について図６を用いて説明する。制御部５１は、命令解釈部６０の機能により、ホスト機器から受信したコマンドを解釈し、当該コマンドがトリムセクタの登録を要求するものである場合、引数として含まれる登録対象のセクタアドレスとセクタ数とを抽出する。抽出したセクタ数が「１」である場合、制御部５１は、コマンドから抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブルを参照して、当該キーに対応するページアドレスの管理情報に、ページの一部に特殊セクタとしてトリムセクタがあることを示す「10」を書き込む（ステップＳ１０）。そして、制御部５１は、特殊セクタ管理部６２の機能により、コマンドから抽出したセクタアドレスと、トリムセクタであることを示すよう特殊セクタの種類とを各々対応付けて特殊セクタ記憶部８０に記憶することにより、トリムセクタを新たに登録する（ステップＳ１１）。その後、制御部５１は、応答出力部６６の機能により、トリムセクタの登録が完了した旨を示す応答をホスト機器に送信する（ステップＳ１２）。
【００３３】
次に、セクタ数が「２」以上である場合にトリムセクタを新たに登録する処理の手順について図７を用いて説明する。制御部５１は、命令解釈部６０の機能により、ホスト機器から受信したコマンドを解釈し、当該コマンドがトリムセクタの登録を要求するものである場合、引数として含まれる登録対象のセクタアドレスとセクタ数とを抽出する。抽出したセクタ数が「２」以上である場合、抽出したセクタアドレスを開始位置として、抽出したセクタ数を長さとした記憶領域が登録対象として要求される範囲となる。この場合、制御部５１は、当該記憶領域をページ区切りで分割し（ステップＳ２０）、分割した各区間について以下の処理を実行する。ステップＳ２１では、全ての区間について処理済であるか否かを制御部５１は判定する。当該判定結果が否定的である場合、制御部５１は、未処理の区間を処理対象として選択し、当該区間が1ページ全体であるか否かを判定する（ステップＳ２２）。当該判定結果が肯定的である場合、制御部５１は、コマンドから抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブルを参照して、当該キーに対応するページアドレスの管理情報に、1ページ全てにトリムセクタがあることを示す「11」を管理情報に書き込む（ステップＳ２３）。その後ステップＳ２１に戻る。
【００３４】
一方、ステップＳ２２の判定結果が否定的である場合、制御部５１は、当該区間の先頭のセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブル記憶部７０を参照して、当該キーに対応するページアドレスの管理情報に、ページの一部にトリムセクタがあることを示す「10」を管理情報に書き込む（ステップＳ２４）。その後、制御部５１は、特殊セクタ管理部６２の機能により、当該区間のセクタアドレスの全てについて、セクタアドレスと、トリムセクタであることを示すように特殊セクタの種類とを各々対応付けて特殊セクタ記憶部８０に記憶することにより、トリムセクタを新たに登録する（ステップＳ２５）。次いで、制御部５１は、当該区間を含むページについて、特殊セクタ記憶部８０に既に記憶されているセクタアドレスと、ステップＳ２５で新たに記憶したセクタアドレスとを合わせると、ページ全体にトリムセクタがあることになるか否かを判定する（ステップＳ２６）。当該判定結果が肯定的である場合、制御部５１は、当該ページについて特殊セクタ記憶部８０に記憶されているセクタアドレスの全てを削除する（ステップＳ２７）。その後、制御部５１は、当該ページについて、そのページアドレスキーをキーとしてアドレス変換テーブル記憶部７０を参照して、当該キーに対応するページアドレスの管理情報に、1ページ全てにトリムセクタがあることを示す「11」を管理情報に書き込む（ステップＳ２８）。その後ステップＳ２１に戻る。ステップＳ２６の判定結果が否定的である場合も、ステップＳ２１に戻る。
【００３５】
全ての区間について上述の処理が終了して、ステップＳ２１の判定結果が否定的となった場合、制御部５１は、応答出力部６６の機能により、トリムセクタの登録が完了した旨を示す応答をホスト機器に送信する（ステップＳ１２）。
【００３６】
以上のようにして、コマンドから抽出したセクタアドレスを開始位置として、コマンドから抽出したセクタ数を長さとした記憶領域に複数のページが含まれる場合には、制御部５１は、先頭のページと最終のページ以外の中間のページについて、アドレス変換テーブル記憶部７０の該当のエントリの管理情報に、１ページ全てにトリムセクタがあることを示す「11」を管理情報に書き込む。先頭のページと最終のページとについては、制御部５１は、１ページ全てにトリムセクタがあるか又は一部にトリムセクタがあるかを判定して、その判定結果に応じて、アドレス変換テーブル記憶部７０の該当のエントリの管理情報に値を書き込む。
【００３７】
尚、アドレス変換テーブル記憶部７０の管理情報によって、1ページ全てにトリムセクタがあるか又は一部にトリムセクタがあるかが判定可能であり、1ページ全てにトリムセクタがある場合には、コマンドから抽出したセクタアドレスが特殊セクタアドレスであることが管理情報のみによって判定できる。このため、この場合には、制御部５１は、特殊セクタ記憶部８０へのトリムセクタの登録を省略できる。また、ページの一部にトリムセクタがある場合には、当該ページにおいて、コマンドによって登録が要求された範囲外のセクタがトリムセクタとして既に登録されている場合を考慮し、制御部５１は、同一のページに関するトリムセクタの登録を統一する。
【００３８】
次に、フラッシュメモリ素子５２からデータを読み出す処理の手順について図８を用いて説明する。制御部５１は、命令解釈部６０の機能により、ホスト機器から受信したコマンドを解釈し、当該コマンドがデータの読み出しを要求するものである場合、引数として含まれる読み出し対象のセクタアドレスを抽出する。そして、制御部５１は、アドレス変換テーブル管理部６１の機能により、コマンドから抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブルを参照して、当該キーに対応するページアドレス及び管理情報を取得する（ステップＳ４０）。そして、制御部５１は、管理情報を用いて、ページ内に特殊セクタがあるか否かを判定する（ステップＳ４１）。具体的には、制御部５１は、管理情報の値が「00」である場合、ページ内に特殊セクタがないと判定し、管理情報の値が「01」、「10」又は「11」である場合、ページ内に特殊セクタがあると判定する。ページ内に特殊セクタがないと判定した場合（ステップＳ４１：ＮＯ）、制御部５１は、データアクセス制御部６４の機能により、ステップＳ４０で取得したページアドレスによって特定される、フラッシュメモリ素子５２内のページにアクセスし、コマンドから抽出したセクタアドレスの下位nビットによって当該ページ内の記憶位置を特定し、当該記憶位置からデータを読み出す（ステップＳ４７）。ステップＳ４７では、このようにして、制御部５１は、コマンドから抽出したセクタアドレスに対応する物理ブロックアドレスからデータを読み出す。その後ステップＳ４８に進む。
【００３９】
一方、ページ内に特殊セクタがあると判定した場合（ステップＳ４１：ＹＥＳ）、制御部５１は、1ページ全てにトリムセクタがあるか否かを判定する（ステップＳ４２）。具体的には、制御部５１は、管理情報の値が「10」であるか否かを判定する。当該判定結果が否定的である場合、制御部５１は、特殊セクタ管理部６２の機能により、コマンドから抽出したセクタアドレスを特殊セクタ記憶部８０において検索し（ステップＳ４３）、当該セクタアドレスが特殊セクタ記憶部８０に記憶されているか否かを判定する（ステップＳ４４）。当該判定結果が否定的である場合には、ステップＳ４７に進む。一方、ステップＳ４４の判定の結果、コマンドから抽出したセクタアドレスが特殊セクタ記憶部８０に記憶されており且つ当該セクタアドレスと対応付けられて記憶されている、特殊セクタの種類が不良セクタであることを示す場合、制御部５１は、特殊応答データ作成部６３の機能により、エラーを示す応答データを作成し、応答出力部６６の機能により、当該応答データをホスト機器に送信する（ステップＳ４５）。
【００４０】
また、ステップＳ４４の判定の結果、コマンドから抽出したセクタアドレスが特殊セクタ記憶部８０に記憶されており且つ当該セクタアドレスと対応付けられて記憶されている、特殊セクタの種類がトリムセクタであることを示す場合、ステップＳ４６に進む。ステップＳ４２の判定結果が肯定的である場合も、ステップＳ４６に進む。ステップＳ４６では、制御部５１は、特殊応答データ作成部６３の機能により、上述した規格に定められた応答データを作成し又はステップＳ４７と同様にして、フラッシュメモリ素子５２にアクセスしてデータを読み出す。その後ステップＳ４８に進む。ステップＳ４８では、制御部５１は、データ選択部６５の機能により、上述した規格に定められた応答データ又はフラッシュメモリ素子５２から読み出したデータを応答データとして選択して、応答出力部６６の機能により、当該応答データをホスト機器に送信する（ステップＳ４８）。
【００４１】
次に、フラッシュメモリ素子５２にデータを書き込む処理の手順について図９〜１０を用いて説明する。制御部５１は、命令解釈部６０の機能により、ホスト機器から受信したコマンドを解釈し、当該コマンドがデータの書き込みを要求するものである場合、引数として含まれる書き込み対象のセクタアドレスと、書き込み対象のデータとを抽出する。そして、制御部５１は、アドレス変換テーブル管理部６１の機能により、コマンドから抽出したセクタアドレスの上位(N-n)ビットをキーとしてアドレス変換テーブルを参照して、当該キーに対応して記憶されているページアドレス及び管理情報を取得する（ステップＳ６０）。そして、制御部５１は、管理情報を用いて、ページ内に特殊セクタがあるか否かを判定する（ステップＳ６１）。具体的には、制御部５１は、管理情報の値が「00」である場合、ページ内に特殊セクタがないと判定し、管理情報の値が「01」、「10」又は「11」である場合、ページ内に特殊セクタがあると判定する。ページ内に特殊セクタがないと判定した場合（ステップＳ６１：ＮＯ）、制御部５１は、データアクセス制御部６４の機能により、ステップＳ６０で取得したページアドレスによって特定される、フラッシュメモリ素子５２内のページにアクセスし、コマンドから抽出したセクタアドレスの下位nビットによって当該ページ内の記憶位置を特定し、当該記憶位置に、コマンドから抽出した書き込み対象のデータを書き込む（ステップＳ６５）。尚、データの書き込みは、ページ単位で行う。このため、制御部５１は、ステップＳ６０で取得したページアドレスによって特定されるページのデータをフラッシュメモリ素子５２のワーク領域に一旦読み出して、当該データにおいて、当該ページアドレスと、コマンドから抽出したセクタアドレスの下位nビットとから結合される論理ブロックアドレスに相当する記憶位置に、コマンドから抽出した書き込み対象のデータを書き込むことにより、当該ページのデータを書き換えた後、書き換えたデータを、フラッシュメモリ素子５２において当該ページアドレスに書き込む。その後、制御部５１は、応答出力部６６の機能により、データの書き込みを終了した旨を示す応答データをホスト機器に送信する（ステップＳ６６）。
【００４２】
一方、ページ内に特殊セクタがあると判定した場合（ステップＳ６１：ＹＥＳ）、制御部５１は、1ページ全てにトリムセクタがあるか否かを判定する（ステップＳ６２）。具体的には、制御部５１は、管理情報の値が「10」であるか否かを判定する。当該判定結果が否定的である場合（ステップＳ６２：ＮＯ）、制御部５１は、特殊セクタ管理部６２の機能により、コマンドから抽出したセクタアドレスを特殊セクタ記憶部８０において検索し（ステップＳ６３）、当該セクタアドレスが特殊セクタ記憶部８０に記憶されているか否かを判定する（ステップＳ６４）。当該判定結果が否定的である場合、ステップＳ６５に進む。一方、ステップＳ６４の判定の結果、コマンドから抽出したセクタアドレスが特殊セクタ記憶部８０に記憶されている場合（ステップＳ６４：ＹＥＳ）、当該セクタアドレスと対応付けられて記憶されている、特殊セクタの種類が不良セクタであることを示しているか否かを判定する（ステップＳ６７）。特殊セクタの種類が不良セクタであることを示す場合（ステップＳ６７：ＹＥＳ）、制御部５１は、特殊応答データ作成部６３の機能により、エラーを示す応答データを作成し、応答出力部６６の機能により、当該応答データをホスト機器に送信する（ステップＳ６８）。
【００４３】
また、ステップＳ６４の判定の結果、コマンドから抽出したセクタアドレスが特殊セクタ記憶部８０に記憶されており、ステップＳ６７の判定の結果、コマンドから抽出したセクタアドレスと対応付けられて記憶されている、特殊セクタの種類がトリムセクタであることを示す場合（ステップＳ６７：ＮＯ）、制御部５１は、ステップＳ１０４の処理を行う。この処理は、ステップＳＳ６６の処理と同様である。その後、ステップＳ１０５では、制御部５１は、コマンドから抽出したセクタアドレスを特殊セクタ記憶部８０から削除する。この結果、当該ページ内でトリムセクタとして登録されたセクタは、正常なセクタに変更される。その後ステップＳ１０６に進む。
【００４４】
一方、ステップＳ６２の判定の結果、1ページ全てにトリムセクタがある場合（ステップＳ６２：ＹＥＳ）、制御部５１は、ステップＳ１０２の処理を行う。この処理は、ステップＳＳ６６の処理と同様である。その後、ステップＳ１０３では、制御部５１は、当該ページ内のセクタについて、コマンドから抽出したセクタアドレス以外の全てのセクタアドレスを特殊セクタアドレスとして、トリムセクタであることを示す特殊セクタの種類と各々対応付けて特殊セクタ記憶部８０に記憶する。この結果、コマンドから抽出したセクタアドレスのセクタは、正常なセクタに変更されると共に、当該ページ内で当該セクタ以外のセクタは、トリムセクタとして改めて登録される。その後ステップＳ１０６に進む。
【００４５】
ステップＳ１０６では、制御部５１は、ステップＳ６５と同様にして、データの書き込みを行う。ここでも上述したようにデータの書き込みはページ単位で行なう。その後、制御部５１は、ステップＳ６０で取得したページアドレスによって特定されるページ内の他のセクタにトリムセクタがあるか否かを判定する。具体的には、制御部５１は、当該ページアドレスに対応する他のセクタアドレスが特殊セクタ記憶部８０に記憶されている且つ当該他のセクタアドレスと対応付けられて記憶されている特殊セクタの種類がトリムセクタであることを示すか否かを判定する。当該判定の結果、当該ページ内の他のセクタにトリムセクタがないと判定した場合（ステップＳ１０７：ＮＯ）、制御部５１は、アドレス変換テーブル記憶部７０の当該ページアドレスの管理情報に、特殊セクタがないことを示す「00」を書き込む（Ｓ１０９）。その後、ステップＳ８７に進む。ステップＳ８７は図１０で説明したものと略同様である。尚、ステップＳ１０６の判定の結果、当該ページ内の他のセクタにトリムセクタがあると判定した場合（ステップＳ１０７：ＹＥＳ）、制御部５１は、アドレス変換テーブル記憶部７０の当該ページアドレスの管理情報に、ページの一部にトリムセクタがあることを示す「10」を書き込む（ステップＳ１０８）。その後、ステップＳ８７に進む。
【００４６】
以上のように、ページ内に特殊セクタがあるか否かを管理情報としてページ単位でアドレス変換テーブルに記憶し、ホスト機器からのコマンドによってアクセスが要求されたセクタアドレスに対応するセクタが特殊セクタである可能性があるか否かを、当該管理情報を参照して判定する。これにより、当該セクタが特殊セクタである可能性がない場合には、当該セクタアドレスが特殊セクタアドレスとして特殊セクタ記憶部８０に記憶されているか否かをいちいち判定する必要がなく、当該セクタアドレスに対応するフラッシュメモリ素子５２の記憶位置からデータを読み出したり、当該記憶位置にデータを書き込んだりすることができる。このため、半導体記憶装置において、全体の処理性能の向上が可能になる。
【００４７】
また、トリムセクタとして登録されたセクタを、データの書き込みによって、正常なセクタに変更することにより、フラッシュメモリ素子５２の記憶効率を向上させることができる。
【００４８】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【００４９】
上述した実施の形態において、半導体記憶装置５０で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供するように構成しても良い。
【００５０】
上述した実施の形態においては、フラッシュメモリ素子５２にデータを書き込む処理において、コマンドから抽出されたセクタアドレスが特殊セクタアドレスとして特殊セクタ記憶部８０に記憶されており当該セクタアドレスと対応付けられている特殊セクタの種類が不良セクタであることを示す場合、制御部５１は、データの書き込みを行わないようにした。しかし、当該不良セクタは、例えばＨＤＤにおける不良セクタに対応しているだけであって、フラッシュメモリ素子５２においては実際には不良ではなく、当該セクタアドレスに対応するフラッシュメモリ素子５２の記憶位置へのデータの読み書きを正常に行うことができる。このため、制御部５１は、ホスト機器からのコマンドに応じて、当該セクタアドレスに対応するフラッシュメモリ素子５２の記憶位置にデータを書き込むと共に、当該セクタアドレスを正常なセクタのセクタアドレスとして取り扱いを変更するようにしても良い。上述したように、データの書き込みはページ単位で行うため、制御部５１は、１ページ分の書き込み対象のデータが揃った段階で、当該ページ内の他のセクタに不良セクタがあるか否かを判定し、不良セクタがない場合に、当該ページのページアドレスに対応付けられてアドレス変換テーブル記憶部７０に記憶される管理情報に、特殊セクタがないことを示す「00」を書き込むことにより、管理情報を更新する。この結果、当該ページ内で不良セクタとして登録されたセクタは、データの書き込みによって、正常なセクタに変更される。
【００５１】
図１２は、本変形例において、フラッシュメモリ素子５２にデータを書き込む処理の手順を示すフローチャートである。ステップＳ６０〜Ｓ６４，６７は、上述の実施の形態と同様である。ステップＳ６７の判定の結果、コマンドから抽出したセクタアドレスと対応付けられて記憶されている、特殊セクタの種類がトリムセクタであることを示す場合（ステップＳ６７：ＮＯ）、制御部５１は、ステップＳ８２の処理を行う。この処理は、ステップＳ６６の処理と同様である。その後、ステップＳ８３では、制御部５１は、コマンドから抽出したセクタアドレスを特殊セクタ記憶部８０から削除する。この結果、当該ページ内で不良セクタとして登録されたセクタは、正常なセクタに変更される。次いで、制御部５１は、ステップＳ６５と同様にして、データの書き込みを行う。ここでも上述したようにデータの書き込みはページ単位で行なう。その後、制御部５１は、ステップＳ６０で取得したページアドレスによって特定されるページ内の他のセクタに不良セクタがあるか否かを判定する（ステップＳ８４）。具体的には、制御部５１は、当該ページアドレスに対応する他のセクタアドレスが特殊セクタ記憶部８０に記憶されている且つ当該他のセクタアドレスと対応付けられて記憶されている特殊セクタの種類が不良セクタであることを示すか否かを判定する。当該判定の結果、不良セクタがないと判定した場合（ステップＳ８５：ＮＯ）、制御部５１は、当該ページアドレスに対応付けられてアドレス変換テーブル記憶部７０に記憶される管理情報に、特殊セクタがないことを示す「00」を書き込む（ステップＳ８６）。その後ステップＳ８７に進む。尚、ステップＳ８４の判定の結果、ページ内の他のセクタに不良セクタがあると判定した場合（ステップＳ８５：ＹＥＳ）、ステップＳ８７に進む。ステップＳ８７では、制御部５１は、アドレス変換テーブル記憶部７０において、セクタアドレスの上位(N-n)ビットとページアドレスとの対応関係を適宜更新する。
【００５２】
以上のように、不良セクタとして登録されたセクタを、データの書き込みによって、正常なセクタに変更することにより、フラッシュメモリ素子５２の記憶効率を向上させることができる。
【００５３】
上述した実施の形態において、1ページ全てにトリムセクタがある場合、特殊セクタ記憶部８０は、当該ページアドレスに対応する全てのセクタアドレスを記憶しないようにしたが、これに限らず、当該ページアドレスに対応する全てのセクタアドレスを記憶するようにしても良い。
【００５４】
上述した実施の形態において、特殊セクタとして、複数の種類を取り扱い、アドレス変換テーブル記憶部７０の管理情報によってその種類を区別可能にした場合、特殊セクタ記憶部８０として、不良セクタのセクタアドレスを記憶する不良セクタ記憶部と、トリムセクタのセクタアドレスを記憶するトリムセクタ記憶部とに分けるようにしても良い。図１２は、本変形例にかかる不良セクタ記憶部と、トリムセクタ記憶部とのデータ構成を各々例示する図である。同図に示されるように、不良セクタ記憶部又はトリムセクタ記憶部に記憶される各セクタアドレスには、特殊セクタの種類を対応付けられていない。制御部５１は、アドレス変換テーブル記憶部７０の管理情報によって不良セクタがあることが示される場合、不良セクタ記憶部を参照し、アドレス変換テーブル記憶部７０の管理情報によって1ページ全てにトリムセクタがある又はページの一部にトリムセクタがあることが示される場合、トリムセクタ記憶部を参照すれば良い。このような構成により、特殊セクタについて効率的な管理が可能になる。
【符号の説明】
【００５５】
５０  半導体記憶装置
５１  制御部
５２  フラッシュメモリ素子
５３  ＣＰＵ
５４  ＲＡＭ
５５  ホストＩ／Ｆ
６０  命令解釈部
６１  アドレス変換テーブル管理部
６２  特殊セクタ管理部
６３  特殊応答データ作成部
６４  データアクセス制御部
６５  データ選択部
６６  応答出力部
７０  アドレス変換テーブル
７１  物理ブロックアドレス出力部
７２  特殊セクタ有無情報出力部
８０  特殊セクタ記憶部
【図１】
2011060007.tif 000003
【図２】
2011060007.tif 000004
【図３】
2011060007.tif 000005
【図４】
2011060007.tif 000006
【図５】
2011060007.tif 000007
【図６】
2011060007.tif 000008
【図７】
2011060007.tif 000009
【図８】
2011060007.tif 000010
【図９】
2011060007.tif 000011
【図１０】
2011060007.tif 000012
【図１１】
2011060007.tif 000013
【図１２】
2011060007.tif 000014