(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024140325
(43)【公開日】2024-10-10
(54)【発明の名称】情報処理装置及びデータ受信の誤り検出方法
(51)【国際特許分類】
H04L 1/00 20060101AFI20241003BHJP
G06F 11/10 20060101ALI20241003BHJP
【FI】
H04L1/00 A
G06F11/10 604
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023051417
(22)【出願日】2023-03-28
(71)【出願人】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】110001025
【氏名又は名称】弁理士法人レクスト国際特許事務所
(72)【発明者】
【氏名】小林 和仁
【テーマコード(参考)】
5K014
【Fターム(参考)】
5K014AA01
5K014BA06
5K014FA08
(57)【要約】
【目的】誤り検出を伴うデータ転送を迅速に行うことが可能な情報処理装置を提供する。
【構成】データ本体部とデータ本体部に所定の演算を行うことにより生成された第1の検査データとを含むデータを受信する受信部と、バスを介して受信部に接続された記憶部と、バスを介して受信部からデータ本体部及び第1の検査データを読み出し、記憶部に格納する制御部と、バスに接続され、データ本体部が格納される記憶部のアドレス情報に基づいて、制御部によるデータ本体部の記憶部への格納に伴ってバスからデータ本体部を取得する第1のバス制御機と、第1のバス制御機により取得されたデータ本体部に対して所定の演算を行い第2の検査データを生成する検査データ演算機と、を含む。制御部は、第1の検査データと第2の検査データとを比較した比較結果に基づいて、受信部によるデータの受信が成功しているか否かを判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
データ本体部と前記データ本体部に対して所定の演算を行うことにより生成された第1の検査データとを含むデータを受信する受信部と、
バスを介して前記受信部に接続された記憶部と、
前記バスを介して前記受信部及び前記記憶部に接続され、前記受信部から前記データ本体部及び前記第1の検査データを読み出し、前記記憶部に格納する制御部と、
前記バスに接続され、前記記憶部の前記データ本体部が格納されるアドレスのアドレス情報に基づいて、前記制御部による前記データ本体部の前記記憶部への格納に伴って前記バスから前記データ本体部を取得する第1のバス制御機と、
前記第1のバス制御機により取得された前記データ本体部に対して前記所定の演算を行うことにより第2の検査データを生成する検査データ演算機と、
を含み、
前記制御部は、前記第1の検査データと前記第2の検査データとを比較した比較結果に基づいて、前記受信部による前記データの受信が成功しているか否かを判定することを特徴とする情報処理装置。
【請求項2】
前記制御部は、前記記憶部から前記第1の検査データを読み出し、前記検査データ演算機から前記第2の検査データを取得して前記第1の検査データと前記第2の検査データとが一致するか否かの比較を行い、一致すると判定した場合に前記受信部による前記データの受信が成功していると判定することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記バスに接続され、前記記憶部の前記第1の検査データが格納されるアドレスのアドレス情報に基づいて、前記制御部による前記第1の検査データの前記記憶部への格納に伴って前記バスから前記第1の検査データを取得する第2のバス制御機と、
前記第2のバス制御機により取得された前記第1の検査データと、前記検査データ演算機により生成された前記第2の検査データと、を比較する検査データ比較機と、
を含み、
前記制御部は、前記検査データ比較機から前記比較結果を取得して、前記受信部による前記データの受信が成功しているか否かを判定することを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記受信部は、当該情報処理装置の外部に設けられた外部装置から転送された前記データを受信するレジスタであることを特徴とする請求項1に記載の情報処理装置。
【請求項5】
データ本体部と前記データ本体部に対して所定の演算を行うことにより生成された第1の検査データとを含むデータを受信する受信部と、バスを介して前記受信部に接続された記憶部と、前記受信部から前記データを取得して前記記憶部に格納する制御部と、前記制御部による前記データ本体部の前記記憶部への格納に伴って前記バスから前記データ本体部を取得する第1のバス制御機と、前記データ本体部に対して所定の演算を行うことにより第2の検査データを生成する検査データ演算機と、を含む情報処理装置が実行するデータ受信の誤り検出方法であって、
前記制御部が、前記データ本体部を格納するための前記記憶部のアドレスを前記第1のバス制御機に設定するステップと、
前記受信部が、前記データ本体部を受信するステップと、
前記制御部が、前記受信部から前記バスを介して前記データ本体部を読み出し、前記記憶部に格納するステップと、
前記第1のバス制御機が、前記制御部による前記記憶部への前記データ本体部の格納に伴って、前記バスから前記データ本体部を取得するステップと、
前記第1のバス制御機が、取得した前記データ本体部を前記検査データ演算機に供給するステップと、
前記検査データ演算機が、前記データ本体部に対して前記所定の演算を行うことにより前記第2の検査データを生成するステップと、
前記制御部が、前記第1の検査データと前記第2の検査データとを比較した比較結果に基づいて、前記受信部による前記データの受信に誤りがあるか否かを判定するステップと、
を含むことを特徴とする誤り検出方法。
【請求項6】
前記情報処理装置は、前記制御部による前記第1の検査データの前記記憶部への格納に伴って前記バスから前記第1の検査データを取得する第2のバス制御機と、前記第1の検査データと前記第2の検査データとを比較する検査データ比較機と、を含み、
前記制御部が、前記第1の検査データを格納するための前記記憶部のアドレスを前記第2のバス制御機に設定するステップと、
前記制御部が、前記受信部から前記バスを介して前記第1の検査データを読み出し、前記記憶部に格納するステップと、
前記第2のバス制御機が、前記制御部による前記記憶部への前記第1の検査データの格納に伴って、前記バスから前記第1の検査データを取得するステップと、
前記第2のバス制御機が、取得した前記第1の検査データを前記検査データ比較機に供給するステップと、
前記検査データ比較機が、前記第1の検査データと前記第2の検査データとを比較するステップと、
を含むことを特徴とする請求項5に記載の誤り検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びデータ受信の誤り検出方法に関する。
【背景技術】
【0002】
情報処理装置が行うデータ転送において、パリティビット等からなる検査データを用いた誤り検出が行われている(例えば、特許文献1)。
【0003】
かかる誤り検出では、例えば送信側で予め定められた演算により生成した検査データを送信したい対象データ付加して構成した送信データを作成して送信し、受信側では受信した対象データを用いて同じ演算により検査データを生成し、それぞれの検査データを比較照合することにより、受信データの誤りや破損を検出する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
データ転送を受ける受信側の装置では、まずレジスタ等の受信装置がデータの受信を行い、CPU等の制御部がレジスタから対象データを読み出して、RAMに格納する。最終の対象データについてRAMへの格納が終わると、レジスタから検査データを読み出してRAMに格納する。受信データの格納後、CPUはRAMから対象データを読み出し、検査データ演算機への書き込みを行う。検査データ演算機は、書き込まれた対象データに基づいて検査データを生成する。制御部は、RAMから検査データを読み出し、読み出した検査データと検査データ演算機が生成した検査データとを比較照合することにより、データ受信に誤りがあるか否かを判定する。
【0006】
しかし、このような誤り検出方法では、受信側の装置がマイクロコンピュータ(MCU: Micro Controller Unit)等の小規模な装置である場合、CPUとレジスタ、検査データ演算機及びRAMとの間でのバスを介した通信頻度が多く、CPUの占有率が高くなるため、データ受信以外の処理が滞ってしまい、システムとしての処理速度が低下してしまうという問題があった。
【0007】
また、データ受信から比較照合結果までの処理工程が多いため時間がかかり、データ転送の速度が遅くなってしまうという問題があった。
【0008】
本発明は、上記問題点に鑑みてなされたものであり、誤り検出を伴うデータ転送を迅速に行うことが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る情報処理装置は、データ本体部と前記データ本体部に対して所定の演算を行うことにより生成された第1の検査データとを含むデータを受信する受信部と、バスを介して前記受信部に接続された記憶部と、前記バスを介して前記受信部及び前記記憶部に接続され、前記受信部から前記データ本体部及び前記第1の検査データを読み出し、前記記憶部に格納する制御部と、前記バスに接続され、前記記憶部の前記データ本体部が格納されるアドレスのアドレス情報に基づいて、前記制御部による前記データ本体部の前記記憶部への格納に伴って前記バスから前記データ本体部を取得する第1のバス制御機と、前記第1のバス制御機により取得された前記データ本体部に対して前記所定の演算を行うことにより第2の検査データを生成する検査データ演算機と、を含み、前記制御部は、前記第1の検査データと前記第2の検査データとを比較した比較結果に基づいて、前記受信部による前記データの受信が成功しているか否かを判定することを特徴とする。
【0010】
また、本発明に係る誤り検出方法は、データ本体部と前記データ本体部に対して所定の演算を行うことにより生成された第1の検査データとを含むデータを受信する受信部と、バスを介して前記受信部に接続された記憶部と、前記受信部から前記データを取得して前記記憶部に格納する制御部と、前記制御部による前記データ本体部の前記記憶部への格納に伴って前記バスから前記データ本体部を取得する第1のバス制御機と、前記データ本体部に対して所定の演算を行うことにより第2の検査データを生成する検査データ演算機と、を含む情報処理装置が実行するデータ受信の誤り検出方法であって、前記制御部が、前記データ本体部を格納するための前記記憶部のアドレスを前記第1のバス制御機に設定するステップと、前記受信部が、前記データ本体部を受信するステップと、前記制御部が、前記受信部から前記バスを介して前記データ本体部を読み出し、前記記憶部に格納するステップと、前記第1のバス制御機が、前記制御部による前記記憶部への前記データ本体部の格納に伴って、前記バスから前記データ本体部を取得するステップと、前記第1のバス制御機が、取得した前記データ本体部を前記検査データ演算機に供給するステップと、前記検査データ演算機が、前記データ本体部に対して前記所定の演算を行うことにより前記第2の検査データを生成するステップと、前記制御部が、前記第1の検査データと前記第2の検査データとを比較した比較結果に基づいて、前記受信部による前記データの受信に誤りがあるか否かを判定するステップと、を含むことを特徴とする。
【発明の効果】
【0011】
本発明に係る情報処理装置によれば、誤り検出を伴うデータ転送を迅速に行うことが可能なことが可能となる。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施例1に係る情報処理装置の構成を示すブロック図である。
【
図2】実施例1の情報処理装置が受信するデータのデータ構成の例を示す図である。
【
図3】実施例1の情報処理装置の受信データの誤り検出処理の処理ルーチンを示すフローチャートである。
【
図4】実施例1の情報処理装置の受信データの誤り検出処理の処理ルーチンを示すフローチャートである。
【
図5】本発明の実施例2に係る情報処理装置の構成を示すブロック図である。
【
図6】実施例2の情報処理装置の受信データの誤り検出処理の処理ルーチンを示すフローチャートである。
【
図7】実施例2の情報処理装置の受信データの誤り検出処理の処理ルーチンを示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施例について、図面を参照して説明する。なお、以下の各実施例における説明及び添付図面においては、実質的に同一又は等価な部分には同一の参照符号を付している。
【実施例0014】
図1は、本発明の実施例1に係る情報処理装置100の構成を示すブロック図である。情報処理装置100は、CPU11、レジスタ12A及び12B、RAM13、検査データ演算機14及びバス制御機15を含む。情報処理装置100は、外部装置である送信元装置20からのデータ転送を受け、データ受信に誤りがないかどうかを検出する機能を有する。
【0015】
図2は、本実施例において情報処理装置100が送信元装置20から受信する受信データRDのデータ構成の例を示す図である。受信データRDは、連続する対象データTD1、TD2、・・・TDnからなるデータ本体部と、これに付加された検査データEDと、を含む。検査データEDは、データ本体部に対して所定のルールに則った演算(以下、所定の演算と称する)を行うことにより生成されたデータであり、例えばCRC(Cyclic Redundancy Code)符号から構成されている。
【0016】
再び
図1を参照すると、CPU11は、情報処理装置100の各部の処理動作の制御を担う処理制御部である。本実施例では、CPU11は、バスB1を介してデータの読み出し及び格納を行う。具体的には、CPU11は、レジスタ12Aに格納されている受信データRD(対象データTD1~TDn及び検査データED)を読み出し、RAM13に格納する。
【0017】
また、CPU11は、RAM13から読み出した検査データEDと検査データ演算機14が生成した検査データEDとの比較照合を行うことにより、データ受信に誤りがあるか否かを検知する。すなわち、レジスタ12Aによって受信されRAM13に格納された検査データEDと、検査データ演算機14により生成された検査データEDとは、いずれも同じデータ本体部(対象データTD1~TDn)に対して同じルールに則った演算を行うことにより生成されたデータである。したがって、これらを比較してその一致不一致を判定することにより、受信データRDに誤りや破損があるかを判定し、データ受信が成功したか否かを判定することができる。
【0018】
レジスタ12A及び12Bは、送信元装置20から転送されたデータを受信データRDとして受信する受信装置である。レジスタ12A及び12Bは、まず対象データTD1、TD2、・・・TDnを受信し、最終の対象データ(TDn)の受信が終わった後、検査データEDを受信する。
【0019】
RAM13は、レジスタ12A及び12Bが受信した受信データRD(対象データ及び検査データ)を格納する記憶部である。RAM13へのデータの格納及びRAM13からのデータの読み出しは、CPU11によってバスB1を介して行われる。
【0020】
検査データ演算機14は、データ本体部(対象データTD1~TDn)に対して所定の演算(すなわち、上記所定のルールと同じルールに則った演算)を行うことにより、検査データEDを生成する演算部である。本実施例では、バス制御機15から対象データTD1~TDnの供給を受け、供給された対象データTD1~TDnに対して所定の演算を行うことにより、レジスタ12Aが受信した検査データEDとは別に、新たに検査データEDを生成する。以下の説明では、レジスタ12Aが受信した検査データEDと区別するため、検査データ演算機14が生成した検査データEDを検査データEDXと称する。
【0021】
バス制御機15は、検査データ演算機14とバスB1との間に設けられ、バスB1を介してデータを取得し、取得したデータを検査データ演算機14に供給する。本実施例では、バス制御機15は、対象データTD1~TDnを格納するためのRAM13のアドレスが設定される。バス制御機15は、設定されたRAM13のアドレス情報に基づいて、CPU11によるRAM13への対象データTD1~TDnの格納に伴って、バスB1から対象データTD1~TDnを取得する。バス制御機15は、取得した対象データTD1~TDnを検査データ演算機14に供給する。
【0022】
次に、本実施例の情報処理装置100が実行する受信データの誤り検出処理の処理動作について説明する。
【0023】
図3及び
図4は、実施例1の情報処理装置100が実行する誤り検出処理の処理ルーチンを示すフローチャートである。なお、ここでは送信元装置20からデータの転送が行われ、レジスタ12Aが受信データRDの受信(すなわち、対象データTD1~TDn及び検査データEDの受信)を開始している状態で、以下の各ステップの処理が行われる。
【0024】
まず、CPU11は、対象データTD1~TDnを格納するためのRAM13のアドレスを、バス制御機15に設定する(STEP101)。なお、当該アドレスの設定は、レジスタ12Aが受信データRDの受信を開始する前に予め行ってもよい。
【0025】
CPU11は、レジスタ12Aから対象データTD1~TDnを読み出す(STEP102)。なお、CPU11は、対象データTD1、TD2、TD3、・・・の順に順次読み出しを行う。以下の説明では、対象データTD1~TDnのうち、現在読み出しや格納等の処理対象となっている対象データを単にTDとも称する。
【0026】
CPU11は、読み出した対象データTDをRAM13に格納する(STEP103)。
【0027】
バス制御機15は、STEP101で設定されたRAM13のアドレス情報に基づいて、CPU11によるRAM13への対象データTDの格納に伴って、当該対象データTDをバスB1から取得する(STEP104)。
【0028】
バス制御機15は、バスB1から取得した対象データTDを検査データ演算機14に供給する(書き込む)(STEP105)。
【0029】
CPU11は、最終の対象データTDnまでレジスタ12Aによる受信及びRAM13への格納が完了したか否か、すなわち対象データTD1~TDnが全てRAM13に格納されたか否かを判定する(STEP106)。
【0030】
対象データTD1~TDnが全てRAM13に格納されていないと判定すると(STEP106:NO)、STEP102~105の処理を繰り返し行う。
【0031】
一方、対象データTD1~TDnが全てRAM13に格納されたと判定すると(STEP106:YES)、CPU11は、レジスタ12Aから検査データEDを読み出す(STEP107)。
【0032】
CPU11は、読み出した検査データEDをRAM13に格納する(STEP108)。
【0033】
検査データ演算機14は、バス制御機15から供給された対象データTD1~RDnに対して所定の演算を行い、検査データEDXを生成する(STEP109)。
【0034】
CPU11は、検査データ演算機14から検査データEDXを取得する(STEP110)。
【0035】
CPU11は、RAM13から検査データEDを読み出す(STEP111)。
【0036】
CPU11は、RAM13から読み出した検査データED(第1の検査データ)と検査データ演算機14から取得した検査データEDX(第2の検査データ)との比較照合を行う(STEP112)。
【0037】
CPU11は、比較照合の結果、第1の検査データであるRAM13から読み出した検査データED(すなわちレジスタ12Aが受信した検査データED)と、第2の検査データである検査データ演算機14から取得した検査データEDX(すなわちレジスタ12Aが受信したTD1~TDnに基づいて新たに生成された検査データEDX)と、が一致するか否かを判定する(STEP113)。
【0038】
一致すると判定すると(STEP113:YES)、CPU11は、受信データRDに誤りや破損が発生しておらず、データ受信は成功していると判定する。
【0039】
一方、一致しないと判定すると(STEP113:NO)、CPU11は、受信データRDに誤り又は破損が発生しており、データ受信は失敗していると判定する。
【0040】
以上のように、本実施例の情報処理装置100では、バス制御機15が設けられており、対象データTD1~TDnを格納するためのRAM13のアドレスが、バス制御機15に予め設定される。バス制御機15は、CPU11がレジスタ12Aから読み出した対象データTDをRAM13に格納する際に、バスB1を介して当該対象データTDを取得し、検査データ演算機14に供給する。CPU11は、RAM13に格納された検査データEDと検査データ演算機14により生成された検査データEDXとを比較することにより、データ受信が成功したか否かを判定する。
【0041】
仮に本実施例のようなバス制御機15が設けられていない場合、CPU11は、検査データ演算機14に対象データTD1~TDnを供給するために、RAM13にアクセスして対象データTD1~TDnを読み出す処理、及び読み出した対象データTD1~TDnを検査データ演算機14に書き込む処理を行う必要がある。このため、CPU11によるバスB1を介した通信の頻度が多く、CPU11の占有率が高い。
【0042】
これに対し、本実施例の情報処理装置100では、上記の通り、予めRAM13のアドレスをバス制御機15に設定し、CPU11によるRAM13への対象データTDの格納に伴って、バス制御機15がバスB1から対象データTDを取得するように構成されている。このため、バス制御機15が設けられていない場合と比べて、CPU11によるバスB1を介した通信頻度が少なく、CPU11の占有率が低減される。
【0043】
したがって、本実施例の情報処理装置100によれば、誤り検出を伴うデータ転送を迅速に行うことが可能となる。
次に、本発明の実施例2について説明する。本実施例の情報処理装置は、検査データEDの比較照合をCPU11ではなく検査データ比較機が行う点で、実施例1の情報処理装置100と異なる。
検査データ比較機16は、バス制御機17から検査データEDの供給(書き込み)を受け、供給された検査データED(第1の検査データ)と検査データ演算機14が生成した検査データEDX(第2の検査データ)との比較照合を行うことにより、データ受信に誤りがあるか否かを検知する。
バス制御機17は、検査データ比較機16とバスB2との間に設けられ、バスB2を介してデータを取得し、取得したデータを検査データ比較機16に供給する。本実施例では、バス制御機17には、検査データEDを格納するためのRAM13のアドレスが設定される。バス制御機17は、設定されたRAM13のアドレス情報に基づいて、CPU11による検査データEDのRAM13への格納に伴って、バスB2から検査データEDを取得する。バス制御機17は、取得した検査データEDを検査データ比較機16に供給する。
また、CPU11は、検査データEDを格納するためのRAM13のアドレスを、バス制御機17に設定する(STEP202)。なお、これらのアドレス設定は順番が前後していてもよく、レジスタ12Aが受信データRDの受信を開始する前に予め行ってもよい。
CPU11は、レジスタ12Aから対象データTD1~TDnを読み出す(STEP203)。その際、CPU11は、対象データTD1、TD2、TD3、・・・の順に順次対象データTDの読み出しを行う。
バス制御機15は、STEP201で設定されたRAM13のアドレス情報に基づいて、CPU11によるRAM13への対象データTDの格納に伴って、当該対象データTDをバスB2から取得する(STEP205)。
CPU11は、最終の対象データTDnまでレジスタ12Aによる受信及びRAM13への格納が完了したか否か、すなわち対象データTD1~TDnが全てRAM13に格納されたか否かを判定する(STEP207)。
一方、対象データTD1~TDnが全てRAM13に格納されたと判定すると(STEP207:YES)、CPU11は、レジスタ12Aから検査データEDを読み出す(STEP208)。
バス制御機17は、STEP202で設定されたRAM13のアドレス情報に基づいて、CPU11によるRAM13への検査データEDの格納に伴って、当該検査データEDをバスB2から取得する(STEP210)。
バス制御機17は、検査データ演算機14の演算結果である検査データEDXをバスB2を介して取得し、取得した検査データEDXを検査データ比較機16に供給する(書き込む)(STEP213)。
検査データ比較機16は、STEP211で供給された検査データED(第1の検査データ)とSTEP213で供給された検査データEDX(第2の検査データ)との比較照合を行う(STEP214)。
CPU11は、取得した比較照合の結果に基づいて、第1の検査データであるレジスタ12Aが受信した検査データEDと、第2の検査データである検査データ演算機14により生成された検査データEDXと、が一致するか否かを判定する(STEP216)。
以上のように、本実施例の情報処理装置200では、検査データ比較機16及びバス制御機17が設けられており、レジスタ12Aが受信した検査データEDと検査データ演算機14により生成された検査データEDXとの比較照合を検査データ比較機16が実行する。
かかる構成によれば、CPU11が検査データEDと検査データEDXとの比較照合を行う場合とは異なり、CPU11が比較照合に際してRAM13から検査データEDの読み出しを行う必要がない。このため、CPU11によるバスB1を介した通信頻度を実施例1よりもさらに減らし、CPU11の占有率をさらに低減することができる。
なお、本発明は上記実施形態に限定されない。例えば、上記各実施例では、情報処理装置100(200)が受信装置としてのレジスタ12A及び12Bを有し、送信元装置20から転送されたデータを受信する場合を例として説明した。しかし、情報処理装置100(200)に設けられる受信装置の種類はこれに限られず、例えばバッファや光学ドライブ等、データの供給を受けてこれを保持する機能を有する他の装置であってもよい。また、NIC(Network Interface Card)等、通信ネットワークを介してデータを受信する受信装置であってもよい。
また、上記各実施例では、検査データEDがCRC符号から構成されている場合を例として説明した。しかし、検査データEDの種類はこれに限られず、他の種類の誤り検出符号であっても良い。検査データEDは、データ本体部を構成するデータ(対象データTD)に基づいて所定のルール(演算)によって生成されるデータであればよい。
また、上記各実施例の情報処理装置(100及び200)を構成する各部は、必ずしも同一のチップ上に設けられていなくてもよい。すなわち、それぞれ異なるチップに設けられた機能部からなる情報処理システムとして構成されていてもよい。