(57)【要約】【課題】複数のマスタに対して、各マスタが発行する命令のひとまとまりからなる命令群単位で、バス使用権を与える。【解決手段】複数のマスタ（２０Ａ，２０Ｂ）のうちバス使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令をバス（３０）に供給する命令供給制御装置（１０Ａ）として、前記選択したマスタから発行された命令のひとまとまりからなる命令群の終了を検出する命令群終了検出部（１１Ａ，１１Ｂ）と、前記命令群終了検出部（１１Ａ，１１Ｂ）によって命令群の終了が検出されるまで、前記選択したマスタにバス使用権を与える調停部（１２）とを備えたものとする。【選択図】図１
2005063358.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタのうちバス使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令を前記バスに供給する命令供給制御装置であって、
前記選択したマスタから発行された命令のひとまとまりからなる命令群の終了を検出する命令群終了検出部と、
前記命令群終了検出部によって命令群の終了が検出されるまで、前記選択したマスタにバス使用権を与える調停部とを備えた
ことを特徴とする命令供給制御装置。
【請求項２】
請求項１に記載の命令供給制御装置において、
前記複数のマスタのそれぞれから発行された命令は、命令群の終了であるか否かを示す命令終了ビットを含むものであり、
前記命令群終了検出部は、前記命令終了ビットが所定値のとき、当該命令群の終了を検出する
ことを特徴とする命令供給制御装置。
【請求項３】
請求項１に記載の命令供給制御装置において、
前記複数のマスタのそれぞれから発行された命令を蓄積するバッファ部を備え、
前記調停部は、前記命令群終了検出部によって命令群の終了が検出されたとき、前記バッファ部に蓄積された命令を読み出して前記バスに供給し、当該命令の発行元であるマスタのバス使用権を解放する
ことを特徴とする命令供給制御装置。
【請求項４】
請求項３に記載の命令供給制御装置において、
二つのマスタについて、それぞれのマスタから発行された命令を前記バスに供給するものであり、
前記バッファ部は、一方のマスタから発行された命令を先頭アドレスからアドレス増加方向に蓄積する一方、他方のマスタから発行された命令を終端アドレスからアドレス減少方向に蓄積するＦＩＦＯを有する
ことを特徴とする命令供給制御装置。
【請求項５】
請求項３に記載の命令供給制御装置において、
前記バッファ部は、当該バッファ部の有効記憶領域を調節するためのレジスタを有する
ことを特徴とする命令供給制御装置。
【請求項６】
少なくとも一つの内部マスタと、内部バスと、当該内部バスに接続された少なくとも一つの機能ブロックとを備えた半導体装置であって、
当該半導体装置に接続された複数の外部マスタのうち、当該半導体装置内部へのアクセス権を与えるものを適宜選択するインタフェース部と、
前記少なくとも一つの内部マスタおよび前記インタフェース部によって選択された外部マスタのうち内部バス使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令を前記内部バスに供給する命令供給制御装置とを備え、
前記命令供給制御装置は、
前記選択したマスタから発行された命令のひとまとまりからなる命令群の終了を検出する命令群終了検出部と、
前記命令群終了検出部によって命令群の終了が検出されるまで、前記選択したマスタに内部バス使用権を与える調停部とを有するものであり、
前記インタフェース部は、
前記命令群終了検出部によって、前記選択した外部マスタから発行された命令群の終了が検出されるまで、当該外部マスタに当該半導体装置内部へのアクセス権を与えるものである
ことを特徴とする半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
前記少なくとも一つの内部マスタおよび前記インタフェース部によって選択された外部マスタのそれぞれから発行された命令は、命令群の終了であるか否かを示す命令終了ビットを含むものであり、
前記命令群終了検出部は、前記命令終了ビットが所定値のとき、当該命令群の終了を検出する
ことを特徴とする半導体装置。
【請求項８】
請求項６に記載の半導体装置において、
前記内部マスタおよび前記インタフェース部によって選択された外部マスタのそれぞれから発行された命令を蓄積するバッファ部を備え、
前記調停部は、前記命令群終了検出部によって命令群の終了が検出されたとき、前記バッファ部に蓄積された命令を読み出して前記内部バスに供給し、当該命令の発行元であるマスタの内部バス使用権を解放する
ことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスタ処理装置（以下、「マスタ」と称する）間のバス使用権の優先順位を制御する命令供給制御装置に関するものであり、特に、一のバスに接続された複数の機能ブロックに対して二つ以上のマスタが命令を発行するようなシステムに好適な命令供給優先順位の制御技術に属する。
【背景技術】
【０００２】
複数のマスタに対するバス調停に関して、従来は、バスの優先度を決める際にバス調停時の無為保留時間を考慮してプログラムを実行する際の実行時間の差異を少なくするといった方法がとられている。図１０は、従来のバス使用優先順位制御装置の構成図である。当該装置によると、各マスタ２０―１〜２０―Ｎにおけるバス獲得の調停時における無為保留期間の累積値を第１のレジスタ４２で求め、これを第２のレジスタ４３に格納されている基準値と比較回路４４で比較する。そして、この比較結果で累積値の方が基準値よりも大きくなっているときには、そのマスタ２０がバスを獲得する際の優先順位を上げるようになっている。これにより、バスの各録に要する時間をマスタ間で差異の小さいものにしている（たとえば、特許文献１参照）。
【特許文献１】特開平６―９６０１４号公報（第５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のバス調停技術では、各マスタブロックが発行する命令のひとまとまりからなる命令群の処理の途中で、バス使用権が他のマスタに移ってしまうおそれがある。命令群は、それに含まれる各命令が逐次的・連続的に実行されて初めて有意義な結果をもたらすものであり、各マスタにとって実質的な処理単位である。したがって、命令群の処理中にバス使用権が他のマスタに移ってしまったのでは、当該命令群を発行したマスタは当該命令群の処理結果を得るまでに比較的長い時間がかかってしまい、システム全体としての処理効率が悪くなる。また、連続的な命令実行が要求される命令群の場合、処理の中断は致命的なシステムエラーになりかねない。
【０００４】
上記問題に鑑み、本発明は、複数のマスタのうちバス使用権を与えるものを適宜選択して、当該選択したマスタから発行された命令をバスに供給する命令供給制御装置について、命令群単位でバス使用権を切り換えるようにして、各マスタから発行される命令群処理の逐次性・連続性を保証することを課題とする。さらに、このような命令供給制御装置を備え、外部に接続された複数のマスタに対して命令群単位でアクセス権を切り替え可能な半導体装置の提供を課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために本発明が講じた手段は、複数のマスタのうちバス使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令を前記バスに供給する命令供給制御装置として、前記選択したマスタから発行された命令のひとまとまりからなる命令群の終了を検出する命令群終了検出部と、前記命令群終了検出部によって命令群の終了が検出されるまで、前記選択したマスタにバス使用権を与える調停部とを備えたものとする。
【０００６】
これによると、命令群終了検出部によって、バス使用権を有するマスタから発行された命令からなる命令群の終了が検出される。一方、調停部は、命令群の終了が検出されるまで当該マスタにバス使用権を与え続ける。すなわち、命令群の終了が検出されるまで他のマスタにバス使用権が移ることはない。これにより、バス使用権を命令群単位で切り替えることができ、各マスタから発行される命令群処理の逐次性・連続性が保証される。
【０００７】
具体的には、前記複数のマスタのそれぞれから発行された命令は、命令群の終了であるか否かを示す命令終了ビットを含むものであり、また、前記命令群終了検出部は、前記命令終了ビットが所定値のとき、当該命令群の終了を検出するものとする。
【０００８】
そして、好ましくは、前記命令供給制御装置は、前記複数のマスタのそれぞれから発行された命令を蓄積するバッファ部を備え、前記調停部は、前記命令群終了検出部によって命令群の終了が検出されたとき、前記バッファ部に蓄積された命令を読み出して前記バスに供給し、当該命令の発行元であるマスタのバス使用権を解放するものとする。
【０００９】
このように各マスタから発行された命令を蓄積するバッファ部を備えることによって、バス使用権が移った際、当該バス使用権を得たマスタから発行された命令をバッファ部から迅速に読み出すことができ、処理の高速化が図れる。
【００１０】
より好ましくは、前記命令供給制御装置は、二つのマスタについて、それぞれのマスタから発行された命令を前記バスに供給するものであり、前記バッファ部は、一方のマスタから発行された命令を先頭アドレスからアドレス増加方向に蓄積する一方、他方のマスタから発行された命令を終端アドレスからアドレス減少方向に蓄積するＦＩＦＯを有するものとする。
【００１１】
このように二つのマスタに共通のＦＩＦＯに命令を蓄積するようにすることによって、二つのマスタのそれぞれに専用のバッファを設けるよりも、より効率よくメモリ領域を使用することができる。
【００１２】
また、より好ましくは、前記バッファ部は、当該バッファ部の有効記憶領域を調節するためのレジスタを有するものとする。
【００１３】
このようにバッファ部の有効記憶領域を調節可能にすることによって、命令の特性に応じて、当該命令の実行方法を変更することができる。たとえば、大量の命令の一括処理が重視される場合には、有効記憶領域を大きくして、バッファ部に大量の命令を蓄積しておき、その大量の命令を一度にバスに供給するようにすることができる。また、命令実行の連続性が重視される場合には、有効記憶領域を小さくして、バッファ部に命令がほとんど蓄積されないようにしておき、マスタから命令が発行される都度、当該命令をバスに供給するようにできる。
【００１４】
また、本発明が講じた手段は、少なくとも一つの内部マスタと、内部バスと、当該内部バスに接続された少なくとも一つの機能ブロックとを備えた半導体装置として、当該半導体装置に接続された複数の外部マスタのうち、当該半導体装置内部へのアクセス権を与えるものを適宜選択するインタフェース部と、前記少なくとも一つの内部マスタおよび前記インタフェース部によって選択された外部マスタのうち内部バス使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令を前記内部バスに供給する命令供給制御装置とを備えたものとする。そして、前記命令供給制御装置は、前記選択したマスタから発行された命令のひとまとまりからなる命令群の終了を検出する命令群終了検出部と、前記命令群終了検出部によって命令群の終了が検出されるまで、前記選択したマスタに内部バス使用権を与える調停部とを有するものとする。また、前記インタフェース部は、前記命令群終了検出部によって、前記選択した外部マスタから発行された命令群の終了が検出されるまで、当該外部マスタに当該半導体装置内部へのアクセス権を与えるものとする。
【００１５】
これによると、外部マスタに対して、半導体装置内部へのアクセス権、すなわち、内部バスの使用権を命令群単位で切り替えることができる。したがって、外部マスタについても、各外部マスタが発行する命令群の処理の逐次性・連続性が保証される。
【００１６】
具体的には、前記少なくとも一つの内部マスタおよび前記インタフェース部によって選択された外部マスタのそれぞれから発行された命令は、命令群の終了であるか否かを示す命令終了ビットを含むものであり、前記命令群終了検出部は、前記命令終了ビットが所定値のとき、当該命令群の終了を検出するものとする。
【００１７】
そして、好ましくは、前記半導体装置は、前記内部マスタおよび前記インタフェース部によって選択された外部マスタのそれぞれから発行された命令を蓄積するバッファ部を備え、前記調停部は、前記命令群終了検出部によって命令群の終了が検出されたとき、前記バッファ部に蓄積された命令を読み出して前記内部バスに供給し、当該命令の発行元であるマスタの内部バス使用権を解放するものとする。
【発明の効果】
【００１８】
上記のように本発明によると、命令群単位で各マスタのバス使用権を切り替えることができる。これにより、各マスタから発行される命令群処理の逐次性・連続性が保証され、システム全体としてのパフォーマンスが向上する。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る命令供給制御装置を備えたシステムの概略構成を示す。本実施形態に係る命令供給制御装置１０Ａは、マスタ２０Ａおよび２０Ｂのうちバス３０の使用権を与えるものを適宜選択し、当該選択したマスタから発行された命令をバス３０に供給する。バス３０には、スレーブとしての機能ブロック４０Ａおよび４０Ｂが接続されており、各マスタ２０Ａおよび２０Ｂは、命令供給制御装置１０Ａによってバス３０の使用権を与えられることによって、機能ブロック４０Ａおよび４０Ｂにアクセス可能となる。なお、バス３０は、内部バスおよび外部バスのいずれであってもよい。また、内部バス３０に接続される機能ブロックの個数は任意である。
【００２１】
命令供給制御装置１０Ａは、各マスタ２０Ａおよび２０Ｂから発行された命令群の終了を検出する命令群終了検出部としてのデコーダ１１Ａおよび１１Ｂと、バス使用権を調停する調停部１２と、各マスタ２０Ａおよび２０Ｂから発行された命令を一時的に蓄積するバッファ部１３Ａおよび１３Ｂとを備えている。図２は、命令供給制御装置１０Ａの内部構成を示す。以下、図２を参照しながら、命令供給制御装置１０Ａの構成について説明する。
【００２２】
デコーダ１１Ａおよび１１Ｂは、それぞれ、マスタ２０Ａおよび２０Ｂが発行する命令コードＩＮＳを順次入力してデコードし、命令群の終了を検出したとき、アサート信号ＡＳＳを出力する。ここで、図３に示すように、命令コードＩＮＳのＭＳＢ（most significant bit）は、当該命令が命令群の終了であるか否かを示すための命令終了ビットとして割り当てられている。したがって、デコーダ１１Ａおよび１１Ｂは、デコードした命令コードＩＮＳのＭＳＢを監視することによって、容易に命令群の終了を検出することができる。
【００２３】
なお、命令終了ビットは、ＭＳＢ以外に、命令コードＩＮＳにおける任意のビットに割り当てることができる。また、命令終了ビットを割り当てずに、たとえば、命令群の終了を示す“ＨＡＬＴ”などの所定の命令の発行を検出したとき、アサート信号ＡＳＳを出力するように、デコーダ１１Ａおよび１１Ｂを構成してもよい。
【００２４】
図２に戻り、バッファ部１３Ａおよび１３Ｂは、それぞれ、バッファ書き込み装置１３１と、バッファ１３２と、レジスタ１３３とを備えている。バッファ書き込み装置１３１は、発行された命令コードを発行順にバッファ１３２に蓄積する。そして、命令コードがバッファ１３２のバッファ容量一杯に蓄積されたとき、バッファ書き込み装置１３１は、バッファのＦＵＬＬ状態を示す信号ＦＵＬを出力する。バッファ１３２は、先頭アドレスからレジスタ１３３によって示される最大アドレスまでのバッファ容量に命令コードを蓄積することができる。すなわち、バッファ１３２に蓄積可能な命令量は、レジスタ１３３を適宜設定することによって調節することができる。たとえば、レジスタ１３３がアドレスデータ“10”を格納しているとき、バッファ１３２のバッファ容量はアドレス“00”から“10”までとなる。レジスタ１３３の設定は、たとえば、マスタ２０Ａおよび２０Ｂが発行する命令のヘッダに適当な情報を記述することによって、マスタ２０Ａおよび２０Ｂからの指示で行うことができる。もちろん、ユーザーが直接設定することもできる。
【００２５】
一方、調停部１２は、バッファ１３２のアドレスを格納するレジスタ１２１Ａおよび１２１Ｂと、バス３０の使用をさせるマスタを選択するセレクタ１２２と、バッファ１３２に蓄積された命令コードを読み出してバス３０に供給するバッファ読み出し装置１２３とを備えている。レジスタ１２１Ａおよび１２１Ｂは、それぞれ、バッファ部１３Ａおよび１３Ｂから信号ＡＳＳおよび信号ＦＵＬのいずれか一方を受けたとき、すなわち、信号ＡＳＳと信号ＦＵＬとの論理和信号を受けたとき、その時点でのバッファ１３２におけるアドレスを保持する。セレクタ１２２は、信号ＡＳＳまたは信号ＦＵＬを受けたとき、バッファ読み出し装置１２３に対して命令読み出しを指示する信号ＬＤを出力する。バッファ読み出し装置１２３は、信号ＬＤを受けることによって、セレクタ１２２によって選択されているマスタが発行した命令をバッファ１３２から読み出しバス３０に供給する。具体的には、バッファ１３２の先頭アドレスから、レジスタ１２１Ａまたは１２１Ｂによって示されるアドレスまでの命令を読み出す。
【００２６】
次に、命令供給制御装置１０Ａの動作について、図２を参照しながら説明する。
【００２７】
いま、セレクタ１２２によってマスタ２０Ａが選択されている、すなわち、マスタ２０Ａがバス使用権を有しているものとする。また、バッファ部１３Ａにおけるバッファ１３２には、命令コード“aa0”、“aa1”、“aa2”および“aa3”がアドレス“00”〜“03”までに格納されている。ここで、マスタ２０Ａから、命令群の終了に相当する命令コードＩＮＳの入力があったとき、デコーダ１１Ａから信号ＡＳＳが出力される。レジスタ１２１Ａは、この時点のバッファ１３２のアドレス“04”を保持する。
【００２８】
セレクタ１２２は、信号ＡＳＳを受けると、バッファ読み出し装置１２３に対して信号ＬＤを出力する。バッファ読み出し装置１２３は、信号ＬＤを受けると、バッファ部１３Ａにおけるバッファ１３２の先頭アドレス“00”からレジスタ１２１Ａによって示されるアドレス“04”までの命令を読み出してバス３０に供給する。このとき、マスタ２０Ａに対して信号ＬＯＣＫを出力し、バッファ部１３Ａにおけるバッファ１３２に新たに命令が蓄積されないように、マスタ２０Ａからの命令供給を一時中断させる。そして、バッファ１３２からの命令読み出しが終了した後に、マスタ２０Ａに対して信号ＵＮＬＯＣＫを出力し、マスタ２０Ａからの命令供給を再開させる。
【００２９】
なお、バッファ読み出し装置１２３による命令の読み出しおよび供給が行われている間に、バッファ部１３Ｂは、マスタ２０Ｂからの命令コードＩＮＳの入力・蓄積を行うことができる。すなわち、各マスタは、バス使用権がなくとも、命令を発行してバッファ部に蓄積しておくことができる。これにより、バス使用権が与えられたときにバッファ部に蓄積された命令を読み出せばよくなり、処理速度を高速化することができる。
【００３０】
バッファ読み出し装置１２３は、バッファ１３２からの命令読み出しを終えると、セレクタ１２２に対して信号ＤＮを出力する。セレクタ１２２は、信号ＤＮを受けると、バス使用権を他のマスタ（ここでは、マスタ２０Ｂ）に移す。逆に言うと、セレクタ１２２は、たとえ選択していないマスタ（ここでは、マスタ２０Ｂ）から信号ＡＳＳを受けても、バッファ読み出し装置１２３から信号ＤＮを受けない限りバス使用権を移すことはない。
【００３１】
上記例は、セレクタ１２２が信号ＡＳＳを受けたときのものであるが、セレクタ１２２が信号ＦＵＬを受けたときも上記と同様に動作する。ただし、この場合、セレクタ１２２は、信号ＤＮを受けてもバス使用権を他のマスタに移さず、選択しているマスタから信号ＡＳＳを受けるまで、当該マスタにバス使用権を与え続ける。これにより、命令群単位でバス使用権を切り替えることを保証している。
【００３２】
以上、本実施形態によると、各マスタのバス使用権を命令群単位で切り替えることができ、命令群処理の逐次性・連続性が保証される。なお、本実施形態に係る命令供給制御装置１０Ａは、二つのマスタ２０Ａおよび２０Ｂのバス優先権の切り替えを行うものとしたが、本発明はこれに限定されるものではない。本発明により、３つ以上のマスタについても、命令群単位で各マスタのバス優先権の切り替えを行うことができる。
【００３３】
なお、上記構成において、レジスタ１３３を省略して、バッファ１３２のバッファ容量を固定値としてもよい。しかし、好ましくは、レジスタ１３３を設けてバッファ容量を調節可能にするものとする。これにより、たとえば、オーディオデータのように大量のデータを一度に取り込んで数十ＫHzといった比較的遅いレートで処理を行う場合には、バッファ１３２のバッファ容量を大きく設定することができる。逆に、グラフィックデータのように画面の１ラインごとに処理を行う必要がある場合には、バッファ容量を小さく設定することで切れ目なく命令を供給することができる。
【００３４】
また、上記構成において、バッファ部１３Ａおよび１３Ｂは、特に省略することができる。命令供給制御装置１０Ａは、バッファ部１３Ａおよび１３Ｂを備えていなくとも、各マスタのバス使用権を命令群単位で行うことができる。
【００３５】
（第２の実施形態）
図４は、本発明の第２の実施形態に係る命令供給制御装置を備えたシステムの概略構成を示す。本実施形態に係る命令供給制御装置１０Ｂもまた第１の実施形態に係る命令供給制御装置１０Ａと同様に、マスタ２０Ａおよび２０Ｂのうちバス３０の使用をさせるものを適宜選択し、当該選択したマスタから発行された命令をバス３０に供給する。ただし、命令供給制御装置１０Ａとは異なり、命令供給制御装置１０Ｂは、マスタ２０Ａおよび２０Ｂからの命令を蓄積するＦＩＦＯ１３２´を有するバッファ部１３´と、ＦＩＦＯ読み出し装置１２３´を有する調停部１２´とを備えている。以下、命令供給制御装置１０Ｂについて、命令供給制御装置１０Ａと異なる点についてのみ説明する。
【００３６】
図５は、命令供給制御装置１０Ｂの内部構成を示す。バッファ部１３´は、ＦＩＦＯ書き込み装置１３１Ａおよび１３１Ｂと、ＦＩＦＯ１３２´と、レジスタ１３３と、減算器１３４とを備えている。ＦＩＦＯ書き込み装置１３１Ａは、マスタ２０Ａから発行された命令コードを発行順にＦＩＦＯ１３２´に、先頭アドレスからアドレス増加方向に蓄積する。一方、ＦＩＦＯ書き込み装置１３１Ｂは、マスタ２０Ｂから発行された命令コードを発行順にＦＩＦＯ１３２´に、終端アドレスからアドレス減少方向に蓄積する。
【００３７】
ＦＩＦＯ１３２´における終端アドレスは、レジスタ１３３によって与えられる。すなわち、ＦＩＦＯ１３２´の有効記憶領域は、レジスタ１３３を適宜設定することによって調節することができる。たとえば、レジスタ１３３がアドレスデータ“1000”を格納しているとき、ＦＩＦＯ書き込み装置１３１Ｂは、アドレス“1000”から命令の蓄積を開始する。レジスタ１３３の設定は、たとえば、マスタ２０Ａおよび２０Ｂが発行する命令のヘッダに適当な情報を記述することによって、マスタ２０Ａおよび２０Ｂからの指示で行うことができる。もちろん、ユーザーが直接設定することもできる。
【００３８】
減算器１３４は、ＦＩＦＯ１３２´のバッファ容量が一杯になったか否かを監視しており、一杯になったことを検出したとき、ＦＩＦＯのＦＵＬＬ状態を示す信号ＦＵＬを出力する。具体的には、減算器１３４は、ＦＩＦＯ書き込み装置１３１Ａの現在の書き込みアドレス“ＡＤＲ＿Ａ”とＦＩＦＯ書き込み装置１３１Ｂの現在の書き込みアドレス“ＡＤＲ＿Ｂ”との差分、すなわち、（ＡＤＲ＿Ｂ−ＡＤＲ＿Ａ）を算出し、この結果が“１”となるとき、信号ＦＵＬを出力する。たとえば、図５に示したように、ＦＩＦＯ１３２´のアドレス“0000”から“0010”までにマスタ２０Ａからの命令コード“a000”から“a010”までが書き込まれ、アドレス“1000”から“0011”までにマスタ２０Ｂからの命令コード“b000”から“b111”までが書き込まれたとき、アドレスの差分は“１”となり、減算器１３４から信号ＦＵＬが出力される。
【００３９】
一方、調停部１２´におけるＦＩＦＯ読み出し装置１２３´は、セレクタ１２２から信号ＬＤを受けると、マスタ２０Ａからの命令については、先頭アドレスからレジスタ１２１Ａによって示されるアドレスまでに格納されている命令コードを読み出す。また、マスタ２０Ｂからの命令については、レジスタ１３３によって示されるアドレスからレジスタ１２１Ｂによって示されるアドレスまでに格納されている命令コードを読み出す。
【００４０】
ＦＩＦＯ読み出し装置１２３´は、第１の実施形態に係るバッファ読み出し装置１２３とは異なり、信号ＬＤを受けると、マスタ２０Ａおよび２０Ｂに対して信号ＬＯＣＫを出力し、命令発行を一時中断させる。これは、たとえば、マスタ２０Ａが発行した命令をＦＩＦＯ１３２´から読み出している最中に、マスタ２０Ｂに対してＦＩＦＯ１３２´への書き込みを許可すると、マスタ２０Ｂからの命令でＦＩＦＯ１３２´が埋め尽くされてしまうおそれがあるという理由に基づく。ＦＩＦＯ１３２´がマスタ２０Ｂからの命令で埋め尽くされると、マスタ２０Ａは信号ＵＮＬＯＣＫを受けてもＦＩＦＯ１３２´に命令を蓄積できなくなってしまう。また、マスタ２０Ａからの命令群の供給が終了しなければ、マスタ２０Ｂにバス使用権が移ることもない。したがって、いわゆるデッドロックに陥ることとなる。そして、ＦＩＦＯ１３２´からの命令読み出しが終了すると、マスタ２０Ａおよび２０Ｂに対して信号ＵＮＬＯＣＫを出力し、命令発行を再開させる。
【００４１】
マスタ２０Ａおよび２０Ｂに対して信号ＬＯＣＫを出力する方法以外にも、ＦＩＦＯ１３２´上に、各マスタの専有領域を設けるようにしてもよい。たとえば、先頭アドレス“0000”からアドレス“0010”まではマスタ２０Ａの専有とし、終端アドレス“1000”からアドレス“0110”まではマスタ２０Ｂの専有とする。これにより、上記のデッドロックを回避することが可能である。
【００４２】
以上、本実施形態によると、二つのマスタ２０Ａおよび２０Ｂからそれぞれ発行された命令が共通のＦＩＦＯ１３２´に蓄積されるため、第１の実施形態よりもメモリ領域を効率よく使って命令を蓄積することができる。すなわち、一方のマスタから発行された命令群が比較的短い場合、ＦＩＦＯ１３２´に、他方のマスタからの比較的長い命令群を蓄積することができる。
【００４３】
また、ＦＩＦＯ１３２´の有効記憶領域を調節することによって、任意の命令量ごとにＦＩＦＯ容量を一杯にすることができ、機能ブロック（図４参照）への命令供給のタイミングを変更することができる。たとえば、発行される命令量が少ない場合などは、ＦＩＦＯ容量を小さくすることで命令のバッファ段数を１段の状態にして、命令をバッファリングすることなく供給することも可能である。なお、ＦＩＦＯ容量の調節が不要な場合、レジスタ１３３を省略してもよい。
【００４４】
（第３の実施形態）
図６は、本発明の第３の実施形態に係る半導体装置の概略構成を示す。本実施形態に係る半導体装置１００は、第１の実施形態に係る命令供給制御装置１０Ａと、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などの内部マスタ２０と、内部バス３０と、スレーブとしての機能ブロック４０Ａおよび４０Ｂと、外部のマスタからの命令を受けるインタフェース部５０とを備えている。内部バス３０には、命令供給制御装置１０Ａと、機能ブロック４０Ａおよび４０Ｂとが接続されている。また、インタフェース部５０には、ＣＰＵなどの外部マスタ２００Ａおよび２００Ｂが接続されている。なお、図６に示した半導体装置１００の構成はあくまでも一例であり、内部マスタおよび機能ブロックの個数は、同図に示したもの以外であってもよいことは言うまでもない。また、インタフェース部５０に接続される外部マスタについても個数は任意である。
【００４５】
上記の半導体装置１００は、ちょうど図１に示したシステムにおけるマスタ２０Ｂをインタフェース部５０に置き換え、１チップ化した構成となっている。以下、インタフェース部５０について詳細に説明する。
【００４６】
図７は、インタフェース部５０の内部構成を示す。インタフェース部５０は、外部マスタ２００Ａおよび２００Ｂに対して、半導体装置１００内部へのアクセスの調停を行う調停部５１を備えている。調停部５１は、外部マスタ２００Ａおよび２００Ｂのいずれか一つに半導体装置１００内部へのアクセス権を与える。そして、アクセス権を得た外部マスタのみが、内部バス３０を使用して機能ブロック４０Ａおよび４０Ｂに命令を供給することができる。調停部５１は、デコーダ１１Ｂから信号ＡＳＳを受けるまでは、他の外部マスタにアクセス権を与えない。すなわち、外部マスタのアクセス権の切り替えは命令群単位で行われる。
【００４７】
命令供給制御装置１０Ａは、インタフェース部５０を介して、インタフェース部５０によって選択された外部マスタからの命令コードＩＮＳを受ける。この選択された外部マスタおよび内部マスタ２０に対する内部バス３０の使用権の与え方については第１の実施形態で説明したとおりである。
【００４８】
次に、インタフェース部５０の動作について、図８を参照しながら説明する。なお、各信号は、Ｈｉｇｈのとき、アサートされているものとする。
【００４９】
インタフェース部５０は、システムクロックＣＫに同期して動作する。まず、外部マスタ２００Ｂがインタフェース部５０にアクセスしていない状態で、外部マスタ２００Ａがリクエスト信号ＲＥＱ＿Ａをアサートしているとき、インタフェース部５０は、外部マスタ２００Ａに許可信号ＡＣＫ＿Ａをアサートする（時刻ｔ１）。外部マスタ２００Ａは許可信号ＡＣＫ＿Ａを受けると、リクエスト信号ＲＥＱ＿Ａをネゲートし（時刻ｔ２）、命令群として連続する３つの命令コードＩＮＳ（図中“valid”と表示している）を発行する。この間、外部マスタ２００Ｂからリクエスト信号ＲＥＱ＿Ｂがアサートされても（時刻ｔ３）、インタフェース部５０は、外部マスタ２００Ｂに対して許可信号ＡＣＫ＿Ｂをアサートしない。
【００５０】
外部マスタ２００Ａから３つ目の命令コードＩＮＳが命令供給制御装置１０Ａに与えられたとき、デコーダ１１Ｂから、命令群の終了を検知したことを示す信号ＡＳＳがアサートされる（時刻ｔ４）。インタフェース部５０は、信号ＡＳＳを受けると、許可信号ＡＣＫ＿Ａをネゲートし（時刻ｔ５）、許可信号ＡＣＫ＿Ｂをアサートする（時刻ｔ６）。これにより、半導体装置１００内部へのアクセス権が、外部マスタ２００Ａから外部装置２００Ｂへと移り、これ以降、外部マスタ２００Ｂから発行された命令コードＩＮＳ（図中“valid”と表示している）は有効なものとして半導体装置１００に取り込まれる。なお、図８の例では、外部マスタ２００Ｂが発行する命令群は一つの命令コードからなり、当該命令コードが命令供給制御装置１０Ａに与えられることによって、デコーダ１１Ｂから信号ＡＳＳがアサートされる。
【００５１】
命令供給制御装置１０Ａから信号ＬＯＣＫがアサートされている場合のインタフェース部５０の動作について、もう一つ、図９のタイミングチャートを参照しながら説明する。
【００５２】
まず、信号ＬＯＣＫがアサートされている状態では、外部マスタ２００Ａからリクエスト信号ＲＥＱ＿Ａがアサートされていても、インタフェース部５０は外部マスタ２００Ａに許可信号ＡＣＫ＿Ａをアサートしない。インタフェース部５０は、信号ＬＯＣＫがネゲートされる、すなわち、信号ＵＮＬＯＣＫがアサートされることによって、外部マスタ２００Ａに許可信号ＡＣＫ＿Ａをアサートする（時刻ｔ１）。
【００５３】
外部マスタ２００Ａは、許可信号ＡＣＫ＿Ａを受けると、命令群として命令コードＩＮＳを連続発行する。そして、この最中に信号ＬＯＣＫがアサートされると（時刻ｔ３）、インタフェース部５０、より具体的には調停部５１は、外部マスタ２００Ａに命令供給の停止を要求する信号ＳＴＰ＿ＲＥＱをアサートする。これにより、外部マスタ２００Ａからの命令供給は一時中断する。しかし、許可信号ＡＣＫ＿Ａはアサートされ続けており、半導体装置１００内部へのアクセス権は、外部マスタ２００Ｂに与えられることなく、外部マスタ２００Ａが保持したままである。そして、信号ＵＮＬＯＣＫがアサートされると（時刻ｔ４）、外部マスタ２００Ａは命令の発行を再開する。
【００５４】
以上、本実施形態によると、外部マスタ２００Ａおよび２００Ｂの半導体装置１００へのアクセス権を命令群単位で切り替えることができ、命令群処理の逐次性・連続性が保証される。なお、本実施形態に係る半導体装置１００は、二つの外部マスタ２００Ａおよび２００Ｂのアクセス権の切り替えを行うものとしたが、本発明はこれに限定されるものではない。本発明により、３つ以上の外部マスタについても、命令群単位でアクセス権の切り替えを行うことができる。
【００５５】
なお、本実施形態に係る半導体装置１００は、第１の実施形態に係る命令供給制御装置１０Ａを備えたものとしたが、これに代えて、第２の実施形態に係る命令供給制御装置１０Ｂを備えてもよいことは言うまでもない。
【産業上の利用可能性】
【００５６】
本発明に係る命令供給制御装置は、一のバスに接続された複数の機能ブロックに対して二つ以上のマスタが命令を発行するようなシステムにおいて、命令群単位で各マスタのバス使用権を切り替えることができるので、連続的な命令実行を要求するマスタが複数接続されたシステムにおいて有用である。
【図面の簡単な説明】
【００５７】
【図１】本発明の第１の実施形態に係る命令供給制御装置を含むシステムの概略構成図である。
【図２】本発明の第１の実施形態に係る命令供給制御装置の内部構成図である。
【図３】命令終了ビットを含む命令コードのビット構成を示す図である。
【図４】本発明の第２の実施形態に係る命令供給制御装置を含むシステムの概略構成図である。
【図５】本発明の第２の実施形態に係る命令供給制御装置の内部構成図である。
【図６】本発明の第３の実施形態に係る半導体装置の概略構成図である。
【図７】図６の半導体装置におけるインタフェース部の内部構成図である。
【図８】図６の半導体装置におけるインタフェース部のタイミングチャートである。
【図９】図６の半導体装置におけるインタフェース部のタイミングチャートである。
【図１０】従来のバス使用優先順位制御装置の構成図である。
【符号の説明】
【００５８】
１０Ａ，１０Ｂ  命令供給制御装置
１１Ａ，１１Ｂ  デコーダ（命令群終了検出部）
１２、１２´  調停部
１３Ａ，１３Ｂ、１３´  バッファ部
１３２´  ＦＩＦＯ
１３３  レジスタ
２０  内部マスタ
２０Ａ，２０Ｂ  マスタ
３０  バス、内部バス
４０Ａ，４０Ｂ  機能ブロック
５０  インタフェース部
１００  半導体装置
２００Ａ，２００Ｂ  外部マスタ
【図１】
2005063358.tif 000003
【図２】
2005063358.tif 000004
【図３】
2005063358.tif 000005
【図４】
2005063358.tif 000006
【図５】
2005063358.tif 000007
【図６】
2005063358.tif 000008
【図７】
2005063358.tif 000009
【図８】
2005063358.tif 000010
【図９】
2005063358.tif 000011
【図１０】
2005063358.tif 000012