JP2005107771A - High-throughput data transfer system - Google Patents

High-throughput data transfer system Download PDF

Info

Publication number
JP2005107771A
JP2005107771A JP2003339152A JP2003339152A JP2005107771A JP 2005107771 A JP2005107771 A JP 2005107771A JP 2003339152 A JP2003339152 A JP 2003339152A JP 2003339152 A JP2003339152 A JP 2003339152A JP 2005107771 A JP2005107771 A JP 2005107771A
Authority
JP
Japan
Prior art keywords
data transfer
request
slave
master
transfer system
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
JP2003339152A
Other languages
Japanese (ja)
Inventor
Masato Suzuki
誠人 鈴木
Yasushi Nagai
靖 永井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003339152A priority Critical patent/JP2005107771A/en
Publication of JP2005107771A publication Critical patent/JP2005107771A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the following problem of a data transfer system that data transfer throughput at a slave side is reduced when requests of a plurality of masters compete with one another to the same slave, and data transfer throughput at a master side is reduced when the same master frequently changes a target slave of a data transfer request. <P>SOLUTION: In this data transfer system, even in a state that the request from the master is absent, acknowledgement is returned to all the masters, and competition and permission are performed in the same cycle as the request of the master. The data transfer system is provided with a buffer for storing the request not capable of being outputted to the target slave, and performs an output of the request not capable of being outputted though permitting the output, to the target slave. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、マスタとなる装置からのデータ転送リクエストをスレーブとなる装置(以下「スレーブモジュール」)へ出力する装置に関し、特に演算器等のバッファサイズが小さいスレーブモジュールに対して直接メモリ間転送(以下「DMA」)等により頻繁にデータ転送を行うデータ転送装置に関する。   The present invention relates to a device that outputs a data transfer request from a master device to a slave device (hereinafter referred to as a “slave module”), and in particular, transfers between memories directly to a slave module having a small buffer size such as an arithmetic unit ( The present invention relates to a data transfer apparatus that frequently performs data transfer by “DMA”).

計算機や携帯電話といった電子機器内部におけるデータ転送では、データ転送の競合を調整するための装置が用いられることがある。この装置は一般的にはアービタ(特にバスに接続された各装置間でのデータ転送の競合を調整する装置はバスアービタ)と呼ばれる。
ここで、アービタに対しデータ転送の要求を送信する装置、例えば演算装置をマスタと呼び、マスタのデータ転送の対象となる装置をスレーブと呼ぶ。
In data transfer inside an electronic device such as a computer or a mobile phone, a device for adjusting data transfer contention may be used. This device is generally called an arbiter (in particular, a device that adjusts data transfer contention between devices connected to the bus is a bus arbiter).
Here, a device that transmits a data transfer request to the arbiter, for example, an arithmetic device is called a master, and a device that is a target of data transfer by the master is called a slave.

一般的に、マスタとアービタ間、アービタとスレーブ間でのコマンドやデータの遣り取りは、これらの装置間で使用されるタイマ(一般的に「クロック」)に同期して行われる。例えば、マスタがアービタに対してスレーブの使用を要求するリクエストを出力するのにクロックの1周期(以下「1サイクル」)要する。一方、アービタにおける競合判定、すなわちマスタがスレーブを使用可能かどうかの判定は、マスタからのリクエストの受信と同じサイクル内で行われる。そして、その競合判定の次のサイクルでアービタはマスタに対し判定の結果(具体的にはアクセスの許可あるいは不許可を示す信号。以下許可を示す信号を「アクノリッジ」又は「アック」と称する)を送信する。即ち、マスタがスレーブを使用するために、最低限2サイクルの時間が必要となる。   In general, exchange of commands and data between a master and an arbiter and between an arbiter and a slave is performed in synchronization with a timer (generally “clock”) used between these devices. For example, one cycle of the clock (hereinafter referred to as “one cycle”) is required for the master to output a request for requesting the use of the slave to the arbiter. On the other hand, the contention determination in the arbiter, that is, whether or not the master can use the slave is performed within the same cycle as the reception of the request from the master. Then, in the next cycle of the contention determination, the arbiter gives a determination result to the master (specifically, a signal indicating permission or non-permission of access. Hereinafter, a signal indicating permission is referred to as “acknowledge” or “ac”). Send. That is, at least two cycles are required for the master to use the slave.

アービタに関する従来技術が特許文献1に開示されている。特許文献1では、アービタにバッファメモリを設ける事で、複数マスタから同一スレーブへのリクエストが競合した時のマスタからスレーブへのデータ転送のスループット減少を抑えている。具体的には、特許文献1に開示されたアービタは、複数マスタからのデータ転送リクエストに対し、データ転送の可不可とは関係なく複数のマスタのうち一つのマスタに対してアックを返す。その一方、アービタは、アックを返していないマスタからのデータ転送リクエストをバッファに格納する。そして、一つのマスタのデータ転送リクエストに基づくデータ転送の間に、アービタがバッファに格納されているリクエスト同士の競合判定を行っておく事で、データ転送を行っているマスタのデータ転送が終了した後に直ちにバッファに格納されたデータ転送リクエストをスレーブへ出力することが可能となる。   Prior art relating to an arbiter is disclosed in Patent Document 1. In Patent Document 1, by providing a buffer memory in the arbiter, a decrease in throughput of data transfer from the master to the slave when requests from a plurality of masters to the same slave compete with each other is suppressed. Specifically, the arbiter disclosed in Patent Document 1 returns an acknowledgment to one master among the plurality of masters regardless of whether or not data transfer is possible in response to a data transfer request from a plurality of masters. On the other hand, the arbiter stores a data transfer request from the master that has not returned an ACK in the buffer. Then, during the data transfer based on the data transfer request of one master, the data transfer of the master performing the data transfer is completed by the arbiter performing a conflict determination between the requests stored in the buffer. It becomes possible to immediately output the data transfer request stored in the buffer to the slave.

特開平6-96012号公報JP-A-6-96012

上述した特許文献1に限らず、従来のアービタでは、アービタを介してマスタが実際にスレーブを使用できるまでに2サイクルかかる。したがって、同一スレーブに対して複数のマスタのデータ転送リクエストが競合する場合、データ転送の許可を得るマスタが切り替わる度に2サイクルの時間を要し、スレーブへのデータ転送スループットが減少してしまう。   The conventional arbiter is not limited to Patent Document 1 described above, and it takes two cycles until the master can actually use the slave via the arbiter. Therefore, when data transfer requests of a plurality of masters compete for the same slave, it takes two cycles each time the master that obtains permission for data transfer is switched, and the data transfer throughput to the slave is reduced.

また、同一マスタが頻繁にデータ転送リクエストの対象となるスレーブを切り替える場合も、対象となるスレーブが切り替わる度に2サイクルの時間を要する為、上述と同様の問題が発生する。特に、双方において、マスタからの一回のリクエストでのデータ転送量が少ない時やデータ転送量が制限されている(例えばマスタやスレーブが有する演算器が有するデータ蓄積用のバッファの記憶容量が小さい等)にマスタのデータ転送スループットが減少するという問題点がある。   In addition, when the same master frequently switches the slave that is the target of the data transfer request, it takes two cycles each time the target slave is switched, so the same problem as described above occurs. In particular, in both cases, when the data transfer amount in one request from the master is small or the data transfer amount is limited (for example, the storage capacity of the data storage buffer of the arithmetic unit included in the master or slave is small) Etc.) has a problem that the data transfer throughput of the master is reduced.

