(57)【要約】【課題】データの読み出しの遅延の低減を図ること。【解決手段】アクセス制御部１３０は、入力されたデータが所定量に達するごとに所定量の入力されたデータを大容量メモリデバイス１０に書き込む。書込バッファ１３２は、入力されたデータのうち書込バッファ１３１およびメモリコントローラ１２０によって大容量メモリデバイス１０に書き込まれていないデータを格納する。アクセス制御部１３０は、読み出しが要求されたデータのうちの大容量メモリデバイス１０に書き込まれているデータを大容量メモリデバイス１０から読み出す。また、アクセス制御部１３０は、読み出しが要求されたデータのうちの大容量メモリデバイス１０に書き込まれていないデータを書込バッファ１３２から読み出す。【選択図】図１
2019046042.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータが所定量に達するごとに前記所定量の前記入力されたデータをメモリに書き込む書込部と、
前記入力されたデータのうち前記書込部によって前記メモリに書き込まれていないデータを格納するバッファと、
読み出しが要求されたデータのうちの前記メモリに書き込まれているデータを前記メモリから読み出し、前記読み出しが要求されたデータのうちの前記メモリに書き込まれていないデータを前記バッファから読み出す読出部と、
を備えることを特徴とする伝送装置。
【請求項２】
前記読出部は、前記読み出しが要求されたデータの読出アドレスと、前記バッファに書き込まれたデータの書込アドレスと、を比較した結果に基づいて前記読み出しが要求されたデータが前記メモリに書き込まれているか否かを判定することを特徴とする請求項１に記載の伝送装置。
【請求項３】
前記バッファと異なるバッファであって、前記入力されたデータを格納するバッファを備え、
前記書込部は、前記異なるバッファに格納されたデータが前記所定量に達するごとに前記所定量の前記異なるバッファに格納されたデータを読み出して前記メモリに書き込む
ことを特徴とする請求項２に記載の伝送装置。
【請求項４】
入力されたデータが所定量に達するごとに前記所定量の前記入力されたデータをメモリに書き込み、
前記入力されたデータのうち前記メモリに書き込まれていないデータをバッファに格納し、
読み出しが要求されたデータのうちの前記メモリに書き込まれているデータを前記メモリから読み出し、前記読み出しが要求されたデータのうちの前記メモリに書き込まれていないデータを前記バッファから読み出す
ことを特徴とする伝送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、伝送装置および伝送方法に関する。
【背景技術】
【０００２】
従来、１回のアドレス指定により複数のデータ転送処理を一括で行うことで、アドレスの指定などの手順を一部省略するバースト転送が知られている。バースト転送は、バーストアクセス、バーストモードまたは連続アクセスなどと呼ばれる場合もある。また、入力パケットデータをバッファへ順次格納し、所定量のデータが格納された時点でデータをメモリ部へ書き込み、出力指示に応じてメモリ部からデータを読み出す技術が知られている（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１３５３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術では、データがバッファに一定量蓄積されるまではメモリにデータが書き込まれないため、メモリに書き込まれる前のデータについての読出要求があると、そのデータの読み出しの遅延が大きくなるという問題がある。
【０００５】
１つの側面では、本発明は、データの読み出しの遅延の低減を図ることができる伝送装置および伝送方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、１つの実施態様では、入力されたデータが所定量に達するごとに前記所定量の前記入力されたデータをメモリに書き込み、前記入力されたデータのうち前記メモリに書き込まれていないデータをバッファに格納し、読み出しが要求されたデータのうちの前記メモリに書き込まれているデータを前記メモリから読み出し、前記読み出しが要求されたデータのうちの前記メモリに書き込まれていないデータを前記バッファから読み出す伝送装置および伝送方法が提案される。
【発明の効果】
【０００７】
本発明の一側面によれば、データの読み出しの遅延の低減を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかるメモリアクセス制御回路の一例を示す図である。
【図２】図２は、実施の形態にかかるメモリアクセス制御回路を適用したパケット伝送装置の一例を示す図である。
【図３】図３は、実施の形態にかかるメモリアクセス制御回路によるパケット入力処理の一例を示すフローチャートである。
【図４】図４は、実施の形態にかかるメモリアクセス制御回路によるパケット出力処理の一例を示すフローチャートである。
【図５】図５は、実施の形態にかかるメモリアクセス制御回路による大容量メモリデバイスに対するアクセスフローの一例を示すシーケンス図である。
【図６】図６は、実施の形態にかかるメモリアクセス制御回路によるパケット入出力の一例を示す図である。
【図７】図７は、実施の形態にかかるアクセス制御部の各部による処理の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に図面を参照して、本発明にかかる伝送装置および伝送方法の実施の形態を詳細に説明する。
【００１０】
（実施の形態）
（実施の形態にかかるメモリアクセス制御回路）
図１は、実施の形態にかかるメモリアクセス制御回路の一例を示す図である。図１に示すように、実施の形態にかかるメモリアクセス制御回路１００は、書込／読出制御部１１０と、メモリコントローラ１２０と、アクセス制御部１３０と、を備える伝送装置である。書込／読出制御部１１０は、書込制御部１１１と、読出制御部１１２と、出力制御部１１３と、を備える。アクセス制御部１３０は、書込バッファ１３１，１３２と、読出／端数判定制御部１３３と、読出／端数選択制御部１３４と、端数バッファ１３５と、読出バッファ１３６と、選択部１３７と、を備える。
【００１１】
大容量メモリデバイス１０は、メモリコントローラ１２０によってアクセス可能な大容量のメモリデバイスである。大容量メモリデバイス１０は一例としてはＤＤＲ４−ＳＤＲＡＭである。ＤＤＲ４はＤｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ４の略である。ＳＤＲＡＭはＳｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。大容量メモリデバイス１０は、１個のメモリデバイスであってもよいし、複数のメモリデバイスであってもよい。
【００１２】
書込制御部１１１には、メモリアクセス制御回路１００への入力パケットが入力される。メモリアクセス制御回路１００への入力パケットは、たとえば不定期に入力されるランダム長パケットであり、一例としてはイーサネットのイーサパケットである。なおイーサネットは登録商標である。書込制御部１１１は、入力されたパケットの書込要求を生成し、生成した書込要求を書込バッファ１３１，１３２へ出力する。
【００１３】
書込要求には、書込アドレス（ＷｒｉｔｅＡｄｄｒｅｓｓ）および書込データ（ＷｒｉｔｅＤａｔａ）が含まれる。書込アドレスは、大容量メモリデバイス１０の記憶領域のうち書込データの書込先の領域を示すアドレスである。書込データは、メモリアクセス制御回路１００への書込対象のデータである。たとえば、書込データは、書込制御部１１１へ入力されたパケットである。または、書込データは、書込制御部１１１へ入力されたパケットに含まれるデータである。
【００１４】
書込バッファ１３１は、書込／読出制御部１１０から出力された書込要求を格納する。そして、書込バッファ１３１は、所定量ＴＨの書込要求を格納すると、その所定量ＴＨの書込要求をまとめてメモリコントローラ１２０へ出力することによりバースト転送（バーストアクセス）を行う。所定量ＴＨは、バースト転送の単位となるデータ量である。
【００１５】
メモリコントローラ１２０は、書込バッファ１３１から出力された書込要求に基づいて大容量メモリデバイス１０へのバースト転送による書込を行う。たとえば、メモリコントローラ１２０は、書込バッファ１３１から出力された所定量ＴＨの書込要求の先頭の書込アドレスが示す大容量メモリデバイス１０の領域に、その所定量ＴＨの書込データを連続して書き込む。これにより、先頭以外の書込アドレスの通知を省略するバースト転送を行うことができる。
【００１６】
書込バッファ１３２は、書込バッファ１３１と同様に、書込／読出制御部１１０から出力された書込要求を格納する端数判定用のバッファである。また、書込バッファ１３２は、所定量ＴＨの書込要求を格納すると、その所定量ＴＨの書込要求を破棄する。これにより、書込バッファ１３２は、書込バッファ１３１と同内容の書込要求を格納しておくことができる。また、書込バッファ１３２は、書込／読出制御部１１０から書込要求が出力されると、書き込みの完了を通知する書込応答を書込／読出制御部１１０へ出力する。
【００１７】
書込バッファ１３１，１３２のそれぞれは、大容量メモリデバイス１０より容量が小さい記憶媒体である。たとえば、書込バッファ１３１，１３２のそれぞれの容量は、大容量メモリデバイス１０へのバースト転送の単位となるデータ量に相当する容量である。また、書込バッファ１３１，１３２のそれぞれは、大容量メモリデバイス１０よりアクセス（書き込みおよび読み出し）が高速な記憶媒体である。
【００１８】
読出制御部１１２は、書込バッファ１３２から書込応答があった後に、その書込応答に対応する書込データについての読出要求を読出／端数判定制御部１３３へ出力する。読出要求は、大容量メモリデバイス１０の記憶領域のうち読出対象の領域を示す読出アドレス（ＲｅａｄＡｄｄｒｅｓｓ）を含む。読出制御部１１２による読出要求は、たとえばメモリアクセス制御回路１００の外部からの制御情報（出力指示）に基づいて行われる。
【００１９】
読出／端数判定制御部１３３は、読出制御部１１２から読出要求が出力されると、その読出要求に含まれる読出アドレスを含む端数判定要求を書込バッファ１３２へ出力する。そして、読出／端数判定制御部１３３は、出力した端数判定要求に対して書込バッファ１３２から出力された判定結果を読出／端数選択制御部１３４へ出力する。また、読出／端数判定制御部１３３は、書込バッファ１３２から出力された判定結果が端数データを格納していない旨の判定結果である場合は、読出制御部１１２から出力された読出要求をメモリコントローラ１２０へ出力する。
【００２０】
書込バッファ１３２は、読出／端数判定制御部１３３から端数判定要求が出力されると、その端数判定要求に含まれる読出アドレスと同じ値の書込アドレスを含む書込要求（端数データ）を自身が格納しているか否かを判定する。そして、書込バッファ１３２は、判定結果を読出／端数判定制御部１３３へ出力する。また、書込バッファ１３２は、端数判定要求に含まれる読出アドレスと同じ値の書込アドレスを含む書込要求を自身が格納していると判定した場合は、その書込要求に含まれる書込データを端数データとして端数バッファ１３５へ出力する。
【００２１】
メモリコントローラ１２０は、読出／端数判定制御部１３３から出力された読出要求に基づいて大容量メモリデバイス１０からの読み出しを行う。たとえば、メモリコントローラ１２０は、読出要求に含まれる読出アドレスが示す大容量メモリデバイス１０の領域に格納されたデータを読み出す。そして、メモリコントローラ１２０は、読出データ（ＲｅａｄＤａｔａ）を含む読出応答を読出バッファ１３６へ出力する。また、メモリコントローラ１２０による大容量メモリデバイス１０からの読み出しにおいてもバースト転送を用いてもよい。
【００２２】
読出／端数選択制御部１３４は、読出／端数判定制御部１３３から出力された判定結果を格納するＦＩＦＯのキュー（判定結果ＦＩＦＯ）を有する。ＦＩＦＯはＦｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ（先入れ先出し）の略である。読出／端数選択制御部１３４は、判定結果ＦＩＦＯに格納した判定結果を読み出し、読み出した判定結果に基づいて端数バッファ１３５または読出バッファ１３６へ読出指示を出力する。また、読出／端数選択制御部１３４は、端数バッファ１３５および読出バッファ１３６のうち読出指示を出力したバッファから出力される読出応答を選択することを指示する選択指示を選択部１３７へ出力する。
【００２３】
端数バッファ１３５は、書込バッファ１３２に蓄積されていた書込データを読出データとしてバイパスさせるためのバッファである。たとえば、端数バッファ１３５は、書込バッファ１３２から出力された端数データを格納する。また、端数バッファ１３５は、読出／端数選択制御部１３４から出力された読出指示に基づいて、格納した端数データを選択部１３７へ出力する。
【００２４】
読出バッファ１３６は、メモリコントローラ１２０から出力された読出応答を格納する。また、読出バッファ１３６は、読出／端数選択制御部１３４から出力された読出指示に基づいて、格納した読出応答を選択部１３７へ出力する。
【００２５】
選択部１３７は、読出／端数選択制御部１３４から出力された選択指示に基づいて、端数バッファ１３５から出力される読出応答、または読出バッファ１３６から出力される端数データを選択して出力制御部１１３へ出力する。
【００２６】
出力制御部１１３は、選択部１３７から出力された読出応答または端数データに含まれるデータを格納したパケット（出力パケット）をメモリアクセス制御回路１００の外部へ出力する。
【００２７】
書込／読出制御部１１０、メモリコントローラ１２０およびアクセス制御部１３０は、たとえばＡＳＩＣやＦＰＧＡなどの１以上のデジタル回路により実現することができる。ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。
【００２８】
書込バッファ１３１とは別に書込バッファ１３２を設ける構成について説明した。この構成により、読出用のポートが２個以上のメモリを用いなくても、書込バッファ１３１，１３２をそれぞれ別のメモリにより実現することができる。このため、大容量メモリデバイス１０に対する書込制御と端数判定を同時に実行することができる。ただし、書込バッファ１３２を設けずに、上述した書込バッファ１３２の機能を書込バッファ１３１に設けてもよい。この場合に、たとえば、書込バッファ１３１は、読出用のポートが２個以上あるメモリにより実現することができる。
【００２９】
また、メモリアクセス制御回路１００に対して複数のフローの各パケットが入力される場合は、メモリアクセス制御回路１００はフローごとに上述の各処理を行う。この場合に、たとえば、書込バッファ１３１，１３２および読出バッファ１３６はフローごとに設けられてもよい。また、端数バッファ１３５については各フローについて共通のバッファにより実現してもよい。
【００３０】
また、書込バッファ１３１，１３２および読出バッファ１３６のそれぞれは、大容量メモリデバイス１０に対して効率よくアクセスするために、大容量メモリデバイス１０へのバースト転送の単位のデータを蓄積するバッファとすることができる。書込バッファ１３１，１３２のそれぞれには、書込制御部１１１からの書込要求に含まれる書込アドレスの下位アドレスが０〜２n−１に対応したデータが格納される。読出バッファ１３６には、読出制御部１１２からの読出要求に含まれる読出アドレスの下位アドレスが０〜２n−１に対応したデータが格納される。書込アドレスの下位アドレスが０〜２n−１に対応したデータは、大容量メモリデバイス１０の一アクセスが４アドレス分の場合は下位アドレスが０〜３のデータである。
【００３１】
メモリアクセス制御回路１００へ入力されたデータが所定量に達するごとに、その所定量のデータを大容量メモリデバイス１０に書き込む書込部は、たとえば図１に示すアクセス制御部１３０により実現することができる。たとえば、書込部は、書込バッファ１３１により実現することができる。書込部によって大容量メモリデバイス１０に書き込まれていないデータを格納するバッファは、たとえば図１に示す書込バッファ１３２により実現することができる。読み出しが要求されたデータを読み出す読出部は、たとえば図１に示すアクセス制御部１３０により実現することができる。たとえば、読出部は、読出／端数判定制御部１３３、読出／端数選択制御部１３４、端数バッファ１３５、読出バッファ１３６および選択部１３７により実現することができる。
【００３２】
（実施の形態にかかるメモリアクセス制御回路１００を適用したパケット伝送装置）
図２は、実施の形態にかかるメモリアクセス制御回路を適用したパケット伝送装置の一例を示す図である。図１に示したメモリアクセス制御回路１００は、一例としては図２に示すパケット伝送装置２００に適用することができる。パケット伝送装置２００は、ＬＩＵ２１１〜２１４を備えるＬ２スイッチである。ＬＩＵはＬｉｎｅ  Ｉｎｔｅｒｆａｃｅ  Ｕｎｉｔ（ラインインタフェースユニット）の略である。
【００３３】
ＬＩＵ２１１は、他の伝送装置から受信した主信号をＳＷ２２０へ出力する伝送装置である。また、ＬＩＵ２１１は、メモリアクセス制御回路１００Ａおよび大容量メモリデバイス１０Ａを備える。メモリアクセス制御回路１００Ａおよび大容量メモリデバイス１０Ａは、それぞれ図１に示したメモリアクセス制御回路１００および大容量メモリデバイス１０に対応する構成である。
【００３４】
たとえば、メモリアクセス制御回路１００Ａは、ＳＷ２２０から出力された主信号を大容量メモリデバイス１０Ａに格納し、大容量メモリデバイス１０Ａに格納した主信号を読出指示に従って読み出して他の伝送装置へ送信する。ただし、上述したように、メモリアクセス制御回路１００Ａへ入力された主信号は大容量メモリデバイス１０Ａに格納されずに端数データとして読み出される場合もある。
【００３５】
ＬＩＵ２１１の構成について説明したが、ＬＩＵ２１２〜２１４の構成についてもＬＩＵ２１１の構成と同様である。たとえば、ＬＩＵ２１２は、メモリアクセス制御回路１００Ｂおよび大容量メモリデバイス１０Ｂを備える伝送装置である。メモリアクセス制御回路１００Ｂおよび大容量メモリデバイス１０Ｂは、それぞれ図１に示したメモリアクセス制御回路１００および大容量メモリデバイス１０に対応する構成である。
【００３６】
ＳＷ２２０は、ＬＩＵ２１１から出力された主信号をＬＩＵ２１２〜２１４のいずれかへ出力する。また、ＳＷ２２０は、ＬＩＵ２１２から出力された主信号をＬＩＵ２１１，２１３，２１４のいずれかへ出力する。また、ＳＷ２２０は、ＬＩＵ２１３から出力された主信号をＬＩＵ２１１，２１２，２１４のいずれかへ出力する。また、ＳＷ２２０は、ＬＩＵ２１４から出力された主信号をＬＩＵ２１１〜２１３のいずれかへ出力する。
【００３７】
また、パケット伝送装置２００が４個のＬＩＵ（ＬＩＵ２１１〜２１４）を備える構成について説明したが、パケット伝送装置２００は５個以上のＬＩＵを備える構成であってもよい。または、パケット伝送装置２００は３個のＬＩＵを備える構成であってもよい。
【００３８】
たとえば図２に示したパケット伝送装置２００において、高帯域な伝送データをリアルタイム伝送するにはパケット伝送装置２００の低遅延化を要する。これに対して、たとえばＬＩＵ２１１〜２１４にメモリアクセス制御回路１００を適用することで、大容量メモリデバイス１０Ａに対するバースト転送の遅延による伝送遅延を低減することができる。
【００３９】
また、メモリアクセス制御回路１００は、入力された主信号をそのまま送信するＬＩＵ２１１〜２１４に限らず、各種の伝送装置に適用することができる。たとえば、ＬＩＵ２１１は、ＳＷ２２０から出力された大容量のデータ（たとえば１０［Ｇｐｂｓ］のデータ）をラウンドロビン等で複数の小容量のデータ（たとえば１［Ｇｐｂｓ］の５系統のデータ）に振り分けて送信する伝送装置であってもよい。
【００４０】
この場合に、ＬＩＵ２１１において大容量のデータを複数の小容量のデータに振り分ける振分部の前段に、メモリアクセス制御回路１００Ａおよび大容量メモリデバイス１０Ａを設けてもよい。これにより、大容量のデータを大容量メモリデバイス１０Ａに一旦格納し、振分部はメモリアクセス制御回路１００Ａに対して読出指示を行うことで大容量のデータを順次読み出して複数の小容量のデータに振り分けることができる。
【００４１】
また、メモリアクセス制御回路１００は、パケット伝送装置２００に限らず各種の装置に適用することができる。たとえば、メモリアクセス制御回路１００は、映像データのリアルタイム伝送を行う装置等、大容量メモリを使用して高帯域かつ低遅延でデータを伝送する各種の装置に適用することができる。
【００４２】
（実施の形態にかかるメモリアクセス制御回路によるパケット入力処理）
図３は、実施の形態にかかるメモリアクセス制御回路によるパケット入力処理の一例を示すフローチャートである。実施の形態にかかるメモリアクセス制御回路１００は、パケット入力処理として、たとえば図３に示す各ステップを実行する。まず、メモリアクセス制御回路１００は、自装置へパケットが入力されたか否かを判断し（ステップＳ３０１）、パケットが入力されるまで待つ（ステップＳ３０１：Ｎｏのループ）。ステップＳ３０１は、たとえば図１に示した書込制御部１１１により実行される。
【００４３】
ステップＳ３０１において、パケットが入力されると（ステップＳ３０１：Ｙｅｓ）、メモリアクセス制御回路１００は、入力されたパケットのデータに対して書込アドレスを付与する。そして、メモリアクセス制御回路１００は、そのパケットのデータ（書込データ）と、付与した書込アドレスと、を含む書込要求を発行する（ステップＳ３０２）。ステップＳ３０２は、たとえば図１に示した書込制御部１１１により実行される。
【００４４】
つぎに、メモリアクセス制御回路１００は、ステップＳ３０２により発行した書込要求を書込バッファ１３１，１３２（各書込バッファ）に書き込む（ステップＳ３０３）。ステップＳ３０３は、たとえば図１に示した書込制御部１１１により実行される。
【００４５】
つぎに、メモリアクセス制御回路１００は、ステップＳ３０３の結果、書込バッファ１３１（または書込バッファ１３２）における書込要求の蓄積量が所定量ＴＨに達したか否かを判断する（ステップＳ３０４）。所定量ＴＨは、大容量メモリデバイス１０に対するバースト転送の単位となるデータ量である。ステップＳ３０４は、たとえば図１に示した書込バッファ１３１，１３２のそれぞれにより実行される。
【００４６】
ステップＳ３０４において、蓄積量が所定量ＴＨに達していない場合（ステップＳ３０４：Ｎｏ）は、メモリアクセス制御回路１００は、ステップＳ３０７へ移行する。蓄積量が所定量ＴＨに達した場合（ステップＳ３０４：Ｙｅｓ）は、メモリアクセス制御回路１００は、メモリコントローラ１２０へ、書込バッファ１３１に蓄積された所定量ＴＨ分の書込要求を出力する（ステップＳ３０５）。これにより、書込バッファ１３１に蓄積された所定量ＴＨ分の書込要求に含まれる書込データの大容量メモリデバイス１０へのバースト転送が行われる。ステップＳ３０５は、たとえば図１に示した書込バッファ１３１により実行される。
【００４７】
つぎに、メモリアクセス制御回路１００は、ステップＳ３０５によって出力した書込要求を破棄する（ステップＳ３０６）。ステップＳ３０６は、たとえば図１に示した書込バッファ１３１，１３２のそれぞれにより実行される。
【００４８】
つぎに、メモリアクセス制御回路１００は、ステップＳ３０３により書き込んだ書込要求の書き込みが完了したことを示す書込応答を発行し（ステップＳ３０７）、ステップＳ３０１へ戻る。ステップＳ３０７は、たとえば図１に示した書込バッファ１３１，１３２の少なくともいずれかにより実行される。
【００４９】
（実施の形態にかかるメモリアクセス制御回路によるパケット出力処理）
図４は、実施の形態にかかるメモリアクセス制御回路によるパケット出力処理の一例を示すフローチャートである。実施の形態にかかるメモリアクセス制御回路１００は、パケット出力処理として、たとえば図４に示す各ステップを実行する。まず、メモリアクセス制御回路１００は、パケットの出力指示があったか否かを判断し（ステップＳ４０１）、出力指示があるまで待つ（ステップＳ４０１：Ｎｏのループ）。ステップＳ４０１は、たとえば図１に示した読出制御部１１２により実行される。
【００５０】
ステップＳ４０１において、出力指示があると（ステップＳ４０１：Ｙｅｓ）、メモリアクセス制御回路１００は、ステップＳ４０２へ移行する。すなわち、メモリアクセス制御回路１００は、出力指示があったデータについての書込応答が図３に示したステップＳ３０７により発行済みであるか否かを判断し（ステップＳ４０２）、書込応答が発行済みになるまで待つ（ステップＳ４０２：Ｎｏのループ）。ステップＳ４０２は、たとえば図１に示した読出制御部１１２により実行される。
【００５１】
ステップＳ４０２において、書込応答が発行済みになると（ステップＳ４０２：Ｙｅｓ）、メモリアクセス制御回路１００は、その書込応答に対応する読出アドレスを含む読出要求を発行する（ステップＳ４０３）。ステップＳ４０３は、たとえば図１に示した読出制御部１１２により実行される。
【００５２】
つぎに、メモリアクセス制御回路１００は、ステップＳ４０３により発行した読出要求の読出アドレスと同じ値の書込アドレスを含む書込要求、すなわち端数データが書込バッファ１３２にあるか否かを判断する（ステップＳ４０４）。ステップＳ４０４は、たとえば図１に示した読出／端数判定制御部１３３が書込バッファ１３２へ端数判定要求を発行することにより実行される。
【００５３】
ステップＳ４０４において、端数データが書込バッファ１３２にある場合（ステップＳ４０４：Ｙｅｓ）は、メモリアクセス制御回路１００は、その端数データを読み出して端数バッファ１３５に格納し（ステップＳ４０５）、ステップＳ４０８へ移行する。ステップＳ４０５は、たとえば図１に示した書込バッファ１３２により実行される。
【００５４】
ステップＳ４０４において、端数データが書込バッファ１３２にない場合（ステップＳ４０４：Ｎｏ）は、読出要求に対応するデータはすでに書込バッファ１３１から読み出されて大容量メモリデバイス１０に書き込み済みと判断することができる。この場合に、メモリアクセス制御回路１００は、ステップＳ４０３により発行した読出要求をメモリコントローラ１２０へ出力する（ステップＳ４０６）。これにより、大容量メモリデバイス１０からのバースト転送が行われる。ステップＳ４０６は、たとえば図１に示した読出／端数判定制御部１３３により実行される。
【００５５】
つぎに、メモリアクセス制御回路１００は、ステップＳ４０６により出力した読出要求に応じて大容量メモリデバイス１０から読み出されたデータを含む読出応答を読出バッファ１３６に格納する（ステップＳ４０７）。ステップＳ４０７は、たとえば図１に示したメモリコントローラ１２０により実行される。
【００５６】
つぎに、メモリアクセス制御回路１００は、ステップＳ４０４による端数データの有無の判定結果を判定結果ＦＩＦＯに格納する（ステップＳ４０８）。ステップＳ４０８は、たとえば図１に示した読出／端数選択制御部１３４により実行される。
【００５７】
つぎに、メモリアクセス制御回路１００は、判定結果ＦＩＦＯから、ステップＳ４０４による端数データの有無の判定結果を読み出す（ステップＳ４０９）。ステップＳ４０９は、たとえば図１に示した読出／端数選択制御部１３４により実行される。
【００５８】
つぎに、メモリアクセス制御回路１００は、ステップＳ４０９により読み出した判定結果が、端数データがある旨の判定結果であるか否かを判断する（ステップＳ４１０）。端数データがある旨の判定結果である場合（ステップＳ４１０：Ｙｅｓ）は、メモリアクセス制御回路１００は、端数バッファ１３５から端数データを読み出す（ステップＳ４１１）。ステップＳ４１１は、たとえば図１に示した読出／端数選択制御部１３４が端数バッファ１３５および選択部１３７へ制御信号を出力することにより実行される。
【００５９】
ステップＳ４１０において、端数データがある旨の判定結果でない場合（ステップＳ４１０：Ｎｏ）は、メモリアクセス制御回路１００は、読出バッファ１３６から読出応答を読み出す（ステップＳ４１２）。ステップＳ４１２は、たとえば図１に示した読出／端数選択制御部１３４が読出バッファ１３６および選択部１３７へ制御信号を出力することにより実行される。
【００６０】
つぎに、メモリアクセス制御回路１００は、ステップＳ４１１により読み出した端数データまたはステップＳ４１２により読み出した読出応答を含むパケットを出力し（ステップＳ４１３）、ステップＳ４０１へ戻る。ステップＳ４１３は、たとえば図１に示した出力制御部１１３により実行される。
【００６１】
（実施の形態にかかるメモリアクセス制御回路による大容量メモリデバイスに対するアクセスフロー）
図５は、実施の形態にかかるメモリアクセス制御回路による大容量メモリデバイスに対するアクセスフローの一例を示すシーケンス図である。メモリアクセス制御回路１００においては、たとえば図５に示す各ステップが実行される。図５に示す例では、メモリアクセス制御回路１００に対して第１フロー（＜１＞）および第２フロー（＜２＞）の各パケットが入力されるとする。
【００６２】
また、図５に示す例では、大容量メモリデバイス１０へのバースト転送の単位となるデータ量（上述した所定量ＴＨ）は、第１フローについてはパケット４個分のデータ容量であり、第２フローについてはパケット３個分のデータ容量であるとする。
【００６３】
まず、メモリアクセス制御回路１００の外部から第２フローの第１パケットが入力（パケット入力＜２＞−１）されたとする（ステップＳ５０１）。つぎに、書込／読出制御部１１０が、第２フローの第１パケットの書込要求（＜２＞−１）をアクセス制御部１３０へ出力する（ステップＳ５０２）。これにより、第２フローの第１パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれる。つぎに、アクセス制御部１３０が、第２フローの第１パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５０３）。
【００６４】
つぎに、書込／読出制御部１１０が、第２フローの第１パケットの読出要求（＜２＞−１）をアクセス制御部１３０へ出力したとする（ステップＳ５０４）。つぎに、アクセス制御部１３０が、書込バッファ１３２に書き込まれた書込要求（＜２＞−１）を端数データとして書込／読出制御部１１０へ出力する（ステップＳ５０５）。つぎに、書込／読出制御部１１０が、ステップＳ５０５により出力された端数データを含むパケットを出力（パケット出力＜２＞−１）する（ステップＳ５０６）。このように、図５に示す例では、第２フローの第１パケットについて、大容量メモリデバイス１０へのバースト転送前に読出要求が出力されたが、大容量メモリデバイス１０へのバースト転送を待たずに出力することができる。
【００６５】
つぎに、メモリアクセス制御回路１００の外部から第１フローの第１パケットが入力（パケット入力＜１＞−１）されたとする（ステップＳ５０７）。つぎに、書込／読出制御部１１０が、第１フローの第１パケットの書込要求（＜１＞−１）をアクセス制御部１３０へ出力する（ステップＳ５０８）。これにより、第１フローの第１パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれる。つぎに、アクセス制御部１３０が、第１フローの第１パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５０９）。
【００６６】
つぎに、書込／読出制御部１１０が、第１フローの第１パケットの読出要求（＜１＞−１）をアクセス制御部１３０へ出力したとする（ステップＳ５１０）。つぎに、アクセス制御部１３０が、書込バッファ１３２に書き込まれた書込要求（＜１＞−１）を端数データとして書込／読出制御部１１０へ出力する（ステップＳ５１１）。つぎに、書込／読出制御部１１０が、ステップＳ５１１により出力された端数データを含むパケットを出力（パケット出力＜１＞−１）する（ステップＳ５１２）。このように、図５に示す例では、第１フローの第１パケットについて、大容量メモリデバイス１０へのバースト転送前に読出要求が出力されたが、大容量メモリデバイス１０へのバースト転送を待たずに出力することができる。
【００６７】
つぎに、メモリアクセス制御回路１００の外部から第１フローの第２パケットが入力（パケット入力＜１＞−２）されたとする（ステップＳ５１３）。つぎに、書込／読出制御部１１０が、第１フローの第２パケットの書込要求（＜１＞−２）をアクセス制御部１３０へ出力する（ステップＳ５１４）。これにより、第１フローの第２パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれる。つぎに、アクセス制御部１３０が、第１フローの第２パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５１５）。
【００６８】
つぎに、書込／読出制御部１１０が、第１フローの第２パケットの読出要求（＜１＞−２）をアクセス制御部１３０へ出力したとする（ステップＳ５１６）。つぎに、アクセス制御部１３０が、書込バッファ１３２に書き込まれた書込要求（＜１＞−２）を端数データとして書込／読出制御部１１０へ出力する（ステップＳ５１７）。つぎに、書込／読出制御部１１０が、ステップＳ５１７により出力された端数データを含むパケットを出力（パケット出力＜１＞−２）する（ステップＳ５１８）。このように、図５に示す例では、第１フローの第２パケットについて、大容量メモリデバイス１０へのバースト転送前に読出要求が出力されたが、大容量メモリデバイス１０へのバースト転送を待たずに出力することができる。
【００６９】
つぎに、メモリアクセス制御回路１００の外部から第１フローの第３パケットが入力（パケット入力＜１＞−３）されたとする（ステップＳ５１９）。つぎに、書込／読出制御部１１０が、第１フローの第３パケットの書込要求（＜１＞−３）をアクセス制御部１３０へ出力する（ステップＳ５２０）。これにより、第１フローの第３パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれる。つぎに、アクセス制御部１３０が、第１フローの第３パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５２１）。
【００７０】
つぎに、書込／読出制御部１１０が、第１フローの第３パケットの読出要求（＜１＞−３）をアクセス制御部１３０へ出力したとする（ステップＳ５２２）。つぎに、アクセス制御部１３０が、書込バッファ１３２に書き込まれた書込要求（＜１＞−３）を端数データとして書込／読出制御部１１０へ出力する（ステップＳ５２３）。つぎに、書込／読出制御部１１０が、ステップＳ５２３により出力された端数データを含むパケットを出力（パケット出力＜１＞−３）する（ステップＳ５２４）。このように、図５に示す例では、第１フローの第３パケットについて、大容量メモリデバイス１０へのバースト転送前に読出要求が出力されたが、大容量メモリデバイス１０へのバースト転送を待たずに出力することができる。
【００７１】
つぎに、メモリアクセス制御回路１００の外部から第１フローの第４パケットが入力（パケット入力＜１＞−４）されたとする（ステップＳ５２５）。つぎに、書込／読出制御部１１０が、第１フローの第４パケットの書込要求（＜１＞−４）をアクセス制御部１３０へ出力する（ステップＳ５２６）。
【００７２】
これにより、第１フローの第４パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれ、書込バッファ１３１に書き込まれた第１フローの各書込要求の総容量がパケット４個分のデータ量に達した。このため、アクセス制御部１３０は、書込バッファ１３１に書き込まれた各書込要求の第１フローの第１〜第４パケットの書込をまとめて要求する書込要求（＜１＞−１，２，３，４）をメモリコントローラ１２０へ出力する（ステップＳ５２７）。
【００７３】
つぎに、メモリコントローラ１２０が、書込要求（＜１＞−１，２，３，４）を大容量メモリデバイス１０へ出力する（ステップＳ５２８）。これにより、第１フローの第１〜第４パケットがバースト転送により大容量メモリデバイス１０に書き込まれる。また、アクセス制御部１３０が、第１フローの第４パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５２９）。
【００７４】
つぎに、書込／読出制御部１１０が、第１フローの第４パケットの読出要求（＜１＞−４）をアクセス制御部１３０へ出力したとする（ステップＳ５３０）。つぎに、アクセス制御部１３０が、バースト転送により大容量メモリデバイス１０に書き込んだ第１フローの第１〜第４パケットの読出要求（＜１＞−１，２，３，４）をメモリコントローラ１２０へ出力する（ステップＳ５３１）。
【００７５】
つぎに、メモリコントローラ１２０が、読出要求（＜１＞−１，２，３，４）を大容量メモリデバイス１０へ出力する（ステップＳ５３２）。つぎに、大容量メモリデバイス１０が、第１フローの第１〜第４パケットを読み出し、読み出した大容量メモリデバイス１０を読出応答（＜１＞−１，２，３，４）としてメモリコントローラ１２０へ出力する（ステップＳ５３３）。つぎに、メモリコントローラ１２０が、読出応答（＜１＞−１，２，３，４）をアクセス制御部１３０へ出力する（ステップＳ５３４）。
【００７６】
つぎに、アクセス制御部１３０が、読出応答（＜１＞−１，２，３，４）に含まれる第１フローの第４データを含む読出応答（＜１＞−４）を書込／読出制御部１１０へ出力する（ステップＳ５３５）。つぎに、書込／読出制御部１１０が、読出応答（＜１＞−４）に含まれるデータを含むパケットを出力（パケット出力＜１＞−４）する（ステップＳ５３６）。
【００７７】
つぎに、メモリアクセス制御回路１００の外部から第２フローの第２パケットが入力（パケット入力＜２＞−２）されたとする（ステップＳ５３７）。つぎに、書込／読出制御部１１０が、第２フローの第２パケットの書込要求（＜２＞−２）をアクセス制御部１３０へ出力する（ステップＳ５３８）。これにより、第２フローの第２パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれる。つぎに、アクセス制御部１３０が、第２フローの第２パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５３９）。
【００７８】
つぎに、書込／読出制御部１１０が、第２フローの第２パケットの読出要求（＜２＞−２）をアクセス制御部１３０へ出力したとする（ステップＳ５４０）。つぎに、アクセス制御部１３０が、書込バッファ１３２に書き込まれた書込要求（＜２＞−２）を端数データとして書込／読出制御部１１０へ出力する（ステップＳ５４１）。つぎに、書込／読出制御部１１０が、ステップＳ５４１により出力された端数データを含むパケットを出力（パケット出力＜２＞−２）する（ステップＳ５４２）。このように、図５に示す例では、第２フローの第２パケットについて、大容量メモリデバイス１０へのバースト転送前に読出要求が出力されたが、大容量メモリデバイス１０へのバースト転送を待たずに出力することができる。
【００７９】
つぎに、メモリアクセス制御回路１００の外部から第２フローの第３パケットが入力（パケット入力＜２＞−３）されたとする（ステップＳ５４３）。つぎに、書込／読出制御部１１０が、第２フローの第３パケットの書込要求（＜２＞−３）をアクセス制御部１３０へ出力する（ステップＳ５４４）。
【００８０】
これにより、第２フローの第３パケットがアクセス制御部１３０の書込バッファ１３１，１３２に書き込まれ、書込バッファ１３１に書き込まれた第２フローの各書込要求の総容量がパケット３個分のデータ量に達した。このため、アクセス制御部１３０は、書込バッファ１３１に書き込まれた各書込要求の第２フローの第１〜第３パケットの書込をまとめて要求する書込要求（＜２＞−１，２，３）をメモリコントローラ１２０へ出力する（ステップＳ５４５）。
【００８１】
つぎに、メモリコントローラ１２０が、書込要求（＜２＞−１，２，３）を大容量メモリデバイス１０へ出力する（ステップＳ５４６）。これにより、第２フローの第１〜第３パケットがバースト転送により大容量メモリデバイス１０に書き込まれる。また、アクセス制御部１３０が、第２フローの第３パケットの書込応答を書込／読出制御部１１０へ出力する（ステップＳ５４７）。
【００８２】
つぎに、書込／読出制御部１１０が、第２フローの第３パケットの読出要求（＜２＞−３）をアクセス制御部１３０へ出力したとする（ステップＳ５４８）。つぎに、アクセス制御部１３０が、バースト転送により大容量メモリデバイス１０に書き込んだ第２フローの第１〜第３パケットの読出要求（＜２＞−１，２，３）をメモリコントローラ１２０へ出力する（ステップＳ５４９）。
【００８３】
つぎに、メモリコントローラ１２０が、読出要求（＜２＞−１，２，３）を大容量メモリデバイス１０へ出力する（ステップＳ５５０）。つぎに、大容量メモリデバイス１０が、第２フローの第１〜第３パケットを読み出し、読み出した大容量メモリデバイス１０を読出応答（＜２＞−１，２，３）としてメモリコントローラ１２０へ出力する（ステップＳ５５１）。つぎに、メモリコントローラ１２０が、読出応答（＜２＞−１，２，３）をアクセス制御部１３０へ出力する（ステップＳ５５２）。
【００８４】
つぎに、アクセス制御部１３０が、読出応答（＜２＞−１，２，３）に含まれる第２フローの第３データを含む読出応答（＜２＞−３）を書込／読出制御部１１０へ出力する（ステップＳ５５３）。つぎに、書込／読出制御部１１０が、読出応答（＜２＞−３）に含まれるデータを含むパケットを出力（パケット出力＜２＞−３）する（ステップＳ５５４）。
【００８５】
（実施の形態にかかるメモリアクセス制御回路によるパケット入出力）
図６は、実施の形態にかかるメモリアクセス制御回路によるパケット入出力の一例を示す図である。図６において、横軸は時間を示す。図６に示すメモリアクセス単位６０１は、上述した大容量メモリデバイス１０へのバースト転送の単位となるデータ量（所定量ＴＨ）を示す。また、図６に示す入力パケット６１０は、メモリアクセス制御回路１００に対して入力される各パケットを示す。書込バッファ状態６２０は、書込バッファ１３１，１３２におけるパケットの格納状態を示す。大容量メモリデバイス書込状態６３０は、大容量メモリデバイス１０におけるパケットの書込状態を示す。
【００８６】
入力パケット６１０に示すように、メモリアクセス制御回路１００に対して、まずパケット６１１が入力され、次にパケット６１２が入力され、次にパケット６１３が入力されたとする。また、パケット６１３の次にパケット６１４が入力され、次にパケット６１５が入力され、次にパケット６１６が入力されたとする。パケット６１１〜６１６のそれぞれには１個以上のパケット（データ）が含まれる。
【００８７】
書込バッファ状態６２０に示すように、パケット６１１が書込バッファ１３１，１３２に格納された段階においては、書込バッファ１３１，１３２に格納されたパケットのデータ総量はメモリアクセス単位６０１に達していない。このため、書込バッファ１３１から大容量メモリデバイス１０へのバースト転送は行われないが、パケット６１１についての書込応答６４１が発行される。
【００８８】
また、パケット６１２が書込バッファ１３１，１３２に格納された段階においては、書込バッファ１３１，１３２に格納されたパケットのデータ総量はメモリアクセス単位６０１に達していない。このため、書込バッファ１３１から大容量メモリデバイス１０へのバースト転送は行われないが、パケット６１２についての書込応答６４２が発行される。
【００８９】
そして、パケット６１３が書込バッファ１３１，１３２に格納された段階において、書込バッファ１３１，１３２に格納されたパケットのデータ総量がメモリアクセス単位６０１を超える。このため、書込バッファ１３１に格納された各パケットのうち先頭のメモリアクセス単位６０１に相当する各パケットについての書込要求が発行される。図６に示す例では、パケット６１１，６１２と、パケット６１３の先頭の一部であるパケット６１３ａと、についての書込要求６２１が発行される。そして、パケット６１３の残りの部分であるパケット６１３ｂについては書込バッファ１３１に残る。また、書込バッファ１３２の書込バッファ状態６２０も書込バッファ１３１の書込バッファ状態６２０と同じになるように制御される。
【００９０】
書込要求６２１が発行されることにより、大容量メモリデバイス書込状態６３０に示すように、大容量メモリデバイス１０にパケット６１１，６１２，６１３ａが書き込まれる。また、パケット６１３についての書込応答６４３が発行される。
【００９１】
また、パケット６１４，６１５が書込バッファ１３１，１３２に格納された段階においては、書込バッファ１３１，１３２に格納されたパケットのデータ総量はメモリアクセス単位６０１に達していない。このため、書込バッファ１３１から大容量メモリデバイス１０へのバースト転送は行われないが、それぞれパケット６１４，６１５についての書込応答６４４，６４５が発行される。
【００９２】
そして、パケット６１６が書込バッファ１３１，１３２に格納された段階において、書込バッファ１３１，１３２に格納されたパケットのデータ総量がメモリアクセス単位６０１を超える。このため、書込バッファ１３１に格納された各パケットのうち先頭のメモリアクセス単位６０１に相当する各パケットについての書込要求が発行される。図６に示す例では、パケット６１３ｂ，６１４，６１５と、パケット６１６の先頭の一部であるパケット６１６ａと、についての書込要求６２２が発行される。そして、パケット６１６の残りの部分であるパケット６１６ｂについては書込バッファ１３１に残る。また、書込バッファ１３２の書込バッファ状態６２０も書込バッファ１３１の書込バッファ状態６２０と同じになるように制御される。
【００９３】
書込要求６２２が発行されることにより、大容量メモリデバイス書込状態６３０に示すように、大容量メモリデバイス１０にパケット６１３ｂ，６１４，６１５，６１６ａが書き込まれる。また、パケット６１６についての書込応答６４６が発行される。
【００９４】
図６に示す読出制御６５０は、書込／読出制御部１１０の読出制御部１１２による読出制御を示す。端数バッファ状態６６０は、端数バッファ１３５における端数データの格納状態を示す。大容量メモリデバイス読出状態６７０は、大容量メモリデバイス１０におけるパケットの読出状態を示す。読出バッファ状態６８０は、読出バッファ１３６におけるパケットの格納状態を示す。出力パケット６９０は、出力制御部１１３から出力される各パケットを示す。
【００９５】
読出制御６５０に示すように、図６に示す例では、読出制御部１１２により、それぞれ書込応答６４１〜６４６の直後に読出要求６５１〜６５６が発行されるとする。読出要求６５１〜６５６は、それぞれパケット６１１〜６１６の読出要求である。
【００９６】
読出要求６５１が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１１が読み出されて端数バッファ１３５に書き込まれる。そして、端数バッファ１３５に書き込まれたパケット６１１が出力制御部１１３から出力される。また、読出要求６５２が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１２が読み出されて端数バッファ１３５に書き込まれる。そして、端数バッファ１３５に書き込まれたパケット６１２が出力制御部１１３から出力される。
【００９７】
また、読出要求６５３が発行されることにより、大容量メモリデバイス１０に格納されたパケット６１３ａが読み出されて読出バッファ１３６に書き込まれる。また、読出要求６５３が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１３ｂが読み出されて端数バッファ１３５に書き込まれる。そして、読出バッファ１３６に書き込まれたパケット６１３ａと、端数バッファ１３５に書き込まれたパケット６１３ｂと、がパケット６１３として出力制御部１１３から出力される。
【００９８】
また、読出要求６５４が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１４が読み出されて端数バッファ１３５に書き込まれる。そして、端数バッファ１３５に書き込まれたパケット６１４が出力制御部１１３から出力される。また、読出要求６５５が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１５が読み出されて端数バッファ１３５に書き込まれる。そして、端数バッファ１３５に書き込まれたパケット６１５が出力制御部１１３から出力される。
【００９９】
また、読出要求６５６が発行されることにより、大容量メモリデバイス１０に格納されたパケット６１６ａが読み出されて読出バッファ１３６に書き込まれる。また、読出要求６５６が発行されることにより、書込バッファ１３２に書き込まれていたパケット６１６ｂが読み出されて端数バッファ１３５に書き込まれる。そして、読出バッファ１３６に書き込まれたパケット６１６ａと、端数バッファ１３５に書き込まれたパケット６１６ｂと、がパケット６１６として出力制御部１１３から出力される。
【０１００】
（実施の形態にかかるアクセス制御部の各部による処理）
図７は、実施の形態にかかるアクセス制御部の各部による処理の一例を示す図である。図７において、図１に示した部分と同様の部分については同一の符号を付して説明を省略する。図７に示す例では、第１フロー（ＦＬＯＷ＝０）のパケット７０１の書込要求７０２が書込制御部１１１からアクセス制御部１３０へ入力されるとする。書込要求７０２は、第１フローの識別子（ＦＬＯＷ番号）と、書込アドレスと、書込データと、を含む。パケット７０１は、書込データとして６アドレス分のデータ（１）〜（６）を含む。データ（１）〜（６）の書込アドレスをそれぞれＡ〜Ｆとする。
【０１０１】
書込バッファ１３１，１３２のそれぞれは、それぞれ異なるフロー（ＦＬＯＷ＝０〜ｎ）に対応する書込ＦＩＦＯ７３１〜７３ｎを有する。データ（１）〜（６）は書込バッファ１３１，１３２のそれぞれの書込ＦＩＦＯ７３１に書き込まれる。
【０１０２】
ここで、データ（１）〜（４）のデータ総量が、大容量メモリデバイス１０へのバースト転送の単位となるデータ量（所定量ＴＨ）に達したとする。この場合は、データ（１）〜（４）の書込要求７０３がメモリコントローラ１２０へ出力される。これにより、メモリコントローラ１２０は、大容量メモリデバイス１０に対してデータ（１）の書込アドレス（Ａ）を指定してデータ（１）〜（４）のバースト転送を行う。また、図７に示すようにデータ（５），（６）の各書込要求が書込バッファ１３１，１３２に滞留する。
【０１０３】
また、データ（１）〜（６）の各書込要求が書込バッファ１３１，１３２へ入力されると、第１フローの書き込みが完了したことを示す書込応答７０４が読出制御部１１２に発行される。書込応答７０４は、たとえば第１フローの識別子であるＦＬＯＷ番号（ＦＬＯＷ＝０）を含む。
【０１０４】
つぎに、読出制御部１１２からアクセス制御部１３０に対して、データ（１）〜（６）についての読出要求７０５が発行される。読出要求７０５は、たとえば、第１フローの識別子であるＦＬＯＷ番号（ＦＬＯＷ＝０）と、データ（１）〜（６）の読出アドレス（Ａ〜Ｆ）と、を含む。
【０１０５】
つぎに、読出／端数判定制御部１３３が、読出要求７０５に含まれる読出アドレス（Ａ〜Ｆ）の書込要求が書込バッファ１３２に滞留しているか否かを判定する端数判定要求７０６を書込バッファ１３２に発行する。端数判定要求７０６は、たとえば、第１フローの識別子であるＦＬＯＷ番号（ＦＬＯＷ＝０）と、第１フローのデータ（１）〜（６）の読出アドレス（Ａ〜Ｆ）と、を含む。
【０１０６】
端数判定要求７０６に対して、図７に示す例では、アドレスＥ，Ｆに対応する書込要求が書込バッファ１３２に滞留している旨の判定結果７０７が書込バッファ１３２から読出／端数判定制御部１３３へ出力される。判定結果７０７は、端数判定要求７０６に含まれるアドレス（Ａ〜Ｆ）ごとに書込バッファ１３２における書込要求の滞留の有無を示す情報を含む。
【０１０７】
端数判定要求７０６に対して滞留があると判定された書込要求のデータは、書込バッファ１３２から端数バッファ１３５へ転写される。図７に示す例ではデータ（５），（６）が書込バッファ１３２から端数バッファ１３５へ転写される。端数バッファ１３５は、端数データＦＩＦＯ７４０を有する。データ（５），（６）は端数バッファ１３５の端数データＦＩＦＯ７４０に書き込まれる。
【０１０８】
また、端数判定要求７０６に対して滞留がないと判定された書込要求に対応するデータの読み出しを要求する読出要求７０８が、メモリコントローラ１２０を介して大容量メモリデバイス１０に発行される。図７に示す例では、読出要求７０８は、データ（１）〜（４）の読出アドレス（Ａ〜Ｄ）を含む。
【０１０９】
読出／端数判定制御部１３３は、書込バッファ１３２から出力された判定結果７０７を読出／端数選択制御部１３４へ出力する。読出／端数選択制御部１３４は、判定結果ＦＩＦＯ７５０を有する。そして、読出／端数選択制御部１３４は、読出／端数判定制御部１３３から出力された判定結果７０７と、第１フローの識別子であるＦＬＯＷ番号（ＦＬＯＷ＝０）と、読出バッファ１３６のアドレスと、を判定結果ＦＩＦＯ７５０に格納する。
【０１１０】
たとえば、判定結果７０７は、６個のアドレスに対応する各判定結果が含まれており、先頭の４個のアドレス（Ａ〜Ｄ）については書込バッファ１３２の滞留がなく、末尾の２個のアドレス（Ｅ，Ｆ）については書込バッファ１３２の滞留があることを示している。このため、読出／端数選択制御部１３４は、読出バッファ１３６の４個分のアドレス（図７に示す例では０〜３）を判定結果ＦＩＦＯ７５０に格納し、続けて２個分の空のアドレス（「−」）を判定結果ＦＩＦＯ７５０に格納する。
【０１１１】
一方、大容量メモリデバイス１０に対して発行された読出要求７０８に応じて、大容量メモリデバイス１０からメモリコントローラ１２０を介して読出応答７０９が読出バッファ１３６へ出力される。図７に示す例では、読出応答７０９は、データ（１）〜（４）を含む。読出バッファ１３６は、それぞれ異なるフロー（ＦＬＯＷ＝０〜ｎ）に対応する読出ＦＩＦＯ７６１〜７６ｎを有する。データ（１）〜（４）は第１フローに対応する読出バッファ１３６の読出ＦＩＦＯ７６１に書き込まれる。
【０１１２】
また、読出バッファ１３６は、データ（１）〜（４）（読出データ）とともに、データ（１）〜（４）の各読出アドレス（Ａ〜Ｄ）も格納してもよい。これにより、読出バッファ１３６の各データがいずれの読出アドレスの読出データであるのかを判定可能になり、それにより、大容量メモリデバイス１０からの読出データが読出バッファ１３６に格納されたことを判定することが可能になる。
【０１１３】
読出／端数選択制御部１３４は、判定結果ＦＩＦＯ７５０に情報が蓄積されている順番（すなわち読出要求の順番）に従い、端数バッファ１３５または読出バッファ１３６への読み出しの指示および選択部１３７への選択指示を出力する。図７に示す例では、判定結果ＦＩＦＯ７５０に６アドレス分の情報の蓄積があり、読出／端数選択制御部１３４は、先頭の４アドレス分のデータを読出バッファ１３６から読み出し、続く２アドレス分のデータを端数バッファ１３５から読み出す制御を行う。なお、先頭の４アドレス分のデータは大容量メモリデバイス１０からの読出データである。このため、読出／端数選択制御部１３４は、先頭の４アドレス分のデータの読出応答が読出バッファ１３６に蓄積されるのを待ってから読出／端数選択制御部１３４からデータを読み出す制御を行う。
【０１１４】
選択部１３７は、読出／端数選択制御部１３４からの制御に従って、端数バッファ１３５または読出バッファ１３６から読み出されるデータを読出応答７１０として出力制御部１１３へ出力する。図７に示す例では、選択部１３７は、読出バッファ１３６から先頭のデータ（１）〜（４）を選択し、続いて端数バッファ１３５からのデータ（５），（６）を選択し、選択したデータ（１）〜（６）を読出応答７１０として出力制御部１１３へ出力する。
【０１１５】
たとえば、選択部１３７は、端数データがある場合は端数バッファ１３５に格納されたデータを選択する。また、選択部１３７は、端数データがなく、かつ読出対象の読出バッファ１３６のアドレスが先頭（たとえば０）である場合は、大容量メモリデバイス１０からの読出応答を待ってから第１フローに対応する読出ＦＩＦＯ７６１のデータを選択する。また、選択部１３７は、端数データがなく、かつ読出対象の読出バッファ１３６のアドレスが先頭でない場合は第１フローに対応する読出ＦＩＦＯ７６１のデータを選択する。
【０１１６】
図７に示した例では、大容量メモリデバイス１０へのバースト転送の単位となるデータ量（所定量ＴＨ）が４アドレス分のデータ量である構成について説明したが、大容量メモリデバイス１０へのバースト転送の単位となるデータ量はこれに限らない。たとえば、大容量メモリデバイス１０へのバースト転送の単位となるデータ量は、２，４，８，１６…といった２nアドレス分のデータ量とすることができる。なお、大容量メモリデバイス１０へのバースト転送の単位が大きいほど、大容量メモリデバイス１０に対して高帯域でアクセス可能になる。
【０１１７】
このように、実施の形態にかかるメモリアクセス制御回路１００によれば、入力されたデータのうちメモリ（大容量メモリデバイス１０）に書き込まれていないデータをバッファ（書込バッファ１３２）に格納することができる。また、読み出しが要求されたデータのうちのメモリに書き込まれているデータをメモリから読み出し、読み出しが要求されたデータのうちのメモリに書き込まれていないデータをバッファから読み出すことができる。これにより、入力されたデータが所定量に達するごとにその所定量のデータをメモリに書き込むバースト転送を行う構成において、メモリに記憶される前に読み出しが要求されたデータを、メモリに記憶されるまで待たなくてもバッファから読み出すことができる。このため、データの読み出しの遅延の低減を図ることができる。
【０１１８】
また、読み出しが要求された場合に、読み出しが要求されたデータの読出アドレスと、バッファに書き込まれたデータの書込アドレスと、を比較した結果に基づいて、読み出しが要求されたデータがメモリに書き込まれているか否かを判定することができる。これにより、読み出しが要求されたデータがメモリに書き込まれているか否かを、メモリコントローラ１２０にアクセスしなくても判定することができる。このため、読み出しが要求されたデータがメモリに書き込まれているか否かの判定によるメモリコントローラ１２０のアクセスの増加を抑制することができる。
【０１１９】
また、入力されたデータのうちメモリに書き込まれていないデータを格納し、メモリに書き込まれる前に読み出しが要求されたデータを読み出し可能なバッファを、メモリに書き込むためのデータを格納するバッファと異なるバッファとしてもよい。これにより、メモリに対する書込制御と、読み出しが要求されたデータがメモリに書き込まれているか否かの判定と、を同時に実行することができる。
【０１２０】
以上説明したように、伝送装置および伝送方法によれば、データの読み出しの遅延の低減を図ることができる。
【０１２１】
たとえば、伝送情報の高速および大容量化に伴い、高帯域な大容量メモリが求められている。ＤＤＲ４−ＳＤＲＡＭ等の大容量メモリは、インタフェース速度の高速化とバースト転送（連続アクセス）により高帯域でのメモリアクセスが可能となる。しかし、シングルアクセス（単発アクセス）の場合は、インタフェース速度を高速化してもＳＤＲＡＭの構造的動作制約によりアクセス帯域は従来と変わらない。
【０１２２】
そのため、大容量メモリに対する書込データおよび読出データを書込バッファおよび読出バッファを用いて一旦蓄積し、大容量メモリに対して連続アクセスとなるようにアクセス制御を行うことで高帯域なメモリアクセスが実現される。
【０１２３】
一方、不定期に入力されるイーサパケットのようなランダム長パケットをバッファリングする装置においては、書込バッファの蓄積完了が不定期になることで大容量メモリへの書込要求が大きく遅延する場合がある。このため、低遅延での読出制御ができないという問題がある。
【０１２４】
これに対して、上述した実施の形態によれば、不定期に入力されるランダム長パケットであっても、大容量メモリに対するアクセスを高帯域かつ低遅延で行うことができる。たとえば、書込バッファに蓄積されている大容量メモリへの書込前の端数データを読出データとして出力することが可能となる。これにより、書込バッファの蓄積完了や時間経過による大容量メモリへの書込要求や書込応答を待って読出要求を発行しなくてもよくなる。したがって、書込バッファに対する書込要求の発行以降はいつでも読出要求を発行してパケットを出力することができるようになる。このため、パケット入力からパケット出力までの遅延を少なくすることが可能になる。
【０１２５】
たとえば、パケット入力に則した読出制御が可能となることで、パケット出力のバースト性を抑止した出力帯域制御が可能となり、ネットワーク全体での伝送効率の向上を図ることができる。また、たとえば時間監視による強制書込制御を行わなくてもよいため、強制書込制御のためのパケット境界／蓄積情報等の制御情報を管理しなくてもよくなる。このため、単純な内部高速ＲＡＭにアクセスするときと同じような書込制御および読出制御で大容量メモリへのアクセス制御が可能になる。
【０１２６】
また、たとえばアクセス帯域（ビット幅×アクセス周波数）の拡張やメモリ容量を増加させる方法と異なり、端子数が多い大規模デバイスの採用や複数デバイスへ分割、使用メモリ数の増加に伴う消費電力増加等を回避することができる。また、たとえば一定時間書込バッファに滞留している端数データに対して大容量メモリに対する強制書込を実施する方法と異なり、端数データばかりが大容量メモリにアクセスされる状態を回避し、書込遅延が大きくなることを抑制することができる。
【０１２７】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【０１２８】
（付記１）入力されたデータが所定量に達するごとに前記所定量の前記入力されたデータをメモリに書き込む書込部と、
前記入力されたデータのうち前記書込部によって前記メモリに書き込まれていないデータを格納するバッファと、
読み出しが要求されたデータのうちの前記メモリに書き込まれているデータを前記メモリから読み出し、前記読み出しが要求されたデータのうちの前記メモリに書き込まれていないデータを前記バッファから読み出す読出部と、
を備えることを特徴とする伝送装置。
【０１２９】
（付記２）前記読出部は、前記読み出しが要求されたデータの読出アドレスと、前記バッファに書き込まれたデータの書込アドレスと、を比較した結果に基づいて前記読み出しが要求されたデータが前記メモリに書き込まれているか否かを判定することを特徴とする付記１に記載の伝送装置。
【０１３０】
（付記３）前記バッファと異なるバッファであって、前記入力されたデータを格納するバッファを備え、
前記書込部は、前記異なるバッファに格納されたデータが前記所定量に達するごとに前記所定量の前記異なるバッファに格納されたデータを読み出して前記メモリに書き込む
ことを特徴とする付記２に記載の伝送装置。
【０１３１】
（付記４）前記入力されたデータは他の伝送装置から受信したデータであり、
前記読出部により読み出されたデータを他の伝送装置へ送信する
ことを特徴とする付記１〜３のいずれか一つに記載の伝送装置。
【０１３２】
（付記５）前記書込部は、前記所定量の前記入力されたデータをバースト転送により前記メモリへ書き込むことを特徴とする付記１〜４のいずれか一つに記載の伝送装置。
【０１３３】
（付記６）前記バッファは、前記メモリより容量が小さい記憶媒体であることを特徴とする付記１〜５のいずれか一つに記載の伝送装置。
【０１３４】
（付記７）前記バッファは、前記メモリよりアクセスが高速な記憶媒体であることを特徴とする付記１〜６のいずれか一つに記載の伝送装置。
【０１３５】
（付記８）入力されたデータが所定量に達するごとに前記所定量の前記入力されたデータをメモリに書き込み、
前記入力されたデータのうち前記メモリに書き込まれていないデータをバッファに格納し、
読み出しが要求されたデータのうちの前記メモリに書き込まれているデータを前記メモリから読み出し、前記読み出しが要求されたデータのうちの前記メモリに書き込まれていないデータを前記バッファから読み出す
ことを特徴とする伝送方法。
【符号の説明】
【０１３６】
１０，１０Ａ，１０Ｂ  大容量メモリデバイス
１００，１００Ａ，１００Ｂ  メモリアクセス制御回路
１１０  書込／読出制御部
１１１  書込制御部
１１２  読出制御部
１１３  出力制御部
１２０  メモリコントローラ
１３０  アクセス制御部
１３１，１３２  書込バッファ
１３３  読出／端数判定制御部
１３４  読出／端数選択制御部
１３５  端数バッファ
１３６  読出バッファ
１３７  選択部
２００  パケット伝送装置
２１１〜２１４  ＬＩＵ
２２０  ＳＷ
６０１  メモリアクセス単位
６１０  入力パケット
６１１〜６１６，６１３ａ，６１３ｂ，６１６ａ，６１６ｂ，７０１  パケット
６２０  書込バッファ状態
６２１，６２２，７０２，７０３  書込要求
６３０  大容量メモリデバイス書込状態
６４１〜６４６，７０４  書込応答
６５０  読出制御
６５１〜６５６，７０５，７０８  読出要求
６６０  端数バッファ状態
６７０  大容量メモリデバイス読出状態
６８０  読出バッファ状態
６９０  出力パケット
７０６  端数判定要求
７０７  判定結果
７０９，７１０  読出応答
７３１〜７３ｎ  書込ＦＩＦＯ
７４０  端数データＦＩＦＯ
７５０  判定結果ＦＩＦＯ
７６１〜７６ｎ  読出ＦＩＦＯ
【図１】
2019046042.tif 000003
【図２】
2019046042.tif 000004
【図３】
2019046042.tif 000005
【図４】
2019046042.tif 000006
【図５】
2019046042.tif 000007
【図６】
2019046042.tif 000008
【図７】
2019046042.tif 000009