JP2009042992A - Bus controller - Google Patents

Bus controller Download PDF

Info

Publication number
JP2009042992A
JP2009042992A JP2007206748A JP2007206748A JP2009042992A JP 2009042992 A JP2009042992 A JP 2009042992A JP 2007206748 A JP2007206748 A JP 2007206748A JP 2007206748 A JP2007206748 A JP 2007206748A JP 2009042992 A JP2009042992 A JP 2009042992A
Authority
JP
Japan
Prior art keywords
bus
snoop
write
request
master
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
JP2007206748A
Other languages
Japanese (ja)
Inventor
Yukari Takada
由香里 高田
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007206748A priority Critical patent/JP2009042992A/en
Publication of JP2009042992A publication Critical patent/JP2009042992A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a bus controller configuring a bus to prevent enlargement of a chip area due to wiring congestion, and controlling the bus. <P>SOLUTION: In this bus controller 2, an arbitration part 21 arbitrates access requests from a plurality of masters 1-N (1-1 to 1-N). A slave access control part 23 performs access arbitrated by the arbitration part 21 to a slave 4. The bus controller 2 is connected with the plurality of masters 1-N (1-1 to 1-N) by a one-way read bus RD and one-way write buses WD1-WDN, and the write buses WD1-WDN are configured such that a bus width of each the write bus WD1-WDN becomes narrower than a bus width of the read bus RD. Accordingly, there is effect that it can be prevented that the chip area becomes large by the wiring congestion. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、マルチプロセッサシステムにおいてバスを制御する技術に関し、特に、リードバスとライトバスとを別々の片方向のバスとし、ライトバスの配線混雑を防止するようにバスを構成して制御するバス制御装置に関する。   The present invention relates to a technology for controlling a bus in a multiprocessor system, and in particular, a bus that controls a read bus and a write bus as separate one-way buses and configures the bus so as to prevent wiring congestion of the write bus. The present invention relates to a control device.

近年、プロセッサによる処理性能の向上を図るために、マルチプロセッサシステムの開発が盛んに行なわれている。このようなマルチプロセッサシステムにおいては、複数のプロセッサ(以下、マスタとも呼ぶ。)が共有のメインメモリ(以下、スレーブとも呼ぶ。)にアクセスできるように共有バス結合とされるのが一般的である。   In recent years, a multiprocessor system has been actively developed in order to improve the processing performance of the processor. In such a multiprocessor system, a common bus coupling is generally used so that a plurality of processors (hereinafter also referred to as masters) can access a shared main memory (hereinafter also referred to as slaves). .

このような共有バス結合においては、2種類のバス結合方法が存在する。その1つの方法は、リードバスとライトバスとを1本の双方向バスとし、リードデータとライトデータとが衝突しないようにバスの制御を行なうものである。この方法では、バスの本数を減らすことができるため、チップ面積を小さくすることが可能である。   In such a shared bus connection, there are two types of bus connection methods. One method is to use a read bus and a write bus as one bidirectional bus, and control the bus so that read data and write data do not collide. In this method, the number of buses can be reduced, so that the chip area can be reduced.

他の方法は、リードバスとライトバスとを別々の片方向バスとするものである。この方法では、それぞれのバスのデータ転送を効率的に行なえるサイズが決まっており、キャッシュのラインサイズと等しい幅を持つことが多い。リードとライトとを独立にすることで、スレーブからデータを読出しているときにもデータ書込みが行なえるため、処理性能が向上する。これらに関連する技術として、下記の特許文献1に開示された発明がある。   Another method is to make the read bus and the write bus separate unidirectional buses. In this method, the size at which the data transfer of each bus can be efficiently performed is determined, and the width is often equal to the line size of the cache. By making reading and writing independent, data writing can be performed even when data is being read from the slave, thereby improving processing performance. As a technique related to these, there is an invention disclosed in Patent Document 1 below.

特許文献1に開示されたマルチプロセッサシステムは、M個のCPUカードと、これらを接続する単方向のCPUカード間接続インタフェースとを備えている。CPUカード間制御回路は、命令送出回路と、調停回路とを有している。命令送出回路は、複数のプロセッサからの主記憶装置に対する複数の命令を受けた時にそれぞれN個の分割命令に分割し、これらのN個の分割命令をNサイクルに分割してCPUカード間接続インタフェースに送出する。調停回路は、CPUカードからの分割命令を受けた時に、これらの分割命令を調停してシリアル化し、命令を再生して主記憶制御回路に与える。
特開2000−268009号公報
The multiprocessor system disclosed in Patent Document 1 includes M CPU cards and a unidirectional inter-CPU card connection interface for connecting them. The inter-CPU card control circuit has a command transmission circuit and an arbitration circuit. The instruction sending circuit divides each of the N divided instructions into N cycles when receiving a plurality of instructions for the main memory from a plurality of processors, and divides the N divided instructions into N cycles to connect the CPU cards. To send. When the arbitration circuit receives a division command from the CPU card, the arbitration circuit arbitrates and serializes the division command, reproduces the command, and gives the command to the main memory control circuit.
JP 2000-268209 A

上述のように、リードバスとライトバスとを1本の双方向バスとした場合には、バスの本数を減らすことができるという利点があるが、スレーブからデータを読出しているときにはデータ書込みが行なえないため、処理性能が低下するといった問題点がある。また、データ転送速度を上げるためには、ハイインピーダンス制御を行なう必要があり、バッファ挿入により処理速度の向上が図れないといった問題点もある。   As described above, when the read bus and the write bus are one bidirectional bus, there is an advantage that the number of buses can be reduced. However, data can be written when data is read from the slave. Therefore, there is a problem that the processing performance is lowered. Further, in order to increase the data transfer speed, it is necessary to perform high impedance control, and there is a problem that the processing speed cannot be improved by inserting a buffer.

また、リードバスとライトバスとを別々の片方向バスとした場合には、処理性能を向上させることができるといった利点があるが、複数のマスタから出力されるライトデータの中から1つを選択するときにバス幅が広いと選択論理が大きくなり、チップ面積が大きくなったり、配線混雑により配線が不可能になったりするといった問題点がある。   In addition, when the read bus and the write bus are separate one-way buses, there is an advantage that the processing performance can be improved, but one of the write data output from a plurality of masters is selected. When the bus width is wide, the selection logic becomes large, and there is a problem that the chip area becomes large or wiring becomes impossible due to wiring congestion.

また、上述の特許文献1には、リードバスとライトバスとを1本の双方向バスとするものと、リードバスとライトバスとを別々の単方向バスとするものとが開示されているが、上述のそれぞれの問題点を解決することはできない。   Further, the above-mentioned Patent Document 1 discloses that the read bus and the write bus are one bidirectional bus, and that the read bus and the write bus are separate unidirectional buses. The above-mentioned problems cannot be solved.

