JP2012173847A - Bus arbitration device and bus arbitration method - Google Patents

Bus arbitration device and bus arbitration method Download PDF

Info

Publication number
JP2012173847A
JP2012173847A JP2011033203A JP2011033203A JP2012173847A JP 2012173847 A JP2012173847 A JP 2012173847A JP 2011033203 A JP2011033203 A JP 2011033203A JP 2011033203 A JP2011033203 A JP 2011033203A JP 2012173847 A JP2012173847 A JP 2012173847A
Authority
JP
Japan
Prior art keywords
request
master
access
information
slave
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.)
Withdrawn
Application number
JP2011033203A
Other languages
Japanese (ja)
Inventor
Akira Yamamoto
亮 山本
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011033203A priority Critical patent/JP2012173847A/en
Publication of JP2012173847A publication Critical patent/JP2012173847A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a bus arbitration device for achieving access control while maintaining data transfer efficiency even when the same access request is redundantly generated from a plurality of masters to slaves.SOLUTION: A bus arbitration device 10 configured to arbitrate access from masters 2a-2c to slaves 3a-3b connected to a bus 1 includes: an under-transfer request storage part 12 for storing the information of a first request command and a first destination address under transmission from the masters as first request information; a pre-transfer request storage part 13 for storing the first request information which has been transmitted from the masters to the slaves as second request information; and a determination part 11 for receiving the first and second request information from the under-transfer request storage part 12 and the pre-transfer request storage part 13, and for selecting the masters 2a-2c by using those information, and for determining the masters as those which are able to perform access to the slaves 3a and 3b as access request destinations.

Description

本発明は、スプリットトランザクション方式によるメモリへのアクセス制御に関するものである。 The present invention relates to memory access control by a split transaction method.

スプリットトランザクション方式によりメモリへのアクセスを効率的に行う装置として、従来、メモリへの書込命令、書込データ、及びメモリからの読込命令を送信路に送信する送信処理インタフェースと、メモリから読み出された読込データを受信路から受信する受信処理インタフェースと、書込命令、書込データ、及び読込命令を受信する受信部と、受信した書込命令を一時保管するバッファと、書込命令及び書込データのうちいずれか一つ以上の送信処理をしている間に受信した次の書込命令をバッファに保管し、バッファに書込命令を保管している間に後続の読込命令を受信した場合に読込命令を保管中の書込命令より先に送信処理インタフェースに受け渡す制御を行う制御部と、を備え、送信側、受信側の伝送路の遊休期間を削減する半導体集積回路がある(例えば、特許文献1参照)。 As a device that efficiently accesses the memory by the split transaction method, conventionally, a transmission processing interface that transmits a write command to the memory, write data, and a read command from the memory to the transmission path, and reading from the memory Receiving processing interface for receiving the read data read from the receiving path, a receiving unit for receiving the write command, the write data and the read command, a buffer for temporarily storing the received write command, a write command and a write command The next write command received during transmission processing of one or more of the stored data is stored in the buffer, and the subsequent read command is received while the write command is stored in the buffer And a control unit that performs control to pass the read command to the transmission processing interface before the write command that is being stored, thereby reducing the idle period of the transmission path on the transmission side and the reception side There is a semiconductor integrated circuit that (for example, see Patent Document 1).

特開2008−250985号公報JP 2008-250985 A

しかしながら、特許文献1に記載の半導体集積回路においては、複数のマスタからスレーブであるメモリへ同一のアクセス要求(すなわち、書込命令または読込命令)が重複して発生した場合に、特定のマスタからの要求を優先して他のマスタからの要求を遅延させうるため、データ転送効率を劣化させるおそれがあった。 However, in the semiconductor integrated circuit described in Patent Document 1, when the same access request (that is, a write command or a read command) is repeatedly generated from a plurality of masters to a slave memory, Since the request from other masters can be delayed with priority given to the request, the data transfer efficiency may be deteriorated.

本発明はこのような問題を解決するためになされたもので、複数のマスタからスレーブへ同一のアクセス要求が重複して発生した場合であっても、データ転送効率を維持しつつアクセス制御が可能なバス調停装置を得ることを目的とする。 The present invention has been made to solve such a problem, and even when the same access request is repeatedly generated from a plurality of masters to a slave, access control can be performed while maintaining data transfer efficiency. An object is to obtain a bus arbitration device.

本発明に係るバス調停装置は、バスに接続された第1のマスタ及び第2のマスタからバスに接続されたスレーブに対し同じタイミングでアクセス要求がなされた場合に第1のマスタ及び第2のマスタからスレーブへのアクセス要求を調停する前記バスに接続されたバス調停装置であって、第1のマスタがスレーブに対してアクセス要求する第1のリクエストコマンド及び第1のリクエストコマンドの実行先スレーブを示す第1の宛先アドレスの情報を第1のマスタから第1のタイミングに受信し、第2のマスタがスレーブに対してアクセスを要求する第2のリクエストコマンド及び第2のリクエストコマンドの実行先スレーブを示す第2の宛先アドレスの情報を第2のマスタから第1のタイミングに受信し、受信した第1のリクエストコマンド、第1の宛先アドレスの情報、第2のリクエストコマンド、及び第2の宛先アドレスの情報を第1のリクエスト情報として保持する第1のリクエスト保持部と、第1のマスタ又は第2のマスタからスレーブに対してアクセス要求され第1のタイミングより前の第2のタイミングに実行されたリクエストコマンド及びそのリクエストコマンドの実行先スレーブを示す宛先アドレスの情報を第2のリクエスト情報として保持する第2のリクエスト保持部と、第1のリクエスト保持部から第1のリクエスト情報を受信し、第2のリクエスト保持部から第2のリクエスト情報を受信し、この第1及び第2のリクエスト情報を用いて、第1のタイミングにおける第1のマスタからのアクセス要求または第2のマスタからのアクセス要求のいずれを実行するかを判定する判定部と、を備えたものである。 In the bus arbitration device according to the present invention, when an access request is made at the same timing from the first master and the second master connected to the bus to the slave connected to the bus, the first master and the second master A bus arbitration device connected to the bus for arbitrating an access request from a master to a slave, wherein the first master requests an access request to the slave by the first master, and an execution slave of the first request command The first destination address information indicating the first request address is received from the first master at the first timing, and the second request command from which the second master requests access to the slave and the execution destination of the second request command Information on the second destination address indicating the slave is received from the second master at the first timing, and the received first request command is received. A first request holding unit that holds the first destination address information, the second request command, and the second destination address information as the first request information, and the first master or the second master. A request command that is requested to be accessed by the slave and executed at a second timing before the first timing and a destination address indicating the execution destination slave of the request command are held as second request information. The first request information is received from the request holding unit and the first request holding unit, the second request information is received from the second request holding unit, and using the first and second request information, Execute either the access request from the first master or the access request from the second master at the first timing A determining unit to Luke, those having a.

本発明によれば、バス調停装置は上記構成を備えたことにより、複数のマスタから同一のアクセス要求が重複して発生した場合であっても、データ転送効率を維持しつつアクセス制御できる。 According to the present invention, the bus arbitration apparatus has the above-described configuration, so that access control can be performed while maintaining the data transfer efficiency even when the same access request is repeatedly generated from a plurality of masters.

実施の形態1に係るバス調停装置を備えたバスシステムの構成図である。1 is a configuration diagram of a bus system including a bus arbitration device according to Embodiment 1. FIG. 図1におけるバス調停装置の構成詳細を示す図である。It is a figure which shows the structure details of the bus arbitration apparatus in FIG. 図2における転送中リクエスト保持部及び前転送リクエスト保持部が保持するデータの構成イメージ図である。FIG. 3 is a conceptual image diagram of data held by an in-transfer request holding unit and a previous transfer request holding unit in FIG. 2. 図1における判定部が行う判定処理を示すフローチャートである。It is a flowchart which shows the determination process which the determination part in FIG. 1 performs. 図1の判定部が使用するリクエスト状態テーブルのイメージ図である。It is an image figure of the request state table which the determination part of FIG. 1 uses. 図1における判定部が行う別の判定処理を示すフローチャートである。It is a flowchart which shows another determination process which the determination part in FIG. 1 performs. 図1における前転送リクエスト保持部が保持するデータの別の構成イメージ図である。It is another structure image figure of the data which the front transfer request holding part in FIG. 1 hold | maintains.

