JP2005267139A - ブリッジ装置 - Google Patents
ブリッジ装置 Download PDFInfo
- Publication number
- JP2005267139A JP2005267139A JP2004077494A JP2004077494A JP2005267139A JP 2005267139 A JP2005267139 A JP 2005267139A JP 2004077494 A JP2004077494 A JP 2004077494A JP 2004077494 A JP2004077494 A JP 2004077494A JP 2005267139 A JP2005267139 A JP 2005267139A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bus
- length
- fixed
- storage unit
- 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.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】リード完了直後にマージしたデータを記憶部へ送信できるようにしてデータマージ転送の高速化を図ること。
【解決手段】2種類の異なるプロトコルのバスを接続するブリッジ装置2であって、少なくとも他方のバスが固定長のデータしか扱わないシステムにおいて、一方のバス側から前記他方のバス側の記憶部4にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、先ず、前記他方のバス側の前記記憶部4から固定長のデータをリードして前記一方のバス側から送信されたデータとマージした後、該マージしたデータを前記他方のバス側の前記記憶部4に書き込む際、処理部11は、前記記憶部4から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部4に書き込むためのライトバックリクエストを発行する。
【選択図】 図1
【解決手段】2種類の異なるプロトコルのバスを接続するブリッジ装置2であって、少なくとも他方のバスが固定長のデータしか扱わないシステムにおいて、一方のバス側から前記他方のバス側の記憶部4にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、先ず、前記他方のバス側の前記記憶部4から固定長のデータをリードして前記一方のバス側から送信されたデータとマージした後、該マージしたデータを前記他方のバス側の前記記憶部4に書き込む際、処理部11は、前記記憶部4から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部4に書き込むためのライトバックリクエストを発行する。
【選択図】 図1
Description
本発明は、コンピュータのシステム等で利用される、互いに異なる2種類のプロトコルのバス(BUS)を接続するブリッジ装置及びプログラムに関する。
従来、コンピュータのシステムで利用されているブリッジ装置では、構造が互いに異なる2種類のデータをマージ(結合)して送信する処理が行われている。図4は従来のリクエストシーケンスの説明図である。図4において、左側がブリッジ装置側の処理、右側がCPU(中央処理装置)側の処理であり、ブリッジ装置が次の手順でデータをマージして送信していた(例えば、非特許文献1参照)。
ここで、ブリッジ装置は、異なるプロトコルのバスAとバスBを接続するものであり、バスAがI/O(入出力)側で任意のデータ長、バスBがCPU側で固定のデータ長を扱うものとして考える。例えばバスBが64バイト(Byte)の固定長に対してバスAから10バイトのデータをメモリに書き込む場合の説明をする。
1) ブリッジ装置からバスB(CPU側)にread(リード)リクエストを発行し(S11)、CPUからread ack(読み取り許可)を受け固定長のバスB(CPU側)にあるメモリから、書き込まれる10バイト分を含むアドレスにある64バイト分のデータをブリッジ装置に読み込む(S12)。
2) バスA(I/O側)から書き込む10バイトをブリッジ装置上で前記1)で読み込んだ64バイトのデータとマージ(結合)する。
3) ブリッジ装置からwrite back(ライトバック)リクエストを発行し(S13)、CPUからのwrite ack (書き込み許可)を待って(S14)マージした64バイトのデータをバスBへ送信する(メモリに書き戻す)。
"U2PTM UPA to PCI Interface User's Manual" (米国) 1997年 3月、サンマイクロシステムズ社(A Sun Microsystems,Inc.Business) p.58-60(4.2.1.3 Less than 64 Byte DMA Write to Memory)
"U2PTM UPA to PCI Interface User's Manual" (米国) 1997年 3月、サンマイクロシステムズ社(A Sun Microsystems,Inc.Business) p.58-60(4.2.1.3 Less than 64 Byte DMA Write to Memory)
上記従来のものにおいては次のような課題があった。
従来、データをマージして転送(データマージ転送)をするときには、readリクエストを発行しリード(read)が完了してからwrite backリクエストを発行していた。このためリードが完了してからCPUからのwrite ack を受け取りwrite backが実行されるまでに時間がかかっていた。
本発明は、上記従来の課題を解決し、あらかじめreadリクエストと合わせてwrite backリクエストも発行しておき、リード完了直後にマージしたデータをCPU側のメモリへ送信できるようにしてデータマージ転送の高速化を図ることを目的とする。
図1は本発明のシステム構成の説明図であり、図1中、1a、1bはスロット、2はブリッジ装置、3はCPU(中央処理装置)、4は記憶部(メモリ)、11は処理部、12はマージバッファ(merge buffer)、13はリクエスト受信部、14はリクエスト・キューである。
本発明は、上記の課題を解決するため次のように構成した。
(1):2種類の異なるプロトコルのバスを接続するブリッジ装置2であって、情報の処理を行う処理部11を備え、少なくとも他方のバスが固定長のデータしか扱わないシステムにおいて、一方のバス側から前記他方のバス側の記憶部4にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、先ず、前記他方のバス側の前記記憶部4から固定長のデータをリードして前記一方のバス側から送信されたデータとマージした後、該マージしたデータを前記他方のバス側の前記記憶部4に書き込む際、前記処理部11は、前記記憶部4から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部4に書き込むためのライトバックリクエストを発行する。このため、リード完了直後にマージしたデータをCPU側(他方のバス側)の記憶部4へ送信でき転送処理の高速化を図ることができる。
(2):前記(1)のブリッジ装置において、前記一方のバスが任意のデータ長を扱うのに対し前記他方のバスが固定長のデータしか扱わないものとする。このため、一方のバス側の任意のデータ長のデータを他方のバス側(CPU側)の記憶部4に高速に書き込むことができる。
本発明によれば次のような効果がある。
(1):記憶部から固定長のデータをリードするためのリードリクエストの発行に続けて記憶部に書き込むためのライトバックリクエストを発行するため、リード完了直後にマージしたデータを他方のバス側の記憶部へ送信でき転送処理の高速化を図ることができる。
(2):一方のバスが任意のデータ長を扱うのに対し他方のバスが固定長のデータしか扱わないものとするため、一方のバス側の任意のデータ長のデータを他方のバス側の記憶部に高速に書き込むことができる。
(3):一方のバス側からプロトコルの異なる固定長のデータしか扱わない他方のバス側の記憶部にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、前記記憶部から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部に書き込むためのライトバックリクエストを発行する処理と、前記他方のバス側の前記記憶部から固定長のデータをリードする処理と、該リードした固定長のデータを前記一方のバス側から送信されたデータとマージする処理と、該マージしたデータを前記他方のバス側の前記記憶部に書き込む処理とを、コンピュータを実行させるためのプログラムまたはプログラムを記録したコンピュータ読取可能な記録媒体とするため、このプログラムをコンピュータにインストールすることで、転送処理の高速化を図ることができるブリッジ装置を容易に提供することができる。
本発明は、2種の異なるプロトコルのバス(バスA、B)を接続するブリッジ装置(例えば、片方(バスA)が任意のデータ長を扱うのに対して他方(バスB)が固定長のパケットしか扱わないシステムに於いて)で、バスA側からバスB側に対して書込を行なうとき任意長のパケットを固定長のパケットに編集して送信する。このときバスAから送信するデータ長がバスBの固定長に満たない場合には、まず、バスB側の送信先メモリから固定長のデータをリードしてブリッジ装置内部でバスAから送信するデータとマージした後、マージされて固定長になったデータをバスB上のメモリに書き込む(write back)。以上の一連の動作に於いて初めのreadリクエストの発行直後に続けてwrite backリクエストを発行しておくようにするものである。
(1):システム構成の説明
図1は本発明のシステム構成の説明図であり、スロット1a、1bは、ネットワーク、ハードディスク等が接続されるバスAに接続されるスロット(例えば、PCIスロット)である。ブリッジ装置2は、互いに異なる2種類のプロトコルのバス(バスA、B)を接続するものである。CPU3は、バスBに接続されるコンピュータ等の中央処理装置である。記憶部(メモリ)4は、バスBに接続されるブリッジ装置2とCPU3とが共有しているメモリである。ブリッジ装置2の処理部11は、マージ処理等のブリッジ装置の処理を行うものである。ブリッジ装置2のマージバッファ12は、マージ処理を行うための記憶部である。ブリッジ装置2のリクエスト受信部13は、バスA側からのリクエストを受信するものである。ブリッジ装置2のリクエスト・キュー14は、これから実行されるリクエストをまとめて保管しておく(記憶手段)待ち行列である。バスAは、バスBとは異なるプロトコルのバス(例えば、任意長)である。バスBは、バスAとは異なるプロトコル(固定長)のバスである。
図1は本発明のシステム構成の説明図であり、スロット1a、1bは、ネットワーク、ハードディスク等が接続されるバスAに接続されるスロット(例えば、PCIスロット)である。ブリッジ装置2は、互いに異なる2種類のプロトコルのバス(バスA、B)を接続するものである。CPU3は、バスBに接続されるコンピュータ等の中央処理装置である。記憶部(メモリ)4は、バスBに接続されるブリッジ装置2とCPU3とが共有しているメモリである。ブリッジ装置2の処理部11は、マージ処理等のブリッジ装置の処理を行うものである。ブリッジ装置2のマージバッファ12は、マージ処理を行うための記憶部である。ブリッジ装置2のリクエスト受信部13は、バスA側からのリクエストを受信するものである。ブリッジ装置2のリクエスト・キュー14は、これから実行されるリクエストをまとめて保管しておく(記憶手段)待ち行列である。バスAは、バスBとは異なるプロトコルのバス(例えば、任意長)である。バスBは、バスAとは異なるプロトコル(固定長)のバスである。
(2):リクエストシーケンスの説明
図2はリクエストシーケンスの説明図である。図2において、左側がブリッジ装置2側の処理、右側がCPU(中央処理装置)3側の処理であり、ブリッジ装置2が次1)〜3)の手順でデータをマージして送信する。
図2はリクエストシーケンスの説明図である。図2において、左側がブリッジ装置2側の処理、右側がCPU(中央処理装置)3側の処理であり、ブリッジ装置2が次1)〜3)の手順でデータをマージして送信する。
ここで、ブリッジ装置2は、バスAとバスBを接続するものであり、バスAがI/O(入出力)側で任意のデータ長、バスBがCPU側で固定のデータ長を扱うものとして考える。例えばバスBが64バイト(Byte)の固定長に対してバスAから10バイトのデータを記憶部4に書き込む場合の説明をする。
1) ブリッジ装置2の処理部11は、バスB(CPU側)にreadリクエストとwrite back(書き戻し)リクエストを連続して発行し(S1、S2)、固定長のバスB(CPU側)にある記憶部(メモリ)4から、書き込まれる10バイト分を含むアドレスにある64バイト分のデータをブリッジ装置2のマージバッファ12に読み込む(S3)。
2) 処理部11は、バスA(I/O側)から書き込む10バイトをブリッジ装置2上で前記1)で読み込んだ64バイトのデータとマージバッファ12を用いてマージ(結合)する。
3) 処理部11は、CPU3からのwrite ack (書き込み許可)を受信したら(S4)、マージした64バイトのデータをバスBへ送信する(メモリに書き戻す)。
なお、CPU3側では、readリクエストとwrite backリクエストをブリッジ装置2から連続して受信したら、先ずread ackを発行し、ブリッジ装置2のリードが終わったら直ちにwrite ack を発行するようにする。
このように、複数のリクエストをあらかじめブリッジ装置2から送信するためには、CPU3側でも複数のリクエストを受け付けられる必要があるが、最近では一般的に可能なものである。
(3):ブリッジチップ(bridge chip )の説明
図3はブリッジチップを用いたシステム構成の説明図である。図3において、ネットワーク、ハードディスク等が接続されるPCI(Peripheral Component Interconnect )スロット1a、1bは、PCIバス(バスA:I/O側)に接続され、PCIバスはブリッジチップ2と接続される。ブリッジチップ2は、互いに異なる2種類のプロトコルのバス(バスA、B)を接続するチップ状のブリッジ回路(ブリッジ装置)であり、バスBでCPU3とメモリ(Memory)4に接続される。バスBは、アドレスラインADDR(メモリのアドレスとCPUへのリクエストのライン)とデータラインDATAに別れている。
図3はブリッジチップを用いたシステム構成の説明図である。図3において、ネットワーク、ハードディスク等が接続されるPCI(Peripheral Component Interconnect )スロット1a、1bは、PCIバス(バスA:I/O側)に接続され、PCIバスはブリッジチップ2と接続される。ブリッジチップ2は、互いに異なる2種類のプロトコルのバス(バスA、B)を接続するチップ状のブリッジ回路(ブリッジ装置)であり、バスBでCPU3とメモリ(Memory)4に接続される。バスBは、アドレスラインADDR(メモリのアドレスとCPUへのリクエストのライン)とデータラインDATAに別れている。
ブリッジチップ2には、処理部11とマージバッファ12が設けてある。処理部11は、マージ処理等のブリッジ回路の処理を行うものである。マージバッファ12は、マージ処理を行うための記憶部である。バスAは任意長バスであり、バスBは64バイトの固定長のバスである。
このブリッジチップ2のリクエストシーケンスも図2と同様に行われる。ここで、バスBが64バイト(Byte)の固定長に対してバスAから10バイトのデータをメモリ4に書き込む場合の説明をする。
1) ブリッジチップ2の処理部11がPCIバス(バスA)から10バイトのデータをメモリ4に書き込むリクエストを受信し、10バイトのデータをマージバッファ12に格納する。次に、ブリッジチップ2の処理部11からバスBにreadリクエストとwrite backリクエストを連続して発行し、CPUからread ackを受け固定長のバスBにあるメモリ4から、書き込まれる10バイト分を含むアドレスにある64バイト分のデータをブリッジチップ2内のマージバッファ12に読み込む。
2) ブリッジチップ2内の処理部11は、マージバッファ12の書き込む10バイトのデータと前記1)で読み込んだ64バイトのデータとをマージバッファ12を使用してマージする。
3) ブリッジチップ2がCPU3からのwrite ack (書き込み許可)を受信したら、処理部11は、マージした64バイトのデータをバスBへ送信してメモリ4に書き戻す。
なお、CPU3側では、readリクエストとwrite backリクエストをブリッジチップ2から連続して受信したら、先ず、read ackを発行し、ブリッジチップ2のリードが終わったら直ちにwrite ack を発行するようにする。
また、I/O側(バスA)からメモリ4に64バイト以上のデータを書き込む場合、ブリッジチップ2は、メモリ4からリード(マージ処理)することなく64バイト分のデータをメモリに書き込む。そして、残りが64バイト未満となり、64バイト未満のデータを書き込む場合にマージ処理を行うため、readリクエストとwrite backリクエストをブリッジチップ2から連続して発行するものである。
更に、上記の例では、バスAが任意長で、バスBが固定長の説明をしたが、バスAとバスBが共に異なる長さの固定長であっても良い。この場合、I/O側からメモリ4のデータを読み取る場合にも、本発明のマージ処理を行う必要がある。
このように、従来I/O側からCPU側のメモリへデータマージ転送を行なう場合、一端、readリクエストを発行してリードを完了してから、write backリクエストを発行してマージしたデータをCPU側のメモリに送っていたが、この場合、リード完了後、書き戻し(write back)まで(リクエストを発行してから許可になるまで)時間がかかっていた。本発明によれば、あらかじめreadリクエストと合わせてwrite backリクエストも発行するため、リード完了直後(リード完了後すぐにCPUからwrite ack がくる)にマージしたデータをCPU側のメモリへ送信できるため高速化が図れるものである。
(4):プログラムインストールの説明
処理部11、マージバッファ12、リクエスト受信部13、リクエスト・キュー14等はプログラムで構成でき、主制御部(CPU)が実行するものであり、主記憶に格納されているものである。このプログラムは、コンピュータで処理されるものである。このコンピュータは、主制御部、主記憶、ファイル装置、表示装置等の出力装置、入力装置などのハードウェアで構成されている。
処理部11、マージバッファ12、リクエスト受信部13、リクエスト・キュー14等はプログラムで構成でき、主制御部(CPU)が実行するものであり、主記憶に格納されているものである。このプログラムは、コンピュータで処理されるものである。このコンピュータは、主制御部、主記憶、ファイル装置、表示装置等の出力装置、入力装置などのハードウェアで構成されている。
このコンピュータに、本発明のプログラムをインストールする。このインストールは、フロッピィ、光磁気ディスク等の可搬型の記録(記憶)媒体に、これらのプログラムを記憶させておき、コンピュータが備えている記録媒体に対して、アクセスするためのドライブ装置を介して、或いは、LAN等のネットワークを介して、コンピュータに設けられたファイル装置にインストールされる。
1a、1b スロット
2 ブリッジ装置
3 CPU(中央処理装置)
4 記憶部(メモリ)
11 処理部
12 マージバッファ
13 リクエスト受信部
14 リクエスト・キュー
2 ブリッジ装置
3 CPU(中央処理装置)
4 記憶部(メモリ)
11 処理部
12 マージバッファ
13 リクエスト受信部
14 リクエスト・キュー
Claims (3)
- 2種類の異なるプロトコルのバスを接続するブリッジ装置であって、
情報の処理を行う処理部を備え、
少なくとも他方のバスが固定長のデータしか扱わないシステムにおいて、一方のバス側から前記他方のバス側の記憶部にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、
先ず、前記他方のバス側の前記記憶部から固定長のデータをリードして前記一方のバス側から送信されたデータとマージした後、該マージしたデータを前記他方のバス側の前記記憶部に書き込む際、
前記処理部は、前記記憶部から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部に書き込むためのライトバックリクエストを発行することを特徴としたブリッジ装置。 - 前記一方のバスが任意のデータ長を扱うのに対し前記他方のバスが固定長のデータしか扱わないことを特徴とする請求項1記載のブリッジ装置。
- 一方のバス側からプロトコルの異なる固定長のデータしか扱わない他方のバス側の記憶部にデータの書き込みを行うとき、前記一方のバス側のデータ長が前記他方のバス側の固定長に満たない場合には、前記記憶部から固定長のデータをリードするためのリードリクエストの発行に続けて前記記憶部に書き込むためのライトバックリクエストを発行する処理と、
前記他方のバス側の前記記憶部から固定長のデータをリードする処理と、
該リードした固定長のデータを前記一方のバス側から送信されたデータとマージする処理と、
該マージしたデータを前記他方のバス側の前記記憶部に書き込む処理とを、
コンピュータを実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004077494A JP2005267139A (ja) | 2004-03-18 | 2004-03-18 | ブリッジ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004077494A JP2005267139A (ja) | 2004-03-18 | 2004-03-18 | ブリッジ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005267139A true JP2005267139A (ja) | 2005-09-29 |
Family
ID=35091635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004077494A Pending JP2005267139A (ja) | 2004-03-18 | 2004-03-18 | ブリッジ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005267139A (ja) |
-
2004
- 2004-03-18 JP JP2004077494A patent/JP2005267139A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8583839B2 (en) | Context processing for multiple active write commands in a media controller architecture | |
CN114443529B (zh) | 内存直接访问架构、系统、方法、电子设备和介质 | |
JPH1078934A (ja) | パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
JP2004005382A (ja) | データ転送装置および方法 | |
WO2020000482A1 (zh) | 一种基于NVMe的数据读取方法、装置及系统 | |
TWI326839B (en) | Transmission device performing dma transmission, semiconductor integrated circuit device and data transmission method | |
US6766386B2 (en) | Method and interface for improved efficiency in performing bus-to-bus read data transfers | |
US7460531B2 (en) | Method, system, and program for constructing a packet | |
JP2006338538A (ja) | ストリームプロセッサ | |
JP5299559B2 (ja) | 情報処理装置及び情報処理装置のデバイス情報収集処理方法 | |
US9727521B2 (en) | Efficient CPU mailbox read access to GPU memory | |
TWI292989B (en) | Method,system and apparatus for hublink read return streaming and mechine-readable medium | |
JP2006293927A (ja) | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi | |
US7409486B2 (en) | Storage system, and storage control method | |
TW201535412A (zh) | 具有繞回性至連續性讀取之記憶體子系統 | |
JP4408840B2 (ja) | Hddコントローラ及びそれを搭載したシステム | |
JP2006313479A (ja) | 半導体集積回路装置及びデータ転送方法 | |
WO2015155850A1 (ja) | 入出力装置及び方法 | |
US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
JP2007079715A (ja) | データ転送方法、プログラムおよび装置 | |
JP2005267139A (ja) | ブリッジ装置 | |
KR20060004829A (ko) | 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 | |
CN115297169B (zh) | 数据处理方法、装置、电子设备及介质 | |
JP2002176464A (ja) | ネットワークインタフェース装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060627 |
|
A131 | Notification of reasons for refusal |
Effective date: 20090630 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20091110 Free format text: JAPANESE INTERMEDIATE CODE: A02 |