JP4412852B2 - Global bus synchronous transaction acknowledgment with no response detection - Google Patents

Global bus synchronous transaction acknowledgment with no response detection Download PDF

Info

Publication number
JP4412852B2
JP4412852B2 JP2000609887A JP2000609887A JP4412852B2 JP 4412852 B2 JP4412852 B2 JP 4412852B2 JP 2000609887 A JP2000609887 A JP 2000609887A JP 2000609887 A JP2000609887 A JP 2000609887A JP 4412852 B2 JP4412852 B2 JP 4412852B2
Authority
JP
Japan
Prior art keywords
bus
command
tack
data
circuit
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
JP2000609887A
Other languages
Japanese (ja)
Other versions
JP2002541548A (en
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.)
Cradle Technologies
Original Assignee
Cradle Technologies
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 Cradle Technologies filed Critical Cradle Technologies
Publication of JP2002541548A publication Critical patent/JP2002541548A/en
Application granted granted Critical
Publication of JP4412852B2 publication Critical patent/JP4412852B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Description

【0001】
技術分野
この発明は、オンチップまたはオフチップで装着された多数の中速デバイスを備えるオンチップ高速バスを有する集積回路アーキテクチャに関し、特に、バスを渡るデバイス間のコマンドまたはデータ転送と、バス上に配置されるコマンドまたはデータパケットのターゲットデバイスによる肯定応答受信のためのハンドシェイク方法および回路に関する。
【0002】
背景技術
典型的なバスシステムにおいては、バスは装着されるデバイスと同じ速度であるか、またはこれよりも遅い速度である。システムバスはプリント配線板上に位置決めされ、プロセッサとメモリチップモジュールとはボードにボンディングされ、バスはさまざまなチップ間のバスを渡る情報転送を遅くするキャパシタンスおよびインダクタンス遅延を受ける。そのようなシステムにおいては、情報転送における第1のボトルネックはデバイスではなくバスであり、レイテンシおよび帯域幅の計算は、バスへのアクセスを得るためのアービトレーション遅延に関わる。
【0003】
システム全体、またはその大部分がチップに集積される場合、バス自体もチップ上に集積され得る。そのようなオンチップバスは非常に速く、典型的にはプリント回線板上に配置されるものよりも6倍から10倍速い。640から800MHzのクロックレートで動作するオンチップバスは、約4から5ギガバイト/秒のレートでデータを転送できる。この速度ではバスが非常に速いので、事実上バスは透過性である。バスは、バスに装着された最も速いターゲットデバイスにさえも、速度が顕著に勝る。たとえば、DRAMは、0.8ギガバイト/秒のピークの維持可能量伝送レートを有する。2つのDRAMモジュールを備えていても、それらを総合した帯域幅はわずかに1.6ギガバイト/秒であり、まだバスの帯域幅よりも顕著に少ない。これは、システムの速度はバスの速度によって制限されるのではなく、バス上のターゲットデバイスの速度によって制限されることを意味する。
【0004】
1つのデバイスが、バス上の別のデバイスからデータを受取るのを待機する間にバスを停滞させるのを避けるために、スプリットトランザクションバスを用い得る。この方法で、バスは同時に多くのトランザクションを進行させることができる。データ読出動作の各々は2つのステップで起こる。すなわち、読出開始、次いで読出完了である。読出開始と読出完了との間には遅延がある。この遅延は、ターゲットが要求をデコードし、要求されたデータを獲得し、それを要求するデバイス(マスタ)に送り返すために必要となる時間である。この時間の間には、マスタデバイスもターゲットデバイスもバス上にない。そうではなく、マスタデバイスはそのデータ読出コマンドを第1のバスサイクルで送った後に、バスを解放する。こうして、マスタデバイスがその読出の完了を待機する間に、バスは他のトランザクションをサポートすることができる。一方、ターゲットデバイスは受取った要求を処理し、かつ読出データが準備できたときにのみ、バスをアービトレーションし、要求されたデータをマスタデバイスに送る。データを要求するデバイスに転送することにより、読出サイクルは終了する。
【0005】
スプリットトランザクションバスに関して起こり得る1つの問題は、ターゲットデバイスが存在しない場合である。もしコマンドを受取るデバイスがなければ、データは戻ってこない。しかしながら、スプリットトランザクションバスは通常は読出コマンドとその結果であるデータの受取りとの間に遅延を有するために、無応答は見出されないまま発生し得る。要求デバイスは無期限に待機し続ける。必要なのは、ターゲットデバイスによるトランザクション肯定応答を提供するハンドシェイク方法である。マスタデバイスが要求を送ってから2クロックサイクル以内に、ターゲットデバイスがその要求を受取ったという示唆を受取ることが望ましい。この本質的に即時のフィードバックに対する要件では、肯定応答を返すのに要求される時間の間バスを停滞させることなく、あるいは、ターゲットがデータ送信サイクルとは別の肯定応答サイクルに対してバスをアービトレーションすることを要求することなく、スプリットトランザクションバスで行なうことは困難である。
【0006】
ワイザー(Wisor)他の米国特許第5,666,559号は、データを受取る周辺デバイスが中央ユニットに肯定応答信号を提供するシステムを記載する。タイムアウトカウンタが設けられ、もしタイムアウト期間が肯定応答信号の返信前に満了すると、制御ユニットはエラーフラグをアサートし、割込ルーチンを開始する。
【0007】
この発明の目的は、高速スプリットトランザクションバスのための無応答検出を備えた同期トランザクション肯定応答回路を提供することである。
【0008】
発明の要約
この発明の目的は、バスに別々のトランザクション肯定応答ラインを設け、ターゲットデバイスがそれ自体に向けられたコマンドを受取ったときにトランザクション肯定応答ラインの現在の状態を反対の状態に反転させるドライバ回路をターゲットデバイスの各々に設け、かつバスシステムにトランザクション肯定応答ラインの状態が反転されたかどうかを監視する肯定応答検出回路を設けることにより、達成される。この方策は、要求するマスタデバイスにそのコマンドが指定されたターゲットデバイスによって受取られたという即時のフィードバックを提供する。もしトランザクション肯定応答ラインの状態が変化していなければ、ターゲットデバイスが存在しないことが示唆される。
【0009】
バスアイドルデフォルトデバイス(BIDD)が、他のデバイスがバスを駆動していない場合にトランザクション肯定応答ラインを駆動するために提供されてもよい。一実施例においては、BIDDは、存在しないターゲットデバイスからの無応答を検出し、次いで要求するマスタデバイスにダミー応答を生成する回路を含み得る。ダミーデータは、要求されたデータではないことを示すフラグを立てられる。これに代えて、トランザクション肯定応答の不在の検出は、マスタデバイスごとのバスインターフェイスにおける検出器によって行なわれてもよい。
【0010】
発明を実行するためのベストモード
図1を参照すると、マルチプロセッサシステムを形成する集積回路11は、入力/出力(I/O)クラスタ14として複数の処理クラスタ130−133(ここでは数は4個)と、SDRAMメモリコントローラ15とを有し、これらすべてはバスインターフェイスユニット17によってオンチップ高速グローバルバス16に装着される。典型的なシステムは、640MHzクロックレートで動作するグローバルバス16を有し得る一方、クラスタ13−15はその半分のクロックレート、すなわち320MHzで動作する。グローバルバス制御ユニット18は、さまざまなクラスタ13−15によるバス16へのアクセスを規制するバスアービタおよび、どのクラスタ要素もバスを駆動していない場合に用いるバスアイドルデフォルトデバイス(BIDD)をも含む。I/Oクラスタ14およびSDRAMコントローラ15は、I/Oバス19およびプログラム可能I/Oサブシステム20を介してオフチップデバイスと通信し、該プログラム可能I/Oサブシステム20は、チップのI/Oパッド21と1つ以上のSDRAMメモリチップ22とに接続される。この発明では主に、グローバルバス16、バスインターフェイスユニット17、およびグローバルバス制御ユニット18内のBIDDデバイスに焦点を当てる。
【0011】
図2を参照すると、集積回路のバス構造は、単一のグローバルバス16と、図1に示すようにグローバルバス16に装着された複数のクラスタ13−15ごとのローカルバス29とからなる。処理クラスタ13の各々は、処理要素、デジタル信号エンジン、メモリ転送制御エンジンならびに関連のクラスタデータ、および命令メモリ、キャッシュならびにレジスタなどの複数の処理機能を含み、すべてはクラスタ13のローカルバス28に装着される。I/Oクラスタ(図1では14)も同様であるが、I/O転送エンジンがデジタル信号エンジンおよびメモリ転送制御エンジンに置換わり、I/Oバス(図1では19)もまたローカルバス29とインターフェイスする点が異なる。バス16および29は、バス上のさまざまな要素が情報(データ、命令など)を転送することを可能にする。バス要素は2種類からなる。すなわち、マスタ25およびターゲット27である。バスマスタデバイス25の例は、処理要素、デジタル信号エンジン、メモリ転送制御エンジンおよびI/O転送エンジンである。バスターゲットデバイス27の例は、クラスタデータおよび命令メモリならびにキャッシュを含む、メモリおよびレジスタ、処理要素デジタル信号エンジンおよびメモリ転送制御エンジンのためのクラスタハードウェアレジスタ、およびDRAMメモリおよびシステムレジスタである。すべての情報転送はマスタとターゲットとの間で行なわれ、マスタはターゲットとの間の転送を開始する。クラスタ13内のすべての転送はローカルバス29を渡って行なわれるのに対し、I/Oクラスタ(図1においては14)およびSDRAMコントローラ(図1においては15)を含むクラスタ間の情報転送は、グローバルバスインターフェイス17を介してグローバルバス16を渡って行なわれる。グローバルバスインターフェイス17は、関連のFIFOレジスタバンク31Aを備えたマスタインターフェイス31Bと、やはり関連のFIFOレジスタバンク33Bを備えたターゲットインターフェイス33Bとを含む。すべての書込動作はマスタからターゲットへの直接トランザクションである。すべての読出動作はスプリットトランザクションであり、マスタからターゲットへのコマンド書込がトランザクションを開始し、その後にターゲットから発信マスタへの別の応答書込によりトランザクションが終了する。グローバルバス制御(図1においては18)は、グローバルバス16へのアクセスのためにマスタおよびターゲットインターフェイス31Bおよび33Bの間でアービトレーションし、かつマスタとターゲットFIFO31Aおよび33Aとの間でデータ転送のためにクロッキングを提供する。
【0012】
図3を参照すると、グローバルバスインターフェイス17は、マスタインターフェイス31とターゲットインターフェイス33とを含む。マスタインターフェイス31は転送を開始し、ターゲットインターフェイス33はマスタインターフェイス31から受取った転送要求に応答する。ほとんどのグローバルバスインターフェイス17は、マスタインターフェイス31およびターゲットインターフェイス33の両方を有するが、レジスタバンクまたはメモリなどのグローバルバス上のいくつかのデバイスは1つのみのターゲットインターフェイス33を有し得る。バスシステムはすべてのバス要素に対して単一の32ビットアドレスの一様のアドレス指定を用いる。いずれのバスマスタ要素も、ターゲット要素のバスアドレスを用いて他のいずれのバスターゲット要素にもアドレス指定できる。したがって、グローバルバスマスタインターフェイス31の各々はレジスタ41にストアされる「マイデバイス番号」と呼ばれる独自のハードウェアに割当てられたデバイス番号を有する。この番号は、グローバルバス転送においてデータを受取るべき独自のインターフェイス31を示唆する。これはハードウェアポート番号であり、プログラマーによっては生成されずまた参照もできない。ターゲットインターフェイス33の各々はまた、「マイグローバルアドレス範囲」と呼ばれるグローバルバスアドレスの範囲を有し、これはターゲットが応答するであろうアドレスを識別する。このアドレス範囲も同様にターゲットインターフェイス33内のレジスタ43にストアされる。
【0013】
グローバルバス16は、単一のトランザクション書込、スプリットトランザクション読出バスである。これは64ビットバスであり、32ビットアドレスと64ビットデータ転送とを備える。バスサイクルの各々は、トランザクションタイプ(アイドル、コマンド、データ、最後のデータ)と、情報を受取るバスデバイスと、64ビットのコマンドまたはデータとを特定する。コマンドオクテットは、コマンド情報(読出/書込など)と32ビット転送アドレスとを含む。データを受取るデスティネーション(読出コマンドまたは書込コマンドに加えて書込データを受取るターゲットデバイス、またはターゲットデバイスによって返信されるデータを受取るマスタデバイスのいずれか)は特定のデバイスであってもよいし、すべてのデバイスに対するブロードキャストであってもよい(「デバイス0」として指定される)。推奨されるグローバルバス転送アトムは各々4バイトの8ワードであり、これにより各々8バイトの4バスオクテット(64ビット)となり、1、2および4オクテット転送は特別な場合である。4オクテットデータ転送は、80%のバス効率を有する(4データオクテットごとに1コマンドオクテット)。すべての転送は、バス16上のグローバルバスインターフェイス17におけるFIFO(図3においては56、63、82、85)への書込である。アドレスおよびデータはパイプライン化される。バス上のすべてのデータ転送は、自然に整列されたアドレスでの64ビットバスオクテットである。転送はどのアドレスにおいても開始できる。データはバスクロックに同期して転送され、各々のバスインターフェイスデバイス17におけるFIFOレジスタは主にソースとデスティネーションとの間のクロック速度差およびスキューに対して補償するためにグローバルバス16との間のアドレスおよびデータ情報をバッファするよう機能する。FIFOレジスタは、ソースとデスティネーションとの間で最大4クロックサイクル(それぞれの側で2クロックサイクル)のパイプライン遅延を加えることができる。
【0014】
グローバルバス16は、4つの情報転送タイプを有する。すなわち、データ書込、データ読出、制御書込および制御読出である。バスマスタによるデータ書込動作は、第1のバスサイクルで転送コマンドを送り、次いで1、2または4データオクテットを後続のサイクルで送る。最後のデータオクテットの転送が書込サイクルを完了させる。バスマスタによるデータ読出動作は、転送コマンドを第1のサイクルで送り、次いでバスを解放する。ターゲットとされたデバイスはコマンドを受取る。読出データが準備できたとき、ターゲットはバスに対してアービトレーションし、読出データをコマンドオクテットに示されたバスマスタに返送する。要求するマスタデバイスへの最後のデータオクテットの転送は読出サイクルを完了させる。制御書込は、データ書込動作のアドレス変形であり、単一のデータオクテットを備える。すなわち、これはデータを別の32ビット制御アドレス空間に書込む。コマンドオクテットのデータ/制御ビットは制御アドレス空間への書込を示唆する。すべてのターゲットがコマンドおよびデータオクテットを受取り、サイクルを完了させる。制御書込は、これらを受取るインターフェイス内の別のデータレジスタに向かう。これはインターフェイスがデータ動作でビジーになることによるコマンド拒絶を回避するものである。制御書込は、クラスタの各々にベースアドレスを送り、かつグローバルレジスタのような他のすべてのグローバルバスデバイスにベースアドレスと構成データとを送るために用いられる。制御書込もまた、すべてのクラスタにグローバルタイミング信号およびグローバルウェークアップ割込を送るために用いられる。クラスタの各々は、そのクラスタベースアドレスのグローバルバス制御書込を受取る。クラスタベースアドレスを受取ると、クラスタの各々はそのベースアドレスをそのすべての処理要素とデジタル信号エンジンとに送り、これらはこのアドレスをストアして、クラスタデータバス上に適切なグローバルアドレスが存在する場合に内部レジスタへの転送要求に応答できるようにする。制御読出は制御書込の対になるものである。制御読出は、ホストまたは構成デバイスが、グローバルバス制御アドレス空間におけるベースアドレスと構成レジスタとを読出し、かつこれらを書込むことを可能にする。これはPCI構成レジスタ(たとえばPCIインターフェイスを介して外部PCIデバイスが参照可能なもの)に対して必要となる。
【0015】
グローバルバスマスタの各々は、いかなる一時点においても1つの処理中のトランザクションだけを有する。これは、現在のトランザクションが完了するまで別のトランザクションを開始することができない。マスタの各々が一度に1つのトランザクションしかサポートできなくても、バスは進行中に多くのトランザクションを有し得る。読出動作の各々は2つのステップで起こる。すなわち、読出開始、次いで読出完了である。読出開始と読出完了との間には遅延がある。この遅延は、ターゲットがコマンドをデコードし、読出データを獲得し、これをマスタに返信するのに要求される時間である。この時間の間、マスタもターゲットもバス上にない。マスタがその読取の完了を待機する間、バスは他のトランザクションをサポートし得る。たとえば、他のマスタは書込転送を行ない、かつ他の読出転送を行なうこともできる。
【0016】
グローバルバストランザクションの各々は、ターゲットデバイスに書込まれるコマンドオクテットで開始する。コマンドオクテットは、以下のフィールドを含み得る。すなわち、読出/書込転送ビットと、データ/制御タイプビットと、予想される転送長をオクテット(1、2、4または4以上)でDRAMメモリに示すための2ビット転送長フィールドと、2ビット優先フィールドと、2つのマルチビットフィールド(たとえば、各々6ビット)とを含み、該2つのマルチビットフィールドはそれぞれ、読出コマンドに応答するデスティネーションとしてターゲットデバイスが用いるための発信マスタインタフェースデバイスのデバイス番号とクラスタ内で特定のデバイスを指定するサブデバイス番号とを指定し、フィールドはさらに、ターゲット内のデータのアドレスおよびターゲットデバイスアドレスを指定する32ビットアドレスフィールドを含む。所望であれば他のフィールドを定義するか、またはコマンドのサイズを総合してもグローバルバスによって確立された1オクテットサイズを超えなければフィールドサイズを拡張してもよい。
【0017】
図4のタイミング図とともに再び図3のインターフェイス構造を参照すると、マスタデバイスが1から4データオクテットを指定されたターゲットデバイスに書込むデータ書込動作は、マスタデバイスがマスタインターフェイス31へコマンドを転送することにより開始するが、これはローカルバス29を介してマスタインターフェイスバス47に、次いでライン51を介してコマンドバッファ53へ転送される。「マイデバイス番号」記憶レジスタ41からライン52を介してコマンドバッファ53によって受取られるマスタインターフェイスのデバイス番号は、適切なフィールド内のコマンドに付与される。次いで、マスタインターフェイス31はグローバルバスへのアクセスを要求するが、これは図4において参照番号91でグローバルバスの要求ライン(GBR♯)がローになることにより示される。要求はコマンドオクテットに対して行なわれ、かつデータオクテットの各々の書込に対しても行なわれる。図4に示す例においては、マスタの要求信号は5オクテット転送に対して5クロックサイクルの間ローにとどまる。グローバルバス制御のアービタ(図1においては18)はマスタインターフェイスへのアクセスを要求されたサイクルの数だけ承認するが、これは参照符号93において5クロックサイクルの間承認ライン(GBA♯)がローになっていることにより示される。マスタインターフェイス31は次いで書込コマンドオクテットとデータオクテットとを、図3におけるコマンド出力ライン54を介して送り、インターフェイスバス47と書込データライン55とを介して通信する書込FIFOレジスタバンク56からの書込データライン57を介してグローバルバスに送る。この書込コマンドの後に要求された数のデータオクテットが続く発信は、図4におけるオクテット95−99によって示される。
【0018】
書込コマンドオクテットは、ターゲットデバイスコード(ターゲットデバイス)=0によって図4において100で示されるように、すべてのグローバルバスターゲットインターフェイス(それ自体をも含む)へのブロードキャストである。これがブロードキャストであるのは、マスタがどのグローバルバスがコマンドオクテットに含まれるアドレスに応答するかわからないためである。コマンドオクテットは、転送のための32ビットグローバルアドレス101と、転送タイプ(書込)と、転送長(1−4オクテット)とを含む。これはまた、マスタのデバイス番号であるマイデバイス番号をも含むが、これは書込動作においては用いられない。ターゲットデバイス33の各々は、コマンド入力ライン71を介してターゲットインターフェイスのコマンドバッファ72内に書込コマンドと、データライン81を介してターゲットインターフェイスの書込FIFOレジスタ82内に書込データとをそれぞれ受取る。これは、ターゲットアドレスライン74を介して比較回路95で受取った書込コマンド内の32ビットアドレスと、記憶レジスタ43からライン76を介して比較回路75で受取ったマイグローバルアドレスであるそれ自体のグローバルアドレスと比較する。もし整合すれば、これは書込データ102−105を受取り、その書込FIFO82からライン83を渡ってクロックアウトする。これにより書込動作は終了する。もし整合するがデバイスが先行のコマンドによりビジーであれば、これはコマンド拒絶をバスに送る。もし整合しなければ、ターゲットはコマンドを無視し、次の書込コマンドに対して準備するために書込FIFO82をフラッシュする。すべての書込がブロードキャストであることに留意されたい。通常は意図されるターゲットのみがブロードキャスト書込データを受取り、他のデバイスはこれを捨てる。しかしながら、1つ以上のターゲットに書込データをブロードキャストすることも、もしターゲットが一連のブロードキャストアドレスをデコードするよう設計されていれば可能である。
【0019】
次に図3および図5を参照して、ターゲットからのマスタデータ読出を考察する。マスタインターフェイス31は、図5において121、123および125に示されるように、バスへのアクセスを要求し受取った後に、グローバルバスに読出コマンドオクテットを送ることにより転送を開始する。読出コマンドオクテットは、(図5の126でデバイス0によって示されるように)すべてのグローバルバスターゲットインターフェイス(それ自体のものも含む)に対するブロードキャストである。これがブロードキャストであるのは、マスタがどのグローバルバスデバイスがコマンドオクテットに含まれるアドレス(図5においては127)に応答するかわからないためである。コマンドオクテットは、転送のための32ビットグローバルアドレスと、転送タイプ(書込)と転送長(1−4オクテット)とを含む。これはまた、ターゲットデバイスがその応答のために用いる、マスタのデバイス番号であるマイデバイス番号をも含む。マスタは読出コマンドオクテットを送信し終わると、後で読出ライン62を渡って読出データを受けるためにその読出FIFO63を作動状態にする。通常はこの時点でマスタはストールし、ターゲットが読出データを送って読出コマンドを完了させるのを待機する。ターゲットインターフェイス33の各々は、コマンド入力ライン71を渡って読出コマンドオクテットをバッファ72内に受取る。比較回路75を用いることにより、これはその読出コマンド内の32ビットアドレスと、レジスタ43内にストアされたそれ自体のグローバルアドレスであるマイグローバルアドレスとを比較する。もし整合すれば、コマンドはライン73および77を渡ってインターフェイスバス67に転送され、次いでローカルバス29に送られ、要求されたデータを受取り、ローカルバス29と、インターフェイスバス67と、読出ライン84および86と、読出FIFOレジスタバンク85とを介して、これをグローバルバス16に転送する。図5において131および133に示されるように、グローバルバス16へのアクセスを要求しこれを獲得した後に、図5においてマスタデバイスコード139の使用により示されるように、応答アドレスとしてコマンドオクテット内に含まれるマスタのデバイス番号を用いることにより要求された読出データをマスタに送る。これにより読出動作が終了する。もし整合するがデバイスが先行のコマンドによりビジーであれば、これはコマンド拒絶145をバス16に送る。もし整合しなければ、ターゲットはコマンドを無視する。データ140−143を、マスタ内の待機中の読出FIFO63に送ることができる唯一の有効な方法は、先行の読出コマンドに応答してのみであることに留意されたい。コマンドオクテットのみがコマンドを送信したマスタのデバイス番号を含み、このデバイス番号はコマンドを送信するマスタデバイス内にハードウェアとして組み込まれる(41)。デバイス番号は比較回路60によってライン58上で読出され、ライン59を渡って比較回路60によって受取られたストアされたデバイス番号(41)に対して調べられる。整合は、制御ライン61を介してFIFO63をイネーブルする。他の何らかのデバイスが、開いたマスタ読出FIFOにデータを送り、オープンリードコマンドの不適切な完了をもたらし得る他の有効な方法はない。
【0020】
ターゲットデバイスはブロードキャスト書込を受取り、読出に応答する。これに代えて、もしマスタデバイスがどのデバイスがコマンドを受取るべきであるかわかっていれば、マスタデバイスはその書込コマンドおよびデータをブロードキャストする代わりに特定のターゲットデバイスに、送ってもよい。これを行なうと、他のデバイスがコマンドを受取り、その結果電力を散逸させることがないために、電力を節約することができる。
【0021】
要約すると、例として4オクテットデータ転送を用いた、基本的な書込転送シーケンスは以下のとおりである。
【0022】
1.マスタデバイスが、バス上の5オクテット転送を要求する。
2.マスタがターゲットバスデバイス番号および書込コマンドを発する。もし書込に対するターゲットバスデバイス番号が未知であれば、ターゲットデバイス番号は0(ブロードキャスト)であってもよい。書込コマンドは、書込アドレス、書込コマンド、コマンド優先、チェーンビットおよびマスタデバイスコードを含む。
【0023】
3.データオクテット0−2を発する(転送は、転送長コードに応じて1〜4オクテットであり得る)。
【0024】
4.データオクテット3と最後の転送タイプを発し、バスを解放する。バスアービトレーションは再びこのサイクルで開始する。
【0025】
例として4オクテットデータ転送を用いた、基本的な読出転送シーケンスは以下のとおりである。
【0026】
1.マスタデバイスが、読出コマンドのために1オクテット転送を要求する。
2.マスタが、ターゲットバスデバイス番号と読出コマンドとを発する。もし読出に対するターゲットバスデバイス番号が未知であれば、ターゲットデバイス番号は0(ブロードキャスト)であってもよい。読出コマンドは、読出アドレス、読出コマンド、コマンド優先、チェーンビットおよびマスタデバイスコードを含む。マスタデバイスコードはDRAM応答アドレスである。
【0027】
3.バスを解放する。
4.ターゲットデバイスが、読出データ応答のために4オクテット転送を要求する。
【0028】
5.ターゲットが、ターゲットデバイスアドレスと読出データの第1のオクテットを発する。マスタデバイスコードは読出データに対するターゲットである。転送は、転送長コードに応じて1〜4オクテットであり得る。
【0029】
6.データオクテット1〜2を発する。
7.データオクテット3、最後の転送タイプを発し、バスを解放する。バスのアービトレーションはこのサイクルで再び開始する。
【0030】
スプリットトランザクションバスを用いる、上述のシステムと同様のものにおいて、この発明はトランザクション肯定応答(TACK)信号をバスシステムに与えて、少なくとも1つのターゲットデバイスによるコマンドまたはデータの受取りを示唆する。特に、グローバルバス16上で転送されるオクテットの各々を受取るターゲットデバイスは、グローバルバス16の転送肯定応答(TACK)ラインを活性化することにより、オクテットに肯定応答する。これは転送されるオクテット、コマンドまたはデータの各々に対して当てはまる。TACKは、ターゲットがこれに意図されたコマンドオクテットまたはデータオクテットを受取ったことを示唆する。図3に示すように、ターゲットデバイス33が制御読出または書込オクテットを受取ったとき、これは比較回路75を用いて、これが意図されたターゲットであるかどうかを調べるためにデコードする。もしそうであれば、これはTACKを(TACK信号をライン80に与えるTACK生成回路79によって)、図4および図5に106および144で示されるようにオクテットが転送された2クロック後にTACK信号のために活性化させる。ターゲットはTACKを、これが(図4および図5に111および145で見られるように)コマンドを拒絶した場合でも活性化させる。もしコマンドが書込であれば、書込データオクテットの各々もまたターゲットによって(図4の107−110で)肯定応答される。同様に、読取データを受取るマスタはオクテット読出の各々に対してTACKを(図5の146−148で)活性化させる。TACKにより、コマンドにどのデバイスも応答しない状態、すなわちバスエラーを検出することができる。TACKは、バスタイムアウトを待機する必要なくこれを即時に検出する。TACKはデバッギングに対しても有用である。すなわち、応答したデバイスがあるかどうか見出すことができる。干渉なしに、1つ以上のデバイスがTACK信号に応答することができる。
【0031】
TACKは独自のコーディングを有する。TACKを活性化するためには、先行のクロックからその状態を変化させる。連続的なTACK信号に対しては、TACKラインはクロックごとに反転する。ターゲットデバイスの各々は、バスクロックごとにTACKを活性化させる。1つ以上のデバイスがTACK信号に応答できることに留意されたい。すなわち、すべての応答するデバイスは同じ方向にTACKを駆動する。図6および図7は、TACK信号を生成し、かつTACK信号を検出するための論理のブロック図である。図6の生成器論理においては、最後のTACKフリップフロップ151は先行のサイクルに対してTACK信号値を記録する。デコードフリップフロップ153は、先行のサイクルにおける有効なアドレスデコードを記録する。もしターゲットアドレスが先行のサイクルで有効であれば、この論理はTACKドライバ155をイネーブルすることによりTACK信号に応答する。TACKドライバ155は、フリップフロップ151の反転出力を用いて先行のTACK値に相補的である現在のTACK値を生成する。このTACK生成回路は、ターゲットデバイスの各々の、またはグローバルバス上にターゲットデバイスを含むクラスタのターゲットバスインターフェイス33の一部である。
【0032】
図7の検出器論理内で、最後のTACKフリップフロップ157は先行のサイクルに対するTACK信号値を記録する。もし現在のTACK信号値が先行のサイクルにおけるTACK信号に対して相補的であれば、現在のTACK信号は有効であり、XORゲート159は「真」TACK検出済信号値を出力する。TACK検出器回路はマスタデバイスの、またはグローバルバス上のマスタデバイスのクラスタの各々のマスタバスインターフェイスの一部である。これに代えて、単一のTACK生成器がグローバルバス制御(図1における18)のバスアイドルデフォルトデバイス(BIDD)の一部を形成してもよい。いずれの場合においても、もしバスがアイドルであれば、BIDDはTACKを活性化し、バスをデフォルトレベルに駆動する。もしコマンドが発信されどのデバイスも応答しなければ、TACKラインは変化しない。これにより、存在しないデバイスに対してアドレス指定したかどうかを検出することができる。もしどのデバイスもTACKを駆動していなければ、浮遊容量およびバス保持論理がTACKラインをその先行のレベルに保持する。
【0033】
グローバルバス(GB)上のマスタデバイスの各々は、いずれの一時点においても1つの進行中のGB転送しか有し得ない。読出転送に対しては、GBマスタは読出データが返信されるのを待機する。書込転送に対しては、マスタはコマンドに対するバスの承認と、バスからのコマンド拒絶の不在とを待機するが、これらは書込コマンドおよびデータが認証されたことを示す。これはマスタとターゲットとの間の転送帯域幅の自動制御をもたらす。これは自己スロットリングと呼ばれる。マスタの各々はターゲットが応答するのを待機する。ターゲットは多くのGB転送コマンドを受取っており、それらを処理している途中であるかもしれない。これらのコマンドは典型的にはコマンドFIFOにおいてバッファされる。ターゲットは、そのFIFO内にN個のマスタからのN個のコマンドを有し得る。一旦コマンドがFIFOに入ると、N個のデバイスのすべては、各々のコマンドが肯定応答されるまで待機する。時間がかかってもマスタの各々は転送が完了するまで待機するために、ターゲットがオーバーランすることはない。
【0034】
図8および図9を参照すると、グローバルバスがアイドルである場合、バスを駆動するために選択さるたアクティブなデバイスはない。もしいずれのアクティブなデバイスも選択されていなければ、アービタはデフォルトデバイスであるバスアイドルデフォルトデバイス(BIDD)をバスを駆動するために選択する。そうでなければ、デバイスラインは浮動し、ノイズとエラーとを引起す可能性がある。BIDDは、アービタからのアイドル承認信号に応答するアイドルバス論理およびバスドライバ161によってバスラインを有効なレベルに駆動する。これはデータワード、バイトイネーブルおよびデバイスアドレスに対して0を送り、ワードタイプに対しても0を送る。すなわち、アイドルコマンドである。これに代えて、アドレス/データラインはそれらの先行の値に保持され(低出力のために)、すなわちバイトイネーブルは不活性に、ターゲットデバイス番号はすべて1に保持されてもよい。これは出力163においてTACK信号を活性化させるが、これはBIDDが有効なデバイスであり、バスを有効に駆動しているためである。TACK信号が駆動されない唯一の時間は、コマンドまたはデータワードがバス上に送られて、いずれのデバイスもそれに応答しない場合だけである。
【0035】
BIDDはまた、TACK検出論理105(図7に示す)を介して、TACKなしで読出コマンドに応答するが、これによりいかなるデバイスも読出に応答しないことを示す。グローバルバスマスタデバイスは、存在しないターゲットアドレスに対して読出および書込コマンドを発信することができる(図9の例においてはデバイス36、15および27)。この場合では、いかなるデバイスもアドレスをデコードし、コマンドに応答し、TACK信号を発信しない(図9においてはTACK応答なしにより示される)。コマンドを発信したGBマスタは、TACKの不在を見出しコマンドを打切らない限り読出データを待機する。次の問題はどのようにコマンドを打切るかである。最も簡単な方法は、代替的なデータ(図9における175−177)を与え、データが有効ではないことを示すフラグを立ててコマンドを通常の完了状態までランさせることである。これは受取状態機械(およびこれらに依存する他の状態機械)に対して特別な変更がないことを意味するが、ダミーデータを挿入することが必要である。グローバルバスマスタはこれを行なうために、バスに要求を行ない(図9に示す179での要求および171での承認)、バス上にそれ自体が受取るためのダミーデータを配置するか、または1〜4バスアイドルサイクルを送ることが必要となる。ダミーデータを挿入する間にグローバルバスをオフに保持するためにこれを行なうことが必要となる。そうでなければ、グローバルバスは、グローバルバスマスタ論理がダミーデータを挿入している間に、データをFIFOに入れようと試行することが考えられる。
【0036】
図8は、TACKなし応答論理を備えた、BIDDに対するマイクロアーキテクチャを示す。BIDDは、バッファレジスタ167を通してデバイス0ブロードキャストコマンドを監視し、TACKなし応答を備えた読出コマンドを調べる。TACKなし応答の場合(図9において183)、状態機械169はグローバルバスに要求を行ない、コマンド内の2長さビットによって決定される1、2または4オクテットの0データの読出応答を発信する。これは読出応答のための適切なワードタイプコードを備えて、0データ値と0バイトイネーブルとを返信する。0バイトイネーブルは、データが無効であることを示す。(読出データは通常はすべてのバイトイネーブルが1に設定されたデータを返信する)。BIDDはまた、読出コマンドからのデバイスアドレスに応答し(図9における183)、それによりダミーデータは発信元の要求デバイスに進む。BIDDはFIFO171を用いて、TACKなし読出応答に対してバスの制御が認証される前に、GBからの最大5つの読出要求まで保留する。
【0037】
図9は、TACKなし応答のタイミング図を示す。BIDDは、TACKなしを備えた読出コマンドに対するコマンドバッファリングを最小化するようGBに要求する場合に最上級の優先性を有する。コマンドバッファリングが必要であるのは、TACKなし応答を備えたいくつもの読出コマンドが連続して起こり得るためである。最上級の優先性により、3つのコマンドのみがバッファされる必要があり、これらは状態の検出とGBにダミー読出データを入れる間のクロックの数に対応する。すなわち、1つは状態を検出するためであり、1つはGB要求を発信するためであり、1つはGB承認を受取るためである。図9のタイミング図は、BIDDがGBアービタに対して最上級の優先性を有し、かつBIDDがパルス状の要求に対してDC要求(179)を提示できることを想定する。BIDDは必要であるよりも長い期間GB要求を保持することができるが、これはTACKなし応答が頻繁には起こらないためである。一旦BIDD応答要求が発信されると、BIDDはもし要求されるよりも承認時間が長ければアイドルサイクルを入れることができる。存在しないアドレスに対していくつもの読出コマンドが連続して起こり得るが、これはBIDDがこれらの読出コマンドをバッファしなければならないことを意味する。これがGBに対するアクセスを得ることができるまで、コマンドをバッファしなければならない。TACKなし応答論理を最上級優先度GBデバイスとすることにより、TACKが検出された時間と、GB承認が受取られる時間との間のバッファリングをクロックの数にまで最小化することができる。これは3つのコマンドであろう。すなわち、1つはこれを検出し、1つは要求を発信し、1つは承認を受取る。14ビットのみをコマンドワードから退避させればよいことに留意されたい。2ビットの長さコードと、12ビットの読出応答に対するデバイスおよびサブデバイスアドレスである。
【図面の簡単な説明】
【図1】 この発明の無応答検出を備える同期トランザクション肯定応答が配置される、高速スプリットトランザクションバスを備えた集積されたマルチプロセッサシステムの概略ブロック図である。
【図2】 この発明のトランザクション肯定応答を含むグローバルバスインターフェイスを備えた、図1のシステムにおける処理クラスタの概略ブロック図である。
【図3】 ターゲットインターフェイスにおけるトランザクション肯定応答生成器79を示す、図2のグローバルバスインターフェイス17の詳細なブロック図である。
【図4】 信号状態の反転として示されるトランザクション肯定応答(信号TACK番号)を備えた、図1から図3におけるグローバルバス16上の、書込転送のタイミング図である。
【図5】 信号状態の反転として示されるトランザクション肯定応答(信号TACK番号)を備えた、図1から図3におけるグローバルバス16上の、読出転送のタイミング図である。
【図6】 トランザクション肯定応答(TACK)生成論理のブロック回路図である。
【図7】 トランザクション肯定応答(TACK)検出論理のブロック回路図である。
【図8】 図8のTACKなし検出器を含む、図1のグローバルバス制御ユニット18の一部である、バスアイドルデフォルトデバイス(BIDD)の詳細なブロック図である。
【図9】 TACKなし検出に対する図8のBIDDの応答を示すタイミング図である。
[0001]
Technical field
The present invention relates to an integrated circuit architecture having an on-chip high-speed bus with a number of medium-speed devices mounted on-chip or off-chip, and in particular, command or data transfer between devices across the bus and disposed on the bus. The present invention relates to a handshake method and circuit for receiving an acknowledgment by a target device of a command or data packet.
[0002]
Background art
In a typical bus system, the bus is at the same speed as the attached device or at a slower speed. The system bus is positioned on the printed wiring board, the processor and memory chip module are bonded to the board, and the bus is subjected to capacitance and inductance delays that slow the transfer of information across the bus between the various chips. In such systems, the first bottleneck in information transfer is the bus, not the device, and latency and bandwidth calculations involve arbitration delay to gain access to the bus.
[0003]
If the entire system, or most of it, is integrated on the chip, the bus itself can also be integrated on the chip. Such on-chip buses are very fast, typically 6 to 10 times faster than those placed on a printed circuit board. An on-chip bus operating at a clock rate of 640 to 800 MHz can transfer data at a rate of about 4 to 5 gigabytes / second. At this speed, the bus is so fast that it is virtually transparent. The bus is significantly faster in speed than even the fastest target device attached to the bus. For example, DRAM has a sustainable transmission rate with a peak of 0.8 gigabytes / second. Even with two DRAM modules, the combined bandwidth is only 1.6 gigabytes / second, still significantly less than the bus bandwidth. This means that the speed of the system is not limited by the speed of the bus, but by the speed of the target device on the bus.
[0004]
A split transaction bus may be used to avoid stagnation of the bus while one device waits to receive data from another device on the bus. In this way, the bus can proceed with many transactions simultaneously. Each data read operation occurs in two steps. That is, reading is started and then reading is completed. There is a delay between the start of reading and the completion of reading. This delay is the time required for the target to decode the request, obtain the requested data, and send it back to the requesting device (master). During this time, neither the master device nor the target device is on the bus. Rather, the master device releases the bus after sending its data read command in the first bus cycle. Thus, the bus can support other transactions while the master device waits for its read to complete. On the other hand, the target device processes the received request and only arbitrates the bus and sends the requested data to the master device when read data is ready. By transferring data to the requesting device, the read cycle ends.
[0005]
One problem that can occur with split transaction buses is when there is no target device. If no device receives the command, no data is returned. However, because the split transaction bus usually has a delay between the read command and the receipt of the resulting data, no response can occur without being found. The requesting device continues to wait indefinitely. What is needed is a handshake method that provides transaction acknowledgment by the target device. It is desirable to receive an indication that the target device has received the request within two clock cycles after the master device has sent the request. This essentially immediate feedback requirement does not stagnate the bus for the time required to return an acknowledgment or the target arbitrates the bus for an acknowledgment cycle that is separate from the data transmission cycle. It is difficult to do so on a split transaction bus without requiring it.
[0006]
U.S. Pat. No. 5,666,559 to Wisor et al. Describes a system in which a peripheral device receiving data provides an acknowledgment signal to a central unit. A time-out counter is provided, and if the time-out period expires before the acknowledgment signal is returned, the control unit asserts an error flag and starts the interrupt routine.
[0007]
An object of the present invention is to provide a synchronous transaction acknowledgment circuit with no response detection for a high speed split transaction bus.
[0008]
Summary of invention
An object of the present invention is to provide a driver circuit that provides a separate transaction acknowledgment line on the bus and reverses the current state of the transaction acknowledgment line to the opposite state when the target device receives a command directed to itself. This is accomplished by providing an acknowledgment detection circuit on each of the target devices and monitoring the bus system to see if the state of the transaction acknowledgment line has been reversed. This strategy provides immediate feedback that the command was received by the specified target device to the requesting master device. If the state of the transaction acknowledgment line has not changed, it indicates that there is no target device.
[0009]
A bus idle default device (BIDD) may be provided to drive the transaction acknowledgment line when no other device is driving the bus. In one embodiment, the BIDD may include circuitry that detects no response from a non-existing target device and then generates a dummy response to the requesting master device. The dummy data is flagged to indicate that it is not requested data. Alternatively, the absence of transaction acknowledgment may be detected by a detector at the bus interface for each master device.
[0010]
Best mode for carrying out the invention
Referring to FIG. 1, an integrated circuit 11 forming a multiprocessor system includes a plurality of processing clusters 13 as input / output (I / O) clusters 14.0-13Three(The number here is four) and an SDRAM memory controller 15, all of which are mounted on the on-chip high-speed global bus 16 by the bus interface unit 17. A typical system may have a global bus 16 operating at a 640 MHz clock rate, while cluster 13-15 operates at half that clock rate, ie 320 MHz. The global bus control unit 18 also includes a bus arbiter that regulates access to the bus 16 by the various clusters 13-15 and a bus idle default device (BIDD) that is used when no cluster element is driving the bus. The I / O cluster 14 and the SDRAM controller 15 communicate with off-chip devices via an I / O bus 19 and a programmable I / O subsystem 20, which is connected to the chip I / O subsystem 20. The O pad 21 and one or more SDRAM memory chips 22 are connected. The present invention mainly focuses on the BIDD devices in the global bus 16, the bus interface unit 17, and the global bus control unit 18.
[0011]
Referring to FIG. 2, the integrated circuit bus structure comprises a single global bus 16 and a local bus 29 for each of a plurality of clusters 13-15 mounted on the global bus 16 as shown in FIG. Each processing cluster 13 includes a processing element, a digital signal engine, a memory transfer control engine and associated cluster data, and multiple processing functions such as instruction memory, cache and registers, all mounted on the local bus 28 of the cluster 13. Is done. The I / O cluster (14 in FIG. 1) is similar, but the I / O transfer engine is replaced with a digital signal engine and a memory transfer control engine, and the I / O bus (19 in FIG. The interface is different. Buses 16 and 29 allow various elements on the bus to transfer information (data, instructions, etc.). There are two types of bus elements. That is, the master 25 and the target 27. Examples of the bus master device 25 are a processing element, a digital signal engine, a memory transfer control engine, and an I / O transfer engine. Examples of bus target devices 27 are memory and registers, including cluster data and instruction memory and cache, cluster hardware registers for processing element digital signal engine and memory transfer control engine, and DRAM memory and system registers. All information transfers occur between the master and target, and the master initiates transfer between the target. All transfers within the cluster 13 are performed across the local bus 29, whereas information transfer between clusters including the I / O cluster (14 in FIG. 1) and the SDRAM controller (15 in FIG. 1) is: This is done across the global bus 16 via the global bus interface 17. The global bus interface 17 includes a master interface 31B having an associated FIFO register bank 31A and a target interface 33B also having an associated FIFO register bank 33B. All write operations are direct transactions from the master to the target. All read operations are split transactions, where a command write from the master to the target starts the transaction, and then the transaction ends with another response write from the target to the originating master. Global bus control (18 in FIG. 1) arbitrates between the master and target interfaces 31B and 33B for access to the global bus 16 and transfers data between the master and target FIFOs 31A and 33A. Provide clocking.
[0012]
Referring to FIG. 3, the global bus interface 17 includes a master interface 31 and a target interface 33. The master interface 31 starts the transfer, and the target interface 33 responds to the transfer request received from the master interface 31. Most global bus interfaces 17 have both a master interface 31 and a target interface 33, but some devices on the global bus such as a register bank or memory may have only one target interface 33. The bus system uses uniform addressing of a single 32-bit address for all bus elements. Any bus master element can address any other bus target element using the bus address of the target element. Accordingly, each of the global bus master interfaces 31 has a device number assigned to its own hardware called “My Device Number” stored in the register 41. This number suggests a unique interface 31 that is to receive data in a global bus transfer. This is a hardware port number and cannot be generated or referenced by the programmer. Each of the target interfaces 33 also has a range of global bus addresses called “My Global Address Range”, which identifies the addresses to which the target will respond. This address range is similarly stored in the register 43 in the target interface 33.
[0013]
The global bus 16 is a single transaction write, split transaction read bus. This is a 64-bit bus and comprises a 32-bit address and 64-bit data transfer. Each bus cycle identifies the transaction type (idle, command, data, last data), the bus device receiving the information, and the 64-bit command or data. The command octet includes command information (read / write, etc.) and a 32-bit transfer address. The destination that receives the data (either the target device that receives the write data in addition to the read command or the write command, or the master device that receives the data returned by the target device) may be a specific device, It may be a broadcast to all devices (designated as “device 0”). The recommended global bus transfer atom is 8 words of 4 bytes each, which results in 4 bus octets (64 bits) of 8 bytes each, with 1, 2 and 4 octet transfers being special cases. A 4-octet data transfer has a bus efficiency of 80% (1 command octet for every 4 data octets). All transfers are writes to the FIFO (56, 63, 82, 85 in FIG. 3) at the global bus interface 17 on the bus 16. Addresses and data are pipelined. All data transfers on the bus are 64-bit bus octets with naturally aligned addresses. The transfer can be started at any address. Data is transferred in synchronism with the bus clock, and the FIFO register in each bus interface device 17 is primarily between the global bus 16 to compensate for clock speed differences and skew between the source and destination. Functions to buffer address and data information. The FIFO register can add a pipeline delay of up to 4 clock cycles (2 clock cycles on each side) between the source and destination.
[0014]
The global bus 16 has four information transfer types. That is, data writing, data reading, control writing, and control reading. The data write operation by the bus master sends a transfer command in the first bus cycle and then sends 1, 2 or 4 data octets in the following cycle. The transfer of the last data octet completes the write cycle. A data read operation by the bus master sends a transfer command in the first cycle and then releases the bus. The targeted device receives the command. When the read data is ready, the target arbitrates for the bus and returns the read data to the bus master indicated in the command octet. The transfer of the last data octet to the requesting master device completes the read cycle. Control writing is an address transformation of a data write operation and comprises a single data octet. That is, it writes data to another 32-bit control address space. The data / control bits in the command octet indicate writing to the control address space. All targets receive commands and data octets and complete the cycle. Control writes go to another data register in the interface that receives them. This avoids command rejection due to the interface becoming busy with data operations. Control writing is used to send a base address to each of the clusters and send the base address and configuration data to all other global bus devices such as global registers. Control writes are also used to send global timing signals and global wakeup interrupts to all clusters. Each cluster receives a global bus control write of its cluster base address. When a cluster base address is received, each cluster sends its base address to all its processing elements and the digital signal engine, which stores this address and there is an appropriate global address on the cluster data bus. To respond to the transfer request to the internal register. Control reading is a pair of control writing. Control read allows the host or configuration device to read and write base addresses and configuration registers in the global bus control address space. This is required for PCI configuration registers (eg those that can be referenced by an external PCI device via the PCI interface).
[0015]
Each global bus master has only one transaction in progress at any one time. This cannot start another transaction until the current transaction is complete. Even though each master can only support one transaction at a time, the bus can have many transactions in progress. Each read operation occurs in two steps. That is, reading is started and then reading is completed. There is a delay between the start of reading and the completion of reading. This delay is the time required for the target to decode the command, acquire the read data, and send it back to the master. During this time, neither the master nor the target is on the bus. While the master is waiting for its reading to complete, the bus may support other transactions. For example, other masters can perform write transfers and other read transfers.
[0016]
Each global bus transaction begins with a command octet written to the target device. The command octet may include the following fields: A read / write transfer bit, a data / control type bit, a 2-bit transfer length field for indicating to the DRAM memory the expected transfer length in octets (1, 2, 4 or 4 or more), and 2 bits A priority field and two multi-bit fields (eg, 6 bits each), each of the two multi-bit fields being the device number of the originating master interface device for use by the target device as a destination in response to a read command And a sub-device number that specifies a particular device within the cluster, the field further includes a 32-bit address field that specifies the address of the data in the target and the target device address. Other fields may be defined if desired, or the field size may be expanded if the total command size does not exceed the one octet size established by the global bus.
[0017]
Referring again to the interface structure of FIG. 3 together with the timing diagram of FIG. 4, a data write operation in which the master device writes 1 to 4 data octets to the designated target device causes the master device to transfer a command to the master interface 31. This is transferred to the master interface bus 47 via the local bus 29 and then to the command buffer 53 via the line 51. The device number of the master interface received by the command buffer 53 via the line 52 from the “My Device Number” storage register 41 is given to the command in the appropriate field. Next, the master interface 31 requests access to the global bus, which is indicated in FIG. 4 by reference numeral 91, where the global bus request line (GBR #) goes low. Requests are made for command octets and for each write of a data octet. In the example shown in FIG. 4, the master request signal remains low for 5 clock cycles for a 5 octet transfer. The global bus control arbiter (18 in FIG. 1) acknowledges the number of cycles requested to access the master interface, which is indicated by the reference line 93 where the acknowledge line (GBA #) goes low for 5 clock cycles. It is indicated by becoming. Master interface 31 then sends write command octets and data octets via command output line 54 in FIG. 3 from write FIFO register bank 56 which communicates via interface bus 47 and write data line 55. The data is sent to the global bus via the write data line 57. The transmission followed by the requested number of data octets after this write command is indicated by octets 95-99 in FIG.
[0018]
The write command octet is a broadcast to all global bus target interfaces (including itself) as indicated at 100 in FIG. 4 by target device code (target device) = 0. This is a broadcast because the master does not know which global bus responds to the address contained in the command octet. The command octet includes a 32-bit global address 101 for transfer, a transfer type (write), and a transfer length (1-4 octets). This also includes my device number, which is the master device number, which is not used in the write operation. Each of the target devices 33 receives a write command in the command buffer 72 of the target interface via the command input line 71 and a write data in the write FIFO register 82 of the target interface via the data line 81, respectively. . This is the 32-bit address in the write command received by the comparison circuit 95 via the target address line 74 and its own global address which is the my global address received by the comparison circuit 75 via the line 76 from the storage register 43. Compare with address. If it matches, it receives the write data 102-105 and clocks it out of its write FIFO 82 across line 83. This completes the writing operation. If there is a match but the device is busy with a previous command, this sends a command rejection to the bus. If not, the target ignores the command and flushes the write FIFO 82 to prepare for the next write command. Note that all writes are broadcast. Normally only the intended target receives the broadcast write data, and other devices discard it. However, it is possible to broadcast write data to one or more targets if the target is designed to decode a series of broadcast addresses.
[0019]
Next, with reference to FIG. 3 and FIG. 5, the master data reading from the target will be considered. The master interface 31 initiates the transfer by sending a read command octet to the global bus after requesting and receiving access to the bus, as shown at 121, 123 and 125 in FIG. The read command octet is a broadcast to all global bus target interfaces (including itself) (as indicated by device 0 at 126 in FIG. 5). This is a broadcast because the master does not know which global bus device responds to the address (127 in FIG. 5) contained in the command octet. The command octet includes a 32-bit global address for transfer, a transfer type (write), and a transfer length (1-4 octets). This also includes my device number, which is the master device number that the target device uses for its response. When the master has finished transmitting the read command octet, it activates its read FIFO 63 to receive read data across the read line 62 later. Normally, at this point, the master stalls and waits for the target to send read data and complete the read command. Each of the target interfaces 33 receives a read command octet in the buffer 72 across the command input line 71. By using the compare circuit 75, this compares the 32-bit address in the read command with the my global address, which is its own global address stored in the register 43. If there is a match, the command is transferred across line 73 and 77 to interface bus 67 and then sent to local bus 29 to receive the requested data, local bus 29, interface bus 67, read line 84 and This is transferred to the global bus 16 via 86 and the read FIFO register bank 85. After requesting and gaining access to the global bus 16 as shown at 131 and 133 in FIG. 5, it is included in the command octet as a response address as shown by the use of the master device code 139 in FIG. The requested read data is sent to the master by using the master device number. This completes the read operation. If there is a match but the device is busy with a previous command, this sends a command rejection 145 to the bus 16. If it does not match, the target ignores the command. Note that the only valid way that data 140-143 can be sent to the waiting read FIFO 63 in the master is only in response to a previous read command. Only the command octet contains the device number of the master that sent the command, and this device number is incorporated as hardware in the master device sending the command (41). The device number is read on line 58 by comparison circuit 60 and looked up against the stored device number (41) received by comparison circuit 60 across line 59. Matching enables the FIFO 63 via the control line 61. There is no other effective way that any other device can send data to the open master read FIFO, resulting in improper completion of the open read command.
[0020]
The target device receives the broadcast write and responds to the read. Alternatively, if the master device knows which device should receive the command, the master device may send the write command and data to a specific target device instead of broadcasting it. Doing this saves power because no other device receives the command and consequently dissipates power.
[0021]
In summary, the basic write transfer sequence, using 4 octet data transfer as an example, is as follows:
[0022]
1. The master device requests a 5 octet transfer on the bus.
2. The master issues a target bus device number and a write command. If the target bus device number for writing is unknown, the target device number may be 0 (broadcast). The write command includes a write address, a write command, command priority, a chain bit, and a master device code.
[0023]
3. Issue data octets 0-2 (transfer can be 1 to 4 octets depending on transfer length code).
[0024]
4). Issue data octet 3 and last transfer type to release the bus. Bus arbitration starts again in this cycle.
[0025]
The basic read transfer sequence using 4 octet data transfer as an example is as follows.
[0026]
1. The master device requests a 1 octet transfer for the read command.
2. The master issues a target bus device number and a read command. If the target bus device number for reading is unknown, the target device number may be 0 (broadcast). The read command includes a read address, a read command, command priority, a chain bit, and a master device code. The master device code is a DRAM response address.
[0027]
3. Release the bus.
4). The target device requests a 4 octet transfer for the read data response.
[0028]
5. The target issues a first octet of the target device address and read data. The master device code is a target for read data. The transfer can be 1 to 4 octets depending on the transfer length code.
[0029]
6). Issue data octets 1-2.
7). Issue data octet 3, last transfer type and release the bus. Bus arbitration begins again in this cycle.
[0030]
In a manner similar to that described above using a split transaction bus, the present invention provides a transaction acknowledgment (TACK) signal to the bus system to indicate receipt of a command or data by at least one target device. In particular, the target device receiving each octet transferred on the global bus 16 acknowledges the octet by activating the transfer acknowledge (TACK) line on the global bus 16. This is true for each octet, command or data transferred. A TACK indicates that the target has received a command or data octet intended for it. As shown in FIG. 3, when the target device 33 receives a control read or write octet, it uses a comparison circuit 75 to decode to see if it is the intended target. If so, this is a TACK (by a TACK generator circuit 79 that provides a TACK signal on line 80), and the TACK signal's two clocks after the octet is transferred, as shown at 106 and 144 in FIGS. To activate. The target activates TACK even if it rejects the command (as seen at 111 and 145 in FIGS. 4 and 5). If the command is a write, each of the write data octets is also acknowledged by the target (at 107-110 in FIG. 4). Similarly, the master receiving the read data activates TACK (at 146-148 in FIG. 5) for each octet read. By TACK, it is possible to detect a state in which no device responds to the command, that is, a bus error. TACK detects this immediately without having to wait for a bus timeout. TACK is also useful for debugging. That is, it can be found whether there is a responding device. One or more devices can respond to the TACK signal without interference.
[0031]
TACK has its own coding. In order to activate TACK, its state is changed from the preceding clock. For continuous TACK signals, the TACK line is inverted every clock. Each target device activates TACK for each bus clock. Note that one or more devices can respond to the TACK signal. That is, all responding devices drive TACK in the same direction. 6 and 7 are block diagrams of logic for generating a TACK signal and detecting the TACK signal. In the generator logic of FIG. 6, the last TACK flip-flop 151 records the TACK signal value for the previous cycle. The decode flip-flop 153 records the valid address decode in the previous cycle. If the target address is valid in the previous cycle, this logic responds to the TACK signal by enabling the TACK driver 155. The TACK driver 155 uses the inverted output of the flip-flop 151 to generate a current TACK value that is complementary to the previous TACK value. This TACK generation circuit is part of the target bus interface 33 of each target device or cluster including the target device on the global bus.
[0032]
Within the detector logic of FIG. 7, the last TACK flip-flop 157 records the TACK signal value for the previous cycle. If the current TACK signal value is complementary to the TACK signal in the previous cycle, the current TACK signal is valid and XOR gate 159 outputs a “true” TACK detected signal value. The TACK detector circuit is part of the master bus interface of each of the master devices or clusters of master devices on the global bus. Alternatively, a single TACK generator may form part of the global bus control (18 in FIG. 1) bus idle default device (BIDD). In either case, if the bus is idle, BIDD activates TACK and drives the bus to the default level. If the command is sent and no device responds, the TACK line will not change. This makes it possible to detect whether an address has been specified for a nonexistent device. If no device is driving TACK, stray capacitance and bus holding logic holds the TACK line at its previous level.
[0033]
Each master device on the global bus (GB) can have only one ongoing GB transfer at any one time. For the read transfer, the GB master waits for read data to be returned. For write transfers, the master waits for bus approval for the command and absence of command rejection from the bus, which indicates that the write command and data have been authenticated. This provides automatic control of transfer bandwidth between the master and target. This is called self-throttling. Each of the masters waits for the target to respond. The target has received many GB transfer commands and may be in the process of processing them. These commands are typically buffered in a command FIFO. A target may have N commands from N masters in its FIFO. Once a command enters the FIFO, all N devices wait until each command is acknowledged. Even if it takes time, each of the masters waits until the transfer is completed, so the target does not overrun.
[0034]
Referring to FIGS. 8 and 9, when the global bus is idle, there are no active devices selected to drive the bus. If no active device is selected, the arbiter selects the bus idle default device (BIDD), which is the default device, to drive the bus. Otherwise, the device line can float and cause noise and errors. BIDD drives the bus line to a valid level by idle bus logic and bus driver 161 in response to an idle acknowledge signal from the arbiter. This sends 0 for data words, byte enables and device addresses, and also 0 for word types. That is, it is an idle command. Alternatively, the address / data lines may be held at their previous values (for low power), i.e. the byte enable may be inactive and the target device number may be held at all ones. This activates the TACK signal at the output 163 because it is a BIDD-enabled device and drives the bus effectively. The only time that the TACK signal is not driven is only when a command or data word is sent on the bus and no device responds to it.
[0035]
BIDD also responds to the read command without TACK via TACK detection logic 105 (shown in FIG. 7), thereby indicating that no device responds to the read. The global bus master device can issue read and write commands to target addresses that do not exist (devices 36, 15 and 27 in the example of FIG. 9). In this case, no device decodes the address, responds to the command, and does not issue a TACK signal (indicated by no TACK response in FIG. 9). The GB master that sent the command finds the absence of TACK and waits for read data unless the command is aborted. The next question is how to abort the command. The simplest method is to provide alternative data (175-177 in FIG. 9) and run a command to a normal completion state with a flag indicating that the data is not valid. This means that there are no special changes to the receiving state machines (and other state machines that depend on them), but it is necessary to insert dummy data. To do this, the global bus master makes a request to the bus (request at 179 and approval at 171 shown in FIG. 9) and places dummy data on the bus to receive itself or 1-4 It is necessary to send a bus idle cycle. This is necessary to keep the global bus off while inserting dummy data. Otherwise, the global bus may attempt to put data into the FIFO while the global bus master logic is inserting dummy data.
[0036]
FIG. 8 shows the microarchitecture for BIDD with no TACK response logic. BIDD monitors device 0 broadcast commands through buffer register 167 and looks for read commands with no TACK response. In the case of a no TACK response (183 in FIG. 9), the state machine 169 makes a request to the global bus and issues a read response of 0 data of 1, 2 or 4 octets determined by the 2 length bits in the command. It returns a 0 data value and a 0 byte enable with the appropriate word type code for the read response. Zero byte enable indicates that the data is invalid. (The read data normally returns data in which all byte enables are set to 1). BIDD also responds to the device address from the read command (183 in FIG. 9), which causes the dummy data to go to the originating requesting device. BIDD uses FIFO 171 to hold up to five read requests from GB before the control of the bus is authenticated for a read response without TACK.
[0037]
FIG. 9 shows a timing diagram of a no TACK response. BIDD has the highest priority when it requires the GB to minimize command buffering for read commands with no TACK. Command buffering is necessary because a number of read commands with no TACK response can occur in succession. With superlative priority, only three commands need to be buffered, which corresponds to the number of clocks during the state detection and dummy read data in GB. That is, one is for detecting a state, one is for sending a GB request, and one is for receiving a GB approval. The timing diagram of FIG. 9 assumes that BIDD has the highest priority over the GB arbiter and that BIDD can present a DC request (179) for pulsed requests. The BIDD can hold the GB request for a longer period than necessary because the TACK-less response does not occur frequently. Once a BIDD response request is issued, the BIDD can enter an idle cycle if the approval time is longer than requested. Any number of read commands can occur consecutively for non-existent addresses, which means that the BIDD must buffer these read commands. The command must be buffered until this can gain access to the GB. By making the no-TACK response logic the highest priority GB device, the buffering between the time when the TACK is detected and the time when the GB acknowledgment is received can be minimized to the number of clocks. This would be three commands. That is, one detects this, one originates the request, and one receives the approval. Note that only 14 bits need be saved from the command word. Device and sub-device addresses for a 2-bit length code and a 12-bit read response.
[Brief description of the drawings]
FIG. 1 is a schematic block diagram of an integrated multiprocessor system with a high speed split transaction bus in which a synchronous transaction acknowledgment with no response detection of the present invention is deployed.
FIG. 2 is a schematic block diagram of a processing cluster in the system of FIG. 1 with a global bus interface including transaction acknowledgments of the present invention.
FIG. 3 is a detailed block diagram of the global bus interface 17 of FIG. 2 showing a transaction acknowledgment generator 79 at the target interface.
FIG. 4 is a timing diagram for a write transfer on the global bus 16 in FIGS. 1-3 with a transaction acknowledgment (signal TACK number) shown as an inversion of the signal state.
FIG. 5 is a timing diagram for a read transfer on the global bus 16 in FIGS. 1-3 with a transaction acknowledgment (signal TACK number) shown as an inversion of the signal state.
FIG. 6 is a block circuit diagram of transaction acknowledgment (TACK) generation logic.
FIG. 7 is a block circuit diagram of transaction acknowledgment (TACK) detection logic.
8 is a detailed block diagram of a bus idle default device (BIDD) that is part of the global bus control unit 18 of FIG. 1, including the no TACK detector of FIG.
FIG. 9 is a timing diagram showing a response of the BIDD of FIG. 8 to detection without TACK.

