JP2000132503A - Data transfer device - Google Patents

Data transfer device

Info

Publication number
JP2000132503A
JP2000132503A JP10302889A JP30288998A JP2000132503A JP 2000132503 A JP2000132503 A JP 2000132503A JP 10302889 A JP10302889 A JP 10302889A JP 30288998 A JP30288998 A JP 30288998A JP 2000132503 A JP2000132503 A JP 2000132503A
Authority
JP
Japan
Prior art keywords
data
initiator
buffer
controller
target
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
Application number
JP10302889A
Other languages
Japanese (ja)
Inventor
Kazuya Tanaka
和也 田中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Victor Company of Japan Ltd
Original Assignee
Victor Company of Japan Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Victor Company of Japan Ltd filed Critical Victor Company of Japan Ltd
Priority to JP10302889A priority Critical patent/JP2000132503A/en
Publication of JP2000132503A publication Critical patent/JP2000132503A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a data transfer device which can transfer data via a bus at a high speed and in a high efficiency. SOLUTION: This device transfers data via a bus and consists of an initiator, e.g. a processor I/F controller 310 which serves as a bus master, a target, e.g. an SDRAM controller 328 which receives the commands from the initiator and plural buffers, e.g. receiving buffers 320, 322 and 324 which belong to the target and hold the commands.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、プロセッサ、記憶
装置、画面表示装置、I/O装置等からなるコンピュー
タシステムにおいて、高速・効率的なデータ転送を行う
ためのデータ転送装置に関する。
The present invention relates to a data transfer device for performing high-speed and efficient data transfer in a computer system including a processor, a storage device, a screen display device, an I / O device and the like.

【0002】[0002]

【従来の技術】図5は、代表的なコンピュータシステム
の構成を示すブロック図である。同図に示すように、プ
ロセッサ10は、システムコントローラ12を介して、
SRAM22、フラッシュメモリ24、ROM26、V
RAM30、SDRAM40等の記憶装置、ディスプレ
イ32等の画面表示装置に接続される。さらに、同シス
テムは、ペリフェラルコントローラ14、PCMCIA
52、シリアルROM54、ローカルI/Oバス56、
シリアルインターフェース58及び64、ネットワーク
インターフェースカード60、I/Oインターフェース
62、キーボード66、フロッピィーディスク68、ハ
ードディスク70、パラレルインターフェース72等に
より構成される。
2. Description of the Related Art FIG. 5 is a block diagram showing a configuration of a typical computer system. As shown in FIG. 1, the processor 10 is connected via a system controller 12
SRAM 22, flash memory 24, ROM 26, V
It is connected to a storage device such as the RAM 30 and the SDRAM 40 and a screen display device such as the display 32. Further, the system includes a peripheral controller 14, a PCMCIA
52, a serial ROM 54, a local I / O bus 56,
It comprises serial interfaces 58 and 64, a network interface card 60, an I / O interface 62, a keyboard 66, a floppy disk 68, a hard disk 70, a parallel interface 72 and the like.

【0003】図6は、図5のシステムコントローラの構
成の一例を示すブロック図である。同図に示すように、
システムコントローラ12は、プロセッサI/F(イン
タフェース)ポート210、SDRAM I/Fポート
220、ROM I/Fポート230、グラフィックス
I/Fポート240、I/Oポート250を備え、さら
に、DMAコントローラ260、割り込みコントローラ
270、タイマカウンタ280、シリアルコントローラ
290を備える。
FIG. 6 is a block diagram showing an example of the configuration of the system controller shown in FIG. As shown in the figure,
The system controller 12 includes a processor I / F (interface) port 210, an SDRAM I / F port 220, a ROM I / F port 230, a graphics I / F port 240, and an I / O port 250. , An interrupt controller 270, a timer counter 280, and a serial controller 290.

【0004】従来、VME(Versa Module Europe)バ
ス、PCI(Peripheral Components Interconnect)バ
ス、ISA(Industry Standard Architecture)バス及び
その他のローカルバスでは、1つのデバイスが、そのバ
スを占有して(つまり、バスマスタとなり)データを転
送する。これらのバス上のイニシエータ(他の機器に対
して命令を発行するもの)、ターゲット(イニシエータ
から制御されるもの)にはプロセッサ、メモリ(記憶装
置)、画面表示装置、I/O装置などが接続されて、コ
ンピュータシステムが構成される。これらバスでは、同
時に2つ以上のデバイスがバスの占有を要求する場合が
ある。その場合、調停回路等によりバスの使用権を確定
する。そして、使用権をもったデバイスがその瞬間にそ
のバスを占有し(つまり、バスマスタとなり)、データ
転送を行う。
Conventionally, in a VME (Versa Module Europe) bus, a PCI (Peripheral Components Interconnect) bus, an ISA (Industry Standard Architecture) bus and other local buses, one device occupies the bus (that is, a bus master). Transfer data. A processor, a memory (storage device), a screen display device, an I / O device, and the like are connected to the initiator (that issues commands to other devices) and the target (the one that is controlled by the initiator) on these buses. Thus, a computer system is configured. On these buses, two or more devices may request occupation of the bus at the same time. In this case, the right to use the bus is determined by an arbitration circuit or the like. Then, the device having the right to use occupies the bus at that moment (that is, becomes a bus master) and performs data transfer.

【0005】特に、PCIバスではバスブリッジアーキ
テクチャを保有し、ブリッジにより切り離されている別
々のバス上であれば、コンカレントなデータ転送を実行
することが可能である。しかし、通常、上述のバスでは
データ転送において、ある瞬間に1つのデバイスのみが
バスを占有し、その他のデバイスは待たされることにな
る。
[0005] In particular, the PCI bus has a bus bridge architecture, and concurrent data transfer can be executed on separate buses separated by a bridge. However, in the above-mentioned bus, usually, in data transfer, only one device occupies the bus at a certain moment, and the other devices wait.

【0006】図7は、従来のシステムコントローラ内に
おけるデータの流れの一例を示すブロック図である。プ
ロセッサI/Fコントローラ212及びDMAコントロ
ーラ260は、イニシエータ機能のみを有する。また、
SDRAMコントローラ224、ROMコントローラ2
34及びグラフィックスポート244は、ターゲット機
能のみを有する。I/Oコントローラ254は、イニシ
エータ機能とターゲット機能の両方を有する。
FIG. 7 is a block diagram showing an example of a data flow in a conventional system controller. The processor I / F controller 212 and the DMA controller 260 have only an initiator function. Also,
SDRAM controller 224, ROM controller 2
34 and the graphics port 244 have only a target function. The I / O controller 254 has both an initiator function and a target function.

【0007】同図に示すように、SDRAMコントロー
ラ224、ROMコントローラ234、グラフィックス
ポート244及びI/Oコントローラ254は、それぞ
れ受信バッファ222、232、242及び252を有
する。そして、各バッファ222、232又は252
は、各コントローラ224、234又は254に送信さ
れたコマンド、データ等を保持する。バッファ242
は、グラフィックスポート244に送信されたコマン
ド、データ等を保持する。
As shown in FIG. 1, the SDRAM controller 224, the ROM controller 234, the graphics port 244, and the I / O controller 254 have reception buffers 222, 232, 242, and 252, respectively. Then, each buffer 222, 232 or 252
Holds commands, data, and the like transmitted to each controller 224, 234, or 254. Buffer 242
Holds commands, data, and the like transmitted to the graphics port 244.

【0008】[0008]

【発明が解決しようとする課題】しかしながら、以上の
ような従来技術には、次のような不都合がある。
However, the above prior arts have the following disadvantages.

【0009】(1) 2つ以上のイニシエータからの要
求により、バス上のターゲットへデータを転送すると
き、イニシエータ側でのバスの使用権のハンドシェーク
により、バスマスタデバイスを決定する。このとき、使
用権を獲得できなかったイニシエータは、使用権を獲得
したイニシエータ(つまり、バスマスタ)がデータ転送
を完了するまで、待たされることになる。つまり、バス
の使用権を獲得できなかったイニシエータは、次の処理
(データ転送)を行うことができず、実行時間(バスト
ランザクション)が増大する。
(1) When data is transferred to a target on the bus in response to a request from two or more initiators, a bus master device is determined by handshaking the right to use the bus on the initiator side. At this time, the initiator that has failed to acquire the usage right waits until the initiator (that is, the bus master) that has obtained the usage right completes the data transfer. That is, the initiator that cannot acquire the right to use the bus cannot perform the next process (data transfer), and the execution time (bus transaction) increases.

