(57)【要約】【課題】複数の処理装置が複数の機能ブロックに同時にアクセスする場合に、内部バスの使用権を調停して単位時間により多くの命令発行を処理する。【解決手段】処理装置Ｂが発行する命令の処理装置Ａおよび機能ブロックＡ、Ｂへの供給と、処理装置Ｂが発行した命令に基づいて処理装置Ａが発行する命令の機能ブロックＡ、Ｂへの供給とを行う命令供給制御装置であって、処理装置Ａが発行する命令の処理に必要なクロックサイクル数を取得するデコード部Ａ、Ｂと、取得したクロックサイクル数と処理装置Ｂが発行する命令の処理に必要なクロックサイクル数とを比較する比較器と、比較結果に応じて機能ブロックＡ、Ｂへ供給される命令を調停する調停部とを備える。【選択図】  図２
2006065540.tif 000002
【特許請求の範囲】
【請求項１】
第1の処理装置が発行する命令の第2の処理装置および機能ブロックへの供給と、前記第1の処理装置が発行した命令に基づいて前記第2の処理装置が発行する命令の前記機能ブロックへの供給とを行う命令供給制御装置であって、
前記第２の処理装置が発行する命令の処理に必要なクロックサイクル数を取得するクロックサイクル数取得部と、
取得したクロックサイクル数と前記第1の処理装置が発行する命令の処理に必要なクロックサイクル数とを比較する比較部と、
比較結果に応じて前記機能ブロックへ供給される命令を調停する調停部と、
を備える命令供給制御装置。
【請求項２】
請求項１記載の命令供給制御装置であって、
前記クロックサイクル数取得部は、前記第１の処理装置が発行する命令に予め含まれるクロックサイクル数を取得する命令供給制御装置。
【請求項３】
請求項１記載の命令供給制御装置であって、
前記第1の処理装置が発行する命令に必要なクロックサイクル数として前記第1の処理装置が発行する命令に予め含まれる基準サイクル数を保持する保持部を備える命令供給制御装置。
【請求項４】
請求項１記載の命令供給制御装置であって、
前記クロックサイクル数取得部は、前記クロックサイクル数を記述したテーブルを参照して前記クロックサイクル数を取得する命令供給制御装置。
【請求項５】
請求項４記載の命令供給制御装置であって、
前記クロックサイクル数を単一命令毎または複数命令毎に記述したテ−ブルを備える命令供給制御装置。
【請求項６】
請求項１記載の命令供給制御装置であって、
前記クロックサイクル数取得部は、前記第１の処理装置が発行する命令のアドレスに基づいて、クロックサイクル数を取得する命令供給制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第1の処理装置が発行する命令の第2の処理装置および機能ブロックへの供給と、前記第1の処理装置が発行した命令に基づいて前記第2の処理装置が発行する命令の前記機能ブロックへの供給とを行う命令供給制御装置に関する。
【背景技術】
【０００２】
図１は、２つの処理装置が２つの機能ブロックにアクセスする場合の従来のシステムを示す。処理装置Ｂ[1-1]から発行される命令を、処理装置Ｂ[1-1]のスレーブデバイスである処理装置Ａ[1-2]、機能ブロックＡ[1-3]、または機能ブロックＢ[1-4]に転送する際には、バスブリッジ[1-6]にアクセス要求を通知し、バスブリッジ[1-6]でデコードされたアクセス要求に応じてスレーブデバイス[1-2]、[1-3]、または[1-4]に転送するという方法をとっていた。
【０００３】
ここで、処置装置Ａ[1-2]が、処理装置Ｂ[1-1]から受けた命令を処理して、別のスレーブデバイス[1-3]、または[1-4]へ命令を転送する際には、調停部[1-8]によって処理装置Ｂ[1-1]と処置装置Ａ[1-2]からのリクエスト信号を受けてバス[1-5]へのアクセス権を調停する（例えば、特許文献１参照）。
【特許文献１】特開平６−２０８５２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のシステムにあっては、処理装置Ｂ[1-1]から発行される命令を逐次的にスレーブデバイス[1-2]、[1-3]、または[1-4]に発行するため、処理装置Ｂ[1-1]から出された処理装置Ａ[1-2]への命令によって、処理装置Ａ[1-2]が機能ブロックＡ[1-3]、機能ブロックＢ[1-4]に対してアクセスを行う場合には、処理装置Ｂ[1-1]から機能ブロックＡ[1-3]、機能ブロックＢ[1-4]へのアクセスと、処理装置Ａ[1-2]から機能ブロックＡ[1-3]、機能ブロックＢ[1-4]へのアクセスが同時に発生する。
【０００５】
そのため処理装置Ａ[1-2]、処理装置Ｂ[1-1]が内部バス[1-5]の使用権を取り合うことになり、バス権を取れないマスタ（処理装置Ａ、もしくは処理装置Ｂ）はその間処理を停止することがある。
【０００６】
本発明は、複数の処理装置が複数の機能ブロックに同時にアクセスする場合に、内部バスの使用権を調停して単位時間により多くの命令発行を処理することができる命令供給制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の命令供給制御装置は、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタ制御装置と、各マスタが発行する命令を受ける機能ブロックとに接続され、一方のマスタ制御装置（処理装置Ｂ）から発行された命令を他方のマスタ処理装置（処理装置Ａ）が受け、受けた命令によって処理装置Ａが機能ブロックに対する命令を発行する場合と、処理装置Ｂから機能ブロックに対して直接命令を発行する場合が混在する際に、処理装置Ａが受けた処理に対して、必要となるサイクル数を見積もるためのデコード部と、見積もったサイクル数と基準サイクルを比較するための比較器と、機能ブロックへの供給命令を選択する調停部とを具備する。ここで、一方の処理装置Ｂから発行される命令のうち任意のbitにあらかじめもう一方の処理装置Ａでの処理に必要なサイクル数を記述しておく。
【０００８】
すなわち、本発明の命令供給制御装置では、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等２つのマスタ処理装置のうち、処理装置Ｂからの命令を受けて処理装置Ａが機能ブロックへの命令発行を行う場合に、処理装置Ｂから発行された命令を、デコード部でデコードすることにより必要サイクル数の見積もりを行い、比較器による必要サイクルと基準サイクル数とのサイクル数比較を行う。
【０００９】
本発明の命令供給制御装置によれば、調停部が、命令処理に必要なサイクル数が基準サイクル数を超える場合は、処理装置Ｂから発行される後続の機能ブロックに対する命令供給を行い、基準サイクル数を超えない場合は処理装置Ａの処理が終了した後に後続の命令供給を行うことにより、同一時間でより多くの命令発行を行うことができる。
【００１０】
また、本発明の命令供給制御装置は、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタと、各マスタが発行する命令を受ける機能ブロックとに接続され、一方の処理装置（処理装置Ｂ）から発行された命令に対して、もう一方の処理装置（処理装置Ａ）が命令を受け、受けた命令によって処理装置Ａが機能ブロックに対する命令を発行する場合と、処理装置Ｂから機能ブロックに対して直接命令を発行する場合が混在する際に、処理装置Ａが受けた命令に対して、必要になるサイクル数を見積もるためのサイクル数参照テーブルと、見積もったサイクル数と基準サイクルを比較するための比較器と、機能ブロックへの供給命令を選択する調停部とを具備する。
【００１１】
すなわち、本発明の命令供給制御装置では、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタのうち、一方の処理装置Ｂからの命令を受けて処理装置Ａが機能ブロックへの命令発行を行う場合に、発行された命令に対してサイクル数参照テーブルによって必要サイクル数見積もりを行い、次に比較器による基準サイクル数とのサイクル数比較を行う。
【００１２】
本発明の命令供給制御装置によれば、調停部が、命令加工処理に必要なサイクル数が基準値を超える場合は機能ブロックに対して後続の命令供給を行い、基準値を超えない場合は処理装置Ａの処理終了後に、処理装置Ｂが発行する後続の命令を供給することにより、同一時間でより多くの命令発行を行うことができる。また、サイクル数参照テーブルを用いることにより、命令内にサイクル数を記述する必要がないため、命令のbit長を削減することができる。
【００１３】
また、本発明の命令供給制御装置は、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタと、各マスタが発行する命令を受ける機能ブロックとに接続され、一方のマスタ処理装置（処理装置Ｂ）から発行された命令に対して、もう一方の処理装置（処理装置Ａ）が命令を受け、受けた命令によって処理装置Ａが機能ブロックに対する命令を発行する場合と、処理装置Ｂから機能ブロックに対して直接命令を発行する場合が混在する際に、処理装置Ａが受けた命令に対して必要になるサイクル数を見積もるために複数の命令ごとに必要サイクル数を要約して記述したサイクル数参照テーブルと、見積もったサイクル数と基準サイクルを比較するための比較器と、機能ブロックへの供給命令を選択する調停部とを具備する。
【００１４】
すなわち、本発明の命令供給制御装置では、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタのうち、処理装置Ｂからの命令を受けて処理装置Ａが機能ブロックへの命令発行を行う場合に、発行された命令に対してサイクル数参照テーブルによって必要サイクル数見積もりを行い、次に比較器による基準サイクル数とのサイクル数比較を行う。
【００１５】
本発明の命令供給制御装置によれば、調停部が、命令加工処理に必要なサイクル数が基準値を超える場合は機能ブロックに対して処理装置Ｂが発行する後続の命令供給を行い、基準値を超えない場合は処理装置Ａの処理が終了した後、処理装置Ｂから発行される後続の命令供給を行うことにより、同一時間でより多くの命令発行を行うことができる。
【００１６】
また、サイクル数参照テーブルを用いることにより、命令内にサイクル数を記述する必要がないため、命令のbit長を削減することができ、更に複数の命令ごとに要約したサイクル数を記述したサイクル数参照テーブルを用いることにより、サイクル数参照テーブルの回路規模を縮小することができる。
【００１７】
また、本発明の命令供給制御装置は、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等の２つのマスタ制御装置と、各マスタが発行する命令を受ける機能ブロックとに接続され、一方のマスタ制御装置（処理装置Ｂ）から発行した命令に対して、他方のマスタ処理装置（処理装置Ａ）画が命令を受けて処理装置Ａが機能ブロックへの命令発行を行う場合に、処理装置Ａでの処理に必要となるサイクル数を見積もるためのデコード部と、見積もったサイクル数と基準サイクルを比較するための比較器と、機能ブロックへの供給命令を選択する調停部とを具備する。ここで、処理装置Ｂから発行される命令の命令アドレスをあらかじめ、「命令アドレス＝処理装置での必要サイクル数」という制約を与えておく。
【００１８】
すなわち、本発明の命令供給制御装置では、同一または異なったバスに接続されたＣＰＵ、ＤＳＰ等２つのマスタ処理装置のうち、処理装置Ｂからの命令を受けて処理装置Ａが機能ブロックへの命令発行を行う場合に、発行された命令アドレスを参照することにより必要サイクル数の見積もりを行い、比較器による基準サイクル数とのサイクル数比較を行う。
【００１９】
本発明の命令供給制御装置によれば、調停部が、処理装置Ａでの必要なサイクル数が基準値を超える場合は処理装置Ｂが発行する後続の命令供給を行い、基準値を超えない場合は処理装置Ａの処理が終了した後に処理装置Ｂが発行する後続の命令を供給することにより、同一時間でより多くの命令発行を行うことができる。また、命令コード内にサイクル数を記述する必要がないため命令のbit長を削減することができ、さらに必要サイクル参照テーブルも必要ないため、回路規模を大幅に削減することができる。
【発明の効果】
【００２０】
本発明によれば、２つのマスタから発行される命令の内、マスタ１が発行する一部の命令がもう一方のマスタ２に命令を発行し、マスタ２から機能ブロックへの命令発行を行う場合、マスタ１が発行する命令コード内にマスタ２での処理に必要なクロックサイクル数を記述しておき、マスタ２に命令を供給する前にその値を見積もり、基準値よりも多くのサイクル数がかかる際に、マスタ１が発行する機能ブロックへの命令供給を先行して行うことで、マスタ１、マスタ２の動作に影響を与えることなく、バスを効率的に使用できるように命令を発行することができる。
【００２１】
また、サイクル数見積もりの際に、マスタ１が発行する全部の命令に対して、マスタ２での処理に必要なサイクル数を記述したサイクル数参照テーブルを用いることによって、命令コードにサイクル数を入れる必要がなくなり、命令コード幅が増大することを防ぐことができる。
【００２２】
また、サイクル参照テーブルに関して、複数命令ごとにサイクル数を記述したサイクル数参照テーブルを用いることによって、サイクル参照テーブルの回路規模を削減することができる。
【００２３】
さらに、命令コード内に必要サイクル数を記述するのではなく、「命令アドレス＝必要サイクル数」とすることで命令コード幅を増やすことなく、またサイクル数参照テーブルを用いることなくマスタ２での必要クロックサイクル数を見積もることができる。
【発明を実施するための最良の形態】
【００２４】
（第１の実施の形態）
図２は、本発明の第1の実施形態を説明するための概略のブロック図である。本実施形態は、処理装置Ａ[2-1]、処理装置Ｂ[2-2]、機能ブロックＡ[2-10]、機能ブロックＢ[2-11]、命令供給制御装置[2-13]により構成される。また、命令供給制御装置[2-13]は、デコード部Ａ [2-3]、デコード部Ｂ[2-4]、調停部[2-9]、比較器[2-7]、バッファＡ[2-5]、バッファＢ[2-6]、基準サイクルレジスタ[2-8]によって構成される。ここで、処理装置Ｂ[2-2]（第1の処理装置）は、処理装置Ａ[2-1]（第２の処理装置）、機能ブロックＡ[2-10]および機能ブロックＢ[2-11]に対する命令を発行し、処理装置Ａ[2-1]は、機能ブロックＡ[2-10]および機能ブロックＢ[2-11]に対する命令を発行する。
【００２５】
図３は、本実施形態における処理装置Ｂ[2-2]が発行する命令のコード内容を示す。図３に示すように、処理装置Ｂ[2-2]が発行する命令には、処理装置Ｂ[2-2]から発行された命令を処理装置Ａ[2-1]が受け、処理装置Ａ[2-1]において処理終了するまでの必要サイクル数（第１のクロックサイクル数）を示すbitが、任意のbitに設けられている。
【００２６】
一方、処理装置Ｂ[2-2]の命令処理に必要なサイクル数は、基準サイクル（第２のクロックサイクル数）として設定される。基準サイクルは、処理装置Ｂ[4-2]から、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]へ命令を転送するために必要十分なサイクル数を設定する。必要十分なサイクル数は、開発過程において得られた結果から、任意に設定するものである。
【００２７】
図４は、図２に示した実施形態の詳細なブロック図である。図４に示すように、調停部[4-17]には、セレクタ[4-13]およびバッファ読み出し装置[4-12]が含まれる。図４を参照して、本実施形態の動作について説明する。前述のように、処理装置Ｂ[4-2]が発行する命令には、処理装置Ａ[4-1]、機能ブロックＡ[4-9]、および機能ブロックＢ[4-10]に対する命令が含まれている。そのうち処理装置Ａ[4-1]に対する命令は、処理装置Ａ[4-1]での処理実行後、さらに処理装置Ａ[4-1]から機能ブロックＡ[4-9]、または機能ブロックＢ[4-10]に命令を発行する。
【００２８】
処理装置Ｂ[4-2]から命令が発行されると、まず、デコード部Ａ[4-3]でデコードする。  デコードした命令のうち、処理装置Ｂ[4-2]の処理サイクル数を示す基準サイクル数は、基準サイクルレジスタ[4-8]に入力され、基準サイクルとして設定される。一方、デコードした命令のうち、処理装置Ａ[4-1]、機能ブロックＡ[4-9]、または機能ブロックＢ[4-10]に対する命令は、処理装置Ａ[4-1]のグループと、機能ブロックＡ[4-9]、または機能ブロック[4-10]との２つのグループにそれぞれ分けられた上で、バッファに一時保持される。すなわち、処理装置Ａに対する命令はバッファＡ[4-5]に保持され、機能ブロックＡ[4-9]、または機能ブロックＢ[4-10]に対する命令はバッファＢ[4-6]に保持される。
【００２９】
次に、バッファＡ[4-5]から処理装置Ａ[4-1]に対する命令が供給されると、同時にデコード部Ｂ[4-4]によって処理装置Ａ[4-1]で命令を処理するための必要サイクル数の見積もりを行う。本実施形態ではデコード部Ｂ[4-4]によるデコード結果を例えば100であったとする。すなわち、処理装置Ａ[4-1]が命令を処理するための必要サイクル数の見積もり値が100であったとする。
【００３０】
次に、見積もった必要サイクル数100と、あらかじめ設定された基準サイクルレジスタ[4-8]の値とを比較器[4-7]にて比較する。ここでは、基準サイクルを50であったとする。  ここで、デコード結果（見積もり値）が基準サイクル数よりも大きい場合、セレクタ[4-13]からの信号によってバッファ読み出し装置[4-12]がバッファ読み出し信号Ｂ[4-15]をアサートすることにより、バッファＢ[4-6]からの命令読み出し命令を発行する。
【００３１】
本実施形態では、基準サイクル50に対してデコード結果（見積もり値）が100であるので、「処理装置Ｂ[4-2]からの命令が発行される期間」＜「処理装置Ａ[4-1]からの命令が発行されるまでの期間」が成り立つ。したがって、この場合は、バッファＢ[4-6]から、処理装置Ｂ[4-2]の機能ブロックＡ[4-9]、または機能ブロックＢ[4-10]に対する次の命令を読み出す。
【００３２】
すなわち、バッファ読み出し装置[4-12]により、処理装置Ａ[4-1]から機能ブロックＡ、または機能ブロックＢへの命令が発行される前に、バッファＢ[4-6]から処理装置Ｂ[4-2]の機能ブロックＡ[4-9]、または機能ブロック[4-10]への次の命令を読み出し、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対して命令を発行することができる。
【００３３】
一方、「処理装置Ｂ[4-2]からの命令が発行される期間」＞「処理装置Ａ[4-1]からの命令が発行されるまでの期間」が成り立つときは、通常通り、処理装置Ａ[4-1]から機能ブロックＡ[4-9]、または機能ブロックＢ[4-10]への命令を先行させて発行する。
【００３４】
以上、本実施形態によれば、処理装置Ａ[4-1]から機能ブロックA[4-9]、または機能ブロックB[4-10]への命令の発行が基準サイクル数を超える、すなわち長時間を要する場合には、処理装置Ａ[4-1]を用いない命令を先行させて発行することで、命令供給を高速化することができる。
【００３５】
（第２の実施の形態）
図５は、本発明の第２の実施形態を説明するための概略のブロック図である。本実施形態は、処理装置Ａ[5-1]、処理装置Ｂ[5-2]、機能ブロックＡ[5-6]、機能ブロックＢ[5-7]、命令供給制御装置[5-9]から構成される。また、命令供給制御装置[5-9]は、サイクル数参照テーブルＡ[5-3]、比較器[5-5]、基準サイクルレジスタ[5-4]および調停部[5-8]によって構成される。本実施形態においても、処理装置Ａ[5-1]は、機能ブロックＡ[5-6]、機能ブロックＢ[5-7]に対する命令を発行し、処理装置Ｂ[5-2]は、処理装置Ａ[5-1]、機能ブロックＡ[5-6]、機能ブロックＢ[5-7]に対する命令を発行する。
【００３６】
図６は、図５に示した実施形態の詳細なブロック図である。図６において、命令供給制御装置[6-15]は、サイクル数参照テーブルＡ[6-6]、比較器[6-8]、基準サイクルレジスタ[6-9]、調停部[6-16]、デコード部Ａ[6-3]、バッファＡ[6-4]、バッファＢ[6-5]、およびＡＤデコード部[6-7]を含み、調停部[6-16]は、セレクタ[6-13]およびバッファ読み出し装置[6-12]を含む。
【００３７】
図６を参照して、本実施形態の動作について説明する。前述のように、処理装置Ｂ[6-2]が発行する命令には、処理装置Ａ[6-1]に対する命令と機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に対する命令があり、処理装置Ａ[6-1]に対する命令においては処理装置Ａ[6-1]での処理実行後、処理装置Ａ[6-1]から機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に命令を発行する。
【００３８】
まず、基準サイクルレジスタ[6-9]に基準となるサイクル数を設定する。基準サイクル数は、処理装置Ｂ[6-2]から、機能ブロックＡ[6-10]、機能ブロックＢ[6-11]へ命令を供給するために必要十分なサイクル数を任意に設定する。次に処理装置Ｂ[6-2]が発行する命令をデコード部Ａ[6-3]にてデコードすることによって処理装置Ａ[6-1]に対する命令と、機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に対する命令とに分けた上で、バッファに一時保持する。すなわち、処理装置Ａに対する命令はバッファＡ[6-4]に保持し、機能ブロックＡ[6-10]、または機能ブロックＢ[6-11]に対する命令はバッファＢ[6-5]に保持する。そして、バッファＡ[6-4]から処理装置Ａ[6-1]へ命令を供給するのに先立ち、ＡＤデコード部[6-7]はアドレスデコードを行い、そのデコード結果とサイクル数参照テーブル[6-6]により、処理装置Ａ[6-1]への命令の処理に必要なサイクル数見積もりを行う。ここでは仮に、処理装置Ａ[6-1]に対して処理装置Ｂ[6-2]が発行した命令のアドレスが0000であったとする。
【００３９】
図７は、本実施形態のサイクル数参照テーブル[6-6]を示す。サイクル数参照テーブル[6-6]には、命令コードごとに、アドレスに対応させて処理装置Ａ[6-1]での処理に必要となるサイクル数が記述されている。本実施形態ではアドレスが0000であるので、この命令を処理装置Ａ[6-1]に発行すると、処理装置Ａ[6-1]は10サイクルで処理結果を発行する。
【００４０】
次に、見積もった必要サイクル数（10サイクル）と、あらかじめ設定された基準サイクル数とを比較器[6-8]にて比較する。ここでは、基準サイクルを50とする。見積もり結果が基準サイクル数よりも大きい場合、セレクタ[6-13]がバッファ読み出し装置[6-12]にアクセスすることにより、バッファ読み出し装置は[6-12]はバッファ読み出し信号Ｂ[6-17]をアサートするが、ここでは基準サイクル50サイクルに対して見積もりサイクルが10サイクルであるので、セレクタ[6-13]はバッファＢ[6-5]からの読み出しを行わず、処理装置Ａ[6-1]の処理終了を待つ。
【００４１】
処理装置Ａ[6-1]の処理結果を機能ブロックＡ[6-10]もしくは機能ブロックＢ[6-11]に発行した後は、再び、処理装置Ｂ[6-2]が発行する処理装置Ａ[6-1]に対する命令の処理に要する必要サイクル数を見積もり、基準サイクルとの比較を行う。比較した結果、サイクル数参照テーブル[6-6]によって見積もった値が基準サイクルより大きい場合は、処理装置Ｂ[6-2]から発行される命令を機能ブロックＡ[6-10]、もしくは機能ブロックＢ[6-11]に供給し、サイクル数参照テーブル[6-6]によって見積もった値が基準サイクルより小さい場合には、処理装置Ａ[6-1]から発行される命令を機能ブロックＡ[6-10]、もしくは機能ブロックＢ[6-11]に供給する。
【００４２】
以上、本実施形態によれば、処理装置Ｂ[6-2]から直接機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に命令を供給する場合と、処理装置Ｂ[6-2]から処理装置Ａ[6-1]へ命令を供給し、処理装置Ａ[6-1]にて命令を加工した後に機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に供給する場合が混在する場合、処理装置Ｂ[6-2]から発行された命令のうち、処理装置Ａ[6-1]を用いない命令を先行させて発行することで、処理装置Ａ[6-1]での加工処理中に処理装置Ｂ[6-2]から機能ブロックＡ[6-10]、機能ブロックＢ[6-11]に命令供給を行うことができる。また、命令サイクル参照テーブル[6-6]を用いることによって、命令コード内に処理装置Ａ[6-1]での必要サイクル数を記述しておく必要がないため、命令コードのbit長を短縮することができる。
【００４３】
（第３の実施の形態）
図８は、本発明の第３の実施形態を説明するための概略のブロック図である。本実施形態は、処理装置Ａ[8-1]、処理装置Ｂ[8-2]、機能ブロックＡ[8-10]、機能ブロックＢ[8-11]、命令供給制御装置[8-15]により構成される。また、命令供給制御装置[8-15]は、デコード部Ａ[8-3]、バッファＡ[8-4]、バッファＢ[8-5]、ＡＤデコード部[8-7]、サイクル数参照テーブル[8-6]、比較器[8-8]、基準サイクルレジスタ[8-9]、調停部[8-16]によって構成され、調停部[8-16]は、セレクタ[8-13]、バッファ読み出し装置[8-12]を含む。
【００４４】
本実施形態においても、処理装置Ｂ[8-2]が発行する命令には、処理装置Ａ[8-1]に対する命令と、機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に対するものがあり、処理装置Ａ[8-1]に対する命令においては、処理装置Ａ[8-1]での処理実行後、処理装置Ａ[8-1]から機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に命令を発行する。
【００４５】
まず、基準サイクルレジスタ[8-9]に対して基準となるサイクル数を設定する。基準サイクル数は、処理装置Ｂ[8-2]から、機能ブロックＡ[8-10]、機能ブロックＢ[8-11]へ命令を供給するために必要十分なサイクル数を任意に設定する。次に、処理装置Ｂ[8-2]が発行する命令を、デコード部Ａ[8-3]にてアドレスデコードすることによって、処理装置Ａ[8-1]に対する命令と、機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に対する命令とに分ける。
【００４６】
ここで、処理装置Ａ[8-1]に対する命令をバッファＡ[8-4]に蓄え、機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に対する命令をバッファＢ[8-5]に蓄える。バッファＡ[8-4]より、処理装置Ａ[8-1]に対する命令が供給されると同時に、ＡＤデコード部[8-7]ではアドレスデコードを行う。そして、ＡＤデコード部[8-7]によるデコード結果とサイクル数参照テーブル[8-6]を参照することによって必要サイクル数見積もりを行う。
【００４７】
本実施形態のサイクル数参照テーブル[8-6]を図９に示す。例えば命令アドレスが４bitの命令において、アドレスが2bitのテーブルを用いることで複数の命令をグループ化し、複数の命令アドレスごとに処理装置Ａ[8-1]での処理に必要となるサイクル数が記述されている。命令アドレスが0010の命令コードであれば、上位２ビットを参照することにより、処理装置Ａ[8-1]での必要サイクル数は10サイクルということになる。
【００４８】
次に、見積もった必要サイクル数（10サイクル）と、あらかじめ設定された基準サイクル数とを比較器[8-8]にて比較する。例えば基準サイクル数が5サイクルである場合、見積もり結果が基準サイクル数よりも大きいので、セレクタＡ[8-13]がバッファ読み出し装置[8-12]にアクセスすることにより、バッファ読み出し装置[8-12]はバッファＢ[8-5]からの命令読み出し命令[8-17]を発行する。すなわち処理装置Ａ[8-1]から処理結果が出力される前にバッファＢ[8-5]からの命令を読み出し、処理装置Ｂ[8-2]から機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に対する命令を発行することができる。
【００４９】
以上、本実施形態によれば、処理装置Ｂ[8-2]から直接機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に命令を供給する場合と、処理装置Ｂ[8-2]から処理装置Ａ[8-1]へ命令を供給し、処理装置Ａ[8-1]にて命令を加工した後に機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に供給する場合が混在する場合、処理装置Ｂ[8-2]から発行された命令のうち、処理装置Ａ[8-1]を用いない命令を先行させて発行することで、処理装置Ａ[8-1]での加工処理中に処理装置Ｂ[8-2]から機能ブロックＡ[8-10]、機能ブロックＢ[8-11]に命令供給を行うことができる。
【００５０】
また、複数の命令ごとに区切った命令サイクル参照テーブル[8-6]を用いることによって、命令コード内に処理装置Ａ[8-1]での必要サイクル数を記述しておく必要がないため、命令コードのbit長を短縮することができると共に、第２の実施形態の構成に比べてサイクル数参照テーブル[8-6]の回路規模を削減することができる。
【００５１】
（第４の実施の形態）
次に、本発明の第４の実施形態について説明する。本実施形態は第１の実施形態と同じなので、図４を用いて本実施形態について説明する。
【００５２】
図４に示すように、本実施形態は、処理装置Ａ[4-1]、処理装置Ｂ[4-2]、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]、命令供給制御装置[4-14]を含み、命令供給制御装置[4-14]は、デコード部Ａ[4-3]、デコード部Ｂ[4-4]、比較器[4-7]、基準サイクルレジスタ[4-8]、調停部[4-17]によって構成される。また、調停部[4-17]は、セレクタ[4-13]、バッファ読み出し装置[4-12]を含む。
【００５３】
本実施形態においても、処理装置Ａ[4-1]、処理装置Ｂ[4-2]は、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対する命令を発行する。ここで、処理装置Ｂ[4-2]が発行する命令のアドレスには、処理装置Ｂ[4-2]から発行された命令を処理装置Ａ[4-1]が処理終了するまでの必要サイクル数を示す命令終了bitが示されている（図１０参照）。
【００５４】
前述のように、処理装置Ｂ[4-2]が発行する命令は、処理装置Ａ[4-1]に対する命令と機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対するものがあり、処理装置Ａ[4-1]に対する命令においては、処理装置Ａ[4-1]での処理実行後、処理装置Ａ[4-1]から機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に命令を発行する。
【００５５】
まず、処理装置Ｂ[4-2]が発行する命令をデコード部Ａ[4-3]にてアドレスをデコードすることによって処理装置Ａ[4-1]に対する命令と、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対する命令とに分ける。ここで、処理装置Ａ[4-1]に対する命令をバッファＡ[4-5]に蓄え、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対する命令をバッファＢ[4-6]に蓄える。バッファＡ[4-5]より、処理装置Ａ[4-1]に対する命令が供給されると同時にデコード部Ｂ[4-4]によって処理装置Ａ[4-1]での必要サイクル数見積もりを行う。
【００５６】
ここで、デコード対象となるのは図１０に示す命令のアドレス部分である。本実施形態ではデコード部Ｂ[4-4]によるデコード結果（見積もり値）を例えば100とする。次に見積もった必要サイクル数100と、あらかじめ設定された基準サイクル数とを比較器[4-7]にて比較する。基準サイクルは処理装置Ｂ[4-2]から、機能ブロックＡ[4-9]、機能ブロックＢ[4-10]へ命令を供給するために必要十分なサイクル数を任意に設定する。ここでは、基準サイクルを50とする。
【００５７】
デコード結果（見積もり値）が基準サイクル数よりも大きい場合、セレクタＡ[4-13]からの信号によってバッファ読み出し装置[4-12]がバッファ読み出し信号[4-15]をアサートすることにより、バッファＢ[4-6]からの命令読み出し命令を発行する。この場合、基準サイクル50に対してデコード結果（見積もり値）が100であるので、「処理装置Ｂからの命令が発行される期間」＜「処理装置Ａからの命令が発行されるまでの期間」が成り立つ。このため、バッファＢ[4-6]から機能ブロックに対する命令を読み出す。すなわち命令供給制御装置[4-14]により、処理装置Ａ[4-1]から処理結果が出力される前にバッファＢ[4-6]からの命令を読み出し、処理装置Ｂ[4-2]から機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に対する命令を発行することができる。
【００５８】
以上、本実施形態によれば、処理装置Ｂ[4-2]から直接機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に命令を供給する場合と、処理装置Ｂ[4-2]から処理装置Ａ[4-1]へ命令を供給し、処理装置Ａ[4-1]にて命令を加工した後に機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に供給する場合が混在する場合、処理装置Ｂ[4-2]から発行された命令のうち、処理装置Ａ[4-1]を用いない命令を先行させて発行することで、処理装置Ａ[4-1]での加工処理中に処理装置Ｂ[4-2]からの命令を機能ブロックＡ[4-9]、機能ブロックＢ[4-10]に供給することができる。また、命令コード内にサイクル数bitを設けていないため、命令コードのbit数を削減することができる。なお、比較器[4-7]における比較は、見積もった必要サイクル数と、処理装置Ｂ[4-2]から機能ブロックＡ[4-9]、機能ブロックＢ[4-10]への命令をデコードすることによって得られたサイクル数とを比較するものであってもよい。
【産業上の利用可能性】
【００５９】
本発明の命令供給制御装置は、２つのマスタから発行される命令の内、マスタ１が発行する一部の命令がもう一方のマスタ２に命令を発行し、マスタ２から機能ブロックへの命令発行を行う場合、マスタ１が発行する命令コード内にマスタ２での処理に必要なクロックサイクル数を記述しておき、マスタ２に命令を供給する前にその値を見積もり、基準値よりも多くのサイクル数がかかる際に、マスタ１が発行する機能ブロックへの命令供給を先行して行うことで、マスタ１、マスタ２の動作に影響を与えることなく、バスを効率的に使用できるように命令を発行することができるという効果を有し、複数のスレーブデバイスに対して命令を供給する技術等として有用である。
【図面の簡単な説明】
【００６０】
【図１】従来の構成を示す図
【図２】第1の実施形態を示す図
【図３】第1の実施形態におけるサイクル記述命令コードを示す図
【図４】第1の実施形態を示す図
【図５】第２の実施形態を示す図
【図６】第２の実施形態を示す図
【図７】第２の実施形態におけるサイクル数参照テーブルを示す図
【図８】第３の実施形態を示す図
【図９】第３の実施形態におけるサイクル数参照テーブルを示す図
【図１０】第４の実施形態における「命令アドレス＝サイクル数」の命令コード内容を示す図
【符号の説明】
【００６１】
1-1   処理装置Ｂ
1-2   処理装置Ａ
1-3   機能ブロックＡ
1-4   機能ブロックＢ
1-5   バス
1-6   バスブリッジ
1-7   デコード部
1-8   調停部
2-1   処理装置Ａ
2-2   処理装置Ｂ
2-3   デコード部Ａ
2-4   デコード部Ｂ
2-5   バッファＡ
2-6   バッファＢ
2-7   比較器
2-8   基準サイクルレジスタ
2-9   調停部
2-10  機能ブロックＡ
2-11  機能ブロックＢ
2-12  内部バス
2-13  命令供給制御装置
4-1   処理装置Ａ
4-2   処理装置Ｂ
4-3   デコード部Ａ
4-4   デコード部Ｂ
4-5   バッファＡ
4-6   バッファＢ
4-7   比較器
4-8   基準サイクルレジスタ
4-9   機能ブロックＡ
4-10  機能ブロックＢ
4-11  内部バス
4-12  バッファ読み出し装置
4-13  セレクタ
4-14  命令供給制御回路
4-15  バッファ読み出し信号Ｂ
4-16  バッファ読み出し信号Ａ
5-1   処理装置Ａ
5-2   処理装置Ｂ
5-3   サイクル数参照テーブルＡ
5-4   基準サイクル数
5-5   比較器
5-6   機能ブロックＡ
5-7   機能ブロックＢ
5-8   調停部
5-9   命令供給制御装置
5-10  内部バス
6-1   処理装置Ａ
6-2   処理装置Ｂ
6-3   デコード部Ａ
6-4   バッファＡ
6-5   バッファＢ
6-6   サイクル数参照テーブル
6-7   アドレスデコード部
6-8   比較器
6-9   基準サイクル数
6-10  機能ブロックＡ
6-11  機能ブロックＢ
6-12  バッファ読み出し装置
6-13  セレクタ
6-14  内部バス
6-15  命令供給制御装置
6-16  調停部
6-17  バッファ読み出し信号Ｂ
6-18  バッファ読み出す信号Ａ
8-1   処理装置Ａ
8-2   処理装置Ｂ
8-3   デコード部Ａ
8-4   バッファＡ
8-5   バッファＢ
8-6   サイクル数参照テーブル
8-7   アドレスデコード部
8-8   比較器
8-9   基準サイクルレジスタ
8-10  機能ブロックＡ
8-11  機能ブロックＢ
8-12  バッファ読み出し装置
8-13  セレクタ
8-14  内部バス
8-15  命令供給制御装置
8-16  調停部
8-17  バッファ読み出し信号Ｂ
8-18  バッファ読み出し信号Ａ
【図１】
2006065540.tif 000003
【図２】
2006065540.tif 000004
【図３】
2006065540.tif 000005
【図４】
2006065540.tif 000006
【図５】
2006065540.tif 000007
【図６】
2006065540.tif 000008
【図７】
2006065540.tif 000009
【図８】
2006065540.tif 000010
【図９】
2006065540.tif 000011
【図１０】
2006065540.tif 000012