Claims (8)

オンチップバスに装着された多数の回路デバイスを有する集積回路において、前記バスに入れられたコマンドが指定されたターゲット回路デバイスによって受取られていないことを示す無応答検出を備えるトランザクション肯定応答回路であって、
前記バスに設けられる別々のトランザクション肯定応答ラインと、
ターゲット回路デバイスの各々に関連するドライブ回路手段とを含み、前記ドライブ回路手段は、特定のターゲット回路デバイスに指定されたコマンドがそのデバイスによって受取られた場合にはいつでも、前記トランザクション肯定応答ラインを反対の状態に反転し、指定されたターゲット回路によるコマンドの未受信は、前記トランザクション肯定応答ラインが変化しないことにより示され、さらに
前記バスに装着され前記バスがアイドルである場合にはいつでも前記トランザクション肯定応答ラインをその反対の状態に駆動するよう接続されるバスアイドルデフォルトデバイスを含み、前記バスアイドルデフォルトデバイスは、前記トランザクション肯定応答ラインを監視しかつコマンドの未受信が示される場合にはいつでもダミー応答を生成するための手段を含む、トランザクション肯定応答回路。
In an integrated circuit having a number of circuit devices mounted on an on-chip bus, a transaction acknowledgment circuit with no response detection indicating that a command placed on the bus has not been received by a specified target circuit device. And
A separate transaction acknowledgment line on the bus;
Drive circuit means associated with each of the target circuit devices, wherein the drive circuit means opposes the transaction acknowledgment line whenever a command specified for a particular target circuit device is received by that device. A command not received by the specified target circuit is indicated by the fact that the transaction acknowledge line does not change, and the transaction acknowledge is always attached to the bus and the bus is idle. Including a bus idle default device connected to drive the response line to the opposite state, the bus idle default device monitoring the transaction acknowledgment line and indicating a dummy response whenever a command is not received. Comprising means for generating a transaction acknowledgment circuit.
装着された多数の回路デバイスを備えるオンチップバスを有する集積回路アーキテクチャにおいて、コマンドとデータとは前記回路デバイス間で前記バスを渡って転送され、前記バスはデータ読出動作のためのスプリットトランザクションバスであり、指定されたデバイスが前記バスに入れられたコマンドまたはデータを受信したかを判断するための無応答検出回路を備えた同期トランザクション肯定応答(TACK)システムであって、
前記オンチップバスに関連のTACKラインを含み、前記TACKラインは2つの反対の状態を有し、さらに
回路デバイスが、その回路デバイスに意図されたコマンドまたはデータを受取ったときにはいつでも、TACKラインの現在の状態をその反対の状態に反転させるための回路デバイスの各々に関連のバスインターフェイス手段と、
前記バスがアイドルである場合にはいつでもTACKラインの現在の状態をその反対の状態に反転させるよう前記バスに装着されるバスアイドルデフォルトデバイス(BIDD)と、
前記TACKラインの状態を監視するための無応答検出手段とを含み、指定された回路デバイスによるコマンドまたはデータの未受信は、前記TACKラインが変化されないままである場合に示され、前記無応答検出手段は、コマンドの未受信に応答してダミーデータを生成し、かつ前記ダミーデータを前記コマンドを発信した前記回路装置に送信するための手段を含み、前記ダミーデータは前記コマンドの前記未受信状態を示す、TACKシステム。
In an integrated circuit architecture having an on-chip bus with a number of mounted circuit devices, commands and data are transferred across the bus between the circuit devices, the bus being a split transaction bus for data read operations. A synchronous transaction acknowledgment (TACK) system comprising a no response detection circuit for determining whether a specified device has received a command or data placed on the bus, comprising:
Including an associated TACK line on the on-chip bus, the TACK line having two opposite states, and whenever the circuit device receives a command or data intended for the circuit device, the current TACK line A bus interface means associated with each of the circuit devices for inverting the state of
A bus idle default device (BIDD) attached to the bus to reverse the current state of the TACK line to the opposite state whenever the bus is idle;
No response detection means for monitoring the state of the TACK line, wherein no reception of a command or data by a designated circuit device is indicated when the TACK line remains unchanged, the no response detection The means includes means for generating dummy data in response to no reception of a command and transmitting the dummy data to the circuit device that has transmitted the command, wherein the dummy data is in the unreceived state of the command A TACK system showing.
前記無応答検出手段は前記BIDDの一部である、請求項2に記載のTACKシステム。  The TACK system according to claim 2, wherein the non-response detecting means is a part of the BIDD. 前記無応答検出手段は、前記バスに装着された前記回路デバイスの各々に関連する検出回路を含む、請求項2に記載のTACKシステム。  The TACK system according to claim 2, wherein the non-response detection means includes a detection circuit associated with each of the circuit devices mounted on the bus. 回路デバイスの各々に関連する前記バスインターフェイス手段は、前記バス上に入れられたいずれのコマンドのアドレスフィールドと、その回路装置が応答するアドレス範囲とを比較するための手段を有し、整合するときにはいつでも、前記コマンドを前記回路デバイスに転送し、かつ前記TACKラインの状態を反転する、請求項2に記載のTACKシステム。  The bus interface means associated with each of the circuit devices has means for comparing the address field of any command placed on the bus with the address range to which the circuit device responds and when matching 3. The TACK system of claim 2, wherein at any time the command is transferred to the circuit device and the state of the TACK line is inverted. 前記TACKラインの状態を反転するための前記手段は、
前記TACKラインに接続された入力と、反転出力とを有する第1のフリップフロップと、
前記アドレス比較手段に接続された入力と、出力とを有する第2のフリップフロップとを含み、両方のフリップフロップは前記バスに対するクロックによってクロックされ、さらに
トライステートドライバを含み、前記トライステートドライバは、前記第1のフリップフロップの前記反転出力に接続された入力と、前記第2のフリップフロップの前記出力に接続されたイネーブルと、前記TACKラインに接続された出力とを有する、請求項5に記載のTACKシステム。
The means for inverting the state of the TACK line comprises:
A first flip-flop having an input connected to the TACK line and an inverted output;
A second flip-flop having an input connected to the address comparison means and an output, both flip-flops being clocked by a clock to the bus, and further comprising a tri-state driver, the tri-state driver comprising: 6. The input connected to the inverting output of the first flip-flop, an enable connected to the output of the second flip-flop, and an output connected to the TACK line. TACK system.
前記無応答検出手段は、
フリップフロップを含み、前記フリップフロップは前記バスに対するクロックによってクロックされ、前記TACKラインに接続される入力と、出力とを有し、
排他的ORゲートをさらに含み、前記排他的ORゲートは第1の入力を前記TACKラインに接続され、第2の入力を前記フリップフロップの出力に接続され、出力は前記バス上のコマンドまたはデータの未受信の示唆を提供する、請求項2に記載のTACKシステム。
The non-response detecting means includes
A flip-flop, the flip-flop being clocked by a clock to the bus and having an input connected to the TACK line, and an output;
The exclusive OR gate further includes a first input connected to the TACK line, a second input connected to the output of the flip-flop, and an output connected to the command or data on the bus. The TACK system of claim 2, wherein the TACK system provides an unreceived suggestion.
前記集積回路アーキテクチャはマルチプロセッサシステムを形成し、前記オンチップバスに装着される回路デバイスのいくつかは処理クラスタであり、前記バスは前記クラスタよりも速いクロックレートで動作する、請求項2に記載のTACKシステム。  The integrated circuit architecture forms a multiprocessor system, wherein some of the circuit devices mounted on the on-chip bus are processing clusters, and the bus operates at a faster clock rate than the clusters. TACK system.
JP2000609887A 1999-04-07 2000-04-06 Global bus synchronous transaction acknowledgment with no response detection Expired - Fee Related JP4412852B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12822299P 1999-04-07 1999-04-07
US60/128,222 1999-04-07
PCT/US2000/009155 WO2000060462A1 (en) 1999-04-07 2000-04-06 Global bus synchronous transaction acknowledge with nonresponse detection

