Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
キャッシュメモリ
Search
Satoru Takeuchi
PRO
June 21, 2020
Technology
1
290
キャッシュメモリ
以下動画のテキストです
https://youtu.be/xVdF1z7eSDI
Satoru Takeuchi
PRO
June 21, 2020
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
データ冗長化のしくみRAID 基礎概念とRAID1編
sat
PRO
2
20
RAIDの実現方法
sat
PRO
2
49
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
98
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
53
ボリュームマネージャLVM
sat
PRO
2
86
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
1.9k
OSSへの貢献をはじめたきっかけ、貢献で得たもの、やりたい人へのアドバイス(改)
sat
PRO
4
120
device mapperによるディスクI/O障害のエミュレーション 既存ターゲット編
sat
PRO
0
120
分散ストレージCephのデータ破壊検知修復機能は本当に動作するのか
sat
PRO
0
51
Other Decks in Technology
See All in Technology
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
380
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
61
18k
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
4
110
Tebiki株式会社 エンジニア採用資料
tebiki
0
4.1k
SREとその組織類型
tatsuo48
8
1.5k
0→1開発における技術選定において一番大切なこと
bicstone
1
330
2024/4/26 コンピュータ歴史博物館解説告知
toshi_atsumi
0
200
検証を通して見えてきたTiDBの性能特性
lycorptech_jp
PRO
6
3.4k
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
14
35k
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
120
シン・Kafka / shin-kafka
oracle4engineer
PRO
7
2.7k
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Web Components: a chance to create the future
zenorocha
305
41k
Design by the Numbers
sachag
274
18k
Art, The Web, and Tiny UX
lynnandtonic
288
19k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
Facilitating Awesome Meetings
lara
41
5.6k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2.1k
Code Review Best Practice
trishagee
54
15k
Clear Off the Table
cherdarchuk
83
310k
Designing for humans not robots
tammielis
247
25k
How to name files
jennybc
64
92k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Transcript
キャッシュメモリ Jun 21th, 2020 Satoru Taekcuhi Twitter: satoru_takeuchi
もくじ • キャッシュメモリとは • 具体例( AMD Ryzen 5 PRO 2400GE)
• Linuxからキャッシュメモリの情報を見る • まとめ
もくじ • キャッシュメモリとは • 具体例( AMD Ryzen 5 PRO 2400GE)
• Linuxからキャッシュメモリの情報を見る • まとめ
背景 • コンピュータは以下の処理を繰り返す装置 1. メモリからCPUのレジスタにデータをとってくる 2. レジスタ上で計算する 3. 計算結果をメモリに書き戻す •
メモリアクセスはレジスタ上の計算に比べてはるかに遅い 1. レジスタ上の計算: 数ナノ秒オーダー 2. メモリアクセス: 100ナノ秒オーダー • 問題: CPUの計算速度をいくら上げてもメモリアクセスがボトルネックになってシス テム全体の性能が上がらない
キャッシュメモリの登場 • レジスタとメモリの中間に存在する記憶領域 ◦ 一般的にCPU内に存在する 教科書でよく見る記憶階層図 メモリ キャッシュメモリ レジスタ ハードウェアの概念図
高速アクセス、 小容量、高価 低速アクセス、 大容量、安価 CPU メモリ レジスタ キャッシュメモリ
キャッシュメモリ存在時のメモリリード(1目回) • CPU メモリ レジスタ キャッシュメモリ メモリアドレス100の データを要求 アドレス100のデータ
キャッシュメモリ存在時のメモリリード(1目回) • CPU メモリ レジスタ キャッシュメモリ キャッシュメモリに データを転送 アドレス100のデータ アドレス100のデータ
キャッシュメモリ存在時のメモリリード(1目回) • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ レジスタに データを転送 アドレス100のデータ
アドレス100のデータ
キャッシュメモリ存在時のメモリリード(2目回) • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ メモリアドレス100の データを要求 アドレス100のデータ
キャッシュメモリ存在時のメモリリード(2目回) • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ レジスタに データを転送 これで処理は終了
アドレス100のデータ アドレス100のデータ メモリアクセスは しなくて済む
キャッシュメモリ存在時のメモリライト • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ レジスタ上のデータを 書き換えて メモリアドレス100に
書き込み アドレス100のデータ アドレス100のデータ
キャッシュメモリ存在時のメモリライト • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ レジスタ上のデータを 書き換えて メモリアドレス100に
書き込み アドレス100のデータ アドレス100のデータ
キャッシュメモリ存在時のメモリライト • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ レジスタ上のデータを 書き換えて メモリアドレス100に
書き込み アドレス100のデータ アドレス100のデータ この後のリードは キャッシュメモリ上のデータを 見ればいい
キャッシュメモリ上データのメモリ上への反映 • CPU メモリ レジスタ キャッシュメモリ アドレス100のデータ アドレス100のデータ アドレス100のデータ 二つの方法がある
• ライトバック ◦ プログラムからのデータアクセス とは非同期にバックグラウンドで 反映 • ライトスルー ◦ キャッシュメモリへの書き込みと 同時にメモリへの書き込み
キャッシュメモリあれこれ • データがすべてキャッシュメモリ上におさまっている限り、見かけ上のメモリアクセス 速度はキャッシュメモリへのアクセス速度に等しくなる • キャッシュの様々な特徴 ◦ メモリへのデータ反映方法 : ライトスルー
or ライトバック ◦ 階層構造: L1キャッシュ(一番高速)、L2キャッシュ(二番目に高速)、... ◦ キャッシュの種類: 命令用キャッシュとデータ用キャッシュに分かれることもある ◦ CPU内のコア間でのキャッシュメモリ共有の有無 • 上記特徴はCPUの種類によって異なる
もくじ • キャッシュメモリとは • 具体例(AMD Ryzen 5 PRO 2400GE) •
Linuxからキャッシュメモリの情報を見る • まとめ
カタログスペック • 論理CPU ◦ 4コア8スレッド • キャッシュ ◦ L1キャッシュ合計: 384KB
◦ L2キャッシュ合計: 2MB ◦ L3キャッシュ合計: 4MB • 公式サイト ◦ https://www.amd.com/ja/products/apu/amd-ryzen-5-pro-2400ge
実例: AMD Ryzen 5 PRO 2400GE CPU コア0 コア2 コア3
コア1 スレッド0 スレッド1 スレッド2 スレッド3 スレッド4 スレッド5 スレッド6 スレッド7 L1キャッシュ L2キャッシュ L1キャッシュ L2キャッシュ L1キャッシュ L2キャッシュ L1キャッシュ L2キャッシュ L3キャッシュ
もくじ キャッシュメモリとは 具体例(AMD Ryzen 5 PRO 2400GE) Linuxからキャッシュメモリの情報を見る まとめ
演習 • sysfsを介してLinuxカーネルからキャッシュメモリの情報を得る • /sys/devices/system/cpu/cpu<論理CPU番号>/cache以下が該当 ◦ おもしろそうなファイル : level, type,
size, shared_cpu_{list,map}
答え合わせ • 論理CPU ◦ 4コア8スレッド • キャッシュ ◦ L1キャッシュ合計: 384KB:
(L1dキャッシュ32KB + L1iキャッシュ64KB) * 4コア ◦ L2キャッシュ合計: 2MB: 512KB * 4コア ◦ L3キャッシュ合計: 4MB: 全コアで共有
もくじ • キャッシュメモリとは • 具体例(AMD Ryzen 5 PRO 2400GE) •
Linuxからキャッシュメモリの情報を見る • まとめ
まとめ • レジスタ上の計算速度に比べてメモリアクセス速度は遅い • その速度差を吸収するのがキャッシュメモリ • CPUによってキャッシュメモリ構成は様々 • Linuxのsysfsからキャッシュメモリの情報を得られる