(57)【要約】【課題】データの並べ替えによるバス転送の効率向上を実現することのできるバス装置を得る。【解決手段】インオーダ対応バスマスタ２−１からの転送データにＩＤを付加し、ＩＤをＩＤキュー部７で保持する。転送制御部８は、ＩＤキュー部７のＩＤとバススレーブ３−１、３−２からの転送データのＩＤが一致した場合はあて先のバスマスタに転送する。一致しない場合は後で転送するとしてトランザクションキュー部９に蓄積する。トランザクションキュー部９の転送データのＩＤとＩＤキュー部７のＩＤが一致した場合、転送制御部８はその転送データをあて先のバスマスタに転送する。【選択図】図１
2010182092.tif 000002
【特許請求の範囲】
【請求項１】
任意のバスマスタからの転送データをあて先となるバススレーブに転送するバス装置において、
前記転送データにＩＤを付加するＩＤ付加部と、
前記ＩＤを付加した転送データを蓄積する入力バッファ部と、
前記入力バッファ部からあて先となるバススレーブへの転送制御を行う調停部と、
前記ＩＤ付加部で付加したＩＤをキューイングするＩＤキュー部と、
前記ＩＤキュー部にキューイングされているＩＤと、いずれかのバススレーブから転送されてきたデータのＩＤの比較を行い、当該ＩＤが一致した場合は、前記いずれかのバススレーブからの転送データをあて先となるバスマスタに転送し、一致しなかった場合は、後で転送すると判定する転送制御部と、
前記転送制御部で後で転送すると判定されたＩＤのデータを蓄積するトランザクションキュー部とを備え、
前記転送制御部は、前記トランザクションキュー部に蓄積するデータのＩＤと、前記ＩＤキュー部からのＩＤが一致した場合に、当該ＩＤのデータをトランザクションキュー部から取り出してあて先となるバスマスタに転送することを特徴とするバス装置。
【請求項２】
ＩＤキュー部のキューの段数を、入力バッファ部の格納可能データ数とバススレーブ数とを加算した数としたことを特徴とする請求項１記載のバス装置。
【請求項３】
調停部は、ＩＤキュー部において、キューイングされたＩＤ数がある一定の値を超えると、前記ＩＤキュー部にあるＩＤのデータを優先的に転送することを特徴とする請求項１または請求項２記載のバス装置。
【請求項４】
トランザクションキュー部の代わりに、ＩＤをアドレスとしたトランザクションメモリ部を備えたことを特徴とする請求項１から請求項３のうちのいずれか１項記載のバス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、バスマスタとバススレーブ間に接続され、これらのバスマスタとバススレーブ間を相互にデータ転送を行うバス装置に関するものである。
【背景技術】
【０００２】
バス装置等のデータの転送方法として、インオーダ転送とアウトオブオーダ転送がある。インオーダ転送とは、複数のコマンドを同時に受け付けた場合に、その順番を保ったままデータの入出力を行う方式であり、アウトオブオーダ転送とは、コマンドを受け付けた順番とは無関係にデータの入出力を行うことができる方式である。
バス装置としての転送効率を向上させるためには、アウトオブオーダに対応したバス装置が必要である。
従来、バススレーブからアウトオブオーダに転送されてくるデータに対してオーダバッファを設けてデータの並べ替えを行うようにしたものがあった（例えば、特許文献１参照）。このようなバス装置は、インオーダに並べ替えるため、求められる順序でレスポンスを転送することができた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１３３６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載されたような従来のバス装置では、データの並べ替えについては開示しているが、並べ替えの制御方法については示されておらず、従って、並べ替えによるバス転送の効率向上を実際に実現するのは困難であった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、データの並べ替えによるバス転送の効率向上を実現することのできるバス装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るバス装置は、転送データにＩＤを付加するＩＤ付加部と、ＩＤを付加した転送データを蓄積する入力バッファ部と、入力バッファ部からあて先となるバススレーブへの転送制御を行う調停部と、ＩＤ付加部で付加したＩＤをキューイングするＩＤキュー部と、ＩＤキュー部にキューイングされているＩＤと、いずれかのバススレーブから転送されてきたデータのＩＤの比較を行い、ＩＤが一致した場合は、いずれかのバススレーブからの転送データをあて先となるバスマスタに転送し、一致しなかった場合は、後で転送すると判定する転送制御部と、転送制御部で後で転送すると判定されたＩＤのデータを蓄積するトランザクションキュー部とを備え、転送制御部は、トランザクションキュー部に蓄積するデータのＩＤと、ＩＤキュー部からのＩＤが一致した場合に、そのＩＤのデータをトランザクションキュー部から取り出してあて先となるバスマスタに転送するようにしたものである。
【発明の効果】
【０００７】
この発明のバス装置は、転送データにＩＤを付加してそのＩＤをＩＤキュー部に保持し、このＩＤキュー部のＩＤとバススレーブからの転送データのＩＤが一致した場合はあて先のバスマスタに転送し、一致しない場合は転送データを後で転送すると判定して、トランザクションキュー部に蓄積するようにしたので、データの並べ替えによるバス転送の効率向上を実現することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるバス装置を示す構成図である。
【図２】この発明の実施の形態１によるバス装置の動作（その１）の説明図である。
【図３】この発明の実施の形態１によるバス装置の動作（その２）の説明図である。
【図４】この発明の実施の形態１によるバス装置の動作（その３）の説明図である。
【図５】この発明の実施の形態１によるバス装置におけるＩＤキュー部の格納数の説明図である。
【図６】この発明の実施の形態２によるバス装置を示す構成図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるバス装置１を示す構成図である。
図１において、バス装置１は、複数のバスマスタ（インオーダ対応バスマスタ２−１，アウトオブオーダ対応バスマスタ２−２）と、複数のバススレーブ３−１，３−２との間に設けられる装置であり、インオーダ対応バスマスタ２−１およびアウトオブオーダ対応バスマスタ２−２からの転送データをバススレーブ３−１，３−２に転送する。このバス装置１の内部にはインオーダ対応バスマスタ２−１に対応した構成として、ＩＤ付加部４、入力バッファ部５−１、ＩＤキュー部７、転送制御部８、トランザクションキュー部９を設け、アウトオブオーダ対応バスマスタ２−２に対応した構成として、入力バッファ部５−２を設ける。また、バスマスタ２−１，２−２からバススレーブ３−１、３−２への転送データを制御する調停部６−１と、バススレーブ３−１、３−２からバスマスタ２−１，２−２への転送データを制御する調停部６−２を設ける。
【００１０】
インオーダ対応バスマスタ２−１とは、転送データを送出した順番でバス装置１から転送データを受け取ることを要求とするマスタである。また、アウトオブオーダ対応バスマスタ２−２とは、転送データを送出した順番に関係なく、転送データを受けとることが可能なマスタである。バス転送効率を高めるにはアウトオブオーダ対応のバス装置が必要である。
【００１１】
ＩＤ付加部４は、一つのインオーダ対応バスマスタ２−１に対して一つ設けられ、転送データにデータ識別情報であるＩＤを付加する機能部である。これにより、バス内部においてアウトオブオーダで転送が可能となり、インオーダ対応バスマスタ２−１とアウトオブオーダ対応バスマスタ２−２の混在が許され、バス内部においてアウトオブオーダ転送が可能となる。
【００１２】
入力バッファ部５−１，５−２は、それぞれのバスマスタ２−１、２−２に対応して設けられ、各バスマスタ２−１，２−２から送られてきた転送データを格納するバッファである。
調停部６−１は、バスマスタ２−１，２−２からの転送データ（リクエスト）を調停する機能部であり、調停部６−２は、バススレーブ３−１、３−２からの転送データ（レスポンス）を調停する機能部である。
【００１３】
ＩＤキュー部７は、一つのインオーダ対応バスマスタ２−１に対して一つ設けられ、ＩＤ付加部４で付加されたＩＤをＩＤ付加部４から送られてきたＩＤデータ４ａの順にキューイングするキューである。
【００１４】
転送制御部８は、一つのインオーダ対応バスマスタ２−１に対して一つ設けられ、ＩＤキュー部７の出力と、調停部６−２からの転送データのＩＤとを比較する。また、ＩＤキュー部７の出力と、ＩＤキュー部７からのＩＤをトランザクションキュー部９からの転送データのＩＤとを比較する。更に、転送制御部８は、調停部６−２からの転送データＩＤとＩＤキュー部７からのＩＤが一致すれば、調停部６−２からの転送データをインオーダ対応バスマスタ２−１へ転送する。不一致の場合は、トランザクションキュー部９へ調停部６−２から送られてきたデータをキューイングする。そして、転送制御部８は、トランザクションキュー部９にデータがある場合は、ＩＤキュー部７からのＩＤとトランザクションキュー部９からのＩＤを比較し、ＩＤが一致すれば、トランザクションキュー部９のデータをインオーダ対応バスマスタ２−１へ送出し、送出された転送データはトランザクションキュー部９から削除するよう構成されている。また、転送制御部８は、調停部６−２とトランザクションキュー部９からのＩＤがＩＤキュー部７のＩＤと一致しない場合は、調停部６−２からの転送データをトランザクションキュー部９に格納する。
【００１５】
次に、実施の形態１のバス装置の動作について説明する。図２および図３は動作を説明するための説明図である。
まず、バスマスタ２−１、２−２からデータ転送要求が発行されると、これらのバスマスタ２−１、２−２に対応したそれぞれの入力バッファ部５−１、５−２は、これらの転送データを保持する。インオーダ対応バスマスタ２−１に対してはＩＤ付加部４によって入力バッファ部５−１に蓄積する前に転送データにＩＤを付加する。このようにしてバスマスタからの転送データとそのＩＤが入力バッファ部５−１とＩＤキュー部７に蓄積される。図２では、インオーダ対応バスマスタ２−１から、ＩＤキュー部７に、ＩＤ１、ＩＤ２、ＩＤ３の順にＩＤが三つまでキューイングされたときを示している。
【００１６】
次に、入力バッファ部５−１の転送データ５ａと入力バッファ部５−２の転送データ５ｂが調停部６−１で調停され、アウトオブオーダでバススレーブ３−１、３−２に送られる。これにより、今度はバススレーブ３−１、３−２からバスマスタ２−１，２−２へ転送データ（レスポンス）が送られる。アウトオブオーダ対応なので、転送した順序でバス装置１に転送データが送られてくるとは限らない。また、バススレーブ３−１、３−２は同時に転送データを送出する場合もあるため、調停部６−２に転送データが送られ、調停によってどちらか、あるいは両方の転送データが転送制御部８に送られるか、アウトオブオーダ対応バスマスタ２−２への転送であれば、直接、バスマスタ２−２へ送られる。
【００１７】
図２では、ＩＤ１ではなく、ＩＤ２のデータが先にバス装置１に転送されてきた様子を示している。このとき、ＩＤキュー部７ではＩＤ１を先にインオーダ対応バスマスタ２−１に転送することを示しているため、ＩＤ２のデータをバスマスタ２−１へ転送することはできない。転送制御部８によって要求ＩＤと転送ＩＤを比較し、不一致が生じた場合はトランザクションキュー部９にＩＤ２の転送データを保持する。
【００１８】
図３は、図２の次の動作を示す説明図である。ＩＤ２のデータがトランザクションキュー部９に保持された後、調停部６−２からインオーダ対応バスマスタ２−１への転送としてＩＤ１のデータが転送されてきたとする。このとき、ＩＤキュー部７はＩＤ１を要求しており、転送制御部８でＩＤ１が一致するため、転送制御部８ではＩＤ１のデータをインオーダ対応バスマスタ２−１へ転送する。
【００１９】
図４は、図３からの次の動作を示す説明図である。ＩＤ１のデータが転送終了したため、ＩＤ付加部４では次に転送要求があれば、ＩＤ１を割り当てることが可能となる。図４では、調停部６−２からＩＤ３の転送データが転送制御部８に転送されてきた様子を示している。このとき、ＩＤキュー部７では、ＩＤ２の転送を要求しているため、トランザクションキュー部９にあるＩＤ２と一致する。転送制御部８では、ＩＤキュー部７と調停部６−２と、トランザクションキュー部９のＩＤを比較し、一致ＩＤのデータを選択する。このときは、トランザクションキュー部９にあるＩＤ２の転送データが選択され、インオーダ対応のバスマスタ２−１に転送データが送られる。同時にＩＤ３のデータがトランザクションキュー部９に保持される。このようにして、インオーダ対応バスマスタ２−１が送出した順にバス装置１内部で並べ替えを行う。並べ替えることが不要な転送データに対しては、転送制御部８によって直ちにインオーダ対応バスマスタ２−１に転送されるため、データ転送が遅れることはない。
【００２０】
またＩＤは、入力バッファ部５−１で格納可能なデータ数と同じだけのＩＤが割り当てられることが考えられる。つまり、ＩＤの割り当て範囲が１６進数０ｘ０から０ｘＦまでであれば１６個のデータを格納可能ということになる。０ｘＦの次は０ｘ０に戻るようにしてＩＤの割り当てビット幅が大きくならないようにすることがコスト削減のために望まれる。
【００２１】
しかしながら、アウトオブオーダで転送する場合、一つのバスマスタから、バススレーブからのレスポンスを待たずに複数のバススレーブへ転送することが可能であるため、ＩＤの割り当てを入力バッファ部５−１での格納データ数にバススレーブ数を加算した値のＩＤ割り当てを許可する。即ち、入力バッファ部５−１での格納データ数が１６個であり、バススレーブ３−１、３−２の個数が２個であった場合、１６＋２＝１８個のＩＤ割り当てとする。
図５は、この状態を示す説明図である。
図示例では、ＩＤ３のデータはバススレーブ３−１、３−２から既に転送が完了しており、トランザクションキュー部９に格納されている。また、バススレーブ３−１はＩＤ１のデータ転送を処理中、バススレーブ３−２は、ＩＤ２のデータ転送を処理中であるとする。また、入力バッファ部５−１にはＩＤ４，３，５の３個の転送データが格納されている。このとき、ＩＤキュー部７には入力バッファ部５−１の格納数＋バススレーブの個数＝５個のＩＤが格納される。
このようにすることで、ＩＤ割り当て範囲を最小限にすることが可能になり、コストを削減することができる。
【００２２】
アウトオブオーダ対応のバスマスタ２−２はＩＤがバスマスタ内部ですでに与えられているとしているが、バス装置１内部でＩＤ付加部４によってＩＤを付加することも可能である。
【００２３】
また、バス装置１は、明らかにアウトオブオーダ対応のバスマスタには、ＩＤキュー部７、転送制御部８、トランザクションキュー部９は不要である。
【００２４】
更に、ＩＤキュー部７からは、キューがフルになった、あるいはある一定のデータ数がキューイングされた場合、優先信号７ａ（図１参照）を調停部６−１、６−２に送出するようにしてもよい。ＩＤキュー部７にデータが蓄積されているということは、そのバスマスタの要求が調停部６−１、あるいは６−２によって優先されていないことを示しており、キューイングされたデータ数が多いほど、そのレイテンシは大きくなる。そこで、キューイング数に基づいて優先信号７ａを生成して調停部６−１または６−２に送出する。優先信号７ａを受信した調停部６−１または６−２において、そのバスマスタからの、あるいはバスマスタへの転送データを優先的に選択する。
【００２５】
さらに、トランザクションキュー部９においてもキューイング数がフル、あるいは一定の値になった場合、同様に優先信号９ａ（図１参照）を調停部６−１または６−２に送出するようにしてもよい。
【００２６】
以上のように、実施の形態１のバス装置によれば、任意のバスマスタからの転送データをあて先となるバススレーブに転送するバス装置において、転送データにＩＤを付加するＩＤ付加部と、ＩＤを付加した転送データを蓄積する入力バッファ部と、入力バッファ部からあて先となるバススレーブへの転送制御を行う調停部と、ＩＤ付加部で付加したＩＤをキューイングするＩＤキュー部と、ＩＤキュー部にキューイングされているＩＤと、いずれかのバススレーブから転送されてきたデータのＩＤの比較を行い、ＩＤが一致した場合は、いずれかのバススレーブからの転送データをあて先となるバスマスタに転送し、一致しなかった場合は、後で転送すると判定する転送制御部と、転送制御部で後で転送すると判定されたＩＤのデータを蓄積するトランザクションキュー部とを備え、転送制御部は、トランザクションキュー部に蓄積するデータのＩＤと、ＩＤキュー部からのＩＤが一致した場合に、ＩＤのデータをトランザクションキュー部から取り出してあて先となるバスマスタに転送するようにしたので、データの並べ替えによるバス転送の効率向上を実現することができ、しかも、少ないバッファ容量でこれを実現することができる。
【００２７】
また、実施の形態１のバス装置によれば、ＩＤキュー部のキューの段数を、入力バッファ部の格納可能データ数とバススレーブ数とを加算した数としたので、ＩＤ割り当て範囲を最小限にすることが可能になり、コストを削減することができる。
【００２８】
また、実施の形態１のバス装置によれば、調停部は、ＩＤキュー部において、キューイングされたＩＤ数がある一定の値を超えると、ＩＤキュー部にあるＩＤのデータを優先的に転送するようにしたので、更に効率的なデータ転送を行うことができる。
【００２９】
実施の形態２．
図６は、この発明の実施の形態２によるバス装置１−１を示す構成図である。
実施の形態２のバス装置１ａでは、実施の形態１のトランザクションキュー部９の代わりにトランザクションメモリ部１０を設けている。このトランザクションメモリ部１０は、ＩＤキュー部７からのＩＤ情報７ｂに基づいて、ＩＤをアドレスとして転送データを保持するメモリであり、転送制御部８ａによって調停部６−２から送られてきた不一致の転送データをそのＩＤに対応したアドレスに保持する。また、トランザクションメモリ部１０には、各転送データに対するＩＤが有効か否かを示すＶａｌｉｄフラグ（図示せず）を備えている。
【００３０】
また、トランザクションメモリ部１０は転送制御部８ａからＩＤ情報が送られてきた場合は、そのＩＤに対応したデータがあるかを調べ、あった場合はデータを転送制御部８ａへ送出すると共に、Ｖａｌｉｄフラグの情報であるＶａｌｉｄ情報１０ａを送出する。転送制御部８ａは、基本的な機能は実施の形態１の転送制御部８と同様であるが、ＩＤキュー部７からＩＤが送られてきた場合は、このＩＤをトランザクションメモリ部１０に送出し、Ｖａｌｉｄ情報１０ａが「Ｖａｌｉｄ」を示していた場合にそのデータをあて先のバスマスタに転送するよう構成されている。それ以外の構成は、実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００３１】
次に、実施の形態２のバス装置の動作について説明する。
先ず、ＩＤ付加部４によるＩＤの付加やＩＤキュー部７におけるＩＤの格納といったバススレーブ３−１、３−２へのデータの送出については実施の形態１と同様である。また、実施の形態２においても、転送制御部８ａは、実施の形態１と同様に、並べ替えが不要な転送データに対しては直ちにあて先となるインオーダ対応バスマスタ２−１に転送し、ＩＤキュー部７からのＩＤと一致しなかった転送データはトランザクションメモリ部１０に書き込む。トランザクションメモリ部１０では、転送データが書き込まれると、そのＶａｌｉｄフラグを「Ｖａｌｉｄ」とする。
【００３２】
また、転送制御部８ａは、ＩＤキュー部７からＩＤをトランザクションメモリ部１０に送出する。トランザクションメモリ部１０では、ＩＤを受け取ると、そのＩＤに対応したアドレスに転送データが格納されているかを調べ、あった場合は、その転送データを転送制御部８ａに送出すると共に、Ｖａｌｉｄ情報１０ａを「Ｖａｌｉｄ」として送出する。また、転送されたデータのＶａｌｉｄフラグは「Ｉｎｖａｌｉｄ」とする。一方、そのアドレスに転送データが格納されていなかった場合は、Ｖａｌｉｄ情報１０ａとして「Ｉｎｖａｌｉｄ」を送出する。このような処理を行うことにより、実施の形態１と同様に、インオーダ対応バスマスタ２−１が送出した順番にバス装置１ａ内部で並べ替えを行うことができる。
【００３３】
尚、実施の形態２においても、ＩＤキュー部７から調停部６−１または調停部６−２に対して優先信号７ａを送出するようにしてもよい。
【００３４】
以上のように、実施の形態２のバス装置によれば、トランザクションキュー部の代わりに、ＩＤをアドレスとしたトランザクションメモリ部を備えたので、トランザクションメモリ部にあるデータは１サイクルでバスマスタへ送出可能である。そのため、レイテンシを改善することができる。
【符号の説明】
【００３５】
１，１ａ  バス装置、２−１  インオーダ対応バスマスタ、２−２  アウトオブオーダ対応バスマスタ、３−１，３−２  バススレーブ、４  ＩＤ付加部、４ａ  ＩＤデータ、５−１，５−２  入力バッファ部、５ａ，５ｂ  転送データ、６−１，６−２  調停部、７  ＩＤキュー部、７ａ，９ａ  優先信号、７ｂ  ＩＤ情報、８，８ａ  転送制御部、９  トランザクションキュー部、１０  トランザクションメモリ部。
【図１】
2010182092.tif 000003
【図２】
2010182092.tif 000004
【図３】
2010182092.tif 000005
【図４】
2010182092.tif 000006
【図５】
2010182092.tif 000007
【図６】
2010182092.tif 000008