Publications (2)

Publication Number Publication Date
JP2002541548A JP2002541548A (en) 2002-12-03
JP4412852B2 true JP4412852B2 (en) 2010-02-10

Family

ID=22434254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000609887A Expired - Fee Related JP4412852B2 (en) 1999-04-07 2000-04-06 Global bus synchronous transaction acknowledgment with no response detection

Country Status (3)

Country Link
EP (1) EP1257917A4 (en)
JP (1) JP4412852B2 (en)
WO (1) WO2000060462A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2367647B (en) 2000-10-03 2002-11-20 Sun Microsystems Inc Resource access control for a processor
GB2367645B (en) * 2000-10-03 2002-11-20 Sun Microsystems Inc Memory access control
GB2367646B (en) 2000-10-03 2002-11-20 Sun Microsystems Inc Resource access control
GB2367648B (en) 2000-10-03 2002-08-28 Sun Microsystems Inc Multiple trap avoidance mechanism
JP4592944B2 (en) * 2000-12-19 2010-12-08 Necエンジニアリング株式会社 CPU interface circuit
DE10110778A1 (en) * 2001-03-07 2002-09-12 Philips Corp Intellectual Pty Integrated circuit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4459665A (en) * 1979-01-31 1984-07-10 Honeywell Information Systems Inc. Data processing system having centralized bus priority resolution
US4486855A (en) * 1982-01-28 1984-12-04 Ncr Corporation Activity detector usable with a serial data link
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
WO1988008575A1 (en) * 1987-05-01 1988-11-03 Digital Equipment Corporation Interrupting node for providing interrupt requests to a pended bus
EP0676696B1 (en) * 1994-04-06 1999-01-20 Advanced Micro Devices, Inc. Parallel port circuits in computer systems
US5659718A (en) * 1994-08-19 1997-08-19 Xlnt Designs, Inc. Synchronous bus and bus interface device
US5963721A (en) * 1995-12-29 1999-10-05 Texas Instruments Incorporated Microprocessor system with capability for asynchronous bus transactions
US5948093A (en) * 1996-02-09 1999-09-07 Advanced Micro Devices, Inc. Microprocessor including an interrupt polling unit configured to poll external devices for interrupts when said microprocessor is in a task switch state
US5687381A (en) * 1996-02-09 1997-11-11 Advanced Micro Devices, Inc. Microprocessor including an interrupt polling unit configured to poll external devices for interrupts using interrupt acknowledge bus transactions
US5991900A (en) * 1998-06-15 1999-11-23 Sun Microsystems, Inc. Bus controller

