(57)【要約】【課題】複数バイト単位のデータ処理が可能であり、回路を複雑化せず、回路規模の増大を招くことなく、処理するデータバス幅を拡大することができ、データ転送の高速化を図れる磁気テープ装置の制御装置を提供する。【解決手段】ホスト１０からのデータをテープフォーマットに合わせるために必要な残余バイトを作成する残余バイト作成回路１と、誤り訂正のための誤り訂正符号を作成する誤り訂正符号化回路３と、ＭＴＵ１２から読み出したデータ間のずれを補正するデスキュー回路５と、読み出しデータの誤りの有無を判定するためのシンドロームを作成するシンドローム作成回路６と、データの保持（遅延）を行うフレームバッファ８とにおいて、複数バイト単位でのデータ処理を行える。【選択図】図１
2006085900.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から入力したデータに誤り訂正符号を付加してフォーマット変換し、フォーマット変換したデータを磁気テープユニットに転送すると共に、前記磁気テープユニットから読み出したデータに誤り訂正を行ってフォーマット変換し、フォーマット変換したデータを前記上位装置に転送する磁気テープ装置の制御装置において、
前記上位装置からの入力データに対する複数バイト単位での誤り訂正符号化処理、及び／または、前記磁気テープユニットからの読み出しデータに対する複数バイト単位での誤り訂正処理を行うように構成しており、前記上位装置からのデータに対してリードソロモン誤り訂正符号を作成する誤り訂正符号化手段を備え、該誤り訂正符号化手段が、情報語の複数の総和計算を並列処理するように構成したことを特徴とする磁気テープ装置の制御装置。
【請求項２】
前記上位装置からのデータを所定数のバイト単位の１フレームに構成する際に、各フレーム内のバイト数が所定数となるように残余バイトを計数する計数手段を備え、該計数手段が、前記上位装置からのデータのバイト数が奇数であるか偶数であるかを判定する手段と、その判定結果に応じて残余バイトの計数方法を切り換える手段とを有することを特徴とする請求項１記載の磁気テープ装置の制御装置。
【請求項３】
前記磁気テープユニットから読み出したデータの誤りをリードソロモン方式に従って訂正するために必要なシンドロームを作成するシンドローム作成手段を備え、該シンドローム作成手段が、受信語に検査行列を乗算する回路を複数有し、複数バイトのデータに対して並列的にシンドロームを作成するように構成したことを特徴とする請求項１記載の磁気テープ装置の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気テープ装置の制御装置に関し、特に、磁気テープ装置の大容量化，高機能化，転送速度の高速化を実現させるための制御装置に関する。
【背景技術】
【０００２】
近年のコンピュータシステムの高速化に伴い、周辺装置である磁気テープ装置においても高速化が要求されている。このため、データバス幅の拡大、制御方法の改善が必要とされている。
【０００３】
図２は、テープサブシステムの構成図であり、テープサブシステムは、上位装置としてのホスト１０と、データを記録する磁気テープユニット（ＭＴＵ：Ｍａｇｎｅｔｅｉｃ  Ｔａｐｅ  Ｕｎｉｔ）１２と、ホスト１０及びＭＴＵ１２間に介在されてデータのフォーマット変換を行う磁気テープ制御装置（ＭＴＣ：Ｍａｇｎｅｔｅｉｃ  Ｔａｐｅ  Ｃｏｔｒｏｌｌｅｒ）１１とから構成されている。データ書き込み時には、ホスト１０からのデータがＭＴＣ１１に入力され、ここでフォーマット変換が行われた後にＭＴＵ１２にデータが転送される。データ読み取り時には、ＭＴＵ１２からの読み出しデータがＭＴＣ１１に転送され、ここで誤り訂正が行われると共にフォーマット変換が行われた後にデータがホスト１０に送られる。なお、ＭＴＣ１１は、ホスト１０とのデータの送受を行うためのインターフェース部１１ａと、フォーマット変換，誤り訂正等の処理を行うデータフォーマット部１１ｂと、データをＤ／Ａ変換・Ａ／Ｄ変換するデータ変換部１１ｃとを有する。
【０００４】
図１は、ＭＴＣ１１のデータフォーマット部１１ｂの内部構成を示すブロック図であり、データフォーマット部１１ｂは、ＭＴＵ１２内の磁気テープ上に記録するためのフォーマット化を行う書き込みフォーマット部１１ｄと、磁気テープから読み出したデータのトラックずれを補正したり、データの誤り検出及び訂正を行う読み出しフォーマット部１１ｅとに分けられる。
【０００５】
書き込みフォーマット部１１ｄは、残余バイト作成回路１と、マルチプレクサ２，４と、誤り訂正符号化回路３とを有する。残余バイト作成回路１は、ホスト１０からのデータをテープフォーマットに合わせるために必要な残余バイト（ＲＥＳＩＤＵＡＬ−ＢＹＴＥ）を作成する。マルチプレクサ２は、ホスト１０からのカスタム（ＣＵＳＴＯＭ）データ，残余バイト作成回路１からの残余バイト，ブロック（ＢＬＯＣＫ）ＩＤ，冗長バイトであるパッド（ＰＡＤ）バイト等を結合する。誤り訂正符号化回路３は、誤り訂正のため検査キャラクタである誤り訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）を作成する。誤り訂正符号としては、ＡＸＰ（Ａｄａｐｔｉｖｅ  Ｃｒｏｓｓ  Ｐａｒｉｔｙ）符号またはリードソロモン（Ｒｅｅｄ−Ｓｏｌｏｍｏｎ）符号が良く使われている。マルチプレクサ４は、マルチプレクサ２及び誤り訂正符号化回路３の出力を結合する。
【０００６】
一方、読み出しフォーマット部１１ｅは、デスキュー回路５と、シンドローム作成回路６と、誤り訂正回路７と、フレームバッファ８とを有する。デスキュー回路５は、ＭＴＵ１２から読み出したデータ間のずれを補正する。磁気テープに記録されたデータを読み込んだ時に、磁気テープと磁気ヘッドとは一般的には垂直にならず、ある程度の誤差角度が生じるので、それに応じてデータ間のずれ（スキュー）が発生する。デスキュー回路５はこのデータ間のずれを補正する。シンドローム作成回路６は、読み出しデータの誤りの有無を判定するためのシンドロームと呼ばれる情報を作成する。誤り訂正回路７は、読み出しデータの誤りを訂正する。フレームバッファ８は、磁気テープのデータ読み出し方向によるデータの並べ換え、及び、誤り訂正回路７において誤り係数の計算が行われる間のデータの保持（遅延）を行う。
【０００７】
テープサブシステムでは、１フレームは一般的に１８バイト（１４バイトのデータ等と４バイトの誤り訂正符号（ＥＣＣ））にて構成されており、従来例では８ビットまたは９ビットを１バイトとして、バイト単位にデータの転送を行っている。以下に、データフォーマット部１１ｂ内の各回路における従来の構成，動作について説明する。
【０００８】
（残余バイト作成回路１）
図５５は、磁気テープに記録されたデータブロックフォーマットの例を示す図である。データブロックは、先頭が「ＩＢＧ」フレーム，「ＡＬＬ１」フレームで始まり、次に同期のための「ＳＹＮＣ」フレーム，データ領域の始まりを示す「ＰＲＥＦＩＸ０」「ＰＲＥＦＩＸ１」フレームが記録され、その後、先頭が「ＳＹＮＣ」フレームまたは「ＲＥＳＹＮＣ」フレームで始まる７２フレーム毎のデータグループが繰り返される。
【０００９】
１番目のデータグループには６９フレームのデータ（ＤＡＴＡ）が記録され、２番目以降のデータグループにはそれぞれ７１フレームのデータ（ＤＡＴＡ）が記録される。そして、最終番目の  データグループには、残った（ｎ−１）フレームのデータ（ＤＡＴＡ）が記録される。その後、「ＲＥＳＩＤ１」「ＲＥＳＩＤ２」「ＣＯＭＰ１」「ＣＯＭＰ２」「ＳＹＮＣ」の各フレームが記録され、最後に「ＳＹＮＣ」「ＡＬＬ１」の各フレームが記録される。
【００１０】
「ＳＹＮＣ」フレーム及び「ＲＥＳＹＮＣ」フレームには、何れも同じ９ビットの特殊コード（１０００１０００１）が記録され、両者のフレームは同一のコードである。この「ＳＹＮＣ」フレームまたは「ＲＥＳＹＮＣ」フレームに基づいて、同期信号または再同期信号が検出される。同期信号または再同期信号は、データグループの開始を知らせ、しかも、デスキュー回路５におけるスキュー補正のトリガとなる信号である。
【００１１】
ブロックＩＤ（ＢＬＯＣＫ  ＩＤ：ＢＩＤ）は、４バイトで構成されており、ブロックの通し番号である。１フレームは１４バイトが一単位であるので、ホスト１０からのカスタムデータのバイト数によっては、１４バイトに構成するためのつめもの用のバイト（０〜１３バイト）が必要であり、このバイトをパッドバイト（ＰＡＤ  ＢＹＴＥ）という。残余バイトカウント（ＲＥＳＩＤＵＡＬ  ＢＹＴＥ  ＣＯＵＮＴ）の１バイトは、パッドバイトが何バイト詰まっているかを下位４ビットで表し、上位４ビットには他の情報が入る。
【００１２】
具体的に、ホスト１０からのカスタムデータが１２バイトの場合と、７バイトの場合とにおけるデータフォーマットを図５６，図５７にそれぞれ示す。図５６に示す１２バイトの場合では、パッドバイトが９バイトとなり、残余バイトカウントに９が入る。図５７に示す７バイトの場合では、パッドバイトの必要性がないので、残余バイトカウントに０が入る。以上のように、カスタムデータの長さに応じて、０〜１３の値が残余バイトカウントに入る。
【００１３】
残余バイト作成回路１の従来例の構成を図５８に示す。残余バイト作成回路１は、ＡＮＤ（論理積）回路１３とＮＯＲ回路１４とＭＯＤ１４カウンタ１５とを有する。ＣＫは、カウンタ１５を動作させるためのクロックである。−ＲＳＹＮＣは、７２フレーム毎に発生するＲＥＳＹＮＣの制御信号であり、この信号がローである場合にカウンタ１５の動作は停止する。ＷＲＢＫは、レジスタからセットされる信号であり、書き込みブロックが開始された時にのみセットされる。ＳＭＤＣは、フレームデータ作成時にブロックＩＤの選択の終了を示し、この信号がローである場合に、ブロックＩＤが終了したことを表しカウンタ１５の動作は停止する。ＣＵＳＴＢＬＫは、カスタムデータまたはブロックＩＤである場合にハイになる。−ＣＬＲは、カウンタ値をクリアすべくレジスタからセットされる信号であり、装置初期化時及び「ＩＢＧ」フレーム中にセットされる。−ＭＯＤ１〜−ＭＯＤ８は、パッドバイトの数を表す信号であり、これらの信号が表す値が残余バイトカウントの１バイトの下位４ビットに反映される。
【００１４】
残余バイトカウントの１バイトはｍｏｄ１４カウンタ１５によって実現し、カウンタ１５の出力値はパッドバイトの数を表す。このカウンタ１５は、カスタムデータ，ブロックＩＤの数をカウントアップし、「ＲＥＳＹＮＣ」フレーム中及びＥＣＣの４バイト時には、その動作を停止する。
【００１５】
カスタムデータが８バイトである場合の動作について説明する。図５９はその場合のタイミングチャート、図６０はｍｏｄ１４カウンタ１５の出力をそれぞれ示す。
【００１６】
装置初期化時及び「ＩＢＧ」フレーム中に、カウンタ１５の初期化が行われる。このときのカウンタ値は、”００００”である。ファームウェアにより、レジスタからＷＲＢＫ信号が書き込みブロック開始時のみセットされる。このときのカウンタ値は、”００１０”である。カスタムデータを処理する頃になると、ＣＵＳＴＢＬＫ信号がセットされ、カウンタ１５のカウント動作を開始する。ブロックＩＤが終了すると、ＳＭＤＣ信号がリセットされ、カウント動作を停止する。カウント動作が停止した際のカウンタ値（”００１０”）の反転信号となる−ＭＯＤ１〜−ＭＯＤ８の値（”１１０１”＝１３）が、残余バイトカウントの下位４ビットに入る。
【００１７】
（誤り訂正符号化回路３）
ＡＸＰ符号を用いる誤り訂正方式では、１８個のトラックのうちの１４個のトラックにそれぞれ１フレームのデータが書き込まれ、これらの１４個のトラックのデータに対する誤り訂正符号が残りの４トラックに書き込まれる。誤り訂正符号は、ＤＲＣ（Ｄｉａｇｏｎａｌ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）キャラクタと、ＶＲＣ（Ｖｅｒｔｉｃａｌ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）キャラクタとから構成されている。全１８トラックは、９トラックずつ、奇数トラックがセットＡ，偶数トラックがセットＢに分けられる。
【００１８】
ＤＲＣは、誤り訂正符号用のトラック中の０Ａトラック及び０Ｂトラックに記録される。このＤＲＣの２バイトは、他のトラックに記録されたＶＲＣ以外（１５ビット）から計算され、ｍ番目の値は以下の通りである。
【００１９】
Ａ０m ＝（Ａ１m-1 ＋Ａ２m-2 ＋Ａ３m-3 ＋・・・＋Ａ７m-7 ＋
Ｂ７m-8 ＋Ｂ６m-9 ＋Ｂ５m-10＋・・・＋Ｂ０m-15）MOD2
Ｂ０m ＝（Ｂ１m-1 ＋Ｂ２m-2 ＋Ｂ３m-3 ＋・・・＋Ｂ７m-7 ＋
Ａ７m-8 ＋Ａ６m-9 ＋Ａ５m-10＋・・・＋Ａ０m-15）MOD2
【００２０】
図６１は従来のＤＲＣの作成方法の原理を説明するための図、図６２は実際にユーザデータのＤＲＣＡ，ＤＲＣＢを計算した結果を示す図表、図６３は従来のＤＲＣ作成回路の構成を示す図である。ＤＲＣ作成回路は、クロックのタイミングを調節してデータを斜めに取り込む１個のビットマトリックスアレイ８１及び各フレームに対応した３個のＦＦアレイ８２からなる回路系を、セットＡ及びセットＢ用に１組ずつ有しており、各回路系からの出力が、ＶＲＣ作成回路８３からのＶＲＣＡ及びＶＲＣＢと共にマルチプレクサ８４にて結合される。
【００２１】
ＤＲＣは、斜め方向の冗長検査であるので、斜め方向に対して冗長なデータを付加することでデータのチェックをする。この際、斜め方向にデータを取り込んでいくので隣合う３フレームのデータに跨がってＤＲＣは作成され、ＶＲＣを除いた斜め方向のデータに対して、１ビットずつ偶数パリティを取っていくことでＤＲＣを作成する。
【００２２】
ＶＲＣは、誤り訂正符号用のトラック中の８Ａトラック及び８Ｂトラックに記録される。このＶＲＣの２バイトは、セットＡ（７ビットのデータ＋ＤＲＣＡ），セットＢ（７ビットのデータ＋ＤＲＣＢ）各々で計算され、ｍ番目の値は以下の通りである。
【００２３】
Ａ８m ＝（Ａ０m ＋Ａ１m ＋Ａ２m ＋・・・＋Ａ７m ）MOD2
但し、Ａ０m ：ＤＲＣＡ
Ａ１m ，Ａ２m ，・・・．Ａ７m ：データ
Ｂ８m ＝（Ｂ０m ＋Ｂ１m ＋Ｂ２m ＋・・・＋Ｂ７m ）MOD2
但し、Ｂ０m ：ＤＲＣＢ
Ｂ１m ，Ｂ２m ，・・・．Ｂ７m ：データ
【００２４】
図６４は従来のＶＲＣの作成方法の原理を説明するための図、図６５は実際にユーザデータのＶＲＣＡ，ＶＲＣＢを計算した結果を示す図表、図６６は従来のＶＲＣ作成回路の構成を示す図である。ＶＲＣ作成回路８５は、８個のトグル動作のＪＫフリップ・フロップをそれぞれ有する、ＶＲＣＡ作成用のＶＲＣＡ作成回路８６とＶＲＣＢ作成用のＶＲＣＢ作成回路８７とに分かれる。
【００２５】
ＶＲＣは、縦方向の冗長検査であるので、縦方向に対して冗長なデータを付加することでデータのチェックをする。この際、縦方向にデータを取り込んでいくのでＶＲＣは１フレーム内で作成される。全体としてＶＲＣＡ用，ＶＲＣＢ用の２つの作成回路８６，８７（８ビット）で構成され、セットＡで１バイトずつ入力するとＶＲＣＡのそれぞれのビットに対応する回路に入力され、セットＢで１バイトずつ入力するとＶＲＣＢのそれぞれのビットに対応する回路に入力される。ＶＲＣＡビット１はバイト１，２，３，４，５，６，７，ＤＲＣＡのビット１を入力とする。ＶＲＣＡビット２はバイト１，２，３，４，５，６，７，ＤＲＣＡのビット２を入力とする。その他も同様である。
【００２６】
データとしては、１バイトずつ入力されるので、１つのタイミングで１ビットのＶＲＣ作成回路には１ビットだけ入力される。そして、セットＡ，セットＢ各々１ビットは、縦方向のデータ７ビットとＤＲＣ１ビットに対して偶数パリティを持つことと同じである。即ち、ＶＲＣＡはデータバイト１〜７とＤＲＣＡとの偶数パリティをとっているのと同じであり、ＶＲＣＢはデータバイト８〜１４とＤＲＣＢとの偶数パリティをとっているのと同じである。
【００２７】
図６６に示す回路構成では、ＣＫとタイミング信号とでデータの取り込みタイミングを制御する。データをトグル動作のＪＫフリップ・フロップに入力することで偶数パリティをとっていることになる。１フレームにおけるデータ入力順序は以下のようになり、１フレームの動作をするのに１８タイミングが必要である。
データ入力順序
タイミング  （１）  （２）  （３）  （４）  （５）  （６）
バイト        １      ２      ３      ４      ５      ６
タイミング  （７）  （８）  （９）  （10）  （11）  （12）
バイト        ７     DRCA    VRCA     ８      ９      10
タイミング  （13）  （14）  （15）  （16）  （17）  （18）
バイト        11      12      13      14     DRCB    VRCB 
【００２８】
また、３６トラックの磁気テープ装置の誤り訂正符号としてリードソロモン符号が採用されている。ガロア体ＧＦ（ｑ）上の原始元をαとするとき、
αh ，αh+1 ，αh+2 ，・・・，αh+d-2 （０≦ｈ＜ｑ−１，２≦ｄ≦ｑ）を根とする符号長ｎ＝ｑ−１のｑ元巡回符号がリードソロモン符号であり、デジタル信号を扱う装置において、
実用上重要なｑ＝２m ，ｈ＝０の場合、
符号長    ｎ＝２m −１
情報点数  ｋ＝２m −ｄ
検査点数  ｎ−ｋ＝ｄ−１
最小距離  ｄmin ＝ｄ＝ｎ−ｋ＋１
の２m 元符号となり、生成多項式Ｇ（ｘ）は、
Ｇ（ｘ）＝（ｘ−αd-2 ）・・・（ｘ−α2 ）（ｘ−α）（ｘ−１）
となり、αd-2 ，・・・，α2 ，α，１を根とする多項式である。リードソロモン符号の任意の符号多項式Ｃ（ｘ）は、αd-2 ，・・・，α2 ，α，１を根とする。
【００２９】
言い換えれば、ｎ−１次以下のＧＦ（２8 ）上の多項式Ｃ（ｘ）が符号多項式となるための必要条件は、
Ｃ（α0 ）＝０
Ｃ（α1 ）＝０
・
・
・
Ｃ（αd-2 ）＝０
であり、ｉj （０≦ｊ≦ｋ−１）をＧＦ（２8 ）の元とし、ｋ≦２8 −ｄであるｋ個の情報語ｉ0 ，ｉ1 ，・・・，ｉk-1 を符号化する場合、
Ｉ（ｘ）＝ｉk-1 ｘk-1 ＋・・・＋ｉ2 ｘ2 ＋ｉ1 ｘ＋ｉ0 
という情報多項式Ｉ（ｘ）を作る。
【００３０】
次に、Ｉ（ｘ）にｘd-1 を乗算し、生成多項式Ｇ（ｘ）で除算したときの剰余多項式をＤ（ｘ）とする。この場合の商多項式をＱ（ｘ）とすると、これらの多項式の関係は以下のようになる。
Ｉ（ｘ）×ｘd-1 ＝Ｑ（ｘ）×Ｇ（ｘ）＋Ｄ（ｘ）
ここで、剰余多項式Ｄ（ｘ）はｘd-2 次以下の多項式であるので、
Ｄ（ｘ）＝ｄd-2 ×ｘd-2 ＋・・・＋ｄ2 ×ｘ2 ＋ｄ1 ×ｘ＋ｄ0 
とする。符号に対応する多項式（符号多項式）は、Ｇ（ｘ）で割り切れる必要があるため、
Ｃ（ｘ）＝Ｑ（ｘ）×Ｇ（ｘ）
＝Ｉ（ｘ）×ｘd-1 ＋Ｄ（ｘ）  〔ＧＦ上の減算と加算とは同一〕となり、Ｃ（ｘ）の係数からなるＧＦ（２8 ）上のｎ次元ベクトルは、
Ｃ＝（ｃn-1 ，・・・，ｃ2 ，ｃ1 ，ｃ0 ）
＝（ｉk-1 ，・・・，ｉ2 ，ｉ1 ，ｉ0 ，ｄd-2 ，・・・，ｄ1 ，ｄ0 ）  となる。これが情報語ｉ0 ，ｉ1 ，・・・，ｉk-1 に対するリードソロモン符号の符号語である。検査語ｄd-2 ，・・・，ｄ1 ，ｄ0 は、情報語ｉ0 ，ｉ1 ，・・・，ｉk-1 から以上のように、多項式の除算を用いて求められる。また、検査バイトｄ3 ，ｄ2 ，ｄ1 ，ｄ0 は検査行列を用いて導くことができる。
【００３１】
ＧＦ（２m ）上のｎ−１次以下の多項式が、αd-2 ，・・・，α2 ，α，１を根として持つならば、検査行列Ｈと上記リードソロモン符号の符号語Ｃの転置行列Ｃt との積は０行列となる。
【００３２】
【数１】
2006085900.tif 000003
【００３３】
ここで、この行列式は以下のように書き直せる。
【００３４】
【数２】
2006085900.tif 000004
【００３５】
またこの式は、以下の行列式として表され、クラメルの公式を用いてｄd-2 ，・・・，ｄ1 ，ｄ0 について解けば、ａ0 〜ａd-2 とαのべきとを用いた乗算処理及び加算処理によって検査語を求めることができる。
【００３６】
【数３】
2006085900.tif 000005
【００３７】
以上のような符号化を実行するための回路構成について説明する。図６７は、生成多項式で除算を行う場合の回路構成を示し、ＬＦＳＲ（リニアフィードバックシフトレジスタ）と呼ばれるフィードバックレジスタを採用し、加算回路２５とレジスタ２６とαのべきの乗算回路２７とから構成され、情報語を１バイト単位で順次入力を行い、即ち情報多項式を構成するために最初に入力するバイトを最上位バイトとして除算を行い、最下位バイトの入力が終了した時点の剰余を求める。
【００３８】
検査行列による符号化の場合の回路は、図６８，図６９に示す情報語の総和を計算する回路とａ0 ，ａ1 ，・・・，ａd-2 ，ｄ0 ，ｄ1 ，・・・，ｄd-2 を求めるためのαのべきの乗算及び加算を行う回路とが必要である。
【００３９】
このときに総和を計算する回路は、情報語の各々のバイトにαのべきを順次乗算する必要があり、通常、α0 ，α1 ，α2 ，・・・，αn-1 を乗算するために構成が簡単な乗算回路２７と加算回路２５とレジスタ２６とを組み合わせ、１バイト単位に乗算−加算─保持を繰り返し計算することにより総和を求めている。
【００４０】
（シンドローム作成回路６）
対象となる符号語を｛Ｄ0 ，Ｄ1 ，Ｄ2 ，・・・，Ｄn-2 ，Ｄn-1 ｝とする。これがまずメモリに記憶される。例えばリードソロモン符号で誤り訂正処理を行う場合、ハミング距離をＤmin とするとき、誤り訂正能力はＤmin ／２を超えない最大の整数である。このような整数は（Ｄmin −１）であり、これを求める際に次のようなシンドローム演算を行う。
【００４１】
受信語を表す多項式をＲ（ｘ）とした場合、リードソロモン符号の復号は、このＲ（ｘ）からシンドローム
Ｓｉ＝Ｒ（αi ）（ｉ＝０，１，２，３，・・・，ｄ−２）
を計算することから始まる。これは、受信語にＧＦ（２m ）上の定数乗算、即ちαi の乗算を行うことである。
【００４２】
このようなシンドロームの演算法として、メモリに記憶されたｎ個のデータをＤn-1 より順次１個ずつαi の乗算回路に入力し、全データ入力後にその出力をシンドロームの結果として得る方法が行われている。
【００４３】
従来の技術によれば、データを１個（１バイト）ずつメモリより読み出すため、アクセスが遅いメモリを使用すると処理時間の大幅な遅延を招くという問題点がある。
【００４４】
（デスキュー回路５）
図７０は、磁気テープの傾斜したトラックに記録されたデータブロックフォーマットの一例を示す図、図７１はデータブロックフォーマットをビット単位で示した図７０の部分拡大図である。図７０，図７１において図５５と同一のフレームには、ＳＹＮＣ，ＲＥＳＹＮＣ等の同一の略称を付している。図７０に示すように、左から右に向かって先頭から順にフレームの記録または再生を行うのがフォワード（ＦＷＤ）方向（順方向）であり、その逆の方向がバックワード（ＢＷＤ）方向（逆方向）である。
【００４５】
図７２は、従来のデスキュー回路５の内部構成を示すブロック図である。図７０，図７１に示したデータブロックフォーマットを採用したＭＴＵ１２から送られてきたデータ（ＤＡＴＡ）は各トラック間において不揃いが生じており、これらのデータをデスキューイングバッファと呼ばれるメモリに一旦書き込み、スキュー補正を行った後に、そのデスキューイングバッファからデータを読み出して誤り訂正を行うべく、シンドローム作成回路６及びバッファメモリ８に送信する。
【００４６】
デスキューイングバッファはそれに用いるメモリ容量を少なくするように、図７２に示すように、３個のデスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃで構成されている。各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃは、１８トラックのデータのうち６トラック分ずつをそれぞれが担当する。また、各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃに付随するデスキュー制御回路４１Ａ，４１Ｂ，４１Ｃ及びマルチプレクサ４３Ａ，４３Ｂ，４３Ｃも６トラック毎の３系統にて構成されている。４４は、各マルチプレクサ４３Ａ，４３Ｂ，４３Ｃの９ビットの出力を８ビットに変換する９−８変換回路である。
【００４７】
各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃは、その内部メモリ領域をアドレスに従って６分割（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ）し、分割した各領域に１トラック分の同期信号（再同期信号）から同期信号（再同期信号）までの７２フレームのデータを書き込む。
【００４８】
図７３〜図７６は、各デスキューイングバッファ４２Ａ，４２Ｂ，４２ＣにおけるＦＷＤ方向での書き込み・読み出し制御を示す図、図７７〜図８０は、同じくＢＷＤ方向での書き込み・読み出し制御を示す図である。
【００４９】
一例として、デスキュー制御回路４１Ａ及びデスキューイングバッファ４２ＡのＦＷＤ方向時の動作について説明する。磁気テープ上の傾斜した各トラックにおいて、１バイトデータ（９ビットデータ）が揃ったトラックを分割した各メモリ領域に順次書き込んでいく。まず、１Ａ−トラックのデータを、デスキューイングバッファ４２Ａの１Ａ−トラックに割り当てられたメモリ領域（Ａの位置）に書き込む。以下同様に、４Ａ−トラックのデータはＢの位置、７Ａ−トラックのデータはＣの位置、７Ｂ−トラックのデータはＤの位置、４Ｂ−トラックのデータはＥの位置、１Ｂ−トラックのデータはＦの位置に書き込む（図７３参照）。
【００５０】
同様にして、デスキューイングバッファ４２Ｂ，４２Ｃにおいても各トラックのデータを割り当てられた対応するメモリ領域に書き込む（図７４，図７５参照）。以上のようにして、１８トラック分のデータの書き込みを終了する。
【００５１】
データの書き込みを終了すると、１バイトデータ毎の読み出し（１バイトデータ転送）が始まる。図７３〜図７５に示した読み出し順位に従って、各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃからの読み出しデータが各マルチプレクサ４３Ａ，４３Ｂ，４３Ｃにて選択され、誤り訂正方法に合った図７６に示す順序で９−８変換回路４４に出力される。磁気テープ上のデータは９ビットデータであるため、９−８変換回路４４にて８ビットデータに変換されて、後段の誤り訂正処理系に送られる。
【００５２】
なお、ＢＷＤ方向時においては、各トラックのデータの書き込み位置はＦＷＤ方向時とは異なるが、基本的な処理手順は同様であるのでその説明は省略する。
【００５３】
ＭＴＵ１２から送られてきたデータをデスキューイングバッファに一旦書き込み、その後読み出すことによってスキュー補正を行いデータ転送を行っている。この際、従来は１バイトデータ転送であるので、１フレームのデータを転送するのに１８回デスキューイングバッファからの読み出しが必要である。従って、高速処理には向いていないという問題がある。また、ＦＷＤ方向，ＢＷＤ方向によって、ＭＴＵ１２から送られてきたデータはビット定義が反対、１バイトデータ（９ビットデータ）が揃うトラック順が反対などの違いがあるため、ＦＷＤ方向とＢＷＤ方向とでは誤り訂正方法に見合った順番での１バイトデータ転送が必要であった。このように従来例では、ＦＷＤ方向とＢＷＤ方向とで、各デスキューイングバッファ内の６分割されたメモリ領域の割当が異なっており、ＦＷＤ方向とＢＷＤ方向とでは異なる書き込み・読み出し制御が必要であるという問題がある。
【００５４】
（読み出しフォーマット部１１ｅ内におけるデータ転送制御）
従来、データを転送する際に、データを一時的に格納してその転送タイミングを切り換える方法としては、マルチプレクサ（セレクタ），フリップフロップ等の素子を用いて転送方法を制御する方式が一般的に使われている。しかし、高密度，高速データ転送に対応した誤り訂正を行ったり、ＦＷＤ方向，ＢＷＤ方向のデータ書き込み・読み出し動作に対応するためには、単にメモリ素子を追加するとか、セレクタで各々のケースに対応して切り替え制御を行うといって方法では、回路が複雑化し、回路の規模を増大させることになるという問題がある。
【００５５】
以上のように、従来の磁気テープ装置の制御装置では、データフォーマット部１１ｂ内の書き込みフォーマット部１１ｄ及び読み出しフォーマット部１１ｅにおいて、１バイト単位にて処理を行っているので、処理速度が遅いという問題がある。処理速度を速めるためには、データフォーマット部１１ｂ内の各回路を構成する素子を追加してデータ転送の高速化を図ることが考えられるが、この場合には、回路規模の増大，複雑化を招くといった問題がある。
【００５６】
なお、上位装置からのデータを圧縮して磁気テープ装置へ出力し、磁気テープ装置からの圧縮データを復元して上位装置へ出力するような構成を有しており、入力されたデータをフォーマット変換して１８ビットずつパラレルに磁気テープ装置へ出力するようにした磁気テープ制御装置が知られている（例えば、特許文献１参照）。また、接続された磁気テープから読み込んだデータのバイト数が偶数であるか奇数であるかを判別して、その判別結果に基づいて処理を切り換える磁気テープ制御装置も知られている（例えば、特許文献２参照）。
【特許文献１】特開平５−２０４５５２号公報
【特許文献２】特開昭６３−２１１１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００５７】
本発明は斯かる事情に鑑みてなされたものであり、複数バイト単位の処理が可能であり、回路を複雑化せず、また回路規模の増大を招くことなく、処理するデータバス幅を拡大することができ、データ転送の高速化を図れる磁気テープ装置の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００５８】
請求項１に係る磁気テープ装置の制御装置は、上位装置から入力したデータに誤り訂正符号を付加してフォーマット変換し、フォーマット変換したデータを磁気テープユニットに転送すると共に、前記磁気テープユニットから読み出したデータに誤り訂正を行ってフォーマット変換し、フォーマット変換したデータを前記上位装置に転送する磁気テープ装置の制御装置において、前記上位装置からの入力データに対する複数バイト単位での誤り訂正符号化処理、及び／または、前記磁気テープユニットからの読み出しデータに対する複数バイト単位での誤り訂正処理を行うように構成しており、前記上位装置からのデータに対してリードソロモン誤り訂正符号を作成する誤り訂正符号化手段を備え、該誤り訂正符号化手段が、情報語の複数の総和計算を並列処理するように構成したことを特徴とする。
【００５９】
本発明では、磁気テープ装置の制御装置内の各回路の構成を工夫して、上位装置からのデータ及び磁気テープユニットからの読み出しデータに対して、複数バイト単位での処理を行えるようにし、１バイト単位での処理を行っていた従来例に比べてデータ処理の高速化を図る。リードソロモン誤り訂正符号を作成する際に、情報語の複数の総和計算を並列処理するので、符号化の処理時間が短縮し、複数バイト単位のデータ入力に対応できる。      
【００６０】
請求項２に係る磁気テープ装置の制御装置は、請求項１において、前記上位装置からのデータを所定数のバイト単位の１フレームに構成する際に、各フレーム内のバイト数が所定数となるように残余バイトを計数する計数手段を備え、該計数手段が、前記上位装置からのデータのバイト数が奇数であるか偶数であるかを判定する手段と、その判定結果に応じて残余バイトの計数方法を切り換える手段とを有することを特徴とする。
【００６１】
残余バイトを計数する計数手段が、上位装置からのデータのバイト数が奇数であるか偶数であるかに応じて、その計数方法を変更することにより、２バイト単位で上位装置から入力されるデータに対応できる。
【００６２】
請求項３に係る磁気テープ装置の制御装置は、請求項１において、前記磁気テープユニットから読み出したデータの誤りをリードソロモン方式に従って訂正するために必要なシンドロームを作成するシンドローム作成手段を備え、該シンドローム作成手段が、受信語に検査行列を乗算する回路を複数有し、複数バイトのデータに対して並列的にシンドロームを作成するように構成したことを特徴とする。
【００６３】
シンドロームを作成する際に、受信語に検査行列を乗算する複数の回路を並列的に動作させることにより、複数バイトのデータに対して並列的にシンドロームを作成することができ、磁気テープユニットからの複数バイト単位の読み出しデータに対応できる。
【発明の効果】
【００６４】
本発明によれば、磁気テープ制御装置のデータフォーマット部内の各回路の機能の高速化を図り、回路を複雑化することなく、データバスの拡大を行うことができ、データ転送速度の高速化を可能とし、磁気テープ装置の性能向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００６５】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
【００６６】
図２はテープサブシステムの構成図、図１は図２に示すＭＴＣ１１のデータフォーマット部１１ｂの内部構成を示すブロック図である。テープサブシステムは、上位装置としてのホスト１０と、データを記録するＭＴＵ１２と、ホスト１０及びＭＴＵ１２間に介在されてデータのフォーマット変換を行うＭＴＣ１１とから構成されている。データ書き込み時には、ホスト１０からのデータがＭＴＣ１１に入力され、ここでフォーマット変換が行われた後にＭＴＵ１２にデータが転送される。データ読み取り時には、ＭＴＵ１２からの読み出しデータがＭＴＣ１１に転送され、ここで誤り訂正が行われると共にフォーマット変換が行われた後にデータがホスト１０に送られる。
【００６７】
ＭＴＣ１１は、ホスト１０とのデータの送受を行うためのインターフェース部１１ａと、フォーマット変換，誤り訂正等の処理を行うデータフォーマット部１１ｂと、データをＤ／Ａ変換・Ａ／Ｄ変換するデータ変換部１１ｃとを有する。データフォーマット部１１ｂは、磁気テープ上に記録するためのフォーマット化を行う書き込みフォーマット部１１ｄと、磁気テープから読み出したデータのトラックずれを補正したり、データの誤り検出及び訂正を行う読み出しフォーマット部１１ｅとに分けられる。
【００６８】
書き込みフォーマット部１１ｄは、残余バイト作成回路１と、マルチプレクサ２，４と、誤り訂正符号化回路３とを有する。残余バイト作成回路１は、ホスト１０からのデータをテープフォーマットに合わせるために必要な残余バイトを作成する。マルチプレクサ２は、ホスト１０からのカスタムデータ，残余バイト作成回路１からの残余バイト，ブロックＩＤ，冗長バイトであるパッドバイト等を結合する。誤り訂正符号化回路３は、誤り訂正のため検査キャラクタである誤り訂正符号を作成する。誤り訂正符号としては、ＡＸＰ符号またはリードソロモン符号が良く使われている。マルチプレクサ４は、マルチプレクサ２及び誤り訂正符号化回路３の出力を結合する。
【００６９】
一方、読み出しフォーマット部１１ｅは、デスキュー回路５と、シンドローム作成回路６と、誤り訂正回路７と、フレームバッファ８とを有する。デスキュー回路５は、ＭＴＵ１２から読み出したデータ間のずれを補正する。磁気テープに記録されたデータを読み込んだ時に、磁気テープと磁気ヘッドとは一般的には垂直にならず、ある程度の誤差角度を生じるので、それに応じてデータ間のずれが発生する。デスキュー回路５はこのデータ間のずれを補正する。シンドローム作成回路６は、読み出しデータの誤りの有無を判定するためのシンドロームと呼ばれる情報を作成する。誤り訂正回路７は、読み出しデータの誤りを訂正する。フレームバッファ８は、磁気テープのデータ読み出し方向によるデータの並べ換え、及び、誤り訂正回路７において誤り係数の計算が行われる間のデータの保持（遅延）を行う。
【００７０】
上述したように、本発明におけるテープサブシステム及びＭＴＣ１１の基本構成は従来例と同じであるが、ＭＴＣ１１内のデータフォーマット部１１ｂを構成する各回路の内部構成及び処理動作が異なっている。即ち、従来例では１バイト幅で処理を行っていたが、本発明では複数バイト幅で処理を行えるようにして、データ処理の高速化を図っている。従って、図１におけるデータバスが、本発明では従来例に比べてＮ（Ｎは２以上の整数）倍に拡大されている。
【００７１】
以下、本発明におけるデータフォーマット部１１ｂ内の各回路の構成及び動作について詳述する。なお、以下の実施の形態では、書き込みフォーマット部１１ｄ内においては２バイト幅にて処理が行え、読み出しフォーマット部１１ｄ内においては３バイト幅にて処理が行える場合について説明する。
【００７２】
（残余バイト作成回路１）
本発明では、書き込みフォーマット部１１ｄが、データ幅を従来の１バイト幅から２バイト幅に倍増させて処理を行っており、高速（従来の２倍）のデータ処理を行えるようになっている。従って、本発明の残余バイト作成回路１は、従来の１バイト処理から２バイト処理に対応できるようにしている。本発明では、従来例で使用していたｍｏｄ１４カウンタの動作を、２バイト処理に対応させている。
【００７３】
残余バイト作成回路１の本発明の構成を図３に示す。残余バイト作成回路１は、２個のＡＮＤ回路１３ａ，１３ｂとＮＯＲ回路１４とＭＯＤ１４カウンタ１５とを有する。ＣＫは、カウンタ１５を動作させるためのクロックである。−ＲＳＹＮＣは、７２フレーム毎に発生するＲＥＳＹＮＣの制御信号であり、この信号がローである場合にカウンタ１５の動作は停止する。ＷＲＢＫは、レジスタからセットされる信号であり、書き込みブロックが開始された時にのみセットされる。ＳＭＤＣは、フレームデータ作成時にブロックＩＤの選択の終了を示し、この信号がローである場合に、ブロックＩＤが終了したことを表しカウンタ１５の動作は停止する。ＣＵＳＴＢＬＫは、カスタムデータまたはブロックＩＤである場合にハイになる。−ＣＬＲは、カウンタ値をクリアすべくレジスタからセットされる信号であり、装置初期化時及び「ＩＢＧ」フレーム中にセットされる。ＢＩＤ３は、書き込みフォーマット部１１ｄ内にて発生される信号であり、ブロックＩＤの３バイト目を処理しているときにセットされる。ＯＤＤは、書き込みフォーマット部１１ｄ内にて発生される信号であり、ホスト１０からカスタムデータが転送される際に奇数バイトか偶数バイトかが判断されて奇数バイトであればセットされる。−ＭＯＤ１〜−ＭＯＤ８は、パッドバイトの数を表す信号であり、これらの信号が表す値が残余バイトカウントの１バイトの下位４ビットに反映される。
【００７４】
図４，図５はカスタムデータが８バイト，９バイトである場合のタイミングチャート、図６はＭＯＤ１４カウンタ１５の出力をそれぞれ示す。残余バイトカウントのバイトは２バイト処理に対応したｍｏｄ１４カウンタ１５によって実現し、カウンタ１５の出力値はパッドバイトの数を表す。このカウンタ１５は、カスタムデータ，ブロックＩＤの数をカウントアップし、「ＲＥＳＹＮＣ」フレーム中及び誤り訂正符号（ＥＣＣ）の４バイト時には、その動作を停止する。また、カスタムデータのバイト数によっては、偶数バイトの場合と奇数バイトの場合とがあり、偶数，奇数の２通りの動作を満足する必要がある。
【００７５】
次に、カスタムデータが９バイトである場合の動作について説明する。装置初期化時及び「ＩＢＧ」フレーム中に、カウンタ１５の初期化が行われる。この時のカウンタ値は、”００００”である。ファームウェアにより、レジスタからＷＲＢＫ信号が書き込みブロック開始時のみセットされる。この時のカウンタ値は、”００１０”である。カスタムデータを処理する頃になると、ＣＵＳＴＢＬＫ信号がセットされ、カウンタ１５のカウント動作を開始する。カウンタ動作は＋２ずつカウントアップする。ＢＩＤ３信号がセットされていて、且つＯＤＤ信号がセットされている場合に、カウンタ１５の動作が図６の右表に遷移する。ブロックＩＤが終了すると、ＳＭＤＣ信号がリセットされ、カウント動作を停止する。カウント動作が停止した際のカウンタ値（”００１１”）の反転信号となる−ＭＯＤ１〜−ＭＯＤ８の値（”１１００”＝１２）が、残余バイトカウントの下位４ビットに入る。
【００７６】
（誤り訂正符号化回路３）
〔ＡＸＰ符号化方式〕
図７，図８は本発明のＤＲＣ作成回路の構成を示す図、図９は本発明のＶＲＣ作成回路の構成を示す図である。この構成例は、複数バイト（２バイト）入力のときの例である。ＤＲＣ作成回路は、セットＡ用（図７）とセットＢ用（図８）との２系統に分かれており、セットＡ用（セットＢ用）のＤＲＣ作成回路は、データ選択部２１Ａ（２１Ｂ）と、データパリティ作成部２２Ａ（２２Ｂ）と、フレーム制御部２３Ａ（２３Ｂ）と、データマスク部２４Ａ（２４Ｂ）と、タイミング制御回路（図示せず）とで構成されている。
【００７７】
ＤＲＣ，ＶＲＣは、基本的にそれぞれ斜め方向，縦方向のビット同士のパリティをとっている。１バイトずつ入力していた従来のＤＲＣ作成回路，ＶＲＣ作成回路では、各回路において１ビットずつパリティをとっていたが、複数バイトずつ入力する本発明のＤＲＣ作成回路，ＶＲＣ作成回路では、各回路において複数ビット同時にパリティをとればよい。これは、ＤＲＣ，ＶＲＣの作成に必要な複数ビットをそれぞれ選択し、選択した複数ビットにてパリティを求めるようにすれば実現できる。
【００７８】
次に、動作について説明する。ＡＸＰ符号のＤＲＣ，ＶＲＣを求める式は、１バイトずつ入力する場合と複数バイトずつ入力する場合とは同じであるので、ＤＲＣ，ＶＲＣのセットＡ，セットＢの各々で計算されるｍ番目の値は以下のようになる。
【００７９】
ＤＲＣ
Ａ０m ＝（Ａ１m-1 ＋Ａ２m-2 ＋Ａ３m-3 ＋・・・＋Ａ７m-7 ＋
Ｂ７m-8 ＋Ｂ６m-9 ＋Ｂ５m-10＋・・・＋Ｂ０m-15）MOD2
Ｂ０m ＝（Ｂ１m-1 ＋Ｂ２m-2 ＋Ｂ３m-3 ＋・・・＋Ｂ７m-7 ＋
Ａ７m-8 ＋Ａ６m-9 ＋Ａ５m-10＋・・・＋Ａ０m-15）MOD2
【００８０】
ＶＲＣ
Ａ８m ＝（Ａ０m ＋Ａ１m ＋Ａ２m ＋・・・＋Ａ７m ）MOD2
但し、Ａ０m ：ＤＲＣＡ
Ａ１m ，Ａ２m ，・・・．Ａ７m ：データ
Ｂ８m ＝（Ｂ０m ＋Ｂ１m ＋Ｂ２m ＋・・・＋Ｂ７m ）MOD2
但し、Ｂ０m ：ＤＲＣＢ
Ｂ１m ，Ｂ２m ，・・・．Ｂ７m ：データ
【００８１】
入力データが２バイトずつであるので、１フレームのタイミングは９タイミングである。図１０はその入力データとタイミングとの関係を示す図表、また、図１１は本発明のＤＲＣの作成方法の原理を説明するための図である。ＤＲＣを作成する際、図１０のようにデータを入力すると、その入力データは２バイト（ＢＳ１，２，３，４，６，７，ＥＣＣ１の場合）または１バイト（ＢＳ５，ＥＣＣ２の場合）であるが、入力された偶数（ＥＶＥＮ）バイトのうち１ビット、奇数（ＯＤＤ）バイトのうち１ビットを対象にしてデータを選んでＤＲＣの１ビットを作成する。データフレーム３−ＤＲＣＡビット７はｃ１〜ｃＦのデータビットに対して作成するので、それ以外のデータビットはどんな値でも関係ない。このことは、データフレーム４−ＤＲＣＡビット７，データフレーム５−ＤＲＣＡビット７についても同様である。
【００８２】
例えば、データフレーム３のＤＲＣＡ−ビット７を作成する際に対象とされるデータは、データフレーム２−バイト８−ビット７（ｃ８），バイト９−ビット６（ｃ９），バイト１０−ビット５（ｃＡ），バイト１１−ビット４（ｃＢ），バイト１２−ビット３（ｃＣ），バイト１３−ビット２（ｃＤ），バイト１４−ビット１（ｃＥ），ＤＲＣＢ−ビット０（ｃＦ），データフレーム３−バイト１−ビット６（ｃ１），バイト２−ビット５（ｃ２），バイト３−ビット４（ｃ３），バイト４−ビット３（ｃ４），バイト５−ビット２（ｃ５），バイト６−ビット１（ｃ６），バイト７−ビット０（ｃ７）となる。同様に、データフレーム４のＤＲＣＡ−ビット７を作成する際に対象とされるデータは、データフレーム３−バイト８−ビット７（ａ８），バイト９−ビット６（ａ９），バイト１０−ビット５（ａＡ），バイト１１−ビット４（ａＢ），バイト１２−ビット３（ａＣ），バイト１３−ビット２（ａＤ），バイト１４−ビット１（ａＥ），ＤＲＣＢ−ビット０（ａＦ），データフレーム４−バイト１−ビット６（ａ１），バイト２−ビット５（ａ２），バイト３−ビット４（ａ３），バイト４−ビット３（ａ４），バイト５−ビット２（ａ５），バイト６−ビット１（ａ６），バイト７−ビット０（ａ７）となる。更に、データフレーム５のＤＲＣＡ−ビット７を作成する際に対象とされるデータは、データフレーム４−バイト８−ビット７（ｂ８），バイト９−ビット６（ｂ９），バイト１０−ビット５（ｂＡ），バイト１１−ビット４（ｂＢ），バイト１２−ビット３（ｂＣ），バイト１３−ビット２（ｂＤ），バイト１４−ビット１（ｂＥ），ＤＲＣＢ−ビット０（ｂＦ），データフレーム５−バイト１−ビット６（ｂ１），バイト２−ビット５（ｂ２），バイト３−ビット４（ｂ３），バイト４−ビット３（ｂ４），バイト５−ビット２（ｂ５），バイト６−ビット１（ｂ６），バイト７−ビット０（ｂ７）となる。
【００８３】
以上のような対象とされる斜め方向のデータに対して偶数パリティをとれば、ＤＲＣＡの１ビットが作成される。そして、各ビットについて同様の処理を順次行うことによりＤＲＣを作成できる。
【００８４】
ＤＲＣＡのビット単位で考えていくと、図１１から分かるようにＤＲＣは斜め方向のデータに対して作成するため、複数フレーム（２〜３フレーム）に渡ってしまう。そのため３つの制御フレームに分けてどこのデータを選ぶかを決定する。例えばデータフレーム３について考えると、その１フレーム中のデータは制御フレーム０，１，２のＤＲＣＡを作成するためのデータとして３分割され、選ばれるデータとしては重なり合うことはない。      
【００８５】
データフレーム３，４，５を見比べると、データの選び方により何バイト目の何ビット目が、必ずＤＲＣの何ビット目に選ばれているということが分かる。選ばれる制御フレームは異なるが、ＤＲＣの何ビット目に選ばれるかということがわかる。例えばバイト１のビット６は、データフレーム３（ｃ１）ではＤＲＣＡのビット７、データフレーム４（ａ１）ではＤＲＣＡのビット７、データフレーム５（ｂ１）ではＤＲＣＡのビット７に選ばれる。また、バイト１のビット０は、データフレーム３ではＤＲＣＡのビット１、データフレーム４ではＤＲＣＡのビット１、データフレーム５ではＤＲＣＡのビット１に選ばれる。
【００８６】
このことから必ずバイト１のビット１はＤＲＣＡのビット２に選択され、バイト２のビットはＤＲＣＡのビット２に選択される。従って、制御フレーム０，１，２のＤＲＣ作成回路でそのデータを取り込むか否かを制御するようにすれば良い。あと一点考えなければいけないのは、ＤＲＣの作成は３フレームに渡って行うので、例えば実際に扱っているデータフレーム３のときはデータフレーム３，４，５のときに出力するＤＲＣを同時に作成しなければいけない点である。従って、最低でも３フレーム分のＤＲＣ作成回路を持つ必要があることが分かる。
【００８７】
データの選び方についてもう少し詳細に説明する。データフレーム３（制御フレーム２）のデータが入力されてきた場合、どのビットをＤＲＣＡの何ビット目の作成回路に選べば良いかを説明する。
【００８８】
バイト１のビット０は制御フレーム２のＤＲＣＡ−ビット１、ビット１はＤＲＣＡ−ビット２、ビット２はＤＲＣＡ−ビット３、ビット３はＤＲＣＡ−ビット４、ビット４はＤＲＣＡ−ビット５、ビット５はＤＲＣＡ−ビット６、ビット６（ｃ１）はＤＲＣＡ−ビット７、ビット７は制御フレーム０のＤＲＣＡ−ビット０、バイト２のビット０は制御フレーム２のＤＲＣＡ−ビット２、ビット１はＤＲＣＡ−ビット３、ビット２はＤＲＣＡ−ビット４、ビット３はＤＲＣＡ−ビット５、ビット４はＤＲＣＡ−ビット６、ビット５（ｃ２）はＤＲＣＡ−ビット７、ビット６は制御フレーム０のＤＲＣＡ−ビット０、ビット７はＤＲＣＡ−ビット１、バイト３のビット０は制御フレーム２のＤＲＣＡ−ビット３、ビット１はＤＲＣＡ−ビット４、ビット２はＤＲＣＡ−ビット５、ビット３はＤＲＣＡ−ビット６、ビット４（ｃ３）はＤＲＣＡ−ビット７、ビット５は制御フレーム０のＤＲＣＡ−ビット０、ビット６はＤＲＣＡ−ビット１、ビット７はＤＲＣＡ−ビット２、バイト４のビット０は制御フレーム２のＤＲＣＡ−ビット４、ビット１はＤＲＣＡ−ビット３、ビット２はＤＲＣＡ−ビット２、ビット３（ｃ４）はＤＲＣＡ−ビット１、ビット４は制御フレーム０のＤＲＣＡ−ビット０、ビット５はＤＲＣＡ−ビット１、ビット６はＤＲＣＡ−ビット２、ビット７はＤＲＣＡ−ビット３、バイト５のビット０は制御フレーム２のＤＲＣＡ−ビット５、ビット１はＤＲＣＡ−ビット６、ビット２はＤＲＣＡ−ビット７、ビット３は制御フレーム０のＤＲＣＡ−ビット０、ビット４はＤＲＣＡ−ビット１、ビット５はＤＲＣＡ−ビット２、ビット６はＤＲＣＡ−ビット３、ビット７はＤＲＣＡ−ビット４、バイト６のビット０は制御フレーム２のＤＲＣＡ−ビット６、ビット１（ｃ６）はＤＲＣＡ−ビット７、ビット２は制御フレーム０のＤＲＣＡ−ビット０、ビット３はＤＲＣＡ−ビット１、ビット４はＤＲＣＡ−ビット２、ビット５はＤＲＣＡ−ビット３、ビット６はＤＲＣＡ−ビット４、ビット７はＤＲＣＡ−ビット５、バイト７のビット０は制御フレーム２のＤＲＣＡ−ビット７、ビット１は制御フレーム０のＤＲＣＡ−ビット０、ビット２はＤＲＣＡ−ビット１、ビット３はＤＲＣＡ−ビット２、ビット４はＤＲＣＡ−ビット３、ビット５はＤＲＣＡ−ビット４、ビット６はＤＲＣＡ−ビット５、ビット７はＤＲＣＡ−ビット６、バイト８のビット０は制御フレーム０のＤＲＣＡ−ビット０、ビット１はＤＲＣＡ−ビット１、ビット２はＤＲＣＡ−ビット２、ビット３はＤＲＣＡ−ビット３、ビット４はＤＲＣＡ−ビット４、ビット５はＤＲＣＡ−ビット５、ビット６はＤＲＣＡ−ビット６、ビット７（ａ８）はＤＲＣＡ−ビット７、バイト９のビット０は制御フレーム０のＤＲＣＡ−ビット１、ビット１はＤＲＣＡ−ビット２、ビット２はＤＲＣＡ−ビット３、ビット３はＤＲＣＡ−ビット４、ビット４はＤＲＣＡ−ビット５、ビット５はＤＲＣＡ−ビット６、ビット６（ａ９）はＤＲＣＡ−ビット７、ビット７は制御フレーム１のＤＲＣＡ−ビット０、バイト１０のビット０は制御フレーム０のＤＲＣＡ−ビット２、ビット１はＤＲＣＡ−ビット３、ビット２はＤＲＣＡ−ビット４、ビット３はＤＲＣＡ−ビット５、ビット４はＤＲＣＡ−ビット６、ビット５（ａＡ）はＤＲＣＡ−ビット７、ビット６は制御フレーム１のＤＲＣＡ−ビット０、ビット７はＤＲＣＡ−ビット１、バイト１１のビット０は制御フレーム０のＤＲＣＡ−ビット３、ビット１はＤＲＣＡ−ビット４、ビット２はＤＲＣＡ−ビット５、ビット３はＤＲＣＡ−ビット６、ビット４（ａＢ）はＤＲＣＡ−ビット７、ビット５は制御フレーム１のＤＲＣＡ−ビット０、ビット６はＤＲＣＡ−ビット１、ビット７はＤＲＣＡ−ビット２、バイト１２のビット０は制御フレーム０のＤＲＣＡ−ビット４、ビット１はＤＲＣＡ−ビット５、ビット２はＤＲＣＡ−ビット６、ビット３（ａＣ）はＤＲＣＡ−ビット７、ビット４は制御フレーム１のＤＲＣＡ−ビット０、ビット５はＤＲＣＡ−ビット１、ビット６はＤＲＣＡ−ビット２、ビット７はＤＲＣＡ−ビット３、バイト１３のビット０は制御フレーム０のＤＲＣＡ−ビット５、ビット１はＤＲＣＡ−ビット６、ビット２（ａＤ）はＤＲＣＡ−ビット７、ビット３は制御フレーム１のＤＲＣＡ−ビット０、ビット４はＤＲＣＡ−ビット１、ビット５はＤＲＣＡ−ビット２、ビット６はＤＲＣＡ−ビット３、ビット７はＤＲＣＡ−ビット４、バイト１４のビット０は制御フレーム０のＤＲＣＡ−ビット６、ビット１（ｃＥ）はＤＲＣＡ−ビット７、ビット２は制御フレーム１のＤＲＣＡ−ビット０、ビット３はＤＲＣＡ−ビット１、ビット４はＤＲＣＡ−ビット２、ビット５はＤＲＣＡ−ビット３、ビット６はＤＲＣＡ−ビット４、ビット７はＤＲＣＡ−ビット５、ＤＲＣＢのビット０（ａＦ）は制御フレーム０のＤＲＣＡ−ビット７、ビット１は制御フレーム１のＤＲＣＡ−ビット０、ビット２はＤＲＣＡ−ビット１、ビット３はＤＲＣＡ−ビット２、ビット４はＤＲＣＡ−ビット３、ビット５はＤＲＣＡ−ビット４、ビット６はＤＲＣＡ−ビット５、ビット７はＤＲＣＡ−ビット６となる。
【００８９】
以上のような選択関係を表にまとめると、図１２，図１３となる。これを２バイト入力の図１０のタイミングで表にすると、図１４，図１５のようになる。このような表の関係を実現するための回路の構成例を、図１６〜図１９に示す。
【００９０】
データを２バイトずつ入力するので、ＤＲＣ作成時にデータの作成に不必要なデータは入力しないようにしなければならない。ＤＲＣはビット単位で作成されるので、１バイト目の１ビットと２バイト目の１ビットとで片一方だけのビットが必要になった場合に、取り込まないデータが不必要なデータとなる。
【００９１】
図１１のＤＲＣ作成フォーマットを参照して、不必要なデータを例示する。制御フレーム０のＤＲＣＡビット１を求める場合を考える。制御フレーム０のバイト１，バイト２が入力されたとき、ＤＲＣＡ作成に使用されるのはバイト１のビット０だけであって、バイト２は使用されない。ＤＲＣＡビット１を作成するとき、データはバイト１のビット０とバイト２のビット２とが選択されているが、使用するデータ（バイト１のビット０）のみを選択するようにすれば良い。この選択を行うために、入力された不必要なデータ（バイト２のビット２）をマスクする。もう一例挙げてみると、制御フレーム０のＤＲＣＡビット３を求める際、タイミングＢＳ２，バイト３のビット０とバイト４のビット７とが入力されているが、不必要なバイト４のビット７をマスクする。
【００９２】
このようにデータの入力が１ビットのとき、図７，図８のデータマスク部２４Ａ，２４Ｂでデータのマスクを実施する。データのマスクの詳細は図２０，図２１に示す。図７，図８のデータマスク部２４Ａ，２４Ｂに入力している信号は、ＭＡＯ−０？，ＭＡＥ−０？，ＭＡＯ−１？，ＭＡＥ−１？，ＭＡＯ−２？，ＭＡＥ−２？と、ＭＢＯ−０？，ＭＢＥ−０？，ＭＢＯ−１？，ＭＢＥ−１？，ＭＢＯ−２？，ＭＢＥ−２？とである。この信号はＤＲＣを作成する際の制御フレームとタイミング信号とで作成される。データマスク部２４Ａ，２４Ｂの内部回路の詳細は、図２２及び図２３，図２４及び図２５に示す。
【００９３】
入力されるデータは、データ選択部２１Ａ，２１Ｂとデータマスク部２４Ａ，２４Ｂとで決まるので、データの取り込むタイミングについて述べる。ＤＲＣＡ作成回路，ＤＲＣＢ作成回路はそれぞれ３フレーム分の回路を有するが、それぞれのデータの取り込むタイミングが異なるので、タイミング制御が必要である。データの取り込むタイミング表を図２６〜図３１に示す。ＤＲＣの作成時に出力フレーム０，１，２毎にどのデータを取り込むかを表す。
【００９４】
現在どのフレームを処理しているかを示す制御フレーム０，１，２と、３つのフレームタイミングでＤＲＣを出力する出力フレームとによって、どのデータのビットを取り込むかを表す。○はその印がある場所のビットを取り込むことを示す。×はＤＲＣが作成されたことを示す。○の所を取り込むタイミングとして表を作ると、図３２〜図３７のようになる。この表をもとに図７，図８のデータパリティ作成部２２Ａ，２２Ｂのフリップ・フロップのセット条件を制御する信号ＣＥ０ＦＡ？，ＣＥ１ＦＡ？，ＣＥ２ＦＡ？，ＣＥ０ＦＢ？，ＣＥ１ＦＢ？，ＣＥ２ＦＢ？を作成する。
【００９５】
以上のように、データ選択部２１Ａ，２１Ｂにてデータを選択し、データマスク部２４Ａ，２４Ｂにて不必要なデータをマスクし、データパリティ作成部２２Ａ，２２Ｂにてデータの斜め方向のパリティをとることにより、ＤＲＣを作成する。
【００９６】
次に、ＶＲＣについて述べる。ＶＲＣを作成する理論は１バイトずつ入力する場合と２バイトずつ入力する場合とは同じである。つまりセットＡ，セットＢのビットごとの偶数パリティをとれば良い。図９に示すような回路構成を用いればＶＲＣの作成を実現できる。
【００９７】
まず、データを入力する前にＪＫフリップ・フロップをクリアしておく。セットＡでは、１バイト目と２バイト目とのビットごとをＥＯＲ（排他的論理和）してトグル回路のＪＫフリップ・フロップに入力する。３，４バイト目、５，６バイト目、７バイト目＋ＤＲＣＡを同様に入力すれば、フリップ・フロップにＶＲＣＡが作成される。セットＢでは、８バイト目を入力してトグル回路のＪＫフリップ・フロップに入力する。９，１０バイト目のビットごとをＥＯＲしてトグル回路のＪＫフリップ・フロップに入力する。１１，１２バイト目、１３，１４バイト目を同様に入力する。そしてＤＲＣＢとＪＫフリップ・フロップの出力とをＥＯＲすると、ＶＲＣＢが作成される。
【００９８】
上述のＤＲＣ作成回路の構成では、図７，図８のように３フレームのデータ選択部が共通になっていて、データマスク部とフリップ・フロップとのセット制御でデータの選択をしている。しかし、データ選択の実施方法としては、別の方法もある。データの選択は図３８の網かけで示したように３種類のグループが存在する。この３種類を順番に選択することでデータを選ぶことができる。このような例における回路構成は図３９のようになる。
【００９９】
また、上述の例では、２バイトずつ入力してＡＸＰ訂正符号を作成する場合について説明したが、２バイト以外の複数バイトずつ入力して、ＤＲＣの斜め方向のパリティ及びＶＲＣの縦方向のパリティをとることも可能である。
【０１００】
〔リードソロモン符号〕
次に、本発明のリードソロモン符号の高速化について説明する。検査行列を利用した符号化計算を以下の符号を用いて具体的に示す。
符号長    ｎ＝１８
情報点数  ｋ＝１４
検査点数  ｎ−ｋ＝４
最小距離  ｄmin ＝５
原始多項式  ｇ（ｘ）＝ｘ8 ＋ｘ4 ＋ｘ3 ＋ｘ2 ＋１
生成多項式  Ｇ（ｘ）＝（ｘ−α3 ）（ｘ−α2 ）（ｘ−α）（ｘ−１）
＝ｘ4 ＋α75ｘ3 ＋α249 ｘ2 ＋α78ｘ＋α6 
と展開できる。
ｄ0 〜ｄ3 は以下の行列で表される。
【０１０１】
ここで、下記に示される総和、
【０１０２】
【数４】
2006085900.tif 000006
【０１０３】
即ち、ａ0 〜ａ3 を展開すれば、
ａ0 ＝ｉ13＋ｉ12＋ｉ11＋ｉ10＋ｉ9 ＋ｉ8 ＋ｉ7 ＋ｉ6 ＋ｉ5 ＋ｉ4 ＋ｉ3         ＋ｉ2 ＋ｉ1 ＋ｉ0 
ａ1 ＝ｉ13×α17＋ｉ12×α16＋ｉ11×α15＋ｉ10×α14＋ｉ9 ×α13
＋ｉ8 ×α12＋ｉ7 ×α11＋ｉ6 ×α10＋ｉ5 ×α9 ＋ｉ4 ×α8 
＋ｉ3 ×α7 ＋ｉ2 ×α6 ＋ｉ1 ×α5 ＋ｉ0 ×α4 
ａ2 ＝ｉ13×α34＋ｉ12×α32＋ｉ11×α30＋ｉ10×α28＋ｉ9 ×α26
＋ｉ8 ×α24＋ｉ7 ×α22＋ｉ6 ×α20＋ｉ5 ×α18＋ｉ4 ×α16
＋ｉ3 ×α14＋ｉ2 ×α12＋ｉ1 ×α10＋ｉ0 ×α8 
ａ3 ＝ｉ13×α51＋ｉ12×α48＋ｉ11×α45＋ｉ10×α42＋ｉ9 ×α39
＋ｉ8 ×α36＋ｉ7 ×α33＋ｉ6 ×α30＋ｉ5 ×α27＋ｉ4 ×α24
＋ｉ3 ×α21＋ｉ2 ×α18＋ｉ1 ×α15＋ｉ0 ×α12
となる。
【０１０４】
ここで情報語ｉ13〜ｉ0 を２バイト単位（ｉ13とｉ12，ｉ11とｉ10，ｉ9 とｉ8 ，ｉ7 とｉ6 ，ｉ5 とｉ4 ，ｉ3 とｉ2 ，ｉ1 とｉ0 ）で、総和を求める回路に入力することを考え、ａ1 〜ａ3 を以下のような共通項でまとめた式に変更する。
ａ1 ＝α5 （ｉ13×α12＋＋ｉ11×α10＋ｉ9 ×α8 ＋ｉ7 ×α6 
＋ｉ5 ×α4 ＋ｉ3 ×α2 ＋ｉ1 ×α0 ）＋
α4 （ｉ12×α12＋＋ｉ10×α10＋ｉ8 ×α8 ＋ｉ6 ×α6 
＋ｉ4 ×α4 ＋ｉ2 ×α2 ＋ｉ0 ×α0 ）
ａ2 ＝α10（ｉ13×α24＋＋ｉ11×α20＋ｉ9 ×α16＋ｉ7 ×α12
＋ｉ5 ×α8 ＋ｉ3 ×α4 ＋ｉ1 ×α0 ）＋
α8 （ｉ12×α24＋＋ｉ10×α20＋ｉ8 ×α16＋ｉ6 ×α12
＋ｉ4 ×α8 ＋ｉ2 ×α4 ＋ｉ0 ×α0 ）
ａ3 ＝α15（ｉ13×α36＋＋ｉ11×α30＋ｉ9 ×α24＋ｉ7 ×α18
＋ｉ5 ×α12＋ｉ3 ×α6 ＋ｉ1 ×α0 ）＋
α12（ｉ12×α36＋＋ｉ10×α30＋ｉ8 ×α24＋ｉ6 ×α18
＋ｉ4 ×α12＋ｉ2 ×α6 ＋ｉ0 ×α0 ）
【０１０５】
この式は、２バイト単位で入力したときに、偶数バイトと奇数バイトとの各々に定数の乗算を行うことにより、総和を求める回路の簡略化が可能であることを示す。また、この式からａ1 を求める場合の乗算回路における乗算定数は、偶数バイト，奇数バイト共にα2 であり、また、ａ2 の場合の乗算定数はα4 、ａ3 の場合の乗算定数はα6 と偶数バイト及び奇数バイトで共通な同じ値になる。よって、乗算−加算−保持を順次繰り返すことで、各式の括弧内の値を求めることができる。即ち、従来の回路と比較して２倍の速度で情報語の総和を求めることが可能になる。
【０１０６】
次に、ａ0 〜ａ3 から検査語ｄ0 〜ｄ3 を求めるには、前述の行列式を解く回路を構成すればよく、従来と同様に所定の乗算定数を設定した乗算回路と加算回路とを用いて、以下に示すような演算式に従って実現できる。
ｄ0 ＝α218 ×ａ0 ＋α158 ×ａ1 ＋α156 ×ａ2 ＋α212 ×ａ3 
ｄ1 ＝α158 ×ａ0 ＋α138 ×ａ1 ＋α2 ×ａ2 ＋α153 ×ａ3 
ｄ2 ＝α156 ×ａ0 ＋α2 ×ａ1 ＋α135 ×ａ2 ＋α152 ×ａ3 
ｄ3 ＝α212 ×ａ0 ＋α153 ×ａ1 ＋α152 ×ａ2 ＋α209 ×ａ3 
【０１０７】
図４０，図４１は、以上のようなａ0 〜ａ3 及びｄ0 〜ｄ3 を求めるようにした回路の構成図である。ＥＯＲで構成されたガロア体上の加算回路２５と、ＥＯＲ及びＡＮＤで構成されたガロア体上の定数項の乗算回路２７と、乗算−加算されたデータ（情報語）を保持するためのレジスタ２６とを有する。符号化を行う場合には、情報語を２バイト単位で入力し、全てのデータが入力された時点でａ0 〜ａ3 が図４０の回路にて計算され、計算されたａ0 〜ａ3 が図４１の回路に入力されて同時に検査語ｄ0 〜ｄ3 が求まる。即ち、符号化に必要な時間は、情報語長÷２となり、従来例に比べて誤り訂正符号化の処理時間が半分に短縮する。
【０１０８】
なお、上述の説明においては、説明を簡単にするために、入力データを２バイト単位としているが、例えば４バイト，６バイト，・・・（単位が偶数）であれば、同じ考え方で符号化回路を構成することができる。
【０１０９】
（リードソロモン符号に対するシンドローム作成回路６）
図４２は、本発明のシンドローム作成回路６の構成を示すブロック図であり、シンドローム作成回路６は、メモリ３１と、ビット重み変換部３２と、並列シンドローム演算部３３と、シンドローム結果記憶部３４と、コントローラ部３５とを有する。
【０１１０】
シンドローム演算前、メモリ３１より読み出したデータについて走行方向によりそのガロア体ＧＦが異なってビット重みの入れ換えが必要となる場合がある。この場合に、ビット重み変換部３２は、データのビット重みを入れ換えて、並列シンドローム演算部３３に出力する。並列シンドローム演算部３３は、ビット重み変換後のデータのシンドロームを求める。シンドローム結果記憶部３４は、シンドロームの演算結果を記憶する。コントローラ部３５は、この並列シンドローム演算部３３での演算処理を制御する。
【０１１１】
図４３は、図４２の並列シンドローム演算部３３及びコントローラ部３５の内部構成を示す。並列シンドローム演算部３３は、ＥＯＲ器３６と乗算器３７とアルチプレクサ３８とレジスタ３９とを有し、コントローラ部３５は、バイト切り換え器３５ａとパルス発生器３５ｂとを有する。
【０１１２】
以下の条件に従った動作について説明する。
符号が存在する体：ＧＦ（２）  元の総数は２５６個
体を構成する原始多項式：ｇ（ｘ）＝ｘ8 ＋ｘ4 ＋ｘ3 ＋ｘ2 ＋１
ＲＳ符号の生成多項式：Ｇ（ｘ）＝ｘ4 ＋α75ｘ3 ＋α249 ｘ2 ＋α78ｘ
＋α6 
＝（ｘ＋α0 ）（ｘ＋α1 ）（ｘ＋α2 ）                                      （ｘ＋α3 ）
符号長    ｎ＝１８バイト
情報点数  ｋ＝１４バイト
検査点数  ｍ＝４バイト
最小距離  ｄmin ＝５
訂正能力  誤り訂正＝２個、または、誤り検出＝４個まで可能
【０１１３】
まず、メモリ３１に記憶された１８バイトの符号語を３バイト毎にまとめ、その３バイトのデータを同時にビット重み変換器３２に取り込み、走行方向によってガロア体が異なりビット重みの入れ換えが必要な場合にビット重みを入れ換える。ビット重み変換後のデータは並列シンドローム演算部３３に入力されてシンドロームが演算される。各々ＥＯＲした結果を、乗算器３７のべき乗テーブルと乗算することによりシンドロームが求まる。マルチプレクサ３８は、データ転送時のバイト数の切り換えに必要であり、コントローラ部３５のシンドローム演算用のバイト切り換え器３５ａにより外部からの情報でバイト数が切り換えられる。また、レジスタ３９は、演算したシンドローム結果を一時保存しておき、正確に出力するために必要なものである。１８バイトのデータが入力された後、演算されたシンドローム結果は、１８バイトのデータ入力後にパルス発生器３５ｂから発生されるタイミングパルスに応じて、シンドローム結果記憶部３４に保存される。
【０１１４】
以上のように、３バイト単位での処理を実施するので、シンドローム演算を高速に行うことができる。
【０１１５】
（デスキュー回路５）
本発明では、３個のデスキューイングバッファを同時に読み出して１回あたり３バイトのデータを転送する処理を６回行うことにより、１フレームのデータの転送速度を従来例の３倍に高める。また、デスキューイングバッファの各トラックの割当てを変更し、且つ制御方法を変更することによって、ＦＷＤ方向とＢＷＤ方向とにおいて同一の制御法によりデータ転送が可能なようにする。
【０１１６】
図４４は、本発明のデスキュー回路５の内部構成を示すブロック図である。デスキュー制御回路４１Ａ（４１Ｂ，４１Ｃ）と、デスキューイングバッファ４２Ａ（４２Ｂ，４２Ｃ）と、マルチプレクサ４３Ａ（４３Ｂ，４３Ｃ）と、９−８変換回路４４Ａ（４４Ｂ，４４Ｃ）とから構成される３系統の回路を設けて、一度に３バイトのデータを転送できるようにしている。
【０１１７】
図４５〜図４８は、各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃにおけるデータの書き込み・読み出し制御を示す図である。本発明では、従来例と異なり、ＦＷＤ方向及びＢＷＤ方向においてその書き込み・読み出し制御は共通である。
【０１１８】
一例として、デスキュー制御回路４１Ａ及びデスキューイングバッファ４２Ａの制御動作について説明する。磁気テープ上の傾斜した各トラックにおいて、１バイトデータ（９ビットデータ）が揃ったトラックを分割した各メモリ領域に順次書き込んでいく。まず、１Ａ−トラックのデータを、デスキューイングバッファ４２Ａの１Ａ−トラックに割り当てられたメモリ領域（Ａの位置）に書き込む。以下同様に、４Ａ−トラックのデータはＢの位置、７Ａ−トラックのデータはＣの位置、５Ｂ−トラックのデータはＤの位置、２Ｂ−トラックのデータはＥの位置、０Ａ−トラックのデータはＦの位置に書き込む（図４５参照）。
【０１１９】
同様にして、デスキューイングバッファ４２Ｂ，４２Ｃにおいても各トラックのデータを割り当てられた対応するメモリ領域に書き込む（図４６，図４７参照）。以上のようにして、１８トラック分のデータの書き込みを終了する。
【０１２０】
データの書き込みを終了すると、３バイトデータの転送を始める。図４５〜図４７に示す各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃの読み出し順位１番のブロック（Ａの位置）のデータを同時に読み出して、１回のタイミングで３バイト転送を実現する。読み出した３バイトデータは３系統独立の９−８変換回路４４Ａ，４４Ｂ，４４Ｃに転送されて、８ビットのデータに変換される。次に、各デスキューイングバッファ４２Ａ，４２Ｂ，４２Ｃの読み出し順位２番のブロック（Ｂの位置）、次いで、読み出し順位３番というように、合計６回のタイミングで１８トラック分の１フレームのデータを送信する（図４８参照）。
【０１２１】
以上のような手法により、１フレームのデータ転送において従来例の３倍速の転送が可能になり、処理速度を向上することができる。また、ＦＷＤ方向，ＢＷＤ方向に関わらずに、同一の制御手法でのデスキュー処理が可能になる。
【０１２２】
（読み出しフォーマット部１１ｅ内におけるデータ転送制御）
従来の３倍である３バイト幅で転送されるデータに対して、次段の回路（ホスト１０）へ転送するまでに誤り訂正処理を行う場合、一時的にデータを格納する手段が必要である。その格納手段として、メモリ，フリップ・フロップ，セレクタ等の素子の使用を最小限にし、しかもＦＷＤ方向及びＢＷＤ方向の読み出し動作に対応できるためには、そのメモリアドレスの制御方法を工夫する必要がある。
【０１２３】
磁気テープ等の媒体から読み出されたデータをメモリに格納する際、格納するメモリアドレスを制御するカウンタ制御回路によってアドレスカウンタを制御する。カウンタの出力値はメモリのアドレス線に入力されており、データをメモリの決まった領域に格納するようにアドレス制御するようになっている。また、カウンタ制御回路では、磁気テープ読み取り方向（ＦＷＤ方向かＢＷＤ方向か）によってアドレス順を切り替えることができる。誤り訂正処理を行う際に、入力データ順がＢＷＤ方向とＦＷＤ方向とでは逆であるが、カウンタ制御回路でアドレス順を切り替えることによって、ＢＷＤ方向とＦＷＤ方向とで個別の誤り訂正回路を設ける必要がない。
【０１２４】
図４９は、本発明のデータ転送制御系の構成を示すブロック図である。図４９に示すデータ転送制御系は、データを格納するためのメモリ領域を有するＳＲＡＭ５１と、特定アドレス値を設定するアドレスロード値設定回路５２と、ＦＷＤ方向，ＢＷＤ方向各々において転送データの順序を切り替えるためのＦＷＤ／ＢＷＤ切替回路５３と、書き込み，読み出しそれぞれのアドレスを制御するアドレスカウンタ回路５４と、磁気テープ等の媒体５５と、誤り訂正を行う誤り訂正処理回路５６と、ＦＷＤ方向，ＢＷＤ方向を判別するための走行方向判断回路５７と、ＢＷＤ方向時に同一アドレス内の３バイトのデータ順を並べ換えるＢＷＤバイトデータ変換回路５８とを備える。アドレスカウンタ回路５４は、書き込みカウンタ５４ａと読み出しカウンタ５４ｂとを有する。
【０１２５】
図５０はＳＲＡＭ５１におけるメモリマップを示す図であり、グループ毎のメモリ格納領域を示している。図５０において、(1)，(2)，3)はフレーム単位のデータのグループ番号、００，０５，０６，０Ｂ，０Ｃ，１１，１２は各グループのデータを格納する領域を表したアドレス初期値（ロード値）である。
【０１２６】
図５１は、媒体５５から３バイト単位で転送されてくるデータの１フレーム分のフォーマットを示す図であり、図５１（ａ）はＦＷＤ方向での読み出し時、図５１（ｂ）はＢＷＤ方向での読み出し時のデータフォーマットをそれぞれ示す。また、図５２はフレーム単位のデータの書き込み，読み出しのタイミングチャート、図５３はある特定のフレームデータにおけるＦＷＤ時の書き込み，読み出しの詳細なタイミングチャート、図５４はある特定のフレームデータにおけるＢＷＤ時の書き込み，読み出しの詳細なタイミングチャートである。
【０１２７】
媒体５５からＦＷＤ方向に読み出されたデータが、図５１（ａ）に示すようなフォーマット（３バイト幅：１Ａ，２Ａ，３Ａ）でパラレルに送られてきた場合、アドレスロード値設定回路５２によって設定されたフレーム単位（１Ａから８Ｂまでの１８バイト）のグループ毎に、ＳＲＡＭ５１の決められた格納アドレス（ロード値）にデータが３バイト格納される。この場合、まず００がロードされ、アドレス００には、１Ａ，２Ａ，３Ａの３バイトが格納される。
【０１２８】
その後、アドレスカウンタ回路５４によってアドレスがインクリメントされ、それぞれ、インクリメントされたアドレスに応じてデータが３バイトずつ格納されていく。０５までインクリメントされたアドレスにデータが格納されると、１フレームのデータ、即ちグループ(1)の格納が終了する。同様に、グループ(2)はアドレス０６から０Ｂまで、グループ(3)は０Ｃから１１までというようにグループ毎にデータ格納処理が行われる。
【０１２９】
次に、グループ毎にＳＲＡＭ５１に格納された（書き込まれた）同一のアドレスを、読み出す場合の説明を行う。この際、図５２に示すように、書き込みと読み出しとのタイミングで２フレームの遅れが生じる。これは、フレームデータ（１８バイト）書き込み完了に１フレーム、更に書き込まれたデータに関して誤り訂正処理を行うために１フレームかかるためである。データ格納時にグループを３つに分け、それぞれの開始アドレスと終了アドレスとをロード値として設定するのは、この２フレームのずれに対処するためである。
【０１３０】
ＳＲＡＭ１に書き込まれた同一のアドレスを読み出すのに２フレーム遅れるため、図５２に示すように、グループ(3)を書き込んでいるときはグループ(1)を読み出し、グループ(1)を書き込んでいるときはグループ(2)を読み出し、グループ(2)を書き込んでいるときはグループ(3)を読み出すというように、書き込み，読み出しそれぞれのアドレスカウンタ５４ａ，５４ｂを制御する。図５３はこのアドレスカウンタ制御の詳細なタイミングを示す。図５３では、０Ｃを書き込んでいるときは００を読み出し、０８を書き込んでいるときは０Ｃを読み出していることを表している。
【０１３１】
なお、上述した例はＦＷＤ方向時の書き込みについての説明であるが、ＢＷＤ方向時の書き込みの場合、媒体５５から読み出される読み出しデータは、誤り訂正処理の都合上、前段でＦＷＤ方向のデータ順に変換されており、次段へ出力する場合はＢＷＤ方向に変換し直さないといけない。ＦＷＤ／ＢＷＤ各々の走行方向を判断する走行方向判断回路５７によって走行方向を判別し、読み出し／書き込み順を制御するＦＷＤ／ＢＷＤ切替回路５３によって切り替える。つまり、ＦＷＤ方向の場合はグループの開始アドレスをロードし、カウンタ値を増やしていくが、ＢＷＤ方向の場合は、グループの最終アドレスをロード値とし、カウンタ値を減らしていくようにする。
【０１３２】
例えば、図５４において、グループ(1)をＢＷＤ方向で読み出す場合、０Ｃを書き込んでいるときは０５を読み出すというように、グループ(1)の最終アドレスをロード値としダウンカウントするように読み出しアドレスカウンタを制御する。また、ＢＷＤ時は図５１（ｂ）に示すように、出力データ順に加えて同一アドレス内の３バイトの並びも変わるので、ＢＷＤ時はＢＷＤバイトデータ変換回路５８によってバイト変換制御を行う。
【０１３３】
以上のような手法によると、データ転送の高速化（３バイト転送）、テープ媒体からのデータの読み出し順序がＦＷＤ方向またはＢＷＤ方向に変化した場合、また、高性能な誤り訂正処理を行う際に、フレーム単位としてデータのずれが生じた場合等においても、より高度，複雑になりつつあるデータ転送制御方式において、以上に挙げた要因に総括的に対処できる。アドレスカウンタをＦＷＤ方向，ＢＷＤ方向で切り換えて制御することにより、カウンタロード値を設定し、カウンタをアップカウントにするかダウンカウントにするかによって、ＦＷＤ方向及びＢＷＤ方向での読み出し動作に対応できる。データを３つのグループに分けることによって、上に述べた書き込み時と読み出し時とで２フレームずれるという現象においても、同じタイミングにおいて書き込み動作と読み出し動作とを行え、３バイトデータ高速転送に対応することができる。
【０１３４】
データ転送制御方法における従来からの改良手法の常套手段である、データ格納またはバッファ制御を行うためのフリップ・フロップ，セレクタ等の素子の多量追加という方法に対し、本発明では以上のような手法にてデータ転送制御を行うので、データ格納，バッファ制御を行うために使用される素子の絶対数を最小限に抑え、回路規模の増大，複雑化を防ぎ、開発期間の短縮、開発費の低減、更にはテスト項目の簡略化をも図ることができ、多方面にわたって効率面での向上が可能となる。
【図面の簡単な説明】
【０１３５】
【図１】磁気テープ制御装置のデータフォーマット部の内部構成例を示すブロック図である。
【図２】テープサブシステムの構成例を示すブロック図である。
【図３】本発明の残余バイト作成回路の構成例を示す図である。
【図４】本発明の残余バイト作成回路のタイミングチャート（カスタムデータが８バイト）である。
【図５】本発明の残余バイト作成回路のタイミングチャート（カスタムデータが９バイト）である。
【図６】本発明の残余バイト作成回路のｍｏｄ１４カウンタ出力を示す図表である。
【図７】本発明のＤＲＣ作成回路の構成例を示す図である。
【図８】本発明のＤＲＣ作成回路の構成例を示す図である。
【図９】本発明のＶＲＣ作成回路の構成例を示す図である。
【図１０】本発明におけるＤＲＣ作成時の入力データとデータタイミングとの関係を示す図表である。
【図１１】本発明におけるＤＲＣ作成の一例を示す図である。
【図１２】従来例のＤＲＣ作成回路でのデータ選択を示す図表である。
【図１３】従来例のＤＲＣ作成回路でのデータ選択を示す図表である。
【図１４】本発明のＤＲＣ作成回路でのデータ選択を示す図表である。
【図１５】本発明のＤＲＣ作成回路でのデータ選択を示す図表である。
【図１６】本発明のＤＲＣ作成回路でのデータ選択部の構成例を示す図である。
【図１７】本発明のＤＲＣ作成回路でのデータ選択部の構成例を示す図である。
【図１８】本発明のＤＲＣ作成回路でのデータ選択部の構成例を示す図である。
【図１９】本発明のＤＲＣ作成回路でのデータ選択部の構成例を示す図である。
【図２０】本発明のＤＲＣ作成回路のデータマスク部でのデータマスクタイミングを示す図表である。
【図２１】本発明のＤＲＣ作成回路のデータマスク部でのデータマスクタイミングを示す図表である。
【図２２】本発明のＤＲＣ作成回路のデータマスク部の構成例を示す図である。
【図２３】本発明のＤＲＣ作成回路でのデータマスク部の構成例を示す図である。
【図２４】本発明のＤＲＣ作成回路のデータマスク部の構成例を示す図である。
【図２５】本発明のＤＲＣ作成回路でのデータマスク部の構成例を示す図である。
【図２６】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図２７】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図２８】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図２９】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図３０】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図３１】本発明のＤＲＣ作成回路でのデータ取り込みタイミングを示す図である。
【図３２】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３３】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３４】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３５】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３６】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３７】本発明のＤＲＣ作成回路でのデータセットタイミングを示す図である。
【図３８】本発明のＤＲＣ作成回路でのデータ選択を示す図である。
【図３９】本発明のＤＲＣ作成回路のデータ選択部の構成例を示す図である。
【図４０】本発明の符号化回路の構成例を示す図である。
【図４１】本発明の符号化回路の構成例を示す図である。
【図４２】本発明のシンドローム作成回路の構成例を示すブロック図である。
【図４３】図４２に示す並列シンドローム演算部及びコントローラ部の内部構成例を示す図である。
【図４４】本発明のデスキュー回路の構成例を示すブロック図である。
【図４５】本発明のデスキュー回路におけるデスキューイングバッファの動きを示す図である。
【図４６】本発明のデスキュー回路におけるデスキューイングバッファの動きを示す図である。
【図４７】本発明のデスキュー回路におけるデスキューイングバッファの動きを示す図である。
【図４８】本発明のデスキュー回路におけるデスキューイングバッファの動きを示す図である。
【図４９】本発明のデータ転送制御系の構成例を示すブロック図である。
【図５０】本発明のデータ転送制御系におけるメモリマップを示す図である。
【図５１】本発明のデータ転送制御系におけるフレームデータフォーマットを示す図である。
【図５２】本発明のデータ転送制御系におけるフレームデータ転送タイミングを示す図である。
【図５３】本発明のデータ転送制御系における書き込み・読み出し（ＦＷＤ時）のタイミングチャートである。
【図５４】本発明のデータ転送制御系における書き込み・読み出し（ＢＷＤ時）のタイミングチャートである。
【図５５】磁気テープに記録されたデータフォーマットを示す図である。
【図５６】カスタムデータが１２バイト時のデータフォーマットを示す図である。
【図５７】カスタムデータが７バイト時のデータフォーマットを示す図である。
【図５８】従来例の残余バイト作成回路の構成例を示す図である。
【図５９】従来例の残余バイト作成回路のタイミングチャートである。
【図６０】従来例の残余バイト作成回路のｍｏｄ１４カウンタ出力を示す図表である。
【図６１】従来例のＤＲＣ作成フォーマットを示す図である。
【図６２】従来例におけるＤＲＣの計算例を示す図表である。
【図６３】従来例のＤＲＣ作成回路の構成例を示す図である。
【図６４】従来例におけるＶＲＣの作成方法を示す図である。
【図６５】従来例におけるＶＲＣの計算例を示す図表である。
【図６６】従来例のＶＲＣ作成回路の構成例を示す図である。
【図６７】従来例のＬＦＳＲを用いた符号化回路の構成例を示す図である。
【図６８】従来例の検査行列を用いた符号化回路の構成例を示す図である。
【図６９】従来例の検査行列を用いた符号化回路の構成例を示す図である。
【図７０】磁気テープ上のデータフォーマットを示す図である。
【図７１】図７０に示すデータフォーマットの部分拡大図である。
【図７２】従来例のデスキュー回路の構成例を示すブロック図である。
【図７３】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＦＷＤ時）を示す図である。
【図７４】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＦＷＤ時）を示す図である。
【図７５】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＦＷＤ時）を示す図である。
【図７６】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＦＷＤ時）を示す図である。
【図７７】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＢＷＤ時）を示す図である。
【図７８】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＢＷＤ時）を示す図である。
【図７９】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＢＷＤ時）を示す図である。
【図８０】従来例のデスキュー回路におけるデスキューイングバッファの動き（ＢＷＤ時）を示す図である。
【符号の説明】
【０１３６】
１  残余バイト作成回路
２，４  マルチプレクサ
３  誤り訂正符号化回路
５  デスキュー回路
６  シンドローム作成回路
７  誤り訂正回路
８  フレームバッファ
１０  ホスト
１１  磁気テープ制御装置（ＭＴＣ）
１２  磁気テープユニット（ＭＴＵ）
１１ｂ  データフォーマット部
１１ｄ  書き込みフォーマット部
１１ｅ  読み出しフォーマット部
２１Ａ，２１Ｂ  データ選択部
２２Ａ，２２Ｂ  データパリティ作成部
２３Ａ，２３Ｂ  フレーム制御部
２４Ａ，２４Ｂ  データマスク部
２５  加算回路
２６  レジスタ
２７  乗算回路
３３  並列シンドローム演算部
４１Ａ，４１Ｂ，４１Ｃ  デスキュー制御回路
４２Ａ，４２Ｂ，４２Ｃ  デスキューイングバッファ
５１  ＳＲＡＭ
５２  アドレスロード値設定回路
５３  ＦＷＤ／ＢＷＤ切替回路
５４  アドレスカウンタ回路
【図１】
2006085900.tif 000007
【図２】
2006085900.tif 000008
【図３】
2006085900.tif 000009
【図４】
2006085900.tif 000010
【図５】
2006085900.tif 000011
【図６】
2006085900.tif 000012
【図７】
2006085900.tif 000013
【図８】
2006085900.tif 000014
【図９】
2006085900.tif 000015
【図１０】
2006085900.tif 000016
【図１１】
2006085900.tif 000017
【図１２】
2006085900.tif 000018
【図１３】
2006085900.tif 000019
【図１４】
2006085900.tif 000020
【図１５】
2006085900.tif 000021
【図１６】
2006085900.tif 000022
【図１７】
2006085900.tif 000023
【図１８】
2006085900.tif 000024
【図１９】
2006085900.tif 000025
【図２０】
2006085900.tif 000026
【図２１】
2006085900.tif 000027
【図２２】
2006085900.tif 000028
【図２３】
2006085900.tif 000029
【図２４】
2006085900.tif 000030
【図２５】
2006085900.tif 000031
【図２６】
2006085900.tif 000032
【図２７】
2006085900.tif 000033
【図２８】
2006085900.tif 000034
【図２９】
2006085900.tif 000035
【図３０】
2006085900.tif 000036
【図３１】
2006085900.tif 000037
【図３２】
2006085900.tif 000038
【図３３】
2006085900.tif 000039
【図３４】
2006085900.tif 000040
【図３５】
2006085900.tif 000041
【図３６】
2006085900.tif 000042
【図３７】
2006085900.tif 000043
【図３８】
2006085900.tif 000044
【図３９】
2006085900.tif 000045
【図４０】
2006085900.tif 000046
【図４１】
2006085900.tif 000047
【図４２】
2006085900.tif 000048
【図４３】
2006085900.tif 000049
【図４４】
2006085900.tif 000050
【図４５】
2006085900.tif 000051
【図４６】
2006085900.tif 000052
【図４７】
2006085900.tif 000053
【図４８】
2006085900.tif 000054
【図４９】
2006085900.tif 000055
【図５０】
2006085900.tif 000056
【図５１】
2006085900.tif 000057
【図５２】
2006085900.tif 000058
【図５３】
2006085900.tif 000059
【図５４】
2006085900.tif 000060
【図５５】
2006085900.tif 000061
【図５６】
2006085900.tif 000062
【図５７】
2006085900.tif 000063
【図５８】
2006085900.tif 000064
【図５９】
2006085900.tif 000065
【図６０】
2006085900.tif 000066
【図６１】
2006085900.tif 000067
【図６２】
2006085900.tif 000068
【図６３】
2006085900.tif 000069
【図６４】
2006085900.tif 000070
【図６５】
2006085900.tif 000071
【図６６】
2006085900.tif 000072
【図６７】
2006085900.tif 000073
【図６８】
2006085900.tif 000074
【図６９】
2006085900.tif 000075
【図７０】
2006085900.tif 000076
【図７１】
2006085900.tif 000077
【図７２】
2006085900.tif 000078
【図７３】
2006085900.tif 000079
【図７４】
2006085900.tif 000080
【図７５】
2006085900.tif 000081
【図７６】
2006085900.tif 000082
【図７７】
2006085900.tif 000083
【図７８】
2006085900.tif 000084
【図７９】
2006085900.tif 000085
【図８０】
2006085900.tif 000086