(57)【特許請求の範囲】
【請求項１】
第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とを並列に出力するメモリ部と、
前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成する第１の誤り訂正回路と、
前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成する第２の誤り訂正回路と、
前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力する出力回路と
を備え、
前記第１のデータ群のビット数は、前記第２のデータ群のビット数より少ないこと
を特徴とする半導体記憶装置。
【請求項２】
第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とを並列に出力するメモリ部と、
前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成する第１の誤り訂正回路と、
前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成する第２の誤り訂正回路と、
前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力する出力回路と
を備え、
前記第１の誤り訂正回路による前記第１のデータ群の誤り訂正時間は、前記第２の誤り訂正回路による前記第２のデータ群の誤り訂正時間より短いこと
を特徴とする半導体記憶装置。
【請求項３】
前記第１の誤り訂正回路は、前記出力回路が出力するデータのうち先頭データの誤りを訂正し、
前記第２の誤り訂正回路は、前記出力回路が出力するデータのうち前記先頭データを除く残りのデータの誤りを訂正すること
を特徴とする請求項１または請求項２記載の半導体記憶装置。
【請求項４】
前記第１の訂正データ群に含まれる複数の第１の部分データ群のいずれかと、前記第２の訂正データ群に含まれる複数の第２の部分データ群のいずれかとを選択する選択回路を備え、
前記出力回路は、前記選択回路が選択した前記複数の第１の部分データ群の前記いずれかと前記複数の第２の部分データ群の前記いずれかとを順次に出力すること
を特徴とする請求項１ないし請求項３のいずれか１項記載の半導体記憶装置。
【請求項５】
前記メモリ部に書き込む書き込みデータ群に含まれるデータを順次に受ける入力回路と、
前記複数の第１の部分データ群の前記いずれかを、前記書き込みデータ群のうち前記第１のデータ群に対応するデータに置き換えて第１の書き込みデータ群を生成し、前記複数の第２の部分データ群の前記いずれかを、前記書き込みデータのうち前記第２のデータ群に対応するデータに置き換えて第２の書き込みデータ群を生成する置き換え回路と、
前記第１の書き込みデータ群に対応する前記第１のパリティデータ群を生成し、前記第２の書き込みデータ群に対応する前記第２のパリティデータ群を生成するパリティ生成回路と、
前記第１の書き込みデータ群と、前記第２の書き込みデータ群と、前記パリティ生成回路が生成した前記第１のパリティデータ群および前記第２のパリティデータ群とを前記メモリ部に書き込む書き込み回路と
を備えることを特徴とする請求項４記載の半導体記憶装置。
【請求項６】
第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とをメモリ部から並列に出力し、
前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成し、
前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成し、
前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力する半導体記憶装置の制御方法であって、
前記第１のデータ群のビット数は、前記第２のデータ群のビット数より少ないこと
を特徴とする半導体記憶装置の制御方法。
【請求項７】
第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とをメモリ部から並列に出力し、
前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成し、
前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成し、
前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力する半導体記憶装置の制御方法であって、
前記第１のデータ群の誤り訂正時間は、前記第２のデータ群の誤り訂正時間より短いこと
を特徴とする半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置および半導体記憶装置の制御方法に関する。
【背景技術】
【０００２】
半導体記憶装置内にデータとともにパリティデータを記憶し、パリティデータを用いて半導体記憶装置から読み出されるデータの誤りを検出または訂正する手法が知られている。例えば、複数ビットのデータをそれぞれ記憶する複数のメモリ素子のビット位置に対応して複数の誤り検出回路を設けることで、バースト誤りを発生させたメモリ素子が検出される（例えば、特許文献１参照）。また、メモリセルアレイから読み出す２つのデータ群の一方を選択的に出力する半導体記憶装置において、データ群の選択後、データ群に共通のパリティデータを用いて誤りを訂正することで、誤り訂正回路の回路規模は削減される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−６５９４４号公報
【特許文献２】特開平５−２８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
メモリセルアレイから読み出されるデータの誤りを訂正する場合、誤りの訂正時間は、データの読み出し要求を受けてからデータを出力するまでのデータ読み出し時間に含まれる。このため、誤り訂正回路を有する半導体記憶装置のデータの読み出し時間は、誤り訂正回路を持たない半導体記憶装置のデータの読み出し時間に比べて長くなる。
【０００５】
また、メモリセルアレイから読み出される並列データを直列データに変換して出力するシリアルメモリに誤り訂正回路が搭載される場合、並列データの誤り訂正が実行された後、先頭データが出力端子から出力される。したがって、先頭データの出力タイミングは、誤り訂正回路による誤り訂正時間に依存して変化する。
【０００６】
１つの側面では、本件開示の半導体記憶装置および半導体記憶装置の制御方法は、誤り訂正回路を有し、データを直列に出力する半導体記憶装置におけるデータの読み出し時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、半導体記憶装置は、第１のデータ群と、第１のデータ群に対応する第１のパリティデータ群と、第１のデータ群と異なる第２のデータ群と、第２のデータ群に対応する第２のパリティデータ群とを並列に出力するメモリ部と、第１のパリティデータ群を用いて第１のデータ群の誤りを訂正して第１の訂正データ群を生成する第１の誤り訂正回路と、第２のパリティデータ群を用いて第２のデータ群の誤りを訂正して第２の訂正データ群を生成する第２の誤り訂正回路と、第１の訂正データ群に含まれるデータと、第２の訂正データ群に含まれるデータとを順次に出力する出力回路とを有し、第１のデータ群のビット数は、第２のデータ群のビット数より少ない。
別の観点によれば、半導体記憶装置は、第１のデータ群と、第１のデータ群に対応する第１のパリティデータ群と、第１のデータ群と異なる第２のデータ群と、第２のデータ群に対応する第２のパリティデータ群とを並列に出力するメモリ部と、第１のパリティデータ群を用いて第１のデータ群の誤りを訂正して第１の訂正データ群を生成する第１の誤り訂正回路と、第２のパリティデータ群を用いて第２のデータ群の誤りを訂正して第２の訂正データ群を生成する第２の誤り訂正回路と、第１の訂正データ群に含まれるデータと、第２の訂正データ群に含まれるデータとを順次に出力する出力回路とを有し、第１の誤り訂正回路による第１のデータ群の誤り訂正時間は、第２の誤り訂正回路による第２のデータ群の誤り訂正時間より短い。
【０００８】
別の観点によれば、半導体記憶装置の制御方法は、第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とをメモリ部から並列に出力し、前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成し、前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成し、前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力し、前記第１のデータ群のビット数は、前記第２のデータ群のビット数より少ない。
別の観点によれば、半導体記憶装置の制御方法は、第１のデータ群と、前記第１のデータ群に対応する第１のパリティデータ群と、前記第１のデータ群と異なる第２のデータ群と、前記第２のデータ群に対応する第２のパリティデータ群とをメモリ部から並列に出力し、前記第１のパリティデータ群を用いて前記第１のデータ群の誤りを訂正して第１の訂正データ群を生成し、前記第２のパリティデータ群を用いて前記第２のデータ群の誤りを訂正して第２の訂正データ群を生成し、前記第１の訂正データ群に含まれるデータと、前記第２の訂正データ群に含まれるデータとを順次に出力し、前記第１のデータ群の誤り訂正時間は、前記第２のデータ群の誤り訂正時間より短い。
【発明の効果】
【０００９】
本件開示の半導体記憶装置および半導体記憶装置の制御方法は、誤り訂正回路を有し、データを直列に出力する半導体記憶装置におけるデータの読み出し時間を短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】半導体記憶装置および半導体記憶装置の制御方法の一実施形態を示す図である。
【図２】図１に示す半導体記憶装置の読み出し動作の一例を示す図である。
【図３】半導体記憶装置および半導体記憶装置の別の実施形態を示す図である。
【図４】図３に示す入出力制御回路の一例を示す図である。
【図５】図３に示すパリティ制御回路４０の一例を示す図である。
【図６】図５に示す読み出しパリティ生成回路、書き込みパリティ生成回路、シンドローム生成回路およびシンドロームデコーダで使用されるパリティ検査行列の一例を示す図である。
【図７】図５に示す読み出しパリティ生成回路、シンドローム生成回路、シンドロームデコーダおよび誤り訂正回路の一例を示す図である。
【図８】図７に示す読み出しパリティ生成回路およびシンドローム生成回路を融合し、排他的論理和ゲートを並列に配置した場合の一例を示す図である。
【図９】図５に示す置き換え回路および書き込みパリティ生成回路の一例を示す図である。
【図１０】図３に示すパリティ制御回路５０の一例を示す図である。
【図１１】図１０に示す読み出しパリティ生成回路、書き込みパリティ生成回路、シンドローム生成回路およびシンドロームデコーダで使用されるパリティ検査行列の一例を示す図である。
【図１２】図１０に示す誤り訂正回路の一例を示す図である。
【図１３】図１０に示す置き換え回路の一例を示す図である。
【図１４】図３に示す半導体記憶装置の読み出し動作の一例を示す図である。
【図１５】図１４に示す読み出し動作の要部の一例を示す図である。
【図１６】図３に示す半導体記憶装置の書き込み動作の一例を示す図である。
【図１７】半導体記憶装置および半導体記憶装置の制御方法の別の実施形態を示す図である。
【図１８】図１７に示す入出力制御回路の一例を示す図である。
【図１９】図１７に示す半導体記憶装置の読み出し動作の一例を示す図である。
【図２０】図１７に示す半導体記憶装置の書き込み動作の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同じ符号を使用する。先頭に”／”の付いている信号は、負論理を示す。図中の二重の四角印は、外部端子を示す。外部端子は、例えば、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。外部端子を介して供給される信号には、端子名と同じ符号を使用する。
【００１２】
図１は、半導体記憶装置および半導体記憶装置の制御方法の一実施形態を示す図である。図１に示す半導体記憶装置ＭＥＭ１は、メモリ部１、誤り訂正回路２、３および出力回路４を有する。図１では、メモリ部１からデータを読み出すための要素を示し、メモリ部１にデータを書き込む要素の記載は省略している。
【００１３】
メモリ部１は、データ群ＲＤＧ１と、データ群ＲＤＧ１に対応するパリティデータ群ＲＰＧ１と、データ群ＲＤＧ１と異なるデータ群ＲＤＧ２と、データ群ＲＤＧ２に対応するパリティデータ群ＲＰＧ２とを記憶する複数のメモリセルを有する。例えば、データ群ＲＤＧ１は、ｍ＋１ビット（ｍは０以上の整数）であり、データ群ＲＤＧ２は、ｎ＋１ビット（ｎは０以上の整数）である。
【００１４】
メモリ部１は、読み出し要求に応じて、データ群ＲＤＧ１、ＲＤＧ２およびパリティデータ群ＲＰＧ１、ＲＰＧ２を並列に出力する。例えば、メモリ部１は、データ群ＲＤＧ１、ＲＤＧ２およびパリティデータ群ＲＰＧ１、ＲＰＧ２をそれぞれ含む複数のデータブロックを記憶する。メモリ部１が複数のデータブロックを記憶する場合、各データブロックは、半導体記憶装置ＭＥＭ１の外部から供給されるアドレスにより識別される。
【００１５】
誤り訂正回路２は、読み出し要求に基づく読み出し動作において、パリティデータ群ＲＰＧ１を用いてデータ群ＲＤＧ１の誤りを訂正し、訂正データ群ＣＲＤＧ１を生成する。誤り訂正回路３は、パリティデータ群ＲＰＧ２を用いてデータ群ＲＤＧ２の誤りを訂正し、訂正データ群ＣＲＤＧ２を生成する。メモリ部１に記憶されるデータの誤りを、データ群ＲＤＧ１、ＲＤＧ２毎に訂正することで、データ群ＲＤＧ１、ＲＤＧ２の誤りをまとめて訂正する場合に比べて、訂正時間を短縮することができる。
【００１６】
出力回路４は、読み出し動作において、まず、訂正データ群ＣＲＤＧ１から先頭データＣＲＤＧ１［ｍ］を選択し、選択した先頭データＣＲＤＧ１［ｍ］を外部端子を介して半導体記憶装置の外部に出力する。次に、出力回路４は、訂正データ群ＣＲＤＧ１のうち先頭データＣＲＤＧ１「ｍ」を除くデータＣＲＤＧ１［ｍ−１」、...、ＣＲＤＧ１［０］を順次に出力する。なお、訂正データ群ＣＲＤＧ１が１ビットの場合、出力回路４は、１ビットの訂正データ群ＣＲＤＧ１を先頭データとして出力し、先頭データを除くデータは存在しないため出力しない。
【００１７】
出力回路４は、訂正データ群ＣＲＤＧ１の出力に続き、訂正データ群ＣＲＤＧ２に含まれるデータＣＲＤＧ２［ｎ」、ＣＲＤＧ２［ｎ−１］、...、ＣＲＤＧ２［０］を順次に出力する。このように、出力回路４は、並列の訂正データ群ＣＲＤＧ１、ＣＲＤＧ２を、出力順が訂正データ群ＣＲＤＧ１、ＣＲＤＧ２の順になるように直列に変換し、変換した直列のデータを外部端子に順次に出力する。
【００１８】
図２は、図１に示す半導体記憶装置ＭＥＭ１の読み出し動作の一例を示す。図２に示す矩形は、半導体記憶装置の各回路の動作を示す。図２（ａ）は、データ群ＲＤＧ１が１ビットであり、データ群ＲＤＧ２が７ビットである場合の動作を示す。ハミング符号方式を採用する場合、２ビットのパリティデータ群ＲＰＧ１がデータ群ＲＤＧ１の誤りの訂正に使用され、４ビットのパリティデータ群ＲＰＧ２がデータ群ＲＤＧ２の誤りの訂正に使用される。
【００１９】
図２（ｂ）は、データ群ＲＤＧ１、ＲＤＧ２がそれぞれ４ビットである場合の動作を示す。ハミング符号方式を採用する場合、３ビットのパリティデータ群ＲＰＧ１、ＲＰＧ２が、データ群ＲＤＧ１、ＲＤＧ２の誤りの訂正にそれぞれ使用される。図２（ｃ）は、８ビットのデータ群ＲＤＧを１つの誤り訂正回路で訂正し、訂正データ群ＣＲＤＧを生成する場合の動作（比較例）を示す。ハミング符号方式を採用する場合、４ビットのパリティデータ群ＲＰＧが、データ群ＲＤＧの誤りの訂正に使用される。
【００２０】
図２（ａ）および図２（ｂ）において、半導体記憶装置ＭＥＭ１は、読み出し要求ＲＲＱに基づいてメモリ部１を動作させる。メモリ部１は、データ群ＲＤＧ１、ＲＤＧ２およびパリティデータ群ＲＰＧ１、ＲＰＧ２を出力する。誤り訂正回路２は、パリティデータ群ＲＰＧ１を用いてデータ群ＲＤＧ１の誤りを訂正し、訂正データ群ＣＲＤＧ１（１ビット）を出力する。誤り訂正回路３は、パリティデータ群ＲＰＧ２を用いてデータ群ＲＤＧ２の誤りを訂正し、訂正データ群ＣＲＤＧ２（７ビット）を、訂正データ群ＣＲＤＧ１に続いて順次に出力する。
【００２１】
図２（ａ）において、誤り訂正回路２が処理する符号長（１＋２ビット）は、誤り訂正回路３が処理する符号長（７＋４ビット）より少ない。このため、誤り訂正回路２によるデータ群ＲＤＧ１の誤り訂正時間は、誤り訂正回路３によるデータ群ＲＤＧ２の誤り訂正時間に比べて短い。このため、出力回路４は、誤り訂正回路３が、データ群ＲＤＧ２の誤りの訂正を実行中に、最初のデータの出力を開始することができる。すなわち、出力回路４から出力される先頭データを、訂正データ群ＣＲＤＧ１とすることで、読み出し要求ＲＲＱを受けてから最初のデータを出力するまでの時間である読み出しアクセス時間ｔＲＤを、図２（ｂ）、図２（ｃ）に比べて短くすることができる。なお、読み出しアクセス時間ｔＲＤを短縮は、訂正データ群ＣＲＤＧ１の生成時間の短縮により短縮されるが、訂正データ群ＣＲＤＧ２の生成時間の短縮によっては短縮されない。このため、先頭で出力される訂正データ群ＣＲＤＧ１の生成時間の短縮が、読み出しアクセス時間ｔＲＤを短縮するために重要である。
【００２２】
図２（ｂ）において、誤り訂正回路２、３が処理する符号長（７ビット）は、互いに同じであるため、誤り訂正回路２によるデータ群ＲＤＧ１の誤り訂正時間は、誤り訂正回路３によるデータ群ＲＤＧ２の誤り訂正時間と同じである。しかしながら、メモリ部１から読み出される８ビットのデータを２つのデータ群ＲＤＧ１、ＲＤＧ２に分けて、誤り訂正回路２、３によりそれぞれの誤りを訂正することで、読み出しアクセス時間ｔＲＤを、図２（ｃ）に比べて短くすることができる。
【００２３】
以上、図１および図２に示す実施形態では、メモリ部１から並列に出力されるデータ群ＲＤＧ１、ＲＤＧ２の誤りを、誤り訂正回路２、３でそれぞれ訂正する。これにより、直列データのうちの先頭データを外部端子に出力する時間を、データ群ＲＤＧ１、ＲＤＧ２の誤りを１つの誤り訂正回路で訂正する場合に比べて早くすることができる。すなわち、読み出し要求を受けてから先頭データを出力するまでの読み出しアクセス時間ｔＲＤを、データ群ＲＤＧ１、ＲＤＧ２の誤りを１つの誤り訂正回路で訂正する場合に比べて短縮することができる。この結果、半導体記憶装置ＭＥＭ１の性能を向上することができる。
【００２４】
図３は、半導体記憶装置および半導体記憶装置の別の実施形態を示す図である。図３に示す半導体記憶装置ＭＥＭ２は、ＳＰＩ（Serial Peripheral Interface）方式のシリアルメモリであり、入力端子ＳＩに直列に供給されるデータを記憶し、記憶しているデータを出力端子ＳＯから直列に出力する。例えば、データの入力単位および出力単位は、８ビットであり、８ビットのデータは、アドレスＡ０−Ａ１に応じて４つの８ビットの記憶領域（３２ビット）のいずれかに記憶される。半導体記憶装置ＭＥＭ２の読み出し動作および書き込み動作の例は、図１４および図１６で説明する。
【００２５】
半導体記憶装置ＭＥＭ２は、メモリセルアレイ１０、アドレスデコーダ２０、読み書き制御回路３０、パリティ制御回路４０、５０および入出力制御回路６０を有する。
【００２６】
メモリセルアレイ１０は、６ビットのアドレスＩＡ０−ＩＡ５に応じて、６４個のデータ群Ｄ０−Ｄ３１（すなわち、２０４８ビット）を保持する複数のメモリセルを有する。メモリセルは、強誘電体メモリ、ＳＲＡＭ（Static Random Access Memory）、またはＤＲＡＭ（Dynamic Random Access Memory）等のメモリセルである。メモリセルは、ＭＲＡＭ（Magnetoresistive Random Access Memory）のメモリセルでもよい。メモリセルアレイ１０は、４ビットのデータＤ７、Ｄ１５、Ｄ２３、Ｄ３１をアドレスＩＡ０−ＩＡ５毎に保持する記憶領域Ｍ１を有する。メモリセルアレイ１０は、２８ビットのデータＤ０−Ｄ６、Ｄ８−Ｄ１４、Ｄ１６−Ｄ２２、Ｄ２４−Ｄ３０をアドレスＩＡ０−ＩＡ５毎に保持する記憶領域Ｍ２を有する。また、メモリセルアレイ１０は、データＤ７、Ｄ１５、Ｄ２３、Ｄ３１の誤りを訂正するための３ビットのパリティデータＰ０−Ｐ２をアドレスＩＡ０−ＩＡ５毎に記憶する記憶領域ＭＰ１を有する。さらに、メモリセルアレイ１０は、データＤ０−Ｄ６、Ｄ８−Ｄ１４、Ｄ１６−Ｄ２２、Ｄ２４−Ｄ３０の誤りを訂正するための６ビットのパリティデータＰ３−Ｐ８をアドレスＩＡ０−ＩＡ５毎に記憶する記憶領域ＭＰ２を有する。
【００２７】
なお、記憶領域Ｍ１、Ｍ２の各々は、物理的にまとめて設けられなくてもよい。例えば、メモリセルアレイ１０は、データＤ０−Ｄ７、Ｄ８−Ｄ１５、Ｄ１６−Ｄ２３、Ｄ２４−Ｄ３１の４つの記憶領域を有し、記憶領域Ｍ１、Ｍ２は、４つの記憶領域に分散して配置されてもよい。メモリセルアレイ１０は、メモリ部の一例である。データＤ７、Ｄ１５、Ｄ２３、Ｄ３１は、第１のデータ群の一例であり、データＤ０−Ｄ６、Ｄ８−Ｄ１４、Ｄ１６−Ｄ２２、Ｄ２４−Ｄ３０は第２のデータ群の一例である。パリティデータＰ０−Ｐ２は、第１のパリティデータ群の一例であり、パリティデータＰ３−Ｐ８は、第２のパリティデータ群の一例である。
【００２８】
アドレスデコーダ２０は、内部クロックＩＣＫに同期して、アドレスＩＡ０−ＩＡ５をデコードし、アドレスＩＡ０−ＩＡ５の値に応じて、６４個のデータ群Ｄ０−Ｄ３１のいずれかと、６４個のパリティデータ群Ｐ０−Ｐ８のいずれかとを選択する。
【００２９】
読み書き制御回路３０は、メモリセルアレイ１０からデータを読み出す読み出し動作時に、制御信号ＲＣＮＴに基づいて動作する。そして、読み書き制御回路３０は、アドレスデコーダ３０により選択され、メモリセルアレイ１０から並列に出力されるデータＤ０−Ｄ３１およびパリティデータＰ０−Ｐ８を受信する。読み書き制御回路３０は、メモリセルアレイ１０からのデータＤ７、Ｄ１５、Ｄ２３、Ｄ３１を読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１として、パリティ制御回路４０に出力する。読み書き制御回路３０は、メモリセルアレイ１０からのパリティデータＰ０−Ｐ２を読み出しパリティデータＲＰ０−ＲＰ２として、パリティ制御回路４０に出力する。読み書き制御回路３０は、メモリセルアレイ１０からのデータＤ０−Ｄ６、Ｄ８−Ｄ１４、Ｄ１６−Ｄ２２、Ｄ２４−Ｄ３０を読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０として、パリティ制御回路５０に出力する。読み書き制御回路３０は、メモリセルアレイ１０からのパリティデータＰ３−Ｐ８を読み出しパリティデータＲＰ３−ＲＰ８として、パリティ制御回路５０に出力する。
【００３０】
一方、読み書き制御回路３０は、メモリセルアレイ１０にデータを書き込む書き込み動作時に、制御信号ＷＣＮＴに基づいて動作する。読み書き制御回路３０は、パリティ制御回路４０から書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１と書き込みパリティデータＷＰ０−ＷＰ２とを受信する。また、読み書き制御回路３０は、パリティ制御回路５０から書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０と書き込みパリティデータＷＰ３−ＷＰ８とを受信する。
【００３１】
読み書き制御回路３０は、書き込みデータＷＤ０−ＷＤ３１をデータＤ０−Ｄ３１としてメモリセルアレイ１０に出力し、書き込みパリティデータＷＰ０−ＷＰ８をパリティデータＰ０−Ｐ８としてメモリセルアレイ１０に出力する。メモリセルアレイ１０にデータを書き込む読み書き制御回路３０は、書き込み回路の一例である。書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１は、第１の書き込みデータ群の一例であり、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０は、第２の書き込みデータ群の一例である。
【００３２】
なお、図３では、説明を分かりやすくするために、読み出し動作を実行するための全ての制御信号は、制御信号ＲＣＮＴとして示されるが、制御信号ＲＣＮＴは、複数のタイミング信号を含む。読み書き制御回路３０に供給される制御信号ＲＣＮＴは、パリティ制御回路４０、５０に供給される制御信号ＲＣＮＴとは異なる。同様に、書き込み動作を実行するための全ての制御信号は、制御信号ＷＣＮＴとして示されるが、制御信号ＷＣＮＴは、複数のタイミング信号を含む。読み書き制御回路３０に供給される制御信号ＷＣＮＴは、パリティ制御回路４０、５０に供給される制御信号ＷＣＮＴとは異なる。
【００３３】
パリティ制御回路４０は、読み出し動作時および書き込み動作時に動作し、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤りを読み出しパリティデータＲＰ０−ＲＰ２を用いて訂正する。パリティ制御回路４０は、訂正した読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１を出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１として出力する。出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１は、第１の訂正データ群の一例であり、出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１の各々は、第１の部分データ群の一例である。
【００３４】
パリティ制御回路４０は、書き込み動作時に、制御信号ＷＣＮＴに基づいて動作し、入力データＤＩ０７を受ける。パリティ制御回路４０は、誤りが訂正された出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１のいずれかを、アドレスＡ０−Ａ１の値に応じて入力データＤＩ０７に置き換え、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を生成する。すなわち、入力データＤＩ０７は、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１のいずれかとして、メモリセルアレイ１０に書き込まれる。
【００３５】
パリティ制御回路４０は、生成した書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を用いて、書き込みパリティデータＷＰ０−ＷＰ２を生成する。そして、パリティ制御回路４０は、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１および書き込みパリティデータＷＰ０−ＷＰ２を読み書き制御回路３０に出力する。
【００３６】
パリティ制御回路５０は、読み出し動作時および書き込み動作時に動作し、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０の誤りを読み出しパリティデータＲＰ３−ＲＰ８を用いて訂正する。パリティ制御回路５０は、訂正した読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０を出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０として出力する。出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０は、第２の訂正データ群の一例である。出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０の各々は、第２の部分データ群の一例である。
【００３７】
パリティ制御回路５０は、書き込み動作時に、制御信号ＷＣＮＴに基づいて動作し、７ビットの入力データＤＩ００−ＤＩ０６を受ける。パリティ制御回路５０は、誤りが訂正された出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０のいずれかの組を、アドレスＡ０−Ａ１の値に応じて入力データＤＩ００−ＤＩ０６に置き換える。そして、パリティ制御回路５０は、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０を生成する。すなわち、入力データＤＩ００−ＤＩ０６は、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０のいずれかとして、メモリセルアレイ１０に書き込まれる。
【００３８】
パリティ制御回路５０は、生成した書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０を用いて、書き込みパリティデータＷＰ３−ＷＰ８を生成する。そして、パリティ制御回路５０は、ＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０および書き込みパリティデータＷＰ３−ＷＰ８を読み書き制御回路３０に出力する。
【００３９】
入出力制御回路６０は、チップセレクト／ＣＳがロウレベルの期間に有効になり、クロックＳＣＫに同期して動作する。入出力制御回路６０は、入力端子ＳＩを介してコマンド（読み出しコマンドまたは書き込みコマンド）と、アドレスとを受け、受けたアドレスの一部をアドレスＩＡ０−ＩＡ５としてアドレスデコーダ２０に出力する。入出力制御回路６０は、読み出しコマンドを受けた場合、複数の制御信号ＲＣＮＴを生成し、パリティ制御回路４０、５０から出力される３２ビットの出力データＤＯ０−ＤＯ３１のうちの８ビットを２ビットのアドレスＡ０−Ａ１に応じて選択する。入出力制御回路６０は、選択したデータを直列に変換し、出力端子ＳＯから順次に出力する。
【００４０】
入出力制御回路６０は、出力データＤＯ０−ＤＯ７を選択した場合、出力データＤＯ７、ＤＯ６、ＤＯ５、ＤＯ４、ＤＯ３、ＤＯ２、ＤＯ１、ＤＯ０の順に出力端子ＳＯに出力する。入出力制御回路６０は、出力データＤＯ８−ＤＯ１５を選択した場合、出力データＤＯ１５、ＤＯ１４、ＤＯ１３、ＤＯ１２、ＤＯ１１、ＤＯ１０、ＤＯ９、ＤＯ８の順に出力端子ＳＯに出力する。入出力制御回路６０は、出力データＤＯ１６−２３を選択した場合、出力データＤＯ２３、ＤＯ２２、ＤＯ２１、ＤＯ２０、ＤＯ１９、ＤＯ１８、ＤＯ１７、ＤＯ１６の順に出力端子ＳＯに出力する。入出力制御回路６０は、出力データＤＯ２４−ＤＯ３１を選択した場合、出力データＤＯ３１、ＤＯ３０、ＤＯ２９、ＤＯ２８、ＤＯ２７、ＤＯ２６、ＤＯ２５、ＤＯ２４の順に出力端子ＳＯに出力する。すなわち、入出力制御回路６０は、パリティ制御回路４０により誤りが訂正されたデータを、パリティ制御回路５０により誤りが訂正されたデータよりも先に出力する。
【００４１】
入出力制御回路６０は、書き込みコマンドを受けた場合、アドレスに続いて８ビットの直列データ（書き込みデータ）を、入力端子ＳＩを介して順次に受け、複数の制御信号ＷＣＮＴを生成する。入出力制御回路６０は、入力端子ＳＩを介して受けた先頭の１ビットのデータを入力データＤＩ０７としてパリティ制御回路４０に出力し、残りの７ビットのデータを入力データＤＩ０６−ＤＩ００としてパリティ制御回路５０に出力する。
【００４２】
なお、半導体記憶装置ＭＥＭ２は、Ｉ２Ｃ（Inter-Integrated Circuit）等の他のシリアルインタフェース方式が採用されてもよい。Ｉ２Ｃ方式では、データを直列に入出力する双方向の入出力端子が、入力端子ＳＩおよび出力端子ＳＯの代わりに設けられる。また、Ｉ２Ｃ方式では、半導体記憶装置ＭＥＭ２を識別するためのデバイスアドレスコードを受けるデバイスアドレス端子が、チップセレクト端子／ＣＳの代わりに設けられる。そして、半導体記憶装置ＭＥＭ２は、デバイスアドレスコードをデコードし、自身へのアクセスを認識するデコーダを有する。
【００４３】
図４は、図３に示す入出力制御回路６０の一例を示す。入出力制御回路６０は、入力制御回路６２、内部クロック生成回路６４、選択回路６６および出力制御回路６８を有する。入力制御回路６２は、読み出し動作時および書き込み動作時に動作する。内部クロック生成回路６４は、入力制御回路６２からの制御に基づいて動作する。選択回路６６および出力制御回路６８は、読み出し動作時に動作する。
【００４４】
入力制御回路６２は、チップセレクト／ＣＳがロウレベルの期間に動作し、入力端子ＳＩを介して供給される情報（コマンド、アドレス、データ等）をクロックＳＣＫに同期して受ける。入力制御回路６２は、シフトレジスタＳＦＴＲＩおよびコマンドデコーダＣＤＥＣを有する。シフトレジスタＳＦＴＲＩは、入力端子ＳＩに供給される情報を下位ビットＬＳＢ側から上位ビットＭＳＢ側に順次に保持する８ビットの記憶領域を有する。シフトレジスタＳＦＴＲＩは、保持した情報をコマンドＣＭＤ、内部アドレスＩＡ０−ＩＡ５、アドレスＡ０−Ａ１および入力データＤＩ００−ＤＩ０７として出力する。入力制御回路６２は、入力回路の一例である。
【００４５】
コマンドデコーダＣＤＥＣは、チップセレクト／ＣＳがロウレベルになった後に最初にシフトレジスタＳＦＴＲＩに保持された８ビットをコマンドＣＭＤ（オペコード）として受ける。コマンドデコーダＣＤＥＣは、コマンドＣＭＤが読み出しコマンド（読み出し要求）を示す場合、複数の制御信号ＲＣＮＴを生成し、コマンドＣＭＤが書き込みコマンド（書き込み要求）を示す場合、複数の制御信号ＷＣＮＴを生成する。
【００４６】
内部クロック生成回路６４は、読み出しコマンドまたは書き込みコマンドを受けてから所定のクロックサイクル後に内部クロックＩＣＫを生成する。内部クロックＩＣＫが生成されるクロックサイクルは、制御信号ＲＮＣＴ、ＷＮＣＴの受信タイミングに応じて設定される。図３で説明したように、内部クロックＩＣＫが生成されるクロックサイクルは、アドレスデコーダ２０が動作を開始するタイミングを示す。
【００４７】
選択回路６６は、読み出し動作において動作し、パリティ制御回路４０、５０から出力される出力データＤＯ０−ＤＯ３１のうちの８ビットをアドレスＡ０−Ａ１に応じて選択し、選択したデータを出力データＤＯＵＴとして出力制御回路６８に出力する。例えば、選択回路６６は、アドレスＡ０−Ａ１の値が”０”の場合、出力データＤＯ０−ＤＯ７を選択し、アドレスＡ０−Ａ１の値が”１”の場合、出力データＤＯ８−ＤＯ１５を選択する。選択回路６６は、アドレスＡ０−Ａ１の値が”２”の場合、出力データＤＯ１６−ＤＯ２３を選択し、アドレスＡ０−Ａ１の値が”３”の場合、出力データＤＯ２４−ＤＯ３１を選択する。
【００４８】
出力制御回路６８は、８ビットの出力データＤＯＵＴを保持するシフトレジスタＳＦＴＲＯを有する。シフトレジスタＳＦＴＲＯは、保持した出力データＤＯＵＴを上位ビットＭＳＢから下位ビットＬＳＢの順に、クロックＳＣＫに同期して出力端子ＳＯに出力する。例えば、出力データＤＯＵＴが出力データＤＯ０−ＤＯ７の場合、データＤＯ７、ＤＯ６、ＤＯ５、ＤＯ４、ＤＯ３、ＤＯ２、ＤＯ１、ＤＯ０の順に出力端子ＳＯに出力される。出力制御回路６８は、出力回路の一例である。
【００４９】
図５は、図３に示すパリティ制御回路４０の一例を示す。パリティ制御回路４０は、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１のいずれか１ビットの誤りを検出し、検出した誤りを訂正する機能を有する。パリティ制御回路４０は、読み出しパリティ生成回路４１、シンドローム生成回路４２、シンドロームデコーダ４３、誤り訂正回路４４、置き換え回路４５および書き込みパリティ生成回路４６を有する。読み出しパリティ生成回路４１、シンドローム生成回路４２、シンドロームデコーダ４３および誤り訂正回路４４は、第１の誤り訂正回路の一例である。
【００５０】
読み出しパリティ生成回路４１は、４ビットの読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１を用いて３ビットの読み出しパリティデータＲＰ００−ＲＰ０２を生成する。そして、読み出しパリティ生成回路４１は、生成した読み出しパリティデータＲＰ００−ＲＰ０２をシンドローム生成回路４２に出力する。シンドローム生成回路４２は、読み書き制御回路３０を介してメモリセルアレイ１０から読み出される読み出しパリティデータＲＰ０−ＲＰ２と読み出しパリティデータＲＰ００−ＲＰ０２との排他的論理和を演算し、シンドロームＳ０−Ｓ２を生成する。シンドローム生成回路４２は、生成したシンドロームＳ０−Ｓ２をシンドロームデコーダ４３に出力する。
【００５１】
シンドロームデコーダ４３は、シンドロームＳ０−Ｓ２で示される論理値をデコードし、誤りが発生したビットを示す誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１のいずれかを生成する。シンドロームデコーダ４３は、生成した誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１のいずれかを誤り訂正回路４４に出力する。誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１のそれぞれは、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１のそれぞれに誤りがあることを示す。
【００５２】
誤り訂正回路４４は、誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１で示される読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１のいずれかの誤りを訂正し、訂正したデータを含む出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１を出力する。
【００５３】
置き換え回路４５は、書き込み動作において、アドレスＡ０−Ａ１の値に対応する出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１のいずれかを入力データＤＩ０７（書き込みデータ）に置き換える。そして、置き換え回路４５は、置き換えたデータを含む書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を出力する。書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１は、メモリセルアレイ１０に書き込むために図３に示す読み書き制御回路３０に出力される。
【００５４】
置き換え回路４５は、アドレスＡ０−Ａ１の値が”０”の場合、出力データＤＯ７を入力データＤＩ０７に置き換え、アドレスＡ０−Ａ１の値が”１”の場合、出力データＤＯ１５を入力データＤＩ０７に置き換える。置き換え回路４５は、アドレスＡ０−Ａ１の値が”２”の場合、出力データＤＯ２３を入力データＤＩ０７に置き換え、アドレスＡ０−Ａ１の値が”３”の場合、出力データＤＯ３１を入力データＤＩ０７に置き換える。
【００５５】
書き込みパリティ生成回路４６は、４ビットの書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を用いて３ビットの書き込みパリティデータＷＰ０−ＷＰ２を生成する。書き込みパリティ生成回路４６は、生成した書き込みパリティデータＷＰ０−ＷＰ２をメモリセルアレイ１０に書き込むために図３に示す読み書き制御回路３０に出力する。書き込みパリティ生成回路４６は、書き込みパリティデータＷＰ０−ＷＰ２を生成するパリティ生成回路の一例である。
【００５６】
図６は、図５に示す読み出しパリティ生成回路４１、書き込みパリティ生成回路４６、シンドローム生成回路４２およびシンドロームデコーダ４３で使用されるパリティ検査行列の一例を示す。図６に示すパリティ検査行列は、ハミング符号方式によるパリティ検査に使用される。
【００５７】
読み出しパリティ生成回路４１は、パリティ検査行列の（ａ）列から（ｄ）列の論理を用いて、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の読み出しパリティデータＲＰ００−ＲＰ０２を生成する。書き込みパリティ生成回路４６は、（ａ）列から（ｄ）列の論理を用いて、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１の書き込みパリティデータＷＰ０−ＷＰ２を生成する。
【００５８】
シンドローム生成回路４２は、（ｅ）列から（ｇ）列の論理を用いて、読み出しパリティデータＲＰ００−ＲＰ０２と読み出しパリティデータＲＰ０−ＲＰ２とからシンドロームＳ０−Ｓ２を生成する。シンドロームデコーダ４３は、（ａ）列から（ｄ）列の論理を用いて、誤りが発生したビットをシンドロームＳ０−Ｓ２から特定する。
【００５９】
図７は、図５に示す読み出しパリティ生成回路４１、シンドローム生成回路４２、シンドロームデコーダ４３および誤り訂正回路４４の一例を示す。
【００６０】
読み出しパリティ生成回路４１は、図６に示す（ａ）列から（ｄ）列のパリティ検査行列の論理に対応する排他的論理和ゲートを有する。読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１は、（ａ）列から（ｄ）列のそれぞれに対応し、読み出しパリティデータＲＰ００−ＲＰ０２は、パリティ検査行の第１行から第３行に対応する。読み出しパリティ生成回路４１は、各行において論理１で示される列に対応する読み出しデータ（ＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１のいずれか３つ）の排他的論理和を演算する。そして、読み出しパリティ生成回路４１は、得られた排他的論理和の論理を読み出しパリティデータＲＰ００−ＲＰ０２として出力する。
【００６１】
シンドローム生成回路４２は、図６に示す（ｅ）列から（ｇ）列のパリティ検査行列の論理に対応する排他的論理和ゲートを有する。読み出しパリティデータＲＰ０、ＲＰ１、ＲＰ２は、（ｅ）列から（ｇ）列のそれぞれに対応し、読み出しパリティデータＲＰ００、ＲＰ０１、ＲＰ０２は、パリティ検査行の第１行から第３行に対応する。シンドローム生成回路４２は、（ｅ）列から（ｇ）列において、論理１に対応する読み出しパリティデータ（ＲＰ０−ＲＰ２のいずれか）と読み出しパリティデータ（ＲＰ００−ＲＰ０２のいずれか）の排他的論理和を演算する。そして、シンドローム生成回路４２は、得られた排他的論理和の論理をシンドロームＳ０−Ｓ２として出力する。
【００６２】
シンドロームデコーダ４３は、図６に示す（ａ）列から（ｄ）列のパリティ検査行列の論理に対応するデコード回路を有する。誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１は、（ａ）列から（ｄ）列のそれぞれに対応し、シンドロームＳ０、Ｓ１、Ｓ２は、パリティ検査行の第１行から第３行に対応する。シンドロームデコーダ４３は、（ａ）列の論理を用いて誤りビット情報Ｅ７を生成し、（ｂ）列の論理を用いて誤りビット情報Ｅ１５を生成し、（ｃ）列の論理を用いて誤りビット情報Ｅ２３を生成し、（ｄ）列の論理を用いて誤りビット情報Ｅ３１を生成する。
【００６３】
誤り訂正回路４４は、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１と誤りビット情報Ｅ７、Ｅ１５、Ｅ２３、Ｅ３１とのそれぞれを受ける４つの排他的論理和ゲートを有する。そして、誤り訂正回路４４は、誤りビット情報Ｅ７（または、Ｅ１５、Ｅ２３、Ｅ３１）が論理１の場合に、読み出しデータＲＤ７（または、ＲＤ１５、ＲＤ２３、ＲＤ３１）の論理を反転することで、誤りを訂正する。誤り訂正回路４４は、誤りを訂正したデータを出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１として出力する。
【００６４】
なお、読み出し動作において、誤りを訂正したデータを出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１をメモリセルアレイ１０に書き戻す手法が、半導体記憶装置ＭＥＭ２に適用される場合がある。この場合、読み出しパリティデータＲＰ０−ＲＰ２の誤りも訂正され、メモリセルアレイ１０に書き戻される。読み出しパリティデータＲＰ０−ＲＰ２の誤りを訂正するために、図６に示す（ａ）列から（ｇ）列のパリティ検査行列の論理に対応するデコード回路が、シンドロームデコーダ４３に設けられる。また、シンドロームデコーダ４３により誤りが検出された読み出しパリティデータＲＰ０−ＲＰ２のいずれかのビットを反転する排他的論理和ゲートが、誤り訂正回路４４に設けられる。出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１および誤りが訂正された読み出しパリティデータＲＰ０−ＲＰ２は、図５に示す置き換え回路４５および書き込みパリティ生成回路４６を介することなくメモリセルアレイ１０に書き戻される。
【００６５】
また、図７では、読み出しパリティ生成回路４１およびシンドローム生成回路４２は、図６に示すパリティ検査行列の論理に対応して排他的論理和ゲートを直列に配置しているが、排他的論理和ゲートは、並列に配置されてもよい。
【００６６】
図８は、図７に示す読み出しパリティ生成回路４１およびシンドローム生成回路４２を融合し、排他的論理和ゲートを並列に配置した場合の一例を示す。排他的論理和ゲートを並列に配置することで、シンドロームＳ０−Ｓ２の各々を生成するために直列に接続される排他的論理和ゲートの段数を、図７の３段から２段にすることができる。
【００６７】
なお、３２ビットの読み出しデータＲＤ０−ＲＤ３１の１ビットの誤りを、１つの誤り訂正回路を使用してハミング符号方式により訂正する場合を考える。この場合、誤り訂正回路に設けられる排他的論理和ゲートの最大の段数は、直列接続の場合で１８段、並列接続の場合で５段になる。したがって、排他的論理和ゲートの最大の接続段数を、１つの誤り訂正回路を使用する場合に比べて、直列接続の場合に１８段から３段に削減することができ、並列接続の場合に５段から２段に削減することができる。この結果、誤りの訂正時間の短縮効果は、排他的論理和ゲートの１５段分または３段分に相当する時間になり、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤りの訂正時間を、１つの誤り訂正回路を使用する場合に比べて短縮することができる。
【００６８】
図９は、図５に示す置き換え回路４５および書き込みパリティ生成回路４６の一例を示す。置き換え回路４５は、デコーダＤＥＣおよびセレクタＳＥＬを有する。デコーダＤＥＣは、アドレスＡ０−Ａ１の論理に応じて、入力データＤＩ０７（書き込みデータ）を書き込むビット位置を求める。
【００６９】
セレクタＳＥＬは、デコーダＤＥＣが求めたビット位置に基づいて、出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１のいずれかを入力データＤＩ０７に置き換える４つのスイッチ回路を有する。例えば、各スイッチ回路は、一対のＣＭＯＳ（Complementary Metal Oxide Semiconductor）伝達ゲートを有する。そして、セレクタＳＥＬは、置き換えた入力データＤＩ０７を含む書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を書き込みパリティ生成回路４６に出力する。
【００７０】
書き込みパリティ生成回路４６は、図７に示す読み出しパリティ生成回路４１と同じ論理を有する。書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１は、図６に示すパリティ検査行列の（ａ）列から（ｄ）列のそれぞれに対応し、書き込みパリティデータＷＰ０−ＷＰ２は、パリティ検査行の第１行から第３行に対応する。書き込みパリティ生成回路４６は、各行において論理１で示される列に対応する書き込みデータ（ＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１のいずれか３つ）の排他的論理和を演算する。そして、書き込みパリティ生成回路４６は、得られた排他的論理和の論理を書き込みパリティデータＷＰ０−ＷＰ２として出力する。
【００７１】
図１０は、図３に示すパリティ制御回路５０の一例を示す。パリティ制御回路５０は、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０のいずれか１ビットの誤りを検出し、検出した誤りを訂正する機能を有する。パリティ制御回路５０は、図５に示すパリティ制御回路４０と同様の回路を有する。すなわち、パリティ制御回路５０は、読み出しパリティ生成回路５１、シンドローム生成回路５２、シンドロームデコーダ５３、誤り訂正回路５４、置き換え回路５５および書き込みパリティ生成回路５６を有する。読み出しパリティ生成回路５１、シンドローム生成回路５２、シンドロームデコーダ５３および誤り訂正回路５４は、第２の誤り訂正回路の一例である。
【００７２】
読み出しパリティ生成回路５１は、２８ビットの読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０を用いて６ビットの読み出しパリティデータＲＰ０３−ＲＰ０８を生成する。シンドローム生成回路５２は、読み書き制御回路３０を介してメモリセルアレイ１０から読み出される読み出しパリティデータＲＰ３−ＲＰ８と読み出しパリティデータＲＰ０３−ＲＰ０８との排他的論理和を演算し、シンドロームＳ３−Ｓ８を生成する。
【００７３】
シンドロームデコーダ５３は、シンドロームＳ３−Ｓ８で示される論理値をデコードし、誤りが発生したビットを示す誤りビット情報Ｅ０−Ｅ６、Ｅ８−Ｅ１４、Ｅ１６−Ｅ２２、Ｅ２４−Ｅ３０のいずれかを生成する。誤りビット情報Ｅ０−Ｅ６、Ｅ８−Ｅ１４、Ｅ１６−Ｅ２２、Ｅ２４−Ｅ３０のそれぞれは、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０のそれぞれに誤りがあることを示す。
【００７４】
誤り訂正回路５４は、誤りビット情報Ｅ０−Ｅ６、Ｅ８−Ｅ１４、Ｅ１６−Ｅ２２、Ｅ２４−Ｅ３０で示される読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０のいずれかの誤りを訂正する。そして、誤り訂正回路５４は、訂正したデータを出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０として出力する。
【００７５】
置き換え回路５５は、書き込み動作において、アドレスＡ０−Ａ１の値に対応する出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０のいずれかの組を入力データＤＩ００−ＤＩ０６（書き込みデータ）に置き換える。そして、置き換え回路４５は、置き換えたデータを含む書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０を出力する。書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０は、メモリセルアレイ１０に書き込むために図３に示す読み書き制御回路３０に出力される。
【００７６】
置き換え回路５５は、アドレスＡ０−Ａ１の値が”０”の場合、出力データＤＯ０−ＤＯ６を入力データＤＩ００−ＤＩ０６に置き換え、アドレスＡ０−Ａ１の値が”１”の場合、出力データＤＯ８−ＤＯ１４を入力データＤＩ００−ＤＩ０６に置き換える。置き換え回路５５は、アドレスＡ０−Ａ１の値が”２”の場合、出力データＤＯ１６−ＤＯ２２を入力データＤＩ００−ＤＩ０６に置き換え、アドレスＡ０−Ａ１の値が”３”の場合、出力データＷＤ２４−ＷＤ３０を入力データＤＩ００−ＤＩ０６に置き換える。
【００７７】
書き込みパリティ生成回路５６は、２８ビットの書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０を用いて６ビットの書き込みパリティデータＷＰ３−ＷＰ８を生成する。書き込みパリティ生成回路５６は、生成した書き込みパリティデータＷＰ３−ＷＰ８をメモリセルアレイ１０に書き込むために図３に示す読み書き制御回路３０に出力する。書き込みパリティ生成回路５６は、書き込みパリティデータＷＰ３−ＷＰ８を生成するパリティ生成回路の一例である。
【００７８】
図１１は、図１０に示す読み出しパリティ生成回路５１、書き込みパリティ生成回路５６、シンドローム生成回路５２およびシンドロームデコーダ５３で使用されるパリティ検査行列の一例を示す。図１１に示すパリティ検査行列は、ハミング符号方式によるパリティ検査に使用される。
【００７９】
読み出しパリティ生成回路５１は、パリティ検査行列の（ａ）列から（ｂ１）列の２８列の論理を用いて、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０の読み出しパリティデータＲＰ０３−ＲＰ０８を生成する。読み出しパリティ生成回路５１は、図７に示す読み出しパリティ生成回路４１と同様に、（ａ）列から（ｂ１）列のパリティ検査行列の論理に対応する排他的論理和ゲートを有する。すなわち、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０は、（ａ）列から（ｂ１）列のそれぞれに対応し、読み出しパリティデータＲＰ０３−ＲＰ０８は、パリティ検査行の第１行から第６行に対応する。読み出しパリティ生成回路５１は、各行において論理１で示される列に対応する読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０の所定数の排他的論理和を演算する。そして、読み出しパリティ生成回路５１は、得られた排他的論理和の論理を読み出しパリティデータＲＰ０３−ＲＰ０８として出力する。
【００８０】
シンドローム生成回路５２は、（ｃ１）列から（ｈ１）列の６列の論理を用いて、読み出しパリティデータＲＰ３−ＲＰ８、ＲＰ０３−ＲＰ０８からシンドロームＳ３−Ｓ８を生成する。シンドローム生成回路５２は、図７に示すシンドローム生成回路４２と同様に、（ｃ１）列から（ｈ１）列のパリティ検査行列の論理に対応する排他的論理和ゲートを有する。すなわち、読み出しパリティデータＲＰ３−ＲＰ８は、（ｃ１）列から（ｈ１）列のそれぞれに対応し、読み出しパリティデータＲＰ０３−ＲＰ０８は、パリティ検査行の第１行から第６行に対応する。シンドローム生成回路５２は、（ｃ１）列から（ｈ１）列において、論理１に対応する読み出しパリティデータ（ＲＰ３−ＲＰ８のいずれか）と読み出しパリティデータ（ＲＰ０３−ＲＰ０８のいずれか）の排他的論理和を演算する。そして、シンドローム生成回路５２は、得られた排他的論理和の論理をシンドロームＳ３−Ｓ８として出力する。
【００８１】
シンドロームデコーダ５３は、（ａ）列から（ｂ１）列の２８列の論理を用いて、シンドロームＳ３−Ｓ８から誤りが発生したビットを特定する。シンドロームデコーダ５３の回路構成は、図７に示すシンドロームデコーダ４３と同様である。すなわち、誤りビット情報Ｅ０−Ｅ６、Ｅ８−Ｅ１４、Ｅ１６−Ｅ２２、Ｅ２４−Ｅ３０は、（ａ）列から（ｂ１）列のそれぞれに対応し、シンドロームＳ３−Ｓ８は、パリティ検査行の第１行から第６行に対応する。シンドロームデコーダ５３は、（ａ）列の論理を用いて誤りビット情報Ｅ０を生成し、（ｂ）列の論理を用いて誤りビット情報Ｅ１を生成し、．．．、（ｂ１）列の論理を用いて誤りビット情報Ｅ３０を生成する。
【００８２】
書き込みパリティ生成回路５６は、（ａ）列から（ｂ１）列の２８列の論理を用いて、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０の書き込みパリティデータＷＰ３−ＷＰ８を生成する。書き込みパリティ生成回路５６の論理は、読み出しパリティ生成回路５１の論理と同じである。書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０は、（ａ）列から（ｂ１）列のそれぞれに対応し、書き込みパリティデータＷＰ３−ＷＰ８は、パリティ検査行の第１行から第６行に対応する。
【００８３】
なお、図１０に示すパリティ検査行列の論理にしたがって、図７と同様に、読み出しパリティ生成回路５１およびシンドローム生成回路５２の論理を設計する場合、直列に接続される排他的論理和ゲートの段数は、最大で１７段になる。直列に接続される排他的論理和ゲートの段数は、パリティ検査行列の各行における論理１の個数から”１”を引いた数である。図８と同様に、読み出しパリティ生成回路５１およびシンドローム生成回路５２を融合し、排他的論理和ゲートを並列に配置する場合、排他的論理和ゲートの段数の最大値は、１７段から５段に削減される。
【００８４】
図１２は、図１０に示す誤り訂正回路５４の一例を示す。誤り訂正回路５４は、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０とビット情報Ｅ０−Ｅ６、Ｅ８−Ｅ１４、Ｅ１６−Ｅ２２、Ｅ２４−Ｅ３０とのそれぞれを受ける排他的論理和ゲートを有する。そして、誤り訂正回路５４は、図７に示す誤り訂正回路４４と同様に、誤りビット情報（例えば、Ｅ０）が論理１の場合に、読み出しデータ（例えば、ＲＤ０）の論理を反転することで、誤りを訂正する。誤り訂正回路５４は、誤りを訂正したデータを出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０として出力する。
【００８５】
なお、読み出し動作において、誤りを訂正したデータを出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０をメモリセルアレイ１０に書き戻す手法が、半導体記憶装置ＭＥＭ２に適用される場合がある。この場合、読み出しパリティデータＲＰ３−ＲＰ８の誤りも訂正され、メモリセルアレイ１０に書き戻される。読み出しパリティデータＲＰ３−ＲＰ８の誤りを訂正するために、図１１に示す（ｃ１）列から（ｈ１）列のパリティ検査行列の論理に対応するデコード回路が、シンドロームデコーダ５３に設けられる。また、シンドロームデコーダ５３により誤りが検出された読み出しパリティデータＲＰ３−ＲＰ８のいずれかのビットを反転する排他的論理和ゲートが、誤り訂正回路５４に設けられる。そして、出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０および誤りが訂正された読み出しパリティデータＲＰ３−ＲＰ８は、メモリセルアレイ１０に書き戻される。この際、図１０に示す置き換え回路５５および書き込みパリティ生成回路５６は、データの書き戻しに使用されない。
【００８６】
図１３は、図１０に示す置き換え回路５５の一例を示す。置き換え回路５５は、図９に示す置き換え回路４５と同様に、デコーダＤＥＣおよびセレクタＳＥＬを有する。デコーダＤＥＣは、図９に示すデコーダＤＥＣと同じである。
【００８７】
セレクタＳＥＬは、デコーダＤＥＣが求めたビット位置に基づいて、出力データＤＯ０、ＤＯ８、ＤＯ１６、ＤＯ２４のいずれかを入力データＤＩ００に置き換え、出力データＤＯ１、ＤＯ９、ＤＯ１７、ＤＯ２５のいずれかを入力データＤＩ０１に置き換える。また、セレクタＳＥＬは、出力データＤＯ２、ＤＯ１０、ＤＯ１８、ＤＯ２６のいずれかを入力データＤＩ０２に置き換え、出力データＤＯ３、ＤＯ１１、ＤＯ１９、ＤＯ２７のいずれかを入力データＤＩ０３に置き換える。セレクタＳＥＬは、出力データＤＯ４、ＤＯ１２、ＤＯ２０、ＤＯ２８のいずれかを入力データＤＩ０４に置き換え、出力データＤＯ５、ＤＯ１３、ＤＯ２１、ＤＯ２９のいずれかを入力データＤＩ０５に置き換える。そして、セレクタＳＥＬは、出力データＤＯ６、ＤＯ１４、ＤＯ２２、ＤＯ３０のいずれかを入力データＤＩ０６に置き換える。
【００８８】
図１４は、図３に示す半導体記憶装置ＭＥＭ２の読み出し動作の一例を示す。まず、図４に示すコマンドデコーダＣＤＥＣは、チップセレクト／ＣＳがロウレベルに変化した後の最初の８クロックサイクルで入力端子ＳＩを介して８ビットのデータ”００００００１１”を受ける（図１４（ａ））。コマンドデコーダＣＤＥＣは、データ”００００００１１”に基づいて読み出しコマンドを認識し、制御信号ＲＣＮＴを出力する（図１４（ｂ））。
【００８９】
次に、図４に示すシフトレジスタＳＦＴＲＩは、８番目から１３番目のクロックサイクルで入力端子ＳＩを介してアドレスＡ７−Ａ２を受ける（図１４（ｃ））。図４に示す内部クロック生成回路６４は、１４番目のクロックサイクルで内部クロックＩＣＫを出力する（図１４（ｄ））。
【００９０】
アドレスデコーダ２０は、内部クロックＩＣＫに同期して、アドレスＡ７−Ａ２を内部アドレスＩＡ５−ＩＡ０として受け、デコード動作を開始する（図１４（ｅ））。メモリセルアレイ１０は、アドレスデコーダ２０によるデコードの結果に基づいて読み出し動作を開始する。そして、図３に示す読み書き制御回路３０は、１４番目のクロックサイクル中に、内部アドレスＩＡ５−ＩＡ０が示す記憶領域から読み出した読み出しデータＲＤ０−ＲＤ３１と読み出しパリティデータＲＰ０−ＲＰ８とを出力する（図１４（ｆ））。シフトレジスタＳＦＴＲＩは、１４番目と１５番目のクロックサイクルで３２ビットの読み出しデータＲＤ０−ＲＤ３１のうちの８ビットを選択するためのアドレスＡ１、Ａ０を受ける（図１４（ｇ））。
【００９１】
図３に示すパリティ制御回路４０は、１４番目のクロックサイクルで、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤りを読み出しパリティデータＲＰ０−ＲＰ２を用いて訂正する。パリティ制御回路４０は、誤りを訂正した読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１を出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１として出力する（図１４（ｈ））。
【００９２】
図３に示すパリティ制御回路５０は、１４番目のクロックサイクルで、読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０の誤りを読み出しパリティデータＲＰ３−ＲＰ８を用いて訂正する。パリティ制御回路５０は、誤りを訂正した読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０を出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０として出力する（図１４（ｉ））。ここで、パリティ制御回路４０による誤りの訂正時間は、パリティ制御回路５０による誤りの訂正時間より短い。このため、出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１の出力時刻は、出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０の出力時刻より早い。
【００９３】
図４に示す選択回路６６は、１４番目から１５番目のクロックサイクルにかけて、アドレスＡ１−Ａ０に基づいて、誤りが訂正された読み出しデータＲＤ０−ＲＤ３１のうちの８ビットを選択し、シフトレジスタＳＦＴＲＯに転送する（図１４（ｊ））。図１４に示す例では、選択回路６６は、アドレスＡ１−Ａ０＝”００”に基づいて、読み出しデータＲＤ０−ＲＤ７（データＤ０−Ｄ７）を選択する。
【００９４】
例えば、選択回路６６からシフトレジスタＳＦＴＲＯへの読み出しデータＲＤ７−ＲＤ０の転送は、誤りの訂正時間に応じて変化する。読み出しデータＲＤ７は、読み出しデータＲＤ６−ＲＤ０に比べて誤りの訂正時間が短いため、シフトレジスタＳＦＴＲＯへの転送時刻は、読み出しデータＲＤ６−ＲＤ０の転送時刻に比べて早い。図１４では、読み出しデータＲＤ６−ＲＤ０がシフトレジスタＳＦＴＲＯに転送されるタイミングを斜線の矩形で示す。
【００９５】
シフトレジスタＳＦＴＲ０は、１６番目のクロックサイクルで、データＤ７を出力端子ＳＯに出力する（図１４（ｋ））。この後、シフトレジスタＳＦＴＲ０は、１７番目から２３番目のクロックサイクルで、データＤ６−Ｄ０を出力端子ＳＯに順次に出力する（図１４（ｌ））。そして、クロックＳＣＫが停止し、チップセレクト／ＣＳがハイレベルに変化し、読み出し動作が完了する。
【００９６】
なお、読み出しデータＲＤ６−ＲＤ０に対応するデータＤ６−Ｄ０は、データＤ７が出力端子ＳＯ７から出力されるタイミングで、シフトレジスタＳＦＴＲＯに格納されていなくてもよい。データＤ６−Ｄ０は、１６番目のクロックＳＣＫの立ち上がりエッジまでにシフトレジスタＳＦＴＲＯに格納されていればよい。
【００９７】
例えば、データＤ６−Ｄ０のシフトレジスタＳＦＴＲＯへの格納タイミングが、１６番目のクロックＳＣＫの立ち上がりエッジまでに間に合わないことが予め分かっているとする。この場合、選択回路６６は、シフトレジスタＳＦＴＲＯにおいて、最上位ビット側に１ビットずらした位置にデータＤ６−Ｄ０を格納してもよい。ビット位置をずらすために、図４において、例えば、データＤ６−Ｄ０に対応する出力データＤＯＵＴを、１６番目のクロックＳＣＫの立ち上がりエッジに同期して、最上位ビット側に１ビットずらす切り替え回路が設けられる。
【００９８】
図１５は、図１４に示す読み出し動作の要部の一例を示す。図１５の上側の波形は、図３に示す半導体記憶装置ＭＥＭ２の動作（すなわち、図１４の動作）を示し、図１５の下側の波形は、読み出しデータＲＤ０−ＲＤ３１の誤りを１つの誤り検出回路で一度に訂正する半導体記憶装置の動作（比較例）を示す。
【００９９】
アドレスデコーダ２０は、内部クロックＩＣＫの立ち上がりエッジに同期して、１４番目のクロックサイクルでアドレスＩＡ０−ＩＡ５をデコードする動作を開始する。また、最初のデータＤ７は、１６番目のクロックサイクルで出力端子ＳＯに出力される。このため、アドレスデコーダ２０とメモリセルアレイ１０との動作期間、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤り訂正期間およびデータＤ７の選択期間の合計が２クロックサイクル以下になるように、クロックＳＣＫの周波数が設定される。以下、アドレスデコーダ２０とメモリセルアレイ１０との動作期間、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤り訂正期間およびデータＤ７の選択期間の合計は、内部動作期間と称される。
【０１００】
２クロックサイクルの周期は、クロックＳＣＫの周波数を”ｆ”とすると、”２／ｆ”で表される。内部動作期間は周期２／ｆ以下を満たすため（２／ｆ≧内部動作期間）、半導体記憶装置ＭＥＭ２のクロックＳＣＫの最大周波数ｆｍａｘは、”２／内部動作期間”になる。例えば、内部動作期間が８０ナノ秒の場合、クロックＳＣＫの最大周波数ｆｍａｘは、２５ＭＨｚ（メガヘルツ）になる。
【０１０１】
一方、メモリセルアレイ１０から出力される３２ビットの読み出しデータＲＤ０−ＲＤ３１の誤りを１つの誤り検出回路で一度に訂正する場合、誤り検出回路の回路規模は、図５から図９に示すパリティ制御回路４０の回路規模より大きくなる。例えば、誤り検出回路に設けられる読み出しパリティ生成回路およびシンドローム生成回路において、直列に接続される排他的論理和ゲートの数は増加する。これにより、読み出しデータＲＤ０−ＲＤ３１の誤り訂正期間は、図１５の上側の波形に比べて長くなる。アドレスデコーダ、メモリセルアレイの動作期間、読み出しデータＲＤ０−ＲＤ３１の誤り訂正期間およびデータＤ７の選択期間の合計は、図１５の上側の波形においても、２クロックサイクル以下に制限される。この結果、クロックＳＣＫの周期は、図１５の上側の波形に比べて長くなり、クロックＳＣＫの周波数は、図１５の上側の波形に比べて低くなる。換言すれば、図３に示す半導体記憶装置ＭＥＭ２では、クロックＳＣＫの周波数を従来に比べて高くすることができ、データの読み出し時間を短縮することができる。
【０１０２】
なお、図３に示す半導体記憶装置ＭＥＭ２では、出力端子ＳＯから順次に出力される８ビットのデータＤ７−Ｄ０の４倍の読み出しデータＲＤ０−ＲＤ３１がメモリセルアレイ１０から出力される。入力端子ＳＩで順次に受けるアドレスＡ０−Ａ１は、３２ビットの読み出しデータＲＤ０−ＲＤ３１のうちの８ビットを選択するために使用され、アドレスデコーダ２０では使用されない。このため、アドレスＡ０−Ａ１が供給される２クロックサイクルは、内部動作期間に割り当てられる。
【０１０３】
例えば、メモリセルアレイから出力される６４ビットの読み出しデータＲＤ０−ＲＤ６３のうちの８ビットを選択して出力端子ＳＯから出力する半導体記憶装置では、３クロックサイクルが内部動作期間に割り当て可能である。メモリセルアレイから出力される１６ビットの読み出しデータＲＤ０−ＲＤ１５のうちの８ビットを選択して出力端子ＳＯから出力する半導体記憶装置では、１クロックサイクルが内部動作期間に割り当て可能である。メモリセルアレイから出力される読み出しデータのビット数が”２のｎ乗（ｎは４以上の整数）であり、出力端子ＳＯから８ビットのデータが順次に出力される場合、クロックＳＣＫの最大周波数は、”（ｎ−３）／内部動作期間”で表される。
【０１０４】
図１６は、図３に示す半導体記憶装置ＭＥＭ２の書き込み動作の一例を示す。図１４と同様の動作については、詳細な説明は省略する。
【０１０５】
書き込み動作を実行する書き込みコマンドは、チップセレクト／ＣＳがロウレベルに変化した後の最初の８クロックサイクルで入力端子ＳＩを介して受ける８ビットのデータ”００００００１０”により認識される（図１６（ａ））。コマンドデコーダＣＤＥＣは、データ”００００００１０”に基づいて書き込みコマンドを認識し、制御信号ＷＣＮＴを出力する（図１６（ｂ））。
【０１０６】
次に、シフトレジスタＳＦＴＲＩは、８番目から１３番目のクロックサイクルで入力端子ＳＩからアドレスＡ７−Ａ２を受け、受けたアドレスＡ７−Ａ２を内部アドレスＩＡ５−ＩＡ０としてアドレスデコーダ２０に出力する（図１６（ｃ））。内部クロック生成回路６４は、１４番目のクロックサイクルに内部クロックＩＣＫを出力する（図１６（ｄ））。
【０１０７】
アドレスデコーダ２０は、内部クロックＩＣＫに同期してデコード動作を開始し、メモリセルアレイ１０は、アドレスデコーダ２０によるデコードの結果に基づいて書き込み動作を開始する（図１６（ｅ））。この後、図１４と同様に、パリティ制御回路４０、５０により、読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１および読み出しデータＲＤ０−ＲＤ６、ＲＤ８−ＲＤ１４、ＲＤ１６−ＲＤ２２、ＲＤ２４−ＲＤ３０の誤りがそれぞれ訂正される。パリティ制御回路４０、５０は、誤りが訂正された出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１および出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０をそれぞれ出力する（図１６（ｆ）、（ｇ））。
【０１０８】
シフトレジスタＳＦＴＲＩは、１４番目と１５番目のクロックサイクルで、８ビットの書き込みデータを３２ビット中のいずれの８ビットの位置に書き込むかを示すアドレスＡ１、Ａ０を受ける（図１６（ｈ））。
【０１０９】
この後、シフトレジスタＳＦＴＲＩは、１６番目から２３番目のクロックサイクルで、８ビットの書き込みデータＤ７−Ｄ０を順次に受ける（図１６（ｉ））。図５に示す置き換え回路４５は、出力データＤＯ７、ＤＯ１５、ＤＯ２３、ＤＯ３１のいずれかをシフトレジスタＳＦＴＲＩから受けるデータＤＩ００に置き換え、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１を生成する（図１６（ｊ））。図５に示す書き込みパリティ回路４６は、書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１の書き込みパリティデータＷＰ０−ＷＰ２を生成する。
【０１１０】
一方、図１０に示す置き換え回路５５は、出力データＤＯ０−ＤＯ６、ＤＯ８−ＤＯ１４、ＤＯ１６−ＤＯ２２、ＤＯ２４−ＤＯ３０のいずれか７ビットをシフトレジスタＳＦＴＲＩから受けるデータＤＩ００−ＤＩ０６で置き換える。そして、置き換え回路５５は、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０を生成する（図１６（ｋ））。図１０に示す書き込みパリティ回路５６は、書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０の書き込みパリティデータＷＰ３−ＷＰ８を生成する。
【０１１１】
そして、書き込みデータＷＤ０−ＷＤ３１および書き込みパリティデータＷＰ０−ＷＰ８がメモリセルアレイ１０に書き込まれる。書き込みデータＤ０が入力端子ＳＩに供給された後、クロックＳＣＫが停止し、チップセレクト／ＣＳがハイレベルに変化し、書き込み動作が完了する。なお、メモリセルアレイ１０への書き込みデータＷＤ０−ＷＤ３１および書き込みパリティデータＷＰ０−ＷＰ８の書き込みは、チップセレクト／ＣＳがハイレベルに変化した後に完了されてもよい。
【０１１２】
以上、図３から図１６に示す実施形態においても、図１および図２に示す実施形態と同様に、読み出しコマンドを受けてから先頭データ（例えば、Ｄ７）を出力するまでの時間を従来に比べて短縮することができる。この結果、半導体記憶装置ＭＥＭ２の性能を向上することができる。
【０１１３】
さらに、図３から図１６に示す実施形態では、誤り訂正回路４４は、出力端子ＳＯから出力する先頭データとなる４ビットのデータ（Ｄ７、Ｄ１５、Ｄ２３、Ｄ３１）の誤りを訂正し、誤り訂正回路５４は、先頭データに続く２８ビットのデータの誤りを訂正する。これにより、先頭データの誤りを訂正する誤り訂正回路４４の回路規模を誤り訂正回路５４の回路規模より小さくすることができ、誤り訂正回路４４による誤りの訂正時間を、誤り訂正回路５４による誤りの訂正時間より短くできる。この結果、出力端子ＳＯから出力する最初のデータ（例えば、Ｄ７）の出力タイミングを、従来に比べて速くすることができる。
【０１１４】
メモリセルアレイ１０から出力される３２ビットのデータのうちの８ビットを選択回路６６により選択する半導体記憶装置ＭＥＭ２においても、先頭データの出力端子ＳＯからの出力タイミングを、従来に比べて早くすることができる。この際、誤り訂正回路４４は、出力端子ＳＯから出力する先頭データとなる読み出しデータＲＤ７、ＲＤ１５、ＲＤ２３、ＲＤ３１の誤りを訂正する。これにより、アドレスＡ０−Ａ１により選択される先頭データに拘わらず、先頭データの出力タイミングを従来に比べて早くすることができる。
【０１１５】
置き換え回路４５、５５は、誤りが訂正された読み出しデータの一部を入力端子ＳＩで受けた書き込みデータで置き換える。これにより、入力端子ＳＩで受ける書き込みデータよりビット幅が大きいデータＤ０−Ｄ３１をメモリセルアレイ１０に記憶する場合にも、書き込みデータとパリティデータとの整合性を保持することができる。
【０１１６】
置き換え回路４５および書き込みパリティ生成回路４６は、先頭データに対応する書き込みデータＷＤ７、ＷＤ１５、ＷＤ２３、ＷＤ３１の書き込みパリティデータＷＰ０−ＷＰ２を生成する。置き換え回路５５および書き込みパリティ生成回路５６は、先頭データに続く後続のデータに対応する書き込みデータＷＤ０−ＷＤ６、ＷＤ８−ＷＤ１４、ＷＤ１６−ＷＤ２２、ＷＤ２４−ＷＤ３０の書き込みパリティデータＷＰ３−ＷＰ８を生成する。これにより、誤り訂正回路４４、５４による誤り訂正で使用するパリティデータＰ０−Ｐ２、Ｐ３−Ｐ８のそれぞれをメモリセルアレイ１０に保持させることができ、誤り訂正回路４４、５４による誤り訂正を正常に実行することができる。
【０１１７】
図１７は、半導体記憶装置および半導体記憶装置の制御方法の別の実施形態を示す。図３から図１６に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１１８】
この実施形態の半導体記憶装置ＭＥＭ３は、８ビットのデータＤ０−Ｄ７と、データＤ７の誤りを訂正するためのパリティデータＰ０−Ｐ１と、データＤ０−Ｄ６の誤りを訂正するためのパリティデータＰ２−Ｐ５とを記憶するメモリセルアレイ１０ａを有する。例えば、メモリセルアレイ１０ａは、６ビットのアドレスＩＡ０−ＩＡ５に応じて、６４個のデータ群Ｄ０−Ｄ７（すなわち、５１２ビット）を保持する複数のメモリセルを有する。
【０１１９】
アドレスデコーダ２０は、図３のアドレスデコーダ２０と同じである。読み書き制御回路３０ａは、メモリセルアレイ１０ａに入出力するデータのビット幅が１４ビットであることを除き、図３に示す読み書き制御回路３０と同様の機能を有する。
【０１２０】
パリティ制御回路４０ａは、図５に示す置き換え回路４５を持たないことを除き、図５に示すパリティ制御回路４０と同様の回路である。パリティ制御回路５０ａは、図１０に示す置き換え回路５５を持たないことを除き、図１０に示すパリティ制御回路５０と同様の回路である。半導体記憶装置ＭＥＭ３では、メモリセルアレイ１０ａに対して入出力されるデータＤ０−Ｄ７のビット数は、入力端子ＳＩで受ける書き込みデータのビット数および出力端子ＳＯに出力される読み出しデータのビット数と等しい。このため、パリティ制御回路４０ａは、図５に示す置き換え回路４５を持たず、パリティ制御回路５０ａは、図１０に示す置き換え回路５５を持たない。パリティ制御回路４０ａ、５０ａは、読み出しデータと書き込みデータとの合成をしないため、図３に示すアドレスＡ０−Ａ１を受けない。
【０１２１】
パリティ制御回路４０ａは、読み出し動作時に、読み出しデータＲＤ７の誤りを読み出しパリティデータＲＰ０−ＲＰ１を用いて訂正して出力データＤＯ７を生成し、先頭データとして出力端子ＳＯに出力する。パリティ制御回路４０ａは、書き込み動作時に、入力端子ＳＩを介して受ける先頭の入力データＤＩ０７の書き込みパリティデータＷＰ０−ＷＰ１を生成し、入力データＤＩ０７と書き込みパリティデータＷＰ０−ＷＰ１とをメモリセルアレイ１０ａに出力する。
【０１２２】
パリティ制御回路５０ａは、読み出し動作時に、読み出しデータＲＤ０−ＲＤ６の誤りを読み出しパリティデータＲＰ２−ＲＰ５を用いて訂正して出力データＤＯ０−ＤＯ６を生成し、先頭データ（Ｄ７）に続いて出力端子ＳＯに出力する。パリティ制御回路５０ａは、書き込み動作時に、入力端子ＳＩを介して入力データＤＩ０７に続いて受ける入力データＤＩ０６−ＤＩ００の書き込みパリティデータＷＰ２−ＷＰ５を生成する。そして、パリティ制御回路５０ａは、入力データＤＩ０６−ＤＩ００と書き込みパリティデータＷＰ２−ＷＰ５とをメモリセルアレイ１０ａに出力する。
【０１２３】
入出力制御回路６０ａは、図４に示す選択回路６６を持たないことを除き、図４に示す選択回路６６と同様の回路である。入出力制御回路６０ａの例は、図１８に示す。
【０１２４】
図１８は、図１７に示す入出力制御回路６０ａの一例を示す。入出力制御回路６０ａは、選択回路６６を持たないことを除き、図４に示す入出力制御回路６０と同様である。すなわち、シフトレジスタＳＦＴＲＯは、図１７に示すパリティ制御回路５０ａから出力される出力データＤＯ０−ＤＯ７を直接受ける。また、図４に示すアドレスＡ０−Ａ１は、入力端子ＳＩに供給されないため、シフトレジスタＳＦＴＲＩは、アドレスＡ０−Ａ１を出力しない。
【０１２５】
図１９は、図１７に示す半導体記憶装置ＭＥＭ３の読み出し動作の一例を示す。図１４と同様の動作については、詳細な説明は省略する。半導体記憶装置ＭＥＭ３の読み出し動作は、アドレスＡ１−Ａ０を受けるクロックサイクルが省略されることを除き、図１４に示す読み出し動作と同様である。１３番目のクロックサイクルまでの動作は、図１４と同じである。
【０１２６】
アドレスＡ１−Ａ０を受けるクロックサイクルが省略されるため、メモリセルアレイ１０ａから出力される読み出しデータＲＤ７（Ｄ７）の誤り訂正は、内部クロックＩＣＫが生成される１４番目のクロックサイクルの終わりまでに実行される。そして、誤りが訂正された出力データＤＯ７が生成される（図１９（ａ））。出力データＤＯ７に対応するデータＤ７は、１５番目のクロックサイクルで出力端子ＳＯに出力される（図１９（ｂ））。
【０１２７】
また、１５番目のクロックサイクルの終わりまでに、読み出しデータＲＤ０−ＲＤ６の誤りが訂正され、出力データＤＯ０−ＤＯ６が生成される（図１９（ｃ））。そして、出力データＤＯ６−ＤＯ０に対応するデータＤ６−Ｄ０は、１６番目から２２番目のクロックサイクルで出力端子ＳＯに順次に出力される（図１９（ｄ））。すなわち、先頭データＤ７より後に出力されるデータＤ６−Ｄ０の誤り訂正に掛かる時間は、先頭データＤ７の誤り訂正に掛かる時間より長くてもよい。換言すれば、パリティ制御回路４０ａにより先頭データＤ７の誤りを訂正し、パリティ制御回路５０ａにより残りのデータＤ６−Ｄ０の誤りを訂正することで、先頭データＤ７を出力するまでの時間を従来に比べて短縮することができる。
【０１２８】
図２０は、図１７に示す半導体記憶装置ＭＥＭ３の書き込み動作の一例を示す。図１６と同様の動作については、詳細な説明は省略する。１３番目のクロックサイクルまでの動作は、図１６と同じである。
【０１２９】
半導体記憶装置ＭＥＭ３は、書き込みデータによる読み出しデータの置き換えをしないため、書き込み動作時にメモリセルアレイ１０ａからデータを読み出さず、読み出しデータの誤りを訂正しない。このため、アドレスデコーダ２０は、メモリセルアレイ１０ａへのデータの書き込みに合わせて動作すればよく、内部クロックＩＣＫは、２１番目のクロックサイクルに生成される（図２０（ａ））。１３番目のクロックサイクルでシフトレジスタＳＦＴＲＩから出力されるアドレスＩＡ０−ＩＡ５は、２１番目のクロックサイクルまでアドレスデコーダ２０内で保持される（図２０（ｂ））。アドレスデコーダ２０は、内部クロックＩＣＫに同期してデコード動作を開始し、メモリセルアレイ１０ａは、アドレスデコーダ２０によるデコードの結果に基づいて書き込み動作を開始する（図２０（ｃ））。
【０１３０】
なお、内部クロックＩＣＫは、図１６と同様に、１４番目のクロックサイクルで生成されてもよい。この場合、アドレスデコーダ２０は、１４番目のクロックサイクルでデコード動作を開始し、メモリセルアレイ１０ａは、アドレスデコーダ２０によるデコードの結果に基づいて書き込み動作を開始する。しかしながら、メモリセルアレイ１０ａの消費電力を削減する観点から、内部クロックＩＣＫは、２１番目のクロックサイクルに生成することが望ましい。
【０１３１】
シフトレジスタＳＦＴＲＩは、１４番目から２１番目のクロックサイクルで、８ビットの書き込みデータＤ７−Ｄ０を順次に受ける（図２０（ｄ））。図１７に示すパリティ制御回路４０ａは、データＤ７に対応する書き込みデータＷＤ７の書き込みパリティデータＷＰ０−ＷＰ１を生成し、書き込みデータＷＤ７および書き込みパリティデータＷＰ０−ＷＰ１をメモリセルアレイ１０ａに出力する（図２０（ｅ））。図１７に示すパリティ制御回路５０ａは、データＤ０−Ｄ６に対応する書き込みデータＷＤ０−ＷＤ６の書き込みパリティデータＷＰ２−ＷＰ５を生成する。パリティ制御回路５０ａは、書き込みデータＷＤ０−ＷＤ６および書き込みパリティデータＷＰ２−ＷＰ５をメモリセルアレイ１０ａに出力する（図２０（ｆ））。そして、書き込みデータＷＤ０−ＷＤ７および書き込みパリティデータＷＰ０−ＷＰ５がメモリセルアレイ１０ａに書き込まれる。なお、メモリセルアレイ１０ａへの書き込みデータＷＤ０−ＷＤ７および書き込みパリティデータＷＰ０−ＷＰ５の書き込みは、チップセレクト／ＣＳがハイレベルに変化した後に完了されてもよい。
【０１３２】
以上、図１７から図２０に示す実施形態においても、図１から図１６に示す実施形態と同様の効果を得ることができる。すなわち、読み出しコマンドを受けてから先頭データ（例えば、Ｄ７）を出力するまでの時間を従来に比べて短縮することができ、半導体記憶装置ＭＥＭ３の性能を向上することができる。また、パリティ制御回路４０ａにより誤り訂正するビット数をパリティ制御回路５０ａにより誤り訂正するビット数より少なくすることで、出力端子ＳＯから出力する最初のデータＤ７の出力タイミングを、従来に比べて早くすることができる。
【０１３３】
なお、図１から図２０に示す実施形態は、読み出しデータを１つの端子から出力する半導体記憶装置（シリアルメモリ）の例を示している。しかしながら、例えば、図１に示す半導体記憶装置ＭＥＭ１の構成を２つ組み合わせることで、２つの読み出しデータを２つの端子から出力する２ビットのシリアルメモリが設計されてもよい。同様に、図３に示す半導体記憶装置ＭＥＭ２および半導体記憶装置ＭＥＭ３の各々を、複数個組み合わせて、複数ビットのデータが出力されるシリアルメモリが設計されてもよい。
【０１３４】
さらに、図１から図２０に示す実施形態は、コマンドおよびアドレスを入力することなくデータを連続して記憶部に格納するＦＩＦＯ（First In First Out）メモリなどの半導体記憶装置に適用することができる。この場合、図１７に示すパリティ制御回路４０ａ、４０ｂ等のそれぞれに含まれる２つの書き込み回路を利用してデータの書き込みが実行あれる。例えば、入力端子ＳＩにデータＤ７−Ｄ０が直列に入力される場合、一方の書き込み回路は、データＤ７−Ｄ１が入力されたことに基づいて、データＤ７−Ｄ１のパリティデータを生成し、データＤ７−Ｄ１とパリティデータとをメモリセルアレイに書き込む。他方の書き込み回路は、最後のデータＤ０が入力されたことに基づいて、データＤ０のパリティデータを生成し、データＤ０とパリティデータとをメモリセルアレイに書き込む。これにより、全てのデータＤ７−Ｄ０が入力されたことに基づいて、データＤ７−Ｄ０のパリティデータを生成し、データＤ７−Ｄ０とパリティデータとをメモリセルアレイに書き込む場合に比べて、書き込み時間を短縮することができる。
【０１３５】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１３６】
１…メモリ部；２、３…誤り訂正回路；４…出力回路；１０、１０ａ…メモリセルアレイ；２０…アドレスデコーダ；３０、３０ａ…読み書き制御回路；４０、４０ａ…パリティ制御回路；４１…読み出しパリティ生成回路；４２…シンドローム生成回路；４３…シンドロームデコーダ；４４…誤り訂正回路；４５…置き換え回路；４６…書き込みパリティ生成回路；５０、５０ａ…パリティ制御回路；５１…読み出しパリティ生成回路；５２…シンドローム生成回路；５３…シンドロームデコーダ；５４…誤り訂正回路；５５…置き換え回路；５６…書き込みパリティ生成回路；６０、６０ａ…入出力制御回路；６２…入力制御回路；６４…内部クロック生成回路；６６…選択回路；６８…出力制御回路；Ａ０−Ａ１…アドレス；ＣＲＤＧ１、ＣＲＤＧ２…訂正データ群；／ＣＳ…チップセレクト；Ｄ０−Ｄ３１…データ；ＤＥＣ…デコーダ；ＤＩ００−ＤＩ０７…入力データ；ＤＯ０−ＤＯ３１…出力データ；Ｅ０−Ｅ３１…誤りビット情報；ＩＡ０−ＩＡ５…アドレス；ＩＣＫ…内部クロック；ＭＥＭ１、ＭＥＭ２、ＭＥＭ３…半導体記憶装置；Ｐ０−Ｐ８…パリティデータ；ＲＣＮＴ…制御信号；ＲＤ０−ＲＤ３１…読み出しデータ；ＲＰ００−ＲＰ０８…読み出しパリティデータ；ＲＰ０−ＲＰ８…読み出しパリティデータ；ＲＰＧ１、ＲＰＧ２…パリティデータ群；ＲＤＧ１、ＲＤＧ２…データ群；Ｓ０−Ｓ８…シンドローム；ＳＣＫ…クロック；ＳＥＬ…セレクタ；ＳＩ…入力端子；ＳＯ…出力端子；ＷＣＮＴ…制御信号；ＷＤ０−ＷＤ３１…書き込みデータ；ＷＰ０−ＷＰ８…書き込みパリティデータ
【図１】
0006439463.tif 000002
【図２】
0006439463.tif 000003
【図３】
0006439463.tif 000004
【図４】
0006439463.tif 000005
【図５】
0006439463.tif 000006
【図６】
0006439463.tif 000007
【図７】
0006439463.tif 000008
【図８】
0006439463.tif 000009
【図９】
0006439463.tif 000010
【図１０】
0006439463.tif 000011
【図１１】
0006439463.tif 000012
【図１２】
0006439463.tif 000013
【図１３】
0006439463.tif 000014
【図１４】
0006439463.tif 000015
【図１５】
0006439463.tif 000016
【図１６】
0006439463.tif 000017
【図１７】
0006439463.tif 000018
【図１８】
0006439463.tif 000019
【図１９】
0006439463.tif 000020
【図２０】
0006439463.tif 000021