本発明は、アービトレーションを実行するデータ転送システム(アービタ)において、システムに接続されるマスタに対して予めアクノリッジを送信する構成とする。具体的には、データ転送システムは、マスタからのリクエストがない状態においても、全てのマスタに対してアックを返しておく。そして、マスタからデータ転送等のスレーブの使用を要求するリクエストが出力されると、データ転送システムは予め定められた優先順位又は所定の優先アルゴリズムに従って競合判定を行い、次のサイクルでデータ転送が可能なマスタのリクエストをスレーブに対して出力する。   According to the present invention, in a data transfer system (arbiter) for executing arbitration, an acknowledge is transmitted in advance to a master connected to the system. Specifically, the data transfer system returns an acknowledgment to all masters even when there is no request from the master. When a request requesting the use of a slave such as data transfer is output from the master, the data transfer system performs contention determination according to a predetermined priority order or a predetermined priority algorithm, and data transfer is possible in the next cycle. The master request to the slave.

一方、マスタのリクエストと関係なくアックを返している事から、同一スレーブへのリクエストが競合した場合においてもマスタはリクエストを許可されたと判断してそのリクエストを終了してしまう為、このリクエストを格納する為のバッファをデータ転送システムに設け、スレーブへ出力不可能なリクエストをバッファに格納する。バッファに格納されたリクエストは、他のマスタから出力されるリクエストと同様の判定対象とし、出力可能と判定した場合に対象スレーブに対して直ちに出力する。   On the other hand, since the ACK is returned regardless of the request from the master, even if the request to the same slave competes, the master determines that the request is permitted and terminates the request. A buffer is provided in the data transfer system, and requests that cannot be output to the slave are stored in the buffer. The request stored in the buffer is determined as a determination target similar to a request output from another master, and when it is determined that the request can be output, the request is immediately output to the target slave.

本発明によれば、アービタにおいて、データ転送スループットが低下しない。特に、バッファ容量の小さいスレーブに対するデータ転送でも高いデータ転送スループットを確保できる。   According to the present invention, the data transfer throughput does not decrease in the arbiter. In particular, high data transfer throughput can be ensured even in data transfer to a slave having a small buffer capacity.

また、本発明によれば、複数のマスタのリクエストが競合しても対象スレーブにおけるデータ転送スループットが低下しない。   Further, according to the present invention, even if requests from a plurality of masters compete, the data transfer throughput in the target slave does not decrease.

以下、本発明の実施形態について説明するが、本発明が本明細書の実施形態に限定されないことは言うまでもない。まず、本実施形態の詳細について説明する前に、本実施形態における装置の概要について簡単に説明する。   Hereinafter, although embodiment of this invention is described, it cannot be overemphasized that this invention is not limited to embodiment of this specification. First, before describing the details of the present embodiment, an outline of the apparatus according to the present embodiment will be briefly described.

図1は、本発明を適用した演算処理システムの1実施態様の構成例を示す図である。演算処理システムは、CPU1、SDRAM2、アクセラレータ8及びこれらを接続するバス3を有する。本演算処理システムは、パーソナルコンピュータ、携帯電話、サーバ、携帯端末等においてデータの処理を行う装置として採用される。   FIG. 1 is a diagram showing a configuration example of one embodiment of an arithmetic processing system to which the present invention is applied. The arithmetic processing system includes a CPU 1, an SDRAM 2, an accelerator 8, and a bus 3 for connecting them. This arithmetic processing system is employed as a device for processing data in a personal computer, a mobile phone, a server, a mobile terminal, or the like.

アクセラレータ8は、CPU1で行われる演算処理のうち、暗号に関する演算処理をCPU1に代わって専門的に処理する回路である。このようにCPU1とアクセラレータ8とで処理を分散することによって、演算処理システムの処理性能が向上する。   The accelerator 8 is a circuit that specially processes, in place of the CPU 1, cryptographic processing among the arithmetic processing performed by the CPU 1. In this way, the processing performance of the arithmetic processing system is improved by distributing the processing between the CPU 1 and the accelerator 8.

アクセラレータ8は、アービタの役割を果たすデータ転送システム100、データ転送システム100とバス3とを接続し、かつバス3とデータ転送システム100間との間でデータ転送プロトコルを変換するバスインタフェイス4、データ格納バッファであるSRAM6、暗号演算器7、並びにSRAM6及び暗号演算器7間のデータ転送を制御するDMAC5を有する。   The accelerator 8 is a data transfer system 100 serving as an arbiter, a bus interface 4 that connects the data transfer system 100 and the bus 3 and converts a data transfer protocol between the bus 3 and the data transfer system 100, It has an SRAM 6 that is a data storage buffer, a cryptographic operation unit 7, and a DMAC 5 that controls data transfer between the SRAM 6 and the cryptographic operation unit 7.

バスインタフェイス4、SRAM6、暗号演算器7及びDMAC5は、データ転送システム100を介して相互に接続されている。
図1の構成において、演算処理システムは、SDRAM2に格納されているデータの暗号演算を以下のように行う。演算処理システムは、SDRAM2からバス3、バスインタフェイス4、データ転送システム100を介してSRAM6へデータを転送すると共に、DMAC5の制御に基づいて、SRAM6と暗号演算器7との間のデータ転送を行う。
The bus interface 4, SRAM 6, cryptographic operation unit 7, and DMAC 5 are connected to each other via the data transfer system 100.
In the configuration of FIG. 1, the arithmetic processing system performs cryptographic operations on data stored in the SDRAM 2 as follows. The arithmetic processing system transfers data from the SDRAM 2 to the SRAM 6 via the bus 3, the bus interface 4, and the data transfer system 100, and transfers data between the SRAM 6 and the cryptographic operation unit 7 based on the control of the DMAC 5. Do.

ここで、SRAM6を省略して暗号演算器7にバッファとして記憶領域を確保する構成も考えられる。しかし、暗号演算器7にバッファを確保しようとすると回路規模が大きくなってしまう。一方、SRAM6は回路レイアウト構成が単純であり、暗号演算器7に同一容量のバッファを構成するよりもSRAM6を使用するほうが装置全体の回路規模が小さくなる。したがって、本実施形態では、暗号演算器7のバッファ容量は暗号演算器7が常に暗号演算を実行可能な程度の容量に抑え、SRAM6のバッファ容量を大きく取っている。   Here, a configuration in which the SRAM 6 is omitted and a storage area is secured as a buffer in the cryptographic calculator 7 is also conceivable. However, if an attempt is made to secure a buffer in the cryptographic operation unit 7, the circuit scale increases. On the other hand, the SRAM 6 has a simple circuit layout configuration, and the circuit scale of the entire apparatus is smaller when the SRAM 6 is used than when the encryption calculator 7 is configured with a buffer having the same capacity. Therefore, in this embodiment, the buffer capacity of the cryptographic operation unit 7 is limited to a capacity that allows the cryptographic operation unit 7 to always execute the cryptographic operation, and the buffer capacity of the SRAM 6 is increased.

この為、DMAC5はSRAM6と暗号演算器7との間のデータ転送先の切換えを頻繁に行う必要がある。一方、SDRAM2からSRAM6へのデータ転送も行われる為、SRAM6についてデータ転送の競合が発生する。一般的にデータ転送先の切換えとデータ転送の競合が発生する場合、データ転送スループットが低下する事が知られており、本発明ではこの低下を抑える事が可能なデータ転送システム100を用いる。   For this reason, the DMAC 5 needs to frequently switch the data transfer destination between the SRAM 6 and the cryptographic calculator 7. On the other hand, since data transfer from the SDRAM 2 to the SRAM 6 is also performed, data transfer contention occurs in the SRAM 6. In general, it is known that when data transfer destination switching and data transfer conflict, the data transfer throughput decreases. In the present invention, the data transfer system 100 capable of suppressing this decrease is used.

