JP2011048838A - スイッチマトリックス経由のデータ転送を改善するフロー制御方法 - Google Patents

スイッチマトリックス経由のデータ転送を改善するフロー制御方法 Download PDF

Info

Publication number
JP2011048838A
JP2011048838A JP2010214177A JP2010214177A JP2011048838A JP 2011048838 A JP2011048838 A JP 2011048838A JP 2010214177 A JP2010214177 A JP 2010214177A JP 2010214177 A JP2010214177 A JP 2010214177A JP 2011048838 A JP2011048838 A JP 2011048838A
Authority
JP
Japan
Prior art keywords
data
slave
master
requested
ready
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010214177A
Other languages
English (en)
Other versions
JP5456632B2 (ja
JP2011048838A5 (ja
Inventor
J Prakash Subramaniam Ganasan
ジェイ.・プラカシュ・サブラマニアム・ガナサン
Perry Willmann Remaklus Jr
ペリー・ウィルマン・ジュニア.・リマクラス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011048838A publication Critical patent/JP2011048838A/ja
Publication of JP2011048838A5 publication Critical patent/JP2011048838A5/ja
Application granted granted Critical
Publication of JP5456632B2 publication Critical patent/JP5456632B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Credit Cards Or The Like (AREA)
  • Optical Communication System (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】システムオンチップ集積回路内のバス利用度を改善する方法及び装置を提供する。
【解決手段】システムオンチップ(SoC)集積回路(IC)は、バスコンテンションを低減し、バス利用度を改善した。SoC ICはバスコントローラを含む。バスコントローラと相互接続されたマスタは、データを求める要求を発行し、前記要求に応じたデータを受信する。バスコントローラと相互接続されたスレーブは、データを求める要求を受信し、要求されたデータを、要求元のマスタに提供する。バスコントローラによって発行された制御信号は、どのマスタが、要求したデータを、スレーブから受信する準備ができていないかを各スレーブに対して示す。スレーブは、要求したデータに対する準備ができていないあらゆるマスタへのデータ転送を遅らせ、要求したデータをスレーブから受信する準備ができている別のマスタへデータを提供する。
【選択図】図1

Description

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

Claims (25)

  1. バスコントローラと、
    それぞれが、各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも1つのマスタと、
    それぞれが、各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、その要求に対するデータを提供する少なくとも1つのスレーブと、
    前記バスコントローラによって発行される制御信号であって、マスタが、要求したデータをスレーブから受信する準備ができていることを各スレーブに対して示す制御信号とを備えるシステムオンチップ(SoC)集積回路(IC)。
  2. 前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを各スレーブに対して示す請求項1に記載のシステムオンチップ(SoC)集積回路(IC)。
  3. 前記制御信号は更に、どのマスタが、要求したデータを受信する準備ができているのかを各スレーブに対して示す請求項2に記載のシステムオンチップ(SoC)集積回路(IC)。
  4. 第1のマスタが、要求した第1のデータを受信する準備ができていないことを第1の制御信号が示す場合、第1のスレーブが、前記第1のマスタによって要求された第1のデータを転送することを遅らせる請求項2に記載のシステムオンチップ(SoC)集積回路(IC)。
  5. 前記第1の制御信号は更に、第2のマスタが、要求した第2のデータを前記第1のスレーブから受信する準備ができていることを示し、前記第1のスレーブは、前記第1の制御信号に応じ、前記要求された第2のデータを前記第2のマスタへ転送する請求項2に記載のシステムオンチップ(SoC)集積回路(IC)。
  6. 前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持される請求項2に記載のシステムオンチップ(SoC)集積回路(IC)。
  7. バスコントローラと、
    それぞれが、各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも1つのマスタと、
    それぞれが、各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、前記要求に対するデータを提供するように構成された少なくとも1つのスレーブと、
    前記バスコントローラによって前記スレーブへ発行される制御信号であって、要求したデータを前記マスタが受信する準備ができていることを前記スレーブに対して示す制御信号と
    を備える電子システム。
  8. 前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示す請求項7に記載の電子システム。
  9. 前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示す請求項8に記載の電子システム。
  10. 第1のマスタが、要求した第1のデータを受信する準備ができていないことを第1の制御信号が示す場合、第1のスレーブが、前記第1のマスタによって要求された第1のデータを転送することを遅らせる請求項8に記載の電子システム。
  11. 前記第1の制御信号は更に、第2のマスタが、要求した第2のデータを前記第1のスレーブから受信する準備ができていることを示し、前記第1のスレーブは、前記第1の制御信号に応じ、前記要求された第2のデータを前記第2のマスタへ転送する請求項8に記載の電子システム。
  12. 前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持される請求項8に記載の電子システム。
  13. 基板と、
    前記基板上に配置されたバスコントローラと、
    それぞれが、前記基板上に配置された各マスタデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を発行するとともに、前記要求に対するデータを受信する少なくとも1つのマスタと、
    それぞれが、前記基板上に配置された各スレーブデータバスを経由して前記バスコントローラと相互接続しており、データを求める要求を受信するとともに、前記要求に対するデータを提供するように構成された少なくとも1つのスレーブと、
    前記バスコントローラによって前記スレーブへ発行される制御信号であって、要求したデータを前記マスタが受信する準備ができていることを前記スレーブに対して示す制御信号と
    を備えるシステムオンチップ(SoC)集積回路(IC)。
  14. 前記制御信号は、どのマスタが、要求したデータを受信する準備ができていないのかを前記スレーブに対して示す請求項13に記載のシステムオンチップ(SoC)集積回路(IC)。
  15. 前記制御信号は、どのマスタが、要求したデータを受信する準備ができているのかを前記スレーブに対して示す請求項14に記載のシステムオンチップ(SoC)集積回路(IC)。
  16. 第1のマスタが、要求した第1のデータを受信する準備ができていないことを第1の制御信号が示す場合、第1のスレーブが、前記第1のマスタによって要求された第1のデータを転送することを遅らせる請求項13に記載のシステムオンチップ(SoC)集積回路(IC)。
  17. 前記第1の制御信号は更に、第2のマスタが、要求した第2のデータを前記第1のスレーブから受信する準備ができていることを示し、前記第1のスレーブは、前記第1の制御信号に応じ、前記要求された第2のデータを前記第2のマスタへ転送する請求項13に記載のシステムオンチップ(SoC)集積回路(IC)。
  18. 前記スレーブの各々はそれぞれバッファを含んでおり、要求元のマスタによって要求された特定のスレーブからのデータは、対応する制御信号が、前記要求元のマスタが、前記要求したデータを受信する準備ができていないことを前記特定のスレーブに対して示す場合には、前記特定のスレーブのバッファ内に保持され、前記要求されたデータは、前記対応する制御信号が、前記マスタが、前記要求したデータを前記特定のスレーブから受信する準備ができていることを前記特定のスレーブに対して示すまで、前記特定のスレーブのバッファ内に保持される請求項13に記載のシステムオンチップ(SoC)集積回路(IC)。
  19. 電子システム内でデータを転送する方法であって、
    要求したデータを1又は複数のマスタに提供する要求を1又は複数のスレーブに対して発行することと、
    1又は複数の第1のマスタが、要求したデータを第1のスレーブから受信する準備ができていない時を前記第1のスレーブに示すことと、
    前記第1のスレーブから前記1又は複数の第1のマスタへのデータの転送を遅らせることと
    を備える方法。
  20. 前記遅らせるステップは更に、要求を行い、前記第1のスレーブからデータを受信する準備ができている第2のマスタへ、前記第1のスレーブからデータを転送することを備える請求項19に記載のデータ転送方法。
  21. 前記遅らせるステップは、前記第1のマスタによって要求されたデータを、前記第1のスレーブのバッファ内に保持することを含む請求項19に記載のデータ転送方法。
  22. 前記示すステップは、前記1又は複数のスレーブに対して制御信号を発行することを備え、前記制御信号は、前記1又は複数のマスタの各々が、前記1又は複数のスレーブの各々からデータを受信する準備ができているかを示す請求項19に記載のデータ転送方法。
  23. システムオンチップ(SoC)集積回路(IC)内のバスコンテンションを低減し、バス利用度を改善する方法であって、前記システムオンチップ(SoC)集積回路(IC)は、1又は複数のスレーブから、それぞれのマスタバスを経由してデータを受信するように構成された1又は複数のマスタを有しており、前記方法は、
    要求したデータを、それぞれのマスタバスを経由して前記1又は複数のマスタへ提供する要求を前記1又は複数のスレーブに対して発行することと、
    前記第1のマスタのうちの1又は複数が、それぞれのマスタバスを経由してデータを受信しており、もって、前記要求したデータを第1のスレーブから受信する準備ができていないときを前記第1のスレーブに示すことと、
    それぞれのマスタバスを経由してデータを受信しており、もって、前記第1のスレーブからデータを受信する準備ができていない前記1又は複数の第1のマスタへの、前記第1のスレーブからのデータの転送を遅らせることによって、バスコンテンションを低減することと
    を備える方法。
  24. データを要求し、前記データを前記第1のスレーブから受信する準備ができている第2のマスタへ、前記第1のスレーブからデータを転送することによって、バスコンテンションを改善するステップを更に備える請求項23に記載の方法。
  25. 前記バスコンテンションを低減するステップは、前記第1のマスタによって要求されたデータを、前記第1のスレーブのバッファ内に保持することを含む請求項24に記載の方法。
JP2010214177A 2005-02-10 2010-09-24 スイッチマトリックス経由のデータ転送を改善するフロー制御方法 Expired - Fee Related JP5456632B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/055,922 2005-02-10
US11/055,922 US7246188B2 (en) 2005-02-10 2005-02-10 Flow control method to improve bus utilization in a system-on-a-chip integrated circuit

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007555297A Division JP4861339B2 (ja) 2005-02-10 2006-02-09 スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Publications (3)

Publication Number Publication Date
JP2011048838A true JP2011048838A (ja) 2011-03-10
JP2011048838A5 JP2011048838A5 (ja) 2011-04-21
JP5456632B2 JP5456632B2 (ja) 2014-04-02

Family

ID=36588894

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2007555297A Active JP4861339B2 (ja) 2005-02-10 2006-02-09 スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2010214177A Expired - Fee Related JP5456632B2 (ja) 2005-02-10 2010-09-24 スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2011197213A Expired - Fee Related JP5456743B2 (ja) 2005-02-10 2011-09-09 スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007555297A Active JP4861339B2 (ja) 2005-02-10 2006-02-09 スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011197213A Expired - Fee Related JP5456743B2 (ja) 2005-02-10 2011-09-09 スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Country Status (13)

Country Link
US (1) US7246188B2 (ja)
EP (1) EP1846831B1 (ja)
JP (3) JP4861339B2 (ja)
KR (1) KR100932408B1 (ja)
CN (1) CN100595744C (ja)
AT (1) ATE491993T1 (ja)
DE (1) DE602006018862D1 (ja)
ES (1) ES2355054T3 (ja)
HK (1) HK1114213A1 (ja)
IL (1) IL185067A0 (ja)
MX (1) MX2007009732A (ja)
PL (1) PL1846831T3 (ja)
WO (1) WO2006086732A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2407662B (en) * 2003-11-03 2006-02-22 Compxs Uk Ltd Two way serial communication
US7788625B1 (en) * 2005-04-14 2010-08-31 Xilinx, Inc. Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
DE102005026436B4 (de) * 2005-06-08 2022-08-18 Austriamicrosystems Ag Schnittstellenanordnung, insbesondere für ein System-on-Chip, und deren Verwendung
US20070255874A1 (en) * 2006-04-28 2007-11-01 Jennings Kevin F System and method for target device access arbitration using queuing devices
US7908412B2 (en) * 2006-05-10 2011-03-15 Microsoft Corporation Buffer passing mechanisms
KR100854973B1 (ko) * 2007-02-13 2008-08-28 삼성전자주식회사 버스 매트릭스를 포함하는 시스템
DE102007015122A1 (de) * 2007-03-29 2008-10-02 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Transfer von Daten in mehrere Steuergeräte
EP2136298A1 (en) * 2007-04-11 2009-12-23 Panasonic Corporation Data saving system, data returning system, data saving method and data returning method
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
CN101453313B (zh) * 2007-12-06 2013-03-20 鸿富锦精密工业(深圳)有限公司 主从设备通信电路
JP5035469B2 (ja) * 2009-03-31 2012-09-26 富士通株式会社 データ転送回路及びデータ転送方法
US8984195B2 (en) * 2011-12-02 2015-03-17 Atmel Corporation Microcontroller including alternative links between peripherals for resource sharing
TWI617164B (zh) * 2012-10-19 2018-03-01 菲爾卻德半導體公司 用於操作與切換一單一導體介面之裝置及方法
WO2014156282A1 (ja) * 2013-03-25 2014-10-02 三菱電機株式会社 バスマスタ、バスシステム及びバス制御方法
GB2540610B (en) * 2015-07-23 2017-12-06 Advanced Risc Mach Ltd Gathering monitoring data relating to the operation of a data processing system
GB2551806B (en) * 2016-06-30 2020-06-03 Advanced Risc Mach Ltd Interface with buffered and direct pathways
CN111797051B (zh) * 2020-06-04 2022-05-17 深圳云天励飞技术股份有限公司 片上系统、数据传送方法及广播模块
DE102021106379A1 (de) 2021-03-16 2022-09-22 Infineon Technologies Ag Master, Slave, Master-Slave-Kommunikations-System, On-Chip-Interconnect-System, Verfahren zum Betreiben eines Masters, Verfahren zum Betreiben eines Slaves, Verfahren zum Betreiben eines Master-Slave-Kommunikations-Systems und Verfahren zum Betreiben eines On-Chip-Interconnect-Systems
CN113765824A (zh) * 2021-10-15 2021-12-07 合肥移瑞通信技术有限公司 基于mbim接口的响应消息发送方法、装置、mbb设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
JPH0969855A (ja) * 1995-03-31 1997-03-11 Sun Microsyst Inc トランザクション・フローを制御する制御システムおよびその方法
US6441479B1 (en) * 2000-03-02 2002-08-27 Micron Technology, Inc. System-on-a-chip with multi-layered metallized through-hole interconnection
JP2002269032A (ja) * 2001-03-13 2002-09-20 Ricoh Co Ltd バスアービタ
JP2005234932A (ja) * 2004-02-20 2005-09-02 Oki Electric Ind Co Ltd マトリックス状バス接続システムとその低電力方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
EP0608663B1 (en) 1993-01-25 1999-03-10 Bull HN Information Systems Italia S.p.A. A multi-processor system with shared memory
US5761516A (en) * 1996-05-03 1998-06-02 Lsi Logic Corporation Single chip multiprocessor architecture with internal task switching synchronization bus
US6065077A (en) * 1997-12-07 2000-05-16 Hotrail, Inc. Apparatus and method for a cache coherent shared memory multiprocessing system
US6516442B1 (en) * 1997-12-07 2003-02-04 Conexant Systems, Inc. Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
US6715023B1 (en) * 1999-09-23 2004-03-30 Altera Corporation PCI bus switch architecture
JP2003030134A (ja) * 2001-07-12 2003-01-31 Matsushita Electric Ind Co Ltd バスアービタ及びバスアービトレーション方法
IL144789A0 (en) 2001-08-07 2002-06-30 Broadlight Ltd System architecture of a high bit rate switch module between functional units in a system on a chip
US6857035B1 (en) * 2001-09-13 2005-02-15 Altera Corporation Methods and apparatus for bus mastering and arbitration
EP1376373B1 (en) * 2002-06-20 2006-05-31 Infineon Technologies AG Arrangement having a first device and a second device connected via a cross bar switch
JP2004126646A (ja) * 2002-09-30 2004-04-22 Canon Inc バス制御方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
JPH0969855A (ja) * 1995-03-31 1997-03-11 Sun Microsyst Inc トランザクション・フローを制御する制御システムおよびその方法
JPH09114735A (ja) * 1995-03-31 1997-05-02 Sun Microsyst Inc パケット交換型キャッシュコヒーレントマルチプロセッサシステム用並列型コヒーレント読取り及び書戻しトランザクション処理システム
US5907485A (en) * 1995-03-31 1999-05-25 Sun Microsystems, Inc. Method and apparatus for flow control in packet-switched computer system
US6441479B1 (en) * 2000-03-02 2002-08-27 Micron Technology, Inc. System-on-a-chip with multi-layered metallized through-hole interconnection
JP2002269032A (ja) * 2001-03-13 2002-09-20 Ricoh Co Ltd バスアービタ
JP2005234932A (ja) * 2004-02-20 2005-09-02 Oki Electric Ind Co Ltd マトリックス状バス接続システムとその低電力方法

Also Published As

Publication number Publication date
CN101203839A (zh) 2008-06-18
KR20070104929A (ko) 2007-10-29
WO2006086732A1 (en) 2006-08-17
WO2006086732A9 (en) 2006-10-19
US7246188B2 (en) 2007-07-17
JP5456632B2 (ja) 2014-04-02
IL185067A0 (en) 2007-12-03
PL1846831T3 (pl) 2011-04-29
MX2007009732A (es) 2007-09-26
JP2012038325A (ja) 2012-02-23
ES2355054T3 (es) 2011-03-22
DE602006018862D1 (de) 2011-01-27
JP4861339B2 (ja) 2012-01-25
EP1846831B1 (en) 2010-12-15
JP2008530694A (ja) 2008-08-07
EP1846831A1 (en) 2007-10-24
KR100932408B1 (ko) 2009-12-17
US20060179192A1 (en) 2006-08-10
JP5456743B2 (ja) 2014-04-02
ATE491993T1 (de) 2011-01-15
CN100595744C (zh) 2010-03-24
HK1114213A1 (en) 2008-10-24

Similar Documents

Publication Publication Date Title
JP5456743B2 (ja) スイッチマトリックス経由のデータ転送を改善するフロー制御方法
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
US6704817B1 (en) Computer architecture and system for efficient management of bi-directional bus
EP1564646A2 (en) Configurable embedded processor
US20070162645A1 (en) Communication system for data transfer between on-chip circuits
JP2011505036A (ja) 記憶システム及び方法
JP2008009817A (ja) 半導体装置及びデータ転送方法
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
JP2000267816A (ja) ディスクアレイ制御装置
WO2004099995A2 (en) Hierarchical memory access via pipelining
JP2007026366A (ja) メモリコントローラ
US7913013B2 (en) Semiconductor integrated circuit
US20230269205A1 (en) Switch for transmitting packet, network on chip having the same, and operating method thereof
US20050132153A1 (en) Method and Apparatus of Arranging Priority Queue and Arbitrating for Memory Access Requests
EP2280349B1 (en) Processor and data transfer method
US20090287869A1 (en) Bus Arbiter, Bus Device and System
US7031337B2 (en) Data processing apparatus and slave interface mechanism for controlling access to a slave logic unit by a plurality of master logic units
JP5383159B2 (ja) バス中継装置及び制御方法
US6715021B1 (en) Out-of-band look-ahead arbitration method and/or architecture
US6829692B2 (en) System and method for providing data to multi-function memory
JP2003122704A (ja) データ処理装置
TW202141288A (zh) 訪問資料匯流排的裝置、方法及系統
CN115762596A (zh) 一种mcu的存取记忆体数字电路架构
JP2012173847A (ja) バス調停装置およびバス調停方法
JP2003248653A (ja) デバイスアクセス回路及びデバイスアクセス方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130312

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130812

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140108

R150 Certificate of patent or registration of utility model

Ref document number: 5456632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees