JP2005252712A - 転送データの正当性を判定する装置および方法 - Google Patents

転送データの正当性を判定する装置および方法 Download PDF

Info

Publication number
JP2005252712A
JP2005252712A JP2004061087A JP2004061087A JP2005252712A JP 2005252712 A JP2005252712 A JP 2005252712A JP 2004061087 A JP2004061087 A JP 2004061087A JP 2004061087 A JP2004061087 A JP 2004061087A JP 2005252712 A JP2005252712 A JP 2005252712A
Authority
JP
Japan
Prior art keywords
data
check code
frame
data block
group identifier
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.)
Granted
Application number
JP2004061087A
Other languages
English (en)
Other versions
JP4271602B2 (ja
Inventor
Yoshihiko Takeda
由彦 竹田
Seisuke Obara
成介 小原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004061087A priority Critical patent/JP4271602B2/ja
Priority to US10/929,675 priority patent/US7577894B2/en
Publication of JP2005252712A publication Critical patent/JP2005252712A/ja
Application granted granted Critical
Publication of JP4271602B2 publication Critical patent/JP4271602B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0079Formats for control data
    • H04L1/008Formats for control data where the control data relates to payload of a different packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】 複数のユーザデータがそれぞれ複数のフレームに分割されて転送された場合のチェックコード判定に要する時間を短縮する。
【解決手段】 各ユーザデータに対して互いに異なるグループIDが割り当てられ、受信フレームに対応するグループIDがレジスタ221に格納される。格納されたグループIDに対応する中間結果バッファ226のエントリ内の途中計算結果と、受信フレームのデータがチェックコード生成回路229に入力され、チェックコードが計算されて、そのエントリの途中計算結果が更新される。この動作がフレームを受信する毎に繰り返され、複数のユーザデータのチェックコードが並行して計算される。
【選択図】図2

Description

本発明は、高速で大容量のデータ転送を高い信頼性で行う必要のあるデータ処理システムにおけるエラー検出に係り、特に、データとそのデータに対するチェックコードを含むデータブロックが複数のフレームに分割されて転送されるようなデータ処理システムにおいて、チェックコードを用いて転送データの正当性を判定する装置および方法に関する。
近年、ホストコンピュータとストレージ装置間で高速、大容量のデータ転送を行うための手段として、ファイバチャネルの利用が一般的になっている。ストレージ装置は、複数のホストコンピュータにより共用されるディスク装置(ディスクドライブ)等の記憶装置と、ホストコンピュータと記憶装置の間のデータ転送を制御するストレージ制御装置からなる。
送信側のホストコンピュータのデータは、ファイバチャネルのリンク上では最大2Kバイトまでの複数のフレームに分割されて転送され、受信側のストレージ装置で再び元のデータに組み上げられる。その際、転送されるそれぞれのフレームは、巡回冗長検査(Cyclic Redundancy Check ,CRC)によってエラー保護されていて、信頼性の高いデータ転送を行うことが可能である。
しかし、用途によってはさらに高い信頼性が求められることがある。このような要求を満たすために、フレーム毎のCRCによるエラー保護に加えて、ホストコンピュータの用意したデータ全体をチェックコードで保護する方法が利用される。
ここで、チェックコードとしては、保護されるデータを用いて予め決められたアルゴリズムで計算を行った結果が用いられる。CRCコードはチェックコードの1つの例であり、この用途に用いられることがあるが、他のチェックコード(他の巡回符号等)が用いられる場合もある。
この保護方法では、図10に示すように、ホストコンピュータがユーザデータ101にチェックコード102を付加したものを1つのデータブロック103として送信する。ファイバチャネルのリンク上では、データブロック103が複数のフレーム104(104a、104b、104c、104d)に分割され、フレーム毎にCRCで保護されてストレージ制御装置に転送される。チェックコード102は、通常、1フレームのデータより小さいので、最後のフレームに収容されて転送される。
ストレージ装置は、受信した各フレームのCRCチェックを行って、元のデータブロック103に組み上げた後、ホストコンピュータがチェックコード102の生成に用いたのと同じアルゴリズムの計算をユーザデータ101に対して行う。得られた計算結果はホストコンピュータが付加したチェックコード102と同じになるはずなので、その計算結果をチェックコード102と比較することで、ユーザデータ101の正当性を判定することができる。
図11は、このような保護方法を採用したデータ処理システムの構成図である。図11のデータ処理システムは、1つ以上のホストコンピュータ111、通信ネットワーク112、ストレージ制御装置113、および1つ以上のディスク装置114からなる。
ホストコンピュータ111は、通信ネットワーク112を介してストレージ制御装置113に接続され、ディスク装置114はストレージ制御装置113に接続される。ストレージ制御装置113およびディスク装置114は、ストレージ装置を構成する。
通信ネットワーク112は、例えば、ファイバチャネルのリンクに対応し、スイッチを備える。一般に、通信ネットワーク112には複数のホストコンピュータ111が接続される。
ストレージ制御装置113は、プロセッサ121、コントローラ122、およびデータバッファ123を備え、コントローラ123は、チェックコード判定回路131およびCRCチェック回路132を備える。
ストレージ制御装置113は、ホストコンピュータ111とディスク装置114に対するインタフェースを備え、ホストコンピュータ111からのデータを通信ネットワーク112を経由して受信する。
ファイバチャネルのフレームは、図10に示したように、ヘッダ部、データ部、およびCRCコードからなり、コントローラ122は、フレームを受信すると、まず、CRCチェック回路132によりフレームにエラーがあるか否かを確認する。この確認と同時に、フレームのデータ部をデータバッファ123に格納し、ヘッダ部をプロセッサ121に渡す。ヘッダ部にはフレームがどのデータブロックの一部であるかを特定し、元のデータを組み立てるのに必要な情報が含まれる。
ストレージ制御装置113は、このような動作を繰り返すことで、ホストコンピュータ111から順次フレームを受信し、1つのユーザデータのデータブロック全体がデータバッファ123内に格納されると、プロセッサ121がチェックコード判定回路131を起動する。
チェックコード判定回路131は、データバッファ124からデータブロックを一定量(例えば、4バイト)ずつ読み出し、読み出したデータに決められたアルゴリズムを適用する動作を繰り返すことで、データブロックのチェックコードを生成する。そして、得られたチェックコードの妥当性を判定し、判定結果をプロセッサ121に通知する。
特許文献1は光ディスク等の誤り訂正装置に関し、特許文献2はCRCを用いた端末間データ転送方式に関し、特許文献3は誤り訂正符号を用いた無線データ転送に関し、特許文献4はCRCを用いた記憶装置のエラー判定に関する。
特開2001−144629号公報 特開平5−091072号公報 特開5−035624号公報 米国特許第5630054号
上述した従来のチェックコード判定方法には、次のような問題がある。
従来のチェックコード判定のシーケンスによると、ユーザデータのデータブロックのすべてのフレームを受信した後に、チェックコード判定回路を起動してチェックコードの判定を行うため、判定の終了までにかなりの時間を要する。そこで、判定を早く終了させるためにフレームの受信毎にチェックコード判定回路を起動して、受信したデータまでの途中結果を計算することも考えられる。
しかしながら、ファイバチャネルのリンク上では、1つのユーザデータのフレームが続けて転送されるわけではなく、図12に示すように、複数のホストコンピュータからのユーザデータがフレームに分割されて、インターリーブされた状態で転送が行われる。
図12の例では、ホストコンピュータ111a、111b、および111cからのデータブロック141a、141b、および141c(ユーザデータA、B、およびC)が、それぞれ3つのフレームに分割されてストレージ制御装置113に転送されている。これらのフレームに収容されたデータから、元のユーザデータA、B、およびCが組み立てられ、ディスク装置114に格納される。
この場合、フレームの受信毎にチェックコード判定回路を起動すれば、1つのユーザデータ(例えば、ユーザデータA)に対するチェックコードの判定が早く終了するという利点があるが、その間、残りのユーザデータ(例えば、ユーザデータBおよびC)はチェックコード判定回路に入力することができない。したがって、残りのユーザデータの判定は、先のユーザデータの判定終了まで待たされることになり、問題の十分な解決策とはならない。
本発明の課題は、複数のユーザデータのデータブロックがそれぞれ複数のフレームに分割されて転送されるデータ処理システムにおいて、転送データの正当性を判定するチェックコード判定に要する時間を短縮する装置および方法を提供することである。
図1は、本発明の第1の判定装置の原理図である。図1の判定装置は、グループ識別子格納手段151、中間結果格納手段152、生成手段153、および比較手段154を備え、複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定する。
グループ識別子格納手段151は、複数のデータブロックにそれぞれ割り当てられた複数のグループ識別子のうち、受信したフレームに対応するデータブロックのグループ識別子を格納する。中間結果格納手段152は、それらのデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する。
生成手段153は、グループ識別子格納手段151に格納されたグループ識別子に対応する、中間結果格納手段152のエントリに格納された途中計算結果と、受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、そのエントリに格納された途中計算結果を更新する。
比較手段154は、生成手段153が1つのデータブロックの最後のフレームのデータを用いてそのデータブロックのチェックコードの最終計算結果を生成したとき、最終計算結果をそのデータブロックのチェックコードと比較して、比較結果を出力する。
1つのフレームを受信する毎に、受信したフレームに対応するデータブロックのグループ識別子がグループ識別子格納手段151に格納され、中間結果格納手段152から、グループ識別子格納手段151に格納されたグループ識別子に対応するエントリに格納された途中計算結果が取り出される。生成手段153は、取り出された途中計算結果と受信したフレームに含まれるデータとを用いてチェックコードの途中計算結果を生成して、そのエントリに格納された途中計算結果を更新する。
このような動作が複数のデータブロックの各フレーム毎に繰り返され、中間結果格納手段152の複数のエントリの途中計算結果が並行して更新される。そして、1つのデータブロックの最後のフレームを受信したとき、生成手段153は、そのフレームのデータを用いてチェックコードの最終計算結果を生成し、比較手段154は、最終計算結果を受信したチェックコードと比較して、比較結果を出力する。
こうして、最後のフレームを受信したデータブロックから順次、そのチェックコードの最終計算結果が生成され、比較結果が出力される。このような判定装置によれば、複数のデータブロックのチェックコードが並行して更新され、最後のフレームを受信すると、直ちにそのデータブロックのチェック結果が得られる。したがって、複数のユーザデータのチェックコード判定を短時間で行うことができる。
第1の判定装置、グループ識別子格納手段151、中間結果格納手段152、生成手段153、および比較手段154は、例えば、後述する図2のチェックコード判定回路214、グループIDレジスタ221、中間結果バッファ226、チェックコード生成回路229、およびチェックコード比較回路231にそれぞれ対応する。
本発明のプロセッサは、複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定し、本発明の第2の判定装置は、それらのデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ保持しながら各データブロックのチェックコードを計算し、計算したチェックコードと受信したチェックコードを比較する。
プロセッサは、受信したフレームのヘッダ部の情報を格納手段に格納し、その情報を解析して、そのフレームが1つのデータブロックの最初のフレームか否かを判定する。受信したフレームが最初のフレームであれば、そのフレームに新たなグループ識別子を割り当て、受信したフレームが最初のフレームでなければ、そのフレームと同じデータブロックに属する受信済みのフレームと同じグループ識別子をそのフレームに割り当てて、割り当てたグループ識別子を判定装置に転送する。そして、判定装置から転送されたチェックコードの比較結果に基づいて、各データブロックの正当性を確認する。
プロセッサがこのような処理を行うことで、複数のデータブロックのチェックコードが判定装置により並行して更新され、複数のユーザデータのチェックコード判定を短時間で行うことができる。
第2の判定装置および格納手段は、例えば、図2のチェックコード判定回路214およびメモリ201にそれぞれ対応する。
本発明によれば、1つのチェックコード判定回路により複数のユーザデータのチェックコード判定を並行して実行することができ、比較的少ないハードウェア量で判定時間を短縮することが可能になる。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図2は、本実施形態のストレージ制御装置の構成図である。図2において、ブロック間の実線の矢印はデータ信号の転送を表し、破線の矢印は制御信号の転送を表す。
図2のストレージ制御装置は、メモリ201、プロセッサ202、コントローラ203、およびデータバッファ204を備える。コントローラ203は、プロセッサインタフェース(プロセッサI/F)211、ファイバチャネルインタフェース(ファイバチャネルI/F)212、バッファインタフェース(バッファI/F)213、およびチェックコード判定回路214を備える。図2において、コントローラ203内のCRCチェック回路は省略されている。
コントローラ203は、プロセッサインタフェース211によりプロセッサ202と接続され、ファイバチャネルインタフェース212によりホストコンピュータ111と接続され、バッファインタフェース213によりデータバッファ204と接続される。そして、ホストコンピュータ111からフレームを受信すると、データ部をデータバッファ204へ格納し、ヘッダ部とデータを格納したデータバッファ204のアドレスをプロセッサ202へ転送する。
メモリ201は、例えば、RAM(random access memory)等を含み、プロセッサ202が用いるプログラムおよびデータを格納する。プロセッサ202は、メモリ201を利用してプログラムを実行することにより、以下に説明するような処理を行う。
プロセッサ202は、コントローラ203から受け取ったヘッダ部分を解析し、受信したフレームがどのデータブロックのどの部分にあたるかと、データの長さとを判断する。そして、受信したフレームがあるデータブロックの最初のフレームであれば、そのフレームに対して新しいグループ識別子(グループID)を割り当てる。受信したフレームがデータブロックの最初のフレームでなければ、同じデータブロックを構成する受信済みのフレームと同じグループIDを割り当てる。
その後、プロセッサ202は、受信したフレームのチェックコードを判定するためにチェックコード判定回路214を起動する。このとき、チェックコード判定のために必要な以下の情報をコントローラ203に転送する。
・データバッファ204内で、受信したフレームのデータが格納されているアドレス
・チェックコード判定回路214に入力されるデータのデータ長
・ユーザデータの最初および最後を示すフラグ
・受信したフレームのデータがどのデータブロックに属するかを表すグループID
チェックコード判定回路214は、グループIDレジスタ221、フラグレジスタ222、バッファアドレスレジスタ223、データ長レジスタ224、ステートマシン回路225、中間結果バッファ226、マルチプレクサ227、228、チェックコード生成回路229、生成結果レジスタ230、チェックコード比較回路231、およびチェック結果レジスタ232を備える。
このうち、グループIDレジスタ221、フラグレジスタ222、バッファアドレスレジスタ223、およびデータ長レジスタ224は、プロセッサ202から転送されるグループID、フラグ、データのアドレス、およびデータ長をそれぞれ格納する。
チェックコード生成回路229は、所定のアルゴリズムに基づいて、予め決められた長さの初期値と任意の長さのデータからチェックコードを計算する。生成結果レジスタ230は、チェックコード生成回路229から出力される計算結果を格納し、中間結果バッファ226は、チェックコードの途中計算結果をグループID毎に格納する。マルチプレクサ227および228は、チェックコード生成回路229の初期値入力として、予め決められたシード値、中間結果バッファ226のエントリ、および生成結果レジスタ230の出力のいずれかを選択する。
チェックコード比較回路231は、計算されたチェックコードとデータバッファ204に格納されたチェックコードが一致しているかどうかを判定し、チェック結果レジスタ232は、チェックコード比較回路231から出力される判定結果を格納する。この判定結果は、プロセッサインタフェース211を介してプロセッサ202に転送される。ステートマシン回路225は、プロセッサ202からの指示により起動され、チェックコード判定回路214全体の動作を制御する。
プロセッサ202は、チェックコード判定回路214に各フレームのグループIDを通知し、チェックコード判定回路214は、チェックコードの途中計算結果をグループID毎に中間結果バッファ226へ格納して、その続きを計算するときに、格納された途中計算結果を初期値として用いる。このような動作により、それぞれが複数のフレームに分割された複数のユーザデータが入り混じった状態で受信しても、フレームを受信する毎に、複数のユーザデータのチェックコード判定を並行して実行することが可能となる。したがって、結果的に判定に要する時間を短縮することができる。
チェックコード判定回路214は、バッファアドレスレジスタ223に格納されたデータバッファ204のアドレスから、データの1番目のワードを読み出して、チェックコード生成回路229のポートI2へ入力すると同時に、ポートI1へチェックコード生成のための初期値を入力する。
チェックコード生成回路229の初期値としては、受信したフレームがデータブロックの最初のフレームであれば、予め決められたシード値が用いられ、最初のフレームでなければ、グループIDレジスタ221のグループIDに対応する中間結果バッファ226のエントリの値が用いられる。受信したフレームがデータブロックのどの部分に対応するかは、フラグレジスタ222のフラグを用いて判定される。
チェックコード生成回路229はチェックコードの計算結果を生成結果レジスタ230に出力する。チェックコード判定回路214は引き続きデータバッファ204のアドレスから2番目のワードを読み出し、チェックコード生成回路229のポートI2に入力すると同時に、生成結果レジスタ230の出力値をポートI1に入力する。この動作をプロセッサ202から指示された長さのデータまで繰り返す。
チェックコード判定回路214は、受信したフレームがデータブロックの最後のフレームであれば、データバッファ204から受信したチェックコードを読み出す。そして、チェックコード比較回路231は、読み出されたチェックコードを、上記のシーケンスでチェックコード生成回路229が最終的に生成したチェックコードの計算結果と比較する。2つのチェックコードが一致していれば、受信したデータブロックの正当性が確認できる。
チェックコード生成回路229は、フレームがデータブロックの最後でなければ、チェックコード生成回路229が生成したチェックコードの途中計算結果を、グループIDレジスタ221のグループIDに対応する中間結果バッファ226のエントリに格納する。
図3は、図2のストレージ制御装置の動作シーケンスの一例を示している。この例では、1つのデータブロックが3つのフレームに分割されてホストコンピュータ111から転送されている。プロセッサ202は、これらの3つのフレームのヘッダ部を解析して、同じデータブロックの構成要素であると判定するので、3つのフレームに同じグループIDを割り当てる。図3の動作シーケンスは以下の通りである。
(1)最初のフレームの受信に続いて、チェックコード判定回路214のステートマシン回路225がプロセッサ202から起動される。
(2)ステートマシン回路225は、予め決められたシード値を初期値としてチェックコード生成回路229に与える。
(3)チェックコード生成回路229は、データバッファ204から読み出されたデータのチェックコードを計算する。
(4)チェックコード生成回路229は、指示されたデータの計算を終えると、計算結果を中間結果バッファ226のグループIDに対応するエントリに格納する。
(5)2番目のフレームの受信に続いて、ステートマシン回路225がプロセッサから起動される。
(6)ステートマシン回路225は、中間結果バッファ226のグループIDに対応するエントリから読み出した値を、初期値としてチェックコード生成回路229に与える。
(7)チェックコード生成回路229は、データバッファ204から読み出されたデータのチェックコードを計算する。
(8)チェックコード生成回路229は、指示されたデータの計算を終えると、計算結果を中間結果バッファ226のグループIDに対応するエントリに格納する。
(9)3番目のフレームの受信に続いて、ステートマシン回路225がプロセッサから起動される。
(10)ステートマシン回路225は、中間結果バッファ226のグループIDに対応するエントリから読み出した値を、初期値としてチェックコード生成回路229に与える。
(11)チェックコード生成回路229は、データバッファ204から読み出されたデータのチェックコードを計算する。
(12)チェックコード生成回路229は、指示されたデータの計算を終えると、計算結果をチェックコード比較回路231に出力する。
(13)チェックコード比較回路231は、データバッファ204からチェックコード部分を読み出し、計算されたチェックコードと比較する。
次に、図4から図7までを参照しながら、図2のストレージ制御装置の動作をより詳細に説明する。
図4は、フラグレジスタ222に格納される先頭フラグおよび終了フラグを示している。これらのフラグはそれぞれ1ビットの情報で表される。先頭フラグが立っているとき(論理“1”のとき)、データブロックの最初のフレームであることを表し、終了フラグが立っているとき、データブロックの最後のフレームであることを表す。いずれのフラグも立っていないときは、最初でも最後でもない途中のフレームであることを表し、両方のフラグが立っているときは、最初で最後のフレームであることを表す。
マルチプレクサ227は、フラグレジスタ222の先頭フラグが論理“0”のとき、グループIDレジスタ221のグループIDに対応する中間結果バッファ226のエントリから出力されるデータを選択し、先頭フラグが論理“1”のときシード値を選択して、選択したデータをマルチプレクサ228に出力する。
図5は、ステートマシン回路225の状態遷移を示している。ステートマシン回路225は、プロセッサ202により起動されると、アイドル状態(IDLE)から待ち状態(WAIT)に遷移し、チェックコード生成回路214がバッファインタフェース213からデータを受信すると、WAIT状態から計算状態(CALC)に遷移する。そして、チェックコードの計算に必要な制御を開始する。
ステートマシン回路225は、WAIT状態において、マルチプレクサ228がマルチプレクサ227の出力を選択するような制御信号を出力し、CALC状態において、マルチプレクサ228が生成結果レジスタ230の出力を選択するような制御信号を出力する。
CALC状態において、フラグレジスタ222の終了フラグが論理“0”のときにバッファインタフェース213からフレームの最後のワードを受信すると、ライト状態(WRT)に遷移する。そして、中間結果バッファ226に対してライト有効信号を出力し、生成結果レジスタ230の計算結果を中間結果バッファ226へ書き込む制御を行う。
また、CALC状態において、フラグレジスタ222の終了フラグが論理“1”のときにフレームの最後のワードを受信すると、チェック状態(CHK)に遷移し、計算結果を受信したチェックコードと比較する制御を行う。そして、WRT状態またはCHK状態の制御が終了すると、IDLE状態に遷移する。
図6は、プロセッサ202が行う処理のフローチャートである。プロセッサ202は、コントローラ203から受信したヘッダ部の情報をメモリ201に格納し、その情報を解析する(ステップ601)。そして、ホストコンピュータ111から受信したフレームがデータブロックの最初のフレームか否かを判定する(ステップ602)。
受信したフレームが最初のフレームであれば、そのフレームに新たなグループIDを割り当て(ステップ603)、さらにそのフレームがデータブロックの最後のフレームか否かを判定する(ステップ604)。受信したフレームが最後のフレームであれば、そのフレームはデータブロックの最初かつ最後のフレームであるので、先頭フラグおよび終了フラグに論理“1”を設定する(ステップ605)。また、受信したフレームが最後のフレームでなければ、先頭フラグおよび終了フラグにそれぞれ論理“1”および“0”を設定する(ステップ606)。
次に、データのアドレスおよびデータ長を設定し、グループID、先頭フラグ、および終了フラグとともにコントローラ203へ送信して(ステップ607)、チェックコード判定回路214を起動する(ステップ608)。
そして、コントローラ203から割り込み信号を受信するまで別の処理を行う(ステップ609)。コントローラ203から割り込み信号を受信すると、チェックコード判定回路214からチェック結果を読み出して、受信したデータブロックの正当性を確認し(ステップ611)、別の処理を行う(ステップ612)。
ステップ602において、受信したフレームが最初のフレームでなければ、そのフレームは既に受信済みのいずれかのフレームの後続データに該当する。そこで、どのデータブロックのフレームかを判別し(ステップ613)、対応する受信済みのフレームと同じグループIDを受信したフレームに割り当てる(ステップ614)。
次に、そのフレームがデータブロックの最後のフレームか否かを判定する(ステップ615)。受信したフレームが最後のフレームであれば、先頭フラグおよび終了フラグにそれぞれ論理“0”および“1”を設定する(ステップ616)。また、受信したフレームが最後のフレームでなければ、先頭フラグおよび終了フラグに論理“0”を設定する。そして、ステップ607以降の処理を行う。
データブロックとグループIDの対応関係を管理するために、例えば、各ユーザデータの識別子と各グループIDの対応関係を保持するテーブルがメモリ201内に設けられ、プロセッサ202は、そのテーブルに受信したフレームのデータ識別子とグループIDを登録しておく。そして、ステップ614において、新たに受信したフレームのデータ識別子に対応するグループIDをテーブルから取得して、そのフレームに割り当てる。
図7は、チェックコード判定回路214の動作タイミングチャートの一例を示している。上端の数字はクロックサイクルを表し、サイクル1から13まではデータブロックの最初のフレームのデータ処理を表し、サイクル21から32まではデータブロックの最後のフレームのデータ処理を表す。ステートマシン回路225は、チェックコードの計算が開始されると、1サイクル毎にデータ長レジスタ224の値をデクリメントする。
データ有効信号は、データバッファ204からバッファインタフェース213を介してステートマシン回路225およびチェックコード比較回路231に出力される制御信号であり、ライト有効信号は、ステートマシン回路225から中間結果バッファ226に出力される制御信号である。以下、サイクル番号を参照しながら、チェックコード判定回路214の動作を説明する。
サイクル1
コントローラ203が最初のフレームを受信すると、プロセッサ202がグループID、フラグ、データ長、およびアドレスを設定し、チェックコード判定回路214を起動する。グループIDは0、先頭フラグは論理“1”、終了フラグは論理“0”、データ長はNに設定される。これにより、ステートマシン回路225は、IDLE状態からWAIT状態に遷移する。
サイクル4
データバッファ204からバッファインタフェース213を介して最初のデータ“D1”が読み出され、チェックコード生成回路229のポートI2に入力される。このとき、先頭フラグは論理“1”であるから、マルチプレクサ227はシード値を選択し、ステートマシン回路225はWAIT状態であるから、マルチプレクサ228はマルチプレクサ227の出力を選択する。したがって、チェックコード生成回路229のポートI1にはシード値が入力される。ステートマシン回路225は、WAIT状態からCALC状態に遷移し、データ長レジスタ224の値は1だけデクリメントされる。
サイクル5
サイクル4でチェックコード生成回路229に入力されたデータから得られた値“C1”が、生成結果レジスタ230に格納される。データバッファ204から2番目のデータ“D2”が読み出され、チェックコード生成回路229のポートI2に入力される。このとき、ステートマシン回路225はCALC状態であるから、マルチプレクサ228は生成結果レジスタ230の出力を選択し、チェックコード生成回路229のポートI1には“C1”が入力される。データ長レジスタ224の値は1だけデクリメントされる。
サイクル6−10
サイクル5と同様の動作が繰り返され、生成結果レジスタ230の値が順次更新される。
サイクル11
チェックコード生成回路229から出力された値“CN−1”が、生成結果レジスタ230に格納され、チェックコード生成回路229のポートI1に入力される。データバッファ204からデータ“DN”が読み出され、チェックコード生成回路229のポートI2に入力される。データ長レジスタ224の値は1であり、デクリメントすると0になるので、“DN”は最後のデータと判定される。このとき、終了フラグは論理“0”であるから、ステートマシン回路225は、CALC状態からWRT状態へ遷移する。
サイクル12
チェックコード生成回路229から出力された値“CN”が、最初のフレームに対するチェックコードの計算結果として、生成結果レジスタ230に格納される。ステートマシン回路225からライト有効信号が出力され、生成結果レジスタ230の値“CN”が、途中計算結果として中間結果バッファ226へ格納される。このとき、“CN”は、グループIDレジスタ221のグループIDが指しているアドレス“0”のエントリに書き込まれる。
その後、コントローラ203が次のフレームを受信する毎にチェックコード判定回路214が起動され、中間結果バッファ226のアドレス“0”に格納された“CN”の値が更新される。
サイクル21
コントローラ203が最後のフレームを受信すると、プロセッサ202がグループID、フラグ、データ長、およびアドレスを設定し、チェックコード判定回路214を起動する。グループIDは0、先頭フラグは論理“0”、終了フラグは論理“1”、データ長はMに設定される。これにより、ステートマシン回路225は、IDLE状態からWAIT状態に遷移する。
サイクル24
データバッファ204から最初のデータ“D1”が読み出され、チェックコード生成回路229のポートI2に入力される。このとき、先頭フラグは論理“0”であるから、マルチプレクサ227は中間結果バッファ226の出力を選択し、ステートマシン回路225はWAIT状態であるから、マルチプレクサ228はマルチプレクサ227の出力を選択する。したがって、チェックコード生成回路229のポートI1には、中間結果バッファ226のアドレス“0”のデータ“CN”が入力される。ステートマシン回路225は、WAIT状態からCALC状態に遷移し、データ長レジスタ224の値は1だけデクリメントされる。
サイクル25−29
サイクル5と同様の動作が繰り返され、生成結果レジスタ230の値が順次更新される。
サイクル30
チェックコード生成回路229から出力された値“CM−1”が、生成結果レジスタ230に格納され、チェックコード生成回路229のポートI1に入力される。データバッファ204からデータ“DM”が読み出され、チェックコード生成回路229のポートI2に入力される。データ長レジスタ224の値は1であるから、“DM”は最後のデータと判定される。このとき、終了フラグは論理“1”であるから、ステートマシン回路225は、CALC状態からCHK状態へ遷移する。
サイクル31
チェックコード生成回路229から出力された値“CM”が、最後のフレームに対するチェックコードの計算結果として、生成結果レジスタ230に格納される。この“CM”は、グループID“0”のデータ全体に対するチェックコードの計算結果であり、チェックコード比較回路231のポートI4に入力される。また、データバッファ204から最後のフレームのデータに続くチェックコード“CC”が読み出され、チェックコード比較回路231のポートI3に入力される。
サイクル32
チェックコード比較回路231は、ステートマシン回路225からの制御信号に従って、計算結果“CM”とチェックコード“CC”を比較し、その結果をチェック結果としてチェック結果レジスタ232に書き込む。
その後、ステートマシン回路225がプロセッサ202に割り込み信号を送信し、プロセッサ202は、チェック結果レジスタ232のチェック結果を読み出して、データブロックの正当性を確認する。
図3では、1つのデータブロックを構成するフレームが連続してホストコンピュータ111から転送されており、図7では、1つのデータブロックの最初および最後のフレームのデータ処理のみが示されているが、実際には別のデータブロックを構成するフレームが間に入ることがある。そのような場合でも、別のデータブロックに別のグループIDを割り当て、そのフレームのチェックコードの計算結果を中間結果バッファ226の別のエントリに格納することによって、複数のデータブロックのチェックコードの判定を並行して行うことができる。
図8は、このような場合のチェックコード判定の一例を示している。この例では、ホストコンピュータ111aおよび111bから、それぞれユーザデータAおよびBのデータブロックが複数のフレームに分割されて、ストレージ制御装置801に転送されている。
ユーザデータAはデータA1、データA2、・・・、データAxからなり、ユーザデータBはデータB1、データB2、・・・、データByからなる。各データはそれぞれ別々のフレームに収容されて転送される。ストレージ制御装置801は、図2のような構成を有し、データA1、データB1、データA2、データB2、・・・、データAx、データByの順にそれらのフレームを受信する。
受信したフレームのデータは、一旦、データバッファ204に格納され、チェックコード判定回路214によりデータバッファ204から順次読み出される。チェックコード生成回路229は、まず、データA1とシード値からチェックコードAを計算し、途中計算結果として中間結果バッファ226の対応するエントリ811に格納する。次に、データB1とシード値からチェックコードBを計算し、途中計算結果として中間結果バッファ226の対応するエントリ812に格納する。
次に、チェックコード生成回路229は、データA2とエントリ811のチェックコードAからチェックコードを計算し、エントリ811のチェックコードAを更新する。また、データB2とエントリ812のチェックコードBからチェックコードを計算し、エントリ812のチェックコードBを更新する。
このような更新動作が繰り返され、チェックコード生成回路229にデータAxが入力されたとき、ユーザデータAの全体に対するチェックコードがチェックコード比較回路231に出力される。また、チェックコード生成回路229にデータByが入力されたとき、ユーザデータBの全体に対するチェックコードがチェックコード比較回路231に出力される。
図9は、プロセッサ202が処理に用いるプログラムおよびデータの提供方法を示している。情報処理装置等の外部装置901や可搬記録媒体902に格納されたプログラムおよびデータは、ストレージ制御装置801のメモリ201にロードされる。外部装置901は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介してストレージ制御装置801に送信する。可搬記録媒体902は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。プロセッサ202は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
ところで、図11のデータ処理システムではディスク装置がストレージ制御装置に接続されているが、本発明はテープ装置のような他の記憶装置が接続されたストレージ制御装置に対しても適用可能である。また、ディスク装置には、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等が含まれる。
(付記1) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定する判定装置であって、
前記複数のデータブロックにそれぞれ割り当てられた複数のグループ識別子のうち、受信したフレームに対応するデータブロックのグループ識別子を格納するグループ識別子格納手段と、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と
を備えることを特徴とする判定装置。
(付記2) 前記生成手段は、1つのフレームを受信する毎に、前記中間結果格納手段の対応するエントリに格納された途中計算結果を更新する動作を繰り返しながら、該中間結果格納手段の複数のエントリの途中計算結果を並行して更新することを特徴とする付記1記載の判定装置。
(付記3) 前記受信したフレームが1つのデータブロックの最後のフレームであるか否かを示すフラグを格納するフラグ格納手段をさらに備え、前記生成手段は、該フラグが該最後のフレームであることを示していないとき、前記中間結果格納手段のエントリに格納された途中計算結果を更新し、前記比較手段は、該フラグが該最後のフレームであることを示しているとき、前記最終計算結果を前記1つのデータブロックのチェックコードと比較することを特徴とする付記1記載の判定装置。
(付記4) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定し、該データを記憶装置へ転送する制御を行うストレージ制御装置であって、
送信されたフレームを受信する受信手段と、
前記複数のデータブロックにそれぞれ異なるグループ識別子を割り当て、受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当てる制御手段と、
前記受信したフレームに割り当てられたグループ識別子を格納するグループ識別子格納手段と、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と
を備えることを特徴とするストレージ制御装置。
(付記5) 複数のアクセス装置から複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定し、該データを格納するストレージ装置であって、
送信されたフレームを受信する受信手段と、
前記複数のデータブロックにそれぞれ異なるグループ識別子を割り当て、受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当てる制御手段と、
前記受信したフレームに割り当てられたグループ識別子を格納するグループ識別子格納手段と、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と、
前記複数のアクセス装置により共用され、各データブロックの複数のフレームに含まれるデータから組み立てられた元のデータを格納する記憶装置と
を備えることを特徴とするストレージ装置。
(付記6) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定するプロセッサのためのプログラムであって、
受信したフレームのヘッダ部の情報を格納手段に格納し、該ヘッダ部の情報を解析して、該フレームが1つのデータブロックの最初のフレームか否かを判定し、
前記受信したフレームが前記最初のフレームであれば、該フレームに新たなグループ識別子を割り当て、該受信したフレームが該最初のフレームでなければ、該フレームと同じデータブロックに属する受信済みのフレームと同じグループ識別子を該フレームに割り当て、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ保持しながら各データブロックのチェックコードを計算し、計算したチェックコードと受信したチェックコードを比較する判定装置に、割り当てたグループ識別子を転送し、
前記判定装置から転送されたチェックコードの比較結果に基づいて、各データブロックの正当性を確認する
処理を前記プロセッサに実行させることを特徴とするプログラム。
(付記7) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定するプロセッサのためのプログラムを記録した記録媒体であって、
前記プログラムは、
受信したフレームのヘッダ部の情報を格納手段に格納し、該ヘッダ部の情報を解析して、該フレームが1つのデータブロックの最初のフレームか否かを判定し、
前記受信したフレームが前記最初のフレームであれば、該フレームに新たなグループ識別子を割り当て、該受信したフレームが該最初のフレームでなければ、該フレームと同じデータブロックに属する受信済みのフレームと同じグループ識別子を該フレームに割り当て、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ保持しながら各データブロックのチェックコードを計算し、計算したチェックコードと受信したチェックコードを比較する判定装置に、割り当てたグループ識別子を転送し、
前記判定装置から転送されたチェックコードの比較結果に基づいて、各データブロックの正当性を確認する
処理を前記プロセッサに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記8) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定するプロセッサのためのプログラムを搬送する搬送信号であって、
前記プログラムは、
受信したフレームのヘッダ部の情報を格納手段に格納し、該ヘッダ部の情報を解析して、該フレームが1つのデータブロックの最初のフレームか否かを判定し、
前記受信したフレームが前記最初のフレームであれば、該フレームに新たなグループ識別子を割り当て、該受信したフレームが該最初のフレームでなければ、該フレームと同じデータブロックに属する受信済みのフレームと同じグループ識別子を該フレームに割り当て、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ保持しながら各データブロックのチェックコードを計算し、計算したチェックコードと受信したチェックコードを比較する判定装置に、割り当てたグループ識別子を転送し、
前記判定装置から転送されたチェックコードの比較結果に基づいて、各データブロックの正当性を確認する
処理を前記プロセッサに実行させることを特徴とする搬送信号。
(付記9) 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定する判定方法であって、
1つのフレームを受信する毎に、
受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当て、
前記受信したフレームに割り当てられたグループ識別子をグループ識別子格納手段に格納し、
前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段から、前記グループ識別子格納手段に格納されたグループ識別子に対応するエントリに格納された途中計算結果を取り出し、
取り出した途中計算結果と前記受信したフレームに含まれるデータとを用いてチェックコードの途中計算結果を生成して、前記グループ識別子に対応するエントリに格納された途中計算結果を更新する動作を繰り返し、
1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較する
ことを特徴とする判定方法。
本発明の判定装置の原理図である。 ストレージ制御装置の構成図である。 ストレージ制御装置の動作シーケンスを示す図である。 フラグレジスタのフラグを示す図である。 ステートマシン回路の状態遷移を示す図である。 プロセッサの処理のフローチャートである。 チェックコード判定回路の動作タイミングチャートである。 複数のユーザデータのチェックコード判定を示す図である。 プログラム/データの提供方法を示す図である。 チェックコードによるデータ保護を示す図である。 データ処理システムの構成図である。 複数のホストコンピュータからのデータ転送を示す図である。
符号の説明
101 ユーザデータ
102 チェックコード
103、141a、141b、141c データブロック
104a、104b、104c、104d フレーム
111、111a、111b、111c フレーム
112 通信ネットワーク
113、801 ストレージ制御装置
151 グループ識別子格納手段
152 中間結果格納手段
153 生成手段
154 比較手段
121、202 プロセッサ
122、203 コントローラ
123、204 データバッファ
131、214 チェックコード判定回路
132 CRCチェック回路
201 メモリ
211 プロセッサインタフェース
212 ファイバチャネルインタフェース
213 バッファインタフェース
221 グループIDレジスタ
222 フラグレジスタ
223 バッファアドレスレジスタ
224 データ長レジスタ
225 ステートマシン回路
226 中間結果バッファ
227、228 マルチプレクサ
229 チェックコード生成回路
230 生成結果レジスタ
231 チェックコード比較回路
232 チェック結果レジスタ
811、812 エントリ
901 外部装置
902 可搬記録媒体