実施の形態1.
本発明を実施するための実施の形態1に係るバス調停装置を図1ないし図6を用いて説明する。図1はバス調停部10を備えたバスシステム100の構成を示している。バスシステム100はCPUやDMAなどのマスタ2a〜2c、バス1、バス1を介してマスタ2a〜2cと接続されたスレーブ3a、3b、を備えている。バス1にはマスタ2a〜2cからスレーブ3a、3bへのアクセス要求を調停するバス調停部10、マスタ2a〜2cのアクセス要求であるリクエストコマンド及びリクエスト要求先スレーブのアドレスを選択するリクエスト・アドレス選択部4、マスタ2a〜2cからスレーブ3a、3bに書き込まれるデータを選択するライトデータ選択部5、スレーブ3a、3bから読み出すデータを選択するリードデータ選択部6、リクエスト・アドレス選択部4により選択されたアドレスの制御を行うアドレス制御部7a、7bが設けられている。
Embodiment 1 FIG.
A bus arbitration apparatus according to Embodiment 1 for carrying out the present invention will be described with reference to FIGS. FIG. 1 shows a configuration of a bus system 100 including a bus arbitration unit 10. The bus system 100 includes masters 2a to 2c such as CPU and DMA, a bus 1, and slaves 3a and 3b connected to the masters 2a to 2c via the bus 1. A bus arbitration unit 10 that arbitrates access requests from the masters 2a to 2c to the slaves 3a and 3b, a request command that is an access request of the masters 2a to 2c, and a request address selection that selects the address of the request request destination slave 4, selected by the write data selection unit 5 that selects data to be written from the masters 2 a to 2 c to the slaves 3 a and 3 b, the read data selection unit 6 that selects data to be read from the slaves 3 a and 3 b, and the request / address selection unit 4. Address control units 7a and 7b for controlling the addresses are provided.

ここで、バス1、マスタ2a〜2c、スレーブ3a、3bは同じクロック(図示しない)に同期して動作するものであって、バス調停は毎クロック行われるものとする。また、ここではスレーブ7a、7bを2ポートメモリとして説明するが、1ポートメモリであっても良く、マスタ2a〜2c、アドレス制御部7a、7b、スレーブ3a、3bの個数も本実施の形態の個数に限らない。また、リクエスト・アドレス選択部4はリクエスト選択部とアドレス選択部を別々に設けても良い。 Here, the bus 1, the masters 2a to 2c, and the slaves 3a and 3b operate in synchronization with the same clock (not shown), and bus arbitration is performed every clock. Although the slaves 7a and 7b are described as two-port memories here, they may be one-port memories, and the number of masters 2a to 2c, address control units 7a and 7b, and slaves 3a and 3b is also the same as that of the present embodiment. It is not limited to the number. The request / address selection unit 4 may be provided with a request selection unit and an address selection unit separately.

バス調停部10は、あるマスタ(例えばマスタ2a)からあるスレーブ(例えばスレーブ3a)に対してデータを送信している最中に、複数のマスタ2a〜2cからスレーブ3a、3bに対して同一のリクエストコマンド(ライトリクエストまたはリードリクエスト)が重複して送信された場合に、現在転送中のバーストデータのデータ転送後にどのリクエストコマンドに対応するバーストデータを転送するか、すなわち宛先であるスレーブ3aまで到達させるかを調停するものである。 During the transmission of data from a certain master (for example, master 2a) to a certain slave (for example, slave 3a), the bus arbitration unit 10 is identical to the slaves 3a and 3b from the plurality of masters 2a to 2c. When request commands (write request or read request) are transmitted in duplicate, the burst data corresponding to which request command is transferred after the data transfer of the currently transferred burst data, that is, the destination slave 3a is reached. It mediates what to do.

バス調停部10は、図2に示すように、所定の条件(後述)に基いて転送するコマンド及び宛先のスレーブ3a(または3b)を判定し、リクエスト・アドレス選択信号20、ライトデータ選択信号21、リードデータ選択信号22を生成する判定部11と、マスタ2a〜2cからリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cを受信してこれらの情報を一時保持した後、転送済データ信号34として送信する転送中リクエスト保持部12と、転送中リクエスト保持部12から転送済データ信号34を受信してこれを一時保持する前転送リクエスト保持部13と、外部から入力される外部調停モード設定信号37によりバス調停モードを設定する調停モード設定部14と、を備えている。
なお、リクエスト・アドレス選択部4をリクエスト選択部とアドレス選択部に分けた場合、リクエスト・アドレス選択信号20の代わりにリクエスト選択信号とアドレス選択信号の2つが必要となる。
As shown in FIG. 2, the bus arbitration unit 10 determines a command to be transferred and a destination slave 3a (or 3b) based on a predetermined condition (described later), and requests / address selection signal 20 and write data selection signal 21. The determination unit 11 that generates the read data selection signal 22 receives the request command signals 101a to 101c and the address signals 102a to 102c from the masters 2a to 2c, temporarily stores these information, and then transfers them as the transferred data signal 34. In-transfer request holding unit 12 to be transmitted, pre-transfer request holding unit 13 that receives the transferred data signal 34 from the in-transfer request holding unit 12 and temporarily holds it, and external arbitration mode setting signal 37 input from the outside And an arbitration mode setting unit 14 for setting the bus arbitration mode.
When the request / address selection unit 4 is divided into a request selection unit and an address selection unit, two request selection signals and address selection signals are required instead of the request / address selection signal 20.

図3に転送中リクエスト保持部12及び前転送リクエスト保持部13が保持するデータの構成イメージ図を示す。
転送中リクエスト保持部12及び前転送リクエスト保持部13は、リクエスト要求先であるスレーブ2a、2bそれぞれについて、リクエストコマンド信号101a〜101cの情報を格納するコマンド領域40とリクエスト要求元であるマスタ3a〜3cの番号を格納するマスタ番号領域41とを有する。リクエストコマンド信号101a〜101cの情報とは、具体的には、スレーブへのデータ書き込みを要求するライトリクエスト、スレーブからデータ読み出しを要求するリードリクエスト、データの書き込みも読み出しも要求しないアイドルの3つの情報のいずれかのことである。
FIG. 3 shows an image of the configuration of data held by the in-transfer request holding unit 12 and the previous transfer request holding unit 13.
The in-transfer request holding unit 12 and the previous transfer request holding unit 13 have a command area 40 for storing information of the request command signals 101a to 101c and a request request source master 3a to the request request slaves 2a and 2b, respectively. And a master number area 41 for storing 3c numbers. Specifically, the information of the request command signals 101a to 101c includes three types of information: a write request for requesting data writing to the slave, a read request for requesting data reading from the slave, and an idle request for neither data writing nor reading. Any one of them.

ここで、バスシステム100の動作について説明する。
マスタ2a〜2cからリクエストコマンド信号101a〜101c、アドレス信号102a〜102c、ライトデータ信号103a〜103cがバス1に入力されると、リクエストコマンド信号101a〜101cとアドレス信号102a〜102cはそれぞれ2つに分岐され、一方はバス調停部10へ、他方はリクエストコマンド・アドレス選択部4へ送信される。また、ライトデータ信号103a〜103cはライトデータ選択部5へ送信される。
Here, the operation of the bus system 100 will be described.
When request command signals 101a to 101c, address signals 102a to 102c, and write data signals 103a to 103c are input to the bus 1 from the masters 2a to 2c, the request command signals 101a to 101c and the address signals 102a to 102c are respectively two. One is sent to the bus arbitration unit 10 and the other is sent to the request command / address selection unit 4. The write data signals 103 a to 103 c are transmitted to the write data selection unit 5.

リクエストコマンド・アドレス選択部4は、バス調停部10内の判定部11より受信したリクエストコマンド・アドレス選択信号20に応じて、マスタ2a〜2cから入力されるリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cの中から1つのリクエストコマンド信号とこれに対応するアドレス信号を選択し、アドレス制御部7a、7bに選択リクエストコマンド・アドレス信号200を送信する。 The request command / address selection unit 4 responds to the request command / address selection signal 20 received from the determination unit 11 in the bus arbitration unit 10 and requests command signals 101a to 101c and address signals 102a input from the masters 2a to 2c. A request command signal and an address signal corresponding to the request command signal are selected from -102c, and a selection request command / address signal 200 is transmitted to the address control units 7a and 7b.

