第 6 章 バス・サイクル
6.6 特殊バス・サイクル
AMD-K6
プロセッサは、ストップ・グラント、フラッシュ・アクノリッジ、キャッシュ・ライトバック・インバリデーション、ホルト、キャシュ・インバリデーション、および シャットダウン・サイクルを含む特殊バス・サイクルをドライブする。すべての特 殊サイクルの間は、
D/C#=0
、M/IO#=0
で、またW/R#=1
である。BE[7:0]#
とA[31:3]
をドライブし、表24
に示すように、特殊サイクル間の区別化を行う。シス テム・ロジックは全プロセッサ特殊サイクルに応答してBRDY#
を戻さなければ ならない。表
24.
特殊バス・サイクル対応エンコーディングBE[7:0]# A[4:3]* Special Bus Cycle Cause FBh 10b Stop Grant STPCLK# sampled asserted EFh 00b Flush Acknowledge FLUSH# sampled asserted
F7h 00b Writeback WBINVD instruction
FBh 00b Halt HLT instruction
FDh 00b Flush INVD,WBINVD instruction
FEh 00b Shutdown Triple fault
Note:
* A[31:5] = 0
基本特殊バス・サイクル
図
62
に、基本特殊バス・サイクルを示す。プロセッサは、ADS#
をアサートしたと 同じクロック・エッジから、D/C#=0
、M/IO#=0
およびW/R#=1
をドライブする。この例では、
BE[7:0]#=FBh
およびA[31:3]=0000_0000h
であり、したがって、この特殊バス・サイクルは、ホルト特殊サイクルである(表
24
参照)。ホルト特殊 サイクルは、プロセッサがHLT
命令を実行した後に生成される。アサートされた状態で
FLUSH#
をサンプリングした場合、プロセッサはモディ ファイ・ステートにあるデータ・キャッシュ・ラインをすべてライトバックし、命令 およびデータ・キャッシュ内の全ラインを無効化(Invalidate
)し、次いでフラッ シュ・アクノリッジ特殊サイクルをドライブする。Halt Cycle
A[4:3] = 00b FBh CLK
A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
BRDY#
図
62.
基本特殊バス・サイクル(ホルト・サイクル)シャットダウン・サイクル
図
63
で、シャットダウン(トリプル・フォールト)は波形の前半分で発生し、これに 続いてシャットダウン特殊サイクルが後半分で発生する。プロセッサは、ダブル・フォールト(
-INT8
)をハンドリングする間に割り込みまたは例外が発生した場 合にシャットダウンに入るが、この事態はトリプル・フォールトとして認識される。トリプル・フォールトに遭遇すると、プロセッサはバス上でのアクティビティを停 止し、シャットダウン特殊バス・サイクル(
BE[7:0]#=FEh
)を生成する。プロセッサをシャットダウン状態から復旧させるためには、システム・ロジックが
NMI
、INIT
、RESET
またはSMI#
をアサートしなければならない。Shutdown Occurs
(Triple Fault) Shutdown Special Cycle CLK
A[31:3]
BE[7:0]#
ADS#
LOCK#
M/IO#
D/C#
W/R#
D[63:0]
KEN#
BRDY#
A[4:3] = 00b FEh
図
63.
シャットダウン・サイクルストップ
-
グラント&ストップ-
クロック・ステート図
64
および図65
は、プロセッサが通常実行状態からストップ−グラント・ステー トへ、次いでストップ-
クロック・ステートへ遷移し、またストップ-
グラント・ステー トへ戻り、最終的に通常実行状態へ戻る過程を示す。一連の遷移は、プロセッサ がアサートされてSTPCLK#
をサンプリングした時点から開始される。次の命令 リタイアメント・バウンダリでSTPCLK#
割り込みを認識した時点で、プロセッサは下記のアクションを、番号で示した順序で実行する。
1.
命令パイプラインのフラッシュ。2.
ペンディングおよび進行中の全バス・サイクルを完了。3.
ストップ・グラント特殊バス・サイクルを実行してSTPCLK#
のアサートをア クノリッジ。4.
ストップ・グラント特殊バス・サイクルのBRDY#
がアサートされてサンプリ ングされた後、およびEWBE#
がアサートされてサンプリングされた後、内 部クロックを停止。5.
システム・ロジックがバス・クロックCLK
を停止する場合はストップ・クロッ ク・ステートに移行(オプション)。STPCLK#
はレベル・センシティブな入力として各クロック・エッジでサンプリン グされるが、次の命令バウンダリまでは認識されない。システム・ロジックはこ の信号を同期・非同期のいずれでもドライブできる。非同期でアサートされた 場合、STPCLK#
は最低2
クロックのパルス幅にわたりアサートされなければな らない。STPCLK#
は認識されるまでアサートされたままでなければならない が、これはストップ・グラント特殊サイクルの完了により表示される。STPCLK# Sampled Asserted Stop Grant Special Cycle CLK
A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
CACHE#
STPCLK#
D[63:0]
KEN#
BRDY#
Stop Clock
A[4:3] = 10b FBh
図
64.
ストップ-
グラントおよびストップ-
クロック・モード(パート1
)Stop Grant State (Re-entered after PLL stabilization)
STPCLK# Sampled Stop Clock
CLK A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
CACHE#
STPCLK#
D[63:0]
KEN#
BRDY#
Negated
Normal
図
65.
ストップ-
グラントおよびストップ-
クロック・モード(パート2
)INIT
起動によるプロテクト・モードからリアル・モードへの遷移INIT
は一般に、I/O
ポートへの書き込みを伴うBIOS
割り込みに応答してアサー トされる。これは、しばしば、Ctrl-Alt-Del
キーボード入力への応答として現れ る。BIOS
はINIT
をアサートするポート(キーボード制御回路のポート64
など)へ書き込みを行う。
INIT
はまた、プロテクト・モードで拡張メモリへアクセスした 後リアル・モードへ戻らなければならない80286
ソフトウェアをサポートすべく 使用される。INIT
のアサートにより、プロセッサはパイプラインを空にし、大部分の内部ス テートを初期化し、RESET
後に使用される、同じ命令実行開始点であるアドレスFFFF_FFF0h
に分岐する。RESET
の場合とは異なり、プロセッサはキャッシュ内 容、浮動小数点ステート、MMX
ステート、モデル固有レジスタ(MSR
)、CR0
レジ スタのCD
およびNW
ビット、タイム・スタンプ・カウンタおよびその他の固有内 部リソースをそのまま保存する。図
66
に、OS
がI/O
ポートに書き込みを行い、その結果システム・ロジックがINIT
をアサートした場合の一例を示す。アサートされたINIT
のサンプリングは拡張 マイクロコード・シーケンスを開始し、このシーケンスはリセット・ロケーション であるFFFF_FFF0h
からのコード・フェッチで終端される。INIT
は各クロック・エッジでサンプリングされるが、次の命令バウンダリまでは認識されない。
I/O
ライト・サイクルの間、INIT
は、それがI/O
ライト命令とその次の命令の間のバウ ンダリで認識されるためには、BRDY#
がアサートされてサンプリングされる前 の最低3
クロック・エッジにわたりアサートされてサンプリングされなければな らない。同期でアサートされた場合、INIT
は最小1
クロックの間アサートできる。非同期でアサートされた場合、最低
2
クロックにわたりネゲートされており、さら に最低2
クロックのアサートがこれに後続しなければならない。Code Fetch
FFFF_FFF0 INIT Sampled Asserted
CLK A[31:3]
BE[7:0]#
ADS#
M/IO#
D/C#
W/R#
D[63:0]
KEN#
BRDY#
INIT
図
66.
INIT
起動によるプロテクト・モードからリアル・モードへの遷移第 7 章 パワーオン設定および初期化
パワーオン時には、システム・ロジックは
RESET
信号をアサートして、AMD-K6
プロセッサをリセットしなければならない。プロセッサがアサートされた状態でRESET
をサンプリングした場合、プロセッサは直ちに、パイプライン・キャッシュ、浮動小数点ステート、
MMX
ステート、および全レジスタを含む、全内部リソース および内部ステートをフラッシュし、初期化する。次いでプロセッサはアドレスFFFF_FFF0h
へジャンプし、命令の実行を開始する。7.1 RESET の立ち下がり遷移中にサンプリングされる信号
ドキュメント内
000
(ページ 176-185)