本発明は、上記問題点を解決するためになされたものであり、その目的は、配線混雑によりチップ面積が大きくなるのを防止するようにバスを構成して制御するバス制御装置を提供することである。   The present invention has been made to solve the above problems, and an object of the present invention is to provide a bus control device that configures and controls a bus so as to prevent an increase in chip area due to wiring congestion. It is.

本発明の一実施例によれば、マルチプロセッサシステムにおいて複数のマスタからスレーブへのアクセス要求を制御するバス制御装置が提供される。調停部は、複数のマスタからのアクセス要求を調停する。スレーブアクセス制御部は、スレーブに対して調停部によって調停されたアクセスを行なう。そして、バス制御装置が片方向のリードバスとライトバスとによって複数のマスタと接続され、ライトバスのバス幅がリードバスのバス幅よりも狭くなるように構成される。   According to an embodiment of the present invention, there is provided a bus control device that controls access requests from a plurality of masters to slaves in a multiprocessor system. The arbitration unit arbitrates access requests from a plurality of masters. The slave access control unit performs access arbitrated by the arbitration unit to the slave. The bus control device is connected to a plurality of masters by a one-way read bus and a write bus, and the bus width of the write bus is configured to be narrower than the bus width of the read bus.

この実施例によれば、バス制御装置が片方向のリードバスとライトバスとによって複数のマスタと接続され、ライトバスのバス幅がリードバスのバス幅よりも狭くなるように構成されるので、配線混雑によりチップ面積が大きくなるのを防止することが可能になるという効果がある。   According to this embodiment, the bus control device is connected to a plurality of masters by a unidirectional read bus and a write bus, and the bus width of the write bus is configured to be narrower than the bus width of the read bus. There is an effect that it is possible to prevent an increase in the chip area due to wiring congestion.

(第1の実施の形態)
図1は、本発明の第1の実施の形態におけるバス制御部(以下、バス制御装置とも呼ぶ。)を含んだマルチプロセッサシステムの構成例を示す図である。このマルチプロセッサシステムは、複数のマスタ1〜N(1−1〜1−N)と、バス制御部2と、スレーブ制御部3と、スレーブ4とを含む。
(First embodiment)
FIG. 1 is a diagram showing a configuration example of a multiprocessor system including a bus control unit (hereinafter also referred to as a bus control device) in the first embodiment of the present invention. This multiprocessor system includes a plurality of masters 1 to N (1-1 to 1-N), a bus control unit 2, a slave control unit 3, and a slave 4.

また、マスタ1〜N(1−1〜1−N)のそれぞれは、CPU(Central Processing Unit)11と、命令コードを保持するIキャッシュ12と、オペランド(データ)を保持するDキャッシュ13とを含む。各キャッシュのラインサイズは128ビットであり、キャッシュフィルなどのアクセスは128ビット単位で行なう。   Each of the masters 1 to N (1-1 to 1-N) includes a CPU (Central Processing Unit) 11, an I cache 12 that holds instruction codes, and a D cache 13 that holds operands (data). Including. The line size of each cache is 128 bits, and access such as cache fill is performed in units of 128 bits.

マスタ1〜N(1−1〜1−N)は、スレーブ4に対するアクセスを行なう場合、要求1〜Nを出力する。各要求には、リクエスト信号、リード/ライト信号、バイトコントロール信号、バースト(アクセスデータが128ビットであることを示す)信号など、要求に付随する情報が含まれる。   The masters 1 to N (1-1 to 1-N) output requests 1 to N when accessing the slave 4. Each request includes information accompanying the request, such as a request signal, a read / write signal, a byte control signal, and a burst (indicating that the access data is 128 bits) signal.

マスタ1〜N(1−1〜1−N)は、128ビットのRDバスを介してスレーブ4からのデータを読出す。また、マスタ1〜N(1−1〜1−N)は、それぞれ32ビットのWD1〜WDNを介してスレーブ4にデータを書込む。   Masters 1 to N (1-1 to 1-N) read data from slave 4 via a 128-bit RD bus. The masters 1 to N (1-1 to 1-N) write data to the slaves 4 via 32-bit WD1 to WDN, respectively.

バス制御部2は、複数のマスタ1〜N(1−1〜1−N)からの要求1〜Nを受け、どの要求を受付けるかの調停を行ない、要求を受付けたマスタ(以下、要求を出したマスタとも呼ぶ。)以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。そして、バス制御部2は、受付けたアクセス要求をスレーブ制御部3に出力する。   The bus control unit 2 receives requests 1 to N from a plurality of masters 1 to N (1-1 to 1-N), arbitrates which request is accepted, and receives a request from the master (hereinafter referred to as a request). A snoop processing request is made to a master other than the master other than the master that issued the data, and it is confirmed whether the D cache 13 of the other master has the data to be accessed. Then, the bus control unit 2 outputs the accepted access request to the slave control unit 3.

スレーブ制御部3は、バス制御部2からのアクセス要求を受け、共有バス5を介してスレーブ4に対するデータのリードまたはライトを行なう。スレーブ制御部3は、スレーブ4に対して128ビットのデータリードおよびデータライトが可能である。   The slave control unit 3 receives an access request from the bus control unit 2 and reads or writes data to the slave 4 via the shared bus 5. The slave control unit 3 can perform 128-bit data read and data write to the slave 4.

本発明のシステムにおいては、Iキャッシュ12に保持される命令は、オペランドとのコヒーレンシを保つ必要がないアーキテクチャであり(命令コードを書き換えた場合はキャッシュパージを必須とする)、スヌープ処理によってコヒーレンシを保つ必要があるのは各マスタのDキャッシュ間のみである。各マスタからの命令フェッチの要求とオペランドアクセスの要求とが同じ要求信号で出力されるが、以下では、スヌープ処理が関係するオペランド(データ)アクセスについてのみ説明する。   In the system of the present invention, the instruction held in the I-cache 12 has an architecture that does not need to maintain coherency with the operand (the cache purge is essential when the instruction code is rewritten), and the coherency is reduced by the snoop process. All that needs to be maintained is between the D caches of each master. Although an instruction fetch request from each master and an operand access request are output with the same request signal, only operand (data) access related to snoop processing will be described below.

バス制御部2は、調停部21と、スヌープ制御部22と、スレーブアクセス制御部23と、128ビットのライトデータバッファ24とを含む。   The bus control unit 2 includes an arbitration unit 21, a snoop control unit 22, a slave access control unit 23, and a 128-bit write data buffer 24.

調停部21は、マスタから複数の要求を受けるとその調停を行ない、選択したマスタに対してACK(受付)信号をアサートする。調停方法としては、ラウンドロビン方式やランダム方式などが用いられる。   When receiving a plurality of requests from the master, the arbitrating unit 21 performs arbitration, and asserts an ACK (acceptance) signal to the selected master. As an arbitration method, a round robin method or a random method is used.

