JP2006293969A - データ転送装置 - Google Patents
データ転送装置 Download PDFInfo
- Publication number
- JP2006293969A JP2006293969A JP2005186257A JP2005186257A JP2006293969A JP 2006293969 A JP2006293969 A JP 2006293969A JP 2005186257 A JP2005186257 A JP 2005186257A JP 2005186257 A JP2005186257 A JP 2005186257A JP 2006293969 A JP2006293969 A JP 2006293969A
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer
- read
- write
- transmission
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】 メモリバスと入出力バスとの両方のプロトコルに対して最適な構成を有するとともにアウト・オブ・オーダ実行にも対応可能にする。
【解決手段】入出力受信バッファ15と入出力送信バッファ14とライトデータバッファ13とリードデータバッファ12と制御情報テーブル11とライトデータ格納処理部17とライトデータ送信部34とリードデータバッファ格納処理部33と入出力送信バッファ格納処理部18と、制御情報テーブル11に基づいてライトデータ送信部34およびリードデータバッファ格納処理部33によるメモリへのアクセス制御を行なう制御部16とをそなえて構成する。
【選択図】 図1
【解決手段】入出力受信バッファ15と入出力送信バッファ14とライトデータバッファ13とリードデータバッファ12と制御情報テーブル11とライトデータ格納処理部17とライトデータ送信部34とリードデータバッファ格納処理部33と入出力送信バッファ格納処理部18と、制御情報テーブル11に基づいてライトデータ送信部34およびリードデータバッファ格納処理部33によるメモリへのアクセス制御を行なう制御部16とをそなえて構成する。
【選択図】 図1
Description
本発明は、例えばバスブリッジ等のデータ転送制御を行なう技術に関する。
近年、ギガビットイーサネット(Gigabit Ethernet)やファイバーチャネル(Fibre Channel)等の高速な通信規格に対応する入出力(I/O(Input/Output))装置が用いられるようになり、これに伴って、情報処理装置においても、例えば、I/Oバスとメモリバスとの間のデータ転送を行なうバスブリッジにおいてデータ転送性能の向上が求められている。
図14は従来のバスブリッジの構成を模式的に示す図、図15はそのバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。図15に示す情報処理装置100は、CPU(Central Processing Unit)21−1,21−2,システムコントローラ23−1,23−2,バスブリッジ20−1,20−2,クロスバースイッチ24,メモリ22−1,22−2,22−3,22−4およびI/O機器25をそなえて構成されている。
システムコントローラ23−1にはCPU21−1,メモリ22−1,22−2およびクロスバースイッチ24が、又、システムコントローラ23−2にはCPU21−2,メモリ22−3,22−4およびクロスバースイッチ24がそれぞれ接続されている。
バスブリッジ20−1,20−2には、それぞれ2つのI/O機器25がI/Oバス26を介して接続されており、又、これらのバスブリッジ20−1,20−2は、それぞれメモリバス27を介してクロスバースイッチ24に接続されている。
バスブリッジ20−1,20−2には、それぞれ2つのI/O機器25がI/Oバス26を介して接続されており、又、これらのバスブリッジ20−1,20−2は、それぞれメモリバス27を介してクロスバースイッチ24に接続されている。
すなわち、各システムコントローラ23−1,23−2は、それぞれクロスバースイッチ24を介してバスブリッジ20−1,20−2に通信可能に接続されているのである。
なお、以下、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号20−1,20−2を用いるが、任意のバスブリッジを指すときには符号20を用いる。
なお、以下、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号20−1,20−2を用いるが、任意のバスブリッジを指すときには符号20を用いる。
バスブリッジ(メモリ−I/Oバスブリッジ)20は、図14に示すように、I/O機器25とクロスバースイッチ24との間において、I/Oバス26とメモリバス27との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス26とメモリバス27との間においてデータの転送を行なうようになっている。
また、従来のバスブリッジ20をそなえた情報処理装置100においては、メモリバス27は、メモリ22−1〜22−4へ書き込むためのライトデータやリクエスト(アドレス)が送信されるライトデータ信号線27bと、メモリ22−1〜22−4から読み出されたリードデータが送信されるリードデータ信号線27aとをそなえて構成されており、又、I/Oバス26は、I/O機器25から受信データを受信するI/O受信用信号線26aとI/O機器25に送信データを送信するI/O送信用信号線26bとをそなえて構成されている。
従来のバスブリッジ20は、図14に示すように、送信バッファ201,受信バッファ202および制御情報テーブル203をそなえて構成されている。
送信バッファ201は、DMA(Direct Memory Access)リードを行なうために、メモリ22−1〜22−4から読み出したデータを一時的に格納するものである。この送信バッファ201には、I/O送信用信号線26bとリードデータ信号線27aとが通信可能に接続され、メモリ22−1〜22−4からのデータがリードデータ信号線27aを介して送信バッファ201に格納され、この送信バッファ201に格納されたリードデータがI/O送信用信号線27bを介してI/O機器25に送信されるようになっている。
送信バッファ201は、DMA(Direct Memory Access)リードを行なうために、メモリ22−1〜22−4から読み出したデータを一時的に格納するものである。この送信バッファ201には、I/O送信用信号線26bとリードデータ信号線27aとが通信可能に接続され、メモリ22−1〜22−4からのデータがリードデータ信号線27aを介して送信バッファ201に格納され、この送信バッファ201に格納されたリードデータがI/O送信用信号線27bを介してI/O機器25に送信されるようになっている。
受信バッファ202はDMAライトを行なうために、メモリ22−1〜22−4に書き込まれるデータを一時的に格納するものである。この受信バッファ202には、I/O受信用信号線26aとライトデータ信号線27bとが通信可能に接続され、I/O機器25からのデータが受信バッファ202に格納され、制御情報テーブル203に格納された制御情報に基づいて、この受信バッファ202に格納されたデータがライトデータとしてライトデータ信号線27bを介してメモリ22−1〜22−4に送信されるようになっている。
すなわち、従来のバスブリッジ20においては、図14に示すように、送信バッファ201および受信バッファ202を、それぞれメモリバス27とI/Oバス26とで共有するように使用している。又、メモリバス27においては、リクエストとデータとが同じライトデータ信号線27bを介して送信されるようになっており、このメモリバス27においては、リクエストとデータとが同一パケットとして処理され、複数のメモリリクエストを同時に処理する場合は、イン・オーダ(In-Order)実行で処理されるようになっている。
なお、送信バッファ201や受信バッファ202は、FIFO(First In First Out;先入れ先出し方式)でデータの格納及び読み出しが行なわれるようになっている。
制御情報テーブル203は、メモリ22−1〜22−4に対するアクセスを制御するものであり、メモリ22−1〜22−4に対してそれぞれリクエストを送信したり、送信バッファ201に格納するリードデータの読み出しや受信バッファ202に格納されたライトデータをメモリ22−1〜22−4に対して送信するための制御等を行なうものである。
制御情報テーブル203は、メモリ22−1〜22−4に対するアクセスを制御するものであり、メモリ22−1〜22−4に対してそれぞれリクエストを送信したり、送信バッファ201に格納するリードデータの読み出しや受信バッファ202に格納されたライトデータをメモリ22−1〜22−4に対して送信するための制御等を行なうものである。
上述の如く構成された従来のバスブリッジ20は、I/O機器25からのデータをメモリ22−1〜22−4に送信したり、メモリ22−1〜22−4のデータをI/O機器25に送信したりすることにより、I/Oバス26とメモリバス27との間においてデータ転送を行なう。
そして、従来のバスブリッジ20においては、上述したように、データ転送性能を向上させることが望まれている。例えば、下記特許文献1は、ターゲットの属するインターフェースポートに、複数の受信バッファをそなえることにより、イニシエータが効率良くデータを処理できるようにしたデータ転送装置が開示されている。
特開2000−132503号公報
そして、従来のバスブリッジ20においては、上述したように、データ転送性能を向上させることが望まれている。例えば、下記特許文献1は、ターゲットの属するインターフェースポートに、複数の受信バッファをそなえることにより、イニシエータが効率良くデータを処理できるようにしたデータ転送装置が開示されている。
しかしながら、従来のバスブリッジ20においては、送信バッファ201や受信バッファ202をそれぞれ1つずつそなえた回路として構成されているので、これらの送信バッファ201や受信バッファ202を、メモリバス27とI/Oバス26との両方のプロトコルに対して最適なものとなるように構成することが困難であるという課題がある。
また、例えば、バスクロックやデータ長等のプロトコルがI/Oバス26やメモリバス27において変更された場合等には、従来のバスブリッジ20においては、これらの変更に対応することができず、バスブリッジ20全体を交換する必要があり非経済的であるという課題がある。
また、例えば、バスクロックやデータ長等のプロトコルがI/Oバス26やメモリバス27において変更された場合等には、従来のバスブリッジ20においては、これらの変更に対応することができず、バスブリッジ20全体を交換する必要があり非経済的であるという課題がある。
さらに、一般に、CPU(Central Processing Unit)等のプロセッサユニットにおいては、プログラムに記述された順序(order)を無視した順序(out of〜)でプログラム中の命令を実行することにより、処理を高速化させるアウト・オブ・オーダ実行(out of order execution)手法が知られている。
そして、バスブリッジ20においては、メモリバス27に送出するパケットについて、そのアドレス部分とデータ部分とを別々のパケットとして送信し、処理する手法も知られている。
そして、バスブリッジ20においては、メモリバス27に送出するパケットについて、そのアドレス部分とデータ部分とを別々のパケットとして送信し、処理する手法も知られている。
しかしながら、従来のバスブリッジ20においては、I/O送信バッファ201もI/O受信バッファア202もFIFOでデータの読み書きが行なわれるようになっているので、アドレス部分とデータ部分とを別々のパケットとして取り扱う手法で、アウト・オブ・オーダ実行を行なうことができない。
また、従来のバスブリッジ20においては、物理的には1つのI/Oバス26について、仮想的に複数のチャネルが繋がっているかのように取り扱うバーチャルチャネル(Virtual Channel)機能を実現しようとした場合に、パケットの追い越し制御を行なうことができないという課題もある。
また、従来のバスブリッジ20においては、物理的には1つのI/Oバス26について、仮想的に複数のチャネルが繋がっているかのように取り扱うバーチャルチャネル(Virtual Channel)機能を実現しようとした場合に、パケットの追い越し制御を行なうことができないという課題もある。
本発明は、このような課題に鑑み創案されたもので、メモリバスと入出力バスとの両方のプロトコルに対して最適な構成を有するとともにアウト・オブ・オーダ実行にも対応できるようにすることを目的とする。
このため、本発明のデータ転送装置(請求項1)は、メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴としている。
なお、該入出力機器から該メモリへのデータ転送を行なうライト処理時に、該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作製された該ライトデータを、該ライトデータ信号線を介して送信してもよい(請求項2)。
また、該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なってもよい(請求項3)。
また、該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なってもよい(請求項3)。
さらに、該メモリから該入出力機器へのデータ転送を行なうリード処理時に、該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納してもよい(請求項4)。
またさらに、該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納してもよい(請求項5)。
また、該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納するようにしてもよい(請求項6)。
以上詳述したように、本発明によれば、以下の少なくともいずれか1つの効果ないし利点が得られる。
(1)データ転送性能を向上させることができる。
(2)メモリバスと入出力バスとの両方のプロトコルに最適となるように構成することができる。
(1)データ転送性能を向上させることができる。
(2)メモリバスと入出力バスとの両方のプロトコルに最適となるように構成することができる。
(3)バーチャルチャネル機能を実現した場合においても、パケットの追い越し制御を行なうことができる。
(4)メモリバスにおけるアウト・オブ・オーダ実行に対応することができる。
(4)メモリバスにおけるアウト・オブ・オーダ実行に対応することができる。
以下、図面を参照して本発明の実施の形態を説明する。
(A)第1実施形態の説明
図1は本発明の第1実施形態としてのバスブリッジ(データ転送装置)の構成を模式的に示す図、図2はバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。
情報処理装置1は、図2に示すように、CPU(Central Processing Unit)21−1,21−2,システムコントローラ23−1,23−2,メモリ22−1,22−2,22−3,22−4,クロスバースイッチ24,I/O機器25およびバスブリッジ10a−1,10a−2をそなえて構成されている。
(A)第1実施形態の説明
図1は本発明の第1実施形態としてのバスブリッジ(データ転送装置)の構成を模式的に示す図、図2はバスブリッジをそなえた情報処理装置の構成を模式的に示す図である。
情報処理装置1は、図2に示すように、CPU(Central Processing Unit)21−1,21−2,システムコントローラ23−1,23−2,メモリ22−1,22−2,22−3,22−4,クロスバースイッチ24,I/O機器25およびバスブリッジ10a−1,10a−2をそなえて構成されている。
CPU(Central Processing Unit)21−1,21−2は、OS(Operating System)やアプリケーションプログラムを実行することにより種々の演算処理を行なうものである。
システムコントローラ23−1,23−2は、CPU21−1,21−2やメモリ22−1〜22−4,I/O機器25等の間におけるデータの授受を管理するものであり、システムコントローラ23−1は、CPU21−1,メモリ22−1,22−2およびクロスバースイッチ24に通信可能に接続され、CPU21−1とメモリ22−1,22−2やクロスバースイッチ24との間におけるデータの授受を管理するようになっている。
システムコントローラ23−1,23−2は、CPU21−1,21−2やメモリ22−1〜22−4,I/O機器25等の間におけるデータの授受を管理するものであり、システムコントローラ23−1は、CPU21−1,メモリ22−1,22−2およびクロスバースイッチ24に通信可能に接続され、CPU21−1とメモリ22−1,22−2やクロスバースイッチ24との間におけるデータの授受を管理するようになっている。
また、システムコントローラ23−2は、CPU21−2,メモリ22−3,22−4およびクロスバースイッチ24に通信可能に接続され、CPU21−2とメモリ22−3,22−4やクロスバースイッチ24との間におけるデータの授受を管理するようになっている。
メモリ22−1〜22−4はCPU21−1,21−2が演算を行なう際に用いるデータや命令等を格納するものである。なお、以下、メモリを示す符号としては、複数のメモリのうち1つを特定する必要があるときには符号22−1〜22−4を用いるが、任意のメモリを指すときには符号22を用いる。
メモリ22−1〜22−4はCPU21−1,21−2が演算を行なう際に用いるデータや命令等を格納するものである。なお、以下、メモリを示す符号としては、複数のメモリのうち1つを特定する必要があるときには符号22−1〜22−4を用いるが、任意のメモリを指すときには符号22を用いる。
クロスバースイッチ24は、CPU21−1,21−2やメモリ22−1〜22−4等の間でデータをやりとりする際に、データ(アドレスや対象データ)の伝送経路を動的に選択するものである。図2に示す例においては、クロスバースイッチ24には、システムコントローラ23−1,23−2が通信可能に接続されるとともに、メモリバス30を介してバスブリッジ10a−1,10a−2が通信可能に接続されている。
I/O(Input/Output)機器(入出力機器)25は、ハードディスク装置やスキャナ等の情報処理装置1に取り付けられる種々の電子機器であり、バスブリッジ10a−1,10a−2にI/Oバス(入出力バス)31を介して通信可能に接続されている。
メモリバス30は、図1に示すように、リードデータ信号線30a,ライトデータ信号線30bおよびリクエスト信号線30cをそなえて構成され、バスブリッジ10a−1,10a−2とメモリ22とをクロスバースイッチ24を介して通信可能に接続するものである。又、このリードデータ信号線30aにおいてはリードデータが、又、ライトデータ信号線30bにおいてはライトデータが、更に、リクエスト信号線30cにおいてはリクエスト(アドレス)が、それぞれパケットとして(パケット形式)送受信されるようになっている。なお、リクエスト,ライトデータおよびリードデータについては後述する。
メモリバス30は、図1に示すように、リードデータ信号線30a,ライトデータ信号線30bおよびリクエスト信号線30cをそなえて構成され、バスブリッジ10a−1,10a−2とメモリ22とをクロスバースイッチ24を介して通信可能に接続するものである。又、このリードデータ信号線30aにおいてはリードデータが、又、ライトデータ信号線30bにおいてはライトデータが、更に、リクエスト信号線30cにおいてはリクエスト(アドレス)が、それぞれパケットとして(パケット形式)送受信されるようになっている。なお、リクエスト,ライトデータおよびリードデータについては後述する。
また、本実施形態においては、リクエストは、メモリ22からの応答が無くてもバスブリッジ10a−1,10a−2から、それぞれ8個まで連続で送信することができるようになっており、更に、リードデータおよびライトデータの1パケットのデータ長(メモリアクセスサイズ)は128byteの固定長である。
I/Oバス31は、I/O機器25とバスブリッジ10a−1,10a−2とを通信可能に接続するものであり、I/O受信用信号線(受信用信号線)31aとI/O送信用信号線(送信用信号線)31bとをそなえて構成されている。I/O受信用信号線(受信用信号線)31aは、I/O機器25からの受信データを受信するものであり、I/O送信用信号線(送信用信号線)31bはI/O機器25への送信データを送信するものであり、データの受信と送信とで物理的に異なる信号線が用いられるようになっていて、この意味において全二重化送受信が行なわれるようになっている。
I/Oバス31は、I/O機器25とバスブリッジ10a−1,10a−2とを通信可能に接続するものであり、I/O受信用信号線(受信用信号線)31aとI/O送信用信号線(送信用信号線)31bとをそなえて構成されている。I/O受信用信号線(受信用信号線)31aは、I/O機器25からの受信データを受信するものであり、I/O送信用信号線(送信用信号線)31bはI/O機器25への送信データを送信するものであり、データの受信と送信とで物理的に異なる信号線が用いられるようになっていて、この意味において全二重化送受信が行なわれるようになっている。
また、I/O送信用信号線31bにおいては、送信データとこの送信データの送信先アドレスとを包含するパケットとしてデータが送信されるようになっており、I/O受信用信号線31aにおいては、受信データとこの受信データの受信先アドレスとを包含するパケットとして受信データが受信されるようになっている。更に、I/O受信用信号線31aとI/O送信用信号線31bとにおいて送受信される受信データおよび送信データの1パケットのデータ長は最大4Kbyteまでの可変長である。
バスブリッジ10a−1,10a−2は、I/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、転送されるデータのクロック周波数やデータ長等のプロトコルが互いに異なるI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
なお、以下、本第1実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10a−1,10a−2を用いるが、任意のバスブリッジを指すときには符号10aを用いる。
なお、以下、本第1実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10a−1,10a−2を用いるが、任意のバスブリッジを指すときには符号10aを用いる。
本第1実施形態のバスブリッジ10aは、図1に示すように、リードデータバッファ12,ライトデータバッファ13,I/O送信バッファ(入出力送信バッファ)14,I/O受信バッファ(入出力受信バッファ)15,制御部16,制御情報テーブル11a,受信データ処理部(ライトデータバッファ格納処理部)17,I/O送信バッファ格納処理部(入出力送信バッファ格納処理部)18,バス19a,19b,19c,19d,リードデータバッファ格納処理部33およびライトデータ送信部34をそなえて構成されている。
I/O受信バッファ(入出力受信バッファ)15は、I/O受信データを一時的に格納するものである。このI/O受信バッファ15には、I/O受信用信号線31aおよびバス19aが接続され、I/O機器25から受信したI/O受信データ(受信データ)がこのI/O受信バッファ15に格納されるようになっている。なお、このI/O受信バッファ15には、FIFO(First In First Out;先入れ先出し方式)でI/O受信データの格納及び読み出しが行なわれるようになっている。
また、本第1実施形態のバスブリッジ10aにおいては、物理的には1つのI/Oバス31について、仮想的に複数のチャネルが繋がっているかのように取り扱うバーチャルチャネル(Virtual Channel)機能を実現することができるようになっており、このバーチャルチャネル機能を実現する場合には、I/O受信バッファ15に対するリードおよびライトのポインタをバーチャルチャネル単位に有するものとする。
受信データ処理部17は、I/Oバス31から受信し、I/O受信バッファ15に格納されたパケットを処理するものであり、具体的には、このI/O受信バッファ15に書き込まれたパケットを取り出し、取り出したパケットがリードリクエストであるかライトリクエストであるかの判断を行なったり、受信したパケットのヘッダをメモリアクセスサイズ(本実施形態では128byte)単位に分割して、必要な情報(制御情報)を制御情報テーブル11aに格納すべく、制御部16に渡すようになっている。
また、受信データ処理部(ライトデータバッファ格納処理部)17は、I/O受信バッファ15に格納されたI/O受信データをライトデータバッファ13に格納するものであり、メモリバス30へライトデータを送信するライト処理時(ライト・トランザクション)に、I/O受信バッファ15からI/O受信データを読み出し、このI/O受信データをヘッダ部分とヘッダ部分以外のデータ部分とに分離させて、ライトデータバッファ13がフルの状態になるか、もしくは、I/O受信バッファ15が空の状態になるまで、そのデータ部分をライトデータバッファ13に書き込むようになっている。
ライトデータバッファ13は、メモリ22に書き込まれるべく、ライトデータ信号線30bを介して送信するライトデータを格納するものであり、ライトデータ信号線30bおよびバス19aが接続され、受信データ処理部17によってライトデータが格納されるようになっている。
ライトデータ送信部34は、後述する制御部16からメモリバス30に送信されたライトデータ送信リクエスト(詳細は後述)に対して、メモリバス30からライトデータ送信の許可が行なわれた場合に、1パケットのデータサイズが128byte単位のライトデータを生成し、この生成したライトデータをメモリバス30bを介して送信するようになっている。
ライトデータ送信部34は、後述する制御部16からメモリバス30に送信されたライトデータ送信リクエスト(詳細は後述)に対して、メモリバス30からライトデータ送信の許可が行なわれた場合に、1パケットのデータサイズが128byte単位のライトデータを生成し、この生成したライトデータをメモリバス30bを介して送信するようになっている。
リードデータバッファ12は、メモリ22からリードデータ信号線30aを介して受信するリードデータを格納するものである。なお、このリードデータバッファ12においては、後述する制御部16がリードリクエストを送信する時に、受信予定のリードデータ長に対応する領域を予め確保しておくようになっており、リードリクエストに応じてメモリ22から受信したリードデータを、確保していた領域に格納するようになっている。これにより、リードデータバッファ12においては、リードデータによるメモリオーバーフローの発生を防止することができる。
なお、リードデータバッファ12において、送信されたリードリクエストに対応して確保された領域を示すポインタは、制御情報テーブル11aに格納されるようになっている。
リードデータバッファ格納処理部33は、リードデータ信号線30aを介してメモリ22から受信したリードデータをリードデータバッファ12に格納するものである。このリードデータバッファ格納処理部33は、制御情報テーブル11aを参照して、リードデータバッファ12における受信したリードデータの格納場所を示すポインタを取得して、その格納場所に受信したリードデータを格納するようになっている。
リードデータバッファ格納処理部33は、リードデータ信号線30aを介してメモリ22から受信したリードデータをリードデータバッファ12に格納するものである。このリードデータバッファ格納処理部33は、制御情報テーブル11aを参照して、リードデータバッファ12における受信したリードデータの格納場所を示すポインタを取得して、その格納場所に受信したリードデータを格納するようになっている。
I/O送信バッファ格納処理部(入出力送信バッファ格納処理部)18は、リードデータバッファ12に格納されたリードデータを読み出し、その送信データに関するヘッダ(送信先アドレス)とともに、送信データとしてI/O送信バッファ14に格納するようになっている。
このI/O送信バッファ格納処理部18は、I/Oバス31を介して送信するパケット1つ分の容量(送信パケットサイズ条件)を満たすリードデータがリードデータバッファ12に格納された時、すなわち、送信パケットサイズ条件が満たされた時に、リードデータバッファ12に格納されたこれらの1パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにI/O送信バッファ14に格納するようになっている。
このI/O送信バッファ格納処理部18は、I/Oバス31を介して送信するパケット1つ分の容量(送信パケットサイズ条件)を満たすリードデータがリードデータバッファ12に格納された時、すなわち、送信パケットサイズ条件が満たされた時に、リードデータバッファ12に格納されたこれらの1パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにI/O送信バッファ14に格納するようになっている。
I/O送信バッファ(入出力送信バッファ)14は、I/O機器25に対してI/O送信用信号線31bを介して送信される送信データを格納するものである。このI/O送信バッファ14は、FIFO(First In First Out;先入れ先出し方式)でリードデータの格納及び読み出しが行なわれるようになっている。又、このI/O送信バッファ14には、I/O送信用信号線31bとバス19cとが接続されている。
バス19aはI/O受信バッファ15とライトデータバッファ13とを接続するものであり、バス19bはI/O受信バッファ15と制御情報テーブル11aを接続するものである。又、バス19cは、リードデータバッファ12とI/O送信バッファ14とを接続するものであり、バス19dは、制御情報テーブル11aとI/O送信バッファ14を接続するものである。
制御情報テーブル11aは、8個のエントリ(フィールド)をそなえ、メモリバス30に送信されたリクエストの管理を行なうものである。これらの制御情報テーブル11aのエントリには、メモリバス30に制御部16からリクエストが送信された時に制御部16によって制御情報が登録されるようになっており、又、メモリバス30でのデータ転送が完了した時に、制御部16によってその制御情報が削除されるようになっている。
ここで、制御情報テーブル11aのエントリに格納される制御情報には、例えば、送信されたリードリクエストに対応して、リードデータバッファ12に確保された領域を示すポインタがある。
制御部16は、制御情報テーブル11aに基づいて、ライトデータ送信部34およびリードデータバッファ格納処理部33によるメモリ22(メモリバス30)へのアクセス制御を行なうものである。具体的には、制御部16は、メモリバス30に対してリードリクエストやライトリクエスト等のリクエスト(アドレス)の送信を行なうようになっている。
制御部16は、制御情報テーブル11aに基づいて、ライトデータ送信部34およびリードデータバッファ格納処理部33によるメモリ22(メモリバス30)へのアクセス制御を行なうものである。具体的には、制御部16は、メモリバス30に対してリードリクエストやライトリクエスト等のリクエスト(アドレス)の送信を行なうようになっている。
上述の如く構成された本発明の第1実施形態としてのバスブリッジ10aにおけるライトデータ転送時の処理を図3に示すシーケンスに従って説明する。
I/O機器25から送信されるI/O受信データ(受信データ,ライトデータ)のパケットがI/Oバス31(I/O受信用信号線31a)を介してバスブリッジ10aに送信されると(図3の矢印A10参照)、バスブリッジ10aにおいては、そのI/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれる。
I/O機器25から送信されるI/O受信データ(受信データ,ライトデータ)のパケットがI/Oバス31(I/O受信用信号線31a)を介してバスブリッジ10aに送信されると(図3の矢印A10参照)、バスブリッジ10aにおいては、そのI/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれる。
そして、受信データ処理部17は、I/O受信バッファ15に書き込まれたパケットをI/O受信バッファ15から取り出し、この取り出したパケットがライトデータである場合に、そのヘッダを抽出して128byte単位に分割して、制御部16が必要な情報(制御情報)を制御情報テーブルに登録する。
また、受信データ処理部17は、I/O受信バッファ15に書き込まれたパケットのうち、データ部分をライトデータバッファ13に書き込む。
また、受信データ処理部17は、I/O受信バッファ15に書き込まれたパケットのうち、データ部分をライトデータバッファ13に書き込む。
なお、バーチャルチャネル機能を実現する場合には、I/O受信バッファ15におけるリードポインタおよびライトポインタはバーチャルチャネル単位に用意されるようになっており、優先順位の高い方のパケットを先に処理することができるようになっている。
制御部16は、128byte単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス30に送信する(図3の矢印A20参照)。また、バスブリッジ10aからI/O機器25に対して、I/O受信バッファ15の空き状況を示すクレジットが送信される(図3の矢印A40参照)。ライトリクエストに対してメモリ22(メモリバス30)からデータ送信許可パケットが送信されると(図3の矢印A30参照)、ライトデータ送信部34によりライトデータがライトデータ信号線30bを介してメモリ22に対して送信される(図3の矢印A50参照)。
制御部16は、128byte単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス30に送信する(図3の矢印A20参照)。また、バスブリッジ10aからI/O機器25に対して、I/O受信バッファ15の空き状況を示すクレジットが送信される(図3の矢印A40参照)。ライトリクエストに対してメモリ22(メモリバス30)からデータ送信許可パケットが送信されると(図3の矢印A30参照)、ライトデータ送信部34によりライトデータがライトデータ信号線30bを介してメモリ22に対して送信される(図3の矢印A50参照)。
以下、メモリ22(メモリバス30)からデータ送信許可パケットが送信される度に(図3の矢印A60参照)、ライトデータ送信部34がライトデータをメモリ22に対して送信する(図3の矢印A70参照)。
次に、本発明の第1実施形態としてのバスブリッジ10aにおけるリードデータ転送時の処理を図4に示すシーケンスに従って説明する。I/O機器25から送信されるI/O受信データ(受信データ,リードリクエスト)のパケットがI/Oバス31(I/O受信用信号線31a)を介してバスブリッジ10aに送信されると(図4の矢印B10参照)、バスブリッジ10aにおいては、そのI/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれる。
次に、本発明の第1実施形態としてのバスブリッジ10aにおけるリードデータ転送時の処理を図4に示すシーケンスに従って説明する。I/O機器25から送信されるI/O受信データ(受信データ,リードリクエスト)のパケットがI/Oバス31(I/O受信用信号線31a)を介してバスブリッジ10aに送信されると(図4の矢印B10参照)、バスブリッジ10aにおいては、そのI/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれる。
受信データ処理部17が、I/O受信バッファ15に書き込まれたパケットをI/O受信バッファ15から取り出す。この取り出したパケットがリードリクエストである場合は、受信データ処理部17は、そのヘッダを抽出して128byte単位に分割して、制御部16が必要な情報を制御情報テーブルに登録する。
なお、バーチャルチャネル機能が実現されている場合は、I/O受信バッファ15におけるリードポインタおよびライトポインタはバーチャルチャネル単位に用意されるようになっており、優先順位の高い方のパケットを先に処理することができるようになっている。
なお、バーチャルチャネル機能が実現されている場合は、I/O受信バッファ15におけるリードポインタおよびライトポインタはバーチャルチャネル単位に用意されるようになっており、優先順位の高い方のパケットを先に処理することができるようになっている。
制御部16は、128byte単位に分割したヘッダ情報に基づいてリードリクエストを作成し、メモリバス30に送信する(図4の矢印B20参照)。又、バスブリッジ10aからI/O機器25に対して、I/O受信バッファ15の空き状況を示すクレジットが送信される(図4の矢印B30参照)。リードリクエストに対してメモリ22(メモリバス30)からリードデータが送信され(図4の矢印B40参照)、リードデータバッファ格納処理部33が、メモリバス30aを介して受信したリードデータを順次リードデータバッファに12に格納する。
そして、リードデータバッファ12にI/Oバス31における1パケット分のリードデータが揃うと、I/O送信バッファ格納処理部18が、リードデータバッファ12からリードデータを取り出し、I/O送信バッファ14に書き込む。
クレジットによりリードデータの送信が許可されると(図4の矢印B50参照)、I/O送信バッファ14は、I/Oバス31(I/O送信用信号線31b)にリードデータパケットを送信する(図4の矢印B60参照)。
クレジットによりリードデータの送信が許可されると(図4の矢印B50参照)、I/O送信バッファ14は、I/Oバス31(I/O送信用信号線31b)にリードデータパケットを送信する(図4の矢印B60参照)。
このように、本発明の第1実施形態としてのバスブリッジ10aによれば、リードデータバッファ12,ライトデータバッファ13,I/O送信バッファ14およびI/O受信バッファ15をそなえて構成されているので、メモリバス30およびI/Oバス31のそれぞれに専用のバッファがそなえられ、これにより、メモリバス30およびI/Oバス31の両方のプロトコルに合わせたバッファサイズやポインタ制御方式を採用することができる。
またメモリバス30およびI/Oバス31のうちいずれかのプロトコル等が変更された場合においても、これらのリードデータバッファ12,ライトデータバッファ13,I/O送信バッファ14およびI/O受信バッファ15のうち、いずれかを変更後のプロトコルに対応するものに交換するだけでよく、構成に柔軟性や汎用性があり、又、経済的である。
また、バーチャルチャネル機能を実現した場合のパケットの追い越し制御にも対応することができる。
さらに、メモリバス30が、リクエスト信号線30cとライトデータ信号線30bとリードデータ信号線30aとをそなえて構成され、これらの信号線において、それぞれをパケット形式でデータの送受信を行なうので、CPU21−1,21−2やメモリ22を制御するシステムコントローラ23−1,23−2を複数そなえて構成されるような大規模なシステムに本バスブリッジ10aを用いる場合に、制御部16からリクエストを送信した後に、データの送信先の通知を受けてから、データを実際に処理するシステムコントローラ23−1,23−2に送信することにより、効率的にデータ転送をできる。
さらに、メモリバス30が、リクエスト信号線30cとライトデータ信号線30bとリードデータ信号線30aとをそなえて構成され、これらの信号線において、それぞれをパケット形式でデータの送受信を行なうので、CPU21−1,21−2やメモリ22を制御するシステムコントローラ23−1,23−2を複数そなえて構成されるような大規模なシステムに本バスブリッジ10aを用いる場合に、制御部16からリクエストを送信した後に、データの送信先の通知を受けてから、データを実際に処理するシステムコントローラ23−1,23−2に送信することにより、効率的にデータ転送をできる。
(B)第2実施形態の説明
図5は本発明の第2実施形態としてのバスブリッジ10bの構成を模式的に示す図、図6は本発明の第2実施形態としてのバスブリッジ10bにおける制御情報テーブルの構成例を示す図である。
本第2実施形態としてのバスブリッジ10b(10b−1,10b−2)は、第1実施形態のバスブリッジ10aと同様に、情報処理装置1(図2参照)におけるI/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
図5は本発明の第2実施形態としてのバスブリッジ10bの構成を模式的に示す図、図6は本発明の第2実施形態としてのバスブリッジ10bにおける制御情報テーブルの構成例を示す図である。
本第2実施形態としてのバスブリッジ10b(10b−1,10b−2)は、第1実施形態のバスブリッジ10aと同様に、情報処理装置1(図2参照)におけるI/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
なお、以下、本第2実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10b−1,10b−2を用いるが、任意のバスブリッジを指すときには符号10bを用いる。
本第2実施形態のバスブリッジ10bは、図5に示すように、第1実施形態のバスブリッジ10aに制御情報テーブル11bをそなえて構成され、その他の部分は第1実施形態のバスブリッジ10aと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
本第2実施形態のバスブリッジ10bは、図5に示すように、第1実施形態のバスブリッジ10aに制御情報テーブル11bをそなえて構成され、その他の部分は第1実施形態のバスブリッジ10aと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
そして、本第2実施形態のバスブリッジ10bにおいては、制御部16によって送信される実行中のリードリクエスト(最大で8個)には、それぞれユニークなシーケンスIDが設定されるようになっており、このシーケンスIDによって各リードリクエストが管理されるようになっている。
さらに、本第2実施形態のバスブリッジ10bにおいては、メモリバス30から受信するリードデータも、そのパケットヘッダ部に上述したシーケンスIDを有している。又、本第2実施形態のバスブリッジ10bにおいては、リードデータは、必ずしも制御部16からリクエストが送信された順番でメモリバス30から到着するものではなく、CPU21やメモリ22による処理が完了したものから順次、メモリバス30を介して受信するようになっており(Out Of Order)、リードデータバッファ格納処理部33は、メモリバス30から受信したリードデータを、そのシーケンスIDに基づいて制御情報テーブル11bを参照しながら、順次、リードデータバッファ12における所定位置に格納するようになっている。
さらに、本第2実施形態のバスブリッジ10bにおいては、メモリバス30から受信するリードデータも、そのパケットヘッダ部に上述したシーケンスIDを有している。又、本第2実施形態のバスブリッジ10bにおいては、リードデータは、必ずしも制御部16からリクエストが送信された順番でメモリバス30から到着するものではなく、CPU21やメモリ22による処理が完了したものから順次、メモリバス30を介して受信するようになっており(Out Of Order)、リードデータバッファ格納処理部33は、メモリバス30から受信したリードデータを、そのシーケンスIDに基づいて制御情報テーブル11bを参照しながら、順次、リードデータバッファ12における所定位置に格納するようになっている。
制御テーブル11bは、図6に示すように、8個のエントリのそれぞれにおいて、シーケンスID,メモリアドレスおよびリードデータバッファポインタ値(RDバッファポインタ値;格納位置情報)が制御情報として相互に対応付けて構成されている。すなわち、制御情報テーブル11bは、少なくとも、リクエストに対応付けたシーケンスIDと、リードデータバッファ12におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報とを対応付けて管理している。
リードデータバッファポインタ値は、制御部16がメモリバス30にリードリクエストを送信する際に、そのリードリクエストに対して受信する予定のリードデータを格納するために予め確保される領域を示すポインタ値である。又、このリードデータバッファ12のライトポインタは、インクリメンタルに動作するだけではなく、ランダムな値に制御することができるようになっており、これにより、アウト・オブ・オーダ実行に対応することができるのである。
そして、リードデータバッファ格納処理部33は、リードデータの受信時に、そのリードデータに付加されているシーケンスIDを用いて制御情報テーブル11bを参照して、そのシーケンスIDに対応するエントリからリードデータバッファ12のポインタ値を読み出し、そのリードデータの格納位置とするようになっている。
すなわち、本第2実施形態のバスブリッジ10bにおいては、制御テーブル11bの各エントリは、各エントリに対応付けられたシーケンスIDによって特定されるようになっている。なお、図5に示す例においては、制御テーブル11bを構成する8個のエントリに、1〜8までの自然数のシーケンスIDが設定されている。
すなわち、本第2実施形態のバスブリッジ10bにおいては、制御テーブル11bの各エントリは、各エントリに対応付けられたシーケンスIDによって特定されるようになっている。なお、図5に示す例においては、制御テーブル11bを構成する8個のエントリに、1〜8までの自然数のシーケンスIDが設定されている。
そして、この制御テーブル11bにおいて、使用されるエントリはシーケンスIDによって決定されるようになっている。
また、本第2実施形態のバスブリッジ10bにおいても、I/O送信バッファ格納処理部18が、リードデータバッファ12に1パケット分のリードデータが揃った時に、I/O送信バッファ14へデータを移動させるようになっている。
また、本第2実施形態のバスブリッジ10bにおいても、I/O送信バッファ格納処理部18が、リードデータバッファ12に1パケット分のリードデータが揃った時に、I/O送信バッファ14へデータを移動させるようになっている。
図7は本発明の第2実施形態としてのバスブリッジ10bにおけるリードデータの転送時のデータの流れを示す図である。
本第2実施形態のバスブリッジ10bにおいては、I/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれ、受信データ処理部17が、このI/O受信バッファ15に書き込まれたパケットを取り出す。ここで、取り出したパケットがリードリクエストであった場合に、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
本第2実施形態のバスブリッジ10bにおいては、I/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれ、受信データ処理部17が、このI/O受信バッファ15に書き込まれたパケットを取り出す。ここで、取り出したパケットがリードリクエストであった場合に、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
制御部16は、制御情報テーブル11bにおけるシーケンスIDで示されるエントリに、受信データ処理部17による累積計算に基づいて、リードデータ長に応じて予め確保される格納領域のリードデータバッファ12のポインタ値や、その他に必要な情報を、制御情報として登録する。
制御部16は、128byte単位に分割されたヘッダ情報とシーケンスIDとに基づいてリードリクエスト(リクエスト)を作成し、メモリバス30に送信する。なお、本第2実施形態のバスブリッジ10bにおいては、リードリクエストは、メモリアドレスとシーケンスIDとをそなえており、更に、このリードリクエストに応じてメモリバス30から受信するリードデータにも、そのリードリクエストに付されていたシーケンスIDがそのヘッダに付されている。
制御部16は、128byte単位に分割されたヘッダ情報とシーケンスIDとに基づいてリードリクエスト(リクエスト)を作成し、メモリバス30に送信する。なお、本第2実施形態のバスブリッジ10bにおいては、リードリクエストは、メモリアドレスとシーケンスIDとをそなえており、更に、このリードリクエストに応じてメモリバス30から受信するリードデータにも、そのリードリクエストに付されていたシーケンスIDがそのヘッダに付されている。
メモリバス30からリードデータを受信する場合には、リードデータバッファ格納処理部33が、そのリードデータをヘッダ部分とデータ部分とに分解し、そのヘッダ部分からシーケンスIDを取得する。そして、リードデータバッファ格納処理部33は、そのシーケンスIDに基づいて制御情報テーブル11bを参照して、そのシーケンスIDで示されるエントリのリードデータバッファのポインタ値(格納位置情報)を取得する。
そして、リードデータバッファ格納処理部33は、その取得したリードデータバッファポインタ値をライトポインタとして、リードデータバッファ12におけるそのポインタ値によって示される位置にリードデータを書き込む。
I/O送信バッファ格納処理部18は、I/Oバス31を介して送信するパケット1つ分の容量(送信パケットサイズ条件)を満たすリードデータがリードデータバッファ12に揃った時に、リードデータバッファ12に格納されたこれらの1パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにI/O送信バッファ14に格納する。
I/O送信バッファ格納処理部18は、I/Oバス31を介して送信するパケット1つ分の容量(送信パケットサイズ条件)を満たすリードデータがリードデータバッファ12に揃った時に、リードデータバッファ12に格納されたこれらの1パケット分のリードデータを読み出し、送信データとしてその送信データの送信先アドレスとともにI/O送信バッファ14に格納する。
その後、クレジットによりリードデータの送信が許可されると、本第2実施形態のバスブリッジ10bは、I/Oバス31にリードデータのパケットを送信するのである。
このように、本発明の第2実施形態としてのバスブリッジ10bによれば、上述した第1実施形態と同様の作用効果を得ることができる他、制御部16から送信されるリードリクエストにシーケンスIDが付されるとともに、制御情報テーブル11bが、リクエストに対応付けたシーケンスIDと、リードデータバッファ12におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報とを対応付けて管理するので、メモリバス30からのリードデータが、リードリクエストを出した順番で送信されない場合(アウト・オブ・オーダ)においても、リードデータバッファ格納処理部33が、受信したリードデータに付されたシーケンスIDに基づいて制御情報テーブル11bを参照し、そのリードデータの格納場所を取得することにより、リードデータバッファ12においては、正しい格納位置にリードデータを格納することができる。
このように、本発明の第2実施形態としてのバスブリッジ10bによれば、上述した第1実施形態と同様の作用効果を得ることができる他、制御部16から送信されるリードリクエストにシーケンスIDが付されるとともに、制御情報テーブル11bが、リクエストに対応付けたシーケンスIDと、リードデータバッファ12におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報とを対応付けて管理するので、メモリバス30からのリードデータが、リードリクエストを出した順番で送信されない場合(アウト・オブ・オーダ)においても、リードデータバッファ格納処理部33が、受信したリードデータに付されたシーケンスIDに基づいて制御情報テーブル11bを参照し、そのリードデータの格納場所を取得することにより、リードデータバッファ12においては、正しい格納位置にリードデータを格納することができる。
すなわち、本第2実施形態のバスブリッジ10bにおいては、メモリバス30におけるリードデータのアウト・オブ・オーダ実行に対応することができる。
また、シーケンスIDごとにリードデータバッファ12のポインタ値を制御情報テーブル11bに記憶しておくことにより、メモリバス30からのリードデータの順番に依存することなくリードデータバッファ12に正しい順序でデータを格納することが可能になる。
また、シーケンスIDごとにリードデータバッファ12のポインタ値を制御情報テーブル11bに記憶しておくことにより、メモリバス30からのリードデータの順番に依存することなくリードデータバッファ12に正しい順序でデータを格納することが可能になる。
さらに、メモリバス30上を流れるリードデータの順序依存性がなくなるので、リードデータ信号線30aの順序規制による待ち状態が無くなり、メモリバス30の実効スループットが向上する。
(C)第3実施形態の説明
図8は本発明の第3実施形態としてのバスブリッジ10cにおける制御情報テーブルの構成例を示す図である。
(C)第3実施形態の説明
図8は本発明の第3実施形態としてのバスブリッジ10cにおける制御情報テーブルの構成例を示す図である。
本第3実施形態としてのバスブリッジ10c(10c−1,10c−2)は、第1実施形態のバスブリッジ10aと同様に、情報処理装置1(図2参照)におけるI/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
本第3実施形態のバスブリッジ10cは、第2実施形態のバスブリッジ10bの制御情報テーブル11bに代えて制御情報テーブル11cをそなえて構成され(図5参照)、その他の部分は第2実施形態のバスブリッジ10bと同様に構成されている。
また、以下、本第3実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10c−1,10c−2を用いるが、任意のバスブリッジを指すときには符号10cを用いる。
また、以下、本第3実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10c−1,10c−2を用いるが、任意のバスブリッジを指すときには符号10cを用いる。
本第3実施形態のバスブリッジ10cにおいては、ライトデータバッファ13のリードポインタは、インクリメンタルに動作するだけではなく、ランダムな値に制御することができるようになっており、これにより、ライトデータバッファ13からからのデータのランダムな取り出しが可能になり、メモリバス30からのデータ再送要求に対応することができる。
また、本第3実施形態のバスブリッジ10cにおいては、第2実施形態のバスブリッジ10bにおけるリードリクエストと同様に、制御部16によって送信される実行中のライトリクエスト(最大で8個)には、それぞれユニークなシーケンスIDが設定されるようになっており、このシーケンスIDによって各リクエストが管理されるようになっている。
そして、本第3実施形態のバスブリッジ10cにおいては、メモリバス30に送信されるライトデータも、第2実施形態のバスブリッジ10bにおけるリードデータと同様に、そのパケットヘッダ部に上述したシーケンスIDを有している。又、本第3実施形態のバスブリッジ10cにおいては、制御部16に、メモリバス30から送信されるデータ送信許可や、データ再送要求が入力されるようになっている。
制御テーブル11cは、図8に示すように、8個のエントリをそなえるとともに、これらの各エントリのそれぞれにおいて、シーケンスID,メモリアドレスおよびライトデータバッファポインタ値(WDバッファポインタ値;格納位置情報)が制御情報として相互に対応付けて構成されている。すなわち、制御情報テーブル11cは、少なくとも、リクエストに対応付けたシーケンスIDと、ライトデータバッファ13におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報とを対応付けて管理している。
このライトデータバッファポインタ値は、受信データ処理部17が、I/Oバス30(I/O受信用信号線31a)から受信され、I/O受信バッファ15に格納されたライトリクエストパケットについて、そのデータ部分(ライトデータ)を格納したライトデータバッファ13における位置を示す情報(位置情報,ポインタ値)であって、受信データ処理部17がライトデータをライトデータバッファ13に格納する際に特定されるようになっている。
本第3実施形態のバスブリッジ10cにおいても、第2実施形態の制御情報テーブル11bと同様に、制御テーブル11cの各エントリは、各エントリに対応付けられたシーケンスIDによって特定されるようになっている。なお、図8に示す例においては、制御テーブル11bを構成する8個のエントリに、1〜8までの自然数のシーケンスIDが設定されている。
そして、この制御テーブル11cにおいて、使用されるエントリはシーケンスIDによって決定されるようになっている。
また、本第3実施形態のバスブリッジ10cにおいては、受信データ処理部17は、I/Oバス30(I/O受信用信号線31a)から受信されI/O受信バッファ15に格納されたライトリクエストパケットについて、そのデータ部分(ライトデータ)をライトデータバッファ13に格納するとともに、そのライトデータバッファ13における格納位置(ライトデータバッファポインタ値)を、制御情報テーブル11cに格納するようになっている。
また、本第3実施形態のバスブリッジ10cにおいては、受信データ処理部17は、I/Oバス30(I/O受信用信号線31a)から受信されI/O受信バッファ15に格納されたライトリクエストパケットについて、そのデータ部分(ライトデータ)をライトデータバッファ13に格納するとともに、そのライトデータバッファ13における格納位置(ライトデータバッファポインタ値)を、制御情報テーブル11cに格納するようになっている。
ライトデータ送信部34は、そのライトリクエストに付加されているシーケンスIDを用いて制御情報テーブル11cを参照して、そのシーケンスIDに対応するエントリからライトデータバッファ13のポインタ値を読み出し、ライトデータバッファ13におけるそのライトデータの格納位置とし、その格納位置に格納されているライトデータをメモリバス30(ライトデータ信号線30b)に送信するようになっている。
図9は本発明の第3実施形態としてのバスブリッジ10cにおけるライトデータの転送時のデータの流れを示す図である。
本第3実施形態のバスブリッジ10cにおいては、I/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれ、受信データ処理部17が、このI/O受信バッファ15に書き込まれたパケットを取り出す。ここで、取り出したパケットがライトリクエストであった場合には、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行ない、そのデータ部分(ライトデータ)をライトデータバッファ13に格納する。
本第3実施形態のバスブリッジ10cにおいては、I/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれ、受信データ処理部17が、このI/O受信バッファ15に書き込まれたパケットを取り出す。ここで、取り出したパケットがライトリクエストであった場合には、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行ない、そのデータ部分(ライトデータ)をライトデータバッファ13に格納する。
制御部16は、制御情報テーブル11cにおけるシーケンスIDで示されるエントリに、受信データ処理部17による累積計算に基づいて、ライトデータバッファ13におけるライトデータ格納位置を示すポインタ値や、その他に必要な情報を、制御情報として登録する。
制御部16は、128byte単位に分割されたヘッダ情報とシーケンスIDとに基づいてライトリクエスト(リクエスト)を作成し、メモリバス30に送信する。なお、本第3実施形態のバスブリッジ10cにおいては、ライトリクエストは、メモリアドレスとシーケンスIDとをそなえており、更に、このライトリクエストに応じてメモリバス30から受信するデータ送信許可や、データ再送要求にも、そのライトリクエストに付されていたシーケンスIDがそのヘッダに付されている。
制御部16は、128byte単位に分割されたヘッダ情報とシーケンスIDとに基づいてライトリクエスト(リクエスト)を作成し、メモリバス30に送信する。なお、本第3実施形態のバスブリッジ10cにおいては、ライトリクエストは、メモリアドレスとシーケンスIDとをそなえており、更に、このライトリクエストに応じてメモリバス30から受信するデータ送信許可や、データ再送要求にも、そのライトリクエストに付されていたシーケンスIDがそのヘッダに付されている。
メモリバス30に対してライトデータを送信する場合には、例えば制御部16が、メモリバス30から受信したデータ送信許可やデータ再送要求からシーケンスIDを取得して、そのシーケンスIDに基づいて制御情報テーブル11cを参照して、そのシーケンスIDに対応するライトデータバッファポインタ値(格納位置)を取得する。
ライトデータ送信部34は、その取得したライトデータバッファポインタ値をリードポインタとして、ライトデータバッファ13におけるそのポインタ値によって示される位置に格納されているライトデータを読み出し、ヘッダと合成してメモリバス30(リードデータ信号線30a)に送信する。
ライトデータ送信部34は、その取得したライトデータバッファポインタ値をリードポインタとして、ライトデータバッファ13におけるそのポインタ値によって示される位置に格納されているライトデータを読み出し、ヘッダと合成してメモリバス30(リードデータ信号線30a)に送信する。
上述の如く構成された本発明の第3実施形態としてのバスブリッジ10cにおけるライトデータ転送時の処理を図10に示すシーケンスに従って説明する。なお、この図10に示すシーケンス図は、本第3実施形態のバスブリッジ10cとメモリ22との間のメモリバス30を介して行なわれるデータ転送を示している。
制御部16は、128byte単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス30に送信する(図10の矢印C10参照)。これらのライトリクエストに対してメモリ22からデータ送信許可が送信されると(図10の矢印C20参照)、制御部16は、制御情報テーブル11cにおいて、そのデータ送信許可に付されているシーケンスIDによって示されるエントリから、ライトデータバッファ13のポインタ値を取得する。
制御部16は、128byte単位に分割したヘッダ情報に基づいてライトリクエストを作成し、メモリバス30に送信する(図10の矢印C10参照)。これらのライトリクエストに対してメモリ22からデータ送信許可が送信されると(図10の矢印C20参照)、制御部16は、制御情報テーブル11cにおいて、そのデータ送信許可に付されているシーケンスIDによって示されるエントリから、ライトデータバッファ13のポインタ値を取得する。
ライトデータ送信部34は、そのポインタ値をリードポインタとしてライトデータバッファ13からライトデータを読み出し、そのライトデータをバスブリッジ10cからライトデータ信号線30bを介してメモリ22に対して送信する(図10の矢印C30参照)。
また、何らかの理由でメモリ22がライトデータを受信できなかった場合には、メモリ22は、バスブリッジ10cに対してデータ再送要求を行なう(図10の矢印C40参照)。ライトデータ送信部34は、制御情報テーブル11cにおける、このデータ再送要求に付されているシーケンスIDによって示されるエントリから、ライトデータバッファ13のポインタ値を、再度取得し、そのポインタ値をリードポインタとしてライトデータバッファ13からライトデータを読み出し、そのライトデータをバスブリッジ10cからライトデータ信号線30bを介してメモリ22に対して再送信する(図10の矢印C50参照)。
また、何らかの理由でメモリ22がライトデータを受信できなかった場合には、メモリ22は、バスブリッジ10cに対してデータ再送要求を行なう(図10の矢印C40参照)。ライトデータ送信部34は、制御情報テーブル11cにおける、このデータ再送要求に付されているシーケンスIDによって示されるエントリから、ライトデータバッファ13のポインタ値を、再度取得し、そのポインタ値をリードポインタとしてライトデータバッファ13からライトデータを読み出し、そのライトデータをバスブリッジ10cからライトデータ信号線30bを介してメモリ22に対して再送信する(図10の矢印C50参照)。
メモリ22は、ライトデータを正しく受信した場合には、データ完了通知をバスブリッジ10cに対して送信して(図10の矢印C60参照)、バスブリッジ10cにおいては、そのデータ転送完了通知により、ライトデータバッファ13と制御情報テーブル11cを開放して処理を完了する。
このように、本発明の第3実施形態としてのバスブリッジ10cよれば、上述した第1実施形態と同様の作用効果を得ることができる他、制御部16から送信されるライトリクエストにシーケンスIDが付されるとともに、制御情報テーブル11cが、リクエストに対応付けたシーケンスIDと、ライトデータバッファ13におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報とを対応付けて管理するので、例えばデータ再送要求が行なわれることにより、メモリバス30からのデータ送信許可が制御部16から送信したライトリクエストの順番で送信されない場合においても、ライトデータ送信部34が、受信したデータ送信許可やデータ再送要求に付されたシーケンスIDに基づいて制御情報テーブル11cを参照し、そのライトデータの格納場所を取得することにより、メモリバス30からのデータ送信許可やデータ再送要求の順番で、ライトデータバッファ13からライトデータを読み出して送信することができる。
このように、本発明の第3実施形態としてのバスブリッジ10cよれば、上述した第1実施形態と同様の作用効果を得ることができる他、制御部16から送信されるライトリクエストにシーケンスIDが付されるとともに、制御情報テーブル11cが、リクエストに対応付けたシーケンスIDと、ライトデータバッファ13におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報とを対応付けて管理するので、例えばデータ再送要求が行なわれることにより、メモリバス30からのデータ送信許可が制御部16から送信したライトリクエストの順番で送信されない場合においても、ライトデータ送信部34が、受信したデータ送信許可やデータ再送要求に付されたシーケンスIDに基づいて制御情報テーブル11cを参照し、そのライトデータの格納場所を取得することにより、メモリバス30からのデータ送信許可やデータ再送要求の順番で、ライトデータバッファ13からライトデータを読み出して送信することができる。
すなわち、本第3実施形態のバスブリッジ10cにおいては、シーケンスIDを用いてライトデータバッファ13からライトデータをランダムに取り出すことが可能となり、これにより、メモリバス30でのシーケンスIDを用いた再送機能やアウト・オブ・オーダ実行に対応することができる。
また、制御情報テーブル11cにおいて、リクエスト(シーケンスID)とライトデータとが対応付けられているので、制御情報テーブル11cからエントリを削除することによりライトデータが読み出されないようにすることができ、エラー発生時にデータを空読みして削除する必要がない。
また、制御情報テーブル11cにおいて、リクエスト(シーケンスID)とライトデータとが対応付けられているので、制御情報テーブル11cからエントリを削除することによりライトデータが読み出されないようにすることができ、エラー発生時にデータを空読みして削除する必要がない。
(D)第4実施形態の説明
図11は本発明の第4実施形態としてのバスブリッジ10dの構成を模式的に示す図である。
本第4実施形態としてのバスブリッジ10d(10d−1,10d−2)は、第1実施形態のバスブリッジ10aと同様に、情報処理装置1(図2参照)におけるI/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
図11は本発明の第4実施形態としてのバスブリッジ10dの構成を模式的に示す図である。
本第4実施形態としてのバスブリッジ10d(10d−1,10d−2)は、第1実施形態のバスブリッジ10aと同様に、情報処理装置1(図2参照)におけるI/O機器25とクロスバースイッチ24との間において、I/Oバス31とメモリバス30との間に配設され、互いに転送されるデータのクロック周波数やデータ長等のプロトコルが違うこれらのI/Oバス31とメモリバス30との間においてデータ転送を行なうようになっている。
なお、以下、本第4実施形態においては、バスブリッジを示す符号としては、複数のバスブリッジのうち1つを特定する必要があるときには符号10d−1,10d−2を用いるが、任意のバスブリッジを指すときには符号10dを用いる。
本第4実施形態のバスブリッジ10dは、図11に示すように、第1実施形態のバスブリッジ10aの制御情報テーブル11aに代えて制御情報テーブル11dをそなえて構成され、その他の部分は第1実施形態のバスブリッジ10aと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
本第4実施形態のバスブリッジ10dは、図11に示すように、第1実施形態のバスブリッジ10aの制御情報テーブル11aに代えて制御情報テーブル11dをそなえて構成され、その他の部分は第1実施形態のバスブリッジ10aと同様に構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
制御情報テーブル11dは、第2実施形態のバスブリッジ10bの制御情報テーブル11bと、第3実施形態のバスブリッジ10cの制御情報テーブル11cとの機能を兼ね備えるものである。
図12は本発明の第4実施形態としてのバスブリッジ10dにおける制御情報テーブル11dの構成例を示す図である。
図12は本発明の第4実施形態としてのバスブリッジ10dにおける制御情報テーブル11dの構成例を示す図である。
制御情報テーブル11dは、図12に示すように、8個のエントリをそなえるとともに、これらの各エントリのそれぞれにおいて、シーケンスID,メモリアドレス,ライトデータバッファポインタ値もしくはリードデータバッファポインタ値(WD/RDバッファポインタ値;格納位置情報)および識別ビット(識別情報)が制御情報として相互に対応付けて構成されている。
なお、識別ビットは、そのトランザクションがリードリクエスト(リード処理)に関するものであるかライトリクエスト(ライト処理)に関するものかを識別するための識別情報であって、例えば、リードリクエストついてのものには“1”が、又、ライトリクエストについてのものには“0”が登録されるようになっている。
すなわち、制御情報テーブル11dは、少なくとも、リクエストに対応付けたシーケンスIDと、ライトデータバッファ13におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報もしくはリードデータバッファ12におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報、および識別ビットとを対応付けて管理している。
すなわち、制御情報テーブル11dは、少なくとも、リクエストに対応付けたシーケンスIDと、ライトデータバッファ13におけるそのリクエストに対応するライトデータの格納位置に関する格納位置情報もしくはリードデータバッファ12におけるそのリクエストに対応するリードデータの格納位置に関する格納位置情報、および識別ビットとを対応付けて管理している。
図13は本発明の第4実施形態としてのバスブリッジ10dにおけるリードデータおよびライトデータの転送時のデータの流れを示す図であり、第2実施形態のバスブリッジ10bにおけるリードデータの転送時のデータの流れ(図7参照)と、第3実施形態のバスブリッジ10cにおけるライトデータの転送時のデータの流れ(図9参照)とを併せて示すものである。
本第4実施形態のバスブリッジ10dにおいては、I/Oバス31から受信したパケットがI/O受信バッファ15に書き込まれ、受信データ処理部17が、このI/O受信バッファ15に書き込まれたパケットを取り出す。
ここで、取り出したパケットがリードリクエストであった場合には、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
ここで、取り出したパケットがリードリクエストであった場合には、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、リードデータのデータ長の累積計算を行なう。
また、制御部16は、制御情報テーブル11dにおけるシーケンスIDで示されるエントリに、受信データ処理部17による累積計算に基づいて、リードデータ長に応じて予めリードデータバッファ12に確保される格納領域を示すポインタ値や、その他に必要な情報を、制御情報として制御情報テーブル11dに登録し、更に、そのトランザクションがリードであることを示す識別ビット“1”をそのシーケンスIDに対応させて登録する。
一方、取り出したパケットがライトリクエストであった場合には、受信データ処理部17は、そのヘッダを128byte単位に分割するとともに、ライトデータのデータ長の累積計算を行なうとともに、そのデータ部分(ライトデータ)をライトデータバッファ13に格納する。
制御部16は、制御情報テーブル11dにおけるシーケンスIDで示されるエントリに、受信データ処理部17による累積計算に基づいて、ライトデータバッファ13におけるライトデータ格納位置を示すポインタ値や、その他に必要な情報を、制御情報として登録する。又、この際に、制御部16は、そのトランザクションがライトであることを示す識別ビット“0”をそのシーケンスIDに対応させて登録する。
制御部16は、制御情報テーブル11dにおけるシーケンスIDで示されるエントリに、受信データ処理部17による累積計算に基づいて、ライトデータバッファ13におけるライトデータ格納位置を示すポインタ値や、その他に必要な情報を、制御情報として登録する。又、この際に、制御部16は、そのトランザクションがライトであることを示す識別ビット“0”をそのシーケンスIDに対応させて登録する。
そして、本第4実施形態としてのバスブリッジ10dにおいては、制御部16が、メモリバス30から受信するリードデータやデータ送信許可/データ再送要求のヘッダからシーケンスIDを取得し、これらのシーケンスIDに基づいて制御情報テーブル11を参照し、識別ビットに基づいて、そのシーケンスIDにかかる処理がリードに係る処理であるか、ライトに係る処理であるかを判断する。
そのシーケンスIDにかかる処理がリードに係る処理である場合には、図7に示したフローに従って処理を行ない、又、そのシーケンスIDにかかる処理がライトに係る処理である場合には、図9に示したフローに従って処理を行なうのである。
このように、本発明の第4実施形態としてのバスブリッジ10dによれば、上述した第1実施形態〜第3実施形態と同様の作用効果を得ることができる他、リードとライトとの両方のトランザクションで制御情報テーブル11dを供用することができ、その回路規模の削減や実装スペースの低減等を実現することができる。
このように、本発明の第4実施形態としてのバスブリッジ10dによれば、上述した第1実施形態〜第3実施形態と同様の作用効果を得ることができる他、リードとライトとの両方のトランザクションで制御情報テーブル11dを供用することができ、その回路規模の削減や実装スペースの低減等を実現することができる。
(E)その他
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、制御情報テーブル11a,11b,11c,11dはそれぞれ8つのエントリをそなえて構成されているが、これに限定されるものではなく、制御情報テーブルを7以下もしくは9以上の数のエントリをそなえて構成してもよい。
そして、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、制御情報テーブル11a,11b,11c,11dはそれぞれ8つのエントリをそなえて構成されているが、これに限定されるものではなく、制御情報テーブルを7以下もしくは9以上の数のエントリをそなえて構成してもよい。
また、上述した各実施形態においては、2つのCPU21−1,21−2,2つのシステムコントローラ23−1,23−2,4つのメモリ22−1〜22−4,および4つのI/O機器25をそなえて構成された情報処理装置1に、本発明の各実施形態のバスブリッジ10a,10b,10c,10dをそれぞれ2つそなえた例について説明しているが、これに限定されるものではなく、これらのCPU21,システムコントローラ23,メモリ22,I/O機器25およびバスブリッジ10a,10b,10c,10dを、それぞれ上述した以外の数そなえて構成してもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
(F)付記
(付記1)メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリー
ドデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とするデータ転送装置。
(F)付記
(付記1)メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリー
ドデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とするデータ転送装置。
(付記2) 該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記1記載のデータ転送装置。
(付記3) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記2記載のデータ転送装置。
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記1記載のデータ転送装置。
(付記3) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記2記載のデータ転送装置。
(付記4) 該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記1〜付記3のいずれか1項に記載のデータ転送装置。
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記1〜付記3のいずれか1項に記載のデータ転送装置。
(付記5) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記4記載のデータ転送装置。
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記4記載のデータ転送装置。
(付記6) 該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、付記5記載のデータ転送装置。
(付記7) データの読み出しおよび格納が可能なメモリと、
リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえ、該メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能
に接続されるメモリバスと、
送信用信号線と受信用信号線とをそなえ、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送受信される入出力バスと、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とする情報処理装置。
(付記7) データの読み出しおよび格納が可能なメモリと、
リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえ、該メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能
に接続されるメモリバスと、
送信用信号線と受信用信号線とをそなえ、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送受信される入出力バスと、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とする情報処理装置。
(付記8) 該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記7記載の情報処理装置。
(付記9) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記8記載の情報処理装置。
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作成された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、付記7記載の情報処理装置。
(付記9) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、付記8記載の情報処理装置。
(付記10) 該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記7〜付記9のいずれか1項に記載の情報処理装置。
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、付記7〜付記9のいずれか1項に記載の情報処理装置。
(付記11) 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記10記載の情報処理装置。
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、付記10記載の情報処理装置。
(付記12) 該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、付記11記載の情報処理装置。
互いに異なるプロトコルを有する2つのバス間におけるデータ転送に適用することができる。
1 情報処理装置
10a,10b,10c,10d,10a−1,10a−2 バスブリッジ
11a,11b,11c,11d 制御情報テーブル
12 リードデータバッファ
13 ライトデータバッファ
14 I/O送信バッファ(入出力送信バッファ)
15 I/O受信バッファ(入出力受信バッファ)
16 制御部
17 受信データ処理部(ライトデータバッファ格納処理部)
18 I/O送信バッファ格納処理部(入出力送信バッファ格納処理部)
19a,19b,19c,19d バス
21,21−1,21−2 CPU
22,22−1,22−2,22−3,22−4 メモリ
23,23−1,23−2 システムコントローラ
24 クロスバースイッチ
25 I/O機器(入出力機器)
30 メモリバス
30a リードデータ信号線
30b ライトデータ信号線
30c リクエスト信号線
31 I/Oバス(入出力バス)
31a I/O受信用信号線(受信用信号線)
31b I/O送信用信号線(送信用信号線)
33 リードデータバッファ格納処理部
34 ライトデータ送信部
10a,10b,10c,10d,10a−1,10a−2 バスブリッジ
11a,11b,11c,11d 制御情報テーブル
12 リードデータバッファ
13 ライトデータバッファ
14 I/O送信バッファ(入出力送信バッファ)
15 I/O受信バッファ(入出力受信バッファ)
16 制御部
17 受信データ処理部(ライトデータバッファ格納処理部)
18 I/O送信バッファ格納処理部(入出力送信バッファ格納処理部)
19a,19b,19c,19d バス
21,21−1,21−2 CPU
22,22−1,22−2,22−3,22−4 メモリ
23,23−1,23−2 システムコントローラ
24 クロスバースイッチ
25 I/O機器(入出力機器)
30 メモリバス
30a リードデータ信号線
30b ライトデータ信号線
30c リクエスト信号線
31 I/Oバス(入出力バス)
31a I/O受信用信号線(受信用信号線)
31b I/O送信用信号線(送信用信号線)
33 リードデータバッファ格納処理部
34 ライトデータ送信部
Claims (6)
- メモリとの間でリクエスト,ライトデータおよびリードデータをそれぞれパケットとして通信可能に接続され、リクエスト信号線とライトデータ信号線とリードデータ信号線とをそなえるメモリバスと、入出力機器との間で、送信データと当該送信データの送信先アドレスとを包含するパケットおよび受信データと当該受信データの受信先アドレスとを包含するパケットとして、該送信データおよび該受信データをそれぞれ送信もしくは受信され、送信用信号線と受信用信号線とをそなえる入出力バスとの間において、データの転送を行なうデータ転送装置であって、
該入出力機器から該受信用信号線を介して受信する該受信データを格納可能な入出力受信バッファと、
該入出力機器に対して該送信用信号線を介して送信する該送信データを格納可能な入出力送信バッファと、
該メモリに対して該ライトデータ信号線を介して送信する該ライトデータを格納可能なライトデータバッファと、
該メモリから該リードデータ信号線を介して受信する該リードデータを格納可能なリードデータバッファと、
該メモリへのアクセスに応じて形成されるエントリを複数そなえる制御情報テーブルと、
該入出力受信バッファに格納された該受信データを該ライトデータバッファに格納するライトデータバッファ格納処理部と、
該ライトデータバッファに格納された該受信データを該ライトデータとして該ライトデータ信号線を介して該メモリに送信するライトデータ送信部と、
該メモリから受信した該リードデータを該リードデータバッファに格納するリードデータバッファ格納処理部と、
該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納する入出力送信バッファ格納処理部と、
該制御情報テーブルに基づいて、該ライトデータ送信部および該リードデータバッファ格納処理部による該メモリへのアクセス制御を行なう制御部とをそなえることを特徴とするデータ転送装置。 - 該入出力機器から該メモリへのデータ転送を行なうライト処理時に、
該ライトデータ送信部が、該ライトデータバッファに格納された該受信データをメモリアクセスサイズに分割して作製された該ライトデータを、該ライトデータ信号線を介して送信することを特徴とする、請求項1記載のデータ転送装置。 - 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該ライトデータバッファにおける該リクエストに対応する該ライトデータが格納されている格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスにデータ送信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記ライトデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該ライトデータバッファから該ライトデータの取り出しを行なうことを特徴とする、請求項2記載のデータ転送装置。 - 該メモリから該入出力機器へのデータ転送を行なうリード処理時に、
該入出力送信バッファ格納処理部が、該リードデータバッファに格納された複数の該リードデータの合計データ量が送信パケットサイズ条件を満たした時に、該リードデータバッファに格納された該リードデータを読み出し、該送信データとして当該送信データの送信先アドレスとともに該入出力送信バッファに格納することを特徴とする、請求項1〜請求項3のいずれか1項に記載のデータ転送装置。 - 該制御情報テーブルが、少なくとも、該リクエストに対応付けたシーケンスIDと、該リードデータバッファにおける該リクエストに対応する該リードデータの格納位置に関する格納位置情報とを対応付けて管理し、
該制御部が、該メモリバスから該リードデータの受信を行なう際に、該制御情報テーブルのエントリに書き込まれている前記リードデータバッファの格納位置情報を、該シーケンスIDをポインタとして読み出し、該格納位置情報に基づいて該リードデータを該リードデータバッファに格納することを特徴とする、請求項4記載のデータ転送装置。 - 該制御情報テーブルが、前記リードデータバッファの格納位置情報と前記ライトデータバッファの格納位置情報とを同一フィールドに格納するとともに、該リード処理か該ライト処理かを識別するための識別情報を該リクエストに対応させて格納することを特徴とする、請求項5記載のデータ転送装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005186257A JP2006293969A (ja) | 2005-03-17 | 2005-06-27 | データ転送装置 |
EP05254556A EP1703410B1 (en) | 2005-03-17 | 2005-07-21 | Data transfer device |
DE602005017571T DE602005017571D1 (de) | 2005-03-17 | 2005-07-21 | Datenübertragungseinrichtung |
US11/187,895 US7475170B2 (en) | 2005-03-17 | 2005-07-25 | Data transfer device for transferring data to and from memory via a bus |
KR1020050075718A KR100689006B1 (ko) | 2005-03-17 | 2005-08-18 | 데이터 전송 장치 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005077346 | 2005-03-17 | ||
JP2005186257A JP2006293969A (ja) | 2005-03-17 | 2005-06-27 | データ転送装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006293969A true JP2006293969A (ja) | 2006-10-26 |
Family
ID=34993333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005186257A Pending JP2006293969A (ja) | 2005-03-17 | 2005-06-27 | データ転送装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7475170B2 (ja) |
EP (1) | EP1703410B1 (ja) |
JP (1) | JP2006293969A (ja) |
KR (1) | KR100689006B1 (ja) |
DE (1) | DE602005017571D1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276351A (ja) * | 2007-04-26 | 2008-11-13 | Hitachi Ltd | 半導体装置 |
JP2009217407A (ja) * | 2008-03-07 | 2009-09-24 | Nec Corp | データ通信システムのデットロック回避方法及びそのシステム並びにその制御プログラム |
WO2010029830A1 (ja) * | 2008-09-12 | 2010-03-18 | 株式会社日立製作所 | 半導体装置および情報処理システム |
JP2012113452A (ja) * | 2010-11-24 | 2012-06-14 | Nec Access Technica Ltd | 非同期fifo間順序制御回路、データ処理装置及びそれらに用いる非同期fifo間順序制御方法 |
JP2013196615A (ja) * | 2012-03-22 | 2013-09-30 | Ricoh Co Ltd | データ中継装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7853735B2 (en) * | 2007-12-13 | 2010-12-14 | Emulex Design & Manufacturing Corporation | Efficient processing of groups of host access requests that may include zero length requests |
JP2009182780A (ja) * | 2008-01-31 | 2009-08-13 | Nec Corp | 再送プロセスのデータ処理方法およびそれを用いた通信装置 |
DE102008019277B4 (de) * | 2008-04-16 | 2013-07-18 | Phoenix Contact Gmbh & Co. Kg | Datenübertragungsvorrichtung |
JP5361924B2 (ja) * | 2011-02-28 | 2013-12-04 | 株式会社東芝 | データ送信装置、データ通信装置および通信プログラム |
JP6911600B2 (ja) * | 2017-07-18 | 2021-07-28 | 富士通株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
KR20210016684A (ko) | 2019-08-05 | 2021-02-17 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 동작 방법 |
KR20220042649A (ko) * | 2020-09-28 | 2022-04-05 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
JP7567569B2 (ja) * | 2021-03-09 | 2024-10-16 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10198628A (ja) * | 1997-01-07 | 1998-07-31 | Yokogawa Electric Corp | バス変換器の過負荷状態検出装置 |
JPH10312358A (ja) * | 1997-05-13 | 1998-11-24 | Kofu Nippon Denki Kk | 多階層バスシステムのタイミング制御装置 |
JP2001175631A (ja) * | 1999-12-17 | 2001-06-29 | Mitsubishi Electric Corp | Cpuカード及びデータ通信方法 |
JP2004280787A (ja) * | 1993-04-30 | 2004-10-07 | Nec Corp | データ処理システムにおける入力及び出力ブリッジ |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546546A (en) * | 1994-05-20 | 1996-08-13 | Intel Corporation | Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge |
US5802055A (en) * | 1996-04-22 | 1998-09-01 | Apple Computer, Inc. | Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads |
KR20000013078A (ko) | 1998-08-04 | 2000-03-06 | 윤종용 | 다중 프로세서 시스템의 프로세서간 통신 장치 및 방법 |
JP2000132503A (ja) | 1998-10-23 | 2000-05-12 | Victor Co Of Japan Ltd | データ転送装置 |
US6301632B1 (en) * | 1999-03-26 | 2001-10-09 | Vlsi Technology, Inc. | Direct memory access system and method to bridge PCI bus protocols and hitachi SH4 protocols |
DE10234934A1 (de) * | 2002-07-31 | 2004-03-18 | Advanced Micro Devices, Inc., Sunnyvale | Antwortreihenwiederherstellungsmechanismus |
-
2005
- 2005-06-27 JP JP2005186257A patent/JP2006293969A/ja active Pending
- 2005-07-21 EP EP05254556A patent/EP1703410B1/en not_active Ceased
- 2005-07-21 DE DE602005017571T patent/DE602005017571D1/de active Active
- 2005-07-25 US US11/187,895 patent/US7475170B2/en active Active
- 2005-08-18 KR KR1020050075718A patent/KR100689006B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280787A (ja) * | 1993-04-30 | 2004-10-07 | Nec Corp | データ処理システムにおける入力及び出力ブリッジ |
JPH10198628A (ja) * | 1997-01-07 | 1998-07-31 | Yokogawa Electric Corp | バス変換器の過負荷状態検出装置 |
JPH10312358A (ja) * | 1997-05-13 | 1998-11-24 | Kofu Nippon Denki Kk | 多階層バスシステムのタイミング制御装置 |
JP2001175631A (ja) * | 1999-12-17 | 2001-06-29 | Mitsubishi Electric Corp | Cpuカード及びデータ通信方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276351A (ja) * | 2007-04-26 | 2008-11-13 | Hitachi Ltd | 半導体装置 |
US8886893B2 (en) | 2007-04-26 | 2014-11-11 | Ps4 Luxco S.A.R.L. | Semiconductor device |
JP2009217407A (ja) * | 2008-03-07 | 2009-09-24 | Nec Corp | データ通信システムのデットロック回避方法及びそのシステム並びにその制御プログラム |
WO2010029830A1 (ja) * | 2008-09-12 | 2010-03-18 | 株式会社日立製作所 | 半導体装置および情報処理システム |
JPWO2010029830A1 (ja) * | 2008-09-12 | 2012-02-02 | 株式会社日立製作所 | 半導体装置および情報処理システム |
JP5214736B2 (ja) * | 2008-09-12 | 2013-06-19 | 株式会社日立製作所 | 半導体装置および情報処理システム |
US9176907B2 (en) | 2008-09-12 | 2015-11-03 | Hitachi, Ltd. | Semiconductor device and data processing system |
JP2012113452A (ja) * | 2010-11-24 | 2012-06-14 | Nec Access Technica Ltd | 非同期fifo間順序制御回路、データ処理装置及びそれらに用いる非同期fifo間順序制御方法 |
JP2013196615A (ja) * | 2012-03-22 | 2013-09-30 | Ricoh Co Ltd | データ中継装置 |
Also Published As
Publication number | Publication date |
---|---|
US20060212661A1 (en) | 2006-09-21 |
KR20060101171A (ko) | 2006-09-22 |
KR100689006B1 (ko) | 2007-03-08 |
EP1703410A3 (en) | 2007-04-11 |
US7475170B2 (en) | 2009-01-06 |
DE602005017571D1 (de) | 2009-12-24 |
EP1703410B1 (en) | 2009-11-11 |
EP1703410A2 (en) | 2006-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4589384B2 (ja) | 高速メモリモジュール | |
EP2097828B1 (en) | Dmac to handle transfers of unknown lengths | |
KR101064101B1 (ko) | 컨텐츠-종결 dma | |
JP2006293969A (ja) | データ転送装置 | |
EP2312457B1 (en) | Data processing apparatus, data processing method and computer-readable medium | |
JP2011187039A (ja) | 同時データ操作が可能なdmaエンジン | |
JP2002541693A5 (ja) | ||
US20150089095A1 (en) | Transactional memory that supports put and get ring commands | |
JPH07225727A (ja) | 計算機システム | |
JP5625737B2 (ja) | 転送装置、転送方法および転送プログラム | |
JP5233360B2 (ja) | メモリ制御装置,メモリ制御装置の制御方法および情報処理装置 | |
JP2005353041A (ja) | データ処理システム内のバス・トランザクション管理 | |
JP2009301101A (ja) | プロセッサ間通信システム、プロセッサ、プロセッサ間通信方法、および、通信方法 | |
JPH10334037A (ja) | 通信dma装置 | |
JP2007034392A (ja) | 情報処理装置及びデータ処理方法 | |
CN110958216A (zh) | 安全的在线网络分组传输 | |
CN109144742A (zh) | 通过队列交换信息的方法和处理队列的系统 | |
CN100472496C (zh) | 数据传输装置 | |
JP2011070259A (ja) | データ転送装置及びデータ転送方法 | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
JP2006313479A (ja) | 半導体集積回路装置及びデータ転送方法 | |
US10353833B2 (en) | Configurable ordering controller for coupling transactions | |
JP6303632B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
TWI230863B (en) | Input/output system and method for transferring control and data, and arbiter for coordinating data communication | |
JP4791341B2 (ja) | データ転送システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100917 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100928 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110308 |