Also Published As

Publication number Publication date
EP1257917A1 (en) 2002-11-20
JP2002541548A (en) 2002-12-03
EP1257917A4 (en) 2004-11-10
WO2000060462A1 (en) 2000-10-12

Similar Documents

Publication Publication Date Title
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
US5535341A (en) Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation
KR100360064B1 (en) Highly Pipelined Bus Structure
US5870568A (en) Double buffering operations between the memory bus and the expansion bus of a computer system
JP3255908B2 (en) Memory control unit
US8086915B2 (en) Memory controller with loopback test interface
US5925118A (en) Methods and architectures for overlapped read and write operations
JP3218773B2 (en) Cache controller
US20020065967A1 (en) Transmission of signals synchronous to a common clock and transmission of data synchronous to strobes in a multiple agent processing system
JPH0696030A (en) Extended processor buffer interface for multiprocessor
JPH02227765A (en) Data transfer apparatus for digital computer
US6993612B2 (en) Arbitration method for a source strobed bus
JP4891405B2 (en) Method and apparatus for conditional propagation of barrier operations
WO1998059298A1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US6256693B1 (en) Master/slave data bus employing undirectional address and data lines and request/acknowledge signaling
JPH05197647A (en) Input/output device and method of data transfer
US20040044877A1 (en) Computer node to mesh interface for highly scalable parallel processing system
JP4412852B2 (en) Global bus synchronous transaction acknowledgment with no response detection
US6701398B1 (en) Global bus synchronous transaction acknowledge with nonresponse detection
US7043612B2 (en) Compute node to mesh interface for highly scalable parallel processing system and method of exchanging data
US7346072B2 (en) Arbitration mechanism for packet transmission
US6253302B1 (en) Method and apparatus for supporting multiple overlapping address spaces on a shared bus
KR100276136B1 (en) Method and apparatus for enabling cache streaming
US6269360B1 (en) Optimization of ordered stores on a pipelined bus via self-initiated retry
US5652846A (en) Bus deadlock prevention circuit for use with second level cache controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091016

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091117

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121127

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131127

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees