(57)【要約】【課題】  巡回冗長検査用に符合化された（ＣＲＣ符合化された）データを交換するための方法および装置を示す。【解決手段】  例示的な構成は、上でデータがブロック間で交換されるアドレスバスとデータバスとによって接続された少なくとも２つのブロックを含む。スヌープブロックは、アドレスバスおよびデータバスに接続され、データバスからアドレスを受取るように構成される。スヌープブロックは、データバスから受取ることのできるアドレスをマスキングして少なくとも１つのスヌープアドレスを生成するように構成されるアドレスマスキング回路を含む。ＣＲＣブロックは、データバスおよびスヌープブロックに接続され、アドレスバス上で運ばれるデータアドレスが少なくとも１つのスヌープアドレスと合致するとデータからＣＲＣ符号を生成するように構成される。【選択図】        図１
2004159333.tif 000002
【特許請求の範囲】
【請求項１】
巡回冗長検査（ＣＲＣ）符号を用いたデータを交換するための構成であって、
上でデータがブロック間で交換されるアドレスバスおよびデータバスによって接続される少なくとも２つのブロックと、
前記アドレスバスおよび前記データバスに接続され、前記データバスからアドレスを受取るように構成されるスヌープブロックとを含み、前記スヌープブロックは、
前記データバスから受取ることのできるアドレスをマスキングして少なくとも１つのスヌープアドレスを生成するように構成されるアドレスマスキング回路を含み、前記構成はさらに、
前記データバスおよび前記スヌープブロックに接続され、前記アドレスバス上で運ばれるデータアドレスが前記少なくとも１つのスヌープアドレスと合致すると前記データからＣＲＣ符号を生成するように構成されるＣＲＣブロックを含む、構成。
【請求項２】
前記スヌープブロックは、前記ＣＲＣブロックに対し、前記データアドレスが前記少なくとも１つのスヌープアドレスと合致すると前記データバス上の前記データから前記ＣＲＣ符号を生成するように指令することのできる少なくとも１つの制御信号によって、前記ＣＲＣブロックに接続される、請求項１に記載の構成。
【請求項３】
前記スヌープブロックは、
前記データバスおよび前記アドレスマスキング回路に接続され、前記データバスから受取ることのできる前記アドレスを記憶するように構成されるスヌープアドレスレジスタと、
前記少なくとも１つの制御信号によって、前記アドレスマスキング回路、前記アドレスバス、および前記ＣＲＣブロックに接続され、前記データアドレスと前記少なくとも１つのスヌープアドレスとを比較して、前記少なくとも１つの制御信号を介して前記ＣＲＣブロックに対し、前記データアドレスが前記少なくとも１つのスヌープアドレスと合致すると前記データから前記ＣＲＣ符号を生成するよう指令するように構成されるアドレス比較回路とを含む、請求項２に記載の構成。
【請求項４】
前記スヌープアドレスレジスタは、２つ以上のアドレスを記憶するように構成される、請求項３に記載の構成。
【請求項５】
前記スヌープブロックは、
前記アドレス比較回路に接続され、前記アドレス比較回路をイネーブルにして、アドレスの合致が生じると前記ＣＲＣブロックに対して前記ＣＲＣ符号を生成するように指令して、前記ＣＲＣブロックに対し、前記データアドレスが前記少なくとも１つのスヌープアドレスと合致するかどうかに関係なく前記ＣＲＣ符号を生成するように指令することによって前記アドレス比較回路をディスエーブルにするように構成される、イネーブル／ディスエーブル回路をさらに含む、請求項３に記載の構成。
【請求項６】
前記イネーブル／ディスエーブル回路は、前記アドレス比較回路をイネーブルにして、前記ＣＲＣブロックに対し、書込動作および読出動作の少なくとも１つが前記データバス上で生じるたびに前記ＣＲＣ符号を生成するよう指令するように構成される、請求項５に記載の構成。
【請求項７】
前記ＣＲＣブロックは、
前記データバスおよび前記スヌープブロックに接続されるＣＲＣ入力レジスタと、
前記ＣＲＣ入力レジスタに接続されるＣＲＣ生成回路と、
前記ＣＲＣ生成回路および前記データバスに接続されるＣＲＣデータレジスタとを含む
、請求項１に記載の構成。
【請求項８】
前記ブロック間で交換される前記データは、前記データバスから前記ＣＲＣ入力レジスタ内にロードされ、前記スヌープブロックによって指令されると前記ＣＲＣ符号を生成する前記ＣＲＣ生成回路に渡されて、生成されたＣＲＣ符号は、次に、前記データバスに接続される前記ＣＲＣデータレジスタに渡される、請求項７に記載の構成。
【請求項９】
前記ブロックの少なくとも１つは、直接メモリアクセス（ＤＭＡ）コントローラである、請求項１に記載の構成。
【請求項１０】
前記ブロックの少なくとも１つは、中央処理装置（ＣＰＵ）である、請求項１に記載の構成。
【請求項１１】
前記ＣＰＵは、
前記少なくとも１つのスヌープアドレスを判定するように構成される論理と、
前記ＣＲＣブロックをイネーブルにして、アドレスの合致が生じると前記ＣＲＣ符号を生成するように構成されて、前記データアドレスが前記少なくとも１つのスヌープアドレスと合致するかどうかに関係なく前記ＣＲＣ符号を生成することによって前記ＣＲＣブロックをディスエーブルにするように構成される論理とを含む、請求項１０に記載の構成。
【請求項１２】
データバス上で交換されているデータから巡回冗長検査（ＣＲＣ）符号を自動的に生成するための装置であって、
前記データバスに接続され、前記データバスから受取ることのできるアドレスを記憶するように構成されるアドレスレジスタと、
前記データバスから受取ることのできる前記アドレスをマスキングして少なくとも１つのスヌープアドレスを生成するように構成されるアドレスマスキング回路と、
少なくとも１つの制御信号によって前記アドレスレジスタ、アドレスバス、およびＣＲＣブロックに接続され、前記少なくとも１つのスヌープアドレスと前記アドレスバス上で運ばれるデータアドレスとを比較して、前記少なくとも１つの制御信号を介して前記ＣＲＣブロックに対し、前記データアドレスが前記少なくとも１つのスヌープアドレスと合致すると前記データからＣＲＣ符号を生成するよう指令するように構成されるアドレス比較回路とを含む、装置。
【請求項１３】
前記アドレスレジスタは、２つ以上のアドレスを記憶するように構成される、請求項１２に記載の装置。
【請求項１４】
前記アドレス比較回路に接続され、前記アドレス比較回路をイネーブルにして、アドレスの合致が生じると前記ＣＲＣブロックに対して前記ＣＲＣ符号を生成するように指令して、前記ＣＲＣブロックに対し、アドレスの合致が生じるかどうかに関係なく前記ＣＲＣ符号を生成するように指令することによって前記アドレス比較回路をディスエーブルにするように構成される、イネーブル／ディスエーブル回路をさらに含む、請求項１２に記載の装置。
【請求項１５】
前記イネーブル／ディスエーブル回路は、前記アドレス比較回路をイネーブルにして、前記ＣＲＣブロックに対し、書込動作および読出動作の少なくとも１つが前記データバス上で生じるたびに前記ＣＲＣ符号を生成するよう指令するように構成される、請求項１４に記載の装置。
【請求項１６】
データバス上で交換されているデータから巡回冗長検査（ＣＲＣ）符号を自動的に生成するための方法であって、
前記データバスから受取ることのできるアドレスを記憶するステップと、
少なくとも１つのスヌープアドレスを生成するために、記憶されたアドレスをマスキングするステップと、
前記少なくとも１つのスヌープアドレスと前記データバス上で交換されている前記データのデータアドレスとを比較するステップと、
前記データアドレスが前記少なくとも１つのスヌープアドレスと合致すると前記データバス上で交換されている前記データを捕捉するステップと、
捕捉されたデータからＣＲＣ符号を生成するステップとを含む、方法。
【請求項１７】
前記データアドレスが前記少なくとも１つのスヌープアドレスと合致すると、第１の値を有する指令信号に応答して、前記捕捉されたデータからの前記ＣＲＣ符号の生成をイネーブルにするステップと、
前記データアドレスが前記少なくとも１つのスヌープアドレスと合致するかどうかに関係なく第２の値を有する前記指令信号に応答して、前記捕捉されたデータからのＣＲＣ符号の生成をディスエーブルにするステップとをさらに含む、請求項１６に記載の方法。
【請求項１８】
書込動作および読出動作の少なくとも１つが前記データバス上で生じると、前記指令信号に前記第１の値を割り当てるステップをさらに含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
背景
巡回冗長検査（ＣＲＣ）符号を用いたデータを交換するための方法および装置を記載する。特に、アドレススヌープを用いてＣＲＣ符号を自動的に生成するための方法および装置が示される。
【背景技術】
【０００２】
誤り訂正符合は、伝送チャネルによって生じるデータの誤りを検出して訂正する方法を提供する。誤り訂正符合の２つの主なカテゴリが、ブロック符号および重畳符号である。両方の種類の符号は、伝送されるデータにパリティシンボルを加えることによって、データストリームに冗長性を取り入れる。パリティシンボルを用いて、受信されたデータストリームの誤りを検出し、次に、訂正する。
【０００３】
今日用いられているブロック符号のほとんどは、巡回符号であるか、または巡回符号と密接に関連している。これは、巡回符号が、単純な線形フィードバックシフトレジスタ（ＬＦＳＲ）を用いた、符号化／復号化の機能の容易な実現を可能にする代数上の構造を用いているためであり、より複雑で費用のかかる標準的なアレイ型の復号器が不要になる。
【０００４】
巡回符号は、符号ベクトルを多項式として解釈して説明されるのが最適である。巡回符号において、符号語の多項式のすべては、ｋ−ｎ次のいわゆる生成多項式ｇ（ｘ）の倍数であり、ここでｋは、誤り符号化されているメッセージに含まれる情報ビットの数である。この多項式は、所与の符号ベクトルの巡回シフトが、異なる符号ベクトル、すなわち、ネーム巡回符号を生じるよう、割切れるように選択される。メッセージの多項式ｍ（ｘ）は、ｃ（ｘ）＝ｍ（ｘ）*ｇ（ｘ）の関係に従って、符号語の多項式ｃ（ｘ）に写像される。
【０００５】
ＣＲＣ符号は、巡回符号のサブセットであり、２進の文字である「０」および「１」を用いる。符号語の演算は、たとえば２を法とする加算（論理ＸＯＲ）および２を法とする乗算（論理ＡＮＤ）に基づくことが考えられる。典型的なＣＲＣ符号化方式では、たとえばシステマティックな符号が用いられ、符号は、最も左の符号のビットが多項式の最高次を表すという規定を有する。したがって、符号語の多項式ｃ（ｘ）をｃ（ｘ）＝ｍ（ｘ）*ｘn-k＋ｒ（ｘ）というシステマティックな形式で書くことができ、ここでｒ（ｘ）は、ｘn-kおよび生成多項式ｇ（ｘ）の除算の剰余として規定され、メッセージに加えられるＣＲＣビットを表す。したがって、送信されるメッセージｃ（ｘ）はｋ個の情報ビットを含み、その後にｎ−ｋ個のＣＲＣビットが続く。
【０００６】
ＣＲＣ符号を用いたメッセージの符号化は、まず、ｍ（ｘ）およびｘn-kを乗算することによってメッセージにｋ個のビットを追加して、次に、ｇ（ｘ）でｍ（ｘ）*ｘn-kを除算することによって計算される任意の追加のｎ−ｋ個のＣＲＣビットをメッセージに追加することを含む。復号化は、まず、ｇ（ｘ）で量ｃ（ｘ）*ｘn-kを除算して、次に、その除算の剰余が０であるかどうかを判定することを含む。剰余が０であれば、チャネルによって誤りが生じていないか、または、検出不可能な誤りが生じているかのいずれかである。
【０００７】
ＣＲＣの実現例は、ハードウェアまたはソフトウェアのいずれかの方法を用いることが
できる。従来のハードウェアの実現例において、特に単純なＬＦＳＲ回路を含むＣＲＣブロックは、必要な計算を行なって、メッセージのデータを一度に１ビット処理する。ＣＲＣブロックは、一般に、ＣＲＣ符号を生成するために用いられるデータバスから多数のビットの（１バイト等の）データをラッチするデータレジスタを含む。
【０００８】
従来、中央処理装置（ＣＰＵ）と周辺ブロックとの間においてデータバス上で転送される数バイトの情報は、転送される１バイトのデータごとに２つのデータバスのアクセスを必要とする。一方のアクセスは、周辺ブロックとＣＰＵとの間でのデータバイトの転送から生じる。他方のアクセスは、ＣＰＵと必要とされるＣＲＣ符号を生成するためのＣＲＣブロックとの間で生じる。この二重のアクセス要件により、データ転送の効率が約５０パーセント減少する。データを符号化／復号化するのに必要とされるＣＲＣ符号を自動的に生成することができれば、バス上の転送効率を改善することができる。
【０００９】
したがって、ＣＲＣの誤り符号化を用いて交換されるデータの全体的な転送効率を高める、ＣＲＣ符号を生成するための改良された技術が必要とされる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
概要
したがって、１つの目的は、ＣＲＣ符号を用いた情報の転送に必要とされるデータバスのアクセスの数を減らすことによって、バス上での全体的な転送効率を高める方法および装置を提供することである。別の目的は、データバス上で交換されている情報にＣＲＣ符号を自動的に生成する方法および装置を提供することである。これらの目的は、アドレススヌープ技術を用いてＣＲＣ符号を自動的に生成するための方法および装置によって対処される。
【課題を解決するための手段】
【００１１】
一局面によると、構成は、上でデータがブロック間で交換されるアドレスバスおよびデータバスによって接続される少なくとも２つのブロックを含む。スヌープブロックは、アドレスバスおよびデータバスに接続され、データバスからアドレスを受取るように構成される。スヌープブロックは、データバスから受取ることのできるアドレスをマスキングして少なくとも１つのスヌープアドレスを生成するように構成されるアドレスマスキング回路を含む。ＣＲＣブロックは、データバスおよびスヌープブロックに接続され、アドレスバス上で運ばれるデータアドレスが少なくとも１つのスヌープアドレスと合致するとデータからＣＲＣ符号を生成するように構成される。
【００１２】
別の局面によると、データバス上で交換されているデータから巡回冗長検査（ＣＲＣ）符号を自動的に生成するための装置は、データバスに接続されてデータバスから受取ることのできるアドレスを記憶するように構成されるアドレスレジスタを含む。アドレスマスキング回路は、データバスから受取ることのできるアドレスをマスキングして少なくとも１つのスヌープアドレスを生成するように構成される。アドレス比較回路は、少なくとも１つの制御信号によってアドレスレジスタ、アドレスバス、およびＣＲＣブロックに接続され、少なくとも１つのスヌープアドレスとアドレスバス上で運ばれるデータアドレスとを比較して、少なくとも１つの制御信号を介してＣＲＣブロックに対し、データアドレスが少なくとも１つのスヌープアドレスと合致するとデータからＣＲＣ符号を生成するよう指令するように構成される。
【００１３】
別の局面によると、データバス上で交換されているデータから巡回冗長検査（ＣＲＣ）符号を自動的に生成するための方法は、データバスから受取ることのできるアドレスを記憶するステップを含む。記憶されたアドレスは、少なくとも１つのスヌープアドレスを生
成するためにマスキングされる。少なくとも１つのスヌープアドレスは、データバス上で交換されているデータのデータアドレスと比較される。データバス上で交換されているデータは、データアドレスが少なくとも１つのスヌープアドレスと合致すると補捉される。次に、この捕捉されたデータから、ＣＲＣ符号が生成される。
【００１４】
「含む」および「含んでいる」という語は、請求項だけでなくこの明細書で用いられる場合に、述べられた特徴、ステップまたは構成要素の存在を特定するために採用されているが、これらの用語を用いても、１つ以上の他の特徴、ステップ、構成要素もしくはそれらのグループの存在または追加を排除しないことを強調しておく。
【００１５】
上述の目的、特徴および利点は、同じ参照番号が同様のまたは同一の要素を特定する図面とともに以下の詳細な説明を参照することにより、より明らかになるであろう。
【発明を実施するための最良の形態】
【００１６】
詳細な説明
添付の図面を参照して、好ましい実施例を以下に説明する。以下の説明において、必要以上に詳細になることで説明が曖昧になることを避けるために、周知の機能および／または構成を詳細には説明しない。
【００１７】
データバス上でデータが転送される前に（または少なくともデータの転送と同時に）、誤り符号化されるべきデータのアドレスを知っておくことにより、そのアドレス情報をデータの現在の書込および／または読出アドレスと比較して、データブロックにＣＲＣ符号を自動的に生成するための適切な処置を行なうことができると出願人は発見した。これにより、ＣＲＣ符号生成器に／からデータを別個に転送する必要がなくなる。
【００１８】
このアドレス情報を得るための１つの技術は、特定のバスの動作（読出および／または書込動作等）中にアドレスバスを「スヌープ」することによる。アドレススヌープは、アドレスバスを受動的にモニタしてから、バス上で運ばれる現在の値に依存して特定の処置を行なう技術である。この明細書に記載されている技術は、アドレススヌープを用いて、ＣＲＣ生成ブロックにデータを自動的にロードして、ＣＲＣ符号を生成することを可能にする。
【００１９】
アドレススヌープを用いてＣＲＣ符号を生成するための演算システムを示す例示的なブロック図が図１に示される。示されている例示的な演算システムは、ＣＰＵ１０２および周辺ブロック１０４を含む。ＣＰＵ１０２および周辺ブロック１０４は、データバス１０６およびアドレスバス１０８の両方によって、ともに接続される。一般的な演算システムは、データバス１０６およびアドレスバス１０８に接続されるいくつかの周辺ブロック（図示せず）をさらに含んでよい。
【００２０】
例示のため、周辺ブロック１０４は、直列入出力装置（すなわちＳＩＯ）と考えることができるが、この明細書で説明される概念を、データバスおよびアドレスバス１０６／１０８に接続されるあらゆる種類の装置に適用することができる。ＣＰＵ１０２は、周辺ブロック１０４への／からのデータの転送と、必要とされるＣＲＣ符号を生成して転送されるデータに付加するＣＲＣブロック１１２への／からのデータの転送とを指令する。上で論じたように、ＣＰＵ１０２は、従来、ＣＲＣブロック１１２への／からのデータの転送に加え、周辺ブロック１０４への／からのデータの転送の両方を別個に指令して、所望のＣＲＣ符号の生成を行なっていた。これらの２つの別個の転送により、データバスの転送の効率が悪くなってしまう。
【００２１】
これらの効率の悪さに対処するために、図１に示される計算システムは、アドレススヌ
ープブロック１１０をさらに含む。アドレススヌープブロック１１０は、データバス１０６およびアドレスバス１０８の両方に接続される。スヌープブロック１１０は、データバス１０６に接続されるスヌープアドレスレジスタ１１４を含む。スヌープアドレスレジスタ１１４は、ＣＲＣ符号がＣＲＣブロック１１２によって生成されるべきデータのアドレスを記憶するために用いられる、１つのレジスタであってよく、または、レジスタのバンクを含んでよい。ＣＰＵ１０２は、所望のスヌープアドレスをデータバス１０６上に置くことによってスヌープアドレスレジスタ１１４をロードし、スヌープアドレスレジスタ１１４の適切なアドレスが、アドレスバス１０８に書込まれる。
【００２２】
スヌープブロック１１０は、スヌープアドレスレジスタ１１４およびアドレスバス１０８の両方に接続されるアドレス比較回路１１６をさらに含む。アドレス比較回路１１６は、アドレスレジスタ１１４に記憶されたアドレスが、アドレスバス１０８上で運ばれる現在のアドレスと合致するかどうかを判定することができる。アドレス比較回路１１６は、スヌープアドレスレジスタ１１４に記憶されたアドレスの多数のビットを「マスキングする」ことができるアドレスビットマスキング論理（図示せず）を含む。このような構成により、記憶された１つのスヌープアドレスが、いくつかの物理アドレス位置（アドレス位置のブロック等）に記憶されたデータを表わすことを可能にする。
【００２３】
たとえば、８ビットのスヌープアドレスレジスタ１１４である場合に、アドレス比較回路１１６のビットマスキング論理は、スヌープアドレスレジスタ１１４に記憶されたアドレスの４つの最上位のビット（ＭＳＢ）のみと、アドレスバス１０８上で運ばれるアドレスとを比較するように構成することができる。すなわち、４つの最下位のビット（ＬＳＢ）はアドレスの比較の間は「マスキングされる」。
【００２４】
スヌープアドレスレジスタ１１４に記憶されたアドレスが、アドレスバス１０８上で運ばれる現在のアドレスと合致すると、アドレス比較回路１１６は、アドレス比較論理１１６とＣＲＣブロック１１２との間で接続されるＣＲＣイネーブル信号１２０を活性化することができる。スヌープブロック１１０はさらに、アドレス比較論理１１６をイネーブル／ディスエーブルにするために用いられるＣＰＵのプログラマブルな制御論理１１８をさらに含むことができる。
【００２５】
スヌープアドレスイネーブル／ディスエーブル論理１１８がアドレス比較論理１１６をイネーブルにするように構成されると、ＣＲＣイネーブル信号１２０は、スヌープアドレスレジスタ１１４に記憶されたアドレスがアドレスバス１０８上で記憶される現在のアドレスと合致するたびに、活性化される。スヌープアドレスイネーブル／ディスエーブル論理１１８がアドレス比較論理１１６をディスエーブルにするように構成されると、ＣＲＣイネーブル信号１２０は、スヌープアドレスレジスタ１１４に記憶されたアドレスがアドレスバス１０８上で記憶される現在のアドレスと合致しても活性化されない。スヌープアドレスイネーブル／ディスエーブル論理１１８は、たとえば書込動作、読出動作、または書込および読出動作の両方がシステムで生じるたびに、アドレス比較論理１１６をイネーブル／ディスエーブルにするように構成することができる。
【００２６】
ＣＲＣブロックは、アドレス比較論理１１６によって生成されたＣＲＣイネーブル信号１２０とデータバス１０６との両方に接続されるＣＲＣ入力レジスタ１２２を含む。上述のように、アドレス比較論理１１６がイネーブルにされると、ＣＲＣイネーブル信号１２０は、スヌープアドレスレジスタ１１４に記憶されたアドレスがアドレスバス１０８上で運ばれる現在のアドレスと合致するたびに活性化される。ＣＲＣイネーブル信号１２０が活性化することにより、データバス１０６上で現在運ばれているデータは、ＣＲＣ入力レジスタ１２２内にラッチされる。次に、ＣＲＣ入力レジスタ１２２内にラッチされたデータは、ＣＲＣ入力レジスタ１２２に接続されるＣＲＣ生成回路１２４に渡されて、ＣＲＣ
生成回路１２４は、データに必要なＣＲＣ符号を生成する。次に、生成されたＣＲＣ符号は、ＣＲＣ生成回路１２４に接続されたＣＲＣデータレジスタ１２６に渡される。ＣＲＣデータレジスタは、双方向のバスを介してデータバス１０６にさらに接続されているため、生成されたＣＲＣ符号は、誤り検査のために、データバス１０６を介して渡されるか、または読出される。
【００２７】
ＣＲＣの生成をアドレススヌープ能力と組合せる上述の構成により、ＣＲＣ誤り符号化されるべきデータは、必要とされるＣＲＣ符号を生成するためにＣＲＣブロック１１２に直接書込まれる必要はない。その代わりに、上述の構成により、ＣＲＣブロック１１２は、データがシステム内の特定のアドレスまたはアドレスのグループに対応する周辺ブロックもしくはＳＩＯから読出されるか、または周辺ブロックもしくはＳＩＯに書込まれるたびに、ＣＲＣ符号を生成するためにデータバス１０６上に既に常駐しているデータを自動的にラッチすることができる。
【００２８】
アドレススヌープ能力がなければ、ＣＰＵ１０２はデータバス１０６上での転送を行なうために、データを二度書込むように指令しなければならない。すなわち、一度は転送用に周辺ブロック１０４に、二度目は必要とされるＣＲＣ符号を生成するためにＣＲＣブロック１１２に書込むように指令しなければならない。したがって、システムのブロック間で交換されるデータのアドレスを「スヌープ」することにより、ＣＲＣブロック１１２内にデータを自動的にロードすることができ、（たとえば周辺ブロック１０４およびＣＲＣブロック１１２に二度書込まれるべきデータを読出すシステムにおいて）システム適用例に対するバスの帯域幅の要件を５０パーセントまで減じる。
【００２９】
好ましくは、スヌープブロック１１０およびＣＲＣブロック１１２は、独立型のブロックとして実現され、システムにおいてＣＰＵ１０２がデータを読出すか、またはデータを書込む、任意の周辺ブロック１０４によって別個に用いられ得る。しかしながら、そうである必要はなく、これらの２つのブロックの機能を１つのスヌープ／ＣＲＣブロック（図示せず）に統合してもよい。
【００３０】
ＣＲＣ符号を生成するための例示的な方法を説明するフロー図を、図２に示す。図１に示された例示的な構成のブロックを参照してこの方法のステップを説明するが、当業者は、説明される方法を実施するために、他の構成を用いてよいことを理解されるであろう。
【００３１】
この方法はステップ２０２で始まり、ここでＣＲＣ符号が生成されるべきデータの位置に対応するアドレスが、たとえばスヌープブロック１１０のスヌープアドレスレジスタ１１４内に記憶される。１つまたはいくつかのアドレスがスヌープアドレスレジスタ１１４に記憶され得ることを思い出されたい。この方法は、次にステップ２０４に進み、ここで、記憶されたアドレスがマスキングされて、少なくとも１つのスヌープアドレスが生成される。たとえば、スヌープアドレスレジスタ１１４内に記憶されたアドレスの多数のビットを「マスキングする」ことができ、記憶された１つのアドレスが、システム内のいくつかの物理アドレス位置（アドレス位置のブロック等）に記憶されたデータを表わし得ることを思い出されたい。
【００３２】
ステップ２０６において、アドレススヌープ／ＣＲＣ符号の生成がイネーブルにされるか、またはディスエーブルにされるかが判定される。ディスエーブルにされる場合、データの処理はこれ以上行なわれず、過程はステップ２１４で終了する。しかしながら、ＣＰＵ１０２は、ＣＲＣ入力レジスタ１２２にデータを引き続き直接書込むように指令して、ＣＲＣ符号を「手動で」生成することができる。アドレススヌープ／ＣＲＣ符号生成をイネーブルにするか、またはディスエーブルにするかは、たとえばＣＰＵ１０２によって直接構成することができ、または、システムで書込および／または読出動作等の特定の動作
が生じているかどうかに依存することが考えられる。イネーブルにする場合、ルーチンはステップ２０８に進む。
【００３３】
ステップ２０８において、たとえばアドレスバス１０８上で運ばれるデータアドレスが、たとえばアドレスマスキング回路（図示せず）によって生成された少なくとも１つのスヌープアドレスと合致しているかどうかが判定される。アドレスの合致が生じなければ、アドレスの合致が検出されるまで、過程はステップ２０６に戻る。一旦アドレスの合致が検出されると、ルーチンはステップ２１０に進み、ここで、データバス１０６上で現在運ばれているデータは、たとえばＣＲＣブロック１１２のＣＲＣ入力レジスタ１２２内にラッチされることによって捕捉される。
【００３４】
データは、たとえばＣＲＣ入力レジスタ１２２内にラッチされることによって一旦捕捉されると、次に、ステップ２１２においてＣＲＣ生成回路１２４によって処理されて、ここで、データを誤り符号化するために必要なＣＲＣ符号が生成される。生成されたＣＲＣ符号は、データバス１０６を介して誤り符合化／検査の目的での利用が可能になる。ＣＲＣ符号が生成されると、過程はステップ２１４で終了する。
【００３５】
上に示されたこの方法のステップが、適切なプロセッサによって実行されるソフトウェア、または特定用途向け集積回路（ＡＳＩＣ）等のハードウェアのいずれかによって、容易に実現できることを認識されたい。
【００３６】
多数の例示的な実施例に関してさまざまな局面を説明してきた。これらの実施例を容易に理解するために、多くの局面を、コンピュータシステムの要素が行なうことのできる処置のシーケンスに関して説明してきた。たとえば、実施例の各々において、さまざまな処置が、専用の回路（専用の機能を実行するために相互接続された個別の論理ゲート等）、１つ以上のプロセッサによって実行されるプログラム命令、または両方の組合せによって行なわれ得ることが認識されるであろう。
【００３７】
さらに、例示的な実施例は、この明細書で説明した技術をプロセッサに実施させる、コンピュータの適切な命令セットを予め記憶した、コンピュータによる読出可能な記憶媒体の任意の形態の一部と考えることができる。したがって、さまざまな局面を多くの異なる形態で実現することができ、このような形態のすべては、説明してきた内容の範囲内にあると考えられる。さまざまな局面の各々に対し、実施例のこのような任意の形態は、この明細書において、説明した処置を実行する「ように構成された論理」、または代替的に、説明した処置を実行「する論理」と呼ぶことができる。
【００３８】
種々の例示的な実施例を説明してきたが、当業者は、これらの実施例が単に例示であり、他の多くの実施例が可能であることを理解するであろう。この発明の意図される範囲は、上述の説明よりも前掲の請求項によって規定され、請求項の範囲内にあるすべての変更例は、この発明に包含されることが意図される。
【図面の簡単な説明】
【００３９】
【図１】例示的な実施例に従った、ＣＲＣ符号を自動的に生成するためのシステムを示すブロック図である。
【図２】例示的な実施例に従った、ＣＲＣ符号を自動的に生成するための方法を示すフロー図である。
【符号の説明】
【００４０】
１０２  ＣＰＵ、１０４  周辺ブロック、１０６  データバス、１０８  アドレスバス、１１０  スヌープブロック、１１２  ＣＲＣブロック。
【図１】
2004159333.tif 000003
【図２】
2004159333.tif 000004
【外国語明細書】
2004159333000001.pdf