(57)【要約】【課題】  データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列が入力され、このデータ列に含まれるスタッフデータを除いた実データを出力するＪＣ処理において、並列データに対して低コストで処理を行う。さらに、並列データから不要なデータを取り除いて同じ並列数のデータを出力する。【解決手段】  入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成し、スタッフ領域に挿入されたデータの種類に応じてシフト量を制御する。【選択図】  図１
2008092415.tif 000002
【特許請求の範囲】
【請求項１】
データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列が入力され、このデータ列に含まれるスタッフデータを除いた実データを出力するジャスティフィケーション制御処理回路において、
前記データ列が並列に入力され、
入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成する第一の手段と、
スタッフ領域に挿入されたデータの種類に応じて前記第一の手段におけるシフト量を制御する第二の手段と
を備えた
ことを特徴とするジャスティフィケーション制御処理回路。
【請求項２】
入力されるデータの並列数がｎ、ただしｎは２以上の整数、であり、
前記第二の手段は、
前記第一の手段におけるシフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれているスタッフデータがｐ個、ただしｐは−ｎ以上ｎ以下の整数であり、ｐが負とは通常は実データが挿入されていないスタッフ領域に実データが挿入されている状態、であるとき、
ｐがｍ−ｎより大きくｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目からスタッフデータを除いたｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐとし、
ｐがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｐ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ＋ｎとし、
ｐがｍ−ｎ以下の負値の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データのスタッフ領域に含まれていた実データを含めて１番目からｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、続いて、残ったｍ−ｐ（≧ｎ）個のデータからｎ個のデータを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ−ｎ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ−ｎとする
請求項１記載のジャスティフィケーション制御処理回路。
【請求項３】
前記スタッフ領域として、通常は実データが挿入され正スタッフ時にスタッフデータが挿入される１バイトの正スタッフ領域と、通常はスタッフデータが挿入され負スタッフ時に実データが挿入される１バイトの負スタッフ領域とが設けられ、
前記第二の手段は、
通常時（ｐ＝０）にはシフト量ｍを維持し、
正スタッフ時（ｐ＝１）には、現在のシフト量ｍが０の場合（ｐがｍより大きい）にはデータ出力を１回スキップしてシフト量ｍをｎ−１、現在のシフト量ｍが０でない場合にはシフト量ｍをｍ−１とし、
負スタッフ時（ｐ＝−１）には、現在のシフト量ｍがｎ−１の場合（ｐ＝ｍ−ｎ）にはデータ出力を１回追加してシフト量ｍを０、現在のシフト量ｍがｎ−１でない場合にはシフト量ｍをｍ＋１とする
請求項２記載のジャスティフィケーション制御処理回路。
【請求項４】
ヘッダおよび冗長データを含む付加データが設けられた一連のデータ列がｎ並列、ただしｎは２以上の整数、で順次入力され、このデータ列から前記付加データを除いた同じ並列数の出力データ列を生成するデータ再整列回路において、
入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、付加データの除去に応じてデータがシフトした数のデータを生成する第一の手段と、
入力された並列データに含まれる付加データに応じて前記第一の手段におけるシフト量を制御する第二の手段と
を備え、
前記第一の手段におけるシフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれている付加データがｑ個、ただしｑは０以上ｎ以下の整数、であるとき、
ｑがｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目から付加データを除いたｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡って付加データを除いたｍ−ｑ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｑとし、
ｑがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｑ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｑ＋ｎとする
ことを特徴とするデータ再整列回路。
【請求項５】
データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列を入力し、
このデータ列に含まれるスタッフデータを除いた実データを出力する
ジャスティフィケーション制御処理方法において、
前記データ列を並列に入力し、
入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成し、
スタッフ領域に挿入されたデータの種類に応じて前記シフトの量を制御する
ことを特徴とするジャスティフィケーション制御処理方法。
【請求項６】
入力するデータの並列数がｎ、ただしｎは２以上の整数、であり、
シフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれているスタッフデータがｐ個、ただしｐは−ｎ以上ｎ以下の整数であり、ｐが負とは通常は実データが挿入されていないスタッフ領域に実データが挿入されている状態、であるとき、
ｐがｍ−ｎより大きくｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目からスタッフデータを除いたｎ−ｍ個のデータとを並列に出力し、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐとし、
ｐがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｐ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ＋ｎとし、
ｐがｍ−ｎ以下の負値の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データのスタッフ領域に含まれていた実データを含めて１番目からｎ−ｍ個のデータとを並列に出力し、続いて、残ったｍ−ｐ（≧ｎ）個のデータからｎ個のデータを並列に出力し、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ−ｎ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ−ｎとする
請求項５記載のジャスティフィケーション制御処理方法。
【請求項７】
前記スタッフ領域として、通常は実データが挿入され正スタッフ時にスタッフデータが挿入される１バイトの正スタッフ領域と、通常はスタッフデータが挿入され負スタッフ時に実データが挿入される１バイトの負スタッフ領域とを設け、
通常時（ｐ＝０）にはシフト量ｍを維持し、
正スタッフ時（ｐ＝１）には、現在のシフト量ｍが０の場合（ｐがｍより大きい）にはデータ出力を１回スキップしてシフト量ｍをｎ−１、現在のシフト量ｍが０でない場合にはシフト量ｍをｍ−１とし、
負スタッフ時（ｐ＝−１）には、現在のシフト量ｍがｎ−１の場合（ｐ＝ｍ−ｎ）にはデータ出力を１回追加してシフト量ｍを０、現在のシフト量ｍがｎ−１でない場合にはシフト量ｍをｍ＋１とする
請求項６記載のジャスティフィケーション制御処理方法。
【請求項８】
ヘッダおよび冗長データを含む付加データが設けられた一連のデータ列がｎ並列、ただしｎは２以上の整数、で順次入力し、このデータ列から前記付加データを除いた同じ並列数の出力データ列を生成するデータ再整列方法において、
入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、付加データの除去に応じてデータがシフトした数のデータを生成し、
入力された並列データに含まれる付加データに応じて前記シフトの量を制御し、
前記シフトの量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれている付加データがｑ個、ただしｑは０以上ｎ以下の整数、であるとき、
ｑがｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目から付加データを除いたｎ−ｍ個のデータとを並列に出力し、今回入力された並列データのｎ番目から遡って付加データを除いたｍ−ｑ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｑとし、
ｑがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｑ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｑ＋ｎとする
ことを特徴とするデータ再整列方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は基本周波数が異なる二つの系間の伝送に関する。特に、互いの基本周波数の違いに対処するために挿入されたデータの処理に関する。
【０００２】
本発明は特に、ＩＴＵ−Ｔ勧告Ｇ．７０９で定義された光伝送ネットワークのＯＴＵｋ（Optical Transfer Unit k、ｋ＝１、２または３）フレームからクライアント・データを取り出すための回路に利用することができる。
【背景技術】
【０００３】
基本周波数が異なる二つの系間で伝送を行う場合、それらの基本周波数の偏差を吸収するため、ジャスティフィケーション制御処理（以下「ＪＣ処理」という）が行われる（特許文献１、２参照）。図９を参照して従来のＪＣ処理を説明する。
【０００４】
入力側のネットワークで用いられていたヘッダその他の付加データを取り除いたデータ（これを以下「実データ」という）を出力側のネットワークに送出する場合、付加データの量に応じて、二つのネットワークで異なる基本周波数を使用することになる。図９の例では、入力側のネットワークでは、８バイトの実データに対して２バイトの付加データが設けられている。この場合、基本周波数比は１０：８であり、入力側のネットワークのクロックでメモリに書き込まれたデータが、この周波数比のクロックで読み出されて出力側のネットワークに送出される。
【０００５】
入力側のネットワークで伝送されるデータには、その基本周波数と実データの周波数とに偏差がある場合にそれを吸収するため、通常は実データが挿入され場合によってダミーのスタッフデータが挿入される正スタッフ領域と、通常はスタッフデータが挿入され場合によって実データが挿入される負スタッフ領域とが設けられる。正スタッフ領域および負スタッフ領域を１０００バイトのデータにそれぞれ１バイト設けることで、±０．１％の周波数偏差を吸収することができる。
【０００６】
このようにして伝送されたデータから付加データを取り除く場合には、正スタッフであれば、その分のスタッフデータも取り除いて周波数比１０：７．９９で出力側のネットワークに送出する。また、負スタッフであれば、負スタッフ領域に挿入されている実データを加えて、周波数比１０：８．０１で出力側のネットワークに送出する。
【特許文献１】特開２００１−１７７４９１
【特許文献２】特開平９−２９８５２０
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のＪＣ処理はシリアルに行われているが、データ速度の高速化に伴い、このようなシリアル処理は困難となっている。しかし、並列データに対してＪＣ処理を行う場合には、正スタッフあるいは負スタッフに対応して１バイト単位でのメモリアクセスが必要となる。しかし、通常のメモリはバイト単位でのアクセスができず、バイト単位のアクセスに対応した高性能のメモリは高価である。
【０００８】
本発明は、このような課題を解決し、低コストで並列データに対するＪＣ処理を行うことのできるジャスティフィケーション制御処理回路を提供することを目的とし、さらに、並列データから不要なデータを取り除いて同じ並列数のデータを出力するデータ再整列回路を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第一の観点によると、データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列が入力され、このデータ列に含まれるスタッフデータを除いた実データを出力するジャスティフィケーション制御処理回路において、前記データ列が並列に入力され、入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成する第一の手段と、スタッフ領域に挿入されたデータの種類に応じて前記第一の手段におけるシフト量を制御する第二の手段とを備えたことを特徴とするジャスティフィケーション制御処理回路が提供される。
【００１０】
入力されるデータの並列数がｎ、ただしｎは２以上の整数、であり、前記第二の手段は、前記第一の手段におけるシフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれているスタッフデータがｐ個、ただしｐは−ｎ以上ｎ以下の整数であり、ｐが負とは通常は実データが挿入されていないスタッフ領域に実データが挿入されている状態、であるとき、ｐがｍ−ｎより大きくｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目からスタッフデータを除いたｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐとし、ｐがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｐ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ＋ｎとし、ｐがｍ−ｎ以下の負値の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データのスタッフ領域に含まれていた実データを含めて１番目からｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、続いて、残ったｍ−ｐ（≧ｎ）個のデータからｎ個のデータを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ−ｎ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ−ｎとすることが望ましい。
【００１１】
ｍ以下ｐ個のスタッフデータが、入力された並列データの１番目からｎ−ｍ番目までの間に、またはｎ−ｍ番目およびｎ−ｍ＋１番目を含んで連続的に挿入されている場合には、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータと、今回入力された並列データの１番目からｎ−ｍ＋ｐ番目までのデータからスタッフデータを除いたデータとを前記第一の手段から並列に出力させ、今回入力された並列データのｎ−ｍ＋ｐ＋１番目からｎ番目のデータを次回の出力用とする。
【００１２】
ｍ以下ｐ個のスタッフデータが、入力された並列データのｎ−ｍ＋１番目からｎ番目までの間に挿入されている場合には、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータと、今回入力された並列データの１番目からｎ−ｍ番目までのデータとを前記第一の手段から並列に出力させ、続いて、今回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータからスタッフデータを除いたデータを次回の出力用とする。
【００１３】
実用的なネットワークでは、スタッフ領域として、通常は実データが挿入され正スタッフ時にスタッフデータが挿入される１バイトの正スタッフ領域と、通常はスタッフデータが挿入され負スタッフ時に実データが挿入される１バイトの負スタッフ領域とが設けられる。この場合、前記第二の手段は、通常時（ｐ＝０）にはシフト量ｍを維持し、正スタッフ時（ｐ＝１）には、現在のシフト量ｍが０の場合（ｐがｍより大きい）にはデータ出力を１回スキップしてシフト量ｍをｎ−１、現在のシフト量ｍが０でない場合にはシフト量ｍをｍ−１とし、負スタッフ時（ｐ＝−１）には、現在のシフト量ｍがｎ−１の場合（ｐ＝ｍ−ｎ）にはデータ出力を１回追加してシフト量ｍを０、現在のシフト量ｍがｎ−１でない場合にはシフト量ｍをｍ＋１とすることが望ましい。
【００１４】
本発明の第二の観点によると、ヘッダおよび冗長データを含む付加データが設けられた一連のデータ列がｎ並列、ただしｎは２以上の整数、で順次入力され、このデータ列から前記付加データを除いた同じ並列数の出力データ列を生成するデータ再整列回路において、入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、付加データの除去に応じてデータがシフトした数のデータを生成する第一の手段と、入力された並列データに含まれる付加データに応じて前記第一の手段におけるシフト量を制御する第二の手段とを備え、前記第一の手段におけるシフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれている付加データがｑ個、ただしｑは０以上ｎ以下の整数、であるとき、ｑがｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目から付加データを除いたｎ−ｍ個のデータとを前記第一の手段から並列に出力させ、今回入力された並列データのｎ番目から遡って付加データを除いたｍ−ｑ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｑとし、ｑがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｑ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｑ＋ｎとすることを特徴とするデータ再整列回路が提供される。
【００１５】
本発明の第三の観点によると、データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列を入力し、このデータ列に含まれるスタッフデータを除いた実データを出力するジャスティフィケーション制御処理方法において、前記データ列を並列に入力し、入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成し、スタッフ領域に挿入されたデータの種類に応じて前記シフトの量を制御することを特徴とするジャスティフィケーション制御処理方法が提供される。
【００１６】
入力するデータの並列数がｎ、ただしｎは２以上の整数、であり、シフト量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれているスタッフデータがｐ個、ただしｐは−ｎ以上ｎ以下の整数であり、ｐが負とは通常は実データが挿入されていないスタッフ領域に実データが挿入されている状態、であるとき、ｐがｍ−ｎより大きくｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目からスタッフデータを除いたｎ−ｍ個のデータとを並列に出力し、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐとし、ｐがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｐ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ＋ｎとし、ｐがｍ−ｎ以下の負値の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データのスタッフ領域に含まれていた実データを含めて１番目からｎ−ｍ個のデータとを並列に出力し、続いて、残ったｍ−ｐ（≧ｎ）個のデータからｎ個のデータを並列に出力し、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ−ｎ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｐ−ｎとすることが望ましい。
【００１７】
スタッフ領域として、通常は実データが挿入され正スタッフ時にスタッフデータが挿入される１バイトの正スタッフ領域と、通常はスタッフデータが挿入され負スタッフ時に実データが挿入される１バイトの負スタッフ領域とを設け、通常時（ｐ＝０）にはシフト量ｍを維持し、正スタッフ時（ｐ＝１）には、現在のシフト量ｍが０の場合（ｐがｍより大きい）にはデータ出力を１回スキップしてシフト量ｍをｎ−１、現在のシフト量ｍが０でない場合にはシフト量ｍをｍ−１とし、負スタッフ時（ｐ＝−１）には、現在のシフト量ｍがｎ−１の場合（ｐ＝ｍ−ｎ）にはデータ出力を１回追加してシフト量ｍを０、現在のシフト量ｍがｎ−１でない場合にはシフト量ｍをｍ＋１とすることが望ましい。
【００１８】
本発明の第四の観点によると、ヘッダおよび冗長データを含む付加データが設けられた一連のデータ列がｎ並列、ただしｎは２以上の整数、で順次入力し、このデータ列から前記付加データを除いた同じ並列数の出力データ列を生成するデータ再整列方法において、入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、付加データの除去に応じてデータがシフトした数のデータを生成し、入力された並列データに含まれる付加データに応じて前記シフトの量を制御し、前記シフトの量がｍ、ただしｍは０以上ｎ未満の整数、であり、入力された並列データに含まれている付加データがｑ個、ただしｑは０以上ｎ以下の整数、であるとき、ｑがｍ以下の場合には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データの１番目から付加データを除いたｎ−ｍ個のデータとを並列に出力し、今回入力された並列データのｎ番目から遡って付加データを除いたｍ−ｑ個のデータを次回の出力用として、それ以降のシフト量ｍをｍ−ｑとし、ｑがｍより大きい場合には、次回の並列データの入力を待ち、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｑ個のデータとを次回の出力用として、それ以降のシフト量ｍをｍ−ｑ＋ｎとすることを特徴とするデータ再整列方法が提供される。
【発明の効果】
【００１９】
本発明によれば、バイト単位のアクセスに対応した高性能のメモリを用いることなく、比較的簡単な回路構成で、並列データに対するＪＣ処理を行うことができ、さらに、並列データから不要なデータを取り除いて再整列させることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施例を説明する。
【００２１】
図１は本発明実施例のＪＣ処理回路を示すブロック構成図であり、基本的な構成例を示す。このＪＣ処理回路は、データ量を調整するために実データあるいは意味のないスタッフデータが挿入されるスタッフ領域が設けられたデータ列が入力され、このデータ列に含まれるスタッフデータを除いた実データを出力する回路であり、データ列が並列に入力され、入力された並列データの一部を選択して一時的に蓄え、この一時的に蓄えたデータと次に入力された並列データとから、スタッフデータの除去に応じてデータがシフトした同じ並列数のデータを生成する第一の手段として、セレクタ１１、レジスタ１２およびセレクタ１３を備え、スタッフ領域に挿入されたデータの種類に応じて前記第一の手段におけるシフト量を制御する第二の手段として、シフト・コントローラ１５を備える。
【００２２】
図２はデータ入力が２バイト並列の場合のＪＣ処理を説明する図であり、図３はその場合のＪＣ処理の流れを示すフローチャートである。
【００２３】
ＪＣ処理がない場合（Ｓ１１）には、シフト量をそのまま維持する（Ｓ１５）。すなわち、シフト量が０であれば、並列に入力されたデータをセレクタ１３でそのまま選択し、２バイト並列のまま２バイト幅のメモリ１４に書き込む。シフト量が１の場合、セレクタ１３は、レジスタ１２に蓄えられた前回入力の２番目のデータと、今回入力されたデータの１番目とを選択し、メモリ１４に書き込む。また、今回入力されたデータの２番目のデータについては、次回の出力用とし、セレクタ１１により選択してレジスタ１２に蓄える。
【００２４】
正スタッフの場合（Ｓ１１）には、実データが通常より１バイト少なくなる。現在のシフト量が０であれば（Ｓ１６）、１ブロック（２バイト）の書き込みイネーブルを削除し、シフト量を１とする（Ｓ１７）。すなわち、入力された１バイトの実データを次回の出力用とし、セレクタ１１により選択してレジスタ１２に蓄える。正スタッフで現在のシフト量が１であれば（Ｓ１６）、前回入力の１バイトのデータがレジスタ１２に蓄えれられており、それと今回入力の１バイトの実データとをセレクタ１３により選択し、メモリ１４に書き込む。そして、次回からはシフト量を０にする（Ｓ１８）。
【００２５】
負スタッフの場合（Ｓ１１）には、実データが通常より１バイト多くなる。現在のシフト量が０であれば（Ｓ１２）、その１バイトのデータを次回の出力用とし、シフト量を１とする（Ｓ１３）。現在のシフト量が１の場合には（Ｓ１２）、１ブロックイネーブルを追加し、レジスタ１２に蓄えれられた前回入力の１バイトのデータと今回の１バイトのデータとをセレクタ１３により選択して、メモリ１４に書き込む。そして、次回からはシフト量を０にする（Ｓ１４）。
【００２６】
図４はデータ入力がｎバイト並列の場合のＪＣ処理の流れを示すフローチャートである。図３に示した処理と同様に、ＪＣ処理がない場合（Ｓ２１）には、シフト量をそのまま維持する（Ｓ２５）。正スタッフ（Ｓ２１）で現在のシフト量が０の場合には（Ｓ２６）、出力すべき実データ量が１バイト少ないので、１ブロック（ｎバイト）の書き込みイネーブルを削除し、シフト量をｎ−１とする（Ｓ２７）。正スタッフで現在のシフト量が０以外であれば（Ｓ２６）、シフト量を１減らす（Ｓ２８）。負スタッフ（Ｓ２１）で現在のシフト量がｎ−１以外であれば（Ｓ２２）、出力すべき実データ量が１バイト増えているので、シフト量を１増やす。現在のシフト量がｎ−１の場合には（Ｓ２２）、データ量がｎバイトになるので１ブロックイネーブルを追加し、次回からはシフト量を０にする（Ｓ２４）。
【００２７】
図５は図４に示したＪＣ処理の流れをデータ入出力と関連させて示すフローチャートである。ここでは、スタッフデータの個数をｐとし、正スタッフの場合はｐが正の値、負スタッフの場合はｐが負の値をとるものとする。例えばＯＴＵｋフレームのように実用的な規格ではｐ＝−１、０または１であるが、ここでは、より一般化して説明する。
【００２８】
初期状態として、シフト量ｍを０とする（Ｓ３１）。ｎ並列のデータが入力されるごとに（Ｓ３２）、そのデータに含まれるスタッフデータの個数をｐとする（Ｓ３３）。ここで、ｎは２以上の整数であり、シフト量ｍは０以上ｎ未満の整数値をとることができる。ｐは−ｎ以上ｎ以下の整数であり、ｐが負とは通常は実データが挿入されていないスタッフ領域に実データが挿入されている状態である。
【００２９】
ｐがｍ−ｎより大きくｍ以下の場合（Ｓ３５）には、前回入力された並列データのｎ番目から遡ってｍバイトのデータがすでにレジスタ１２に蓄えられており、このｍバイトのデータと、今回入力された並列データの１番目からスタッフデータを除いたｎ−ｍバイトのデータとをセレクタ１３により選択して、並列にメモリ１４に書き込む（Ｓ３６）。さらに、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ個のデータを次回の出力用としてセレクタ１１により選択し、レジスタ１２に蓄える（Ｓ３７）。そして、それ以降のシフト量ｍをｍ−ｐとする（Ｓ３８）。
【００３０】
ここで、ｍ以下の正数ｐバイトのスタッフデータが、入力された並列データの１番目からｎ−ｍ番目までの間、またはｎ−ｍ番目およびｎ−ｍ＋１番目を含んで連続的に挿入されている場合を考える。この場合には、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータと、今回入力された並列データの１番目からｎ−ｍ＋ｐ番目までのデータからスタッフデータを除いたデータとを出力し、今回入力された並列データのｎ−ｍ＋ｐ＋１番目からｎ番目のデータを次回の出力用とする。
【００３１】
また、ｍ以下の正数ｐバイトのスタッフデータがｎ−ｍ＋１番目からｎ番目までの間に挿入されている場合には、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータと、今回入力された並列データの１番目からｎ−ｍ番目までのデータとを出力し、続いて、今回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータからスタッフデータを除いたデータを次回の出力用とする。
【００３２】
ｐが零の場合、すなわちスタッフ領域がない場合、あるいはスタッフ領域があるものの正スタッフでも負スタッフでもない場合には、シフト量ｍを変更することなく、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までのデータと、今回入力された並列データの１番目からｎ−ｍ番目までのデータとを出力し、今回入力された並列データのｎ−ｍ＋１番目からｎ番目のデータを次回の出力用とする。
【００３３】
ｐが負であってｍ−ｎより大きい場合には、前回入力された並列データのｎ−ｍ＋１番目からｎ番目までデータと、今回入力された並列データの１番目から負スタッフで挿入された実データを含めたｎ−ｍバイトのデータとを出力し、続いて、今回入力された並列データの残りのデータを次回の出力用とする。
【００３４】
ｐがｍより大きい場合（Ｓ３５）には、次回の並列データの入力を待ち（Ｓ３９）、前回入力された並列データのうちｎ番目から遡ってｍ個のデータと、今回入力された並列データからスタッフデータを除いたｎ−ｐ個のデータとを次回の出力用としてセレクタ１１により選択し、レジスタ１２に蓄える（Ｓ４０）。そして、それ以降のシフト量ｍをｍ−ｐ＋ｎとする（Ｓ４１）。
【００３５】
ｐがｍ−ｎ以下の負値の場合（Ｓ３４）には、前回入力された並列データのｎ番目から遡ってｍ個のデータと、今回入力された並列データのスタッフ領域に含まれていた実データを含めて１番目からｎ−ｍバイトのデータとをセレクタ１３により選択して、並列にメモリ１４に書き込む（Ｓ４２）。続いて、残ったｍ−ｐ（≧ｎ）個のデータからｎ個のデータをセレクタ１３により選択し、メモリ１４に書き込む（Ｓ４３）。また、今回入力された並列データのｎ番目から遡ってスタッフデータを除いたｍ−ｐ−ｎ個のデータを次回の出力用としてセレクタ１１により選択し、レジスタ１２に蓄える（Ｓ４４）。そして、それ以降のシフト量ｍをｍ−ｐ−ｎとする（Ｓ４５）。
【００３６】
以上の説明ではセレクタ１１において次回の出力用データを選択するものとしたが、レジスタ１２に蓄えたｎ−１個のデータの中からセレクタ１３で出力用データを選択する構成とすることも可能である。
【００３７】
また、データの個数については、以上の説明ではバイトを単位として説明したが、他のデータ単位をデータの個数としても本発明を同様に実施できる。
【実施例１】
【００３８】
ＩＴＵ−Ｔ勧告Ｇ．７０９で定義された光伝送ネットワークのＯＴＵｋフレームに対してＪＣ処理を行う場合の具体的な実施例について説明する。
【００３９】
図６はＯＴＵｋフレームの信号フォーマットを６４バイト並列で示す。このフレームは４つのサブフレームで構成され、１から３番目のサブフレームにはそれぞれ、１６バイトのオーバヘッドＯＨ１〜ＯＨ３と、３８０８バイトのクライアント・データと、２５６バイトのＦＥＣ（Forward Error Correction）コードとが含まれる。また、４番目のサブフレームには、１７バイトのオーバヘッドＯＨ４と、３８０７バイトのクライアント・データと、２５６バイトのＦＥＣコードとが含まれ、オーバヘッドＯＨ４の１６バイト目が通常はスタッフデータが挿入され負スタッフ時に実データが挿入される負スタッフバイトＮＪＯ、１７バイト目が通常は実データが挿入され正スタッフ時にスタッフデータが挿入される正スタッフバイトＰＪＯとなっている。これらのスタッフバイトの状況は、オーバヘッドＯＨ１〜ＯＨ３のそれぞれ１６バイト目に設けられたＪＣバイトで指定される。
【００４０】
図７はこのＯＴＵｋフレームを処理するＪＣ処理回路のブロック構成図である。このＪＣ処理回路は、並列に入力されたデータを蓄えるレジスタ２１−１〜２１−６４と、レジスタ２１−２〜２１−６４の出力が接続されるセレクタ２２と、セレクタ２２の出力を一時的に蓄えるレジスタ２３−１〜２３−６３と、レジスタ２１−２〜２１−６４の出力とレジスタ２３−１〜２３−６３の出力とが接続されるセレクタ２４と、セレクタ２４の出力に接続されたレジスタ２５−１〜２５−６４と、ＪＣ処理オン・オフ信号、フレームパルス（ＦＰ）、サブフレームパルス（ＳＦＰ）がそれぞれ入力されるレジスタ２６〜２８と、並列に入力されたデータからＪＣバイトを取り出すためのセレクタ２９と、セレクタ２９の出力に接続されたレジスタ３０〜３２と、レジスタ３０〜３２の出力に接続されたＪＣ判定回路３３と、レジスタ２６〜２８の出力、ＪＣ判定回路３３に接続されたセレクタ２２、２４を制御するコントローラ３４とを備える。
【００４１】
セレクタ２２、レジスタ２３−１〜２３−６３、セレクタ２４およびコントローラ３４はそれぞれ、図１のセレクタ１１、レジスタ１２、セレクタ１３およびシフト・コントローラ１５に相当する。これらの基本的な動作は上述した通りである。
【００４２】
上述したように、ＯＴＵｋフレームには、１ないし３番目のサブフレームのオーバヘッド領域にＪＣバイトが設けられる。このＪＣバイトをセレクタ２９により選択し、ＪＣ判定回路３３で２／３多数決を行って、４番目のサブフレームに存在する負スタッフバイトＮＪＯ、正スタッフバイトＰＪＯの状態を判定する。コントローラ３４は、この判定結果に基づき、レジスタ２７、２９を介して入力されるフレームパルスおよびサブフレームパルスに同期して、セレクタ２２および２４の動作を制御する。コントローラ３４にはまた、レジスタ２６を介してＪＣ処理オン・オフ信号が入力され、ＪＣ処理のオンまたはオフを制御できる。
【実施例２】
【００４３】
実施例１ではスタッフバイトの処理のみについて説明したが、図７に示した回路を利用して、ヘッダおよびＦＥＣについても取り除いて、クライアント・データのみを再整列させることもできる。
【００４４】
図８は図７の回路でクライアント・データのみを再整列させるための動作を説明するフローチャートである。この場合には、並列データに含まれているヘッダ、ＦＥＣおよびスタッフデータを一括して取り扱い、その個数をｑバイトとする。４番目のサブフレームに関しては、ヘッダの１５バイトに、負スタッフ時にはスタッフデータ数０バイト、通常時にはスタッフデータ数１バイト、正スタッフ時にはスタッフデータ数２バイトをｑの値に加える。ｑの値は０以上ｎ以下の正数であり、図５に示したフローチャートのｐが負の場合を除いたものと同様の処理で、クライアント・データのみを再整列させることができる。ｎの値は図７の回路ではｎ＝６４となるが、それ以外の値でも同様に本発明を実施できるので、以下ではｎのまま説明する。
【００４５】
まず、初期状態として、シフト量ｍを０とする（Ｓ５１）。ｎ並列のデータが入力されるごとに（Ｓ５２）、そのデータに含まれるヘッダ、ＦＥＣコードあるいはスタッフデータの個数をｑバイトとする（Ｓ５３）。
【００４６】
ｑがｍ以下の場合（Ｓ５４）には、前回入力された並列データのｎ番目から遡ってｍバイトのデータと、今回入力された並列データの１番目から付加データを除いたｎ−ｍバイトのデータとを出力し（Ｓ５５）、今回入力された並列データのｎ番目から遡って付加データを除いたｍ−ｑバイトのデータを次回の出力用として選択する（Ｓ５６）。そして、それ以降のシフト量ｍをｍ−ｑとする（Ｓ５７）。
【００４７】
ｑがｍより大きい場合には、次回の並列データの入力を待ち（Ｓ５８）、前回入力された並列データのうちｎ番目から遡ってｍバイトのデータと、今回入力された並列データからスタッフデータを除いたｎ−ｑバイトのデータとを次回の出力用として選択する（Ｓ５９）。そして、それ以降のシフト量ｍをｍ−ｑ＋ｎとする（Ｓ６０）。
【図面の簡単な説明】
【００４８】
【図１】本発明実施例のＪＣ処理回路を示すブロック構成図。
【図２】データ入力が２バイト並列の場合のＪＣ処理を説明する図。
【図３】データ入力が２バイト並列の場合のＪＣ処理の流れを示すフローチャート。
【図４】データ入力がｎバイト並列の場合のＪＣ処理の流れを示すフローチャート。
【図５】ＪＣ処理の流れをデータ入出力と関連させて示すフローチャート。
【図６】ＯＴＵｋフレームの信号フォーマットを説明する図。
【図７】ＯＴＵｋフレームを処理するＪＣ処理回路のブロック構成図。
【図８】データ再整列の動作を説明するフローチャート。
【図９】従来のＪＣ処理を説明する図。
【符号の説明】
【００４９】
１１、１３、２２、２４、２９  セレクタ
１２、２１−１〜２１−６４、２３−１〜２３−６３、２５−１〜２５−６４、２６〜２８、３０〜３２  レジスタ
１４  メモリ
１５  シフト・コントローラ
３３  ＪＣ判定回路
３４  コントローラ
【図１】
2008092415.tif 000003
【図２】
2008092415.tif 000004
【図３】
2008092415.tif 000005
【図４】
2008092415.tif 000006
【図５】
2008092415.tif 000007
【図６】
2008092415.tif 000008
【図７】
2008092415.tif 000009
【図８】
2008092415.tif 000010
【図９】
2008092415.tif 000011