(57)【要約】【課題】ＥＣＣ回路を搭載する半導体記憶装置の動作の高速化。【解決手段】本発明に係る半導体記憶装置は、メモリセルアレイ１０と、ＥＣＣ回路２０と、無効判定回路４０とを備える。ＥＣＣ回路２０は、メモリセルアレイ１０に書き込まれるライトデータＤＷに対してＥＣＣを算出する。そのライトデータＤＷのデータ幅がＥＣＣの算出に必要なデータ幅に満たない場合、すなわち、一部書き込み時、無効判定回路４０はＥＣＣ回路２０を無効化する。【選択図】図２
2007133986.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルアレイと、
前記メモリセルアレイに書き込まれるライトデータに対してＥＣＣ（Error Correction Code）を算出するＥＣＣ回路と、
前記ライトデータのデータ幅が所定のデータ幅に満たない場合、前記ＥＣＣ回路を無効化する無効判定回路と
を備える
半導体記憶装置。
【請求項２】
請求項１に記載の半導体記憶装置であって、
前記所定のデータ幅は、前記ＥＣＣ回路による前記ＥＣＣの算出に必要なデータ幅である
半導体記憶装置。
【請求項３】
請求項１又は２に記載の半導体記憶装置であって、
前記ＥＣＣ回路は、無効化された場合、前記ＥＣＣの算出をスキップする
半導体記憶装置。
【請求項４】
請求項１乃至３のいずれかに記載の半導体記憶装置であって、
データ幅が前記所定のデータ幅に満たない前記ライトデータは、前記メモリセルアレイ中の第１アドレスに書き込まれ、
前記無効判定回路は、前記第１アドレスに関連付けられた無効情報を保持する
半導体記憶装置。
【請求項５】
請求項４に記載の半導体記憶装置であって、
前記第１アドレスへのリードアクセス時、
前記無効判定回路は、前記無効情報を用いることによって、前記ＥＣＣ回路を無効化する無効信号を前記ＥＣＣ回路に出力する
半導体記憶装置。
【請求項６】
請求項５に記載の半導体記憶装置であって、
前記ＥＣＣ回路は、前記無効信号に応答して、前記第１アドレスから読み出されるリードデータに対するエラー検知・訂正処理をスキップする
半導体記憶装置。
【請求項７】
請求項５又は６に記載の半導体記憶装置であって、
前記第１アドレスから読み出されるリードデータは、前記ＥＣＣ回路を通さずに外部に出力される
半導体記憶装置。
【請求項８】
請求項５乃至７のいずれかに記載の半導体記憶装置であって、
前記無効判定回路は、前記ＥＣＣが有効か無効かを示すフラグを記憶するフラグセルアレイを有し、
前記ライトデータのデータ幅が前記所定のデータ幅に満たない場合、前記無効判定回路は、無効フラグを前記無効情報として前記フラグセルアレイに記録し、
前記第１アドレスへのリードアクセス時、前記無効判定回路は、前記無効フラグを前記フラグセルアレイから読み出し、前記読み出された無効フラグを前記無効信号として出力する
半導体記憶装置。
【請求項９】
請求項５乃至７のいずれかに記載の半導体記憶装置であって、
前記無効判定回路は、
前記第１アドレスを示すアドレス情報が前記無効情報として格納されるアドレス格納領域と、
前記アドレス情報が示す前記第１アドレスと読み出し対象アドレスとの比較を行う比較器と
を有し、
前記読み出し対象アドレスと前記第１アドレスが一致する場合に、前記比較器は、前記無効信号を生成する
半導体記憶装置。
【請求項１０】
請求項９に記載の半導体記憶装置であって、
前記読み出し対象アドレスに格納されたデータを前記メモリセルアレイから読み出す読み出し回路を更に備え、
前記比較器は、前記読み出し回路の動作と並行して、前記比較を実行する
半導体記憶装置。
【請求項１１】
請求項１乃至１０のいずれかに記載の半導体記憶装置であって、
前記ライトデータの書き込みに要するサイクルは、前記ライトデータのデータ幅によらず一定である
半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関し、特にＥＣＣ機能を搭載した半導体記憶装置に関する。
【背景技術】
【０００２】
ＤＲＡＭ等の半導体記憶装置に搭載されるＥＣＣ回路が知られている。ＥＣＣ回路は、単なるメモリエラーの検出だけでなく、データ中でエラーが発生した箇所（ビット）を特定し、それを正しい値に訂正することができる。具体的には、データの書き込み時、ＥＣＣ回路は、そのデータに対して「誤り訂正コード（ＥＣＣ：Error Correction Code）」と呼ばれる情報を算出する。算出されたＥＣＣはメモリ空間に記憶される。その後、そのデータが読み出される際、ＥＣＣ回路は、先に算出されたＥＣＣを参照することによって読み出しデータのエラーを検知・訂正する。
【０００３】
ＥＣＣを算出するために必要とされるライトデータのデータ幅は、予め定められている。例えば、データバス幅が６４ビットの場合、６４ビットのライトデータに対して１つのＥＣＣが算出される。算出されるＥＣＣのビット数は、所定のアルゴリズムにより決定され、この場合８ビットとなる。よって、２５６ビットのデータが書き込まれる場合、算出される４つのＥＣＣの合計ビット数は、３２ビットとなる。
【０００４】
そのアルゴリズムによれば、ライトデータ幅の増加に伴い、算出されるＥＣＣのビット数の増加は緩やかになる。その傾向を用いてＥＣＣの増大を抑制するための技術が、特許文献１に開示されている。その技術によれば、バーストライトされるデータ単位で１つのＥＣＣが算出される。例えば、データバス幅が６４ビットでありバースト長が４である場合、２５６ビットのデータに対して１つのＥＣＣが算出される。この場合、算出されるＥＣＣのビット数は９ビットとなり、ＥＣＣが占めるメモリ空間が全体として削減される。
【０００５】
【特許文献１】特開平１１−１０２３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本願発明者は、次の点に着目した。ＥＣＣ回路において、ＥＣＣを算出するためのデータ幅は予め定められており、その所定のデータ幅は例えば６４ビットである。しかしながら、システムの都合上、例えば１バイトのデータしか書き込まれない場合がある（バイトライト：Byte Write）。そのような所定のデータ幅未満のデータの書き込みは、以下「一部書き込み」と参照される。上述の特許文献１に開示された技術は、ＥＣＣ算出時にデータをまとめることによってＥＣＣを削減することができるが、一部書き込みに対応することができない。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明に係る半導体記憶装置は、メモリセルアレイ（１０）と、ＥＣＣ回路（２０）と、無効判定回路（４０）とを備える。ＥＣＣ回路（２０）は、メモリセルアレイ（１０）に書き込まれるライトデータ（ＤＷ）に対してＥＣＣを算出する。そのライトデータ（ＤＷ）のデータ幅がＥＣＣの算出に必要なデータ幅に満たない場合、すなわち、一部書き込み時、無効判定回路（４０）はＥＣＣ回路（２０）を無効化する。ＥＣＣ回路（２０）は、無効化された場合、ＥＣＣの算出をスキップする。このように、ＥＣＣの算出が選択的に中止されるので、書き込み動作が全体として高速化される。
【０００９】
一部書き込み時、あるライトデータ（ＤＷ）が、メモリセルアレイ（１０）中の第１アドレス（Ａ１）に書き込まれたとする。そのライトデータ（ＤＷ）に対するＥＣＣは算出されていない。従って、その後第１アドレス（Ａ１）からデータが読み出される際には、対応するＥＣＣが無いことを知る必要がある。そのため、一部書き込み時、無効判定回路（４０）は、ＥＣＣ回路（２０）が無効化されたことを示す無効情報（Ｆ１，ＡＤＤＷ）を予め保持する。その無効情報（Ｆ１，ＡＤＤＷ）は、第１アドレス（Ａ１）に関連付けられて所定の格納領域（４１，６０，７０）に格納されていればよい。そうすれば、第１アドレス（Ａ１）へのリードアクセス時、無効判定回路（４０）は、対応するＥＣＣが無いことを知ることができる。対応するＥＣＣが存在しない場合、ＥＣＣ回路（２０）によるエラー検知・訂正機能も無意味である。よって、第１アドレス（Ａ１）へのリードアクセス時、無効判定回路（４０）は、無効情報（Ｆ１，ＡＤＤＷ）を用いることによって、ＥＣＣ回路（２０）を無効化する無効信号（ＤＩＳ）を生成する。無効信号（ＤＩＳ）が生成された場合、第１アドレス（Ａ１）から読み出されるリードデータ（ＤＲ）は、ＥＣＣ回路（２０）を通さずに外部に出力される。従って、読み出し動作が全体として高速化される。
【発明の効果】
【００１０】
本発明に係る半導体記憶装置は、一部書き込みに対応することができる。また、動作速度が全体として高速化される。
【発明を実施するための最良の形態】
【００１１】
添付図面を参照して、本発明に係る半導体記憶装置を説明する。本発明に係る半導体記憶装置は、ＥＣＣ回路を搭載している。
【００１２】
１．構成及び機能
まず、図１を参照して、本発明の実施の形態に係る半導体記憶装置の構成及び機能を説明する。以下の説明において、データバス幅は３２ビットであるとする。
【００１３】
メインセルアレイ１０は、メモリ外部から供給されるデータが格納される記憶領域であり、アレイ状に配置された複数のメモリセルを有している。Ｒ／Ｗアンプ１２は、アドレス信号ＡＤＤで指定されるライトアドレスにライトデータＤＷを書き込む、あるいは、アドレス信号ＡＤＤで指定されるリードアドレスからリードデータＤＲを読み出す。例えば３２ビットのライトデータＤＷは、アドレスＡ１で指定されるブロック１１ａ〜１１ｄに書き込まれる。ブロック１１ａ〜１１ｄの各々は、１バイト（８ビット）のデータを格納することができるとする。
【００１４】
ＥＣＣ回路２０は、ＥＣＣ符号化回路２１とＥＣＣ復号化回路２２を有している。ＥＣＣ符号化回路２１は、１つのライトデータＤＷに対して、１つのＥＣＣ（パリティ）を算出する。ＥＣＣの算出に必要なデータ幅は予め定められている。本例の場合、その所定のデータ幅は“３２ビット”であるとする。ＥＣＣ符号化回路２１によって算出されたＥＣＣは、後述されるＥＣＣセルアレイ３０に、ライトアドレスと関連付けられて記憶される。一方、ＥＣＣ復号化回路２２は、リードアドレスから読み出されるリードデータＤＲに加えて、そのリードアドレスに関連付けられたＥＣＣをＥＣＣセルアレイ３０から受け取る。そして、ＥＣＣ復号化回路２２は、受け取ったＥＣＣを用いることによって、リードデータＤＲにビットエラーが発生しているかどうか検査する。エラーが検出された場合、ＥＣＣ復号化回路２２は、ビットエラーの訂正を行う。エラー検知・訂正処理の後、リードデータＤＲは、出力データＤｏｕｔとして外部に出力される。
【００１５】
ＥＣＣセルアレイ３０は、ＥＣＣ回路２０により算出されたＥＣＣが格納される記憶領域である。Ｒ／Ｗアンプ３２は、アドレス信号ＡＤＤで指定される領域にＥＣＣを書き込む、あるいは、その領域からＥＣＣを読み出す。例えば、あるライトデータＤＷが上述のブロック１１ａ〜１１ｄに書き込まれる時、そのライトデータＤＷに対して算出されたＥＣＣは、アドレスＡ１に対応したブロック３１に格納される。また、ブロック１１ａ〜１１ｄからリードデータＤＲが読み出されるとき、そのブロック３１からＥＣＣも読み出される。
【００１６】
上述の通り、ＥＣＣ回路２０は、３２ビットのライトデータＤＷから１つのＥＣＣを算出するように構成されている。しかしながら、システムの都合上、３２ビット未満のライトデータＤＷしか書き込まれない場合がある。例として、１バイト（８ビット）のデータだけが書き換えられる「バイトライト（Byte Write）」が知られている。例えば画像データのような大きなデータは３２ビット単位で書き込まれるが、アプリケーションが使う変数等は、バイトライトで書き換えられる。バイトライトを含め、ライトデータＤＷのデータ幅が３２ビットに満たない場合の書き込みは、以下「一部書き込み」と参照される。
【００１７】
本実施の形態によれば、一部書き込みが行われる場合、ＥＣＣ機能は止められる。すなわち、一部書き込みが行われる場合、ＥＣＣ回路２０は無効化される。そのため、本実施の形態に係る半導体記憶装置には、ＥＣＣ回路２０を有効にするか無効にするか判定するための回路である判定回路４０が設けられている。判定回路４０は、コマンド信号ＣＭＤに基づいて、ＥＣＣ回路２０を有効にするか無効にするか決定することができる。具体的には、コマンド信号ＣＭＤが“一部書き込み”を示していれば、ＥＣＣ回路２０を無効化すればよい。また、一部書き込みが行われる場合、判定回路４０は「無効情報」を生成する。この無効情報は、一部書き込みによってＥＣＣ回路２０が無効化されたことを示し、一部書き込みが行われたアドレスに関連するＥＣＣが無効になったことを示す。その無効情報を保持するために、判定回路４０は無効情報格納領域４１を有している。
【００１８】
２．通常書き込み／読み出し
再度図１を参照して、通常の書き込み動作及び読み出し動作を説明する。この場合、メインセルアレイ１０に書き込まれるライトデータＤＷのデータ幅は、所定のビット数（３２ビット）を満たしている。コマンド信号ＣＭＤが“一部書き込み”を示していないので、判定回路４０は、ＥＣＣ回路２０を活性化させるためのイネーブル信号ＥＮＢをＥＣＣ回路２０に出力する。イネーブル信号ＥＮＢは、ＥＣＣ回路が有効であることを示す「有効信号」であると言える。このイネーブル信号ＥＮＢに応答して、ＥＣＣ回路２０は通常通り動作する。すなわち、ＥＣＣ符号化回路２１が、ライトデータＤＷに対して１つのＥＣＣを算出する。そして、アドレスＡ１で指定されるブロック１１ａ〜１１ｄにライトデータＤＷが書き込まれると共に、アドレスＡ１に関連付けられたブロック３１に、算出されたＥＣＣが書き込まれる。ＥＣＣ回路２０は無効化されないので、判定回路４０は、アドレスＡ１に関して無効情報を保持する必要はない。
【００１９】
その後同じアドレスＡ１で指定されるブロック１１ａ〜１１ｄからデータが読み出される場合を考える。判定回路４０は、アドレス信号ＡＤＤを参照することによって、そのアドレスＡ１に関する無効情報が存在しないことを検知する。この場合、ＥＣＣ回路２０を無効化する必要はないので、判定回路４０はイネーブル信号ＥＮＢを生成する。このイネーブル信号ＥＮＢに応答して、ＥＣＣ回路２０は通常通り動作する。また、イネーブル信号ＥＮＢに応答して、スイッチ５０は、アドレスＡ１から読み出されるリードデータＤＲをＥＣＣ復号化回路２２に送る。ＥＣＣ復号化回路２２は、そのリードデータＤＲと共に、ＥＣＣセルアレイ３０のブロック３１から読み出されるＥＣＣを受け取る。そして、ＥＣＣ復号化回路２２は、受け取ったＥＣＣを用いることによって、リードデータＤＲに対するエラー検知・訂正処理を行う。エラー検知・訂正処理の後、リードデータＤＲは、出力データＤｏｕｔとして外部に出力される。
【００２０】
３．一部書き込み／読み出し
次に、図２を参照して、一部書き込み動作、及びその後の読み出し動作を説明する。例として、１バイトのライトデータＤＷがアドレスＡ１で指定されるブロック１１ａに“バイトライト”される場合を考える。この場合、ライトデータＤＷのデータ幅は、所定のビット数（３２ビット）を満たしていない。よって、そのままでは、ＥＣＣ回路２０はＥＣＣを作成することはできない。ここで、所定のビット数を満たすように何らかのデータを補充することによって１つのＥＣＣを算出することも考えられるが、本実施の形態によれば、ＥＣＣ回路２０は無効化され、ＥＣＣの算出処理はスキップされる。
【００２１】
判定回路４０は、“バイトライト”を示すコマンド信号ＣＭＤにより、一部書き込みが行われることを検知することができる。この場合、判定回路４０は、ＥＣＣ回路２０を無効にするための「無効信号ＤＩＳ」をＥＣＣ回路２０に出力する。その無効信号ＤＩＳによって、ＥＣＣ回路２０は無効化され、ＥＣＣ機能は停止する。つまり、ＥＣＣ符号化回路２１は、ＥＣＣの算出処理をスキップし、アドレスＡ１に関連するＥＣＣを新たに算出しない。よって、アドレスＡ１に対応したブロック３１に格納されているＥＣＣは新たに更新されず、ライトデータＤＷだけがブロック１１ａにバイトライトされる。アドレスＡ１に対応したＥＣＣが更新されないので、そのＥＣＣは、もはや何の意味ももたない。読み出し動作時にそのＥＣＣを用いるわけにはいかないので、そのＥＣＣが無効であることを示す情報を保持しておく必要がある。そのため、判定回路４０は、アドレスＡ１に関連付けられた無効情報を無効情報格納領域４１に格納する。
【００２２】
その後同じアドレスＡ１で指定されるブロック１１ａ〜１１ｄからデータが読み出される場合を考える。判定回路４０は、アドレス信号ＡＤＤを参照することによって、アドレスＡ１に関する無効情報が無効情報格納領域４１に格納されていることを検知する。これにより、判定回路４０は、アドレスＡ１に関連するＥＣＣが既に無効であることを認識する。ＥＣＣ回路２０によるエラー検知・訂正処理は不可能であるので、判定回路４０は、無効情報を用いることによって無効信号ＤＩＳを生成する。
【００２３】
この無効信号ＤＩＳによって、ＥＣＣ回路２０は無効化される。つまり、ＥＣＣ回路２０は、無効信号ＤＩＳに応答して、リードデータＤＲに対するエラー検知・訂正処理をスキップする。この時、無効信号ＤＩＳに応答して、スイッチ５０は、アドレスＡ１から読み出されるリードデータＤＲを、そのまま出力データＤｏｕｔとして外部に出力する。つまり、リードデータＤＲは、ＥＣＣ回路２０を通さずにそのまま外部に出力される。このスイッチ５０は、ＥＣＣ回路２０の一部であると考えてもよい。尚、ＥＣＣセルアレイ３０のブロック３１から無効ＥＣＣが読み出されてもよいし、読み出されなくてもよい。
【００２４】
４．判定回路４０
以上に説明された処理を実現するための判定回路４０として、例えば、次のものが考えられる。
【００２５】
図３に示される判定回路４０は、フラグセルアレイ６０とコントローラ６３を備えている。フラグセルアレイ６０は、ＥＣＣが有効か無効かを示すフラグが記憶される記憶領域であり、メインセルアレイ１０やＥＣＣセルアレイ３０と同じメモリセルアレイの一部である。フラグには、ＥＣＣが有効であることを示す有効フラグＦ０と、ＥＣＣが無効であることを示す無効フラグＦ１が含まれる。Ｒ／Ｗアンプ６２は、アドレス信号ＡＤＤに基づいて、フラグセルアレイ６０に対するフラグの書き込み及び読み出しを行う。
【００２６】
コントローラ６３は、コマンド信号ＣＭＤに基づいて、一部書き込みが行われるか否かを判定する。コマンド信号ＣＭＤが“一部書き込み”ではなく“通常書き込み”を示す場合、コントローラ６３は、イネーブル信号（有効信号）ＥＮＢをＥＣＣ回路２０へ出力する。この場合は、ＥＣＣ回路２０によってあるＥＣＣが算出され、算出されたＥＣＣは、アドレス信号ＡＤＤが示すアドレスに関連付けられたブロック３１に書き込まれる。それと同時に、アドレス信号ＡＤＤが示すアドレスに関連付けられたフラグセル６１には、ＥＣＣが有効であることを示す有効フラグＦ０が記録される。有効フラグＦ０の値は、例えば“０”である。
【００２７】
一方、コマンド信号ＣＭＤがバイトライト等“一部書き込み”を示す場合、コントローラ６３は、無効信号ＤＩＳをＥＣＣ回路２０へ出力する。この場合は、ＥＣＣは算出されず、ＥＣＣの書き込みも行われない。ただ、アドレス信号ＡＤＤが示すアドレスに関連付けられたフラグセル６１に、ＥＣＣが無効であることを示す無効フラグＦ１が記録される。無効フラグＦ１の値は、例えば“１”である。この無効フラグＦ１が上記無効情報に相当し、フラグセルアレイ６０が無効情報格納領域４１に相当する。
【００２８】
データ読み出し時、Ｒ／Ｗアンプ６２は、アドレス信号ＡＤＤが示すアドレスに関連付けられたフラグセル６１から、フラグを読み出す。読み出されたフラグが有効フラグＦ０であれば、そのアドレスに対応したＥＣＣは有効ということである。よって、その有効フラグＦ０が、そのまま有効信号ＥＮＢとしてＥＣＣ回路２０に送られる。一方、読み出されたフラグが無効フラグＦ１であれば、そのアドレスに対応したＥＣＣは無効ということである。よって、その無効フラグＦ１が、そのまま無効信号ＤＩＳとしてＥＣＣ回路２０に送られる。
【００２９】
フラグの書き換えの例が、図４に示されている。まず、通常書き込みによって、メインセルアレイ中のアドレスＡ１で指定されるブロック１１ａ〜１１ｄにライトデータＤａ〜Ｄｄ（３２ビット）が書き込まれ、ＥＣＣセルアレイ中のアドレスＡ１に関連するブロック３１にＥＣＣ（Ｅ１：６ビット）が書き込まれ、フラグセルアレイ中のアドレスＡ１に関連するフラグセル６１に有効フラグＦ０（１ビット）が書き込まれる。
【００３０】
次に、ブロック１１ａに対してバイトライトが行われるとする。この時、ブロック１１ａのデータＤａが新たなデータＤＡ（８ビット）で書き換えられ、フラグセル６１のフラグは有効フラグＦ０から無効フラグＦ１に書き換えられる。ＥＣＣは算出されないので、Ｅ１のままである。ここで、ブロック１１ａ〜１１ｄに格納されているデータＤＡ，Ｄｂ、Ｄｃ、Ｄｄに対するＥＣＣは、もはやＥ１とは異なる値になっているはずである。つまり、アドレスＡ１に関連するブロック３１に記録されているＥＣＣは無効である。フラグセル６１に記録される無効フラグＦ１は、そのことを示している。
【００３１】
以上に説明された有効フラグＦ０あるいは無効フラグＦ１は、ＥＣＣに新たに追加されるビットと考えることもできる。すなわち、図３及び図４に示された例においては、「通常のＥＣＣ」の代わりに「フラグ付きのＥＣＣ」が用いられると言える。一部書き込みが行われる場合は、フラグだけが更新されると言える。
【００３２】
また、判定回路４０の他の例が図５に示されている。図５に示された判定回路４０は、アドレス格納領域７０、比較器７１、及びコントローラ７２を備えている。アドレス格納領域７０には、一部書き込みが行われたアドレスが格納される。コントローラ７２は、コマンド信号ＣＭＤに基づいて、一部書き込みが行われるか否かを判定する。コマンド信号ＣＭＤが“一部書き込み”ではなく“通常書き込み”を示す場合、コントローラ７２は、イネーブル信号（有効信号）ＥＮＢをＥＣＣ回路２０へ出力する。アドレス格納領域７０には、何も格納されない。
【００３３】
一方、コマンド信号ＣＭＤがバイトライト等“一部書き込み”を示す場合、コントローラ７２は、無効信号ＤＩＳをＥＣＣ回路２０へ出力する。これにより、ＥＣＣ回路２０は無効化される。また、コントローラ７２は、ライトアドレス信号ＡＤＤＷが示すアドレス情報を、アドレス格納領域７０に格納する。そのアドレス情報は、ＥＣＣが無効であるアドレスそのものを示しており、上記無効情報に相当している。また、アドレス格納領域７０が上記無効情報格納領域４１に相当している。
【００３４】
データ読み出し時、読み出し対象を示すリードアドレス信号ＡＤＤＲが比較器７１に入力される。比較器７１は、リードアドレス信号が示すリードアドレスと、アドレス格納領域７０に格納された無効アドレスとの比較を行う。リードアドレスと無効アドレスが一致しない場合、そのリードアドレスに対するＥＣＣは有効である。よって、比較器７１の出力（例えば“０”）は、そのまま有効信号ＥＮＢとして出力される。一方、リードアドレスと無効アドレスが一致する場合、そのリードアドレスに対するＥＣＣは無効である。よって、比較器７１の出力（例えば“１”）は、そのまま無効信号ＤＩＳとして出力される。
【００３５】
図５に示された例によれば、メモリ空間の消費が抑えられる。但し、データ読み出し時に、比較器７１によるアドレス比較動作が必要となる。しかし、無効信号ＤＩＳを生成すべきか否かは、リードデータＤＲがＥＣＣ回路２０に入力されるまでに決定されていればよい。従って、比較器７１によるアドレス比較は、Ｒ／Ｗアンプ１２（図１参照）によるデータ読み出し動作と並行して実行されればよい。アドレス比較動作による処理時間の遅れは発生しない。
【００３６】
５．効果
以上に説明されたように、本発明によれば、ライトデータＤＷが所定のビット数を満たさない場合、ＥＣＣ算出処理は省略される。比較として、一部書き込みの場合にもＥＣＣを作成することを考える。例えば、以下に示されるように、所定のビット数を満たすようにデータを補充することによって１つのＥＣＣを算出することが考えられる。図４を参照して、バイトライトが行われる場合に、ブロック１１ａ〜１１ｄからデータＤａ〜Ｄｄが一旦読み出され（ダミーリード処理）、データＤａだけが１バイトのライトデータＤＡで置換される。そして、３２ビットのデータ「ＤＡ，Ｄｂ，Ｄｃ，Ｄｄ」に対して１つのＥＣＣが算出される。その後、３２ビットのデータ「ＤＡ，Ｄｂ，Ｄｃ，Ｄｄ」がブロック１１ａ〜１１ｄに書き込まれると共に、算出された新たなＥＣＣがブロック３１に書き込まれる。このように、ダミーリード処理によって、バイトライト時にも有効なＥＣＣを作成することは可能である。
【００３７】
図６には、本発明に係る処理（ＥＣＣ一時無効化）とダミーリード処理との比較が示されている。いずれの処理においても、通常書き込みには３サイクル要するとする。通常書き込みと異なるバイトライトは、書き込み制御における「割り込み」として扱われる。バイトライト時にダミーリード処理が行われる場合、書き込み時間はそのダミーリード処理の分だけ長くなり、バイトライトには例えば６サイクル要する。一方、本発明によれば、ＥＣＣ処理は行われないので、通常書き込みと同じ３サイクルで充分である。従って、ダミーリード処理が行われる場合と比較して、メモリ動作が高速になる。つまり、本発明によれば、パフォーマンスが向上する。また、通常動作時とバイトライト時とで書き込みサイクルを変更する必要がない。つまり、書き込みサイクルを、ライトデータＤＷのデータ幅によらず一定に設定することが可能である。割り込みに対応するための特別なサイクル制御は必要ないため、サイクル制御が簡単になる。
【００３８】
以上に説明されたように、本発明に係る半導体記憶措置によれば、パフォーマンスが向上し、また、サイクルの制御性が向上する。
【００３９】
ＥＣＣ処理を省略することのメモリ信頼性への影響に関する議論は、次の通りである。一般に、画像データや音声データといった大きなデータは、通常書き込みで処理される（上記例では３２ビットごとに処理される）。一方、バイトライトで処理されるデータは、アプリケーションが使う変数等であることが多い。よって、バイトライトが行われるエリアは、通常書き込みが行われるエリアより充分小さいと考えられる。また、信頼性が劣化した劣化セルは、例えば２５６ＭＢのうち数ビットであると言われている。そのため、バイトライトが行われるエリアに劣化セルが含まれる確率は、非常に小さいと考えられる。よって、確率論の観点から言えば、バイトライト時にＥＣＣ処理が省略されても、実効的にはメモリ信頼性は低下しないと考えられる。
【００４０】
また、バイトライトが行われるエリアは小さいものの、アプリケーションが使う変数等は、システム上重要な変数であり頻繁に書き換えられる。これは、バイトライトによる割り込みが頻繁に発生することを意味する。割り込みが頻繁に発生するからこそ、本発明による効果、すなわちパフォーマンス及びサイクル制御性の向上が顕著となる（図６参照）。バイトライトが行われるエリアが小さいが、バイトライトが頻繁に実行される場合に、ＥＣＣ処理を省略することのメリットは大きいと言える。
【図面の簡単な説明】
【００４１】
【図１】図１は、本発明の実施の形態において有効信号ＥＮＢが生成される場合の半導体記憶装置の状態を示すブロック図である。
【図２】図２は、本発明の実施の形態において無効信号ＤＩＳが生成される場合の半導体記憶装置の状態を示すブロック図である。
【図３】図３は、本実施の形態に係る判定回路の一例を示すブロック図である。
【図４】図４は、一部書き込みの一例を示す概念図である。
【図５】図５は、本実施の形態に係る判定回路の他の例を示すブロック図である。
【図６】図６は、本発明による効果を説明するためのタイミングチャートである。
【符号の説明】
【００４２】
１０    メインセルアレイ
１２    Ｒ／Ｗアンプ
２０    ＥＣＣ回路
２１    ＥＣＣ符号化回路
２２    ＥＣＣ復号化回路
３０    ＥＣＣセルアレイ
３２    Ｒ／Ｗアンプ
４０    判定回路
４１    無効情報格納領域
５０    スイッチ
６０    フラグセルアレイ
６１    フラグセル
６２    Ｒ／Ｗアンプ
６３    コントローラ
７０    アドレス格納領域
７１    比較器
７２    コントローラ
ＤＷ    ライトデータ
ＤＲ    リードデータ
Ｄｏｕｔ  出力データ
ＥＮＢ    有効信号
ＤＩＳ    無効信号
【図１】
2007133986.tif 000003
【図２】
2007133986.tif 000004
【図３】
2007133986.tif 000005
【図４】
2007133986.tif 000006
【図５】
2007133986.tif 000007
【図６】
2007133986.tif 000008