以下、実施形態を図面を用いて説明する。図中、太線で示した信号線は、複数本で構成されている。また、太線が接続されているブロックの一部は、複数の回路で構成されている。信号が伝達される信号線には、信号名と同じ符号を使用する。末尾に”Z”の付いている信号は、正論理を示している。先頭に”/”の付いている信号は、負論理を示している。図中の二重の四角印は、外部端子を示している。外部端子は、例えば、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。外部端子を介して供給される信号には、端子名と同じ符号を使用する。
図1は、一実施形態における半導体メモリMEMの例を示している。半導体メモリMEMは、リアルメモリセル群MCG1、MCG2、パリティメモリセル群PMCG1、PMCG2、パリティ生成回路PGENa、PGENb、エラー訂正回路ECa、ECbおよび割り当て切替回路SW1、SW2、SW3を有している。
リアルメモリセル群MCG1は、データ端子群DQaで受けるリアルデータRLD1を記憶する複数のリアルメモリセルMCを有している。リアルメモリセル群MCG2は、データ端子群DQbで受けるリアルデータRLD2を記憶する複数のリアルメモリセルMCを有している。パリティメモリセル群PMCG1は、パリティデータPRD1を記憶する複数のパリティメモリセルPMCを有している。パリティメモリセル群PMCG2は、パリティデータPRD2を記憶する複数のパリティメモリセルPMCを有している。
パリティ生成回路PGENaは、リアルデータRLD1、RLD2のうち、割り当て切替回路SW1により選択されるデータD1のパリティデータPRD1を生成する。パリティ生成回路PGENbは、リアルデータRLD1、RLD2のうち、データD1を除くデータD2のパリティデータPRD2を生成する。例えば、割り当て切替回路SW1は、パリティ生成回路PGENa、PGENbに供給されるデータD1、D2の割り当てを切り替えるパリティ入力切替回路として動作する。
エラー訂正回路ECaは、データD1の1ビット不良を訂正可能である。エラー訂正回路ECbは、データD2の1ビット不良を訂正可能である。エラー訂正回路ECaは、パリティメモリセル群から読み出されるパリティデータPRD1と、リアルメモリセル群MCG1、MCG2から読み出されるリアルデータRLD1、RLD2のうち、割り当て切替回路SW2により選択されるデータD1とを受ける。エラー訂正回路ECaは、パリティデータPRD1を用いて、データD1のエラーを訂正し、訂正したデータを割り当て切替回路SW3を介してデータ端子群DQa、DQbの少なくともいずれかに出力する。エラー訂正回路ECbは、パリティメモリセル群から読み出されるパリティデータPRD2と、リアルメモリセル群MCG1、MCG2から読み出されるリアルデータRLD1、RLD2のうち、割り当て切替回路SW2により選択されるデータD2とを受ける。エラー訂正回路ECbは、パリティデータPRD2を用いて、データD2のエラーを訂正し、訂正したデータを割り当て切替回路SW3を介してデータ端子群DQa、DQbの少なくともいずれかに出力する。
例えば、割り当て切替回路SW2は、エラー訂正回路ECa、ECbに供給されるリアルデータRLD1、RLD2の割り当てを切り替える訂正入力切替回路として動作する。なお、割り当て切替回路SW2から出力されるデータD1がエラーを含むとき、割り当て切替回路SW2から出力されるデータD1とエラー訂正回路ECaから出力されるデータD1の論理値は異なる。同様に、割り当て切替回路SW2から出力されるデータD2がエラーを含むとき、割り当て切替回路SW2から出力されるデータD2とエラー訂正回路ECbから出力されるデータD2の論理値は異なる。
第1エラー訂正モードでは、割り当て切替回路SW1、SW2は、リアルデータRLD1をデータD1として出力し、リアルデータRLD2をデータD2として出力する。すなわち、第1エラー訂正モードでは、パリティメモリセル群PMCG1は、リアルデータRLD1のパリティデータPRD1を記憶する。パリティメモリセル群PMCG2は、リアルデータRLD2のパリティデータPRD2を記憶する。
エラー訂正回路ECaは、リアルメモリセル群MCG1に記憶されているリアルデータRLD1のエラーを訂正する。エラー訂正回路ECbは、リアルメモリセル群MCG2に記憶されているリアルデータRLD2のエラーを訂正する。割り当て切替回路SW3は、データD1をリアルデータRLD1として出力し、データD2をリアルデータRLD2として出力する。例えば、割り当て切替回路SW3は、エラー訂正回路ECa、ECbから出力されるエラーが訂正されたデータD1、D2の割り当てを切り替え、元のリアルデータRDL1、RDL2に変換するデータ出力切替回路として動作する。
一方、第2エラー訂正モードでは、割り当て切替回路SW1、SW2は、リアルデータRLD1と割り当ての異なるデータD1と、リアルデータRLD2と割り当ての異なるデータD2とを出力する。すなわち、第2エラー訂正モードでは、パリティメモリセル群PMCG1は、リアルデータRLD1と割り当ての異なるデータD1のパリティデータPRD1を記憶する。パリティメモリセル群PMCG2は、リアルデータRLD2と割り当ての異なるデータD2のパリティデータPRD2を記憶する。
エラー訂正回路ECaは、リアルデータRLD1と割り当ての異なるデータD1のエラーを訂正する。エラー訂正回路ECbは、リアルデータRLD2と割り当ての異なるデータD2のエラーを訂正する。割り当て切替回路SW3は、エラーが訂正されたデータD1、D2のビットを並び替えてリアルデータRLD1、RLD2に変換する。
例えば、半導体メモリMEMが、リアルメモリセル群MCG1、MCG2のそれぞれに単ビット不良が発生しやすい不良モードを有するとき、半導体メモリMEMを第1エラー訂正モードに設定することで不良の救済確率を向上できる。半導体メモリMEMが、リアルメモリセル群MCG1、MCG2のいずれかに2ビット不良が発生しやすい不良モードを有するとき、半導体メモリMEMを第2エラー訂正モードに設定することで不良の救済確率を向上できる。以上、この実施形態では、不良モードに応じてエラー訂正モードを切り替えることで、不良の救済確率を向上でき、半導体メモリMEMの歩留を向上できる。
図2は、別の実施形態における半導体メモリMEMの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。半導体メモリMEMは、リアルメモリセル群MCG1、MCG2、パリティメモリセル群PMCG1、PMCG2、パリティ生成回路PGENa、PGENb、エラー訂正回路ECa、ECbおよび割り当て切替回路SWを有している。リアルメモリセル群MCG1、MCG2、パリティメモリセル群PMCG1、PMCG2、パリティ生成回路PGENa、PGENbおよびエラー訂正回路ECa、ECbは、図1と同様の回路である。
割り当て切替回路SWは、第1エラー訂正モードでは、データ端子群DQaをリアルメモリセル群MCG1に接続し、データ端子群DQbをリアルメモリセル群MCG2に接続する。割り当て切替回路SWは、第2エラー訂正モードでは、データ端子群DQaのうち所定のビットとデータ端子群DQbのうち所定のビットとをリアルメモリセル群MCG1に接続し、残りのビットをリアルメモリセル群MCG2に接続する。例えば、割り当て切替回路SWは、リアルメモリセル群MCG1、MCG2に入出力されるリアルデータRLD1、RLD2の割り当てを切り替えるリアルデータ切替回路として動作する。
この実施形態では、第1エラー訂正モードでは、パリティメモリセル群PMCG1は、データ端子群DQaで受けるリアルデータRLD1のパリティデータPRD1を記憶する。パリティメモリセル群PMCG2は、データ端子群DQbで受けるリアルデータRLD2のパリティデータPRD2を記憶する。第2エラー訂正モードでは、パリティメモリセル群PMCG1は、リアルメモリセル群MCG1に記憶されるリアルデータRLD1と割り当ての異なるデータD1のパリティデータPRD1を記憶する。パリティメモリセル群PMCG2は、リアルメモリセル群MCG2に記憶されるリアルデータRLD2と割り当ての異なるデータD2のパリティデータPRD2を記憶する。
これにより、上述した実施形態と同様に、半導体メモリMEMが、リアルメモリセル群MCG1、MCG2のそれぞれに単ビット不良が発生しやすい不良モードを有するとき、半導体メモリMEMを第1エラー訂正モードに設定することで不良の救済確率を向上できる。半導体メモリMEMが、リアルメモリセル群MCG1、MCG2のいずれかに2ビット不良が発生しやすい不良モードを有するとき、半導体メモリMEMを第2エラー訂正モードに設定することで不良の救済確率を向上できる。すなわち、不良モードに応じてエラー訂正モードを切り替えることで、不良の救済確率を向上でき、半導体メモリMEMの歩留を向上できる。
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、簡易な割り当て切替回路SWにより不良の救済確率を向上でき、半導体メモリMEMの歩留を向上できる。
図3は、別の実施形態における半導体メモリMEMの例を示している。例えば、半導体メモリMEMは、DRAMである。半導体メモリMEMは、クロック信号に同期して動作するが、クロック信号に非同期で動作してもよい。半導体メモリMEMは、システムLSI等に搭載されるメモリマクロ(IP)として設計されてもよく、パッケージに封入された半導体記憶装置として設計されてもよい。半導体メモリMEMは、例えば、シリコン基板上にCMOSプロセスを使用して形成される。
半導体メモリMEMは、クロックバッファ10、アドレスバッファ12、コマンドデコーダ14、データ入出力バッファ16、アドレス制御部18、コア制御部20、モード設定部22、メモリコア24およびエラー制御部26を有している。半導体メモリMEMは、バースト動作用の制御回路およびリフレッシュ動作を自動的に実行するためのリフレッシュタイマ、リフレッシュアドレスカウンタ等を有している。また、半導体メモリMEMは、不良を救済するための冗長回路を有している。例えば、冗長回路は、冗長ワード線、冗長ビット線、冗長メモリセル、不良アドレスをプログラムするアドレスプログラム回路等である。
クロックバッファ10は、クロックイネーブル信号CKEが高レベルの期間に、クロック端子で受けるクロック信号CLKを、内部クロック信号ICLKとしてクロックに同期して動作する内部回路に出力する。クロックバッファ10は、クロックイネーブル信号CKEが低レベルの期間に、内部クロック信号ICLKの出力を停止する。これにより、半導体メモリMEMは、動作を停止し、低消費電力状態になる。
アドレスバッファ12は、アドレス端子で受けるアドレス信号ADを、バンクアドレス信号BA、ロウアドレス信号RAまたはコラムアドレス信号CAとしてアドレス制御部18等に出力する。アドレスバッファ12は、ロウアドレスラッチ信号RALに同期して受けるアドレス信号ADを、バンクアドレス信号BAおよびロウアドレス信号RAとして出力する。また、アドレスバッファ12は、コラムアドレスラッチ信号CALに同期して受けるアドレス信号ADを、バンクアドレス信号BAおよびコラムアドレス信号CAとして出力する。半導体メモリMEMは、共通のアドレス端子ADを用いて、ロウアドレス信号RAおよびコラムアドレス信号CAを異なるタイミングで受けるアドレスマルチプレクスタイプである。
コマンドデコーダ14は、コマンド端子を介してコマンド信号CMDを受け、受けた信号を解読し、メモリコア24を動作させるための内部コマンド信号を出力する。コマンド信号CMDは、例えば、チップセレクト信号/CS、ロウアドレスストローブ信号/RAS、コラムアドレスストローブ信号/CASおよび書き込みイネーブル信号/WEを含む。内部コマンド信号は、アクティブコマンド信号ACTZ、読み出しコマンド信号RDZ、書き込みコマンド信号WRZ、プリチャージコマンド信号PREZ、エラー訂正モード設定コマンド信号MDZおよびエラー訂正モードプログラムコマンド信号PGMZを含む。
データ入出力バッファ16は、書き込み動作時にデータ端子DQ(DQ0−15)で受ける書き込みデータを内部データ線IDQ(IDQ0−15)に出力する。データ入出力バッファ16は、読み出し動作時に内部データ線IDQを介して受けるメモリコア24からの読み出しデータをデータ端子DQに出力する。なお、データ端子DQは16ビットに限定されない。
アドレス制御部18は、ロウアドレス信号RAを内部ロウアドレス信号IRAとしてロウ制御回路RCNT等に出力し、コラムアドレス信号CAを内部コラムアドレス信号ICAとしてコラム制御回路CCNT等に出力する。アドレス制御部18は、バンクアドレス信号BAを内部バンクアドレス信号IBAとしてコア制御部20等に出力する。バンクアドレス信号BAは、メモリコア24に形成される4つのバンクBK0−3を選択するために使用される。
コア制御部20は、アクティブコマンド信号ACTZ、読み出しコマンド信号RDZ、書き込みコマンド信号WRZおよびプリチャージコマンド信号PREZに応じて、メモリコア24の動作を制御する制御信号(タイミング信号)を出力する。このとき、コア制御部20は、バンクアドレス信号BAが示すバンクBK(BK0−3のいずれか)に対応する制御信号を出力する。
モード設定部22は、エラー訂正モード設定コマンド信号MDZとともに受けるアドレス信号(例えば、2ビットのロウアドレス信号RA)に応じて、エラー訂正モード信号MDをエラー制御部26に出力する。半導体メモリMEMは、エラー訂正モード信号MDに応じて、エラー訂正モードMD1−MD3(図6)のいずれかに設定される。また、モード設定部22は、エラー訂正モードプログラムコマンド信号PGMZとともに受けるアドレス信号(例えば、2ビットのロウアドレス信号RA)に応じて、エラー訂正モード信号MDを設定するためにプログラム回路PGMをプログラムする。プログラム回路PGMは、例えば複数のヒューズを含み、ヒューズの溶断の有無に応じた論理のエラー訂正モード信号MDを出力する。半導体メモリMEMに電源が供給されている間、エラー訂正モード設定コマンド信号MDZは、エラー訂正モードプログラムコマンド信号PGMZより優先される。このため、モード設定部22は、プログラム回路PGMがプログラムされた後にエラー訂正モード設定コマンドMDZを受けることで、プログラムされた論理と異なるエラー訂正モード信号MDを出力可能である。
メモリコア24は、メモリセルアレイARY、ロウ制御回路RCNT、コラム制御回路CCNT、リードアンプRAおよびライトアンプWAを有している。なお、メモリコア24は、各バンクBK0−3で同じ回路である。メモリセルアレイARYは、マトリックス状に配置された複数のリアルメモリセルMCおよび複数のパリティメモリセルPMCを有している。リアルメモリセルMCは、ワード線WLおよびリアルビット線BL、/BLに接続されている。パリティメモリセルPMCは、ワード線WLおよびパリティビット線PBL、/PBLに接続されている。例えば、少なくとも16個のリアルメモリセルMCと8個のパリティメモリセルPMCが、1本のワード線WLに接続されている。メモリセルアレイARYの例は図4に示す。
ロウ制御回路RCNTは、コア制御部20からの制御信号および内部ロウアドレス信号IRAを受け、ワード線WLのいずれかを選択する。コラム制御回路CCNTは、コア制御部20からの制御信号および内部コラムアドレス信号ICAを受け、16個のリアルビット線対BL、/BLおよび8個のパリティビット線対PBL、/PBLを選択する。選択されたリアルビット線対BL、/BLおよびパリティビット線対PBL、/PBLは、書き込み動作時に書き込みデータバスWDBに接続され、読み出し動作時に読み出しデータバスRDBに接続される。
リードアンプRAは、読み出し動作時に読み出しデータバスRDBを介して受けるリアル読み出しデータおよびパリティ読み出しデータを、読み出しデータ線RD(RD0−15)およびパリティ読み出しデータ線PRD(PRD0−7)に出力する。ライトアンプWAは、書き込み動作時に書き込みデータ線WD(WD0−15)およびパリティ書き込みデータ線PWD(PWD0−7)を介して受けるリアル書き込みデータおよびパリティ書き込みデータを書き込みデータバスWDBに出力する。
エラー制御部26は、書き込み動作時に、書き込みデータIDQに応じてパリティ書き込みデータPWDを生成し、リアル書き込みデータWDとともにメモリコア24に出力する。エラー制御部26は、読み出し動作時に、メモリコア24からのリアル読み出しデータRDのエラーを、パリティ読み出しデータPRDに応じて訂正し、読み出しデータIDQとしてデータ入出力バッファ16に出力する。この実施形態では、図6および図7に示すように、8ビットのリアルデータ毎に4ビットのパリティデータが生成される。エラー制御部26は、エラー訂正モード信号MDの論理に応じて、パリティデータPD0−3、PD4−7にそれぞれ対応する8ビットにリアルデータDQの割り当てを変更する。エラー制御部26の例は、図7から図16に示す。
図4は、図3に示したメモリセルアレイARYの例を示している。メモリセルアレイARYは、センスアンプSAの両側(図4の上下方向)にメモリセル部MCU(MCU0−MCU3)を有している。各メモリセル部MCUは、リアルビット線BLまたは/BLのいずれかおよびパリティビット線PBL、/PBLのいずれかが配線されている。換言すれば、各メモリセル部MCUにおいて、隣接するリアルビット線BL(または/BL)およびパリティビット線PBL(または/PBL)の極性は同じである。
各センスアンプSAは、両側のメモリセル部MCUに延びるビット線対BL、/BL(またはPBL、/PBL)の電圧差を増幅し、図3のメモリセルMC(またはPMC)に保持されているデータを読み出す。ビット線BL(またはPBL)からデータが読み出されるとき、ビット線/BL(または/PBL)はプリチャージ電圧等の参照電圧が供給される。ビット線/BL(または/PBL)からデータが読み出されるとき、ビット線BL(またはPBL)はプリチャージ電圧等の参照電圧が供給される。相補のビット線BL、/BL(またはPBL、/PBL)がセンスアンプSAの両側に配線される構造は、オープンビット線構造と称される。オープンビット線構造では、メモリセルMC、PMCからデータは、互いに隣接する複数のビット線BL、PBLに読み出される。
例えば、メモリセル部MCU1は、2つのメモリグループMG1−MG2を有している。メモリグループMG1は、8本のリアルビット線BL#1(BLa1、BLb1、BLc1、BLd1、BLe1、BLf1、BLg1、BLh1)および4本のパリティビット線PBL0−PBL3を有している。8本のリアルビット線BL#1は、8個のデータ端子DQ0−DQ7にそれぞれ対応する。メモリグループMG2は、8本のリアルビット線BL#2(BLa2、BLb2、BLc2、BLd2、BLe2、BLf2、BLg2、BLh2)および4本のパリティビット線PBL4−PBL7を有している。8本のリアルビット線BL#2は、8個のデータ端子DQ8−DQ15にそれぞれ対応する。
この実施形態では、8本のリアルビット線BLに接続されるリアルメモリセルMCに保持されるデータ(8ビット)のパリティデータ(4ビット)が、4本のパリティビット線PBL0−3に接続されるパリティメモリセルPMCに保持される。別の8本のリアルビット線BLに接続されるリアルメモリセルMCに保持されるデータ(8ビット)のパリティデータ(4ビット)が、4本のパリティビット線PBL4−7に接続されるパリティメモリセルPMCに保持される。但し、メモリグループMG1に保持される8ビットのリアルデータ(DQ0−7)に対応する4ビットのパリティデータがメモリグループMG1のパリティメモリセルPMCに保持されるとは限らない。同様に、メモリグループMG2に保持される8ビットのリアルデータ(DQ8−15)に対応する4ビットのパリティデータがメモリグループMG2のパリティメモリセルPMCに保持されるとは限らない。リアルデータ(データ端子DQ)とパリティデータとの関係は、図6に示すように、エラー訂正モードMD1−3に応じて変更される。
なお、メモリセルアレイARYの構成は、図4に限定されるものではない。例えば、リアルビット線BL#1とパリティビット線PBL0−3とを物理的に離れた位置に配置し、リアルビット線BL#2とパリティビット線PBL4−7とを物理的に離れた位置に配置してもよい。具体的には、リアルビット線BL#1をメモリグループMG1に配置し、リアルビット線BL#2をメモリグループMG2に配置し、パリティビット線PBL0−7をメモリグループMG1−2とは別のメモリグループに配置してもよい。このように、リアルデータを保持するリアルメモリセルMCと、パリティデータを保持するパリティメモリセルPMCとは、物理的に離れた位置に配置可能である。
図5は、図3に示したメモリコア24の例を示している。図5では、図4に示したメモリセル部MCU1のビット線BL#1、BL#2、PBL0−7を示している。なお、メモリコア24は、読み出しデータバスRDBおよび書き込みデータバスWDBに接続するビット線BL、PBLを、コラムアドレス信号CAに応じて選択するコラムスイッチを有している。しかし、説明を簡単にするために、コラムスイッチは省略している。
リアル読み出しデータ線RD0−7は、リードアンプRAおよび読み出しデータバスRDBを介してリアルビット線BL#1に接続されている。リアル書き込みデータ線WD0−7は、ライトアンプWAおよび書き込みデータバスWDBを介してリアルビット線BL#1に接続されている。パリティ読み出しデータ線PRD0−3は、リードアンプRAおよび読み出しデータバスRDBを介してパリティビット線PBL0−3に接続されている。パリティ書き込みデータ線PWD0−3は、ライトアンプWAおよび書き込みデータバスWDBを介してパリティビット線PBL0−3に接続されている。
同様に、リアル読み出しデータ線RD8−15は、リードアンプRAおよび読み出しデータバスRDBを介してリアルビット線BL#2に接続されている。リアル書き込みデータ線WD8−15は、ライトアンプWAおよび書き込みデータバスWDBを介してリアルビット線BL#2に接続されている。パリティ読み出しデータ線PRD4−7は、リードアンプRAおよび読み出しデータバスRDBを介してパリティビット線PBL4−7に接続されている。パリティ書き込みデータ線PWD4−7は、ライトアンプWAおよび書き込みデータバスWDBを介してパリティビット線PBL4−7に接続されている。
図6は、図3に示した半導体メモリMEMのデータ端子DQ0−15とパリティデータPD0−7との関係を示している。データ端子DQ0−7は、メモリグループMG1のリアルメモリセルMCに接続される。データ端子DQ8−15は、メモリグループMG2のリアルメモリセルMCに接続される。エラー訂正モードMD1(MD=1)では、データ端子DQ0−7に供給されるリアルデータからパリティデータPD0−3が生成され、データ端子DQ8−15に供給されるリアルデータからパリティデータPD4−7が生成される。すなわち、リアルデータDQ0−7(またはDQ8−15)とパリティデータPD0−3(またはPD4−7)のペアは、共通のメモリグループMG1(またはMC2)に含まれる。
エラー訂正モードMD2(MD=2)では、データ端子DQ0、8、1、9、2、10、3、11に供給されるリアルデータからパリティデータPD0−3が生成され、データ端子DQ4、12、5、13、6、14、7、15に供給されるリアルデータからパリティデータPD4−7が生成される。エラー訂正モードMD3(MD=3)では、データ端子DQ0、1、8、9、2、3、10、11に供給されるリアルデータからパリティデータPD0−3が生成され、データ端子DQ4、5、12、13、6、7、14、15に供給されるリアルデータからパリティデータPD4−7が生成される。このように、エラー訂正モードMD2およびエラー訂正モードMD3では、パリティデータPD0−3は、2つのメモリグループMG1、MG2に対応するデータ端子DQ0−3、8−11に供給されるリアルデータから生成される。パリティデータPD4−7は、2つのメモリグループMG1、MG2に対応するデータ端子DQ4−7、12−15に供給されるリアルデータから生成される。
図7は、図3に示したエラー制御部26のうち、書き込み系の回路の例を示している。エラー制御部26は、データバッファDBUF0−DBUF1およびパリティ生成回路PGEN0−PGEN7を有している。
データバッファDBUF0は、書き込み動作時にリアルデータIDQ0−7を書き込みデータWD0−7として出力する。データバッファDBUF1は、書き込み動作時にリアルデータIDQ8−15を書き込みデータWD8−15として出力する。各パリティ生成回路PGEN0−7は、エラー訂正モードMD1−3に応じてリアルデータIDQ0−15の所定のビットを選択し、選択したビットを用いてパリティデータPWD(PWD0−7のいずれか)を生成する。
図8は、図7に示したパリティ生成回路PGEN0の例を示している。他のパリティ生成回路PGEN1−7は、入力される信号が異なることを除き、パリティ生成回路PGEN0と同様の回路である。例えば、符号WA0(0)において、”W”は書き込みデータを示し、”A”はエラー訂正モードMD1中に選択されることを示し、”0”は供給先のパリティ生成回路PGENの番号を示し、”(0)”は供給先のセレクタSELの番号を示す。符号WB0(0)の”B”は、エラー訂正モードMD2中に選択されることを示す。符号WC0(0)の”C”は、エラー訂正モードMD3中に選択されることを示す。他の符号も同様である。
パリティ生成回路PGEN0は、セレクタSEL0−4および6個の排他的論理和回路EXOR0−5を有している。排他的論理和回路EXOR0−5は、互いに同じ回路である。各セレクタSEL0−4は、エラー訂正モード信号MDの論理に応じて、信号群WA0、WB0、WC0のいずれかを選択して排他的論理和回路EXOR0−2に出力する。セレクタSEL0−4は、パリティ生成回路PGEN0の排他的論理和回路EXOR0−2に供給されるリアル書き込みデータの割り当てを切り替えるパリティ入力切替回路として動作する。最終の排他的論理和回路EXOR5は、パリティデータPWD0を出力する。
図9は、図7に示したパリティ生成回路PGEN0−7に供給される信号の例を示している。例えば、パリティ生成回路PGEN0のセレクタSEL0−4は、エラー訂正モードMD1では、書き込みデータDQ0−15のうちデータDQ0、1、3、4、6をそれぞれ選択し、書き込みパリティデータPWD0を生成する。パリティ生成回路PGEN0のセレクタSEL0−4は、エラー訂正モードMD2では、書き込みデータDQ0−15のうちデータDQ0、8、9、2、3をそれぞれ選択し、書き込みパリティデータPWD0を生成する。パリティ生成回路PGEN0のセレクタSEL0−4は、エラー訂正モードMD3では、書き込みデータDQ0−15のうちデータDQ0、1、9、2、10をそれぞれ選択し、書き込みパリティデータPWD0を生成する。
同様に、パリティ生成回路PGEN2のセレクタSEL0−4は、エラー訂正モードMD1では、データDQ1、2、3、7と論理0(VSS)をそれぞれ選択し、書き込みパリティデータPWD2を生成する。パリティ生成回路PGEN2のセレクタSEL0−4は、エラー訂正モードMD2では、データDQ8、1、9、11と論理0(VSS)をそれぞれ選択し、書き込みパリティデータPWD2を生成する。パリティ生成回路PGEN0のセレクタSEL0−4は、エラー訂正モードMD3では、データDQ1、8、9、11と論理0(VSS)をそれぞれ選択し、書き込みパリティデータPWD2を生成する。
図10は、図3に示したエラー制御部26のうち、読み出し系の回路の例を示している。エラー制御部26は、シンドローム生成回路SYNG0−7、シンドロームデコーダSDEC0−1およびエラー訂正回路ECを有している。図10の黒丸は、シンドローム生成回路SYNG0−7およびエラー訂正回路ECが選択するリアル読み出しデータRD0−15を示している。例えば、シンドローム生成回路SYNG0に接続される矢印の符号RA0(5)−(9)において、”R”は読み出しデータを示し、”A”はエラー訂正モードMD1中に選択されることを示し、”0”は供給先のシンドローム生成回路SYNGの番号を示し、”(5)−(9)”は図11に示す供給先のセレクタSELの番号を示す。符号RB0(5)−(9)の”B”は、エラー訂正モードMD2中に選択されることを示す。符号RC0(5)−(9)の”C”は、エラー訂正モードMD3中に選択されることを示す。他の矢印の符号も同様である。
リアル読み出しデータRD0−7は、データ端子DQ0−7に対応するデータであり、メモリグループMG1(図4)のリアルメモリセルMCから読み出される。リアル読み出しデータRD8−15は、データ端子DQ8−15に対応するデータであり、メモリグループMG2(図4)のリアルメモリセルMCから読み出される。パリティ読み出しデータPRD0−3は、メモリグループMG1から読み出され、パリティ読み出しデータPRD4−7は、メモリグループMG2から読み出される。
各シンドローム生成回路SYNG0−7は、リアル読み出しデータRD0−15のうち所定のビットとパリティ読み出しデータPRD(PRD0−7のいずれか)を用いてシンドロームSYND(SYND0−7のいずれか)を生成する。
シンドロームデコーダSDEC0は、シンドロームSYND0−3に基づいてリアル読み出しデータRD0−7中のエラービットを示すエラー訂正信号CRCT0−7を生成する。シンドロームデコーダSDEC1は、シンドロームSYND4−7に基づいてリアル読み出しデータRD8−15中のエラービットを示すエラー訂正信号CRCT8−15を生成する。例えば、読み出しデータRD0−7のエラーは、エラー訂正信号CRCT0−7のうち高レベルのビットと同じ番号のビットに含まれる。同様に、読み出しデータRD8−15のエラーは、エラー訂正信号CRCT8−15のうち高レベルのビットと同じ番号のビットに含まれる。この実施形態では、リアル読み出しデータRD0−7中の1ビットのエラー訂正と、リアル読み出しデータRD8−15中の1ビットのエラー訂正とが可能である。
エラー訂正回路ECは、エラー訂正信号CRCT0−7に応じて、リアル読み出しデータRD0−7のエラーを訂正し、エラー訂正信号CRCT8−15に応じて、リアル読み出しデータRD8−15のエラーを訂正し、内部データIDQ0−15として出力する。
図11は、図10に示したシンドローム生成回路SYNG0の例を示している。他のシンドローム生成回路SYNG1−7は、入力される信号が異なることを除き、シンドローム生成回路SYNG0と同様の回路である。シンドローム生成回路SYNG0は、セレクタSEL5−9および6個の排他的論理和回路EXOR6−11を有している。排他的論理和回路EXOR6−11は、互いに同じ回路である。
各セレクタSEL5−9は、エラー訂正モード信号MDが示すエラー訂正モードに応じて、信号群RA0、RB0、RC0のいずれかを選択して排他的論理和回路EXOR6−8に出力する。例えば、符号RA0(5)において、”R”は読み出しデータを示し、”A”はエラー訂正モードMD1中に選択されることを示し、”0”は供給先のシンドローム生成回路SYNGの番号を示し、”(5)”は供給先のセレクタSELの番号を示す。符号RB0(5)の”B”は、エラー訂正モードMD2中に選択されることを示す。符号RC0(5)の”C”は、エラー訂正モードMD3中に選択されることを示す。他の符号も同様である。
セレクタSEL5−9は、シンドロームSYND0を生成するためにシンドローム生成回路SYNG0(エラー訂正回路の一種)に供給されるリアル読み出しデータの割り当てを切り替える訂正入力切替回路として動作する。排他的論理和回路EXOR8は、セレクタSEL9の出力とパリティ読み出しデータPRD0とを受ける。最終の排他的論理和回路EXOR11は、シンドロームSYND0を出力する。
図12は、図10に示したシンドローム生成回路SYNG0−7に供給される信号の例を示している。例えば、シンドローム生成回路SYNG0のセレクタSEL5−9は、エラー訂正モードMD1では、リアル読み出しデータRD0−15のうちデータRD0、1、3、4、6をそれぞれ選択し、読み出しパリティデータPRD0を用いてシンドロームSYND0を生成する。シンドローム生成回路SYNG0のセレクタSEL5−9は、エラー訂正モードMD2では、リアル読み出しデータRD0−15のうちデータRD0、8、9、2、3をそれぞれ選択し、読み出しパリティデータPRD0を用いてシンドロームSYND0を生成する。シンドローム生成回路SYNG0のセレクタSEL5−9は、エラー訂正モードMD3では、リアル読み出しデータRD0−15のうちデータRD0、1、9、2、10をそれぞれ選択し、読み出しパリティデータPRD0を用いてシンドロームSYND0を生成する。
同様に、シンドローム生成回路SYNG2のセレクタSEL5−9は、エラー訂正モードMD1では、データRD1、2、3、7と論理0(VSS)をそれぞれ選択し、読み出しパリティデータPRD2を用いてシンドロームSYND2を生成する。パリティ生成回路PGEN2のセレクタSEL0−4は、エラー訂正モードMD2では、データRD8、1、9、11と論理0(VSS)をそれぞれ選択し、読み出しパリティデータPRD2を用いてシンドロームSYND2を生成する。パリティ生成回路PGEN0のセレクタSEL0−4は、エラー訂正モードMD3では、リうちデータRD1、8、9、11と論理0(VSS)をそれぞれ選択し、読み出しパリティデータPRD2を用いてシンドロームSYND2を生成する。
図13は、図10に示したシンドロームデコーダSDEC0、SDEC1の例を示している。シンドロームデコーダSDEC0−1は、互いに同じ回路のため、シンドロームデコーダSDEC1の信号は、括弧内に示している。
シンドロームデコーダSDEC0は、シンドロームSYND0−3をデコードし、リアル読み出しデータRD0−7中のエラービットを示すエラー訂正信号ICRCT0−7を生成する。シンドロームデコーダSDEC1は、シンドロームSYND4−7をデコードし、リアル読み出しデータRD8−15中のエラービットを示すエラー訂正信号ICRCT8−15を生成する。
図14は、図10に示したエラー訂正回路ECの例を示している。エラー訂正回路ECは、内部データIDQ0−15に対応する16個のセレクタSEL10−25、16個の排他的論理和回路EXORおよびデータ出力切替回路DOSWを有している。セレクタSEL10−25は、図11に示したセレクタSEL5−9と同様に、エラー訂正モード信号MDが示すエラー訂正モードMD1−3に応じて、信号群RA0、RB0、RC0のいずれかを選択する。例えば、符号RA(10)において、”R”は読み出しデータを示し、”A”はエラー訂正モードMD1中に選択されることを示し、”(10)”は供給先のセレクタSELの番号を示す。符号RB(10)の”B”は、エラー訂正モードMD2中に選択されることを示す。符号RC(10)の”C”は、エラー訂正モードMD3中に選択されることを示す。他の符号も同様である。
セレクタSEL10−25は、エラー訂正モードMD1−3に応じて、エラー訂正信号CRCT0−15に対応するリアル読み出しデータRD(RD0−15のいずれか)を選択するために形成される。エラー訂正信号CRCT01−15は、図10−13に示したように、エラー訂正モードMD1−3に応じて、対応するリアル読み出しデータRD0−15が異なる。このため、セレクタSEL10−25により、リアル読み出しデータRD0−15とエラー訂正信号CRCT0−15の対応を正しくする必要がある。なお、この実施形態では、エラーは、リアル読み出しデータRD0−7の1ビットで発生し、リアル読み出しデータRD8−15の1ビットで発生するものとする。
排他的論理和回路EXORは、セレクタSEL10−25により選択されたリアル読み出しデータRDとエラー訂正信号ICRCT0−15とをそれぞれ演算し、内部データID0−15として出力する。データ出力切替回路DOSWは、排他的論理和回路EXOR(エラー訂正回路の一種)から出力されるエラーが訂正された内部データID0−15の割り当てを切り替え、元のリアルデータIDQ0−15に変換する。
図15は、図14に示したエラー訂正回路EC内のセレクタSEL10−25の動作の例を示している。各セレクタSEL10−25は、エラー訂正モードMD1−3に応じて、リアル読み出しデータRD0−15のいずれかを選択する。選択されるリアル読み出しデータRD0−15の番号の並びは、図6に示したパリティデータPD0−7を生成するためのデータ端子DQ0−15の番号の並びと同じである。
図16は、図14に示したエラー訂正回路EC内のデータ出力切替回路DOSWの動作の例を示している。データ出力切替回路DOSWは、エラー訂正モードMD1−3に応じて、内部データID0−15の割り当てを切り替え、内部データIDQ0−15として出力する。内部データIDQ0−15の番号の並びは、図6に示したパリティデータPD0−7を生成するためのデータ端子DQ0−15の番号の並びと同じである。データ出力切替回路DOSWにより、エラーが訂正されたリアル読み出しデータID0−15は、正しいデータ端子DQ0−15に出力される。
図17は、図3に示した半導体メモリMEMの製造工程で実施される製造方法を示している。なお、図17のフローは、図18に示す半導体メモリMEMの製造工程でも使用される。
まず、ステップS100において、半導体メモリMEMのウエハプロセスが実施される。ウエハプロセス後、半導体メモリMEMが形成されたウエハがサンプリングされる。サンプリングされたウエハは、ステップS200−S208の処理後、ステップS102に戻されてもよい。
ステップS102において、第1ウエハ試験が実施される。この後、ステップS104において、第1ウエハ試験でパスした半導体メモリチップMEMは良品と判断され、第1ウエハ試験でフェイルした半導体メモリチップMEMは救済可能な不良品と判断される。
次に、ステップS106において、図3に示したモード設定部22のプログラム回路PGMがプログラムされ、ステップS200−S208の処理で決定したエラー訂正モードが、不良の全ての半導体メモリチップMEMに設定される。ステップS108において、第1ウエハ試験の結果に基づいて、不良のメモリセル等が冗長回路に置き換えられ、不良が救済される。なお、プログラム回路PGMのプログラムと、冗長回路に置き換えるためのプログラムは、同時に実施されてもよく、あるいは、ステップS108をステップS106の前に実施してもよい。
次に、ステップS110において、冗長回路への置き換えにより不良が救済されることを確認するために、第2ウエハ試験が実施される。この後、ステップS112において、第2ウエハ試験でパスした半導体メモリチップMEMは良品と判断され、組立工程に送られ、または出荷される。第2ウエハ試験でフェイルした半導体メモリチップMEMは不良品として処理される。なお、実際には、1枚のウエハ上に良品チップと不良品チップとが混在する。このため、良品チップと不良品チップとは、インクマークや電子的な記録により識別される。
一方、サンプリングしたウエハでは、半導体メモリチップMEMは、ステップS200において、図10に示したエラー訂正回路ECが無効にされる。例えば、エラー訂正回路ECは、図3に示したコマンドデコーダ14に無効設定用の試験コマンドが供給されることで無効にされる。無効にされたエラー訂正回路ECは、エラー訂正信号CRCT0−15の論理に拘わりなく、リアル読み出しデータRD0−15を内部データ線IDQ0−15に出力する。すなわち、読み出しデータのエラーは訂正されない。
次に、ステップS202において、エラー訂正モードMD1−3のそれぞれについて、各半導体メモリチップMEMの動作試験が実施される。ステップS204において、エラー訂正モードMD1−3毎に不良ビットが集計される。ステップS206において、エラー訂正モードMD1−3毎に不良モードが判定される。ステップS208において、判定された不良モードに基づいて、最も歩留を向上できるエラー訂正モード(MD1−3のいずれか)が決定される。そして、上述したステップS106において、決定されたエラー訂正モードがプログラムされる。
例えば、データ端子DQ3、4に対応するリアルメモリセルMCの2ビット不良の発生頻度が高いとき、図6に示したエラー訂正モードMD1では、DQ3、4に対応するパリティデータPD0−3が同じため、2ビット不良はエラー訂正できない。一方、図6に示したエラー訂正モードMD2−3では、DQ3、4に対応するパリティデータ(PD0−3とPD4−7)が異なるため、それぞれのビット不良を救済できる。同様に、データ端子DQ2、4に対応するリアルメモリセルMCの2ビット不良の発生頻度が高いとき、エラー訂正モードMD1では、DQ2、4に対応するパリティデータPD0−3が同じため、2ビット不良はエラー訂正できない。一方、図6に示したエラー訂正モードMD2−3では、DQ2、4に対応するパリティデータ(PD0−3とPD4−7)が異なるため、それぞれのビット不良を救済できる。
ステップS200−S208の処理(すなわち、サンプリング処理)は、例えば、数十ロットに1回の頻度で実施される。なお、サンプリングの頻度は、量産開始からの時期に応じて変更してもよく、あるいは、歩留が下がったときに増やしてもよい。サンプリングにより不良モードを判定し、最適なエラー訂正モードを決定することで、2ビット不良を2つの単ビット不良としてエラー訂正できる確率を向上できる。この結果、半導体メモリMEMの歩留を向上できる。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図18は、別の実施形態における半導体メモリMEMの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリMEMは、図3に示したメモリコア24およびエラー制御部26の代わりにメモリコア24Aおよびエラー制御部26Aを有している。半導体メモリMEMのその他の構成は、図3と同様である。
メモリコア24Aは、リードアンプRAの出力に接続されたリアル読み出しデータ切替回路RSWと、ライトアンプWAの入力に接続されたリアル書き込みデータ切替回路WSWとを有している。メモリコア24Aのその他の構成は、図3のメモリコア24と同様である。リアル読み出しデータ切替回路RSWは、読み出し動作時に、エラー訂正モード信号MDに応じて、リードアンプRAからのリアル読み出しデータIRD0−15のビットを入れ替え、リアル読み出しデータRD0−15として出力する。リアル書き込みデータ切替回路WSWは、書き込み動作時に、エラー訂正モード信号MDに応じて、エラー制御部26Aからのリアル書き込みデータWD0−15のビットを入れ替え、リアル書き込みデータIWD0−15として出力する。
エラー制御部26Aは、書き込み動作時に、リアル書き込みデータIDQ0−15をリアル書き込みデータWD0−15として出力するとともに、リアル書き込みデータIDQ0−7、IDQ8−15のパリティデータPD0−3、PD4−7を生成する。エラー制御部26Aは、読み出し動作時に、パリティデータPRD0−3、PRD4−7を用いてリアル読み出しデータRD0−7、RD8−15に含まれるエラーを訂正し、リアル読み出しデータIDQ0−7、IDQ8−15として出力する。
この実施形態では、メモリコア24A内でリアル読み出しデータRD0−15およびリアル書き込みデータWD0−15のビットの入れ替えが実施される。このため、エラー制御部26内で処理されるデータのビット番号は、データ端子DQの番号に等しく、エラー制御部26内でのデータのビットの切り替えは不要である。
図19は、図18に示したメモリセルアレイARYにおけるエラー訂正モードMD1中のデータ端子DQ0−15の割り当ての例を示している。メモリセルアレイARYの構造は、図4および図5と同様である。すなわち、メモリセルアレイARYは、8ビットのデータと4ビットのパリティデータを保持する2つのメモリグループMG1−2を有している。図19では、説明を分かりやすくするために、図18に示した読み出しデータバスRDB、書き込みデータバスWDB、リードアンプRAおよびライトアンプWAの記載を省略している。
エラー訂正モードMD1では、リアルビット線BL#1(BLa1、BLb1、BLc1、BLd1、BLe1、BLf1、BLg1、BLh1)に接続されるメモリグループMG1のリアルメモリセルMC(図18)は、データ端子DQ0−7に割り当てられる。リアルビット線BL#2(BLa2、BLb2、BLc2、BLd2、BLe2、BLf2、BLg2、BLh2)に接続されるメモリグループMG2のリアルメモリセルMCは、データ端子DQ8−15に割り当てられる。
図20は、図18に示したメモリセルアレイARYにおけるエラー訂正モードMD2中のデータ端子DQ0−15の割り当ての例を示している。メモリセルアレイARYは、図4および図5と同様に2つのメモリグループMG1−2を有している。図20では、説明を分かりやすくするために、図18に示した読み出しデータバスRDB、書き込みデータバスWDB、リードアンプRAおよびライトアンプWAの記載を省略している。
エラー訂正モードMD2では、リアルビット線BL#1に接続されるメモリグループMG1のリアルメモリセルMC(図18)は、データ端子DQ0、8、1、9、2、10、3、11に割り当てられる。リアルビット線BL#2に接続されるメモリグループMG2のリアルメモリセルMCは、データ端子DQ4、12、5、13、6、14、7、15に割り当てられる。
図21は、図18に示したメモリセルアレイARYにおけるエラー訂正モードMD3中のデータ端子DQ0−15の割り当ての例を示している。メモリセルアレイARYは、図4および図5と同様に2つのメモリグループMG1−2を有している。図21では、説明を分かりやすくするために、図18に示した読み出しデータバスRDB、書き込みデータバスWDB、リードアンプRAおよびライトアンプWAの記載を省略している。
エラー訂正モードMD3では、リアルビット線BL#1に接続されるメモリグループMG1のリアルメモリセルMC(図18)は、データ端子DQ0、1、8、9、2、3、10、11に割り当てられる。リアルビット線BL#2に接続されるメモリグループMG2のリアルメモリセルMCは、データ端子DQ4、5、12、13、6、7、14、15に割り当てられる。
図22は、図18に示したエラー制御部26Aのうち、書き込み系の回路の例を示している。エラー制御部26Aは、データバッファDBUF0−DBUF1およびパリティ生成回路PGEN0−PGEN7を有している。データバッファDBUF0−1は、図7と同様の回路である。各パリティ生成回路PGEN0−7は、リアルデータIDQ0−15の所定のビットを選択し、選択したビットを用いてパリティデータPWD(PWD0−7のいずれか)を生成する。
図23は、図22に示したパリティ生成回路PGEN0の例を示している。他のパリティ生成回路PGEN1−7は、入力される信号が異なることを除き、パリティ生成回路PGEN0と同様の回路である。パリティ生成回路PGEN0は、6個の排他的論理和回路EXOR0−5を有している。排他的論理和回路EXOR0−5は、図8と同じ回路である。排他的論理和回路EXOR0−2は、入力端子DIN0−4でリアル書き込みデータIDQ0、1、3、4、6を受けている。最終の排他的論理和回路EXOR5は、パリティデータPWD0を出力する。
図24は、図23に示したパリティ生成回路PGEN0−7に供給される信号の例を示している。例えば、パリティ生成回路PGEN1は、リアル書き込みデータIDQ0、2、3、5、6を受け、書き込みパリティデータPWD1を生成する。パリティ生成回路PGEN2は、リアル書き込みデータIDQ1、2、3、7および論理0(VSS)を受け、書き込みパリティデータPWD2を生成する。
図25は、図18に示したエラー制御部26Aのうち、読み出し系の回路の例を示している。エラー制御部26Aは、シンドローム生成回路SYNG0−7、シンドロームデコーダSDEC0−1およびエラー訂正回路ECを有している。図25の黒丸は、シンドローム生成回路SYNG0−7およびエラー訂正回路ECが選択するリアル読み出しデータRD0−15を示している。シンドロームデコーダSDEC0−1は、図13と同様の回路である。
リアル読み出しデータRD0−7は、リアルビット線BL#1(図19)に対応するデータであり、メモリグループMG1のリアルメモリセルMCから読み出される。リアル読み出しデータRD8−15は、リアルビット線BL#2に対応するデータであり、メモリグループMG2のリアルメモリセルMCから読み出される。パリティ読み出しデータPRD0−3は、メモリグループMG1から読み出され、パリティ読み出しデータPRD4−7は、メモリグループMG2から読み出される。
各シンドローム生成回路SYNG0−7は、リアル読み出しデータRD0−15のうち所定のビットとパリティ読み出しデータPRD(PRD0−7のいずれか)を用いてシンドロームSYND(SYND0−7のいずれか)を生成する。
シンドロームデコーダSDEC0は、シンドロームSYN0−3に基づいてリアル読み出しデータRD0−7中のエラービットを示すエラー訂正信号CRCT0−7を生成する。シンドロームデコーダSDEC1は、シンドロームSYN4−7に基づいてリアル読み出しデータRD8−15中のエラービットを示すエラー訂正信号CRCT8−15を生成する。
エラー訂正回路ECは、エラー訂正信号CRCT0−7に応じて、リアル読み出しデータRD0−7のエラーを訂正し、エラー訂正信号CRCT8−15に応じて、リアル読み出しデータRD8−15のエラーを訂正し、内部データIDQ0−15として出力する。
図26は、図25に示したシンドローム生成回路SYNG0の例を示している。他のシンドローム生成回路SYNG1−7は、入力される信号が異なることを除き、シンドローム生成回路SYNG0と同様の回路である。シンドローム生成回路SYNG0は、6個の排他的論理和回路EXOR6−11を有している。排他的論理和回路EXOR6−11は、図11と同じ回路である。排他的論理和回路EXOR6−8は、入力端子DIN5−9でリアル書き込みデータIDQ0、1、3、4、6を受け、パリティ入力端子PRTYでパリティ読み出しデータPRD0を受ける。最終の排他的論理和回路EXOR11は、シンドロームSYND0を出力する。
図27は、図25に示したシンドローム生成回路SYNG0−7に供給される信号の例を示している。例えば、シンドローム生成回路SYNG1は、リアル読み出しデータRD0、2、3、5、6および読み出しパリティデータPRD1を用いてシンドロームSYND1生成する。シンドローム生成回路SYNG2は、リアル読み出しデータRD1、2、3、7と論理0(VSS)および読み出しパリティデータPRD2を用いてシンドロームSYND2を生成する。
図28は、図25に示したエラー訂正回路ECの例を示している。エラー訂正回路ECは、リアル読み出しデータRD0−15およびエラー訂正信号CRCT0−15をそれぞれ受け、内部データIDQ0−15を生成する16個の排他的論理和回路EXORを有している。各排他的論理和回路EXORは、高レベルのエラー訂正信号CRCT(CRCT0−15のいずれか)を受けているときに、対応するリアル読み出しデータRD(RD0−15のいずれか)の論理レベルを反転することで、エラーを訂正する。全てのエラー訂正信号CRCT0−15が低レベルのとき、エラーは発生していない。なお、この実施形態では、エラーは、リアル読み出しデータRD0−7の1ビットで発生し、リアル読み出しデータRD8−15の1ビットで発生するものとする。
図18−図28に示した半導体メモリMEMは、図17に示したフローを用いて製造される。すなわち、ステップS202において、図19−図21に示したエラー訂正モードMD1−3での動作試験がそれぞれ実施され、歩留を向上するためのエラー訂正モード(MD1−3のいずれか)が決定される。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図29は、別の実施形態における半導体メモリMEMの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリMEMは、図3に示したコマンドデコーダ14、アドレス制御部18、コア制御部20およびエラー制御部26の代わりにコマンドデコーダ14B、アドレス制御部18B、コア制御部20Bおよびエラー制御部26Bを有している。また、半導体メモリMEMは、BIST(Built In Self Test)部28Bを有している。半導体メモリMEMのその他の構成は、図3と同様である。モード設定部22は、BIST部28Bにより設定される。
コマンドデコーダ14Bは、コマンド信号CMDが試験開始コマンドを示すときに試験信号TESTZを高レベルに設定し、コマンド信号CMDが試験終了コマンドを示すときに試験信号TESTZを低レベルに設定する。コマンドデコーダ14Bのその他の機能は、モード設定コマンド信号MDZが生成されないことを除き、図3のコマンドデコーダ14と同様である。半導体メモリMEMは、試験信号TESTZが低レベルの期間に通常動作モードで動作し、試験信号TESTZが高レベルの期間に試験動作モードで動作する。
アドレス制御部18Bは、通常動作モード中に、アドレスバッファ12からのバンクアドレス信号BA、ロウアドレス信号RAおよびコラムアドレス信号CAを受けて動作する。アドレス制御部18Bは、試験動作モード中に、BIST部28Bにより生成される試験バンクアドレス信号TBA、試験ロウアドレス信号TRAおよび試験コラムアドレス信号TCAを受けて動作する。アドレス制御部18Bは、受ける信号が動作モードに応じて異なることを除き、図3のアドレス制御部18と同様の回路である。
コア制御部20Bは、通常動作モード中に、コマンドデコーダ14Bからのアクティブコマンド信号ACTZ、読み出しコマンド信号RDZ、書き込みコマンド信号WRZおよびプリチャージコマンド信号PREZを受けて動作する。コア制御部20Bは、試験動作モード中に、BIST部28Bにより生成される試験アクティブコマンド信号TACTZ、試験読み出しコマンド信号TRDZ、試験書き込みコマンド信号TWRZおよび試験プリチャージコマンド信号TPREZを受けて動作する。コア制御部20Bは、受ける信号が動作モードに応じて異なることを除き、図3のコア制御部20と同様の回路である。
エラー制御部26Bは、通常動作モード中に、データ入出力バッファ16から書き込みデータを受け、データ入出力バッファ16に読み出しデータを出力する。エラー制御部26Bは、試験動作モード中に、BIST部28Bから試験書き込みデータを受け、BIST部28Bに試験読み出しデータを出力する。エラー制御部26Bは、書き込みデータを受ける相手および読み出しデータを出力する相手が動作モードに応じて異なることを除き、図3のエラー制御部26と同様の回路である。
BIST部28Bは、試験動作モード中にメモリコア24にアクセスするために動作し、メモリコア24に試験データを書き込み、メモリコア24から試験データを読み出し、リアルメモリセルMCのエラーを判定する。BIST部28Bは、エラー訂正モードMD1−3でメモリコア24の試験を順次実施する。この後、BIST部28Bは、エラーが発生しなかったエラー訂正モードMD1−3のいずれかをプログラムするためにプログラムコマンド信号PGMZおよび試験ロウアドレス信号TRAをモード設定部22Bに出力する。
図30は、図29に示した半導体メモリMEMの製造方法の例を示している。まず、ステップS300において、半導体メモリチップMEMのウエハプロセスが実施される。ウエハプロセス後、ステップS302において、半導体メモリMEMがの第1ウエハ試験が実施される。ステップS304において、第1ウエハ試験でパスした半導体メモリチップMEMは良品と判断され、第1ウエハ試験でフェイルした半導体メモリチップMEMは救済可能な不良品と判断される。
次に、ステップS306において、第1ウエハ試験の結果に基づいて、不良のメモリセル等が冗長回路に置き換えられ、不良が救済される。次に、ステップS308において、冗長回路への置き換えにより不良が救済されることを確認するために、第2ウエハ試験が実施される。この後、ステップS310において、第2ウエハ試験でパスした半導体メモリチップMEMは良品と判断され、組立工程に送られ、または出荷される。
次に、ステップS312において、図29に示したBIST部28Bを用いて、エラー訂正モードMD1−3のそれぞれについて動作試験が実施される。この後、ステップS314において、動作試験に基づいて、エラー訂正モードMD1−3のいずれかに設定することで良品になる半導体メモリチップMEMが見つけられる。エラー訂正モードMD1−3のいずれによっても良品にできない半導体メモリチップMEMは不良品として扱われる。そして、ステップS316において、良品化可能と判定された半導体メモリチップMEMは、エラー訂正モードMD1−3のいずれかにプログラムされ、良品として扱われる。図30に示した製造方法により、上述した実施形態と同様に、2ビット不良を2つの単ビット不良としてエラー訂正できる。この結果、不良と判定された半導体メモリMEMを良品かでき、半導体メモリMEMの歩留を向上できる。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図31は、別の実施形態における半導体メモリMEMの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態では、半導体メモリMEMは、図18に示したコマンドデコーダ14、アドレス制御部18、コア制御部20およびエラー制御部26の代わりにコマンドデコーダ14B、アドレス制御部18B、コア制御部20Bおよびエラー制御部26Cを有している。また、半導体メモリMEMは、BIST部28Bを有している。半導体メモリMEMのその他の構成は、図18と同様である。モード設定部22は、BIST部28Bにより設定される。
エラー制御部26Cは、通常動作モード中に、データ入出力バッファ16から書き込みデータを受け、データ入出力バッファ16に読み出しデータを出力する。エラー制御部26Bは、試験動作モード中に、BIST部28Bから試験書き込みデータを受け、BIST部28Bに試験読み出しデータを出力する。エラー制御部26Bは、書き込みデータを受ける相手および読み出しデータを出力する相手が動作モードに応じて異なることを除き、図18のエラー制御部26Aと同様の回路である。
この実施形態では、図30と同様の手順で半導体メモリMEMが製造される。すなわち、第2ウエハ試験後に不良を救済できない半導体メモリチップMEMについて、BIST部28Bによる動作試験がエラー訂正モードMD1−3毎に実施され、不良チップの良品化が試される。これにより、2ビット不良を2つの単ビット不良としてエラー訂正でき、半導体メモリMEMの歩留を向上できる。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図32は、別の実施形態の半導体メモリにおけるエラー訂正回路ECの例を示している。エラー訂正回路ECを除く構成は、図3および図29の半導体メモリMEMと同様である。エラー訂正回路ECは、エラー訂正コード切替回路CRCTSWおよび内部データIDQ0−15を生成する16個の排他的論理和回路EXORを有している。エラー訂正コード切替回路CRCTSWは、エラー訂正信号CRCT0−15の各ビットを、エラー訂正モード信号MDに応じてエラー訂正信号ICRCT0−15のいずれかとして出力する。エラー訂正信号CRCT0−15は、図10に示したシンドロームデコーダSDEC0−1から出力される。エラー訂正コード切替回路CRCTSWの動作の例は、図15に示す。
各排他的論理和回路EXORは、高レベルのエラー訂正信号ICRCT(ICRCT0−15のいずれか)を受けているときに、対応するリアル読み出しデータRD(RD0−15のいずれか)の論理レベルを反転することで、エラーを訂正する。全てのエラー訂正信号ICRCT0−15が低レベルのとき、エラーは発生していない。なお、この実施形態では、エラーは、リアル読み出しデータRD0−7の1ビットで発生し、リアル読み出しデータRD8−15の1ビットで発生するものとする。
図33は、図32に示したエラー訂正コード切替回路CRCTSWの動作の例を示している。エラー訂正モードMD1では、エラー訂正コード切替回路CRCTSWは、エラー訂正信号CRCT0−15をエラー訂正信号ICRCT0−15として出力する。エラー訂正モードMD2、MD3では、エラー訂正コード切替回路CRCTSWは、エラー訂正信号CRCT0−15の所定数のビットを入れ替え、エラー訂正信号ICRCT0−15として出力する。
図33に示したエラー訂正モードMD2でのエラー訂正信号ICRCTの並び順は、図6に示したエラー訂正モードMD2でのパリティデータPD0−7を生成するためのデータ端子の並び順(DQ0、8、...、3、11、DQ4、12、...、7、15)と同じである。同様に、図33に示したエラー訂正モードMD3でのエラー訂正信号ICRCTの並び順は、図6に示したエラー訂正モードMD3でのパリティデータPD0−7を生成するためのデータ端子の並び順(DQ0、1、...、10、11、DQ4、5、...、14、15)と同じである。以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。
図34は、上述した半導体メモリMEMが搭載されるシステムSYSの例を示している。システムSYSは、例えば、携帯電話や携帯ゲーム等の携帯機器の少なくとも一部を示している。なお、システムSYSは、ビデオレコーダやパーソナルコンピュータ等のコンピュータ装置の少なくとも一部でもよい。
システムSYSは、システムオンチップSoCを有している。あるいは、システムSYSは、マルチチップパッケージMCP、システムインパッケージSiP、チップオンチップCoC、パッケージオンパッケージPoPあるいはプリント基板の形態でもよい。システムSYSの形態がプリント基板のとき、半導体メモリMEMは、単一のパッケージに封入されていてもよい。
例えば、SoCは、半導体メモリMEM、半導体メモリMEMにアクセスするメモリコントローラMCNT、フラッシュメモリFLASH、フラッシュメモリFLASHをアクセスするメモリコントローラFCNT、およびシステム全体を制御するCPU(メインコントローラ)を有している。CPUおよびメモリコントローラMCNT、FCNTは、システムバスSBUSにより互いに接続されている。特に限定されないが、SoCは、外部バスSCNTを介して上位のシステムに接続されてもよい。システムバスSBUSには、他の周辺回路チップが接続されてもよい。図3等に示したクロック信号CLKは、SoC内の各デバイスに供給される。なおクロック信号CLKは、メモリコントローラMCNTから半導体メモリMEMに供給されてもよい。
CPUは、半導体メモリMEMにアクセスするために、読み出しパケット(読み出しアクセス要求)および書き込みパケット(書き込みアクセス要求)をメモリコントローラMCNTに出力する。メモリコントローラMCNTは、CPUからの指示に基づいて、半導体メモリMEMにコマンド信号CMD、アドレス信号BA、AD、書き込みデータDQおよびデータマスク信号DMを出力し、半導体メモリMEMから読み出しデータDQを受ける。
CPUは、フラッシュメモリFLASHにアクセスするために、読み出しパケット(読み出しアクセス要求)、書き込みパケット(書き込みアクセス要求)および消去パケット(消去要求)をメモリコントローラFCNTに出力する。メモリコントローラFCNTは、CPUからの指示に応じて、コマンド信号CMDおよび書き込みデータDTをフラッシュメモリFLASHに出力し、読み出しデータDTおよびビジー信号BSYをフラッシュメモリFLASHから受ける。アドレス信号は、データ線DTを介してフラッシュメモリFLASHに伝達される。
なお、システムSYSにメモリコントローラMCNTを設けることなく、コマンド信号CMDおよびアドレス信号BA、ADを、CPUから半導体メモリMEMに直接出力してもよい。また、システムSYSは、CPUと半導体メモリMEMのみを有していてもよい。このとき、CPUは、メモリコントローラとして動作する。
なお、上述した実施形態は、DRAMに適用する例について述べた。しかしながら、上述した実施形態は、疑似SRAM、SRAM、フラッシュメモリ、強誘電体メモリ、MRAM(Spin Torque Transfer Magneto-resistive RAM)、ReRAM(Resistive Random Access Memory)等の他の半導体メモリに適用可能である。疑似SRAMは、DRAMのメモリセルとSRAMのインタフェースを有し、内部で発生するリフレッシュ要求信号に応答して自動的にリフレッシュ動作を実行する。
上述した実施形態では、図6および図19−図21に示すように、パリティデータPD0−3、PD4−7の割り当てをエラー訂正モードMD1−3に応じて3通りに変更する例について述べた。しかしながら、上述した実施形態は、パリティデータPD0−3、PD4−7の割り当てを4通り以上に変更してもよい。
図29−図31に示した実施形態では、半導体メモリMEMの製造工程において、BIST部28Bを動作させる例について述べた。しかしながら、BIST部28Bは、半導体メモリMEMがシステムSYSに搭載された状態で、システムSYSのパワーオン時に動作させてもよい。あるいは、BIST部28Bは、システムSYSのパワーオン中に、半導体メモリMEMの外部からの命令により動作させてもよい。このとき、長期間の使用によりビット不良が発生した半導体メモリMEMをシステムSYS上で救済できる。また、設定されているエラー訂正モードMD1−3を半導体メモリMEMの外部に知らせるための外部端子を半導体メモリMEMに形成してもよい。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。