データ転送システム100におけるデータ転送の方法について説明する為、データ転送要求を行う側と行われる側をそれぞれマスタとスレーブに分けてシステムを単純化して説明する。
図2は、2つのマスタ及び2つのスレーブがデータ転送システム100と接続される構成を示す図である。ここで、データ転送システム100は、マスタからのデータ転送リクエストがない状態であっても、接続される全てのマスタに対してアックを返しておく。そして、マスタからデータ転送システム100へスレーブに対するデータ転送リクエストが出力されると、データ転送システム100は、予め定められた優先順位又は所定の優先アルゴリズムに従って競合判定を行い、データ転送リクエストが送信されたサイクルの次のサイクルで、データ転送が可能なマスタのデータ転送リクエストを対象となるスレーブに対して出力する。
In order to explain a data transfer method in the data transfer system 100, the system is simplified by dividing the data transfer request side and the data transfer side into a master and a slave, respectively.
FIG. 2 is a diagram illustrating a configuration in which two masters and two slaves are connected to the data transfer system 100. Here, the data transfer system 100 returns an acknowledgment to all connected masters even when there is no data transfer request from the master. Then, when a data transfer request for the slave is output from the master to the data transfer system 100, the data transfer system 100 performs a conflict determination according to a predetermined priority order or a predetermined priority algorithm, and the data transfer request is transmitted. In the next cycle, a master data transfer request capable of data transfer is output to the target slave.

これにより、結果的にデータ転送システムがマスタのデータ転送リクエストと同一サイクルでマスタにアックを送信できることになる為、マスタがスレーブを使用するために必要となるサイクル数が1となる。したがって、マスタが異なるスレーブに対してデータ転送リクエストを切り替えて発行してもデータ転送スループットが低下しない。   As a result, since the data transfer system can transmit an ACK to the master in the same cycle as the master data transfer request, the number of cycles required for the master to use the slave is 1. Therefore, the data transfer throughput does not decrease even if the data transfer request is switched and issued to slaves with different masters.

しかし、データ転送システムがマスタのデータ転送リクエストと関係なくアックを返しているため、同一スレーブへのリクエストが競合した場合においてもマスタはデータ転送リクエストを許可されたと判断してそのデータ転送リクエストを終了してしまうが、データ転送システム100はこのリクエストを対象スレーブに対して出力できない。これを解決するため、本実施形態のデータ転送システムは、各々のマスタからのデータ転送リクエストを格納する為のバッファを有する。   However, since the data transfer system returns an ACK regardless of the master data transfer request, the master determines that the data transfer request is permitted and terminates the data transfer request even if requests to the same slave compete. However, the data transfer system 100 cannot output this request to the target slave. In order to solve this, the data transfer system of this embodiment has a buffer for storing a data transfer request from each master.

データ転送システムは、同一スレーブへのデータ転送リクエストが競合した場合、対象となるスレーブ(以下「対象スレーブ」とも言う)へ出力不可能なリクエスト、言い換えると優先順位の低いマスタのデータ転送リクエストをそのマスタに対応するバッファに格納する。バッファに格納されたデータ転送リクエストは、対象スレーブがデータ転送可能になった時点で他のマスタから出力されるリクエストと同様に競合判定の対象とされ、出力可能と判定された場合に対象スレーブに対して直ちに出力される。これにより、複数のマスタのデータ転送リクエストが競合しても対象スレーブにおけるデータ転送スループットが低下しない。   When a data transfer request to the same slave competes, the data transfer system sends a request that cannot be output to the target slave (hereinafter also referred to as “target slave”), in other words, a master data transfer request with a low priority. Store in the buffer corresponding to the master. The data transfer request stored in the buffer is subject to contention determination in the same way as requests output from other masters when the target slave is ready for data transfer. On the other hand, it is output immediately. Thereby, even if data transfer requests of a plurality of masters compete, the data transfer throughput in the target slave does not decrease.

又、マスタのデータ転送リクエストをバッファに格納した時点でデータ転送システムがそのデータ転送リクエストを出力したマスタへのアックの転送を中断し(具体的にはアックの信号レベルを下げ)、バッファに格納されたデータ転送リクエストを対象スレーブに対して出力した時に再びアックを送信する(アックの信号レベルを上げる)事で1つのマスタから複数のデータ転送リクエストがデータ転送システムに送信されるのを防止することが出来る為、バッファはそれぞれのマスタに対して1リクエスト分のサイズのものを設ければ良い。   Also, when the master data transfer request is stored in the buffer, the data transfer system interrupts the transfer of the ACK to the master that output the data transfer request (specifically, the ACK signal level is lowered) and stores it in the buffer. ACK is transmitted again when the received data transfer request is output to the target slave (by raising the ACK signal level), it is possible to prevent a plurality of data transfer requests from being sent to the data transfer system from one master. Therefore, a buffer having a size for one request may be provided for each master.

以下、本実施形態の詳細について説明する。
図2は、本実施形態の装置構成例を示す図であり、2つのマスタ101a及び101bと2つのスレーブ121aがデータ転送システム100と接続される構成を示している。ただし、マスタ101とスレーブ121の数に制限はない。マスタ101は、スレーブ121に対してライト又はリードのデータ転送リクエストを送信する。
Details of this embodiment will be described below.
FIG. 2 is a diagram showing a device configuration example of the present embodiment, and shows a configuration in which two masters 101 a and 101 b and two slaves 121 a are connected to the data transfer system 100. However, the number of masters 101 and slaves 121 is not limited. The master 101 transmits a write or read data transfer request to the slave 121.

以下の説明において、マスタ101aをM1、マスタ101bをM2、スレーブ121aをS1、スレーブ121bをS2と称する。マスタにはバスインタフェイス4やDMAC5などが挙げられ、スレーブにはメモリ(SDRAM2やSRAM6)や暗号演算器7などが挙げられる。   In the following description, the master 101a is referred to as M1, the master 101b as M2, the slave 121a as S1, and the slave 121b as S2. Examples of the master include the bus interface 4 and the DMAC 5, and examples of the slave include the memory (SDRAM 2 and SRAM 6) and the cryptographic calculator 7.

マスタ101からスレーブ121に対してライト及びリードのリクエストを行う様な状況において、スレーブ121が有する記憶領域には、それぞれ或るアドレス領域が割り当てられており、マスタ101がスレーブ121に対してデータ転送を行う場合、マスタ101は、スレーブ121の記憶領域を示すアドレスを示すアドレス情報を含むデータ転送リクエストをデータ転送システム100に対して出力する。   In a situation where a write request and a read request are made from the master 101 to the slave 121, a certain address area is allocated to each storage area of the slave 121, and the master 101 transfers data to the slave 121. In this case, the master 101 outputs a data transfer request including address information indicating an address indicating the storage area of the slave 121 to the data transfer system 100.

図3は、データ転送システム100の内部構成例を示す図である。
データ転送システム100は、M1と接続されるM1バッファ105、M2と接続されるM2バッファ115、M1バッファ105及びM1と接続されるM1リクエストセレクタ201、M2バッファ115及びM2と接続されるM2リクエストセレクタ211、M1リクエストセレクタ201、M2リクエストセレクタ211及びS1と接続されるS1アービタ205並びに、M1リクエストセレクタ201、M2リクエストセレクタ211及びS2と接続されるS2アービタ215を有する。
FIG. 3 is a diagram illustrating an internal configuration example of the data transfer system 100.
The data transfer system 100 includes an M1 buffer 105 connected to M1, an M2 buffer 115 connected to M2, an M1 request selector 201 connected to the M1 buffer 105 and M1, and an M2 request selector connected to the M2 buffer 115 and M2. 211, an M1 request selector 201, an S1 arbiter 205 connected to the M2 request selector 211 and S1, and an S2 arbiter 215 connected to the M1 request selector 201 and the M2 request selector 211 and S2.