【0010】(2) システム上でダイレクトメモリア
クセス転送(DMA転送)を行っている最中では、プロ
セッサはバスを所有できず、その瞬間アクセスを待たさ
れることになる。これでは、近年のRISC(Reduced I
nstruction Set Computer)プロセッサの機能を効率よく
働かせることはできない。
(2) While direct memory access transfer (DMA transfer) is being performed on the system, the processor cannot own the bus, and waits for access at that moment. In this case, recent RISC (Reduced I
nstruction Set Computer) The function of the processor cannot work efficiently.

【0011】(3) マルチタスク、マルチスレッド、
マルチプロセスに代表される並列実行プログラムやデー
タを共有するようなシステムにおいて、このようなシス
テムの能力の向上を図るために、バストランザクション
短縮やコンカレントデータ転送が要求されるが、ISA
バス、VMEバス等では不向きである。また、PCIバ
スではこれらの要求は多少満たされるが、データを共有
するシステムを構築する上では効率のよい転送はできな
い。また、2箇所以上のデバイスからのバースト転送等
の高速データ転送を行う場合に、その分散比率を適時最
適化することができない。
(3) Multitask, multithread,
In systems that share parallel execution programs and data typified by multi-processes, shortening of bus transactions and concurrent data transfer are required to improve the performance of such systems.
It is not suitable for buses, VME buses and the like. Although the PCI bus satisfies these requirements to some extent, efficient transfer is not possible in constructing a system for sharing data. In addition, when high-speed data transfer such as burst transfer from two or more devices is performed, the dispersion ratio cannot be optimized in a timely manner.

【0012】本発明は、以上の点に着目してなされたも
のであり、その目的はプロセッサ、画面表示装置、メモ
リ(記憶装置)、I/O装置等の複数の装置を使用する
システムのパファーマンスを向上させるための手段とし
て、バスのデータ転送を高速に実行できるデータ転送装
置を提供することである。
The present invention has been made in view of the above points, and has as its object the performance of a system using a plurality of devices such as a processor, a screen display device, a memory (storage device), and an I / O device. As a means for improving the performance, it is an object to provide a data transfer device capable of executing bus data transfer at high speed.

【0013】また、高速にデータ転送を行うだけでな
く、第1のイニシエータが送信したデータの全てを第1
のターゲットが処理し終わる前に、第1のイニシエータ
がバスを開放し、第1のイニシエータが第2のターゲッ
トへ新たなデータ転送を開始することや、第2のイニシ
エータが新たなバスマスターとなって新たなデータ転送
を開始すること等が可能なデータ転送装置を提供するこ
とである。
In addition to the high-speed data transfer, all data transmitted by the first initiator are transferred to the first initiator.
Before the first target finishes processing, the first initiator releases the bus, the first initiator starts a new data transfer to the second target, or the second initiator becomes the new bus master. To provide a data transfer device capable of starting new data transfer.

【0014】[0014]

【課題を解決するための手段】前記目的を達成するため
に、請求項1の発明は、バスを介してデータ転送を行う
データ転送装置であって、バスマスタとなるイニシエー
タと、前記イニシエータからコマンドを受信するターゲ
ットと、前記ターゲットに属しかつ前記コマンドを保持
する複数の受信バッファと、を備えることを特徴とす
る。
According to one aspect of the present invention, there is provided a data transfer apparatus for performing data transfer via a bus, comprising: an initiator serving as a bus master; and a command transmitted from the initiator. It comprises a target to receive, and a plurality of reception buffers belonging to the target and holding the command.

【0015】前記の受信バッファとしては、(1)プロ
セッサインタフェースポートからメモリインタフェース
ポートにデータ転送される際に、ライトコマンドをデコ
ードでき、受信データを保持できるメモリインタフェー
スポートのバッファ、(2)プロセッサインタフェース
ポートから画面表示装置インタフェースポートにデータ
転送される際に、ライトコマンドをデコードでき、受信
データを保持できる画面表示装置インタフェースポート
のバッファ、(3)プロセッサインタフェースポートか
らI/O装置インタフェースポートにデータ転送される
際に、ライトコマンドをデコードでき、受信データを保
持できるI/O装置インタフェースポートのバッファ、
(4)メモリインタフェースポートから別のメモリイン
タフェースポートにデータ転送される際に、ライトコマ
ンドをデコードでき、受信データを保持できるメモリイ
ンタフェースポートのバッファ、(5)メモリインタフ
ェースポートから画面表示装置インタフェースポートに
データ転送される際に、ライトコマンドをデコードで
き、受信データを保持できる画面表示装置インタフェー
スポートのバッファ、(6)メモリインタフェースポー
トからI/O装置インタフェースポートにデータ転送さ
れる際に、ライトコマンドをデコードでき、受信データ
を保持できるI/O装置インタフェースポートのバッフ
ァ、(7)画面表示装置インタフェースポートからメモ
リインタフェースポートにデータ転送される際に、ライ
トコマンドをデコードでき、受信データを保持できるメ
モリインタフェースポートのバッファ、(8)画面表示
装置インタフェースポートからI/O装置インタフェー
スポートにデータ転送される際に、ライトコマンドをデ
コードでき、受信データを保持できるI/O装置インタ
フェースポートのバッファ、(9)I/O装置インタフ
ェースポートからメモリインタフェースポートにデータ
転送される際に、ライトコマンドをデコードでき、受信
データを保持できるメモリインタフェースポートのバッ
ファ、(10)I/O装置インタフェースポートから画
面表示装置インタフェースポートにデータ転送される際
に、ライトコマンドをデコードでき、受信データを保持
できる画面表示装置インタフェースポートのバッファ、
等が例示される。
The reception buffer includes: (1) a buffer of a memory interface port capable of decoding a write command and retaining received data when data is transferred from the processor interface port to the memory interface port; When data is transferred from the port to the screen display device interface port, a buffer of the screen display device interface port capable of decoding a write command and holding received data; (3) data transfer from the processor interface port to the I / O device interface port A buffer of an I / O device interface port capable of decoding a write command and holding received data;
(4) When data is transferred from one memory interface port to another memory interface port, a buffer of the memory interface port that can decode a write command and hold received data, and (5) from the memory interface port to the screen display device interface port. A buffer of a screen display device interface port capable of decoding a write command when data is transferred and holding received data, and (6) transferring a write command when data is transferred from a memory interface port to an I / O device interface port. A buffer of an I / O device interface port that can decode and hold received data, and (7) decodes a write command when data is transferred from the screen display device interface port to the memory interface port. A buffer of a memory interface port capable of holding received data, and (8) an I / O capable of decoding a write command and holding received data when data is transferred from the screen display device interface port to the I / O device interface port. (9) I / O buffer of a memory interface port capable of decoding a write command and retaining received data when data is transferred from the I / O device interface port to the memory interface port; When data is transferred from the device interface port to the screen display device interface port, a buffer of the screen display device interface port capable of decoding a write command and holding received data;
Etc. are exemplified.

【0016】また、受信バッファは、イニシエータのポ
ート毎に設けることが好ましいが、プロセッサのポート
用として一つ、プロセッサ以外の複数のイニシエータの
ポート用としてもう一つというように必ずしもイニシエ
ータのポート毎でなくても良い。
The receiving buffer is preferably provided for each port of the initiator. However, one receiving buffer is preferably provided for each port of the initiator, and another buffer is provided for each port of a plurality of initiators other than the processor. You don't have to.

