Talk: import and andimate cache coherence

This commit is contained in:
Fischlurch 2026-08-13 19:59:07 +02:00
parent 19b437b150
commit 2797e49af5
3 changed files with 396 additions and 57 deletions

View file

@ -1201,8 +1201,8 @@
</node>
</node>
<node CREATED="1754271624646" ID="ID_52826289" MODIFIED="1754271626857" TEXT="Grafik">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1785817833206" ID="ID_327257827" MODIFIED="1785877136327" TEXT="Diagramm &quot;Time Scales&quot;">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1785817833206" ID="ID_327257827" MODIFIED="1786640246119" TEXT="Diagramm &quot;Time Scales&quot;">
<icon BUILTIN="button_ok"/>
<node CREATED="1785817842583" ID="ID_306380330" MODIFIED="1785817861311" TEXT="Idee: m&#xf6;chte die gewaltigen Zeitspannen visualisieren">
<icon BUILTIN="idea"/>
<node CREATED="1785817863252" ID="ID_299103430" MODIFIED="1785817884168" TEXT="m&#xf6;chte klarmachen, warum wir es mit &#xbb;Stockwerken&#xab; zu tun haben"/>
@ -1294,17 +1294,17 @@
<node COLOR="#338800" CREATED="1785818905823" ID="ID_1365657985" MODIFIED="1786633104328" TEXT="Diagramm grafisch ausfeilen und an Seitenlayout anpassen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1786633085054" ID="ID_1243923715" MODIFIED="1786633099526" TEXT="Auszug f&#xfc;r Ver&#xe4;nderung Disk-Access">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1786633085054" ID="ID_1243923715" MODIFIED="1786640243900" TEXT="Auszug f&#xfc;r Ver&#xe4;nderung Disk-Access">
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1786245320212" ID="ID_1882333702" MODIFIED="1786295032660" TEXT="Diagramm &quot;cache coherence&quot;">
<node COLOR="#338800" CREATED="1786245320212" ID="ID_1882333702" MODIFIED="1786643758529" TEXT="Diagramm &quot;cache coherence&quot;">
<linktarget COLOR="#687482" DESTINATION="ID_1882333702" ENDARROW="Default" ENDINCLINATION="-722;-1005;" ID="Arrow_ID_1367738858" SOURCE="ID_695911002" STARTARROW="None" STARTINCLINATION="-213;18;"/>
<icon BUILTIN="pencil"/>
<icon BUILTIN="button_ok"/>
<node BACKGROUND_COLOR="#accdc3" COLOR="#3f4015" CREATED="1786245352847" ID="ID_563431072" MODIFIED="1786245357032" TEXT="coherence.svg">
<icon BUILTIN="wizard"/>
</node>
<node CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786245382367" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
<node COLOR="#006699" CREATED="1786245367557" ID="ID_1248853430" MODIFIED="1786643762078" TEXT="Animation, die schreib- und Leseoperationen zeigt..."/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1785877291601" ID="ID_517600933" MODIFIED="1786466625791" TEXT="Diagramm &quot;State-Ring&quot;">
<linktarget COLOR="#c23657" DESTINATION="ID_517600933" ENDARROW="Default" ENDINCLINATION="134;15;" ID="Arrow_ID_670746681" SOURCE="ID_270282240" STARTARROW="None" STARTINCLINATION="23;-122;"/>
@ -1326,11 +1326,11 @@
<linktarget COLOR="#339dbd" DESTINATION="ID_1806019726" ENDARROW="Default" ENDINCLINATION="121;0;" ID="Arrow_ID_938057656" SOURCE="ID_1725774104" STARTARROW="None" STARTINCLINATION="-30;41;"/>
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785880050158" ID="ID_1123988986" MODIFIED="1786456139155" TEXT="Diagramm &quot;Thread-handoff&quot;">
<node COLOR="#338800" CREATED="1785880050158" ID="ID_1123988986" MODIFIED="1786640284601" TEXT="Diagramm &quot;Thread-handoff&quot;">
<linktarget COLOR="#2d545f" DESTINATION="ID_1123988986" ENDARROW="Default" ENDINCLINATION="-1879;-116;" ID="Arrow_ID_395148395" SOURCE="ID_203769685" STARTARROW="None" STARTINCLINATION="-1226;128;"/>
<linktarget COLOR="#339dbd" DESTINATION="ID_1123988986" ENDARROW="Default" ENDINCLINATION="121;0;" ID="Arrow_ID_1210919925" SOURCE="ID_1725774104" STARTARROW="None" STARTINCLINATION="-30;41;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1786456142877" HGAP="42" ID="ID_724342124" MODIFIED="1786456162177" TEXT="visuell klarer machen" VSHIFT="19">
<icon BUILTIN="button_ok"/>
<node COLOR="#006699" CREATED="1786456142877" HGAP="42" ID="ID_724342124" MODIFIED="1786640276274" TEXT="visuell klarer machen" VSHIFT="19">
<icon BUILTIN="yes"/>
</node>
</node>
@ -1385,7 +1385,7 @@
<icon BUILTIN="full-5"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785876360880" ID="ID_1803475906" MODIFIED="1785876380352" TEXT="Animation: Producer &#x27f6; Consumer | Fences">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785876360880" ID="ID_1803475906" MODIFIED="1786643862039" TEXT="Animation: Producer &#x27f6; Consumer | Fences">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1785877864405" ID="ID_400522389" MODIFIED="1785877870203" TEXT="Animation: State-Ring">

Binary file not shown.

View file

@ -1,47 +1,386 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="254.0mm"
height="142.9mm"
viewBox="0 0 254.0 142.9"
version="1.1"
id="svg22"
sodipodi:docname="coherence.svg"
inkscape:export-filename="../coherence-2.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
width="254.0mm" height="142.9mm" viewBox="0 0 254.0 142.9" version="1.1">
<sodipodi:namedview inkscape:document-units="mm" units="mm"/>
<title>Cache coherence and observability</title>
<g inkscape:groupmode="layer" id="layer-1-scaffold" inkscape:label="1 - scaffold (x=0 everywhere)" style="display:inline">
<defs><marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#555555"/></marker></defs>
<rect x="44.00" y="24.00" width="46.00" height="20.00" rx="2.0" fill="#ffffff" stroke="#222222" stroke-width="0.8"/>
<text x="67.00" y="35.80" font-family="DejaVu Sans, Verdana, sans-serif" font-size="5.5" font-weight="600" fill="#222222" text-anchor="middle">Core</text>
<rect x="164.00" y="24.00" width="46.00" height="20.00" rx="2.0" fill="#ffffff" stroke="#222222" stroke-width="0.8"/>
<text x="187.00" y="35.80" font-family="DejaVu Sans, Verdana, sans-serif" font-size="5.5" font-weight="600" fill="#222222" text-anchor="middle">Core</text>
<path d="M 67.00,44.00 L 67.00,58.00" stroke="#555555" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<path d="M 187.00,44.00 L 187.00,58.00" stroke="#555555" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<path d="M 67.00,80.00 L 67.00,110.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 67.00,110.00 L 90.00,104.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 187.00,80.00 L 187.00,110.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<path d="M 187.00,110.00 L 164.00,104.00" stroke="#555555" stroke-width="0.6" fill="none"/>
<rect x="44.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<rect x="164.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<text x="67.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="187.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="67.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
<text x="187.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
<rect x="82.00" y="104.00" width="90.00" height="24.00" rx="2.0" fill="#f2f2f2" stroke="#222222" stroke-width="0.8"/>
<text x="127.00" y="111.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">DRAM</text>
<text x="127.00" y="122.50" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
</g>
<g inkscape:groupmode="layer" id="layer-2-core0-write" inkscape:label="2 - core0 writes x=1" style="display:inline">
<rect x="44.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#dce8f2" stroke="#14507d" stroke-width="1.1"/>
<text x="67.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="67.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#14507d" text-anchor="middle">x = 1</text>
</g>
<g inkscape:groupmode="layer" id="layer-3-core1-read" inkscape:label="3 - core1 reads: still x=0" style="display:inline">
<path d="M 184.00,45.50 C 179.00,51.00 179.00,51.00 184.00,56.50" stroke="#8a8a8a" stroke-width="0.6" fill="none" marker-end="url(#arrow)"/>
<rect x="164.00" y="58.00" width="46.00" height="22.00" rx="2.0" fill="#f2f2f2" stroke="#8a8a8a" stroke-width="1.1"/>
<text x="187.00" y="64.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">Cache</text>
<text x="187.00" y="74.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#8a8a8a" text-anchor="middle">x = 0</text>
</g>
<g inkscape:groupmode="layer" id="layer-4-propagate" inkscape:label="4 - later: DRAM sees x=1, core1 still stale" style="display:inline">
<circle cx="119.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="123.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="127.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="131.0" cy="95.0" r="0.7" fill="#8a8a8a"/><circle cx="135.0" cy="95.0" r="0.7" fill="#8a8a8a"/>
<rect x="82.00" y="104.00" width="90.00" height="24.00" rx="2.0" fill="#dce8f2" stroke="#14507d" stroke-width="1.1"/>
<text x="127.00" y="111.00" font-family="DejaVu Sans, Verdana, sans-serif" font-size="4.2" font-weight="600" fill="#222222" text-anchor="middle">DRAM</text>
<text x="127.00" y="122.50" font-family="DejaVu Sans, Verdana, sans-serif" font-size="6.5" font-weight="700" fill="#14507d" text-anchor="middle">x = 1</text>
</g>
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs22" />
<sodipodi:namedview
inkscape:document-units="mm"
units="mm"
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="2.0378142"
inkscape:cx="479.926"
inkscape:cy="286.82694"
inkscape:window-width="1920"
inkscape:window-height="1057"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer-3-core1-read" />
<title
id="title1">Cache coherence and observability</title>
<g
inkscape:groupmode="layer"
id="layer-1-scaffold"
inkscape:label="1 - scaffold (x=0 everywhere)"
style="display:inline">
<defs
id="defs1">
<marker
id="arrow"
viewBox="0 0 10 10"
refX="8"
refY="5"
markerWidth="6"
markerHeight="6"
orient="auto-start-reverse">
<path
d="M 0,0 10,5 0,10 Z"
fill="#555555"
id="path1" />
</marker>
</defs>
<rect
x="44"
y="24"
width="46"
height="20"
rx="2"
fill="#ffffff"
stroke="#222222"
stroke-width="0.8"
id="rect1" />
<text
x="67"
y="35.799999"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="5.5px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text1">Core</text>
<rect
x="164"
y="24"
width="46"
height="20"
rx="2"
fill="#ffffff"
stroke="#222222"
stroke-width="0.8"
id="rect2" />
<text
x="187"
y="35.799999"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="5.5px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text2">Core</text>
<path
d="M 67,44 V 58"
stroke="#555555"
stroke-width="0.6"
fill="none"
marker-end="url(#arrow)"
id="path2" />
<path
d="M 187,44 V 58"
stroke="#555555"
stroke-width="0.6"
fill="none"
marker-end="url(#arrow)"
id="path3" />
<path
d="m 67,80 v 30"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path4" />
<path
d="m 67,110 23,-6"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path5" />
<path
d="m 187,80 v 30"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path6" />
<path
d="m 187,110 -23,-6"
stroke="#555555"
stroke-width="0.6"
fill="none"
id="path7" />
<rect
x="44"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect7" />
<rect
x="164"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect8" />
<text
x="67"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text8">Cache</text>
<text
x="187"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text9">Cache</text>
<text
x="67"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text10">x = 0</text>
<text
x="187"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text11">x = 0</text>
<rect
x="82"
y="104"
width="90"
height="24"
rx="2"
fill="#f2f2f2"
stroke="#222222"
stroke-width="0.8"
id="rect11" />
<text
x="127"
y="111"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text12">DRAM</text>
<text
x="127"
y="122.5"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text13">x = 0</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-2-core0-write"
inkscape:label="2 - core0 writes x=1"
style="display:inline">
<rect
x="44"
y="58"
width="46"
height="22"
rx="2"
fill="#dce8f2"
stroke="#14507d"
stroke-width="1.1"
id="rect13" />
<text
x="67"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text14">Cache</text>
<text
x="67"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#14507d"
text-anchor="middle"
id="text15">x = 1</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-3-core1-read"
inkscape:label="3 - core1 reads: still x=0"
style="display:inline">
<rect
x="164"
y="58"
width="46"
height="22"
rx="2"
fill="#f2f2f2"
stroke="#8a8a8a"
stroke-width="1.1"
id="rect15"
style="stroke:#13b8b9;stroke-opacity:1" />
<text
x="187"
y="64"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text16">Cache</text>
<text
x="187"
y="74"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#8a8a8a"
text-anchor="middle"
id="text17">x = 0</text>
</g>
<g
inkscape:groupmode="layer"
id="layer-4-propagate"
inkscape:label="4 - later: DRAM sees x=1, core1 still stale"
style="display:inline">
<circle
cx="119"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle17" />
<circle
cx="123"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle18" />
<circle
cx="127"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle19" />
<circle
cx="131"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle20" />
<circle
cx="135"
cy="95"
r="0.69999999"
fill="#8a8a8a"
id="circle21" />
<rect
x="82"
y="104"
width="90"
height="24"
rx="2"
fill="#dce8f2"
stroke="#14507d"
stroke-width="1.1"
id="rect21" />
<text
x="127"
y="111"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="4.2px"
font-weight="600"
fill="#222222"
text-anchor="middle"
id="text21">DRAM</text>
<text
x="127"
y="122.5"
font-family="'DejaVu Sans', Verdana, sans-serif"
font-size="6.5px"
font-weight="700"
fill="#14507d"
text-anchor="middle"
id="text22">x = 1</text>
</g>
<metadata
id="metadata22">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>Cache coherence and observability</dc:title>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
<dc:description>Animation for the io_uring talk : show several copies of the same variable in CPU caches and main memory</dc:description>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB