(57)【要約】【課題】各マスタに割り当てのバス占有許可時間が一定であるため、その時間よりも短い時間でマスタの処理が終了した場合には、次優先順位であるマスタの実行開始は遅延し、共有メモリへのアクセスにおいてバスの空サイクルが発生し、マイクロプロセッサ全体の処理性能が低下する。【解決手段】各マスタＡ １，Ｂ ２，Ｃ ３は、命令実行必要サイクル数を含む時間制御信号Ｓ１，Ｓ２，Ｓ３をスケジューラ８に与え、スケジューラ８は、現在アクティブなマスタから受けた時間制御信号に基づいて、そのマスタに関連するバスを共有メモリ７のバス９に対して占有的に接続し、かつ、その占有接続状態を前記時間制御信号に含まれる命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は直ちに占有接続状態を解放する。【選択図】  図１
2004199564.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタと、
前記複数のマスタが共通にアクセスするスレーブモジュールと、
前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備え、
前記各マスタは、命令実行必要サイクル数を含む時間制御信号を前記スケジューラに与えるように構成され、
前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記時間制御信号に基づいて、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記時間制御信号に含まれる前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されているマイクロプロセッサ。
【請求項２】
前記各マスタは、与えられた命令に対応するステート遷移に基づいて前記命令実行必要サイクル数を含む時間制御信号を生成出力する時間制御信号生成部を備えている請求項１に記載のマイクロプロセッサ。
【請求項３】
前記スケジューラは、
前記各マスタからの前記時間制御信号に基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するセレクタ制御部と、
前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記時間制御信号に含まれる前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するセレクタとを備えている請求項１または請求項２に記載のマイクロプロセッサ。
【請求項４】
前記スケジューラは、さらに、
複数のマスタからの時間制御信号の中から現在アクティブなマスタの時間制御信号のサイクル数を抽出するサイクル数抽出部と、
抽出されたサイクル数を前回のサイクル数として保持する前回サイクル数保持レジスタと、
割り込み処理等により実行予定のマスタが強制的に切り替えられた場合、前記サイクル数抽出部からの今回抽出したサイクル数と前記前回サイクル数保持レジスタからの前回抽出したサイクル数とを比較し、今回抽出したサイクル数が前回抽出したサイクル数以下の場合に、マスタ切り替りにもかかわらず、サイクル数については切り替り前のサイクル数を維持するための制御信号を生成し、セレクタ制御部に与える比較器とを備えている請求項３に記載のマイクロプロセッサ。
【請求項５】
複数のマスタと、
前記複数のマスタが共通にアクセスするスレーブモジュールと、
前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備え、
前記各マスタは、オペコードデータを前記スケジューラに与えるように構成され、
前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記オペコードデータに基づいて、このオペコードデータに対応する命令実行必要サイクル数を生成し、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されているマイクロプロセッサ。
【請求項６】
前記スケジューラは、
前記各マスタからのオペコードデータをデコードして命令識別信号とマスタ識別信号を生成するデコード部と、
命令ごとの実行サイクル数を記述しており、前記デコード部からの前記命令識別信号に対応した実行サイクル数のサイクル数信号を生成する命令毎サイクル数テーブルと、
前記デコード部からの前記マスタ識別信号と前記命令毎サイクル数テーブルからの前記サイクル数信号とに基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するセレクタ制御部と、
前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するセレクタとを備えている請求項５に記載のマイクロプロセッサ。
【請求項７】
複数のマスタと、
前記複数のマスタが共通にアクセスするスレーブモジュールと、
前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備え、
前記各マスタは、プロセスＩＤ信号を前記スケジューラに与えるように構成され、
前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記プロセスＩＤ信号に基づいて、このプロセスＩＤ信号に対応する命令実行必要サイクル数を生成し、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されているマイクロプロセッサ。
【請求項８】
前記スケジューラは、
前記各マスタからのプロセスＩＤ信号をデコードして選択信号とマスタ識別信号を生成するデコード部と、
プロセスＩＤ値ごとの実行サイクル数を記述しており、前記デコード部からの前記選択信号に対応した実行サイクル数のサイクル数信号を生成するプロセス毎サイクル数テーブルと、
前記デコード部からの前記マスタ識別信号と前記プロセス毎サイクル数テーブルからの前記サイクル数信号とに基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するセレクタ制御部と、
前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するセレクタとを備えている請求項７に記載のマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のマスタと、前記複数のマスタが共通にアクセスするスレーブモジュールと、前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備えたマイクロプロセッサに関する。マスタにはＣＰＵが代表的である。
【０００２】
【従来の技術】
近年、携帯機器に代表される移動体通信分野の市場におけるマイクロプロセッサでは、低消費電力化と同時に移動体通信制御とアプリケーションに必要なソフト処理量の増大に伴い、高性能システムが求められている。その実現手段の一つとして、マイクロプロセッサ内部において、マルチレイヤーと呼ばれる複数バスを使用するバスアーキテクチャが提唱されつつある。このようなマイクロプロセッサでは、従来、内部の複数のマスタのバス優先順位を設定する機能を有し、あるマスタがバスを占有する時間間隔（タイムスロット）をマイクロプロセッサの命令を用いて設定する手段を備え、複数のマスタのアクセス頻度に応じて各マスタのタイムスロットを割り当て、無駄なタイムスロットを排除し、アクセスを効率良く実行できるような構成を取っている。
【０００３】
図９に従来のマイクロプロセッサの構成を示す。このマイクロプロセッサ１００は、マスタＡ １０１、マスタＢ １０２、マスタＣ１０３、マスタＤ １０４、３進カウンタ１０５、シフトレジスタ１０６、１／２分周回路１０７およびセレクタ１０８を備えている。１０９はタイムスロット割り当て回路である。１１０はスレーブモジュールとしての共有メモリである。マスタは、通常、ＣＰＵである。複数のマスタが共有メモリ１１０に対して共通にアクセスする場合のタイムスロット割り当て回路１０９において、各マスタに割り当てるアクセス可能時間の割合を各マスタの既知のアクセス頻度に応じて変化させるように構成している（例えば、特許文献１参照）。
【０００４】
３進カウンタ１０５からタイムスロット基本信号ＴＳ0を入力したシフトレジスタ１０６は、３つのタイムスロット信号ａ，ｂ，ｃ′を出力する。このうちタイムスロット信号ａはマスタＡ１０１に与えられ、タイムスロット信号ｂはマスタＢ １０２に与えられる。１／２分周回路１０７は３進カウンタ１０５が出力するタイムスロット基本信号ＴＳ0を１／２分周し、その分周信号Ｓをセレクタ１０８に与える。セレクタ１０８はシフトレジスタ１０６からのタイムスロット信号ｃ′を２倍周期の２つのタイムスロット信号ｃ，ｄに分割し、マスタＣ１０３とマスタＤ １０４とに振り分ける。
【０００５】
上記構成の従来のタイムスロット割り当て回路１０９の動作を示すタイミングチャートを図１０に示す。マスタＡ １０１、マスタＢ１０２、マスタＣ １０３およびマスタＤ １０４は、それぞれ与えられたタイムスロット信号ａ，ｂ，ｃ，ｄに従って、時分割で共有メモリ１１０とのアクセスを順次サイクリックに行う。すなわち、タイムスロット１にはマスタＡ１０１が割り当てられ、タイムスロット２にはマスタＢ １０２が割り当てられ、タイムスロット３にはアクセス頻度が１／２のマスタＣ １０３およびマスタＤ １０４が交互に割り当てられる。
【０００６】
【特許文献１】
特開昭６２−２９７９６３号公報（第３〜４頁、第２〜４図）
【０００７】
【発明が解決しようとする課題】
上記のように従来のマイクロプロセッサの構成においては、各マスタの割り当て優先順位を選択する機能はある。しかしながら、各マスタに割り当てられたバス占有許可時間が各々一定値であるため、次のような問題がある。すなわち、あらかじめタイムスロット割り当て回路によりマスタＡに割り当てられたバス占有許可時間よりも短い時間でマスタＡの処理が終了した場合には、次優先順位であるマスタＢの実行開始はタイムスロット割り当て回路が指定する開始時間まで遅延する。その結果として、共有メモリへのアクセスにおいてバスの空サイクルが発生し、マイクロプロセッサ全体の処理性能が低下してしまうという現象が発生する。
【０００８】
本発明は、このような事情に鑑みて創作したものであり、個々のマスタのバス占有要求時間をダイナミックに可変することにより、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減し、システムの高性能化を実現することを目的としている。
【０００９】
【課題を解決するための手段】
上記の課題を解決するために、本発明は次のような手段を講じる。
【００１０】
第１の解決手段として、本発明によるマイクロプロセッサは、複数のマスタと、前記複数のマスタが共通にアクセスするスレーブモジュールと、前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備えたマイクロプロセッサにおいて、前記マスタおよび前記スケジューラをそれぞれ次のように構成したものである。すなわち、前記各マスタは、命令実行必要サイクル数を含む時間制御信号を前記スケジューラに与えるように構成されている。また、前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記時間制御信号に基づいて、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記時間制御信号に含まれる前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されている。
【００１１】
この構成による作用は次のとおりである。マスタにおいて個々の命令の実行に必要なサイクル数である命令実行必要サイクル数を含む時間制御信号を生成し、この時間制御信号をスケジューラに与える。この時間制御信号に含まれる命令実行必要サイクル数は、当該の現在アクティブなマスタが実行すべき当該の命令の実行に要する必要最小限のバス占有要求時間に相当するものである。スケジューラは、この必要最小限のバス占有要求時間に限って、当該の現在アクティブなマスタに関連するバスをスレーブモジュールのバスに占有的に接続し、そのバス占有要求時間の経過後は直ちに占有接続状態を解放する。したがって、個々の現在アクティブなマスタの個々の命令実行処理時間を正確に見積った上でバス調停を行うことになり、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減することができ、システムの高性能化を実現する。
【００１２】
上記構成をより具体的レベルで次のように記述することができる。
【００１３】
すなわち、前記各マスタについては、与えられた命令に対応するステート遷移に基づいて前記命令実行必要サイクル数を含む時間制御信号を生成出力する時間制御信号生成部を備えたものに構成する。また、前記スケジューラについては、それぞれ次のような機能を有する構成要素〜セレクタ制御部およびセレクタを備えたものに構成する。前記のセレクタ制御部は、前記各マスタからの前記時間制御信号に基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するものである。また、前記のセレクタは、前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記時間制御信号に含まれる前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するものである。
【００１４】
この構成による作用は次のとおりである。各マスタが時間制御信号生成部を付加している。この時間制御信号生成部において、個々の命令に対応するステート遷移に基づいて命令実行必要サイクル数を含む時間制御信号を生成し、スケジューラのセレクタ制御部に出力する。セレクタ制御部は、時間制御信号に基づいてバス選択・占有許可時間信号を生成する。このバス選択・占有許可時間信号には、スレーブモジュールのバスに対して占有的に接続すべきバスが現在アクティブなマスタに関連するバスであること、および時間制御信号に含まれる命令実行必要サイクル数に対応するバス占有要求時間が含まれている。このバス選択・占有許可時間信号を受けたセレクタは、現在アクティブなマスタに関連するバスをスレーブモジュールのバスに占有的に接続し、その占有接続状態をバス占有要求時間にわたって継続し、その時間の経過後、直ちに占有接続状態を解放する。これにより、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減した状態でのシステムの高性能化を合理的に実現する。
【００１５】
第２の解決手段として、本発明によるマイクロプロセッサは、上記第１の解決手段において、前記スケジューラに、さらに、それぞれ次のような機能を有する構成要素〜サイクル数抽出部、前回サイクル数保持レジスタおよび比較器を備えたものである。すなわち、前記のサイクル数抽出部は、複数のマスタからの時間制御信号の中から現在アクティブなマスタの時間制御信号のサイクル数を抽出するものである。また、前記の前回サイクル数保持レジスタは、抽出されたサイクル数を前回のサイクル数として保持するものである。そして、前記の比較器は、割り込み処理等により実行予定のマスタが強制的に切り替えられた場合、前記サイクル数抽出部からの今回抽出したサイクル数と前記前回サイクル数保持レジスタからの前回抽出したサイクル数とを比較し、今回抽出したサイクル数が前回抽出したサイクル数以下の場合に、マスタ切り替りにもかかわらず、サイクル数については切り替り前のサイクル数を維持するための制御信号を生成し、セレクタ制御部に与えるものである。
【００１６】
この構成による作用は次のとおりである。割り込み処理等に起因して、あるマスタのバス占有期間が終了した際に優先順位が次のマスタからのアクセス要求がなくなっていた場合に、バス接続は割り込み主体のマスタが関連するバスを選択するが、セレクタ制御部に対して与えるサイクル数については、条件に応じて切り替えるものである。比較器において、割り込みに起因して飛び越されたマスタのサイクル数（前回抽出したサイクル数）と割り込み主体のマスタのサイクル数（今回抽出したサイクル数）とを比較し、後者の割り込み主体のマスタのサイクル数が飛び越されたマスタのサイクル数より小さければ、前回抽出したサイクル数で今回のサイクル数をカバーすることができる。このことを利用して、高速処理を優先し、サイクル数切り替え処理を省略する。これにより、割り込み処理の際のシステムの性能低下を最小限に抑え、高速性を確保することができる。
【００１７】
第３の解決手段として、本発明によるマイクロプロセッサは、複数のマスタと、前記複数のマスタが共通にアクセスするスレーブモジュールと、前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備えたマイクロプロセッサにおいて、前記マスタおよび前記スケジューラをそれぞれ次のように構成したものである。すなわち、前記各マスタは、オペコードデータを前記スケジューラに与えるように構成されている。また、前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記オペコードデータに基づいて、このオペコードデータに対応する命令実行必要サイクル数を生成し、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されている。
【００１８】
この構成による作用は次のとおりである。マスタは自己のオペコードデータをスケジューラに与えるだけであり、上記第２の解決手段の場合のような時間制御信号生成部は必要としない。代りに、スケジューラにおいて、オペコードデータに対応するサイクル数を求める。これによれば、マスタのハード規模増大を抑制しつつ、汎用的にスケジューラにおいてシステムの高速性を実現できる。
【００１９】
上記構成をより具体的レベルで次のように記述することができる。
【００２０】
すなわち、前記スケジューラについて、それぞれ次のような機能を有する構成要素〜デコード部、命令毎サイクル数テーブル、セレクタ制御部およびセレクタを備えたものに構成する。前記のデコード部は、前記各マスタからのオペコードデータをデコードして命令識別信号とマスタ識別信号を生成するものである。また、前記の命令毎サイクル数テーブルは、命令ごとの実行サイクル数を記述しており、前記デコード部からの前記命令識別信号に対応した実行サイクル数のサイクル数信号を生成するものである。そして、前記のセレクタ制御部は、前記デコード部からの前記マスタ識別信号と前記命令毎サイクル数テーブルからの前記サイクル数信号とに基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するものである。また、前記のセレクタは、前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するものである。
【００２１】
この構成による作用は次のとおりである。これは、スケジューラにおいて、オペコードデータに対応するサイクル数を求める。そのために、デコード部と命令毎サイクル数テーブルとを付加している。スケジューラにおけるデコード部がマスタからのオペコードデータをデコードして命令識別信号とマスタ識別信号を生成し、命令毎サイクル数テーブルが命令識別信号に対応した実行サイクル数のサイクル数信号を生成し、セレクタ制御部がマスタ識別信号とサイクル数信号とに基づいてバス選択・占有許可時間信号を生成する。このバス選択・占有許可時間信号は、現在アクティブなマスタに関連するバスをスレーブモジュールのバスに対して占有的に接続すべきことおよび命令実行必要サイクル数に対応するバス占有要求時間を示すものである。そして、セレクタがバス選択・占有許可時間信号に基づいて現在アクティブなマスタに関連するバスを選択してスレーブモジュールのバスに占有的に接続し、そのバス占有要求時間の経過後は直ちに占有接続状態を解放する。したがって、個々の現在アクティブなマスタの個々の命令実行処理時間を正確に見積った上で、バス調停を行うことになり、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減することができ、システムの高性能化を実現する。そして、マスタのハード規模増大を抑制した状態のシステムの高速性を合理的に実現する。
【００２２】
第４の解決手段として、本発明によるマイクロプロセッサは、複数のマスタと、前記複数のマスタが共通にアクセスするスレーブモジュールと、前記複数のマスタが前記スレーブモジュールに対して順次サイクリックにアクセスするように、前記複数のマスタの各々に関連するバスと前記スレーブモジュールのバスとの間のバス接続の調停を行うスケジューラとを備えたマイクロプロセッサにおいて、前記マスタおよび前記スケジューラをそれぞれ次のように構成したものである。すなわち、前記各マスタは、プロセスＩＤ信号を前記スケジューラに与えるように構成されている。また、前記スケジューラは、前記複数のマスタのうちの現在アクティブなマスタから受けた前記プロセスＩＤ信号に基づいて、このプロセスＩＤ信号に対応する命令実行必要サイクル数を生成し、前記現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するように構成されている。
【００２３】
この構成による作用は次のとおりである。マスタは自己のプロセスＩＤ信号をスケジューラに与えるだけであり、上記第２の解決手段の場合のような時間制御信号生成部は必要としない。代りに、スケジューラにおいて、プロセスＩＤ信号に対応するサイクル数を求める。上記の第３の解決手段の場合は、個々の命令ごとに実行サイクル数を求めるために時間がかかる。これに対して、第４の解決手段においては、個々の命令のレベルよりも上位のレベルでのまとまりとしてのプロセスＩＤを基準とし、このプロセスＩＤに応じてサイクル数を求め、同様の動作を行う。すなわち、マスタだけでなくスケジューラについても、そのハード規模増大を抑制しつつ、システムの高速性ならびに消費電力の低減を図ることができる。
【００２４】
上記構成をより具体的レベルで次のように記述することができる。
【００２５】
すなわち、前記スケジューラについて、それぞれ次のような機能を有する構成要素〜デコード部、プロセス毎サイクル数テーブル、セレクタ制御部およびセレクタを備えたものに構成することである。前記のデコード部は、前記各マスタからのプロセスＩＤ信号をデコードして選択信号とマスタ識別信号を生成するものである。また、前記のプロセス毎サイクル数テーブルは、プロセスＩＤ値ごとの実行サイクル数を記述しており、前記デコード部からの前記選択信号に対応した実行サイクル数のサイクル数信号を生成するものである。そして、前記のセレクタ制御部は、前記デコード部からの前記マスタ識別信号と前記プロセス毎サイクル数テーブルからの前記サイクル数信号とに基づいて、現在アクティブなマスタに関連するバスを前記スレーブモジュールのバスに対して占有的に接続すべきことおよび前記命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号を生成するものである。また、前記のセレクタは、前記セレクタ制御部からの前記バス選択・占有許可時間信号に基づいて、前記複数のバスのうち前記現在アクティブなマスタに関連するバスを選択して前記スレーブモジュールのバスに占有的に接続し、かつ、その占有接続状態を前記命令実行必要サイクル数に対応するバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放するものである。
【００２６】
この構成による作用は次のとおりである。これは、スケジューラにおいて、プロセスＩＤに対応するサイクル数を求める。そのために、デコード部とプロセス毎サイクル数テーブルとを付加している。スケジューラにおけるデコード部がマスタからのプロセスＩＤ信号をデコードして選択信号とマスタ識別信号を生成し、プロセス毎サイクル数テーブルが選択信号に対応した実行サイクル数のサイクル数信号を生成し、セレクタ制御部がマスタ識別信号とサイクル数信号とに基づいて上記同様のバス選択・占有許可時間信号を生成する。そして、セレクタがバス選択・占有許可時間信号に基づいて現在アクティブなマスタに関連するバスを選択してスレーブモジュールのバスに占有的に接続し、そのバス占有要求時間の経過後は直ちに占有接続状態を解放する。したがって、個々の現在アクティブなマスタの個々の命令実行処理時間を正確に見積った上で、バス調停を行うことになり、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減することができ、システムの高性能化を実現する。そして、マスタのハード規模増大を抑制した状態のシステムの高速性を合理的に実現する。上記の第３の解決手段の場合は、命令毎サイクル数テーブルが全命令について個々の命令ごとの実行サイクル数を記述するために大きな記憶容量を必要とする。これに対して、第４の解決手段においては、個々の命令のレベルよりも上位のレベルでのまとまりとしてのプロセスＩＤ値対応のプロセス毎サイクル数テーブルを用いて同様の動作を行う。すなわち、マスタおよびスケジューラのハード規模増大を抑制しつつ、システムの高速性ならびに消費電力の低減を図ることができる。
【００２７】
【発明の実施の形態】
以下、本発明にかかわるマイクロプロセッサの実施の形態を図面に基づいて説明する。
【００２８】
（実施の形態１）
図１は本発明の実施の形態１におけるマイクロプロセッサの構成を示すブロック図である。
【００２９】
図１において、５０はマイクロプロセッサ、１は優先順位が第１位のマスタＡ、２は優先順位が第２位のマスタＢ、３は優先順位が第３位のマスタＣ、４はマスタＡ１に関連するバス、５はマスタＢ ２に関連するバス、６はマスタＣ ３に関連するバス、７はマスタ１，２，３が共通に使用するスレーブモジュールとしての共有メモリ、８は３つのマスタ１，２，３それぞれのバス４，５，６と共有メモリ４のバス９との間のバス調停を行うスケジューラ、９は共有メモリに繋がるバス、１０はバスコントローラ、１１は命令群を格納しているＲＯＭ（リードオンリーメモリ）、１２はＲＯＭ１１に繋がるバスである。Ｓ１，Ｓ２，Ｓ３はそれぞれマスタ１，２，３からスケジューラ８に送出される時間制御信号である。
【００３０】
本実施の形態のマスタ１，２，３は、いずれも図２のように構成されている。すなわち、バス４，５，６を介して入力されてくる命令をデコードするデコード部２１と、デコード部２１によるデコード信号Ｓ４に基づいて、その命令を実行する際のステート遷移信号Ｓ５を生成するステートマシン２２と、さらに、ステートマシン２２からのステート遷移信号Ｓ５に基づいて、マスタ１，２，３が当該の命令の実行に要するサイクル数を含む時間制御信号Ｓ１，Ｓ２，Ｓ３を生成し、スケジューラ８に送出する時間制御信号生成部２３とを備えている。時間制御信号Ｓ１，Ｓ２，Ｓ３の各々には、要求元がマスタ１，２，３であることと前記のサイクル数が含まれている。
【００３１】
本実施の形態のスケジューラ８は図３のように構成されている。すなわち、３つのマスタ１，２，３からの時間制御信号Ｓ１，Ｓ２，Ｓ３を入力し、時間制御信号Ｓ１，Ｓ２，Ｓ３の各々によってそれぞれマスタ１，２，３に関連するバス４，５，６を共有メモリ７へのバス９に対して占有的に接続すべきことおよび前記の命令実行必要サイクル数に対応する時間を示すバス選択・占有許可時間信号Ｓ６を生成するセレクタ制御部３１と、バス選択・占有許可時間信号Ｓ６に基づいて、共有メモリ７へのバス９に占有的に接続すべきバスとしてバス４，５，６のうちの現在アクティブなマスタに該当する１つのバスを選択するとともに、その占有接続状態を当該命令実行に必要な最小限の時間にわたって継続し、その時間の経過後は遮断するセレクタとを備えている。
【００３２】
次に、上記のように構成されたマイクロプロセッサの動作を説明する。
【００３３】
マスタ１，２，３のうち優先順位が第１位のマスタＡ １に関連するバスはバス４である。バスコントローラ１０はバス４とバス１２とを接続し、優先順位が第１位のマスタＡ１で実行すべき命令をＲＯＭ１１から読み出してマスタＡ １に供給する。
【００３４】
マスタＡ １は、バス４を介して供給された命令（例えば、ＬＤＲ（ロード）命令）をデコード部２１に入力し、デコード部２１において伝達された命令を解読し、デコード信号Ｓ４をステートマシン２２に送出する。ステートマシン２２は、デコード信号Ｓ４に基づいて当該の命令を実行する際のステート遷移信号Ｓ５を生成し、時間制御信号生成部２３に送出する。時間制御信号生成部２３は、ステート遷移信号Ｓ５に基づいて、マスタＡ１が当該の命令の実行に要するサイクル数を含む時間制御信号Ｓ１を生成し、スケジューラ８に送出する。この時間制御信号Ｓ１には、要求元がマスタＡ １であることと前記のサイクル数に相当するバス占有要求時間の情報が含まれている。このバス占有要求時間は、個々の命令についてそれぞれ必要最小限のものとなっている。
【００３５】
スケジューラ８は、マスタＡ １からの時間制御信号Ｓ１をセレクタ制御部３１に入力し、セレクタ制御部３１において、時間制御信号Ｓ１に基づいて、マスタＡ１に関連するバス４を共有メモリ７へのバス９に対して占有的に接続すべきことおよび前記の命令実行必要サイクル数に対応するバス占有要求時間を示すバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２の選択端子に供給する。セレクタ３２は、バス選択・占有許可時間信号Ｓ６に基づいて、共有メモリ７へのバス９に占有的に接続すべきバスとしてマスタＡ１に関連するバス４を選択するとともに、その占有接続状態を当該命令実行に必要な最小限であるバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放する。
【００３６】
次に、スケジューラ８におけるセレクタ制御部３１は、要求元が優先順位が第２位のマスタＢ ２であることとマスタＢ ２が実行すべき命令の実行に必要なサイクル数に相当する必要最小限のバス占有要求時間の情報を含む時間制御信号Ｓ２をマスタＢ２から受け、この時間制御信号Ｓ２に基づいてバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２を制御することによって、共有メモリ７へのバス９に占有的に接続すべきバスとしてマスタＢ２に関連するバス５を選択するとともに、その占有接続状態を必要最小限のバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放する。
【００３７】
次に、スケジューラ８におけるセレクタ制御部３１は、要求元が優先順位が第３位のマスタＣ ３であることとマスタＣ ３が実行すべき命令の実行に必要なサイクル数に相当する必要最小限のバス占有要求時間の情報を含む時間制御信号Ｓ３をマスタＣ３から受け、この時間制御信号Ｓ３に基づいてバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２を制御することによって、共有メモリ７へのバス９に占有的に接続すべきバスとしてマスタＣ３に関連するバス６を選択するとともに、その占有接続状態を必要最小限のバス占有要求時間にわたって継続し、その時間の経過後は占有接続状態を解放する。
【００３８】
以降、上記の動作を繰り返す。以上により、３つのマスタ１，２，３の共有メモリ７に対するアクセスを効率的なものとする。
【００３９】
以上のように、本実施の形態においては、各マスタ１，２，３に設けた時間制御信号生成部２３において、命令デコード結果のステート遷移状態に基づいて、当該マスタが当該命令の実行に要する必要最小限のバス占有要求時間を正確に見積もり、そのバス占有要求時間の情報を含む時間制御信号Ｓ１，Ｓ２，Ｓ３を生成し、スケジューラ８において、各時間制御信号Ｓ１，Ｓ２，Ｓ３に基づいて、当該マスタの共有メモリ７に対するアクセスを必要最小限の時間に限って許可する。したがって、あるマスタの命令実行の終了後、直ちに次のマスタの共有メモリ７へのアクセスに移行することができ、マスタ間のバスの空サイクルを削減し、システムの高速性を実現することができる。
【００４０】
（実施の形態２）
上記の実施の形態１ではマスタに時間制御信号生成部を付加したのに対し、本発明の実施の形態２は、マスタには時間制御信号生成部を付加せず、代りにスケジューラを工夫するものである。
【００４１】
図４は本発明の実施の形態２におけるマイクロプロセッサの構成を示すブロック図である。
【００４２】
図４において、Ｓ１１はマスタＡ １から出力されるオペコードデータ、Ｓ１２はマスタＢ ２から出力されるオペコードデータ、Ｓ１３はマスタＣ３から出力されるオペコードデータである。その他の構成については実施の形態１の場合の図１と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
【００４３】
図５は本実施の形態のスケジューラ８の詳細な構成を示すブロック図である。
【００４４】
図５において、３３はマスタ１，２，３からそれぞれオペコードデータＳ１１，Ｓ１２，Ｓ１３を入力し、各オペコードデータＳ１１，Ｓ１２，Ｓ１３をデコードして命令識別信号Ｓ１４を生成するとともに、当該のマスタを示すマスタ識別信号Ｓ１５を生成するデコード部、３４は本システムで実行される全命令について、個々の命令ごとの実行サイクル数を記述している命令毎サイクル数テーブルであって、デコード部３３からの命令識別信号Ｓ１４が示す命令に対応したサイクル数を示すサイクル数信号Ｓ１６をセレクタ制御部３１に出力する。
【００４５】
セレクタ制御部３１は、デコード部３３からのマスタ識別信号Ｓ１５と命令毎サイクル数テーブル３４からのサイクル数信号Ｓ１６とを入力し、両信号に基づいて実施の形態１の場合と同様のバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２に送出する。
【００４６】
本実施の形態によれば、実施の形態１の場合のようなマスタ１，２，３への時間制御信号生成部２３の付加は必要でなく、すべてスケジューラ８での構成によって、実施の形態１の場合と同様の動作を行うことができる。すなわち、マスタのハード規模増大を抑制しつつ、汎用的にスケジューラ８においてシステムの高速性を実現できる。
【００４７】
（実施の形態３）
本発明の実施の形態３は、上記の実施の形態２と同様に、マスタには時間制御信号生成部を付加せず、代りにスケジューラに工夫するものである。実施の形態２の場合の命令毎サイクル数テーブル３４は全命令について、個々の命令ごとの実行サイクル数を記述するため、大きな記憶容量を必要とする。本実施の形態３は、この点を改良するものである。
【００４８】
図６は本発明の実施の形態３におけるマイクロプロセッサの構成を示すブロック図である。
【００４９】
図６において、Ｓ２１はマスタＡ １から出力されるプロセスＩＤ信号、Ｓ２２はマスタＢ ２から出力されるプロセスＩＤ信号、Ｓ２３はマスタＣ３から出力されるプロセスＩＤ信号である。その他の構成については実施の形態１の場合の図１と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
【００５０】
図７は本実施の形態のスケジューラ８の詳細な構成を示すブロック図である。
【００５１】
図７において、３５はマスタ１，２，３からそれぞれプロセスＩＤ信号Ｓ２１，Ｓ２２，Ｓ２３を入力し、各プロセスＩＤ信号Ｓ２１，Ｓ２２，Ｓ２３をデコードして選択信号Ｓ２４を生成するとともに、当該のマスタを示すマスタ識別信号Ｓ２５を生成するデコード部、３６は本システムで実行されるプロセスＩＤ値ごとの実行サイクル数を記述しているプロセス毎サイクル数テーブルであって、デコード部３５からの選択信号Ｓ２４が示すプロセスＩＤ値に対応したサイクル数を示すサイクル数信号Ｓ２６をセレクタ制御部３１に出力する。ここで、プロセスＩＤとは、ＲＯＭ１１に格納されたソフトウェアにて、例えばＬＤＲ命令とＳＴＲ命令等のシングル転送命令については“１”、ＬＤＭ命令等のバースト転送命令については“２”、というように設定されているものとする。
【００５２】
セレクタ制御部３１は、デコード部３５からのマスタ識別信号Ｓ２５とプロセス毎サイクル数テーブル３６からのサイクル数信号Ｓ２６とを入力し、両信号に基づいて実施の形態１の場合と同様のバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２に送出する。
【００５３】
本実施の形態によれば、実施の形態１の場合のようなマスタ１，２，３への時間制御信号生成部２３の付加は必要でなく、すべてスケジューラ８での構成によって、実施の形態１の場合と同様の動作を行うことができる。また、命令毎サイクル数テーブル３４が全命令について個々の命令ごとの実行サイクル数を記述するために大きな記憶容量を必要とする実施の形態２に比べて、個々の命令のレベルよりも上位のレベルでのまとまりとしてのプロセスＩＤ値対応のプロセス毎サイクル数テーブル３６を用いて、実施の形態１の場合と同様の動作を行うことができる。すなわち、マスタおよびスケジューラのハード規模増大を抑制しつつ、システムの高速性ならびに消費電力の低減を図ることができる。
【００５４】
（実施の形態４）
図８は本発明の実施の形態４におけるマイクロプロセッサのスケジューラの構成を示すブロック図である。図８において、実施の形態１の図３におけるのと同じ符号は同一構成要素を指しているので、詳しい説明は省略する。
【００５５】
本実施の形態のスケジューラ８は、図３に示すスケジューラ８において、さらに、サイクル数抽出部３７、前回サイクル数保持レジスタ３８および比較器３９を備えている。サイクル数抽出部３７は、マスタ１，２，３からの時間制御信号Ｓ１，Ｓ２，Ｓ３の中から現在有効のマスタの時間制御信号のサイクル数を抽出するものである。前回サイクル数保持レジスタ３８は、抽出されたサイクル数を前回のサイクル数Ｓn-1として保持するものである。比較器３９は、割り込み処理等により、実行予定のマスタが強制的に切り替えられた場合、サイクル数抽出部３７からの今回抽出したサイクル数Ｓnと前回サイクル数保持レジスタ３８からの前回抽出したサイクル数Ｓn-1とを比較し、今回抽出したサイクル数Ｓnが前回抽出したサイクル数Ｓn-1以下の場合（Ｓn≦Ｓn-1）には、マスタ切り替りにもかかわらず、サイクル数については切り替り前のサイクル数Ｓn-1を維持するための制御信号Ｓｐを生成し、セレクタ制御部３１に与えるものである。
【００５６】
優先順位が第１位のマスタＡ １が命令実行中に割り込みがあり、次に実行予定のマスタが優先順位が第２位のマスタＢ ２から優先順位が第３位のマスタＣ３に切り替わったとする。この場合、比較器３９において、切り替わり前のマスタＢ ２のサイクル数Ｓn-1と切り替わり後のマスタＣ ３のサイクル数Ｓnを比較器３９で比較し、マスタＣ３のサイクル数ＳnがマスタＢ ２のサイクル数Ｓn-1以下であった場合、マスタＢ ２のサイクル数Ｓn-1をそのまま設定する制御信号Ｓｐをセレクタ制御部３１に供給する。この結果、セレクタ制御部３１は、マスタＣ３に関連するバス１２を選択し、かつ、その選択の継続時間をマスタＣ ３のサイクル数Ｓnではなく、それに代えてマスタＢ ２のサイクル数Ｓn-1とするバス選択・占有許可時間信号Ｓ６を生成し、セレクタ３２に供給する。
【００５７】
本実施の形態によれば、スケジューラの指定する次順位マスタのバス占有要求が割り込み処理等によりなくなった場合においても、システムの性能低下を最小限に抑えることができる。
【００５８】
なお、上述の実施の形態１〜４の内容は、マスタをＣＰＵと想定して記述しているが、マスタがＤＭＡ等の場合であっても、ＤＭＡ制御レジスタからの信号をデコードする方法等により、同様の構成を容易に実現できることは言うまでもない。
【００５９】
【発明の効果】
以上のように本発明によれば、現在アクティブなマスタが実行すべき当該の命令の実行に要する必要最小限のバス占有要求時間を命令状態に応じてダイナミックに求め、この必要最小限のバス占有要求時間に限って、現在アクティブなマスタに関連するバスをスレーブモジュールのバスに占有的に接続し、そのバス占有要求時間の経過後は直ちに占有接続状態を解放するので、個々のマスタの個々の命令実行処理時間を正確に見積った上でのバス調停が可能となり、１つのマスタの処理終了と次のマスタの処理開始との間のバスの空サイクルを極力削減し、マイクロプロセッサのトータル処理能力の向上を実現することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるマイクロプロセッサの構成を示すブロック図
【図２】本発明の実施の形態１におけるマスタの詳細な構成を示すブロック図
【図３】本発明の実施の形態１におけるスケジューラの詳細な構成を示すブロック図
【図４】本発明の実施の形態２におけるマイクロプロセッサの構成を示すブロック図
【図５】本発明の実施の形態２におけるスケジューラの詳細な構成を示すブロック図
【図６】本発明の実施の形態３におけるマイクロプロセッサの構成を示すブロック図
【図７】本発明の実施の形態３におけるスケジューラの詳細な構成を示すブロック図
【図８】本発明の実施の形態４におけるマイクロプロセッサのスケジューラの詳細な構成を示すブロック図
【図９】従来のマイクロプロセッサの構成を示すブロック図
【図１０】従来のマイクロプロセッサの動作を説明するタイミングチャート
【符号の説明】
１  優先順位が第１位のマスタＡ
２  優先順位が第２位のマスタＢ
３  優先順位が第３位のマスタＣ
４  マスタＡ １に関連するバス
５  マスタＢ ２に関連するバス
６  マスタＣ ３に関連するバス
７  スレーブモジュールとしての共有メモリ
８  スケジューラ
１０  バスコントローラ
１１  ＲＯＭ
２１，３３，３５  デコード部
２２  ステートマシン
２３  時間制御信号生成部
３１  セレクタ制御部
３２  セレクタ
３４  命令毎サイクル数テーブル
３６  プロセス毎サイクル数テーブル
３７  サイクル数抽出部
３８  前回サイクル数保持レジスタ
３９  比較器
５０  マイクロプロセッサ
Ｓ１，Ｓ２，Ｓ３  時間制御信号
Ｓ４  デコード信号
Ｓ５  ステート遷移信号
Ｓ６  バス選択・占有許可時間信号
Ｓ１１，Ｓ１２，Ｓ１３  オペコードデータ
Ｓ１４  命令識別信号
Ｓ１５，Ｓ２５  マスタ識別信号
Ｓ１６，Ｓ２６  サイクル数信号
Ｓ２１，Ｓ２２，Ｓ２３  プロセスＩＤ信号
Ｓ２４  選択信号
Ｓn  今回抽出したサイクル数
Ｓn-1  前回抽出したサイクル数
【図１】
2004199564.tif 000003
【図２】
2004199564.tif 000004
【図３】
2004199564.tif 000005
【図４】
2004199564.tif 000006
【図５】
2004199564.tif 000007
【図６】
2004199564.tif 000008
【図７】
2004199564.tif 000009
【図８】
2004199564.tif 000010
【図９】
2004199564.tif 000011
【図１０】
2004199564.tif 000012