(57)【要約】【課題】エラー検出コードの生成に必要な時間を短縮できるようにしたエラー検出コード生成装置および方法を提供する。【解決手段】仮想ＤＢＩ（Ｄａｔａ  Ｂｕｓ  Ｉｎｖｅｒｓｉｏｎ）情報とデータを用いて仮想エラー検出コードを生成するエラー検出コード生成部と、およびエラー検出コードの生成に関わるデータ数の偶数又は奇数のうちのいずれか１つを定義する偶数／奇数情報、前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて前記エラー検出コードを生成するエラー検出コード再生成部を備える。【選択図】図２
2009021981.tif 000002
【特許請求の範囲】
【請求項１】
仮想ＤＢＩ情報とデータとを用いて仮想エラー検出コードを生成するエラー検出コード生成部と、
エラー検出コードの生成に関わるデータ数の偶数又は奇数のうちのいずれか１つを定義する偶数／奇数情報、前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、前記エラー検出コードを生成するエラー検出コード再生成部と
を備えることを特徴とするエラー検出コード生成装置。
【請求項２】
前記仮想ＤＢＩ情報は、前記データを１ビットも反転させない状態で出力する時のＤＢＩ情報値に設定されることを特徴とする請求項１に記載のエラー検出コード生成装置。
【請求項３】
前記偶数／奇数情報は、前記エラー検出コード値を可変することができる変数として用いる情報であることを特徴とする請求項１に記載のエラー検出コード生成装置。
【請求項４】
前記偶数／奇数情報は、前記エラー検出コードの生成に関わるデータ数が奇数であることを定義する値を有する情報であることを特徴とする請求項３に記載のエラー検出コード生成装置。
【請求項５】
前記エラー検出コード生成部は、ＣＲＣロジックを備えることを特徴とする請求項１に記載のエラー検出コード生成装置。
【請求項６】
前記エラー検出コード再生成部は、前記偶数／奇数情報と前記仮想エラー検出コードの入力を選択的に受け、前記偶数／奇数情報と連関するＤＢＩ情報の入力を共通に受ける複数の演算回路を備えることを特徴とする請求項１に記載のエラー検出コード生成装置。
【請求項７】
前記演算回路は、
前記偶数／奇数情報および前記偶数／奇数情報と連関するＤＢＩ情報を１ビットずつ論理積演算を行う論理積ロジックと、
前記論理積ロジックの出力と前記仮想エラー検出コードを排他的論理和演算を行う排他的論理和ロジックと
を備えることを特徴とする請求項６に記載のエラー検出コード生成装置。
【請求項８】
データを用いてＤＢＩ情報を生成するデータバス反転部と、
仮想ＤＢＩ情報と前記データを用いて、前記ＤＢＩ情報の生成完了前に仮想エラー検出コードを生成するエラー検出コード生成部と、
エラー検出コードの生成に関わるデータ数の偶数又は奇数のうちのいずれか１つを定義する偶数／奇数情報、前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、前記エラー検出コードを生成するエラー検出コード再生成部と
を備えることを特徴とするエラー検出コード生成装置。
【請求項９】
前記仮想ＤＢＩ情報は、前記データを１ビットも反転させない状態で出力する時のＤＢＩ情報値に設定されることを特徴とする請求項８に記載のエラー検出コード生成装置。
【請求項１０】
前記偶数／奇数情報は、前記エラー検出コード値を可変することができる変数として用いる情報であることを特徴とする請求項８に記載のエラー検出コード生成装置。
【請求項１１】
前記偶数／奇数情報は、前記エラー検出コードの生成に関わるデータ数が奇数であることを定義する値を有する情報であることを特徴とする請求項１０に記載のエラー検出コード生成装置。
【請求項１２】
前記エラー検出コード生成部は、ＣＲＣロジックを備えることを特徴とする請求項８に記載のエラー検出コード生成装置。
【請求項１３】
前記エラー検出コード再生成部は、前記偶数／奇数情報と前記仮想エラー検出コードの入力を選択的に受け、前記偶数／奇数情報と連関するＤＢＩ情報の入力を共通に受ける複数の演算回路を備えることを特徴とする請求項８に記載のエラー検出コード生成装置。
【請求項１４】
前記演算回路は、
前記偶数／奇数情報および前記偶数／奇数情報と連関するＤＢＩ情報を各々１ビットずつ論理積演算を行う論理積ロジックと、
前記論理積ロジックの出力と前記仮想エラー検出コードを排他的論理和演算を行う排他的論理和ロジックと
を備えることを特徴とする請求項１３に記載のエラー検出コード生成装置。
【請求項１５】
エラー検出コード生成方法であって、
全体データのうちのエラー検出コードの生成に関わるデータ数の偶数／奇数情報を生成するステップと、
仮想ＤＢＩ情報と前記データを用いて、ＤＢＩ情報の生成完了前に仮想エラー検出コードを生成するステップと、
前記偶数／奇数情報、全体ＤＢＩ情報のうちの前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、実際のエラー検出コードを生成するステップと
を備えることを特徴とするエラー検出コード生成方法。
【請求項１６】
前記仮想ＤＢＩ情報は、前記データを１ビットも反転させない状態で出力する時のＤＢＩ情報値に設定されることを特徴とする請求項１５に記載のエラー検出コード生成方法。
【請求項１７】
前記偶数／奇数情報は、前記エラー検出コード値を可変することができる変数として用いる情報であることを特徴とする請求項１５に記載のエラー検出コード生成方法。
【請求項１８】
前記偶数／奇数情報は、前記エラー検出コードの生成に関わるデータ数が奇数であることを定義する値を有する情報であることを特徴とする請求項１７に記載のエラー検出コード生成方法。
【請求項１９】
前記仮想エラー検出コードはＣＲＣ方式によって生成されることを特徴とする請求項１５に記載のエラー検出コード生成方法。
【請求項２０】
前記実際のエラー検出コードを生成するステップは、
前記偶数／奇数情報、全体ＤＢＩ情報のうちの前記偶数／奇数情報と連関するＤＢＩ情報を各々１ビットずつ論理積演算を行うステップと、
前記論理積演算の結果および前記仮想エラー検出コードを排他的論理和を行いその演算の結果を前記実際のエラー検出コードとして出力するステップと
を備えることを特徴とする請求項１５に記載のエラー検出コード生成方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特にデータ受信側においてデータのエラー発生有無を判断することができるようにエラー検出コードを生成する装置および方法に関するものである。
【背景技術】
【０００２】
データバス反転機能を行うための構成、すなわちデータバス反転部（ＤＢＩ：Ｄａｔａ  Ｂｕｓ  Ｉｎｖｅｒｓｉｏｎ）は、データ伝送時、全体データビットのうち、前のデータビットと比較して今のデータビットの論理値が変わる個数が増加することに伴って生じる問題、すなわち同時スイッチングノイズ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｓｗｉｔｃｈｉｎｇ  Ｎｏｉｓｅ）又はシンボル間干渉（Ｉｎｔｅｒ  Ｓｙｍｂｏｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ）を防止するために用いられる。
【０００３】
前記データバス反転部は、全体データビットのうちの論理値が変わったビット数が全体データビットの半分以上である場合、ＤＢＩフラグ（ＤＢＩ  Ｆｌａｇ）をイネーブルにし、正常データの代わりに反転したデータを伝送してデータビットのスイッチング数を半分以下に減らす。
【０００４】
また、半導体回路、例えばＤＲＡＭのような半導体記憶装置の場合は、処理速度の高速化のためデータ伝送エラーが誘発される確率が高い。したがって、データ受信側において伝送されたデータのエラー発生有無を判断できるように、データとは別途にエラー検出コードを生成して伝送するためのエラー検出コード生成回路が用いられている。
【０００５】
前記エラー検出コード生成回路にはＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）方式が広く用いられている。前記ＣＲＣの１種類として、６４ビットから８ビットのエラー検出コードを出力するＣＲＣ８がある。このＣＲＣ方式は、例えば、同期式伝送の場合に使用される誤り検出方式で、巡回符号方式とも呼ばれ、この方式では、送るべきデータ列を高次の多項式（メッセージ多項式と呼ぶ）とみなし、これをあらかじめ定められた生成多項式（Checking Polynomial）で割り、その余り（BCC：Block Check Code）をデータのあとに付加して送信し、受信側では、同じ生成多項式を使って割り算を行い、余りがなければ伝送されたデータは正しいと判断する。
【０００６】
従来の技術に係るデータバス反転部を備えた半導体回路におけるエラー検出コード生成装置の構成を説明すれば次の通りである。
従来の技
術に係るエラー検出コード生成装置は、図１に示すように、データバス反転部１０、エラー検出コード生成部２０、反転素子ＩＶ１、およびマルチプレクサ４０を備える。
【０００７】
前記データバス反転部１０は、データ線ＧＩＯ＜０：７＞を介して６４ビットのデータの入力を受けて８ビットのＤＢＩフラグを生成するように構成される。
前記反転素子ＩＶ１は前記６４ビットのデータを反転させて出力するように構成される。
前記マルチプレクサ４０は、前記ＤＢＩフラグにより前記６４ビットのデータ又は前記反転素子ＩＶ１を介して反転した６４ビットのデータを選択して出力するように構成される。
【０００８】
従来の技術に係るエラー検出コード生成装置の動作を説明すれば次の通りである。
前記データバス反転部１０は、前記６４ビットのデータの入力を受けて、各８ビット別に前のデータに比べて論理値が変わったビットが何個であるかを判断する。
【０００９】
前記データバス反転部１０は、前記全体データビットのうち、論理値が変わったビット数が全体データビットの半分以上である場合に、前記ＤＢＩフラグ（ＤＢＩ  Ｆｌａｇ）をローレベルで出力する。
【００１０】
前記マルチプレクサ４０は、前記ＤＢＩフラグがローレベルである場合に、反転素子ＩＶ１によって反転したデータを選択して出力する。
【００１１】
前記エラー検出コード生成部２０は、前記マルチプレクサ４０から出力された６４ビットのデータと前記８ビットのＤＢＩフラグに対するエラー検出コードＣＲＣ＜０：７＞を生成して出力する。
【００１２】
前記エラー検出コード生成部２０は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）方式により６４ビットのデータと８ビットのＤＢＩフラグ全て、すなわち７２ビットに対する排他的論理和（ＸＯＲ）演算を行って前記エラー検出コードＣＲＣ＜０：７＞を生成する。
【００１３】
前記エラー検出コードＣＲＣ＜０：７＞は、ＥＤＣピン（Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ  Ｐｉｎ）を介して外部のシステム、例えばＧＰＵ（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に出力される。
【００１４】
上述したようにデータバス反転部１０を有する半導体回路の場合、エラー検出コードを生成するためには前記８ビットのＤＢＩフラグが必要である。
【００１５】
したがって、従来の技術では、データバス反転機能のための演算動作を先に行った後にエラー検出コードを生成するための演算動作を行うため、エラー検出コードを生成する時間が長くなる問題点がある。また、上述したエラー検出コード生成時間の増加は半導体記憶装置のようなシステムの性能低下の要素として作用し得る。これに似ている技術はアメリカ登録特許6,594,244に開示されている。
【特許文献１】米国登録特許6,594,244
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、エラー検出コードの生成に必要な時間を短縮できるようにしたエラー検出コード生成装置および方法を提供することをその目的とする。
【課題を解決するための手段】
【００１７】
本発明に係るエラー検出コード生成装置は、データを仮想的に反転させるための情報である仮想ＤＢＩ（Ｄａｔａ  Ｂｕｓ  Ｉｎｖｅｒｓｉｏｎ）情報とデータを用いて仮想エラー検出コードを生成するエラー検出コード生成部と、およびエラー検出コードの生成に関わるデータ数の偶数又は奇数のうちのいずれか１つを定義する偶数／奇数情報、前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、前記エラー検出コードを生成するエラー検出コード再生成部を備えることを特徴とする。
【００１８】
本発明に係るエラー検出コード生成装置は、データを用いてＤＢＩ（Ｄａｔａ  Ｂｕｓ  Ｉｎｖｅｒｓｉｏｎ）情報を生成するデータバス反転部と、仮想ＤＢＩ情報と前記データを用いて、前記ＤＢＩ情報の生成完了前に仮想エラー検出コードを生成するエラー検出コード生成部と、およびエラー検出コードの生成に関わるデータ数の偶数又は奇数のうちのいずれか１つを定義する偶数／奇数情報、前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、前記エラー検出コードを生成するエラー検出コード再生成部を備えることをまた他の特徴する。
【００１９】
本発明に係るエラー検出コード生成方法は、全体データのうちのエラー検出コードの生成に関わるデータ数の偶数／奇数情報を生成するステップと、仮想ＤＢＩ情報と前記データを用いて、ＤＢＩ情報の生成完了前に仮想エラー検出コードを生成するステップと、および前記偶数／奇数情報、全体ＤＢＩ情報のうちの前記偶数／奇数情報と連関するＤＢＩ情報、および前記仮想エラー検出コードを用いて、実際のエラー検出コードを生成するステップを備えることを特徴とする。
【発明の効果】
【００２０】
本発明に係るエラー検出コード生成装置および方法は、データバス反転機能を行うための演算時間中に仮想ＤＢＩフラグを用いたエラー検出コードの生成演算を一次的に行い、既存のエラー検出コードの生成演算のために必要な信号成分のうち、実際のエラー検出コードの生成に関わる一部信号成分だけを用いて最終的なエラー検出コードの生成演算を行う。したがって、従来の技術に比べてエラー検出コードの生成に必要な時間を大幅に短縮することができる。前記エラー検出コードの生成に必要な時間が短縮されるため、それを用いるシステム、例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のような半導体記憶装置の性能を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して本発明に係るエラー検出コード生成装置および方法の望ましい実施例を説明すれば次の通りである。
【００２２】
本発明に係るエラー検出コード生成装置は、データバス反転機能に係るＤＢＩフラグもエラー検出コードの生成のための演算過程に含めなければならない場合に係る実施例である。したがって、本発明が適用されたシステム、例えば半導体集積回路には前記データバス反転機能を行うためのデータバス反転部１００が備えられている。
本発明に係るエラー検出コード生成装置は、図２に示すように、エラー検出コード生成部２００およびエラー検出コード再生成部３００を備える。
【００２３】
前記エラー検出コード生成部２００は、データ線ＧＩＯ＜０：７＞を介して入力された６４ビットのデータと８ビットの仮想ＤＢＩフラグＶＤＢＩを用いて仮想エラー検出コードＡ＜０：７＞を生成するように構成される。前記仮想ＤＢＩフラグＶＤＢＩは、前記６４ビットのデータを１ビットも反転させない状態で出力する時に用いられるＤＢＩフラグ値に設定される。ＤＢＩフラグがハイレベルである場合はデータを反転させないので、前記８ビットの仮想ＤＢＩフラグＶＤＢＩは全てハイレベル（１１１１１１１１）に設定され得る。
【００２４】
前記エラー検出コード生成部２００は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）方式による回路構成が可能であり、図１のエラー検出コード生成部２０と同様の構成を用いることができる。
【００２５】
前記エラー検出コード再生成部３００は、前記仮想エラー検出コードＡ＜０：７＞と前記データバス反転部１００から出力された実際のＤＢＩフラグＢ＜０：７＞および偶数／奇数情報Ｃ＜０：７＞を用いて、エラー検出コードＣＲＣ＜０：７＞を生成するように構成される。前記偶数／奇数情報Ｃ＜０：７＞は、それぞれのデータ線ＧＩＯ＜０：７＞を介して順次入力される８ビットデータのうち、エラー検出コードの生成に関わるデータ数が偶数であるか奇数であるかを定義する情報である。前記偶数／奇数情報Ｃ＜０：７＞はＣ＜０＞〜Ｃ＜７＞各々に対し８ビットずつ計６４ビットで構成される。
【００２６】
前記エラー検出コード再生成部３００は、図３に示すように、前記仮想エラー検出コードＡ＜０：７＞と前記実際のＤＢＩフラグＢ＜０：７＞および偶数／奇数情報Ｃ＜０：７＞の入力を選択的に受け、８ビットのエラー検出コードＣＲＣ＜０：７＞の各ビットを生成するための第１〜第８演算回路（３１０〜３８０）を備える。
【数１】
2009021981.tif 000003
前記一般式（１）は、仮想エラー検出コードＡ＜０：７＞、実際のＤＢＩフラグＢ＜０：７＞、および偶数／奇数情報Ｃ＜０：７＞とエラー検出コードＣＲＣ０との関係を定義したものである。
【００２７】
前記一般式（１）で定義されたように、エラー検出コードＣＲＣ０は、前記実際のＤＢＩフラグＢ＜０：７＞とエラー検出コードＣＲＣ０に関わる偶数／奇数情報Ｃ０［Ｃ００〜Ｃ０７］を各々１ビットずつ対をなして論理積演算を行い、その論理積の結果値と仮想エラー検出コードＡ０を排他的論理和演算を行うことによって生成されることが分かる。
【００２８】
前記第１演算回路３１０は、前記一般式（１）の正義による概念的な構成であって、図４に示すように、論理積ロジック３１１およびＸＯＲロジック３１２を備える。前記論理積ロジック３１１は第１〜第８アンドゲート（ＡＮＤ０〜ＡＮＤ７）を備える。
【表１】
2009021981.tif 000004
表１に示すように、ＣＲＣ方式の演算原理を用いれば、前記データ線ＧＩＯ＜０：７＞を介して第１番目から第８番目まで順次入力される手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）と実際のＤＢＩフラグＢ＜０：７＞のうちから、エラー検出コードＣＲＣ０の生成時に前記エラー検出コードＣＲＣ０の値に影響を及ぼし得るデータとそうでないデータに区分することができる。
【００２９】
前記表１のデータのうち、番号が付されたデータがエラー検出コードＣＲＣ０の生成時に前記エラー検出コードＣＲＣ０の値に影響を及ぼし得るデータである。前記表１のデータのうち、番号が付されていないデータはエラー検出コードＣＲＣ０の生成とは関係ないデータである。
残りのエラー検出コード（ＣＲＣ１〜ＣＲＣ７＞）に関わるデータもまたＣＲＣ方式の演算原理を用いて抽出することができ、前記表１とは異なり得る。
【００３０】
前記仮想エラー検出コードＡ０は、前記第１番目から第８番目まで順次入力される手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）に対し各々１つずつ８個の信号成分（Ａ００〜Ａ０７）に区分することができる。
【００３１】
前記８個の信号成分（Ａ００〜Ａ０７）は、それぞれの手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）に対し番号が付されたデータを排他的論理和演算を行った結果値である。例えば、信号成分Ａ０２は、第３番目データ（３ｒｄ  ｄａｔａ）のうち、ｄａｔａ＜１８＞、ｄａｔａ＜３４＞、ｄａｔａ＜５０＞、およびｄａｔａ＜６６＞を排他的論理和演算を行った結果値である。
【００３２】
前記仮想エラー検出コードＡ０は前記８個の信号成分（Ａ００〜Ａ０７）を全て排他的論理和演算を行った結果値である。
前記偶数／奇数情報Ｃ０は、前記第１番目から第８番目まで順次８ビットずつ入力される手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）の各々に対し、前記エラー検出コードＣＲＣ０値に影響を及ぼし得るデータ数が偶数であるか奇数であるかを定義する情報である。前記偶数／奇数情報Ｃ０は、前記第１番目から第８番目まで順次入力される手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）に対し、各々１つずつ８個の信号成分（Ｃ００〜Ｃ０７）に区分することができる。前記表１に記載されたように、順次入力される手順別データ（１ｓｔ  ｄａｔａ〜８ｔｈ  ｄａｔａ）と実際のＤＢＩフラグＢ＜０：７＞のうち、エラー検出コードＣＲＣ０の生成時に前記エラー検出コードＣＲＣ０の値に影響を及ぼし得るデータとそうでないデータの数はＣＲＣ方式の演算原理を用いて抽出したものであって、変わることはない。したがって、前記偶数／奇数情報Ｃ０とその信号成分（Ｃ００〜Ｃ０７）の値もまた変わらない固定値である。
【００３３】
入力データ数が偶数である場合、ハイレベルのデータ数が奇数であればローレベルのデータ数も奇数となる。したがって、全ての入力データを反転させてもエラー検出コードＣＲＣ０の値は変わらない。
【００３４】
前記偶数／奇数情報（例えば、Ｃ００）がハイレベルである場合、すなわちデータ数が奇数であってもＤＢＩフラグ（例えば、Ｂ＜０＞）がハイレベルであれば仮想エラー検出コードＡ０の値に影響を及ぼさない。前記仮想エラー検出コードＡ０は仮想ＤＢＩフラグＶＤＢＩをハイレベルに設定した状態で生成されたものであるためである。
【００３５】
前記エラー検出コードＣＲＣ０の生成に関わるデータ数が偶数であるか否かは偶数／奇数情報（Ｃ００〜Ｃ０７）によって把握することができる。前記エラー検出コードＣＲＣ０の生成に関わるデータ数が偶数であれば偶数／奇数情報（Ｃ００〜Ｃ０７）はローレベルである。
【００３６】
前記図４に示された第１演算回路３１０は一般式（１）による概念的な構成である。
実際に第１演算回路３１０を構成する場合には、表１を基準にして偶数／奇数情報（Ｃ００〜Ｃ０７）のうちのローレベルの偶数／奇数情報（Ｃ０２，Ｃ０３，Ｃ０５，Ｃ０６）の入力を受けるアンドゲート（ＡＮＤ２，ＡＮＤ３，ＡＮＤ５，ＡＮＤ６）を削除して、図５のように回路面積を減らすことができる。入力信号のうちの１つがローレベルである場合、論理積演算の結果値は常にローレベルであるため、該当論理積回路を構成する必要がないためである。
【００３７】
また、前記ＤＢＩフラグＢ＜０：７＞がローレベルである場合にだけ仮想エラー検出コードＡ０の値に影響を及ぼすので、本来のＤＢＩフラグＢ＜０：７＞の代わりに前記ＤＢＩフラグＢ＜０：７＞を反転させた値らが前記論理積ロジック３１１に入力されるようにする。
前記第２〜第８演算回路（３２０〜３８０）は前記第１演算回路３１０と同一原理によって構成することができる。
【００３８】
このように構成された本発明に係るエラー検出コード生成方法を説明すれば次の通りである。
前記データバス反転部１００は、前記６４ビットのデータの入力を受けて、各８ビット別に前のデータに比べて論理値が変わったビットが何個であるかを判断する。
【００３９】
前記データバス反転部１００は、前記全体データビットのうち、論理値が変わったビット数が全体データビットの半分以上である場合には前記ＤＢＩフラグＢ＜０：７＞をローレベルで出力する。
【００４０】
前記データバス反転部１００は、前記全体データビットのうち、論理値が変わったビット数が全体データビットの半分未満である場合には前記ＤＢＩフラグＢ＜０：７＞をハイレベルで出力する。
【００４１】
前記エラー検出コード生成部２００は、前記６４ビットのデータと仮想ＤＢＩフラグＶＤＢＩに対する仮想エラー検出コードＡ＜０：７＞を生成して出力する。
【００４２】
前記エラー検出コード生成部２００の仮想エラー検出コードＡ＜０：７＞の生成は前記データバス反転部１００とは関係なく行われる。前記仮想エラー検出コードＡ＜０：７＞は前記ＤＢＩフラグＢ＜０：７＞に比べて早いか同一時点で生成される。
【００４３】
前記エラー検出コード再生成部３００の第１〜第８演算回路（３１０〜３８０）は、６４ビットのデータのうちのエラー検出コードＣＲＣ＜０：７＞の生成に関わる一部のビットと、８ビットのＤＢＩフラグＢ＜０：７＞のうちの一部のビットに対する演算を同時に行って、前記エラー検出コードＣＲＣ＜０：７＞を生成する。
【００４４】
例えば、図１に示された従来技術によれば、エラー検出コード生成部２０は、６４ビットのデータと８ビットのＤＢＩフラグ全て、すなわち７２ビットに対する演算を行って前記エラー検出コードＣＲＣ０を生成した。
【００４５】
しかし、本発明では、表１を基準にした時、図４の第１演算回路３１０は、６４ビットのデータのうちのエラー検出コードＣＲＣ＜０：７＞の生成に関わる２９ビットと、８ビットのＤＢＩフラグＢ＜０：７＞のうちの５ビット、すなわち３４ビットに対する演算を行って、前記エラー検出コードＣＲＣ＜０＞を生成する。
【００４６】
前記第２〜第８演算回路（３２０〜３８０）の場合も従来の技術に比べて減少したデータと従来の技術に比べて減少したＤＢＩフラグＢ＜０：７＞に対する演算を行って、前記エラー検出コードＣＲＣ＜１：７＞を生成する。
【００４７】
例えば、図１に示されたデータバス反転部１０の演算時間が'１０'、エラー検出コード生成部２０の演算時間が'２０'と仮定すれば、エラー検出コードＣＲＣ＜０：７＞が生成されるのに必要な総時間は'３０'である。
【００４８】
しかし、図２に示された本発明の場合、データバス反転部１００の演算時間が'１０'、エラー検出コード生成部２００が前記データバス反転部１００の前に演算が完了するので時間加算はない。そして、エラー検出コード再生成部３００は、従来の技術に比べて大概１／２のデータを演算するので概略'１０'程度の時間がかかる。したがって、本発明の実施例によってエラー検出コードＣＲＣ＜０：７＞が生成されるのに必要な総時間は'２０'未満になる。
【００４９】
上述した程度の時間短縮は、高速化動作を行う半導体記憶装置のようなシステムでは性能を左右する大きい要素として作用し得る。
【００５０】
前記エラー検出コードＣＲＣ＜０：７＞は、ＥＤＣピンを介して外部のシステム、例えば、ＧＰＵ（Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に出力される。
【００５１】
本発明が属する技術分野の当業者であれば、本発明がその技術的思想や必須特徴を変更せず、他の具体的な形態によって実施することができるため、以上で記述した実施形態は全ての面で例示的であり、限定的なものではないものと理解しなければならない。本発明の範囲は前記詳細な説明よりは特許請求の範囲によって示され、特許請求の範囲の意味および範囲そしてその等価概念から導き出される全ての変更又は変形した形態は本発明の範囲に含まれると解釈しなければならない。
【図面の簡単な説明】
【００５２】
【図１】従来の技術に係るエラー検出コード生成装置のブロック図である。
【図２】本発明に係るエラー検出コード生成装置のブロック図である。
【図３】図２のエラー検出コード再生成部のブロック図である。
【図４】図３の第１演算回路の概念を示す回路図である。
【図５】図３の第１演算回路の実施例を示す回路図である。
【符号の説明】
【００５３】
１００…データバス反転部
２００…エラー検出コード生成部
３００…エラー検出コード再生成部
３１０〜３８０…第１〜第８演算回路
３１１…論理和ロジック
３１２…ＸＯＲロジック 
【図１】
2009021981.tif 000005
【図２】
2009021981.tif 000006
【図３】
2009021981.tif 000007
【図４】
2009021981.tif 000008
【図５】
2009021981.tif 000009