Claims (7)

  1. 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定する判定装置であって、
    前記複数のデータブロックにそれぞれ割り当てられた複数のグループ識別子のうち、受信したフレームに対応するデータブロックのグループ識別子を格納するグループ識別子格納手段と、
    前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
    前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
    前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と
    を備えることを特徴とする判定装置。
  2. 前記生成手段は、1つのフレームを受信する毎に、前記中間結果格納手段の対応するエントリに格納された途中計算結果を更新する動作を繰り返しながら、該中間結果格納手段の複数のエントリの途中計算結果を並行して更新することを特徴とする請求項1記載の判定装置。
  3. 前記受信したフレームが1つのデータブロックの最後のフレームであるか否かを示すフラグを格納するフラグ格納手段をさらに備え、前記生成手段は、該フラグが該最後のフレームであることを示していないとき、前記中間結果格納手段のエントリに格納された途中計算結果を更新し、前記比較手段は、該フラグが該最後のフレームであることを示しているとき、前記最終計算結果を前記1つのデータブロックのチェックコードと比較することを特徴とする請求項1記載の判定装置。
  4. 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定し、該データを記憶装置へ転送する制御を行うストレージ制御装置であって、
    送信されたフレームを受信する受信手段と、
    前記複数のデータブロックにそれぞれ異なるグループ識別子を割り当て、受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当てる制御手段と、
    前記受信したフレームに割り当てられたグループ識別子を格納するグループ識別子格納手段と、
    前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
    前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
    前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と
    を備えることを特徴とするストレージ制御装置。
  5. 複数のアクセス装置から複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定し、該データを格納するストレージ装置であって、
    送信されたフレームを受信する受信手段と、
    前記複数のデータブロックにそれぞれ異なるグループ識別子を割り当て、受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当てる制御手段と、
    前記受信したフレームに割り当てられたグループ識別子を格納するグループ識別子格納手段と、
    前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段と、
    前記グループ識別子格納手段に格納されたグループ識別子に対応する、前記中間結果格納手段のエントリに格納された途中計算結果と、前記受信したフレームに含まれるデータとを用いて、チェックコードの途中計算結果を生成し、該エントリに格納された途中計算結果を更新する生成手段と、
    前記生成手段が1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較して、比較結果を出力する比較手段と、
    前記複数のアクセス装置により共用され、各データブロックの複数のフレームに含まれるデータから組み立てられた元のデータを格納する記憶装置と
    を備えることを特徴とするストレージ装置。
  6. 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定するプロセッサのためのプログラムであって、
    受信したフレームのヘッダ部の情報を格納手段に格納し、該ヘッダ部の情報を解析して、該フレームが1つのデータブロックの最初のフレームか否かを判定し、
    前記受信したフレームが前記最初のフレームであれば、該フレームに新たなグループ識別子を割り当て、該受信したフレームが該最初のフレームでなければ、該フレームと同じデータブロックに属する受信済みのフレームと同じグループ識別子を該フレームに割り当て、
    前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ保持しながら各データブロックのチェックコードを計算し、計算したチェックコードと受信したチェックコードを比較する判定装置に、割り当てたグループ識別子を転送し、
    前記判定装置から転送されたチェックコードの比較結果に基づいて、各データブロックの正当性を確認する
    処理を前記プロセッサに実行させることを特徴とするプログラム。
  7. 複数のデータブロックがそれぞれ複数のフレームに分割されて送信されたとき、各データブロックに含まれるチェックコードを用いて各データブロックに含まれるデータの正当性を判定する判定方法であって、
    1つのフレームを受信する毎に、
    受信したフレームのヘッダ部の情報を解析して、該フレームに対応するデータブロックのグループ識別子を該フレームに割り当て、
    前記受信したフレームに割り当てられたグループ識別子をグループ識別子格納手段に格納し、
    前記複数のデータブロックのチェックコードの途中計算結果をグループ識別子毎にそれぞれ格納する複数のエントリを有する中間結果格納手段から、前記グループ識別子格納手段に格納されたグループ識別子に対応するエントリに格納された途中計算結果を取り出し、
    取り出した途中計算結果と前記受信したフレームに含まれるデータとを用いてチェックコードの途中計算結果を生成して、前記グループ識別子に対応するエントリに格納された途中計算結果を更新する動作を繰り返し、
    1つのデータブロックの最後のフレームのデータを用いて該1つのデータブロックのチェックコードの最終計算結果を生成したとき、該最終計算結果を該1つのデータブロックのチェックコードと比較する
    ことを特徴とする判定方法。

