(57)【特許請求の範囲】
【請求項１】
高速シリアルデータ通信に利用されるデータ処理装置において、
高速シリアルデータを受信し、所定データ幅のパラレルデータに変換するデータ変換部と、
前記データ変換部によって変換されたパラレルデータから透過データに関する情報を検出する透過データ情報検出部と、
前記透過データに関する情報に基づいて、前記透過データが変換されることにより減少する所定データ幅内の有効バイト数を演算する有効バイト数演算部と、
前記透過データに関する情報および前記有効バイト数に基づいて、前記パラレルデータ中の透過データを変換し、後段のパラレルデータから所定データを移動させて、所定データ幅のパラレルデータに配列する透過データ変換部と、
前記有効バイト数に基づいて、透過データ変換部により配列された所定データ幅のパラレルデータが再配列されるアドレスを指定するアドレス制御部と、
前記透過データ変換部において配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅でパラレルデータを再配列するデータ配列部と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記透過データ情報検出部は、
前記データ変換部から入力されたパラレルデータを記憶する記憶部を備え、記憶されたパラレルデータの最後部アドレスのデータと、入力される後続のパラレルデータの先頭アドレスについて、透過データに関する情報を検出することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記透過データ情報検出部は、
前記データ変換部によって変換されるパラレルデータに含まれる透過データの位置および数を検出する透過データ検出部と、
前記透過データ検出部によって検出された透過データの位置および数を前記透過データに関する情報として前記有効バイト数演算部に送信する透過データ情報送信部と、
を備えることを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記透過データ変換部は、
前記透過データ情報検出部に検出された透過データに関する情報に基づいて、前記パラレルデータ中の透過データをオリジナルデータに変換する透過処理部と、
前記有効バイト数演算部により演算された有効バイト数に基づいて、透過データが変換されたパラレルデータに後段のデータから所定データを移動させるデータ移動部と、
を複数備えることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記データ配列部は、
前記透過データ変換部において配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅で再配列させたパラレルデータを、所定データ幅配列される毎に読み出しを行うデータ読み出し部と、
前記データ読み出し部が、前記所定データ幅の読み出しを行うために、前記有効バイト数および前記アドレスに基づいて、パラレルデータの読み出しタイミングを制御する読み出しタイミング制御部と、
をさらに備えることを特徴とする請求項１記載のデータ処理装置。
【請求項６】
高速シリアル通信に係るデータのデータ処理方法であって、
高速シリアルデータを受信し、所定データ幅のパラレルデータに変換する第１の工程と、
前記変換されたパラレルデータから透過データに関する情報を検出する第２の工程と、
前記透過データに関する情報に基づいて、前記透過データが変換されることにより減少する前記所定データ幅内の有効バイト数を演算する第３の工程と、
前記透過データに関する情報および前記有効バイト数に基づいて、前記パラレルデータ中の透過データを変換し、後段のパラレルデータから所定のデータを移動させて、所定のデータ幅のパラレルデータに配列する第４の工程と、
前記有効バイト数に基づいて、前記配列された所定のデータ幅のパラレルデータが再配列されるアドレスを指定する第５の工程と、
前記配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて所定のアドレスに所定データ幅でパラレルデータを再配列する第６の工程と、
を含むことを特徴とするデータ処理方法。
【請求項７】
前記第２の工程は、
前記入力されたパラレルデータを記憶する工程を含み、記憶されたパラレルデータの最後部アドレスのデータと、後続のパラレルデータの先頭アドレスについて、透過データに関する情報を検出することを特徴とする請求項６記載のデータ処理方法。
【請求項８】
前記第２の工程は、
前記変換されたパラレルデータに含まれる透過データの位置および数を検出する工程と、
前記検出された透過データの位置および数を前記透過データに関する情報として送信する工程と、
を含むことを特徴とする請求項６記載のデータ処理方法。
【請求項９】
前記第４の工程は、
前記検出された透過データに関する情報に基づいて、前記パラレルデータ中の透過データをオリジナルデータに変換する工程と、
前記有効バイト数に基づいて、透過データが変換されたパラレルデータに後段のデータから所定のデータを移動させる工程と、
を複数含むことを特徴とする請求項６記載のデータ処理方法。
【請求項１０】
前記第６の工程は、
前記配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅で再配列させたパラレルデータを、所定データ幅配列される毎に読み出しを行う工程と、
前記所定データ幅の読み出しを行うために、前記有効バイト数および前記アドレスに基づいて、パラレルデータの読み出しタイミングを制御する工程と、
をさらに含むことを特徴とする請求項６記載のデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速シリアル通信に利用されるデータ処理装置およびデータ処理方法に関する。
【０００２】
【従来の技術】
高速なデータ通信を実現する光伝送網の世界標準のひとつにＳＤＨ（Synchronous Digital Hierarchy）がある、このＳＤＨは、データ多重化の単位としてＳＴＭ（Synchronous Transfer Module）と呼ばれる同期転送モードを定めており、その基本となるＳＴＭ−１（Synchronous Transfer Module Level One）のビットレートは１５５．５２Ｍｂ／ｓである。
【０００３】
このＳＴＭ−１のフレーム構成は、９行×２７０列の２次元のバイト配列から構成されており、先頭の９行×９列をセクションオーバーヘッド（以下、「ＳＯＨ」と呼ぶ。）と呼び、これに続く９行×２６１列をペイロードと呼ぶ。ＳＯＨとは、ペイロードに付加されるフレーム同期信号や保守情報等を有する管理部であり、ペイロードには、多重化された実データが収容される。
【０００４】
ＳＴＭにおいて、１フレームは１２５マイクロ秒で送信されるため、１行×１列に係るデータを何バイトにするかによって、ビットレートが異なる。例えば、ＳＴＭ−１においては、１行×１列のデータは１バイトのデータであるため、９行×２７０バイト×（１／１２５マイクロ秒）＝１５５．５２より、ビットレートは１５５．５２Ｍｂｐｓとなる。ＳＤＨでは、１行×１列のデータを４バイトとしてＳＴＭ−１の４倍のビットレートを持つＳＴＭ−４や、１６バイトとして１６倍のビットレートを持つＳＴＭ−１６等の標準化がされている。
【０００５】
また、ＳＴＭでは、１フレームをさらに複数のタイムスロット（チャネル）に分割する。そして、各タイムスロットにオリジナルデータ（送受信されるユーザデータ等）を格納することによって複数のデータを多重化する。これらの多重化されたデータは、ＳＤＨ伝送網を介し、シリアルデータとして伝送される。
【０００６】
ＳＤＨ伝送網を介して伝送されるデータには、ＳＴＭにおいてデータ区切り等を示すために所定のデータ（アイドルデータ）が挿入される。そして、アイドルデータと同一コードを有するオリジナルデータをアイドルデータと区別するために、所定のデータ変換が行われる。したがって、受信側においては、送信側で変換されたデータを復元するための透過処理を行う必要がある。
【０００７】
透過処理とは、ＳＤＨ伝送網の受信側において、逐次、受信シリアルデータを８ビット毎にパラレル変換し、送信側でデータ変換された所定のデータ（透過データ）をオリジナルデータに変換（復元）する処理である。
【０００８】
図１２は従来の透過処理を示す概略図である。
図１２において、受信されたシリアルデータは、データ処理装置１００の透過データ検出部１１０に入力される。そして、透過データ検出部１１０は、受信データ中の透過データに関する情報（透過データの位置等）を検出して、透過データ変換部１２０に受信データおよび検出情報を送信する。透過データ変換部１２０は、受信した検出情報に基づいて、受信データの透過データを所定のオリジナルデータに変換する。
【０００９】
透過処理が実行されると、透過データがオリジナルデータに変換される際に、検出された透過データの後半バイトが抜き取られ、透過データ数分の空きバイトデータが生成される。そこで、データ列に対応して、透過データ変換後の１ブロック（パラレルデータブロック）中のデータ数（有効バイト数）を演算して、データの再配列を行う必要がある。
【００１０】
具体的には、ＳＴＭ−１６で透過処理が行れる場合、透過データ検出部において、データが４バイト単位でパラレルに入力されると、透過データが検出され、透過データ抜き取り部において透過データが抜き取られる。そして、４バイト毎に、抜き取られた透過データ数分のデータが前に詰められ、データ列に対して有効バイト数が演算される。透過データ抜き取り部では、この透過データ抜き取り後データおよび有効バイト数情報を透過データ再配列部に出力する。
【００１１】
そして、透過データ配列部において、透過データ抜き取り後データおよび有効バイト数情報から、空きバイトデータ部分がさらに前詰めされ、パラレルデータの再構築が行われる。詰める度に空き列が発生するので、透過データ抜き取り後データから、フリップフロップ（Ｆ／Ｆ）によってシフトさせたデータを生成しておき、足りないデータをこのデータから抽出する。４バイト単位で処理が行われる場合は、４バイト中有効なデータを生成するために、フリップフロップ（Ｆ／Ｆ）において３つのシフトさせたデータを生成し、そこからセレクト信号でデータの抽出を行っている。
【００１２】
一方、近年、通信データの大容量化に伴い、ＳＴＭ−６４に基づく高速データ通信の利用が高まっている。ＳＴＭ−６４の様な高速のデータでは、１０ＧＨｚで駆動可能なデバイスが必要となるが、現在ではそのようなデバイスは存在しない。そこで、既存のＦＰＧＡ（フィード・プログラマブル・ゲートアレー）での実現を考慮し、７８ＭＨｚ１６バイトパラレルデータにて処理を実行する。
【００１３】
【発明が解決しようとする課題】
しかしながら、透過データ抜き取り部におけるデータの前詰めは、１６バイトパラレルデータによって行われるので、４バイトパラレルデータと同じ処理を行うと、ＦＰＧＡ内において７８ＭＨｚでは処理できないという問題があった。
【００１４】
また、透過データ配列部においても、パラレルデータの再配列を行う場合、１６バイト中有効なデータを生成するためには、Ｆ／Ｆにおいて１５個のデータを生成し、そこからセレクト信号でデータを抽出する必要があり、回路規模が大きくなり、また、出力するセレクト信号も複雑になるという問題点があった。
【００１５】
本発明の課題は、ＳＴＭ等に基づく高速シリアルデータの透過処理を容易に実現することである。
【００１６】
【課題を解決するための手段】
請求項１記載の発明は、
高速シリアルデータ通信に利用されるデータ処理装置において、
高速シリアルデータを受信し、所定データ幅のパラレルデータに変換するデータ変換部（例えば、データ処理装置１の入力端に設けられた不図示のＩ／Ｆ）と、
前記データ変換部によって変換されたパラレルデータから透過データに関する情報を検出する透過データ情報検出部（例えば、図１に示される透過データ検出部１０）と、
前記透過データに関する情報に基づいて、前記透過データが変換されることにより減少する所定データ幅内の有効バイト数を演算する有効バイト数演算部（例えば、図２に示される加算器２０２、図７に示される加算器３０２）と、
前記透過データに関する情報および前記有効バイト数に基づいて、前記パラレルデータ中の透過データを変換し、後段のパラレルデータから所定データを移動させて、所定データ幅のパラレルデータに配列する透過データ変換部（例えば、図１に示される透過データ抜き取り部２０）と、
前記有効バイト数に基づいて、透過データ変換部により配列された所定データ幅のパラレルデータが再配列されるアドレスを指定するアドレス制御部（例えば、図７に示されるポインタ３０４）と、
前記透過データ変換部において配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅でパラレルデータを再配列するデータ配列部（例えば、図１に示される透過データ配列部３０）と、
を備えることを特徴としている。
【００１７】
この請求項１記載の発明によれば、
高速シリアルデータ通信に利用されるデータ処理装置において、データ変換部は、高速シリアルデータを受信し、所定データ幅のパラレルデータに変換し、透過データ情報検出部は、データ変換部によって変換されたパラレルデータから透過データに関する情報を検出し、有効バイト数演算部は、透過データに関する情報に基づいて、透過データが変換されることにより減少する所定データ幅内の有効バイト数を演算し、透過データ変換部は、透過データに関する情報および有効バイト数に基づいて、パラレルデータ中の透過データを変換し、後段のパラレルデータから所定のデータを移動させて、所定のデータ幅のパラレルデータに配列し、アドレス制御部は、有効バイト数に基づいて、透過データ変換部により配列された所定データ幅のパラレルデータが再配列されるアドレスを指定し、データ配列部は、透過データ変換部において、配列されたパラレルデータを、有効バイト数およびアドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅でパラレルデータを再配列する。
【００１８】
また、請求項６記載のデータ処理方法は、
高速シリアル通信に係るデータのデータ処理方法であって、
高速シリアルデータを受信し、所定データ幅のパラレルデータに変換する第１の工程と、
前記変換されたパラレルデータから透過データに関する情報を検出する第２の工程と、
前記透過データに関する情報に基づいて、前記透過データが変換されることにより減少する前記所定データ幅内の有効バイト数を演算する第３の工程と、
前記透過データに関する情報および前記有効バイト数に基づいて、前記パラレルデータ中の透過データを変換し、後段のパラレルデータから所定のデータを移動させて、所定のデータ幅のパラレルデータに配列する第４の工程と、
前記有効バイト数に基づいて、前記配列された所定のデータ幅のパラレルデータが再配列されるアドレスを指定する第５の工程と、
前記配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて所定のアドレスに所定データ幅でパラレルデータを再配列する第６の工程と、
を含む。
【００１９】
したがって、この請求項１および請求項６記載の発明によって、受信したシリアルデータをパラレルデータに変換し、検出した透過データ情報に基づいて処理するため、比較的低速な汎用デバイスのみで容易に透過処理を実行することができる。
【００２０】
請求項２記載の発明は、
請求項１記載のデータ処理装置において、
前記透過データ情報検出部は、
前記データ変換部から入力されたパラレルデータを記憶する記憶部を備え、記憶されたパラレルデータの最後部アドレスのデータと、入力される後続のパラレルデータの先頭アドレスについて、透過データに関する情報を検出することを特徴としている。
【００２１】
この請求項２記載の発明によれば、請求項１記載のデータ処理装置において、透過データ情報検出部に備えられた記憶部は、データ変換部から入力されたパラレルデータを記憶し、記憶されたパラレルデータの最後部アドレスのデータと、入力される後続のパラレルデータの先頭アドレスについて、透過データに関する情報を検出する。
【００２２】
また、請求項７記載のデータ処理方法は、
請求項６記載のデータ処理方法において、
前記第２の工程は、
前記入力されたパラレルデータを記憶する工程を含み、記憶されたパラレルデータの最後部アドレスのデータと、後続のパラレルデータの先頭アドレスについて、透過データに関する情報を検出する。
【００２３】
したがって、請求項２および請求項７記載の発明によって、受信シリアルデータをパラレルデータに変換した際に、透過データが、２つのパラレルデータに分割されることになっても、透過データ情報を検出できるため、透過処理できる。
【００２４】
請求項３記載の発明は、
請求項１記載のデータ処理装置において、
前記透過データ情報検出部は、
前記データ変換部によって変換されるパラレルデータに含まれる透過データの位置および数を検出する透過データ検出部と、
前記透過データ検出部によって検出された透過データの位置および数を前記透過データに関する情報として前記有効バイト数演算部に送信する透過データ情報送信部と、
を備えることを特徴としている。
【００２５】
この請求項３記載の発明によれば、請求項１記載のデータ処理装置において、透過データ情報検出部に備えられた透過データ検出部は、データ変換部によって変換されるパラレルデータに含まれる透過データの位置および数を検出し、透過データ情報送信部は、透過データ検出部によって検出された透過データの位置および数を透過データに関する情報として有効バイト数演算部に送信する。
【００２６】
また、請求項８記載のデータ処理方法は、
請求項６記載のデータ処理方法において、
前記第２の工程は、
前記変換されたパラレルデータに含まれる透過データの位置および数を検出する工程と、
前記検出された透過データの位置および数を前記透過データに関する情報として送信する工程と、
を含む。
【００２７】
したがって、この請求項３および請求項８記載の発明によって、各パラレルデータについて、透過データ変換後に内部に含まれる有効なデータ数が算出されるため、各パラレルデータのデータ幅を容易に把握できる。
【００２８】
請求項４記載の発明は、
請求項１記載のデータ処理装置において、
前記透過データ変換部は、
前記透過データ情報検出部に検出された透過データに関する情報に基づいて、前記パラレルデータ中の透過データをオリジナルデータに変換する透過処理部と、
前記有効バイト数演算部により演算された有効バイト数に基づいて、透過データが変換されたパラレルデータに後段のデータから所定データを移動させるデータ移動部と、
を複数備えることを特徴としている。
【００２９】
この請求項４記載の発明によれば、請求項１記載のデータ処理装置において、透過データ変換部に備えられた複数の透過処理部は、透過データ情報検出部に検出された透過データに関する情報に基づいて、パラレルデータ中の透過データをオリジナルデータに変換し、複数のデータ移動部は、有効バイト数演算部により演算された有効バイト数に基づいて、透過データが変換されたパラレルデータに後段のデータから所定データを移動させる。
【００３０】
また、請求項９記載のデータ処理方法は、
請求項６記載のデータ処理方法において、
前記第４の工程は、
前記検出された透過データに関する情報に基づいて、前記パラレルデータ中の透過データをオリジナルデータに変換する工程と、
前記有効バイト数に基づいて、透過データが変換されたパラレルデータに後段のデータから所定のデータを移動させる工程と、
を複数含む。
【００３１】
したがって、この請求項４および請求項９記載の発明によって、所定のデータ幅で透過データを変換し、複数の段階をへて所定データ幅のパラレルデータを生成することができるので、処理データ幅の単位を小さくすることで処理速度を遅延させることなくデータが配列できる。
【００３２】
請求項５記載の発明は、
請求項１記載のデータ処理装置において、
前記データ配列部は、
前記透過データ変換部において配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅で再配列させたパラレルデータを、所定データ幅配列される毎に読み出しを行うデータ読み出し部と、
前記データ読み出し部が、前記所定データ幅の読み出しを行うために、前記有効バイト数および前記アドレスに基づいて、パラレルデータの読み出しタイミングを制御する読み出しタイミング制御部と、
をさらに備えることを特徴としている。
【００３３】
この請求項５記載の発明によれば、請求項１記載のデータ処理装置において、データ配列部に備えられたデータ読み出し部は、透過データ変換部において配列されたパラレルデータを、有効バイト数およびアドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅で再配列させたパラレルデータを、所定データ幅配列される毎に読み出しを行い、読み出しタイミング制御部は、データ読み出し部がデータの読み出しを行うために、有効バイト数およびアドレスに基づいて、パラレルデータの読み出しタイミングを制御する。
【００３４】
また、請求項１０記載のデータ処理方法は、
請求項６記載のデータ処理方法において、
前記第６の工程は、
前記配列されたパラレルデータを、前記有効バイト数および前記アドレスに基づいて、後段のパラレルデータから所定数のデータを移動させて、所定のアドレスに所定データ幅で再配列させたパラレルデータを、所定データ幅配列される毎に読み出しを行う工程と、
前記所定データ幅の読み出しを行うために、前記有効バイト数および前記アドレスに基づいて、パラレルデータの読み出しタイミングを制御する工程と、
をさらに含む。
【００３５】
したがって、単純な制御信号を使って、回路規模を大きくすることなく、比較的低速な汎用デバイスのみで容易にデータの再配列ができる。
【００３６】
【発明の実施の形態】
以下、図を参照して本発明の実施の形態を詳細に説明する。
図１〜図１１は、本発明を適用したデータ処理装置１の一実施の形態を示す図である。
【００３７】
データ処理装置１は、ＳＴＭ−６４のシリアルデータが１６バイト（１２８ビット）毎のパラレルデータに変換されて透過データ検出部１０に入力されると、透過データ検出部１０が、パラレルデータ中の透過処理の対象となるデータ（透過データ）が存在する位置を検出し、透過データ抜き取り部２０が、検出された位置に基づいて透過データを抜き取った後に各パラレルデータブロック（以下、ブロックという）内で処理データの前詰めを行う。そして、データ配列部３０が、各ブロックの空のバイトデータを順次、前段のブロックに詰めることによって、データの再配列を行う。
【００３８】
つまり、透過データ抜き取り部２０においては、透過データを抜き取った後、ブロック内においてデータの前詰めを行うので、それぞれのブロック内の末尾に空きバイトデータが存在する。そして、データ再配列部３０においては、ブロック内にある空きバイトデータをブロック間にまたがって前詰めを行うので、ブロック内のすべてにデータが詰められたブロックを生成される。
なお、透過データとは、アイドルデータと同一コードを有するオリジナルデータをアイドルデータと区別するために、送信側において所定データに変換されたデータである。
【００３９】
以上の様に、データ処理装置１は、ＳＴＭ−６４の高速シリアルデータを１６バイト毎のパラレルデータに変換して処理することで、比較的低速な汎用デバイスのみで容易に透過処理を実行することができる。
【００４０】
まず、構成を説明する。
図１は、本実施の形態におけるデータ処理装置１の内部構成を示す概略図である。図１において、データ処理装置１は、透過データ検出部１０、透過データ抜き取り部２０、透過データ配列部３０から構成される。また、データ処理装置１は、入力端に不図示のインターフェイス（Ｉ／Ｆ）を備えており、受信したシリアルデータからアイドルデータ以外のデータを抽出し、１６バイトパラレルのデータに変換した後、透過データ検出部１０に出力する。
【００４１】
透過データ検出部１０は、入力端から入力されたパラレルデータの中から、透過データを検出する。このとき、透過データ検出部１０は、パラレルデータのひとつのデータについて、隣り合う２バイトデータの中から透過データを検出すると共に、後段のデータをラッチし、前段のデータの最後部アドレスデータと後段のデータの最先アドレスデータの組合せからも透過データを検出する。
【００４２】
そして、透過データ検出部１０は、透過データの検出情報（透過データがどのブロックの何バイト目にあるか等）を、入力されたパラレルデータと共に透過データ抜き取り部２０に送信する。
【００４３】
透過データ抜き取り部２０は、透過データ検出部１０から入力された透過データの検出情報に基づいて、各ブロックの透過データをオリジナルデータに変換する。そして、透過データ抜き取り部２０は、透過データ変換後の１ブロック中のデータ数（有効バイト数）を検出する。そして、透過データ抜き取り部２０は、配列したブロックおよびブロックの有効バイト数をデータ配列部３０に出力する。
【００４４】
ここで、透過データ抜き取り部２０の構成について説明する。
図２は、透過データ抜き取り部２０の内部回路の一例を示す図である。図２に示す回路において、透過データ抜き取り部２０は、４つの４バイト処理ブロック２０１、２つのスイッチＳＷ１、２つの加算器１０２、２つのフリップフロップ（Ｆ／Ｆ）２０３、１つのスイッチＳＷ２、１つの加算器２０４、１つのフリップフロップ（Ｆ／Ｆ）２０５とから構成される。
【００４５】
透過データ抜き取り部２０は、透過データ検出部１０から入力された１６バイトパラレルデータを、４つの４バイト単位の処理ブロックに振り分けて透過処理を行う。そして、後段のスイッチＳＷ１において、有効バイト数を取得して８バイトのデータに詰め直しを行い、さらに、後段のスイッチＳＷ２において、有効バイト数を取得して１６バイトのデータに詰め直しを行う。
【００４６】
図３にスイッチＳＷ１の詳細な内部構成の図を示す。
４バイト処理ブロック２０１において、透過データが抜き取られたデータがスイッチＳＷ１に出力されると、２つの４バイト処理ブロックのうち、上段の４バイト処理ブロック２０１における有効バイト数がスイッチＳＷ１に出力される。そして、この有効バイト数に基づいて、スイッチＳＷ１の選択論理により、下段の４バイト処理ブロックから出力されるデータを移動させて前詰めを行い、８バイトのパラレルデータにブロックを配列する（図４参照）。
【００４７】
そして、スイッチＳＷ１は８バイトパラレルデータをＦ／Ｆ２０３に出力する。Ｆ／Ｆ２０３は、入力されたデータをラッチして、加算器２０２から入力される８バイトパラレルデータ中の有効バイト数と共に、所定のタイミングでこのデータをスイッチＳＷ２に出力する。
【００４８】
図５にスイッチＳＷ２の詳細な内部構成の図を示す。
スイッチＳＷ２には、２つのスイッチＳＷ１からそれぞれ８バイトパラレルデータづつ、１６バイトパラレルデータが入力される。まず、上段のスイッチＳＷ１から入力される８バイトパラレルデータおよび有効バイト数を取得して、下段のスイッチＳＷ１から同時に入力される８バイトパラレルデータから空きバイト数分のデータを移動させて前詰めを行い、１６バイトパラレルデータにブロックを配列する（図６参照）。
【００４９】
そして、スイッチＳＷ２は１６バイトパラレルデータをＦ／Ｆ２０５に出力する。Ｆ／Ｆ２０５は、入力されたデータをラッチして、加算器２０４から入力される１６バイトパラレルデータ中の有効バイト数と共に、所定のタイミングでこのデータを透過データ配列部３０に出力する。
【００５０】
透過データ配列部３０は、透過データ抜き取り部２０から入力された有効バイト数に基づいてデータの書き込みを行う。そして、空きバイトデータがある場合は、後段のブロックからデータを移動させて前詰めを行い、空きバイトデータを有しない１６バイトパラレルデータに各ブロックを再配列する。
【００５１】
ここで、透過データ配列部３０の構成について説明する。
図７は、透過データ配列部３０の内部回路の一例を示す図である。図７に示す回路において、透過データ配列部３０は、有効バイト数デコーダ３０１、加算器３０２、ポインタデコーダ３０３、ポインタ３０４、スイッチＳＷ３、Ｆ／Ｆａｌｌａｙ３０５、セレクタ３０６、コントローラ３０７、Ｆ／Ｆ３０８から構成される。
【００５２】
透過データ配列部３０は、透過データ抜き取り後の１６バイトパラレルデータおよびブロックの有効バイト数が入力されると、１６バイトパラレルデータをスイッチＳＷ３に入力し、有効バイト数を有効バイト数デコーダ３０１および加算器３０２に入力する。
【００５３】
有効バイト数デコーダ３０１は、有効バイト数に基づいて、データが有効であるか無効であるかを制御するイネーブル信号（ＥＮ）を生成する。イネーブル信号（ＥＮ）は、各バイトデータに対応して１６個生成され、入力されたデータの上位から有効バイト数分のデータに対してイネーブル信号（ＥＮ）を「Ｈｉｇｈ」にしてスイッチＳＷ３に出力される。
【００５４】
加算器３０２は、５ｂｉｔで構成されており、透過データ抜き取り部２０から入力される前段ブロックの有効バイト数に、後段ブロックの有効バイト数を加算する。加算器３０２は、５ｂｉｔで構成されることから、有効バイト数は“０”〜“３１”までカウントされ、“３１”を超えるバイト数においては、“０”に戻ってカウントされる。そこで、有効バイト数が３２個の場合は、有効バイト数は“０”とカウントされる。加算器３０２で加算された値はポインタ３０４に出力される。
【００５５】
ポインタ３０４は、５ｂｉｔのＦ／Ｆから構成されており、Ｆ／Ｆａｌｌａｙ３０５におけるアドレスデータを生成する。また、Ｆ／Ｆａｌｌａｙ３０５は３２個のＦ／Ｆ群から構成され、ポインタ３０４はこの３２バイトの各バイトにそれぞれ“０”〜“３１”の個別の番号（ポインタの値）を与える。ポインタ３０４は、現在値と加算器３０２から出力される加算された有効バイト数に基づいて、Ｆ／Ｆａｌｌａｙ３０５における後段ブロックの先頭アドレスを決定して３２組のアドレスデータを生成する。
【００５６】
ポインタデコーダ３０３は、ポインタ３０４によって生成された３２個のアドレスデータをそれぞれのアドレスに対応するＳＷ３ＩＮＴに出力する。ここで、ポインタデコーダ３０３は、対応するスイッチＳＷ３内部の各ＳＷ３ＩＮＴにアドレスデータを１６個づつ出力する。これは、入力されるＳＷ３ＩＮＴは３２個あるが、入力されるパラレルデータは、１６バイトしかないので、３２個のアドレスデータは、入力されるＳＷ３ＩＮＴにそれぞれ対応して１６個のアドレスデータが抽出され、出力される。そして、この３２個のアドレスデータのうち１つをポインタデコーダ３０３が有効に設定することで、各ＳＷ３ＩＮＴから出力されるデータがアドレスに対応して選択される。
【００５７】
スイッチＳＷ３は、３２個のＳＷ３ＩＮＴから構成され、透過データ抜き取り後の１６バイトパラレルデータ、有効バイト数デコーダ３０１から出力される１６個のＥＮ、およびポインタデコーダ３０３から出力される３２個のアドレスデータに基づいて、ポインタ３０４によって示されたアドレスを先頭にして有効なデータのみをＦ／Ｆａｌｌａｙ３０５に順々に出力する。
【００５８】
図８にスイッチＳＷ３の詳細な内部構成の図を示す。
この図に示すように、スイッチＳＷ３は、ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿３２の３２個のＳＷ３ＩＮＴから構成されており、透過データ抜き取り後の１６バイトパラレルデータ、および有効バイト数デコーダ３０１から出力される１６個のＥＮをそれぞれ１組として、全部で１６組のパラレルデータが、３２個のＳＷ３ＩＮＴにそれぞれ入力される。
【００５９】
さらに、ポインタデコーダ３０３から出力される３２個のアドレスデータが、ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿３２のアドレスに対応して入力される。これは、ＳＷ３ＩＮＴ１つに入力されるデータは１６バイトパラレルであるので、必要なアドレスデータは１６個であり、ポインタデコーダ３０３から出力される３２個のアドレスデータのうち、ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿３２のアドレスに対応した１６個のアドレスデータが抽出されて、それぞれのＳＷ３ＩＮＴに入力される。
【００６０】
ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿３２に入力された１６バイトの透過コード抜き取り後データは、各ＳＷ３ＩＮＴの選択理論に基づいて選択され、Ｏ１〜Ｏ３２のデータとして３２バイトのデータがＦ／Ｆａｌｌａｙ３０５に出力される。
【００６１】
図９にスイッチＳＷ３の選択理論の図表の概略図を示す。
図９に示される選択理論の図表は、簡略化のためＳＷ３ＩＮＴを１６個とし（ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿１６）、入力されるパラレルデータは８バイトパラレル（ＳＥＬ１〜ＳＥＬ８）であるとする。
【００６２】
例えば、前段ブロックの最後のデータがポインタ“４”（ＳＷ３ＩＮＴ＿５）で終了している場合、後段ブロックの先頭アドレスはポインタ“５”となる。そこで、ＳＷ３ＩＮＴ＿６から後段ブロックの先頭データ（ＳＥＬ１）が出力される様に、ポインタデコーダ３０３は、ＤＥＣ６を有効にする。
【００６３】
これにより、ＳＷ３ＩＮＴ＿６においては、ＳＥＬ１が選択され、ＳＷ３ＩＮＴ＿７においては、ＳＥＬ２が選択され、以下順々にＳＥＬ８まで、８バイトパラレルのデータが連続して選択される。ＤＥＣ６以外のデータは全て無効であり、ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿１６から出力される１６バイトのデータのうち有効なデータは８バイトとなることがわかる。
【００６４】
なお、本実施例においてはこの選択理論を拡張して、ＳＷ３ＩＮＴが３２個であり、入力されるパラレルデータは１６バイトパラレル（ＳＥＬ１〜ＳＥＬ１６）であるので、スイッチＳＷ３から出力されるＯ１〜Ｏ３２のデータのうち有効なデータは１６バイトとなることがわかる。
【００６５】
また、この選択された１６バイトのデータのうち、ＥＮによって「Ｈｉｇｈ」に制御されているデータのみが実際には有効なデータとしてＦ／Ｆａｌｌａｙ３０５に出力される。
【００６６】
Ｆ／Ｆａｌｌａｙ３０５は、Ｆ／Ｆが３２バイトパラレルに並んでいる構造を持つＦ／Ｆ群で、３２バイトの各バイトに個別のアドレスが与えられている。スイッチＳＷ３から、ポインタ３０４によってアドレスを指定されたデータが入力されると、ポインタ値にしたがって、有効なデータのみを３２バイトパラレルのＦ／Ｆａｌｌａｙに順々に書き込む。そして、Ｆ／Ｆａｌｌａｙの前半分（１６バイト）、後半分（１６バイト）が書き込まれる毎に１６バイトパラレルデータが透過処理データとしてセレクタ３０６に読み出される。
【００６７】
図１０にＦ／Ｆａｌｌａｙ３０５の詳細な内部構成の図を示す。
Ｆ／Ｆａｌｌａｙ３０５は、３２個のＦ／Ｆから構成され、ＳＷ３ＩＮＴ＿１〜ＳＷ３ＩＮＴ＿３２からそれぞれ出力される３２組（ＳＷ３＿Ｏ１〜ＳＷ３＿Ｏ３２）のデータおよびＥＮが、それぞれのＦ／Ｆに入力される。Ｆ／ＦはＥＮから、入力されるデータが有効か否かを判断し、有効なデータのみをラッチして書き込みを行う。
【００６８】
ここで、Ｆ／Ｆａｌｌａｙ３０５で実行されるデータ書き込みの動作原理を図１１（ａ）〜（ｄ）を用いて詳細に説明する。
【００６９】
図１１（ａ）において、アドレスデータがポインタ“０”、有効バイト数が“１３”であるブロックが入力される場合、Ｆ／Ｆａｌｌａｙ３０５では、ポインタ“０”を先頭として、１３バイトのデータが書き込まれる。
【００７０】
そして、図１１（ｂ）において、次に入力されるブロックは、カウンタ３０４によって、アドレスデータがポインタ“１３”と指定されており、有効バイト数が“１０”であることから、ポインタ“１３”を先頭として、１０バイトのデータが書き込まれる。
【００７１】
ここで、Ｆ／Ｆａｌｌａｙ３０５の３２バイト中、前半分の１６バイトは既に書き込みが完了しているので、書き込まれた前半分の１６バイトデータはセレクタ３０６により読み出しが行われる。図１１（ｃ）は前半分の１６バイトデータが読み出された状態を示した図である。
【００７２】
ここで、書き込みの進行状況は全てポインタ３０４が管理するポインタ値によって制御される。具体的には、３２バイトの前半分つまりポインタ“１５”まで書き込みが完了した時点で読み出しを実行する場合、ポインタ“１６”が立ち上がれば読み出し可能ということになる。
【００７３】
つまり、５ｂｉｔで構成されるカウンタ３０４においては、ポインタ“１６”は、「１００００」であり、ｂｉｔ５が立ち上がれば、読み出し可能になることがわかる。同様に、後半分の書き込みが完了した場合、つまりポインタ“３１”までの書き込みが完了した場合は、ポインタ“０”が立ち上がれば読み出し可能になる。そこで、カウンタ３０４においては、ポインタ“０”は「０００００」であり、ｂｉｔ５が立ち下がれば、読み出し可能になることがわかる。
【００７４】
つまり、Ｆ／Ｆａｌｌａｙ３０５において、１６バイト毎のデータの読み出しを行うには、ポインタ３０４のｂｉｔ５の立ち上がりおよび立ち下がりを検出することで、読み出し制御を行うことができる。なお、ポインタ３０４のｂｉｔ５の立ち上がりおよび立ち下がりは、後述するコントローラ３０７によって検出されるが、詳細は後に述べる。
【００７５】
図１１（ｄ）にもどって、次に入力されるブロックは、ポインタ３０４によってアドレスデータがポインタ“２３”と与えられる。データの書き込みは、データの連続性を保つためにたとえ前半分の１６バイトが空きになっても、前ブロックが終了した次のポインタ値を先頭にして書き込みが開始される。
【００７６】
有効バイト数が“１５”であるこのブロックは、ポインタ“２３”を先頭として１５バイトのデータが書き込まれる。ここで、Ｆ／Ｆａｌｌａｙ３０５は３２バイトであるため、ポインタ“２３”からデータの書き込みを始めると、後半分には９バイトデータしか書き込むことができない。そこで、書き込まれる１５バイトデータのうち初めの９バイトデータはＦ／Ｆａｌｌａｙ３０５の後半分に書き込まれ、残りの６バイトデータは、Ｆ／Ｆａｌｌａｙ３０５の前半分に書き込まれる。
【００７７】
そして、Ｆ／Ｆａｌｌａｙ３０５の前半分に書き込みが開始された時点で、ポインタｂｉｔ５の立ち下がりが検出され、Ｆ／Ｆａｌｌａｙ３０５の後半分はセレクタ３０６によって１６バイトデータが読み出される。
【００７８】
これにより、Ｆ／Ｆａｌｌａｙ３０５において、有効なデータのみがアドレスにしたがって順々に書き込まれるので、空きバイトデータおよび空きブロックが発生せずに、データの再配列が行われる。
【００７９】
セレクタ３０６は、Ｆ／Ｆａｌｌａｙ３０５において、有効なデータが順々に書き込まれると、コントローラ３０５からの指示により、Ｆ／Ｆａｌｌａｙ３０５を前半分（１６バイト）および後半分（１６バイト）に分けて、順次、１６バイトデータ毎にデータの読み出しを行い、Ｆ／Ｆ３０８にデータを出力する。
【００８０】
コントローラ３０７は、ポインタ３０４におけるｂｉｔ５の立ち上がりおよび立ち下がりを検出して、セレクタ３０６に検出信号を出力する。セレクタ３０６によるＦ／Ｆａｌｌａｙ３０６からのデータの読み出しは、ポインタ値によって管理される。
【００８１】
具体的にはポインタ“１５→１６”に変化するとき、およびポインタ“３１→０”に変化するときが、読み出しが行われるタイミングである。このポインタの変化は、ポインタ３０４において、「０１１１１→１００００（ポインタ“１５→１６”）」であり、「１１１１１→０００００（ポインタ“３１→０”）」の変化である。つまり、ポインタ３０４のｂｉｔ５の立ち上がりおよび立ち下がりに着目することによりその変化が検出できる。
【００８２】
そこで、コントローラ３０７では、ポインタ３０４のｂｉｔ５の立ち上がりおよび立ち下がりのみを検出して、検出信号をセレクタ３０６に出力する。さらに、コントローラ３０７は、透過後イネーブル信号（透過後ＥＮ）を生成して出力する。この透過後ＥＮは、セレクタ３０６からデータの読み出しが可能でないとき、つまり、Ｆ／Ｆａｌｌａｙ３０５に１６バイト分のデータが詰まっていないときは「Ｌｏｗ」として、逆に、読み出し可能なデータがあるときは「Ｈｉｇｈ」として出力する。
【００８３】
セレクタ３０７により、読み出された１６バイトパラレルデータは、Ｆ／Ｆ３０８に出力され、透過処理後データとして所定のタイミングで出力される。
【００８４】
次に、本実施の形態の動作を説明する。
データ処理装置１において、ＳＴＭに基づくデータが受信されると、不図示のインターフェイス（Ｉ／Ｆ）において、アイドルデータ以外のデータが抽出され、１６バイトパラレルデータに変換される。
【００８５】
この１６バイトパラレルデータは、Ｉ／Ｆから透過データ検出部１０に出力され、透過データ検出部１０において、変換されたパラレルデータ中に、透過データがどのブロックの何バイト目にあるかが検出される。そして、これを検出情報として、入力されたパラレルデータと共に透過データ抜き取り部２０に出力される。
【００８６】
次いで、透過データ抜き取り部２０では、１６バイトパラレルデータが４バイト毎に処理ブロックに入力され、検出情報に基づいて透過データの抜き取り（透過処理）が実行される。透過データの抜き取りによって空きバイトデータが発生したブロックの４バイト毎のデータを、スイッチＳＷ１において有効バイト数に基づいて前詰めを行い、８バイトパラレルのデータを生成する。そして、生成された８バイトパラレルデータをさらにスイッチＳＷ２において、１６バイトパラレルのデータに前詰めすることにより、空きバイトデータが１６バイトパラレルデータの下部に配列された透過データ抜き取り後データが生成される。
【００８７】
そして、この透過データ抜き取り後データは、有効バイト数と共に透過データ配列部３０に入力される。透過データ配列部３０において、透過データ抜き取り後データは、スイッチＳＷ３に入力され、有効バイト数は有効バイト数デコーダ３０１および加算器３０２に入力される。
【００８８】
有効バイト数デコーダ３０１に入力された有効バイト数からは、データが有効か否かを制御するイネーブル信号（ＥＮ）が生成され、加算器３０２に入力された有効バイト数からは、ポインタ３０４を介して、Ｆ／Ｆａｌｌａｙ３０５におけるアドレスデータが生成される。
【００８９】
そして、ＥＮおよびアドレスデータはスイッチＳＷ３に入力され、このＥＮおよびアドレスデータに基づいて、透過データ抜き取り後データである１６バイトパラレルデータから、有効なデータのみがアドレスを指定されてＦ／Ｆａｌｌａｙ３０５に入力される。
【００９０】
Ｆ／Ｆａｌｌａｙ３０５に入力されたデータは、３２バイトのＦ／Ｆａｌｌａｙ３０５に空きバイトデータおよび空きブロックが発生しないように順々に書き込まれる。そして、Ｆ／Ｆａｌｌａｙ３０５において、３２バイトの半分の１６バイトのデータが書き込まれる毎に、セレクタ３０６によってデータが順次読み出される。なお、この読み出しタイミングはコントローラ３０７によって、ポインタ３０４のｂｉｔ５の立ち上がりおよび立ち下がりを検出することにより制御されている。
【００９１】
セレクタ３０６によって、読み出された１６バイトパラレルデータは、Ｆ／Ｆ３０８に出力され、所定のタイミングによって、透過処理後データとして出力される。なお、この透過処理後データは、透過データが全て変換され、オリジナルデータに復元されたデータであり、空きバイトデータおよび空きブロックを有しないデータである。
【００９２】
以上のように、本実施の形態におけるデータ処理装置１は、ＳＴＭ−６４の高速シリアルデータを１６バイトパラレルデータで透過処理する。
【００９３】
したがって、比較的低速な汎用デバイスによって、容易に受信データ中の透過データをオリジナルデータに透過処理できる。
【００９４】
また、データ処理装置１は、比較的簡単な回路によって、透過データ検出部１０、透過データ抜き取り部２０、および透過データ配列部３０を構成できる。
【００９５】
したがって、データ処理装置１全体の回路規模を小型化でき、コストの削減が図れる。
【００９６】
なお、上記の実施の形態に示したデータ処理装置１の構成は一例であり、本実施の形態の趣旨を逸脱しない範囲において適宜変更可能である。
【００９７】
【発明の効果】
請求項１記載の発明のデータ処理装置、および請求項６記載のデータ処理方法によれば、受信したシリアルデータをパラレルデータに変換し、検出した透過データ情報に基づいて処理するため、比較的低速な汎用デバイスのみで容易に透過処理を実行することができる。
【００９８】
請求項２記載の発明のデータ処理装置、および請求項７記載のデータ処理方法によれば、受信シリアルデータをパラレルデータに変換した際に、透過データが、２つのパラレルデータに分割されることになっても、透過データ情報を検出できるため、透過処理できる。
【００９９】
請求項３記載の発明のデータ処理装置、および請求項８記載のデータ処理方法によれば、各パラレルデータについて、透過データ変換後に内部に含まれる有効なデータ数が算出されるため、各パラレルデータのデータ幅を容易に把握できる。
【０１００】
請求項４記載の発明のデータ処理装置、および請求項９記載のデータ処理方法によれば、所定のデータ幅で透過データを変換し、複数の段階をへて所定データ幅のパラレルデータを生成することができるので、処理データ幅の単位を小さくすることで処理速度を遅延させることなくデータが配列できる。
【０１０１】
請求項５記載の発明のデータ処理装置、および請求項１０記載のデータ処理方法によれば、単純な制御信号を使って、回路規模を大きくすることなく、比較的低速な汎用デバイスのみで容易にデータの再配列ができる。
【図面の簡単な説明】
【図１】本発明を適用した実施の形態のデータ処理装置１の内部構成を示す概略図である。
【図２】透過データ抜き取り部２０の内部構成の一例を示す図である。
【図３】４バイトブロック処理部およびスイッチＳＷ１の内部構成の一例を示す図である。
【図４】４バイトブロック処理部およびスイッチＳＷ１から出力される出力データの一例を示す図である。
【図５】スイッチＳＷ１およびスイッチＳＷ２の内部構成の一例を示す図である。
【図６】スイッチＳＷ１およびスイッチＳＷ２から出力される出力データの一例を示す図である。
【図７】透過データ配列部３０の内部構成の一例を示す図である。
【図８】スイッチＳＷ３の内部構成の一例を示す図である。
【図９】スイッチＳＷ３内の各ＳＷ３ＩＮＴの選択理論の一例を示す図表である。
【図１０】Ｆ／Ｆａｌｌａｙ３０５の内部構成の一例を示す図である。
【図１１】Ｆ／Ｆａｌｌａｙ３０５におけるデータ書き込みの動作原理の一例を示す図である。
【図１２】従来の透過処理を示す概略図である。
【符号の説明】
１      データ処理装置
１０    透過データ検出部
２０    透過データ抜き取り部
２０１    ４バイト処理ブロック
２０２、２０４    加算器
２０３、２０５    Ｆ／Ｆ
ＳＷ１、ＳＷ２    スイッチ
３０    透過データ配列部
３０１    有効バイト数レコーダ
３０２    加算器
３０３    ポインタデコーダ
３０４    ポインタ
３０５    Ｆ／Ｆａｌｌａｙ
３０６    セレクタ
３０７    コントローラ
３０８    Ｆ／Ｆ
ＳＷ３    スイッチ
１００    透過処理装置
１１０    透過データ検出部
１２０    透過データ変換部
【図１】
0003867494.tif 000002
【図２】
0003867494.tif 000003
【図３】
0003867494.tif 000004
【図４】
0003867494.tif 000005
【図５】
0003867494.tif 000006
【図６】
0003867494.tif 000007
【図７】
0003867494.tif 000008
【図８】
0003867494.tif 000009
【図９】
0003867494.tif 000010
【図１０】
0003867494.tif 000011
【図１１】
0003867494.tif 000012
【図１２】
0003867494.tif 000013