(57)【特許請求の範囲】
【請求項１】
第１のバスおよび１回のバストランザクションでバースト転送できるデータのサイズが前記第１のバスの倍以上である第２のバスに接続したデータ処理装置であって、
前記第１のバスから結合可能信号を受信する制御部と、
前記制御部が有効な前記結合可能信号を受信している場合に前記第１のバスからのバーストデータを受信する結合可能データ格納バッファと、
前記結合可能データ格納バッファが受信した複数の前記バーストデータを結合して結合バーストデータとして保持する結合データ送信バッファと、
前記制御部が無効な前記結合可能信号を受信している場合に前記第１のバスからの通常バーストデータを受信する通常データ受信バッファと、
前記通常データ受信バッファが受信した前記通常バーストデータを前記第２のバスへの送信のために保持する通常データ送信バッファと、
を備え、
前記制御部は前記結合バーストデータを前記結合データ送信バッファから前記第２のバスへ送信し、前記結合データ送信バッファにおいて前記結合バーストデータとして結合される複数の前記バーストデータを前記結合可能データ格納バッファが全て受信完了する前に前記通常データ受信バッファが前記通常バーストデータを受信した場合には、前記通常バーストデータを前記通常データ送信バッファから前記結合バーストデータより先に前記第２のバスへ送信する
ことを特徴とするデータ処理装置。
【請求項２】
前記制御部に接続され前記結合可能信号が無効となった時点から計時するタイマー
をさらに備え、
前記制御部は、前記結合データ送信バッファにおいて前記結合バーストデータとして結合される複数の前記バーストデータを前記結合可能データ格納バッファが全て受信完了する前に、前記タイマーが計時した時間が所定時間を越えた場合に、前記結合可能データ格納バッファが既に受信した前記バーストデータを結合して前記結合データ送信バッファを介して前記第２のバスへ送信する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記制御部は、前記結合データ送信バッファにおいて前記結合バーストデータとして結合される複数の前記バーストデータを前記結合可能データ格納バッファが全て受信完了する前に、別の結合バーストデータとして結合されるべき別のバーストデータを受信した場合に、前記通常データ受信バッファを介して結合させずに通常データ送信バッファから前記第２のバスへ送信する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記制御部が有効な前記結合可能信号を受信している場合に前記第１のバスからのバーストデータを受信する第２の結合可能データ格納バッファを
さらに備え、
前記結合データ送信バッファは前記第２の結合可能データ格納バッファが受信した複数のバーストデータを結合して第２結合バーストデータとして保持し、
前記制御部は前記第２結合バーストデータを前記結合データ送信バッファから前記第２のバスへ送信する
ことを特徴とする請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用のデータ処理装置に関する。
【背景技術】
【０００２】
従来、バスのビット幅が異なる複数のバス間を接続するバスブリッジにおいて、ビット幅が小さいバスＣからビット幅が大きいバスＤへのデータ転送時に、連続アドレスへデータ転送する場合は、バスＣからの複数のデータをバスブリッジで結合してバスＤのビット幅に合わせる技術が用いられていた（特許文献１参照）。
【０００３】
例えば、バスＣのビット幅を１６ビット、バスＤのビット幅を３２ビットとする。バスＣからバスＤへの連続アドレスへ３２ビット（４バイト）のデータを転送する場合、バスＣから１６ビットのデータ転送コマンドが２回発行される。バスブリッジでは、アクセス先のアドレスが連続している場合、１６ビットのデータを３２ビットに結合して、バスＤへのデータ転送コマンドを１回に結合する。例えば、バスＣの４回のデータ転送に対しては、バスＤへ２回のデータ転送を行うことになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−２５０３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した技術は、異なるビット幅のバス間のデータ転送を効率化するための技術である。１回のバストランザクションでバースト転送できるデータのサイズが異なるバス間でバースト転送する場合には以下のような問題がある。ここでバストランザクションとは、バス上のデータ転送の処理単位であって、コマンド発行からデータ送信までの一連の処理を表す。コマンドには、バスアクセスの属性（リード／ライト、サイズ）とアドレス情報を含む。
【０００６】
例えば、１回のバストランザクションでバースト転送できるデータのサイズが、例えば３２バイトのバスをバスＡ、例えば１２８バイトのバスをバスＢとする。バスＡからバスＢへ１２８バイトのデータをバースト転送する場合、バスＡのアクセス元は、３２バイトのバースト転送トランザクションを４回発行する。
【０００７】
即ち、従来のバスブリッジでは、バスＡからの３２バイトのバースト転送トランザクションをバスＢへそのまま発行するため、バスＢにおいても４回のバストランザクションを発行していた。バスＢでは、１２８バイトのバースト転送トランザクションが実行可能であるにもかかわらず、この場合３２バイトのバストランザクションを４回も発行するため、バスＢのトランザクションのオーバーヘッドが大きくなってしまうという問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、１回のバストランザクションで転送できるバースト転送サイズが異なるバス間での転送を効率化するデータ処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、第１のバスおよび１回のバストランザクションでバースト転送できるデータのサイズが前記第１のバスの倍以上である第２のバスに接続したデータ処理装置であって、前記第１のバスから結合可能信号を受信する制御部と、前記制御部が有効な前記結合可能信号を受信している場合に前記第１のバスからのバーストデータを受信する結合可能データ格納バッファと、前記結合可能データ格納バッファが受信した複数の前記バーストデータを結合して結合バーストデータとして保持する結合データ送信バッファとを備え、前記制御部は前記結合バーストデータを前記結合データ送信バッファから前記第２のバスへ送信することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、１回のバストランザクションでバースト転送できるデータのサイズが送信側のバスよりも倍以上になる受信側のバスにおけるトランザクションのオーバーヘッドを削減するという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１にかかるデータ処理装置であるバスブリッジを含んだデータ転送システムの構成を示す図である。
【図２】図２は、実施の形態１にかかるバスブリッジの内部の構成を示すブロック図である。
【図３】図３は、実施の形態１において結合可能コマンド・データ格納バッファがフルとなったときのデータの様子を示す図である。
【図４】図４は、３２バイトアクセスのコマンドとデータからなるトランザクションが通常コマンド・データ受信バッファおよび通常コマンド・データ送信バッファに格納されている様子を示す図である。
【図５】図５は、実施の形態１において結合コマンド・データ送信バッファのデータの様子を示す図である。
【図６】図６は、トランザクションを構成するコマンドおよびデータの様子を示す図である。
【図７】図７は、実施の形態１にかかるデータ転送システムの動作を説明するタイミングチャートである。
【図８】図８は、実施の形態２にかかるデータ転送システムの動作を説明するタイミングチャートである。
【図９】図９は、実施の形態３にかかるバスブリッジの内部の構成を示すブロック図である。
【図１０】図１０は、実施の形態３にかかるデータ転送システムの動作を説明するタイミングチャートである。
【図１１】図１１は、実施の形態４にかかるデータ転送システムの動作を説明するタイミングチャートである。
【図１２】図１２は、実施の形態５にかかるバスブリッジの内部の構成を示すブロック図である。
【図１３】図１３は、実施の形態５にかかるデータ転送システムの動作を説明するタイミングチャートである。
【図１４】図１４は、従来のバス転送トランザクションを行う場合のタイミングチャートを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかるデータ処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１にかかるデータ処理装置であるバスブリッジ１０を含んだデータ転送システムの構成を示す図である。図１に示すように、１回のバストランザクションでバースト転送できるデータのサイズが、例えば３２バイトのバスをバスＡ、例えば１２８バイトのバスをバスＢとする。なお、バスＡが３２バイトでバスＢが１２８バイトとしたのは一例であり、バスＢ（第２のバス）の１回のバストランザクションでバースト転送できるデータのサイズがバスＡ（第１のバス）の倍以上であればこの例に限定されない。
【００１４】
１回のバストランザクションでバースト転送できるデータのサイズはバスの仕様で規定されており、バスＡおよびバスＢの物理的な構成に依存したビット幅、即ちバス幅はこれとは無関係である。アクセス元１およびアクセス元２がバスＡを介してバスブリッジ１０に接続されており、アクセス先３およびアクセス先４がバスＢを介してバスブリッジ１０に接続されている。
【００１５】
図２は、実施の形態１にかかるバスブリッジ１０の内部の構成を示すブロック図である。バスブリッジ１０は、図２に示すように結合制御部１１、結合可能コマンド・データ格納バッファ１２、通常コマンド・データ受信バッファ１３、結合コマンド・データ送信バッファ１４、通常コマンド・データ送信バッファ１５、送信制御部１６、およびセレクタ１７を備える。
【００１６】
結合制御部１１はバスＡに接続しバスＡからのデータを受け取り、受け取ったデータを結合可能コマンド・データ格納バッファ１２あるいは通常コマンド・データ受信バッファ１３へと振り分ける。結合制御部１１はバスＡから結合可能信号を受け取りこの信号が有効である期間にバスＡから受け取ったデータを結合可能コマンド・データ格納バッファ１２へと振り分ける。結合可能信号が無効である場合は通常コマンド・データ受信バッファ１３へと振り分ける。
【００１７】
結合可能コマンド・データ格納バッファ１２が受信したデータのなかで結合可能信号が有効である間に受信したデータは結合制御部１１の指示に従い結合されて結合コマンド・データ送信バッファ１４へと送られる。通常コマンド・データ受信バッファ１３が受信したデータは通常コマンド・データ送信バッファ１５へ送られる。結合コマンド・データ送信バッファ１４および通常コマンド・データ送信バッファ１５のデータは送信制御部１６によって制御されたセレクタ１７によってバスＢへと転送される。また、結合制御部１１からの指示により送信制御部１６がセレクタ１７を制御することが可能である。
【００１８】
以下、バスＡに接続されたアクセス元１からバスＢに接続されたアクセス先３へ１２８バイトのバースト転送を行う場合について図７のタイミングチャートを用いて説明する。アクセス元１は、バスＡへのバースト転送開始時、即ち図７のトランザクション（ＴＡ１−１）の開始時に、結合可能信号を有効にする。一般に１つのトランザクションは、図６に示すようにコマンドとそれに後続するデータ列から構成される。
【００１９】
結合可能信号は連続するアドレスに同じ属性（リード／ライト、サイズ）のコマンドを発行することを予告するものであり、バスブリッジ１０の結合制御部１１は、この信号により、結合候補として結合可能コマンド・データ格納バッファ１２に、この３２バイトアクセスのコマンドとデータを格納する。同様に後続のコマンド３つを結合可能コマンド・データ格納バッファ１２に格納すると、バッファはフルとなる。このときの、結合可能コマンド・データ格納バッファ１２のデータの様子を図３に示す。
【００２０】
結合可能コマンド・データ格納バッファ１２に格納されたコマンド及びデータは、バスＢに転送可能な１２８バイトのバースト転送のコマンドとデータとして結合されて結合コマンド・データ送信バッファ１４上に格納される。このときの、結合コマンド・データ送信バッファ１４のデータの様子を図５に示す。結合されたコマンドとデータは、１回の１２８バイトのバースト転送トランザクション(ＴＢ１)としてバスＢに発行される。なお、結合可能信号が有効でないときにバスブリッジ１０が受信した３２バイトアクセスのコマンドとデータからなるトランザクション（ＴＡ２−１）が通常コマンド・データ受信バッファ１３および通常コマンド・データ送信バッファ１５に格納されている様子は図４に示す。このデータはトランザクション(ＴＢ２)としてバスＢに発行される。
【００２１】
従来、バスＡからバスＢへ合計１２８バイトのバス転送トランザクションを行う場合は、図１４のタイミングチャートに示したように３２バイトのバースト転送トランザクションをバスＢに４回発行する必要があった。しかし、本実施の形態においては、バスＡのアクセス元１は、結合可能信号を有効にするとともに、３２バイトのバースト転送トランザクションを４回発行する。
【００２２】
バスブリッジ１０では、バスＡから有効な結合可能信号を検出すると、この４回のバストランザクションを保持し、バスＢのアクセス先３に対する１２８バイトのバースト転送トランザクション１回に変換する。これにより、トランザクションの発行を１回に削減することができ、バスＢのトランザクションのオーバーヘッドを削減することができる。
【００２３】
実施の形態２．
本発明の実施の形態２にかかるデータ処理装置であるバスブリッジ１０を含んだデータ転送システムの構成を示す図も図１と同様である。本実施の形態においても、バスブリッジ１０の内部の構成は図２に示すように、結合可能コマンド・データ格納バッファ１２の他に通常の３２バイトバースト転送のコマンドとデータを格納する通常コマンド・データ受信バッファ１３を備える。本実施の形態において、通常コマンド・データ受信バッファ１３は複数の通常コマンド・データを格納できるようになっている。
【００２４】
本実施の形態においては、図８のタイミングチャートに示すように、バスブリッジ１０において、バスＡのアクセス元１から後続のバースト転送トランザクションを待っている時に、バスＡの別のアクセス元２から結合不要のバースト転送トランザクション（ＴＡ２−１）を受けた場合を考える。
【００２５】
このとき結合制御部１１が受信する結合可能信号は図８に示すように一旦無効になっている。ここで結合制御部１１からの指示により送信制御部１６がセレクタ１７を制御し、アクセス元１からのバースト転送トランザクションの結合コマンド・データ送信バッファ１４における結合を待たずにアクセス元２からのバースト転送トランザクション（ＴＢ２）を実行する。これにより、バスＢの使用効率を上げることができる。
【００２６】
ただし、例えば、アクセス元１とアクセス元２からのアクセス先がバスＢ上の同一アドレスの場合など、先行するアクセス元１からのコマンドとアクセス元２からのコマンドとの順序を保証する必要がある場合には、結合制御部１１からの指示により送信制御部１６がセレクタ１７を制御することでアクセス元２からのコマンドを待たせるようにしてもよい。
【００２７】
以上説明したように、図２のバスブリッジ１０において、バスＡのアクセス元１から後続のバースト転送トランザクションを待っている時に、バスＡの別のアクセス元２から結合不要のバースト転送トランザクションを受けた場合、アクセス元１からのバースト転送トランザクションより先に、アクセス元２からのバースト転送トランザクションを実行する。これにより、バスＢの使用効率を上げることができる。
【００２８】
実施の形態３．
本発明の実施の形態３にかかるデータ処理装置であるバスブリッジ１０を含んだデータ転送システムの構成を示す図も図１と同様である。本実施の形態においては、バスブリッジ１０の内部の構成は結合制御部１１にタイマー１８が接続された図９に示した構成でありタイマー１８以外は図２と同様である。
【００２９】
本実施の形態においては、図１０のタイミングチャートに示すように、バスＡからの結合可能なトランザクションを結合可能コマンド・データ格納バッファ１２に格納中に、結合制御部１１は、後続のバースト転送トランザクションの受信を待つタイマー１８を起動する。具体的には、バースト転送トランザクション（ＴＡ１−３）を結合可能コマンド・データ格納バッファ１２が受信し終えたときに結合可能信号が無効となり、その時点からタイマー１８がカウントを始める。
【００３０】
さらに詳細に説明すると、バースト転送トランザクション（ＴＡ１−１）および（ＴＡ１−２）の受信が完了した時点でも一旦結合可能信号が無効となり、タイマー１８はカウントを開始する。しかし直ちに後続のバースト転送トランザクション（ＴＡ１−２）および（ＴＡ１−３）が到着して結合可能信号が有効となるのでタイマー１８はその都度リセットされている。
【００３１】
本実施の形態の場合、バースト転送トランザクション（ＴＡ１−３）の受信後、後続のバースト転送トランザクションが直ちに来ないためタイマー１８はリセットされずカウントを継続する。そして、図１０に示すように、タイマー１８のカウントが所定の時間を越えてタイムアウトした場合、結合制御部１１は後続のバースト転送トランザクションを待たずに、受信済みのバースト転送トランザクションの合計サイズ（例えば３２バイト、６４バイト、９６バイト）のバースト転送トランザクションとして、結合コマンド・データ送信バッファ１４上に格納する。その後、送信制御部１６がセレクタ１７を制御し、バスＢへのバースト転送トランザクション(ＴＢ１)として発行する。
【００３２】
即ち、バスＡのアクセス元１からの後続のバースト転送トランザクションが遅れた場合、システムで規定したある一定時間を経過したら後続のバースト転送トランザクションを待たずに、受信済みのバースト転送トランザクションの合計サイズのバースト転送トランザクションとしてバスＢに発行する。これにより、タイムアウト、デッドロック等の課題を解決することができる。
【００３３】
実施の形態４．
本発明の実施の形態４にかかるデータ処理装置であるバスブリッジ１０を含んだデータ転送システムの構成を示す図も図１と同様である。本実施の形態においても、バスブリッジ１０の内部の構成は図２に示すように、結合可能コマンド・データ格納バッファ１２の他に通常の３２バイトバースト転送のコマンドとデータを格納する通常コマンド・データ受信バッファ１３を備える。本実施の形態においても、通常コマンド・データ受信バッファ１３は複数の通常コマンド・データを格納できるようになっている。
【００３４】
本実施の形態においては、図１１のタイミングチャートに示すように、バスＡに接続されたアクセス元１からの後続のバースト転送トランザクション（ＴＡ１−３）、（ＴＡ１−４）の受信を待っている最中に、バスＡに接続された別のアクセス元２から結合が必要なバースト転送トランザクションを受けた場合を考える。例えば図１１の場合、バースト転送トランザクション（ＴＡ２−１）、（ＴＡ２−２）、（ＴＡ２−３）および（ＴＡ２−４）をバスブリッジ１０が受信した場合である。
【００３５】
この場合、アクセス元２からのバースト転送トランザクション（ＴＡ２−１）、（ＴＡ２−２）、（ＴＡ２−３）および（ＴＡ２−４）は結合対象とせず、実施の形態２と同様に通常のバースト転送トランザクション（ＴＢ２−１）、（ＴＢ２−２）、（ＴＢ２−３）および（ＴＢ２−４）として処理する。すなわち、通常コマンド・データ受信バッファ１３が受信して、通常コマンド・データ送信バッファ１５を介してバスＢへと送られる。これにより、複数のアクセス元からのバースト転送トランザクションなどの複数種類の結合可能コマンドを取り扱うことが可能となる。
【００３６】
実施の形態５．
本発明の実施の形態５にかかるデータ処理装置であるバスブリッジ１０を含んだデータ転送システムの構成を示す図も図１と同様である。本実施の形態においては、バスブリッジ１０の内部の構成は図１２に示すように、複数のアクセス元からのバースト転送トランザクションを結合できるように複数の結合可能コマンド・データ格納バッファとして結合可能コマンド・データ格納バッファ１２−１と結合可能コマンド・データ格納バッファ１２−２を設ける。他の構成は図２と同様である。
【００３７】
本実施の形態においては、図１３のタイミングチャートに示すように、バスＡに接続されたアクセス元１から後続のバースト転送トランザクション（ＴＡ１−３）および（ＴＡ１−４）を待っている時に、バスＡに接続された別のアクセス元２から結合が必要なバースト転送トランザクション（ＴＡ２−１）および（ＴＡ２−２）などを受信した場合を想定する。
【００３８】
この場合、本実施の形態においては図１２および１３に示すように、アクセス元１に使用する結合可能コマンド・データ格納バッファ１２−１とは別にアクセス元２に使用する結合可能コマンド・データ格納バッファ１２−２を使用し、それぞれ別々に結合処理を行う。
【００３９】
即ち、バスブリッジに複数のアクセス元からのバースト転送トランザクションを結合できるように複数の結合可能コマンド・データ用受信バッファを設けることにより、バスＡに接続された１つのアクセス元からの後続のバースト転送トランザクションを待っている時に、バスＡに接続された別のアクセス元から結合が必要なバースト転送トランザクションを受けた場合、それぞれ別々に結合処理を行うことが可能となる。
【００４０】
これにより、１回のバストランザクションでバースト転送できるデータのサイズがバスの仕様で定められている同一のバスに接続された１つのアクセス元からのバースト転送トランザクションのみならず、別のアクセス元からのバースト転送トランザクションもそれぞれ別個に結合できる。従って、１回のバストランザクションでバースト転送できるデータのサイズが倍以上のバスＢへそれぞれ１回のバースト転送トランザクションとして発行することが可能となり、バスＢのトランザクションのオーバーヘッドをより削減することができる。
【００４１】
以上説明してきたように、上記実施の形態は１回のバストランザクションでバースト転送できるデータのサイズが異なる複数のバス間でデータ転送を実現するバスブリッジなどのデータ処理装置に関し、一方のバスから連続するアドレスへ「複数回のバースト転送トランザクション」を発行する場合、バスブリッジでこれらのトランザクションを結合し、他方のバスにおいて「１回のバースト転送トランザクション」に変換する。
【００４２】
これにより、従来は１回のバストランザクションでバースト転送できるデータのサイズが送信側のバスよりも倍以上になる受信側のバスにおいても複数回のバースト転送トランザクションを発行する必要があったが、本実施の形態にかかるバスブリッジにおいては、受信側のバスのバースト転送トランザクションを１回にするため、受信側のバスの転送を効率化できる。このことは特に、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によるメモリ間のデータ転送など、大量のデータをバースト転送する場合において効果がある。
【００４３】
更に、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。
【００４４】
例えば、上記実施の形態１乃至５それぞれに示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。更に、上記実施の形態１乃至５にわたる構成要件を適宜組み合わせてもよい。
【産業上の利用可能性】
【００４５】
以上のように、本発明にかかるデータ処理装置は、１回のバストランザクションでバースト転送できるデータのサイズが異なる複数のバス間でデータ転送を実現するバスブリッジなどのデータ処理装置に有用であり、特に、ＤＭＡによるメモリ間のデータ転送など、大量のデータをバースト転送するデータ処理装置に適している。
【符号の説明】
【００４６】
１、２  アクセス元
３、４  アクセス先
１０  バスブリッジ
１１  結合制御部
１２  結合可能コマンド・データ格納バッファ
１２−１  結合可能コマンド・データ格納バッファ１
１２−２  結合可能コマンド・データ格納バッファ２
１３  通常コマンド・データ受信バッファ
１４  結合コマンド・データ送信バッファ
１５  通常コマンド・データ送信バッファ
１６  送信制御部
１７  セレクタ
１８  タイマー
【図１】
0005318080.tif 000002
【図２】
0005318080.tif 000003
【図３】
0005318080.tif 000004
【図４】
0005318080.tif 000005
【図５】
0005318080.tif 000006
【図６】
0005318080.tif 000007
【図７】
0005318080.tif 000008
【図８】
0005318080.tif 000009
【図９】
0005318080.tif 000010
【図１０】
0005318080.tif 000011
【図１１】
0005318080.tif 000012
【図１２】
0005318080.tif 000013
【図１３】
0005318080.tif 000014
【図１４】
0005318080.tif 000015