JP2004355271A - データ転送システム - Google Patents
データ転送システム Download PDFInfo
- Publication number
- JP2004355271A JP2004355271A JP2003151381A JP2003151381A JP2004355271A JP 2004355271 A JP2004355271 A JP 2004355271A JP 2003151381 A JP2003151381 A JP 2003151381A JP 2003151381 A JP2003151381 A JP 2003151381A JP 2004355271 A JP2004355271 A JP 2004355271A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- network
- transfer
- data
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
【解決手段】データ転送システムにおいて、データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタ201aと、複数のリクエスタからデータ転送要求を受信し、受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラ203と転送指示を受信し、転送指示に基づいて許可されたリクエスタからのデータを転送するネットワーク201と、個々にデータの入出力部を有する複数のモジュールを有し、転送指示を受信し、送信指示に基づいてネットワークから転送データを受信するメモリ204aと、を有するようにしてある。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、データ転送システムに関し、特に、複数のリクエスタが共有するネットワークを介してメモリをアクセスする場合に用いられる技術に関する。
【0002】
【従来の技術】
図11は、第1の従来例に係るデータ転送システムを示すブロック図である。
図示の如く、複数のリクエスタ102a,102b,102c,及び、102dはネットワーク101に接続される。これらリクエスタがネットワーク101を経由してメモリ105a,105b,105c,及び、105dへアクセスする場合、リクエスタはまず、ネットワークアービター103にネットワーク101を使用するリクエスト信号を送る。ネットワークアービターー103はリクエスタからのリクエストを、ラウンドロビン等のアルゴリズムに基づいてネットワーク101を割り当てる。割り当てに成功したリクエスタに対してはネットワーク101の使用許可を示す許可信号が返される。ネットワーク101の使用許可を得られたリクエスタは、メモリコントローラ104a,104b,104c,及び、104dのうち、所定のメモリコントローラにコマンドと書き込み処理の場合はデータを送る事が可能となる。その後、コマンドを受け取ったメモリコントローラはメモリを読み書きするための制御をし、データをメモリに書き込み、または読み出しを行う。
【0003】
図12は、第2の従来例に係るデータ転送システムを示すブロック図である。
この従来例は、メモリコントローラ部分にバッファを持たない構成例である。このデータ転送システムでは、リクエスタ107a,107b,107c,及び、107dが読み出したいコマンドをメモリコントローラ109a,109b,109c,及び、109dのうち、所定のメモリコントローラに送る。コマンドを受け取ったメモリコントローラは、そのコマンドに従いメモリ110a,110b,110c,及び、110dのうちコマンドを受け取ったメモリコントローラに係るメモリに対してデータを読み出す制御をする。ここで、メモリコントローラは、メモリの状態を把握しているので、データが読み出せるタイミングに合わせてネットワークが使用できるようにネットワークアービターー108に転送の要求を行う。期待したとおりにネットワーク106の転送許可がおりればよいが、そうでない場合でもメモリからデータを読み出さないようにすれば、中間バッファは不必要である。つまり、メモリ自身が中間バッファの役目を果たしている。書き込みの場合も同様にリクエスタがメモリコントローラにコマンドを送り、メモリコントローラはメモリにWriteコマンドを入れる。実際にデータを書き込むのはその後なので、そのタイミングに合わせてネットワークアービターー108に転送許可を求め、許可が得られたらメモリコントローラがリクエスタからデータを吸い出し、それをメモリへ書き込む。
【0004】
【発明が解決しようとする課題】
上記第1の従来例に係るデータ転送システムの問題点は、書き込み処理の場合メモリコントローラで実際にメモリへデータを書き込むタイミングまでデータをバッファでホールドしておく必要がある事である。また、読込み処理の場合は、メモリ コントローラがデータを読み出すまでネットワークを占有するという問題がある。このネットワークを占有する問題を解決するためにスプリットトランザクション法(Split Transaction)という手法があるが、この場合は書き込み処理と同様にリクエスタが再アクセスに来るまで読込みデータをメモリコントローラ側でデータ保持する必要が生じる。画像処理やストリーム処理のような一度に大量のデータ(バースト転送)を行う場合、メモリコントローラ側でデータを保持する大容量のバッファが面積増加を招き問題となる。
【0005】
また、第2の従来例に係るデータ転送システムにおいては、バッファを取り除く事はできるが、この場合の問題点は、メモリからデータは読み出せる状態になっているにもかかわらず、ネットワークの転送許可がおりるまでは、そのメモリへはアクセスできないことである。メモリが複数のバンクを持っていた場合には、アクセス効率が悪くなる。また、書き込みの場合は、メモリにコマンドを入れてから実際にデータを書き込むまでの時間がネットワークのレイテンシよりも短い場合、例えば、ネットワークのレイテンシが非常に長い場合には、メモリはデータの書き込み準備が出来ているにもかかわらずデータがこない状態に陥る。この場合は、読み出しの場合と同様にそのメモリへはアクセスできないので、読み出しの場合と同じ問題が発生する。
【0006】
本発明は上記事情に鑑みて成されたものであり、その目的とするところは、ネットワークリソースを有効に利用することを可能としたデータ転送システムを提供することにある。
【0007】
【課題を解決するための手段】
本願発明の一態様によれば、データ転送システムにおいて、データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタと、前記複数のリクエスタからデータ転送要求を受信し、前記受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラと、前記転送指示を受信し、前記転送指示に基づいて許可されたリクエスタからのデータを転送するネットワークと、個々にデータの入出力部を有する複数のモジュールを有し、前記転送指示を受信し、前記送信指示に基づいて前記ネットワークから転送データを受信するメモリと、を有する。
【0008】
【発明の実施の形態】
本発明に係るデータ転送システムの実施形態について、図面を参照しながら詳細に説明する。図1は、本発明に係るデータ転送システムの実施形態を示すブロック図である。このデータ転送システムは、各種データ転送を実現するネットワーク201と、リクエスタ202a,202b,202c,及び、202dと、複数のマクロ(0乃至n(nは1以上の整数))を有するメモリモジュール204a,204b,204c,及び、204dと、を有する。
【0009】
ここで、ネットワーク201は、リクエスタ、転送コントローラ、及びメモリモジュールに接続され、リクエスタからの要求に応じて所定のメモリモジュールへデータの転送を行う。ここで、このネットワーク201は、クロスバー方式(Cross Bar)または複合バス方式(Multiple Bus)を使用することができる。
【0010】
各リクエスタは、ネットワーク201及び転送コントローラ203に接続される。これらリクエスタはデータ転送の要求を転送コントローラ203に行い、許可をされた場合には、ネットワークを介して所定のメモリモジュールとデータ転送を行う。
【0011】
転送コントローラ203は、ネットワーク201、各リクエスタ、及び各メモリモジュールに接続され、各リクエスタからのデータ転送の要求を受け取り、所定のリクエスタにデータ転送の許可を行う。ネットワーク201のアービトレーションとマクロを考慮したメモリモジュールのアービトレーションを同時に行う。この例では、メモリモジュールには複数のマクロ(Macro)をもったメモリモジュールを使用する。
【0012】
メモリモジュールはネットワーク201及び転送コントローラ203に接続され、ネットワーク201を介して、所定のリクエスタとの間でデータ転送を行う。各メモリモジュールには複数の記憶領域が設けられ、それら記憶領域をマクロと呼ぶ。このメモリモジュールには、混載DRAM(Embedded DRAM)と呼ばれる、IC回路の中に埋め込まれたDRAMを用いることが出来る。
【0013】
ここで、あるマクロへのアクセスした際のマクロの応答速度には所定サイクルを要するが(例えば、ランダム・サイクルタイム(tRC)=32サイクル)であるが、1つのメモリモジュールに複数のマクロを持ちインタリーブする事で、見かけのアクセスのためのサイクルを小さくする事ができる。例えばメモリモジュールのマクロ数が4(N=4)の時、マクロのアクセスをうまく制御することで、見かけ上のtRCを8サイクルにする事が可能である。
【0014】
次に、本実施形態に係るデータ転送システムの動作について説明する。まず、転送コントローラ203は、所定のリクエスタからデータ転送要求を受けると、ネットワーク201の確保と、アクセスするメモリモジュールが有効利用されるようにマクロアクセスのアービトレーションを行い、マクロアクセス権の確保をする。その後、転送コントローラ203は、転送のタイミングに合わせてリクエスタに転送指示を出し、ネットワークにスイッチの切り替え情報を送り、メモリモジュールへコマンドを送る。ここで、メモリモジュールへのコマンドは、アクセスの種類(Read/Write),及びアドレス(マクロ番号, ロウ(Row)番号, カラム(Column)番号)である。これにより、これまで必要であったデータを一時的に保持するバッファを少なくする事が出来る。ここで、ネットワーク201の1チャネルのバンド幅とメモリモジュールのバンド幅のバランスが取れていなくても実施は可能であるが、ネットワーク1チャネル幅とメモリモジュールのバンド幅が等しい場合には、バッファを取り除くことが出来る。
【0015】
図2は、メジャーサイクルを説明するための図面である。本実施形態に係るデータ転送システムにおいては、転送処理を簡単化、処理のパイプライン化を容易にするためジャーサイクルと呼ばれるサイクルを単位として処理や指示を行う。図示の如く、本実施形態においては、通常の8サイクル分のクロックを1メジャー サイクルと定義した。このように、メジャーサイクル単位で処理を行う事により、転送 コントローラの速度制約が緩くなり設計が容易になる。また、転送もメジャーサイクルを転送単位とする事で、転送コントローラのアービトレーションと実際の転送をパイプライン化する事が可能となる。例えば、図2の例ではバーストサイズは最大8で、バーストサイズが8以下の場合も転送に8サイクル消費する。
【0016】
図3は、メジャーサイクルを用いて転送処理のパイプライン化を説明するための図面である。本実施形態で用いられるメモリモジュールは、読込み命令(Readコマンド)を入れてから最初の読込みデータが出てくるまで16サイクルかかる(tRD=16サイクル)ものとする。また、書き込み処理の場合は、書き込み命令(Writeコマンド)を入れてから実際に書き込みデータを入れるまで12サイクル必要である(tWR=12サイクル)ものとする。すなわち、図3において、転送コントローラによるアービトレーションにより命令0が読込み命令の場合には、2メジャーサイクル後に当該命令に関して転送を許可するようにする。一方、命令0が書き込み命令の場合には、1メジャーサイクル後に当該命令に関して転送を許可するようにする。このようにして、パイプライン化することにより、ネットワークを効率的に使用することができるのである。
【0017】
図4は、本実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートである。ここで、tTNDはネットワークの入口までの遅延を示し、tFNDはネットワークの入口からの遅延を示し、tRDはコマンドを入れてから読込みデータが出てくるまでの時間を示し、tWRはコマンドを入れてから書込データが出てくるまでの時間を示す。転送コントローラは、メジャーサイクル0でリクエスタからデータ転送要求を受け付ける。次のメジャーサイクル1でネットワークとメモリモジュールのアービトレーションを行っている。ネットワークとメモリモジュールのリソースが確保できた場合、以下のタイミングで各リソースに指示を出す。
【0018】
まず、メモリモジュールからのリクエスタへの読込み処理について説明する。
まず、転送コントローラはメジャーサイクル0にてデータ転送要求の受付を行う。このメジャーサイクル0の中でデータ転送要求があった場合には、転送コントローラは、メジャーサイクル1にてアービトレーションを行い、メジャーサイクル1の終わりでメモリモジュールに対して読込指示を行う(メジャーサイクル1のdの位置)。ここで、メモリモジュールの読み出しには2メジャーサイクル(tRD=16サイクル)掛かるので、メジャーサイクル4で読込みデータがメモリモジュールから出てくる。従って、そのデータがネットワークまでに届く遅延を考慮し(tTND:ここでは2サイクル)、メジャーサイクル4の2サイクル目でネットワークに指示を行う(メジャーサイクル4の2サイクル目のdの位置)。ネットワーク出口からのデータがリクエスタまで届く遅延(tFND=2サイクル)を考慮し、4メジャーサイクル+4サイクルでリクエスタにデータ受信の指示を行う(メジャーサイクル4の4サイクル目のdの位置)。
【0019】
次に、リクエスタからメモリモジュールへの書き込み処理について説明する。
まず、転送コントローラはメジャーサイクル0にてデータ転送要求の受付を行う。このメジャーサイクル0の中でデータ転送要求があった場合には、転送コントローラは、メジャーサイクル1にてアービトレーションを行い、メジャーサイクル1の終わりでメモリモジュールに対して読込指示を行う(メジャーサイクル1のdの位置)。ここで、メモリモジュールの書き込みには1メジャーサイクル(tRD=8サイクル)掛かるので、メジャーサイクル3で読込みデータがメモリモジュールから出てくる。従って、そのデータをメモリモジュールに入れるサイクルを考慮して、リクエスタにメジャーサイクル2の終わりで転送指示を行う(メジャーサイクル2のdの位置)。そのデータがネットワークまでに届く遅延を考慮し(tTND:ここでは2サイクル)、メジャーサイクル3の2サイクル目でネットワークにスイッチ情報を行う(メジャーサイクル3の2サイクル目のdの位置)。メモリモジュールは、届いたデータをメジャーサイクル3の4サイクル目で転送されたデータを受信し、メモリモジュールに書き込む。
【0020】
図5は、本実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラ203は、リクエスタ202からのデータ転送要求を受け付けるリクエスト保持部211と、リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部212と、デコードされたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部213と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部214と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部215と、を有する。
【0021】
次に、この転送コントローラの動作について説明する。まず、リクエスト保持部211は、リクエスタからデータ転送要求を受け付け、そのデータ転送要求をリクエストキューに保持する。ここで、データ転送要求には、そのデータ転送要求が書き込み命令であるか、又は、読込み命令であるか、の命令の種類と、処理の目的のアドレス(ターゲットアドレス)に関する情報が含まれる。次に、アドレスデコード部212は、ターゲットアドレスをデコードし、リクエストに係る情報からメモリモジュールの番号とマクロ番号を取り出す。次に、モジュールアービトレーション部は、デコードされたデータ転送要求をメモリモジュール番号毎に保持するモジュールアービターーを有する。このモジュールアービターーはそのメモリモジュールが有するモジュールの個数に対応して設けられる。そして、送られて来たデータ転送要求の中から、現在最も早くアクセス可能なマクロを選びだす。そのマクロをアクセスするデータ転送要求をラウンドロビン等のアルゴリズムを用いて、1つを選択する。選択されたデータ転送要求は、ネットワークアービトレーション部214に送られる。次に、ネットワークアービトレーション部214は、ネットワークが複合バスの場合、モジュールアービターーから送られて来たデータ転送要求がバスの本数以上であった場合、ここで再度アービトレーションを行い、所定のデータ転送要求に対してバスを割り当てる。メモリモジュールのアクセス、ネットワークの使用権を割り当てられたデータ転送要求は、転送指示生成部 215(Transfer Directive Generator)で、図4に示したタイミングに指示が届くようなタイミングでデータ転送を取るような指示をリクエスタ、ネットワーク、及びメモリモジュールへ送る。
【0022】
図6は、本実施形態のモジュールアービターーのアービトレーション例を説明するための図面であり、(a)は、リクエスタから投入されたデータ転送要求の図表であり、(b)は、モジュールアービターーの処理を説明するための図面である。モジュールアービターーは、モジュールアービトレーション部213に各モジュールに対応して設けられ、メモリモジュールを有効に利用するためにtRCを意識してアービトレーションを行う。このモジュールアービターーは、そのモジュール内のマクロの中でアクセス可能なマクロを選択し、選択されたマクロへのデータ転送に係るデータ転送要求を行ったリクエスタであって、優先権の最も高いリクエスタを選択し、その後、各種の情報の更新を行う。
【0023】
図6(a)の例では、reqid=0のリクエスタはマクロ番号3への転送処理、reqid=1のリクエスタはマクロ番号0への転送処理、reqid=2のリクエスタはマクロ番号1への転送処理、reqid=3のリクエスタはマクロ番号0への転送処理、reqid=4のリクエスタはマクロ番号2への転送処理、また、reqid=5のリクエスタはマクロ番号3への転送処理であるものとする。
【0024】
また、各モジュールアービターーが保持している情報は、各マクロ毎に以前アクセス権を割り当てた時刻と最も優先順位の高いリクエストId(ReqStartId)である。図6(b)の例では、マクロ0はその時刻Nから16サイクル前にアクセスされたものであり、マクロ1はその時刻Nから48サイクル前にアクセスされたものであり、マクロ2はその時刻Nから24サイクル前にアクセスされたものであり、マクロ3はその時刻Nから32サイクル前にアクセスされたものであるものとする。また、最も優先順位の高いリクエスタは3(ReqStartId=3)であるものとする。
【0025】
ここで、tRC=32サイクルとすると、現在アクセス可能なマクロは、マクロ1とマクロ3である。モジュールアービターーに投入されたデータ転送要求から、マクロ1とマクロ3へのアクセスを要求しているものは、図6(a)からreqid=0,2,5である事がわかる。また、図6(b)からReqStartIdが示しているId=3であるため、Id=3のリクエスタの優先順位が最も高く、続いて、Id=4のリクエスタ,Id=5のリクエスタ,Id=6のリクエスタ,・・・Id=0のリクエスタ,Id=1のリクエスタ,Id=2のリクエスタ,の順番で優先順位がつけられている。そのため、本実施形態においては、このメモリモジュールにアクセスできるリクエスタは、reqid=5のリクエスタである。次に、reqid=5のリクエスタがアクセスするマクロ3の直前割り当て時刻をN−32サイクルからNに更新し、ReqStartIdを更新する。ReqStartIdを更新は、優先権が最も高いリクエスタがメモリアクセスを許可された場合にのみインクリメントするようにしてもよい。例えば、優先権が最も高いリクエスタが4(ReqStartId=4)の場合、そのId=4のリクエスタのアクセスが許可された場合にのみReqStartId=4をインクリメントして5にするようにしてもよい。これらのデータの更新は、ネットワークのアクセスを得てスケジューリングが完了した際に更新される。
【0026】
図7は、本実施形態のネットワークアービターーのアービトレーション例を説明するための図面であり、(a)は、リクエスタから投入されたデータ転送要求の図表であり、(b)は、ネットワークアービターーの処理を説明するための図面である。ここでは、ネットワークが複合バス式(Multiple Bus)の場合のネットワークアービターーの例を示す。この例ではバスの数は4とする。ネットワークアービターーには、各モジュールアービターーにてメモリアクセス権を得たデータ転送要求が送られてくる。これらメモリアクセス権を得たデータ転送要求は図7(a)に示した通り、reqid=0のリクエスタは書き込みアクセス要求、reqid=1のリクエスタは書き込みアクセス要求、reqid=2のリクエスタは読込みアクセス要求、reqid=4のリクエスタは書き込みアクセス要求、reqid=5のリクエスタは書き込みアクセス要求、reqid=7のリクエスタは読込みアクセス要求、reqid=8のリクエスタは読込みアクセス要求、また、reqid=9のリクエスタは書き込みアクセス要求であるものとする。
【0027】
ネットワークの使用するタイミングは、前述の如く読込み処理の場合と書き込み処理の場合で異なっており、本実施形態においては、書き込み処理の場合は2メジャーサイクル先、読込み処理の場合は3メジャーサイクルサイクル先に実際に使用される。そのため、ネットワークアービターーは、2メジャーサイクル先と3メジャーサイクル先のバスの空き状況を把握しておく必要がある。この例では、現在2メジャー先の空きバス数は2である。この状況はすでに1メジャーサイクル前のRead要求がバスを2本使用する予約が入っている。
【0028】
また、ネットワークアービターーは、読込み要求と書き込み要求用にモジュールアービターーと同様にそれぞれ優先順位をつけるための識別子ReadReqStartId及びWriteReqStartIdを保持している。本実施形態では、読込み要求と書き込み要求は交互にネットワーク割り当てが行われる。まず読込み要求を1つネットワークに割り当てる。ReadReqStartIdが1なので、もっとも優先順位が高い読込み要求(Reqid=2)を3メジャーサイクル先のネットワークに割り当て、3メジャーサイクル先のバスの空き数をデクリメントして3にする。次に書き込み要求を割り当てる。WriteReqStartId=2なので、もっとも優先順位の高い書き込み要求はReqid=4となり、それを2メジャーサイクル先のバスに割り当て、バス空き数をデクリメントして1にする。バスの割り当てはメジャーサイクル毎に行われる。
このように読込み要求、書き込み要求を交互に割り当て、バスの空き数が0になるかデータ転送要求がなくなるまで行い、最後に各StartIdをインクリメントしておく。ここで、書き込み処理は2メジャーサイクル先、読込み処理は3メジャサイクル先に割り当てられるため、読込み処理が進捗しないおそれもある。そこで、WriteReqStartIdが0になった場合には、読込み要求を3メジャーサイクル先のバスの使用を割り当てるようにしても良い。
【0029】
図8は、第2の実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラは、リクエスタ202からのデータ転送要求を受け付けるリクエスト保持部211と、リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部212と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部214と、ネットワークアービトレーション部214にて選択されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部213と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成する転送指示生成部215と、を有する。
【0030】
本実施形態においては、まずネットワークのアービトレーションを行い、ネットワークの割り当てが出来たデータ転送要求でメモリモジュールアービトレーションをさらに行っている。その他は、図7と同様である。
【0031】
図9は、第3の実施形態の転送コントローラの詳細を説明するためのブロック図である。この転送コントローラは、リクエスタ202からのデータ転送要求のアドレスをデコードするアドレスデコード部216と、デコードされたデータ転送要求を各モジュール毎に保持するリクエスト保持部217と、リクエスト保持部217に保持されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部213と、データ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部214と、このネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部215と、を有する。
【0032】
本実施形態においては、アドレスデコード部216は、リクエスタからのデータ転送要求を受け付けると共に、そのデータ転送要求のデコードを行う。リクエスト保持部217は、リクエストキューを各モジュール毎に有し、デコードされたデータ転送要求を各モジュール毎に保持する。モジュールアービトレーション部213は、リクエスト保持部217のリクエストキューに保持された命令を入力して、各モジュール毎にアービトレーションを行う。続いて、ネットワークアービトレーション部214にてネットワークのアービトレーションを行い、転送指示生成部215にて転送指示を生成してメモリモジュール、リクエスタ、及び、ネットワークに転送指示を送信する。
【0033】
ここで、第3の実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートはほぼ図3を用いることができるが、転送コントローラは、メジャーサイクル0でリクエスタからデータ転送要求を受け付ける際には、デコードの時間を考慮して、メジャーサイクル0が終了する2,3サイクル前までにデータ転送要求の受付を終了させることが好ましい。
【0034】
図10は、この転送コントローラは、リクエスタ202からのデータ転送要求のアドレスをデコードするアドレスデコード部216と、デコードされたデータ転送要求を各モジュール毎に保持するリクエスト保持部217と、リクエスト保持部217に保持されたデータ転送要求を各モジュール毎にアービトレーションを行うモジュールアービトレーション部213と、デコードされたデータ転送要求にネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部214と、モジュールアービトレーション部213及びネットワークアービトレーションによって使用権を割り当てられたデータ転送要求に係る転送指示を生成しする転送指示生成部215と、を有する。
【0035】
本実施形態においては、アドレスデコード部216は、リクエスタからのデータ転送要求を受け付けると共に、そのデータ転送要求のデコードを行う。リクエスト保持部217及びネットワークアービトレーション部214は、デコードされたデータ転送要求を受け取る。ネットワークのアービトレーションリクエスト保持部217は、リクエストキューを各モジュール毎に有し、デコードされたデータ転送要求を各モジュール毎に保持する。モジュールアービトレーション部213は、リクエスト保持部217のリクエストキューに保持された命令を入力して、各モジュール毎にアービトレーションを行う。デコードされたデータ転送要求について、ネットワークアービトレーション部214にてネットワークのアービトレーションを行う。モジュールアービトレーション部213にて選択されたデータ転送要求であって、ネットワークアービトレーション部214にて選択されたデータ転送要求に対して転送指示生成部215にて転送指示を生成してメモリモジュール、リクエスタ、及び、ネットワークに転送指示を送信する。このように、モジュールアービトレーション部213の処理とネットワークアービトレーション部214の処理を並行して行うことにより、処理時間の短縮化を図ることが出来る。
【0036】
以上のように、本実施形態に係るデータ転送システムにおいては、ネットワークのアービトレーションとメモリモジュールのマクロの制御も考慮したメモリモジュールのアービトレーションを同時に行う事により、サイクルレベルでのスケジューリングを可能にし中間に必要な大量のバッファを少なくする、または取り除くことが出来る。また、メモリモジュールのアクセスタイミングにあわせたネットワークアービトレーションを行う事により、従来のようにネットワークを占有しつづけることがなくなり、ネットワークリソースを有効に利用できる。
【0037】
【発明の効果】
以上説明したように、本発明によれば、ネットワークリソースを有効に利用することを可能としたデータ転送システムを提供することができる。
【図面の簡単な説明】
【図1】本発明に係るデータ転送システムの実施形態を示すブロック図である。
【図2】メジャーサイクルを説明するための図面である
【図3】メジャーサイクルを用いて転送処理のパイプライン化を説明するための図面である。
【図4】本実施形態に係るデータ転送システムにおける各部の処理を説明するためのタイミングチャートである。
【図5】本実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図6】本実施形態のマクロアービターーのアービトレーション例を説明するための図面であり、(a)は、リクエスタから投入されたデータ転送要求の図表であり、(b)は、モジュールアービターーの処理を説明するための図面である。
【図7】本実施形態のネットワークアービターーのアービトレーション例を説明するための図面であり、(a)は、リクエスタから投入されたデータ転送要求の図表であり、(b)は、ネットワークアービターーの処理を説明するための図面である。
【図8】第2の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図9】第3の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図10】第4の実施形態の転送コントローラの詳細を説明するためのブロック図である。
【図11】第1の従来例に係るデータ転送システムを示すブロック図である。
【図12】第2の従来例に係るデータ転送システムを示すブロック図である。
【符号の説明】
101,106,201 ネットワーク
102a,102b,102c,102d,107a,107b,107c,107d,202a,202b,202c,202d リクエスタ
103,108 ネットワークアービターー
104a,104b,104c,104d,109a,109b,109c,109d メモリコントローラ
105a,105b,105c,105d,110a,110b,110c,110d メモリモジュール
203 転送コントローラ
204a,204b,204c,204d モジュール
211,217 リクエスト保持部
212 アドレスデコード部
213,216 モジュールアービトレーション部
214 ネットワークアービトレーション部
215 転送指示部
Claims (14)
- データ転送システムにおいて、
データ転送要求を送信し、許可された場合には、データ転送を行う複数のリクエスタと、
前記複数のリクエスタからデータ転送要求を受信し、前記受信したデータ転送要求のアービトレーションを行って許可するデータ転送要求を決定し、転送指示を所定のタイミングで送信する転送コントローラと、
前記転送指示を受信し、前記転送指示に基づいて許可されたリクエスタからのデータを転送するネットワークと、
個々にデータの入出力部を有する複数のモジュールを有し、前記転送指示を受信し、前記送信指示に基づいて前記ネットワークから転送データを受信するメモリと、を有することを特徴とするデータ転送システム。 - 前記転送コントローラは、前記メモリのアービトレーションを行った後に、前記ネットワークのアービトレーションを行うことを特徴とする請求項1記載のデータ転送システム。
- 前記転送コントローラは、前記ネットワークのアービトレーションを行った後に、前記メモリのアービトレーションを行うことを特徴とする請求項1記載のデータ転送システム。
- 前記転送コントローラは、前記ネットワークのアービトレーションと前記メモリのアービトレーションを並列に行うことを特徴とする請求項1記載のデータ転送システム。
- 前記ネットワークのデータ幅と前記メモリの入出力データ幅が等しいことを特徴とする請求項1乃至4のいずれか一項に記載のデータ転送システム。
- 前記転送コントローラは、前記リクエスタからのデータ転送要求が読込み処理か書き込み処理かを判定して、この処理の種類によって転送指示の送信を制御することを特徴とする請求項1乃至4のいずれか一項に記載のデータ転送システム。
- 前記複数のモジュールは、記憶領域であるマクロを複数有し、これらマクロに分散してデータを記憶することを特徴とする請求項1乃至4のいずれか一項に記載のデータ転送システム。
- 前記転送コントローラは、2以上のサイクルのメジャーサイクルを処理単位として転送制御を行うことを特徴とする請求項1乃至4のいずれか一項に記載のデータ転送システム。
- 前記転送コントローラは、
前記複数のリクエスタからのデータ転送要求を受け付けるリクエスト保持部と、
前記リクエスト保持部で保持されたデータ転送要求のアドレスをデコードするアドレスデコード部と、
前記デコードされたデータ転送要求について、前記メモリの各モジュール毎にアービトレーションを行うモジュールアービトレーション部と、
前記デコードされたデータ転送要求について、ネットワークを割り当てるためのアービトレーションを行うネットワークアービトレーション部と、
前記モジュールアービトレーション部及びネットワークアービトレーション部によって使用権を割り当てられたリクエストに係る転送指示を生成する転送指示生成部と、を有することを特徴とする請求項1乃至4のいずれか一項に記載のデータ転送システム。 - 前記モジュールアービトレーション部は、デコードされたリクエストをメモリモジュール番号毎に保持するモジュールアービタを有することを特徴とする請求項9記載のデータ転送システム。
- 前記モジュールアービターは、前記リクエストの中から、現在最も早くアクセス可能なマクロを選びだすことを特徴とする請求項10記載のデータ転送システム。
- 前記モジュールアービターは、前記マクロの応答速度に基づいて、その時点でアクセス可能なマクロへのデータ転送要求を選択することを特徴とする請求項11記載のデータ転送システム。
- 前記モジュールアービターは、前記リクエスタのデータ転送の優先権情報を有し、前記選択されたデータ転送要求のうち、最も高い優先権に係るリクエスタを決定することを特徴とする請求項12記載のデータ転送システム。
- 前記ネットワークアービトレーション部は、読込み処理に係るサイクル及び書き込み処理に係るサイクルを考慮して決定されたメジャーサイクル毎に、前記ネットワークのバスの数に基づいてリクエスタからの読込み処理及び書込み処理を割り当てることを特徴とする請求項9記載のデータ転送システム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003151381A JP2004355271A (ja) | 2003-05-28 | 2003-05-28 | データ転送システム |
| US10/720,133 US20040243770A1 (en) | 2003-05-28 | 2003-11-25 | Data transfer system |
| CNA2004100474574A CN1574746A (zh) | 2003-05-28 | 2004-05-28 | 数据传送系统 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003151381A JP2004355271A (ja) | 2003-05-28 | 2003-05-28 | データ転送システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004355271A true JP2004355271A (ja) | 2004-12-16 |
Family
ID=33447760
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003151381A Abandoned JP2004355271A (ja) | 2003-05-28 | 2003-05-28 | データ転送システム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20040243770A1 (ja) |
| JP (1) | JP2004355271A (ja) |
| CN (1) | CN1574746A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101971498A (zh) * | 2009-02-13 | 2011-02-09 | 苹果公司 | 具有多端口存储器超元与数据路径开关电路的集成电路 |
| US7913013B2 (en) | 2007-11-07 | 2011-03-22 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit |
| JP2012078895A (ja) * | 2010-09-30 | 2012-04-19 | Kyocera Mita Corp | 情報処理装置 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070091104A1 (en) * | 2005-07-08 | 2007-04-26 | Singh Gajendra P | Computer system and method |
| CN103207819B (zh) * | 2013-03-29 | 2016-05-25 | 无锡云动科技发展有限公司 | 一种存储装置及其混合存储装置 |
| CN108108231A (zh) * | 2016-11-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 用户请求的生成、处理方法、装置、系统及电子设备 |
| CN118519949A (zh) * | 2024-05-20 | 2024-08-20 | 广州壁仞集成电路有限公司 | 数据传输装置、数据传输方法、电子设备和存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4669056A (en) * | 1984-07-31 | 1987-05-26 | International Business Machines Corporation | Data processing system with a plurality of processors accessing a common bus to interleaved storage |
| EP0608663B1 (en) * | 1993-01-25 | 1999-03-10 | Bull HN Information Systems Italia S.p.A. | A multi-processor system with shared memory |
| US6026464A (en) * | 1997-06-24 | 2000-02-15 | Cisco Technology, Inc. | Memory control system and method utilizing distributed memory controllers for multibank memory |
-
2003
- 2003-05-28 JP JP2003151381A patent/JP2004355271A/ja not_active Abandoned
- 2003-11-25 US US10/720,133 patent/US20040243770A1/en not_active Abandoned
-
2004
- 2004-05-28 CN CNA2004100474574A patent/CN1574746A/zh active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7913013B2 (en) | 2007-11-07 | 2011-03-22 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit |
| CN101971498A (zh) * | 2009-02-13 | 2011-02-09 | 苹果公司 | 具有多端口存储器超元与数据路径开关电路的集成电路 |
| JP2011517219A (ja) * | 2009-02-13 | 2011-05-26 | アップル インコーポレイテッド | マルチポート型メモリスーパーセル及びデータ経路スイッチング回路を伴う集積回路 |
| JP2012078895A (ja) * | 2010-09-30 | 2012-04-19 | Kyocera Mita Corp | 情報処理装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1574746A (zh) | 2005-02-02 |
| US20040243770A1 (en) | 2004-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6393506B1 (en) | Virtual channel bus and system architecture | |
| KR100716950B1 (ko) | 버스 시스템 | |
| JP4024875B2 (ja) | 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置 | |
| US6052738A (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
| US7225281B2 (en) | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms | |
| US8095744B2 (en) | Device for controlling access from a plurality of masters to shared memory composed of a plurality of banks each having a plurality of pages | |
| KR20130031258A (ko) | 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들 | |
| KR100644596B1 (ko) | 버스 시스템 및 그 버스 중재방법 | |
| JP4184614B2 (ja) | バスシステム及びその実行順序の調整方法 | |
| JP2020109641A (ja) | メモリ制御装置、メモリ制御方法及び画像形成装置 | |
| EP0901080B1 (en) | Arbitration system | |
| US7240138B2 (en) | Data transfer control apparatus | |
| US20050188121A1 (en) | System and controller with reduced bus utilization time | |
| US9104531B1 (en) | Multi-core device with multi-bank memory | |
| JP5911548B1 (ja) | 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム | |
| JP2004355271A (ja) | データ転送システム | |
| US6826644B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
| JP2002163228A (ja) | 多重コアdsp装置のための外部バス裁定技術 | |
| JPH06195313A (ja) | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 | |
| JP2007172112A (ja) | メモリコントローラ | |
| JP3094944B2 (ja) | アービトレーション方法及びその装置 | |
| JP4593220B2 (ja) | メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法 | |
| JP2005316546A (ja) | メモリコントローラ | |
| JPH11175464A (ja) | 調停装置および方法 | |
| JPH11232215A (ja) | バスコントローラ、バスマスタ装置及びバス制御システムの制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060417 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
| A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20060714 |