• 検索結果がありません。

ライト・アロケート

ドキュメント内 000 (ページ 195-200)

第 8 章 キャッシュ構成

8.7 ライト・アロケート

ライト・アロケートは、イネーブルのときで、プロセッサがキャッシャブル・ライン に対しペンディング・メモリ・ライト・サイクルをもっていて、当該ラインがその時 点で

L1

データ・キャッシュに存在しない場合に発生する。この場合、プロセッサ

サイクルより実行時間が長くなるが、ライト・アロケートされたキャッシュ・ライン に対する後続のライト・サイクル・ヒットすることでパフォーマンスは向上する。

ソフトウェアの要素により、メモリ・アクセスは互いに隣接して発生する傾向をも つ(ローカリティの原理)。ライト・アロケートされたキャッシュ・ラインに対し、さ らにライト・ヒットする確率が高い。

AMD-K6

プロセッサがライト・アロケーションを実行するメカニズム

4

通りを下 記に示す。ライト・アロケートは、これらメカニズムのいずれか

1

つまたは

2

つ以 上のペンディング・ライトが、メモリのキャッシャブル領域に対して行われること を表示した時点で実行される。

キャッシャブル・ページへのライト

プロセッサがキャッシュ・ライン・フィルを実行するたびに、キャッシュ・ラインが 存在するページのアドレスは、キャッシャビリティ制御レジスタ(

CCR

)に保存さ れる。後続ライト・サイクルのページ・アドレスは、

CCR

に保存されたこのペー ジ・アドレスと比較される。

2

つのアドレスが等しければ、当該ページはすでに キャッシャブルであると判定されているため、ここでプロセッサはライト・アロ ケートを実行する。

プロセッサが、

CCR

に保存されたアドレスとは異なるページからキャッシュ・ラ イン・フィルを実行する場合、

CCR

は新規のページ・アドレスで更新される。

セクタへのライト

ペンディング・ライト・サイクルのアドレスは有効(

Valid

)なキャッシュ・セクタの タグ・アドレスと一致しているが、セクタ内のアドレスされたキャッシュ・ラインが 無効(

Invalid

)となっている場合(セクタ・ヒットであるが、キャッシュ・ライン・ミ スである場合)、プロセッサはライト・アロケートを実行する。当該ペンディング・

ライト・サイクルは、セクタ・ヒットによって少なくとも

1

つの有効(

Valid

)キャッ シュ・ラインがセクタ内に存在することを表示するものであるため、キャッシャ ブルであると判定される。セクタ内の

2

本のキャッシュ・ラインは、設計により、同 一ページ内にあることが保証されている。

ライト・アロケート・リミット

ライト・ハンドリング制御レジスタ(

WHCR

)は、

WCDE

ビット、ライト・アロケー ト・イネーブル・リミット(

WAELIM

)フィールド、ライト・アロケート・イネーブル

15-to-16M

バイト(

WAE15M

)ビットの

3

つのフィールドをもつ

MSR

である(図

7 1 0 6 3

Rese rved

WAELIM 8

0

W A E 1 5 M

Symbol Des cription Bits

9

Note:    Hardware RESET initialize s this MSR to all zeros.

WCD E Always program to 0 8 WAELIM Write Allocate Enable Limit 7–1 WAE15M Write Allocate Enable 15-to-16-Mbyte 0

69.

 ライト・ハンドリング制御レジスタ(

WHCR

WAELIM

のフィールド幅は

7

ビットである。このフィールドに

4M

バイトを掛け合 わせてメモリの上限を定義する。この上限より下のメモリをアドレスするペン ディング・ライト・サイクルが生じれば、プロセッサはライト・アロケートを実行す る。プロセッサが、前述したライト・アロケート・メカニズム、すなわちキャッシャ ブル・ページへのライト、セクタへのライトおよびライト・キャッシャビリティ検出 のうちのいずれか

1

つにより、ペンディング・ライト・サイクルがキャッシャブルで あると判定しない限り、この上限に達した、またはこの上限を超えたメモリ・ア クセスに対し、ライト・アロケートは行われない。このメモリ上限の最大値は

2

7

-1

)×

4M

バイト)

=508M

バイトとなる。このフィールドの全ビットが

0

にセッ トされている場合、全メモリが上限以上となり、ライト・アロケートを許可するた

めのこのメカニズムは、実際にディセーブルされる。

ライト・アロケート・イネーブル

15-to-16M

バイト(

WAE15M

)ビットは、

15M

バイ トと

16M

バイトの間のメモリ

1M

バイトをアドレスするメモリ・ライト・サイクルに 対し、ライト・アロケーションをイネーブルするために使用される。このメモリ・

エリアでライト・アロケートが可能であるためには、このビットが

1

にセットされ

000F_FFFFh

)は、メモリのノン・キャッシャブル領域であると見なされるた め、この領域におけるライト・アロケートの実行は安全とは見なされない。

70

に、メモリ・バス・サイクルに対するライト・アロケートに伴う全メカニズム の論理フローを示す。ブロック図の左側(文章部分)は、当該ラインの値が

1

と なるために真でなければならない条件を示している。ブロック図の項目

1

から

3

は、一般的なキャッシュ動作に関するもので、項目

4

から

11

はライト・アロケー ト・メカニズムに関するものである。

ライト・アロケートに関する詳細は、

Implementation of Write Allocate in the K86

TM

Processors Application Note

Order#21326

)を参照。

Perform Write Allocate 1) CD Bit of CR0.

2) PCD Signal 3) CI Bit of TR12

4) Write to Cacheable Page (CCR) 5) Write to a Sector

6) WCDE Bit

7) Less Than Limit (WAELIM) 8) Between 640 Kbytes and 1 Mbyte

9) Between 15–16 Mbytes

10) Write Allocate Enable 15–16 Mbyte (WAE15M)

70.

 ライト・アロケート・ロジック・メカニズムおよび条件 ロジック・メカニズムおよび条件について

1. CR0

CD

ビット:

制御レジスタ(

CR0

)のキャッシュ・ディセーブル(

CD

)ビットが

1

にセット されている場合、リードおよびライトの両キャッシュ・フィル・メカニズムは ディセーブルされている。したがって、ライト・アロケートは発生しない。

2. PCD

信号:

PCD

(ページ・キャッシュ・ディセーブル)信号が

High

にドライブされてい る場合、そのページのキャッシングは、

KEN#

がアサートされてサンプリン グされても、なおディセールされている。したがって、ライト・アロケートは 発生しない。

3. TR12

CI

ビット:

テスト・レジスタ

12

のキャッシュ禁止ビットが

1

にセットされている場合、

L1

最後に行われたキャッシュ・フィルのページ・アドレスを格納する。この条 件の詳細は、前出「キャッシャブル・ページへのライト」の項を参照。

5.

セクタへのライト:

ペンディング・ライト・サイクルのアドレスが、有効(

Valid

)なキャッシュ・セ クタのタグ・アドレスと符合するが、当該セクタ内のアドレス・キャッシュ・

ラインが無効(

Invalid

)である場合、ライト・アロケートが実行される。こ の条件の詳細は、前出「キャッシャブル・ページへのライト」の項を参照。

6. WCDE

ビット

:

レジスタが正しく機能するために、

WHCR

のビット

8

を常に

0

にプログラム する。

7.

リミット値未満(

WAELIM

ライト・アロケート・リミット・メカニズムは、アドレスされる時点でのメモ リ・エリアが、

WHCR

WAELIM

フィールドにセットされた限界値未満であ るか否かを判定する。アドレスが限界値未満である場合、条件

9

および

10

によりライト・アロケートの実行を抑止しない限り、そのメモリ・アドレスに 対しライト・アロケートが実行される。

8. 640K

バイトと

1M

バイトの間のメモリ領域:

メモリ領域

640K

バイトから

1M

バイトの間では、ライト・アロケートは実行 されない。

640K

バイトと

1M

バイトの間(

000A_0000h

から

000F_FFFFh

) は、メモリのノン・キャッシャブル領域であると考えられるため、この間で ライト・アロケートを実行することは安全であるとは考えられない。

9. 15M

バイトから

16M

バイトの間のメモリ領域:

ペンディング・ライト・サイクルのアドレスが、

15M

バイトから

16M

バイトの 間の

1M

バイトのメモリ内にあり、

WAE15M

ビットが

1

にセットされている 場合、このサイクルのライト・アロケートはイネーブルされている。

10.

ライト・アロケート・イネーブル

15-16M

バイト(

WAE15M

):

この条件はライト・アロケート・リミット・メカニズムと対応がとられており、

WAELIM

フィールドにより指定された限界値が

16M

バイトに等しいか、ま たはそれより大きい場合に限り、ライト・アロケートに影響を与える。メモ

ドキュメント内 000 (ページ 195-200)