JP2009042992A - Bus controller - Google Patents
Bus controller Download PDFInfo
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
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
特許文献1に開示されたマルチプロセッサシステムは、M個のCPUカードと、これらを接続する単方向のCPUカード間接続インタフェースとを備えている。CPUカード間制御回路は、命令送出回路と、調停回路とを有している。命令送出回路は、複数のプロセッサからの主記憶装置に対する複数の命令を受けた時にそれぞれN個の分割命令に分割し、これらのN個の分割命令をNサイクルに分割してCPUカード間接続インタフェースに送出する。調停回路は、CPUカードからの分割命令を受けた時に、これらの分割命令を調停してシリアル化し、命令を再生して主記憶制御回路に与える。
上述のように、リードバスとライトバスとを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
本発明は、上記問題点を解決するためになされたものであり、その目的は、配線混雑によりチップ面積が大きくなるのを防止するようにバスを構成して制御するバス制御装置を提供することである。 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
また、マスタ1〜N(1−1〜1−N)のそれぞれは、CPU(Central Processing Unit)11と、命令コードを保持するIキャッシュ12と、オペランド(データ)を保持するDキャッシュ13とを含む。各キャッシュのラインサイズは128ビットであり、キャッシュフィルなどのアクセスは128ビット単位で行なう。
Each of the
マスタ1〜N(1−1〜1−N)は、スレーブ4に対するアクセスを行なう場合、要求1〜Nを出力する。各要求には、リクエスト信号、リード/ライト信号、バイトコントロール信号、バースト(アクセスデータが128ビットであることを示す)信号など、要求に付随する情報が含まれる。
The
マスタ1〜N(1−1〜1−N)は、128ビットのRDバスを介してスレーブ4からのデータを読出す。また、マスタ1〜N(1−1〜1−N)は、それぞれ32ビットのWD1〜WDNを介してスレーブ4にデータを書込む。
バス制御部2は、複数のマスタ1〜N(1−1〜1−N)からの要求1〜Nを受け、どの要求を受付けるかの調停を行ない、要求を受付けたマスタ(以下、要求を出したマスタとも呼ぶ。)以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。そして、バス制御部2は、受付けたアクセス要求をスレーブ制御部3に出力する。
The bus control unit 2 receives
スレーブ制御部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
本発明のシステムにおいては、Iキャッシュ12に保持される命令は、オペランドとのコヒーレンシを保つ必要がないアーキテクチャであり(命令コードを書き換えた場合はキャッシュパージを必須とする)、スヌープ処理によってコヒーレンシを保つ必要があるのは各マスタのDキャッシュ間のみである。各マスタからの命令フェッチの要求とオペランドアクセスの要求とが同じ要求信号で出力されるが、以下では、スヌープ処理が関係するオペランド(データ)アクセスについてのみ説明する。
In the system of the present invention, the instruction held in the I-
バス制御部2は、調停部21と、スヌープ制御部22と、スレーブアクセス制御部23と、128ビットのライトデータバッファ24とを含む。
The bus control unit 2 includes an
調停部21は、マスタから複数の要求を受けるとその調停を行ない、選択したマスタに対してACK(受付)信号をアサートする。調停方法としては、ラウンドロビン方式やランダム方式などが用いられる。
When receiving a plurality of requests from the master, the
スヌープ制御部22は、調停部21によって調停された次のサイクルに、要求があったマスタ以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。スヌープ処理の終了後、スレーブアクセス制御部23は、スレーブ制御部3に対してアクセス要求を出力する。
The
以下にスヌープ処理を場合分けして説明するが、他のマスタが同じアドレスのデータを持っていない場合には「スヌープヒットしない」ものとする。また、他のマスタが同じアドレスのデータを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
(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
また、ライトの場合には、要求を出したマスタが「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
(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
また、ライトの場合には、要求を出したマスタが「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
(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キャッシュ13のみがこのラインを持つことになり、要求を出したマスタはこのラインをExclusiveで登録する。これは、DirtyなラインはそのマスタのDキャッシュのみが持つことができるため、必ずExclusiveで保持されているからである。
When invalidating the line, only the
一方、Cleanにするだけの場合には、少なくとも2つのマスタのDキャッシュ13がこのラインを持っていることになり、Dキャッシュ13にSharedとして登録される。
On the other hand, when only the Clean is set, at least two
また、ライトの場合には、要求を出したマスタが「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
スヌープ制御部22は、調停された後の要求がリードであれば、上述したスヌープ処理を行なった後、スレーブアクセス制御部23に対してスレーブ4へのアクセス要求を出力する。スレーブアクセス制御部23は、スレーブ制御部3を介して128ビットのデータを読出すと、そのデータをRDバスに出力する。
If the request after arbitration is a read, the snoop
また、スヌープ制御部22は、調停された後の要求がライトの場合も、まず上述したスヌープ処理を行なう。その後、要求を出したマスタから32ビットのライトデータが出力されるので、調停部21は、1回のライト要求に対して1回のACK(受付)信号を要求を出したマスタに出力する。このとき、ライトデータが128ビットであれば、マスタから4回のライト要求が出力され、32ビットデータがライトデータバッファ24に順次書込まれる。
The snoop
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
図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
T2において、マスタ1(1−1)が要求(リクエスト1信号)をアサートする。この要求は、アドレスA1のデータのリード要求であり、RW1信号がハイレベル(以下、Hレベル)とされる。調停部21は、アドレスA1のリード要求に対応してACK1信号をアサートする。
At T2, master 1 (1-1) asserts a request (
T3において、スヌープ制御部22は、アドレスA1のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA2への32ビット以下のライト要求であり、RW1信号がロウレベル(以下、Lレベル)とされる。そして、マスタ1(1−1)は、書込みデータWD2を出力する。
At T3, the snoop
T4において、スヌープ制御部22は、アドレスA2のライト要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA3のデータのリード要求であり、RW1信号がHレベルとされる。
At T4, the snoop
T5において、スヌープ制御部22は、アドレスA3のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、マスタ1(1−1)は、BURST1信号をHレベルにしてアドレスA4へのバーストライト要求を出力すると共に、最初の32ビットのライトデータWD4−1を出力する。このデータは、ライトデータバッファ24に書込まれる。
At T5, the snoop
このサイクル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
T6において、スヌープ制御部22は、アドレスA4のライト要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、マスタ1(1−1)は、2番目の32ビットのライトデータWD4−2を出力してライトデータバッファ24に書込む。なお、アドレスA4のライト要求に対応するスヌープ処理要求は、このサイクルにおいてのみ行なわれる。
At T6, the snoop
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
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
T9において、ライトデータバッファ24に書込まれた128ビットのライトデータWD4を、スレーブ4に出力して書込まれる。
At T9, the 128-bit write data WD4 written in the
図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
また、ライト要求と判定されれば(S11,Yes)、スヌープ制御部22は、他のマスタに対してスヌープ処理要求を発行する(S12)。そして、スレーブアクセス制御部23は、BURST信号を参照してライトデータのサイズが32ビットよりも大きいか否かを判定する(S13)。
If the write request is determined (S11, Yes), the snoop
ライトデータのサイズが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
次に、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
ステップ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
なお、以上の説明においては、マスタ1〜N(1−1〜1−N)とバス制御部2との間のライトデータのバス幅を32ビットとし、リードデータのバス幅を128ビットとしたが、ライトデータのバス幅がリードデータのバス幅よりも狭ければ同様の効果が得られることは言うまでもない。
In the above description, the write data bus width between the
以上説明したように、本実施の形態におけるバス制御装置によれば、マスタ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
また、スレーブ4に128ビットのデータを書込む場合には、ライトデータバッファ24に32ビットのデータを4回書込んで連結した後、スレーブ4に書込むようにしたので、ライトデータのバス幅を狭くしつつも、Dキャッシュ13のラインサイズと等しいサイズのデータを一度にスレーブ4に書込むことが可能となった。
When writing 128-bit data to the
(第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
スヌープ制御部22は、調停部21によって調停された後の要求があったマスタ以外のマスタに対してスヌープ処理要求を行ない、アクセスしようとしているデータを他のマスタのDキャッシュ13が持っているか否かを確認する。スヌープヒットした場合、マスタは128ビットのスヌープデータバッファ25に1ライン分のデータを書込む。
The snoop
マスタ1〜N(1−1〜1−N)は、128ビットのデータをライトデータバッファ24に書込む場合と同様に、WD1〜WDNを介して32ビットデータを4回書込むことにより、スヌープデータをスヌープデータバッファ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-
(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
また、ライトの場合には、要求を出したマスタが「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
(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
また、ライトの場合には、要求を出したマスタが「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
(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
また、ライトの場合には、要求を出したマスタが「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
図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
T2において、マスタ1(1−1)が要求(リクエスト1信号)をアサートする。この要求は、アドレスA1のデータのリード要求であり、RW1信号がHレベルとされる。調停部21は、アドレスA1のリード要求に対応してACK1信号をアサートする。
At T2, master 1 (1-1) asserts a request (
T3において、スヌープ制御部22は、アドレスA1のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタN(1−N)がDirtyな状態でそのラインのデータを持っており、マスタN(1−N)は、最初の32ビットのスヌープデータD1−1をスヌープデータバッファ25に書込む。
At T3, the snoop
このサイクルT3において、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA2のデータのリード要求であり、RW1信号がHレベルとされる。この要求は、アドレスA1のリード要求に対応するスヌープ処理が終了するまで待たされる。
In this cycle T3, the master 1 (1-1) asserts the next request (
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
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
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
T7において、スヌープ制御部22は、アドレスA2のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行して、スヌープ処理が行なわれる。このとき、マスタ1(1−1)は、次の要求(リクエスト1信号)をアサートする。この要求は、アドレスA3のデータのリード要求である。
At T7, the snoop
T8において、スヌープ制御部22は、アドレスA3のリード要求に対応するスヌープ処理要求をマスタ1(1−1)以外のマスタに発行する。このとき、アドレスA2のデータR2がRDバスに出力され、VLD1信号がHレベルとされる。
At T8, the snoop
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
また、ライトデータバッファ24への書込みと、スヌープデータバッファ25への書込みとを並列に行なえるようにしたので、処理速度の向上を図ることが可能となった。
In addition, since writing to the
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 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−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.
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)
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 |
-
2007
- 2007-08-08 JP JP2007206748A patent/JP2009042992A/en active Pending
Patent Citations (6)
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 |