同様に、ライトデータ選択部5は、判定部11より受信したライトデータ選択信号21に応じて、マスタ2a〜2cから入力されるライトデータ信号103a〜103cの中から1つのライトデータ信号を選択し、このライトデータに対応するリクエストコマンドの宛先であるスレーブ3a(又は3b)に選択されたバーストデータ201を送信する。 Similarly, the write data selection unit 5 selects one write data signal from the write data signals 103a to 103c input from the masters 2a to 2c in accordance with the write data selection signal 21 received from the determination unit 11. The selected burst data 201 is transmitted to the slave 3a (or 3b) that is the destination of the request command corresponding to this write data.

アドレス制御部7aはリクエストコマンド・アドレス選択部4より選択リクエストコマンド・アドレス信号200を受信すると、選択されたリクエストコマンドがライトデータを要求するものであるかリードデータを要求するものであるかを判断する。
ライトデータを要求するリクエストコマンドである場合、アドレス制御部7aは選択されたアドレス信号が対応するスレーブ3a宛であるか否かを判断し、スレーブ3a宛であればバーストデータ用のライトイネーブル信号202aとバーストアドレス信号204aを生成してスレーブ3aへ送信する。このとき、ライトデータ選択部5により選択されたバーストデータ201がスレーブ3aに到達するタイミングと、生成したライトイネーブル信号202a及びバーストアドレス信号204aがスレーブ3aに到達するタイミングは一致するようにアドレス制御部7aにて調整する。
When the address control unit 7a receives the selection request command / address signal 200 from the request command / address selection unit 4, the address control unit 7a determines whether the selected request command requests write data or read data. To do.
In the case of a request command for requesting write data, the address controller 7a determines whether or not the selected address signal is addressed to the corresponding slave 3a, and if it is addressed to the slave 3a, the write enable signal 202a for burst data is determined. A burst address signal 204a is generated and transmitted to the slave 3a. At this time, the address control unit so that the timing at which the burst data 201 selected by the write data selection unit 5 reaches the slave 3a and the timing at which the generated write enable signal 202a and burst address signal 204a arrive at the slave 3a coincide with each other. Adjust with 7a.

一方、リクエストコマンド・アドレス選択部4により選択されたリクエストコマンドがリードデータを要求するリクエストコマンドである場合、アドレス制御部7aは選択されたアドレス信号が対応するスレーブ3a宛であるか否かを判断し、スレーブ3a宛であればバーストデータ用のリードイネーブル信号203aとバーストアドレス信号204aを生成してスレーブ7aへ送信する。
そして、連続する同一要求・同一宛先のバーストデータ用のライトイネーブル信号202a、リードイネーブル信号203a、バーストアドレス信号204aの送信が完了すると、バス調停部10内の判定部11へ転送終了信号23aを送信する。
On the other hand, when the request command selected by the request command / address selection unit 4 is a request command for requesting read data, the address control unit 7a determines whether the selected address signal is addressed to the corresponding slave 3a. If it is addressed to the slave 3a, a burst data read enable signal 203a and a burst address signal 204a are generated and transmitted to the slave 7a.
When the transmission of the write enable signal 202a, the read enable signal 203a, and the burst address signal 204a for successive burst data of the same request and the same destination is completed, the transfer end signal 23a is transmitted to the determination unit 11 in the bus arbitration unit 10. To do.

アドレス制御部7bも同様に、リクエストコマンド・アドレス選択部4より選択リクエストコマンド・アドレス信号200を受信すると、選択されたリクエストコマンドがライトデータを要求するものであるかリードデータを要求するものであるかを判断する。
ライトデータを要求するリクエストコマンドである場合、選択されたアドレス信号が自身と対応するスレーブ3b宛であるか否かを判断し、スレーブ3b宛であればバーストデータ用のライトイネーブル信号202bとバーストアドレス信号204bを生成してスレーブ3bへ送信する。
Similarly, when the address control unit 7b receives the selection request command / address signal 200 from the request command / address selection unit 4, the address control unit 7b requests the write data or the read data. Determine whether.
In the case of a request command for requesting write data, it is determined whether or not the selected address signal is addressed to the slave 3b corresponding to itself, and if it is addressed to the slave 3b, the write enable signal 202b for burst data and the burst address are determined. A signal 204b is generated and transmitted to the slave 3b.

リードデータを要求するリクエストコマンドである場合、選択されたアドレス信号が自身と対応するスレーブ3b宛であるか否かを判断し、スレーブ3b宛であればバーストデータ用のリードイネーブル信号203bとバーストアドレス信号204bを生成してスレーブ3bへ送信する。
そして、連続する同一要求・同一宛先のバーストデータ用のライトイネーブル信号202b、リードイネーブル信号203b、バーストアドレス信号204bの送信が完了すると、バス調停部10内の判定部11へ転送終了信号23bを送信する。
なお、ここではスレーブとして2ポートメモリを想定しているためライトイネーブル信号とリードイネーブル信号を生成しているが、1ポートメモリの場合は一種類のイネーブル信号をライト用とリード用で併用することになる。
In the case of a request command for requesting read data, it is determined whether or not the selected address signal is addressed to the slave 3b corresponding to itself, and if it is addressed to the slave 3b, the read enable signal 203b for burst data and the burst address are determined. A signal 204b is generated and transmitted to the slave 3b.
When the transmission of the write enable signal 202b, the read enable signal 203b, and the burst address signal 204b for successive burst data of the same request and the same destination is completed, the transfer end signal 23b is transmitted to the determination unit 11 in the bus arbitration unit 10. To do.
In this case, since a two-port memory is assumed as a slave, a write enable signal and a read enable signal are generated. However, in the case of a one-port memory, one kind of enable signal is used for both writing and reading. become.

スレーブ3aはアドレス制御部7aからライトイネーブル信号202a及びバーストアドレス信号204aを、ライトデータ選択部5からバーストデータ201を受信すると、受信したバーストデータ201を書き込む。また、アドレス制御部7aからリードイネーブル信号203aとバーストアドレス信号204aを受信すると、要求元のマスタ2a〜2cを宛先としてリードデータをリードデータ選択部6に向けて出力する。
スレーブ3bも同様に、アドレス制御部7bからライトイネーブル信号202b及びバーストアドレス信号204bを、ライトデータ選択部5からバーストデータ201を受信するとバーストデータ201を書き込み、リードイネーブル信号203bとバーストアドレス信号204bを受信すると、要求元のマスタ2a〜2cを宛先としてリードデータをリードデータ選択部6に向けて出力する。
When the slave 3a receives the write enable signal 202a and the burst address signal 204a from the address control unit 7a and the burst data 201 from the write data selection unit 5, the slave 3a writes the received burst data 201. When the read enable signal 203a and the burst address signal 204a are received from the address control unit 7a, the read data is output to the read data selection unit 6 with the requesting masters 2a to 2c as destinations.
Similarly, when the slave 3b receives the write enable signal 202b and the burst address signal 204b from the address controller 7b, and receives the burst data 201 from the write data selector 5, the burst data 201 is written, and the read enable signal 203b and the burst address signal 204b are received. When received, the read data is output to the read data selection unit 6 with the requesting masters 2a to 2c as destinations.

リードデータ選択部6は、判定部11より受信したリードデータ選択信号22に応じて、スレーブ3a、3bより入力されるリードデータ信号205a、205bを選択し、リード要求元であるマスタ2a〜2cのいずれかにリードデータ信号205として送信する。
マスタ2a〜2cはこのリードデータ信号205を受信し、所望のスレーブ3a、3bのデータを読み込む。
The read data selection unit 6 selects the read data signals 205a and 205b input from the slaves 3a and 3b according to the read data selection signal 22 received from the determination unit 11, and the masters 2a to 2c that are read request sources. The read data signal 205 is transmitted to either of them.
The masters 2a to 2c receive the read data signal 205 and read the data of desired slaves 3a and 3b.

以下、バス調停部10内部の動作について図2を用いて詳細に説明する。
マスタ2a〜2cからバス調停部10へ入力されたリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cはそれぞれ2つに分岐され、判定部11と転送中リクエスト保持部12に入力される。
Hereinafter, the internal operation of the bus arbitration unit 10 will be described in detail with reference to FIG.
The request command signals 101a to 101c and the address signals 102a to 102c input from the masters 2a to 2c to the bus arbitration unit 10 are branched into two, respectively, and input to the determination unit 11 and the transfer request holding unit 12.

