(57)【要約】【課題】ネットワークリソースを有効に利用することである。【解決手段】データ転送システムにおいて、データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタ２０１ａと、複数のリクエスタからデータ転送要求を受信し、受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラ２０３と転送指示を受信し、転送指示に基づいて許可されたリクエスタからのデータを転送するネットワーク２０１と、個々にデータの入出力部を有する複数のモジュールを有し、転送指示を受信し、送信指示に基づいてネットワークから転送データを受信するメモリ２０４ａと、を有するようにしてある。【選択図】      図１
2004355271.tif 000002
【特許請求の範囲】
【請求項１】
データ転送システムにおいて、
データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタと、
前記複数のリクエスタからデータ転送要求を受信し、前記受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラと、
前記転送指示を受信し、前記転送指示に基づいて許可されたリクエスタからのデータを転送するネットワークと、
個々にデータの入出力部を有する複数のモジュールを有し、前記転送指示を受信し、前記送信指示に基づいて前記ネットワークから転送データを受信するメモリと、を有することを特徴とするデータ転送システム。
【請求項２】
前記転送コントローラは、前記メモリのアービトレーションを行った後に、前記ネットワークのアービトレーションを行うことを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記転送コントローラは、前記ネットワークのアービトレーションを行った後に、前記メモリのアービトレーションを行うことを特徴とする請求項１記載のデータ転送システム。
【請求項４】
前記転送コントローラは、前記ネットワークのアービトレーションと前記メモリのアービトレーションを並列に行うことを特徴とする請求項１記載のデータ転送システム。
【請求項５】
前記ネットワークのデータ幅と前記メモリの入出力データ幅が等しいことを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項６】
前記転送コントローラは、前記リクエスタからのデータ転送要求が読込み処理か書き込み処理かを判定して、この処理の種類によって転送指示の送信を制御することを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項７】
前記複数のモジュールは、記憶領域であるマクロを複数有し、これらマクロに分散してデータを記憶することを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項８】
前記転送コントローラは、２以上のサイクルのメジャーサイクルを処理単位として転送制御を行うことを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項９】
前記転送コントローラは、
前記複数のリクエスタからのデータ転送要求を受け付けるリクエスト保持部と、
前記リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部と、
前記デコードされたデータ転送要求について、前記メモリの各モジュール毎にアービトレーションを行うモジュールアービトレーション部と、
前記デコードされたデータ転送要求について、ネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部と、
前記モジュールアービトレーション部及びネットワークアービトレーション部によって使用権を割り当てられたリクエストに係る転送指示を生成する転送指示生成部と、を有することを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。
【請求項１０】
前記モジュールアービトレーション部は、デコードされたリクエストをメモリモジュール番号毎に保持するモジュールアービタを有することを特徴とする請求項９記載のデータ転送システム。
【請求項１１】
前記モジュールアービターは、前記リクエストの中から、現在最も早くアクセス可能なマクロを選びだすことを特徴とする請求項１０記載のデータ転送システム。
【請求項１２】
前記モジュールアービターは、前記マクロの応答速度に基づいて、その時点でアクセス可能なマクロへのデータ転送要求を選択することを特徴とする請求項１１記載のデータ転送システム。
【請求項１３】
前記モジュールアービターは、前記リクエスタのデータ転送の優先権情報を有し、前記選択されたデータ転送要求のうち、最も高い優先権に係るリクエスタを決定することを特徴とする請求項１２記載のデータ転送システム。
【請求項１４】
前記ネットワークアービトレーション部は、読込み処理に係るサイクル及び書き込み処理に係るサイクルを考慮して決定されたメジャーサイクル毎に、前記ネットワークのバスの数に基づいてリクエスタからの読込み処理及び書込み処理を割り当てることを特徴とする請求項９記載のデータ転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送システムに関し、特に、複数のリクエスタが共有するネットワークを介してメモリをアクセスする場合に用いられる技術に関する。
【０００２】
【従来の技術】
図１１は、第１の従来例に係るデータ転送システムを示すブロック図である。
図示の如く、複数のリクエスタ１０２ａ，１０２ｂ，１０２ｃ，及び、１０２ｄはネットワーク１０１に接続される。これらリクエスタがネットワーク１０１を経由してメモリ１０５ａ，１０５ｂ，１０５ｃ，及び、１０５ｄへアクセスする場合、リクエスタはまず、ネットワークアービター１０３にネットワーク１０１を使用するリクエスト信号を送る。ネットワークアービターー１０３はリクエスタからのリクエストを、ラウンドロビン等のアルゴリズムに基づいてネットワーク１０１を割り当てる。割り当てに成功したリクエスタに対してはネットワーク１０１の使用許可を示す許可信号が返される。ネットワーク１０１の使用許可を得られたリクエスタは、メモリコントローラ１０４ａ，１０４ｂ，１０４ｃ，及び、１０４ｄのうち、所定のメモリコントローラにコマンドと書き込み処理の場合はデータを送る事が可能となる。その後、コマンドを受け取ったメモリコントローラはメモリを読み書きするための制御をし、データをメモリに書き込み、または読み出しを行う。
【０００３】
図１２は、第２の従来例に係るデータ転送システムを示すブロック図である。
この従来例は、メモリコントローラ部分にバッファを持たない構成例である。このデータ転送システムでは、リクエスタ１０７ａ，１０７ｂ，１０７ｃ，及び、１０７ｄが読み出したいコマンドをメモリコントローラ１０９ａ，１０９ｂ，１０９ｃ，及び、１０９ｄのうち、所定のメモリコントローラに送る。コマンドを受け取ったメモリコントローラは、そのコマンドに従いメモリ１１０ａ，１１０ｂ，１１０ｃ，及び、１１０ｄのうちコマンドを受け取ったメモリコントローラに係るメモリに対してデータを読み出す制御をする。ここで、メモリコントローラは、メモリの状態を把握しているので、データが読み出せるタイミングに合わせてネットワークが使用できるようにネットワークアービターー１０８に転送の要求を行う。期待したとおりにネットワーク１０６の転送許可がおりればよいが、そうでない場合でもメモリからデータを読み出さないようにすれば、中間バッファは不必要である。つまり、メモリ自身が中間バッファの役目を果たしている。書き込みの場合も同様にリクエスタがメモリコントローラにコマンドを送り、メモリコントローラはメモリにＷｒｉｔｅコマンドを入れる。実際にデータを書き込むのはその後なので、そのタイミングに合わせてネットワークアービターー１０８に転送許可を求め、許可が得られたらメモリコントローラがリクエスタからデータを吸い出し、それをメモリへ書き込む。
【０００４】
【発明が解決しようとする課題】
上記第１の従来例に係るデータ転送システムの問題点は、書き込み処理の場合メモリコントローラで実際にメモリへデータを書き込むタイミングまでデータをバッファでホールドしておく必要がある事である。また、読込み処理の場合は、メモリ  コントローラがデータを読み出すまでネットワークを占有するという問題がある。このネットワークを占有する問題を解決するためにスプリットトランザクション法（Ｓｐｌｉｔ  Ｔｒａｎｓａｃｔｉｏｎ）という手法があるが、この場合は書き込み処理と同様にリクエスタが再アクセスに来るまで読込みデータをメモリコントローラ側でデータ保持する必要が生じる。画像処理やストリーム処理のような一度に大量のデータ（バースト転送）を行う場合、メモリコントローラ側でデータを保持する大容量のバッファが面積増加を招き問題となる。
【０００５】
また、第２の従来例に係るデータ転送システムにおいては、バッファを取り除く事はできるが、この場合の問題点は、メモリからデータは読み出せる状態になっているにもかかわらず、ネットワークの転送許可がおりるまでは、そのメモリへはアクセスできないことである。メモリが複数のバンクを持っていた場合には、アクセス効率が悪くなる。また、書き込みの場合は、メモリにコマンドを入れてから実際にデータを書き込むまでの時間がネットワークのレイテンシよりも短い場合、例えば、ネットワークのレイテンシが非常に長い場合には、メモリはデータの書き込み準備が出来ているにもかかわらずデータがこない状態に陥る。この場合は、読み出しの場合と同様にそのメモリへはアクセスできないので、読み出しの場合と同じ問題が発生する。
【０００６】
本発明は上記事情に鑑みて成されたものであり、その目的とするところは、ネットワークリソースを有効に利用することを可能としたデータ転送システムを提供することにある。
【０００７】
【課題を解決するための手段】
本願発明の一態様によれば、データ転送システムにおいて、データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタと、前記複数のリクエスタからデータ転送要求を受信し、前記受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラと、前記転送指示を受信し、前記転送指示に基づいて許可されたリクエスタからのデータを転送するネットワークと、個々にデータの入出力部を有する複数のモジュールを有し、前記転送指示を受信し、前記送信指示に基づいて前記ネットワークから転送データを受信するメモリと、を有する。
【０００８】
【発明の実施の形態】
本発明に係るデータ転送システムの実施形態について、図面を参照しながら詳細に説明する。図１は、本発明に係るデータ転送システムの実施形態を示すブロック図である。このデータ転送システムは、各種データ転送を実現するネットワーク２０１と、リクエスタ２０２ａ，２０２ｂ，２０２ｃ，及び、２０２ｄと、複数のマクロ（０乃至ｎ（ｎは１以上の整数））を有するメモリモジュール２０４ａ，２０４ｂ，２０４ｃ，及び、２０４ｄと、を有する。
【０００９】
ここで、ネットワーク２０１は、リクエスタ、転送コントローラ、及びメモリモジュールに接続され、リクエスタからの要求に応じて所定のメモリモジュールへデータの転送を行う。ここで、このネットワーク２０１は、クロスバー方式（Ｃｒｏｓｓ  Ｂａｒ）または複合バス方式（Ｍｕｌｔｉｐｌｅ  Ｂｕｓ）を使用することができる。
【００１０】
各リクエスタは、ネットワーク２０１及び転送コントローラ２０３に接続される。これらリクエスタはデータ転送の要求を転送コントローラ２０３に行い、許可をされた場合には、ネットワークを介して所定のメモリモジュールとデータ転送を行う。
【００１１】
転送コントローラ２０３は、ネットワーク２０１、各リクエスタ、及び各メモリモジュールに接続され、各リクエスタからのデータ転送の要求を受け取り、所定のリクエスタにデータ転送の許可を行う。ネットワーク２０１のアービトレーションとマクロを考慮したメモリモジュールのアービトレーションを同時に行う。この例では、メモリモジュールには複数のマクロ（Ｍａｃｒｏ）をもったメモリモジュールを使用する。
【００１２】
メモリモジュールはネットワーク２０１及び転送コントローラ２０３に接続され、ネットワーク２０１を介して、所定のリクエスタとの間でデータ転送を行う。各メモリモジュールには複数の記憶領域が設けられ、それら記憶領域をマクロと呼ぶ。このメモリモジュールには、混載ＤＲＡＭ（Ｅｍｂｅｄｄｅｄ  ＤＲＡＭ）と呼ばれる、ＩＣ回路の中に埋め込まれたＤＲＡＭを用いることが出来る。
【００１３】
ここで、あるマクロへのアクセスした際のマクロの応答速度には所定サイクルを要するが（例えば、ランダム・サイクルタイム（ｔＲＣ）＝３２サイクル）であるが、１つのメモリモジュールに複数のマクロを持ちインタリーブする事で、見かけのアクセスのためのサイクルを小さくする事ができる。例えばメモリモジュールのマクロ数が４（Ｎ＝４）の時、マクロのアクセスをうまく制御することで、見かけ上のｔＲＣを８サイクルにする事が可能である。
【００１４】
次に、本実施形態に係るデータ転送システムの動作について説明する。まず、転送コントローラ２０３は、所定のリクエスタからデータ転送要求を受けると、ネットワーク２０１の確保と、アクセスするメモリモジュールが有効利用されるようにマクロアクセスのアービトレーションを行い、マクロアクセス権の確保をする。その後、転送コントローラ２０３は、転送のタイミングに合わせてリクエスタに転送指示を出し、ネットワークにスイッチの切り替え情報を送り、メモリモジュールへコマンドを送る。ここで、メモリモジュールへのコマンドは、アクセスの種類（Ｒｅａｄ／Ｗｒｉｔｅ），及びアドレス（マクロ番号，  ロウ（Ｒｏｗ）番号，  カラム（Ｃｏｌｕｍｎ）番号）である。これにより、これまで必要であったデータを一時的に保持するバッファを少なくする事が出来る。ここで、ネットワーク２０１の１チャネルのバンド幅とメモリモジュールのバンド幅のバランスが取れていなくても実施は可能であるが、ネットワーク１チャネル幅とメモリモジュールのバンド幅が等しい場合には、バッファを取り除くことが出来る。
【００１５】
図２は、メジャーサイクルを説明するための図面である。本実施形態に係るデータ転送システムにおいては、転送処理を簡単化、処理のパイプライン化を容易にするためジャーサイクルと呼ばれるサイクルを単位として処理や指示を行う。図示の如く、本実施形態においては、通常の８サイクル分のクロックを１メジャー  サイクルと定義した。このように、メジャーサイクル単位で処理を行う事により、転送  コントローラの速度制約が緩くなり設計が容易になる。また、転送もメジャーサイクルを転送単位とする事で、転送コントローラのアービトレーションと実際の転送をパイプライン化する事が可能となる。例えば、図２の例ではバーストサイズは最大８で、バーストサイズが８以下の場合も転送に８サイクル消費する。
【００１６】
図３は、メジャーサイクルを用いて転送処理のパイプライン化を説明するための図面である。本実施形態で用いられるメモリモジュールは、読込み命令（Ｒｅａｄコマンド）を入れてから最初の読込みデータが出てくるまで１６サイクルかかる（ｔＲＤ＝１６サイクル）ものとする。また、書き込み処理の場合は、書き込み命令（Ｗｒｉｔｅコマンド）を入れてから実際に書き込みデータを入れるまで１２サイクル必要である（ｔＷＲ＝１２サイクル）ものとする。すなわち、図３において、転送コントローラによるアービトレーションにより命令０が読込み命令の場合には、２メジャーサイクル後に当該命令に関して転送を許可するようにする。一方、命令０が書き込み命令の場合には、１メジャーサイクル後に当該命令に関して転送を許可するようにする。このようにして、パイプライン化することにより、ネットワークを効率的に使用することができるのである。
【００１７】
図４は、本実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートである。ここで、ｔＴＮＤはネットワークの入口までの遅延を示し、ｔＦＮＤはネットワークの入口からの遅延を示し、ｔＲＤはコマンドを入れてから読込みデータが出てくるまでの時間を示し、ｔＷＲはコマンドを入れてから書込データが出てくるまでの時間を示す。転送コントローラは、メジャーサイクル０でリクエスタからデータ転送要求を受け付ける。次のメジャーサイクル１でネットワークとメモリモジュールのアービトレーションを行っている。ネットワークとメモリモジュールのリソースが確保できた場合、以下のタイミングで各リソースに指示を出す。
【００１８】
まず、メモリモジュールからのリクエスタへの読込み処理について説明する。
まず、転送コントローラはメジャーサイクル０にてデータ転送要求の受付を行う。このメジャーサイクル０の中でデータ転送要求があった場合には、転送コントローラは、メジャーサイクル１にてアービトレーションを行い、メジャーサイクル１の終わりでメモリモジュールに対して読込指示を行う（メジャーサイクル１のｄの位置）。ここで、メモリモジュールの読み出しには２メジャーサイクル（ｔＲＤ＝１６サイクル）掛かるので、メジャーサイクル４で読込みデータがメモリモジュールから出てくる。従って、そのデータがネットワークまでに届く遅延を考慮し（ｔＴＮＤ：ここでは２サイクル）、メジャーサイクル４の２サイクル目でネットワークに指示を行う（メジャーサイクル４の２サイクル目のｄの位置）。ネットワーク出口からのデータがリクエスタまで届く遅延（ｔＦＮＤ＝２サイクル）を考慮し、４メジャーサイクル＋４サイクルでリクエスタにデータ受信の指示を行う（メジャーサイクル４の４サイクル目のｄの位置）。
【００１９】
次に、リクエスタからメモリモジュールへの書き込み処理について説明する。
まず、転送コントローラはメジャーサイクル０にてデータ転送要求の受付を行う。このメジャーサイクル０の中でデータ転送要求があった場合には、転送コントローラは、メジャーサイクル１にてアービトレーションを行い、メジャーサイクル１の終わりでメモリモジュールに対して読込指示を行う（メジャーサイクル１のｄの位置）。ここで、メモリモジュールの書き込みには１メジャーサイクル（ｔＲＤ＝８サイクル）掛かるので、メジャーサイクル３で読込みデータがメモリモジュールから出てくる。従って、そのデータをメモリモジュールに入れるサイクルを考慮して、リクエスタにメジャーサイクル２の終わりで転送指示を行う（メジャーサイクル２のｄの位置）。そのデータがネットワークまでに届く遅延を考慮し（ｔＴＮＤ：ここでは２サイクル）、メジャーサイクル３の２サイクル目でネットワークにスイッチ情報を行う（メジャーサイクル３の２サイクル目のｄの位置）。メモリモジュールは、届いたデータをメジャーサイクル３の４サイクル目で転送されたデータを受信し、メモリモジュールに書き込む。
【００２０】
図５は、本実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラ２０３は、リクエスタ２０２からのデータ転送要求を受け付けるリクエスト保持部２１１と、リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部２１２と、デコードされたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部２１３と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部２１４と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部２１５と、を有する。
【００２１】
次に、この転送コントローラの動作について説明する。まず、リクエスト保持部２１１は、リクエスタからデータ転送要求を受け付け、そのデータ転送要求をリクエストキューに保持する。ここで、データ転送要求には、そのデータ転送要求が書き込み命令であるか、又は、読込み命令であるか、の命令の種類と、処理の目的のアドレス（ターゲットアドレス）に関する情報が含まれる。次に、アドレスデコード部２１２は、ターゲットアドレスをデコードし、リクエストに係る情報からメモリモジュールの番号とマクロ番号を取り出す。次に、モジュールアービトレーション部は、デコードされたデータ転送要求をメモリモジュール番号毎に保持するモジュールアービターーを有する。このモジュールアービターーはそのメモリモジュールが有するモジュールの個数に対応して設けられる。そして、送られて来たデータ転送要求の中から、現在最も早くアクセス可能なマクロを選びだす。そのマクロをアクセスするデータ転送要求をラウンドロビン等のアルゴリズムを用いて、１つを選択する。選択されたデータ転送要求は、ネットワークアービトレーション部２１４に送られる。次に、ネットワークアービトレーション部２１４は、ネットワークが複合バスの場合、モジュールアービターーから送られて来たデータ転送要求がバスの本数以上であった場合、ここで再度アービトレーションを行い、所定のデータ転送要求に対してバスを割り当てる。メモリモジュールのアクセス、ネットワークの使用権を割り当てられたデータ転送要求は、転送指示生成部  ２１５（Ｔｒａｎｓｆｅｒ  Ｄｉｒｅｃｔｉｖｅ  Ｇｅｎｅｒａｔｏｒ）で、図４に示したタイミングに指示が届くようなタイミングでデータ転送を取るような指示をリクエスタ、ネットワーク、及びメモリモジュールへ送る。
【００２２】
図６は、本実施形態のモジュールアービターーのアービトレーション例を説明するための図面であり、（ａ）は、リクエスタから投入されたデータ転送要求の図表であり、（ｂ）は、モジュールアービターーの処理を説明するための図面である。モジュールアービターーは、モジュールアービトレーション部２１３に各モジュールに対応して設けられ、メモリモジュールを有効に利用するためにｔＲＣを意識してアービトレーションを行う。このモジュールアービターーは、そのモジュール内のマクロの中でアクセス可能なマクロを選択し、選択されたマクロへのデータ転送に係るデータ転送要求を行ったリクエスタであって、優先権の最も高いリクエスタを選択し、その後、各種の情報の更新を行う。
【００２３】
図６（ａ）の例では、ｒｅｑｉｄ＝０のリクエスタはマクロ番号３への転送処理、ｒｅｑｉｄ＝１のリクエスタはマクロ番号０への転送処理、ｒｅｑｉｄ＝２のリクエスタはマクロ番号１への転送処理、ｒｅｑｉｄ＝３のリクエスタはマクロ番号０への転送処理、ｒｅｑｉｄ＝４のリクエスタはマクロ番号２への転送処理、また、ｒｅｑｉｄ＝５のリクエスタはマクロ番号３への転送処理であるものとする。
【００２４】
また、各モジュールアービターーが保持している情報は、各マクロ毎に以前アクセス権を割り当てた時刻と最も優先順位の高いリクエストＩｄ（ＲｅｑＳｔａｒｔＩｄ）である。図６（ｂ）の例では、マクロ０はその時刻Ｎから１６サイクル前にアクセスされたものであり、マクロ１はその時刻Ｎから４８サイクル前にアクセスされたものであり、マクロ２はその時刻Ｎから２４サイクル前にアクセスされたものであり、マクロ３はその時刻Ｎから３２サイクル前にアクセスされたものであるものとする。また、最も優先順位の高いリクエスタは３（ＲｅｑＳｔａｒｔＩｄ＝３）であるものとする。
【００２５】
ここで、ｔＲＣ＝３２サイクルとすると、現在アクセス可能なマクロは、マクロ１とマクロ３である。モジュールアービターーに投入されたデータ転送要求から、マクロ１とマクロ３へのアクセスを要求しているものは、図６（ａ）からｒｅｑｉｄ＝０，２，５である事がわかる。また、図６（ｂ）からＲｅｑＳｔａｒｔＩｄが示しているＩｄ＝３であるため、Ｉｄ＝３のリクエスタの優先順位が最も高く、続いて、Ｉｄ＝４のリクエスタ，Ｉｄ＝５のリクエスタ，Ｉｄ＝６のリクエスタ，・・・Ｉｄ＝０のリクエスタ，Ｉｄ＝１のリクエスタ，Ｉｄ＝２のリクエスタ，の順番で優先順位がつけられている。そのため、本実施形態においては、このメモリモジュールにアクセスできるリクエスタは、ｒｅｑｉｄ＝５のリクエスタである。次に、ｒｅｑｉｄ＝５のリクエスタがアクセスするマクロ３の直前割り当て時刻をＮ−３２サイクルからＮに更新し、ＲｅｑＳｔａｒｔＩｄを更新する。ＲｅｑＳｔａｒｔＩｄを更新は、優先権が最も高いリクエスタがメモリアクセスを許可された場合にのみインクリメントするようにしてもよい。例えば、優先権が最も高いリクエスタが４（ＲｅｑＳｔａｒｔＩｄ＝４）の場合、そのＩｄ＝４のリクエスタのアクセスが許可された場合にのみＲｅｑＳｔａｒｔＩｄ＝４をインクリメントして５にするようにしてもよい。これらのデータの更新は、ネットワークのアクセスを得てスケジューリングが完了した際に更新される。
【００２６】
図７は、本実施形態のネットワークアービターーのアービトレーション例を説明するための図面であり、（ａ）は、リクエスタから投入されたデータ転送要求の図表であり、（ｂ）は、ネットワークアービターーの処理を説明するための図面である。ここでは、ネットワークが複合バス式（Ｍｕｌｔｉｐｌｅ  Ｂｕｓ）の場合のネットワークアービターーの例を示す。この例ではバスの数は４とする。ネットワークアービターーには、各モジュールアービターーにてメモリアクセス権を得たデータ転送要求が送られてくる。これらメモリアクセス権を得たデータ転送要求は図７（ａ）に示した通り、ｒｅｑｉｄ＝０のリクエスタは書き込みアクセス要求、ｒｅｑｉｄ＝１のリクエスタは書き込みアクセス要求、ｒｅｑｉｄ＝２のリクエスタは読込みアクセス要求、ｒｅｑｉｄ＝４のリクエスタは書き込みアクセス要求、ｒｅｑｉｄ＝５のリクエスタは書き込みアクセス要求、ｒｅｑｉｄ＝７のリクエスタは読込みアクセス要求、ｒｅｑｉｄ＝８のリクエスタは読込みアクセス要求、また、ｒｅｑｉｄ＝９のリクエスタは書き込みアクセス要求であるものとする。
【００２７】
ネットワークの使用するタイミングは、前述の如く読込み処理の場合と書き込み処理の場合で異なっており、本実施形態においては、書き込み処理の場合は２メジャーサイクル先、読込み処理の場合は３メジャーサイクルサイクル先に実際に使用される。そのため、ネットワークアービターーは、２メジャーサイクル先と３メジャーサイクル先のバスの空き状況を把握しておく必要がある。この例では、現在２メジャー先の空きバス数は２である。この状況はすでに１メジャーサイクル前のＲｅａｄ要求がバスを２本使用する予約が入っている。
【００２８】
また、ネットワークアービターーは、読込み要求と書き込み要求用にモジュールアービターーと同様にそれぞれ優先順位をつけるための識別子ＲｅａｄＲｅｑＳｔａｒｔＩｄ及びＷｒｉｔｅＲｅｑＳｔａｒｔＩｄを保持している。本実施形態では、読込み要求と書き込み要求は交互にネットワーク割り当てが行われる。まず読込み要求を１つネットワークに割り当てる。ＲｅａｄＲｅｑＳｔａｒｔＩｄが１なので、もっとも優先順位が高い読込み要求（Ｒｅｑｉｄ＝２）を３メジャーサイクル先のネットワークに割り当て、３メジャーサイクル先のバスの空き数をデクリメントして３にする。次に書き込み要求を割り当てる。ＷｒｉｔｅＲｅｑＳｔａｒｔＩｄ＝２なので、もっとも優先順位の高い書き込み要求はＲｅｑｉｄ＝４となり、それを２メジャーサイクル先のバスに割り当て、バス空き数をデクリメントして１にする。バスの割り当てはメジャーサイクル毎に行われる。
このように読込み要求、書き込み要求を交互に割り当て、バスの空き数が０になるかデータ転送要求がなくなるまで行い、最後に各ＳｔａｒｔＩｄをインクリメントしておく。ここで、書き込み処理は２メジャーサイクル先、読込み処理は３メジャサイクル先に割り当てられるため、読込み処理が進捗しないおそれもある。そこで、ＷｒｉｔｅＲｅｑＳｔａｒｔＩｄが０になった場合には、読込み要求を３メジャーサイクル先のバスの使用を割り当てるようにしても良い。
【００２９】
図８は、第２の実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラは、リクエスタ２０２からのデータ転送要求を受け付けるリクエスト保持部２１１と、リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部２１２と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部２１４と、ネットワークアービトレーション部２１４にて選択されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部２１３と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成する転送指示生成部２１５と、を有する。
【００３０】
本実施形態においては、まずネットワークのアービトレーションを行い、ネットワークの割り当てが出来たデータ転送要求でメモリモジュールアービトレーションをさらに行っている。その他は、図７と同様である。
【００３１】
図９は、第３の実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラは、リクエスタ２０２からのデータ転送要求のアドレスをデコードするアドレスデコード部２１６と、デコードされたデータ転送要求を各モジュール毎に保持するリクエスト保持部２１７と、リクエスト保持部２１７に保持されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部２１３と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部２１４と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部２１５と、を有する。
【００３２】
本実施形態においては、アドレスデコード部２１６は、リクエスタからのデータ転送要求を受け付けると共に、そのデータ転送要求のデコードを行う。リクエスト保持部２１７は、リクエストキューを各モジュール毎に有し、デコードされたデータ転送要求を各モジュール毎に保持する。モジュールアービトレーション部２１３は、リクエスト保持部２１７のリクエストキューに保持された命令を入力して、各モジュール毎にアービトレーションを行う。続いて、ネットワークアービトレーション部２１４にてネットワークのアービトレーションを行い、転送指示生成部２１５にて転送指示を生成してメモリモジュール、リクエスタ、及び、ネットワークに転送指示を送信する。
【００３３】
ここで、第３の実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートはほぼ図３を用いることができるが、転送コントローラは、メジャーサイクル０でリクエスタからデータ転送要求を受け付ける際には、デコードの時間を考慮して、メジャーサイクル０が終了する２，３サイクル前までにデータ転送要求の受付を終了させることが好ましい。
【００３４】
図１０は、この転送コントローラは、リクエスタ２０２からのデータ転送要求のアドレスをデコードするアドレスデコード部２１６と、デコードされたデータ転送要求を各モジュール毎に保持するリクエスト保持部２１７と、リクエスト保持部２１７に保持されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部２１３と、デコードされたデータ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部２１４と、モジュールアービトレーション部２１３及びネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部２１５と、を有する。
【００３５】
本実施形態においては、アドレスデコード部２１６は、リクエスタからのデータ転送要求を受け付けると共に、そのデータ転送要求のデコードを行う。リクエスト保持部２１７及びネットワークアービトレーション部２１４は、デコードされたデータ転送要求を受け取る。ネットワークのアービトレーションリクエスト保持部２１７は、リクエストキューを各モジュール毎に有し、デコードされたデータ転送要求を各モジュール毎に保持する。モジュールアービトレーション部２１３は、リクエスト保持部２１７のリクエストキューに保持された命令を入力して、各モジュール毎にアービトレーションを行う。デコードされたデータ転送要求について、ネットワークアービトレーション部２１４にてネットワークのアービトレーションを行う。モジュールアービトレーション部２１３にて選択されたデータ転送要求であって、ネットワークアービトレーション部２１４にて選択されたデータ転送要求に対して転送指示生成部２１５にて転送指示を生成してメモリモジュール、リクエスタ、及び、ネットワークに転送指示を送信する。このように、モジュールアービトレーション部２１３の処理とネットワークアービトレーション部２１４の処理を並行して行うことにより、処理時間の短縮化を図ることが出来る。
【００３６】
以上のように、本実施形態に係るデータ転送システムにおいては、ネットワークのアービトレーションとメモリモジュールのマクロの制御も考慮したメモリモジュールのアービトレーションを同時に行う事により、サイクルレベルでのスケジューリングを可能にし中間に必要な大量のバッファを少なくする、または取り除くことが出来る。また、メモリモジュールのアクセスタイミングにあわせたネットワークアービトレーションを行う事により、従来のようにネットワークを占有しつづけることがなくなり、ネットワークリソースを有効に利用できる。
【００３７】
【発明の効果】
以上説明したように、本発明によれば、ネットワークリソースを有効に利用することを可能としたデータ転送システムを提供することができる。
【図面の簡単な説明】
【図１】本発明に係るデータ転送システムの実施形態を示すブロック図である。
【図２】メジャーサイクルを説明するための図面である
【図３】メジャーサイクルを用いて転送処理のパイプライン化を説明するための図面である。
【図４】本実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートである。
【図５】本実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図６】本実施形態のマクロアービターーのアービトレーション例を説明するための図面であり、（ａ）は、リクエスタから投入されたデータ転送要求の図表であり、（ｂ）は、モジュールアービターーの処理を説明するための図面である。
【図７】本実施形態のネットワークアービターーのアービトレーション例を説明するための図面であり、（ａ）は、リクエスタから投入されたデータ転送要求の図表であり、（ｂ）は、ネットワークアービターーの処理を説明するための図面である。
【図８】第２の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図９】第３の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図１０】第４の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図１１】第１の従来例に係るデータ転送システムを示すブロック図である。
【図１２】第２の従来例に係るデータ転送システムを示すブロック図である。
【符号の説明】
１０１，１０６，２０１  ネットワーク
１０２ａ，１０２ｂ，１０２ｃ，１０２ｄ，１０７ａ，１０７ｂ，１０７ｃ，１０７ｄ，２０２ａ，２０２ｂ，２０２ｃ，２０２ｄ  リクエスタ
１０３，１０８  ネットワークアービターー
１０４ａ，１０４ｂ，１０４ｃ，１０４ｄ，１０９ａ，１０９ｂ，１０９ｃ，１０９ｄ  メモリコントローラ
１０５ａ，１０５ｂ，１０５ｃ，１０５ｄ，１１０ａ，１１０ｂ，１１０ｃ，１１０ｄ  メモリモジュール
２０３  転送コントローラ
２０４ａ，２０４ｂ，２０４ｃ，２０４ｄ  モジュール
２１１，２１７  リクエスト保持部
２１２  アドレスデコード部
２１３，２１６  モジュールアービトレーション部
２１４  ネットワークアービトレーション部
２１５  転送指示部
【図１】
2004355271.tif 000003
【図２】
2004355271.tif 000004
【図３】
2004355271.tif 000005
【図４】
2004355271.tif 000006
【図５】
2004355271.tif 000007
【図６】
2004355271.tif 000008
【図７】
2004355271.tif 000009
【図８】
2004355271.tif 000010
【図９】
2004355271.tif 000011
【図１０】
2004355271.tif 000012
【図１１】
2004355271.tif 000013
【図１２】
2004355271.tif 000014
【手続補正書】
【提出日】平成15年11月18日(2003.11.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ転送システムにおいて、
データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタと、
前記複数のリクエスタからデータ転送要求を受信し、前記受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラと、
前記転送指示を受信し、前記転送指示に基づいて許可されたリクエスタからのデータを転送するネットワークと、
個々にデータの入出力部を有する複数のモジュールを有し、前記転送指示を受信し、前記送信指示に基づいて前記ネットワークから転送データを受信するメモリと、
を有することを特徴とするデータ転送システム。
【請求項２】
前記転送コントローラは、前記メモリのアービトレーションを行った後に、前記ネットワークのアービトレーションを行うことを特徴とする請求項１記載のデータ転送システム。
【請求項３】
前記転送コントローラは、前記ネットワークのアービトレーションを行った後に、前記メモリのアービトレーションを行うことを特徴とする請求項１記載のデータ転送システム。
【請求項４】
前記転送コントローラは、前記ネットワークのアービトレーションと前記メモリのアービトレーションを並列に行うことを特徴とする請求項１記載のデータ転送システム。
【請求項５】
前記転送コントローラは、
前記複数のリクエスタからのデータ転送要求を受け付けるリクエスト保持部と、
前記リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部と、
前記デコードされたデータ転送要求について、前記メモリの各モジュール毎にアービトレーションを行うモジュールアービトレーション部と、
前記デコードされたデータ転送要求について、ネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部と、
前記モジュールアービトレーション部及びネットワークアービトレーション部によって使用権を割り当てられたリクエストに係る転送指示を生成する転送指示生成部と、
を有することを特徴とする請求項１乃至４のいずれか一項に記載のデータ転送システム。