JP5180268B2 - スケーラブルなバス構造 - Google Patents

スケーラブルなバス構造 Download PDF

Info

Publication number
JP5180268B2
JP5180268B2 JP2010200833A JP2010200833A JP5180268B2 JP 5180268 B2 JP5180268 B2 JP 5180268B2 JP 2010200833 A JP2010200833 A JP 2010200833A JP 2010200833 A JP2010200833 A JP 2010200833A JP 5180268 B2 JP5180268 B2 JP 5180268B2
Authority
JP
Japan
Prior art keywords
data
channel
address information
read
receiving element
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.)
Expired - Fee Related
Application number
JP2010200833A
Other languages
English (en)
Other versions
JP2011044154A (ja
Inventor
リチャード・ジェラルド・ホフマン
マーク・マイケル・シャッファー
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 JP2011044154A publication Critical patent/JP2011044154A/ja
Application granted granted Critical
Publication of JP5180268B2 publication Critical patent/JP5180268B2/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/14Handling requests for interconnection or transfer
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Variable-Direction Aerials And Aerial Arrays (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、一般的にはデジタルシステムに関し、より詳細にはスケーラブルなバス構造に関する。
洗練された処理タスクが素早く実行されることを可能にすることにより、計算機は電子産業界に革命を起こしてきた。これらの洗練されたタスクは、バスを用いる速く効率的な方法で互いと通信する多くの複雑な要素を含むシステムにより実行されることができる。バスは計算機、計算機サブシステム、計算機システム、あるいは他の電子システム内の要素間のチャネルあるいはパス(path)である。
計算機内にある(resident)多くのバスは伝統的に共有バスとして実現されてきた。共有バスは、いずらかの数の要素が共通のパスあるいはチャネル上で通信するための手段を提供する。近年、共有バス技術は1対1(point−to−point)スイッチング接続により補われてきた。1対1スイッチング接続はバス上の2要素間での直接接続を提供し、同時にそれらはお互いに通信する。マルチプル直接リンクはいくつかの要素が同時に通信できるようにするために使用されることができる。
計算機向けの共通の構成はシステムメモリを持つマイクロプロセッサを含む。高帯域システムバスがそれら2つの間の通信をサポートするために使用されることができる。加えて、データを周辺機器に転送させるために使用される周辺バスも存在できる。ある場合には、様々な資源(resource)を規定する(programming)目的で使用されるコンフィギュレーション(configuration)バスもありえる。必要なプロトコル変換を提供するためだけでなく、より高帯域幅のバスとより低帯域幅のバスとの間でデータを効率的に転送するために、ブリッジ(bridges)が使用されることができる。これらのバスのそれぞれは異なるプロトコルで実現されてきており、それらの間の性能要件(requirement)において幅広い変種を持つことができる。
計算機におけるマルチプルバス構造の利用は長年の間、実行できる解決策を提供してきた。しかし、面積と電力とが集積回路向けの主要な設計考慮事項として出現しているため、バス構造の複雑さを減らすことがますます望ましくなってきた。
本発明の第1の観点では、バス上における送信要素と受信要素との間で通信する方法は、読み出しアドレス情報及び書き込みアドレス情報と、読み出し制御信号及び書き込み制御信号と、書き込みデータとを前記バスの第1チャネル上で前記送信要素からブロードキャストすることを含む。前記方法は、前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを前記受信要素が区別できるように、前記送信要素から前記受信要素へシグナリングすることも含む。前記方法はさらに、前記書き込みアドレス情報と前記書き込み制御信号とに基づいて、前記受信要素において前記第1チャネル上でブロードキャストされた書き込みデータを格納し、前記読み出しアドレス情報と前記読み出し制御信号とに基づいて、前記受信要素から読み出しデータを引き出し、引き出された読み出しデータを第2チャネル上で前記受信要素からブロードキャストすることを含む。
本発明の別の観点では、処理システムは第1チャネルと第2チャネルとを有するバスを含む。前記処理システムは、前記第1チャネル上で、読み出しアドレス情報と、書き込みアドレス情報と、読み出し制御信号と、書き込み制御信号と、書き込みデータとをブロードキャストするよう構成された送信要素を含む。前記処理システムはさらに、前記書き込みアドレス情報と前記書き込み制御信号とに基づいて、前記第1チャネル上でブロードキャストされた書き込みデータを格納し、前記読み出しアドレス情報と前記読み出し制御信号とに基づいて、読み出しデータを引き出し、前記送信要素に前記第2チャネル上で前記引き出された読み出しデータをブロードキャストするよう構成された受信要素を含む。前記送信要素はさらに、前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを区別できるように、前記受信要素をシグナリングするよう構成される。
本発明のさらに別の観点では、処理システムは第1チャネルと第2チャネルとを有するバスを含む。前記処理システムは、前記第1チャネル上で、読み出しアドレス情報と、書き込みアドレス情報及び読み出しアドレス制御信号と、書き込みアドレス制御信号及び書き込みデータとをブロードキャストするための送信手段も含む。前記処理システムはさらに、前記書き込みアドレス情報と前記書き込み制御信号とに基づいて、前記第1チャネル上でブロードキャストされた書き込みデータを格納し、前記読み出し信号と前記読み出し制御信号とに基づいて、読み出しデータを引き出し、前記送信要素に前記第2チャネル上で前記引き出された読み出しデータをブロードキャストするための受信手段を含む。前記送信手段はさらに、前記受信要素が、前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを区別できるように、前記受信手段をシグナリングするための手段を含む。
本発明の他の実施形態は、図解の方法で本発明の様々な実施形態が示されそして記述されている以下の詳細な記述から当業者にとって容易に明白となることが理解されるであろう。すべて本発明の精神と範囲とから逸脱することなく、理解されるように、本発明は他の異なる実施形態が可能であり、そのいくつかの詳細は様々な他の側面における変更が可能である。したがって、図面と詳細な記述とは、本質的に例として、そして制限的でないとしてみなされるべきである。
図1は、処理システム内の2要素間2チャネルバス上での1対1接続の例を説明する概念的なブロック図である。 図2は、2チャネルバス上での1対1接続を有する処理システムにおいて2要素間での書き込み動作と読み出し動作とを示すタイミング図である。 図3は、処理システム内の2要素間高性能2チャネルバス上での1対1接続の例を説明する概念的なブロック図である。 図4は、図3の高性能バスの時分割多重の性質を説明する概念的なブロック図である。 図5は、処理システム内の2要素間低帯域幅2チャネル上での1対1接続の例を説明する概念的なブロック図である。 図6は、図5の低帯域幅バスの時分割多重の性質を説明する概念的なブロック図である。 図7は、ブリッジを通した高性能要素と低帯域幅要素との間の1対1接続の例を説明する概念的なブロック図である。
本出願は、2004年2月4日に出願された米国特許出願第60/542114号の優先権を主張する。
本発明の側面は例として図解されているのであり、添付図面に制限されない。
添付された図面と関連して以下の詳細な記載は、本発明の様々な実施形態の記載とみなされ、本発明が実践される可能性のある実施形態のみを表現することを意図したものではない。詳細な記載は本発明の完全な理解を提供する目的のために具体的な詳細を含む。しかし、当業者にとってはこれらの具体的な詳細がなくても本発明が実践できることが明白であろう。いくつかの例では、本発明の概念を不明瞭にすることを避けるため、よく知られた構造と要素とがブロック図の形式で示されている。略語と他の叙述的な用語とが単に便宜と明快さとのためのみで使用される可能性があり、本発明の範囲を制限することは意図されていない。
処理システムにおける様々な要素はバス上で通信できる。様々な要素の帯域幅の必要条件をサポートするため、このバスは幅とクロック周波数とに関してスケーラブル(scalable)であってもよい。このバスはまた、すべてのスケーラブルな構成のために、共通のアーキテクチャとシグナリングプロトコルとを使用できる。これは、そのバスのシグナリングプロトコルを、情報を送信あるいは受信することのどちらか一方に必要なそれらの信号のみに減らすことにより達成されることができる。
そのバスは、時分割多重の仕方と同一のシグナリングプロトコルを用いて、送信要素から受信要素へ情報をブロードキャストするための一般的な媒体を提供する「送信チャネル」と共に構成されることができる。「受信チャネル」は同一のシグナリングプロトコルを用いて受信要素から送信要素へ情報をブロードキャストすることもできる。
図1はこの基本的概念を説明する概念的なブロック図である。2つの要素間のバス上の1対1接続が処理システム内に示されている。処理システム100は1あるいは2以上の処理機能を実行するために協力する要素の集合であってもよい。典型的には、処理システムは計算機であり、あるいは計算機の中にあって、情報の処理、引き出し、格納ができるであろう。処理システムはスタンドアロンであることが可能である。あるいは、処理システムは例として携帯電話を含む、いずれかの装置に組み込まれることができる。
この処理システム100の1実施形態では、バス106は送信要素102と受信要素との間の専用バスである。処理システム100の別の実施形態では、送信要素102は受信要素104と、(図示しない)バス相互接続を介してバス106上での1対1接続で通信する。その上、当業者には容易に認識できるであろうに、本明細書のいたるところに記載されている独創的な側面は専用バスあるいは1対1スイッチング接続に限られるものではなく、例として共有バスを含むあらゆる種類のバス技術に適用されることができる。
送信要素102は、例としてマイクロプロセッサ、デジタル信号プロセッサ(DSP)、直接メモリアクセスコントローラ、ブリッジ、プログラマブル論理要素、ディスクリートゲートあるいはトランジスタロジック、あるいは任意の他の情報処理要素を含む、任意の種類のバスマスタリング(mastering)要素であってもよい。
受信要素104は例として、レジスタ、メモリ、ブリッジ、あるいは、情報を引き出し格納できる任意の他の要素を含む任意の格納要素であることができる。その受信要素の各アドレス位置での記憶容量は特定のアプリケーションと全体の設計制約とに依存して変わってもよい。説明の目的のため、受信要素はアドレス位置ごとに1バイトの記憶容量を持って記述されよう。
送信要素102は受信要素104から読み出され、あるいは受信要素104に書き込まれることができる。送信要素102が受信要素104に書き込む場合、送信要素は、送信チャネル108上で受信要素104へ、アドレス位置と適切な制御信号とペイロード(payload)とをブロードキャストすることができる。「ペイロード」は特定の読み出し動作あるいは書き込み動作、この場合では書き込み動作、と関連づけられたデータのことを指す。
制御信号は転送修飾句(transfer qualifier)を含むことができる。用語「転送修飾句」は、書き込み動作、読み出し動作、あるいは別のバスに関連した動作の属性(attribute)を記述するパラメータのことを指す。この場合、転送修飾句は、そのペイロード内に含まれるデータバイトの数を示すために「ペイロードサイズ信号」を含めることができる。そのペイロードが複数のバイトである場合、受信要素104は送信チャネル108上でブロードキャストされたアドレス位置で始まる連続したアドレス位置のブロック内にそのペイロードを格納できる。例として、送信デバイス102が4バイトの書き込みデータが続くアドレス位置100HEXをブロードキャストした場合、受信要素104は100HEXで始まり、103HEXで終わる連続したアドレス位置のブロックにそのペイロードを書き込むことができる。
制御信号は書き込みバイトイネーブル(write byte enables)も含むことができる。「書き込みバイトイネーブル」は、書き込み動作に関しペイロードをブロードキャストするために送信チャネル108上のどのバイトレーンが使用されるかを示すために使用されることができる。例として、32ビットの送信チャネル108上でブロードキャストされる2バイトのペイロードは4つのバイトレーンのうち2つを使用できる。書き込みバイトイネーブルは、そのペイロードをブロードキャストするため送信チャネル108上のどの2つのバイトレーンが使用されるかを受信要素104に示すために使用できる。
送信要素102が受信要素104から読み出す場合、アドレス位置と適切な転送修飾句とは、送信チャネル108でブロードキャストされる必要のある情報のみであってもよい。その転送修飾句は、ペイロード内に含まれるデータバイトの数を示すためのペイロードサイズ信号を含むことができる。受信要素104はそのブロードキャストを受け取ったことを知らせ、受信チャネル110上にそのペイロードを送信してもよい。そのペイロードが複数のバイトである場合、受信要素104は送信チャネル108上でブロードキャストされたアドレス位置で始まる連続したアドレス位置のブロックからペイロードを読み出せる。例として、送信デバイス102がアドレス位置200HEXをブロードキャストし4バイトの読み出しパイロードを要求する場合、受信要素104は200HEXで始まり、203HEXで終わる連続したアドレス位置のブロックからペイロードを引き出すことができる。
ここまでに(thus far)記述された処理システムの実施形態において、送信要素102は送信チャネル108の全体の(total)制御を有し、活動中の書き込み動作、に先立って、の間、あるいは、の後に、それらの関連づけられた制御信号と共に、1あるいは2以上のアドレス位置をブロードキャストすることができる。その上、送信チャネル108と受信チャネル110とはまったく独立しており、送信要素によるアドレス位置と制御信号と書き込みデータとのブロードキャストは、受信要素104による読み出しデータのブロードキャストと同時に起こることがあってもよい。「書き込みデータ」は送信要素102によりブロードキャストされたデータのことを指し、「読み出しデータ」は受信要素104から読み出され受信チャネル110上でブロードキャストされたデータのことを指す。
送信チャネル108と受信チャネル110との上での読み出し動作と書き込み動作とのシーケンスを制御するため、暗黙のアドレッシングスキーム(scheme)が使用できる。例として、送信要素102が、送信チャネル108上で適切な制御信号と共に一連のアドレス位置をブロードキャストすることで、マルチプルな(multiple)書き込み動作を開始する場合、送信要素102はアドレス位置がブロードキャストされたのと同一のシーケンスで、各書き込み動作のためのペイロードをブロードキャストするであろう。同様に、送信要素102が適切な制御信号と共に一連のアドレス位置をブロードキャストすることで、マルチプルな読み出し動作を開始する場合、受信要素104はアドレス位置を受け取ったのと同一のシーケンスで、各読み出し動作のためのペイロードを引き出すであろう。
「転送タグ」は、この暗黙のアドレッシングスキームの代案として使用されてもよい。送信要素102はそれぞれの書き込み動作と読み出し動作とのために転送タグを割り当てることができる。その転送タグは送信チャネル108上でブロードキャストされた転送修飾句に含めることができる。書き込み動作の場合、送信要素102はペイロードと共に転送タグを送信でき、受信要素104はそのペイロードを同定するためにその転送修飾句から取り出された(recovered)転送タグを使用できる。読み出し動作の場合、受信要素104はそのペイロードと共に取り出された転送タグを送信でき、送信要素はそのペイロードを同定するために転送タグを使用できる。
ここまでに(thus far)記述された様々な概念はいずれかの数のプロトコルを使用しても実現されてもよい。続く詳細な記述において、バスプロトコルの例が提示されるであろう。処理システムの独創的な側面を説明するため、そのような独創的な側面が任意の相応しいプロトコルと共に使用されうるという理解と共に、このバスプロトコルは提示されている。送信チャネルに関する基本シグナリングは以下の表1に示される。当業者はここに記載するバス構造の現実の実現において、容易にこのプロトコルに対し信号を変更、及び/あるいは追加できるであろう。
Figure 0005180268
以下の表2に示されるように、受信チャネルに関する同一のシグナリングプロトコルが使用できる。
Figure 0005180268
このシグナリングプロトコルで使用される種類フィールドの定義は表3に示される。
Figure 0005180268
このシグナリングプロトコルにおける有効信号と転送要請信号との定義は表4に示される。
Figure 0005180268
図2は、32ビットの送信チャネルと32ビットの受信チャネルとの上での読み出し動作と書き込み動作とを図解するタイミング図である。システムクロック202は、送信要素と受信要素との間の通信を同期させるために使用されてもよい。システムクロック202は、11クロックサイクルで示され、説明しやすくするため各サイクルは連続的に番号が付けられている。
第2クロックサイクル203の間に、送信要素により書き込み動作が開始されることができる。これは、書き込み動作用のアドレス位置のブロードキャストをシグナリングする(signal)ために、有効信号204をアサートし、種類フィールド206を設定することにより達成されることができる。アドレス位置は、受信要素に向けて送信チャネル208上でブロードキャストされることもできる。このブロードキャストに応答して、受信要素はそのアドレスキュー(queue)中に当該アドレス位置を格納する。
アドレス位置のブロードキャストに、第3クロックサイクル205において書き込み動作用にブロードキャストされた制御信号が続いてもよい。送信要素は、有効信号204がアサートされた状態に保ち、種類フィールド206を適切に変更することで、ブロードキャストされたその制御信号について受信要素に警報を出せ(alert)る。ブロードキャストされた制御信号は、書き込み動作のため書き込みバイトイネーブルと転送修飾句とを含んでもよい。この場合、転送修飾句は8バイトペイロードを示しているペイロードサイズ信号を含めることができる。書き込みバイトイネーブルは、その8バイトペイロードが送信チャネル208のすべてのバイトレーン上で送信されるであろうことを示すことができる。受信要素はブロードキャストされたペイロードが2クロックサイクルにわたってブロードキャストされるであろうことをこの情報から判別できる。
書き込み動作用のペイロードの最初の4バイトは、第4クロックサイクルの間、送信チャネル208上でブロードキャストされることができる。送信要素は、ブロードキャストされたペイロードをシグナリングするため種類フィールド206を変更し、有効信号204をアサートされた状態に保つことで、ブロードキャストされたペイロードについて受信要素に警報を出せる。転送タグがない場合、受信要素は、その書き込みデータを、先に議論された暗黙のアドレッシングスキームに基づくペイロードの最初の4バイトとして認識する。このブロードキャストに応答して、ペイロードの最初の4バイトは受信要素に書き込むことができる。
続くクロックサイクル209において、送信チャネル208上でペイロードの第2の4バイトがブロードキャストされるように、有効信号204と種類フィールド206とは不変のままである。しかし、受信要素は、当該ブロードキャストを受け入れられないことを示している転送要請信号210を論じる(disserted)。送信要素はこの第5クロックサイクル209の終わりに転送要請信号210がアサートされていないことを検出し、続くクロックサイクル211において、そのペイロードの第2の4バイトのブロードキャストを再度行うことができる。送信要素は、送信要素が受信要素からの転送要請信号210のアサーションを検出するまで、クロックサイクルごとにペイロードの第2の4バイトをブロードキャストし続けてもよい。この場合、ただ1つの繰り返しのブロードキャストが要求される。ペイロードの第2の4バイトは第6クロックサイクルにおいて受信要素に書き込まれることができる。第6クロックサイクル211の終わりに、送信要素は転送要請信号210のアサーションを検出し、当該ブロードキャストが受け取られたことを判別する。
第7クロックサイクル213の間に送信要素により読み出し動作が開始されることができる。これは、読み出し動作のためのアドレス位置のブロードキャストをシグナリングするために、有効信号204をアサートし、種類フィールド206を設定することにより達成されることができる。そして、アドレス位置が受信要素へ送信チャネル208上でブロードキャストされることができる。このブロードキャストに応答して、受信要素はそのアドレスキューに当該アドレス位置を格納する。
アドレス位置のブロードキャストに、第8クロックサイクル215において読み出し動作用にブロードキャストされた制御信号が続くことが可能である。送信要素は、有効信号204をアサートされた状態に保ち、種類フィールド206を適切に変更することで、ブロードキャストされた制御信について受信要素に警報を出せる。ブロードキャストされた制御信号は、読み出し動作のために転送修飾句を含んでもよい。この場合、転送修飾句は4バイトペイロードを示しているペイロードサイズ信号を含むことができる。受信要素はブロードキャストされたペイロードが1クロックサイクルにわたってブロードキャストされうることをこの情報から判別できる。
受信要素の読み出し遅延時間のため、読み出しデータが利用可能となる前に、数クロックサイクルの遅延が経験され(experienced)てもよい。ひとたび4バイトのペイロードが利用可能となると、受信要素は有効信号212をアサートし、受信チャネル216上をブロードキャストされたペイロードをシグナリングする種類フィールド214をアサートできる。送信要素により転送要請信号218がアサートされるため、そのペイロードのブロードキャストが1クロックサイクル内で完了させられることができる。受信要素は第10クロックサイクル219の終わりにおいて転送要請信号218のアサーションを検出し、それによりそのペイロードのブロードキャストが成功したことを判別する。
図3は高性能バス上での2要素間の1対1接続を図解する概念的なブロック図である。高性能バスの送信チャネル108と受信チャネル110とは、各副チャネルが32ビット幅であるマルチプル副チャネルとして実現されることができきる。現実の実装において、副チャネルの数と各副チャネルの幅とは特定の応用の性能要件に依存して変化してもよい。この例では、送信チャネルは4つの32ビット副チャネル108a−108dを含み、受信チャネルは2つの32ビット副チャネル110a−110bを含む。この実装は、例として、計算機内のシステムバスあるいは任意の他の高性能バスに相応しいかもしれない。用語「副チャネル」はチャネル内の他のワイヤあるいは導線から独立して制御されてもよいワイヤあるいは導線の集まりを指す。これは、副チャネルが独立したシグナリング能力が提供されることができることを意味する。
いくつかの情報の組み合わせを同時にブロードキャストするため、この高性能バスが送信要素102により使用されることができる。例として、単一のクロックサイクル内で32ビットのアドレス位置と、転送修飾句と書き込みバイトイネーブルとを含む制御信号の32ビットと、書き込みデータの8バイトとを送信要素はブロードキャストできる。受信チャネル110の場合は、単一のクロックサイクル内で、読み出しデータの8バイトが受信要素104から送信要素102へブロードキャストされることができる。
ここまでに記述された処理システムの様々な実施形態は、読み出しデータ以外の、受信チャネル110上でブロードキャストされるあらゆる他の種類の情報を含まないため、副チャネルの必要がない。シグナリング要件(すなわち、副チャネルなし(no sub−channels))を減らすため、単一の64ビット受信チャネルが実現されてもよい。しかし、処理システムのある種の実施形態では、他の情報のブロードキャストを可能にするためにシグナリングプロトコルにおける種類フィールドが拡張されてもよい。例として、そのデータが受信要素104に書き込まれたことを送信要素にシグナリングするため、「書き込み応答」が受信チャネル110上にブロードキャストされることができる。書き込み応答は予約された種類フィールドの1つを用いて受信チャネル110上にブロードキャストされてもよい。この場合、読み出しデータと書き込み応答とが同時に受信チャネル110上にブロードキャストされうるために、2つの独立して制御された32ビットの副チャネルを有することが有益でありうる。そのうえ、2つの32ビット副チャネルで、読み出しデータの4バイト、読み出しデータの2バイト及び32ビットの書き込み応答、あるいは2つの32ビットの書き込み応答を同時にブロードキャストできる可能性もある。他方、単一の64ビット受信チャネル110は、いずれかの与えられたクロックサイクルにおいて、読み出しデータあるいは書き込み応答をサポートできるのみである可能性がある。
同様の方法で、標準コマンドのような、多くのバスプロトコルに共通する他の種類の情報のブロードキャストを含むために送信チャネルが拡張されることもできる。例として、バスに付属したマイクロプロセッサは、システム内の他の要素に、例えば、TAB同期コマンドやTAB無効コマンドのような、情報をブロードキャストする必要があってもよい。これらのコマンドは、付加的なシグナリングの必要性なしに種類フィールド内に分類されることができる。
図4は、4つの副チャネル108a−108dを持つ送信チャネル108の時分割多重の性質を図解するブロック図である。この例では、完全な8バイトのペイロードのブロードキャストが、単一のクロックサイクル内で4つの副チャネルにわたって完了させられる。より詳細には、第1クロックサイクル401の間に、第1の書き込み動作のために、第1の副チャネル108a上で32ビットのアドレス位置を、第2の副チャネル108b上で制御信号の32ビットを送信要素はブロードキャストすることができる。送信要素も、同じクロックサイクルの間に、第3の副チャネル108c上でペイロードのより高い順序の4バイトを、第4の副チャネル108d上でそのペイロードのより低い順序の4バイトをブロードキャストすることができる。副チャネル108a−108dのそれぞれは独立したシグナリング能力と共に提供されることが可能であり、上述した場合には、各副チャネルに関して適切な種類フィールドを持つ有効信号をアサートする。
第1クロックサイクル401の終わりに各副チャネル108a−108dに関して転送要請がアサートされた状態で、第2クロックサイクル403の間に2つの書き込み動作が送信要素により開始されることができる。これは、各副チャネル108a−108bに関する適切なシグナリングと共に、第1の読み出し動作のために、第1の副チャネル108a上で32ビットのアドレス位置を、第2の副チャネル108b上で制御信号の32ビットをブロードキャストすることにより達成されることができる。再び各副チャネル108c−108dに関する適切なシグナリングと共に、第2の読み出し動作のために、第3の副チャネル108c上で32ビットのアドレス位置を、第4の副チャネル108d上で制御信号の32ビットを送信要素がブロードキャストできる。
第2クロックサイクルの終わりに各副チャネル108a−108dに関して転送要請がアサートされた状態で、第3クロックサイクル405の間に、第2の書き込み動作と第3の読み出し動作とが送信要素により開始されることができる。これは、各副チャネル108a−108bに関する適切なシグナリングと共に、第2の書き込み動作のために、第1の副チャネル108a上で32ビットのアドレス位置を、第2の副チャネル108b上で制御信号の32ビットをブロードキャストすることにより達成されることができる。再び各副チャネル108c−108dに関する適切なシグナリングと共に、第3の読み出し動作のために、第3の副チャネル108c上で32ビットのアドレス位置を、第4の副チャネル108d上で制御信号の32ビットを送信要素がブロードキャストできる。
この例において、第3クロックサイクル405の終わりに、第1の副チャネル108aと第2の副チャネル108bとの上で転送要請信号がアサートされるが、第3の副チャネル108cと第4の副チャネル108dとの上ではアサートされない。送信要素は、第3の副チャネル108cと第4の副チャネル108dとの上で、転送要請信号がアサートされていないことを検出し、第3の読み出し動作のための制御信号とアドレス位置とが再びブロードキャストされるべきことを判別できる。第3の読み出し動作のための制御信号とアドレス位置とが、それぞれ第4の副チャネル108dと第3の副チャネル108cとで、第4クロックサイクル407の間にブロードキャストされていることが示されているが、その後のいずれかのクロックサイクルの間にいずれの副チャネル上でも再びブロードキャストされてもよい。
上述の例において、受信要素は、第3の読み出し動作に関し制御信号とアドレス位置との双方とを受け入れるかあるいは拒否するかのように構成される。しかし、処理システムのある種の実施形態では、同一の読み出し動作あるいは書き込み動作に関し、受信要素はアドレス位置を受け入れ制御信号を拒否する、あるいはその逆を行うように構成されてもよい。同様に、受信要素が個々にペイロードのより高い順序のバイトあるいはより低い順序のバイトを受け入れるあるいは拒否するように構成されてもよい。この場合、第3の読み出し動作のための制御信号を言うの再ブロードキャストを以前ブロードキャストされた同一の動作のためのアドレス位置と結びつける方法である必要がある。これは様々な方法で達成されることができる。例として、ひとたび読み出し動作あるいは書き込み動作のためのアドレス位置が送信され受信要素により受け取ったことを知らされる(acknowledged)と、次の読み出し動作あるいは書き込み動作のためのアドレスは、現在の読み出し動作要求あるいは書き込み動作要求と関連づけられた制御信号が受け取られ受信要素により受け取ったことが知らされるまでブロードキャストされない。
第4クロックサイクル407の間に、送信要素は第2の書き込み動作のためのペイロードをブロードキャストし、第3の読み出し動作を開始するために2回目を試みることができる。これは、各副チャネル108a−108bに関する適切なシグナリングと共に、第2の書き込み動作のために、第1の副チャネル108a上でペイロードのより高いオーダの4バイトを、第2の副チャネル108b上でペイロードのより低いオーダの4バイトをブロードキャストすることにより達成されることができる。第3の読み出し動作に関する、第3の副チャネル108c上で32ビットのアドレス位置を、第4の副チャネル108d上で制御信号の32ビットを送信要素が再びブロードキャストできる。
この高性能バスの実施形態において、書き込み/読み出し要求の順序は状況により暗に示されてもよい。送信要素は、第1の副チャネル108a上で第1の書き込み/読み出し要求を、第2の副チャネル108b上で第2の書き込み/読み出し要求を、第3の副チャネル108c上で第3の書き込み/読み出し要求を、第4の副チャネル108d上で第4の書き込み/読み出し要求をブロードキャストできる。受信要素は連続した一貫性を維持するためこの暗黙のポジショニング(positioning)に基づいて要求を処理できる。例として、第3クロックサイクル405の間に開始された読み出し動作に関するアドレス位置と書き込み動作とに関するアドレス位置が同一である場合、受信要素は、送信要素への送信のためにこのアドレス位置に新たに書き込まれたデータを受信チャネルに供給する前に、第4クロックサイクルの間に第1の副チャネル108aと第2の副チャネル108bとの上でブロードキャストされたデータがそのアドレス位置に書き込まれるまで待つことができる。
ここまでで記述された高性能バスの実施形態において、書き込み動作の要求(すなわち、アドレス位置と制御信号と)のブロードキャストに続いて書き込みデータが直ちにブロードキャストされる必要はない。他のより高い優先順位を持つ読み出し動作要求、および/あるいは命令は、送信チャネル108上でブロードキャストされた書き込みデータにインターリーブされる(interleaved)ことができる。しかし、送信要素が読み出し動作要求、および/あるいは命令を、書き込みデータにインターリーブした場合、送信要素はアドレスバックオフ機構と共に構成されるべきである。
図2と関連して先に記載したように、送信要素は送信チャネル208でのブロードキャストに続く転送要請信号210をサンプリング(sample)する。送信要素がアサートされた転送要請信号210を検出し損ねた場合、続くクロックサイクルの間そのブロードキャストを繰り返してもよい。アサートされた転送要請信号210を送信要素が検出するまで、そのブロードキャストがクロックサイクルごとに繰り返されることが可能である。アドレスキューが読み出し動作要求の間一杯で、したがってそれ以上のアドレス位置の受け取りができない時には、問題が生じる可能性がある。同時に、受信要素はそのアドレスキュー内の空きを解放するため中断している書き込み動作を完了させる必要がある。この場合、受信要素はデッドロックであると言われる。
アドレスバックオフ機構は、受信要素がデッドロック状態にある際に書き込み動作を完了するように計画される。これは、読み出し動作要求に関連して送信要素によるブロードキャストの繰り返し回数を制限することにより達成されることができる。あるクロックサイクル数内に転送要請信号と共に読み出し動作要求を受け取ったことを受信要素が知らせない場合、現在の読み出し動作要求に関するアドレス位置の代わりに残っている書き込みデータを送信することにより送信要素はその要求を中止できる。完了させる必要のある中断している書き込み動作がない場合、その読み出し動作要求のブロードキャストが中止させられる必要はない。そのブロードキャストは受信要素がその要求を受け取ったことを知らせるまで続けられるかもしれない。
送信要素が読み出し動作要求に書き込みデータをインターリーブしない場合、アドレスバックオフ機構が必要とされない可能性がある。すなわち、書き込み動作に関するアドレス位置に直ちに制御信号が続き、そして直ちに書き込みデータが続く場合、受信要素は決してデッドロックに遭遇しないであろう。しかし、送信要素が、ずっと読み出し動作のパイプラインを受信チャネルの帯域幅をフルに利用するのに十分であるように維持できない可能性があるため、受信チャネルの性能を悪化させるかもしれない。
図5は、低帯域幅バス上での2要素間の1対1接続を図解する概念的なブロック図である。その低帯域幅バスは、より少ない信号を要求し、より少ない電力消失(dissipation)に帰着する、単一の送信チャネル108と単一の受信チャネル110とで実現できる。図5に示された例において、32ビット送信チャネル108上で受信要素104への情報を送信要素102がブロードキャストし、32ビット受信チャネル110上で受信要素104への情報を受信要素104が元の場所へ(back)ブロードキャストできる。代わりに、この同一のバス構造がより低いバス幅で実現されてもよい。
この構成は送信チャネル108と受信チャネル110とが同時に情報をブロードキャストできることを可能にし続けるが、読み出し動作あるいは書き込み動作のおのおのは、図6のブロック図に示されているようにただちに(now)複数のクロックサイクルを必要とすることができる。この例では、読み出し動作を開始するために2クロックサイクルが使用される。より詳細には、第1クロックサイクル601において送信チャネル108上で32ビットのアドレス位置がブロードキャストされることができ、続くクロックサイクル603において、制御信号の32ビットが続くことができる。4バイトのペイロードがこの要求に応答して受信要素から読み出され、第3クロックサイクル605において受信チャネル上でロードキャストされることができる。
受信チャネル上でのペイロードのブロードキャストと同時に、送信要素は書き込み動作を開始できる。この場合、その書き込み動作は3クロックサイクルを要する。第3クロックサイクル605において、第5クロックサイクル609における4バイトのペイロードに伴われた、第4クロックサイクル607における制御信号の32ビットに伴われた、32ビットのアドレス位置を、送信要素は送信チャネル108上でブロードキャストする。
多くの処理システムにおいて、あるデバイスが高帯域幅の相互接続を要求する可能性がある一方で、他のデバイスはずっと低い帯域幅の相互接続で十分に動作できる。スケーラブルなバスアーキテクチャを使用することで、ブリッジの実装が共通のシグナリングプロトコルと共に実現されることができる。図7はブリッジを通過する2つの要素間の1対1接続を図解する概念的なブロック図である。高性能バスに取りつけられた送信要素102を、より低帯域幅のバスに取りつけられた受信要素とインターフェイスするためにブロック702が使用されることができる。その高性能バスは、4つの32ビット副チャネル108a−108dを有する送信チャネル108と、2つの32ビット受信チャネル110aと110bとを有する受信チャネル110とで実現されることができる。低帯域幅のバスは、単一の32ビット送信チャネル108´と単一の32ビット受信チャネル110´とで実現されることができる。
この例において、図3と図4とに関連して先に述べたように、アドレス位置と制御信号と8バイトのペイロードとをブロードキャストするために、高性能バスの4つの送信副チャネル108a−108dを用いて、単一のクロックサイクル内でブリッジ702と送信デバイス102との間で書き込み動作を完了させることができる。図5と図6とに関連して先に述べたように、ブリッジ702は、4クロックサイクル中でより低帯域幅のバスの32ビット送信チャネル108´上で受信要素104への情報をブロードキャストし、バッファできる。
読み出し動作の場合、単一のクロックサイクル内で高性能バスの2つの送信副チャネル上で送信要素102によりブリッジ702へアドレス位置と制御信号とがブロードキャストされることができる。ブリッジ702は、この情報をバッファし、2クロックサイクルのうちに32ビット送信チャネル108´上で受信要素104へブロードキャストできる。そして、受信要素104からブリッジ702へ32ビット受信チャネル110´上で8バイトのペイロードがブロードキャストされ、ブリッジ702において一時記憶領域へ入れられ、そして、単一のクロックサイクルにおいて2つの受信副チャネル110aと110bとの上でブリッジ702により送信要素102にブロードキャストされることができる。
ここに開示された実施形態と関連して述べた、様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)あるいは他のプログラマブル論理要素、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア要素、あるいはここに記載された機能を実行するように設計されたこれらのあらゆる組み合わせにより実現され、あるいは実行されることが可能である。汎用プロセッサは、マイクロプロセッサであってもよいが、別の例では、そのプロセッサは、任意の従来プロセッサ、コントローラ、マイクロコントローラ、あるいは状態機械であってもよい。また、プロセッサは、計算要素の組み合わせ、例えば、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサの組み合わせ、DSPコアと連動する1あるいは2以上のマイクロプロセッサの組み合わせ、あるいは任意の他のそのような構成として実現されることができる。
ここにおいて開示された実施形態と関連して記載された方法あるいはアルゴリズムは、直接にプロセッサにより実行されるソフトウェアモジュールで、ハードウェアであるいはそれら2つの組み合わせで具体化されることができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、あるいは当技術分野で既知の任意の他の記憶媒体の形態内にあって(reside)もよい。記憶媒体は、プロセッサがその記憶媒体から情報を読み出したり、その記憶媒体へ情報を書き込んだりするように、プロセッサと結合されてもよい。別の例では、記憶媒体はそのプロセッサと一体であってもよい。そのプロセッサとその記憶媒体とがあるASIC内にあってもよい。そのASICが送信要素および/あるいは受信要素、もしくはその他の場所にあってもよい。別の例では、そのプロセッサとその記憶媒体とが、送信要素および/あるいは受信要素、もしくはその他の場所に個別の要素としてあってもよい。
開示した実施形態の先行する記載はいかなる当業者でも本発明を構成あるいは利用できるように提供される。これらの実施形態に対する様々な変形例は、当業者にとっては容易に明白であり、ここで定義された一般的な原理は、本発明の精神あるいは範囲から逸脱することなく、他の実施形態に適用可能である。したがって、本発明は、ここで示した実施形態に限定されることを意図したものではなく、ここに開示した原理と新規な特徴と合致する最も広い範囲と一致すべきものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]バス上で送信要素と受信要素との間で通信する方法であって、
前記バスは、第1チャネルと第2チャネルとを備え、
前記方法は、
読み出しアドレス情報及び書き込みアドレス情報と、読み出し制御信号及び書き込み制御信号と、書き込みデータとを前記第1チャネル上で前記送信要素からブロードキャストし、
前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを前記受信要素が区別できるように、前記送信要素から前記受信要素へシグナリングし、
前記書き込みアドレス情報と前記書き込み制御信号とに基づいて、前記受信要素において前記第1チャネル上でブロードキャストされた書き込みデータを格納し、
前記読み出しアドレス情報と前記読み出し制御信号とに基づいて、前記受信要素から読み出しデータを引き出し、
引き出された読み出しデータを前記第2チャネル上で前記受信要素からブロードキャストする、
ことを備える方法。
[2]前記第1チャネルは複数の副チャネルを備え、
前記副チャネルの第1副チャネルがとあるタイムピリオドの間に前記アドレス情報の一部をブロードキャストし、並行して、前記副チャネルの第2副チャネルが同一のタイムピリオドの間に制御信号の一部をブロードキャストする、
上記[1]に記載の方法。
[3]前記副チャネルの第3副チャネルが前記同一のタイムピリオドの間に書き込みデータの一部をブロードキャストする、上記[2]に記載の方法。
[4]書き込み信号と読み出し信号とは複数の転送修飾句と書き込みバイトイネーブルとを備える、上記[1]に記載の方法。
[5]前記第2チャネル上で、前記引き出された読み出しデータの少なくとも一部のブロードキャストと並行して、少なくとも、書き込みデータ、読み出し制御信号あるいは書き込み制御信号、もしくは前記読み出しアドレス情報あるいは前記書き込みアドレス情報の一部が前記第1チャネル上でブロードキャストされる、上記[1]に記載の方法。
[6]前記書き込みデータは複数のペイロードを備え、
前記送信要素が前記ペイロードの1つの第1の部分と第2の部分との間に読み出しアドレス情報あるいは書き込みアドレス情報の一部をブロードキャストする、
上記[1]に記載の方法。
[7]さらに、前記受信要素から前記送信要素へ、前記第1チャネル上の前記ブロードキャストを受け取ったことを知らせるためにシグナリングする、上記[1]に記載の方法。
[8]さらに、前記受信要素から前記送信要素への前記シグナリングに応答して、前記読み出しアドレス情報あるいは前記書き込みアドレス情報、前記読み出し制御信号あるいは前記書き込み制御信号、もしくは書き込みデータの同一部分のブロードキャストを繰り返す、上記[7]に記載の方法。
[9]前記書き込みデータは複数のペイロードを備え、
前記ペイロードの1と関連づけられた前記書き込みアドレス情報の部分の前記ブロードキャストに続くが、前記ペイロードの前記1つが前記受信要素に完全にブロードキャストされる前のタイムピリオドの間、前記読み出しアドレス情報あるいは前記読み出し制御信号の前記同一部分が、繰り返しブロードキャストされ、
前記方法は、さらに、
前記タイムピリオドの終わりに前記繰り返されたブロードキャストを中断し、
前記ペイロードの前記1つの前記ブロードキャストを完了し、
前記ペイロードの前記1つの前記ブロードキャストの完了に続いて、前記読み出しアドレス情報あるいは前記読み出し制御信号の前記同一部分のブロードキャストを繰り返す、
上記[8]に記載の方法。
[10]さらに、前記受信要素から前記送信要素へ、前記受信要素がいつ前記読み出しデータをブロードキャストしているかを示すためシグナリングする、上記[1]に記載の方法。
[11]さらに、
前記第2チャネル上で前記受信要素から命令をブロードキャストし、
前記送信要素が前記読み出しデータと前記命令とを区別できるよう、前記受信要素から前記送信要素へシグナリングする、
上記[10]に記載の方法。
[12]前記第2チャネルは複数の副チャネルを備え、
前記副チャネルの第1副チャネルがとあるタイムピリオドの間に読み出しデータの一部をブロードキャストし、並行して、前記副チャネルの第2副チャネルが同一のタイムピリオドの間に命令の一部のブロードキャストする、
上記[11]に記載の方法。
[13]第1チャネルと第2チャネルとを有するバスと、
前記第1チャネル上で、読み出しアドレス情報と、書き込みアドレス情報と、読み出し制御信号と、書き込み制御信号と、書き込みデータとをブロードキャストするよう構成されている送信要素と、
前記書き込みアドレス情報と前記書き込み制御信号とに基づいて前記第1チャネル上でブロードキャストされた前記書き込みデータを格納し、前記読み出しアドレス情報と前記読み出し制御信号とに基づいて読み出しデータを引き出し、前記送信要素に前記引き出された読み出しデータを前記第2チャネル上でブロードキャストする、よう構成されている受信要素と、
を備え、
前記送信要素はさらに、前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを区別できるように、前記受信要素をシグナリングするよう構成されている、
処理システム。
[14]前記第1チャネルは複数の副チャネルを備え、
前記送信要素はさらに、前記副チャネルの第1副チャネルがとあるタイムピリオドの間に前記アドレス情報の一部をブロードキャストし、並行して、前記副チャネルの第2副チャネルが同一のタイムピリオドの間に制御信号の一部をブロードキャストするよう構成されている、
上記[13]に記載の処理システム。
[15]前記送信要素はさらに、前記副チャネルの第3副チャネル上に前記同一のタイムピリオドの間に書き込みデータの一部をブロードキャストするよう構成されている、上記[14]に記載の処理システム。
[16]前記読み出し信号と前記書き込み信号とは、複数の転送修飾句と書き込みバイトイネーブルとを備える、上記[13]に記載の処理システム。
[17]前記送信要素はさらに、前記第2チャネル上で、前記引き出された読み出しデータの少なくとも一部のブロードキャストと並行して、少なくとも、書き込みデータ、読み出し制御信号あるいは書き込み制御信号、もしくは前記読み出しアドレス情報あるいは前記書き込みアドレス情報の一部が前記第1チャネル上でブロードキャストするよう構成されている、上記[13]に記載の処理システム。
[18]前記書き込みデータは複数のペイロードを備え、
前記送信要素はさらに、前記ペイロードの1つの第1の部分と第2の部分との間に読み出しアドレス情報あるいは書き込みアドレス情報の一部をブロードキャストするよう構成されている、
上記[13]に記載の処理システム。
[19]前記受信要素はさらに前記第1チャネル上の前記ブロードキャストを受け取ったことを知らせるために、前記送信要素に対してシグナリングするよう構成されている、上記[13]に記載の処理システム。
[20]前記送信要素はさらに、前記受信要素からそのようなブロードキャストに関する受信確認を受け取っていない場合、書き込みデータ、読み出し制御信号あるいは書き込み制御信号、もしくは読み出しアドレス情報あるいは書き込みアドレス情報の前記同一部分のブロードキャストを繰り返すよう構成されている、上記[19]に記載の処理システム。
[21]前記送信要素がさらにアドレスバックオフ機構を備える、上記[19]に記載の処理システム。
[22]前記受信要素がさらに前記受信要素がいつ前記読み出しデータをブロードキャストしているかを示すために前記送信要素にシグナリングするよう構成されている、上記[13]に記載の処理システム。
[23]前記受信要素がさらに、前記第2チャネル上で命令をブロードキャストし、前記送信要素が前記読み出しデータと前記命令とを区別できるように前記送信要素にシグナリングする、よう構成されている、上記[22]に記載の処理システム。
[24]前記第2チャネルは複数の副チャネルを備え、
前記受信要素はさらに、前記副チャネルの第1副チャネル上でとあるタイムピリオドの間に読み出しデータの一部をブロードキャストし、並行して、前記副チャネルの第2副チャネル上で同一のタイムピリオドの間に命令の一部のブロードキャストするよう構成されている、
上記[23]に記載の処理システム。
[25]第1チャネルと第2チャネルとを有するバスと、
前記第1チャネル上を、読み出しアドレス情報と、書き込みアドレス情報及び読み出しアドレス制御信号と、書き込みアドレス制御信号及び書き込みデータとをブロードキャストするための送信手段と、
前記書き込みアドレス情報と前記書き込み制御信号とに基づいて、前記第1チャネル上でブロードキャストされた前記書き込みデータを格納し、前記読み出しアドレス情報と前記読み出し制御信号とに基づいて、読み出しデータを引き出し、前記第2チャネル上で送信要素へ前記引き出された読み出しデータをブロードキャストするための受信手段と、
を備え、
前記送信手段はさらに、前記受信要素が、前記第1チャネル上でブロードキャストされた、前記書き込みデータと、前記読み出し制御信号及び前記書き込み制御信号と、前記読み出しアドレス情報及び前記書き込みアドレス情報とを区別できるように、前記受信手段をシグナリングするための手段を備える、
処理システム。