判定部11は、マスタ2a〜2cからのリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cの他に、転送中リクエスト保持部12から受信中転送リクエストコマンド・アドレス信号33、前転送リクエスト保持部13から転送済リクエストコマンド・アドレス信号36、調停モード設定部14から内部調停モード設定信号38を受信する。そして、これらの信号を用いて次のクロックに選択するリクエストコマンド、アドレス、データを判定し、リクエスト・アドレス選択信号20、ライトデータ選択信号21、リードデータ選択信号22をそれぞれ生成する。生成された信号は、次のクロック期間にそれぞれ所定のブロックへ送信される。すなわち、リクエスト・アドレス選択信号20はリクエスト・アドレス選択部4へ、ライトデータ選択信号21はライトデータ選択部5へ、リードデータ選択信号22はリードデータ選択部6へ送信される。 In addition to the request command signals 101a to 101c and the address signals 102a to 102c from the masters 2a to 2c, the determination unit 11 receives the transfer request command / address signal 33 being received from the transfer request holding unit 12 and the previous transfer request holding unit 13 From the received request command / address signal 36 and the internal arbitration mode setting signal 38 from the arbitration mode setting unit 14. These signals are used to determine the request command, address, and data to be selected for the next clock, and a request / address selection signal 20, a write data selection signal 21, and a read data selection signal 22 are generated. The generated signal is transmitted to each predetermined block in the next clock period. That is, the request / address selection signal 20 is transmitted to the request / address selection unit 4, the write data selection signal 21 is transmitted to the write data selection unit 5, and the read data selection signal 22 is transmitted to the read data selection unit 6.

判定部11はまた、転送中のリクエストコマンド情報及びアドレス情報を示す転送中リクエストコマンド・アドレス信号30と、どのマスタからのバーストデータを転送中であるかを示すデータ転送中マスタ番号信号31を、バーストデータ転送期間と同じクロック期間に転送中リクエスト保持部12に向けて送信する。
さらに、判定部11は、アドレス制御部7a、7bから転送終了信号23a、23bを受信すると転送中のバーストデータはバースト末尾であると判断し、転送中リクエスト保持部12へ転送終了通知信号32を、前転送リクエスト保持部13へクリア信号35を、バースト末尾のデータを転送するクロック期間に送信する。
なお、1クロックとは、判定部11が1回の判定を行う判定期間のことを示している。
The determination unit 11 also includes a request command / address signal 30 during transfer indicating request command information and address information during transfer, and a master number signal 31 during data transfer indicating which master is transferring burst data. Transmission is performed toward the request holding unit 12 during transfer in the same clock period as the burst data transfer period.
Further, when the determination unit 11 receives the transfer end signals 23a and 23b from the address control units 7a and 7b, the determination unit 11 determines that the burst data being transferred is the end of the burst, and sends a transfer end notification signal 32 to the transfer request holding unit 12. The clear signal 35 is transmitted to the previous transfer request holding unit 13 during the clock period for transferring the data at the end of the burst.
One clock indicates a determination period in which the determination unit 11 performs one determination.

転送中リクエスト保持部12は、マスタ2a〜2cからのリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cに基いて、マスタ2a〜2cそれぞれについて、リクエストコマンドの情報と宛先スレーブのアドレス情報とを記憶し一時保持する。
また、転送中リクエスト保持部12は、マスタ2a〜2cからの信号に加えて、判定部11から転送中リクエストコマンド・アドレス信号30、データ転送中マスタ番号信号31、及び転送終了通知信号32を受信する。
The in-transfer request holding unit 12 stores request command information and destination slave address information for each of the masters 2a to 2c based on the request command signals 101a to 101c and the address signals 102a to 102c from the masters 2a to 2c. And temporarily hold.
In addition to the signals from the masters 2a to 2c, the in-transfer request holding unit 12 receives the in-transfer request command / address signal 30, the in-data transfer master number signal 31, and the transfer end notification signal 32 from the determination unit 11. To do.

転送中リクエスト保持部12がマスタ2a〜2cから信号を受信し判定部11からは信号を受信しない場合、転送中リクエスト保持部12は、マスタ2a〜2cから受信したリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cを、受信中転送コマンド・アドレス信号33として判定部11へ、同じクロック期間にそのまま送信する。 When the transfer request holding unit 12 receives signals from the masters 2a to 2c and does not receive a signal from the determination unit 11, the transfer request holding unit 12 receives the request command signals 101a to 101c and addresses received from the masters 2a to 2c. The signals 102a to 102c are transmitted as they are to the determination unit 11 as the reception transfer command / address signal 33 in the same clock period.

転送中リクエスト保持部12がマスタ2a〜2cから信号を受信し判定部11から転送終了通知信号32を受信した場合、転送中リクエスト保持部12は、受信したリクエストコマンド信号101a〜101c及びアドレス信号102a〜102cを、受信中転送コマンド・アドレス信号33として同じクロック期間にそのまま判定部11へ送信すると共に、データ転送中マスタ番号信号31から得たマスタ番号の情報と転送中リクエストコマンド・アドレス信号30から得たリクエストコマンドの情報と自装置内に記憶した宛先スレーブのアドレスの情報とに基いて転送済データ信号34を生成し、次のクロック期間に前転送リクエスト保持部13へ送信する。
なお、転送済データ信号34の生成に用いる宛先スレーブのアドレスの情報は、転送中リクエスト保持部12が記憶している情報を用いる代わりに、判定部11から受信する転送中リクエストコマンド・アドレス信号30の情報を用いても良い。
When the transfer request holding unit 12 receives signals from the masters 2a to 2c and receives the transfer end notification signal 32 from the determination unit 11, the transfer request holding unit 12 receives the received request command signals 101a to 101c and the address signal 102a. To 102c are transmitted as they are to the transfer command / address signal 33 during reception to the determination unit 11 as they are during the same clock period, and the master number information obtained from the master number signal 31 during data transfer and the request command / address signal 30 during transfer A transferred data signal 34 is generated based on the obtained request command information and the address information of the destination slave stored in the own apparatus, and is transmitted to the previous transfer request holding unit 13 in the next clock period.
The destination slave address information used to generate the transferred data signal 34 is the transfer request command / address signal 30 received from the determination unit 11 instead of using the information stored in the transfer request holding unit 12. The information may be used.

また、転送中リクエスト保持部12がマスタ2a〜2cから信号を受信し、判定部11から転送終了通知信号32を受信せずに転送中リクエストコマンド・アドレス信号30とデータ転送中マスタ番号信号31を受信した場合、転送中リクエスト保持部12は、受信した転送中リクエストコマンド・アドレス信号30信号とデータ転送中マスタ番号信号31を次のクロック期間に判定部11へ送信する。すなわち、判定部11から入力された信号を1クロック遅れで判定部11へ返すことになる。 Further, the transfer request holding unit 12 receives signals from the masters 2a to 2c, and receives the transfer request command / address signal 30 and the data transfer master number signal 31 without receiving the transfer end notification signal 32 from the determination unit 11. In the case of reception, the transfer request holding unit 12 transmits the received transfer request command / address signal 30 signal and the data transfer master number signal 31 to the determination unit 11 in the next clock period. That is, the signal input from the determination unit 11 is returned to the determination unit 11 with one clock delay.

前転送リクエスト保持部13は、転送中リクエスト保持部12から転送済データ信号34を受信すると、マスタ番号、リクエストコマンド、及び宛先スレーブのアドレスの情報をそれぞれ対応付けて自装置内に記憶し、判定部11からクリア信号35を受信するまでこれを保持する。
また、前転送リクエスト保持部13は、自装置内に記憶している情報を転送済リクエストコマンド・アドレス信号36として判定部11に送信する。この送信処理は、前転送リクエスト保持部13が転送済データ信号34を一旦受信すると、クリア信号35を受信するまで毎クロック繰り返される。
When the pre-transfer request holding unit 13 receives the transferred data signal 34 from the in-transfer request holding unit 12, it stores the master number, the request command, and the address information of the destination slave in association with each other and stores them in its own device. This is held until the clear signal 35 is received from the unit 11.
Further, the previous transfer request holding unit 13 transmits information stored in the own device to the determination unit 11 as a transferred request command / address signal 36. This transmission process is repeated every clock until the previous transfer request holding unit 13 receives the transferred data signal 34 until the clear signal 35 is received.

前転送リクエスト保持部13は、判定部11からクリア信号35を受信すると保持している転送済データ信号34の情報をクリアする。また、クリア信号35を受信しない場合であっても、転送中リクエスト保持部12から新たな転送済データ信号34を受信すると、保持している情報を上書きして更新する。 When the pre-transfer request holding unit 13 receives the clear signal 35 from the determining unit 11, the pre-transfer request holding unit 13 clears the information of the transferred data signal 34 that is held. Even when the clear signal 35 is not received, when the new transferred data signal 34 is received from the request-in-transfer holding unit 12, the stored information is overwritten and updated.

