第 6 章 バス・サイクル
6.5 照会およびバス・アービトレーション・サイクル
AMD-K6
プロセッサは、内蔵型レベル1
・データ&命令キャッシュを装備してい る。キャッシュはそれぞれ32K
バイトで、2
ウエイ・セットアソーシエイティブであ る。共有(Shared
)メモリ・スペースにアクセスしようとする場合、システム・ロ ジックまたは他のバス・マスタ・デバイスは照会サイクルを開始することができ、キャッシュ/メモリの統一性を維持する。照会サイクルに応答してプロセッサは 照会アドレスを両キャッシュのキャッシュ・タグ・アドレスと比較し、必要な場合は キャッシュ・ラインの
MESI
ステートを更新し、メモリへのライトバックを行う。照会サイクルは
AHOLD
、BOFF#
またはHOLD
のアサートで開始できる。AHOLD
は照会サイクルのサポートに特化している。AHOLD
起動による照会サ イクルの間、プロセッサはただアドレス・バスをフロートさせているだけである。BOFF#
は、進行中のプロセッサ・サイクルをアボートするため、バスへのアクセ スは最も速く、一方AHOLD
およびHOLD
は、両方とも、進行中のバス・サイクル を完了させる。HOLD
起動による、およびBOFF#
起動による照会サイクルの 間、プロセッサは全バス・ドライビング信号をフロートさせる。ホールドおよびホールド・アクノリッジ・サイクル
システム・ロジックまたは別のバス・デバイスが
HOLD
をアサートし、照会サイク ルを開始したり、バスの全制御権を得ることもできる。AMD-K6
プロセッサが アサートされた状態でサンプリングする場合、同プロセッサは進行中のバス・サ イクルを完了させ、HLDA
をアサートし、バスの開放をアクノリッジする。プロ セッサは下記の信号を、HLDA
がアサートされた同じクロック・エッジでフロー トさせる。■
A[31:3]
■DP[7:0]
■
ADS#
■LOCK#
■
AP#
■M/IO#
■
BE[7:0]#
■PCD
■
CACHE#
■PWT
■
D[63:0]
■SCYC
アサートされた状態でサンプリングされたクロック・エッジの
1
つ後のクロック・エッジで出力をフロートさせる。システム・ロジックは、自身がバスの使用に必 要な間だけ、
HOLD
をアサートできる。プロセッサは各クロック・エッジでHOLD
をサンプリングするが、ロックト・サイクルの進行中サイクルまたはシーケンス が完了するまではHLDA
をアサートしない。ホールド・アクノリッジ・サイクル中、
HOLD
をネゲートされた状態でサンプリン グする場合、プロセッサは次のクロック・エッジからHLDA
をする。プロセッサは バス制御権を取り戻し、HLDA
がネゲートされた同じクロック・エッジからADS#
をアサートすることができる。
CLK A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
D[63:0]
HOLD HLDA BRDY#
図
51.
基本HOLD/HLDA
命令HOLD
起動による共有(Shared
)または専有ラインへの照会ヒット図
52
に、HOLD
起動による照会サイクルを示す。この例では、プロセッサはバー スト・メモリ・リード・サイクル中に、アサートされた状態でHOLD
をサンプリング する。プロセッサは現在のサイクルを完了し(予期された最後のBRDY#
がア サートされた状態でサンプリングされるまで)、HLDA
をアサートし、前述の通 り出力をフロートさせる。ホールド・アクノリッジ・サイクル内では、システム・ロジックは照会サイクルをド ライブし、
EADS#
をアサートし、これがA[31:5]
上で照会アドレスを有効化(
Validate
)する。HOLD
がネゲートされた状態でサンプリングされる前にEADS#
がアサートされた状態でサンプリングされる場合、プロセッサはそれを 有効(Valid
)照会サイクルとして認識する。図
52
では、プロセッサは、EADS#
がアサートされた状態でサンプリングされた クロック・エッジの後のクロック・エッジでHIT#
をアサートし、HITM#
をネゲート し、したがって現在の照会サイクルは共有(Shared
)または専有キャッシュ・ラ インをヒットすることになる。(プロセッサのデータまたは命令キャッシュ内の共 有(Shared
)および専有キャッシュ・ラインは、外部メモリ内のデータと同じ内容 である。)照会サイクル中、プロセッサはINV
をサンプリングして、プロセッサの 命令またはデータ・キャッシュ内で見つかった、アドレスされたキャッシュ・ライ ンが無効(Invalid
)ステートまたは共有(Shared
)ステートのいずれに遷移さ れるのかを決定する。この例では、プロセッサは、EADS#
でアサートされた状態 でINV
をサンプリングし、これがそのキャッシュ・ラインを無効化(Invalidate
)し ている。システム・ロジックは、
EADS#
がアサートされた状態でサンプリングされた同じ クロック・エッジからHOLD
をネゲートできる。プロセッサは、次の照会サイクル まで、同じステートでHIT#
のドライブを継続する。HITM#
はHIT#
がアサートさ れない限りアサートされない。Burst Memory Read Inquire CLK
A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
HIT#
HITM#
D[63:0]
KEN#
BRDY#
HOLD HLDA EADS#
INV
図
52.
HOLD
起動による共有(Shared
)または専有ラインへの照会ヒットHOLD
起動による修正ラインへの照会ヒット図
53
は、図52
と同じシーケンスを示すが、図53
では、照会サイクルは修正済み(
Modified
)ラインをヒットしており、プロセッサはHIT#
とHITM#
の両方をア サートする。この例では、プロセッサは照会サイクルの直後にライトバック・サイ クルを実行し、修正されたキャッシュ・ラインを外部メモリ(通常レベル2
キャッ シュまたはDRAM
)にアップデートする。プロセッサは、照会サイクル中にラッチ されたアドレス(A[31:5]
)を使用してライトバック・サイクルを実行する。プロ セッサはライトバック・サイクル中ずっとHITM#
をアサートし、ライトバックの予 期された最後のBRDY#
がアサートされた状態でサンプリングされた1
クロッ ク・エッジ後のクロック・エッジでHITM#
をネゲートする。照会サイクル中で
EADS#
をサンプリングする場合、プロセッサは同じくINV
をサ ンプリングして、照会サイクル後のキャッシュ・ラインMESI
ステートを決定する。照会サイクル中に
INV
がアサートされた状態でサンプリングされた場合、プロ セッサはそのライン(見つかった場合)を、その以前のステートに関係なく無効(
Invalid
)ステートに遷移させる。キャッシュ・ライン・インバリデーション・命令 はバス上では見えない。照会サイクル中にINV
がアサートされた状態でサンプ リングされ た 場 合 、プロセッサ は そ の ライン( 見 つ かった 場 合 )を 共 有(
Shared
)ステートに遷移させる。図53
では、プロセッサは照会サイクル中にア サートされた状態でINV
をサンプリングしている。HOLD
起動による照会サイクルでは、システム・ロジックは、EADS#
がアサート された状態でサンプリングされた同じクロック・エッジから、HOLD
をネゲートす ることができる。プロセッサは、EADS#
がアサートされた状態でサンプリングさ れたクロック・エッジの後のクロック・エッジでHIT#
およびHITM#
をドライブす る。Burst Memory Read Inquire Writeback Cycle CLK
A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
EADS#
HIT#
HITM#
D[63:0]
KEN#
BRDY#
HOLD HLDA
INV
図
53.
HOLD
起動による修正ラインへの照会ヒットAHOLD
起動による照会ミスシステムは
AHOLD
をアサートして、1
つ以上の照会サイクルを開始できる。照 会サイクル中にシステムがアドレス・バスをドライブできるようにするため、プロ セッサは、AHOLD
がアサートされた状態でサンプリングされたクロック・エッジ からA[31:3]
をフロートする。データ・バスおよびその他すべての制御およびス テータス信号は、引き続きプロセッサの制御下に置かれ、フロートされることは ない。この機能によって、AHOLD
がアサートされた状態でサンプリングされた 時点で進行中のバス・サイクルは、完了するまで継続できる。プロセッサは、AHOLD
がネゲートされた状態でサンプリングされたクロック・エッジから、アド レス・バスのドライブを再開する。図
54
では、プロセッサはメモリ・バースト・リード・サイクル中に、アサートされた 状態でAHOLD
をサンプリングしており、プロセッサは、AHOLD
がアサートされ てサンプリングされた同じクロック・エッジからアドレス・バスをフロートする。プロセッサは依然としてバスの制御を行っているが、予期された最後の
BRDY#
がアサートされてサンプリングされるまで現在のサイクルを完了する。照会サ イクル中、システム・ロジックは
A[31:5]
上の照会アドレスでEADS#
をドライブす る。プロセッサはアサートされた状態でEADS#
をサンプリングし、命令および データ両キャッシュ内で照会アドレスをそのタグ・アドレスと比較する。図54
で は、照会アドレスは、プロセッサ内でタグ・アドレスをミスしている(H I T #
とHITM#
が共にネゲートされている)。したがって、プロセッサは、AHOLD
をネ ゲートされた状態でサンプリングした時点で次のサイクルへ進む。(プロセッサ は、AHOLD
をネゲートした状態でサンプリングした同じクロック・エッジからADS#
をアサートして新規サイクルをドライブすることができる。)認識されるべき
A H O L D
起動による照会サイクルの場合、プロセッサは、EADS#
をアサートされた状態でサンプリングする前に、少なくとも2
つの連続 するクロックにわたり、アサートされた状態でAHOLD
をサンプリングしなけれ ばならない。プロセッサが照会サイクル中にアドレス・パリティ・エラーを検出す る場合、APCHK#
は1
クロック間アサートされる。システム・ロジックはこの信号 のアサーションに対し、適切に応答しなければならない。
ドキュメント内
000
(ページ 154-176)