スヌープ制御部22は、調停部21によって調停された次のサイクルに、要求があったマスタ以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。スヌープ処理の終了後、スレーブアクセス制御部23は、スレーブ制御部3に対してアクセス要求を出力する。   The snoop control unit 22 makes a snoop process request to a master other than the requested master in the next cycle arbitrated by the arbitration unit 21, and the D cache 13 of the other master has the data to be accessed. Check if it is. After the end of the snoop process, the slave access control unit 23 outputs an access request to the slave control unit 3.

以下にスヌープ処理を場合分けして説明するが、他のマスタが同じアドレスのデータを持っていない場合には「スヌープヒットしない」ものとする。また、他のマスタが同じアドレスのデータをExclusiveな状態、Sharedな状態、またはDirtyな状態で持っている場合は「スヌープヒットする」ものとする。   In the following, the snoop process will be described for each case. However, it is assumed that “no snoop hit” occurs when no other master has data of the same address. Further, if another master has data of the same address in an Exclusive state, a Shared state, or a Dirty state, it is assumed that a “snoop hit” occurs.

(1)スヌープヒットしない場合
スヌープ処理要求を受けた他のマスタは、自身のDキャッシュ13にスヌープ要求で示されるアドレスと一致するラインがあるか否かをチェックする。そして、自身のDキャッシュ13に一致するラインがなければ、要求を出したマスタに対して「なし」を示す情報を返送する。他のマスタ全てから「なし」を示す情報を受けると、スヌープ制御部22は、調停部21からの要求をそのままスレーブアクセス制御部23に出力する。なお、要求を出したマスタのDキャッシュ13のそのラインをExclusiveとして登録する。すなわち、このラインは要求を出したマスタのDキャッシュ13のみが持っている状態である。
(1) When no snoop hit occurs The other master that has received the snoop processing request checks whether or not there is a line in the D cache 13 that matches the address indicated by the snoop request. If there is no matching line in its own D-cache 13, information indicating "none" is returned to the master that issued the request. Upon receiving information indicating “none” from all other masters, the snoop control unit 22 outputs the request from the arbitration unit 21 to the slave access control unit 23 as it is. Note that the line in the master D-cache 13 that issued the request is registered as Exclusive. That is, this line is only in the master D-cache 13 that issued the request.

(2)他のマスタがExclusiveな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありExclusiveな状態であれば、要求を出したマスタに対して「Exclusive」を示す情報を返送する。リードの場合には、要求を出したマスタが「Exclusive」を示す情報を受けると、両方のマスタがそのラインをSharedとして登録する。すなわち、このラインは複数のマスタのDキャッシュ13によって共有されている状態である。
(2) When another master has an exclusive state If there is a line that matches another master's D cache 13 and is in an exclusive state, information indicating "Exclusive" is sent to the master that issued the request. Return it. In the case of read, when the master that issued the request receives information indicating “Exclusive”, both masters register the line as Shared. That is, this line is shared by a plurality of master D-caches 13.

また、ライトの場合には、要求を出したマスタが「Exclusive」を示す情報を受けると、ライトデータをExclusiveな状態で持っていたマスタのDキャッシュ13に書込むと共に、両方のマスタがそのラインをSharedとして登録する。また、Exclusiveな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。   In the case of a write, when the master that issued the request receives information indicating “Exclusive”, the write data is written into the D cache 13 of the master that has been in an exclusive state, and both masters are in the line. Is registered as Shared. Alternatively, only the master that issued the request may be registered as exclusive, by invalidating the line in the master D-cache 13 held in the exclusive state.

(3)他のマスタがSharedな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありSharedな状態であれば、要求を出したマスタに対して「Shared」を示す情報を返送する。リードの場合には、要求を出したマスタが「Shared」を示す情報を受けると、Dキャッシュ13のそのラインをSharedとして登録する。すなわち、このラインは複数のマスタのDキャッシュ13によって共有されている状態である。
(3) When another master has a shared state If there is a line that matches the D cache 13 of another master and the shared state is present, information indicating “Shared” is sent to the master that issued the request. Return it. In the case of a read, when the master that issued the request receives information indicating “Shared”, the line in the D cache 13 is registered as Shared. That is, this line is shared by a plurality of master D-caches 13.

また、ライトの場合には、要求を出したマスタが「Shared」を示す情報を受けると、ライトデータをSharedな状態で持っていたマスタのDキャッシュ13に書込むと共に、これらのマスタがそのラインをSharedとして登録する。また、Sharedな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。   In the case of a write, when the master that issued the request receives information indicating “Shared”, the write data is written into the D cache 13 of the master that has been in the Shared state, and these masters are in the line. Is registered as Shared. Alternatively, only the master that issued the request may be registered as an exclusive by invalidating the line of the master D cache 13 held in the shared state.