M1バッファ105(M2バッファ115)は、M1(M2)から送信されたリクエスト及びデータの情報を格納する。M1リクエストセレクタ201(M2リクエストセレクタ211)は、M1(M2)とM1バッファ105(M2バッファ115)から送信されるデータ転送リクエストのスレーブへの転送の制御を行う。S1アービタ205(S2アービタ215)は、S1(S2)とM1リクエストセレクタ201及びM2リクエストセレクタ211との間のリクエスト及びデータの転送を制御する。   The M1 buffer 105 (M2 buffer 115) stores request and data information transmitted from the M1 (M2). The M1 request selector 201 (M2 request selector 211) controls transfer of data transfer requests transmitted from the M1 (M2) and the M1 buffer 105 (M2 buffer 115) to the slave. The S1 arbiter 205 (S2 arbiter 215) controls the transfer of requests and data between S1 (S2) and the M1 request selector 201 and M2 request selector 211.

各装置間は一本又は複数本の信号線にて相互に接続されている。尚、以下信号の種類毎に異なる信号線で各装置が相互に接続されているとして説明するが、これら複数の信号線が一纏まりとなった構成も考えられる。   Each device is mutually connected by one or a plurality of signal lines. In the following description, it is assumed that the devices are connected to each other with different signal lines for each type of signal. However, a configuration in which the plurality of signal lines are grouped is also conceivable.

102は、M1リクエストセレクタ201からM1へ出力されるアックを送信する信号線である。103は、M1からM1リクエストセレクタ201及びM1バッファ105へ出力されるデータ転送リクエストが流れる信号線である。信号線103で送信されるデータ転送リクエストにはライト及びリードのコマンドとスレーブの所定の記憶領域を指定するアドレス情報が含まれる。104は、M1、M1リクエストセレクタ及びM1バッファ105との間で入出力されるデータを転送する信号線である。   Reference numeral 102 denotes a signal line for transmitting an ACK output from the M1 request selector 201 to M1. Reference numeral 103 denotes a signal line through which a data transfer request output from the M1 to the M1 request selector 201 and the M1 buffer 105 flows. The data transfer request transmitted through the signal line 103 includes write and read commands and address information specifying a predetermined storage area of the slave. A signal line 104 transfers data input / output between the M1, the M1 request selector, and the M1 buffer 105.

106は、M1バッファ105の書換えを行う為の制御信号をM1リクエストセレクタ201から送信する際に使用される信号線である。107は、M1バッファ105に格納されたM1のデータ転送リクエストをM1リクエストセレクタ201へ出力する際に使用される信号線である。108は、M1バッファ105からM1リクエストセレクタ201へのデータの転送の際に使用される信号線である。   A signal line 106 is used when a control signal for rewriting the M1 buffer 105 is transmitted from the M1 request selector 201. Reference numeral 107 denotes a signal line used when outputting the M1 data transfer request stored in the M1 buffer 105 to the M1 request selector 201. A signal line 108 is used when data is transferred from the M1 buffer 105 to the M1 request selector 201.

M1リクエストセレクタ201は、信号線103を介して受信したM1のデータ転送リクエスト及びM1バッファ105から信号線107を介して受信したM1のデータ転送リクエストの中から有効であるデータ転送リクエストを選択し、選択したデータ転送リクエストを信号線203を介してS1アービタ205又はS2アービタ215へデータ転送リクエストとして出力する。   The M1 request selector 201 selects a valid data transfer request from the M1 data transfer request received via the signal line 103 and the M1 data transfer request received from the M1 buffer 105 via the signal line 107. The selected data transfer request is output as a data transfer request to the S1 arbiter 205 or S2 arbiter 215 via the signal line 203.

また、M1からのデータ転送リクエストをS1アービタ205又はS2アービタ215に出力している状態において、データ転送リクエストの対象となるスレーブと接続されたアービタ(S1アービタ205又はS2アービタ215)から返されるアックにより、M1リクエストセレクタ201は、対象スレーブへ次のデータ転送リクエストが送信可能かどうかを判断し、M1へのアックの送信及びM1バッファ105への制御信号の送信を行う。具体的には、次のデータ転送リクエストが送信可能、即ちS1又はS2アービタに対してデータ転送リクエストを出力している間にアックがS1又はS2アービタから返ってきていれば、M1リクエストセレクタ201は、M1に対するアックの有効を維持する。一方、送信不可であればM1へのアックを無効にし、送信不可なデータ転送リクエストをM1バッファ105に格納する為にM1バッファ105へ制御信号を送信する。更にM1リクエストセレクタ201は、データ転送時に信号線104を介してM1とデータを送受信し、信号線204を介してスレーブ121とデータの送受信を行う。   In the state where the data transfer request from M1 is being output to the S1 arbiter 205 or S2 arbiter 215, an ack returned from the arbiter (S1 arbiter 205 or S2 arbiter 215) connected to the slave that is the target of the data transfer request. Thus, the M1 request selector 201 determines whether or not the next data transfer request can be transmitted to the target slave, and transmits an ACK to the M1 and a control signal to the M1 buffer 105. Specifically, if the next data transfer request can be transmitted, that is, if the ACK is returned from the S1 or S2 arbiter while outputting the data transfer request to the S1 or S2 arbiter, the M1 request selector 201 , Keep the ACK effective for M1. On the other hand, if transmission is impossible, ACK to M1 is invalidated, and a control signal is transmitted to the M1 buffer 105 in order to store a data transfer request that cannot be transmitted in the M1 buffer 105. Further, the M1 request selector 201 transmits / receives data to / from M1 via the signal line 104 during data transfer, and transmits / receives data to / from the slave 121 via the signal line 204.

203は、M1リクエストセレクタ201からS1アービタ205又はS2アービタ215に出力されるデータ転送リクエストの転送に使用される信号線である。204は、M1リクエストセレクタ201、S1アービタ205及びS2アービタ215間でのデータの送受信に使用される信号線である。   A signal line 203 is used to transfer a data transfer request output from the M1 request selector 201 to the S1 arbiter 205 or the S2 arbiter 215. Reference numeral 204 denotes a signal line used for data transmission / reception among the M1 request selector 201, the S1 arbiter 205, and the S2 arbiter 215.

S1は、信号線122を介してS1アービタ205から入力されるデータ転送リクエストの情報に従って、対応するデータを、信号線123を介してS1アービタ205へ転送する。信号線202は、S1アービタ205からM1リクエストセレクタ201及びM2リクエストセレクタ211へ出力されるアックを転送する信号線である。S1アービタ205は、M1リクエストセレクタ201及びM2リクエストセレクタ211からのデータ転送リクエストに対して競合判定を行い、M1リクエストセレクタ201又はM2リクエストセレクタ211にアックを出力する。また、S1アービタ205は、データ転送時には信号線204、214を介してS1、M1リクエストセレクタ201及びM2リクエストセレクタ215との間のデータ転送を制御する。   S1 transfers the corresponding data to the S1 arbiter 205 via the signal line 123 according to the data transfer request information input from the S1 arbiter 205 via the signal line 122. The signal line 202 is a signal line for transferring an ACK output from the S1 arbiter 205 to the M1 request selector 201 and the M2 request selector 211. The S1 arbiter 205 performs a conflict determination on the data transfer requests from the M1 request selector 201 and the M2 request selector 211, and outputs an ack to the M1 request selector 201 or the M2 request selector 211. The S1 arbiter 205 controls data transfer between the S1, the M1 request selector 201, and the M2 request selector 215 via the signal lines 204 and 214 during data transfer.

