(57)【要約】【課題】カラム系のサイクルを利用したＥＣＣ動作を行う半導体記憶装置において、バイトマスク信号に応じたライトデータの部分的な上書きを可能とする。【解決手段】情報ビットが格納される情報ビット用メモリアレイ２０１と、検査ビットが格納される検査ビット用メモリアレイ２０９と、ライト要求に応答して、メモリアレイ２０１，２０９からライトアドレスに対応する情報ビット及び検査ビットをそれぞれ読み出し、情報ビットに含まれる誤りを訂正する訂正回路２１５と、訂正回路２１５によって訂正された情報ビットを一時的に保持するミキサ２２０とを備える。ミキサ２２０は、バイトマスク信号ＤＭに応じて、保持された情報ビットの一部のバイトのみをライトデータで上書きする。これにより、バイトマスク機能を確保しつつ、検査ビット用メモリアレイ２０１に必要な容量を削減することが可能となる。【選択図】図１
2010123156.tif 000002
【特許請求の範囲】
【請求項１】
情報ビット及び検査ビットが格納されるメモリアレイと、
ライト要求に応答して、前記メモリアレイから、ロウアドレス及びカラムアドレスを含むライトアドレスに対応する情報ビット及び検査ビットをそれぞれ読み出し、前記情報ビットに含まれる誤りを訂正する訂正回路と、
前記訂正回路によって訂正された情報ビットを一時的に保持するミキサと、を備え、
前記ミキサは、バイトマスク信号に応じて、保持された情報ビットの一部のバイトのみをライトデータで上書き可能であることを特徴とする半導体記憶装置。
【請求項２】
前記メモリアレイは、前記情報ビットが格納される情報ビット用メモリアレイと前記検査ビットが格納される検査ビット用メモリアレイを含んでいることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記情報ビット用メモリアレイに書き込むべき複数バイトの前記情報ビットから検査ビットを生成する第１の符号化回路と、
前記情報ビット用メモリアレイから読み出された複数バイトの前記情報ビットから検査ビットを生成する第２の符号化回路と、
前記第２の符号化回路によって生成された検査ビットと前記検査ビット用メモリアレイから読み出された検査ビットとを照合する検査回路と、をさらに備えることを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記第１及び第２の符号化回路の符号化時間は互いに等しく、
前記情報ビット用メモリアレイは第１の内部クロックに同期して動作し、
前記検査ビット用メモリアレイは前記第１の内部クロックよりも前記符号化時間分遅れた第２の内部クロックに同期して動作することを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
前記情報ビット用メモリアレイに対して割り当てられた第１のワード線制御部と、前記検査ビット用メモリアレイに対して割り当てられた第２のワード線制御部とをさらに備え、
前記第１及び第２の符号化回路の符号化時間は互いに等しく、
前記第２のワード線制御部は、前記第１のワード線制御部よりも前記符号化時間分遅れて動作することを特徴とする請求項３又は４に記載の半導体記憶装置。
【請求項６】
前記ミキサに保持されたライトデータを前記情報ビット用メモリアレイに供給する書き込み用データラインと、
前記情報ビット用メモリアレイから読み出されたリードデータを前記訂正回路に供給する読み出し用データラインと、
前記ライトデータを書き込むべきライトアドレスと前記リードデータを読み出すべきリードアドレスとの一致を検出する検出回路と、をさらに備え、
前記検出回路によって一致が検出されたことに応答して、前記ミキサに保持された情報ビットをリードデータとして出力することを特徴とする請求項１乃至５のいずれか一項に記載の半導体記憶装置。
【請求項７】
前記検出回路は、同一アドレスに対する連続的なライト要求をさらに検出し、
前記検出回路によって同一アドレスに対する連続的なライト要求が検出されたことに応答して、前記訂正回路によって訂正された情報ビットを遮断し、これにより、前記ミキサに保持された情報ビットの更新を禁止することを特徴とする請求項６に記載の半導体記憶装置。
【請求項８】
前記書き込み用データライン及び前記読み出し用データラインがいずれも階層化構造を有していることを特徴とする請求項６又は７に記載の半導体記憶装置。
【請求項９】
情報ビット及び検査ビットが格納されるメモリアレイを備えた半導体記憶装置の制御方法であって、
ライト要求の発行に応答して、前記メモリアレイから、ロウアドレス及びカラムアドレスを含むライトアドレスに対応した情報ビット及び検査ビットをそれぞれ読み出す第１のステップと、
前記第１のステップで読み出された前記検査ビットを用いて、前記第１のステップで読み出された前記情報ビットに含まれる誤りを訂正する第２のステップと、
前記第２のステップで訂正された前記情報ビットにライトデータを上書きする第３のステップと、
前記第３のステップで上書きされた前記情報ビットを前記メモリアレイに書き込む第４のステップと、を備えることを特徴とする半導体記憶装置の制御方法。
【請求項１０】
前記第１のステップを内部クロックの第１のアクティブエッジに同期して行い、前記第４のステップを前記内部クロックの前記第１のアクティブエッジに続く第２のアクティブエッジに同期して行うことを特徴とする請求項９に記載の半導体記憶装置の制御方法。
【請求項１１】
前記第１のステップをライトレイテンシ期間に行うことを特徴とする請求項９又は１０に記載の半導体記憶装置の制御方法。
【請求項１２】
前記第４のステップを前記ライトレイテンシ期間の経過後、正規のタイミングで行うことを特徴とする請求項１１に記載の半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置及びその制御方法に関し、特に、ＥＣＣ（Error Correction Code）回路を内蔵した半導体記憶装置及びその制御方法に関する。
【背景技術】
【０００２】
ＥＣＣ回路を内蔵した半導体記憶装置、例えばＥＣＣ回路内蔵ＤＲＡＭにおいては、実際に必要となる「情報ビット」と、情報ビットに誤りが生じた場合に訂正するために用いる「検査ビット」の２つを記憶する必要がある。したがって、ライト動作時においては、情報ビットを書き込むとともに、情報ビットを符号化して検査ビットを生成し（符号化ステップ）、これを書き込む。リード動作時においては、情報ビットと検査ビットを読み出し、一方で、読み出した情報ビットを符号化し（符号化ステップ）、符号化した情報ビットと検査ビットを比較することで情報ビット中の不良箇所を割り出し（検査ステップ）、情報ビットの不良箇所に対して訂正を施して読み出す（訂正）。このように、書き込み時は「符号化」、読み出し時は「符号化」→「検査」→「訂正」の動作が行われる。
【０００３】
あるビット数の情報ビットを訂正するのに必要な検査ビット数は情報理論で求まり、最も簡単な、単一誤り訂正の場合でも、ｋビットの情報ビットを訂正できる検査ビット数ｍは、以下の式（１５）を満たす分だけ必要になる。もちろん、訂正ビット数を増やせば検査ビット数はさらに必要になる。
【０００４】
【数１】
2010123156.tif 000003
【０００５】
上記式（１５）から、ｋ＝８の場合ｍ＝４、ｋ＝１６の場合ｍ＝５、ｋ＝３２の場合ｍ＝６となり、情報ビット数が増えるほど、情報ビット数ｋに対して必要な検査ビット数ｍの割合は小さくなる。しかしながら、ＤＲＡＭには同時にリード／ライトするデータの一部をマスクする「バイトマスク機能」が要求されることから、同時にリード／ライトするデータのビット数が多くても、１バイト単位、つまり、８ビット単位で検査ビットを割り当てなければならなくなる。この場合、８ビットの情報ビットに対して検査ビットは４ビット必要となる。つまり、総ビット数は１２ビットであり、情報ビットの１．５倍となる。これは、メモリセルアレイの規模が１．５倍になることを意味し、チップサイズの大幅増加につながる。
【０００６】
上記の問題を回避するには、リード動作時には通常通り、「符号化」→「検査」→「訂正」の動作で読み出すのであるが、ライト動作時には、まず、読み出し（「符号化」→「検査」→「訂正」）を行い、この訂正されたデータに、ライトデータを混ぜ込み、更新された総情報ビットを用いて書き込み（「符号化」）を行えばよい。メモリセルアレイに対して実際に書き込みを行う前に、既に書き込まれているデータを一度読み出すことで、情報ビット数を増やすわけである。
【０００７】
この原理を利用した方法の１つとして、特許文献１に記載された方法が知られている。特許文献１に記載された方法は、ＤＲＡＭのセンスアンプアクティブ動作とプリチャージ動作を利用するものである。まず、ＡＣＴコマンドによって「符号化」→「検査」→「訂正」（前述のリード動作に相当）を行い、訂正されたデータをセンスアンプに保持する。続いてＲＥＡＤコマンドが投入された場合は、センスアンプに訂正されて保持されているデータを読み出す。一方、ＷＲＩＴＥコマンドが投入された場合は、センスアンプに訂正されて保持されているデータにライトデータを上書きする。最後に、プリチャージコマンドで「符号化」（前述のライト動作に相当）を行う。
【０００８】
つまり、リードコマンドでは、ＡＣＴコマンドで訂正されて読み出されたデータを読み出しており、ライトコマンドでは、ＡＣＴコマンドで読み出されたデータにライトデータを混ぜ込んでおり、最後に、プリチャージコマンドで符号化して書き込み動作を実行している。このように、特許文献１では、ロウ系のサイクルを利用して、既に書き込まれているデータを一度読み出すことで情報ビット数を増加させ、情報ビット数の制限を受けないＥＣＣ動作を行っている。
【特許文献１】特開２００７−４２１７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１の方法では、ロウ系サイクルを利用して演算を行っているため、演算対象が活性センスアンプ全数となる。つまり、実際に入出力しないデータに対しても演算を行う必要があるため、消費電力が余分にかかる。また、演算対象がセンスアンプになるため、情報ビット用のセンスアンプと訂正ビット用のセンスアンプは常に同一の組み合わせである必要があり、そのためカラム選択線も常に同一の組み合わせである必要がある。当然のことながら、冗長救済用の冗長カラム選択線についても同様であり、情報ビット数を比較的大きく設計した場合には、１箇所の救済に必要な冗長カラム選択線数が増え、救済設計が難しくなる。
【課題を解決するための手段】
【００１０】
本発明による半導体記憶装置は、情報ビット及び検査ビットが格納されるメモリアレイと、ライト要求に応答して、メモリアレイから、ロウアドレス及びカラムアドレスを含むライトアドレスに対応する情報ビット及び検査ビットをそれぞれ読み出し、情報ビットに含まれる誤りを訂正する訂正回路と、訂正回路によって訂正された情報ビットを一時的に保持するミキサとを備え、ミキサは、バイトマスク信号に応じて、保持された情報ビットの一部のバイトのみをライトデータで上書き可能であることを特徴とする。
【００１１】
本発明による半導体記憶装置の制御方法は、情報ビット及び検査ビットが格納されるメモリアレイを備えた半導体記憶装置の制御方法であって、ライト要求の発行に応答して、メモリアレイから、ロウアドレス及びカラムアドレスを含むライトアドレスに対応した情報ビット及び検査ビットをそれぞれ読み出す第１のステップと、第１のステップで読み出された検査ビットを用いて、第１のステップで読み出された情報ビットに含まれる誤りを訂正する第２のステップと、第２のステップで訂正された情報ビットにライトデータを上書きする第３のステップと、第３のステップで上書きされた情報ビットをメモリアレイに書き込む第４のステップと、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ロウ系のサイクルではなく、カラム系のサイクルを利用して、情報ビット数の制限を受けないＥＣＣ動作が可能となる。これにより、特許文献１が有している問題を解消できる。すなわち、実際に入出力するデータのＥＣＣ動作に必要最小限の演算しか行わないので無駄がない。また、演算はアレイの外で行うので、冗長救済の回路に対してなんら制限はない。
【００１３】
しかも、ライト動作時においては、複数バイトの情報ビットを読み出してミキサに保持し、これにバイトマスク信号に応じてライトデータを部分的又は全体的に上書き可能であることから、一度に処理する情報ビットのビット数をバイトマスクの有無にかかわらず増やすことが可能となる。このため、検査ビット用メモリアレイに必要な容量を削減することも可能となる。
【発明を実施するための最良の形態】
【００１４】
まず、一般のＥＣＣ動作のうちメモリに対してよく用いられる、組織符号の単一誤り訂正ハミング符号に関して、書き込み及び読み出しを説明する。情報ビット数をｋビット、検査ビット数をｍビット、総データｎ（＝ｋ＋ｍ）ビットとする。また、計算は２を法とした（modulo 2）ものとし、元は｛０，１｝であり、加算＋は排他的論理和とする。また、組織符号とは、情報ビットと検査ビットを完全に分離できる符号のことである。
【００１５】
まず、書き込みに関して説明する。書き込むｋビット幅の情報ビットｉを式（１）に示す。
【００１６】
【数２】
2010123156.tif 000004
【００１７】
組織符号では、情報ビットｉと検査ビットｐを分離して処理できるので、情報ビットｉは、情報ビット用メモリアレイにはそのまま書き込まれ、一方、検査ビット用メモリアレイには、ｍ行ｋ列の変換行列Ａによってｍビット幅の検査ビットｐに変換されて書き込まれる。これを式（２）〜式（４）に示す。
【００１８】
【数３】
2010123156.tif 000005
【００１９】
ただし、変換行列Ａの要素である縦ベクトルａｉ（i=1,2,...,k）は、ゼロベクトルではなく、単位ベクトルでもなく、かつ、互いに異なるものであるとする。以上が書き込みであり、情報ビットｉに変換行列Ａを作用させて検査ビットｐに変換する部分が「符号化」である。結果として、メモリアレイには式（５）に示すｎ（＝ｋ＋ｍ）ビット幅の総データdが書き込まれることになる。
【００２０】
【数４】
2010123156.tif 000006
【００２１】
次に、読み出しに関して説明する。メモリアレイに書き込まれている総データｄにはｎビット幅のエラーｅが重畳し、ｄ'に変化しているものとする。同様に、情報ビットはｉ'に、検査ビットはｐ'に変化しているものとする。これを、式（６）、式（７）に示す。
【００２２】
【数５】
2010123156.tif 000007
【００２３】
まず、符号化して書き込んでおいた検査ビットｐ'と比較するため、情報ビットｉ'の書き込みのときに用いたのと同じ変換行列Ａを作用させ、ｍビット幅の比較用ビットｑを得る。すなわち、比較用ビットｑは、式（６）により、式（８）のようになる。
【００２４】
【数６】
2010123156.tif 000008
【００２５】
もしエラーが無ければ、比較用ビットｑは検査ビットｐ'と一致するはずであるし、たしかに、式（８）からも分かる。ここまでで、情報ビットｉ'に変換行列Ａを作用させて比較用ビットｑを得る部分が「符号化」である。読み出しのときと同じ変換行列Ａを用いることができるのが組織符号の特徴である。
【００２６】
続いて、比較用ビットｑと検査ビットｐ'が一致するかどうか比較するため、（２を法にした）加算をし、結果としてｍビット幅の結果ビットｓを得るものとする。結果ビットｓは、式（２）、式（６）、式（８）より、式（９）〜式（１１）のようになる。なお、計算では、２を法にした加算の規則a+a=0を使用した。
【００２７】
【数７】
2010123156.tif 000009
【００２８】
今、エラーｅが単一誤りの場合を考える。ｅのｉビット目にエラーがある場合、結果ビットｓは、式（９）、式（１０）より、式（１２）のようになる。
【００２９】
【数８】
2010123156.tif 000010
【００３０】
すなわち、情報ビットｉ'にエラーがある場合（i∈[1,k]の場合）、変換行列Ａのｉ番目の縦ベクトル要素であるａｉが得られ、検査ビットｐ'にエラーがある場合（i∈[k+1,n]の場合）、単位行列umの(i-k)番目の縦単位ベクトル要素であるumi-kが得られる。ここで、ａｉは、前に述べたように、ゼロベクトルではなく、単位ベクトルでもなく、互いに異なるものであるから、結果ビットｓの結果から、ｉ番目のビットにエラーが生じたと断定できる。なお、ａｉがゼロベクトルで無いのは、エラーが無い場合と区別するためであり、ａｉが単位ベクトルでないのは、エラーが検査ビットｐ'にある場合（i∈[k+1,n]の場合）と区別するためである。このように、結果ビットｓはエラービット情報を与えるのでシンドロームと呼ばれる。また、式（１０）の行列Ｈは、式（１２）のようにシンドロームを求めるのに用いられるので、ハミング検査行列と呼ばれる。次に、ｍビット幅のシンドロームｓに、ベクトル関数Ｆを作用させ、すなわちデコードして、情報ビットｉ'のエラービット情報である、ｋビット幅のエラービット位置データｔを割り出す。なお、ここでは、エラーの訂正の対象を情報ビットｉ'のみとし、検査ビットｐ'は除外している。これは、単一誤り訂正ハミング符号では、検査ビットｐ'にエラーがあっても、情報ビットｉ'は正しく読み出されるからであり、回路削減のためによく用いられる方法である。これを式(13)に示す。
【００３１】
【数９】
2010123156.tif 000011
【００３２】
ここで、ベクトル関数Ｆの要素である関数ｆｉ（i=1,2,...,k）は、シンドロームｓが変換行列Ａのｉ番目の縦ベクトル要素ａｉと等しい場合のみ１になるように選んである。すると、エラービット位置データｔの要素のうち、情報ビットｉ'の訂正すべきビットを示す要素のみが１となり、他の要素は０となる。結果、エラービット位置データｔはエラーｅ１と等しくなる。ここまでで、比較用ビットｑと検査ビットｐ'を比較して、シンドロームｓからエラービット位置データｔを得る部分が「検査」である。
【００３３】
続いて、エラービット位置データｔを情報ビットｉ'に作用させて訂正する様子を式（１４）に示す。
【００３４】
【数１０】
2010123156.tif 000012
【００３５】
ここでは式（６）、式（１３）、および２を法にした加算の規則a+a=0を用いた。ここまでで、情報ビットｉ'にシンドロームから得られた位置データｔを作用させて情報ビットを訂正する部分が「訂正」である。
【００３６】
このように読み出しでは「符号化」→「検査」→「訂正」を行っている。
【００３７】
以上のように、ＥＣＣ回路内蔵ＤＲＡＭに記憶されるデータとしては、実際に必要となる「情報ビット」と、情報ビットに誤りが生じた場合に訂正するために用いる「検査ビット」の２つがある。ライト動作時においては、情報ビットを書き込むとともに、情報ビットを符号化して検査ビットを生成し（符号化ステップ）、これを書き込む。リード動作時においては、情報ビットと検査ビットを読み出し、一方で、読み出した情報ビットを符号化し（符号化ステップ）、符号化した情報ビットと検査ビットを比較することで情報ビット中の不良箇所を割り出し（検査ステップ）、情報ビットの不良箇所に対して訂正を施して読み出す（訂正）。このように、書き込み時は「符号化」、読み出し時は「符号化」→「検査」→「訂正」の動作が行われる。
【００３８】
あるビット数の情報ビットを訂正するのに必要な検査ビット数は情報理論で求まり、最も簡単な、単一誤り訂正の場合でも、ｋビットの情報ビットを訂正できる検査ビット数ｍは、既に説明した式（１５）を満たす分だけ必要になる。すなわち、ｍ個の検査ビットによって表せる場合の数２ｍが、不良ビットが存在する場合の不良箇所数（ｍ＋ｋ）と、不良ビットが存在しない場合の数１の和より大きければ、検査ビットによって、不良箇所を断定することが可能になる。
【００３９】
式（１５）から、ｋ＝８の場合ｍ＝４、ｋ＝１６の場合ｍ＝５、ｋ＝３２の場合ｍ＝６となり、情報ビット数が増えるほど、情報ビット数ｋに対して必要な検査ビット数ｍの割合は小さくなる。しかしながら、ＤＲＡＭには同時にリード／ライトするデータの一部をマスクする「バイトマスク機能」が要求されることから、同時にリード／ライトするデータのビット数が多くても、１バイト単位、つまり、８ビット単位で検査ビットを割り当てなければならなくなる。この場合、８ビットの情報ビットに対して検査ビットは４ビット必要となる。つまり、総ビット数は１２ビットであり、情報ビットの１．５倍となる。これは、メモリセルアレイの規模が１．５倍になることを意味し、チップサイズの大幅増加につながる。
【００４０】
本実施形態はこのような問題を解決するとともに、特許文献１の問題をも解消するものである。本実施形態では、ロウ系のサイクルではなく、カラム系のサイクルを利用して、情報ビット数の制限を受けないＥＣＣ動作を可能とする回路構成を提供する。これにより、特許文献１が有している問題を解消できる。すなわち、実際に入出力するデータのＥＣＣ動作に必要最小限の演算しか行わないので無駄がない。また、演算はアレイの外で行うので、冗長救済の回路に対してなんら制限はない。
【００４１】
この場合、リードサイクルでは、リード動作のみを行うことになるが、ライトサイクルでは、まずリード動作を行い、続いてライト動作を行う必要がある。以下、具体的に説明する。本動作は、ＥＣＣ符号が組織符号でない場合でも、ライト動作／リード動作の対象をアレイ全体とし、その際のリード動作を「符号化＆検査」→「訂正」のように符号化と検査を一体として、ライト動作の符号器と別の形にすれば可能である。しかし、組織符号の場合は、ライト動作とリード動作で符号器を同じ形にできることで、タイミング設計が容易になるので、以下の説明では組織符号の場合を例に説明する。
【００４２】
図１は、本発明の好ましい第１の実施形態による半導体記憶装置２００の主要部の構成を示す回路図である。特に限定されるものではないが、本実施形態による半導体記憶装置２００はＤＲＡＭである。
【００４３】
図１に示すように、本実施形態による半導体記憶装置２００は、情報ビット用メモリアレイ２０１と、検査ビット用メモリアレイ２０９とを備えている。情報ビット用メモリアレイ２０１は、情報ビットを格納するためのメモリセルアレイであり、検査ビット用メモリアレイ２０９は、検査ビットを格納するためのメモリセルアレイである。
【００４４】
図２は、情報ビット用メモリアレイ２０１の構造を示す回路図である。
【００４５】
図２に示すように、情報ビット用メモリアレイ２０１は、ワード線ＷＬ０，ＷＬ１・・・と、ビット線対ＢＬ０，ＢＬ１・・・と、ワード線とビット線の交点に配置されたメモリセルＭＣとを有するメモリセルアレイ１０３を備えている。ワード線ＷＬ０，ＷＬ１・・・は、それぞれ対応するワードドライバ１０１によって駆動される。各ビット線対ＢＬ０，ＢＬ１・・・には、それぞれセンスアンプ１０２が接続されている。各センスアンプ１０２は、それぞれ対応するカラムスイッチ１０６を介して、リード用データラインＩＲＬＩＮＥに接続されているとともに、それぞれ対応するカラムスイッチ１０７を介して、ライト用データラインＩＷＬＩＮＥに接続されている。カラムスイッチ１０６には、リード用カラム選択ドライバ１０４の出力であるリード用カラム選択信号ＩＹＲ０，ＩＹＲ１・・・がそれぞれ供給され、これによってリード動作時においてはいずれか一つがオンする。一方、カラムスイッチ１０７には、ライト用カラム選択ドライバ１０５の出力であるライト用カラム選択信号ＩＹＷ０，ＩＹＷ１・・・がそれぞれ供給され、これによってライト動作時においてはいずれか一つがオンする。
【００４６】
リード用データラインＩＲＬＩＮＥは、相補のリードデータを伝送するための配線であり、図１に示す入出力回路２３０に接続されている。また、ライト用データラインＩＷＬＩＮＥは、相補のライトデータを伝送するための配線であり、図１に示す入出力回路２３０に接続されている。尚、図２に示す回路は、情報ビット用メモリアレイ２０１における１ビット分のＩ／Ｏに対応する部分である。図１に示すように、本実施形態では情報ビット用メモリアレイ２０１はｋビットの情報ビットを入出力することから、図１に示した回路がｋ個存在することになる。
【００４７】
検査ビット用メモリアレイ２０９についても、図２に示した情報ビット用メモリアレイ２０１と同じ回路構成を有している。図１に示すように、本実施形態では検査ビット用メモリアレイ２０９はｍビットの検査ビットを入出力することから、図１に示した回路がｍ個存在することになる。また、検査ビット用メモリアレイ２０９においては、リード用データラインＩＲＬＩＮＥの代わりにリード用データラインＰＲＬＩＮＥが用いられ、ライト用データラインＩＷＬＩＮＥの代わりにライト用データラインＰＷＬＩＮＥが用いられる。また、リード用カラム選択信号ＩＹＲ０，ＩＹＲ１・・・の代わりにリード用カラム選択信号ＰＹＲ０，ＰＹＲ１・・・が用いられ、ライト用カラム選択信号ＩＹＷ０，ＩＹＷ１・・・の代わりにライト用カラム選択信号ＰＹＷ０，ＰＹＷ１・・・が用いられる。
【００４８】
情報ビット用メモリアレイ２０１から読み出されるリードデータ（情報ビット）は、リード用カラム選択ドライバ２０２の出力であるリード用カラム選択信号ＩＹＲ０，ＩＹＲ１・・・に基づいてリード用データラインＩＲＬＩＮＥに供給される。また、情報ビット用メモリアレイ２０１に書き込むべきライトデータ（情報ビット）は、ライト用カラム選択ドライバ２０３の出力であるライト用カラム選択信号ＩＹＷ０，ＩＹＷ１・・・に基づいてライト用データラインＩＷＬＩＮＥから供給される。同様に、検査ビット用メモリアレイ２０９から読み出されるリードデータ（検査ビット）は、リード用カラム選択ドライバ２１０の出力であるリード用カラム選択信号ＰＹＲ０，ＰＹＲ１・・・に基づいてリード用データラインＰＲＬＩＮＥに供給される。また、検査ビット用メモリアレイ２０９に書き込むべきライトデータ（検査ビット）は、ライト用カラム選択ドライバ２１１の出力であるライト用カラム選択信号ＰＹＷ０，ＰＹＷ１・・・に基づいてライト用データラインＰＷＬＩＮＥから供給される。
【００４９】
情報ビット用メモリアレイ２０１に対して設けられたリード用データラインＩＲＬＩＮＥ及びライト用データラインＩＷＬＩＮＥのビット幅はｋビットである。一方、検査ビット用メモリアレイ２０９に対して設けられたリード用データラインＰＲＬＩＮＥ及びライト用データラインＰＷＬＩＮＥのビット幅はｍビットである。これらデータラインＩＲＬＩＮＥ，ＩＷＬＩＮＥ，ＰＲＬＩＮＥ、ＰＷＬＩＮＥはいずれも入出力回路２３０に接続されている。
【００５０】
入出力回路２３０は、リード用データラインＩＲＬＩＮＥとマルチプレクサ２１７との間に設けられた符号化回路２０７、検査回路２０８、訂正回路２１５を備えている。符号化回路２０７は、情報ビット用メモリアレイ２０１から読み出されたｋビットのリードデータＩＲＤからｍビットの検査ビットを生成する回路である。検査回路２０８は、符号化回路２０７によって生成された検査ビットと、リード用データラインＰＲＬＩＮＥを介して検査ビット用メモリアレイ２０９から読み出された検査ビットとを照合する回路である。訂正回路２１５は、検査回路２０８の検査結果に基づいて情報ビットを訂正することにより、誤りを含む情報ビットを正しい内容に訂正する回路である。訂正回路２１５によって訂正された情報ビットは、マルチプレクサ２１７を介してリードバスＲＢＵＳに供給されるとともに、ミキサ２２０に供給される。
【００５１】
ミキサ２２０は、情報ビット用メモリアレイ２０１から読み出され、訂正された情報ビットが一時的に格納されるとともに、ライトバスＷＢＵＳを介して入力されたライトデータによってこれを上書きする回路である。ライトデータによる情報ビットの上書きは、ライト用バイトマスク信号ＤＭによって、バイト単位で行うことができる。つまり、情報ビットが複数バイトであっても、１バイト単位で部分的な上書きが可能である。
【００５２】
ミキサ２２０の出力は、ライトバッファ２２１を介してライト用データラインＩＷＬＩＮＥに供給される。また、ミキサ２２０の出力は、符号化回路２２２にも供給され、これによってｋビットの情報ビットからｍビットの検査ビットが生成される。生成された検査ビット（ライトデータＰＷＤ）は、ライトバッファ２２３を介してライト用データラインＰＷＬＩＮＥに供給される。さらに、ミキサ２２０の出力は、レジスタ２１６にも供給される。レジスタ２１６の出力はマルチプレクサ２１７に供給される。
【００５３】
図３は、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴを生成するための検出回路１３０ａの回路図である。
【００５４】
図３に示すように、検出回路１３０ａには、現在の選択アドレスＩＡ［ｔ］、現在のリード状態フラグＲＥ［ｔ］及び現在のライト状態フラグＷＲ［ｔ］が供給される。ここで「状態フラグ」とは当該サイクルがその状態であるとき"Ｈ"、それ以外は"Ｌ"となる信号である。
【００５５】
現在の選択アドレスＩＡ［ｔ］は、そのままＥＸＯＲゲート１３１に供給されるとともに、ＤＱラッチ１３２に供給される。ＤＱラッチ１３２は内部クロックに同期して、１サイクル後に相当する内部クロックで、現在の選択アドレスＩＡ［ｔ］をラッチする回路であり、したがってその出力は、１サイクル前の選択アドレスを示すＩＡ［ｔ−１］となる。ＤＱラッチは、簡便には、ＤＱフリップフロップが用いられる。１サイクル前の選択アドレスを示すＩＡ［ｔ−１］は、ＥＸＯＲゲート１３１に供給される。したがって、ＥＸＯＲゲート１３１は、同じ選択アドレスが２回連続して入力された場合に、その出力ＸをＬとする。それ以外のケースでは、出力Ｘはハイレベルに保たれる。
【００５６】
また、検出回路１３０ａは、現在のリード状態フラグＲＥ［ｔ］と、ＤＱラッチ１４２によって生成される１サイクル前のライト状態フラグＷＲ［ｔ−１］が供給されるＡＮＤゲート１４１を備える。したがって、ＡＮＤゲート１４１は、ライト動作とリード動作が連続して要求された場合（WRITE to READ動作）に、その出力ＹをＨとする。それ以外のケースでは、出力ＹはＬレベルに保たれる。
【００５７】
さらに、検出回路１３０ａは、現在のライト状態フラグＷＲ［ｔ］と、ＤＱラッチ１４４によって生成される１サイクル前のライト状態フラグＷＲ［ｔ−１］が供給されるＡＮＤゲート１４３を備える。したがって、ＡＮＤゲート１４３は、ライト動作が２回連続して要求された場合（WRITE to WRITE動作）に、その出力ＺをＨとする。それ以外のケースでは、出力ＺはＬレベルに保たれる。
【００５８】
出力Ｙ，ＺはＮＯＲゲート１４５に供給され、ＮＯＲゲート１４５の出力ＷとＥＸＯＲゲート１３１の出力ＸはＯＲゲート１４６に供給される。したがって、WRITE to READ動作において同じ選択アドレスが入力された場合、並びに、WRITE to WRITE動作において同じ選択アドレスが入力された場合にアドレス遷移検出信号ＩＡＴの論理レベルがＬとなる。
【００５９】
アドレス遷移検出信号ＩＡＴは、遅延回路１３６，１３７に供給される。遅延回路１３６，１３７の出力はそれぞれ遅延アドレス遷移検出信号ＩＡＴＤ，ＰＡＴとなる。遅延アドレス遷移検出信号ＩＡＴＤ，ＰＡＴは、タイミングを取るためにアドレス遷移検出信号ＩＡＴを遅らせた信号である。
【００６０】
このようにして、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴが生成される。アドレス遷移検出信号ＩＡＴは、情報ビットを制御する際に用いるアドレス遷移検出信号であり、遅延アドレス遷移検出信号ＩＡＴＤは、訂正されたデータをリードバスＲＢＵＳに出力するタイミングを決める信号である活性化信号ＩＲＡＥＰＤに合わせて、アドレス遷移検出信号ＩＡＴを遅延させた信号である。また、アドレス遷移検出信号ＰＡＴは、検査ビットを制御する際に用いるアドレス遷移検出信号である。通常はＩＡＴ，ＩＡＴＤ，ＰＡＴ＝"Ｈ"であるが、WRITE to READ動作で、READサイクルのアドレスがWRITEサイクルと同一な場合か、もしくは、WRITE to WRITE動作で、両WRITEサイクルのアドレスが同一な場合、ＩＡＴ，ＩＡＴＤ，ＰＡＴ＝"Ｌ"となる。
【００６１】
ここで、通常の動作、すなわち、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴがいずれも"Ｈ"である場合の動作について説明する。
【００６２】
まずリードサイクルを説明する。リードサイクルでは、リード動作のみを行う。つまり、情報ビット用メモリアレイ２０１に対し、ドライバ２０２によってリード用カラム選択線ＩＹＲを駆動し、リード用データラインＩＲＬＩＮＥにｋビットの情報ビットデータを読み出す。読み出された情報ビットは、活性化信号ＩＲＡＥＰに同期してリードアンプ２０４で増幅され、保持回路２０５に保持される。さらに、符号化回路２０７によってｋビットの情報ビットデータをｍビットの符号ビットデータに変換する。
【００６３】
一方、検査ビット用メモリアレイ２０９に対して、ドライバ２１０によってリード用カラム選択線ＰＹＲを駆動し、リード用データラインＰＲＬＩＮＥにｍビットの検査ビットデータを読み出す。読み出された検査ビットは、活性化信号ＰＲＡＥＰに同期してリードアンプ２１２で増幅され、保持回路２１４に保持される。ここで、検査ビット用のカラム選択線ＰＹＲの駆動タイミングと、リードアンプ２１２の活性タイミングは、情報ビット用のそれらより、符号化回路２０７による符号化時間分遅らせる。これにより、符号化回路２０７によって生成された検査ビットと、検査ビット用メモリアレイ２０９から読み出された検査ビットが、検査回路２０８にほぼ同時に到達する。
【００６４】
検査回路２０８はこれら２つの検査ビットを用いて演算し、ｋ個のエラービット位置データ、いわゆるシンドロームを割り出す。得られたシンドロームは、訂正回路２１５に供給される。訂正回路２１５は、保持回路２０５に保持されている情報ビットデータと、検査回路から供給されるシンドロームを用いて演算を行い、情報ビットデータに含まれている誤りを訂正し、訂正データＲＲＤを出力する。このとき、信号線ＨＤＡＴＡには、活性化信号ＩＲＡＥＰＤに同期して何らかのデータが現れているが、遅延アドレス遷移検出信号ＩＡＴＤ＝"Ｈ"のため、マルチプレクサ２１７は入力１側を選択する。このため、マルチプレクサ２１７は、訂正データＲＲＤを信号線ＲＢＵＳＰに出力する。
【００６５】
尚、遅延アドレス遷移検出信号ＩＡＴＤが変化する場合は、活性化信号ＩＲＡＥＰＤと同じタイミングで変化するよう設計される。ＡＮＤゲート２１９は、信号線ＲＢＵＳＰ上のデータをリードバスＲＢＵＳに出力するか否かを決める回路であり、活性化信号ＩＲＡＥＰＤと信号ＲＥＤによって信号ＩＲＡＥＤを生成する。また、リード用バイトマスク信号ＱＭによって、１バイト単位の読み出しも可能としてある。信号ＲＥＤは、リード状態フラグを活性化信号ＩＲＡＥＰＤに合わせて遅らせた信号であり、この場合ＲＥＤ＝"Ｈ"であり、リードマスク情報ＱＭに従いながら、信号線ＲＢＵＳＰのデータを活性化信号ＩＲＡＥＰＤに同期してリードバスＲＢＵＳに必要なバイト数のデータを出力する。なお、活性化信号ＩＲＡＥＰＤの活性化タイミングは、情報ビット用のリードアンプ２０４の活性化タイミングより、符号化回路２０７による符号化時間と、検査回路２０８による検査時間と、訂正回路２１５による訂正時間との合計時間分遅らせる必要がある。このようにして、訂正された情報ビットデータがリードバスＲＢＵＳに出力される。
【００６６】
次にライトサイクルを説明する。ライトサイクルにおいては、まずリード動作を行い、次にライト動作を行う。リード動作の詳細については上述の通りであり、訂正された情報ビットデータを、マルチプレクサ２１７を経由して、信号線ＲＢＵＳＰに出力する。但し、ライトサイクルにおいてＲＥＤ＝"Ｌ"となることから、ＡＮＤゲート２１９の出力はＬレベルであり、トライステートバッファ２１８が非活性となる。したがって、リードデータはリードバスＲＢＵＳには出力されない。
【００６７】
続くライト動作においては、ライトバッファ起動信号ＩＷＢＥに同期して、ライトバスＷＢＵＳから供給されるライトデータをミキサ２２０に取り込む。また、信号線ＲＢＵＳＰからは先のリード動作で訂正したデータがミキサ２２０に供給される。ミキサ２２０は、データマスク情報ＤＭに従ってこれらを混合し、信号線ＩＷＤにｋ個の情報ビットデータを出力する。出力された情報ビットデータは、レジスタ２１６に保持される。信号線ＲＢＵＳＰからミキサ２２０にデータを取り込むにためは、保持回路２０５，２１４はそれまでデータを保持しなければならず、１サイクル保持タイプの回路構成とすることが望ましい。また、ミキサ２２０は、直後にリードサイクルを行う場合、保持回路２１６にデータを渡さなければならない。このため、ミキサ２２０は１サイクル保持タイプの回路構成を有している。
【００６８】
続いて、ライトバッファ２２１によって、ｋ個の情報ビットデータを情報ビットメモリアレイ２０１に書き込む。一方、符号化回路２２２は、信号線ＩＷＤ上のｋ個の情報ビットデータを符号化してｍ個の符号ビットデータを生成する。生成された符号ビットデータ（検査ビット）は、ライトバッファ２２３により、ライトバッファ起動信号ＰＷＢＥに同期して検査ビットアレイ２０９に書き込まれる。ここで検査ビット用のライトバッファ２２３の活性タイミングは、情報ビットのそれに対して、符号化回路２２２による符号化時間分遅らせる必要がある。このようにして、データマスクによって制限されるビット数より多くの情報ビットを用いて符号化書き込みを行うことが可能となる。
【００６９】
ところで、符号化回路２０７と符号化回路２２２は、符号理論から、同一論理の回路構成を採ることができる。したがって、符号化回路２０７と符号化回路２２２を全く同一のレイアウトとすれば、遅延時間が一致することから、タイミング設計が容易になる。すなわち、検査ビット用アレイ２０９の制御タイミングを、情報ビット用アレイ２０１の制御タイミングに対して、符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分、一律に遅らせればよくなる。ライト動作では、検査ビット用アレイに対する書き込みが符号化回路２２２で要する時間分遅れるが、リード動作でも、符号化回路２０７で要する時間分遅らせることができ、双方の符号化回路で要する時間が等しければ、ライト動作とリード動作の交互の動作を、円滑に実施することが可能となる。
【００７０】
さらに言えば、検査ビット用アレイ２０９のワード線制御部２０９ａと、情報ビット用アレイ２０１のワード線制御部２０１ａと別回路とし、ＡＣＴタイミング及びＰＲＥタイミングについても符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分遅らせることが好ましい。これによれば、符号化回路２２２の符号化時間だけＰＲＥ動作に食い込む書き込み時間を帳消しに出来る。こう考えると、情報ビット用アレイ２０１のリード動作制御系を内部クロックＩＣＬＫに同期させた場合、データ出力および情報ビット用アレイ２０１のライト動作制御系に対しては、内部クロックＩＣＬＫよりリードアンプ２０４の増幅に用いる時間と、「符号化」→「検査」→「訂正」に要する時間を加算した時間分遅らせた内部クロックＩＣＬＫＤを用いればよい。また、検査ビット用アレイ２０９のリード動作制御系に対しては、内部クロックＩＣＬＫより「符号化」時間分遅らせた内部クロックＰＣＬＫを用いればよい。さらに、検査ビット用アレイ２０９のライト動作制御系に対しては、内部クロックＰＣＬＫよりリードアンプ２１２の増幅に用いる時間と「符号化」→「検査」→「訂正」に要する時間を加算した時間分遅らせた内部クロックＰＣＬＫＤを用いればよい。検査ビット用アレイ２０９のワード線制御部２０９ａは、情報ビット用アレイ２０１より、符号化回路２０７の符号化時間（＝符号化回路２２２の符号化時間）分、遅らせればよい。これによれば、各回路の動作を容易に同期させることが可能となる。
【００７１】
図４は、WRITE to READ動作で、リードサイクルのアドレスがライトサイクルと同一な場合の動作タイミングを示すタイミング図である。図４ではＳＤＲ（SIngle Data Rate）の場合を想定している。ＤＤＲ（Double Data Rate）でも、レイテンシを考慮して同様な設計をすれば、同様に動作させることが可能である。
【００７２】
まず、時刻ｔ１にライトコマンドを投入すると、メモリセルアレイは同じく時刻ｔ１にライトサイクル要求を受け、ライトサイクル、すなわち、リード動作及びライト動作の順に行う。まずはリード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動し、情報ビットデータＩＲをビット線対ＩＢＬ０からリード用データラインＩＲＬＩＮＥに読み出す。そして、活性化信号ＩＲＡＥＰが内部クロックＩＣＬＫのアクティブエッジから増幅待ち時間ｄだけ待って立ち上がり、保持回路２０５に保持する。
【００７３】
一方、検査ビットに関しては、内部クロックＩＣＬＫのアクティブエッジを符号化時間ａだけ遅らせた内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を駆動し、検査ビットデータＰＲをビット線対ＰＢＬ０からリード用データラインＰＲＬＩＮＥに読み出す。そして、活性化信号ＰＲＡＥＰが内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上がり、保持回路２１４に保持する。
【００７４】
そして、保持回路２０５に保持された情報ビットデータは、符号化時間ａを経過後、保持回路２１４に保持された検査ビットデータと合流し、検査時間ｂ、訂正時間ｃの後、信号線ＲＲＤに訂正データＲとして読み出される。この場合、アドレス遷移検出信号ＩＡＴＤ＝"Ｈ"のため、訂正データＲは信号線ＲＢＵＳＰまで読み出され、ミキサ２０に供給される。尚、内部クロックＩＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がるが、今はライトサイクルなので信号ＩＲＡＥＤは立ち上がらず、このため、訂正データＲはリードバスＲＢＵＳには出力されない。一方、信号ＩＲＡＥＰＤによって信号線ＨＤＡＴＡに信号線ＩＷＤ上のデータが保持されているが、これは不要データである。
【００７５】
続いてライト動作を始める。情報ビットに関しては、内部クロックＩＣＬＫＤに同期して、ライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷを取り込み、信号線ＲＢＵＳＰからは先ほど読み出した訂正データＲを取り込み、これらをミキサ２２０にて混合する。つまり、訂正データＲにライトデータＷを上書きする。この時、上書き動作はデータマスク情報ＤＭに従って行われる。つまり、データマスクが指示されていない場合には、訂正データＲの全ビットにライトデータＷを上書きするが、データマスクが指示されている場合には、訂正データＲのうちマスクされてないビット対してライトデータＷを上書きする。このようにして混合された書き込み用情報ビットＩＷは、信号線ＩＷＤに出力され、レジスタ２１６に保持される。また、信号線ＩＷＤ上の書き込み用情報ビットＩＷは、ライトバッファ２２１を介してライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０の活性化に応答してビット線ＩＢＬ０に書き込まれる。また、信号線ＩＷＤ上の書き込み用情報ビットＩＷは符号化回路２２２にも供給され、これにより検査ビットＰＷが生成される。検査ビットＰＷは、ライトバッファ２２３を介してライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０の活性化に応答してビット線ＰＢＬ０に書き込まれる。尚、検査ビットＰＷは、情報ビットＩＷに対して符号化時間ａだけ遅れるので、内部クロックＰＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＰＣＬＫＤに同期したライトバッファ活性信号ＰＷＢＥによってライト用データラインＰＷＬＩＮＥに書き込まれる。
【００７６】
次に、時刻ｔ２にリードコマンドを投入すると、メモリセルアレイは同じく時刻ｔ２にリードサイクル要求を受け、リード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を立ち上げようとするが、アドレス遷移検出信号ＩＡＴＤ＝"Ｌ"のため、カラム選択信号ＩＹＲは全て非活性に保たれる。つまり、現在、前サイクルのライト動作で情報ビットＩＷを書き込み中であるが、それを読み出すことはない。続いてリードアンプ活性タイミング信号ＩＲＡＥＰによってリードアンプ活性信号ＩＲＡＥを立ち上げようとするが、アドレス遷移検出信号ＩＡＴＤ＝"Ｌ"のためリードアンプ２０４は活性化しない。このため、リードアンプ２０４が無駄な電流を消費することはない。
【００７７】
一方、検査ビットに関しては、内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を立ち上げようとするが、アドレス遷移検出信号ＰＡＴ＝"Ｌ"のため、カラム選択信号ＰＹＲは全て非活性に保たれる。つまり、現在、前サイクルのライト動作で検査ビットＰＷを書き込み中であるが、それを読み出すことはない。続いてリードアンプ活性タイミング信号ＰＲＡＥＰによってリードアンプ活性信号ＰＲＡＥを立ち上げようとするが、アドレス遷移検出信号ＰＡＴ＝"Ｌ"のため、リードアンプ２１２は活性化しない。このため、リードアンプ２１２が無駄な電流を消費することはない。
【００７８】
このように、情報ビットも検査ビットもメモリアレイからは読み出されない。そして、内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤを立ち上げ、信号線ＩＷＤに保持されている、前サイクルに書き込みに用いた情報ビットをレジスタ２１６に取り込む。これにより、信号線ＨＤＡＴＡには前サイクルに書き込みに用いた情報ビットが現れる。そして、マルチプレクサ２１７は入力０側を選択し、信号線ＨＤＡＴＡ上の情報ビットをリードバスＲＢＵＳに出力する。ここで信号線ＩＷＤ上のデータは、スタティックラッチで保持されているデータなので、エラーが生じるとは考えにくく、特に訂正を行う必要はない。
【００７９】
このように、本実施形態によれば、ＥＣＣ回路内蔵ＤＲＡＭにおいて、どのようなアクセスが要求された場合であっても、サイクル時間を律速することなくＥＣＣ動作を実現できる。しかも、ライト動作が要求された場合、データマスクがされている場合であっても、データマスクが無い場合と同じビット数の情報ビットを読み出し、これにライトデータを部分的に上書きしていることから、符号化を行う情報ビット数が多くなる。このため、情報ビット数に対して必要な検査ビット数の割合は小さくなり、メモリセルアレイの規模増大を抑制することも可能となる。但し、演算時間だけメモリセルアレイに対する書き込みが遅れるので、ライトコマンド後にプリチャージコマンド投入可能時刻を決めるスペックtDPL(tWR)に対して、動作が厳しくなることに言及しておく。また、アクセス時間tAAも符号化時間分遅れる。
【００８０】
次に、本発明の好ましい第２の実施形態について説明する。
【００８１】
上述した第１の実施形態は、情報ビット用メモリアレイ２０１へのライト動作を、続くリードサイクルに完全に重ねて動作させることも可能である。この場合、情報ビット用メモリアレイ２０１へのライト動作はクロック同期ではあるが、演算時間に相当する遅延線を経由してアクセスする必要があるため、遅延線の設計などがやや複雑になる。
【００８２】
これに対し、本実施形態は、情報ビット用メモリアレイ２０１へのアクセスを純粋なクロック同期とする。これにより、実効的なライトサイクルは、リード動作用の自分のサイクルと、ライト動作用の続くリードサイクルからなる２サイクル分であるため、リード動作による訂正に関する演算に１サイクル、ライト動作による符号化に関する演算に１サイクルとクロック同期の設計ができ、設計が容易化される。ただし、スペックtDPL(tWR)は１サイクルのレイテンシを要することを言及しておく。本実施形態による半導体記憶装置の主要部の構成については、図１に示した回路構成をそのまま用いることができる。
【００８３】
情報ビット用アレイ２０１のリード動作制御系は内部クロックＩＣＬＫ、データ出力は、内部クロックＩＣＬＫよりリードアンプ２０４増幅時間と「符号化」→「検査」→「訂正」に要する時間分遅らせた内部クロックＩＣＬＫＤ、検査ビット用アレイ２０９のリード動作制御系は、内部クロックＩＣＬＫより「符号化」時間分遅らせた内部クロックＰＣＬＫを用いる。ここまでは第１の実施形態と同じであるが、情報ビット用アレイ２０１のライト動作制御系には内部クロックＩＣＬＫ、検査ビット用アレイ２０９のライト動作制御系には内部クロックＰＣＬＫを用いる。また、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴの根幹となる信号は図３に示した検出回路１３０ａのままでよい。ただし、ライトレイテンシを有するメモリデバイスの場合は、上記動作をライトレイテンシに応じて前倒しで行えば、スペックtDPL(tWR)のレイテンシ問題も解消される。例えばDDR1の場合は、１サイクル前倒しとすればよい。この場合、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴの根幹となる信号は、図５に示した検出回路１３０ｂを用いることができる。ここで言う「前倒し」とは、ライト要求の発行に応答したリード動作とライト動作のうち、リード動作をライトレイテンシ期間に行い、ライト動作はライトレイテンシ後、すなわち正規の位置で実施することを意味する。したがって、この場合には、ライト要求の発行に応答したライト動作と、リード要求の発行に応答したリード動作とが同じタイミングで行われることがなくなる。つまり、ライト要求に応答したリード動作が、隠れたように見えるのである。ライト要求に応答したライト動作が正規の位置で実施されるので、スペックtDPL(tWR)のレイテンシ問題が解消されるのである。
【００８４】
図５は、アドレス遷移検出信号ＩＡＴ，ＩＡＴＤ，ＰＡＴを生成するための検出回路１３０ｂの回路図である。
【００８５】
図５に示すように、検出回路１３０ｂは、出力Ｘを生成する回路部分については検出回路１３０ａと同じであるが、出力Ｙを生成する回路部分が検出回路１３０ａと異なる。つまり、検出回路１３０ｂは、現在のライト状態フラグＷＲ［ｔ］と、ＤＱラッチ１３４によって生成される１サイクル前のライト状態フラグＷＲ［ｔ−１］が供給されるＮＡＮＤゲート１３３を備え、ライト動作が２回連続して要求された場合（WRITE to WRITE動作）に、その出力ＹをＬとする。
【００８６】
出力Ｘ，ＹはＯＲゲート１４６に供給される。したがって、WRITE to WRITE動作において同じ選択アドレスが入力された場合にアドレス遷移検出信号ＩＡＴ、ＩＡＴＤ，ＰＡＴの論理レベルがＬとなる。
【００８７】
また、信号線ＲＢＵＳＰからミキサ２２０がデータを取り込むのは１サイクル後なので、保持回路２０５，２１４は、１サイクル保持タイプの回路にする必要がある。
【００８８】
図６は、WRITE to WRITE動作で、これらライトサイクルのアドレスが同一の場合の動作タイミングを示すタイミング図である。図６ではＤＤＲ１型のＤＲＡＭを想定しており、動作の前倒しを実施している。
【００８９】
まず、時刻ｔ１にライトコマンドを投入すると、メモリセルアレイは、通常時刻ｔ３にライトサイクル要求を受けるのであるが、リード動作は時刻ｔ２から始めても問題ないため、時刻ｔ２からライトサイクル、すなわち、時刻ｔ２のリード動作後に時刻ｔ３のライト動作を始めるように設計する。この場合、図５に示した検出回路１３０ｂも、時刻ｔ２を原点に動作することに言及しておく。
【００９０】
まずはリード動作を始める。情報ビットに関しては、内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動し、情報ビットデータＩＲ０をビット線対ＩＢＬ０からリード用データラインＩＲＬＩＮＥに読み出す。そして、リードアンプ活性タイミング信号ＩＲＡＥＰを内部クロックＩＣＬＫのアクティブエッジから増幅待ち時間ｄだけ待って立ち上げ、保持回路２０５に保持する。
【００９１】
一方、検査ビットに関しては、内部クロックＩＣＬＫを符号化時間ａだけ遅らせた内部クロックＰＣＬＫに同期して、カラム選択信号ＰＹＲ０を駆動し、検査ビットデータＰＲをビット線対ＰＢＬ０からリード用データラインＰＲＬＩＮＥに読み出す。そして、リードアンプ活性タイミング信号ＰＲＡＥＰを内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上げ、保持回路２１４に保持する。
【００９２】
そして、保持回路２０５に保持された情報ビットデータは、符号化時間ａを経過した後、保持回路２１４に保持されている検査ビットデータと合流し、検査時間ｂ、訂正時間ｃが経過した後、信号線ＲＲＤに訂正データＲ０として読み出される。この場合、ＩＡＴＤ＝"Ｈ"のため、訂正データＲ０は信号線ＲＢＵＳＰまで読み出される。なお、内部クロックＩＣＬＫをｄ＋（ａ＋ｂ＋ｃ）だけ遅らせた内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がるが、今はライトサイクルなのでＩＲＡＥＤは立ち上がらず、したがって、訂正データＲ０はリードバスＲＢＵＳには出力されない。一方、信号ＩＲＡＥＰＤによって信号線ＨＤＡＴＡに信号線ＩＷＤ上のデータが保持されているが、これは不要データである。
【００９３】
続いて、時刻ｔ３にライト動作を始める。情報ビットに関しては、時刻ｔ３内部クロックＩＣＬＫに同期してライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷ０をミキサ２２０に取り込む。一方、信号線ＲＢＵＳＰからは、先ほど読み出した訂正データＲ０をミキサ２２０に取り込む。そして、ミキサ２２０にてこれらを混合し、得られた書き込み用情報ビットＩＷ０を信号線ＩＷＤに出力する。書き込み用情報ビットＩＷ０は、ライトバッファ２２１によってライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０に同期してビット線対ＩＢＬ０に書き込まれる。一方、書き込み用情報ビットＩＷ０は符号化回路２２２にも供給され、これよって、符号化時間ａだけ遅れてｍビットの検査ビットＰＷ０が生成される。生成された検査ビットＰＷ０は、内部クロックＰＣＬＫに同期したライトバッファ活性信号ＰＷＢＥに同期して、ライトバッファ２２３によってライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０に同期してビット線対ＰＢＬ０に書き込まれる。
【００９４】
通常は、時刻ｔ２にライトコマンドを投入すると、メモリセルアレイは、時刻ｔ４にライトサイクル要求を受けるのだが、時刻ｔ３からライトサイクル、すなわち、時刻ｔ３のリード動作後に時刻ｔ４のライト動作を始める。アドレス遷移検出信号ＩＡＴも、時刻ｔ３を原点に動作することに言及しておく。
【００９５】
まずはリード動作を始める。情報ビットに関しては、時刻ｔ３の内部クロックＩＣＬＫに同期してカラム選択信号ＩＹＲ０を駆動しようとするが、ＩＡＴＤ＝"Ｌ"のため駆動しない。現在、ビット線対ＩＢＬ０は、先のライトサイクルのライト動作を行っているが、そのデータを読むことは無い。続いて、リードアンプ活性タイミング信号ＩＲＡＥＰが時刻ｔ３の内部クロックＩＣＬＫから増幅待ち時間ｄだけ待って立ち上がるが、ＩＡＴＤ＝"Ｌ"のため活性化信号ＩＲＡＥが立ち上がることは無く、リードアンプ２０４は活性化しない。このため、リードアンプ２０４が無駄な増幅電流を流すことはない。
【００９６】
一方、検査ビットに関しては、内部クロックＩＣＬＫを符号化時間ａだけ遅らせた時刻ｔ３の内部クロックＰＣＬＫに同期してカラム選択信号ＰＹＲ０を駆動しようとするが、ＰＡＴＤ＝"Ｌ"のため駆動しない。現在、ビット線対ＰＢＬ０は、先のライトサイクルのライト動作を行っているが、そのデータを読むことは無い。続いて、リードアンプ活性タイミング信号ＰＲＡＥＰが時刻ｔ３の内部クロックＰＣＬＫから増幅待ち時間ｄだけ待って立ち上がるが、ＰＡＴＤ＝"Ｌ"のため活性化信号ＰＲＡＥが立ち上がることは無く、リードアンプ２１２は活性化しない。このため、リードアンプ２１２が無駄な増幅電流を流すことはない。
【００９７】
このように、情報ビットも検査ビットもメモリアレイ２０１，２０９からは読み出さない。
【００９８】
そして、時刻ｔ３の内部クロックＩＣＬＫＤに同期して出力タイミング信号ＩＲＡＥＰＤが立ち上がり、信号線ＩＷＤに保持されている、前サイクルに書き込みに用いた情報ビットデータＩＷ０をレジスタ２１６に取り込み、信号線ＨＤＡＴＡに出力する。そして、内部クロックＩＣＬＫＤに同期したアドレス遷移検出信号ＩＡＴＤが"Ｌ"レベルであることから、マルチプレクサ２１７は入力０側を選択し、信号線ＨＤＡＴＡ上のデータを信号線ＲＢＵＳＰに出力する。つまり、検出回路１３０ｂによって同一アドレスに対する連続的なライト要求が検出されると、訂正回路２１５によって訂正された情報ビットが遮断され、ミキサ２２０に保持された情報ビットの更新が禁止される。
【００９９】
続いて、時刻ｔ４にライト動作を始める。情報ビットに関しては、時刻ｔ４の内部クロックＩＣＬＫに同期して、ライトバッファ起動信号ＩＷＢＥを立ち上げ、ライトバスＷＢＵＳからライトデータＷ１を取り込み、ミキサ２２０に供給する。一方、信号線ＲＢＵＳＰからは、先ほどリードデータとみなした信号ＩＷ０をミキサ２２０に取り込む。そして、ミキサ２２０はこれらを混合し、得られた書き込み用情報ビットＩＷ１を信号線ＩＷＤに出力する。出力された書き込み用情報ビットＩＷ１は、ライトバッファ２２１によってライト用データラインＩＷＬＩＮＥに供給され、カラム選択信号ＩＹＷ０に同期してビット線対ＩＢＬ０に書き込まれる。
【０１００】
一方、書き込み用情報ビットＩＷ１は符号化回路２２２にも供給され、これよって、符号化時間ａだけ遅れてｍビットの検査ビットＰＷ１が生成される。生成された検査ビットＰＷ１は、時刻ｔ４の内部クロックＰＣＬＫに同期したライトバッファ活性信号ＰＷＢＥに同期して、ライトバッファ２２３によってライト用データラインＰＷＬＩＮＥに供給され、カラム選択信号ＰＹＷ０に同期してビット線対ＰＢＬ０に書き込まれる。
【０１０１】
このように、本実施形態においても、どのようなアクセスが要求された場合であっても、サイクル時間を律速することなくＥＣＣ動作を実現できる。しかも、本実施形態では、スペックtDPL(tWR)を犯すことはない。但し、アクセス時間tAAは符号化時間分遅れる。
【０１０２】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【０１０３】
例えば、上記実施形態では、本発明の適用対象がＤＲＡＭである場合を例に説明したが、本発明の適用対象がＤＲＡＭに限定されるものではなく、ＰＲＡＭなど他の半導体記憶装置に適用することも可能である。
【０１０４】
また、実施形態における、入出力回路とメモリアレイをつなぐデータラインは、階層を伴ったデータラインでもよい。階層数も問わない。すなわち、図７（ａ）に示すような１マットアレイ構成１００１に関しては、ここまで説明してきたとおり適用可能であり、図７（ｂ）のような、通常のメモリデバイスのアレイに用いられる、階層化データライン構造を伴う複数マット構成１００２であっても、サブ入出力回路についてはサブデータラインを介してメモリアレイにつながっており、メイン入出力回路については、メインデータライン、サブ入出力回路、サブデータラインを介して、メモリアレイとつながっているので、サブ入出力回路であっても、メイン入出力回路であっても適用が可能である。また、勿論、図７（ｃ）のように、独立に動作できるバンクを持たせても構わない。
【０１０５】
さらに、上記実施形態では、情報ビットが格納される情報ビット用メモリアレイと検査ビットが格納される検査ビット用メモリアレイに分けているが、これらを分けることは必須でなく、同じメモリセルアレイに情報ビットと検査ビットを格納しても構わない。
【図面の簡単な説明】
【０１０６】
【図１】本発明の好ましい第１の実施形態による半導体記憶装置２００の主要部の構成を示す回路図である。
【図２】情報ビット用メモリアレイ２０１の構造を示す回路図である。
【図３】検出回路１３０ａの回路図である。
【図４】WRITE to READ動作でリードサイクルのアドレスがライトサイクルと同一な場合の動作タイミングを示すタイミング図である。
【図５】検出回路１３０ｂの回路図である。
【図６】WRITE to WRITE動作でこれらライトサイクルのアドレスが同一の場合の動作タイミングを示すタイミング図である。
【図７】（ａ）は１マットアレイ構成を示し、（ｂ）は階層化データライン構造を伴う複数マット構成を示し、（ｃ）は複数バンクに分割された構成を示している。
【符号の説明】
【０１０７】
２００      半導体記憶装置
２０１      情報ビット用メモリアレイ
２０２      リード用カラム選択ドライバ
２０３      ライト用カラム選択ドライバ
２０４      リードアンプ
２０５      保持回路
２０７      符号化回路
２０８      検査回路
２０９      検査ビット用メモリアレイ
２１０      リード用カラム選択ドライバ
２１１      ライト用カラム選択ドライバ
２１２      リードアンプ
２１４      保持回路
２１５      訂正回路
２１６      レジスタ
２１７      マルチプレクサ
２１８      トライステートバッファ
２１９      ゲート
２２０      ミキサ
２２１      ライトバッファ
２２２      符号化回路
２２３      ライトバッファ
２３０      入出力回路
ＩＲＬＩＮＥ，ＰＲＬＩＮＥ    リード用データライン
ＩＷＬＩＮＥ，ＰＷＬＩＮＥ    ライト用データライン
【図１】
2010123156.tif 000013
【図２】
2010123156.tif 000014
【図３】
2010123156.tif 000015
【図４】
2010123156.tif 000016
【図５】
2010123156.tif 000017
【図６】
2010123156.tif 000018
【図７】
2010123156.tif 000019