(57)【要約】【課題】使用する行列式を工夫することにより効率的なエラー訂正を行う。【解決手段】メモリセルアレイ１１から読み出されたｍ×ｎビット（ｍ及びｎはいずれも２以上の整数）のリードデータＲＤ及びリードパリティＲＰに基づいてシンドロームＳを生成するシンドロームジェネレータ１２０と、シンドロームＳに基づいてリードデータＲＤに含まれるエラービットの位置を特定するエラーロケータ１３０，１４０とを備える。シンドロームＳは、ｐビット（ｐは２以上の整数）の第１シンドローム部と、ｑビット（ｑは２以上の整数）の第２シンドローム部を含む。エラーロケータ１３０，１４０は、第１シンドローム部に基づいてエラービットのｍビット内の位置を特定し、第２シンドローム部に基づいてエラービットのｎビット内の位置を特定する。本発明によれば、効率的なエラー訂正を行うことが可能となる。【選択図】図３
2016126813.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを含むメモリセルアレイと、
ｍビット（ｍは２以上の整数）のバーストデータが入出力されるように其々構成されるｎ個（ｎは２以上の整数）のデータ入出力端子と、
前記ｎ個のデータ入出力端子が受けるｍ×ｎビットのデータからｋビット（ｋは２以上の整数）のパリティを生成し、前記ｍ×ｎビットのデータ及び前記ｋビットのパリティを前記メモリセルアレイに保持させ、且つ、前記メモリセルアレイから読みだされた前記ｍ×ｎビットのデータ及び前記ｋビットのパリティを用いて前記ｍ×ｎビットのデータに含まれるエラービットを検出及び訂正するＥＣＣ制御回路と、を備え、
前記ＥＣＣ制御回路は、前記ｎ個のデータ入出力端子に対して共通であり且つ前記ｍビットのバーストデータに対して其々独立である第１エラー判定信号と、前記ｍビットのバーストデータに対して共通であり且つ前記ｎ個のデータ入出力端子に対して其々独立である第２エラー判定信号を生成し、前記第１エラー判定信号と前記第２エラー判定信号に基づいて前記エラービットを検出することを特徴とする半導体装置。
【請求項２】
前記ＥＣＣ制御回路は、前記メモリセルアレイから読み出された前記ｍ×ｎビットのデータ及び前記ｋビットのパリティに基づいてｊビット（ｊは２以上の整数）のシンドロームを生成するシンドロームジェネレータを含み、
前記ｊビットのシンドロームは、ｐビット（ｐは２以上の整数）の第１シンドローム部と、ｑビット（ｑは２以上の整数）の第２シンドローム部を含み、
前記第１エラー判定信号は、前記第１シンドローム部に基づいて生成され、
前記第２エラー判定信号は、前記第２シンドローム部に基づいて生成される、請求項１に記載の半導体装置。
【請求項３】
前記第１エラー判定信号はｍビットであり、前記第２エラー判定信号はｎビットである、請求項２に記載の半導体装置。
【請求項４】
前記ｍビットのバーストデータにそれぞれ対応するｍビットのデータマスク信号を受けるデータマスク端子をさらに備えることを特徴とする請求項２又は３に記載の半導体装置。
【請求項５】
前記ＥＣＣ制御回路は、
外部から前記ｎ個のデータ入出力端子に入力される前記ｍ×ｎビットのデータと、前記メモリセルアレイから読み出され、前記エラービットが訂正された前記ｍ×ｎビットのデータを、前記データマスク信号に基づいて合成する第１のマルチプレクサと、
外部から前記ｎ個のデータ入出力端子に入力される前記ｍ×ｎビットのデータと、前記メモリセルアレイから読み出され、前記エラービットが訂正されていない前記ｍ×ｎビットのデータを、前記データマスク信号に基づいて合成する第２のマルチプレクサと、をさらに備える、請求項４に記載の半導体装置。
【請求項６】
前記ＥＣＣ制御回路は、前記第１のマルチプレクサから出力される前記ｍ×ｎビットのデータを前記メモリセルアレイに書き込むライトアンプを含むことを特徴とする請求項５に記載の半導体装置。
【請求項７】
前記ＥＣＣ制御回路は、前記第２のマルチプレクサから出力される前記ｍ×ｎビットのデータに基づいて、前記ｋビットのパリティを生成するエンコーダをさらに含むことを特徴とする請求項６に記載の半導体装置。
【請求項８】
前記ＥＣＣ制御回路は、前記エンコーダによって生成された前記ｋビットのパリティを前記ｑビットのシンドロームに基づいて変換する変換回路をさらに含むことを特徴とする請求項７に記載の半導体装置。
【請求項９】
前記変換回路は、前記第１シンドローム部が示すバーストデータと前記データマスク信号が示すバーストデータに基づいて制御されることを特徴とする請求項８に記載の半導体装置。
【請求項１０】
前記変換回路は、前記第１シンドローム部が示すバーストデータと前記データマスク信号が示すバーストデータが一致しない場合、前記エンコーダによって生成された前記ｋビットのパリティをそのまま出力することを特徴とする請求項９に記載の半導体装置。
【請求項１１】
前記変換回路は、前記第１シンドローム部が示すバーストデータと前記データマスク信号が示すバーストデータが一致する場合、前記エンコーダによって生成された前記ｋビットのパリティと前記ｑビットのシンドロームを論理合成することを特徴とする請求項９又は１０に記載の半導体装置。
【請求項１２】
メモリセルアレイと、
前記メモリセルアレイから読み出されたｍ×ｎビット（ｍ及びｎはいずれも２以上の整数）のリードデータ及びリードパリティに基づいてシンドロームを生成するシンドロームジェネレータと、
前記シンドロームに基づいて前記リードデータに含まれるエラービットの位置を特定するエラーロケータと、を備え、
前記シンドロームは、ｐビット（ｐは２以上の整数）の第１シンドローム部と、ｑビット（ｑは２以上の整数）の第２シンドローム部を含み、
前記エラーロケータは、前記第１シンドローム部に基づいて前記エラービットの前記ｍビット内の位置を特定し、前記第２シンドローム部に基づいて前記エラービットの前記ｎビット内の位置を特定することを特徴とする半導体装置。
【請求項１３】
前記エラーロケータは、前記第１シンドローム部をデコードすることによってｍビットの第１エラー判定信号を生成する第１のデコーダと、前記第２シンドローム部をデコードすることによってｎビットの第２エラー判定信号を生成する第２のデコーダと、前記第１及び第２エラー判定信号に基づいてエラービットの位置を特定する第３のデコーダと、を含む請求項１２に記載の半導体装置。
【請求項１４】
ｍ×ｎビットのライトデータに基づいてライトパリティを生成するエンコーダと、
前記ライトデータ及び前記ライトパリティを前記メモリセルアレイに書き込むライトアンプと、をさらに備える、請求項１２又は１３に記載の半導体装置。
【請求項１５】
前記シンドロームと、前記ライトデータの前記ｍビットにそれぞれ対応するｍビットのデータマスク信号とに基づいて、前記ライトパリティの値を変換する変換回路をさらに備える、請求項１４の半導体装置。
【請求項１６】
メモリセルアレイと、
それぞれ複数のライトデータがバースト入力される複数のデータ入出力端子と、
前記複数のバーストデータにそれぞれ対応する複数のデータマスク信号を受けるデータマスク端子と、
前記ライトデータと前記メモリセルアレイから読み出された複数のリードデータを、前記データマスク信号に基づいて合成することによりパリティ生成用データを生成するマルチプレクサと、
前記パリティ生成用データに基づいてライトパリティを生成するエンコーダと、
前記リードデータと前記メモリセルアレイから読み出されたリードパリティに基づいてシンドロームを生成するシンドロームジェネレータと、
前記シンドローム及び前記データマスク信号に基づいて、前記ライトパリティの値を変換する変換回路と、を備えることを特徴とする半導体装置。
【請求項１７】
前記変換回路は、前記シンドロームが示すバーストデータと前記データマスク信号が示すバーストデータが一致しない場合、前記エンコーダによって生成された前記ライトパリティをそのまま出力することを特徴とする請求項１６に記載の半導体装置。
【請求項１８】
前記変換回路は、前記シンドロームが示すバーストデータと前記データマスク信号が示すバーストデータが一致する場合、前記エンコーダによって生成された前記ライトパリティと前記シンドロームを論理合成することを特徴とする請求項１６又は１７に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、特に、データのエラー訂正機能を備えた半導体装置に関する。
【背景技術】
【０００２】
近年、ＤＲＡＭ（Dynamic Random Access Memory）などの半導体装置は非常に大容量化しており、これに伴って不良ビットの発生数についても増大している。不良ビットのうち、ワード線不良やビット線不良に起因するものは、主に冗長ワード線や冗長ビット線への置換によって救済される。しかしながら、パッケージング後などに発生する散発的な不良ビットについては、冗長ワード線や冗長ビット線への置換によって救済することが困難であるケースが存在する。このような散発的な不良ビットについては、冗長回路を用いた置換を行うのではなく、エラー訂正機能を用いてデータを救済する方法が採られることがある。
【０００３】
一例として、非特許文献１には、ＥＣＣ（Error Correction Circuit）を搭載したＤＲＡＭが開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ISSCC2014 / SESSION25 /HIGH-BANDWIDTH LOW-POWER DRAM AND I/O / 25.1
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１にはＥＣＣによるエンコード及びデコードをどの様な行列式を用いて行うかは開示されていない。ＥＣＣに含まれるエンコード回路やデコード回路は、使用する行列式によって回路構成が決まるため、その動作速度についても使用する行列式によって左右されることとなる。本発明は、使用する行列式を工夫することにより、より効率的なエラー訂正を行うことが可能な半導体装置を提供するものである。
【課題を解決するための手段】
【０００６】
本発明の一側面による半導体装置は、複数のメモリセルを含むメモリセルアレイと、ｍビット（ｍは２以上の整数）のバーストデータが入出力されるように其々構成されるｎ個（ｎは２以上の整数）のデータ入出力端子と、前記ｎ個のデータ入出力端子が受けるｍ×ｎビットのデータからｋビット（ｋは２以上の整数）のパリティを生成し、前記ｍ×ｎビットのデータ及び前記ｋビットのパリティを前記メモリセルアレイに保持させ、且つ、前記メモリセルアレイから読みだされた前記ｍ×ｎビットのデータ及び前記ｋビットのパリティを用いて前記ｍ×ｎビットのデータに含まれるエラービットを検出及び訂正するＥＣＣ制御回路と、を備え、前記ＥＣＣ制御回路は、前記ｎ個のデータ入出力端子に対して共通であり且つ前記ｍビットのバーストデータに対して其々独立である第１エラー判定信号と、前記ｍビットのバーストデータに対して共通であり且つ前記ｎ個のデータ入出力端子に対して其々独立である第２エラー判定信号を生成し、前記第１エラー判定信号と前記第２エラー判定信号に基づいて前記エラービットを検出することを特徴とする。
【０００７】
本発明の他の側面による半導体装置は、メモリセルアレイと、前記メモリセルアレイから読み出されたｍ×ｎビット（ｍ及びｎはいずれも２以上の整数）のリードデータ及びリードパリティに基づいてシンドロームを生成するシンドロームジェネレータと、前記シンドロームに基づいて前記リードデータに含まれるエラービットの位置を特定するエラーロケータと、を備え、前記シンドロームは、ｐビット（ｐは２以上の整数）の第１シンドローム部と、ｑビット（ｑは２以上の整数）の第２シンドローム部を含み、前記エラーロケータは、前記第１シンドローム部に基づいて前記エラービットの前記ｍビット内の位置を特定し、前記第２シンドローム部に基づいて前記エラービットの前記ｎビット内の位置を特定することを特徴とする。
【０００８】
本発明のさらに他の側面による半導体装置は、メモリセルアレイと、それぞれ複数のライトデータがバースト入力される複数のデータ入出力端子と、前記複数のバーストデータにそれぞれ対応する複数のデータマスク信号を受けるデータマスク端子と、前記ライトデータと前記メモリセルアレイから読み出された複数のリードデータを、前記データマスク信号に基づいて合成することによりパリティ生成用データを生成するマルチプレクサと、前記パリティ生成用データに基づいてライトパリティを生成するエンコーダと、前記リードデータと前記メモリセルアレイから読み出されたリードパリティに基づいてシンドロームを生成するシンドロームジェネレータと、前記シンドローム及び前記データマスク信号に基づいて、前記ライトパリティの値を変換する変換回路と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、効率的なエラー訂正を行うことが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の好ましい実施形態による半導体装置１０の全体構成を示すブロック図である。
【図２】半導体装置１０のレイアウトを説明するための平面図である。
【図３】ＥＣＣ制御回路１００の構成を示すブロック図である。
【図４】ＥＣＣ制御回路１００を構成する各回路ブロックのレイアウトを説明するための平面図である。
【図５】タイミングジェネレータ３７の回路図である。
【図６】プロトタイプによる行列式である。
【図７】本発明の好ましい実施形態において使用する行列式である。
【図８】図７に示した行列式を倒置した図である。
【図９】（ａ）はライトパリティＷＰ'０の生成方法を説明するための説明図であり、（ｂ）はライトパリティＷＰ'０を生成する回路の回路図である。
【図１０】（ａ）はライトパリティＷＰ'３〜ＷＰ'７の生成方法を説明するための説明図であり、（ｂ）はライトパリティＷＰ'３〜ＷＰ'７を生成する回路の回路図である。
【図１１】４入力の排他的論理和回路の構成を示す回路図である。
【図１２】シンドロームジェネレータ１２０の機能を説明するための図である。
【図１３】（ａ）はシンドロームＳ０の生成方法を説明するための説明図であり、（ｂ）はシンドロームＳ０を生成する回路の回路図である。
【図１４】（ａ）はシンドロームＳ３〜Ｓ７の生成方法を説明するための説明図であり、（ｂ）はシンドロームＳ３〜Ｓ７を生成する回路の回路図である。
【図１５】エラーロケータ１３０，１４０の機能を説明するための模式図である。
【図１６】エラーロケータ１３０に含まれるデコーダ１３１の回路図である。
【図１７】エラーロケータ１３０に含まれるデコーダ１３２の回路図である。
【図１８】エラーロケータ１４０及びエラーコレクタ１５０の回路図である。
【図１９】マスクエラー検出回路１６０の構成を示すブロック図である。
【図２０】第１の検出回路１６１の回路図である。
【図２１】第２の検出回路１６２の回路図である。
【図２２】半導体装置１０のリード動作を説明するためのタイミング図である。
【図２３】半導体装置１０のライト動作を説明するためのタイミング図である。
【図２４】半導体装置１０を用いたデータ処理システム２００の構成を示すブロック図である。
【図２５】変形例によるデータ処理システム２００Ａの構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照しながら、本発明の好ましい実施形態について詳細に説明する。
【００１２】
図１は、本発明の好ましい実施形態による半導体装置１０の全体構成を示すブロック図である。
【００１３】
本実施形態による半導体装置１０は単一の半導体チップに集積されたＤＤＲ４（Double Data Rate 4）型のＤＲＡＭであり、外部基板２に実装されている。外部基板２は、メモリモジュール基板あるいはマザーボードであり、外部抵抗Ｒｅが設けられている。外部抵抗Ｒｅは、半導体装置１０のキャリブレーション端子ＺＱに接続されており、そのインピーダンスはキャリブレーション回路３９の基準インピーダンスとして用いられる。本実施形態においては外部抵抗Ｒｅに接地電位ＶＳＳが供給されている。
【００１４】
図１に示すように、半導体装置１０はメモリセルアレイ１１を有している。メモリセルアレイ１１は、８つのバンクＢＡＮＫ０〜ＢＡＮＫ７に分割されており、各バンクは複数のワード線ＷＬと複数のビット線ＢＬＴ，ＢＬＢを備え、これらの交点にメモリセルＭＣが配置されている。メモリセルＭＣは、セルトランジスタＴとセルキャパシタＣが直列に接続されたＤＲＡＭセルである。
【００１５】
ワード線ＷＬの選択はロウデコーダ１２によって行われ、ビット線ＢＬの選択はカラムデコーダ１３によって行われる。図１に示すように、ロウデコーダ１２及びカラムデコーダ１３は、ＢＡＮＫ０〜ＢＡＮＫ７ごとに設けられている。
【００１６】
対を成すビット線ＢＬＴ，ＢＬＢはセンスアンプＳＡＭＰに接続されている。ビット線ＢＬＴ又はビット線ＢＬＢから読み出されたリードデータは、センスアンプＳＡＭＰによって増幅された後、相補のローカルデータ線ＬＩＯＴ／ＬＩＯＢ、スイッチ回路ＴＧ及び相補のメインデータ線ＭＩＯＴ／ＭＩＯＢを介してＥＣＣ制御回路１００に転送される。ＥＣＣ制御回路１００についてもＢＡＮＫ０〜ＢＡＮＫ７ごとに設けられている。
【００１７】
詳細については後述するが、メモリセルアレイ１１からリードデータが読み出される際には、同時にパリティも読み出される。逆に、ＥＣＣ制御回路１００から出力されるライトデータは、相補のメインデータ線ＭＩＯＴ／ＭＩＯＢ、スイッチ回路ＴＧ及び相補のローカルデータ線ＬＩＯＴ／ＬＩＯＢを介してセンスアンプＳＡＭＰに転送され、ビット線ＢＬＴ又はビット線ＢＬＢに接続されたメモリセルＭＣに書き込まれる。詳細については後述するが、メモリセルアレイ１１にライトデータが書き込まれる際には、同時にパリティも書き込まれる。
【００１８】
また、半導体装置１０には外部端子としてアドレス端子２１、コマンド端子２２、クロック端子２３、データ入出力端子２４、データマスク端子２５、電源端子２６，２７、キャリブレーション端子ＺＱが設けられている。
【００１９】
アドレス端子２１は、外部からアドレス信号ＡＤＤ及びバンクアドレス信号ＢＡＤＤが入力される端子である。アドレス端子２１に入力されたアドレス信号ＡＤＤは、アドレス入力回路３１を介してアドレスラッチ回路３２に供給され、ラッチされる。アドレスラッチ回路３２にラッチされた信号のうち、ロウアドレス信号ＸＡＤＤ及びバンクアドレス信号ＢＡＤＤはロウデコーダ１２に供給され、カラムアドレス信号ＹＡＤＤ及びバンクアドレス信号ＢＡＤＤはカラムデコーダ１３に供給される。
【００２０】
ロウデコーダ１２は、バンクアドレス信号ＢＡＤＤに基づいてＢＡＮＫ０〜ＢＡＮＫ７に対応するいずれか一つが選択されるとともに、ロウアドレス信号ＸＡＤＤに基づいて所定のワード線ＷＬを選択する。カラムデコーダ１３は、バンクアドレス信号ＢＡＤＤに基づいてＢＡＮＫ０〜ＢＡＮＫ７に対応するいずれか一つが選択されるとともに、カラムアドレス信号ＹＡＤＤに基づいて所定のセンスアンプＳＡＭＰを選択する。
【００２１】
コマンド端子２２は、外部からコマンド信号ＣＯＭが入力される端子である。コマンド端子２２に入力されたコマンド信号ＣＯＭは、コマンド入力回路３３を介してコマンドデコーダ３４に供給される。コマンドデコーダ３４は、コマンド信号ＣＯＭをデコードすることによって各種内部コマンドＩＣＯＭを生成する回路である。内部コマンドＩＣＯＭは、ロウデコーダ１２、カラムデコーダ１３、タイミングジェネレータ３７などに供給される。
【００２２】
例えば、コマンド信号ＣＯＭとしてアクティブコマンド及びリードコマンドを入力するとともに、これらに同期してロウアドレスＸＡＤＤ及びカラムアドレスＹＡＤＤを入力すれば、これらロウアドレスＸＡＤＤ及びカラムアドレスＹＡＤＤによって指定されるメモリセルＭＣからリードデータ及びパリティが読み出される。リードデータ及びパリティはＥＣＣ制御回路１００に入力され、リードデータにエラービットが含まれている場合にはこれが訂正される。訂正されたリードデータＤＱは、データ入出力回路１４を介して、データ入出力端子２４から外部にバースト出力される。特に限定されるものではないが、本実施形態では８個のデータ入出力端子２４（ＤＱ０〜ＤＱ７）が設けられており、リード動作時においては各データ入出力端子２４から８ビットのリードデータＤＱがバースト出力される。したがって、１回のリード動作で６４ビットのリードデータＤＱが出力される。
【００２３】
一方、コマンド信号ＣＯＭとしてアクティブコマンド及びライトコマンドを入力するとともに、これらに同期してロウアドレスＸＡＤＤ及びカラムアドレスＹＡＤＤを入力し、その後、データ入出力端子２４にライトデータＤＱをバースト入力すれば、ライトデータＤＱはデータ入出力回路１４を介してＥＣＣ制御回路１００に供給され、ライトデータに基づいてパリティが生成される。ライトデータ及びパリティはメモリセルアレイ１１に供給され、ロウアドレスＸＡＤＤ及びカラムアドレスＹＡＤＤによって指定されるメモリセルＭＣに書き込まれる。上述の通り、データ入出力端子２４が８個設けられ、且つ、バースト数が８ビットである場合、１回のライト動作で６４ビットのライトデータＤＱが入力される。
【００２４】
ライト動作時においては、データマスク端子２５にデータマスク信号ＤＭを入力することが可能である。データマスク信号ＤＭを入力すれば、バースト入力されるライトデータＤＱのうち、対応するバーストデータがマスクされる。
【００２５】
クロック端子２３には、外部クロック信号ＣＫ，／ＣＫが入力される。外部クロック信号ＣＫと外部クロック信号／ＣＫは互いに相補の信号であり、いずれもクロック入力回路３５に供給される。クロック入力回路３５は、外部クロック信号ＣＫ，／ＣＫを受けて内部クロック信号ＩＣＬＫを生成する。内部クロック信号ＩＣＬＫは、内部クロック発生回路３６に供給され、これによって位相制御された内部クロック信号ＬＣＬＫが生成される。特に限定されるものではないが、内部クロック発生回路３６としてはＤＬＬ回路を用いることができる。内部クロック信号ＬＣＬＫはデータ入出力回路１４に供給され、リードデータＤＱの出力タイミングを決めるタイミング信号として用いられる。尚、内部クロック発生回路３６は、コマンド信号ＣＯＭの一つであるクロックイネーブル信号ＣＫＥに応答して活性化される。
【００２６】
内部クロック信号ＩＣＬＫは、タイミングジェネレータ３７にも供給され、これによって複数のタイミング信号ＲＴ１〜ＲＴ４，ＷＴ１〜ＷＴ５が生成される。タイミングジェネレータ３７によって生成されるタイミング信号ＲＴ１〜ＲＴ４，ＷＴ１〜ＷＴ５はＥＣＣ制御回路１００に供給され、リード動作時及びライト動作時におけるＥＣＣ制御回路１００の動作タイミングを規定する。
【００２７】
電源端子２６は、電源電位ＶＤＤ，ＶＳＳが供給される端子である。電源端子２６に供給される電源電位ＶＤＤ，ＶＳＳは内部電源発生回路３８に供給される。内部電源発生回路３８は、電源電位ＶＤＤ，ＶＳＳに基づいて各種の内部電位ＶＰＰ，ＶＯＤ，ＶＡＲＹ，ＶＰＥＲＩや、基準電位ＺＱＶＲＥＦを発生させる。内部電位ＶＰＰは主にロウデコーダ１２において使用される電位であり、内部電位ＶＯＤ，ＶＡＲＹはメモリセルアレイ１１内のセンスアンプＳＡＭＰにおいて使用される電位であり、内部電位ＶＰＥＲＩは他の多くの回路ブロックにおいて使用される電位である。一方、基準電位ＺＱＶＲＥＦは、キャリブレーション回路３９にて使用される基準電位である。
【００２８】
電源端子２７は、電源電位ＶＤＤＱ，ＶＳＳＱが供給される端子である。電源端子２７に供給される電源電位ＶＤＤＱ，ＶＳＳＱはデータ入出力回路１４に供給される。電源電位ＶＤＤＱ，ＶＳＳＱは、電源端子２６に供給される電源電位ＶＤＤ，ＶＳＳとそれぞれ同電位であるが、データ入出力回路１４によって生じる電源ノイズが他の回路ブロックに伝搬しないよう、データ入出力回路１４については専用の電源電位ＶＤＤＱ，ＶＳＳＱを用いている。
【００２９】
キャリブレーション端子ＺＱは、キャリブレーション回路３９に接続されている。キャリブレーション回路３９は、キャリブレーション信号ＺＱＣによって活性化されると、外部抵抗Ｒｅのインピーダンス及び基準電位ＺＱＶＲＥＦを参照してキャリブレーション動作を行う。キャリブレーション動作によって得られたインピーダンスコードＺＱＣＯＤＥはデータ入出力回路１４に供給され、これによって、データ入出力回路１４に含まれる出力バッファ（図示せず）のインピーダンスが指定される。
【００３０】
図２は、半導体装置１０のレイアウトを説明するための平面図である。
【００３１】
図２に示すように、メモリセルアレイ１１を構成する８つのバンクＢＡＮＫ０〜ＢＡＮＫ７はそれぞれ２つに分割されており、合計で１６個のエリアを構成する。同一のバンクを構成する２つのエリアは、ロウアドレス信号ＸＡＤＤの最上位ビット（例えばビットＸ１５）に基づいて排他的に選択される。図２において、Ｘ１５Ｔと表記されているのは、ビットＸ１５がハイレベルである場合に選択されるエリアであり、Ｘ１５Ｂと表記されているのは、ビットＸ１５がローレベルである場合に選択されるエリアである。
【００３２】
これら１６個のエリアは、Ｘ方向及びＹ方向にマトリクス状にレイアウトされる。具体的には、同一のバンクを構成する２つのエリアはＹ方向に隣接して配置され、これらの間には当該バンクに対応するロウデコーダ（ＸＤＥＣ）１２が配置される。また、バンクＢＡＮＫｉ（ｉは０，２，４，６）に含まれる一方のエリアと、バンクＢＡＮＫｉ＋１に含まれる一方のエリアはＸ方向に隣接して配置され、これらの間には対応するカラムデコーダ（ＹＤＥＣ）１３及びＥＣＣ制御回路１００が配置される。ＥＣＣ制御回路１００は、リードライトバスＲＷＢＳを介してデータ入出力回路１４に接続される。データ入出力回路１４及びデータ入出力端子２４は、バンクＢＡＮＫ２，３とバンクＢＡＮＫ６，７に挟まれた中央領域ＰＥＲＩＤＱに配置される。バンクＢＡＮＫ０，１とバンクＢＡＮＫ４，５に挟まれた中央領域ＰＥＲＩＣＡには、アドレス端子２１、コマンド端子２２、コマンドデコーダ３４などが配置される。
【００３３】
以下、ＥＣＣ制御回路１００の構成及びその動作について詳細に説明する。
【００３４】
図３は、ＥＣＣ制御回路１００の構成を示すブロック図である。
【００３５】
図３に示すように、ＥＣＣ制御回路１００は、メモリセルアレイ１１から同時に読み出された６４ビットのリードデータＤ０〜Ｄ６３及び８ビットのパリティＰ０〜Ｐ７を増幅するリードアンプ１０１と、６４ビットのライトデータＤ０〜Ｄ６３及び８ビットのパリティＰ０〜Ｐ７をメモリセルアレイ１１に同時に書き込むライトアンプ１０２とを含む。
【００３６】
本明細書においては、メモリセルアレイ１１から読み出されたデータＤ０〜Ｄ６３を「リードデータＲＤ０〜ＲＤ６３」と表記することによって、ライトデータや訂正されたリードデータと区別することがある。また、本明細書においては、外部から入力されたデータを「ライトデータＷＤ０〜ＷＤ６３」と表記することによって、リードデータやデータマスク処理されたデータ、つまり実際にメモリセルアレイ１１に書き込むべきデータＤ０〜Ｄ６３と区別することがある。同様に、本明細書においては、メモリセルアレイ１１から読み出されたパリティＰ０〜Ｐ７を「リードパリティＲＰ０〜ＲＰ７」と表記し、メモリセルアレイ１１に書き込むべきパリティＰ０〜Ｐ７を「ライトパリティＷＰ０〜ＷＰ７」と表記することによって、両者を区別することがある。
【００３７】
リードアンプ１０１は、リード動作時においてはタイミング信号ＲＴ１に応答して活性化され、ライト動作時においてタイミング信号ＷＴ１に応答して活性化される。リードアンプ１０１をライト動作時においても活性化させるのは、データマスク機能とエラー訂正機能を両立させるためであり、その詳細については後述する。
【００３８】
リードアンプ１０１によって増幅されたリードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７は、ＥＣＣ制御回路１００に含まれるシンドロームジェネレータ１２０に供給される。シンドロームジェネレータ１２０は、リードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７に基づいて８ビットのシンドロームＳ０〜Ｓ７を生成する演算回路であり、リード動作時においてはタイミング信号ＲＴ２に応答して活性化され、ライト動作時においてタイミング信号ＷＴ２に応答して活性化される。シンドロームＳ０〜Ｓ７は、ＥＣＣ制御回路１００に含まれるエラーロケータ１３０に供給される。
【００３９】
エラーロケータ１３０は、シンドロームＳ０〜Ｓ７に基づいて、８ビットの第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７と、８ビットの第２エラー判定信号ＥＤＱ０〜ＥＤＱ７を生成する。エラーロケータ１３０は、リード動作時においてはタイミング信号ＲＴ３に応答して活性化され、ライト動作時においてタイミング信号ＷＴ３に応答して活性化される。詳細については後述するが、第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７は、リードデータＲＤ０〜ＲＤ６３に含まれるエラービットのバースト位置を特定するための信号である。したがって、第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７は、８個のデータ入出力端子２４に対して共通であり、且つ、８ビットのバーストデータに対してそれぞれ独立な信号である。これに対し、第２エラー判定信号ＥＤＱ０〜ＥＤＱ７は、リードデータＲＤ０〜ＲＤ６３に含まれるエラービットのＤＱ位置を特定するための信号である。したがって、第２エラー判定信号ＥＤＱ０〜ＥＤＱは、８ビットのバーストデータに対して共通であり、且つ、８個のデータ入出力端子２４に対してそれぞれ独立な信号である。
【００４０】
第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７及び第２エラー判定信号ＥＤＱ０〜ＥＤＱ７は、ＥＣＣ制御回路１００に含まれるエラーロケータ１４０に供給される。エラーロケータ１４０は、第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７及び第２エラー判定信号ＥＤＱ０〜ＥＤＱ７をさらにデコードすることによって、リードデータＲＤ０〜ＲＤ６３に含まれるエラービットを特定する回路である。エラービットは、６４ビットのエラー位置信号ＥＬ０〜ＥＬ６３によって特定される。
【００４１】
エラー位置信号ＥＬ０〜ＥＬ６３は、ＥＣＣ制御回路１００に含まれるエラーコレクタ１５０に供給される。エラーコレクタ１５０には、リードデータＲＤ０〜ＲＤ６３も供給されており、エラー位置信号ＥＬ０〜ＥＬ６３に基づいてリードデータＲＤ０〜ＲＤ６３を訂正することにより、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３が生成される。エラーコレクタ１５０は、リード動作時においてはタイミング信号ＲＴ４に応答して活性化され、ライト動作時においてタイミング信号ＷＴ４に応答して活性化される。
【００４２】
エラーコレクタ１５０によって訂正されたリードデータＣＲＤ０〜ＣＲＤ６３は、リードライトバスＲＷＢＳを介してデータ入出力回路１４に転送され、８個のデータ入出力端子２４から外部にバースト出力される。
【００４３】
一方、ライト動作時に外部からバースト入力されるライトデータＷＤ０〜ＷＤ６３は、リードライトバスＲＷＢＳを介してＥＣＣ制御回路１００に供給される。ライトデータＷＤ０〜ＷＤ６３は、ＥＣＣ制御回路１００に含まれる第１のマルチプレクサ１０３に入力される。第１のマルチプレクサ１０３は、ライトデータＷＤ０〜ＷＤ６３と訂正されたリードデータＣＲＤ０〜ＣＲＤ６３をデータマスク信号ＤＭ０〜ＤＭ７に基づいて合成することにより、実際にメモリセルアレイ１１に書き込むべきデータＤ０〜Ｄ６３を生成する。
【００４４】
データマスク信号ＤＭ０〜ＤＭ７は、それぞれ８ビットのバーストデータに対応しており、ライトデータＷＤ０〜ＷＤ６３のうち、活性化しているデータマスク信号ＤＭ０〜ＤＭ７に対応するバーストデータについては、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３のうち対応するバーストデータに置き換えられる。これにより、データマスク機能が実現される。第１のマルチプレクサ１０３から出力されるデータＤ０〜Ｄ６３は、ライトアンプ１０２を介してメモリセルアレイ１１に書き込まれる。ライトアンプ１０２は、ライト動作時においてタイミング信号ＷＴ５に応答して活性化される。
【００４５】
さらに、ライトデータＷＤ０〜ＷＤ６３は、ＥＣＣ制御回路１００に含まれる第２のマルチプレクサ１０４にも入力される。第２のマルチプレクサ１０４は、ライトデータＷＤ０〜ＷＤ６３と訂正される前のリードデータＲＤ０〜ＲＤ６３をデータマスク信号ＤＭ０〜ＤＭ７に基づいて合成することにより、パリティ生成用データＰＷＤ０〜ＰＷＤ６３を生成する。
【００４６】
パリティ生成用データＰＷＤ０〜ＰＷＤ６３は、ＥＣＣ制御回路１００に含まれるエンコーダ１１０に供給される。エンコーダ１１０は、タイミング信号ＷＴ２に応答して活性化され、パリティ生成用データＰＷＤ０〜ＰＷＤ６３をエンコードすることによってライトパリティＷＰ'０〜ＷＰ'７を生成する。ライトパリティＷＰ'０〜ＷＰ'７は、ＥＣＣ制御回路１００に含まれる変換回路１０５に入力される。
【００４７】
変換回路１０５は、ライトパリティＷＰ'０〜ＷＰ'７とシンドロームＳ０〜Ｓ７の対応するビットを論理合成する排他的論理和ゲート１０５ａと、マルチプレクサ１０５ｂによって構成される。変換回路１０５に含まれるマルチプレクサ１０５ｂの動作は、変換信号ＥＤＭによって制御される。変換信号ＥＤＭは、ＥＣＣ制御回路１００に含まれるマスクエラー検出回路１６０によって生成され、これが活性化している場合にはライトパリティＷＰ'０〜ＷＰ'７とシンドロームＳ０〜Ｓ７が排他的論理和合成されてライトパリティＷＰ０〜ＷＰ７が生成される。これに対し、変換信号ＥＤＭが非活性化している場合には、ライトパリティＷＰ'０〜ＷＰ'７がそのままライトパリティＷＰ０〜ＷＰ７として出力される。ライトパリティＷＰ０〜ＷＰ７は、ライトアンプ１０２を介してメモリセルアレイ１１に書き込まれる。
【００４８】
マスクエラー検出回路１６０は、タイミング信号ＷＴ３に応答して活性化され、エラービットが属するバーストデータと、データマスク信号ＤＭ０〜ＤＭ７によってマスクされるバーストデータが一致しているか否かを判定する。その結果、両者が一致している場合には変換信号ＥＤＭが活性化され、両者が一致していない場合には変換信号ＥＤＭが非活性化される。
【００４９】
図４は、ＥＣＣ制御回路１００を構成する各回路ブロックのレイアウトを説明するための平面図である。
【００５０】
図４に示すように、メモリセルアレイ１１は８つのデータ入出力端子２４に対応する８つのデータエリアＡ０〜Ａ７を備えている。つまり、データエリアＡ０〜Ａ７には、それぞれ８つのデータ入出力端子２４に対応するデータＤＱ０〜ＤＱ７が記憶される。そして、１回のリード動作によって各データエリアＡ０〜Ａ７からそれぞれ８ビットのデータが読み出され、これにより合計で６４ビットのデータＤ０〜Ｄ６３が一度に読み出されることになる。さらに、メモリセルアレイ１１は、パリティを格納するパリティエリアＡＰを備えている。パリティエリアＡＰは、データエリアＡ３とデータエリアＡ４との間に配置されており、１回のリード動作によってパリティエリアＡＰから８ビットのパリティＰ０〜Ｐ７が読み出される。したがって、１回のリード動作によって６４ビットのデータＤ０〜Ｄ６３と８ビットのパリティＰ０〜Ｐ７が一度に読み出されることになる。
【００５１】
ライト動作時におけるデータの流れはリード動作時におけるデータの流れと逆であり、１回のライト動作によって６４ビットのデータＤ０〜Ｄ６３が８ビットずつデータエリアＡ０〜Ａ７に書き込まれるとともに、８ビットのパリティＰ０〜Ｐ７がパリティエリアＡＰに書き込まれる。
【００５２】
図４に示すように、ＥＣＣ制御回路１００を構成する各回路ブロックのうち、リードアンプ１０１及びライトアンプ１０２については、それぞれ対応するデータエリアＡ０〜Ａ７及びパリティエリアＡＰに対してＹ座標が一致するよう配置されている。これにより、メモリセルアレイ１１とリードアンプ１０１及びライトアンプ１０２との間における、データＤ０〜Ｄ６３及びパリティＰ０〜Ｐ７の転送距離が短縮且つ均一化されている。
【００５３】
さらに、ライトアンプ１０２から見てメモリセルアレイ１１とは反対のＸ方向側には、第１のマルチプレクサ１０３、エンコーダ１１０及び第２のマルチプレクサ１０４がこの順に配置されている。これにより、ライト動作時に外部から入力されるデータＤ０〜Ｄ６３は、第１のマルチプレクサ１０３を介してライトアンプ１０２に供給されるとともに、第２のマルチプレクサ１０４を介してエンコーダ１１０に供給され、これによってライトパリティＷＰ'０〜ＷＰ'７が生成される。ライトパリティＷＰ'０〜ＷＰ'７は、必要に応じて変換回路１０５により変換され、ライトパリティＷＰ０〜ＷＰ７としてライトアンプ１０２に供給される。
【００５４】
一方、リードアンプ１０１から見てメモリセルアレイ１１とは反対のＸ方向側には、シンドロームジェネレータ１２０、エラーロケータ１４０及びエラーコレクタ１５０がこの順に配置されている。これにより、リードアンプ１０１から出力されるリードデータＲＤ０〜ＲＤ６３はシンドロームジェネレータ１２０に転送され、エラーロケータ１４０及びエラーコレクタ１５０を用いて検証及び訂正が実行される。
【００５５】
このように、ＥＣＣ制御回路１００を構成する上記の回路ブロックは、それぞれ対応するデータエリアＡ０〜Ａ７及びパリティエリアＡＰに対してＹ座標が一致するよう配置され、これによってデータＤ０〜Ｄ６３及びパリティＰ０〜Ｐ７の転送距離が短縮且つ均一化されている。これに対し、エラーロケータ１３０、マスクエラー検出回路１６０及び変換回路１０５については、上記の回路ブロックとは異なるエリアに配置されている。これは、エラーロケータ１３０、マスクエラー検出回路１６０及び変換回路１０５は、シンドロームＳ０〜Ｓ７に基づいて動作する回路であり、データエリアＡ０〜Ａ７及びパリティエリアＡＰに対するレイアウト上の対応付けが不要だからである。
【００５６】
図５は、タイミングジェネレータ３７の回路図である。
【００５７】
図５に示すように、タイミングジェネレータ３７は、タイミング信号ＲＴ１〜ＲＴ４を生成する信号生成部３７Ｒと、タイミング信号ＷＴ１〜ＷＴ５を生成する信号生成部３７Ｗを備えている。
【００５８】
信号生成部３７Ｒは、内部コマンドＩＣＯＭの一種であるリード信号ＩＲＥＡＤに基づいてタイミング信号ＲＴ１〜ＲＴ４を生成する。リード信号ＩＲＥＡＤは、コマンド端子２２に入力されるコマンド信号ＣＯＭがリードコマンドを示している場合にコマンドデコーダ３４によって活性化される信号である。信号生成部３７Ｒにはタイミング調整用の遅延回路（インバータ）が複数設けられており、これにより、リード信号ＩＲＥＡＤが活性化すると、タイミング信号ＲＴ１〜ＲＴ４がこの順に活性化する。
【００５９】
信号生成部３７Ｗは、内部コマンドＩＣＯＭの一種であるライト信号ＩＷＲＩＴＥに基づいてタイミング信号ＷＴ１〜ＷＴ５を生成する。ライト信号ＩＷＲＩＴＥは、コマンド端子２２に入力されるコマンド信号ＣＯＭがライトコマンドを示している場合にコマンドデコーダ３４によって活性化される信号である。信号生成部３７Ｗにはタイミング調整用の遅延回路（インバータ）が複数設けられており、これにより、ライト信号ＩＷＲＩＴＥが活性化すると、タイミング信号ＷＴ１〜ＷＴ５がこの順に活性化する。
【００６０】
このようにして生成されるタイミング信号ＲＴ１〜ＲＴ４，ＷＴ１〜ＷＴ５は、ＥＣＣ制御回路１００を構成する各回路ブロックに供給され、これによりＥＣＣ制御回路１００の動作タイミングが制御される。
【００６１】
次に、ＥＣＣ制御回路１００が演算に使用する行列式について説明する。
【００６２】
図６は、プロトタイプによる行列式である。
【００６３】
図６に示す行列式は、６４ビットのデータＤ０〜Ｄ６３に８ビットのパリティＰ０〜Ｐ７を付加したハミング符号方式のＨマトリクスである。図６に示すように、各データＤ又はパリティＰに対して互いに異なる演算式が列方向に割り当てられており、各行について演算を行うことによって８ビットのシンドロームＳ０〜Ｓ７が生成される。つまり、Ｈマトリクスにおいて「１」と表記されている箇所で排他的論理和演算を行い、得られた値を行ごとに演算する。
【００６４】
具体的に説明すると、データＤ０〜Ｄ６３からパリティＰ０〜Ｐ７を生成する場合（ライト動作時）には、Ｈマトリクスにおいて「１」と表記されている箇所のデータＤ０〜Ｄ６３の値が「１」である数を行ごとに加算し、その結果、すべてのシンドロームＳ０〜Ｓ７の値が「０」となるよう、パリティＰ０〜Ｐ７の値を決定する。シンドロームＳ０〜Ｓ７の値は、加算した数が偶数であれば「０」、奇数であれば「１」とする。したがって、各行における加算数が全て偶数となるよう、パリティＰ０〜Ｐ７の値が決定される。
【００６５】
一方、パリティを用いてデータＤ０〜Ｄ６３を検証する場合（リード動作時）には、Ｈマトリクスにおいて「１」と表記されている箇所のデータＤ０〜Ｄ６３又はパリティＰ０〜Ｐ７の値が「１」である数を行ごとに偶奇判定し、これによってシンドロームＳ０〜Ｓ７を生成する。そして、シンドロームＳ０〜Ｓ７の値が全て「０」であればデータＤ０〜Ｄ６３に誤りがないことが分かる。これに対し、シンドロームＳ０〜Ｓ７に「１」が含まれている場合には、データＤ０〜Ｄ６３に誤り（エラービット）が存在する。エラービットの位置は、シンドロームＳ０〜Ｓ７の値によって示されており、ＨマトリクスにおいてシンドロームＳ０〜Ｓ７の値と同じ値を持つ列がエラービットに該当する。したがって、当該エラービットの値を反転させれば、データＤ０〜Ｄ６３の誤りが訂正されることになる。
【００６６】
尚、エラービットの位置は７ビットのシンドロームＳ０〜Ｓ６によって特定され、残りのシンドロームＳ７はエラービットが２個存在するケースを検出するために用いられる。つまり、シンドロームＳ０〜Ｓ６によって特定できるエラービットは１ビットのみであり、エラービットが２ビット含まれている場合には位置特定ができない。このようなケースを検出するため、図６に示すＨマトリクスでは、エラービットが１ビットである場合にシンドロームＳ７の値が常に「１」となるよう構成されている。そして、エラービットが２ビット含まれている場合にはシンドロームＳ７の値が「０」となるため、訂正不能であることが分かる。
【００６７】
しかしながら、図６に示すプロトタイプによる行列式を用いると演算が複雑になるため、エンコーダ１１０やシンドロームジェネレータ１２０の回路規模が大きくなるという問題がある。
【００６８】
図７は本発明の実施形態において使用する行列式であり、図８はこれを倒置した図である。
【００６９】
図７及び図８に示すように、本実施形態において使用する行列式は、シンドロームＳ０〜Ｓ２に対応する第１の行列式Ｈ１と、シンドロームＳ３〜Ｓ７に対応する第２の行列式Ｈ２によって構成されている。
【００７０】
第１の行列式Ｈ１は、各データエリアＡ０〜Ａ７について同一であり、且つ、８ビットのバーストデータごとに相違する値を有している。したがって、第１の行列式Ｈ１から得られる３ビットのシンドロームＳ０〜Ｓ２は、エラービットのバースト位置を示すことになる。シンドロームＳ０〜Ｓ２は第１シンドローム部を構成する。尚、バースト数をｍとした場合、第１の行列式Ｈ１に割り当てられるシンドロームのビット数Ｍは、
ｍ＜２Ｍ
である。例えば、本実施形態のようにバースト数が８ビットである場合（ｍ＝８）、第１の行列式に割り当てられるシンドロームのビット数Ｍは３以上であれば良い。
【００７１】
第２の行列式Ｈ２は、８ビットのバーストデータについて同一であり、且つ、データエリアＡ０〜Ａ７ごとに相違する値を有している。第２の行列式Ｈ２から得られる５ビットのシンドロームＳ３〜Ｓ７は第２シンドローム部を構成し、このうち、Ｓ３〜Ｓ６の部分は、エラービットのＤＱ位置を示しており、また、Ｓ７は２ビットエラーの検知に用いられる。尚、データ入出力端子２４の数をｎ個とした場合、第２の行列式に割り当てられるシンドロームのビット数Ｎは、
ｎ＜２ＣＮ＋３ＣＮ＋・・・＋ＮＣＮ
である。例えば、本実施形態のようにデータ入出力端子２４の数が８個である場合（ｎ＝８）、第２の行列式に割り当てられるシンドロームのビット数Ｎは４以上であれば良い。
【００７２】
ここで、本実施形態において第２の行列式Ｈ２に割り当てられるシンドロームＳ３〜Ｓ７のビット数Ｎを５ビットとしているのは、シンドロームＳ７を追加することによってエラービットが２ビット含まれているケースを判定可能とするとともに、シンドロームＳ０〜Ｓ７の合計ビット数を２のべき乗（＝８ビット）とすることにより、シンドロームの取り扱いを容易とするためである。
【００７３】
パリティＰ０〜Ｐ７に対応する行列式については図６と同じであり、各パリティＰｊ（ｊ＝０〜７）は、それぞれシンドロームＳｊの位置にて排他的論理和演算が行われる他、シンドロームＳ７については各パリティＰ０〜Ｐ７ともに排他的論理和演算が行われる。
【００７４】
図７及び図８には、ライトデータＷＤ０〜ＷＤ６３の値の一例が示されており、この値を用いてパリティＰ０〜Ｐ７を演算した結果が図８に示されている。パリティの演算は、上述したエンコーダ１１０によって行われる。
【００７５】
図９及び図１０はエンコーダ１１０の構成を説明するための図であり、特に、図９（ａ）はライトパリティＷＰ'０の生成方法を説明するための説明図、図９（ｂ）はライトパリティＷＰ'０を生成する回路の回路図、図１０（ａ）はライトパリティＷＰ'３〜ＷＰ'７の生成方法を説明するための説明図、図１０（ｂ）はライトパリティＷＰ'３〜ＷＰ'７を生成する回路の回路図である。
【００７６】
まず、ライトパリティＷＰ'０はシンドロームＳ０に対応する行ＳＨ０を用いて演算される。シンドロームＳ０に対応する行ＳＨ０は、第１の行列式Ｈ１に含まれる。そして、第１の行列式Ｈ１は、既に説明したように、各データエリアＡ０〜Ａ７について同一であり、且つ、８ビットのバーストデータごとに相違する値を有している。図９（ａ）に示すように、シンドロームＳ０に対応する行ＳＨ０は、バースト順に一例として「０１０１０１０１０１」なる値を有している。この値は各ＤＱ位置に対して共通である。
【００７７】
そして、図９（ｂ）に示すように、データエリアＡ０に書き込むべき８ビットのライトデータＷＤ０〜ＷＤ７のうち、データＷＤ１，ＷＤ３，ＷＤ５，ＷＤ７を４入力の排他的論理和回路Ｅ００Ｗに入力する。他のデータエリアＡ１〜Ａ７にそれぞれ書き込むべき８ビットのライトデータについても同様であり、対応する４ビットのライトデータを４入力の排他的論理和回路Ｅ０１Ｗ〜Ｅ０７Ｗにそれぞれ入力する。
【００７８】
さらに、４つの排他的論理和回路Ｅ００Ｗ〜Ｅ０３Ｗからの出力を４入力の排他的論理和回路Ｅ１１Ｗに入力し、４つの排他的論理和回路Ｅ０４Ｗ〜Ｅ０７Ｗからの出力を４入力の排他的論理和回路Ｅ１２Ｗに入力する。そして、これら２つの排他的論理和回路Ｅ１１Ｗ，Ｅ１２Ｗからの出力ＥＮＣ０＿ＤＱ０−３及びＥＮＣ０＿ＤＱ４−７を２入力の排他的論理和回路Ｅ１３Ｗに入力し、得られた値をライトパリティＷＰ'０として出力する。これにより、図７及び図８に示した行列式のうち、シンドロームＳ０に対応する行ＳＨ０に「１」と表記されている箇所のライトデータＷＤ０〜ＷＤ６３の値が「１」である数が偶奇判定され、偶数個であればライトパリティＷＰ'０の値は「０」となり、奇数個であればライトパリティＷＰ'０の値は「１」となる。
【００７９】
ライトパリティＷＰ'１及びＷＰ'２の生成方法についても同様であり、図７及び図８に示した行列式のうち、それぞれシンドロームＳ１及びＳ２に対応する行ＳＨ１，ＳＨ２に「１」と表記されている箇所のライトデータＷＤ０〜ＷＤ６３の値が「１」である個数が偶奇判定される。図９（ａ）に示すように、シンドロームＳ１に対応する行ＳＨ１は、バースト順に一例として「００１１００１１」なる値を有し、この値は各ＤＱ位置に対して共通である。また、シンドロームＳ２に対応する行ＳＨ２は、バースト順に一例として「００００１１１１」なる値を有し、この値は各ＤＱ位置に対して共通である。そして、図９（ｂ）と同様の回路による偶奇判定の結果、ライトパリティＷＰ'１及びＷＰ'２の値が算出される。
【００８０】
一方、ライトパリティＷＰ'３〜ＷＰ'７はそれぞれシンドロームＳ３〜Ｓ７に対応する行ＳＨ３〜ＳＨ７を用いて演算される。シンドロームＳ３〜Ｓ７に対応する行ＳＨ３〜ＳＨ７は、第２の行列式Ｈ２に含まれる。そして、第２の行列式Ｈ２は、既に説明したように、８ビットのバーストデータについて同一であり、且つ、データエリアＡ０〜Ａ７ごとに相違する値を有している。図１０（ａ）に示すように、ＤＱ０に対応する第２の行列式Ｈ２は、全てのバーストデータについて「１１００１」なる値を有している。
【００８１】
図１０（ｂ）に示すように、ライトパリティＷＰ'３〜ＷＰ'７の演算においては、１６個の排他的論理和回路Ｅ２０１Ｗ〜Ｅ２１６Ｗが共有される。例えば、排他的論理和回路Ｅ２０１ＷはデータエリアＡ０に書き込むべき８ビットのライトデータＷＤ０〜ＷＤ７のうちライトデータＷＤ０〜ＷＤ３に基づいて演算し、排他的論理和回路Ｅ２０２ＷはデータエリアＡ０に書き込むべき８ビットのライトデータＷＤ０〜ＷＤ７のうちライトデータＷＤ４〜ＷＤ７に基づいて演算する。これにより、１６個の排他的論理和回路Ｅ２０１Ｗ〜Ｅ２１６Ｗからそれぞれ中間値Ｚ０〜Ｚ１５が生成される。
【００８２】
そして、得られた中間値Ｚ０〜Ｚ１５をさらに排他的論理和回路Ｅ３Ｗ〜Ｅ７Ｗによって論理合成することにより、ライトパリティＷＰ'３〜ＷＰ'７が算出される。具体的には、ライトパリティＷＰ'３を算出する場合、中間値Ｚ０〜Ｚ７，Ｚ１２〜Ｚ１５を用いた排他的論理和合成を行い、得られた値が偶数であればライトパリティＷＰ'３の値は「０」となり、奇数であればライトパリティＷＰ'３の値は「１」となる。同様に、ライトパリティＷＰ'４を算出する場合、中間値Ｚ０〜Ｚ３，Ｚ８〜Ｚ１５を用いた排他的論理和合成を行い、得られた値が偶数であればライトパリティＷＰ'４の値は「０」となり、奇数であればライトパリティＷＰ'４の値は「１」となる。どの中間値Ｚ０〜Ｚ１５を選択するかは、図７に示した行列式のうち第２の行列式Ｈ２に基づいて定められる。
【００８３】
このように、ライトパリティＷＰ'３〜ＷＰ'７の演算においては、多数の排他的論理和回路Ｅ２０１Ｗ〜Ｅ２１６Ｗが共有されるため、エンコーダ１１０の回路規模を小型化することが可能となる。
【００８４】
図１１は、４入力の排他的論理和回路の構成を示す回路図である。
【００８５】
図１１においては、入力される４ビットの信号を符号ａ〜ｄで示し、その反転信号を符号ａＦ〜ｄＦで示している。これらの信号ａ〜ｄ，ａＦ〜ｄＦは、Ｐチャンネル型のＭＯＳトランジスタＱｐ１〜Ｑｐ１４及びＮチャンネル型のＭＯＳトランジスタＱｎ１〜Ｑｎ１４の対応するゲート電極に入力される。そして、ノードＮ１に現れる信号がインバータＩＮＶ１を介して信号Ｙとして出力され、ノードＮ２に現れる信号がインバータＩＮＶ２を介して信号ＹＦとして出力される。
【００８６】
電源電位ＶＰＥＲＩが供給される電源配線Ｖ１とノードＮ１との間には、トランジスタＱｐ１〜Ｑｐ４がこの順に直列接続されるとともに、トランジスタＱｐ５〜Ｑｐ８がこの順に直列接続される。さらに、電源配線Ｖ１とノードＮ２との間には、トランジスタＱｐ５，Ｑｐ９〜Ｑｐ１１がこの順に直列接続されるとともに、トランジスタＱｐ１，Ｑｑ１２〜Ｑｐ１４がこの順に直列接続される。そして、トランジスタＱｐ２，Ｑｐ６のドレインは互いに接続され、トランジスタＱｐ３，Ｑｐ１０のドレインは互いに接続され、トランジスタＱｐ９，Ｑｐ１２のドレインは互いに接続され、トランジスタＱｐ７，Ｑｐ１３のドレインは互いに接続される。
【００８７】
接地電位ＶＳＳが供給される電源配線Ｖ２とノードＮ１との間には、トランジスタＱｎ１〜Ｑｎ４がこの順に直列接続されるとともに、トランジスタＱｎ５〜Ｑｎ８がこの順に直列接続される。さらに、電源配線Ｖ２とノードＮ２との間には、トランジスタＱｎ５，Ｑｎ９〜Ｑｎ１１がこの順に直列接続されるとともに、トランジスタＱｎ１，Ｑｎ１２〜Ｑｎ１４がこの順に直列接続される。そして、トランジスタＱｎ２，Ｑｎ６のドレインは互いに接続され、トランジスタＱｎ３，Ｑｎ１０のドレインは互いに接続され、トランジスタＱｎ９，Ｑｎ１２のドレインは互いに接続され、トランジスタＱｎ７，Ｑｎ１３のドレインは互いに接続される。
【００８８】
信号ａはトランジスタＱｐ５，Ｑｎ１のゲート電極に入力され、信号ａＦはトランジスタＱｐ１，Ｑｎ５のゲート電極に入力される。信号ｂはトランジスタＱｐ２，Ｑｐ９，Ｑｎ２，Ｑｎ９のゲート電極に入力され、信号ｂＦはトランジスタＱｐ６，Ｑｐ１２，Ｑｎ６，Ｑｎ１２のゲート電極に入力される。信号ｃはトランジスタＱｐ７，Ｑｐ１０，Ｑｎ７，Ｑｎ１０のゲート電極に入力され、信号ｃＦはトランジスタＱｐ３，Ｑｐ１３，Ｑｎ３，Ｑｎ１３のゲート電極に入力される。信号ｄはトランジスタＱｐ４，Ｑｐ１４，Ｑｎ４，Ｑｎ１４のゲート電極に入力され、信号ｄＦはトランジスタＱｐ８，Ｑｐ１１，Ｑｎ８，Ｑｎ１１のゲート電極に入力される。
【００８９】
かかる構成により、４ビットの信号ａ〜ｄ及びその反転信号を符号ａＦ〜ｄＦに対して排他的論理和演算が行われ、その結果が信号Ｙ及びその反転信号ＹＦとして出力される。
【００９０】
さらに、初期状態において信号Ｙ，ＹＦをいずれもローレベルにリセットすべく、プリチャージ回路ＰＲＥが設けられる。プリチャージ回路ＰＲＥは、電源配線Ｖ１とトランジスタＱｎ３，Ｑｎ１０のドレインとの間に直列接続されたＰチャンネル型のＭＯＳトランジスタＱｐ１５，Ｑｐ１６と、電源配線Ｖ１とトランジスタＱｎ７，Ｑｎ１３のドレインとの間に直列接続されたＰチャンネル型のＭＯＳトランジスタＱｐ１７，Ｑｐ１８とからなる。トランジスタＱｐ１５，Ｑｐ１７のゲート電極には信号ｃＦが入力され、トランジスタＱｐ１６，Ｑｐ１８のゲート電極には信号ｃが入力される。信号ｃ及びｃＦは初期状態においていずれもローレベルとなる信号であり、これにより初期状態における信号Ｙ，ＹＦがいずれもローレベルにリセットされる。
【００９１】
このような構成を有する４入力の排他的論理和回路を用いれば、一般的な２入力の排他的論理和回路を多段に接続するよりも素子数が削減されるとともに、演算を高速に実行することが可能となる。
【００９２】
図１２は、シンドロームジェネレータ１２０の機能を説明するための図である。
【００９３】
図１２には、リードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７の具体的な値の一例が示されている。このうちリードデータＲＤ９に誤りが生じており、正しい値が「１」であるにも関わらず、実際の値は「０」となっている。仮に、リードデータＲＤ０〜ＲＤ６３に誤りが含まれない場合、シンドロームＳ０〜Ｓ７の値は全て「０」となるが、１ビットの誤りが含まれている場合、シンドロームＳ０〜Ｓ７の数ビットが「１」となる。この場合、シンドロームＳ０〜Ｓ７と同じ値を持つＨマトリクス中の列がエラービットに該当する。
【００９４】
図１３及び図１４はシンドロームジェネレータ１２０の構成を説明するための図であり、特に、図１３（ａ）はシンドロームＳ０の生成方法を説明するための説明図、図１３（ｂ）はシンドロームＳ０を生成する回路の回路図、図１４（ａ）はシンドロームＳ３〜Ｓ７の生成方法を説明するための説明図、図１４（ｂ）はシンドロームＳ３〜Ｓ７を生成する回路の回路図である。
【００９５】
図１３（ａ）に示すように、シンドロームＳ０の生成原理は、図９（ａ）に示したライトパリティＷＰ'０の生成原理と基本的に同じであるが、シンドロームＳ０の生成には対応するリードパリティＲＰ０が必要となる。このため、図１３（ｂ）に示すように、シンドロームＳ０を生成するための回路は、図９（ｂ）に示した回路に加え、リードパリティＲＰ０を排他的論理和演算に加えた構成とすればよい。シンドロームＳ１，Ｓ２の生成方法についても同様であり、それぞれリードパリティＲＰ１，ＲＰ２を排他的論理和演算に加えればよい。
【００９６】
図１４（ａ）に示すように、シンドロームＳ３〜Ｓ７の生成原理は、図１０（ａ）に示したライトパリティＷＰ'３〜ＷＰ'７の生成原理と基本的に同じであるが、シンドロームＳ３〜Ｓ７の生成にはそれぞれ対応するリードパリティＲＰ３〜ＲＰ７が必要となる。このため、図１４（ｂ）に示すように、シンドロームＳ３〜Ｓ７を生成するための回路は、図１０（ｂ）に示した回路に加え、それぞれリードパリティＲＰ３〜ＲＰ７を排他的論理和演算に加えた構成とすればよい。
【００９７】
このように、シンドロームＳ０〜Ｓ７を生成するための回路は、ライトパリティＷＰ'０〜ＷＰ'７を生成するための回路と大部分の構成が一致する。このため、共通する部分の回路を時分割で使用すれば、ＥＣＣ制御回路１００の回路規模を削減することが可能となる。但し、この場合、エンコーダ１１０とシンドロームジェネレータ１２０を同時に起動することができなくなるため、本実施形態においては高速動作を実現すべく、エンコーダ１１０とシンドロームジェネレータ１２０を別個の回路によって構成している。
【００９８】
図１５は、エラーロケータ１３０，１４０の機能を説明するための模式図である。
【００９９】
図１５に示す例では、シンドロームジェネレータ１２０から出力されるシンドロームＳ０〜Ｓ７の値が「１０１１０１１」であり、これによりリードデータＲＤ９に誤りがあることが分かる。そして、本実施形態では、シンドロームＳ０〜Ｓ２に基づいてエラーデータのバースト位置を特定し、シンドロームＳ３〜Ｓ７に基づいてエラーデータのＤＱ位置を特定する。バースト位置は、シンドロームＳ０〜Ｓ２をデコードしてエラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７の１ビットを活性化させることによって特定される。ＤＱ位置は、シンドロームＳ３〜Ｓ６をデコードしてエラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７の１ビットを活性化させることによって特定される。エラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７及びエラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７は、エラーロケータ１３０によって生成される。尚、シンドロームＳ７はエラービットが２ビット存在する場合に「０」となり、この場合は訂正することができない。
【０１００】
そして、エラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７とエラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７をさらにデコードすることにより、エラービットを特定する。かかるデコードは、エラーロケータ１４０によって行われる。図１５に示す例では、エラーバースト信号ＥＢＳＴ１及びエラーマット信号ＥＭＡＴ１が活性化しているため、リードデータＲＤ９がエラービットであることが分かる。
【０１０１】
図１６は、エラーロケータ１３０に含まれるデコーダ１３１の回路図である。図１６に示すように、エラーロケータ１３０にはシンドロームＳ０〜Ｓ２をデコードするデコーダ１３１が含まれている。これにより、リードデータＲＤ０〜ＲＤ６３にエラービットが含まれている場合、エラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７の１ビットが活性化する。
【０１０２】
図１７は、エラーロケータ１３０に含まれるデコーダ１３２の回路図である。図１７に示すように、エラーロケータ１３０にはシンドロームＳ３〜Ｓ６をデコードするデコーダ１３２が含まれている。これにより、リードデータＲＤ０〜ＲＤ６３にエラービットが含まれている場合、エラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７の１ビットが活性化する。
【０１０３】
このようにして生成されるエラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７及びエラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７は、エラーロケータ１４０に供給される。
【０１０４】
図１８は、エラーロケータ１４０及びエラーコレクタ１５０の回路図である。
【０１０５】
図１８に示すように、エラーロケータ１４０は、エラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７の対応する１ビットと、エラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７の対応する１ビットを受ける６４個のＡＮＤゲート回路ＡＮＤ０〜ＡＮＤ６３によって構成される。リードデータＲＤ０〜ＲＤ６３にエラービットが含まれている場合、エラーバースト信号ＥＢＳＴ０〜ＥＢＳＴ７の１ビットと、エラーマット信号ＥＭＡＴ０〜ＥＭＡＴ７の１ビットが活性化するため、ＡＮＤゲート回路ＡＮＤ０〜ＡＮＤ６３から出力されるエラー位置信号ＥＬ０〜ＥＬ６３の１つがハイレベルに活性化することになる。
【０１０６】
エラー位置信号ＥＬ０〜ＥＬ６３は、エラーコレクタ１５０を構成する６４個のマルチプレクサＭＵＸ０〜ＭＵＸ６３に供給される。マルチプレクサＭＵＸ０〜ＭＵＸ６３は、それぞれ対応するリードデータＲＤ０〜ＲＤ６３又はその反転信号の一方を選択し、これを訂正されたリードデータＣＲＤ０〜ＣＲＤ６３として出力する。具体的には、対応するエラー位置信号ＥＬ０〜ＥＬ６３がローレベルに非活性化している場合には、反転されていないリードデータＲＤ０〜ＲＤ６３をそれぞれ出力し、対応するエラー位置信号ＥＬ０〜ＥＬ６３がハイレベルに活性化している場合には、それぞれ対応するリードデータＲＤ０〜ＲＤ６３の反転信号を出力する。これにより、エラービットのみが反転されるので、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３が生成される。
【０１０７】
図１９は、マスクエラー検出回路１６０の構成を示すブロック図である。
【０１０８】
図１９に示すように、マスクエラー検出回路１６０は、第１の検出回路１６１と第２の検出回路１６２を含んでいる。第１の検出回路１６１は、エラービットのバースト位置と、データマスク信号ＤＭ０〜ＤＭ７によってマスクされたライトデータのバースト位置が一致しているか否かを判定する回路であり、両者が一致した場合には検出信号ＥＤＭｐｒｅが活性化される。第２の検出回路１６２は、いずれかのＤＱ位置にエラービットが含まれるか否かを判定する回路であり、いずれかのＤＱ位置にエラービットが含まれる場合には検出信号ＥＤＱが活性化される。但し、リードデータＲＤ０〜ＲＤ６３にエラービットが含まれる場合、当該エラービットは必ずいずれかのＤＱ位置に属するため、検出信号ＥＤＭｐｒｅが活性化する際には検出信号ＥＤＱも必ず活性化する。したがって、第２の検出回路１６２については省略しても構わない。
【０１０９】
図２０は、第１の検出回路１６１の回路図である。
【０１１０】
図２０に示すように、第１の検出回路１６１は、シンドロームＳ０〜Ｓ２をデコードするデコーダ１６４を含み、このデコーダ１６４に含まれる８つのＡＮＤゲート回路Ｇ０〜Ｇ７にそれぞれデータマスク信号ＤＭ０〜ＤＭ７が入力されている。かかる構成により、エラービットのバースト位置とマスクされたライトデータのバースト位置が一致した場合、ＡＮＤゲート回路Ｇ０〜Ｇ７の出力信号ＥＤＭ０〜ＥＤＭ７のいずれかがハイレベルに活性化する。そして、出力信号ＥＤＭ０〜ＥＤＭ７は８入力のＯＲゲート回路１６５に入力され、その出力信号が検出信号ＥＤＭｐｒｅとして出力される。したがって、エラービットのバースト位置とマスクされたライトデータのバースト位置が一致すれば、検出信号ＥＤＭｐｒｅがハイレベルに活性化する。尚、ここでいう一致とは、マスクされたライトデータのバースト位置が複数存在する場合、エラービットのバースト位置がマスクされたライトデータの複数のバースト位置のいずれかに属する場合も含む。
【０１１１】
これに対し、エラービットのバースト位置とマスクされたライトデータのバースト位置が一致しない場合には、検出信号ＥＤＭｐｒｅはローレベルに非活性化される。もちろん、エラービットが存在しない場合や、データマスクが行われない場合にも、検出信号ＥＤＭｐｒｅはローレベルに非活性化される。尚、実際にＡＮＤゲート回路Ｇ０〜Ｇ７とＯＲゲート回路１６５を用いるのではなく、ワイヤードロジックを用いて同等の機能を実現しても構わない。
【０１１２】
図２１は、第２の検出回路１６２の回路図である。
【０１１３】
図２１に示すように、第２の検出回路１６２は、シンドロームＳ３〜Ｓ５をデコードするデコーダ１６６を含む。デコーダ１６６を構成する３つのＡＮＤゲート回路Ｇ８〜Ｇ１０は、それぞれ出力信号ＥＤＱ０１，ＥＤＱ２３，ＥＤＱ４５６７を生成する。出力信号ＥＤＱ０１はエラービットのＤＱ位置がＤＱ０又はＤＱ１である場合に活性化し、出力信号ＥＤＱ２３はエラービットのＤＱ位置がＤＱ２又はＤＱ３である場合に活性化し、出力信号ＥＤＱ４５６７はエラービットのＤＱ位置がＤＱ４〜ＤＱ７である場合に活性化する。そして、出力信号ＥＤＱ０１，ＥＤＱ２３，ＥＤＱ４５６７は３入力のＯＲゲート回路１６７に入力され、その出力信号が検出信号ＥＤＱとして出力される。尚、実際にＡＮＤゲート回路Ｇ８〜Ｇ１０とＯＲゲート回路１６７を用いるのではなく、ワイヤードロジックを用いて同等の機能を実現しても構わない。
【０１１４】
第１の検出回路１６１によって生成される検出信号ＥＤＭｐｒｅと、第２の検出回路１６２によって生成される検出信号ＥＤＱは、図１９に示すＡＮＤゲート回路１６３に入力される。したがって、ＡＮＤゲート回路１６３の出力である変換信号ＥＤＭは、検出信号ＥＤＭｐｒｅ及び検出信号ＥＤＱの両方がハイレベルである場合に活性化される。このようにして生成される変換信号ＥＤＭは、図３に示した変換回路１０５に供給される。
【０１１５】
既に説明したとおり、変換回路１０５は、ライトパリティＷＰ'０〜ＷＰ'７とシンドロームＳ０〜Ｓ７の対応するビットを論理合成する排他的論理和ゲート１０５ａと、マルチプレクサ１０５ｂによって構成される。そして、変換信号ＥＤＭがハイレベルに活性化している場合には排他的論理和演算が実行され、これによってライトパリティＷＰ０〜ＷＰ７が生成される。これに対し、変換信号ＥＤＭがローレベルに非活性化している場合には、ライトパリティＷＰ'０〜ＷＰ'７がそのままライトパリティＷＰ０〜ＷＰ７として出力される。
【０１１６】
以上が本実施形態による半導体装置１０の具体的な回路構成である。次に、本実施形態による半導体装置１０の動作について説明する。
【０１１７】
図２２は、本実施形態による半導体装置１０のリード動作を説明するためのタイミング図である。
【０１１８】
コマンド端子２２を介して外部からリードコマンドＲＥＡＤが発行されると、図５に示した信号生成部３７Ｒによってタイミング信号ＲＴ１〜ＲＴ４がこの順に活性化される。まず、タイミング信号ＲＴ１に応答してリードアンプ１０１が活性化され、これによりメモリセルアレイ１１から読み出されたリードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７が増幅される。増幅されたリードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７は、シンドロームジェネレータ１２０に転送される。
【０１１９】
次に、タイミング信号ＲＴ２に応答してシンドロームジェネレータ１２０が活性化され、シンドロームＳ０〜Ｓ７の生成が行われる。生成されたシンドロームＳ０〜Ｓ７は、エラーロケータ１３０に転送される。
【０１２０】
次に、タイミング信号ＲＴ３に応答してエラーロケータ１３０が活性化され、シンドロームＳ０〜Ｓ７がデコードされる。これにより生成される第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７及び第２エラー判定信号ＥＤＱ０〜ＥＤＱ７は、エラーロケータ１４０によってさらにデコードされ、エラー位置信号ＥＬ０〜ＥＬ６３が生成される。生成されたエラー位置信号ＥＬ０〜ＥＬ６３は、エラーコレクタ１５０に転送される。
【０１２１】
次に、タイミング信号ＲＴ４に応答してエラーコレクタ１５０が活性化され、リードデータＲＤ０〜ＲＤ６３の訂正が行われる。これにより、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３が生成され、リードライトバスＲＷＢＳを介してデータ入出力回路１４に転送される。そして、その後のタイミングＲＴ５にてデータ入出力回路１４が活性化され、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３が８個のデータ入出力端子２４を介して外部にバースト出力される。
【０１２２】
このように、リード動作時においてはＥＣＣ制御回路１００によってリードデータＲＤ０〜ＲＤ６３に含まれるエラービットが訂正され、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３がバースト出力される。
【０１２３】
図２３は、本実施形態による半導体装置１０のライト動作を説明するためのタイミング図である。
【０１２４】
コマンド端子２２を介して外部からライトコマンドＷＲＩＴＥが発行されると、図５に示した信号生成部３７Ｗによってタイミング信号ＷＴ１〜ＷＴ５がこの順に活性化される。さらに、８個のデータ入出力端子２４を介して外部からライトデータＷＤ０〜ＷＤ６３がバースト入力され、これに同期して１個のデータマスク端子２５を介して外部からデータマスク信号ＤＭ０〜ＤＭ７がバースト入力されると、タイミング信号ＷＴ１に応答してデータ入出力回路１４が活性化される。これにより、ライトデータＷＤ０〜ＷＤ６３及びデータマスク信号ＤＭ０〜ＤＭ７がリードライトバスＲＷＢＳを介してＥＣＣ制御回路１００に転送される。さらに、タイミング信号ＷＴ１に応答してリードアンプ１０１が活性化され、これによりメモリセルアレイ１１から読み出されたリードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７が増幅される。増幅されたリードデータＲＤ０〜ＲＤ６３及びリードパリティＲＰ０〜ＲＰ７は、シンドロームジェネレータ１２０に転送される。
【０１２５】
次に、タイミング信号ＷＴ２に応答してエンコーダ１１０が活性化され、ライトパリティＷＰ'０〜ＷＰ'７の生成が行われる。生成されたライトパリティＷＰ'０〜ＷＰ'７は、変換回路１０５に転送される。さらに、タイミング信号ＷＴ２に応答してシンドロームジェネレータ１２０が活性化され、シンドロームＳ０〜Ｓ７の生成が行われる。生成されたシンドロームＳ０〜Ｓ７は、エラーロケータ１３０に転送されるとともに、マスクエラー検出回路１６０にも転送される。
【０１２６】
次に、タイミング信号ＷＴ３に応答してマスクエラー検出回路１６０が活性化され、変換信号ＥＤＭの生成が行われる。生成された変換信号ＥＤＭは変換回路１０５に転送され、これによりライトパリティＷＰ０〜ＷＰ７が生成される。生成されたライトパリティＷＰ０〜ＷＰ７は、ライトアンプ１０２に転送される。さらに、タイミング信号ＷＴ３に応答してエラーロケータ１３０が活性化され、シンドロームＳ０〜Ｓ７がデコードされる。これにより生成される第１エラー判定信号ＥＢＳＴ０〜ＥＢＳＴ７及び第２エラー判定信号ＥＤＱ０〜ＥＤＱ７は、エラーロケータ１４０によってさらにデコードされ、エラー位置信号ＥＬ０〜ＥＬ６３が生成される。生成されたエラー位置信号ＥＬ０〜ＥＬ６３は、エラーコレクタ１５０に転送される。
【０１２７】
次に、タイミング信号ＷＴ４に応答してエラーコレクタ１５０が活性化され、リードデータＲＤ０〜ＲＤ６３の訂正が行われる。これにより、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３が生成される。訂正されたリードデータＣＲＤ０〜ＣＲＤ６３は、マルチプレクサ１０３を介してライトアンプ１０２に転送される。
【０１２８】
そして、タイミング信号ＷＴ５に応答してライトアンプ１０２が活性化され、データＤ０〜Ｄ６３及びパリティＰ０〜Ｐ７がメモリセルアレイ１１に書き込まれる。
【０１２９】
このように、ライト動作時においてもリード動作が実行され、訂正されたリードデータＣＲＤ０〜ＣＲＤ６３とライトデータＷＤ０〜ＷＤ６３がデータマスク信号ＤＭ０〜ＤＭ７に基づいて合成され、実際にメモリセルアレイ１１に書き込むべきデータＤ０〜Ｄ６３が生成される。このため、１又は２以上のデータマスク信号ＤＭ０〜ＤＭ７が活性化している場合にも、書き込むべきデータＤ０〜Ｄ６３を正しく生成することが可能となる。
【０１３０】
しかも、リードデータＲＤ０〜ＲＤ６３の訂正動作と並行して、シンドロームＳ０〜Ｓ７及びライトパリティＷＰ'０〜ＷＰ'７に基づきライトパリティＷＰ０〜ＷＰ７を生成していることから、ライトパリティＷＰ０〜ＷＰ７を早期に生成することができる。つまり、エンコーダ１１０をマルチプレクサ１０３の後段に配置することによってもライトパリティＷＰ０〜ＷＰ７を正しく生成することができるが、この場合には、ライトパリティＷＰ０〜ＷＰ７が生成されるまでに時間がかかってしまう。これに対し、本実施形態では、ライトデータＷＤ０〜ＷＤ６３及び訂正される前のリードデータＲＤ０〜ＲＤ６３に基づいてパリティ生成用データＰＷＤ０〜ＰＷＤ６３を生成し、これに基づいてライトパリティＷＰ'０〜ＷＰ'７を生成していることから、リードデータＲＤ０〜ＲＤ６３の訂正動作を待つことなく、シンドロームＳ０〜Ｓ７を利用してライトパリティＷＰ０〜ＷＰ７を前倒しで生成することができる。
【０１３１】
これにより、ライト動作に要する時間をリード動作に要する時間とほぼ一致させることができ、アクセス効率を高めることが可能となるとともに、一般的なＤＲＡＭの仕様との互換性を確保することが可能となる。
【０１３２】
図２４は、本実施形態による半導体装置１０を用いたデータ処理システム２００の構成を示すブロック図である。図２４に示すデータ処理システム２００は、半導体装置１０とこれを制御するコントローラ２１０によって構成されている。コントローラ２１０は、半導体装置１０にアドレス信号ＡＤＤ及びコマンド信号ＣＯＭを供給するとともに、データＤＱ０〜ＤＱ７の送受信を行う。また、ライト動作時においては、半導体装置１０にデータマスク信号ＤＭ０〜ＤＭ７を供給する。
【０１３３】
図２５は、変形例によるデータ処理システム２００Ａの構成を示すブロック図である。図２５に示すデータ処理システム２００Ａは、半導体装置１０Ａとこれを制御するコントローラ２１０Ａによって構成されている。半導体装置１０Ａはフラッシュメモリであり、各種のコマンド信号ＣＯＭ（／ＣＥ，／ＷＥ，／ＲＥ，ＣＬＥ，ＡＬＥなど）が入力されるコマンド端子４１と、アドレス信号ＡＤＤの入力、データＤＱの送受信及びデータマスク信号ＤＭの入力が行われるＩＯ端子４２を備えている。半導体装置１０Ａは、上述した半導体装置１０と同様のＥＣＣ制御回路１００を備えている。コントローラ２１０Ａは、半導体装置１０Ａに各種のコマンド信号ＣＯＭやアドレス信号ＡＤＤを供給するとともに、データＤＱの送受信を行う。また、ライト動作時においては、半導体装置１０Ａにデータマスク信号ＤＭを供給する。このように、本発明をフラッシュメモリに適用することも可能である。このように、本発明はＤＲＡＭやＳＲＡＭに代表される揮発性メモリのみならず、フラッシュメモリやＲｅＲＡＭ、ＳＴＴ−ＲＡＭ、ＰＲＡＭ等の不揮発性メモリに関しても適用されるものである。
【０１３４】
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
【符号の説明】
【０１３５】
２        外部基板
１０，１０Ａ    半導体装置
１１      メモリセルアレイ
１２      ロウデコーダ
１３      カラムデコーダ
１４      データ入出力回路
２１      アドレス端子
２２      コマンド端子
２３      クロック端子
２４      データ入出力端子
２５      データマスク端子
２６，２７    電源端子
３１      アドレス入力回路
３２      アドレスラッチ回路
３３      コマンド入力回路
３４      コマンドデコーダ
３５      クロック入力回路
３６      内部クロック発生回路
３７      タイミングジェネレータ
３７Ｒ，３７Ｗ    信号生成部
３８      内部電源発生回路
３９      キャリブレーション回路
４１      コマンド端子
４２      ＩＯ端子
１００    ＥＣＣ制御回路
１０１    リードアンプ
１０２    ライトアンプ
１０３，１０４    マルチプレクサ
１０５    変換回路
１０５ａ  排他的論理和ゲート
１０５ｂ  マルチプレクサ
１１０    エンコーダ
１２０    シンドロームジェネレータ
１３０，１４０    エラーロケータ
１３１，１３２    デコーダ
１５０    エラーコレクタ
１６０    マスクエラー検出回路
１６１，１６２    検出回路
１６３    ＡＮＤゲート回路
１６４，１６６    デコーダ
１６５，１６７    ＯＲゲート回路
２００，２００Ａ    データ処理システム
２１０，２１０Ａ    コントローラ
Ａ０〜Ａ７    データエリア
ＡＮＤ０〜ＡＮＤ６３    ＡＮＤゲート回路
ＡＰ      パリティエリア
ＢＡＮＫ０〜ＢＡＮＫ７    バンク
ＢＬＴ，ＢＬＢ    ビット線
Ｃ        セルキャパシタ
Ｅ３Ｗ〜Ｅ７Ｗ，Ｅ００Ｗ〜Ｅ０７Ｗ，Ｅ１１Ｗ〜Ｅ１３Ｗ，Ｅ２０１Ｗ〜Ｅ２１６Ｗ，Ｅ３Ｒ〜Ｅ７Ｒ，Ｅ００Ｒ〜Ｅ０７Ｒ，Ｅ１１Ｒ〜Ｅ１３Ｒ，Ｅ２０１Ｒ〜Ｅ２１６Ｒ    排他的論理和回路
Ｇ０〜Ｇ１０    ＡＮＤゲート回路
ＩＮＶ１，ＩＮＶ２    インバータ
ＬＩＯＴ／ＬＩＯＢ    ローカルデータ線
ＭＣ      メモリセル
ＭＩＯＴ／ＭＩＯＢ    メインデータ線
ＭＵＸ０〜ＭＵＸ６３    マルチプレクサ
ＰＥＲＩＣＡ，ＰＥＲＩＤＱ    中央領域
ＰＲＥ    プリチャージ回路
Ｑｎ１〜Ｑｎ１４    Ｎチャンネル型ＭＯＳトランジスタ
Ｑｐ１〜Ｑｐ１８    Ｐチャンネル型ＭＯＳトランジスタ
Ｒｅ      外部抵抗
ＲＷＢＳ  リードライトバス
ＳＡＭＰ  センスアンプ
Ｔ        セルトランジスタ
ＴＧ      スイッチ回路
Ｖ１，Ｖ２    電源配線
ＷＬ      ワード線
ＺＱ      キャリブレーション端子
【図１】
2016126813.tif 000003
【図２】
2016126813.tif 000004
【図３】
2016126813.tif 000005
【図４】
2016126813.tif 000006
【図５】
2016126813.tif 000007
【図６】
2016126813.tif 000008
【図７】
2016126813.tif 000009
【図８】
2016126813.tif 000010
【図９】
2016126813.tif 000011
【図１０】
2016126813.tif 000012
【図１１】
2016126813.tif 000013
【図１２】
2016126813.tif 000014
【図１３】
2016126813.tif 000015
【図１４】
2016126813.tif 000016
【図１５】
2016126813.tif 000017
【図１６】
2016126813.tif 000018
【図１７】
2016126813.tif 000019
【図１８】
2016126813.tif 000020
【図１９】
2016126813.tif 000021
【図２０】
2016126813.tif 000022
【図２１】
2016126813.tif 000023
【図２２】
2016126813.tif 000024
【図２３】
2016126813.tif 000025
【図２４】
2016126813.tif 000026
【図２５】
2016126813.tif 000027
【手続補正書】
【提出日】平成27年1月15日(2015.1.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１０８
【補正方法】変更
【補正の内容】
【０１０８】
図１９に示すように、マスクエラー検出回路１６０は、第１の検出回路１６１と第２の検出回路１６２を含んでいる。第１の検出回路１６１は、エラービットのバースト位置と、データマスク信号ＤＭ０〜ＤＭ７によってマスクされたライトデータのバースト位置が一致しているか否かを判定する回路であり、両者が一致した場合には検出信号ＥＤＭｐｒｅが活性化される。第２の検出回路１６２は、いずれかのＤＱ位置にエラービットが含まれるか否かを判定する回路であり、いずれかのＤＱ位置にエラービットが含まれる場合には検出信号ＥＤＱが活性化される。