調停モード設定部14は、例えば判定部11がマスタ平均化モードとコマンド平均化モードの2つを備える場合にモード設定を行う。マスタ平均化モードはリクエスト要求元として選択されるマスタが平均的になるようにマスタの選択を行うモードであり、コマンド平均化モードではライトリクエストとリードリクエストのそれぞれについてリクエストコマンドが平均的になるようにマスタの選択を行うモードである。モードの切替は外部から入力される外部調停モード設定信号37により行われる。 For example, the arbitration mode setting unit 14 performs mode setting when the determination unit 11 includes two of a master averaging mode and a command averaging mode. Master averaging mode is a mode that selects the master so that the master selected as the request request source is average. In the command averaging mode, the request command is averaged for each of the write request and the read request. In this mode, the master is selected. The mode is switched by an external arbitration mode setting signal 37 input from the outside.

ここで、判定部11が1クロック期間中に行う判定処理を図4のフローチャート及び図5のリクエスト状態テーブルを用いて説明する。ここで、リクエスト状態テーブルとは、判定部11が受信中転送リクエストコマンド・アドレス信号33および転送済リクエストコマンド・アドレス信号36を用いて判定部11内に生成するリクエスト履歴を示す状態テーブルである。なお、調停モードはマスタ平均化モードに設定されているものとする。
図4では、スレーブの番号をi(i=1〜n、nは整数)とする。判定部11はS1においてスレーブ番号を「i=0」に初期化し、このスレーブがリクエストコマンドフル状態、すなわちライトリクエストとリードリクエストの双方を受付けている状態か否かを図5に示すようなリクエスト状態テーブルを参照して判断する(S2)。図5の例では、スレーブ#0はマスタ#0からライトリクエストを、マスタ#1及びマスタ#2からリードリクエストを受付けており、リクエストコマンドフル状態である。
Here, the determination process performed by the determination unit 11 during one clock period will be described with reference to the flowchart of FIG. 4 and the request status table of FIG. Here, the request status table is a status table indicating a request history generated in the determination unit 11 by the determination unit 11 using the transfer request command / address signal 33 being received and the transferred request command / address signal 36. Note that the arbitration mode is set to the master averaging mode.
In FIG. 4, the slave number is i (i = 1 to n, n is an integer). The determination unit 11 initializes the slave number to “i = 0” in S1, and requests whether this slave is in a request command full state, that is, a state in which both a write request and a read request are received, as shown in FIG. Judgment is made with reference to the state table (S2). In the example of FIG. 5, slave # 0 has received a write request from master # 0 and read requests from master # 1 and master # 2, and is in a request command full state.

S2においてリクエストコマンドフル状態であると判断した場合、判定部11はリクエスト状態テーブルを参照し、それぞれのマスタ#0〜#2についてライトリクエストの数とリードリクエストの数それぞれをリクエストコマンドのべ数として集計する(S3)。
図5の場合、マスタ#0はライトリクエストのべ数「2」、リードリクエストのべ数「1」、マスタ#1はライトリクエストのべ数「1」、リードリクエストのべ数「2」、マスタ#2はライトリクエストのべ数「1」、リードリクエストのべ数「1」である。
If it is determined in S2 that the request command is in the full state, the determination unit 11 refers to the request state table and sets the number of write requests and the number of read requests for each master # 0 to # 2 as the total number of request commands. Aggregate (S3).
In the case of FIG. 5, master # 0 has a total number of write requests “2”, a total number of read requests “1”, master # 1 has a total number of write requests “1”, a total number of read requests “2”, a master # 2 is the total number of write requests “1” and the total number of read requests “1”.

次に、ライトリクエストとリードリクエストそれぞれについて、リクエスト履歴(受信中転送リクエストコマンド・アドレス信号33によるリクエスト情報および転送済リクエストコマンド・アドレス信号36によるリクエスト情報)のあるマスタのべ数をマスタ毎に集計する(S4)。
図5の場合、ライトリクエストは、マスタ#0ののべ数「2」、マスタ#1ののべ数「1」、マスタ#2ののべ数「1」、リードリクエストは、マスタ#0ののべ数「1」、マスタ#1ののべ数「2」、マスタ#2ののべ数「1」である。
Next, for each write request and read request, the total number of masters with request history (request information by transfer request command / address signal 33 being received and request information by transferred request command / address signal 36) is counted for each master. (S4).
In the case of FIG. 5, the write request is the total number of master # 0 “2”, the total number of master # 1 is “1”, the total number of master # 2 is “1”, and the read request is the master # 0. The total number is “1”, the total number of master # 1 is “2”, and the total number of master # 2 is “1”.

各マスタのべ数の算出が終わると、S3にて集計した全マスタ#0〜#2のライトリクエストとリードリクエストのそれぞれについて合計リクエストコマンドのべ数(合計ライトリクエストのべ数「4」、合計リードリクエストのべ数「4」)を算出し(S5)、S4にて集計した全マスタの合計マスタのべ数(合計マスタのべ数「8」)を算出する(S6)。 When the calculation of the total number of each master is completed, the total number of request commands (total number of write requests “4”, total for all write requests and read requests of all masters # 0 to # 2 counted in S3. The total number of read requests “4”) is calculated (S5), and the total number of total masters (total number of masters “8”) of all masters counted in S4 is calculated (S6).

S6が終わると、S5で算出した合計ライトリクエストのべ数とS6で算出した合計マスタのべ数が等しいか否かを判断する(S7)。上記例では、合計ライトリクエストのべ数が「4」、合計マスタのべ数「8」で等しくないのでS8へ進み、S5で算出したリードリクエストの合計リクエストコマンドのべ数とS6で算出した合計マスタのべ数が等しいか否かを判断する(S8)。ここでも、合計リードリクエストのべ数が「4」、合計マスタのべ数「8」で等しくないので、S9へ進む。 When S6 ends, it is determined whether the total number of write requests calculated in S5 is equal to the total number of masters calculated in S6 (S7). In the above example, the total number of write requests is “4” and the total number of total masters is “8”, so the process proceeds to S8, and the total number of read request commands calculated in S5 and the total calculated in S6. It is determined whether the total number of masters is equal (S8). Also here, since the total number of total read requests is “4” and the total number of total masters is “8”, the process proceeds to S9.

S9では、S6で算出した合計マスタのべ数がS6で算出した合計ライトリクエストのべ数と合計リードリクエストのよりも小さいか否かの判断を、合計ライトリクエストのべ数と合計リードリクエストのそれぞれについて行う(S9)。
上記例では、合計マスタのべ数「8」は合計ライトリクエストのべ数「4」よりも多いので、S9で「No」と判断してS10へ進む。また、合計マスタのべ数「8」は合計リードリクエストのべ数「4」よりも多いので、同様に、S9で「No」と判断してS10へ進む。
In S9, it is determined whether or not the total number of total masters calculated in S6 is smaller than the total number of write requests calculated in S6 and the total read request. (S9).
In the above example, the total number of masters “8” is larger than the total number of write requests “4”. Therefore, “No” is determined in S9 and the process proceeds to S10. In addition, since the total number of masters “8” is larger than the total number of read requests “4”, similarly, “No” is determined in S9 and the process proceeds to S10.

S7でライトリクエストの合計リクエストコマンドのべ数(合計ライトコマンドのべ数)と合計マスタのべ数が等しいと判断した場合、あるいはS8でリードリクエストの合計リクエストコマンドのべ数(合計リードリクエストのべ数)と合計マスタのべ数が等しいと判断した場合、S9で「No」と判断した場合と同様にS10へ進む。
S10では、ライトリクエストとリードリクエストそれぞれについて、次に選択するマスタとしてS4で算出した合計マスタのべ数が最も少ないマスタを優先的に選択する(S10)。すなわち、図5の例では転送中リクエスト保持部12からのライトリクエストはマスタ#0のみなのでマスタ#0が選択されるが、リードリクエストはマスタ#1とマスタ#2からあり、S4においてマスタ#1ののべ数「2」、マスタ#2ののべ数「1」であるため、マスタのべ数の小さいマスタ#2が選択される。
When it is determined in S7 that the total number of write request total requests (total number of write commands) is equal to the total number of total masters, or in S8 the total number of read request total request commands (total total read request totals). Number) and the total number of total masters are the same, the process proceeds to S10 as in the case where “No” is determined in S9.
In S10, for each of the write request and the read request, a master with the smallest total number of masters calculated in S4 is preferentially selected as a master to be selected next (S10). That is, in the example of FIG. 5, since the write request from the in-transfer request holding unit 12 is only master # 0, master # 0 is selected, but the read request is from master # 1 and master # 2, and master # 1 in S4 Since the total number of masters “2” and the total number of masters # 2 are “1”, master # 2 having a smaller master number is selected.