【0017】請求項2の発明は、バスを介してデータ転
送を行うデータ転送装置であって、バスマスタとなるイ
ニシエータと、前記イニシエータへデータを送信するタ
ーゲットと、前記ターゲットに属しかつ前記データを保
持する複数の送信バッファと、を備えることを特徴とす
る。
According to a second aspect of the present invention, there is provided a data transfer apparatus for transferring data via a bus, comprising: an initiator serving as a bus master; a target transmitting data to the initiator; and a target belonging to the target and holding the data. And a plurality of transmission buffers.

【0018】前記送信バッファとしては、(1)プロセ
ッサインタフェースポートからメモリインタフェースポ
ートにデータ転送される際に、デコードしたリードコマ
ンドに対応する送信データを保持できるプロセッサイン
タフェースポートの送信バッファ、(2)プロセッサイ
ンタフェースポートから画面表示装置インタフェースポ
ートにデータ転送される際に、デコードしたリードコマ
ンドに対応する送信データを保持できるプロセッサイン
タフェースポートの送信バッファ、(3)プロセッサイ
ンタフェースポートからI/O装置インタフェースポー
トにデータ転送される際に、デコードしたリードコマン
ドに対応する送信データを保持できるプロセッサインタ
フェースポートの送信バッファ、(4)第1のメモリイ
ンタフェースポートから第2のメモリインタフェースポ
ートにデータ転送される際に、デコードしたリードコマ
ンドに対応する送信データを保持できる第1のメモリイ
ンタフェースポートの送信バッファ、(5)メモリイン
タフェースポートから画面表示装置インタフェースポー
トにデータ転送される際に、デコードしたリードコマン
ドに対応する送信データを保持できるメモリインタフェ
ースポートの送信バッファ、(6)メモリインタフェー
スポートからI/O装置インタフェースポートにデータ
転送される際に、デコードしたリードコマンドに対応す
る送信データを保持できるメモリインタフェースポート
の送信バッファ、(7)画面表示装置インタフェースポ
ートからメモリインタフェースポートにデータ転送され
る際に、デコードしたリードコマンドに対応する送信デ
ータを保持できる画面表示装置インタフェースポートの
送信バッファ、(8)画面表示装置インタフェースポー
トからI/O装置インタフェースポートにデータ転送さ
れる際に、デコードしたリードコマンドに対応する送信
データを保持できる画面表示装置インタフェースポート
の送信バッファ、(9)I/O装置インタフェースポー
トからメモリインタフェースポートにデータ転送される
際に、デコードしたリードコマンドに対応する送信デー
タを保持できるI/O装置インタフェースポートの送信
バッファ、(10)I/O装置インタフェースポートか
ら画面表示装置インタフェースポートにデータ転送され
る際に、デコードしたリードコマンドに対応する送信デ
ータを保持できるI/O装置インタフェースポートの送
信バッファ、等が例示される。
The transmission buffer includes: (1) a transmission buffer of a processor interface port capable of holding transmission data corresponding to a decoded read command when data is transferred from the processor interface port to the memory interface port; A transmission buffer of a processor interface port capable of holding transmission data corresponding to a decoded read command when data is transferred from the interface port to the screen display device interface port; (3) data from the processor interface port to the I / O device interface port A transmission buffer of a processor interface port capable of holding transmission data corresponding to a decoded read command when transferred; (4) a first memory interface port; When data is transferred from the first memory interface port to the second memory interface port, a transmission buffer of the first memory interface port capable of holding transmission data corresponding to the decoded read command, (5) from the memory interface port to the screen display device interface port A transmission buffer of a memory interface port capable of holding transmission data corresponding to a decoded read command when data is transferred, and (6) a decoding buffer read when data is transferred from the memory interface port to the I / O device interface port. A transmission buffer of a memory interface port capable of holding transmission data corresponding to a command; (7) a read command decoded when data is transferred from the screen display device interface port to the memory interface port; (8) A transmission buffer of a screen display device interface port capable of holding transmission data corresponding to (8), when data is transferred from the screen display device interface port to the I / O device interface port, transmission data corresponding to a decoded read command is transmitted. (9) I / O device interface port capable of holding transmission data corresponding to a decoded read command when data is transferred from the I / O device interface port to the memory interface port (10) Transmission of an I / O device interface port capable of holding transmission data corresponding to a decoded read command when data is transferred from the I / O device interface port to the screen display device interface port. Communication buffer, and the like.

【0019】また、送信バッファは、イニシエータのポ
ート毎に設けることが好ましいが、プロセッサのポート
用として一つ、プロセッサ以外の複数のイニシエータの
ポート用としてもう一つというように必ずしもイニシエ
ータのポート毎でなくても良い。
The transmission buffer is preferably provided for each port of the initiator. However, one transmission buffer is always provided for each port of the initiator, and another transmission buffer is provided for each port of a plurality of initiators other than the processor. You don't have to.

【0020】請求項3の発明は、請求項1の発明におい
て、複数の前記受信バッファが同一の前記ターゲットへ
データを転送する際に、前記受信バッファ間におけるデ
ータ処理の優先順位を決定するための調停回路を備えた
ことを特徴とする。
According to a third aspect of the present invention, in the first aspect of the present invention, when a plurality of the receiving buffers transfer data to the same target, a priority of data processing between the receiving buffers is determined. An arbitration circuit is provided.

【0021】複数のイニシエータが発行した複数のコマ
ンドが、同一のターゲットに属する複数のバッファにそ
れぞれ保持され、デコードされる。そして、調停回路に
よって決定された優先順位の高いバッファに保持された
コマンドから順に処理される。調停回路の優先順位の変
更は、あるデバイスに関して一時的に多くのデータ転送
を処理したい、あるいはあるデバイスを他のデバイスに
対して優先的に処理したい、ということを実現させるた
めである。優先順位は、リアルタイムに変更される。
A plurality of commands issued by a plurality of initiators are respectively held in a plurality of buffers belonging to the same target and decoded. Then, the commands are sequentially processed from the command held in the buffer with the highest priority determined by the arbitration circuit. The change of the priority of the arbitration circuit is for realizing that it is desired to temporarily process a large amount of data transfer with respect to a certain device or to preferentially process a certain device with respect to another device. The priority is changed in real time.

【0022】請求項4の発明は、請求項2の発明におい
て、同一の前記ターゲットに属する複数の前記送信バッ
ファが各々のイニシエータへデータを転送する際に、前
記送信バッファ間におけるデータ処理の優先順位を決定
するための調停回路を備えたことを特徴とする。
According to a fourth aspect of the present invention, in the second aspect of the present invention, when a plurality of transmission buffers belonging to the same target transfer data to respective initiators, priority of data processing among the transmission buffers is determined. Arbitration circuit for determining

【0023】複数のイニシエータが発行した複数のコマ
ンドが、同一のターゲットに属するバッファに保持さ
れ、デコードされ、ターゲットポートの送信バッファに
データが保持される。この送信バッファは、第1のイニ
シエータ用、第2のイニシエータ用の如く複数設けられ
ている。そして、調停回路によって決定された優先順位
の高い送信バッファに保持されているデータから順に処
理される。優先順位は、リアルタイムに変更される。
A plurality of commands issued by a plurality of initiators are held in a buffer belonging to the same target, decoded, and data is held in a transmission buffer of a target port. A plurality of transmission buffers are provided for the first initiator and for the second initiator. Then, the data is sequentially processed from the data held in the transmission buffer having the higher priority determined by the arbitration circuit. The priority is changed in real time.

【0024】請求項5の発明は、バスを介してデータ転
送を行うデータ転送装置であって、バスマスタとなるイ
ニシエータと、前記イニシエータからコマンドを受信す
るターゲットとを含み、前記ターゲットが、前記コマン
ドを保持する受信バッファを備え、前記イニシエータ
が、前記受信バッファが空でないときに、自分が発行し
たコマンドを保持する送信バッファを備えることを特徴
とする。
According to a fifth aspect of the present invention, there is provided a data transfer device for transferring data via a bus, comprising: an initiator serving as a bus master; and a target receiving a command from the initiator, wherein the target transmits the command. The initiator is provided with a transmission buffer for holding a command issued by the initiator when the reception buffer is not empty.