Claims (25)

  1. バス上で通信する方法であって、
    前記方法は、
    前記バスの送信チャネル上で送信要素から受信要素に第1のデータおよび第1のアドレス情報のうちの少なくとも1つ、あるいは両方を送信し、前記送信チャネル上で前記送信要素から前記受信要素に第2のデータおよび第2のアドレス情報のうちの少なくとも1つ、あるいは両方を送信すること、
    前記送信要素から前記受信要素に複数の種類フィールド中の種類データを送信すること、前記種類データは、前記受信要素が前記第1のデータと前記第1のアドレス情報を区別でき、前記第2のデータと前記第2のアドレス情報を区別できるように通信される
    前記受信要素が前記送信された第1のデータ、第1のアドレス情報、第2のデータまたは第2のアドレス情報のいずれも受信しないことを、受信確認信号に基づいて、前記送信要素で検出すること、および前記検出することに応答して、前記送信要素から前記受信要素への前記第1のデータ第1のアドレス情報第2のデータまたは第2のアドレス情報のうちの1あるいは2以上のものの送信を繰り返すこと、
    ここにおいて、前記送信を繰り返すことは、前記受信確認信号が所定のクロックサイクル数内での受信を示さないとき、前記送信要素による送信の繰り返し回数を制限することを含む、
    前記送信要素から前記受信要素へ読み出し動作要求を送信すること、
    前記読み出し動作要求が前記受信要素で受信されたか否かを、前記受信確認信号に基づいて、前記送信要素で検出すること、および前記読み出し動作要求が受信されなかったことを検出することに応答して前記読み出し動作要求に関するアドレス位置の代わりに、中断している書き込み動作残っている書き込みデータを前記送信要素から送信すること、
    前記バスの受信チャネル上で、前記受信要素から読み出しデータを受信すること、
    を備える方法。
  2. 前記第1のアドレス情報及び前記第2のアドレス情報は、共通のクロックサイクル中に前記送信チャネル上で送信される、
    請求項1に記載の方法。
  3. さらに、前記受信要素から前記送信要素へ、前記受信要素が前記読み出しデータをいつ送信しているかを示すためにシグナリングすることを備える、請求項1に記載の方法。
  4. 前記受信要素から前記受信チャネル上で複数の命令を送信すること、
    前記送信要素が前記読み出しデータと前記複数の命令とを区別できるように、前記受信要素から前記送信要素へシグナリングすること
    をさらに備える、請求項3に記載の方法。
  5. 前記受信チャネルは複数の副チャネルを備える、
    請求項4に記載の方法。
  6. 下記を備える処理システム、
    第1チャネルと第2チャネルとを有するバスと、
    該バスの前記第1チャネル上で送信要素から受信要素へ第1のデータおよび第1のアドレス情報のうちの少なくとも1つ、あるいは両方を送信するように、および前記第1チャネル上で前記送信要素から前記受信要素へ第2のデータおよび第2のアドレス情報のうちの少なくとも1つ、あるいは両方を送信するよう構成されている送信要素と、
    ここにおいて、前記受信要素は、前記第1チャネル上で送信された前記第1および第2のデータを格納するように、及び前記第1および第2のアドレス情報に基づいて読み出しデータを引き出すように、構成されている、
    ここにおいて、前記送信要素は、前記受信要素に複数の種類フィールド中の種類データを送信するようにさらに構成され、前記種類データは、前記受信要素が前記第1のデータと前記第1のアドレス情報を区別できるように、及び前記第2のデータと前記第2のアドレス情報を区別できるように通信される、
    ここにおいて、前記送信要素は、前記受信要素が前記送信された第1のデータ、第1のアドレス情報、第2のデータまたは第2のアドレス情報のいずれも受信しないことを、受信確認信号に基づいて検出するように、および前記検出することに応答して、受信確認が前記送信要素によって前記受信要素から受信されないとき、前記送信要素から前記受信要素への前記第1のデータおよび第1のアドレス情報あるいは前記第2のデータおよび第2のアドレス情報の送信を繰り返すようにさらに構成されている、
    ここにおいて、前記送信要素は、前記受信確認が所定のクロックサイクル数内に受信されないとき、繰り返し送信の回数を制限するようにさらに構成され、
    ここにおいて、前記送信要素は、前記送信要素から前記受信要素へ読み出し動作要求を送信するようにさらに構成され、
    ここにおいて、前記送信要素は、前記読み出し動作要求が前記受信要素で受信されないことを、前記受信確認信号に基づいて検出するように、および、応答して、読み出し動作要求に関するアドレス位置の代わりに、中断している書き込み動作から残っている書き込みデータを送信するようにさらに構成されている。
  7. 前記受信要素は、前記受信要素が前記読み出しデータをいつ送信しているかを示すために前記送信要素にシグナリングするようにさらに構成されている、請求項6に記載の処理システム。
  8. 前記受信要素は、前記第2チャネル上で命令を送信するように、及び前記送信要素が前記読み出しデータと前記命令とを区別できるように前記送信要素にシグナリングするように、さらに構成されている、請求項に記載の処理システム。
  9. 送信のために利用可能である前記送信チャネルの副チャネルの第1の数を決定することをさらに備え、ここにおいて、副チャネルの前記第1の数は少なくとも2である、請求項1に記載の方法。
  10. 前記読み出しデータの送信に利用可能である前記受信チャネルの副チャネルの第2の数を決定することをさらに備え、ここにおいて、副チャネルの前記第2の数は少なくとも2である、請求項に記載の方法。
  11. 副チャネルの前記第1の数を変更することをさらに備える、請求項10に記載の方法。
  12. 副チャネルの前記第2の数を変更することをさらに備える、請求項11に記載の方法。
  13. 副チャネルの前記第1の数を増加することをさらに備える、請求項11に記載の方法。
  14. 前記第1のデータは前記送信チャネルの第1の副チャネル上で通信され、前記第2のデータは前記送信チャネルの第2の副チャネル上で通信される、請求項1に記載の方法。
  15. 前記第1のデータおよび第1のアドレス情報の少なくとも一部分は、前記送信チャネルのうちの第1の副チャネル上で送信され、前記第2のデータおよび第2のアドレス情報の少なくとも一部分は、前記読み出しデータの少なくとも一部分の受信と並行して、前記送信チャネルのうちの第2の副チャネル上で送信される、請求項14に記載の方法。
  16. 前記複数の種類フィールドのうちの少なくとも1つにおける前記種類データは、共有参照クロック信号のライジング・エッジ上でデータ種類とアドレス種類との間で変化する、請求項1に記載の方法。
  17. 前記第1のデータは、第1の副チャネル上でペイロードにより通信される、請求項14に記載の方法。
  18. 前記ペイロードを識別する転送タグは、前記送信チャネル上で通信される、請求項17に記載の方法。
  19. 前記送信チャネル上で複数の転送修飾句を送信することをさらに備える、請求項1に記載の方法。
  20. 前記複数の転送修飾句はペイロードサイズを備える、請求項19に記載の方法。
  21. 前記第1のデータは前記送信チャネルの第1の副チャネル上で通信され、前記第2のデータは前記送信チャネルの第2の副チャネル上で通信される、請求項6に記載のシステム。
  22. 前記送信要素は、前記第2チャネル上で通信された前記引き出された読み出しデータの少なくとも一部分を受信することと実質的に並行して、前記第1の副チャネル上で前記第1のデータおよび第1のアドレス情報の少なくとも一部分を送信するようにさらに構成されている、請求項21に記載の処理システム。
  23. 前記複数の種類データフィールドのそれぞれは、3ビットデータフィールドである、請求項6に記載のシステム。
  24. 前記動作要求は、読み出し動作要求および書き込み動作要求のうちの1つである、請求項1に記載の方法。
  25. 前記動作要求は、読み出し動作要求および書き込み動作要求のうちの1つである、請求項6に記載のシステム。