S9において合計ライトリクエストのべ数が合計マスタのべ数よりも少ない場合は、次にライトするマスタとしてライトリクエストのべ数が最も少ないマスタを優先的に選択する(S11)。同様に、S9において合計リードリクエストのべ数が合計マスタのべ数よりも少ない場合は、次にリードするマスタとしてリードリクエストのべ数が最も少ないマスタを優先して選択する(S11)。
なお、マスタのべ数が最小のマスタが複数ある場合、ラウンドロビンや重み付けにより1つのマスタを選択する。
If the total number of write requests is smaller than the total number of masters in S9, the master with the smallest number of write requests is preferentially selected as the next master to be written (S11). Similarly, if the total number of read requests is smaller than the total number of masters in S9, the master with the smallest number of read requests is preferentially selected as the next master to be read (S11).
If there are a plurality of masters having the smallest number of masters, one master is selected by round robin or weighting.

S10及びS11の後、判定部11で選択した結果に基づいて、選択したマスタ2a〜2cに対応するリクエスト・アドレス選択信号20、ライトデータ選択信号21、リードデータ選択信号22をそれぞれ生成し、上述の対応する各機能ブロックに出力する。この処理は、マスタ2a〜2cそれぞれからのアクセス要求からいずれのアクセス要求を実行させるかを判定する行為に相当する。
また、S10及びS11の後、もしくはS2において転送中リクエストコマンド保持部12からライトリクエスト及びリードリクエストの少なくとも一方を受付けていないと判断した場合(「No」と判断した場合)、スレーブ番号iがn(最終スレーブ番号)であるか否かを判断する(S12)。なお、S2で「No」と判断した場合であって、受付中ではない(転送に使用されていない)リクエストコマンドを受付けた場合は、リクエストコマンドに従って動作する。
After S10 and S11, a request / address selection signal 20, a write data selection signal 21, and a read data selection signal 22 corresponding to the selected masters 2a to 2c are generated based on the result selected by the determination unit 11, respectively. To each corresponding functional block. This process corresponds to an act of determining which access request is to be executed from the access requests from the masters 2a to 2c.
If it is determined that at least one of the write request and the read request is not received from the request command holding unit 12 during transfer after S10 and S11 or in S2 (when it is determined “No”), the slave number i is n It is determined whether it is (final slave number) (S12). If it is determined “No” in S2 and a request command that is not being received (not used for transfer) is received, the operation is performed according to the request command.

S12でn個全てのスレーブについて判断が完了している場合(i=nの場合)はフローを終了し、全スレーブについて判断が完了していない場合はS13にてiを1つインクリメントしS2へ戻る。
なお、図4ではスレーブ番号の初期値を「i=0」としたが、ラウンドロビン方式に初期値を随時変更するようにしても良い。
If the determination is completed for all n slaves in S12 (if i = n), the flow ends. If the determination is not completed for all slaves, i is incremented by 1 in S13 and the process proceeds to S2. Return.
In FIG. 4, the initial value of the slave number is “i = 0”, but the initial value may be changed to the round robin method at any time.

また、ここではマスタ平均化モードが選択されている場合について説明したが、コマンド平均化モードが選択されている場合、図6に示すように、図4のマスタ平均化モードと一部の処理順序が異なる。具体的には、S1からS9はマスタ平均化モードと同じ処理を行い、S8で「Yes」の場合は上記S11、すなわちリクエストコマンドのべ数が最小のマスタを選択し、S8で「No」の場合に上記S9へ進む。S9で「No」の場合も上記S11の処理へ進み、S11で「Yes」の場合は上記S10でマスタのべ数が最も少ないマスタを選択する。 Also, although the case where the master averaging mode is selected has been described here, when the command averaging mode is selected, as shown in FIG. 6, the master averaging mode of FIG. Is different. Specifically, S1 to S9 perform the same processing as the master averaging mode, and if “Yes” in S8, the above-mentioned S11, that is, the master having the smallest number of request commands is selected, and “No” is selected in S8. If so, the process proceeds to S9. If “No” in S9, the process proceeds to S11. If “Yes” in S11, the master having the smallest number of masters is selected in S10.

ところで、全てのリクエストコマンドがライトリクエスト(またはリードリクエスト)の場合を除いて合計ライトリクエストコマンドのべ数(または合計リードリクエストコマンドのべ数)が常に合計マスタ数よりも少なくなるため、合計ライトリクエストコマンドのべ数(または合計リードリクエストコマンドのべ数)に重み付けをして比較するようにしても良い。 By the way, the total number of write request commands (or the total number of read request commands) is always less than the total number of masters except when all request commands are write requests (or read requests). The total number of commands (or the total number of read request commands) may be weighted for comparison.

また、図7に示すように、前転送リクエスト保持部13において、コマンド領域40、マスタ番号領域41に加えてアクセス回数領域42を設け、どのスレーブへどのリクエストコマンドで何回アクセスしたかをマスタ毎にカウントし、その履歴情報を転送済リクエストコマンド・アドレス信号36に含めて判定部に送るようにしても良い。
なお、アクセス回数は電源投入時や所定時間経過毎にリセットするものとする。例えば所定時間を1000クロック分(1000回の判定期間分)とした場合、この間におけるアクセス回数の履歴を判定部11に送信することにより、バス調停をする際にリクエストコマンドのべ数やマスタのべ数として、2クロックよりも長期間の平均値を用いることができる。
In addition, as shown in FIG. 7, in the previous transfer request holding unit 13, an access count area 42 is provided in addition to the command area 40 and the master number area 41 to determine which slave is accessed by which request command and how many times. The history information may be included in the transferred request command / address signal 36 and sent to the determination unit.
It is assumed that the access count is reset when the power is turned on or every predetermined time. For example, when the predetermined time is 1000 clocks (1000 determination periods), the access count history during this period is transmitted to the determination unit 11 so that the number of request commands and the number of masters can be determined during bus arbitration. As the number, an average value for a longer period than two clocks can be used.

なお、ここではライトイネーブル信号202a〜202cとリードイネーブル信号203a〜202cを有する2ポートメモリの場合について説明したが、ライトリクエストとリードリクエストで共通のイネーブル信号を用いる1ポートメモリの場合、転送中リクエスト保持部12から判定部11へ送られる受信中転送コマンド・アドレス信号33を参照し、次に選択するリクエストコマンドを現在選択中のものとは異なるリクエストコマンドとなるように設定しても良い。 Here, the case of a two-port memory having the write enable signals 202a to 202c and the read enable signals 203a to 202c has been described. However, in the case of a one-port memory using a common enable signal for the write request and the read request, a request during transfer With reference to the receiving transfer command / address signal 33 sent from the holding unit 12 to the determination unit 11, the request command to be selected next may be set to be different from the currently selected request command.

本実施の形態によれば、マスタからスレーブに対するリクエストのべ数とリクエストをしたマスタ数とを集計し、これらの合計数を比較してリクエストコマンドが平均化されるようにバス調停を行うことにより、複数のマスタからアクセス要求が重複して発生した場合であっても、データ転送効率を維持しつつアクセス制御できる。 According to the present embodiment, by summing up the total number of requests from the master to the slave and the number of masters that made the request, by comparing these total numbers, bus arbitration is performed so that the request commands are averaged. Even when multiple access requests are generated from a plurality of masters, access control can be performed while maintaining data transfer efficiency.

また、マスタからスレーブに対するリクエストのべ数とリクエストをしたマスタ数とを集計し、これらの合計数を比較してそれぞれのマスタからのリクエスト受付回数が平均化されるようにバス調停を行うことにより、複数のマスタからアクセス要求が重複して発生した場合であっても、データ転送効率を維持しつつアクセス制御できる。 Also, by summing up the total number of requests from the master to the slaves and the number of masters that made the requests, and comparing these totals, bus arbitration is performed so that the number of requests received from each master is averaged. Even when multiple access requests are generated from a plurality of masters, access control can be performed while maintaining data transfer efficiency.

