(57)【特許請求の範囲】
【請求項１】
多ビットデータのチェックビットを生成するチェックビット生成回路であって、前記多ビットデータの複数ブロックに分割された１つのブロックを入力とし、この入力ブロックのデータのバイト順を、制御信号に応じてそのまま、または逆順として択一的に導出する第一のセレクタと、このセレクタの選択出力に対して、同伴行列表現にて対称性を有するパリティ検査行列を使用してチェックビットの中間データを生成する中間データ生成手段と、この中間データと外部から供給された他ブロックの前記中間データとから全体のチェックビットを生成する手段と、前記制御信号に応じてこの全体のチェックビットのバイト順をそのまま、または入れ替えて択一的に導出する第二のセレクタとを含み、自ブロックのデータと前記第二のセレクタの選択出力を外部へ導出するようにしたことを特徴とするチェックビット生成回路。
【請求項２】
自ブロックの前記中間データを他ブロックのチェックビット生成手段へ供給する手段を含むことを特徴とする請求項１記載のチェックビット生成回路。
【請求項３】
前記パリティ検査行列は、Ｓ８ＥＣ−Ｄ８ＥＤ（Single 8 bit Error Correcting-Double 8 bit Error Detecting ）検査行列であることを特徴とする請求項１または２記載のチェックビット生成回路。
【請求項４】
多ビットデータに対して、同伴行列表現にて対称性を有するパリティ検査行列を使用して生成されたチェックビットによって前記データのエラー訂正をなすエラー訂正回路であって、前記多ビットデータの複数ブロックに分割された１つのブロックを入力とし、この入力ブロックのデータのバイト順を、制御信号に応じてそのまま、または逆順として択一的に導出する第一のセレクタと、前記チェックビットまたは０クランプ信号を入力とし、前記制御信号に応じてバイト順を入れ替えて導出する第二のセレクタと、前記第一及び第二のセレクタの出力に基きエラーシンドローム中間データを生成する中間データ生成手段と、この中間データと外部から供給された他ブロックの前記中間データとから全体のエラーシンドロームを生成する手段と、前記制御信号に応じて前記全体のエラーシンドロームのバイト順をそのまま、または入れ替えて択一的に導出する第三のセレクタと、この第三のセレクタの出力に基きエラーバイトポジションを生成する手段と、このエラーバイトポジションに基き入力ブロックデータのエラー訂正をなす手段とを含むことを特徴とするエラー訂正回路。
【請求項５】
自ブロックの前記中間データを他ブロックのエラーシンドローム生成手段へ供給する手段を含むことを特徴とする請求項４記載のエラー訂正回路。
【請求項６】
前記パリティ検査行列は、Ｓ８ＥＣ−Ｄ８ＥＤ（Single 8 bit Error Correcting-Double 8 bit Error Detecting ）検査行列であることを特徴とする請求項４または５記載のエラー訂正回路。
【請求項７】
請求項１〜３いずれか記載のチェックビット生成回路と、このチェックビット生成回路からの出力データとチェックビットとを入力とする請求項４〜６いずれか記載のエラー訂正回路とを含むことを特徴とするＥＣＣ制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はチェックビット生成回路及びエラー訂正回路並びにそれ等を使用したＥＣＣ（Error Corection Code）制御回路に関し、特に多ビットデータのＥＣＣ制御方式に関するものである。
【０００２】
【従来の技術】
この種の従来技術として図１１及び図１２を参照して説明する。図１１は従来のＥＣＣ生成回路を示す図であり、図１１において、装置４０Ａ，Ｂの各々はデータ４００の半分のデータからチェックビットを生成し、入力したデータと生成したチェックビットとを出力する装置である。装置４１は装置４０Ａ，Ｂが夫々生成した２つのチェックビットを入力とし、全体のチェックビットであるＥＣＣを生成出力する装置である。
【０００３】
チェックビッ卜＃０生成回路４１０Ａ，Ｂはデータ４００を分割したデータから夫々チェックビットを生成する回路である。チェックビット＃１生成回路４１５Ａ，Ｂはデータ４００を分割したデータから夫々チェックビットを生成する回路である。
【０００４】
セレクタ４２０Ａ，Ｂは、信号４２５，４３５の値が夫々“０”であればチェックビット＃０生成回路４１０Ａ，Ｂの出力データを夫々選択し、“１”であればチェックビット＃１生成回路４１５Ａ，Ｂの出力データを夫々選択するセレクタである。
【０００５】
レジスタ４４０Ａ，Ｂはデータ４００を分割したデータを夫々入力とし、チェックビット生成回路のチェックビット生成処理との同期をとるレジスタである。レジスタ４４５Ａ，Ｂはセレクタ４２０Ａ，Ｂからのデータを夫々入力とし、装置４０Ａ，Ｂの外部へ夫々出力するレジスタである。レジスタ４５０Ａ，Ｂはレジスタ４４０Ａ，Ｂからのデータを入力とし、装置４０Ａ，Ｂの外部に夫々出力するレジスタである。
【０００６】
チェックビット生成回路４５５は装置４０Ａ，Ｂから夫々チェックビット＃０及び＃１を入力とし、全体のチェックビットを生成する回路である。レジスタ４６０はチェックビット生成回路４５５からのデータを入力とし、装置４１の外部に出力するレジスタである。
【０００７】
図１２は従来の１Ｂ（ビット）エラー訂正回路の例を示す図である。図１２において、装置５０Ａ，Ｂはデータ５００の半分のデータと０クランプ信号５１０もしくはＥＣＣ５０５を入力とし、装置５１とシンドロームをやり取りして１Ｂエラー訂正を行う装置である。
【０００８】
装置５１は装置５０Ａ，Ｂが生成した２つのシンドロームを入力とし、全体のシンドロームを生成出力する装置である。データ５００は図１１の装置４０Ａ，Ｂで出力されたデータである。ＥＣＣ５０５は図１１の装置４１で生成されたＥＣＣである。０クランプ信号５１０は３バイト分の０データである。
【０００９】
シンドローム＃０生成回路５２５Ａ，Ｂはデータ５００を分割したデータ及び０クランプ信号５１０もしくはＥＣＣ５０５からシンドロームを生成する回路である。シンドローム＃１生成回路５３０Ａ，Ｂはデータ５００を分割したデータ及び０クランプ信号５１０もしくはＥＣＣ５０５からシンドロームを生成する回路である。
【００１０】
セレクタ５３５Ａ，Ｂは、信号５４０，５４５の各値が“０”であればシンドローム＃０生成回路５２５Ａ，Ｂの各出力データを選択し、“１”であればシンドローム＃１生成回路５３０Ａ，Ｂの各出力データを選択するセレクタである。レジスタ５５５Ａ，Ｂはデータ５００を分割したデータを入力とし、全体のシンドローム生成処理との同期をとるレジスタである。
【００１１】
レジスタ５６０Ａ，Ｂはセレクタ５３５Ａ，Ｂからのデータを入力とし、装置５０Ａ，Ｂの外部へ出力するレジスタである。レジスタ５６５Ａ，Ｂはレジスタ５５５Ａ，Ｂからのデータを入力とし、全体のシンドローム生成処理との同期をとるレジスタである。
【００１２】
１Ｂエラー訂正回路５７０Ａ，Ｂは装置５１からの全体のシンドローム及びエラーバイトポジションを入力として、レジスタ５６５Ａ，Ｂから入力したデータの１Ｂエラー訂正を行う回路である。レジスタ５７５Ａ，Ｂは１Ｂエラー訂正回路５７０Ａ，Ｂからのデータを入力とし、装置５０Ａ，Ｂの外部へ出力するレジスタである。
【００１３】
エラーシンドローム生成回路５８０は装置５０Ａ，Ｂからの各シンドローム＃０，＃１を入力とし、全体のシンドロームを生成する回路である。エラーバイトポジション生成回路５８５はエラーシンドローム生成回路５８０で生成されたエラーシンドロームを元にエラーバイトポジションを生成する回路である。レジスタ５９０はエラーシンドローム生成回路５８０が生成したエラーシンドロームを入力とし、装置５１の外部へ出力するレジスタである。レジスタ５９５はエラーバイトポジション生成回路５８５が生成したエラーバイトポジシヨンを入力とし、装置５１の外部へ出力するレジスタである。
【００１４】
先ず、図１１の従来のチェックビット生成回路について説明する。データ４００のデータは２分割されて２つの装置４０Ａ，Ｂに夫々入力される。装置４０Ａにおいては、信号４２５は“０”にクランプされているものとし、装置４０Ｂにおいては、信号４３０は“１”にクランプされているものとする。これににより、装置４０Ａではチェックビット＃０生成回路４１０Ａの出力が使用され、装置４０Ｂではチェックビット＃１生成回路４１５Ｂの出力が使用される。
【００１５】
チェックビット＃０，＃１生成回路では、データ４００を分割したデータを元に夫々チェックビット＃０，＃１が生成される。装置４０Ａ，Ｂで生成されたチェックビット＃０，＃１は装置４１に入力されてＥＣＣが生成されて出力される。２分割されたデータの上位及び下位データはこのＥＣＣの出力と同期して出力される。
【００１６】
次に、図１２の従来の１Ｂエラー訂正回路につき説明する。データ５００は何らかの転送路を介して図１１の装置４０Ａ，Ｂから出力されたデータである。ＥＣＣ５０５のデータは同じく何らかの転送路を介して図１１の装置４１から出力されたデータである。データ５００は２分割されて２つの装置５０Ａ，Ｂにそれぞれ入力され、また０クランプ信号５１０が装置５０Ａに、ＥＣＣ５０５のデータが装置５０Ｂに夫々入力される。
【００１７】
装置５０Ａでは、信号５４０は“０”にクランプされており、これによりシンドローム＃０生成回路５２５Ａの出力が使用され、装置５０Ｂでは信号５４５は“１”にクランプされており、これによりシンドローム＃１生成回路５３０Ｂの出力が使用される。
【００１８】
シンドローム＃０，＃１生成回路では、５００を分割したデータ及び０クランプ信号５１０もしくはＥＣＣ５０５からのデータを元にシンドローム＃０，＃１が夫々生成される。装置５０Ａ，Ｂで生成されたシンドロ−ム＃０，＃１は装置５１に入力されて全体のシンドロームが生成され出力される。
【００１９】
上位及び下位データはレジスタ５５５Ａ，Ｂ及び５６５Ａ，Ｂを使用して全体のシンドローム及びエラーバイトポジションと同期する様になっている。装置５１が生成するエラーシンドロームは２つの装置５０Ａ，Ｂに夫々入力される。装置５１が生成するエラーバイトポジションはデータ５００とＥＣＣ５０５とを足したバイト数に対応するビット幅で出力されるために、上位データに対応するビット部が装置５０Ａに、下位データに対応するビット部が装置５０Ｂに夫々入力される。
【００２０】
１Ｂエラー訂正回路５７０Ａ，Ｂは装置５１からのシンドロームと必要な分のエラーバイトポジションとを用いてレジスタ５６５Ａ，Ｂからのデータの１Ｂエラー訂正を行う。レジスタ５７５Ａ，Ｂは１Ｂエラー訂正後のデ−タを入力として装置５０Ａ，Ｂの外部へ夫々出力する。
【００２１】
上記図１１，１２の各装置においては、多ビットの入力データ４００，５００を上位と下位データの２つに分割し、この分割数に応じて装置４０Ａ，Ｂや５０Ａ，Ｂ等の様に、２つの同一回路構成の装置を設けて、セレクタの制御信号４２５，４３０や５４０，５４５により、チェックビット＃０，＃１生成回路、シンドローム＃０，＃１生成回路を上位、下位のデータに夫々対応可能としている。すなわち、２つの装置４０Ａ，Ｂや５０Ａ，Ｂに、上位ビット専用のチェックビット生成回路やシンドローム生成回路を夫々有する構成となっている。
【００２２】
【発明が解決しようとする課題】
従来、多ビットのデータに対するＥＣＣ制御において、この多ビットデータを複数に分割（上記の例では２つに分割）してこれ等分割データを複数装置を用いてパラレルで制御する場合、図１１，１２の様に、複数装置を同一回路で実現するためにはチェックビット生成回路及びシンドローム生成回路を、データの分割数に等しい数だけ用意しなければならない。また、全体のチェックビット（ＥＣＣ）及び全体のシンドロームを生成するために、チェックビット＃０，＃１生成回路やシンドローム＃０，＃１生成回路の様に、別々の回路を設ける必要があり、ハードウェアの増大を招来するという欠点がある。
【００２３】
本発明の目的は、多ビットデータを複数に分割してＥＣＣ制御を行う場合に、同一構成の装置を分割数に応じて用意する場合にも、この同一構成の装置そのものの回路規模の縮小化を図ったチェックビット生成回路及びエラー訂正回路並びにそれ等を使用したＥＣＣ制御回路を提供することである。
【００２４】
【課題を解決するための手段】
本発明によれば、多ビットデータのチェックビットを生成するチェックビット生成回路であって、前記多ビットデータの複数ブロックに分割された１つのブロックを入力とし、この入力ブロックのデータのバイト順を、制御信号に応じてそのまま、または逆順として択一的に導出する第一のセレクタと、このセレクタの選択出力に対して、同伴行列表現にて対称性を有するパリティ検査行列を使用してチェックビットの中間データを生成する中間データ生成手段と、この中間データと外部から供給された他ブロックの前記中間データとから全体のチェックビットを生成する手段と、前記制御信号に応じてこの全体のチェックビットのバイト順をそのまま、または入れ替えて択一的に導出する第二のセレクタとを含み、自ブロックのデータと前記第二のセレクタの選択出力を外部へ導出するようにしたことを特徴とするチェックビット生成回路が得られる。
【００２５】
また、本発明によれば、多ビットデータに対して、同伴行列表現にて対称性を有するパリティ検査行列を使用して生成されたチェックビットによって前記データのエラー訂正をなすエラー訂正回路であって、前記多ビットデータの複数ブロックに分割された１つのブロックを入力とし、この入力ブロックのデータのバイト順を、制御信号に応じてそのまま、または逆順として択一的に導出する第一のセレクタと、前記チェックビットまたは０クランプ信号を入力とし、前記制御信号に応じてバイト順を入れ替えて導出する第二のセレクタと、前記第一及び第二のセレクタの出力に基きエラーシンドローム中間データを生成する中間データ生成手段と、この中間データと外部から供給された他ブロックの前記中間データとから全体のエラーシンドロームを生成する手段と、前記制御信号に応じて前記全体のエラーシンドロームのバイト順をそのまま、または入れ替えて択一的に導出する第三のセレクタと、この第三のセレクタの出力に基きエラーバイトポジションを生成する手段と、このエラーバイトポジションに基き入力ブロックデータのエラー訂正をなす手段とを含むことを特徴とするエラー訂正回路が得られる。
【００２６】
更に、本発明によれば、上記のチェックビット生成回路と、このチェックビット生成回路からの出力データとチェックビットとを入力とする上記のエラー訂正回路とを含むことを特徴とするＥＣＣ制御回路が得られる。
【００２７】
本発明の作用を述べる。本発明では、ＥＣＣの生成において、同伴行列表現としたときに対称性を有する行列式で表されるＳ８ＥＣ−Ｄ８ＥＤ（Single 8 bit Error Correcting-Double 8 bit Error Correcting ）のパリティ検査行列を使用するものであり、このパリティ検査行列は単一の８ビット（１バイト）訂正、２つの８ビット（２バイト）検出の機能を有する。
【００２８】
入力多ビットデータを複数ブロックに分割し各ブロックに対してこのＳ８ＥＣ−Ｄ８ＥＤ検査行列を用いて中間ＥＣＣを生成し、その後各ブロックの中間ＥＣＣを交換して合成することで、全体のＥＣＣを生成する。また、各ブロックのデータ及び全体のＥＣＣに対して、各ブロック毎に中間シンドロームを生成し、その後各ブロックの中間シンドロームを交換し合成することにより、全体のシンドロームを生成する。
【００２９】
【発明の実施の形態】
本発明の実施の形態について図面を参照して詳細に説明する。
【００３０】
図１は本発明の構成を示すブロック図である。チェックビット生成回路１０Ａ，Ｂは信号線１０２，１０３から夫々受信したデータと、同時双方向信号線１０４から対向するチェックビット生成回路１０Ｂ，Ａが夫々生成した中間チェックビットとを受信し、本物のチェックビット（以下ＥＣＣと呼ぶ）を生成する回路である。
【００３１】
１Ｂエラー訂正回路１１Ａ，Ｂは伝送路１０７からのデータと０クランプ信号１１０からのデータ、もしくは信号線１０８，１０９によりエラーシンドロームの中間データを夫々生成し、また同時双方向信号線１１１から対向する１Ｂエラー訂正回路１１Ｂ，Ａが夫々生成した中間データを受信し、本物のエラーシンドローム及びエラーバイトポジシヨンを生成して、伝送路１０７，１０８から受信したデータの１Ｂエラ一訂正を行う回路である。
【００３２】
データ１０１はαバイト幅のデータである。信号線１０２はデータ１０１の上位半分（α／２バイト）を伝送する信号線である。信号線１０３はデータ１０１の下位半分（α／２バイト）を伝送する信号線である。同時双方向信号線１０４はチェックビット生成回路１０Ａ，Ｂが夫々生成するチェックビットの中間データを同時に双方向でデータをやり取りする信号線である。
【００３３】
伝送路１０７はチェックビット生成回路１０Ａが信号線１０２から受け取ったデータを転送する信号線である。伝送路１０８はチェックビツト生成回路１０Ｂが信号線１０３から受け取ったデータを転送する信号線である。伝送路１０９はチェックビット生成回路１０Ｂが生成したＥＣＣを転送する信号線である。
【００３４】
０クランプ信号１１０は３バイト分の０データである。同時双方向信号１１１は１Ｂエラー訂正回路１１Ａ，Ｂが夫々生成するエラーシンドロームの中間データを同時に双方向でやり取りする信号線である。信号線１１４は１Ｂエラー訂正回路１１Ａが出力する１Ｂエラー訂正後のデータを伝送する信号線である。信号線１１５は１Ｂ工ラー訂正回路１１Ｂが出力する１Ｂエラー訂正後のデータを伝送する信号線である。データ１１６は１Ｂエラー訂正後のαバイト幅のデータである。
【００３５】
図２は図１のチェックビット生成回路１０Ａ，１０Ｂの具体例を示す回路図であり、図１と同等部分は同一符号にて示している。チェックビット生成回路１０Ａは対向するチェックビット生成回路１０Ｂとチェックビットの中間データをやり取りすることで、データ１０１を制御する回路である。このデータ１０１は上述した様にαバイト幅のデータである。信号１０２はデータ１０１の上位半分（α／２バイト）であり、信号１０３はデータ１０１の下位半分（α／２バイト）である。
【００３６】
制御信号２１５はチェックビット生成回路１０Ａに対応する制御信号であり、本例では“０”を使用するものとし、また制御信号２２０はチェックビット生成回路１０Ｂに対応する制御信号であり、本例では“１”を使用するものとする。
【００３７】
セレクタ２３５Ａ，Ｂは、制御信号２１５，２２０が“０”ならば信号線１０２，１０３からのデータを夫々受け取ったバイト順で出力し、“１”ならば信号線１０２，１０３からのデータを受け取った逆のバイト順で出力するセレクタである。
【００３８】
チェックビット中間データ生成部２４０Ａ，Ｂは、セレクタ２３５Ａ，Ｂが出力するデータからチェックビットの中間データを生成する回路である。同時双方向バッファ２４５Ａ，Ｂはチェックビット中間データ生成部２４０Ａ，Ｂが夫々生成したチェックビットの中間データを対向する回路相手に同時に双方向でやり取りするバッファである。
【００３９】
チェックビット生成部２５５Ａ，Ｂは、チェックビット中間データ生成部２４０Ａ，Ｂが生成したチェックビットの中間データと、同時双方向バッファ２４５Ａ，Ｂから夫々受信したチェックビットの中間データを入力とし、ＥＣＣを生成する回路である。
【００４０】
セレクタ２６０Ａ，Ｂは、制御信号２１５，２２０が“０”ならばチェックビット生成部２５５Ａ，Ｂからのデータを受け取ったバイト順で出力し、“１”ならばチェックビット生成部２５５Ａ，Ｂから受け取つたデータのバイ卜Ｂ１とバイトＢ２とを夫々入れ替えて出力するセレクタである。
【００４１】
レジスタ２６５Ａ，Ｂは信号１０２，１０３のデータを夫々入力としチェックビット生成部１０Ａ，Ｂの外部に夫々出力するレジスタである。レジスタ２７０Ａ，Ｂはセレクタ２６０Ａ，Ｂからのデータを入力としチェックビット生成回路１０Ａ，Ｂの外部に夫々出力するレジスタである。
【００４２】
図３は図１の１Ｂエラー訂正回路１１Ａ，Ｂの具体例を示す回路図であり、図１，２と同等部分は同一符号にて示す。１Ｂエラー訂正回路１１Ａ，Ｂの各々は対向する１Ｂエラー訂正回路１１Ｂ，Ａとエラーシンドロームの中間データをやり取りすることで、データ３００及びＥＣＣ３０５のデータを制御する回路である。
【００４３】
データ３００はαバイト幅のデータであり、ＥＣＣ３０５は３バイト幅のデータである。信号線１０７はデータ３００の上位半分（α／２バイト）を伝送する信号線である。０クランプ信号１１０は３バイト分の０データである。信号線１０８はデータ３００の下位半分（α／２バイト）を伝送する信号線である。信号線１０９はＥＣＣ３０５のデータを伝送する信号線である。
【００４４】
制御信号３３０は１Ｂエラー訂正回路１１Ａに対応する信号であり、本例では“０”を使用するものとし、また制御信号３３５は１Ｂエラー訂正回路１１Ｂに対応する信号であり、本例では“１”を使用するものとする。
【００４５】
セレクタ３５０Ａ，Ｂは制御信号３３０，３３５が“０”ならば信号１０７，１０８の各データを受け取ったバイト順で夫々出力し、“１”ならば信号線１０７，１０８からの各データを受け取った逆のバイト順で夫々出力するセレクタである。セレクタ３５５Ａ，Ｂは、制御信号３３０，３３５が“０”ならば信号１１０，１０９のデータを受け取つたバイト順で出力し、“１”ならば信号１１０，１０９のデータのバイトＢ１とＢ２とを夫々入れ替えて出力するセレクタである。
【００４６】
エラーシンドローム中間データ生成部３６０Ａ，Ｂはセレクタ３５０Ａ，Ｂとセレクタ３５５Ａ，Ｂとの各出力データからエラーシンドロームの中間データを夫々生成する回路である。同時双方向バッファ３６５Ａ，Ｂは、１Ｂエラー訂正回路１１Ａ，Ｂが生成したエラーシンドロームの中間データを対向する１Ｂエラー訂正回路１１Ｂ，Ａに夫々同時に双方向でやり取りするバッファである。同時双方向信号線３７０は１Ｂエラー訂正回路１１Ａ，１１Ｂの同時双方向バッファ３６５Ａ，Ｂを結ぶ信号線である。
【００４７】
エラーシンドローム生成部３７５Ａ，Ｂは、エラーシンドローム中間データ生成部３６０Ａ，Ｂが夫々生成したエラーシンドロ−ムの中間データと、同時双方向バッファ３６５Ａ，Ｂから夫々受信した対向する１Ｂエラー訂正回路１１Ｂ，１１Ａからのエラーシンドロームの中間データを入力とし、本物のエラーシンドロームを生成する回路である。
【００４８】
セレクタ３８０Ａ，Ｂは、制御信号３３０，３３５が“０”ならばエラーシンドローム生成部３７５Ａ，Ｂからのデータを夫々受け取ったバイト順で出力し、“１”ならばエラーシンドローム生成部３７５Ａ，Ｂから夫々受け取ったデータのバイトＢ１とＢ２とを夫々入れ替えて出力するセレクタである。
【００４９】
エラーバイトポジション３８５Ａ，Ｂはセレクタ３８０Ａ，Ｂからのデータを夫々入力として、エラーバイトポジシヨンを生成する回路である。セレクタ３８６Ａ，Ｂは、制御信号３３０，３３５が“０”ならばエラーバイトポジシヨン生成部３８５Ａ，Ｂで生成したエラーバイトポジションの上位αバイト分に対応するαビットを夫々出力し、“１”ならばエラーバイトポジシヨン生成部３８５Ａ，Ｂで生成したエラーバイトポジションの下位αバイト分に対応するαビットを夫々出力するセレクタである。
【００５０】
１Ｂエラー訂正部３８７Ａ，Ｂはセレクタ３８０Ａ，Ｂとセレクタ３８６Ａ，Ｂのデータを夫々入力として、信号１０７，１０８のデータの１Ｂエラー訂正を夫々行う回路である。レジスタ３８８Ａ，Ｂは１Ｂエラー訂正部３８７Ａ，Ｂからのデータを夫々入力するレジスタである。
【００５１】
次に、図１の動作について説明する。まず、転送すべきαバイト幅のデータを２分割し、これ等各ブロックデータをチェックビット生成回路１０Ａ，Ｂに入力する。チェックビット生成回路１０Ａ，Ｂは同時双方向信号１０４によりお互いで生成したチェックビットの中間データをやり取りし、ＥＣＣを生成する。ＥＣＣはチェックビット生成回路１０Ａ，Ｂで生成されるので、どちらのチェックビットを使用しても構わないが、本例ではチェックビット生成回路１０Ａが生成したチェックビットを使用した。
【００５２】
生成したチェックビット及び転送データを伝送路１０７，１０８及び１０９を用いて夫々伝送する。１Ｂエラー訂正回路１１Ａに伝送路１０７からの上位データ及び０クランプ信号１１０を入力せしめ、１Ｂエラー訂正回路１１Ｂには伝送路１０８からの下位データ及び伝送路１０９からのＥＣＣデータを入力せしめる。１Ｂエラー訂正回路１１Ａ，Ｂは同時双方向信号線１１１によりお互いで生成したエラーシンドロームの中間データをやり取りし、本物のエラーシンドローム及びエラーバイトポジションを生成し、本物のエラーシンドローム及びエラーバイトポジションを元に１Ｂエラー訂正を行う。
【００５３】
１Ｂエラー訂正が行われたデータは、上位データが信号線１１４で、下位データが信号線１１５で夫々出力され、上位データ及び下位データをまとめてαバイト幅のデータに戻される。
【００５４】
次に、図２の動作について説明する。チェックビット生成回路１０Ａにおいて、信号１０２としてデータ１００の上位データ（α／2)を受け取る。セレクタ２３５Ａは制御信号２１５により信号１０２として受け取つたままのバイト順で出力する。チェックビット中間データ生成部２４０Ａは、セレクタ２３５Ａの出力データを元にチェックビットの中間データを生成する。
【００５５】
チェックビット生成部２５５Ａは同時双方向バッファ２４５Ａ及び同時双方向信号線２５０を使用して受信した対向チェックビット生成回路１０Ｂで生成されたチェックビットの中間データと自回路１０Ａで生成されたチェックビットの中間データとを入力としてＥＣＣを生成する。
【００５６】
セレクタ２６０Ａは制御信号２１５によりチェックビット生成部路２５５Ａが生成したバイト順で出力する。レジスタ２６５Ａは信号１０２のデータを入力として自回路１０Ａの外部へ出力する。レジスタ２７０Ａはセレクタ２６０Ａからのデータを入力として自回路１０Ａの外部へ出力する。
【００５７】
チェックビット生成回路１０Ｂにおいて、信号１０３としてデータ１０１の下位データ（α／2)を受け取る。セレクタ２３５Ｂは制御信号２２０により信号１０３として受け取ったデータの逆バイト順で出力する。チェックビット中間データ生成部２４０Ｂはセレクタ２３５Ｂの出力データを元にチェックビットの中間データを生成する。
【００５８】
チェックビット生成部２５５Ｂは同時双方向バッファ２４５Ｂ及び同時双方向信号線２５０を使用して受信した対向チェックビット生成回路１０Ａで生成されたチェックビットの中間データと、自回路１０Ｂで生成されたチェックビットの中間データを入力してＥＣＣを生成する。
【００５９】
セレクタ２６０Ｂは制御信号２２０によりチェックビット生成部２５５Ｂが生成したデータのバイトＢ１とＢ２とを入れ替えて出力する。レジスタ２６５Ｂは信号１０３のデータを入力として自回路１０Ｂの外部へ出力する。レジスタ２７０Ｂはセレクタ２６０Ｂからのデータを入力とし、自回路１０Ｂの外部へ出力する。
【００６０】
次に、図３の動作について説明する。１Ｂエラー訂正回路１１Ａの動作において、信号１０７はデータ３００の上位データ（α／2)である。信号１１０は０クランプ信号である。セレクタ３５０Ａは制御信号３３０により信号１０７で受け取つたままのバイト順で出力する。セレクタ３５５Ａは制御信号３３０により信号１１０で受け取ったままのバイト順で出力する。
【００６１】
エラーシンドローム中間データ生成部３６０Ａはセレクタ３５０Ａ及び３５５Ａの出力データを元にエラーシンドロームの中間データを生成する。エラーシンドローム生成部３７５Ａは同時双方向バッファ３６５Ａ及び同時双方向信号線３７０を使用して受信した対向１Ｂエラー訂正回路１１Ｂで生成されたエラーシンドロームの中間データと自回路１１Ａで生成されたエラーシンドロームの中間データとを入力として、本物のエラーシンドロームを生成する。
【００６２】
セレクタ３８０Ａは制御信号３３０によりエラーシンドローム生成部３７５Ａが生成したバイト順で出力する。エラーバイトポジション生成部３８５Ａはセレクタ３８０Ａが出力したデータを元にエラーバイトポジションを生成する。セレクタ３８６Ａは制御信号３３０により自回路１１Ａが制御すべきバイトに対応するエラーバイトポジション情報を選択する。１Ｂエラー訂正部３８７Ａはセレクタ３８０Ａ及び３８６Ａの出力データを元に信号１０７から受け取ったデータの１Ｂエラー訂正を行う。レジスタ３８８Ａは１Ｂエラ一訂正後のデータを受け取り自回路１１Ａの外部へ出力する。
【００６３】
１Ｂエラー訂正回路１１Ｂの動作において、信号１０８はデータ３００の下位データ（α／2)である。信号１０９はＥＣＣ３０５である。セレクタ３５０Ｂは制御信号３３５により信号１０８で受け取った逆のバイト順で出力する。セレクタ３５５Ｂは制御信号３３５により信号１０９で受け取ったデータのバイトＢ１とＢ２とを入れ替えて出力する。エラーシンドロ一ム中間データ生成部３６０Ｂはセレクタ３５０Ｂ及び３５５Ｂの出力データを元にエラ−シンドロームの中間データを生成する。
【００６４】
エラーシンドローム生成部３７５Ｂは同時双方向バッファ３６５Ｂ及び同時双方向信号線３７０を使用して受信した対向１Ｂエラー訂正回路１１Ｂで生成されたエラーシンドロームの中間データと自回路１１Ｂで生成されたエラーシンドロームの中間データとを入力として、本物のエラーシンドロームを生成する。セレクタ３８０Ｂは制御信号３３５によりエラーシンドローム生成部３７５Ｂが生成したデータのバイトＢ１とＢ２とを入れ替えて出力する。
【００６５】
エラーバイトポジシヨン生成部３８５Ｂはセレクタ３８０Ｂが出力したデータを元にエラーバイトポジシヨンを生成する。セレクタ３８６Ｂは制御信号３３５により自回路１１Ｂが制御すべきバイトに対応するエラーバイトポジシヨン情報を選択する。１Ｂエラー訂正部３８７Ｂはセレクタ３８０Ｂ及び３８６Ｂの出力データを元に、信号１０８として受け取ったデータの１Ｂエラー訂正を行う。レジスタ３８８Ｂは１Ｂエラー訂正後のデータを受け取り自回路１１Ｂの外部へ出力する。
【００６６】
次に、データがα＝18バイトの場合を例にして実際の例につき説明する。まず、図２におけるＥＣＣの生成論理を示す。このＥＣＣの生成論理は、図４に示したＳ８ＥＣ−Ｄ８ＥＤのパリティ検査行列を使用するもので、“Single 8 bit Error Correcting-Double 8 bit Error Correcting ”と称されるパリティ検査行列である。このパリティ検査行列は単一の８ビット（１バイト）訂正、２つの８ビット（２バイト）検出の機能を有する。このパリティ検査行列は同伴行列表現としたときに、図５に示す様に、対称性を有する行列式で表される。
【００６７】
このパリティ検査行列のデータ部Ｂ00〜Ｂ17の水平方向の要素のうち“１”が立っているビットを排他的論理和をすることで生成する。しかし、本発明では上位データと下位データを２分割して処理するため、チェックビット生成回路１０Ａ，Ｂにて生成するチェックビットの中間データをそれぞれ交換し、各々の対応ビット同士で排他的論理和をすることで１８バイトに対するＥＣＣを生成する。
【００６８】
図６，７はこのＥＣＣの例を示す図であり、丸印の“＋”は排他的論理和を示し、ｐ00〜ｐ27はチェックビットを示し、ｄ000 〜ｄ071 は１８バイトの上位／下位９バイトを示す。
【００６９】
次に、図３におけるエラーシンドロームの生成論理を示す。エラーシンドロームの生成論理はパリティ検査行列のデータ部及びＥＣＣ部の水平方向の要素のうち“１”が立っているビットを排他的論理和をすることで生成する。しかし、本例では、上位データと下位データとを２分割して処理するために、１Ｂエラー訂正回路１１Ａ，Ｂにて生成するエラーシンドロームの中間データを夫々交換し、各々の対応ビット同士で排他的論理和をすることで、データ１８バイト及びＥＣＣ３バイトの合計２１バイトに対するエラーシンドロームを生成する。
【００７０】
図８，９はこのシンドロームの例を示す図であり、ｓ00〜ｓ27はチェックビット、ｄ000 〜ｄ071 は１８バイトの上位／下位９バイト、ｅ00〜ｅ23は１Ｂエラー訂正回路１１Ａでは０クランプの３バイト，１Ｂエラー訂正回路１１ＢではＥＣＣ３０５（図３参照）のＥＣＣデータを夫々示す。
【００７１】
エラーバイトポジションの生成論理はエラーシンドロームのｓ0 ／ｓ1 ／ｓ2 の各要素と図５の下部に示す同伴行列の各要素とを使用して、図１０の論理により生成する。エラーバイトポジションは２１ビットあり、ビットｎは２１バイト中のバイトｎのエラー位置を示す。
【００７２】
１Ｂエラー訂正論理は、エラーバイトポジションが示すバイトとエラーシンドロームのｓ0 要因を排他的論理和することで１Ｂエラー訂正を行う。本例では、データを２分割して制御しているので、１Ｂエラー訂正回路１１Ａではエラーバイトポジションの上位ビット０からビット８の９ビットを、１Ｂエラー訂正回路１１Ｂではエラーバイトポジションの上位ビット９からビット１７の９ビットを、夫々使用する。
【００７３】
ここで、図２のチェックビット中間データ生成部２４０Ｂにおいて、セレクタ２３５Ｂにより逆バイト順としてチェックビット中間データを生成する理由を述べる。本発明では、上述した様に、ＥＣＣ生成のために図４，５に示した対称性を有する検査行列を使用しており、図５に同伴行列表現で見た場合、ｓ1 とｓ2 とで入れ替ってはいるものの、Ｂ00〜Ｂ08とＢ09〜Ｂ17の同伴行列が対称になっていることが分かる。
【００７４】
そこで、図２において、Ｂ00〜Ｂ08の部分を回路１０Ａで制御し、Ｂ09〜Ｂ17とＢ18〜Ｂ20を回路１０Ｂで制御している。回路１０Ａ，１０Ｂのチェックビット中間データ生成部２４０Ａ，Ｂは共に同一構成として、上位及び下位データの処理回路を兼用可能とする目的から、チェックビット中間データ生成部２４０Ａ，Ｂ共にＢ00〜Ｂ08の同伴行列の計算を行う構成となっている。この回路をＢ09〜Ｂ17の同伴行列の計算に流用するために、チェックビット中間データ生成部２４０Ｂでは、Ｂ09〜Ｂ17に対応する同伴行列用の回路を使用するのではなく、入力されたデータのバイト順を逆に並べ変えることにより、結果としてＢ00〜Ｂ08の同伴行列の計算をなす回路で、Ｂ09〜Ｂ17の同伴行列計算を行うようにしているのである。
【００７５】
次に、図２のセレクタ２６０ＢにてＢ1 とＢ2 とを入れ替えている理由を述べる。図５の同伴行列では、先に述べた様に、Ｂ00〜Ｂ08とＢ09〜Ｂ17の同伴行列が対称になっているが、実際には、ｓ1 とｓ2 との箇所が入れ替った状態で対称になっている。Ｂ1 とＢ2 とを入れ替えは、このｓ1 とｓ2 との箇所が入れ替っていることに対応しており、この入れ替え操作も、上述したと同様に、ｓ1 とｓ2 とを入れ替えたパリティ検査行列に対応する回路を個別に用意するよりは、データのＢ1 とＢ2 とを入れ替えを行った方が、上位と下位データに関して同一回路構成を使用できるという効果があるからである。図３の回路におけるバイト順の並べ変えも同様な理由によるものである。
【００７６】
【発明の効果】
以上述べた様に、本発明によれば、多ビットデータのＥＣＣ制御方式において、当該データを複数に分割してこれ等複数ブロック毎にＥＣＣを生成する場合に、複数ブロックに対応するＥＣＣ回路を、外部制御信号のみによって上位ビットブロックと下位ビットブロックとに対して適応可能として、全く同一構成とすることができかつ回路規模をも縮小可能となるという効果がある。
【図面の簡単な説明】
【図１】本発明の実施例のシステム構成を示す図である。
【図２】本発明の実施例のチェックビット生成回路の例を示す図である。
【図３】本発明の実施例の１Ｂエラー訂正回路の例を示す図である。
【図４】本発明の実施例に使用されるパリティ検査行列の例を示す図である。
【図５】図４のパリティ検査行列の例を同伴行列表現した場合の図である。
【図６】パリティチェック用データ例の一部を示す図である。
【図７】パリティチェック用データ例の一部を示す図である。
【図８】シンドローム例の一部を示す図である。
【図９】シンドローム例の一部を示す図である。
【図１０】エラーポジションの検出論理を示す図である。
【図１１】従来のチェックビット生成回路の例を示す図である。
【図１２】従来の１Ｂエラー訂正回路の例を示す図である。
【符号の説明】
１０Ａ，Ｂ  チェックビット生成回路
１１Ａ，Ｂ  １Ｂエラー訂正回路
２３５Ａ，Ｂ
２６０Ａ，Ｂ
３５５Ａ，Ｂ
３８０Ａ，Ｂ
３８６Ａ，Ｂ  セレクタ
２４０Ａ，Ｂ  チェックビット中間データ生成部
２４５Ａ，Ｂ
３６５Ａ，Ｂ  双方向バッファ
２５５Ａ，Ｂ  チェックビット生成部
３６０Ａ，Ｂ  シンドローム中間データ生成部
３７５Ａ，Ｂ  シンドローム生成部
３８５Ａ，Ｂ  エラーバイトポジション生成部
３６７Ａ，Ｂ  １Ｂエラー訂正部
【図１】
0003678574.tif 000002
【図２】
0003678574.tif 000003
【図３】
0003678574.tif 000004
【図４】
0003678574.tif 000005
【図５】
0003678574.tif 000006
【図６】
0003678574.tif 000007
【図７】
0003678574.tif 000008
【図８】
0003678574.tif 000009
【図９】
0003678574.tif 000010
【図１０】
0003678574.tif 000011
【図１１】
0003678574.tif 000012
【図１２】
0003678574.tif 000013