【0025】ターゲットの受信バッファが空でないとき
はイニシエータからコマンドを送信できないとすると、
イニシエータはターゲットの受信バッファが空になるま
で処理待ち状態となってしまう。そこで、イニシエータ
に送信バッファを設け、送信バッファにコマンド等を入
れられれば、ターゲットの受信バッファにコマンド等を
入れられなくても、イニシエータが次の処理を開始する
ことができるようになる。
If it is assumed that a command cannot be transmitted from the initiator when the target reception buffer is not empty,
The initiator waits for processing until the target reception buffer becomes empty. Therefore, if a transmission buffer is provided in the initiator and a command or the like can be put in the transmission buffer, the initiator can start the next process even if a command or the like cannot be put in the target reception buffer.

【0026】[0026]

【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明をする。
Embodiments of the present invention will be described below with reference to the drawings.

【0027】本発明は、図5に示すようなコンピュータ
システムにおいて、すべてのトランザクションでデータ
転送を効率的に処理することによって、各イニシエータ
側のスループットの向上を図るための装置である。
The present invention is an apparatus for improving the throughput of each initiator by efficiently processing data transfer in all transactions in a computer system as shown in FIG.

【0028】図1は、第1実施形態に係るバスマスタ機
能をもつデバイス(イニシエータ)が発行したライトコ
マンドによって、イニシエータからターゲットへデータ
が転送される際のデータの流れを示す図である。
FIG. 1 is a diagram showing a data flow when data is transferred from an initiator to a target by a write command issued by a device (initiator) having a bus master function according to the first embodiment.

【0029】便宜上、ROMコントローラ334、SD
RAMコントローラ328およびグラフィックスポート
348にはバスマスタ機能がないとする。また、プロセ
ッサI/Fコントローラ310、I/Oコントローラ3
56、DMAコントローラ260はバスマスタ機能を搭
載しているとする。
For convenience, the ROM controller 334, SD
Assume that the RAM controller 328 and the graphics port 348 do not have a bus master function. Further, the processor I / F controller 310 and the I / O controller 3
56, it is assumed that the DMA controller 260 has a bus master function.

【0030】図1では、ROMコントローラ334に
は、プロセッサI/Fコントローラ310からしか、デ
ータは転送されないというシステム構成を取る。このた
め、受信バッファは、プロセッサI/Fコントローラ3
10に接続される受信バッファ(BUF)330だけで
よい。
In FIG. 1, a system configuration is adopted in which data is transferred to the ROM controller 334 only from the processor I / F controller 310. For this reason, the reception buffer is the processor I / F controller 3
Only the reception buffer (BUF) 330 connected to 10 is required.

【0031】ところがSDRAMコントローラ328に
は、プロセッサI/Fコントローラ310、I/Oコン
トローラ356及びDMAコントローラ260のそれぞ
れからコマンドが転送されるため、各イニシエータ毎に
受信バッファ320、322及び324を備える。ま
た、グラフィックスポート348も同様にそれぞれ受信
バッファ340、342及び344を備える。I/Oコ
ントローラ356には、プロセッサI/Fコントローラ
310およびDMAコントローラ260からデータが転
送されるため、2つの受信バッファ(350と352)
を備える。
However, the SDRAM controller 328 includes reception buffers 320, 322, and 324 for each initiator because commands are transferred from each of the processor I / F controller 310, the I / O controller 356, and the DMA controller 260. The graphics port 348 also includes reception buffers 340, 342, and 344, respectively. Since data is transferred from the processor I / F controller 310 and the DMA controller 260 to the I / O controller 356, two reception buffers (350 and 352) are provided.
Is provided.

【0032】イニシエータが、ターゲットの受信バッフ
ァへライトコマンドとデータを入力する。例えば、プロ
セッサI/Fコントローラ310がイニシエータとな
り、SDRAMコントローラ328がターゲットとなっ
た場合は、プロセッサI/Fコントローラ310から受
信バッファ320へライトコマンドとデータが入力され
る。ライトコマンドとしてはポステッドライト方式を採
用する。また、バースト転送にも対応可能とする。
An initiator inputs a write command and data to a target reception buffer. For example, when the processor I / F controller 310 is the initiator and the SDRAM controller 328 is the target, a write command and data are input from the processor I / F controller 310 to the reception buffer 320. The posted write method is used as the write command. It is also possible to support burst transfer.

【0033】データフローについては図1の矢印のとお
りである。すなわち、I/Oコントローラ356から送
出されたデータは、受信バッファ322を経由してSD
RAMコントローラ328又は受信バッファ342を経
由してグラフィックスポート348のいずれかに転送さ
れる。
The data flow is as shown by the arrow in FIG. That is, the data transmitted from the I / O controller 356 is transmitted to the SD buffer via the reception buffer 322.
The data is transferred to either the graphics port 348 via the RAM controller 328 or the reception buffer 342.

【0034】同様に、DMAコントローラ260から送
出されたデータは、受信バッファ324を経由してSD
RAMコントローラ328、受信バッファ344を経由
してグラフィックスポート348、又は受信バッファ3
52を経由してI/Oコントローラ356のいずれかに
転送される。
Similarly, data sent from the DMA controller 260 is transmitted to the SD buffer via the reception buffer 324.
Graphics port 348 via RAM controller 328, receive buffer 344, or receive buffer 3
The data is transferred to any one of the I / O controllers 356 via the communication device 52.

【0035】同様に、プロセッサI/Fコントローラ3
10から送出されたデータは、受信バッファ320を経
由してSDRAMコントローラ328、受信バッファ3
30を経由してROMコントローラ334、受信バッフ
ァ340を経由してグラフィックスポート348、又は
受信バッファ350を経由してI/Oコントローラ35
6のいずれかに転送される。
Similarly, the processor I / F controller 3
The data sent out from the SDRAM controller 328 and the reception buffer 3
30, the ROM controller 334, the reception buffer 340, the graphics port 348, or the reception buffer 350, the I / O controller 35.
6 is transferred.

【0036】ターゲットがイニシエータ毎に受信バッフ
ァを備えることにより、イニシエータはターゲットの受
信バッファにコマンド、データ等を転送した後、すぐに
次のオペレーションサイクルに入ることができるため、
イニシエータは効率よくデータを処理できる。
Since the target is provided with the reception buffer for each initiator, the initiator can immediately enter the next operation cycle after transferring commands, data, etc. to the reception buffer of the target.
The initiator can process data efficiently.

【0037】具体的には、例えばSDRAM328が、
プロセッサI/Fコントローラ310用の受信バッファ
320と、I/Oコントローラ356用の受信バッファ
322と、DMAコントローラ260用の受信バッファ
324とを備えることにより、プロセッサI/Fコント
ローラ310は受信バッファ320にコマンド、データ
等を転送した後、すぐに次のオペレーションサイクルに
入ることができるため、プロセッサI/Fコントローラ
310は効率よくデータを処理できる。
Specifically, for example, the SDRAM 328
By providing the reception buffer 320 for the processor I / F controller 310, the reception buffer 322 for the I / O controller 356, and the reception buffer 324 for the DMA controller 260, the processor I / F controller 310 Since the next operation cycle can be started immediately after the transfer of the command, the data, and the like, the processor I / F controller 310 can process the data efficiently.

【0038】このように各イニシエータ毎に受信バッフ
ァを備えることにより、各イニシエータはコマンド転送
を迅速に処理し、バスを開放することができる。しか
し、各イニシエータのバス使用頻度は必ずしも同程度と
は限らない。このため、使用頻度の高いイニシエータに
ついては1つのイニシエータに対して1つの受信バッフ
ァを備え、使用頻度の低いイニシエータについては複数
のイニシエータに対して1つの受信バッファを備えると
しても良い。
By providing a reception buffer for each initiator in this way, each initiator can quickly process a command transfer and release the bus. However, the bus usage frequency of each initiator is not always the same. For this reason, an initiator frequently used may be provided with one reception buffer for one initiator, and an initiator less frequently used may be provided with one reception buffer for a plurality of initiators.