(4)他のマスタがDirtyな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありDirtyな状態(このラインは更新されており、メインメモリの内容と異なる値を保持している状態)であれば、「Dirty」を示す情報を返送する。リードの場合には、他のマスタはそれと同時にメインメモリにそのデータを書き戻す。データの書き戻しと同時にDキャッシュ13のそのラインをインバリデートする場合と、Cleanにするだけで有効状態としてDキャッシュ13に残す場合とがある。これらの中のいずれになるかは、スヌープ要求の要求状態、キャッシュのモードなどによって決まる。
(4) When another master has a Dirty state There is a line that matches the D cache 13 of the other master and the Dirty state (this line has been updated and holds a value different from the contents of the main memory. Information indicating “Dirty” is returned. In the case of a read, the other master simultaneously writes the data back into the main memory. There are a case where the line of the D cache 13 is invalidated simultaneously with the data write back and a case where the line is left in the D cache 13 as a valid state only by making it Clean. Which of these is determined depends on the request state of the snoop request, the cache mode, and the like.

そのラインをインバリデートする場合には、要求を出したマスタのDキャッシュ13のみがこのラインを持つことになり、要求を出したマスタはこのラインをExclusiveで登録する。これは、DirtyなラインはそのマスタのDキャッシュのみが持つことができるため、必ずExclusiveで保持されているからである。   When invalidating the line, only the D cache 13 of the master that issued the request has this line, and the master that issued the request registers this line with Exclusive. This is because a dirty line can only be held by the master D-cache, and is always held exclusively.

一方、Cleanにするだけの場合には、少なくとも2つのマスタのDキャッシュ13がこのラインを持っていることになり、Dキャッシュ13にSharedとして登録される。   On the other hand, when only the Clean is set, at least two master D caches 13 have this line and are registered in the D cache 13 as Shared.

また、ライトの場合には、要求を出したマスタが「Dirty」を示す情報を受けると、ライトデータをDirtyな状態で持っていたマスタのDキャッシュ13に書込むと共に、両方のマスタがそのラインをSharedとして登録する。また、Dirtyな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。いずれの場合もそのラインに対するコヒーレンシは保たれる。   In the case of a write, when the master that issued the request receives information indicating “Dirty”, the write data is written into the D cache 13 of the master that had been in the Dirty state, and both masters Is registered as Shared. Alternatively, only the master that issued the request may be registered as Exclusive by invalidating the line in the master D-cache 13 held in the Dirty state. In either case, coherency for that line is preserved.

スヌープ制御部22は、調停された後の要求がリードであれば、上述したスヌープ処理を行なった後、スレーブアクセス制御部23に対してスレーブ4へのアクセス要求を出力する。スレーブアクセス制御部23は、スレーブ制御部3を介して128ビットのデータを読出すと、そのデータをRDバスに出力する。   If the request after arbitration is a read, the snoop control unit 22 outputs the access request to the slave 4 to the slave access control unit 23 after performing the above-described snoop process. When the slave access control unit 23 reads 128-bit data via the slave control unit 3, the slave access control unit 23 outputs the data to the RD bus.

また、スヌープ制御部22は、調停された後の要求がライトの場合も、まず上述したスヌープ処理を行なう。その後、要求を出したマスタから32ビットのライトデータが出力されるので、調停部21は、1回のライト要求に対して1回のACK(受付)信号を要求を出したマスタに出力する。このとき、ライトデータが128ビットであれば、マスタから4回のライト要求が出力され、32ビットデータがライトデータバッファ24に順次書込まれる。   The snoop control unit 22 first performs the above-described snoop processing even when the request after arbitration is a write. Thereafter, since 32-bit write data is output from the requesting master, the arbitration unit 21 outputs one ACK (acceptance) signal to the requesting master in response to one write request. At this time, if the write data is 128 bits, four write requests are output from the master, and 32-bit data is sequentially written into the write data buffer 24.

128ビットのライトデータはキャッシュの同じラインのデータであるため、ライト時のスヌープ処理は1回目のライト要求に対してのみ行なわれ、残りの3回のライト要求に対するスヌープ処理は行なわれない。   Since the 128-bit write data is data on the same line in the cache, the snoop process at the time of writing is performed only for the first write request, and the snoop process for the remaining three write requests is not performed.

ライトデータバッファ24に4回分のライトデータが書込まれると、スレーブアクセス制御部23はスレーブ制御部3に対してスレーブ4に対するライト要求を出力するとともに、ライトデータバッファ24に書込まれた128ビットのライトデータをまとめてスレーブ処理部3に出力する。   When write data for four times is written in the write data buffer 24, the slave access control unit 23 outputs a write request for the slave 4 to the slave control unit 3 and 128 bits written in the write data buffer 24. Are collectively output to the slave processing unit 3.

図2は、本発明の第1の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。図2においては、調停の結果マスタ1(1−1)からの要求1が調停部21によって受付けられたところを示している。   FIG. 2 is a timing chart for explaining processing of the multiprocessor system according to the first embodiment of the present invention. In FIG. 2, a request 1 from the master 1 (1-1) is received by the arbitration unit 21 as a result of the arbitration.

T2において、マスタ1(1−1)が要求(リクエスト1信号)をアサートする。この要求は、アドレスA1のデータのリード要求であり、RW1信号がハイレベル(以下、Hレベル)とされる。調停部21は、アドレスA1のリード要求に対応してACK1信号をアサートする。   At T2, master 1 (1-1) asserts a request (request 1 signal). This request is a request to read data at address A1, and the RW1 signal is set to a high level (hereinafter, H level). The arbitration unit 21 asserts the ACK1 signal in response to the read request for the address A1.

T3において、スヌープ制御部22は、アドレスA1のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA2への32ビット以下のライト要求であり、RW1信号がロウレベル(以下、Lレベル)とされる。そして、マスタ1(1−1)は、書込みデータWD2を出力する。   At T3, the snoop control unit 22 issues a snoop processing request corresponding to the read request of the address A1 to a master other than the master 1 (1-1), and the snoop processing is performed. At this time, the master 1 (1-1) asserts the next request (request 1 signal). This request is a write request of 32 bits or less to the address A2, and the RW1 signal is set to the low level (hereinafter, L level). Then, the master 1 (1-1) outputs write data WD2.

T4において、スヌープ制御部22は、アドレスA2のライト要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA3のデータのリード要求であり、RW1信号がHレベルとされる。   At T4, the snoop control unit 22 issues a snoop process request corresponding to the write request at the address A2 to a master other than the master 1 (1-1), and the snoop process is performed. At this time, the master 1 (1-1) asserts the next request (request 1 signal). This request is a request to read the data at address A3, and the RW1 signal is set to the H level.

T5において、スヌープ制御部22は、アドレスA3のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、マスタ1(1−1)は、BURST1信号をHレベルにしてアドレスA4へのバーストライト要求を出力すると共に、最初の32ビットのライトデータWD4−1を出力する。このデータは、ライトデータバッファ24に書込まれる。   At T5, the snoop control unit 22 issues a snoop processing request corresponding to the read request at the address A3 to a master other than the master 1 (1-1). At this time, the master 1 (1-1) sets the BURST1 signal to the H level and outputs a burst write request to the address A4, and also outputs the first 32-bit write data WD4-1. This data is written into the write data buffer 24.

このサイクルT5で、アドレスA1のリード要求に対応するデータRD1がスレーブ4から読出されてマスタ1(1−1)に出力されると共に、リードデータが有効であることを示すVLD1信号がHレベルとされる。また、アドレスA2へのライトデータWD2がスレーブ4に出力される。   In cycle T5, data RD1 corresponding to the read request at address A1 is read from slave 4 and output to master 1 (1-1), and VLD1 signal indicating that the read data is valid is at H level. Is done. Also, write data WD2 to address A2 is output to slave 4.

T6において、スヌープ制御部22は、アドレスA4のライト要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、マスタ1(1−1)は、2番目の32ビットのライトデータWD4−2を出力してライトデータバッファ24に書込む。なお、アドレスA4のライト要求に対応するスヌープ処理要求は、このサイクルにおいてのみ行なわれる。   At T6, the snoop control unit 22 issues a snoop processing request corresponding to the write request at the address A4 to a master other than the master 1 (1-1). At this time, the master 1 (1-1) outputs the second 32-bit write data WD4-2 and writes it into the write data buffer 24. The snoop processing request corresponding to the write request at address A4 is made only in this cycle.

T7において、マスタ1(1−1)は、3番目の32ビットのライトデータWD4−3を出力してライトデータバッファ24に書込むと共に、アドレスA3のリード要求に対応するデータRD3がスレーブ4から読出されてマスタ1(1−1)に出力される。このとき、リードデータが有効であることを示すVLD1信号がHレベルとされる。   At T7, the master 1 (1-1) outputs the third 32-bit write data WD4-3 and writes it into the write data buffer 24, and the data RD3 corresponding to the read request at the address A3 is received from the slave 4. Read out and output to the master 1 (1-1). At this time, the VLD1 signal indicating that the read data is valid is set to the H level.

T8において、マスタ1(1−1)は、最後の32ビットのライトデータWD4−4を出力してライトデータバッファ24に書込む。   At T8, the master 1 (1-1) outputs the last 32-bit write data WD4-4 and writes it into the write data buffer 24.

T9において、ライトデータバッファ24に書込まれた128ビットのライトデータWD4を、スレーブ4に出力して書込まれる。   At T9, the 128-bit write data WD4 written in the write data buffer 24 is output to the slave 4 and written.

図3は、本発明の第1の実施の形態におけるバス制御部2の処理手順を説明するためのフローチャートである。まず、マスタからの要求がライト要求であるか否かが判定される(S11)。ライト要求でなければリード要求であると判定し(S11,No)、スヌープ制御部22は、他のマスタに対してスヌープ処理要求を発行し(S18)、ステップS17に処理が進む。   FIG. 3 is a flowchart for explaining the processing procedure of the bus control unit 2 according to the first embodiment of the present invention. First, it is determined whether or not the request from the master is a write request (S11). If it is not a write request, it is determined that the request is a read request (S11, No), and the snoop control unit 22 issues a snoop process request to another master (S18), and the process proceeds to step S17.

また、ライト要求と判定されれば(S11,Yes)、スヌープ制御部22は、他のマスタに対してスヌープ処理要求を発行する(S12)。そして、スレーブアクセス制御部23は、BURST信号を参照してライトデータのサイズが32ビットよりも大きいか否かを判定する(S13)。   If the write request is determined (S11, Yes), the snoop control unit 22 issues a snoop process request to another master (S12). Then, the slave access control unit 23 refers to the BURST signal and determines whether or not the size of the write data is larger than 32 bits (S13).

ライトデータのサイズが32ビット以下であれば(S13,No)、ステップS17に処理が進む。ライトデータのサイズが32ビットよりも大きければ(S13,Yes)、Countレジスタの値を0にクリアする(S14)。そして、ライトデータバッファ24に32ビットのデータを書込み、Countレジスタの値をインクリメントする(S15)。   If the size of the write data is 32 bits or less (S13, No), the process proceeds to step S17. If the size of the write data is larger than 32 bits (S13, Yes), the value of the Count register is cleared to 0 (S14). Then, 32-bit data is written to the write data buffer 24, and the value of the Count register is incremented (S15).

次に、Countレジスタの値が4よりも小さいか否かを判定する(S16)。データのサイズが32ビットよりも大きい場合は、サイズが128ビットのみなので、Countレジスタの値が4よりも小さければ(S16,Yes)、ステップS15に戻ってライトデータバッファ24へのデータ書込みを繰返す。Countレジスタの値が4であれば(S16,No)、128ビットのラインデータがそろったのでステップS17に処理が進む。   Next, it is determined whether or not the value of the Count register is smaller than 4 (S16). When the data size is larger than 32 bits, since the size is only 128 bits, if the value of the Count register is smaller than 4 (S16, Yes), the process returns to step S15 to repeat the data writing to the write data buffer 24. . If the value of the Count register is 4 (S16, No), since the 128-bit line data is ready, the process proceeds to step S17.

ステップS17において、スレーブ制御部3は、スレーブ4に対するアクセスを実行する。リードデータの場合、スレーブ制御部3は、スレーブ4から読出したデータをRDバスを介して要求を出したマスタに出力する。ライトデータの場合、スレーブ制御部3は、ライトデータバッファ24に書込まれた128ビット(または32ビット以下)のデータをスレーブ4に書込む。   In step S <b> 17, the slave control unit 3 executes access to the slave 4. In the case of read data, the slave control unit 3 outputs the data read from the slave 4 to the master that issued the request via the RD bus. In the case of write data, the slave control unit 3 writes 128-bit (or 32 bits or less) data written in the write data buffer 24 to the slave 4.

なお、以上の説明においては、マスタ1〜N(1−1〜1−N)とバス制御部2との間のライトデータのバス幅を32ビットとし、リードデータのバス幅を128ビットとしたが、ライトデータのバス幅がリードデータのバス幅よりも狭ければ同様の効果が得られることは言うまでもない。   In the above description, the write data bus width between the masters 1 to N (1-1 to 1-N) and the bus control unit 2 is 32 bits, and the read data bus width is 128 bits. However, it goes without saying that the same effect can be obtained if the bus width of the write data is narrower than the bus width of the read data.

以上説明したように、本実施の形態におけるバス制御装置によれば、マスタ1〜N(1−1〜1−N)との間のライトデータのバス幅(32ビット)をリードデータのバス幅(128ビット)よりも狭くしたので、配線混雑によりチップ面積が大きくなるのを防止することが可能となった。   As described above, according to the bus control device of the present embodiment, the write data bus width (32 bits) between the masters 1 to N (1-1 to 1-N) is changed to the read data bus width. Since it is narrower than (128 bits), it is possible to prevent the chip area from being increased due to wiring congestion.

また、スレーブ4に128ビットのデータを書込む場合には、ライトデータバッファ24に32ビットのデータを4回書込んで連結した後、スレーブ4に書込むようにしたので、ライトデータのバス幅を狭くしつつも、Dキャッシュ13のラインサイズと等しいサイズのデータを一度にスレーブ4に書込むことが可能となった。   When writing 128-bit data to the slave 4, the write data buffer 24 is written and connected to the write data buffer 24 four times and then written to the slave 4, so that the write data bus width It is possible to write data having a size equal to the line size of the D-cache 13 to the slave 4 at a time while reducing the size of the slave 4.

(第2の実施の形態)
図4は、本発明の第2の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。図1に示す第1の実施の形態におけるマルチプロセッサシステムと比較して、スヌープヒットしたときにDキャッシュ13にあるデータが書込まれるスヌープデータバッファ25が追加されている点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
(Second Embodiment)
FIG. 4 is a diagram illustrating a configuration example of a multiprocessor system including a bus control unit according to the second embodiment of the present invention. Compared with the multiprocessor system in the first embodiment shown in FIG. 1, the only difference is that a snoop data buffer 25 into which data in the D-cache 13 is written when a snoop hit is added. Therefore, detailed description of overlapping configurations and functions will not be repeated.

スヌープ制御部22は、調停部21によって調停された後の要求があったマスタ以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。スヌープヒットした場合、マスタは128ビットのスヌープデータバッファ25に1ライン分のデータを書込む。   The snoop control unit 22 makes a snoop processing request to a master other than the master that has been requested after arbitration by the arbitration unit 21, and whether or not the D cache 13 of another master has data to be accessed. To check. When a snoop hit occurs, the master writes data for one line in the 128-bit snoop data buffer 25.

マスタ1〜N(1−1〜1−N)は、128ビットのデータをライトデータバッファ24に書込む場合と同様に、WD1〜WDNを介して32ビットデータを4回書込むことにより、スヌープデータをスヌープデータバッファ25に書込む。   Masters 1 to N (1-1 to 1-N) can snoop by writing 32-bit data four times through WD1 to WDN in the same manner as when writing 128-bit data to the write data buffer 24. Data is written into the snoop data buffer 25.

(1)スヌープヒットしない場合
スヌープ処理要求を受けた他のマスタは、自身のDキャッシュ13に一致するラインがなければ、要求を出したマスタに対して「なし」を示す情報を返送する。他のマスタ全てから「なし」を示す情報を受けると、スヌープ制御部22は、調停部21からの要求をそのままスレーブアクセス制御部23に出力する。そして、要求を出したマスタのDキャッシュ13のそのラインをExclusiveとして登録する。
(1) In the case where no snoop hit occurs When another master that has received a snoop processing request does not have a matching line in its own D-cache 13, information indicating "none" is returned to the master that issued the request. Upon receiving information indicating “none” from all other masters, the snoop control unit 22 outputs the request from the arbitration unit 21 to the slave access control unit 23 as it is. Then, the line of the master D cache 13 that has issued the request is registered as Exclusive.

(2)他のマスタがExclusiveな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありExclusiveな状態であれば、要求を出したマスタに対して「Exclusive」を示す情報を返送する。リードの場合には、他のマスタがそれと同時にスヌープデータバッファ25にそのラインのデータを書込む。要求を出したマスタが「Exclusive」を示す情報を受けると、スヌープデータバッファ25からそのラインのデータを読出す。両方のマスタはそのラインをSharedとして登録する。
(2) When another master has an exclusive state If there is a line that matches another master's D cache 13 and is in an exclusive state, information indicating "Exclusive" is sent to the master that issued the request. Return it. In the case of reading, another master simultaneously writes the data of the line into the snoop data buffer 25. When the master that issued the request receives information indicating “Exclusive”, the data of the line is read from the snoop data buffer 25. Both masters register the line as Shared.

また、ライトの場合には、要求を出したマスタが「Exclusive」を示す情報を受けると、ライトデータをライトデータバッファ24およびスヌープデータバッファ25に書込むと共に、そのラインをSharedとして登録する。他のマスタは、スヌープデータバッファ25からそのラインのデータを読出してSharedとして登録する。ライトデータバッファ24に書込まれたデータは、スレーブ制御部3によってスレーブ4に書込まれる。また、Exclusiveな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。   In the case of writing, when the requesting master receives information indicating “Exclusive”, the write data is written into the write data buffer 24 and the snoop data buffer 25 and the line is registered as Shared. The other master reads the data of the line from the snoop data buffer 25 and registers it as Shared. The data written to the write data buffer 24 is written to the slave 4 by the slave control unit 3. Alternatively, only the master that issued the request may be registered as exclusive, by invalidating the line in the master D-cache 13 held in the exclusive state.

(3)他のマスタがSharedな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありSharedな状態であれば、要求を出したマスタに対して「Shared」を示す情報を返送する。リードの場合には、他のマスタがそれと同時にスヌープデータバッファ25にそのラインのデータを書込む。要求を出したマスタが「Shared」を示す情報を受けると、スヌープデータバッファ25からそのラインのデータを読出す。両方のマスタはそのラインをSharedとして登録する。
(3) When another master has a shared state If there is a line that matches the D cache 13 of another master and the shared state is present, information indicating “Shared” is sent to the master that issued the request. Return it. In the case of reading, another master simultaneously writes the data of the line into the snoop data buffer 25. When the master that issued the request receives information indicating “Shared”, the data of the line is read from the snoop data buffer 25. Both masters register the line as Shared.

また、ライトの場合には、要求を出したマスタが「Shared」を示す情報を受けると、ライトデータをライトデータバッファ24およびスヌープデータバッファ25に書込むと共に、そのラインをSharedとして登録する。他のマスタは、スヌープデータバッファ25からそのラインのデータを読出してSharedとして登録する。ライトデータバッファ24に書込まれたデータは、スレーブ制御部3によってスレーブ4に書込まれる。また、Sharedな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。   In the case of writing, when the requesting master receives information indicating “Shared”, the write data is written into the write data buffer 24 and the snoop data buffer 25 and the line is registered as Shared. The other master reads the data of the line from the snoop data buffer 25 and registers it as Shared. The data written to the write data buffer 24 is written to the slave 4 by the slave control unit 3. Alternatively, only the master that issued the request may be registered as an exclusive by invalidating the line of the master D cache 13 held in the shared state.

(4)他のマスタがDirtyな状態で持っている場合
他のマスタのDキャッシュ13に一致するラインがありDirtyな状態であれば、要求を出したマスタに対して「Dirty」を示す情報を返送する。リードの場合には、他のマスタがそれと同時にスヌープデータバッファ25にそのラインのデータを書込む。要求を出したマスタが「Dirty」を示す情報を受けると、スヌープデータバッファ25からそのラインのデータを読出す。両方のマスタはそのラインをSharedとして登録する。
(4) When another master has a Dirty state If there is a line that matches the D cache 13 of another master and the state is Dirty, information indicating "Dirty" is sent to the master that issued the request. Return it. In the case of reading, another master simultaneously writes the data of the line into the snoop data buffer 25. When the master that issued the request receives the information indicating “Dirty”, the data of the line is read from the snoop data buffer 25. Both masters register the line as Shared.

また、ライトの場合には、要求を出したマスタが「Dirty」を示す情報を受けると、ライトデータをライトデータバッファ24およびスヌープデータバッファ25に書込むと共に、そのラインをSharedとして登録する。他のマスタは、スヌープデータバッファ25からそのラインのデータを読出してSharedとして登録する。ライトデータバッファ24に書込まれたデータは、スレーブ制御部3によってスレーブ4に書込まれる。また、Dirtyな状態で持っていたマスタのDキャッシュ13のそのラインをインバリデートし、要求を出したマスタのみがExclusiveとして登録してもよい。   In the case of writing, when the requesting master receives information indicating “Dirty”, the write data is written into the write data buffer 24 and the snoop data buffer 25 and the line is registered as Shared. The other master reads the data of the line from the snoop data buffer 25 and registers it as Shared. The data written to the write data buffer 24 is written to the slave 4 by the slave control unit 3. Alternatively, only the master that issued the request may be registered as Exclusive by invalidating the line in the master D-cache 13 held in the Dirty state.

図5は、本発明の第2の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。図5は、マスタ1(1−1)からのアドレスA1のリード要求時のスヌープ処理において、マスタN(1−N)のDキャッシュ13にスヌープヒットしたところを示している。   FIG. 5 is a timing chart for explaining processing of the multiprocessor system according to the second embodiment of the present invention. FIG. 5 shows a snoop hit in the D cache 13 of the master N (1-N) in the snoop process at the time of a read request for the address A1 from the master 1 (1-1).

T2において、マスタ1(1−1)が要求(リクエスト1信号)をアサートする。この要求は、アドレスA1のデータのリード要求であり、RW1信号がHレベルとされる。調停部21は、アドレスA1のリード要求に対応してACK1信号をアサートする。   At T2, master 1 (1-1) asserts a request (request 1 signal). This request is a request to read data at address A1, and the RW1 signal is set to the H level. The arbitration unit 21 asserts the ACK1 signal in response to the read request for the address A1.

T3において、スヌープ制御部22は、アドレスA1のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタN(1−N)がDirtyな状態でそのラインのデータを持っており、マスタN(1−N)は、最初の32ビットのスヌープデータD1−1をスヌープデータバッファ25に書込む。   At T3, the snoop control unit 22 issues a snoop processing request corresponding to the read request of the address A1 to a master other than the master 1 (1-1), and the snoop processing is performed. At this time, the master N (1-N) has the data of the line in the Dirty state, and the master N (1-N) writes the first 32-bit snoop data D1-1 to the snoop data buffer 25. Include.

このサイクルT3において、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA2のデータのリード要求であり、RW1信号がHレベルとされる。この要求は、アドレスA1のリード要求に対応するスヌープ処理が終了するまで待たされる。   In this cycle T3, the master 1 (1-1) asserts the next request (request 1 signal). This request is a request to read the data at address A2, and the RW1 signal is set to the H level. This request is kept waiting until the snoop process corresponding to the read request at the address A1 is completed.

T4において、マスタN(1−N)は、2番目の32ビットのスヌープデータD1−2をスヌープデータバッファ25に書込む。   At T4, the master N (1-N) writes the second 32-bit snoop data D1-2 into the snoop data buffer 25.

T5において、マスタN(1−N)は、3番目の32ビットのスヌープデータD1−3をスヌープデータバッファ25に書込む。   At T5, the master N (1-N) writes the third 32-bit snoop data D1-3 into the snoop data buffer 25.

T6において、マスタN(1−N)は、4番目の32ビットのスヌープデータD1−4をスヌープデータバッファ25に書込む。そして、スヌープデータバッファ25に書込まれた128ビットのスヌープデータR1がRDバスに出力され、VLD1信号がHレベルとされる。このとき、アドレスA2のデータのリード要求が受付けられ、調停部21がACK1信号をアサートする。   At T6, the master N (1-N) writes the fourth 32-bit snoop data D1-4 to the snoop data buffer 25. The 128-bit snoop data R1 written in the snoop data buffer 25 is output to the RD bus, and the VLD1 signal is set to the H level. At this time, a read request for the data at the address A2 is accepted, and the arbitration unit 21 asserts the ACK1 signal.

T7において、スヌープ制御部22は、アドレスA2のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA3のデータのリード要求である。   At T7, the snoop control unit 22 issues a snoop processing request corresponding to the read request of the address A2 to a master other than the master 1 (1-1), and the snoop processing is performed. At this time, the master 1 (1-1) asserts the next request (request 1 signal). This request is a read request for data at address A3.

T8において、スヌープ制御部22は、アドレスA3のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、アドレスA2のデータR2がRDバスに出力され、VLD1信号がHレベルとされる。   At T8, the snoop control unit 22 issues a snoop processing request corresponding to the read request at the address A3 to a master other than the master 1 (1-1). At this time, the data R2 of the address A2 is output to the RD bus, and the VLD1 signal is set to the H level.

T9において、アドレスA3のデータR3がRDバスに出力され、VLD1信号がHレベルとされる。   At T9, data R3 at address A3 is output to the RD bus, and the VLD1 signal is set to H level.

以上説明したように、本実施の形態におけるバス制御装置によれば、スヌープ処理においてスヌープヒットした場合には、スヌープデータバッファ25に32ビットのスヌープデータを4回書込んで連結した後、他のマスタがスヌープデータバッファ25からスヌープデータを読出すようにしたので、スヌープデータのバス幅を狭くすることができ、配線混雑によりチップ面積が大きくなるのを防止することが可能となった。   As described above, according to the bus control device in the present embodiment, when a snoop hit occurs in the snoop process, after writing and coupling the 32-bit snoop data to the snoop data buffer 25 four times, Since the master reads the snoop data from the snoop data buffer 25, the bus width of the snoop data can be narrowed, and the chip area can be prevented from increasing due to wiring congestion.

また、ライトデータバッファ24への書込みと、スヌープデータバッファ25への書込みとを並列に行なえるようにしたので、処理速度の向上を図ることが可能となった。   In addition, since writing to the write data buffer 24 and writing to the snoop data buffer 25 can be performed in parallel, the processing speed can be improved.

今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

本発明の第1の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。It is a figure which shows the structural example of the multiprocessor system containing the bus control part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。3 is a timing chart for explaining processing of the multiprocessor system in the first embodiment of the present invention; 本発明の第1の実施の形態におけるバス制御部2の処理手順を説明するためのフローチャートである。It is a flowchart for demonstrating the process sequence of the bus control part 2 in the 1st Embodiment of this invention. 本発明の第2の実施の形態におけるバス制御部を含んだマルチプロセッサシステムの構成例を示す図である。It is a figure which shows the structural example of the multiprocessor system containing the bus control part in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるマルチプロセッサシステムの処理を説明するためのタイミングチャートである。It is a timing chart for demonstrating the process of the multiprocessor system in the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

1−1〜1−N マスタ、2 バス制御部、3 スレーブ制御部、4 スレーブ、5 共有バス、11 CPU、12 Iキャッシュ、13 Dキャッシュ、21 調停部、22 スヌープ制御部、23 スレーブアクセス制御部、24 ライトデータバッファ、25 スヌープデータバッファ。   1-1 to 1-N master, 2 bus control unit, 3 slave control unit, 4 slave, 5 shared bus, 11 CPU, 12 I cache, 13 D cache, 21 arbitration unit, 22 snoop control unit, 23 slave access control Part, 24 write data buffer, 25 snoop data buffer.

Claims (7)

マルチプロセッサシステムにおいて複数のプロセッサからスレーブへのアクセス要求を制御するバス制御装置であって、
前記複数のプロセッサからのアクセス要求を調停する調停手段と、
前記スレーブに対して前記調停手段によって調停されたアクセスを行なうアクセス制御手段とを含み、
前記バス制御装置が片方向のリードバスとライトバスとによって前記複数のプロセッサと接続され、前記ライトバスのバス幅が前記リードバスのバス幅よりも狭くなるように構成される、バス制御装置。
A bus control device that controls access requests from a plurality of processors to a slave in a multiprocessor system,
Arbitration means for arbitrating access requests from the plurality of processors;
Access control means for performing access arbitrated by the arbitration means to the slave,
The bus control device is configured such that the bus control device is connected to the plurality of processors by a one-way read bus and a write bus, and the bus width of the write bus is narrower than the bus width of the read bus.
前記バス制御装置はさらに、ライトデータを記憶するライトデータ記憶手段を含み、
前記アクセス制御手段は、プロセッサから出力される複数回のライトデータを前記ライトバスを介して前記ライトデータ記憶手段に書込み、前記ライトデータ記憶手段に書込まれたライトデータを一度に前記スレーブに書込む、請求項1記載のバス制御装置。
The bus control device further includes write data storage means for storing write data,
The access control means writes a plurality of write data output from the processor to the write data storage means via the write bus, and writes the write data written to the write data storage means to the slave at a time. The bus control device according to claim 1.
前記バス制御装置はさらに、前記調停手段によって調停されたアクセス要求に対応したスヌープ要求を前記複数のプロセッサに対して発行するスヌープ制御手段と、
スヌープデータを記憶するスヌープデータ記憶手段とを含み、
前記スヌープ制御手段は、スヌープヒットしたプロセッサから出力される複数回のスヌープデータを前記ライトバスを介して前記スヌープデータ記憶手段に書込み、前記スヌープデータ記憶手段に書込まれたスヌープデータを前記リードバスを介して一度にアクセス要求を出したプロセッサに出力する、請求項2記載のバス制御装置。
The bus control device further includes snoop control means for issuing a snoop request corresponding to the access request arbitrated by the arbitration means to the plurality of processors;
Snoop data storage means for storing snoop data,
The snoop control means writes a plurality of snoop data output from a snoop hit processor to the snoop data storage means via the write bus, and writes the snoop data written to the snoop data storage means to the read bus 3. The bus control device according to claim 2, wherein the bus control device outputs the request to the processor that has issued an access request at a time.
前記スヌープ制御手段は、アクセス要求を出したプロセッサから出力される複数回のライトデータを前記ライトバスを介して前記スヌープデータ記憶手段に書込み、前記スヌープデータ記憶手段に書込まれたライトデータを前記リードバスを介して一度にスヌープヒットしたプロセッサに出力する、請求項3記載のバス制御装置。   The snoop control means writes a plurality of write data output from the processor that issued the access request to the snoop data storage means via the write bus, and writes the write data written to the snoop data storage means to the snoop data storage means. 4. The bus control device according to claim 3, wherein the bus control device outputs to a processor that has made a snoop hit at a time via a read bus. 前記スヌープヒットしたプロセッサは、ダーティな状態でデータをキャッシュラインに保持するプロセッサである、請求項3または4記載のバス制御装置。   5. The bus control device according to claim 3, wherein the snoop hit processor is a processor that holds data in a cache line in a dirty state. 前記ライトデータ記憶手段への書込みと、前記スヌープデータ記憶手段への書込みとが異なるプロセッサによって異なるライトバスを介して並行に行なわれる、請求項3〜5のいずれかに記載のバス制御装置。   6. The bus control device according to claim 3, wherein the writing to the write data storage means and the writing to the snoop data storage means are performed in parallel via different write buses by different processors. 前記ライトデータ記憶手段への書込みと、前記スヌープデータ記憶手段への書込みとが同じプロセッサによって同じライトバスを介して並行に行なわれる、請求項3〜5のいずれかに記載のバス制御装置。   6. The bus control device according to claim 3, wherein the writing to the write data storage unit and the writing to the snoop data storage unit are performed in parallel via the same write bus by the same processor.
JP2007206748A 2007-08-08 2007-08-08 Bus controller Pending JP2009042992A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007206748A JP2009042992A (en) 2007-08-08 2007-08-08 Bus controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007206748A JP2009042992A (en) 2007-08-08 2007-08-08 Bus controller

Publications (1)

Publication Number Publication Date
JP2009042992A true JP2009042992A (en) 2009-02-26

Family

ID=40443680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007206748A Pending JP2009042992A (en) 2007-08-08 2007-08-08 Bus controller

Country Status (1)

Country Link
JP (1) JP2009042992A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324541A (en) * 1992-05-15 1993-12-07 Matsushita Electric Ind Co Ltd Bus interface device
JPH09244607A (en) * 1996-03-12 1997-09-19 Fujitsu Ten Ltd Video display circuit
JPH10301895A (en) * 1997-04-30 1998-11-13 Oki Electric Ind Co Ltd Bus extension device
JP2000003332A (en) * 1998-06-12 2000-01-07 Nec Eng Ltd Bi-directional bus size conversion circuit
JP2005010995A (en) * 2003-06-18 2005-01-13 Nec Corp Multiprocessor system and process for dealing with trouble of write-back thereof
JP2006048406A (en) * 2004-08-05 2006-02-16 Fujitsu Ltd Memory system controller and memory system control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324541A (en) * 1992-05-15 1993-12-07 Matsushita Electric Ind Co Ltd Bus interface device
JPH09244607A (en) * 1996-03-12 1997-09-19 Fujitsu Ten Ltd Video display circuit
JPH10301895A (en) * 1997-04-30 1998-11-13 Oki Electric Ind Co Ltd Bus extension device
JP2000003332A (en) * 1998-06-12 2000-01-07 Nec Eng Ltd Bi-directional bus size conversion circuit
JP2005010995A (en) * 2003-06-18 2005-01-13 Nec Corp Multiprocessor system and process for dealing with trouble of write-back thereof
JP2006048406A (en) * 2004-08-05 2006-02-16 Fujitsu Ltd Memory system controller and memory system control method

Similar Documents

Publication Publication Date Title
JP7227680B2 (en) Multi-core bus architecture with non-blocking high performance transaction credit system
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
KR100360064B1 (en) Highly Pipelined Bus Structure
US5524235A (en) System for arbitrating access to memory with dynamic priority assignment
US7093079B2 (en) Snoop filter bypass
JP5787629B2 (en) Multi-processor system on chip for machine vision
JP3218773B2 (en) Cache controller
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
KR100387541B1 (en) Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
TW200534110A (en) A method for supporting improved burst transfers on a coherent bus
JP2012038293A5 (en)
JP2007524904A (en) Method and apparatus for dynamic prefetch buffer configuration and replacement
TW201810055A (en) PCI Express enhancements and extensions
JP2001117859A (en) Bus controller
US10198357B2 (en) Coherent interconnect for managing snoop operation and data processing apparatus including the same
US11138117B2 (en) Memory pipeline control in a hierarchical memory system
US9411731B2 (en) System and method for managing transactions
US20070073977A1 (en) Early global observation point for a uniprocessor system
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
US5923857A (en) Method and apparatus for ordering writeback data transfers on a bus
JP2001043133A (en) Method and system for maintaining cache coherency for write-through-store operation in multiprocessor system
US7073004B2 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
JP2009042992A (en) Bus controller
US8706974B2 (en) Snoop request management in a data processing system
US6546469B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100217

A711 Notification of change in applicant

Effective date: 20100602

Free format text: JAPANESE INTERMEDIATE CODE: A712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A02 Decision of refusal

Effective date: 20120207

Free format text: JAPANESE INTERMEDIATE CODE: A02