また、マスタ2a〜2cについてスレーブ3a〜3cにアクセスした回数をカウントし、このアクセス回数を用いてバス調停を行うことにより、複数のマスタ間でのアクセス回数を平均化してバスシステム全体としてのデータ転送効率を向上できる。 In addition, the number of accesses to the slaves 3a to 3c for the masters 2a to 2c is counted, and the bus arbitration is performed using the number of accesses, thereby averaging the number of accesses between a plurality of masters and data as the entire bus system. Transfer efficiency can be improved.

以上、この発明の実施の形態について説明した。上記実施の形態では、請求項に記載の「第1のリクエストコマンド」及び「第2のリクエストコマンド」として「リクエストコマンド信号101a〜101c」、「第1の宛先アドレスの情報」及び「第2の宛先アドレスの情報」として「アドレス信号102a〜102c」、「第1のリクエスト保持部」として「転送中リクエスト保持部12」、「第2のリクエスト情報」として「転送済データ信号34」、「第2のリクエスト保持部」として「前転送リクエスト保持部13」を用いて説明したが、これらは上記実施の形態に限定されるものではなく、この発明の趣旨に包含される限りどのような変形が行われても良い。 The embodiment of the present invention has been described above. In the above embodiment, “request command signals 101a to 101c”, “first destination address information” and “second destination command” as “first request command” and “second request command” recited in the claims "Address signals 102a to 102c" as "destination address information", "transfer request holding unit 12" as "first request holding unit", "transferred data signal 34", "second request information" The “previous transfer request holding unit 13” has been described as the “2 request holding unit”, but these are not limited to the above-described embodiment, and any modifications are possible as long as they are included in the spirit of the present invention. It may be done.

1 バス
2a〜2c マスタ
3a〜3c スレーブ
4 コマンド・アドレス選択部
5 ライトデータ選択部
6 リードデータ選択部
7a、7b アドレス制御部
10 バス調停部
11 判定部
12 転送中リクエスト保持部
13 前転送リクエスト保持部
14 調停モード設定部
20 リクエスト・アドレス選択信号
21 ライトデータ選択信号
22 リードデータ選択信号
23a、23b 転送終了信号
30 転送中リクエストコマンド・アドレス信号
31 データ転送中マスタ番号信号
32 転送終了通知信号
33 受信中転送リクエストコマンド・アドレス信号
34 転送済データ信号
35 クリア信号
36 転送済リクエストコマンド・アドレス信号
37 外部調停モード設定信号
38 内部調停モード設定信号
40 コマンド領域
41 マスタ番号領域
42 アクセス回数領域
100 バスシステム
101a〜101c リクエストコマンド信号
102a〜102c アドレス信号
103a〜103c ライトデータ信号
200 選択リクエストコマンド・アドレス信号
201 バーストデータ
202a〜202c ライトイネーブル信号
203a〜203c リードイネーブル信号
204a〜204c バーストアドレス信号
205、205a、205b リードデータ信号
1 Buses 2a to 2c Masters 3a to 3c Slave 4 Command / address selection unit 5 Write data selection unit 6 Read data selection units 7a and 7b Address control unit 10 Bus arbitration unit 11 Judgment unit 12 Transfer request holding unit 13 Pretransfer request holding Unit 14 Arbitration mode setting unit 20 Request / address selection signal 21 Write data selection signal 22 Read data selection signal 23a, 23b Transfer end signal 30 Transfer request command / address signal 31 Data transfer master number signal 32 Transfer end notification signal 33 Medium transfer request command / address signal 34 Transferred data signal 35 Clear signal 36 Transferred request command / address signal 37 External arbitration mode setting signal 38 Internal arbitration mode setting signal 40 Command area 41 Master number area 42 Number of accesses region
100 bus system
101a to 101c Request command signal
102a to 102c Address signal
103a to 103c Write data signal
200 Select request command / address signal
201 burst data
202a to 202c Write enable signal
203a to 203c Read enable signal
204a to 204c Burst address signal
205, 205a, 205b Read data signal

Claims (8)

