(57)【要約】【課題】複数の異なるバスプロトコルのスレーブバスを有し、簡易な構成によってマスタ装置からスレーブ装置へのアクセスを分割することのできるバスシステムを提供する。【解決手段】複数個のスレーブバス６０〜６３は、それぞれが、少なくとも１つのスレーブと接続され、互いに異なるバスプロトコルを有する。複数個のスレーブＩＦ１２，１４，１６，１８は、それぞれが、マスタバス５８、および１つのスレーブバスに接続される。バス制御部８は、アドレスマップに基づいて、アクセス対象のスレーブのアクセスビット幅を特定する。バス制御部８は、マスタ２，４，６からのアクセス要求ビット幅がアクセス対象のスレーブのアクセスビット幅よりも大きいか否かを判断する。バス制御部８は、大きい場合には、複数回に分けてスレーブＩＦ１２，１４，１６，１８を介してアクセス対象のスレーブにアクセスする。【選択図】図１
2012068704.tif 000002
【特許請求の範囲】
【請求項１】
複数個のマスタと、
複数個のスレーブと、
前記複数個のマスタが接続されるマスタバスと、
それぞれが、少なくとも１つの前記スレーブと接続され、互いに異なるバスプロトコルでデータが伝送される複数のスレーブバスと、
それぞれが、前記マスタバス、および１つの前記スレーブバスに接続される複数のスレーブインタフェースと、
アドレスマップに基づいて、アクセス対象のスレーブのアクセスビット幅を特定し、前記マスタからのアクセス要求ビット幅がアクセス対象のスレーブのアクセスビット幅よりも大きいか否かを判断し、大きい場合には、複数回に分けて前記スレーブインタフェースを介して前記アクセス対象のスレーブにアクセスするバス制御部とを備えたバスシステム。
【請求項２】
前記アドレスマップは、前記スレーブのアクセスビット幅として可変幅として定義することが可能であり、
前記バスシステムは、さらに、
前記アドレスマップで定義されている可変幅のビット幅を特定の値に指定するバス幅選択信号を前記バス制御部へ出力するシステム制御部とを備えた、請求項１記載のバスシステム。
【請求項３】
前記バスシステムは、さらに、
複数のアドレスマップのうちのいずれを選択するかを指定するマップ選択信号を出力するシステム制御部を備え、
前記バス制御部は、前記マップ選択信号に従って、１つのアドレスマップを選択し、前記選択したアドレスマップに従って、前記アクセス対象のスレーブにアクセスする、請求項１記載のバスシステム。
【請求項４】
前記マスタからのアクセスが前記スレーブからのデータの読出しの場合には、
前記バス制御部は、前記マスタからのアクセス要求ビット幅がアクセス対象のスレーブのアクセスビット幅よりも大きいときには、複数回に分けて前記スレーブにアクセスすることによって得られたデータを保持し、最後のアクセスが終了した後、前記保持したデータを一度に前記マスタへ出力する、請求項１記載のバスシステム。
【請求項５】
前記バス制御部は、前記保持したデータを一度に前記マスタへ出力した後、アクセスの完了を示す信号を前記マスタへ出力する、請求項４記載のバスシステム。
【請求項６】
前記マスタからのアクセスが前記スレーブへのデータの書込みの場合には、
前記バス制御部は、マスタからのアクセス要求ビット幅がアクセス対象のスレーブのアクセスビット幅よりも大きいときには、前記マスタから出力された書込みデータを保持し、複数回に分けて前記保持した書込みデータを前記スレーブへ出力する、請求項１記載のバスシステム。
【請求項７】
前記バス制御部は、前記保持した書込みデータをすべて出力した後、アクセスの完了を示す信号を前記マスタへ出力する、請求項６記載のバスシステム。
【請求項８】
前記バス制御部は、前記マスタからのアクセス対象のスレーブを指定するアドレスに基づいて、アクセス対象のスレーブに接続される前記スレーブインタフェースを選択して、前記選択したスレーブインタフェースに対して選択信号を出力し、
前記選択信号を受取ったスレーブインタフェースは、前記バス制御部からのアクセス制御信号に従って、前記アクセス対象のスレーブへアクセスする、請求項１記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステムに関し、特に、バスマスタ装置からバススレーブ装置へのアクセス制御技術に関する。
【背景技術】
【０００２】
バスアクセス幅の異なる装置間でデータの授受を行なうために、バスアクセスを分割する機能を有するバスシステムが知られている。
【０００３】
たとえば、特許文献１に記載されているマイクロコンピュータシステムは、種々のメモリあるいは入出力回路を、それぞれの分割領域に割当て、分割領域ごとにバス幅やバスサイクル数などの設定を行っている（段落［００１１］）。具体的には、アドレス空間のエリア０に対する１６ビット幅アクセスの場合には、アドレスバスは偶数番地を示し、偶数番地のデータをデータバスの上位を使用してリード／ライトが行なわれ、奇数番地のデータをデータバスの下位を使用してリード／ライトを行なわれることが記載されている（段落［００４２］）。一方、アドレス空間のエリア０に対する８ビット幅アクセスの場合には、偶数番地、奇数番地の順に、１バイトずつリード／ライトが行われることが記載されている（段落［００４４］）。
【０００４】
このように、スレーブ装置のバスアクセス幅に応じて、スレーブ装置へのアクセスを１回で行なうか、分割して行なうかどうかが決められる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３０７５１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に記載のシステムでは、スレーブバスが１種類だけであり、１台のバス制御装置（ＢＳＣ）によって、このようなバスアクセスの分割制御が行なわれている。
【０００７】
しかしながら、特許文献１のようなバスシステムが、複数の異なるバスプロトコルのスレーブバスを有することを可能とするためには、バスアクセスの分割制御機能を有するバス制御装置（ＢＳＣ）をスレーブバスごとに設けなくてはならなくなる。その結果、バスシステム全体の回路構成が大規模化する。
【０００８】
それゆえに、本発明の目的は、複数の異なるバスプロトコルのスレーブバスを有し、簡易な構成によってマスタ装置からスレーブ装置へのアクセスを分割することのできるバスシステムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の一実施形態のバスシステムは、複数個のマスタと、複数個のスレーブと、複数個のマスタが接続されるマスタバスと、それぞれが、少なくとも１つのスレーブと接続され、互いに異なるバスプロトコルの複数個のスレーブバスと、それぞれが、マスタバス、および１つのスレーブバスに接続される複数個のスレーブインタフェースと、アドレスマップに基づいて、アクセス対象のスレーブのアクセスビット幅を特定し、マスタからのアクセス要求ビット幅がアクセス対象のスレーブのアクセスビット幅よりも大きいか否かを判断し、大きい場合には、複数回に分けてスレーブインタフェースを介してアクセス対象のスレーブにアクセスするバス制御部とを備える。
【発明の効果】
【００１０】
本発明の一実施形態によれば、複数の異なるバスプロトコルのスレーブバスを有し、簡易な構成によって、マスタ装置からのアクセスを分割することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態のバスシステムの構成を表わす図である。
【図２】本発明の実施形態のアドレスマップの例を表わす図である。
【図３】本発明の実施形態における、マスタからのアクセスビット幅、スレーブ領域のビット幅と、スレーブへのアクセス回数の関係を表わす図である。
【図４】本発明の実施形態のバスシステムの動作手順を表わすフローチャートである。
【図５】アクセスが分割されるときのタイミング図である。
【図６】アクセスが分割されないときのタイミング図である。
【図７】システムバスの伝送ビット幅と、スレーブバスの伝送ビット幅がとともに３２ビット幅の場合における、マスタ装置からのアクセス要求ビット幅と、スレーブ装置のアクセスビット幅と、スレーブ装置へのアクセス回数の関係を表わす図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について図面を参照して説明する。
（構成）
図１は、本発明の実施形態のバスシステムの構成を表わす図である。
【００１３】
図１を参照して、このバスシステムは、ＣＰＵ(Central Processing Unit)２、ＤＴＣ（Data Transfer Controller）４、デバッガ６と、バス制御部８と、システム制御部１０とを備える。
【００１４】
ＣＰＵ２、ＤＴＣ４、およびデバッガ６が、このバスシステムのマスタ装置として機能する。これらのマスタ装置は、システムバス（マスタバス）５８に接続されており、マスタプロトコルに従って、バス制御部８とシステムバス５８によって接続され、バス制御部８との間で信号およびデータの授受を行なう。
【００１５】
このバスシステムは、さらに、スレーブＩＦ（Interface)として、外部バス＿ＩＦ１２と、フラッシュ＿ＩＦ１４と、ＳＲＡＭ（Static Random Access Memory)＿ＩＦ１６と、周辺ＩＰ＿ＩＦ１８とを含む。
【００１６】
各スレーブＩＦは、バス制御部８とシステムバス５８によって接続され、バス制御部８との間で信号およびデータの授受を行なう。
【００１７】
外部バス＿ＩＦ１２は、スレーブ装置である外部の機器にアクセスするための第１のスレーブバス６０と接続する。外部バス＿ＩＦ１２は、第１のスレーブバス６０のプロトコルに従って、外部の機器との間でデータを伝送する。外部の機器として、アドレスがＣＳ＃０空間である機器２０と、アドレスがＣＳ＃１空間である機器２２と、アドレスがＣＳ＃２空間である機器２４とを含むものとする。
【００１８】
フラッシュ＿ＩＦ１４は、スレーブ装置であるフラッシュメモリ２６にアクセスするための第２のスレーブバス６１と接続する。フラッシュ＿ＩＦ１４は、第２のスレーブバス６１のプロトコルに従って、フラッシュメモリ２６との間でデータを伝送する。フラッシュメモリ２６は、ユーザプログラムを記憶するＦ＿ＵＳＥＲ領域３６、ユーザデータを記憶するＦ＿ＤＡＴＡ領域３８、ブートプログラムを記憶するおよびＦ＿ＵＳＥＲ＿ｂｏｏｔ領域４０を含む。
【００１９】
ＳＲＡＭ＿ＩＦ１６は、スレーブ装置であるＳＲＡＭ２８にアクセスするための第３のスレーブバス６２と接続する。ＳＲＡＭ＿ＩＦ１６は、第３のスレーブバス６２のプロトコルに従って、ＳＲＡＭ２８との間でデータを伝送する。ＳＲＡＭ２８は、ＳＲＡＭ＃０領域４２と、ＳＲＡＭ＃１領域４４とを含む。
【００２０】
周辺ＩＰ＿ＩＦ１８は、スレーブ装置である周辺モジュール、つまり周辺ＩＰ＃Ａ３０、周辺ＩＰ＃Ｂ３２、周辺ＩＰ＃Ｃ３４にアクセスするための第４のスレーブバス６３と接続する。周辺ＩＰ＿ＩＦ１８は、第４のスレーブバス６３のプロトコルに従って、周辺ＩＰ＃Ａ３０、周辺ＩＰ＃Ｂ３２、周辺ＩＰ＃Ｃ３４との間でデータを伝送する。
【００２１】
この実施形態では、システムバス５８の伝送ビット幅と、スレーブバスの伝送ビット幅は、ともに１６ビット幅とする。
【００２２】
システム制御部１０は、チップの動作モードに従って、複数個のアドレスマップのうちののいずれを選択するかを指定するマップ選択信号を出力する。システム制御部１０は、ユーザプログラムに従って、アドレスマップにおけるアクセスビット幅が可変のものについて、ビット幅を指定するバス幅選択信号を出力する。
【００２３】
バス制御部８は、調停部４８と、アドレスマップ選択部５０と、スレーブＩＦ選択部５２と、スレーブアクセス制御部５４とを有する。
【００２４】
調停部４８は、ＣＰＵ２、ＤＴＣ４、およびデバッガ６の３つのマスタからのアクセスを調停する。
【００２５】
アドレスマップ選択部５０は、システム制御部１０からマップ選択信号を受けて、マップ選択信号に従って、複数のアドレスマップの１つを選択する。
【００２６】
（アドレスマップ）
図２は、本発明の実施形態のアドレスマップの例を表わす図である。
【００２７】
図２（ａ）、（ｂ）、（ｃ）は、それぞれアドレスマップＡ、アドレスマップＢ、アドレスマップＣを表わす。
【００２８】
図２（ａ）、（ｂ）、（ｃ）に示すように、アドレスマップＡ、Ｂ、Ｃでは、アドレスと、そのアドレスで指定されるスレーブ装置と、そのスレーブ装置のアクセスビット幅が定められている。
【００２９】
たとえば、図２（ａ）において、周辺ＩＰ＃Ａ３０のアクセスビット幅が１６ビット固定であると定められている。これは、周辺ＩＰ＃Ａ３０に対する、データのリードおよびライトの単位が１６ビットであること、つまり一度に読出し、または書き込めるデータの大きさが１６ビットであることを示している。
【００３０】
また、図２（ａ）において、ＳＲＡＭ＃０のアクセスビット幅が可変であると定められている。アクセスマップの可変のアクセスビット幅は、システム制御部１０から指定されるアクセスビット幅に定められる。たとえば、システム制御部１０が、ＳＲＡＭ＃０のアクセスビット幅を８ビットに指定したバス幅選択信号を出力した場合には、ＳＲＡＭ＃０に対する、データのリードおよびライトの単位が８ビットとなる、つまり一度に読出し、または書き込めるデータの大きさが８ビットとなる。
【００３１】
スレーブＩＦ選択部５２は、アドレスマップ選択部５０で選択されたアドレスマップとマスタ装置から出力されるアドレス信号に基づいて、アクセス対象のスレーブ装置を特定し、さらに、アクセス対象のスレーブ装置と接続されるスレーブＩＦを選択し、選択したスレーブＩＦに対して、スレーブＩＦ選択信号を出力する。
【００３２】
スレーブアクセス制御部５４は、アドレスマップ選択部５０で選択されたアドレスマップと、システム制御部１０から受信したバス幅選択信号と、マスタ装置から受信したアドレス信号およびアクセス制御信号（ハイ側バイト制御信号およびロウ側バイト制御信号）に基づいて、アクセス対象のスレーブ装置へのアクセスを分割する必要があるか否か、および分割する必要がある場合に何回分割すべきかを判断する。スレーブアクセス制御部５４は、判断結果に応じた回数でスレーブ装置へアクセスする。
【００３３】
（例１）
たとえば、以下のような場合を想定する。アドレスマップ選択部５０によって、図２（ａ）のアドレスマップＡが選択される。マスタ装置であるＣＰＵ２が、Ｆ＿ＵＳＥＲ領域３６を指定するアドレス信号を送信し、かつアクセス要求ビット幅として１６ビットを指定する信号を出力する。システム制御部１０が、Ｆ＿ＵＳＥＲ領域３６のアクセスビット幅が８ビットであることを示すバス幅選択信号を出力した場合を想定する。この場合、スレーブアクセス制御部５４は、アクセス対象のＦ＿ＵＳＥＲ領域３６のアクセスビット幅がマスタ装置のアクセスビット幅の１／２であるから、Ｆ＿ＵＳＥＲ領域３６へのアクセスを２回に分割すべきと判断する。
【００３４】
（例２）
また、次のような別の例を想定する。アドレスマップ選択部５０によって、図２（ｂ）のアドレスマップＢが選択される。マスタ装置であるＣＰＵ２が、周辺ＩＰ＃Ａ３０を指定するアドレス信号を送信し、かつアクセス要求ビット幅として１６ビットを指定する信号を出力する。この場合、スレーブアクセス制御部５４は、アクセス対象の周辺ＩＰ＃Ａ３０のアクセスビット幅がマスタ装置のアクセスビット幅と同一であるから、周辺ＩＰ＃Ａ３０へのアクセスを１度で行なうべきと判断する。
【００３５】
（アクセス分割の例）
図３は、本発明の実施形態における、マスタ装置からのアクセス要求ビット幅と、スレーブ装置のアクセスビット幅と、スレーブ装置へのアクセス回数の関係を表わす図である。
【００３６】
図３に示すように、マスタ装置のアクセス要求ビット幅が１６ビットであり、かつスレーブ装置のアクセスビット幅が１６ビットの場合には、スレーブのアクセス回数は１回となる。
【００３７】
マスタ装置のアクセス要求ビット幅が１６ビットであり、かつスレーブ装置のアクセスビット幅が８ビットの場合には、スレーブのアクセス回数は２回となる。
【００３８】
マスタ装置のアクセス要求ビット幅が８ビットであり、かつスレーブ装置のアクセスビット幅が１６ビットの場合には、スレーブのアクセス回数は１回となる。この場合、スレーブアクセス制御部５４は、１６ビットのアクセス要求を送る。リード時には、スレーブアクセス制御部５４は、スレーブＩＦを介してスレーブから読み出された１６ビットのデータのうち、マスタ装置からのアクセス制御信号（ハイ側バイト制御信号、ロウ側バイト制御信号）に従って指示された８ビットをマスタ装置へ出力する。
【００３９】
マスタ装置のアクセス要求ビット幅が８ビットであり、かつスレーブ装置のアクセスビット幅が８ビットの場合には、スレーブのアクセス回数は１回となる。
【００４０】
（動作）
図４は、本発明の実施形態のバスシステムの動作手順を表わすフローチャートである。図５は、アクセスが分割されるときのタイミング図である。図６は、アクセスが分割されれないときのタイミング図である。
【００４１】
（アクセスが分割されるときのタイミング）
マスタ装置であるＣＰＵ２、ＤＴＣ４、デバッガ６が、同時にシステムバス５８を通じて、アクセス要求を発行したときに、バス制御部８の調停部４８は、予め定められた優先順位に従って、アクセスを許可する１つのマスタ装置を決定する。優先順位はＣＰＵが最も低いのが一般的であるが、ここでは、便宜上ＣＰＵ２が最も優先順位が高く設定されているとすると、バス制御部８の調停部４８は、システムバス５８を通じて、アクセス許可信号をＣＰＵ２へ出力し、システムバス５８を通じて、アクセス拒否信号をＤＴＣ４、デバッガ６へ出力する（ステップＳ１０１）。
【００４２】
次に、アドレスマップ選択部５０は、システム制御部１０からマップ選択信号を受けて、複数のアドレスマップの１つを選択する（ステップＳ１０２）。
【００４３】
次に、ＣＰＵ２は、「Ｈ」レベルに活性化したバススタート信号bs_mstをバス制御部８へ出力する（図５、図６の（１）に示す）。また、ＣＰＵ２は、アドレス信号adr_mstをバス制御部８に出力する（図５、図６の（２）に示す）。
【００４４】
バス制御部８のスレーブＩＦ選択部５２は、受信したアドレス信号adr_mstに基づいて、アクセス対象のスレーブを特定し、特定したスレーブと接続されたスレーブＩＦに対して、スレーブＩＦ選択信号を出力する。さらに、スレーブアクセス制御部５４は、「Ｈ」レベルに活性化したバススタート信号bs_slvをスレーブＩＦへ出力する（図５、図６の（３）に示す）。スレーブアクセス制御部５４は、アドレス信号adr_mstと同じアドレスを表わすアドレス信号adr_slvをスレーブＩＦへ出力する（図５、図６の（４）に示す）（ステップＳ１０３）。
【００４５】
ＣＰＵ２は、「Ｈ」レベルのハイ側バイト制御信号bch_mstおよび「Ｈ」レベルのロウ側バイト制御信号bcl_mstをバス制御部８へ出力する（図５、図６の（５）、（６）に示す）。
【００４６】
スレーブアクセス制御部５４は、アドレスマップ選択部５０で選択されたアドレスマップと、システム制御部１０から受信したバス幅選択信号と、マスタ装置から受信したアドレス信号およびアクセス制御信号に基づいて、アクセス対象のスレーブ装置へのアクセスを分割する必要があるか否か、および分割する必要がある場合に何回分割すべきかを判断する（ステップＳ１０４）。
【００４７】
スレーブアクセス制御部５４は、アクセス分割する場合には、ロウ側バイト制御信号bcl_slvを「Ｈ」レベルに活性化するとともに（図５の（７）に示す）、ハイ側バイト制御信号bch_slvを「Ｌ」レベルに非活性化して（図５の（８）に示す）、スレーブＩＦに出力する。
【００４８】
スレーブＩＦ選択信号を受信したスレーブＩＦ（以下、選択スレーブＩＦ）は、ハイ側バイト制御信号bch_slvが「Ｌ」レベルで、かつロウ側バイト制御信号bcl_slvが「Ｈ」レベルによって、アクセス対象のスレーブ装置からアドレス信号adr_slv（Ａ０）で指定されるアドレスを起点とした８ビットのデータを出力させる。選択スレーブＩＦは、スレーブ装置から出力された８ビットのリードデータrdata_slv[7:0]をスレーブアクセス制御部５４へ出力する（図５の（９）に示す）。さらに、選択スレーブＩＦは、出力が完了後に、完了信号dc_slvをスレーブアクセス制御部５４に出力する（図５の（１０）に示す）（ステップＳ１０５）。
【００４９】
次に、スレーブアクセス制御部５４は、ロウ側バイト制御信号bcl_slvを「Ｌ」レベルに非活性化するとともに（図５の（１１）に示す）、ハイ側バイト制御信号bch_slvを「Ｈ」レベルに活性化して（図５の（１２）に示す）、スレーブＩＦに出力する。
【００５０】
選択スレーブＩＦは、ハイ側バイト制御信号bch_slvが「Ｈ」レベルで、かつロウ側バイト制御信号bcl_slvが「Ｌ」レベルによって、アクセス対象のスレーブ装置からアドレス信号adr_slv（Ａ０）で指定されるアドレスに１を加えたアドレスを起点とした８ビットのデータを出力させる。選択スレーブＩＦは、スレーブ装置から出力された８ビットのリードデータrdata_slv[15:8]をスレーブアクセス制御部５４へ出力する（図５の（１３）に示す）。さらに、選択スレーブＩＦは、出力が完了後に、完了信号dc_slvをスレーブアクセス制御部５４に出力する（図５の（１４）に示す）（ステップＳ１０５）。
【００５１】
スレーブアクセス制御部５４は、選択スレーブＩＦから最初に受け取った８ビットのリードデータrdata_slv[7:0]を下位側とし、後に受け取った８ビットのリードデータrdata_slv[15:8]を上位側とした１６ビットのリードデータrdata_mst[15:0]をＣＰＵ２へ出力する（図５の（１５）に示す）。スレーブアクセス制御部５４は、出力が完了後に、完了信号dc_mstをＣＰＵ２に出力する（図５の（１６）に示す）（ステップＳ１０７）。
【００５２】
一方、スレーブアクセス制御部５４は、アクセス分割しない場合には、ロウ側バイト制御信号bcl_slvを「Ｈ」レベルに活性化するとともに（図６の（１７）に示す）、ハイ側バイト制御信号bch_slvを「Ｈ」レベルに活性化して（図６の（１８）に示す）、スレーブＩＦに出力する。
【００５３】
選択スレーブＩＦは、ハイ側バイト制御信号bch_slvが「Ｈ」レベルで、かつロウ側バイト制御信号bcl_slvが「Ｈ」レベルによって、アクセス対象のスレーブ装置からアドレス信号adr_slv（Ａ０）で指定されるアドレスを起点とした１６ビットのデータを出力させる。選択スレーブＩＦは、スレーブ装置から出力された１６ビットのリードデータrdata_slv[15:0]をスレーブアクセス制御部５４へ出力する（図６の（１９）に示す）。さらに、選択スレーブＩＦは、出力が完了後に、完了信号dc_slvをスレーブアクセス制御部５４に出力する（図６の（２０）に示す）（ステップＳ１０８）。
【００５４】
スレーブアクセス制御部５４は、選択スレーブＩＦから受け取った１６ビットのリードデータrdata_slv[15:0]と同じ１６ビットのリードデータrdata_mst[15:0]をＣＰＵ２へ出力する（図６の（２１）に示す）。スレーブアクセス制御部５４は、出力が完了後に、完了信号dc_mstをＣＰＵ２に出力する（図６の（２２）に示す）（ステップＳ１０９）。
【００５５】
（本発明の実施形態による効果）
以上のように、本発明の実施形態によれば、アドレスマップおよびバス幅選択信号によって、マスタからスレーブへのアクセスを分割するか否かの判断、および分割する場合のアクセス制御をシステムバスに接続されたバス制御部の一箇所で行なう。
【００５６】
これにより、個々のスレーブＩＦ側で上記の判断および制御を行なう場合と比べて、配線の引き回しが少なくなり、回路構成が簡易になる。
【００５７】
また、従来は、このような分割の判断および分割の制御を個々のスレーブＩＦ側に任せることも可能であった。すなわち、従来は、接続するスレーブのアクセスビット幅に応じて、スレーブＩＦ側の処理内容をカスタマイズすることが容易であった。しかし、近年では、スレーブＩＦは、実績のある標準インタフェースとして確立していたり、汎用品として販売されるのが通常となってきていたり、ライセンスに基づいて製作されることが多くなってきているので、スレーブＩＦをカスタマイズするのは容易ではなくなってきている。本発明の実施形態では、スレーブＩＦを作り変えることなく、アクセスビット幅が異なる複数のスレーブへアクセスすることができる。
【００５８】
（変形例）
本発明は、上記の実施形態に限定されるものではない。たとえば、以下のような変形例も含む。
【００５９】
（１）  ライトアクセス
本発明の実施形態では、リードアクセスを例として説明したが、ライトアクセスもリードアクセスと同様の手順で行なわれる。
【００６０】
ライトアクセスの場合に、マスタ装置からのアクセス要求ビット幅が１６ビットで、スレーブのアクセスビット幅が８ビットの場合には、スレーブアクセス制御部５４は、マスタ装置から出力される１６ビットの書込みデータを保持する。スレーブアクセス制御部５４は、保持した書込みデータの下位８ビットをスレーブ装置へ出力し、その後、保持した書込みデータの上位８ビットをスレーブ装置へ出力する。その後、スレーブアクセス制御部５４は、アクセスが完了したことを表わす完了信号dc_mstをマスタへ出力する。
【００６１】
（２）  アクセス分割の別の例
本発明の実施形態では、システムバスの伝送ビット幅と、スレーブバスの伝送ビット幅は、ともに１６ビット幅としたが、これに限定するものではない。
【００６２】
たとえば、システムバスの伝送ビット幅と、スレーブバスの伝送ビット幅は、とともに３２ビット幅、６４ビット幅とすることができる。
【００６３】
図７は、システムバスの伝送ビット幅と、スレーブバスの伝送ビット幅がとともに３２ビット幅の場合における、マスタ装置からのアクセス要求ビット幅と、スレーブ装置のアクセスビット幅と、スレーブ装置へのアクセス回数の関係を表わす図である。
【００６４】
図７に示すように、マスタ装置のアクセス要求ビット幅が３２ビットであり、かつスレーブ装置のアクセスビット幅が３２ビットの場合には、スレーブのアクセス回数は１回となる。
【００６５】
マスタ装置のアクセス要求ビット幅が３２ビットであり、かつスレーブ装置のアクセスビット幅が１６ビットの場合には、スレーブのアクセス回数は２回となる。
【００６６】
マスタ装置のアクセス要求ビット幅が３２ビットであり、かつスレーブ装置のアクセスビット幅が８ビットの場合には、スレーブのアクセス回数は４回となる。
【００６７】
マスタ装置のアクセス要求ビット幅が１６ビットであり、かつスレーブ装置のアクセスビット幅が３２ビットの場合には、スレーブのアクセス回数は１回となる。この場合、スレーブアクセス制御部５４は、３２ビットのアクセス要求を送る。リード時には、スレーブアクセス制御部５４は、スレーブＩＦを介してスレーブから読み出された３２ビットのデータのうち、マスタ装置からのアクセス制御信号に従って指示された１６ビットをマスタ装置へ出力する。
【００６８】
マスタ装置のアクセス要求ビット幅が１６ビットであり、かつスレーブ装置のアクセスビット幅が１６ビットの場合には、スレーブのアクセス回数は１回となる。
【００６９】
マスタ装置のアクセス要求ビット幅が１６ビットであり、かつスレーブ装置のアクセスビット幅が８ビットの場合には、スレーブのアクセス回数は２回となる。
【００７０】
マスタ装置のアクセス要求ビット幅が８ットであり、かつスレーブ装置のアクセスビット幅が３２ビットの場合には、スレーブのアクセス回数は１回となる。この場合、スレーブアクセス制御部５４は、３２ビットのアクセス要求を送る。リード時には、スレーブアクセス制御部５４は、スレーブＩＦを介してスレーブから読み出された３２ビットのデータのうち、マスタ装置からのアクセス制御信号に従って指示された８ビットをマスタ装置へ出力する。
【００７１】
マスタ装置のアクセス要求ビット幅が８ビットであり、かつスレーブ装置のアクセスビット幅が１６ビットの場合には、スレーブのアクセス回数は１回となる。この場合、スレーブアクセス制御部５４は、１６ビットのアクセス要求を送る。リード時には、スレーブアクセス制御部５４は、スレーブＩＦを介してスレーブから読み出された１６ビットのデータのうち、マスタ装置からのアクセス制御信号に従って指示された８ビットをマスタ装置へ出力する。
【００７２】
マスタ装置のアクセス要求ビット幅が８ビットであり、かつスレーブ装置のアクセスビット幅が８ビットの場合には、スレーブのアクセス回数は１回となる。
【００７３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７４】
２  ＣＰＵ、４  ＤＴＣ、６  デバッガ、８  バス制御部、１０  システム制御部、１２  外部バス＿ＩＦ、１４  フラッシュ＿ＩＦ、１６  ＳＲＡＭ＿ＩＦ、１８  周辺ＩＰ＿ＩＦ、２０  ＣＳ＃０空間の機器、２２  ＣＳ＃１空間の機器、２４  ＣＳ＃２空間の機器、２６  フラッシュメモリ、２８  ＳＲＡＭ、３０  周辺ＩＰ＃Ａ、３２  周辺ＩＰ＃Ｂ、３４  周辺ＩＰ＃Ｃ、３６  Ｆ＿ＵＳＥＲ領域、３８  Ｆ＿ＤＡＴＡ領域、４０  Ｆ＿ＵＳＥＲ＿ｂｏｏｔ領域、４２  ＳＲＡＭ＃０領域、４４  ＳＲＡＭ＃１領域、４８  調停部、５０  アドレスマップ選択部、５２  スレーブＩＦ選択部、５４  スレーブアクセス制御部、５８  システムバス、６０−６３  スレーブバス。
【図１】
2012068704.tif 000003
【図２】
2012068704.tif 000004
【図３】
2012068704.tif 000005
【図４】
2012068704.tif 000006
【図５】
2012068704.tif 000007
【図６】
2012068704.tif 000008
【図７】
2012068704.tif 000009