【0039】なお、コントロール332、326、34
6及び354は、それぞれ配下に持つ受信バッファ(B
UF)群を制御し、コマンド及びデータをデコードする
機能を保有する。
The controls 332, 326, 34
6 and 354 are reception buffers (B
UF) group, and has a function of decoding commands and data.

【0040】図2は、第2実施形態に係るバスマスタ機
能をもつデバイス(イニシエータ)が発行したリードコ
マンドによって、ターゲットからイニシエータへデータ
が転送される際のデータの流れを示す図である。
FIG. 2 is a diagram showing a data flow when data is transferred from a target to an initiator by a read command issued by a device having a bus master function (initiator) according to the second embodiment.

【0041】ROMコントローラ435に接続された受
信バッファ432が、プロセッサI/Fコントローラ4
10からリードコマンドを受信すると、ROMコントロ
ーラ435から送信バッファ436を経由して、プロセ
ッサI/Fコントローラ410に要求されたデータが転
送される。同様に、受信バッファ433が、I/Oコン
トローラ450からリードコマンドを受信すると、RO
Mコントローラ435から送信バッファ437を経由し
て、I/Oコントローラ450に要求されたデータが転
送される。同様に、受信バッファ434が、DMAコン
トローラ460からリードコマンドを受信すると、RO
Mコントローラ435から送信バッファ438を経由し
て、DMAコントローラ460に要求されたデータが転
送される。
The reception buffer 432 connected to the ROM controller 435 is used as the processor I / F controller 4
When a read command is received from the CPU 10, the requested data is transferred from the ROM controller 435 to the processor I / F controller 410 via the transmission buffer 436. Similarly, when receiving buffer 433 receives a read command from I / O controller 450, RO
The requested data is transferred from the M controller 435 to the I / O controller 450 via the transmission buffer 437. Similarly, when receiving buffer 434 receives a read command from DMA controller 460, RO
The requested data is transferred from the M controller 435 to the DMA controller 460 via the transmission buffer 438.

【0042】また、受信バッファ422が、プロセッサ
I/Fコントローラ410からリードコマンドを受信す
ると、SDRAMコントローラ425から送信バッファ
426を経由して、プロセッサI/Fコントローラ41
0に要求されたデータが転送される。同様に、受信バッ
ファ423が、I/Oコントローラ450からリードコ
マンドを受信すると、送信バッファ427を経由して、
I/Oコントローラ450にデータが転送される。同様
に、受信バッファ424が、DMAコントローラ460
からリードコマンドを受信すると、送信バッファ428
を経由して、DMAコントローラ460にデータが転送
される。
When the reception buffer 422 receives a read command from the processor I / F controller 410, the reception buffer 422 sends the read command from the SDRAM controller 425 via the transmission buffer 426 to the processor I / F controller 41.
The requested data is transferred to 0. Similarly, when the reception buffer 423 receives a read command from the I / O controller 450, it passes through the transmission buffer 427,
The data is transferred to the I / O controller 450. Similarly, the reception buffer 424 controls the DMA controller 460
When a read command is received from the
, Data is transferred to the DMA controller 460.

【0043】また、受信バッファ442がリードコマン
ドを受信すると、送信バッファ446を経由して、プロ
セッサI/Fコントローラ410にデータが転送され
る。同様に、受信バッファ443がリードコマンドを受
信すると、送信バッファ447を経由して、I/Oコン
トローラ450にデータが転送される。同様に、受信バ
ッファ444がリードコマンドを受信すると、送信バッ
ファ448を経由して、DMAコントローラ460にデ
ータが転送される。
When the reception buffer 442 receives the read command, data is transferred to the processor I / F controller 410 via the transmission buffer 446. Similarly, when the reception buffer 443 receives the read command, the data is transferred to the I / O controller 450 via the transmission buffer 447. Similarly, when the reception buffer 444 receives the read command, data is transferred to the DMA controller 460 via the transmission buffer 448.

【0044】I/Oコントローラ450に関しては、受
信バッファ452がリードコマンドを受信すると、送信
バッファ454を経由してプロセッサI/Fコントロー
ラ410にデータが転送される。受信バッファ453が
リードコマンドを受信すると、送信バッファ455を経
由してDMAコントローラ460にデータが送信され
る。なお、I/Oブリッジ458はバスブリッジ機能を
有するので、あるI/Oデバイス456と別のI/Oデ
バイス457との間でデータを転送する場合、データが
I/Oコントローラ450を経由することはない。
Regarding the I / O controller 450, when the reception buffer 452 receives the read command, data is transferred to the processor I / F controller 410 via the transmission buffer 454. When the reception buffer 453 receives the read command, data is transmitted to the DMA controller 460 via the transmission buffer 455. Since the I / O bridge 458 has a bus bridge function, when data is transferred between one I / O device 456 and another I / O device 457, the data must pass through the I / O controller 450. There is no.

【0045】ターゲットがイニシエータ毎に送信バッフ
ァを備えることにより、ターゲットは送信バッファにデ
ータ等を転送した後、すぐに次のオペレーションサイク
ルに入ることができるため、ターゲットは効率よくデー
タを処理できる。
Since the target has the transmission buffer for each initiator, the target can immediately start the next operation cycle after transferring data or the like to the transmission buffer, so that the target can process the data efficiently.

【0046】具体的には、例えばSDRAMコントロー
ラ425が、プロセッサI/Fコントローラ用の送信バ
ッファ426と、I/Oコントローラ用の送信バッファ
427と、DMAコントローラ用の送信バッファ428
とを備えることにより、SDRAMコントローラ425
は送信バッファ426にデータ等を転送した後、すぐに
次のオペレーションサイクルに入ることができるため、
SDRAMコントローラ425は効率よくデータを処理
できる。
More specifically, for example, the SDRAM controller 425 includes a transmission buffer 426 for the processor I / F controller, a transmission buffer 427 for the I / O controller, and a transmission buffer 428 for the DMA controller.
And the SDRAM controller 425
Can transfer to the next operation cycle immediately after transferring data and the like to the transmission buffer 426.
The SDRAM controller 425 can process data efficiently.

【0047】なお、あるターゲットからあるイニシエー
タへデータ転送される頻度が少ない場合は、かかるイニ
シエータ専用の送信バッファを必ずしも備えなくても良
い。例えば、ターゲットAからイニシエータBへのデー
タ転送は頻繁に行われるが、ターゲットAからイニシエ
ータC、Dへのデータ転送の頻度が少ない場合は、ター
ゲットAは、イニシエータB専用の送信バッファを1つ
と、イニシエータC及びD用の送信バッファを1つ備え
るとしても良い。
When the frequency of data transfer from a certain target to a certain initiator is low, it is not always necessary to provide a transmission buffer dedicated to such an initiator. For example, data transfer from the target A to the initiator B is performed frequently, but when the data transfer from the target A to the initiators C and D is infrequent, the target A includes one transmission buffer dedicated to the initiator B, One transmission buffer for the initiators C and D may be provided.

【0048】次に、インタフェースポートの概要につい
て説明する。図3は、第3実施形態に係るスレーブ機能
しか持たないデバイスのインタフェースポートの概要を
示すブロック図である。インタフェースポート500
は、スレーブ機能しか持たない(つまり、ターゲットに
はなるが、イニシエータにはならない)デバイス510
に接続する。例えば、図1に示したROM26、VRA
M30、SDRAM40等に接続する。また、インタフ
ェースポート500は、イニシエータが発行するリード
コマンドやライトコマンドに対してデータ転送のフロー
を持つ。受信バッファ521、522、523は、イニ
シエータ(不図示)から送られてくるライトコマンド、
アドレス、データ等を保持し、ライト・コントロール5
25へ転送する。受信バッファ531、532、533
は、イニシエータから送られてくるリードコマンド、ア
ドレス等を保持し、リード・コントロール535へ転送
する。送信バッファ541、542、543は、イニシ
エータへそのイニシエータによって要求されたデータを
転送する。
Next, an outline of the interface port will be described. FIG. 3 is a block diagram showing an outline of an interface port of a device having only a slave function according to the third embodiment. Interface port 500
Has only a slave function (ie, is a target but not an initiator).
Connect to For example, the ROM 26 shown in FIG.
M30, SDRAM40, etc. The interface port 500 has a data transfer flow for a read command or a write command issued by the initiator. The reception buffers 521, 522, and 523 include a write command sent from an initiator (not shown),
Holds addresses, data, etc., and performs write control 5.
Transfer to 25. Receive buffers 531, 532, 533
Holds a read command, an address, and the like sent from the initiator, and transfers the read command, the address, and the like to the read control 535. The transmission buffers 541, 542, 543 transfer the data requested by the initiator to the initiator.

