(57)【要約】【課題】  動作速度の低下を抑制できるＥＣＣ回路を備えた半導体集積回路装置を提供すること。【解決手段】  データビットを格納するデータビット格納用メモリ(1)と、コードビットを格納するコードビット格納用メモリ(3)と、データビットとコードビットとを用いて誤り訂正を実行するＥＣＣ回路(5)とを具備する。そして、データビット格納用メモリ(1)とコードビット格納用メモリ(3)とは独立に制御可能とし、データ書き込み命令を受けた際、データビット格納用メモリ(1)へのデータビットの書き込みに対して少なくとも１サイクル後に、データビットに対応するコードビットをコードビット格納用メモリ(3)へ書き込むようにしたことを特徴とする。【選択図】      図１
2005222618.tif 000002
【特許請求の範囲】
【請求項１】
データビットを格納するデータビット格納用メモリと、
コードビットを格納するコードビット格納用メモリと、
前記データビットと前記コードビットとを用いて、前記データビットまたは前記コードビット中の少なくとも１ビットの誤り訂正を実行するＥＣＣ回路とを具備し、
前記データビット格納用メモリと前記コードビット格納用メモリとは独立に制御可能であり、
データ書き込み命令を受けた際、前記データビット格納用メモリへのデータビットの書き込みに対して少なくとも１サイクル後に、前記データビットに対応するコードビットが前記コードビット格納用メモリへ書き込まれることを特徴とする半導体集積回路装置。
【請求項２】
データ読み出し命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから、対応するコードビットの読み出しを行い、
データ読み出し命令を受けたサイクルまたは次のサイクルにおいて、前記ＥＣＣ回路は、前記読み出されたデータビットとコードビットから、前記データビット中の誤りを訂正して出力し、
データ書き込み命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから対応するコードビットの読み出しとを行い、
データ書き込み命令を受けたサイクルまたは次のサイクルにおいて、前記ＥＣＣ回路は、前記読み出されたデータビットとコードビットとから、前記データビット中の誤りを訂正し、前記誤り訂正したデータの少なくとも一部を、書き込みデータに書き換え、新たにコードビットを算出し、データ書き込み命令を受けた次のサイクルまたは２サイクル後において、前記新たに算出したコードビットを前記コードビット格納用メモリへ書き込むことを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記コードビット格納用メモリに入力されるコードビットを格納するコードレジスタを有し、
前記コードレジスタは、
少なくとも１サイクルの前のアドレス、並びに１サイクル前のコマンドを記憶し、
現サイクルと前記記憶アドレスが一致し、かつ、前記記憶コマンドが書き込み命令であった場合、
前記コードレジスタのデータを前記ＥＣＣ回路へと出力し、
前記の場合に該当しないとき、前記コードビット格納用メモリが出力するコードビットを前記ＥＣＣ回路へと出力することを特徴とする請求項２記載の半導体集積回路装置。
【請求項４】
データ読み出し命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから、対応するコードビットの読み出しとを行い、
前記読み出されたデータビットとコードビットとをレジスタへと格納し、
データ読み出し命令を受けた次のサイクルにおいて、前記ＥＣＣ回路は、前記レジスタに格納されたデータビットとコードビットとから、前記データビット中の誤りを訂正して出力し、かつ、誤り訂正が発生したか否かを示すフラグ信号を出力することを特徴とする請求項１乃至請求項３いずれか一項に記載の半導体集積回路装置。
【請求項５】
前記コードビット格納用メモリは読み出し動作と書き込み動作を並行して行うことが可能なメモリであることを特徴とする請求項１乃至請求項４いずれか一項に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置に関し、特に、ＥＣＣ回路を有した半導体集積回路装置に関する。
【背景技術】
【０００２】
半導体デバイス技術の進展による素子の微細化はメモリを構成するセルの記憶ノード容量の減少を招き、そのためメモリのソフトエラーは大きな問題となってきている。そこでソフトエラー対策として、ＥＣＣ(Error Correcting Code)回路をチップ中のメモリ部に搭載する場合が増えている。ＥＣＣを搭載するメモリでは通常のデータビットに加えて検査用のコードビットを格納し、コードビットの値からデータビット中のエラーの有無、エラーがどのビットで発生したかをＥＣＣ回路で検出し、エラー訂正して外部に出力する。ＥＣＣは使用するコードによって同一ワード中に何ビットのエラーまで訂正できるか決まる。一般的には１ビットエラー訂正、または１ビットエラー訂正に加えて２ビットエラー検出が可能なＳＥＣ-ＤＥＤ(Single Error Correction − Double Error Detection)コードが広く使用されている。
【０００３】
図１１に、典型的なＥＣＣ回路付き半導体メモリの構成を示す。１ビットエラーを訂正するために必要なコードビット数はデータビット数により異なり、例えば、図８に示すように、３２ビットのデータ中の１ビットエラーを訂正するためには、７ビットのコードが必要である。従って、トータルのメモリ容量は約１．２２倍必要になる。
【０００４】
このコードビットによるメモリ容量増加分を抑えるために、メモリ内部でより多くのデータビット数に対してＥＣＣを適用する方法がある。例えば、図１２に示すように、内部の１２８ビットデータに対してＥＣＣを適用し、訂正した１２８ビットデータから所望の３２ビットデータを選択して出力する。この場合、１２８ビットのデータに対してコードは９ビットでよいので、トータルのメモリ容量は１．０７倍に抑えることができる。
【０００５】
このようなＥＣＣを適用する半導体メモリは、例えば、非特許文献１に記載されている。
【非特許文献１】Kazutami Arimoto et al., “A Speed-Enhanced DRAM Array Architecture with Embedded ECC”, IEEE JOURNAL OF SOLID-STATE CIRCUITS, VOL.25, NO.1, February 1990, pp.11-17
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＥＣＣ回路付き半導体メモリを図１２に示す構成にすると、動作が複雑になり、速度低下が生じる。具体的に説明すると、データの読み出し動作は、まず、データ１２８ビット＋コード９ビットを読み出し、ＥＣＣ回路によりデータ１２８ビット中の誤りを訂正する。その後、１２８ビットデータのうち、必要な３２ビット分のデータをマルチプレクス出力する。一方、書き込み動作では、３２ビットのデータを書き込む前に、まず、１２８ビット分のデータ全てを読み出し、ＥＣＣによりエラー訂正した後、新規の３２ビットデータを更新し、新たな１２８ビットデータに対するコードビットを算出し、メモリへと書き込みを行わなければならない。従って、動作速度が低下する。
【０００７】
この発明は、上記事情に鑑み為されたもので、その目的は、動作速度の低下を抑制できるＥＣＣ回路を備えた半導体集積回路装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、この発明の一態様に係る半導体集積回路装置は、データビットを格納するデータビット格納用メモリと、コードビットを格納するコードビット格納用メモリと、前記データビットと前記コードビットとを用いて、前記データビットまたは前記コードビット中の少なくとも１ビットの誤り訂正を実行するＥＣＣ回路とを具備する。
【０００９】
そして、前記データビット格納用メモリと前記コードビット格納用メモリとを独立に制御可能とし、データ書き込み命令を受けた際、前記データビット格納用メモリへのデータビットの書き込みに対して少なくとも１サイクル後に、前記データビットに対応するコードビットを前記コードビット格納用メモリへ書き込むようにしたことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、動作速度の低下を抑制できるＥＣＣ回路を備えた半導体集積回路装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、この発明の実施形態のいくつかを、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１２】
（第１実施形態）
図１は、この発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図である。
【００１３】
図１に示すように、第１実施形態に関わるメモリは、データビット格納用メモリ（DATA MEMORY）１、コードビット格納用メモリ（CODE MEMORY）３、及びＥＣＣ回路（ECC LOGIC）５を含む。データビット格納用メモリ１、及びコードビット格納用メモリ３は、独立に動作可能（制御可能）であるメモリである。
【００１４】
（読み出し動作）
まず、読み出しコマンドを受けたサイクルで、データとコードとを各メモリ１、３から読み出し、それぞれレジスタ７、９へと格納する。次のサイクルでは、レジスタ７、９に格納されたデータ及びコードによりＥＣＣの演算を行い（CODE_Gen.1、及びSyndrome_Gen.）、データ中にエラーがあればデータ訂正回路（DATA Correct）１１において訂正し、出力する（DOUT）。
【００１５】
（書き込み動作）
図２は、この発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図である。
【００１６】
図２に示すように、まず、書き込みコマンド（WRITE CMD）を受けたサイクルで、書き込み前に該当アドレスのデータとコードとを各メモリ１、３から読み出し、それぞれレジスタ７、９へと格納する。さらに、例えば、外部より入力された入力データ（DIN）を、データビット格納用メモリ１へと書き込んでおく。次のサイクルでは、レジスタ７、９に格納されたデータとコードによりＥＣＣの演算を行い、データ中にエラーがあればデータ訂正回路１１において訂正した後、データ更新回路（DATA Update）１３において、入力データ（DIN）へと更新し、更新後のデータをもとに、コード発生回路（CODE_Gen.2）１５において新たにコードビットを算出する。さらに、次のサイクルで、新たに算出したコードビットを、コードビット格納用メモリ３へと書き込む。
【００１７】
このような動作とすることで、ＥＣＣ演算とメモリ動作とが並行して実行可能となるので、動作速度を速くすることが可能となる。
【００１８】
なお、入力データ（DIN）に従ったデータの更新は、誤り訂正したデータの全てが入力データ（DIN）に従って更新される場合と、誤り訂正したデータの一部が入力データ（DIN）に従って更新される場合とがある。後者の場合の典型例は、入力データ（DIN）に、ライトマスクが有る場合である。つまり、入力データ（DIN）に従ったデータの更新（データの書き換え）は、誤り訂正したデータの少なくとも一部に対して行われれば良い。
【００１９】
図３は、この発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の、他の動作波形例を示す動作波形図である。他の動作波形例は、書き込み命令が連続した場合である。
【００２０】
図３に示すように、データビット格納用メモリ１、及びコードビット格納用メモリ３の双方ともに、１サイクル中で、読み出しと書き込みとの２つの動作が必要となる。特に、コードビット格納用メモリ３は、異なるアドレスへの読み出しと書き込みとを行う必要があり、動作速度の低下を招く。これを防ぐためには、コードビット格納用メモリ３に、読み出しと書き込みとを並行して実行できるメモリを使用すれば良い。このようなメモリの一例は、２ポートのメモリである。図４に２ポートのメモリのメモリセル（２ポートメモリセル）の一例を示す。図４に示す２ポートメモリセルは、ＳＲＡＭセルを示しているが、メモリセルは、ＳＲＡＭセルに限られるものではない。
【００２１】
データビット格納用メモリ１は、読み出しと書き込みとを並行して実行できるメモリ、例えば、２ポートのメモリを使用する必要は、必ずしも無い。データビット格納用メモリ１は、例えば、読み出し、又は書き込みのいずれかを単独で実行できるメモリであれば良い。このようなメモリの一例は、１ポートのメモリである。図５に１ポートのメモリのメモリセル（１ポートメモリセル）の一例を示す。本一例においてもＳＲＡＭセルを示しているが、メモリセルは、ＳＲＡＭセルに限られるものではない。
【００２２】
図５に示すように、１ポートメモリセルは、図４に示す２ポートメモリセルに比較して、例えば、ワード線、及びビット線が各１本ずつ、ゲートをワード線に接続した選択トランジスタが、例えば、ＳＲＡＭセルであれば２個少ない。即ち、１ポートメモリセルは、２ポートメモリセルに比較して、微細化しやすく、集積度も高めやすい。
【００２３】
データビット格納用メモリ１に必要な記憶容量は、コードビット格納用メモリ３の記憶容量に必要な記憶容量に比較して、はるかに大きい。例えば、半導体集積回路チップ中でデータビット格納用メモリ１が占める面積は、コードビット格納用メモリ３が占める面積に比較して、はるかに大きい。
【００２４】
従って、データビット格納用メモリ１に、読み出し、又は書き込みのいずれかを単独で実行できる、もしくは実行可能なメモリ、例えば、１ポートのメモリを使用し、コードビット格納用メモリ３に、読み出しと書き込みとを並行して実行できる、もしくは実行可能なメモリ、例えば、２ポートのメモリを使用する。これにより、ＥＣＣ回路付き半導体メモリにおいて、動作速度の低下を抑制しつつ、半導体集積回路チップの微細化、あるいは半導体集積回路チップの集積度の向上（記憶容量の大規模化）を図ることができる。
【００２５】
また、図１に示すＥＣＣ回路付き半導体メモリでは、書き込み動作において、実際にコードビットがコードビット格納用メモリ３へと書き込まれるのは、書き込み命令を受けたサイクルの２サイクル後となる。このため、あるアドレスへの書き込み命令に連続して、同一アドレスへの書き込みまたは読み出し命令が発生した場合、最初の書き込みに対応したコードビットが、コードビット格納用メモリ３に書き込まれておらず、誤動作をおこしてしまう。これを防ぐために、コードコヒーレンシ回路（CODE Coherency）１７が設けてある。
【００２６】
コードコヒーレンシ回路１７は、現サイクルのアドレスを１もしくは２サイクル前のアドレス、及びコマンドと比較し、例えば、１サイクル前のアドレスと現在のアドレスとが一致し、かつ１サイクル前が書き込みサイクルであった場合、コードコヒーレンシ回路１７はコードビット格納用メモリ１が出力するコードビットの代わりに、コードレジスタ１９のコードビットを使用し、ＥＣＣ演算を行うよう制御する。
【００２７】
また、２サイクル前のアドレスと現在のアドレスが一致し、かつ２サイクル前が書き込みサイクルであった場合は、コードコヒーレンシ回路１７はコードビット格納用メモリの出力するコードビットのかわりにコードレジスタ２１のコードビットを使用し、ＥＣＣ演算を行うよう制御する。
【００２８】
また、第１実施形態に関わるＥＣＣ回路付き半導体メモリは、読み出しコマンドを受けたサイクルで未訂正のデータを出力することも可能であり、訂正データ出力とともにエラー訂正が起こったか否かのエラーフラグ（Error_Flag）も出力される。従って、エラー訂正の頻度がわずかであれば未訂正のデータをシステムへと出力し処理を進め、エラーが発生した場合のみ次サイクルの訂正データで再処理をするような方式にも対応可能である。この方式についての具体的な一例は、第３実施形態において説明する。
【００２９】
（第２実施形態）
第１実施形態に関わるＥＣＣ回路付き半導体メモリは、サイクルタイムを高速化できるメリットがあるが、読み出し動作において、訂正データの出力が読み出し命令を受け取った次のサイクルとなる。これを、読み出し命令を受け取ったサイクルで、データを出力するようにしたのが第２実施形態である。
【００３０】
図６は、この発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図である。
【００３１】
以下、その構成を、その動作とともに説明する。
【００３２】
（読み出し動作）
まず、読み出し命令を受けたサイクルで、データとコードとを各メモリ１、３から読み出し、データとコードによりＥＣＣの演算を行い、データ中にエラーがあれば訂正し、出力する（DOUT）。
【００３３】
（書き込み動作）
図７は、この発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図である。
【００３４】
図７に示すように、まず、書き込みコマンド（WRITE CMD）を受けたサイクルで、書き込み前に該当アドレスのデータとコードとを各メモリ１、３から読み出し、データとコードとによりＥＣＣの演算を行い、データ中にエラーがあればデータ訂正回路１１において訂正した後、データ更新回路（DATA Update）１３において、例えば、外部より入力された入力データ（DIN）へと更新し、更新後のデータをもとに、コード発生回路（Code_Gen2）１５において新たにコードビットを算出する。さらに、外部より入力された入力データ（DIN）をデータビット格納用メモリ１へと書き込んでおく。
【００３５】
次のサイクルで、新たに算出したコードビットを、コードビット格納用メモリ３へと書き込む。
【００３６】
このような動作とすることで、読み出し命令を受け取ったサイクルで、訂正データを出力することが可能となる。
【００３７】
図８は、この発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の、他の動作波形例を示す動作波形図である。他の動作波形例は、第２実施形態に関わるメモリにおいて、書き込み命令が連続した場合である。
【００３８】
図８に示すように、データビット格納用メモリ１、及びコードビット格納用メモリ３の双方ともに、１サイクル中で、読み出しと書き込みとの２つの動作が必要となる。特に、コードビット格納用メモリ３は異なるアドレスへの読み出しと書き込みを行う必要があり、動作速度の低下を招く。これを防ぐためには、第１実施形態と同様に、コードビット格納用メモリ３に、読み出しと書き込みとを並行して実行できるメモリを使用すればよい。
【００３９】
また、図５に示す第２実施形態においても、第１実施形態と同様に、書き込み動作において、実際にコードビットがコードビット格納用メモリ３へと書き込まれるのは、書き込み命令を受けたサイクルの１サイクル後となる。従って、第２実施形態においても、第１実施形態と同様に、コードコヒーレンシ回路（CODE Coherency）１７が設けてある。
【００４０】
コードコヒーレンシ回路１７は、現サイクルのアドレスを１サイクル前のアドレス、及びコマンドと比較し、例えば、１サイクル前のアドレスと現在のアドレスとが一致し、かつ１サイクル前が書き込みサイクルであった場合、コードコヒーレンシ回路１７はコードビット格納用メモリ３の出力するコードビットの代わりに、コードレジスタ１９のコードビットを使用し、ＥＣＣ演算を行うよう制御する。
【００４１】
（第３実施形態）
第２実施形態の冒頭でも説明したが、第１実施形態に関わるＥＣＣ回路付き半導体メモリは、エラー訂正されたデータを、読み出しコマンドを受けた、例えば、次のサイクルで出力する。つまり、エラー訂正されたデータの出力は、読み出しコマンドを受けてから、例えば、１サイクル遅れる。データ出力が、例えば、１サイクル遅れると、システムによっては、そのパフォーマンスを劣化させるケースも考えられる。
【００４２】
ただし、ソフトエラーのように、エラー訂正の頻度がわずかであれば、多くの場合はエラー訂正の必要はない。従って、未訂正のデータで処理を進めてしまってもほとんどのシステムにおいては問題ない。
【００４３】
図９は、この発明の第３実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図である。
【００４４】
以下、その構成を、その動作とともに説明する。
【００４５】
図１０は、この発明の第３実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図である。読み出し動作は、書き込み時においても発生するので、以下、書き込み時の動作波形を用いて読み出し動作を説明する。
【００４６】
（読み出し動作）
まず、読み出しコマンドを受けたサイクルで、データとコードとを各メモリ１、３から読み出す（図１０では、書き込みコマンド（WRITE CMD）が記載されているが、この書き込みコマンドを読み出しコマンドと読み替えれば良い）。データビット格納用メモリ１から読み出したデータビットは、レジスタ７に格納するとともに、読み出しコマンドを受けたサイクルで、カラムマルチプレクサ（Col.MUX）３１を介して、出力バッファ３３から未訂正のデータを出力する（DOUT(no_correction)）。コードビット格納用メモリセル３から読み出したコードビットは、レジスタ９に格納する。
【００４７】
次に、読み出しコマンドを受けた次のサイクルで、第１実施形態と同様に、レジスタ７から読み出したデータビットと、レジスタ９から読み出したコードビットとによりＥＣＣの演算を行い（CODE_Gen.1、及びSyndrome_Gen.）、データ中にエラーがあればデータ訂正回路（DATA Correct）１１において訂正し、カラムマルチプレクサ（Col.MUX）３５を介して、出力バッファ３７から訂正したデータを出力する（DOUT）。エラー訂正が起こっていれば、エラー訂正有りを示すエラーフラグ（Error_Flag）が出力バッファ３９から出力される。
【００４８】
システムでは、未訂正のデータ（DOUT(no_correction)）を用いて処理が進められる。ただし、エラーフラグによりエラー訂正が検知された場合には、読み出しコマンドを受けた次のサイクルで出力された訂正データ（DOUT）を用いて再処理を行うようにすれば良い。
【００４９】
第３実施形態における書き込み動作は、第１実施形態における書き込み動作と同様である。
【００５０】
なお、第３実施形態では、未訂正データを出力する出力バッファ３３が、訂正データを出力する出力バッファ３７に対して別に設けられる例で説明しているが、これらバッファ３３、３７は、１個にまとめることができる。さらに、未訂正データが入力されるカラムマルチプレクサ３１、及び訂正データが入力されるカラムマルチプレクサ３５についても、出力バッファ３３、３７と同様に、１個にまとめることができる。
【００５１】
この発明の第１〜第３実施形態に関わるＥＣＣ回路付き半導体メモリによれば、データビットの書き込みに対して、コードビットの書き込みを、１もしくは２サイクル後とすることで、サイクルタイムを高速化することができる。サイクルタイムは、コードビット格納用メモリ３に、２ポートメモリを使用することによって、さらに、高速化することできる。
【００５２】
以上、この発明をいくつかの実施形態により説明したが、この発明は各実施形態に限定されるものではなく、その実施にあたっては発明の要旨を逸脱しない範囲で種々に変形することが可能である。
【００５３】
また、各実施形態は単独で実施することが可能であるが、適宜組み合わせて実施することも可能である。
【００５４】
また、各実施形態は種々の段階の発明を含んでおり、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することが可能である。
【００５５】
また、実施形態は、この発明を半導体メモリに適用した例に基づき説明したが、この発明は半導体メモリに限られるものではなく、半導体メモリを内蔵した半導体集積回路装置、例えば、プロセッサ、システムＬＳＩ等もまた、この発明の範疇である。
【図面の簡単な説明】
【００５６】
【図１】図１はこの発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図
【図２】図２はこの発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図
【図３】図３はこの発明の第１実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の、他の動作波形例を示す動作波形図
【図４】図４は２ポートメモリセルの一例を示す回路図
【図５】図５は１ポートメモリセルの一例を示す回路図
【図６】図６はこの発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図
【図７】図７はこの発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図
【図８】図８はこの発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の、他の動作波形例を示す動作波形図
【図９】図９はこの発明の第３実施形態に関わるＥＣＣ回路付き半導体メモリの構成例を示すブロック図
【図１０】図１０はこの発明の第２実施形態に関わるＥＣＣ回路付き半導体メモリの書き込み時の動作波形例を示す動作波形図
【図１１】図１１は従来のＥＣＣ回路付き半導体メモリを示すブロック図
【図１２】図１２は従来のＥＣＣ回路付き半導体メモリを示すブロック図
【符号の説明】
【００５７】
１…データビット格納用メモリ、３…コードビット格納用メモリ、５…ＥＣＣ回路、７、９…レジスタ、１１…データ訂正回路、１３…データ更新回路、１５…コード発生回路、１７…コードコヒーレンシ回路、１９、２１…コードレジスタ。
【図１】
2005222618.tif 000003
【図２】
2005222618.tif 000004
【図３】
2005222618.tif 000005
【図４】
2005222618.tif 000006
【図５】
2005222618.tif 000007
【図６】
2005222618.tif 000008
【図７】
2005222618.tif 000009
【図８】
2005222618.tif 000010
【図９】
2005222618.tif 000011
【図１０】
2005222618.tif 000012
【図１１】
2005222618.tif 000013
【図１２】
2005222618.tif 000014
【手続補正書】
【提出日】平成16年5月21日(2004.5.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データビットを格納するデータビット格納用メモリと、
コードビットを格納するコードビット格納用メモリと、
前記データビットと前記コードビットとを用いて、前記データビットまたは前記コードビット中の少なくとも１ビットの誤り訂正を実行するＥＣＣ回路とを具備し、
前記データビット格納用メモリと前記コードビット格納用メモリとは独立に制御可能であり、
データ書き込み命令を受けた際、前記データビット格納用メモリへのデータビットの書き込みに対して少なくとも１サイクル後に、前記データビットに対応するコードビットが前記コードビット格納用メモリへ書き込まれることを特徴とする半導体集積回路装置。
【請求項２】
データ読み出し命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから、対応するコードビットの読み出しを行い、
データ読み出し命令を受けたサイクルまたは次のサイクルにおいて、前記ＥＣＣ回路は、前記読み出されたデータビットとコードビットから、前記データビットまたは前記コードビット中の誤りを訂正して出力し、
データ書き込み命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから対応するコードビットの読み出しとを行い、
データ書き込み命令を受けたサイクルまたは次のサイクルにおいて、前記ＥＣＣ回路は、前記読み出されたデータビットとコードビットとから、前記データビットまたは前記コードビット中の誤りを訂正し、前記誤り訂正したデータの少なくとも一部を、書き込みデータに書き換え、新たにコードビットを算出し、データ書き込み命令を受けた次のサイクルまたは２サイクル後において、前記新たに算出したコードビットを前記コードビット格納用メモリへ書き込むことを特徴とする請求項１に記載の半導体集積回路装置。
【請求項３】
前記コードビット格納用メモリに入力されるコードビットを格納するコードレジスタを有し、
前記コードレジスタは、
少なくとも１サイクルの前のアドレス、並びに１サイクル前のコマンドを記憶し、
現サイクルと前記記憶アドレスが一致し、かつ、前記記憶コマンドが書き込み命令であった場合、
前記コードレジスタのデータを前記ＥＣＣ回路へと出力し、
前記の場合に該当しないとき、前記コードビット格納用メモリが出力するコードビットを前記ＥＣＣ回路へと出力することを特徴とする請求項２記載の半導体集積回路装置。
【請求項４】
データ読み出し命令を受けた際、前記データビット格納用メモリから、対応するアドレスのデータビットの読み出しと、前記コードビット格納用メモリから、対応するコードビットの読み出しとを行い、
前記読み出されたデータビットとコードビットとをレジスタへと格納し、
データ読み出し命令を受けた次のサイクルにおいて、前記ＥＣＣ回路は、前記レジスタに格納されたデータビットとコードビットとから、前記データビットまたは前記コードビット中の誤りを訂正して出力し、かつ、誤り訂正が発生したか否かを示すフラグ信号を出力することを特徴とする請求項１乃至請求項３いずれか一項に記載の半導体集積回路装置。
【請求項５】
前記コードビット格納用メモリは読み出し動作と書き込み動作を並行して行うことが可能なメモリであることを特徴とする請求項１乃至請求項４いずれか一項に記載の半導体集積回路装置。