JPH09237220A - ローカル・キャッシュ・バッファへの並列共通バスのための高速フレキシブル・スレーブ・インターフェイス - Google Patents

ローカル・キャッシュ・バッファへの並列共通バスのための高速フレキシブル・スレーブ・インターフェイス

Info

Publication number
JPH09237220A
JPH09237220A JP8209598A JP20959896A JPH09237220A JP H09237220 A JPH09237220 A JP H09237220A JP 8209598 A JP8209598 A JP 8209598A JP 20959896 A JP20959896 A JP 20959896A JP H09237220 A JPH09237220 A JP H09237220A
Authority
JP
Japan
Prior art keywords
data
cache
address
cycle
interface
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.)
Pending
Application number
JP8209598A
Other languages
English (en)
Inventor
Steven W Aiken
ダブリュー エイキン スティーヴン
John A Saba
エイ サーバ ジョン
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09237220A publication Critical patent/JPH09237220A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/303In peripheral interface, e.g. I/O adapter or channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 PCIバス標準における種々の待機状態及び
遅延パリティ保護を許容し、キャッシュ・ラインの書込
み時のフラッシュの均等なデータ転送を許容し、かつ高
速性を維持する。 【解決手段】 インターフェイス・コントローラ150
は、復号された書込み指令及びアドレスに応じてイニシ
ェータ装置120に肯定応答信号を送信し、その後少な
くとも1クロックでキャッシュ・バッファの書込みを起
動し、キャッシュ・ラインが終りに到達するとキャッシ
ュ・コントローラにキャッシュ・ライン・フラッシュの
ためのライン終了の信号を送信する。データ論理回路1
40は、パリティ・エラーの報告時データのキャッシュ
・バッファへの書込みから1クロック・サイクルでキャ
ッシュ・バッファにパリティ情報を書込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に相互接続を介し
てホスト・ターゲットとイニシエータ装置との間でデー
タを転送するシステム及び方法に関し、特にパーソナル
・コンポーネント相互接続(PCI)バスを介してイニ
シエータ装置からホスト・ターゲットにデータを転送す
る方法及び装置に関する。
【0002】
【従来の技術】PCIバスは、32または64ビット・
バスとしてインプリメントすることができる業界標準バ
スである。PCIバス標準は、バイトに基づくデータの
読取り及び書込みを許容する。動作において、一度、装
置は、PCIバスの使用が許されたならば、アドレス・
フェーズ及びデータ・フェーズの2つのフェーズでその
バス・トランザクションを実行する。アドレス・フェー
ズの間、バス・マスター(イニシエータ装置)は、組合
せ指令、バイト・イネーブル・バス(C/BEバス)上
のデータ転送指令、及び組合せアドレス及びデータ・バ
ス(A/Dバス)上のトランザクションにする関連アド
レスを供給する。データ・フェーズの間、A/Dバス
は、データの伝送に用いられ、C/BEバスは、データ
・ブロック転送に関連したバイト・イネーブルズを含
む。PCIバスのインプリメンテーションは、業界でよ
く知られておりかつその仕様書は、公に利用可能であ
る。高速業界標準共通バスへ及びそれからのデータの転
送において、しばしば、バスに全帯域幅を維持させるべ
くデータに対して中間ローカル・キャッシュ・バッファ
を供給することが望ましい。しかしながら、ローカル・
キャッシュ・バッファにPCIバスとしてそのようなフ
レキスブル・バスを接続するときに問題が生ずる。
【0003】
【発明が解決しようとする課題】特に、そのような接続
を行うときに、バイト書込みケイパビリティ(能力)を
許容すると同時にPCIバスを高速に維持することが望
ましい。PCIバス・アーキテクチャでは、これは、バ
イト・イネーブルズの状態が第1のデータ・フェーズが
始まるまで分からないという事実により特に難しい。更
に、データ・フェーズは、ホストまたはターゲットのい
ずれかによって起動される未知数の待機状態によりアド
レス・フェーズから遅らさせることができる。加えて、
バイト書込みフレキシビリティを収容するために、ホス
ト性能は、非均等データ転送による被害を被らなければ
ならない。第2の問題は、ローカル・キャッシュ・バッ
ファに書込まれるデータ・トランザクションに対するパ
リティ情報を処理することにおいて生ずる。PCIバス
仕様では、エラー・チェッキングは、32ビット・トラ
ンザクションに対して単一パリティ・ビットを介しかつ
64ビット・トランザクションに対して2つのパリティ
・ビットによって行われる。パリティ・ビットの状態
は、1クロック・サイクルでこのアーキテクチャにおけ
るデータに遅れる。バス・アーキテクチャは、1クロッ
ク・サイクル遅延を必要とするが、しかしながら、PC
Iバス・イニシエータまたはターゲットは、追加の待機
状態をいずれかのデータ・フェーズ・バス・トランザク
ションの中に挿入することもできる。従って、インター
フェイスは、このパリティ情報を受け取るために最後の
データ・サイクルの受け取りを過ぎて1クロック・サイ
クルの間接続されたままでなければならない。当業者
は、この余分なサイクルが、PCIバス上の新しい動作
を始めることによりよく用いられうる帯域幅を無駄にす
るということを認識するであろう。
【0004】従って、本発明の目的は、バス・アーキテ
クチャが企図したフレキシビリティを犠牲にすることな
くPCIバス高速ケイパビリティを維持するローカル・
キャッシュ・バッファとPCIバス・コントローラとの
間にインターフェイスを提供することである。特に、イ
ンターフェイスは、32または64ビット動作の両方、
PCIバス標準に供給されるような種々の待機状態及び
遅延パリティ保護を許容する。更に、インターフェイス
は、全キャッシュ・ラインの書込みによりキャッシュ・
バッファからホストへの情報の均等ブロック転送を許容
する。
【0005】
【課題を解決するための手段】本発明の上記目的は、イ
ニシエータ装置とキャッシュ・バッファ、キャッシュ・
コントローラ、及び関連主メモリを有しているホストと
の間でバイト・レベル・データを転送するためのインタ
ーフェイスであって、データ・トランザクションのアド
レス・サイクルの間中にイニシエータ装置からそれぞれ
が関連アドレスを有する書込み指令を受け取りかつ復号
する指令処理論理回路と、アドレスに関連付けられたデ
ータ・サイクルの間中にデータを受け取りかつキャッシ
ュ・バッファにデータを転送するデータ論理回路と、復
号された書込み指令及びアドレスに応じてイニシエータ
装置に肯定応答信号を送信し、インターフェイス・コン
トローラにより肯定応答信号の生成の後少なくとも1ク
ロック・サイクルでキャッシュ・バッファの書込みを起
動し、キャッシュ・バッファの書込みの間中にキャッシ
ュ・ラインの終りに到達することによりキャッシュ・コ
ントローラにキャッシュ・コントローラにより全てのキ
ャッシュ・ラインの主メモリにキャッシュ・ライン・フ
ラッシュを起動するライン終了の信号を送信するインタ
ーフェイス・コントローラとを備えているインターフェ
イスによって達成される。
【0006】本発明では、データ論理回路は、受け取っ
たデータのパリティを検査し、イニシエータ装置にパリ
ティ・エラーを報告し、かつデータがキャッシュ・バッ
ファに書込まれた後少なくとも1クロック・サイクルで
キャッシュ・バッファにキャッシュ・パリティ情報を書
込むパリティ発生器を含むように構成してもよい。本発
明では、有効データ・バイトが記憶されるアドレスから
キャッシュ・ラインにおけるオフセットを決定するバイ
ト・イネーブル論理回路を更に含むように構成してもよ
い。また、本発明の上記目的は、イニシエータ装置から
標準バスを介してキャッシュ・バッファ及び関連主メモ
リを有しているホストにデータを書込む方法であり、ホ
スト・キャッシュ・バッファがインターフェイスを介し
て標準バスに接続される、方法であって、標準バス上の
イニシエータにより書込み指令及び主メモリに関連した
アドレスを発行し、標準バス上にデータ及びバイト・イ
ネーブル情報を少なくとも1クロック・サイクル後で発
行し、書込み指令及びアドレスを分解し、かつ書込み指
令の受け取りをイニシエータ装置に肯定応答し、インタ
ーフェイスがデータ及びバイト・イネーブル情報を読取
る準備ができていることを示すインターフェイスにより
準備信号を発行し、バスからデータ及びバイト・イネー
ブル情報を読取り、少なくとも1クロック・サイクル後
で、アドレス及びバイト・イネーブル情報によって指定
されたキャッシュ・バッファのキャッシュ・ラインの部
分でデータを書込み、データ書込み段階がキャッシュ・
バッファの書込みの間中にキャッシュ・ラインの終了に
到達したときにキャッシュ・コントローラに知らせ、か
つ主メモリにフル・キャッシュ・ラインをフラッシュす
る段階を具備する方法によって達成される。
【0007】本発明では、キャッシュ・バッファへの書
込みの間中にデータのパリティを算出し、データが転送
された後1クロック・サイクルでイニシエータ装置から
インターフェイスにパリティ情報を送信し、算出された
パリティ情報がイニシエータ装置によって送信されたパ
リティ情報に等しいことを確認し、データがキャッシュ
・バッファに書込まれた後少なくとも1クロック・サイ
クルでパリティ・データを書込む段階を更に具備するよ
うに構成してもよい。本発明では、有効データ・バイト
が記憶されるアドレスからキャッシュ・ラインのオフセ
ットを決定する段階を更に具備するように構成してもよ
い。
【0008】
【作用】本発明は、イニシエータ装置とローカル・キャ
ッシュ・バッファを有しているホスト・ターゲットとの
間でPCIバスを介してデータを転送するためのインタ
ーフェイスである。ローカル・キャッシュ・バッファへ
のPCIインターフェイスは、インターフェイス・コン
トローラ、アドレス分解装置、データ及びアドレス論理
回路、バイト・イネーブル論理回路及び指令処理論理回
路を含む。インターフェイス・コントローラは、PCI
インターフェイスとPCIバスを介して接続されたイニ
シエータ装置との間でハンド・シェーキング動作を実行
する。指令及びデータ論理回路は、アドレス・ヒット及
びミスを分解しかつ書込み動作がローカル・キャッシュ
・バッファに対して生ずるときを決定するのを支援す
る。インターフェイス・コントローラは、イニシエータ
装置とローカル・キャッシュ・バッファとの間のデータ
の転送を調整して、所与の転送サイクルの間にキャッシ
ュ・コントローラに状態及び制御信号を供給する。デー
タ論理回路は、PCIバスからデータを受け取りかつパ
リティを確認して、キャッシュ・バッファ及びキャッシ
ュ・パリティ・エラー・バッファにデータ及びパリティ
情報を供給する。バイト・イネーブル論理回路は、各デ
ータ転送フェーズに関連したバイト・イネーブル情報を
受け取りかつ処理し、及び特定のキャッシュ・ラインに
記憶される有効データ・バイトの決定に対するスタート
・ポインタ及びエンド・ポインタ情報を生成する。そし
て、アドレス分解装置は、キャッシュ・ライン書込みの
終了によりエンド・オブ・ライン信号を生成してキャッ
シュ・バッファを横切ってホスト境界へ均等データ・ブ
ロックの転送を許容する。
【0009】
【実施例】図1を参照すると、イニシエータ装置120
とローカル・キャッシュ・バッファ110を有している
ホスト190との間でデータを転送するためのPCIイ
ンターフェイス・システム100のブロック図が示され
ている。PCIインターフェイス100は、バイト・イ
ネーブル論理回路130、データ論理回路140、アド
レス論理回路145、指令処理論理回路148、インタ
ーフェイス・コントローラ150、及びアドレス分解装
置160を含む。ローカル・キャッシュ110に関連す
るのは、それぞれキャッシュ・タグ112、キャッシュ
・パリティ・エラー・バッファ114、キャッシュ・タ
グ論理回路115及びキャッシュ・コントローラ116
である。イニシエータ装置120は、PCIバス170
によりPCIインターフェイス・システム100に接続
される。PCIバス170は、次の信号ラインを備えて
いる:指令及びバイト・イネーブル・ライン171(C
/BE#[0:7])、アドレス及びデータ・ライン1
72(A/D63:0)、パリティ・ライン173(P
AR/:PAR64)、パリティ・エラー・ライン17
4(PERR#)、フレーム・インジケータ(FRAM
E#)及び装置セレクタ(DEVSEL#)・ライン1
75及び176、64ビット要求(REQ64#)及び
通知(ACK64#)ライン177及び178、並び
に、イニシエータ準備完了(IRDY#)及びターゲッ
ト準備完了(TRDY#)肯定応答ライン179及び1
80。その名前が“#”記号で終わる信号は、ローのと
きにアクティブな負論理信号である。
【0010】指令/バイト・イネーブル・ライン171
は、イニシエータ装置120とバイト・イネーブル論理
回路130との間に接続される。PCIバス・データ転
送のアドレス・フェーズの間中、指令/バイト・イネー
ブル・ライン171は、PCIバス170を介するホス
トへの書込みに関連した指令情報を含む。データ・フェ
ーズの間中、指令/バイト・イネーブル・ラインは、デ
ータ転送に関連したバイト・イネーブル情報を含む。3
2ビット・モードでは、バイト・イネーブル・データ・
ライン(3:0)の下位4ビットは、32ビット・モー
ド・データ転送における下位4バイトどれに有効情報が
含まれるかによりセットされる。逆に、64ビット・モ
ードでは、全ての8ビット(7:0)は、入力データ転
送サイクルにおける8バイトのどれが有効なデータを含
むかを示すために用いられる。好ましい実施例では、バ
イト・イネーブル・データ・ラインは、アクティブ・ロ
ーである。アドレス/データ・ライン172は、イニシ
エータ装置120とデータ及びアドレス論理回路140
及び145との間でそれぞれ接続される。アドレス・フ
ェーズの間中、アドレス/データ・ライン172は、ア
ドレス情報の32ビットを含む。アドレス情報は、キャ
ッシュ・バッファ110に関連したアドレス・ヒットを
分解するためにキャッシュ論理回路115に結合され
る。データ・サイクルの間中、アドレス及びデータ・ラ
イン172は、キャッシュ・バッファ110における書
込みの前に処理するために4バイトまたは8バイト・デ
ータ・ワードをデータ論理回路140に転送する。
【0011】パリティ/パリティ64データ・ライン1
73は、データ転送に関連したパリティ・エラー情報を
送信する。パリティ情報は、アドレス/データ・バス1
72上のデータに対するデータ・サイクルの後で1クロ
ック・サイクル転送される。32ビット・モードでは、
パリティ・ビットは、PARライン173に含まれる。
64ビット動作に対して、第2のパリティ・ビットは、
PAR64ライン173に含まれる。パリティ情報に応
じて、データ論理回路140は、エラー・ライン174
を介してイニシエータ装置への送信のためのパリティ・
エラー情報を生成する。イニシエータ装置120は、F
RAME#ライン175、装置セレクタ(DEVSEL
#)・ライン176、REQ64#ライン177、及び
ACK64#ライン178を介してインターフェイス・
コントローラ150に結合される。FRAME#ライン
175は、データ・サイクルを始めるためにインターフ
ェイス・コントローラ150に信号を送るためにイニシ
エータ装置によって用いられ、従って、有効アドレス及
び指令情報は、アドレス/データ・ライン172及び指
令/バイト・イネーブル・ライン171にそれぞれ存在
する。DEVSEL#ライン176は、FRAME信号
に応じたデータ転送の起動を通知するために動作する。
DEVSEL#ライン176は、FRAME#信号で起
動されたトランザクションを通知するために動作する。
DEVSEL#ラインは、PCIインターフェイス・シ
ステム100がトランザクションにエンゲージされるよ
うな期間中ローに保持される。REQ64#ライン17
7は、64ビット送信モードが望ましいということをイ
ニシエータ装置により示すために用いられる。ACK#
64ライン178は、事実、64ビット動作が確認され
たということが、イニシエータへの肯定応答として供給
される。そして、IRDY#及びTRDY#ライン17
9及び180は、データを送信しかつ受信するためのイ
ニシエータ及びターゲットの準備完了をそれぞれ示すた
めに用いられる。
【0012】ここで図2を参照すると、本発明のバイト
・イネーブル論理回路130が示されている。バイト・
イネーブル論理回路は、入力レジスタ200、ポインタ
発生器202、及びマスク論理回路204を含む。入力
レジスタ200は、PCIバス170の指令/バイト・
イネーブル・バス171部分を介して受け取った指令及
びバイト・イネーブル情報を保持する。アドレス・サイ
クルの間中、入力レジスタ200は、イニシエータ装置
120から指令/バイト・イネーブル・バス171を介
して指令情報を受け取る。指令処理論理回路148は、
トランザクションに応答するか否かを決定するために入
力レジスタ200に記憶された情報を読取る。一実施例
では、入力バッファは、8つの1ビット・レジスタを備
えているが、しかしながら、単一の8ビット・レジスタ
または他の記憶手段がこの分野で知られているように用
いられうる。指令処理論理回路148は、有効書込み指
令が示されるかどうかを決定するために指令情報を復号
する。それは、その決定をインターフェイス・コントロ
ーラ150に送る。データ転送のデータ・フェーズの間
中、入力レジスタ200は、指令/バイト・イネーブル
・バス171を介してイニシエータ装置120からバイ
ト・イネーブル情報を受け取る。バイト・イネーブル情
報は、入力レジスタ200からマスク・レジスタ204
に転送される。マスク・レジスタ204は、バイト・イ
ネーブル情報をデータ・サイクルのアドレス部分の間に
受け取ったアドレス・ビット[2]と一緒に組み合わせ
かつキャッシュ・バッファ110への送信のためにキャ
ッシュ・バイト・イネーブル信号を生成する。キャッシ
ュ・バイト・イネーブル信号(p2s_be_[7:
0])は、現在p2s_dd[63:0]バス上の8バ
イトのどれがキャッシュ・バッファに書込まれるべきか
を示す。好ましい実施例では、キャッシュ・ラインは、
長さが64バイトであるような大きさにされる。従っ
て、所与のベース・アドレスに対するデータの64連続
バイトは、所与のキャッシュ・ラインに記憶されうる。
【0013】ポインタ発生器202は、データ・ブロッ
ク転送に関連したスタート・ポインタ及びエンド・ポイ
ンタを分解するために入力バッファ200からマスク・
レジスタ204への転送を詮索(snoop) する。32ビッ
ト・モードでは、バイト・イネーブル指令/バイト・イ
ネーブル・データ・ライン171の下位4ビットは、現
在イニシエータ装置から転送されている4つのデータ・
バイトのどれが有効データを含むかを示す。従って、3
2ビット・モード書込みにおける第1の書込みサイクル
に対して、バイト・イネーブルズは、転送されている4
つのバイトどれが有効データを含んでいたかを示す。そ
の後、バイト・イネーブルズは、連続書込み動作に対す
る最後のデータ・サイクルまでアサートされる。最後の
データ・サイクルで、4バイト最終データ転送の有効バ
イトに対するバイト・イネーブルズだけがアサートされ
うる。32ビット・モードでは、データ論理回路140
によって記憶されたアドレス情報(A/D[2])に結
合されたバイト・イネーブル情報は、スタート・ポイン
タを生成するために用いられる。特に、データ論理回路
140は、アドレス・フェーズの間中受け取ったアドレ
ス/データ・ラインA/D[2]の値をバッファかつ保
持し、そしてスタート及びエンド・ポインタを導出する
ことに用いるためにポインタ発生器に情報を転送する。
【0014】初期データ転送サイクルの間中、ポインタ
発生器は、有効な情報を含む4バイト転送の第1のバイ
トを決定するために入力バッファ200から受け取った
バイト・イネーブル情報を評価する。この情報は、アド
レス情報A/D[2]に結合されてデータ・ブロック転
送に対するスタート・ポインタに関連した3ビット出力
ワード(p2s_va_sp)の生成を結果として生ず
る。3ビット出力信号(p2s_va_sp)は、処理
のためにキャッシュ論理回路115に転送される。64
ビット・モードでは、ポインタ発生器202は、現行デ
ータ転送に関連するバイト・イネーブル情報の8ビット
を評価する。8ビットは、単一データ・サイクルで転送
された8バイトのどれが有効データを含むかを示す。6
4ビット・モードでは、データ論理回路からのアドレス
情報(A/D[2])は、スタート・ポインタを生成す
るために要求されない。32ビット・モードでは、各デ
ータ・サイクルで転送された4データ・バイトに関連し
たバイト・イネーブル情報の4ビットは、最後のデータ
・サイクルまでアサートされうる。最後のデータ・サイ
クルで、有効データに関連したビットだけがイニシエー
タ装置によってアサートされる。ポインタ発生器202
は、最終データ・サイクルまでイニシエータ装置から受
け取ったバイト・イネーブルを監視し続ける。ポインタ
発生器は、上記したようにバイト・イネーブルズ及びア
ドレスに基づき各サイクルでスタート及びエンド・ポイ
ンタを算出する。転送の終了は、別に生成され、かつポ
インタ発生器論理回路へ行かない。最後のデータ・フェ
ーズで全てのバイトが有効であったならば、p2s_v
a_ep[2:0]は、7に等しく、p2s_dd[6
3:0]の最上位バイトが有効であることを示す。
【0015】ポインタ発生器は、最終バイト・イネーブ
ル情報に基づき処理するためにキャッシュ論理回路11
5にエンド・ポインタ信号(p2s_va_ep)を発
生する。特に、データ転送の終了により、指令/バイト
・イネーブル・ライン171上に転送されたバイト・イ
ネーブルズは、この最終データ・バイト転送に関連した
バイト・イネーブル情報を読取りかつ4バイト(32ビ
ット・モード)または8バイト(64ビット・モード)
転送に関連したデータの最後の有効バイトを決定する。
ポインタ発生器202は、バイト・イネーブル情報から
最後の有効データ位置を分解しかつキャッシュ論理回路
115にエンド・ポインタ信号(p2s_va_ep)
を発行する。p2s_va_epエンド・ポイント信号
は、インターフェイス・コントローラ150によって個
別に生成される“転送の終了”信号p2s_eot_に
よって確証される。キャッシュ論理回路115は、デー
タ・ブロックにおける第1のデータ転送に関連したスタ
ート・ポインタ情報(p2s_va_sp)及びデータ
・ブロックで転送された最終有効バイトに関連したエン
ド・ポインタ情報(p2s_va_ep)を利用しかつ
キャッシュ・タグ論理回路にキャッシュ・ライン書込み
に関連した有効データの第1及び最終バイトを示す。
【0016】本発明のアドレス論理回路145は、図3
に示される。アドレス論理回路145は、入力レジスタ
300及びバッファ304を含む。データ転送のアドレ
ス・サイクルの間中、アドレス論理回路145は、アド
レス/データ・バス172を介して入力レジスタ300
の中にイニシエータ装置120からアドレス情報を読取
る。バッファ304は、データ・サイクルの間中にバイ
ト・イネーブル論理回路130によって利用されるアド
レス・ラインA/D[2]に関連したアドレス情報を保
持するために利用される。入力レジスタ300に記憶さ
れるアドレス情報は、アドレス・サイクルの間中にキャ
ッシュ論理回路115に転送される。キャッシュ論理回
路115は、アドレス論理回路145から転送された所
与のアドレスに対するキャッシュ・ヒット及びミスを決
定する。入力アドレス情報をキャッシュ・バッファ11
0に関連したキャッシュ・タグ112に記憶されたアド
レス情報と比較することによりそのようなアドレス・ヒ
ットを決定する方法は、この分野で知られている。他の
論理回路(図示省略)は、同様な方法でホストの主メモ
リ・アドレス空間におけるヒットを決定する。明確化の
目的のために、これらの方法は、この開示の一部として
示さない。本発明は、キャッシュ・バッファとイニシエ
ータ装置との間のインターフェイスに指図され、従っ
て、アドレス分解処理の詳細な説明は、本発明の範疇外
である。キャッシュ書込みの分解により、書込み肯定応
答信号は、キャッシュ論理回路115からインターフェ
イス・コントローラ150に転送される。
【0017】ここで図4を参照すると、本発明の一実施
例によるデータ論理回路140が示されている。データ
論理回路140は、入力レジスタ400及びパリティ発
生器402を備えている。入力レジスタ400は、アド
レス及びデータ・ライン172を介してイニシエータ装
置120からデータ・サイクルの間中にデータ情報を受
け取る。一実施例では、入力レジスタは、入力データ及
びバイト・イネーブルズをバッファしかつデータ論理回
路からキャッシュ・バッファ110への転送のタイミン
グを同期すべくサーブする72ビット・バッファであ
る。データ・サイクルの間中に、パリティ発生器402
は、入力レジスタ400からキャッシュ・バッファ11
0に転送されたデータのパリティを計算する。更に、パ
リティ発生器402は、イニシエータ装置120からパ
リティ・ライン173を介してパリティ情報を受け取
る。パリティ発生器402は、導出されたパリティ情報
をパリティ・ライン173を介してイニシエータ装置か
ら受け取ったパリティ情報と比較する。信号PARは、
A/D[31:0]及びC/BE#[3:0]に対する
パリティ情報を含み、信号PAR64は、A/D[6
3:32]及びC/BE#[7:4]に対するパリティ
情報を含む。パリティ・エラーが生じた場合には、パリ
ティ発生器402は、対応キャッシュ・データ・ライン
に関連したキャッシュ・パリティ・エラー・バッファ1
14並びにPCIバス・エラー・ライン174を介して
イニシエータ装置へ戻るエラー信号の両方への送信に対
するエラー信号を生成する。
【0018】図5、図6及び図7は、アドレス分解装置
160、インターフェイス・コントローラ150、及び
キャッシュ・コントローラ116に関連した状態マシー
ン図を示す。まず図5を参照すると、アドレス分解装置
(ARU)160は、イニシエータ装置がPCIバス1
70上に有効指令及びアドレス情報をアサートしたこと
を示しているFRAME#信号ライン175上に起動信
号を受け取るまでIDLE状態に置かれる。FRAME
#信号のアサーションにより、ARU160は、ADD
RESS RESOLVE状態にトランザクションし
て、ホスト190及び/又はキャッシュ論理回路115
により指令及びアドレス情報の分解を待つ。一度有効ア
ドレスが分解されかつキャッシュ・コントローラ116
によって受け入れられたならば、s2p_ack_信号
をアサートすることによって肯定応答をARU160に
知らせる。次いでアドレス分解装置160は、TRAN
SFER状態に進みかつPCIバス170上で転送を行
うためにインターフェイス・コントローラに信号を送
る。1サイクル後でアドレス分解装置160は、次のP
CIトランザクションの開始を待つためにIDLE状態
に戻る。
【0019】図6を参照すると、インターフェイス・コ
ントローラ(IC)150は、イニシエータ装置120
からのキャッシュ書込み要求を示しているアドレス分解
装置160から起動信号を受け取るまでIDLE状態に
留まる。この信号により、IC150は、DATA状態
に遷移して、それは、イニシエータ装置がFRAME#
をディアサートしかつIRDY#をアサートすることに
よりトランザクションの終了を知らせるまでそのまま留
まる。この条件で、IC150は、1クロック・サイク
ルに対してTERMINATE状態に行き続いて次のト
ランザクションを待つためにIDLE状態に戻る。イニ
シエータ装置が同じクロック・エッジでFRAME#及
びIRDY#の両方をディアサートするときに一つの他
の終了型(termination type)が生ずる。この不法条件
は、ERROR状態次いでTERMINATE状態に進
みIDLE状態に戻ることによって安全に処理される。
IC150は、出力信号の二つのセットを介してPCI
イニシエータ装置からローカル・キャッシュ・バッファ
へのデータの転送を制御する。PCI信号は、DEVS
EL#(176)、ACK64#(178)及びTRD
Y#(180)である。ローカル・キャッシュ・バッフ
ァ・インターフェイス信号は、p2s_las_、p2
s_wrs_、p2s_eot_、p2s_eol_、
p2s_wes_、p2s_werr_である。
【0020】DEVSEL#は、それがIDLEからA
DDRESS RESOLVE状態に転送するときにA
RU160によってまずアサートされる。それは、起動
信号の受信によりIC150によってアサートされたま
ま保持される。イニシエータがFRAME#と一緒にR
EQ64#をアサートすることによって64ビット幅ト
ランザクションを要求するならば、ACK64#は、D
EVSEL#に同じ方法で駆動される。IC150がA
RU160から起動信号を受け取ったときに、それは、
PCIイニシエータからデータを受け取るためのその準
備ができていることを示すべくTRDY#をアサートす
る。TRDY#は、イニシエータ装置がFRAME#を
ディアサートすることにより転送の終了を示すまでアサ
ートされたままで残る。P2s_las_、ライン・ア
ドレス・ストローブは、データがp2s_ddバスの上
位32ビット上に転送されるときにはいつでもまたはp
2s_ddバス上に転送されたデータがトランザクショ
ンの最後のデータであるときにはいつでもアサートされ
る。P2s_wrs_、書込みストローブは、TRDY
#及びIRDY#の両方がアサートされた後1クロック
・サイクルで常にアサートされる。
【0021】転送の終了(p2s_eot_)またはラ
インの終了(p2s_eol_)信号は、アサートされ
たIRDY#及びTRDY#の両方でFRAME#がデ
ィアサートされた後1サイクルでトランザクション毎に
一度アサートされる。トランザクションの最後のデータ
のアドレスが64バイト・アドレス範囲(ここでは、
“ライン(line)”として知られる)の上位8バイト内で
あったならば、p2s_eol_信号は、アサートされ
る;さもなければ、p2s_eot_信号がアサートさ
れる。書込みエラー・ストローブ、p2s_wes_
は、1クロック・サイクルだけ遅れた、p2s_wrs
_をミラーする。書込みエラー・ストローブ、p2s_
wes_は、正しくない(間違った)パリティがPCI
バス上で検出されたときにはいつでもアサートされる、
書込みエラー信号、p2s_wrr_を調整する(条件
付ける)。ある場合には、書込みエラー・ストローブ
は、転送の終了信号の後にアサートすることができると
いうことに注目する。ここで図7を参照すると、キャッ
シュ・コントローラの状態図が示されている。キャッシ
ュ・コントローラは、キャッシュ・サブシステムの一部
であり、かつ本発明のインターフェイスの一部を形成し
ないが、状態図は、本発明のインターフェイスとキャッ
シュ・サブシステムとの間で生ずるハンド・シェーキン
グ動作をより明確に与えるために表されている。キャッ
シュ・コントローラ116は、アドレス及び指令がイニ
シエータ装置120から受信されるまでIDLE状態で
待つ。その後、キャッシュ・コントローラ116は、A
DDRESS RESOLVE状態に遷移して、キャッ
シュ・ヒットまたはミスが生ずるかどうかを見るために
待つ。
【0022】キャッシュ・ミスが検出された(例えば、
アドレス要求に関連したメモリ空間がこのキャッシュへ
の書込みを示さない)ならば、キャッシュ・コントロー
ラは、IDLE状態に戻るように遷移する。キャッシュ
・ヒットが検出されたならば、キャッシュ・コントロー
ラは、アクセスされるべきキャッシュ・ラインがダーテ
ィ(dirty) かまたはクリーン(clean) かを決定するため
にキャッシュ・タグ・データを利用する。ダーティと
は、有効データがキャッシュに記憶されかつスタート・
ポインタが次に利用可能なバイトをポインティングして
いないことを意味する。これは、キャッシュ・エントリ
を用いることができる前にデータがメモリに書き戻され
ることを要求する。キャッシュ・ラインがダーティなら
ば、キャッシュ・コントローラ116は、FLUSH状
態に遷移し、かつキャッシュ・ラインがホスト主メモリ
に書き戻される。キャッシュ・ラインがダーティでない
ならば、キャッシュ・コントローラ116は、CACH
E WRITE状態に遷移する。CACHE WRIT
E状態では、キャッシュ書込みの準備においてタグ保守
がキャッシュ・コントローラによって実行される。
【0023】キャッシュ・タグ保守の終了により、キャ
ッシュ・コントローラ116は、SERVE WRIT
E状態に遷移する。SERVE WRITE状態では、
キャッシュ・バッファ110への書込みは、キャッシュ
書込みストローブ及びライン・アドレス・ストローブの
受信によりイネーブルされる。データ転送コントローラ
からの書込みエラー・ストローブの受信により、キャッ
シュ・コントローラは、キャッシュ・パリティ情報を受
信するためにキャッシュ・パリティ・バッファをイネー
ブルする。キャッシュ・コントローラは、データ転送コ
ントローラからの送信終了の信号(p2s_eot)ま
たはライン終了の信号(p2s_eol)の受信までS
ERVE WRITE状態に留まる。送信終了の信号
は、通常またはエラー終了シーケンスの結果としてFR
AME信号のディアサーションに応じて生成される。ラ
イン終了の信号は、現行書込み処理の結果としてキャッ
シュの全ラインが充たされたことを示すためにデータ転
送コントローラによって生成される。従って、キャッシ
ュ・ラインは、主メモリにフラッシュされうる。ライン
終了の信号が受信されたならば、キャッシュ・コントロ
ーラは、この完全なラインをホスト主メモリに書込むた
めにFLUSH状態に遷移する。逆に、送信終了の信号
が受信されたならば、キャッシュ・コントローラは、I
DLE状態の戻るように遷移する。
【0024】図8は、バイト−位置合わせされたアドレ
スへの32ビット、単一データ・フェーズ書込みを示
す。イニシエータ装置120は、FRAME#信号をア
サートすることによってトランザクションを開始しかつ
サイクル0の間中にC/BE#及びA/D上の指令及び
アドレス情報をそれぞれアサートし、次いでFRAME
#をディアサートし、IRDY#をアサートし、かつサ
イクル1において書込みデータ及びバイト・イネーブル
を駆動する。PCIインターフェイス100は、上述し
たようにホスト及びローカル・キャッシュ・バッファに
よって分解されるべき指令アドレスを与える。ローカル
・キャッシュ・コントローラは、s2p_ack_信号
との転送の準備ができていることを知らせる(ここで
は、サイクル1で示す)。サイクル2では、PCIイン
ターフェイス100は、DEVEL#をアサートして示
されている(それは、これを行うためにFRAME#ア
サーションの後1から4サイクルまで有する)。また、
サイクル2では、PCIインターフェイスは、p2s_
va_sp上にスタート・ポインタ値を駆動しかつIC
150は、TRDY#をアサートしかつDATA状態を
エンターする。インターフェイスにわたるデータ転送
は、IC150でサイクル3において生じてp2s_l
as_、p2s_wrs_をアサートしかつA/D[3
1:0]及びC/BE#[3:0]からの値でp2s_
dd[31:0]及びp2s_be[3:0]をそれぞ
れ駆動する。これは、単一サイクル転送なので、転送終
了は、p2s_eotをアサートしかつエンド・ポイン
タ値をp2s_va_ep上に駆動することによって知
らされる。一度データ転送の後でサイクルされると、サ
イクル4では、p2s_wes_は、p2s_werr
_上のエラー値でストローブする。図9は、32ビット
・モードの後に64ビット・モードで同じアクセスが続
く8バイト境界に位置合わせされたアドレスへの8バイ
ト書込みのタイミング図である。イニシエータ装置は、
サイクル0でアドレス・フェーズ及びサイクル1で二つ
のデータ・フェーズの第1のものを開始する。また、サ
イクル1では、ローカル・キャッシュ・コントローラ
は、それがp2s_ack_をアサートすることにより
アドレス分解を終了したことを知らせる。サイクル2で
は、IC150は、DATA状態へ行きかつPCIバス
上にデータ転送されるべきTRDY#をアサートする。
スタート・ポインタは、p2s_va_sp上でも駆動
される。後続のサイクル、サイクル3の間中、IC15
0は、p2s_wrs_をアサートすることによりイン
ターフェイスにわたり第1のデータを転送する。これ
は、p2s_ddの下半分の4バイト転送であるので、
p2s_las_は、今回アサートされない。p2s_
dd[31:0]及びp2s_be[3:0]は、A/
D[31:0]からの値でこのサイクルにおいてかつサ
イクル2でC/BE#[3:0]からの値で駆動され、
p2s_be[7:4]でハイにマスクされる。また、
第2及び最終PCIバス・データ・フェーズもサイクル
3で生じ、アサートされるIRDY#及びTRDY#の
両方及びディアサートされるFRAME#により示され
る。第2及び最終データ転送は、サイクル4でインター
フェイスをクロスしかつデータがp2s_ddの上半分
にあるので今回p2s_lasがアサートされる。特
に、p2s_dd[63:32]及びp2s_be
[7:4]は、A/D[31:0]からの値でこのサイ
クルにおいて及びC/BE#[3:0]からの値でサイ
クル3において駆動され、p2s_be[3:0]は、
ハイにマスクされる。それが最終データ転送であるので
p2s_eot_及びp2s_va_epも駆動され
る。書込みエラー・ストローブは、サイクル4及び5
で、二度アサートされ、それぞれの場合1サイクルでp
2s_wrs_を後続する。
【0025】64ビット・トランザクションは、アドレ
ス・フェーズにより続いて一データ・フェーズによりサ
イクル7で開始される。アドレスがサイクル8で分解さ
れた後、TRDY#は、サイクル9でアサートされかつ
IC150は、DATA状態に行く。サイクル9でのP
CIバス上でのデータ転送の後、p2s_las_及び
p2s_wrs_の両方は、先のサイクルにおいてA/
D[63:0]及びC/BE#[7:0]からの値で駆
動されるp2s_dd[63:0]及びp2s_be
[7:0]でサイクル10においてアサートされる。ま
たサイクル9では、p2s_eot_及びp2s_va
_ep上のエンド・ポインタも駆動され、最初のデータ
・フェーズが最後でもあることを示す。サイクル11で
p2s_wes_アサーションの1サイクルが存在し、
それは、またp2s_wrs_アサーションの後の1サ
イクルである。図10は、32ビット・モードの後に6
4ビット・モードで同じトランザクションが続く04h
のオフセットでのアドレスへの8バイト書込みを示して
いるタイミング図である。アドレス・フェーズは、サイ
クル0で生じかつサイクル1で始まる第1のデータ・フ
ェーズが後に続く。サイクル2では、スタート・ポイン
タは、p2s_va_sp上に駆動されかつこの場合に
は04hの値を有する。サイクル2におけるPCIバス
上の第1のデータ転送の後、データは、サイクル3でイ
ンターフェイスをクロスし、p2s_wrs_のアサー
ションにより知らされる。P2s_dd[63:32]
及びp2s_be[7:4]は、サイクル2においてA
/D[31:0]及びC/BE#[3:0]の値で駆動
され、p2s_be[3:0]でハイにマスクされる。
データの4バイトがデータ・バスの上半分に転送される
のでp2s_las_は、ライン・アドレスをストロー
ブするためにアサートされる。サイクル4における第2
のデータ転送に対して、p2s_dd[31:0]及び
p2s_be[3:0]は、サイクル3においてA/D
[31:0]及びC/BE#[3:0]の値で駆動さ
れ、p2s_be[7:4]でハイにマスクされる。P
2s_las_は、再びアサートされるが、今回はデー
タ・フェーズが最後であることによる。また、P2s_
eot_及びp2s_va_epは、サイクル4でも駆
動される。書込みエラー及び書込みエラー・ストローブ
信号は、書込みスレーブ・アサーションの後1サイクル
で、サイクル4及び5で駆動される。
【0026】64ビット・トランザクションのアドレス
・フェーズは、サイクル7で開始し、その後サイクル8
で第1のデータ・フェーズが続く。バイト・イネーブル
ズ、C/BE#[7:0]、からでのみ計算された、有
効スタート・ポインタは、サイクル9においてp2s_
va_sp上で駆動される。データの最初の4バイト
は、サイクル9におけるA/D[63:32]及びC/
BE#[7:0]の値で駆動されたp2s_dd[6
3:32]及びp2s_be[7:0]でサイクル10
においてインターフェイスをクロスする。データの最後
の4バイトは、サイクル10におけるA/D[31:
0]及びC/BE#[7:0]の値で駆動されたp2s
_dd[31:0]及びp2s_be[7:0]でサイ
クル11においてインターフェイスをクロスする。P2
s_las_は、データがp2s_ddの上半分に転送
されるでのサイクル10において及びそれがトランザク
ションの最終データ・フェーズであるのでサイクル11
において駆動される。また、P2s_eot_及びp2
s_va_epは、サイクル11で駆動される。書込み
エラー及び書込みエラー・ストローブ信号は、書込みス
レーブ・アサーションの後1サイクルで、サイクル11
及び12で駆動される。
【0027】図11は、32ビット・モードの後に64
ビット・モードで同じアクセスが続く00hのオフセッ
トでのアドレスへの16バイト書込み動作を示す。アド
レス及び第1のデータ・フェーズは、サイクル3でイン
ターフェイスをまずクロスするデータでそれぞれサイク
ル0及び1において開始する。サイクル3及び5におけ
る第1及び第3のデータ・フェーズに対して、p2s_
dd[31:0]及びp2s_be[3:0]は、サイ
クル2及び4における値A/D[31:0]及びC/B
E#[3:0]で駆動され、かつp2s_be[7:
4]は、ハイにマスクされる。サイクル4及び6におけ
る第2及び第4のデータ・フェーズに対して、p2s_
dd[63:32]及びp2s_be[7:4]は、サ
イクル3及び5における値A/D[31:0]及びC/
BE#[3:0]の値で駆動され、かつp2s_be
[3:0]は、ハイにマスクされる。P2s_las_
は、これらが2sp_ddの上半分において生ずるとき
に第2及び第4のデータ・フェーズに対してのみアサー
トされる。転送の終了は、p2s_eotのアサーショ
ンでサイクル6において生ずる。書込みエラー及び書込
みエラー・ストローブ信号は、サイクル4からサイクル
7を通して駆動され、書込みストローブから1サイクル
遅れる。
【0028】64ビット・トランザクションは、サイク
ル10で始まる第1のデータ・フェーズでサイクル9に
おいて開始する。データは、サイクル11においてA/
D[63:0]及びC/BE#[7:0]で駆動される
p2s_dd[63:0]及びp2s_be[7:0]
で、サイクル12においてインターフェイスをクロスす
る。ライン・アドレス・ストローブ及び書込みストロー
ブの両方は、データが各クロック・サイクルで全ての8
バイト・レーン上に書込まれるのでサイクル12及び1
3における第1及び第2のデータ・フェーズに対してア
サートされる。第2のデータ転送は、最後(サイクル1
3)でありかつp2s_eot_によって知らされる。
書込みエラー及び書込みエラー・ストローブ信号は、サ
イクル13及び14において駆動され、書込みストロー
ブから1サイクル遅延される。本発明は、少数の特定な
実施例を参照して説明されたが、記載は、本発明の説明
のためであり本発明を限定するものと解釈されるべきで
はない。種々の変更が、特許請求の範囲によって画定さ
れる本発明の真の精神及び範疇から逸脱することなく当
業者に生起されうる。
【0029】
【発明の効果】本発明のインターフェイスは、イニシエ
ータ装置とキャッシュ・バッファ、キャッシュ・コント
ローラ、及び関連主メモリを有しているホストとの間で
バイト・レベル・データを転送するためのインターフェ
イスであって、データ・トランザクションのアドレス・
サイクルの間中にイニシエータ装置からそれぞれが関連
アドレスを有する書込み指令を受け取りかつ復号する指
令処理論理回路と、アドレスに関連付けられたデータ・
サイクルの間中にデータを受け取りかつキャッシュ・バ
ッファにデータを転送するデータ論理回路と、復号され
た書込み指令及びアドレスに応じてイニシエータ装置に
肯定応答信号を送信し、インターフェイス・コントロー
ラにより肯定応答信号の生成の後少なくとも1クロック
・サイクルでキャッシュ・バッファの書込みを起動し、
キャッシュ・バッファの書込みの間中にキャッシュ・ラ
インの終りに到達することによりキャッシュ・コントロ
ーラにキャッシュ・コントローラにより全てのキャッシ
ュ・ラインの主メモリにキャッシュ・ライン・フラッシ
ュを起動するライン終了の信号を送信するインターフェ
イス・コントローラとを備えているので、バス・アーキ
テクチャが企図したフレキシビリティを犠牲にすること
なくPCIバス高速ケイパビリティを維持するローカル
・キャッシュ・バッファとPCIバス・コントローラと
の間にインターフェイスを供給することができ、本発明
のインターフェイスは、32または64ビット動作の両
方及びPCIバス標準に供給されるような種々の待機状
態及び遅延パリティ保護を許容することができ、更に、
全キャッシュ・ラインの書込みによりキャッシュ・バッ
ファからホストへの情報の均等ブロック転送を許容する
ことができる。
【0030】本発明の方法は、イニシエータ装置から標
準バスを介してキャッシュ・バッファ及び関連主メモリ
を有しているホストにデータを書込む方法であり、ホス
ト・キャッシュ・バッファがインターフェイスを介して
標準バスに接続される、方法であって、標準バス上のイ
ニシエータにより書込み指令及び主メモリに関連したア
ドレスを発行し、標準バス上にデータ及びバイト・イネ
ーブル情報を少なくとも1クロック・サイクル後で発行
し、書込み指令及びアドレスを分解し、かつ書込み指令
の受け取りをイニシエータ装置に肯定応答し、インター
フェイスがデータ及びバイト・イネーブル情報を読取る
準備ができていることを示すインターフェイスにより準
備信号を発行し、バスからデータ及びバイト・イネーブ
ル情報を読取り、少なくとも1クロック・サイクル後
で、アドレス及びバイト・イネーブル情報によって指定
されたキャッシュ・バッファのキャッシュ・ラインの部
分でデータを書込み、データ書込み段階がキャッシュ・
バッファの書込みの間中にキャッシュ・ラインの終了に
到達したときにキャッシュ・コントローラに知らせ、か
つ主メモリにフル・キャッシュ・ラインをフラッシュす
る段階を具備するので、バス・アーキテクチャが企図し
たフレキシビリティを犠牲にすることなくPCIバス高
速ケイパビリティを維持するローカル・キャッシュ・バ
ッファとPCIバス・コントローラとの間にインターフ
ェイスを供給することができ、インターフェイスは、3
2または64ビット動作の両方及びPCIバス標準に供
給されるような種々の待機状態及び遅延パリティ保護を
許容することができ、更に、全キャッシュ・ラインの書
込みによりキャッシュ・バッファからホストへの情報の
均等ブロック転送を許容することができる。
【図面の簡単な説明】
【図1】本発明のインターフェイス・システムのブロッ
ク図である。
【図2】本発明の一実施例によるバイト・イネーブル論
理回路のブロック図である。
【図3】本発明の一実施例によるアドレス論理回路のブ
ロック図である。
【図4】本発明の一実施例によるデータ論理回路のブロ
ック図である。
【図5】本発明の一実施例によるアドレス分解装置の状
態図である。
【図6】本発明の一実施例によるインターフェイス・コ
ントローラの状態図である。
【図7】本発明の一実施例によるキャッシュ・コントロ
ーラの状態図である。
【図8】単一データ・フェーズ書込み動作のタイミング
図である。
【図9】32及び64ビット・モードにおける8バイト
書込み動作のタイミング図である。
【図10】32及び64ビット・モードにおける04h
のオフセットを有する8バイト書込みのタイミング図で
ある。
【図11】32及び64ビット・モードにおける16バ
イト書込みのタイミング図である。
【符号の説明】
100 PCIインターフェイス・システム 110 ローカル・キャッシュ・バッファ 112 キャッシュ・タグ 114 キャッシュ・パリティ・エラー・バッファ 115 キャッシュ・タグ論理回路 116 キャッシュ・コントローラ 120 イニシエータ装置 130 バイト・イネーブル論理回路 140 データ論理回路 145 アドレス論理回路 148 指令処理論理回路 150 インターフェイス・コントローラ 160 アドレス分解装置 170 PCIバス 171 指令及びバイト・イネーブル・ライン 172 アドレス及びデータ・ライン 173 パリティ・ライン 174 パリティ・エラー・ライン 175 フレーム・インジケータ・ライン 176 装置セレクタ・ライン 177 64ビット要求ライン 178 通知ライン 179 イニシエータ準備完了ライン 180 ターゲット準備完了肯定応答ライン 190 ホスト

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 イニシエータ装置とキャッシュ・バッフ
    ァ、キャッシュ・コントローラ、及び関連主メモリを有
    しているホストとの間でバイト・レベル・データを転送
    するためのインターフェイスであって、 データ・トランザクションのアドレス・サイクルの間中
    に前記イニシエータ装置からそれぞれが関連アドレスを
    有する書込み指令を受け取りかつ復号する指令処理論理
    回路と、 前記アドレスに関連付けられたデータ・サイクルの間中
    にデータを受け取りかつ前記キャッシュ・バッファに前
    記データを転送するデータ論理回路と、 前記復号された書込み指令及び前記アドレスに応じて前
    記イニシエータ装置に肯定応答信号を送信し、前記イン
    ターフェイス・コントローラにより前記肯定応答信号の
    生成の後少なくとも1クロック・サイクルで前記キャッ
    シュ・バッファの書込みを起動し、前記キャッシュ・バ
    ッファの前記書込みの間中にキャッシュ・ラインの終り
    に到達することにより前記キャッシュ・コントローラに
    前記キャッシュ・コントローラにより前記全てのキャッ
    シュ・ラインの前記主メモリにキャッシュ・ライン・フ
    ラッシュを起動するライン終了の信号を送信するインタ
    ーフェイス・コントローラとを備えていることを特徴と
    するインターフェイス。
  2. 【請求項2】 前記データ論理回路は、受け取ったデー
    タのパリティを検査し、前記イニシエータ装置にパリテ
    ィ・エラーを報告し、かつ前記データが前記キャッシュ
    ・バッファに書込まれた後少なくとも1クロック・サイ
    クルで前記キャッシュ・バッファにキャッシュ・パリテ
    ィ情報を書込むパリティ発生器を含むことを特徴とする
    請求項1に記載のインターフェイス。
  3. 【請求項3】 有効データ・バイトが記憶される前記ア
    ドレスから前記キャッシュ・ラインにおけるオフセット
    を決定するバイト・イネーブル論理回路を更に含むこと
    を特徴とする請求項1に記載のインターフェイス。
  4. 【請求項4】 イニシエータ装置から標準バスを介して
    キャッシュ・バッファ及び関連主メモリを有しているホ
    ストにデータを書込む方法であり、前記ホスト・キャッ
    シュ・バッファが前記インターフェイスを介して前記標
    準バスに接続される、方法であって、 前記標準バス上の前記イニシエータにより書込み指令及
    び前記主メモリに関連したアドレスを発行し、 前記標準バス上にデータ及びバイト・イネーブル情報を
    少なくとも1クロック・サイクル後で発行し、 前記書込み指令及び前記アドレスを分解し、かつ前記書
    込み指令の受け取りを前記イニシエータ装置に肯定応答
    し、 前記インターフェイスが前記データ及びバイト・イネー
    ブル情報を読取る準備ができていることを示す前記イン
    ターフェイスにより準備信号を発行し、 前記バスから前記データ及びバイト・イネーブル情報を
    読取り、 少なくとも1クロック・サイクル後で、前記アドレス及
    び前記バイト・イネーブル情報によって指定された前記
    キャッシュ・バッファのキャッシュ・ラインの部分で前
    記データを書込み、 前記データ書込み段階が前記キャッシュ・バッファの前
    記書込みの間中に前記キャッシュ・ラインの終了に到達
    したときに前記キャッシュ・コントローラに知らせ、か
    つ前記主メモリに前記フル・キャッシュ・ラインをフラ
    ッシュする段階を具備することを特徴とする方法。
  5. 【請求項5】 前記キャッシュ・バッファへの前記書込
    みの間中に前記データのパリティを算出し、 前記データが転送された後1クロック・サイクルで前記
    イニシエータ装置から前記インターフェイスにパリティ
    情報を送信し、 前記算出されたパリティ情報が前記イニシエータ装置に
    よって送信された前記パリティ情報に等しいことを確認
    し、 前記データが前記キャッシュ・バッファに書込まれた後
    少なくとも1クロック・サイクルでパリティ・データを
    書込む段階を更に具備することを特徴とする請求項4に
    記載の方法。
  6. 【請求項6】 有効データ・バイトが記憶される前記ア
    ドレスから前記キャッシュ・ラインのオフセットを決定
    する段階を更に具備することを特徴とする請求項4に記
    載の方法。
JP8209598A 1996-02-28 1996-08-08 ローカル・キャッシュ・バッファへの並列共通バスのための高速フレキシブル・スレーブ・インターフェイス Pending JPH09237220A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/608,115 US5761707A (en) 1996-02-28 1996-02-28 High speed flexible slave interface for parallel common bus to local cache buffer
US08/608115 1996-02-28

Publications (1)

Publication Number Publication Date
JPH09237220A true JPH09237220A (ja) 1997-09-09

Family

ID=24435101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8209598A Pending JPH09237220A (ja) 1996-02-28 1996-08-08 ローカル・キャッシュ・バッファへの並列共通バスのための高速フレキシブル・スレーブ・インターフェイス

Country Status (4)

Country Link
US (1) US5761707A (ja)
EP (1) EP0793180B1 (ja)
JP (1) JPH09237220A (ja)
DE (1) DE69632450T2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134668A (en) 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6163849A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6122758A (en) 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6163853A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6247079B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6269412B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Apparatus for recording information system events
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US5987554A (en) 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6138179A (en) 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6154835A (en) 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6279081B1 (en) 1998-12-22 2001-08-21 Hewlett-Packard Company System and method for performing memory fetches for an ATM card
US7366829B1 (en) 2004-06-30 2008-04-29 Sun Microsystems, Inc. TLB tag parity checking without CAM read
US7571284B1 (en) 2004-06-30 2009-08-04 Sun Microsystems, Inc. Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7543132B1 (en) 2004-06-30 2009-06-02 Sun Microsystems, Inc. Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes
US7519796B1 (en) 2004-06-30 2009-04-14 Sun Microsystems, Inc. Efficient utilization of a store buffer using counters
US7929577B2 (en) * 2005-10-13 2011-04-19 Via Technologies, Inc. Method and apparatus for packet error detection
TWI290284B (en) * 2005-10-13 2007-11-21 Via Tech Inc Method and electronic device of packet error detection on PCI express bus link
WO2012098435A1 (en) * 2011-01-21 2012-07-26 Freescale Semiconductor, Inc. Integrated circuit device and method for calculating a predicate value
FR2999773B1 (fr) * 2012-12-13 2015-01-30 Kalray Systeme de regroupement de donnees pour ameliorer le debit d'ecriture dans une memoire dynamique

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581727A (en) * 1993-03-22 1996-12-03 Compaq Computer Corporation Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control
US5479641A (en) * 1993-03-24 1995-12-26 Intel Corporation Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
US5551006A (en) * 1993-09-30 1996-08-27 Intel Corporation Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
GB2286910B (en) * 1994-02-24 1998-11-25 Intel Corp Apparatus and method for prefetching data to load buffers in a bridge between two buses in a computer

Also Published As

Publication number Publication date
EP0793180A2 (en) 1997-09-03
DE69632450D1 (de) 2004-06-17
DE69632450T2 (de) 2005-05-12
EP0793180B1 (en) 2004-05-12
EP0793180A3 (en) 1999-12-22
US5761707A (en) 1998-06-02

Similar Documents

Publication Publication Date Title
JPH09237220A (ja) ローカル・キャッシュ・バッファへの並列共通バスのための高速フレキシブル・スレーブ・インターフェイス
US5644788A (en) Burst transfers using an ascending or descending only burst ordering
EP0392657B1 (en) System providing cache coherent direct memory access between dissimilar bus systems
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
EP0664030B1 (en) Double buffering operations between the memory bus and the expansion bus of a computer system
EP0694849B1 (en) Method for performing bus transactions in a computer system and computer system
US4843542A (en) Virtual memory cache for use in multi-processing systems
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US6336159B1 (en) Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
JP2571673B2 (ja) 多重化バスを有する情報処理システムでバック・ツー・バック・データ転送を提供する方法および装置
JP2505115B2 (ja) システム・バスと周辺バスの間でのデ―タ転送を最適化する複数バス情報処理システム用のバス間ブリッジ
US5778431A (en) System and apparatus for partially flushing cache memory
JP2003518693A (ja) クアド・ポンプ・バス・アーキテクチャおよびプロトコル
WO1994008297A1 (en) Method and apparatus for concurrency of bus operations
WO1994008297A9 (en) Method and apparatus for concurrency of bus operations
US5479636A (en) Concurrent cache line replacement method and apparatus in microprocessor system with write-back cache memory
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US5974497A (en) Computer with cache-line buffers for storing prefetched data for a misaligned memory access
US5903738A (en) Method and apparatus for performing bus transactions in a computer system
EP0784278B1 (en) Interface architecture for connection to a peripheral component interconnect bus
US5860113A (en) System for using a dirty bit with a cache memory
JP4097883B2 (ja) データ転送装置および方法
US5802323A (en) Transparent burst access to data having a portion residing in cache and a portion residing in memory
US5768558A (en) Identification of the distinction between the beginning of a new write back cycle and an ongoing write cycle
JPH06222994A (ja) キャッシュメモリシステム