JP2010200833A 2004-02-04 2010-09-08 スケーラブルなバス構造 Expired - Fee Related JP5180268B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US54211404P 2004-02-04 2004-02-04
US60/542,114 2004-02-04
US10/921,053 2004-08-17
US10/921,053 US7209998B2 (en) 2004-02-04 2004-08-17 Scalable bus structure

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006552321A Division JP4685800B2 (ja) 2004-02-04 2005-02-03 スケーラブルなバス構造

Publications (2)

Publication Number Publication Date
JP2011044154A JP2011044154A (ja) 2011-03-03
JP5180268B2 true JP5180268B2 (ja) 2013-04-10

Family

ID=34811473

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006552321A Expired - Fee Related JP4685800B2 (ja) 2004-02-04 2005-02-03 スケーラブルなバス構造
JP2010200833A Expired - Fee Related JP5180268B2 (ja) 2004-02-04 2010-09-08 スケーラブルなバス構造

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006552321A Expired - Fee Related JP4685800B2 (ja) 2004-02-04 2005-02-03 スケーラブルなバス構造

Country Status (12)

Country Link
US (3) US7209998B2 (ja)
EP (2) EP1714218B9 (ja)
JP (2) JP4685800B2 (ja)
KR (1) KR100876575B1 (ja)
CN (2) CN100481053C (ja)
AT (2) ATE526634T1 (ja)
DE (1) DE602005022829D1 (ja)
ES (1) ES2348582T3 (ja)
HK (1) HK1099823A1 (ja)
IL (3) IL177240A (ja)
PL (1) PL1714218T3 (ja)
WO (1) WO2005078594A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7617343B2 (en) * 2005-03-02 2009-11-10 Qualcomm Incorporated Scalable bus structure
US8107492B2 (en) * 2006-02-24 2012-01-31 Qualcomm Incorporated Cooperative writes over the address channel of a bus
US8108563B2 (en) * 2006-02-24 2012-01-31 Qualcomm Incorporated Auxiliary writes over address channel
US7822903B2 (en) * 2006-02-24 2010-10-26 Qualcomm Incorporated Single bus command having transfer information for transferring data in a processing system
AU2007237067C1 (en) 2006-04-10 2012-05-24 Elta Systems Ltd. Distributed jammer system
JP5166922B2 (ja) * 2008-03-10 2013-03-21 キヤノン株式会社 共有バス制御装置及びその制御方法
KR20100063219A (ko) * 2008-12-03 2010-06-11 삼성전자주식회사 시스템 온 칩에서 비트 단위의 데이터 쓰기 방법 및 장치
US9972196B2 (en) * 2012-04-23 2018-05-15 Analog Devices, Inc. Isolator system with status data integrated with measurement data
US9768945B2 (en) 2012-04-23 2017-09-19 Analog Devices, Inc. Isolated system data communication
US9280503B2 (en) * 2013-04-12 2016-03-08 Apple Inc. Round robin arbiter handling slow transaction sources and preventing block
KR101925694B1 (ko) * 2013-12-26 2018-12-05 인텔 코포레이션 멀티칩 패키지 링크
US11086803B2 (en) 2018-10-05 2021-08-10 Micron Technology, Inc. Dynamically configuring transmission lines of a bus
WO2020252791A1 (zh) * 2019-06-21 2020-12-24 华为技术有限公司 一种集成芯片及数据处理方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146148A (ja) * 1986-12-09 1988-06-18 Nec Corp バス方式
US5065396A (en) * 1990-01-02 1991-11-12 At&T Bell Laboratories Inverse multiplexer and demultiplexer techniques
US5161162A (en) * 1990-04-12 1992-11-03 Sun Microsystems, Inc. Method and apparatus for system bus testability through loopback
US5418785A (en) * 1992-06-04 1995-05-23 Gte Laboratories Incorporated Multiple-channel token ring network with single optical fiber utilizing subcarrier multiplexing with a dedicated control channel
US5303227A (en) * 1992-08-03 1994-04-12 Motorola, Inc. Method and apparatus for enhanced modes in SPI communication
US5450547A (en) * 1992-10-01 1995-09-12 Xerox Corporation Bus interface using pending channel information stored in single circular queue for controlling channels of data transfer within multiple FIFO devices
US5699540A (en) * 1992-11-16 1997-12-16 Intel Corporation Pseudo-concurrent access to a cached shared resource
JPH06259343A (ja) * 1993-03-10 1994-09-16 Hitachi Ltd 多重バス制御方式及びそれを用いたシステム
US5752076A (en) * 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US6209071B1 (en) * 1996-05-07 2001-03-27 Rambus Inc. Asynchronous request/synchronous data dynamic random access memory
US5812878A (en) * 1996-05-10 1998-09-22 Apple Computer, Inc. System for DMA transfer wherein controller waits before execution of next instruction until a counter counts down from a value loaded by said controller
US5896513A (en) * 1996-07-03 1999-04-20 Intel Corporation Computer system providing a universal architecture adaptive to a variety of processor types and bus protocols
US5926831A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and apparatus for control of speculative memory accesses
US5925118A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and architectures for overlapped read and write operations
US5870406A (en) * 1997-02-19 1999-02-09 Ericsson Inc. Automatic repeat request(ARQ) data communications method and apparatus
JPH10289202A (ja) * 1997-04-16 1998-10-27 Seiko Epson Corp マイコン回路
US5944805A (en) * 1997-08-21 1999-08-31 Advanced Micro Devices, Inc. System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus
US5991841A (en) * 1997-09-24 1999-11-23 Intel Corporation Memory transactions on a low pin count bus
US6081860A (en) * 1997-11-20 2000-06-27 International Business Machines Corporation Address pipelining for data transfers
US6292705B1 (en) * 1998-09-29 2001-09-18 Conexant Systems, Inc. Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system
US6167475A (en) * 1998-07-06 2000-12-26 International Business Machines Corporation Data transfer method/engine for pipelining shared memory bus accesses
US6430641B1 (en) * 1999-05-04 2002-08-06 International Business Machines Corporation Methods, arbiters, and computer program products that can improve the performance of a pipelined dual bus data processing system
US6427193B1 (en) 1999-05-18 2002-07-30 Advanced Micro Devices, Inc. Deadlock avoidance using exponential backoff
JP3853114B2 (ja) * 1999-07-30 2006-12-06 松下電器産業株式会社 インターフェースの設計方法
JP2001092662A (ja) * 1999-09-22 2001-04-06 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
CN1129071C (zh) 1999-10-27 2003-11-26 盖内蒂克瓦尔有限公司 元件之间的通道传输结构及其传输方法
JP2001154981A (ja) * 1999-11-12 2001-06-08 Geneticware Corp Ltd エレメント間のチャンネル通信方法およびそのチャンネル通信装置
US6628166B2 (en) * 2000-03-03 2003-09-30 Tripath Technology, Inc. RF communication system using an RF digital amplifier
JP2001265711A (ja) * 2000-03-17 2001-09-28 Casio Comput Co Ltd データ転送装置およびバスシステム
JP3714104B2 (ja) * 2000-03-31 2005-11-09 セイコーエプソン株式会社 電子印刷装置用の画像処理コントローラ及びそれを有する電子印刷装置。
US6654836B1 (en) * 2000-06-20 2003-11-25 International Business Machines Corporation Dual master device for improved utilization of a processor local bus
US6772254B2 (en) * 2000-06-21 2004-08-03 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining
US6629166B1 (en) 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
US6594712B1 (en) * 2000-10-20 2003-07-15 Banderacom, Inc. Inifiniband channel adapter for performing direct DMA between PCI bus and inifiniband link
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US6842816B1 (en) * 2001-07-31 2005-01-11 Network Elements, Inc. Configurable glueless microprocessor interface
US7191271B2 (en) * 2001-09-20 2007-03-13 Lockheed Martin Corporation Two level multi-tier system bus
US20030112805A1 (en) * 2001-12-19 2003-06-19 Stanton Kevin B. Method and apparatus for providing device-to-device connectivity using shared infiniband NIC device
US7035958B2 (en) * 2002-10-03 2006-04-25 International Business Machines Corporation Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target
JP4314460B2 (ja) * 2003-02-20 2009-08-19 ソニー株式会社 データ転送方法、データ転送装置およびデータ転送システム
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
US7782325B2 (en) 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
WO2005071556A1 (en) * 2004-01-22 2005-08-04 Qualcomm Incorporated A two channel bus structure to support address information, data, and transfer qualifiers
US20050182884A1 (en) * 2004-01-22 2005-08-18 Hofmann Richard G. Multiple address two channel bus structure
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US8028143B2 (en) * 2004-08-27 2011-09-27 Qualcomm Incorporated Method and apparatus for transmitting memory pre-fetch commands on a bus
US7185123B2 (en) * 2004-09-15 2007-02-27 Qualcomm Incorporated Method and apparatus for allocating bandwidth on a transmit channel of a bus