バスに接続された第1のマスタ及び第2のマスタから前記バスに接続されたスレーブに対し同じタイミングでアクセス要求がなされた場合に前記第1のマスタ及び第2のマスタから前記スレーブへのアクセス要求を調停する前記バスに接続されたバス調停装置において、
前記第1のマスタが前記スレーブに対してアクセス要求する第1のリクエストコマンド及び前記第1のリクエストコマンドの実行先スレーブを示す第1の宛先アドレスの情報を前記第1のマスタから第1のタイミングに受信し、前記第2のマスタが前記スレーブに対してアクセスを要求する第2のリクエストコマンド及び前記第2のリクエストコマンドの実行先スレーブを示す第2の宛先アドレスの情報を前記第2のマスタから前記第1のタイミングに受信し、受信した前記第1のリクエストコマンド、前記第1の宛先アドレスの情報、前記第2のリクエストコマンド、及び前記第2の宛先アドレスの情報を第1のリクエスト情報として保持する第1のリクエスト保持部と、
前記第1のマスタ又は前記第2のマスタから前記スレーブに対してアクセス要求され前記第1のタイミングより前の第2のタイミングに実行されたリクエストコマンド及びそのリクエストコマンドの実行先スレーブを示す宛先アドレスの情報を第2のリクエスト情報として保持する第2のリクエスト保持部と、
前記第1のリクエスト保持部から前記第1のリクエスト情報を受信し、前記第2のリクエスト保持部から前記第2のリクエスト情報を受信し、該第1及び第2のリクエスト情報を用いて、前記第1のタイミングにおける前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれを実行するかを判定する判定部と、
を備えたことを特徴とするバス調停装置。
Access from the first master and the second master to the slave when an access request is made at the same timing from the first master and the second master connected to the bus to the slave connected to the bus In a bus arbitration device connected to the bus for arbitrating requests,
A first request command from which the first master makes an access request to the slave and information on a first destination address indicating an execution destination slave of the first request command are sent from the first master to a first timing. The second master receives the second request command for the second master requesting access to the slave and the second destination address indicating the slave to which the second request command is executed. The first request information is received at the first timing, and the received first request command, the first destination address information, the second request command, and the second destination address information are received as the first request information. A first request holding unit that holds as
A request command that is requested to be accessed from the first master or the second master to the slave and is executed at a second timing before the first timing, and a destination address that indicates an execution slave of the request command A second request holding unit that holds the information as second request information;
Receiving the first request information from the first request holding unit, receiving the second request information from the second request holding unit, and using the first and second request information, A determination unit that determines whether to execute an access request from the first master or an access request from the second master at a first timing;
A bus arbitration device comprising:
前記判定部は、
前記第1のマスタから要求された前記第1のタイミング及び前記第2のタイミングにおけるリクエストコマンドの数、および前記第2のマスタから要求された前記第1のタイミング及び前記第2のタイミングにおけるリクエストコマンドの数をそれぞれ集計し、集計した前記第1及び第2のマスタのリクエストコマンドの数を合計した合計リクエストコマンド数を算出し、
前記第1のタイミング及び前記第2のタイミングに前記リクエストコマンドを送信した第1のマスタの数、および前記第1のタイミング及び前記第2のタイミングに前記リクエストコマンドを送信した第2のマスタの数をそれぞれ集計し、集計した前記第1及び第2のマスタの数を合計した合計マスタ数を算出し、
算出した前記合計リクエストコマンド数と前記合計マスタ数を用いて前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれを実行するかを判定することを特徴とする請求項1に記載のバス調停装置。
The determination unit
The number of request commands at the first timing and the second timing requested from the first master, and the request commands at the first timing and the second timing requested from the second master The total number of request commands is calculated by totaling the total number of request commands of the first and second masters.
The number of first masters that transmitted the request command at the first timing and the second timing, and the number of second masters that transmitted the request command at the first timing and the second timing. Respectively, and calculate the total number of masters by summing up the total number of the first and second masters,
The access request from the first master or the access request from the second master is determined using the calculated total number of request commands and the total number of masters. The bus arbitration device according to 1.
前記判定部は、
前記合計リクエストコマンド数と前記合計マスタ数を比較し、前記合計マスタ数が前記合計リクエストコマンド数以下の場合に、前記第1のマスタからのアクセス要求及び前記第2のマスタからのアクセス要求のうち、前記集計した第1のマスタの数または第2のマスタの数が少ないマスタからのアクセス要求を実行するアクセス要求と判定することを特徴とする請求項2に記載のバス調停装置。
The determination unit
When the total request command and the total master number are compared, and the total master number is less than or equal to the total request command number, the access request from the first master and the access request from the second master 3. The bus arbitration apparatus according to claim 2, wherein the bus arbitration device is determined as an access request for executing an access request from a master having a small number of first masters or second masters.
前記判定部は、
前記合計リクエストコマンド数と前記合計マスタ数を比較し、前記合計マスタ数が前記合計リクエストコマンド数以下の場合に、前記第1のマスタからのアクセス要求及び前記第2のマスタからのアクセス要求のうち、前記集計した第1のマスタから要求されたリクエストコマンドの数または第2のマスタから要求されたリクエストコマンドの数が少ないマスタからのアクセス要求を実行するアクセス要求と判定することを特徴とする請求項2に記載のバス調停装置。
The determination unit
When the total request command and the total master number are compared, and the total master number is less than or equal to the total request command number, the access request from the first master and the access request from the second master The access request is determined to be an access request for executing an access request from a master with a small number of request commands requested from the aggregated first master or a request command requested from the second master. Item 3. The bus arbitration device according to Item 2.
前記判定部は、
前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれを実行するかを判定した結果に基づき、前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれかを選択する選択信号を出力することを特徴とする請求項1ないし請求項4のいずれか一項に記載のバス調停装置。
The determination unit
Based on the result of determining whether to execute the access request from the first master or the access request from the second master, the access request from the first master or the access from the second master 5. The bus arbitration apparatus according to claim 1, wherein a selection signal for selecting any one of the requests is output.
前記第1のリクエスト保持部は、前記第2のタイミングに実行されたリクエストコマンド及びそのリクエストコマンドの実行先スレーブを示す宛先アドレスを前記第2のリクエスト保持部へ出力し、該第2のリクエスト保持部は、前記リクエストコマンド及び前記宛先アドレスを前記第2のリクエスト情報として保持することを特徴とする請求項1に記載のバス調停装置。 The first request holding unit outputs a request command executed at the second timing and a destination address indicating an execution destination slave of the request command to the second request holding unit, and holds the second request holding unit. The bus arbitration apparatus according to claim 1, wherein the unit holds the request command and the destination address as the second request information. 前記第2のリクエスト保持部は、前記第1のマスタからアクセス要求され前記第2のタイミング以前に実行された第1のアクセス要求の回数および前記第2のマスタからアクセス要求され前記第2のタイミング以前に実行された第2のアクセス要求の回数をカウントし、該カウントしたアクセス要求の回数の情報を保持し、
前記判定部は、
前記第1のリクエスト保持部から出力された前記第1のリクエスト情報、前記第2のリクエスト保持部から出力された前記第2のリクエスト情報、及び前記第2のリクエスト保持部から出力された前記アクセス要求の回数の情報を用いて前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれを実行するかを判定することを特徴とする請求項1に記載のバス調停装置。
The second request holding unit is configured to request access from the first master and the number of times of the first access request executed before the second timing, and to request the second master to access the second timing. Count the number of second access requests that have been executed previously, and hold information on the number of access requests counted,
The determination unit
The first request information output from the first request holding unit, the second request information output from the second request holding unit, and the access output from the second request holding unit 2. The bus arbitration apparatus according to claim 1, wherein it is determined whether to execute an access request from the first master or an access request from the second master using information on the number of requests. .
バスに接続された第1のマスタ及び第2のマスタから前記バスに接続されたスレーブに対し同じタイミングでアクセス要求がなされた場合に前記第1のマスタ及び第2のマスタから前記スレーブへのアクセス要求を調停する前記バスに接続されたバス調停方法において、
前記第1のマスタが前記スレーブに対してアクセス要求する第1のリクエストコマンド及び前記第1のリクエストコマンドの実行先スレーブを示す第1の宛先アドレスの情報を前記第1のマスタから第1のタイミングに取得し、前記第2のマスタが前記スレーブに対してアクセスを要求する第2のリクエストコマンド及び前記第2のリクエストコマンドの実行先スレーブを示す第2の宛先アドレスの情報を前記第2のマスタから前記第1のタイミングに取得する第1の情報取得ステップと、
前記第1のマスタ又は前記第2のマスタから前記スレーブに対してアクセス要求され前記第1のタイミングより前の第2のタイミングに実行されたリクエストコマンド及びそのリクエストコマンドの実行先スレーブを示す宛先アドレスの情報を取得する第2の情報取得ステップと、
前記第1の情報取得ステップ及び前記第2の情報取得ステップにより取得された、前記第1のタイミングにおける、前記第1のリクエストコマンド、前記第1の宛先アドレスの情報、前記第2のリクエストコマンド、及び前記第2の宛先アドレスの情報と、前記第2のタイミングに実行されたリクエストコマンド及びそのリクエストコマンドの実行先スレーブを示す宛先アドレスの情報と、を用いて、前記第1のタイミングにおける前記第1のマスタからのアクセス要求または前記第2のマスタからのアクセス要求のいずれを実行するかを判定する判定ステップと、を備えたことを特徴とするバス調停方法。
Access from the first master and the second master to the slave when an access request is made at the same timing from the first master and the second master connected to the bus to the slave connected to the bus In a bus arbitration method connected to the bus for arbitrating requests,
A first request command from which the first master makes an access request to the slave and information on a first destination address indicating an execution destination slave of the first request command are sent from the first master to a first timing. And the second master requesting the second master to access the slave and information on the second destination address indicating the slave to which the second request command is executed are obtained from the second master. A first information acquisition step acquired at the first timing from:
A request command that is requested to be accessed from the first master or the second master to the slave and is executed at a second timing before the first timing, and a destination address that indicates an execution slave of the request command A second information acquisition step of acquiring the information of
The first request command, the first destination address information, the second request command, acquired at the first timing, acquired by the first information acquisition step and the second information acquisition step, And the second destination address information, and the request command executed at the second timing and the destination address information indicating the execution destination slave of the request command. And a determination step of determining whether to execute an access request from one master or an access request from the second master.
JP2011033203A 2011-02-18 2011-02-18 Bus arbitration device and bus arbitration method Withdrawn JP2012173847A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011033203A JP2012173847A (en) 2011-02-18 2011-02-18 Bus arbitration device and bus arbitration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011033203A JP2012173847A (en) 2011-02-18 2011-02-18 Bus arbitration device and bus arbitration method

Publications (1)

Publication Number Publication Date
JP2012173847A true JP2012173847A (en) 2012-09-10

Family

ID=46976724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011033203A Withdrawn JP2012173847A (en) 2011-02-18 2011-02-18 Bus arbitration device and bus arbitration method

Country Status (1)

Country Link
JP (1) JP2012173847A (en)

Similar Documents

Publication Publication Date Title
CN100472494C (en) System and method for implementing memory mediation of supporting multi-bus multi-type memory device
JP5621041B2 (en) Critical word transfer with adaptive prediction
US8078781B2 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
JP4861339B2 (en) Flow control method to improve data transfer via switch matrix
CN111742305A (en) Scheduling memory requests with non-uniform latency
JP4621604B2 (en) Bus device, bus system, and information transfer method
JP2010282405A (en) Data processing system
US8838862B2 (en) Data transfer device, method of transferring data, and image forming apparatus
JP2023500741A (en) Signaling for heterogeneous memory systems
US20070156937A1 (en) Data transfer in multiprocessor system
JP2003296267A (en) Bus system and information processing system including bus system
US8499113B2 (en) Circuit configurations and method for controlling a data exchange in a circuit configuration
US7913013B2 (en) Semiconductor integrated circuit
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US20090013144A1 (en) Integrated circuit, and integrated circuit system
US9767054B2 (en) Data transfer control device and memory-containing device
JP4193746B2 (en) Matrix bus connection system
TWI382313B (en) Cache coherent split bus
US9672168B2 (en) System interconnection of system-on-chip
KR102206313B1 (en) System interconnect and operating method of system interconnect
JP2012173847A (en) Bus arbitration device and bus arbitration method
US20080270668A1 (en) Method to Hide or Reduce Access Latency of a Slow Peripheral in a Pipelined Direct Memory Access System
JP4151362B2 (en) Bus arbitration method, data transfer device, and bus arbitration method
US20100153610A1 (en) Bus arbiter and bus system
US20080228961A1 (en) System including virtual dma and driving method thereof

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140513