JP2004061087A 2004-03-04 2004-03-04 転送データの正当性を判定する装置および方法 Expired - Fee Related JP4271602B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004061087A JP4271602B2 (ja) 2004-03-04 2004-03-04 転送データの正当性を判定する装置および方法
US10/929,675 US7577894B2 (en) 2004-03-04 2004-08-31 Apparatus and method for judging the legitimacy of transfer data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004061087A JP4271602B2 (ja) 2004-03-04 2004-03-04 転送データの正当性を判定する装置および方法

Publications (2)

Publication Number Publication Date
JP2005252712A true JP2005252712A (ja) 2005-09-15
JP4271602B2 JP4271602B2 (ja) 2009-06-03

Family

ID=34918040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004061087A Expired - Fee Related JP4271602B2 (ja) 2004-03-04 2004-03-04 転送データの正当性を判定する装置および方法

Country Status (2)

Country Link
US (1) US7577894B2 (ja)
JP (1) JP4271602B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010501090A (ja) * 2006-08-18 2010-01-14 デジタル ライズ テクノロジー シーオー.,エルティーディー. 音声復号化
JP2010501153A (ja) * 2006-08-18 2010-01-14 デジタル ライズ テクノロジー シーオー.,エルティーディー. フレーム型データの可変分解能処理

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2192495A1 (de) * 2008-11-11 2010-06-02 Thomson Licensing Verfahren zur Bearbeitung von Daten mittels Dreifach-Pufferung
US8321753B2 (en) * 2010-04-13 2012-11-27 Juniper Networks, Inc. Optimization of packet buffer memory utilization
CN107579920B (zh) * 2017-09-25 2021-06-01 盛科网络(苏州)有限公司 数据流的传输方法、装置、存储介质及处理器
CN110795269B (zh) * 2018-08-03 2023-05-26 阿里巴巴集团控股有限公司 一种数据恢复验证方法、装置及设备
CN114817100B (zh) * 2022-04-08 2023-09-29 武汉光迅电子技术有限公司 一种用于单板的数据读取方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168495A (en) 1991-05-10 1992-12-01 Ibm Corporation Nested frame communication protocol
JPH07111695B2 (ja) 1991-07-25 1995-11-29 株式会社メルコ データ転送方法ならびにデータ送信装置および復元装置
JPH0591072A (ja) 1991-09-30 1993-04-09 Nec Corp 高速データ転送方式
US5630054A (en) 1995-04-18 1997-05-13 Mti Technology Center Method and apparatus for storing and retrieving error check information
JP3111993B2 (ja) 1998-07-14 2000-11-27 日本電気株式会社 ノード装置
JP2001034427A (ja) 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
JP3527873B2 (ja) 1999-09-03 2004-05-17 松下電器産業株式会社 誤り訂正装置
US6647528B1 (en) * 2000-11-02 2003-11-11 Computer Network Technology Corporation Fiber channel CRC for internal error checking on a switching platform
JP2002247097A (ja) 2001-02-22 2002-08-30 Oki Electric Ind Co Ltd 通信制御装置
US7174498B2 (en) * 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code
US7391723B2 (en) * 2002-04-22 2008-06-24 Computer Network Technology Corporation Frame-level fibre channel CRC on switching platform

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010501090A (ja) * 2006-08-18 2010-01-14 デジタル ライズ テクノロジー シーオー.,エルティーディー. 音声復号化
JP2010501089A (ja) * 2006-08-18 2010-01-14 デジタル ライズ テクノロジー シーオー.,エルティーディー. 音声符号化システム
JP2010501153A (ja) * 2006-08-18 2010-01-14 デジタル ライズ テクノロジー シーオー.,エルティーディー. フレーム型データの可変分解能処理
JP4871999B2 (ja) * 2006-08-18 2012-02-08 デジタル ライズ テクノロジー シーオー.,エルティーディー. フレーム型データの可変分解能処理