M2、M2リクエストセレクタ211、M2バッファ215、S1アービタ205、S2アービタ215、S1及びS2との間のリクエスト、アック及びデータの送受信は、上述したM1とM1リクエストセレクタ等でのデータ等の転送と同じようにして行われる。ただし、M2とM2リクエストセレクタ間でのアック、リクエスト及びデータの送受信には、信号線112、113、114が使用される。又、M2リクエストセレクタ211とM2バッファとの間でのデータ等の遣り取りには、信号線116、117、118が使用される。更に、M2リクエストセレクタ211とS1アービタ205並びにS2アービタ215との間でのデータ等の遣り取りには、信号線212、213、214が使用される。又、S2とS2アービタ215との間のデータ等の遣り取りには、信号線132、133が使用される。   M2, M2 request selector 211, M2 buffer 215, S1 arbiter 205, S2 arbiter 215, S1 and S2 send / receive requests, ACKs and data by transferring data etc. in M1 and M1 request selectors, etc. It is done in the same way. However, signal lines 112, 113, and 114 are used to transmit and receive ACKs, requests, and data between the M2 and M2 request selectors. Signal lines 116, 117, and 118 are used for exchanging data and the like between the M2 request selector 211 and the M2 buffer. Further, signal lines 212, 213, and 214 are used for exchanging data and the like between the M2 request selector 211 and the S1 arbiter 205 and S2 arbiter 215. Signal lines 132 and 133 are used for exchanging data and the like between S2 and S2 arbiter 215.

以下、M1がS1、S2へ交互にリクエストを発行する場合と、M1とM2がS1へ並行してリクエストを発行する場合について説明する。最初に前者の場合について説明する。
まず、M1リクエストセレクタ201は信号線102を介してアックをM1に対して出力しておき、M2リクエストセレクタ211は信号線112を介してアックをM2に対して出力しておく。この状態でM1がS1へデータ転送等を要求する場合、S1が有する記憶領域に割り振られたアドレスを指定するアドレス情報及びライト又はリードコマンドを含むデータ転送リクエストを、M1はM1リクエストセレクタ201に出力する。
Hereinafter, a case where M1 issues requests to S1 and S2 alternately and a case where M1 and M2 issue requests to S1 in parallel will be described. First, the former case will be described.
First, the M1 request selector 201 outputs an ACK to the M1 via the signal line 102, and the M2 request selector 211 outputs an ACK to the M2 via the signal line 112. In this state, when M1 requests data transfer or the like to S1, M1 outputs to M1 request selector 201 a data transfer request including address information designating an address allocated to the storage area of S1 and a write or read command. To do.

M1リクエストセレクタ201は、受信したデータ転送リクエストがM1から出力されたサイクルと同一のサイクルにおいて、データ転送リクエストに含まれるアドレス情報に従って、S1に対するデータ転送リクエストをS1アービタ205に対して出力する。M1リクエストセレクタからデータ転送リクエストを受信したS1アービタ205は、競合判定を行う。   The M1 request selector 201 outputs a data transfer request for S1 to the S1 arbiter 205 in accordance with the address information included in the data transfer request in the same cycle as the cycle in which the received data transfer request is output from M1. The S1 arbiter 205 that has received the data transfer request from the M1 request selector performs a conflict determination.

この時点では他のマスタ101からのデータ転送リクエストがない為、S1アービタ205はリクエストに対するアックを信号線202を介してM1リクエストセレクタ201に出力する。以上説明したように、データ転送リクエストがM1からM1リクエストセレクタ201に出力されてS1アービタ205が競合判定を終了し、S1アービタ205がM1リクエストセレクタ201にアックを返すまでが1サイクルで完了する。   At this time, since there is no data transfer request from another master 101, the S1 arbiter 205 outputs an ACK for the request to the M1 request selector 201 via the signal line 202. As described above, the data transfer request is output from M1 to the M1 request selector 201, the S1 arbiter 205 completes the contention determination, and the S1 arbiter 205 returns an ack to the M1 request selector 201 in one cycle.

そして次のサイクルで、S1アービタ205はS1へM1リクエストセレクタ201から受信したデータ転送リクエストを信号線122を介して送信する。一方、M1においては既にS1へ転送したデータ転送リクエストがデータ転送システム100に許可され、かつM1リクエストセレクタ201からM1へ信号線102を介してアックが送信されている為、M1はS2に対するデータ転送リクエストを出力することができる。この場合、S2に対するデータ転送リクエストを受信したデータ転送システム100は、S1へのデータ転送リクエストを受信した場合と同様な手続きを行う。   In the next cycle, the S1 arbiter 205 transmits the data transfer request received from the M1 request selector 201 to the S1 via the signal line 122. On the other hand, in M1, the data transfer request that has already been transferred to S1 is permitted to the data transfer system 100, and an ACK is transmitted from the M1 request selector 201 to M1 via the signal line 102. Therefore, M1 transfers data to S2. A request can be output. In this case, the data transfer system 100 that has received the data transfer request for S2 performs the same procedure as when the data transfer request for S1 is received.

以上の処理によって、M1はS1とS2とに交互にデータ転送を要求する場合でも、連続したサイクルでデータ転送リクエストを出力する事が可能となる。即ち、頻繁にデータ転送リクエストを行う対象スレーブを変更してもマスタにおけるデータ転送スループットは低下しない。データ転送リクエストがライトの場合、データ転送リクエストに付随するデータは、データ転送リクエストと同一サイクルで信号線104等を介してマスタ101からスレーブ121へ送信される。一方、データ転送リクエストがリードの場合、データ転送リクエストを受信したスレーブ121から、データ転送リクエストに応じたデータが信号線123等を介してマスタ101へ出力される。
尚、これらのデータの入出力はスレーブのデータ入出力の特徴に合わせたものであれば良く、独自のプロトコルを使用して構わない。
Through the above processing, M1 can output a data transfer request in a continuous cycle even when it requests data transfer alternately to S1 and S2. In other words, even if the target slave that frequently makes data transfer requests is changed, the data transfer throughput in the master does not decrease. When the data transfer request is a write, the data accompanying the data transfer request is transmitted from the master 101 to the slave 121 via the signal line 104 or the like in the same cycle as the data transfer request. On the other hand, when the data transfer request is read, data corresponding to the data transfer request is output to the master 101 via the signal line 123 or the like from the slave 121 that has received the data transfer request.
Note that these data inputs / outputs only need to match the characteristics of the slave data input / output, and an original protocol may be used.

図4は、M1からS1とS2へ交互にデータ転送リクエストが発行される場合の、信号入出力のタイミングチャートを示す図である。1サイクル目(あるいはそれ以前)から、M1には信号線102を介してアックが入力されている。そして2サイクル目においてM1がS1に対するデータ転送リクエストをデータ転送システム100へ出力する。ここでは簡単の為、データ転送リクエストの内容をライトとし、データがデータ転送リクエストと同時に信号線104に出力されるとする。   FIG. 4 is a timing chart of signal input / output when data transfer requests are issued alternately from M1 to S1 and S2. From the first cycle (or earlier), an ACK is input to M1 via the signal line 102. In the second cycle, M1 outputs a data transfer request for S1 to the data transfer system 100. Here, for the sake of simplicity, it is assumed that the content of the data transfer request is written, and the data is output to the signal line 104 simultaneously with the data transfer request.

このデータ転送リクエストとデータは3サイクル目においてS1に出力され、2サイクル目におけるM1からS1へのデータ転送リクエストの送信が完了する。一方、M1は2サイクル目のデータ転送リクエストが許可されたので、3サイクル目でS2に対するデータ転送リクエストを出力する。このリクエストは4サイクル目でS2へ出力される。以上の動作で、M1はS1及びS2へのリクエストを連続したサイクルで交互に実行することができる。   The data transfer request and data are output to S1 in the third cycle, and transmission of the data transfer request from M1 to S1 in the second cycle is completed. On the other hand, since the data transfer request in the second cycle is permitted, M1 outputs a data transfer request for S2 in the third cycle. This request is output to S2 in the fourth cycle. With the above operation, M1 can alternately execute requests to S1 and S2 in successive cycles.

