(57)【要約】【課題】メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することができるデータ転送装置を提供する。【解決手段】データ転送装置２は、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２を有する第１バンク３１と、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２を有する第２バンク３２と、制御回路７０とを有する。第１バンク３１及び第２バンク３２はそれぞれ、基準周期で書き込み及び読み出しが行われ、且つ互いに逆相で書き込み状態と読み出し状態とに交互に変化する。制御回路６０は、入力されるデータ群を第１バンク３１及び第２バンク３２に順次記憶し、記憶したデータ群を順に読み出すように制御する。【選択図】図８
2015001986.tif 000002
【特許請求の範囲】
【請求項１】
データ群を順に書き込んで記憶し、記憶した順に読み出して出力するデータ転送装置であって、
基準周期で書き込み及び読み出しが行われる第１バンク第１メモリと第１バンク第２メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第１バンクと、
前記基準周期で書き込み及び読み出しが行われる第２バンク第１メモリと第２バンク第２メモリとを有し、前記第１バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第２バンクと、
入力されるデータ群を前記第１バンク及び前記第２バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
を有することを特徴とするデータ転送装置。
【請求項２】
前記基準周期の半分の周期であるデータ周期で入力される２つのデータを、前記基準周期ごとに結合して、上位データと下位データとを含む２倍長データとして出力する入力データクロック乗換回路と、
前記第１バンク及び前記第２バンクに記憶された前記２倍長データを前記基準周期で読み出し、前記上位データ及び下位データに分けて前記データ周期で出力する出力データクロック乗換回路と、
を更に有する、請求項１に記載のデータ転送装置。
【請求項３】
前記制御回路は、前記第１バンク及び前記第２バンクにおいて直前に記憶されたデータ群の末尾データが記憶されるアドレス位置よりも後のアドレス位置で、前記入力データクロック乗換回路が前記２倍長データを出力するときに書き込み可能な前記第１バンク又は前記第２バンクから順にデータ群を書き込む、請求項２に記載のデータ転送装置。
【請求項４】
前記制御回路は、前記第１バンクへの書き込みを可能にする第１バンク書き込みイネーブル信号と前記第２バンクへの書き込みを可能にする第２バンク書き込みイネーブル信号とを前記基準周期１サイクルごとに交互に出力する書き込みバンク切替スイッチと、前記第１バンク及び第２バンクの書き込みアドレス位置をインクリメントする書き込みポインタとを有し、
前記制御回路は、データ群の先頭のデータを受信したときに、前記第１バンク書き込みイネーブル信号及び前記第２バンク書き込みイネーブル信号に基づいて、前記第１バンク又は第２バンクの何れが書き込みイネーブル状態であるかを判定し、
前記第１バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第１バンク第１メモリに書き込み、
前記第１バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第１バンク第２メモリに書き込み、
前記第２バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第２バンク第１メモリに書き込み、
前記第２バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第２バンク第２メモリに書き込み、
前記先頭のデータが書き込まれたバンク及びメモリをそれぞれ記憶し、
書き込みポインタは、前記データ群の末尾のデータを書き込んだ後に、書き込みアドレスをインクリメントして、末尾のデータを書き込んだアドレスの次のアドレスを次のデータ群の書き込み開始アドレスとする、請求項１に記載のデータ転送装置。
【請求項５】
前記制御回路は、データ群の末尾のデータを書き込むときに、データ群の末尾のデータが前記第１バンク第１メモリ又は第２バンク第１メモリに書き込まれるか否かを判定すると共に、前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるか否かを判定し、
データ群の末尾のデータが前記第１バンク第１メモリに書き込まれ且つ前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるときに、前記第１バンク第２メモリに前記次のデータ群の先頭のデータを書き込み、
データ群の末尾のデータが前記第２バンク第１メモリに書き込まれ且つ前記データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるときに、前記第２バンク第２メモリに前記次のデータ群の先頭のデータを書き込む、請求項４に記載のデータ転送装置。
【請求項６】
前記制御回路は、前記第１バンク及び前記第２バンクにおいて直前に記憶されたデータ群の末尾データの記憶位置に続けて順にデータ群を書き込む、請求項２に記載のデータ転送装置。
【請求項７】
前記制御回路は、直前に記憶されたデータ群の末尾データが前記第１バンク第１メモリに記憶されたとき、データ群の先頭のデータを前記第１バンク第２メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第１バンク第２メモリに記憶されたとき、データ群の先頭のデータを前記第２バンク第１メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第２バンク第１メモリに記憶されたとき、データ群の先頭のデータを前記第２バンク第２メモリに書き込み、直前に記憶されたデータ群の末尾データが前記第２バンク第２メモリに記憶されたとき、データ群の先頭のデータを前記第１バンク第１メモリに書き込む、請求項６に記載のデータ転送装置。
【請求項８】
前記上位データを下位データとし且つ前記下位データを前記基準周期１サイクルに相当する時間遅延させて上位データとした第１遅延データを出力する第１遅延回路と、前記上位データ及び前記下位データを前記基準周期１サイクルに相当する時間遅延させた第２遅延データを出力する第２遅延回路と、前記上位データを前記基準周期１サイクルに相当する時間遅延させて下位データとし且つ前記下位データを前記基準周期２サイクルに相当する時間遅延させて上位データとした第３遅延データを出力する第３遅延回路と、を有するタイミング調整回路を更に有し、
前記制御回路は、直前に記憶されたデータ群の先頭のデータが書き込まれたバンク及びメモリ並びに直前に記憶されたデータ群のデータ長に基づいてデータ群の先頭のデータが書き込まれるバンク及びメモリを決定し、
データ群の先頭のデータが第１バンク第１メモリに書き込まれると決定したとき、前記上位データ及び前記下位データを、前記タイミング調整回路から出力し、
データ群の先頭のデータが第１バンク第２メモリに書き込まれると決定したとき、前記第１遅延データを、前記タイミング調整回路から出力し、
データ群の先頭のデータが第２バンク第１メモリに書き込まれると決定したとき、前記第２遅延データを、前記タイミング調整回路から出力し、
データ群の先頭のデータが第２バンク第２メモリに書き込まれると決定したとき、前記第３遅延データを、前記タイミング調整回路から出力する、請求項７に記載のデータ転送装置。
【請求項９】
基準周期で書き込み及び読み出しが行われる第１バンク第１メモリと第１バンク第２メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第１バンクと、
前記基準周期で書き込み及び読み出しが行われる第２バンク第１メモリと第２バンク第２メモリとを有し、前記第１バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第２バンクと、
入力されるデータ群を前記第１バンク及び前記第２バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
を有することを特徴とするバッファリング回路。
【請求項１０】
基準周期で書き込み及び読み出しが行われる第１バンク第１メモリと第１バンク第２メモリとを有し、前記基準周期ごとに書き込み状態と読み出し状態とに交互に変化する第１バンクと、
前記基準周期で書き込み及び読み出しが行われる第２バンク第１メモリと第２バンク第２メモリとを有し、前記第１バンクと逆相で書き込み状態と読み出し状態とに交互に変化する第２バンクと、
入力されるデータ群を前記第１バンク及び前記第２バンクに順次記憶し、記憶した前記データ群を順に読み出すように制御する制御回路と、
を有することを特徴とするバッファリング回路を使用するバッファリング方法において、
前記第１バンクへの書き込みを可能にする第１バンク書き込みイネーブル信号と前記第２バンクへの書き込みを可能にする第２バンク書き込みイネーブル信号とを前記基準周期１サイクルごとに交互に出力し、
データ群の先頭のデータを受信したときに、前記第１バンク書き込みイネーブル信号及び前記第２バンク書き込みイネーブル信号に基づいて、前記第１バンク又は第２バンクの何れのメモリが書き込みイネーブル状態であるかを判定し、
前記第１バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第１バンク第１メモリに書き込み、
前記第１バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第１バンク第２メモリに書き込み、
前記第２バンクが書き込みイネーブル状態であり且つ前記先頭のデータが上位データに割り当てられているときは、前記先頭のデータを前記第２バンク第１メモリに書き込み、
前記第２バンクが書き込みイネーブル状態であり且つ前記先頭のデータが下位データに割り当てられているときは、前記先頭のデータを前記第２バンク第２メモリに書き込み、
前記先頭のデータが書き込まれたバンク及びメモリをそれぞれ記憶し、
前記データ群の末尾のデータを書き込んだ後に、書き込みアドレスをインクリメントして、末尾のデータを書き込んだアドレスの次のアドレスを次のデータ群の書き込み開始アドレスとする、
ことを特徴とするバッファリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、バッファリング回路及びバッファリング方法に関する。
【背景技術】
【０００２】
複数のバンクを有するメモリを使用してＦＩＦＯ（Ｆｉｒｓｔ Ｉｎ Ｆｉｒｓｔ Ｏｕｔ）を形成することが知られている。複数のバンクを有するＦＩＦＯでは、書き込みをしているバンクと異なるバンクに記憶されるデータを読み出すことにより、書き込み及び読み出しが非同期に実行される。
【０００３】
また、クロック信号の１周期の間でＲＡＭ（Random Access Memory）などのメモリに記憶されたデータの読み出し及びメモリへのデータの書き込みを行うようにした記憶方法が知られている。この記憶方法では、メモリにクロック信号の１周期の少なくとも１／２の周期で書き込み期間と読み出し期間が変わるタイミング信号を供給することにより、クロック信号の１周期の間でデータの読み出し及びデータの書き込みを実行している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３０７４７５号公報
【特許文献２】特開平６−３０１５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のＦＩＦＯでは、メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することが難しいという問題がある。そこで、メモリにデータを書き込む時間よりも短いクロック周期を有するデータを記憶することができるデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、データ転送装置は、第１バンクと、第２バンクと、制御回路とを有する。データ転送装置は、データ周期で転送されてくるデータ群を順に書き込んで記憶し、記憶した順に読み出して出力する。入力データクロック乗換回路は、データ周期で入力される２つのデータを、データ周期の２倍の基準周期ごとに結合して、上位データと下位データとを含む２倍長データとして出力する。第１バンクは、基準周期で書き込み及び読み出しが行われる第１バンク第１メモリと第１バンク第２メモリとを有し、基準周期ごとに書き込み状態と読み出し状態とに交互に変化する。第２バンクは、基準周期で書き込み及び読み出しが行われる第２バンク第１メモリと第２バンク第２メモリとを有し、第１バンクと逆相で書き込み状態と読み出し状態とに交互に変化する。出力データクロック乗換回路は、第１バンク及び第２バンクに記憶された２倍長データを基準周期で読み出し、上位データ及び下位データに分けてデータ周期で出力する。制御回路は、入力されるデータ群を第１バンク及び第２バンクに順次記憶し、記憶したデータ群を順に読み出すように制御する。
【発明の効果】
【０００７】
入力されたデータ群をデータ周期の２場の基準周期ごとに第１バンク及び第２バンクに順次記憶し、記憶したデータ群を順に読み出すように制御するため、第１バンク及び第２バンクの書き込み時間の２倍のデータ周期を有するデータが書き込まれる。
【図面の簡単な説明】
【０００８】
【図１】データ転送装置の一例の回路ブロック図である。
【図２】（ａ）は図１に示すデータ転送装置の入力データクロック乗換回路の内部回路ブロック図であり、（ｂ）は（ａ）に示す入力データクロック乗換回路のタイムチャートを示す図である。
【図３】図１に示すデータ転送装置のタイミング調整回路の内部回路ブロック図である。
【図４】図１に示すデータ転送装置の出力データクロック乗換回路の内部回路ブロック図である。
【図５】図１に示すデータ転送装置の制御回路の内部回路ブロック図である。
【図６】図１に示すデータ転送装置のタイムチャートを示す図である。
【図７】（ａ）は図６に示すタイムチャートの第１の書き込み状態を示す図であり、（ｂ）は図６に示すタイムチャートの第２の書き込み状態を示す図であり、（ｃ）は図６に示すタイムチャートの第３の書き込み状態を示す図であり、（ｄ）は図６に示すタイムチャートの第４の書き込み状態を示す図である。
【図８】データ転送装置の他の例の回路ブロック図である。
【図９】図８に示すデータ転送装置の制御回路の内部回路ブロック図である。
【図１０】（ａ）は図９に示す制御回路のデータ情報ＦＩＦＯキュー群の内部回路ブロック図であり、（ｂ）は（ａ）に示すデータ情報ＦＩＦＯキュー群に記憶されるデータの一例を示す図である。
【図１１】図８に示すデータ転送装置の書き込みポインタの内部回路ブロック図である。
【図１２】図８に示すデータ転送装置の読み出しポインタの内部回路ブロック図である。
【図１３】（ａ）は図８に示すデータ転送装置の書き込み状態のタイムチャートを示す図であり、（ｂ）は（ａ）に示すタイムチャートの第１の書き込み状態を示す図であり、（ｃ）は（ａ）に示すタイムチャートの第２の書き込み状態を示す図であり、（ｄ）は（ａ）に示すタイムチャートの第３の書き込み状態を示す図であり、（ｅ）は（ａ）に示すタイムチャートの第４の書き込み状態を示す図である。
【図１４】（ａ）は図８に示すデータ転送装置に入力されるデータ群の一例を示す図であり、（ｂ）は（ａ）に示すデータ群の書き込み状態の一例を示す図であり、（ｃ）は（ａ）に示すデータ群の書き込み状態の他の例を示す図であり、（ｄ）は図８に示すデータ転送装置に入力されるデータ群の他の例を示す図であり、（ｅ）は（ｄ）に示すデータ群の書き込み状態の一例を示す図であり、（ｆ）は（ｄ）に示すデータ群の書き込み状態の他の例を示す図である。
【図１５Ａ】図８に示すデータ転送装置のタイムチャートの一例を示す図である。
【図１５Ｂ】図８に示すデータ転送装置のタイムチャートの一例を示す図である。
【図１６Ａ】図８に示すデータ転送装置のタイムチャートの他の例を示す図である。
【図１６Ｂ】図８に示すデータ転送装置のタイムチャートの他の例を示す図である。
【発明を実施するための形態】
【０００９】
以下図面を参照して、本発明に係るデータ転送装置について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
【００１０】
図１は、データ転送装置の一例の回路ブロック図である。
【００１１】
データ転送装置１は、入力データクロック乗換回路１０と、タイミング調整回路２０と、バッファ３０と、出力選択回路４０と、出力データクロック乗換回路５０と、制御回路６０とを有する。
【００１２】
図２（ａ）は入力データクロック乗換回路１０の内部回路ブロック図であり、図２（ｂ）は入力データクロック乗換回路１０のタイムチャートを示す図である。
【００１３】
入力データクロック乗換回路１０は、第１ラッチ回路１１と、第２ラッチ回路１２と第３ラッチ回路１３と、分周回路１４とを有する。第１〜第３ラッチ回路１１〜１３はそれぞれ８ｂｙｔｅのデータバス幅を有するデータをラッチし、入力されるクロック信号に応じてラッチしたデータを出力する。分周回路１４は、入力データのクロック周期に応じた入力側クロック信号が入力され、入力されたクロック信号の周期の２倍の周期である出力側クロック信号として出力する。出力側クロック信号は、不図示の配線を介してタイミング調整回路２０及び制御回路６０に提供され、タイミング調整回路２０及び制御回路６０で基準クロックとして使用される。すなわち、タイミング調整回路２０及び制御回路６０で使用されるクロック信号の周期は、入力されたデータのクロックの２倍の周期となる。本明細書では、入力されたデータのクロックの２倍の周期を基準周期と称する。
【００１４】
第１ラッチ回路１１は、入力側クロック信号で８ｂｙｔｅのデータバス幅を有する入力データをラッチして、ラッチしたデータを入力側クロック信号に応じて出力する。第２ラッチ回路１２は、第１ラッチ回路１１から出力される８ｂｙｔｅのデータバス幅を有するデータを、入力側クロック信号の２倍の周期である出力側クロック信号に応じて上位データＵｐ＿Ｗ＿Ｄａｔａとして出力する。第３ラッチ回路１３は、８ｂｙｔｅのデータバス幅を有する入力データを入力側クロック信号の２倍の周期を有する出力側クロック信号に応じて下位データＬｗ＿Ｗ＿Ｄａｔａとして出力する。
【００１５】
入力データクロック乗換回路１０は、８ｂｙｔｅのデータバス幅を有する入力データを１６ｂｙｔｅのデータバス幅を有する出力データとして入力データのデータレートの半分のデータレートで出力する。
【００１６】
図２（ｂ）に示す例では、入力側クロックの偶数の周期でラッチされたデータは、上位データＵｐ＿Ｗ＿Ｄａｔａとして出力され、入力側クロックの奇数の周期でラッチされたデータは、下位データＬｗ＿Ｗ＿Ｄａｔａとして出力される。
【００１７】
第１データ群Ａ１〜Ａ５の先頭のデータＡ１は上位データＵｐ＿Ｗ＿Ｄａｔａとして出力され、第２のデータＡ２は下位データＬｗ＿Ｗ＿Ｄａｔａとして出力される。そして、第１データ群Ａ１〜Ａ５の末尾のデータＡ５は、上位データＵｐ＿Ｗ＿Ｄａｔａとして出力される。
【００１８】
一方、第２データ群Ｂ１〜Ｂ４及び第３データ群Ｃ１〜Ｃ３の先頭のデータＢ１及びＣ１はそれぞれ下位データＬｗ＿Ｗ＿Ｄａｔａとして出力され、第２のデータＢ２及びＣ２はそれぞれ上位データＵｐ＿Ｗ＿Ｄａｔａとして出力される。第１データ群の先頭のデータＡ１は偶数のサイクルであるサイクル０で到達するのに対し、第２データ群及び第３データ群の先頭のデータＢ１及びＣ１はそれぞれ奇数のサイクルであるサイクル７及び１１で到達するためである。
【００１９】
入力データクロック乗換回路１０は、データ周期で入力される２つのデータを、データ周期の２倍の基準周期ごとに結合して、上位データＵｐ＿Ｗ＿Ｄａｔａと下位データＬｗ＿Ｗ＿Ｄａｔａとを含む２倍長データとして出力する。
【００２０】
図３は、タイミング調整回路２０の内部回路ブロック図である。
【００２１】
タイミング調整回路２０は、第１遅延回路２１と、第２遅延回路２２と、第３遅延回路２３と、遅延選択回路２４とを有する。
【００２２】
第１遅延回路２１は、入力される上位データＵｐ＿Ｗ＿Ｄａｔａを下位データＬｗ＿Ｗ＿Ｄａｔａとすると共に、入力される下位データＬｗ＿Ｗ＿Ｄａｔａを基準周期１サイクルに相当する時間遅延させて上位データＵｐ＿Ｗ＿Ｄａｔａとして出力する。第１遅延回路２１から出力されるデータは、遅延選択回路２４の第２入力端子Ｄｉｎ１に第１遅延データとして入力される。第２遅延回路２２は、入力される上位データＵｐ＿Ｗ＿Ｄａｔａ及び下位データＬｗ＿Ｗ＿Ｄａｔａをそれぞれ基準周期１サイクルに相当する時間遅延させて出力する。第２遅延回路２２から出力されるデータは、遅延選択回路２４の第３入力端子Ｄｉｎ２に第２遅延データとして入力される。第３遅延回路２３は、第１遅延回路２１から出力される上位データＵｐ＿Ｗ＿Ｄａｔａ及び下位データＬｗ＿Ｗ＿Ｄａｔａをそれぞれ、基準周期１サイクルに相当する時間更に遅延させて出力する。第３遅延回路２３から出力されるデータは、遅延選択回路２４の第４入力端子Ｄｉｎ３に第３遅延データとして入力される。第３遅延データの下位データＬｗ＿Ｗ＿Ｄａｔａは、入力される上位データＵｐ＿Ｗ＿Ｄａｔａを基準周期１サイクルに相当する時間に遅延させたデータである。第３遅延データの上位データＵｐ＿Ｗ＿Ｄａｔａは、入力される下位データＬｗ＿Ｗ＿Ｄａｔａを基準周期２サイクルに相当する時間遅延させたデータである。
【００２３】
遅延選択回路２４の第１入力端子Ｄｉｎ０には、入力データクロック乗換回路１０から出力されるデータが入力される。遅延選択回路２４の第２入力端子Ｄｉｎ１には、第１遅延回路２１から出力される第１遅延データが入力される。遅延選択回路２４の第３入力端子Ｄｉｎ２には、第２遅延回路２２から出力される第２遅延データが入力される。遅延選択回路２４の第４入力端子Ｄｉｎ３には、第３遅延回路２３から出力される第３遅延データが入力される。遅延選択回路２４は、制御回路６０から入力される遅延選択信号に基づいて、第１入力端子Ｄｉｎ０、第２入力端子Ｄｉｎ１、第３入力端子Ｄｉｎ２又は第４入力端子Ｄｉｎ３の入力されるデータの何れか１つのデータを出力端子Ｄｏｕｔから出力する。
【００２４】
バッファ３０は、第１バンク３１と第２バンク３２とを有する。第１バンク３１は、第１バンク第１メモリ３１１と、第１バンク第２メモリ３１２とを有する。第２バンク３２は、第２バンク第１メモリ３２１と、第２バンク第２メモリ３２２とを有する。
【００２５】
第１バンク第１メモリ３１１、第１バンク第２メモリ３１２、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２はそれぞれ、８ｂｙｔｅのデータバス幅を有する入力データを記憶可能なＲＡＭである。
【００２６】
第１バンク第１メモリ３１１は、書き込みイネーブル端子ＷＥに書き込みイネーブル信号が入力されるときに、タイミング調整回路２０から出力される上位データＵｐ＿Ｗ＿Ｄａｔａをアドレス入力端子Ａｄｒｓで指定されるアドレスに書き込む。第１バンク第２メモリ３１２は、書き込みイネーブル端子ＷＥに書き込みイネーブル信号が入力されるときに、タイミング調整回路２０から出力される下位データＬｗ＿Ｗ＿Ｄａｔａをアドレス入力端子Ａｄｒｓで指定されるアドレスに書き込む。第２バンク第１メモリ３２１は、書き込みイネーブル端子ＷＥに書き込みイネーブル信号が入力されるときに、タイミング調整回路２０から出力される上位データＵｐ＿Ｗ＿Ｄａｔａをアドレス入力端子Ａｄｒｓで指定されるアドレスに書き込む。第２バンク第２メモリ３２２は、書き込みイネーブル端子ＷＥに書き込みイネーブル信号が入力されるときに、タイミング調整回路２０から出力される下位データＬｗ＿Ｗ＿Ｄａｔａをアドレス入力端子Ａｄｒｓで指定されるアドレスに書き込む。
【００２７】
第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２の書き込みイネーブル端子ＷＥには、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｕｐ及びＤａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｌｗがそれぞれ入力される。第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２の書き込みイネーブル端子ＷＥには、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２の書き込みイネーブル端子ＷＥに入力される信号の反転信号が入力される。第２バンク３２に配置されるメモリの書き込みイネーブル端子ＷＥに反転信号が入力されるので、第１バンク３１に配置されるメモリへの書き込みがイネーブルのとき、第２バンク３２に配置されるメモリへの書き込みはディセーブルである。また、第１バンク３１に配置されるメモリへの書き込みがディセーブルのとき、第２バンク３２に配置されるメモリへの書き込みはイネーブルである。
【００２８】
第１バンク第１メモリ３１１及び第２バンク第１メモリ３２１はそれぞれ、アドレス入力端子Ａｄｒｓで指定されるアドレスに記憶されるデータを上位データＵｐ＿Ｒ＿Ｄａｔａとして読み出す。第１バンク第２メモリ３１２及び第２バンク第２メモリ３２２はそれぞれ、アドレス入力端子Ａｄｒｓで指定されるアドレスにタイミング調整回路２０に記憶されるデータを下位データＬｗ＿Ｒ＿Ｄａｔａとして読み出す。
【００２９】
第１バンク３１は、基準周期で書き込み及び読み出しが行われる第１バンク第１メモリ３１１と第１バンク第２メモリ３１２とを有し、基準周期ごとに書き込み状態と読み出し状態とに交互に変化する。第２バンク３２は、基準周期で書き込み及び読み出しが行われる第２バンク第１メモリ３２１と第２バンク第２メモリ３２２とを有し、第１バンク３１と逆相で書き込み状態と読み出し状態とに交互に変化する。
【００３０】
出力選択回路４０は、出力選択端子ＳＥＬに入力される信号に基づいて、第１データ入力端子Ｄｉｎ０に入力されるデータ又は第２データ入力端子Ｄｉｎ１に入力されるデータの何れか一方のデータを出力する。第１データ入力端子Ｄｉｎ０には、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２から出力されるデータが入力される。第２データ入力端子Ｄｉｎ１には、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２から出力されるデータが入力される。
【００３１】
出力選択回路４０の出力選択端子ＳＥＬは、制御回路６０の第１読み出しイネーブル端子ＲＥ１及び第２読み出しイネーブル端子ＲＥ２からの出力信号をバッファリングした信号が入力される。出力選択回路４０は、第１バンク３１に配置されるメモリが書き込みディセーブルのときに読み出されるデータを選択する。また、出力選択回路４０は、第１バンク３１に配置されるメモリが書き込みイネーブルのときに第２バンク３２に配置されるメモリから読み出されるデータを選択する。第１バンク３１に配置されるメモリが書き込みイネーブルのとき、第２バンク３２に配置されるメモリは書き込みディセーブルである。したがって、出力選択回路４０は、第２バンク３２に配置されるメモリが書き込みディセーブルのときに読み出されるデータを選択する。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗに基づいて、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２の双方又は何れか一方に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗの双方が１であり且つ第１バンク３１が選択されているとき、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２の双方に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐのみが１であり且つ第１バンク３１が選択されているとき、第１バンク第１メモリ３１１に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｌｗのみが１であり且つ第１バンク３１が選択されているとき、第１バンク第２メモリ３１２に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗに基づいて、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２の一方のメモリの双方又は何れか一方に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗの双方が１であり且つ第２バンク３２が選択されているとき、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２の双方に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐのみが１であり且つ第２バンク３２が選択されているとき、第２バンク第１メモリ３２１に記憶されるデータを読み出す。出力選択回路４０は、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｌｗのみが１であり且つ第２バンク３２がに配置されるメモリが書き込みイネーブルのとき、第２バンク第２メモリ３２２に記憶されるデータを読み出す。
【００３２】
図４は、出力データクロック乗換回路５０の内部回路ブロック図である。
【００３３】
出力データクロック乗換回路５０は、第１ラッチ回路５１と、第２ラッチ回路５２と第３ラッチ回路５３と、分周回路５４と、出力データ選択回路５５とを有する。第１〜第３ラッチ回路５１〜５３はそれぞれ８ｂｙｔｅのデータバス幅を有するデータをラッチし、入力されるクロック信号に応じてラッチしたデータを出力する。分周回路５４は、入力データのクロック周期に応じた入力側クロック信号が入力され、入力されたクロック信号の周期の２倍の周期を有するクロック信号を出力側クロック信号として出力する。
【００３４】
第１ラッチ回路５１は、出力選択回路４０から出力される上位データＵｐ＿Ｒ＿Ｄａｔａを入力側クロック信号の２倍の周期を有する出力側クロック信号に応じてラッチして、出力データ選択回路５５の第１データ入力端子Ｄｉｎ０に出力する。第２ラッチ回路５２は、出力選択回路４０から出力される下位データＬｗ＿Ｒ＿Ｄａｔａを入力側クロック信号の２倍の周期を有する出力側クロック信号に応じてラッチして、第３ラッチ回路５３に出力する。第３ラッチ回路５３は、第２ラッチ回路５２から下位データＬｗ＿Ｒ＿Ｄａｔａ出力されるデータを入力側クロック信号に応じてラッチして、出力データ選択回路５５の第２データ入力端子Ｄｉｎ１に出力する。
【００３５】
出力データ選択回路５５は、選択信号端子ＳＥＬに入力される入力側クロック信号に応じて第１データ入力端子及Ｄｉｎ０及び第２データ入力端子及Ｄｉｎ１に入力されるデータを入力側クロック信号１サイクルごとに交互に出力する。出力データ選択回路５５は、第１バンク第１メモリ３１１、第１バンク第２メモリ３１２、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２に記憶されるデータを、基準周期の半分の周期で順次出力する。
【００３６】
出力データクロック乗換回路５０は、第１バンク第１メモリ３１１、第１バンク第２メモリ３１２、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２に記憶された２倍長データを基準周期で読み出し、上位データ及び下位データに分けてデータ周期で出力する。
【００３７】
図５は、制御回路６０の内部回路ブロック図である。
【００３８】
制御回路６０は、書き込みバンク切替スイッチ６１と、書き込み制御回路６２と、読み出し制御回路６３と、データ長保持ＦＩＦＯキュー６４と、書き込みポインタ６５と、読み出しポインタ６６とを有する。制御回路６０は、第１バンクアドレス選択回路６７と、第２バンクアドレス選択回路６８とを更に有する。
【００３９】
書き込みバンク切替スイッチ６１は、トグル動作して、基準周期１サイクルごとに０と１とを順次出力する。書き込みバンク切替スイッチ６１が０を出力するサイクルでは、第１バンク３１が書き込みバンクとして選択され、書き込みバンク切替スイッチ６１が１を出力するサイクルでは、第２バンク３２が書き込みバンクとして選択される。
【００４０】
書き込み制御回路６２は、入力データクロック乗換回路１０からのデータと、書き込みバンク切替スイッチ６１からの信号が入力される。書き込み制御回路６２は、入力データクロック乗換回路１０からのデータに基づいて、入力されるデータ群のデータ長を決定して、データ長に対応するデータ長情報をデータ長保持ＦＩＦＯキュー６４に出力する。例えば、入力されるデータ群がＩＰパケットである場合には、書き込み制御回路６２は、ＩＰヘッダを読み込んで、データ長を決定する。
【００４１】
バッファ３０にデータ群を書き込む間、書き込み制御回路６２は、第２バンク第２メモリにデータが書き込まれたか否かを判定する。第２バンク第２メモリにデータが書き込まれたと判定したときに、書き込み制御回路６２は、書き込みポインタ６５にインクリメント信号を出力する。
【００４２】
書き込み制御回路６２は、データ群の先頭のデータが書き込まれたバンク及びメモリ、並びに決定したデータ群のデータ長に基づいて、データ群の末尾のデータが書き込まれるバンク及びメモリを決定する。次いで、書き込み制御回路６２は、次に到達するデータ群の先頭のデータを書き込むバンク及びメモリを決定する。
【００４３】
データ群の末尾のデータが第１バンク第１メモリ３１１に書き込まれると決定されるとき、次のデータ群の先頭のデータは第１バンク第２メモリ３１２に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクを示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第２メモリを示す。データ群の末尾のデータが第１バンク第２メモリ３１２に書き込まれると決定されるとき、次のデータ群の先頭のデータは第２バンク第１メモリ３２１に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第２バンクを示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリを示す。
【００４４】
データ群の末尾のデータが第２バンク第１メモリ３２１に書き込まれると決定されるとき、次のデータ群の先頭のデータは第２バンク第２メモリ３２２に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第２バンクを示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第２メモリを示す。データ群の末尾のデータが第２バンク第２メモリ３２２に書き込まれると決定されるとき、次のデータ群の先頭のデータは第１バンク第１メモリ３１１に書き込まれると決定される。このとき、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクを示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリを示す。
【００４５】
書き込み制御回路６２は、次に到達するデータ群の先頭のデータを書き込むバンクが第１バンク又は第２バンクの何れかであるかを示す先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋを記憶する。また、書き込み制御回路６２は、次に到達するデータ群の先頭のデータを書き込むメモリが第１メモリ又は第２メモリの何れかであるかを示す先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎを記憶する。
【００４６】
書き込み制御回路６２は、次に到達するデータ群の先頭のデータが入力されると、書き込みバンク切替スイッチ６１の出力信号と、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋとを比較する。書き込みバンク切替スイッチ６１の出力信号選択するバンクと、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋが示すバンクとが一致するとき、書き込み制御回路６２は、バンク一致信号を生成し記憶する。書き込みバンク切替スイッチ６１の出力信号選択するバンクと、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋが示すバンクとが一致しないとき、書き込み制御回路６２は、バンク不一致信号を生成し記憶する。
【００４７】
次いで、書き込み制御回路６２は、入力データクロック乗換回路１０が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎとを比較する。書き込み制御回路６２は、入力データクロック乗換回路１０が割り当てた先頭のデータ位置が上位データであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリが第１メモリであるとき、両者は一致していると判定する。また、書き込み制御回路６２は、入力データクロック乗換回路１０が割り当てた先頭のデータ位置が下位データであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリが第２メモリであるとき、両者は一致していると判定する。一方、書き込み制御回路６２は、入力データクロック乗換回路１０が割り当てた先頭のデータ位置が上位データであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリが第２メモリであるとき、両者は一致していないと判定する。また、書き込み制御回路６２は、入力データクロック乗換回路１０が割り当てた先頭のデータ位置が下位データであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリが第１メモリであるとき、両者は一致していないと判定する。
【００４８】
入力データクロック乗換回路１０が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリとが一致するとき、書き込み制御回路６２は、メモリ一致信号を生成し記憶する。入力データクロック乗換回路１０が割り当てた先頭のデータのデータ位置と、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎが示すメモリとが一致しないとき、書き込み制御回路６２は、メモリ不一致信号を生成し記憶する。
【００４９】
書き込み制御回路６２は、タイミング調整回路２０にタイミング選択信号を出力して、入力データクロック乗換回路１０から出力されるデータに適当な遅延時間を付加する。書き込み制御回路６２が入力データクロック乗換回路１０から出力されるデータに適当な遅延時間を付加することによって、データ群の先頭のデータを書き込み可能なバンク及びメモリと一致するまで、入力されたデータ群は待機する。
【００５０】
書き込み制御回路６２は、データ群のデータ長と書き込まれるデータ群の先頭のデータのデータ位置とから、入力されたデータ群を書き込む期間である書き込み期間を演算する。書き込まれるデータ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間は、データ長の半分に相当するサイクル数になる。また、書き込まれるデータ群の先頭のデータが下位データＬｗ＿Ｗ＿Ｄａｔａに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間はデータ長の半分に１を加算した値に相当するサイクル数になる。また、データ群のデータ長が奇数である場合、データ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａ又は下位データＬｗ＿Ｗ＿Ｄａｔａに割り当てられるかにかかわらず、書き込み期間はデータ長の半分に１を加算した値に相当するサイクル数になる。例えば、書き込まれるデータ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａに割り当てられ、データ長が８である場合、書き込み期間は基準周期４サイクルに相当する期間となる。書き込まれるデータ群の先頭のデータが下位データＬｗ＿Ｗ＿Ｄａｔａに割り当てられ、データ長が８である場合、書き込み期間は基準周期５サイクルに相当する期間となる。データ長が１１である場合、書き込み期間は基準周期６サイクルに相当する期間となる。
【００５１】
書き込み制御回路６２がバンク一致信号及びメモリ一致信号を記憶しているとき、書き込み制御回路６２は、タイミング調整回路２０が第１入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力する。また、書き込み制御回路６２は、演算した書き込み期間に相当する期間に亘って、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗを出力する。
【００５２】
書き込み制御回路６２がバンク一致信号及びメモリ不一致信号を記憶しているとき、書き込み制御回路６２は、タイミング調整回路２０が第２入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力する。また、書き込み制御回路６２は、演算した書き込み期間に相当する期間に亘って、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗを出力する。
【００５３】
書き込み制御回路６２がバンク不一致信号及びメモリ一致信号を記憶しているとき、書き込み制御回路６２は、基準周期１サイクルに相当する時間待機する。次いで、書き込み制御回路６２は、タイミング調整回路２０が第３入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力すると共に、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗを出力する。
【００５４】
書き込み制御回路６２がバンク不一致信号及びメモリ不一致信号を記憶しているとき、書き込み制御回路６２は、基準周期１サイクルに相当する時間待機する。次いで、書き込み制御回路６２は、タイミング調整回路２０が第４入力端子に入力されるデータを出力するようにタイミング選択信号を書き込み期間の間、出力すると共に、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗを出力する。
【００５５】
読み出し制御回路６３は、データ長保持ＦＩＦＯキュー６４からデータ有信号が入力され且つ読み出しＯＫ信号ＯＫが読み出しイネーブル状態になったときに、読み出し制御を開始する。読み出しイネーブル信号ＲＥは、出力先がビジーのときにディセーブル状態を示す１が入力され、出力先がビジーでないときにイネーブル状態を示す０が入力される。
【００５６】
読み出し制御回路６３は、直前に記憶されたデータ群の末尾のデータが記憶されるバンク及びメモリに基づいて、読み出すデータ群の先頭のデータのバンク、メモリ及びアドレスを決定する。直前に記憶されたデータ群の末尾のデータが第１バンク第１メモリ３１１に記憶されていた場合、読み出すデータ群の先頭のデータは、第１バンク第２メモリ３１２の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第１バンク第２メモリ３１２に記憶されていた場合、読み出すデータ群の先頭のデータは、第２バンク第１メモリ３２１の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第２バンク第１メモリ３２１に記憶されていた場合、読み出すデータ群の先頭のデータは、第２バンク第２メモリ３２２の同一アドレスに記憶されていると決定される。直前に記憶されたデータ群の末尾のデータが第２バンク第２メモリ３２２に記憶されていた場合、読み出すデータ群の先頭のデータは、第１バンク第１メモリ３１１の次のアドレスに記憶されていると決定される。
【００５７】
次いで、読み出し制御回路６３は、書き込みバンク切替スイッチ６１の出力信号に基づいて、読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されているか否かを判定する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていると判定された場合、読み出し制御回路６３は、基準周期１サイクルの間、待機した後に、読み出しを開始する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていないと判定された場合、読み出し制御回路６３は、読み出しを開始する。読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗが１であり且つ第２バンク３２が書き込みバンクとして選択されているとき、第１読み出しイネーブル端子ＲＥ１から出力される信号が１になる。すなわち、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐが１であり且つ第２バンク３２が書き込みバンクとして選択されているとき、第１読み出しイネーブル端子ＲＥ１（Ｕｐ）から出力される信号が１になる。また、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｌｗが１であり且つ第２バンク３２が書き込みバンクとして選択されているとき、第１読み出しイネーブル端子ＲＥ１（Ｌｗ）から出力される信号が１になる。読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐ／Ｌｗが１であり且つ第１バンク３１が書き込みバンクとして選択されているとき、第２読み出しイネーブル端子ＲＥ２から出力される信号が１になる。すなわち、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｕｐが１であり且つ第１バンク３１が書き込みバンクとして選択されているとき、第２読み出しイネーブル端子ＲＥ２（Ｕｐ）から出力される信号が１になる。また、読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅ＿Ｌｗが１であり且つ第１バンク３１が書き込みバンクとして選択されているとき、第２読み出しイネーブル端子ＲＥ２（Ｌｗ）から出力される信号が１になる。
【００５８】
バッファ３０に記憶されるデータ群を読み出す間、読み出し制御回路６３は、第２バンク第２メモリ３２２にデータが読み出されたか否かを判定する。第２バンク第２メモリ３２２にデータが読み出されたと判定したときに、書き込み制御回路６２は、読み出しポインタ６６にインクリメント信号を出力する。
【００５９】
読み出し制御回路６３は、データ長保持ＦＩＦＯキュー６４に記憶されるデータ群のデータ長情報に基づいて、バッファ３０に記憶されたデータ群を読み出す期間である読み出し期間を演算する。読み出し制御回路６３は、読み出し期間が終了すると、読み出しを終了する。読み出し制御回路６３は、読み出しが終了したとき、末尾のデータが記憶されていたバンク及びメモリを記憶する。
【００６０】
データ長保持ＦＩＦＯキュー６４は、書き込み制御回路６２が決定したデータ群のデータ長を示すデータ長情報を順次記憶する。書き込みポインタ６５は、書き込み制御回路６２からインクリメント信号が入力されたときに、書き込みアドレスをインクリメントする。読み出しポインタ６６は、読み出し制御回路６３からインクリメント信号が入力されたときに、読み出しアドレスをインクリメントする。書き込みポインタ６５及び読み出しポインタ６６は書き込みアドレス及び読み出しアドレスが最大アドレスに達した後に、先頭のアドレスにラップアラウンドする。
【００６１】
第１バンクアドレス選択回路６７は、書き込みバンク切替スイッチ６１から出力される信号に基づいて、書き込みポインタ６５から出力される書き込みアドレス、及び読み出しポインタ６６から出力される読み出しアドレスの何れか一方を選択する。第１バンクアドレス選択回路６７は、書き込みバンク切替スイッチ６１が０を出力して、第１バンク３１を書き込みバンクとして選択するとき、書き込みポインタ６５から出力される書き込みアドレスを出力する。第１バンクアドレス選択回路６７は、書き込みバンク切替スイッチ６１が１を出力して、第２バンク３２を書き込みバンクとして選択するとき、読み出しポインタ６６から出力される読み出しアドレスを出力する。
【００６２】
第２バンクアドレス選択回路６８は、書き込みバンク切替スイッチ６１から出力される信号に基づいて、書き込みポインタ６５から出力される書き込みアドレス、及び読み出しポインタ６６から出力される読み出しアドレスの何れか一方を選択する。第２バンクアドレス選択回路６８は、書き込みバンク切替スイッチ６１が０を出力して、第１バンク３１を書き込みバンクとして選択するとき、読み出しポインタ６６から出力される読み出しアドレスを出力する。第２バンクアドレス選択回路６８は、書き込みバンク切替スイッチ６１が１を出力して、第２バンク３２を書き込みバンクとして選択するとき、書き込みポインタ６５から出力される書き込みアドレスを出力する。
【００６３】
制御回路６０は、入力データクロック乗換回路１０に入力されるデータ群を第１バンク３１及び第２バンク３２に順次記憶し、記憶したデータ群を順に読み出して出力データクロック乗換回路５０から出力するように制御する。制御回路６０は、第１バンク３１及び第２バンク３２において直前に記憶されたデータ群の末尾データの記憶位置に続けて順にデータ群を書き込む。
【００６４】
図６は、データ転送装置１のタイムチャートを示す図である。図６において、１サイクルは基準周期に対応し、「Ｕｐ／Ｌｗ＿Ｄａｔａ」は入力データクロック乗換回路１０から出力されるデータを示す。「０．５τＷａｉｔ」は第１遅延回路２１から出力される第１遅延データを示し、「０．５τＷａｉｔ＿Ｓｅｌ」の直線は第１遅延回路２１から出力される第１遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「１τＷａｉｔ」は第２遅延回路２２から出力される第２遅延データを示し、「１τＷａｉｔ＿Ｓｅｌ」の直線は第２遅延回路２２から出力される第２遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「１．５τＷａｉｔ」は第３遅延回路２３から出力される第３遅延データを示し、「１．５τＷａｉｔ＿Ｓｅｌ」の直線は第３遅延回路２３から出力される第３遅延データが選択されることを示す信号がタイミング選択信号として出力されていることを示す。「Ｗ＿Ｂａｎｋ」は書き込みバンク切替スイッチ６１から出力されるデータを示し、「Ｗｐ」は書き込みポインタ６５から出力される書き込みアドレスデータを示す。「Ｕｐ／Ｌｗ＿Ｗ＿Ｄａｔａ」はバッファ３０に書き込まれるデータを示し、「Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋ」は書き込み制御回路６２から出力される先頭データ書き込みバンク信号を示す。「Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎ」は書き込み制御回路６２から出力される先頭データ書き込みメモリ信号を示す。
【００６５】
図７（ａ）〜７（ｄ）はそれぞれ、図６に示すデータが書き込まれるバルク及びメモリを示す図である。図７（ａ）〜７（ｄ）において、「Ｂａｎｋ１」の「Ｕｐ」及び「Ｌｗ」はそれぞれ、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２を示す。「Ｂａｎｋ２」の「Ｕｐ」及び「Ｌｗ」はそれぞれ、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２を示す。
【００６６】
図６に示すタイムチャートでは、データ転送装置１は、第１データ群Ａ１〜Ａ５と、第２データ群Ｂ１〜Ｂ７と、第３データ群Ｃ１〜Ｃ４と、第４データ群Ｄ１〜Ｄ３が入力される。
【００６７】
サイクル１において、第１データ群Ａ１〜Ａ５の先頭のデータＡ１及び第２のデータＡ２が入力データクロック乗換回路１０から出力される。第１データ群Ａ１〜Ａ５の先頭のデータＡ１が入力されると、書き込み制御回路６２は、先頭のデータＡ１に記憶される情報に基づいて、第１データ群Ａ１〜Ａ５のデータ長を５と決定する。
【００６８】
サイクル１では、データ転送装置はデータを全く記憶していない。このため、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクを示す０であり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリを示す０である。サイクル１では、「Ｗ＿Ｂａｎｋ」は０であり、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋと一致するので、書き込み制御回路６２はバンク一致信号を生成し記憶する。また、先頭のデータＡ１のメモリ位置は第１メモリであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリを示すので、書き込み制御回路６２はメモリ一致信号を生成し記憶する。書き込み制御回路６２はバンク一致信号及びメモリ一致信号を記憶するので、タイミング調整回路２０が第１入力端子Ｄｉｎ０に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路２０が第１入力端子Ｄｉｎ０に入力されるデータを出力するようにタイミング選択信号を出力するので、入力データクロック乗換回路１０から出力されるデータが書き込まれる。書き込み制御回路６２は、書き込み期間を３サイクルと演算する。
【００６９】
図７（ａ）に示すように、第１データ群Ａ１〜Ａ５の先頭のデータＡ１は第１バンク３１の第１バンク第１メモリ３１１のアドレス０に書き込まれ、第２のデータＡ２は第１バンク３１の第１バンク第２メモリ３１２のアドレス０に書き込まれる。第１データ群Ａ１〜Ａ５の第３のデータＡ３は第２バンク３２の第２バンク第１メモリ３２１のアドレス０に書き込まれ、第４のデータＡ４は第２バンク３２の第２バンク第２メモリ３２２のアドレス０に書き込まれる。第１データ群Ａ１〜Ａ５の末尾のデータＡ５は第１バンク３１の第１バンク第１メモリ３１１のアドレス１に書き込まれる。
【００７０】
サイクル５において、第２データ群Ｂ１〜Ｂ７の先頭のデータＢ１及び第２のデータＢ２が入力データクロック乗換回路１０から出力される。第２データ群Ｂ１〜Ｂ７の先頭のデータＢ１が入力されると、書き込み制御回路６２は、先頭のデータＢ１に記憶される情報に基づいて、第２データ群Ｂ１〜Ｂ７のデータ長を７と決定する。
【００７１】
第１データ群Ａ１〜Ａ５の末尾のデータＡ５は第１バンク３１の第１バンク第１メモリ３１１のアドレス１に記憶されるので、第２データ群Ｂ１〜Ｂ７の先頭のデータは、第１バンク３１の第１バンク第２メモリ３１２のアドレス１に書き込まれることになる。したがって、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクに対応する０を示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第２メモリに対応する１を示す。サイクル５では「Ｗ＿Ｂａｎｋ」は０であり、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋと一致するので、書き込み制御回路６２はバンク一致信号を生成し記憶する。先頭のデータＢ１のメモリ位置は第１メモリであるが、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第２メモリを示すので、書き込み制御回路６２はメモリ不一致信号を生成し記憶する。書き込み制御回路６２はバンク一致信号及びメモリ不一致信号を記憶するので、タイミング調整回路２０が第２入力端子Ｄｉｎ１に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路２０が第２入力端子Ｄｉｎ１に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ３０には「０．５τＷａｉｔ」で示される第１遅延データが書き込まれる。書き込み制御回路６２は、書き込み期間を４サイクルと演算する。
【００７２】
図７（ｂ）に示すように、第２データ群Ｂ１〜Ｂ７の先頭のデータＢ１は第１バンク３１の第１バンク第２メモリ３１２のアドレス１に書き込まれ、第２のデータＢ２は第２バンク３２の第２バンク第１メモリ３２１のアドレス１に書き込まれる。第２データ群Ｂ１〜Ｂ７の末尾のデータＢ７は第２バンク３２の第２バンク第２メモリ３２２のアドレス２に書き込まれる。
【００７３】
サイクル１２において、第３データ群Ｃ１〜Ｃ４の先頭のデータＣ１及び第２のデータＣ２がデータ転送装置１から出力される。第３データ群Ｃ１〜Ｃ４の先頭のデータＣ１が入力されると、書き込み制御回路６２は、先頭のデータＣ１に記憶される情報に基づいて、第３データ群Ｃ１〜Ｃ４のデータ長を４と決定する。
【００７４】
第２データ群Ｂ１〜Ｂ７の末尾のデータＢ７は第２バンク３２の第２バンク第２メモリ３２２のアドレス２に記憶されるので、第３データ群Ｃ１〜Ｃ４の先頭のデータは、第１バンク３１の第１バンク第１メモリ３１１のアドレス３に記憶されることになる。したがって、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクに対応する０を示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリに対応する０を示す。サイクル１２では「Ｗ＿Ｂａｎｋ」は１であり、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋと一致しないので、書き込み制御回路６２はバンク不一致信号を生成し記憶する。先頭のデータＣ１のメモリ位置は第１メモリであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリであるので、書き込み制御回路６２はメモリ一致信号を生成し記憶する。書き込み制御回路６２はバンク不一致信号及びメモリ一致信号を記憶するので、タイミング調整回路２０が第３入力端子Ｄｉｎ２に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路２０が第３入力端子Ｄｉｎ２に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ３０には「１τＷａｉｔ」で示される第２遅延データが書き込まれる。書き込み制御回路６２は、書き込み期間を２サイクルと演算する。
【００７５】
図７（ｃ）に示すように、第３データ群Ｃ１〜Ｃ４の先頭のデータＣ１は第１バンク３１の第１バンク第１メモリ３１１のアドレス３に書き込まれ、第２のデータＣ２は第１バンク３１の第１バンク第２メモリ３１２のアドレス３に書き込まれる。第３データ群Ｃ１〜Ｃ４の末尾のデータＣ４は第２バンク３２の第２バンク第２メモリ３２２のアドレス３に書き込まれる。
【００７６】
サイクル１７において、第４データ群Ｄ１〜Ｄ３の先頭のデータＤ１がデータ転送装置１から出力される。第４データ群Ｄ１〜Ｄ３の先頭のデータＤ１が入力されると、書き込み制御回路６２は、先頭のデータＤ１に記憶される情報に基づいて、第４データ群Ｄ１〜Ｄ３のデータ長を３と決定する。
【００７７】
第３データ群Ｃ１〜Ｃ４の末尾のデータＣ４は第２バンク３２の第２バンク第２メモリ３２２のアドレス３に記憶されるので、第４データ群Ｄ１〜Ｄ３の先頭のデータは、第１バンク３１の第１バンク第１メモリ３１１のアドレス４に書き込まれることになる。したがって、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋは第１バンクに対応する０を示し、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第２メモリに対応する１を示す。サイクル１７では「Ｗ＿Ｂａｎｋ」は１であり、先頭データ書き込みバンク信号Ｂｅｇｉｎ＿Ｗ＿Ｂａｎｋと一致しないので、書き込み制御回路６２はバンク不一致信号を生成し記憶する。先頭のデータＣ１のメモリ位置は第２メモリであり、先頭データ書き込みメモリ信号Ｂｅｇｉｎ＿Ｗ＿Ｐｏｓｉｔｉｏｎは第１メモリを示す０なので、書き込み制御回路６２はメモリ不一致信号を生成し記憶する。書き込み制御回路６２はバンク不一致信号及びメモリ一致信号を記憶するので、タイミング調整回路２０が第４入力端子Ｄｉｎ３に入力されるデータを出力するようにタイミング選択信号を出力する。タイミング調整回路２０が第４入力端子Ｄｉｎ３に入力されるデータを出力するようにタイミング選択信号を出力するので、バッファ３０には「１．５τＷａｉｔ」で示される第３遅延データが書き込まれる。書き込み制御回路６２は、書き込み期間を２サイクルと演算する。
【００７８】
図７（ｄ）に示すように、第４データ群Ｄ１〜Ｄ３の先頭のデータＤ１は第１バンク３１の第１バンク第１メモリ３１１のアドレス４に書き込まれ、第２のデータＤ２は第１バンク３１の第１バンク第２メモリ３１２のアドレス４に書き込まれる。第４データ群Ｄ１〜Ｄ３の末尾のデータＤ３は第２バンク３２の第２バンク第１メモリ３２１のアドレス４に書き込まれる。
【００７９】
データ転送装置１では、第１バンク第１メモリ３１１、第１バンク第２メモリ３１２、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２の順にアドレスごとに、入力されるデータを順次バッファ内部のメモリに記憶していく。データ転送装置１は、４つのメモリの全てのメモリにデータを記憶した後に次のアドレスに移るため、メモリ領域を有効に活用できる。
【００８０】
データ転送装置１では、書き込み制御回路６２が、入力データクロック乗換回路１０から出力されるデータと、バッファ３０に次に書き込まれるバッファ及びメモリとを比較して、タイミング調整回路２０を介してデータを適宜遅延させる。このため、データ転送装置１では、入力データクロック乗換回路１０から出力されるデータが遅延されることがあるため、レイテンシ性能が低下するという問題がある。
【００８１】
次いで、データ転送装置１におけるレイテンシ性能の低下という問題が生じないデータ転送装置について説明する。
【００８２】
図８は、データ転送装置の他の例の回路ブロック図である。
【００８３】
データ転送装置２は、入力データクロック乗換回路１０がタイミング調整回路２０を介さずにバッファ３０に接続されることが、データ転送装置１と相違する。また、データ転送装置２は、制御回路６０の代わりに制御回路７０が配置されることが、データ転送装置１と相違する。
【００８４】
図９は、制御回路７０の内部回路ブロック図である。
【００８５】
制御回路７０は、書き込みバンク切替スイッチ７１と、書き込み制御回路７２と、読み出し制御回路７３と、データ情報ＦＩＦＯキュー群７４と、書き込みポインタ７５と、読み出しポインタ７６とを有する。制御回路７０は、第１バンクアドレス選択回路７７と、第２バンクアドレス選択回路７８とを更に有する。
【００８６】
書き込みバンク切替スイッチ７１、第１バンクアドレス選択回路７７及び第２バンクアドレス選択回路７８はそれぞれ、書き込みバンク切替スイッチ６１、第１バンクアドレス選択回路６７及び第２バンクアドレス選択回路６８と同一の構成及び機能を有する。
【００８７】
書き込み制御回路７２は、入力データクロック乗換回路１０からのデータが入力される。書き込み制御回路７２は、決定したデータ群のデータ長から、入力されたデータ群を書き込む期間である書き込み期間を演算する。入力されるデータ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間は、データ長の半分に相当するサイクル数になる。また、入力されるデータ群の先頭のデータが下位データＬｗ＿Ｗ＿Ｄａｔａに割り当てられ、データ群のデータ長が偶数である場合、書き込み期間はデータ長の半分に１を加算した値に相当するサイクル数になる。また、データ群のデータ長が奇数である場合、データ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａ又は下位データＬｗ＿Ｗ＿Ｄａｔａに割り当てられるかにかかわらず、書き込み期間はデータ長の半分に１を加算した値に相当するサイクル数になる。書き込み制御回路７２は、演算した書き込み期間に相当する期間に亘って、データ継続信号Ｄａｔａ＿Ｗｒｉｔｅ＿Ｅｎａｂｌｅを出力する。
【００８８】
バッファ３０にデータ群を書き込む間、書き込み制御回路７２は、第１バンク第２メモリ３１２又は第２バンク第２メモリ３２２にデータが書き込まれたか否かを判定する。データ群の先頭のデータが第１バンク３１に書き込まれたときに第２バンク第２メモリ３２２にデータが書き込まれたと判定したときに、書き込み制御回路７２は、書き込みポインタ７５にインクリメント信号を出力する。また、データ群の先頭のデータが第１バンク３２に書き込まれたときに第１バンク第２メモリ３１２にデータが書き込まれたと判定したときに、書き込み制御回路７２は、書き込みポインタ７５にインクリメント信号を出力する。
【００８９】
書き込み制御回路７２は、入力データクロック乗換回路１０からデータが入力されると、書き込み開始信号Ｑｕｅｕｅ＿Ｗｒｉｔｅを基準周期１サイクルに亘ってデータ情報ＦＩＦＯキュー群７４に出力する。
【００９０】
書き込み制御回路７２は、データ群の末尾のデータを書き込むときに、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれるか否かを判定する。書き込み制御回路７２は、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれていないと判定したときに、書き込みポインタ７５にインクリメント信号を出力する。
【００９１】
書き込み制御回路７２は、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれていると判定したときに、データ群の末尾のデータに連続して次のデータ群の先頭のデータがあるか否かを判定する。書き込み制御回路７２は、データ群の末尾のデータに連続して次のデータ群の先頭のデータがないと判定したときに、書き込みポインタ７５にインクリメント信号を出力する。
【００９２】
書き込み制御回路７２は、データ群の末尾のデータに連続して次のデータ群の先頭のデータがあると判定したときに、書き込みポインタ７５に第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌを出力する。同時に、書き込み制御回路７２は、書き込みポインタ７５にインクリメント信号を出力する。
【００９３】
読み出し制御回路７３は、データ情報ＦＩＦＯキュー群７４からデータ有信号が入力され且つ読み出しＯＫ信号ＯＫがイネーブル状態になったときに、読み出し制御を開始する。まず、読み出し制御回路７３は、読み出しキュー信号Ｒｅａｄ＿Ｑｕｅｕｅをデータ情報ＦＩＦＯキュー群７４に出力する。
【００９４】
次いで、読み出し制御回路７３は、データ長情報、バンク内開始位置情報及び開始バンク位置情報がデータ情報ＦＩＦＯキュー群７４から入力される。データ長情報は読み出すデータ群のデータ長に対応し、バンク内開始位置情報は読み出すデータ群の先頭のデータが記憶されるメモリに対応し、開始バンク位置情報は読み出すデータ群の先頭のデータが記憶されるバンクに対応する。読み出し制御回路７３は、データ情報ＦＩＦＯキュー群７４から入力されるデータ長情報に基づいて、バッファ３０に記憶されたデータ群を読み出す期間である読み出し期間を演算する。
【００９５】
次いで、読み出し制御回路７３は、読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されているか否かを判定する。このとき、読み出し制御回路７３は、書き込みバンク切替スイッチ７１の出力信号、及びデータ情報ＦＩＦＯキュー群７４から入力される開始バンク位置情報に基づいて判定する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていると判定された場合、読み出し制御回路７３は、基準周期１サイクルの間待機した後に、読み出しを開始する。読み出すデータ群の先頭のデータが記憶されるバンクが書き込みバンクとして選択されていないと判定された場合、読み出し制御回路７３は読み出しを開始する。読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅが１であり且つ第２バンク３２が書き込みバンクとして選択されているとき、第１読み出しイネーブル端子ＲＥ１から出力される信号が１になる。読み出しイネーブル信号Ｄａｔａ＿Ｒｅａｄ＿Ｅｎａｂｌｅが１であり且つ第１バンク３１が書き込みバンクとして選択されているとき、第２読み出しイネーブル端子ＲＥ２から出力される信号が１になる。
【００９６】
バッファ３０に記憶されるデータ群を読み出す間、読み出し制御回路７３は、第１バンク第２メモリ３１２又は第２バンク第２メモリ３２２に記憶されたデータが読み出されたか否かを判定する。データ群の先頭のデータが第１バンク３１から読み出したときに第２バンク第２メモリ３２２に記憶されたデータが読み出されたと判定したときに、読み出し制御回路７３は、読み出しポインタにインクリメント信号を出力する。また、データ群の先頭のデータが第２バンク３２から読み出したときに第１バンク第２メモリ３１２に記憶されたデータが読み出されたと判定したときに、読み出し制御回路７３は、読み出しポインタにインクリメント信号を出力する。
【００９７】
読み出し制御回路７３は、データ群の末尾のデータを読み出すときに、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれているか否かを判定する。読み出し制御回路７３は、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれていないと判定したときに、読み出しポインタ７６にインクリメント信号を出力する。
【００９８】
読み出し制御回路７３は、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれていると判定したときに、次のデータ群の先頭のデータが記憶されるメモリを判定する。ここで、読み出し制御回路７３は、次のデータ群の先頭のデータが先のデータ群の末尾のデータが記憶されていたバンクの第２メモリに記憶されている否かを判定する。すなわち、読み出し制御回路７３は、データ群の末尾のデータが第１バンク第１メモリ３１１に書き込まれていると判定したときに、次のデータ群の先頭のデータが第１バンク第２メモリ３１２に記憶されている否かを判定する。また、読み出し制御回路７３は、データ群の末尾のデータが第２バンク第１メモリ３２１に書き込まれていると判定したときに、次のデータ群の先頭のデータが第２バンク第２メモリ３２２に記憶されている否かを判定する。読み出し制御回路７３は、次のデータ群の先頭のデータがデータ群の末尾のデータが記憶されていたバンクの第２メモリに記憶されていないと判定したときに、読み出しポインタ７６にインクリメント信号を出力する。
【００９９】
読み出し制御回路７３は、次のデータ群の先頭のデータがデータ群の末尾のデータが記憶されていたバンクの第２メモリに記憶されていると判定したときに、読み出しポインタ７６に第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌを出力する。同時に、読み出し制御回路７３は、読み出しポインタ７６にインクリメント信号を出力する。
【０１００】
図１０（ａ）は、データ情報ＦＩＦＯキュー群７４の内部回路ブロック図であり、図１０（ｂ）はデータ情報ＦＩＦＯキュー群７４に記憶されるデータの一例を示す図である。
【０１０１】
データ情報ＦＩＦＯキュー群７４は、データ長保持レジスタアレイ７４１と、バンク内データ書き込み開始位置保持アレイ７４２と、データ書き込み開始バンク保持アレイ７４３とを有する。データ情報ＦＩＦＯキュー群７４は、キュー書き込み制御部７４４と、キュー書き込みポインタ７４５と、キュー読み出し制御部７４６と、キュー読み出しポインタ７４７と、データ群有無検出部７４８とを更に有する。
【０１０２】
データ長保持レジスタアレイ７４１は、データ転送装置２に入力されるデータ群それぞれのデータ長に対応するデータ長情報を記憶する。バンク内データ書き込み開始位置保持アレイ７４２は、データ転送装置２に入力されるデータ群それぞれの先頭のデータが書き込まれるメモリに対応するバンク内書き込み開始位置情報を記憶する。データ書き込み開始バンク保持アレイ７４３は、データ転送装置２に入力されるデータ群それぞれの先頭のデータが書き込まれるバンクに対応する開始バンク位置情報を記憶する。
【０１０３】
キュー書き込み制御部７４４は、データ長保持レジスタアレイ７４１、バンク内データ書き込み開始位置保持アレイ７４２及びデータ書き込み開始バンク保持アレイ７４３への情報の書き込みを制御する。キュー書き込み制御部７４４は、キュー書き込み信号Ｑｕｅｕｅ＿Ｗｒｉｔｅがデータ書き込み制御回路７２から入力されると、各アレイでの書き込みを開始する。
【０１０４】
キュー書き込み制御部７４４は、入力データクロック乗換回路１０からのデータに基づいて、入力されるデータ群のデータ長を決定して、データ長に対応するデータ長情報をデータ長保持レジスタアレイ７４１に出力する。
【０１０５】
キュー書き込み制御部７４４は、入力データクロック乗換回路１０からのデータに基づいて、データ群の先頭のデータが上位データＵｐ＿Ｗ＿Ｄａｔａ又は下位データＬｗ＿Ｗ＿Ｄａｔａの何れのデータとして入力されているかを判定する。次いで、キュー書き込み制御部７４４は、判定結果に基づいて、データ群の先頭のデータが書き込まれるメモリに対応するバンク内開始位置情報をバンク内データ書き込み開始位置保持アレイ７４２に出力する。
【０１０６】
キュー書き込み制御部７４４は、書き込みバンク切替スイッチ６１からの信号に基づいて、データ群の先頭のデータが第１バンク３１又は第２バンク３２の何れのバンクに記憶されるかを判定する。キュー書き込み制御部７４４は、判定結果に基づいて、データ群の先頭のデータが書き込まれるバンクに対応する開始バンク位置情報をデータ書き込み開始バンク保持アレイ７４３に出力する。
【０１０７】
キュー書き込み制御部７４４は、各アレイへの書き込み処理を終了すると、インクリメント信号をキュー書き込みポインタ７４５に出力する。
【０１０８】
キュー書き込みポインタ７４５は、キュー書き込み制御部７４４から入力されるインクリメント信号に基づいて、各アレイのキュー書き込みアドレスをインクリメントする。なお、各アレイのアドレス数は、データ転送装置２が記憶可能なデータ群の数に対応する。
【０１０９】
キュー読み出し制御部７４６は、データ長保持レジスタアレイ７４１、バンク内データ書き込み開始位置保持アレイ７４２及びデータ書き込み開始バンク保持アレイ７４３への情報からの読み出しを制御する。キュー読み出し制御部７４６は、キュー読み出し信号Ｑｕｅｕｅ＿Ｒｅａｄがデータ読み出し制御回路７３から入力されると、所定のアドレスに記憶されるデータ長情報、バンク内開始位置情報及び開始バンク位置情報を読み出し制御回路７３に出力する。
【０１１０】
データ長情報、バンク内開始位置情報及び開始バンク位置情報を読み出し制御回路７３に出力すると、キュー読み出し制御部７４６は、インクリメント信号をキュー読み出しポインタ７４７に出力する。キュー読み出しポインタ７４７は、キュー読み出し制御部７４６から入力されるインクリメント信号に基づいて、各アレイのキュー読み出しアドレスをインクリメントする。
【０１１１】
データ群有無検出部７４８は、キュー書き込み制御部７４４から入力されるキュー書き込みアドレスと、キュー読み出し制御部７４６から入力されるキュー読み出しアドレスとに基づいて、読み出すデータ群があるか否かを判定する。キュー書き込みアドレスとキュー読み出しアドレスとが一致する場合、データ群有無検出部７４８は、読み出すデータ群がないと判定する。一方、キュー書き込みアドレスとキュー読み出しアドレスとが一致しない場合、データ群有無検出部７４８は、読み出すデータ群があると判定して、データ有信号を読み出し制御回路７３に出力する。
【０１１２】
図１１は、書き込みポインタ７５の内部回路ブロック図である。
【０１１３】
書き込みポインタ７５は、第１インクリメント部７５１と、第１選択部７５２と、ラッチ部７５３と、第２インクリメント部７５４と、第２選択部７５５とを有する。
【０１１４】
第１インクリメント部７５１は、書き込みアドレスをインクリメントしたアドレスを第１選択部７５２に出力する。第１選択部７５２は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、インクリメント信号に基づいて選択する。インクリメント信号が入力されないとき、第１選択部７５２は、インクリメントされていないアドレスを選択して、ラッチ部７５３に出力する。インクリメント信号を入力されるとき、第１選択部７５２は、第１インクリメント部７５１でインクリメントされたアドレスを選択して、ラッチ部７５３に出力する。ラッチ部７５３が入力されたアドレスを基準周期１サイクルごとに書き込みアドレスとして出力する。ラッチ部７５３から出力される書き込みアドレスは、上位データ書き込みアドレス信号ＷＰ＿Ｕｐとして、第１バンク第１メモリ３１１及び第２バンク第１メモリ３２１に出力される。
【０１１５】
第２インクリメント部７５４は、書き込みアドレスをインクリメントしたアドレスを第２選択部７５５に出力する。第２選択部７５５は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌに基づいて選択する。第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌが入力されないとき、第２選択部７５５は、インクリメントされていないアドレスを選択する。第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌを入力されるとき、第２選択部７５５は、第１インクリメント部７５１でインクリメントされたアドレスを選択する。第２選択部７５５から出力される書き込みアドレスは、下位データ書き込みアドレス信号ＷＰ＿Ｌｗとして、第１バンク第２メモリ３１２及び第２バンク第２メモリ３２２に出力される。
【０１１６】
図１２は、読み出しポインタ７６の内部回路ブロック図である。
【０１１７】
読み出しポインタ７６は、第１インクリメント部７６１と、第１選択部７６２と、ラッチ部７６３と、第２インクリメント部７６４と、第２選択部７６５とを有する。
【０１１８】
第１インクリメント部７６１は、読み出しアドレスをインクリメントしたアドレスを第１選択部７６２に出力する。第１選択部７６２は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、インクリメント信号に基づいて選択する。インクリメント信号が入力されないとき、第１選択部７６２は、インクリメントされていないアドレスを選択して、ラッチ部７６３に出力する。インクリメント信号を入力されるとき、第１選択部７６２は、第１インクリメント部７６１でインクリメントされたアドレスを選択して、ラッチ部７６３に出力する。ラッチ部７６３が入力されたアドレスを基準周期１サイクルごとに読み出しアドレスとして出力する。ラッチ部７６３から出力される読み出しアドレスは、上位データ読み出しアドレス信号ＲＰ＿Ｕｐとして、第１バンク第１メモリ３１１及び第２バンク第１メモリ３２１に出力される。
【０１１９】
第２インクリメント部７６４は、読み出しアドレスをインクリメントしたアドレスを第２選択部７６５に出力する。第２選択部７６５は、インクリメントされていないアドレスと、インクリメントされたアドレスとを、第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌに基づいて選択する。第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌが入力されないとき、第２選択部７６５は、インクリメントされていないアドレスを選択する。第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌを入力されるとき、第２選択部７６５は、第２インクリメント部７６４でインクリメントされたアドレスを選択する。第２選択部７６５から出力される読み出しアドレスは、下位データ読み出しアドレス信号ＲＰ＿Ｌｗとして、第１バンク第２メモリ３１２及び第２バンク第２メモリ３２２に出力される。
【０１２０】
制御回路７０は、入力データクロック乗換回路１０に入力されるデータ群を第１バンク３１及び第２バンク３２に順次記憶し、記憶したデータ群を順に読み出して出力データクロック乗換回路５０から出力するように制御する。制御回路７０は、第１バンク３１及び第２バンク３２において直前に記憶されたデータ群の末尾データが記憶されるアドレス位置よりも後のアドレス位置で、入力データクロック乗換回路１０から出力される２倍長データを書き込む。制御回路７０は、入力データクロック乗換回路１０から出力される２倍長データを書き込むとき、書き込みバンク切替スイッチ７１から出力される信号に基づいて、書き込み可能な第１バンク３１又は第２バンク３２から順にデータ群を記憶する。
【０１２１】
図１３（ａ）は、データ転送装置２のタイムチャートを示す図であり、図１３（ｂ）〜１３（ｅ）はそれぞれ、図１３（ａ）に示すデータが書き込まれるバルク及びメモリを示す図である。図１３（ａ）において、１サイクルは基準周期に対応し、「Ｕｐ／Ｌｗ＿Ｄａｔａ」は入力データクロック乗換回路１０から出力されるデータを示す。「Ｗ＿Ｂａｎｋ」は書き込みバンク切替スイッチ６１から出力されるデータを示し、「Ｗｐ＿Ｕｐ／Ｌｗ」は書き込みポインタ７５から出力される第１メモリと第２メモリの書き込みアドレスデータを示す。図１３（ｂ）〜１３（ｅ）において、「Ｂａｎｋ１」の「Ｕｐ」及び「Ｌｗ」はそれぞれ、第１バンク第１メモリ３１１及び第１バンク第２メモリ３１２を示す。「Ｂａｎｋ２」の「Ｕｐ」及び「Ｌｗ」はそれぞれ、第２バンク第１メモリ３２１及び第２バンク第２メモリ３２２を示す。
【０１２２】
図１３（ａ）に示すタイムチャートでは、データ転送装置２は、第１データ群Ａ１〜Ａ５と、第２データ群Ｂ１〜Ｂ７と、第３データ群Ｃ１〜Ｃ４と、第４データ群Ｄ１〜Ｄ３が入力される。
【０１２３】
データ転送装置２では、データ群がそれぞれ書き込まれた後に、書き込みアドレスがインクリメントされるので、直前に記憶されたデータの末尾のデータが書き込まれたバンク及びメモリにかかわらず、書き込みイネーブルのバンクのメモリに書き込みできる。データ転送装置２では、書き込みイネーブルのバンクのメモリに書き込みできるので、レイテンシ性能の低下という問題が生じない。
【０１２４】
図１４（ａ）はデータ転送装置２に入力されるデータ群の一例を示す図である。図１４（ｂ）は図１４（ａ）に示すデータ群が第１バンク３１から記憶される例を示す図であり、図１４（ｃ）は図１４（ａ）に示すデータ群が第２バンク３２から記憶される例を示す図である。図１４（ｄ）はデータ転送装置２に入力されるデータ群の他の例を示す図である。図１４（ｅ）は図１４（ｄ）に示すデータ群が第１バンク３１から記憶される例を示す図であり、図１４（ｆ）は図１４（ｄ）に示すデータ群が第２バンク３２から記憶される例を示す図である。
【０１２５】
図１４（ｂ）及び１４（ｃ）に示すように、奇数のデータを含むデータ群を記憶するとき、データ転送装置２は、バンクに含まれる一方のメモリのみにデータを記憶して、他方のメモリは空き状態になる。また、図１４（ｂ）及び１４（ｃ）に示す例では、書き込み期間のサイクル数は奇数であるので、一方のバンクのメモリのみにデータを記憶し、他方のバンクのメモリは空き状態となる。
【０１２６】
図１４（ｄ）では、データ群の末尾のデータが第１バンク第１メモリ３１１又は第２バンク第１メモリ３２１に書き込まれ且つデータ群の末尾のデータに連続して次のデータ群の先頭のデータがある例が示される。
【０１２７】
図１４（ｅ）に示す例では、第１データ群Ａ１〜Ａ５の末尾のデータＡ５は、第１バンク第１メモリ３１１のアドレス１に書き込まれ、第２データ群Ｂ１〜Ｂ９の先頭のデータＢ１は、第１バンク第２メモリ３１２のアドレス２に書き込まれる。すなわち、第２データ群Ｂ１〜Ｂ９の先頭のデータＢ１が書き込まれるアドレスは、第１データ群Ａ１〜Ａ５の末尾のデータＡ５が書き込まれたアドレス１の次のアドレスであるアドレス２である。
【０１２８】
図１４（ｆ）に示す例では、第１データ群Ａ１〜Ａ５の末尾のデータＡ５は、第２バンク第１メモリ３２１のアドレス１に書き込まれ、第２データ群Ｂ１〜Ｂ９の先頭のデータＢ１は、第２バンク第２メモリ３２２のアドレス２に書き込まれる。すなわち、第２データ群Ｂ１〜Ｂ９の先頭のデータＢ１が書き込まれるアドレスは、第１データ群Ａ１〜Ａ５の末尾のデータＡ５が書き込まれたアドレス１の次のアドレスであるアドレス２である。
【０１２９】
図１５Ａ及び１５Ｂは、第１データＡ１〜Ａ９の末尾のデータＡ９と第２データＢ１〜Ｂ５の先頭のデータとが連続していない場合のタイムチャートを示す図である。図１６Ａ及び１６Ｂは、第１データＡ１〜Ａ９の末尾のデータＡ９と第２データＢ１〜Ｂ５の先頭のデータとが連続している場合のタイムチャートを示す図である。
【０１３０】
図１５Ａ及び１５Ｂに示すタイムチャートでは、第１データＡ１〜Ａ９の末尾のデータＡ９が第１バンク第１メモリ３１１に記憶されるものの、第１データＡ１〜Ａ９の末尾のデータＡ９と第２データＢ１〜Ｂ５の先頭のデータＢ１とが連続していない。この場合、書き込み制御回路７２は、書き込みポインタ７５に第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌを出力しないので、第２データＢ１〜Ｂ５の先頭のデータＢ１は第２バンク第２メモリ３２２に書き込まれる。
【０１３１】
一方、図１６Ａ及び１６Ｂに示すタイムチャートでは、第１データＡ１〜Ａ９の末尾のデータＡ９が第１バンク第１メモリ３１１に記憶され、且つ第１データＡ１〜Ａ９の末尾のデータＡ９と第２データＢ１〜Ｂ５の先頭のデータＢ１とが連続している。この場合、書き込み制御回路７２は、書き込みポインタ７５に第２メモリインクリメント選択信号Ｌｗ＿ＷＰ＋１＿ｓｅｌを出力して、第２データＢ１〜Ｂ５の先頭のデータＢ１は第１バンク第２メモリ３１２に書き込まれる。
【０１３２】
図１５Ａ及び１５Ｂに示すタイムチャートでは、第１データＡ１〜Ａ９の末尾のデータＡ９は第１バンク第１メモリ３１１のアドレス２に記憶され、第２データＢ１〜Ｂ５の先頭のデータＢ１は第２バンク第２メモリ３２２のアドレス３に記憶される。この場合、読み出し制御回路７３は、読み出しポインタ７６に第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌを出力しない。読み出し制御回路７３が第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌを出力しないので、データ転送装置２は、第１データＡ１〜Ａ９の末尾のデータＡ９を読み出した次のサイクルで、第２データＢ１〜Ｂ５の先頭のデータＢ１を読み出す。
【０１３３】
図１６Ａ及び１６Ｂに示すタイムチャートでは、第１データＡ１〜Ａ９の末尾のデータＡ９は第１バンク第１メモリ３１１のアドレス２に記憶され、第２データＢ１〜Ｂ５の先頭のデータＢ１は第１バンク第２メモリ３１２のアドレス３に記憶される。この場合、読み出し制御回路７３は、読み出しポインタ７６に第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌを出力する。読み出し制御回路７３が第２メモリインクリメント選択信号Ｌｗ＿ＲＰ＋１＿ｓｅｌを出力するので、データ転送装置２は、第１データＡ１〜Ａ９の末尾のデータＡ９を読み出したサイクルで、第２データＢ１〜Ｂ５の先頭のデータＢ１を読み出す。
【０１３４】
データ転送装置１及び２は、入力データクロック乗換回路１０と、バッファ３０とを有する。入力データクロック乗換回路１０は、入力されるデータ群に含まれるデータを上位データ及び下位データに順次に割り当てることによりデータ幅を２倍にして、入力されるデータの２倍の周期である基準周期１サイクルごとに上位データ及び下位データを出力する。バッファは、第１メモリ３１１、３２１及び第２メモリ３１２、３２２をそれぞれ有する第１バンク及び第２バンクを有する。データ転送装置１及び２は、上位データ及び下位データを第１メモリ３１１、３２１及び第２メモリ３１２、３２２にそれぞれ書き込むので、第１バンク及び第２バンクのメモリの書き込み時間の２倍のクロック周期を有するデータを書き込むことができる。
【０１３５】
また、データ転送装置１及び２では、第１バンク３１が書き込み状態であるときに第２バンク３２は読み出し状態になり、第２バンク３２が書き込み状態であるときに第１バンク３１は読み出し状態になる。データ転送装置では、何れか一方のメモリが書き込み状態のとき他方のメモリは読み出し状態になるので、データ転送装置は書き込みと読み出しが同時に実行できる。
【０１３６】
データ転送装置１及び２は、データを記憶するバッファリング回路として使用してもよい。
【符号の説明】
【０１３７】
１、２    データ転送装置
１０    入力データクロック乗換回路
２０    タイミング調整回路
３０    バッファ
４０    出力選択回路
５０    出力データクロック乗換回路
６０、７０    制御回路
【図１】
2015001986.tif 000003
【図２】
2015001986.tif 000004
【図３】
2015001986.tif 000005
【図４】
2015001986.tif 000006
【図５】
2015001986.tif 000007
【図６】
2015001986.tif 000008
【図７】
2015001986.tif 000009
【図８】
2015001986.tif 000010
【図９】
2015001986.tif 000011
【図１０】
2015001986.tif 000012
【図１１】
2015001986.tif 000013
【図１２】
2015001986.tif 000014
【図１３】
2015001986.tif 000015
【図１４】
2015001986.tif 000016
【図１５Ａ】
2015001986.tif 000017
【図１５Ｂ】
2015001986.tif 000018
【図１６Ａ】
2015001986.tif 000019
【図１６Ｂ】
2015001986.tif 000020