【0049】ライト・コントロール525が、受信バッ
ファ521〜3を制御する。リード・コントロール53
5が送信バッファ541〜3を制御する。各コントロー
ル(525と535)の優先順位はインターフェースポ
ート内バス用のアービタ、すなわち調停回路550が決
定する。
The write control 525 controls the reception buffers 521 to 521. Read control 53
5 controls the transmission buffers 541 to 3. The priority of each control (525 and 535) is determined by the arbiter for the bus in the interface port, that is, the arbitration circuit 550.

【0050】図7に示すように、SDRAMコントロー
ラ224が1つの受信バッファ222しか有しない装置
において、まずプロセッサI/Fコントローラ212か
ら受信バッファ222へデータが転送され、次にI/O
コントローラ254から受信バッファ222へデータが
転送され、最後にDMAコントローラ260から受信バ
ッファ222へデータが転送された場合、受信バッファ
がFIFO(先入れ先出し)型のバッファであればデー
タが転送された順序に従ってSDRAM224はデータ
を処理する。また、受信バッファがLIFO(後入れ先
出し)型のバッファであればデータが転送された順序と
は逆の順序でSDRAM224はデータを処理する。
As shown in FIG. 7, in a device in which SDRAM controller 224 has only one reception buffer 222, data is first transferred from processor I / F controller 212 to reception buffer 222, and then I / O
When data is transferred from the controller 254 to the receiving buffer 222 and finally data is transferred from the DMA controller 260 to the receiving buffer 222, if the receiving buffer is a FIFO (first-in first-out) type buffer, the SDRAM 224 follows the order in which the data was transferred. Processes the data. If the reception buffer is a LIFO (last in, first out) buffer, the SDRAM 224 processes the data in the reverse order of the order in which the data was transferred.

【0051】しかし、本実施形態においては、調停回路
によって決定された優先順位に従ってデータが処理され
る。つまり、受信バッファ521、522、523の順
でデータを受信した場合であっても、データを受信した
順序の通り又はそれと逆の順序でデータが処理されると
は限らない。
However, in this embodiment, data is processed according to the priority determined by the arbitration circuit. That is, even when data is received in the order of the reception buffers 521, 522, and 523, the data is not always processed in the order in which the data was received or in the reverse order.

【0052】ここで、同一のイニシエータからライトコ
マンドとリードコマンドの2つのコマンドが発生してい
ることがある。この場合、まずライトコマンドがライト
コマンド用受信バッファ(BUF)521に入力され、
ポステッドライト方式のため受信バッファ521の中で
そのライトコマンドが止まっている間に、リードコマン
ドがリードコマンド用受信バッファ531に入力される
ことがありうる。このとき、ライトコマンドがライトコ
マンド用受信バッファに入力されたのが先か、リードコ
マンドがリードコマンド用受信バッファに入力されたの
が先かを、認識する回路が必要である。仮に、上述のよ
うなときでは、ライトコマンドを処理してから、その後
にリードコマンドを処理する必要がある。逆に、リード
コマンドの入力がライトコマンドの入力より先になされ
た場合は、リードコマンドを処理してからライトコマン
ドを処理しなければならない。このような回路を備える
ことにより、一のイニシエータから一のターゲットへ、
リード・コマンドとライト・コマンドの2つのコマンド
が発行されても、コマンドの追い越し(先に発行された
コマンドを後から処理する)は発生せず、矛盾のないデ
ータ転送が確立できる。
Here, two commands, a write command and a read command, may be generated from the same initiator. In this case, first, the write command is input to the write command reception buffer (BUF) 521,
While the write command is stopped in the reception buffer 521 due to the posted write method, the read command may be input to the read command reception buffer 531. At this time, a circuit for recognizing whether the write command is input to the write command receiving buffer first or the read command is input to the read command receiving buffer first is required. In such a case, it is necessary to process a write command and then process a read command. Conversely, when a read command is input before a write command is input, the read command must be processed before the write command is processed. By providing such a circuit, from one initiator to one target,
Even if two commands, a read command and a write command, are issued, no overtaking of the command (the previously issued command is processed later) does not occur, and data transfer without contradiction can be established.

【0053】同一のイニシエータからライトコマンドと
リードコマンドの2つのコマンドが発生している場合に
は、上記のようにコマンドの追い越しを禁止する必要が
あるが、異なるイニシエータから発行されたコマンドに
ついてはそのような追い越しを禁止する必要はない。
When two commands, a write command and a read command, are issued from the same initiator, it is necessary to prohibit the overtaking of the command as described above. However, for a command issued from a different initiator, It is not necessary to prohibit such overtaking.

【0054】プロセッサ(不図示)が、調停回路550
の調停手法を設定する。当然、調停回路550は、各タ
ーゲットのインターフェースポート500毎に必要であ
る。調停回路550は、イニシエータからのリードコマ
ンドを保持するバッファ(531〜533)、イニシエ
ータからのライトコマンドを保持するバッファ(521
〜523)、イニシエータへ送信するデータを保持する
バッファ(541〜543)について調停(アービトレ
ーション)をおこなわなければならない。
A processor (not shown) includes an arbitration circuit 550
Set the arbitration method of Of course, the arbitration circuit 550 is required for each interface port 500 of each target. The arbitration circuit 550 includes buffers (531-533) for holding read commands from the initiator and buffers (521) for holding write commands from the initiator.
523), arbitration must be performed on the buffers (541 to 543) that hold data to be transmitted to the initiator.

【0055】前述のように調停回路は各ポートごとに存
在する。そして、各調停回路における調停手法として
は、固定優先方式、ラウンド・ロビン方式、シングルレ
ベル方式等が採用できる。そして、それらをどのように
組み合わせるかを可変とする。つまり、固定優先方式と
ラウンド・ロビン方式を組み合わせたり、又は固定優先
方式とシングルレベル方式を組み合わせたりという設定
を変更可能な回路構成とする。さらに、調停手法に優先
順位をつけ、その優先順位を可変とする。つまり、ある
処理をする時は固定優先方式を優先順位第1位、ラウン
ド・ロビン方式を第2位とし、また別の処理をする時は
ラウンド・ロビン方式を優先順位第1位、固定優先方式
を第2位とするというような優先順位の変更が可能な回
路構成とする。このように優先権の割り当て方式(調停
方式)を変更可能とすることによって、スループットを
向上させることができる。
As described above, the arbitration circuit exists for each port. As an arbitration method in each arbitration circuit, a fixed priority method, a round robin method, a single level method, or the like can be adopted. Then, how to combine them is made variable. In other words, the circuit configuration is such that the setting of combining the fixed priority method and the round robin method or the combination of the fixed priority method and the single level method can be changed. Further, priorities are assigned to the arbitration methods, and the priorities are made variable. That is, when performing a certain process, the fixed-priority system has the first priority, and the round-robin system has the second priority. When performing another process, the round-robin system has the first priority, and the fixed-priority system has the highest priority. Has a circuit configuration that can change the priority order such that By making the priority assignment method (arbitration method) changeable, the throughput can be improved.

【0056】図4は、本発明の第4実施形態に係るバス
マスタ機能を備えるイニシエータデバイスと接続するイ
ンタフェースポートの概要を示すブロック図である。イ
ンタフェースポート600は、バスマスタ機能を備える
デバイス610と接続する。インタフェースポート60
0は、アドレスおよびリード/ライトコマンドをターゲ
ット(不図示)に発行する機能を備えているという点
で、図5に示したインタフェースポート500と相違す
る。
FIG. 4 is a block diagram showing an outline of an interface port connected to an initiator device having a bus master function according to a fourth embodiment of the present invention. The interface port 600 connects to a device 610 having a bus master function. Interface port 60
0 differs from the interface port 500 shown in FIG. 5 in that it has a function of issuing an address and a read / write command to a target (not shown).

【0057】バスマスタ・リード・コントロール620
によってリードコマンド送信バッファ622〜624を
制御する。また、バスマスタ・ライト・コントロール6
30によって送信バッファ632〜634を制御する。
つまり、イニシエータであるデバイス610からリード
/ライト・コマンドやアドレスを受信し、ターゲットの
I/Fポートのバッファ626〜628や636〜63
8へコマンド、データ等を送信する。
Bus master read control 620
Controls the read command transmission buffers 622 to 624. Also, bus master write control 6
30 controls the transmission buffers 632-634.
That is, a read / write command or an address is received from the device 610 as an initiator, and buffers 626 to 628 and 636 to 63 of the target I / F port are received.
8, a command, data, and the like are transmitted.

【0058】例えば、デバイス610からライト・コマ
ンドが発行されると、外部コントロール612、バスマ
スタ・ライト・コントロール630、バッファ632を
経由して、コマンド転送先であるターゲットのI/Fポ
ートのバッファ636にコマンドが転送される。このと
き、バッファ636が既に他のコマンドやデータを保持
している場合がある。このようなときは、ポステッドラ
イト方式を採用するため、既に発行されたライトコマン
ドは、バッファ632に保持される。一方、バッファ6
36が空の時は、ライトコマンドは、バッファ632に
保持されることなく、バッファ636へ転送される。
For example, when a write command is issued from the device 610, the write command is issued to the buffer 636 of the target I / F port as the command transfer destination via the external control 612, the bus master write control 630, and the buffer 632. Command is transferred. At this time, the buffer 636 may already hold another command or data. In such a case, since the posted write method is employed, the already issued write command is held in the buffer 632. On the other hand, buffer 6
When 36 is empty, the write command is transferred to the buffer 636 without being held in the buffer 632.

【0059】バッファ632にコマンドが保持されてい
るとき、外部コントロール612は、バッファ632が
空になるまで、デバイス610の転送サイクルを一時停
止する。バッファ632は、バッファ636が空になる
と、コマンド、アドレス及びデータをバッファ636へ
転送する。
When a command is held in the buffer 632, the external control 612 suspends the transfer cycle of the device 610 until the buffer 632 becomes empty. Buffer 632 transfers commands, addresses, and data to buffer 636 when buffer 636 is empty.

【0060】システムコントローラ12の前述の2種の
インタフェースポート(スレーブ機能しか有しないポー
ト500とマスタ機能も有するポート600)は、基本
的には同様の回路で実現できる。つまり、バッファのラ
インの追加やコントローラの制御範囲の拡大を行うだけ
で、インタフェースポートの追加を行うことができる。
The above-mentioned two types of interface ports of the system controller 12 (the port 500 having only the slave function and the port 600 having the master function) can be basically realized by the same circuit. That is, an interface port can be added only by adding a buffer line or expanding the control range of the controller.

【0061】なお、本発明は上記実施形態に限定される
ものではなく、その趣旨を逸脱しない範囲で、システム
構成を種々変形したり、また半導体や電気回路によって
実現できることは言うまでもない。
Note that the present invention is not limited to the above-described embodiment, and it goes without saying that the system configuration can be variously modified or realized by a semiconductor or an electric circuit without departing from the gist of the present invention.

【0062】[0062]

【発明の効果】以上説明したように本発明によれば、次
のような効果がある。
As described above, according to the present invention, the following effects can be obtained.

【0063】ターゲットの属するインタフェースポート
に、複数の受信バッファを備えることにより、イニシエ
ータはその受信バッファにコマンド等を転送した後、
即、次のオペレーションサイクルに入ることができるた
め、イニシエータは効率よくデータを処理できる。
By providing a plurality of reception buffers in the interface port to which the target belongs, the initiator transfers commands and the like to the reception buffers,
Since the next operation cycle can be entered immediately, the initiator can process data efficiently.

【0064】また、ターゲットの属するインタフェース
ポートに、複数の送信バッファを備えることにより、タ
ーゲットはその送信バッファにデータ等を転送した後、
即、次のオペレーションサイクルに入ることができるた
め、ターゲットは効率よくデータを処理できる。
By providing a plurality of transmission buffers at the interface port to which the target belongs, the target transfers data and the like to the transmission buffer,
Since the next operation cycle can be started immediately, the target can process data efficiently.

【0065】さらに、調停回路を備え、調停回路によっ
て各バッファ間の優先順位を決定し、優先順位の高いバ
ッファから順にデータを処理することにより、調停回路
はリアルタイムに優先順位を変更するだけで、システム
全体のデータ転送の効率的な処理が実現できる。
Further, an arbitration circuit is provided. The arbitration circuit determines the priority order among the buffers, and processes the data in order from the buffer having the highest priority order, so that the arbitration circuit only changes the priority order in real time. Efficient processing of data transfer of the entire system can be realized.

【0066】システムコントローラ内にターゲットの属
するインタフェースポートを追加することによってシス
テムを拡張する際、システムコントローラ内の既存ポー
トに、新ポート用のバッファを追加し、そのバッファを
既存の調停回路の調停対象に追加するだけで、システム
を拡張できる。また、これに関する回路規模が極めて増
大することはない。
When the system is expanded by adding an interface port to which a target belongs in the system controller, a buffer for a new port is added to an existing port in the system controller, and the buffer is subjected to arbitration by an existing arbitration circuit. The system can be expanded simply by adding In addition, the circuit scale related to this does not significantly increase.

【0067】バスマスタ機能を備えるインタフェースポ
ート内のライトコマンド送信バッファおよびそのコント
ローラによって、イニシエータはライトコマンドの転送
を途中停止することなく、次の内部処理を行うことがで
きる。これにより、イニシエータ側のデータ処理を効率
よく行うことができる。
The write command transmission buffer in the interface port having the bus master function and its controller enable the initiator to perform the following internal processing without interrupting the transfer of the write command. Thereby, data processing on the initiator side can be performed efficiently.

【図面の簡単な説明】[Brief description of the drawings]

【図1】第1実施形態に係るバスマスタ機能をもつデバ
イス(イニシエータ)が発行したライトコマンドによっ
て、イニシエータからターゲットへデータが転送される
際のデータの流れを示す図。
FIG. 1 is a diagram showing a data flow when data is transferred from an initiator to a target by a write command issued by a device (initiator) having a bus master function according to the first embodiment.

【図2】第2実施形態に係るバスマスタ機能をもつデバ
イス(イニシエータ)が発行したリードコマンドによっ
て、ターゲットからイニシエータへデータが転送される
際のデータの流れを示す図。
FIG. 2 is a diagram showing a data flow when data is transferred from a target to an initiator by a read command issued by a device (initiator) having a bus master function according to a second embodiment.

【図3】第3実施形態に係るスレーブ機能しか持たない
デバイスのインタフェースポートの概要を示すブロック
図。
FIG. 3 is a block diagram showing an outline of an interface port of a device having only a slave function according to a third embodiment;

【図4】第4実施形態に係るバスマスタ機能を備えるイ
ニシエータデバイスと接続するインタフェースポートの
概要を示すブロック図。
FIG. 4 is a block diagram showing an outline of an interface port connected to an initiator device having a bus master function according to a fourth embodiment.

【図5】代表的なコンピュータシステムの構成を示すブ
ロック図。
FIG. 5 is a block diagram showing a configuration of a typical computer system.

【図6】図5のシステムコントローラの構成の一例を示
すブロック図。
FIG. 6 is a block diagram showing an example of the configuration of the system controller shown in FIG. 5;

【図7】図5のシステムコントローラ内におけるデータ
の流れの一例を示すブロック図。
FIG. 7 is a block diagram showing an example of a data flow in the system controller of FIG. 5;

【符号の説明】[Explanation of symbols]

260 DMAコントローラ 310 プロセッサI/Fコントローラ 328 SDRAMコントローラ 334 ROMコントローラ 348 グラフィックスポート 356 I/Oコントローラ 320、322、324、330、340、342、3
44、350、352ターゲット側の受信バッファ 426、427、428、436、437、438、4
46、447、448、454、455 ターゲット側
の送信バッファ 550、650 調停回路 622、623、624、632、633、634 イ
ニシエータ側の送信バッファ
260 DMA controller 310 Processor I / F controller 328 SDRAM controller 334 ROM controller 348 Graphics port 356 I / O controller 320, 322, 324, 330, 340, 342, 3
44, 350, 352 Target-side receive buffers 426, 427, 428, 436, 437, 438, 4
46, 447, 448, 454, 455 Target side transmission buffer 550, 650 Arbitration circuit 622, 623, 624, 632, 633, 634 Initiator side transmission buffer

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 バスを介してデータ転送を行うデータ転
送装置であって、 バスマスタとなるイニシエータと、 前記イニシエータからコマンドを受信するターゲット
と、 前記ターゲットに属しかつ前記コマンドを保持する複数
の受信バッファと、 を備えることを特徴とするデータ転送装置。
1. A data transfer apparatus for transferring data via a bus, comprising: an initiator serving as a bus master; a target receiving a command from the initiator; and a plurality of reception buffers belonging to the target and holding the command. A data transfer device, comprising:
【請求項2】 バスを介してデータ転送を行うデータ転
送装置であって、 バスマスタとなるイニシエータと、 前記イニシエータへデータを送信するターゲットと、 前記ターゲットに属しかつ前記データを保持する複数の
送信バッファと、 を備えることを特徴とするデータ転送装置。
2. A data transfer apparatus for performing data transfer via a bus, comprising: an initiator serving as a bus master; a target transmitting data to the initiator; and a plurality of transmission buffers belonging to the target and holding the data. A data transfer device, comprising:
【請求項3】複数の前記受信バッファが同一の前記ター
ゲットへデータを転送する際に、前記受信バッファ間に
おけるデータ処理の優先順位を決定するための調停回路
を備えたことを特徴とする請求項1に記載のデータ転送
装置。
3. An arbitration circuit for determining a priority of data processing among said plurality of receiving buffers when a plurality of said receiving buffers transfer data to the same target. 2. The data transfer device according to 1.
【請求項4】同一の前記ターゲットに属する複数の前記
送信バッファが各々のイニシエータへデータを転送する
際に、前記送信バッファ間におけるデータ処理の優先順
位を決定するための調停回路を備えたことを特徴とする
請求項2に記載のデータ転送装置。
4. An arbitration circuit for determining a priority of data processing among the transmission buffers when a plurality of transmission buffers belonging to the same target transfer data to respective initiators. The data transfer device according to claim 2, wherein
【請求項5】バスを介してデータ転送を行うデータ転送
装置であって、 バスマスタとなるイニシエータと、 前記イニシエータからコマンドを受信するターゲットと
を含み、 前記ターゲットが、前記コマンドを保持する受信バッフ
ァを備え、 前記イニシエータが、前記受信バッファが空でないとき
に、自分が発行したコマンドを保持する送信バッファを
備えることを特徴とするデータ転送装置。
5. A data transfer device for performing data transfer via a bus, comprising: an initiator serving as a bus master; and a target receiving a command from the initiator, wherein the target includes a reception buffer holding the command. The data transfer device, wherein the initiator includes a transmission buffer for holding a command issued by the initiator when the reception buffer is not empty.
JP10302889A 1998-10-23 1998-10-23 Data transfer device Pending JP2000132503A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10302889A JP2000132503A (en) 1998-10-23 1998-10-23 Data transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10302889A JP2000132503A (en) 1998-10-23 1998-10-23 Data transfer device

Publications (1)

Publication Number Publication Date
JP2000132503A true JP2000132503A (en) 2000-05-12

Family

ID=17914332

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10302889A Pending JP2000132503A (en) 1998-10-23 1998-10-23 Data transfer device

Country Status (1)

Country Link
JP (1) JP2000132503A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002306765A (en) * 2001-04-17 2002-10-22 Heiwa Corp Game machine
WO2006030650A1 (en) * 2004-09-16 2006-03-23 Nec Corporation Information processing device having a plurality of processing units sharing a resource
EP1703410A2 (en) 2005-03-17 2006-09-20 Fujitsu Limited Data transfer device
WO2006132006A1 (en) * 2005-06-09 2006-12-14 Matsushita Electric Industrial Co., Ltd. Memory control apparatus and memory control method
US7519774B2 (en) 2004-05-28 2009-04-14 Renesas Technology Corp. Data processor having a memory control unit with cache memory

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002306765A (en) * 2001-04-17 2002-10-22 Heiwa Corp Game machine
US8032715B2 (en) 2004-05-28 2011-10-04 Renesas Electronics Corporation Data processor
US7519774B2 (en) 2004-05-28 2009-04-14 Renesas Technology Corp. Data processor having a memory control unit with cache memory
US7783827B2 (en) 2004-05-28 2010-08-24 Renesas Technology Corp. Data processor having a memory controller with cache memory
JP4737438B2 (en) * 2004-09-16 2011-08-03 日本電気株式会社 Information processing apparatus that shares resources among multiple processing units
WO2006030650A1 (en) * 2004-09-16 2006-03-23 Nec Corporation Information processing device having a plurality of processing units sharing a resource
JPWO2006030650A1 (en) * 2004-09-16 2008-05-15 日本電気株式会社 Information processing apparatus that shares resources among multiple processing units
US7650453B2 (en) 2004-09-16 2010-01-19 Nec Corporation Information processing apparatus having multiple processing units sharing multiple resources
EP1703410A2 (en) 2005-03-17 2006-09-20 Fujitsu Limited Data transfer device
US7475170B2 (en) 2005-03-17 2009-01-06 Fujitsu Limited Data transfer device for transferring data to and from memory via a bus
WO2006132006A1 (en) * 2005-06-09 2006-12-14 Matsushita Electric Industrial Co., Ltd. Memory control apparatus and memory control method
JP4693843B2 (en) * 2005-06-09 2011-06-01 パナソニック株式会社 Memory control device and memory control method
JPWO2006132006A1 (en) * 2005-06-09 2009-01-08 松下電器産業株式会社 Memory control device and memory control method

Similar Documents

Publication Publication Date Title
JP2002530744A (en) Communication system and method with multi-level connection identification
JP5578713B2 (en) Information processing device
JP4313607B2 (en) Bus connection circuit and bus connection system
KR100708096B1 (en) Bus system and execution scheduling method for access commands thereof
EP3304331A1 (en) Single-chip multi-processor communication
US8341360B2 (en) Method and apparatus for memory write performance optimization in architectures with out-of-order read/request-for-ownership response
JP2002366507A (en) Multichannel dma(direct memory access) controller, and processor system
JP2000293436A (en) Support for a plurality of unsolved request to a plurality of targets of pipeline memory system
US6941407B2 (en) Method and apparatus for ordering interconnect transactions in a computer system
JP2000132503A (en) Data transfer device
JPH06274425A (en) Network adaptor device
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
US6742074B2 (en) Bus to system memory delayed read processing
US6085271A (en) System bus arbitrator for facilitating multiple transactions in a computer system
JP2001067298A (en) Use of writing request queue for preventing failure of low speed port in transfer controller having hub and port architecture
EP1193607B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
JP2009003633A (en) Information processor
JP2002342295A (en) Multiprocessor system
US6493779B1 (en) Method and system for interrupt handling using device pipelined packet transfers
EP1193605B1 (en) Apparatus and method for the transfer of signal groups between digital signal processors in a digital signal processing unit
JP2705955B2 (en) Parallel information processing device
JP2713204B2 (en) Information processing system
JP3050131B2 (en) Arbitration method
JPH09218859A (en) Multiprocessor control system
JPH01309445A (en) Data transfer system