JP2011248564A - 中継装置およびプロセッサーシステム - Google Patents
中継装置およびプロセッサーシステム Download PDFInfo
- Publication number
- JP2011248564A JP2011248564A JP2010120213A JP2010120213A JP2011248564A JP 2011248564 A JP2011248564 A JP 2011248564A JP 2010120213 A JP2010120213 A JP 2010120213A JP 2010120213 A JP2010120213 A JP 2010120213A JP 2011248564 A JP2011248564 A JP 2011248564A
- Authority
- JP
- Japan
- Prior art keywords
- request
- input
- transferred
- signal
- response
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】処理の順序が定められたリクエストを効率よく中継する。
【解決手段】マスターデバイス(M1)とスレーブデバイス(S1,2)とをツリー型に接続してなるプロセッサーシステムにおいて、通信経路の分岐点に配置される中継器(TB3)は、処理の順序が定められたインオーダーリクエスト1,2,3が順に入力される際には、リクエスト1を下位側に転送して転送済みリクエスト1と分岐先が同じリクエスト2を下位側に転送し(T5〜T7)、転送済みリクエスト1,2と分岐先が異なるリクエスト3を待機させて転送待ちとし(T7〜T13)、転送済みリクエスト1,2に対するレスポンス1,2が返ってきてから待機させたリクエスト3を下位側に転送するから(T14)、処理の順序が定められたリクエストを効率よく中継することができる。
【選択図】図8
【解決手段】マスターデバイス(M1)とスレーブデバイス(S1,2)とをツリー型に接続してなるプロセッサーシステムにおいて、通信経路の分岐点に配置される中継器(TB3)は、処理の順序が定められたインオーダーリクエスト1,2,3が順に入力される際には、リクエスト1を下位側に転送して転送済みリクエスト1と分岐先が同じリクエスト2を下位側に転送し(T5〜T7)、転送済みリクエスト1,2と分岐先が異なるリクエスト3を待機させて転送待ちとし(T7〜T13)、転送済みリクエスト1,2に対するレスポンス1,2が返ってきてから待機させたリクエスト3を下位側に転送するから(T14)、処理の順序が定められたリクエストを効率よく中継することができる。
【選択図】図8
Description
本発明は、上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続されてなるプロセッサーシステムの通信経路の分岐点に配置され、上位側から入力されるリクエストの分岐先を選択して下位側に転送すると共に下位側から入力されるレスポンスを上位側に転送する中継器を複数備える中継装置およびこの中継装置が組み込まれてなるプロセッサーシステムに関する。
従来より、プロセッサーやメモリーコントローラー,I/Oインターフェースなどの複数のデバイスをツリー型の通信経路で接続するプロセッサーシステムが提案されている(例えば、特許文献1参照)。このプロセッサーシステムでは、プロセッサーの出力側の直後にバッファーを設けておき、処理の順序が定められたインオーダーリクエストを処理する場合には、先のリクエストに対するレスポンスが戻ってくるまで後のリクエストをバッファーに蓄積しておく。そして、レスポンスが戻ってきたときにリクエストの転送を開始することで、レスポンスの順序が入れ替わるのを防止して順序通りに処理するものとしている。
しかしながら、近年、この種のプロセッサーシステムにおいては、搭載される機器の多機能化などに伴って、デバイスの積載数が増加して通信経路が複雑化する傾向にある。このため、先のリクエストに対するレスポンスを待って後のリクエストの転送を開始すると処理のスループットが低下することがある。特に、先後のリクエストが転送されるデバイスが同一でレスポンスの順序に入れ替わりが生じないような場合には、そのようなスループットの低下が問題となる。
本発明の中継装置およびプロセッサーシステムは、処理の順序が定められたリクエストを効率よく中継することを主目的とする。
本発明の中継装置およびプロセッサーシステムは、上述の主目的を達成するために以下の手段を採った。
本発明の中継装置は、
上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続されてなるプロセッサーシステムの通信経路の分岐点に配置され、上位側から入力されるリクエストの分岐先を選択して下位側に転送すると共に下位側から入力されるレスポンスを上位側に転送する中継器を複数備える中継装置であって、
前記中継器は、入力されるリクエストがレスポンス待ちの転送済みリクエストに対して処理の順序が定められたものである際には、前記入力されるリクエストと前記転送済みリクエストとの分岐先が同じ場合に前記入力されるリクエストを転送し、前記分岐先が異なる場合に前記入力されるリクエストを待機させて前記転送済みリクエストに対するレスポンスが返ってきてから該待機させたリクエストを転送する
ことを特徴とする。
上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続されてなるプロセッサーシステムの通信経路の分岐点に配置され、上位側から入力されるリクエストの分岐先を選択して下位側に転送すると共に下位側から入力されるレスポンスを上位側に転送する中継器を複数備える中継装置であって、
前記中継器は、入力されるリクエストがレスポンス待ちの転送済みリクエストに対して処理の順序が定められたものである際には、前記入力されるリクエストと前記転送済みリクエストとの分岐先が同じ場合に前記入力されるリクエストを転送し、前記分岐先が異なる場合に前記入力されるリクエストを待機させて前記転送済みリクエストに対するレスポンスが返ってきてから該待機させたリクエストを転送する
ことを特徴とする。
この本発明の中継装置では、通信経路の分岐点に配置される中継器を複数備え、中継器は、入力されるリクエストがレスポンス待ちの転送済みリクエストに対して処理の順序が定められたものである際には、入力されるリクエストと転送済みリクエストとの分岐先が同じ場合に入力されるリクエストを転送し、分岐先が異なる場合に入力されるリクエストを待機させて転送済みリクエストに対するレスポンスが返ってきてから待機させたリクエストを転送する。これにより、処理の順序が定められたリクエストを転送済みリクエストと分岐先が異なる中継器まで転送して待機させることができるから、速やかにスレーブデバイスに到着させることができる。この結果、処理の順序が定められたリクエストを効率よく中継することができる。
こうした本発明の中継装置において、前記中継器は、リクエストを転送したときにカウントアップし該転送したリクエストに対するレスポンスが返ってきたときにカウントダウンするカウンターを有し、該カウンターが初期値の際には、前記入力されるリクエストを転送し、前記カウンターが初期値とは異なる値の際には、前記分岐先が同じ場合に前記入力されるリクエストを転送し前記分岐先が異なる場合に前記カウンターが初期値となるまで前記入力されるリクエストを待機させて初期値となってから該待機させたリクエストを転送するものとすることもできる。こうすれば、カウンターを用いた簡易な構成で、処理の順序が定められたリクエストを効率よく中継することができる。
また、本発明の中継装置において、前記中継器は、前記マスターデバイスと前記スレーブデバイスとを繋ぐ経路のうち少なくとも一部の経路に直列的に2つ以上配置されてなるものとすることもできる。この場合、処理の順序が定められたリクエストを下位側の中継器で待機させるほどより速やかにスレーブデバイスに到着させることができるものとなるから、本発明による効果がより大きなものとなる。
また、本発明の中継装置において、前記中継器は、前記入力されたリクエストと前記転送済みリクエストとのトランザクションの識別情報が同一の場合に前記処理の順序が定められたものとすることもできる。複数のマスターデバイスを備えるプロセッサーシステムに組み込まれるこの態様の本発明の中継装置において、前記中継器は、前記入力されたリクエストと前記転送済みリクエストとのリクエスト元のマスターデバイスが同一の場合に前記処理の順序が定められたものとすることもできる。こうすれば、複数のマスターデバイスが共通のトランザクションを用いる場合にも対応することができる。また、前記スレーブデバイスとしてメモリーに対するデータのリードまたはライトを行なうメモリーコントローラーを含むプロセッサーシステムに組み込まれるこれらの態様の本発明の中継装置において、前記中継器は、前記入力されたリクエストと前記転送済みリクエストとが共にリードリクエストの場合または共にライトリクエストの場合に前記処理の順序が定められたものとすることもできる。こうすれば、リードリクエストとライトリクエストとにおいて共通のトランザクションを用いる場合にも対応することができる。
本発明のプロセッサーシステムは、上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続され、上述した態様のいずれかの中継装置が組み込まれてなることを要旨とする。
この本発明のプロセッサーシステムでは、上述のいずれかの態様の本発明の中継装置が組み込まれてなるから、本発明の中継装置が有する効果、例えば、処理の順序が定められたリクエストを効率よく中継することができる効果などと同等の効果を奏することができる。
次に、本発明の実施の形態を図面を用いて説明する。図1は、本発明の一実施形態である中継装置を備えたマルチプロセッサーシステム20の構成の概略を示す構成図である。このマルチプロセッサーシステム20は、マスターデバイス30(Master0,1,2)やスレーブデバイス80(Slave0,1,2)などの複数のデバイス(プロセッサー)をいわゆるツリー型のネットワーク構造で図示しない基板上に集積化したものである。なお、マスターデバイス30としては、メインプロセッサーやダイレクトメモリーアクセスコントローラーなどが該当し、スレーブデバイス80としては、各種I/Oデバイスやメモリーコントローラーなどが該当する。
このマルチプロセッサーシステム20においては、マスターデバイス30側とスレーブデバイス80側とが、プロトコルブリッジ35(P−Bm0,P−Bm1,P−Bm2)とクロスバースイッチ40とバスブリッジ群70とプロトコルブリッジ75(P−Bs0,P−Bs1,P−Bs2)とを介して接続されている。プロトコルブリッジ35やプロトコルブリッジ75の各プロトコルブリッジは、デバイス毎に異なるプロトコルを共通のパケットに変換してクロスバースイッチ40やバスブリッジ群70に転送したり、共通のパケットをデバイス毎のプロトコルに変換して各デバイスに転送したりする。なお、本発明の中継装置としては、クロスバースイッチ40とバスブリッジ群70とが該当する。
ここで、各プロトコルブリッジにより変換され、クロスバースイッチ40やバスブリッジ群70で用いられるパケットについて説明する。図2は、パケットの一例を示す説明図である。なお、パケットとしては、データ転送用のワイドタイプのパケット(73ビットや80ビットなど)とレジスター設定用のナロータイプのパケット(32ビットや48ビットなど)とを用いることができるが、一例としてワイドタイプのパケットを説明する。図示するように、リクエスト用のリクエストパケットコマンド(図2(a))やリクエストパケットデータ(図2(b))、レスポンス用のレスポンスデータ(図2(c))などがある。リクエストパケットコマンドには、リードまたはライトなどのコマンド種別を示すコマンドコード(C)やデータアクセスサイズ(Dsize)、トランザクションの識別情報を示すトランザクションID(TID)、リクエストの出力元のマスターデバイス30の識別情報を示すSID(SourceID)、アドレスフィールド(Address)、バースト長(Bsize)などの情報が含まれている。また、リクエストパケットデータには、ライトデータフィールド(Write data)などの情報が含まれており、レスポンスデータには、リードデータフィールド(Read data)やレスポンスのエラーの有無(Res)、TID、SIDなどの情報が含まれている。なお、以下の説明では、リクエストパケットコマンドやリクエストパケットデータを単にリクエストと称し、レスポンスデータを単にレスポンスと称する。
クロスバースイッチ40は、マスターデバイス30側からのリクエストの分配およびスレーブデバイス80側からのレスポンスの収集を行なうターゲットブリッジ(Target-Bridge,以下Tブリッジとする)42(T−B0,T−B1,T−B2)と、リクエストの調停やレスポンスの分配を行なうイニシエーターブリッジ(Initiator-Bridge、以下Iブリッジとする)44(I−B0,I−B1)とを備える。Tブリッジ42のうち、T−B0はP−Bm0を介してMaster0に接続され、T−B1はP−Bm1を介してMaster1に接続され、T−B2はP−Bm2を介してMaster2に接続されている。また、Iブリッジ44のうち、I−B0はバスブリッジ群70やプロトコルブリッジ75(P−Bs0)を介してSlave0に接続され、I−B1はバスブリッジ群70やプロトコルブリッジ75(P−Bs1,2)を介してSlave1,2に接続されている。また、T−B0,T−B1とI−B0、T−B1,T−B2とI−B1がそれぞれ接続されている。このTブリッジ42とIブリッジ44の構成の概略を図3に示す。図3(a)はTブリッジ42のうちT−B1を例示し、図3(b)はIブリッジ44のうちI−B1を例示する。
Tブリッジ42(T−B1)には、プロトコルブリッジ35を介してマスターデバイス30に接続される1つの第1入力ポート42aおよび1つの第1出力ポート42bと、クロスバースイッチ40内のIブリッジ44に接続される複数の第2入力ポート42cおよび複数の第2出力ポート42dとが形成されている。また、処理の順序が定められたリクエストであるインオーダーリクエストの転送制御を行なうバスコントロール回路50と、第2出力ポート42dや第1出力ポート42bに設けられたバッファーとしてのFIFO42eとを備える。なお、T−B0やT−B2は、第2の入力ポート42cや第2出力ポート42dの数が異なることおよびバスコントロール回路50を備えないことを除き、T−B1と同様に構成されている。このTブリッジ42は、第1入力ポート42aにマスターデバイス30側からのリクエストが入力されると、アドレスデコードによりパケット内のアドレスを読み出してリクエスト先のデバイス(スレーブデバイス80)を判定すると共に判定したリクエスト先のデバイスに繋がる分岐先としてのIブリッジ44(I−B0〜1のいずれか)を図示しないアドレスマップを参照して選択し、選択したIブリッジ44に接続された第2出力ポート42dからリクエストを送信する。なお、バスコントロール回路50の転送制御の詳細については後述する。また、第2入力ポート42cにIブリッジ44(スレーブデバイス80側)からのレスポンスが入力されると、いわゆるラウンドロビンにより受け取った順に第1出力ポート42bからマスターデバイス30側にレスポンスを送信する。
Iブリッジ44(I−B1)には、バスブリッジ群70やプロトコルブリッジ75を介してスレーブデバイス80に接続される1つの第1入力ポート44aおよび1つの第1出力ポート44bと、Tブリッジ42の各T−Bの第2出力ポート42dに接続される複数の第2入力ポート44cと、各T−Bの第2入力ポート42cに接続される複数の第2出力ポート44dとが形成されている。また、第1出力ポート44bや第2出力ポート44dに設けられたバッファーとしてのFIFO44eを備える。なお、I−B0も同様に構成されている。このIブリッジ44は、第2入力ポート44cにTブリッジ42(マスターデバイス30側)からのリクエストが入力されると、第1出力ポート44bからスレーブデバイス80側にリクエストを送信する。また、このIブリッジ44は、複数のリクエストを受け付け可能に構成されており、リクエストが重複した場合には、優先順位付けに従って調停を行ない、その調停結果に従って順にFIFO44eに格納する。調停の方法としては、例えば、第2入力ポート44c毎に図示しないカウンターをそれぞれ設けておき、各カウンター値に応じた優先順位付けに従って調停を行なうものとすることができる。その場合、予めMaster1,2の優先度に応じて各カウンター値の初期値を設定しておき、カウンター値が高い第2入力ポート44cに入力されたリクエストを優先して調停を行ない、調停を行なう度にリクエストを優先した第2入力ポート44cのカウンター値を値1ずつ減じていき値0になったカウンター値をリセットするものなどとしてもよい。また、Iブリッジ44は、第1入力ポート44aにスレーブデバイス80側からのレスポンスが入力されると、パケット内のSIDを読み出して応答先のマスターデバイス30に繋がるTブリッジ42(T−B)を選択し、選択したTブリッジ42に接続されている第2出力ポート44dからレスポンスを送信する。
バスブリッジ群70は、クロスバースイッチ40のI−B1に接続されるTブリッジとしてのT−B3と、クロスバースイッチ40のI−B0に接続されると共にプロトコルブリッジ75のP−Bs0を介してスレーブデバイス80のSlave0に接続されるTブリッジとしてのT−B4と、T−B3に接続されると共にP−Bs1を介してSlave1に接続されるTブリッジとしてのT−B5と、T−B3に接続されると共にP−Bs2を介してSlave2に接続されるTブリッジとしてのT−B6とを備える。これらのTブリッジのうち、T−B3は、クロスバースイッチ40のT−B1と同様な入出力ポートを備えると共にバスコントロール回路50を備えるものとして構成され、T−B4,5,6は同様な入出力ポートを備えるもののバスコントロール回路50を備えないものとして構成されている。なお、バスブリッジ群70の各T−Bにおけるパケットの転送は、上述したクロスバースイッチ40の各T−Bにおけるパケットの転送と同様に行なわれるため、その説明は省略する。
ここで、クロスバースイッチ40のTブリッジ42のT−B1やバスブリッジ群70のT−B3が備えるバスコントロール回路50について説明する。図4は、バスコントロール回路50の構成の概略を示す構成図である。なお、ここでは、T−B3が備えるバスコントロール回路50を例として説明する。バスコントロール回路50は、リクエストの出力元のマスターデバイス30の数に応じた数の回路を備えており、T−B3の場合には出力元としてMaster1,2が該当するため、図示するように、2つの回路50a,50bを備える。なお、回路50aがMaster1からのインオーダーリクエストの転送制御に用いられ、回路50bがMaster2からのインオーダーリクエストの転送制御に用いられる。これらの回路50a,50bは、同一の構成であるため特に区別する必要がある場合を除き単にバスコントロール回路50と称し、以下の説明では回路50aを例として説明する。
このバスコントロール回路50(回路50a)は、入力されるリクエストのアドレスフィールドから転送先のポートNoを解析するアドレスデコーダー51と、リクエストのSIDと予め記憶しているマスターデバイス30(回路50aの場合はMaster1)のSID(SELF#ID)とを比較するリクエスト側コンパレーター(Cmp)52と、入力されるレスポンスのSIDと予め記憶しているマスターデバイス30のSID(SELF#ID)とを比較するレスポンス側コンパレーター(Cmp)53と、リクエストからTIDなどの情報を解析するリクエスト側TIDデコーダー54と、レスポンスからTIDなどの情報を解析するレスポンス側TIDデコーダー55と、入力されて既に転送した転送済みリクエストのうちレスポンス待ちのライトリクエストの数をカウントするライト用カウント部56と、転送済みリクエストのうちレスポンス待ちのリードリクエストの数をカウントするリード用カウント部57と、各種信号を入力し選択的に出力する選択出力部58,59,61,63と、リクエストの転送可否を判定して出力許可信号としてのOEN(Out Enable)信号を出力する出力判定部62と、出力判定部62からのOEN信号に基づいてリクエストを転送させるか停止させるリクエスト制御部(REQ制御部)64とを備える。なお、ライト用カウント部56やリード用カウント部57は、マスターデバイス30が設定可能なTIDの数に対応する数の各カウント部をそれぞれ有している。なお、各カウント部として、カウント部56(1),(2)およびカウント部57(1),(2)の2個ずつを図示したが、これに限られず、設定可能なTIDの数を10個や30個,60個などとしておき、それに対応する同数のカウント部を有するものとしてもよい。
リクエスト側コンパレーター52は、リクエストのSIDと予め記憶しているSID(SELF#ID)とを比較して、一致する場合にリクエスト側TIDデコーダー54に信号を出力する。即ち、リクエスト側コンパレーター52は、自身の回路が対応するMaster(回路50aの場合はMaster1)からのリクエストである場合にのみ信号を出力することになる。また、レスポンス側コンパレーター53も同様に、レスポンスのSIDと予め記憶しているSID(SELF#ID)とを比較して、一致する場合にレスポンス側TIDデコーダー55に信号を出力する。
リクエスト側TIDデコーダー54には、リクエスト側コンパレーター52からの信号と出力判定部62からのOEN信号が入力される。リクエスト側TIDデコーダー54は、リクエスト側コンパレーター52からの信号が入力されると、リクエスト内のTIDを解析すると共にコマンドコード(C)に示されるリードまたはライトの種別(R/W)を解析する。そして、出力判定部62からOEN信号が入力されると、解析した種別(R/W)に従って、種別がライトであればライト用カウント部56に信号を出力し、種別がリードであればリード用カウント部57に信号を出力する。このとき、上述したようにTIDの数に対応する数の各カウント部があるため、解析したTIDに対応するカウント部に信号を出力する。一方、レスポンス側TIDデコーダー55には、レスポンス側コンパレーター53からの信号が入力される。レスポンス側TIDデコーダー55は、信号が入力されると、レスポンス内のTIDと種別(R/W)とを解析し、リクエスト側TIDデコーダー54と同様に、解析した種別(R/W)およびTIDに従って、ライト用カウント部56またはリード用カウント部57のうちの対応するカウント部に信号を出力する。
ライト用カウント部56やリード用カウント部57には、アドレスデコーダー51からのポートNo(portN信号)が入力されると共にリクエスト側TIDデコーダー54からの信号やレスポンス側TIDデコーダー55からの信号が種別(R/W)やTIDに従って入力される。ここで、図5は、ライト用カウント部56の構成の概略を示す構成図である。ライト用カウント部56の各カウント部は、図示するように、カウンター56aとレジスター56bとからなる。カウンター56aには、リクエスト側TIDデコーダー54からの信号がUPポートに入力され、レスポンス側TIDデコーダー55からの信号がDWポートに入力される。このカウンター56aは、初期値は値0であり、リクエスト側TIDデコーダー54からの信号がUPポートに入力されると値1ずつカウントアップし、レスポンス側TIDデコーダー55からの信号がDWポートに入力されると値1ずつカウントダウンする。また、カウンター56aは、カウント値が初期値(値0)のときにはempty信号を出力し、max(例えば、値15など)のときにはfull信号を出力する。以下、これらのempty信号やfull信号をまとめてカウント値信号とする。なお、カウンター56aは、カウント値が値0でもmaxでもないときにはカウント値信号を出力しない。一方、レジスター56bには、アドレスデコーダー51からのportN信号がDポートに入力されると共にカウンター56aに入力されるリクエスト側TIDデコーダー54からの信号が分岐してLDポートに入力される。このレジスター56bは、portN信号がDポートに入力されている状態でリクエスト側TIDデコーダー54からの信号がLDポートに入力されると、portN信号が示すポートNoをポートNoレジスターに設定してportN#reg信号として出力する。なお、リード用カウント部57の各カウント部は、図示は省略するが、ライト用カウント部56と同様にカウンターとレジスターとから構成され、カウント値に応じてカウント値信号(empty信号やfull信号)を出力し、ポートNoレジスター(portN#reg信号)を出力する。このように、ライト用カウント部56とリード用カウント部57とをそれぞれ別個に備えるから、リードリクエストとライトリクエストとにおいて共通のTIDを用いる場合にもレスポンス待ちのライトリクエストやリードリクエストをそれぞれカウントすることができる。また、上述したように、バスコントロール回路50aは、Master毎に同一の回路を有するから、各Masterが共通のTIDを用いる場合にも対応することができる。
選択出力部58には、図4に示すように、ライト用カウント部56の各カウント部からのカウント値信号(empty信号やfull信号)やポートNoレジスター(portN#reg信号)がカウント部の数に応じて複数入力されると共にリクエスト内のTIDが入力される。この選択出力部58は、TIDが入力されると、入力されたTIDに該当するカウント部からのカウント値信号やポートNoレジスターを選択出力部61に出力する。また、選択出力部59には、選択出力部58と同様に、リード用カウント部57の各カウント部からのカウント値信号やポートNoレジスターが複数入力されると共にリクエスト内のTIDが入力されており、入力されたTIDに該当するカウント部からのカウント値信号やポートNoレジスターを選択出力部61に出力する。
選択出力部61には、選択出力部58および選択出力部59からのカウント値信号やポートNoレジスターがそれぞれ入力されると共にリクエスト内の種別(R/W)が入力される。この選択出力部61は、種別(R/W)が入力されると、選択出力部58,59からの入力信号のうち入力された種別(R/W)に該当する信号を出力判定部62に出力する。即ち、種別がライトであれば選択出力部58からの信号を出力し、種別がリードであれば選択出力部59からの信号を出力する。
出力判定部62には、選択出力部61からのカウント値信号やポートNoレジスターが入力されると共にアドレスデコーダー51からのポートNoが入力される。この出力判定部は、これらの入力信号に基づいて、入力されたリクエストの転送の許否を判定し、転送可能な場合にはOEN信号を出力し、転送不能の場合にはOEN信号の出力を停止する。このOEN信号は、リクエスト側TIDデコーダー54と選択出力部63とに出力される。なお、出力判定部62の判定の詳細については、後述する。
選択出力部63には、各回路50a,50bの出力判定部62からOEN信号がそれぞれ入力されると共にSIDが入力される。この選択出力部63は、SIDが入力されると、入力されたSIDに対応する回路の出力判定部62から入力されるOEN信号をREQ制御部64に出力する。REQ制御部64は、選択出力部63からOEN信号が入力される場合にはリクエストを転送可能とし、OEN信号が入力されない場合にはリクエストを停止させる。なお、リクエストは、OEN信号が入力されると共にリクエストを受け入れ可能であることを示すリクエストレディ(Request ready)信号が下位側から入力されることを条件として転送されるが、詳細については省略する。
次に、こうして構成された本実施形態のマルチプロセッサーシステム20の動作、特に、インオーダーリクエストがマスターデバイス30から出力された場合におけるバスコントロール回路50の動作について説明する。図6は、バスコントロール回路50により実行される出力許否判定処理ルーチンの一例を示すフローチャートである。この処理は、各バスコントロール回路50の出力判定部62においてそれぞれ実行される。なお、バスブリッジ群70のT−B3のバスコントロール回路50のように複数の回路50a,50bを有するものにおいては、各回路50a,50bの出力判定部62において実行される。
出力許否判定処理ルーチンが実行されると、出力判定部62は、まず、カウント値信号としてempty信号が入力されているか否かを判定する(ステップS100)。ここで、出力判定部62には、選択出力部58,59,61を介してインオーダーリクエストのTIDや種別(R/W)に応じたカウント値信号が入力されるため、empty信号が入力される場合にはインオーダーリクエストと同じTID,同じ種別(R/W)のレスポンス待ちの転送済みリクエストはないと判断することができる。この場合、入力されるインオーダーリクエストを転送しても転送済みリクエストとの間でレスポンスの順序が入れ替わることによる問題が生じることはない。このため、ステップS100でempty信号が入力されていると判定した場合には、OEN信号を出力して(ステップS130)、本ルーチンを終了する。このOEN信号は、選択出力部63とリクエスト側TIDデコーダー54とに入力される。T−B3内のバスコントロール回路50のように複数の回路50a,50bを有するものにおいては、選択出力部63はリクエスト内のSIDに対応する回路の出力判定部62からのOEN信号を選択してREQ制御部64に出力する。このため、リクエスト内のSIDに対応する回路の出力判定部62からOEN信号が出力されていれば、REQ制御部64にOEN信号が入力されてリクエストの転送が可能となる。また、リクエスト側TIDデコーダー54にOEN信号が入力されるから、リクエスト側TIDデコーダー54からライト用カウント部56またはリード用カウント部57のうち解析した種別(R/W)およびTIDに対応するカウント部に信号が出力される。そして、この信号を受けたカウント部により、カウント値が値1だけカウントアップされると共にアドレスデコーダー51からのポートNoがポートNoレジスターに設定されることになる。
一方、ステップS100でempty信号が入力されていないと判定した場合には、full信号が入力されているか否かを判定する(ステップS110)。full信号が入力されていないと判定した場合には、アドレスデコーダー51からのポートNo(portN信号)が選択出力部61からのポートNoレジスター(portN#reg信号)と一致するか否かを判定する(ステップS120)。この処理は、今回のインオーダーリクエストの分岐先とレスポンス待ちの転送済みリクエストの分岐先とが一致するか否かを判定する処理となる。ステップS120でポートNoとポートNoレジスターとが一致すると判定した場合には、ステップS130でOEN信号を出力して本ルーチンを終了する。これにより、REQ制御部64からのリクエストの転送が可能となる。また、リクエスト側TIDデコーダー54にOEN信号が入力されるから、ライト用カウント部56またはリード用カウント部57のうち対応するカウント部によりカウント値が値1だけカウントアップされることになる。
一方、レスポンス待ちの転送済みリクエストの分岐先と今回のインオーダーリクエストの分岐先とが一致しないと判定した場合には、今回のインオーダーリクエストを転送すると、分岐先の通信経路の状態や転送先のスレーブデバイス80の処理能力,処理状態などによってはレスポンスの順序が入れ替わるおそれがある。このため、ステップS120でポートNoとポートNoレジスターとが一致しないと判定した場合には、OEN信号の出力を停止して(ステップS140)、本ルーチンを終了する。これにより、REQ制御部64にOEN信号が入力されないから、リクエストは転送されずに転送待ちとされる。なお、この場合、リクエスト側TIDデコーダー54にもOEN信号は入力されないから、ライト用カウント部56またはリード用カウント部57においてカウントアップされることはない。
また、ステップS110でfull信号が入力されていると判定した場合には、インオーダーリクエストを転送してもレスポンス待ちの転送済みリクエストのカウントを正常に行なうことができないため、ステップS140でOEN信号の出力を停止して、本ルーチンを終了する。このような処理がクロスバースイッチ40のT−B1のバスコントロール回路50やバスブリッジ群70のT−B3のバスコントロール回路50においてそれぞれ実行されることになる。なお、転送待ちリクエストがある場合には、バスコントロール回路50は、レスポンスが返ってくる度に出力許否判定処理ルーチンを行なうものとする。レスポンスが返ってくると、レスポンス側TIDデコーダー55からの信号によりカウント値がカウントダウンされるから、ステップS100またはステップS120で肯定的な判定がされたときに、転送待ちリクエストの転送が許可されることになる。ここで、ステップS120において転送済みリクエストの分岐先と今回のインオーダーリクエストの分岐先とが一致すると判定した場合にステップS130でOEN信号を出力する理由について説明する。まず、クロスバースイッチ40のT−B1のバスコントロール回路50において判定処理が行なわれる場合を考えると、分岐先はI−B0、I−B1のいずれかに一致していることになる。分岐先がI−B0で一致しているときには、転送先のスレーブデバイス80はSlave0の1つだけであるため、転送を許可してもレスポンスの順序が入れ替わるおそれはない。一方、分岐先がI−B1で一致しているときには、転送先のスレーブデバイス80としてはSlave1,2の2つあり、異なるSlaveに転送されるとレスポンスの順序が入れ替わるおそれがある。しかし、分岐先のI−B1の先にあるT−B3のバスコントロール回路50においても同様な判定処理が行なわれており、転送先が異なる場合には、T−B3において分岐先が一致しないと判定されてリクエストが停止されて転送待ちになる。このため、レスポンスの順序が入れ替わることはない。そして、よりスレーブデバイス80に近い下位側のT−B3で転送待ちとなるため、転送が可能となったときには、より速やかにスレーブデバイス80に到着させることができる。この結果、インオーダーリクエストを効率よく中継することができ、インオーダーリクエストのスループットを向上させることができるのである。転送済みリクエストの分岐先とインオーダーリクエストの分岐先とが一致する場合にOEN信号を出力するのは、こうした理由による。
上述した出力許否判定処理ルーチンが行なわれる場合のリクエスト処理におけるタイミングチャートの一例を図7に示す。図7では、バスクロック(Clock)に同期したリクエスト制御信号(Request valid/Request header/Request ready)やリクエストデータ(Request bus),OEN信号,カウントアップおよびレジスターのロード(UP/LD),カウントダウン(DW),カウント値(COUNT),empty信号,full信号,ポートNoレジスター(portN#reg),レスポンス制御信号(Response valid/Response ready),レスポンスデータ(Response bus)を図示している。なお、Request bus中の数字はポートNo(一例として、ポートNo4とポートNo7)を示し、カウント値のmaxは値3とする。また、図示の便宜上、カウント値は1種類とした。図示するように、時刻T1でOEN信号とRequest ready信号とが出力されると、カウント値が初期値0から値1に更新されポートNoレジスターにはポートNo4が設定される。同様に、時刻T4,T9でカウント値が値1ずつ増加している。一方、時刻T12でポートNo4のリクエストが入力されるが、カウンタ値が値3とfull信号が出力される状態にあるためOEN信号は出力されない。そして、時刻T14でレスポンスが入力されてカウント値が値1減少し値2になった時刻T15でOEN信号が出力される。これにより、カウント値が値1増加して値3になるが、時刻T16でレスポンスが入力されるため、カウント値は再び値1減少して時刻T17で値2になる。そして、時刻T19でポートNo7のリクエストが入力されているが、カウント値が値2でempty信号が出力されておらず、また、ポートNo7はポートNoレジスター(No4)と一致しないため、このリクエストは転送待ちとなる。そして、時刻T22,T24でレスポンスが入力されてカウント値が減少して値0になると、時刻T25で転送待ちリクエストが転送されて、ポートNoレジスターがポートNo7に設定されると共にカウント値が値1になる。そして、入力されるリクエストがポートNo7であれば(時刻T28)、OEN信号が出力されてリクエストが転送されてカウント値が値1ずつ増加する。
ここで、本実施形態のようにバスコントロール回路50を備えるT−Bが配置された場合と、比較例としてバスコントロール回路50を備えるT−Bが配置されない場合とにおけるインオーダーリクエストの処理時間の相違について説明する。図8は、本実施形態のインオーダーリクエストの処理時間を示す説明図であり、図9は、比較例のインオーダーリクエストの処理時間を示す説明図である。なお、図8,9では、図1におけるMaster1(M1)からSlave1,2(S1,2)までの通信経路の一部を簡略化して図示するものとし、インオーダーリクエスト1〜3のうちリクエスト1,2がS1へのリクエスト、リクエスト3がS2へのリクエストとする。また、図中数字を四角で囲んだものがリクエストを示し、数字を丸で囲んだものがレスポンスを示す。ここで、比較例においては、後のリクエストは先のリクエストに対するレスポンスが返ってくるまでプロトコルブリッジPBm1で待機するものとする。図8,図9共に時刻T1で発生したリクエスト1は、PBm1,TB1,IB1,TB3,TB5,PBs1を順に転送されて、時刻T8にS1に到着し、S1の処理で発生したレスポンス1は、PBs1,TB5,TB3,IB1,TB1,PBm1を順に転送されて時刻T16にM1に到着する。また、リクエスト2は、比較例ではレスポンス1がPBm1を通過する時刻T15までPBm1で待機し、時刻T21にS1に到着し、レスポンス2が時刻T29にM1に到着する。一方、本実施形態では、リクエスト2は、TB1およびTB3でリクエスト1と分岐先が同一と判定されるために下位側に転送される。このため、リクエスト1がS1に到着して処理された直後の時刻T9にS1に到着し、レスポンス2が時刻T17にM1に到着する。次に、リクエスト3は、比較例ではレスポンス2がPBm1を通過する時刻T28までPBm1で待機し、時刻T32にS2に到着し、レスポンス3が時刻T40にM1に到着する。一方、本実施形態では、リクエスト3は、TB1でリクエスト1,2と分岐先が同一と判定されて下位側に転送され、TB3でリクエスト1,2と分岐先が異なると判定されてレスポンス2がTB3を通過する時刻T13まで転送待ちとなる。そして、時刻T16にS2に到着し、レスポンス3が時刻T24にM1に到着する。このように、本実施形態においては、インオーダーリクエストの処理時間を大幅に短縮することができ、スループットを向上させることができる。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のマスターデバイス30(Master0,1,2)が本発明の「マスターデバイス」に相当し、スレーブデバイス80(Slave0,1,2)が「スレーブデバイス」に相当し、クロスバースイッチ40のTブリッジ42のT−B1とブリッジ群70のT−B3とが「中継器」に相当する。また、ライト用カウント部56とリード用カウント部57とが「カウンター」に相当する。
以上詳述した本実施形態のマルチプロセッサーシステム20によれば、マスターデバイス30とスレーブデバイス80とをツリー型に接続し、通信経路の分岐点に配置されるT−Bのバスコントロール回路50がインオーダーリクエストが入力される際には入力されるリクエストと転送済みリクエストとの分岐先が同じ場合にリクエストを転送し、分岐先が異なる場合にリクエストを待機させて転送済みリクエストに対するレスポンスが返ってきてから待機させたリクエストを転送するから、インオーダーリクエストを転送済みリクエストと分岐先が異なるT−Bまで転送して待機させることができ、速やかに転送先のスレーブデバイス80に到着させることができる。この結果、インオーダーリクエストを効率よく中継することができる。また、バスコントロール回路50は、カウンターの値によりレスポンス待ちの転送済みリクエストの有無を判断してインオーダーリクエストの転送許否を判定するから、カウンターを用いた簡易な構成でリクエストを効率よく中継することができる。さらに、バスコントロール回路50は、対応するMaster毎に回路を複数有し、各回路にはTID毎およびリードまたはライトの種別(R/W)により異なるカウンタ部を複数備えるから、複数のマスターデバイスが共通のTIDを用いる場合やリードリクエストとライトリクエストとにおいて共通のTIDを用いる場合にも対応することができる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
上述した実施形態では、マスターデバイス30として3つのMaster0,1,2を備えるものとしたが、これに限られるものではなく、1つのMasterを備えるものとしてもよいし4以上の複数のMasterを備えるものとしてもよい。同様に、スレーブデバイス80として3つのSlave0,1,2を備えるものとしたが2以上の複数であればいくつのSlaveを備えるものとしてもよい。
上述した実施形態では、バスコントロール回路50が対応するマスターデバイス30の数に応じた数の回路(回路50a,50bなど)を備えるものとしたが、これに限られず、1つの回路としてもよい。この場合、マスターデバイス30(Master0,1,2)毎にTIDを重複しないよう定めておくものなどとすればよい。
上述した実施形態では、バスコントロール回路50がリードまたはライトの種別(R/W)に対応するカウント部(ライト用カウント部56,リード用カウント部57)を備えるものとしたが、これに限られず、1つのカウント部としてもよい。この場合、種別(R/W)が異なる場合にはTIDを重複しないよう定めておくものなどとすればよい。
上述した実施形態では、バスコントロール回路50を有するT−B1とT−B3との2つのT−Bが直列的に配置されるプロセッサーシステム20を例として説明したが、これに限られず、3つ以上のT−Bが直列的に配置されるものとしてもよいし、あるいは、複数のT−Bが直列的に配置されておらず各T−Bが並列的にのみ配置されるものとしてもよい。
20 マルチプロセッサーシステム、30 マスターデバイス(Master0,1,2)、35 プロトコルブリッジ(P−Bm0,1,2)、40 クロスバースイッチ、42 ターゲットブリッジ(Tブリッジ,T−B0,1,2)、42a 第1入力ポート、42b 第1出力ポート、42c 第2入力ポート、42d 第2出力ポート、42e FIFO、44 イニシエーターブリッジ(Iブリッジ,I−B0,1)、44a 第1入力ポート、44b 第1出力ポート、44c 第2入力ポート、44d 第2出力ポート、44e FIFO、50 バスコントロール回路、50a,50b 回路、51 アドレスデコーダー、52 リクエスト側コンパレーター、53 レスポンス側コンパレーター、54 リクエスト側TIDデコーダー、55 レスポンス側TIDデコーダー、56(56(1),(2)) ライト用カウント部、56a カウンター、56b レジスター、57(57(1),(2)) リード用カウント部、58,59,61,63 選択出力部、62 出力判定部、64 リクエスト(REQ)制御部、70 バスブリッジ群(T−B3,4,5,6)、75 プロトコルブリッジ(P−Bs0,1,2)、80 スレーブデバイス(Slave0,1,2)。
Claims (7)
- 上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続されてなるプロセッサーシステムの通信経路の分岐点に配置され、上位側から入力されるリクエストの分岐先を選択して下位側に転送すると共に下位側から入力されるレスポンスを上位側に転送する中継器を複数備える中継装置であって、
前記中継器は、入力されるリクエストがレスポンス待ちの転送済みリクエストに対して処理の順序が定められたものである際には、前記入力されるリクエストと前記転送済みリクエストとの分岐先が同じ場合に前記入力されるリクエストを転送し、前記分岐先が異なる場合に前記入力されるリクエストを待機させて前記転送済みリクエストに対するレスポンスが返ってきてから該待機させたリクエストを転送する
ことを特徴とする中継装置。 - 前記中継器は、リクエストを転送したときにカウントアップし該転送したリクエストに対するレスポンスが返ってきたときにカウントダウンするカウンターを有し、該カウンターが初期値の際には、前記入力されるリクエストを転送し、前記カウンターが初期値とは異なる値の際には、前記分岐先が同じ場合に前記入力されるリクエストを転送し前記分岐先が異なる場合に前記カウンターが初期値となるまで前記入力されるリクエストを待機させて初期値となってから該待機させたリクエストを転送する請求項1記載の中継装置。
- 前記中継器は、前記マスターデバイスと前記スレーブデバイスとを繋ぐ経路のうち少なくとも一部の経路に直列的に2つ以上配置されてなる請求項1または2記載の中継装置。
- 前記中継器は、前記入力されたリクエストと前記転送済みリクエストとのトランザクションの識別情報が同一の場合に前記処理の順序が定められたものとする請求項1ないし3いずれか1項に記載の中継装置。
- 複数のマスターデバイスを備えるプロセッサーシステムに組み込まれる請求項4記載の中継装置であって、
前記中継器は、前記入力されたリクエストと前記転送済みリクエストとのリクエスト元のマスターデバイスが同一の場合に前記処理の順序が定められたものとする中継装置。 - 前記スレーブデバイスとしてメモリーに対するデータのリードまたはライトを行なうメモリーコントローラーを含むプロセッサーシステムに組み込まれる請求項4または5記載の中継装置であって、
前記中継器は、前記入力されたリクエストと前記転送済みリクエストとが共にリードリクエストの場合または共にライトリクエストの場合に前記処理の順序が定められたものとする中継装置。 - 上位層のマスターデバイスと下位層のスレーブデバイスとがツリー型に接続され、請求項1ないし6いずれか1項に記載の中継装置が組み込まれてなるプロセッサーシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010120213A JP2011248564A (ja) | 2010-05-26 | 2010-05-26 | 中継装置およびプロセッサーシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010120213A JP2011248564A (ja) | 2010-05-26 | 2010-05-26 | 中継装置およびプロセッサーシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011248564A true JP2011248564A (ja) | 2011-12-08 |
Family
ID=45413753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010120213A Withdrawn JP2011248564A (ja) | 2010-05-26 | 2010-05-26 | 中継装置およびプロセッサーシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011248564A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430577A (zh) * | 2015-03-24 | 2017-12-01 | 高通股份有限公司 | 利用笛卡尔寻址的低功率和低等待时间设备枚举 |
-
2010
- 2010-05-26 JP JP2010120213A patent/JP2011248564A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107430577A (zh) * | 2015-03-24 | 2017-12-01 | 高通股份有限公司 | 利用笛卡尔寻址的低功率和低等待时间设备枚举 |
CN107430577B (zh) * | 2015-03-24 | 2020-04-24 | 高通股份有限公司 | 利用笛卡尔寻址的低功率和低等待时间设备枚举 |
US10924541B2 (en) | 2015-03-24 | 2021-02-16 | Qualcomm Incorporated | Low-power and low-latency device enumeration with cartesian addressing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220231962A1 (en) | System and method for facilitating data request management in a network interface controller (nic) | |
US7684431B1 (en) | System and method for arbitration in a packet switch | |
KR960015862B1 (ko) | 데이타 송신방법 및 장치 | |
JP5895202B2 (ja) | 中継器、中継器の制御方法、およびコンピュータプログラム | |
US7787479B2 (en) | Gateway apparatus and routing method | |
US9703732B2 (en) | Interface apparatus and memory bus system | |
EP1442376B1 (en) | Tagging and arbitration mechanism in an input/output node of a computer system | |
US8116311B1 (en) | Method and system for tag arbitration in switches | |
US9665514B2 (en) | Integrated circuit having a bus network, and method for the integrated circuit | |
US6681274B2 (en) | Virtual channel buffer bypass for an I/O node of a computer system | |
US20140304450A1 (en) | Switching device, packet control method, and data communication system | |
US6807599B2 (en) | Computer system I/O node for connection serially in a chain to a host | |
JP2011248564A (ja) | 中継装置およびプロセッサーシステム | |
US6839784B1 (en) | Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel | |
US6820151B2 (en) | Starvation avoidance mechanism for an I/O node of a computer system | |
US7782780B1 (en) | System and method for arbitration of multicast data packets using holds | |
JP5239769B2 (ja) | リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム | |
CN111026699A (zh) | 基于环形总线的多核网络通信方法、装置及系统 | |
US8289989B1 (en) | System and method for arbitration using availability signals | |
JP2008108126A (ja) | データ転送制御装置及びそのバスアクセス調停方法 | |
JP3747020B2 (ja) | クロスバー調停システム | |
US9703730B2 (en) | Arbitration circuit and processing method of arbitration circuit | |
JPH04256246A (ja) | バス優先占有方式およびその方式を使用した通信ネットワーク接続装置 | |
JP2013191067A (ja) | バス回路 | |
KR20180117153A (ko) | 메인 메모리를 구비한 컴퓨팅 유닛용 직접 메모리 액세스 제어 장치 |
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: 20130806 |