次に、M1とM2からのS1へのデータ転送リクエストが競合する場合について説明する。
まず、M1リクエストセレクタ201は、信号線102を介してアックをM1に対して出力し、M2リクエストセレクタ211は信号線112を介してアックをM2に対して出力しておく。この状態でM1とM2は、S1の記憶領域を示すアドレス情報及びライト又はリードコマンドを含むデータ転送リクエストを、それぞれM1リクエストセレクタ201、M2リクエストセレクタ211に出力する。
Next, a case where data transfer requests from M1 and M2 to S1 conflict will be described.
First, the M1 request selector 201 outputs an ACK to M1 via the signal line 102, and the M2 request selector 211 outputs an ACK to M2 via the signal line 112. In this state, M1 and M2 output the data transfer request including the address information indicating the storage area of S1 and the write or read command to the M1 request selector 201 and the M2 request selector 211, respectively.

M1からデータ転送リクエストが出力されたサイクルと同じサイクルにおいて、M1リクエストセレクタ201はM1から受信したデータ転送リクエストに含まれるアドレス情報に従って、S1に対するデータ転送リクエストをS1アービタ205に対して信号線203を介して出力する。一方、M2リクエストセレクタ211は、M2から受信したデータ転送リクエストに含まれるアドレス情報に従って、S1に対するデータ転送リクエストをS1アービタ205に対して信号線213を介して出力する。   In the same cycle in which the data transfer request is output from M1, the M1 request selector 201 sends a data transfer request for S1 to the S1 arbiter 205 through the signal line 203 in accordance with the address information included in the data transfer request received from M1. Output via. On the other hand, the M2 request selector 211 outputs a data transfer request for S1 to the S1 arbiter 205 via the signal line 213 in accordance with the address information included in the data transfer request received from M2.

信号線203及び信号線213を介してM1からのデータ転送リクエスト及びM2からのデータ転送リクエストを受信したS1アービタ205は、受信したデータ転送リクエストの間で競合判定を行う。ここではM1の優先順位が高いと仮定して説明する。M1の優先順位が高い為、S1アービタ205はM1から受信したデータ転送リクエストを選択し、信号線202を介してアックをM1リクエストセレクタ201に出力する。   The S1 arbiter 205 that has received the data transfer request from the M1 and the data transfer request from the M2 via the signal line 203 and the signal line 213 performs a conflict determination between the received data transfer requests. Here, description will be made assuming that M1 has a high priority. Since the priority order of M1 is high, the S1 arbiter 205 selects the data transfer request received from M1, and outputs an ACK to the M1 request selector 201 via the signal line 202.

尚、データ転送システムは、この優先順位に関する情報をバッファ等に保持している。また、この優先順位は他の装置からの情報に基づいて設定や変更を可能としても良いし、予め固定値が設定されていても良い。更に、優先順位が固定されておらず、公知の方法、例えばサイクリックに優先順位を与える、あるいはランダムで処理順を設定する構成も考えられる。   Note that the data transfer system holds information on the priority order in a buffer or the like. The priority order may be set or changed based on information from another device, or a fixed value may be set in advance. Furthermore, the priority order is not fixed, and a known method, for example, a configuration in which priority order is given cyclically or a processing order is randomly set is also conceivable.

一方、M2リクエストセレクタ211はデータ転送リクエストをS1に出力しているにも関わらずアックが返って来ない為、データ転送リクエストが許可されていないと判断して、M2バッファを制御する信号を信号線116を介してM2バッファ115に出力する。この制御信号は、M2リクエストセレクタ211が、M2から受信したデータ転送リクエストを一時M2バッファ115に格納する処理を制御、具体的にはM2バッファ115へのデータの格納を許可するための信号である。この際、M2リクエストセレクタ211は、次サイクルからはM2バッファ115に格納されたデータ転送リクエストをデータ転送リクエストの競合判定に使用するために、M2バッファ115へ制御信号を出力した事実、即ちM2バッファ115にデータ転送リクエストが格納されていることを示す情報を保持しておく。   On the other hand, the M2 request selector 211 determines that the data transfer request is not permitted because the ACK is not returned although the data transfer request is output to S1, and signals a signal for controlling the M2 buffer. The data is output to the M2 buffer 115 via the line 116. This control signal is a signal for allowing the M2 request selector 211 to control the processing for storing the data transfer request received from the M2 in the temporary M2 buffer 115, specifically, permitting the storage of data in the M2 buffer 115. . At this time, the fact that the M2 request selector 211 outputs a control signal to the M2 buffer 115 in order to use the data transfer request stored in the M2 buffer 115 from the next cycle to determine the contention of the data transfer request, that is, the M2 buffer Information indicating that the data transfer request is stored in 115 is held.

そして次のサイクルにおいて、S1アービタ205はM1から受信したデータ転送リクエストをS1に出力する。これにより、M1からS1へのデータ転送リクエストの送信が完了する。一方、M2のS1に対するデータ転送リクエストはS1に送信されなかった為、M2リクエストセレクタ211はM2に対するアックを下げる。ここで、送信されなかったM2のデータ転送リクエストは、M2リクエストセレクタ211から制御信号を受けたM2バッファ115で、データ転送リクエスト及びそのデータ転送リクエストに付随するデータのペアとして保持される。   In the next cycle, the S1 arbiter 205 outputs the data transfer request received from M1 to S1. Thereby, transmission of the data transfer request from M1 to S1 is completed. On the other hand, since the data transfer request for S1 of M2 has not been transmitted to S1, the M2 request selector 211 lowers the acknowledgment for M2. Here, the M2 data transfer request that has not been transmitted is held in the M2 buffer 115 that has received the control signal from the M2 request selector 211 as a pair of the data transfer request and the data accompanying the data transfer request.

その後M2バッファ115は、自身に格納されたデータ転送リクエストと付随するデータを、信号線117、118を介してM2リクエストセレクタ211へ出力し続ける。   Thereafter, the M2 buffer 115 continues to output the data transfer request stored therein and the accompanying data to the M2 request selector 211 via the signal lines 117 and 118.

M1からのデータ転送リクエストの処理が実行された後、S1アービタ205は、M2リクエストセレクタ211から送信されつづけているデータ転送リクエストについて競合判定を行う。この場合、M2リクエストセレクタ211は、先の処理においてM2バッファへ制御信号を出力している情報を保持している為、M2バッファ115から受信したデータ転送リクエストをM2のデータ転送リクエストと判断し、受信したデータ転送リクエストを信号線213を介してS1アービタ205へ出力している。この場合、M1からのデータ転送リクエストがないと仮定しているので、S1アービタ205は、受信したデータ転送リクエストの処理を許可し、M2リクエストセレクタ211に対してアックを返す。   After the processing of the data transfer request from M1 is executed, the S1 arbiter 205 determines the contention for the data transfer request that is continuously transmitted from the M2 request selector 211. In this case, since the M2 request selector 211 holds the information for outputting the control signal to the M2 buffer in the previous process, the M2 request selector 211 determines that the data transfer request received from the M2 buffer 115 is the M2 data transfer request, The received data transfer request is output to the S1 arbiter 205 via the signal line 213. In this case, since it is assumed that there is no data transfer request from M1, the S1 arbiter 205 permits processing of the received data transfer request and returns an ack to the M2 request selector 211.

S1アービタ205からアックを受信したM2リクエストセレクタ211は、信号線112を介してアックを再びM2に返す。又、M2リクエストセレクタ211は、M2バッファ115に格納されたデータ転送リクエストの使用を停止(無効化)するために、自身が保持していたM2バッファ115に制御信号を出力していたことを示す情報、すなわちM2バッファ115にデータ転送リクエストが格納されていることを示す情報を削除する。   The M2 request selector 211 that receives the ACK from the S1 arbiter 205 returns the ACK to the M2 again via the signal line 112. The M2 request selector 211 indicates that a control signal was output to the M2 buffer 115 held by the M2 request selector 211 in order to stop (invalidate) use of the data transfer request stored in the M2 buffer 115. Information, that is, information indicating that the data transfer request is stored in the M2 buffer 115 is deleted.