Also Published As

Publication number Publication date
US20050204238A1 (en) 2005-09-15
US7577894B2 (en) 2009-08-18
JP4271602B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
EP0449661B1 (en) Computer for Simultaneously executing plural instructions
JP2004005382A (ja) データ転送装置および方法
CN102937936B (zh) 使用n路高速缓冲存储器的系统和方法
JPH1185512A (ja) 命令圧縮格納および命令復元機能を有するデータ処理装置
US7111289B2 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
JP4271602B2 (ja) 転送データの正当性を判定する装置および方法
US7769966B2 (en) Apparatus and method for judging validity of transfer data
US8291270B2 (en) Request processing device, request processing system, and access testing method
JP2010109746A (ja) データ受信装置、データ受信方法、及びデータ受信プログラム
US7036003B1 (en) Instruction processing device and method for controlling branch instruction accompanied by mode change
CN116028404A (zh) 一种dma配置方法和配置电路
JP2002157215A (ja) 直接メモリ・アクセス・コントローラにおけるアドレス変更装置および方法
US20090037917A1 (en) Apparatus and method capable of using reconfigurable descriptor in system on chip
US20020069350A1 (en) Apparatus and method for executing a block data transfer instruction inside processor
EP4293505A1 (en) Instruction retirement unit, instruction execution unit, processing unit, cumputing device, and instruction processing method
CN102112956B (zh) 用来存储原始时间点数据的设备和方法
JP3583032B2 (ja) ベクトル拡散処理装置
JP3522150B2 (ja) データ処理装置およびそのデータ処理方法
JPH1040165A (ja) データ読み出し方法およびリードバッファ
CN116342368A (zh) 基于risc-v指令集的图形处理器指令处理方法及装置
US8924836B2 (en) Data receiving apparatus, data receiving method, and computer-readable recording medium
JP2001053621A (ja) Crc生成部およびcrc計算装置
CN111352025A (zh) 一种fpga中配置控制器验证方法、系统及设备
JP2004178058A (ja) プログラム制御装置およびプログラム制御方法
JP2006072452A (ja) データ記録方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081002

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: 20090224

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4271602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees