(57)【要約】【課題】  メモリから取得したデータのアライン処理を含むデータ転送処理を効率的に実行する。【解決手段】  アライナ１３０は、メイン・メモリ１１０から取得したデータを一時的に記憶する複数のレジスタ・ファイル１３１ａ〜１３１ｎを備えている。アライン・ロジック１３２は、レジスタ・ファイル１３１からのデータをパケット通信データに対応した順序に並べ替える（アラインする）。レジスタ・ファイル１３１からのデータは、セレクタ１３３を介してアライン・ロジックに入力される。セレクタは、複数のレジスタ・ファイルからのデータを選択的にアライン・ロジックに出力する。アライン処理とメモリからレジスタ・ファイルへのデータ転送処理を並行して実行することができ、処理が効率化される。【選択図】  図１
2005333481.tif 000002
【特許請求の範囲】
【請求項１】
メモリから取得した通信データを転送する通信データ転送装置であって、
メモリからのデータを一時的に記憶し、互いに独立してデータの入出力が可能な複数のバッファ・メモリと、
入力されたデータをパケット通信に対応した順序に並べ替えるアライン部と、
前記複数のバッファ・メモリから選択したバッファ・メモリの読み出しデータを前記アライン部に出力するセレクタと、
を有する、通信データ転送装置。
【請求項２】
前記通信データ転送装置は、互いに独立してデータの入出力が可能な３以上のバッファ・メモリを備える、請求項１に記載のデータ転送装置。
【請求項３】
前記セレクタは、前記メモリからのデータ読み出しを要求するデータ・リード要求の発行順序と、前記データ・リード要求に対応するデータが前記複数のバッファ・メモリから読み出される順序とが同一となるように、前記複数のバッファ・メモリから前記アライン部にデータ出力するバッファ・メモリを選択する、請求項１に記載の通信データ転送装置。
【請求項４】
前記セレクタによって選択されるバッファ・メモリを特定する選択制御データがセットされる選択制御データ・キューと、
前記メモリからのデータを格納するバッファ・メモリを特定して前記メモリからのデータ読み出しを要求するデータ・リード要求の発行順序と、前記選択制御データ・キューにセットされる選択制御データの順序が同一となるように、前記選択制御データを前記選択制御データ・キューにセットする制御部と、
をさらに有する、請求項１に記載のデータ転送装置。
【請求項５】
データを記憶するメモリと、
前記メモリからの読み出しデータを伝送するデータ・バスと、
前記メモリから前記データ・バスを介して取得したデータを一時的に記憶する、互いに独立してデータの入出力が可能な複数のバッファ・メモリと、
前記データ・バスの使用件を調停し、前記メモリから前記複数のバッファ・メモリへのデータ読み出しを制御するバス・アービタと、
入力されたデータをパケット通信に対応した順序に並べ替えるアライン部と、
前記複数のバッファ・メモリから選択したバッファ・メモリの読み出しデータを前記アライン部に出力するセレクタと、
を有する通信データ処理システム。
【請求項６】
前記バス・アービタは、前記メモリからの前記複数のバッファ・メモリへのデータ読み出しを要求するデータ・リード要求の発行順序と、前記メモリから前記複数のバッファ・メモリ内のバッファ・メモリへのデータ転送順序とを、アウト・オブ・オーダにおいて制御する、請求項５に記載の通信データ処理システム。
【請求項７】
前記メモリからのデータを格納するバッファ・メモリを特定して前記メモリからのデータ読み出しを要求するデータ・リード要求がセットされる、データ・リード要求キューと、
前記セレクタによって選択されるバッファ・メモリを特定する選択制御データがセットされる選択制御データ・キューと、
前記データ・リード要求を発行して前記データ・リード要求キューにセットし、前記データ・リード要求の発行順序と同一順序において前記選択制御データを前記選択制御データ・キューにセットする制御部と、
をさらに有する請求項６に記載の通信データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信データの転送装置に関し、特に、メモリに記憶されているデータを取得し、パケット通信に対応したアライン処理を実行するデータ転送装置に関する。
【背景技術】
【０００２】
インターネットに代表されるネットワーク技術の進歩、普及に伴い、多くのコンピュータはネットワークに接続され、他のコンピュータとの間においにおいてデータ通信を実行する。典型的には、コンピュータはイーサネット（登録商標）に代表されるＬＡＮ（Local area Network）に接続され、ＬＡＮ内における他のコンピュータとの間においてデータ通信を実行し、また、ＬＡＮを介して外部のネットワークに接続する。
【０００３】
通信データはコンピュータ内のネットワーク・コントローラを介して転送される。ネットワーク・コントローラは、メイン・メモリから取得データに対し必要な処理を実行したあと、生成されたパケット・データをＬＡＮに出力する。また、ＬＡＮから取得した通信パケット・データについて必要な処理を実行し、メイン・メモリにそのデータを格納する。図４は、従来の技術におけるデータ転送のためのデータ処理を説明するブロック図である。
【０００４】
図４は、ネットワーク・コントローラの一部構成であるアライナ３１０と、データを記憶するメイン・メモリ３５０を示している。アライナ３１０とメイン・メモリ３５０とは、データ・バス３６０を介してデータの授受を行う。アライナ３１０は、取得したデータを、ネットワークによるパケット通信に対応した順序にデータを並べ替える（アラインする）アライン・ロジック３１１備えている。さらに、アライン・ロジック３１１からのデータを一時的に格納し、格納した順番で出力するＦＩＦＯ３１２、及び、メイン・メモリ３５０からデータ読み出し、ＦＩＦＯからのデータ出力を制御するシーケンサ３１３を備えている。
【０００５】
尚、図４は、ＦＩＦＯ３１２がアラインされたデータを記憶している状態を示している。ＦＩＦＯ３１２の一マスは１バイト・データを示している。また、ハッチされたマスのデータは転送される通信データとして有効なデータを示しており、白のマスは転送される通信データとして無効なデータを示している。アライン・ロジック３１１は、無効データと有効データが混在したデータから、図４に示すように有効データを連続的なデータ列に並べ替える。
【０００６】
図４に示されたシステムにおけるデータ転送処理を説明する。特に、メイン・メモリ３５０に記憶されているデータの出力処理を説明する。まず、シーケンサ３１３はメイン・メモリ３５０からの読み出しの要求（MReq）を発行する（[１]）。要求に応答して、メイン・メモリ３５０からデータRDATAが読み出され、アライナ３１０のアライン・ロジック３１１に入力される（[２]）。アライン・ロジック３１１は取得したデータをアラインし、ALRDATAをＦＩＦＯ３１３に出力する（[３]）。
【０００７】
メイン・メモリ３５０からアライナ３１０へのデータ転送が完了すると、完了を示すＭＡｃｋがシーケンサ３１３に送られる（[４]）。シーケンサ３１３は、ＭＡｃｋに応答して、ＦＩＦＯ３１３のデータを次のデータ処理ブロックに出力するようにＦＩＦＯ３１３を制御するCtl信号を出力する（[５]）。上記の処理動作が、転送すべきデータがなくなるまで繰り返される。尚、この他、複数のデータ・レジスタを備え、ＣＰＵからメイン・メモリへのストア要求を処理するストア・バッファが特許文献１に開示されている。
【０００８】
【特許文献１】特開昭６１−１１８８５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
図４を参照して説明された従来技術において、メイン・メモリ３５０からアライン・ロジック３１１へのデータ入力は、ＦＩＦＯ３１２からの所定バイトのデータ出力の完了を待って行うことが必要とされる。例えば、メイン・メモリ３５０から６４バイトのデータ読み出しが行われる場合、ＦＵＬＬ状態のＦＩＦＯ３１２がデータを出力し、６４バイトのデータを格納することができる空き領域を形成した後に、メイン・メモリ３５０からデータの転送を行うことが必要とされる。
【００１０】
しかし、データ・バス３６０は他の回路構成と共に使用するため、ＦＩＦＯ３１２に空き領域が形成されたタイミングにおいて、メイン・メモリ３５０からデータ転送を開始できるとは限らない。所望のタイミングで、メイン・メモリ３５０からデータを読み出すことができない場合、データ転送処理においてデッド・タイムが生じ、データ転送遅延が発生する。
【００１１】
特に、近年の半導体技術及び情報処理技術の進歩に伴い、ネットワークにおけるデータ転送速度の高速化が進んでいる。例えば、イーサネット（登録商標）のデータ転送速度は、１０Ｍｂｐｓ、１００Ｍｂｐｓから１Ｇｂｐｓへと進んでいる。このため、メイン・メモリ３５０からアライナ３１０へのデータ転送の遅れが、ボトルネックとなり、外部のデータ転送速度に対応することができないことが考えられる。
【００１２】
あるいは、ＦＩＦＯにはメイン・メモリ３５０から読み出されたデータを、読み出された順序に従ってＦＩＦＯに入力することが必要とされる。このため、リード・コマンドは、１つ１つ独立して発行、完了することが必要であり、コマンドのインターリーブによって、バスの使用効率を高めることができない。
【００１３】
本発明は上記のような事情を背景としてなされたものであって、本発明の目的は、メモリから取得したデータのアライン処理を含むデータ転送処理を効率的に実行することである。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるだろう。
【課題を解決するための手段】
【００１４】
以下に課題を解決するための手段を開示する。本項目において、いくつかの構成要素は、実施の形態において説明された構成要素と対応付けられている。しかし、この対応付けは発明の理解の容易のためになされたものであって、各要素は実施の形態の対応要素にのみ限定されるものでない。
【００１５】
本発明の第１の態様は、メモリから取得した通信データを転送する通信データ転送装置であって、メモリからのデータを一時的に記憶し、互いに独立してデータの入出力が可能な複数のバッファ・メモリと（例えば、複数のレジスタ・ファイル１３１）、入力されたデータをパケット通信に対応した順序に並べ替えるアライン部（例えば、アライン・ロジック１３２）と、前記複数のバッファ・メモリから選択したバッファ・メモリの読み出しデータを前記アライン部に出力するセレクタ（例えば、セレクタ１３３）と、を有する。複数のバッファ・メモリを備えることによって、メモリから取得したデータのアライン処理、アラインされたデータの転送処理を効率的に実行することができる。
前記通信データ転送装置は、互いに独立してデータの入出力が可能な３以上のバッファ・メモリを備えることができる。多くのバッファ・メモリを有することによって、より効率的な処理が可能となる。
【００１６】
前記セレクタは、前記メモリからのデータ読み出しを要求するデータ・リード要求の発行順序と、前記データ・リード要求に対応するデータが前記複数バッファ・メモリから読み出される順序とが同一となるように、前記複数のバッファ・メモリからバッファ・メモリを選択する。これによって、データ順序が変更されることがないので、その後の処理において効率的な処理が可能となる。
【００１７】
前記セレクタによって選択されるバッファ・メモリを特定する選択制御データがセットされる選択制御データ・キュー（例えば、アライン・リクエスト・キュー１３４）と、前記メモリからのデータを格納するバッファ・メモリを特定して前記メモリからのデータ読み出しを要求するデータ・リード要求の発行順序と、前記選択制御データ・キューにセットされる選択制御データの順序が同一となるように、前記選択制御データを前記選択制御データ・キューにセットする制御部（例えば、シーケンサ１３５）と、をさらに有する。これによって、データ順序が変更されることがないので、その後の処理において効率的な処理が可能となる。
【００１８】
本発明の第２の態様に係る通信データ処理システムは、データを記憶するメモリと、前記メモリからの読み出しデータを伝送するデータ・バスと、前記メモリから前記データ・バスを介して取得したデータを一時的に記憶する、互いに独立してデータの入出力が可能な複数のバッファ・メモリと、前記データ・バスの使用件を調停し、前記メモリから前記複数のバッファ・メモリへのデータ読み出しを制御するバス・アービタと、入力されたデータをパケット通信に対応した順序に並べ替えるアライン部と、前記複数のバッファ・メモリから選択したバッファ・メモリの読み出しデータを前記アライン部に出力するセレクタと、を有する。複数のバッファ・メモリを備えることによって、メモリから取得したデータのアライン処理、アラインされたデータの転送処理を効率的に実行することができる。
【００１９】
前記バス・アービタは、前記メモリからの前記複数のバッファ・メモリへのデータ読み出しを要求するデータ・リード要求の発行順序と、前記メモリから前記複数のバッファ・メモリ内のバッファ・メモリへのデータ転送順序とを、アウト・オブ・オーダにおいて制御する。これによって、データ・バスに使用効率を高めることができる。
【００２０】
前記メモリからのデータを格納するバッファ・メモリを特定して前記メモリからのデータ読み出しを要求するデータ・リード要求がセットされるデータ・リード要求キュー（例えば、バス・リクエスト・キュー１３６）と、前記セレクタによって選択されるバッファ・メモリを特定する選択制御データがセットされる選択制御データ・キューと、前記データ・リード要求を発行して前記データ・リード要求キューにセットし、前記データ・リード要求の発行順序と同一順序において前記選択制御データを前記選択制御データ・キューにセットする制御部と、をさらに有する。これによって、データ順序が変更されることがないので、その後の処理において効率的な処理が可能となる。
【発明の効果】
【００２１】
本発明によれば、メモリから取得したデータのアライン処理を含むデータ転送処理を効率的に実行することができる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明を適用可能な実施の形態が説明される。以下の説明は、本発明の実施形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
【００２３】
実施の形態１．
図１は、本実施形態における通信データ処理システム１００の概略構成を示すブロック図である。図１に示すように、通信データ処理システム１００は、通信データを記憶するメイン・メモリ１１０と、メイン・メモリ１１０から取得したデータを転送するデータ転送部１２０とを備えている。データ転送部１２０の典型的な一例は、ＬＡＮなどに接続されるネットワーク・コントローラである。データ転送部１２０は、送信されるパケット・データ形成のために、メイン・メモリ１１０から取得したデータを並び替えるアライナ１３０を備えている。メイン・メモリ１１０及びアライナ１３０はデータ・バス１４０を介してデータの通信を行う。
【００２４】
メイン・メモリ１１０は、外部から入力された通信データ及び外部へ出力する通信データを記憶する。メイン・メモリ１１０は、この他、図示されていない回路構成からの要求に応じて必要なデータを記憶する。通信パケット・データはバイト・ストリームであるのに対して、メイン・メモリ１１０からは３２ビット幅、６４ビット幅等でのデータ読み出しが実行される。
【００２５】
アライナ１３０は、メイン・メモリ１１０から取得したデータを一時的に記憶するバッファ・メモリの一例であるレジスタ・ファイル１３１ａ〜１３１ｎ（以下、これらを集約的にレジスタ・ファイル１３１と呼ぶ）を、複数備えている。各レジスタ・ファイル１３１はそれぞれ独立に動作し、他のレジスタ・ファイルと独立にデータの書き込み及び読み出しを行うことができる。一つのレジスタ・ファイル１３１にデータが書き込まれている間に、他レジスタ・ファイル１３１からデータが読み出される。
【００２６】
アライナ１３０は、さらに、レジスタ・ファイル１３１からのデータを規定の順序に並べ替える（アラインする）アライン・ロジック１３２を備えている。アライン・ロジック１３２は、例えば、取得したデータを、イーサネット（登録商標）によるパケット通信に対応した順序にデータを並べ替える。３２ビット幅あるいは６４ビット幅などのデータをメイン・メモリ１１０から取得した場合、通信データとして有効なデータと無効なデータが含まれている。アライン・ロジック１３２は、これらデータを並べ替え、通信プロトコルに応じた所定のバイト幅に整列しなおすことによって、後の処理におけるパケット・データの生成を効率的に実行することを可能とする。尚、アライン・ロジック１３２からの出力データは、データ転送部１２０内において次にデータ処理を実行するブロック１２５に転送される。
【００２７】
レジスタ・ファイル１３１からのデータは、セレクタ１３３を介してアライン・ロジック１３２に入力される。セレクタ１３３は、複数のレジスタ・ファイル１３１からのデータを選択的にアライン・ロジック１３２に出力する。これによって、複数のレジスタ・ファイル１３１に格納されているデータを、必要な順序においてアライン・ロジック１３２に渡すことができる。セレクタ１３３は、アライン・リクエスト・キュー１３４にキューされているリクエストに応じて、複数のレジスタ・ファイル１３１から一つのレジスタ・ファイルを選択する。図１において、アライン・リクエスト・キュー１３４には３つのリクエストがセットされるが、この数は特に限定されるものではない。
【００２８】
シーケンサ１３５は、通信データ処理システム１００における制御処理を実行する。特に、メイン・メモリ１１０からレジスタ・ファイル１３１へのデータの読み出し制御、及びレジスタ・ファイル１３１からアライン・ロジック１３２へのデータ出力の制御を行う。メイン・メモリ１１０からレジスタ・ファイル１３１へデータ入力の制御は、バス・リクエスト・キュー１３６にリクエストをセットすることによって実行する。また、シーケンサ１３５は、アライン・リクエスト・キュー１３４にリクエストをセットすることによって、アライン・ロジック１３２へ出力するレジスタ・ファイル１３１の読み出しデータの選択を制御する。尚、バス・リクエスト・キュー１３６にセットされるリクエスト数は、設計により効率的処理が可能な数が選択される。
【００２９】
シーケンサ１３５は、他の構成要素からの制御信号に応じて、上記制御処理を実行する。具体的には、バス・アービタ１４１からのリクエスト受付完了信号、レジスタ・ファイル１３１からのレディ信号等に応答して、通信データ処理システム内のデータ転送を制御する。
【００３０】
データ・バス１４０は図示されていない回路構成を含む複数の回路構成によって共用される。このため、データ・バス１４０を介したデータ通信は、バス・アービタ１４１によって制御される。バス・アービタ１４１は、データ・バス１４０の使用権の調停処理を行う。
【００３１】
図１において、バス・アービタ１４１は、バス・リクエスト・キュー１３６にキューされているリクエストに応答して、データ・バス１４０におけるデータ伝送を制御する。本形態のバス・システムは、異なるデータ・リード・リクエストの発行と、それらに対応するメイン・メモリ１１０からのデータ・リードの完了順序を、アウト・オブ・オーダにおいて実行することができる。
【００３２】
例えば、第１のリード・コマンドがバス・アービタ１４１に対して発行され、その次に第２のリード・コマンドが発行された場合において、最初に第２のリード・コマンドに対応するデータの読み出しが完了し、その後に、第１のリード・コマンドに対応するデータの読み出しが完了することができる（上記のようなアウト・オブ・オーダ処理を一般に、スプリット・トランザクションと呼ぶ）。これによって、データ・バス１４０使用効率を高め、データ転送の全体的効率が高まる。
【００３３】
本形態の通信データ処理システム１００の処理を、図２を参照して説明する。図２は、通信データ処理システム１００内における制御データ及びメイン・メモリ１１０からのリード・データのシーケンスを示している。本例においては、通信データ処理システム１００は２つのレジスタ・ファイル１３１ａ、ｂを備える。各レジスタ・ファイル１３１ａ、ｂは、６４バイトのデータを記憶することができる。各レジスタ・ファイル１３１ａ、ｂの１マスは、１バイト・データを表している。
【００３４】
バス・リクエスト・キュー１３６には、メイン・メモリ１１０からレジスタ・ファイル１３１ａ（Ｒｅｇ０）へのデータ読み出しを要求するリクエストＲｅｑ（Ｒｅｇ０）とレジスタ・ファイル１３１ｂ（Ｒｅｇ１）へのデータ読み出しを要求するリクエストＲｅｑ（Ｒｅｇ１）が、それぞれキューされている。発行順序は、Ｒｅｑ（Ｒｅｇ０）、Ｒｅｑ（Ｒｅｇ１）の順である。
【００３５】
バス・リクエスト・キュー１３６は、シーケンサ１３５からの要求に応答して、Ｒｅｇ０へのデータ読み出し要求であるＲｅｑ（Ｒｅｇ０）をバス・アービタ１４１に発行する（[１]）。バス・アービタ１４１は、Ｒｅｑ（Ｒｅｇ０）に応答して、要求の受付完了を示すＡｃｋ（Ｒｅｇ０）をシーケンサ１３５返す（[２]）。シーケンサ１３５は、バス・アービタ１４１からのＡｃｋ（Ｒｅｇ０）に応答して、バス・リクエスト・キュー１３６に、レジスタ・ファイル１３１ｂ（Ｒｅｇ１）へのデータ読み出しを要求Ｒｅｑ（Ｒｅｇ１）の発行を要求（Req）する（[３]）。
【００３６】
バス・リクエスト・キュー１３６は、シーケンサ１３５からの要求に応答して、Ｒｅｑ（Ｒｅｇ１）をバス・アービタ１４１に発行する（[４]）。Ｒｅｑ（Ｒｅｇ１）に対して、バス・アービタ１４１は要求の受付完了を示すＡｃｋ（Ｒｅｇ１）をシーケンサ１３５返す（[５]）。ここで、Ｒｅｑ（Ｒｅｇ１）の発行は、Ｒｅｑ（Ｒｅｇ０）に対してレジスタ・ファイル１３１ａ（Ｒｅｇ０）へデータのレスポンスが返る前に実行される。従って、このタイミングにおいて、レジスタ・ファイル１３１ａ（Ｒｅｇ０）にリード・データは書き込まれていない。
【００３７】
続いて、バス・アービタ１４１からメイン・メモリ１１０へのＲｅｑ（Ｒｅｇ０）に対して、Ｒｅｑ（Ｒｅｇ０）に対応するリード・データが、メイン・メモリ１１０からデータ・バス１４０を介して、レジスタ・ファイル１３１ａ（Ｒｅｇ０）へ書き込まれる（[６]）。図２は、レジスタ・ファイル１３１ａにデータが書き込また状態を示している。本例においては、メイン・メモリ１１０から６４ビット幅のデータ読み出しが可能であり、レジスタ・ファイル１３１ａは６４ビット・データを記憶している。レジスタ・ファイル１３１ａにおいて、転送される通信データとして有効なデータはハッチされており、無効データは白で示されている。
【００３８】
レジスタ・ファイル１３１ａは、データが書き込まれたことに応答して、データ転送（出力）の準備ができたことを示すレディ信号（Ｒｄｙ０）を、シーケンサ１３５に送る（[７]）。シーケンサ１３５は、Ｒｄｙ０に応答して、アライン・リクエスト・キュー１３４に、アライン・リクエストＡＬＲｅｑ０をセットする（[８]）。ＡＬＲｅｑ０は、レジスタ・ファイル１３１ａに格納されているデータをアライン処理するリクエストである。
【００３９】
アライン・リクエスト・キュー１３４から、セレクタ１３３にＡＬＲｅｑ０に対応した制御信号（Sel0）が出力される（[９]）。セレクタ１３３は、制御信号に従って、レジスタ・ファイル１３１ａを選択し、レジスタ・ファイル１３１ａからの読み出しデータをアライン・ロジック１３２に転送する。アライン・ロジック１３２は、入力されたデータの順序を並び替えるアライン処理を実行する。
【００４０】
レジスタ・ファイル１３１ａからアライン・ロジック１３２へのデータ転送の間、あるいは、アライン・ロジック１３２がアライン処理を実行している間に、これらの処理と並行して、メイン・メモリ１１０からレジスタ・ファイル１３１ｂへのデータ転送処理を実行することができる。バス・アービタ１４１からメイン・メモリ１１０へのＲｅｑ（Ｒｅｇ１）に対して、Ｒｅｑ（Ｒｅｇ０）に対応するリード・データが、メイン・メモリ１１０からデータ・バス１４０を介して、レジスタ・ファイル１３１ｂ（Ｒｅｇ１）へ書き込まれる（[１０]）。図２は、レジスタ・ファイル１３１ｂが６４バイト・データを記憶している状態をしめしている。この点は、レジスタ・ファイル１３１ａと同様である。
【００４１】
レジスタ・ファイル１３１ｂは、データの格納が完了したことに応答して、Ｒｄｙ１をシーケンサ１３５に出力する（[１１]）。シーケンサ１３５は、Ｒｄｙ１に応答して、ＡＬＲｅｑ１をアライン・リクエスト・キュー１３４にセットする（[１２]）。シーケンサ１３５は、レジスタ・ファイル１３１ａからのデータのアライン処理が完了していない場合、その処理の完了を待つ。
【００４２】
処理が完了した場合、あるいは、すでに処理が完了していた場合、シーケンサ１３５は、アライン・リクエスト・キュー１３４に、ＡＬＲｅｑ１に対応した制御信号の出力を要求する。アライン・リクエスト・キュー１３４は、要求に応答して、レジスタ・ファイル１３１ｂを選択することを指示する制御信号（Sel1）をセレクタ１３３に出力する（[１３]）。セレクタ１３３は、レジスタ・ファイル１３１ｂからの読み出しデータを選択的にアライン・ロジック１３２に出力する。アライン・ロジック１３２の処理は上記と同様である。
【００４３】
上記のように、本形態のデータ転送部１２０は複数のレジスタ・ファイル１３１を備え、一つのレジスタ・ファイルからデータを読み出し、アライン処理を実行する間に、他のレジスタ・ファイルにメイン・メモリからのリード・データを格納することができる。これによって、メイン・メモリからアライン・ロジックまでの間において効率的なデータ転送が可能となり、データ転送部１２０は高速通信に対応することが可能となる。
【００４４】
尚、図２においては２つのレジスタ・ファイルが例示されているが、図１に示したように、データ転送部１２０は、３以上のレジスタ・ファイルを備えることが可能である。より多くのレジスタ・ファイルを備えることによって、メイン・メモリ１１０からアライン・ロジック１３２までの間において、より効率的なデータ転送が可能となる。この点は、以下の実施形態において同様である。
【００４５】
実施の形態２．
続いて、通信データ処理システム１００の他の特徴的な処理を、図３を参照して説明する。上記のように、本形態のバス・システムはスプリット・トランザクションに対応している。上記実施形態においては、リクエストの順序に従ってデータがメイン・メモリ１１０から読み出されるが、本形態においては、リクエストとは異なる順序においてデータがメイン・メモリ１１０から読み出される。尚、バス・アービタ１４１がＡｃｋ（Ｒｅｇ１）をシーケンサ１３２に返す（[５]）までの処理は、図２を参照して説明された処理と同様であり、説明を省略する。
【００４６】
メイン・メモリ１１０は、Ｒｅｑ（Ｒｅｇ０）に対応するリード・データの転送前に、Ｒｅｑ（Ｒｅｇ１）に対応するリード・データをレジスタ・ファイル１３１ｂに転送する（[６]）。レジスタ・ファイル１３１ｂは、メイン・メモリ１１０からのリード・データの格納完了に応答して、Ｒｄｙ１をシーケンサ１３５に送る（[７]）。アライン・ロジック１３２によるアライン処理は、メイン・メモリ１１０へのＲｅｑの発行順序に従う必要がある。このため、シーケンサ１３５はＡＬＲｅｑ１をアライン・リクエスト・キュー１３４にセットすることなく、Ｒｅｑ（Ｒｅｇ０）に対応するデータの転送を待つ。
【００４７】
レジスタ・ファイル１３１ａが、メイン・メモリ１１０から転送されたデータを格納する（[８]）と、レジスタ・ファイル１３１ａはＲｄｙ０をシーケンサ１３５に送る（[９]）。シーケンサ１３５は、Ｒｄｙ０を取得したことに応答して、アライン・リクエスト・キュー１３４に、アライン・リクエストＡＬＲｅｑ０をセットする（[１０]）。アライン・リクエスト・キュー１３４から、セレクタ１３３にＡＬＲｅｑ０に対応した制御信号Sel0が出力される（[１１]）。セレクタ１３３は、制御信号に従って、レジスタ・ファイル１３１ａを選択し、レジスタ・ファイル１３１ａからの読み出しデータをアライン・ロジック１３２に転送する。アライン・ロジック１３２は、入力されたデータの順序を並び替えるアライン処理を実行する。
【００４８】
シーケンサ１３５は、ＡＬＲｅｑ０をキューしたあと、ＡＬＲｅｑ１をアライン・リクエスト・キュー１３４にセットする（[１２]）。レジスタ・ファイル１３１ａからのデータのアライン処理が完了すると、シーケンサ１３５からの要求に応答して、アライン・リクエスト・キュー１３４がＡＬＲｅｑ１に応じた制御信号Sel1をセレクタ１３３に出力する（[１３]）。セレクタ１３３は、制御信号に応答して、レジスタ・ファイル１３１ｂからのデータをアライン・ロジック１３２に選択出力する。アライン・ロジック１３２は、入力されたデータの順序を並び替えるアライン処理を実行する。
【００４９】
本形態において、通信データ処理システム１００は、スプリット・トランザクションにより、データ・バス１４０の使用状況に応じて、バス・リクエスト・キューにキュー１３６されたリクエストの順序と異なる順序によって、メイン・メモリ１１０からデータを読み出す。このように、複数のレジスタ・ファイルを備えるデータ転送部１２０と、スプリット・トランザクション処理を行うバス・システムを併せ持つことによって、通信データ処理システム１００における全体的処理を効率的に実行することが可能となる。
【図面の簡単な説明】
【００５０】
【図１】第１の実施形態における、通信データ処理システムの概略構成を示すブロック図である。
【図２】第１の実施形態における、通信データ処理システムの通信データの転送処理を説明する図である。
【図３】第２の実施形態における、通信データ処理システムの通信データの転送処理を説明する図である。
【図４】従来の技術における、通信データ処理システムの通信データの転送処理を説明する図である。
【符号の説明】
【００５１】
１００  通信データ処理システム、１１０  メイン・メモリ、１２０  データ転送部
１２５  後段処理ブロック、１３０  アライナ、１３１  レジスタ・ファイル
１３２  アライン・ロジック、１３２  シーケンサ、１３３  セレクタ
１３４  アライン・リクエスト・キュー、１３５  シーケンサ
１３６  バス・リクエスト・キュー、１４０  データ・バス
１４１  バス・アービタ、３１０  アライナ、３１１  アライン・ロジック
３１３  シーケンサ、３５０  メイン・メモリ、３６０  データ・バス
【図１】
2005333481.tif 000003
【図２】
2005333481.tif 000004
【図３】
2005333481.tif 000005
【図４】
2005333481.tif 000006