メディア
連載
» 2016年11月29日 11時00分 公開

キャッシュとは? ―― 機能と仕組みから使用上の注意までQ&Aで学ぶマイコン講座(32)(3/3 ページ)

[菅井賢(STマイクロエレクトロニクス),EDN Japan]
前のページへ 1|2|3       

キャッシュの内部構成

 キャッシュは高速・小容量の読み書きができるメモリですので、基本構成は通常のSRAMと同じです。キャッシュと通常のメモリとの違いはキャッシュにヒットしたか、ヒットしなかったかを高速に判断し、さらにヒットした際に、高速に読み出すことができるかどうかです。

 具体的な構成はマイコン各社によって異なりますが、一般的には、内部をタグ部とデータ部に分けており、ヒットしたかしなかったかは、タグ部を使って判断します。

 さらに、タグ部の構成でいくつかの方式に分けられます。タグが1組の場合をダイレクトマップ方式(Direct Mapped)と呼びます。構造が単純ですがヒット率が他の方式に比べ低くなります。

 複数のタグで構成する場合をセットアソシアティブ方式(Set Associative)と呼びます。タグの数が多いほどキャッシュヒット率は上昇しますが、構造が複雑になります。n個のタグにより構成された場合、nウエイセットアソシアティブ方式と呼びます。アドレスが与えられると全てのタグと比較される方式をフルアソシアティブ方式(Fully Associative)と呼びます。最も優れたヒット率が得られますが、コストが高くなるので通常は用いられません。

 図6に最新のマイコンの例として、ARM Coretx-M7プロセッサを搭載した「STM32F7シリーズ」(STマイクロエレクトロニクス製)におけるキャッシュのブロック図を示します。

図6:キャッシュの構成例(STM32F7の場合) (クリックで拡大)

 このマイコンはハーバードアーキテクチャ方式で、命令キャッシュは2-ウェイセットアソシアティブ、データキャッシュは4-ウェイセットアソシアティブ構造になっています。

キャッシュの用語

  1. キャッシュヒット
    • 対象となる命令やデータがキャッシュに存在する場合
  2. キャッシュミス(キャッシュミスヒット)
    • 対象となる命令やデータがキャッシュに存在しない場合
  3. ラインフィル(Line fill)
    • キャッシュのバス上の読み出し、または読み出しリクエストのこと(フィルとはキャッシュがミスした場合に主メモリの内容をキャッシュに読み込むこと)
  4. エビクション(Eviction)
    • キャッシュが満杯の状態で、キャッシュ内に必要なデータを保存し、不要なデータを追い出すこと(Evictionは立ち退きという意味)
  5. ライトスルー(Write through)
    • CPUがキャッシュにデータを書き込むと同時にメインメモリにも同じデータを書き込む方式
  6. ライトバック(Write back)
    • CPUがキャッシュにデータを書き込む時に、キャッシュが一杯になるまではキャッシュに書き込み、キャッシュの内容が追い出される時に、その追い出されるデータを主メモリに書き込む方式

使用上の注意点

 ユーザーから見るとキャッシュと主メモリの2つのメモリが1つにしか見えませんので、2つのメモリの内容の一貫性を保たないと主メモリの内容が失われてしまいます。

 CPUしか、メモリをアクセスしないのであれば、比較的一貫性を保つのが容易ですが、DMA(Direct Memory Access)などを併用すると、一貫性を保つことが難しくなります。

 Q&Aで学ぶマイコン講座(29):「DMAのメリットって何?」でも述べましたが、CPUがメモリにデータを書いた時に、ライトスルー方式だと、キャッシュにデータを書き込まれると同時にメインメモリにも同じデータが書き込まれます。もし、その後、間違ってDMAが主メモリ上のデータを書き換えてしまうと、キャッシュのデータと主メモリのデータが異なってしまいます。その後、CPUがそのデータを読み出すと、キャッシュのデータが読まれてしまい、主メモリの値と異なる値を読み出すことになります(図7参照)。

図7:キャッシュとメインメモリのデータの一貫性問題例Q&Aで学ぶマイコン講座第29回の図4を再使用) (クリックで拡大)

 キャッシュとDMAの間でハードウェアで一貫性を保つ仕組みが入っていれば良いのですが、ない場合は、ユーザーがデータの一貫性を管理しなくてはなりません。

*)参考記事:プロセッサの性能はこれで決まる!:メモリシステムの設計ポイント

『次回の掲載をメールで受け取る』

連載バックナンバーはこちら

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.