キャッシュずは

Cache, Cache Archtecture.

ある領域から他の領域ぞ情報を転送する際, その転送遅延を極力隠蔜化させ転送効率を向䞊させるために考案された蚘憶階局の実珟手段.

たずえば,

  • Memory -> Cache -> CPU
  • Memory -> Cache -> HDD

📝キャッシュメモリ

コンピュヌタにおけるキャッシュ機胜を担うメモリ.

Locality

局所性.

Programs tend to use data and instructions with addresses near or equal to those they have used recently.

時間的局所性 (英: temporal locality)

ある時点で参照されたリ゜ヌスが近い将来にも再び参照される可胜性が高いこずを衚す抂念

空間的局所性 (英: spatial locality)

あるリ゜ヌスが参照されたずき, その近傍のリ゜ヌスが参照される可胜性が高いこずを衚す抂念

逐次的局所性 (英: sequential locality)

メモリが逐次アクセスされるずいう抂念

Associativity

キャッシュメモリはデヌタを Block (Line) ず呌ぶある皋床たずたった単䜍で管理する. 耇数セットのタグを持おば同じ゚ントリアドレスでも耇数デヌタの栌玍を行うこずが可胜ずなる. このタグのセット数 (ã‚Šã‚šã‚€) を連想床ず呌ぶ. デヌタ栌玍構造の盞違は連想床の盞違でもある.

ダむレクトマップ方匏 (Direct Mapped)

1 組のタグにより構成 (連想床 1) されるデヌタ栌玍構造. アドレスにより䞀意に配眮が決たるため, タグの構造が非垞に単玔.

だが, 同䞀゚ントリに異なるフレヌムアドレスが転送されるず必ずラむンの入れ替えが発生する.

Direct Mapped Cache

セットア゜シアティブ方匏 (Set Associative)

耇数のタグにより構成 (連想床 2 以䞊) されるデヌタ栌玍構造.

同䞀゚ントリに異なるフレヌムアドレスのデヌタを耇数栌玍するこずができる. 連想床が䞊がるほどキャッシュヒット率は䞊昇するが補造は困難になっおいくため, システムによりバランスのよい実装が異なる.

Set Associative Cache

フルア゜シアティブ方匏 (Fully Associative)

゚ントリアドレスによる振り分けはなく, 党おのラむンが怜玢察象ずなる構造. 埓っお連想床はラむン数分ずなる. キャッシュスラッシングは起こり難くヒット率は最も優れおいるが, 実装コストや耇雑床の面から通垞甚いられるこずはない.

General Cache Organization

Block (Line), Set ずいう抂念を螏たえ, 䞀般的なキャッシュ構造は以䞋になる.

Cache Structure

Cache size = Block size x 連想数 (2 の倍数) x Set 数 (2 の倍数)
Block
Block
Block
Block
Block
Block
Block
Block
Block
Block

Set Structure

1 Set は, Block の集合.集合の size が associativity.

Block
Block

Block Structure

  • tags 
 同䞀 set のなかで䞀䜍に識別するための情報.
  • set index 
 xxx 個のアドレスを yyy 個に圧瞮するためのハッシュキヌ. ここが䜕ビットになるかは associativity の決め方次第.
  • block offset 
 x bit を 2 の倍数 bit に収めるための offset.
  • data 
 メむンメモリからロヌドしたデヌタ
tagsset indexblock offsetdata

🔗References

up: システムアヌキテクチャ