Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
cache coherency protocol
Search
Jun Kamoshima
August 26, 2014
Programming
25
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
cache coherency protocol
Jun Kamoshima
August 26, 2014
Other Decks in Programming
See All in Programming
golang-bob.pdf
iwatsukayura
0
130
JIS keyboard support in Omarchy
lef237
0
110
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
890
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
ActionController meets Protocol Buffers
sorah
0
520
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
R8 の設定見直しでアプリサイズ削減
andpad
0
220
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
APNsからLive Activityを開始する話
yumnumm
0
170
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Next.js: The final boss of Web Performance
guaca
0
260
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.2k
A Soul's Torment
seathinner
8
3.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
The Art of Programming - Codeland 2020
erikaheidi
57
14k
GraphQLとの向き合い方2022年版
quramy
50
15k
The SEO identity crisis: Don't let AI make you average
varn
0
590
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Transcript
$ 2014/08/26 Jun Kamoshima
$? $ = cash ≒ cache
Ωϟογϡͱ • ͍ϝΠϯϝϞϦͷΞΫηε݁ՌΛCPU͔ Β͍ۙͱ͜Ζʹอଘ͓͖ͯ͠ɺ࣍ճΞΫηε ࣌ʹͦͷ݁ՌΛฦ͢ػߏ • ΞΫηεͷ࿈ଓੑʹண
౷తͳΩϟογϡػߏ • L1/L2/L3/L4Ωϟογϡ֊ • 32bytes - 64bytes୯ҐͰͷཧ • ΩϟογϡϥΠϯ •
write-through/write-back • write-throughॻ͖ࠐΈΛৗʹ࣍ͷϨϕϧͷΩϟογϡ ʹൖɺwrite-backϑϥά͚͚͓͍ͩͭͯͯޙͷλΠ ϛϯάͰൖ
- -% -* 3&( .&. #64
γϯάϧϓϩηοαͰ ͜ΕͰ͏·͘ߦ͘…
Ϛϧνϓϩηοαʹ͓͚Δ Ωϟογϡ ͕ࣗΩϟογϡʹอ͍࣋ͯ͠Δσʔλ͕ɺଞͷ ϓϩηοα͔Βॻ͖͑ΒΕ͍ͯͨΒͲ͏͠Α͏ʁ ͕ࣗϝΠϯϝϞϦ͔Βಡ͏ͱ͍ͯ͠Δσʔλɺ ଞͷϓϩηοαʹ࠷৽ͷίϐʔ͕͋ΔΜ͡Όͳ͍ͷʁ
͜ͷઌɺwrite-back લఏͰߦ͖·͢
write-backΩϟογϡͷεςʔτ • invalid/not-present • Ωϟογϡ্ʹଘࡏ͠ͳ͍͔ɺແޮԽૢ࡞Λߦͬͨঢ়ଶ • clean • ಡΈࠐΈޙʹมߋ͞Ε͍ͯͳ͍͔ɺॻ͖ࠐΈ༰Λ࣍ͷϨϕ ϧʹөࡁΈͷঢ়ଶ
• dirty • ॻ͖ࠐΈΛߦͬͯɺͦͷ༰͕࣍ͷϨϕϧʹө͞Ε͍ͯͳ ͍ঢ়ଶ
ϞμϯͳΩϟογϡ • εψʔϓΩϟογϡ • CPUؒͰΩϟογϡͷใΛ༥௨͠߹͏ • Ωϟογϡϓϩτίϧ • ΩϟογϡͷใΛΓऔΓ͢ΔͨΊͷϓ ϩτίϧ
- -% -* 3&( .&. - -% -* 3&( #64
- -% -* 3&( .&. - -% -* 3&( #64
Ωϟογϡϓϩτίϧͷྫ: MESI • ֤ʑͷΩϟογϡϥΠϯҎԼͷεςʔτͷ ͲΕ͔Λ࣋ͭ • MODIFIED, EXCLUSIVE, SHARED, INVALID
• ֤ίΞόεͰͭͳ͕͓ͬͯΓɺόεʹྲྀΕ ͨ༰ΛಡΉ͜ͱ͕Ͱ͖Δ • IA-32ΞʔΩςΫνϟMESIΛ࠾༻
INVALIDεςʔτ ϝϞϦͷத͕ͲͷΩϟογϡʹଘࡏ͠ͳ͍͔ɺ σʔλ͕ݹ͘ͳ͍ͬͯΔ͜ͱ͕Θ͔͍ͬͯΔঢ়ଶ ! ·ͬͨ͘ΞΫηε͞Ε͍ͯͳ͍͔ɺΩϟογϡແ ޮԽૢ࡞Λߦ͏͜ͱʹΑͬͯINVALIDʹભҠ͢Δ *
EXCLUSIVEεςʔτ ϝΠϯϝϞϦ͔ΒͷಡΈࠐΈޙɺଞͷίΞ͔ Βಉ͡ϥΠϯͷΞΫηεΛߦ͍ͬͯͳ͍ঢ় ଶ ! ଞͷίΞ͔ΒɺINVALIDʹݟ͑Δ &
SHAREDεςʔτ ଞͷίΞ͕EXCLUSIVEͰอ༗͍ͯ͠ΔϥΠϯΞΫηε ཁٻΛग़͢ͱɺͦͷίΞؚΊͯSHAREDʹભҠ͢Δ ! ॻ͖ࠐΈΛߦ͓͏ͱ͢ΔͱMODIFIEDʹભҠ͠ɺଞͷί Ξ͕อ༗͢ΔϥΠϯINVALIDʹͳΔ 4
MODIFIEDεςʔτ ϩʔΧϧͰॻ͖ࠐΈΛߦͬͨঢ়ଶɻଞͷεςʔτʹ ભҠ͢Δࡍʹɺඞͣ࣍ͷϨϕϧʹॻ͖͠Λߦ͏ ! ଞͷίΞ͔ΒɺEXCLUSIVEͷͱ͖ͱಉ͘͡ INVALIDʹݟ͑Δ .
γϯάϧίΞͱͷڞ௨ • INVALID, SHARED, MODIFIEDͦΕͧΕ invalid/not-present, clean, dirtyʹ૬͢Δ • EXCLUSIVEͷҙຯʁ
EXCLUSIVEͷଘࡏҙٛ • ͋ΔίΞ͕ͱ͋ΔϥΠϯΛʢࠓޙͷॻ͖ࠐΈͷͨ Ίʹʣ༗͍ͨ͠߹ɺόεʹϦΫΤετΛग़͢ • ͜ͷͱ͖ͦͷϥΠϯ֘ίΞ͔ΒEεςʔ τɺผͷίΞͰIεςʔτʹભҠ͢Δ • ʮ͕ࣗΩϟογϡʹอ͍࣋ͯ͠Δσʔλ͕ɺଞ ͷϓϩηοα͔Βॻ͖͑ΒΕ͍ͯͨΒͲ͏͠Α
͏ʁʯͷղ
MESIϓϩτίϧʹ͓͍ͯ ݟམͱ͕ͪ͠ͳ ͋ΔίΞ͕ϥΠϯʹಡΈࠐΈϦΫΤετΛग़͢ͱɺผͷίΞ ͕MODIFIEDͳϥΠϯΛॻ͖͔͢͠Εͳ͍ ! ॻ͖ࠐΈΛߦ͏લʹɺEεςʔτʹભҠͯ͠ϥΠϯͷ༰Λ Ωϟογϡʹ࣋ͬͯ͘Δ͜ͱʹͳΔʢRead-for-Ownershipʣ
MOESIϓϩτίϧ • AMD64Ͱ࠾༻ • OʮOWNEDʯ • MODIFIEDͳϥΠϯΛଞͷίΞ͕ಡΈࠐΈཁ ٻͨ͠ࡍʹɺϝϞϦΛհͣ͞ϥΠϯσʔ λΛૹΕΔΑ͏ʹͳ͍ͬͯΔ
OWNEDεςʔτ MODIFIEDͳϥΠϯʹଞͷίΞ͔ΒಡΈग़͕͋ͬͨ͠ࡍʹ OWNEDʹભҠ͢Δ ! ଞͷίΞ͔ΒSHAREDʹݟ͑Δ ! dirtyͳσʔλΛଞͷίΞʹૹΕΔ 0
ࢀߟ • ίϯϐϡʔλΞʔΩςΫνϟͷ 14 Ωϟογϡͷ ߏಇ͖(্ڃฤ) - MOESIϓϩτίϧ • http://news.mynavi.jp/column/architecture/014/
• Cache coherency primer • http://fgiesen.wordpress.com/2014/07/07/ cache-coherency/