尚、M1からのデータ転送リクエストがあった場合には、上述したようにS1アービタ205で再度M1とM2から送信されたデータ転送リクエストの競合判定がされる。ここではM1の優先順位が高いので、M2バッファ115に格納されているデータ転送リクエストの処理は見送られ、M2バッファ115に格納されたデータ転送リクエストはそのまま保持される。   When there is a data transfer request from M1, as described above, the S1 arbiter 205 determines again the conflict between the data transfer requests transmitted from M1 and M2. Here, since the priority of M1 is high, the processing of the data transfer request stored in the M2 buffer 115 is postponed, and the data transfer request stored in the M2 buffer 115 is held as it is.

次のサイクルにおいて、S1アービタ205はM2リクエストセレクタ211から受信したデータ転送リクエストをS1に出力する。これにより、M2からS1へのデータ転送リクエストの送信が完了する。一方、先サイクルにおいてM2バッファ115のデータは無効化されているので、M2リクエストセレクタ211は、信号線117から受信するデータ転送リクエストではなく、信号線113から受信するM2からのデータ転送リクエストを再びS1アービタ205又はS2アービタ215へ転送するようになる。   In the next cycle, the S1 arbiter 205 outputs the data transfer request received from the M2 request selector 211 to S1. Thereby, transmission of the data transfer request from M2 to S1 is completed. On the other hand, since the data in the M2 buffer 115 has been invalidated in the previous cycle, the M2 request selector 211 receives the data transfer request from the M2 received from the signal line 113 instead of the data transfer request received from the signal line 117 again. The data is transferred to the S1 arbiter 205 or the S2 arbiter 215.

以上により、複数のマスタ101からS1へリクエストが競合した場合でも、S1へのデータ転送リクエストを連続サイクルで処理する事が可能となる。データの入出力に関しては、M1からS1、S2へ交互にデータ転送リクエストが送信される場合と同様である。   As described above, even when requests from a plurality of masters 101 conflict with S1, it is possible to process data transfer requests to S1 in a continuous cycle. Data input / output is the same as when data transfer requests are alternately transmitted from M1 to S1 and S2.

図5は、S1においてM1とM2のデータ転送リクエストが競合する場合における信号入出力のタイミングチャート例を示す図である。1サイクル目においてM1にはM1リクエストセレクタ201からアックが入力されており、M2にはM2リクエストセレクタ211からアックが入力されている。そして2サイクル目において、M1がS1に対するデータ転送リクエストを出力し、M2がS1に対するデータ転送リクエストを出力する。先述同様、ここではデータ転送リクエストの内容をライトとし、M1からはデータ転送リクエストとともにそれに付随するデータが、M2からはデータ転送リクエストとともにそれに付随するデータが信号線104及び114を介して各々M1リクエストセレクタ201及びM2リクエストセレクタ211へ送信される。   FIG. 5 is a diagram illustrating an example of a signal input / output timing chart when the data transfer requests of M1 and M2 compete in S1. In the first cycle, an ack is input from M1 request selector 201 to M1, and an ack is input from M2 request selector 211 to M2. In the second cycle, M1 outputs a data transfer request for S1, and M2 outputs a data transfer request for S1. As described above, the contents of the data transfer request are written here, the data transfer request is accompanied by a data transfer request from M1, and the data transfer request is accompanied by a data transfer request from M2 via the signal lines 104 and 114, respectively. It is transmitted to the selector 201 and the M2 request selector 211.

2サイクル目においてS1に対するデータ転送リクエストの競合が発生している為、データ転送システム100内部、具体的にはS1アービタ205で競合判定が行われる。その結果、本例では3サイクル目においてS1に対してM1のデータ転送リクエストが出力される。一方、M2ではデータ転送リクエストの送信が許可されなかった為、M2へのアックが下がり、2サイクル目にM2から出力されたデータ転送リクエストはM2バッファ115に格納される。   Since a data transfer request contention for S1 occurs in the second cycle, the contention determination is performed in the data transfer system 100, specifically, in the S1 arbiter 205. As a result, in this example, a data transfer request of M1 is output to S1 in the third cycle. On the other hand, since the transmission of the data transfer request is not permitted in M2, the ACK to M2 is lowered, and the data transfer request output from M2 in the second cycle is stored in the M2 buffer 115.

その後のサイクルにおいて、M1から次のデータ転送リクエストが入力され、M2からも次のデータ転送リクエストが入力される。しかしデータ転送システム100はM2のデータ転送リクエストを受け付けず、それ以前に転送されM2バッファ115に格納されているデータ転送リクエストと新たに受取ったM1のデータ転送リクエストとで競合判定を行う。   In the subsequent cycle, the next data transfer request is input from M1, and the next data transfer request is also input from M2. However, the data transfer system 100 does not accept the M2 data transfer request, and makes a conflict determination between the data transfer request transferred before that and stored in the M2 buffer 115 and the newly received M1 data transfer request.

競合判定を行った結果、4サイクル目においてS1に対してM1のデータ転送リクエストが出力される。3サイクル目におけるM2のデータ転送リクエストはまだS1に対して出力できていない為、M2に対するデータ転送システム100からのアックはまだ下がったままである。したがって、M2はデータ転送リクエストをデータ転送システム100に出力し続ける。本図の例では、M2は、M1のデータ転送リクエストの処理が終了した後の7サイクル目までデータ転送リクエストの転送を続ける。   As a result of the contention determination, the M1 data transfer request is output to S1 in the fourth cycle. Since the data transfer request of M2 in the third cycle has not yet been output to S1, the acknowledgment from the data transfer system 100 to M2 is still lowered. Therefore, M2 continues to output the data transfer request to the data transfer system 100. In the example of this figure, M2 continues to transfer the data transfer request until the seventh cycle after the processing of the data transfer request of M1 is completed.

そして、6サイクル目においてM1からのデータ転送リクエストの処理が終了すると、データ転送システム100は、M2バッファ115に格納されているデータ転送リクエストがS1へ送信可能と判断し、7サイクル目においてそのデータ転送リクエストをS1に対して出力する。これにより、データ転送システム100はアックをM2に再び返す。アックを受信したM2は3サイクル目からデータ転送システム100に送信していたデータ転送リクエストが許可されたと判断し、8サイクル目に更に次のデータ転送リクエストを出力する。7サイクル目で許可されたデータ転送リクエストに基づいて、8サイクル目でそのデータ転送リクエストがS1に送信される。8サイクル目で送信されたデータ転送リクエストは、9サイクル目にS1へ出力される。9サイクル目のM2からのリクエスト、10サイクル目のS1への出力も同様である。以上の動作から、M1とM2のリクエストが競合した場合においても、S1へのリクエストを連続サイクルで行う事が可能となる。   When processing of the data transfer request from M1 ends in the sixth cycle, the data transfer system 100 determines that the data transfer request stored in the M2 buffer 115 can be transmitted to S1, and in the seventh cycle, the data A transfer request is output to S1. As a result, the data transfer system 100 returns the acknowledgment to M2. M2 having received the ACK determines that the data transfer request transmitted to the data transfer system 100 from the third cycle is permitted, and further outputs the next data transfer request in the eighth cycle. Based on the data transfer request permitted in the seventh cycle, the data transfer request is transmitted to S1 in the eighth cycle. The data transfer request transmitted in the eighth cycle is output to S1 in the ninth cycle. The same applies to the request from M2 in the ninth cycle and the output to S1 in the tenth cycle. From the above operation, even when the requests of M1 and M2 compete, it is possible to make a request to S1 in a continuous cycle.

本実施形態によれば、マスタのリクエストと同一サイクルでデータ転送システム100がアックを返せる為、マスタが異なるスレーブに対してリクエストを切り替えてもデータ転送スループットが低下しない。   According to this embodiment, since the data transfer system 100 can return an ACK in the same cycle as the master request, the data transfer throughput does not decrease even if the master switches the request to a different slave.

又、本実施形態によれば、複数のマスタのリクエストが競合してもスレーブにおけるデータ転送スループットが低下しない。一方、マスタのリクエストをバッファに格納した時にデータ転送システム100がそのリクエストを出力したマスタのアックを下げ、バッファに格納したリクエストを対象スレーブに対して出力した時に再びアックを返す事で正常なデータ転送システムとして動作する為、バッファはそれぞれのマスタに対して1リクエスト分のサイズのものを設ければ良い。   Further, according to the present embodiment, the data transfer throughput in the slave does not decrease even if requests from a plurality of masters compete. On the other hand, when the master request is stored in the buffer, the data transfer system 100 lowers the ACK of the master that output the request, and returns the ACK again when the request stored in the buffer is output to the target slave. In order to operate as a transfer system, a buffer having a size corresponding to one request may be provided for each master.

尚、マスタやスレーブの数は幾つでもよく、この場合、データ転送システム100は、スレーブの数に対応するアービタを有し、そのアービタ毎にデータ転送リクエストの競合判定が行われる。   The number of masters and slaves may be any number. In this case, the data transfer system 100 has an arbiter corresponding to the number of slaves, and a data transfer request conflict determination is performed for each arbiter.

本実施形態のシステム構成例を示す図である。It is a figure which shows the system configuration example of this embodiment. マスタ及びスレーブとデータ転送システムの構成例を示す図である。It is a figure which shows the structural example of a master and a slave, and a data transfer system. データ転送システムの内部構成例を示す図である。It is a figure which shows the internal structural example of a data transfer system. 実施形態における単一マスタから複数スレーブへの交互リクエスト時におけるタイミングチャートの例を示す図である。It is a figure which shows the example of the timing chart at the time of the alternating request from the single master in this embodiment to several slaves. 実施形態における複数マスタから単一スレーブへのリクエスト競合時におけるタイミングチャートの例を示す図である。It is a figure which shows the example of the timing chart at the time of the request contention from the some master to the single slave in embodiment.

符号の説明Explanation of symbols

100…データ転送システム、101…M1、105…M1バッファ、111…M2、115…M2バッファ、121…S1、131…S2、201…M1リクエストセレクタ、211…M2リクエストセレクタ。
DESCRIPTION OF SYMBOLS 100 ... Data transfer system, 101 ... M1, 105 ... M1 buffer, 111 ... M2, 115 ... M2 buffer, 121 ... S1, 131 ... S2, 201 ... M1 request selector, 211 ... M2 request selector.

Claims (7)

リクエストを調停するデータ転送システムであって、
該データ転送システムに接続されるマスタに予めアクノリッジを送信し、
前記マスタから送信されたリクエストを該データ転送システムに接続されたスレーブへ転送することを特徴とするデータ転送システム。
A data transfer system that arbitrates requests,
Send an acknowledge in advance to the master connected to the data transfer system,
A data transfer system for transferring a request transmitted from the master to a slave connected to the data transfer system.
リクエストを調停するデータ転送システムであって、
該データ転送システムに接続される複数のマスタ其々に予めアクノリッジを送信し、
前記複数のマスタから送信されたスレーブへのリクエストの双方を受け付け、そのうちの一方を前記スレーブへ転送し、他方のリクエストを該データ転送システムが有するバッファに格納することを特徴とするデータ転送システム。
A data transfer system that arbitrates requests,
An acknowledgment is transmitted in advance to each of a plurality of masters connected to the data transfer system,
A data transfer system that receives both requests sent from the plurality of masters to a slave, transfers one of the requests to the slave, and stores the other request in a buffer of the data transfer system.
請求項2記載のデータ転送システムであって、
前記バッファに格納されたリクエストを送信した前記マスタへの前記アクノリッジの送信を停止することを特徴とするデータ転送システム。
The data transfer system according to claim 2, wherein
A data transfer system, wherein transmission of the acknowledge to the master that has transmitted the request stored in the buffer is stopped.
請求項3記載のデータ転送システムであって、
前記バッファに格納されたリクエストを前記スレーブへ転送されたリクエストの処理の終了後に前記スレーブへ転送し、
前記停止された前記アクノリッジの送信を再開することを特徴とするデータ転送システム。
The data transfer system according to claim 3, wherein
Transfer the request stored in the buffer to the slave after completion of processing the request transferred to the slave,
A data transfer system which resumes transmission of the stopped acknowledge.
請求項4記載のデータ転送システムであって、
前記複数のマスタのうち一つはCPU、前記スレーブはメモリであることを特徴とするデータ転送システム。
The data transfer system according to claim 4, wherein
One of the plurality of masters is a CPU, and the slave is a memory.
請求項4記載のデータ転送システムであって、
前記複数のマスタのうち一つはCPU、前記スレーブは暗号演算装置であることを特徴とするデータ転送システム。
The data transfer system according to claim 4, wherein
One of the plurality of masters is a CPU, and the slave is a cryptographic operation device.
情報処理システムにおけるデータ転送方法であって、
情報処理システムが有する調停装置は、
各マスタへ予めアクノリッジを送信し、
各マスタから受取った一つのスレーブに対する複数のリクエストの競合を判定し、
判定で選択されたリクエストをスレーブへ送信し、
判定で選択されなかったリクエストを一時的に保存し、
前記選択されたリクエストの処理が終了した後に前記一時的に保存したリクエストを前記スレーブに転送することを特徴とするデータ転送方法。
A data transfer method in an information processing system,
The mediation device that the information processing system has is
Send an acknowledge to each master beforehand,
Determine the conflict of multiple requests for one slave received from each master,
Send the request selected in the judgment to the slave,
Temporarily save requests that were not selected in the decision,
A data transfer method comprising: transferring the temporarily stored request to the slave after the processing of the selected request is completed.
JP2003339152A 2003-09-30 2003-09-30 High-throughput data transfer system Pending JP2005107771A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003339152A JP2005107771A (en) 2003-09-30 2003-09-30 High-throughput data transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003339152A JP2005107771A (en) 2003-09-30 2003-09-30 High-throughput data transfer system

Publications (1)

Publication Number Publication Date
JP2005107771A true JP2005107771A (en) 2005-04-21

Family

ID=34534410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003339152A Pending JP2005107771A (en) 2003-09-30 2003-09-30 High-throughput data transfer system

Country Status (1)

Country Link
JP (1) JP2005107771A (en)

Similar Documents

Publication Publication Date Title
JP4322451B2 (en) Data transfer method between DSP memories or between DSP memory and CPU memory (DPRAM)
US7689732B2 (en) Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
KR20070104929A (en) Flow control method to improve data transfer via a switch matrix
JP2012064021A (en) Communication system, master device and slave device, and communication method
KR100644596B1 (en) Bus system and bus arbitration method thereof
US20050177674A1 (en) Configurable embedded processor
JP4902640B2 (en) Integrated circuit and integrated circuit system
JP2007172112A (en) Memory controller
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
CN114780460B (en) DMA controller and method
JP4104939B2 (en) Multiprocessor system
US20040230717A1 (en) Processing device
JP2005085079A (en) Data transfer controller
US20050135402A1 (en) Data transfer apparatus
JP2005107771A (en) High-throughput data transfer system
JP2008165463A (en) Bus controller
US8239652B2 (en) Data processing system
KR100475438B1 (en) Data bus system and method for performing cross-access between buses
US20100153610A1 (en) Bus arbiter and bus system
JP2007506174A (en) Integrated circuit having a plurality of communication digital signal processors
JP4190969B2 (en) Bus arbitration system in bus system and AMBA
JP3959407B2 (en) Image processing apparatus and image processing system
KR20010050234A (en) Addressing of a memory
JP2000250850A (en) Bus control device, master device, slave device and bus control method
CN115964982A (en) Topological structure of accelerator