Also Published As

Publication number Publication date
ATE526634T1 (de) 2011-10-15
US20070088894A1 (en) 2007-04-19
ES2348582T3 (es) 2010-12-09
US7209998B2 (en) 2007-04-24
CN100481053C (zh) 2009-04-22
CN101493805A (zh) 2009-07-29
JP4685800B2 (ja) 2011-05-18
PL1714218T3 (pl) 2011-02-28
CN101493805B (zh) 2015-07-15
EP2163993A1 (en) 2010-03-17
IL177240A0 (en) 2006-12-10
IL209278A0 (en) 2011-01-31
KR100876575B1 (ko) 2008-12-31
CN1934557A (zh) 2007-03-21
WO2005078594A1 (en) 2005-08-25
IL209279A0 (en) 2011-01-31
US7913021B2 (en) 2011-03-22
HK1099823A1 (en) 2007-08-24
JP2007520832A (ja) 2007-07-26
EP1714218B1 (en) 2010-08-11
EP1714218B9 (en) 2012-03-14
US20090327548A1 (en) 2009-12-31
IL177240A (en) 2011-01-31
US20050172063A1 (en) 2005-08-04
KR20060120272A (ko) 2006-11-24
EP1714218A1 (en) 2006-10-25
EP2163993B1 (en) 2011-09-28
DE602005022829D1 (de) 2010-09-23
ATE477542T1 (de) 2010-08-15
JP2011044154A (ja) 2011-03-03

Similar Documents

Publication Publication Date Title
JP5180268B2 (ja) スケーラブルなバス構造
US8913616B2 (en) System-on-chip-based network protocol in consideration of network efficiency
EP1709543B1 (en) A multiple address two channel bus structure
US20040205267A1 (en) Bridge for removing master-induced stalls on a data bus
KR20020009823A (ko) 버스 시스템 및 그 버스 중재방법
EP1476817B1 (en) Hublink read return streaming
KR100874073B1 (ko) 버스의 전송 채널에 대역폭을 할당하기 위한 방법 및 장치
JP4603054B2 (ja) スケーラブルバス構造
US6769037B1 (en) Method and system for flow control during the data out phase of the packetized SCSI protocol
MXPA06008913A (en) Scalable bus structure
JP2000020450A (ja) 演算処理機能付パケット型メモリシステムおよびその制御方法
JPH0981509A (ja) マルチ・マスタ・システム
JPH1115779A (ja) バス制御システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120618

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120813

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120911

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: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130110

R150 Certificate of patent or registration of utility model

Ref document number: 5180268

Country of ref document: JP

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