(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6385761
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】バスブリッジ及びバスブリッジ群
(51)【国際特許分類】
G06F 13/36 20060101AFI20180827BHJP
G06F 13/42 20060101ALI20180827BHJP
【FI】
G06F13/36 320A
G06F13/36 510
G06F13/42 310
【請求項の数】5
【全頁数】12
(21)【出願番号】特願2014-177716(P2014-177716)
(22)【出願日】2014年9月2日
(65)【公開番号】特開2016-51420(P2016-51420A)
(43)【公開日】2016年4月11日
【審査請求日】2017年5月18日
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100088672
【弁理士】
【氏名又は名称】吉竹 英俊
(74)【代理人】
【識別番号】100088845
【弁理士】
【氏名又は名称】有田 貴弘
(72)【発明者】
【氏名】村田 真一
【審査官】
田上 隆一
(56)【参考文献】
【文献】
特開平09−134326(JP,A)
【文献】
特表2003−508850(JP,A)
【文献】
特開2010−134627(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/36
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
第1のバス仕様を採用した第1の読み出し制御信号に基づき、第2のバス仕様を採用した読み出し対象部に対しアンアラインドにデータを読み出すバスブリッジであって、
前記第1の読み出し制御信号に基づき、前記第1及び第2のバス仕様間におけるデータ対応表あるいはデータ変換式を用いて、読み出し対象部用の第2の読み出し制御信号を生成して前記読み出し対象部に出力することにより、第2のバス仕様の第2の読み出しデータを前記読み出し対象部より出力させるデコーダと、
前記第1及び第2の読み出し制御信号の少なくとも一部をデータ変換情報として保持する変換情報記憶部と、
前記データ変換情報に基づき、前記第2の読み出しデータを前記第1のバス仕様の第1の読み出しデータに変換して出力するデータ変換部とを備え、
前記読み出し対象部はメモリである、
バスブリッジ。
【請求項2】
請求項1記載のバスブリッジであって、
前記第1の読み出しデータは少なくとも1回の第1のデータ転送処理により出力され、前記第1の読み出し制御信号は、前記第1の読み出しデータにおける開始アドレス、前記第1のデータ転送処理時における1回のデータサイズである第1のデータサイズ、及び前記第1のデータ転送処理の実行回数である第1のバースト長を指示する制御情報を含み、
前記第2の読み出しデータは、少なくとも1回の第2のデータ転送処理により出力され、前記第2の読み出し制御信号は前記第2の読み出しデータにおける開始アドレス、前記第2のデータ転送処理時における1回のデータサイズである第2のデータサイズ、及び前記第2のデータ転送処理の実行回数である第2のバースト長を指示する制御情報を含み、
前記第2の読み出し制御信号は、前記少なくとも1回の第2のデータ転送処理における最初のデータ転送処理時における転送データにおける有効部分を指示する第1のイネーブル情報と、前記少なくとも1回の第2のデータ転送処理における最後のデータ転送処理時における転送データにおける有効部分を指示する第2のイネーブル情報をさらに含む、
バスブリッジ。
【請求項3】
マスタ側の第1のバスブリッジと、
スレーブ側の第2のバスブリッジとを備え、
前記第2のバスブリッジは請求項1または請求項2記載のバスブリッジであり、
前記第1のバスブリッジは前記第1の読み出し制御信号を出力し、前記第1の読み出しデータを受ける、
バスブリッジ群。
【請求項4】
請求項3記載のバスブリッジ群であり、
前記第1のバス仕様はAXIバス仕様であり、
前記第2のバス仕様はPCIeバス仕様である、
バスブリッジ群。
【請求項5】
請求項3記載のバスブリッジ群であり、
前記第1のバス仕様はインクリメントバースト処理を行うAHBバス仕様であり、
前記第2のバス仕様はPCIeバス仕様である、
バスブリッジ群。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、異なるバス仕様間のデータを中継するバスブリッジ及び該バスブリッジを含む複数のバスブリッジにより構成されるバスブリッジ群に関する。
【背景技術】
【0002】
図7は従来のバスブリッジ群を備えたコンピュータシステム300の構成を示すブロック図である。同図に示すように、コンピュータシステム300は、プライマリバスとなるAXI(Advanced eXtensible Interface)バス31に接続しているマスタ側のCPU301及び302と、セカンダリバスであるPCIe(PCI(Peripheral Component Interconnect) Express)バス32に接続しているスレーブ側のメモリ401及び402と、AXIバス31及びPCIeバス32に接続されるバスブリッジ群50とから構成される。
【0003】
図8は
図7で示したバスブリッジ群50の内部構成例を示すブロック図である。同図に示すように、バスブリッジ群50はAXI用バスブリッジ51、PCIe用バスブリッジ52及びレジスタブロック53から構成される。
【0004】
同図に示すように、AXI用バスブリッジ51はマスタ側のCPU301等による読み出し処理時において、アドレスAD1、バースト長BL1、及びバーストサイズBS1を制御情報として含む第1の読み出し制御信号をPCIe用バスブリッジ52に出力する。
【0005】
ここで、
図7で示したメモリ401に対する読み出し処理を例に挙げて説明する。この場合、アドレスAD1はメモリ401のアドレス空間における読み出し開始アドレスを指示し、バーストサイズBS1はAXIバス仕様における1回のバースト転送処理時に出力されるバイト数を指示し、バースト長BL1は読み出し処理に実行されるAXIバス仕様におけるバースト転送処理の必要実行回数を指示する。
【0006】
なお、AXIバス仕様のバス幅BW1と、PCIeバス仕様用のバス幅BW2とは共に同一の共通バス幅BWCに設定されている。
【0007】
さらに、AXIバス31側のCPU301やCPU302等が行う前処理として、レジスタブロック53に対し、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を生成してレジスタブロック53に格納している。レジスタブロック53に格納されたファーストバイトイネーブルFB3及びラストバイトイネーブルLB3はPCIe用バスブリッジ52に付与される。
【0008】
ここで、ファーストバイトイネーブルFB3は上記例の場合、メモリ401の読み出し開始アドレスを含む最初のバースト転送時における転送データの有効バイト(有効部分)を指示する情報(最終アドレスからの有効バイト数)であり、ラストバイトイネーブルLB3はメモリ401の読み出し終了アドレスを含む最後のバースト転送時における転送データの有効バイトを指示する情報(先頭アドレスからの有効バイト数)である。
【0009】
PCIe用バスブリッジ52は、アドレスAD1、バースト長BL1、及びバーストサイズBS1に基づき、PCIeバス仕様のメモリ401に対するアドレスAD2、バースト長BL2を導出し、導出した情報と予め認識しているバーストサイズBS2、レジスタブロック53おより得たファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を制御情報として含む第2の読み出し制御信号を生成する。
【0010】
ここで、アドレスAD2はメモリ401に対するバースト転送処理の開始アドレスを指示し、バーストサイズBS2はPCIeバス仕様における1回のバースト処理時に出力されるバイト数を指示し、バースト長BL2は読み出し処理に実行されるPCIeバス仕様におけるバースト転送処理の必要実行回数を指示する。
【0011】
そして、PCIe用バスブリッジ52は上述したアドレスAD2、バーストサイズBS2、バースト長BL2、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を制御情報として含む第2の読み出し制御信号をメモリ401に出力することにより、メモリ401より読み出しデータを取得する。
【0012】
そして、PCIe用バスブリッジ52は取得した読み出しデータをAXIバス仕様の読み出しデータDT1に変換し、この読み出しデータDT1をAXI用バスブリッジ51に出力する。
【0013】
このように、バスブリッジ群50によって、異なるバス仕様であるAXIバス31,PCIeバス32間のデータの中継処理が可能となる。なお、バスブリッジ群50に相当するバスブリッジ技術は例えば特許文献1に開示されている。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2006−79639号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
図9はメモリ401のアドレス空間例を模式的に示す説明図である。ここで、斜線部で示されたアドレス0x1c〜0x53に格納された56バイトの読み出しデータDT2であった場合を考える。この読み出しデータDT2は、読み出し対象となるデータのアラインメント、サイズなどを含む補助情報であるバイトレーン情報TLによって指示される。すなわち、データサイズ及び/またはデータ格納状態が共通バス幅BWCの整数倍に一致しないアンアラインドな読み出しデータDT2を読み出す場合を考える。なお、共通バス幅BWCは16バイトであるとする。
【0016】
この場合、AXI用バスブリッジ51が出力する第1の読み出し制御信号において、アドレスAD1は“0x1c”、バーストサイズBS1が“4”(バイト)、バースト長BL1が“14”(回)を指示し、レジスタブロック53に格納されたファーストバイトイネーブルFB3が“xf000”、ラストバイトイネーブルLB3が“x000f”をそれぞれ指示する。このように、AXIバス仕様では、
図9の読み出しデータDT2を読み出す場合、バーストサイズBS1が4バイトのため、バースト長BL1が14回となる。
【0017】
一方、PCIe用バスブリッジ52が出力する第2の読み出し制御信号において、アドレスAD2が“0x10”、バーストサイズBS2が“16”(バイト)、バースト長BL2が“5”(回)となる。このように、PCIeバス仕様では、バーストサイズBS2が16バイトのため、
図9の読み出しデータDT2を読み出す場合、バースト長BL1が5回となる。
【0018】
すなわち、PCIeバス仕様では、0xi0(i=0,1,2,…)を開始アドレスとして、バーストサイズBS2を16バイトとしたバースト転送処理を5回行う。
図9で示して例では、0x10〜0X50それぞれを先頭アドレスとして、5回のバースト転送処理BT21〜BT25が実行される。この際、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3による指示により、メモリ401から、最初のバースト転送処理BT21における転送データの0x10〜0x1b部分、最後のバースト転送処理BT25における転送データの0x54〜0x5f部分は無効なデータ値として出力される。
【0019】
このように、PCIeバス32と互換性を持たないAXIバス31は、バースト転送処理を用いたメモリ401からの読み出し処理時において、ファーストバイトイネーブルFB3やラストバイトイネーブルLB3に相当する信号をもたないため、CPU301,302等のAXIバス31側により、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を生成する前処理を行う必要があった。さらに、この前処理により生成したファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を、4バイト容量の2つのレジスタを搭載したレジスタブロック53に格納する必要があった。
【0020】
したがって、AXIバス側でファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を生成させる前処理、及びPCIe用バスブリッジ52の前段にレジスタブロック53を設けることが必要となる分、AXIバス側の処理負担の増加及びバスブリッジ群50における装置構成の複雑化が生じてしまうという問題点があった。
【0021】
また、従来のバスブリッジ群50を用いたコンピュータシステム300では、CPU301等のマスタ側から、メモリ401等のスレーブ側に対する読み出し処理中にレジスタブロック53に格納されたファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を変更することができない。
【0022】
したがって、AXIバス31に複数のCPU301,302等が接続されるマルチマスタ環境では、AXIバス31側でOSのスピンロック機構などを使用して、実行中の読み出し処理が完了するまでの間、レジスタブロック53の内容を保護する必要があるため、ソフトウェアレイテンシを増大させ、アクセス性を損なうという問題点もあった。
【0023】
この発明は上記問題点を解決するためになされたもので、異なるバス仕様間のデータ読み出し処理時における処理内容の軽減及び装置構成の簡略化を図ることができるバスブリッジを得ることを目的とする。
【課題を解決するための手段】
【0024】
この発明に係る請求項1記載のバスブリッジは、第1のバス仕様を採用した第1の読み出し制御信号に基づき、第2のバス仕様を採用した読み出し対象部に対しアンアラインドにデータを読み出すバスブリッジであって、前記第1の読み出し制御信号に基づき、前記第1及び第2のバス仕様間におけるデータ対応表あるいはデータ変換式を用いて、読み出し対象部用の第2の読み出し制御信号を生成して前記読み出し対象部に出力することにより、第2のバス仕様の第2の読み出しデータを前記読み出し対象部より出力させるデコーダと、前記第1及び第2の読み出し制御信号の少なくとも一部をデータ変換情報として保持する変換情報記憶部と、前記データ変換情報に基づき、前記第2の読み出しデータを前記第1のバス仕様の第1の読み出しデータに変換して出力するデータ変換部とを備え
、前記読み出し対象部はメモリである。
【発明の効果】
【0025】
この発明におけるバスブリッジのデコーダは、第1の読み出し制御信号に基づき、
メモリである読み出し対象部用の第2の読み出し制御信号を自動的に生成する。このため、第2のバス仕様を考慮した第1のバス仕様側による前処理及び当該前処理の実行に必要となる構成部が不要となる分、第1バス仕様、第2のバス仕様間のデータ読み出し処理時における処理内容の軽減及び装置構成の簡略化を図ることができる。
【図面の簡単な説明】
【0026】
【
図1】この発明の実施の形態であるバスブリッジ群の構成を示すブロック図である。
【
図2】
図1で示したPCIe用バスブリッジの内部構成を示すブロック図である。
【
図3】
図2で示したデコーダがデータ対応表を有する場合の一例を示す表形式の説明図である。
【
図4】
図2で示したメモリのアドレス空間を模式的に示す説明図である。
【
図5】PCIe用バスブリッジ12が出力する読み出しデータの出力内容を模式的に示す説明図である。
【
図6】バーストタイプとバースト長との対応関係を表形式で示す説明図である。
【
図7】従来のバスブリッジ群を備えたコンピュータシステムの構成を示すブロック図である。
【
図8】
図7で示したバスブリッジ群の内部構成例を示すブロック図である。
【
図9】
図7で示したメモリのアドレス空間例を模式的に示す説明図である。
【発明を実施するための形態】
【0027】
<実施の形態>
図1はこの発明の実施の形態であるバスブリッジ群10の構成を示すブロック図である。同図に示すように、バスブリッジ群10はAXI用バスブリッジ11(第1のバスブリッジ)及びPCIe用バスブリッジ12(第2のバスブリッジ)から構成される。
【0028】
AXI用バスブリッジ11は読み出し処理時において、アドレスAD1、バースト長BL1、及びバーストサイズBS1を制御情報として含む第1の読み出し制御信号をPCIe用バスブリッジ12に出力する。なお、各種制御情報(AD1,BL1,BS1)の詳細は前述した通りである。
【0029】
PCIe用バスブリッジ12は、アドレスAD1、バースト長BL1(第1のバースト長)、及びバーストサイズBS1(第1のデータサイズ)に基づき、AXIバス仕様(第1のバス仕様),PCIeバス仕様(第2のバス仕様)間におけるデータ対応表あるいはデータ変換式を用いて、PCIeバス仕様のアドレスAD2、バースト長BL2(第2のバースト長)、ファーストバイトイネーブルFB3(第1のイネーブル情報)及びラストバイトイネーブルLB3(第2のイネーブル情報)を認識する。なお、共通バス幅BWC(=BW1=BW2)及びバーストサイズBS2はPCIe用バスブリッジ12側で予め認識可能な情報である。なお、各種制御情報(AD2,BL2,BS2,FB3,LB3)の詳細は前述した通りである。また、上記データ対応表及びデータ変換式については後に詳述する。
【0030】
そして、PCIe用バスブリッジ12は、アドレスAD2、バースト長BL2、バーストサイズBS2(第2のデータサイズ)、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を制御情報として含む第2の読み出し制御信号(後述するメモリアクセス信号S20A)を生成する。
【0031】
PCIe用バスブリッジ12は第2の読み出し制御信号を読み出し対象部となるメモリに出力することにより、当該メモリよりPCIeバス32を介して読み出しデータDT2(第2の読み出しデータ)を読み出し、AXIバス仕様用の読み出しデータDT1に変換してAXI用バスブリッジ11に出力する。
【0032】
このように、バスブリッジ群10によって、異なるバス仕様であるAXIバス31,PCIeバス32間(
図7参照)のデータ読み出し処理が可能となる。
【0033】
図2はPCIe用バスブリッジ12の内部構成及びその一部周辺を示すブロック図である。同図に示すように、PCIe用バスブリッジ12はデコーダ20、変換情報記憶部21及びトランザクション変換部22から構成され、PCIeバス32を介してスレーブ側のメモリ400(
図7のメモリ401,あるいはメモリ402に相当)とアクセスすることができる。
【0034】
デコーダ20は、第1の読み出し制御信号(AD1,BL1,BS1)に基づき、上記データ対応表あるいは上記データ変換式を用いて、PCIeバス32に接続される読み出し対象部であるメモリ400用の第2の読み出し制御信号であるメモリアクセス信号S20Aを生成し、PCIeバス32を介してメモリ400に出力する。メモリアクセス信号S20Aには前述したアドレスAD2、バーストサイズBS2、バースト長BL2、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3が制御情報として含まれる。
【0035】
メモリ400はメモリアクセス信号S20Aを入力すると、少なくとも1回のバースト転送処理(第2のデータ転送処理)によって読み出しデータDT2をPCIeバス32を介してトランザクション変換部22に出力する。
【0036】
さらに、デコーダ20は、デコード結果情報S20Bを変換情報記憶部21に出力することにより、変換情報記憶部21にデータ変換情報S21として記憶させる。なお、デコード結果情報S20B(S21)には上述したメモリアクセス信号S20Aの内容に加え、アドレスAD1、バースト長BL1,バーストサイズBS1等の第1の読み出し制御信号の情報が含まれる。
【0037】
データ変換部であるトランザクション変換部22は、バースト転送処理によって出力される読み出しデータDT2を受け、データ変換情報S21に基づき、読み出しデータDT2を変換しAXIバス仕様に適合した読み出しデータDT1として出力する。
【0038】
図3はデコーダ20が上記データ対応表を有する場合の一例を示す表形式の説明図である。同図において、バーストサイズ情報ARSはバーストサイズBS1に対応し、バーストサイズ情報ARSが“0”〜“4”がバーストサイズBS1の“1”〜“16”(BS1=“2”のARS乗)を意味する。バースト長情報ARLはバースト長BL1に対応し、バースト長情報ARLの“0”〜“15”がバースト長BL1の“1”〜“16”(BL1=ARL+1)を意味する。
【0039】
図3におけるByteEnableは、最上位16ビットがラストバイトイネーブルLB3に対応し、最下位16ビットがファーストバイトイネーブルFB3に対応する。また、ByteEnableに隣接しているBurstLengthはバースト長BL2に対応する。
【0040】
図3で示したデータ対応表をデータ変換式として表したのが以下の式(1)である。
図3のBurstEnableが式(1)における乗算の前段部分(×印の前の演算部分)の演算結果である仮演算結果PRESTに相当する。
【0042】
式(1)を実行して得られる演算結果RSTRBがデコーダ20による中間デコード結果となる。演算結果RSTRBを、共通バス幅BWC(=BW1=BW2)に一致するビット数(16ビット)を1ワード(bit/word)としたワード単位で区切る。その結果、最上位1ワードがラストバイトイネーブルLB3、最下位1ワードがファーストバイトイネーブルFB3、演算結果RSTRBの総ワード数がバースト長BL2としてそれぞれ認識される。
【0043】
図4はメモリ400のアドレス空間を模式的に示す説明図である。ここで、斜線部で示されたアドレス0x1c〜0x53の56バイトのアンアラインドな格納データが、バイトレーン情報TLで指示される読み出しデータDT2であった場合を考える。
【0044】
この場合、AXI用バスブリッジ11において、アドレスAD1は“0x1c”、バーストサイズBS1が“4”(バイト)、バースト長BL1が“14”(回)をそれぞれ指示する。
【0045】
したがって、
図3のデータ対応表を参照して、デコーダ20は、バーストサイズ情報ARSが“2”(BS1=4)及びバースト長情報ARLが“13”(BL1=14)に基づき、ByteEnable=“0x00ff_ffff”、BurstLength=“4”を導くことができる。すなわち、デコーダ20は、バーストサイズBS1及びバースト長BL1に基づき、データ対応表を参照して、式(1)の前段部分の演算結果と同じ仮演算結果PREST=“x00ff_ffff_ffff_ffff”を得ることができる。
【0046】
さらに、デコーダ20は、この仮演算結果PRESTを左に12(=0x0c)回シフトさせる(式(1)の後段部分(×印の後方の演算部分)を実行する)ことにより、最終的な演算結果RSTRB=“0x000f_ffff_ffff_ffff_f000”を得ることができる。
【0047】
その結果、デコーダ20は演算結果RSTRBに基づき、ラストバイトイネーブルLB3=“0x000f”、ファーストバイトイネーブルFB3=“0xf000”、及びバーストサイズBS2=“5”を認識することができる。
【0048】
その後、デコーダ20は、アドレスAD2、バーストサイズBS2、バースト長BL2、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を制御情報として含むメモリアクセス信号S20AをPCIeバス32を介してメモリ400に出力する。その結果、メモリ400に5回のバースト転送処理(第2のデータ転送処理)BT21〜BT25を実行させることにより、
図4の読み出しデータDT2をメモリ400から読み出すことができる。この際、最初のバースト転送処理BT21における転送データの0x10〜0x1b部分、最後のバースト転送処理BT25における転送データの0x54〜0x5f部分は無効なデータ値として読み出される。
【0049】
このように、デコーダ20は
図3で示したデータ対応表に基づく処理機能及びアドレスAD1に基づくシフト処理機能を有する、あるいは式(1)による演算処理機能を有することにより、AXI用バスブリッジ11からの第1の読み出し制御信号から、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を含むメモリアクセス信号S20Aを得ることができる。
【0050】
そして、トランザクション変換部22は、変換情報記憶部21に格納されたデータ変換情報S21に基づき、読み出しデータDT2をAXIバス仕様に適合した読み出しデータDT1(第1の読み出しデータ)に変換する。
【0051】
図5はトランザクション変換部22からの読み出しデータDT1の出力内容を模式的に示す説明図である。同図に示すように、0X1cを開始アドレスとして、バーストサイズBS1である4バイト単位のバースト転送処理BT1〜BT14を、アドレスをバーストサイズBS1の値(=“4”)分繰り上げながら14回出力する態様で読み出しデータDT1(
図5の斜線領域)が出力される。なお、
図5の左側の数字はバースト転送処理(第1のデータ転送処理)BT1〜BT14それぞれの先頭アドレスを示している。
【0052】
本実施の形態におけるPCIe用バスブリッジ12のデコーダ20は、第1の読み出し制御信号(AD1,BL1,BS1)に基づき、
図3で示したデータ対応表あるいは式(1)で示したデータ変換式を用いて、読み出し対象部であるメモリ400用の第2の読み出し制御信号であるメモリアクセス信号S20Aを自動的に生成することができる。このため、AXIバス側でPCIeバス仕様を考慮した前処理(ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を生成する処理)及び前処理用に必要となる構成部を不要にできる分、バスブリッジ群10において、AXIバス仕様,PCIeバス仕様間のデータ読み出し処理時における処理内容の軽減化及び装置構成の簡略化を図ることができる。
【0053】
また、デコーダ20より生成されるメモリアクセス信号S20Aは、ファーストバイトイネーブルFB3及びラストバイトイネーブルLB3を含むため、これらのイネーブル情報FB3,LB3の設定用の記憶部(
図8のレジスタブロック53に相当)を必要としない分、バスブリッジ群10の装置構成の簡略化を図ることができる。
【0054】
(変形例)
上述した実施の形態では、バスブリッジ群10におけるマスタ側のブリッジとしてAXIバス仕様のAXI用バスブリッジ11を示したが、AXI用バスブリッジ11に代えてAHB(Advanced High-performance Bus)バス仕様のバスブリッジを設けることも可能である。ただし、AHBバス仕様及びAXIバス仕様においては、インクリメントバースト転送処理(アドレスをインクリメントしながら行うバースト転送処理)を実行するタイプに限定される。なお、上述した実施の形態では、インクリメントバースト転送処理を実行するタイプのAXIバス仕様を前提として説明している。
【0055】
この場合、式(1)で示したAXIバス仕様のデータ変換式に代えて、AHBバス仕様のデータ変換式として以下の式(2)を利用することができる。
【0057】
式(2)において、必要なパラメータはバースト長情報HRL(バースト長HL=HRL+1)、バーストサイズ情報HRS(バーストサイズHS=“2”のHRS乗)、アドレスHAD及び共通バス幅BWC(AHBバスのバス幅=バス幅BW2)となる。なお、バースト長HL、バーストサイズHS及びアドレスHADは、AXIバス仕様のバースト長BL1、バーストサイズBS1及びアドレスAD1に対応し、バーストサイズ情報HRS及びバースト長情報HRLはAXIバス仕様のバーストサイズ情報ARS及びバースト長情報ARLに対応する。
【0058】
図6はバーストタイプHBURSTとバースト長HLとの対応関係を表形式で示す説明図である。同図に示すように、バーストタイプHBURSTが“0”,“1”,“3”,“5”及び“7”の場合はいずれもインクリメントバースト処理を行うタイプ(SINGLE,INCR,INCR4,INCR8,INCR16)であり、バーストタイプHBURSTからバースト長HLを得ることができる。なお、「INCRi」は、バースト転送毎にi×バーストサイズHS分のアドレスをインクリメントする処理を意味し、「SINGLE」及び「INCR」はバースト長が“1”の場合の処理を意味している。
【0059】
PCIe用バスブリッジ12のデコーダ20は
図6で示す対応関係に基づくデコード機能をさらに備えることにより、バーストタイプHBURSTからバースト長HLを取得することができる。したがって、PCIe用バスブリッジ12内のデコーダ20は、AHBバス仕様のバスブリッジからアドレスHAD、バーストサイズHS及びバーストタイプHBURSTを制御情報として含む第1の読み出し制御信号を入力して、式(2)に沿った演算を実行することにより、AXI用バスブリッジ11に対する場合と同様、メモリアクセス信号S20A及びデコード結果情報S20Bに相当する信号を得ることができる。
【0060】
このように、本実施の形態の変形例におけるPCIe用バスブリッジ12のデコーダ20は、第1の読み出し制御信号(HAD,HS,HBRST(HLを間接的に指示する情報))に基づき、読み出し対象部であるメモリ400用の第2の読み出し制御信号であるメモリアクセス信号S20Aを自動的に生成する。このため、PCIeバス仕様を考慮したAHBバス仕様側の前処理(ファーストバイトイネーブルFB1等を得る処理)及び前処理実行時に必要となる構成部(
図8のレジスタブロック53相当)が不要となる分、バスブリッジ群10の変形例において、AHBバス仕様,PCIeバス仕様間のデータ読み出し処理時における処理内容の軽減化及び装置構成の簡略化を図ることができる。
【0061】
また、本実施の形態(変形例を含む)のPCIe用バスブリッジ12により、従来問題であったスピンロック機構の実行に伴うアクセス性の低下を回避することができる。したがって、AXI用バスブリッジ11(AHBバスブリッジ)に接続されるマスタ側は、OSのスピンロック機構などを使用することなく、PCIeバス32に対してアンアラインドなデータ読み出し処理を行うことができる効果を奏する。
【0062】
この効果により、マスタやターゲット(スレーブ)が複数存在する場合でも、アプリケーションはアクセス状況を考慮することなく、任意のタイミングでPCIeバス32にアクセスすることができ、バスブリッジ群10によってデータ中継されるマルチCPUやマルチタスク環境での動作を改善することができる。
【符号の説明】
【0063】
10 バスブリッジ群
11 AXI用バスブリッジ
12 PCIe用バスブリッジ
20 デコーダ
21 変換情報記憶部
22 トランザクション変換部
32 PCIeバス
400 メモリ