うなぎのタレで学ぶキャッシュ

219 Views

November 17, 25

スライド概要

#3 低レイヤーズさっぽろのLTで使用した資料です

profile-image

miyamoto naoyuki N High School Student

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

うなぎのタレで学ぶキャッシュ @Msprzk #3 低レイヤーズさっぽろ

2.

自己紹介 名前 : 宮本直幸 X: @Msprzk 所属: 北海道情報大学 趣味: ゲーム配信を見たりする

3.

きっかけ

6.

空間局所性とは あるデータにアクセスした直後に、その近くのデータにアクセスする 傾向のこと。 キャッシュでは、この性質を利用して、近くのデータを先にキャッシ ュに読み込んでおく。

7.

これって、うなぎのタレとうなぎの関係に 似ているよね?

8.

例としてCの2次元配列を考える Cの多次元配列はメモリ上の連続した領域に格納される。 Cでは、配列の要素は行優先(row-major order)で格納され る。 つまり、同じ行の要素が連続してメモリに配置される。

10.

int[][] array = {...}; // は配列の長さだと仮定 十分に大きな2次元配列 // N for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { // [i][j] } } にアクセスする for (j = 0; j < N; j++) { for (i = 0; i < N; i++) { // [i][j] } } にアクセスする

12.

まとめ 空間局所性は、近くのデータにアクセスする傾向のこと。 うなぎのタレとうなぎの関係に似ている。 Cの2次元配列の行優先配置により、行優先のアクセスパターン は空間局所性を活かせる。 列優先のアクセスパターンは空間局所性を活かせず、キャッシ ュミスが増える。