(57)【特許請求の範囲】
【請求項１】
下記を備えるシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）
バスコントローラ；
マスタデータバスを経由して前記バスコントローラと相互接続しているマスタ、ここで、前記マスタは、データを求める要求を発行し、前記データを求める要求に応じて、前記要求したデータを受信するように構成される；
スレーブデータバスを経由して前記バスコントローラと相互接続している第１のスレーブ、ここで、前記第１のスレーブは、前記データを求める要求を受信し、前記データを求める要求に応じて、前記要求されたデータを提供するように構成される；
ここにおいて、前記バスコントローラは、前記マスタが、前記要求したデータを受信する準備ができているかどうかを示す制御信号を前記第１のスレーブに発行するように構成され、
前記マスタが、第２のスレーブから、データを受信した場合、前記制御信号は、前記マスタが前記要求したデータを受信する準備ができていないことを示す。
【請求項２】
前記バスコントローラからの複数の制御信号は、複数のマスタのうちのどのマスタが、他に要求したデータを受信する準備ができていないかを、複数のスレーブのうちの各スレーブに対して示す、請求項１に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項３】
前記バスコントローラからの前記複数の制御信号は、更に、どのマスタが、前記他に要求したデータを受信する準備ができているかを、各スレーブに対して示す、請求項２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項４】
前記複数のマスタのうちの第１のマスタが、要求した第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、前記複数のスレーブのうちの第３のスレーブが、前記第１のマスタによって要求された第１のデータを提供することを遅らせるように構成される、請求項２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項５】
前記第１の制御信号は、更に、前記複数のマスタのうちの第２のマスタが、要求した第２のデータを前記第３のスレーブから受信する準備ができていることを示し、前記第３のスレーブは、前記第１の制御信号に応じ、前記要求された第２のデータを前記第２のマスタへ提供する、請求項４に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項６】
前記複数のスレーブの各々はそれぞれバッファを含んでおり、
特定のスレーブからの特定のデータが特定のマスタによって要求される場合、前記特定のマスタが、前記特定のデータを受信する準備ができていないことを、対応する制御信号が前記特定のスレーブに対して示すときに、前記特定のデータが前記特定のスレーブのバッファ内に保持され、
前記特定のデータは、前記特定のマスタが、前記特定のデータを前記特定のスレーブから受信する準備ができていることを前記対応する制御信号が示すまで、前記特定のスレーブのバッファ内に保持される、請求項２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項７】
下記を備える電子システム：
バスコントローラ；
マスタデータバスを経由して前記バスコントローラと相互接続しているマスタ、ここで、前記マスタは、データを求める要求を発行するとともに、前記データを求める要求に応じて、要求したデータを受信するように構成される；
スレーブデータバスを経由して前記バスコントローラと相互接続している第１のスレーブ、ここで、前記第１のスレーブは、前記データを求める要求を受信し、前記データを求める要求に応じて、前記要求されたデータを提供するように構成される；および、
ここにおいて、前記バスコントローラは、前記マスタが、前記要求したデータを受信する準備ができているかどうかを示す制御信号を、前記第１のスレーブに発行するように構成され、
前記マスタが、第２のスレーブから、データを受信した場合、前記制御信号は、前記マスタが前記要求したデータを受信する準備ができていないことを示す。
【請求項８】
前記バスコントローラからの複数の制御信号は、複数のマスタのうちのどのマスタが、他に要求したデータを受信する準備ができていないかを複数のスレーブのうちの各スレーブに対して示す、請求項７に記載の電子システム。
【請求項９】
前記バスコントローラからの前記複数の制御信号は、更に、どのマスタが、前記他に要求したデータを受信する準備ができているかを前記各スレーブに対して示す、請求項８に記載の電子システム。
【請求項１０】
前記第１のマスタが、前記第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、前記複数のスレーブのうちの第３のスレーブが、前記複数のマスタのうちの前記第１のマスタによって要求された第１のデータを提供することを遅らせるように構成される、請求項８に記載の電子システム。
【請求項１１】
前記第１の制御信号は、更に、前記複数のマスタのうちの第２のマスタが、要求した第２のデータを前記第３のスレーブから受信する準備ができていることを示し、前記第３のスレーブは、前記第１の制御信号に応じ、前記第２のデータを前記第２のマスタへ提供する、請求項１０に記載の電子システム。
【請求項１２】
前記複数のスレーブの各々はそれぞれバッファを含んでおり、
特定のスレーブからの特定のデータが特定のマスタによって要求される場合、前記特定のマスタが前記特定のデータを受信する準備ができていないことを、対応する制御信号が前記特定のスレーブに対して示すときに、前記特定のデータが前記特定のスレーブのバッファ内に保持され、
前記特定のデータは、前記特定のマスタが前記特定のデータを前記特定のスレーブから受信する準備ができていることを、前記対応する制御信号が示すまで、前記特定のスレーブのバッファ内に保持される、請求項８に記載の電子システム。
【請求項１３】
下記を備えるシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）：
基板；
前記基板上に配置されたバスコントローラ；
前記基板上に配置されたマスタ、ここで、前記マスタは、マスタデータバスを経由して前記バスコントローラと相互接続しており、前記マスタは、データを求める要求を発行し、前記データを求める要求に応じて、前記要求したデータを受信するように構成される；
前記基板上に配置された第１のスレーブ、ここで、前記第１のスレーブは、各スレーブデータバスを経由して前記バスコントローラと相互接続しており、前記第１のスレーブは、前記データを求める要求を受信し、前記データを求める要求に応じて、前記要求されたデータを提供するように構成される；
ここにおいて、前記バスコントローラは、要求したデータを前記マスタが受信する準備ができているかどうかを示す制御信号を前記第１のスレーブに発行するように構成され、
前記マスタが、第２のスレーブから、データを受信した場合、前記制御信号は、前記マスタが前記要求したデータを受信する準備ができていないことを示す。
【請求項１４】
前記バスコントローラからの複数の制御信号は、複数のマスタのうちのどのマスタが、他に要求したデータを受信する準備ができているかを、複数のスレーブのうちの各スレーブに対して示す、請求項１３に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項１５】
前記バスコントローラからの前記複数の制御信号は、更に、どのマスタが、前記他に要求したデータを受信する準備ができているかを、各スレーブに対して示す、請求項１４に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項１６】
第１のマスタが、前記第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、前記複数のスレーブのうちの第３のスレーブが、前記複数のマスタのうちの前記第１のマスタによって要求された第１のデータを提供することを遅らせるように構成される、請求項１４に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項１７】
前記第１の制御信号は、更に、前記複数のマスタのうちの第２のマスタが、要求した第２のデータを前記第３のスレーブから受信する準備ができていることを示し、前記第３のスレーブは、前記第１の制御信号に応じ、前記要求された第２のデータを前記第２のマスタへ提供する、請求項１６に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項１８】
前記複数のスレーブの各々はそれぞれバッファを含んでおり、
特定のスレーブからの特定のデータが特定のマスタによって要求される場合、前記特定のマスタが前記特定のデータを受信する準備ができていないことを、対応する制御信号が前記特定のスレーブに対して示すときに、前記特定のデータが前記特定のスレーブのバッファ内に保持され、
前記特定のデータは、前記特定のマスタが前記特定のデータを前記特定のスレーブから受信する準備ができていることを、前記対応する制御信号が示すまで、前記特定のスレーブのバッファ内に保持される、請求項１４に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
【請求項１９】
電子システム内でデータを転送する方法、該方法は下記を備える：
第１のスレーブが、要求されたデータをマスタに提供することを求める要求を前記マスタから前記第１のスレーブに発行すること；
前記マスタが、要求したデータを受信する準備ができているかどうかを前記第１のスレーブに示すこと；
前記マスタが前記要求したデータを受信する準備ができていないことを示す前記インジケーションに応じて、前記第１のスレーブから前記マスタへの前記要求されたデータの提供を遅らせること、
前記マスタが、第２のスレーブから、データを受信した場合、バスコントローラは、前記マスタが前記要求したデータを受信する準備ができていないことを示す制御信号を発行する。
【請求項２０】
前記要求されたデータの提供を遅らせることは、更に、他に要求されるデータの要求を行っており、前記他に要求されるデータを受信する準備ができている別のマスタへ、前記第１のスレーブから前記他に要求されるデータを提供することを備える、請求項１９に記載のデータ転送方法。
【請求項２１】
前記要求されたデータの提供を遅らせることは、前記要求されたデータを、前記第１のスレーブのバッファ内に保持することを含む、請求項１９に記載のデータ転送方法。
【請求項２２】
前記マスタが前記要求したデータを受信する準備ができているかどうかを前記第１のスレーブに示すことは、前記バスコントローラから前記第１のスレーブに前記制御信号を発行することを備え、前記制御信号は、前記マスタが、前記要求したデータを受信する準備ができているかどうかを示す、請求項１９に記載のデータ転送方法。
【請求項２３】
システムオンチップ（ＳｏＣ）集積回路（ＩＣ）内のバスコンテンションを低減し、バス利用度を改善する方法、ここで、前記システムオンチップ（ＳｏＣ）集積回路（ＩＣ）は、マスタバスを経由して、要求したデータを受信するように構成されたマスタを有しており、前記方法は下記を備える：
前記第１のスレーブが、要求したデータを、前記マスタバスを経由して前記マスタへ提供することを求める要求を前記マスタから前記第１のスレーブに発行すること；
前記マスタが、前記要求したデータを受信する準備ができているかどうかを前記第１のスレーブに示すこと；および、
前記マスタが、前記要求したデータを受信する準備ができていないことを示す前記インジケーショに応じて、前記マスタへの、前記第１のスレーブからのデータの提供を遅らせること、
前記マスタが、前記マスタバスを経由して第２のスレーブから、データを受信した場合、バスコントローラは、前記マスタが、前記要求したデータを受信する準備ができていないことを示す制御信号を発行する。
【請求項２４】
前記マスタが前記要求したデータを受信する準備ができていないことを示す前記インジケーションに応じて、他に要求されるデータを要求しており、前記他に要求されるデータを受信する準備ができている別のマスタへ、前記第１のスレーブから前記他に要求されるデータを提供すること
を更に備える、請求項２３に記載の方法。
【請求項２５】
前記要求されたデータを、前記第１のスレーブのバッファ内に保持すること更に備える、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
含まれている技術分野は、一般に、システムオンチップ（ＳｏＣ）集積回路（ＩＣ）である。更に詳しくは、含まれている技術分野はＳｏＣ  ＩＣ内のバス利用度を改善する方法である。
【背景技術】
【０００２】
システムオンチップ（ＳｏＣ）ＩＣなる用語は、所望及び／又は必要な全ての機能が、単一のダイ又は基板上に集積及び製造されたシステムを称する。そのため、一般にＳｏＣ  ＩＣは、例えばマイクロプロセッサ、デジタルシグナルプロセッサ、メモリアレイ、バッファ等のような様々な機能を持つ回路ブロックを含む。そのような機能を有する回路ブロックは、しばしばコアと称される。コアは、互いにデータを交換するＳｏＣ  ＩＣ内のシステムバス、及び、バスに接続されているその他任意のデバイスに電気的に接続されている。
【０００３】
更に詳しくは、ＳｏＣ  ＩＣ内では、別のコアへアクセス（データのライト又はリード）要求を発行するコアは、イニシエータコア、イニシエータ、又はバスマスタなど様々に称される。イニシエータ又はマスタがアクセスを要求するコア、すなわち、ライトデータを受信したり、あるいは、リードデータを提供するコアは、ターゲット又はスレーブと称される。２以上のコアがデータを配置したり、あるいは、バスからデータ検索を試みる場合に生じるコンフリクトであるバスコンテンションを回避するために、ＳｏＣ  ＩＣ内にバスコントローラが組み込まれる。
【０００４】
バスコントローラは、一般に、与えられた時間におけるスレーブへのアクセスについて、どのマスタが許可されるかを選択するアービタを含む。従って、与えられたアクセス又はデータ転送サイクル内において、唯一のマスタのみが、与えられたスレーブへアクセスすることを保証することによって、バス上のデータ衝突及びバスコンテンションが回避される。このアプローチは、スレーブに対するシーケンシャルなアクセスをマスタに提供する。すなわち、マスタは、スレーブにアクセスする順番を持つ。そのようなシーケンシャルなアクセスは、比較的遅く非能率的であり、システムパフォーマンスに悪影響を及ぼしうる。
【０００５】
バス利用度を高め、もって、システムパフォーマンスを改善するために、スイッチマトリクスタイプのバスコントローラがしばしば使用される。各スレーブ及び各マスタは、それぞれのマスタバスライン又はスレーブバスラインによって、スイッチマトリクスバスコントローラへ接続される。従って、スイッチマトリクスは、スレーブに対する並列アクセスをマスタに提供する。すなわち、異なるマスタが、それぞれ異なるスレーブに同時にアクセスすることができ、また、その逆も可能である。しかしながら、バスコンテンションは、スイッチマトリクスタイプのバスコントローラの使用によって全て回避されるとは限らない。バスコンテンション及び／又はデータ衝突は、例えば、１つのマスタが、２以上のスレーブへのアクセスを試みる場合、スイッチマトリクスを有するＳｏＣ  ＩＣ内でも生じうる。各マスタは、対応する単一のバスラインによってスイッチマトリクスに接続されているので、要求元の単一のマスタの要求に対するデータ返信及び／又は応答のために２以上のスレーブが同時に準備される場合、データ衝突が起こりうる。更に、要求シーケンスを作成するマスタは、応答又は終了が、なされた要求と同じ順番で返信されることを要求する。
【０００６】
データ衝突を回避するためには、マスタの要求の終了順序を保証することに加えて、スイッチマトリックスは、一般に、要求キューを遅延又は経路付けるロジック、あるいは、データ又は応答を格納するバッファとを含む。この経路付けロジックは、前の応答が正しく終了するまで、他の全ての応答をブロックするか遅らせることによって、単一のデータセットのみがバス上に配置されることを保証する。応答キュー又はバッファは、一般にファーストインファーストアウト方式で、マスタからの複数の要求を格納し、バスがデータを受信する準備ができ、かつ、スレーブがバスへデータを配信する準備ができるか、あるいは、マスタがデータを受信する準備ができるかまで、キューにデータを保持することによってデータ衝突を回避する。また、応答キューは、マスタの要求するプログラム順を維持するために、別のスレーブが古い要求に対する応答又はデータ返信を完了するまで待っている間、新たな要求に対する応答又はデータを保持する。
【０００７】
しかしながら、前の要求が正しく完了するまで１又は複数のペンディング要求を遅らせるか、又は、キューすることは、特に、前の要求を完了する際の遅れが、要求されたデータをバス上に配置する準備ができていないスレーブ、あるいは、バスからのデータを受信する準備ができていないマスタによる場合には、バスキャパシティーを浪費する。そのような状況では、バスは、データ転送のために使用されていないが、そうするのを待っている。言い換えれば、そのような状況では、バスはボトルネックではない。従って、他のコアが前の要求又はデータ転送を完了するのをシステムが待っている間、バスはアイドル状態にあり続けるのではなく、利用可能かつ処理の準備ができているデータの転送のために、より効率的に利用されうる。
【０００８】
従って、当該技術に必要なものは、システムオンチップ集積回路内のバス利用度を改善する方法及び装置である。
【発明の概要】
【０００９】
改善されたバス利用度及びより効率的なデータ転送を有するシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）が提供される。更に、バス利用度及びデータ転送を改善する方法が提供される。
【００１０】
１つの実施形態では、バスコントローラを有するＳｏＣ  ＩＣが提供される。バスコントローラと相互接続されたマスタは、データを求める要求を発行し、この要求に応じたデータを受信する。バスコントローラと相互接続されたスレーブは、データを求める要求を受信し、要求先のマスタに、この要求されたデータを提供する。バスコントローラによって発行される制御信号は、スレーブから要求したデータを受信する準備ができていないのはどのマスタであるかを各スレーブに示す。スレーブは、要求されたデータに対する準備ができていないマスタへのデータ転送を遅らせ、要求したデータをスレーブから受信する準備ができている別のマスタにデータを提供する。
【００１１】
特定のデータ転送を遅らせる要求がスレーブになされると、スレーブは、他のデータの転送を行うことができるので、バス利用度及びデータ転送効率を高め、バスコンテンション及びデータ衝突を回避することを助ける。
【００１２】
更に、ＳｏＣ  ＩＣのバスコントローラ内のストレージバッファ／レジスタに対するニーズが低減し、もって、バスコントローラのサイズ及び電力消費もまた低減される。
【図面の簡単な説明】
【００１３】
【図１】図１は、システムオンチップ集積回路の１つの実施形態のブロック図である。
【図２】図２は、システムオンチップ集積回路におけるバス利用度改善方法の１つの実施形態を図示するタイミングブロック図である。
【発明を実施するための形態】
【００１４】
前述又はその他の機能及び特徴、及び、それらを達成する方法は、下記の添付図面と連携した実施形態を参照することによって、より明白にかつより良く理解されるであろう。
【００１５】
対応する参照符号は、幾つかの視点について一貫した対応部分を示している。本明細書で示された実例は、１つの好適な実施形態を１つの形式で例示し、そのような実例は、何れにせよ、本明細書のみならず特許請求の範囲のスコープを制限するものとして解釈されるべきではない。
【００１６】
特に図１に示すように、システムオンチップ（ＳｏＣ）集積回路（ＩＣ）１０の１つの実施形態が示される。ＳｏＣ  ＩＣ  １０は、ＳｏＣ  ＩＣ  １０の全ての回路が製造される基板１２を含んでいる。ＳｏＣ  ＩＣ  １０は、様々な機能を行なうための複数の回路ブロックを含んでいる。
【００１７】
更に詳しくは、ＳｏＣ  ＩＣ  １０は、複数のマスタ１４Ａ，１４Ｂ，１４Ｃ，・・・，１４Ｎ（以下、集合的にマスタ１４と称する）と、複数のスレーブ１６Ａ，１６Ｂ，１６Ｃ，・・・，１６Ｎ（以下、集合的にスレーブ１６と称する）とを含む。マスタ１４とスレーブ１６は、例えば、マイクロプロセッサとメモリアレイのように、従来式のマスタデバイス及びスレーブデバイスとしてそれぞれ形成される。マスタ１４はそれぞれ個別の対応するバス２２Ａ，２２Ｂ，２２Ｃ，・・・，２２Ｎ（以下、しばしば、マスタ−コントローラバス２２、あるいは単にマスタバス２２と称する）を介してバスコントローラ２０と相互接続されている。同様に、スレーブ１６はそれぞれ個別の対応するバス２４Ａ，２４Ｂ，２４Ｃ，・・・，２４Ｎ（以下、しばしば、スレーブ−コントローラバス２２、あるいは単にスレーブバス２４と称する）を介してバスコントローラ２０と相互接続されている。マスタ１４およびスレーブ１６はまた一般に、他のバス又は信号ラインを経由して、ＳｏＣ  ＩＣ  １０内の他のコア（何れも図示せず）と相互接続されている。各マスタ１４は好適には、マスタバッファ３２Ａ，３２Ｂ，３２Ｃ，・・・，３２Ｎを含み、同様に、各スレーブ１６は好適には、スレーブバッファ３４Ａ，３４Ｂ，３４Ｃ，・・・，３４Ｎを含んでいる。
【００１８】
バスコントローラ２０は、従来式のスイッチマトリクス形式のバスコントローラの機能を実行することに加えて、スレーブ１６Ａ，１６Ｂ，１６Ｃ，・・・，１６Ｎに制御信号５０Ａ，５０Ｂ，５０Ｃ，・・・，５０Ｎ（以下、集合的に制御信号５０と称する）を発行するロジック回路４０を含む。一般に、制御信号５０は、各マスタ１４がデータを受信する準備ができていることをスレーブ１６に示す。更に詳しくは、制御信号５０は、マスタ１４が、特定のスレーブからのデータを受信する準備ができ、受信することができるのかを各スレーブ１６に対して示す。従って、逆の観点から見ると、制御信号５０は、マスタ１４が「ビジー」である時、あるいは、要求したデータを受信することができず、特定のデータ転送を完了できない時を各スレーブ１６に示す。制御信号５０は、共有されるか、あるいはバスコントローラ２０からスレーブ１６へのポイントツーポイントかもしれない。
【００１９】
各制御信号５０Ａ，５０Ｂ，５０Ｃ，・・・，５０Ｎは、ステータス、すなわち、マスタ１４の動作状態に少なくとも部分的に依存する。マスタ１４が、スレーブ１６のうちの特定された１つから要求したデータを受信する準備ができている場合、コントローラ２０は、特定されたスレーブ１６に対して対応する制御信号５０を発行し、要求元のマスタ１４が、要求したデータを受信する準備ができていることを示す（以下、この制御信号を「レディ」制御信号と称する）。逆に、例えば、要求元のマスタ１４が、スレーブ１６のうちの別の１つから、前に要求したデータを受信している場合、あるいは「ビジー」である場合のように、マスタ１４が、スレーブ１６のうちの特定した１つから、要求したデータを受信する準備ができていない場合、コントローラ２０は、特定されたスレーブ１６に対して制御信号５０を発行し、要求元のマスタ１４が、前に要求したデータを受信する準備ができていないことを示す（以下、この制御信号５０を「非レディ」制御信号又は「ビジー」制御信号と称する）。
【００２０】
制御信号５０は、与えられたリードサイクル中に、唯一の要求元マスタのために、唯一のスレーブ１６のみが、スレーブ−制御バス２４、コントローラ−マスタバス２２上にデータを配置することを保証する。従って、制御信号５０は、２以上のスレーブ１６が、同じ要求元マスタ１４に向けられたデータをコントローラ２０に与えた場合、コントローラ−マスタバス２２上で生じうるデータ衝突を回避する。
【００２１】
更に、要求元のマスタが、要求したデータを特定のスレーブから受信する準備ができていないことを示す場合、制御信号５０は、スレーブに対して、もしも準備できているのであれば、別の要求マスタに対して別のデータ転送を行うように指示する。従って、スレーブは、マスタがデータを受信するのに「レディ」になることを待つアイドル状態にはならず、データを受信することが「レディ」である別の要求元マスタに対して別のデータ転送を行う。遅れたデータ転送動作の完了を待つのではなく、別のデータ転送動作を実行することによって、バスによって処理されるデータ効率、すなわち、バス利用度が改善される。他の応答は、バスコンテンションによってコントローラが受け付けることができない応答の陰でブロックされうるので、これはまた、要求のレイテンシ全体をも低減しうる。
【００２２】
ＳｏＣ  １０の動作、及び、システムオンチップ集積回路におけるバス利用度を改善する方法を例示する典型的なデータ転送処理が、図２に示され、以下に説明される。時間ｔ０において、マスタ１４Ａは、マスタバス２２Ａを経由してバスコントローラ２０へ、スレーブ１６Ａからデータを読み取る要求Ｍ０Ｒ０を発行する。また、時間ｔ０の間、マスタ１４Ｂは、マスタバス２２Ｂを経由してバスコントローラ２０へ、スレーブＡからデータを読み取る要求Ｍ１Ｒ０を発行する。時間ｔ１において、マスタ１４Ａは、マスタバス２２Ａを経由してバスコントローラ２０へ、スレーブ１６Ｂからデータを読み取る要求Ｍ０Ｒ１を発行する。従って、２つのマスタ（マスタ１４Ａ，１４Ｂ）が同じスレーブ（スレーブ１６Ａ）からデータを要求し、１つのマスタ（マスタ１４Ａ）が、２つの異なるスレーブ（スレーブ１６Ａ，１６Ｂ）からデータを要求している。
【００２３】
更に、時間ｔ１では、バスコントローラ２０が時間ｔ０においてマスタ１４Ａによって発行されたスレーブ１６Ａからデータを求める要求Ｍ０ＲＯを、スレーブバス２４Ａを経由してスレーブ１６Ａに渡す。同様に、時間ｔ２では、バスコントローラ２０が時間ｔ０においてマスタ１４Ｂによって発行されたスレーブ１６Ａからデータを求める要求Ｍ１ＲＯを、スレーブバス２４Ａを経由してスレーブ１６Ａに渡す。更に、時間ｔ２では、バスコントローラ２０が時間ｔ１においてマスタ１４Ａによって発行されたスレーブ１６Ｂからデータを求める要求Ｍ０Ｒ１を、スレーブバス２４Ｂを経由してスレーブ１６Ｂに渡す。
【００２４】
制御信号５０Ａ，５０Ｂは、図２に示すように、時間ｔ０において、デフォルト値、又は、例えば「レディ」状態のようなデフォルト状態に初期設定され、全てのマスタ１４が、データを受信する準備ができていることを示す。時間ｔ３では、バスコントローラ２０が、制御信号５０を発行又は更新し、要求データのうちの少なくとも１セットの転送を可能にする。更に詳しくは、制御信号５０Ｂが更新され、マスタ１４Ａが、前に要求したデータをスレーブ１６Ｂから受信する準備ができていることが示される。この例では、制御信号５０は「レディ」状態に初期化されるので、制御信号５０Ｂに対する変更はない。反対に、制御信号５０Ａ，５０Ｃ，・・・，５０Ｎが更新され、マスタ１４Ａが「ビジー」動作中であること、すなわち、データを受信する処理をしていることがスレーブ１６Ａ，１６Ｃ，・・・,１６Ｎにそれぞれ示される。
【００２５】
簡潔さと明瞭さの理由で、制御信号５０Ａ，５０Ｂのみが図２で示される。更に同じ理由で、当業者であれば、各制御信号５０は実際には複数の信号であることを認識するであろうが、図２は、各制御信号に対して１のみの信号ラインを示し、マスタ１４に関連する信号ラインの適切な条件又は状態を示している。
【００２６】
時間ｔ４では、スレーブ１６Ａ,１６Ｂの各々が、前に要求したマスタであるマスタ１４Ａへデータを転送する準備ができる。更に詳しくは、時間ｔ４において、スレーブ１６Ａは、要求Ｍ０Ｒ０に関連するデータをマスタ１４Ａへ転送する準備ができ、スレーブ１６Ｂは、要求Ｍ０Ｒ１に関連するデータをマスタ１４Ａへ転送する準備ができる。スレーブ１６Ａ，１６Ｂはともにマスタ１４Ａへデータを提供する準備ができているが、スレーブ１６Ｂは、上述したように、コントローラ２０によって発行される制御信号５０によって優先度が与えられる。与えられた任意の読み取りサイクルにおいても、１つのマスタ１４に対してデータを送る準備ができているスレーブ１６間の相対的な優先度は、当業者に周知の所望あるいは好適な方法に従って予め定められることが特に留意されるべきである。この優先度は、例えば、任意に設定されたり、あるいは、特定のスレーブが、特定の回路又はアプリケーションに照らし合わせて提供しうる予測又は予期された重要度に従って設定される。あるいは、その他任意の所望の基準に従って設定される。
【００２７】
スレーブ１６Ａは、時間ｔ４において、マスタ１４Ａに、要求Ｍ０ＲＯに関連するデータを返すことを試みる。しかしながら、そうすることは、上述したように、マスタ１４Ａが「ビジー」であることをスレーブ１６Ａに示す制御信号５０Ａによって阻止される。従来技術によるＳｏＣ  ＩＣシステムでは、そのような状況は、スレーブ１６Ａがマスタ１４Ａに対してデータを戻すことを試みた場合、戻されているデータをバッファするようにコントローラ２０に要求することであるマスタバス２２Ａにおけるデータ衝突、あるいは、スレーブ１６Ａが、要求Ｍ０ＲＯに関連するデータのマスタ１４Ａへの転送を完了できるまで、スレーブ１６Ａにおいて、その他全ての要求データのマスタ１４への転送を遅らせることのうちの何れかの結果になるであろう。対照的に、そして以下に更に詳しく説明するように、スレーブ１６Ａは、要求された他のデータを、他の要求元のマスタ１４へ転送し、もって、バス２２，２４をより効率的に利用し、より効率的なデータ転送を達成する。
【００２８】
また、時間ｔ４において、スレーブ１６Ｂは、要求Ｍ０Ｒ１に関連したマスタ１４Ａへのデータの転送を始める。このデータ転送は、時間ｔ３において、マスタ１４Ａが、スレーブ１６Ｂからのデータを受信する準備ができていることを示すように制御信号５０Ｂを設定し、マスタ１４Ａが「ビジー」であり、スレーブ１６Ａ，１６Ｃ，・・・，１６Ｎからのデータを受信する準備ができていないことを示すように制御信号５０Ａを設定するコントローラ２０によって少なくとも部分的にイネーブルされる。時間ｔ４から時間ｔ６まで、要求Ｍ０Ｒ１に関連するデータは、スレーブバス２４Ｂを経由してスレーブ１６Ｂからバスコントローラ２０へ戻され、マスタバス２２Ａを経由してバスコントローラ２０からマスタ１４Ａへ戻される。
【００２９】
上述したデータ転送方法、すなわち、一般に、対応するスレーブバス２４を経由したスレーブ１６からのバスコントローラ２０への転送、対応するマスタバス２２を経由したバスコントローラ２０からのマスタ１４への転送では、バスコントローラ２０は、本質的には、マスタとスレーブとの間の関係を単に確立するスイッチマトリックスとして動作することに特に注目されるべきである。転送されるデータは、コントローラ２０において格納されるのではなく、スレーブ１６において、あるいは、スレーブ１６のバッファ３４内に格納され続ける。従って、バスコントローラ２０内でのストレージレジスタ又はバッファリングに対するニーズは本質的に低減する。従って、バスコントローラ２０はサイズを低減することができ、かつ、かなりの数のバッファ／ストレージレジスタを必要とする従来式のバスコントローラよりも少ない電力しか消費しない。
【００３０】
上述したように、スレーブ１６、及び、バス２２，２４の一部に対して、要求元のマスタ１４がデータを受信する準備ができるまでアイドルになるように強制するのではなく、本明細書に記載のシステムオンチップ集積回路においてバス利用度を改善する方法及びＳｏＣ  ＩＣ  １０は、スレーブが、要求された他のデータを、他の要求元のマスタ１４に対して転送することを可能にするので、バス２２，２４をより効率的に利用し、より効率的なデータ転送を達成する。この局面は、マスタ１４Ａが、遅れた要求Ｍ０ＲＯに関連するデータを受信する準備ができるまで、スレーブ１６Ａが全てのデータの転送を遅らせるのではなく、スレーブ１６Ａが、時間ｔ５において、要求Ｍ１Ｒ０に関連するデータのマスタ１４Ｂへの転送を開始する場合として図２に例示されている。要求Ｍ１Ｒ０に関連したデータの転送は、マスタ１４Ａは「ビジー」であるが、マスタ１４Ｂはデータを受信する準備ができていることをスレーブ１６Ａに示す制御信号５０によってイネーブルされる。
【００３１】
従って、時間ｔ４において、スレーブ１６Ａからマスタ１４Ａへのデータの転送を遅らせることによって、かつ、時間ｔ５において、スレーブ１６Ａが、マスタ１４Ｂへのデータ転送を開始できるようにすることによって、時間ｔ４におけるマスタ−コントローラバス２２Ａ上のデータ衝突が回避され、時間ｔ４におけるマスタ−コントローラバス２２Ａとスレーブ−コントローラバス２４Ａの利用が高められ、もって、データ転送効率が向上する。
【００３２】
スレーブ１６Ａは、時間ｔ９において、マスタ１４Ｂへの、要求Ｍ１Ｒ０に関連する転送を完了する。従って、時間ｔ１０において、制御信号５０がコントローラ２０によって更新され、スレーブ１６に対して、マスタ１４Ｂが再びデータを受信する準備ができたことを示す（図２には図示せず）。示された例では、更なるデータはマスタ１４Ｂに転送されない。
【００３３】
時間ｔ６において、スレーブ１６Ｂは、マスタ１４Ａへの、要求Ｍ０Ｒ１に関連するデータの転送を完了する。従って、時間ｔ７において、制御信号５０がコントローラ２０によって更新され、スレーブ１６に対して、マスタ１４Ａが再びデータを受信する準備ができたことを示す。時間ｔ８において、制御信号５０が再びコントローラ２０によって更新され、マスタ１４Ａが再びデータを受信する準備をしていること、あるいは、マスタ１４Ａがデータを受信している途中であることを示す。更に詳しくは、時間ｔ８において、制御信号５０がコントローラ２０によって更新され、制御信号５０Ａが、スレーブ１６Ａに対して、マスタ１４Ａが、要求Ｍ０Ｒ０に関連するデータを受信する準備ができるようになる。そして、制御信号５０Ｂ，５０Ｃ，・・・，５０Ｎが更新され、マスタ１４Ａが「ビジー」であることが示される。その後、時間ｔ９において、要求Ｍ０ＲＯに関連するスレーブ１６Ａからマスタ１４Ａへのデータの転送が始まる。
【００３４】
上述した説明は、好適な設計を参照しているが、この好適な設計は更に、本開示の範囲及び精神の中で変形することができる。従って、本応用は、本明細書で開示された一般的な原理を用いて、好適な設計のあらゆる変形、利用、又は適応をカバーすることが意図されている。更に、本応用は、関連技術における周知又は慣例的な実施内で見い出され、かつ、特許請求の範囲の制限内にあるような本開示からの新案もカバーすることが意図されている。なお、本願の出願当初の請求項と同一の記載をその他の実施例として下記に付記する。
[その他の実施例１]
バスコントローラと、
それぞれが、各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも１つのマスタと、
それぞれが、各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、その要求に対するデータを提供する少なくとも１つのスレーブと、
前記バスコントローラによって発行される制御信号であって、マスタが、要求したデータをスレーブから受信する準備ができていることを各スレーブに対して示す制御信号とを備えるシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例２]
前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを各スレーブに対して示すその他の実施例１に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例３]
前記制御信号は更に、どのマスタが、要求したデータを受信する準備ができているのかを各スレーブに対して示すその他の実施例２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例４]
第１のマスタが、要求した第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、第１のスレーブが、前記第１のマスタによって要求された第１のデータを転送することを遅らせるその他の実施例２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例５]
前記第１の制御信号は更に、第２のマスタが、要求した第２のデータを前記第１のスレーブから受信する準備ができていることを示し、前記第１のスレーブは、前記第１の制御信号に応じ、前記要求された第２のデータを前記第２のマスタへ転送するその他の実施例２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例６]
前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持されるその他の実施例２に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例７]
バスコントローラと、
それぞれが、各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも１つのマスタと、
それぞれが、各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、前記要求に対するデータを提供するように構成された少なくとも１つのスレーブと、
前記バスコントローラによって前記スレーブへ発行される制御信号であって、要求したデータを前記マスタが受信する準備ができていることを前記スレーブに対して示す制御信号と
を備える電子システム。
[その他の実施例８]
前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示すその他の実施例７に記載の電子システム。
[その他の実施例９]
前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示すその他の実施例８に記載の電子システム。
[その他の実施例１０]
第１のマスタが、要求した第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、第１のスレーブが、前記第１のマスタによって要求された第１のデータを転送することを遅らせるその他の実施例８に記載の電子システム。
[その他の実施例１１]
前記第１の制御信号は更に、第２のマスタが、要求した第２のデータを前記第１のスレーブから受信する準備ができていることを示し、前記第１のスレーブは、前記第１の制御信号に応じ、前記要求された第２のデータを前記第２のマスタへ転送するその他の実施例８に記載の電子システム。
[その他の実施例１２]
前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持されるその他の実施例８に記載の電子システム。
[その他の実施例１３]
基板と、
前記基板上に配置されたバスコントローラと、
それぞれが、前記基板上に配置された各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも１つのマスタと、
それぞれが、前記基板上に配置された各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、前記要求に対するデータを提供するように構成された少なくとも１つのスレーブと、
前記バスコントローラによって前記スレーブへ発行される制御信号であって、要求したデータを前記マスタが受信する準備ができていることを前記スレーブに対して示す制御信号と
を備えるシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１４]
前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示すその他の実施例１３に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１５]
前記制御信号は、どのマスタが、要求したデータを受信する準備ができているのかを前記スレーブに対して示すその他の実施例１４に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１６]
第１のマスタが、要求した第１のデータを受信する準備ができていないことを第１の制御信号が示す場合、第１のスレーブが、前記第１のマスタによって要求された第１のデータを転送することを遅らせるその他の実施例１３に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１７]
前記第１の制御信号は更に、第２のマスタが、要求した第２のデータを前記第１のスレーブから受信する準備ができていることを示し、前記第１のスレーブは、前記第１の制御信号に応じ、前記要求された第２のデータを前記第２のマスタへ転送するその他の実施例１３に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１８]
前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持されるその他の実施例１３に記載のシステムオンチップ（ＳｏＣ）集積回路（ＩＣ）。
[その他の実施例１９]
電子システム内でデータを転送する方法であって、
要求したデータを１又は複数のマスタに提供する要求を１又は複数のスレーブに対して発行することと、
１又は複数の第１のマスタが、要求したデータを第１のスレーブから受信する準備ができていない時を前記第１のスレーブに示すことと、
前記第１のスレーブから前記１又は複数の第１のマスタへのデータの転送を遅らせることと
を備える方法。
[その他の実施例２０]
前記遅らせるステップは更に、要求を行い、前記第１のスレーブからデータを受信する準備ができている第２のマスタへ、前記第１のスレーブからデータを転送することを備えるその他の実施例１９に記載のデータ転送方法。
[その他の実施例２１]
前記遅らせるステップは、前記第１のマスタによって要求されたデータを、前記第１のスレーブのバッファ内に保持することを含むその他の実施例１９に記載のデータ転送方法。
[その他の実施例２２]
前記示すステップは、前記１又は複数のスレーブに対して制御信号を発行することを備え、前記制御信号は、前記１又は複数のマスタの各々が、前記１又は複数のスレーブの各々からデータを受信する準備ができているかを示すその他の実施例１９に記載のデータ転送方法。
[その他の実施例２３]
システムオンチップ（ＳｏＣ）集積回路（ＩＣ）内のバスコンテンションを低減し、バス利用度を改善する方法であって、前記システムオンチップ（ＳｏＣ）集積回路（ＩＣ）は、１又は複数のスレーブから、それぞれのマスタバスを経由してデータを受信するように構成された１又は複数のマスタを有しており、前記方法は、
要求したデータを、それぞれのマスタバスを経由して前記１又は複数のマスタへ提供する要求を前記１又は複数のスレーブに対して発行することと、
前記第１のマスタのうちの１又は複数が、それぞれのマスタバスを経由してデータを受信しており、もって、前記要求したデータを第１のスレーブから受信する準備ができていないときを前記第１のスレーブに示すことと、
それぞれのマスタバスを経由してデータを受信しており、もって、前記第１のスレーブからデータを受信する準備ができていない前記１又は複数の第１のマスタへの、前記第１のスレーブからのデータの転送を遅らせることによって、バスコンテンションを低減することと
を備える方法。
[その他の実施例２４]
データを要求し、前記データを前記第１のスレーブから受信する準備ができている第２のマスタへ、前記第１のスレーブからデータを転送することによって、バスコンテンションを改善するステップを更に備えるその他の実施例２３に記載の方法。
[その他の実施例２５]
前記バスコンテンションを低減するステップは、前記第１のマスタによって要求されたデータを、前記第１のスレーブのバッファ内に保持することを含むその他の実施例２４に記載の方法。
【図１】
0005456632.tif 000002
【図２】
0005456632.tif 000003