(57)【要約】【課題】  演算処理量を削減することが可能なＣＲＣ演算装置及びＣＲＣ演算方法を提供すること。【解決手段】  メモリ１２は、固定領域の値が全て０の場合について、異なる可変領域の値を有するデータのそれぞれに対して得られるＣＲＣ演算結果を記憶する。第一のＣＲＣ演算結果取得部１３は、メモリ１２から、入力データから変更部分抽出部１１により抽出された可変領域の値と同一の値に対応付けて記憶されている演算結果を読み出して出力する。第二のＣＲＣ演算結果取得部１４は、入力データにおける可変領域が０の場合に得られる第二のＣＲＣ演算結果を出力する。ＸＯＲ演算部１５は、第一及び第二のＣＲＣ演算結果取得部１３、１４からの出力に対して排他的論理和演算し、入力データのＣＲＣ演算結果として出力する。【選択図】  図１
2006185090.tif 000002
【特許請求の範囲】
【請求項１】
取り得る値が可変な可変領域と、値が固定された固定領域とを有するデータ形式のデータを対象として、巡回冗長検査の演算を行うＣＲＣ演算装置であって、
前記固定領域の値が全て０の場合について、異なる可変領域の値を有するデータのそれぞれに対して得られる巡回冗長検査の演算結果を、前記可変領域の値に対応付けて記憶する記憶手段と、
前記記憶手段から、巡回冗長検査の演算の対象となる演算対象データにおける可変領域の値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力する第一のＣＲＣ演算結果出力手段と、
前記演算対象データにおける可変領域が０の場合に得られる第二のＣＲＣ演算結果を出力する第二のＣＲＣ演算結果出力手段と、
前記第一のＣＲＣ演算結果と前記第二のＣＲＣ演算結果とに対して排他的論理和演算し、前記演算対象データのＣＲＣ演算結果として出力する排他的論理和演算手段と、
を備えるＣＲＣ演算装置。
【請求項２】
請求項１記載のＣＲＣ演算装置であって、
前記演算対象データから、可変領域の位置及び値を抽出する変更部分抽出手段を更に備え、
前記記憶手段は、前記記憶する演算結果を、可変領域の値及び位置に対応付けて記憶し、
前記第一のＣＲＣ演算結果出力手段は、前記記憶手段から、前記抽出された可変領域の位置及び値と同一の可変領域の位置及び値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力し、
前記第二のＣＲＣ演算結果出力手段は、可変領域が０の場合に得られる演算結果を可変領域の位置に対応付けて保持し、前記抽出された可変領域の位置と一致した位置に対応付けられた演算結果を第二のＣＲＣ演算結果として出力するＣＲＣ演算装置。
【請求項３】
請求項１記載のＣＲＣ演算装置であって、
前記演算対象データの可変領域の値のみが入力される変更値入力手段を更に備え、
前記第一のＣＲＣ演算結果出力手段は、前記記憶手段から、前記変更値入力手段に入力された値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力し、
前記第二のＣＲＣ演算結果出力手段は、前記演算対象データの可変領域を０とした場合に得られる第二のＣＲＣ演算結果をあらかじめ保存し、出力するものであるＣＲＣ演算装置。
【請求項４】
取り得る値が可変な可変領域と値が固定された固定領域とを有するデータ形式のデータを対象として、巡回冗長検査の演算を行うＣＲＣ演算方法であって、
前記固定領域の値が全て０の場合について、異なる可変領域の値を有するデータのそれぞれに対して得られる巡回冗長検査の演算結果が、前記可変領域の値に対応付けて記憶された記憶手段から、巡回冗長検査の演算の対象となる演算対象データにおける可変領域の値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力するステップと、
前記演算対象データにおける可変領域が０の場合に得られる第二のＣＲＣ演算結果を出力するステップと、
前記第一のＣＲＣ演算結果と前記第二のＣＲＣ演算結果とに対して排他的論理和演算し、前記演算対象データのＣＲＣ演算結果として出力するステップと、
を有するＣＲＣ演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、取り得る値が可変な可変領域と、値が固定された固定領域とを有するデータ形式のデータを対象として、巡回冗長検査の演算を行うＣＲＣ演算装置及びＣＲＣ演算方法に関する。
【背景技術】
【０００２】
データ通信やディジタルデータ処理等において、そのデータの誤り検出方式として、巡回冗長検査（Cyclic Redundancy Check、以下、ＣＲＣ）が広く使用されている。この誤り検出方式は、送信側において、伝送するデータに対して所定の生成多項式を用いてＣＲＣ符号を生成して、伝送するデータの後に付加する。受信側では、伝送されてきたデータに対して同じ生成多項式を用いてＣＲＣ符号を算出し、送信側から付加されてきたものと一致すれば伝送されたデータに誤りがないと判定し、一致しなければ誤りがあると判定するものである。
【０００３】
上述の誤り検出方式を使用するにあたって、一般的に、あるデータのＣＲＣ演算結果を求める場合、生成多項式を用いて１ビット単位の論理演算を繰り返し行う方法や、一定数のビットに対する演算結果をテーブルとして準備しておき、対象となるデータを数ビット単位に区切り、順次処理していく方法などが用いられる。
【０００４】
演算テーブルを用いてＣＲＣを求めるＣＲＣ演算装置の一例として、ＣＲＣ符号を演算するため、予めベクトルと行列との積の演算結果をＣＲＣ演算テーブルとして用意しておき、ベクトルと行列との積を計算する場合は、ＣＲＣ演算テーブルを参照して計算結果を得る２元巡回符号符号化装置があった（例えば、特許文献１参照）。
【特許文献１】特開平９−２９８４７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のＣＲＣ演算装置にあっては、長さや値が様々なデータに対する柔軟性を持つ一方で、例えばテストデータのように、固定長かつ決まったフォーマットを持ち、一部の領域のみが変化するようなデータに対しても、データ長に応じた演算が必要となる。すなわち、どのようなデータフォーマットに対してもそのデータ長に応じた分の演算処理時間を必要とするといった事情があった。
【０００６】
本発明は、上記従来の事情に鑑みてなされたものであって、演算処理量を削減することが可能なＣＲＣ演算装置及びＣＲＣ演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明のＣＲＣ演算装置は、取り得る値が可変な可変領域と、値が固定された固定領域とを有するデータ形式のデータを対象として、巡回冗長検査の演算を行うＣＲＣ演算装置であって、前記固定領域の値が全て０の場合について、異なる可変領域の値を有するデータのそれぞれに対して得られる巡回冗長検査の演算結果を、前記可変領域の値に対応付けて記憶する記憶手段と、前記記憶手段から、巡回冗長検査の演算の対象となる演算対象データにおける可変領域の値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力する第一のＣＲＣ演算結果出力手段と、前記演算対象データにおける可変領域が０の場合に得られる第二のＣＲＣ演算結果を出力する第二のＣＲＣ演算結果出力手段と、前記第一のＣＲＣ演算結果と前記第二のＣＲＣ演算結果とに対して排他的論理和演算し、前記演算対象データのＣＲＣ演算結果として出力する排他的論理和演算手段と、を備える。
【０００８】
この構成により、演算対象となるデータに対して、ＣＲＣ演算の特性を用いて、あらかじめ記憶した演算結果を用いて排他的論理和演算を行ってＣＲＣ演算結果を求めるので、演算処理量を削減することができる。
【０００９】
また、本発明のＣＲＣ演算装置は、前記演算対象データから、可変領域の位置及び値を抽出する変更部分抽出手段を更に備え、前記記憶手段は、前記記憶する演算結果を、可変領域の値及び位置に対応付けて記憶し、前記第一のＣＲＣ演算結果出力手段は、前記記憶手段から、前記抽出された可変領域の位置及び値と同一の可変領域の位置及び値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力し、前記第二のＣＲＣ演算結果出力手段は、可変領域が０の場合に得られる演算結果を可変領域の位置に対応付けて保持し、前記抽出された可変領域の位置と一致した位置に対応付けられた演算結果を第二のＣＲＣ演算結果として出力する。
【００１０】
この構成により、演算対象となるデータの可変領域の位置が一定ではない場合にも、演算処理量を削減したＣＲＣ演算を行うことができる。
【００１１】
また、本発明のＣＲＣ演算装置は、前記演算対象データの可変領域の値のみが入力される変更値入力手段を更に備え、前記第一のＣＲＣ演算結果出力手段は、前記記憶手段から、前記変更値入力手段に入力された値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力し、前記第二のＣＲＣ演算結果出力手段は、前記演算対象データの可変領域を０とした場合に得られる第二のＣＲＣ演算結果をあらかじめ保存し、出力するものである。
【００１２】
この構成により、演算対象となるデータの可変領域の位置が一定の場合には、可変領域の値を入力するだけで、ＣＲＣ演算を行うことができる。
【００１３】
本発明のＣＲＣ演算方法は、取り得る値が可変な可変領域と値が固定された固定領域とを有するデータ形式のデータを対象として、巡回冗長検査の演算を行うＣＲＣ演算方法であって、前記固定領域の値が全て０の場合について、異なる可変領域の値を有するデータのそれぞれに対して得られる巡回冗長検査の演算結果が、前記可変領域の値に対応付けて記憶された記憶手段から、巡回冗長検査の演算の対象となる演算対象データにおける可変領域の値と同一の値に対応付けて記憶されている演算結果を読み出して、第一のＣＲＣ演算結果として出力するステップと、前記演算対象データにおける可変領域が０の場合に得られる第二のＣＲＣ演算結果を出力するステップと、前記第一のＣＲＣ演算結果と前記第二のＣＲＣ演算結果とに対して排他的論理和演算し、前記演算対象データのＣＲＣ演算結果として出力するステップと、を有する。
【００１４】
この方法により、演算対象となるデータに対して、ＣＲＣ演算の特性を用いて、あらかじめ記憶した演算結果を用いて排他的論理和演算を行ってＣＲＣ演算結果を求めるので、演算処理量を削減することができる。
【発明の効果】
【００１５】
本発明によれば、演算処理量を削減することが可能なＣＲＣ演算装置及びＣＲＣ演算方法を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について、図面を参照して説明する。まず、巡回冗長検査（以下、ＣＲＣ）演算の特性について説明する。
【００１７】
図６は、ＣＲＣ演算の特性を示す説明図であり、図６（Ａ）は領域ＰにおいてＸの値を有するデータ、図６（Ｂ）は領域ＰにおいてＸ、それ以外の領域において０の値を有するデータ、図６（Ｃ）は領域Ｐにおいて０、それ以外の領域において図６（Ａ）に示されたデータと同じ値を有するデータをそれぞれ示す。
【００１８】
図６（Ａ）に示されたデータのＣＲＣ演算結果をＡ、図６（Ｂ）に示されたデータのＣＲＣ演算結果をＢ、図６（Ｃ）に示されたデータのＣＲＣ演算結果をＣとすると、ＣＲＣ演算結果Ａは、下記の式（１）で表される。
Ａ  ＝  Ｂ  ＸＯＲ  Ｃ      ・・・（１）
ここで、「ＸＯＲ」は排他的論理和を示す。
【００１９】
図６に示された例において、このＸを可変であれば、そのＸに応じた図６（Ｂ）のデータのＣＲＣ演算結果と図６（Ｃ）のデータのＣＲＣ演算結果との排他的論理和を取ることで、可変な値であるＸに応じた図６（Ａ）に示されるデータのＣＲＣ演算結果を得ることができる。
【００２０】
本実施形態のＣＲＣ演算装置は、上記の特性を用いて、取り得る値が可変な可変領域と、値が固定された固定領域とを有するデータ形式のデータを対象としてＣＲＣ演算を行う場合に、図６（Ｂ）及び図６（Ｃ）に示されるようなデータのＣＲＣ演算結果をあらかじめ演算して記憶し、記憶した演算結果を用いて排他的論理和演算を行ってＣＲＣ演算結果を求めるものである。
【００２１】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るＣＲＣ演算装置の概略構成を示すブロック図である。
【００２２】
図１に示すように、ＣＲＣ演算装置１０は、変更部分抽出部１１と、メモリ１２と、第一のＣＲＣ演算結果取得部１３と、第二のＣＲＣ演算結果取得部１４と、排他的論理和演算部（以下、ＸＯＲ演算部）１５とを有する構成である。
【００２３】
変更部分抽出部１１は、ＣＲＣ演算の対象となる、決まったフォーマットに従う入力データから値の変化する領域（以下、可変領域）の値を抽出する。この可変領域は、図６に示されるデータの例では、領域Ｐに対応する部分である。
【００２４】
メモリ１２は、値の変化しない領域を０として、可変領域において取り得る全ての値に対するＣＲＣ演算の結果を記憶する。図２は、メモリ１２に記憶される内容を示す説明図である。メモリ１２は、可変領域Ｐ以外の値が０の場合について、可変領域Ｐの取り得る値０〜ｎを有するデータ２００〜２０ｎのそれぞれに対して得られるＣＲＣ演算結果ＣＲＣ０〜ＣＲＣｎを、可変領域Ｐの値０〜ｎに対応付けて記憶する。
【００２５】
第一のＣＲＣ演算結果取得部１３は、変更部分抽出部１１により抽出された可変領域の値と同一の値に対応付けて記憶されているＣＲＣ演算結果をメモリ１２から取得し、ＸＯＲ演算部１５へ出力する。例えば、変更部分抽出部１１により抽出された可変領域の値がｎであれば、図２に示すＣＲＣ演算結果ＣＲＣｎを読み出す。
【００２６】
第二のＣＲＣ演算結果取得部１４は、決まったフォーマットに従う入力データから、可変領域を０としたデータ（例えば、図６（Ｃ）に示されたデータ）のＣＲＣをあらかじめ演算して保持しておき、入力データに対するＣＲＣ演算時に、保持してあるＣＲＣを取得してＸＯＲ演算部１５へ出力する。
【００２７】
ＸＯＲ演算部１５は、第一のＣＲＣ演算結果取得部１３が取得したＣＲＣ演算結果と、第二のＣＲＣ演算結果取得部１４が取得したＣＲＣ演算結果と排他的論理和を演算し、入力データに対するＣＲＣ演算結果を求め、演算で得た結果を出力データとして出力する。
【００２８】
以上のように構成されたＣＲＣ演算装置について、図３に示すフローチャートに基づいてその動作を説明する。
【００２９】
まず、変更部分抽出部１１は、入力データより、可変領域の値を抽出する（ステップＳ３０１）。
【００３０】
次に、第一のＣＲＣ演算結果取得部１３はステップＳ３０１において変更部分抽出部１１が抽出した値に対応するＣＲＣ演算結果をメモリ１２から取得する（ステップＳ３０２）。
【００３１】
第二のＣＲＣ演算結果取得部１４は、あらかじめ演算して保持されている、決まったフォーマットに従う入力データから、可変領域を０としたデータ（例えば、図６（Ｃ）に示されたデータ）のＣＲＣを取得する（ステップＳ３０３）。
【００３２】
そして、ＸＯＲ演算部１５は、ステップＳ３０２において取得したＣＲＣ演算結果と、ステップＳ３０３において取得した演算結果との排他的論理和を演算し、入力データに対するＣＲＣ演算結果として出力し（ステップＳ３０４）、処理を終了する。
【００３３】
なお、上述のＣＲＣ演算装置では、入力データの可変領域の位置が変わらない場合について説明したが、入力データの可変領域の位置が複数種類であってもよい。
【００３４】
この場合、変更部分抽出部１１は、入力データから変更部分の位置及びその値を抽出する。メモリ１２は、異なる可変領域の位置に対応した、固定領域を０、可変領域の値を変化させたデータのＣＲＣ演算結果を、可変領域の位置と値に対応付けて記憶する。そして、第一のＣＲＣ演算結果取得部１３では、メモリ１２から抽出した可変領域の位置及び値に対応付けられたＣＲＣ演算結果を取得する。第二のＣＲＣ演算結果取得部は、入力され得る可変領域の位置に対応し、それぞれ可変領域を０としたデータのＣＲＣ演算結果をあらかじめ保持し、抽出された可変領域の位置に応じてＣＲＣ演算結果をＸＯＲ演算部１５に出力する。
【００３５】
この構成により、演算対象となるデータの可変領域の位置が一定ではない場合にも、演算処理量を削減したＣＲＣ演算を行うことができる。
【００３６】
また、入力データの可変領域が複数あり、それらが同時に可変となっていてもよい。図７は、複数の領域が同時に可変な場合のＣＲＣ演算の説明図である。
【００３７】
図７に示すように、可変領域がＰ，Ｑ，Ｒの３箇所である場合、メモリ１２は、可変領域Ｐ以外が０で可変領域Ｐの取り得る値全てに対するＣＲＣと、可変領域Ｑ以外が０で可変領域Ｑの取り得る値全てに対するＣＲＣと、可変領域Ｒ以外が０で可変領域Ｒの取り得る値全てに対するＣＲＣと、を記憶する。
【００３８】
また、第二のＣＲＣ演算結果取得部１４は、可変領域Ｐ，Ｑ，Ｒに対応する部分が０の場合のＣＲＣをあらかじめ演算し、保持しておく。この演算結果をＥとする（図７（Ｅ）参照）。
【００３９】
そして、図７（Ａ）に示すように、ＣＲＣの演算対象となるデータが、可変領域Ｐの値がｘ、可変領域Ｑの値がｙ、可変領域Ｒの値がｚである場合、第一のＣＲＣ演算結果取得部１３は、メモリ１２から、可変領域Ｐ以外が０で可変領域Ｐの値がｘの場合のＣＲＣ演算結果であるＸ（図７（Ｂ）参照）と、可変領域Ｑ以外が０で可変領域Ｑの値がｙの場合のＣＲＣ演算結果であるＹ（図７（Ｃ）参照）と、可変領域Ｒ以外が０で可変領域Ｒの値がｚの場合のＣＲＣ演算結果であるＺ（図７（Ｄ）参照）と、を読み出して取得する。
【００４０】
また、第二のＣＲＣ演算結果取得部１４は、あらかじめ保持されているＣＲＣ演算結果であるＥを取得する。
【００４１】
このとき、図７（Ａ）に示されるＣＲＣ演算対象となるデータのＣＲＣをαとすると、下記の式（２）で表される。
α  ＝  Ｘ  ＸＯＲ  Ｙ  ＸＯＲ  Ｚ  ＸＯＲ  Ｅ    ・・・  （２）
【００４２】
この構成により、複数の領域が同時に可変となっている場合にも、演算処理量を削減したＣＲＣ演算を行うことができる。
【００４３】
このような本発明の第１の実施形態によれば、演算対象となる入力データから可変領域を抽出し、ＣＲＣ演算の特性を用いて、あらかじめ記憶した演算結果を用いて排他的論理和演算を行ってＣＲＣ演算結果を求めるので、演算処理量を削減することができる。
【００４４】
（第２の実施形態）
図４は、本発明の第２の実施形態に係るＣＲＣ演算装置の概略構成を示すブロック図である。同図において、第１の実施形態で説明した図１と重複する部分には同一の符号を付す。
【００４５】
本実施形態のＣＲＣ演算装置４０は、可変領域の位置が不変で、かつ固定領域の取り得る値の配列の種類が一種類のみである場合に用いられるものである。図２に示すように、本実施形態のＣＲＣ演算装置４０は、可変領域の値が０、固定領域の値が前述の配列であるデータのＣＲＣ演算結果を記憶する第二のＣＲＣ演算結果記憶部４１が設けられており、そのＣＲＣ演算結果をＸＯＲ演算部１５に出力する。
【００４６】
また、第一のＣＲＣ演算結果取得部１３には、可変領域の値が入力され、メモリ１２から可変領域の値に対応付けられた、固定領域０のデータのＣＲＣ演算結果を読み出してＸＯＲ演算部１５に出力する。
【００４７】
以上のように構成されたＣＲＣ演算装置４０について、図５を用いてその動作を説明する。
【００４８】
まず、第一のＣＲＣ演算結果取得部１３が入力された可変領域の値を取得し（ステップＳ５０１）、その取得した可変領域の値に対応するＣＲＣ演算結果をメモリ１２から取得する（ステップＳ５０２）。
【００４９】
ＸＯＲ演算部１５が、第二のＣＲＣ演算結果記憶部４１に記憶されているＣＲＣ演算結果を取得し（ステップＳ５０３）、その取得したＣＲＣ演算結果と、ステップＳ５０２で取得した値が可変領域の値に対応するＣＲＣ演算結果とで排他的論理和を演算し、入力された可変領域の値に対応したデータのＣＲＣ演算結果として、出力する（ステップＳ５０４）。
【００５０】
このような本発明の第２の実施形態によれば、演算対象となるデータの可変領域の位置が一定の場合には、可変領域の値を入力するだけで、ＣＲＣ演算を行うことができる。
【産業上の利用可能性】
【００５１】
本発明のＣＲＣ演算装置及びＣＲＣ演算方法は、演算処理量を削減することが可能な効果を有し、一部領域のみが可変なテストデータを生成する装置におけるＣＲＣ演算部等に有用である。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施形態に係るＣＲＣ演算装置の概略構成を示すブロック図
【図２】メモリに記憶される内容を示す説明図
【図３】第１の実施形態に係るＣＲＣ演算装置の動作を示すフローチャート図
【図４】本発明の第２の実施形態に係るＣＲＣ演算装置の概略構成を示すブロック図
【図５】第２の実施形態に係るＣＲＣ演算装置の動作を示すフローチャート図
【図６】ＣＲＣ演算の特性を示す説明図
【図７】複数の領域が同時に可変な場合のＣＲＣ演算の説明図
【符号の説明】
【００５３】
１０、４０  ＣＲＣ演算装置
１１  変更部分抽出部
１２  メモリ
１３  第一のＣＲＣ演算結果取得部
１４  第二のＣＲＣ演算結果取得部
１５  ＸＯＲ演算部
４１  第二のＣＲＣ演算結果記憶部
【図１】
2006185090.tif 000003
【図２】
2006185090.tif 000004
【図３】
2006185090.tif 000005
【図４】
2006185090.tif 000006
【図５】
2006185090.tif 000007
【図６】
2006185090.tif 000008
【図７】
2006185090.tif 000009