(57)【要約】【課題】複数のバスマスタと複数のバススレーブとの間でデータ転送を調停する半導体装置において、処理効率をいっそう向上させるための技術を提供する。【解決手段】複数のバスマスタと複数のバススレーブとの間のアドレスバスおよびデータバスにおけるデータ転送をバス制御回路が制御する。バス制御回路は、バスマスタが出力するアドレス信号に基づいて、複数のバスマスタのそれぞれがアクセスしているバススレーブを示すアクセス情報を取得する。バス制御回路は、各バススレーブがビジー状態であるか否かを示すビジー情報を取得する。バス制御回路は、複数のバスマスタからバススレーブへのアクセスが競合した場合、アクセス情報と、ビジー情報とに基づいて、各バスマスタからビジー状態でないバススレーブへのアクセスを、各バスマスタに設定された優先順位に従って調停する。【選択図】図５
2016173798.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置であって、
複数のバスマスタと、
複数のバススレーブと、
前記複数のバスマスタと前記複数のバススレーブとに接続され、前記複数のバスマスタと前記複数のバススレーブとの間のアドレス転送およびデータ転送を行うためのバスと、
前記バスを介した前記アドレス転送および前記データ転送を制御するためのバス制御装置とを備え、
前記バス制御装置は、
前記複数のバスマスタが出力するアドレス信号に基づいて、前記複数のバスマスタのそれぞれがアクセスしている前記バススレーブを示すアクセス情報を取得し、各前記バススレーブがビジー状態であるか否かを示すビジー情報を取得し、取得した前記アクセス情報と、取得した前記ビジー情報とに基づいて、各バスマスタからビジー状態でない前記バススレーブへのアクセスを、各バスマスタに設定された優先順位に従って調停する調停部を含む、半導体装置。
【請求項２】
前記バス制御装置は、
前記複数のバスマスタが各前記バススレーブへアクセスするため出力するアドレス信号を受け付けて、受け付けた前記アドレス信号に基づいて各前記バスマスタによる各前記バススレーブへのアクセス状況を示す情報を保持することにより、各前記バススレーブがビジー状態であるか否かを管理し、前記ビジー状態である前記バススレーブを示す情報を前記調停部へ通知するアクセス管理部をさらに含み、
前記調停部が前記ビジー情報を取得することは、前記アクセス管理部から、前記ビジー状態であるバススレーブを示す情報を受け付けることを含む、請求項１に記載の半導体装置。
【請求項３】
前記調停部は、各前記バススレーブから各前記バスマスタへのデータ転送を調停するよう構成されており、前記アクセス状況を示す情報に基づいて、いずれのバススレーブから前記バスマスタへのデータ転送を行うかを調停し、
前記アクセス管理部は、前記調停部による調停結果に基づいて、各前記バスマスタによる各バススレーブへのアクセス状況を示す情報を更新するよう構成されている、請求項２に記載の半導体装置。
【請求項４】
前記アクセス管理部は、各前記バススレーブが受付可能なアクセス数の上限を管理しており、前記ビジー状態である前記バススレーブを示す情報を前記調停部へ通知することは、前記アクセス数の上限に達している前記バススレーブがある場合に、当該上限に達している前記バススレーブがビジー状態であることを示す情報を前記調停部へ通知することを含む、請求項２または３に記載の半導体装置。
【請求項５】
各前記バススレーブは、当該バススレーブがビジー状態である場合に、当該バススレーブが前記ビジー状態であることを示す信号を前記バス制御装置へ出力するよう構成されており、
前記調停部が前記ビジー情報を取得することは、各前記バススレーブから当該バススレーブがビジー状態であることを示す信号を受け付けることを含む、請求項１に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、バスを介して複数のバスマスタと複数のバススレーブとの間でデータを転送する半導体装置に関し、特に、バスを介したアクセスを調停するための技術に関する。
【背景技術】
【０００２】
従来より、バスを介して複数のバスマスタと複数のバススレーブとが接続され、バスマスタからバススレーブへのアクセスを制御する技術が検討されている。例えば、マイクロコンピュータ等の半導体装置は、バスマスタであるプロセッサと、バススレーブである内蔵メモリとをバスに接続し、アドレスアービタ等のアービタを備える。アービタは、バスマスタとバススレーブとの間のトランザクションにおいて、バスにアクセスするバスマスタが競合した場合に、バスマスタの優先順位に従って、バスを介してバススレーブへアクセスするバスマスタを調停する。また、半導体装置は、アドレスバスとデータバスとをそれぞれ独立に備えてデータ転送することができ、命令をout  of  order処理で実行することで、処理の効率を向上させている。
【０００３】
アービタによりバスマスタとバススレーブとの間のバスを介したデータ転送を調停する技術は、様々なものが検討されている。例えば、特開２００６−３３１４２６号公報（特許文献１）は、マスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする技術が記載されている。特許文献１の技術によると、相互接続ブロックは、アドレスアービタ、リードデータアービタ等のアービタを備え、調停ポリシーに従って、複数のバスマスタと複数のバススレーブとの間のデータの転送を調停する。例えば、特許文献１の技術によると、アドレスアービタは、優先順位の高いバスマスタを優先してバスマスタからバススレーブへのアクセス要求を受け付ける。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３３１４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術においては、アービタは、各バスマスタの優先順位に従って、バスマスタとバススレーブとの間のバスを介したデータ転送を調停する。すなわち、アービタは、優先順位の高いバスマスタを優先して、バスマスタとバススレーブとの間でデータ転送をさせている。しかし、この場合、複数のバススレーブのうち、あるバススレーブがビジー状態であっても、優先順位の高いバスマスタから、当該ビジー状態のバススレーブへのアクセス要求があると、他のバスマスタからその他のバススレーブへのアクセス要求があったとしても、優先順位に従ってバスマスタが調停されるため、ビジー状態でないバススレーブへのアクセス要求を受け付けることができない。
【０００６】
そのため、複数のバスマスタと複数のバススレーブとの間でのバスを介したデータ転送を調停する半導体装置において、処理効率をいっそう向上させるための技術が必要とされている。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施形態に従う半導体装置は、複数のバスマスタと、複数のバススレーブとがバスで接続され、複数のバスマスタと複数のバススレーブとの間のアドレス転送およびデータ転送をバス制御装置が制御する。バス制御装置は、複数のバスマスタが出力するアドレス信号に基づいて、複数のバスマスタのそれぞれがアクセスしているバススレーブを示すアクセス情報を取得する。バス制御装置は、各バススレーブがビジー状態であるか否かを示すビジー情報を取得する。バス制御装置は、取得したアクセス情報と、取得したビジー情報とに基づいて、各バスマスタからビジー状態でないバススレーブへのアクセスを、各バスマスタに設定された優先順位に従って調停する。
【発明の効果】
【０００９】
一実施の形態に従う半導体装置によると、バス制御装置が各バスマスタから各バススレーブへのアクセス情報と、各バススレーブのビジー状況と、各バスマスタの優先順位とに基づいて、ビジー状態でないバススレーブへ優先順位が高いバスマスタがアクセスするよう制御することができ、処理の効率をいっそう向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態の半導体装置１０の構成を示すブロック図である。
【図２】バス制御回路５０の詳細な構成を示す図である。
【図３】バスを介したバスマスタとバススレーブとの間のデータの転送をバス制御回路５０が調停する場合の動作例を示す図である。
【図４】関連技術として、バススレーブがビジー状態であるか否かにかかわらずバスマスタの優先順位のみに基づいてバスの調停を行う場合のバス制御回路の動作例を示す図である。
【図５】本実施形態において、各バスマスタから各バススレーブへのアクセス情報と、各バススレーブのビジー状況と、各バスマスタの優先順位とに基づいて、ビジー状態でないバススレーブへ優先順位が高いバスマスタがアクセスするよう制御するバス制御回路５０の動作例を示す。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１２】
＜実施の形態１＞
図面を参照して実施の形態の半導体装置について説明する。
【００１３】
＜半導体装置の構成＞
図１は、実施の形態の半導体装置１０の構成を示すブロック図である。図１に示すように、半導体装置１０は、複数のバスマスタ（例えば、第１のＣＰＵ（Central  Processing  Unit）２１、第２のＣＰＵ２２、ＤＳＰ（Digital  Signal  Processor）２３、ＤＭＡＣ（Direct Memory  Access  controller）２４、およびその他の装置）を含むバスマスタ２０と、複数のバススレーブ（例えば、ＲＯＭ(Read  Only  Memory）３１、ＲＡＭ（Random  Access  Memory）３２、ＴＩＭ（タイミング信号出力回路）３３、Ｓｅｒｉａｌ（シリアル通信モジュール）３４、およびその他の装置）を含むバススレーブ３０と、バス４０と、バス制御回路５０とを含む。第１のＣＰＵ２１と第２のＣＰＵ２２とは、半導体装置１０の動作を制御する。
【００１４】
バス４０は、バスマスタ２０とバススレーブ３０とが接続され、複数のバスマスタと複数のバススレーブとの間のアドレス転送およびデータ転送を行うためのデータの転送経路として機能する。バス４０は、アドレスバス４１とデータバス４２とを含む。アドレスバス４１は、各バスマスタが各バススレーブにアクセスするためのアドレス信号を転送するためのバスである。データバス４２は、各バスマスタと各バススレーブとでデータを転送するためのバスである。
【００１５】
バス制御回路５０は、バス４０を介した複数のバスマスタと複数のバススレーブとの間のアドレス転送およびデータ転送を制御する。具体的には後述するが、バス制御回路５０は、複数のバスマスタが出力するアドレス信号に基づいて、複数のバスマスタのそれぞれがアクセスしているバススレーブを示すアクセス情報を取得する。また、バス制御回路５０は、各バススレーブがビジー状態であるか否かを示すビジー情報を取得する。バス制御回路５０は、アクセス情報と、ビジー情報とに基づいて、各バスマスタから、ビジー状態でないバススレーブへのアクセスを、各バスマスタに設定された優先順位に従って調停する。すなわち、バス制御回路５０は、優先順位が最も高いバスマスタがアクセスしようとしているバススレーブがビジー状態である場合、順次、バススレーブがビジー状態であるか判定し、バススレーブがビジー状態でない場合に、そのバスマスタとバススレーブとがデータを転送するよう調停する。
【００１６】
図２は、バス制御回路５０の詳細な構成を示す図である。図２に示すように、バス制御回路５０は、マルチプレクサ６０と、第１のアドレスデコーダ６１と、第２のアドレスデコーダ６２と、アドレスアービタ６３と、デマルチプレクサ６４と、スレーブアクセス情報管理部６５と、ＩＤデコーダ７１と、データアービタ７２と、マルチプレクサ７３と、デマルチプレクサ７４とを含む。図２の例では、複数のバスマスタの例として、第１のバスマスタと第２のバスマスタとがバス４０を介してバススレーブへアクセスする際に競合が発生すると、いずれかを優先してバススレーブへとアクセスさせるよう調停する例を示すが、バスマスタの数は２つの限られず、３つ以上であってもよい。この場合、バスマスタの数に併せてアドレスデコーダ（図２では、２つのバスマスタにあわせて２つのアドレスデコーダ（第１のアドレスデコーダ６１および第２のアドレスデコーダ６２）を示している）を設けることとしてもよい。
【００１７】
まず、主にアドレスバス４１におけるアクセスの競合を調停するための構成を説明する。各バスマスタからのアドレス信号は、バススレーブの指定と、データ処理のためのアドレスとを含む。各バスマスタからのアドレス信号は、マルチプレクサ６０へ入力される。マルチプレクサ６０は、アドレスアービタ６３の調停に従って、各バスマスタが出力するアドレス信号のいずれかをデマルチプレクサ６４へ出力する。
【００１８】
第１のアドレスデコーダ６１は、第１のバスマスタのリードアドレスを示す第１のマスタリードアドレス２１ＲＡに含まれるアドレスをデコードし、デコード結果（信号Ｍ１  ＡＤＤＲ）をアドレスアービタ６３およびスレーブアクセス情報管理部６５へ出力する。第２のアドレスデコーダ６２は、第２のバスマスタのリードアドレスを示す第２のマスタリードアドレス２２ＲＡに含まれるアドレスをデコードし、デコード結果（信号Ｍ２  ＡＤＤＲ）をアドレスアービタ６３およびスレーブアクセス情報管理部６５へ出力する。
【００１９】
アドレスアービタ６３は、複数のバスマスタからバススレーブへのアクセスが競合する場合に、各バスマスタに予め設定される優先順位に基づいてアクセスを調停する。アドレスアービタ６３は、スレーブアクセス情報管理部６５から、ビジー状態であるバススレーブを示す信号（信号Ｓ＃  Ｂｕｓｙ）を受け付ける。アドレスアービタ６３は、どのバスマスタを優先するか、予め優先順位の設定を保持している。アドレスアービタ６３は、各バスマスタからバススレーブへのアクセスが競合する場合に、優先順位が高いバスマスタがアクセスしようとするバススレーブがビジー状態でなければ、当該優先順位が高いバスマスタとバススレーブとの間でデータ転送を行うようマルチプレクサ６０の出力を調停する（信号Ｍ＃）。アドレスアービタ６３は、優先順位が高いバスマスタがアクセスしようとするバススレーブがビジー状態である場合、次に優先順位が高いバスマスタがアクセスしようとするバススレーブがビジー状態であるか否か判定し、ビジー状態でなければ、当該バスマスタとバススレーブとの間でデータ転送を行うよう調停する。
【００２０】
スレーブアクセス情報管理部６５は、各バスマスタが行っている、バス４０を介したバススレーブへのアクセス状況を管理する。スレーブアクセス情報管理部６５は、第１のアドレスデコーダ６１および第２のアドレスデコーダ６２から、各バスマスタがアクセスするアドレス信号のデコード結果を受け付けて、各バスマスタによる各バススレーブへのアクセス状況を保持する。スレーブアクセス情報管理部６５は、複数のバスマスタからそれぞれアドレス信号のデコード結果を受け付けることで、どのバスマスタがどのバススレーブへアクセスしようとしているかを管理する。また、スレーブアクセス情報管理部６５は、各バススレーブが受付可能なアクセス数の上限の情報を保持する。スレーブアクセス情報管理部６５は、アクセス数の上限に達しているバススレーブがある場合、そのバススレーブがアクセス数の上限に達してビジー状態であることをアドレスアービタ６３へ通知する。これによりアドレスアービタ６３はビジー状態でないバススレーブにアクセスするバスマスタを優先する等の処理を行うことができる。
【００２１】
このように、各バスマスタが出力するアドレス信号は、マルチプレクサ６０からデマルチプレクサ６４へ送られる。スレーブアクセス情報管理部６５は、デマルチプレクサ６４がマルチプレクサ６０から受け付けたアドレス信号を出力する出力先となるバススレーブを指定することで、デマルチプレクサ６４の出力を制御する。
【００２２】
マルチプレクサ６０から出力されるアドレス信号は、ＩＤ値（信号ＡＲ＿ＩＤ）を含む。例えば、各バスマスタにそれぞれ単一のＩＤ値が割り振られている場合、各バスマスタは、アドレス信号に、割り当てられているＩＤ値を含める。すなわち、ＩＤ値は、トランザクションを識別する情報を含む。また、あるバスマスタが複数のＩＤ値を使用する場合、特定のバスマスタのトランザクションをより細かく分類することができる。マルチプレクサ６０から出力されるアドレス信号に含まれるＩＤ値は、スレーブアクセス情報管理部６５とＩＤデコーダ７１とに入力される。
【００２３】
スレーブアクセス情報管理部６５は、マルチプレクサ６０より受け付ける各ＩＤ値と、デマルチプレクサ６４に対して出力先として指定したバススレーブの情報とを対応付けて、トランザクションが完了するまで保持する。具体的には、スレーブアクセス情報管理部６５は、マルチプレクサ６０から出力されるアドレス信号に含まれる各ＩＤ値について、例えばＦＩＦＯ（First  In  First  Out）バッファを確保しており、各ＩＤ値のＦＩＦＯバッファに、デマルチプレクサ６４に対して出力先として指定したバススレーブ（信号Ｓ＃）の情報を格納する。ＦＩＦＯバッファに格納された情報は、データアービタ７２によって取り出される。
【００２４】
なお、バススレーブがビジー状態であることをスレーブアクセス情報管理部６５がアドレスアービタ６３へ通知するために、バススレーブがビジー状態であると判定する基準は様々変更可能であるとしてもよい。例えば、各バススレーブが受付可能なアクセス数の上限を固定してもよいし、設定可能としてもよい。また、スレーブアクセス情報管理部６５は、半導体装置１０の動作周波数の設定に連動して、各バススレーブが受付可能なアクセス数を設定することとしてもよい。
【００２５】
次に、データバス４２におけるデータ転送のアクセスの競合を調停する構成を説明する。データバス４２において、マルチプレクサ７３は、各バススレーブ（図２では、第１のスレーブリードデータ３１ＲＤと第２のスレーブリードデータ３２ＲＤの２つのバススレーブの例を示す）からのデータ転送を受け付ける。
【００２６】
データアービタ７２は、バススレーブを指定する信号（信号Ｓ＃）をマルチプレクサ７３へ出力することにより、マルチプレクサ７３がいずれのバススレーブからのデータをデマルチプレクサ７４へ転送するかを制御する。データアービタ７２は、スレーブアクセス情報管理部６５が保持する情報を参照することにより、どのバススレーブのデータをマルチプレクサ７３がデマルチプレクサ７４へ転送するかを制御する。
【００２７】
スレーブアクセス情報管理部６５は、各ＩＤ値と対応付けてデマルチプレクサ６４の出力先としたバススレーブの情報（信号Ｓ＃）を保持している。データアービタ７２は、スレーブアクセス情報管理部６５に保持される情報のうち、いずれのＩＤ値からのデータ転送を優先するかを示す調停ポリシーを保持し、調停ポリシーに従ってマルチプレクサ７３の出力を制御する。例えば、ＩＤ値が各バスマスタと対応づけられている場合、データアービタ７２は、バスマスタの優先順位に従って、ＩＤ値に対応付けられたバススレーブ（信号Ｓ＃）を指定してマルチプレクサ７３の出力を制御する。
【００２８】
マルチプレクサ７３は、データアービタ７２の調停により、各バススレーブから入力されるデータのいずれかをデマルチプレクサ７４へ出力する。マルチプレクサ７３が出力するデータは、いずれのトランザクションに対する応答であるかを示す送信先のバスマスタを識別する情報（トランザクションを識別する情報）（信号Ｒ＿ＩＤ）を含む。
【００２９】
ＩＤデコーダ７１は、マルチプレクサ７３から出力されるデータに含まれる、トランザクションの発行元のバスマスタを示す情報を含む信号（信号Ｒ＿ＩＤ）を受け付ける。また、ＩＤデコーダ７１は、アドレスアービタ６３から、マルチプレクサ６０の出力の調停結果としていずれのバスマスタの出力を優先したかを示す情報（信号Ｍ＃）と、マルチプレクサ６０からデマルチプレクサ６４へ転送されるデータに含まれるＩＤ値（信号ＡＲ＿ＩＤ）とを対応付けてテーブルに保持する。ＩＤデコーダ７１は、マルチプレクサ７３が出力するデータに含まれる、トランザクションを識別する情報（信号Ｒ＿ＩＤ）に基づいて、ＩＤデコーダ７１で保持するテーブルを検索することにより、トランザクションの発行元であるバスマスタを特定し、特定したバスマスタを示す信号（信号Ｍ＃）をデマルチプレクサ７４へ出力する。
【００３０】
デマルチプレクサ７４は、ＩＤデコーダ７１の調停に従って、マルチプレクサ７３から転送されるデータを、各バスマスタ（図２では第１のマスタリードアドレス２１ＲＤと第２のマスタリードアドレス２２ＲＤの２つを示す）のいずれかへ出力する。
【００３１】
バス制御回路５０は、このような構成を含むことにより、各バスマスタから各バススレーブへのアクセス情報と、各バススレーブのビジー状況と、各バスマスタの優先順位とに基づいて、ビジー状態でないバススレーブへ優先順位が高いバスマスタがアクセスするよう制御することができ、処理の効率をいっそう向上させることができる。
【００３２】
＜動作例＞
図３から図５を参照して、各バスマスタから各バススレーブへのアクセスを調停する動作の例を説明する。図３から図５において、信号ＣＬＫは、クロック信号の波形を示す。また、複数のバスマスタとして、バスマスタ「Ｍ１」とバスマスタ「Ｍ２」との２つのバスマスタが各バススレーブへアクセスする例を示す。バスマスタ「Ｍ１」は、バスマスタ「Ｍ２」よりも優先順位が高く設定されている。また、図３から図５において、複数のバススレーブとして、バススレーブ「Ｓ１」とバススレーブ「Ｓ２」とが各バスマスタからアクセスを受け付ける例を示す。また、図３から図５において、記号「Ａ」は、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へのアクセスを示す。記号「Ｂ」は、バスマスタ「Ｍ２」からバススレーブ「Ｓ２」へのアクセスを示す。また、記号「ＡＤＤＲ」は、アドレスバス４１を介したデータ転送を示し、記号「ＲＤＡＴＡ」は、データバス４２を介したリードデータの転送を示す。また、各バスマスタからバススレーブ「Ｓ１」へのデータ転送におけるウェイト数は３ウェイトに設定され、各バスマスタからバススレーブ「Ｓ２」へのデータ転送におけるウェイト数は１ウェイトに設定されている。
【００３３】
図３は、バスを介したバスマスタとバススレーブとの間のデータの転送をバス制御回路５０が調停する場合の動作例を示す図である。
【００３４】
図３に示すように、タイミングｔ３１において、アドレスバス４１を介したバスマスタ（バスマスタ「Ｍ１」とバスマスタ「Ｍ２」）からバススレーブへのアクセスが競合している。アドレスアービタ６３とスレーブアクセス情報管理部６５とは、各バスマスタの優先順位に従って、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へのアドレス信号の転送を優先するよう各バスマスタから各バススレーブへのアクセスを調停する。バスマスタ「Ｍ１」は、アドレスバス４１を介してバススレーブ「Ｓ１」へアドレス信号を転送した後、３ウェイト待機して、バススレーブ「Ｓ１」からアドレスバス４１を介してデータを受け取る。
【００３５】
タイミングｔ３２において、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へのアドレス信号の転送が完了することにより、バスマスタ「Ｍ１」の次に優先順位が高いバスマスタ「Ｍ２」が、アドレスバス４１を介してアドレス信号をバススレーブ「Ｓ２」へ転送する。バスマスタ「Ｍ２」は、アドレスバス４１を介してバススレーブ「Ｓ２」へアドレス信号を転送した後、１ウェイト待機して、バススレーブ「Ｓ２」からアドレスバス４１を介してデータを受け取る。
【００３６】
タイミングｔ３３において、バスマスタ「Ｍ１」とバスマスタ「Ｍ２」とはアクセスが競合しない。そのためバススレーブ「Ｓ２」からバスマスタ「Ｍ２」へ、データバス４２を介してデータが転送される。
【００３７】
タイミングｔ３４において、バススレーブ「Ｓ１」からバスマスタ「Ｍ１」へ、データバス４２を介してデータが転送される。
【００３８】
ここで、比較のため、関連技術として、実施の形態で説明したような構成によらず、バスマスタの優先順位のみに基づいてバス制御回路がバスの調停を行う場合について説明する。
【００３９】
図４は、関連技術として、バススレーブがビジー状態であるか否かにかかわらずバスマスタの優先順位のみに基づいてバスの調停を行う場合のバス制御回路の動作例を示す図である。
【００４０】
タイミングｔ４１において、アドレスバス４１を介したバスマスタ（バスマスタ「Ｍ１」とバスマスタ「Ｍ２」）からバススレーブへのアクセスが競合している。この場合、関連技術におけるバス制御回路は、各バスマスタの優先順位に従って、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へのアドレス信号の転送を優先するよう調停する。
【００４１】
タイミングｔ４２において、バスマスタ「Ｍ１」は、新たにバススレーブ「Ｓ１」へアクセスするためのトランザクションを発行する。しかし、バススレーブ「Ｓ１」は、タイミングｔ４１におけるバスマスタ「Ｍ１」からのアクセスを受け付けてＢｕｓｙ状態となっており、タイミングｔ４２においてバススレーブ「Ｓ２」へアクセスすることができない。
【００４２】
タイミングｔ４３において、バススレーブ「Ｓ１」のＢｕｓｙ状態が解消する。バス制御回路は、各バスマスタの優先順位に従って、バスマスタ「Ｍ１」を優先してバスマスタ「Ｍ１」からバススレーブ「Ｓ１」へアドレス信号を転送させる。
【００４３】
タイミングｔ４４において、バス制御回路は、バスマスタ「Ｍ２」からバススレーブ「Ｓ２」へアドレス信号を転送させる。
【００４４】
このように、関連技術においては、各バススレーブがビジー状態であるか否かにかかわらず、各バスマスタの優先順位のみに基づいてバスの調停を行っているため、優先順位の高いバスマスタ（バスマスタ「Ｍ１」）からのアクセスがあると、例えばタイミングｔ４２からタイミングｔ４３までの期間のように、他のバスマスタ（バスマスタ「Ｍ２」）から他のバススレーブへのアクセスを受け付けることができず、処理性能が低下しうる。
【００４５】
図５は、本実施形態において、各バスマスタから各バススレーブへのアクセス情報と、各バススレーブのビジー状況と、各バスマスタの優先順位とに基づいて、ビジー状態でないバススレーブへ優先順位が高いバスマスタがアクセスするよう制御するバス制御回路５０の動作例を示す。
【００４６】
タイミングｔ５１において、アドレスバス４１を介したバスマスタ（バスマスタ「Ｍ１」とバスマスタ「Ｍ２」）からバススレーブへのアクセスが競合している。アドレスアービタ６３とスレーブアクセス情報管理部６５とは、各バスマスタの優先順位に従って、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へのアドレス信号の転送を優先するよう各バスマスタから各バススレーブへのアクセスを調停する。
【００４７】
タイミングｔ５２において、バスマスタ「Ｍ１」は、新たにバススレーブ「Ｓ１」へアクセスするためのトランザクションを発行する。しかし、バススレーブ「Ｓ１」はビジー状態であるため、スレーブアクセス情報管理部６５からアドレスアービタ６３に対し、バススレーブ「Ｓ１」がビジー状態であることを示す信号（信号Ｓ１  Ｂｕｓｙ）が出力される。アドレスアービタ６３は、スレーブアクセス情報管理部６５から出力される信号（信号Ｓ１  Ｂｕｓｙ）を受け付けて、Ｂｕｓｙ状態でないバススレーブへアクセスするバスマスタを指定するようマルチプレクサ６０の出力を制御する。すなわち、アドレスアービタ６３は、マルチプレクサ６０に対し、ビジー状態でないバススレーブ「Ｓ２」へアクセスするバスマスタであるバスマスタ「Ｍ２」からのアドレス信号をデマルチプレクサ６４へ出力するよう制御する。これにより、タイミングｔ５２からタイミングｔ５３までの間に、バスマスタ「Ｍ２」からバススレーブ「Ｓ２」へアクセスするトランザクションが実行される。
【００４８】
タイミングｔ５３において、バススレーブ「Ｓ１」のビジー状態が解消するため、アドレスアービタ６３とスレーブアクセス情報管理部６５とは、バスマスタ「Ｍ１」からバススレーブ「Ｓ１」へアドレス信号を転送するよう調停する。
【００４９】
＜実施の形態１のまとめ＞
実施の形態１の半導体装置１０によると、マスタ／スレーブ間のトランザクションで、アドレスアービタ、リードデータアービタ、ライトデータアービタを独立に備え、Out  of  orderで処理を実行することが可能なシステムにおいて、アドレスアービタが、アドレスをデコードしたデコード情報、各スレーブがビジー状態であるかを示すビジー情報に基づいてバスの調停を行う。これにより、あるスレーブがビジー状態のときにおいても、ビジー状態でないスレーブに対しマスタがバスアクセスを行うことが可能となり、バス全体としていっそうの性能向上を図ることができる。
【００５０】
＜実施の形態２＞
実施の形態１では、アドレスアービタ６３は、各バススレーブがビジー状態であるか否かを、スレーブアクセス情報管理部６５から出力される信号に基づき取得する。各バススレーブがビジー状態であるか否かを示すビジー情報をアドレスアービタ６３が取得する構成はこれに限られない。
【００５１】
例えば、実施の形態２において、各バススレーブは、ビジー状態である場合に、ビジー状態であることを示す信号を出力する。アドレスアービタ６３は、各バススレーブからビジー状態であることを示す信号を受け付ける。こうすることで、実施の形態２によると、スレーブアクセス情報管理部６５において各バススレーブへのアクセス数の上限を管理しない場合においても、各バススレーブからビジー状態であることを示す信号を受け付けて、ビジー状態でないバススレーブに対しバスマスタがアクセスを行うことができるよう調停することができ、処理の効率をいっそう向上させることができる。
【００５２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５３】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００５４】
１０  半導体装置、２０  バスマスタ、２１  第１のＣＰＵ、２２  第２のＣＰＵ、２３  ＤＳＰ、２４  ＤＭＡＣ、３０  バススレーブ、３２  ＲＡＭ、３１  ＲＯＭ、３３  ＴＩＭ、３４  Ｓｅｒｉａｌ、４０  バス、４１  アドレスバス、４２  データバス、５０  バス制御回路、６０  マルチプレクサ、６１  第１のアドレスデコーダ、６２  第２のアドレスデコーダ、６３  アドレスアービタ、６４  デマルチプレクサ、６５  スレーブアクセス情報管理部、７１  ＩＤデコーダ、７２  データアービタ、７３  マルチプレクサ、７４  デマルチプレクサ。
【図１】
2016173798.tif 000003
【図２】
2016173798.tif 000004
【図３】
2016173798.tif 000005
【図４】
2016173798.tif 000006
【図５】
2016173798.tif 000007