JP6351530B2 - 通信装置及び制御方法 - Google Patents

通信装置及び制御方法 Download PDF

Info

Publication number
JP6351530B2
JP6351530B2 JP2015058621A JP2015058621A JP6351530B2 JP 6351530 B2 JP6351530 B2 JP 6351530B2 JP 2015058621 A JP2015058621 A JP 2015058621A JP 2015058621 A JP2015058621 A JP 2015058621A JP 6351530 B2 JP6351530 B2 JP 6351530B2
Authority
JP
Japan
Prior art keywords
value
remainder
storage unit
group
digit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015058621A
Other languages
English (en)
Other versions
JP2016178551A (ja
Inventor
一久 北村
一久 北村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PFU Ltd
Original Assignee
PFU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PFU Ltd filed Critical PFU Ltd
Priority to JP2015058621A priority Critical patent/JP6351530B2/ja
Publication of JP2016178551A publication Critical patent/JP2016178551A/ja
Application granted granted Critical
Publication of JP6351530B2 publication Critical patent/JP6351530B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)

Description

本発明は、通信装置及び制御方法に関し、特に、チェックコードを送信し且つ検証する通信装置及びその通信装置の制御方法に関する。
通信データの誤りを検出するために、CRC(Cyclic Redundancy Check)を用いた誤り検出方式が利用されている。近年、記憶装置の大容量化、通信インタフェース及びバスインタフェースの高速化等に伴って、単位時間に処理される通信データの量が増大してきており、大量のCRCを算出することが必要になっている。
通常、対象データを多項式に見立てて、予め定められた生成多項式で除算した剰余値がCRCとして用いられる。一般に、CRCを算出するために、対象データを1ビットずつシフトさせながら所定の比較減算処理を実行することにより、対象データの剰余値を算出する方法が用いられている。しかしながら、この方法では、1ビットずつ比較減算処理を実行する必要があるため、剰余値を算出するために多大な時間が必要となる。
剰余値の算出時間を短くするために、対象データが取り得る全ての値をそれぞれ生成多項式で除算した剰余値を予め算出してテーブルに記憶しておき、そのテーブルを参照することにより、対象データの剰余値を求める方法も考えられる。しかしながら、対象データのサイズが増大する程、必要となるテーブルのサイズは指数関数的に増大するため、記憶装置のサイズ及びコストが増大するという問題がある。
入力情報列に対応する多項式を生成多項式で除算したときの剰余を計算する剰余計算装置が知られている(特許文献1を参照)。この剰余計算装置は、複数の単位情報列の値をインデクスとして、対応する剰余情報列の値をそれぞれ保持する複数の剰余テーブルを記憶しておく。剰余計算装置は、対象情報列を複数の単位情報列に分割して、それぞれの単位情報列の値をインデクスとして複数の剰余テーブルを参照し、複数の剰余情報列の値を取得し、得られた複数の剰余情報列の排他的論理和に基づいて剰余を計算する。
また、入力情報ビット列を生成多項式により除算する除算装置が知られている(特許文献2を参照)。この除算装置は、入力情報ビット列を複数のサブビット列に分割する。除算装置は、各サブビット列の最下位のビットに対応する入力情報ビット列内におけるビット位置を1とし、他のビットを0としたビット列を生成多項式で除算して得られる剰余値を保持しておく。そして、除算装置は、各剰余値と、対応するサブビット列の乗算結果をモジュロ2加算し、生成多項式で除算する。
特開2008−11025号公報 特開2008−160663号公報
特許文献1に記載の剰余計算装置及び特許文献2に記載の除算装置では、効率良く入力情報列を生成多項式で除算することができる。
しかしながら、チェックコードを送信し且つ検証する通信装置では、高速にチェックコードを処理しつつ、記憶装置に格納しておくデータ量をより低減させることが求められている。
本発明の目的は、チェックコードを送信し且つ検証する通信装置において、高速にチェックコードを処理しつつ、記憶装置に格納しておくデータ量をより低減させることが可能な通信装置及び制御方法を提供することにある。
本発明の一側面に係る通信装置は、所定桁を有する送信データ及び受信データを通信する通信装置であって、所定桁の内の一部を有効桁とし且つ有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループに含まれる複数の値をそれぞれ所定値で除算した複数の剰余値をグループ毎に保持する記憶部と、送信データを複数のグループに分割し、複数のグループ毎に記憶部を参照して剰余値を取得し、取得した剰余値の総和に基づいて送信チェックコードを生成する生成部と、送信データを送信チェックコードとともに送信する送信部と、受信データ及び受信データに対する受信チェックコードを受信する受信部と、受信データに基づく値を複数のグループに分割し、複数のグループ毎に記憶部を参照して剰余値を取得し、取得した剰余値の総和に基づいて受信データ及び受信チェックコードを検証する検証部と、を有し、記憶部は、生成部及び検証部から同時に参照可能である。
また、本発明の他の側面に係る通信装置は、所定桁を有する送信データ及び受信データを通信する通信装置であって、所定桁の内の一部を有効桁とし且つ有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値をグループ毎に保持する第1記憶部と、所定の複数の値をそれぞれ所定値で除算した複数の剰余値を保持する第2記憶部と、送信データを複数のグループに分割し、複数のグループ毎に、第1記憶部を参照して剰余値を取得し、取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、第2記憶部を参照して乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成する生成部と、送信データを送信チェックコードとともに送信する送信部と、受信データ及び受信データに対する受信チェックコードを受信する受信部と、受信データに基づく値を複数のグループに分割し、複数のグループ毎に、第1記憶部を参照して剰余値を取得し、取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、第2記憶部を参照して乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて受信データ及び受信チェックコードを検証する検証部と、を有し、第2記憶部は、生成部及び検証部から複数のグループについて同時に参照可能である。
また、本発明の一側面に係る制御方法は、記憶部を有し、所定桁を有する送信データ及び受信データを通信する通信装置の制御方法であって、所定桁の内の一部を有効桁とし且つ有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループに含まれる複数の値をそれぞれ所定値で除算した複数の剰余値をグループ毎に記憶部に保持し、送信データを複数のグループに分割し、複数のグループ毎に記憶部を参照して剰余値を取得し、取得した剰余値の総和に基づいて送信チェックコードを生成し、送信データを送信チェックコードとともに送信し、受信データ及び受信データに対する受信チェックコードを受信し、受信データに基づく値を複数のグループに分割し、複数のグループ毎に記憶部を参照して剰余値を取得し、取得した剰余値の総和に基づいて受信データ及び受信チェックコードを検証することを含み、記憶部は、生成及び検証において同時に参照可能である。
また、本発明の他の側面に係る制御方法は、第1記憶部及び第2記憶部を有し、所定桁を有する送信データ及び受信データを通信する通信装置の制御方法であって、所定桁の内の一部を有効桁とし且つ有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値をグループ毎に第1記憶部に保持し、所定の複数の値をそれぞれ所定値で除算した複数の剰余値を第2記憶部に保持し、送信データを複数のグループに分割し、複数のグループ毎に、第1記憶部を参照して剰余値を取得し、取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、第2記憶部を参照して乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成し、送信データを送信チェックコードとともに送信し、受信データ及び受信データに対する受信チェックコードを受信し、受信データに基づく値を複数のグループに分割し、複数のグループ毎に、第1記憶部を参照して剰余値を取得し、取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、第2記憶部を参照して乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて受信データ及び受信チェックコードを検証することを含み、第2記憶部は、生成及び検証において複数のグループについて同時に参照可能である。
本発明によれば、チェックコードを送信し且つ検証する通信装置は、チェックコードの生成時及び検証時に、剰余値を算出するためのデータを共用できるため、高速にチェックコードを処理しつつ記憶装置に格納しておくデータ量をより低減させることが可能となる。
実施形態に係る通信装置100のハードウェア構成図示す図である。 複数のグループについて説明するための模式図である。 通信装置100による送信処理の動作の例を示すフローチャートである。 通信装置100による受信処理の動作の例を示すフローチャートである。 他の実施形態に係る通信装置200のハードウェア構成図示す図である。 他の実施形態に係る通信装置200のハードウェア構成図示す図である。 通信装置200による送信処理の動作の例を示すフローチャートである。 通信装置200による受信処理の動作の例を示すフローチャートである。
以下、本発明の一側面に係る通信装置及び制御方法について図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
図1は、実施形態に係る通信装置のハードウェア構成図示す図である。
通信装置100は、送信データを送信チェックコードとともに他の通信装置へ送信し、受信データを受信チェックコードとともに他の通信装置から受信する。以下では、CRCを送信チェックコード及び受信チェックコードの例として説明する。
図1に示すように、通信装置100は、記憶装置110と、CPU(Central Processing Unit)120と、生成回路130と、送信回路140と、受信回路150と、検証回路160とを有する。以下、通信装置100の各部について詳細に説明する。
記憶装置110は、記憶部の一例であり、ROM(Read Only Memory)等のメモリ装置を有する。記憶装置110は、マルチポートメモリであり、記憶装置110には、第1テーブル111、第2テーブル112、第3テーブル113及び第4テーブル114等が記憶される。記憶装置110では、複数のグループが設定され、第1テーブル111、第2テーブル112、第3テーブル113及び第4テーブル114には、それぞれ各グループに対応する剰余値が保持される。
図2は、複数のグループについて説明するための模式図である。
図2に示す例では、送信データ及び受信データが有する所定桁、即ち送信データ及び受信データの桁数を32ビット(4バイト)としている。また、この例では、32ビットの送信データ及び受信データを9ビット(但し最上位ビットが1)の除数値で除算することにより、8ビット(1バイト)の送信CRC及び受信CRCが算出される。なお、通信装置100において、送信データ、受信データ、除数値、送信CRC及び受信CRCの桁数は上記に限定されず、何桁であってもよい。
図2に示すように、送信データ及び受信データが有する所定桁の内の一部を有効桁とし且つ有効桁以外の桁を0とする複数の値から構成されるグループが複数個設定される。図2に示す例では、第0〜第7ビットを有効桁とする第1グループと、第8〜第15ビットを有効桁とする第2グループと、第16〜第23ビットを有効桁とする第3グループと、第24〜第31ビットを有効桁とする第4グループの4つのグループが設定される。即ち、第1グループは00000001(h)〜000000FF(h)の255個の値で構成される。第2グループは00000100(h)〜0000FF00(h)の255個の値で構成される。第3グループは00010000(h)〜00FF0000(h)の255個の値で構成される。第4グループは01000000(h)〜FF000000(h)の255個の値で構成される。このように各グループは、所定桁の全てが何れかのグループで有効桁となるように設定される。
第1テーブル111は、第1グループに含まれる各値をそれぞれ所定除数値で除算した複数の剰余値を、各値に対応する有効桁の桁値をインデックスとして保持する。なお、桁値とは、有効桁の中の最下位桁が1桁目となるように各値をシフトさせたときの値を意味する。即ち、桁値は、01(h)〜FF(h)の範囲の値である。同様に、第2テーブル112は、第2グループに含まれる各値をそれぞれ所定除数値で除算した複数の剰余値を、各値に対応する有効桁の桁値をインデックスとして保持する。同様に、第3テーブル113は、第3グループに含まれる各値をそれぞれ所定除数値で除算した複数の剰余値を、各値に対応する有効桁の桁値をインデックスとして保持する。同様に、第4テーブル114は、第4グループに含まれる各値をそれぞれ所定除数値で除算した複数の剰余値を、各値に対応する有効桁の桁値をインデックスとして保持する。所定除数値は、CRCの方式によって異なる値であり、例えばCRC−8では9ビットの1D5(h)が用いられている。なお、各テーブルは、さらにインデックス00(h)に対応して値0を保持する。即ち、各テーブルには、00(h)〜FF(h)をインデックスとして、256個の値が保持される。
CPU120は、記憶装置110、生成回路130、送信回路140、受信回路150及び検証回路160と接続され、これらの各部を制御する。CPU120は、通信装置100全体の動作を制御する。
CPU120は、他の通信装置へ送信する送信データを生成回路130及び送信回路140に出力する。また、CPU120は、他の通信装置から受信した受信データを受信回路150から取得し、その受信データを受信CRCに基づいて検証した結果を検証回路160から取得する。
なお、図1において「()」で囲まれた数字はその矢印が示すバスのビット幅を示し、「[]」で囲まれた数字はその矢印が示すバスで伝送されるデータのビット番号を示す。
生成回路130は、生成部の一例であり、分割回路131及び加算回路132を有する。
分割回路131は、CPU120から出力された送信データを複数のグループに分割し、各グループの有効桁の桁値を出力する。本実施形態では、分割回路131は、32ビットの送信データを、図2に示した第1〜第4グループの4つのグループに分割し、第0〜第7ビットの桁値と、第8〜第15ビットの桁値と、第16〜第23ビットの桁値と、第24〜第31ビットの桁値を出力する。
生成回路130は、分割回路131が出力した各グループの各桁値をそれぞれ記憶装置110の各テーブルに入力し、各グループ毎に記憶装置110の各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する。
本実施形態では、生成回路130は、第1テーブル111を参照し、第0〜第7ビットの桁値をインデックスとして、送信データの内、第0〜第7ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、生成回路130は、第2テーブル112を参照し、第8〜第15ビットの桁値をインデックスとして、送信データの内、第8〜第15ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、生成回路130は、第3テーブル113を参照し、第16〜第23ビットの桁値をインデックスとして、送信データの内、第16〜第23ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、生成回路130は、第4テーブル114を参照し、第24〜第31ビットの桁値をインデックスとして、送信データの内、第24〜第31ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。
加算回路132は、各テーブルを参照して取得した各剰余値をモジュロ2加算し、各剰余値の総和を送信CRCとして生成し、送信回路140に出力する。本実施形態では、加算回路132は、8ビットの各剰余値をモジュロ2加算して8ビットの送信チェックコードを生成し、出力する。
送信回路140は、送信部の一例であり、送信データバッファ141、送信CRCバッファ142及び送信制御回路143を有する。
送信データバッファ141は、RAM(Random Access Memory)等のメモリ装置を有し、CPU120から出力された送信データを一旦格納する。
送信CRCバッファ142は、RAM等のメモリ装置を有し、生成回路130から出力された送信CRCを一旦格納する。
送信制御回路143は、他の通信装置と通信可能なインタフェース回路を有し、他の通信装置又は中継装置とケーブルを用いて電気的に接続して各種のデータ及び情報を送信する。送信制御回路143は、例えばPCI Express等の規格に準じた通信を行うための回路を有する。なお、送信制御回路143は、USB(Universal Serial Bus)等のシリアルバスに準じるインタフェース回路を有し、USBケーブルを用いて他の通信装置と電気的に接続してもよい。または、送信制御回路143は、イーサネット(登録商標)等に準じる回路を有し、LAN(Local Area Network)ケーブルを用いて各通信装置と電気的に接続してもよい。
送信制御回路143は、送信データバッファ141から送信データを読み出すとともに、送信CRCバッファ142からその送信データに対する送信CRCを読み出す。送信制御回路143は、読み出した送信データ及び送信CRCを並べて、パラレル−シリアル変換し、他の通信装置へ送信する。
受信回路150は、受信部の一例であり、受信制御回路151、受信データバッファ152及び受信CRCバッファ153を有する。
受信制御回路151は、送信制御回路143と同様の、他の通信装置と通信可能なインタフェース回路を有し、他の通信装置又は中継装置とケーブルを用いて電気的に接続して各種のデータ及び情報を受信する。
受信制御回路151は、他の通信装置から送信された信号をシリアル−パラレル変換し、受信データ及びその受信データに対する受信CRCを受信する。受信制御回路151は、受信データを受信データバッファ152に書き込むとともに、受信CRCを受信CRCバッファ153に書き込む。
受信データバッファ152は、RAM等のメモリ装置を有し、受信制御回路151から書き込まれた受信データを一旦格納する。
受信CRCバッファ153は、RAM等のメモリ装置を有し、受信制御回路151から書き込まれた受信CRCを一旦格納する。
検証回路160は、検証部の一例であり、分割回路161、加算回路162及び一致回路163を有する。
分割回路161は、生成回路130の分割回路131と同様の回路であり、受信データバッファ152から受信データを読み出し、受信データに基づく値を複数のグループに分割し、各グループの有効桁の桁値を出力する。本実施形態では、分割回路161は、32ビットの受信データを、図2に示した第1〜第4グループの4つのグループに分割し、第0〜第7ビットの桁値と、第8〜第15ビットの桁値と、第16〜第23ビットの桁値と、第24〜第31ビットの桁値を出力する。
検証回路160は、分割回路161が出力した各グループの各桁値をそれぞれ記憶装置110の各テーブルに入力し、各グループ毎に記憶装置110の各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する。
本実施形態では、検証回路160は、第1テーブル111を参照し、第0〜第7ビットの桁値をインデックスとして、受信データの内、第0〜第7ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、検証回路160は、第2テーブル112を参照し、第8〜第15ビットの桁値をインデックスとして、受信データの内、第8〜第15ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、検証回路160は、第3テーブル113を参照し、第16〜第23ビットの桁値をインデックスとして、送信データの内、第16〜第23ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。同様に、検証回路160は、第4テーブル114を参照し、第24〜第31ビットの桁値をインデックスとして、送信データの内、第24〜第31ビット以外のビットを0とした値を所定除数値で除算した剰余値を取得する。
上述したように、記憶装置110は、マルチポートメモリであり、送信CRCの生成時及び受信CRCの検証時に生成回路130及び検証回路160から同時に参照可能である。したがって、通信装置100は、チェックコードの生成時及び検証時に各テーブルを共用できるため、記憶装置110に保持しておくテーブルのサイズを低減させることが可能となる。
加算回路162は、生成回路130の加算回路132と同様の回路であり、各テーブルを参照して取得した各剰余値をモジュロ2加算し、各剰余値の総和を算出し、一致回路163に出力する。本実施形態では、一致回路163は、8ビットの各剰余値をモジュロ2加算して8ビットの総和値を算出し、出力する。
一致回路163は、加算回路162から出力された各剰余値の総和に基づいて受信データ及び受信CRCを検証する。一致回路163は、受信CRCバッファ153から受信CRCを読み出し、加算回路162から出力された各剰余値の総和と比較する。一致回路163は、一致する場合、受信データに誤りがないことを示す値を、一致しない場合、受信データに誤りがあることを示す値を、それぞれ検証結果としてCPU120に出力する。
CPU120は、受信データバッファ152から受信データを読み出すとともに、一致回路163から出力された、その受信データに対する検証結果に基づいて、受信データに誤りがあるか否かを判定する。
このように、検証回路160は、受信データから剰余値を算出し、算出した剰余値と受信CRCが一致するか否かによって受信データ及び受信CRCを検証する。
なお、検証回路160は、受信データに受信CRCを加算した加算値の剰余値を算出し、算出した剰余値が0であるか否かによって受信データ及び受信CRCを検証してもよい。その場合、検証回路160は、受信データと受信CRCを加算して出力する加算回路を更に有し、分割回路161は、受信データ及び受信CRCの加算値を複数のグループに分割する。検証回路160は、各グループ毎に記憶装置110の各テーブルを参照して、分割回路161が出力した各グループの各桁値に対応する剰余値を取得し、加算回路162は、各剰余値の総和値を算出する。一致回路163は、各剰余値の総和と0を比較し、一致する場合、受信データに誤りがないことを示す値を、一致しない場合、受信データに誤りがあることを示す値を、それぞれ検証結果としてCPU120に出力する。CPU120は、検証結果に基づいて、受信データに誤りがあるか否かを判定する。
または、生成回路130は、送信データをCRCの桁数(8ビット)分だけ桁上げし(即ち、CRCの桁数分だけ左シフトし、新たに追加された下位ビットに0を埋める)、その桁上げしたデータについて送信CRCを算出してもよい。その場合、生成回路130は、桁上げしたデータを複数のグループに分割し、各グループ毎に剰余値を取得し、取得した剰余値の総和に基づいて送信CRCを生成する。送信回路140は、桁上げしたデータと送信CRCのモジュロ2加算(桁上げした下位ビットへの加算)を行ったデータを他の通信装置へ送信する。一方、そのデータを受信した通信装置の検証回路160は、受信したデータ全体(即ち、桁上げしたデータと送信CRCの加算値)を複数のグループに分割し、各グループ毎に剰余値を取得し、取得した剰余値の総和を算出する。一致回路163は、各剰余値の総和と0を比較し、一致する場合、受信データに誤りがないことを示す値を、一致しない場合、受信データに誤りがあることを示す値を、それぞれ検証結果としてCPU120に出力する。CPU120は、検証結果に基づいて、受信データに誤りがあるか否かを判定する。
以下、データを複数のグループに分割し、複数のグループ毎に除数値で除算した剰余値の総和に基づいて、そのデータの剰余値を算出できる理由及び効果について説明する。
例えば、32ビットのデータX=AABBCCDD(h)を9ビットの除数値n(但し最上位ビットが1)で除算した8ビットの剰余値を算出する場合、モジュロ2除算による剰余計算では分配則が成立するため、以下の等式(1)が成立する。なお、等式(1)において、modはモジュロ2除算による剰余を求める演算子を表す。
X mod n = AABBCCDD(h) mod n
= (AA000000(h) + 00BB0000(h) + 0000CC00(h) + 000000DD(h)) mod n
= (AA000000(h) mod n) + (00BB0000(h) mod n)
+ (0000CC00(h) mod n) + (000000DD(h) mod n) (1)
したがって、データを複数のグループに分割し、複数のグループ毎に除数値で除算した剰余値の総和は、そのデータを除数値で直接除算した剰余値と等しくなる。
例えば、32ビットのデータを9ビットの除数値で除算した8ビットの剰余値を予めテーブルに格納しておく場合、テーブルのサイズは、8ビット×(2の32乗)=約4ギガバイトとなる。CRCの生成と検証を行う通信装置では、このテーブルが2つ必要であるため、テーブルの全サイズは約8ギガバイトとなる。一方、本実施形態の通信装置100では、8ビット×(2の8乗)=256バイトのテーブルを4つ記憶しておけばよいため、テーブルの全サイズは1024バイトとなり、記憶装置110の記憶容量を大幅に低減させることができる。
なお、8ビットのデータを9ビットの除数値で除算した場合、その剰余値は、元の8ビットのデータと同一の値となる。したがって、第1グループの各値を9ビットの除数値で除算した剰余値は、第1グループの各値と同一の値となる。そこで、第1グループに対応する第1テーブル111を省略し、分割回路131又は161が出力した第1グループの各桁値を直接加算回路132又は162に入力させてもよい。これにより、記憶装置110の記憶容量をさらに低減させるとともに、通信装置100の回路構成を単純化させることが可能となる。
また、通信装置100が有する送信ポート及び受信ポートは、それぞれ1つのみに限定されず、複数でもよい。その場合、通信装置100は、送信ポートの数だけ、生成回路130及び送信回路140を有し、受信ポートの数だけ受信回路150及び検証回路160を有する。一方、通信装置100は、記憶装置110を一つのみ有し、その記憶装置110を全ての生成回路130及び検証回路160から同時にアクセス可能に構成する。その場合、各生成回路130及び各検証回路160は、一つの記憶装置110に格納された各テーブルを共用できる。したがって、通信装置100は、記憶装置のサイズ及び数を増大させることなく、送信ポート及び受信ポートの数を増大させることが可能となる。
図3は、通信装置100による送信処理の動作の例を示すフローチャートである。以下、図3に示したフローチャートを参照しつつ、送信処理の動作を説明する。なお、以下に説明する動作のフローは、主にCPU120により通信装置100の各要素と協働して実行される。
最初に、CPU120は、送信データを生成回路130及び送信回路140に出力する(ステップS101)。次に、分割回路131は、送信データを複数のグループに分割し、各グループの有効桁の桁値を出力する(ステップS102)。次に、生成回路130は、各グループの各桁値をそれぞれ各テーブルに入力し、各グループ毎に各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する(ステップS103)。次に、加算回路132は、各剰余値をモジュロ2加算し(ステップS104)、各剰余値の総和を送信CRCとして生成し、送信回路140に出力する(ステップS105)。次に、送信制御回路143は、送信データを送信CRCとともに、他の通信装置へ送信し(ステップS106)、一連のステップを終了する。
図4は、通信装置100による受信処理の動作の例を示すフローチャートである。以下、図4に示したフローチャートを参照しつつ、受信処理の動作を説明する。なお、以下に説明する動作のフローは、主にCPU120により通信装置100の各要素と協働して実行される。
最初に、受信制御回路151は、他の通信装置から、受信データ及びその受信データに対する受信CRCを受信する(ステップS201)。次に、分割回路161は、受信データを複数のグループに分割し、各グループの有効桁の桁値を出力する(ステップS202)。次に、検証回路160は、各グループの各桁値をそれぞれ各テーブルに入力し、各グループ毎に各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する(ステップS203)。次に、加算回路162は、各剰余値をモジュロ2加算し、各剰余値の総和を算出し、一致回路163に出力する(ステップS204)。次に、一致回路163は、各剰余値の総和と受信CRCを比較することにより、受信データ及び受信CRCを検証し、検証結果をCPU120に出力する(ステップS205)。次に、CPU120は、受信データバッファ152から受信データを読み出すとともに、検証結果に基づいて、受信データに誤りがあるか否かを判定し(ステップS206)、一連のステップを終了する。
以上詳述したように、通信装置100は、CRCの生成時及び検証時に、剰余値を算出するためのデータを共用できるため、高速にCRCを処理しつつ、記憶装置に格納しておくデータ量をより低減させることが可能となった。これにより、記憶装置のサイズ及びコストを低減させることが可能となり、通信装置全体のサイズ及びコストを低減させることが可能となった。
記憶装置としてシングルポートメモリを利用した場合、同時にアクセス可能なアドレス及びデータは1セットのみであるため、CRCの生成と検証のタイミングが重なった場合に処理の遅延が発生する。一方、通信装置100は、記憶装置110としてマルチポートメモリを利用することにより、同時に異なるアドレスから記憶装置110を参照することが可能となった。したがって、通信装置100は、CRCの生成と検証のタイミングが重なった場合でも、処理の遅延が発生することを防止することが可能となった。
図5及び図6は、他の実施形態に係る通信装置のハードウェア構成図示す図である。なお、図5及び図6は、同じ通信装置200のハードウェア構成図を示しており、図5では検証回路270の構成の表示を省略し、図6では生成回路240の構成の表示を省略している。
図5及び図6に示すように、通信装置200は、第1記憶装置210と、第2記憶装置220と、CPU230と、生成回路240と、送信回路250と、受信回路260と、検証回路270とを有する。以下、通信装置200の各部について詳細に説明する。なお、CPU230、生成回路240及び送信回路250は、それぞれ図1に示した通信装置100のCPU120、生成回路130及び送信回路140と同様であるため、詳細な説明を省略する。
第1記憶装置210は、第1記憶部の一例であり、ROM等のメモリ装置を有する。なお、第1記憶装置210は、レジスタにより構成されてもよい。第1記憶装置210は、マルチポートメモリであり、第1データ211、第2データ212、第3データ213及び第4データ214を保持する。第1記憶装置210では、図2に示したように、複数のグループが設定される。
第1データ211は、第1グループにおける最小値(00000001(h))を所定除数値で除算した剰余値である。第2データ212は、第2グループにおける最小値(00000100(h))を所定除数値で除算した剰余値である。第3データ213は、第3グループにおける最小値(00010000(h))を所定除数値で除算した剰余値である。第4データ214は、第4グループにおける最小値(01000000(h))を所定除数値で除算した剰余値である。このように、第1記憶装置210は、各グループにおける最小値を所定値で除算した剰余値をグループ毎に保持する。
第2記憶装置220は、第2記憶部の一例であり、ROM等のメモリ装置を有する。第2記憶装置220は、マルチポートメモリであり、第2記憶装置220には、共通テーブル221が記憶される。
共通テーブル221は、所定の複数の値をそれぞれ所定除数値で除算した複数の剰余値を、その複数の値のそれぞれをインデックスとして保持する。所定の複数の値は、0から、各グループの桁値の最大値の2乗までの値である。即ち、32ビットのデータを4つのグループに分割する場合、所定の複数の値は、0000(h)から(00FF(h)の2乗)までの65026個の値である。
生成回路240は、生成部の一例であり、分割回路241及び加算回路242を有する。さらに、生成回路240は、各グループ毎に、それぞれ第1乗算回路243、第2乗算回路244、第3乗算回路245及び第4乗算回路246を有する。
分割回路241は、図1に示した分割回路131と同様の回路であり、CPU230から出力された送信データを複数のグループに分割し、各グループの有効桁の桁値を出力する。
第1〜第4乗算回路243〜246は、それぞれ、第1記憶装置210の各データを参照して各グループにおける最小値を所定除数値で除算した剰余値を取得する。第1〜第4乗算回路243〜246は、それぞれ、取得した剰余値と分割回路241が出力した各グループの各桁値をモジュロ2乗算することにより、乗算値を算出し、出力する。
生成回路240は、第1〜第4乗算回路243〜246が出力した各グループに係る乗算値をそれぞれ第2記憶装置220の共通テーブル221に入力し、第2記憶装置220の共通テーブル221を参照して、各乗算値に対応する剰余値を取得する。生成回路240は、共通テーブル221を参照し、各乗算値をインデックスとして、各乗算値を所定除数値で除算した剰余値を取得する。
加算回路242は、図1に示した加算回路132と同様の回路であり、共通テーブル221を参照して取得した各剰余値をモジュロ2加算し、各剰余値の総和を送信CRCとして生成し、送信回路250に出力する。
検証回路270は、検証部の一例であり、分割回路271、加算回路272及び一致回路273を有する。さらに、検証回路270は、各グループ毎に、それぞれ第5乗算回路274、第6乗算回路275、第7乗算回路276及び第8乗算回路277を有する。
分割回路271は、生成回路240の分割回路241と同様の回路であり、受信データバッファ262から受信データを読み出し、受信データに基づく値を複数のグループに分割し、各グループの有効桁の桁値を出力する。
第5〜第8乗算回路274〜277は、それぞれ、第1記憶装置210の各データを参照して各グループにおける最小値を所定除数値で除算した剰余値を取得する。第5〜第8乗算回路274〜277は、それぞれ、取得した剰余値と分割回路271が出力した各グループの有効桁の桁値をモジュロ2乗算することにより、乗算値を算出し、出力する。
上述したように、第1記憶装置210は、マルチポートメモリであり、送信CRCの生成時及び受信CRCの検証時に生成回路240及び検証回路270から同時に参照可能である。したがって、通信装置200は、チェックコードの生成時及び検証時に各データを共用できるため、第1記憶装置210に保持しておくデータのサイズを低減させることが可能となる。
検証回路270は、第5〜第8乗算回路274〜277が出力した各グループに係る乗算値をそれぞれ第2記憶装置220の共通テーブル221に入力し、第2記憶装置220の共通テーブル221を参照して、各乗算値に対応する剰余値を取得する。検証回路270は、共通テーブル221を参照し、各乗算値をインデックスとして、各乗算値を所定除数値で除算した剰余値を取得する。
上述したように、第2記憶装置220は、マルチポートメモリであり、送信CRCの生成時及び受信CRCの検証時に生成回路240及び検証回路270から同時に参照可能である。さらに、第2記憶装置220は、生成回路240及び検証回路270から複数のグループについて同時に参照可能である。したがって、通信装置200は、チェックコードの生成時及び検証時に各テーブルを共用できるため、第2記憶装置220に保持しておくテーブルのサイズを低減させることが可能となる。
加算回路272は、生成回路240の加算回路242と同様の回路であり、共通テーブル221を参照して取得した各剰余値をモジュロ2加算し、各剰余値の総和を算出し、一致回路273に出力する。
一致回路273は、図1に示した一致回路163と同様の回路であり、加算回路272から出力された各剰余値の総和に基づいて受信データ及び受信CRCを検証する。
以下、データを複数のグループに分割し、各グループにおける最小値を除数値で除算した剰余値と各グループの有効桁の桁値の乗算値を、除数値で除算した剰余値の総和に基づいて、そのデータの剰余値を算出できる理由及び効果について説明する。
例えば、32ビットのデータX=AABBCCDD(h)を9ビットの除数値n(但し最上位ビットが1)で除算した8ビットの剰余値を算出する場合、モジュロ2除算による剰余計算では分配則が成立するため、以下の等式(2)が成立する。なお、等式(2)において、modはモジュロ2除算による剰余を求める演算子を表す。
X mod n = AABBCCDD(h) mod n
= (AA000000(h) + 00BB0000(h) + 0000CC00(h) + 000000DD(h)) mod n
= (AA000000(h) mod n) + (00BB0000(h) mod n)
+ (0000CC00(h) mod n) + (000000DD(h) mod n)
= ((AA(h) * 01000000(h)) mod n) + ((BB(h) * 00010000(h)) mod n)
+ ((CC(h) * 00000100(h)) mod n) + ((DD(h) * 00000001(h)) mod n) (2)
ここで、データS,Tについて、S,Tをそれぞれ除数値nで除算した商をQs,Qtとし、剰余値をRs,Rtとすると、S = Qs * n + Rs、T = Qt * n + Qsと表せる。このSとTの乗算値を除数値nで除算した剰余値について、以下の等式(3)が成立する。即ち、SとTの乗算値を除数値nで除算した剰余値は、Sを除数値nで除算した剰余値とTを除数値nで除算した剰余値の乗算値を、除数値nで除算した剰余値と等しくなる。
(S * T) mod n = ((Qs * n + Rs) * (Qt * n + Rt)) mod n
= (((Qs * Qt * n + Qs * Rt + Rs * Qt) * n) + (Rs * Rt)) mod n
= (Rs * Rt) mod n
= ((S mod n) * (T mod n)) mod n (3)
したがって、等式(2)は、以下の等式(4)のように変形できる。
X mod n = (((AA(h) mod n) * (01000000(h) mod n)) mod n)
+ (((BB(h) mod n) * (00010000(h) mod n)) mod n)
+ (((CC(h) mod n) * (00000100(h) mod n)) mod n)
+ (((DD(h) mod n) * (00000001(h) mod n)) mod n) (4)
ここで、nは9ビットの除数値であるから、(AA(h) mod n)、((BB(h) mod n)、((CC(h) mod n)、((DD(h) mod n)は、それぞれAA(h)、BB(h)、CC(h)、DD(h)と等しくなる。したがって、等式(4)は、以下の等式(5)のように変形できる。
X mod n = ((AA(h) * (01000000(h) mod n)) mod n)
+ ((BB(h) * (00010000(h) mod n)) mod n)
+ ((CC(h) * (00000100(h) mod n)) mod n)
+ ((DD(h) * (00000001(h) mod n)) mod n) (5)
したがって、データを複数のグループに分割し、各グループにおける最小値を除数値で除算した剰余値と各グループの有効桁の桁値の乗算値を除数値で除算した剰余値の総和は、そのデータを除数値で直接除算した剰余値と等しくなる。
上記したように、32ビットのデータを9ビットの除数値で除算した8ビットの剰余値を予めテーブルに格納しておく場合、テーブルのサイズは、8ビット×(2の32乗)=約4ギガバイトとなる。CRCの生成と検証を行う通信装置では、このテーブルが2つ必要であるため、テーブルの全サイズは約8ギガバイトとなる。一方、本実施形態の通信装置200では、テーブルのサイズは8ビット×(2の16乗)=約65キロバイトとなり、第2記憶装置220の記憶容量を大幅に低減させることができる。
また、モジュロ2乗算は、シフト演算と排他的論理和演算により演算され且つ繰上がりがないため、上位桁の演算結果が下位桁の演算に影響を与えるモジュロ2除算より高速に処理される。したがって、通信装置200は、CRCを、除算演算によって生成及び検証する場合よりも高速に、生成及び検証することができる。
なお、通信装置100について示した各変形例は、通信装置200に対しても同様に適用することが可能である。
特に、通信装置200において、第1グループに対応する第1データ211を省略し、分割回路241又は271が出力した第1グループの各桁値を直接共通テーブル221のインデックスとして用いてもよい。これにより、第1記憶装置210の記憶容量をさらに低減させるとともに、通信装置200の回路構成を単純化させることが可能となる。
また、共通テーブル221は、通信装置100の第1〜第4テーブル111〜114と同様に、複数のグループに分割されてもよい。例えば、共通テーブル221は、第0〜第7ビットを有効桁とする第1’グループと、第8〜第15ビットを有効桁とする第2’グループに分割される。
その場合、生成回路240は、第1〜第4乗算回路243〜246がそれぞれ出力した乗算値をそれぞれ二つのグループに分割し、各グループの有効桁の桁値を出力する分割回路を更に有する。生成回路240は、その各分割回路が出力した各グループの各桁値をそれぞれ第1’グループのテーブルと第2’グループのテーブルに入力し、各グループ毎に各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する。そして、生成回路240は、取得した全ての剰余値を加算回路242に入力する。
検証回路270も生成回路240と同様に、第5〜第8乗算回路274〜277がそれぞれ出力した乗算値をそれぞれ二つのグループに分割し、各グループの有効桁の桁値を出力する分割回路を更に有する。検証回路270は、その各分割回路が出力した各グループの各桁値をそれぞれ第1’グループのテーブルと第2’グループのテーブルに入力し、各グループ毎に各テーブルを参照して、各グループに含まれる各値を所定除数値で除算した剰余値を取得する。そして、検証回路270は、取得した全ての剰余値を加算回路272に入力する。
この場合、通信装置200は、256バイトのテーブルを2つ記憶しておけばよいため、テーブルの全サイズは512バイトとなり、第2記憶装置220の記憶容量をさらに低減させることができる。
さらに、第1’グループに対応するテーブルを省略し、新たに追加した各分割回路が出力した第1’グループの各桁値を直接、加算回路242又は272に入力してもよい。この場合、テーブルの全サイズは256バイトとなり、第2記憶装置220の記憶容量をさらに低減させることができ、通信装置200の回路構成を単純化させることもできる。
図7は、通信装置200による送信処理の動作の例を示すフローチャートである。以下、図7に示したフローチャートを参照しつつ、送信処理の動作を説明する。なお、以下に説明する動作のフローは、主にCPU230により通信装置200の各要素と協働して実行される。
最初に、CPU230は、送信データを生成回路240及び送信回路250に出力する(ステップS301)。次に、分割回路241は、送信データを複数のグループに分割し、各グループの有効桁の桁値を出力する(ステップS302)。次に、第1〜第4乗算回路243〜246は、それぞれ、第1記憶装置210の各データを参照して各グループにおける最小値を所定除数値で除算した剰余値を取得する(ステップS303)。次に、第1〜第4乗算回路243〜246は、それぞれ、取得した剰余値と分割回路241が出力した各グループの各桁値をモジュロ2乗算することにより、乗算値を算出する(ステップS304)。次に、生成回路240は、各グループに係る乗算値をそれぞれ共通テーブル221に入力し、共通テーブル221を参照して、各乗算値に対応する剰余値を取得する(ステップS305)。次に、加算回路242は、各剰余値をモジュロ2加算し(ステップS306)、各剰余値の総和を送信CRCとして生成し、送信回路250に出力する(ステップS307)。次に、送信制御回路253は、送信データを送信CRCとともに、他の通信装置へ送信し(ステップS308)、一連のステップを終了する。
図8は、通信装置200による受信処理の動作の例を示すフローチャートである。以下、図8に示したフローチャートを参照しつつ、受信処理の動作を説明する。なお、以下に説明する動作のフローは、主にCPU230により通信装置200の各要素と協働して実行される。
最初に、受信制御回路261は、他の通信装置から、受信データ及びその受信データに対する受信CRCを受信する(ステップS401)。次に、分割回路271は、受信データを複数のグループに分割し、各グループの有効桁の桁値を出力する(ステップS402)。次に、第5〜第8乗算回路274〜277は、それぞれ、第1記憶装置210の各データを参照して各グループにおける最小値を所定除数値で除算した剰余値を取得する(ステップS403)。次に、第5〜第8乗算回路274〜277は、それぞれ、取得した剰余値と各グループの有効桁の桁値をモジュロ2乗算することにより、乗算値を算出する(ステップS404)。次に、検証回路270は、各グループに係る乗算値をそれぞれ各テーブルに入力し、各グループ毎に各テーブルを参照して、各乗算値に対応する剰余値を取得する(ステップS405)。次に、加算回路272は、各剰余値をモジュロ2加算し、各剰余値の総和を算出し、一致回路273に出力する(ステップS406)。次に、一致回路273は、各剰余値の総和と受信CRCを比較することにより、受信データ及び受信CRCを検証し、検証結果をCPU230に出力する(ステップS407)。次に、CPU230は、検証結果に基づいて、受信データに誤りがあるか否かを判定し(ステップS408)、一連のステップを終了する。
以上詳述したように、通信装置200は、CRCの生成時及び検証時に、剰余値を算出するためのデータを共用できるため、高速にCRCを処理しつつ、記憶装置に格納しておくデータ量をさらに低減させることが可能となった。これにより、記憶装置のサイズ及びコストを低減させることが可能となり、通信装置全体のサイズ及びコストを低減させることが可能となった。
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、通信装置200において、第1記憶装置210はマルチポートメモリとせずに、通信装置200は、生成回路240用の第1記憶装置と、検証回路270用の第1記憶装置を別個に有してもよい。
また、本発明を適用可能な装置は、通信装置に限定されず、本発明は、例えばハードディスクドライブ等を有し、データの書込みと読出しを同時に行う情報処理装置のように、チェックコードの生成と検証を同時に行う他の装置に適用することも可能である。
100、200 通信装置
110 記憶装置
120、230 CPU
130、240 生成回路
140、250 送信回路
150、260 受信回路
160、270 検証回路
210 第1記憶装置
220 第2記憶装置

Claims (11)

  1. 所定桁を有する送信データを通信する通信装置であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に保持する第1記憶部と、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を保持する第2記憶部と、
    送信データを前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成する生成部と、
    前記送信データを前記送信チェックコードとともに送信する送信部と、
    を有することを特徴とする通信装置。
  2. 所定桁を有する受信データを通信する通信装置であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に保持する第1記憶部と、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を保持する第2記憶部と、
    受信データ及び前記受信データに対する受信チェックコードを受信する受信部と、
    前記受信データに基づく値を前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて前記受信データ及び前記受信チェックコードを検証する検証部と、
    を有することを特徴とする通信装置。
  3. 所定桁を有する送信データ及び受信データを通信する通信装置であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に保持する第1記憶部と、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を保持する第2記憶部と、
    送信データを前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成する生成部と、
    前記送信データを前記送信チェックコードとともに送信する送信部と、
    受信データ及び前記受信データに対する受信チェックコードを受信する受信部と、
    前記受信データに基づく値を前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて前記受信データ及び前記受信チェックコードを検証する検証部と
    を有することを特徴とする通信装置。
  4. 前記第2記憶部は、前記生成部及び前記検証部から前記複数のグループについて同時に参照可能である、請求項3に記載の通信装置。
  5. 前記送信チェックコード及び前記受信チェックコードは、CRCである、請求項1〜の何れか一項に記載の通信装置。
  6. 前記第1記憶部及び前記第2記憶部は、マルチポートメモリである、請求項1〜5の何れか一項に記載の通信装置。
  7. 前記グループは、前記所定桁の全てが何れかのグループで有効桁となるように設定される、請求項1〜の何れか一項に記載の通信装置。
  8. 第1記憶部及び第2記憶部を有し、所定桁を有する送信データ及び受信データを通信する通信装置の制御方法であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に前記第1記憶部に保持し、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を前記第2記憶部に保持し、
    送信データを前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成し、
    前記送信データを前記送信チェックコードとともに送信する、
    ことを含むことを特徴とする制御方法。
  9. 第1記憶部及び第2記憶部を有し、所定桁を有する送信データ及び受信データを通信する通信装置の制御方法であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に前記第1記憶部に保持し、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を前記第2記憶部に保持し、
    受信データ及び前記受信データに対する受信チェックコードを受信し、
    前記受信データに基づく値を前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて前記受信データ及び前記受信チェックコードを検証する、
    ことを含むことを特徴とする制御方法。
  10. 第1記憶部及び第2記憶部を有し、所定桁を有する送信データ及び受信データを通信する通信装置の制御方法であって、
    前記所定桁の内の一部を有効桁とし且つ前記有効桁以外の桁を0とする複数の値から構成されるグループを複数個設定し、各グループにおける最小値を所定値で除算した剰余値を前記グループ毎に前記第1記憶部に保持し、
    所定の複数の値をそれぞれ前記所定値で除算した複数の剰余値を前記第2記憶部に保持し、
    送信データを前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて送信チェックコードを生成し、
    前記送信データを前記送信チェックコードとともに送信し、
    受信データ及び前記受信データに対する受信チェックコードを受信し、
    前記受信データに基づく値を前記複数のグループに分割し、前記複数のグループ毎に、前記第1記憶部を参照して前記剰余値を取得し、前記取得した剰余値と各グループの有効桁の桁値の乗算値を算出し、前記第2記憶部を参照して前記乗算値に対応する剰余値を取得し、当該取得した剰余値の総和に基づいて前記受信データ及び前記受信チェックコードを検証する
    ことを含むことを特徴とする制御方法。
  11. 前記第2記憶部は、前記生成及び前記検証において前記複数のグループについて同時に参照可能である、請求項10に記載の制御方法。
JP2015058621A 2015-03-20 2015-03-20 通信装置及び制御方法 Expired - Fee Related JP6351530B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015058621A JP6351530B2 (ja) 2015-03-20 2015-03-20 通信装置及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015058621A JP6351530B2 (ja) 2015-03-20 2015-03-20 通信装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2016178551A JP2016178551A (ja) 2016-10-06
JP6351530B2 true JP6351530B2 (ja) 2018-07-04

Family

ID=57070406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015058621A Expired - Fee Related JP6351530B2 (ja) 2015-03-20 2015-03-20 通信装置及び制御方法

Country Status (1)

Country Link
JP (1) JP6351530B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168730A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd データ送受信装置
JP2008011025A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 巡回冗長検査のための剰余計算装置
JP5260077B2 (ja) * 2008-02-15 2013-08-14 太陽誘電株式会社 プログラマブル論理デバイスおよびその構築方法およびその使用方法

Also Published As

Publication number Publication date
JP2016178551A (ja) 2016-10-06

Similar Documents

Publication Publication Date Title
US9252960B2 (en) System for establishing a cryptographic key depending on a physical system
CN102096609A (zh) 可编程循环冗余校验(crc)计算的指令集架构
JP5141910B2 (ja) Sms4暗号アルゴリズムを実現する暗号化および復号化処理方法とそのシステム
CN107239362B (zh) 一种并行crc校验码的计算方法及系统
CN108768656B (zh) 一种基于哈希算法的数据校验方法
TWI283972B (en) Obtaining cyclic redundancy code
CN108959168B (zh) 基于片上内存的sha512全流水电路及其实现方法
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
US8738990B2 (en) Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
WO2011103741A1 (zh) 数据的校验处理方法及装置
JP7116374B2 (ja) 短縮レイテンシ誤り訂正復号
Pedersen et al. Network coding over the 2 32− 5 prime field
US8683291B2 (en) High throughput frame check sequence module architecture
KR101391725B1 (ko) 선형 블럭 코딩을 위한 생성 행렬 구성 장치 및 그 방법과,그 방법으로 생성된 생성 행렬을 이용하는 코딩 장치 및디코딩 장치
JP6351530B2 (ja) 通信装置及び制御方法
US20130232396A1 (en) Apparatuses and methods for encoding using error protection codes
KR102353983B1 (ko) 순환 중복 검사(crc)에서 알고리즘의 배열 방법
US20150339183A1 (en) Controller, storage device, and control method
CN102543182A (zh) 随机化电路、存储器控制单元、存储器、通信系统及方法
KR101655809B1 (ko) 복수의 룩업테이블을 이용한 crc 연산 장치 및 방법
TWI835381B (zh) 資料加密的錯誤偵測裝置
CN117353926B (zh) 一种基于芯片的sm2算法密码处理方法、装置及设备
CN116484443B (zh) 一种基于鸿蒙系统的可信安全存储方法及装置
CN107124189B (zh) 一种tdma系统随机交织地址动态变化的方法
KR101791637B1 (ko) 디코더 및 이를 포함하는 메모리 컨트롤러

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170407

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180605

R150 Certificate of patent or registration of utility model

Ref document number: 6351530

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees