added eurosys section
1
docs/EuroSys/Paper/build.sh
Normal file
@@ -0,0 +1 @@
|
||||
latexmk -pdf paper.tex
|
||||
1
docs/EuroSys/Paper/comment.cut
Normal file
@@ -0,0 +1 @@
|
||||
To Robert, for the bagels and explaining CMYK and color spaces.
|
||||
BIN
docs/EuroSys/Paper/diagram/.DS_Store
vendored
Normal file
BIN
docs/EuroSys/Paper/diagram/AllocationOverview24.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
docs/EuroSys/Paper/diagram/HighOverviewArchitecture.drawio.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
docs/EuroSys/Paper/diagram/HighOverviewArchitecture24.png
Normal file
|
After Width: | Height: | Size: 128 KiB |
BIN
docs/EuroSys/Paper/diagram/SoftwareStack24.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/EuroSys/Paper/diagram/TLBAccess.drawio.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/EuroSys/Paper/diagram/allbenchmarks.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/EuroSys/Paper/diagram/bargraph.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
docs/EuroSys/Paper/diagram/drawio/.DS_Store
vendored
Normal file
184
docs/EuroSys/Paper/diagram/drawio/AllocationOverview.drawio
Normal file
@@ -0,0 +1,184 @@
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-21T13:23:04.564Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="LzoeM2Er8Hl69-9hDuab" version="24.4.4" type="device">
|
||||
<diagram id="6sDLX4wBBA-Nij57IY7x" name="Page-1">
|
||||
<mxGraphModel dx="1194" dy="647" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="280" width="710" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-2" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="400" width="710" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-3" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="360" as="sourcePoint" />
|
||||
<mxPoint x="260" y="220" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-4" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="350" as="sourcePoint" />
|
||||
<mxPoint x="530" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-6" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="490" as="sourcePoint" />
|
||||
<mxPoint x="300" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-7" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="560" y="490" as="sourcePoint" />
|
||||
<mxPoint x="560" y="360" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="330" y="360" as="sourcePoint" />
|
||||
<mxPoint x="330" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-9" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="360" as="sourcePoint" />
|
||||
<mxPoint x="400" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-10" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="360" as="sourcePoint" />
|
||||
<mxPoint x="450" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-11" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="360" as="sourcePoint" />
|
||||
<mxPoint x="500" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-14" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="360" y="480" as="sourcePoint" />
|
||||
<mxPoint x="360" y="370" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="360" y="440" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-15" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="480" as="sourcePoint" />
|
||||
<mxPoint x="420" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-16" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="470" y="480" as="sourcePoint" />
|
||||
<mxPoint x="470" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-17" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="520" y="480" as="sourcePoint" />
|
||||
<mxPoint x="520" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-19" value="Virtual address" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="240" width="90" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-20" value="Physical address" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="460" width="90" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-22" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="210" as="sourcePoint" />
|
||||
<mxPoint x="530" y="200" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="260" y="160" />
|
||||
<mxPoint x="410" y="160" />
|
||||
<mxPoint x="530" y="160" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-24" value="Pre-allocated huge page with mmap" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="330" y="120" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-25" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF8324;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="330" y="230" as="sourcePoint" />
|
||||
<mxPoint x="400" y="230" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="330" y="210" />
|
||||
<mxPoint x="400" y="210" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-27" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#305AFF;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="230" as="sourcePoint" />
|
||||
<mxPoint x="500" y="230" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="450" y="210" />
|
||||
<mxPoint x="500" y="210" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-28" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="510" as="sourcePoint" />
|
||||
<mxPoint x="560" y="510" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="300" y="580" />
|
||||
<mxPoint x="470" y="580" />
|
||||
<mxPoint x="560" y="580" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-29" value="Physically contigous memory" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="370" y="590" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-30" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="180" as="sourcePoint" />
|
||||
<mxPoint x="360" y="210" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="360" y="180" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-31" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="470" y="180" as="sourcePoint" />
|
||||
<mxPoint x="470" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-32" value="Blocked bases behaviour by using bounds in the FAT pointer" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="670" y="170" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-33" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="360" as="sourcePoint" />
|
||||
<mxPoint x="300" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-34" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="350" as="sourcePoint" />
|
||||
<mxPoint x="560" y="360" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-35" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="370" as="sourcePoint" />
|
||||
<mxPoint x="170" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-36" value="Offset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="350" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -0,0 +1,184 @@
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-21T13:04:41.246Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="Epoct3TQQ8LMbZgI2seG" version="24.4.4" type="device">
|
||||
<diagram id="6sDLX4wBBA-Nij57IY7x" name="Page-1">
|
||||
<mxGraphModel dx="1194" dy="647" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="280" width="710" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-2" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="400" width="710" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-3" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="360" as="sourcePoint" />
|
||||
<mxPoint x="260" y="220" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-4" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="350" as="sourcePoint" />
|
||||
<mxPoint x="530" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-6" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="490" as="sourcePoint" />
|
||||
<mxPoint x="300" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-7" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="560" y="490" as="sourcePoint" />
|
||||
<mxPoint x="560" y="360" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="330" y="360" as="sourcePoint" />
|
||||
<mxPoint x="330" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-9" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="360" as="sourcePoint" />
|
||||
<mxPoint x="400" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-10" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="360" as="sourcePoint" />
|
||||
<mxPoint x="450" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-11" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="360" as="sourcePoint" />
|
||||
<mxPoint x="500" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-14" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="360" y="480" as="sourcePoint" />
|
||||
<mxPoint x="360" y="370" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="360" y="440" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-15" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#FF8324;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="480" as="sourcePoint" />
|
||||
<mxPoint x="420" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-16" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="470" y="480" as="sourcePoint" />
|
||||
<mxPoint x="470" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-17" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;strokeColor=#305AFF;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="520" y="480" as="sourcePoint" />
|
||||
<mxPoint x="520" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-19" value="Virtual address" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="240" width="90" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-20" value="Physical address" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="460" width="90" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-22" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="210" as="sourcePoint" />
|
||||
<mxPoint x="530" y="200" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="260" y="160" />
|
||||
<mxPoint x="410" y="160" />
|
||||
<mxPoint x="530" y="160" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-24" value="Pre-allocated huge page with mmap" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="330" y="120" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-25" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF8324;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="330" y="230" as="sourcePoint" />
|
||||
<mxPoint x="400" y="230" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="330" y="210" />
|
||||
<mxPoint x="400" y="210" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-27" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#305AFF;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="230" as="sourcePoint" />
|
||||
<mxPoint x="500" y="230" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="450" y="210" />
|
||||
<mxPoint x="500" y="210" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-28" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="510" as="sourcePoint" />
|
||||
<mxPoint x="560" y="510" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="300" y="580" />
|
||||
<mxPoint x="470" y="580" />
|
||||
<mxPoint x="560" y="580" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-29" value="Physically contigous memory" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="370" y="590" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-30" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="180" as="sourcePoint" />
|
||||
<mxPoint x="360" y="210" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="360" y="180" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-31" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="470" y="180" as="sourcePoint" />
|
||||
<mxPoint x="470" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-32" value="Blocked bases behaviour by using bounds in the FAT pointer" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="670" y="170" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-33" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="360" as="sourcePoint" />
|
||||
<mxPoint x="300" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-34" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="350" as="sourcePoint" />
|
||||
<mxPoint x="560" y="360" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-35" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=#FF197D;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="370" as="sourcePoint" />
|
||||
<mxPoint x="170" y="370" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="FFlbrtXu8AWhxemLCW9n-36" value="Offset" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="350" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -0,0 +1,470 @@
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36" version="26.0.5">
|
||||
<diagram id="p0pThKfTlX6DZ2e91kIa" name="Page-3">
|
||||
<mxGraphModel dx="1594" dy="612" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-134" value="C program&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="88" y="150" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-136" value="Custom Allocator" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="355" y="150" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-139" value="" style="endArrow=none;html=1;rounded=0;exitX=0.442;exitY=0.95;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="zlaXhJNNHMdkcyNA0gO5-134" target="zlaXhJNNHMdkcyNA0gO5-136" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="140" y="136" as="sourcePoint" />
|
||||
<mxPoint x="414" y="280" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="140" y="320" />
|
||||
<mxPoint x="414" y="320" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-140" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="90" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-141" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="470" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-142" value="Execution" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="30" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-143" value="Execution" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="460" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-144" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="980" as="sourcePoint" />
|
||||
<mxPoint x="280" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-145" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="30" y="410" as="sourcePoint" />
|
||||
<mxPoint x="550" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-146" value="Standard Malloc()" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="40" y="430" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-147" value="<b>Current proposed<br>Malloc()</b>" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="320" y="420" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-148" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="10" y="510" width="150" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-149" value="" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="160" y="510" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-150" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="150" y="450" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-151" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="10" y="530" width="190" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-152" value="bounds" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="10" y="530" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-153" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="70" y="530" width="50" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-154" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="120" y="530" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-155" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-156" value="64" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="170" y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-157" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="620" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-158" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-159" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="50" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-160" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-161" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-162" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="140" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-163" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
|
||||
<mxGeometry x="170" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-164" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="195" y="583" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-165" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="670" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-166" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="20" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-167" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
|
||||
<mxGeometry x="50" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-168" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-169" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="110" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-170" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="140" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-171" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="170" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-172" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#D6B656;" parent="1" source="zlaXhJNNHMdkcyNA0gO5-159" target="H-m2h82lT7eHoo2N1_Mm-23" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-128" y="654" />
|
||||
<mxPoint x="-128" y="679" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-173" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" target="H-m2h82lT7eHoo2N1_Mm-23" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="125" y="640" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-122" y="659" />
|
||||
<mxPoint x="-122" y="678" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-174" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.389;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" source="zlaXhJNNHMdkcyNA0gO5-158" target="H-m2h82lT7eHoo2N1_Mm-19" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="68" y="650" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-175" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" source="zlaXhJNNHMdkcyNA0gO5-163" target="H-m2h82lT7eHoo2N1_Mm-24" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="185" y="658" />
|
||||
<mxPoint x="-31" y="664" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-176" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
|
||||
<mxGeometry x="200" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-177" value="Physical Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="214" y="697" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-178" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" target="zlaXhJNNHMdkcyNA0gO5-179" edge="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="160" y="770" as="targetPoint" />
|
||||
<mxPoint x="120" y="690" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-179" value="non-contiguous allocation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="50" y="780" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-180" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="530" width="180" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-181" value="" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
|
||||
<mxGeometry x="490" y="530" width="50" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-182" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="485" y="470" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-183" value="bounds<br>Top [11:3]<br>Bottom[13:3]" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-184" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="400" y="550" width="50" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-185" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-186" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="315" y="670" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-187" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="315" y="750" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-188" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="315" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-189" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="350" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-190" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="385" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-191" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="420" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-192" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="455" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-193" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="490" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-194" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="525" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-195" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="315" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-196" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="350" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-197" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="385" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-198" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
||||
<mxGeometry x="420" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-199" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="455" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-200" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="490" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-201" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="525" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-202" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="zlaXhJNNHMdkcyNA0gO5-189" target="H-m2h82lT7eHoo2N1_Mm-6" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="690" as="sourcePoint" />
|
||||
<mxPoint x="330" y="640" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="368" y="702" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-203" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82B366;" parent="1" target="H-m2h82lT7eHoo2N1_Mm-6" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="403" y="690" as="sourcePoint" />
|
||||
<mxPoint x="413" y="760" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="403" y="704" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-204" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="710" as="sourcePoint" />
|
||||
<mxPoint x="315" y="650" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-205" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="350" y="790" as="sourcePoint" />
|
||||
<mxPoint x="350" y="730" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-206" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="455" y="790" as="sourcePoint" />
|
||||
<mxPoint x="455" y="730" as="targetPoint" />
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-207" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="710" as="sourcePoint" />
|
||||
<mxPoint x="420" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-208" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="299" y="634" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-37" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;strokeColor=#82B366;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-198">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="634" y="719" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-210" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="320" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-211" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="430" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-212" value="Offset" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="337.5" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-213" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="500" y="640" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-216" value="contiguous allocation" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" parent="1" vertex="1">
|
||||
<mxGeometry x="345" y="880" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-244" value="Load allocator with C program" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="160" y="290" width="230" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="639" y="667" width="33" height="95" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-6" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#82B366;" vertex="1" parent="1">
|
||||
<mxGeometry x="639" y="702" width="33" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-7" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="705" y="632" width="32" height="132" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-8" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="766" y="588" width="30" height="176" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-10" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#D5E8D4;strokeColor=#82B366;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-188">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="329" y="760" as="sourcePoint" />
|
||||
<mxPoint x="638" y="716" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="333" y="712" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-12" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="605" y="702" as="sourcePoint" />
|
||||
<mxPoint x="694" y="702" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-13" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="614" y="727" as="sourcePoint" />
|
||||
<mxPoint x="696" y="727" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-14" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="585" y="676" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-15" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="585" y="725" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-16" value="L1 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="625.5" y="770" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-17" value="L2 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="695" y="770" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-18" value="L3 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="755" y="770" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-19" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="-111" y="690" width="33" height="95" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-20" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="-175" y="653" width="32" height="132" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-21" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="-235" y="609" width="30" height="176" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-22" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F8CECC;strokeColor=#F8CECC;" vertex="1" parent="1">
|
||||
<mxGeometry x="-111" y="717" width="33" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-23" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF2CC;strokeColor=#FFF2CC;" vertex="1" parent="1">
|
||||
<mxGeometry x="-175" y="692" width="33" height="25" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-24" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E1D5E7;strokeColor=#E1D5E7;" vertex="1" parent="1">
|
||||
<mxGeometry x="-236.5" y="608" width="31.5" height="26" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-26" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;fillColor=#f8cecc;strokeColor=#b85450;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="H-m2h82lT7eHoo2N1_Mm-22" target="zlaXhJNNHMdkcyNA0gO5-176">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="45" y="650" as="sourcePoint" />
|
||||
<mxPoint x="93" y="764" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="204" y="730" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-28" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#9673A6;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="H-m2h82lT7eHoo2N1_Mm-24" target="zlaXhJNNHMdkcyNA0gO5-167">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-202" y="625" as="sourcePoint" />
|
||||
<mxPoint x="288" y="634" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-195" y="652" />
|
||||
<mxPoint x="-199" y="850" />
|
||||
<mxPoint x="65" y="853" />
|
||||
<mxPoint x="65" y="704" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-29" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#D6B656;" edge="1" parent="1" source="H-m2h82lT7eHoo2N1_Mm-23" target="zlaXhJNNHMdkcyNA0gO5-168">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="238" y="684" as="sourcePoint" />
|
||||
<mxPoint x="48" y="847" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-120" y="711" />
|
||||
<mxPoint x="-128" y="835" />
|
||||
<mxPoint x="53" y="838" />
|
||||
<mxPoint x="56" y="742" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-30" value="L1 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-126" y="785" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-31" value="L2 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-189" y="785" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-32" value="L3 TLB" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-253" y="785" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-34" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.407;entryY=0.1;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#6C8EBF;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-197" target="zlaXhJNNHMdkcyNA0gO5-216">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="271" y="725" as="sourcePoint" />
|
||||
<mxPoint x="396" y="865" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-35" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#82B366;" edge="1" parent="1" source="H-m2h82lT7eHoo2N1_Mm-6" target="zlaXhJNNHMdkcyNA0gO5-196">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="271" y="725" as="sourcePoint" />
|
||||
<mxPoint x="321" y="675" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="553" y="730" />
|
||||
<mxPoint x="368" y="735" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-36" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeColor=#82B366;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-197">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="634" y="717" as="sourcePoint" />
|
||||
<mxPoint x="378" y="760" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="553" y="736" />
|
||||
<mxPoint x="403" y="738" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-209" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="413" y="634" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-40" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-221" y="599" as="sourcePoint" />
|
||||
<mxPoint x="-86" y="620" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="-221" y="581" />
|
||||
<mxPoint x="-86" y="581" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="H-m2h82lT7eHoo2N1_Mm-41" value="TLB walk" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-183" y="548" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
@@ -0,0 +1,338 @@
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-21T12:35:34.063Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="PmiV2Ku_bXYPnH-DUvJP" version="24.4.4" type="device">
|
||||
<diagram id="p0pThKfTlX6DZ2e91kIa" name="Page-3">
|
||||
<mxGraphModel dx="1194" dy="675" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-134" target="zlaXhJNNHMdkcyNA0gO5-137">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="150" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-134" value="C program&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="80" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-136" target="zlaXhJNNHMdkcyNA0gO5-138">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="414" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-136" value="Custom Allocator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="354" y="80" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-137" value="Pure Cap binary" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="230" width="120" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-138" value="Malloc Shared Object file" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="356" y="230" width="116" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-139" value="" style="endArrow=none;html=1;rounded=0;exitX=0.423;exitY=1.076;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-137" target="zlaXhJNNHMdkcyNA0gO5-138">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="240" y="230" as="sourcePoint" />
|
||||
<mxPoint x="410" y="320" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="140" y="320" />
|
||||
<mxPoint x="414" y="320" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-140" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="90" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-141" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="470" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-142" value="Execution" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-143" value="Execution" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="460" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-144" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="980" as="sourcePoint" />
|
||||
<mxPoint x="280" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-145" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="30" y="410" as="sourcePoint" />
|
||||
<mxPoint x="550" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-146" value="Standard mmap()" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="40" y="430" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-147" value="<b>Current proposal<br>mmap()</b>" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="420" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-148" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="510" width="150" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-149" value="" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="510" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-150" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="450" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-151" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="530" width="190" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-152" value="bounds" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="530" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-153" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="530" width="50" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-154" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="530" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-155" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-156" value="64" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-157" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="620" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-158" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-159" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-160" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-161" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-162" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="140" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-163" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-164" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="590" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-165" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="670" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-166" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-167" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-168" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-169" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-170" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="140" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-171" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-172" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#d6b656;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-159" target="zlaXhJNNHMdkcyNA0gO5-168">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-173" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#d6b656;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-168">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="125" y="640" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-174" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.931;entryY=-0.04;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-158" target="zlaXhJNNHMdkcyNA0gO5-165">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="68" y="650" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-175" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-163" target="zlaXhJNNHMdkcyNA0gO5-167">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-176" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-177" value="Physical Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="690" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-178" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-179">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="160" y="770" as="targetPoint" />
|
||||
<mxPoint x="120" y="690" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-179" value="non-contiguous allocation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="780" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-180" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="310" y="530" width="180" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-181" value="" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="530" width="50" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-182" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="485" y="470" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-183" value="bounds<br>Top [11:3]<br>Bottom[13:3]" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="310" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-184" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="550" width="50" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-185" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="450" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-186" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="670" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-187" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="750" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-188" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-189" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-190" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="385" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-191" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-192" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="455" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-193" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-194" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="525" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-195" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-196" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-197" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="385" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-198" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-199" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="455" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-200" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-201" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="525" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-202" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-189" target="zlaXhJNNHMdkcyNA0gO5-197">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="690" as="sourcePoint" />
|
||||
<mxPoint x="330" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-203" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-198">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="403" y="690" as="sourcePoint" />
|
||||
<mxPoint x="413" y="760" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-204" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="710" as="sourcePoint" />
|
||||
<mxPoint x="315" y="650" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-205" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="350" y="790" as="sourcePoint" />
|
||||
<mxPoint x="350" y="730" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-206" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="455" y="790" as="sourcePoint" />
|
||||
<mxPoint x="455" y="730" as="targetPoint" />
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-207" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="710" as="sourcePoint" />
|
||||
<mxPoint x="420" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-208" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="290" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-209" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-210" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-211" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="430" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-212" value="Offset" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="337.5" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-213" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="640" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-214" value="Physical Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="770" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-215" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.393;entryY=0.015;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" target="zlaXhJNNHMdkcyNA0gO5-216">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="430" y="860" as="targetPoint" />
|
||||
<mxPoint x="400" y="780" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-216" value="contiguous allocation" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="345" y="880" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-244" value="env LD_PRELOAD=malloc.so ./a.out" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="290" width="230" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-245" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;fontSize=12;startSize=8;endSize=8;curved=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;strokeColor=#4AABFF;" edge="1" parent="1" source="zlaXhJNNHMdkcyNA0gO5-197" target="zlaXhJNNHMdkcyNA0gO5-190">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="538" y="707" as="sourcePoint" />
|
||||
<mxPoint x="424" y="693" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="687" y="716" />
|
||||
<mxPoint x="503" y="701" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="zlaXhJNNHMdkcyNA0gO5-249" value="<font style="font-size: 14px;">physically contiguous memory with huge pages&nbsp;</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;" vertex="1" parent="1">
|
||||
<mxGeometry x="624" y="698" width="84" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
127
docs/EuroSys/Paper/diagram/drawio/Software stack.drawio
Normal file
@@ -0,0 +1,127 @@
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-20T12:30:55.488Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="sT62FugIQV0-lQggL2xd" version="24.4.4" type="device">
|
||||
<diagram name="Page-1" id="tngvrjbM69a9KcvquAqQ">
|
||||
<mxGraphModel dx="954" dy="622" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-1" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="60" y="280" as="sourcePoint" />
|
||||
<mxPoint x="750" y="280" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-2" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="60" y="530" as="sourcePoint" />
|
||||
<mxPoint x="760" y="530" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="410" y="530" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-3" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="50" width="310" height="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-4" value="FreeBSD contigmem module" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="60" width="150" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-5" value="Prototype memory allocator&nbsp;<div>(Running on PureCap)</div>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="30" width="190" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-6" value="FreeBSD contigmem module<div>(Kernel object file)</div>" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="340" width="220" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-7" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.532;entryY=0.011;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-4" target="VtlKWbMzve_L1N6Ez10J-6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="160" as="sourcePoint" />
|
||||
<mxPoint x="440" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-8" value="DPDK" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="130" y="85" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-9" value="Loaded to kernel on boot" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="181" y="200" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-11" value="mmap" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="140" width="60" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-13" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.395;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-6" target="VtlKWbMzve_L1N6Ez10J-5">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="160" as="sourcePoint" />
|
||||
<mxPoint x="440" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-14" value="C program" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="160" width="155" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-15" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.563;entryY=1.08;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.348;exitY=-0.05;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-14" target="VtlKWbMzve_L1N6Ez10J-5">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="340" as="sourcePoint" />
|
||||
<mxPoint x="440" y="290" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.721;exitY=0.98;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.548;entryY=0.017;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-5" target="VtlKWbMzve_L1N6Ez10J-14">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="340" as="sourcePoint" />
|
||||
<mxPoint x="700" y="300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-17" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" target="VtlKWbMzve_L1N6Ez10J-5">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="240" as="sourcePoint" />
|
||||
<mxPoint x="440" y="290" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="500" y="200" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-18" value="Tracks the bounds set" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="450" y="240" width="130" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="430" as="sourcePoint" />
|
||||
<mxPoint x="420" y="460" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="260" y="460" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-20" value="FreeBSD functions related to virtual memory management" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="430" width="190" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-22" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;exitX=0.309;exitY=1.022;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="340" as="sourcePoint" />
|
||||
<mxPoint x="168" y="480" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-23" value="Kernel space" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="290" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-24" value="User space" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="40" y="10" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-26" value="Modified to map a single large contiguous memory segment" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="480" width="200" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-29" value="Physically contagious memory" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="570" width="160" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-30" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.379;exitY=1.033;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="VtlKWbMzve_L1N6Ez10J-20">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="610" as="sourcePoint" />
|
||||
<mxPoint x="570" y="580" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="492" y="580" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="VtlKWbMzve_L1N6Ez10J-31" value="Morello hardware" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="540" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
160
docs/EuroSys/Paper/diagram/drawio/TLBAccess.drawio
Normal file
@@ -0,0 +1,160 @@
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36" version="26.0.11">
|
||||
<diagram name="Page-1" id="G1hk7cXLOptppJQzhFXz">
|
||||
<mxGraphModel dx="1194" dy="612" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="130" y="490" width="80" height="570" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-2" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="280" y="220" width="480" height="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-3" value="48 bit virtual address" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="280" y="220" width="360" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-4" value="unused bits" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="640" y="220" width="120" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-5" value="Bounds<div><b>Upper [11:3]</b></div><div><b>Bottom [13:3</b>]</div>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="280" y="270" width="210" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-6" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="490" y="270" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-7" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="270" width="190" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-8" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="540" y="560" width="260" height="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-9" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="610" width="200" height="140" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-10" value="Huge page entry" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="610" width="200" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-11" value="<font style="font-size: 18px;">Processor descirpton</font>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="540" y="790" width="260" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-12" value="<h1 style="margin-top: 0px;"><span style="font-weight: normal;">Pointer accessing memory region.</span></h1>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="300" y="140" width="360" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-13" value="4k page entry" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="660" width="200" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-15" value="4k page entry" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="680" width="200" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-16" value="N page entry" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="570" y="700" width="200" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-17" value="<h1 style="margin-top: 0px;"><span style="font-weight: normal;">L1 TLB</span></h1>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="620" y="870" width="120" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-18" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="fsNtkcRwd-RCCKqtk2sz-1" target="fsNtkcRwd-RCCKqtk2sz-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="430" y="580" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-19" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="130" y="820" as="sourcePoint" />
|
||||
<mxPoint x="210" y="820" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-20" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#97D077;strokeColor=light-dark(#006600,#FFFFFF);" parent="1" source="fsNtkcRwd-RCCKqtk2sz-10" target="fsNtkcRwd-RCCKqtk2sz-3" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="480" y="660" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="470" y="630" />
|
||||
<mxPoint x="470" y="430" />
|
||||
<mxPoint x="210" y="430" />
|
||||
<mxPoint x="210" y="258" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-21" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="fsNtkcRwd-RCCKqtk2sz-10" target="fsNtkcRwd-RCCKqtk2sz-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="430" y="580" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-22" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.964;entryY=0.584;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="fsNtkcRwd-RCCKqtk2sz-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="570" y="640" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-23" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="110" y="690" as="sourcePoint" />
|
||||
<mxPoint x="230" y="690" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-24" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="110" y="730" as="sourcePoint" />
|
||||
<mxPoint x="220" y="730" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-25" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="690" as="sourcePoint" />
|
||||
<mxPoint x="570" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-26" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="fsNtkcRwd-RCCKqtk2sz-10" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="730" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-27" value="" style="endArrow=none;html=1;rounded=0;strokeColor=light-dark(#006600,#FFFFFF);" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="710" as="sourcePoint" />
|
||||
<mxPoint x="570" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-28" value="" style="endArrow=none;html=1;rounded=0;entryX=1.009;entryY=0.386;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=light-dark(#006600,#FFFFFF);" parent="1" target="fsNtkcRwd-RCCKqtk2sz-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="130" y="710" as="sourcePoint" />
|
||||
<mxPoint x="480" y="530" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-29" value="<h1 style="margin-top: 0px;"><br></h1>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="520" y="480" width="360" height="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-31" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="320" y="1030" as="sourcePoint" />
|
||||
<mxPoint x="400" y="1030" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-32" value="Huge page" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="990" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-35" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="320" y="1080" as="sourcePoint" />
|
||||
<mxPoint x="400" y="1080" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-36" value="Bounds" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="310" y="1050" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-41" value="" style="endArrow=none;html=1;rounded=0;strokeColor=light-dark(#97D077,#FFFFFF);" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="470" y="1030" as="sourcePoint" />
|
||||
<mxPoint x="590" y="1030" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="fsNtkcRwd-RCCKqtk2sz-42" value="Accessing memory region" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="470" y="990" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/EuroSys/Paper/diagram/expirement-runs.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/EuroSys/Paper/diagram/glibc.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
docs/EuroSys/Paper/diagram/hugepages.drawio.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
4
docs/EuroSys/Paper/diagram/hugepages.drawio.svg
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/EuroSys/Paper/diagram/kmeans.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
docs/EuroSys/Paper/diagram/loadmem.png
Normal file
|
After Width: | Height: | Size: 42 KiB |
100
docs/EuroSys/Paper/drawio/Expirement-new.drawio
Normal file
@@ -0,0 +1,100 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-10-31T09:14:05.124Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="MOV2yfMVwPbAHE4C1NHR" version="22.0.8" type="device">
|
||||
<diagram name="Page-1" id="McNYjQjwSvaLzqG4gVjq">
|
||||
<mxGraphModel dx="1264" dy="998" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-1" value="C program (Pure Cap Binary)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="50" y="240" width="220" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-2" value="Modified Malloc shared object file&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="230" y="110" width="250" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-3" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.564;entryY=-0.056;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="F4gldFT95kyvLo6slutU-2" target="F4gldFT95kyvLo6slutU-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="310" as="sourcePoint" />
|
||||
<mxPoint x="310" y="260" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-4" value="loaded via LD to overwrite the existing implementation&nbsp;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="80" y="140" width="110" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.668;exitY=0.988;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="F4gldFT95kyvLo6slutU-2" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="310" as="sourcePoint" />
|
||||
<mxPoint x="450" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-6" value="Links to the Modified MMAP call" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="220" width="90" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-7" value="The Range TLB implementation" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="414" y="320" width="236" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="600" y="70" width="170" height="230" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-11" value="Modified MMAP tested on different memory object sizes" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="625" y="100" width="120" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-39" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="610" y="160" width="150" height="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-41" value="24 kb" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="650" y="170" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-42" value="34 kb" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="650" y="190" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-44" value="48 kb" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="650" y="210" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-45" value="64 kb" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="650" y="230" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-46" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=0.012;entryY=0.339;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="F4gldFT95kyvLo6slutU-10" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="230" as="sourcePoint" />
|
||||
<mxPoint x="590" y="150" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="500" y="200" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-48" value="......." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
|
||||
<mxGeometry x="650" y="250" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-49" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.364;exitY=1.011;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="F4gldFT95kyvLo6slutU-1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="380" y="270" as="sourcePoint" />
|
||||
<mxPoint x="130" y="400" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-50" value="Micro Benchmarks&nbsp;<br>(The deciding factor would be C&nbsp;<br>programs that aggressively use Malloc)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="70" y="400" width="200" height="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-53" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="370" y="100" as="sourcePoint" />
|
||||
<mxPoint x="450" y="40" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="370" y="40" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="F4gldFT95kyvLo6slutU-55" value="Different Cherified memory allocators. &nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||
<mxGeometry x="450" y="10" width="180" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="pXU2l4itcDNmfNoYy7Vu-1" value="1" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||
<mxGeometry x="230" y="200" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="pXU2l4itcDNmfNoYy7Vu-2" value="2" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||
<mxGeometry x="260" y="60" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="pXU2l4itcDNmfNoYy7Vu-7" value="3" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||
<mxGeometry x="540" y="270" width="40" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
144
docs/EuroSys/Paper/drawio/Expirement.drawio
Normal file
188
docs/EuroSys/Paper/drawio/Hardwareoverview.drawio
Normal file
@@ -0,0 +1,188 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-10-23T17:24:40.355Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="aqYs99dEvnZOfiNjugZo" version="22.0.6" type="device">
|
||||
<diagram name="Page-1" id="QnltM49iqaONMIQAPlFM">
|
||||
<mxGraphModel dx="695" dy="1718" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-53" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="80" width="150" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-54" value="ID" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="80" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-55" value="VAddr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="80" width="120" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-57" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-55">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="280" as="sourcePoint" />
|
||||
<mxPoint x="320" y="95" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-58" value="Page TLB" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="80" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-59" value="L1 Cache" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="470" y="10" width="250" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-60" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-59">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="270" y="90" as="sourcePoint" />
|
||||
<mxPoint x="280" y="10" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="270" y="30" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-61" value="page offset" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-60">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-62" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="240" y="400" as="sourcePoint" />
|
||||
<mxPoint x="240" y="-20" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-63" value="+" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="365" y="190" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-67" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="250" y="100" as="sourcePoint" />
|
||||
<mxPoint x="360" y="205" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="300" y="170" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-68" value="Vaddr" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-67">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-69" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="260" width="100" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-71" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="260" width="100" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-72" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="280" width="100" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-73" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="300" width="100" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-74" value="RTLB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="220" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-75" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-54" target="B_8D_iWX-V5mQrey9REb-73">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="250" as="sourcePoint" />
|
||||
<mxPoint x="40" y="300" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="40" y="300" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-77" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-73" target="B_8D_iWX-V5mQrey9REb-63">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="180" y="300" as="sourcePoint" />
|
||||
<mxPoint x="390" y="240" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="290" y="240" />
|
||||
<mxPoint x="380" y="240" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-78" value="Delta" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-77">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-79" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="660" y="410" as="sourcePoint" />
|
||||
<mxPoint x="660" y="-20" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-80" value="" style="shape=or;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="590" y="110" width="40" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-81" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=-0.025;entryY=0.617;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-58">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="170" y="290" as="sourcePoint" />
|
||||
<mxPoint x="200" y="120" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="180" y="290" />
|
||||
<mxPoint x="190" y="120" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-83" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-80">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="440" y="100" as="sourcePoint" />
|
||||
<mxPoint x="520" y="170" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="500" y="100" />
|
||||
<mxPoint x="500" y="120" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-84" value="PAddr 0" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-83">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-90" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-63" target="B_8D_iWX-V5mQrey9REb-80">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="360" y="190" as="sourcePoint" />
|
||||
<mxPoint x="580" y="150" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="500" y="200" />
|
||||
<mxPoint x="500" y="150" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-91" value="PAddr 1" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-90">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-92" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="610" y="90" as="sourcePoint" />
|
||||
<mxPoint x="610" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-94" value="has tag ?" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="580" y="60" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-95" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.9;entryY=1.075;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-80" target="B_8D_iWX-V5mQrey9REb-59">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="330" y="110" as="sourcePoint" />
|
||||
<mxPoint x="720" y="130" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="695" y="135" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-96" value="PPN" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="B_8D_iWX-V5mQrey9REb-95">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-97" value="Text" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="240" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-99" value="<b>Address generation</b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="370" width="120" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-100" value="<b>Translation</b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="395" y="370" width="120" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-101" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="80" width="20" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-102" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-101">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="30" y="40" as="sourcePoint" />
|
||||
<mxPoint x="90" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-103" value="Capability metadata" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
461
docs/EuroSys/Paper/drawio/MainOverview.drawio
Normal file
@@ -0,0 +1,461 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-11-06T12:49:49.955Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" etag="GTWQrNMXcxtvrXw_fW7o" version="22.0.8" type="device">
|
||||
<diagram name="Page-1" id="sFsCJRjHab2z_hmjgrt8">
|
||||
<mxGraphModel dx="1642" dy="651" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-1" target="sotdNrQeL3lC7SlMob6G-5">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="150" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-1" value="C program&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="80" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-2" target="sotdNrQeL3lC7SlMob6G-7">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="414" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-2" value="Custom Allocator" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="354" y="80" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-5" value="Pure Cap binary" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="230" width="120" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-7" value="Malloc Shared Object file" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="356" y="230" width="116" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-8" value="" style="endArrow=none;html=1;rounded=0;exitX=0.423;exitY=1.076;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-5" target="sotdNrQeL3lC7SlMob6G-7">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="240" y="230" as="sourcePoint" />
|
||||
<mxPoint x="410" y="320" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="140" y="320" />
|
||||
<mxPoint x="414" y="320" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-9" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="90" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-10" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="320" as="sourcePoint" />
|
||||
<mxPoint x="470" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-11" value="Execution" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-12" value="Execution" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="460" y="340" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-13" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="980" as="sourcePoint" />
|
||||
<mxPoint x="280" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-14" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="30" y="410" as="sourcePoint" />
|
||||
<mxPoint x="550" y="410" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-15" value="Standard mmap()" style="text;html=1;strokeColor=#b85450;fillColor=#f8cecc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="40" y="430" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-16" value="<b>Current proposal<br>mmap_range()</b>" style="text;html=1;strokeColor=#6c8ebf;fillColor=#dae8fc;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="420" width="120" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-17" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="510" width="150" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-18" value="" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="510" width="40" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-20" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="450" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-22" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="530" width="190" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-23" value="bounds" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="530" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-24" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="530" width="50" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-26" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="530" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-27" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-28" value="64" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="560" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-29" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="620" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-30" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-31" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-32" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-33" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-34" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="140" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-35" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="620" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-36" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="590" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-37" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="670" width="210" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-38" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-39" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-40" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-41" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-42" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="140" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-43" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="170" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-44" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#d6b656;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-31" target="sotdNrQeL3lC7SlMob6G-40">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-45" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fillColor=#fff2cc;strokeColor=#d6b656;" edge="1" parent="1" target="sotdNrQeL3lC7SlMob6G-40">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="125" y="640" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-46" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.931;entryY=-0.04;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-30" target="sotdNrQeL3lC7SlMob6G-37">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="68" y="650" as="sourcePoint" />
|
||||
<mxPoint x="105" y="680" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-47" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#e1d5e7;strokeColor=#9673a6;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-35" target="sotdNrQeL3lC7SlMob6G-39">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="190" y="670" as="sourcePoint" />
|
||||
<mxPoint x="240" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-48" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="670" width="30" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-49" value="Physical Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="690" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" target="sotdNrQeL3lC7SlMob6G-50">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="160" y="770" as="targetPoint" />
|
||||
<mxPoint x="120" y="690" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-50" value="non-contiguous allocation" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="780" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-54" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="310" y="530" width="180" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-55" value="Offset" style="rounded=0;whiteSpace=wrap;html=1;direction=south;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="530" width="50" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-56" value="Opportunity to store meta-data using ARM TBI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="485" y="470" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-60" value="bounds<br>Top [11:3]<br>Bottom[13:3]" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="310" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-61" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="550" width="50" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-62" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="450" y="550" width="90" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-63" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="670" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-64" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="750" width="245" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-65" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-66" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-67" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="385" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-68" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-69" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="455" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-70" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-71" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="525" y="670" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-72" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-73" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-74" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="385" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-75" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-76" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="455" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-78" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-79" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="525" y="750" width="35" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-80" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-66" target="sotdNrQeL3lC7SlMob6G-74">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="690" as="sourcePoint" />
|
||||
<mxPoint x="330" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-81" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1" target="sotdNrQeL3lC7SlMob6G-75">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="403" y="690" as="sourcePoint" />
|
||||
<mxPoint x="413" y="760" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-82" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="315" y="710" as="sourcePoint" />
|
||||
<mxPoint x="315" y="650" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-85" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="350" y="790" as="sourcePoint" />
|
||||
<mxPoint x="350" y="730" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-88" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="455" y="790" as="sourcePoint" />
|
||||
<mxPoint x="455" y="730" as="targetPoint" />
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-90" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="420" y="710" as="sourcePoint" />
|
||||
<mxPoint x="420" y="640" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-91" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="290" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-92" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-93" value="Top" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-94" value="Bottom" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="430" y="790" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-95" value="Offset" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="337.5" y="710" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-96" value="Virtual Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="640" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-97" value="Physical Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="770" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-99" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.393;entryY=0.015;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" target="sotdNrQeL3lC7SlMob6G-100">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="430" y="860" as="targetPoint" />
|
||||
<mxPoint x="400" y="780" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-100" value="contiguous allocation" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="345" y="880" width="140" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-101" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="120" y="830" as="sourcePoint" />
|
||||
<mxPoint x="220" y="1030" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-102" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.421;exitY=0.955;exitDx=0;exitDy=0;exitPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-100">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="930" as="sourcePoint" />
|
||||
<mxPoint x="300" y="1030" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-104" value="Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="1080" width="105" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-105" value="offset" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="1080" width="35" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-106" value="Bounds" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="155" y="1080" width="100" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-107" value="Object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="255" y="1080" width="100" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-108" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="355" y="1080" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-110" value="" style="endArrow=classic;html=1;rounded=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="440" y="1100" as="sourcePoint" />
|
||||
<mxPoint x="510" y="1100" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-111" value="Page TLB" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="1085" width="80" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-113" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-111" target="sotdNrQeL3lC7SlMob6G-114">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="1110" as="sourcePoint" />
|
||||
<mxPoint x="650" y="1060" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="650" y="1100" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-114" value="L1 Cache" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="540" y="1020" width="220" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-115" value="Physical address" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="600" y="1110" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-116" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-105">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="340" y="1090" as="sourcePoint" />
|
||||
<mxPoint x="520" y="1200" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="135" y="1200" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-117" value="+" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="525" y="1190" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-118" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.785;entryY=1.107;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" target="sotdNrQeL3lC7SlMob6G-114">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="560" y="1200" as="sourcePoint" />
|
||||
<mxPoint x="770" y="1190" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="713" y="1200" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-119" value="Physical address" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="1210" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-120" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="sotdNrQeL3lC7SlMob6G-117">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="400" y="1190" as="sourcePoint" />
|
||||
<mxPoint x="540" y="1300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-121" value="Virtual Address" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
||||
<mxGeometry x="485" y="1310" width="115" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-123" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-10" y="1070" as="sourcePoint" />
|
||||
<mxPoint x="510" y="1070" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="230" y="1070" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-124" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-10" y="1390" as="sourcePoint" />
|
||||
<mxPoint x="-10" y="1070" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-125" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="-10" y="1390" as="sourcePoint" />
|
||||
<mxPoint x="260" y="1390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-126" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="1390" as="sourcePoint" />
|
||||
<mxPoint x="771.60009765625" y="1390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-127" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="770" y="1390" as="sourcePoint" />
|
||||
<mxPoint x="770" y="1010" as="targetPoint" />
|
||||
<Array as="points" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-128" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="510" y="1070" as="sourcePoint" />
|
||||
<mxPoint x="770" y="1010" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="510" y="1010" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-130" value="<b>Hardware Overview&nbsp;</b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="-15" y="1340" width="165" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-132" value="<span class="s1">Clang-morello -O3 -g -W -Wall -Wextra -Wno-unused-parameter -shared -fPIC malloc.c -o malloc.so</span>" style="text;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="430" y="160" width="290" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-133" value="clang-morello march=morello+c64 <br>-mabi=purecap ./&lt;C program&gt;.c" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="154" y="160" width="200" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sotdNrQeL3lC7SlMob6G-134" value="env LD_PRELOAD=malloc.so ./a.out" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="290" width="230" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
77
docs/EuroSys/Paper/drawio/RangeTLB.drawio
Normal file
@@ -0,0 +1,77 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-10-23T14:17:47.498Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="B1cnEZkPTxdfacaHBIV4" version="22.0.6" type="device">
|
||||
<diagram name="Page-1" id="QnltM49iqaONMIQAPlFM">
|
||||
<mxGraphModel dx="954" dy="647" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="80" width="310" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-2" value="Tag" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="220" y="80" width="110" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-4" value="Vaddr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="330" y="80" width="200" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="160" width="270" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-6" value="Range ID" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="160" width="100" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-9" value="Attr" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="160" width="50" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-10" value="Du" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="470" y="160" width="40" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-11" value="Capability meta-data" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="80" width="160" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-13" value="DELTA" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="340" y="160" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-14" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-2" target="B_8D_iWX-V5mQrey9REb-6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="120" y="150" as="sourcePoint" />
|
||||
<mxPoint x="150" y="260" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="150" y="150" />
|
||||
<mxPoint x="150" y="180" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-15" value="=" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="150" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-17">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="360" as="sourcePoint" />
|
||||
<mxPoint x="380" y="270" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-17" value="+" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
||||
<mxGeometry x="365" y="220" width="30" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-19" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-17" target="B_8D_iWX-V5mQrey9REb-13">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="380" y="210" as="sourcePoint" />
|
||||
<mxPoint x="440" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-20" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-17">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="235" as="sourcePoint" />
|
||||
<mxPoint x="440" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-21" value="Vaddr" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="230" y="220" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-22" value="PAddr" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="280" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
100
docs/EuroSys/Paper/drawio/RangeTranslation.drawio
Normal file
@@ -0,0 +1,100 @@
|
||||
<mxfile host="app.diagrams.net" modified="2023-10-23T14:40:35.598Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15" etag="2vL99PlLfuuCMq24tj8L" version="22.0.6" type="device">
|
||||
<diagram name="Page-1" id="QnltM49iqaONMIQAPlFM">
|
||||
<mxGraphModel dx="695" dy="549" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-24" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="50" width="410" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-25" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="150" width="470" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-26" value="Virtual Space" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="55" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-27" value="Physical space" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="10" y="160" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-28" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="140" y="50" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-29" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="50" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-30" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-28">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="200" y="260" as="sourcePoint" />
|
||||
<mxPoint x="100" y="150" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-35" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="150" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-37" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="150" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-38" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-28">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="140" y="120" as="sourcePoint" />
|
||||
<mxPoint x="310" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-39" value="" style="endArrow=none;html=1;rounded=0;exitX=0.038;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-25">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="150" y="130" as="sourcePoint" />
|
||||
<mxPoint x="98" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-40" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="100" y="120" as="sourcePoint" />
|
||||
<mxPoint x="140" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-43" value="Delta 1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="120" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-44" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="390" y="50" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-45" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="410" y="50" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-46" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="150" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-47" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="460" y="150" width="20" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-48" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-44" target="B_8D_iWX-V5mQrey9REb-46">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="280" as="sourcePoint" />
|
||||
<mxPoint x="310" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-49" value="" style="endArrow=none;html=1;rounded=0;entryX=0.724;entryY=1.05;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="B_8D_iWX-V5mQrey9REb-24">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="387" y="120" as="sourcePoint" />
|
||||
<mxPoint x="310" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-50" value="" style="endArrow=none;html=1;rounded=0;exitX=0.766;exitY=0.05;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="B_8D_iWX-V5mQrey9REb-25">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="260" y="280" as="sourcePoint" />
|
||||
<mxPoint x="440" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-51" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="390" y="120" as="sourcePoint" />
|
||||
<mxPoint x="440" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B_8D_iWX-V5mQrey9REb-52" value="Delta 2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="370" y="120" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
160
docs/EuroSys/Paper/drawio/hugepages.drawio
Normal file
@@ -0,0 +1,160 @@
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36" version="24.7.17">
|
||||
<diagram name="Page-1" id="FsRza-hPNbyGNLG9iDG9">
|
||||
<mxGraphModel dx="554" dy="671" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-1" value="48 bit free Virtual address" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="280" width="270" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-3" value="bounds<br><b>Upper [11:3]</b><br><b>Bottom[13:3</b>]" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="320" width="200" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-4" value="object type" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="320" width="60" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-5" value="Permission" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="360" y="320" width="90" height="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-6" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="390" y="520" width="230" height="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-9" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="90" y="440" width="70" height="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="435" y="550" width="145" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-11" value="Processor Description" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="390" y="660" width="230" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-12" value="huge page entry" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="435" y="550" width="155" height="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-13" value="4k page entry" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="435" y="570" width="155" height="15" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-14" value="4k page entry" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="435" y="585" width="155" height="15" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-17" value="N pages entries&nbsp;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="435" y="600" width="155" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-20" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-12">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="440" y="580" as="sourcePoint" />
|
||||
<mxPoint x="513" y="480" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-21" value="<b><font style="font-size: 18px;">L1 TLB</font></b>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="468.75" y="440" width="87.5" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-22" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="90" y="520" as="sourcePoint" />
|
||||
<mxPoint x="160" y="520" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-23" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="90" y="700" as="sourcePoint" />
|
||||
<mxPoint x="160" y="700" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-24" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;entryX=1.029;entryY=0.371;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="90" y="590" as="sourcePoint" />
|
||||
<mxPoint x="200" y="590" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-25" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="90" y="620" as="sourcePoint" />
|
||||
<mxPoint x="160" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.943;entryY=0.191;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-12" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="250" y="600" as="sourcePoint" />
|
||||
<mxPoint x="300" y="550" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-31" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.648;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-13" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="445" y="560" as="sourcePoint" />
|
||||
<mxPoint x="166" y="526" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-32" value="" style="endArrow=none;html=1;rounded=0;exitX=0.022;exitY=0.793;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.994;entryY=0.795;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-9" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="280" y="610" as="sourcePoint" />
|
||||
<mxPoint x="330" y="560" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-33" value="" style="endArrow=none;html=1;rounded=0;exitX=-0.006;exitY=0.865;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.008;entryY=0.868;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-9" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="102" y="767" as="sourcePoint" />
|
||||
<mxPoint x="170" y="768" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-34" value="" style="endArrow=none;html=1;rounded=0;exitX=0.019;exitY=0.938;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.033;entryY=0.938;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-9" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="310" y="610" as="sourcePoint" />
|
||||
<mxPoint x="160" y="810" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-35" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.976;entryY=0.803;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-13" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="310" y="610" as="sourcePoint" />
|
||||
<mxPoint x="270" y="820" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-36" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-13">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="445" y="584" as="sourcePoint" />
|
||||
<mxPoint x="160" y="790" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-37" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1.033;entryY=0.938;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-13" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="445" y="584" as="sourcePoint" />
|
||||
<mxPoint x="168" y="771" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-38" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-14" target="wklN2S1exZwc-Jlbxibe-9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="440" y="600" as="sourcePoint" />
|
||||
<mxPoint x="172" y="825" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-43" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#21CC21;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-1" target="wklN2S1exZwc-Jlbxibe-12">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="70" y="370" as="sourcePoint" />
|
||||
<mxPoint x="320" y="560" as="targetPoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="60" y="310" />
|
||||
<mxPoint x="60" y="410" />
|
||||
<mxPoint x="320" y="410" />
|
||||
<mxPoint x="310" y="560" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-44" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="160" y="590" as="sourcePoint" />
|
||||
<mxPoint x="430" y="560" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-45" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;exitX=0.989;exitY=0.453;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="wklN2S1exZwc-Jlbxibe-9" target="wklN2S1exZwc-Jlbxibe-12">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="300" y="610" as="sourcePoint" />
|
||||
<mxPoint x="350" y="560" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wklN2S1exZwc-Jlbxibe-46" value="unused bits" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="370" y="280" width="80" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
4
docs/EuroSys/Paper/drawio/hugepages.drawio.svg
Normal file
|
After Width: | Height: | Size: 35 KiB |
107
docs/EuroSys/Paper/paper.aux
Normal file
@@ -0,0 +1,107 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
|
||||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
|
||||
\global\let\oldcontentsline\contentsline
|
||||
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
|
||||
\global\let\oldnewlabel\newlabel
|
||||
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
|
||||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||
\AtEndDocument{\ifx\hyper@anchor\@undefined
|
||||
\let\contentsline\oldcontentsline
|
||||
\let\newlabel\oldnewlabel
|
||||
\fi}
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\citation{mittal_survey_2017}
|
||||
\citation{panwar_hawkeye_2019}
|
||||
\citation{woodruff_cheri_2014}
|
||||
\citation{woodruff_cheri_2019}
|
||||
\@writefile{toc}{\contentsline {section}{Abstract}{1}{section*.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}\protected@file@percent }
|
||||
\citation{woodruff_cheri_2019}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {2}Fat-pointer Address Translations}{2}{section.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Encoding Ranges as Bounds to the Pointer}{2}{subsection.2.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{2}{subsection.2.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Sample memory allocator design:}{2}{subsection.2.3}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture\relax }}{3}{figure.caption.3}\protected@file@percent }
|
||||
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
|
||||
\newlabel{fig:HighOverviewArchitecture}{{1}{3}{High overview architecture\relax }{figure.caption.3}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Range of memory\relax }}{3}{figure.caption.4}\protected@file@percent }
|
||||
\newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory\relax }{figure.caption.4}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Sample malloc implementation\relax }}{3}{algorithm.1}\protected@file@percent }
|
||||
\newlabel{alg:malloc}{{1}{3}{Sample malloc implementation\relax }{algorithm.1}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages\relax }}{3}{figure.caption.5}\protected@file@percent }
|
||||
\newlabel{fig:HugePages}{{3}{3}{Fat-pointer Address Translations using huge pages\relax }{figure.caption.5}{}}
|
||||
\citation{jemalloc}
|
||||
\citation{cheribsd}
|
||||
\citation{Morello}
|
||||
\citation{BenchmarkABI}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Sample free implementation\relax }}{4}{algorithm.2}\protected@file@percent }
|
||||
\newlabel{alg:free}{{2}{4}{Sample free implementation\relax }{algorithm.2}{}}
|
||||
\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Sample init alloc function to create a initial 1 GB huge page\relax }}{4}{algorithm.3}\protected@file@percent }
|
||||
\newlabel{alg:initAlloc}{{3}{4}{Sample init alloc function to create a initial 1 GB huge page\relax }{algorithm.3}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {3}Evaluation}{4}{section.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Expirement setup}{4}{subsection.3.1}\protected@file@percent }
|
||||
\citation{PerformanceCounter}
|
||||
\citation{Benchmark}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Benchmarks}{5}{subsection.3.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Micro benchmark}{5}{subsubsection.3.2.1}\protected@file@percent }
|
||||
\newlabel{sec:org41c278c}{{1}{5}{Micro benchmark}{Item.3}{}}
|
||||
\newlabel{sec:org89020f2}{{2}{5}{Micro benchmark}{Item.4}{}}
|
||||
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters\relax }}{5}{table.caption.6}\protected@file@percent }
|
||||
\newlabel{tab:org246a883}{{1}{5}{ARM performance counters\relax }{table.caption.6}{}}
|
||||
\citation{panwar_hawkeye_2019}
|
||||
\citation{THP}
|
||||
\citation{Shadow_superpages}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Results}{6}{subsection.3.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Usability}{6}{subsection.3.4}\protected@file@percent }
|
||||
\newlabel{sec:orgd6ba6f0}{{3.4}{6}{Usability}{subsection.3.4}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {4}Related work}{6}{section.4}\protected@file@percent }
|
||||
\newlabel{sec:org0e192da}{{4}{6}{Related work}{section.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Huge Pages}{6}{subsection.4.1}\protected@file@percent }
|
||||
\citation{DirectSegment}
|
||||
\citation{karakostas_redundant_2015}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Percentage difference between the modified memory allocator against the default system memory allocator\relax }}{7}{figure.caption.7}\protected@file@percent }
|
||||
\newlabel{fig:orga7f3598}{{4}{7}{Percentage difference between the modified memory allocator against the default system memory allocator\relax }{figure.caption.7}{}}
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Kmeans COZ benchmark executed against various cluster sizes\relax }}{7}{figure.caption.8}\protected@file@percent }
|
||||
\newlabel{fig:org8683315}{{5}{7}{Kmeans COZ benchmark executed against various cluster sizes\relax }{figure.caption.8}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Direct Segment}{7}{subsection.4.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Range Memory Mapping (RMM)}{7}{subsection.4.3}\protected@file@percent }
|
||||
\citation{esswoodcheriosnodate}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}CHERI}{8}{subsection.4.4}\protected@file@percent }
|
||||
\newlabel{sec:orgbf2eaac}{{4.4}{8}{CHERI}{subsection.4.4}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Future work}{8}{section.5}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Storing Offsets Directly on Pointers}{8}{subsection.5.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Hardware Modifications:}{8}{subsection.5.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Concept of SASOS:}{8}{subsection.5.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Advantages of SASOS with CHERI:}{8}{subsection.5.4}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{8}{section.6}\protected@file@percent }
|
||||
\bibstyle{unsrt}
|
||||
\bibdata{paperReferences}
|
||||
\bibcite{mittal_survey_2017}{{1}{}{{}}{{}}}
|
||||
\bibcite{panwar_hawkeye_2019}{{2}{}{{}}{{}}}
|
||||
\bibcite{woodruff_cheri_2014}{{3}{}{{}}{{}}}
|
||||
\bibcite{woodruff_cheri_2019}{{4}{}{{}}{{}}}
|
||||
\bibcite{jemalloc}{{5}{}{{}}{{}}}
|
||||
\bibcite{cheribsd}{{6}{}{{}}{{}}}
|
||||
\bibcite{Morello}{{7}{}{{}}{{}}}
|
||||
\bibcite{BenchmarkABI}{{8}{}{{}}{{}}}
|
||||
\bibcite{PerformanceCounter}{{9}{}{{}}{{}}}
|
||||
\bibcite{Benchmark}{{10}{}{{}}{{}}}
|
||||
\bibcite{THP}{{11}{}{{}}{{}}}
|
||||
\bibcite{Shadow_superpages}{{12}{}{{}}{{}}}
|
||||
\bibcite{DirectSegment}{{13}{}{{}}{{}}}
|
||||
\bibcite{karakostas_redundant_2015}{{14}{}{{}}{{}}}
|
||||
\newlabel{tocindent-1}{0pt}
|
||||
\newlabel{tocindent0}{0pt}
|
||||
\newlabel{tocindent1}{4.185pt}
|
||||
\newlabel{tocindent2}{10.34999pt}
|
||||
\newlabel{tocindent3}{18.198pt}
|
||||
\providecommand\NAT@force@numbers{}\NAT@force@numbers
|
||||
\@writefile{toc}{\contentsline {section}{References}{9}{section*.10}\protected@file@percent }
|
||||
\newlabel{TotPages}{{9}{9}{}{page.9}{}}
|
||||
\gdef \@abspage@last{9}
|
||||
82
docs/EuroSys/Paper/paper.bbl
Normal file
@@ -0,0 +1,82 @@
|
||||
\begin{thebibliography}{10}
|
||||
|
||||
\bibitem{mittal_survey_2017}
|
||||
Sparsh Mittal.
|
||||
\newblock A survey of techniques for architecting {TLBs}.
|
||||
\newblock 29(10):e4061.
|
||||
\newblock \_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061.
|
||||
|
||||
\bibitem{panwar_hawkeye_2019}
|
||||
Ashish Panwar, Sorav Bansal, and K.~Gopinath.
|
||||
\newblock {HawkEye}: Efficient fine-grained {OS} support for huge pages.
|
||||
\newblock In {\em Proceedings of the Twenty-Fourth International Conference on
|
||||
Architectural Support for Programming Languages and Operating Systems}, pages
|
||||
347--360. {ACM}.
|
||||
|
||||
\bibitem{woodruff_cheri_2014}
|
||||
Jonathan Woodruff, Robert~N.M. Watson, David Chisnall, Simon~W. Moore, Jonathan
|
||||
Anderson, Brooks Davis, Ben Laurie, Peter~G. Neumann, Robert Norton, and
|
||||
Michael Roe.
|
||||
\newblock The {CHERI} capability model: revisiting {RISC} in an age of risk.
|
||||
\newblock 42(3):457--468.
|
||||
|
||||
\bibitem{woodruff_cheri_2019}
|
||||
Jonathan Woodruff, Alexandre Joannou, Hongyan Xia, Anthony Fox, Robert~M.
|
||||
Norton, David Chisnall, Brooks Davis, Khilan Gudka, Nathaniel~W. Filardo,
|
||||
A.~Theodore Markettos, Michael Roe, Peter~G. Neumann, Robert N.~M. Watson,
|
||||
and Simon~W. Moore.
|
||||
\newblock {CHERI} concentrate: Practical compressed capabilities.
|
||||
\newblock 68(10):1455--1469.
|
||||
|
||||
\bibitem{jemalloc}
|
||||
{JEMALLOC}.
|
||||
|
||||
\bibitem{cheribsd}
|
||||
Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial.
|
||||
|
||||
\bibitem{Morello}
|
||||
Department of computer science and technology – {CHERI}: The arm morello
|
||||
board.
|
||||
|
||||
\bibitem{BenchmarkABI}
|
||||
Robert N.~M. Watson, Jessica Clarke, Peter Sewell, Jonathan Woodruff, Simon~W.
|
||||
Moore, Graeme Barnes, Richard Grisenthwaite, Kathryn Stacer, Silviu Baranga,
|
||||
and Alexander Richardson.
|
||||
\newblock {Early performance results from the prototype Morello
|
||||
microarchitecture}.
|
||||
\newblock Technical Report UCAM-CL-TR-986, University of Cambridge, Computer
|
||||
Laboratory, 15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom, phone
|
||||
+44 1223 763500, September 2023.
|
||||
|
||||
\bibitem{PerformanceCounter}
|
||||
Arm architecture reference manual for a-profile architecture.
|
||||
|
||||
\bibitem{Benchmark}
|
||||
{CHERI}-allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at
|
||||
main · akilan1999/{CHERI}-allocator.
|
||||
|
||||
\bibitem{THP}
|
||||
Juan Navarro.
|
||||
\newblock Practical, transparent operating system support for superpages.
|
||||
|
||||
\bibitem{Shadow_superpages}
|
||||
Cheol~Ho Park and Daeyeon Park.
|
||||
\newblock Aggressive superpage support with the shadow memory and the
|
||||
partial-subblock tlb.
|
||||
\newblock {\em Microprocessors and Microsystems}, 25(7):329--342, 2001.
|
||||
|
||||
\bibitem{DirectSegment}
|
||||
Arkaprava Basu, Jayneel Gandhi, Jichuan Chang, Mark~D. Hill, and Michael~M.
|
||||
Swift.
|
||||
\newblock Efficient virtual memory for big memory servers.
|
||||
\newblock {\em SIGARCH Comput. Archit. News}, 41(3):237–248, June 2013.
|
||||
|
||||
\bibitem{karakostas_redundant_2015}
|
||||
Vasileios Karakostas, Jayneel Gandhi, Furkan Ayar, Adrián Cristal, Mark~D.
|
||||
Hill, Kathryn~S. {McKinley}, Mario Nemirovsky, Michael~M. Swift, and Osman
|
||||
Ünsal.
|
||||
\newblock Redundant memory mappings for fast access to large memories.
|
||||
\newblock In {\em Proceedings of the 42nd Annual International Symposium on
|
||||
Computer Architecture}, pages 66--78. {ACM}.
|
||||
|
||||
\end{thebibliography}
|
||||
68
docs/EuroSys/Paper/paper.blg
Normal file
@@ -0,0 +1,68 @@
|
||||
This is BibTeX, Version 0.99d (TeX Live 2022)
|
||||
Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
|
||||
The top-level auxiliary file: paper.aux
|
||||
The style file: unsrt.bst
|
||||
Database file #1: paperReferences.bib
|
||||
Warning--entry type for "cheribsd" isn't style-file defined
|
||||
--line 471 of file paperReferences.bib
|
||||
Warning--entry type for "jemalloc" isn't style-file defined
|
||||
--line 493 of file paperReferences.bib
|
||||
Warning--entry type for "Benchmark" isn't style-file defined
|
||||
--line 500 of file paperReferences.bib
|
||||
Warning--entry type for "Morello" isn't style-file defined
|
||||
--line 507 of file paperReferences.bib
|
||||
Warning--entry type for "PerformanceCounter" isn't style-file defined
|
||||
--line 514 of file paperReferences.bib
|
||||
Warning--I didn't find a database entry for "esswoodcheriosnodate"
|
||||
Warning--empty journal in mittal_survey_2017
|
||||
Warning--empty year in mittal_survey_2017
|
||||
Warning--empty year in panwar_hawkeye_2019
|
||||
Warning--empty journal in woodruff_cheri_2014
|
||||
Warning--empty year in woodruff_cheri_2014
|
||||
Warning--empty journal in woodruff_cheri_2019
|
||||
Warning--empty year in woodruff_cheri_2019
|
||||
Warning--empty journal in THP
|
||||
Warning--empty year in THP
|
||||
Warning--empty year in karakostas_redundant_2015
|
||||
You've used 14 entries,
|
||||
1791 wiz_defined-function locations,
|
||||
518 strings with 6373 characters,
|
||||
and the built_in function-call counts, 3132 in all, are:
|
||||
= -- 228
|
||||
> -- 186
|
||||
< -- 3
|
||||
+ -- 69
|
||||
- -- 55
|
||||
* -- 239
|
||||
:= -- 472
|
||||
add.period$ -- 34
|
||||
call.type$ -- 14
|
||||
change.case$ -- 14
|
||||
chr.to.int$ -- 0
|
||||
cite$ -- 24
|
||||
duplicate$ -- 125
|
||||
empty$ -- 312
|
||||
format.name$ -- 55
|
||||
if$ -- 686
|
||||
int.to.chr$ -- 0
|
||||
int.to.str$ -- 14
|
||||
missing$ -- 8
|
||||
newline$ -- 63
|
||||
num.names$ -- 9
|
||||
pop$ -- 62
|
||||
preamble$ -- 1
|
||||
purify$ -- 0
|
||||
quote$ -- 0
|
||||
skip$ -- 86
|
||||
stack$ -- 0
|
||||
substring$ -- 175
|
||||
swap$ -- 28
|
||||
text.length$ -- 3
|
||||
text.prefix$ -- 0
|
||||
top$ -- 0
|
||||
type$ -- 0
|
||||
warning$ -- 10
|
||||
while$ -- 22
|
||||
width$ -- 16
|
||||
write$ -- 119
|
||||
(There were 16 warnings)
|
||||
228
docs/EuroSys/Paper/paper.fdb_latexmk
Normal file
@@ -0,0 +1,228 @@
|
||||
# Fdb version 3
|
||||
["bibtex paper"] 1740927026 "paper.aux" "paper.bbl" "paper" 1740927028
|
||||
"/usr/local/texlive/2022/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 ""
|
||||
"paper.aux" 1740927028 7769 cce4eb6dc6d798b51fbe7a178c89573e "pdflatex"
|
||||
"paperReferences.bib" 1740927020 43881 89a1490784dad1fc6ac99d5562dad496 ""
|
||||
(generated)
|
||||
"paper.bbl"
|
||||
"paper.blg"
|
||||
["pdflatex"] 1740927027 "paper.tex" "paper.pdf" "paper" 1740927028
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc" 1490131464 2934 a4a9158faed2e9e89c771b4e3b7fc12f ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_naooyc.enc" 1490131464 3357 5261ce65ba03aef9faf6135657b9abb6 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.enc" 1490131464 3288 25b5d43be7be8cba51d85b642598b3b0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_nh77jq.enc" 1490131464 2933 8d808fcabf70c6c809bb14c283ece4da ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc" 1490131464 2807 3bc923a7d38598e901b235df221224cb ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/jknappen/ec/ecrm0900.tfm" 1136768653 3584 d3d8ac8b25ca19c0a40b86a5db1e8ccc ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1246382020 916 f87d7c45f9c908e672703b83b72241a3 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1246382020 924 9904cf1d39e9767e7a3622f2a125a565 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1246382020 928 2dc8d444221b7a635bb58038579b861a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1246382020 908 2921f8a10601f252058503cc6570e581 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr9.tfm" 1136768653 1292 6b21b9c2c7bebb38aa2273f7ca0fb3af ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm" 1490131464 1744 9486ddc64e90094bbb83f53a83b0e415 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm" 1490131464 19548 768852037f39958c435d71846b8877ea ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1--base.tfm" 1490131464 1768 23aace73e6def3193d6e0453af90487b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1.tfm" 1490131464 19416 aedd2db224ad278ddf2c411f52d86014 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm" 1490131464 1988 34f48347175f643e8b2134cd8f7a90a3 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1.tfm" 1490131464 20012 beadc3a52552515981c78cd731a40afe ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1--base.tfm" 1490131464 1396 948c4e08512f70c39fade285ab551221 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1.tfm" 1490131464 5612 e018d44ec5e7a3b3574b3a9598e8e279 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1--base.tfm" 1490131464 1700 eb1903cb93ada6655f6ace5bcfb0a2dd ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-sc-t1.tfm" 1490131464 15404 b4ba91f16bd331695200640fa8131f38 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1--base.tfm" 1490131464 1740 2943dd2ba1dcd3849599663c1d2693ef ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm" 1490131464 19504 bdf9fb416f5a91bf56b1ccda887f5b91 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm" 1490131464 1488 9b803beb26c181b228c4fde93d4398a3 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1.tfm" 1490131464 1516 5e35377e77f0326136c4078d4c186a36 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1--base.tfm" 1490131464 1724 248b3a23a2f748bd3089e9d3118d991e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTB-tlf-t1.tfm" 1490131464 19488 f569478ca339d9b5ad93b46bf7a470e2 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm" 1490131464 1932 54655639067fe21ae3b23b77173351a5 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm" 1490131464 19920 63bb3db95807ffe45b0900d104896325 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/LibertineMathMI.tfm" 1569879884 1552 f91250a4f6e3f34d48dfc8f34aabc764 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/NewTXMI.tfm" 1572128992 1408 ef71a9098da4d5a1a85b5920860b6731 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexa.tfm" 1589834365 760 e8ec875a87aa119f1af7ea4be48da9e8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxexx.tfm" 1621283831 1772 c3eb2dc3ad7612f6f7ffa1b18d45b0b9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy.tfm" 1583272976 2000 33f20474c9fe1489d6907a37300dec5a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy5.tfm" 1634244313 1992 abaef3b41fc3d8fb873ff0f2a1fe23cc ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsy7.tfm" 1634244313 1964 4014158e8fc3b36011b2c5716946c6e0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsyc.tfm" 1589834365 1028 2f6cbe812325cff65b38e4c0a517f4cb ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/ntxsym.tfm" 1589834365 1572 ee1610f2b8e0679b918f57086595f5a6 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi.tfm" 1569879884 3284 b46311ccaa7f6b514eba481b40575544 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi5.tfm" 1569879884 3308 547f06fb56819535c1e0ce385c4f647b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmi7.tfm" 1575323900 3320 6cf9c990505795806c1f3ac537f356c3 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/nxlmia.tfm" 1617586172 2616 0bf54bdee01e38e3ed8342d25e5584f6 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/stxscr.tfm" 1569879884 1836 3af1bb0996e7f6070b70151de6395c2c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txex-bar.tfm" 1487028062 872 42a11c392ad05634fee0c67e353926cf ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/newtx/txsys.tfm" 1569879884 1580 8da1d0227b68d95a2f0ea5709b29fc83 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb" 1354061736 548786 1e51d517556d29f2841d57da58668a69 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb" 1354061736 687959 b99c9f5a9b28f3dba077d1c078bceb3f ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinBiolinumTI.pfb" 1354061736 879384 e498f90c951041b56f91c0ffbf77a9d2 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineT.pfb" 1354061736 614791 ea39341e4db76f25cb20c361802d3cd5 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTB.pfb" 1354061736 538965 19c5c8b7f952ac97afb8565e9c21a82d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/libertine/LinLibertineTI.pfb" 1354061736 490980 e27f1e217a0902faea22205f197918d4 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.pfb" 1569879884 35829 268d1d114c9114e541f92817aec4230d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/NewTXMI.pfb" 1572128992 32409 1452fa0ce4fabfb48acd5d077e296f6d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/newtx/txsys.pfb" 1569879884 40320 53cb337366eff502cad8f44871c88e39 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumT-tlf-t1.vf" 1490131464 1728 e76e04a950024a95b620698b679c9810 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTB-tlf-t1.vf" 1354061736 1728 4ae633ddccb76ba8d0a0906a5e2e8fdf ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf" 1354061736 1728 0f47a4d345513e0ad2e29d47540d4f2a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ot1.vf" 1490131464 968 b4daf26f130460f16d670da7f3f6963f ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-sc-t1.vf" 1354061736 1732 19a98a3416ac208cfc1e8cd877852bec ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-t1.vf" 1354061736 1728 b078a050f24d7649619baa987d7216d8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf" 1490131464 640 f2633b196ddbd644937d19e300a5024e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTB-tlf-t1.vf" 1490131464 1768 5d66dfd9709f1f38b8fb3cb38db46402 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf" 1490131464 1768 b3bfd8ed1fe2dce5fd19610abe4c3dbe ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/ntxsy.vf" 1583272976 1772 98ec0ab31216e818611c784f60ef51a5 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/vf/public/newtx/nxlmi.vf" 1569879884 2744 3e5ba39e1559219ae379b7645e2f9524 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/iftex.sty" 1644112042 7237 bdd120a32c8fdb4b433cf9ca2e7cd98a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/iftex/ifxetex.sty" 1572645307 488 4565444a3e75e59cb2702dc42e18f482 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/kastrup/binhex.tex" 1215376579 2553 4b99aa9667b708dd355926023d705446 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1600895880 17859 4409f8f50cd365c68e684407e5350b1b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/keyval.tex" 1605910342 2725 9f5d0b27f1f9a620c6ea983d6d41501d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1605910342 19231 3cbf682090baecad8e17a66b7a271ed1 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1605910342 7677 cf3e6aa6a8d444f55327f61df80bfa0c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.sty" 1544223003 123 a302f2c651a95033260db60e51527ae8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/generic/xstring/xstring.tex" 1626900402 48190 9b86e8476d1d94df049e99d192261166 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/acmart/acmart.cls" 1645649519 107215 f266b4b57779f01e797a00fdef75e4bd ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1160617237 26750 ce139c05a983e19ddca355b43e29c395 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1160617237 3457 d9077efe6b74c5a094199256af8d7d9a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty" 1251330371 3249 15763257e50278eef5db1952ccde229c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amscls/amsart.cls" 1591045760 61881 a7369c346c2922a758ae6283cc1ed014 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsa.fd" 1359763108 961 6518c6525a34feb5e8250ffa91731cff ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsfonts/umsb.fd" 1359763108 961 d02606146ba5601b5645f987c92e6193 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1622667781 2222 da905dc1db75412efd2d8f67739f0596 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty" 1622667781 4173 bc0410bcccdff806d6132d3c1ef35481 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty" 1636758526 87648 07fbb6e9169e00cb2a2f40b31b2dbf3c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty" 1636758526 4128 8eea906621b6639f7ba476a472036bbe ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty" 1636758526 2444 926f379cc60fcf0c6e3fee2223b4370d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1636758526 3034 3bfb87122e6fa8758225c0dd3cbaceba ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1636758526 2462 754d6b31b2ab5a09bb72c348ace2ec75 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/fontenc.sty" 1622581934 4946 461cc78f6f26901410d9f1d725079cc6 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty" 1622581934 5157 f308c7c04889e16c588e78aa42599fae ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/textcomp.sty" 1622581934 2894 55431114fc0e491ecee275edafd6c881 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/booktabs/booktabs.sty" 1579038678 6078 f1cb470c9199e7110a27851508ed7a5c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption-ams-smf.sto" 1645391520 2176 c0bb71a9780b6b41388cfa629b1a32f7 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption.sty" 1647548653 54291 b8e5c600d4aa37b48a740dd2a6c26163 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/caption/caption3.sty" 1647548653 71241 d2cd3a1c5acef9cb31f945b93c0bb6e3 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/cmap.sty" 1612650595 3574 ddc11a0ae1c579d351ed20d2319ad422 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/ot1.cmap" 1177721415 1207 4e0d96772f0d338847cbfb4eca683c81 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/cmap/t1.cmap" 1215522782 1938 beaa4a8467aa0074076e0e19f2992e29 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/comment/comment.sty" 1472166125 10197 204f75d5d8d88aa345a8c402e879e63b ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/draftwatermark/draftwatermark.sty" 1607465154 6990 c19f0e2ee25970cd4873c23ce67e5a94 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/environ/environ.sty" 1399239813 4378 f429f0da968c278653359293040a8f52 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1601931149 46845 3b58f70c6e861a13d927bff09d35ecbc ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/everyshi/everyshi.sty" 1606256234 2368 ef01f98551a0f54407358b67f8a6c5e1 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1612734021 17086 7ed8cbc4d361ec87392817e0dd4f65ec ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/fontaxes/fontaxes.sty" 1595539507 14310 41fdb35c51be792ddf00696848d0cfef ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics-def/pdftex.def" 1601931164 19103 48d29b6e2a64cb717117ef65f107b404 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/color.sty" 1639603921 7197 eb6c1ebf41667a05cb50c23c19d5e8bc ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphics.sty" 1622581934 18399 7e40f80366dffb22c0e7b70517db5cb4 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/graphicx.sty" 1636758526 7996 a8fb260d598dcaf305a7ae7b9c3e3229 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/keyval.sty" 1622581934 2671 4de6781a30211fe0ea4c672e4a2a8166 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/graphics/trig.sty" 1636758526 4009 187ea2dc3194cd5a76cd99a8d7a6c4d0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/grffile/grffile.sty" 1573594974 1499 e43bb281163d9895e141f684cfc2da7e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hpdftex.def" 1645564115 49029 7c9e5115b2217efbeb7828ac0d1bf1a0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/hyperref.sty" 1645564115 220999 6145ea83914c186e178d1d31c50b37df ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/nameref.sty" 1612734870 13242 133e617c5eebffdd05e421624022b267 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/pd1enc.def" 1645564115 14132 e8e7e61e51ade521a7238fac8362786c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperref/puenc.def" 1645564115 117004 ed1c2cc82bb9836e9d59549dd8c33098 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1606083562 61409 611a1d217ee1bcaa96feb7a3165f8767 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1602274869 22521 d2fceb764a442a2001d257ef11db7618 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1644269979 29921 d0acc05a38bd4aa3af2017f0b7c137ce ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3kernel/expl3.sty" 1645736062 6107 e082261f9677386795d8bf6b6254fa9d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty" 1642022539 4674 ac560df2ef76ab2c406a4948a48f79f8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/LinLibertine_I.tex" 1355443847 24957 22a8dc56372173d7ffa65753dfc6757e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/OT1LinuxLibertineT-TLF.fd" 1490131464 3019 024cbcf380053dddffd4ac0b44aac808 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd" 1490131464 2264 2324ece7d4d2a7fa3c2138d120196405 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/T1LinuxLibertineT-TLF.fd" 1490131464 2980 15412b63bb0119ade194e089fff355d4 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/TS1LinuxLibertineT-TLF.fd" 1490131464 1689 42435c12d9d3dc0c446eb02409690ab9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/libertine/libertine.sty" 1585343451 19187 009694a9db31ccbf28809b85025a2e3d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1632168149 95525 6fd0552101a6b1f9b7a84b402ec435ba ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/lipsum/lipsum.sty" 1632168149 14690 c2c754218a7108db7823a4839c1bc3cd ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.cfg" 1585170648 1830 e31effa752c61538383451ae21332364 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/listings.sty" 1585170648 80964 64e57373f36316e4a09b517cbf1aba2e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/listings/lstmisc.sty" 1585170648 77022 ee25ce086f4a79d8cf73bac6f94c02a5 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype-pdftex.def" 1647374306 48187 dc49d7ea7b8a3fa75e04c799929703b9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.cfg" 1647374306 26646 da004eb274e0158774539ced5cafcb54 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/microtype.sty" 1647374306 90503 376660e75505e801f0c4fd36fb88b54c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msa.cfg" 1645649607 5929 c3d8b4090f819eea493a446d04c35664 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/microtype/mt-msb.cfg" 1645649607 5594 c9a8b7ef6240cf465b2480ea05ec0128 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/mmap/oml.cmap" 1215649417 1866 c1c12138091b4a8edd4a24a940e6f792 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/mweights/mweights.sty" 1490909540 4953 67f29a12ea26221103fce6bae3433e60 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/natbib/natbib.sty" 1291685959 45456 1c8843383c0bd05870c45fa0ebea6cc2 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/manyfoot.sty" 1564869456 12626 1a53db73f820034b2ec9e401e205b159 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/ncctools/nccfoots.sty" 1137110429 1189 756b2502150ce6dc2179faebbd40e701 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmsntxsy.fd" 1634244313 1140 ee5963b0c88b5c4f92fed61a27034b79 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/lmxntxexx.fd" 1471383769 549 70a2497c311fc8b19acb02f7607eb4e9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/newtxmath.sty" 1646341564 139800 6fd209c21f962864db11ffa77d4a2c22 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/omlnxlmi.fd" 1387148426 3537 d34ce3dbfa1b807fe48744508a5473e9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxexa.fd" 1376004569 558 91031960917530f42e0f8fc4d1db1550 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxmia.fd" 1596661975 3832 57dfbcfb6f19c9f63a28ca1bfda0abe2 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsyc.fd" 1376004569 558 e8967b9c8273bc0c05b993fe92a9b757 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/newtx/untxsym.fd" 1427059306 561 d8e97a03c5c4248c2bf6d144fffb97f7 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/sttools/stfloats.sty" 1633983922 24057 ff20efb65b128d27c08eac20ec07f540 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/textcase/textcase.sty" 1568497026 2156 a092fd3ecd0a13fd597725ee6894b032 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/xcolor/xcolor.sty" 1635798903 56029 3f7889dab51d620aa43177c391b7b190 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1605910342 4902 efb3d66683a2da2a232f71e3a571a899 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf" 1646502317 40171 cdab547de63d26590bebb3baff566530 ""
|
||||
"/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1647878959 4410336 7d30a02e9fa9a16d7d1f8d037ba69641 ""
|
||||
"/usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt" 1661249257 2826440 c4fb37ef223f1d0b7571cc2822c67358 ""
|
||||
"/usr/local/texlive/2022/texmf.cnf" 1647878952 577 209b46be99c9075fd74d4c0369380e8c ""
|
||||
"diagram/AllocationOverview24.png" 1740922321 45834 e2cfc13e3970cce298f0396858ac1356 ""
|
||||
"diagram/HighOverviewArchitecture.drawio.png" 1740922321 152902 4b92f7b86b6525c26112d4fd5935c951 ""
|
||||
"diagram/TLBAccess.drawio.png" 1740922321 77522 75367f218335fe386db852966a892e9b ""
|
||||
"diagram/bargraph.png" 1740924635 74263 65509d21744edc6c9ca02b8c67d664fb ""
|
||||
"diagram/kmeans.png" 1740924635 94217 5d14308c169ff296bf499805b9823aa6 ""
|
||||
"paper.aux" 1740927028 7769 cce4eb6dc6d798b51fbe7a178c89573e "pdflatex"
|
||||
"paper.bbl" 1740927027 3157 f7bf8e4ca8e5ead2be76892ccdcf9508 "bibtex paper"
|
||||
"paper.out" 1740927028 4003 c9c5ff980e1cf5431e70b96fc8b4c94e "pdflatex"
|
||||
"paper.tex" 1740926924 76374 846c91be80771745aa759f0aca3449f9 ""
|
||||
(generated)
|
||||
"paper.aux"
|
||||
"paper.log"
|
||||
"paper.out"
|
||||
"paper.pdf"
|
||||
1470
docs/EuroSys/Paper/paper.fls
Normal file
1288
docs/EuroSys/Paper/paper.log
Normal file
BIN
docs/EuroSys/Paper/paper.pdf
Normal file
1494
docs/EuroSys/Paper/paper.tex
Normal file
521
docs/EuroSys/Paper/paperReferences.bib
Normal file
@@ -0,0 +1,521 @@
|
||||
@article{Shadow_superpages,
|
||||
title = {Aggressive superpage support with the shadow memory and the partial-subblock TLB},
|
||||
journal = {Microprocessors and Microsystems},
|
||||
volume = {25},
|
||||
number = {7},
|
||||
pages = {329-342},
|
||||
year = {2001},
|
||||
issn = {0141-9331},
|
||||
doi = {https://doi.org/10.1016/S0141-9331(01)00125-9},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0141933101001259},
|
||||
author = {Cheol Ho Park and Daeyeon Park},
|
||||
keywords = {Superpage, Shadow memory, Subblock TLB, Translation lookaside buffer},
|
||||
abstract = {While superpages are an efficient solution to increase TLB reach, strong requirements for using superpages hinder the actual utilization. Two previous solutions, the partial-subblock TLB and the shadow memory were proposed to release the requirements. The partial-subblock TLB releases only a small portion of the requirements. The shadow memory releases most of the requirements but introduces other serious problems. We propose a hybrid scheme which integrates both the shadow memory and the partial-subblock TLB, thereby enjoying the benefits inherited from both sides. The hybrid scheme has as high a superpage utilization as the shadow memory, and avoids most of the problems in the shadow memory by virtue of the partial-subblock TLB. The experiment shows that the hybrid scheme outperforms the previous schemes though its hardware cost and overhead are considered.}
|
||||
}
|
||||
|
||||
@article{THP,
|
||||
title = {Practical, transparent operating system support for superpages},
|
||||
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer ({TLB}) to map a large physical memory region into a virtual address space. This dramatically increases {TLB} coverage, reduces {TLB} misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in {FreeBSD} on the Alpha {CPU}, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
|
||||
author = {Navarro, Juan},
|
||||
langid = {english},
|
||||
file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/R9MSCWQX/Navarro - Practical, transparent operating system support fo.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{DirectSegment,
|
||||
author = {Basu, Arkaprava and Gandhi, Jayneel and Chang, Jichuan and Hill, Mark D. and Swift, Michael M.},
|
||||
title = {Efficient virtual memory for big memory servers},
|
||||
year = {2013},
|
||||
issue_date = {June 2013},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {41},
|
||||
number = {3},
|
||||
issn = {0163-5964},
|
||||
url = {https://doi.org/10.1145/2508148.2485943},
|
||||
doi = {10.1145/2508148.2485943},
|
||||
abstract = {Our analysis shows that many "big-memory" server workloads, such as databases, in-memory caches, and graph analytics, pay a high cost for page-based virtual memory. They consume as much as 10\% of execution cycles on TLB misses, even using large pages. On the other hand, we find that these workloads use read-write permission on most pages, are provisioned not to swap, and rarely benefit from the full flexibility of page-based virtual memory.To remove the TLB miss overhead for big-memory workloads, we propose mapping part of a process's linear virtual address space with a direct segment, while page mapping the rest of the virtual address space. Direct segments use minimal hardware---base, limit and offset registers per core---to map contiguous virtual memory regions directly to contiguous physical memory. They eliminate the possibility of TLB misses for key data structures such as database buffer pools and in-memory key-value stores. Memory mapped by a direct segment may be converted back to paging when needed.We prototype direct-segment software support for x86-64 in Linux and emulate direct-segment hardware. For our workloads, direct segments eliminate almost all TLB misses and reduce the execution time wasted on TLB misses to less than 0.5\%.},
|
||||
journal = {SIGARCH Comput. Archit. News},
|
||||
month = jun,
|
||||
pages = {237–248},
|
||||
numpages = {12},
|
||||
keywords = {tanslation lookaside buffer, virtual memory}
|
||||
}
|
||||
|
||||
|
||||
@article{navarro_practical_nodate,
|
||||
title = {Practical, transparent operating system support for superpages},
|
||||
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer ({TLB}) to map a large physical memory region into a virtual address space. This dramatically increases {TLB} coverage, reduces {TLB} misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in {FreeBSD} on the Alpha {CPU}, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
|
||||
author = {Navarro, Juan},
|
||||
langid = {english},
|
||||
file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/9RBYAPGM/Navarro - Practical, transparent operating system support fo.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{panwar_hawkeye_2019,
|
||||
location = {Providence {RI} {USA}},
|
||||
title = {{HawkEye}: Efficient Fine-grained {OS} Support for Huge Pages},
|
||||
isbn = {978-1-4503-6240-5},
|
||||
url = {https://dl.acm.org/doi/10.1145/3297858.3304064},
|
||||
doi = {10.1145/3297858.3304064},
|
||||
shorttitle = {{HawkEye}},
|
||||
eventtitle = {{ASPLOS} '19: Architectural Support for Programming Languages and Operating Systems},
|
||||
pages = {347--360},
|
||||
booktitle = {Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems},
|
||||
publisher = {{ACM}},
|
||||
author = {Panwar, Ashish and Bansal, Sorav and Gopinath, K.},
|
||||
urldate = {2024-05-27},
|
||||
date = {2019-04-04},
|
||||
langid = {english},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/VQLCKYCA/Panwar et al. - 2019 - HawkEye Efficient Fine-grained OS Support for Hug.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{karakostas_redundant_2015,
|
||||
location = {Portland Oregon},
|
||||
title = {Redundant memory mappings for fast access to large memories},
|
||||
isbn = {978-1-4503-3402-0},
|
||||
url = {https://dl.acm.org/doi/10.1145/2749469.2749471},
|
||||
doi = {10.1145/2749469.2749471},
|
||||
abstract = {Page-based virtual memory improves programmer productivity, security, and memory utilization, but incurs performance overheads due to costly page table walks after {TLB} misses. This overhead can reach 50\% for modern workloads that access increasingly vast memory with stagnating {TLB} sizes. To reduce the overhead of virtual memory, this paper proposes Redundant Memory Mappings ({RMM}), which leverage ranges of pages and provides an efficient, alternative representation of many virtual-to-physical mappings. We define a range be a subset of process’s pages that are virtually and physically contiguous. {RMM} translates each range with a single range table entry, enabling a modest number of entries to translate most of the process’s address space. {RMM} operates in parallel with standard paging and uses a software range table and hardware range {TLB} with arbitrarily large reach. We modify the operating system to automatically detect ranges and to increase their likelihood with eager page allocation. {RMM} is thus transparent to applications. We prototype {RMM} software in Linux and emulate the hardware. {RMM} performs substantially better than paging alone and huge pages, and improves a wider variety of workloads than direct segments (one range per program), reducing the overhead of virtual memory to less than 1\% on average.},
|
||||
eventtitle = {{ISCA} '15: The 42nd Annual International Symposium on Computer Architecture},
|
||||
pages = {66--78},
|
||||
booktitle = {Proceedings of the 42nd Annual International Symposium on Computer Architecture},
|
||||
publisher = {{ACM}},
|
||||
author = {Karakostas, Vasileios and Gandhi, Jayneel and Ayar, Furkan and Cristal, Adrián and Hill, Mark D. and {McKinley}, Kathryn S. and Nemirovsky, Mario and Swift, Michael M. and Ünsal, Osman},
|
||||
urldate = {2024-05-27},
|
||||
date = {2015-06-13},
|
||||
langid = {english},
|
||||
file = {Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:/Users/akilan/Zotero/storage/8JECES24/Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{chen_flexpointer_2023,
|
||||
title = {{FlexPointer}: Fast Address Translation Based on Range {TLB} and Tagged Pointers},
|
||||
volume = {20},
|
||||
issn = {1544-3566, 1544-3973},
|
||||
url = {https://dl.acm.org/doi/10.1145/3579854},
|
||||
doi = {10.1145/3579854},
|
||||
shorttitle = {{FlexPointer}},
|
||||
abstract = {Page-based virtual memory relies on {TLBs} to accelerate the address translation. Nowadays, the gap between application workloads and the capacity of {TLB} continues to grow, bringing many costly {TLB} misses and making the {TLB} a performance bottleneck. Previous studies seek to narrow the gap by exploiting the contiguity of physical pages. One promising solution is to group pages that are both virtually and physically contiguous into a memory range. Recording range translations can greatly increase the {TLB} reach, but ranges are also hard to index because they have arbitrary bounds. The processor has to compare against all the boundaries to determine which range an address falls in, which restricts the usage of memory ranges.
|
||||
In this article, we propose a tagged-pointer-based scheme, {FlexPointer}, to solve the range indexing problem. The core insight of {FlexPointer} is that large memory objects are rare, so we can create memory ranges based on such objects and assign each of them a unique {ID}. With the range {ID} integrated into pointers, we can index the range {TLB} with {IDs} and greatly simplify its structure. Moreover, because the {ID} is stored in the unused bits of a pointer and is not manipulated by the address generation, we can shift the range lookup to an earlier stage, working in parallel with the address generation. According to our trace-based simulation results, {FlexPointer} can reduce nearly all the L1 {TLB} misses, and page walks for a variety of memory-intensive workloads. Compared with a 4K-page baseline system, {FlexPointer} shows a 14\% performance improvement on average and up to 2.8x speedup in the best case. For other workloads, {FlexPointer} shows no performance degradation.},
|
||||
pages = {1--24},
|
||||
number = {2},
|
||||
journaltitle = {{ACM} Transactions on Architecture and Code Optimization},
|
||||
shortjournal = {{ACM} Trans. Archit. Code Optim.},
|
||||
author = {Chen, Dongwei and Tong, Dong and Yang, Chun and Yi, Jiangfang and Cheng, Xu},
|
||||
urldate = {2024-05-27},
|
||||
date = {2023-06-30},
|
||||
langid = {english},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/L9XGZDFK/Chen et al. - 2023 - FlexPointer Fast Address Translation Based on Ran.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{woodruff_cheri_2019,
|
||||
title = {{CHERI} Concentrate: Practical Compressed Capabilities},
|
||||
volume = {68},
|
||||
rights = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/{IEEE}.html},
|
||||
issn = {0018-9340, 1557-9956, 2326-3814},
|
||||
url = {https://ieeexplore.ieee.org/document/8703061/},
|
||||
doi = {10.1109/TC.2019.2914037},
|
||||
shorttitle = {{CHERI} Concentrate},
|
||||
abstract = {We present {CHERI} Concentrate, a new fat-pointer compression scheme applied to {CHERI}, the most developed capability-pointer system at present. Capability fat pointers are a primary candidate to enforce fine-grained and non-bypassable security properties in future computer systems, although increased pointer size can severely affect performance. Thus, several proposals for capability compression have been suggested elsewhere that do not support legacy instruction sets, ignore features critical to the existing software base, and also introduce design inefficiencies to {RISC}-style processor pipelines. {CHERI} Concentrate improves on the state-of-the-art region-encoding efficiency, solves important pipeline problems, and eases semantic restrictions of compressed encoding, allowing it to protect a full legacy software stack. We present the first quantitative analysis of compiled capability code, which we use to guide the design of the encoding format. We analyze and extend logic from the open-source {CHERI} prototype processor design on {FPGA} to demonstrate encoding efficiency, minimize delay of pointer arithmetic, and eliminate additional load-to-use delay. To verify correctness of our proposed high-performance logic, we present a {HOL}4 machine-checked proof of the decode and pointer-modify operations. Finally, we measure a 50\% to 75\% reduction in L2 misses for many compiled C-language benchmarks running under a commodity operating system using compressed 128-bit and 64-bit formats, demonstrating both compatibility with and increased performance over the uncompressed, 256-bit format.},
|
||||
pages = {1455--1469},
|
||||
number = {10},
|
||||
journaltitle = {{IEEE} Transactions on Computers},
|
||||
shortjournal = {{IEEE} Trans. Comput.},
|
||||
author = {Woodruff, Jonathan and Joannou, Alexandre and Xia, Hongyan and Fox, Anthony and Norton, Robert M. and Chisnall, David and Davis, Brooks and Gudka, Khilan and Filardo, Nathaniel W. and Markettos, A. Theodore and Roe, Michael and Neumann, Peter G. and Watson, Robert N. M. and Moore, Simon W.},
|
||||
urldate = {2024-05-27},
|
||||
date = {2019-10-01},
|
||||
langid = {english},
|
||||
file = {Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:/Users/akilan/Zotero/storage/3SZUIWQ5/Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_capability-based_nodate,
|
||||
title = {Capability-Based Computer Systems},
|
||||
url = {https://homes.cs.washington.edu/~levy/capabook/},
|
||||
urldate = {2024-06-07},
|
||||
file = {Capability-Based Computer Systems:/Users/akilan/Zotero/storage/IAAG6ZF3/capabook.html:text/html},
|
||||
}
|
||||
|
||||
@article{woodruff_cheri_2014,
|
||||
title = {The {CHERI} capability model: revisiting {RISC} in an age of risk},
|
||||
volume = {42},
|
||||
issn = {0163-5964},
|
||||
url = {https://doi.org/10.1145/2678373.2665740},
|
||||
doi = {10.1145/2678373.2665740},
|
||||
shorttitle = {The {CHERI} capability model},
|
||||
abstract = {Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the {RISC} era. We present {CHERI}, a hybrid capability model that extends the 64-bit {MIPS} {ISA} with byte-granularity memory protection. We demonstrate that {CHERI} enables language memory model enforcement and fault isolation in hardware rather than software, and that the {CHERI} mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, {CHERI} complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and {OS} memory management. Furthermore, {CHERI} adheres to a strict {RISC} philosophy: it maintains a load-store architecture and requires only singlecycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature {FPGA} implementation that runs the {FreeBSD} operating system with a full range of software and an open-source application suite compiled with an extended {LLVM} to use {CHERI} memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that {CHERI} is performance-competitive even while providing assurance and greater flexibility with simpler hardware},
|
||||
pages = {457--468},
|
||||
number = {3},
|
||||
journaltitle = {{ACM} {SIGARCH} Computer Architecture News},
|
||||
shortjournal = {{SIGARCH} Comput. Archit. News},
|
||||
author = {Woodruff, Jonathan and Watson, Robert N.M. and Chisnall, David and Moore, Simon W. and Anderson, Jonathan and Davis, Brooks and Laurie, Ben and Neumann, Peter G. and Norton, Robert and Roe, Michael},
|
||||
urldate = {2024-06-07},
|
||||
date = {2014-06-14},
|
||||
}
|
||||
|
||||
@article{miller_towards_nodate,
|
||||
title = {Towards a Unified Approach to Access Control and Concurrency Control},
|
||||
author = {Miller, Mark Samuel},
|
||||
langid = {english},
|
||||
file = {Miller - Towards a Unified Approach to Access Control and Co.pdf:/Users/akilan/Zotero/storage/7METVAKG/Miller - Towards a Unified Approach to Access Control and Co.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{curtsinger_coz_2015,
|
||||
title = {Coz: Finding Code that Counts with Causal Profiling},
|
||||
url = {http://arxiv.org/abs/1608.03676},
|
||||
doi = {10.1145/2815400.2815409},
|
||||
shorttitle = {Coz},
|
||||
abstract = {Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities.},
|
||||
pages = {184--197},
|
||||
booktitle = {Proceedings of the 25th Symposium on Operating Systems Principles},
|
||||
author = {Curtsinger, Charlie and Berger, Emery D.},
|
||||
urldate = {2024-06-07},
|
||||
date = {2015-10-04},
|
||||
langid = {english},
|
||||
eprinttype = {arxiv},
|
||||
eprint = {1608.03676 [cs]},
|
||||
keywords = {C.4, Computer Science - Performance, D.4.8},
|
||||
file = {Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:/Users/akilan/Zotero/storage/QTFQXVHE/Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_benchmark_nodate,
|
||||
title = {Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial},
|
||||
url = {https://www.cheribsd.org/tutorial/23.11/benchmark/index.html},
|
||||
urldate = {2024-06-07},
|
||||
file = {Benchmark ABI - CheriBSD 23.11 new features tutorial:/Users/akilan/Zotero/storage/9BDKUW28/index.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{zhu_research_2018,
|
||||
location = {Taipei, Taiwan},
|
||||
title = {Research and Implementation of High Performance Traffic Processing Based on Intel {DPDK}},
|
||||
isbn = {978-1-5386-9403-9},
|
||||
url = {https://ieeexplore.ieee.org/document/8701793/},
|
||||
doi = {10.1109/PAAP.2018.00018},
|
||||
eventtitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})},
|
||||
pages = {62--68},
|
||||
booktitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})},
|
||||
publisher = {{IEEE}},
|
||||
author = {Zhu, Wenjun and Li, Peng and Luo, Baozhou and Xu, He and Zhang, Yujie},
|
||||
urldate = {2024-06-07},
|
||||
date = {2018-12},
|
||||
}
|
||||
|
||||
@article{bi_dpdk-based_2016,
|
||||
title = {{DPDK}-based Improvement of Packet Forwarding},
|
||||
volume = {7},
|
||||
rights = {© Owned by the authors, published by {EDP} Sciences, 2016},
|
||||
issn = {2271-2097},
|
||||
url = {https://www.itm-conferences.org/articles/itmconf/abs/2016/02/itmconf_ita2016_01009/itmconf_ita2016_01009.html},
|
||||
doi = {10.1051/itmconf/20160701009},
|
||||
abstract = {Reel-time processing of packets occupies a significant position in the field of computer network security. With theexplosive growth of the backbone link rate,which is consistent with Gilder's law, many bottlenecks of server performance leave the real-time data stream unprocessed.Thus, we proposedto take use of {DPDK}(Data Plan Development Kit) framework to achieve an intelligent {NIC} packet forwarding system. During this research, we deeply analysis the forwarding process of packet in {DPDK} and improve its {DMA} mode.According to the results of experiment, the system greatly enhanced the performance of packet forwarding,and the throughput of forwarding 64-byet or random-length packets by 20Gbit {NIC} reaches13.3Gbps and 18.7Gbps(dual ports forwarding).},
|
||||
pages = {01009},
|
||||
journaltitle = {{ITM} Web of Conferences},
|
||||
shortjournal = {{ITM} Web Conf.},
|
||||
author = {Bi, Hao and Wang, Zhao-Hun},
|
||||
urldate = {2024-06-07},
|
||||
date = {2016},
|
||||
langid = {english},
|
||||
note = {Publisher: {EDP} Sciences},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/LEVMJ983/Bi and Wang - 2016 - DPDK-based Improvement of Packet Forwarding.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{esswood_cherios_nodate,
|
||||
title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor},
|
||||
author = {Esswood, Lawrence G},
|
||||
langid = {english},
|
||||
file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/YGIBFTD5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@book{wilkes_cambridge_1979,
|
||||
location = {New York},
|
||||
title = {The Cambridge {CAP} computer and its operating system},
|
||||
isbn = {978-0-444-00357-7 978-0-444-00358-4},
|
||||
series = {The computer science library operating and programming systems series},
|
||||
pagetotal = {165},
|
||||
number = {6},
|
||||
publisher = {North Holland},
|
||||
author = {Wilkes, Maurice V. and Needham, Roger M.},
|
||||
date = {1979},
|
||||
langid = {english},
|
||||
file = {Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:/Users/akilan/Zotero/storage/VIQTWZS3/Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{fillo_mmachine_nodate,
|
||||
title = {The M–Machine Multicomputer},
|
||||
author = {Fillo, Marco and Keckler, Stephen W and Dally, William J and Carter, Nicholas P and Chang, Andrew and Gurevich, Yevgeny and Lee, Whay S},
|
||||
langid = {english},
|
||||
file = {Fillo et al. - The M–Machine Multicomputer.pdf:/Users/akilan/Zotero/storage/LD95UQTM/Fillo et al. - The M–Machine Multicomputer.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{kwon_low-fat_2013,
|
||||
location = {New York, {NY}, {USA}},
|
||||
title = {Low-fat pointers: compact encoding and efficient gate-level implementation of fat pointers for spatial safety and capability-based security},
|
||||
isbn = {978-1-4503-2477-9},
|
||||
url = {https://dl.acm.org/doi/10.1145/2508859.2516713},
|
||||
doi = {10.1145/2508859.2516713},
|
||||
series = {{CCS} '13},
|
||||
shorttitle = {Low-fat pointers},
|
||||
abstract = {Referencing outside the bounds of an array or buffer is a common source of bugs and security vulnerabilities in today's software. We can enforce spatial safety and eliminate these violations by inseparably associating bounds with every pointer (fat pointer) and checking these bounds on every memory access. By further adding hardware-managed tags to the pointer, we make them unforgeable. This, in turn, allows the pointers to be used as capabilities to facilitate fine-grained access control and fast security domain crossing. Dedicated checking hardware runs in parallel with the processor's normal datapath so that the checks do not slow down processor operation (0\% runtime overhead). To achieve the safety of fat pointers without increasing program state, we compactly encode approximate base and bound pointers along with exact address pointers for a 46b address space into one 64-bit word with a worst-case memory overhead of 3\%. We develop gate-level implementations of the logic for updating and validating these compact fat pointers and show that the hardware requirements are low and the critical paths for common operations are smaller than processor {ALU} operations. Specifically, we show that the fat-pointer check and update operations can run in a 4 ns clock cycle on a Virtex 6 (40nm) implementation while only using 1100 6-{LUTs} or about the area of a double-precision, floating-point adder.},
|
||||
pages = {721--732},
|
||||
booktitle = {Proceedings of the 2013 {ACM} {SIGSAC} conference on Computer \& communications security},
|
||||
publisher = {Association for Computing Machinery},
|
||||
author = {Kwon, Albert and Dhawan, Udit and Smith, Jonathan M. and Knight, Thomas F. and {DeHon}, Andre},
|
||||
urldate = {2024-06-18},
|
||||
date = {2013-11-04},
|
||||
keywords = {capabilities, fat pointer, memory safety, processor, security, spatial confinement},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/CVVZYZS4/Kwon et al. - 2013 - Low-fat pointers compact encoding and efficient g.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{wulf_hydra_1974,
|
||||
title = {{HYDRA}: the kernel of a multiprocessor operating system},
|
||||
volume = {17},
|
||||
issn = {0001-0782, 1557-7317},
|
||||
url = {https://dl.acm.org/doi/10.1145/355616.364017},
|
||||
doi = {10.1145/355616.364017},
|
||||
shorttitle = {{HYDRA}},
|
||||
abstract = {This paper describes the design philosophy of {HYDRA}—the kernel of an operating system for C.mmp, the Carnegie-Mellon Multi-Mini-Processor. This philosophy is realized through the introduction of a generalized notion of “resource,” both physical and virtual, called an “object.” Mechanisms are presented for dealing with objects, including the creation of new types, specification of new operations applicable to a given type, sharing, and protection of any reference to a given object against improper application of any of the operations defined with respect to that type of object. The mechanisms provide a coherent basis for extension of the system in two directions: the introduction of new facilities, and the creation of highly secure systems.},
|
||||
pages = {337--345},
|
||||
number = {6},
|
||||
journaltitle = {Communications of the {ACM}},
|
||||
shortjournal = {Commun. {ACM}},
|
||||
author = {Wulf, W. and Cohen, E. and Corwin, W. and Jones, A. and Levin, R. and Pierson, C. and Pollack, F.},
|
||||
urldate = {2024-06-18},
|
||||
date = {1974-06},
|
||||
langid = {english},
|
||||
file = {Full Text:/Users/akilan/Zotero/storage/EIRBNTVF/Wulf et al. - 1974 - HYDRA the kernel of a multiprocessor operating sy.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{hardy_keykos_1985,
|
||||
title = {{KeyKOS} architecture},
|
||||
volume = {19},
|
||||
issn = {0163-5980},
|
||||
url = {https://dl.acm.org/doi/10.1145/858336.858337},
|
||||
doi = {10.1145/858336.858337},
|
||||
pages = {8--25},
|
||||
number = {4},
|
||||
journaltitle = {{ACM} {SIGOPS} Operating Systems Review},
|
||||
shortjournal = {{SIGOPS} Oper. Syst. Rev.},
|
||||
author = {Hardy, Norman},
|
||||
urldate = {2024-06-18},
|
||||
date = {1985-10-01},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/QSYKM6QN/Hardy - 1985 - KeyKOS architecture.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{rashid_mach_nodate,
|
||||
title = {Mach: A System Software Kernel},
|
||||
abstract = {The Mach operating system can be used as a system software kernel which can support a variety of operating system environments. Key elements of the Mach design which allow it to efficiently support system software include integrated virtual memory management and interprocess communication, multiple threads of control within one address space, support for transparent system trap callout and an object programming facility integrated with the Mach {IPC} mechanisms. Mach is currently available both from {CMU} and commercially on a wide range of uniprocessor and multiprocessor hardware.},
|
||||
author = {Rashid, Richard and Julin, Daniel and Orr, Douglas and Sanzi, Richard and Baron, Robert and Forin, Alessandro and Golub, David and Jones, Michael},
|
||||
langid = {english},
|
||||
file = {Rashid et al. - Mach A System Software Kernel.pdf:/Users/akilan/Zotero/storage/UHLILYH9/Rashid et al. - Mach A System Software Kernel.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{baumann_multikernel_2009,
|
||||
location = {Big Sky Montana {USA}},
|
||||
title = {The multikernel: a new {OS} architecture for scalable multicore systems},
|
||||
isbn = {978-1-60558-752-3},
|
||||
url = {https://dl.acm.org/doi/10.1145/1629575.1629579},
|
||||
doi = {10.1145/1629575.1629579},
|
||||
shorttitle = {The multikernel},
|
||||
abstract = {Commodity computer systems contain more and more processor cores and exhibit increasingly diverse architectural tradeoffs, including memory hierarchies, interconnects, instruction sets and variants, and {IO} configurations. Previous high-performance computing systems have scaled in specific cases, but the dynamic nature of modern client and server workloads, coupled with the impossibility of statically optimizing an {OS} for all workloads and hardware variants pose serious challenges for operating system structures.},
|
||||
eventtitle = {{SOSP}09: {ACM} {SIGOPS} 22nd Symposium on Operating Systems Principles},
|
||||
pages = {29--44},
|
||||
booktitle = {Proceedings of the {ACM} {SIGOPS} 22nd symposium on Operating systems principles},
|
||||
publisher = {{ACM}},
|
||||
author = {Baumann, Andrew and Barham, Paul and Dagand, Pierre-Evariste and Harris, Tim and Isaacs, Rebecca and Peter, Simon and Roscoe, Timothy and Schüpbach, Adrian and Singhania, Akhilesh},
|
||||
urldate = {2024-06-18},
|
||||
date = {2009-10-11},
|
||||
langid = {english},
|
||||
file = {Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:/Users/akilan/Zotero/storage/4BVCRZN6/Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_capsicum_nodate,
|
||||
title = {Capsicum: practical capabilities for {UNIX}},
|
||||
abstract = {Capsicum is a lightweight operating system capability and sandbox framework planned for inclusion in {FreeBSD} 9. Capsicum extends, rather than replaces, {UNIX} {APIs}, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox {API}. These tools support compartmentalisation of monolithic {UNIX} applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core {FreeBSD} utilities and Google’s Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.},
|
||||
author = {Watson, Robert N M and Anderson, Jonathan and Kennaway, Kris and Laurie, Ben},
|
||||
langid = {english},
|
||||
file = {Watson et al. - Capsicum practical capabilities for UNIX.pdf:/Users/akilan/Zotero/storage/IAFXHJ8H/Watson et al. - Capsicum practical capabilities for UNIX.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_department_nodate,
|
||||
title = {Department of Computer Science and Technology: {CheriBSD}},
|
||||
url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheribsd.html},
|
||||
urldate = {2024-06-18},
|
||||
file = {Department of Computer Science and Technology\: CheriBSD:/Users/akilan/Zotero/storage/3XQJWCXD/cheribsd.html:text/html},
|
||||
}
|
||||
|
||||
@online{noauthor_msrc-security-researchpapers2020security_nodate,
|
||||
title = {{MSRC}-Security-Research/papers/2020/Security analysis of {CHERI} {ISA}.pdf at master · microsoft/{MSRC}-Security-Research},
|
||||
url = {https://github.com/microsoft/MSRC-Security-Research/blob/master/papers/2020/Security%20analysis%20of%20CHERI%20ISA.pdf},
|
||||
abstract = {Security Research from the Microsoft Security Response Center ({MSRC}) - microsoft/{MSRC}-Security-Research},
|
||||
titleaddon = {{GitHub}},
|
||||
urldate = {2024-06-18},
|
||||
langid = {english},
|
||||
file = {Snapshot:/Users/akilan/Zotero/storage/ENF2KYRT/Security analysis of CHERI ISA.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{zaliva_formal_2024,
|
||||
location = {La Jolla {CA} {USA}},
|
||||
title = {Formal Mechanised Semantics of {CHERI} C: Capabilities, Undefined Behaviour, and Provenance},
|
||||
isbn = {9798400703720},
|
||||
url = {https://dl.acm.org/doi/10.1145/3617232.3624859},
|
||||
doi = {10.1145/3617232.3624859},
|
||||
shorttitle = {Formal Mechanised Semantics of {CHERI} C},
|
||||
abstract = {Memory safety issues are a persistent source of security vulnerabilities, with conventional architectures and the C codebase chronically prone to exploitable errors. The {CHERI} research project has shown how one can provide radically improved security for that existing codebase with minimal modification, using unforgeable hardware capabilities in place of machine-word pointers in {CHERI} dialects of C, implemented as adaptions of Clang/{LLVM} and {GCC}. {CHERI} was first prototyped as extensions of {MIPS} and {RISC}-V; it is currently being evaluated by Arm and others with the Arm Morello experimental architecture, processor, and platform, to explore its potential for mass-market adoption, and by Microsoft in their {CHERIoT} design for embedded cores.},
|
||||
eventtitle = {{ASPLOS} '24: 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1},
|
||||
pages = {181--196},
|
||||
booktitle = {Proceedings of the 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1},
|
||||
publisher = {{ACM}},
|
||||
author = {Zaliva, Vadim and Memarian, Kayvan and Almeida, Ricardo and Clarke, Jessica and Davis, Brooks and Richardson, Alexander and Chisnall, David and Campbell, Brian and Stark, Ian and Watson, Robert N. M. and Sewell, Peter},
|
||||
urldate = {2024-06-18},
|
||||
date = {2024-04-27},
|
||||
langid = {english},
|
||||
file = {Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:/Users/akilan/Zotero/storage/8Y2CRHBS/Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_cheri_nodate,
|
||||
title = {{CHERI} C/C++ Programming Guide},
|
||||
abstract = {This document is a brief introduction to the {CHERI} C/C++ programming languages. We explain the principles underlying these language variants, and their grounding in {CHERI}’s multiple architectural instantiations: {CHERI}-{MIPS}, {CHERI}-{RISC}-V, and Arm’s Morello. We describe the most commonly encountered differences between these dialects and C/C++ on conventional architectures, and where existing software may require minor changes. We document new compiler warnings and errors that may be experienced compiling code with the {CHERI} Clang/{LLVM} compiler, and suggest how they may be addressed through typically minor source-code changes. We explain how modest language extensions allow selected software, such as memory allocators, to further refine permissions and bounds on pointers. This guidance is based on our experience adapting the {FreeBSD} operating-system userspace, and applications such as {PostgreSQL} and {WebKit}, to run in a {CHERI} C/C++ capability-based programming environment. We conclude by recommending further reading.},
|
||||
author = {Watson, Robert N M and Richardson, Alexander and Davis, Brooks and Baldwin, John and Chisnall, David and Clarke, Jessica and Filardo, Nathaniel and Moore, Simon W and Napierala, Edward and Sewell, Peter and Neumann, Peter G},
|
||||
langid = {english},
|
||||
file = {Watson et al. - CHERI CC++ Programming Guide.pdf:/Users/akilan/Zotero/storage/WHGQXE8P/Watson et al. - CHERI CC++ Programming Guide.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{esswood_cherios_nodate-1,
|
||||
title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor},
|
||||
author = {Esswood, Lawrence G},
|
||||
langid = {english},
|
||||
file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/3IVKGYZ5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_architecture_nodate,
|
||||
title = {The Architecture of the Burroughs B-5000},
|
||||
url = {https://www.smecc.org/The%20Architecture%20%20of%20the%20Burroughs%20B-5000.htm},
|
||||
urldate = {2024-06-18},
|
||||
file = {The Architecture of the Burroughs B-5000:/Users/akilan/Zotero/storage/ELNL8VBQ/The Architecture of the Burroughs B-5000.html:text/html},
|
||||
}
|
||||
|
||||
@article{dennis_programming_1966,
|
||||
title = {Programming semantics for multiprogrammed computations},
|
||||
volume = {9},
|
||||
issn = {0001-0782, 1557-7317},
|
||||
url = {https://dl.acm.org/doi/10.1145/365230.365252},
|
||||
doi = {10.1145/365230.365252},
|
||||
abstract = {The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protecting of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language.},
|
||||
pages = {143--155},
|
||||
number = {3},
|
||||
journaltitle = {Communications of the {ACM}},
|
||||
shortjournal = {Commun. {ACM}},
|
||||
author = {Dennis, Jack B. and Van Horn, Earl C.},
|
||||
urldate = {2024-06-18},
|
||||
date = {1966-03},
|
||||
langid = {english},
|
||||
file = {Full Text:/Users/akilan/Zotero/storage/6MLX2U8V/Dennis and Van Horn - 1966 - Programming semantics for multiprogrammed computat.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_capability_nodate,
|
||||
title = {Capability Hardware Enhanced {RISC} Instructions: {CHERI} Instruction-Set Architecture (Version 8)},
|
||||
abstract = {This technical report describes {CHERI} {ISAv}8, the eighth version of the {CHERI} architecture being developed by {SRI} International and the University of Cambridge. This design captures ten years of research, development, experimentation, refinement, formal analysis, and validation through hardware and software implementation.},
|
||||
author = {Watson, Robert N M and Neumann, Peter G and Woodruff, Jonathan and Roe, Michael and Almatary, Hesham and Anderson, Jonathan and Baldwin, John and Barnes, Graeme and Chisnall, David and Clarke, Jessica and Davis, Brooks and Eisen, Lee and Filardo, Nathaniel Wesley and Grisenthwaite, Richard and Joannou, Alexandre and Laurie, Ben and Markettos, A Theodore and Moore, Simon W and Murdoch, Steven J and Nienhuis, Kyndylan and Norton, Robert and Richardson, Alexander and Rugg, Peter and Sewell, Peter and Son, Stacey and Xia, Hongyan},
|
||||
langid = {english},
|
||||
file = {Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:/Users/akilan/Zotero/storage/R9T374YS/Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_-it-yourself_nodate,
|
||||
title = {Do-It-Yourself Virtual Memory Translation {\textbar} {ACM} {SIGARCH} Computer Architecture News},
|
||||
url = {https://dl.acm.org/doi/10.1145/3140659.3080209},
|
||||
urldate = {2024-06-18},
|
||||
}
|
||||
|
||||
@online{noauthor_osdi_nodate,
|
||||
title = {{OSDI} Symposia {\textbar} {USENIX}},
|
||||
url = {https://www.usenix.org/conferences/byname/179},
|
||||
urldate = {2024-06-19},
|
||||
file = {OSDI Symposia | USENIX:/Users/akilan/Zotero/storage/VI7YCLJV/179.html:text/html},
|
||||
}
|
||||
|
||||
@article{mittal_survey_2017,
|
||||
title = {A survey of techniques for architecting {TLBs}},
|
||||
volume = {29},
|
||||
rights = {Copyright © 2016 John Wiley \& Sons, Ltd.},
|
||||
issn = {1532-0634},
|
||||
url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061},
|
||||
doi = {10.1002/cpe.4061},
|
||||
abstract = {Translation lookaside buffer ({TLB}) caches virtual to physical address translation information and is used in systems ranging from embedded devices to high-end servers. Because {TLB} is accessed very frequently and a {TLB} miss is extremely costly, prudent management of {TLB} is important for improving performance and energy efficiency of processors. In this paper, we present a survey of techniques for architecting and managing {TLBs}. We characterize the techniques across several dimensions to highlight their similarities and distinctions. We believe that this paper will be useful for chip designers, computer architects, and system engineers.},
|
||||
pages = {e4061},
|
||||
number = {10},
|
||||
journaltitle = {Concurrency and Computation: Practice and Experience},
|
||||
author = {Mittal, Sparsh},
|
||||
urldate = {2024-06-24},
|
||||
date = {2017},
|
||||
langid = {english},
|
||||
note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061},
|
||||
keywords = {classification, power management, prefetching, Review, superpage, {TLB}, virtual cache, workload characterization},
|
||||
file = {Snapshot:/Users/akilan/Zotero/storage/JJ9H6B2H/cpe.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{lietar_snmalloc_2019,
|
||||
location = {New York, {NY}, {USA}},
|
||||
title = {snmalloc: a message passing allocator},
|
||||
isbn = {978-1-4503-6722-6},
|
||||
url = {https://doi.org/10.1145/3315573.3329980},
|
||||
doi = {10.1145/3315573.3329980},
|
||||
series = {{ISMM} 2019},
|
||||
shorttitle = {snmalloc},
|
||||
abstract = {snmalloc is an implementation of malloc aimed at workloads in which objects are typically deallocated by a different thread than the one that had allocated them. We use the term producer/consumer for such workloads. snmalloc uses a novel message passing scheme which returns deallocated objects to the originating allocator in batches without taking any locks. It also uses a novel bump pointer-free list data structure with which just 64-bits of meta-data are sufficient for each 64 {KiB} slab. On such producer/consumer benchmarks our approach performs better than existing allocators. Snmalloc is available at {\textless}a href="https://github.com/Microsoft/snmalloc"{\textgreater}https://github.com/Microsoft/snmalloc{\textless}/a{\textgreater}.},
|
||||
pages = {122--135},
|
||||
booktitle = {Proceedings of the 2019 {ACM} {SIGPLAN} International Symposium on Memory Management},
|
||||
publisher = {Association for Computing Machinery},
|
||||
author = {Liétar, Paul and Butler, Theodore and Clebsch, Sylvan and Drossopoulou, Sophia and Franco, Juliana and Parkinson, Matthew J. and Shamis, Alex and Wintersteiger, Christoph M. and Chisnall, David},
|
||||
urldate = {2024-06-23},
|
||||
date = {2019-06-23},
|
||||
keywords = {Memory allocation, message passing},
|
||||
}
|
||||
|
||||
@online{cheribsd,
|
||||
title = {Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial},
|
||||
url = {https://www.cheribsd.org/tutorial/23.11/benchmark/index.html},
|
||||
urldate = {2024-06-07},
|
||||
file = {Benchmark ABI - CheriBSD 23.11 new features tutorial:/Users/akilan/Zotero/storage/9BDKUW28/index.html:text/html},
|
||||
}
|
||||
|
||||
@TechReport{BenchmarkABI,
|
||||
author = {Watson, Robert N. M. and Clarke, Jessica and Sewell, Peter
|
||||
and Woodruff, Jonathan and Moore, Simon W. and Barnes,
|
||||
Graeme and Grisenthwaite, Richard and Stacer, Kathryn and
|
||||
Baranga, Silviu and Richardson, Alexander},
|
||||
title = {{Early performance results from the prototype Morello
|
||||
microarchitecture}},
|
||||
institution = {University of Cambridge, Computer Laboratory},
|
||||
address = {15 JJ Thomson Avenue, Cambridge CB3 0FD, United Kingdom,
|
||||
phone +44 1223 763500},
|
||||
month = {September},
|
||||
year = {2023},
|
||||
number = {UCAM-CL-TR-986}
|
||||
}
|
||||
|
||||
@online{jemalloc,
|
||||
title = {{JEMALLOC}},
|
||||
url = {https://jemalloc.net/jemalloc.3.html},
|
||||
urldate = {2025-01-15},
|
||||
file = {JEMALLOC:/Users/akilan/Zotero/storage/QDEIEJ9N/jemalloc.3.html:text/html},
|
||||
}
|
||||
|
||||
@online{Benchmark,
|
||||
title = {{CHERI}-Allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at main · Akilan1999/{CHERI}-Allocator},
|
||||
url = {https://github.com/Akilan1999/CHERI-Allocator/blob/main/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c},
|
||||
urldate = {2025-01-15},
|
||||
file = {CHERI-Allocator/benchmarks/benchmarks/StressTestMalloc/glibc-bench.c at main · Akilan1999/CHERI-Allocator:/Users/akilan/Zotero/storage/2X8ZJLND/glibc-bench.html:text/html},
|
||||
}
|
||||
|
||||
@online{Morello,
|
||||
title = {Department of Computer Science and Technology – {CHERI}: The Arm Morello Board},
|
||||
url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheri-morello.html},
|
||||
urldate = {2025-01-16},
|
||||
file = {Department of Computer Science and Technology – CHERI\: The Arm Morello Board:/Users/akilan/Zotero/storage/GCMNX8LY/cheri-morello.html:text/html},
|
||||
}
|
||||
|
||||
@online{PerformanceCounter,
|
||||
title = {Arm Architecture Reference Manual for A-profile architecture},
|
||||
url = {https://developer.arm.com/documentation/ddi0487/latest},
|
||||
urldate = {2025-01-15},
|
||||
file = {Arm Architecture Reference Manual for A-profile architecture:/Users/akilan/Zotero/storage/BVZSP7HA/latest.html:text/html},
|
||||
}
|
||||
|
||||
|
||||
BIN
docs/EuroSys/Paper/papernotes.pdf
Normal file
469
docs/EuroSys/Paper/references.bib
Normal file
@@ -0,0 +1,469 @@
|
||||
@article{Shadow_superpages,
|
||||
title = {Aggressive superpage support with the shadow memory and the partial-subblock TLB},
|
||||
journal = {Microprocessors and Microsystems},
|
||||
volume = {25},
|
||||
number = {7},
|
||||
pages = {329-342},
|
||||
year = {2001},
|
||||
issn = {0141-9331},
|
||||
doi = {https://doi.org/10.1016/S0141-9331(01)00125-9},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0141933101001259},
|
||||
author = {Cheol Ho Park and Daeyeon Park},
|
||||
keywords = {Superpage, Shadow memory, Subblock TLB, Translation lookaside buffer},
|
||||
abstract = {While superpages are an efficient solution to increase TLB reach, strong requirements for using superpages hinder the actual utilization. Two previous solutions, the partial-subblock TLB and the shadow memory were proposed to release the requirements. The partial-subblock TLB releases only a small portion of the requirements. The shadow memory releases most of the requirements but introduces other serious problems. We propose a hybrid scheme which integrates both the shadow memory and the partial-subblock TLB, thereby enjoying the benefits inherited from both sides. The hybrid scheme has as high a superpage utilization as the shadow memory, and avoids most of the problems in the shadow memory by virtue of the partial-subblock TLB. The experiment shows that the hybrid scheme outperforms the previous schemes though its hardware cost and overhead are considered.}
|
||||
}
|
||||
|
||||
@article{THP,
|
||||
title = {Practical, transparent operating system support for superpages},
|
||||
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer ({TLB}) to map a large physical memory region into a virtual address space. This dramatically increases {TLB} coverage, reduces {TLB} misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in {FreeBSD} on the Alpha {CPU}, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
|
||||
author = {Navarro, Juan},
|
||||
langid = {english},
|
||||
file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/R9MSCWQX/Navarro - Practical, transparent operating system support fo.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{DirectSegment,
|
||||
author = {Basu, Arkaprava and Gandhi, Jayneel and Chang, Jichuan and Hill, Mark D. and Swift, Michael M.},
|
||||
title = {Efficient virtual memory for big memory servers},
|
||||
year = {2013},
|
||||
issue_date = {June 2013},
|
||||
publisher = {Association for Computing Machinery},
|
||||
address = {New York, NY, USA},
|
||||
volume = {41},
|
||||
number = {3},
|
||||
issn = {0163-5964},
|
||||
url = {https://doi.org/10.1145/2508148.2485943},
|
||||
doi = {10.1145/2508148.2485943},
|
||||
abstract = {Our analysis shows that many "big-memory" server workloads, such as databases, in-memory caches, and graph analytics, pay a high cost for page-based virtual memory. They consume as much as 10\% of execution cycles on TLB misses, even using large pages. On the other hand, we find that these workloads use read-write permission on most pages, are provisioned not to swap, and rarely benefit from the full flexibility of page-based virtual memory.To remove the TLB miss overhead for big-memory workloads, we propose mapping part of a process's linear virtual address space with a direct segment, while page mapping the rest of the virtual address space. Direct segments use minimal hardware---base, limit and offset registers per core---to map contiguous virtual memory regions directly to contiguous physical memory. They eliminate the possibility of TLB misses for key data structures such as database buffer pools and in-memory key-value stores. Memory mapped by a direct segment may be converted back to paging when needed.We prototype direct-segment software support for x86-64 in Linux and emulate direct-segment hardware. For our workloads, direct segments eliminate almost all TLB misses and reduce the execution time wasted on TLB misses to less than 0.5\%.},
|
||||
journal = {SIGARCH Comput. Archit. News},
|
||||
month = jun,
|
||||
pages = {237–248},
|
||||
numpages = {12},
|
||||
keywords = {tanslation lookaside buffer, virtual memory}
|
||||
}
|
||||
|
||||
|
||||
@article{navarro_practical_nodate,
|
||||
title = {Practical, transparent operating system support for superpages},
|
||||
abstract = {Most general-purpose processors provide support for memory pages of large sizes, called superpages. Superpages enable each entry in the translation lookaside buffer ({TLB}) to map a large physical memory region into a virtual address space. This dramatically increases {TLB} coverage, reduces {TLB} misses, and promises performance improvements for many applications. However, supporting superpages poses several challenges to the operating system, in terms of superpage allocation and promotion tradeoffs, fragmentation control, etc. We analyze these issues, and propose the design of an effective superpage management system. We implement it in {FreeBSD} on the Alpha {CPU}, and evaluate it on real workloads and benchmarks. We obtain substantial performance benefits, often exceeding 30\%; these benefits are sustained even under stressful workload scenarios.},
|
||||
author = {Navarro, Juan},
|
||||
langid = {english},
|
||||
file = {Navarro - Practical, transparent operating system support fo.pdf:/Users/akilan/Zotero/storage/9RBYAPGM/Navarro - Practical, transparent operating system support fo.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{panwar_hawkeye_2019,
|
||||
location = {Providence {RI} {USA}},
|
||||
title = {{HawkEye}: Efficient Fine-grained {OS} Support for Huge Pages},
|
||||
isbn = {978-1-4503-6240-5},
|
||||
url = {https://dl.acm.org/doi/10.1145/3297858.3304064},
|
||||
doi = {10.1145/3297858.3304064},
|
||||
shorttitle = {{HawkEye}},
|
||||
eventtitle = {{ASPLOS} '19: Architectural Support for Programming Languages and Operating Systems},
|
||||
pages = {347--360},
|
||||
booktitle = {Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems},
|
||||
publisher = {{ACM}},
|
||||
author = {Panwar, Ashish and Bansal, Sorav and Gopinath, K.},
|
||||
urldate = {2024-05-27},
|
||||
date = {2019-04-04},
|
||||
langid = {english},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/VQLCKYCA/Panwar et al. - 2019 - HawkEye Efficient Fine-grained OS Support for Hug.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{karakostas_redundant_2015,
|
||||
location = {Portland Oregon},
|
||||
title = {Redundant memory mappings for fast access to large memories},
|
||||
isbn = {978-1-4503-3402-0},
|
||||
url = {https://dl.acm.org/doi/10.1145/2749469.2749471},
|
||||
doi = {10.1145/2749469.2749471},
|
||||
abstract = {Page-based virtual memory improves programmer productivity, security, and memory utilization, but incurs performance overheads due to costly page table walks after {TLB} misses. This overhead can reach 50\% for modern workloads that access increasingly vast memory with stagnating {TLB} sizes. To reduce the overhead of virtual memory, this paper proposes Redundant Memory Mappings ({RMM}), which leverage ranges of pages and provides an efficient, alternative representation of many virtual-to-physical mappings. We define a range be a subset of process’s pages that are virtually and physically contiguous. {RMM} translates each range with a single range table entry, enabling a modest number of entries to translate most of the process’s address space. {RMM} operates in parallel with standard paging and uses a software range table and hardware range {TLB} with arbitrarily large reach. We modify the operating system to automatically detect ranges and to increase their likelihood with eager page allocation. {RMM} is thus transparent to applications. We prototype {RMM} software in Linux and emulate the hardware. {RMM} performs substantially better than paging alone and huge pages, and improves a wider variety of workloads than direct segments (one range per program), reducing the overhead of virtual memory to less than 1\% on average.},
|
||||
eventtitle = {{ISCA} '15: The 42nd Annual International Symposium on Computer Architecture},
|
||||
pages = {66--78},
|
||||
booktitle = {Proceedings of the 42nd Annual International Symposium on Computer Architecture},
|
||||
publisher = {{ACM}},
|
||||
author = {Karakostas, Vasileios and Gandhi, Jayneel and Ayar, Furkan and Cristal, Adrián and Hill, Mark D. and {McKinley}, Kathryn S. and Nemirovsky, Mario and Swift, Michael M. and Ünsal, Osman},
|
||||
urldate = {2024-05-27},
|
||||
date = {2015-06-13},
|
||||
langid = {english},
|
||||
file = {Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:/Users/akilan/Zotero/storage/8JECES24/Karakostas et al. - 2015 - Redundant memory mappings for fast access to large.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{chen_flexpointer_2023,
|
||||
title = {{FlexPointer}: Fast Address Translation Based on Range {TLB} and Tagged Pointers},
|
||||
volume = {20},
|
||||
issn = {1544-3566, 1544-3973},
|
||||
url = {https://dl.acm.org/doi/10.1145/3579854},
|
||||
doi = {10.1145/3579854},
|
||||
shorttitle = {{FlexPointer}},
|
||||
abstract = {Page-based virtual memory relies on {TLBs} to accelerate the address translation. Nowadays, the gap between application workloads and the capacity of {TLB} continues to grow, bringing many costly {TLB} misses and making the {TLB} a performance bottleneck. Previous studies seek to narrow the gap by exploiting the contiguity of physical pages. One promising solution is to group pages that are both virtually and physically contiguous into a memory range. Recording range translations can greatly increase the {TLB} reach, but ranges are also hard to index because they have arbitrary bounds. The processor has to compare against all the boundaries to determine which range an address falls in, which restricts the usage of memory ranges.
|
||||
In this article, we propose a tagged-pointer-based scheme, {FlexPointer}, to solve the range indexing problem. The core insight of {FlexPointer} is that large memory objects are rare, so we can create memory ranges based on such objects and assign each of them a unique {ID}. With the range {ID} integrated into pointers, we can index the range {TLB} with {IDs} and greatly simplify its structure. Moreover, because the {ID} is stored in the unused bits of a pointer and is not manipulated by the address generation, we can shift the range lookup to an earlier stage, working in parallel with the address generation. According to our trace-based simulation results, {FlexPointer} can reduce nearly all the L1 {TLB} misses, and page walks for a variety of memory-intensive workloads. Compared with a 4K-page baseline system, {FlexPointer} shows a 14\% performance improvement on average and up to 2.8x speedup in the best case. For other workloads, {FlexPointer} shows no performance degradation.},
|
||||
pages = {1--24},
|
||||
number = {2},
|
||||
journaltitle = {{ACM} Transactions on Architecture and Code Optimization},
|
||||
shortjournal = {{ACM} Trans. Archit. Code Optim.},
|
||||
author = {Chen, Dongwei and Tong, Dong and Yang, Chun and Yi, Jiangfang and Cheng, Xu},
|
||||
urldate = {2024-05-27},
|
||||
date = {2023-06-30},
|
||||
langid = {english},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/L9XGZDFK/Chen et al. - 2023 - FlexPointer Fast Address Translation Based on Ran.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{woodruff_cheri_2019,
|
||||
title = {{CHERI} Concentrate: Practical Compressed Capabilities},
|
||||
volume = {68},
|
||||
rights = {https://ieeexplore.ieee.org/Xplorehelp/downloads/license-information/{IEEE}.html},
|
||||
issn = {0018-9340, 1557-9956, 2326-3814},
|
||||
url = {https://ieeexplore.ieee.org/document/8703061/},
|
||||
doi = {10.1109/TC.2019.2914037},
|
||||
shorttitle = {{CHERI} Concentrate},
|
||||
abstract = {We present {CHERI} Concentrate, a new fat-pointer compression scheme applied to {CHERI}, the most developed capability-pointer system at present. Capability fat pointers are a primary candidate to enforce fine-grained and non-bypassable security properties in future computer systems, although increased pointer size can severely affect performance. Thus, several proposals for capability compression have been suggested elsewhere that do not support legacy instruction sets, ignore features critical to the existing software base, and also introduce design inefficiencies to {RISC}-style processor pipelines. {CHERI} Concentrate improves on the state-of-the-art region-encoding efficiency, solves important pipeline problems, and eases semantic restrictions of compressed encoding, allowing it to protect a full legacy software stack. We present the first quantitative analysis of compiled capability code, which we use to guide the design of the encoding format. We analyze and extend logic from the open-source {CHERI} prototype processor design on {FPGA} to demonstrate encoding efficiency, minimize delay of pointer arithmetic, and eliminate additional load-to-use delay. To verify correctness of our proposed high-performance logic, we present a {HOL}4 machine-checked proof of the decode and pointer-modify operations. Finally, we measure a 50\% to 75\% reduction in L2 misses for many compiled C-language benchmarks running under a commodity operating system using compressed 128-bit and 64-bit formats, demonstrating both compatibility with and increased performance over the uncompressed, 256-bit format.},
|
||||
pages = {1455--1469},
|
||||
number = {10},
|
||||
journaltitle = {{IEEE} Transactions on Computers},
|
||||
shortjournal = {{IEEE} Trans. Comput.},
|
||||
author = {Woodruff, Jonathan and Joannou, Alexandre and Xia, Hongyan and Fox, Anthony and Norton, Robert M. and Chisnall, David and Davis, Brooks and Gudka, Khilan and Filardo, Nathaniel W. and Markettos, A. Theodore and Roe, Michael and Neumann, Peter G. and Watson, Robert N. M. and Moore, Simon W.},
|
||||
urldate = {2024-05-27},
|
||||
date = {2019-10-01},
|
||||
langid = {english},
|
||||
file = {Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:/Users/akilan/Zotero/storage/3SZUIWQ5/Woodruff et al. - 2019 - CHERI Concentrate Practical Compressed Capabiliti.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_capability-based_nodate,
|
||||
title = {Capability-Based Computer Systems},
|
||||
url = {https://homes.cs.washington.edu/~levy/capabook/},
|
||||
urldate = {2024-06-07},
|
||||
file = {Capability-Based Computer Systems:/Users/akilan/Zotero/storage/IAAG6ZF3/capabook.html:text/html},
|
||||
}
|
||||
|
||||
@article{woodruff_cheri_2014,
|
||||
title = {The {CHERI} capability model: revisiting {RISC} in an age of risk},
|
||||
volume = {42},
|
||||
issn = {0163-5964},
|
||||
url = {https://doi.org/10.1145/2678373.2665740},
|
||||
doi = {10.1145/2678373.2665740},
|
||||
shorttitle = {The {CHERI} capability model},
|
||||
abstract = {Motivated by contemporary security challenges, we reevaluate and refine capability-based addressing for the {RISC} era. We present {CHERI}, a hybrid capability model that extends the 64-bit {MIPS} {ISA} with byte-granularity memory protection. We demonstrate that {CHERI} enables language memory model enforcement and fault isolation in hardware rather than software, and that the {CHERI} mechanisms are easily adopted by existing programs for efficient in-program memory safety. In contrast to past capability models, {CHERI} complements, rather than replaces, the ubiquitous page-based protection mechanism, providing a migration path towards deconflating data-structure protection and {OS} memory management. Furthermore, {CHERI} adheres to a strict {RISC} philosophy: it maintains a load-store architecture and requires only singlecycle instructions, and supplies protection primitives to the compiler, language runtime, and operating system. We demonstrate a mature {FPGA} implementation that runs the {FreeBSD} operating system with a full range of software and an open-source application suite compiled with an extended {LLVM} to use {CHERI} memory protection. A limit study compares published memory safety mechanisms in terms of instruction count and memory overheads. The study illustrates that {CHERI} is performance-competitive even while providing assurance and greater flexibility with simpler hardware},
|
||||
pages = {457--468},
|
||||
number = {3},
|
||||
journaltitle = {{ACM} {SIGARCH} Computer Architecture News},
|
||||
shortjournal = {{SIGARCH} Comput. Archit. News},
|
||||
author = {Woodruff, Jonathan and Watson, Robert N.M. and Chisnall, David and Moore, Simon W. and Anderson, Jonathan and Davis, Brooks and Laurie, Ben and Neumann, Peter G. and Norton, Robert and Roe, Michael},
|
||||
urldate = {2024-06-07},
|
||||
date = {2014-06-14},
|
||||
}
|
||||
|
||||
@article{miller_towards_nodate,
|
||||
title = {Towards a Unified Approach to Access Control and Concurrency Control},
|
||||
author = {Miller, Mark Samuel},
|
||||
langid = {english},
|
||||
file = {Miller - Towards a Unified Approach to Access Control and Co.pdf:/Users/akilan/Zotero/storage/7METVAKG/Miller - Towards a Unified Approach to Access Control and Co.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{curtsinger_coz_2015,
|
||||
title = {Coz: Finding Code that Counts with Causal Profiling},
|
||||
url = {http://arxiv.org/abs/1608.03676},
|
||||
doi = {10.1145/2815400.2815409},
|
||||
shorttitle = {Coz},
|
||||
abstract = {Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spent their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities.},
|
||||
pages = {184--197},
|
||||
booktitle = {Proceedings of the 25th Symposium on Operating Systems Principles},
|
||||
author = {Curtsinger, Charlie and Berger, Emery D.},
|
||||
urldate = {2024-06-07},
|
||||
date = {2015-10-04},
|
||||
langid = {english},
|
||||
eprinttype = {arxiv},
|
||||
eprint = {1608.03676 [cs]},
|
||||
keywords = {C.4, Computer Science - Performance, D.4.8},
|
||||
file = {Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:/Users/akilan/Zotero/storage/QTFQXVHE/Curtsinger and Berger - 2015 - Coz Finding Code that Counts with Causal Profilin.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_benchmark_nodate,
|
||||
title = {Benchmark {ABI} - {CheriBSD} 23.11 new features tutorial},
|
||||
url = {https://www.cheribsd.org/tutorial/23.11/benchmark/index.html},
|
||||
urldate = {2024-06-07},
|
||||
file = {Benchmark ABI - CheriBSD 23.11 new features tutorial:/Users/akilan/Zotero/storage/9BDKUW28/index.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{zhu_research_2018,
|
||||
location = {Taipei, Taiwan},
|
||||
title = {Research and Implementation of High Performance Traffic Processing Based on Intel {DPDK}},
|
||||
isbn = {978-1-5386-9403-9},
|
||||
url = {https://ieeexplore.ieee.org/document/8701793/},
|
||||
doi = {10.1109/PAAP.2018.00018},
|
||||
eventtitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})},
|
||||
pages = {62--68},
|
||||
booktitle = {2018 9th International Symposium on Parallel Architectures, Algorithms and Programming ({PAAP})},
|
||||
publisher = {{IEEE}},
|
||||
author = {Zhu, Wenjun and Li, Peng and Luo, Baozhou and Xu, He and Zhang, Yujie},
|
||||
urldate = {2024-06-07},
|
||||
date = {2018-12},
|
||||
}
|
||||
|
||||
@article{bi_dpdk-based_2016,
|
||||
title = {{DPDK}-based Improvement of Packet Forwarding},
|
||||
volume = {7},
|
||||
rights = {© Owned by the authors, published by {EDP} Sciences, 2016},
|
||||
issn = {2271-2097},
|
||||
url = {https://www.itm-conferences.org/articles/itmconf/abs/2016/02/itmconf_ita2016_01009/itmconf_ita2016_01009.html},
|
||||
doi = {10.1051/itmconf/20160701009},
|
||||
abstract = {Reel-time processing of packets occupies a significant position in the field of computer network security. With theexplosive growth of the backbone link rate,which is consistent with Gilder's law, many bottlenecks of server performance leave the real-time data stream unprocessed.Thus, we proposedto take use of {DPDK}(Data Plan Development Kit) framework to achieve an intelligent {NIC} packet forwarding system. During this research, we deeply analysis the forwarding process of packet in {DPDK} and improve its {DMA} mode.According to the results of experiment, the system greatly enhanced the performance of packet forwarding,and the throughput of forwarding 64-byet or random-length packets by 20Gbit {NIC} reaches13.3Gbps and 18.7Gbps(dual ports forwarding).},
|
||||
pages = {01009},
|
||||
journaltitle = {{ITM} Web of Conferences},
|
||||
shortjournal = {{ITM} Web Conf.},
|
||||
author = {Bi, Hao and Wang, Zhao-Hun},
|
||||
urldate = {2024-06-07},
|
||||
date = {2016},
|
||||
langid = {english},
|
||||
note = {Publisher: {EDP} Sciences},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/LEVMJ983/Bi and Wang - 2016 - DPDK-based Improvement of Packet Forwarding.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{esswood_cherios_nodate,
|
||||
title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor},
|
||||
author = {Esswood, Lawrence G},
|
||||
langid = {english},
|
||||
file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/YGIBFTD5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@book{wilkes_cambridge_1979,
|
||||
location = {New York},
|
||||
title = {The Cambridge {CAP} computer and its operating system},
|
||||
isbn = {978-0-444-00357-7 978-0-444-00358-4},
|
||||
series = {The computer science library operating and programming systems series},
|
||||
pagetotal = {165},
|
||||
number = {6},
|
||||
publisher = {North Holland},
|
||||
author = {Wilkes, Maurice V. and Needham, Roger M.},
|
||||
date = {1979},
|
||||
langid = {english},
|
||||
file = {Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:/Users/akilan/Zotero/storage/VIQTWZS3/Wilkes and Needham - 1979 - The Cambridge CAP computer and its operating syste.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{fillo_mmachine_nodate,
|
||||
title = {The M–Machine Multicomputer},
|
||||
author = {Fillo, Marco and Keckler, Stephen W and Dally, William J and Carter, Nicholas P and Chang, Andrew and Gurevich, Yevgeny and Lee, Whay S},
|
||||
langid = {english},
|
||||
file = {Fillo et al. - The M–Machine Multicomputer.pdf:/Users/akilan/Zotero/storage/LD95UQTM/Fillo et al. - The M–Machine Multicomputer.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{kwon_low-fat_2013,
|
||||
location = {New York, {NY}, {USA}},
|
||||
title = {Low-fat pointers: compact encoding and efficient gate-level implementation of fat pointers for spatial safety and capability-based security},
|
||||
isbn = {978-1-4503-2477-9},
|
||||
url = {https://dl.acm.org/doi/10.1145/2508859.2516713},
|
||||
doi = {10.1145/2508859.2516713},
|
||||
series = {{CCS} '13},
|
||||
shorttitle = {Low-fat pointers},
|
||||
abstract = {Referencing outside the bounds of an array or buffer is a common source of bugs and security vulnerabilities in today's software. We can enforce spatial safety and eliminate these violations by inseparably associating bounds with every pointer (fat pointer) and checking these bounds on every memory access. By further adding hardware-managed tags to the pointer, we make them unforgeable. This, in turn, allows the pointers to be used as capabilities to facilitate fine-grained access control and fast security domain crossing. Dedicated checking hardware runs in parallel with the processor's normal datapath so that the checks do not slow down processor operation (0\% runtime overhead). To achieve the safety of fat pointers without increasing program state, we compactly encode approximate base and bound pointers along with exact address pointers for a 46b address space into one 64-bit word with a worst-case memory overhead of 3\%. We develop gate-level implementations of the logic for updating and validating these compact fat pointers and show that the hardware requirements are low and the critical paths for common operations are smaller than processor {ALU} operations. Specifically, we show that the fat-pointer check and update operations can run in a 4 ns clock cycle on a Virtex 6 (40nm) implementation while only using 1100 6-{LUTs} or about the area of a double-precision, floating-point adder.},
|
||||
pages = {721--732},
|
||||
booktitle = {Proceedings of the 2013 {ACM} {SIGSAC} conference on Computer \& communications security},
|
||||
publisher = {Association for Computing Machinery},
|
||||
author = {Kwon, Albert and Dhawan, Udit and Smith, Jonathan M. and Knight, Thomas F. and {DeHon}, Andre},
|
||||
urldate = {2024-06-18},
|
||||
date = {2013-11-04},
|
||||
keywords = {capabilities, fat pointer, memory safety, processor, security, spatial confinement},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/CVVZYZS4/Kwon et al. - 2013 - Low-fat pointers compact encoding and efficient g.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{wulf_hydra_1974,
|
||||
title = {{HYDRA}: the kernel of a multiprocessor operating system},
|
||||
volume = {17},
|
||||
issn = {0001-0782, 1557-7317},
|
||||
url = {https://dl.acm.org/doi/10.1145/355616.364017},
|
||||
doi = {10.1145/355616.364017},
|
||||
shorttitle = {{HYDRA}},
|
||||
abstract = {This paper describes the design philosophy of {HYDRA}—the kernel of an operating system for C.mmp, the Carnegie-Mellon Multi-Mini-Processor. This philosophy is realized through the introduction of a generalized notion of “resource,” both physical and virtual, called an “object.” Mechanisms are presented for dealing with objects, including the creation of new types, specification of new operations applicable to a given type, sharing, and protection of any reference to a given object against improper application of any of the operations defined with respect to that type of object. The mechanisms provide a coherent basis for extension of the system in two directions: the introduction of new facilities, and the creation of highly secure systems.},
|
||||
pages = {337--345},
|
||||
number = {6},
|
||||
journaltitle = {Communications of the {ACM}},
|
||||
shortjournal = {Commun. {ACM}},
|
||||
author = {Wulf, W. and Cohen, E. and Corwin, W. and Jones, A. and Levin, R. and Pierson, C. and Pollack, F.},
|
||||
urldate = {2024-06-18},
|
||||
date = {1974-06},
|
||||
langid = {english},
|
||||
file = {Full Text:/Users/akilan/Zotero/storage/EIRBNTVF/Wulf et al. - 1974 - HYDRA the kernel of a multiprocessor operating sy.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{hardy_keykos_1985,
|
||||
title = {{KeyKOS} architecture},
|
||||
volume = {19},
|
||||
issn = {0163-5980},
|
||||
url = {https://dl.acm.org/doi/10.1145/858336.858337},
|
||||
doi = {10.1145/858336.858337},
|
||||
pages = {8--25},
|
||||
number = {4},
|
||||
journaltitle = {{ACM} {SIGOPS} Operating Systems Review},
|
||||
shortjournal = {{SIGOPS} Oper. Syst. Rev.},
|
||||
author = {Hardy, Norman},
|
||||
urldate = {2024-06-18},
|
||||
date = {1985-10-01},
|
||||
file = {Full Text PDF:/Users/akilan/Zotero/storage/QSYKM6QN/Hardy - 1985 - KeyKOS architecture.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{rashid_mach_nodate,
|
||||
title = {Mach: A System Software Kernel},
|
||||
abstract = {The Mach operating system can be used as a system software kernel which can support a variety of operating system environments. Key elements of the Mach design which allow it to efficiently support system software include integrated virtual memory management and interprocess communication, multiple threads of control within one address space, support for transparent system trap callout and an object programming facility integrated with the Mach {IPC} mechanisms. Mach is currently available both from {CMU} and commercially on a wide range of uniprocessor and multiprocessor hardware.},
|
||||
author = {Rashid, Richard and Julin, Daniel and Orr, Douglas and Sanzi, Richard and Baron, Robert and Forin, Alessandro and Golub, David and Jones, Michael},
|
||||
langid = {english},
|
||||
file = {Rashid et al. - Mach A System Software Kernel.pdf:/Users/akilan/Zotero/storage/UHLILYH9/Rashid et al. - Mach A System Software Kernel.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@inproceedings{baumann_multikernel_2009,
|
||||
location = {Big Sky Montana {USA}},
|
||||
title = {The multikernel: a new {OS} architecture for scalable multicore systems},
|
||||
isbn = {978-1-60558-752-3},
|
||||
url = {https://dl.acm.org/doi/10.1145/1629575.1629579},
|
||||
doi = {10.1145/1629575.1629579},
|
||||
shorttitle = {The multikernel},
|
||||
abstract = {Commodity computer systems contain more and more processor cores and exhibit increasingly diverse architectural tradeoffs, including memory hierarchies, interconnects, instruction sets and variants, and {IO} configurations. Previous high-performance computing systems have scaled in specific cases, but the dynamic nature of modern client and server workloads, coupled with the impossibility of statically optimizing an {OS} for all workloads and hardware variants pose serious challenges for operating system structures.},
|
||||
eventtitle = {{SOSP}09: {ACM} {SIGOPS} 22nd Symposium on Operating Systems Principles},
|
||||
pages = {29--44},
|
||||
booktitle = {Proceedings of the {ACM} {SIGOPS} 22nd symposium on Operating systems principles},
|
||||
publisher = {{ACM}},
|
||||
author = {Baumann, Andrew and Barham, Paul and Dagand, Pierre-Evariste and Harris, Tim and Isaacs, Rebecca and Peter, Simon and Roscoe, Timothy and Schüpbach, Adrian and Singhania, Akhilesh},
|
||||
urldate = {2024-06-18},
|
||||
date = {2009-10-11},
|
||||
langid = {english},
|
||||
file = {Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:/Users/akilan/Zotero/storage/4BVCRZN6/Baumann et al. - 2009 - The multikernel a new OS architecture for scalabl.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_capsicum_nodate,
|
||||
title = {Capsicum: practical capabilities for {UNIX}},
|
||||
abstract = {Capsicum is a lightweight operating system capability and sandbox framework planned for inclusion in {FreeBSD} 9. Capsicum extends, rather than replaces, {UNIX} {APIs}, providing new kernel primitives (sandboxed capability mode and capabilities) and a userspace sandbox {API}. These tools support compartmentalisation of monolithic {UNIX} applications into logical applications, an increasingly common goal supported poorly by discretionary and mandatory access control. We demonstrate our approach by adapting core {FreeBSD} utilities and Google’s Chromium web browser to use Capsicum primitives, and compare the complexity and robustness of Capsicum with other sandboxing techniques.},
|
||||
author = {Watson, Robert N M and Anderson, Jonathan and Kennaway, Kris and Laurie, Ben},
|
||||
langid = {english},
|
||||
file = {Watson et al. - Capsicum practical capabilities for UNIX.pdf:/Users/akilan/Zotero/storage/IAFXHJ8H/Watson et al. - Capsicum practical capabilities for UNIX.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_department_nodate,
|
||||
title = {Department of Computer Science and Technology: {CheriBSD}},
|
||||
url = {https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/cheribsd.html},
|
||||
urldate = {2024-06-18},
|
||||
file = {Department of Computer Science and Technology\: CheriBSD:/Users/akilan/Zotero/storage/3XQJWCXD/cheribsd.html:text/html},
|
||||
}
|
||||
|
||||
@online{noauthor_msrc-security-researchpapers2020security_nodate,
|
||||
title = {{MSRC}-Security-Research/papers/2020/Security analysis of {CHERI} {ISA}.pdf at master · microsoft/{MSRC}-Security-Research},
|
||||
url = {https://github.com/microsoft/MSRC-Security-Research/blob/master/papers/2020/Security%20analysis%20of%20CHERI%20ISA.pdf},
|
||||
abstract = {Security Research from the Microsoft Security Response Center ({MSRC}) - microsoft/{MSRC}-Security-Research},
|
||||
titleaddon = {{GitHub}},
|
||||
urldate = {2024-06-18},
|
||||
langid = {english},
|
||||
file = {Snapshot:/Users/akilan/Zotero/storage/ENF2KYRT/Security analysis of CHERI ISA.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{zaliva_formal_2024,
|
||||
location = {La Jolla {CA} {USA}},
|
||||
title = {Formal Mechanised Semantics of {CHERI} C: Capabilities, Undefined Behaviour, and Provenance},
|
||||
isbn = {9798400703720},
|
||||
url = {https://dl.acm.org/doi/10.1145/3617232.3624859},
|
||||
doi = {10.1145/3617232.3624859},
|
||||
shorttitle = {Formal Mechanised Semantics of {CHERI} C},
|
||||
abstract = {Memory safety issues are a persistent source of security vulnerabilities, with conventional architectures and the C codebase chronically prone to exploitable errors. The {CHERI} research project has shown how one can provide radically improved security for that existing codebase with minimal modification, using unforgeable hardware capabilities in place of machine-word pointers in {CHERI} dialects of C, implemented as adaptions of Clang/{LLVM} and {GCC}. {CHERI} was first prototyped as extensions of {MIPS} and {RISC}-V; it is currently being evaluated by Arm and others with the Arm Morello experimental architecture, processor, and platform, to explore its potential for mass-market adoption, and by Microsoft in their {CHERIoT} design for embedded cores.},
|
||||
eventtitle = {{ASPLOS} '24: 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1},
|
||||
pages = {181--196},
|
||||
booktitle = {Proceedings of the 29th {ACM} International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 1},
|
||||
publisher = {{ACM}},
|
||||
author = {Zaliva, Vadim and Memarian, Kayvan and Almeida, Ricardo and Clarke, Jessica and Davis, Brooks and Richardson, Alexander and Chisnall, David and Campbell, Brian and Stark, Ian and Watson, Robert N. M. and Sewell, Peter},
|
||||
urldate = {2024-06-18},
|
||||
date = {2024-04-27},
|
||||
langid = {english},
|
||||
file = {Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:/Users/akilan/Zotero/storage/8Y2CRHBS/Zaliva et al. - 2024 - Formal Mechanised Semantics of CHERI C Capabiliti.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_cheri_nodate,
|
||||
title = {{CHERI} C/C++ Programming Guide},
|
||||
abstract = {This document is a brief introduction to the {CHERI} C/C++ programming languages. We explain the principles underlying these language variants, and their grounding in {CHERI}’s multiple architectural instantiations: {CHERI}-{MIPS}, {CHERI}-{RISC}-V, and Arm’s Morello. We describe the most commonly encountered differences between these dialects and C/C++ on conventional architectures, and where existing software may require minor changes. We document new compiler warnings and errors that may be experienced compiling code with the {CHERI} Clang/{LLVM} compiler, and suggest how they may be addressed through typically minor source-code changes. We explain how modest language extensions allow selected software, such as memory allocators, to further refine permissions and bounds on pointers. This guidance is based on our experience adapting the {FreeBSD} operating-system userspace, and applications such as {PostgreSQL} and {WebKit}, to run in a {CHERI} C/C++ capability-based programming environment. We conclude by recommending further reading.},
|
||||
author = {Watson, Robert N M and Richardson, Alexander and Davis, Brooks and Baldwin, John and Chisnall, David and Clarke, Jessica and Filardo, Nathaniel and Moore, Simon W and Napierala, Edward and Sewell, Peter and Neumann, Peter G},
|
||||
langid = {english},
|
||||
file = {Watson et al. - CHERI CC++ Programming Guide.pdf:/Users/akilan/Zotero/storage/WHGQXE8P/Watson et al. - CHERI CC++ Programming Guide.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{esswood_cherios_nodate-1,
|
||||
title = {{CheriOS}: designing an untrusted single-address-space capability operating system utilising capability hardware and a minimal hypervisor},
|
||||
author = {Esswood, Lawrence G},
|
||||
langid = {english},
|
||||
file = {Esswood - CheriOS designing an untrusted single-address-spa.pdf:/Users/akilan/Zotero/storage/3IVKGYZ5/Esswood - CheriOS designing an untrusted single-address-spa.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_architecture_nodate,
|
||||
title = {The Architecture of the Burroughs B-5000},
|
||||
url = {https://www.smecc.org/The%20Architecture%20%20of%20the%20Burroughs%20B-5000.htm},
|
||||
urldate = {2024-06-18},
|
||||
file = {The Architecture of the Burroughs B-5000:/Users/akilan/Zotero/storage/ELNL8VBQ/The Architecture of the Burroughs B-5000.html:text/html},
|
||||
}
|
||||
|
||||
@article{dennis_programming_1966,
|
||||
title = {Programming semantics for multiprogrammed computations},
|
||||
volume = {9},
|
||||
issn = {0001-0782, 1557-7317},
|
||||
url = {https://dl.acm.org/doi/10.1145/365230.365252},
|
||||
doi = {10.1145/365230.365252},
|
||||
abstract = {The semantics are defined for a number of meta-instructions which perform operations essential to the writing of programs in multiprogrammed computer systems. These meta-instructions relate to parallel processing, protecting of separate computations, program debugging, and the sharing among users of memory segments and other computing objects, the names of which are hierarchically structured. The language sophistication contemplated is midway between an assembly language and an advanced algebraic language.},
|
||||
pages = {143--155},
|
||||
number = {3},
|
||||
journaltitle = {Communications of the {ACM}},
|
||||
shortjournal = {Commun. {ACM}},
|
||||
author = {Dennis, Jack B. and Van Horn, Earl C.},
|
||||
urldate = {2024-06-18},
|
||||
date = {1966-03},
|
||||
langid = {english},
|
||||
file = {Full Text:/Users/akilan/Zotero/storage/6MLX2U8V/Dennis and Van Horn - 1966 - Programming semantics for multiprogrammed computat.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@article{watson_capability_nodate,
|
||||
title = {Capability Hardware Enhanced {RISC} Instructions: {CHERI} Instruction-Set Architecture (Version 8)},
|
||||
abstract = {This technical report describes {CHERI} {ISAv}8, the eighth version of the {CHERI} architecture being developed by {SRI} International and the University of Cambridge. This design captures ten years of research, development, experimentation, refinement, formal analysis, and validation through hardware and software implementation.},
|
||||
author = {Watson, Robert N M and Neumann, Peter G and Woodruff, Jonathan and Roe, Michael and Almatary, Hesham and Anderson, Jonathan and Baldwin, John and Barnes, Graeme and Chisnall, David and Clarke, Jessica and Davis, Brooks and Eisen, Lee and Filardo, Nathaniel Wesley and Grisenthwaite, Richard and Joannou, Alexandre and Laurie, Ben and Markettos, A Theodore and Moore, Simon W and Murdoch, Steven J and Nienhuis, Kyndylan and Norton, Robert and Richardson, Alexander and Rugg, Peter and Sewell, Peter and Son, Stacey and Xia, Hongyan},
|
||||
langid = {english},
|
||||
file = {Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:/Users/akilan/Zotero/storage/R9T374YS/Watson et al. - Capability Hardware Enhanced RISC Instructions CH.pdf:application/pdf},
|
||||
}
|
||||
|
||||
@online{noauthor_-it-yourself_nodate,
|
||||
title = {Do-It-Yourself Virtual Memory Translation {\textbar} {ACM} {SIGARCH} Computer Architecture News},
|
||||
url = {https://dl.acm.org/doi/10.1145/3140659.3080209},
|
||||
urldate = {2024-06-18},
|
||||
}
|
||||
|
||||
@online{noauthor_osdi_nodate,
|
||||
title = {{OSDI} Symposia {\textbar} {USENIX}},
|
||||
url = {https://www.usenix.org/conferences/byname/179},
|
||||
urldate = {2024-06-19},
|
||||
file = {OSDI Symposia | USENIX:/Users/akilan/Zotero/storage/VI7YCLJV/179.html:text/html},
|
||||
}
|
||||
|
||||
@article{mittal_survey_2017,
|
||||
title = {A survey of techniques for architecting {TLBs}},
|
||||
volume = {29},
|
||||
rights = {Copyright © 2016 John Wiley \& Sons, Ltd.},
|
||||
issn = {1532-0634},
|
||||
url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.4061},
|
||||
doi = {10.1002/cpe.4061},
|
||||
abstract = {Translation lookaside buffer ({TLB}) caches virtual to physical address translation information and is used in systems ranging from embedded devices to high-end servers. Because {TLB} is accessed very frequently and a {TLB} miss is extremely costly, prudent management of {TLB} is important for improving performance and energy efficiency of processors. In this paper, we present a survey of techniques for architecting and managing {TLBs}. We characterize the techniques across several dimensions to highlight their similarities and distinctions. We believe that this paper will be useful for chip designers, computer architects, and system engineers.},
|
||||
pages = {e4061},
|
||||
number = {10},
|
||||
journaltitle = {Concurrency and Computation: Practice and Experience},
|
||||
author = {Mittal, Sparsh},
|
||||
urldate = {2024-06-24},
|
||||
date = {2017},
|
||||
langid = {english},
|
||||
note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cpe.4061},
|
||||
keywords = {classification, power management, prefetching, Review, superpage, {TLB}, virtual cache, workload characterization},
|
||||
file = {Snapshot:/Users/akilan/Zotero/storage/JJ9H6B2H/cpe.html:text/html},
|
||||
}
|
||||
|
||||
@inproceedings{lietar_snmalloc_2019,
|
||||
location = {New York, {NY}, {USA}},
|
||||
title = {snmalloc: a message passing allocator},
|
||||
isbn = {978-1-4503-6722-6},
|
||||
url = {https://doi.org/10.1145/3315573.3329980},
|
||||
doi = {10.1145/3315573.3329980},
|
||||
series = {{ISMM} 2019},
|
||||
shorttitle = {snmalloc},
|
||||
abstract = {snmalloc is an implementation of malloc aimed at workloads in which objects are typically deallocated by a different thread than the one that had allocated them. We use the term producer/consumer for such workloads. snmalloc uses a novel message passing scheme which returns deallocated objects to the originating allocator in batches without taking any locks. It also uses a novel bump pointer-free list data structure with which just 64-bits of meta-data are sufficient for each 64 {KiB} slab. On such producer/consumer benchmarks our approach performs better than existing allocators. Snmalloc is available at {\textless}a href="https://github.com/Microsoft/snmalloc"{\textgreater}https://github.com/Microsoft/snmalloc{\textless}/a{\textgreater}.},
|
||||
pages = {122--135},
|
||||
booktitle = {Proceedings of the 2019 {ACM} {SIGPLAN} International Symposium on Memory Management},
|
||||
publisher = {Association for Computing Machinery},
|
||||
author = {Liétar, Paul and Butler, Theodore and Clebsch, Sylvan and Drossopoulou, Sophia and Franco, Juliana and Parkinson, Matthew J. and Shamis, Alex and Wintersteiger, Christoph M. and Chisnall, David},
|
||||
urldate = {2024-06-23},
|
||||
date = {2019-06-23},
|
||||
keywords = {Memory allocation, message passing},
|
||||
}
|
||||
BIN
docs/EuroSys/Paper/sampleteaser.pdf
Normal file
36
docs/EuroSys/Paper/test.fdb_latexmk
Normal file
@@ -0,0 +1,36 @@
|
||||
# Fdb version 3
|
||||
["pdflatex"] 1726549192 "test.tex" "test.pdf" "test" 1726549192
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1246382020 1004 54797486969f23fa377b128694d548df ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm" 1136768653 1328 c834bbb027764024c09d3d2bf908b5f0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm" 1136768653 1300 63a6111ee6274895728663cf4b4e7e81 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1136768653 1292 21c1c5bfeaebccffdb478fd231a0997d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb" 1248133631 34811 78b52f49e893bcba91bd7581cdc144c0 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb" 1248133631 32001 6aeea3afe875097b1eb0da29acd61e28 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb" 1248133631 32726 0a1aea6fcd6468ee2cf64d891f5c43c8 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1160617237 26750 ce139c05a983e19ddca355b43e29c395 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1160617237 3457 d9077efe6b74c5a094199256af8d7d9a ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty" 1251330371 3249 15763257e50278eef5db1952ccde229c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1622667781 2222 da905dc1db75412efd2d8f67739f0596 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty" 1622667781 4173 bc0410bcccdff806d6132d3c1ef35481 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty" 1636758526 87648 07fbb6e9169e00cb2a2f40b31b2dbf3c ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty" 1636758526 4128 8eea906621b6639f7ba476a472036bbe ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty" 1636758526 2444 926f379cc60fcf0c6e3fee2223b4370d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls" 1636758526 20144 8a7de377ae7a11ee924a7499611f5a9d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty" 1622581934 5157 f308c7c04889e16c588e78aa42599fae ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo" 1636758526 8448 96f18c76bf608a36ee6fbf021ac1dd32 ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty" 1137110151 6749 16d2656a1984957e674b149555f1ea1d ""
|
||||
"/usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1644269979 29921 d0acc05a38bd4aa3af2017f0b7c137ce ""
|
||||
"/usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf" 1646502317 40171 cdab547de63d26590bebb3baff566530 ""
|
||||
"/usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1647878959 4410336 7d30a02e9fa9a16d7d1f8d037ba69641 ""
|
||||
"/usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt" 1661249257 2826440 c4fb37ef223f1d0b7571cc2822c67358 ""
|
||||
"/usr/local/texlive/2022/texmf.cnf" 1647878952 577 209b46be99c9075fd74d4c0369380e8c ""
|
||||
"test.aux" 1726549192 166 13d10522dc49842efd9c6decbc5daf86 "pdflatex"
|
||||
"test.tex" 1726549189 1843 18247c68579a0dd2d10b6b65cf5cb5fc ""
|
||||
(generated)
|
||||
"test.aux"
|
||||
"test.log"
|
||||
"test.pdf"
|
||||
167
docs/EuroSys/Paper/test.fls
Normal file
@@ -0,0 +1,167 @@
|
||||
PWD /Users/akilan/Documents/Cheri/CHERI-FLEXPOINTER/papers/EuroSys/Paper
|
||||
INPUT /usr/local/texlive/2022/texmf.cnf
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/web2c/texmf.cnf
|
||||
INPUT /usr/local/texlive/2022/texmf-var/web2c/pdftex/pdflatex.fmt
|
||||
INPUT test.tex
|
||||
OUTPUT test.log
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/article.cls
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/size10.clo
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithms/algorithm.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/float/float.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/base/ifthen.sty
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
INPUT ./test.aux
|
||||
INPUT test.aux
|
||||
INPUT test.aux
|
||||
OUTPUT test.aux
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/map/fontname/texfonts.map
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmr8.tfm
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm
|
||||
OUTPUT test.pdf
|
||||
INPUT /usr/local/texlive/2022/texmf-var/fonts/map/pdftex/updmap/pdftex.map
|
||||
INPUT test.aux
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmcsc10.pfb
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb
|
||||
INPUT /usr/local/texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb
|
||||
BIN
docs/EuroSys/Paper/test.pdf
Normal file
54
docs/EuroSys/Paper/test.tex
Normal file
@@ -0,0 +1,54 @@
|
||||
\documentclass{article}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{algorithm}
|
||||
\usepackage{algpseudocode}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{algorithm}
|
||||
\caption{Memory Management with CHERI}
|
||||
\begin{algorithmic}[1]
|
||||
|
||||
\State \textbf{Define} FILENAME $\gets "/dev/contigmem"$
|
||||
\State \textbf{Define} $ptr$ \Comment{Pointer to allocated memory}
|
||||
\State \textbf{Define} $MallocCounter$ \Comment{Remaining memory size}
|
||||
\State \textbf{Define} $sizeUsed$ \Comment{Size of used memory}
|
||||
|
||||
\Function{INITAlloc}{}
|
||||
\State $sz \gets 100000000$ \Comment{Set allocation size}
|
||||
\State $fd \gets \text{open}(FILENAME, O\_RDWR, 0600)$
|
||||
\If{$fd < 0$}
|
||||
\State \textbf{Handle Error:} \text{exit}(EXIT\_FAILURE)
|
||||
\EndIf
|
||||
|
||||
\State $offset \gets 0$ \Comment{Offset for seeking}
|
||||
|
||||
\If{$\text{ftruncate}(fd, sz) < 0$}
|
||||
\State \textbf{Handle Error:} \text{close}(fd), \text{exit}(EXIT\_FAILURE)
|
||||
\EndIf
|
||||
|
||||
\State $ptr \gets \text{mmap}(NULL, sz, PROT\_READ | PROT\_WRITE, MAP\_SHARED, fd, 0)$
|
||||
\If{$ptr = \text{MAP\_FAILED}$}
|
||||
\State \textbf{Handle Error:} \text{exit}(EXIT\_FAILURE)
|
||||
\EndIf
|
||||
|
||||
\State $MallocCounter \gets sz$
|
||||
\EndFunction
|
||||
|
||||
\Function{malloc}{sz}
|
||||
\State $sz \gets \text{align\_up}(sz, \text{\_Alignof}(max\_align\_t))$ \Comment{Align the size}
|
||||
\State $MallocCounter \gets MallocCounter - sz$
|
||||
\State $ptrLink \gets ptr[MallocCounter]$ \Comment{Allocate memory at the current position}
|
||||
\State $ptrLink \gets \text{cheri\_setbounds}(ptrLink, sz)$ \Comment{Set bounds for CHERI}
|
||||
\State \Return $ptrLink$ \Comment{Return the allocated pointer}
|
||||
\EndFunction
|
||||
|
||||
\Function{FREECHERI}{ptr}
|
||||
\State $len \gets \text{cheri\_getlen}(ptr)$ \Comment{Get the length from pointer bounds}
|
||||
\State \text{munmap}(ptr, len) \Comment{Unmap the memory}
|
||||
\EndFunction
|
||||
|
||||
\end{algorithmic}
|
||||
\end{algorithm}
|
||||
|
||||
\end{document}
|
||||